From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Dmitry Butskoy To: git-commits@fedoraproject.org Subject: [rpms/seamonkey] epel8: . Date: Thu, 30 Jul 2026 18:17:42 GMT Message-ID: <178543546214.1.12405512213983420404.rpms-seamonkey-23aed9ff4beb@fedoraproject.org> List-ID: X-Git-Repo: rpms/seamonkey X-Git-Branch: epel8 X-Git-Rev: 23aed9ff4bebe4b0cff75e8200262eefd28dbf88 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc2VhbW9ua2V5CkJy YW5jaCA6IGVwZWw4CkNvbW1pdCA6IDIzYWVkOWZmNGJlYmU0YjBjZmY3NWU4MjAwMjYyZWVmZDI4 ZGJmODgKQXV0aG9yIDogRG1pdHJ5IEJ1dHNrb3kgPGRtaXRyeUBidXRza295Lm5hbWU+CkRhdGUg ICA6IDIwMjYtMDctMzBUMjE6MTc6MjQrMDM6MDAKU3RhdHMgIDogKzI5MjcwLy0yNDM5NiBpbiA2 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9zZWFt b25rZXkvYy8yM2FlZDlmZjRiZWJlNGIwY2ZmNzVlODIwMDI2MmVlZmQyOGRiZjg4P2JyYW5jaD1l cGVsOAoKTG9nOgouCgotLS0KZGlmZiAtLWdpdCBhL3NlYW1vbmtleS0yLjUzLjIyLW1vemlsbGEt MTg4MjIwOS5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjIyLW1vemlsbGEtMTg4MjIwOS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzhjNzIzZi4uMDAwMDAwMAotLS0gYS9zZWFt b25rZXktMi41My4yMi1tb3ppbGxhLTE4ODIyMDkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy NDM5NiArMCwwIEBACi1kaWZmIC1OcmJ1IGEvLmNhcmdvL2NvbmZpZy5pbiBiLy5jYXJnby9jb25m aWcuaW4KLS0tLSBhLy5jYXJnby9jb25maWcuaW4JMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiLy5jYXJnby9jb25maWcuaW4JMjAyNS0wOS0xNyAxNzo1ODo1My4zNzQ1 MjYyMDEgKzAzMDAKLUBAIC03LDEwICs3LDEwIEBACi0gYnJhbmNoID0gImRlc2VyaWFsaXplX2Zy b21fZW51bXM4IgotIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgotIAotLVtzb3Vy Y2UuImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCJdCi0tZ2l0ID0gImh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCIKLStbc291cmNlLiJnaXQraHR0 cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZD9yZXY9N2ZiMWI3MDM0 YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCJdCi0rZ2l0ID0gImh0dHBzOi8vZ2l0aHVi LmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQiCi0rcmV2ID0gIjdmYjFiNzAzNGM5ZjE3 MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiCi0gcmVwbGFjZS13aXRoID0gInZlbmRvcmVkLXNv dXJjZXMiCi0tcmV2ID0gImU1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2VmMGNkYzQi Ci0gCi0gW3NvdXJjZS52ZW5kb3JlZC1zb3VyY2VzXQotIGRpcmVjdG9yeSA9ICdAdG9wX3NyY2Rp ckAvdGhpcmRfcGFydHkvcnVzdCcKLWRpZmYgLU5yYnUgYS9DYXJnby5sb2NrIGIvQ2FyZ28ubG9j awotLS0tIGEvQ2FyZ28ubG9jawkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAot KysrIGIvQ2FyZ28ubG9jawkyMDI1LTA5LTE3IDE4OjAwOjQzLjIwOTMyMTk4MCArMDMwMAotQEAg LTIxLDYgKzIxLDE1IEBACi0gXQotIAotIFtbcGFja2FnZV1dCi0rbmFtZSA9ICJhbnlfYWxsX3dv cmthcm91bmQiCi0rdmVyc2lvbiA9ICIwLjEuMCIKLStzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0 aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQ/cmV2PTdmYjFiNzAzNGM5ZjE3MmFh ZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAjN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4 YTQ4YWY4MCIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJjZmctaWYgMS4wLjAiLAotKyAidmVyc2lv bl9jaGVjayIsCi0rXQotKwotK1tbcGFja2FnZV1dCi0gbmFtZSA9ICJhcHBfdW5pdHMiCi0gdmVy c2lvbiA9ICIwLjcuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi1AQCAtNjA4LDEyICs2MTcsMTIgQEAKLSAKLSBbW3Bh Y2thZ2VdXQotIG5hbWUgPSAiZW5jb2RpbmdfcnMiCi0tdmVyc2lvbiA9ICIwLjguMzMiCi0rdmVy c2lvbiA9ICIwLjguMzQiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjcyNjhiMzg2Mjk2YTAyNWU0 NzRkNTE0MDY3OGY3NWQ2ZGU5NDkzYWU1NWE1ZDcwOWVlYjlkZDA4MTQ5OTQ1ZTEiCi0rY2hlY2tz dW0gPSAiYjQ1ZGU5MDRhYTBiMDEwYmNlMmFiNDUyNjRkMDYzMTY4MTg0N2ZhN2I2ZjJlYWE3ZGFi NzYxOTk0M2JjNGY1OSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0rICJhbnlfYWxsX3dvcmthcm91bmQi LAotICAiY2ZnLWlmIDEuMC4wIiwKLS0gInBhY2tlZF9zaW1kIiwKLSBdCi0gCi0gW1twYWNrYWdl XV0KLUBAIC0xMzA2LDE1ICsxMzE1LDYgQEAKLSBdCi0gCi0gW1twYWNrYWdlXV0KLS1uYW1lID0g InBhY2tlZF9zaW1kIgotLXZlcnNpb24gPSAiMC4zLjkiCi0tc291cmNlID0gImdpdCtodHRwczov L2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQ/cmV2PWU1ODhjZWI1Njg4NzhlMWEzMTU2 ZWE5Y2U1NTFkNWI2M2VmMGNkYzQjZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYw Y2RjNCIKLS1kZXBlbmRlbmNpZXMgPSBbCi0tICJjZmctaWYgMS4wLjAiLAotLSAibnVtLXRyYWl0 cyAwLjIuMTUiLAotLV0KLS0KLS1bW3BhY2thZ2VdXQotIG5hbWUgPSAicGFya2luZ19sb3QiCi0g dmVyc2lvbiA9ICIwLjYuMyIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi1AQCAtMjI0MCw2ICsyMjQwLDEyIEBACi0gY2hl Y2tzdW0gPSAiODg3YjViNjMxYzJhZDAxNjI4YmJiYWE3ZGQ0Yzg2OWY4MGQzMTg2Njg4ZjhkMGI2 ZjU4Nzc0ZmJlMzI0OTg4YyIKLSAKLSBbW3BhY2thZ2VdXQotK25hbWUgPSAidmVyc2lvbl9jaGVj ayIKLSt2ZXJzaW9uID0gIjAuOS40IgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9ICI0OTg3NGI1MTY3 YjY1ZDcxOTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAwM2VkYTc4N2U0ODNmIgot KwotK1tbcGFja2FnZV1dCi0gbmFtZSA9ICJ2b2lkIgotIHZlcnNpb24gPSAiMS4wLjIiCi0gc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotZGlmZiAtTnJidSBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCi0tLS0gYS9DYXJnby50 b21sCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi9DYXJnby50b21s CTIwMjUtMDktMTcgMTg6MDI6MjMuNzA0NDc1MjQ2ICswMzAwCi1AQCAtNTMsNCArNTMsNCBAQAot IFtwYXRjaC5jcmF0ZXMtaW9dCi0gbGlidWRldi1zeXMgPSB7IHBhdGggPSAiZG9tL3dlYmF1dGhu L2xpYnVkZXYtc3lzIiB9Ci0gc2VyZGVfZGVyaXZlID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIu Y29tL3NlcnZvL3NlcmRlIiwgYnJhbmNoID0gImRlc2VyaWFsaXplX2Zyb21fZW51bXM4IiB9Ci0t cGFja2VkX3NpbWQgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2Vk X3NpbWQiLCByZXYgPSAiZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCIg fQotK2FueV9hbGxfd29ya2Fyb3VuZCA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2 b25lbi9hbnlfYWxsX3dvcmthcm91bmQiLCByZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUx Yzg1NTRlOGQ4YTQ4YWY4MCIgfQotZGlmZiAtTnJidSBhL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5t ayBiL2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5tawotLS0tIGEvY29uZmlnL21ha2VmaWxlcy9ydXN0 Lm1rCTIwMjUtMDQtMjAgMTk6Mjg6MDEuMDAwMDAwMDAwICswMzAwCi0rKysgYi9jb25maWcvbWFr ZWZpbGVzL3J1c3QubWsJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYgKzAzMDAKLUBAIC02 Niw3ICs2Niw3IEBACi0gIyBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0X3NoYXJlZCxxY21zIGZv ciBsYXRlcgotIFJVU1RDX0JPT1RTVFJBUCA6PSBna3J1c3Rfc2hhcmVkCi0gaWZkZWYgTU9aX1JV U1RfU0lNRAotLVJVU1RDX0JPT1RTVFJBUCA6PSAkKFJVU1RDX0JPT1RTVFJBUCksZW5jb2Rpbmdf cnMscGFja2VkX3NpbWQKLStSVVNUQ19CT09UU1RSQVAgOj0gJChSVVNUQ19CT09UU1RSQVApLGVu Y29kaW5nX3JzLGFueV9hbGxfd29ya2Fyb3VuZAotIGVuZGlmCi0gZXhwb3J0IFJVU1RDX0JPT1RT VFJBUAotIGVuZGlmCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmth cm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29y a2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlf YWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24JMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5k Ly5jYXJnby1jaGVja3N1bS5qc29uCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM3ODA1MDQ2ICswMzAw Ci1AQCAtMCwwICsxIEBACi0reyJmaWxlcyI6eyJDYXJnby50b21sIjoiZjhjMTI3NDQ5ZGM5NDMy ZDQwNGMyMWM5OTgzM2U0NjE3YWI4OGE3OTc0NDVhZjI0OWE3ZmUzYzk4OTk4NWQ2ZCIsIkxJQ0VO U0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5 ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlUIjoiNjQ4NWI4ZWQzMTBkM2YwMzQwYmYx YWQxZjQ3NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZjN2Q1YzZmYWY0MWRlMWZkYiIsIkxJQ0VOU0UtTUlU LVFDTVMiOiIzNmQ4NDdhZTg4MmY2NTc0ZWJjNzJmNTZhNGYzNTRlNGYxMDRmZGU0YTU4NDM3MzQ5 NjQ4MmU5N2Q1MmQzMWJjIiwiUkVBRE1FLm1kIjoiNGM2MTdiOGNlZDNhMjdiN2VkZWNmMGU1ZTQx ZWQ0NTFjMDRlODhkYWI1MjllN2EzNWZjY2M0ZTE1NTFlZmJkNyIsImJ1aWxkLnJzIjoiNTZiMjlh YjZkYTNlNDkwNzViZmQwYTdiNjkwMjY3YzgwMTYyOThiZjBkMzMyZTJlNjhiYmFmMTlkZWNiYmY3 MSIsInNyYy9saWIucnMiOiI3MTE4MTA2NjkwYjlkMjVjNWQwYTNlMjA3OWZlYjgzZDc2ZjFkNDM0 ZDBkYTM2YjlkMDM1MTgwNmQyN2M4NTBkIn0sInBhY2thZ2UiOm51bGx9Ci1cIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29y a2Fyb3VuZC9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQv Q2FyZ28udG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2Fy Z28udG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2FyZ28udG9tbAkyMDI1LTA5LTE3IDE3OjQx OjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSwyOCBAQAotKyMgVEhJUyBGSUxFIElTIEFV VE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCi0rIwotKyMgV2hlbiB1cGxvYWRpbmcgY3Jh dGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkKLSsjICJub3JtYWxp emUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0eQotKyMgd2l0aCBh bGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAgZGVwZW5kZW5jaWVz Ci0rIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMuCi0rIwotKyMg SWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBvcmlnaW5hbCBD YXJnby50b21sCi0rIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChhbmQgbXVjaCBt b3JlIHJlYXNvbmFibGUpLgotKyMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhlIG9yaWdpbmFs IGNvbnRlbnRzLgotKwotK1twYWNrYWdlXQotK2VkaXRpb24gPSAiMjAyMSIKLStuYW1lID0gImFu eV9hbGxfd29ya2Fyb3VuZCIKLSt2ZXJzaW9uID0gIjAuMS4wIgotK2F1dGhvcnMgPSBbIkhlbnJp IFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCi0rZGVzY3JpcHRpb24gPSAiV29ya2Fy b3VuZCBmb3IgYmFkIExMVk0gY29kZWdlbiBmb3IgYm9vbGVhbiByZWR1Y3Rpb25zIG9uIDMyLWJp dCBBUk0iCi0raG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2FueV9hbGxfd29ya2Fyb3VuZC8i Ci0rZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvYW55X2FsbF93b3JrYXJvdW5kLyIK LStyZWFkbWUgPSAiUkVBRE1FLm1kIgotK2xpY2Vuc2UgPSAiTUlUIE9SIEFwYWNoZS0yLjAiCi0r cmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJv dW5kIgotKwotK1tkZXBlbmRlbmNpZXNdCi0rY2ZnLWlmID0gIjEuMCIKLSsKLStbYnVpbGQtZGVw ZW5kZW5jaWVzXQotK3ZlcnNpb25fY2hlY2sgPSAiMC45IgotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fy b3VuZC9MSUNFTlNFLUFQQUNIRQkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMwMAot QEAgLTAsMCArMSwyMDEgQEAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUg TGljZW5zZQotKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIw MDQKLSsgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv Ci0rCi0rVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElT VFJJQlVUSU9OCi0rCi0rMS4gRGVmaW5pdGlvbnMuCi0rCi0rICAgIkxpY2Vuc2UiIHNoYWxsIG1l YW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKLSsgICBh bmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhp cyBkb2N1bWVudC4KLSsKLSsgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBv d25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQotKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhh dCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KLSsKLSsgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBt ZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCi0rICAgb3RoZXIgZW50 aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1v bgotKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlz IGRlZmluaXRpb24sCi0rICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBv ciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0rICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Yg c3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKLSsgICBvdGhlcndpc2UsIG9yIChp aSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLSsgICBv dXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2gg ZW50aXR5LgotKwotKyAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVh bCBvciBMZWdhbCBFbnRpdHkKLSsgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkg dGhpcyBMaWNlbnNlLgotKwotKyAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVy cmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotKyAgIGluY2x1ZGluZyBidXQgbm90 IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KLSsgICBzb3Vy Y2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotKwotKyAgICJPYmplY3QiIGZvcm0gc2hhbGwg bWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCi0rICAgdHJhbnNmb3JtYXRp b24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAotKyAgIG5v dCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlv biwKLSsgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCi0rCi0rICAgIldv cmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ug b3IKLSsgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFz IGluZGljYXRlZCBieSBhCi0rICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGlu IG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0rICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4g dGhlIEFwcGVuZGl4IGJlbG93KS4KLSsKLSsgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVh biBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0Ci0rICAgZm9ybSwgdGhhdCBp cyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQot KyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90 aGVyIG1vZGlmaWNhdGlvbnMKLSsgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFs IHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcwotKyAgIG9mIHRoaXMgTGljZW5z ZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgot KyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0 aGUgaW50ZXJmYWNlcyBvZiwKLSsgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVy ZW9mLgotKwotKyAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9y c2hpcCwgaW5jbHVkaW5nCi0rICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5k IGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwotKyAgIHRvIHRoYXQgV29yayBvciBEZXJp dmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQotKyAgIHN1Ym1pdHRl ZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQg b3duZXIKLSsgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVk IHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSsgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhl IHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKLSsgICBtZWFucyBhbnkg Zm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50 Ci0rICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBi dXQgbm90IGxpbWl0ZWQgdG8KLSsgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGlu ZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAotKyAgIGFuZCBpc3N1ZSB0cmFj a2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCi0r ICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0 aGUgV29yaywgYnV0Ci0rICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGlj dW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSsgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkg dGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKLSsKLSsgICAiQ29u dHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2Fs IEVudGl0eQotKyAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJl Y2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotKyAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0 aGluIHRoZSBXb3JrLgotKwotKzIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0 IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBD b250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSsgICB3b3JsZHdp ZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQot KyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdv cmtzIG9mLAotKyAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vu c2UsIGFuZCBkaXN0cmlidXRlIHRoZQotKyAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jr cyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0rCi0rMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vu c2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0rICAgdGhpcyBMaWNl bnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAot KyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGly cmV2b2NhYmxlCi0rICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQg bGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCi0rICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxs LCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCi0rICAgd2hlcmUgc3Vj aCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUK LSsgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBi eSB0aGVpcgotKyAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0 aGVpciBDb250cmlidXRpb24ocykKLSsgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29u dHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQotKyAgIGluc3RpdHV0ZSBwYXRlbnQg bGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCi0rICAgY3Jvc3MtY2xh aW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawot KyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3Rp dHV0ZXMgZGlyZWN0Ci0rICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRo ZW4gYW55IHBhdGVudCBsaWNlbnNlcwotKyAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGlj ZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotKyAgIGFzIG9mIHRoZSBkYXRlIHN1 Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSsKLSs0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSBy ZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQotKyAgIFdvcmsgb3IgRGVyaXZh dGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAotKyAgIG1v ZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQg WW91Ci0rICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0rCi0rICAgKGEpIFlvdSBt dXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKLSsgICAgICAgRGVy aXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLSsKLSsgICAoYikgWW91 IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2Vz Ci0rICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotKwotKyAg IChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2 ZSBXb3JrcwotKyAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRl bnQsIHRyYWRlbWFyaywgYW5kCi0rICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUg U291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0rICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2Vz IHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKLSsgICAgICAgdGhlIERlcml2YXRp dmUgV29ya3M7IGFuZAotKwotKyAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0Ui IHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwotKyAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55 IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0rICAgICAgIGluY2x1 ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAot KyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMg dGhhdCBkbyBub3QKLSsgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2 ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0rICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2Vz OiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCi0rICAgICAgIGFzIHBhcnQg b2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKLSsgICAg ICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBX b3Jrczsgb3IsCi0rICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJp dmF0aXZlIFdvcmtzLCBpZiBhbmQKLSsgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBu b3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCi0rICAgICAgIG9mIHRoZSBOT1RJ Q0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKLSsgICAgICAg ZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRp b24KLSsgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0 cmlidXRlLCBhbG9uZ3NpZGUKLSsgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElD RSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0rICAgICAgIHRoYXQgc3VjaCBhZGRpdGlv bmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAotKyAgICAgICBhcyBt b2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0rCi0rICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJp Z2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCi0rICAgbWF5IHByb3ZpZGUg YWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwotKyAg IGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0 aW9ucywgb3IKLSsgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBw cm92aWRlZCBZb3VyIHVzZSwKLSsgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2Yg dGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKLSsgICB0aGUgY29uZGl0aW9ucyBzdGF0 ZWQgaW4gdGhpcyBMaWNlbnNlLgotKwotKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4g VW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKLSsgICBhbnkgQ29udHJpYnV0 aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLSsg ICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJt cyBvciBjb25kaXRpb25zLgotKyAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcg aGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSsgICB0aGUgdGVybXMgb2YgYW55IHNl cGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAotKyAgIHdpdGgg TGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KLSsKLSs2LiBUcmFkZW1hcmtz LiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRl Ci0rICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMg b2YgdGhlIExpY2Vuc29yLAotKyAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBh bmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotKyAgIG9yaWdpbiBvZiB0aGUgV29y ayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgotKwotKzcu IERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh dyBvcgotKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29y ayAoYW5kIGVhY2gKLSsgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykg b24gYW4gIkFTIElTIiBCQVNJUywKLSsgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSsgICBpbXBsaWVkLCBpbmNsdWRpbmcs IHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwotKyAgIG9m IFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9S IEEKLSsgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZv ciBkZXRlcm1pbmluZyB0aGUKLSsgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0 cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKLSsgICByaXNrcyBhc3NvY2lhdGVkIHdp dGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCi0rCi0r OC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdh bCB0aGVvcnksCi0rICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNv bnRyYWN0LCBvciBvdGhlcndpc2UsCi0rICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg bGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSsgICBuZWdsaWdlbnQgYWN0cykg b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQotKyAgIGxp YWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwg c3BlY2lhbCwKLSsgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55 IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSsgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91 dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCi0rICAgV29yayAoaW5jbHVkaW5n IGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAotKyAgIHdv cmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQg YWxsCi0rICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3Vj aCBDb250cmlidXRvcgotKyAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9m IHN1Y2ggZGFtYWdlcy4KLSsKLSs5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBM aWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCi0rICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2 ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKLSsgICBhbmQgY2hhcmdl IGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAot KyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3Rl bnQgd2l0aCB0aGlzCi0rICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2Js aWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKLSsgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9u IFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgotKyAgIG9mIGFueSBvdGhl ciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKLSsgICBk ZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxp dHkKLSsgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29u dHJpYnV0b3IgYnkgcmVhc29uCi0rICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFu dHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCi0rCi0rRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJ T05TCi0rCi0rQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91 ciB3b3JrLgotKwotKyAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmss IGF0dGFjaCB0aGUgZm9sbG93aW5nCi0rICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBm aWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgotKyAgIHJlcGxhY2VkIHdpdGggeW91ciBv d24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCi0rICAgdGhlIGJyYWNr ZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKLSsg ICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0 aGF0IGEKLSsgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2Ug YmUgaW5jbHVkZWQgb24gdGhlCi0rICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJp Z2h0IG5vdGljZSBmb3IgZWFzaWVyCi0rICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBh cnR5IGFyY2hpdmVzLgotKwotK0NvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93 bmVyXQotKwotK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAg KHRoZSAiTGljZW5zZSIpOwotK3lvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNv bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLStZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl IExpY2Vuc2UgYXQKLSsKLSsJaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut Mi4wCi0rCi0rVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBp biB3cml0aW5nLCBzb2Z0d2FyZQotK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRp c3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0rV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0rU2VlIHRo ZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z IGFuZAotK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9M SUNFTlNFLU1JVAkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCAr MSwyNSBAQAotK0NvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMK LSsKLStQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 Ci0rcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZAotK2RvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUK LStTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAotK2xpbWl0 YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCi0rcHVibGlzaCwg ZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCi0rdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUKLStpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZwotK2NvbmRpdGlvbnM6Ci0r Ci0rVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UK LStzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z Ci0rb2YgdGhlIFNvZnR3YXJlLgotKwotK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GCi0rQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRAotK1RPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwgRklUTkVTUyBGT1IgQQotK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VN RU5ULiBJTiBOTyBFVkVOVAotK1NIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZCi0rQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX SEVUSEVSIElOIEFOIEFDVElPTgotK09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IKLStJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIKLStERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQtUUNNUyBi L3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMJMjAyNS0wOS0xNyAxNzo0MToy MS4xMzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsMjEgQEAKLStxY21zCi0rQ29weXJpZ2h0IChD KSAyMDA5LTIwMjQgTW96aWxsYSBDb3Jwb3JhdGlvbgotK0NvcHlyaWdodCAoQykgMTk5OC0yMDA3 IE1hcnRpIE1hcmlhCi0rCi0rUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIAotK2EgY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgCi0r dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbiAKLSt0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgCi0rYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3 YXJlIAotK2lzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Ci0rCi0rVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlz c2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gCi0rYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0rCi0rVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIAotK0VYUFJFU1MgT1Ig SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyAKLStUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCAK LStOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIAotK0xJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gCi0rT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIAotK1dJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF LgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JFQURN RS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JFQURNRS5tZAotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvUkVBRE1FLm1kCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9h bGxfd29ya2Fyb3VuZC9SRUFETUUubWQJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYgKzAz MDAKLUBAIC0wLDAgKzEsMTMgQEAKLSsjIGFueV9hbGxfd29ya2Fyb3VuZAotKwotK1RoaXMgaXMg YSB3b3JrYXJvdW5kIGZvciBiYWQgY29kZWdlbiAoW1J1c3QgYnVnXShodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL3BvcnRhYmxlLXNpbWQvaXNzdWVzLzE0NiksIFtMTFZNIGJ1Z10oaHR0cHM6 Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2lzc3Vlcy81MDQ2NikpIGZvciB0aGUgYGFu eSgpYCBhbmQgYGFsbCgpYCByZWR1Y3Rpb25zIGZvciBORU9OLWJhY2tlZCBTSU1EIHZlY3RvcnMg b24gMzItYml0IEFSTS4gT24gb3RoZXIgcGxhdGZvcm1zIHRoZXNlIGRlbGVnYXRlIHRvIGBhbnko KWAgYW5kIGBhbGwoKWAgaW4gYGNvcmU6OnNpbWRgLgotKwotK1RoZSBwbGFuIGlzIHRvIGFiYW5k b24gdGhpcyBjcmF0ZSBvbmNlIHRoZSBMTFZNIGJ1ZyBpcyBmaXhlZCBvciBgY29yZTo6c2ltZGAg d29ya3MgYXJvdW5kIHRoZSBMTFZNIGJ1Zy4KLSsKLStUaGUgY29kZSBpcyBmb3JrZWQgZnJvbSB0 aGUgW2BwYWNrZWRfc2ltZGAgY3JhdGVdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNv bS9oc2l2b25lbi9wYWNrZWRfc2ltZC9kOTM4ZTM5YmVlOWJjNWMyMjJmNWYyZjJhMGRmOWU1M2I1 Y2UzNmFlL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMpLgotKwotK1RoaXMgY3Jh dGUgcmVxdWlyZXMgTmlnaHRseSBSdXN0IGFzIGl0IGRlcGVuZHMgb24gdGhlIGBwb3J0YWJsZV9z aW1kYCBmZWF0dXJlLgotKwotKyMgTGljZW5zZQotKwotK2BNSVQgT1IgQXBhY2hlLTIuMGAsIHNp bmNlIHRoYXQncyBob3cgYHBhY2tlZF9zaW1kYCBpcyBsaWNlbnNlZC4gKFRoZSBBUk0gaW50cmlu c2ljcyBSdXN0IHZlcnNpb24gd29ya2Fyb3VuZCBpcyBmcm9tIHFjbXMsIHNlZSBMSUNFTlNFLU1J VC1RQ01TLikKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3Vu ZC9idWlsZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9h bnlfYWxsX3dvcmthcm91bmQvYnVpbGQucnMJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYg KzAzMDAKLUBAIC0wLDAgKzEsNyBAQAotK2V4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1 c3RjOwotKwotK2ZuIG1haW4oKSB7Ci0rICAgIGlmIHJ1c3RjOjppc19taW5fdmVyc2lvbigiMS43 OC4wIikudW53cmFwX29yKGZhbHNlKSB7Ci0rICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMt Y2ZnPXN0ZHNpbWRfc3BsaXQiKTsKLSsgICAgfQotK30KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9h bnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlf YWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5y cwkyMDI1LTA5LTE3IDE3OjQxOjIxLjEzODgwNTAwNyArMDMwMAotQEAgLTAsMCArMSwxMTAgQEAK LSsvLyBUaGlzIGNvZGUgYmVnYW4gYXMgYSBmb3JrIG9mCi0rLy8gaHR0cHM6Ly9yYXcuZ2l0aHVi dXNlcmNvbnRlbnQuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9kOTM4ZTM5YmVlOWJjNWMyMjJm NWYyZjJhMGRmOWU1M2I1Y2UzNmFlL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMK LSsvLyB3aGljaCBkaWRuJ3QgaGF2ZSBhIGxpY2Vuc2UgaGVhZGVyIG9uIHRoZSBmaWxlLCBidXQg Q2FyZ28udG9tbCBzYWlkICJNSVQgT1IgQXBhY2hlLTIuMCIuCi0rLy8gU2VlIExJQ0VOU0UtTUlU IGFuZCBMSUNFTlNFLUFQQUNIRS4KLSsKLSsjIVtub19zdGRdCi0rIyFbZmVhdHVyZShwb3J0YWJs ZV9zaW1kKV0KLSsjIVtjZmdfYXR0cigKLSsgICAgYWxsKAotKyAgICAgICAgc3Rkc2ltZF9zcGxp dCwKLSsgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0rICAgICAgICB0YXJnZXRfZW5kaWFu ID0gImxpdHRsZSIsCi0rICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKLSsgICAgICAg IHRhcmdldF9mZWF0dXJlID0gInY3IgotKyAgICApLAotKyAgICBmZWF0dXJlKHN0ZGFyY2hfYXJt X25lb25faW50cmluc2ljcykKLSspXQotKyMhW2NmZ19hdHRyKAotKyAgICBhbGwoCi0rICAgICAg ICBub3Qoc3Rkc2ltZF9zcGxpdCksCi0rICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAotKyAg ICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAotKyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUg PSAibmVvbiIsCi0rICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIKLSsgICAgKSwKLSsgICAg ZmVhdHVyZShzdGRzaW1kKQotKyldCi0rCi0rdXNlIGNmZ19pZjo6Y2ZnX2lmOwotK3VzZSBjb3Jl OjpzaW1kOjptYXNrMTZ4ODsKLSt1c2UgY29yZTo6c2ltZDo6bWFzazMyeDQ7Ci0rdXNlIGNvcmU6 OnNpbWQ6Om1hc2s4eDE2OwotKwotK2NmZ19pZiEgewotKyAgICBpZiAjW2NmZyhhbGwodGFyZ2V0 X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9 ICJuZW9uIiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciKSldIHsKLSsgICAgICAgIHVzZSBjb3JlOjpz aW1kOjptYXNrOHg4OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2sxNng0OwotKyAgICAg ICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2szMngyOwotKyAgICAgICAgbWFjcm9fcnVsZXMhIGFybV8x MjhfdjdfbmVvbl9pbXBsIHsKLSsgICAgICAgICAgICAoJGFsbDppZGVudCwgJGFueTppZGVudCwg JGlkOmlkZW50LCAkaGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBtYXg6aWRlbnQpID0+IHsK LSsgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0rICAgICAgICAgICAgICAgIHB1YiBmbiAkYWxs KHM6ICRpZCkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6YXJjaDo6 YXJtOjokdnBtaW47Ci0rICAgICAgICAgICAgICAgICAgICB1c2UgY29yZTo6bWVtOjp0cmFuc211 dGU7Ci0rICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotKyAgICAgICAgICAgICAgICAgICAg ICAgIHVuaW9uIFUgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFs ZiwgJGhhbGYpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZl cyA9IFUgeyB2ZWM6IHMgfS5oYWx2ZXM7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGg6 ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1pbih0cmFuc211dGUoaGFsdmVzLjApLCB0cmFuc211dGUo aGFsdmVzLjEpKSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaC5hbGwoKQotKyAgICAgICAg ICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICNbaW5s aW5lXQotKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFueShzOiAkaWQpIC0+IGJvb2wgewotKyAg ICAgICAgICAgICAgICAgICAgdXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWF4OwotKyAgICAgICAg ICAgICAgICAgICAgdXNlIGNvcmU6Om1lbTo6dHJhbnNtdXRlOwotKyAgICAgICAgICAgICAgICAg ICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgfQot KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzIH0uaGFsdmVz OwotKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBt YXgodHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOwotKyAgICAgICAg ICAgICAgICAgICAgICAgIGguYW55KCkKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAgfSBlbHNlIHsKLSsg ICAgICAgIG1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7Ci0rICAgICAgICAgICAg KCRhbGw6aWRlbnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjpp ZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7Ci0rICAgICAgICAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCi0rICAgICAgICAgICAgICAgIHB1YiBmbiAkYWxsKHM6ICRpZCkgLT4gYm9vbCB7Ci0rICAg ICAgICAgICAgICAgICAgICBzLmFsbCgpCi0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSsgICAgICAgICAgICAgICAgcHViIGZuICRhbnkoczog JGlkKSAtPiBib29sIHsKLSsgICAgICAgICAgICAgICAgICAgIHMuYW55KCkKLSsgICAgICAgICAg ICAgICAgfQotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAgfQotK30KLSsKLSthcm1f MTI4X3Y3X25lb25faW1wbCEoCi0rICAgIGFsbF9tYXNrOHgxNiwKLSsgICAgYW55X21hc2s4eDE2 LAotKyAgICBtYXNrOHgxNiwKLSsgICAgbWFzazh4OCwKLSsgICAgdnBtaW5fdTgsCi0rICAgIHZw bWF4X3U4Ci0rKTsKLSthcm1fMTI4X3Y3X25lb25faW1wbCEoCi0rICAgIGFsbF9tYXNrMTZ4OCwK LSsgICAgYW55X21hc2sxNng4LAotKyAgICBtYXNrMTZ4OCwKLSsgICAgbWFzazE2eDQsCi0rICAg IHZwbWluX3UxNiwKLSsgICAgdnBtYXhfdTE2Ci0rKTsKLSthcm1fMTI4X3Y3X25lb25faW1wbCEo Ci0rICAgIGFsbF9tYXNrMzJ4NCwKLSsgICAgYW55X21hc2szMng0LAotKyAgICBtYXNrMzJ4NCwK LSsgICAgbWFzazMyeDIsCi0rICAgIHZwbWluX3UzMiwKLSsgICAgdnBtYXhfdTMyCi0rKTsKLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5q c29uIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgky MDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgkyMDI1LTA5LTE3IDE3OjQxOjIxLjEz ODgwNTAwNyArMDMwMAotQEAgLTEgKzEgQEAKLS17ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6 ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0 ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhk ZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjQyZmE4MzMyMmFh OWZkNjcyM2I3N2QzNWQwY2FjYjkyY2JiNmU3ZjU3M2NlMTFjNTVmNTIyNTI5Mjg2NmY4ZjQiLCJJ ZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJl ODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNj NDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1J VCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhi YmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQx M2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiJkOTM4 ZThhYjBiOWFiNjdlNzRhMWE0ZjQ4ZjIzZmRjZTk1NmQwYWQzYTNmNjE0N2FlNzYxMmE5Mjc2M2M4 OGQ1IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4 Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZj MmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9j L0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2 Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4 YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dC Sy50eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0YjIw NmYyMmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAx NTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIy LUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2Ew OTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2Ex NzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9J U08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4 YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0 YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMi LCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5 NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJj ZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRh ZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIx ZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4 dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2Nj ZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2 YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5 LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2 ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMz NmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNP LTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0 NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2 ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwi ZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3 NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEz OGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIs ImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBj OGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4 MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIs ImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVm MmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcw ZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEi LCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNm YWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhhOGYw N2EyZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2IiLCJk b2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUw ZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNi YmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBl NCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0 MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0 IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRi NTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5 ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dz LTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUw ZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4 ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRv Yy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJi Y2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4 NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdi OGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0 MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgu dHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2Jj M2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3 YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFj LWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIy N2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3 YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZm YyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1ZmRj OGU4YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21sIjoi ODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2 ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6ImM0NGMwMDI2NDFhZGI1ZWJjNDM2ODcwN2E4Y2MwYTA3 NmQyZjMzZTZhNWMyN2IxYjY5OTg4ZWI1MTVmNTY1M2QiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEz MDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjki LCJzcmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFlYTMy OTllODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhj NGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9l dWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUy YzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4MGY4 NTIwZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hhbmRs ZXMucnMiOiJjYzgzZGMwNzU0NzUxZDY3ZjU2ODhhNjVjNWUwMTkxY2JhMDJmNmJhY2NlODFhMDgx M2EyNDNjYmE1NWVlZjdhIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0 YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIu cnMiOiIxZGMwN2I4MThlNDU4NDZiMTZkZGNhZjBkZTQ2Yzg4NjJkZDdkZjgwOTkxMjNlYzM4Yjk1 YzNmOGFkOWM5MWVjIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5 MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiMGJm MzQxMDNlMGFkMWI4NDJhMTNhMDgyZGVlMmI5MjBiMDVjZjRmYjBmMTQ1YzllZTdmNjA4ZjRjYjRh NTQ0ZiIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQz ZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoi Njk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQw ZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMjYxMmFiYTg2ZTFkMjAxMDk2ZDdlNDdhODU5 YmMzNDQ0Zjg1OTM0Y2M4MmQ4YWRjNmQzOWE0MzA0ZDllZWNmYyIsInNyYy9zaW5nbGVfYnl0ZS5y cyI6IjNjOWU5YzFmOTQ2YWU2MjJjNzI1YmE5NDIxMjQwYzFmYWE5YTA1ZTk1ZmExMGRkNDY0MmEy NWNiMjc2YTFlZGMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRjNzE3 MzExODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNyYy90 ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNkYmZl MzViODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmlnNV9v dXQudHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYwZjI0 NTQwOTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2NTY3 NjkxZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4YmUx ZmMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0ZTY4 NTYyMmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3RfZGF0 YS9ldWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIyYWUy ZTIwNDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQu dHh0IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5MmUx NThiNGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5MDc4 NTc5ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0OTI0 ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJkN2Q3 ZjNiOWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2ZmRm ZjY1MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291 dC50eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNkOTJj MjcwMWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiNjgx OWZlNDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1NWJj NmMwNyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgzNGUy NWRiNTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNyYy90 ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIx NmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRh L2lzb18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5Yzg5 YWNjMjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9q cF9vdXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIxMDBi NmI5YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0Ijoi NmRmMzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNlM2Mz ZGE4MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0 NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNy Yy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRjM2M1 YWRkMWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEvamlz MDIwOF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJkZmU4 ODU5YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0 IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYyYjQx NTg1MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4YjNk MmY3M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUwNiIs InNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYzZjUw Mzg5OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9kYXRh L3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3MDhi N2MzOGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlz X291dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5Yzll YTk5MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQi OiI0NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3OTY4 NjY0OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVm YjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0 aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIx NjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0 N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJz IjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2 Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMx ZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5l ZC5ycyI6ImM5YzAxMDczMGRmYjlmMTQxZDRmZWQxOTM1MGMwOGEyMWFmMjQwOTEzYTU0YmI2NGY1 Y2E4OWZmOTNiNmI3ZDEifSwicGFja2FnZSI6IjcyNjhiMzg2Mjk2YTAyNWU0NzRkNTE0MDY3OGY3 NWQ2ZGU5NDkzYWU1NWE1ZDcwOWVlYjlkZDA4MTQ5OTQ1ZTEifQotXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCi0reyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0 Y2VjODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJ R0hUIjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4 YzMwOGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiIyMmE0ZDIxMGM5MmRhZTlmMzJjNjk0NGVmMzQw ZWU4ZmRkMDI3Zjk5YzA4MTU3N2U4OTA3MTIzZTJhOTMzODNlIiwiSWRlYXMubWQiOiJiNzQ1Mjg5 M2Y1MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJk IiwiTElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQw NTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzky Mzc4MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElD RU5TRS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEz MTljN2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiMWQwOGFlZmNiOTJhZmE4MWIxODE1 NDA0OWM5YWJiY2FkNDU0MGEyM2Y3MTcyZTlmOWJiZWQ1YWYzM2YxYTA4NyIsImNpL21pcmkuc2gi OiI0M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4 M2NmZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJl MWM0YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUy ODE4YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFl NGJmMSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2Zk ODc4MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiYzFiNTIyYjVh Nzk5ODg0ZTUwMDFkYTY2MWY0MmM1YThmNGQwYWNiOWVmMWQ3NGIyMDZmMjJiNWY2NTM2NTYwNiIs ImRvYy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFm Nzk2MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0 ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2 IiwiZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3 ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0Ijoi Mzk1MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1 NWJlOTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5 NDk2NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1 LnR4dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIz NjgzZjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3 YTdlNDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08t ODg1OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJk ZDdlODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0 ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9j L0lTTy04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUx NjIyYmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2 ZWE3YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2Ei LCJkb2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEy NDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5 MDBmYTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJh Yjg1ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4 YjA4ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4 dCI6IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJm YzNlYmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgx NGIxZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6 IjBjYzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNm NTBhNTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4 Zjc4YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0 IjoiZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUz N2NkNWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEy NWZiNWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6 ImVhN2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0 NDI4ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiJkYzcxMzc4YThmMDdhMmQ4NjU5ZjY5ZWU4MWZi ODc5MWZlZjU2YmE4NmYxMjRiNDI5OTc4Mjg1MjM3YmI0YTdiIiwiZG9jL21hY2ludG9zaC50eHQi OiI1NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2 MDM2ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgx NTk0YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0x MjUwLnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhk NTg3MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0 ODVjOGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mv d2luZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4 N2JiZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3 NDhiODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0 ZGUiLCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUy NjA1NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4 dCI6IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2Ey ZWZlOWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAy YTQwNmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93 cy0xMjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0 ODFkNmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4 MDVjNzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJk b2Mvd2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2 Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1 OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUw NTBhOGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJk ZGRkMjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNv ZGluZy1kYXRhLnB5IjoiYmU5ODlkZDI1YzZiOTQ2ZTNlODc0NWZkYzhlOGE4MGZjZjI0YjNiZTk5 YWQwYjRiNzgxNTNiYTNmNmFiNjMxMCIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5 OTFjYmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNj aWkucnMiOiJmMTEwMDBmNjhmYTk3MGFmNzA0MzgwOGVhMjlhMTkwYzI5NWY3NmFjYmM1Mjg5ZWU2 YjE0YTlkODhjZGI5MTljIiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3 MzFmMTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiI4 YTYxN2NjNTcwMzIwOTJkNjU4NTBlYjI3ZTAwZGU2ODdjODBhZWEzMjk5ZTgzOWExZjU4YjQyZDBi MzVhYmYzIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5 Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFm YzcyZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJi OSIsInNyYy9nYjE4MDMwLnJzIjoiODA4NTg3MTY4ZDczZjBjODBmODUyMGYwY2E5YjE2MTg2NmVk MmVmZWIxN2EwNWU4NWZkZjNiOGVmZTdiYTI4YSIsInNyYy9oYW5kbGVzLnJzIjoiYjA4Y2VmMWY1 Nzg1YmI2YTQ4MjJmMmU4NDRjNmRmMWIwNDZiNzM3YjdhMDc1ZTQ1OTNlYWE4YzQyMDhlOWZlMiIs InNyYy9pc29fMjAyMl9qcC5ycyI6IjliYjQ4NWU4MjU3NGY0YjdkNGIyMzY0ZjBmZjI3NmFjYjZh MGJjMTExNzU4NDIwYTNiMGVjNWUwNGMxOTY2NTIiLCJzcmMvbGliLnJzIjoiODM0ZjQ0YjY3MGVj NDhlZTgyYzBlMTIyMjNkMTU2NzMxM2ZkZDlmODhiY2E1ZjRiMTE3YzgyYzE4MjhmNTU5ZiIsInNy Yy9tYWNyb3MucnMiOiIyMDA5OTdmODg3MGRlOGJmZDhjZGM0NzVlOTIxMTVkZjQyMTA4YzBkZjY2 MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwic3JjL21lbS5ycyI6Ijk0ODU3MTEzN2QzYjE1MWRmOGRi NGZiMmM3MzNlNzRhZTU5NWQwNTVjZGYwYWQ4M2FiY2FiOTM0MWQ2YWRhYmUiLCJzcmMvcmVwbGFj ZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhjMWNhMmJkZmEwZTUxZTg0M2VjMjgzMjY5NTA5NTJhZDhi Yzk2NTY5ZmViOTNhYzYyMzA4Iiwic3JjL3NoaWZ0X2ppcy5ycyI6IjY5NTFhZTY3ZTM2YjFhMTJm YTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUwZTJiZGU1MjA2MGIyOWJkMGYxNmQ5ZDkiLCJzcmMvc2lt ZF9mdW5jcy5ycyI6IjBiNzZlYWU1ZWYyYzc4ODFmY2VkZWJiZDhjZDY1MmI1MzNlNzlmNjk0NDc2 NjhhM2U5YjhlM2EyYTY2OGU3NGMiLCJzcmMvc2luZ2xlX2J5dGUucnMiOiIzYWQ4NzExNmZiMzM5 NDM0YTRiNThlOGYyYjE1NDg1ZjJiNjZiOWY3ODE0ZDcwOGYxNjE5NGVkMDhmNmQ2Y2NmIiwic3Jj L3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6IjRjNWE4NjkxZjhkYzcxNzMxMTg4OWM2Mzg5NDAyNmQy ZmI2MjcyNWE4NmM0MjA4Y2EyNzRhOWNjOGQ0MmE1MDMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW5f cmVmLnR4dCI6Ijk5ZDM5OWUxNzc1MGNmOWM3Y2YzMGJiMjUzZGJmZTM1YjgxYzRmY2JkZWFkOTNj ZmE0OGIxNDI5MjEzNDczYzciLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4dCI6IjYxOTNjYTk3 YzI5N2FhMjBlMDkzOTYwMzhkMThlOTM4YmI3ZWEzMzFjMjZmMGYyNDU0MDk3Mjk2NzIzYTBiMTMi LCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQiOiIzNjU2NzY5MWY1NTdkZjE0NGY2Y2M1 MjAwMTVhODcwMzhkZmExNTZmMjk2ZmNmMTAzYjU2YWU5YTcxOGJlMWZjIiwic3JjL3Rlc3RfZGF0 YS9ldWNfa3JfaW4udHh0IjoiYzg2YTcyMjRmMzIxNWZhMGQwNGU2ODU2MjJhNzUyZmRjNzI3NjNl OGFlMDc2MjMwYzdmZDYyZGU1N2VjNDA3NCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50 eHQiOiIxZjQxOWY0Y2E0N2Q3MDhiNTRjNzNjNDYxNTQ1YTAyMmFlMmUyMDQ5OGZkYmY4MDA1YTQ4 M2Q3NTJhMjA0ODgzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCI6ImU3ZjMyZTAyNmY3 MGJlMWUxYjU4ZTAwNDdiYWY3ZDNkMmM1MjAyNjljNGY5Yjk5OTJlMTU4YjRkZWNiMGExYTMiLCJz cmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCI6ImM5OTA3ODU3OTgwYjIwYjhlOWUzYjU4 NDQ4MmVkNjU2N2EyYmU2MTg1ZDcyMjM3YjYzMjJmMDQwNDk0NDkyNGUiLCJzcmMvdGVzdF9kYXRh L2diMTgwMzBfaW4udHh0IjoiYWI3MjMxYjJkM2U5YWZhY2RiZDdkN2YzYjllNTM2MWE3ZmY5Zjdl MWNmZGI0ZjNiZDkwNWI5MzYyYjMwOWU1MyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYu dHh0IjoiZGM1MDY5NDIxYWRjYTIwNDNjNTVmNTAxMmI1NWE3NmZkZmY2NTFkMjJlNmU2OTlmZDA5 NzhmOGQ1NzA2ODE1YyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0IjoiZjAyMDhkNTI3 ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1Y2YxMmQ4YTEwNGIyOTQzZDkyYzI3MDFmMGMzMzY0ZGFjMSIs InNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCI6IjY4MTlmZTQ3NjI3ZTRlYTAxMDI3 MDAzZmM1MTRiOWYyMWExMzIyZTczMmQ3ZjFmYjkyY2M2YzU0NTViYzZjMDciLCJzcmMvdGVzdF9k YXRhL2lzb18yMDIyX2pwX2luLnR4dCI6ImNkMjRiYmRjYjE4MzRlMjVkYjU0NjQ2ZmJmNGM0MTU2 MGExM2RjNzU0MGY2YmUzZGJhNGY1ZDk3ZDQ0NTEzYWYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIy X2pwX2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2 ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQu dHh0IjoiOWI2ZjAxNTMyOWRkYTZjM2Y5ZWU1Y2U2ZGJkNmZhOWM4OWFjYzIxMjgzZTg4NjgzNmM3 OGI4ZDgzMzQ4MGMyMSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQiOiI3 OGNiMjYwMDkzYTIwMTE2YWQ5YTQyZjQzYjA1ZDE4NDhjNWFiMTAwYjZiOWE4NTA3NDk4MDllOTQz ODg0YjM1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dCI6IjZkZjMwMzA1NTNmZmIwYTY2 MTViYjMzZGM4ZWE5ZGNhNmQ5NjIzYTkwMjhlMmZmZWM3NTRjZTNjM2RhODI0Y2MiLCJzcmMvdGVz dF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQw OTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2ppczAy MDhfb3V0LnR4dCI6IjRlYzI0NDc3ZTE2NzVjZTc1MDczM2JkYzNjNWFkZDFjZDI3YjZiZDRjZTFm MDkyODk1NjQ2NDZlOTY1NGU4NTciLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQi OiJjM2UxY2VmNTAzMmIyYjFkOTNhNDA2ZjMxZmY5NDBjNGUyZGZlODg1OWI4YjE3Y2EyNzYxZmVl N2E3NWEwZTQ4Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dCI6ImMwMTFmMGRkNzJiZDdj OGNkOTIyZGY5Mzc0ZWY4ZDI3NjlhNzcxOTA1MTRjNzdmNmM2MmI0MTU4NTJlZWI5ZmUiLCJzcmMv dGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dCI6IjdkOTQ1OGIzZDJmNzNlNzA5MmE3ZjUwNWMw OGNlMWQyMzNkZGUxOGFhNjc5ZmJjZjk4ODkyNTYyMzljYzllMDYiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbi50eHQiOiIwMmUzODljY2VmMGRkMjEyMmU2M2Y1MDM4OTk0MDJjYjdmNzk3OTEy YzI0NDRjYzgwYWI5MzEzMTExNmM1NTI0Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVm LnR4dCI6IjUxMmY5ODU5NTBjYTkwMmU2NDNjODg2ODJkYmE5NzA4YjdjMzhkM2M1ZWMyOTI1MTY4 YWIwMGFjOTRhYjE5ZjkiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IjoiNWZiYzQ0 ZGE3YmY2MzliZjZjZmUwZmExZmQzZWJhNzEwMmI4OGY4MTkxOWM5ZWE5OTEzMDI3MTJmNjk0MjZm YiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0IjoiNDY2MzIyYzZmZWQ4Mjg2 YzY0NTgyNzMxNzU1MjkwYzIyOTY1MDhlZmRkMjU4ODI2ZTYyNzk2ODY2NDliNDgxZiIsInNyYy90 ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIzYTJlMTFiMDJiM2I4ZDE1ZmI1NjEzYTYyNWUzZWRiMmM2 MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4ODIwMGQiLCJzcmMvdGVzdGluZy5ycyI6ImY1OWU2NzFl OTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcxZTY3MGJmNTJmN2UyMGViMTYwNWQ5OTBhYWZhMTg5NGUi LCJzcmMvdXRmXzE2LnJzIjoiYzA3MWExNDdmYWQzOGQ3NTBjMmMyNDdlMTQxYjc2YjkyOWE0ODAw N2I5OWYyNmIyOTIyYjljYWVjZGFmMmYyNSIsInNyYy91dGZfOC5ycyI6IjdiN2Q4ODdiMzQ3ZjFh ZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRjZTc2YzI4ZjNiNDVjMTk0Njc4NTFhYTc4MzkiLCJzcmMv dmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4YTE1NTRhNzE2OWRlODczMWVhOWNkZWQ3YWM2M2VhMzVj YWFiZGQxYzI3YThkZGU2OGMyN2IiLCJzcmMveF91c2VyX2RlZmluZWQucnMiOiI5NDU2Y2E0NjE2 OGVmODZjOTgzOTlhMjUzNmY1NzdlZjdiZTNjZGRlOTBjMGM1MTM5MmQ4YWM0ODUxOWQzZmFlIn0s InBhY2thZ2UiOiJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQwNjMxNjgxODQ3ZmE3YjZmMmVh YTdkYWI3NjE5OTQzYmM0ZjU5In0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9DYXJnby50b21sCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwJMjAyNS0wOS0x NyAxNzo0MToyMS4xMzg4MDUwMDcgKzAzMDAKLUBAIC0xMSw4ICsxMSw5IEBACi0gCi0gW3BhY2th Z2VdCi0gZWRpdGlvbiA9ICIyMDE4IgotK3J1c3QtdmVyc2lvbiA9ICIxLjM2IgotIG5hbWUgPSAi ZW5jb2RpbmdfcnMiCi0tdmVyc2lvbiA9ICIwLjguMzMiCi0rdmVyc2lvbiA9ICIwLjguMzQiCi0g YXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0KLSBkZXNj cmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBFbmNvZGlu ZyBTdGFuZGFyZCIKLSBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgot QEAgLTM2LDEzICszNywxMyBAQAotIFtwcm9maWxlLnJlbGVhc2VdCi0gbHRvID0gdHJ1ZQotIAot K1tkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5kXQotK3ZlcnNpb24gPSAiMC4xLjAiCi0r b3B0aW9uYWwgPSB0cnVlCi0rCi0gW2RlcGVuZGVuY2llcy5jZmctaWZdCi0gdmVyc2lvbiA9ICIx LjAiCi0gCi0tW2RlcGVuZGVuY2llcy5wYWNrZWRfc2ltZF0KLS12ZXJzaW9uID0gIjAuMy45Igot LW9wdGlvbmFsID0gdHJ1ZQotLQotIFtkZXBlbmRlbmNpZXMuc2VyZGVdCi0gdmVyc2lvbiA9ICIx LjAiCi0gb3B0aW9uYWwgPSB0cnVlCi1AQCAtNzQsMTAgKzc1LDQgQEAKLSBsZXNzLXNsb3ctYmln NS1oYW56aS1lbmNvZGUgPSBbXQotIGxlc3Mtc2xvdy1nYi1oYW56aS1lbmNvZGUgPSBbXQotIGxl c3Mtc2xvdy1rYW5qaS1lbmNvZGUgPSBbXQotLXNpbWQtYWNjZWwgPSBbCi0tICAgICJwYWNrZWRf c2ltZCIsCi0tICAgICJwYWNrZWRfc2ltZC9pbnRvX2JpdHMiLAotLV0KLS0KLS1bYmFkZ2VzLnRy YXZpcy1jaV0KLS1yZXBvc2l0b3J5ID0gImhzaXZvbmVuL2VuY29kaW5nX3JzIgotK3NpbWQtYWNj ZWwgPSBbImFueV9hbGxfd29ya2Fyb3VuZCJdCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JF QURNRS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQJMjAy NS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvUkVBRE1FLm1kCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM4ODA1MDA3ICswMzAw Ci1AQCAtMTY3LDEzICsxNjcsMTUgQEAKLSAKLSAjIyMgYHNpbWQtYWNjZWxgCi0gCi0tRW5hYmxl cyBTSU1EIGFjY2VsZXJhdGlvbiB1c2luZyB0aGUgbmlnaHRseS1kZXBlbmRlbnQgYHBhY2tlZF9z aW1kYCBjcmF0ZS4KLStFbmFibGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVzaW5nIHRoZSBuaWdodGx5 LWRlcGVuZGVudCBgcG9ydGFibGVfc2ltZGAgc3RhbmRhcmQKLStsaWJyYXJ5IGZlYXR1cmUuCi0g Ci0gVGhpcyBpcyBhbiBvcHQtaW4gZmVhdHVyZSwgYmVjYXVzZSBlbmFibGluZyB0aGlzIGZlYXR1 cmUgX29wdHMgb3V0XyBvZiBSdXN0J3MKLSBndWFyYW50ZWVzIG9mIGZ1dHVyZSBjb21waWxlcnMg Y29tcGlsaW5nIG9sZCBjb2RlIChha2EuICJzdGFiaWxpdHkgc3RvcnkiKS4KLSAKLSBDdXJyZW50 bHksIHRoaXMgaGFzIG5vdCBiZWVuIHRlc3RlZCB0byBiZSBhbiBpbXByb3ZlbWVudCBleGNlcHQg Zm9yIHRoZXNlCi0tdGFyZ2V0czoKLSt0YXJnZXRzIGFuZCBlbmFibGluZyB0aGUgYHNpbWQtYWNj ZWxgIGZlYXR1cmUgaXMgZXhwZWN0ZWQgdG8gYnJlYWsgdGhlIGJ1aWxkCi0rb24gb3RoZXIgdGFy Z2V0czoKLSAKLSAqIHg4Nl82NAotICogaTY4NgotQEAgLTE4NSwyMiArMTg3LDYgQEAKLSBSdXN0 XywgeW91IHNob3VsZCBlbmFibGUgdGhpcyBmZWF0dXJlLiBPdGhlcndpc2UsIHBsZWFzZSBfZG8g bm90XyBlbmFibGUgdGhpcwotIGZlYXR1cmUuCi0gCi0tX05vdGUhXyBJZiB5b3UgYXJlIGNvbXBp bGluZyBmb3IgYSB0YXJnZXQgdGhhdCBkb2VzIG5vdCBoYXZlIDEyOC1iaXQgU0lNRAotLWVuYWJs ZWQgYXMgcGFydCBvZiB0aGUgdGFyZ2V0IGRlZmluaXRpb24gYW5kIHlvdSBhcmUgZW5hYmxpbmcg MTI4LWJpdCBTSU1ECi0tdXNpbmcgYC1DIHRhcmdldF9mZWF0dXJlYCwgeW91IG5lZWQgdG8gZW5h YmxlIHRoZSBgY29yZV9hcmNoYCBDYXJnbyBmZWF0dXJlCi0tZm9yIGBwYWNrZWRfc2ltZGAgdG8g Y29tcGlsZSBhIGNyYXRlcy5pbyBzbmFwc2hvdCBvZiBgY29yZV9hcmNoYCBpbnN0ZWFkIG9mCi0t dXNpbmcgdGhlIHN0YW5kYXJkLWxpYnJhcnkgY29weSBvZiBgY29yZTo6YXJjaGAsIGJlY2F1c2Ug dGhlIGBjb3JlOjphcmNoYAotLW1vZHVsZSBvZiB0aGUgcHJlLWNvbXBpbGVkIHN0YW5kYXJkIGxp YnJhcnkgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCB0aGUKLS1hc3N1bXB0aW9uIHRoYXQgdGhlIENQ VSBkb2Vzbid0IGhhdmUgMTI4LWJpdCBTSU1ELiBBdCBwcmVzZW50IHRoaXMgYXBwbGllcwotLW1h aW5seSB0byAzMi1iaXQgQVJNIHRhcmdldHMgd2hvc2UgZmlyc3QgY29tcG9uZW50IGRvZXMgbm90 IGluY2x1ZGUgdGhlCi0tc3Vic3RyaW5nIGBuZW9uYC4KLS0KLS1UaGUgZW5jb2RpbmdfcnMgc2lk ZSBvZiB0aGluZ3MgaGFzIG5vdCBiZWVuIHByb3Blcmx5IHNldCB1cCBmb3IgUE9XRVIsCi0tUG93 ZXJQQywgTUlQUywgZXRjLiwgU0lNRCBhdCB0aGlzIHRpbWUsIHNvIGV2ZW4gaWYgeW91IHdlcmUg dG8gZm9sbG93Ci0tdGhlIGFkdmljZSBmcm9tIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHlvdSBw cm9iYWJseSBzaG91bGRuJ3QgdXNlCi0tdGhlIGBzaW1kLWFjY2VsYCBvcHRpb24gb24gdGhlIGxl c3MgbWFpbnN0cmVhbSBhcmNoaXRlY3R1cmVzIGF0IHRoaXMKLS10aW1lLgotLQotIFVzZWQgYnkg RmlyZWZveC4KLSAKLSAjIyMgYHNlcmRlYAotQEAgLTM4MSw4ICszNjcsOSBAQAotIGFwcGVhciB0 byB0cmVhdCBNU1JWIGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFraW5nLCBzbyBpdCB3b3VsZCBiZSB1 c2VsZXNzIGZvcgotIHRoaXMgY3JhdGUgdG8gdHJlYXQgTVNSViBjaGFuZ2VzIGFzIHNlbXZlci1i cmVha2luZy4KLSAKLS1BcyBvZiAyMDIxLTAyLTA0LCBNU1JWIGFwcGVhcnMgdG8gYmUgUnVzdCAx LjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBhbmQKLStBcyBvZiAyMDI0LTA0LTA0LCBNU1JWIGFw cGVhcnMgdG8gYmUgUnVzdCAxLjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBhbmQKLSAxLjQyLjAg Zm9yIGRvYyB0ZXN0cyB0byBwYXNzIHdpdGhvdXQgZXJyb3JzIGFib3V0IHRoZSBnbG9iYWwgYWxs b2NhdG9yLgotK1dpdGggdGhlIGBzaW1kLWFjY2VsYCBmZWF0dXJlLCB0aGUgTVNSViBpcyBldmVu IGhpZ2hlci4KLSAKLSAjIyBDb21wYXRpYmlsaXR5IHdpdGggcnVzdC1lbmNvZGluZwotIAotQEAg LTQ0NiwxMCArNDMzLDE3IEBACi0gLSBbeF0gQWRkIGFjdHVhbGx5IGZhc3QgQ0pLIGVuY29kZSBv cHRpb25zLgotIC0gWyBdIH5JbnZlc3RpZ2F0ZSBbQm9iIFN0ZWFnYWxsJ3MgbG9va3VwIHRhYmxl IGFjY2VsZXJhdGlvbiBmb3IgVVRGLThdKGh0dHBzOi8vZ2l0aHViLmNvbS9Cb2JTdGVhZ2FsbC9D cHBOb3cyMDE4L2Jsb2IvbWFzdGVyL0Zhc3RDb252ZXJzaW9uRnJvbVVURi04L0Zhc3QlMjBDb252 ZXJzaW9uJTIwRnJvbSUyMFVURi04JTIwd2l0aCUyMEMlMkIlMkIlMkMlMjBERkFzJTJDJTIwYW5k JTIwU1NFJTIwSW50cmluc2ljcyUyMC0lMjBCb2IlMjBTdGVhZ2FsbCUyMC0lMjBDJTJCJTJCTm93 JTIwMjAxOC5wZGYpLn4KLSAtIFt4XSBQcm92aWRlIGEgYnVpbGQgbW9kZSB0aGF0IHdvcmtzIHdp dGhvdXQgYGFsbG9jYCAod2l0aCBsZXNzZXIgQVBJIHN1cmZhY2UpLgotLS0gWyBdIE1pZ3JhdGUg dG8gYHN0ZDo6c2ltZGAgb25jZSBpdCBpcyBzdGFibGUgYW5kIGRlY2xhcmUgMS4wLgotKy0gW3hd IE1pZ3JhdGUgdG8gYHN0ZDo6c2ltZGAgfm9uY2UgaXQgaXMgc3RhYmxlIGFuZCBkZWNsYXJlIDEu MC5+Ci0rLSBbIF0gTWlncmF0ZSBgdW5zYWZlYCBzbGljZSBhY2Nlc3MgYnkgbGFyZ2VyIHR5cGVz IHRoYW4gYHU4YC9gdTE2YCB0byBgYWxpZ25fdG9gLgotIAotICMjIFJlbGVhc2UgTm90ZXMKLSAK LSsjIyMgMC44LjM0Ci0rCi0rKiBVc2UgdGhlIGBwb3J0YWJsZV9zaW1kYCBuaWdodGx5IGZlYXR1 cmUgb2YgdGhlIHN0YW5kYXJkIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgYHBhY2tlZF9zaW1kYCBj cmF0ZS4gT25seSBhZmZlY3RzIHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uYWwgbmlnaHRseSBmZWF0 dXJlLgotKyogSW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMgYW5kIG1pbm9yIGNv ZGUgaW1wcm92ZW1lbnRzIGFyb3VuZCBgdW5zYWZlYC4KLSsqIEFkZGVkIGBydXN0LXZlcnNpb25g IHRvIGBDYXJnby50b21sYC4KLSsKLSAjIyMgMC44LjMzCi0gCi0gKiBVc2UgYHBhY2tlZF9zaW1k YCBpbnN0ZWFkIG9mIGBwYWNrZWRfc2ltZF8yYCBhZ2FpbiBub3cgdGhhdCB1cGRhdGVzIGFyZSBi YWNrIHVuZGVyIHRoZSBgcGFja2VkX3NpbWRgIG5hbWUuIE9ubHkgYWZmZWN0cyB0aGUgYHNpbWQt YWNjZWxgIG9wdGlvbmFsIG5pZ2h0bHkgZmVhdHVyZS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL2FzY2lpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9hc2NpaS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMJMjAyNS0wOS0xNyAxNzo0MToy MS4xMzk4MDQ5NjkgKzAzMDAKLUBAIC01MSw2ICs1MSw4IEBACi0gICAgIH0KLSB9Ci0gCi0rLy8g U2FmZXR5IGludmFyaWFudHMgZm9yIG1hc2tzOiBkYXRhICYgbWFzayA9IDAgZm9yIHZhbGlkIEFT Q0lJIG9yIGJhc2ljIGxhdGluIHV0Zi0xNgotKwotIC8vIGBhc2AgdHJ1bmNhdGVzLCBzbyB3b3Jr cyBvbiAzMi1iaXQsIHRvby4KLSAjW2FsbG93KGRlYWRfY29kZSldCi0gcHViIGNvbnN0IEFTQ0lJ X01BU0s6IHVzaXplID0gMHg4MDgwXzgwODBfODA4MF84MDgwdTY0IGFzIHVzaXplOwotQEAgLTYy LDYgKzY0LDkgQEAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2Np aV9uYWl2ZSB7Ci0gICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHkp ID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW5fdW5p dCBlbGVtZW50cyBhbmQgYmUgYWxpZ25lZAotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52 YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscwotKyAgICAgICAgLy8vIHRv IGNvbnZlcnQuIFRoZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KLSAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKAot ICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKLUBAIC03MSwxMCArNzYsMTMgQEAK LSAgICAgICAgICAgICAvLyBZZXMsIG1hbnVhbGx5IG9taXR0aW5nIHRoZSBib3VuZCBjaGVjayBo ZXJlIG1hdHRlcnMKLSAgICAgICAgICAgICAvLyBhIGxvdCBmb3IgcGVyZi4KLSAgICAgICAgICAg ICBmb3IgaSBpbiAwLi5sZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZh cmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5h ZGQoaSkpOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewot ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgaSkpOwotICAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1 c2VkIGhlcmUKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKGkpKSA9IGNvZGVfdW5pdCBhcyAk ZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHJldHVybiBOb25lOwotQEAg LTg1LDkgKzkzLDE1IEBACi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEg YXNjaWlfYWx1IHsKLSAgICAgKCRuYW1lOmlkZW50LAotKyAgICAgLy8gc2FmZXR5IGludmFyaWFu dDogc3JjL2RzdCBNVVNUIGJlIHU4Ci0gICAgICAkc3JjX3VuaXQ6dHksCi0gICAgICAkZHN0X3Vu aXQ6dHksCi0rICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBzdHJpZGVfZm4gbXVzdCBjb25zdW1l IGFuZCBwcm9kdWNlIHR3byB1c2l6ZXMsIGFuZCByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJz dCBub24tYXNjaWkgd2hlbiBpdCBmYWlscwotICAgICAgJHN0cmlkZV9mbjppZGVudCkgPT4gewot KyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBoYXZlIGxlbiBlbGVtZW50cywg c3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQgZm9yCi0rICAgICAgICAvLy8gd3Jp dGUKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29t ZSgpIHdoZW4gaXQgZmFpbHMKLSsgICAgICAgIC8vLyB0byBjb252ZXJ0LiBUaGUgZmlyc3QgdmFs dWUgd2lsbCBiZSBhIHU4IHRoYXQgaXMgPiAxMjcuCi0gICAgICAgICAjW2NmZ19hdHRyKGZlYXR1 cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxsb3cobmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50 KSldCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAk bmFtZSgKLUBAIC05OCw2ICsxMTIsNyBAQAotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0g MHVzaXplOwotICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2Yg YXMgYSBgZ290b2AgZm9yd2FyZAotICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMg d2UgbmVlZCB0byBtdW5jaCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1c2l6ZQotICAgICAgICAg ICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKLSAgICAgICAgICAgICAgICAgICAg IC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBpZiB3ZSBtb3ZlIHRoZSBuYXJyb3dl ciB1bml0Ci0gICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1lbnQuCi1AQCAtMTA2LDYg KzEyMSw3IEBACi0gICAgICAgICAgICAgICAgICAgICBsZXQgc3JjX2FsaWdubWVudCA9IChzcmMg YXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLOwotICAgICAgICAgICAgICAgICAgICAgbGV0 IGRzdF9hbGlnbm1lbnQgPSAoZHN0IGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKLSAg ICAgICAgICAgICAgICAgICAgIGlmIHNyY19hbGlnbm1lbnQgIT0gZHN0X2FsaWdubWVudCB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBiYWlscyBlYXJseSBhbmQgZW5kcyB1 cCBpbiB0aGUgbmHDr3ZlIGJyYW5jaCB3aGVyZSB1c2l6ZS1hbGlnbm1lbnQgZG9lc24ndCBtYXR0 ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgICAgIChBTFVfQUxJR05NRU5UIC0gc3JjX2FsaWdubWVudCkg JiBBTFVfQUxJR05NRU5UX01BU0sKLUBAIC0xMzQsMjUgKzE1MCw0MCBAQAotICAgICAgICAgICAg ICAgICAgICAgLy8geDg2XzY0IHNob3VsZCBiZSB1c2luZyBTU0UyIGluIGR1ZSBjb3Vyc2UsIGtl ZXBpbmcgdGhlIG1vdmUKLSAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVudCBoZXJl LiBJdCB3b3VsZCBiZSBnb29kIHRvIHRlc3Qgb24gbW9yZSBBUk0gQ1BVcwotICAgICAgICAgICAg ICAgICAgICAgLy8gYW5kIG9uIHJlYWwgTUlQUyBhbmQgUE9XRVIgaGFyZHdhcmUuCi0rICAgICAg ICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgYHVudGlsX2FsaWdubWVudGAgYnl0ZXMK LSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwot ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFy aWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2Rl X3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0 OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1i ZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOwot ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51 c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICBs b29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG51bV9hc2NpaSBpcyBr bm93biB0byBiZSBhIGJ5dGUgaW5kZXggb2YgYSBub24tYXNjaWkgYnl0ZSBkdWUgdG8gc3RyaWRl X2ZuJ3MgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobnVt X2FzY2lpKSA9ICRzdHJpZGVfZm4oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVkIHNpbmNlIHdlIGhh dmUgYXQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3QgQUxVX1NUUklERV9T SVpFIGRhdGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGllZCBzbyBmYXIsIHdo aWNoIGFjY29yZGluZyB0byB0aGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50 aWxfYWxpZ25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90aCBzcmMgYW5kIGRz dCB0byBiZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbmVkIHRvIHVzaXpl IGFmdGVyIHRoaXMgYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZGQob2Zm c2V0KSBhcyAqY29uc3QgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdC5h ZGQob2Zmc2V0KSBhcyAqbXV0IHVzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICkgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbnVtX2FzY2lpOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBp bnZhcmlhbnQgaGVyZSBieSBpbmRleGluZyBpbnRvIG5vbi1hc2NpaSBieXRlCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKCgqKHNyYy5hZGQob2Zmc2V0KSksIG9mZnNl dCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJlciBvZiBieXRlcyBj b3BpZWQgc28gZmFyLCBhbmQKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWludGFpbnMg dXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgotICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMg bG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAv LyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRl YCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9m ZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTYwLDExICsxOTEsMTcgQEAK LSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICB9Ci0rCi0rICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSwg c2FtZSBhcyBhc2NpaV9uYWl2ZSwgYW5kIGhhcyBubyByZXF1aXJlbWVudHMKLSsgICAgICAgICAg ICAvLyBvdGhlciB0aGFuIHNyYy9kc3QgYmVpbmcgdmFsaWQgZm9yIHRoZSB0aGUgcmlnaHQgbGVu cwotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAgICAgbGV0IGNv ZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91 bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZl dHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAg ICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0gICAgICAgICAg ICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgIH0KLUBAIC0xNzYsOSArMjEzLDE2IEBA Ci0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYmFzaWNfbGF0aW5fYWx1 IHsKLSAgICAgKCRuYW1lOmlkZW50LAotKyAgICAvLyBzYWZldHkgaW52YXJpYW50OiB1c2UgdTgg Zm9yIHNyYy9kZXN0IGZvciBhc2NpaSwgYW5kIHUxNiBmb3IgYmFzaWNfbGF0aW4KLSAgICAgICRz cmNfdW5pdDp0eSwKLSAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgLy8gc2FmZXR5IGludmFyaWFu dDogc3RyaWRlIGZ1bmN0aW9uIG11c3QgbXVuY2ggQUxVX1NUUklERV9TSVpFKnNpemUoc3JjX3Vu aXQpIGJ5dGVzIG9mZiBvZiBzcmMgYW5kCi0rICAgIC8vIHdyaXRlIEFMVV9TVFJJREVfU0laRSpz aXplKGRzdF91bml0KSBieXRlcyB0byBkc3QKLSAgICAgICRzdHJpZGVfZm46aWRlbnQpID0+IHsK LSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW4gZWxlbWVudHMs IHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgotKyAgICAgICAgLy8vIHdy aXRlCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNv bWUoKSB3aGVuIGl0IGZhaWxzCi0rICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZh bHVlIHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgotICAgICAgICAgI1tjZmdfYXR0cigKLSAg ICAgICAgICAgICBmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCi0gICAgICAgICAgICAgYWxsb3co bmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNzKQotQEAgLTE5Miw2 ICsyMzYsOCBAQAotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAg ICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9y d2FyZAotICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVu dGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5j aCBmcm9tIHNyYy9kZXN0IHVudGlsIHdlIGFyZSBhbGlnbmVkIHRvIHVzaXplCi0rICAgICAgICAg ICAgICAgIC8vIFdlIGVuc3VyZSBiYXNpYy1sYXRpbiBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFz IGFzY2lpLCBzdGFydGluZyB3aXRoIGFzY2lpIHNpbmNlIGl0IGlzIHNtYWxsZXIuCi0gICAgICAg ICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0gewotICAgICAgICAgICAgICAgICAg ICAgLy8gQ2hlY2sgaWYgdGhlIG90aGVyIHVuaXQgYWxpZ25zIGlmIHdlIG1vdmUgdGhlIG5hcnJv d2VyIHVuaXQKLSAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFsaWdubWVudC4KLUBAIC0yMzcs MjQgKzI4MywzNyBAQAotICAgICAgICAgICAgICAgICAgICAgLy8geDg2XzY0IHNob3VsZCBiZSB1 c2luZyBTU0UyIGluIGR1ZSBjb3Vyc2UsIGtlZXBpbmcgdGhlIG1vdmUKLSAgICAgICAgICAgICAg ICAgICAgIC8vIHRvIGFsaWdubWVudCBoZXJlLiBJdCB3b3VsZCBiZSBnb29kIHRvIHRlc3Qgb24g bW9yZSBBUk0gQ1BVcwotICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG9uIHJlYWwgTUlQUyBh bmQgUE9XRVIgaGFyZHdhcmUuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBm b3IgYHVudGlsX2FsaWdubWVudGAgYnl0ZXMKLSAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVu dGlsX2FsaWdubWVudCAhPSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91 bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNv ZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0 KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgotICAg ICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAg ICAgIHVudGlsX2FsaWdubWVudCAtPSAxOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJ WkU7Ci0gICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAhJHN0cmlkZV9mbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGVzZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBh dAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RSSURFX1NJWkUg ZGF0YSBpbiB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZhciwgd2hpY2gg YWNjb3JkaW5nIHRvIHRoZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbF9h bGlnbm1lbnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBhbmQgZHN0IHRv IGJlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0 ZXIgdGhpcyBhZGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkZChvZmZzZXQp IGFzICpjb25zdCB1c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmFkZChv ZmZzZXQpIGFzICptdXQgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgKSB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMg dG8gYmUgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBs b29wIGl0ZXJhdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RS SURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBv ZmZzZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMK LSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdo aWNoIG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgotICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci1AQCAtMjYyLDExICszMjEsMTUgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92ZXIgYnl0ZXMKLSAg ICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3Vu aXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+ IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNv ZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICAgICAqKGRz dC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICB9Ci1AQCAtMjc3LDcgKzM0MCwxMSBAQAotIAot ICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGxhdGluMV9hbHUgewotKyAg ICAvLyBzYWZldHkgaW52YXJpYW50OiBzdHJpZGUgZnVuY3Rpb24gbXVzdCBtdW5jaCBBTFVfU1RS SURFX1NJWkUqc2l6ZShzcmNfdW5pdCkgYnl0ZXMgb2ZmIG9mIHNyYyBhbmQKLSsgICAgLy8gd3Jp dGUgQUxVX1NUUklERV9TSVpFKnNpemUoZHN0X3VuaXQpIGJ5dGVzIHRvIGRzdAotICAgICAoJG5h bWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRzdF91bml0OnR5LCAkc3RyaWRlX2ZuOmlkZW50KSA9 PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhhdmUgbGVuIGVsZW1l bnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBmb3IKLSsgICAgICAgIC8v LyB3cml0ZQotICAgICAgICAgI1tjZmdfYXR0cigKLSAgICAgICAgICAgICBmZWF0dXJlID0gImNh cmdvLWNsaXBweSIsCi0gICAgICAgICAgICAgYWxsb3cobmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxp Z25tZW50LCBjYXN0X2xvc3NsZXNzKQotQEAgLTI4Nyw2ICszNTQsOCBAQAotICAgICAgICAgICAg IGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBv bmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAotICAgICAgICAgICAgIGxvb3Ag ewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRo ZSBudW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCBmcm9tIHNyYy9kZXN0IHVudGlsIHdl IGFyZSBhbGlnbmVkIHRvIHVzaXplCi0rICAgICAgICAgICAgICAgIC8vIFdlIGVuc3VyZSB0aGUg VVRGLTE2IHNpZGUgaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0aGUgTGF0aW4tMSBzaWRlLCBz dGFydGluZyB3aXRoIExhdGluLTEgc2luY2UgaXQgaXMgc21hbGxlci4KLSAgICAgICAgICAgICAg ICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiA6 OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA8IDo6Y29yZTo6bWVtOjpzaXplX29m Ojo8JGRzdF91bml0PigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnBhY2sKLUBA IC0zMTMsMTkgKzM4MiwzMCBAQAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICB9OwotICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURF X1NJWkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0 aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCi0g ICAgICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMg JGRzdF91bml0OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGlz IHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgotICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVu dCAtPSAxOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0 IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAg ICAgICAgICBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX2ZuKAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBi ZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBoYXZlIGF0Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMs IGFuZCBvZmZzZXQgaXMgdGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bWJl ciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcgdG8gdGhlCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBh Ym92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFkZAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGll ZCBzbyBmYXIsIGFuZAotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB1c2l6 ZSBhbGlnbm1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uCi0gICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29w IHdpbGwgY29udGludWUgYXMgbG9uZyBhcwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBv ZmZzZXQgPD0gbGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVhbnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5 dGVzIHRvIHN0aWxsIGJlIHJlYWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0 ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0zMzMsNyArNDEzLDkgQEAKLSAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWlu LCBmb3IgbGVmdG92ZXIgYnl0ZXMKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewot KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAg ICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAg ICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0g ICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotQEAgLTM0OCwxMSArNDMwLDE5IEBACi0gICAg ICAgICAkbmFtZTppZGVudCwKLSAgICAgICAgICRzcmNfdW5pdDp0eSwKLSAgICAgICAgICRkc3Rf dW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUg YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfYm90aF9hbGln bmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWly ZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93 cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJp ZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZv ciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAg ICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhp cyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAot ICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQKLSAgICAgKSA9PiB7Ci0rICAg ICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBv ZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KLSsgICAgICAgIC8vLwotKyAgICAgICAg Ly8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBl bmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBi ZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFu ZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKAotICAgICAg ICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKLUBAIC0zNjAsNiArNDUwLDcgQEAKLSAgICAg ICAgICAgICBsZW46IHVzaXplLAotICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNp emUpPiB7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAg ICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFk aW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzLgotICAgICAg ICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgbGV0 IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAg ICAgICAvLyBYWFggU2hvdWxkIHdlIGZpcnN0IHByb2Nlc3Mgb25lIHN0cmlkZSB1bmNvbmRpdGlv bmFsbHkgYXMgdW5hbGlnbmVkIHRvCi1AQCAtMzY4LDIzICs0NTksMjkgQEAKLSAgICAgICAgICAg ICAgICAgLy8gb24gSGFzd2VsbCwgaXQgd291bGQgbWFrZSBzZW5zZSB0byBqdXN0IHVzZSB1bmFs aWduZWQgYW5kIG5vdCBib3RoZXIKLSAgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcuIE5lZWQg dG8gYmVuY2htYXJrIG9sZGVyIGFyY2hpdGVjdHVyZXMgYmVmb3JlIGRlY2lkaW5nLgotICAgICAg ICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QgYXMgdXNpemUpICYgU0lNRF9BTElHTk1F TlRfTUFTSzsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBjaGVja2luZyB3aGV0aGVyIHNy YyBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgIGlmICgoc3JjIGFzIHVzaXplKSAmIFNJTURf QUxJR05NRU5UX01BU0spID09IDAgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBD aGVja2luZyB3aGV0aGVyIGRzdCBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgICAgICBpZiBk c3RfbWFza2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3Jp dGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxp Z25tZW50cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9ib3RoX2Fs aWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNl dCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0 IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQv d3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUg YWxpZ25tZW50cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9zcmNf YWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJ WkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zm c2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUg YXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlk ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotQEAgLTM5MywyMCArNDkwLDI0IEBACi0gICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgewot ICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0la RSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9kc3RfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJ REVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURF X1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9T SVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRk KG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lN RF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURf U1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotQEAgLTQxNSw4ICs1MTYsMTAgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IHVzZXMgbGVuIGludmFyaWFudCBoZXJlIGFuZCBiZWxvdwotICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiB1cGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0 OwotQEAgLTQzMywxMyArNTM2LDIxIEBACi0gICAgICAgICAkbmFtZTppZGVudCwKLSAgICAgICAg ICRzcmNfdW5pdDp0eSwKLSAgICAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3Vu aXQKLSAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAg ICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZCBzcmMv ZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUg c3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50 LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVk IHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgMipTSU1EX1NUUklE RV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkZG91YmxlX3N0cmlkZV9ib3RoX2Fs aWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1 aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5n L3dyaXRpbmcgMipTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAk ZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZDppZGVudAotICAgICApID0+IHsKLS0gICAgICAgICNb aW5saW5lKGFsd2F5cyldCi0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFs aWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KLSsg ICAgICAgIC8vLwotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJl dHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3Qg ZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUg bm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUg aXQgaXMgZm91bmQgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKAotICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKLSAgICAgICAg ICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAotQEAgLTQ1MCw4ICs1NjEsMTAgQEAKLSAgICAgICAg ICAgICAvLyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9mIGFzIGEgZ290byBmb3J3YXJk IHdpdGhvdXQKLSAgICAgICAgICAgICAvLyBhY3R1YWxseSBsb29waW5nCi0gICAgICAgICAgICAg J291dGVyOiBsb29wIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNr IHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURf U1RSSURFX1NJWkVgIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9T SVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUg dW5hbGlnbmVkCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0 byBjYWxsIHNpbmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQvd3JpdGUKLSAgICAgICAgICAg ICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMsIGRzdCkgewotICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKLSAgICAgICAgICAgICAgICAgICAgIH0K LUBAIC00NjEsMzcgKzU3NCw1NCBAQAotICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2ls bCBiZSBlbm91Z2ggbW9yZSB0byBqdXN0aWZ5IG1vcmUgZXhwZW5zZQotICAgICAgICAgICAgICAg ICAgICAgLy8gaW4gdGhlIGNhc2Ugb2Ygbm9uLUFTQ0lJLgotICAgICAgICAgICAgICAgICAgICAg Ly8gVXNlIGFsaWduZWQgcmVhZHMgZm9yIHRoZSBzYWtlIG9mIG9sZCBtaWNyb2FjaGl0ZWN0dXJl cy4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzcmNfdW5pdHMgdGhh dCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBpcyBhbGlnbmVkLgot KyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBsZXNzIHRoYXQgU0lNRF9BTElHTk1FTlQs IHdoaWNoIGlzIGFsc28gU0lNRF9TVFJJREVfU0laRSAoYXMgZG9jdW1lbnRlZCkKLSAgICAgICAg ICAgICAgICAgICAgIGxldCB1bnRpbF9hbGlnbm1lbnQgPSAoKFNJTURfQUxJR05NRU5UCi0gICAg ICAgICAgICAgICAgICAgICAgICAgLSAoKHNyYy5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1E X0FMSUdOTUVOVF9NQVNLKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAmIFNJTURfQUxJR05N RU5UX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAgICAgLyB1bml0X3NpemU7Ci0tICAgICAg ICAgICAgICAgICAgICAvLyBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJmbG93LCBiZWNhdXNlIGV2 ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBhZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAz Mi1iaXQgUEFFIGNhc2UgdGhlCi0gICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIHNwYWNl IGhvbGRzIGVub3VnaCBjb2RlIHRoYXQgdGhlIHNsaWNlIGxlbmd0aCBjYW4ndCBiZSB0aGF0Ci0g ICAgICAgICAgICAgICAgICAgICAvLyBjbG9zZSB0byBhZGRyZXNzIHNwYWNlIHNpemUuCi0gICAg ICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgbm93IGVxdWFscyBTSU1EX1NUUklERV9TSVpFLCBo ZW5jZSB0aW1lcyAzIGJlbG93LgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBm b3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVu dHMgcGx1cyBgdW50aWxfYWxpZ25tZW50YC4KLSsgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBl eHRyYSBTSU1EX1NUUklERV9TSVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVjYXVzZSBgb2Zmc2V0 YCBpcyBhbHJlYWR5IGBTSU1EX1NUUklERV9TSVpFYC4KLSAgICAgICAgICAgICAgICAgICAgIGlm IHVudGlsX2FsaWdubWVudCArIChTSU1EX1NUUklERV9TSVpFICogMykgPD0gbGVuIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ug d2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZC93cml0ZSAoYW5kIG1vcmUpLCBhbmQgZG9uJ3QgY2Fy ZSBhYm91dCBhbGlnbm1lbnQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3 aWxsIGNvcHkgb3ZlciBieXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNpbmNlIGl0J3Mgbm90 IGluY3JlbWVudGluZyBgb2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBUaGlzIGlzIGZpbmUu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25l ZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHVudGlsX2FsaWdubWVudDsKLSAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBBdCB0aGlzIHBvaW50IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgMipTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBOb3cgYG9mZnNldGAgaXMgYWxpZ25lZCBmb3IgYHNyY2AKLSAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gPSBsZW4gLSAoU0lNRF9TVFJJREVf U0laRSAqIDIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB3 aGV0aGVyIGRzdCBpcyBhbGlnbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRzdF9t YXNrZWQgPSAoZHN0LmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IGJvdGggYXJlIGFsaWduZWQsIHdlIGNhbiBjYWxsIHRoZSBhbGlnbmVk IGZ1bmN0aW9uLiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGRvdWJsZSBzdHJpZGUg ZnJvbSB0aGUgaW5pdGlhbCBjb25kaXRpb24KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGFuZCB0aGUgbG9vcCBicmVhayBjb25kaXRpb24gYmVsb3cKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKGFkdmFuY2UpID0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFk ZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGFk dmFuY2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5p dCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHVzZXMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgb24gYXNjaWlfdG9f YXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHRvIHJldHVybgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGd1YXJhbnRlZWQgbm9uLWFzY2lpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAqIDI7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIg KiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBg MiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVf dGltZXNfdHdvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3Jl IHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgb25lIG1vcmUsIGFuZCBjYW4gc3RpbGwgYXNzdW1l IGFsaWdubWVudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1E X1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAhJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayAnb3V0ZXI7Ci1A QCAtNTAwLDE4ICs2MzAsMjUgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBv bmx5IHNyYyBpcyBhbGlnbmVkIGhlcmUuIFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg ZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNvbmRpdGlvbgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29wIGJyZWFrIGNvbmRpdGlvbiBiZWxvdwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoYWR2YW5jZSkgPQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3VibGVfc3RyaWRlX3NyY19h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBhZHZhbmNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIHNhZmV0eS11c2FibGUgaW52YXJpYW50 IG9uIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSB0byByZXR1cm4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBndWFyYW50ZWVkIG5vbi1hc2NpaQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQs IG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKiAyOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZz ZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhh dmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0 IHRpbWUuCi0rCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBs ZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIG9uZSBtb3JlLCBhbmQg Y2FuIHN0aWxsIGFzc3VtZSBhbGlnbm1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBk c3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhayAnb3V0ZXI7Ci1AQCAtNTIyLDExICs2NTksMTMgQEAKLSAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXQgbW9zdCB0d28gaXRlcmF0 aW9ucywgc28gdW5yb2xsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lN RF9TVFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoZSBjaGVjayBhYm92ZSBlbnN1cmVzIHdlJ3JlIGFsbG93ZWQgdG8gcmVhZC93cml0 ZSB0aGlzLCBhbmQgd2UgZG9uJ3QgdXNlIGFsaWdubWVudAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3Qu YWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZSBjaGVjayBhYm92ZSBlbnN1cmVzIHdl J3JlIGFsbG93ZWQgdG8gcmVhZC93cml0ZSB0aGlzLCBhbmQgd2UgZG9uJ3QgdXNlIGFsaWdubWVu dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci1AQCAtNTM4LDggKzY3NywxMCBAQAotICAgICAgICAgICAgICAgICBicmVhayAn b3V0ZXI7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7 Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9u IHRoZSBgbGVuYCBpbnZhcmlhbnQKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICoo c3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsK LSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBo ZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0 KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotQEAgLTU1NiwzMCArNjk3LDQ1IEBACi0gICAg ICAgICAkbmFtZTppZGVudCwKLSAgICAgICAgICRzcmNfdW5pdDp0eSwKLSAgICAgICAgICRkc3Rf dW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUg YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfYm90aF9hbGln bmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWly ZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93 cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJp ZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZv ciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAg ICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhp cyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAot ICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQKLSsKLSAgICAgKSA9PiB7Ci0r ICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRl cyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KLSAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0ICRzcmNfdW5p dCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBt dXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVj ayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1E X1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpF IDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0g U0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgLy8gV2hldGhlciBkc3QgaXMgYWxp Z25lZAotICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QgYXMgdXNpemUpICYg U0lNRF9BTElHTk1FTlRfTUFTSzsKLSsgICAgICAgICAgICAgICAgLy8gV2hldGhlciBzcmMgaXMg YWxpZ25lZAotICAgICAgICAgICAgICAgICBpZiAoKHNyYyBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdO TUVOVF9NQVNLKSA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0g MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogQm90aCB3ZXJlIGFsaWduZWQsIHdlIGNhbiB1c2UgdGhlIGFs aWduZWQgZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9ib3Ro X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1E X1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZh bGlkIGZvcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcg YXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogc3JjIHdhcyBhbGlnbmVkLCBkc3Qgd2FzIG5vdAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5z IGluIHRoZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUg ZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9t aW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC01ODgsMTYgKzc0NCwyMiBAQAotICAg ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tl ZCA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgd2FzIGFsaWduZWQsIGRzdCB3YXMgbm90Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQoc3JjLmFkZChv ZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hp Y2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZvcgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJ REVfU0laRSBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0 ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog TmVpdGhlciB3ZXJlIGFsaWduZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlk ZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBs ZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9u IHdlJ3JlIHZhbGlkIGZvcgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5n L3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotQEAgLTYwNiw2ICs3NjgsNyBAQAotICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRoZSBgbGVuYCBpbnZh cmlhbnQKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRk c3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtNjIwLDU2ICs3ODMs NzQgQEAKLSAgICAgICAgICRuYW1lOmlkZW50LAotICAgICAgICAgJHNyY191bml0OnR5LAotICAg ICAgICAgJGRzdF91bml0OnR5LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11 c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlk ZV9ib3RoX2FsaWduZWQ6aWRlbnQsCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZv ciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAg ICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhp cyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3JjL2Rlc3QgdGhhdCBh cmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2Rz dF91bml0Ci0gICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8g U2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhh dCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0 L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudAotICAgICAp ID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVh ZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3Qg JHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7Ci0gICAgICAgICAg ICAgbGV0IHVuaXRfc2l6ZSA9IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpOwot ICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNh ZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0 aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAgICAgICAgICAgICBp ZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHNyY191bml0cyB0aGF0IG5l ZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0IGlzIGFsaWduZWQuCi0rICAg ICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVmaW5pdGlvbiBsZXNzIHRoYW4gU0lNRF9TVFJJ REVfU0laRS4KLSAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSAoKFNJ TURfU1RSSURFX1NJWkUKLSAgICAgICAgICAgICAgICAgICAgIC0gKChzcmMgYXMgdXNpemUpICYg U0lNRF9BTElHTk1FTlRfTUFTSykpCi0gICAgICAgICAgICAgICAgICAgICAmIFNJTURfQUxJR05N RU5UX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAvIHVuaXRfc2l6ZTsKLSAgICAgICAgICAg ICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgewotKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGlzIGEgc3RyYWlnaHRmb3J3YXJkIGNvcHksIHNpbmNlIHVudGlsX2Fs aWdubWVudCBpcyA8IFNJTURfU1RSSURFX1NJWkUgPCBsZW4sIHRoaXMgaXMgaW4tYm91bmRzCi0g ICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSAqKHNyYy5hZGQob2Zmc2V0 KSkgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAg ICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKLSAgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGhlcmUgb2Zmc2V0IHdpbGwgYmUgYHVudGls X2FsaWdubWVudGAsIGkuZS4gZW5vdWdoIHRvIGFsaWduIGBzcmNgLgotICAgICAgICAgICAgICAg ICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBm b3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVu dHMuCi0gICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgKiAyIDw9 IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZV90aW1lc190 d28gPSBsZW5fbWludXNfc3RyaWRlIC0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogYXQgdGhpcyBwb2ludCBzcmMgaXMga25vd24gdG8gYmUgYWxpZ25l ZCBhdCBvZmZzZXQsIGRzdCBpcyBub3QuCi0gICAgICAgICAgICAgICAgICAgICBpZiAoZHN0LmFk ZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0sgPT0gMCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogV2UgY2hlY2tlZCBhbGlnbm1lbnQgb2YgZHN0IGFib3ZlLCB3ZSBjYW4gdXNlIHRo ZSBhbGlnbm1lbnQgZnVuY3Rpb25zLiBXZSdyZSBhbGxvd2VkIHRvIHJlYWQvd3JpdGUgMipTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzLCB3aGljaCB3ZSBkby4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9m ZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9T VFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1E X1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSBlbnN1cmVkIGFsaWdubWVudCBv ZiBzcmMgYWxyZWFkeS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNf YWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0 LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5z IHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMg dG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZz ZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxl biAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFyZSB2YWxpZCB0byBtdW5jaCBT SU1EX1NUUklERV9TSVpFIG1vcmUgZWxlbWVudHMsIHdoaWNoIHdlIGRvCi0gICAgICAgICAgICAg ICAgIGlmIG9mZnNldCA8IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAg JHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0g ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBs ZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVzZXMgbGVuIGludmFyaWFudCBoZXJl IGFuZCBiZWxvdwotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9m ZnNldCkpOwotICAgICAgICAgICAgICAgICAvLyBPbiB4ODZfNjQsIHRoaXMgbG9vcCBhdXRvdmVj dG9yaXplcyBidXQgaW4gdGhlIHBhY2sKLSAgICAgICAgICAgICAgICAgLy8gY2FzZSB0aGVyZSBh cmUgaW5zdHJ1Y3Rpb25zIHdob3NlIHB1cnBvc2UgaXMgdG8gbWFrZSBzdXJlCi1AQCAtNjkzLDcg Kzg3NCwxMiBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFz Y2lpX3NpbWRfdW5hbGlnbiB7Ci0rICAgIC8vIFNhZmV0eTogc3RyaWRlX25laXRoZXJfYWxpZ25l ZCBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBzcmMvZGVzdCBiZSB2YWxpZCBmb3Ig dW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBmb3IgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBvZiB0 eXBlIHNyY191bml0L2Rlc3RfdW5pdAotICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwg JGRzdF91bml0OnR5LCAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudCkgPT4gewotKyAgICAg ICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVz IG9mIGxlbiBlbGVtZW50cyBvZiB0eXBlIHNyY191bml0L2RzdF91bml0Ci0rICAgICAgICAvLy8K LSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgp IHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4g dGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAo PiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5k Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFt ZSgKLSAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCi1AQCAtNzAxLDIxICs4ODcs MjYgQEAKLSAgICAgICAgICAgICBsZW46IHVzaXplLAotICAgICAgICAgKSAtPiBPcHRpb248KCRz cmNfdW5pdCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCi0gICAg ICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICBs ZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAg ICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHdl J3JlIHZhbGlkIGZvciBgc3RyaWRlYCByZWFkcy93cml0ZXMsIHNvIHdlIGNhbiBjYWxsIHRoaXMg ZnVuY3Rpb24uIFdlIGRvbid0IG5lZWQgYWxpZ25tZW50LgotICAgICAgICAgICAgICAgICAgICAg aWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZz ZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsK LSsgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZWAg d2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMgdG8g bXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21p bnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBV c2VzIGxlbiBpbnZhcmlhbnQgaGVyZSBhbmQgYmVsb3cKLSAgICAgICAgICAgICAgICAgbGV0IGNv ZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91 bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91 bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAqKGRz dC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotQEAgLTcyOCwyMSArOTE5 LDI3IEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgbGF0aW4x X3NpbWRfdW5hbGlnbiB7Ci0rICAgIC8vIFNhZmV0eTogc3RyaWRlX25laXRoZXJfYWxpZ25lZCBt dXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBzcmMvZGVzdCBiZSB2YWxpZCBmb3IgdW5h bGlnbmVkIHJlYWRzL3dyaXRlcyBmb3IgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBvZiB0eXBl IHNyY191bml0L2Rlc3RfdW5pdAotICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRz dF91bml0OnR5LCAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudCkgPT4gewotKyAgICAgICAg Ly8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgdW5hbGlnbmVkIHJlYWRz L3dyaXRlcyBvZiBsZW4gZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAq Y29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7Ci0gICAg ICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5 OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg YXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVf U0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxl biAtIFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHdlJ3JlIHZhbGlkIGZvciBgc3RyaWRlYCBy ZWFkcy93cml0ZXMsIHNvIHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uIFdlIGRvbid0IG5lZWQg YWxpZ25tZW50LgotICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQo c3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBUaGlz IGlzIGBvZmZzZXQgPiBsZW4gLSBzdHJpZGVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0 IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAg ICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXNlcyBsZW4gaW52YXJpYW50IGhlcmUKLSAgICAg ICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAg ICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKLSAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtNzUzLDcgKzk1MCwxMSBAQAotIAotICNb YWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2FzY2lpX3NpbWRf c3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2 IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVz OiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKLSAg ICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAg ICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiBy ZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4s IHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCi0r ICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgotICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29u c3QgdTgsIGRzdDogKm11dCB1OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgbGV0IHNpbWQgPSAk bG9hZChzcmMpOwotQEAgLTc2OCwxOSArOTY5LDMyIEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFj cm9zKV0KLSBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHsK LSsgICAgLy8gU2FmZXR5OiBzdG9yZSBtdXN0IGJlIHZhbGlkIGZvciAzMiBieXRlcyBvZiB3cml0 ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZCAoY2FuZGlkYXRlczogYHN0b3JlKDh8MTYpXyhhbGln bmVkfHVuYWxpZ25lZClgKQotICAgICAoJG5hbWU6aWRlbnQsICRzdG9yZTppZGVudCkgPT4gewot KyAgICAgICAgLy8vIFNhZmV0eTogc3JjIG11c3QgYmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIGFs aWduZWQgdTh4MTYgcmVhZAotKyAgICAgICAgLy8vIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAzMiBi eXRlcyBvZiB1bmFsaWduZWQgd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8gdGhlICRz dG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgd3JpdGVzIG9yIHJlcXVpcmUK LSsgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCi0rICAgICAg ICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogUmV0dXJucyBTb21l KGluZGV4KSBpZiB0aGUgZWxlbWVudCBhdCBgaW5kZXhgIGlzIGludmFsaWQgQVNDSUkKLSAgICAg ICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzog KmNvbnN0IHU4LCBkc3Q6ICptdXQgdTgpIC0+IE9wdGlvbjx1c2l6ZT4gewotICAgICAgICAgICAg IGxldCBmaXJzdCA9IGxvYWQxNl9hbGlnbmVkKHNyYyk7Ci0gICAgICAgICAgICAgbGV0IHNlY29u ZCA9IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQoU0lNRF9TVFJJREVfU0laRSkpOwotICAgICAgICAg ICAgICRzdG9yZShkc3QsIGZpcnN0KTsKLSAgICAgICAgICAgICBpZiB1bmxpa2VseSghc2ltZF9p c19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBt YXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0cy4KLSAgICAgICAg ICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsKLSAgICAgICAgICAg ICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFz Y2lpIGJ5dGVzCi0rICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1h c2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0rICAgICAgICAgICAgICAgICAgICAv LyBUT0RPIFNBRkVUWTogV2hhdCBhYm91dCBiaWctZW5kaWFuIHN5c3RlbXM/Ci0gICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZShtYXNrX2ZpcnN0LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNp emUpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICRzdG9yZShkc3QuYWRk KFNJTURfU1RSSURFX1NJWkUpLCBzZWNvbmQpOwotICAgICAgICAgICAgICAgICBsZXQgbWFza19z ZWNvbmQgPSBtYXNrX2FzY2lpKHNlY29uZCk7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog b24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lp IGJ5dGVzCi0rICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBp LmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUo U0lNRF9TVFJJREVfU0laRSArIG1hc2tfc2Vjb25kLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUp OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklE RV9TSVpFKSwgc2Vjb25kKTsKLUBAIC03OTEsNyArMTAwNSwxMSBAQAotIAotICNbYWxsb3codW51 c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3Ry aWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5 dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBg KGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKLSAgICAg KCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAv Ly8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAxNi8zMiBieXRlcyBvZiBy ZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4s IHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCi0r ICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgotICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29u c3QgdTgsIGRzdDogKm11dCB1MTYpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBzaW1kID0g JGxvYWQoc3JjKTsKLUBAIC04MDgsMTMgKzEwMjYsMTggQEAKLSAKLSAjW2FsbG93KHVudXNlZF9t YWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2RvdWJsZV9z dHJpZGUgewotKyAgICAvLyBTYWZldHk6IHN0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVz IG9mIHdyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkCi0gICAgICgkbmFtZTppZGVudCwgJHN0 b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgbXVzdCBiZSB2YWxpZCBm b3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVzIG9mIGFsaWduZWQgcmVhZHMsCi0rICAgICAgICAv Ly8gYWxpZ25lZCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KLSsgICAgICAgIC8vLyBkc3QgbXVz dCBiZSB2YWxpZCBmb3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVzIG9mIGFsaWduZWQgb3IgdW5h bGlnbmVkIHJlYWRzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVu c2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgLT4gT3B0aW9uPHVz aXplPiB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gbG9hZDE2X2FsaWduZWQoc3JjKTsKLSAg ICAgICAgICAgICBsZXQgc2Vjb25kID0gbG9hZDE2X2FsaWduZWQoc3JjLmFkZChTSU1EX1NUUklE RV9TSVpFKSk7Ci0gICAgICAgICAgICAgbGV0IChhLCBiKSA9IHNpbWRfdW5wYWNrKGZpcnN0KTsK LSAgICAgICAgICAgICAkc3RvcmUoZHN0LCBhKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGRp dmlkZSBieSAyIHNpbmNlIGl0J3MgYSB1MTYgcG9pbnRlcgotICAgICAgICAgICAgICRzdG9yZShk c3QuYWRkKFNJTURfU1RSSURFX1NJWkUgLyAyKSwgYik7Ci0gICAgICAgICAgICAgaWYgdW5saWtl bHkoIXNpbWRfaXNfYXNjaWkoZmlyc3QgfCBzZWNvbmQpKSB7Ci0gICAgICAgICAgICAgICAgIGxl dCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7Ci1AQCAtODM3LDcgKzEwNjAsMTEgQEAK LSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISB1bnBhY2tfc2ltZF9z dHJpZGUgewotKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3IgMTYg Ynl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNhbmRpZGF0ZXM6 IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rpb25zKQotICAg ICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKLSsgICAgICAg IC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJl YWQvd3JpdGUgYWNjb3JkaW5nIHRvCi0rICAgICAgICAvLy8gdGhlICRsb2FkLyRzdG9yZSBmbiwg d2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9yIHJlcXVpcmUKLSsg ICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCi0gICAgICAgICAj W2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25z dCB1OCwgZHN0OiAqbXV0IHUxNikgewotICAgICAgICAgICAgIGxldCBzaW1kID0gJGxvYWQoc3Jj KTsKLUBAIC04NTAsNyArMTA3NywxMSBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0g bWFjcm9fcnVsZXMhIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8g U2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3Jp dGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2 fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAk bG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMg YW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAzMi8xNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29y ZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxv dyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxp Z25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlz KV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTE2LCBkc3Q6ICpt dXQgdTgpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICRsb2FkKHNyYyk7Ci1A QCAtODY3LDcgKzEwOTgsMTEgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3Jv X3J1bGVzISBwYWNrX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11 c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFs aWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25l ZClgIGZ1bmN0aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlk ZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlk IGZvciAzMi8xNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8v IHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRz L3dyaXRlcyBvciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4 IG9yIHU4eDE2LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNh ZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTE2LCBkc3Q6ICptdXQgdTgpIHsKLSAgICAgICAgICAg ICBsZXQgZmlyc3QgPSAkbG9hZChzcmMpOwotQEAgLTg5Myw2ICsxMTI4LDggQEAKLSAKLSAgICAg ICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsKLSAKLSsgICAgICAg IC8vIFNhZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWdu ZWQvZXRjIGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBwcm9kdWNlCi0rICAg ICAgICAvLyBuZWl0aGVyX3VuYWxpZ25lZCB2YXJpYW50cyB1c2luZyBvbmx5IHVuYWxpZ25lZCBp bnB1dHMuCi0gICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNj aWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFs aWduZWQpOwotIAotICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFz Y2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWdu ZWQsIHN0b3JlOF91bmFsaWduZWQpOwotQEAgLTkwMSw2ICsxMTM4LDggQEAKLSAgICAgICAgIGJh c2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90b19hc2NpaV9zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsK LSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwg bG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0gCi0rICAgICAgICAvLyBTYWZl dHkgZm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2UgdGhlIHVuYWxpZ24gbWFjcm8gd2l0aCB1 bmFsaWduIGZ1bmN0aW9ucyBhYm92ZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNl ZAotKyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEg c2luZ2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCi0gICAgICAgICBhc2Np aV9zaW1kX3VuYWxpZ24hKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3RvX2FzY2lpX3N0 cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF91bmFsaWduIShhc2Np aV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX25l aXRoZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9zaW1kX3VuYWxpZ24hKGJhc2ljX2xhdGlu X3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9h bGlnbmVkKTsKLUBAIC05MTksNiArMTE1OCw5IEBACi0gCi0gICAgICAgICBwdWIgY29uc3QgU0lN RF9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAxNTsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBmb3Ig c3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWduZWQvZXRjIGZhbWlseSBv ZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBuYW1lCi0rICAgICAgICAvLyBhbGlnbmVkL3Vu YWxpZ25lZCBmdW5jdGlvbnMgYWNjb3JkaW5nIHRvIHNyYy9kc3QgYmVpbmcgYWxpZ25lZC91bmFs aWduZWQKLSsKLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19h c2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVk KTsKLSAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9z dHJpZGVfc3JjX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0g ICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRl X2RzdF9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOwotQEAgLTk0 NCw2ICsxMTg2LDkgQEAKLSAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2Rz dF9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7Ci0gICAgICAgICBw YWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxp Z25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwotIAotKyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252 ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSBjb3JyZWN0IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0 L25laXRoZXIgaGVyZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAotKyAgICAg ICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJ TURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCi0rCi0gICAgICAgICBhc2NpaV9zaW1k X2NoZWNrX2FsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJp ZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGFzY2lp X3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduIShhc2NpaV90b19i YXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxp Z25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBhc2NpaV90b19i YXNpY19sYXRpbl9zdHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlk ZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbiEoYmFz aWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9i b3RoX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgYmFz aWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2Np aV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLUBAIC05NTgsMTIgKzEyMDMsMTYgQEAKLSAKLSAg ICAgICAgIHB1YiBjb25zdCBTSU1EX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OwotIAotKyAgICAg ICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBUaGlzIHNob3VsZCBiZSBpZGVudGljYWwg dG8gU0lNRF9TVFJJREVfU0laRSAodXNlZCBieSBhc2NpaV9zaW1kX2NoZWNrX2FsaWduX3Vucm9s bGVkKQotICAgICAgICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UOiB1c2l6ZSA9IDE2OwotIAot ICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKLSAKLSAgICAg ICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OwotIAotKyAgICAg ICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0aGUgbG9hZDhfYWxp Z25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5IG5hbWUKLSsgICAg ICAgIC8vIGFsaWduZWQvdW5hbGlnbmVkIGZ1bmN0aW9ucyBhY2NvcmRpbmcgdG8gc3JjL2RzdCBi ZWluZyBhbGlnbmVkL3VuYWxpZ25lZAotKwotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9k b3VibGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVfYm90aF9hbGln bmVkLCBzdG9yZTE2X2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3Vi bGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQs IHN0b3JlMTZfdW5hbGlnbmVkKTsKLSAKLUBAIC05ODksNiArMTIzOCw5IEBACi0gICAgICAgICBw YWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQs IHN0b3JlMTZfYWxpZ25lZCk7Ci0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlk ZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwotIAotKyAg ICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSBjb3JyZWN0 IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0L25laXRoZXIvZG91YmxlX2JvdGgvZG91YmxlX3NyYyBo ZXJlLiBBbGwgc3RyaWRlIGZ1bmN0aW9ucyB3ZXJlIHByb2R1Y2VkCi0rICAgICAgICAvLyBieSBz dHJpZGUgbWFjcm9zIHRoYXQgdW5pdmVyc2FsbHkgbXVuY2ggYSBzaW5nbGUgU0lNRF9TVFJJREVf U0laRSB3b3J0aCBvZiBlbGVtZW50cy4KLSsKLSAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxp Z25fdW5yb2xsZWQhKGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3RvX2FzY2lpX3N0cmlk ZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgYXNjaWlf dG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3Vi bGVfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3RyaWRl X3NyY19hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQh KGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJp ZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfc3JjX2FsaWduZWQs IGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGFzY2lpX3RvX2Jh c2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCk7Ci0gCi1AQCAtOTk4LDE0ICsx MjUwLDIxIEBACi0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0 bGUiLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpKV0gewotICAgICAgICAgLy8gQWxpZ25l ZCBBTFUgd29yZCwgbGl0dGxlLWVuZGlhbiwgNjQtYml0Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5 IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5Ci0rICAg ICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRo LCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAgICAgICAgLy8vIFRo aXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVk IGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAgICAgcHViIGNvbnN0 IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBNQVhf U1RSSURFX1NJWkU6IHVzaXplID0gMTY7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50 OiB0aGlzIGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCi0gICAgICAgICBwdWIgY29uc3Qg QUxVX0FMSUdOTUVOVDogdXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFu dDogdGhpcyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBh bGlnbmVkIHRvIEFMVV9BTElHTk1FTlQKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5U X01BU0s6IHVzaXplID0gNzsKLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50 IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKLSAgICAgICAgICNbaW5s aW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwg c2Vjb25kX3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQg Zmlyc3QgPSAoKDB4MDAwMF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgd29yZCkgPDwgMjQpIHwKLUBA IC0xMDI0LDEyICsxMjgzLDE0IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZG XzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpIHwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3Jk KSA+PiAyNCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBf MDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDMyKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6 IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Ci0gICAg ICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQo MikpID0gdGhpcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKLSAgICAg ICAgIH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNw YWNlIGZvciB3cml0aW5nIHR3byBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNpemUs IHRoaXJkOiB1c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAg ICAgICAgbGV0IHdvcmQgPSAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kKSA8 PCA4KSB8Ci1AQCAtMTA0OCwyMCArMTMwOSwyOCBAQAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNpemUgJiB0aGlyZCkgPj4gMTYpIHwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXpl ICYgdGhpcmQpID4+IDgpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAw XzAwMDBfMDAwMF8wMEZGdXNpemUgJiB0aGlyZCk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBm biBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IHdvcmQ7Ci0gICAgICAg ICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOwotICAgICAgICAgfQotICAgICB9IGVs c2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X3BvaW50ZXJf d2lkdGggPSAiMzIiKSldIHsKLSAgICAgICAgIC8vIEFsaWduZWQgQUxVIHdvcmQsIGxpdHRsZS1l bmRpYW4sIDMyLWJpdAotIAotKyAgICAgICAgLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMg dGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQotKyAgICAgICAgLy8vIHVucGFja19hbHUu IFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQgY29uc3VtZXMgdHdv IHVzaXplcy4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiBieXRlcyBw cm9kdWNlZCBieSBwYWNrX2FsdS4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJl ciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1lZCBieSB1bnBhY2tfYWx1L3BhY2tf YWx1IHJlc3BlY3RpdmVseS4KLSAgICAgICAgIHB1YiBjb25zdCBBTFVfU1RSSURFX1NJWkU6IHVz aXplID0gODsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0g ODsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50ZXIg d2lkdGggaW4gYnl0ZXMKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9 IDQ7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBmb3Ig Z2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdOTUVO VAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAzOwotIAot KyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdy aXRpbmcgZm91ciBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAg IHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUsIGRz dDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHgwMDAwX0ZGMDB1 c2l6ZSAmIHdvcmQpIDw8IDgpIHwKLUBAIC0xMDcyLDEyICsxMzQxLDE0IEBACi0gICAgICAgICAg ICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7Ci0gICAgICAg ICAgICAgbGV0IGZvdXJ0aCA9ICgoMHhGRjAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4 KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29u ZF93b3JkKSA+PiAxNik7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNl ZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IGZpcnN0OwotICAgICAgICAgICAgICooZHN0LmFk ZCgxKSkgPSBzZWNvbmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOwotICAg ICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7Ci0gICAgICAgICB9Ci0gCi0rICAgICAg ICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0 d28gYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUg Zm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZv dXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCB3b3JkID0g KCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kKSA8PCA4KSB8Ci1AQCAtMTA4OCwyMCArMTM1OSwy OCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZ1c2l6ZSAm IGZvdXJ0aCkgPDwgMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBG Rl8wMDAwdXNpemUgJiB0aGlyZCkgPj4gOCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgweDAwMDBfMDBGRnVzaXplICYgdGhpcmQpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTog Zm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3QgPSB3b3JkOwotICAgICAg ICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKLSAgICAgICAgIH0KLSAgICAgfSBl bHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImJpZyIsIHRhcmdldF9wb2ludGVyX3dp ZHRoID0gIjY0IikpXSB7Ci0gICAgICAgICAvLyBBbGlnbmVkIEFMVSB3b3JkLCBiaWctZW5kaWFu LCA2NC1iaXQKLSAKLSsgICAgICAgIC8vLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBh bW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKLSsgICAgICAgIC8vLyB1bnBhY2tfYWx1LiBUaGlz IHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0IGNvbnN1bWVzIHR3byB1c2l6 ZXMuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgYnl0ZXMgcHJvZHVj ZWQgYnkgcGFja19hbHUuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2Yg dTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5wYWNrX2FsdS9wYWNrX2FsdSBy ZXNwZWN0aXZlbHkuCi0gICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9 IDE2OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsK LSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50ZXIgd2lk dGggaW4gYnl0ZXMKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9IDg7 Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBmb3IgZ2V0 dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdOTUVOVAot ICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSA3OwotIAotKyAg ICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRp bmcgZm91ciBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVu c2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUsIGRzdDog Km11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHhGRjAwXzAwMDBfMDAw MF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8Ci1AQCAtMTEyMCwxMiArMTM5OSwxNCBAQAotICAg ICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiBzZWNv bmRfd29yZCkgPDwgMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAw XzAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAoMHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7Ci0rICAg ICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAg KmRzdCA9IGZpcnN0OwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7Ci0gICAg ICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOwotICAgICAgICAgICAgICooZHN0LmFkZCgz KSkgPSBmb3VydGg7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVz dCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVz aXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11 dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkYwMDAwXzAwMDAwMDAw dXNpemUgJiBmaXJzdCkgPDwgOCkgfAotQEAgLTExNDQsMjAgKzE0MjUsMjggQEAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1c2l6ZSAmIGZvdXJ0 aCkgPj4gMTYpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwMDBf MDBGRjAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gOCkgfAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgweDAwMDAwMDAwXzAwMDAwMEZGdXNpemUgJiAgZm91cnRoKTsKLSsgICAgICAgICAg ICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0g d29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7Ci0gICAgICAg ICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpKV0gewotICAgICAgICAgLy8gQWxpZ25lZCBBTFUgd29y ZCwgYmlnLWVuZGlhbiwgMzItYml0Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFudDog dGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5Ci0rICAgICAgICAvLy8gdW5w YWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBjb25z dW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0 aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19h bHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVf U0laRTogdXNpemUgPSA4OwotIAotICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTog dXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUg cG9pbnRlciB3aWR0aCBpbiBieXRlcwotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6 IHVzaXplID0gNDsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgYSBt YXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxpZ25lZCB0byBBTFVf QUxJR05NRU5UCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9 IDM7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFj ZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQot ICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1 c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gKCgweEZG MDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAotQEAgLTExNjgsMTIgKzE0NTcsMTQgQEAKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQp ID4+IDE2KTsKLSAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweDAwMDBfRkYwMHVzaXplICYg c2Vjb25kX3dvcmQpIDw8IDgpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAw RkZ1c2l6ZSAmIHNlY29uZF93b3JkKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFy aWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICAg Kihkc3QuYWRkKDEpKSA9IHNlY29uZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMikpID0gdGhp cmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKLSAgICAgICAgIH0KLSAK LSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3 cml0aW5nIHR3byBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAg IHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNpemUsIHRoaXJkOiB1 c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0gICAgICAgICAgICAgbGV0 IHdvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBmaXJzdCkgPDwgOCkgfAotQEAgLTExODQsNiAr MTQ3NSw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRnVz aXplICYgdGhpcmQpIDw8IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwRkZfMDAwMHVzaXplICYgZm91cnRoKSA+PiA4KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBmb3VydGgpOwotKyAgICAgICAgICAgIC8vIFNh ZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3QgPSB3b3JkOwot ICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKLSAgICAgICAgIH0KLUBA IC0xMTk1LDYgKzE0ODcsOCBAQAotIH0KLSAKLSBjZmdfaWYhIHsKLSsgICAgLy8gU2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQ6IHRoaXMgY291bnRzIHRoZSB6ZXJvZXMgZnJvbSB0aGUgImZpcnN0IGJ5 dGUiIG9mIHV0Zi04IGRhdGEgcGFja2VkIGludG8gYSB1c2l6ZQotKyAgICAvLyB3aXRoIHRoZSB0 YXJnZXQgZW5kaWFubmVzcwotICAgICBpZiAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIp XSB7Ci0gICAgICAgICAjW2FsbG93KGRlYWRfY29kZSldCi0gICAgICAgICAjW2lubGluZShhbHdh eXMpXQotQEAgLTEyMTIsMTkgKzE1MDYsMjQgQEAKLSAKLSBjZmdfaWYhIHsKLSAgICAgaWYgI1tj ZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwg dGFyZ2V0X2FyY2ggPSAiZGlzYWJsZWQiKSldIHsKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxl IGludmFyaWFudDogV2lsbCByZXR1cm4gdGhlIHZhbHVlIGFuZCBwb3NpdGlvbiBvZiB0aGUgZmly c3Qgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIHNsaWNlIGluIGEgU29tZSBpZiBmb3VuZC4KLSsgICAg ICAgIC8vLyBJbiBvdGhlciB3b3JkcywgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIFNvbWUgaXMg YWx3YXlzIGA+IDEyN2AKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIg Zm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6ZSk+IHsK LSAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7Ci0gICAgICAgICAgICAgbGV0 IGxlbiA9IHNsaWNlLmxlbigpOwotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXpl OwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzLgotICAg ICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAg bGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAg ICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIGF0IG9m ZnNldCBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJREVfU0laRWAgcmVhZAotICAgICAgICAgICAg ICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQob2Zm c2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lpKHNpbWQpIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAg ICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0la RWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVg IGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgIGlmIG9m ZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTEyMzMsNiArMTUzMiw3IEBACi0gICAgICAg ICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5p dCA9IHNsaWNlW29mZnNldF07Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7 Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFNhZmV0eS11c2FibGUgaW52YXJpYW50 IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0 LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gMTsKLUBAIC0xMjQwLDEzICsxNTQwLDE3IEBACi0gICAgICAgICAgICAgTm9uZQotICAgICAg ICAgfQotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIHRh cmdldF9mZWF0dXJlID0gInNzZTIiKSldIHsKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUks IHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBn dWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0 aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQot ICAgICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1 OCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOwotICAg ICAgICAgICAgIGxldCBsZW4gPSBzbGljZS5sZW4oKTsKLSAgICAgICAgICAgICBsZXQgbXV0IG9m ZnNldCA9IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3Vj Y2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMu Ci0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAg ICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUgdW5hbGlnbmVkIHZlY3RvcgotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHNyYyBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJREVfU0laRWAgcmVh ZAotICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQo c3JjKSB9OwotICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0g ICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7Ci1AQCAtMTI1NSwxOCArMTU1OSwyNiBAQAot ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0g ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gU0lNRF9TVFJJREVf U0laRTsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBOb3cgdGhhdCBvZmZzZXQgaGFzIGNo YW5nZWQgd2UgZG9uJ3QgeWV0IGtub3cgaG93IG11Y2ggaXQgaXMgdmFsaWQgZm9yCi0gCi0gICAg ICAgICAgICAgICAgIC8vIFdlIGhhdmUgbm93IHNlZW4gMTYgQVNDSUkgYnl0ZXMuIExldCdzIGd1 ZXNzIHRoYXQKLSAgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2lsbCBiZSBlbm91Z2ggbW9yZSB0 byBqdXN0aWZ5IG1vcmUgZXhwZW5zZQotICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBv ZiBub24tQVNDSUkuCi0gICAgICAgICAgICAgICAgIC8vIFVzZSBhbGlnbmVkIHJlYWRzIGZvciB0 aGUgc2FrZSBvZiBvbGQgbWljcm9hY2hpdGVjdHVyZXMuCi0rICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHNyY191bml0cyB0 aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0IGlzIGFsaWduZWQu Ci0rICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVmaW5pdGlvbiBsZXNzIHRoYW4gU0lN RF9BTElHTk1FTlQsIHdoaWNoIGlzIGRlZmluZWQgdG8gYmUgZXF1YWwgdG8gU0lNRF9TVFJJREVf U0laRS4KLSAgICAgICAgICAgICAgICAgbGV0IHVudGlsX2FsaWdubWVudCA9IHVuc2FmZSB7IChT SU1EX0FMSUdOTUVOVCAtICgoc3JjLmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05N RU5UX01BU0spKSAmIFNJTURfQUxJR05NRU5UX01BU0sgfTsKLSAgICAgICAgICAgICAgICAgLy8g VGhpcyBhZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAzMi1iaXQg UEFFIGNhc2UgdGhlCi0gICAgICAgICAgICAgICAgIC8vIGFkZHJlc3Mgc3BhY2UgaG9sZHMgZW5v dWdoIGNvZGUgdGhhdCB0aGUgc2xpY2UgbGVuZ3RoIGNhbid0IGJlIHRoYXQKLSAgICAgICAgICAg ICAgICAgLy8gY2xvc2UgdG8gYWRkcmVzcyBzcGFjZSBzaXplLgotICAgICAgICAgICAgICAgICAv LyBvZmZzZXQgbm93IGVxdWFscyBTSU1EX1NUUklERV9TSVpFLCBoZW5jZSB0aW1lcyAzIGJlbG93 LgotKyAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRo aXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYDIgKiBT SU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGlnbm1lbnRgLgotKyAgICAg ICAgICAgICAgICAvLyBUaGUgZXh0cmEgU0lNRF9TVFJJREVfU0laRSBpbiB0aGUgY29uZGl0aW9u IGlzIGJlY2F1c2UgYG9mZnNldGAgaXMgYWxyZWFkeSBgU0lNRF9TVFJJREVfU0laRWAuCi0gICAg ICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIChTSU1EX1NUUklERV9TSVpFICogMykg PD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCAhPSAwIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0byBjYWxs IHNpbmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQgKGFuZCBtb3JlKSwgYW5kIGRvbid0IGNh cmUgYWJvdXQgYWxpZ25tZW50Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxs IGNvcHkgb3ZlciBieXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNpbmNlIGl0J3Mgbm90IGlu Y3JlbWVudGluZyBgb2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBUaGlzIGlzIGZpbmUuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGln bmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFz ayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFzayAh PSAwIHsKLUBAIC0xMjc2LDUzICsxNTg4LDc4IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB1bnRpbF9hbGlnbm1lbnQ7Ci0g ICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0 IHRoaXMgcG9pbnQgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgMipTSU1EX1NUUklERV9TSVpFIGVs ZW1lbnRzCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBgb2Zmc2V0YCBpcyBh bGlnbmVkIGZvciBgc3JjYAotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJp ZGVfdGltZXNfdHdvID0gbGVuIC0gKFNJTURfU1RSSURFX1NJWkUgKiAyKTsKLSAgICAgICAgICAg ICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Ug d2VyZSB2YWxpZCBmb3IgdGhpcyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgotICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBmaXJzdCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25kID0gdW5zYWZl IHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFKSkgfTsK LSAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29u ZCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG1hc2tfYXNjaWkg cHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3QpOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBtYXNrX2ZpcnN0ICE9IDAgewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhp cyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZv ciBpbmRleGluZyBzcmMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8g U0FGRVRZOiBXaGF0IGFib3V0IGJpZy1lbmRpYW4gc3lzdGVtcz8KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrX2ZpcnN0LnRyYWlsaW5nX3plcm9zKCkgYXMg dXNpemU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFza19zZWNvbmQgPSBtYXNrX2FzY2lpKHNlY29u ZCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRs ZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24t YXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKyBtYXNrX3NlY29uZC50cmFp bGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25vdyB0aGlzIGlzIG5v bi1BU0NJSSwgYW5kIGNhbiB1cGhvbGQgdGhlIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpz cmMuYWRkKG9mZnNldCkgfTsKLSsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFICogMjsK LSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxl biAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBs ZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4K LSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3Rp bWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3Ig cmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKLSAgICAgICAgICAgICAgICAgICAg IGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFdlIHdlcmUgdmFsaWQgZm9yIHRoaXMgcmVhZCwgYW5kIHdlcmUg YWxpZ25lZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBs b2FkMTZfYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2gg Yml0cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNp bWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRo aXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBp bmRleGluZyBzcmMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2su dHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHRoaXMgaXMgbm9uLUFTQ0lJLCBh bmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0 ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMg dGhlIHVuYWxpZ25lZCBicmFuY2gKLSAgICAgICAgICAgICAgICAgICAgIC8vIEF0IG1vc3QgdHdv IGl0ZXJhdGlvbnMsIHNvIHVucm9sbAotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBp ZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBT SU1EX1NUUklERV9TSVpFYAotICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9T VFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJlYWQK LSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFs aWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt YXNrID0gbWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNr ICE9IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFp bGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9OwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZSAoc2Ft ZSBhcyBhYm92ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5v bl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxp ZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKLSAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHRoaXMgcmVh ZCBidXQgbXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJlYWQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNl dCkpIH07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNj aWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196 ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5v bl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlIChz YW1lIGFzIGFib3ZlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNv bWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7 Ci1AQCAtMTMzMSw4ICsxNjY4LDEwIEBACi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBsZW5gIGludmFyaWFu dAotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gdW5zYWZlIHsgKihzcmMuYWRkKG9m ZnNldCkpIH07Ci0gICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQotICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtMTM0MCwz MSArMTY3OSw0MCBAQAotICAgICAgICAgICAgIE5vbmUKLSAgICAgICAgIH0KLSAgICAgfSBlbHNl IHsKLSsgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiByZXR1cm5zIGJ5dGUgaW5k ZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgICAgICBmbiBmaW5kX25vbl9hc2NpaSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXpl KSAtPiBPcHRpb248dXNpemU+IHsKLSAgICAgICAgICAgICBsZXQgd29yZF9tYXNrZWQgPSB3b3Jk ICYgQVNDSUlfTUFTSzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kX21hc2tlZCA9IHNlY29uZF93 b3JkICYgQVNDSUlfTUFTSzsKLSAgICAgICAgICAgICBpZiAod29yZF9tYXNrZWQgfCBzZWNvbmRf bWFza2VkKSA9PSAwIHsKLSsgICAgICAgICAgICAgICAgLy8gQm90aCBhcmUgYXNjaWksIGludmFy aWFudCB1cGhlbGQKLSAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7Ci0gICAgICAgICAgICAg fQotICAgICAgICAgICAgIGlmIHdvcmRfbWFza2VkICE9IDAgewotICAgICAgICAgICAgICAgICBs ZXQgemVyb3MgPSBjb3VudF96ZXJvcyh3b3JkX21hc2tlZCk7Ci0tICAgICAgICAgICAgICAgIC8v IGB6ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBvZiBub24tQVNDSUkp Ci0rICAgICAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDAgdG8gNyAoZm9yIHRo ZSBzZXZlbiBiaXRzIG9mIG1hc2tlZCBBU0NJSSBpbiBsaXR0bGUgZW5kaWFuLAotKyAgICAgICAg ICAgICAgICAvLyBvciB1cCB0byA3IGJpdHMgb2Ygbm9uLUFTQ0lJIGluIGJpZyBlbmRpYW4gaWYg dGhlIGZpcnN0IGJ5dGUgaXMgbm9uLUFTQ0lJKQotICAgICAgICAgICAgICAgICAvLyBwbHVzIDgg dGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUKLSAgICAg ICAgICAgICAgICAgLy8gbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGxpdHRsZS1lbmRpYW4gY2FzZSBv ciA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4KLSAgICAgICAgICAgICAgICAgLy8gdGV4 dCBvcmRlciBiZWZvcmUgdGhlIG5vbi1BU0NJSSBieXRlIGluIHRoZSBiaWctZW5kaWFuIGNhc2Uu Ci0gICAgICAgICAgICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4gMykgYXMgdXNpemU7 Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJl Ci0gICAgICAgICAgICAgICAgIHJldHVybiBTb21lKG51bV9hc2NpaSk7Ci0gICAgICAgICAgICAg fQotICAgICAgICAgICAgIGxldCB6ZXJvcyA9IGNvdW50X3plcm9zKHNlY29uZF9tYXNrZWQpOwot LSAgICAgICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDcgKGZvciB0aGUgc2V2ZW4gYml0 cyBvZiBub24tQVNDSUkpCi0rICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMgMCB0 byA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2YgbWFza2VkIEFTQ0lJIGluIGxpdHRsZSBlbmRpYW4s Ci0rICAgICAgICAgICAgLy8gb3IgdXAgdG8gNyBiaXRzIG9mIG5vbi1BU0NJSSBpbiBiaWcgZW5k aWFuIGlmIHRoZSBmaXJzdCBieXRlIGlzIG5vbi1BU0NJSSkKLSAgICAgICAgICAgICAvLyBwbHVz IDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbiB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUKLSAg ICAgICAgICAgICAvLyBub24tQVNDSUkgYnl0ZSBpbiB0aGUgbGl0dGxlLWVuZGlhbiBjYXNlIG9y IDggdGltZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbgotICAgICAgICAgICAgIC8vIHRleHQgb3Jk ZXIgYmVmb3JlIHRoZSBub24tQVNDSUkgYnl0ZSBpbiB0aGUgYmlnLWVuZGlhbiBjYXNlLgotICAg ICAgICAgICAgIGxldCBudW1fYXNjaWkgPSAoemVyb3MgPj4gMykgYXMgdXNpemU7Ci0rICAgICAg ICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAg ICBTb21lKEFMVV9BTElHTk1FTlQgKyBudW1fYXNjaWkpCi0gICAgICAgICB9Ci0gCi0rICAgICAg ICAvLy8gU2FmZXR5OiBgc3JjYCBtdXN0IGJlIHZhbGlkIGZvciB0aGUgcmVhZHMgb2YgdHdvIGB1 c2l6ZWBzCi0rICAgICAgICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFu dDogd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkgYnl0ZQotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiB2YWxpZGF0ZV9hc2NpaV9z dHJpZGUoc3JjOiAqY29uc3QgdXNpemUpIC0+IE9wdGlvbjx1c2l6ZT4gewotICAgICAgICAgICAg IGxldCB3b3JkID0gKnNyYzsKLUBAIC0xMzcyLDYgKzE3MjAsOCBAQAotICAgICAgICAgICAgIGZp bmRfbm9uX2FzY2lpKHdvcmQsIHNlY29uZF93b3JkKQotICAgICAgICAgfQotIAotKyAgICAgICAg Ly8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBl bmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBi ZWluZwotKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFu ZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQKLSAgICAgICAg ICNbY2ZnX2F0dHIoZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLCBhbGxvdyhjYXN0X3B0cl9hbGln bm1lbnQpKV0KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gdmFs aWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6ZSk+IHsKLUBAIC0x Mzc5LDIzICsxNzI5LDMwIEBACi0gICAgICAgICAgICAgbGV0IGxlbiA9IHNsaWNlLmxlbigpOwot ICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotICAgICAgICAgICAgIGxldCBt dXQgdW50aWxfYWxpZ25tZW50ID0gKEFMVV9BTElHTk1FTlQgLSAoKHNyYyBhcyB1c2l6ZSkgJiBB TFVfQUxJR05NRU5UX01BU0spKSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKLSsgICAgICAgICAgICAv LyBTYWZldHk6IElmIHRoaXMgY2hlY2sgZmFpbHMgd2UncmUgdmFsaWQgdG8gcmVhZCBgdW50aWxf YWxpZ25tZW50ICsgQUxVX1NUUklERV9TSVpFYCBlbGVtZW50cwotICAgICAgICAgICAgIGlmIHVu dGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAg ICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICBsZXQg Y29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVf dW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBp bnZhaXJhbnQgdXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxp Z25tZW50IC09IDE7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgcmVhZCB1bnRpbF9hbGlnbm1lbnQgZWxlbWVudHMg YW5kCi0rICAgICAgICAgICAgICAgIC8vIGFyZSB2YWxpZCBmb3IgYEFMVV9TVFJJREVfU0laRWAg bW9yZS4KLSAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVf U1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB3ZSB3ZXJlIHZhbGlkIGZvciB0aGlzIHJlYWQKLSAgICAgICAgICAgICAg ICAgICAgIGxldCBwdHIgPSB1bnNhZmUgeyBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXpl IH07Ci0gICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShudW1fYXNjaWkpID0gdW5zYWZl IHsgdmFsaWRhdGVfYXNjaWlfc3RyaWRlKHB0cikgfSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICs9IG51bV9hc2NpaTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHktdXNhYmxlIGludmFpcmFudCB1cGhlbGQgaGVyZSB1c2luZyB0aGUgaW52YXJpYW50IGZyb20g dmFsaWRhdGVfYXNjaWlfc3RyaWRlKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g U29tZSgodW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkpIH0sIG9mZnNldCkpOwotICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVf U0laRTsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4g QUxVX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAq IEFMVV9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgotICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTQwNCw2ICsx NzYxLDcgQEAKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotICAgICAgICAgICAg ICAgICBsZXQgY29kZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKLSAgICAgICAgICAgICAgICAgaWYg Y29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUg aW52YWlyYW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgo Y29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gMTsKLUBAIC0xNDI4LDM2ICsxNzg2LDQ3IEBACi0gCi0gICAgICAgICBwdWIg Y29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDM7Ci0gICAgIH0gZWxzZSB7Ci0rICAg ICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzLCBkc3QgcG9p bnRzIHRvIGZvdXIgdmFsaWQgYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2xhdGluMV9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVz aXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZl dHkgaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKLSAg ICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQoMSkpOwotKyAgICAgICAgICAg IC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAgICAgICAg ICB1bnBhY2tfYWx1KHdvcmQsIHNlY29uZF93b3JkLCBkc3QpOwotICAgICAgICAgfQotIAotKyAg ICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVzaXplYHMsIGRzdCBw b2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQot ICAgICAgICAgdW5zYWZlIGZuIHBhY2tfbGF0aW4xX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNp emUsIGRzdDogKm11dCB1c2l6ZSkgewotKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0 eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gKnNyYzsKLSAg ICAgICAgICAgICBsZXQgc2Vjb25kID0gKihzcmMuYWRkKDEpKTsKLSAgICAgICAgICAgICBsZXQg dGhpcmQgPSAqKHNyYy5hZGQoMikpOwotICAgICAgICAgICAgIGxldCBmb3VydGggPSAqKHNyYy5h ZGQoMykpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFz c2VkIGRvd24KLSAgICAgICAgICAgICBwYWNrX2FsdShmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91 cnRoLCBkc3QpOwotICAgICAgICAgfQotIAotKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRz IHRvIHR3byB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byBmb3VyIHZhbGlkIGB1c2l6ZWBz Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIGFzY2lpX3Rv X2Jhc2ljX2xhdGluX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6 ZSkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFu dCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7Ci0gICAgICAgICAgICAg bGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEpKTsKLSAgICAgICAgICAgICAvLyBDaGVjayBp ZiB0aGUgd29yZHMgY29udGFpbnMgbm9uLUFTQ0lJCi0gICAgICAgICAgICAgaWYgKHdvcmQgJiBB U0NJSV9NQVNLKSB8IChzZWNvbmRfd29yZCAmIEFTQ0lJX01BU0spICE9IDAgewotICAgICAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8vIFNh ZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAgICAgICAgICB1bnBh Y2tfYWx1KHdvcmQsIHNlY29uZF93b3JkLCBkc3QpOwotICAgICAgICAgICAgIHRydWUKLSAgICAg ICAgIH0KLSAKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyBmb3VyIHZhbGlkIGB1c2l6 ZWBzLCBkc3QgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUo YWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVf YWx1KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIC0+IGJvb2wgewotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAg ICAgICAgbGV0IGZpcnN0ID0gKnNyYzsKLSAgICAgICAgICAgICBsZXQgc2Vjb25kID0gKihzcmMu YWRkKDEpKTsKLSAgICAgICAgICAgICBsZXQgdGhpcmQgPSAqKHNyYy5hZGQoMikpOwotQEAgLTE0 NjUsMTYgKzE4MzQsMjIgQEAKLSAgICAgICAgICAgICBpZiAoZmlyc3QgJiBCQVNJQ19MQVRJTl9N QVNLKSB8IChzZWNvbmQgJiBCQVNJQ19MQVRJTl9NQVNLKSB8ICh0aGlyZCAmIEJBU0lDX0xBVElO X01BU0spIHwgKGZvdXJ0aCAmIEJBU0lDX0xBVElOX01BU0spICE9IDAgewotICAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8vIFNhZmV0 eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQgcGFzc2VkIGRvd24KLSAgICAgICAgICAgICBwYWNrX2Fs dShmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91cnRoLCBkc3QpOwotICAgICAgICAgICAgIHRydWUK LSAgICAgICAgIH0KLSAKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjLCBkc3QgYm90aCBwb2ludCB0 byB0d28gdmFsaWQgYHVzaXplYHMgZWFjaAotKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZh cmlhbnQ6IFdpbGwgcmV0dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUuCi0g ICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIGFzY2lpX3RvX2Fz Y2lpX3N0cmlkZShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAtPiBPcHRpb248 dXNpemU+IHsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVz ZWQgaGVyZQotICAgICAgICAgICAgIGxldCB3b3JkID0gKnNyYzsKLSAgICAgICAgICAgICBsZXQg c2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQoMSkpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3Jj IHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IHdvcmQ7Ci0g ICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOwotKyAgICAgICAgICAgIC8v IFJlbGllcyBvbiBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgZmlu ZF9ub25fYXNjaWkod29yZCwgc2Vjb25kX3dvcmQpCi0gICAgICAgICB9Ci0gCi1AQCAtMTQ4Miw2 ICsxODU3LDcgQEAKLSAgICAgICAgIGJhc2ljX2xhdGluX2FsdSEoYmFzaWNfbGF0aW5fdG9fYXNj aWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9hbHUpOwotICAgICAgICAg bGF0aW4xX2FsdSEodW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX2xhdGluMV9zdHJpZGVf YWx1KTsKLSAgICAgICAgIGxhdGluMV9hbHUhKHBhY2tfbGF0aW4xLCB1MTYsIHU4LCBwYWNrX2xh dGluMV9zdHJpZGVfYWx1KTsKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQgdXBoZWxkOiBh c2NpaV90b19hc2NpaV9zdHJpZGUgd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24t YXNjaWkgaWYgZm91bmQKLSAgICAgICAgIGFzY2lpX2FsdSEoYXNjaWlfdG9fYXNjaWksIHU4LCB1 OCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlKTsKLSAgICAgfQotIH0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvaGFuZGxlcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycwkyMDI1 LTA5LTE3IDE3OjQxOjIxLjEzOTgwNDk2OSArMDMwMAotQEAgLTM0LDcgKzM0LDcgQEAKLSAgICAg ICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24i KQotICAgICApCi0gKSldCi0tdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKLSt1c2UgY29yZTo6c2lt ZDo6dTE2eDg7Ci0gCi0gdXNlIHN1cGVyOjpEZWNvZGVyUmVzdWx0OwotIHVzZSBzdXBlcjo6RW5j b2RlclJlc3VsdDsKLUBAIC05MCwxOSArOTAsMjMgQEAKLSAKLSAjW2Rlcml2ZShEZWJ1ZywgQ29w eSwgQ2xvbmUpXQotIHN0cnVjdCBVbmFsaWduZWRVMTZTbGljZSB7Ci0rICAgIC8vIFNhZmV0eSBp bnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciByZWFkaW5nIDIqbGVuIGJ5dGVzCi0gICAg IHB0cjogKmNvbnN0IHU4LAotICAgICBsZW46IHVzaXplLAotIH0KLSAKLSBpbXBsIFVuYWxpZ25l ZFUxNlNsaWNlIHsKLSsgICAgLy8vIFNhZmV0eTogcHRyIG11c3QgYmUgdmFsaWQgZm9yIHJlYWRp bmcgMipsZW4gYnl0ZXMKLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIHVuc2FmZSBm biBuZXcocHRyOiAqY29uc3QgdTgsIGxlbjogdXNpemUpIC0+IFVuYWxpZ25lZFUxNlNsaWNlIHsK LSsgICAgICAgIC8vIFNhZmV0eTogZmllbGQgaW52YXJpYW50IHBhc3NlZCB1cCB0byBjYWxsZXIg aGVyZQotICAgICAgICAgVW5hbGlnbmVkVTE2U2xpY2UgeyBwdHIsIGxlbiB9Ci0gICAgIH0KLSAK LSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIGZuIHRyaW1fbGFzdCgmbXV0IHNlbGYp IHsKLSAgICAgICAgIGFzc2VydCEoc2VsZi5sZW4gPiAwKTsKLSsgICAgICAgIC8vIFNhZmV0eTog aW52YXJpYW50IHVwaGVsZCBoZXJlOiBhIHNsaWNlIGlzIHN0aWxsIHZhbGlkIHdpdGggYSBzaG9y dGVyIGxlbgotICAgICAgICAgc2VsZi5sZW4gLT0gMTsKLSAgICAgfQotIAotQEAgLTExMyw3ICsx MTcsOSBAQAotICAgICAgICAgYXNzZXJ0IShpIDwgc2VsZi5sZW4pOwotICAgICAgICAgdW5zYWZl IHsKLSAgICAgICAgICAgICBsZXQgbXV0IHU6IE1heWJlVW5pbml0PHUxNj4gPSBNYXliZVVuaW5p dDo6dW5pbml0KCk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBpIGlzIGF0IG1vc3QgbGVuIC0g MSwgd2hpY2ggd29ya3MgaGVyZQotICAgICAgICAgICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92 ZXJsYXBwaW5nKHNlbGYucHRyLmFkZChpICogMiksIHUuYXNfbXV0X3B0cigpIGFzICptdXQgdTgs IDIpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogdmFsaWQgcmVhZCBhYm92ZSBsZXRzIHVzIGRv IHRoaXMKLSAgICAgICAgICAgICB1LmFzc3VtZV9pbml0KCkKLSAgICAgICAgIH0KLSAgICAgfQot QEAgLTEyMSw4ICsxMjcsMTMgQEAKLSAgICAgI1tjZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIild Ci0gICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgIHB1YiBmbiBzaW1kX2F0KCZzZWxmLCBpOiB1 c2l6ZSkgLT4gdTE2eDggewotKyAgICAgICAgLy8gU2FmZXR5OiBpL2xlbiBhcmUgb24gdGhlIHNj YWxlIG9mIHUxNnMsIGVhY2ggb25lIGNvcnJlc3BvbmRzIHRvIDIgdThzCi0gICAgICAgICBhc3Nl cnQhKGkgKyBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxmLmxlbik7Ci0gICAgICAgICBsZXQg Ynl0ZV9pbmRleCA9IGkgKiAyOwotKyAgICAgICAgLy8gU2FmZXR5OiBsb2FkMTZfdW5hbGlnbmVk IG5lZWRzIFNJTURfU1RSSURFX1NJWkU9MTYgdTggZWxlbWVudHMgdG8gcmVhZCwKLSsgICAgICAg IC8vIG9yIDE2LzIgPSA4IHUxNiBlbGVtZW50cyB0byByZWFkLgotKyAgICAgICAgLy8gV2UgaGF2 ZSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCB0aGF0IG1hbnkgYWJvdmUuCi0rCi0gICAg ICAgICB1bnNhZmUgeyB0b191MTZfbGFuZXMobG9hZDE2X3VuYWxpZ25lZChzZWxmLnB0ci5hZGQo Ynl0ZV9pbmRleCkpKSB9Ci0gICAgIH0KLSAKLUBAIC0xMzYsNiArMTQ3LDcgQEAKLSAgICAgICAg IC8vIFhYWCB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSByZXN0cmljdGVkIG5vdCB0bwotICAg ICAgICAgLy8gb3V0bGl2ZSBzZWxmLgotICAgICAgICAgYXNzZXJ0IShmcm9tIDw9IHNlbGYubGVu KTsKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyB1cGhvbGRzIHRoZSBzYW1lIGludmFyaWFudDog YGZyb21gIGlzIGluIGJvdW5kcyBhbmQgd2UncmUgcmV0dXJuaW5nIGEgc2hvcnRlciBzbGljZQot ICAgICAgICAgdW5zYWZlIHsgVW5hbGlnbmVkVTE2U2xpY2U6Om5ldyhzZWxmLnB0ci5hZGQoZnJv bSAqIDIpLCBzZWxmLmxlbiAtIGZyb20pIH0KLSAgICAgfQotIAotQEAgLTE0NCw2ICsxNTYsOCBA QAotICAgICBwdWIgZm4gY29weV9ibXBfdG88RTogRW5kaWFuPigmc2VsZiwgb3RoZXI6ICZtdXQg W3UxNl0pIC0+IE9wdGlvbjwodTE2LCB1c2l6ZSk+IHsKLSAgICAgICAgIGFzc2VydCEoc2VsZi5s ZW4gPD0gb3RoZXIubGVuKCkpOwotICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwOwotKyAgICAg ICAgLy8gU2FmZXR5OiBTSU1EX1NUUklERV9TSVpFIGlzIG1lYXN1cmVkIGluIGJ5dGVzLCB3aGVy ZWFzIGxlbiBpcyBpbiB1MTZzLiBXZSBjaGVjayB3ZSBjYW4KLSsgICAgICAgIC8vIG11bmNoIFNJ TURfU1RSSURFX1NJWkUgLyAyIHUxNnMgd2hpY2ggbWVhbnMgd2UgY2FuIHdyaXRlIFNJTURfU1RS SURFX1NJWkUgdThzCi0gICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxmLmxl biB7Ci0gICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBzZWxmLmxlbiAtIFNJTURf U1RSSURFX1NJWkUgLyAyOwotICAgICAgICAgICAgIGxvb3AgewotQEAgLTE1MSw2ICsxNjUsNyBA QAotICAgICAgICAgICAgICAgICBpZiBFOjpPUFBPU0lURV9FTkRJQU4gewotICAgICAgICAgICAg ICAgICAgICAgc2ltZCA9IHNpbWRfYnl0ZV9zd2FwKHNpbWQpOwotICAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UgaGF2ZSBlbm91Z2ggc3BhY2Ugb24gdGhl IG90aGVyIHNpZGUgdG8gd3JpdGUgdGhpcwotICAgICAgICAgICAgICAgICB1bnNhZmUgewotICAg ICAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChvdGhlci5hc19tdXRfcHRyKCkuYWRk KG9mZnNldCksIHNpbWQpOwotICAgICAgICAgICAgICAgICB9Ci1AQCAtMTU4LDYgKzE3Myw3IEBA Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIDI7Ci0rICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBlbnN1cmVzIHdlIHN0aWxsIGhhdmUgc3BhY2UgZm9yIHdyaXRp bmcgU0lNRF9TVFJJREVfU0laRSB1OHMKLSAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZSB7Ci0gICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg ICAgICAgfQotQEAgLTIzNiw2ICsyNTIsNyBAQAotICkgLT4gQ29weUFzY2lpUmVzdWx0PHVzaXpl LCAodTE2LCB1c2l6ZSk+IHsKLSAgICAgbGV0IGxlbiA9IDo6Y29yZTo6Y21wOjptaW4oc3JjLmxl bigpLCBkc3QubGVuKCkpOwotICAgICBsZXQgbXV0IG9mZnNldCA9IDA7Ci0rICAgIC8vIFNhZmV0 eTogVGhpcyBjaGVjayBlbnN1cmVzIHdlIGFyZSBhYmxlIHRvIHJlYWQvd3JpdGUgYXQgbGVhc3Qg U0lNRF9TVFJJREVfU0laRSBlbGVtZW50cwotICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxl biB7Ci0gICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJ WkU7Ci0gICAgICAgICBsb29wIHsKLUBAIC0yNDksMTAgKzI2NiwxMyBAQAotICAgICAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgbGV0IHBhY2tlZCA9IHNp bWRfcGFjayhmaXJzdCwgc2Vjb25kKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGFyZSBh YmxlIHRvIHdyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgaW4gdGhpcyBpdGVyYXRpb24K LSAgICAgICAgICAgICB1bnNhZmUgewotICAgICAgICAgICAgICAgICBzdG9yZTE2X3VuYWxpZ25l ZChkc3QuYXNfbXV0X3B0cigpLmFkZChvZmZzZXQpLCBwYWNrZWQpOwotICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAv LyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3aGlj aCBlbnN1cmVzIHRoYXQgd2UgY2FuIHdyaXRlIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxl bWVudHMKLSsgICAgICAgICAgICAvLyBpbiB0aGUgbmV4dCBpdGVyYXRpb24KLSAgICAgICAgICAg ICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgICAgICAgfQotQEAgLTYzNyw3ICs2NTcsNyBAQAotICAgICAgICAgc2VsZi53cml0 ZV9jb2RlX3VuaXQoKDB4REMwMCArIChhc3RyYWwgJiAweDNGRikpIGFzIHUxNik7Ci0gICAgIH0K LSAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLS0gICAgcHViIGZuIHdyaXRlX3N1cnJvZ2F0ZV9wYWly KCZtdXQgc2VsZiwgaGlnaDogdTE2LCBsb3c6IHUxNikgewotKyAgICBmbiB3cml0ZV9zdXJyb2dh dGVfcGFpcigmbXV0IHNlbGYsIGhpZ2g6IHUxNiwgbG93OiB1MTYpIHsKLSAgICAgICAgIHNlbGYu d3JpdGVfY29kZV91bml0KGhpZ2gpOwotICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQobG93 KTsKLSAgICAgfQotQEAgLTY0Niw2ICs2NjYsNyBAQAotICAgICAgICAgc2VsZi53cml0ZV9ibXBf ZXhjbF9hc2NpaShjb21iaW5lZCk7Ci0gICAgICAgICBzZWxmLndyaXRlX2JtcF9leGNsX2FzY2lp KGNvbWJpbmluZyk7Ci0gICAgIH0KLSsgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IENv cHlBc2NpaVJlc3VsdDo6R29PbiB3aWxsIG9ubHkgY29udGFpbiBieXRlcyA+PTB4ODAKLSAgICAg I1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgcHViIGZuIGNvcHlfYXNjaWlfZnJvbV9jaGVja19zcGFj ZV9ibXA8J2I+KAotICAgICAgICAgJidiIG11dCBzZWxmLAotQEAgLTY1OSw2ICs2ODAsOCBAQAot ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpJ bnB1dEVtcHR5LCBzcmNfcmVtYWluaW5nLmxlbigpKQotICAgICAgICAgICAgIH07Ci0rICAgICAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgbmVlZGluZyB2 YWxpZCBwb2ludGVycyBmb3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hpY2gKLSsgICAgICAgICAgICAv LyBpcyB0cnVlIHNpbmNlIHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11bSBsZW5ndGggb2YgdGhlIHR3 bwotICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7Ci0gICAgICAgICAgICAgICAgIGFzY2lpX3Rv X2Jhc2ljX2xhdGluKHNyY19yZW1haW5pbmcuYXNfcHRyKCksIGRzdF9yZW1haW5pbmcuYXNfbXV0 X3B0cigpLCBsZW5ndGgpCi0gICAgICAgICAgICAgfSB7Ci1AQCAtNjY3LDE2ICs2OTAsMjAgQEAK LSAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGxlbmd0aDsKLSAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBDb3B5QXNjaWlSZXN1bHQ6OlN0b3AoKHBlbmRpbmcsIHNvdXJjZS5wb3Ms IHNlbGYucG9zKSk7Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiB0aGUgZnVuY3Rpb24gaXMgZG9jdW1lbnRlZCBhcyByZXR1cm5pbmcgYnl0ZXMgPj0weDgw IGluIHRoZSBTb21lCi0gICAgICAgICAgICAgICAgIFNvbWUoKG5vbl9hc2NpaSwgY29uc3VtZWQp KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IGNvbnN1bWVkOwotICAg ICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAg ICAgICBzb3VyY2UucG9zICs9IDE7IC8vICsxIGZvciBub25fYXNjaWkKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkgYnViYmxlZCBvdXQg aGVyZQotICAgICAgICAgICAgICAgICAgICAgbm9uX2FzY2lpCi0gICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICB9Ci0gICAgICAgICB9OwotKyAgICAgICAgLy8gU2FmZXR5OiBub24tYXNj aWkgcmV0dXJuZWQgaGVyZQotICAgICAgICAgQ29weUFzY2lpUmVzdWx0OjpHb09uKChub25fYXNj aWlfcmV0LCBVdGYxNkJtcEhhbmRsZTo6bmV3KHNlbGYpKSkKLSAgICAgfQotKyAgICAvLyBTYWZl dHktdXNhYmxlIGludmFyaWFudDogQ29weUFzY2lpUmVzdWx0OjpHb09uIHdpbGwgb25seSBjb250 YWluIGJ5dGVzID49MHg4MAotICAgICAjW2lubGluZShhbHdheXMpXQotICAgICBwdWIgZm4gY29w eV9hc2NpaV9mcm9tX2NoZWNrX3NwYWNlX2FzdHJhbDwnYj4oCi0gICAgICAgICAmJ2IgbXV0IHNl bGYsCi1AQCAtNjkxLDYgKzcxOCw4IEBACi0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgICAgICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHksIHNyY19yZW1haW5pbmcubGVuKCkp Ci0gICAgICAgICAgICAgfTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g aXMgZG9jdW1lbnRlZCBhcyBuZWVkaW5nIHZhbGlkIHBvaW50ZXJzIGZvciBzcmMvZGVzdCBhbmQg bGVuLCB3aGljaAotKyAgICAgICAgICAgIC8vIGlzIHRydWUgc2luY2Ugd2UndmUgcGFzc2VkIHRo ZSBtaW51bXVtIGxlbmd0aCBvZiB0aGUgdHdvCi0gICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsK LSAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW4oc3JjX3JlbWFpbmluZy5hc19w dHIoKSwgZHN0X3JlbWFpbmluZy5hc19tdXRfcHRyKCksIGxlbmd0aCkKLSAgICAgICAgICAgICB9 IHsKLUBAIC02OTksMTEgKzcyOCwxMyBAQAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3Mg Kz0gbGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6 U3RvcCgocGVuZGluZywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKLSAgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBpcyBkb2N1bWVudGVk IGFzIHJldHVybmluZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKLSAgICAgICAgICAgICAgICAg U29tZSgobm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgIHNv dXJjZS5wb3MgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBj b25zdW1lZDsKLSAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucG9zICsgMSA8IGRzdF9sZW4g ewotICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsgLy8gKzEgZm9yIG5v bl9hc2NpaQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBub24tYXNjaWkgYnViYmxlZCBvdXQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgICAg IG5vbl9hc2NpaQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKCgKLUBAIC03MTUsNiArNzQ2 LDcgQEAKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH07Ci0r ICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2NpaSByZXR1cm5lZCBoZXJlCi0gICAgICAgICBDb3B5 QXNjaWlSZXN1bHQ6OkdvT24oKG5vbl9hc2NpaV9yZXQsIFV0ZjE2QXN0cmFsSGFuZGxlOjpuZXco c2VsZikpKQotICAgICB9Ci0gICAgICNbaW5saW5lKGFsd2F5cyldCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvbGliLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9saWIucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycwkyMDI1LTA5LTE3IDE3OjQxOjIx LjE0MDgwNDkzMSArMDMwMAotQEAgLTY4OSw3ICs2ODksNyBAQAotIC8vISBmb3IgZGlzY3Vzc2lv biBhYm91dCB0aGUgVVRGLTE2IGZhbWlseS4KLSAKLSAjIVtub19zdGRdCi0tIyFbY2ZnX2F0dHIo ZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVhdHVyZShjb3JlX2ludHJpbnNpY3MpKV0KLSsjIVtj ZmdfYXR0cihmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBmZWF0dXJlKGNvcmVfaW50cmluc2ljcywg cG9ydGFibGVfc2ltZCkpXQotIAotICNbY2ZnKGZlYXR1cmUgPSAiYWxsb2MiKV0KLSAjW2NmZ19h dHRyKHRlc3QsIG1hY3JvX3VzZSldCi1AQCAtNjk5LDE3ICs2OTksNiBAQAotICNbbWFjcm9fdXNl XQotIGV4dGVybiBjcmF0ZSBjZmdfaWY7Ci0gCi0tI1tjZmcoYWxsKAotLSAgICBmZWF0dXJlID0g InNpbWQtYWNjZWwiLAotLSAgICBhbnkoCi0tICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJzc2Uy IiwKLS0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0g ImFhcmNoNjQiKSwKLS0gICAgICAgIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdl dF9mZWF0dXJlID0gIm5lb24iKQotLSAgICApCi0tKSldCi0tI1ttYWNyb191c2Uoc2h1ZmZsZSld Ci0tZXh0ZXJuIGNyYXRlIHBhY2tlZF9zaW1kOwotLQotICNbY2ZnKGZlYXR1cmUgPSAic2VyZGUi KV0KLSBleHRlcm4gY3JhdGUgc2VyZGU7Ci0gCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9z cmMvbWVtLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMJ MjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycwkyMDI1LTA5LTE3IDE3OjQxOjIxLjE0MDgwNDkzMSAr MDMwMAotQEAgLTExNiw2ICsxMTYsMTEgQEAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX0FMSUdOTUVO VCAvIHVuaXRfc2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCArICg0ICogKEFM VV9BTElHTk1FTlQgLyB1bml0X3NpemUpKSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSA0IGNvbnNlY3V0 aXZlIHJlYWRzIG9mCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoIEFMVV9BTElH Tk1FTlQgLyB1bml0X3NpemUuIEFMVV9BTElHTk1FTlQgaXMgdGhlIHNpemUgb2YgdXNpemUsIGFu ZCB1bml0X3NpemUKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyB0aGUgc2l6ZSBvZiB0 aGUgYHNyY2AgcG9pbnRlciwgc28gdGhpcyBpcyBlcXVhbCB0byBwZXJmb3JtaW5nIGZvdXIgdXNp emUgcmVhZHMuCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGlzIGludmFyaWFudCBpcyB1cGhlbGQgb24gYWxsIGxvb3AgaXRlcmF0aW9u cwotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfdW5yb2xsID0gbGVuIC0g KDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpOwotICAgICAgICAgICAgICAgICAgICAg ICAgIGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5yb2xsX2FjY3Ug PSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUpIH0KLUBAIC0xMzQs MTIgKzEzOSwxNCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh bHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldCArPSA0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY2hlY2sgbGV0cyB1cyBj b250aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJlYWRzIGVhcmxpZXIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3Vucm9sbCB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8PSBsZW5fbWludXNfc3RyaWRlIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVz IHBlcmZvcm0gb25lIHVzaXplIHJlYWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgYWNjdSB8 PSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUpIH07Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemU7Ci0g ICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMTg5LDYgKzE5NiwxMSBAQAotICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBs ZW4gLSBTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplOwotICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ICsgKDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZSkpIDw9IGxlbiB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0 cyB1cyBwZXJmb3JtIDQgY29uc2VjdXRpdmUgcmVhZHMgb2YKLSsgICAgICAgICAgICAgICAgICAg ICAgICAvLyBsZW5ndGggU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZS4gU0lNRF9TVFJJREVf U0laRSBpcyB0aGUgc2l6ZSBvZiAkc2ltZF90eSwgYW5kIHVuaXRfc2l6ZQotKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGlzIHRoZSBzaXplIG9mIHRoZSBgc3JjYCBwb2ludGVyLCBzbyB0aGlz IGlzIGVxdWFsIHRvIHBlcmZvcm1pbmcgZm91ciAkc2ltZF90eSByZWFkcy4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaW52YXJp YW50IGlzIHVwaGVsZCBvbiBhbGwgbG9vcCBpdGVyYXRpb25zCi0gICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGxlbl9taW51c191bnJvbGwgPSBsZW4gLSAoNCAqIChTSU1EX1NUUklERV9TSVpF IC8gdW5pdF9zaXplKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB1bnJvbGxfYWNjdSA9IHVuc2FmZSB7ICooc3JjLmFk ZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfQotQEAgLTIwOCw2ICsyMjAsNyBAQAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSA0ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY2hlY2sgbGV0cyB1cyBjb250aW51ZSB0byBwZXJm b3JtIHRoZSA0IHJlYWRzIGVhcmxpZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg b2Zmc2V0ID4gbGVuX21pbnVzX3Vucm9sbCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTIxNSw2ICsy MjgsNyBAQAotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBzaW1kX2FjY3UgPSAkc3BsYXQ7Ci0gICAgICAgICAgICAgICAgICAgICB3aGlsZSBvZmZz ZXQgPD0gbGVuX21pbnVzX3N0cmlkZSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIG9uZSAkc2ltZF90eSByZWFkLgot ICAgICAgICAgICAgICAgICAgICAgICAgIHNpbWRfYWNjdSA9IHNpbWRfYWNjdSB8IHVuc2FmZSB7 ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCAkc2ltZF90eSkgfTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKLSAgICAg ICAgICAgICAgICAgICAgIH0KLUBAIC0yMzQsOCArMjQ4LDggQEAKLSBjZmdfaWYhIHsKLSAgICAg aWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGFueSh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UyIiwgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpLCBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJu ZW9uIikpKSldIHsKLSAgICAgICAgIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6KjsKLS0gICAgICAg IHVzZSBwYWNrZWRfc2ltZDo6dTh4MTY7Ci0tICAgICAgICB1c2UgcGFja2VkX3NpbWQ6OnUxNng4 OwotKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnU4eDE2OwotKyAgICAgICAgdXNlIGNvcmU6OnNp bWQ6OnUxNng4OwotIAotICAgICAgICAgY29uc3QgU0lNRF9BTElHTk1FTlQ6IHVzaXplID0gMTY7 Ci0gCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2ltZF9m dW5jcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMJMjAy NS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMJMjAyNS0wOS0xNyAxNzo0MToyMS4xNDE4MDQ4 OTIgKzAzMDAKLUBAIC03LDU1ICs3LDc0IEBACi0gLy8gb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5v dCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAotIC8vIGV4Y2VwdCBhY2NvcmRp bmcgdG8gdGhvc2UgdGVybXMuCi0gCi0tdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKLS11c2UgcGFj a2VkX3NpbWQ6OnU4eDE2OwotLXVzZSBwYWNrZWRfc2ltZDo6SW50b0JpdHM7Ci0rdXNlIGFueV9h bGxfd29ya2Fyb3VuZDo6YWxsX21hc2sxNng4OwotK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFs bF9tYXNrOHgxNjsKLSt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbnlfbWFzazE2eDg7Ci0rdXNl IGFueV9hbGxfd29ya2Fyb3VuZDo6YW55X21hc2s4eDE2OwotK3VzZSBjb3JlOjpzaW1kOjpjbXA6 OlNpbWRQYXJ0aWFsRXE7Ci0rdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxPcmQ7Ci0r dXNlIGNvcmU6OnNpbWQ6Om1hc2sxNng4OwotK3VzZSBjb3JlOjpzaW1kOjptYXNrOHgxNjsKLSt1 c2UgY29yZTo6c2ltZDo6c2ltZF9zd2l6emxlOwotK3VzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKLSt1 c2UgY29yZTo6c2ltZDo6dTh4MTY7Ci0rdXNlIGNvcmU6OnNpbWQ6OlRvQnl0ZXM7Ci0gCi0gLy8g VE9ETzogTWlncmF0ZSB1bmFsaWduZWQgYWNjZXNzIHRvIHN0ZGxpYiBjb2RlIGlmL3doZW4gdGhl IFJGQwotIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzE3MjUgaXMg aW1wbGVtZW50ZWQuCi0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlk IGZvciBhbiB1bmFsaWduZWQgcmVhZCBvZiAxNiBieXRlcwotICNbaW5saW5lKGFsd2F5cyldCi0g cHViIHVuc2FmZSBmbiBsb2FkMTZfdW5hbGlnbmVkKHB0cjogKmNvbnN0IHU4KSAtPiB1OHgxNiB7 Ci0tICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVtOjp1bmluaXRpYWxpemVkKCk7Ci0tICAg IDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgJm11dCBzaW1kIGFzICptdXQg dTh4MTYgYXMgKm11dCB1OCwgMTYpOwotLSAgICBzaW1kCi0rICAgIGxldCBtdXQgc2ltZCA9IDo6 Y29yZTo6bWVtOjpNYXliZVVuaW5pdDo6PHU4eDE2Pjo6dW5pbml0KCk7Ci0rICAgIDo6Y29yZTo6 cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciwgc2ltZC5hc19tdXRfcHRyKCkgYXMgKm11dCB1 OCwgMTYpOwotKyAgICAvLyBTYWZldHk6IGNvcGllZCAxNiBieXRlcyBvZiBpbml0aWFsaXplZCBt ZW1vcnkgaW50byB0aGlzLCBpdCBpcyBub3cgaW5pdGlhbGl6ZWQKLSsgICAgc2ltZC5hc3N1bWVf aW5pdCgpCi0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBm b3IgYW4gYWxpZ25lZC1mb3ItdTh4MTYgcmVhZCBvZiAxNiBieXRlcwotICNbYWxsb3coZGVhZF9j b2RlKV0KLSAjW2lubGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gbG9hZDE2X2FsaWduZWQo cHRyOiAqY29uc3QgdTgpIC0+IHU4eDE2IHsKLSAgICAgKihwdHIgYXMgKmNvbnN0IHU4eDE2KQot IH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVu YWxpZ25lZCBzdG9yZSBvZiAxNiBieXRlcwotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2Fm ZSBmbiBzdG9yZTE2X3VuYWxpZ25lZChwdHI6ICptdXQgdTgsIHM6IHU4eDE2KSB7Ci0gICAgIDo6 Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKCZzIGFzICpjb25zdCB1OHgxNiBhcyAqY29u c3QgdTgsIHB0ciwgMTYpOwotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3Qg YmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXU4eDE2IHN0b3JlIG9mIDE2IGJ5dGVzCi0gI1th bGxvdyhkZWFkX2NvZGUpXQotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBzdG9y ZTE2X2FsaWduZWQocHRyOiAqbXV0IHU4LCBzOiB1OHgxNikgewotICAgICAqKHB0ciBhcyAqbXV0 IHU4eDE2KSA9IHM7Ci0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2 YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHJlYWQgb2YgMTYgYnl0ZXMKLSAjW2lubGluZShhbHdheXMp XQotIHB1YiB1bnNhZmUgZm4gbG9hZDhfdW5hbGlnbmVkKHB0cjogKmNvbnN0IHUxNikgLT4gdTE2 eDggewotLSAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6dW5pbml0aWFsaXplZCgpOwot LSAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIgYXMgKmNvbnN0IHU4LCAm bXV0IHNpbWQgYXMgKm11dCB1MTZ4OCBhcyAqbXV0IHU4LCAxNik7Ci0tICAgIHNpbWQKLSsgICAg bGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06Ok1heWJlVW5pbml0Ojo8dTE2eDg+Ojp1bmluaXQo KTsKLSsgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRyIGFzICpjb25zdCB1 OCwgc2ltZC5hc19tdXRfcHRyKCkgYXMgKm11dCB1OCwgMTYpOwotKyAgICAvLyBTYWZldHk6IGNv cGllZCAxNiBieXRlcyBvZiBpbml0aWFsaXplZCBtZW1vcnkgaW50byB0aGlzLCBpdCBpcyBub3cg aW5pdGlhbGl6ZWQKLSsgICAgc2ltZC5hc3N1bWVfaW5pdCgpCi0gfQotIAotKy8vLyBTYWZldHkg aW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTE2eDggcmVh ZCBvZiAxNiBieXRlcwotICNbYWxsb3coZGVhZF9jb2RlKV0KLSAjW2lubGluZShhbHdheXMpXQot IHB1YiB1bnNhZmUgZm4gbG9hZDhfYWxpZ25lZChwdHI6ICpjb25zdCB1MTYpIC0+IHUxNng4IHsK LSAgICAgKihwdHIgYXMgKmNvbnN0IHUxNng4KQotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFu dDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCBzdG9yZSBvZiAxNiBieXRlcwot ICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBzdG9yZThfdW5hbGlnbmVkKHB0cjog Km11dCB1MTYsIHM6IHUxNng4KSB7Ci0gICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBw aW5nKCZzIGFzICpjb25zdCB1MTZ4OCBhcyAqY29uc3QgdTgsIHB0ciBhcyAqbXV0IHU4LCAxNik7 Ci0gfQotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4g YWxpZ25lZC1mb3ItdTE2eDggc3RvcmUgb2YgMTYgYnl0ZXMKLSAjW2FsbG93KGRlYWRfY29kZSld Ci0gI1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIHN0b3JlOF9hbGlnbmVkKHB0cjog Km11dCB1MTYsIHM6IHUxNng4KSB7Ci1AQCAtMTAwLDcgKzExOSw3IEBACi0gCi0gI1tpbmxpbmUo YWx3YXlzKV0KLSBwdWIgZm4gdG9fdTE2X2xhbmVzKHM6IHU4eDE2KSAtPiB1MTZ4OCB7Ci0tICAg IHMuaW50b19iaXRzKCkKLSsgICAgdTE2eDg6OmZyb21fbmVfYnl0ZXMocykKLSB9Ci0gCi0gY2Zn X2lmISB7Ci1AQCAtMTA4LDEwICsxMjcsMTEgQEAKLSAKLSAgICAgICAgIC8vIEV4cG9zZSBsb3ct bGV2ZWwgbWFzayBpbnN0ZWFkIG9mIGhpZ2hlci1sZXZlbCBjb25jbHVzaW9uLAotICAgICAgICAg Ly8gYmVjYXVzZSB0aGUgbm9uLUFTQ0lJIGNhc2Ugd291bGQgcGVyZm9ybSBsZXNzIHdlbGwgb3Ro ZXJ3aXNlLgotKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFRoaXMgcmV0dXJu ZWQgdmFsdWUgaXMgd2hldGhlciBlYWNoIGhpZ2ggYml0IGlzIHNldAotICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBtYXNrX2FzY2lpKHM6IHU4eDE2KSAtPiBpMzIg ewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19l cGk4KHMuaW50b19iaXRzKCkpCi0rICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMu aW50bygpKQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAKLUBAIC0xMjUsMTQgKzE0NSwx NiBAQAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX2lz X2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKLSAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG9fYml0cygpKSA9PSAwCi0rICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0K LSsgICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvKCkpID09IDAKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IildewotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBm biBzaW1kX2lzX2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKLSAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICB2bWF4dnFfdTgocy5pbnRvX2JpdHMoKSkgPCAweDgwCi0rICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZv cm0KLSsgICAgICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50bygpKSA8IDB4ODAKLSAgICAgICAg ICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMTQxLDcgKzE2Myw3IEBACi0g ICAgICAgICAgICAgLy8gVGhpcyBvcHRpbWl6ZXMgYmV0dGVyIG9uIEFSTSB0aGFuCi0gICAgICAg ICAgICAgLy8gdGhlIGx0IGZvcm11bGF0aW9uLgotICAgICAgICAgICAgIGxldCBoaWdoZXN0X2Fz Y2lpID0gdTh4MTY6OnNwbGF0KDB4N0YpOwotLSAgICAgICAgICAgICFzLmd0KGhpZ2hlc3RfYXNj aWkpLmFueSgpCi0rICAgICAgICAgICAgIWFueV9tYXNrOHgxNihzLnNpbWRfZ3QoaGlnaGVzdF9h c2NpaSkpCi0gICAgICAgICB9Ci0gICAgIH0KLSB9Ci1AQCAtMTU0LDIwICsxNzYsMjEgQEAKLSAg ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAg IGxldCBhYm92ZV9zdHJfbGF0aW4xID0gdTh4MTY6OnNwbGF0KDB4QzQpOwotLSAgICAgICAgICAg IHMubHQoYWJvdmVfc3RyX2xhdGluMSkuYWxsKCkKLSsgICAgICAgICAgICBzLnNpbWRfbHQoYWJv dmVfc3RyX2xhdGluMSkuYWxsKCkKLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9hcmNoID0gImFhcmNoNjQiKV17Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICAgICAgcHViIGZuIHNpbWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7Ci0gICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50b19iaXRz KCkpIDwgMHhDNAotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRo ZSBjb3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG8oKSkg PCAweEM0Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX2lzX3N0cl9sYXRpbjEo czogdTh4MTYpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBhYm92ZV9zdHJfbGF0aW4xID0g dTh4MTY6OnNwbGF0KDB4QzQpOwotLSAgICAgICAgICAgIHMubHQoYWJvdmVfc3RyX2xhdGluMSku YWxsKCkKLSsgICAgICAgICAgICBhbGxfbWFzazh4MTYocy5zaW1kX2x0KGFib3ZlX3N0cl9sYXRp bjEpKQotICAgICAgICAgfQotICAgICB9Ci0gfQotQEAgLTE3NywyMSArMjAwLDIzIEBACi0gICAg ICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRfaXNfYmFzaWNfbGF0 aW4oczogdTE2eDgpIC0+IGJvb2wgewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgIHZtYXh2cV91MTYocy5pbnRvX2JpdHMoKSkgPCAweDgwCi0rICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KLSsgICAgICAg ICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDgwCi0gICAgICAgICAgICAgfQotICAg ICAgICAgfQotIAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBz aW1kX2lzX2xhdGluMShzOiB1MTZ4OCkgLT4gYm9vbCB7Ci0gICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8IDB4MTAwCi0rICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZv cm0KLSsgICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDEwMAotICAgICAg ICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCi0gICAgICAgICBwdWIgZm4gc2ltZF9pc19iYXNpY19sYXRpbihzOiB1MTZ4OCkgLT4g Ym9vbCB7Ci0gICAgICAgICAgICAgbGV0IGFib3ZlX2FzY2lpID0gdTE2eDg6OnNwbGF0KDB4ODAp OwotLSAgICAgICAgICAgIHMubHQoYWJvdmVfYXNjaWkpLmFsbCgpCi0rICAgICAgICAgICAgYWxs X21hc2sxNng4KHMuc2ltZF9sdChhYm92ZV9hc2NpaSkpCi0gICAgICAgICB9Ci0gCi0gICAgICAg ICAjW2lubGluZShhbHdheXMpXQotQEAgLTIwMCw3ICsyMjUsNyBAQAotICAgICAgICAgICAgIC8v IHNlZW1zIGZhc3RlciBpbiB0aGlzIGNhc2Ugd2hpbGUgdGhlIGFib3ZlCi0gICAgICAgICAgICAg Ly8gZnVuY3Rpb24gaXMgYmV0dGVyIHRoZSBvdGhlciB3YXkgcm91bmQuLi4KLSAgICAgICAgICAg ICBsZXQgaGlnaGVzdF9sYXRpbjEgPSB1MTZ4ODo6c3BsYXQoMHhGRik7Ci0tICAgICAgICAgICAg IXMuZ3QoaGlnaGVzdF9sYXRpbjEpLmFueSgpCi0rICAgICAgICAgICAgIWFueV9tYXNrMTZ4OChz LnNpbWRfZ3QoaGlnaGVzdF9sYXRpbjEpKQotICAgICAgICAgfQotICAgICB9Ci0gfQotQEAgLTIw OSw3ICsyMzQsNyBAQAotIHB1YiBmbiBjb250YWluc19zdXJyb2dhdGVzKHM6IHUxNng4KSAtPiBi b29sIHsKLSAgICAgbGV0IG1hc2sgPSB1MTZ4ODo6c3BsYXQoMHhGODAwKTsKLSAgICAgbGV0IHN1 cnJvZ2F0ZV9iaXRzID0gdTE2eDg6OnNwbGF0KDB4RDgwMCk7Ci0tICAgIChzICYgbWFzaykuZXEo c3Vycm9nYXRlX2JpdHMpLmFueSgpCi0rICAgIGFueV9tYXNrMTZ4OCgocyAmIG1hc2spLnNpbWRf ZXEoc3Vycm9nYXRlX2JpdHMpKQotIH0KLSAKLSBjZmdfaWYhIHsKLUBAIC0yMTcsNyArMjQyLDgg QEAKLSAgICAgICAgIG1hY3JvX3J1bGVzISBhYXJjaDY0X3JldHVybl9mYWxzZV9pZl9iZWxvd19o ZWJyZXcgewotICAgICAgICAgICAgICgkczppZGVudCkgPT4gKHsKLSAgICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIHZtYXh2cV91MTYoJHMuaW50b19iaXRz KCkpIDwgMHgwNTkwIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBj ZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAgICAgIGlmIHZtYXh2 cV91MTYoJHMuaW50bygpKSA8IDB4MDU5MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9Ci1A QCAtMjM0LDcgKzI2MCw3IEBACi0gCi0gICAgICAgICBtYWNyb19ydWxlcyEgbm9uX2FhcmNoNjRf cmV0dXJuX2ZhbHNlX2lmX2FsbCB7Ci0gICAgICAgICAgICAgKCRzOmlkZW50KSA9PiAoewotLSAg ICAgICAgICAgICAgICBpZiAkcy5hbGwoKSB7Ci0rICAgICAgICAgICAgICAgIGlmIGFsbF9tYXNr MTZ4OCgkcykgewotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgfSkKLUBAIC0yNDUsNyArMjcxLDcgQEAKLSBtYWNyb19y dWxlcyEgaW5fcmFuZ2UxNng4IHsKLSAgICAgKCRzOmlkZW50LCAkc3RhcnQ6ZXhwciwgJGVuZDpl eHByKSA9PiB7ewotICAgICAgICAgLy8gU0lNRCBzdWIgaXMgd3JhcHBpbmcKLS0gICAgICAgICgk cyAtIHUxNng4OjpzcGxhdCgkc3RhcnQpKS5sdCh1MTZ4ODo6c3BsYXQoJGVuZCAtICRzdGFydCkp Ci0rICAgICAgICAoJHMgLSB1MTZ4ODo6c3BsYXQoJHN0YXJ0KSkuc2ltZF9sdCh1MTZ4ODo6c3Bs YXQoJGVuZCAtICRzdGFydCkpCi0gICAgIH19OwotIH0KLSAKLUBAIC0yNTksNDMgKzI4NSw0NCBA QAotIAotICAgICBhYXJjaDY0X3JldHVybl9mYWxzZV9pZl9iZWxvd19oZWJyZXchKHMpOwotIAot LSAgICBsZXQgYmVsb3dfaGVicmV3ID0gcy5sdCh1MTZ4ODo6c3BsYXQoMHgwNTkwKSk7Ci0rICAg IGxldCBiZWxvd19oZWJyZXcgPSBzLnNpbWRfbHQodTE2eDg6OnNwbGF0KDB4MDU5MCkpOwotIAot ICAgICBub25fYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYWxsIShiZWxvd19oZWJyZXcpOwotIAot LSAgICBpZiAoYmVsb3dfaGVicmV3IHwgaW5fcmFuZ2UxNng4IShzLCAweDA5MDAsIDB4MjAwRikg fCBpbl9yYW5nZTE2eDghKHMsIDB4MjA2OCwgMHhEODAyKSkuYWxsKCkgewotKyAgICBpZiBhbGxf bWFzazE2eDgoCi0rICAgICAgICBiZWxvd19oZWJyZXcgfCBpbl9yYW5nZTE2eDghKHMsIDB4MDkw MCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEocywgMHgyMDY4LCAweEQ4MDIpLAotKyAgICApIHsK LSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotIAotICAgICAvLyBRdWljayByZWZ1dGF0 aW9uIGZhaWxlZC4gTGV0J3MgZG8gdGhlIGZ1bGwgY2hlY2suCi0gCi0rICAgIGFueV9tYXNrMTZ4 OCgKLSAgICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAweDA5MDApCi0gICAgICAgICB8IGlu X3JhbmdlMTZ4OCEocywgMHhGQjFELCAweEZFMDApCi0gICAgICAgICB8IGluX3JhbmdlMTZ4OCEo cywgMHhGRTcwLCAweEZFRkYpCi0gICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODAyLCAw eEQ4MDQpCi0gICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODNBLCAweEQ4M0MpCi0tICAg ICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAwRikpCi0tICAgICAgICB8IHMuZXEodTE2eDg6 OnNwbGF0KDB4MjAyQikpCi0tICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAyRSkpCi0t ICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjA2NykpKQotLSAgICAuYW55KCkKLSsgICAg ICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDBGKSkKLSsgICAgICAgICAgICB8 IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDJCKSkKLSsgICAgICAgICAgICB8IHMuc2ltZF9l cSh1MTZ4ODo6c3BsYXQoMHgyMDJFKSkKLSsgICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6 c3BsYXQoMHgyMDY3KSkpLAotKyAgICApCi0gfQotIAotICNbaW5saW5lKGFsd2F5cyldCi0gcHVi IGZuIHNpbWRfdW5wYWNrKHM6IHU4eDE2KSAtPiAodTE2eDgsIHUxNng4KSB7Ci0tICAgIHVuc2Fm ZSB7Ci0tICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gc2h1ZmZsZSEoCi0rICAgIGxldCBmaXJz dDogdTh4MTYgPSBzaW1kX3N3aXp6bGUhKAotICAgICAgICAgICAgIHMsCi0gICAgICAgICAgICAg dTh4MTY6OnNwbGF0KDApLAotICAgICAgICAgICAgIFswLCAxNiwgMSwgMTcsIDIsIDE4LCAzLCAx OSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjNdCi0gICAgICAgICApOwotLSAgICAgICAgbGV0 IHNlY29uZDogdTh4MTYgPSBzaHVmZmxlISgKLSsgICAgbGV0IHNlY29uZDogdTh4MTYgPSBzaW1k X3N3aXp6bGUhKAotICAgICAgICAgICAgIHMsCi0gICAgICAgICAgICAgdTh4MTY6OnNwbGF0KDAp LAotICAgICAgICAgICAgIFs4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEz LCAyOSwgMTQsIDMwLCAxNSwgMzFdCi0gICAgICAgICApOwotLSAgICAgICAgKGZpcnN0LmludG9f Yml0cygpLCBzZWNvbmQuaW50b19iaXRzKCkpCi0tICAgIH0KLSsgICAgKHUxNng4Ojpmcm9tX25l X2J5dGVzKGZpcnN0KSwgdTE2eDg6OmZyb21fbmVfYnl0ZXMoc2Vjb25kKSkKLSB9Ci0gCi0gY2Zn X2lmISB7Ci1AQCAtMzAzLDIzICszMzAsMjIgQEAKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyld Ci0gICAgICAgICBwdWIgZm4gc2ltZF9wYWNrKGE6IHUxNng4LCBiOiB1MTZ4OCkgLT4gdTh4MTYg ewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIF9tbV9wYWNrdXNfZXBp MTYoYS5pbnRvX2JpdHMoKSwgYi5pbnRvX2JpdHMoKSkuaW50b19iaXRzKCkKLSsgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAg ICAgICAgICAgICAgICBfbW1fcGFja3VzX2VwaTE2KGEuaW50bygpLCBiLmludG8oKSkuaW50bygp Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2UgewotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2soYTogdTE2eDgsIGI6IHUx Nng4KSAtPiB1OHgxNiB7Ci0tICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg bGV0IGZpcnN0OiB1OHgxNiA9IGEuaW50b19iaXRzKCk7Ci0tICAgICAgICAgICAgICAgIGxldCBz ZWNvbmQ6IHU4eDE2ID0gYi5pbnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgc2h1ZmZsZSEo Ci0rICAgICAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IGEudG9fbmVfYnl0ZXMoKTsKLSsgICAg ICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IGIudG9fbmVfYnl0ZXMoKTsKLSsgICAgICAgICAg ICBzaW1kX3N3aXp6bGUhKAotICAgICAgICAgICAgICAgICAgICAgZmlyc3QsCi0gICAgICAgICAg ICAgICAgICAgICBzZWNvbmQsCi0gICAgICAgICAgICAgICAgICAgICBbMCwgMiwgNCwgNiwgOCwg MTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwXQotICAgICAgICAgICAg ICAgICApCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICB9Ci0gfQotIAotICNbY2Zn KHRlc3QpXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Np bmdsZV9ieXRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5 dGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRl LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycwkyMDI1LTA5LTE3IDE3OjQxOjIx LjE0MTgwNDg5MiArMDMwMAotQEAgLTUzLDYgKzUzLDkgQEAKLSAgICAgICAgICAgICAgICAgICAg IC8vIHN0YXRpY2FsbHkgb21pdCB0aGUgYm91bmQgY2hlY2sgd2hlbiBhY2Nlc3NpbmcKLSAgICAg ICAgICAgICAgICAgICAgIC8vIGBbdTE2OyAxMjhdYCB3aXRoIGFuIGluZGV4Ci0gICAgICAgICAg ICAgICAgICAgICAvLyBgbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplYC4KLSsgICAgICAg ICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBub25fYXNj aWlgIGlzIGEgdTggYnl0ZSA+PTB4ODAsIGZyb20gdGhlIGludmFyaWFudHMKLSsgICAgICAgICAg ICAgICAgICAgIC8vIG9uIFV0ZjhEZXN0aW5hdGlvbjo6Y29weV9hc2NpaV9mcm9tX2NoZWNrX3Nw YWNlX2JtcCgpCi0gICAgICAgICAgICAgICAgICAgICBsZXQgbWFwcGVkID0KLSAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNj aWkgYXMgdXNpemUgLSAweDgwdXNpemUpKSB9OwotICAgICAgICAgICAgICAgICAgICAgLy8gbGV0 IG1hcHBlZCA9IHNlbGYudGFibGVbbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplXTsKLUBA IC0xNTEsOSArMTU0LDEyIEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIChEZWNv ZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmMubGVuKCkpCi0gICAgICAgICB9OwotKyAgICAgICAg Ly8gU2FmZXR5IGludmFyaWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2Ug aGF2ZSBgY29udmVydGVkIDwgbGVuZ3RoYAotKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBh cmF0ZWx5IG1hcmtlZC4KLSAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOwotICAg ICAgICAgJ291dGVybW9zdDogbG9vcCB7Ci0gICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKLSsg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBg c3JjL2RzdCArIHhgIHdpbGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxl biAtIHhgCi0gICAgICAgICAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluKAotICAgICAgICAg ICAgICAgICAgICAgc3JjLmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAotICAgICAgICAgICAgICAg ICAgICAgZHN0LmFzX211dF9wdHIoKS5hZGQoY29udmVydGVkKSwKLUBAIC0xNjQsNiArMTcwLDEy IEBACi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3Ro KTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICBTb21lKChtdXQgbm9uX2Fz Y2lpLCBjb25zdW1lZCkpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eSBpbnZh cmlhbnQ6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkg Y29uc3VtZQotKyAgICAgICAgICAgICAgICAgICAgLy8gdXAgdG8gYGxlbmd0aCAtIGNvbnZlcnRl ZGAgYnl0ZXMuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAg Ly8gRnVydGhlcm1vcmUsIGluIHRoaXMgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgIC8v IHdlIGNhbiBhc3N1bWUgYGNvbnZlcnRlZCA8IGxlbmd0aGAgc2luY2UgdGhpcyBicmFuY2ggaXMg b25seSBldmVyIGhpdCB3aGVuCi0rICAgICAgICAgICAgICAgICAgICAvLyBhc2NpaV90b19iYXNp Y19sYXRpbiBmYWlscyB0byBjb25zdW1lIHRoZSBlbnRpcmUgc2xpY2UKLSAgICAgICAgICAgICAg ICAgICAgIGNvbnZlcnRlZCArPSBjb25zdW1lZDsKLSAgICAgICAgICAgICAgICAgICAgICdtaWRk bGU6IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWRgIGRvZXNu J3QgY291bnQgdGhlIHJlYWRpbmcgb2YgYG5vbl9hc2NpaWAgeWV0LgotQEAgLTE3Miw2ICsxODQs OSBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXRpY2FsbHkgb21pdCB0aGUgYm91 bmQgY2hlY2sgd2hlbiBhY2Nlc3NpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgW3Ux NjsgMTI4XWAgd2l0aCBhbiBpbmRleAotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBub25f YXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemVgLgotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBgbm9u X2FzY2lpYCBiZWluZyBiZXR3ZWVuIGAweDgwYCBhbmQgYDB4RkZgIGR1ZSB0bwotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHRoZSBpbnZhcmlhbnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRp bigpYCwgYW5kIG91ciB0YWJsZSBoYXMgZW5vdWdoIHNwYWNlIGZvciB0aGF0LgotICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtYXBwZWQgPQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNpemUg LSAweDgwdXNpemUpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBtYXBwZWQg PSBzZWxmLnRhYmxlW25vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6ZV07Ci1AQCAtMTgzLDkg KzE5OCwxMCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYm91bmQgY2hlY2sgaGFzIGFscmVhZHkgYmVl biBwZXJmb3JtZWQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBBcyBt ZW50aW9uZWQgYWJvdmUsIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0gbWFwcGVkOwot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIGBjb252ZXJ0ZWQgPCBs ZW5ndGhgIGJlZm9yZSB0aGlzCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICs9 IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCwgaGFuZGxlIEFTQ0lJIHB1bmN0 dWF0aW9uIGFuZCBub24tQVNDSUkgd2l0aG91dAotICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGdvaW5nIGJhY2sgdG8gQVNDSUkgYWNjZWxlcmF0aW9uLiBOb24tQVNDSUkgc2NyaXB0cwotQEAg LTE5OCw3ICsyMTQsMTAgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQg PT0gbGVuZ3RoIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5n LCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIGJhY2sgdG8gYGNvbnZlcnRlZCA8IGxl bmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKLSsgICAgICAgICAgICAgICAgICAgICAgICAv LyBhbmQgY2FuIHBlcmZvcm0gdGhpcyBjaGVjay4KLSAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVkIDwgbGVuZ3RoYCBp cyB1cGhlbGQgZm9yIHRoaXMgbG9vcAotICAgICAgICAgICAgICAgICAgICAgICAgICdpbm5lcm1v c3Q6IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBiID4gMTI3IHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IGI7Ci1AQCAtMjA4LDE1 ICsyMjcsMjAgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZSB1bmNvbmRp dGlvbmFsbHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gdW5yZWFkIGl0Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHRvIG1ha2UgaXQgcGFydCBvZiB0aGUgbmV4dCBTSU1EIHN0cmlkZS4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8IGxlbmd0aGAgaXMgdHJ1ZSBm b3IgdGhpcyBsb29wCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRf dW5jaGVja2VkX211dChjb252ZXJ0ZWQpKSA9IHUxNjo6ZnJvbShiKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFdlIGFyZSBub3cgYXQgYGNvbnZlcnRlZCA8PSBsZW5ndGhgLiBXZSBzaG91bGQgKm5vdCogYGNv bnRpbnVlYAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbG9vcCB3aXRob3V0 IHJldmVyaWZ5aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSAx OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBiIDwgNjAgewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gV2UndmUgZ290IHB1bmN0dWF0aW9uCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVu Z3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UncmUgYmFjayB0byBgY29udmVydGVkIDw9 IGxlbmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZSBsb29wIGNv bnRpbnVlcyBhcyBgY29udmVydGVkIDwgbGVuZ3RoYAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWUgJ2lubmVybW9zdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgbWFya3VwIG9y IEFTQ0lJIHRleHQKLUBAIC0yMzQsNiArMjU4LDggQEAKLSAgICAgICAgIGxvb3AgewotICAgICAg ICAgICAgIGlmIGxldCBTb21lKChub25fYXNjaWksIG9mZnNldCkpID0gdmFsaWRhdGVfYXNjaWko Ynl0ZXMpIHsKLSAgICAgICAgICAgICAgICAgdG90YWwgKz0gb2Zmc2V0OwotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGNhbiByZWx5IG9uIGBub25fYXNjaWlgIGJlaW5nIGJldHdlZW4g YDB4ODBgIGFuZCBgMHhGRmAgZHVlIHRvCi0rICAgICAgICAgICAgICAgIC8vIHRoZSBpbnZhcmlh bnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRpbigpYCwgYW5kIG91ciB0YWJsZSBoYXMgZW5vdWdo IHNwYWNlIGZvciB0aGF0LgotICAgICAgICAgICAgICAgICBsZXQgbWFwcGVkID0gdW5zYWZlIHsg KihzZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXpl KSkgfTsKLSAgICAgICAgICAgICAgICAgaWYgbWFwcGVkICE9IHUxNjo6ZnJvbShub25fYXNjaWkp IHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKLUBAIC0zODQsOSArNDEwLDEy IEBACi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIChFbmNvZGVyUmVzdWx0OjpJbnB1 dEVtcHR5LCBzcmMubGVuKCkpCi0gICAgICAgICB9OwotKyAgICAgICAgLy8gU2FmZXR5IGludmFy aWFudDogY29udmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVydGVk IDwgbGVuZ3RoYAotKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtlZC4K LSAgICAgICAgIGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOwotICAgICAgICAgJ291dGVybW9z dDogbG9vcCB7Ci0gICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhgIHdp bGwgYWx3YXlzIGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAtIHhgCi0gICAgICAg ICAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpKAotICAgICAgICAgICAgICAgICAgICAgc3Jj LmFzX3B0cigpLmFkZChjb252ZXJ0ZWQpLAotICAgICAgICAgICAgICAgICAgICAgZHN0LmFzX211 dF9wdHIoKS5hZGQoY29udmVydGVkKSwKLUBAIC0zOTcsMTUgKzQyNiwyMyBAQAotICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgU29tZSgobXV0IG5vbl9hc2NpaSwgY29uc3VtZWQp KSA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiBgY29udmVy dGVkIDw9IGxlbmd0aGAgdXBoZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGNvbnN1bWUKLSsgICAg ICAgICAgICAgICAgICAgIC8vIHVwIHRvIGBsZW5ndGggLSBjb252ZXJ0ZWRgIGJ5dGVzLgotKyAg ICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAgIC8vIEZ1cnRoZXJtb3Jl LCBpbiB0aGlzIGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gYXNzdW1l IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIHNpbmNlIHRoaXMgYnJhbmNoIGlzIG9ubHkgZXZlciBoaXQg d2hlbgotKyAgICAgICAgICAgICAgICAgICAgLy8gYXNjaWlfdG9fYmFzaWNfbGF0aW4gZmFpbHMg dG8gY29uc3VtZSB0aGUgZW50aXJlIHNsaWNlCi0gICAgICAgICAgICAgICAgICAgICBjb252ZXJ0 ZWQgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAnbWlkZGxlOiBsb29wIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBgY29udmVydGVkYCBkb2Vzbid0IGNvdW50IHRoZSBy ZWFkaW5nIG9mIGBub25fYXNjaWlgIHlldC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBtYXRj aCBzZWxmLmVuY29kZV91MTYobm9uX2FzY2lpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoYnl0ZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdl J3JlIGFsbG93ZWQgdGhpcyBhY2Nlc3Mgc2luY2UgYGNvbnZlcnRlZCA8IGxlbmd0aGAKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChj b252ZXJ0ZWQpKSA9IGJ5dGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBub3cKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOb25lID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMg cG9pbnQsIHdlIG5lZWQgdG8ga25vdyBpZiB3ZQotQEAgLTQyMSw2ICs0NTgsOCBAQAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IGNvbnZlcmVkIDwgbGVuZ3RoIGZyb20gb3V0c2lkZSB0aGUgbWF0Y2gsIGFu ZCBgY29udmVydGVkICsgMSAhPSBsZW5ndGhgLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNvIGBjb252ZXJ0ZWQgKyAxIDwgbGVuZ3RoYCBhcyB3ZWxsLiBXZSdyZSBp biBib3VuZHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25k ID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyOjpmcm9tKHVu c2FmZSB7ICpzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQgKyAxKSB9KTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWNvbmQgJiAweEZDMDB1MzIgIT0gMHhEQzAw dTMyIHsKLUBAIC00MzIsNiArNDcxLDE4IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBu ZXh0IGNvZGUgdW5pdCBpcyBhIGxvdyBzdXJyb2dhdGUuCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGFzdHJhbDogY2hhciA9IHVuc2FmZSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2FuIHJlbHkgb24gbm9u X2FzY2lpIGJlaW5nIDB4RDgwMC0weERCRkYgc2luY2UgdGhlIGhpZ2ggYml0cyBhcmUgMHhEODAw Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZW4sIChub25f YXNjaWkgPDwgMTAgLSAweEQ4MDAgPDwgMTApIGJlY29tZXMgYmV0d2VlbiAoMCB0byAweDNGRikg PDwgMTAsIHdoaWNoIGlzIGJldHdlZW4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gMHg0MDAgdG8gMHhmZmMwMC4gQWRkaW5nIHRoZSAweDEwMDAwIGdpdmVzIGEg cmFuZ2Ugb2YgMHgxMDQwMCB0byAweDEwZmMwMC4gU3VidHJhY3RpbmcgdGhlIDB4REMwMAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnaXZlcyAweDI4MDAgdG8g MHgxMDIwMDAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhl IHNlY29uZCB0ZXJtIGlzIGJldHdlZW4gMHhEQzAwIGFuZCAweERGRkYgZnJvbSB0aGUgY2hlY2sg YWJvdmUuIFRoaXMgZ2l2ZXMgYSBtYXhpbXVtCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHBvc3NpYmxlIHJhbmdlIG9mICgweDEwNDAwICsgMHhEQzAwKSB0byAo MHgxMDIwMDAgKyAweERGRkYpIHdoaWNoIGlzIDB4MUUwMDAgdG8gMHgxMGZmZmYuCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgaW4gcmFuZ2UuCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZyb20gYSBVbmljb2RlIHByaW5jaXBsZXMg cGVyc3BlY3RpdmUgdGhpcyBjYW4gYWxzbyBiZSB2ZXJpZmllZCBhcyB3ZSBoYXZlIGNoZWNrZWQg dGhhdCBgbm9uX2FzY2lpYCBpcyBhIGhpZ2ggc3Vycm9nYXRlCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vICgweEQ4MDAuLj0weERCRkYpLCBhbmQgdGhhdCBgc2Vj b25kYCBpcyBhIGxvdyBzdXJyb2dhdGUgKGAweERDMDAuLj0weERGRkZgKSwgYW5kIHdlIGFyZSBh cHBseWluZyByZXZlcnNlIG9mIHRoZSBVVEMxNiB0cmFuc2Zvcm1hdGlvbgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0aG0gPGh0dHBzOi8vZW4ud2lr aXBlZGlhLm9yZy93aWtpL1VURi0xNiNDb2RlX3BvaW50c19mcm9tX1UrMDEwMDAwX3RvX1UrMTBG RkZGPiwgYnkgYXBwbHlpbmcgdGhlIGhpZ2ggc3Vycm9nYXRlIC0gMHhEODAwIHRvIHRoZQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWdoIHRlbiBiaXRzLCBh bmQgdGhlIGxvdyBzdXJyb2dhdGUgLSAweERjMDAgdG8gdGhlIGxvdyB0ZW4gYml0cywgYW5kIHRo ZW4gYWRkaW5nIDB4MTAwMDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOjpjb3JlOjpjaGFyOjpmcm9tX3UzMl91bmNoZWNrZWQoCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAodTMyOjpmcm9tKG5vbl9hc2NpaSkgPDwgMTApICsg c2Vjb25kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LSAoKCgweEQ4MDB1MzIgPDwgMTApIC0gMHgxXzAwMDB1MzIpICsgMHhEQzAwdTMyKSwKLUBAIC00 NTYsNiArNTA3LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252 ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb252ZXJ0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGJy YW5jaCBkaXZlcmdlcywgc28gbm8gbmVlZCB0byB1cGhvbGQgaW52YXJpYW50cyBvbiBgY29udmVy dGVkYAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5leHQsIGhhbmRsZSBBU0NJSSBw dW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdpdGhvdXQKLUBAIC00NjksOCArNTIxLDEyIEBACi0g ICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOwot ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IHdlJ3JlIGJhY2sgdG8gYGNvbnZlcnRlZCA8IGxlbmd0aGAgZHVlIHRvIHRoZSA9PSBh Ym92ZSBhbmQgY2FuIHBlcmZvcm0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdW5j aGVja2VkIHJlYWQKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuaXQgPSB1bnNh ZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgJ2lubmVybW9zdDogbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogVGhpcyBsb29wIGFsd2F5cyBiZWdpbnMgd2l0aCBgY29udmVydGVkIDwgbGVu Z3RoYCwgc2VlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBpbnZhcmlhbnQg b3V0c2lkZSBhbmQgdGhlIGNvbW1lbnQgb24gdGhlIGNvbnRpbnVlIGJlbG93Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHVuaXQgPiAxMjcgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbm9uX2FzY2lpID0gdW5pdDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlICdtaWRkbGU7Ci1AQCAtNDc5LDE5ICs1MzUsMjUgQEAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZSB1bmNvbmRpdGlvbmFsbHkgaW5zdGVhZCBvZiB0 cnlpbmcgdG8gdW5yZWFkIGl0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIG1h a2UgaXQgcGFydCBvZiB0aGUgbmV4dCBTSU1EIHN0cmlkZS4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogQ2FuIHJlbHkgb24gY29udmVydGVkIDwgbGVuZ3RoCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0ZWQpKSA9IHVuaXQg YXMgdTg7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udmVydGVkICs9IDE7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHVuaXQgPCA2MCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBX ZSd2ZSBnb3QgcHVuY3R1YXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IGNvbnZlcnRlZCA9PSBsZW5ndGggewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBgY29udmVydGVkIDwgbGVuZ3RoYCBkdWUgdG8gdGhlID09IGFib3ZlLiBUaGUgcmVhZCBp cyBzYWZlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCA9IHVuc2FmZSB7 ICooc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkKSkgfTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBvbmx5IGhhcHBlbnMgaWYgYGNvbnZlcnRlZCA8 IGxlbmd0aGAsIG1haW50YWluaW5nIGl0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZSAnaW5uZXJtb3N0OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBtYXJrdXAgb3IgQVNDSUkg dGV4dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnb3V0ZXJtb3N0Owot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEFsbCBvdGhlciByb3V0ZXMg dG8gaGVyZSBkaXZlcmdlIHNvIHRoZSBjb250aW51ZSBpcyB0aGUgb25seQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyB3YXkgdG8gcnVuIHRoZSBpbm5lcm1vc3QgbG9vcC4KLSAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgIH0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94 X3VzZXJfZGVmaW5lZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNl cl9kZWZpbmVkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3Vz ZXJfZGVmaW5lZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMJMjAyNS0w OS0xNyAxNzo0MToyMS4xNDE4MDQ4OTIgKzAzMDAKLUBAIC0xNCwxMiArMTQsMTMgQEAKLSBjZmdf aWYhIHsKLSAgICAgaWYgI1tjZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIildIHsKLSAgICAgICAg IHVzZSBzaW1kX2Z1bmNzOjoqOwotLSAgICAgICAgdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKLSsg ICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKLSsgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpj bXA6OlNpbWRQYXJ0aWFsT3JkOwotIAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAg ICAgIGZuIHNoaWZ0X3VwcGVyKHVucGFja2VkOiB1MTZ4OCkgLT4gdTE2eDggewotICAgICAgICAg ICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTE2eDg6OnNwbGF0KDB4N0YpOwotLSAgICAgICAgICAg IHVucGFja2VkICsgdW5wYWNrZWQuZ3QoaGlnaGVzdF9hc2NpaSkuc2VsZWN0KHUxNng4OjpzcGxh dCgweEY3MDApLCB1MTZ4ODo6c3BsYXQoMCkpICAgICAgICB9Ci0rICAgICAgICAgICAgdW5wYWNr ZWQgKyB1bnBhY2tlZC5zaW1kX2d0KGhpZ2hlc3RfYXNjaWkpLnNlbGVjdCh1MTZ4ODo6c3BsYXQo MHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAgfQotICAgICB9IGVsc2UgewotICAgICB9 Ci0gfQotQEAgLTExNiwxMCArMTE3LDE1IEBACi0gICAgICAgICBsZXQgc2ltZF9pdGVyYXRpb25z ID0gbGVuZ3RoID4+IDQ7Ci0gICAgICAgICBsZXQgc3JjX3B0ciA9IHNyYy5hc19wdHIoKTsKLSAg ICAgICAgIGxldCBkc3RfcHRyID0gZHN0LmFzX211dF9wdHIoKTsKLSsgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyBgZm9yIGkgaW4gMC4ubGVuZ3RoIC8gMTZgCi0gICAgICAgICBmb3IgaSBpbiAw Li5zaW1kX2l0ZXJhdGlvbnMgewotKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBpbiBi b3VuZHM6IGxlbmd0aCBpcyB0aGUgbWludW11bSB2YWxpZCBsZW5ndGggZm9yIGJvdGggc3JjL2Rz dAotKyAgICAgICAgICAgIC8vIGFuZCBpIHJhbmdlcyB0byBsZW5ndGgvMTYsIHNvIG11bHRpcGx5 aW5nIGJ5IDE2IHdpbGwgYWx3YXlzIGJlIGA8IGxlbmd0aGAgYW5kIGNhbiBkbwotKyAgICAgICAg ICAgIC8vIGEgMTYgYnl0ZSByZWFkCi0gICAgICAgICAgICAgbGV0IGlucHV0ID0gdW5zYWZlIHsg bG9hZDE2X3VuYWxpZ25lZChzcmNfcHRyLmFkZChpICogMTYpKSB9OwotICAgICAgICAgICAgIGxl dCAoZmlyc3QsIHNlY29uZCkgPSBzaW1kX3VucGFjayhpbnB1dCk7Ci0gICAgICAgICAgICAgdW5z YWZlIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzYW1lIGFzIGFib3ZlLCBidXQgdGhp cyBpcyB0d28gY29uc2VjdXRpdmUgOC1ieXRlIHJlYWRzCi0gICAgICAgICAgICAgICAgIHN0b3Jl OF91bmFsaWduZWQoZHN0X3B0ci5hZGQoaSAqIDE2KSwgc2hpZnRfdXBwZXIoZmlyc3QpKTsKLSAg ICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChkc3RfcHRyLmFkZCgoaSAqIDE2KSArIDgp LCBzaGlmdF91cHBlcihzZWNvbmQpKTsKLSAgICAgICAgICAgICB9Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1sIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kLy5hcHB2ZXlvci55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9yLnltbAkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTkgKzAsMCBAQAotLW1hdHJpeDoK LS0gIGFsbG93X2ZhaWx1cmVzOgotLSAgICAjIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzcyCi0tICAgIC0gVEFSR0VUOiBpNjg2 LXBjLXdpbmRvd3MtbXN2YwotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLWdudQotLSAg ICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251Ci0tICBmYXN0X2ZpbmlzaDogdHJ1ZQot LQotLWVudmlyb25tZW50OgotLSAgbWF0cml4OgotLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdp bmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0gICAgICBOT1ZFUklGWTogIjEi Ci0tICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTog TUlOR1c2NAotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0t ICAgICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtbXN2 YwotLSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQt ZmVhdHVyZT0rYXZ4IgotLSAgICAgIE5PVkVSSUZZOiAiMSIKLS0gICAgLSBUQVJHRVQ6IHg4Nl82 NC1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0tICAgICAgUlVTVEZM QUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCi0tICAgICAgTk9WRVJJRlk6ICIxIgotLQot LSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5H VzMyCi0tICAgICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dz LW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzMyCi0tICAgICAgUlVTVEZMQUdTOiAiLUMgdGFy Z2V0LWZlYXR1cmU9K3NzZTQuMiIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0tICAgIC0gVEFSR0VU OiBpNjg2LXBjLXdpbmRvd3MtbXN2YwotLSAgICAgIE1TWVNURU06IE1JTkdXMzIKLS0gICAgICBS VVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4IgotLSAgICAgIE5PVkVSSUZZOiAiMSIK LS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTogTUlO R1czMgotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngyIgotLSAgICAg IE5PVkVSSUZZOiAiMSIKLS0KLS0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLWdudQot LSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0KLS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93 cy1nbnUKLS0gICAgICBNU1lTVEVNOiBNSU5HVzMyCi0tICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMt d2luZG93cy1nbnUKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0taW5zdGFsbDoKLS0gIC0gcHM6 IGlmIChscyAtciAuIC1maSAiKi5ycyIgfCBzbHMgImB0IikgeyB0aHJvdyAiRm91bmQgdGFiIGNo YXJhY3RlciIgfQotLSAgLSBwczogU3RhcnQtRmlsZURvd25sb2FkICJodHRwczovL3N0YXRpYy5y dXN0LWxhbmcub3JnL2Rpc3QvcnVzdC1uaWdodGx5LSR7ZW52OlRBUkdFVH0uZXhlIiAtRmlsZU5h bWUgInJ1c3QtaW5zdGFsbC5leGUiCi0tICAtIHBzOiAuXHJ1c3QtaW5zdGFsbC5leGUgL1ZFUllT SUxFTlQgL05PUkVTVEFSVCAvRElSPSJDOlxydXN0IiB8IE91dC1OdWxsCi0tICAtIHBzOiAkZW52 OlBBVEg9IiRlbnY6UEFUSDtDOlxydXN0XGJpbiIKLS0gIC0gc2V0IFBBVEg9YzpcbXN5czY0XCVN U1lTVEVNJVxiaW47YzpcbXN5czY0XHVzclxiaW47JVBBVEglCi0tICAtIHJ1c3RjIC12VgotLSAg LSBjYXJnbyAtdlYKLS1idWlsZDogZmFsc2UKLS10ZXN0X3NjcmlwdDogYmFzaCAtYyAiY2kvcnVu LnNoIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmNhcmdvLWNo ZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1jaGVja3N1 bS5qc29uCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1jaGVja3N1 bS5qc29uCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1jaGVja3N1bS5qc29uCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSArMCwwIEBACi0teyJmaWxlcyI6eyIuYXBwdmV5 b3IueW1sIjoiZjFlZDAxODUwZTBkNzI1Zjk0OThmNTJhMWE2M2RkZjQwNzAyYWQ2ZTBiZjViMmQ3 YzRjMDRkNzZlOTY3OTRhMyIsIi5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sIjoiZDA0 OWYwMTZkYzUzODMwYTNmY2M3MzU4MzNlY2ExNjhkZjJlNDkxZjMzYjZiNDRjZTdlNGQ1ZDFkZDQ1 Mzg1NCIsIi5naXRodWIvd29ya2Zsb3dzL2NpLnltbCI6IjE3MGEyMDc0YWRkNTdkZGM4Zjg4Yjc4 MDE0OWU0OTMwMTYyYzZlZTQ3MThhZGQ0MzY5ZGNhOGUzZmQ2YzAyMmEiLCIuZ2l0aHViL3dvcmtm bG93cy9kb2NzLnltbCI6Ijg2ZjdlYjY1MmM5MDA2MjRlNGRlYjc2MzIwY2Q5MjE3NWRiMWZhNzI5 NWE3NmYyOGYzMDMzNmZmMGZhZDE2MDQiLCIuZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0 LnltbCI6ImQ4NDdiZTI5M2Y5ZWMxNzAzOGU0NTA2NTJiMWViN2JkYzIwYjgwNWMxOGM1ZGJhYjM0 ZDFkOWZmN2E5Yzg5NDAiLCIudHJhdmlzLnltbCI6IjMwYTYxYTVlYzUzMzU1ZmMxZjM1ODVlMTY5 MDI4MDMwOGMyYjc5NjE3MDFhYmMxMWU4Mzg5YjIzNWI2NDcxNzgiLCJDYXJnby50b21sIjoiMDIx NTFjNDE1ZjI2N2E2YWViODY1MTE1ODQ3Mjc0NGQ3MWUxZDlkYTg4ODNkZDIwYmUyNTczMWE0MmU1 MjBmNCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlm ZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlUIjoiNjQ4NWI4ZWQz MTBkM2YwMzQwYmYxYWQxZjQ3NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZjN2Q1YzZmYWY0MWRlMWZkYiIs IlJFQURNRS5tZCI6ImM0YWM3MDI3YTlhYjdkNzg1OGFhODk1N2Q3NDU0ZGJmY2RiYjgxZTYwNWI2 YTE3MWYwNTMxMGNjM2NhZDM3NjIiLCJib3JzLnRvbWwiOiJkZWU4ODFkYzY5YjliNzgzNGU0ZWJh NWQ5NWMzZWQ1YTQxNmQ0NjI4ODE1YTE2N2Q2YTIyZDRjYjRmYjA2NGI4IiwiYnVpbGQucnMiOiIw MTllZDI5YzQzOTg5NzgyZDhlZWMzYTk2MTY1NGNmYzE3MmQ3YTc4OThkYTRlY2E4ZjY1NDcwMGFm N2UxOTg4IiwiY2kvYWxsLnNoIjoiMmFlNmIyNDQ1YjRkYjgzODMzZTQwYjM3ZWZkMDAxNmM2Yjk4 NzllZTk4OGI5YjNlZjk0ZGI1NDM5YTNlMTYwNiIsImNpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gi OiJiZGNmOTNiYTkwNDNhYzExODRlMmM1MDRhM2Q0MGM0N2M2YzE2MDFkODgyZTBmMGEyN2E4ZWI1 NmZiYWJjYjVmIiwiY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCI6IjM0OTA0MzIwMjJjNWM4ZjVh MTE1YzA4NGY3YTlhY2ExNjI2Zjk2YzBjODdmZmI2MjAxOTIyOGM0MzQ2YjQ3ZTQiLCJjaS9hbmRy b2lkLXN5c2ltYWdlLnNoIjoiZWJmNGU1ZGFhMWYwZmUxYjIwOTJiNzlmMGYzZjE2MWM0YzQyNzVj Yjc0NGU1MjM1MmM0ZDgxYWI0NTFlNGM1YSIsImNpL2JlbmNobWFyay5zaCI6ImI2MWQxOWVmNmI5 MGRlYmE4ZmI3OWRlZTc0YzhiMDYyZDk0ODQ0Njc2MjkzZGEzNDZkYTg3YmI3OGE5YTQ5YTQiLCJj aS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIjoiZWM4ZWNmODJkOTIwNzI2NzZh YTQ3ZjBkMWEzZDAyMWI2MGE3YWUzNTMxMTUzZWYxMmQyZmY0NTQxZmMyOTRkYyIsImNpL2RvY2tl ci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSI6ImFjZTJlN2QzM2M4N2JjMGY2ZDM5 NjJhNGEzNDA4YzA0NTU3NjQ2ZjdmNTFhYjk5Y2ZiZjU3NDkwNjc5NmIwMTYiLCJjaS9kb2NrZXIv YWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiZGE4OGMwZDUwZjE2ZGMwODQ0 OGM3ZmRmMWZhNWVkMmNiZTU3NmFjZjllN2RkODViNWI4MTg2MjFiMmE4YzcwMiIsImNpL2RvY2tl ci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUiOiJiYjVmOGFlODkwNzA3YzEy ODY1MjI5MGZmYzU0NDQ0NzY0M2JmMTIwMzdkZGQ3M2M2YWQ2OTg5Zjg0OGNiMzgwIiwiY2kvZG9j a2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoiMWFmYWVmY2JjMDVi NzQwODU5YWNkNGUwNjdiYzkyNDM5YmU2YmNiZThmMmU5Njc4NDc0ZmI0MzRiY2QzOThkOSIsImNp L2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoiMzcwZTU1ZDMzMzBh NDEzYTNjY2Y2NzdiM2FmYjNlMGVmOTAxOGE1ZmFiMjYzZmFhOTdhZThhYzAxN2ZjMjI4NiIsImNp L2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoiODI4MmVh NzA3YTk0MTA5YmVlZDQ3YTU3NTc0NzU1ZTJkNTg0MDE3MzU5MDRhMDNmODVmYjY0YzU3OGM1M2I0 ZiIsImNpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI0OTc5Mjky MjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUxMDFiMjdiZTY3YTZiOTc3NTVkMDE5NmM2MzMxN2Y3YWJi IiwiY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjQ5NzkyOTIy MjY5ZjM3MWJkMjlkYTQ3MjdlOTA4NTEwMWIyN2JlNjdhNmI5Nzc1NWQwMTk2YzYzMzE3ZjdhYmIi LCJjaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiYjJlYmMyNTc5 NzYxMmM0ZjgzOTVmZTlkNDA3NzI1MTU2MDQ0OTU1YmZiY2Y0NDIwMzZiN2Y1NWI0M2E1ZjlkYSIs ImNpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlIjoiYjBj MTY5MmFjNjViYzU2ZGQzMDQ5NGIxOTkzZDhlOTI5YzQ4Y2M5YzRiOTIwMjliN2M3NTkyYWY2ZDRm OTIyMCIsImNpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZp bGUiOiI0ZTkyNDljMTc5MzAwMTM4MTQxZDBiMmI3NDAxYjExODk3ZjY0YWVkNjlmNTQxZjA3OGMx ZGI0NTk0ZGYyODI3IiwiY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2Vy ZmlsZSI6IjMxNjRjNTJiMGRjYmIwMWFmYTc4MjkyYjE1YjVjNDM1MDNjY2YwNDkxY2Y2ZWI4MDFl YzJiZjIyYWUyNzRlNTIiLCJjaS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIjoiYWU4Mjc0MzA5OTI4NjIwYTVkZDIzMmE0NjI2NGUwNTM5OWJiNzQ2Mjg4ZWJlZTM4 NDNhNzFjNDE2MjIwOGNjMyIsImNpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUv RG9ja2VyZmlsZSI6ImJhNWZiYzRiZjNiYjkxY2Q1MGI0MDcyNDhkYTMxMjI1NjgxZWZjOGYyYmU3 NjE4ZjRhMGFiMTIxOWIzODk1MDgiLCJjaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSI6IjUzZjk3ZjhiOWI1YWNhNzUzNGI5YmY5ZWE0OGYzNTE3NTA1MmNk MmE1NjBhMTA3ZTAxYWQyNzA3MzFjMDMyZmMiLCJjaS9kb2NrZXIvczM5MHgtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSI6Ijg5ZjU0MjFjZjA2ZDgxN2FlOTQwOTI5ODdlOTE0NDcyZWYzODRh ZDJkMWZmZjI3MzViZTNkODc4NmJhMTEyMTQiLCJjaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlIjoiODNlYmExOTU3NjQ4NmY5ZDEwZDdjMDM3ZDY2OWQ3MmIzMWE2 NTU2NWE0NzlmMzBiMjJhYWIzNmFhYTJmZjhkYyIsImNpL2RvY2tlci90aHVtYnY3bmVvbi1saW51 eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoiYzJkZWNkNTU5MWJkN2EwOTM3ODkwMWJlZjYyOWNk OTQ0YWNmMDUyZWI1NWU0ZjM1Yjc5ZWI5Y2I0ZDYyMjQ2YSIsImNpL2RvY2tlci90aHVtYnY3bmVv bi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoiNTE5NTVhOGJmM2M0ZDQ0MGY0 NzM4MmFmNmY1NDI2ZWJmZjk0YWIwMWEwNGRhMzYxNzViYWJkYTlhMDU3NzQwZiIsImNpL2RvY2tl ci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUiOiJiOTgyYjQyMWM3MGRiNDc2OTAw ZGY1YjYwZTE5ZWY4ODE1ZTZjN2RhZTIyNjg3MjI1MDAyNzgwY2FiN2IwYTc2IiwiY2kvZG9ja2Vy L3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUiOiJhMTdlYmRiMTg2Y2UyZGQ2YjYyMTAw YjVhNDM5ZTA1YTFhYjlhZGFiMTEzZTI1MDg4NDNlMTIxYWFlYTUyOTkyIiwiY2kvZG9ja2VyL3g4 Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlIjoiNDRiNjIwM2Q5Mjkw YmZkYzUzZDgxMjE5ZjA5MzdlMTExMDg0N2EyM2RkOTgyZWM4YzRkZTM4ODM1NGYwMTUzNiIsImNp L2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjdmNGUzY2E1ZmEy ODhlYTcwZWRiNGQxZjc1MzA5NzA4Y2QzMGIxOTJlMmU0NDQ0ZTYxYzRkNWIzYjU4Zjg5Y2YiLCJj aS9kb3guc2giOiI0MzRlOTYxMWM1MmUzODkzMTJkMmIwMzU2NGFkZjA5NDI5ZjEwY2M3NmZlNjZh ODY0NGFkYjEwNDkwM2I4N2I3IiwiY2kvbGludXgtczM5MHguc2giOiJkNmI3MzJkNzc5NWI0YmEx MzEzMjZhZmY4OTNiY2E2MjI4YTdkMmViMGU5NDAyZjEzNTcwNTQxM2RiYmUwZGNlIiwiY2kvbGlu dXgtc3BhcmM2NC5zaCI6ImM5Mjk2NjgzOGIxYWI3YWQzYjdhMzQ0ODMzZWU3MjZhYmE2YjY0N2Nm NTk1MmU1NmYwYWQxYmE0MjBiMTMzMjUiLCJjaS9sbGQtc2hpbS5ycyI6IjNkN2Y3MWVjMjNhNDll MmI2N2Y2OTRhMDE2ODc4NmY5YTk1NGRkYTE1ZjVhMTM4ODE1ZDk2NjY0M2ZkM2ZjYzMiLCJjaS9t YXhfbGluZV93aWR0aC5zaCI6IjBhMTUxOGJiYTRjOWVjYWE1NTY5NGNiMmU5OTMwZDBlMTljMjY1 YmFhYmY3MzE0M2YxN2Y5Y2YyODVhYWE1YmIiLCJjaS9ydW4tZG9ja2VyLnNoIjoiOTJlMDM2Mzkw YWQ5YjBkMTZmMTA5NTc5ZGYxYjVjZWQyZTcyZTlhZmVhNDBjN2QwMTE0MDBlYmQzYTJhOTBkZSIs ImNpL3J1bi5zaCI6IjlhZmFiYzk2MWUwZWU4M2I4NzIwMWYzZmQ1NTRjMTllNWIwYzM2ZjNhOTVk MDEzNTk1ZTI3NmM5ODgyZGQwYTQiLCJjaS9ydW5fZXhhbXBsZXMuc2giOiJkMWEyM2M2YzM1Mzc0 YTA2NzhiYTUxMTRiOWI4ZmVmZDhiZTBhNzllNzc0ODcyYThiZjA4OThkMWJhY2ExOGQwIiwiY2kv cnVudGVzdC1hbmRyb2lkLnJzIjoiMTQ1YThlOTc5OWE1MjIzOTc1MDYxZmU3ZTU4NmFkZTU2Njll ZTQ4NzdhN2Q3YTRjZjZiNGFiNDhlOGUzNmM3YyIsImNpL3NldHVwX2JlbmNobWFya3Muc2giOiJm YWUzOTYwMDIzZjZmM2QxMzg4Y2QyYWQyMmZkYmFiNGIwNzVmMWYyOWRkNDI5MmQ3OTk0YTIwNzgz YmViNmNmIiwiY2kvdGVzdC1ydW5uZXItbGludXgiOiJjOGFhNjAyNWNmZjUzMDZmNGYzMWQwYzYx ZGM1ZjlkNGRkNWExZDE4OWFiNjEzZWY4ZDRjMzY3YzY5NGQ5Y2NkIiwiY29udHJpYnV0aW5nLm1k IjoiMmQyNjI5MzEwYWQ0ZDQ2NGM0ODJiZGJiNTgxOWYwZDZjZTIyM2M1NzZhZWVmMmNkY2U2YTFm Njg1NzA4NWVhNSIsInBlcmYtZ3VpZGUvLmdpdGlnbm9yZSI6ImZlODJjN2RhNTUxMDc5ZDgzMmNm NzQyMDBiMGIzNTliNGRmOTgyOGNiNGEwNDE2ZmE3Mzg0ZjA3YTJhZTZhMTMiLCJwZXJmLWd1aWRl L2Jvb2sudG9tbCI6IjExNWE5ODI4NDEyNmM2YjE4MDE3OGI0NDcxMzMxNGNjNDk0ZjA4YTcxNjYy ZWUyY2UxNWNmNjdmMTdhNTEwNjQiLCJwZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kIjoiM2UwM2Jm ZmM5OTFmZGMyMDUwZjNkNTE4NDJkNzJkOWQyMWVhNmFiYWI1NmEzYmFmM2IyZDU5NzNhNzhiODll MSIsInBlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcyI6IjI5YWZiMDg4MzNiMmZlMjI1MGYwNDEyZTFm YTExNjFhMjQzMmEwODIwYTE0OTUzYzg3MTI0NDA3NDE3Yzc0MWEiLCJwZXJmLWd1aWRlL3NyYy9i b3VuZF9jaGVja3MubWQiOiI1ZTQ5OTFmZjU4YTE4M2VmMGNkOWZkYzFmZWI0Y2QxMmQwODNiNDRi ZGY4NzM5M2JiYjA5Mjc4MDhlZjNjZTdkIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHBy b3gubWQiOiI4YzA5MDMyZmEyZDc5NWEwYzVkYjE3NzU4MjZjODUwZDI4ZWIyNjI3ODQ2ZDA5NjVj NjBlZTcyZGU2MzczNWFkIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQiOiIzMTEw NzZiYTRiNzQxZDYwNGE4MmU3NGI4M2E4ZDdlOGMzMThmY2JkN2Y2NGM0MzkyZDFjZjVhZjk1YzYw MjQzIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZCI6IjA0MTUzZTc3NWFiNmU0ZjBk NzgzN2JjYzUxNTIzMGQzMjdiMDRlZGZhMzRjODRjZTljOWUxMGViYWVlZjJiZTgiLCJwZXJmLWd1 aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQiOiIwNzk4ODczYjhlZWRhZWRhNWZlZDYyZGM5MTY0 NWI1N2MyMDc3NWEwMmQzY2Q3NGQ4YmQwNjk1OGYxNTE2NTA2IiwicGVyZi1ndWlkZS9zcmMvaW50 cm9kdWN0aW9uLm1kIjoiOWY1YTE5ZTllNjc1MWYyNWQyZGFhZDM5ODkxYTBjYzYwMDk3NDUyN2Vj NGM4MzA1ODQzZjk2MTg5MTA2NzFiZCIsInBlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQiOiI0 NDc3MzFlYjVkZTdkNjkxNjY3MjhmZGJjNWVjYjBjMGM5ZGI2NzhlYTQ5M2I0NWE1OTJkNjdkZDAw MjE4NGMwIiwicGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQiOiJmNTZkNTRmM2QyMGU3YWE0ZDMy MDUyMTg2ZTgyMzdiMDNkNjU5NzFlYjVkMTEyODAyYjQ0MjU3MGZmMTFkMzQ0IiwicGVyZi1ndWlk ZS9zcmMvcHJvZi9wcm9maWxpbmcubWQiOiI4YTY1MGMwZmQ2ZWRlMDk2NDc4OWJiNjU3NzU1N2Vl ZWYxZDgyMjZhODk2Nzg4NjAyY2U2MTUyOGUyNjBlNDNjIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0 LWZlYXR1cmUvYXR0cmlidXRlLm1kIjoiNjE1Zjg4ZGNhMGE3MDdiNmM0MTZmYTYwNTQzNWRkNmUx ZmI1MzYxY2M2Mzk0MjljYmY2OGNkODc2MjRiZDc4YiIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1m ZWF0dXJlL2ZlYXR1cmVzLm1kIjoiMTcwNzc3NjBmZjI0YzAwNmI2MDZkZDIxODg5YzUzZDg3MjI4 ZjQzMTFmM2JhM2E1NzRmOWFmZGVhY2Q4NjE2NSIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL2lubGluaW5nLm1kIjoiN2VkMWQ3MDY4ZDgxNzNhMDBkODRjMTZjZmU1ODcxY2Q2OGI5ZjA0 ZjhkMGNjYTJkMDFlYmM4NDk1N2ViZjJmNiIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJl L3ByYWN0aWNlLm1kIjoiYzRiMzcxODQyZTAwODZkZjE3ODQ4OGZlYzk3ZjIwZGVmOGYwYzYyZWU1 ODhiY2QyNWZkOTQ4YjliMWZhMjI3ZSIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1 bnRpbWUubWQiOiI4MzU0MjVmNWVlNTk3ZmIzZTUxZDM2ZTcyNWE4MWViZWUyOWY0NTYxMjMxZDE5 NTYzY2Q0ZGE4MWRiYjFjZmNiIiwicGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZs YWdzLm1kIjoiMDExOTdhY2Y2ZjBhZGVjOGRiMzJiODU5MTgxMWY2OWNlY2I2NTU1YTJiMDVkYzVk NWVjMjdkMGUzZjdiMDY1ZSIsInBlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZCI6ImM2MjEx YzBlZTkxZTYwNTUyZWM1OTJkODlkOWQ5NTdlZWRjMjFkZWUzY2JkODllMWFkNjc2NWVhMDZhMjc0 NzEiLCJydXN0Zm10LnRvbWwiOiJkOTlhNDNmM2Y4ZWY5ZTQyNWNmMDFjMzMzZmJhOWYwMDUxZjg4 OGY1ZDg3YWI0ZThmNjNjMmY3ZDBmZTY2MjBmIiwic3JjL2FwaS5ycyI6ImJiMTc5NWU5NjU3YTgy OThkMzdkMjM0OWI0NTQ0M2YwOGU5ZTQ1NTM5OWFkNGI3MjcwMTg2MDA3Mjg0NzhjMTAiLCJzcmMv YXBpL2JpdF9tYW5pcC5ycyI6IjI3ZjMwOTdmYzBhMTFlM2M0MTA3MDQ5ZDk3NzllNjgwZGNkNjc0 MDdhMDY2NzA0MDA4YTZiOWM0ZmQ1MjllMDUiLCJzcmMvYXBpL2JpdG1hc2sucnMiOiIwNThlYmMz OGEyZTAzNjNmMDdhNDQxZDNlOWE0Nzc1YWFlYzU3Y2NiMTcwYTBlNWQ1ZWZhNWRjNDc0M2FiMDdi Iiwic3JjL2FwaS9jYXN0LnJzIjoiMDNiOTRhM2QzMTZhYzdiN2JlNzA2ODgxMDA0NDkxMWU5NjVl ODg5YTBhY2U3YmFlNzYyNzQ5Y2E3NGE5Mjc0NyIsInNyYy9hcGkvY2FzdC9tYWNyb3MucnMiOiJi MGExNGQwYzgzYWQyZWJiN2EyNzUxODBmNmQ5ZTNmMmJjMzEyYmE1N2E3ZDNkNmMzOWZhZDRlMGYy MGY5NDA4Iiwic3JjL2FwaS9jYXN0L3YxMjgucnMiOiJlZGQwOTk0ZWZhYzQzNzlkZmYyNmUxNzg0 MjNhNTJkYmIzZmZlYjM4YjFmYzk3Y2FlOTc1ZDc0NGMwMGI0ZmI2Iiwic3JjL2FwaS9jYXN0L3Yx Ni5ycyI6Ijk2YmQ5OGMyZDIxYjA2NjNhYmU2YzBhYjMzMDA1YjFmYTY5M2YzZGI3ZWU2Nzk1MzUx MzkxMzQzODYzNDg0ZGEiLCJzcmMvYXBpL2Nhc3QvdjI1Ni5ycyI6IjhjMzFmZTkxZjVlNzhlZjcz N2RmYmE2OTc5Y2MxMjQwMjEwY2IwOTRhODlkMjg0ZmU0NTliZjhhOTkxY2EyNGIiLCJzcmMvYXBp L2Nhc3QvdjMyLnJzIjoiYTk5YTc5ZGQ4NGQyYTVlNmFkZjlkYjk4NzA1Njc1OTE1YmQwM2ZkMTI4 N2Q0ODljN2ZlMzhlODRkN2U0YTA4NiIsInNyYy9hcGkvY2FzdC92NTEyLnJzIjoiYzBkZDUyNmY0 MWVkN2I4YTcxYzM3NDNkOTEyNjc1NTRlYzBhMGM3NTgzNGNjYzJlM2VjYjBlZjMwMDRhZjY0MiIs InNyYy9hcGkvY2FzdC92NjQucnMiOiI2NTcyZmRiYTJhMTI0MWE2Y2Q2NjZkM2YwY2NlMzMwNmNk MmNiN2U1ZTIzNjE3MmU1OWQ1ZDQzNTFjOGE4OGFmIiwic3JjL2FwaS9jbXAucnMiOiIzNTdjM2Ey YTA5YzZkNDYxMWMzMmRkN2ZhOTViZTJmYWU5MzNkNTEzZTIyOTAyNmVjOWI0NDQ1MWE3N2I4ODRl Iiwic3JjL2FwaS9jbXAvZXEucnMiOiI2MGY3MGYzNTViYWU0Y2I1YjE3ZGI1MzIwNGNhY2MzODkw ZjcwNjcwNjExYzE3ZGY2MzhkNGMwNGY3Y2M4MDc1Iiwic3JjL2FwaS9jbXAvb3JkLnJzIjoiNTg5 ZjcyMzQ3NjFjMjk0ZmE1ZGY4ZjUyNWJjNGFjZDVhNDdjZGI2MDIyMDdkNTI0YTBkNGUxOTgwNGNk OTY5NSIsInNyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMiOiI5MDJjY2I4YWEwMWZkNTczOGIzMGJh MGI3MTI2NjljMjFkNDgwMTk1ODkwN2UwM2JhZDIzNDMyYzdkYmEwMTk4Iiwic3JjL2FwaS9jbXAv cGFydGlhbF9vcmQucnMiOiI5ZGIwYzM3ZDc0MzRjZGZjNjJkOGQ2NjkxMmU5NzJmYTNkOGMxMTVh YjJhZjA1MWE2ZjQ1ZTQxNGJkM2U0ZjFjIiwic3JjL2FwaS9jbXAvdmVydGljYWwucnMiOiJkZTNk NjJmMzhlYmE4MTcyOTlhYTE2ZjFlMTkzOTk1NGM5YTQ0N2UzMTY1MDkzOTc0NjVjMjgzMDg1MmJh MDUzIiwic3JjL2FwaS9kZWZhdWx0LnJzIjoiNjdiZjIxYzEzNDEyN2QxMmE3MDI4YzhiODhhNTdm MGNlZWU4Y2NiZDc0OTc2ZGE4Y2E3NGViOWYxNmExNzRkNSIsInNyYy9hcGkvZm10LnJzIjoiNjdm YjgwNGJiODZiNmNkNzdjZjhjZDQ5MmI1NzMzY2U0MzcwNzFiNjZmZTMyOTcyNzhiOGE2NTUyYzMy NWRkYSIsInNyYy9hcGkvZm10L2JpbmFyeS5ycyI6IjAyYjJiMjg3Zjc0MDRmOGE5ODM4MTNjZjcw Yzg3MTA4YzhkYTM4MzU1NzhiNjNhYjMwMzExNjg4NWY2MDk0MTMiLCJzcmMvYXBpL2ZtdC9kZWJ1 Zy5ycyI6IjU2ZTFjM2JkYzA5Mjc0NzM0NGZmZmFhZmZmOWRhNzE2M2VlNzgyNzg1N2Y2ZmI3Y2Ix Yzk5MjNlY2E0ZjZmYTAiLCJzcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMiOiI1NThmZDU5MmY3ZjQ4 NTcxMmZiMDUxNTA5Y2VjYzcxNzRhMjFlNmJmNjJlNWNlNjQ3NjZlNzVhZmM5N2JiOGUxIiwic3Jj L2FwaS9mbXQvb2N0YWwucnMiOiIzYjJlNzA4NzdhNGYzNjhjNzcwNGY4ZTI1NDIzNmMwMTRjMzY1 Yzc0ZDkzMzcxYzFmZWI1ZjAzMGU2YzY2NDIyIiwic3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzIjoi MmE0NDJmNjY2YmM4MGUyMmQ0MWY5MDNmODgxMjM4ZmUxMTRkZDQ5MzQ0YzNlZDY5ODQ5MjUwZTg1 M2NhZmM1ZCIsInNyYy9hcGkvZnJvbS5ycyI6IjJlNTk5ZDgzMjljYjA1ZWFmMDYyMjRjYzQ0MTM1 NWM0YjdiNTEyNTRmYzE5MjU2NjE5MzMzYmU4YzE0OWQ0NDQiLCJzcmMvYXBpL2Zyb20vZnJvbV9h cnJheS5ycyI6IjVkMmNjNzAwNTY4Mzc2YmY2ZWUxZmU1ZTQwNmRhM2JjMmQ0ODhmZjE1NTY0NGJm NzNkMDZhMTM0OWI3M2ZjNTMiLCJzcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMiOiI5NzY0Mzcx YWE5ZTYwMDVhYWNlNzRkZWExNGY1OWU1NjExYTA5NWI3Y2Y0MjcwNzk0MDkyNDc0OTI4MmM1MmYw Iiwic3JjL2FwaS9oYXNoLnJzIjoiNTA3NmVjZTg3OTY5NTkyYzg3NjQ4NmY1YjFlYThhZmZiZWFl YzM3OWQxYTE0YTMwODU5ZTBhYTU1OTIwMTlkZSIsInNyYy9hcGkvaW50b19iaXRzLnJzIjoiOGY4 MDExNjI3MjUwZTIzZTY2YjVjMGNhNjQxYWZiMDc5ZDgyMzI2NzRiYjEzNTQxNDBiNTM2YmRiZWE2 M2U1NSIsInNyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMiOiJlNzQ0NTAyMWYzOTA4 MzI2YmZlZTc1ODgzNWU1ZmM1YWQ1NmFhMWJhYTc3ZmMxYzU4YWJlNDM1MGM2NmM2NzBhIiwic3Jj L2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIjoiYmI0ZmU5OWJlMmFmNmEyMWQ4MDVlZmFiNDRjOGU0 ZTYxYTdiMmFkYjQyYTY1NTA0YTBjZjI2ZDEzZWZkYWRjZCIsInNyYy9hcGkvaW50b19iaXRzL3Yx MjgucnMiOiIxNDVhNDQ5MjJiMDlhNWNhNWI2MmQ4OGE0NjFkMzI3ZDM5OWE5OTdhMTVkYjRiMTFk N2IxN2U1NTRhOWZhNGMwIiwic3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzIjoiZjRmNGY2MWJhODhh YTUxYjE1OGVjNTZjYTNkY2UyMzQzNDlhZWEwZGFmMmIzMDI5YTE0YWI1MTI1ZDFlNDFlNSIsInNy Yy9hcGkvaW50b19iaXRzL3YyNTYucnMiOiI4Y2VhOWM1ZDk4MDlmMTEzMjNjYjdjZGM1M2I4M2Rm NTkzZmQxN2NhZjkyNjI1MWU0MTJhZTk3NzdiZWQ1NDdmIiwic3JjL2FwaS9pbnRvX2JpdHMvdjMy LnJzIjoiOTA1YmE2ODNkMzQyZmEzMmY0MjAyYjgwYmI0NjUzMDgwN2JkMGE1YjU4OGY2YzJlOGM5 ZjQ3NTIyM2M0Nzc3NSIsInNyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMiOiJlMjVhZmExZmJmMDg4 YTVkNThlN2Q3NWQxOTdiNmNkNGM1NjYzN2VhMjg1NDJiYTE4ZTQ2YTQ1MWYyOWQwNGU3Iiwic3Jj L2FwaS9pbnRvX2JpdHMvdjY0LnJzIjoiZDYyMzgwMjJjY2ZmN2I5MmU1NWIzZjYwMTdmYzI2OWFj YjZmMzYzMzBhNmQ3ZThmYjM4OTg1M2EwZjFiNjQ3OCIsInNyYy9hcGkvbWF0aC5ycyI6IjhiMmEy ZmM2NTE5MTdhODUwNTM5Zjk5M2FhMGI5ZTViZjRkYTY3YjExNjg1Mjg1YjhkZThjZGNhMzExNzE5 ZWMiLCJzcmMvYXBpL21hdGgvZmxvYXQucnMiOiI2MWQyNzk0ZDY4MjYyYTEwOTBhZTQ3M2JkMzA3 OTNiNWY2NWNmNzMyZjMyYTY2OTRhM2FmMmNlNWQ5MjI1NjE2Iiwic3JjL2FwaS9tYXRoL2Zsb2F0 L2Ficy5ycyI6IjViNmIyNzAxZTJlMTExMzViN2NlNThhMDUwNTJlYTgxMjBlMTBlNDcwMmM5NWQw NDZiOWQyMWI4MjdiMjZiZjgiLCJzcmMvYXBpL21hdGgvZmxvYXQvY29uc3RzLnJzIjoiNjMwMmM5 MjYxZGE0MjkxZDE0NGQ1YmI1MzQ5M2NkZDA3MzQ5OGZlYjQwOTU1ZmI2ODYwZWEzYzRkMDZjOTc4 YSIsInNyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMiOiI0YzJkZDcxNzM3MjhlZjE4OTMxNGYxNTc2 Yzk0ODZlMDNiZTIxYjdkYTk4ODQzYjJmOTAxMTI4MmE3OTc5ZTMxIiwic3JjL2FwaS9tYXRoL2Zs b2F0L2V4cC5ycyI6IjdjNmQ1ZjFlMzA0ZjQ5OGEwMWNmYTIzYjkyMzgwYzgxNWQ3ZGEwYWQ5NGVh ZTM0ODM3ODNiYzM3N2QyODdlZWYiLCJzcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMiOiI1NGM3NTgz ZjNkZjc5M2IzOWZmNTc1MzRmYWRlMjdiNDFiYjk5MjQzOWU1ZGMxNzgyNTJmNWNhMzE5MGEzZTU0 Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMiOiI2MmNhYzc3NjYwZDIwMTU5Mjc2ZDRj OWVmMDY2ZWI5MGM4MWNiZGRiODA4ZThlMTU3MTgyYzYwNzYyNWFkMmViIiwic3JjL2FwaS9tYXRo L2Zsb2F0L211bF9hZGRlLnJzIjoiYmFlMDU2ZWU5ZjNhNzBkZjM5ZWMzYzNiMmY2NDM3YzY1MzAz ODg4YTdiODQzZWYxYTViY2YxZjVhY2EwZTYwMiIsInNyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJz IjoiOWRkYjkzODk4NGIzNmQzOWQ4MmE4MmY4NjJmODBkZjhmN2ZiMDEzZjFkMjIyZDQ1Njk4ZDQx ZDg4NDcyZjU2OCIsInNyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMiOiI1ODkyMjU3OTRmZjFk YmYzMTE1OGRmZjY2MGU2ZDQ1MDllY2M4YmVmYmI1N2M2MzM5MDBkZWE1YWMwYjg0MGQ2Iiwic3Jj L2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycyI6ImEzMmFiZGNjMzE4ZDdjY2M4NDQ4MjMxZjU0ZDc1 Yjg4NGI3Y2JlYjAzYTdkNTk1NzEzYWI2MjQzMDM2ZjRkYmYiLCJzcmMvYXBpL21hdGgvZmxvYXQv c2luLnJzIjoiY2JkMzYyMmI3ZGY3NGYxOTY5MTc0MzAwMWM4Y2Y3NDdhMjAxZjg5NzdhZDkwNTQy ZmVlOTE1ZjM3ZGNkMWU0OSIsInNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzIjoiMGM2NmQ1ZDYz ZmIwOGU0ZDk5YzZiODJhODgyOGU0MTE3M2FmZjFhYzlmYTFhMjc2NGExMWZhYzIxN2NjZjJhYyIs InNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycyI6IjczMWUxYzlmMzIxYjY2MmFjY2RkMjdkYWNi M2FhYzJlODA0M2I3YWVjYjJmMjE2MWRkZTczM2JkOWYwMjUzNjIiLCJzcmMvYXBpL21pbmltYWwu cnMiOiIxZjIyYmNjNTI4NTU1NDQ0ZTc2ZGU1NjllYzBhZTIwMjliOWFlOWQwNDgwNWVmZWFmYTkz MzY5YzgwOTgwMzZiIiwic3JjL2FwaS9taW5pbWFsL2l1Zi5ycyI6IjgxOWNmZjI2ZDNlMTk2Zjgw NzY0NWJjYzFkNzllYjI3ZDlmMTc1ZWRiODk5MTBmMjI3NGQ1MmExZTkxM2NkMTEiLCJzcmMvYXBp L21pbmltYWwvbWFzay5ycyI6IjBjYWUxMGFlMWZjNjVmNTA3MGU2ODZjMGM3OWJmYmEyN2I4NmIz M2Q2YzM5OTM2N2JkNDg0OGZiMzY3ZGNlYzQiLCJzcmMvYXBpL21pbmltYWwvcHRyLnJzIjoiZjc0 ZDdhNDkyNWQ3MjA5ZmFlYmMyNmVhODMxNTI1OWNiMmMwOGVjNjU3ODlhNzA4NjllNTk1NjQ5YTli YzM5YSIsInNyYy9hcGkvb3BzLnJzIjoiM2UyNzNiMjc3YTBmMzAxOWQ0MmMzYzU5Y2E5NGE1YWZk NDg4NWQ1YWU2ZDIxODJlNTA4OWJiZWVjOWRlNDJlZSIsInNyYy9hcGkvb3BzL3NjYWxhcl9hcml0 aG1ldGljLnJzIjoiZDJkNWFkODk3YTU5ZGQwNzg3NTQ0ZjkyN2UwZTdjYTQwNzJjM2U1OGIwZjRh MjMyNDA4MzMxMmIwZDVhMjFkNyIsInNyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzIjoiNDgy MjA0ZTQ1OWNhNmJlNzk1NjhlMWM5ZjcwYWRiZTJkMjE1MTQxMmRkZjEyMmZiMjE2MWJlOGViYjUx YzQwYyIsInNyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMiOiJjMjUwZjUyMDQyZTM3 YjIyZDU3MjU2YzgwZDQ2MDQxMDRjZmQyZmJlMmEyZTEyN2M2NzYyNjcyNzBjYTVkMzUwIiwic3Jj L2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycyI6ImM0NzczZDQzNWMzZjlkYTQ0NTQzMjdlNmZiYjJi NWI0MWExYzBlYmIxY2NhNzM3MmU2OWRjN2EzNDRhMWI2ZTQiLCJzcmMvYXBpL29wcy92ZWN0b3Jf YXJpdGhtZXRpYy5ycyI6ImRkY2ExNWQwOWRkZWVmNTAyYzJlZDY2MTE3YTYyMzAwY2E2NWQ4N2U5 NTllOGI2MjJkNzY3YmRmMWMzMDc5MTAiLCJzcmMvYXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycyI6 ImIzOTY4ZjcwMDViNjQ5ZWRjYzIyYTU0ZTIzNzliMTRkNWVlMTkwNDVmMmU3ODQwMjk4MDU3ODFh ZTA0M2I1ZWUiLCJzcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycyI6Ijc2YmY4Y2I2 MDdlMmM0NDI5MjNjMWRhMTA2MWE2YjgwZDc0MmQ2MDc0MDgwMzNjMmEzNzYxMTYxMTE0Y2YyYTAi LCJzcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMiOiJhMzc4Nzg5YzZmZjliMzJhNTFm YmQwYTk3ZmZkMzZlZDEwMmNkMWZlNmEwNjdkMmIwMjAxN2MxZGYzNDJkZWY2Iiwic3JjL2FwaS9v cHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyI6IjUwNTJkMTg1MTdkNzY1NDE1ZDQwMzI3ZTZlOGU1 NWEzMTJkYWFjYTBhNWUyYWVjOTU5YmZhNTRiMTY3NWY5YzgiLCJzcmMvYXBpL29wcy92ZWN0b3Jf bmVnLnJzIjoiNWM2MmY2YjAyMjE5ODNjZGJkMjNjZDBhM2FmMzY3MmU2YmExMjU1ZjBkZmU4YjE5 YWFlNmZiZDY1MDNlMjMxYiIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9yb3RhdGVzLnJzIjoiNmMzZjc2 MWQ5ZDU1MWY2MzY1YThhOTU1MzljZWFjZTRiMWEwMmUwYjEyZDE0NGYzNGVkNjhkYjk0ZTg4Y2Zm NCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMiOiJlNTEwYmUxNDEyN2MwZmZkNThhMjU3 M2EzOTcwMWRhMzU1N2Q2NmJlZGVjMDk4MzdhYzhiYmQ0NGQ1NzlkYTAwIiwic3JjL2FwaS9wdHIu cnMiOiI4YTc5MzI1MWJlZDYxMzBkY2ZiMmYxNTE5Y2VhYTE4Yjc1MWJiYjE1ODc1OTI4ZDBmYjZk ZWI1YTVlMDc1MjNhIiwic3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMiOiIzZDYxNGY5ZDVi NGNhMjAxYTlmN2U0NmFmNDQwNWUxZDJjMjhlY2VlMTYyMDI5N2MyM2I1MmUzN2I5MmNjMGVhIiwi c3JjL2FwaS9yZWR1Y3Rpb25zLnJzIjoiYWU1YmFjYTgxMzUyZWNkNDQ1MjZkNmMzMGMwYTFmZWVk YTQ3NWVjNzNkZGQzYzNlYzZiMTRlOTQ0ZTU0NDhlZSIsInNyYy9hcGkvcmVkdWN0aW9ucy9iaXR3 aXNlLnJzIjoiOGJmOTEwYWUyMjYxODhiZDE1ZmM3ZTEyNWYwNThjZDI1NjZiNjE4NmZjZDBjZDhm ZDAyMGYzNTJjMzljZTEzOSIsInNyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJz IjoiNDdhNTY3OTg5NmRiMmNiYjU2YzMxMzcyZmU0MjE0M2RhMDE1YjZiZWFlN2RiNWQyZjNhMDMw OWRkZjQyN2FlMSIsInNyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMiOiJj MmRmM2NmNzQ5M2NjYTQxNzRmMmM2NWFlYTQyMmEzZDIwZDhhMjNhZjAzZjhkNTdjZWY3MmMxOWZl ZThmMjBkIiwic3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMiOiJkYjgzMzI3YTk1MGUzM2EzMTdm MzdmZDMzY2E0ZTIwYzM0N2ZiNDE1OTc1ZWMwMjRmM2UyM2RhODUwOTQyNWFmIiwic3JjL2FwaS9y ZWR1Y3Rpb25zL21pbl9tYXgucnMiOiI2YWY4YzlhYTQ1YzY5OTYxYjFiNmZjMjA1Mzk1ZjQ3Njdk NDQyMTg2OWZiMTA1ZmIzZDU2M2M1NjA1ZmMxM2NkIiwic3JjL2FwaS9zZWxlY3QucnMiOiI2YjA3 ZTdlODAyNmRmNTYxZjczMDcyMjFhODk2ZjBmYmIyNzI1MzZmNDFiOTEwOTA0MGFjMDk0YzI0YzY5 MzMxIiwic3JjL2FwaS9zaHVmZmxlLnJzIjoiYmU3ZmFmZjliNTk2NTQ5MjZkZjEyODk3YjJmOThh NGJhYTdkNmFjZjJhZjFhYWY5M2QzODhiYTZlOTZmODNlYyIsInNyYy9hcGkvc2h1ZmZsZTFfZHlu LnJzIjoiYmZlYTVhOTE5MDViMzE0NDRlOWVmN2NhNmVkZGI3YTk2MDZiN2UyMmQzZjcxYmI4NDJl YjI3OTVhMDM0NjYyMCIsInNyYy9hcGkvc2xpY2UucnMiOiJlZTg3NDg0ZThhZjMyOTU0N2I5YTVk NGYyYTY5ZThiZWQ2ZWExMGJiZDk2MjcwZDcwNjA4Mzg0M2Q0ZWVhMmFjIiwic3JjL2FwaS9zbGlj ZS9mcm9tX3NsaWNlLnJzIjoiMzczNTM2MzAwMDczNzEwNGE4ZmM1ZjM5NGFkOGMzMWVjMTRlODg1 OTUyYmQ1NzY0N2RkMmE4NDAwMWFlZTBhNiIsInNyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2Uu cnMiOiI3OWQwOWM2NGQwMDcyNDc4M2M3N2M0MmU0NTgzZWVlYzk3YjE4ZGI5NGNmMmFlMTQ2YjU2 NGMzZjg1Y2ZlZmQ2Iiwic3JjL2FwaS9zd2FwX2J5dGVzLnJzIjoiMDViNDI2MmVhYWRlMmY2M2U2 Y2QzYjc4MGMxOWEwM2FlY2QyNDU5ZDRjYzQzNjAwNTFmYzA4ODg4NzE3OWE2ZSIsInNyYy9jb2Rl Z2VuLnJzIjoiZGI0ZjIzMmZiOWY1NzI4ZGIzMTBiODdkYzhjNDczM2JlNDhhZmFjYWIxMDUzNzk4 YzA2MTA2YmVmOWE0MmIwNSIsInNyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycyI6IjUyNWVhNmZmN2Fk MWUwNDNiNmY2MTM2OTkyMTY2ZjE4MDNlZDU1NjNiN2Y2ZmMyOTJjMWM0MDI1N2QyMGUyNjQiLCJz cmMvY29kZWdlbi9sbHZtLnJzIjoiMTJlNzQ4YjQ5MjhjM2JlNmNjMTJiNDE2NWMzMDQxYTNkMGVm Y2NmNjE5NTMzOGVjZDNkODhiOGZkYjBiYmNjNyIsInNyYy9jb2RlZ2VuL21hdGgucnMiOiJkZmNm MDJhZDM0ZTJmZGZlMjJjM2YxY2MyODIyMDAxY2M4OTVlNjUwMzFiNGQwNmU1ODVlNTA0NzgzOWZl YmI3Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC5ycyI6IjJjMWNiY2UxNTViYzUyN2NlMzRkNDcy YzBmZWY2YmMzZGFkYjc5Y2Q3YTM1N2RkN2FhNWIxZWJlYjFkNzdhMTMiLCJzcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2Ficy5ycyI6ImQ1YWFhZGNmNTQwYmRiOWI0MjY0ZGNhNjQ3MWEyNTVmZDdiZjUw OWU3NjNiZWYwMjM5YzAxNDRhNjg0NjZmZWEiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvcy5y cyI6IjE3ZjI4ZDI5MDBjODUyZGNhMjIxZmE5YzkyYTljZDVmZTdmZDJkZjhkNDI3YmJjNjAyMTZj NzQ5YjJiZTAxM2QiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycyI6ImRiYWY5ZjQ0 M2Y5ODQ2YTQ5MWQ0ZWM1MjIxMGE3YjU4MzVkZDU5M2IwMzM2NmUzMTM1YjA1YzM3ZDcwZjlkNmMi LCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyI6ImQzMDAwNThhNGJjYzdhZTc5NzZmMjE2 ZjgxOTAyY2Q3M2E5ZTYwM2FkNjM4ODBkZmYzYmJjODY2YzI3YTlmMzciLCJzcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2xuLnJzIjoiYzg1MWUyMTFlNDNmODI1NjA5M2JhNzViMDNhZTBjMzA3Yzk5NjJl ZTY2ZDk0ZjA5YjRkZDgwMDY4MTkwY2JkZiIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9z LnJzIjoiZmM5OTI0ODY5ZWQ4NWU0Nzk1OTgzYWYyMjhjYWNmMjMxNThmNGYzNTkxOWFkY2UxNmM5 MjBhZDRhM2YwYTAwOSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5ycyI6IjA0MWE1 YjY5ZDU5OTFkOTNlZjc5NTM1MWIxNzU2MGMxMGZhZjgwYjc4ZmQyNmFkN2RmNDJhMjM5YjMyY2Y5 ZGUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIjoiZDcxZDVmMGYzMzMzYjYy YTc0MzliODIzY2I3YWRmNTM0MGVhMTU1NWNlODIwZmI0YTNmNGNiOTIyZjczZjVmNSIsInNyYy9j b2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyI6Ijk3NDJjMzg3N2YxYTU1MDljYTVjOTQ5MmE0MDg4 NGI2NTc5YmE2ZGQxMWMyNmI3MTEyZTYzZjcwNjY2YjM5NWQiLCJzcmMvY29kZWdlbi9tYXRoL2Zs b2F0L3Npbi5ycyI6IjBlOTg2OGQzNTUzMTU2NjUwOWYzYTAxZDg1ZDUyNTMwNDVlYjRhZmE4NTI1 ZDg0MDdkY2MxZjVmMzNjNTYwMzYiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGku cnMiOiI4ZTZiNjE0MmQ3ZGQyNDBjZGIzNjY2OTcyMmU4MmFiOTgxMGEyMjYxZTg2ZTY1OWY3ZDk3 YTk0MmFkOGIxMjU4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMiOiJiYjZkMzlk YjhmOTIxZTAzYTMwMWZjNTIwNmFjMWE2MWE5N2RlZjhhMmNiODNiODdjY2YxODlmM2ZjNDhkNTQ4 Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0LnJzIjoiZTZlYmIwYzVmNDI4ZWZhZDFmNjcy YjlhOGZlNGU1ODUzNGRiZjFlYTVhOGZlMDkyY2U1Y2U3NmI1MmZlODljYiIsInNyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvc3FydGUucnMiOiIyM2FjZmFlYTM4ZDBlMDgxYTZkOTAyMWMxMDk0ZTgxM2Qw Y2ZkMTJjNThjMWVjYTk2NjJhYWRlNWU2MjVkNTFjIiwic3JjL2NvZGVnZW4vcG9pbnRlcl9zaXpl ZF9pbnQucnMiOiI2Y2ExM2MyMTRiNmNmN2UwOTI5ZGJlMThlOTZhMTZmYzBiYjdkODc5OTYwOGRm MjljNGM4MTE1NDkwZjk5ZTAxIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycyI6IjhlYjE4ZWJh Yzc2OTg1ZDJhYTMwMjYyYTJlZGQ4Y2IwMDQyMzBiNTExYTc2NWQ2NTc1MjVmNjc3YTU4NWMxMmMi LCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMiOiJlNjdmMzVhMWY0ZDE1NmE0ODk0YTJk NmVhNWE5MzViNGQ4OThjZjcwZWVmYjI3MTVmNWMxY2MxNjVlNzc2YzExIiwic3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMiOiI4NGIxMDFjMTdjYWQxZWRlNGViNmQzOGNhZGEw YWM3ZGEyMzlkYmE4Y2VhM2JhZGQzODI5Yjk2N2U1NTg0MzFmIiwic3JjL2NvZGVnZW4vcmVkdWN0 aW9ucy9tYXNrL2FybS5ycyI6ImFhYTA3MTI5YmQwNzhhZTdlNjc3Y2Y4YjhlNjdlYzlmMzA1MzY2 MDZhMGM3ZWQxYmFhYTE4ZmQxNzkzYmIyMTgiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv ZmFsbGJhY2sucnMiOiIzZWI5MzE5ZDJjN2NmMTkyMTZiNjA3Yjg0NTk2MTJjNGUwMjdiNjQzY2Yx MWIwMzY5MzdkMzY4OTZiZjc2Nzg2Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxi YWNrX2ltcGwucnMiOiI3NjU0N2YzOTZlNTVlZjQwMzMyN2M3N2MzMTRjZjhkYjhjN2E1YzliOTgx OWJmYjkyNWFiZWFjZjEzMDI0OWU1Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5y cyI6IjM2ZGNkOGFmNGFiOTk3MzBhMDc4ZWQxMTNkMzk1NWY3NGViMWEyODc2ZTJlNmQ5ZjIyNGUw ZmY0NjJjMjE2ZDEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycyI6IjNh NDA4NjhiMzhjODZlMzVhZWZiOTZkNzU3OGRlNjMyMmVmZTg5ZDgxMzVlMDM2NjM1OWI1NGRkZDA2 Zjg2MWEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMiOiI2NzdhZWQz ZjA1NjI4NTI4NWRhYTNhZGZmOGJjNjVlNzM5NjMwYjQ0MjRkZWZhNmQ5NjY1ZTE2MGYwMjc1MDdl Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMiOiI4NTIyZjZlZDAzZjZj MzJkZDU3N2Q0Mjk4ZGY0NzdjMDhhZWFhYTM4NTYzNzA2ZjI5MDk2ZTE5MTFlZDczMWYyIiwic3Jj L2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzIjoiNTRlYzU2ZTQ5YjBjNjg0MWVj Y2I3MTllNGYzMTBkNjVmZTc2N2MwNDEzNmIyZWMyMGJkOGI5ZDdkOTg5N2I5ZSIsInNyYy9jb2Rl Z2VuL3NodWZmbGUucnMiOiIxZWMyOTMwZjRlMWFjYzQzYWMzMGI1MThhZjI5OGQ0NjZhNzllOWU3 NTczNGE1MWMzODBiNzgxMGVmZDFhMjdmIiwic3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzIjoi M2YxM2NhMTU5NzM3ODc1OGQwNTEwNmJmNWZmMzcxNWVlZTUzMWYzY2I2ZDg4ZjQ4YjkxODJiZDZj OTM4NmI1MSIsInNyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMiOiJjNjdjODZlOTFjYTNmYzc3NTM5 ZTBlZmNlYTA4MWEzYzYyNTQ4Y2NjZjUwMzk2M2FlNDA4ZjJlODZmNGU2YTIxIiwic3JjL2NvZGVn ZW4vdjEyOC5ycyI6Ijk0MjI2YjMxZWM0MDNkMThkOWQyZmUwNjcxM2YxNDdjOWM3OWU5YjVmOTEw NTA4OTA4ODI2NjMxM2Y4NDMxODUiLCJzcmMvY29kZWdlbi92MTYucnMiOiJkZGVjNGZmYjY2YjZm N2FhZmZiOWExNzgwYzVkZGJhODI1NTdhYmQ3NGY0NTA3M2QzMzUwNDdlMDRjZjc0OTI0Iiwic3Jj L2NvZGVnZW4vdjI1Ni5ycyI6IjZiNjM5MTdmMDQ0NDExOGQ2YjE1OTViZmYyMDQ1ZTU5Yjk3YzRk MjQwMTJiZDU3NWY2OWYxZjBlZmM1YTAyNDEiLCJzcmMvY29kZWdlbi92MzIucnMiOiIzNDc3YjNj NTU0MGFlZDg2ZTYxZTJmNTgwN2RkMzFkYjk0NzQxM2NlYzkxODFjNTg3ZDkzZWQ2ZWM3NGYwZWJh Iiwic3JjL2NvZGVnZW4vdjUxMi5ycyI6IjU4NTRmOTlkM2FhYmM0Y2Q0MmIyOGEyMGQ5Y2U0NDc3 NTZkYzJiYTAyNGE0MDlhNjliNmE4YWUxZjE4NDJmYzUiLCJzcmMvY29kZWdlbi92NjQucnMiOiJl OWU4OWNhZWJmZTYzZDEwYzBjYmNhNjFlNGRmZGJhM2I3ZTAyZWUwOTg5MTcwZjgwYmVlZDIzMjM3 ZGRkOTUwIiwic3JjL2NvZGVnZW4vdlB0ci5ycyI6ImYwNzUzYjQwNWNkYzg2NWJkZjhlODJjNjUw NWYyOTllYTFmOTYxMzYyMzllYmJhZjdmOWNlOTNkMzEwNzY0YjgiLCJzcmMvY29kZWdlbi92U2l6 ZS5ycyI6ImM4OWY1ZmRlYjI4YWM0YzgyNzJlZDE4MTZmY2UwM2Q5ZDk1MzA4Y2MzMmJiMjUzM2Jk OGIyMGNkNWFjMTAyYWMiLCJzcmMvbGliLnJzIjoiMDUwNDhjNmE4NWVjNjVjZjkwMmQ5ZGQ4Zjc1 N2EzZjc2MzkyYjcwM2E2Nzk0ZWE3MWYwZDQxNTAwYTg5Zjc4ZiIsInNyYy9tYXNrcy5ycyI6Ijcw ZmMwYWJlNGMyOTA3Y2UyYTQ5MWM1NzRlMWNmYjlmMzQyMzM4NWRhMmUxYTkyM2E0OGM5YzEzZjhi YTZlZDgiLCJzcmMvc2VhbGVkLnJzIjoiYWU3ZmRlYWY1ZDg0Y2Q3NzEwZWQ3MzBjYTcyY2E3ZWFi YTkzZGY2Y2IwYWNiMTgzZTVjMGE3MzI3YWNmMTk3ZiIsInNyYy90ZXN0aW5nLnJzIjoiODk2NjY5 YzA4ZDhjODAxNDQ4YTRkMmZhZGM5ZDYzM2VkYTBmYmU4NzlkMjI5OTk3ZTJhMTgyZTMxMjc4ZTQ2 OSIsInNyYy90ZXN0aW5nL21hY3Jvcy5ycyI6IjQwM2JiYzVlY2I3Yzc4NmZlMzYxNTZkZjMwMmQw YzA3YTgxMjI0MDhkYmIxNWY3NDc0ZDc2ODIyMjRiYTExMDYiLCJzcmMvdGVzdGluZy91dGlscy5y cyI6IjQxOTEyYTkyMjY2ZGZlODg0NjQ3ZmMwMzVlNDI0MmZkNzQ2MTAwZGY4ZTgzOTgwOGFlMDM5 N2FmMzc1OWEzYzgiLCJzcmMvdjEyOC5ycyI6IjE2Y2Y5YThlNzE1NmI4OTllZTliOWNkM2YyZGJh OWQxM2VjNjMyODliZWE4YzNlZTlhZTJlNDNhZDk1MTAyODgiLCJzcmMvdjE2LnJzIjoiY2I2NDY1 Y2YxZTAwYmY1MzAxODNhZjE4MTliOWZlM2Q3ZWVjOTc4Zjg3NjVkNWU4NWQ5YjU4YTM5YTRiNDA0 NSIsInNyYy92MjU2LnJzIjoiZmUyMzUwMTdkYTE4YzdmM2MzNjE4MzFjNjBlMzE3M2FkMzA0ZDhl YTFlOTVkNjRlYmViYzc5ZGEyZDcwODUxMSIsInNyYy92MzIucnMiOiIxNDVkMzQ3ODU1YmFjNTli MmRlNjUwOGY5ZTU5NDY1NGU2YzMzMDQyM2FmOWVkYzBlMmFjOGY0ZDFhYmRmNDVlIiwic3JjL3Y1 MTIucnMiOiJmMzcyZjI3N2YzZTYyZWI1Yzk0NWJiMWM0NjAzMzNmZGIxN2I2OTc0ZmNjODc2NjMz Nzg4ZmY1M2JkZWQ5NTk5Iiwic3JjL3Y2NC5ycyI6IjBiODA3OTg4MWI3MTU3NWUzNDE0YmUwYjdm OGY3ZWFiYTY1MjgxYmE2NzMyZjJiMmY2MWY3M2U5NWI2ZjQ4ZjciLCJzcmMvdlB0ci5ycyI6Ijhi M2U0MzNkNDg3MTgwYmI0MzA0ZmY3MTI0NWVjYWQ5MGYwMDEwZjQzZTEzOWE3MjAyN2I2NzJhYmU1 OGZhY2MiLCJzcmMvdlNpemUucnMiOiJlZGE1YWEwMjA3MDZjYmY5NGQxNWJhZGE0MWEwYzJhMzVm YzhmM2YzN2NiN2MyY2Q2ZjM0ZDIwMTM5OWE0OTVlIiwidGVzdHMvZW5kaWFubmVzcy5ycyI6IjUx NDdmODZkMjI0YzRjNTQwYjc3MjAzM2RhMmY5OTRjYWQ5YmM5YzAzNWYzOGVjMjFlMjNiYzRlNTVm OGE3NTkifSwicGFja2FnZSI6bnVsbH0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3Mv YmVuY2htYXJrcy55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29y a2Zsb3dzL2JlbmNobWFya3MueW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k Ly5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIv d29ya2Zsb3dzL2JlbmNobWFya3MueW1sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSwzMSArMCwwIEBACi0tbmFtZTogYmVuY2htYXJrcwotLQotLW9uOgotLSAgcHVz aDoKLS0gICAgYnJhbmNoZXM6Ci0tICAgICAgLSBtYXN0ZXIKLS0gIHB1bGxfcmVxdWVzdDoKLS0g IHdvcmtmbG93X2Rpc3BhdGNoOgotLQotLWpvYnM6Ci0tICB4ODZfNjQtdW5rbm93bi1saW51eC1n bnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotLSAgICAg IHNldHVwX3NjcmlwdDogY2kvc2V0dXBfYmVuY2htYXJrcy5zaAotLSAgICAgIHNjcmlwdDogY2kv YmVuY2htYXJrLnNoCi0tICAgICAgbm9ydW46IDEKLS0gICAgICB2ZXJpZnk6IDEKLS0gICAgICAj IEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBhZGQgZG93bmxvYWRlZCBpc3BjIHRvIFBBVEgKLS0g ICAgICAjIGZlYXR1cmVzOiBpc3BjCi0tICB4ODZfNjQtYXBwbGUtZGFyd2luOgotLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHdpdGg6Ci0tICAg ICAgdGFyZ2V0OiB4ODZfNjQtYXBwbGUtZGFyd2luCi0tICAgICAgcnVubmVyOiBtYWNvcy1sYXRl c3QKLS0gICAgICBzZXR1cF9zY3JpcHQ6IGNpL3NldHVwX2JlbmNobWFya3Muc2gKLS0gICAgICBz Y3JpcHQ6IGNpL2JlbmNobWFyay5zaAotLSAgICAgIG5vcnVuOiAxCi0tICAgICAgdmVyaWZ5OiAx Ci0tICAgICAgIyBGSVhNRTogZmlndXJlIG91dCBob3cgdG8gYWRkIGRvd25sb2FkZWQgaXNwYyB0 byBQQVRICi0tICAgICAgIyBmZWF0dXJlczogaXNwYwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9jaS55bWwKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnltbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMjE4ICswLDAgQEAKLS1uYW1lOiBjaQotLQotLSMgdHJpZ2dlciBmb3Ig YWxsIFBScyBhbmQgY2hhbmdlcyB0byBtYXN0ZXIKLS1vbjoKLS0gIHB1c2g6Ci0tICAgIGJyYW5j aGVzOgotLSAgICAgIC0gbWFzdGVyCi0tICBwdWxsX3JlcXVlc3Q6Ci0tCi0tam9iczoKLS0gIHJ1 c3RmbXQ6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwK LS0gICAgd2l0aDoKLS0gICAgICBzY3JpcHQ6IGNpL2FsbC5zaCBjaGVja19mbXQgfHwgdHJ1ZQot LSAgeDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZDoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZh c3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1saW51eC1hbmRyb2lk Ci0tICBhcm12Ny1saW51eC1hbmRyb2lkZWFiaToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6 IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGFybXY3LWxpbnV4LWFuZHJvaWRlYWJp Ci0tICBhYXJjaDY0LXVua25vd24tbGludXgtYW5kcm9pZC1ORU9OOgotLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAg IGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogYWFyY2g2NC1saW51 eC1hbmRyb2lkCi0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCi0tICB0 aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6 IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB0aHVtYnY3bmVvbi1saW51eC1hbmRy b2lkZWFiaQotLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWls LWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24tbGlu dXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljCi0tICBp NTg2LXVua25vd24tbGludXgtZ251LVNTRToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZh bHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24tbGludXgtZ251Ci0t ICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1 cmU9K3NzZQotLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0UyOgotLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAg IGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGk1ODYtdW5rbm93 bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMg LUN0YXJnZXQtZmVhdHVyZT0rc3NlMgotLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudToKLS0gICAg dXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVn eToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBp Njg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9k ZWw9c3RhdGljCi0tICBpNjg2LXVua25vd24tbGludXgtZ251LVNTRTRfMjoKLS0gICAgdXNlczog Li8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0g ICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNjg2LXVu a25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3Rh dGljIC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgotLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudS1B VlgyOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0t ICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAg ICB0YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DcmVs b2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rYXZ4MgotLSAgeDg2XzY0LXVu a25vd24tbGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3 aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251Ci0tICB4ODZfNjQt dW5rbm93bi1saW51eC1nbnUtU1NFNF8yOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251Ci0t ICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKLS0gIHg4Nl82NC11bmtu b3duLWxpbnV4LWdudS1BVlgyOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAg ICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251Ci0tICAgICAg cnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngyCi0tICBhcm0tdW5rbm93bi1saW51eC1n bnVlYWJpaGY6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0t ICAgICAgdGFyZ2V0OiBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gIGFybXY3LXVua25v d24tbGludXgtZ251ZWFiaWhmOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAg ICB3aXRoOgotLSAgICAgIHRhcmdldDogYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0g IGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmLU5FT046Ci0tICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFp bC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhcm12Ny11bmtub3duLWxp bnV4LWdudWVhYmloZgotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgot LSAgdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGY6Ci0tICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAg ZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogdGh1bWJ2N25lb24t dW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gIGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUtTkVP TjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAg ICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0 YXJnZXQ6IGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFy Z2V0LWZlYXR1cmU9K25lb24KLS0gIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6 Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogcG93 ZXJwYy11bmtub3duLWxpbnV4LWdudQotLSAgcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251Ogot LSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0 cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJn ZXQ6IHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotLSAgcG93ZXJwYzY0bGUtdW5rbm93bi1s aW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0t ICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudQotLSAgcG93ZXJwYzY0 bGUtdW5rbm93bi1saW51eC1nbnUtQUxUSVZFQzoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6 IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxlLXVua25vd24tbGlu dXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthbHRpdmVjCi0tICBw b3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1WU1g6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93 b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1m YXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3du LWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rdnN4Ci0tICBz MzkweC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNl Ci0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBzMzkweC11bmtub3duLWxpbnV4LWdudQotLSAg c3BhcmM2NC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZh bHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBzcGFyYzY0LXVua25vd24tbGludXgtZ251 Ci0tICB3YXNtMzItdW5rbm93bi11bmtub3duOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDog ZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHdhc20zMi11bmtub3duLXVua25vd24K LS0gIHg4Nl82NC1hcHBsZS1kYXJ3aW4tU1NFNF8yOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29y a2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFz dDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Ci0tICAgICAg c2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1kYXJ3aW4KLS0g ICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgotLSAgeDg2XzY0LWFwcGxl LWRhcndpbi1BVlg6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlw dC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6 Ci0tICAgICAgcnVubmVyOiBtYWNvcy1sYXRlc3QKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAot LSAgICAgIHRhcmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgotLSAgICAgIHJ1c3RmbGFnczogLUN0 YXJnZXQtZmVhdHVyZT0rYXZ4Ci0tICB4ODZfNjQtYXBwbGUtaW9zOgotLSAgICB1c2VzOiAuLy5n aXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAg IGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0 Ci0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1p b3MKLS0gIGFhcmNoNjQtYXBwbGUtaW9zOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Ci0tICAgICAgc2NyaXB0 OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IGFhcmNoNjQtYXBwbGUtaW9zCi0tICAgICAgcnVz dGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1uYW1lOiBkb2NzCi0tCi0tb246Ci0t ICBwdXNoOgotLSAgICBicmFuY2hlczoKLS0gICAgICAtIG1hc3RlcgotLQotLWpvYnM6Ci0tICBk b2NzOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0t ICAgIHdpdGg6Ci0tICAgICAgc2V0dXBfc2NyaXB0OiBjYXJnbyBpbnN0YWxsIG1kYm9vawotLSAg ICAgIHNjcmlwdDogY2kvZG94LnNoCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbCBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlw dC55bWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDg2ICswLDAg QEAKLS1uYW1lOiBydW4tY2ktc2NyaXB0Ci0tCi0tb246Ci0tICB3b3JrZmxvd19jYWxsOgotLSAg ICBpbnB1dHM6Ci0tICAgICAgcnVubmVyOgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCi0tICAg ICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6IHVidW50dS1sYXRlc3QKLS0gICAg ICB0YXJnZXQ6Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmlu ZwotLSAgICAgICAgZGVmYXVsdDogJycKLS0gICAgICBydXN0ZmxhZ3M6Ci0tICAgICAgICByZXF1 aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogJycK LS0gICAgICBzY3JpcHQ6Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6 IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogY2kvcnVuLWRvY2tlci5zaAotLSAgICAgIHNldHVw X3NjcmlwdDoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5n Ci0tICAgICAgbm9ydW46Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6 IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogJycKLS0gICAgICB2ZXJpZnk6Ci0tICAgICAgICBy ZXF1aXJlZDogZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDog JycKLS0gICAgICBmZWF0dXJlczoKLS0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQotLSAgICAgICAg dHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiAnJwotLQotLWpvYnM6Ci0tICBydW4tY2kt c2NyaXB0OgotLSAgICBydW5zLW9uOiAke3sgaW5wdXRzLnJ1bm5lciB9fQotLSAgICBzdGVwczoK LS0gICAgICAtIG5hbWU6IENoZWNrb3V0Ci0tICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0 QHYyCi0tICAgICAgLSBuYW1lOiBJbml0IFJ1c3R1cCBDYWNoZQotLSAgICAgICAgdXNlczogYWN0 aW9ucy9jYWNoZUB2MgotLSAgICAgICAgd2l0aDoKLS0gICAgICAgICAgcGF0aDogfAotLSAgICAg ICAgICAgIH4vLnJ1c3R1cC90b29sY2hhaW5zCi0tICAgICAgICAgIGtleTogJHt7IHJ1bm5lci5v cyB9fS1jYXJnby0ke3sgaGFzaEZpbGVzKCcqKi9ydXN0LXRvb2xjaGFpbicpIH19Ci0tICAgICAg LSBuYW1lOiBJbnN0YWxsIFRvb2xjaGFpbgotLSAgICAgICAgdXNlczogZHRvbG5heS9ydXN0LXRv b2xjaGFpbkBuaWdodGx5Ci0tICAgICAgICB3aXRoOgotLSAgICAgICAgICAjIEZJWE1FOiBjaGFu Z2UgdG8gbmlnaHRseSBvbmNlIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3Np bWQvcHVsbC8zNTAgaXMgbWVyZ2VkCi0tICAgICAgICAgICMgbmVlZHMgdG8gYmUga2VwdCBpbiBz eW5jIHdpdGggdGhlIHRvb2xjaGFpbiBmaWxlcwotLSAgICAgICAgICB0YXJnZXRzOiAke3sgaW5w dXRzLnRhcmdldCB9fQotLSAgICAgICAgICBjb21wb25lbnRzOiBydXN0Zm10Ci0tICAgICAgLSBu YW1lOiBHZW5lcmF0ZSBMb2NrZmlsZQotLSAgICAgICAgcnVuOiBjYXJnbyBnZW5lcmF0ZS1sb2Nr ZmlsZQotLSAgICAgIC0gbmFtZTogSW5pdCBDYXJnbyBDYWNoZQotLSAgICAgICAgdXNlczogYWN0 aW9ucy9jYWNoZUB2MgotLSAgICAgICAgd2l0aDoKLS0gICAgICAgICAgcGF0aDogfAotLSAgICAg ICAgICAgIH4vLmNhcmdvL2Jpbi8KLS0gICAgICAgICAgICB+Ly5jYXJnby9yZWdpc3RyeS9pbmRl eC8KLS0gICAgICAgICAgICB+Ly5jYXJnby9yZWdpc3RyeS9jYWNoZS8KLS0gICAgICAgICAgICB+ Ly5jYXJnby9naXQvZGIvCi0tICAgICAgICAgICAgdGFyZ2V0LwotLSAgICAgICAgICBrZXk6ICR7 eyBydW5uZXIub3MgfX0tY2FyZ28tJHt7IGhhc2hGaWxlcygnKiovQ2FyZ28ubG9jaycpIH19Ci0t ICAgICAgLSBuYW1lOiBTZXR1cAotLSAgICAgICAgaWY6ICR7eyBpbnB1dHMuc2V0dXBfc2NyaXB0 ICE9ICcnIH19Ci0tICAgICAgICBydW46ICR7eyBpbnB1dHMuc2V0dXBfc2NyaXB0IH19Ci0tICAg ICAgICBlbnY6Ci0tICAgICAgICAgIFRBUkdFVDogJHt7IGlucHV0cy50YXJnZXQgfX0KLS0gICAg ICAgICAgUlVTVEZMQUdTOiAke3sgaW5wdXRzLnJ1c3RmbGFncyB9fQotLSAgICAgICAgICBOT1JV TjogJHt7IGlucHV0cy5ub3J1biB9fQotLSAgICAgICAgICBWRVJJRlk6ICR7eyBpbnB1dHMudmVy aWZ5IH19Ci0tICAgICAgICAgIEZFQVRVUkVTOiAke3sgaW5wdXRzLmZlYXR1cmVzIH19Ci0tICAg ICAgLSBuYW1lOiBSdW4gQ0kgU2NyaXB0Ci0tICAgICAgICB0aW1lb3V0LW1pbnV0ZXM6IDMwCi0t ICAgICAgICBydW46ICR7eyBpbnB1dHMuc2NyaXB0IH19Ci0tICAgICAgICBlbnY6Ci0tICAgICAg ICAgIFRBUkdFVDogJHt7IGlucHV0cy50YXJnZXQgfX0KLS0gICAgICAgICAgUlVTVEZMQUdTOiAk e3sgaW5wdXRzLnJ1c3RmbGFncyB9fQotLSAgICAgICAgICBOT1JVTjogJHt7IGlucHV0cy5ub3J1 biB9fQotLSAgICAgICAgICBWRVJJRlk6ICR7eyBpbnB1dHMudmVyaWZ5IH19Ci0tICAgICAgICAg IEZFQVRVUkVTOiAke3sgaW5wdXRzLmZlYXR1cmVzIH19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC8udHJhdmlzLnltbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLnRyYXZpcy55bWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRy YXZpcy55bWwJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZpcy55bWwJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIxMiArMCwwIEBACi0tbGFuZ3VhZ2U6IHJ1c3QKLS1ydXN0 OiBuaWdodGx5Ci0tb3M6IGxpbnV4Ci0tZGlzdDogZm9jYWwKLS0KLS1zdGFnZXM6Ci0tICAtIHRv b2xzCi0tICAtIGJ1aWxkLXRlc3QtdmVyaWZ5ICMgUGFzc2VzIGZ1bGwgdGVzdCBzdWl0ZSwgcGVy bWl0IG5vIHJlZ3Jlc3Npb25zICh1bmxlc3MgaXQncyBydXN0dXAgOi8pCi0tICAtIDMyYml0LXRp ZXIxCi0tICAtIDY0Yml0LXRpZXIyCi0tICAtIDMyYml0LXRpZXIyCi0tCi0tam9iczoKLS0gIGZh c3RfZmluaXNoOiB0cnVlCi0tICBpbmNsdWRlOgotLSAgICAjIEFuZHJvaWQ6Ci0tICAgIC0gZW52 OiBUQVJHRVQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQKLS0gICAgICBuYW1lOiAieDg2XzY0LXVua25v d24tbGludXgtYW5kcm9pZCArIFNTRTIiCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5 Ci0tICAgIC0gZW52OiBUQVJHRVQ9YXJtLWxpbnV4LWFuZHJvaWRlYWJpCi0tICAgICAgbmFtZTog ImFybS1saW51eC1hbmRyb2lkZWFiaSIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkK LS0gICAgLSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWFuZHJvaWQgKyBORU9OIgotLSAg ICAgIGVudjogVEFSR0VUPWFhcmNoNjQtbGludXgtYW5kcm9pZCBSVVNURkxBR1M9Ii1DIHRhcmdl dC1mZWF0dXJlPStuZW9uIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAt IGVudjogVEFSR0VUPSJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaSIKLS0gICAgICBuYW1l OiAidGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRp ZXIyCi0tICAgICMgTGludXg6Ci0tICAgIC0gZW52OiBUQVJHRVQ9aTU4Ni11bmtub3duLWxpbnV4 LWdudQotLSAgICAgIG5hbWU6ICJpNTg2LXVua25vd24tbGludXgtZ251IgotLSAgICAgIHN0YWdl OiAzMmJpdC10aWVyMgotLSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUg UlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlIgotLSAgICAgIG5hbWU6ICJpNTg2LXVu a25vd24tbGludXgtZ251ICsgU1NFIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAt IGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQt ZmVhdHVyZT0rc3NlMiIKLS0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxpbnV4LWdudSArIFNT RTIiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBUQVJHRVQ9aTY4Ni11 bmtub3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGludXgtZ251ICsg U1NFMiIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKLS0gICAgLSBlbnY6IFRBUkdFVD1pNjg2 LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIK LS0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSArIFNTRTQuMiIKLS0gICAgICBz dGFnZTogMzJiaXQtdGllcjEKLS0gICAgLSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tbGludXgt Z251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCi0tICAgICAgbmFtZTogImk2 ODYtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMQot LSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1D IHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0tICAgICAgbmFtZTogIng4Nl82NC11bmtub3duLWxp bnV4LWdudSArIFNTRTQuMiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAg LSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJn ZXQtZmVhdHVyZT0rYXZ4MiIKLS0gICAgICBuYW1lOiAieDg2XzY0LXVua25vd24tbGludXgtZ251 ICsgQVZYMiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRB UkdFVD1hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gICAgICBuYW1lOiAiYXJtLXVua25v d24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAg ICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmCi0tICAgICAgbmFt ZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIHN0YWdlOiBidWlsZC10 ZXN0LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgtZ251ZWFi aWhmIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCi0tICAgICAgbmFtZTogImFy bXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmICsgTkVPTiIKLS0gICAgICBzdGFnZTogYnVpbGQt dGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2N25lb24tdW5rbm93bi1saW51 eC1nbnVlYWJpaGYiCi0tICAgICAgbmFtZTogInRodW1idjduZW9uLXVua25vd24tbGludXgtZ251 ZWFiaWhmIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIG5hbWU6ICJhYXJjaDY0 LXVua25vd24tbGludXgtZ251ICsgTkVPTiIKLS0gICAgICBlbnY6IFRBUkdFVD1hYXJjaDY0LXVu a25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCi0tICAg ICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9bWlwcy11bmtu b3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJtaXBzLXVua25vd24tbGludXgtZ251IgotLSAg ICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVudjogVEFSR0VUPW1pcHNlbC11bmtub3du LWxpbnV4LW11c2wKLS0gICAgICBuYW1lOiAibWlwc2VsLXVua25vd24tbGludXgtbXVzbCIKLS0g ICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1taXBzNjQtdW5rbm93 bi1saW51eC1nbnVhYmk2NAotLSAgICAgIG5hbWU6ICJtaXBzNjQtdW5rbm93bi1saW51eC1nbnVh Ymk2NCIKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1taXBz NjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0Ci0tICAgICAgbmFtZTogIm1pcHM2NGVsLXVua25v d24tbGludXgtZ251YWJpNjQiCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgICAgIyBG SVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3Vlcy8xOAotLSAgICAgICMgZW52OiBUQVJHRVQ9bWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVh Ymk2NCBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSttc2EgLUMgdGFyZ2V0LWNwdT1taXBz NjRyNiIKLS0gICAgLSBlbnY6IFRBUkdFVD1wb3dlcnBjLXVua25vd24tbGludXgtZ251Ci0tICAg ICAgbmFtZTogInBvd2VycGMtdW5rbm93bi1saW51eC1nbnUiCi0tICAgICAgc3RhZ2U6IDMyYml0 LXRpZXIyCi0tICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYzY0LXVua25vd24tbGludXgtZ251Ci0t ICAgICAgbmFtZTogInBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSIKLS0gICAgICBzdGFnZTog NjRiaXQtdGllcjIKLS0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUi Ci0tICAgICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUKLS0gICAg ICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5r bm93bi1saW51eC1nbnUgKyBBTFRJVkVDIgotLSAgICAgIGVudjogVEFSR0VUPXBvd2VycGM2NGxl LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2FsdGl2ZWMi Ci0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gbmFtZTogInBvd2VycGM2 NGxlLXVua25vd24tbGludXgtZ251ICsgVlNYIgotLSAgICAgIGVudjogVEFSR0VUPXBvd2VycGM2 NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3ZzeCIK LS0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBuYW1lOiAiczM5MHgtdW5r bm93bi1saW51eC1nbnUiCi0tICAgICAgZW52OiBUQVJHRVQ9czM5MHgtdW5rbm93bi1saW51eC1n bnUKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1zcGFyYzY0 LXVua25vd24tbGludXgtZ251Ci0tICAgICAgbmFtZTogInNwYXJjNjQtdW5rbm93bi1saW51eC1n bnUiCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgICMgV2ViQXNzZW1ibHk6Ci0tICAg IC0gZW52OiBUQVJHRVQ9d2FzbTMyLXVua25vd24tdW5rbm93bgotLSAgICAgIG5hbWU6ICJ3YXNt MzItdW5rbm93bi11bmtub3duIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAjIE1h Y09TWDoKLS0gICAgLSBvczogb3N4Ci0tICAgICAgZW52OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWRh cndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0tICAgICAgbmFtZTog Ing4Nl82NC1hcHBsZS1kYXJ3aW4gKyBTU0U0LjIiCi0tICAgICAgaW5zdGFsbDogdHJ1ZQotLSAg ICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgb3N4X2ltYWdlOiB4Y29kZTEwCi0tICAgICAg c3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgICAgIyBUcmF2aXMtQ0kgT1NYIGJ1aWxkIGJv dHMgZG8gbm90IHN1cHBvcnQgQVZYMjoKLS0gICAgLSBvczogb3N4Ci0tICAgICAgZW52OiBUQVJH RVQ9eDg2XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSthdngi Ci0tICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBBVlgiCi0tICAgICAgaW5zdGFs bDogdHJ1ZQotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgb3N4X2ltYWdlOiB4Y29k ZTEwCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgICMgKkJTRHM6Ci0tICAg ICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKLS0gICAgIyAgc2Ny aXB0OiBjaS9ydW4uc2gKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tZnJlZWJz ZCBOT1JVTj0xCi0tICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICMtIGVudjogVEFSR0VU PXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JVTj0xCi0tICAgICMgIHNjcmlwdDogY2kvcnVuLnNo Ci0tICAgICMgU29sYXJpczoKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXN1bi1zb2xhcmlz IE5PUlVOPTEKLS0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKLS0gICAgIyBpT1M6Ci0tICAgIC0g b3M6IG9zeAotLSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1pb3MKLS0gICAgICBuYW1l OiAieDg2XzY0LWFwcGxlLWlvcyArIFNTRTIiCi0tICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKLS0g ICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40Ci0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAg IC0gbmFtZTogImFhcmNoNjQtYXBwbGUtaW9zICsgTkVPTiIKLS0gICAgICBlbnY6IFRBUkdFVD1h YXJjaDY0LWFwcGxlLWlvcyBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStuZW9uIgotLSAg ICAgIG9zOiBvc3gKLS0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40Ci0tICAgICAgc2NyaXB0OiBj aS9ydW4uc2gKLS0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKLS0gICAgIyBCRU5DSE1BUktTOgot LSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2XzY0LXVua25vd24tbGludXgtZ251IgotLSAg ICAgIGluc3RhbGw6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUgLi9jaS9zZXR1cF9i ZW5jaG1hcmtzLnNoCi0tICAgICAgIyBGSVhNRTogVXNlIGBjb3JlX2FyY2gsc2xlZWYtc3lzYCBm ZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KLS0gICAgICBzY3JpcHQ6IFBBVEg9JChwd2Qp OiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBjaS9iZW5jaG1hcmsuc2gKLS0g ICAgICBzdGFnZTogdG9vbHMKLS0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAtIHg4Nl82NC1hcHBs ZS1kYXJ3aW4iCi0tICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82NC1hcHBsZS1kYXJ3aW4gLi9j aS9zZXR1cF9iZW5jaG1hcmtzLnNoCi0tICAgICAgIyBGSVhNRTogVXNlIGBjb3JlX2FyY2gsc2xl ZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KLS0gICAgICBzY3JpcHQ6IFBB VEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBjaS9iZW5jaG1h cmsuc2gKLS0gICAgICBvczogb3N4Ci0tICAgICAgb3N4X2ltYWdlOiB4Y29kZTkuNAotLSAgICAg IHN0YWdlOiB0b29scwotLSAgICAjIFRPT0xTOgotLSAgICAtIG5hbWU6ICJEb2N1bWVudGF0aW9u IgotLSAgICAgIGJlZm9yZV9pbnN0YWxsOgotLSAgICAgICAgLSBzdWRvIGFkZC1hcHQtcmVwb3Np dG9yeSAteSBwcGE6ZGVhZHNuYWtlcy9wcGEKLS0gICAgICAgIC0gc3VkbyBhcHQtZ2V0IHVwZGF0 ZSAteQotLSAgICAgICAgLSBzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBweXRob24zLjkKLS0gICAg ICBpbnN0YWxsOgotLSAgICAgICAgLSBjYXJnbyBpbnN0YWxsIG1kYm9vawotLSAgICAgIHNjcmlw dDogY2kvZG94LnNoCi0tICAgICAgc3RhZ2U6IHRvb2xzCi0tICAgIC0gbmFtZTogInJ1c3RmbXQi Ci0tICAgICAgaW5zdGFsbDogdHJ1ZQotLSAgICAgIHNjcmlwdDogfAotLSAgICAgICAgcnVzdHVw IHRvb2xjaGFpbiBpbnN0YWxsIG5pZ2h0bHkgLWMgcnVzdGZtdCAtLWFsbG93LWRvd25ncmFkZQot LSAgICAgICAgY2kvYWxsLnNoIGNoZWNrX2ZtdCB8fCB0cnVlCi0tICAgICAgc3RhZ2U6IHRvb2xz Ci0tCi0tICBhbGxvd19mYWlsdXJlczoKLS0gICAgIyBGSVhNRTogSVNQQyBjYW5ub3QgYmUgZm91 bmQ/Ci0tICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZfNjQtYXBwbGUtZGFyd2luIgotLSAg ICAjIEZJWE1FOiBpNjg2IGZhaWxzIGluIGlubGluaW5nLCBhcHBhcmVudGx5Ci0tICAgIC0gc3Rh Z2U6IDMyYml0LXRpZXIxCi0tICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1mcmVlYnNk IE5PUlVOPTEKLS0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tZnJlZWJzZCBOT1JV Tj0xCi0tICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JVTj0xCi0t ICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC1zdW4tc29sYXJpcyBOT1JVTj0xCi0tCi0tICAgICMg RklYTUU6IFRCRAotLSAgICAtIHN0YWdlOiA2NGJpdC10aWVyMgotLSAgICAtIHN0YWdlOiAzMmJp dC10aWVyMgotLQotLSAgICAjIEZJWE1FOiBpT1MKLS0gICAgIyBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzI2Ci0tICAgIC0gZW52OiBUQVJH RVQ9eDg2XzY0LWFwcGxlLWlvcwotLSAgICAjIElzIHRoaXMgcmVsYXRlZCB0byB0aGUgYWJvdmU/ IE15c3RlcmlvdXMgdGVzdCBmYWlsdXJlCi0tICAgIC0gbmFtZTogImFhcmNoNjQtYXBwbGUtaW9z ICsgTkVPTiIKLS0KLS1pbnN0YWxsOiB0cmF2aXNfcmV0cnkgcnVzdHVwIHRhcmdldCBhZGQgJFRB UkdFVAotLWJlZm9yZV9zY3JpcHQ6IGNhcmdvIGdlbmVyYXRlLWxvY2tmaWxlCi0tc2NyaXB0OiB0 cmF2aXNfd2FpdCA1MCBjaS9ydW4tZG9ja2VyLnNoCi0tYWZ0ZXJfc2NyaXB0OiBzbGVlcCA1Ci0t Ci0tZW52OgotLSAgZ2xvYmFsOgotLSAgICBzZWN1cmU6ICJsUEh2N3M2K0F4UVlOYUZuY3ljVkZR dCsrWTFhc1FtTWhPaWtRVTF6dGxQOENLNytobjJtOThjZy9ldU9KeXpJT2IyaUozWlg0Y0daa3p3 NGxjNTlNUUJCeWIxR3REYmF6UW9VT3pWRGJWZmU5QkREMmY4SlZvSUZoMUNNZmpQS1E3R2cvckpx V2x3clVsU2Q1R054UEN1dEtqWTdxWmhKdVI2U1FiSmpsV2FHTjJWZDRmVkN6S1h6OGZIUlhnTUVa UytkK0NSNE5zcmtiODNKM1o0czVrU2RKbWhZeEo2MUFXanV6SlZ3VWg0bDMvSEVZbFNMNVhYcHVo NVIyaTdXMTZoMVBsTmRhVFVna1psaTFsSHpPOCs2UThMelg5K1hpTElFVlg5bHczQTJOZElLR3o4 RS8rN1FzNW9ZT2t3WWhqUk9zRFF4SUs3eGtTTTMwYlF1Tjdjd01CeWJBVkl5T1BKa3FYUTFkUXlw ODNLU2RzT2o3Sk15RERSdmNFRExJNmVoUmxtNUVjZEg3WXJSZXVib044MWlVbzBTYTdWc3VVbWdq NWhqRVJDdDlyMzBmOWFXdWl0QUJhaTd2S1J0amdsZzdTcDVDckVWUEE0UFFzNlBxS0NDUm9nb2dn YlhKL1o1RHl3L1JaYVhQZU5SOStxSUtOMVZqbTlHZXcxc1JOMkpLLzMrdlhUS3R5SlhIL3VCeGdK dDRqUWxidVNoT0p1RitCU2ZURjg4c01lNjdhLzM1N1NTT0liNEprYUN5ZDBmbERDV1lFODU3Nmth SFBsVlZNVDJwZVhlZTBMZVJYbTFlMTNuRzNOYTB0M0xTL29ySkxQSE9TaE5RR29EajdxQVA1YUVL Z2dSeWE4OTZKR3d0dmxhQkhIVG1TUWg2NUc3Y3lORXJabz0iCi0tYnJhbmNoZXM6Ci0tICBvbmx5 OgotLSAgICAtIHN0YWdpbmcgIyBib3JzIHIrCi0tICAgIC0gdHJ5aW5nICAjIGJvcnMgdHJ5Ci0t ICAgIC0gbWFzdGVyCi0tbm90aWZpY2F0aW9uczoKLS0gIGVtYWlsOgotLSAgICBvbl9zdWNjZXNz OiBuZXZlcgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28u dG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9tbAotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9DYXJnby50b21sCTIwMjUtMDktMDcgMTQ6MzA6Mzcu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0Nhcmdv LnRvbWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDgwICswLDAg QEAKLS0jIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTwotLSMK LS0jIFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRv bWF0aWNhbGx5Ci0tIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNv bXBhdGliaWxpdHkKLS0jIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3Jp dGUgYHBhdGhgIGRlcGVuZGVuY2llcwotLSMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykg ZGVwZW5kZW5jaWVzLgotLSMKLS0jIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdh cmUgdGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAotLSMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5 IGRpZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KLS0jIFNlZSBDYXJnby50b21s Lm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KLS0KLS1bcGFja2FnZV0KLS1lZGl0aW9u ID0gIjIwMTgiCi0tbmFtZSA9ICJwYWNrZWRfc2ltZCIKLS12ZXJzaW9uID0gIjAuMy45IgotLWJ1 aWxkID0gImJ1aWxkLnJzIgotLWRlc2NyaXB0aW9uID0gIlBvcnRhYmxlIFBhY2tlZCBTSU1EIHZl Y3RvcnMiCi0taG9tZXBhZ2UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRf c2ltZCIKLS1kb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9jcmF0ZS9wYWNrZWRfc2lt ZC8iCi0tcmVhZG1lID0gIlJFQURNRS5tZCIKLS1rZXl3b3JkcyA9IFsKLS0gICAgInNpbWQiLAot LSAgICAidmVjdG9yIiwKLS0gICAgInBvcnRhYmlsaXR5IiwKLS1dCi0tY2F0ZWdvcmllcyA9IFsK LS0gICAgImhhcmR3YXJlLXN1cHBvcnQiLAotLSAgICAiY29uY3VycmVuY3kiLAotLSAgICAibm8t c3RkIiwKLS0gICAgImRhdGEtc3RydWN0dXJlcyIsCi0tXQotLWxpY2Vuc2UgPSAiTUlUIE9SIEFw YWNoZS0yLjAiCi0tcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3Bh Y2tlZF9zaW1kIgotLQotLVtwYWNrYWdlLm1ldGFkYXRhLmRvY3MucnNdCi0tZmVhdHVyZXMgPSBb ImludG9fYml0cyJdCi0tcnVzdGRvYy1hcmdzID0gWwotLSAgICAiLS1jZmciLAotLSAgICAiZG9j X2NmZyIsCi0tXQotLQotLVtkZXBlbmRlbmNpZXNdCi0tY2ZnLWlmID0gIjEuMC4wIgotLQotLVtk ZXBlbmRlbmNpZXMuY29yZV9hcmNoXQotLXZlcnNpb24gPSAiMC4xLjUiCi0tb3B0aW9uYWwgPSB0 cnVlCi0tCi0tW2RlcGVuZGVuY2llcy5udW0tdHJhaXRzXQotLXZlcnNpb24gPSAiMC4yLjE0Igot LWRlZmF1bHQtZmVhdHVyZXMgPSBmYWxzZQotLQotLVtkZXYtZGVwZW5kZW5jaWVzXQotLXBhc3Rl ID0gIl4xIgotLQotLVtkZXYtZGVwZW5kZW5jaWVzLmFycmF5dmVjXQotLXZlcnNpb24gPSAiXjAu NSIKLS1kZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UKLS0KLS1bZmVhdHVyZXNdCi0tZGVmYXVsdCA9 IFtdCi0taW50b19iaXRzID0gW10KLS1saWJjb3JlX25lb24gPSBbXQotLQotLVt0YXJnZXQuImNm Zyh0YXJnZXRfYXJjaCA9IFwieDg2XzY0XCIpIi5kZXBlbmRlbmNpZXMuc2xlZWYtc3lzXQotLXZl cnNpb24gPSAiMC4xLjIiCi0tb3B0aW9uYWwgPSB0cnVlCi0tCi0tW3RhcmdldC53YXNtMzItdW5r bm93bi11bmtub3duLmRldi1kZXBlbmRlbmNpZXNdCi0td2FzbS1iaW5kZ2VuID0gIj0wLjIuODci Ci0td2FzbS1iaW5kZ2VuLXRlc3QgPSAiPTAuMy4zNyIKLS0KLS1bYmFkZ2VzLmlzLWl0LW1haW50 YWluZWQtaXNzdWUtcmVzb2x1dGlvbl0KLS1yZXBvc2l0b3J5ID0gInJ1c3QtbGFuZy9wYWNrZWRf c2ltZCIKLS0KLS1bYmFkZ2VzLmlzLWl0LW1haW50YWluZWQtb3Blbi1pc3N1ZXNdCi0tcmVwb3Np dG9yeSA9ICJydXN0LWxhbmcvcGFja2VkX3NpbWQiCi0tCi0tW2JhZGdlcy5tYWludGVuYW5jZV0K LS1zdGF0dXMgPSAiZXhwZXJpbWVudGFsIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvTElDRU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L0xJQ0VOU0UtQVBBQ0hFCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VO U0UtQVBBQ0hFCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDEgKzAsMCBAQAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCi0tICAgICAgICAgICAgICAgICAgICAgICAgVmVy c2lvbiAyLjAsIEphbnVhcnkgMjAwNAotLSAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy8KLS0KLS1URVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBS RVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KLS0KLS0xLiBEZWZpbml0aW9ucy4KLS0KLS0g ICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwg cmVwcm9kdWN0aW9uLAotLSAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9u cyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgotLQotLSAgICJMaWNlbnNvciIgc2hhbGwg bWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5Ci0tICAgdGhl IGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgotLQotLSAgICJM ZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFu ZCBhbGwKLS0gICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5 LCBvciBhcmUgdW5kZXIgY29tbW9uCi0tICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3Ig dGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKLS0gICAiY29udHJvbCIgbWVhbnMgKGkp IHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKLS0gICBkaXJlY3Rp b24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgot LSAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBv ciBtb3JlIG9mIHRoZQotLSAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lh bCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0tCi0tICAgIllvdSIgKG9yICJZb3VyIikgc2hh bGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotLSAgIGV4ZXJjaXNpbmcgcGVy bWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCi0tCi0tICAgIlNvdXJjZSIgZm9ybSBz aGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCi0t ICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9j dW1lbnRhdGlvbgotLSAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCi0tCi0tICAg Ik9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmlj YWwKLS0gICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBp bmNsdWRpbmcgYnV0Ci0tICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdl bmVyYXRlZCBkb2N1bWVudGF0aW9uLAotLSAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRp YSB0eXBlcy4KLS0KLS0gICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlw LCB3aGV0aGVyIGluIFNvdXJjZSBvcgotLSAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1 bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKLS0gICBjb3B5cmlnaHQgbm90aWNl IHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKLS0gICAoYW4gZXhh bXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgotLQotLSAgICJEZXJpdmF0 aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmpl Y3QKLS0gICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3Jr IGFuZCBmb3Igd2hpY2ggdGhlCi0tICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMs IGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwotLSAgIHJlcHJlc2VudCwgYXMg YSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2Vz Ci0tICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRl IHdvcmtzIHRoYXQgcmVtYWluCi0tICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChv ciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAotLSAgIHRoZSBXb3JrIGFuZCBE ZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCi0tCi0tICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVh biBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKLS0gICB0aGUgb3JpZ2luYWwgdmVy c2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCi0tICAg dG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRp b25hbGx5Ci0tICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdv cmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgotLSAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVn YWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgotLSAgIHRoZSBjb3B5 cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0 dGVkIgotLSAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRl biBjb21tdW5pY2F0aW9uIHNlbnQKLS0gICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2Vu dGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotLSAgIGNvbW11bmljYXRpb24g b24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMs Ci0tICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Ig b24gYmVoYWxmIG9mLCB0aGUKLS0gICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vz c2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKLS0gICBleGNsdWRpbmcgY29tbXVuaWNh dGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQotLSAgIGRlc2ln bmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmli dXRpb24uIgotLQotLSAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55 IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0tICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250 cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCi0tICAgc3Vic2VxdWVu dGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0tCi0tMi4gR3JhbnQgb2YgQ29weXJp Z2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0tICAg dGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVy cGV0dWFsLAotLSAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5 LWZyZWUsIGlycmV2b2NhYmxlCi0tICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBw cmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCi0tICAgcHVibGljbHkgZGlzcGxheSwgcHVibGlj bHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCi0tICAgV29yayBhbmQg c3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KLS0KLS0zLiBH cmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YKLS0gICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0 byBZb3UgYSBwZXJwZXR1YWwsCi0tICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFy Z2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLS0gICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0 aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKLS0gICB1c2Us IG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUg V29yaywKLS0gICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVu dCBjbGFpbXMgbGljZW5zYWJsZQotLSAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVj ZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCi0tICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9y IGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQotLSAgIHdpdGggdGhlIFdv cmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91Ci0t ICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVk aW5nIGEKLS0gICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxl Z2luZyB0aGF0IHRoZSBXb3JrCi0tICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdp dGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKLS0gICBvciBjb250cmlidXRvcnkgcGF0 ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCi0tICAgZ3JhbnRlZCB0 byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCi0t ICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotLQotLTQuIFJlZGlz dHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhl Ci0tICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0 aCBvciB3aXRob3V0Ci0tICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3Qg Zm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKLS0gICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKLS0KLS0gICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUg V29yayBvcgotLSAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7 IGFuZAotLQotLSAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2Fy cnkgcHJvbWluZW50IG5vdGljZXMKLS0gICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRo ZSBmaWxlczsgYW5kCi0tCi0tICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBm b3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCi0tICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUs IGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKLS0gICAgICAgYXR0cmlidXRp b24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKLS0gICAgICAgZXhj bHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgot LSAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCi0tCi0tICAgKGQpIElmIHRoZSBXb3Jr IGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCi0tICAgICAgIGRp c3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRl IG11c3QKLS0gICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9u IG5vdGljZXMgY29udGFpbmVkCi0tICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNs dWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAotLSAgICAgICBwZXJ0YWluIHRvIGFueSBw YXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKLS0gICAgICAgb2Yg dGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0 ZWQKLS0gICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBT b3VyY2UgZm9ybSBvcgotLSAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3 aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKLS0gICAgICAgd2l0aGluIGEgZGlzcGxheSBn ZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAotLSAgICAgICB3aGVyZXZl ciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMK LS0gICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3Nl cyBvbmx5IGFuZAotLSAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFk ZCBZb3VyIG93biBhdHRyaWJ1dGlvbgotLSAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZl IFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQotLSAgICAgICBvciBhcyBhbiBh ZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKLS0gICAg ICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29u c3RydWVkCi0tICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KLS0KLS0gICBZb3UgbWF5 IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBh bmQKLS0gICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1z IGFuZCBjb25kaXRpb25zCi0tICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRp b24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgotLSAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZl IFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAotLSAgIHJlcHJvZHVjdGlvbiwg YW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAotLSAg IHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCi0tCi0tNS4gU3VibWlzc2lv biBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNl LAotLSAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1 c2lvbiBpbiB0aGUgV29yawotLSAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5k ZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCi0tICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0 IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0tICAgTm90d2l0aHN0YW5kaW5n IHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQotLSAg IHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZl IGV4ZWN1dGVkCi0tICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25z LgotLQotLTYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNz aW9uIHRvIHVzZSB0aGUgdHJhZGUKLS0gICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJr cywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCi0tICAgZXhjZXB0IGFzIHJlcXVp cmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCi0t ICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUg Tk9USUNFIGZpbGUuCi0tCi0tNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCi0tICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vu c29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAotLSAgIENvbnRyaWJ1dG9yIHByb3ZpZGVz IGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLSAgIFdJVEhPVVQgV0FS UkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgotLSAg IGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBv ciBjb25kaXRpb25zCi0tICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJ TElUWSwgb3IgRklUTkVTUyBGT1IgQQotLSAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBz b2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQotLSAgIGFwcHJvcHJpYXRlbmVz cyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQotLSAg IHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVy IHRoaXMgTGljZW5zZS4KLS0KLS04LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZl bnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKLS0gICB3aGV0aGVyIGluIHRvcnQgKGluY2x1 ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKLS0gICB1bmxlc3MgcmVx dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQot LSAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENv bnRyaWJ1dG9yIGJlCi0tICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFu eSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotLSAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVl bnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQotLSAgIHJlc3VsdCBv ZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUK LS0gICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mg b2YgZ29vZHdpbGwsCi0tICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxm dW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKLS0gICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3Ig bG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCi0tICAgaGFzIGJlZW4gYWR2aXNlZCBv ZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgotLQotLTkuIEFjY2VwdGluZyBXYXJy YW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKLS0gICB0 aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9m ZmVyLAotLSAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdh cnJhbnR5LCBpbmRlbW5pdHksCi0tICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFu ZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKLS0gICBMaWNlbnNlLiBIb3dldmVyLCBp biBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQotLSAgIG9uIFlv dXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVo YWxmCi0tICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUg dG8gaW5kZW1uaWZ5LAotLSAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJt bGVzcyBmb3IgYW55IGxpYWJpbGl0eQotLSAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0 ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KLS0gICBvZiB5b3VyIGFjY2Vw dGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLS0KLS1FTkQg T0YgVEVSTVMgQU5EIENPTkRJVElPTlMKLS0KLS1BUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBB cGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCi0tCi0tICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBM aWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKLS0gICBib2lsZXJwbGF0 ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCi0tICAg cmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGlu Y2x1ZGUKLS0gICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGlu IHRoZSBhcHByb3ByaWF0ZQotLSAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQu IFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQotLSAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVz Y3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUKLS0gICBzYW1lICJwcmludGVk IHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKLS0gICBpZGVudGlmaWNh dGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCi0tCi0tQ29weXJpZ2h0IFt5eXl5XSBb bmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCi0tCi0tTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0teW91IG1heSBub3QgdXNlIHRo aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLVlvdSBtYXkg b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLQotLQlodHRwOi8vd3d3LmFwYWNoZS5v cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS0KLS1Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0tZGlzdHJpYnV0ZWQgdW5k ZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS1XSVRI T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mg b3IgaW1wbGllZC4KLS1TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBn b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0tbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2Uu Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLU1JVCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1NSVQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElDRU5TRS1N SVQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI1ICswLDAgQEAK LS1Db3B5cmlnaHQgKGMpIDIwMTQgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzCi0tCi0tUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueQotLXBlcnNv biBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQKLS1kb2N1 bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlCi0tU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKLS1saW1pdGF0aW9uIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLAotLXB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgotLXRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlCi0taXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKLS1jb25kaXRpb25zOgotLQotLVRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlCi0tc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucwotLW9mIHRo ZSBTb2Z0d2FyZS4KLS0KLS1USEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRgotLUFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQKLS1UTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJ VE5FU1MgRk9SIEEKLS1QQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4g Tk8gRVZFTlQKLS1TSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWQotLUNMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04KLS1PRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SCi0tSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSCi0tREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVB RE1FLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTQ0ICswLDAgQEAKLS0jIGBTaW1kPFtUOyBOXT5gCi0tCi0tIyMg SW1wbGVtZW50YXRpb24gb2YgW1J1c3QgUkZDICMyMzY2OiBgc3RkOjpzaW1kYF1bcmZjMjM2Nl0K LS0KLS1bIVtMYXRlc3QgVmVyc2lvbl1dW2NyYXRlcy5pb10gWyFbZG9jc11dW21hc3Rlcl9kb2Nz XQotLQotLSoqV0FSTklORyoqOiB0aGlzIGNyYXRlIG9ubHkgc3VwcG9ydHMgdGhlIG1vc3QgcmVj ZW50IG5pZ2h0bHkgUnVzdCB0b29sY2hhaW4KLS1hbmQgd2lsbCBiZSBzdXBlcnNlZGVkIGJ5IFtg IyFbZmVhdHVyZShwb3J0YWJsZV9zaW1kKV1gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L3BvcnRhYmxlLXNpbWQpLgotLQotLSMjIERvY3VtZW50YXRpb24KLS0KLS0qIFtBUEkgZG9jcyAo YG1hc3RlcmAgYnJhbmNoKV1bbWFzdGVyX2RvY3NdCi0tKiBbUGVyZm9ybWFuY2UgZ3VpZGVdW3Bl cmZfZ3VpZGVdCi0tKiBbQVBJIGRvY3MgKGBkb2NzLnJzYCldW2RvY3MucnNdCi0tKiBbUkZDMjM2 NiBgc3RkOjpzaW1kYF1bcmZjMjM2Nl06IC0gY29udGFpbnMgbW90aXZhdGlvbiwgZGVzaWduIHJh dGlvbmFsZSwKLS0gIGRpc2N1c3Npb24sIGV0Yy4KLS0KLS0jIyBFeGFtcGxlcwotLQotLU1vc3Qg b2YgdGhlIGV4YW1wbGVzIGNvbWUgd2l0aCBib3RoIGEgc2NhbGFyIGFuZCBhIHZlY3Rvcml6ZWQg aW1wbGVtZW50YXRpb24uCi0tCi0tKiBbYGFvYmVuY2hgXShodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvYW9iZW5jaCkK LS0qIFtgZmFubmt1Y2hfcmVkdXhgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvZmFubmt1Y2hfcmVkdXgpCi0tKiBb YG1hdHJpeCBpbnZlcnNlYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL21hdHJpeF9pbnZlcnNlKQotLSogW2BtYW5k ZWxicm90YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L3RyZWUvbWFzdGVyL2V4YW1wbGVzL21hbmRlbGJyb3QpCi0tKiBbYG4tYm9keWBdKGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFt cGxlcy9uYm9keSkKLS0qIFtgb3B0aW9uc19wcmljaW5nYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL29wdGlvbnNf cHJpY2luZykKLS0qIFtgc3BlY3RyYWxfbm9ybWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9zcGVjdHJhbF9ub3Jt KQotLSogW2B0cmlhbmdsZSB0cmFuc2Zvcm1gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvdHJpYW5nbGVfeGZvcm0p Ci0tKiBbYHN0ZW5jaWxgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFj a2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvc3RlbmNpbCkKLS0qIFtgdmVjdG9yIGRvdCBw cm9kdWN0YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L3RyZWUvbWFzdGVyL2V4YW1wbGVzL2RvdF9wcm9kdWN0KQotLQotLSMjIENhcmdvIGZlYXR1cmVz Ci0tCi0tKiBgaW50b19iaXRzYCAoZGVmYXVsdDogZGlzYWJsZWQpOiBlbmFibGVzIGBGcm9tQml0 c2AvYEludG9CaXRzYCB0cmFpdAotLSAgaW1wbGVtZW50YXRpb25zIGZvciB0aGUgdmVjdG9yIHR5 cGVzLiBUaGVzZSBhbGxvdyByZWludGVycHJldGluZyB0aGUgYml0cyBvZiBhCi0tICB2ZWN0b3Ig dHlwZSBhcyB0aG9zZSBvZiBhbm90aGVyIHZlY3RvciB0eXBlIHNhZmVseSBieSBqdXN0IHVzaW5n IHRoZQotLSAgYC5pbnRvX2JpdHMoKWAgbWV0aG9kLgotLQotLSMjIFBlcmZvcm1hbmNlCi0tCi0t VGhlIGZvbGxvd2luZyBbSVNQQ10gZXhhbXBsZXMgYXJlIGFsc28gcGFydCBvZiBgcGFja2VkX3Np bWRgJ3MKLS1bYGV4YW1wbGVzL2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy8pCi0tZGlyZWN0b3J5LCB3aGVyZSBg cGFja2VkX3NpbWRgK1tgcmF5b25gXVtyYXlvbl0gYXJlIHVzZWQgdG8gZW11bGF0ZSBbSVNQQ10n cwotLVNpbmdsZS1Qcm9ncmFtLU11bHRpcGxlLURhdGEgKFNQTUQpIHByb2dyYW1taW5nIG1vZGVs LiBUaGUgcGVyZm9ybWFuY2UgcmVzdWx0cwotLW9uIGRpZmZlcmVudCBoYXJkd2FyZSBpcyBzaG93 biBpbiB0aGUgYHJlYWRtZS5tZGAgb2YgZWFjaCBleGFtcGxlLiBUaGUgZm9sbG93aW5nCi0tdGFi bGUgc3VtbWFyaXplcyB0aGUgcGVyZm9ybWFuY2UgcmFuZ2VzLCB3aGVyZSBgK2AgbWVhbnMgc3Bl ZWQtdXAgYW5kIGAtYAotLXNsb3dkb3duOgotLQotLSogYGFvYmVuY2hgOiBgWy0xLjAyeCwgKzEu NTN4XWAsCi0tKiBgc3RlbmNpbGA6IGBbKzEuMDZ4LCArMS43MnhdYCwKLS0qIGBtYW5kZWxicm90 YDogYFstMS43NHgsICsxLjJ4XWAsCi0tKiBgb3B0aW9uc19wcmljaW5nYDoKLS0gICAqIGBibGFj a19zY2hvbGVzYDogYCsxLjB4YAotLSAgICogYGJpbm9taWFsX3B1dGA6IGArMS40eGAKLS0KLS0g V2hpbGUgU1BNRCBpcyBub3QgdGhlIGludGVuZGVkIHVzZSBjYXNlIGZvciBgcGFja2VkX3NpbWRg LCBpdCBpcyBwb3NzaWJsZSB0bwotLSBjb21iaW5lIHRoZSBsaWJyYXJ5IHdpdGggW2ByYXlvbmBd W3JheW9uXSB0byBwb29ybHkgZW11bGF0ZSBbSVNQQ10ncyBTUE1EIHByb2dyYW1taW5nCi0tIG1v ZGVsIGluIFJ1c3QuIFdyaXRpbmcgcGVyZm9ybWFudCBjb2RlIGlzIG5vdCBhcyBzdHJhaWdodGZv cndhcmQgYXMgd2l0aAotLSBbSVNQQ10sIGJ1dCB3aXRoIHNvbWUgY2FyZSAoZS5nLiBzZWUgdGhl IFtQZXJmb3JtYW5jZSBHdWlkZV1bcGVyZl9ndWlkZV0pIG9uZQotLSBjYW4gZWFzaWx5IG1hdGNo IGFuZCBvZnRlbiBvdXQtcGVyZm9ybSBbSVNQQ10ncyAiZGVmYXVsdCBwZXJmb3JtYW5jZSIuCi0t Ci0tIyMgUGxhdGZvcm0gc3VwcG9ydAotLQotLVRoZSBmb2xsb3dpbmcgdGFibGUgZGVzY3JpYmVz IHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm1zOiBgYnVpbGRgIHNob3dzIHdoZXRoZXIKLS10aGUgbGli cmFyeSBjb21waWxlcyB3aXRob3V0IGlzc3VlcyBmb3IgYSBnaXZlbiB0YXJnZXQsIHdoaWxlIGBy dW5gIHNob3dzCi0td2hldGhlciB0aGUgdGVzdCBzdWl0ZSBwYXNzZXMgZm9yIGEgZ2l2ZW4gdGFy Z2V0LgotLQotLXwgKipMaW51eCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVp bGQqKiB8ICoqcnVuKiogfAotLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS18LS0tLS0tLS0tLS18LS0tLS0tLS0tfAotLXwgYGk1ODYtdW5rbm93bi1saW51eC1nbnVgICAg ICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGBpNjg2LXVua25vd24t bGludXgtZ251YCAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCBg eDg2XzY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMg ICAgICAgfAotLXwgYGFybS11bmtub3duLWxpbnV4LWdudWVhYmloZmAgICAgICAgICB8IOKckyAg ICAgICAgIHwg4pyTICAgICAgIHwKLS18IGBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmlgICAg ICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCBgYWFyY2g2NC11bmtub3duLWxp bnV4LWdudWAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwgYHBvd2Vy cGMtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAg IHwKLS18IGBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgfCDinJMgICAgICAg ICB8IOKclyAgICAgICB8Ci0tfCBgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnVgICAgICAg IHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwgYHMzOTB4LXVua25vd24tbGludXgtZ251 YCAgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGBzcGFyYzY0LXVu a25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0t fCBgdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGZgIHwg4pyTICAgICAgICAgfCDi nJMgICAgICAgfAotLXwgKipNYWNPU1gqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoq YnVpbGQqKiB8ICoqcnVuKiogfAotLXwgYHg4Nl82NC1hcHBsZS1kYXJ3aW5gICAgICAgICAgICAg ICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18ICoqQW5kcm9pZCoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKLS18IGB4ODZfNjQtbGlu dXgtYW5kcm9pZGAgICAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0t fCBgYXJtdjctbGludXgtYW5kcm9pZGVhYmlgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDi nJcgICAgICAgfAotLXwgYGFhcmNoNjQtbGludXgtYW5kcm9pZGAgICAgICAgICAgICAgICB8IOKc kyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGB0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFi aWAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCAqKmlPUyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8Ci0tfCBgeDg2XzY0 LWFwcGxlLWlvc2AgICAgICAgICAgICAgICAgICAgIHwg4pyXICAgICAgICAgfCDinJcgICAgICAg fAotLXwgYGFhcmNoNjQtYXBwbGUtaW9zYCAgICAgICAgICAgICAgICAgICB8IOKclyAgICAgICAg IHwg4pyXICAgICAgIHwKLS0KLS0KLS0jIyBNYWNoaW5lIGNvZGUgdmVyaWZpY2F0aW9uCi0tCi0t VGhlCi0tW2B2ZXJpZnkvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL3RyZWUvbWFzdGVyL3ZlcmlmeSkKLS1jcmF0ZSB0ZXN0cyBkaXNhc3NlbWJsZXMg dGhlIHBvcnRhYmxlIHBhY2tlZCB2ZWN0b3IgQVBJcyBhdCBydW4tdGltZSBhbmQKLS1jb21wYXJl cyB0aGUgZ2VuZXJhdGVkIG1hY2hpbmUgY29kZSBhZ2FpbnN0IHRoZSBkZXNpcmVkIG9uZSB0byBt YWtlIHN1cmUgdGhhdAotLXRoaXMgY3JhdGUgcmVtYWlucyBlZmZpY2llbnQuCi0tCi0tIyMgTGlj ZW5zZQotLQotLVRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIgb2YKLS0KLS0q IFtBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBdKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl bnNlcy9MSUNFTlNFLTIuMCkKLS0gIChbTElDRU5TRS1BUEFDSEVdKExJQ0VOU0UtQVBBQ0hFKSkK LS0KLS0qIFtNSVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkK LS0gIChbTElDRU5TRS1NSVRdKExJQ0VOU0UtTUlUKSkKLS0KLS1hdCB5b3VyIG9wdGlvbi4KLS0K LS0jIyBDb250cmlidXRpbmcKLS0KLS1XZSB3ZWxjb21lIGFsbCBwZW9wbGUgd2hvIHdhbnQgdG8g Y29udHJpYnV0ZS4KLS1QbGVhc2Ugc2VlIHRoZSBbY29udHJpYnV0aW5nIGluc3RydWN0aW9uc10g Zm9yIG1vcmUgaW5mb3JtYXRpb24uCi0tCi0tQ29udHJpYnV0aW9ucyBpbiBhbnkgZm9ybSAoaXNz dWVzLCBwdWxsIHJlcXVlc3RzLCBldGMuKSB0byB0aGlzIHByb2plY3QKLS1tdXN0IGFkaGVyZSB0 byBSdXN0J3MgW0NvZGUgb2YgQ29uZHVjdF0uCi0tCi0tVW5sZXNzIHlvdSBleHBsaWNpdGx5IHN0 YXRlIG90aGVyd2lzZSwgYW55IGNvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZAot LWZvciBpbmNsdXNpb24gaW4gYHBhY2tlZF9zaW1kYCBieSB5b3UsIGFzIGRlZmluZWQgaW4gdGhl IEFwYWNoZS0yLjAgbGljZW5zZSwgc2hhbGwgYmUKLS1kdWFsIGxpY2Vuc2VkIGFzIGFib3ZlLCB3 aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCi0tCi0tW3RyYXZpc106 IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQKLS1bVHJhdmlzLUNJ IFN0YXR1c106IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQuc3Zn P2JyYW5jaD1tYXN0ZXIKLS1bYXBwdmV5b3JdOiBodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9q ZWN0L2duemxiZy9wYWNrZWQtc2ltZAotLVtBcHB2ZXlvciBTdGF0dXNdOiBodHRwczovL2NpLmFw cHZleW9yLmNvbS9hcGkvcHJvamVjdHMvc3RhdHVzL2hkN3Y5ZHZyNDQyaGdkaXg/c3ZnPXRydWUK LS1bTGF0ZXN0IFZlcnNpb25dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NyYXRlcy92L3BhY2tl ZF9zaW1kLnN2ZwotLVtjcmF0ZXMuaW9dOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcGFja2Vk X3NpbWQKLS1bZG9jc106IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZC9iYWRnZS5zdmcKLS1b ZG9jcy5yc106IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZAotLVttYXN0ZXJfZG9jc106IGh0 dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BhY2tlZF9zaW1k LwotLVtwZXJmX2d1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS8KLS1bcmZjMjM2Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvcmZjcy9wdWxsLzIzNjYKLS1bSVNQQ106IGh0dHBzOi8vaXNwYy5naXRodWIuaW8vCi0t W3JheW9uXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3JheW9uCi0tW2Jvb3N0X2xpY2Vuc2Vd OiBodHRwczovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0Ci0tW1NMRUVGXTogaHR0cHM6 Ly9zbGVlZi5vcmcvCi0tW3NsZWVmX3N5c106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9zbGVl Zi1zeXMKLS1bY29udHJpYnV0aW5nIGluc3RydWN0aW9uc106IGNvbnRyaWJ1dGluZy5tZAotLVtD b2RlIG9mIENvbmR1Y3RdOiBodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL2VuLVVTL2NvbmR1Y3Qu aHRtbAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21s IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbAkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMyArMCwwIEBACi0tc3Rh dHVzID0gWwotLSAgICAiY29udGludW91cy1pbnRlZ3JhdGlvbi90cmF2aXMtY2kvcHVzaCIKLS1d Ci1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9i dWlsZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9idWlsZC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsNiArMCwwIEBACi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IHRhcmdldCA9IHN0ZDo6ZW52 Ojp2YXIoIlRBUkdFVCIpLmV4cGVjdCgiVEFSR0VUIGVudmlyb25tZW50IHZhcmlhYmxlIG5vdCBk ZWZpbmVkIik7Ci0tICAgIGlmIHRhcmdldC5jb250YWlucygibmVvbiIpIHsKLS0gICAgICAgIHBy aW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bGliY29yZV9uZW9uIik7Ci0tICAgIH0KLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwuc2ggYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9hbGwuc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3MSArMCwwIEBACi0tIyEvdXNyL2Jpbi9l bnYgYmFzaAotLSMKLS0jIFBlcmZvcm1zIGFuIG9wZXJhdGlvbiBvbiBhbGwgdGFyZ2V0cwotLQot LXNldCAtZXgKLS0KLS06ICIkezE/VGhlIGFsbC5zaCBzY3JpcHQgcmVxdWlyZXMgb25lIGFyZ3Vt ZW50Ln0iCi0tCi0tb3A9JDEKLS0KLS1jYXJnb19jbGVhbigpIHsKLS0gICAgY2FyZ28gY2xlYW4K LS19Ci0tCi0tY2FyZ29fY2hlY2tfZm10KCkgewotLSAgICBjYXJnbyBmbXQgLS1hbGwgLS0gLS1j aGVjawotLX0KLS0KLS1jYXJnb19mbXQoKSB7Ci0tICAgIGNhcmdvIGZtdCAtLWFsbAotLX0KLS0K LS1jYXJnb19jbGlwcHkoKSB7Ci0tICAgIGNhcmdvIGNsaXBweSAtLWFsbCAtLSAtRCBjbGlwcHk6 OnBlcmYKLS19Ci0tCi0tQ01EPSItMSIKLS0KLS1jYXNlICRvcCBpbgotLSAgICBjbGVhbiopCi0t ICAgICAgICBDTUQ9Y2FyZ29fY2xlYW4KLS0gICAgICAgIDs7Ci0tICAgIGNoZWNrX2ZtdCopCi0t ICAgICAgICBDTUQ9Y2FyZ29fY2hlY2tfZm10Ci0tICAgICAgICA7OwotLSAgICBmbXQqKQotLSAg ICAgICAgQ01EPWNhcmdvX2ZtdAotLSAgICAgICAgOzsKLS0gICAgY2xpcHB5KQotLSAgICAgICAg Q01EPWNhcmdvX2NsaXBweQotLSAgICAgICAgOzsKLS0gICAgKikKLS0gICAgICAgIGVjaG8gIlVu a25vd24gb3BlcmF0aW9uOiBcIiR7b3B9XCIiCi0tICAgICAgICBleGl0IDEKLS0gICAgICAgIDs7 Ci0tZXNhYwotLQotLWVjaG8gIk9wZXJhdGlvbiBpczogJHtDTUR9IgotLQotLSMgT24gc3JjLwot LSRDTUQKLS0KLS0jIENoZWNrIGV4YW1wbGVzLwotLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KLS1k bwotLSAgICBkaXI9JHtkaXIlKi99Ci0tICAgICgKLS0gICAgICAgIGNkICIke2RpciUqL30iCi0t ICAgICAgICAkQ01ECi0tICAgICkKLS1kb25lCi0tCi0tKAotLSAgICBjZCB2ZXJpZnkvdmVyaWZ5 Ci0tICAgICRDTUQKLS0pCi0tCi0tKAotLSAgICBjZCBtaWNyb19iZW5jaG1hcmtzCi0tICAgICRD TUQKLS0pCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRy b2lkLWluc3RhbGwtbmRrLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRy b2lkLWluc3RhbGwtbmRrLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxs LW5kay5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjEgKzAs MCBAQAotLSMhL3Vzci9iaW4vZW52IHNoCi0tIyBDb3B5cmlnaHQgMjAxNiBUaGUgUnVzdCBQcm9q ZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCi0tIyBmaWxlIGF0IHRoZSB0b3AtbGV2 ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLSMgaHR0cDovL3J1c3Qt bGFuZy5vcmcvQ09QWVJJR0hULgotLSMKLS0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj ZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tIyBodHRwOi8vd3d3LmFwYWNo ZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQotLSMgPExJQ0VO U0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCi0t IyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3Ry aWJ1dGVkCi0tIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgotLQotLXNldCAtZXgK LS0KLS1BTkRST0lEX05ES19VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvcmVwb3Np dG9yeQotLUFORFJPSURfTkRLX0FSQ0hJVkU9YW5kcm9pZC1uZGstcjI1Yi1saW51eC56aXAKLS0K LS1jdXJsIC1mTyAiJEFORFJPSURfTkRLX1VSTC8kQU5EUk9JRF9OREtfQVJDSElWRSIKLS11bnpp cCAtcSAkQU5EUk9JRF9OREtfQVJDSElWRQotLXJtICRBTkRST0lEX05ES19BUkNISVZFCi0tbXYg YW5kcm9pZC1uZGstKiBuZGsKLS1ybSAtcmYgYW5kcm9pZC1uZGstKgotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaAotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtc2RrLnNo CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2gJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYwICswLDAgQEAKLS0jIS91c3IvYmluL2VudiBz aAotLSMgQ29weXJpZ2h0IDIwMTYgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzLiBTZWUgdGhl IENPUFlSSUdIVAotLSMgZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRp c3RyaWJ1dGlvbiBhbmQgYXQKLS0jIGh0dHA6Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KLS0j Ci0tIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNF TlNFLUFQQUNIRSBvcgotLSMgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0Ut Mi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKLS0jIDxMSUNFTlNFLU1JVCBvciBodHRwOi8vb3BlbnNv dXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgotLSMgb3B0aW9uLiBUaGlzIGZpbGUgbWF5 IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAotLSMgZXhjZXB0IGFjY29y ZGluZyB0byB0aG9zZSB0ZXJtcy4KLS0KLS1zZXQgLWV4Ci0tCi0tIyBQcmVwIHRoZSBTREsgYW5k IGVtdWxhdG9yCi0tIwotLSMgTm90ZSB0aGF0IHRoZSB1cGRhdGUgcHJvY2VzcyByZXF1aXJlcyB0 aGF0IHdlIGFjY2VwdCBhIGJ1bmNoIG9mIGxpY2Vuc2VzLCBhbmQKLS0jIHdlIGNhbid0IGp1c3Qg cGlwZSBgeWVzYCBpbnRvIGl0IGZvciBzb21lIHJlYXNvbiwgc28gd2UgdGFrZSB0aGUgc2FtZSBz dHJhdGVneQotLSMgbG9jYXRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXBwdW5pdGUvZG9ja2Vy IGJ5IGp1c3Qgd3JhcHBpbmcgaXQgaW4gYSBzY3JpcHQKLS0jIHdoaWNoIGFwcGFyZW50bHkgbWFn aWNhbGx5IGFjY2VwdHMgdGhlIGxpY2Vuc2VzLgotLQotLW1rZGlyIHNkawotLWN1cmwgLS1yZXRy eSA1IGh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRvcnkvc2RrLXRvb2xzLWxp bnV4LTM4NTkzOTcuemlwIC1PCi0tdW56aXAgLWQgc2RrIHNkay10b29scy1saW51eC0zODU5Mzk3 LnppcAotLQotLWNhc2UgIiQxIiBpbgotLSAgYXJtIHwgYXJtdjcpCi0tICAgIGFiaT1hcm1lYWJp LXY3YQotLSAgICA7OwotLQotLSAgYWFyY2g2NCkKLS0gICAgYWJpPWFybTY0LXY4YQotLSAgICA7 OwotLQotLSAgaTY4NikKLS0gICAgYWJpPXg4NgotLSAgICA7OwotLQotLSAgeDg2XzY0KQotLSAg ICBhYmk9eDg2XzY0Ci0tICAgIDs7Ci0tCi0tICAqKQotLSAgICBlY2hvICJpbnZhbGlkIGFyY2g6 ICQxIgotLSAgICBleGl0IDEKLS0gICAgOzsKLS1lc2FjOwotLQotLSMgLS1ub19odHRwcyBhdm9p ZHMKLS0gICAgICMgamF2YXgubmV0LnNzbC5TU0xIYW5kc2hha2VFeGNlcHRpb246IHN1bi5zZWN1 cml0eS52YWxpZGF0b3IuVmFsaWRhdG9yRXhjZXB0aW9uOiBObyB0cnVzdGVkIGNlcnRpZmljYXRl IGZvdW5kCi0teWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIgLS1saWNlbnNlcyAtLW5v X2h0dHBzCi0teWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIgLS1ub19odHRwcyBcCi0t ICAgICAgICAiZW11bGF0b3IiIFwKLS0gICAgICAgICJwbGF0Zm9ybS10b29scyIgXAotLSAgICAg ICAgInBsYXRmb3JtczthbmRyb2lkLTI0IiBcCi0tICAgICAgICAic3lzdGVtLWltYWdlczthbmRy b2lkLTI0O2RlZmF1bHQ7JGFiaSIKLS0KLS1lY2hvICJubyIgfAotLSAgICAuL3Nkay90b29scy9i aW4vYXZkbWFuYWdlciBjcmVhdGUgYXZkIFwKLS0gICAgICAgIC0tbmFtZSAiJHsxfSIgXAotLSAg ICAgICAgLS1wYWNrYWdlICJzeXN0ZW0taW1hZ2VzO2FuZHJvaWQtMjQ7ZGVmYXVsdDskYWJpIgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1zeXNp bWFnZS5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1zeXNpbWFn ZS5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLXN5c2lt YWdlLnNoCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2gJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU2ICswLDAgQEAKLS0jIS91c3IvYmluL2Vu diBiYXNoCi0tCi0tIyBDb3B5cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMu IFNlZSB0aGUgQ09QWVJJR0hUCi0tIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9m IHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLSMgaHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJ R0hULgotLSMKLS0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy LjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv TElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQotLSMgPExJQ0VOU0UtTUlUIG9yIGh0dHA6 Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCi0tIyBvcHRpb24uIFRoaXMg ZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCi0tIyBleGNl cHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgotLQotLXNldCAtZXgKLS0KLS1VUkw9aHR0cHM6 Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvcmVwb3NpdG9yeS9zeXMtaW1nL2FuZHJvaWQKLS0KLS1t YWluKCkgewotLSAgICBsb2NhbCBhcmNoPSIkezF9IgotLSAgICBsb2NhbCBuYW1lPSIkezJ9Igot LSAgICBsb2NhbCBkZXN0PS9zeXN0ZW0KLS0gICAgbG9jYWwgdGQKLS0gICAgdGQ9IiQobWt0ZW1w IC1kKSIKLS0KLS0gICAgYXB0LWdldCBpbnN0YWxsIC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGUy dG9vbHMKLS0KLS0gICAgcHVzaGQgIiR7dGR9IgotLSAgICBjdXJsIC0tcmV0cnkgNSAtTyAiJHtV Ukx9LyR7bmFtZX0iCi0tICAgIHVuemlwIC1xICIke25hbWV9IgotLQotLSAgICBsb2NhbCBzeXN0 ZW0KLS0gICAgc3lzdGVtPSIkKGZpbmQgLiAtbmFtZSBzeXN0ZW0uaW1nKSIKLS0gICAgbWtkaXIg LXAgJHtkZXN0fS97YmluLGxpYixsaWI2NH0KLS0KLS0gICAgIyBFeHRyYWN0IGFuZHJvaWQgbGlu a2VyIGFuZCBsaWJyYXJpZXMgdG8gL3N5c3RlbQotLSAgICAjIFRoaXMgYWxsb3dzIGFuZHJvaWQg ZXhlY3V0YWJsZXMgdG8gYmUgcnVuIGRpcmVjdGx5IChvciB3aXRoIHFlbXUpCi0tICAgIGlmIFsg IiR7YXJjaH0iID0gIng4Nl82NCIgXSB8fCBbICIke2FyY2h9IiA9ICJhcm02NCIgXTsgdGhlbgot LSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9iaW4vbGlua2VyNjQiICIke2Rlc3R9L2Jpbi8i Ci0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmRsLnNvIiAiJHtkZXN0fS9s aWI2NC8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmMuc28iICIke2Rl c3R9L2xpYjY0LyIKLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQvbGlibS5zbyIg IiR7ZGVzdH0vbGliNjQvIgotLSAgICBlbHNlCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06 L2Jpbi9saW5rZXIiICIke2Rlc3R9L2Jpbi8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06 L2xpYi9saWJkbC5zbyIgIiR7ZGVzdH0vbGliLyIKLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVt fTovbGliL2xpYmMuc28iICIke2Rlc3R9L2xpYi8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3Rl bX06L2xpYi9saWJtLnNvIiAiJHtkZXN0fS9saWIvIgotLSAgICBmaQotLQotLSAgICAjIGNsZWFu IHVwCi0tICAgIGFwdC1nZXQgcHVyZ2UgLS1hdXRvLXJlbW92ZSAteSBlMnRvb2xzCi0tCi0tICAg IHBvcGQKLS0KLS0gICAgcm0gLXJmICIke3RkfSIKLS19Ci0tCi0tbWFpbiAiJHtAfSIKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaAkyMDI1LTA5LTA3IDE0OjMwOjM3 LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9i ZW5jaG1hcmsuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMy ICswLDAgQEAKLS0jIS91c3IvYmluL2VudiBiYXNoCi0tIwotLSMgUnVucyBhbGwgYmVuY2htYXJr cy4gQ29udHJvbGxlZCBieSB0aGUgZm9sbG93aW5nIGVudmlyb25tZW50IHZhcmlhYmxlczoKLS0j Ci0tIyBGRUFUVVJFUz17fSAtIGNhcmdvIGZlYXR1cmVzIHRvIHBhc3MgdG8gYWxsIGJlbmNobWFy a3MgKGUuZy4gY29yZV9hcmNoLHNsZWVmLXN5cyxpc3BjKQotLSMgTk9SVU49ezF9ICAgLSBvbmx5 IGJ1aWxkcyB0aGUgYmVuY2htYXJrcwotLQotLXNldCAtZXgKLS0KLS1pZiBbWyAke05PUlVOfSAh PSAxIF1dOyB0aGVuCi0tICAgICMgTW9zdCBiZW5jaG1hcmtzIHJlcXVpcmUgaHlwZXJmaW5lOyBy ZXF1aXJlIGl0IHVwZnJvbnQuCi0tICAgIGhhc2ggaHlwZXJmaW5lIDI+L2Rldi9udWxsIHx8IHsg ZWNobyA+JjIgImh5cGVyZmluZSBpcyBub3QgaW4gUEFUSC4iOyBleGl0IDE7IH0KLS1maQotLQot LQotLSMgSWYgdGhlIGlzcGMgYmVuY2htYXJrIGZlYXR1cmUgaXMgZW5hYmxlZCwgaXNwYyBtdXN0 IGJlIGluIHRoZSBwYXRoIG9mIHRoZQotLSMgYmVuY2htYXJrcy4gCi0taWYgZWNobyAiJEZFQVRV UkVTIiB8IGdyZXAgLXEgImlzcGMiOyB0aGVuCi0tICAgIGhhc2ggaXNwYyAyPi9kZXYvbnVsbCB8 fCB7IGVjaG8gPiYyICJpc3BjIGlzIG5vdCBpbiBQQVRILiI7IGV4aXQgMTsgfQotLWZpCi0tCi0t IyBBbiBleGFtcGxlIHdpdGggYSBiZW5jaG1hcmsuc2ggaXMgYSBiZW5jaG1hcms6Ci0tZm9yIGRp ciBpbiBleGFtcGxlcy8qLwotLWRvCi0tICAgIGRpcj0ke2RpciUqL30KLS0gICAgY2QgJHtkaXIl Ki99Ci0tICAgIGlmIFsgLWYgImJlbmNobWFyay5zaCIgXTsgdGhlbgotLSAgICAgICAgLi9iZW5j aG1hcmsuc2gKLS0gICAgZmkKLS0gICAgY2QgLQotLWRvbmUKLS0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0 b3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29u X2lvc19zaW11bGF0b3IucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBs b3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxNzYgKzAsMCBAQAotLS8vIENvcHlyaWdodCAyMDE3IFRoZSBSdXN0 IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKLS0vLyBmaWxlIGF0IHRoZSB0 b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAotLS8vIGh0dHA6 Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KLS0vLwotLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBB cGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCi0tLy8gaHR0cDov L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UK LS0vLyA8TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4s IGF0IHlvdXIKLS0vLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZp ZWQsIG9yIGRpc3RyaWJ1dGVkCi0tLy8gZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4K LS0KLS0vLyBUaGlzIGlzIGEgc2NyaXB0IHRvIGRlcGxveSBhbmQgZXhlY3V0ZSBhIGJpbmFyeSBv biBhbiBpT1Mgc2ltdWxhdG9yLgotLS8vIFRoZSBwcmltYXJ5IHVzZSBvZiB0aGlzIGlzIHRvIGJl IGFibGUgdG8gcnVuIHVuaXQgdGVzdHMgb24gdGhlIHNpbXVsYXRvciBhbmQKLS0vLyByZXRyaWV2 ZSB0aGUgcmVzdWx0cy4KLS0vLwotLS8vIFRvIGRvIHRoaXMgdGhyb3VnaCBDYXJnbyBpbnN0ZWFk LCB1c2UgRGluZ2h5Ci0tLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmlwc2NvL2RpbmdoeSk6IGNh cmdvIGRpbmdoeSBpbnN0YWxsLCB0aGVuIGNhcmdvIGRpbmdoeQotLS8vIHRlc3QuCi0tCi0tdXNl IHN0ZDo6ZW52OwotLXVzZSBzdGQ6OmZzOjp7c2VsZiwgRmlsZX07Ci0tdXNlIHN0ZDo6aW86Oldy aXRlOwotLXVzZSBzdGQ6OnBhdGg6OlBhdGg7Ci0tdXNlIHN0ZDo6cHJvY2VzczsKLS11c2Ugc3Rk Ojpwcm9jZXNzOjpDb21tYW5kOwotLQotLW1hY3JvX3J1bGVzISB0IHsKLS0gICAgKCRlOmV4cHIp ID0+IChtYXRjaCAkZSB7Ci0tICAgICAgICBPayhlKSA9PiBlLAotLSAgICAgICAgRXJyKGUpID0+ IHBhbmljISgie30gZmFpbGVkIHdpdGg6IHt9Iiwgc3RyaW5naWZ5ISgkZSksIGUpLAotLSAgICB9 KQotLX0KLS0KLS0vLyBTdGVwIG9uZTogV3JhcCBhcyBhbiBhcHAKLS1mbiBwYWNrYWdlX2FzX3Np bXVsYXRvcl9hcHAoY3JhdGVfbmFtZTogJnN0ciwgdGVzdF9iaW5hcnlfcGF0aDogJlBhdGgpIHsK LS0gICAgcHJpbnRsbiEoIlBhY2thZ2luZyBzaW11bGF0b3IgYXBwIik7Ci0tICAgIGRyb3AoZnM6 OnJlbW92ZV9kaXJfYWxsKCJpb3Nfc2ltdWxhdG9yX2FwcCIpKTsKLS0gICAgdCEoZnM6OmNyZWF0 ZV9kaXIoImlvc19zaW11bGF0b3JfYXBwIikpOwotLSAgICB0IShmczo6Y29weSh0ZXN0X2JpbmFy eV9wYXRoLAotLSAgICAgICAgICAgICAgICBQYXRoOjpuZXcoImlvc19zaW11bGF0b3JfYXBwIiku am9pbihjcmF0ZV9uYW1lKSkpOwotLQotLSAgICBsZXQgbXV0IGYgPSB0IShGaWxlOjpjcmVhdGUo Imlvc19zaW11bGF0b3JfYXBwL0luZm8ucGxpc3QiKSk7Ci0tICAgIHQhKGYud3JpdGVfYWxsKGZv cm1hdCEociMiCi0tICAgICAgICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/ PgotLSAgICAgICAgPCFET0NUWVBFIHBsaXN0IFBVQkxJQwotLSAgICAgICAgICAgICAgICAiLS8v QXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIgotLSAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy5h cHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci0tICAgICAgICA8cGxpc3QgdmVy c2lvbj0iMS4wIj4KLS0gICAgICAgICAgICA8ZGljdD4KLS0gICAgICAgICAgICAgICAgPGtleT5D RkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLS0gICAgICAgICAgICAgICAgPHN0cmluZz57fTwvc3Ry aW5nPgotLSAgICAgICAgICAgICAgICA8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotLSAg ICAgICAgICAgICAgICA8c3RyaW5nPmNvbS5ydXN0LnVuaXR0ZXN0czwvc3RyaW5nPgotLSAgICAg ICAgICAgIDwvZGljdD4KLS0gICAgICAgIDwvcGxpc3Q+Ci0tICAgICIjLCBjcmF0ZV9uYW1lKS5h c19ieXRlcygpKSk7Ci0tfQotLQotLS8vIFN0ZXAgdHdvOiBTdGFydCB0aGUgaU9TIHNpbXVsYXRv cgotLWZuIHN0YXJ0X3NpbXVsYXRvcigpIHsKLS0gICAgcHJpbnRsbiEoIkxvb2tpbmcgZm9yIGlP UyBzaW11bGF0b3IiKTsKLS0gICAgbGV0IG91dHB1dCA9IHQhKENvbW1hbmQ6Om5ldygieGNydW4i KS5hcmcoInNpbWN0bCIpLmFyZygibGlzdCIpLm91dHB1dCgpKTsKLS0gICAgYXNzZXJ0IShvdXRw dXQuc3RhdHVzLnN1Y2Nlc3MoKSk7Ci0tICAgIGxldCBtdXQgc2ltdWxhdG9yX2V4aXN0cyA9IGZh bHNlOwotLSAgICBsZXQgbXV0IHNpbXVsYXRvcl9ib290ZWQgPSBmYWxzZTsKLS0gICAgbGV0IG11 dCBmb3VuZF9ydXN0X3NpbSA9IGZhbHNlOwotLSAgICBsZXQgc3Rkb3V0ID0gdCEoU3RyaW5nOjpm cm9tX3V0Zjgob3V0cHV0LnN0ZG91dCkpOwotLSAgICBmb3IgbGluZSBpbiBzdGRvdXQubGluZXMo KSB7Ci0tICAgICAgICBpZiBsaW5lLmNvbnRhaW5zKCJydXN0X2lvcyIpIHsKLS0gICAgICAgICAg ICBpZiBmb3VuZF9ydXN0X3NpbSB7Ci0tICAgICAgICAgICAgICAgIHBhbmljISgiRHVwbGljYXRl IHJ1c3RfaW9zIHNpbXVsYXRvcnMgZm91bmQuIFBsZWFzZSBcCi0tICAgICAgICAgICAgICAgICAg ICAgICAgZG91YmxlLWNoZWNrIHhjcnVuIHNpbWN0bCBsaXN0LiIpOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgICAgICBzaW11bGF0b3JfZXhpc3RzID0gdHJ1ZTsKLS0gICAgICAgICAgICBzaW11 bGF0b3JfYm9vdGVkID0gbGluZS5jb250YWlucygiKEJvb3RlZCkiKTsKLS0gICAgICAgICAgICBm b3VuZF9ydXN0X3NpbSA9IHRydWU7Ci0tICAgICAgICB9Ci0tICAgIH0KLS0KLS0gICAgaWYgc2lt dWxhdG9yX2V4aXN0cyA9PSBmYWxzZSB7Ci0tICAgICAgICBwcmludGxuISgiQ3JlYXRpbmcgaU9T IHNpbXVsYXRvciIpOwotLSAgICAgICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCi0tICAgICAgICAg ICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAgICAgICAgIC5hcmcoImNyZWF0ZSIpCi0t ICAgICAgICAgICAgICAgIC5hcmcoInJ1c3RfaW9zIikKLS0gICAgICAgICAgICAgICAgLmFyZygi Y29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtU0UiKQotLSAgICAg ICAgICAgICAgICAuYXJnKCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0x MC0yIikKLS0gICAgICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOwotLSAgICB9IGVsc2UgaWYg c2ltdWxhdG9yX2Jvb3RlZCA9PSB0cnVlIHsKLS0gICAgICAgIHByaW50bG4hKCJTaHV0dGluZyBk b3duIGFscmVhZHktYm9vdGVkIHNpbXVsYXRvciIpOwotLSAgICAgICAgQ29tbWFuZDo6bmV3KCJ4 Y3J1biIpCi0tICAgICAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAgICAgICAg IC5hcmcoInNodXRkb3duIikKLS0gICAgICAgICAgICAgICAgLmFyZygicnVzdF9pb3MiKQotLSAg ICAgICAgICAgICAgICAuY2hlY2tfc3RhdHVzKCk7Ci0tICAgIH0KLS0KLS0gICAgcHJpbnRsbiEo IlN0YXJ0aW5nIGlPUyBzaW11bGF0b3IiKTsKLS0gICAgLy8gV2UgY2FuJ3QgdW5pbnN0YWxsIHRo ZSBhcHAgKGlmIHByZXNlbnQpIGFzIHRoYXQgd2lsbCBoYW5nIGlmIHRoZQotLSAgICAvLyBzaW11 bGF0b3IgaXNuJ3QgY29tcGxldGVseSBib290ZWQ7IGp1c3QgZXJhc2UgdGhlIHNpbXVsYXRvciBp bnN0ZWFkLgotLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImVy YXNlIikuYXJnKCJydXN0X2lvcyIpLmNoZWNrX3N0YXR1cygpOwotLSAgICBDb21tYW5kOjpuZXco InhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImJvb3QiKS5hcmcoInJ1c3RfaW9zIikuY2hlY2tf c3RhdHVzKCk7Ci0tfQotLQotLS8vIFN0ZXAgdGhyZWU6IEluc3RhbGwgdGhlIGFwcAotLWZuIGlu c3RhbGxfYXBwX3RvX3NpbXVsYXRvcigpIHsKLS0gICAgcHJpbnRsbiEoIkluc3RhbGxpbmcgYXBw IHRvIHNpbXVsYXRvciIpOwotLSAgICBDb21tYW5kOjpuZXcoInhjcnVuIikKLS0gICAgICAgICAg ICAuYXJnKCJzaW1jdGwiKQotLSAgICAgICAgICAgIC5hcmcoImluc3RhbGwiKQotLSAgICAgICAg ICAgIC5hcmcoImJvb3RlZCIpCi0tICAgICAgICAgICAgLmFyZygiaW9zX3NpbXVsYXRvcl9hcHAv IikKLS0gICAgICAgICAgICAuY2hlY2tfc3RhdHVzKCk7Ci0tfQotLQotLS8vIFN0ZXAgZm91cjog UnVuIHRoZSBhcHAKLS1mbiBydW5fYXBwX29uX3NpbXVsYXRvcigpIHsKLS0gICAgcHJpbnRsbiEo IlJ1bm5pbmcgYXBwIik7Ci0tICAgIGxldCBvdXRwdXQgPSB0IShDb21tYW5kOjpuZXcoInhjcnVu IikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAgICAgICAg ICAgICAuYXJnKCJsYXVuY2giKQotLSAgICAgICAgICAgICAgICAgICAgLmFyZygiLS1jb25zb2xl IikKLS0gICAgICAgICAgICAgICAgICAgIC5hcmcoImJvb3RlZCIpCi0tICAgICAgICAgICAgICAg ICAgICAuYXJnKCJjb20ucnVzdC51bml0dGVzdHMiKQotLSAgICAgICAgICAgICAgICAgICAgLm91 dHB1dCgpKTsKLS0KLS0gICAgcHJpbnRsbiEoInN0ZG91dCAtLVxue31cbiIsIFN0cmluZzo6ZnJv bV91dGY4X2xvc3N5KCZvdXRwdXQuc3Rkb3V0KSk7Ci0tICAgIHByaW50bG4hKCJzdGRlcnIgLS1c bnt9XG4iLCBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVycikpOwotLQotLSAg ICBsZXQgc3Rkb3V0ID0gU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpOwot LSAgICBsZXQgZmFpbGVkID0gc3Rkb3V0LmxpbmVzKCkKLS0gICAgICAgIC5maW5kKHxsfCBsLmNv bnRhaW5zKCJGQUlMRUQiKSkKLS0gICAgICAgIC5tYXAofGx8IGwuY29udGFpbnMoIkZBSUxFRCIp KQotLSAgICAgICAgLnVud3JhcF9vcihmYWxzZSk7Ci0tCi0tICAgIGxldCBwYXNzZWQgPSBzdGRv dXQubGluZXMoKQotLSAgICAgICAgLmZpbmQofGx8IGwuY29udGFpbnMoInRlc3QgcmVzdWx0OiBv ayIpKQotLSAgICAgICAgLm1hcCh8bHwgbC5jb250YWlucygidGVzdCByZXN1bHQ6IG9rIikpCi0t ICAgICAgICAudW53cmFwX29yKGZhbHNlKTsKLS0KLS0gICAgcHJpbnRsbiEoIlNodXR0aW5nIGRv d24gc2ltdWxhdG9yIik7Ci0tICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQotLSAgICAgICAgLmFy Zygic2ltY3RsIikKLS0gICAgICAgIC5hcmcoInNodXRkb3duIikKLS0gICAgICAgIC5hcmcoInJ1 c3RfaW9zIikKLS0gICAgICAgIC5jaGVja19zdGF0dXMoKTsKLS0gICAgaWYgIShwYXNzZWQgJiYg IWZhaWxlZCkgewotLSAgICAgICAgcGFuaWMhKCJ0ZXN0cyBkaWRuJ3QgcGFzcyIpOwotLSAgICB9 Ci0tfQotLQotLXRyYWl0IENoZWNrU3RhdHVzIHsKLS0gICAgZm4gY2hlY2tfc3RhdHVzKCZtdXQg c2VsZik7Ci0tfQotLQotLWltcGwgQ2hlY2tTdGF0dXMgZm9yIENvbW1hbmQgewotLSAgICBmbiBj aGVja19zdGF0dXMoJm11dCBzZWxmKSB7Ci0tICAgICAgICBwcmludGxuISgiXHRydW5uaW5nOiB7 Oj99Iiwgc2VsZik7Ci0tICAgICAgICBhc3NlcnQhKHQhKHNlbGYuc3RhdHVzKCkpLnN1Y2Nlc3Mo KSk7Ci0tICAgIH0KLS19Ci0tCi0tZm4gbWFpbigpIHsKLS0gICAgbGV0IGFyZ3M6IFZlYzxTdHJp bmc+ID0gZW52OjphcmdzKCkuY29sbGVjdCgpOwotLSAgICBpZiBhcmdzLmxlbigpICE9IDIgewot LSAgICAgICAgcHJpbnRsbiEoIlVzYWdlOiB7fSA8ZXhlY3V0YWJsZT4iLCBhcmdzWzBdKTsKLS0g ICAgICAgIHByb2Nlc3M6OmV4aXQoLTEpOwotLSAgICB9Ci0tCi0tICAgIGxldCB0ZXN0X2JpbmFy eV9wYXRoID0gUGF0aDo6bmV3KCZhcmdzWzFdKTsKLS0gICAgbGV0IGNyYXRlX25hbWUgPSB0ZXN0 X2JpbmFyeV9wYXRoLmZpbGVfbmFtZSgpLnVud3JhcCgpOwotLQotLSAgICBwYWNrYWdlX2FzX3Np bXVsYXRvcl9hcHAoY3JhdGVfbmFtZS50b19zdHIoKS51bndyYXAoKSwgdGVzdF9iaW5hcnlfcGF0 aCk7Ci0tICAgIHN0YXJ0X3NpbXVsYXRvcigpOwotLSAgICBpbnN0YWxsX2FwcF90b19zaW11bGF0 b3IoKTsKLS0gICAgcnVuX2FwcF9vbl9zaW11bGF0b3IoKTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lk L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJj aDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NyArMCwwIEBACi0tRlJPTSB1 YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUgaTM4NiAmJiBcCi0t ICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5z dGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBjdXJsIFwKLS0gIGNh LWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAotLSAgdW56aXAgXAotLSAgZXhwZWN0IFwKLS0g IG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysrNjppMzg2IFwKLS0gIGxpYnB1bHNlMCBcCi0t ICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09SS0RJUiAvYW5kcm9pZC8KLS1DT1BZIGFuZHJv aWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lEX0FSQ0g9YWFyY2g2NAotLUVOViBQQVRIPSRQ QVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNIL2JpbjovYW5kcm9pZC9zZGsvdG9vbHM6L2Fu ZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCi0tCi0tUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5z dGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3Rh bGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKLS1SVU4gbXYgL3Jvb3QvLmFuZHJvaWQgL3RtcAotLVJV TiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAotLVJVTiBjaG1vZCA3NTUgL2FuZHJvaWQvc2Rr L3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9yL3FlbXUvbGludXgteDg2XzY0LyoKLS0KLS1F TlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAotLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9MSU5V WF9BTkRST0lEX0xJTktFUj1hYXJjaDY0LWxpbnV4LWFuZHJvaWQtZ2NjIFwKLS0gICAgQ0FSR09f VEFSR0VUX0FBUkNINjRfTElOVVhfQU5EUk9JRF9SVU5ORVI9L3RtcC9ydW50ZXN0IFwKLS0gICAg T0JKRFVNUD1hYXJjaDY0LWxpbnV4LWFuZHJvaWQtb2JqZHVtcCBcCi0tICAgIEhPTUU9L3RtcAot LQotLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3RtcC9ydW50ZXN0LnJzCi0tRU5UUllQT0lOVCBb IFwKLS0gICJiYXNoIiwgXAotLSAgIi1jIiwgXAotLSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBj YW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2VlCi0tICAjIGh0dHA6Ly9zdGFja292ZXJmbG93 LmNvbS9hLzQxNzg5MTQ0Ci0tICAiU0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRv ci9lbXVsYXRvciBAYWFyY2g2NCAtbm8td2luZG93ICYgXAotLSAgIHJ1c3RjIC90bXAvcnVudGVz dC5ycyAtbyAvdG1wL3J1bnRlc3QgJiYgXAotLSAgIGV4ZWMgXCIkQFwiIiwgXAotLSAgIi0tIiBc Ci0tXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJj aDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDE0ICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBh cHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVu ZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJjNi1kZXYgXAotLSAg Z2NjLWFhcmNoNjQtbGludXgtZ251IFwKLS0gIGxpYmM2LWRldi1hcm02NC1jcm9zcyBcCi0tICBx ZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9BQVJD SDY0X1VOS05PV05fTElOVVhfR05VX0xJTktFUj1hYXJjaDY0LWxpbnV4LWdudS1nY2MgXAotLSAg ICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtYWFy Y2g2NCAtTCAvdXNyL2FhcmNoNjQtbGludXgtZ251IiBcCi0tICAgIE9CSkRVTVA9YWFyY2g2NC1s aW51eC1nbnUtb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZSBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVh YmkvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1ICswLDAgQEAKLS1GUk9NIHVidW50dTox OC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0 YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJj Ni1kZXYgXAotLSAgbGliYzYtYXJtZWwtY3Jvc3MgXAotLSAgbGliYzYtZGV2LWFybWVsLWNyb3Nz IFwKLS0gIGJpbnV0aWxzLWFybS1saW51eC1nbnVlYWJpIFwKLS0gIGdjYy1hcm0tbGludXgtZ251 ZWFiaSBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxlCi0tRU5WIENBUkdPX1RB UkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaS1n Y2MgXAotLSAgICBDQVJHT19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSV9SVU5ORVI9 InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmkiIFwKLS0gICAgT0JKRFVNUD1hcm0t bGludXgtZ251ZWFiaS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51 eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxl CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBACi0t RlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBjYS1jZXJ0aWZpY2F0 ZXMgXAotLSAgbGliYzYtZGV2IFwKLS0gIGdjYy1hcm0tbGludXgtZ251ZWFiaWhmIFwKLS0gIGxp YmM2LWRldi1hcm1oZi1jcm9zcyBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxl Ci0tRU5WIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfTElOS0VSPWFy bS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJ TlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmlo ZiIgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFu ZHJvaWRlYWJpL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2Nr ZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9E b2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NyAr MCwwIEBACi0tRlJPTSB1YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1 cmUgaTM4NiAmJiBcCi0tICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0 YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0t ICBjdXJsIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAotLSAgdW56aXAgXAot LSAgZXhwZWN0IFwKLS0gIG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysrNjppMzg2IFwKLS0g IGxpYnB1bHNlMCBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09SS0RJUiAvYW5kcm9p ZC8KLS1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lEX0FSQ0g9YXJtCi0t RU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmluOi9hbmRyb2lkL3Nk ay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKLS0KLS1SVU4gc2ggL2FuZHJvaWQv YW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIHNoIC9hbmRyb2lkL2Fu ZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBtdiAvcm9vdC8uYW5kcm9p ZCAvdG1wCi0tUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCi0tUlVOIGNobW9kIDc1NSAv YW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVtdS9saW51eC14ODZf NjQvKgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCi0tICAgIENBUkdPX1RBUkdFVF9B Uk1fTElOVVhfQU5EUk9JREVBQklfTElOS0VSPWFybS1saW51eC1hbmRyb2lkZWFiaS1nY2MgXAot LSAgICBDQVJHT19UQVJHRVRfQVJNX0xJTlVYX0FORFJPSURFQUJJX1JVTk5FUj0vdG1wL3J1bnRl c3QgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1hbmRyb2lkZWFiaS1vYmpkdW1wIFwKLS0gICAg SE9NRT0vdG1wCi0tCi0tQUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1wL3J1bnRlc3QucnMKLS1F TlRSWVBPSU5UIFsgXAotLSAgImJhc2giLCBcCi0tICAiLWMiLCBcCi0tICAjIHNldCBTSEVMTCBz byBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUKLS0gICMgaHR0cDovL3N0 YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkxNDQKLS0gICJTSEVMTD0vYmluL2Rhc2ggL2FuZHJvaWQv c2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBhcm0gLW5vLXdpbmRvdyAmIFwKLS0gICBydXN0YyAvdG1w L3J1bnRlc3QucnMgLW8gL3RtcC9ydW50ZXN0ICYmIFwKLS0gICBleGVjIFwiJEBcIiIsIFwKLS0g ICItLSIgXAotLV0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVl YWJpaGYvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZQkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLUZS T00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAotLSAgY2EtY2VydGlmaWNhdGVz IFwKLS0gIGxpYmM2LWRldiBcCi0tICBnY2MtYXJtLWxpbnV4LWdudWVhYmloZiBcCi0tICBsaWJj Ni1kZXYtYXJtaGYtY3Jvc3MgXAotLSAgcWVtdS11c2VyIFwKLS0gIG1ha2UgXAotLSAgZmlsZQot LUVOViBDQVJHT19UQVJHRVRfQVJNVjdfVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfTElOS0VSPWFy bS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FSTVY3X1VOS05PV05f TElOVVhfR05VRUFCSUhGX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0tbGludXgtZ251ZWFi aWhmIiBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmloZi1vYmpkdW1wCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvaTU4Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tl cmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9j a2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCww IEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBp bnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYy1tdWx0aWxpYiBcCi0t ICBsaWJjNi1kZXYgXAotLSAgZmlsZSBcCi0tICBtYWtlIFwKLS0gIGNhLWNlcnRpZmljYXRlcwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k2ODYt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgt Z251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFw dC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MtbXVsdGls aWIgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBjYS1jZXJ0aWZp Y2F0ZXMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxMyArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS0KLS1SVU4gYXB0LWdldCB1 cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0g ICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAg ICBnY2MtbWlwcy1saW51eC1nbnUgbGliYzYtZGV2LW1pcHMtY3Jvc3MgXAotLSAgICAgICAgcWVt dS1zeXN0ZW0tbWlwcyBcCi0tICAgICAgICBxZW11LXVzZXIgXAotLSAgICAgICAgbWFrZSBcCi0t ICAgICAgICBmaWxlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9NSVBTX1VOS05PV05fTElOVVhfR05V X0xJTktFUj1taXBzLWxpbnV4LWdudS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfTUlQU19VTktO T1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtbWlwcyAtTCAvdXNyL21pcHMtbGludXgtZ251IiBc Ci0tICAgIE9CSkRVTVA9bWlwcy1saW51eC1nbnUtb2JqZHVtcAotXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k b2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFi aTY0L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwICswLDAgQEAKLS1GUk9N IHVidW50dToxOC4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwg LXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11 LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgICAgIGdjYy1taXBzNjQtbGludXgtZ251YWJp NjQgbGliYzYtZGV2LW1pcHM2NC1jcm9zcyBcCi0tICAgICAgICBxZW11LXN5c3RlbS1taXBzNjQg cWVtdS11c2VyCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVB Qkk2NF9MSU5LRVI9bWlwczY0LWxpbnV4LWdudWFiaTY0LWdjYyBcCi0tICAgIENBUkdPX1RBUkdF VF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9SVU5ORVI9InFlbXUtbWlwczY0IC1MIC91 c3IvbWlwczY0LWxpbnV4LWdudWFiaTY0IiBcCi0tICAgIE9CSkRVTVA9bWlwczY0LWxpbnV4LWdu dWFiaTY0LW9iamR1bXAKLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24t bGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZQotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0ZWwtdW5rbm93 bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBz NjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAot LQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxs LXJlY29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlm aWNhdGVzIFwKLS0gICAgICAgIGdjYy1taXBzNjRlbC1saW51eC1nbnVhYmk2NCBsaWJjNi1kZXYt bWlwczY0ZWwtY3Jvc3MgXAotLSAgICAgICAgcWVtdS1zeXN0ZW0tbWlwczY0ZWwKLS0KLS1FTlYg Q0FSR09fVEFSR0VUX01JUFM2NEVMX1VOS05PV05fTElOVVhfR05VQUJJNjRfTElOS0VSPW1pcHM2 NGVsLWxpbnV4LWdudWFiaTY0LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9NSVBTNjRFTF9VTktO T1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5FUj0icWVtdS1taXBzNjRlbCAtTCAvdXNyL21pcHM2NGVs LWxpbnV4LWdudWFiaTY0IiBcCi0tICAgIE9CSkRVTVA9bWlwczY0ZWwtbGludXgtZ251YWJpNjQt b2JqZHVtcAotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVz bC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlw c2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51eC1tdXNsL0RvY2tlcmZp bGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9j a2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjUgKzAs MCBAQAotLUZST00gdWJ1bnR1OjE4LjEwCi0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0g ICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgY2Et Y2VydGlmaWNhdGVzIFwKLS0gICAgZ2NjIFwKLS0gICAgbGliYzYtZGV2IFwKLS0gICAgbWFrZSBc Ci0tICAgIHFlbXUtdXNlciBcCi0tICAgIHFlbXUtc3lzdGVtLW1pcHMgXAotLSAgICBiemlwMiBc Ci0tICAgIGN1cmwgXAotLSAgICBmaWxlCi0tCi0tUlVOIG1rZGlyIC90b29sY2hhaW4KLS0KLS0j IE5vdGUgdGhhdCB0aGlzIG9yaWdpbmFsbHkgY2FtZSBmcm9tOgotLSMgaHR0cHM6Ly9kb3dubG9h ZHMub3BlbndydC5vcmcvc25hcHNob3RzL3RydW5rL21hbHRhL2dlbmVyaWMvT3BlbldydC1Ub29s Y2hhaW4tbWFsdGEtbGVfZ2NjLTUuMy4wX211c2wtMS4xLjE1LkxpbnV4LXg4Nl82NC50YXIuYnoy Ci0tUlVOIGN1cmwgLUwgaHR0cHM6Ly9jaS1taXJyb3JzLnJ1c3QtbGFuZy5vcmcvbGliYy9PcGVu V3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9nY2MtNS4zLjBfbXVzbC0xLjEuMTUuTGludXgteDg2XzY0 LnRhci5iejIgfCBcCi0tICAgICAgdGFyIHhqZiAtIC1DIC90b29sY2hhaW4gLS1zdHJpcC1jb21w b25lbnRzPTIKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW46L3Rvb2xjaGFpbi9iaW4gXAot LSAgICBDQ19taXBzZWxfdW5rbm93bl9saW51eF9tdXNsPW1pcHNlbC1vcGVud3J0LWxpbnV4LWdj YyBcCi0tICAgIENBUkdPX1RBUkdFVF9NSVBTRUxfVU5LTk9XTl9MSU5VWF9NVVNMX0xJTktFUj1t aXBzZWwtb3BlbndydC1saW51eC1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfTUlQU0VMX1VOS05P V05fTElOVVhfTVVTTF9SVU5ORVI9InFlbXUtbWlwc2VsIC1MIC90b29sY2hhaW4iCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjLXVua25vd24tbGludXgt Z251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMTMgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBk YXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAg ICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAg Z2NjLXBvd2VycGMtbGludXgtZ251IGxpYmM2LWRldi1wb3dlcnBjLWNyb3NzIFwKLS0gICAgICAg IHFlbXUtc3lzdGVtLXBwYyBcCi0tICAgICAgICBtYWtlIFwKLS0gICAgICAgIGZpbGUKLS0KLS1F TlYgQ0FSR09fVEFSR0VUX1BPV0VSUENfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGMt bGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDX1VOS05PV05fTElOVVhf R05VX1JVTk5FUj0icWVtdS1wcGMgLWNwdSBWZ2VyIC1MIC91c3IvcG93ZXJwYy1saW51eC1nbnUi IFwKLS0gICAgQ0M9cG93ZXJwYy1saW51eC1nbnUtZ2NjIFwKLS0gICAgT0JKRFVNUD1wb3dlcnBj LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNyArMCwwIEBACi0tRlJP TSB1YnVudHU6MjIuMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgZ2NjIFwKLS0gICAgY2EtY2VydGlm aWNhdGVzIFwKLS0gICAgbGliYzYtZGV2IFwKLS0gICAgZ2NjLXBvd2VycGM2NC1saW51eC1nbnUg XAotLSAgICBsaWJjNi1kZXYtcHBjNjQtY3Jvc3MgXAotLSAgICBxZW11LXVzZXIgIFwKLS0gICAg cWVtdS1zeXN0ZW0tcHBjIFwKLS0gICAgbWFrZSBcCi0tICAgIGZpbGUgCi0tCi0tRU5WIENBUkdP X1RBUkdFVF9QT1dFUlBDNjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGM2NC1saW51 eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NF9VTktOT1dOX0xJTlVYX0dO VV9SVU5ORVI9InFlbXUtcHBjNjQgLUwgL3Vzci9wb3dlcnBjNjQtbGludXgtZ251IiBcCi0tICAg IENDPXBvd2VycGM2NC1saW51eC1nbnUtZ2NjIFwKLS0gICAgT0JKRFVNUD1wb3dlcnBjNjQtbGlu dXgtZ251LW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmls ZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEgKzAsMCBAQAot LUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5z dGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2 IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAgZ2NjLXBvd2VycGM2NGxlLWxp bnV4LWdudSBsaWJjNi1kZXYtcHBjNjRlbC1jcm9zcyBcCi0tICAgICAgICBxZW11LXN5c3RlbS1w cGMgZmlsZSBtYWtlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJ TlVYX0dOVV9MSU5LRVI9cG93ZXJwYzY0bGUtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RB UkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtcHBjNjRsZSAt TCAvdXNyL3Bvd2VycGM2NGxlLWxpbnV4LWdudSIgXAotLSAgICBDQz1wb3dlcnBjNjRsZS1saW51 eC1nbnUtZ2NjIFwKLS0gICAgT0JKRFVNUD1wb3dlcnBjNjRsZS1saW51eC1nbnUtb2JqZHVtcAot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4 LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4 LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxp bnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwyMCArMCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRh dGUgJiYgXAotLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAotLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICBjdXJsIFwKLS0gICAgY21ha2UgXAotLSAg ICBnY2MgXAotLSAgICBsaWJjNi1kZXYgXAotLSAgICBnKystczM5MHgtbGludXgtZ251IFwKLS0g ICAgbGliYzYtZGV2LXMzOTB4LWNyb3NzIFwKLS0gICAgcWVtdS11c2VyIFwKLS0gICAgbWFrZSBc Ci0tICAgIGZpbGUKLS0KLS1FTlYgQ0FSR09fVEFSR0VUX1MzOTBYX1VOS05PV05fTElOVVhfR05V X0xJTktFUj1zMzkweC1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX1MzOTBYX1VO S05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1zMzkweCAtTCAvdXNyL3MzOTB4LWxpbnV4LWdu dSIgXAotLSAgICBDQ19zMzkweF91bmtub3duX2xpbnV4X2dudT1zMzkweC1saW51eC1nbnUtZ2Nj IFwKLS0gICAgQ1hYX3MzOTB4X3Vua25vd25fbGludXhfZ251PXMzOTB4LWxpbnV4LWdudS1nKysg XAotLSAgICBPQkpEVU1QPXMzOTB4LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4 LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv c3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tl cmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51eC1nbnUv RG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTgg KzAsMCBAQAotLUZST00gZGViaWFuOmJvb2t3b3JtCi0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYm IGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgICAgICBj dXJsIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2IFwKLS0gICAgICAg IGdjYy1zcGFyYzY0LWxpbnV4LWdudSBsaWJjNi1kZXYtc3BhcmM2NC1jcm9zcyBcCi0tICAgICAg ICBxZW11LXN5c3RlbS1zcGFyYzY0IG9wZW5iaW9zLXNwYXJjIHNlYWJpb3MgaXB4ZS1xZW11IFwK LS0gICAgICAgIHA3emlwLWZ1bGwgY3BpbwotLQotLUNPUFkgbGludXgtc3BhcmM2NC5zaCAvCi0t UlVOIGJhc2ggL2xpbnV4LXNwYXJjNjQuc2gKLS0KLS1DT1BZIHRlc3QtcnVubmVyLWxpbnV4IC8K LS0KLS1FTlYgQ0FSR09fVEFSR0VUX1NQQVJDNjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXNw YXJjNjQtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9TUEFSQzY0X1VOS05PV05f TElOVVhfR05VX1JVTk5FUj0iL3Rlc3QtcnVubmVyLWxpbnV4IHNwYXJjNjQiIFwKLS0gICAgQ0Nf c3BhcmM2NF91bmtub3duX2xpbnV4X2dudT1zcGFyYzY0LWxpbnV4LWdudS1nY2MgXAotLSAgICBQ QVRIPSRQQVRIOi9ydXN0L2JpbgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51 eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2Nr ZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NyArMCww IEBACi0tRlJPTSB1YnVudHU6MTYuMDQKLS0KLS1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUg aTM4NiAmJiBcCi0tICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBj dXJsIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBweXRob24gXAotLSAgdW56aXAgXAotLSAg ZXhwZWN0IFwKLS0gIG9wZW5qZGstOS1qcmUgXAotLSAgbGlic3RkYysrNjppMzg2IFwKLS0gIGxp YnB1bHNlMCBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2Ci0tCi0tV09SS0RJUiAvYW5kcm9pZC8K LS1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwotLQotLUVOViBBTkRST0lEX0FSQ0g9YXJtCi0tRU5W IFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmluOi9hbmRyb2lkL3Nkay90 b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKLS0KLS1SVU4gc2ggL2FuZHJvaWQvYW5k cm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIHNoIC9hbmRyb2lkL2FuZHJv aWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBtdiAvcm9vdC8uYW5kcm9pZCAv dG1wCi0tUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCi0tUlVOIGNobW9kIDc1NSAvYW5k cm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVtdS9saW51eC14ODZfNjQv KgotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCi0tICAgIENBUkdPX1RBUkdFVF9USFVN QlY3TkVPTl9MSU5VWF9BTkRST0lERUFCSV9MSU5LRVI9YXJtLWxpbnV4LWFuZHJvaWRlYWJpLWdj YyBcCi0tICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9MSU5VWF9BTkRST0lERUFCSV9SVU5O RVI9L3RtcC9ydW50ZXN0IFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtYW5kcm9pZGVhYmktb2Jq ZHVtcCBcCi0tICAgIEhPTUU9L3RtcAotLQotLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3RtcC9y dW50ZXN0LnJzCi0tRU5UUllQT0lOVCBbIFwKLS0gICJiYXNoIiwgXAotLSAgIi1jIiwgXAotLSAg IyBzZXQgU0hFTEwgc28gYW5kcm9pZCBjYW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2VlCi0t ICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzg5MTQ0Ci0tICAiU0hFTEw9L2Jpbi9k YXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRvci9lbXVsYXRvciBAYXJtIC1uby13aW5kb3cgJiBcCi0t ICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVzdCAmJiBcCi0tICAgZXhlYyBc IiRAXCIiLCBcCi0tICAiLS0iIFwKLS1dCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYv RG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1i djduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgt Z251ZWFiaWhmL0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9u LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJV TiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29t bWVuZHMgXAotLSAgZ2NjIFwKLS0gIGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJjNi1kZXYgXAot LSAgZ2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAotLSAgbGliYzYtZGV2LWFybWhmLWNyb3NzIFwK LS0gIHFlbXUtdXNlciBcCi0tICBtYWtlIFwKLS0gIGZpbGUKLS1FTlYgQ0FSR09fVEFSR0VUX1RI VU1CVjdORU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFi aWhmLWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9VTktOT1dOX0xJTlVYX0dO VUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIgXAot LSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25v d24vRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dh c20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM5ICswLDAgQEAKLS1G Uk9NIHVidW50dToyMi4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAteSAmJiBhcHQtZ2V0IGlu c3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwK LS0gIGNsYW5nIFwKLS0gIGNtYWtlIFwKLS0gIGN1cmwgXAotLSAgZ2l0IFwKLS0gIGxpYmM2LWRl diBcCi0tICBtYWtlIFwKLS0gIG5pbmphLWJ1aWxkIFwKLS0gIHB5dGhvbi1pcy1weXRob24zIFwK LS0gIHh6LXV0aWxzCi0tCi0tIyBJbnN0YWxsIGB3YXNtMndhdGAKLS1SVU4gZ2l0IGNsb25lIC0t cmVjdXJzaXZlIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS93YWJ0Ci0tUlVOIG1ha2Ug LUMgd2FidCAtaiQobnByb2MpCi0tRU5WIFBBVEg9JFBBVEg6L3dhYnQvYmluCi0tCi0tIyBJbnN0 YWxsIGB3YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXJgCi0tUlVOIGN1cmwgLUwgaHR0cHM6Ly9naXRo dWIuY29tL3J1c3R3YXNtL3dhc20tYmluZGdlbi9yZWxlYXNlcy9kb3dubG9hZC8wLjIuODcvd2Fz bS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5rbm93bi1saW51eC1tdXNsLnRhci5neiBcCi0tICB8 IHRhciB4emYgLQotLSMgS2VlcCBpbiBzeW5jIHdpdGggdGhlIHZlcnNpb24gb24gQ2FyZ28udG9t bC4KLS1FTlYgUEFUSD0kUEFUSDovd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5rbm93bi1s aW51eC1tdXNsCi0tRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5LTk9XTl9VTktOT1dOX1JVTk5F Uj13YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXIKLS0KLS0jIEluc3RhbGwgYG5vZGVgCi0tUlVOIGN1 cmwgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvdjE0LjE2LjAvbm9kZS12MTQuMTYuMC1saW51eC14 NjQudGFyLnh6IHwgdGFyIHhKZiAtCi0tRU5WIFBBVEg9JFBBVEg6L25vZGUtdjE0LjE2LjAtbGlu dXgteDY0L2JpbgotLQotLSMgV2UgdXNlIGEgc2hpbSBsaW5rZXIgdGhhdCByZW1vdmVzIGAtLXN0 cmlwLWRlYnVnYCB3aGVuIHBhc3NlZCB0byBMTEQuIFdoaWxlCi0tIyB0aGlzIHR5cGljYWxseSBy ZXN1bHRzIGluIGludmFsaWQgZGVidWcgaW5mb3JtYXRpb24gaW4gcmVsZWFzZSBtb2RlIGl0IGRv ZXNuJ3QKLS0jIHJlc3VsdCBpbiBhbiBpbnZhbGlkIG5hbWVzIHNlY3Rpb24gd2hpY2ggaXMgd2hh dCB3ZSdyZSBpbnRlcmVzdGVkIGluLgotLUNPUFkgbGxkLXNoaW0ucnMgLwotLUVOViBDQVJHT19U QVJHRVRfV0FTTTMyX1VOS05PV05fVU5LTk9XTl9MSU5LRVI9L3RtcC9sbGQtc2hpbQotLQotLSMg UnVzdGMgaXNuJ3QgYXZhaWxhYmxlIHVudGlsIHRoaXMgY29udGFpbmVyIHN0YXJ0cywgc28gZGVm ZXIgY29tcGlsYXRpb24gb2YgdGhlCi0tIyBzaGltLgotLUVOVFJZUE9JTlQgL3J1c3QvYmluL3J1 c3RjIC9sbGQtc2hpbS5ycyAtbyAvdG1wL2xsZC1zaGltICYmIGV4ZWMgYmFzaCAiJEAiCi1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LWxp bnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZp bGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZp bGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMxICswLDAgQEAK LS1GUk9NIHVidW50dToyMC4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBcCi0tICAgIGFw dC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBjYS1jZXJ0aWZp Y2F0ZXMgXAotLSAgY3VybCBcCi0tICBnY2MgXAotLSAgbGliYy1kZXYgXAotLSAgcHl0aG9uIFwK LS0gIHVuemlwIFwKLS0gIGZpbGUgXAotLSAgbWFrZQotLQotLVdPUktESVIgL2FuZHJvaWQvCi0t RU5WIEFORFJPSURfQVJDSD14ODZfNjQKLS1DT1BZIGFuZHJvaWQtaW5zdGFsbC1uZGsuc2ggL2Fu ZHJvaWQvCi0tUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gKLS0KLS1FTlYg U1REQVJDSF9BU1NFUlRfSU5TVFJfTElNSVQ9MzAKLS0KLS0jIFdlIGRvIG5vdCBydW4geDg2XzY0 LWxpbnV4LWFuZHJvaWQgdGVzdHMgb24gYW4gYW5kcm9pZCBlbXVsYXRvci4KLS0jIFNlZSBjaS9h bmRyb2lkLXN5c2ltYWdlLnNoIGZvciBpbmZvcm1hdGlvbnMgYWJvdXQgaG93IHRlc3RzIGFyZSBy dW4uCi0tQ09QWSBhbmRyb2lkLXN5c2ltYWdlLnNoIC9hbmRyb2lkLwotLVJVTiBiYXNoIC9hbmRy b2lkL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggeDg2XzY0IHg4Nl82NC0yNF9yMDcuemlwCi0tCi0tRU5W IFBBVEg9JFBBVEg6L3J1c3QvYmluOi9hbmRyb2lkL25kay90b29sY2hhaW5zL2xsdm0vcHJlYnVp bHQvbGludXgteDg2XzY0L2JpbiBcCi0tICAgIENBUkdPX1RBUkdFVF9YODZfNjRfTElOVVhfQU5E Uk9JRF9MSU5LRVI9eDg2XzY0LWxpbnV4LWFuZHJvaWQyMS1jbGFuZyBcCi0tICAgIENDX3g4Nl82 NF9saW51eF9hbmRyb2lkPXg4Nl82NC1saW51eC1hbmRyb2lkMjEtY2xhbmcgXAotLSAgICBDWFhf eDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQyMS1jbGFuZysrIFwKLS0g ICAgT0JKRFVNUD1sbHZtLW9iamR1bXAgXAotLSAgICBIT01FPS90bXAKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwICsw LDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0 IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGxpYmM2 LWRldiBcCi0tICBmaWxlIFwKLS0gIG1ha2UgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIGNt YWtlIFwKLS0gIGxpYmNsYW5nLWRldiBcCi0tICBjbGFuZwotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1l bXVsYXRlZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZpbGUKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4 LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQt dW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0t UlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVj b21tZW5kcyBcCi0tICBnY2MgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUgXAotLSAgbWFrZSBc Ci0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgd2dldCBcCi0tICBiemlwMiBcCi0tICBjbWFrZSBc Ci0tICBsaWJjbGFuZy1kZXYgXAotLSAgY2xhbmcKLS0KLS1SVU4gd2dldCBodHRwczovL2dpdGh1 Yi5jb20vZ256bGJnL2ludGVsX3NkZS9yYXcvbWFzdGVyL3NkZS1leHRlcm5hbC04LjE2LjAtMjAx OC0wMS0zMC1saW4udGFyLmJ6MgotLVJVTiB0YXIgLXhqZiBzZGUtZXh0ZXJuYWwtOC4xNi4wLTIw MTgtMDEtMzAtbGluLnRhci5iejIKLS1FTlYgQ0FSR09fVEFSR0VUX1g4Nl82NF9VTktOT1dOX0xJ TlVYX0dOVV9SVU5ORVI9Ii9zZGUtZXh0ZXJuYWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluL3NkZTY0 IC0tIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNo IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb3guc2gKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNoCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RveC5zaAkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjcgKzAsMCBAQAotLSMh L2Jpbi9zaAotLQotLXNldCAtZXgKLS0KLS1ybSAtcmYgdGFyZ2V0L2RvYwotLW1rZGlyIC1wIHRh cmdldC9kb2MKLS0KLS0jIEJ1aWxkIEFQSSBkb2N1bWVudGF0aW9uCi0tY2FyZ28gZG9jIC0tZmVh dHVyZXM9aW50b19iaXRzCi0tCi0tIyBCdWlsZCBQZXJmb3JtYW5jZSBHdWlkZQotLSMgRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9tZEJvb2svaXNzdWVzLzc4MAot LSMgbWRib29rIGJ1aWxkIHBlcmYtZ3VpZGUgLWQgdGFyZ2V0L2RvYy9wZXJmLWd1aWRlCi0tY2Qg cGVyZi1ndWlkZQotLW1kYm9vayBidWlsZAotLWNkIC0KLS1jcCAtciBwZXJmLWd1aWRlL2Jvb2sg dGFyZ2V0L2RvYy9wZXJmLWd1aWRlCi0tCi0tIyBJZiB3ZSdyZSBvbiB0cmF2aXMsIG5vdCBhIFBS LCBhbmQgb24gdGhlIHJpZ2h0IGJyYW5jaCwgcHVibGlzaCEKLS1pZiBbICIkVFJBVklTX1BVTExf UkVRVUVTVCIgPSAiZmFsc2UiIF0gJiYgWyAiJFRSQVZJU19CUkFOQ0giID0gIm1hc3RlciIgXTsg dGhlbgotLSAgcHl0aG9uMyAtdlYKLS0gIHBpcCAtdlYKLS0gIHB5dGhvbjMuOSAtdlYKLS0gIHBp cCBpbnN0YWxsIGdocF9pbXBvcnQgLS11c2VyCi0tICBnaHAtaW1wb3J0IC1uIHRhcmdldC9kb2MK LS0gIGdpdCBwdXNoIC1xZiBodHRwczovLyR7R0hfUEFHRVN9QGdpdGh1Yi5jb20vJHtUUkFWSVNf UkVQT19TTFVHfS5naXQgZ2gtcGFnZXMKLS1maQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2xpbnV4LXMzOTB4LnNoCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOCArMCwwIEBACi0tc2V0 IC1leAotLQotLW1rZGlyIC1tIDc3NyAvcWVtdQotLWNkIC9xZW11Ci0tCi0tY3VybCAtTE8gaHR0 cHM6Ly9naXRodWIuY29tL3FlbXUvcWVtdS9yYXcvbWFzdGVyL3BjLWJpb3MvczM5MC1jY3cuaW1n Ci0tY3VybCAtTE8gaHR0cDovL2Z0cC5kZWJpYW4ub3JnL2RlYmlhbi9kaXN0cy90ZXN0aW5nL21h aW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcwODI4L2ltYWdlcy9nZW5lcmljL2tlcm5lbC5kZWJpYW4K LS1jdXJsIC1MTyBodHRwOi8vZnRwLmRlYmlhbi5vcmcvZGViaWFuL2Rpc3RzL3Rlc3RpbmcvbWFp bi9pbnN0YWxsZXItczM5MHgvMjAxNzA4MjgvaW1hZ2VzL2dlbmVyaWMvaW5pdHJkLmRlYmlhbgot LQotLW12IGtlcm5lbC5kZWJpYW4ga2VybmVsCi0tbXYgaW5pdHJkLmRlYmlhbiBpbml0cmQuZ3oK LS0KLS1ta2RpciBpbml0Ci0tY2QgaW5pdAotLWd1bnppcCAtYyAuLi9pbml0cmQuZ3ogfCBjcGlv IC1pZAotLXJtIC4uL2luaXRyZC5negotLWNwIC91c3IvczM5MHgtbGludXgtZ251L2xpYi9saWJn Y2Nfcy5zby4xIHVzci9saWIvCi0tY2htb2QgYSt3IC4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2ggYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvbGludXgtc3BhcmM2NC5zaAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1z cGFyYzY0LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNyAr MCwwIEBACi0tc2V0IC1leAotLQotLW1rZGlyIC1tIDc3NyAvcWVtdQotLWNkIC9xZW11Ci0tCi0t Y3VybCAtTE8gaHR0cHM6Ly9jZGltYWdlLmRlYmlhbi5vcmcvY2RpbWFnZS9wb3J0cy85LjAvc3Bh cmM2NC9pc28tY2QvZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28KLS03eiBlIGRlYmlh bi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvIGJvb3QvaW5pdHJkLmd6Ci0tN3ogZSBkZWJpYW4t OS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbyBib290L3NwYXJjNjQKLS1tdiBzcGFyYzY0IGtlcm5l bAotLXJtIGRlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvCi0tCi0tbWtkaXIgaW5pdAot LWNkIGluaXQKLS1ndW56aXAgLWMgLi4vaW5pdHJkLmd6IHwgY3BpbyAtaWQKLS1ybSAuLi9pbml0 cmQuZ3oKLS1jcCAvdXNyL3NwYXJjNjQtbGludXgtZ251L2xpYi9saWJnY2Nfcy5zby4xIHVzci9s aWIvCi0tY2htb2QgYSt3IC4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2xsZC1zaGltLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQt c2hpbS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQtc2hpbS5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQtc2hpbS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTEgKzAsMCBAQAotLXVzZSBzdGQ6Om9zOjp1bml4OjpwcmVsdWRl OjoqOwotLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7Ci0tdXNlIHN0ZDo6ZW52OwotLQotLWZu IG1haW4oKSB7Ci0tICAgIGxldCBhcmdzID0gZW52OjphcmdzKCkKLS0gICAgICAgIC5za2lwKDEp Ci0tICAgICAgICAuZmlsdGVyKHxzfCBzICE9ICItLXN0cmlwLWRlYnVnIikKLS0gICAgICAgIC5j b2xsZWN0Ojo8VmVjPF8+PigpOwotLSAgICBwYW5pYyEoImZhaWxlZCB0byBleGVjOiB7fSIsIENv bW1hbmQ6Om5ldygicnVzdC1sbGQiKS5hcmdzKCZhcmdzKS5leGVjKCkpOwotLX0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9saW5lX3dpZHRoLnNoIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaAotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaAkyMDI1LTA5 LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMTcgKzAsMCBAQAotLSMhL3Vzci9iaW4vZW52IHNoCi0tCi0tc2V0IC14 Ci0tCi0tZXhwb3J0IHN1Y2Nlc3M9dHJ1ZQotLQotLWZpbmQgLiAtaW5hbWUgJyoucnMnIHwgd2hp bGUgcmVhZCAtciBmaWxlOyBkbwotLSAgICByZXN1bHQ9JChncmVwICcuXHs3OVx9JyAiJHtmaWxl fSIgfCBncmVwIC0taW52ZXJ0ICdodHRwJykKLS0gICAgaWYgWyAiJHtyZXN1bHR9IiA9ICIiIF0K LS0gICAgdGhlbgotLSAgICAgICAgOgotLSAgICBlbHNlCi0tICAgICAgICBlY2hvICJmaWxlIFwi JHtmaWxlfVwiOiAkcmVzdWx0IgotLSAgICAgICAgZXhpdCAxCi0tICAgIGZpCi0tZG9uZQotLQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5z aCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5zaAotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoCTIwMjUtMDktMDcg MTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL3J1bi1kb2NrZXIuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDM4ICswLDAgQEAKLS0jIFNtYWxsIHNjcmlwdCB0byBydW4gdGVzdHMgZm9yIGEgdGFy Z2V0IChvciBhbGwgdGFyZ2V0cykgaW5zaWRlIGFsbCB0aGUKLS0jIHJlc3BlY3RpdmUgZG9ja2Vy IGltYWdlcy4KLS0KLS1zZXQgLWV4Ci0tCi0tcnVuKCkgewotLSAgICBlY2hvICJCdWlsZGluZyBk b2NrZXIgY29udGFpbmVyIGZvciBUQVJHRVQ9JHtUQVJHRVR9IFJVU1RGTEFHUz0ke1JVU1RGTEFH U30iCi0tICAgIGRvY2tlciBidWlsZCAtdCBwYWNrZWRfc2ltZCAtZiBjaS9kb2NrZXIvJHtUQVJH RVR9L0RvY2tlcmZpbGUgY2kvCi0tICAgIG1rZGlyIC1wIHRhcmdldAotLSAgICB0YXJnZXQ9JChl Y2hvICIke1RBUkdFVH0iIHwgc2VkICdzLy1lbXVsYXRlZC8vJykKLS0gICAgZWNobyAiUnVubmlu ZyBkb2NrZXIiCi0tICAgIGRvY2tlciBydW4gXAotLSAgICAgIC0tdXNlciBgaWQgLXVgOmBpZCAt Z2AgXAotLSAgICAgIC0tcm0gXAotLSAgICAgIC0taW5pdCBcCi0tICAgICAgLS12b2x1bWUgJEhP TUUvLmNhcmdvOi9jYXJnbyBcCi0tICAgICAgLS1lbnYgQ0FSR09fSE9NRT0vY2FyZ28gXAotLSAg ICAgIC0tdm9sdW1lIGBydXN0YyAtLXByaW50IHN5c3Jvb3RgOi9ydXN0OnJvIFwKLS0gICAgICAt LWVudiBUQVJHRVQ9JHRhcmdldCBcCi0tICAgICAgLS1lbnYgTk9SVU4gXAotLSAgICAgIC0tZW52 IE5PVkVSSUZZIFwKLS0gICAgICAtLWVudiBSVVNURkxBR1MgXAotLSAgICAgIC0tdm9sdW1lIGBw d2RgOi9jaGVja291dDpybyBcCi0tICAgICAgLS12b2x1bWUgYHB3ZGAvdGFyZ2V0Oi9jaGVja291 dC90YXJnZXQgXAotLSAgICAgIC0td29ya2RpciAvY2hlY2tvdXQgXAotLSAgICAgIC0tcHJpdmls ZWdlZCBcCi0tICAgICAgcGFja2VkX3NpbWQgXAotLSAgICAgIGJhc2ggXAotLSAgICAgIC1jICdQ QVRIPSRQQVRIOi9ydXN0L2JpbiBleGVjIGNpL3J1bi5zaCcKLS19Ci0tCi0taWYgWyAteiAiJHtU QVJHRVR9IiBdOyB0aGVuCi0tICBmb3IgZCBpbiBgbHMgY2kvZG9ja2VyL2A7IGRvCi0tICAgIHJ1 biAkZAotLSAgZG9uZQotLWVsc2UKLS0gIHJ1biAke1RBUkdFVH0KLS1maQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNoIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9ydW4uc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvcnVuLnNoCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTkgKzAsMCBAQAotLSMhL3Vzci9iaW4vZW52IGJhc2gK LS0KLS1zZXQgLWV4Ci0tCi0tOiAke1RBUkdFVD8iVGhlIFRBUkdFVCBlbnZpcm9ubWVudCB2YXJp YWJsZSBtdXN0IGJlIHNldC4ifQotLQotLSMgVGVzdHMgYXJlIGFsbCBzdXBlciBmYXN0IGFueXdh eSwgYW5kIHRoZXkgZmF1bHQgb2Z0ZW4gZW5vdWdoIG9uIHRyYXZpcyB0aGF0Ci0tIyBoYXZpbmcg b25seSBvbmUgdGhyZWFkIGluY3JlYXNlcyBkZWJ1Z2dhYmlsaXR5IHRvIGJlIHdvcnRoIGl0Lgot LSNleHBvcnQgUlVTVF9URVNUX1RIUkVBRFM9MQotLSNleHBvcnQgUlVTVF9CQUNLVFJBQ0U9ZnVs bAotLSNleHBvcnQgUlVTVF9URVNUX05PQ0FQVFVSRT0xCi0tCi0tIyBTb21lIGFwcHZleW9yIGJ1 aWxkcyBydW4gb3V0LW9mLW1lbW9yeTsgdGhpcyBhdHRlbXB0cyB0byBtaXRpZ2F0ZSB0aGF0Ogot LSMgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8zOQotLSMgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1DIGNvZGVnZW4tdW5pdHM9 MSIKLS0jIGV4cG9ydCBDQVJHT19CVUlMRF9KT0JTPTEKLS0KLS1leHBvcnQgQ0FSR09fU1VCQ01E PXRlc3QKLS1pZiBbWyAiJHtOT1JVTn0iID09ICIxIiBdXTsgdGhlbgotLSAgICBleHBvcnQgQ0FS R09fU1VCQ01EPWJ1aWxkCi0tZmkKLS0KLS1pZiBbWyAke1RBUkdFVH0gPT0gIng4Nl82NC1hcHBs ZS1pb3MiIF1dIHx8IFtbICR7VEFSR0VUfSA9PSAiaTM4Ni1hcHBsZS1pb3MiIF1dOyB0aGVuCi0t ICAgIGV4cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAtQ2xpbmstYXJnPS1taW9zLXNpbXVs YXRvci12ZXJzaW9uLW1pbj03LjAiCi0tICAgIHJ1c3RjIC4vY2kvZGVwbG95X2FuZF9ydW5fb25f aW9zX3NpbXVsYXRvci5ycyAtbyAkSE9NRS9ydW50ZXN0Ci0tICAgIGV4cG9ydCBDQVJHT19UQVJH RVRfWDg2XzY0X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVudGVzdAotLSAgICBleHBvcnQgQ0FS R09fVEFSR0VUX0kzODZfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50ZXN0Ci0tZmkKLS0KLS0j IFRoZSBzb3VyY2UgZGlyZWN0b3J5IGlzIHJlYWQtb25seS4gTmVlZCB0byBjb3B5IGludGVybmFs IGNyYXRlcyB0byB0aGUgdGFyZ2V0Ci0tIyBkaXJlY3RvcnkgZm9yIHRoZWlyIENhcmdvLmxvY2sg dG8gYmUgcHJvcGVybHkgd3JpdHRlbi4KLS1ta2RpciB0YXJnZXQgfHwgdHJ1ZQotLQotLXJ1c3Rj IC0tdmVyc2lvbgotLWNhcmdvIC0tdmVyc2lvbgotLWVjaG8gIlRBUkdFVD0ke1RBUkdFVH0iCi0t ZWNobyAiSE9TVD0ke0hPU1R9IgotLWVjaG8gIlJVU1RGTEFHUz0ke1JVU1RGTEFHU30iCi0tZWNo byAiTk9SVU49JHtOT1JVTn0iCi0tZWNobyAiTk9WRVJJRlk9JHtOT1ZFUklGWX0iCi0tZWNobyAi Q0FSR09fU1VCQ01EPSR7Q0FSR09fU1VCQ01EfSIKLS1lY2hvICJDQVJHT19CVUlMRF9KT0JTPSR7 Q0FSR09fQlVJTERfSk9CU30iCi0tZWNobyAiQ0FSR09fSU5DUkVNRU5UQUw9JHtDQVJHT19JTkNS RU1FTlRBTH0iCi0tZWNobyAiUlVTVF9URVNUX1RIUkVBRFM9JHtSVVNUX1RFU1RfVEhSRUFEU30i Ci0tZWNobyAiUlVTVF9CQUNLVFJBQ0U9JHtSVVNUX0JBQ0tUUkFDRX0iCi0tZWNobyAiUlVTVF9U RVNUX05PQ0FQVFVSRT0ke1JVU1RfVEVTVF9OT0NBUFRVUkV9IgotLQotLWNhcmdvX3Rlc3QoKSB7 Ci0tICAgIGNtZD0iY2FyZ28gJHtDQVJHT19TVUJDTUR9IC0tdmVyYm9zZSAtLXRhcmdldD0ke1RB UkdFVH0gJHtAfSIKLS0gICAgaWYgWyAiJHtOT1JVTn0iICE9ICIxIiBdCi0tICAgIHRoZW4KLS0g ICAgICAgIGlmIFsgIiRUQVJHRVQiICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdCi0tICAg ICAgICB0aGVuCi0tICAgICAgICAgICAgY21kPSIkY21kIC0tIC0tcXVpZXQiCi0tICAgICAgICBm aQotLSAgICBmaQotLSAgICBta2RpciB0YXJnZXQgfHwgdHJ1ZQotLSAgICAke2NtZH0gMj4mMSB8 IHRlZSA+IHRhcmdldC9vdXRwdXQKLS0gICAgaWYgW1sgJHtQSVBFU1RBVFVTWzBdfSAhPSAwIF1d OyB0aGVuCi0tICAgICAgICBjYXQgdGFyZ2V0L291dHB1dAotLSAgICAgICAgcmV0dXJuIDEKLS0g ICAgZmkKLS19Ci0tCi0tY2FyZ29fdGVzdF9pbXBsKCkgewotLSAgICBPUklHSU5BTF9SVVNURkxB R1M9JHtSVVNURkxBR1N9Ci0tICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0t Y2ZnIHRlc3RfdjE2ICAtLWNmZyB0ZXN0X3YzMiAtLWNmZyB0ZXN0X3Y2NCIgY2FyZ29fdGVzdCAk e0B9Ci0tICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRlc3RfdjEy OCAtLWNmZyB0ZXN0X3YyNTYiIGNhcmdvX3Rlc3QgJHtAfQotLSAgICBSVVNURkxBR1M9IiR7T1JJ R0lOQUxfUlVTVEZMQUdTfSAtLWNmZyB0ZXN0X3Y1MTIiIGNhcmdvX3Rlc3QgJHtAfQotLSAgICBS VVNURkxBR1M9JHtPUklHSU5BTF9SVVNURkxBR1N9Ci0tfQotLQotLSMgRGVidWcgcnVuOgotLWlm IFtbICIke1RBUkdFVH0iICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdXTsgdGhlbgotLSAg ICMgUnVuIHdhc20zMi11bmtub3duLXVua25vd24gaW4gcmVsZWFzZSBtb2RlIG9ubHkKLS0gICBj YXJnb190ZXN0X2ltcGwKLS1maQotLQotLWlmIFtbICIke1RBUkdFVH0iID09ICJ4ODZfNjQtdW5r bm93bi1saW51eC1nbnUiIF1dIHx8IFtbICIke1RBUkdFVH0iID09ICJ4ODZfNjQtcGMtd2luZG93 cy1tc3ZjIiBdXTsgdGhlbgotLSAgICAjIHVzZSBzbGVlZiBvbiBsaW51eCBhbmQgd2luZG93cyB4 ODZfNjQgYnVpbGRzCi0tICAgICMgRklYTUU6IFVzZSBgY29yZV9hcmNoLHNsZWVmLXN5c2AgZmVh dHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCi0tICAgIGNhcmdvX3Rlc3RfaW1wbCAtLXJlbGVh c2UgLS1mZWF0dXJlcz1pbnRvX2JpdHMKLS1lbHNlCi0tICAgICMgRklYTUU6IFVzZSBgY29yZV9h cmNoYCBmZWF0dXJlIG9uY2UgaXQgd29ya3MgYWdhaW4KLS0gICAgY2FyZ29fdGVzdF9pbXBsIC0t cmVsZWFzZSAtLWZlYXR1cmVzPWludG9fYml0cwotLWZpCi0tCi0tIyBWZXJpZnkgY29kZSBnZW5l cmF0aW9uCi0taWYgW1sgIiR7Tk9WRVJJRll9IiAhPSAiMSIgXV07IHRoZW4KLS0gICAgY3AgLXIg dmVyaWZ5L3ZlcmlmeSB0YXJnZXQvdmVyaWZ5Ci0tICAgIGV4cG9ydCBTVERTSU1EX0FTU0VSVF9J TlNUUl9MSU1JVD0zMAotLSAgICBpZiBbWyAiJHtUQVJHRVR9IiA9PSAiaTU4Ni11bmtub3duLWxp bnV4LWdudSIgXV07IHRoZW4KLS0gICAgICAgIGV4cG9ydCBTVERTSU1EX0FTU0VSVF9JTlNUUl9M SU1JVD01MAotLSAgICBmaQotLSAgICBjYXJnb190ZXN0IC0tcmVsZWFzZSAtLW1hbmlmZXN0LXBh dGg9dGFyZ2V0L3ZlcmlmeS9DYXJnby50b21sCi0tZmkKLS0KLS0jIEZJWE1FOiBGaWd1cmUgb3V0 IHdoaWNoIGV4YW1wbGVzIHRha2UgdG9vIGxvbmcgdG8gcnVuIGFuZCBpZ25vcmUgb3IgYWRqdXN0 IHRob3NlCi0tIy4gY2kvcnVuX2V4YW1wbGVzLnNoCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2gJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVz LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1MSArMCwwIEBA Ci0tIyBSdW5zIGFsbCBleGFtcGxlcy4KLS0KLS0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzU1Ci0tIyBBbGwgZXhhbXBsZXMg ZmFpbCB0byBidWlsZCBmb3IgYGFybXY3LWFwcGxlLWlvc2AuCi0taWYgW1sgJHtUQVJHRVR9ID09 ICJhcm12Ny1hcHBsZS1pb3MiIF1dOyB0aGVuCi0tICAgIGV4aXQgMAotLWZpCi0tCi0tIyBGSVhN RTogdHJhdmlzIGV4Y2VlZHMgNTAgbWludXRlcyBvbiB0aGVzZSB0YXJnZXRzCi0tIyBTa2lwcGlu ZyB0aGUgZXhhbXBsZXMgaXMgYW4gYXR0ZW1wdCBhdCBwcmV2ZW50aW5nIHRyYXZpcyBmcm9tIHRp bWluZy1vdXQKLS1pZiBbWyAke1RBUkdFVH0gPT0gImFybS1saW51eC1hbmRyb2lkYWJpIiBdXSB8 fCBbWyAke1RBUkdFVH0gPT0gImFhcmNoNjQtbGludXgtYW5kcm9pZGFiaSIgXV0gXAotLSAgICB8 fCBbWyAke1RBUkdFVH0gPT0gInNwYXJjNjQtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCi0t ICAgIGV4aXQgMAotLWZpCi0tCi0taWYgW1sgJHtUQVJHRVR9ID09ICJ3YXNtMzItdW5rbm93bi11 bmtub3duIiBdXTsgdGhlbgotLSAgICBleGl0IDAKLS1maQotLQotLWNwIC1yIGV4YW1wbGVzL2Fv YmVuY2ggdGFyZ2V0L2FvYmVuY2gKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQv YW9iZW5jaC9DYXJnby50b21sIC0tcmVsZWFzZSAtLW5vLWRlZmF1bHQtZmVhdHVyZXMKLS1jYXJn b190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvYW9iZW5jaC9DYXJnby50b21sIC0tcmVsZWFz ZSAtLWZlYXR1cmVzPTI1NmJpdAotLQotLWNwIC1yIGV4YW1wbGVzL2RvdF9wcm9kdWN0IHRhcmdl dC9kb3RfcHJvZHVjdAotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9kb3RfcHJv ZHVjdC9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVzL2Zhbm5rdWNoX3Jl ZHV4IHRhcmdldC9mYW5ua3VjaF9yZWR1eAotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRh cmdldC9mYW5ua3VjaF9yZWR1eC9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLSMgRklYTUU6IGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNTYK LS1pZiBbWyAke1RBUkdFVH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCi0t ICAgIGNwIC1yIGV4YW1wbGVzL21hbmRlbGJyb3QgdGFyZ2V0L21hbmRlbGJyb3QKLS0gICAgY2Fy Z29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L21hbmRlbGJyb3QvQ2FyZ28udG9tbCAtLXJl bGVhc2UKLS1maQotLQotLWNwIC1yIGV4YW1wbGVzL21hdHJpeF9pbnZlcnNlIHRhcmdldC9tYXRy aXhfaW52ZXJzZQotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9tYXRyaXhfaW52 ZXJzZS9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVzL25ib2R5IHRhcmdl dC9uYm9keQotLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9uYm9keS9DYXJnby50 b21sIC0tcmVsZWFzZQotLQotLWNwIC1yIGV4YW1wbGVzL3NwZWN0cmFsX25vcm0gdGFyZ2V0L3Nw ZWN0cmFsX25vcm0KLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvc3BlY3RyYWxf bm9ybS9DYXJnby50b21sIC0tcmVsZWFzZQotLQotLWlmIFtbICR7VEFSR0VUfSAhPSAiaTU4Ni11 bmtub3duLWxpbnV4LWdudSIgXV07IHRoZW4KLS0gICAgY3AgLXIgZXhhbXBsZXMvc3RlbmNpbCB0 YXJnZXQvc3RlbmNpbAotLSAgICBjYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvc3Rl bmNpbC9DYXJnby50b21sIC0tcmVsZWFzZQotLWZpCi0tCi0tY3AgLXIgZXhhbXBsZXMvdHJpYW5n bGVfeGZvcm0gdGFyZ2V0L3RyaWFuZ2xlX3hmb3JtCi0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBh dGg9dGFyZ2V0L3RyaWFuZ2xlX3hmb3JtL0NhcmdvLnRvbWwgLS1yZWxlYXNlCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9pZC5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvcnVudGVzdC1hbmRyb2lkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw0NSArMCwwIEBACi0tdXNlIHN0ZDo6ZW52OwotLXVzZSBzdGQ6OnBy b2Nlc3M6OkNvbW1hbmQ7Ci0tdXNlIHN0ZDo6cGF0aDo6e1BhdGgsIFBhdGhCdWZ9OwotLQotLWZu IG1haW4oKSB7Ci0tICAgIGxldCBhcmdzID0gZW52OjphcmdzX29zKCkKLS0gICAgICAgIC5za2lw KDEpCi0tICAgICAgICAuZmlsdGVyKHxhcmd8IGFyZyAhPSAiLS1xdWlldCIpCi0tICAgICAgICAu Y29sbGVjdDo6PFZlYzxfPj4oKTsKLS0gICAgYXNzZXJ0X2VxIShhcmdzLmxlbigpLCAxKTsKLS0g ICAgbGV0IHRlc3QgPSBQYXRoQnVmOjpmcm9tKCZhcmdzWzBdKTsKLS0gICAgbGV0IGRzdCA9IFBh dGg6Om5ldygiL2RhdGEvbG9jYWwvdG1wIikuam9pbih0ZXN0LmZpbGVfbmFtZSgpLnVud3JhcCgp KTsKLS0KLS0gICAgbGV0IHN0YXR1cyA9IENvbW1hbmQ6Om5ldygiYWRiIikKLS0gICAgICAgIC5h cmcoIndhaXQtZm9yLWRldmljZSIpCi0tICAgICAgICAuc3RhdHVzKCkKLS0gICAgICAgIC5leHBl Y3QoImZhaWxlZCB0byBydW46IGFkYiB3YWl0LWZvci1kZXZpY2UiKTsKLS0gICAgYXNzZXJ0IShz dGF0dXMuc3VjY2VzcygpKTsKLS0KLS0gICAgbGV0IHN0YXR1cyA9IENvbW1hbmQ6Om5ldygiYWRi IikKLS0gICAgICAgIC5hcmcoInB1c2giKQotLSAgICAgICAgLmFyZygmdGVzdCkKLS0gICAgICAg IC5hcmcoJmRzdCkKLS0gICAgICAgIC5zdGF0dXMoKQotLSAgICAgICAgLmV4cGVjdCgiZmFpbGVk IHRvIHJ1bjogYWRiIHB1c2hyIik7Ci0tICAgIGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3MoKSk7Ci0t Ci0tICAgIGxldCBvdXRwdXQgPSBDb21tYW5kOjpuZXcoImFkYiIpCi0tICAgICAgICAuYXJnKCJz aGVsbCIpCi0tICAgICAgICAuYXJnKCZkc3QpCi0tICAgICAgICAub3V0cHV0KCkKLS0gICAgICAg IC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiBzaGVsbCIpOwotLSAgICBhc3NlcnQhKHN0YXR1 cy5zdWNjZXNzKCkpOwotLQotLSAgICBwcmludGxuISgic3RhdHVzOiB7fVxuc3Rkb3V0IC0tLVxu e31cbnN0ZGVyciAtLS1cbnt9IiwKLS0gICAgICAgICAgICAgb3V0cHV0LnN0YXR1cywKLS0gICAg ICAgICAgICAgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpLAotLSAgICAg ICAgICAgICBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVycikpOwotLQotLSAg ICBsZXQgc3Rkb3V0ID0gU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpOwot LSAgICBsZXQgbXV0IGxpbmVzID0gc3Rkb3V0LmxpbmVzKCkuZmlsdGVyKHxsfCBsLnN0YXJ0c193 aXRoKCJ0ZXN0IHJlc3VsdCIpKTsKLS0gICAgaWYgIWxpbmVzLmFsbCh8bHwgbC5jb250YWlucygi dGVzdCByZXN1bHQ6IG9rIikgJiYgbC5jb250YWlucygiMCBmYWlsZWQiKSkgewotLSAgICAgICAg cGFuaWMhKCJmYWlsZWQgdG8gZmluZCBzdWNjZXNzZnVsIHRlc3QgcnVuIik7Ci0tICAgIH0KLS19 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9zZXR1cF9iZW5j aG1hcmtzLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9zZXR1cF9iZW5jaG1h cmtzLnNoCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNo bWFya3Muc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvc2V0dXBfYmVuY2htYXJrcy5zaAkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0tIyEvdXNyL2Jpbi9l bnYgYmFzaAotLQotLXNldCAtZXgKLS0KLS0jIEdldCBsYXRlc3QgSVNQQyBiaW5hcnkgZm9yIHRo ZSB0YXJnZXQgYW5kIHB1dCBpdCBpbiB0aGUgcGF0aAotLWdpdCBjbG9uZSBodHRwczovL2dpdGh1 Yi5jb20vZ256bGJnL2lzcGMtYmluYXJpZXMKLS1jcCBpc3BjLWJpbmFyaWVzL2lzcGMtJHtUQVJH RVR9IGlzcGMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3Rl c3QtcnVubmVyLWxpbnV4IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1 bm5lci1saW51eAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1 bm5lci1saW51eAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1bm5lci1saW51eAkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjQgKzAsMCBAQAotLSMhL2Jpbi9zaAot LQotLXNldCAtZQotLQotLWFyY2g9JDEKLS1wcm9nPSQyCi0tCi0tY2QgL3FlbXUvaW5pdAotLWNw IC1mICQyIHByb2cKLS1maW5kIC4gfCBjcGlvIC0tY3JlYXRlIC0tZm9ybWF0PSduZXdjJyAtLXF1 aWV0IHwgZ3ppcCA+IC4uL2luaXRyZC5negotLWNkIC4uCi0tCi0tdGltZW91dCAzMHMgcWVtdS1z eXN0ZW0tJGFyY2ggXAotLSAgICAgICAgLW0gMTAyNCBcCi0tICAgICAgICAtbm9ncmFwaGljIFwK LS0gICAgICAgIC1rZXJuZWwga2VybmVsIFwKLS0gICAgICAgIC1pbml0cmQgaW5pdHJkLmd6IFwK LS0gICAgICAgIC1hcHBlbmQgaW5pdD0vcHJvZyA+IG91dHB1dCB8fCB0cnVlCi0tCi0tIyByZW1v dmUga2VybmVsIG1lc3NhZ2VzCi0tdHIgLWQgJ1xyJyA8IG91dHB1dCB8IGVncmVwIC12ICdeXFsn Ci0tCi0tIyBpZiB0aGUgb3V0cHV0IGNvbnRhaW5zIGEgZmFpbHVyZSwgcmV0dXJuIGVycm9yCi0t ISBncmVwIEZBSUxFRCBvdXRwdXQgPiAvZGV2L251bGwKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY29udHJpYnV0aW5nLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NvbnRyaWJ1dGluZy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY3ICswLDAgQEAKLS0jIENvbnRy aWJ1dGluZyB0byBgcGFja2VkX3NpbWRgCi0tCi0tV2VsY29tZSEgSWYgeW91IGFyZSByZWFkaW5n IHRoaXMgZG9jdW1lbnQsIGl0IG1lYW5zIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBjb250cmlidXRp bmcKLS10byB0aGUgYHBhY2tlZF9zaW1kYCBjcmF0ZS4KLS0KLS0jIyBSZXBvcnRpbmcgaXNzdWVz Ci0tCi0tQWxsIGlzc3VlcyB3aXRoIHRoaXMgY3JhdGUgYXJlIHRyYWNrZWQgdXNpbmcgR2l0SHVi J3MgW0lzc3VlIFRyYWNrZXJdLgotLQotLVlvdSBjYW4gdXNlIGlzc3VlcyB0byBicmluZyBidWdz IHRvIHRoZSBhdHRlbnRpb24gb2YgdGhlIG1haW50YWluZXJzLCB0byBkaXNjdXNzCi0tY2VydGFp biBwcm9ibGVtcyBlbmNvdW50ZXJlZCB3aXRoIHRoZSBjcmF0ZSwgb3IgdG8gcmVxdWVzdCBuZXcg ZmVhdHVyZXMgKGFsdGhvdWdoCi0tZmVhdHVyZSByZXF1ZXN0cyBzaG91bGQgYmUgbGltaXRlZCB0 byB0aGluZ3MgbWVudGlvbmVkIGluIHRoZSBbUkZDXSkuCi0tCi0tT25lIHRoaW5nIHRvIGtlZXAg aW4gbWluZCBpcyB0byBhbHdheXMgdXNlIHRoZSAqKmxhdGVzdCoqIG5pZ2h0bHkgdG9vbGNoYWlu IHdoZW4KLS13b3JraW5nIG9uIHRoaXMgY3JhdGUuIER1ZSB0byB0aGUgbmF0dXJlIG9mIHRoaXMg cHJvamVjdCwgd2UgdXNlIGEgbG90IG9mIHVuc3RhYmxlCi0tZmVhdHVyZXMsIG1lYW5pbmcgYnJl YWthZ2UgaGFwcGVucyBvZnRlbi4KLS0KLS1bSXNzdWUgVHJhY2tlcl06IGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMKLS1bUkZDXTogaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NgotLQotLSMjIyBMTFZNIGlzc3Vl cwotLQotLVRoZSBSdXN0IGNvbXBpbGVyIHJlbGllcyBvbiBbTExWTV0oaHR0cHM6Ly9sbHZtLm9y Zy8pIGZvciBtYWNoaW5lIGNvZGUgZ2VuZXJhdGlvbiwKLS1hbmQgcXVpdGUgYSBmZXcgTExWTSBi dWdzIGhhdmUgYmVlbiBkaXNjb3ZlcmVkIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBw cm9qZWN0LgotLQotLUlmIHlvdSBlbmNvdW50ZXIgaXNzdWVzIHdpdGggaW5jb3JyZWN0L3N1Ym9w dGltYWwgY29kZWdlbiwgd2hpY2ggeW91IGRvIG5vdCBlbmNvdW50ZXIKLS13aGVuIHVzaW5nIHRo ZSBbU0lNRCB2ZW5kb3IgaW50cmluc2ljc10oaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9uaWdo dGx5L3N0ZC9hcmNoLyksCi0taXQgaXMgbGlrZWx5IHRoZSBpc3N1ZSBpcyB3aXRoIExMVk0sIG9y IHRoaXMgY3JhdGUncyBpbnRlcmFjdGlvbiB3aXRoIGl0LgotLQotLVlvdSBzaG91bGQgZmlyc3Qg b3BlbiBhbiBpc3N1ZSAqKmluIHRoaXMgcmVwbyoqIHRvIGhlbHAgdXMgdHJhY2sgdGhlIHByb2Js ZW0sIGFuZCB3ZQotLXdpbGwgaGVscCBkZXRlcm1pbmUgd2hhdCBpcyB0aGUgZXhhY3QgY2F1c2Ug b2YgdGhlIHByb2JsZW0uCi0tSWYgTExWTSBpcyBpbmRlZWQgdGhlIGNhdXNlLCB0aGUgaXNzdWUg d2lsbCBiZSByZXBvcnRlZCB1cHN0cmVhbSB0byB0aGUKLS1bTExWTSBidWd0cmFja2VyXShodHRw czovL2J1Z3MubGx2bS5vcmcvKS4KLS0KLS0jIyBTdWJtaXR0aW5nIFB1bGwgUmVxdWVzdHMKLS0K LS1OZXcgY29kZSBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNyYXRlIHVzaW5nIEdpdEh1YidzIFtwdWxs IHJlcXVlc3RdIG1lY2hhbmlzbS4KLS1Zb3Ugc2hvdWxkIGZpcnN0IGZvcmsgdGhpcyByZXBvc2l0 b3J5LCBtYWtlIHlvdXIgY2hhbmdlcyAocHJlZmVyYWJseSBpbiBhIG5ldwotLWJyYW5jaCksIHRo ZW4gdXNlIEdpdEh1YidzIHdlYiBVSSB0byBjcmVhdGUgYSBuZXcgUFIuCi0tCi0tW3B1bGwgcmVx dWVzdF06IGh0dHBzOi8vaGVscC5naXRodWIuY29tL2FydGljbGVzL2Fib3V0LXB1bGwtcmVxdWVz dHMvCi0tCi0tIyMjIEV4YW1wbGVzCi0tCi0tVGhlIGBleGFtcGxlc2AgZGlyZWN0b3J5IGNvbnRh aW5zIGNvZGUgc2hvd2Nhc2luZyBTSU1EIGNvZGUgd3JpdHRlbiB3aXRoIHRoaXMgY3JhdGUsCi0t dXN1YWxseSBpbiBjb21wYXJpc29uIHRvIHNjYWxhciBvciBJU1BDIGNvZGUuIElmIHlvdSBoYXZl IGEgcHJvamVjdCAvIGlkZWEgd2hpY2gKLS11c2VzIFNJTUQsIHdlJ2QgbG92ZSB0byBhZGQgaXQg dG8gdGhlIGV4YW1wbGVzIGxpc3QuCi0tCi0tRXZlcnkgZXhhbXBsZSBzaG91bGQgaW5jbHVkZSBh IHNtYWxsIGBSRUFETUVgLCBkZXNjcmliaW5nIHRoZSBleGFtcGxlIGNvZGUncyBwdXJwb3NlLgot LUlmIHlvdXIgZXhhbXBsZSBjb3VsZCBwb3RlbnRpYWxseSB3b3JrIGFzIGEgYmVuY2htYXJrLCB0 aGVuIGFkZCBhIGBiZW5jaG1hcmsuc2hgCi0tc2NyaXB0IHRvIGFsbG93IHJ1bm5pbmcgdGhlIGV4 YW1wbGUgYmVuY2htYXJrIGNvZGUgaW4gQ0kuIFNlZSBhbiBleGlzdGluZyBleGFtcGxlJ3MKLS1b YGJlbmNobWFyay5zaGBdKGV4YW1wbGVzL2FvYmVuY2gvYmVuY2htYXJrLnNoKSBmb3IgYSBzYW1w bGUuCi0tCi0tRG9uJ3QgZm9yZ2V0IHRvIHVwZGF0ZSB0aGUgY3JhdGUncyB0b3AtbGV2ZWwgYFJF QURNRWAgd2l0aCBhIGxpbmsgdG8geW91ciBleGFtcGxlLgotLQotLSMjIyBQZXJmIGd1aWRlCi0t Ci0tVGhlIG9iamVjdGl2ZSBvZiB0aGUgW3BlcmZvcm1hbmNlIGd1aWRlXVtwZXJmLWd1aWRlXSBp cyB0byBiZSBhIGNvbXByZWhlbnNpdmUKLS1yZXNvdXJjZSBkZXRhaWxpbmcgdGhlIHByb2Nlc3Mg b2Ygb3B0aW1pemluZyBSdXN0IGNvZGUgd2l0aCBTSU1EIHN1cHBvcnQuCi0tCi0tSWYgeW91IGJl bGlldmUgYSBjZXJ0YWluIHNlY3Rpb24gY291bGQgYmUgcmV3b3JkZWQsIG9yIGlmIHlvdSBoYXZl IGFueSB0aXBzICYgdHJpY2tzCi0tcmVsYXRlZCB0byBTSU1EIHdoaWNoIHlvdSdkIGxpa2UgdG8g c2hhcmUsIHBsZWFzZSBvcGVuIGEgUFIuCi0tCi0tW21kQm9va10gaXMgdXNlZCB0byBtYW5hZ2Ug dGhlIGZvcm1hdHRpbmcgb2YgdGhlIGd1aWRlIGFzIGEgYm9vay4KLS0KLS1bcGVyZi1ndWlkZV06 IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvCi0tW21kQm9va106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9tZEJv b2sKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv LmdpdGlnbm9yZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0 aWdub3JlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvLmdp dGlnbm9yZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xICswLDAgQEAKLS0vYm9vawotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9ib29rLnRvbWwgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21sCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21sCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwxMiArMCwwIEBACi0tW2Jvb2tdCi0tYXV0aG9ycyA9IFsiR29uemFsbyBC cml0byBHYWRlc2NoaSIsICJHYWJyaWVsIE1hamVyaSJdCi0tbXVsdGlsaW5ndWFsID0gZmFsc2UK LS1zcmMgPSAic3JjIgotLXRpdGxlID0gIlJ1c3QgU0lNRCBQZXJmb3JtYW5jZSBHdWlkZSIKLS1k ZXNjcmlwdGlvbiA9ICJUaGlzIGJvb2sgZGVzY3JpYmVzIGhvdyB0byB3cml0ZSBwZXJmb3JtYW50 IFNJTUQgY29kZSBpbiBSdXN0LiIKLS0KLS1bYnVpbGRdCi0tY3JlYXRlLW1pc3NpbmcgPSBmYWxz ZQotLQotLVtvdXRwdXQuaHRtbF0KLS1hZGRpdGlvbmFsLWNzcyA9IFsiLi9zcmMvYXNjaWkuY3Nz Il0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL1NVTU1BUlkubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL1NVTU1BUlkubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvU1VNTUFSWS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZ Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMSArMCwwIEBA Ci0tIyBTdW1tYXJ5Ci0tCi0tW0ludHJvZHVjdGlvbl0oLi9pbnRyb2R1Y3Rpb24ubWQpCi0tCi0t LSBbRmxvYXRpbmctcG9pbnQgTWF0aF0oLi9mbG9hdC1tYXRoL2ZwLm1kKQotLSAgLSBbU2hvcnQt dmVjdG9yIE1hdGggTGlicmFyeV0oLi9mbG9hdC1tYXRoL3N2bWwubWQpCi0tICAtIFtBcHByb3hp bWF0ZSBmdW5jdGlvbnNdKC4vZmxvYXQtbWF0aC9hcHByb3gubWQpCi0tICAtIFtGdXNlZCBtdWx0 aXBseS1hY2N1bXVsYXRlXSguL2Zsb2F0LW1hdGgvZm1hLm1kKQotLQotLS0gW1RhcmdldCBmZWF0 dXJlc10oLi90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCkKLS0gIC0gW1VzaW5nIGBSVVNURkxB R1NgXSguL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCkKLS0gIC0gW1VzaW5nIHRoZSBgdGFy Z2V0X2ZlYXR1cmVgIGF0dHJpYnV0ZV0oLi90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQpCi0t ICAtIFtJbnRlcmFjdGlvbiB3aXRoIGlubGluaW5nXSguL3RhcmdldC1mZWF0dXJlL2lubGluaW5n Lm1kKQotLSAgLSBbRGV0ZWN0aW5nIGZlYXR1cmVzIGF0IHJ1bnRpbWVdKC4vdGFyZ2V0LWZlYXR1 cmUvcnVudGltZS5tZCkKLS0KLS0tIFtCb3VuZHMgY2hlY2tpbmddKC4vYm91bmRfY2hlY2tzLm1k KQotLS0gW1ZlcnRpY2FsIGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnNdKC4vdmVydC1ob3Itb3Bz Lm1kKQotLQotLS0gW1BlcmZvcm1hbmNlIHByb2ZpbGluZ10oLi9wcm9mL3Byb2ZpbGluZy5tZCkK LS0gIC0gW1Byb2ZpbGluZyBvbiBMaW51eF0oLi9wcm9mL2xpbnV4Lm1kKQotLSAgLSBbVXNpbmcg bWFjaGluZSBjb2RlIGFuYWx5emVyc10oLi9wcm9mL21jYS5tZCkKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYXNjaWkuY3NzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQgKzAsMCBAQAotLWNvZGUgewotLSAgICAvKiAiU291cmNl IENvZGUgUHJvIiBicmVha3MgQVNDSUkgYXJ0ICovCi0tICAgIGZvbnQtZmFtaWx5OiBDb25zb2xh cywgIlVidW50dSBNb25vIiwgTWVubG8sICJEZWphVnUgU2FucyBNb25vIiwgbW9ub3NwYWNlOwot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL2JvdW5kX2NoZWNrcy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9ib3VuZF9jaGVja3MubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDIyICswLDAgQEAKLS0jIEJvdW5kcyBjaGVja2luZwotLQotLVJlYWRpbmcgYW5k IHdyaXRpbmcgcGFja2VkIHZlY3RvcnMgdG8vZnJvbSBzbGljZXMgaXMgY2hlY2tlZCBieSBkZWZh dWx0LgotLUluZGVwZW5kZW50bHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB1c2VkLCB0 aGUgc2FmZSBmdW5jdGlvbnM6Ci0tCi0tKiBgU2ltZDxbVDsgTl0+Ojpmcm9tX3NsaWNlX2FsaWdu ZWQoJiBzWy4uXSlgCi0tKiBgU2ltZDxbVDsgTl0+Ojp3cml0ZV90b19zbGljZV9hbGlnbmVkKCZt dXQgc1suLl0pYAotLQotLWFsd2F5cyBjaGVjayB0aGF0OgotLQotLSogdGhlIHNsaWNlIGlzIGJp ZyBlbm91Z2ggdG8gaG9sZCB0aGUgdmVjdG9yCi0tKiB0aGUgc2xpY2UgaXMgc3VpdGFibHkgYWxp Z25lZCB0byBwZXJmb3JtIGFuIGFsaWduZWQgbG9hZC9zdG9yZSBmb3IgYSBgU2ltZDxbVDsKLS0g IE5dPmAgKHRoaXMgYWxpZ25tZW50IGlzIG9mdGVuIG11Y2ggbGFyZ2VyIHRoYW4gdGhhdCBvZiBg VGApLgotLQotLVRoZXJlIGFyZSBgX3VuYWxpZ25lZGAgdmVyc2lvbnMgdGhhdCB1c2UgdW5hbGln bmVkIGxvYWQgYW5kIHN0b3JlcywgYXMgd2VsbCBhcwotLWB1bnNhZmVgIGBfdW5jaGVja2VkYCB0 aGF0IGRvIG5vdCBwZXJmb3JtIGFueSBjaGVja3MgaWZmIGBkZWJ1Zy1hc3NlcnRpb25zID0KLS1m YWxzZWAgLyBgZGVidWcgPSBmYWxzZWAuIFRoYXQgaXMsIHRoZSBgX3VuY2hlY2tlZGAgbWV0aG9k cyBkbyBzdGlsbCBhc3NlcnQgc2l6ZQotLWFuZCBhbGlnbm1lbnQgaW4gZGVidWcgYnVpbGRzIGFu ZCBjb3VsZCBhbHNvIGRvIHNvIGluIHJlbGVhc2UgYnVpbGRzIGRlcGVuZGluZwotLW9uIHRoZSBj b25maWd1cmF0aW9uIG9wdGlvbnMuCi0tCi0tVGhlc2UgYXNzZXJ0aW9ucyBkbyBvZnRlbiBzaWdu aWZpY2FudGx5IGltcGFjdCBwZXJmb3JtYW5jZSBhbmQgeW91IHNob3VsZCBiZQotLWF3YXJlIG9m IHRoZW0uCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDggKzAsMCBAQAotLSMgQXBwcm94aW1h dGUgZnVuY3Rpb25zCi0tCi0tPCEtLSBUT0RPOgotLQotLUV4cGxhaW4gdGhhdCB0aGV5IGV4aXN0 cywgdGhhdCB0aGV5IGFyZSBvZnRlbiBfbXVjaF8gZmFzdGVyLCBob3cgdG8gdXNlIHRoZW0sCi0t dGhhdCBwZW9wbGUgc2hvdWxkIGNoZWNrIHdoZXRoZXIgdGhlIGVycm9yIGlzIGdvb2QgZW5vdWdo IGZvciB0aGVpcgotLWFwcGxpY2F0aW9ucy4gRXhwbGFpbiB0aGF0IHRoaXMgZXJyb3IgaXMgY3Vy cmVudGx5IHVuc3RhYmxlIGFuZCBtaWdodCBjaGFuZ2UuCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5t ZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0 aC9mbWEubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvZmxvYXQtbWF0aC9mbWEubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQt bWF0aC9mbWEubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYg KzAsMCBAQAotLSMgRnVzZWQgTXVsdGlwbHkgQWRkCi0tCi0tPCEtLSBUT0RPOgotLUV4cGxhaW4g dGhhdCB0aGlzIGlzIGEgY29tcG91bmQgb3BlcmF0aW9uLCBpbmZpbml0ZSBwcmVjaXNpb24sIGRp ZmZlcmVuY2UKLS1iZXR3ZWVuIGBtdWxfYWRkYCBhbmQgYG11bF9hZGRlYCwgdGhhdCBMTFZNIGNh bm5vdCBkbyB0aGlzIGJ5IGl0c2VsZiwgZXRjLgotLS0tPgotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5t ZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9h dC1tYXRoL2ZwLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAu bWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMgKzAsMCBAQAot LSMgRmxvYXRpbmctcG9pbnQgbWF0aAotLQotLVRoaXMgY2hhcHRlciBjb250YWlucyBpbmZvcm1h dGlvbiBwZXJ0YWluaW5nIHRvIHdvcmtpbmcgd2l0aCBmbG9hdGluZy1wb2ludCBudW1iZXJzLgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv ZmxvYXQtbWF0aC9zdm1sLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0tIyBTaG9ydCBWZWN0b3IgTWF0aCBMaWJyYXJ5 Ci0tCi0tPCEtLSBUT0RPOgotLUV4cGxhaW4gaG93IGlzIHNob3J0LXZlY3RvciBtYXRoIHBlcmZv cm1lZCBieSBkZWZhdWx0IChqdXN0IHNjYWxhcml6ZWQgbGlibSBjYWxscykuCi0tCi0tRXhwbGFp biBob3cgdG8gZW5hYmxlIGBzbGVlZmAsIGV0Yy4KLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2ludHJvZHVjdGlvbi5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9uLm1k Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2ludHJv ZHVjdGlvbi5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI2ICswLDAgQEAKLS0j IEludHJvZHVjdGlvbgotLQotLSMjIFdoYXQgaXMgU0lNRAotLQotLTwhLS0gVE9ETzoKLS1kZXNj cmliZSB3aGF0IFNJTUQgaXMsIHdoaWNoIGFsZ29yaXRobXMgY2FuIGJlbmVmaXQgZnJvbSBpdCwK LS1naXZlIHVzYWdlIGV4YW1wbGVzCi0tLS0+Ci0tCi0tIyMgSGlzdG9yeSBvZiBTSU1EIGluIFJ1 c3QKLS0KLS08IS0tIFRPRE86Ci0tZGlzY3VzcyBoaXN0b3J5IG9mIHVuc3RhYmxlIHN0ZDo6c2lt ZCwKLS1zdGFiaWxpemF0aW9uIG9mIHN0ZDo6YXJjaCwgZXRjLgotLS0tPgotLQotLSMjIERpc2Nv dmVyIHBhY2tlZF9zaW1kCi0tCi0tPCEtLSBUT0RPOiBkZXNjcmliZSBzY29wZSBvZiB0aGlzIHBy b2plY3QgLS0+Ci0tCi0tV3JpdGluZyBmYXN0IGFuZCBwb3J0YWJsZSBTSU1EIGFsZ29yaXRobXMg dXNpbmcgYHBhY2tlZF9zaW1kYCBpcywgdW5mb3J0dW5hdGVseSwKLS1ub3QgdHJpdmlhbC4gVGhl cmUgYXJlIG1hbnkgcGl0ZmFscyB0aGF0IG9uZSBzaG91bGQgYmUgYXdhcmUgb2YsIGFuZCBzb21l IGlkaW9tcwotLXRoYXQgaGVscCBhdm9pZCB0aG9zZSBwaXRmYWxscy4KLS0KLS1UaGlzIGJvb2sg YXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlc2UgYmVzdCBwcmFjdGljZXMgYW5kIHByb3ZpZGVzIHBy YWN0aWNhbCBleGFtcGxlcwotLW9uIGhvdyB0byBhcHBseSB0aGUgdGlwcyB0byBfeW91cl8gY29k ZS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL3Byb2YvbGludXgubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL3Byb2YvbGludXgubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9wcm9mL2xpbnV4Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxMDcgKzAsMCBAQAotLSMgUGVyZm9ybWFuY2UgcHJvZmlsaW5nIG9uIExpbnV4Ci0tCi0tIyMg VXNpbmcgYHBlcmZgCi0tCi0tW3BlcmZdKGh0dHBzOi8vcGVyZi53aWtpLmtlcm5lbC5vcmcvKSBp cyB0aGUgbW9zdCBwb3dlcmZ1bCBwZXJmb3JtYW5jZSBwcm9maWxlcgotLWZvciBMaW51eCwgZmVh dHVyaW5nIHN1cHBvcnQgZm9yIHZhcmlvdXMgaGFyZHdhcmUgUGVyZm9ybWFuY2UgTW9uaXRvcmlu ZyBVbml0cywKLS1hcyB3ZWxsIGFzIGludGVncmF0aW9uIHdpdGggdGhlIGtlcm5lbCdzIHBlcmZv cm1hbmNlIGV2ZW50cyBmcmFtZXdvcmsuCi0tCi0tV2Ugd2lsbCBvbmx5IGxvb2sgYXQgaG93IGNh biB0aGUgYHBlcmZgIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcHJvZmlsZSBTSU1EIGNvZGUuCi0t RnVsbCBzeXN0ZW0gcHJvZmlsaW5nIGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgYm9v ay4KLS0KLS0jIyMgUmVjb3JkaW5nCi0tCi0tVGhlIGZpcnN0IHN0ZXAgaXMgdG8gcmVjb3JkIGEg cHJvZ3JhbSdzIGV4ZWN1dGlvbiBkdXJpbmcgYW4gYXZlcmFnZSB3b3JrbG9hZC4KLS1JdCBoZWxw cyBpZiB5b3UgY2FuIGlzb2xhdGUgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSB3aGljaCBoYXZl IHBlcmZvcm1hbmNlCi0taXNzdWVzLCBhbmQgc2V0IHVwIGEgYmVuY2htYXJrIHdoaWNoIGNhbiBi ZSBlYXNpbHkgKHJlKXJ1bi4KLS0KLS1CdWlsZCB0aGUgYmVuY2htYXJrIGJpbmFyeSBpbiByZWxl YXNlIG1vZGUsIGFmdGVyIGhhdmluZyBlbmFibGVkIGRlYnVnIGluZm86Ci0tCi0tYGBgc2gKLS0k IGNhcmdvIGJ1aWxkIC0tcmVsZWFzZQotLUZpbmlzaGVkIHJlbGVhc2UgW29wdGltaXplZCArIGRl YnVnaW5mb10gdGFyZ2V0KHMpIGluIDAuMDJzCi0tYGBgCi0tCi0tVGhlbiB1c2UgdGhlIGBwZXJm IHJlY29yZGAgc3ViY29tbWFuZDoKLS0KLS1gYGBzaAotLSQgcGVyZiByZWNvcmQgLS1jYWxsLWdy YXBoPWR3YXJmIC4vdGFyZ2V0L3JlbGVhc2UvbXktcHJvZ3JhbQotLVsgcGVyZiByZWNvcmQ6IFdv a2VuIHVwIDEwIHRpbWVzIHRvIHdyaXRlIGRhdGEgXQotLVsgcGVyZiByZWNvcmQ6IENhcHR1cmVk IGFuZCB3cm90ZSAyLDM1NiBNQiBwZXJmLmRhdGEgKDI5MiBzYW1wbGVzKSBdCi0tYGBgCi0tCi0t SW5zdGVhZCBvZiB1c2luZyBgLS1jYWxsLWdyYXBoPWR3YXJmYCwgd2hpY2ggY2FuIGJlY29tZSBw cmV0dHkgc2xvdywgeW91IGNhbiB1c2UKLS1gLS1jYWxsLWdyYXBoPWxicmAgaWYgeW91IGhhdmUg YSBwcm9jZXNzb3Igd2l0aCBzdXBwb3J0IGZvciBMYXN0IEJyYW5jaCBSZWNvcmQKLS0oaS5lLiBJ bnRlbCBIYXN3ZWxsIGFuZCBuZXdlcikuCi0tCi0tYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIHJl Y29yZCB0aGUgY291bnQgb2YgQ1BVIGN5Y2xlcyBpdCB0YWtlcyB0byBleGVjdXRlCi0tdmFyaW91 cyBwYXJ0cyBvZiB5b3VyIHByb2dyYW0uIFlvdSBjYW4gdXNlIHRoZSBgLWVgIGNvbW1hbmQgbGlu ZSBvcHRpb24KLS10byBlbmFibGUgb3RoZXIgcGVyZm9ybWFuY2UgZXZlbnRzLCBzdWNoIGFzIGBj YWNoZS1taXNzZXNgLiBVc2UgYHBlcmYgbGlzdGAKLS10byBnZXQgYSBsaXN0IG9mIGFsbCBoYXJk d2FyZSBjb3VudGVycyBzdXBwb3J0ZWQgYnkgeW91ciBDUFUuCi0tCi0tIyMjIFZpZXdpbmcgdGhl IHJlcG9ydAotLQotLVRoZSBuZXh0IHN0ZXAgaXMgZ2V0dGluZyBhIGJpcmQncyBleWUgdmlldyBv ZiB0aGUgcHJvZ3JhbSdzIGV4ZWN1dGlvbi4KLS1gcGVyZmAgcHJvdmlkZXMgYSBgbmN1cnNlc2At YmFzZWQgaW50ZXJmYWNlIHdoaWNoIHdpbGwgZ2V0IHlvdSBzdGFydGVkLgotLQotLVVzZSBgcGVy ZiByZXBvcnRgIHRvIG9wZW4gYSB2aXN1YWxpemF0aW9uIG9mIHlvdXIgcHJvZ3JhbSdzIHBlcmZv cm1hbmNlOgotLQotLWBgYHNoCi0tcGVyZiByZXBvcnQgLS1oaWVyYXJjaHkgLU0gaW50ZWwKLS1g YGAKLS0KLS1gLS1oaWVyYXJjaHlgIHdpbGwgZGlzcGxheSBhIHRyZWUtbGlrZSBzdHJ1Y3R1cmUg b2Ygd2hlcmUgeW91ciBwcm9ncmFtIHNwZW50Ci0tbW9zdCBvZiBpdHMgdGltZS4gYC1NIGludGVs YCBlbmFibGVzIGRpc2Fzc2VtYmx5IG91dHB1dCB3aXRoIEludGVsIHN5bnRheCwgd2hpY2gKLS1p cyBzdWJqZWN0aXZlbHkgbW9yZSByZWFkYWJsZSB0aGFuIHRoZSBkZWZhdWx0IEFUJlQgc3ludGF4 LgotLQotLUhlcmUgaXMgdGhlIG91dHB1dCBmcm9tIHByb2ZpbGluZyB0aGUgYG5ib2R5YCBiZW5j aG1hcms6Ci0tCi0tYGBgCi0tLSAxMDAsMDAlIG5ib2R5Ci0tICAtIDk0LDE4JSBuYm9keQotLSAg ICArIDkzLDQ4JSBbLl0gbmJvZHlfbGliOjpzaW1kOjphZHZhbmNlCi0tICAgICsgMCw3MCUgWy5d IG5ib2R5X2xpYjo6cnVuCi0tICAgICsgNSwwNiUgbGliYy0yLjI4LnNvCi0tYGBgCi0tCi0tSWYg eW91IG1vdmUgd2l0aCB0aGUgYXJyb3cga2V5cyB0byBhbnkgbm9kZSBpbiB0aGUgdHJlZSwgeW91 IGNhbiB0aGUgcHJlc3MgYGFgCi0tdG8gaGF2ZSBgcGVyZmAgX2Fubm90YXRlXyB0aGF0IG5vZGUu IFRoaXMgbWVhbnMgaXQgd2lsbDoKLS0KLS0tIGRpc2Fzc2VtYmxlIHRoZSBmdW5jdGlvbgotLQot LS0gYXNzb2NpYXRlIGV2ZXJ5IGluc3RydWN0aW9uIHdpdGggdGhlIHBlcmNlbnRhZ2Ugb2YgdGlt ZSB3aGljaCB3YXMgc3BlbnQgZXhlY3V0aW5nIGl0Ci0tCi0tLSBpbnRlcmxlYXZlcyB0aGUgZGlz YXNzZW1ibHkgd2l0aCB0aGUgc291cmNlIGNvZGUsCi0tICBhc3N1bWluZyBpdCBmb3VuZCB0aGUg ZGVidWcgc3ltYm9scwotLSAgKHlvdSBjYW4gdXNlIGBzYCB0byB0b2dnbGUgdGhpcyBiZWhhdmlv dXIpCi0tCi0tYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIG9wZW4gdGhlIGluc3RydWN0aW9uIHdo aWNoIGl0IGlkZW50aWZpZWQgYXMgYmVpbmcgdGhlCi0taG90dGVzdCBzcG90IGluIHRoZSBmdW5j dGlvbjoKLS0KLS1gYGAKLS0wLDc2ICDilIIgbW92YXBkIHhtbTIseG1tMAotLTAsMzggIOKUgiBt b3ZobHBzIHhtbTIseG1tMAotLSAgICAgIOKUgiBhZGRwZCAgeG1tMix4bW0wCi0tICAgICAg4pSC IHVucGNrbHBkIHhtbTEseG1tMgotLTEyLDUwIOKUgiBzcXJ0cGQgeG1tMCx4bW0xCi0tMSw1MiAg 4pSCIG11bHBkICB4bW0wLHhtbTEKLS1gYGAKLS0KLS1JbiB0aGlzIGNhc2UsIGBzcXJ0cGRgIHdp bGwgYmUgaGlnaGxpZ2h0ZWQgaW4gcmVkLCBzaW5jZSB0aGF0J3MgdGhlIGluc3RydWN0aW9uCi0t d2hpY2ggdGhlIENQVSBzcGVuZHMgbW9zdCBvZiBpdHMgdGltZSBleGVjdXRpbmcuCi0tCi0tIyMg VXNpbmcgVmFsZ3JpbmQKLS0KLS1WYWxncmluZCBpcyBhIHNldCBvZiB0b29scyB3aGljaCBpbml0 aWFsbHkgaGVscGVkIEMvQysrIHByb2dyYW1tZXJzIGZpbmQgdW5zYWZlCi0tbWVtb3J5IGFjY2Vz c2VzIGluIHRoZWlyIGNvZGUuIE5vd2FkYXlzIHRoZSBwcm9qZWN0IGFsc28gaGFzCi0tCi0tLSBh IGhlYXAgcHJvZmlsZXIgY2FsbGVkIGBtYXNzaWZgCi0tCi0tLSBhIGNhY2hlIHV0aWxpemF0aW9u IHByb2ZpbGVyIGNhbGxlZCBgY2FjaGVncmluZGAKLS0KLS0tIGEgY2FsbC1ncmFwaCBwZXJmb3Jt YW5jZSBwcm9maWxlciBjYWxsZWQgYGNhbGxncmluZGAKLS0KLS08IS0tCi0tVE9ETzogZXhwbGFp biB2YWxncmluZCdzIGR5bmFtaWMgYmluYXJ5IHRyYW5zbGF0aW9uLCB3YXJuIGFib3V0IG1hc3Np dmUKLS1zbG93ZG93biwgdGFsayBhYm91dCBga2NhY2hlZ3JpbmRgIGZvciBhIEdVSQotLS0tPgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv cHJvZi9tY2EubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L3Byb2YvbWNhLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL3Byb2YvbWNhLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbWNh Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDAgKzAsMCBA QAotLSMgTWFjaGluZSBjb2RlIGFuYWx5c2lzIHRvb2xzCi0tCi0tIyMgVGhlIG1pY3JvYXJjaGl0 ZWN0dXJlIG9mIG1vZGVybiBDUFVzCi0tCi0tV2hpbGUgeW91IG1pZ2h0IGhhdmUgaGVhcmQgb2Yg SW5zdHJ1Y3Rpb24gU2V0IEFyY2hpdGVjdHVyZXMsIHN1Y2ggYXMgYHg4NmAgb3IKLS1gYXJtYCBv ciBgbWlwc2AsIHRoZSB0ZXJtIF9taWNyb2FyY2hpdGVjdHVyZV8gKGFsc28gd3JpdHRlbiBoZXJl IGFzIF/CtS1hcmNoXyksCi0tcmVmZXJzIHRvIHRoZSBpbnRlcm5hbCBkZXRhaWxzIG9mIGFuIGFj dHVhbCBmYW1pbHkgb2YgQ1BVcywgc3VjaCBhcyBJbnRlbCdzCi0tX0hhc3dlbGxfIG9yIEFNRCdz IF9KYWd1YXJfLgotLQotLVJlcGxhY2luZyBzY2FsYXIgY29kZSB3aXRoIFNJTUQgY29kZSB3aWxs IGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gYWxsIENQVXMKLS1zdXBwb3J0aW5nIHRoZSByZXF1aXJl ZCB2ZWN0b3IgZXh0ZW5zaW9ucy4KLS1Ib3dldmVyLCBkdWUgdG8gbWljcm9hcmNoaXRlY3R1cmFs IGRpZmZlcmVuY2VzLCB0aGUgYWN0dWFsIHNwZWVkLXVwIGF0Ci0tcnVudGltZSBtaWdodCB2YXJ5 LgotLQotLSoqRXhhbXBsZSoqOiBhIHNpbXBsZSBleGFtcGxlIGFyaXNlcyB3aGVuIG9wdGltaXpp bmcgZm9yIEFNRCBLOCBDUFVzLgotLVRoZSBhc3NlbWJseSBnZW5lcmF0ZWQgZm9yIGFuIGVtcHR5 IGZ1bmN0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhpczoKLS0KLS1gYGBhc20KLS1ub3AKLS1yZXQK LS1gYGAKLS0KLS1UaGUgYG5vcGAgaXMgdXNlZCB0byBhbGlnbiB0aGUgYHJldGAgaW5zdHJ1Y3Rp b24gZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLS1Ib3dldmVyLCB0aGUgY29tcGlsZXIgd2lsbCBh Y3R1YWxseSBnZW5lcmF0ZWQgdGhlIGZvbGxvd2luZyBjb2RlOgotLQotLWBgYGFzbQotLXJlcHog cmV0Ci0tYGBgCi0tCi0tVGhlIGByZXB6YCBpbnN0cnVjdGlvbiB3aWxsIHJlcGVhdCB0aGUgZm9s bG93aW5nIGluc3RydWN0aW9uIHVudGlsIGEgY2VydGFpbgotLWNvbmRpdGlvbi4gT2YgY291cnNl LCBpbiB0aGlzIHNpdHVhdGlvbiwgdGhlIGZ1bmN0aW9uIHdpbGwgc2ltcGx5IGltbWVkaWF0ZWx5 Ci0tcmV0dXJuLCBhbmQgdGhlIGByZXRgIGluc3RydWN0aW9uIGlzIHN0aWxsIGFsaWduZWQuCi0t SG93ZXZlciwgQU1EIEs4J3MgYnJhbmNoIHByZWRpY3RvciBwZXJmb3JtcyBiZXR0ZXIgd2l0aCB0 aGUgbGF0dGVyIGNvZGUuCi0tCi0tRm9yIHRob3NlIGxvb2tpbmcgdG8gYWJzb2x1dGVseSBtYXhp bWl6ZSBwZXJmb3JtYW5jZSBmb3IgYSBjZXJ0YWluIHRhcmdldCDCtS1hcmNoLAotLXlvdSB3aWxs IGhhdmUgdG8gcmVhZCBzb21lIENQVSBtYW51YWxzLCBvciBhc2sgdGhlIGNvbXBpbGVyIHRvIGRv IGl0IGZvciB5b3UKLS13aXRoIGAtQyB0YXJnZXQtY3B1YC4KLS0KLS0jIyMgU3VtbWFyeSBvZiBD UFUgaW50ZXJuYWxzCi0tCi0tTW9kZXJuIHByb2Nlc3NvcnMgYXJlIGFibGUgdG8gZXhlY3V0ZSBp bnN0cnVjdGlvbnMgb3V0LW9mLW9yZGVyIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UsCi0tYnkgdXRp bGl6aW5nIHRyaWNrcyBzdWNoIGFzIFticmFuY2ggcHJlZGljdGlvbl0sIFtpbnN0cnVjdGlvbiBw aXBlbGluaW5nXSwKLS1vciBbc3VwZXJzY2FsYXIgZXhlY3V0aW9uXS4KLS0KLS1bYnJhbmNoIHBy ZWRpY3Rpb25dOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CcmFuY2hfcHJlZGljdG9y Ci0tW2luc3RydWN0aW9uIHBpcGVsaW5pbmddOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lr aS9JbnN0cnVjdGlvbl9waXBlbGluaW5nCi0tW3N1cGVyc2NhbGFyIGV4ZWN1dGlvbl06IGh0dHBz Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N1cGVyc2NhbGFyX3Byb2Nlc3NvcgotLQotLVNJTUQg aW5zdHJ1Y3Rpb25zIGFyZSBhbHNvIHN1YmplY3QgdG8gdGhlc2Ugb3B0aW1pemF0aW9ucywgbWVh bmluZyBpdCBjYW4gZ2V0IHByZXR0eQotLWRpZmZpY3VsdCB0byBkZXRlcm1pbmUgd2hlcmUgdGhl IHNsb3dkb3duIGhhcHBlbnMuCi0tRm9yIGV4YW1wbGUsIGlmIHRoZSBwcm9maWxlciByZXBvcnRz IGEgc3RvcmUgb3BlcmF0aW9uIGlzIHNsb3csIG9uZSBvZiB0d28gdGhpbmdzCi0tY291bGQgYmUg aGFwcGVuaW5nOgotLQotLS0gdGhlIHN0b3JlIGlzIGxpbWl0ZWQgYnkgdGhlIENQVSdzIG1lbW9y eSBiYW5kd2lkdGgsIHdoaWNoIGlzIGFjdHVhbGx5IGFuIGlkZWFsCi0tICBzY2VuYXJpbywgYWxs IHRoaW5ncyBjb25zaWRlcmVkOwotLQotLS0gbWVtb3J5IGJhbmR3aWR0aCBpcyBub3doZXJlIG5l YXIgaXRzIHBlYWssIGJ1dCB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkIGlzIGF0IHRoZQotLSAgZW5k IG9mIGEgbG9uZyBjaGFpbiBvZiBvcGVyYXRpb25zLCBhbmQgdGhpcyBzdG9yZSBpcyB3aGVyZSB0 aGUgcHJvZmlsZXIKLS0gIGVuY291bnRlcmVkIHRoZSBwaXBlbGluZSBzdGFsbDsKLS0KLS1TaW5j ZSBtb3N0IHByb2ZpbGVycyBhcmUgc2ltcGxlIHRvb2xzIHdoaWNoIGRvbid0IHVuZGVyc3RhbmQg dGhlIHN1YnRsZXRpZXMgb2YKLS1pbnN0cnVjdGlvbiBzY2hlZHVsaW5nLCB5b3UKLS0KLS0jIyBB bmFseXppbmcgdGhlIG1hY2hpbmUgY29kZQotLQotLUNlcnRhaW4gdG9vbHMgaGF2ZSBrbm93bGVk Z2Ugb2YgaW50ZXJuYWwgQ1BVIG1pY3JvYXJjaGl0ZWN0dXJlLCBpLmUuIHRoZXkga25vdwotLQot LS0gaG93IG1hbnkgcGh5c2ljYWwgW3JlZ2lzdGVyIGZpbGVzXSBhIENQVSBhY3R1YWxseSBoYXMK LS0KLS0tIHdoYXQgaXMgdGhlIGxhdGVuY3kgLyB0aHJvdWdodHB1dCBvZiBhbiBpbnN0cnVjdGlv bgotLQotLS0gd2hhdCBbwrUtb3BzXSBhcmUgZ2VuZXJhdGVkIGZvciBhIHNldCBvZiBpbnN0cnVj dGlvbnMKLS0KLS1hbmQgbWFueSBvdGhlciBhcmNoaXRlY3R1cmFsIGRldGFpbHMuCi0tCi0tW3Jl Z2lzdGVyIGZpbGVzXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVnaXN0ZXJfZmls ZQotLVvCtS1vcHNdOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NaWNyby1vcGVyYXRp b24KLS0KLS1UaGVzZSB0b29scyBhcmUgdGhlcmVmb3JlIGFibGUgdG8gcHJvdmlkZSBhY2N1cmF0 ZSBpbmZvcm1hdGlvbiBhcyB0byB3aHkgc29tZQotLWluc3RydWN0aW9ucyBhcmUgaW5lZmZpY2ll bnQsIGFuZCB3aGVyZSB0aGUgYm90dGxlbmVjayBpcy4KLS0KLS1UaGUgZGlzYWR2YW50YWdlIGlz IHRoYXQgdGhlIG91dHB1dCBvZiB0aGVzZSB0b29scyByZXF1aXJlcyBhZHZhbmNlZCBrbm93bGVk Z2UKLS1vZiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSB0byB1bmRlcnN0YW5kLCBpLmUuIHRoZXkg KipjYW5ub3QqKiBwb2ludCBvdXQgd2hhdAotLXRoZSBjYXVzZSBvZiB0aGUgaXNzdWUgaXMgZXhw bGljaXRseS4KLS0KLS0jIyBJbnRlbCdzIEFyY2hpdGVjdHVyZSBDb2RlIEFuYWx5emVyIChJQUNB KQotLQotLVtJQUNBXSBpcyBhIGZyZWUgdG9vbCBvZmZlcmVkIGJ5IEludGVsIGZvciBhbmFseXpp bmcgdGhlIHBlcmZvcm1hbmNlIG9mIHZhcmlvdXMKLS1jb21wdXRhdGlvbmFsIGtlcm5lbHMuCi0t Ci0tQmVpbmcgYSBwcm9wcmlldGFyeSwgY2xvc2VkIHNvdXJjZSB0b29sLCBpdCBfb25seV8gc3Vw cG9ydHMgSW50ZWwncyDCtS1hcmNoZXMuCi0tCi0tW0lBQ0FdOiBodHRwczovL3NvZnR3YXJlLmlu dGVsLmNvbS9lbi11cy9hcnRpY2xlcy9pbnRlbC1hcmNoaXRlY3R1cmUtY29kZS1hbmFseXplcgot LQotLSMjIGxsdm0tbWNhCi0tCi0tPCEtLQotLVRPRE86IG9uY2UgTExWTSA3IGdldHMgcmVsZWFz ZWQsIHdyaXRlIGEgY2hhcHRlciBvbiB1c2luZyBsbHZtLW1jYQotLXdpdGggU0lNRCBkaXNhc3Nl bWJseS4KLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTQgKzAsMCBAQAotLSMgUGVyZm9ybWFuY2UgcHJv ZmlsaW5nCi0tCi0tV2hpbGUgdGhlIHJlc3Qgb2YgdGhlIGJvb2sgcHJvdmlkZXMgcHJhY3RpY2Fs IGFkdmljZSBvbiBob3cgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2UKLS1vZiBTSU1EIGNvZGUs IHRoaXMgY2hhcHRlciBpcyBkZWRpY2F0ZWQgdG8gWyoqcGVyZm9ybWFuY2UgcHJvZmlsaW5nKipd W3Byb2ZpbGluZ10uCi0tUHJvZmlsaW5nIGNvbnNpc3RzIG9mIHJlY29yZGluZyBhIHByb2dyYW0n cyBleGVjdXRpb24gaW4gb3JkZXIgdG8gaWRlbnRpZnkgcHJvZ3JhbQotLWhvdHNwb3RzLgotLQot LSoqSW1wb3J0YW50Kio6IG1vc3QgcHJvZmlsZXJzIHJlcXVpcmUgZGVidWcgaW5mb3JtYXRpb24g aW4gb3JkZXIgdG8gYWNjdXJhdGVseQotLWxpbmsgdGhlIHByb2dyYW0gaG90c3BvdHMgYmFjayB0 byB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSBsaW5lcy4gUnVzdCB3aWxsCi0tZGlzYWJs ZSBkZWJ1ZyBpbmZvIGdlbmVyYXRpb24gYnkgZGVmYXVsdCBmb3Igb3B0aW1pemVkIGJ1aWxkcywg YnV0IHlvdSBjYW4gY2hhbmdlCi0tdGhhdCBbaW4geW91ciBgQ2FyZ28udG9tbGBdW2NhcmdvLXJl Zl0uCi0tCi0tW3Byb2ZpbGluZ106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Byb2Zp bGluZ18oY29tcHV0ZXJfcHJvZ3JhbW1pbmcpCi0tW2NhcmdvLXJlZl06IGh0dHBzOi8vZG9jLnJ1 c3QtbGFuZy5vcmcvY2FyZ28vcmVmZXJlbmNlL21hbmlmZXN0Lmh0bWwjdGhlLXByb2ZpbGUtc2Vj dGlvbnMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL2F0dHJpYnV0ZS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVh dHVyZS9hdHRyaWJ1dGUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDUgKzAsMCBAQAotLSMgVGhlIGB0YXJnZXRfZmVhdHVyZWAgYXR0cmlidXRlCi0tCi0tPCEt LSBUT0RPOgotLUV4cGxhaW4gdGhlIGAjW3RhcmdldF9mZWF0dXJlXWAgYXR0cmlidXRlCi0tLS0+ Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVh dHVyZXMubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVh dHVyZXMubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICsw LDAgQEAKLS0jIEVuYWJsaW5nIHRhcmdldCBmZWF0dXJlcwotLQotLU5vdCBhbGwgcHJvY2Vzc29y cyBvZiBhIGNlcnRhaW4gYXJjaGl0ZWN0dXJlIHdpbGwgaGF2ZSBTSU1EIHByb2Nlc3NpbmcgdW5p dHMsCi0tYW5kIHVzaW5nIGEgU0lNRCBpbnN0cnVjdGlvbiB3aGljaCBpcyBub3Qgc3VwcG9ydGVk IHdpbGwgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IuCi0tCi0tVG8gYWxsb3cgYnVpbGRpbmcg c2FmZSwgcG9ydGFibGUgcHJvZ3JhbXMsIHRoZSBSdXN0IGNvbXBpbGVyIHdpbGwgKipub3QqKiwg YnkgZGVmYXVsdCwKLS1nZW5lcmF0ZSBhbnkgc29ydCBvZiB2ZWN0b3IgaW5zdHJ1Y3Rpb25zLCB1 bmxlc3MgaXQgY2FuIHN0YXRpY2FsbHkgZGV0ZXJtaW5lCi0tdGhleSBhcmUgc3VwcG9ydGVkLiBG b3IgZXhhbXBsZSwgb24gQU1ENjQsIFNTRTIgc3VwcG9ydCBpcyBhcmNoaXRlY3R1cmFsbHkgZ3Vh cmFudGVlZC4KLS1UaGUgYHg4Nl82NC1hcHBsZS1kYXJ3aW5gIHRhcmdldCBlbmFibGVzIHVwIHRv IFNTU0UzLiBUaGUgZ2V0IGEgZGVmaW50aXZlIGxpc3Qgb2YKLS13aGljaCBmZWF0dXJlcyBhcmUg ZW5hYmxlZCBieSBkZWZhdWx0IG9uIHZhcmlvdXMgcGxhdGZvcm1zLCByZWZlciB0byB0aGUgdGFy Z2V0Ci0tc3BlY2lmaWNhdGlvbnMgW2luIHRoZSBjb21waWxlcidzIHNvdXJjZSBjb2RlXVt0YXJn ZXRzXS4KLS0KLS1bdGFyZ2V0c106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC90 cmVlL21hc3Rlci9zcmMvbGlicnVzdGNfdGFyZ2V0L3NwZWMKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGlu aW5nLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJn ZXQtZmVhdHVyZS9pbmxpbmluZy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNSArMCwwIEBACi0tIyBJbmxpbmluZwotLQot LTwhLS0gVE9ETzoKLS1FeHBsYWluIGhvdyB0aGUgYCNbdGFyZ2V0X2ZlYXR1cmVdYCBhdHRyaWJ1 dGUgaW50ZXJhY3RzIHdpdGggaW5saW5pbmcKLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNl Lm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQt ZmVhdHVyZS9wcmFjdGljZS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzEgKzAsMCBAQAotLSMgVGFyZ2V0IGZlYXR1cmVz IGluIHByYWN0aWNlCi0tCi0tVXNpbmcgYFJVU1RGTEFHU2Agd2lsbCBhbGxvdyB0aGUgY3JhdGUg YmVpbmcgY29tcGlsZWQsIGFzIHdlbGwgYXMgYWxsIGl0cwotLXRyYW5zaXRpdmUgZGVwZW5kZW5j aWVzIHRvIHVzZSBjZXJ0YWluIHRhcmdldCBmZWF0dXJlcy4KLS0KLS1BIHRlaG5pcXVlIHVzZWQg dG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yIGF0IHJ1bnRpbWUgaXMgdG8gY29tcGlsZSBhbmQK LS1zaGlwIG11bHRpcGxlIGJpbmFyaWVzLCBlYWNoIGNvbXBpbGVkIHdpdGggYSBjZXJ0YWluIHNl dCBvZiBmZWF0dXJlcy4KLS1UaGlzIG1pZ2h0IG5vdCBiZSBmZWFzaWJsZSBpbiBzb21lIGNhc2Vz LCBhbmQgY2FuIHF1aWNrbHkgZ2V0IG91dCBvZiBoYW5kCi0tYXMgbW9yZSBhbmQgbW9yZSB2ZWN0 b3IgZXh0ZW5zaW9ucyBhcmUgYWRkZWQgdG8gYW4gYXJjaGl0ZWN0dXJlLgotLQotLVJ1c3QgY2Fu IGJlIG1vcmUgZmxleGlibGU6IHlvdSBjYW4gYnVpbGQgYSBzaW5nbGUgYmluYXJ5L2xpYnJhcnkg d2hpY2ggYXV0b21hdGljYWxseQotLXBpY2tzIHRoZSBiZXN0IHN1cHBvcnRlZCB2ZWN0b3IgaW5z dHJ1Y3Rpb25zIGRlcGVuZGluZyBvbiB0aGUgaG9zdCBtYWNoaW5lLgotLVRoZSB0cmljayBjb25z aXN0cyBvZiBtb25vbW9ycGhpemluZyBwYXJ0cyBvZiB0aGUgY29kZSBkdXJpbmcgYnVpbGRpbmcs IGFuZCB0aGVuCi0tdXNpbmcgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24gdG8gc2VsZWN0IHRo ZSByaWdodCBjb2RlIHBhdGggd2hlbiBydW5uaW5nLgotLQotLTwhLS0gVE9ETwotLUV4cGxhaW4g aG93IHRvIGNyZWF0ZSBlZmZpY2llbnQgZnVuY3Rpb25zIHRoYXQgZGlzcGF0Y2ggdG8gZGlmZmVy ZW50Ci0taW1wbGVtZW50YXRpb25zIGF0IHJ1bi10aW1lIHdpdGhvdXQgaXNzdWVzIChlLmcuIHVz aW5nIGAjW2lubGluZShhbHdheXMpXWAgZm9yCi0tdGhlIGltcGxzLCB3cmFwcGluZyBpbiBgI1t0 YXJnZXRfZmVhdHVyZV1gLCBhbmQgdGhlIHdyYXBwaW5nIHRob3NlIGluIGEgZnVuY3Rpb24KLS10 aGF0IGRvZXMgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24pLgotLS0tPgotLQotLSoqTk9URSoq ICh4ODYgc3BlY2lmaWMpOiBiZWNhdXNlIHRoZSBBVlggKDI1Ni1iaXQpIHJlZ2lzdGVycyBleHRl bmQgdGhlIGV4aXN0aW5nCi0tU1NFICgxMjgtYml0KSByZWdpc3RlcnMsIG1peGluZyBTU0UgYW5k IEFWWCBpbnN0cnVjdGlvbnMgaW4gYSBwcm9ncmFtIGNhbiBjYXVzZQotLXBlcmZvcm1hbmNlIGlz c3Vlcy4KLS0KLS1UaGUgc29sdXRpb24gaXMgdG8gY29tcGlsZSBhbGwgY29kZSwgZXZlbiB0aGUg Y29kZSB3cml0dGVuIHdpdGggMTI4LWJpdCB2ZWN0b3JzLAotLXdpdGggdGhlIEFWWCB0YXJnZXQg ZmVhdHVyZSBlbmFibGVkLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGNvbXBpbGVyIHRvIHByZWZpeCB0 aGUKLS1nZW5lcmF0ZWQgaW5zdHJ1Y3Rpb25zIHdpdGggdGhlIFtWRVhdIHByZWZpeC4KLS0KLS1b VkVYXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVkVYX3ByZWZpeAotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZl YXR1cmUvcnVudGltZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDUgKzAsMCBAQAotLSMgRGV0ZWN0 aW5nIGhvc3QgZmVhdHVyZXMgYXQgcnVudGltZQotLQotLTwhLS0gVE9ETzoKLS1FeHBsYWluIGNv c3QgKGhvdyBpdCB3b3JrcykuCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJl L3J1c3RmbGFncy5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSw3NyArMCwwIEBACi0tIyBVc2luZyBSVVNURkxBR1MKLS0K LS1PbmUgb2YgdGhlIGVhc2llc3Qgd2F5cyB0byBiZW5lZml0IGZyb20gU0lNRCBpcyB0byBhbGxv dyB0aGUgY29tcGlsZXIKLS10byBnZW5lcmF0ZSBjb2RlIHVzaW5nIGNlcnRhaW4gdmVjdG9yIGlu c3RydWN0aW9uIGV4dGVuc2lvbnMuCi0tCi0tVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBSVVNU RkxBR1NgIGNhbiBiZSB1c2VkIHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29kZQotLWdlbmVyYXRpb24g dG8gdGhlIFJ1c3QgY29tcGlsZXIuIFRoZXNlIGZsYWdzIHdpbGwgYWZmZWN0ICoqYWxsKiogY29t cGlsZWQgY3JhdGVzLgotLQotLVRoZXJlIGFyZSB0d28gZmxhZ3Mgd2hpY2ggY2FuIGJlIHVzZWQg dG8gZW5hYmxlIHNwZWNpZmljIHZlY3RvciBleHRlbnNpb25zOgotLQotLSMjIHRhcmdldC1mZWF0 dXJlCi0tCi0tLSBTeW50YXg6IGAtQyB0YXJnZXQtZmVhdHVyZT08ZmVhdHVyZXM+YAotLQotLS0g UHJvdmlkZXMgdGhlIGNvbXBpbGVyIHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgc2V0IG9mIGluc3Ry dWN0aW9uIGV4dGVuc2lvbnMKLS0gIHRvIGVuYWJsZS4KLS0KLS0gICoqRXhhbXBsZSoqOiBVc2Ug YC1DIHRhcmdldC1mZWF0dXJlPStzc2UzLCthdnhgIHRvIGVuYWJsZSBnZW5lcmF0aW5nIGluc3Ry dWN0aW9ucwotLSAgZm9yIFtTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zIDNdKGh0dHBzOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL1NTRTMpIGFuZAotLSAgW0FkdmFuY2VkIFZlY3RvciBFeHRlbnNp b25zXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BZHZhbmNlZF9WZWN0b3JfRXh0ZW5z aW9ucykuCi0tCi0tLSBUbyBsaXN0IHRhcmdldCB0cmlwbGVzIGZvciBhbGwgdGFyZ2V0cyBzdXBw b3J0ZWQgYnkgUnVzdCwgdXNlOgotLQotLSAgYGBgc2gKLS0gIHJ1c3RjIC0tcHJpbnQgdGFyZ2V0 LWxpc3QKLS0gIGBgYAotLQotLS0gVG8gbGlzdCBhbGwgc3VwcG9ydCB0YXJnZXQgZmVhdHVyZXMg Zm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxlLCB1c2U6Ci0tCi0tICBgYGBzaAotLSAgcnVzdGMg LS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQgdGFyZ2V0LWZlYXR1cmVzCi0tICBgYGAKLS0KLS0t IE5vdGUgdGhhdCBhbGwgQ1BVIGZlYXR1cmVzIGFyZSBpbmRlcGVuZGVudCwgYW5kIHdpbGwgaGF2 ZSB0byBiZSBlbmFibGVkIGluZGl2aWR1YWxseS4KLS0KLS0gICoqRXhhbXBsZSoqOiBTZXR0aW5n IGAtQyB0YXJnZXQtZmVhdHVyZT0rYXZ4MmAgd2lsbCBfbm90XyBlbmFibGUgYGZtYWAsIGV2ZW4g dGhvdWdoCi0tICBhbGwgQ1BVcyB3aGljaCBzdXBwb3J0IEFWWDIgYWxzbyBzdXBwb3J0IEZNQS4g VG8gZW5hYmxlIGJvdGgsIG9uZSBoYXMgdG8gdXNlCi0tICBgLUMgdGFyZ2V0LWZlYXR1cmU9K2F2 eDIsK2ZtYWAKLS0KLS0tIFNvbWUgZmVhdHVyZXMgYWxzbyBkZXBlbmQgb24gb3RoZXIgZmVhdHVy ZXMsIHdoaWNoIG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhlCi0tICB0YXJnZXQgaW5zdHJ1Y3Rp b25zIHRvIGJlIGdlbmVyYXRlZC4KLS0KLS0gICoqRXhhbXBsZSoqOiBVbmxlc3MgYHY3YCBpcyBz cGVjaWZpZWQgYXMgdGhlIHRhcmdldCBDUFUgKHNlZSBiZWxvdyksIHRvIGVuYWJsZQotLSAgTkVP TiBvbiBBUk0gaXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBgLUMgdGFyZ2V0LWZlYXR1cmU9K3Y3LCtu ZW9uYC4KLS0KLS0jIyB0YXJnZXQtY3B1Ci0tCi0tLSBTeW50YXg6IGAtQyB0YXJnZXQtY3B1PTxj cHU+YAotLQotLS0gU2V0cyB0aGUgaWRlbnRpZmllciBvZiBhIENQVSBmYW1pbHkgLyBtb2RlbCBm b3Igd2hpY2ggdG8gYnVpbGQgYW5kIG9wdGltaXplIHRoZSBjb2RlLgotLQotLSAgKipFeGFtcGxl Kio6IGBSVVNURkxBR1M9Jy1DIHRhcmdldC1jcHU9Y29ydGV4LWE3NSdgCi0tCi0tLSBUbyBsaXN0 IGFsbCBzdXBwb3J0ZWQgdGFyZ2V0IENQVXMgZm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxlLCB1 c2U6Ci0tCi0tICBgYGBzaAotLSAgcnVzdGMgLS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQgdGFy Z2V0LWNwdXMKLS0gIGBgYAotLQotLSAgKipFeGFtcGxlKio6Ci0tCi0tICBgYGBzaAotLSAgcnVz dGMgLS10YXJnZXQ9aTY4Ni1wYy13aW5kb3dzLW1zdmMgLS1wcmludCB0YXJnZXQtY3B1cwotLSAg YGBgCi0tCi0tLSBUaGUgY29tcGlsZXIgd2lsbCB0cmFuc2xhdGUgdGhpcyBpbnRvIGEgbGlzdCBv ZiB0YXJnZXQgZmVhdHVyZXMuIFRoZXJlZm9yZSwKLS0gIGluZGl2aWR1YWwgZmVhdHVyZSBjaGVj a3MgKGAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICIuLi4iKV1gKSB3aWxsIHN0aWxsCi0tICB3b3Jr IHByb3Blcmx5LgotLQotLS0gSXQgd2lsbCBjYXVzZSB0aGUgY29kZSBnZW5lcmF0b3IgdG8gb3B0 aW1pemUgdGhlIGdlbmVyYXRlZCBjb2RlIGZvciB0aGF0Ci0tICBzcGVjaWZpYyBDUFUgbW9kZWwu Ci0tCi0tLSBVc2luZyBgbmF0aXZlYCBhcyB0aGUgQ1BVIG1vZGVsIHdpbGwgY2F1c2UgUnVzdCB0 byBnZW5lcmF0ZSBhbmQgb3B0aW1pemUgY29kZQotLSAgZm9yIHRoZSBDUFUgcnVubmluZyB0aGUg Y29tcGlsZXIuIEl0IGlzIHVzZWZ1bCB3aGVuIGJ1aWxkaW5nIHByb2dyYW1zIHdoaWNoIHlvdQot LSAgcGxhbiB0byBvbmx5IHVzZSBsb2NhbGx5LiBUaGlzIHNob3VsZCBuZXZlciBiZSB1c2VkIHdo ZW4gdGhlIGdlbmVyYXRlZCBwcm9ncmFtcwotLSAgYXJlIG1lYW50IHRvIGJlIHJ1biBvbiBvdGhl ciBjb21wdXRlcnMsIHN1Y2ggYXMgd2hlbiBwYWNrYWdpbmcgZm9yIGRpc3RyaWJ1dGlvbgotLSAg b3IgY3Jvc3MtY29tcGlsaW5nLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzYgKzAsMCBAQAotLSMgVmVydGljYWwgYW5kIGhv cml6b250YWwgb3BlcmF0aW9ucwotLQotLUluIFNJTUQgdGVybWlub2xvZ3ksIGVhY2ggdmVjdG9y IGhhcyBhIGNlcnRhaW4gIndpZHRoIiAobnVtYmVyIG9mIGxhbmVzKS4KLS1BIHZlY3RvciBwcm9j ZXNzb3IgaXMgYWJsZSB0byBwZXJmb3JtIHR3byBraW5kcyBvZiBvcGVyYXRpb25zIG9uIGEgdmVj dG9yOgotLQotLS0gVmVydGljYWwgb3BlcmF0aW9uczoKLS0gIG9wZXJhdGUgb24gdHdvIHZlY3Rv cnMgb2YgdGhlIHNhbWUgd2lkdGgsIHJlc3VsdCBoYXMgc2FtZSB3aWR0aAotLQotLSoqRXhhbXBs ZSoqOiB2ZXJ0aWNhbCBhZGRpdGlvbiBvZiB0d28gYGYzMng0YCB2ZWN0b3JzCi0tCi0tICAgICAg JTAgICAgID09IHwgMiB8IC0zLjUgfCAgMCB8IDcgfAotLSAgICAgICAgICAgICAgICAgICsgICAg ICsgICAgICsgICArCi0tICAgICAgJTEgICAgID09IHwgNCB8ICAxLjUgfCAtMSB8IDAgfAotLSAg ICAgICAgICAgICAgICAgID0gICAgID0gICAgID0gICA9Ci0tICAgICUwICsgJTEgID09IHwgNiB8 ICAtMiAgfCAtMSB8IDcgfAotLQotLS0gSG9yaXpvbnRhbCBvcGVyYXRpb25zOgotLSAgcmVkdWNl IHRoZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyBpbiBzb21lIHdheSwKLS0gIHRoZSByZXN1bHQn cyBlbGVtZW50cyBjb21iaW5lIGluZm9ybWF0aW9uIGZyb20gdGhlIHR3byBvcmlnaW5hbCBvbmVz Ci0tCi0tKipFeGFtcGxlKio6IGhvcml6b250YWwgYWRkaXRpb24gb2YgdHdvIGB1NjR4MmAgdmVj dG9ycwotLQotLSAgICAgICUwICAgICA9PSB8IDEgfCAgMyB8Ci0tICAgICAgICAgICAgICAgICAg 4pSU4pSAK+KUgOKUgOKUgOKUmAotLSAgICAgICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSQCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggotLSAgICAgICUx ICAgICA9PSB8IDQgfCAtMSB8ICDilIIKLS0gICAgICAgICAgICAgICAgICDilJTilIAr4pSA4pSA 4pSYICAgIOKUggotLSAgICAgICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSQICAg4pSCCi0t ICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg4pSCCi0tICAgICAgICAgICAgICAgICAg4pSM 4pSA4pSA4pSA4pSA4pSA4pSC4pSA4pSA4pSA4pSYCi0tICAgICAgICAgICAgICAgICAg4pa8ICAg ICDilrwKLS0gICAgJTAgKyAlMSAgPT0gfCA0IHwgICAzIHwKLS0KLS0jIyBQZXJmb3JtYW5jZSBj b25zaWRlcmF0aW9uIG9mIGhvcml6b250YWwgb3BlcmF0aW9ucwotLQotLVRoZSByZXN1bHQgb2Yg dmVydGljYWwgb3BlcmF0aW9ucywgbGlrZSB2ZWN0b3IgbmVnYXRpb246IGAtYWAsIGZvciBhIGdp dmVuIGxhbmUsCi0tZG9lcyBub3QgZGVwZW5kIG9uIHRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlv biBmb3IgdGhlIG90aGVyIGxhbmVzLiBUaGUgcmVzdWx0Ci0tb2YgaG9yaXpvbnRhbCBvcGVyYXRp b25zLCBsaWtlIHRoZSB2ZWN0b3IgYHN1bWAgcmVkdWN0aW9uOiBgYS5zdW0oKWAsIGRlcGVuZHMg b24KLS10aGUgdmFsdWUgb2YgYWxsIHZlY3RvciBsYW5lcy4KLS0KLS1JbiB2aXJ0dWFsbHkgYWxs IGFyY2hpdGVjdHVyZXMgdmVydGljYWwgb3BlcmF0aW9ucyBhcmUgZmFzdCwgd2hpbGUgaG9yaXpv bnRhbAotLW9wZXJhdGlvbnMgYXJlLCBieSBjb21wYXJpc29uLCB2ZXJ5IHNsb3cuCi0tCi0tQ29u c2lkZXIgdGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGZvciBjb21wdXRpbmcgdGhlIHN1bSBv ZiBhbGwgYGYzMmAgdmFsdWVzCi0taW4gYSBzbGljZToKLS0KLS1gYGBydXN0Ci0tZm4gZmFzdF9z dW0oeDogJltmMzJdKSAtPiBmMzIgewotLSAgICBhc3NlcnQhKHgubGVuKCkgJSA0ID09IDApOwot LSAgICBsZXQgbXV0IHN1bSA9IGYzMng0OjpzcGxhdCgwLik7IC8vIFswLiwgMC4sIDAuLCAwLl0K LS0gICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkgewotLSAgICAgICAgc3VtICs9 IGYzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKTsKLS0gICAgfQotLSAgICBzdW0u c3VtKCkKLS19Ci0tCi0tZm4gc2xvd19zdW0oeDogJltmMzJdKSAtPiBmMzIgewotLSAgICBhc3Nl cnQhKHgubGVuKCkgJSA0ID09IDApOwotLSAgICBsZXQgbXV0IHN1bTogZjMyID0gMC47Ci0tICAg IGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKLS0gICAgICAgIHN1bSArPSBmMzJ4 NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSkuc3VtKCk7Ci0tICAgIH0KLS0gICAgc3Vt Ci0tfQotLWBgYAotLQotLVRoZSBpbm5lciBsb29wIG92ZXIgdGhlIHNsaWNlIGlzIHdoZXJlIHRo ZSBidWxrIG9mIHRoZSB3b3JrIGFjdHVhbGx5IGhhcHBlbnMuCi0tVGhlcmUsIHRoZSBgZmFzdF9z dW1gIGZ1bmN0aW9uIHBlcmZvcm0gdmVydGljYWwgb3BlcmF0aW9ucyBpbnRvIGEgdmVjdG9yLCBk b2luZwotLWEgc2luZ2xlIGhvcml6b250YWwgcmVkdWN0aW9uIGF0IHRoZSBlbmQsIHdoaWxlIHRo ZSBgc2xvd19zdW1gIGZ1bmN0aW9uIHBlcmZvcm1zCi0taG9yaXpvbnRhbCB2ZWN0b3Igb3BlcmF0 aW9ucyBpbnNpZGUgb2YgdGhlIGxvb3AuCi0tCi0tT24gYWxsIHdpZGVseS11c2VkIGFyY2hpdGVj dHVyZXMsIGBmYXN0X3N1bWAgaXMgYSBsYXJnZSBjb25zdGFudCBmYWN0b3IgZmFzdGVyCi0tdGhh biBgc2xvd19zdW1gLiBZb3UgY2FuIHJ1biB0aGUgW3NsaWNlX3N1bV0oKSBleGFtcGxlIGFuZCBz ZWUgZm9yIHlvdXJzZWxmLiBPbgotLXRoZSBwYXJ0aWN1bGFyIG1hY2hpbmUgdGVzdGVkIHRoZXJl IHRoZSBhbGdvcml0aG0gdXNpbmcgdGhlIGhvcml6b250YWwgdmVjdG9yCi0tYWRkaXRpb24gaXMg Mi43eCBzbG93ZXIgdGhhbiB0aGUgb25lIHVzaW5nIHZlcnRpY2FsIHZlY3RvciBvcGVyYXRpb25z IQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21s IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21sCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3J1c3Rm bXQudG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNSArMCww IEBACi0tbWF4X3dpZHRoID0gMTEwCi0tdXNlX3NtYWxsX2hldXJpc3RpY3MgPSAiTWF4IgotLXdy YXBfY29tbWVudHMgPSB0cnVlCi0tZWRpdGlvbiA9ICIyMDE4IgotLWVycm9yX29uX2xpbmVfb3Zl cmZsb3cgPSB0cnVlCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2JpdF9tYW5pcC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMTI5ICswLDAgQEAKLS0vLyEgQml0IG1hbmlwdWxhdGlvbnMuCi0tCi0tbWFjcm9f cnVsZXMhIGltcGxfYml0X21hbmlwIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRp ZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiBvbmVzIGluIHRoZSBi aW5hcnkgcmVwcmVzZW50YXRpb24gb2YKLS0gICAgICAgICAgICAvLy8gdGhlIGxhbmVzIG9mIGBz ZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gY291bnRf b25lcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVnZW46OmJp dF9tYW5pcDo6Qml0TWFuaXA6OmN0cG9wKHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgemVyb3MgaW4gdGhlIGJpbmFyeSByZXBy ZXNlbnRhdGlvbiBvZgotLSAgICAgICAgICAgIC8vLyB0aGUgbGFuZXMgb2YgYHNlbGZgLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBjb3VudF96ZXJvcyhzZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6 Qml0TWFuaXA6OmN0cG9wKCFzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAv Ly8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgaW4gdGhlIGJpbmFyeQotLSAg ICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGFuZXMgb2YgYHNlbGZgLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsZWFkaW5nX3plcm9zKHNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzdXBlcjo6Y29kZWdlbjo6Yml0X21hbmlw OjpCaXRNYW5pcDo6Y3RseihzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAv Ly8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm9zIGluIHRoZSBiaW5hcnkKLS0g ICAgICAgICAgICAvLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGxhbmVzIG9mIGBzZWxmYC4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gdHJhaWxpbmdfemVyb3Mo c2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVyOjpjb2RlZ2VuOjpiaXRfbWFu aXA6OkJpdE1hbmlwOjpjdHR6KHNlbGYpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgICNbYWxsb3cob3ZlcmZsb3dpbmdfbGl0 ZXJhbHMpXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9iaXRfbWFuaXA+XSB7Ci0t ICAgICAgICAgICAgICAgICAgICAjIVthbGxvdyhjb25zdF9pdGVtX211dGF0aW9uKV0KLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0gICAgICAgICAgICAgICAgICAgIGNv bnN0IExBTkVfV0lEVEg6IHVzaXplID0gbWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgKiA4Owot LQotLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3RfZnVuYyB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgKCR4OmV4cHIsICRmdW5jOmlkZW50KSA9PiB7ewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFjdHVhbCA9ICR4OwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWN0dWFsID0gYWN0dWFsLnJlcGxhY2UoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkeC5leHRyYWN0KGkpLiRmdW5jKCkgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0gJHguJGZ1bmMoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhY3R1YWwsIGV4cGVjdGVkKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJZVEVTOiBbdTg7IDY0XSA9IFsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAgICAgICAg ICAgICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAotLSAgICAgICAgICAg ICAgICAgICAgICAgIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsCi0tICAgICAgICAg ICAgICAgICAgICBdOwotLQotLSAgICAgICAgICAgICAgICAgICAgZm4gbG9hZF9ieXRlcygpIC0+ ICRpZCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1zOiAmbXV0IFskZWxlbV90 eV0gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGljZTo6ZnJvbV9y YXdfcGFydHNfbXV0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURVMuYXNf bXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaWQ6OmxhbmVzKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6ZnJv bV9zbGljZV91bmFsaWduZWQoZWxlbXMpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGNvdW50 X29uZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0 KDApLCBjb3VudF9vbmVzKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRp ZDo6c3BsYXQoITApLCBjb3VudF9vbmVzKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgY291bnRfb25lcyk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIGNvdW50X3plcm9zKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEo JGlkOjpzcGxhdCgwKSwgY291bnRfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50X3plcm9zKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgY291bnRfemVyb3MpOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBsZWFkaW5nX3plcm9zKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgbGVhZGluZ196ZXJvcyk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDEpLCBsZWFkaW5nX3plcm9zKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzb21lIGltcGxlbWVudGF0aW9ucyB1c2UgYHBz aHVmYmAgd2hpY2ggaGFzIHVuaXF1ZQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlaGF2 aW9yIHdoZW4gdGhlIDh0aCBiaXQgaXMgc2V0LgotLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAxMCksIGxlYWRpbmdfemVyb3MpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGxlYWRpbmdfemVy b3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMSA8PCAoTEFORV9XSURUSCAtIDEpKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ196ZXJvcwotLSAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVz KCksIGxlYWRpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0cmFpbGluZ196 ZXJvcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQo MCksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KCRpZDo6c3BsYXQoMSksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMGIxMDAwXzAwMTApLCB0cmFpbGluZ196ZXJvcyk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgdHJhaWxp bmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMSA8PCAoTEFORV9XSURUSCAtIDEpKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdfemVyb3MKLS0gICAgICAgICAg ICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9h ZF9ieXRlcygpLCB0cmFpbGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNr LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdG1hc2sucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNrLnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvYml0bWFzay5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsNzkgKzAsMCBAQAotLS8vISBCaXRtYXNrIEFQSQotLQotLW1hY3JvX3J1 bGVzISBpbXBsX2JpdG1hc2sgewotLSAgICAoJGlkOmlkZW50IHwgJGliaXRtYXNrX3R5OmlkZW50 IHwgKCRzZXQ6ZXhwciwgJGNsZWFyOmV4cHIpCi0tICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0t ICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBiaXRtYXNrIHdp dGggdGhlIE1TQiBvZiBlYWNoIHZlY3RvciBsYW5lLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBJZiB0aGUgdmVjdG9yIGhhcyBsZXNzIHRoYW4gOCBsYW5lcywgdGhlIGJpdHMg dGhhdCBkbyBub3QKLS0gICAgICAgICAgICAvLy8gY29ycmVzcG9uZCB0byBhbnkgdmVjdG9yIGxh bmVzIGFyZSBjbGVhcmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiBiaXRtYXNrKHNlbGYpIC0+ICRpYml0bWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7IGNvZGVnZW46Omxsdm06OnNpbWRfYml0bWFzayhzZWxmLjApIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgI1tj Zmcobm90KAotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjEwCi0tICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfZW5kaWFuID0gImJpZyIKLS0gICAgICAgICAgICAgICAgKSldCi0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2JpdG1hc2s+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIGJpdG1hc2soKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gY2xlYXIgYWxsIGxhbmVzCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRp ZDo6c3BsYXQoJGNsZWFyIGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiaXRt YXNrOiAkaWJpdG1hc2tfdHkgPSAwOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gc2V0IGV2ZW4gbGFuZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYyA9 ICRpZDo6c3BsYXQoJGNsZWFyIGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg JSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJl cGxhY2UoaSwgJHNldCBhcyBfKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVh dGUgYml0bWFzayB3aXRoIGV2ZW4gbGFuZXMgc2V0OgotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp dG1hc2sgfD0gMSA8PCBpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0tCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gc2V0IG9kZCBsYW5lcwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjID0g JGlkOjpzcGxhdCgkY2xlYXIgYXMgXyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAl IDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMucmVw bGFjZShpLCAkc2V0IGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0 ZSBiaXRtYXNrIHdpdGggb2RkIGxhbmVzIHNldDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRt YXNrIHw9IDEgPDwgaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZl Yy5iaXRtYXNrKCksIGJpdG1hc2spOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNl dCBhbGwgbGFuZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxh dCgkc2V0IGFzIF8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazog JGliaXRtYXNrX3R5ID0gMDsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4k aWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXNrIHw9IDEg PDwgaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2Nhc3QvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY2FzdC9tYWNyb3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODIgKzAsMCBAQAotLS8v ISBNYWNyb3MgaW1wbGVtZW50aW5nIGBGcm9tQ2FzdGAKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9m cm9tX2Nhc3RfIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50 KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0PCRmcm9tX3R5 PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9t X2Nhc3QoeDogJGZyb21fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Omxsdm06OnNpbWRfY2FzdDsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISgkZnJv bV90eTo6bGFuZXMoKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgU2ltZCh1bnNh ZmUgeyBzaW1kX2Nhc3QoeC4wKSB9KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8g JGZyb21fdHk+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVzKCkpOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3Qgewot LSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4gewot LSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF8hKCRpZFskdGVzdF90dF06 ICRmcm9tX3R5KTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfZnJvbV9jYXN0X21hc2tfIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9t X3R5OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0 PCRmcm9tX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBmcm9tX2Nhc3QoeDogJGZyb21fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBk ZWJ1Z19hc3NlcnRfZXEhKCRmcm9tX3R5OjpsYW5lcygpLCAkaWQ6OmxhbmVzKCkpOwotLSAgICAg ICAgICAgICAgICB4Lm5lKCRmcm9tX3R5OjpkZWZhdWx0KCkpCi0tICAgICAgICAgICAgICAgICAg ICAuc2VsZWN0KCRpZDo6c3BsYXQodHJ1ZSksICRpZDo6c3BsYXQoZmFsc2UpKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwgJGZy b21fdHk6OmxhbmVzKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB4ID0gJGZy b21fdHk6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbTogJGlkID0g eC5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShtLm5vbmUoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2Fz dF9tYXNrIHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQp LCopID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfbWFza18h KCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci0tCi0t I1thbGxvdyh1bnVzZWQpXQotLW1hY3JvX3J1bGVzISBpbXBsX2ludG9fY2FzdCB7Ci0tICAgICgk aWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7Ci0tICAgICAg ICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV9jYXN0XyEoJGZyb21fdHlbJHRlc3RfdHRdOiAk aWQpOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nh c3QvdjEyOC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzAy ICswLDAgQEAKLS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMg Zm9yIHBvcnRhYmxlIDEyOC1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQot LXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoaTh4MTZbdGVzdF92MTI4XTogdTh4 MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2 LCBtMzJ4MTYpOwotLWltcGxfZnJvbV9jYXN0ISh1OHgxNlt0ZXN0X3YxMjhdOiBpOHgxNiwgbTh4 MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngx Nik7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4MTZbdGVzdF92MTI4XTogaTh4MTYsIHU4eDE2 LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYp OwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTE2eDhbdGVzdF92MTI4XTogaTh4OCwKLS0g ICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4 OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0t ICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAg IHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTE2 eDhbdGVzdF92MTI4XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgs Ci0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAg ICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0 eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWlt cGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMTZ4OFt0ZXN0X3YxMjhdOiBpOHg4LAotLSAgICB1 OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIGkzMng4LAot LSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAg dTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNp emV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMzJ4 NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwK LS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAg IG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4 NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4 NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAot LSAgICB1MzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAg ICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgZjMy eDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAot LSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0g ICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9t X2Nhc3QhKAotLSAgICBmMzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBt OHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwK LS0gICAgdTMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAg IGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0x Mjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0t aW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG0zMng0W3Rlc3RfdjEyOF06IGk4eDQsCi0tICAg IHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQs Ci0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHg0LAotLSAg ICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUx Mjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBt c2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGk2NHgyW3Rlc3RfdjEyOF06 IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwK LS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAg IG0zMngyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4 eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6 ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU2NHgyW3Rl c3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAg ICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMy eDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAot LSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAot LSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAg IGY2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkx NngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwK LS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAg IG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBp c2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2Fz dF9tYXNrISgKLS0gICAgbTY0eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAg bTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIs Ci0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAg ICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBt MTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwot LQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaXNpemV4Mlt0ZXN0X3YxMjhdOiBpOHgyLAotLSAg ICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngy LAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0g ICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkx Mjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1z aXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdXNpemV4Mlt0ZXN0X3YxMjhdOiBp OHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0t ICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBt MzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIs Ci0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIs Ci0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtc2l6ZXgy W3Rlc3RfdjEyOF06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAot LSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAg ZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgy LAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwK LS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MgotLSk7Ci0tCi0tLy8gRklYTUVbdGVzdF92MTI4 XTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcnMgaW50b19jYXN0IGltcGxzCi0taW1wbF9m cm9tX2Nhc3QhKGkxMjh4MVt0ZXN0X3YxMjhdOiB1MTI4eDEsIG0xMjh4MSk7Ci0taW1wbF9mcm9t X2Nhc3QhKHUxMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIG0xMjh4MSk7Ci0taW1wbF9mcm9tX2Nh c3QhKG0xMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIHUxMjh4MSk7Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9jYXN0L3YxNi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNjggKzAsMCBAQAotLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0 aW9ucyBmb3IgcG9ydGFibGUgMTYtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0K LS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpOHgyW3Rlc3Rf djE2XTogdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBt MTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIs Ci0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAg ICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAg ICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU4 eDJbdGVzdF92MTZdOiBpOHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIs Ci0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAg ICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0 eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpl eDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21h c2shKAotLSAgICBtOHgyW3Rlc3RfdjE2XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgaTE2eDIs Ci0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAg ICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgy LAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MjU2LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMjk4ICswLDAgQEAKLS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9D YXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDI1Ni1iaXQgd2lkZSB2ZWN0b3JzCi0t I1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEo aTh4MzJbdGVzdF92MjU2XTogdTh4MzIsIG04eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsK LS1pbXBsX2Zyb21fY2FzdCEodTh4MzJbdGVzdF92MjU2XTogaTh4MzIsIG04eDMyLCBpMTZ4MzIs IHUxNngzMiwgbTE2eDMyKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrIShtOHgzMlt0ZXN0X3YyNTZd OiBpOHgzMiwgdTh4MzIsIGkxNngzMiwgdTE2eDMyLCBtMTZ4MzIpOwotLQotLWltcGxfZnJvbV9j YXN0IShpMTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgdTE2eDE2LCBtMTZ4 MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nhc3QhKHUx NngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIG0xNngxNiwgaTMy eDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrIShtMTZ4 MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIGkzMngx NiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBp MzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4 OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0t ICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBt NjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0t aW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1MzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAotLSAgICB1OHg4 LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAg ICBpMzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0 eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4 OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmMzJ4OFt0ZXN0 X3YyNTZdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAg dTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIG0zMng4 LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0g ICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9t X2Nhc3RfbWFzayEoCi0tICAgIG0zMng4W3Rlc3RfdjI1Nl06IGk4eDgsCi0tICAgIHU4eDgsCi0t ICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkz Mng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwK LS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAot LSAgICBtc2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGk2NHg0W3Rlc3Rf djI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1 MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQs Ci0tICAgIG0zMng0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAg ICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAg ICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU2 NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0 LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0g ICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02 NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6 ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEo Ci0tICAgIGY2NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0t ICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQs Ci0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAot LSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zy b21fY2FzdF9tYXNrISgKLS0gICAgbTY0eDRbdGVzdF92MjU2XTogaTh4NCwKLS0gICAgdTh4NCwK LS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAg aTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0 LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAot LSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQK LS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDIs Ci0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAg bTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngy LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0g ICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0t ICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTEyOHgyW3Rlc3RfdjI1 Nl06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4 MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0t ICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBt NjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVz aXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBt MTI4eDJbdGVzdF92MjU2XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2 eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAot LSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAg bTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgaXNp emV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0tCi0taW1wbF9mcm9tX2Nh c3QhKAotLSAgICBpc2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04 eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAot LSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAg dTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4 eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1w bF9mcm9tX2Nhc3QhKAotLSAgICB1c2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQs Ci0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAg IGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4 NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAot LSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgbXNpemV4NAot LSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG1zaXpleDRbdGVzdF92MjU2XTogaTh4 NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAg ICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMy eDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAot LSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAot LSAgICB1c2l6ZXg0Ci0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY2FzdC92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY2FzdC92MzIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9jYXN0L3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMzIgKzAsMCBAQAotLS8vISBg RnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMzIt Yml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0t Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpOHg0W3Rlc3RfdjMyXTogdTh4NCwKLS0gICAgbTh4 NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0t ICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1 NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4 NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6 ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHU4eDRbdGVzdF92MzJdOiBpOHg0LAot LSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBp MzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQs Ci0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0g ICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0t ICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtOHg0W3Rlc3Rf djMyXTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBt MTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQs Ci0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAg ICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAg ICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAg IGkxNngyW3Rlc3RfdjMyXTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgdTE2 eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAot LSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAg bTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlz aXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0 ISgKLS0gICAgdTE2eDJbdGVzdF92MzJdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAot LSAgICBpMTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAg ZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgy LAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwK LS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9m cm9tX2Nhc3RfbWFzayEoCi0tICAgIG0xNngyW3Rlc3RfdjMyXTogaTh4MiwKLS0gICAgdTh4MiwK LS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBpMzJ4MiwKLS0gICAg dTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgy LAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAot LSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIK LS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j YXN0L3Y1MTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92 NTEyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92 NTEyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMDkgKzAsMCBAQAotLS8vISBgRnJvbUNhc3Rg IGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNTEyLWJpdCB3aWRl IHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxf ZnJvbV9jYXN0IShpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwgbTh4NjQpOwotLWltcGxfZnJvbV9j YXN0ISh1OHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgbTh4NjQpOwotLWltcGxfZnJvbV9jYXN0X21h c2shKG04eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCB1OHg2NCk7Ci0tCi0taW1wbF9mcm9tX2Nhc3Qh KGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCB1MTZ4MzIsIG0xNngzMik7 Ci0taW1wbF9mcm9tX2Nhc3QhKHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMy LCBpMTZ4MzIsIG0xNngzMik7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEobTE2eDMyW3Rlc3RfdjUx Ml06IGk4eDMyLCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2eDMyKTsKLS0KLS1pbXBsX2Zyb21f Y2FzdCEoaTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2 eDE2LCBtMTZ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxfZnJvbV9jYXN0ISh1 MzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0x NngxNiwgaTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nhc3QhKGYzMngxNlt0 ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBp MzJ4MTYsIHUzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrIShtMzJ4MTZbdGVz dF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMy eDE2LCB1MzJ4MTYsIGYzMngxNik7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpNjR4OFt0 ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0g ICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYz Mng4LAotLSAgICBtMzJ4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwK LS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9m cm9tX2Nhc3QhKAotLSAgICB1NjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAg ICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4 OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0t ICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0g ICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmNjR4OFt0ZXN0X3Y1MTJd OiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgs Ci0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAg ICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNp emV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3Rf bWFzayEoCi0tICAgIG02NHg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04 eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAot LSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAg dTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBt c2l6ZXg4Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGkxMjh4NFt0ZXN0X3Y1MTJd OiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQs Ci0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAg ICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0 eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6 ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUxMjh4NFt0 ZXN0X3Y1MTJdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0g ICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYz Mng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwK LS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAot LSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgK LS0gICAgbTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0t ICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQs Ci0tICAgIG02NHg0LAotLSAgICBmNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0t ICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLQotLWltcGxf ZnJvbV9jYXN0ISgKLS0gICAgaXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAgICB1OHg4LAot LSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBp MzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgs Ci0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIHVzaXpleDgsCi0t ICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdXNpemV4OFt0ZXN0X3Y1 MTJdOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2 eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAot LSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAg bTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0 X21hc2shKAotLSAgICBtc2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAg IG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4 LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0g ICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAg dXNpemV4OAotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Nhc3QvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QvdjY0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y2FzdC92NjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjA4ICswLDAgQEAKLS0vLyEgYEZyb21D YXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDY0LWJpdCB3 aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWlt cGxfZnJvbV9jYXN0ISgKLS0gICAgaTh4OFt0ZXN0X3Y2NF06IHU4eDgsCi0tICAgIG04eDgsCi0t ICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1 MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgs Ci0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwK LS0gICAgbXNpemV4OAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1OHg4W3Rlc3RfdjY0 XTogaTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4 OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0t ICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBp c2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2Fz dF9tYXNrISgKLS0gICAgbTh4OFt0ZXN0X3Y2NF06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIGkx Nng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwK LS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAg IGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAg bXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMTZ4NFt0ZXN0X3Y2NF06 IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwK LS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4 eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6 ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUxNng0W3Rl c3RfdjY0XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAg IG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4 NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0t ICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0t ICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAot LSAgICBtMTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAg IGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4 NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0t ICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAg ICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zy b21fY2FzdCEoCi0tICAgIGkzMngyW3Rlc3RfdjY0XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAg bTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgdTMyeDIs Ci0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAg ICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBt MTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwot LWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTMyeDJbdGVzdF92NjRdOiBpOHgyLAotLSAgICB1OHgy LAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAg ICBpMzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0 eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIs Ci0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4 MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmMzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCi0t ICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2 eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAot LSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAg IHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAg ICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTMyeDJbdGVzdF92 NjRdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2 eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAot LSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAg aTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAg dXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY2FzdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Nhc3QucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDggKzAsMCBAQAotLS8vISBJbXBsZW1l bnRhdGlvbiBvZiBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgLgotLSMhW2FsbG93KGNsaXBweTo6 bW9kdWxlX25hbWVfcmVwZXRpdGlvbnMpXQotLQotLS8vLyBOdW1lcmljIGNhc3QgZnJvbSBgVGAg dG8gYFNlbGZgLgotLS8vLwotLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fy b3VuZCB1bnRpbCB0aGUgY29udmVyc2lvbiB0cmFpdHMKLS0vLy8gc3BlY2lmaWVkID4gaW4gW1JG QzI0ODRdIGFyZSBpbXBsZW1lbnRlZC4KLS0vLy8KLS0vLy8gTnVtZXJpYyBjYXN0IGJldHdlZW4g dmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3VjaCB0aGF0OgotLS8vLwot LS8vLyAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2ZSB0aGUg c2FtZSBzaXplIChlLmcuIGBpMzJ4TmAKLS0vLy8gLT4gYHUzMnhOYCkgaXMgYSAqKm5vLW9wKios Ci0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8gYSBzbWFsbGVy IGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgotLS8vLyBgdTh4TmApIHdpbGwgKip0cnVuY2F0ZSoq LAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdlciB0byBhIGxhcmdl ciBpbnRlZ2VyICAgKGUuZy4gYHU4eE5gIC0+Ci0tLy8vICAgYHUzMnhOYCkgd2lsbDoKLS0vLy8g ICAgKiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNpZ25lZCwgb3IKLS0vLy8g ICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWduZWQsCi0tLy8vCi0tLy8v ICogY2FzdGluZyBmcm9tIGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQgdGhlIGZs b2F0IHRvd2FyZHMgemVybyoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2Vy IHRvIGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKLS0vLy8gcmVwcmVzZW50 YXRpb24gb2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0byBldmVu KiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBl cmZlY3QgYW5kIGxvc3NsZXNzLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0 byBhbiBgZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KLS0vLy8KLS0v Ly8gW1JGQzI0ODRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yNDg0 Ci0tcHViIHRyYWl0IEZyb21DYXN0PFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0tICAgIC8v LyBOdW1lcmljIGNhc3QgZnJvbSBgVGAgdG8gYFNlbGZgLgotLSAgICBmbiBmcm9tX2Nhc3QoXzog VCkgLT4gU2VsZjsKLS19Ci0tCi0tLy8vIE51bWVyaWMgY2FzdCBmcm9tIGBTZWxmYCB0byBgVGAu Ci0tLy8vCi0tLy8vID4gTm90ZTogVGhpcyBpcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kIHVudGls IHRoZSBjb252ZXJzaW9uIHRyYWl0cwotLS8vLyBzcGVjaWZpZWQgPiBpbiBbUkZDMjQ4NF0gYXJl IGltcGxlbWVudGVkLgotLS8vLwotLS8vLyBOdW1lcmljIGNhc3QgYmV0d2VlbiB2ZWN0b3JzIHdp dGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzLCBzdWNoIHRoYXQ6Ci0tLy8vCi0tLy8vICogY2Fz dGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBlcyBoYXZlIHRoZSBzYW1lIHNpemUg KGUuZy4gYGkzMnhOYAotLS8vLyAtPiBgdTMyeE5gKSBpcyBhICoqbm8tb3AqKiwKLS0vLy8KLS0v Ly8gKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0byBhIHNtYWxsZXIgaW50ZWdlciAo ZS5nLiBgdTMyeE5gIC0+Ci0tLy8vIGB1OHhOYCkgd2lsbCAqKnRydW5jYXRlKiosCi0tLy8vCi0t Ly8vICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBpbnRlZ2VyIHRvIGEgbGFyZ2VyIGludGVnZXIg ICAoZS5nLiBgdTh4TmAgLT4KLS0vLy8gICBgdTMyeE5gKSB3aWxsOgotLS8vLyAgICAqICoqemVy by1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHVuc2lnbmVkLCBvcgotLS8vLyAgICAqICoqc2ln bi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHNpZ25lZCwKLS0vLy8KLS0vLy8gKiBjYXN0aW5n IGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2VyIHdpbGwgKipyb3VuZCB0aGUgZmxvYXQgdG93YXJk cyB6ZXJvKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGludGVnZXIgdG8gZmxvYXQg d2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAotLS8vLyByZXByZXNlbnRhdGlvbiBvZiB0 aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKiwKLS0vLy8K LS0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4gYGY2NGAgaXMgcGVyZmVjdCBhbmQg bG9zc2xlc3MsCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGBmNjRgIHRvIGFuIGBmMzJg ICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgotLS8vLwotLS8vLyBbUkZDMjQ4 NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzI0ODQKLS1wdWIgdHJh aXQgQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICAvLy8gTnVtZXJpYyBjYXN0 IGZyb20gYHNlbGZgIHRvIGBUYC4KLS0gICAgZm4gY2FzdChzZWxmKSAtPiBUOwotLX0KLS0KLS0v Ly8gYEZyb21DYXN0YCBpbXBsaWVzIGBDYXN0YC4KLS1pbXBsPFQsIFU+IENhc3Q8VT4gZm9yIFQK LS13aGVyZQotLSAgICBVOiBGcm9tQ2FzdDxUPiwKLS17Ci0tICAgICNbaW5saW5lXQotLSAgICBm biBjYXN0KHNlbGYpIC0+IFUgewotLSAgICAgICAgVTo6ZnJvbV9jYXN0KHNlbGYpCi0tICAgIH0K LS19Ci0tCi0tLy8vIGBGcm9tQ2FzdGAgYW5kIGBDYXN0YCBhcmUgcmVmbGV4aXZlCi0taW1wbDxU PiBGcm9tQ2FzdDxUPiBmb3IgVCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBmcm9tX2Nhc3Qo dDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICB0Ci0tICAgIH0KLS19Ci0tCi0tI1ttYWNyb191 c2VdCi0tbW9kIG1hY3JvczsKLS0KLS1tb2QgdjE2OwotLXB1YiB1c2Ugc2VsZjo6djE2OjoqOwot LQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0tbW9kIHY2NDsKLS1wdWIg dXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEyODsKLS1wdWIgdXNlIHNlbGY6OnYxMjg6Oio7 Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxmOjp2MjU2OjoqOwotLQotLW1vZCB2NTEyOwot LXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2NtcC9lcS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC9lcS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjcgKzAsMCBAQAotLS8vISBJbXBs ZW1lbnRzIGBFcWAgZm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9jbXBf ZXEgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OgotLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4 cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6 RXEgZm9yICRpZCB7fQotLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBmb3IgTGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZD4ge30KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9lcT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBlcSgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6OmNtcDo6RXE+KF86IEUpIHt9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9vKGEpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29y ZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29yZC5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDQzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBgT3JkYCBmb3IgdmVj dG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9vcmQgewotLSAgICAoCi0tICAg ICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQot LSAgICApID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmV0dXJu cyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIGBPcmRgLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiBsZXhfb3JkKCZzZWxmKSAtPiBMZXhpY29ncmFwaGljYWxs eU9yZGVyZWQ8JGlkPiB7Ci0tICAgICAgICAgICAgICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZCgqc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNy YXRlOjpjbXA6Ok9yZCBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4gewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwgb3RoZXI6ICZTZWxm KSAtPiBjcmF0ZTo6Y21wOjpPcmRlcmluZyB7Ci0tICAgICAgICAgICAgICAgIG1hdGNoIHNlbGYu cGFydGlhbF9jbXAob3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUoeCkgPT4geCwK LS0gICAgICAgICAgICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6OmhpbnQ6OnVucmVh Y2hhYmxlX3VuY2hlY2tlZCgpIH0sCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9jbXBfb3JkPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpPcmQ+KF86IEUpIHt9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgZm9vKGEucGFydGlhbF9sZXhfb3JkKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvbyhhLmxleF9vcmQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlh bF9lcS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlh bF9lcS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9w YXJ0aWFsX2VxLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY1ICswLDAgQEAKLS0vLyEg SW1wbGVtZW50cyBgUGFydGlhbEVxYCBmb3IgdmVjdG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX2NtcF9wYXJ0aWFsX2VxIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwK LS0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAg ICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3J1c3QtY2xp cHB5L2lzc3Vlcy8yODkyCi0tICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25lX2lt cGwpXQotLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8JGlkPiBmb3IgJGlkIHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6 ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgJGlkOjplcSgqc2VsZiwgKm90aGVy KS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAg ICAgJGlkOjpuZSgqc2VsZiwgKm90aGVyKS5hbnkoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKLS0gICAgICAgICNbYWxsb3coY2xpcHB5Ojpw YXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBpbXBsIGNyYXRlOjpjbXA6OlBhcnRpYWxFcTxM ZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDwkaWQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBlcSgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wID09IG90 aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAg IHNlbGYuMCAhPSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9QYXJ0aWFsRXE+ XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfZXEoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoYSA9PSBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2UpLnJlcGxh Y2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6 c3BsYXQoJHRydWUpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEg IT0gYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjMwICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 cyBgUGFydGlhbE9yZGAgZm9yIHZlY3RvciB0eXBlcy4KLS0vLyEKLS0vLyEgVGhpcyBpbXBsZW1l bnRzIGEgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9w YXJ0aWFsX29yZCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIGEgd3JhcHBlciB0aGF0IGltcGxlbWVudHMgYFBhcnRpYWxPcmRg LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBwYXJ0aWFsX2xl eF9vcmQoJnNlbGYpIC0+IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKLS0gICAgICAg ICAgICAgICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkKCpzZWxmKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6UGFydGlhbE9yZDxMZXhp Y29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwk aWQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBwYXJ0aWFsX2Nt cCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBPcHRpb248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+IHsK LS0gICAgICAgICAgICAgICAgaWYgUGFydGlhbEVxOjplcShzZWxmLCBvdGhlcikgewotLSAgICAg ICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpCi0tICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiBQYXJ0aWFsT3JkOjpsdChzZWxmLCBvdGhlcikgewotLSAgICAg ICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykKLS0gICAgICAg ICAgICAgICAgfSBlbHNlIGlmIFBhcnRpYWxPcmQ6Omd0KHNlbGYsIG90aGVyKSB7Ci0tICAgICAg ICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKQotLSAgICAg ICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgTm9uZQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGx0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICBsZXQgbV9sdCA9IHNlbGYuMC5sdChvdGhlci4wKTsKLS0gICAgICAgICAgICAgICAgbGV0 IG1fZXEgPSBzZWxmLjAuZXEob3RoZXIuMCk7Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBtX2VxLmV4dHJhY3QoaSkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fbHQuZXh0cmFjdChpKTsKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBmYWxzZQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBsZSgmc2VsZiwgb3RoZXI6ICZT ZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi5sdChvdGhlcikgfCBQYXJ0aWFs RXE6OmVxKHNlbGYsIG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgc2VsZi5ndChvdGhlcikgfCBQYXJ0aWFsRXE6OmVxKHNlbGYsIG90aGVy KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBndCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0 IG1fZ3QgPSBzZWxmLjAuZ3Qob3RoZXIuMCk7Ci0tICAgICAgICAgICAgICAgIGxldCBtX2VxID0g c2VsZi4wLmVxKG90aGVyLjApOwotLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgaWYgbV9lcS5leHRyYWN0KGkpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2d0LmV4dHJhY3QoaSk7Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgZmFsc2UKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQg ewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0 X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX2NtcF9QYXJ0aWFsT3JkPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfbGV4X29y ZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRlc3Rpbmc6OnV0aWxz Ojp7dGVzdF9jbXB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0YW50IHZhbHVl cwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgwKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoMSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xl eF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpj bXA6Ok9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo Yi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwg YS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmlu Zzo6RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1 ZXM6IGEgPSBbMCwgMSwgMiwgM107IGIgPSBbMywgMiwgMSwgMF0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KDApOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YSA9IGEucmVwbGFjZShpLCBpIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYiA9IGIucmVwbGFjZShpLCAoJGlkOjpsYW5lcygpIC0gaSkgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3Mp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgp LCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3Jk ZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0 aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAxLCAyLCAz XTsgYiA9IFswLCAxLCAyLCA0XQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9 IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpIC0gMSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYS5leHRyYWN0KCRpZDo6bGFuZXMoKSAtIDEpICsgMSBhcyAkZWxlbV90eQotLSAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9j bXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwg YS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVy aW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlh bF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAyIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzIGEgPSBbMCwgMSwgMCwgMF07IGIgPSBb MCwgMSwgMiwgM10KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSBhOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KDApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29y ZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9s ZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRl cmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5w YXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOiBhID0g WzAsIDEsIDIsIDNdOyBiID0gWzAsIDEsIDMsIDJdCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYiA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJl cGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCBhLmV4dHJhY3QoJGlk OjpsYW5lcygpIC0gMSkgKyAxIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9s ZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0 aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29t ZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6 Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nt cChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVh bCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3RfY21wX3BhcnRpYWxfb3JkX21hc2sgewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X2NtcF9QYXJ0aWFsT3JkPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfbGV4X29yZCgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRlc3Rpbmc6OnV0aWxzOjp7dGVzdF9j bXB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y21wOjpPcmRlcmluZzsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdGFudCB2YWx1ZXMKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29y ZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxl c3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29y ZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0 aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9y ZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxl IHZhbHVlczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0gW2ZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiID0gW2ZhbHNlLCBm YWxzZSwgZmFsc2UsIHRydWVdCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6 OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSAkaWQ6 OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKCRp ZDo6bGFuZXMoKSAtIDEsIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhf b3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6 R3JlYXRlcikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9s ZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOgotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGEgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2VdOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGIgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKCRpZDo6bGFuZXMoKSAtIDEsIGZhbHNlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBh cnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6Okxlc3MpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBh cnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29y ZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVx dWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9v cmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGlmICRpZDo6bGFuZXMoKSA+IDIgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2 YXJpYWJsZSB2YWx1ZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9IFtmYWxz ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YiA9IFtmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgPSBhLnJlcGxhY2UoMSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGIgPSBiLnJlcGxhY2UoMCwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNz KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhf b3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQo KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6 RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFs X2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVydGljYWwucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMTQgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2 ZWN0b3IgY29tcGFyaXNvbnMgcmV0dXJuaW5nIHZlY3RvciBtYXNrcy4KLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9jbXBfdmVydGljYWwgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOgotLSAgICAgICAgJGlkOmlkZW50LAotLSAgICAgICAgJG1hc2tf dHk6aWRlbnQsCi0tICAgICAgICAkaXNfbWFzazpleHByLCgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhw cikgfCAkdGVzdF90dDp0dAotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAg ICAgICAgICAvLy8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAk bWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9lcTsKLS0g ICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2VxKHNlbGYuMCwgb3RoZXIuMCkgfSkK LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBpbmVxdWFsaXR5 IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IG5lKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9uZTsKLS0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBz aW1kX25lKHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4gY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbHQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNr X3R5IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9ndCwgc2ltZF9s dH07Ci0tICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKLS0gICAgICAgICAgICAgICAgICAg IFNpbWQodW5zYWZlIHsgc2ltZF9ndChzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbHQo c2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuLW9yLWVxdWFscyBjb21wYXJp c29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsZShzZWxm LCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Omxsdm06OntzaW1kX2dlLCBzaW1kX2xlfTsKLS0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sg ewotLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2dlKHNlbGYuMCwgb3Ro ZXIuMCkgfSkKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg IFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVh dGVyLXRoYW4gY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gZ3Qoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9ndCwgc2ltZF9sdH07Ci0tICAgICAgICAgICAg ICAgIGlmICRpc19tYXNrIHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2lt ZF9sdChzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZ3Qoc2VsZi4wLCBvdGhlci4wKSB9 KQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21wYXJpc29uLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBnZShzZWxmLCBvdGhlcjogU2VsZikg LT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OntzaW1kX2dl LCBzaW1kX2xlfTsKLS0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgewotLSAgICAgICAgICAg ICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2xlKHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsg c2ltZF9nZShzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9jbXBfdmVydGljYWw+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gY21wKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2UpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubGUo Yik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZ3QoYik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0g YS5nZShiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmVxKGIpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGEgPSBhOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IGI7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gZTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEg PSBhLnJlcGxhY2UoaSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGIgPSBiLnJlcGxhY2UoaSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZSA9IGUucmVwbGFjZShpLCB0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2Uo aSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFj ZShpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IGUucmVw bGFjZShpLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0 KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2NtcC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9jbXAucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAu cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDE2ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGNtcCB0cmFpdHMg Zm9yIHZlY3RvciB0eXBlcwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBwYXJ0aWFsX2VxOwotLQot LSNbbWFjcm9fdXNlXQotLW1vZCBlcTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgcGFydGlhbF9v cmQ7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIG9yZDsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qg dmVydGljYWw7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2RlZmF1bHQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVm YXVsdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2RlZmF1 bHQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYERl ZmF1bHRgIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZGVmYXVsdCB7 Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBEZWZhdWx0IGZvciAkaWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSkKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAk dGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAv LyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4K LS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2RlZmF1bHQ+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZGVmYXVsdCgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6ZGVmYXVsdCgpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYS5leHRyYWN0KGkpLCAkZWxlbV90eTo6 ZGVmYXVsdCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9mbXQvYmluYXJ5LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ZtdC9iaW5hcnkucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9mbXQvYmluYXJ5LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTQgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnQgT2N0YWwgZm9ybWF0dGluZwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9iaW5h cnkgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6QmluYXJ5IGZv ciAkaWQgewotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9w dWJsaWNfaXRlbXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6 Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAg ICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBpID4g MCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQo Zik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAg ICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9iaW5hcnk+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIGJpbmFyeSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug YXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNifSIsIHYpLnVud3JhcCgpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3 KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3Ry aW5naWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg czogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpu ZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6I2J9 Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQvZGVidWcucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQvZGVidWcucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYwICswLDAgQEAK LS0vLyEgSW1wbGVtZW50IGRlYnVnIGZvcm1hdHRpbmcKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9m bXRfZGVidWdfdGVzdHMgewotLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfZGVidWc+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIGRlYnVnKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBh cnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IHdyaXRlISgmbXV0IHMsICJ7Oj99IiwgdikudW53cmFwKCk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3Jh cCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcu YXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRo KCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0 cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcu YXNfc3RyKCksICIiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiKSIs ICIiKS5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRp bnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo cy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlu ZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezo/fSIsIHYuZXh0cmFjdChpbmRleCkp LnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9kZWJ1ZyB7Ci0tICAgIChbJGVsZW1fdHk6dHk7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgaW1wbCBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2FsbG93 KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBm biBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6 OmZtdDo6UmVzdWx0IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdp ZnkhKCRpZCkpPzsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewot LSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHdyaXRlIShmLCAiLCAiKT87Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgICAgIGltcGxfZm10X2RlYnVnX3Rlc3RzIShbJGVsZW1fdHk7ICRlbGVtX2NvdW50XTog JGlkIHwgJHRlc3RfdHQpOwotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDU0ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGBMb3dlckhleGAgZm9ybWF0 dGluZwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9sb3dlcl9oZXggewotLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6TG93ZXJIZXggZm9yICRpZCB7Ci0tICAgICAg ICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0t ICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwn Xz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAi e30oIiwgc3RyaW5naWZ5ISgkaWQpKT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRl bGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfZm10X2xvd2VyX2hleD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gbG93ZXJfaGV4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6 e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRp bnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I3h9IiwgdikudW53cmFwKCk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRp ZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNf d2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMu ZW5kc193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZl YzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVw bGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5t YXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojeH0iLCB2LmV4dHJh Y3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9mbXQvb2N0YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10 L29jdGFsLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10 L29jdGFsLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L29jdGFsLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1NCArMCwwIEBACi0tLy8hIEltcGxlbWVu dCBPY3RhbCBmb3JtYXR0aW5nCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZm10X29jdGFsIHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6Ok9jdGFsIGZvciAkaWQgewot LSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRl bXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3Jt YXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAgICAgICB3cml0 ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OwotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX2ZtdF9vY3RhbD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gb2N0YWxfaGV4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZl Yzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0eXBl IFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I299IiwgdikudW53cmFwKCk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkh KCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFy dHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHMuZW5kc193aXRoKCIpIikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJh eVZlYzxbVGlueVN0cmluZzsgNjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMu cmVwbGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5zcGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojb30iLCB2LmV4 dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91 cHBlcl9oZXgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU0 ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IGBVcHBlckhleGAgZm9ybWF0dGluZwotLQotLW1hY3Jv X3J1bGVzISBpbXBsX2ZtdF91cHBlcl9oZXggewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGlt cGwgY3JhdGU6OmZtdDo6VXBwZXJIZXggZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tICAgICAgICAgICAgZm4g Zm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpm bXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5 ISgkaWQpKT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0g ICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X3VwcGVy X2hleD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdXBwZXJfaGV4KCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFy cmF5VmVjfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJh eVN0cmluZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6Zm10OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3Bs YXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBzID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUh KCZtdXQgcywgIns6I1h9IiwgdikudW53cmFwKCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3Ry KCkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsg NjRdPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3Ry KCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5z cGxpdCgiLCIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJp bmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAuY29sbGVjdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4o KSwgJGlkOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBz cykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojWH0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndy YXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ZtdC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTIg KzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGZvcm1hdHRpbmcgQVBJcwotLQotLSNbbWFjcm9fdXNl XQotLW1vZCBkZWJ1ZzsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbG93ZXJfaGV4OwotLSNbbWFjcm9f dXNlXQotLW1vZCB1cHBlcl9oZXg7Ci0tI1ttYWNyb191c2VdCi0tbW9kIG9jdGFsOwotLSNbbWFj cm9fdXNlXQotLW1vZCBiaW5hcnk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDEyNCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEZyb208W1Q7IE5dPmAg YW5kIGBJbnRvPFtUOyBOXT5gIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfZnJvbV9hcnJheSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dAotLSAgICAgfCAoJG5vbl9kZWZhdWx0X2FycmF5OmV4 cHIsICRub25fZGVmYXVsdF92ZWM6ZXhwcikpID0+IHsKLS0gICAgICAgIGltcGwgRnJvbTxbJGVs ZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gZnJvbShhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0pIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGFy cmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzog JGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyBh cnJheSB9LnZlYyB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bCBGcm9tPCRpZD4gZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tKHZlYzogJGlkKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRlbGVt X3R5OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsgdmVjIH0uYXJyYXkg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8vIEZJWE1FOiBgSW50 bzo6aW50b2AgaXMgbm90IGlubGluZSwgYnV0IGR1ZSB0bwotLSAgICAgICAgLy8gdGhlIGJsYW5r ZXQgaW1wbCBpbiBgc3RkYCwgd2hpY2ggaXMgbm90Ci0tICAgICAgICAvLyBtYXJrZWQgYGRlZmF1 bHRgLCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgaXQgaGVyZSB3aXRoCi0tICAgICAgICAvLyBzcGVjaWFs aXphdGlvbi4KLS0gICAgICAgIC8qCi0tICAgICAgICBpbXBsIEludG88WyRlbGVtX3R5OyAkZWxl bV9jb3VudF0+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewotLSAgICAgICAgICAg ICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRl bGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyB2ZWM6IHNlbGYgfS5hcnJheSB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBJbnRvPCRpZD4g Zm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBpbnRvKHNlbGYpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIHVuaW9u IFUgewotLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRd LAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IGFycmF5OiBzZWxmIH0udmVjIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICAqLwotLQotLSAgICAgICAgdGVzdF9pZiEgewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50 aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21w KV0KLS0gICAgICAgICAgICAgICAgbW9kIFs8JGlkIF9mcm9tPl0gewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihtaXJpLCBpZ25vcmUpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gYXJyYXkoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzogJGlk ID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ WE1FOiBXb3JrYXJvdW5kIGZvciBhcnJheXMgd2l0aCBtb3JlIHRoYW4gMzIKLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBlbGVtZW50cy4KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLwot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmUgYmVjYXVzZSB3ZSBuZXZlciB0YWtlIGEg cmVmZXJlbmNlIHRvIGFueQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuaW5pdGlhbGl6 ZWQgZWxlbWVudC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBXIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlcjogKCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9IFcgeyBvdGhl cjogKCkgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3Vu dCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0OiAkZWxlbV90eSA9 IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90 ZTogYXJyYXkub3RoZXIgaXMgdGhlIGFjdGl2ZSBtZW1iZXIgYW5kCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkIHNvIHdlIGNhbiB0YWtlIGEgcmVmZXJlbmNlIHRv IGl0OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcCA9IHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFycmF5Lm90aGVyIGFzICptdXQgKCkg YXMgKm11dCAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBkZWZhdWx0IGlzIGEgdmFsaWQgYml0LXBh dHRlcm4gZm9yCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICRlbGVtX3R5OgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6OnB0cjo6d3JpdGUocC53cmFwcGluZ19hZGQoaSksIGRlZmF1bHQp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IHRoZSBhcnJheSB2YXJpYW50 IG9mIHRoZSB1bmlvbiBpcyBwcm9wZXJseQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlu aXRpYWxpemVkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJyYXkgPSB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbMF0g PSAkbm9uX2RlZmF1bHRfYXJyYXk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9 IHZlYy5yZXBsYWNlKDAsICRub25fZGVmYXVsdF92ZWMpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ZWNfZnJvbV9hcnJheSA9ICRpZDo6ZnJvbShhcnJheSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWNfZnJvbV9hcnJheSwgdmVjKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV92ZWMKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSA8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+Ojpmcm9tKHZlYyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1v cmUgdGhhbiAzMgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnJheV9mcm9tX3ZlY1tpXSwgYXJyYXlbaV0p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdmVjX2Zyb21faW50b19hcnJheTogJGlkID0gYXJyYXkuaW50bygpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjX2Zyb21faW50b19hcnJheSwgdmVjKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV9pbnRvX3ZlYzogWyRlbGVtX3R5 OyAkZWxlbV9jb3VudF0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB2ZWMuaW50bygp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZvciBhcnJh eXMgd2l0aCBtb3JlIHRoYW4gMzIKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50 cy4KLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyYXlfZnJvbV9pbnRvX3Zl Y1tpXSwgYXJyYXlbaV0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSw2NyArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYEZyb21gIGFuZCBgSW50b2Ag Zm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX3ZlY3RvciB7Ci0t ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dAotLSAgICAgfCAkc291cmNlOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEZyb208 JHNvdXJjZT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gZnJvbShzb3VyY2U6ICRzb3VyY2UpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBmbiBz dGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVzPFQsIFU+KCkKLS0gICAgICAgICAgICAg ICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgICAgIFQ6IGNyYXRlOjpzZWFsZWQ6OlNpbWQsCi0t ICAgICAgICAgICAgICAgICAgICBVOiBjcmF0ZTo6c2VhbGVkOjpTaW1kPExhbmVzVHlwZSA9IFQ6 OkxhbmVzVHlwZT4sCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKLS0gICAgICAgICAgICAg ICAgc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczo6PCRpZCwgJHNvdXJjZT4oKTsK LS0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3Qoc291cmNlLjApIH0pCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgLy8gRklYTUU6IGBJbnRvOjpp bnRvYCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvIHRoZSBibGFua2V0IGltcGwgaW4KLS0gICAg ICAgIC8vIGBzdGRgLCB3aGljaCBpcyBub3QgbWFya2VkIGBkZWZhdWx0YCwgd2UgY2Fubm90IG92 ZXJyaWRlIGl0IGhlcmUKLS0gICAgICAgIC8vIHdpdGggc3BlY2lhbGl6YXRpb24uCi0tCi0tICAg ICAgICAvKgotLSAgICAgICAgICAgaW1wbCBJbnRvPCRpZD4gZm9yICRzb3VyY2UgewotLSAgICAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgIGZuIGludG8oc2VsZikgLT4gJGlk IHsKLS0gICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9jYXN0KHNlbGYpIH0KLS0gICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICB9Ci0tICAgICAgICAqLwotLQotLSAgICAgICAgdGVz dF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fICRzb3VyY2U+XSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb20oKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRzb3VyY2U6OmxhbmVzKCkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzb3VyY2U6ICRzb3VyY2UgPSBEZWZhdWx0Ojpk ZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzogJGlkID0gRGVmYXVs dDo6ZGVmYXVsdCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpm cm9tKHNvdXJjZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShlLCB2ZWMp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlOiAkaWQgPSBzb3VyY2UuaW50bygp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZSwgdmVjKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZnJvbV92ZWN0b3JzIHsK LS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0Ci0tICAgICB8ICQoJHNvdXJjZTppZGVudCksKikgPT4gewotLSAgICAgICAgJCgK LS0gICAgICAgICAgICBpbXBsX2Zyb21fdmVjdG9yISgKLS0gICAgICAgICAgICAgICAgWyRlbGVt X3R5OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0ZXN0X3R0IHwgJHNvdXJjZQotLSAgICAgICAgICAg ICk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Zyb20ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mcm9tLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNyArMCwwIEBACi0tLy8hIEltcGxlbWVu dGF0aW9ucyBvZiB0aGUgYEZyb21gIGFuZCBgSW50b2AgdHJhaXRzCi0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIGZyb21fYXJyYXk7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGZyb21fdmVjdG9yOwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaGFzaC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNDkgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGBIYXNoYCBmb3IgdmVjdG9yIHR5cGVzLgot LQotLW1hY3JvX3J1bGVzISBpbXBsX2hhc2ggewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGlt cGwgY3JhdGU6Omhhc2g6Okhhc2ggZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFzaDo6SGFzaGVyPigmc2VsZiwgc3RhdGU6 ICZtdXQgSCkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWyRlbGVtX3R5OyAk aWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgQSB7IHZlYzogKnNlbGYgfS5k YXRhLmhhc2goc3RhdGUpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0t ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfaGFzaD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBoYXNoKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6aGFzaDo6e0hhc2gsIEhhc2hlcn07Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Omhhc2g6OntTaXBIYXNoZXIxM307Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZSBBID0gWyRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBhOiBBID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy YXRlOjptZW06OnNpemVfb2Y6OjxBPigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjpzaXplX29mOjo8JGlkPigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNoID0gU2lwSGFzaGVyMTM6Om5ldygpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdl9oYXNoID0gYV9oYXNoLmNsb25lKCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYS5oYXNoKCZtdXQgYV9oYXNoKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBJbnRlZ2VyIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAg ICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCg0MiBhcyAkZWxlbV90eSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdi5oYXNoKCZtdXQgdl9oYXNoKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFfaGFzaC5maW5pc2goKSwgdl9oYXNoLmZpbmlzaCgp KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmlj LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRz L2FyY2hfc3BlY2lmaWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9z cGVjaWZpYy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzQ1 ICswLDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBiZXR3ZWVuIHBvcnRhYmxl IHZlY3RvciB0eXBlcyBhbmQgdGhlCi0tLy8hIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB2ZWN0b3Ig dHlwZXMuCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLS8vIEZJWE1FOiBNSVBTIEZyb21CaXRzL0lu dG9CaXRzCi0tCi0tI1thbGxvdyh1bnVzZWQpXQotLXVzZSBjcmF0ZTo6KjsKLS0KLS0vLy8gVGhp cyBtYWNybyBpbXBsZW1lbnRzIEZyb21CaXRzIGZvciB0aGUgcG9ydGFibGUgYW5kIHRoZSBhcmNo aXRlY3R1cmUKLS0vLy8gc3BlY2lmaWMgdmVjdG9yIHR5cGVzLgotLS8vLwotLS8vLyBUaGUgImxl YWYiIGNhc2UgaXMgYXQgdGhlIGJvdHRvbSwgYW5kIHRoZSBtb3N0IGdlbmVyaWMgY2FzZSBpcyBh dCB0aGUgdG9wLgotLS8vLyBUaGUgZ2VuZXJpYyBjYXNlIGlzIHNwbGl0IGludG8gc21hbGxlciBj YXNlcyByZWN1cnNpdmVseS4KLS1tYWNyb19ydWxlcyEgaW1wbF9hcmNoIHsKLS0gICAgKFskYXJj aF9oZWFkX2k6aWRlbnRbJGFyY2hfaGVhZF90dDp0dF06ICQoJGFyY2hfaGVhZF90eTppZGVudCks Kl0sCi0tICAgICAkKFskYXJjaF90YWlsX2k6aWRlbnRbJGFyY2hfdGFpbF90dDp0dF06ICQoJGFy Y2hfdGFpbF90eTppZGVudCksKl0pLCogfAotLSAgICAgZnJvbTogJCgkZnJvbV90eTppZGVudCks KiB8IGludG86ICQoJGludG9fdHk6aWRlbnQpLCogfAotLSAgICAgdGVzdDogJHRlc3RfdHQ6dHQp ID0+IHsKLS0gICAgICAgIGltcGxfYXJjaCEoCi0tICAgICAgICAgICAgWyRhcmNoX2hlYWRfaVsk YXJjaF9oZWFkX3R0XTogJCgkYXJjaF9oZWFkX3R5KSwqXSB8Ci0tICAgICAgICAgICAgZnJvbTog JCgkZnJvbV90eSksKiB8Ci0tICAgICAgICAgICAgaW50bzogJCgkaW50b190eSksKiB8Ci0tICAg ICAgICAgICAgdGVzdDogJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2FyY2gh KAotLSAgICAgICAgICAgICQoWyRhcmNoX3RhaWxfaVskYXJjaF90YWlsX3R0XTogJCgkYXJjaF90 YWlsX3R5KSwqXSksKiB8Ci0tICAgICAgICAgICAgZnJvbTogJCgkZnJvbV90eSksKiB8Ci0tICAg ICAgICAgICAgaW50bzogJCgkaW50b190eSksKiB8Ci0tICAgICAgICAgICAgdGVzdDogJHRlc3Rf dHQKLS0gICAgICAgICk7Ci0tICAgIH07Ci0tICAgIChbJGFyY2g6aWRlbnRbJGFyY2hfdHQ6dHRd OiAkKCRhcmNoX3R5OmlkZW50KSwqXSB8Ci0tICAgICBmcm9tOiAkKCRmcm9tX3R5OmlkZW50KSwq IHwgaW50bzogJCgkaW50b190eTppZGVudCksKiB8Ci0tICAgICB0ZXN0OiAkdGVzdF90dDp0dCkg PT4gewotLSAgICAgICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJhcm0iLCAiK3Y3LCtuZW9uIiBt dXN0IGJlIGVuYWJsZWQKLS0gICAgICAgIC8vIGFuZCB0aGUgc3RkIGxpYnJhcnkgbXVzdCBiZSBy ZWNvbXBpbGVkIHdpdGggdGhlbQotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgIG5v dCh0YXJnZXRfYXJjaCA9ICJhcm0iKSwKLS0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUg PSAidjciLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKLS0gICAgICAgICAgICAgICAgYW55KGZl YXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpCi0tICAgICAgICApXQotLSAgICAg ICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJwb3dlcnBjIiwgImFsdGl2ZWMiIG11c3QgYmUgZW5h YmxlZAotLSAgICAgICAgLy8gYW5kIHRoZSBzdGQgbGlicmFyeSBtdXN0IGJlIHJlY29tcGlsZWQg d2l0aCBpdAotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgIG5vdCh0YXJnZXRfYXJj aCA9ICJwb3dlcnBjIiksCi0tICAgICAgICAgICAgYWxsKHRhcmdldF9mZWF0dXJlID0gImFsdGl2 ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAotLSAgICAgICAgKSldCi0tICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KLS0gICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6JGFy Y2g6OnsKLS0gICAgICAgICAgICAkKCRhcmNoX3R5KSwqCi0tICAgICAgICB9OwotLQotLSAgICAg ICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJhcm0iKSwKLS0g ICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAidjciLCB0YXJnZXRfZmVhdHVyZSA9ICJu ZW9uIiwKLS0gICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29y ZV9uZW9uKSkpCi0tICAgICAgICApXQotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAg IG5vdCh0YXJnZXRfYXJjaCA9ICJwb3dlcnBjIiksCi0tICAgICAgICAgICAgYWxsKHRhcmdldF9m ZWF0dXJlID0gImFsdGl2ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAotLSAgICAgICAgKSld Ci0tICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KLS0gICAgICAgIGltcGxf YXJjaCEoJCgkYXJjaF90eSksKiB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRvX3R5KSwqIHwKLS0g ICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOwotLSAgICB9OwotLSAgICAoJGFyY2hf aGVhZDppZGVudCwgJCgkYXJjaF90YWlsOmlkZW50KSwqIHwgJCgkZnJvbV90eTppZGVudCksKgot LSAgICAgfCAkKCRpbnRvX3R5OmlkZW50KSwqIHwgdGVzdDogJHRlc3RfdHQ6dHQpID0+IHsKLS0g ICAgICAgIGltcGxfYXJjaCEoJGFyY2hfaGVhZCB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRvX3R5 KSwqIHwKLS0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9hcmNoISgkKCRhcmNoX3RhaWwpLCogfCAkKCRmcm9tX3R5KSwqIHwgJCgkaW50b190eSksKiB8 Ci0tICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsKLS0gICAgfTsKLS0gICAgKCRh cmNoX2hlYWQ6aWRlbnQgfCAkKCRmcm9tX3R5OmlkZW50KSwqIHwgJCgkaW50b190eTppZGVudCks KiB8Ci0tICAgICB0ZXN0OiAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbF9mcm9tX2Jp dHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRmcm9tX3R5KSwqKTsKLS0gICAgICAgIGltcGxf aW50b19iaXRzISgkYXJjaF9oZWFkWyR0ZXN0X3R0XTogJCgkaW50b190eSksKik7Ci0tICAgIH07 Ci0tfQotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tLy8gSW1wbGVtZW50YXRpb25zIGZv ciB0aGUgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzOgotLQotLS8vIEZJWE1FOiA2NC1iaXQgc2lu Z2xlIGVsZW1lbnQgdHlwZXMKLS0vLyBGSVhNRTogYXJtL2FhcmNoIGZsb2F0MTZ4NF90IG1pc3Np bmcKLS1pbXBsX2FyY2ghKAotLSAgICBbCi0tICAgICAgICBhcm1bImFybSJdOiBpbnQ4eDhfdCwK LS0gICAgICAgIHVpbnQ4eDhfdCwKLS0gICAgICAgIHBvbHk4eDhfdCwKLS0gICAgICAgIGludDE2 eDRfdCwKLS0gICAgICAgIHVpbnQxNng0X3QsCi0tICAgICAgICBwb2x5MTZ4NF90LAotLSAgICAg ICAgaW50MzJ4Ml90LAotLSAgICAgICAgdWludDMyeDJfdCwKLS0gICAgICAgIGZsb2F0MzJ4Ml90 LAotLSAgICAgICAgaW50NjR4MV90LAotLSAgICAgICAgdWludDY0eDFfdAotLSAgICBdLAotLSAg ICBbCi0tICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4OF90LAotLSAgICAgICAgdWlu dDh4OF90LAotLSAgICAgICAgcG9seTh4OF90LAotLSAgICAgICAgaW50MTZ4NF90LAotLSAgICAg ICAgdWludDE2eDRfdCwKLS0gICAgICAgIHBvbHkxNng0X3QsCi0tICAgICAgICBpbnQzMngyX3Qs Ci0tICAgICAgICB1aW50MzJ4Ml90LAotLSAgICAgICAgZmxvYXQzMngyX3QsCi0tICAgICAgICBp bnQ2NHgxX3QsCi0tICAgICAgICB1aW50NjR4MV90LAotLSAgICAgICAgZmxvYXQ2NHgxX3QKLS0g ICAgXSB8IGZyb206IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng0LAot LSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAg ZjMyeDIsCi0tICAgIG0zMngyIHwgaW50bzogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgaTE2eDQs Ci0tICAgIHUxNng0LAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyIHwgdGVz dDogdGVzdF92NjQKLS0pOwotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tLy8gSW1wbGVt ZW50YXRpb25zIGZvciB0aGUgMTI4LWJpdCB3aWRlIHZlY3RvciB0eXBlczoKLS0KLS0vLyBGSVhN RTogYXJtL2FhcmNoIGZsb2F0MTZ4OF90IG1pc3NpbmcKLS0vLyBGSVhNRTogcHBjIHZlY3Rvcl9w aXhlbCBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9GbG9hdDE2IG1pc3NpbmcKLS0v LyBGSVhNRTogcHBjNjQgdmVjdG9yX3NpZ25lZF9sb25nX2xvbmcgbWlzc2luZwotLS8vIEZJWE1F OiBwcGM2NCB2ZWN0b3JfdW5zaWduZWRfbG9uZ19sb25nIG1pc3NpbmcKLS0vLyBGSVhNRTogcHBj NjQgdmVjdG9yX2Jvb2xfbG9uZ19sb25nIG1pc3NpbmcKLS0vLyBGSVhNRTogcHBjNjQgdmVjdG9y X3NpZ25lZF9fX2ludDEyOCBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl91bnNpZ25l ZF9fX2ludDEyOCBtaXNzaW5nCi0taW1wbF9hcmNoISgKLS0gICAgW3g4NlsieDg2Il06IF9fbTEy OCwgX19tMTI4aSwgX19tMTI4ZF0sCi0tICAgIFt4ODZfNjRbIng4Nl82NCJdOiBfX20xMjgsIF9f bTEyOGksIF9fbTEyOGRdLAotLSAgICBbCi0tICAgICAgICBhcm1bImFybSJdOiBpbnQ4eDE2X3Qs Ci0tICAgICAgICB1aW50OHgxNl90LAotLSAgICAgICAgcG9seTh4MTZfdCwKLS0gICAgICAgIGlu dDE2eDhfdCwKLS0gICAgICAgIHVpbnQxNng4X3QsCi0tICAgICAgICBwb2x5MTZ4OF90LAotLSAg ICAgICAgaW50MzJ4NF90LAotLSAgICAgICAgdWludDMyeDRfdCwKLS0gICAgICAgIGZsb2F0MzJ4 NF90LAotLSAgICAgICAgaW50NjR4Ml90LAotLSAgICAgICAgdWludDY0eDJfdAotLSAgICBdLAot LSAgICBbCi0tICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4MTZfdCwKLS0gICAgICAg IHVpbnQ4eDE2X3QsCi0tICAgICAgICBwb2x5OHgxNl90LAotLSAgICAgICAgaW50MTZ4OF90LAot LSAgICAgICAgdWludDE2eDhfdCwKLS0gICAgICAgIHBvbHkxNng4X3QsCi0tICAgICAgICBpbnQz Mng0X3QsCi0tICAgICAgICB1aW50MzJ4NF90LAotLSAgICAgICAgZmxvYXQzMng0X3QsCi0tICAg ICAgICBpbnQ2NHgyX3QsCi0tICAgICAgICB1aW50NjR4Ml90LAotLSAgICAgICAgZmxvYXQ2NHgy X3QKLS0gICAgXSwKLS0gICAgWwotLSAgICAgICAgcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3Jf c2lnbmVkX2NoYXIsCi0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRfY2hhciwKLS0gICAgICAgIHZl Y3Rvcl9zaWduZWRfc2hvcnQsCi0tICAgICAgICB2ZWN0b3JfdW5zaWduZWRfc2hvcnQsCi0tICAg ICAgICB2ZWN0b3Jfc2lnbmVkX2ludCwKLS0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9pbnQsCi0t ICAgICAgICB2ZWN0b3JfZmxvYXQKLS0gICAgXSwKLS0gICAgWwotLSAgICAgICAgcG93ZXJwYzY0 WyJwb3dlcnBjNjQiXTogdmVjdG9yX3NpZ25lZF9jaGFyLAotLSAgICAgICAgdmVjdG9yX3Vuc2ln bmVkX2NoYXIsCi0tICAgICAgICB2ZWN0b3Jfc2lnbmVkX3Nob3J0LAotLSAgICAgICAgdmVjdG9y X3Vuc2lnbmVkX3Nob3J0LAotLSAgICAgICAgdmVjdG9yX3NpZ25lZF9pbnQsCi0tICAgICAgICB2 ZWN0b3JfdW5zaWduZWRfaW50LAotLSAgICAgICAgdmVjdG9yX2Zsb2F0LAotLSAgICAgICAgdmVj dG9yX3NpZ25lZF9sb25nLAotLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2xvbmcsCi0tICAgICAg ICB2ZWN0b3JfZG91YmxlCi0tICAgIF0gfCBmcm9tOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAg IG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4 NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0t ICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAg dTEyOHgxLAotLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIGkx Nng4LAotLSAgICB1MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwK LS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgxLAotLSAg ICB1MTI4eDEgfCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAgIFtw b3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX2NoYXJdLAotLSAgICBbcG93ZXJwYzY0WyJw b3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfY2hhcl0gfCBmcm9tOiBtOHgxNiwKLS0gICAgbTE2eDgs Ci0tICAgIG0zMng0LAotLSAgICBtNjR4MiwKLS0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCi0t ICAgIHU4eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIs Ci0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICAvLyBNYXNrczoKLS0gICAgbTh4MTYg fCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAgIFtwb3dlcnBjWyJw b3dlcnBjIl06IHZlY3Rvcl9ib29sX3Nob3J0XSwKLS0gICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0 Il06IHZlY3Rvcl9ib29sX3Nob3J0XSB8IGZyb206IG0xNng4LAotLSAgICBtMzJ4NCwKLS0gICAg bTY0eDIsCi0tICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgaTE2 eDgsCi0tICAgIHUxNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAot LSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDEsCi0tICAg IHUxMjh4MSwKLS0gICAgLy8gTWFza3M6Ci0tICAgIG04eDE2LAotLSAgICBtMTZ4OCB8IHRlc3Q6 IHRlc3RfdjEyOAotLSk7Ci0tCi0taW1wbF9hcmNoISgKLS0gICAgW3Bvd2VycGNbInBvd2VycGMi XTogdmVjdG9yX2Jvb2xfaW50XSwKLS0gICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rv cl9ib29sX2ludF0gfCBmcm9tOiBtMzJ4NCwKLS0gICAgbTY0eDIsCi0tICAgIG0xMjh4MSB8IGlu dG86IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBp MzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIs Ci0tICAgIGY2NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgLy8gTWFza3M6 Ci0tICAgIG04eDE2LAotLSAgICBtMTZ4OCwKLS0gICAgbTMyeDQgfCB0ZXN0OiB0ZXN0X3YxMjgK LS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAgIFtwb3dlcnBjNjRbInBvd2VycGM2NCJdOiB2ZWN0 b3JfYm9vbF9sb25nXSB8IGZyb206IG02NHgyLAotLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwK LS0gICAgdTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAg IHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4 MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIC8vIE1hc2tzOgotLSAgICBtOHgx NiwKLS0gICAgbTE2eDgsCi0tICAgIG0zMng0LAotLSAgICBtNjR4MiB8IHRlc3Q6IHRlc3RfdjEy OAotLSk7Ci0tCi0tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS0vLyBJbXBsZW1lbnRhdGlvbnMg Zm9yIHRoZSAyNTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0taW1wbF9hcmNoISgKLS0gICAg W3g4NlsieDg2Il06IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0sCi0tICAgIFt4ODZfNjRbIng4 Nl82NCJdOiBfX20yNTYsIF9fbTI1NmksIF9fbTI1NmRdIHwgZnJvbTogaTh4MzIsCi0tICAgIHU4 eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngx NiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0t ICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBp MTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyIHwgaW50bzogaTh4MzIsCi0tICAgIHU4 eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4 LAotLSAgICBmMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0g ICAgaTEyOHgyLAotLSAgICB1MTI4eDIgfCB0ZXN0OiB0ZXN0X3YyNTYKLS0pOwotLQotLS8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vCi0tLy8gRklYTUU6IEltcGxlbWVudGF0aW9ucyBmb3IgdGhlIDUx Mi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDc0ICswLDAgQEAKLS0vLyEgTWFjcm9zIGltcGxlbWVudGluZyBg RnJvbUJpdHNgCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9iaXRzXyB7Ci0tICAgICgkaWQ6 aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBj cmF0ZTo6YXBpOjppbnRvX2JpdHM6OkZyb21CaXRzPCRmcm9tX3R5PiBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tX2JpdHMoeDogJGZyb21fdHkp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoeCkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYh IHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewot LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tX2JpdHNfICRmcm9tX3R5Pl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw dHI6OntyZWFkX3VuYWxpZ25lZH0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbTo6 e3NpemVfb2YsIHplcm9lZH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6SW50b0JpdHM7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShzaXplX29mOjo8JGlkPigpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV9vZjo6PCRmcm9tX3R5PigpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBuZXZlciBjcmVhdGUgYSByZWZlcmVu Y2UgdG8KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bmluaXRpYWxpemVkIG1lbW9yeToK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYTogJGZyb21fdHkgPSB1bnNhZmUgeyB6ZXJv ZWQoKSB9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiXzA6ICRpZCA9IGNyYXRl OjpGcm9tQml0czo6ZnJvbV9iaXRzKGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBi XzE6ICRpZCA9IGEuaW50b19iaXRzKCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8g Q2hlY2sgdGhhdCB0aGVzZSBhcmUgYnl0ZS13aXNlIGVxdWFsLCB0aGF0IGlzLAotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJpdCBwYXR0ZXJucyBhcmUgaWRlbnRpY2FsOgot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLnNpemVfb2Y6OjwkaWQ+KCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBv bmx5IHJlYWQgaW5pdGlhbGl6ZWQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVt b3J5IGluIGJvdW5kcy4gQWxzbywgdGFraW5nIGEgcmVmZXJlbmNlIHRvCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGBiX2lgIGlzIG9rIGJlY2F1c2UgdGhlIGZpZWxkcyBhcmUgaW5p dGlhbGl6ZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8wX3Y6IHU4ID0gcmVhZF91bmFsaWduZWQo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCZiXzAgYXMgKmNvbnN0ICRp ZCBhcyAqY29uc3QgdTgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC53cmFwcGluZ19hZGQoaSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8xX3Y6IHU4ID0gcmVhZF91bmFs aWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCZiXzEgYXMgKmNv bnN0ICRpZCBhcyAqY29uc3QgdTgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC53cmFwcGluZ19hZGQoaSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGJfMF92LCBi XzFfdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fYml0cyB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5 OmlkZW50KSwqKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV9iaXRz XyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0KLS0K LS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIGltcGxfaW50b19iaXRzIHsKLS0gICAg KCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKLS0gICAg ICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX2JpdHNfISgkZnJvbV90eVskdGVzdF90dF06 ICRpZCk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTI4LnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDIzMiArMCwwIEBACi0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRv Qml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxMjgtYml0IHdpZGUgdmVjdG9ycwot LSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5f dGVzdAotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGk4eDE2W3Rl c3RfdjEyOF06IHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAot LSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAg bTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgy LAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zy b21fYml0cyEoCi0tICAgIHU4eDE2W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICBtOHgxNiwKLS0g ICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUz Mng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwK LS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0g ICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTh4MTZbdGVzdF92MTI4XTogbTE2eDgs IG0zMng0LCBtNjR4MiwgbTEyOHgxKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkxNng4 W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIHUxNng4 LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0g ICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02 NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBs X2Zyb21fYml0cyEoCi0tICAgIHUxNng4W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwK LS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAg IHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4 MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwK LS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTE2eDhbdGVzdF92MTI4XTogbTMy eDQsIG02NHgyLCBtMTI4eDEpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTMyeDRbdGVz dF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0t ICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBt MzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIs Ci0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJv bV9iaXRzISgKLS0gICAgdTMyeDRbdGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAg ICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMy eDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAot LSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAg ICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjMyeDRbdGVzdF92MTI4XTog aTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4 LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBtMzJ4NCwKLS0g ICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkx Mjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICBtMTI4eDEKLS0pOwotLWltcGxfZnJvbV9iaXRzISht MzJ4NFt0ZXN0X3YxMjhdOiBtNjR4MiwgbTEyOHgxKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0t ICAgIGk2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0t ICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIs Ci0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0t KTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAotLSAg ICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2 eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAot LSAgICBpNjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAg IHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGY2NHgy W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4 LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0g ICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIG02 NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBs X2Zyb21fYml0cyEobTY0eDJbdGVzdF92MTI4XTogbTEyOHgxKTsKLS0KLS1pbXBsX2Zyb21fYml0 cyEoCi0tICAgIGkxMjh4MVt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04 eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwK LS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAg IHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEy OHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUxMjh4MVt0ZXN0X3YxMjhdOiBpOHgx NiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0t ICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBt MzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIs Ci0tICAgIGkxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS0vLyBub3RlOiBtMTI4eDEgY2Fubm90 IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4K LS0vLyBoZXJlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaW50b19iaXRzL3YxNi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ludG9fYml0cy92MTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMv djE2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw5ICswLDAg QEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBv cnRhYmxlIDE2LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxv dyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1w bF9mcm9tX2JpdHMhKGk4eDJbdGVzdF92MTZdOiB1OHgyLCBtOHgyKTsKLS1pbXBsX2Zyb21fYml0 cyEodTh4Mlt0ZXN0X3YxNl06IGk4eDIsIG04eDIpOwotLS8vIG5vdGU6IG04eDIgY2Fubm90IGJl IGNvbnN0cnVjdGVkIGZyb20gYWxsIGk4eDIgb3IgdTh4MiBiaXQgcGF0dGVybnMKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YyNTYu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YyNTYu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMv djI1Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MjU2LnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzIgKzAsMCBAQAotLS8vISBgRnJv bUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMjU2LWJp dCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxvdyh1bnVzZWQpXSAg Ly8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2JpdHMh KAotLSAgICBpOHgzMlt0ZXN0X3YyNTZdOiB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngx NiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwK LS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAg IGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0x Mjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1OHgzMlt0ZXN0X3YyNTZdOiBpOHgz MiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYs Ci0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAg ICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEy OHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG04 eDMyW3Rlc3RfdjI1Nl06IG0xNngxNiwgbTMyeDgsIG02NHg0LCBtMTI4eDIpOwotLQotLWltcGxf ZnJvbV9iaXRzISgKLS0gICAgaTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwK LS0gICAgbTh4MzIsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0g ICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2 NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgy LAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTE2eDE2W3Rlc3Rf djI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0g ICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBt MzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQs Ci0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJv bV9iaXRzIShtMTZ4MTZbdGVzdF92MjU2XTogbTMyeDgsIG02NHg0LCBtMTI4eDIpOwotLQotLWlt cGxfZnJvbV9iaXRzISgKLS0gICAgaTMyeDhbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMy LAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwK LS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAg IHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEy OHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTMyeDhbdGVz dF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAot LSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIGYzMng4LAotLSAg ICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0 eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxf ZnJvbV9iaXRzISgKLS0gICAgZjMyeDhbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAot LSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0g ICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2 NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgy LAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtMzJ4OFt0ZXN0X3YyNTZdOiBt NjR4NCwgbTEyOHgyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGk2NHg0W3Rlc3RfdjI1 Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAg dTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMy eDgsCi0tICAgIG0zMng4LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAot LSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21f Yml0cyEoCi0tICAgIHU2NHg0W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAg bTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkz Mng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIG0zMng4LAotLSAgICBpNjR4NCwK LS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0g ICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGY2NHg0W3Rlc3RfdjI1Nl06 IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2 eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgs Ci0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIG02NHg0LAotLSAg ICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0 cyEobTY0eDRbdGVzdF92MjU2XTogbTEyOHgyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAg IGkxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAg ICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAg dTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0 LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0t KTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0g ICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAg bTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4 OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0t ICAgIGkxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS0vLyBub3RlOiBtMTI4eDIgY2Fubm90IGJl IGNvbnN0cnVjdGVkIGZyb20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KLS0v LyBoZXJlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzL3YzMi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy92MzIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMy LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBA Ci0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0 YWJsZSAzMi1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNbYWxsb3co dW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxf ZnJvbV9iaXRzIShpOHg0W3Rlc3RfdjMyXTogdTh4NCwgbTh4NCwgaTE2eDIsIHUxNngyLCBtMTZ4 Mik7Ci0taW1wbF9mcm9tX2JpdHMhKHU4eDRbdGVzdF92MzJdOiBpOHg0LCBtOHg0LCBpMTZ4Miwg dTE2eDIsIG0xNngyKTsKLS1pbXBsX2Zyb21fYml0cyEobTh4NFt0ZXN0X3YzMl06IG0xNngyKTsK LS0KLS1pbXBsX2Zyb21fYml0cyEoaTE2eDJbdGVzdF92MzJdOiBpOHg0LCB1OHg0LCBtOHg0LCB1 MTZ4MiwgbTE2eDIpOwotLWltcGxfZnJvbV9iaXRzISh1MTZ4Mlt0ZXN0X3YzMl06IGk4eDQsIHU4 eDQsIG04eDQsIGkxNngyLCBtMTZ4Mik7Ci0tLy8gbm90ZTogbTE2eDIgY2Fubm90IGJlIGNvbnN0 cnVjdGVkIGZyb20gYWxsIG04eDQgYml0IHBhdHRlcm5zCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUxMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMjMyICswLDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYElu dG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDUxMi1iaXQgd2lkZSB2ZWN0b3Jz Ci0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdl bl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTh4NjRb dGVzdF92NTEyXTogdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngz MiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2 LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0t ICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsK LS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU4eDY0W3Rlc3RfdjUxMl06IGk4eDY0LAotLSAgICBt OHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMy eDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4 OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAot LSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG04eDY0W3Rl c3RfdjUxMl06IG0xNngzMiwgbTMyeDE2LCBtNjR4OCwgbTEyOHg0KTsKLS0KLS1pbXBsX2Zyb21f Yml0cyEoCi0tICAgIGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAg IG04eDY0LAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1 MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgdTY0 eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQs Ci0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1MTZ4MzJbdGVzdF92 NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAg ICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAg IG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0 eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxf ZnJvbV9iaXRzIShtMTZ4MzJbdGVzdF92NTEyXTogbTMyeDE2LCBtNjR4OCwgbTEyOHg0KTsKLS0K LS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkzMngxNlt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAg dTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2 eDMyLAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4 OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAot LSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1 MzJ4MTZbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAg aTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICBm MzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4 OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQK LS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjMyeDE2W3Rlc3RfdjUxMl06IGk4eDY0LAot LSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAg ICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAg IGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4 eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTMy eDE2W3Rlc3RfdjUxMl06IG02NHg4LCBtMTI4eDQpOwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0g ICAgaTY0eDhbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0g ICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAg ICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICB1NjR4OCwKLS0gICAg ZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEy OHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHU2NHg4W3Rlc3RfdjUxMl06IGk4eDY0 LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAot LSAgICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0t ICAgIG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAg aTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMh KAotLSAgICBmNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0 LAotLSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYs Ci0tICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAot LSAgICB1NjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAg ICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzIShtNjR4OFt0ZXN0X3Y1MTJdOiBtMTI4eDQp OwotLQotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTEyOHg0W3Rlc3RfdjUxMl06IGk4eDY0LAot LSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAg ICBtMTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAg IG0zMngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0 eDgsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0t ICAgIHUxMjh4NFt0ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0LAot LSAgICBpMTZ4MzIsCi0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0t ICAgIHUzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAg ICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIG0x Mjh4NAotLSk7Ci0tLy8gbm90ZTogbTEyOHg0IGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFs bCB0aGUgb3RoZXIgbWFza3MgYml0IHBhdHRlcm5zIGluCi0tLy8gaGVyZQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NjQucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y2NC5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTggKzAsMCBAQAotLS8vISBgRnJvbUJpdHNgIGFu ZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNjQtYml0IHdpZGUgdmVj dG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2Jp bmRnZW5fdGVzdAotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTh4OFt0ZXN0 X3Y2NF06IHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMy eDIsIG0zMngyKTsKLS1pbXBsX2Zyb21fYml0cyEodTh4OFt0ZXN0X3Y2NF06IGk4eDgsIG04eDgs IGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1pbXBs X2Zyb21fYml0cyEobTh4OFt0ZXN0X3Y2NF06IG0xNng0LCBtMzJ4Mik7Ci0tCi0taW1wbF9mcm9t X2JpdHMhKGkxNng0W3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgdTE2eDQsIG0xNng0LCBp MzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKHUxNng0W3Rlc3Rf djY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngy LCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKG0xNng0W3Rlc3RfdjY0XTogbTMyeDIpOwotLQot LWltcGxfZnJvbV9iaXRzIShpMzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0 LCB1MTZ4NCwgbTE2eDQsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzISh1 MzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkz MngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzIShmMzJ4Mlt0ZXN0X3Y2NF06IGk4 eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgbTMyeDIp OwotLS8vIG5vdGU6IG0zMngyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCBtMTZ4NCBv ciBtOHg4IGJpdCBwYXR0ZXJucwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaW50b19iaXRzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaW50b19iaXRzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1OSArMCwwIEBACi0t Ly8hIEltcGxlbWVudGF0aW9uIG9mIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AuCi0tCi0tLy8v IFNhZmUgbG9zc2xlc3MgYml0d2lzZSBjb252ZXJzaW9uIGZyb20gYFRgIHRvIGBTZWxmYC4KLS0j W2NmZ19hdHRyKGRvY19jZmcsIGRvYyhjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKSkpXQotLXB1 YiB0cmFpdCBGcm9tQml0czxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICAvLy8gU2Fm ZSBsb3NzbGVzcyBiaXR3aXNlIHRyYW5zbXV0ZSBmcm9tIGBUYCB0byBgU2VsZmAuCi0tICAgIGZu IGZyb21fYml0cyh0OiBUKSAtPiBTZWxmOwotLX0KLS0KLS0vLy8gU2FmZSBsb3NzbGVzcyBiaXR3 aXNlIGNvbnZlcnNpb24gZnJvbSBgU2VsZmAgdG8gYFRgLgotLSNbY2ZnX2F0dHIoZG9jX2NmZywg ZG9jKGNmZyhmZWF0dXJlID0gImludG9fYml0cyIpKSldCi0tcHViIHRyYWl0IEludG9CaXRzPFQ+ OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0tICAgIC8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2Ug dHJhbnNtdXRlIGZyb20gYHNlbGZgIHRvIGBUYC4KLS0gICAgZm4gaW50b19iaXRzKHNlbGYpIC0+ IFQ7Ci0tfQotLQotLS8vLyBgRnJvbUJpdHNgIGltcGxpZXMgYEludG9CaXRzYC4KLS1pbXBsPFQs IFU+IEludG9CaXRzPFU+IGZvciBUCi0td2hlcmUKLS0gICAgVTogRnJvbUJpdHM8VD4sCi0tewot LSAgICAjW2lubGluZV0KLS0gICAgZm4gaW50b19iaXRzKHNlbGYpIC0+IFUgewotLSAgICAgICAg ZGVidWdfYXNzZXJ0IShjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSA9PSBjcmF0ZTo6bWVt OjpzaXplX29mOjo8VT4oKSk7Ci0tICAgICAgICBVOjpmcm9tX2JpdHMoc2VsZikKLS0gICAgfQot LX0KLS0KLS0vLy8gYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBhcmUgcmVmbGV4aXZlCi0taW1w bDxUPiBGcm9tQml0czxUPiBmb3IgVCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBmcm9tX2Jp dHModDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICB0Ci0tICAgIH0KLS19Ci0tCi0tI1ttYWNy b191c2VdCi0tbW9kIG1hY3JvczsKLS0KLS1tb2QgdjE2OwotLXB1YiB1c2Ugc2VsZjo6djE2Ojoq OwotLQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0tbW9kIHY2NDsKLS1w dWIgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEyODsKLS1wdWIgdXNlIHNlbGY6OnYxMjg6 Oio7Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxmOjp2MjU2OjoqOwotLQotLW1vZCB2NTEy OwotLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1tb2QgYXJjaF9zcGVjaWZpYzsKLS1wdWIg dXNlIHNlbGY6OmFyY2hfc3BlY2lmaWM6Oio7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMzEgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5l LXdpc2UpIGZsb2F0aW5nLXBvaW50IGBhYnNgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhf ZmxvYXRfYWJzIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAg ICAgICAgLy8vIEFic29sdXRlIHZhbHVlLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHB1YiBmbiBhYnMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmFiczo6QWJzOwotLSAgICAgICAgICAgICAgICBB YnM6OmFicyhzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRl c3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfYWJzPl0gewotLSAgICAg ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIGFicygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv LCBvLmFicygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW8gPSAkaWQ6OnNw bGF0KC0xIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8sIG1vLmFicygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29uc3RzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29uc3Rz LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9jb25zdHMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2NvbnN0cy5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzQgKzAsMCBAQAotLW1h Y3JvX3J1bGVzISBpbXBsX2Zsb2F0X2NvbnN0cyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0g ICAgICAgICAgICAvLy8gTWFjaGluZSBlcHNpbG9uIHZhbHVlLgotLSAgICAgICAgICAgIHB1YiBj b25zdCBFUFNJTE9OOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpFUFNJTE9OKTsK LS0KLS0gICAgICAgICAgICAvLy8gU21hbGxlc3QgZmluaXRlIHZhbHVlLgotLSAgICAgICAgICAg IHB1YiBjb25zdCBNSU46ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1JTik7Ci0t Ci0tICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHBvc2l0aXZlIG5vcm1hbCB2YWx1ZS4KLS0gICAg ICAgICAgICBwdWIgY29uc3QgTUlOX1BPU0lUSVZFOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRl bGVtX3R5OjpNSU5fUE9TSVRJVkUpOwotLQotLSAgICAgICAgICAgIC8vLyBMYXJnZXN0IGZpbml0 ZSB2YWx1ZS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTUFYOiAkaWQgPSAkaWQ6OnNwbGF0KGNv cmU6OiRlbGVtX3R5OjpNQVgpOwotLQotLSAgICAgICAgICAgIC8vLyBOb3QgYSBOdW1iZXIgKE5h TikuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE5BTjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjok ZWxlbV90eTo6TkFOKTsKLS0KLS0gICAgICAgICAgICAvLy8gSW5maW5pdHkgKOKInikuCi0tICAg ICAgICAgICAgcHViIGNvbnN0IElORklOSVRZOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVt X3R5OjpJTkZJTklUWSk7Ci0tCi0tICAgICAgICAgICAgLy8vIE5lZ2F0aXZlIGluZmluaXR5ICgt 4oieKS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTkVHX0lORklOSVRZOiAkaWQgPSAkaWQ6OnNw bGF0KGNvcmU6OiRlbGVtX3R5OjpORUdfSU5GSU5JVFkpOwotLQotLSAgICAgICAgICAgIC8vLyBB cmNoaW1lZGVzJyBjb25zdGFudCAoz4ApCi0tICAgICAgICAgICAgcHViIGNvbnN0IFBJOiAkaWQg PSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJKTsKLS0KLS0gICAgICAgICAg ICAvLy8gz4AvMgotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzI6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8yKTsKLS0KLS0gICAgICAgICAg ICAvLy8gz4AvMwotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzM6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8zKTsKLS0KLS0gICAgICAgICAg ICAvLy8gz4AvNAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzQ6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV80KTsKLS0KLS0gICAgICAgICAg ICAvLy8gz4AvNgotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzY6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV82KTsKLS0KLS0gICAgICAgICAg ICAvLy8gz4AvOAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzg6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV84KTsKLS0KLS0gICAgICAgICAg ICAvLy8gMS/PgAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzFfUEk6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18xX1BJKTsKLS0KLS0gICAgICAgICAg ICAvLy8gMi/PgAotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzJfUEk6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18yX1BJKTsKLS0KLS0gICAgICAgICAg ICAvLy8gMi9zcXJ0KM+AKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzJfU1FSVF9QSTog JGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzJfU1FSVF9QSSk7 Ci0tCi0tICAgICAgICAgICAgLy8vIHNxcnQoMikKLS0gICAgICAgICAgICBwdWIgY29uc3QgU1FS VF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMik7Ci0t Ci0tICAgICAgICAgICAgLy8vIDEvc3FydCgyKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFD XzFfU1FSVF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNf MV9TUVJUXzIpOwotLQotLSAgICAgICAgICAgIC8vLyBFdWxlcidzIG51bWJlciAoZSkKLS0gICAg ICAgICAgICBwdWIgY29uc3QgRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29u c3RzOjpFKTsKLS0KLS0gICAgICAgICAgICAvLy8gbG9nPHN1Yj4yPC9zdWI+KGUpCi0tICAgICAg ICAgICAgcHViIGNvbnN0IExPRzJfRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6 Y29uc3RzOjpMT0cyX0UpOwotLQotLSAgICAgICAgICAgIC8vLyBsb2c8c3ViPjEwPC9zdWI+KGUp Ci0tICAgICAgICAgICAgcHViIGNvbnN0IExPRzEwX0U6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6 JGVsZW1fdHk6OmNvbnN0czo6TE9HMTBfRSk7Ci0tCi0tICAgICAgICAgICAgLy8vIGxuKDIpCi0t ICAgICAgICAgICAgcHViIGNvbnN0IExOXzI6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6OmNvbnN0czo6TE5fMik7Ci0tCi0tICAgICAgICAgICAgLy8vIGxuKDEwKQotLSAgICAgICAg ICAgIHB1YiBjb25zdCBMTl8xMDogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29u c3RzOjpMTl8xMCk7Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0 aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgY29zYC4KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9tYXRoX2Zsb2F0X2NvcyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQg ewotLSAgICAgICAgICAgIC8vLyBDb3NpbmUuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgcHViIGZuIGNvcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zOjpDb3M7Ci0tICAgICAgICAgICAgICAg IENvczo6Y29zKHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb3Np bmUgb2YgYHNlbGYgKiBQSWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl Ojpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zX3BpOjpDb3NQaTsKLS0gICAgICAgICAgICAgICAg Q29zUGk6OmNvc19waShzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAg ICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfY29zPl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIGNvcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OiRlbGVtX3R5Ojpjb25zdHM6OlBJOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0g JGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg byA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHAgPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgcGggPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5IC8gMi4pOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6X3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxlbV90eSAvIDIu KS5jb3MoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9fciA9ICRpZDo6c3BsYXQo KFBJIGFzICRlbGVtX3R5KS5jb3MoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLCB6LmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHpfciwgcGguY29zKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob19y LCBwLmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2V4cC5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZl cnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBleHBgLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX21hdGhfZmxvYXRfZXhwIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRp ZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIGV4cG9uZW50aWFsIGZ1bmN0aW9uIG9m IGBzZWxmYDogYGVeKHNlbGYpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gZXhwKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpleHA6OkV4cDsKLS0gICAgICAgICAgICAgICAgRXhwOjpl eHAoc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lm IXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewot LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX2V4cD5dIHsKLS0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBleHAoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxh dCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8s IHouZXhwKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxh dChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgoZSAtIG8uZXhwKCkpLmFicygpLmxlKHRvbCkuYWxs KCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDMzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFu ZS13aXNlKSBmbG9hdGluZy1wb2ludCBgbG5gLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhf ZmxvYXRfbG4gewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAg ICAgICAvLy8gUmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgYHNlbGZgLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBsbihzZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bG46Okxu OwotLSAgICAgICAgICAgICAgICBMbjo6bG4oc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9t YXRoX2xuPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIGxuKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6LCBvLmxuKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBlID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgobyAtIGUubG4o KSkuYWJzKCkubGUodG9sKS5hbGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L211bF9hZGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9tdWxfYWRkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9tdWxfYWRkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0 NCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmct cG9pbnQgYG11bF9hZGRgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfbXVsX2Fk ZCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8v LyBGdXNlZCBtdWx0aXBseSBhZGQ6IGBzZWxmICogeSArIHpgCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIG11bF9hZGQoc2VsZiwgeTogU2VsZiwgejogU2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6Zmxv YXQ6Om11bF9hZGQ6Ok11bEFkZDsKLS0gICAgICAgICAgICAgICAgTXVsQWRkOjptdWxfYWRkKHNl bGYsIHksIHopCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9p ZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9tdWxfYWRkPl0gewotLSAgICAg ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIG11bF9hZGQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6 OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0g JGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHQzID0gJGlkOjpzcGxhdCgzIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6Lm11bF9hZGQoeiwgeikpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkKG8sIHopKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVsX2FkZCh6LCBvKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6Lm11bF9hZGQobywgbykpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRkKG8sIG8pKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIG8ubXVsX2FkZCh0LCB6KSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCB0Lm11bF9hZGQobywgeikpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRkKHQsIHopKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQubXVsX2FkZChvLCB0KSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0MywgdC5tdWxfYWRkKG8sIG8p KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZGUucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2Fk ZGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0OCArMCwwIEBACi0tLy8hIElt cGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRlYC4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGRlIHsKLS0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5 IGFkZCBlc3RpbWF0ZTogfj0gYHNlbGYgKiB5ICsgemAKLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gV2hpbGUgZnVzZWQgbXVsdGlwbHktYWRkIChgZm1hYCkgaGFzIGluZmluaXRl IHByZWNpc2lvbiwKLS0gICAgICAgICAgICAvLy8gYG11bF9hZGRlYCBoYXMgX2F0IHdvcnN0XyB0 aGUgc2FtZSBwcmVjaXNpb24gb2YgYSBtdWx0aXBseSBmb2xsb3dlZCBieSBhbiBhZGQuCi0tICAg ICAgICAgICAgLy8vIFRoaXMgbWlnaHQgYmUgbW9yZSBlZmZpY2llbnQgb24gYXJjaGl0ZWN0dXJl cyB0aGF0IGRvIG5vdCBoYXZlIGFuIGBmbWFgIGluc3RydWN0aW9uLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBT ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRo OjpmbG9hdDo6bXVsX2FkZGU6Ok11bEFkZEU7Ci0tICAgICAgICAgICAgICAgIE11bEFkZEU6Om11 bF9hZGRlKHNlbGYsIHksIHopCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9tdWxfYWRkZT5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBtdWxfYWRkZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHoubXVsX2FkZGUoeiwgeikpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkZShvLCB6KSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGRlKHosIG8p KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHoubXVsX2FkZGUobywg bykpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRk ZShvLCBvKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11bF9h ZGRlKHQsIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQubXVs X2FkZGUobywgeikpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwg dC5tdWxfYWRkZSh0LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShm LCB0Lm11bF9hZGRlKG8sIHQpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQzLCB0Lm11bF9hZGRlKG8sIG8pKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv cG93Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L3Bvd2YucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L3Bvd2YucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM2ICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgcG93ZmAu Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9wb3dmIHsKLS0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJhaXNlcyBgc2VsZmAgbnVt YmVyIHRvIHRoZSBmbG9hdGluZyBwb2ludCBwb3dlciBvZiBgeGAuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHBvd2Yoc2VsZiwgeDogU2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnBvd2Y6 OlBvd2Y7Ci0tICAgICAgICAgICAgICAgIFBvd2Y6OnBvd2Yoc2VsZiwgeCkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9tYXRoX3Bvd2Y+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcG93ZigpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ucG93Zih6KSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB0LnBvd2YoeikpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5wb3dmKG8pKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQucG93ZihvKSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5wb3dmKHQpKTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsMzYgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdp c2UpIGZsb2F0aW5nLXBvaW50IGByZWNwcmVgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhf ZmxvYXRfcmVjcHJlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAg ICAgICAgICAgLy8vIFJlY2lwcm9jYWwgZXN0aW1hdGU6IGB+PSAxLiAvIHNlbGZgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNpc2lvbiBvZiB0aGUg ZXN0aW1hdGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiByZWNwcmUoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgICRpZDo6c3BsYXQoMS4pIC8gc2VsZgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhf cmVjcHJlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIHJlY3ByZSgpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAtIG8ucmVjcHJlKCkpLmFicygpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1f dHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gMC41OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5yZWNwcmUoKSkuYWJzKCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsNDAgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChs YW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGByc3FydGVgLgotLQotLW1hY3JvX3J1bGVzISBpbXBs X21hdGhfZmxvYXRfcnNxcnRlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7 Ci0tICAgICAgICAgICAgLy8vIFJlY2lwcm9jYWwgc3F1YXJlLXJvb3QgZXN0aW1hdGU6IGB+PSAx LiAvIHNlbGYuc3FydCgpYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gRklY TUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNwZWNpZmll ZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcnNxcnRlKHNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZzcXJ0OwotLSAgICAgICAgICAgICAgICAgICAg JGlkOjpzcGxhdCgxLikgLyBTaW1kKHNpbWRfZnNxcnQoc2VsZi4wKSkKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfcnNxcnRlPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IHJzcXJ0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5 Ojpjb25zdHM6OlNRUlRfMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlk OjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZXJyb3IgPSAobyAtIG8ucnNxcnRlKCkpLmFicygpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBlID0gMS4gLyBTUVJUXzI7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGVycm9yID0gKGUgLSB0LnJzcXJ0ZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9zaW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9zaW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvc2luLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1MCAr MCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9p bnQgYHNpbmAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zaW4gewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gU2luZS4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc2luKHNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpz aW46OlNpbjsKLS0gICAgICAgICAgICAgICAgU2luOjpzaW4oc2VsZikKLS0gICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgLy8vIFNpbmUgb2YgYHNlbGYgKiBQSWAuCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNpbl9waShzZWxmKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c2luX3BpOjpT aW5QaTsKLS0gICAgICAgICAgICAgICAgU2luUGk6OnNpbl9waShzZWxmKQotLSAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAvLy8gU2luZSBhbmQgY29zaW5lIG9mIGBzZWxmICogUElgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBzaW5fY29zX3BpKHNl bGYpIC0+IChTZWxmLCBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdl bjo6bWF0aDo6ZmxvYXQ6OnNpbl9jb3NfcGk6OlNpbkNvc1BpOwotLSAgICAgICAgICAgICAgICBT aW5Db3NQaTo6c2luX2Nvc19waShzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfc2lu Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIHNpbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkgLyAyLik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG9fciA9ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5IC8g Mi4pLnNpbigpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgel9yID0gJGlkOjpzcGxh dCgoUEkgYXMgJGVsZW1fdHkpLnNpbigpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHosIHouc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEob19yLCBwaC5zaW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 X3IsIHAuc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3Fy dC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzUgKzAsMCBAQAotLS8vISBJbXBsZW1l bnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBzcXJ0YC4KLS0KLS1tYWNy b19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NxcnQgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAg IGltcGwgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4g c3FydChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2Vu OjptYXRoOjpmbG9hdDo6c3FydDo6U3FydDsKLS0gICAgICAgICAgICAgICAgU3FydDo6c3FydChz ZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfc3FydD5dIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBz cXJ0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNv bnN0czo6U1FSVF8yOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxh dCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6 c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6LCB6LnNxcnQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBv LnNxcnQoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpz cGxhdChTUVJUXzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZSwgdC5z cXJ0KCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnRlLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0 ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydGUucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAKLS0vLyEgSW1wbGVt ZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc3FydGVgLgotLQotLW1h Y3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfc3FydGUgewotLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAg ICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gU3F1YXJlLXJvb3QgZXN0aW1hdGUuCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUgcHJlY2lzaW9uIG9m IHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNxcnRlKHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzcXJ0ZTo6U3FydGU7 Ci0tICAgICAgICAgICAgICAgIFNxcnRlOjpzcXJ0ZShzZWxmKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX21hdGhfc3FydGU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc3FydGUoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzI7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00IGFzICRlbGVtX3R5 KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKHogLSB6LnNx cnRlKCkpLmFicygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUo dG9sKS5hbGwoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNw bGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9 IChvIC0gby5zcXJ0ZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZSA9ICRpZDo6c3BsYXQoU1FSVF8yIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQuc3FydGUoKSkuYWJzKCk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2MSArMCwwIEBACi0t Ly8hIEltcGxlbWVudHMgdmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0aCBvcGVyYXRpb25zLgot LQotLSNbbWFjcm9fdXNlXQotLW1vZCBhYnM7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGNvbnN0 czsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgY29zOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBl eHA7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHBvd2Y7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9k IGxuOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBtdWxfYWRkOwotLQotLSNbbWFjcm9fdXNlXQot LW1vZCBtdWxfYWRkZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgcmVjcHJlOwotLQotLSNbbWFj cm9fdXNlXQotLW1vZCByc3FydGU7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHNpbjsKLS0KLS0j W21hY3JvX3VzZV0KLS1tb2Qgc3FydDsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgc3FydGU7Ci0t Ci0tbWFjcm9fcnVsZXMhIGltcGxfZmxvYXRfY2F0ZWdvcnkgewotLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudCkgPT4gewot LSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IHB1YiBmbiBpc19uYW4oc2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICBzZWxm Lm5lKHNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBpc19pbmZpbml0ZShzZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAg ICAgICAgICAgIHNlbGYuZXEoU2VsZjo6SU5GSU5JVFkpIHwgc2VsZi5lcShTZWxmOjpORUdfSU5G SU5JVFkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHB1YiBmbiBpc19maW5pdGUoc2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAg ICAgICAhKHNlbGYuaXNfbmFuKCkgfCBzZWxmLmlzX2luZmluaXRlKCkpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRz IHZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBmbG9hdDsK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1h bC9pdWYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9p dWYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFs L2l1Zi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvaXVmLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNjkgKzAsMCBAQAotLS8vISBNaW5pbWFs IEFQSSBvZiBzaWduZWQgaW50ZWdlciwgdW5zaWduZWQgaW50ZWdlciwgYW5kIGZsb2F0aW5nLXBv aW50Ci0tLy8hIHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWluaW1hbF9pdWYgewot LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJGll bGVtX3R5OmlkZW50IHwKLS0gICAgICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9uYW1lOmlkZW50KSwr IHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLQotLSAgICAgICAgJCgjWyRkb2NdKSoKLS0gICAg ICAgIHB1YiB0eXBlICRpZCA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+OwotLQotLSAg ICAgICAgaW1wbCBzZWFsZWQ6OlNpbWQgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBFbGVt ZW50ID0gJGVsZW1fdHk7Ci0tICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1f Y291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIENy ZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXpl ZAotLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMuCi0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3Vt ZW50cyldCi0tICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVtX25hbWU6ICRlbGVt X3R5KSwqKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCgk ZWxlbV9uYW1lIGFzICRpZWxlbV90eSksKikpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXplIHsK LS0gICAgICAgICAgICAgICAgJGVsZW1fY291bnQKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5p dGlhbGl6ZWQgdG8KLS0gICAgICAgICAgICAvLy8gYHZhbHVlYC4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6ICRlbGVtX3R5KSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7Ci0tICAgICAg ICAgICAgICAgICAgICAjW2FsbG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUpXQot LSAgICAgICAgICAgICAgICAgICAgc3RydWN0ICRlbGVtX25hbWU7Ci0tICAgICAgICAgICAgICAg ICAgICB2YWx1ZSBhcyAkaWVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfSksKikpCi0tICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4 YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYs IGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICBhc3NlcnQhKGlu ZGV4IDwgJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLmV4dHJh Y3RfdW5jaGVja2VkKGluZGV4KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g SWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBleHRyYWN0 X3VuY2hlY2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7Ci0tICAgICAgICAgICAgICAgIGxl dCBlOiAkaWVsZW1fdHkgPSBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1MzIpOwotLSAg ICAgICAgICAgICAgICBlIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBp cyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGlu ZGV4ID49IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgICNbbXVzdF91c2UgPSAicmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZh bHVlIC0gXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0 b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAg IHB1YiBmbiByZXBsYWNlKHNlbGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiAkZWxlbV90eSkg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgs IG5ld192YWx1ZSkgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJu cyBhIG5ldyB2ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkg YG5ld192YWx1ZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5 Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjps YW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9lcyBub3Qg bW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg IGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgotLSAgICAg ICAgICAgIF0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVja2VkKAot LSAgICAgICAgICAgICAgICBzZWxmLAotLSAgICAgICAgICAgICAgICBpbmRleDogdXNpemUsCi0t ICAgICAgICAgICAgICAgIG5ld192YWx1ZTogJGVsZW1fdHksCi0tICAgICAgICAgICAgKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2VydDsKLS0g ICAgICAgICAgICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUzMiwgbmV3 X3ZhbHVlIGFzICRpZWxlbV90eSkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIg Y2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9taW5p bWFsPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBtaW5pbWFsKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmVzOgotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoJGVsZW1fY291bnQsICRpZDo6bGFuZXMoKSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJhY3QgLyBleHRyYWN0X3VuY2hlY2tlZDoK LS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5ID0gNyBhcyAkZWxl bV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6ICRpZCA9ICRpZDo6c3Bs YXQoVkFMKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVz KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwgVkVDLmV4 dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkFMLCB1bnNhZmUgeyBWRUMuZXh0cmFjdF91 bmNoZWNrZWQoaSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNl IC8gcmVwbGFjZV91bmNoZWNrZWQKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3Zl YyA9IFZFQy5yZXBsYWNlKDAsIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISg0MiBhcyAkZWxlbV90eSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoVkFMLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBuZXdfdmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgVkVDLnJlcGxhY2VfdW5jaGVja2VkKDAsIDQyIGFzICRlbGVtX3R5KQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoNDIgYXMgJGVsZW1f dHksIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwg bmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBw b3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAj W3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAg ICAgICAgICAgIGZuIGV4dHJhY3RfcGFuaWNfb29iKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBfID0gVkVDLmV4dHJhY3QoJGlkOjpsYW5lcygpKTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRn ZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0t ICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3Vs ZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2VfcGFuaWNfb29iKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVt X3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxh dChWQUwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLnJlcGxhY2UoJGlk OjpsYW5lcygpLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0KLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwv bWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21h c2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFs L21hc2sucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21hc2sucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE3NiArMCwwIEBACi0tLy8hIE1pbmlt YWwgQVBJIG9mIG1hc2sgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9taW5pbWFsX21h c2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50 IHwgJGllbGVtX3R5OmlkZW50Ci0tICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX25hbWU6aWRl bnQpLCsgfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICAkKCNbJGRvY10pKgotLSAg ICAgICAgcHViIHR5cGUgJGlkID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47Ci0tCi0t ICAgICAgICBpbXBsIHNlYWxlZDo6U2ltZCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIEVs ZW1lbnQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxl bV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50 XTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8g Q3JlYXRlcyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1lbnRzIGluaXRpYWxp emVkCi0tICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dG9vX21hbnlfYXJn dW1lbnRzKV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVsZW1fbmFtZTogYm9v bCksKikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoU2Vs Zjo6Ym9vbF90b19pbnRlcm5hbCgkZWxlbV9uYW1lKSksKikpCi0tICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBhIGJvb2xlYW4gdHlwZSBpbnRvIHRoZSB0eXBlIG9m IHRoZSB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg I1thbGxvdyhjbGlwcHk6OmluZGV4aW5nX3NsaWNpbmcpXQotLSAgICAgICAgICAgIGNvbnN0IGZu IGJvb2xfdG9faW50ZXJuYWwoeDogYm9vbCkgLT4gJGllbGVtX3R5IHsKLS0gICAgICAgICAgICAg ICAgWzAgYXMgJGllbGVtX3R5LCAhKDAgYXMgJGllbGVtX3R5KV1beCBhcyB1c2l6ZV0KLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB2ZWN0 b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGNvbnN0 IGZuIGxhbmVzKCkgLT4gdXNpemUgewotLSAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5j ZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAgICAgICAgIC8vLyBgdmFs dWVgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBz cGxhdCh2YWx1ZTogYm9vbCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQoY29kZWdl bjo6JGlkKCQoewotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2FtZWxfY2FzZV90 eXBlcywgZGVhZF9jb2RlKV0KLS0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAkZWxlbV9uYW1l OwotLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbCh2YWx1ZSkKLS0g ICAgICAgICAgICAgICAgfSksKikpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g SWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KLS0gICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhg LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhl IGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1c2l6ZSkg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9leHRyYWN0 OwotLSAgICAgICAgICAgICAgICBsZXQgeDogJGllbGVtX3R5ID0gc2ltZF9leHRyYWN0KHNlbGYu MCwgaW5kZXggYXMgdTMyKTsKLS0gICAgICAgICAgICAgICAgeCAhPSAwCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFs dWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQotLSAgICAgICAgICAgIC8vLyBgbmV3X3ZhbHVl YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFj ZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGlu ZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVl YGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiBmbiByZXBsYWNlKHNlbGYsIGlu ZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiBib29sKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg YXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsg c2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFs dWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQotLSAgICAgICAgICAgIC8vLyBgbmV3X3ZhbHVl YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRo ZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhl IG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJu cyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQot LSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCi0tICAgICAgICAg ICAgICAgIHNlbGYsCi0tICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKLS0gICAgICAgICAg ICAgICAgbmV3X3ZhbHVlOiBib29sLAotLSAgICAgICAgICAgICkgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7Ci0tICAgICAgICAgICAgICAg IFNpbWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbChuZXdfdmFsdWUpKSkKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAg ICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9taW5pbWFsPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICBmbiBtaW5pbWFsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86 IHRlc3QgbmV3Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjpsYW5lcygpKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAvIGV4dHJh Y3RfdW5jaGVja2VkOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNw bGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFu ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgdmVj LmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRy dWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgdmVj LmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG5ld192ZWMgPSB2ZWMucmVwbGFjZSgwLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZmFsc2UsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHRydWUsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZWMucmVwbGFjZV91bmNoZWNrZWQoMCwgZmFsc2UpCi0tICAgICAgICAgICAgICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAg I1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAg ICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IF8gPSB2ZWMuZXh0cmFjdCgkaWQ6OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRv ZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAg ICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2Vf cGFuaWNfb29iKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNw bGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHZlYy5yZXBsYWNl KCRpZDo6bGFuZXMoKSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0KLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9wdHIucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL3B0ci5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTM3MyArMCwwIEBACi0tLy8hIE1pbmltYWwgQVBJIG9m IHBvaW50ZXIgdmVjdG9ycy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9taW5pbWFsX3AgewotLSAg ICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTpp ZGVudCwKLS0gICAgICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50IHwgJHJlZjppZGVu dCB8ICR0ZXN0X3R0OnR0Ci0tICAgICB8ICQoJGVsZW1fbmFtZTppZGVudCksKyB8ICgkdHJ1ZTpl eHByLCAkZmFsc2U6ZXhwcikgfAotLSAgICAgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLQotLSAg ICAgICAgJCgjWyRkb2NdKSoKLS0gICAgICAgIHB1YiB0eXBlICRpZDxUPiA9IFNpbWQ8WyRlbGVt X3R5OyAkZWxlbV9jb3VudF0+OwotLQotLSAgICAgICAgaW1wbDxUPiBzZWFsZWQ6OlNpbWQgZm9y ICRpZDxUPiB7Ci0tICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0gJGVsZW1fdHk7Ci0tICAgICAg ICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlw ZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICBpbXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBuZXcgaW5zdGFu Y2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXplZAotLSAgICAgICAgICAgIC8v LyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3VtZW50cyldCi0tICAgICAgICAg ICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVtX25hbWU6ICRlbGVtX3R5KSwqKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCgkZWxlbV9uYW1lKSwqKSkKLS0g ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB2 ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGNv bnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgewotLSAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0 YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAgICAgICAgIC8vLyBg dmFsdWVgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBm biBzcGxhdCh2YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTaW1k KGNvZGVnZW46OiRpZCgkKHsKLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3cobm9uX2NhbWVs X2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCi0tICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgJGVs ZW1fbmFtZTsKLS0gICAgICAgICAgICAgICAgICAgIHZhbHVlCi0tICAgICAgICAgICAgICAgIH0p LCopKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5l dyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwotLSAgICAgICAgICAg IC8vLyBgbnVsbGAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGNv bnN0IGZuIG51bGwoKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoY3Jh dGU6OnB0cjo6bnVsbF9tdXQoKSBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgLy8vIFJldHVybnMgYSBtYXNrIHRoYXQgc2VsZWN0cyB0aG9zZSBsYW5lcyB0aGF0 IGNvbnRhaW4gYG51bGxgCi0tICAgICAgICAgICAgLy8vIHBvaW50ZXJzLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBpc19udWxsKHNlbGYpIC0+ICRtYXNrX3R5 IHsKLS0gICAgICAgICAgICAgICAgc2VsZi5lcShTZWxmOjpudWxsKCkpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4 OiB1c2l6ZSkgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwg JGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLmV4dHJhY3RfdW5j aGVja2VkKGluZGV4KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBFeHRy YWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGlu ZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBleHRyYWN0X3VuY2hl Y2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7Ci0tICAgICAgICAgICAgICAgIHNpbWRfZXh0 cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMikKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlz IHJlcGxhY2VkIGJ5Ci0tICAgICAgICAgICAgLy8vIGBuZXdfdmFsdWVgLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1vZGlm eSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBpdCBy ZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgZCIKLS0gICAgICAgICAg ICBdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om5vdF91bnNhZmVfcHRyX2FyZ19kZXJl ZildCi0tICAgICAgICAgICAgcHViIGZuIHJlcGxhY2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBuZXdf dmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRl eCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5yZXBsYWNl X3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4 YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYg YGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3Vu Y2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUg YXQgYGluZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3 X3ZhbHVlYGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVw bGFjZV91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNlbGYsCi0tICAgICAgICAgICAgICAg IGluZGV4OiB1c2l6ZSwKLS0gICAgICAgICAgICAgICAgbmV3X3ZhbHVlOiAkZWxlbV90eSwKLS0g ICAgICAgICAgICApIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06 OnNpbWRfaW5zZXJ0OwotLSAgICAgICAgICAgICAgICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYuMCwg aW5kZXggYXMgdTMyLCBuZXdfdmFsdWUpKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21pbmlt YWw+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG1pbmltYWwoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjo8aTMyPjo6bGFuZXMoKSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJhY3QgLyBleHRyYWN0X3VuY2hl Y2tlZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNzogPCRpZDxpMzI+IGFzIHNl YWxlZDo6U2ltZD46OkVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVm ISg3KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMyPiBhcyBz ZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJl ZiEoNDIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlk OjpzcGxhdChWQUw3KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShWQUw3LCBWRUMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQUw3LCB1bnNhZmUg eyBWRUMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbmV3X3ZlYyA9IFZFQy5yZXBsYWNlKDAsIFZBTDQyKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWRUMucmVwbGFjZV91bmNoZWNrZWQoMCwgVkFMNDIpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAw IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5l d192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192 ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBu ID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7IGNyYXRlOjptZW06Onplcm9lZCgp IH0pCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKG4uaXNfbnVsbCgpLmFsbCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBu ID0gbi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCB1bnNhZmUgeyBj cmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghbi5pc19udWxsKCkuYWxsKCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShuLmlzX251bGwoKS5hbnkoKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISghbi5pc19udWxsKCkuYW55KCkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3Bh bmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAg ICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0t ICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgVkFMOiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVu dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDcpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChWQUwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLmV4dHJhY3QoJGlkOjo8aTMyPjo6bGFuZXMo KSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAg ICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IFZBTDogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg3KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNDIpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChWQUwpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLnJlcGxhY2UoJGlkOjo8aTMyPjo6bGFuZXMoKSwg VkFMNDIpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Zm10OjpE ZWJ1ZyBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19p bmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZt dXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikKLS0gICAgICAgICAgICAgICAgICAgLT4gY3Jh dGU6OmZtdDo6UmVzdWx0IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKAotLSAgICAgICAgICAg ICAgICAgICAgZiwKLS0gICAgICAgICAgICAgICAgICAgICJ7fTx7fT4oIiwKLS0gICAgICAgICAg ICAgICAgICAgIHN0cmluZ2lmeSEoJGlkKSwKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjpp bnRyaW5zaWNzOjp0eXBlX25hbWU6OjxUPigpCi0tICAgICAgICAgICAgICAgICk/OwotLSAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAg ICBpZiBpID4gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsK LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFj dChpKS5mbXQoZik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRl IShmLCAiKSIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgIHRlc3Rf aWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7 Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9kZWJ1Zz5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gZGVidWcoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjo8aTMyPjo6ZGVmYXVsdCgpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7Oj99IiwgdikudW53cmFwKCk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXco KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fTxpMzI+KCIs IHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5zdGFydHNfd2l0aChiZWcuYXNf c3RyKCkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyA9IHt9IChzaG91bGQgc3Rh cnQgd2l0aCA9IHt9KSIsIHMsIGJlZwotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYu dHJpbSgpKS51bndyYXAoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3Qo KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6PGkz Mj46OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBp biBzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdyaXRlISgmbXV0IGUsICJ7Oj99Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+ IERlZmF1bHQgZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogcHRy cyBkbyBub3QgaW1wbGVtZW50IGRlZmF1bHQKLS0gICAgICAgICAgICAgICAgU2VsZjo6bnVsbCgp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfZGVmYXVsdD5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gZGVmYXVsdCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg YSA9ICRpZDo6PGkzMj46OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEuZXh0cmFj dChpKSwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6emVyb2VkKCkgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNl IGVxdWFsaXR5IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGZuIGVxKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfZXE7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90 eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0tICAgICAgICAgICAgICAgICAgICBT aW1kKHNpbWRfZXEoYS4wLCBiLjApKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgaW5lcXVhbGl0eSBjb21wYXJpc29uLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBuZShzZWxmLCBvdGhl cjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX25lOwotLSAgICAgICAgICAgICAg ICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0g ICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUob3RoZXIpOwotLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX25lKGEuMCwgYi4wKSkK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX2x0OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBi OiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOwotLSAgICAgICAgICAg ICAgICAgICAgU2ltZChzaW1kX2x0KGEuMCwgYi4wKSkKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbi1vci1l cXVhbHMgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgZm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9s ZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0g Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQo c2ltZF9sZShhLjAsIGIuMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4gY29tcGFyaXNvbi4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZ3Qoc2VsZiwgb3RoZXI6 IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9ndDsKLS0gICAgICAgICAgICAgICAg ICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAg ICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRl KG90aGVyKTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9ndChhLjAsIGIuMCkpCi0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExh bmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlzb24uCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGdlKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAk bWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYTog JHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAg ICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0t ICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZ2UoYS4wLCBiLjApKQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7 Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX3ZlcnRpY2FsPl0gewotLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBjbXAoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCByID0gYS5sZShiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKHIgPT0gZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFz a190eTo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5n dChiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmdlKGIpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEu ZXEoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IGE7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBiID0gYjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUg PSBlOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMF9pc2l6ZSkgfQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBj cmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBlLnJlcGxh Y2UoaSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiID0gYi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKDBfaXNpemUpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlID0gZS5yZXBsYWNl KGksIGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0gICAg ICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6UGFydGlhbEVxPCRpZDxUPj4gZm9yICRpZDxUPiB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAm U2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6PFQ+OjplcSgqc2VsZiwgKm90 aGVyKS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgJGlkOjo8VD46Om5lKCpzZWxmLCAqb3RoZXIpLmFueSgpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5MgotLSAgICAgICAgI1thbGxvdyhj bGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6 UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8VD4+PgotLSAgICAgICAgICAg IGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPFQ+PgotLSAgICAgICAgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0gb3RoZXIuMAotLSAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBuZSgmc2VsZiwg b3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wICE9IG90aGVy LjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0g ICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbEVxPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFsX2VxKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9 IGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGlm ICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCkucmVwbGFjZSgwLCB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoYSAhPSBiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgh KGEgPT0gYikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGEpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+ IGNyYXRlOjpjbXA6OkVxIGZvciAkaWQ8VD4ge30KLS0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNt cDo6RXEgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8VD4+IHt9Ci0tCi0tICAgICAg ICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6 aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfZXE+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpFcT4oXzogRSkge30KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBmb28oYSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+IEZyb208 WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGZyb20oYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRd KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiB1bm5lY2Vzc2FyeSB6ZXJvaW5nOyBiZXR0ZXIgdGhhbiBVQi4KLS0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdTogU2VsZiA9IGNyYXRlOjptZW06Onplcm9lZCgpOwot LSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKLS0g ICAgICAgICAgICAgICAgICAgICAgICAmYXJyYXkgYXMgKmNvbnN0IFskZWxlbV90eTsgJGVsZW1f Y291bnRdIGFzICpjb25zdCB1OCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAmbXV0IHUgYXMg Km11dCBTZWxmIGFzICptdXQgdTgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1l bTo6c2l6ZV9vZjo6PFNlbGY+KCkKLS0gICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICB1Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgICAgICBpbXBsPFQ+IEludG88WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAk aWQ8VD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGludG8oc2Vs ZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVubmVjZXNzYXJ5IHplcm9pbmc7IGJl dHRlciB0aGFuIFVCLgotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1OiBbJGVsZW1fdHk7 ICRlbGVtX2NvdW50XSA9IGNyYXRlOjptZW06Onplcm9lZCgpOwotLSAgICAgICAgICAgICAgICAg ICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKLS0gICAgICAgICAgICAgICAgICAg ICAgICAmc2VsZiBhcyAqY29uc3QgJGlkPFQ+IGFzICpjb25zdCB1OCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAmbXV0IHUgYXMgKm11dCBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyAqbXV0 IHU4LAotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxm PigpCi0tICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgdQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAg dGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZnJvbT5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gYXJyYXkoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHZhbHVlcyA9IFsxX2kzMjsgJGVsZW1fY291bnRdOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdmVjOiAkaWQ8aTMyPiA9IERlZmF1bHQ6OmRlZmF1bHQoKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gWwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpudWxsKCkuZXh0cmFjdCgwKTsgJGVsZW1fY291 bnQKLS0gICAgICAgICAgICAgICAgICAgICAgICBdOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0gYXMgKmNvbnN0IGkzMiBhcyAqbXV0IGkzMjsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxhY2UoaSwgcHRyKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBwdHI7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGVyZSBp cyBubyBpbXBsIG9mIEZyb208JGlkPFQ+PiBmb3IgWyRlbGVtX3R5OyBOXQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGxldCBhMCA9IEZyb206OmZyb20odmVjKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBhc3NlcnRfZXEhKGEwLCBhcnJheSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgI1thbGxvdyh1bnVzZWRfYXNzaWdubWVudHMpXQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYTEgPSBhcnJheTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhMSA9IHZl Yy5pbnRvKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhMSwgYXJyYXkp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MDogJGlkPGkzMj4gPSBGcm9tOjpm cm9tKGFycmF5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYwLCB2ZWMp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MTogJGlkPGkzMj4gPSBhcnJheS5pbnRv KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2MSwgdmVjKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8g SW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAu Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClg IG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGlnbmVkCi0tICAgICAgICAgICAgLy8vIHRvIGFuIGBh bGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX2FsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAg IGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAg IGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ci5hbGlnbl9vZmZz ZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9PSAwCi0tICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVz IGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZChz bGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewot LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7 Ci0tICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNr ZWQoc2xpY2UpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRo ZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxm OjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAgICAgICAgICAgIC8v LyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzIHVu ZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZl IGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHldKQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVu dCldCi0tICAgICAgICAgICAgICAgICooc2xpY2UuYXNfcHRyKCkuY2FzdCgpKQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRo IHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBz bGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3Ns aWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNsaWNlOiAmWyRlbGVt X3R5XSwKLS0gICAgICAgICAgICApIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Om1lbTo6c2l6ZV9vZjsKLS0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGlj ZS5hc19wdHIoKS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IFNlbGY6OnNw bGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMgKm11dCBTZWxmIGFzICptdXQgdTg7Ci0tICAgICAg ICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCi0tICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfcHRyLAotLSAgICAgICAgICAgICAgICAgICAgc2VsZl9wdHIsCi0tICAg ICAgICAgICAgICAgICAgICBzaXplX29mOjo8U2VsZj4oKSwKLS0gICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAg ICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNlX2Zyb21fc2xp Y2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOwotLQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25l ZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0 cl92YWxzISgkaWQ8aTMyPik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1 bmFsaWduZWQgPSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9udWxsOyAkaWQ6 OjxpMzI+OjpsYW5lcygpICsgMQotLSAgICAgICAgICAgICAgICAgICAgICAgIF07Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdW5hbGlnbmVkWzBdID0gbnVsbDsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ1bmFsaWduZWRbMS4uXQotLSAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGlu IHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoYiwgbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG5vbl9udWxs KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4 dHJhY3QoaW5kZXggLSAxKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9y dCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8v ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0K LS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hv dWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWRf ZmFpbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKF9udWxsLCBub25fbnVsbCkg PSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bmFs aWduZWQgPSBbbm9uX251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxXTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGlj ZV91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bmFsaWduZWRbMi4u XQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBkYXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQ7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICBfdmVjOiAkaWQ8aTMyPiwKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAo bnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmxhbmVzKCkuLigyICogJGlkOjo8aTMy Pjo6bGFuZXMoKSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRhW2ldID0gbm9uX251bGw7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9IHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmZyb21fc2xpY2VfYWxpZ25lZCgK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFbJGlkOjo8aTMy Pjo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAg ICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAm YikgaW4gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRh Lml0ZXIoKS5lbnVtZXJhdGUoKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA8ICRpZDo6PGkzMj46OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRleCAtICRpZDo6PGkzMj46OmxhbmVzKCkpCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRv ZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAg ICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAg ICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xp Y2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAo X251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YTogW25vbl9udWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMg bm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBf dmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6 ZnJvbV9zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFs aWduZWQuZGF0YVsyICogJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4t dGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAg ICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBm cm9tX3NsaWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIF9ub25f bnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9p bnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgcHRyID0gYWxpZ25lZC5kYXRhLmFzX3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldCgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPGkzMj4+KCkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFp bCBoZXJlIChlLmcuIHRoaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNh biBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvIG1ha2UKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVh dGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJs eSBhbGlnbmVkOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IHNsaWNlOjpm cm9tX3Jhd19wYXJ0cygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciwgJGlk Ojo8aTMyPjo6bGFuZXMoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVz ZSB0aGUgc2xpY2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRv ZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKHMpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGlt cGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhl IHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNl LmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90Ci0tICAgICAgICAg ICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnkuCi0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNlX2Fs aWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewotLSAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxl bV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFz X211dF9wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6 OjxTZWxmPigpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwCi0tICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV9h bGlnbmVkX3VuY2hlY2tlZChzbGljZSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3Ig dG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFu aWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8 IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1 YiBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5 XSkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBz ZWxmLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpOwotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhl IHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBu b3QKLS0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBi b3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzCi0tICAgICAgICAgICAgLy8vIHVuZGVmaW5lZC4KLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3Rv X3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKAotLSAgICAgICAgICAgICAgICBzZWxmLCBzbGljZTog Jm11dCBbJGVsZW1fdHldLAotLSAgICAgICAgICAgICkgewotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgKihzbGlj ZS5hc19tdXRfcHRyKCkuY2FzdCgpKSA9IHNlbGY7Ci0tICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2Vg LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygp YCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tl ZCgKLS0gICAgICAgICAgICAgICAgc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSwKLS0gICAg ICAgICAgICApIHsKLS0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19t dXRfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmc2VsZiBh cyAqY29uc3QgU2VsZiBhcyAqY29uc3QgdTg7Ci0tICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6 OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCi0tICAgICAgICAgICAgICAgICAgICBzZWxmX3B0ciwKLS0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIsCi0tICAgICAgICAgICAgICAgICAgICBjcmF0 ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSwKLS0gICAgICAgICAgICAgICAgKTsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAk dGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90b19zbGljZT5dIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aXRlcjo6 SXRlcmF0b3I7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbbnVsbDsgJGlkOjo8 aTMyPjo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAk aWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVj LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsxLi5dKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVt ZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAg ICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAg I1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAg ICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfZmFpbCgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMy Pik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbbnVsbDsg JGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKLS0gICAgICAgICAg ICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGlnbmVk WzIuLl0pOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAg dW5pb24gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzwkaWQ8aTMyPiBhcyBz ZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy ICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzog JGlkPGkzMj4sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWdu ZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBw dHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxp Z25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAq ICRpZDo6PGkzMj46OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxs KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWyRpZDo6PGkzMj46OmxhbmVzKCkuLl0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAg IH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGFsaWduZWQuZGF0YS5pdGVyKCkuZW51bWVy YXRlKCkgfSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4IDwgJGlkOjo8 aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGIsIG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBub25fbnVsbCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0KGluZGV4IC0gJGlkOjo8aTMy Pjo6bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2Fz bS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAg ICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVz dF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+ KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5l cygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKLS0g ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWzIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpLi5dCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklY TUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0t ICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAg ICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAg ICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgk aWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBhbGlnbmVkLmRhdGEuYXNfbXV0X3B0cigpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxl bWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5n X2FkZCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29m ZnNldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OmFsaWdu X29mOjo8JGlkPGkzMj4+KCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA9PSAwIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Bl cmx5IGFsaWduZWQsIHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0 ZV90b19zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLgotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3ZSBw YW5pYyB0bwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgInNo b3VsZF9mYWlsIiB0ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YW5pYyEoIm9rIik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUsIGJl Y2F1c2UgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9mIHRo ZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHMgPSBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OjxpMzI+OjpsYW5lcygpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdubWVu dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgZm9yIHRoZSB2 ZWN0b3IgdHlwZToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6 PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVj LndyaXRlX3RvX3NsaWNlX2FsaWduZWQocyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6aGFzaDo6SGFzaCBmb3Ig JGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBoYXNoPEg6 IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7Ci0tICAgICAgICAg ICAgICAgIGxldCBzOiAkdXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUo KnNlbGYpIH07Ci0tICAgICAgICAgICAgICAgIHMuaGFzaChzdGF0ZSkKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfaGFzaD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gaGFz aCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntIYXNoLCBI YXNoZXJ9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7U2lwSGFzaGVyMTN9Owot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBbMV9pMzI7ICRlbGVtX2Nv dW50XTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYzogJGlkPGkzMj4g PSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh cnJheSA9IFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6bnVsbCgp LmV4dHJhY3QoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtX2NvdW50Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgXTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBwdHIgPSAmdmFsdWVzW2ldIGFzICpjb25zdCBpMzIgYXMgKm11dCBpMzI7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5yZXBsYWNlKGksIHB0cik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcHRyOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNoID0gU2lwSGFzaGVyMTM6Om5l dygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdl9oYXNoID0gYV9oYXNoLmNs b25lKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuaGFzaCgmbXV0IGFfaGFzaCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjLmhhc2goJm11dCB2X2hhc2gpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYV9oYXNoLmZpbmlzaCgpLCB2X2hhc2guZmlu aXNoKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4gewotLSAg ICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgYFRg OyBlLmcuIGEgY291bnQgb2YgYDNgIHJlcHJlc2VudHMgYQotLSAgICAgICAgICAgIC8vLyBwb2lu dGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdmlvbGF0ZWQs IHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAvLy8gVW5kZWZpbmVkIEJlaGF2aW9yOgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIEJvdGggdGhlIHN0YXJ0aW5nIGFuZCBy ZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgotLSAgICAgICAgICAgIC8vLyBib3Vu ZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFsbG9jYXRlZCBvYmplY3QuCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhlIGNvbXB1dGVkIG9mZnNldCwgaW4g Ynl0ZXMsIGNhbm5vdCBvdmVyZmxvdyBhbiBgaXNpemVgLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9u ICJ3cmFwcGluZyBhcm91bmQiCi0tICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBU aGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSwgaW4gYnl0ZXMKLS0gICAgICAgICAg ICAvLy8gbXVzdCBmaXQgaW4gYSBgdXNpemVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVz IHRvIGVuc3VyZQotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNp emUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCi0tICAgICAgICAgICAgLy8vIGlu c3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0 aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28gYHZlYy5hc19wdHIo KS5vZmZzZXQodmVjLmxlbigpIGFzIGlzaXplKWAKLS0gICAgICAgICAgICAvLy8gaXMgYWx3YXlz IHNhZmUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1z IGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgotLSAgICAgICAgICAg IC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBj YW4gZXZlcgotLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI2MyBieXRlcyBk dWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgotLSAgICAgICAgICAgIC8vLyBzcGxpdHRp bmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0IGFuZCAxNi1iaXQKLS0g ICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkgc2VydmUgYSByZXF1ZXN0 IGZvciBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzIHdpdGgg dGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24uCi0tICAgICAgICAgICAgLy8v IEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFsbG9jYXRvcnMgb3IgbWVt b3J5Ci0tICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkgYmUgdG9vIGxhcmdlIHRvIGhh bmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRgIGluc3RlYWQgaWYgdGhlc2UgY29u c3RyYWludHMKLS0gICAgICAgICAgICAvLy8gYXJlIGRpZmZpY3VsdCB0byBzYXRpc2Z5LiBUaGUg b25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKLS0gICAgICAgICAgICAvLy8gdGhhdCBp dCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBvcHRpbWl6YXRpb25zLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gb2Zmc2V0KHNlbGYs IGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAvLyBGSVhNRTog c2hvdWxkIHVzZSBMTFZNJ3MgYGFkZCBuc3cgbnV3YAotLSAgICAgICAgICAgICAgICBzZWxmLndy YXBwaW5nX29mZnNldChjb3VudCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8v IENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0 aG1ldGljLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlzIGlu IHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIGAzYCByZXByZXNlbnRzIGEKLS0gICAgICAg ICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVk IHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCi0tICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5 IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgdW5zYWZlKS4KLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gQWx3YXlzIHVzZSBgLm9mZnNldChjb3VudClg IGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZQotLSAgICAgICAgICAgIC8vLyBvZmZzZXQg YWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0ZXIuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX29mZnNldChzZWxmLCBjb3VudDog JGlzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB7KywqfSBjdXJyZW50bHkgcGVyZm9y bXMgYSBgd3JhcHBpbmdfe2FkZCwgbXVsfWAKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ICsgKGNvdW50ICogY3Jh dGU6Om1lbTo6c2l6ZV9vZjo6PFQ+KCkgYXMgaXNpemUpCi0tICAgICAgICAgICAgICAgICAgICAp Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8v IENhbGN1bGF0ZXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBvaW50ZXJzLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgaW4gdW5pdHMg b2YgYFRgOiB0aGUgZGlzdGFuY2UgaW4gYnl0ZXMgaXMKLS0gICAgICAgICAgICAvLy8gZGl2aWRl ZCBieSBgbWVtOjpzaXplX29mOjo8VD4oKWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIFRoaXMgZnVuY3Rpb24gaXMgdGhlIGludmVyc2Ugb2Ygb2Zmc2V0LgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9s YXRlZCwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6 Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcg YW5kIG90aGVyIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4gYm91bmRzCi0tICAgICAgICAgICAg Ly8vIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiB0aGUgc2FtZSBhbGxvY2F0ZWQgb2JqZWN0 LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZXR3 ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdwotLSAgICAgICAgICAg IC8vLyBhbiBgaXNpemVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRo ZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMsIG11c3QgYmUgYW4gZXhh Y3QKLS0gICAgICAgICAgICAvLy8gbXVsdGlwbGUgb2YgdGhlIHNpemUgb2YgYFRgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZWluZyBpbiBib3Vu ZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAgICAgICAvLy8gdGhl IGFkZHJlc3Mgc3BhY2UuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSBj b21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkgdHJ5IHRvIGVuc3VyZQotLSAg ICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zm c2V0IGlzIGEgY29uY2Vybi4gRm9yCi0tICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBh bmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCi0tICAgICAgICAg ICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28gYHB0cl9pbnRvX3ZlYy5vZmZzZXRfZnJvbSh2 ZWMuYXNfcHRyKCkpYAotLSAgICAgICAgICAgIC8vLyBpcyBhbHdheXMgc2FmZS4KLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50YWxseSBj YW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCi0tICAgICAgICAgICAgLy8vIGFsbG9jYXRpb24u IEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3JtIGNhbiBldmVyCi0tICAgICAg ICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjYzIGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxl IGxpbWl0YXRpb25zIG9yCi0tICAgICAgICAgICAgLy8vIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBz cGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQgYW5kIDE2LWJpdAotLSAgICAgICAgICAgIC8vLyBw bGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUgdGhhbgot LSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlz aWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4KLS0gICAgICAgICAgICAvLy8gQXMgc3VjaCwgbWVtb3J5 IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvciBtZW1vcnkKLS0gICAgICAgICAg ICAvLy8gbWFwcGVkIGZpbGVzIG1heSBiZSB0b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcyBm dW5jdGlvbi4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNp bmcgYHdyYXBwaW5nX29mZnNldF9mcm9tYCBpbnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCi0t ICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50 YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBt b3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIG9mZnNldF9mcm9tKHNlbGYsIG9yaWdp bjogU2VsZikgLT4gJGlzaXplX3R5IHsKLS0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHNob3Vs ZCB1c2UgTExWTSdzIGBzdWIgbnN3IG51d2AuCi0tICAgICAgICAgICAgICAgIHNlbGYud3JhcHBp bmdfb2Zmc2V0X2Zyb20ob3JpZ2luKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAv Ly8gQ2FsY3VsYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gcG9pbnRlcnMuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBpbiB1bml0 cyBvZiBgVGA6IHRoZSBkaXN0YW5jZSBpbiBieXRlcyBpcwotLSAgICAgICAgICAgIC8vLyBkaXZp ZGVkIGJ5IGBtZW06OnNpemVfb2Y6OjxUPigpYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gSWYgdGhlIGFkZHJlc3MgZGlmZmVyZW50IGJldHdlZW4gdGhlIHR3byBwb2ludGVy cyBpcyBub3QgYQotLSAgICAgICAgICAgIC8vLyBtdWx0aXBsZSBvZiBgbWVtOjpzaXplX29mOjo8 VD4oKWAgdGhlbiB0aGUgcmVzdWx0IG9mIHRoZQotLSAgICAgICAgICAgIC8vLyBkaXZpc2lvbiBp cyByb3VuZGVkIHRvd2FyZHMgemVyby4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gVGhvdWdoIHRoaXMgbWV0aG9kIGlzIHNhZmUgZm9yIGFueSB0d28gcG9pbnRlcnMsIG5vdGUg dGhhdCBpdHMKLS0gICAgICAgICAgICAvLy8gcmVzdWx0IHdpbGwgYmUgbW9zdGx5IHVzZWxlc3Mg aWYgdGhlIHR3byBwb2ludGVycyBhcmVuJ3QgaW50bwotLSAgICAgICAgICAgIC8vLyB0aGUgc2Ft ZSBhbGxvY2F0ZWQgb2JqZWN0LCBmb3IgZXhhbXBsZSBpZiB0aGV5IHBvaW50IHRvIHR3bwotLSAg ICAgICAgICAgIC8vLyBkaWZmZXJlbnQgbG9jYWwgdmFyaWFibGVzLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19vZmZzZXRfZnJvbShzZWxmLCBv cmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7Ci0tICAgICAgICAgICAgICAgIGxldCB4OiAkaXNp emVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikgfTsKLS0gICAgICAg ICAgICAgICAgbGV0IHk6ICRpc2l6ZV90eSA9IHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShvcmlnaW4pIH07Ci0tICAgICAgICAgICAgICAgIC8vIG5vdGU6IHstLC99IGN1cnJlbnRseSBw ZXJmb3JtIHdyYXBwaW5nX3tzdWIsIGRpdn0KLS0gICAgICAgICAgICAgICAgKHkgLSB4KSAvIChj cmF0ZTo6bWVtOjpzaXplX29mOjo8VD4oKSBhcyBpc2l6ZSkKLS0gICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciAoY29u dmVuaWVuY2UgZm9yCi0tICAgICAgICAgICAgLy8vIGAub2Zmc2V0KGNvdW50IGFzIGlzaXplKWAp LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRz IG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIDMgcmVwcmVzZW50cyBhCi0tICAgICAgICAgICAgLy8v IHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9s YXRlZCwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6 Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcg YW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluCi0tICAgICAgICAgICAgLy8v IGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYWxsb2NhdGVkIG9iamVjdC4K LS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgY29tcHV0ZWQgb2Zmc2V0 LCBpbiBieXRlcywgY2Fubm90IG92ZXJmbG93IGFuIGBpc2l6ZWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJl bHkgb24gIndyYXBwaW5nIGFyb3VuZCIKLS0gICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3Bh Y2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3VtIG11c3QgZml0Ci0tICAgICAg ICAgICAgLy8vIGluIGEgYHVzaXplYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxseSB0cmllcyB0byBl bnN1cmUKLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBzaXplIHdo ZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgotLSAgICAgICAgICAgIC8vLyBpbnN0YW5j ZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUgdGhhbgot LSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNvIGB2ZWMuYXNfcHRyKCkuYWRk KHZlYy5sZW4oKSlgIGlzIGFsd2F5cwotLSAgICAgICAgICAgIC8vLyBzYWZlLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5IGNh bid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbi4g Rm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZvcm0gY2FuIGV2ZXIKLS0gICAgICAg ICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyNjMgYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUg bGltaXRhdGlvbnMgb3IKLS0gICAgICAgICAgICAvLy8gc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNw YWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdCBhbmQgMTYtYml0Ci0tICAgICAgICAgICAgLy8vIHBs YXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVxdWVzdCBmb3IgbW9yZSB0aGFuCi0t ICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNp Y2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgotLSAgICAgICAgICAgIC8vLyBBcyBzdWNoLCBtZW1vcnkg YWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9yIG1lbW9yeQotLSAgICAgICAgICAg IC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJlIHRvbyBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzIGZ1 bmN0aW9uLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2lu ZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCi0tICAgICAg ICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9m IHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFn Z3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6c2hvdWxkX2ltcGxlbWVudF90cmFpdCldCi0t ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBhZGQoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYub2Zmc2V0KGNvdW50LmNhc3QoKSkKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9t IGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9yCi0tICAgICAgICAgICAgLy8vIGAub2Zmc2V0KChj b3VudCBhcyBpc2l6ZSkud3JhcHBpbmdfbmVnKCkpYCkuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2Yg MyByZXByZXNlbnRzIGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBz aXplX29mOjo8VD4oKWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v ICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCi0tICAg ICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVzdWx0aW5nIHBvaW50ZXIgbXVz dCBiZSBlaXRoZXIgaW4KLS0gICAgICAgICAgICAvLy8gYm91bmRzIG9yIG9uZSBieXRlIHBhc3Qg dGhlIGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2JqZWN0LgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyAqIFRoZSBjb21wdXRlZCBvZmZzZXQgY2Fubm90IGV4Y2VlZCBgaXNpemU6Ok1B WGAgKipieXRlcyoqLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBv ZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCi0t ICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUt cHJlY2lzaW9uIHN1bSBtdXN0IGZpdAotLSAgICAgICAgICAgIC8vLyBpbiBhIHVzaXplLgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJk IGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQotLSAgICAgICAgICAgIC8vLyBhbGxv Y2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4g Rm9yCi0tICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRo ZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFY YCBieXRlcywgc28KLS0gICAgICAgICAgICAvLy8gYHZlYy5hc19wdHIoKS5hZGQodmVjLmxlbigp KS5zdWIodmVjLmxlbigpKWAgaXMgYWx3YXlzIHNhZmUuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25z dHJ1Y3Qgc3VjaCBhbgotLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2Us IG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgotLSAgICAgICAgICAgIC8vLyBzZXJ2 ZSBhIHJlcXVlc3QgZm9yIDI8c3VwPjYzPC9zdXA+IGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlCi0t ICAgICAgICAgICAgLy8vIGxpbWl0YXRpb25zIG9yIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFj ZS4gSG93ZXZlciwgc29tZSAzMi1iaXQKLS0gICAgICAgICAgICAvLy8gYW5kIDE2LWJpdCBwbGF0 Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUKLS0gICAgICAg ICAgICAvLy8gdGhhbiBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNh bCBBZGRyZXNzCi0tICAgICAgICAgICAgLy8vIEV4dGVuc2lvbi4gQXMgc3VjaCwgbWVtb3J5IGFj cXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvcgotLSAgICAgICAgICAgIC8vLyBtZW1v cnkgbWFwcGVkIGZpbGVzICptYXkqIGJlIHRvbyBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzCi0t ICAgICAgICAgICAgLy8vIGZ1bmN0aW9uLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNv bnN0cmFpbnRzCi0tICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhl IG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAgICAgICAgLy8vIHRoYXQg aXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6c2hvdWxkX2lt cGxlbWVudF90cmFpdCldCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBzdWIoc2VsZiwgY291 bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVf dHkgPSBjb3VudC5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIC8vIG5vdGU6IC0gaXMgY3VycmVu dGx5IHdyYXBwaW5nX25lZwotLSAgICAgICAgICAgICAgICBzZWxmLm9mZnNldCgteCkKLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9t IGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgotLSAgICAgICAgICAgIC8vLyAo Y29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KGNvdW50IGFzIGlzaXplKWApCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsg ZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRl ciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5k cywgYnV0IGl0IGlzCi0tICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBk ZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgYHVuc2FmZWApLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBBbHdheXMgdXNlIGAuYWRkKGNvdW50KWAgaW5zdGVhZCB3aGVuIHBv c3NpYmxlLCBiZWNhdXNlIGBhZGRgCi0tICAgICAgICAgICAgLy8vIGFsbG93cyB0aGUgY29tcGls ZXIgdG8gb3B0aW1pemUgYmV0dGVyLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIHB1YiBmbiB3cmFwcGluZ19hZGQoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KGNvdW50LmNhc3QoKSkKLS0g ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBm cm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgotLSAgICAgICAgICAgIC8v LyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KChjb3VudCBhcwotLSAgICAgICAg ICAgIC8vLyBpc2l6ZSkud3JhcHBpbmdfc3ViKCkpYCkKLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBUOyBlLmcuIGEgYGNvdW50YCBvZiAz IHJlcHJlc2VudHMgYQotLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNp emVfb2Y6OjxUPigpYCBieXRlcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g IyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIHJlc3VsdGlu ZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRzLCBidXQgaXQgaXMKLS0gICAg ICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRlcmVmZXJlbmNlICh3aGljaCBy ZXF1aXJlcyBgdW5zYWZlYCkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEFs d2F5cyB1c2UgYC5zdWIoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUsIGJlY2F1c2UgYHN1 YmAKLS0gICAgICAgICAgICAvLy8gYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0 ZXIuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5n X3N1YihzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg bGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgc2VsZi53 cmFwcGluZ19vZmZzZXQoLTEgKiB4KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gU2h1ZmZsZSB2ZWN0b3Ig ZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRpY2VzYC4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZsZTFfZHluPEk+KHNlbGYsIGluZGljZXM6IEkpIC0+ IFNlbGYKLS0gICAgICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgU2VsZjogY29k ZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4sCi0tICAgICAgICAg ICAgewotLSAgICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHlu OjpzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlcykKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X3NodWZmbGUxX2R5bj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1 ZmZsZTFfZHluKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251 bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBhbHRlcm5hdGluZyA9IFtub25fbnVsbCwgbnVsbCwgbm9uX251bGwsIG51bGwsIC4uLl0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsdGVybmF0aW5nID0gJGlkOjo8aTMyPjo6 c3BsYXQobnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8 aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09 IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcgPSBhbHRl cm5hdGluZy5yZXBsYWNlKGksIG5vbl9udWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB0eXBlIEluZGljZXMgPSA8JGlkPGkzMj4KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bj46OkluZGljZXM7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiA9IFswLCAwLCAyLCAyLCA0LCA0LCAuLl0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbiA9IHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4IC0gMSkuaW50bygp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBvZGQgPSBbMSwg MSwgMywgMywgNSwgNSwgLi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvZGQgPSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0 KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+ OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9 IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uo aSwgKGkgYXMgdTgpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxh Y2UoaSwgKGkgYXMgdTggKyAxKS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFsdGVybmF0aW5nLnNodWZmbGUxX2R5bihldmVuKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OjxpMzI+OjpsYW5lcygpID4g MSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9keW4ob2RkKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0KG51bGwpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYgKzAsMCBAQAot LSNbbWFjcm9fdXNlXQotLW1vZCBpdWY7Ci0tI1ttYWNyb191c2VdCi0tbW9kIG1hc2s7Ci0tI1tt YWNyb191c2VdCi0tbW9kIHB0cjsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9hcml0aG1ldGljLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjAzICswLDAgQEAKLS0vLyEgVmVy dGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYXJpdGhtZXRp YyBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRp YyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQ8JGVsZW1f dHk+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6ICRlbGVtX3R5 KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiArICRpZDo6c3BsYXQob3RoZXIpCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQ8 JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGFkZChzZWxmLCBvdGhlcjogJGlk KSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICsgb3RoZXIKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlN1 YjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1YihzZWxmLCBvdGhlcjog JGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmIC0gJGlkOjpzcGxhdChv dGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OlN1YjwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAk aWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3ViKHNlbGYsIG90 aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgLSBv dGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6TXVsPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9 IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbXVsKHNlbGYs IG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgKiAkaWQ6 OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6TXVsPCRpZD4gZm9yICRlbGVtX3R5IHsKLS0gICAgICAgICAgICB0eXBlIE91 dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBtdWwo c2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChz ZWxmKSAqIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpEaXY8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUg T3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBk aXYoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2Vs ZiAvICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXY8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGRpdihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KHNlbGYpIC8gb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIHJlbShzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBzZWxmICUgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbTwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQoc2VsZikgJSBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGRfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgKyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBs IGNyYXRlOjpvcHM6OlN1YkFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3ViX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAk ZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC0gb3RoZXI7Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWxB c3NpZ248JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIG11bF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAqIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2QXNzaWduPCRlbGVtX3R5PiBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBkaXZfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgLyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OlJlbUFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtX2Fzc2lnbigmbXV0IHNlbGYsIG90 aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICUgb3RoZXI7 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9hcml0aD5dIHsKLS0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBvcHNfc2NhbGFyX2FyaXRobWV0aWMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHppID0gMCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2kgPSAx IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aSA9IDIgYXMgJGVs ZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpID0gNCBhcyAkZWxlbV90eTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoemkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChvaSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIGFkZAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgKyB6LCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKyB6aSwgeik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSArIHosIG8pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobyArIHppLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICsgeiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICsgemksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkg KyB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgKyB0aSwgZik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3ViCi0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6aSAtIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiAtIHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9p IC0geiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIC0gemksIG8p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgLSB6LCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLSB6aSwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAtIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoZiAtIHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYgLSBvIC0gbywgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShmIC0gb2kgLSBvaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAqIHosIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHppICogbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6ICogb2ksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo emkgKiB0LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB0aSwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAqIHQsIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAqIHRpLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICogdCwgZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICogdGksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGRpdgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgLyBvLCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLyBvaSwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAvIG8sIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodCAvIG9pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGZpIC8gbywgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShmIC8gb2ksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgLyB0 LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLyB0aSwgbyk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAvIHQsIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIHRpLCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyByZW0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICUg bywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICUgb2ksIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgJSB0LCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJSB0aSwgeik7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6 OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ICs9IG9pOyAvLyBhZGRfYXNzaWduCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgbyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgLT0gb2k7IC8vIHN1Yl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9 IHQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0gb2k7IC8vIG11bF9hc3NpZ24K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiAqPSB0aTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSBv aTsgLy8gZGl2X2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IHRpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ICU9IHRpOyAvLyByZW1fYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYyICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxh bmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25z LgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYml0d2lzZSB7Ci0tICAgICgKLS0g ICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dCB8Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIp Ci0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGVsZW1fdHk+ IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6ICRlbGVtX3R5 KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiBeICRpZDo6c3BsYXQob3RoZXIpCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRY b3I8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhl cjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIF4gb3Ro ZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdEFuZDwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZChz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmICYg JGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gYml0YW5kKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoc2VsZikgJiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3I8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4gZm9yICRlbGVtX3R5 IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAg ICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwgb3RoZXIKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZEFzc2lnbjwkZWxl bV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g Yml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgfCBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OkJpdFhvckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiAkZWxlbV90eSkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAg ICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9iaXR3aXNlPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIG9wc19zY2FsYXJfYml0d2lzZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg emkgPSAwIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9IDEg YXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0gMiBhcyAkZWxl bV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoemkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChvaSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRBbmQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSAmIG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgeiwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgemksIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiBvLCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvaSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6aSAmIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiAmIHppLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpICYgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgdGks IHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgJiBvLCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBvaSwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAmIHQsIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyAmIHRpLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBCaXRPcjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIHwgbywg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgb2ksIG8pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgfCB6LCBvKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCB6aSwgbyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSB8IG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiB8IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHppIHwgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgemks IHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB0LCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IHQsIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpIHwgeiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IHwgemksIHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4gbywgeik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gb2ksIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiB6aSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6aSBeIG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBe IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4geiwgbyk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gemksIG8pOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB0LCB6KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0aSwgeik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSBeIHosIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCBeIHppLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHppIF4gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gdGks IHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQW5kQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHRpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIE9yQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSB6OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IG9pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSBvaTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX21hc2tf Yml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2Nh bGFyX21hc2tfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDE0MCArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rv ci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc19z Y2FsYXJfbWFza19iaXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0g ICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdFhvcjxib29sPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBl IE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g Yml0eG9yKHNlbGYsIG90aGVyOiBib29sKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2Vs ZiBeICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGlkPiBmb3IgYm9vbCB7Ci0tICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoc2VsZikgXiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPGJvb2w+IGZvciAkaWQgewotLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciBib29sIHsKLS0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAg ICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjxib29sPiBmb3IgJGlkIHsKLS0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4gZm9yIGJvb2wgewot LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAg ICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kQXNzaWduPGJvb2w+IGZv ciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdGFuZF9h c3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9 ICpzZWxmICYgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjxib29sPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjog Ym9vbCkgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3RoZXI7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3JBc3Np Z248Ym9vbD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7Ci0tICAgICAgICAgICAg ICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAg ICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2Nh bGFyX21hc2tfYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFyX21hc2tfYml0d2lz ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSB0cnVlOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBmaSA9IGZhbHNlOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYg PSAkaWQ6OnNwbGF0KGZpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHQgIT0g Zik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKHQgPT0gZikpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICYgZiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICYgZmksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkg JiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiB0aSwgZik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAmIHQsIHQpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHRpLCB0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGZpICYgZiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmICYgZmksIGYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IEJpdE9yOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCBmLCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCBmaSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSB8IHQsIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiB8IHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpIHwgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IHwgdGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkg fCBmLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCBmaSwgZik7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodGkgXiBmLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgXiBmaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmaSBeIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiBe IHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4gdCwgZik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdGksIGYpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgXiBmLCBmKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmaSwgZik7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgJj0gdGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgfD0gdGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE9SQXNzaWdu OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBmOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2IF49IHRpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTA2ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkg dmVjdG9yLXNjYWxhciBzaGlmdHMgb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9v cHNfc2NhbGFyX3NoaWZ0cyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpTaGw8dTMyPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hsKHNlbGYsIG90aGVy OiB1MzIpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmIDw8ICRpZDo6c3BsYXQob3Ro ZXIgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpTaHI8dTMyPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1 dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hyKHNl bGYsIG90aGVyOiB1MzIpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmID4+ICRpZDo6 c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGxBc3NpZ248dTMyPiBmb3IgJGlkIHsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaGxfYXNzaWduKCZtdXQgc2VsZiwg b3RoZXI6IHUzMikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIDw8IG90aGVyOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hy QXNzaWduPHUzMj4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gc2hyX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiB1MzIpIHsKLS0gICAgICAgICAgICAg ICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBw YXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFy X3NoaWZ0cz5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkw eCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWxsb3codW5yZWFjaGFibGVfY29kZSwgdW51c2VkX3ZhcmlhYmxlcykKLS0gICAgICAg ICAgICAgICAgICAgICldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNwotLSAgICAgICAg ICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9zaGlmdHMoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHppID0gMCBhcyB1MzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9 IDEgYXMgdTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSAyIGFzIHUz MjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1heGkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gKG1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEp IGFzIHUzMjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB6aSwgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiBvaSwgeik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB0aSwgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB0aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNo ID0gInNwYXJjNjQiKSldIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJ WE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzEzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvID4+IHppLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0ID4+IHppLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmID4+IHppLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShmID4+IG1heGksIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gPj4gb2ksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgPj4gb2ksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg Pj4gdGksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4g b2ksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdGks IG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4aSwg eik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNobAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPDwgemksIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgemksIG8pOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgemksIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYgPDwgemksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGYgPDwgbWF4aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyA8PCBvaSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobyA8PCB0aSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCA8PCBvaSwgZik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsgIC8vIHNocl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID4+PSBvaTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAg Ly8gc2hsX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2 ID0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPDw9IG9pOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0OCArMCwwIEBACi0tLy8hIFZlcnRp Y2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYXJpdGhtZXRpYyBvcGVyYXRpb25zLgotLQot LW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyB7Ci0tICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4g ewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQgZm9yICRpZCB7Ci0tICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIGFkZChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9hZGQ7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQo c2ltZF9hZGQoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3ViIGZvciAkaWQgewotLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBzdWIoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Omxsdm06OnNpbWRfc3ViOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1k KHNpbWRfc3ViKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bCBmb3IgJGlkIHsKLS0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gbXVsKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjpzaW1kX211bDsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2lt ZChzaW1kX211bChzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXYgZm9yICRpZCB7Ci0tICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIGRpdihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9kaXY7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNp bWQoc2ltZF9kaXYoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtIGZvciAkaWQgewotLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiByZW0oc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVtOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBT aW1kKHNpbWRfcmVtKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZEFzc2lnbiBmb3IgJGlkIHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGRfYXNzaWduKCZtdXQgc2Vs Ziwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiArIG90aGVy OwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6U3ViQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIHN1Yl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmIC0gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWxBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbXVsX2Fzc2lnbigmbXV0IHNlbGYsIG90 aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgKiBvdGhlcjsKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRp dkFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBkaXZfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAg KnNlbGYgPSAqc2VsZiAvIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtQXNzaWduIGZvciAkaWQgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHJlbV9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjog U2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICUgb3RoZXI7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX2FyaXRoPl0gewotLSAgICAgICAgICAgICAgICAgICAg dXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0 b3JfYXJpdGhtZXRpYygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6 c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAk aWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gYWRkCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICsgeiwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICsgeiwgbyk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgeiwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gc3ViCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC0geiwgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIC0geiwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC0geiwgdCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShmIC0gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmIC0gbyAtIG8sIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11 bAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHosIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIG8sIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobyAqIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodCAqIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpdgotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAvIG8sIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodCAvIG8sIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiAvIG8sIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCAvIHQsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIHQsIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobyAlIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZiAlIHQsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg diArPSBvOyAvLyBhZGRfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLT0gbzsgLy8gc3Vi X2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdDsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiAqPSBvOyAvLyBtdWxfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0g dDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSBvOyAvLyBkaXZfYXNzaWduCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgLz0gdDsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAlPSB0OyAvLyByZW1fYXNz aWduCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9i aXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfYml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy92ZWN0b3JfYml0d2lzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jf Yml0d2lzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTI5 ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBiaXR3aXNl IG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNlIHsK LS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKLS0g ICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1ZTpleHByLCAk ZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok5vdCBm b3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbm90KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxmCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3IgZm9yICRpZCB7Ci0tICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kIGZvciAkaWQgewotLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYW5kOwotLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yIGZvciAkaWQgewot LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9vcjsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZEFzc2lnbiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmRfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAq c2VsZiAmIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsK LS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yQXNzaWduIGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcl9hc3Np Z24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpz ZWxmIF4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVz dF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9iaXR3aXNlPl0g ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIG9wc192ZWN0b3JfYml0d2lzZSgpIHsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9ICRpZDo6c3BsYXQoIXouZXh0cmFjdCgwKSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90OgotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoIXosIG0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoIW0sIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiBvLCBvKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHogJiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHogJiB6LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgJiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBvLCB6 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB0LCB6KTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRPcjoKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8gfCBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gfCB6LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCBv LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB6LCB6KTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0LCB0KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB0LCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQgfCB6LCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBCaXRYT1I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gbywg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4geiwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gbywgbyk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4geiwgbyk7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IF4gdCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0IF4geiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 IF4gdCwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdDsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiB8PSBvOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSBv OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxv YXRfbWluX21heC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv dmVjdG9yX2Zsb2F0X21pbl9tYXgucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDc0ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkg dmVjdG9yIGBtaW5gIGFuZCBgbWF4YCBmb3IgZmxvYXRpbmctcG9pbnQgdmVjdG9ycy4KLS0KLS1t YWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2Zsb2F0X21pbl9tYXggewotLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gTWluaW11bSBvZiB0d28g dmVjdG9ycy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5l dyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAg ICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIG1pbihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtaW47Ci0tICAgICAgICAgICAgICAg IHVuc2FmZSB7IFNpbWQoc2ltZF9mbWluKHNlbGYuMCwgeC4wKSkgfQotLSAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28gdmVjdG9ycy4KLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0 aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2 ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX2ZtYXg7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9m bWF4KHNlbGYuMCwgeC4wKSkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCi0tICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8yMjMKLS0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9 ICJtaXBzIiwgdGFyZ2V0X2VuZGlhbiA9ICJiaWciKSwKLS0gICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gIm1pcHM2NCIsCi0tICAgICAgICAgICAgICAgICkpKV0KLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IG1pbl9tYXgoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4gPSBjcmF0ZTo6JGVs ZW1fdHk6Ok5BTjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQo MS4gYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCgyLiBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBtID0gbzsgLy8gWzEuLCAyLiwgMS4sIDIuLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBvbiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0g MCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtID0gbS5yZXBsYWNlKGksIDIu IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uID0gb24u cmVwbGFjZShpLCBuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG8ubWluKHQpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWlu KG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKG8pLCBv KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKG0pLCBvKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKHQpLCBtKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG0pLCBtKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KHQpLCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG0ubWF4KG8pLCBtKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8ubWF4KG0pLCBtKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KG0ubWF4KHQpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4 KG0pLCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9uLm1pbihv KSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1pbihvbiksIG8p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob24ubWF4KG8pLCBvKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG9uKSwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4LnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4 LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRfbWluX21heC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTcgKzAsMCBAQAotLS8vISBW ZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3IgYG1pbmAgYW5kIGBtYXhgIGZvciBpbnRlZ2VyIHZl Y3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCB7Ci0t ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBNaW5p bXVtIG9mIHR3byB2ZWN0b3JzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBS ZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBtaW5pbXVtIHZhbHVlIG9mIGVhY2gg b2YKLS0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3RvciBsYW5lcy4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbWluKHNlbGYsIHg6IFNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICBzZWxmLmx0KHgpLnNlbGVjdChzZWxmLCB4KQotLSAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28gdmVjdG9ycy4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29u dGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAgICAgICAgLy8vIHRo ZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGZuIG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg c2VsZi5ndCh4KS5zZWxlY3Qoc2VsZiwgeCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgICAgICB0ZXN0X2lmIXskdGVzdF90dDoKLS0gICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0gewotLSAgICAgICAg ICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgIGZuIG1pbl9tYXgo KSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90 eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG0gPSBvOwotLSAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG0u cmVwbGFjZShpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8u bWluKHQpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obyksIG8p OwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbihvKSwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWluKG0pLCBvKTsKLS0gICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobS5taW4odCksIG0pOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0Lm1pbihtKSwgbSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8u bWF4KHQpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobyksIHQp OwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heChvKSwgbSk7Ci0tICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKLS0gICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobS5tYXgodCksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0Lm1heChtKSwgdCk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0 d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92 ZWN0b3JfbWFza19iaXR3aXNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9t YXNrX2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDExNiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYml0 d2lzZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfbWFza19i aXR3aXNlIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1 ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6Ok5vdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbm90KHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgkdHJ1ZSkgXiBzZWxmCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3IgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF94b3I7Ci0tICAgICAgICAgICAg ICAgIHVuc2FmZSB7IFNpbWQoc2ltZF94b3Ioc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kIGZvciAk aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYg ewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYW5kOwotLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfYW5kKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yIGZv ciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9vcjsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX29yKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZEFz c2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBi aXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAg KnNlbGYgPSAqc2VsZiAmIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg ICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6 IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8IG90aGVyOwotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yQXNz aWduIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJp dHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAq c2VsZiA9ICpzZWxmIF4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9t YXNrX2JpdHdpc2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2UoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh0ICE9IGYpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoISh0ID09IGYpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBO b3Q6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISghdCwgZik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCAhZik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQml0QW5kOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCAmIGYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIHQsIGYp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHQsIHQpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIGYsIGYpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEJpdE9yOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodCB8IGYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IHQs IHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8IHQsIHQpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IGYsIGYpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHQgXiBmLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg XiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0LCBmKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmLCBmKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFu ZEFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSB0OwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IE9yQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBmOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IHQ7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gWE9SQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBm OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHQ7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9uZWcucnMKLS0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw0MyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZl Y3RvciBgTmVnYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX25lZyB7Ci0tICAg IChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90 dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpOZWcgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIGZuIG5lZyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2VsZjo6 c3BsYXQoLTEgYXMgJGVsZW1fdHkpICogc2VsZgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0 b3JfbmVnPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIG5lZygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG56ID0gJGlkOjpzcGxhdCgtKDAgYXMgJGVsZW1fdHkp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm8gPSAkaWQ6OnNwbGF0KC0oMSBhcyAk ZWxlbV90eSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBudCA9ICRpZDo6c3BsYXQo LSgyIGFzICRlbGVtX3R5KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5mID0gJGlk OjpzcGxhdCgtKDQgYXMgJGVsZW1fdHkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKC16LCBueik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgt bywgbm8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoLXQsIG50KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKC1mLCBuZik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCAtbnopOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobywgLW5vKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQsIC1udCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCAtbmYp OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9yb3RhdGVzLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTIgKzAsMCBAQAotLS8vISBWZXJ0aWNh bCAobGFuZS13aXNlKSB2ZWN0b3Igcm90YXRlcyBvcGVyYXRpb25zLgotLSMhW2FsbG93KHVudXNl ZCldCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9yb3RhdGVzIHsKLS0gICAgKFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0 KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFNoaWZ0cyB0aGUg Yml0cyBvZiBlYWNoIGxhbmUgdG8gdGhlIGxlZnQgYnkgdGhlIHNwZWNpZmllZAotLSAgICAgICAg ICAgIC8vLyBhbW91bnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgbGFuZSBvZiBgbmAsIHdyYXBwaW5n IHRoZQotLSAgICAgICAgICAgIC8vLyB0cnVuY2F0ZWQgYml0cyB0byB0aGUgZW5kIG9mIHRoZSBy ZXN1bHRpbmcgaW50ZWdlci4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm90 ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBzYW1lIG9wZXJhdGlvbiBhcyBgPDxgIG5vciBlcXVpdmFs ZW50Ci0tICAgICAgICAgICAgLy8vIHRvIGBzbGljZTo6cm90YXRlX2xlZnRgLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiByb3RhdGVfbGVmdChzZWxmLCBuOiAk aWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6ICRlbGVtX3R5 ID0KLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjwkZWxlbV90eT4o KSBhcyAkZWxlbV90eSAqIDg7Ci0tICAgICAgICAgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCB1 bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQgc2hpZnRzCi0tICAgICAgICAgICAg ICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7Ci0tICAgICAgICAgICAgICAgIChzZWxmIDw8IG4p IHwgKHNlbGYgPj4gKChMQU5FX1dJRFRIIC0gbikgJSBMQU5FX1dJRFRIKSkKLS0gICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNoaWZ0cyB0aGUgYml0cyBvZiBlYWNoIGxhbmUgdG8g dGhlIHJpZ2h0IGJ5IHRoZSBzcGVjaWZpZWQKLS0gICAgICAgICAgICAvLy8gYW1vdW50IGluIHRo ZSBjb3JyZXNwb25kaW5nIGxhbmUgb2YgYG5gLCB3cmFwcGluZyB0aGUKLS0gICAgICAgICAgICAv Ly8gdHJ1bmNhdGVkIGJpdHMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVzdWx0aW5nIGludGVn ZXIuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vdGU6IHRoaXMgaXMgbmVp dGhlciB0aGUgc2FtZSBvcGVyYXRpb24gYXMgYD4+YCBub3IgZXF1aXZhbGVudAotLSAgICAgICAg ICAgIC8vLyB0byBgc2xpY2U6OnJvdGF0ZV9yaWdodGAuCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIHJvdGF0ZV9yaWdodChzZWxmLCBuOiAkaWQpIC0+ICRpZCB7 Ci0tICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6ICRlbGVtX3R5ID0KLS0gICAgICAg ICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSBhcyAkZWxlbV90 eSAqIDg7Ci0tICAgICAgICAgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCB1bmRlZmluZWQgYmVo YXZpb3IgZm9yIG92ZXItbG9uZyBiaXQgc2hpZnRzCi0tICAgICAgICAgICAgICAgIGxldCBuID0g biAlIExBTkVfV0lEVEg7Ci0tICAgICAgICAgICAgICAgIChzZWxmID4+IG4pIHwgKHNlbGYgPDwg KChMQU5FX1dJRFRIIC0gbikgJSBMQU5FX1dJRFRIKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBGSVhNRToKLS0gICAg ICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy83NQotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QoYW55KAotLSAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiczM5MHgiLAotLSAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIsCi0tICAgICAgICAgICAgICAgICkpKV0KLS0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9yb3RhdGU+XSB7Ci0tICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAg ICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1k L2lzc3Vlcy8zMTcKLS0gICAgICAgICAgICAgICAgICAgIGZuIHJvdGF0ZV9vcHMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMg JGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXggPSAkaWQ6OnNw bGF0KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtOjpzaXplX29mOjo8JGVsZW1f dHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIHJvdGF0ZV9yaWdodAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoei5y b3RhdGVfcmlnaHQoeiksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ei5yb3RhdGVfcmlnaHQobyksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoei5yb3RhdGVfcmlnaHQodCksIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoby5yb3RhdGVfcmlnaHQoeiksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodC5yb3RhdGVfcmlnaHQoeiksIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQoeiksIGYpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobWF4KSwgZiA8PCAxKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX3JpZ2h0KG8pLCBvIDw8IG1h eCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9yaWdodChv KSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LnJvdGF0ZV9yaWdo dCh0KSwgbyA8PCBtYXgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5y b3RhdGVfcmlnaHQobyksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo Zi5yb3RhdGVfcmlnaHQodCksIG8pOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJv dGF0ZV9sZWZ0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LnJvdGF0ZV9s ZWZ0KHopLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRl X2xlZnQoeiksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3Rh dGVfbGVmdCh6KSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJv dGF0ZV9sZWZ0KHopLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYu cm90YXRlX2xlZnQobWF4KSwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvLnJvdGF0ZV9sZWZ0KG8pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8ucm90YXRlX2xlZnQodCksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodC5yb3RhdGVfbGVmdChvKSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv dmVjdG9yX3NoaWZ0cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9v cHMvdmVjdG9yX3NoaWZ0cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3Zl Y3Rvcl9zaGlmdHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDEwNiArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3Igc2hp ZnRzIG9wZXJhdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMg ewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsPCRpZD4gZm9y ICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuIHNobChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaGw7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zaGwoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyPCRpZD4g Zm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2Vs ZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaHI7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zaHIoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsQXNz aWduPCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gc2hsX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAg ICpzZWxmID0gKnNlbGYgPDwgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHJBc3NpZ248JGlkPiBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHJfYXNzaWduKCZtdXQgc2VsZiwgb3Ro ZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAg ICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX3NoaWZ0cz5dIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3codW5yZWFjaGFibGVfY29kZSwg dW51c2VkX3ZhcmlhYmxlcykKLS0gICAgICAgICAgICAgICAgICAgICldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAg ICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2Vk X3NpbWQvaXNzdWVzLzMxNwotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9zaGlm dHMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgx IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3Bs YXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6 OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt YXggPSRpZDo6c3BsYXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW06OnNpemVf b2Y6OjwkZWxlbV90eT4oKSAqIDggLSAxKSBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHosIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiA+PiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHogPj4gdCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6ID4+IHQsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJn ZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSldIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHJ1c3QgcHJvZHVjZXMgYmFkIGNvZGVnZW4g Zm9yIHNoaWZ0czoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xMwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiB6LCBvKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4geiwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHosIGYpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoZiA+PiBtYXgsIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobyA+PiBvLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQgPj4gbywgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+ IHQsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBvLCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdCwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heCwgeik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gc2hsCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6IDw8IHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB6 LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgeiwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IHosIGYpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCBtYXgsIHopOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCBvLCB0KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8gPDwgdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0IDw8IG8sIGYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hyX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ID4+PSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNobF9hc3NpZ24KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiA8PD0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwzMiArMCwwIEBACi0tLy8hIEltcGxlbWVudGF0aW9uIG9mIHRoZSBgb3BzYCB0cmFpdHMKLS0j W21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX21hc2tfYml0d2lzZTsKLS0jW21hY3JvX3VzZV0KLS1t b2Qgc2NhbGFyX21hc2tfYml0d2lzZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX2Fy aXRobWV0aWM7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHNjYWxhcl9hcml0aG1ldGljOwotLQotLSNb bWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfYml0d2lzZTsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2Nh bGFyX2JpdHdpc2U7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHZlY3Rvcl9zaGlmdHM7Ci0tI1tt YWNyb191c2VdCi0tbW9kIHNjYWxhcl9zaGlmdHM7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHZl Y3Rvcl9yb3RhdGVzOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfbmVnOwotLQotLSNb bWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfaW50X21pbl9tYXg7Ci0tCi0tI1ttYWNyb191c2VdCi0t bW9kIHZlY3Rvcl9mbG9hdF9taW5fbWF4OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMTYgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRz IG1hc2tlZCBnYXRoZXIgYW5kIHNjYXR0ZXJzIGZvciB2ZWN0b3JzIG9mIHBvaW50ZXJzCi0tCi0t bWFjcm9fcnVsZXMhIGltcGxfcHRyX3JlYWQgewotLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudAotLSAgICAgfCAkdGVzdF90dDp0 dCkgPT4gewotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4KLS0gICAgICAgIHdoZXJlCi0tICAgICAg ICAgICAgW1Q7ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCi0tICAgICAgICB7Ci0t ICAgICAgICAgICAgLy8vIFJlYWRzIHNlbGVjdGVkIHZlY3RvciBlbGVtZW50cyBmcm9tIG1lbW9y eS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3 IHZlY3RvciBieSByZWFkaW5nIHRoZSB2YWx1ZXMgZnJvbSBgc2VsZmAgZm9yCi0tICAgICAgICAg ICAgLy8vIHRob3NlIGxhbmVzIHdob3NlIGBtYXNrYCBpcyBgdHJ1ZWAsIGFuZCB1c2luZyB0aGUg ZWxlbWVudHMgb2YKLS0gICAgICAgICAgICAvLy8gYHZhbHVlYCBvdGhlcndpc2UuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vIG1lbW9yeSBpcyBhY2Nlc3NlZCBmb3IgdGhv c2UgbGFuZXMgb2YgYHNlbGZgIHdob3NlIGBtYXNrYCBpcwotLSAgICAgICAgICAgIC8vLyBgZmFs c2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGlzIG1ldGhvZCBpcyB1bnNhZmUgYmVjYXVz ZSBpdCBkZXJlZmVyZW5jZXMgcmF3IHBvaW50ZXJzLiBUaGUKLS0gICAgICAgICAgICAvLy8gcG9p bnRlcnMgbXVzdCBiZSBhbGlnbmVkIHRvIGBtZW06OmFsaWduX29mOjo8VD4oKWAuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZWFkPE0+KAotLSAg ICAgICAgICAgICAgICBzZWxmLAotLSAgICAgICAgICAgICAgICBtYXNrOiBTaW1kPFtNOyAkZWxl bV9jb3VudF0+LAotLSAgICAgICAgICAgICAgICB2YWx1ZTogU2ltZDxbVDsgJGVsZW1fY291bnRd PiwKLS0gICAgICAgICAgICApIC0+IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4KLS0gICAgICAgICAg ICB3aGVyZQotLSAgICAgICAgICAgICAgICBNOiBzZWFsZWQ6Ok1hc2ssCi0tICAgICAgICAgICAg ICAgIFtNOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAotLSAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2dhdGhlcjsKLS0gICAgICAg ICAgICAgICAgU2ltZChzaW1kX2dhdGhlcih2YWx1ZS4wLCBzZWxmLjAsIG1hc2suMCkpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIG1vZCBbPCRpZCBfcmVhZD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgIGZu IHJlYWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gWzBfaTMyOyAk ZWxlbV9jb3VudF07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1f Y291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2W2ldID0gaSBhcyBpMzI7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgcHRyID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHRyID0gcHRyLnJlcGxhY2UoaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZ2W2ldIGFzICpjb25zdCBpMzIgYXMgKm11dCBpMzIKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYWxsIG1hc2sgZWxlbWVudHMgYXJlIHRydWU6Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+OjpzcGxhdCg0 Ml9pMzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVt X2NvdW50XT4gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVh ZChtYXNrLCBkZWYpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6 ZnJvbV9zbGljZV91bmFsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm dgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAg ICAgKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1hc2sgPSBtYXNrOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtYXNrID0gbWFzay5yZXBsYWNlKGksIGZhbHNlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVuIG1hc2sgZWxlbWVudHMgYXJlIHRydWUsIG9k ZCBvbmVzIGFyZSBmYWxzZToKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjogU2ltZDxb aTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHRyLnJlYWQobWFzaywgZGVmKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gdjsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZVtp XSA9IDQyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNp bWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGFsbCBtYXNrIGVsZW1lbnRzIGFyZSBmYWxzZToKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbWFzayA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGRlZiA9IFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+OjpzcGxhdCg0Ml9p MzIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVtX2Nv dW50XT4gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVhZCht YXNrLCBkZWYpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICA7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShyLCBkZWYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9wdHJfd3JpdGUgewotLSAgICAoWyRlbGVtX3R5OnR5OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudAotLSAgICAgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4KLS0gICAgICAgIHdoZXJlCi0t ICAgICAgICAgICAgW1Q7ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCi0tICAgICAg ICB7Ci0tICAgICAgICAgICAgLy8vIFdyaXRlcyBzZWxlY3RlZCB2ZWN0b3IgZWxlbWVudHMgdG8g bWVtb3J5LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIGxh bmVzIG9mIGB2YWx1ZXNgIGZvciB3aGljaCB0aGUgbWFzayBpcyBgdHJ1ZWAgdG8KLS0gICAgICAg ICAgICAvLy8gdGhlaXIgY29ycmVzcG9uZGluZyBtZW1vcnkgYWRkcmVzc2VzIGluIGBzZWxmYC4K LS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm8gbWVtb3J5IGlzIGFjY2Vzc2Vk IGZvciB0aG9zZSBsYW5lcyBvZiBgc2VsZmAgd2hvc2UgYG1hc2tgIGlzCi0tICAgICAgICAgICAg Ly8vIGBmYWxzZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE92ZXJsYXBw aW5nIG1lbW9yeSBhZGRyZXNzZXMgb2YgYHNlbGZgIGFyZSB3cml0dGVuIHRvIGluIG9yZGVyCi0t ICAgICAgICAgICAgLy8vIGZyb20gdGhlIGxlc3Qtc2lnbmlmaWNhbnQgdG8gdGhlIG1vc3Qtc2ln bmlmaWNhbnQgZWxlbWVudC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBT YWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhpcyBtZXRob2QgaXMg dW5zYWZlIGJlY2F1c2UgaXQgZGVyZWZlcmVuY2VzIHJhdyBwb2ludGVycy4gVGhlCi0tICAgICAg ICAgICAgLy8vIHBvaW50ZXJzIG11c3QgYmUgYWxpZ25lZCB0byBgbWVtOjphbGlnbl9vZjo6PFQ+ KClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4g d3JpdGU8TT4oc2VsZiwgbWFzazogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwgdmFsdWU6IFNpbWQ8 W1Q7ICRlbGVtX2NvdW50XT4pCi0tICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAg TTogc2VhbGVkOjpNYXNrLAotLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1fY291bnRdOiBzZWFs ZWQ6OlNpbWRBcnJheSwKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6bGx2bTo6c2ltZF9zY2F0dGVyOwotLSAgICAgICAgICAgICAgICBzaW1kX3NjYXR0ZXIodmFs dWUuMCwgc2VsZi4wLCBtYXNrLjApCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfd3JpdGU+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW3Rl c3RdCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZSgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBmb3J0eV90d28gPSBbNDIsIDQyLCA0MiwgLi4uXQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBmb3J0eV90d28KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBT aW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGlzIHRlc3Qgd2lsbCB3cml0ZSB0byB0aGlzIGFycmF5Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnIgPSBbMF9pMzI7ICRlbGVtX2NvdW50XTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFycltpXSA9IGkgYXMgaTMyOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhcnIgPSBbMCwgMSwg MiwgLi4uXQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcHRyID0gJGlkOjo8 aTMyPjo6bnVsbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVt X2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcHRyLnJlcGxhY2Uo aSwgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyci5hc19wdHIo KS5hZGQoaSkgYXMgKm11dCBpMzIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHB0 ciA9IFsmYXJyWzBdLCAmYXJyWzFdLCAuLi5dCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gd3JpdGUgYGZvcnR5X3R3b2AgdG8gYWxsIGVsZW1lbnRzIG9mIGB2YAotLSAgICAgICAgICAg ICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJhY2t1cCA9 IGFycjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHB0ci53cml0ZSgkbWFza190eTo6c3BsYXQodHJ1ZSksIGZv cnR5X3R3bykKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnIsIFs0Ml9pMzI7ICRlbGVtX2NvdW50XSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyciA9IGJhY2t1cDsgIC8vIGFyciA9IFswLCAx LCAyLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHdyaXRlIDQyIHRvIGV2ZW4gZWxlbWVudHMgb2YgYXJyOgotLSAgICAgICAg ICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IG9k ZCBlbGVtZW50cyBvZiB0aGUgbWFzayB0byBmYWxzZQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1hc2sgPSBtYXNrLnJlcGxhY2UoaSwgZmFsc2UpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hc2sgPSBbdHJ1ZSwgZmFsc2UsIHRy dWUsIGZhbHNlLCAuLi5dCi0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4cGVj dGVkIHJlc3VsdCByID0gWzQyLCAxLCA0MiwgMywgNDIsIDUsIC4uLl0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCByID0gYXJyOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByW2ldID0gNDI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJhY2t1cCA9IGFycjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZl IHsgcHRyLndyaXRlKG1hc2ssIGZvcnR5X3R3bykgfTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShhcnIsIHIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cnIgPSBiYWNrdXA7ICAvLyBhcnIgPSBbMCwgMSwgMiwgMywgLi4uXQotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSA0MiB0byBu byBlbGVtZW50cyBvZiBhcnIKLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIu d3JpdGUoJG1hc2tfdHk6OnNwbGF0KGZhbHNlKSwgZm9ydHlfdHdvKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGFyciwgYmFja3VwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9wdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRy LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw0ICswLDAgQEAKLS0vLyEgVmVjdG9yIG9mIHBvaW50ZXJzCi0tCi0tI1tt YWNyb191c2VdCi0tbW9kIGdhdGhlcl9zY2F0dGVyOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2UucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNl LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNTEgKzAsMCBAQAotLS8vISBJbXBs ZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgYml0d2lzZSB2ZWN0b3IgcmVkdWN0aW9ucy4KLS0j IVthbGxvdyh1bnVzZWQpXQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVjdGlvbl9iaXR3aXNl IHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToK LS0gICAgICAgICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0g ICAgICAgICgkY29udmVydDpleHByKSB8Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4 cHIpCi0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBM YW5lLXdpc2UgYml0d2lzZSBgYW5kYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFu ZSwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCi0tICAgICAgICAgICAgLy8vIHZlY3RvciBpcyBy ZXR1cm5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gYW5k KHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYW5kOwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FuZChzZWxmLjApIH07 Ci0tICAgICAgICAgICAgICAgICAgICAkY29udmVydChyKQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBhYXJj aDY0Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHgg Jj0gc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgYml0d2lzZSBgb3JgIG9mIHRoZSB2ZWN0 b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vdGU6IGlm IHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUKLS0gICAg ICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIHB1YiBmbiBvcihzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAg ICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAg ICB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX29y OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRf cmVkdWNlX29yKHNlbGYuMCkgfTsKLS0gICAgICAgICAgICAgICAgICAgICRjb252ZXJ0KHIpCi0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogYnJva2VuIG9uIGFhcmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsK LS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgeCB8PSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBiaXR3 aXNlIGB4b3JgIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmlyc3Qg ZWxlbWVudCBvZiB0aGUKLS0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB4b3Ioc2VsZikgLT4gJGVs ZW1fdHkgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2 NCIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX3JlZHVjZV94b3I7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcjogJGll bGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfeG9yKHNlbGYuMCkgfTsKLS0gICAgICAgICAg ICAgICAgICAgICRjb252ZXJ0KHIpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNoNjQKLS0gICAgICAg ICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNr ZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYu ZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEu LiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCBePSBzZWxmLmV4dHJh Y3QoaSkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1 Y3Rpb25fYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBhbmQoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRp ZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYuYW5kKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkdHJ1ZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2 LnJlcGxhY2UoMCwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYuYW5kKCksICRmYWxzZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gb3IoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2Lm9yKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYg PSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYub3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpz cGxhdCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNl KDAsICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwg JHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1 ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICR0cnVlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYub3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4geG9yKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgk ZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICRmYWxzZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICR0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICRmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di54b3IoKSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9h dF9hcml0aG1ldGljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9h cml0aG1ldGljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwz MTMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgZmxvYXQgdmVj dG9yIGFyaXRobWV0aWMgcmVkdWN0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9yZWR1Y3Rp b25fZmxvYXRfYXJpdGhtZXRpYyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQg ewotLSAgICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHN1bSBvZiB0aGUgdmVjdG9yIGVsZW1lbnRz LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZv cm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAg ICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vID4gKCh4MCArIHgxKSArICh4MiArIHgzKSkgKyAoKHg0ICsgeDUp ICsgKHg2ICsgeDcpKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBvbmUg b2YgdGhlIHZlY3RvciBlbGVtZW50IGlzIGBOYU5gIHRoZSByZWR1Y3Rpb24gcmV0dXJucwotLSAg ICAgICAgICAgIC8vLyBgTmFOYC4gVGhlIHJlc3VsdGluZyBgTmFOYCBpcyBub3QgcmVxdWlyZWQg dG8gYmUgZXF1YWwgdG8gYW55Ci0tICAgICAgICAgICAgLy8vIG9mIHRoZSBgTmFOYHMgaW4gdGhl IHZlY3Rvci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gc3Vt KHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQ7Ci0tICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZChzZWxmLjAsIDAgYXMg JGVsZW1fdHkpIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAg ICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDAp IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5l cygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4ICs9IHNlbGYuZXh0cmFjdChpKSBhcyAk ZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8g SG9yaXpvbnRhbCBwcm9kdWN0IG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVj dGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBm b3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gPiAoKHgwICogeDEpICogKHgyICogeDMpKSAqICgoeDQgKiB4NSkgKiAoeDYgKiB4NykpCi0t ICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIG9uZSBvZiB0aGUgdmVjdG9yIGVs ZW1lbnQgaXMgYE5hTmAgdGhlIHJlZHVjdGlvbiByZXR1cm5zCi0tICAgICAgICAgICAgLy8vIGBO YU5gLiBUaGUgcmVzdWx0aW5nIGBOYU5gIGlzIG5vdCByZXF1aXJlZCB0byBiZSBlcXVhbCB0byBh bnkKLS0gICAgICAgICAgICAvLy8gb2YgdGhlIGBOYU5gcyBpbiB0aGUgdmVjdG9yLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBwcm9kdWN0KHNlbGYpIC0+ICRl bGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNo NjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQ7Ci0tICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgeyBzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAsIDEgYXMgJGVsZW1fdHkpIH0K LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8v IEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5 OwotLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB4ICo9IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3Jh dGU6Oml0ZXI6OlN1bSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0t ICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDAuKSwgY3JhdGU6Om9wczo6QWRk OjphZGQpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6aXRlcjo6UHJvZHVjdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAk aWQgewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxLiksIGNyYXRlOjpv cHM6Ok11bDo6bXVsKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGlt cGw8J2E+IGNyYXRlOjppdGVyOjpTdW08JidhICRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlk Pj4oaXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3Bs YXQoMC4pLCB8YSwgYnwgY3JhdGU6Om9wczo6QWRkOjphZGQoYSwgKmIpKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8J2E+IGNyYXRlOjppdGVyOjpQcm9kdWN0 PCYnYSAkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQg ewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxLiksIHxhLCBifCBjcmF0 ZTo6b3BzOjpNdWw6Om11bChhLCAqYikpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRl Z2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf cmVkdWN0aW9uX2Zsb2F0X2FyaXRoPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOwotLSAgICAgICAgICAgICAgICAgICAgZm4gYWx0ZXJuYXRpbmcoeDogdXNpemUpIC0+ICRp ZCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgxIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgeCA9PSAwIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgMiBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICBmbiBzdW0oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di5zdW0oKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYg PSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodi5zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYuc3VtKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6OmxhbmVzKCkgLyAyICsgJGlkOjps YW5lcygpKSBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgIGZuIHByb2R1Y3QoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodi5wcm9kdWN0KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYucHJvZHVjdCgpLCAxIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9IG1hdGNoICRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDY0ID0+IDE2LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAzMiA9PiA4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiA9PiA0LAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfID0+IDIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKGYp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYucHJvZHVjdCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Ml91c2l6ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFibGVfY29kZSldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBzdW1fbmFuKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IEZJWE1FOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzMyCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy82Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuMCA9IGNyYXRlOjokZWxlbV90eTo6 TkFOOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3BsYXQoLTMuMCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVwbGFjZShpLCBuMCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgY29udGFpbnMg YSBOYU4gdGhlIHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnN1bSgpLmlzX25hbigp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbiBhdCB7fSA9PiB7fSB8IHs6 P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYuc3VtKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHYuc3VtKCkuaXNfbmFuKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdChuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISh2LnN1bSgpLmlzX25hbigpLCAiYWxsIG5hbnMgfCB7Oj99Iiwgdik7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAg ICAgICAgICAgICAgICNbYWxsb3codW5yZWFjaGFibGVfY29kZSldCi0tICAgICAgICAgICAgICAg ICAgICBmbiBwcm9kdWN0X25hbigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczMgotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvNgotLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLjApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJlcGxhY2UoaSwgbjApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRhaW5zIGEgTmFO IHRoZSByZXN1bHQgaXMgTmFOOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCkuaXNfbmFuKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFuIGF0IHt9ID0+IHt9IHwgezo/ fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEodi5wcm9kdWN0KCkuaXNfbmFuKCksICJhbGwgbmFucyB8IHs6P30iLCB2KTsK LS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWQsIGRlYWRfY29kZSldCi0tICAg ICAgICAgICAgICAgICAgICBmbiBzdW1fcm91bmRvZmYoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gUGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbgotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZuIHRyZWVfcmVkdWNlX3N1bShhOiAmWyRlbGVtX3R5XSkgLT4gJGVsZW1fdHkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmlzX2VtcHR5KCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBhLmxlbigpID09IDEgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYVswXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgaWYgYS5sZW4oKSA9PSAyIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFb MF0gKyBhWzFdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlkID0gYS5sZW4oKSAvIDI7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKGxlZnQsIHJpZ2h0KSA9IGEuc3BsaXRfYXQo bWlkKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVkdWNlX3N1bShs ZWZ0KSArIHRyZWVfcmVkdWNlX3N1bShyaWdodCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHN0YXJ0ID0gY3JhdGU6OiRlbGVtX3R5OjpFUFNJTE9OOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgc2NhbGFyX3JlZHVjdGlvbiA9IDAuIGFzICRlbGVtX3R5 OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMC4g YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6 bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjID0gaWYgaSAlIDIg PT0gMCB7IDFlMyB9IGVsc2UgeyAtMS4gfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RhcnQgKj0gOjpjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSAqIGM7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rpb24gKz0gc3RhcnQ7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgc3RhcnQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZF9yZWR1Y3Rpb24g PSB2LnN1bSgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IFswLiBh cyAkZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2Lndy aXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0cmVlX3JlZHVjdGlvbiA9IHRyZWVfcmVkdWNlX3N1bSgmYSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdG9sZXJhdGUgMSBVTFAgZGlmZmVyZW5jZToKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcmVkX2JpdHMgPSBzaW1kX3JlZHVjdGlvbi50b19iaXRzKCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfYml0cyA9IHRyZWVfcmVkdWN0aW9uLnRv X2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiByZWRfYml0cyA+IHRyZWVfYml0cyB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWRfYml0cyAtIHRyZWVfYml0cwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHJlZV9iaXRzIC0gcmVkX2JpdHMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA8IDIs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6IHs6P30gfCBzaW1kX3JlZHVj dGlvbjogezo/fSB8IFwKLS10cmVlX3JlZHVjdGlvbjoge30gfCBzY2FsYXJfcmVkdWN0aW9uOiB7 fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpbWRfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 cmVlX3JlZHVjdGlvbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX3JlZHVj dGlvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbYWxsb3codW51c2VkLCBkZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcHJv ZHVjdF9yb3VuZG9mZigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgOjpjb3JlOjpj b252ZXJ0OjpUcnlJbnRvOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmZvcm1zIGEg dHJlZS1yZWR1Y3Rpb24KLS0gICAgICAgICAgICAgICAgICAgICAgICBmbiB0cmVlX3JlZHVjZV9w cm9kdWN0KGE6ICZbJGVsZW1fdHldKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEoIWEuaXNfZW1wdHkoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGEubGVuKCkgPT0gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhWzBdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBhLmxlbigpID09 IDIgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVswXSAqIGFbMV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtaWQgPSBhLmxlbigpIC8gMjsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCAobGVmdCwgcmlnaHQpID0gYS5zcGxpdF9hdChtaWQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWR1Y2VfcHJvZHVjdChsZWZ0KQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdHJlZV9yZWR1Y2VfcHJvZHVjdChyaWdo dCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHN0YXJ0ID0gY3JhdGU6 OiRlbGVtX3R5OjpFUFNJTE9OOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc2Nh bGFyX3JlZHVjdGlvbiA9IDEuIGFzICRlbGVtX3R5OwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMC4gYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBjID0gaWYgaSAlIDIgPT0gMCB7IDFlMyB9IGVsc2UgeyAtMS4gfTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKj0gOjpjb3JlOjokZWxlbV90eTo6 Y29uc3RzOjpQSSAqIGM7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1 Y3Rpb24gKj0gc3RhcnQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxh Y2UoaSwgc3RhcnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgc2ltZF9yZWR1Y3Rpb24gPSB2LnByb2R1Y3QoKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBbMC4gYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMo KV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdi53cml0ZV90b19zbGljZV91bmFsaWduZWQo Jm11dCBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJlZV9yZWR1Y3Rpb24gPSB0 cmVlX3JlZHVjZV9wcm9kdWN0KCZhKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogVG9vIGltcHJlY2lzZSwgZXZlbiBvbmx5IGZvciBwcm9kdWN0KGYzMng4KS4KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBGaWd1cmUgb3V0IGhvdyB0byBuYXJyb3cgdGhpcyBkb3du LgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1bHBfbGltaXQgPSAkaWQ6OmxhbmVzKCkg LyAyOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWRfYml0cyA9IHNpbWRfcmVkdWN0 aW9uLnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJlZV9iaXRzID0g dHJlZV9yZWR1Y3Rpb24udG9fYml0cygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZF9iaXRzID4gdHJlZV9iaXRz IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZF9iaXRzIC0gdHJlZV9iaXRz Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0cmVlX2JpdHMgLSByZWRfYml0cwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IDwgdWxwX2xpbWl0LnRyeV9pbnRvKCkudW53cmFwKCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ2ZWN0b3I6IHs6P30gfCBzaW1kX3JlZHVjdGlvbjogezo/fSB8 IFwKLS10cmVlX3JlZHVjdGlvbjoge30gfCBzY2FsYXJfcmVkdWN0aW9uOiB7fSIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp bWRfcmVkdWN0aW9uLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlZHVjdGlv biwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX3JlZHVjdGlvbgotLSAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2lu dGVnZXJfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE5MyArMCwwIEBACi0tLy8h IEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBpbnRlZ2VyIHZlY3RvciBhcml0aG1ldGlj IHJlZHVjdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX2ludGVnZXJfYXJp dGhtZXRpYyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQKLS0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAg ICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCB3cmFwcGluZyBzdW0g b2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gVGhlIGludHJpbnNpYyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3Ig ZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVj dG9yOgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKyB4MSkgKyAo eDIgKyB4MykpICsgKCh4NCArIHg1KSArICh4NiArIHg3KSkKLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gSWYgYW4gb3BlcmF0aW9uIG92ZXJmbG93cyBpdCByZXR1cm5zIHRoZSBt YXRoZW1hdGljYWwgcmVzdWx0Ci0tICAgICAgICAgICAgLy8vIG1vZHVsbyBgMl5uYCB3aGVyZSBg bmAgaXMgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBvdmVyZmxvd3MuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX3N1bShzZWxmKSAtPiAkZWxlbV90 eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iikp XQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OnNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6 ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkKHNlbGYuMCwgMCBh cyAkaWVsZW1fdHkpIH07Ci0tICAgICAgICAgICAgICAgICAgICB2IGFzICRlbGVtX3R5Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0g ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgeCA9IHgud3JhcHBpbmdfYWRkKHNlbGYuZXh0cmFjdChpKSBhcyAkZWxl bV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEhv cml6b250YWwgd3JhcHBpbmcgcHJvZHVjdCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZvcm1zIGEgdHJl ZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8gVGhh dCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vID4gKCh4MCAqIHgxKSAqICh4MiAqIHgzKSkgKiAoKHg0ICogeDUpICogKHg2ICog eDcpKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBhbiBvcGVyYXRpb24g b3ZlcmZsb3dzIGl0IHJldHVybnMgdGhlIG1hdGhlbWF0aWNhbCByZXN1bHQKLS0gICAgICAgICAg ICAvLy8gbW9kdWxvIGAyXm5gIHdoZXJlIGBuYCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IG92 ZXJmbG93cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3Jh cHBpbmdfcHJvZHVjdChzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX211bF9vcmRlcmVk OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHY6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRf cmVkdWNlX211bF9vcmRlcmVkKHNlbGYuMCwgMSBhcyAkaWVsZW1fdHkpIH07Ci0tICAgICAgICAg ICAgICAgICAgICB2IGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAg ICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNl bGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCA9IHgud3JhcHBp bmdfbXVsKHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjppdGVyOjpTdW0gZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc3VtPEk6IEl0 ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBp dGVyLmZvbGQoJGlkOjpzcGxhdCgwKSwgY3JhdGU6Om9wczo6QWRkOjphZGQpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6aXRlcjo6UHJvZHVjdCBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBwcm9kdWN0 PEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgewotLSAgICAgICAgICAg ICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxKSwgY3JhdGU6Om9wczo6TXVsOjptdWwpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6 OlN1bTwmJ2EgJGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQg ewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwKSwgfGEsIGJ8IGNyYXRl OjpvcHM6OkFkZDo6YWRkKGEsICpiKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6UHJvZHVjdDwmJ2EgJGlkPiBmb3IgJGlkIHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJh dG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAg aXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIHxhLCBifCBjcmF0ZTo6b3BzOjpNdWw6Om11bChhLCAq YikpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9pbnRfYXJpdGg+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBm biBhbHRlcm5hdGluZyh4OiB1c2l6ZSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGkgJSB4ID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiA9IHYucmVwbGFjZShpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5nX3N1bSgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3N1bSgpLCAw IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 LndyYXBwaW5nX3N1bSgpLCAkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoMik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LndyYXBwaW5n X3N1bSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpZDo6bGFuZXMoKSAv IDIgKyAkaWQ6OmxhbmVzKCkpIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYud3JhcHBpbmdfc3VtKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy IGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cmFwcGluZ19zdW1fb3Zl cmZsb3coKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gJGVsZW1fdHk6 Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKCRpZDo6bGFuZXMo KSBhcyAkZWxlbV90eSAvIDIpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZ3cmFwcGluZ19zdW0gPSB2LndyYXBwaW5nX3N1bSgpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgd3JhcHBpbmdfc3VtID0gc3RhcnQ7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIF8gaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgd3JhcHBpbmdfc3VtID0gd3JhcHBpbmdfc3VtLndyYXBwaW5nX2FkZChzdGFydCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEod3JhcHBpbmdfc3VtLCB2d3JhcHBpbmdfc3VtLCAidiA9IHs6P30iLCB2KTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gd3JhcHBpbmdfcHJvZHVjdCgpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3Byb2R1Y3QoKSwgMCBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53cmFw cGluZ19wcm9kdWN0KCksIDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBmID0gbWF0Y2ggJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgNjQgPT4gMTYsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyID0+IDgsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDE2ID0+IDQsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF8gPT4gMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LndyYXBwaW5n X3Byb2R1Y3QoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgyX3VzaXplLnBv dygoJGlkOjpsYW5lcygpIC8gZikgYXMgdTMyKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LndyYXBw aW5nX3Byb2R1Y3QoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgYXMgJGVs ZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5nX3Byb2R1Y3Rfb3Zl cmZsb3coKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0YXJ0ID0gJGVsZW1fdHk6 Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKCRpZDo6bGFuZXMo KSBhcyAkZWxlbV90eSAvIDIpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpzcGxhdChzdGFydCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHZtdWwgPSB2LndyYXBwaW5nX3Byb2R1Y3QoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IG11bCA9IHN0YXJ0OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBf IGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bCA9 IG11bC53cmFwcGluZ19tdWwoc3RhcnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG11bCwgdm11bCwgInYgPSB7Oj99Iiwg dik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSw4OSArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgcG9ydGFi bGUgaG9yaXpvbnRhbCBtYXNrIHJlZHVjdGlvbnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcmVk dWN0aW9uX21hc2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAg ICAgICAgICAvLy8gQXJlIGBhbGxgIHZlY3RvciBsYW5lcyBgdHJ1ZWA/Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6OmNvZGVnZW46OnJlZHVjdGlvbnM6Om1hc2s6OkFs bDo6YWxsKHNlbGYpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgLy8vIElzIGBhbnlg IHZlY3RvciBsYW5lIGB0cnVlYD8KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBj cmF0ZTo6Y29kZWdlbjo6cmVkdWN0aW9uczo6bWFzazo6QW55Ojphbnkoc2VsZikgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAvLy8gQXJlIGBhbGxgIHZlY3RvciBsYW5lcyBgZmFsc2Vg PwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBub25lKHNlbGYp IC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAhc2VsZi5hbnkoKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9yZWR1Y3Rpb24+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IGFsbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1 ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFsbCgpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoIWEuYWxsKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISghYS5hbGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFsbCgpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gYW55KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbnkoKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFueSgpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gbm9uZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5ub25lKCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLm5vbmUoKSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLm5vbmUoKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLm5vbmUoKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNjAgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHBv cnRhYmxlIGhvcml6b250YWwgdmVjdG9yIG1pbi9tYXggcmVkdWN0aW9ucy4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9yZWR1Y3Rpb25fbWluX21heCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5OmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gTGFy Z2VzdCB2ZWN0b3IgZWxlbWVudCB2YWx1ZS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBwdWIgZm4gbWF4X2VsZW1lbnQoc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAg ICAgICAgICAjW2NmZyhub3QoYW55KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2gg PSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAot LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwKLS0gICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCi0tICAgICAgICAgICAgICAgICkp KV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjpzaW1kX3JlZHVjZV9tYXg7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVt X3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWF4KHNlbGYuMCkgfTsKLS0gICAgICAgICAgICAg ICAgICAgIHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAjW2NmZyhhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0tICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAotLSAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAgICAgKSldCi0tICAgICAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFy Y2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IGJyb2tlbiBvbiBXQVNNMzIKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvOTEKLS0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKTsKLS0gICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgeCA9IHgubWF4KHNlbGYuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHZlY3RvciBlbGVtZW50IHZhbHVlLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtaW5fZWxlbWVudChz ZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCi0tICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAgICAg ICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0tICAgICAgICAgICAgICAgICAgICBhbGwodGFy Z2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKSksCi0tICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAotLSAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAgICAgKSwpKV0KLS0g ICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX3JlZHVjZV9taW47Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVtX3R5ID0g dW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWluKHNlbGYuMCkgfTsKLS0gICAgICAgICAgICAgICAgICAg IHYgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2Nm ZyhhbnkoCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCi0tICAgICAgICAgICAgICAg ICAgICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIi KSksCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAotLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAg ICAgKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiBicm9rZW4gb24gQUFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBpNTg2LXVua25vd24tbGludXgtZ251Ci0t ICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzIyCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog YnJva2VuIG9uIFdBU00zMgotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy85MQotLSAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApOwotLSAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB4 ID0geC5taW4oc2VsZi5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhIHskdGVzdF90dDoKLS0gICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0 aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0 X2NtcCldCi0tICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9uX21pbl9tYXg+XSB7 Ci0tICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgcHViIGZuIG1heF9lbGVtZW50KCkgewotLSAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDEgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJl cGxhY2UoMCwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYubWF4X2VsZW1lbnQoKSwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgcHViIGZuIG1pbl9lbGVt ZW50KCkgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCks IDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4g MSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVt ZW50KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMSBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5taW5fZWxlbWVudCgpLCAyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMSBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQot LW1hY3JvX3J1bGVzISB0ZXN0X3JlZHVjdGlvbl9mbG9hdF9taW5fbWF4IHsKLS0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7Ci0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNl IGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgICAg ICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9yZWR1Y3Rpb25fbWluX21heF9uYW4+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgIGZuIG1pbl9lbGVtZW50X3Rlc3QoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG4ubWluKC0zLiksIC0zLik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgoLTMuIGFzICRlbGVtX3R5KS5taW4obiksIC0zLik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4pOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiA9ICFjZmch KGFueSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwg dGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODYiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBj NjQiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LAotLSAgICAgICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoZSB2ZWN0b3IgaXMgaW5pdGlhbGl6ZWQgdG8gYC0zLmBzOiBbLTMsIC0zLCAtMywg LTNdCi0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcmVwbGFjZSB0aGUgaS10aCBlbGVt ZW50IG9mIHRoZSB2ZWN0b3Igd2l0aAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBg TmFOYDogWy0zLCAtMywgLTMsIE5hTl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB2ID0gdjAucmVwbGFjZShpLCBuKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gSWYgdGhlIE5hTiBpcyBpbiB0aGUgbGFzdCBwbGFjZSwgdGhlIExMVk0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgbWV0aG9kcyBp cyBicm9rZW4gb24gc29tZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXRz OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEg JiYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF93aXRoX2Jyb2tlbl9s YXN0X2xhbmVfbmFuIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIltBXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCks IHYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFj ZSBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3Vs dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgc3RpbGwgYWx3YXlzIGAt My5gIHVubGVzcyBhbGwgZWxlbWVudHMgb2YKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSB2ZWN0b3IgYXJlIGBOYU5gczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgaiA9PSBpLTEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30i LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5f ZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYubWluX2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFdlIGFyZSBkb25lIGhlcmUsIHNpbmNlIHdlIHdlcmUgaW4gdGhlIGxhc3QKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmUgd2hpY2ggaXMgdGhlIGxhc3QgaXRlcmF0aW9u IG9mIHRoZSBsb29wLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBXZSBhcmUgbm90IGluIHRoZSBsYXN0IGxhbmUsIGFuZCB0aGVyZSBpcyBvbmx5Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBgTmFOYCBpbiB0aGUgdmVjdG9yLgot LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGhhcyBvbmUg bGFuZSwgdGhlIHJlc3VsdCBpcyBgTmFOYDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgJGlkOjpsYW5lcygpID09IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJbQ106IGFsbCBuYW5zIHwgdj17Oj99IHwgbWluPXt9IHwgXAot LWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 LCB2Lm1pbl9lbGVtZW50KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYubWluX2VsZW1lbnQoKS5pc19uYW4oKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZCB3ZSBh cmUgZG9uZSwgc2luY2UgdGhlIHZlY3RvciBvbmx5IGhhcwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gb25lIGxhbmUgYW55d2F5cy4KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaGFzIG1vcmUgdGhhbiBvbmUg bGFuZSwgc2luY2UgdGhlcmUgaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25s eSBvbmUgYE5hTmAgaW4gdGhlIHZlY3RvciwgdGhlIHJlc3VsdCBpcwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBhbHdheXMgYC0zYC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiW0RdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0 aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQgaXMKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwg ZWxlbWVudHMgb2YgdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciBh cmUgYE5hTmBzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAt IDEgJiYgaiA9PSBpIC0gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gQWxsIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgYXJlIGBOYU5gcywKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZWZvcmUgdGhlIHJlc3VsdCBpcyBOYU4gYXMg d2VsbC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSAjbGFuZXMgb2YgdGhlIHZl Y3RvciBpcyA+IDEsIHNvCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g ImkgLSAxIiBkb2VzIG5vdCBvdmVyZmxvdy4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRV06IGFsbCBuYW5zIHwgdj17Oj99IHwg bWluPXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiwgdi5taW5fZWxlbWVudCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi5taW5fZWxlbWVudCgpLmlzX25hbigpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vbi1gTmFOYCBlbGVtZW50cyBpbiB0aGUK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3IsIHRoZXJlZm9y ZSB0aGUgcmVzdWx0IGlzIGAtMy5gOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0ZdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99 IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYu bWluX2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBjb250YWlucyBh bGwgTmFOcyB0aGUgcmVzdWx0IGlzIE5hTjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhbGwgbmFucyB8IHY9ezo/fSB8IG1pbj17fSB8IGlzX25hbjog e30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChuKSwgJGlk OjpzcGxhdChuKS5taW5fZWxlbWVudCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLmlzX25hbigpKTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgZm4gbWF4X2VsZW1lbnRfdGVzdCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobi5tYXgoLTMuKSwgLTMuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKCgtMy4gYXMgJGVsZW1fdHkpLm1heChuKSwgLTMuKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLik7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVfbmFuID0gIWNmZyEo YW55KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLCB0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X2FyY2ggPSAicG93ZXJwYzY0IiwgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUg dmVjdG9yIGlzIGluaXRpYWxpemVkIHRvIGAtMy5gczogWy0zLCAtMywgLTMsIC0zXQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlcGxhY2UgdGhlIGktdGggZWxlbWVudCBvZiB0aGUg dmVjdG9yIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYE5hTmA6IFstMywg LTMsIC0zLCBOYU5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYw LnJlcGxhY2UoaSwgbik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRo ZSBOYU4gaXMgaW4gdGhlIGxhc3QgcGxhY2UsIHRoZSBMTFZNCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIG1ldGhvZHMgaXMgYnJva2VuIG9u IHNvbWUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFyZ2V0czoKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkgLSAxICYmCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4g ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVt ZW50KCksIC0zLiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltB XTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhl IHZlY3RvcgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhlIGBp LXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBpcyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50cyBv ZgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHZlY3RvciBhcmUgYE5h TmBzOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBqID09IGktMSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5taW5fZWxlbWVu dCgpLmlzX25hbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi W0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9 IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp LCB2Lm1heF9lbGVtZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBkb25lIGhlcmUsIHNpbmNlIHdlIHdlcmUg aW4gdGhlIGxhc3QKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmUgd2hp Y2ggaXMgdGhlIGxhc3QgaXRlcmF0aW9uIG9mIHRoZSBsb29wLgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGluIHRoZSBsYXN0IGxh bmUsIGFuZCB0aGVyZSBpcyBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9u ZSBgTmFOYCBpbiB0aGUgdmVjdG9yLgotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBJZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwgdGhlIHJlc3VsdCBpcyBgTmFOYDoKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID09IDEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQ106IGFsbCBuYW5z IHwgdj17Oj99IHwgbWluPXt9IHwgXAotLWlzX25hbjoge30iLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2LCB2Lm1heF9lbGVtZW50KCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmQgd2UgYXJlIGRvbmUsIHNp bmNlIHRoZSB2ZWN0b3Igb25seSBoYXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG9uZSBsYW5lIGFueXdheXMuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGhhcyBtb3JlIHRoYW4gb25lIGxhbmUsIHNpbmNl IHRoZXJlIGlzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgb25lIGBOYU5g IGluIHRoZSB2ZWN0b3IsIHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYWx3YXlzIGAtM2AuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIltEXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBhbGwgdGhlIGVsZW1lbnRz IGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhl IGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0IGlzCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9m IHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3IgYXJlIGBOYU5gczoK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkgLSAxICYmIGogPT0g aSAtIDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFsbCBlbGVt ZW50cyBvZiB0aGUgdmVjdG9yIGFyZSBgTmFOYHMsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMgTmFOIGFzIHdlbGwuCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgI2xhbmVzIG9mIHRoZSB2ZWN0b3IgaXMgPiAx LCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICJpIC0gMSIgZG9l cyBub3Qgb3ZlcmZsb3cuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISh2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiW0VdOiBhbGwgbmFucyB8IHY9ezo/fSB8IG1heD17fSB8IFwK LS1pc19uYW46IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYsIHYubWF4X2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRoZXJlIGFyZSBub24tYE5hTmAgZWxlbWVudHMgaW4gdGhlCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yLCB0aGVyZWZvcmUgdGhlIHJlc3Vs dCBpcyBgLTMuYDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIltGXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50 KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgY29udGFpbnMgYWxsIE5hTnMgdGhl IHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgkaWQ6OnNw bGF0KG4pLm1heF9lbGVtZW50KCkuaXNfbmFuKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYWxsIG5hbnMgfCB2PXs6P30gfCBtYXg9e30gfCBpc19uYW46IHt9IiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQobiksICRpZDo6c3BsYXQobiku bWF4X2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3Bs YXQobikubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1 Y3Rpb25zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlv bnMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rp b25zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTIgKzAsMCBAQAotLS8vISBSZWR1Y3Rpb25z Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGZsb2F0X2FyaXRobWV0aWM7Ci0tI1ttYWNyb191c2Vd Ci0tbW9kIGludGVnZXJfYXJpdGhtZXRpYzsKLS0jW21hY3JvX3VzZV0KLS1tb2QgYml0d2lzZTsK LS0jW21hY3JvX3VzZV0KLS1tb2QgbWFzazsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbWluX21heDsK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2VsZWN0 LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNzMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIG1hc2sncyBgc2VsZWN0YC4K LS0KLS0vLy8gSW1wbGVtZW50cyBtYXNrIHNlbGVjdCBtZXRob2QKLS1tYWNyb19ydWxlcyEgaW1w bF9zZWxlY3QgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAg ICAgICAvLy8gU2VsZWN0cyBlbGVtZW50cyBvZiBgYWAgYW5kIGBiYCB1c2luZyBtYXNrLgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgbGFuZXMgb2YgdGhlIHJlc3VsdCBm b3Igd2hpY2ggdGhlIG1hc2sgaXMgYHRydWVgIGNvbnRhaW4KLS0gICAgICAgICAgICAvLy8gdGhl IHZhbHVlcyBvZiBgYWAuIFRoZSByZW1haW5pbmcgbGFuZXMgY29udGFpbiB0aGUgdmFsdWVzIG9m Ci0tICAgICAgICAgICAgLy8vIGBiYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgZm4gc2VsZWN0PFQ+KHNlbGYsIGE6IFNpbWQ8VD4sIGI6IFNpbWQ8VD4pIC0+IFNp bWQ8VD4KLS0gICAgICAgICAgICB3aGVyZQotLSAgICAgICAgICAgICAgICBUOiBzZWFsZWQ6OlNp bWRBcnJheTxOVCA9IDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyBzZWFsZWQ6OlNpbWRBcnJh eT46Ok5UPiwKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9zZWxlY3Q7Ci0tICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9zZWxl Y3Qoc2VsZi4wLCBhLjAsIGIuMCkgfSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICB0ZXN0X3NlbGVjdCEoYm9vbCwgJGlkLCAkaWQsIChmYWxzZSwgdHJ1ZSkgfCAkdGVz dF90dCk7Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X3NlbGVjdCB7Ci0tICAg ICgKLS0gICAgICAgICRlbGVtX3R5OmlkZW50LAotLSAgICAgICAgJG1hc2tfdHk6aWRlbnQsCi0t ICAgICAgICAkdmVjX3R5OmlkZW50LCgkc21hbGw6ZXhwciwgJGxhcmdlOmV4cHIpIHwKLS0gICAg ICAgICR0ZXN0X3R0OnR0Ci0tICAgICkgPT4gewotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAg ICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkdmVjX3R5IF9zZWxlY3Q+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2Vs ZWN0KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJHNtYWxsIGFzICRlbGVt X3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGxhcmdlIGFzICRlbGVtX3R5 OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJHZlY190eTo6c3BsYXQobyk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkdmVjX3R5OjpzcGxhdCh0KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGEubHQoYik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChhLCBiKSwgYSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG0gPSBiLmx0KGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobS5zZWxlY3QoYiwgYSksIGEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYyA9IGE7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBkID0gYjsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1fZSA9ICRtYXNrX3R5OjpzcGxhdChm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJHZlY190eTo6bGFu ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNfdG1wID0gYy5leHRyYWN0KGkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGMucmVwbGFjZShpLCBkLmV4dHJh Y3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9IGQucmVwbGFjZShp LCBjX3RtcCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2UgPSBtX2UucmVwbGFjZShpLCB0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGMubHQoZCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtX2UsIG0pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYywgZCksIGEpOwotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9 OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv c2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxl LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE4NCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgcG9ydGFi bGUgdmVjdG9yIHNodWZmbGVzIHdpdGggaW1tZWRpYXRlIGluZGljZXMuCi0tCi0tLy8gRklYTUU6 IGNvbXByZWhlbnNpdmUgdGVzdHMKLS0vLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIwCi0tCi0tLy8vIFNodWZmbGVzIHZlY3RvciBlbGVt ZW50cy4KLS0vLy8KLS0vLy8gVGhpcyBtYWNybyByZXR1cm5zIGEgbmV3IHZlY3RvciB0aGF0IGNv bnRhaW5zIGEgc2h1ZmZsZSBvZiB0aGUgZWxlbWVudHMgaW4KLS0vLy8gb25lIChgc2h1ZmZsZSEo dmVjLCBbaW5kaWNlcy4uLl0pYCkgb3IgdHdvIChgc2h1ZmZsZSEodmVjMCwgdmVjMSwKLS0vLy8g W2luZGljZXMuLi5dKWApIGlucHV0IHZlY3RvcnMuCi0tLy8vCi0tLy8vIFRoZSB0eXBlIG9mIGB2 ZWMwYCBhbmQgYHZlYzFgIG11c3QgYmUgZXF1YWwsIGFuZCB0aGUgZWxlbWVudCB0eXBlIG9mIHRo ZQotLS8vLyByZXN1bHRpbmcgdmVjdG9yIGlzIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIGlucHV0 IHZlY3Rvci4KLS0vLy8KLS0vLy8gVGhlIG51bWJlciBvZiBgaW5kaWNlc2AgbXVzdCBiZSBhIHBv d2VyLW9mLXR3byBpbiByYW5nZSBgWzAsIDY0KWAsIHNpbmNlCi0tLy8vIGN1cnJlbnRseSwgdGhl IGxhcmdlc3QgdmVjdG9yIHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeSBoYXMgNjQgbGFuZXMuIFRo ZQotLS8vLyBsZW5ndGggb2YgdGhlIHJlc3VsdGluZyB2ZWN0b3IgZXF1YWxzIHRoZSBudW1iZXIg b2YgaW5kaWNlcyBwcm92aWRlZC4KLS0vLy8KLS0vLy8gVGhlIGluZGljZXMgbXVzdCBiZSBpbiBy YW5nZSBgWzAsIE0gKiBOKWAgd2hlcmUgYE1gIGlzIHRoZSBudW1iZXIgb2YgaW5wdXQKLS0vLy8g dmVjdG9ycyAoYDFgIG9yIGAyYCkgYW5kIGBOYCBpcyB0aGUgbnVtYmVyIG9mIGxhbmVzIG9mIHRo ZSBpbnB1dCB2ZWN0b3JzLgotLS8vLyBUaGUgaW5kaWNlcyBgaWAgaW4gcmFuZ2UgYFswLCBOKWAg cmVmZXIgdG8gdGhlIGBpYC10aCBlbGVtZW50IG9mIGB2ZWMwYCwKLS0vLy8gd2hpbGUgdGhlIGlu ZGljZXMgaW4gcmFuZ2UgYFtOLCAyKk4pYCByZWZlciB0byB0aGUgYGkgLSBOYC10aCBlbGVtZW50 IG9mCi0tLy8vIGB2ZWMxYC4KLS0vLy8KLS0vLy8gIyBFeGFtcGxlcwotLS8vLwotLS8vLyBTaHVm ZmxpbmcgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnM6Ci0tLy8vCi0tLy8vIGBgYAotLS8vLyAjIHVz ZSBwYWNrZWRfc2ltZDo6KjsKLS0vLy8gIyBmbiBtYWluKCkgewotLS8vLyAvLyBTaHVmZmxlIGFs bG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50czoKLS0vLy8gbGV0IHggPSBpMzJ4NDo6bmV3KDEs IDIsIDMsIDQpOwotLS8vLyBsZXQgeSA9IGkzMng0OjpuZXcoNSwgNiwgNywgOCk7Ci0tLy8vIGxl dCByID0gc2h1ZmZsZSEoeCwgeSwgWzQsIDAsIDUsIDFdKTsKLS0vLy8gYXNzZXJ0X2VxIShyLCBp MzJ4NDo6bmV3KDUsIDEsIDYsIDIpKTsKLS0vLy8KLS0vLy8gLy8gVGhlIHJlc3VsdGluZyB2ZWN0 b3IgY2FuIGFscyBiZSBzbWFsbGVyIHRoYW4gdGhlIGlucHV0OgotLS8vLyBsZXQgciA9IHNodWZm bGUhKHgsIHksIFsxLCA2XSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDI6Om5ldygyLCA3KSk7 Ci0tLy8vCi0tLy8vIC8vIE9yIGxhcmdlcjoKLS0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCB5LCBb MSwgMywgNCwgMiwgMSwgNywgMiwgMl0pOwotLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng4OjpuZXco MiwgNCwgNSwgMywgMiwgOCwgMywgMykpOwotLS8vLyAvLyBBdCBtb3N0IDIgKiB0aGUgbnVtYmVy IG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2ZWN0b3IuCi0tLy8vICMgfQotLS8vLyBgYGAKLS0vLy8K LS0vLy8gU2h1ZmZsaW5nIGVsZW1lbnRzIG9mIG9uZSB2ZWN0b3I6Ci0tLy8vCi0tLy8vIGBgYAot LS8vLyAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLy8gIyBmbiBtYWluKCkgewotLS8vLyAvLyBT aHVmZmxlIGFsbG93cyByZW9yZGVyaW5nIHRoZSBlbGVtZW50cyBvZiBhIHZlY3RvcjoKLS0vLy8g bGV0IHggPSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgs IFsyLCAxLCAzLCAwXSk7Ci0tLy8vIGFzc2VydF9lcSEociwgaTMyeDQ6Om5ldygzLCAyLCA0LCAx KSk7Ci0tLy8vCi0tLy8vIC8vIFRoZSByZXN1bHRpbmcgdmVjdG9yIGNhbiBiZSBzbWFsbGVyIHRo YW4gdGhlIGlucHV0OgotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzXSk7Ci0tLy8vIGFz c2VydF9lcSEociwgaTMyeDI6Om5ldygyLCA0KSk7Ci0tLy8vCi0tLy8vIC8vIEVxdWFsOgotLS8v LyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzLCAyLCAwXSk7Ci0tLy8vIGFzc2VydF9lcSEociwg aTMyeDQ6Om5ldygyLCA0LCAzLCAxKSk7Ci0tLy8vCi0tLy8vIC8vIE9yIGxhcmdlcjoKLS0vLy8g bGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgMywgMiwgMiwgMSwgMywgMiwgMl0pOwotLS8vLyBhc3Nl cnRfZXEhKHIsIGkzMng4OjpuZXcoMiwgNCwgMywgMywgMiwgNCwgMywgMykpOwotLS8vLyAvLyBB dCBtb3N0IDIgKiB0aGUgbnVtYmVyIG9mIGxhbmVzIGluIHRoZSBpbnB1dCB2ZWN0b3IuCi0tLy8v ICMgfQotLS8vLyBgYGAKLS0jW21hY3JvX2V4cG9ydF0KLS1tYWNyb19ydWxlcyEgc2h1ZmZsZSB7 Ci0tICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRsMTpleHByXSkgPT4g e3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUgewot LSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3IyOjo8e1sk bDAsICRsMV19LCBfLCBfPigKLS0gICAgICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAg ICAgICAgJHZlYzEuMCwKLS0gICAgICAgICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0g ICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHBy LCAkbDM6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQotLSAg ICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZm bGVfdmVjdG9yNDo6PHtbJGwwLCAkbDEsICRsMiwgJGwzXX0sIF8sIF8+KAotLSAgICAgICAgICAg ICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAgICAgICAgICAgICkp Ci0tICAgICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKLS0g ICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKLS0gICAgICAkbDQ6 ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2Fs bG93KHVudXNlZF91bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3Jh dGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yODo6PHtbJGwwLCAkbDEsICRsMiwgJGwz LCAkbDQsICRsNSwgJGw2LCAkbDddfSwgXywgXz4oCi0tICAgICAgICAgICAgICAgICR2ZWMwLjAs Ci0tICAgICAgICAgICAgICAgICR2ZWMxLjAsCi0tICAgICAgICAgICAgKSkKLS0gICAgICAgIH0K LS0gICAgfX07Ci0tICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAotLSAgICAgWyRsMDpleHBy LCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAotLSAgICAgICRsNDpleHByLCAkbDU6ZXhw ciwgJGw2OmV4cHIsICRsNzpleHByLAotLSAgICAgICRsODpleHByLCAkbDk6ZXhwciwgJGwxMDpl eHByLCAkbDExOmV4cHIsCi0tICAgICAgJGwxMjpleHByLCAkbDEzOmV4cHIsICRsMTQ6ZXhwciwg JGwxNTpleHByXSkgPT4ge3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZs ZV92ZWN0b3IxNjo6PHsKLS0gICAgICAgICAgICAgICAgWwotLSAgICAgICAgICAgICAgICAgICAg JGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEwLAot LSAgICAgICAgICAgICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwKLS0gICAg ICAgICAgICAgICAgXQotLSAgICAgICAgICAgIH0sIF8sIF8+KAotLSAgICAgICAgICAgICAgICAk dmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAgICAgICAgICAgICkpCi0tICAg ICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKLS0gICAgIFsk bDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKLS0gICAgICAkbDQ6ZXhwciwg JGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwciwKLS0gICAgICAkbDg6ZXhwciwgJGw5OmV4cHIs ICRsMTA6ZXhwciwgJGwxMTpleHByLAotLSAgICAgICRsMTI6ZXhwciwgJGwxMzpleHByLCAkbDE0 OmV4cHIsICRsMTU6ZXhwciwKLS0gICAgICAkbDE2OmV4cHIsICRsMTc6ZXhwciwgJGwxODpleHBy LCAkbDE5OmV4cHIsCi0tICAgICAgJGwyMDpleHByLCAkbDIxOmV4cHIsICRsMjI6ZXhwciwgJGwy MzpleHByLAotLSAgICAgICRsMjQ6ZXhwciwgJGwyNTpleHByLCAkbDI2OmV4cHIsICRsMjc6ZXhw ciwKLS0gICAgICAkbDI4OmV4cHIsICRsMjk6ZXhwciwgJGwzMDpleHByLCAkbDMxOmV4cHJdKSA9 PiB7ewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjMyOjo8 ewotLSAgICAgICAgICAgICAgICBbCi0tICAgICAgICAgICAgICAgICAgICAkbDAsICRsMSwgJGwy LCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4LCAkbDksICRsMTAsCi0tICAgICAgICAgICAg ICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2LCAkbDE3LCAkbDE4LCAk bDE5LAotLSAgICAgICAgICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwyMiwgJGwyMywgJGwyNCwg JGwyNSwgJGwyNiwgJGwyNywgJGwyOCwKLS0gICAgICAgICAgICAgICAgICAgICRsMjksICRsMzAs ICRsMzEsCi0tICAgICAgICAgICAgICAgIF0KLS0gICAgICAgICAgICB9LCBfLCBfPigKLS0gICAg ICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0gICAgICAg ICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4 cHIsCi0tICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCi0tICAg ICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCi0tICAgICAgJGw4OmV4 cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRsMTE6ZXhwciwKLS0gICAgICAkbDEyOmV4cHIsICRs MTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4cHIsCi0tICAgICAgJGwxNjpleHByLCAkbDE3OmV4 cHIsICRsMTg6ZXhwciwgJGwxOTpleHByLAotLSAgICAgICRsMjA6ZXhwciwgJGwyMTpleHByLCAk bDIyOmV4cHIsICRsMjM6ZXhwciwKLS0gICAgICAkbDI0OmV4cHIsICRsMjU6ZXhwciwgJGwyNjpl eHByLCAkbDI3OmV4cHIsCi0tICAgICAgJGwyODpleHByLCAkbDI5OmV4cHIsICRsMzA6ZXhwciwg JGwzMTpleHByLAotLSAgICAgICRsMzI6ZXhwciwgJGwzMzpleHByLCAkbDM0OmV4cHIsICRsMzU6 ZXhwciwKLS0gICAgICAkbDM2OmV4cHIsICRsMzc6ZXhwciwgJGwzODpleHByLCAkbDM5OmV4cHIs Ci0tICAgICAgJGw0MDpleHByLCAkbDQxOmV4cHIsICRsNDI6ZXhwciwgJGw0MzpleHByLAotLSAg ICAgICRsNDQ6ZXhwciwgJGw0NTpleHByLCAkbDQ2OmV4cHIsICRsNDc6ZXhwciwKLS0gICAgICAk bDQ4OmV4cHIsICRsNDk6ZXhwciwgJGw1MDpleHByLCAkbDUxOmV4cHIsCi0tICAgICAgJGw1Mjpl eHByLCAkbDUzOmV4cHIsICRsNTQ6ZXhwciwgJGw1NTpleHByLAotLSAgICAgICRsNTY6ZXhwciwg JGw1NzpleHByLCAkbDU4OmV4cHIsICRsNTk6ZXhwciwKLS0gICAgICAkbDYwOmV4cHIsICRsNjE6 ZXhwciwgJGw2MjpleHByLCAkbDYzOmV4cHJdKSA9PiB7ewotLSAgICAgICAgI1thbGxvdyh1bnVz ZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgJGNyYXRlOjpTaW1k KCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjY0Ojo8e1sKLS0gICAgICAgICAgICAgICAgJGwwLCAk bDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEwLAotLSAgICAg ICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LCAkbDE2LCAkbDE3LCAkbDE4 LCAkbDE5LAotLSAgICAgICAgICAgICAgICAkbDIwLCAkbDIxLCAkbDIyLCAkbDIzLCAkbDI0LCAk bDI1LCAkbDI2LCAkbDI3LCAkbDI4LAotLSAgICAgICAgICAgICAgICAkbDI5LCAkbDMwLCAkbDMx LCAkbDMyLCAkbDMzLCAkbDM0LCAkbDM1LCAkbDM2LCAkbDM3LAotLSAgICAgICAgICAgICAgICAk bDM4LCAkbDM5LCAkbDQwLCAkbDQxLCAkbDQyLCAkbDQzLCAkbDQ0LCAkbDQ1LCAkbDQ2LAotLSAg ICAgICAgICAgICAgICAkbDQ3LCAkbDQ4LCAkbDQ5LCAkbDUwLCAkbDUxLCAkbDUyLCAkbDUzLCAk bDU0LCAkbDU1LAotLSAgICAgICAgICAgICAgICAkbDU2LCAkbDU3LCAkbDU4LCAkbDU5LCAkbDYw LCAkbDYxLCAkbDYyLCAkbDYzLAotLSAgICAgICAgICAgIF19LCBfLCBfPigKLS0gICAgICAgICAg ICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0gICAgICAgICAgICAp KQotLSAgICAgICAgfQotLSAgICAgfX07Ci0tICAgICgkdmVjOmV4cHIsIFskKCRsOmV4cHIpLCpd KSA9PiB7Ci0tICAgICAgICBtYXRjaCAkdmVjIHsKLS0gICAgICAgICAgICB2ID0+IHNodWZmbGUh KHYsIHYsIFskKCRsKSwqXSkKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUxX2R5bi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1OSArMCwwIEBACi0tLy8hIFNodWZmbGUgdmVjdG9yIGVs ZW1lbnRzIGFjY29yZGluZyB0byBhIGR5bmFtaWMgdmVjdG9yIG9mIGluZGljZXMuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBp bXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFNodWZmbGUgdmVjdG9yIGVsZW1lbnRzIGFjY29y ZGluZyB0byBgaW5kaWNlc2AuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIHNodWZmbGUxX2R5bjxJPihzZWxmLCBpbmRpY2VzOiBJKSAtPiBTZWxmCi0tICAgICAg ICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgU2VsZjogY29kZWdlbjo6c2h1ZmZsZTFfZHlu OjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4sCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluOjpzaHVmZmxlMV9keW4oc2Vs ZiwgaW5kaWNlcykKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQot LW1hY3JvX3J1bGVzISB0ZXN0X3NodWZmbGUxX2R5biB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGluY3JlYXNpbmcgPSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIGkgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWNy ZWFzaW5nID0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6 OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg diA9IHYucmVwbGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6OmxhbmVzKCkgLSAxIC0g aSkgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dgotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZSBJbmRpY2VzID0gPAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQgYXMg Y29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA+OjpJbmRpY2VzOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmNyZWFz aW5nX2lkczogSW5kaWNlcyA9IGluY3JlYXNpbmcuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBkZWNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGRlY3JlYXNpbmcuY2FzdCgpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGluY3JlYXNpbmdfaWRzKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIihpLGkpPT5pIgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oaW5jcmVhc2luZ19pZHMpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiKGQsaSk9PmQiCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlY3JlYXNpbmcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICIo aSxkKT0+ZCIKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNp bmcuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5jcmVhc2luZywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIihkLGQpPT5p IgotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZfaWRzOiBJbmRpY2VzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9 ICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKHZfaWRzKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGluY3JlYXNpbmcu ZXh0cmFjdChpKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShkZWNyZWFzaW5nLnNodWZmbGUxX2R5bih2X2lk cyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChk ZWNyZWFzaW5nLmV4dHJhY3QoaSkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5bihpbmNyZWFzaW5nX2lkcyksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9zaHVmZmxlMV9keW5fbWFzayB7Ci0t ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0 OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRpbmcgPSBbdHJ1ZSwgZmFsc2UsIHRy dWUsIGZhbHNlLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbHRlcm5h dGluZyA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg JSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcg PSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlk IGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW4KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPjo6SW5kaWNlczsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVu ID0gWzAsIDAsIDIsIDIsIDQsIDQsIC4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl dmVuID0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBJbmRpY2Vz OjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09 IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uo aSwgKGkgYXMgdTgpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxh Y2UoaSwgKGkgYXMgdTggLSAxKS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1LCA1LCAuLi5dCi0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG9kZCA9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsgMSkuaW50bygpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9keW4oZXZlbiksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQodHJ1ZSkKLS0gICAgICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+ IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZsZTFfZHluKG9kZCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGZhbHNlKQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwyMDIgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIG1ldGhvZHMg dG8gcmVhZCBhIHZlY3RvciB0eXBlIGZyb20gYSBzbGljZS4KLS0KLS1tYWNyb19ydWxlcyEgaW1w bF9zbGljZV9mcm9tX3NsaWNlIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7 Ci0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFs dWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAj IFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVu KCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAgICAg ICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9zbGljZV9hbGlnbmVkKHNs aWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsK LS0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCk7Ci0t ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNy YXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOwotLSAgICAgICAgICAgICAgICAgICAg U2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEg bmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZChzbGlj ZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0t ICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQo c2xpY2UpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBg c2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjps YW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAgICAgICAgICAgIC8vLyB0 byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzIHVuZGVm aW5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZu IGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9j b3VudCk7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCk7 Ci0tICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEodGFyZ2V0X3B0ci5hbGlnbl9vZmZz ZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7Ci0tCi0tICAgICAgICAgICAg ICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAg ICAqKHRhcmdldF9wdHIgYXMgKmNvbnN0IFNlbGYpCi0tICAgICAgICAgICAgfQotLQotLSAgICAg ICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0 aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkK LS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2Vs Zjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX3Vu Y2hlY2tlZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShz bGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRf cHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQgbXV0IHgg PSBTZWxmOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgbGV0IHNlbGZf cHRyID0gJm11dCB4IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4OwotLSAgICAgICAgICAgICAgICBj cmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHRhcmdldF9wdHIsIHNlbGZfcHRyLCBzaXpl X29mOjo8U2VsZj4oKSk7Ci0tICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0t ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNv bnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAg ICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9zbGljZV9mcm9tX3NsaWNlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVyOjpJdGVyYXRv cjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMoKSArIDFdOwot LSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFswXSA9IDAgYXMgJGVsZW1fdHk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6ZnJvbV9zbGljZV91bmFsaWdu ZWQoJnVuYWxpZ25lZFsxLi5dKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4 LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRn ZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAg ICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBm biBmcm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCkgKyAxXTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRbMF0gPSAwIGFzICRlbGVtX3R5Owot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5vdWdo ID0+IHBhbmljCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSAkaWQ6OmZyb21f c2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMi4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIF92ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGlj ZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9 IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsg MiAqICRpZDo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAkaWQ6OmxhbmVzKCkuLigyICogJGlkOjpsYW5lcygp KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbGlnbmVkLmRhdGFbaV0gPSA0MiBhcyAkZWxlbV90eTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNlX2FsaWduZWQoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRhWyRpZDo6bGFuZXMoKS4uXQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUo KSB9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPCAkaWQ6OmxhbmVz KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRleCAtICRpZDo6 bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1i aW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0K LS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZyb21fc2xpY2VfYWxpZ25lZCgK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFbMiAqICRpZDo6 bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hv dWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAg ICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9hbGln bigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBwdHI6ICpjb25zdCAkZWxlbV90eSA9IGFsaWduZWQuZGF0YS5hc19w dHIoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0ICRlbGVtX3R5 OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUg ZWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBw aW5nX2FkZCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWdu X29mZnNldCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OmFs aWduX29mOjo8JGlkPigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPT0gMCB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJs eSBhbGlnbmVkLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbV9z bGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0aGlzCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3ZSBwYW5pYyB0 byBtYWtlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgInNob3VsZF9m YWlsIiB0ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5pYyEo Im9rIik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUsIGJlY2F1c2Ug dGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9mIHRoZSBzbGlj ZSBleGlzdCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlu aXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHM6ICZbJGVsZW1fdHldID0gc2xpY2U6OmZyb21fcmF3X3BhcnRzKAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OmxhbmVzKCkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhp cyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxpZ25tZW50Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3IgdGhlIHZlY3Rv ciB0eXBlOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9ICRpZDo6ZnJv bV9zbGljZV9hbGlnbmVkKHMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2UucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTk2ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 cyBtZXRob2RzIHRvIHdyaXRlIGEgdmVjdG9yIHR5cGUgdG8gYSBzbGljZS4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAg ICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUg dmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2Uu bGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QKLS0gICAgICAgICAg ICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfYWxp Z25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVt X2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNf bXV0X3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFs aWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKLS0gICAgICAg ICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2Up OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfdW5h bGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVs ZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV91bmFs aWduZWRfdW5jaGVja2VkKHNsaWNlKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0 byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZl dHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwg U2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90Ci0tICAgICAgICAgICAgLy8vIGFs aWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRoZSBiZWhhdmlvciBp cwotLSAgICAgICAgICAgIC8vLyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tl ZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAgICAgICAgICAgIGRlYnVn X2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICBs ZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKLS0gICAgICAgICAgICAgICAgZGVi dWdfYXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9v Zjo6PFNlbGY+KCkpLCAwKTsKLS0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNh c3RfcHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0 X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9w dHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRy X2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICoodGFyZ2V0X3B0ciBhcyAqbXV0IFNlbGYp ID0gc2VsZjsKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUg dmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRl ZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBm biB3cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNlbGYsIHNsaWNlOiAmbXV0IFsk ZWxlbV90eV0pIHsKLS0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+ PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2Uu YXNfbXV0X3B0cigpLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJnNl bGYgYXMgKmNvbnN0IFNlbGYgYXMgKmNvbnN0IHU4OwotLSAgICAgICAgICAgICAgICBjcmF0ZTo6 cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHNlbGZfcHRyLCB0YXJnZXRfcHRyLCBjcmF0ZTo6bWVt OjpzaXplX29mOjo8U2VsZj4oKSk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAg ICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2Vy IGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICAgICAjW2FsbG93 KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xp Y2Vfd3JpdGVfdG9fc2xpY2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOwotLQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0 ZV90b19zbGljZV91bmFsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpICsgMV07Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11 dCB1bmFsaWduZWRbMS4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwg JmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2Vu LXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAg ICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAg ICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4g d3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpICsgMV07 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFs aWduZWQoJm11dCB1bmFsaWduZWRbMi4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBk YXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIF92ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2Vf YWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBB IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIg KiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbJGlkOjpsYW5lcygpLi5dCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaWR4 LCAmYikgaW4gYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpZHggPCAkaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0KGlkeCAtICRpZDo6 bGFuZXMoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMg bm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAg ICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3Ns aWNlX2FsaWduZWRfZmFpbF9sYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAg YXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAg IH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbMiAqICRpZDo6bGFuZXMo KS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAg ICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3Bh bmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAg ICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0t ICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24o KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250IG9mIGRhdGEKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHB0cjogKm11dCAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSBhbGlnbmVkLmRhdGEuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1f dHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBwb2ludGVyIGJ5IG9u ZSBlbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBwdHIud3Jh cHBpbmdfYWRkKDEpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwdHIuYWxp Z25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPigpKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhl cmUgKGUuZy4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FuIGhh cHBlbiBmb3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG1ha2UgdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFuaWMhKCJvayIpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBh IHNsaWNlIC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRoZQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFs aWduZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiAmbXV0IFskZWxlbV90 eV0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc2xpY2U6OmZyb21fcmF3X3Bh cnRzX211dChwdHIsICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdu bWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVudHMgZm9yIHRo ZSB2ZWN0b3IgdHlwZToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRp ZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9zbGljZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL3NsaWNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcgKzAsMCBAQAotLS8vISBTbGlj ZSBmcm9tL3RvIG1ldGhvZHMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZnJvbV9zbGljZTsKLS0K LS0jW21hY3JvX3VzZV0KLS1tb2Qgd3JpdGVfdG9fc2xpY2U7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9ieXRlcy5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9zd2FwX2J5dGVzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxOTIgKzAsMCBAQAotLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0ZXMKLS0KLS1tYWNy b19ydWxlcyEgaW1wbF9zd2FwX2J5dGVzIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBs ICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldmVyc2VzIHRoZSBieXRlIG9yZGVyIG9mIHRoZSB2 ZWN0b3IuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHN3YXBf Ynl0ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVyOjpjb2RlZ2VuOjpz d2FwX2J5dGVzOjpTd2FwQnl0ZXM6OnN3YXBfYnl0ZXMoc2VsZikKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIENvbnZlcnRzIHNlbGYgdG8gbGl0dGxlIGVuZGlhbiBmcm9tIHRo ZSB0YXJnZXQncyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVuZGlhbiB0aGUgYnl0 ZXMgYXJlCi0tICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIHRvX2xlKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQotLSAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQotLSAgICAgICAg ICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLnN3YXBfYnl0ZXMoKQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb252ZXJ0 cyBzZWxmIHRvIGJpZyBlbmRpYW4gZnJvbSB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlhbiB0aGlzIGlzIGEgbm8t b3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAgICAgICAgIC8vLyBzd2Fw cGVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB0b19iZShz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJi aWciKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgc2VsZgotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFu ID0gImJpZyIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zd2FwX2J5dGVzKCkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAvLy8gQ29udmVydHMgYSB2ZWN0b3IgZnJvbSBsaXR0bGUgZW5kaWFuIHRvIHRo ZSB0YXJnZXQncyBlbmRpYW5uZXNzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVuZGlhbiB0aGUgYnl0 ZXMgYXJlCi0tICAgICAgICAgICAgLy8vIHN3YXBwZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIGZyb21fbGUoeDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCi0tICAgICAgICAgICAg ICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCi0tICAgICAg ICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHguc3dhcF9ieXRlcygpCi0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnZlcnRz IGEgdmVjdG9yIGZyb20gYmlnIGVuZGlhbiB0byB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlhbiB0aGlzIGlzIGEg bm8tb3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAgICAgICAgIC8vLyBz d2FwcGVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9t X2JlKHg6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5k aWFuID0gImJpZyIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB4 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9l bmRpYW4gPSAiYmlnIikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAg ICB4LnN3YXBfYnl0ZXMoKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX3N3YXBfYnl0ZXM+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICBjb25zdCBCWVRFUzogW3U4OyA2NF0gPSBbCi0tICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgICAgICAg ICAgICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICAgICAgICAgICAg ICAgICAgICAgIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywKLS0gICAgICAgICAgICAg ICAgICAgICAgICAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAotLSAgICAgICAgICAg ICAgICAgICAgICAgIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywKLS0gICAgICAgICAg ICAgICAgICAgICAgICA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAotLSAgICAgICAg ICAgICAgICAgICAgXTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVzISBzd2Fw IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAoJGZ1bmM6IGlkZW50KSA9PiB7ewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXRjaCBwb3NzaWJsZSBmdXR1cmUgPjUxMiB2ZWN0 b3JzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobWVtOjpzaXplX29mOjo8 JGlkPigpIDw9IDY0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh Y3R1YWwgPSBCWVRFUzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1zOiAm bXV0IFskZWxlbV90eV0gPSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhY3R1YWwuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owot LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpmcm9tX3NsaWNl X3VuYWxpZ25lZChlbGVtcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6JGZ1 bmModmVjKS53cml0ZV90b19zbGljZV91bmFsaWduZWQoZWxlbXMpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY3R1YWwKLS0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVz ISB0ZXN0X3N3YXAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+ IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBzd2FwISgkZnVu Yyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCWVRFUy5pdGVyKCkucmV2KCkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC5za2lwKDY0IC0gY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRp ZD4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYWN0dWFsLml0ZXIo KS56aXAoZXhwZWN0ZWQpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFs bCh8KHgsIHkpfCB4ID09IHkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVzISB0 ZXN0X25vX3N3YXAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+ IHt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBzd2FwISgkZnVu Yyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IEJZVEVTLml0 ZXIoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRha2UobWVtOjpzaXplX29m Ojo8JGlkPigpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhY3R1 YWwuaXRlcigpLnppcChleHBlY3RlZCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAuYWxsKHwoeCwgeSl8IHggPT0geSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH19 OwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIHN3YXBfYnl0ZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zd2Fw IShzd2FwX2J5dGVzKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICBmbiB0b19sZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQotLSAgICAgICAgICAgICAgICAgICAgICAg IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2FwISh0b19sZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEodG9fbGUpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB0b19iZSgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQotLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2FwISh0b19i ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg ICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEodG9fYmUpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX2xlKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCi0tICAgICAgICAg ICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3 YXAhKGZyb21fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCi0tICAgICAg ICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3 YXAhKGZyb21fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX2JlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIild Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X25vX3N3YXAhKGZyb21fYmUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSld Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X3N3YXAhKGZyb21fYmUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMzA4ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB0aGUgU2ltZDxbVDsgTl0+IEFQSXMK LS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgYml0bWFzazsKLS1wdWIoY3JhdGUpIG1vZCBjYXN0Owot LSNbbWFjcm9fdXNlXQotLW1vZCBjbXA7Ci0tI1ttYWNyb191c2VdCi0tbW9kIGRlZmF1bHQ7Ci0t I1ttYWNyb191c2VdCi0tbW9kIGZtdDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgZnJvbTsKLS0jW21h Y3JvX3VzZV0KLS1tb2QgaGFzaDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgbWF0aDsKLS0jW21hY3Jv X3VzZV0KLS1tb2QgbWluaW1hbDsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgb3BzOwotLSNbbWFjcm9f dXNlXQotLW1vZCBwdHI7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHJlZHVjdGlvbnM7Ci0tI1ttYWNy b191c2VdCi0tbW9kIHNlbGVjdDsKLS0jW21hY3JvX3VzZV0KLS1tb2Qgc2h1ZmZsZTsKLS0jW21h Y3JvX3VzZV0KLS1tb2Qgc2h1ZmZsZTFfZHluOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzbGljZTsK LS0jW21hY3JvX3VzZV0KLS1tb2Qgc3dhcF9ieXRlczsKLS0jW21hY3JvX3VzZV0KLS1tb2QgYml0 X21hbmlwOwotLQotLSNbY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIildCi0tcHViKGNyYXRlKSBt b2QgaW50b19iaXRzOwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2kgewotLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50Ci0t ICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQg fCAkKCRlbGVtX2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVu dCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9pdWYh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSop OwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9hcml0 aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX29wc192ZWN0b3JfYml0d2lzZSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKLS0g ICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfYml0d2lzZSEoCi0tICAgICAgICAg ICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRl bGVtX3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3Jfc2hpZnRz IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBp bXBsX29wc19zY2FsYXJfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3Jfcm90YXRlcyEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9y X25lZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAg ICAgaW1wbF9vcHNfdmVjdG9yX2ludF9taW5fbWF4ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGlt cGxfcmVkdWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICk7 Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKLS0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAgICAg KTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAotLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAg ICAgICAgfCAofHh8eyB4IGFzICRlbGVtX3R5IH0pIHwgKCEoMCBhcyAkZWxlbV90eSksIDApCi0t ICAgICAgICApOwotLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X2xvd2VyX2hleCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9m bXRfdXBwZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICBpbXBsX2ZtdF9vY3RhbCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfYmluYXJ5IShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Zyb21fYXJyYXkhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEsIDEpKTsKLS0gICAg ICAgIGltcGxfZnJvbV92ZWN0b3JzISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5KSwqCi0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2hhc2ghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9zbGljZSEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zbGlj ZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zaHVmZmxlMV9k eW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfY21wX3BhcnRpYWxfZXEhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpCi0tICAgICAgICApOwotLSAgICAgICAgaW1w bF9jbXBfZXEhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAs IDEpKTsKLS0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKLS0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwgKDEsIDApIHwgJHRlc3Rf dHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9jbXBfb3Jk IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7Ci0t ICAgICAgICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICgtMSwgMCkg fCAkdGVzdF90dCk7Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNrX3R5 LCAkdHVwbGVfaWQsICgxLCAyKSB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIHRlc3RfY21wX3BhcnRp YWxfb3JkX2ludCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF91IHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFz a190eTppZGVudAotLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQsICRpYml0bWFza190eTppZGVudCB8 ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwgRnJvbTogJCgkZnJv bV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICBpbXBs X21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkg fCAkdGVzdF90dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyksKiB8 ICQoI1skZG9jXSkqKTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX29w c19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2JpdHdpc2UhKAotLSAgICAgICAgICAg IFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxl bV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2JpdHdpc2Uh KAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNf dmVjdG9yX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3JvdGF0ZXMh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3Jl ZHVjdGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAg ICAgICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0t ICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAgICAgICAg IHwgKHx4fHsgeCBhcyAkZWxlbV90eSB9KSB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQotLSAgICAg ICAgKTsKLS0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9sb3dlcl9oZXghKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X3Vw cGVyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAg ICAgICAgaW1wbF9mbXRfb2N0YWwhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X2JpbmFyeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mcm9tX2FycmF5IShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAxKSk7Ci0tICAgICAgICBp bXBsX2Zyb21fdmVjdG9ycyEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgotLSAgICAgICAgKTsKLS0gICAg ICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOwotLSAgICAgICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2xpY2Vfd3Jp dGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK LS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X2NtcF9wYXJ0aWFsX2VxISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICgxLCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfY21w X2VxIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7 Ci0tICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLCAwKSB8ICR0ZXN0X3R0Ci0t ICAgICAgICApOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfY21wX29yZCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOwotLSAgICAg ICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAoJGllbGVtX3R5Ojpt YXhfdmFsdWUoKSwgMCkgfAotLSAgICAgICAgICAgICAgICAgICAgICAkdGVzdF90dCk7Ci0tCi0t ICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNrX3R5LCAkdHVwbGVfaWQsICgxLCAy KSB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIHRlc3RfY21wX3BhcnRpYWxfb3JkX2ludCEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgdGVzdF9zaHVm ZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0g ICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mIHsKLS0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudAotLSAgICAg fCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCi0t ICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikg PT4gewotLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICAgICAgICAgICAgICAg IHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7Ci0tICAgICAgICBpbXBsX29wc192ZWN0 b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9uZWch KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfb3BzX3ZlY3Rvcl9mbG9hdF9taW5fbWF4ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxf cmVkdWN0aW9uX2Zsb2F0X2FyaXRobWV0aWMhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX21p bl9tYXghKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRp ZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9mbXRfZGVidWch KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQg fCAoMS4sIDEuKSk7Ci0tICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCi0tICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190 eSksKgotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9l cSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQgfCAoMS4sIDAuKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9zbGlj ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9zbGljZV93cml0ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0KLS0gICAgICAgIGltcGxfZmxvYXRfY29u c3RzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQpOwotLSAgICAgICAgaW1wbF9mbG9h dF9jYXRlZ29yeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSk7Ci0t Ci0tICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBtYXRoCi0tICAgICAgICBpbXBsX21hdGhfZmxv YXRfYWJzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX21hdGhfZmxvYXRfY29zIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfZXhwIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRf bG4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfbWF0aF9mbG9hdF9tdWxfYWRkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfbXVsX2FkZGUhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9m bG9hdF9wb3dmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0t ICAgICAgICBpbXBsX21hdGhfZmxvYXRfcmVjcHJlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfcnNxcnRlIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX21h dGhfZmxvYXRfc2luIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfc3FydCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NxcnRlIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Nt cF92ZXJ0aWNhbCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk LCAkbWFza190eSwgZmFsc2UsICgxLiwgMC4pCi0tICAgICAgICAgICAgICAgIHwgJHRlc3RfdHQK LS0gICAgICAgICk7Ci0tCi0tICAgICAgICB0ZXN0X3NlbGVjdCEoJGVsZW1fdHksICRtYXNrX3R5 LCAkdHVwbGVfaWQsICgxLiwgMi4pIHwgJHRlc3RfdHQpOwotLSAgICAgICAgdGVzdF9yZWR1Y3Rp b25fZmxvYXRfbWluX21heCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICB0ZXN0X3NodWZmbGUxX2R5 biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICB9Ci0t fQotLQotLW1hY3JvX3J1bGVzISBpbXBsX20gewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5OmlkZW50LCAkaWJp dG1hc2tfdHk6aWRlbnQKLS0gICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCks KiB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqCi0tICAgICB8ICQoI1skZG9jOm1ldGFd KSopID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9tYXNrISgKLS0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAg ICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKgotLSAgICAgICAgKTsKLS0gICAg ICAgIGltcGxfb3BzX3ZlY3Rvcl9tYXNrX2JpdHdpc2UhKAotLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZhbHNlKQotLSAgICAg ICAgKTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2UhKAotLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRydWUsIGZh bHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAotLSAg ICAgICAgICAgIFtib29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3Rf dHQKLS0gICAgICAgICAgICAgICAgfCAofHh8eyB4ICE9IDAgfSkgfCAodHJ1ZSwgZmFsc2UpCi0t ICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWFzayEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFti b29sOyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mcm9t X2FycmF5ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dAotLSAgICAgICAgICAgIHwgKGNyYXRlOjokZWxlbV90eTo6bmV3KHRydWUpLCB0cnVl KQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKLS0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVj X3R5KSwqCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9kZWZhdWx0IShbYm9vbDsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfZXEh KAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 IHwgKHRydWUsIGZhbHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfY21wX2VxISgKLS0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0 cnVlLCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCi0t ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkdHVwbGVfaWQsIHRy dWUsICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICAgICB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9zZWxlY3QhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2NtcF9vcmQhKAotLSAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKGZh bHNlLCB0cnVlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Jp dG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICh0cnVlLCBmYWxzZSkgfCAkdGVzdF90 dCk7Ci0tCi0tICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9tYXNrIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICB0ZXN0X3NodWZmbGUxX2R5 bl9tYXNrIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg IH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfY29uc3RfcCB7Ci0tICAgIChbJGVsZW1fdHk6 dHk7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQsCi0tICAg ICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTppZGVudAotLSAgICAgfCAkdGVzdF90dDp0dCB8 ICQoJGVsZW1faWRzOmlkZW50KSwqCi0tICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50 KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAgICAgICAgaW1wbF9taW5pbWFsX3AhKAot LSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksICR1 c2l6ZV90eSwgJGlzaXplX3R5Ci0tICAgICAgICAgICAgICAgIHwgcmVmXyB8ICR0ZXN0X3R0IHwg JCgkZWxlbV9pZHMpLCoKLS0gICAgICAgICAgICAgICAgfCAoMSBhcyAkZWxlbV90eSwgMCBhcyAk ZWxlbV90eSkgfCAkKCNbJGRvY10pKgotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcHRyX3Jl YWQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90dCk7 Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbXV0X3AgewotLSAgICAoWyRlbGVt X3R5OnR5OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50LAot LSAgICAgJHVzaXplX3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQKLS0gICAgIHwgJHRlc3RfdHQ6 dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTpp ZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9w ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5 LCAkdXNpemVfdHksICRpc2l6ZV90eQotLSAgICAgICAgICAgICAgICB8IHJlZl9tdXRfIHwgJHRl c3RfdHQgfCAkKCRlbGVtX2lkcyksKgotLSAgICAgICAgICAgICAgICB8ICgxIGFzICRlbGVtX3R5 LCAwIGFzICRlbGVtX3R5KSB8ICQoI1skZG9jXSkqCi0tICAgICAgICApOwotLSAgICAgICAgaW1w bF9wdHJfcmVhZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSB8ICR0 ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfcHRyX3dyaXRlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vYml0X21hbmlwLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9iaXRfbWFuaXAucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vYml0X21hbmlwLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzQ3ICswLDAgQEAKLS0vLyEgTExWTSBiaXQgbWFu aXB1bGF0aW9uIGludHJpbnNpY3MuCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLXB1YihjcmF0ZSkg dXNlIGNyYXRlOjoqOwotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzLCBkZWFkX2NvZGUpXQot LWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpOCJdCi0tICAg IGZuIGN0bHpfdTh4Mih4OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpOCJdCi0tICAgIGZuIGN0bHpfdTh4NCh4OiB1 OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjhpOCJdCi0tICAgIGZuIGN0bHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3VuZGVm OiBib29sKSAtPiB1OHg4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTgiXQot LSAgICBmbiBjdGx6X3U4eDE2KHg6IHU4eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgx NjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYzMmk4Il0KLS0gICAgZm4gY3Rsel91 OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MzI7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uY3Rsei52NjRpOCJdCi0tICAgIGZuIGN0bHpfdTh4NjQoeDogdTh4NjQs IGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDY0OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjJpMTYiXQotLSAgICBmbiBjdGx6X3UxNngyKHg6IHUxNngyLCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MTZ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTE2 Il0KLS0gICAgZm4gY3Rsel91MTZ4NCh4OiB1MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4g dTE2eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGkxNiJdCi0tICAgIGZuIGN0 bHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng4OwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTE2Il0KLS0gICAgZm4gY3Rsel91MTZ4MTYoeDog dTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0uY3Rsei52MzJpMTYiXQotLSAgICBmbiBjdGx6X3UxNngzMih4OiB1MTZ4MzIsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngzMjsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnYyaTMyIl0KLS0gICAgZm4gY3Rsel91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGkzMiJd Ci0tICAgIGZuIGN0bHpfdTMyeDQoeDogdTMyeDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUz Mng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpMzIiXQotLSAgICBmbiBjdGx6 X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4ODsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jdGx6LnYxNmkzMiJdCi0tICAgIGZuIGN0bHpfdTMyeDE2KHg6IHUz MngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDE2OwotLQotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0bHoudjJpNjQiXQotLSAgICBmbiBjdGx6X3U2NHgyKHg6IHU2NHgyLCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6 LnY0aTY0Il0KLS0gICAgZm4gY3Rsel91NjR4NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52OGk2NCJdCi0tICAg IGZuIGN0bHpfdTY0eDgoeDogdTY0eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4Owot LQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjFpMTI4Il0KLS0gICAgZm4gY3Rsel91 MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDE7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rsei52MmkxMjgiXQotLSAgICBmbiBjdGx6X3UxMjh4Mih4OiB1 MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsKLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdGx6LnY0aTEyOCJdCi0tICAgIGZuIGN0bHpfdTEyOHg0KHg6IHUxMjh4NCwgaXNf emVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0dHoudjJpOCJdCi0tICAgIGZuIGN0dHpfdTh4Mih4OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBi b29sKSAtPiB1OHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpOCJdCi0tICAg IGZuIGN0dHpfdTh4NCh4OiB1OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg0OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpOCJdCi0tICAgIGZuIGN0dHpfdTh4OCh4OiB1 OHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0dHoudjE2aTgiXQotLSAgICBmbiBjdHR6X3U4eDE2KHg6IHU4eDE2LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1OHgxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYzMmk4 Il0KLS0gICAgZm4gY3R0el91OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4g dTh4MzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NjRpOCJdCi0tICAgIGZuIGN0 dHpfdTh4NjQoeDogdTh4NjQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDY0OwotLQotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpMTYiXQotLSAgICBmbiBjdHR6X3UxNngyKHg6 IHUxNngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MjsKLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHR6LnY0aTE2Il0KLS0gICAgZm4gY3R0el91MTZ4NCh4OiB1MTZ4NCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTE2eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52 OGkxNiJdCi0tICAgIGZuIGN0dHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHUxNng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTE2Il0KLS0gICAg Zm4gY3R0el91MTZ4MTYoeDogdTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MzJpMTYiXQotLSAgICBmbiBjdHR6X3Ux NngzMih4OiB1MTZ4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngzMjsKLS0KLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTMyIl0KLS0gICAgZm4gY3R0el91MzJ4Mih4OiB1 MzJ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDI7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3R0ei52NGkzMiJdCi0tICAgIGZuIGN0dHpfdTMyeDQoeDogdTMyeDQsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHUzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhp MzIiXQotLSAgICBmbiBjdHR6X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1MzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxNmkzMiJdCi0tICAgIGZu IGN0dHpfdTMyeDE2KHg6IHUzMngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDE2Owot LQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpNjQiXQotLSAgICBmbiBjdHR6X3U2 NHgyKHg6IHU2NHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdHR6LnY0aTY0Il0KLS0gICAgZm4gY3R0el91NjR4NCh4OiB1NjR4NCwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0u Y3R0ei52OGk2NCJdCi0tICAgIGZuIGN0dHpfdTY0eDgoeDogdTY0eDgsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHU2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjFpMTI4 Il0KLS0gICAgZm4gY3R0el91MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1MTI4eDE7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MmkxMjgiXQotLSAgICBm biBjdHR6X3UxMjh4Mih4OiB1MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTEyOCJdCi0tICAgIGZuIGN0dHpfdTEy OHg0KHg6IHUxMjh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0OwotLQotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTgiXQotLSAgICBmbiBjdHBvcF91OHgyKHg6IHU4 eDIpIC0+IHU4eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpOCJdCi0tICAg IGZuIGN0cG9wX3U4eDQoeDogdTh4NCkgLT4gdTh4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdHBvcC52OGk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4OCh4OiB1OHg4KSAtPiB1OHg4OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxNmk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4MTYo eDogdTh4MTYpIC0+IHU4eDE2OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYzMmk4 Il0KLS0gICAgZm4gY3Rwb3BfdTh4MzIoeDogdTh4MzIpIC0+IHU4eDMyOwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0cG9wLnY2NGk4Il0KLS0gICAgZm4gY3Rwb3BfdTh4NjQoeDogdTh4NjQp IC0+IHU4eDY0OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTE2Il0KLS0g ICAgZm4gY3Rwb3BfdTE2eDIoeDogdTE2eDIpIC0+IHUxNngyOwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0cG9wLnY0aTE2Il0KLS0gICAgZm4gY3Rwb3BfdTE2eDQoeDogdTE2eDQpIC0+IHUx Nng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTE2Il0KLS0gICAgZm4gY3Rw b3BfdTE2eDgoeDogdTE2eDgpIC0+IHUxNng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 cG9wLnYxNmkxNiJdCi0tICAgIGZuIGN0cG9wX3UxNngxNih4OiB1MTZ4MTYpIC0+IHUxNngxNjsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MzJpMTYiXQotLSAgICBmbiBjdHBvcF91 MTZ4MzIoeDogdTE2eDMyKSAtPiB1MTZ4MzI7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0u Y3Rwb3AudjJpMzIiXQotLSAgICBmbiBjdHBvcF91MzJ4Mih4OiB1MzJ4MikgLT4gdTMyeDI7Ci0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpMzIiXQotLSAgICBmbiBjdHBvcF91MzJ4 NCh4OiB1MzJ4NCkgLT4gdTMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3Audjhp MzIiXQotLSAgICBmbiBjdHBvcF91MzJ4OCh4OiB1MzJ4OCkgLT4gdTMyeDg7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTMyIl0KLS0gICAgZm4gY3Rwb3BfdTMyeDE2KHg6IHUz MngxNikgLT4gdTMyeDE2OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTY0 Il0KLS0gICAgZm4gY3Rwb3BfdTY0eDIoeDogdTY0eDIpIC0+IHU2NHgyOwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0cG9wLnY0aTY0Il0KLS0gICAgZm4gY3Rwb3BfdTY0eDQoeDogdTY0eDQp IC0+IHU2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTY0Il0KLS0gICAg Zm4gY3Rwb3BfdTY0eDgoeDogdTY0eDgpIC0+IHU2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0cG9wLnYxaTEyOCJdCi0tICAgIGZuIGN0cG9wX3UxMjh4MSh4OiB1MTI4eDEpIC0+ IHUxMjh4MTsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MmkxMjgiXQotLSAgICBm biBjdHBvcF91MTI4eDIoeDogdTEyOHgyKSAtPiB1MTI4eDI7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rwb3AudjRpMTI4Il0KLS0gICAgZm4gY3Rwb3BfdTEyOHg0KHg6IHUxMjh4NCkgLT4g dTEyOHg0OwotLX0KLS0KLS1wdWIoY3JhdGUpIHRyYWl0IEJpdE1hbmlwIHsKLS0gICAgZm4gY3Rw b3Aoc2VsZikgLT4gU2VsZjsKLS0gICAgZm4gY3RseihzZWxmKSAtPiBTZWxmOwotLSAgICBmbiBj dHR6KHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2JpdF9tYW5pcCB7 Ci0tICAgIChpbm5lcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5LCAkdXR5OmlkZW50LAotLSAgICAg JGN0cG9wOmlkZW50LCAkY3RsejppZGVudCwgJGN0dHo6aWRlbnQpID0+IHsKLS0gICAgICAgIC8v IEZJWE1FOiBzZXZlcmFsIExMVk0gaW50cmluc2ljcyBicmVhayBvbiBzMzkweCBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5MgotLSAgICAg ICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KLS0gICAgICAgIGltcGxfYml0X21hbmlw ISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0KLS0gICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJzMzkweCIpKV0KLS0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0eSB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICAgICAg ICAgIHVuc2FmZSB7ICRjdHBvcCh5KS5jYXN0KCkgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOwotLSAgICAgICAgICAg ICAgICAvLyB0aGUgY3R4eCBpbnRyaW5zaWNzIG5lZWQgY29tcGlsZS10aW1lIGNvbnN0YW50Ci0t ICAgICAgICAgICAgICAgIC8vIGBpc196ZXJvX3VuZGVmYAotLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyAkY3Rseih5LCBmYWxzZSkuY2FzdCgpIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgJGN0dHooeSwgZmFsc2UpLmNhc3QoKSB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLSAgICAoc2l6ZWRfaW5uZXI6ICR0eTppZGVudCwgJHNjYWxhcjp0 eSwgJHV0eTppZGVudCkgPT4gewotLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgi KV0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0KLS0g ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KLS0gICAgICAgIGltcGwg Qml0TWFuaXAgZm9yICR0eSB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0g c2VsZi5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgICR1dHk6OmN0cG9wKHkpLmNhc3QoKQotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBj dGx6KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYu Y2FzdCgpOwotLSAgICAgICAgICAgICAgICAkdXR5OjpjdGx6KHkpLmNhc3QoKQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdHR6KHNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgp OwotLSAgICAgICAgICAgICAgICAkdXR5OjpjdHR6KHkpLmNhc3QoKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHNjYWxhcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5 KSA9PiB7Ci0tICAgICAgICBpbXBsIEJpdE1hbmlwIGZvciAkdHkgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAg ICAgICAgICBsZXQgbXV0IG9uZXMgPSBzZWxmOwotLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIG9uZXMgPSBvbmVzLnJlcGxh Y2UoaSwgc2VsZi5leHRyYWN0KGkpLmNvdW50X29uZXMoKSBhcyAkc2NhbGFyKTsKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBvbmVzCi0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgbHogPSBzZWxmOwotLSAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIGx6ID0gbHou cmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkubGVhZGluZ196ZXJvcygpIGFzICRzY2FsYXIpOwot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGx6Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCBtdXQgdHogPSBzZWxmOwotLSAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIHR6 ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyAkc2Nh bGFyKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB0egotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCR1dHk6aWRlbnQsICR1c2NhbGFyOnR5 LCAkaXR5OmlkZW50LCAkaXNjYWxhcjp0eSwKLS0gICAgICRjdHBvcDppZGVudCwgJGN0bHo6aWRl bnQsICRjdHR6OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBpbm5lcjog JHV0eSwgJHVzY2FsYXIsICR1dHksICRjdHBvcCwgJGN0bHosICRjdHR6IH0KLS0gICAgICAgIGlt cGxfYml0X21hbmlwISB7IGlubmVyOiAkaXR5LCAkaXNjYWxhciwgJHV0eSwgJGN0cG9wLCAkY3Rs eiwgJGN0dHogfQotLSAgICB9OwotLSAgICAoc2l6ZWQ6ICR1c2l6ZTppZGVudCwgJHVzY2FsYXI6 dHksICRpc2l6ZTppZGVudCwKLS0gICAgICRpc2NhbGFyOnR5LCAkdHk6aWRlbnQpID0+IHsKLS0g ICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkX2lubmVyOiAkdXNpemUsICR1c2NhbGFyLCAk dHkgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWRfaW5uZXI6ICRpc2l6ZSwgJGlz Y2FsYXIsICR0eSB9Ci0tICAgIH07Ci0tfQotLQotLWltcGxfYml0X21hbmlwISB7IHU4eDIgICAs ICAgdTgsIGk4eDIsIGk4LCAgIGN0cG9wX3U4eDIsICAgY3Rsel91OHgyLCAgIGN0dHpfdTh4MiAg IH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHg0ICAgLCAgIHU4LCBpOHg0LCBpOCwgICBjdHBvcF91 OHg0LCAgIGN0bHpfdTh4NCwgICBjdHR6X3U4eDQgICB9Ci0tI1tjZmcobm90KHRhcmdldF9hcmNo ID0gImFhcmNoNjQiKSldIC8vIHNlZSBiZWxvdwotLWltcGxfYml0X21hbmlwISB7IHU4eDggICAs ICAgdTgsIGk4eDgsIGk4LCAgIGN0cG9wX3U4eDgsICAgY3Rsel91OHg4LCAgIGN0dHpfdTh4OCAg IH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHgxNiAgLCAgdTgsIGk4eDE2LCBpOCwgIGN0cG9wX3U4 eDE2LCAgY3Rsel91OHgxNiwgIGN0dHpfdTh4MTYgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHgz MiAgLCAgdTgsIGk4eDMyLCBpOCwgIGN0cG9wX3U4eDMyLCAgY3Rsel91OHgzMiwgIGN0dHpfdTh4 MzIgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1OHg2NCAgLCAgdTgsIGk4eDY0LCBpOCwgIGN0cG9w X3U4eDY0LCAgY3Rsel91OHg2NCwgIGN0dHpfdTh4NjQgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1 MTZ4MiAgLCAgdTE2LCBpMTZ4MiwgaTE2LCAgY3Rwb3BfdTE2eDIsICBjdGx6X3UxNngyLCAgY3R0 el91MTZ4MiAgfQotLWltcGxfYml0X21hbmlwISB7IHUxNng0ICAsICB1MTYsIGkxNng0LCBpMTYs ICBjdHBvcF91MTZ4NCwgIGN0bHpfdTE2eDQsICBjdHR6X3UxNng0ICB9Ci0taW1wbF9iaXRfbWFu aXAhIHsgdTE2eDggICwgIHUxNiwgaTE2eDgsIGkxNiwgIGN0cG9wX3UxNng4LCAgY3Rsel91MTZ4 OCwgIGN0dHpfdTE2eDggIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MTYgLCB1MTYsIGkxNngx NiwgaTE2LCBjdHBvcF91MTZ4MTYsIGN0bHpfdTE2eDE2LCBjdHR6X3UxNngxNiB9Ci0taW1wbF9i aXRfbWFuaXAhIHsgdTE2eDMyICwgdTE2LCBpMTZ4MzIsIGkxNiwgY3Rwb3BfdTE2eDMyLCBjdGx6 X3UxNngzMiwgY3R0el91MTZ4MzIgfQotLWltcGxfYml0X21hbmlwISB7IHUzMngyICAsICB1MzIs IGkzMngyLCBpMzIsICBjdHBvcF91MzJ4MiwgIGN0bHpfdTMyeDIsICBjdHR6X3UzMngyICB9Ci0t aW1wbF9iaXRfbWFuaXAhIHsgdTMyeDQgICwgIHUzMiwgaTMyeDQsIGkzMiwgIGN0cG9wX3UzMng0 LCAgY3Rsel91MzJ4NCwgIGN0dHpfdTMyeDQgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4OCAg LCAgdTMyLCBpMzJ4OCwgaTMyLCAgY3Rwb3BfdTMyeDgsICBjdGx6X3UzMng4LCAgY3R0el91MzJ4 OCAgfQotLWltcGxfYml0X21hbmlwISB7IHUzMngxNiAsIHUzMiwgaTMyeDE2LCBpMzIsIGN0cG9w X3UzMngxNiwgY3Rsel91MzJ4MTYsIGN0dHpfdTMyeDE2IH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1 NjR4MiAgLCAgdTY0LCBpNjR4MiwgaTY0LCAgY3Rwb3BfdTY0eDIsICBjdGx6X3U2NHgyLCAgY3R0 el91NjR4MiAgfQotLWltcGxfYml0X21hbmlwISB7IHU2NHg0ICAsICB1NjQsIGk2NHg0LCBpNjQs ICBjdHBvcF91NjR4NCwgIGN0bHpfdTY0eDQsICBjdHR6X3U2NHg0ICB9Ci0taW1wbF9iaXRfbWFu aXAhIHsgdTY0eDggICwgIHU2NCwgaTY0eDgsIGk2NCwgIGN0cG9wX3U2NHg4LCAgY3Rsel91NjR4 OCwgIGN0dHpfdTY0eDggIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDEgLCB1MTI4LCBpMTI4 eDEsIGkxMjgsIGN0cG9wX3UxMjh4MSwgY3Rsel91MTI4eDEsIGN0dHpfdTEyOHgxIH0KLS1pbXBs X2JpdF9tYW5pcCEgeyB1MTI4eDIgLCB1MTI4LCBpMTI4eDIsIGkxMjgsIGN0cG9wX3UxMjh4Miwg Y3Rsel91MTI4eDIsIGN0dHpfdTEyOHgyIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDQgLCB1 MTI4LCBpMTI4eDQsIGkxMjgsIGN0cG9wX3UxMjh4NCwgY3Rsel91MTI4eDQsIGN0dHpfdTEyOHg0 IH0KLS0KLS0jW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCi0taW1wbCBCaXRNYW5pcCBm b3IgdTh4OCB7Ci0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7Ci0tICAgICAgICB1bnNhZmUgeyBj dHBvcF91OHg4KHkpLmNhc3QoKSB9Ci0tICAgIH0KLS0KLS0gICAgI1tpbmxpbmVdCi0tICAgIGZu IGN0bHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgp OwotLSAgICAgICAgdW5zYWZlIHsgY3Rsel91OHg4KHksIGZhbHNlKS5jYXN0KCkgfQotLSAgICB9 Ci0tCi0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgLy8gRklYTUU6IExMVk0gY3R0ei52OGk4IGJyb2tlbiBvbiBhYXJjaDY0IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTkxCi0tICAgICAg ICAvLyBPUFRJTUlaRTogYWRhcHQgdGhlIGFsZ29yaXRobSB1c2VkIGZvciB2OGkxNi9ldGMgdG8g UnVzdCdzIGFhcmNoNjQKLS0gICAgICAgIC8vIGludHJpbnNpY3MKLS0gICAgICAgIGxldCBtdXQg dHogPSBzZWxmOwotLSAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgdHogPSB0ei5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJvcygp IGFzIHU4KTsKLS0gICAgICAgIH0KLS0gICAgICAgIHR6Ci0tICAgIH0KLS19Ci0tI1tjZmcodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLWltcGwgQml0TWFuaXAgZm9yIGk4eDggewotLSAgICAj W2lubGluZV0KLS0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICBsZXQgeTog dTh4OCA9IHNlbGYuY2FzdCgpOwotLSAgICAgICAgdW5zYWZlIHsgY3Rwb3BfdTh4OCh5KS5jYXN0 KCkgfQotLSAgICB9Ci0tCi0tICAgICNbaW5saW5lXQotLSAgICBmbiBjdGx6KHNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgIHVuc2Fm ZSB7IGN0bHpfdTh4OCh5LCBmYWxzZSkuY2FzdCgpIH0KLS0gICAgfQotLQotLSAgICAjW2lubGlu ZV0KLS0gICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIC8vIEZJWE1FOiBMTFZN IGN0dHoudjhpOCBicm9rZW4gb24gYWFyY2g2NCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5MQotLSAgICAgICAgLy8gT1BUSU1JWkU6IGFk YXB0IHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgdjhpMTYvZXRjIHRvIFJ1c3QncyBhYXJjaDY0Ci0t ICAgICAgICAvLyBpbnRyaW5zaWNzCi0tICAgICAgICBsZXQgbXV0IHR6ID0gc2VsZjsKLS0gICAg ICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgewotLSAgICAgICAgICAgIHR6ID0gdHoucmVw bGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyBpOCk7Ci0tICAgICAg ICB9Ci0tICAgICAgICB0egotLSAgICB9Ci0tfQotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI4IildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlw ISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU4eDIgfQotLSAgICAg ICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6 ZSwgdTh4NCB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNp emUsIGlzaXpleDgsIGlzaXplLCB1OHg4IH0KLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9w b2ludGVyX3dpZHRoID0gIjE2IildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVk OiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHUxNngyIH0KLS0gICAgICAgIGltcGxf Yml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHUxNng0 IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNp emV4OCwgaXNpemUsIHUxNng4IH0KLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6 ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHUzMngyIH0KLS0gICAgICAgIGltcGxfYml0X21h bmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHUzMng0IH0KLS0g ICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwg aXNpemUsIHUzMng4IH0KLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRo ID0gIjY0IildIHsKLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1 c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU2NHgyIH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7 IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHU2NHg0IH0KLS0gICAgICAg IGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUs IHU2NHg4IH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBv cnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL2xsdm0ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDEyMiArMCwwIEBACi0tLy8hIExMVk0ncyBwbGF0Zm9ybSBpbnRyaW5zaWNzCi0tIyFbYWxs b3coZGVhZF9jb2RlKV0KLS0KLS11c2UgY3JhdGU6OnNlYWxlZDo6U2h1ZmZsZTsKLS0jW2FsbG93 KHVudXNlZF9pbXBvcnRzKV0gLy8gRklYTUU6IHNwdXJpb3VzIHdhcm5pbmc/Ci0tdXNlIGNyYXRl OjpzZWFsZWQ6OlNpbWQ7Ci0tCi0tZXh0ZXJuICJwbGF0Zm9ybS1pbnRyaW5zaWMiIHsKLS0gICAg Zm4gc2ltZF9zaHVmZmxlPFQsIEksIFU+KHg6IFQsIHk6IFQsIGlkeDogSSkgLT4gVTsKLS19Ci0t Ci0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHVi IHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMjxjb25zdCBJRFg6IFt1MzI7IDJdLCBULCBVPih4 OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2ltZD46 OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMl0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9z aHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5 X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNDxjb25z dCBJRFg6IFt1MzI7IDRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0gICAgVDog U2ltZCwKLS0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgNF0sIE91dHB1 dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxv dyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBm biBfX3NodWZmbGVfdmVjdG9yODxjb25zdCBJRFg6IFt1MzI7IDhdLCBULCBVPih4OiBULCB5OiBU KSAtPiBVCi0td2hlcmUKLS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6 IFNodWZmbGU8W3UzMjsgOF0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgs IHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0t I1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMTY8Y29uc3QgSURYOiBb dTMyOyAxNl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAot LSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAxNl0sIE91dHB1dCA9IFU+ LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlw cHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tpbmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3No dWZmbGVfdmVjdG9yMzI8Y29uc3QgSURYOiBbdTMyOyAzMl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+ IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAotLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1 ZmZsZTxbdTMyOyAzMl0sIE91dHB1dCA9IFU+LAotLXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHks IElEWCkKLS19Ci0tCi0tI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCi0tI1tp bmxpbmVdCi0tcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNjQ8Y29uc3QgSURYOiBbdTMy OyA2NF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKLS13aGVyZQotLSAgICBUOiBTaW1kLAotLSAg ICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA2NF0sIE91dHB1dCA9IFU+LAot LXsKLS0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKLS19Ci0tCi0tZXh0ZXJuICJwbGF0Zm9y bS1pbnRyaW5zaWMiIHsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2VxPFQsIFU+KHg6IFQsIHk6 IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9uZTxULCBVPih4OiBULCB5OiBUKSAt PiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbHQ8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsK LS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2xlPFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7Ci0tICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9ndDxULCBVPih4OiBULCB5OiBUKSAtPiBVOwotLSAgICBwdWIo Y3JhdGUpIGZuIHNpbWRfZ2U8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKLS0KLS0gICAgcHViKGNy YXRlKSBmbiBzaW1kX2luc2VydDxULCBVPih4OiBULCBpZHg6IHUzMiwgdmFsOiBVKSAtPiBUOwot LSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZXh0cmFjdDxULCBVPih4OiBULCBpZHg6IHUzMikgLT4g VTsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2Nhc3Q8VCwgVT4oeDogVCkgLT4gVTsKLS0K LS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FkZDxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfc3ViPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9tdWw8VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBz aW1kX2RpdjxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVt PFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9zaGw8VD4oeDog VCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3NocjxUPih4OiBULCB5OiBU KSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYW5kPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7 Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9vcjxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfeG9yPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX3Vub3JkZXJlZDxULCBVPih4OiBUKSAtPiBVOwotLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX211bF91bm9yZGVyZWQ8VCwgVT4oeDogVCkgLT4g VTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZDxULCBVPih4OiBU LCBhY2M6IFUpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbXVsX29yZGVy ZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVk dWNlX21pbjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNl X21heDxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX21p bl9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1 Y2VfbWF4X25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1k X3JlZHVjZV9hbmQ8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3Jl ZHVjZV9vcjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNl X3hvcjxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2Fs bDxUPih4OiBUKSAtPiBib29sOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FueTxU Pih4OiBUKSAtPiBib29sOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfc2VsZWN0PE0sIFQ+ KG06IE0sIGE6IFQsIGI6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWlu PFQ+KGE6IFQsIGI6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWF4PFQ+KGE6 IFQsIGI6IFQpIC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mc3FydDxUPihhOiBU KSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZm1hPFQ+KGE6IFQsIGI6IFQsIGM6IFQp IC0+IFQ7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nYXRoZXI8VCwgUCwgTT4odmFsdWU6 IFQsIHBvaW50ZXJzOiBQLCBtYXNrOiBNKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf c2NhdHRlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6IE0pOwotLQotLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfYml0bWFzazxULCBVPih2YWx1ZTogVCkgLT4gVTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L2Ficy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9hYnMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9hYnMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDEwMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBmYWJzYAotLSMhW2Fs bG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIGZhYnMKLS0K LS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBBYnMgewotLSAgICBmbiBhYnMo c2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVy biAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjJmMzIiXQotLSAgICBmbiBm YWJzX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5m YWJzLnY0ZjMyIl0KLS0gICAgZm4gZmFic192NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uZmFicy52OGYzMiJdCi0tICAgIGZuIGZhYnNfdjhmMzIoeDog ZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjE2ZjMyIl0K LS0gICAgZm4gZmFic192MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1F IDY0LWJpdCBmYWJzZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZh YnMudjFmNjQiXQotLSAgICBmbiBmYWJzX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAg ICovCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52MmY2NCJdCi0tICAgIGZuIGZhYnNf djJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMu djRmNjQiXQotLSAgICBmbiBmYWJzX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5mYWJzLnY4ZjY0Il0KLS0gICAgZm4gZmFic192OGY2NCh4OiBmNjR4 OCkgLT4gZjY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy5mMzIiXQotLSAg ICBmbiBmYWJzX2YzMih4OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5m YWJzLmY2NCJdCi0tICAgIGZuIGZhYnNfZjY0KHg6IGY2NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5f dW5hcnlfaW1wbF90YWJsZSEoQWJzLCBhYnMpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZmFic19mMzIpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDRbZjMyOyA0XTogZmFic19mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDhbZjMyOyA4XTogZmFic19mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsg MTZdOiBmYWJzX2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBm YWJzX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBmYWJzX2Y2NCk7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBmYWJzX2Y2NCk7Ci0tICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVl Zi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYh IHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNm NF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMy eDhdOiBTbGVlZl9mYWJzZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9mYWJzZjhfYXZ4Mik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJfYXZ4MjEyOCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9mYWJzZDRfYXZ4Mik7Ci0tICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZf ZmFic2Y4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0 eDRdOiBTbGVlZl9mYWJzZDRfYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX2ZhYnNmOF9hdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfZmFic2Q0X2F2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfZmFic2Qy X3NzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZmFi c2Y0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfZmFic2Y0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfZmFic2QyX3NzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGZhYnNfZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBmYWJzX3YxNmYzMik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBmYWJzX3Y4ZjY0KTsKLS0KLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGZhYnNfdjRmMzIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFic192OGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBmYWJzX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDQ6IGZhYnNfdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBl bHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGZhYnNfZjMyKTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBmYWJzX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBmYWJzX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogZmFi c192MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGZhYnNfdjJmNjQpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRmNjQpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDg6IGZhYnNfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvY29zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDMgKzAsMCBAQAotLS8v ISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgY29zYAotLSMhW2FsbG93KHVudXNlZCldCi0tCi0t Ly8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3IgY29zCi0tCi0tdXNlIGNyYXRlOjoqOwotLQot LXB1YihjcmF0ZSkgdHJhaXQgQ29zIHsKLS0gICAgZm4gY29zKHNlbGYpIC0+IFNlbGY7Ci0tfQot LQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jb3MudjJmMzIiXQotLSAgICBmbiBjb3NfdjJmMzIoeDogZjMyeDIpIC0+ IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52NGYzMiJdCi0tICAgIGZuIGNv c192NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29z LnY4ZjMyIl0KLS0gICAgZm4gY29zX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jb3MudjE2ZjMyIl0KLS0gICAgZm4gY29zX3YxNmYzMih4OiBmMzJ4 MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IGNvc2dsZSBlbGVtIHZlY3RvcnMK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjFmNjQiXQotLSAgICBmbiBjb3NfdjFmNjQo eDogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j b3MudjJmNjQiXQotLSAgICBmbiBjb3NfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52NGY2NCJdCi0tICAgIGZuIGNvc192NGY2NCh4OiBmNjR4 NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY4ZjY0Il0KLS0gICAg Zm4gY29zX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5jb3MuZjMyIl0KLS0gICAgZm4gY29zX2YzMih4OiBmMzIpIC0+IGYzMjsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jb3MuZjY0Il0KLS0gICAgZm4gY29zX2Y2NCh4OiBmNjQpIC0+IGY2 NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKENvcywgY29zKTsKLS0KLS1jZmdfaWYh IHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8g RklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9p c3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogY29zX2YzMik7Ci0tICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBjb3NfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMngxNltmMzI7IDE2XTogY29zX2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MltmNjQ7IDJdOiBjb3NfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06 IGNvc19mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4XTogY29zX2Y2NCk7 Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVy ZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAg ICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngy IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNs ZWVmX2Nvc2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zZDRfdTEwYXZ4Mik7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NmNF91MTBhdngyMTI4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc2Y4X3UxMGF2 eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zZDJfdTEw YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3Nk NF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NkNF91MTBhdngpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zZjRfdTEwc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NmOF91MTBhdngp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zZDJfdTEwc3Nl NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NkNF91MTBh dngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0 LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTog U2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltxID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKLS0KLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfY29z ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9j b3NkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBm NjR4Ml06IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGNvc192MTZmMzIpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4ODogY29zX3Y4ZjY0KTsKLS0KLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDQ6IGNvc192NGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBjb3NfdjhmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogY29zX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGNvc192 NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogY29zX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBjb3Nf djhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBjb3NfdjE2ZjMyKTsKLS0KLS0g ICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3NfdjJmNjQpOwotLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IGNvc192NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogY29zX3Y4 ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zX3BpLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycwky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODcgKzAsMCBAQAotLS8vISBWZXJ0aWNh bCBmbG9hdGluZy1wb2ludCBgY29zYAotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8gRklYTUUg NjQtYml0IDEgZWxlbSB2ZWN0b3JzIGNvc19waQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIo Y3JhdGUpIHRyYWl0IENvc1BpIHsKLS0gICAgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGY7Ci0tfQot LQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShDb3NQaSwgY29zX3BpKTsKLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9kZWYgewotLSAgICAoJHZpZDppZGVudCwgJFBJOnBhdGgpID0+IHsKLS0gICAgICAg IGltcGwgQ29zUGkgZm9yICR2aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgKHNlbGYgKiBT ZWxmOjpzcGxhdCgkUEkpKS5jb3MoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIgewotLSAgICAoJHZpZDppZGVudCkgPT4g ewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmMzI6OmNvbnN0czo6UEkpOwotLSAg ICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWY2NCB7Ci0tICAgICgkdmlkOmlkZW50KSA9 PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmY2NDo6Y29uc3RzOjpQSSk7Ci0t ICAgIH07Ci0tfQotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2gg PSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVl Zl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJn ZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfY29zcGlmOF91MDVhdngy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVm X2Nvc3BpZDRfdTA1YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eDIpOwotLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVl Zl9jb3NwaWY4X3UwNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2gg PT4gZjY0eDRdOiBTbGVlZl9jb3NwaWQ0X3UwNWF2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zcGlmOF91MDVhdngpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4KTsKLS0gICAg ICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3Bp ZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYz Mng0XTogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfY29zcGlm NF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nv c3BpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4g ZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKLS0gICAgICAgICAgICAgICAgaW1w bF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAgICAgICAgICAgICAg IGltcGxfZGVmNjQhKGY2NHgyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQp OwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOwot LSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgp OwotLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKLS0KLS0gICAgICAgIGltcGxfZGVmNjQh KGY2NHgyKTsKLS0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKLS0gICAgICAgIGltcGxfZGVm NjQhKGY2NHg4KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEyICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxv YXRpbmctcG9pbnQgYGV4cGAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJp dCBleHBnbGUgZWxlbSB2ZWN0b3JzIG1pc2V4cGcKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHVi KGNyYXRlKSB0cmFpdCBFeHAgewotLSAgICBmbiBleHAoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0t I1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmV4cC52MmYzMiJdCi0tICAgIGZuIGV4cF92MmYzMih4OiBmMzJ4MikgLT4gZjMy eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjMyIl0KLS0gICAgZm4gZXhwX3Y0 ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjhm MzIiXQotLSAgICBmbiBleHBfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmV4cC52MTZmMzIiXQotLSAgICBmbiBleHBfdjE2ZjMyKHg6IGYzMngxNikg LT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgZXhwZ2xlIGVsZW0gdmVjdG9ycwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MWY2NCJdCi0tICAgIGZuIGV4cF92MWY2NCh4OiBm NjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52 MmY2NCJdCi0tICAgIGZuIGV4cF92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZXhwLnY0ZjY0Il0KLS0gICAgZm4gZXhwX3Y0ZjY0KHg6IGY2NHg0KSAt PiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjhmNjQiXQotLSAgICBmbiBl eHBfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmV4cC5mMzIiXQotLSAgICBmbiBleHBfZjMyKHg6IGYzMikgLT4gZjMyOwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmV4cC5mNjQiXQotLSAgICBmbiBleHBfZjY0KHg6IGY2NCkgLT4gZjY0Owot LX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoRXhwLCBleHApOwotLQotLWNmZ19pZiEgewot LSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAvLyBGSVhN RTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhwX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBleHBfZjMyKTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGYzMng4W2YzMjsgOF06IGV4cF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W2YzMjsgMTZdOiBleHBfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2 NDsgMl06IGV4cF9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogZXhw X2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBleHBfZjY0KTsKLS0g ICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0g InNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNm Z19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0g ewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZf ZXhwZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNlto ID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9leHBkNF91MTBhdngyKTsKLS0KLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2V4cGY0X3UxMGF2eDIxMjgpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBhdngy MTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2V4cGQ0X3Ux MGF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTog U2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2V4cGQ0X3UxMGF2eCk7Ci0tCi0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9leHBmNF91MTBzc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2V4cGY4X3UxMGF2eCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2V4cGQ0X3UxMGF2eCk7 Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIp XSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVl Zl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3Eg PT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTQpOwotLQotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91 MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2V4cGQy X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgy XTogU2xlZWZfZXhwZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9leHBk Ml91MTBzc2UyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X2V4cGY0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+ IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTIpOwotLSAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IGV4cF9mMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGV4cF92MTZm MzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhwX3Y4ZjY0KTsKLS0K LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGV4cF92NGYzMik7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4MjogZXhwX3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9IGVsc2UgewotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhwX2YzMik7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZXhwX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBl eHBfdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBleHBfdjJmNjQpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4ODogZXhwX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbG4ucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbG4ucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9s bi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMTIgKzAsMCBAQAotLS8vISBWZXJ0 aWNhbCBmbG9hdGluZy1wb2ludCBgbG5gCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhN RSA2NC1iaXQgbG5nbGUgZWxlbSB2ZWN0b3JzIG1pc2xuZwotLQotLXVzZSBjcmF0ZTo6KjsKLS0K LS1wdWIoY3JhdGUpIHRyYWl0IExuIHsKLS0gICAgZm4gbG4oc2VsZikgLT4gU2VsZjsKLS19Ci0t Ci0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmxvZy52MmYzMiJdCi0tICAgIGZuIGxuX3YyZjMyKHg6IGYzMngyKSAtPiBm MzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjRmMzIiXQotLSAgICBmbiBsbl92 NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY4 ZjMyIl0KLS0gICAgZm4gbG5fdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmxvZy52MTZmMzIiXQotLSAgICBmbiBsbl92MTZmMzIoeDogZjMyeDE2KSAt PiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBsbmdsZSBlbGVtIHZlY3RvcnMKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjFmNjQiXQotLSAgICBmbiBsbl92MWY2NCh4OiBmNjR4 MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MmY2 NCJdCi0tICAgIGZuIGxuX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5sb2cudjRmNjQiXQotLSAgICBmbiBsbl92NGY2NCh4OiBmNjR4NCkgLT4gZjY0 eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY4ZjY0Il0KLS0gICAgZm4gbG5fdjhm NjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy5m MzIiXQotLSAgICBmbiBsbl9mMzIoeDogZjMyKSAtPiBmMzI7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0ubG9nLmY2NCJdCi0tICAgIGZuIGxuX2Y2NCh4OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0t Z2VuX3VuYXJ5X2ltcGxfdGFibGUhKExuLCBsbik7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNb Y2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDRbZjMyOyA0XTogbG5fZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4 W2YzMjsgOF06IGxuX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06 IGxuX2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBsbl9mNjQp OwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogbG5fZjY0KTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IGxuX2Y2NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsK LS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAg ICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMGF2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVm X2xvZ2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+ IGY2NHg0XTogU2xlZWZfbG9nZDRfdTEwYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2xvZ2Y4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9sb2dkNF91MTBhdngyKTsKLS0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX2xvZ2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2gg PT4gZjY0eDRdOiBTbGVlZl9sb2dkNF91MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng4OiBTbGVlZl9sb2dmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9sb2dkNF91MTBhdngpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZf bG9nZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4g ZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3Ux MHNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJz c2UyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlMik7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2UyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2xv Z2Y0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf bG9nZDJfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4g ZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBsbl9mMzIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGxuX3YxNmYzMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg4OiBsbl92OGY2NCk7Ci0tCi0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBsbl92OGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBs bl92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBsbl92NGY2NCk7 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5fZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYz Mng0OiBsbl92NGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogbG5fdjhmMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBsbl92MTZmMzIpOwotLQotLSAgICAgICAgaW1w bF91bmFyeSEoZjY0eDI6IGxuX3YyZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBs bl92NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogbG5fdjhmNjQpOwotLSAgICB9 Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSw0NzAgKzAsMCBAQAotLS8vISBVdGlsaXR5IG1hY3JvcwotLSMh W2FsbG93KHVudXNlZCldCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfdW5hcnlfIHsKLS0gICAgLy8g aW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKLS0gICAgKHZlYyB8ICR0cmFpdF9pZDppZGVudCwg JHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICRmdW46aWRlbnQpID0+ IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZShzZWxmKSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxIGZvciB3 aGVuIGAkZnVuYCBpcyBhIGdlbmVyaWMgZnVuY3Rpb24KLS0gICAgLy8gbGlrZSBzb21lIG9mIHRo ZSBmcCBtYXRoIHJ1c3RjIGludHJpbnNpY3MgKGUuZy4gYGZuIGZ1bjxUPih4OiBUKSAtPiBUYCku Ci0tICAgIChnZW4gfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNf aWQ6aWRlbnQsCi0tICAgICAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9p ZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g JHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bihzZWxmLjApKQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoc2NhbGFyIHwgJHRy YWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LAotLSAgICAgJHZlY19pZDppZGVudCwg WyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGlt cGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxh cnM6IFskc2lkOyAkc2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgc2NhbGFycyA9IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOwotLSAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gJm11dCBzY2FsYXJzIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAqaSA9ICRmdW4oKmkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgVSB7IHNjYWxhcnMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24g Y2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZlczoKLS0gICAgKGhh bHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVu dCwKLS0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBs ICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7 Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZlY2hf aWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLQotLSAgICAgICAgICAg ICAgICAgICAgKmhhbHZlcy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAqaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRl KCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIFUg eyBoYWx2ZXMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gZm91ciB0 aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6Ci0tICAgIChxdWFydGVyIHwgJHRy YWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAg JHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lk IGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAk dHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewot LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAg ICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZl Y19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwK LS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQg cXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bih0cmFu c211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAq cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUo KnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAqcXVh cnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKnF1 YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBVIHsg cXVhcnRlcnMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gb25jZSBv biBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToKLS0gICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlkZW50 LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJHZlY3RfaWQ6aWRl bnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9k KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OwotLQot LSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dmVjOiBbJHZlY19pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0 X2lkLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0 IHR3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKLS0gICAg ICAgICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSh0d2lj ZSkpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91bmNo ZWNrZWQoMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBnZW5fdW5hcnlfaW1wbF90YWJsZSB7Ci0t ICAgICgkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKLS0gICAgICAg IG1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5IHsKLS0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEodmVjIHwgJHRyYWl0 X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAg ICAgICAgICgkdmlkOmlkZW50W2ddOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnlfIShnZW4gfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4p OwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbJHNpZDppZGVudDsg JHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlf IShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsIFskc2lkOyAkc2NdLCAk ZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3NdOiAkZnVu OmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShzY2FsYXIgfCAkdHJh aXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAg ICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShoYWx2ZXMgfCAkdHJhaXRfaWQsICR0cmFp dF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAg ICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRfcTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHF1YXJ0ZXIgfCAkdHJhaXRfaWQsICR0cmFpdF9t ZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAg ICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9k LCAkdmlkLCAkdmlkX3QsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3RlcnRpYXJ5XyB7Ci0tICAgIC8vIGltcGxl bWVudGF0aW9uIG1hcHBpbmcgMToxCi0tICAgICh2ZWMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFp dF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkZnVuOmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxm KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB0cmFu c211dGUoJGZ1bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJhbnNtdXRlKHopKSkK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS0gICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwKLS0g ICAgICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlkZW50 KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxm LCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZl Y19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJzOiBbJHNpZDsgJHNjb3VudF0s Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHgg PSBVIHsgdmVjOiBzZWxmIH0uc2NhbGFyczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5ID0g VSB7IHZlYzogeSB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeiA9IFUgeyB2 ZWM6IHogfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAgICAgZm9yICh4LCAoeSwgeikpIGlu ICgmbXV0IHNjYWxhcnMpLnppcCgmeSkuemlwKCZ6KSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgKmkgPSAkZnVuKCppLCAqeSwgKnopOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgVSB7IHZlYzogeCB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBj YWxsaW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgotLSAgICAoaGFs dmVzIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50 LAotLSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwg JHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZl czsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5X2hhbHZlcyA9IFUgeyB2ZWM6IHkgfS5oYWx2 ZXM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgel9oYWx2ZXMgPSBVIHsgdmVjOiB6IH0uaGFs dmVzOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0 KDApID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRl KCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAg ICAgICAgICAgICApKTsKLS0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZlcy5nZXRfdW5jaGVj a2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRy YW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoKnpfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAotLSAg ICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBVIHsgaGFsdmVz OiB4X2hhbHZlcyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBmb3Vy IHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKLS0gICAgKHF1YXJ0ZXIgfCAk dHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAg ICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRf aWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu ICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0 ZXJzOiBbJHZlY3FfaWQ7IDRdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJz OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfcXVhcnRlcnMgPSBVIHsgdmVjOiB5IH0ucXVh cnRlcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgel9xdWFydGVycyA9IFUgeyB2ZWM6IHog fS5xdWFydGVyczsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAg dHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgw KSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4 X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkp LAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5j aGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRl cnMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNt dXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWQoMikpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgq eV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAgICAgICAgICAgICAg ICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNr ZWRfbXV0KDMpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJh bnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSks Ci0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIFUgeyBx dWFydGVyczogeF9xdWFydGVycyB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5n IGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgotLSAgICAodHdpY2UgfCAkdHJh aXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAk dmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQg Zm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0 cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3Ry YW5zbXV0ZSwgdW5pbml0aWFsaXplZH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBV IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAyXSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCi0tICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgeF90d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1 bmluaXRpYWxpemVkKCldIH0udHdpY2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeV90d2lj ZSA9IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7Ci0tICAgICAgICAgICAg ICAgICAgICBsZXQgel90d2ljZSA9IFUgeyB2ZWM6IFt6LCB1bmluaXRpYWxpemVkKCldIH0udHdp Y2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lkID0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoeF90d2ljZSksIHRyYW5z bXV0ZSh5X3R3aWNlKSwgdHJhbnNtdXRlKHpfdHdpY2UpKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19y dWxlcyEgZ2VuX3RlcnRpYXJ5X2ltcGxfdGFibGUgewotLSAgICAoJHRyYWl0X2lkOmlkZW50LCAk dHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7Ci0tICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF90ZXJ0 aWFyeSB7Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhv ZCwgJHZpZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVu dFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZp ZCwgWyRzaWQ7ICRzY10sICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2 aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0t ICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVu dF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8hKGhh bHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsKLS0g ICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50 XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEocXVh cnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsKLS0g ICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50 XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEodHdp Y2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwgJGZ1bik7Ci0tICAg ICAgICAgICAgfTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfYmluYXJ5XyB7Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCi0tICAgICh2 ZWMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQs Ci0tICAgICAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZl Y19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21l dGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5 KSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQs Ci0tICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpleHByXSwgJGZ1bjpp ZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTog U2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAg ICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRzY291bnRdLAotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gVSB7 IHZlYzogc2VsZiB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeSA9IFUgeyB2 ZWM6IHkgfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAgICAgZm9yICh4LCB5KSBpbiB4Lml0 ZXJfbXV0KCkuemlwKCZ5KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKnggPSAkZnVuKCp4 LCAqeSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBVIHsg c2NhbGFyczogeCB9LnZlYwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biB0d2lj ZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgotLSAgICAoaGFsdmVzIHwgJHRyYWl0X2lk OmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJHZlY2hf aWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAk dmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRf bWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAg ICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzog JHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0s Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHhfaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0gICAgICAgICAgICAgICAgICAg IGxldCB5X2hhbHZlcyA9IFUgeyB2ZWM6IHkgfS5oYWx2ZXM7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNoZWNrZWQo MCkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0X3Vu Y2hlY2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0gICAgICAgICAgICAgICAg ICAgICp4X2hhbHZlcy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgx KSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5j aGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgVSB7IGhhbHZlczogeF9oYWx2ZXMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24g Y2FsbGluZyBmdW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6Ci0t ICAgIChxdWFydGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVj X2lkOmlkZW50LAotLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9xdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5x dWFydGVyczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5X3F1YXJ0ZXJzID0gVSB7IHZlYzog eSB9LnF1YXJ0ZXJzOwotLQotLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3Vu Y2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAotLSAg ICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVy cy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgx KSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4 X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikp LAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5j aGVja2VkKDIpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bigK LS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hl Y2tlZCgzKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICBVIHsgcXVhcnRlcnM6IHhfcXVhcnRlcnMgfS52ZWMKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1w bGVtZW50YXRpb24gY2FsbGluZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToK LS0gICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVj X2lkOmlkZW50LAotLSAgICAgJHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OwotLQotLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiBbJHZlY19pZDsgMl0s Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0X2lkLAotLSAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHhfdHdpY2UgPSBVIHsgdmVj OiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOwotLSAgICAgICAgICAgICAgICAgICAg bGV0IHlfdHdpY2UgPSBVIHsgdmVjOiBbeSwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOwotLSAg ICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlOiAkdmVjdF9pZCA9IHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZSh4X3R3aWNlKSwgdHJhbnNtdXRlKHlfdHdpY2UpKSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNy b19ydWxlcyEgZ2VuX2JpbmFyeV9pbXBsX3RhYmxlIHsKLS0gICAgKCR0cmFpdF9pZDppZGVudCwg JHRyYWl0X21ldGhvZDppZGVudCkgPT4gewotLSAgICAgICAgbWFjcm9fcnVsZXMhIGltcGxfYmlu YXJ5IHsKLS0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4gewotLSAgICAg ICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwg JHZpZCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFsk c2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsIFsk c2lkOyAkc2NdLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlk ZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEo c2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAg ICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKGhhbHZlcyB8ICR0 cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsKLS0gICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50XTogJGZ1bjpp ZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHF1YXJ0ZXIgfCAkdHJh aXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7Ci0tICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06ICRmdW46aWRl bnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfISh0d2ljZSB8ICR0cmFpdF9p ZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKLS0gICAgICAgICAgICB9Owot LSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVs X2FkZC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwOSArMCwwIEBACi0t Ly8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYAotLSMhW2FsbG93KHVudXNlZCld Ci0tdXNlIGNyYXRlOjoqOwotLQotLS8vIEZJWE1FOiA2NC1iaXQgMSBlbGVtZW50IG11bF9hZGQK LS0KLS1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZCB7Ci0tICAgIGZuIG11bF9hZGQoc2VsZiwgeTog U2VsZiwgejogU2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1tjZmcobm90KHRhcmdldF9hcmNoID0g InMzOTB4IikpXQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjJmMzIiXQotLSAgICBmbiBmbWFfdjJmMzIoeDog ZjMyeDIsIHk6IGYzMngyLCB6OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uZm1hLnY0ZjMyIl0KLS0gICAgZm4gZm1hX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCwg ejogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52OGYzMiJd Ci0tICAgIGZuIGZtYV92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYzMng4KSAtPiBmMzJ4 ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjE2ZjMyIl0KLS0gICAgZm4gZm1hX3Yx NmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8q IEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxs dm0uZm1hLnYxZjY0Il0KLS0gICAgZm4gZm1hX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSwgejog ZjY0eDEpIC0+IGY2NHgxOwotLSAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52 MmY2NCJdCi0tICAgIGZuIGZtYV92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIsIHo6IGY2NHgyKSAt PiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmNjQiXQotLSAgICBmbiBm bWFfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0LCB6OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uZm1hLnY4ZjY0Il0KLS0gICAgZm4gZm1hX3Y4ZjY0KHg6IGY2NHg4 LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4OwotLX0KLS0KLS1nZW5fdGVydGlhcnlfaW1w bF90YWJsZSEoTXVsQWRkLCBtdWxfYWRkKTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmco dGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0gICAgICAg IG1hY3JvX3J1bGVzISBpbXBsX2Jyb2tlbiB7Ci0tICAgICAgICAgICAgKCRpZDppZGVudCkgPT4g ewotLSAgICAgICAgICAgICAgICBpbXBsIE11bEFkZCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbXVsX2FkZChzZWxmLCB5 OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm ICogeSArIHoKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDIp OwotLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMng0KTsKLS0gICAgICAgIGltcGxfYnJva2VuIShm MzJ4OCk7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDE2KTsKLS0KLS0gICAgICAgIGltcGxf YnJva2VuIShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDQpOwotLSAgICAgICAg aW1wbF9icm9rZW4hKGY2NHg4KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNs ZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZm1hZjhfYXZ4Mik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVl Zl9mbWFkNF9hdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDQ6 IFNsZWVmX2ZtYWY0X2F2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm MzJ4ODogU2xlZWZfZm1hZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkh KGY2NHgyOiBTbGVlZl9mbWFkMl9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3Rl cnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZm1hZjhfYXZ4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNs ZWVmX2ZtYWQ0X2F2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0 OiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMy eDg6IFNsZWVmX2ZtYWY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2 NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEo ZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlh cnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVm X2ZtYWQyX3NzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDog U2xlZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4 W2ggPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3NlNCk7Ci0tICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDI6IGZt YV92MmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNjogZm1hX3Yx NmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4OiBmbWFfdjhmNjQp OwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDogZm1hX3Y0ZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBmbWFfdjJmNjQpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4 MjogZm1hX3YyZjMyKTsKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0OiBmbWFfdjRmMzIp OwotLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7Ci0tICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4MTY6IGZtYV92MTZmMzIpOwotLSAgICAgICAgLy8gaW1wbF90ZXJ0 aWFyeSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFnbGUgZWxlbSB2ZWN0 b3JzCi0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3YyZjY0KTsKLS0gICAgICAg IGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRmNjQpOwotLSAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjY0eDg6IGZtYV92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9h ZGRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvbXVsX2FkZGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9tdWxfYWRkZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs NjAgKzAsMCBAQAotLS8vISBBcHByb3hpbWF0aW9uIGZvciBmbG9hdGluZy1wb2ludCBgbXVsX2Fk ZGAKLS11c2UgY3JhdGU6Oio7Ci0tCi0tLy8gRklYTUU6IDY0LWJpdCAxIGVsZW1lbnQgbXVsX2Fk ZGUKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZEUgewotLSAgICBmbiBtdWxfYWRkZShzZWxm LCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOwotLX0KLS0KLS0jW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAiczM5MHgiKSldCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIg ewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjJmMzIiXQotLSAgICBmbiBmbXVs YWRkX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MiwgejogZjMyeDIpIC0+IGYzMngyOwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmMzIiXQotLSAgICBmbiBmbXVsYWRkX3Y0ZjMy KHg6IGYzMng0LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmZtdWxhZGQudjhmMzIiXQotLSAgICBmbiBmbXVsYWRkX3Y4ZjMyKHg6IGYzMng4 LCB5OiBmMzJ4OCwgejogZjMyeDgpIC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZtdWxhZGQudjE2ZjMyIl0KLS0gICAgZm4gZm11bGFkZF92MTZmMzIoeDogZjMyeDE2LCB5OiBm MzJ4MTYsIHo6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgc2luZ2xl IGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjFmNjQiXQot LSAgICBmbiBmbXVsYWRkX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSwgejogZjY0eDEpIC0+IGY2 NHgxOwotLSAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjJmNjQiXQot LSAgICBmbiBmbXVsYWRkX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4MiwgejogZjY0eDIpIC0+IGY2 NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmNjQiXQotLSAgICBmbiBm bXVsYWRkX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwgejogZjY0eDQpIC0+IGY2NHg0OwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmNjQiXQotLSAgICBmbiBmbXVsYWRkX3Y4 ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4OwotLX0KLS0KLS1tYWNy b19ydWxlcyEgaW1wbF9tdWxfYWRkZSB7Ci0tICAgICgkaWQ6aWRlbnQgOiAkZm46aWRlbnQpID0+ IHsKLS0gICAgICAgIGltcGwgTXVsQWRkRSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4Iikp XQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1l bTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgdHJhbnNtdXRlKCRm bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJhbnNtdXRlKHopKSkgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4 IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0 Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmICogeSArIHoKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9tdWxfYWRk ZSEoZjMyeDI6IGZtdWxhZGRfdjJmMzIpOwotLWltcGxfbXVsX2FkZGUhKGYzMng0OiBmbXVsYWRk X3Y0ZjMyKTsKLS1pbXBsX211bF9hZGRlIShmMzJ4ODogZm11bGFkZF92OGYzMik7Ci0taW1wbF9t dWxfYWRkZSEoZjMyeDE2OiBmbXVsYWRkX3YxNmYzMik7Ci0tLy8gaW1wbF9tdWxfYWRkZSEoZjY0 eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFnbGUgZWxlbSB2ZWN0b3JzCi0taW1w bF9tdWxfYWRkZSEoZjY0eDI6IGZtdWxhZGRfdjJmNjQpOwotLWltcGxfbXVsX2FkZGUhKGY2NHg0 OiBmbXVsYWRkX3Y0ZjY0KTsKLS1pbXBsX211bF9hZGRlIShmNjR4ODogZm11bGFkZF92OGY2NCk7 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvcG93Zi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9wb3dmLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSwxMTIgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgcG93ZmAK LS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCBwb3dmZ2xlIGVsZW0gdmVj dG9ycyBtaXNwb3dmZwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFBv d2YgewotLSAgICBmbiBwb3dmKHNlbGYsIHg6IFNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLSNbYWxs b3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5wb3cudjJmMzIiXQotLSAgICBmbiBwb3dmX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4Mikg LT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY0ZjMyIl0KLS0gICAgZm4g cG93Zl92NGYzMih4OiBmMzJ4NCwgeTogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLnBvdy52OGYzMiJdCi0tICAgIGZuIHBvd2ZfdjhmMzIoeDogZjMyeDgsIHk6IGYz Mng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjE2ZjMyIl0KLS0g ICAgZm4gcG93Zl92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAg LyogRklYTUUgNjQtYml0IHBvd2ZnbGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0g Imxsdm0ucG93LnYxZjY0Il0KLS0gICAgZm4gcG93Zl92MWY2NCh4OiBmNjR4MSwgeTogZjY0eDEp IC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjJmNjQi XQotLSAgICBmbiBwb3dmX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0ucG93LnY0ZjY0Il0KLS0gICAgZm4gcG93Zl92NGY2NCh4OiBm NjR4NCwgeTogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52 OGY2NCJdCi0tICAgIGZuIHBvd2ZfdjhmNjQoeDogZjY0eDgsIHk6IGY2NHg4KSAtPiBmNjR4ODsK LS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cuZjMyIl0KLS0gICAgZm4gcG93Zl9mMzIo eDogZjMyLCB5OiBmMzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cuZjY0 Il0KLS0gICAgZm4gcG93Zl9mNjQoeDogZjY0LCB5OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0tZ2Vu X2JpbmFyeV9pbXBsX3RhYmxlIShQb3dmLCBwb3dmKTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYg I1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8gRklYTUU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0g ICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MltmMzI7IDJdOiBwb3dmX2YzMik7Ci0tICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDRbZjMyOyA0XTogcG93Zl9mMzIpOwotLSAgICAgICAgaW1wbF9iaW5h cnkhKGYzMng4W2YzMjsgOF06IHBvd2ZfZjMyKTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4 MTZbZjMyOyAxNl06IHBvd2ZfZjMyKTsKLS0KLS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4Mltm NjQ7IDJdOiBwb3dmX2Y2NCk7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRbZjY0OyA0XTog cG93Zl9mNjQpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2Y2NDsgOF06IHBvd2ZfZjY0 KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0 dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAg ICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2 eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX3Bvd2Y0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9wb3dmOF91MTBhdngyKTsKLS0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9wb3dkNF91MTBhdngyKTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBh dngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBTbGVlZl9wb3dm OF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9w b3dkMl91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBT bGVlZl9wb3dkNF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfcG93ZjhfdTEwYXZ4KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9wb3dkNF91 MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bv d2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDg6IFNsZWVm X3Bvd2Y4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4MjogU2xl ZWZfcG93ZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDog U2xlZWZfcG93ZDRfdTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfcG93 ZDJfdTEwc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xl ZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFto ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3NlNCk7Ci0tICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0gewotLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0 X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W3EgPT4gZjMy eDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkh KGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2UyKTsKLS0KLS0gICAgICAgICAg ICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBz c2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91 MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJd OiBTbGVlZl9wb3dkMl91MTBzc2UyKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAyXTogcG93Zl9mMzIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IHBvd2ZfdjRmMzIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX2JpbmFyeSEoZjMyeDg6IHBvd2ZfdjhmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBs X2JpbmFyeSEoZjMyeDE2OiBwb3dmX3YxNmYzMik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4MjogcG93Zl92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmNjR4NDogcG93Zl92NGY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4 ODogcG93Zl92OGY2NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2Ug ewotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW2YzMjsgMl06IHBvd2ZfZjMyKTsKLS0gICAg ICAgIGltcGxfYmluYXJ5IShmMzJ4NDogcG93Zl92NGYzMik7Ci0tICAgICAgICBpbXBsX2JpbmFy eSEoZjMyeDg6IHBvd2ZfdjhmMzIpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNjogcG93 Zl92MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBwb3dmX3YyZjY0KTsK LS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDogcG93Zl92NGY2NCk7Ci0tICAgICAgICBpbXBs X2JpbmFyeSEoZjY0eDg6IHBvd2ZfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2lu LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvc2luLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDMgKzAsMCBAQAot LS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luYAotLSMhW2FsbG93KHVudXNlZCldCi0t Ci0tLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNpbgotLQotLXVzZSBjcmF0ZTo6KjsK LS0KLS1wdWIoY3JhdGUpIHRyYWl0IFNpbiB7Ci0tICAgIGZuIHNpbihzZWxmKSAtPiBTZWxmOwot LX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJuICJDIiB7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uc2luLnYyZjMyIl0KLS0gICAgZm4gc2luX3YyZjMyKHg6IGYzMngy KSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmMzIiXQotLSAgICBm biBzaW5fdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LnNpbi52OGYzMiJdCi0tICAgIGZuIHNpbl92OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxNmYzMiJdCi0tICAgIGZuIHNpbl92MTZmMzIoeDog ZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0 b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYxZjY0Il0KLS0gICAgZm4gc2luX3Yx ZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlua19uYW1lID0gImxs dm0uc2luLnYyZjY0Il0KLS0gICAgZm4gc2luX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmNjQiXQotLSAgICBmbiBzaW5fdjRmNjQoeDog ZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52OGY2NCJdCi0t ICAgIGZuIHNpbl92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1l ID0gImxsdm0uc2luLmYzMiJdCi0tICAgIGZuIHNpbl9mMzIoeDogZjMyKSAtPiBmMzI7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0uc2luLmY2NCJdCi0tICAgIGZuIHNpbl9mNjQoeDogZjY0KSAt PiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTaW4sIHNpbik7Ci0tCi0tY2Zn X2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMy KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNpbl9mMzIpOwotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogc2luX2YzMik7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbZjMyOyAxNl06IHNpbl9mMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDJbZjY0OyAyXTogc2luX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7 IDRdOiBzaW5fZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IHNpbl9m NjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZl YXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAg ICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi YXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRd OiBTbGVlZl9zaW5mNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngyKTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmQ0X3UxMGF2eDIpOwot LQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2luZjRfdTEwYXZ4 MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5mOF91 MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQy X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZf c2luZDRfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0 dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luZDRfdTEwYXZ4KTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbmY0X3UxMHNz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2luZjhfdTEw YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQyX3Ux MHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2luZDRf dTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc2luZDJfdTEwc3NlNCk7Ci0t Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5mNF91MTBzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVm X3NpbmY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfc2luZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2gg PT4gZjY0eDJdOiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzaW5fdjE2ZjMyKTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNpbl92OGY2NCk7Ci0tCi0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng0OiBzaW5fdjRmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4ODogc2luX3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IHNpbl92MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBz aW5fdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNpbl9mMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IHNpbl92NGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODog c2luX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2luX3YxNmYzMik7Ci0t Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg0OiBzaW5fdjRmNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNp bl92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3Npbl9jb3NfcGkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5f Y29zX3BpLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxODgg KzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc2luX2Nvc2AKLS0jIVthbGxv dyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW5fY29zCi0t Ci0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU2luQ29zUGk6IFNpemVkIHsK LS0gICAgdHlwZSBPdXRwdXQ7Ci0tICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0 cHV0OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYgewotLSAgICAoJHZpZDppZGVudCwg JFBJOnBhdGgpID0+IHsKLS0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgewotLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKLS0g ICAgICAgICAgICAgICAgbGV0IHYgPSBzZWxmICogU2VsZjo6c3BsYXQoJFBJKTsKLS0gICAgICAg ICAgICAgICAgKHYuc2luKCksIHYuY29zKCkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYzMiB7Ci0tICAgICgkdmlkOmlk ZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmYzMjo6Y29uc3RzOjpQ SSk7Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjY0IHsKLS0gICAgKCR2aWQ6 aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjY0Ojpjb25zdHM6 OlBJKTsKLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfdW5hcnlfdCB7Ci0tICAg ICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIFNpbkNvc1BpIGZv ciAkdmlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKLS0gICAg ICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJh bnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNl bGYpKSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS0gICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAkZnVuOmlkZW50KSA9 PiB7Ci0tICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICB0eXBl IE91dHB1dCA9IChTZWxmLCBTZWxmKTsKLS0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYp IC0+IFNlbGY6Ok91dHB1dCB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07Ci0t Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB2ZWM6IFskdmlkOyAyXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZpZF90 LAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3 aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKLS0gICAgICAg ICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSh0d2ljZSkp KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHR3aWNlOiAoJHZpZF90LCAkdmlkX3QpLAotLSAgICAgICAgICAgICAgICAgICAgICAg IHZlY3M6IChbJHZpZDsgMl0sIFskdmlkOyAyXSksCi0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICBsZXQgciA9IFIgeyB0d2ljZSB9LnZlY3M7Ci0tICAgICAgICAg ICAgICAgICAgICAoKnIuMC5nZXRfdW5jaGVja2VkKDApLCAqci4wLmdldF91bmNoZWNrZWQoMSkp Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1bjppZGVudCkgPT4gewot LSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRw dXQgPSAoU2VsZiwgU2VsZik7Ci0tICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBT ZWxmOjpPdXRwdXQgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0KLS0gICAgICAgICAgICAgICAgICAg IHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmlkX2g7IDJdLAotLSAgICAgICAgICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYg fS5oYWx2ZXM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzA6ICgkdmlkX2gsICR2 aWRfaCkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRfdW5jaGVja2VkKDAp KSkpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18xOiAoJHZpZF9oLCAkdmlkX2gpID0g dHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFIgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHJlc3VsdDogKCR2aWQsICR2aWQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczog KFskdmlkX2g7IDJdLCBbJHZpZF9oOyAyXSksCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgICAgICBSIHsgaGFsdmVzOiAoW3Jlc18wLjAsIHJlc18xLjBdLCBbcmVzXzAu MSwgcmVzXzEuMV0pIH0ucmVzdWx0Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50 XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7Ci0tICAgICAgICAgICAgZm4g c2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgewotLSAgICAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0K LS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHZlYzogJHZpZCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogWyR2aWRfcTsg NF0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQg cXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICBsZXQgcmVzXzA6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgcmVzXzE6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKnF1 YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcmVz XzI6ICgkdmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJz LmdldF91bmNoZWNrZWQoMikpKSk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzM6ICgk dmlkX3EsICR2aWRfcSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91 bmNoZWNrZWQoMykpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHQ6ICgkdmlkLCAkdmlkKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICBxdWFydGVyczogKFskdmlkX3E7IDRdLCBbJHZpZF9xOyA0XSksCi0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBSIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBxdWFydGVyczogKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVz XzAuMCwgcmVzXzEuMCwgcmVzXzIuMCwgcmVzXzMuMF0sCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtyZXNfMC4xLCByZXNfMS4xLCByZXNfMi4xLCByZXNfMy4xXSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICApLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgLnJlc3VsdAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcoYWxsKHRhcmdl dF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1 c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1YXZ4MjEyOCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9z aW5jb3NwaWY4X3UwNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHg4 W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIpOwotLQotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNWF2eDIxMjgpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBTbGVlZl9zaW5jb3NwaWY4X3Uw NWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgyOiBTbGVlZl9zaW5j b3NwaWQyX3UwNWF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHg0 OiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2luY29z cGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHg4W2ggPT4g ZjY0eDRdOiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDg6IFNsZWVmX3NpbmNvc3BpZjhfdTA1YXZ4KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xlZWZfc2luY29zcGlkMl91MDVz c2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4NDogU2xlZWZfc2luY29z cGlkNF91MDVhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngyW3Qg PT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5X3QhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4OFtxID0+IGY2NHgyXTogU2xl ZWZfc2luY29zcGlkMl91MDVzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90 IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeV90IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xlZWZfc2luY29zcGlkMl91 MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4NFtoID0+IGY2NHgy XTogU2xlZWZfc2luY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxf ZGVmMzIhKGYzMng0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgpOwotLSAg ICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQotLSAgICAgICAgICAgICAgICBp bXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKLS0g ICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMng4KTsK LS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAgICAgICBpbXBsX2RlZjY0IShm NjR4Mik7Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0tICAgICAgICBpbXBsX2RlZjY0 IShmNjR4OCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9waS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGku cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDg3ICswLDAgQEAKLS0vLyEgVmVy dGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9waWAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8v IEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW5fcGkKLS0KLS11c2UgY3JhdGU6Oio7Ci0t Ci0tcHViKGNyYXRlKSB0cmFpdCBTaW5QaSB7Ci0tICAgIGZuIHNpbl9waShzZWxmKSAtPiBTZWxm OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU2luUGksIHNpbl9waSk7Ci0tCi0tbWFj cm9fcnVsZXMhIGltcGxfZGVmIHsKLS0gICAgKCR2aWQ6aWRlbnQsICRQSTpwYXRoKSA9PiB7Ci0t ICAgICAgICBpbXBsIFNpblBpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBzaW5fcGkoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIChz ZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuc2luKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKLS0gICAgKCR2aWQ6aWRl bnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMyOjpjb25zdHM6OlBJ KTsKLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgewotLSAgICAoJHZpZDpp ZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmNjQ6OmNvbnN0czo6 UEkpOwotLSAgICB9OwotLX0KLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcoYWxsKHRhcmdl dF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1 c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNWF2eDIxMjgpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbnBpZjhf dTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRd OiBTbGVlZl9zaW5waWQ0X3UwNWF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNWF2eDIxMjgpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2lucGlkNF91MDVhdngyKTsKLS0gICAg ICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRf dTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4 XTogU2xlZWZfc2lucGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91MDVhdngpOwotLQotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1YXZ4KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJfdTA1c3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zaW5waWQ0X3UwNWF2eCk7 Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIp XSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVl Zl9zaW5waWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZb cSA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zaW5waWQyX3UwNXNzZTQpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVzc2U0 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVm X3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBT bGVlZl9zaW5waWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMy eDgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQotLSAgICAgICAg ICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQh KGY2NHg0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYz MngyKTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgIGltcGxfZGVmMzIh KGYzMng4KTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAgICAgICBpbXBs X2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0tICAgICAgICBp bXBsX2RlZjY0IShmNjR4OCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnQucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydC5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Nx cnQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0LnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMDMgKzAsMCBAQAotLS8vISBW ZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgc3FydGAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8v IEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0Ci0tCi0tdXNlIGNyYXRlOjoqOwotLQot LXB1YihjcmF0ZSkgdHJhaXQgU3FydCB7Ci0tICAgIGZuIHNxcnQoc2VsZikgLT4gU2VsZjsKLS19 Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVybiAiQyIgewotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLnNxcnQudjJmMzIiXQotLSAgICBmbiBzcXJ0X3YyZjMyKHg6IGYzMngy KSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY0ZjMyIl0KLS0gICAg Zm4gc3FydF92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxs dm0uc3FydC52OGYzMiJdCi0tICAgIGZuIHNxcnRfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4Owot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjE2ZjMyIl0KLS0gICAgZm4gc3FydF92MTZm MzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBzcXJ0Z2xlIGVs ZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjFmNjQiXQotLSAgICBm biBzcXJ0X3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlua19u YW1lID0gImxsdm0uc3FydC52MmY2NCJdCi0tICAgIGZuIHNxcnRfdjJmNjQoeDogZjY0eDIpIC0+ IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjRmNjQiXQotLSAgICBmbiBz cXJ0X3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5z cXJ0LnY4ZjY0Il0KLS0gICAgZm4gc3FydF92OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0t ICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC5mMzIiXQotLSAgICBmbiBzcXJ0X2YzMih4OiBm MzIpIC0+IGYzMjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LmY2NCJdCi0tICAgIGZu IHNxcnRfZjY0KHg6IGY2NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEo U3FydCwgc3FydCk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0g InMzOTB4IildIHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MltmMzI7IDJdOiBzcXJ0X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7 IDRdOiBzcXJ0X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBzcXJ0 X2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IHNxcnRfZjMyKTsK LS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IHNxcnRfZjY0KTsKLS0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IHNxcnRfZjY0KTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2Y2NDsgOF06IHNxcnRfZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAg ICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAg IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X2F2eDIxMjgpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRm OF9hdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06 IFNsZWVmX3NxcnRkNF9hdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IFNsZWVmX3NxcnRmNF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX3NxcnRmOF9hdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IFNsZWVmX3NxcnRkMl9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF9hdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfYXZ4KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NxcnRk NF9hdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3Fy dGY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc3Fy dGY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0 ZDJfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0 ZDRfYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi c3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfc3NlNCk7Ci0tCi0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRf c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJf c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBT bGVlZl9zcXJ0ZDJfc3NlNCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNxcnRfdjE2ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDg6IHNxcnRfdjhmNjQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogc3FydF92NGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng4OiBzcXJ0X3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNx cnRfdjJmNjQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogc3FydF92NGY2 NCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDQ6IHNxcnRfdjRmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IHNxcnRf djhmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzcXJ0X3YxNmYzMik7Ci0tCi0t ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc3FydF92MmY2NCk7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4NDogc3FydF92NGY2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogc3Fy dF92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjcgKzAsMCBAQAotLS8vISBWZXJ0aWNh bCBmbG9hdGluZy1wb2ludCBgc3FydGAKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1F IDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzcXJ0ZQotLQotLXVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9m c3FydDsKLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBTcXJ0ZSB7Ci0tICAg IGZuIHNxcnRlKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShT cXJ0ZSwgc3FydGUpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyhhbGwodGFyZ2V0X2Fy Y2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBz bGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVhdngyMTI4KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4 Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVl Zl9zcXJ0ZDRfdTM1YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1YXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4Mik7Ci0tICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc3Fy dGY4X3UzNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0 eDRdOiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF91MzVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X3UzNWF2eCk7Ci0tICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZf c3FydGY0X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+ IGY2NHgyXTogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNXNzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc3Fy dGQyX3UzNXNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbZ106IHNpbWRfZnNxcnQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NFtnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJb Z106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtnXTog c2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2Ugewot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDRbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDhbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ddOiBzaW1k X2ZzcXJ0KTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2ddOiBzaW1kX2ZzcXJ0KTsK LS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxOCArMCwwIEBACi0tLy8hIFZlcnRpY2Fs IGZsb2F0aW5nLXBvaW50IG1hdGggb3BlcmF0aW9ucy4KLS0jIVthbGxvdyhjbGlwcHk6OnVzZWxl c3NfdHJhbnNtdXRlKV0KLS0KLS0jW21hY3JvX3VzZV0KLS1wdWIoY3JhdGUpIG1vZCBtYWNyb3M7 Ci0tcHViKGNyYXRlKSBtb2QgYWJzOwotLXB1YihjcmF0ZSkgbW9kIGNvczsKLS1wdWIoY3JhdGUp IG1vZCBjb3NfcGk7Ci0tcHViKGNyYXRlKSBtb2QgZXhwOwotLXB1YihjcmF0ZSkgbW9kIGxuOwot LXB1YihjcmF0ZSkgbW9kIG11bF9hZGQ7Ci0tcHViKGNyYXRlKSBtb2QgbXVsX2FkZGU7Ci0tcHVi KGNyYXRlKSBtb2QgcG93ZjsKLS1wdWIoY3JhdGUpIG1vZCBzaW47Ci0tcHViKGNyYXRlKSBtb2Qg c2luX2Nvc19waTsKLS1wdWIoY3JhdGUpIG1vZCBzaW5fcGk7Ci0tcHViKGNyYXRlKSBtb2Qgc3Fy dDsKLS1wdWIoY3JhdGUpIG1vZCBzcXJ0ZTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vbWF0aC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzICswLDAgQEAK LS0vLyEgVmVydGljYWwgbWF0aCBvcGVyYXRpb25zCi0tCi0tcHViKGNyYXRlKSBtb2QgZmxvYXQ7 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9w b2ludGVyX3NpemVkX2ludC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDI4ICswLDAgQEAKLS0vLyEgUHJvdmlkZXMgYGlzaXplYCBhbmQgYHVz aXplYAotLQotLXVzZSBjZmdfaWY6OmNmZ19pZjsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tj ZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5 cGUgaXNpemVfID0gaTg7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTg7Ci0t ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIpXSB7Ci0tICAg ICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTE2OwotLSAgICAgICAgcHViKGNyYXRlKSB0 eXBlIHVzaXplXyA9IHUxNjsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dp ZHRoID0gIjMyIildIHsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMzI7Ci0t ICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTMyOwotLQotLSAgICB9IGVsc2UgaWYg I1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgcHViKGNyYXRl KSB0eXBlIGlzaXplXyA9IGk2NDsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1 NjQ7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7 Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTY0OwotLSAgICAgICAgcHViKGNy YXRlKSB0eXBlIHVzaXplXyA9IHU2NDsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2lu dGVyX3dpZHRoID0gIjEyOCIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0g aTEyODsKLS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MTI4OwotLSAgICB9IGVs c2UgewotLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVy X3dpZHRoIik7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0 aW9ucy9tYXNrL2FhcmNoNjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL2FhcmNoNjQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDgxICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBg YWFyY2g2NGAgdGFyZ2V0cwotLQotLS8vLyAxMjgtYml0IHdpZGUgdmVjdG9ycwotLW1hY3JvX3J1 bGVzISBhYXJjaDY0XzEyOF9uZW9uX2ltcGwgewotLSAgICAoJGlkOmlkZW50LCAkdm1pbjppZGVu dCwgJHZtYXg6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0g Im5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OiR2bWluOwotLSAgICAgICAg ICAgICAgICAkdm1pbihjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJu ZW9uIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojokdm1heDsKLS0gICAgICAgICAg ICAgICAgJHZtYXgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gNjQtYml0IHdpZGUgdmVjdG9y cwotLW1hY3JvX3J1bGVzISBhYXJjaDY0XzY0X25lb25faW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQs ICR2ZWMxMjg6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0g Im5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAg ICAgICAgICAgICAgICAvLyBEdXBsaWNhdGVzIHRoZSA2NC1iaXQgdmVjdG9yIGludG8gYSAxMjgt Yml0IG9uZSBhbmQKLS0gICAgICAgICAgICAgICAgLy8gY2FsbHMgYWxsIG9uIHRoYXQuCi0tICAg ICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGlk LCAkaWQpLAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjMTI4LAotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IChzZWxmLCBzZWxmKSB9LnZlYy5h bGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gIm5lb24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAg IGhhbHZlczogKCRpZCwgJGlkKSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJHZlYzEyOCwK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBVIHsgaGFsdmVzOiAoc2VsZiwg c2VsZikgfS52ZWMuYW55KCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotLQotLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgYGFhcmNoNjRgIHRh cmdldHMKLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgewotLSAgICAvLyA2NC1i aXQgd2lkZSBtYXNrcwotLSAgICAobTh4OCkgPT4gewotLSAgICAgICAgYWFyY2g2NF82NF9uZW9u X2ltcGwhKG04eDgsIG04eDE2KTsKLS0gICAgfTsKLS0gICAgKG0xNng0KSA9PiB7Ci0tICAgICAg ICBhYXJjaDY0XzY0X25lb25faW1wbCEobTE2eDQsIG0xNng4KTsKLS0gICAgfTsKLS0gICAgKG0z MngyKSA9PiB7Ci0tICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTMyeDIsIG0zMng0KTsK LS0gICAgfTsKLS0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCi0tICAgIChtOHgxNikgPT4gewot LSAgICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtOHgxNiwgdm1pbnZxX3U4LCB2bWF4dnFf dTgpOwotLSAgICB9OwotLSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfMTI4X25l b25faW1wbCEobTE2eDgsIHZtaW52cV91MTYsIHZtYXh2cV91MTYpOwotLSAgICB9OwotLSAgICAo bTMyeDQpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfMTI4X25lb25faW1wbCEobTMyeDQsIHZtaW52 cV91MzIsIHZtYXh2cV91MzIpOwotLSAgICB9OwotLSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3Mg ZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAg IGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNr L2FybS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2svYXJtLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay9hcm0ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDU2ICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgYXJt YCB0YXJnZXRzCi0tCi0tLy8vIEltcGxlbWVudGF0aW9uIGZvciBBUk0gKyB2NyArIE5FT04gZm9y IDY0LWJpdCBvciAxMjgtYml0IHdpZGUgdmVjdG9ycyB3aXRoCi0tLy8vIG1vcmUgdGhhbiB0d28g ZWxlbWVudHMuCi0tbWFjcm9fcnVsZXMhIGFybV8xMjhfdjdfbmVvbl9pbXBsIHsKLS0gICAgKCRp ZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjppZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7Ci0t ICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJ2NyxuZW9uIildCi0tICAgICAgICAg ICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjphcm06OiR2cG1pbjsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06 OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAg ICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAotLSAgICAgICAgICAgICAgICAgICAgdmVjOiAk aWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUg eyB2ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRy YW5zbXV0ZSgkdnBtaW4odHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkp OwotLSAgICAgICAgICAgICAgICBoLmFsbCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAidjcsbmVvbiIpXQotLSAgICAgICAg ICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6YXJtOjokdnBtYXg7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVt Ojp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAg ICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzog JGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBV IHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0 cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkp KTsKLS0gICAgICAgICAgICAgICAgaC5hbnkoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS19Ci0tCi0tLy8vIE1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciBg YXJtYCB0YXJnZXRzCi0tbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKLS0gICAg Ly8gMTI4LWJpdCB3aWRlIG1hc2tzCi0tICAgIChtOHgxNikgPT4gewotLSAgICAgICAgYXJtXzEy OF92N19uZW9uX2ltcGwhKG04eDE2LCBtOHg4LCB2cG1pbl91OCwgdnBtYXhfdTgpOwotLSAgICB9 OwotLSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIGFybV8xMjhfdjdfbmVvbl9pbXBsIShtMTZ4 OCwgbTE2eDQsIHZwbWluX3UxNiwgdnBtYXhfdTE2KTsKLS0gICAgfTsKLS0gICAgKG0zMng0KSA9 PiB7Ci0tICAgICAgICBhcm1fMTI4X3Y3X25lb25faW1wbCEobTMyeDQsIG0zMngyLCB2cG1pbl91 MzIsIHZwbWF4X3UzMik7Ci0tICAgIH07Ci0tICAgIC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZh dWx0IGNvZGUtZ2VuZXJhdGlvbjoKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgZmFs bGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay9mYWxsYmFjay5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw4ICswLDAgQEAKLS0vLyEgRGVmYXVsdCBtYXNrIHJlZHVjdGlvbiBp bXBsZW1lbnRhdGlvbnMuCi0tCi0tLy8vIERlZmF1bHQgbWFzayByZWR1Y3Rpb24gaW1wbGVtZW50 YXRpb24KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgewotLSAgICAoJGlkOmlk ZW50KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFs bGJhY2tfaW1wbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv ZmFsbGJhY2tfaW1wbC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMjM3ICswLDAgQEAKLS0vLyEgRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hc2sgcmVk dWN0aW9uIGZvciBhbnkgdGFyZ2V0LgotLQotLW1hY3JvX3J1bGVzISBmYWxsYmFja190b19vdGhl cl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCwgJG90aGVyOmlkZW50KSA9PiB7Ci0tICAgICAgICBp bXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1 bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgbTogJG90 aGVyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBtLmFs bCgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRp ZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShz ZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IG06ICRvdGhlciA9IGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgbS5hbnkoKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIEZhbGxiYWNrIGltcGxlbWVu dGF0aW9uLgotLW1hY3JvX3J1bGVzISBmYWxsYmFja19pbXBsIHsKLS0gICAgLy8gMTYtYml0IHdp ZGUgbWFza3M6Ci0tICAgIChtOHgyKSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MiB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IHUxNiA9IGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgaSA9PSB1MTY6Om1heF92YWx1ZSgpCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDIgewot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1MTYgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gMzItYml0IHdpZGUgbWFza3MKLS0gICAgKG04eDQp ID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHg0IHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAg ICAgICAgICBsZXQgaTogdTMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAg ICAgICAgICAgICBpID09IHUzMjo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4NCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgbGV0IGk6IHUzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAg ICAgICAgICAgaSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAg ICAobTE2eDIpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngyLCBt OHg0KTsKLS0gICAgfTsKLS0gICAgLy8gNjQtYml0IHdpZGUgbWFza3M6Ci0tICAgIChtOHg4KSA9 PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4OCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgbGV0IGk6IHU2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAg ICAgICAgICAgaSA9PSB1NjQ6Om1heF92YWx1ZSgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDggewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAg ICAgIGxldCBpOiB1NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAg ICAgICAgIGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAg KG0xNng0KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4NCwgbTh4 OCk7Ci0tICAgIH07Ci0tICAgIChtMzJ4MikgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3Ro ZXJfaW1wbCEobTMyeDIsIG0xNng0KTsKLS0gICAgfTsKLS0gICAgLy8gRklYTUU6IDY0eDEgbWF4 awotLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3M6Ci0tICAgIChtOHgxNikgPT4gewotLSAgICAg ICAgaW1wbCBBbGwgZm9yIG04eDE2IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQg aTogdTEyOCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAg aSA9PSB1MTI4OjptYXhfdmFsdWUoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg ICAgIGltcGwgQW55IGZvciBtOHgxNiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgbGV0 IGk6IHUxMjggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAg IGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKG0xNng4 KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4OCwgbTh4MTYpOwot LSAgICB9OwotLSAgICAobTMyeDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2lt cGwhKG0zMng0LCBtMTZ4OCk7Ci0tICAgIH07Ci0tICAgIChtNjR4MikgPT4gewotLSAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTY0eDIsIG0zMng0KTsKLS0gICAgfTsKLS0gICAgKG0x Mjh4MSkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTEyOHgxLCBtNjR4 Mik7Ci0tICAgIH07Ci0tICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4MzIpID0+ IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHgzMiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgbGV0IGk6IFt1MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0g ICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4OyAyXSA9IFt1MTI4OjptYXhfdmFsdWUoKTsgMl07 Ci0tICAgICAgICAgICAgICAgIGkgPT0gbwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgICAgIGltcGwgQW55IGZvciBtOHgzMiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAg bGV0IGk6IFt1MTI4OyAyXSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAg ICAgICAgICAgbGV0IG86IFt1MTI4OyAyXSA9IFswOyAyXTsKLS0gICAgICAgICAgICAgICAgaSAh PSBvCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAobTE2eDE2KSA9 PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4MTYsIG04eDMyKTsKLS0g ICAgfTsKLS0gICAgKG0zMng4KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBs IShtMzJ4OCwgbTE2eDE2KTsKLS0gICAgfTsKLS0gICAgKG02NHg0KSA9PiB7Ci0tICAgICAgICBm YWxsYmFja190b19vdGhlcl9pbXBsIShtNjR4NCwgbTMyeDgpOwotLSAgICB9OwotLSAgICAobTEy OHgyKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTI4eDIsIG02NHg0 KTsKLS0gICAgfTsKLS0gICAgLy8gNTEyLWJpdCB3aWRlIG1hc2tzCi0tICAgIChtOHg2NCkgPT4g ewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDY0IHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICBsZXQgaTogW3UxMjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAg ICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7IDRdID0gW3UxMjg6Om1heF92YWx1ZSgpOyA0XTsK LS0gICAgICAgICAgICAgICAgaSA9PSBvCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICAgICAgaW1wbCBBbnkgZm9yIG04eDY0IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBs ZXQgaTogW3UxMjg7IDRdID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAg ICAgICAgICBsZXQgbzogW3UxMjg7IDRdID0gWzA7IDRdOwotLSAgICAgICAgICAgICAgICBpICE9 IG8KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChtMTZ4MzIpID0+ IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngzMiwgbTh4NjQpOwotLSAg ICB9OwotLSAgICAobTMyeDE2KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBs IShtMzJ4MTYsIG0xNngzMik7Ci0tICAgIH07Ci0tICAgIChtNjR4OCkgPT4gewotLSAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTY0eDgsIG0zMngxNik7Ci0tICAgIH07Ci0tICAgICht MTI4eDQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xMjh4NCwgbTY0 eDgpOwotLSAgICB9OwotLSAgICAvLyBNYXNrcyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHM2 NAotLSAgICAobXNpemV4MikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAg aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtNjR4Mik7Ci0tICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTMyeDIpOwotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBv cnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS0gICAgKG1zaXpleDQpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAg ICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTY0eDQpOwotLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0t ICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsK LS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgi dW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIChtc2l6ZXg4KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsK LS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0t ICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsK LS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIi KV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBt MzJ4OCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgY29tcGlsZV9l cnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgcmVjdXJzZV9oYWxm IHsKLS0gICAgKCR2aWQ6aWRlbnQsICR2aWRfaDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBB bGwgZm9yICR2aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAg ICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJHZpZF9oLCAkdmlkX2gpLAotLSAgICAgICAgICAg ICAgICAgICAgdmVjOiAkdmlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICBo YWx2ZXMuMC5hbGwoKSAmJiBoYWx2ZXMuMS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkdmlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCR2aWRfaCwgJHZp ZF9oKSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsK LS0gICAgICAgICAgICAgICAgaGFsdmVzLjAuYW55KCkgfHwgaGFsdmVzLjEuYW55KCkKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMv bWFzay94ODYvYXZ4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw5NSArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1l bnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBgQVZYYAotLQotLS8v LyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IGBBVlhgIGltcGxlbWVudGF0aW9uCi0tLy8vIEZJWE1F OiBpdCBtaWdodCBiZSBmYXN0ZXIgaGVyZSB0byBkbyB0d28gYF9tbV9tb3ZtYXNrX2VwaThgCi0t I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9h dnhfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gImF2eCIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rlc3RjX3NpMjU2Owot LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0Y19zaTI1NjsKLS0g ICAgICAgICAgICAgICAgX21tMjU2X3Rlc3RjX3NpMjU2KGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKSwgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKCRpZDo6c3BsYXQodHJ1ZSkpKSAhPSAwCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUg PSAiYXZ4IildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfdGVzdHpfc2kyNTY7Ci0tICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X3Rlc3R6X3NpMjU2OwotLSAgICAgICAgICAg ICAgICBfbW0yNTZfdGVzdHpfc2kyNTYoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLCBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IG0zMng4IGBBVlhg IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4OF9hdnhfaW1wbCB7Ci0tICAg ICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOwotLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKLS0gICAgICAgICAgICAgICAg Ly8gX21tMjU2X21vdmVtYXNrX3BzKGEpIGNyZWF0ZXMgYSA4Yml0IG1hc2sgY29udGFpbmluZyB0 aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5l IG9mIGBhYC4gSWYgYWxsIGJpdHMgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHNldCwgdGhlbiBh bGwgOCBsYW5lcyBvZiB0aGUgbWFzayBhcmUgdHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tMjU2 X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV8xMTEx X2kzMgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAk aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOwot LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKLS0K LS0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0t Ci0tLy8vIGB4ODZgL2B4ODZfNjRgIDI1Ni1iaXQgbTY0eDQgYEFWWGAgaW1wbGVtZW50YXRpb24K LS1tYWNyb19ydWxlcyEgeDg2X202NHg0X2F2eF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4g ewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAg ICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6 eDg2OjpfbW0yNTZfbW92ZW1hc2tfcGQ7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82 NDo6X21tMjU2X21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1h c2tfcGQoYSkgY3JlYXRlcyBhIDRiaXQgbWFzayBjb250YWluaW5nIHRoZQotLSAgICAgICAgICAg ICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwg Yml0cyBhcmUKLS0gICAgICAgICAgICAgICAgLy8gc2V0LCB0aGVuIGFsbCA0IGxhbmVzIG9mIHRo ZSBtYXNrIGFyZSB0cnVlLgotLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcGQoY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMTExX2kzMgotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQot LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjph cmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKLS0KLS0gICAgICAgICAgICAgICAgX21t MjU2X21vdmVtYXNrX3BkKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMv bWFzay94ODYvYXZ4Mi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwzNSArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBs ZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBgQVZYMmAuCi0t IyFbYWxsb3codW51c2VkKV0KLS0KLS0vLy8geDg2L3g4Nl82NCAyNTYtYml0IG04eDMyIEFWWDIg aW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDMyX2F2eDJfaW1wbCB7Ci0tICAg ICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZTIiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OwotLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OwotLSAgICAgICAgICAg ICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfZXBpOChhKSBjcmVhdGVzIGEgMzJiaXQgbWFzayBjb250 YWluaW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBl YWNoIGJ5dGUgb2YgYGFgLiBJZiBhbGwKLS0gICAgICAgICAgICAgICAgLy8gYml0cyBhcmUgc2V0 LCB0aGVuIGFsbCAzMiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKLS0gICAgICAgICAgICAgICAgLy8g dHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX2VwaTgoY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHNlbGYpKSA9PSAtMV9pMzIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAg ICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UyIildCi0tICAgICAgICAgICAg dW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2 OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0 OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKLS0KLS0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVt YXNrX2VwaTgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2 L3NzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sveDg2L3NzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsMzUgKzAsMCBAQAotLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24g Zm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYFNTRWAuCi0tIyFbYWxsb3codW51 c2VkKV0KLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBgbTMyeDRgIGBTU0VgIGltcGxl bWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4NF9zc2VfaW1wbCB7Ci0tICAgICgkaWQ6 aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQot LSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX3BzOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19wczsKLS0gICAgICAgICAgICAgICAgLy8gX21tX21vdmVt YXNrX3BzKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0aGUKLS0gICAgICAgICAg ICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxs Ci0tICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgNCBsYW5lcyBvZiB0 aGUgbWFzayBhcmUKLS0gICAgICAgICAgICAgICAgLy8gdHJ1ZS4KLS0gICAgICAgICAgICAgICAg X21tX21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV9p MzIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJl KGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJv b2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wczsKLS0gICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7Ci0tCi0tICAgICAg ICAgICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9 IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNr L3g4Ni9zc2UyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjggKzAsMCBAQAotLS8vISBNYXNrIHJlZHVj dGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGgg YFNTRTJgLgotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDEyOC1i aXQgbTY0eDIgYFNTRTJgIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tNjR4Ml9z c2UyX2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0 dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wZDsKLS0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcGQ7Ci0tICAgICAg ICAgICAgICAgIC8vIF9tbV9tb3ZlbWFza19wZChhKSBjcmVhdGVzIGEgMmJpdCBtYXNrIGNvbnRh aW5pbmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVh Y2ggbGFuZSBvZiBgYWAuIElmIGFsbAotLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBzZXQs IHRoZW4gYWxsIDIgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHRy dWUuCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wZChjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZikpID09IDBiXzExX2kzMgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg ICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQotLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21t X21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZf NjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3Zl bWFza19wZDsKLS0KLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3BkKGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDEyOC1iaXQgbTh4MTYgYFNTRTJgIGltcGxl bWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgxNl9zc2UyX2ltcGwgewotLSAgICAoJGlk OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UyIild Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfZXBpODsKLS0gICAgICAgICAgICAgICAgLy8gX21t X21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBhIDE2Yml0IG1hc2sgY29udGFpbmluZyB0aGUKLS0g ICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBieXRlIG9mIGBh YC4gSWYgYWxsCi0tICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgMTYg bGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHRydWUuCi0tICAgICAg ICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkg PT0gaTMyOjpmcm9tKHUxNjo6bWF4X3ZhbHVlKCkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlMiIpXQotLSAgICAgICAg ICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6 Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82 NDo6X21tX21vdmVtYXNrX2VwaTg7Ci0tCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19l cGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay94ODYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjE2ICswLDAgQEAK LS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82 NGAgdGFyZ2V0cwotLQotLSNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXQotLSNbbWFjcm9f dXNlXQotLW1vZCBzc2U7Ci0tCi0tI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXQotLSNb bWFjcm9fdXNlXQotLW1vZCBzc2UyOwotLQotLSNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIp XQotLSNbbWFjcm9fdXNlXQotLW1vZCBhdng7Ci0tCi0tI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi YXZ4MiIpXQotLSNbbWFjcm9fdXNlXQotLW1vZCBhdngyOwotLQotLS8vLyB4ODYgNjQtYml0IG04 eDggaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDhfaW1wbCB7Ci0tICAgICgk aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgIH07Ci0t fQotLQotLS8vLyB4ODYgMTI4LWJpdCBtOHgxNiBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVz ISB4ODZfbTh4MTZfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNmZ19p ZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0gewot LSAgICAgICAgICAgICAgICB4ODZfbTh4MTZfc3NlMl9pbXBsISgkaWQpOwotLSAgICAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8geDg2IDEyOC1iaXQgbTMy eDQgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X20zMng0X2ltcGwgewotLSAgICAo JGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0gewotLSAgICAgICAgICAgICAgICB4ODZfbTMyeDRf c3NlX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg ZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tfQotLQotLS8vLyB4ODYgMTI4LWJpdCBtNjR4MiBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1 bGVzISB4ODZfbTY0eDJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNm Z19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0g ewotLSAgICAgICAgICAgICAgICB4ODZfbTY0eDJfc3NlMl9pbXBsISgkaWQpOwotLSAgICAgICAg ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0gewotLSAgICAgICAg ICAgICAgICB4ODZfbTMyeDRfc3NlX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyB4ODYgMjU2LWJpdCBtOHgzMiBpbXBsZW1l bnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTh4MzJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQs ICRoYWxmX2lkOmlkZW50KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBp ZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgeDg2 X204eDMyX2F2eDJfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgeDg2X204eDMyX2F2eF9p bXBsISgkaWQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgcmVjdXJzZV9oYWxmISgkaWQsICRoYWxmX2lk KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8v IHg4NiAyNTYtYml0IG0zMng4IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4 OF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKLS0gICAgICAg IGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIp XSB7Ci0tICAgICAgICAgICAgICAgIHg4Nl9tMzJ4OF9hdnhfaW1wbCEoJGlkKTsKLS0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKLS0gICAgICAg ICAgICAgICAgcmVjdXJzZV9oYWxmISgkaWQsICRoYWxmX2lkKTsKLS0gICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIHg4NiAyNTYtYml0IG02NHg0IGlt cGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tNjR4NF9pbXBsIHsKLS0gICAgKCRpZDpp ZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAg ICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAg IHg4Nl9tNjR4NF9hdnhfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKLS0gICAgICAgICAgICAgICAgcmVjdXJzZV9oYWxm ISgkaWQsICRoYWxmX2lkKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAg ICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci0tCi0tLy8vIEZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgotLW1hY3JvX3J1bGVzISB4 ODZfaW50cl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwg Zm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZu IGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX3JlZHVjZV9hbGw7Ci0tICAgICAgICAgICAgICAgIHNpbWRfcmVkdWNlX2FsbChzZWxmLjAp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVj ZV9hbnk7Ci0tICAgICAgICAgICAgICAgIHNpbWRfcmVkdWNlX2FueShzZWxmLjApCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gTWFzayByZWR1Y3Rpb24g aW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzCi0tbWFjcm9fcnVs ZXMhIGltcGxfbWFza19yZWR1Y3Rpb25zIHsKLS0gICAgLy8gNjQtYml0IHdpZGUgbWFza3MKLS0g ICAgKG04eDgpID0+IHsKLS0gICAgICAgIHg4Nl9tOHg4X2ltcGwhKG04eDgpOwotLSAgICB9Owot LSAgICAobTE2eDQpID0+IHsKLS0gICAgICAgIHg4Nl9tOHg4X2ltcGwhKG0xNng0KTsKLS0gICAg fTsKLS0gICAgKG0zMngyKSA9PiB7Ci0tICAgICAgICB4ODZfbTh4OF9pbXBsIShtMzJ4Mik7Ci0t ICAgIH07Ci0tICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4MTYpID0+IHsKLS0g ICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtOHgxNik7Ci0tICAgIH07Ci0tICAgIChtMTZ4OCkgPT4g ewotLSAgICAgICAgeDg2X204eDE2X2ltcGwhKG0xNng4KTsKLS0gICAgfTsKLS0gICAgKG0zMng0 KSA9PiB7Ci0tICAgICAgICB4ODZfbTMyeDRfaW1wbCEobTMyeDQpOwotLSAgICB9OwotLSAgICAo bTY0eDIpID0+IHsKLS0gICAgICAgIHg4Nl9tNjR4Ml9pbXBsIShtNjR4Mik7Ci0tICAgIH07Ci0t ICAgIChtMTI4eDEpID0+IHsKLS0gICAgICAgIHg4Nl9pbnRyX2ltcGwhKG0xMjh4MSk7Ci0tICAg IH07Ci0tICAgIC8vIDI1Ni1iaXQgd2lkZSBtYXNrczoKLS0gICAgKG04eDMyKSA9PiB7Ci0tICAg ICAgICB4ODZfbTh4MzJfaW1wbCEobTh4MzIsIG04eDE2KTsKLS0gICAgfTsKLS0gICAgKG0xNngx NikgPT4gewotLSAgICAgICAgeDg2X204eDMyX2ltcGwhKG0xNngxNiwgbTE2eDgpOwotLSAgICB9 OwotLSAgICAobTMyeDgpID0+IHsKLS0gICAgICAgIHg4Nl9tMzJ4OF9pbXBsIShtMzJ4OCwgbTMy eDQpOwotLSAgICB9OwotLSAgICAobTY0eDQpID0+IHsKLS0gICAgICAgIHg4Nl9tNjR4NF9pbXBs IShtNjR4NCwgbTY0eDIpOwotLSAgICB9OwotLSAgICAobTEyOHgyKSA9PiB7Ci0tICAgICAgICB4 ODZfaW50cl9pbXBsIShtMTI4eDIpOwotLSAgICB9OwotLSAgICAobXNpemV4MikgPT4gewotLSAg ICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiNjQiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsISht c2l6ZXgyLCBtNjR4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2lu dGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJf aW1wbCEobXNpemV4MiwgbTMyeDIpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIp OwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKG1zaXpleDQpID0+ IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2lu dGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJf aW1wbCEobXNpemV4NCwgbTY0eDQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3Rv X290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJf d2lkdGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChtc2l6 ZXg4KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3Rv X290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgICAgICAgICBmYWxs YmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtMzJ4OCk7Ci0tICAgICAgICAgICAgfSBlbHNl IHsKLS0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9w b2ludGVyX3dpZHRoIik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLQot LSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246Ci0tICAg ICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgIH07 Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNjkgKzAsMCBAQAotLS8vISBDb2RlIGdlbmVyYXRpb24gd29ya2Fyb3VuZCBm b3IgYGFsbCgpYCBtYXNrIGhvcml6b250YWwgcmVkdWN0aW9uLgotLS8vIQotLS8vISBXb3JrcyBh cm91bmQgW0xMVk0gYnVnIDM2NzAyXS4KLS0vLyEKLS0vLyEgW0xMVk0gYnVnIDM2NzAyXTogaHR0 cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjcwMgotLSMhW2FsbG93KHVudXNl ZF9tYWNyb3MpXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IEFsbDog Y3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2w7 Ci0tfQotLQotLXB1YihjcmF0ZSkgdHJhaXQgQW55OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7Ci0t ICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbDsKLS19Ci0tCi0tI1ttYWNyb191c2VdCi0t bW9kIGZhbGxiYWNrX2ltcGw7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKGFueSh0YXJn ZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSldIHsKLS0gICAgICAgICNb bWFjcm9fdXNlXQotLSAgICAgICAgbW9kIHg4NjsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0 YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpXSB7Ci0tICAg ICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCBhcm07Ci0tICAgIH0gZWxzZSBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKSld IHsKLS0gICAgICAgICNbbWFjcm9fdXNlXQotLSAgICAgICAgbW9kIGFhcmNoNjQ7Ci0tICAgIH0g ZWxzZSB7Ci0tICAgICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCBmYWxsYmFjazsKLS0g ICAgfQotLX0KLS0KLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4Mik7Ci0taW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG04eDQpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg4KTsKLS1pbXBsX21h c2tfcmVkdWN0aW9ucyEobTh4MTYpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHgzMik7Ci0t aW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDY0KTsKLS0KLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEo bTE2eDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4NCk7Ci0taW1wbF9tYXNrX3JlZHVj dGlvbnMhKG0xNng4KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDE2KTsKLS1pbXBsX21h c2tfcmVkdWN0aW9ucyEobTE2eDMyKTsKLS0KLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDIp OwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMzJ4NCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMh KG0zMng4KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDE2KTsKLS0KLS0vLyBGSVhNRTog NjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgotLS8vIGltcGxfbWFza19yZWR1Y3Rpb25zISht NjR4MSk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG02NHgyKTsKLS1pbXBsX21hc2tfcmVkdWN0 aW9ucyEobTY0eDQpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4OCk7Ci0tCi0taW1wbF9t YXNrX3JlZHVjdGlvbnMhKG0xMjh4MSk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4Mik7 Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xMjh4NCk7Ci0tCi0taW1wbF9tYXNrX3JlZHVjdGlv bnMhKG1zaXpleDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXg0KTsKLS1pbXBsX21h c2tfcmVkdWN0aW9ucyEobXNpemV4OCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEgKzAsMCBAQAotLXB1YihjcmF0ZSkgbW9kIG1hc2s7Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxlLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTUwICswLDAgQEAKLS0vLyEgSW1wbGVtZW50YXRpb25zIG9mIHRo ZSBgU2h1ZmZsZVJlc3VsdGAgdHJhaXQgZm9yIHRoZSBkaWZmZXJlbnQgbnVtYmVycyBvZgotLS8v ISBsYW5lcyBhbmQgdmVjdG9yIGVsZW1lbnQgdHlwZXMuCi0tCi0tdXNlIGNyYXRlOjptYXNrczo6 KjsKLS11c2UgY3JhdGU6OnNlYWxlZDo6e1NlYWwsIFNodWZmbGV9OwotLQotLW1hY3JvX3J1bGVz ISBpbXBsX3NodWZmbGUgewotLSAgICAoJGFycmF5OnR5LCAkYmFzZTp0eSwgJG91dDp0eSkgPT4g ewotLSAgICAgICAgaW1wbCBTZWFsPCRhcnJheT4gZm9yICRiYXNlIHt9Ci0tICAgICAgICBpbXBs IFNodWZmbGU8JGFycmF5PiBmb3IgJGJhc2UgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g JG91dDsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7 IDJdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0 XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0s IGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwg aTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDMyXSwg aTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDY0XSwg aTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJd LCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwg dTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHU4 LCBjcmF0ZTo6Y29kZWdlbjo6dTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTgs IGNyYXRlOjpjb2RlZ2VuOjp1OHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDMyXSwgdTgs IGNyYXRlOjpjb2RlZ2VuOjp1OHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDY0XSwgdTgs IGNyYXRlOjpjb2RlZ2VuOjp1OHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBt OCwgY3JhdGU6OmNvZGVnZW46Om04eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTgs IGNyYXRlOjpjb2RlZ2VuOjptOHg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIG04LCBj cmF0ZTo6Y29kZWdlbjo6bTh4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgbTgsIGNy YXRlOjpjb2RlZ2VuOjptOHgxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDMyXSwgbTgsIGNy YXRlOjpjb2RlZ2VuOjptOHgzMiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDY0XSwgbTgsIGNy YXRlOjpjb2RlZ2VuOjptOHg2NCB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpMTYs IGNyYXRlOjpjb2RlZ2VuOjppMTZ4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpMTYs IGNyYXRlOjpjb2RlZ2VuOjppMTZ4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpMTYs IGNyYXRlOjpjb2RlZ2VuOjppMTZ4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgaTE2 LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDE2IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMzJdLCBp MTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MzIgfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAy XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0 XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4 XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDggfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAx Nl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngxNiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7 IDMyXSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDMyIH0KLS0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMl0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNngyIH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgNF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNng0IH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgOF0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0xNng4IH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMTZdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4MTYgfQotLQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDIgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA0XSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDQgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA4XSwgaTMyLCBjcmF0ZTo6Y29kZWdlbjo6aTMyeDggfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxNl0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMngxNiB9Ci0tCi0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDJdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4MiB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4NCB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDhdLCB1MzIsIGNyYXRlOjpjb2RlZ2VuOjp1MzJ4OCB9Ci0taW1wbF9z aHVmZmxlISB7IFt1MzI7IDE2XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6dTMyeDE2IH0KLS0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGYzMiwgY3JhdGU6OmNvZGVnZW46OmYzMngyIH0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGYzMiwgY3JhdGU6OmNvZGVnZW46OmYzMng0IH0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGYzMiwgY3JhdGU6OmNvZGVnZW46OmYzMng4IH0KLS1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBmMzIsIGNyYXRlOjpjb2RlZ2VuOjpmMzJ4MTYgfQot LQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDIg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDQg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbTMyLCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDgg fQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIG0zMiwgY3JhdGU6OmNvZGVnZW46Om0zMngx NiB9Ci0tCi0tLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KLS0qLwotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDIgfQotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDQgfQotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDggfQotLQot LS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Ci0tKi8KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMl0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHgyIH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNF0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHg0IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgOF0sIHU2NCwgY3JhdGU6OmNvZGVnZW46OnU2NHg4IH0KLS0KLS0vKiBGSVhN RTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAx XSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQotLSovCi0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDJdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDRdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDhdLCBmNjQsIGNyYXRlOjpjb2RlZ2VuOjpmNjR4OCB9Ci0tCi0tLyogRklYTUU6IDY0LWJp dCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwg Y3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KLS0qLwotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwg bTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwg bTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwg bTY0LCBjcmF0ZTo6Y29kZWdlbjo6bTY0eDggfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAy XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6ZXgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgNF0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNpemV4NCB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDhdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDggfQotLQotLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAyXSwgdXNpemUsIGNyYXRlOjpjb2RlZ2VuOjp1c2l6ZXgyIH0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIHVzaXplLCBjcmF0ZTo6Y29kZWdlbjo6dXNpemV4NCB9Ci0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1c2l6ZSwgY3JhdGU6OmNvZGVnZW46OnVzaXpleDgg fQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbXNpemUsIGNyYXRlOjpjb2RlZ2VuOjpt c2l6ZXgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG1zaXplLCBjcmF0ZTo6Y29kZWdl bjo6bXNpemV4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtc2l6ZSwgY3JhdGU6OmNv ZGVnZW46Om1zaXpleDggfQotLQotLWltcGw8VD4gU2VhbDxbdTMyOyAyXT4gZm9yICpjb25zdCBU IHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDJdPiBmb3IgKmNvbnN0IFQgewotLSAgICB0eXBl IE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDI8VD47Ci0tfQotLWltcGw8VD4gU2VhbDxb dTMyOyA0XT4gZm9yICpjb25zdCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDRdPiBmb3Ig KmNvbnN0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjpjcHRyeDQ8VD47 Ci0tfQotLWltcGw8VD4gU2VhbDxbdTMyOyA4XT4gZm9yICpjb25zdCBUIHt9Ci0taW1wbDxUPiBT aHVmZmxlPFt1MzI7IDhdPiBmb3IgKmNvbnN0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRl Ojpjb2RlZ2VuOjpjcHRyeDg8VD47Ci0tfQotLQotLWltcGw8VD4gU2VhbDxbdTMyOyAyXT4gZm9y ICptdXQgVCB7fQotLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyAyXT4gZm9yICptdXQgVCB7Ci0tICAg IHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46Om1wdHJ4MjxUPjsKLS19Ci0taW1wbDxUPiBT ZWFsPFt1MzI7IDRdPiBmb3IgKm11dCBUIHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDRdPiBm b3IgKm11dCBUIHsKLS0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6bXB0cng0PFQ+ OwotLX0KLS1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+IGZvciAqbXV0IFQge30KLS1pbXBsPFQ+IFNo dWZmbGU8W3UzMjsgOF0+IGZvciAqbXV0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpj b2RlZ2VuOjptcHRyeDg8VD47Ci0tfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTEy OCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MSB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBp MTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0s IGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDQgfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyAxXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4MSB9Ci0taW1wbF9zaHVmZmxlISB7IFt1 MzI7IDJdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHgyIH0KLS1pbXBsX3NodWZmbGUhIHsg W3UzMjsgNF0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDQgfQotLQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxXSwgbTEyOCwgY3JhdGU6OmNvZGVnZW46Om0xMjh4MSB9Ci0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDJdLCBtMTI4LCBjcmF0ZTo6Y29kZWdlbjo6bTEyOHgyIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIG0xMjgsIGNyYXRlOjpjb2RlZ2VuOjptMTI4eDQgfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZTFf ZHluLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zaHVmZmxl MV9keW4ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v c2h1ZmZsZTFfZHluLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDA4ICswLDAgQEAK LS0vLyEgU2h1ZmZsZSB2ZWN0b3IgbGFuZXMgd2l0aCBydW4tdGltZSBpbmRpY2VzLgotLQotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1wdWIgdHJhaXQgU2h1ZmZsZTFEeW4gewotLSAgICB0eXBlIEluZGlj ZXM7Ci0tICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBfOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxm OwotLX0KLS0KLS0vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISBpbXBs X2ZhbGxiYWNrIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBTaHVmZmxl MUR5biBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRp Y2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IG11dCBy ZXN1bHQgPSBTZWxmOjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNl KGksIHNlbGYuZXh0cmFjdChpbmRpY2VzLmV4dHJhY3QoaSkgYXMgdXNpemUpKTsKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICByZXN1bHQKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5biB7 Ci0tICAgICh1OHg4KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAj W2NmZyhhbGwoCi0tICAgICAgICAgICAgICAgIGFueSgKLS0gICAgICAgICAgICAgICAgICAgIGFs bCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpLAotLSAg ICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gImRvZXNub3RleGlzdCIsIHRhcmdl dF9mZWF0dXJlID0gInY3IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVy ZSA9ICJuZW9uIikKLS0gICAgICAgICAgICAgICAgKSwKLS0gICAgICAgICAgICAgICAgYW55KGZl YXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKQotLSAgICAgICAgICAgICkKLS0gICAg ICAgICAgICApXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4eDgg ewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHlu KHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OnZ0YmwxX3U4OwotLSAgICAgICAg ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImRvZXNub3RleGlzdCIpXQotLSAg ICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjp2dGJsMV91ODsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmlu YXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZW9uIGVu YWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KLS0gICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTaW1kKG1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dnRibDFfdTgobWVtOjp0cmFuc211dGUoc2VsZi4wKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMuMCkpCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4OCk7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAodTh4MTYpID0+IHsKLS0gICAgICAg IGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbChhbnkodGFyZ2V0X2FyY2ggPSAi eDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9mZWF0dXJlID0gInNzc2UzIikpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1 ZmZsZTFEeW4gZm9yIHU4eDE2IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9 IFNlbGY7Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0K LS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX3NodWZm bGVfZXBpODsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82 NDo6X21tX3NodWZmbGVfZXBpODsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz IHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBzc3NlMyBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBhbmQgY2FuIHRoZXJl Zm9yZSBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9uIENQVXMgdGhhdCBo YXZlIGl0IGVuYWJsZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZSgKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9tbV9zaHVmZmxlX2VwaTgobWVtOjp0cmFuc211dGUoc2Vs Zi4wKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJj b3JlX25lb24pKSldIHsKLS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4 MTYgewotLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAg ICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFf ZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFyY2g2NDo6dnF0YmwxcV91ODsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5 IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZW9uIGVuYWJs ZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KLS0gICAgICAg ICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBT aW1kKG1lbTo6dHJhbnNtdXRlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnF0 YmwxcV91OChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApKQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiZG9lc25vdGV4aXN0IiwgdGFyZ2V0 X2ZlYXR1cmUgPSAidjciLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnko ZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSldIHsKLS0gICAgICAgICAgICAg ICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYgewotLSAgICAgICAgICAgICAgICAgICAgdHlw ZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGlj ZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6 YXJtOjp2dGJsMl91ODsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNh ZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBuZW9uIGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3Jl IG9ubHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUg aXQgZW5hYmxlZC4KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGo6IHU4eDE2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogKHU4 eDgsIHU4eDgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCAoaTAsIGkxKSA9IFUgeyBqOiB5IH0uczsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIwID0gdnRibDJfdTgoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtZW06OnRyYW5zbXV0ZSh4KSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpMCkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIxID0g dnRibDJfdTgoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW06OnRyYW5zbXV0 ZSh4KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5z bXV0ZShpMSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBVIHsgczogKHIwLCByMSkgfS5qOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKHIpKQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfZmFsbGJh Y2shKHU4eDE2KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICh1 MTZ4OCkgPT4gewotLSAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTE2eDggewotLSAgICAg ICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+ IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4OCA9IChpbmRpY2VzICog MikuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBzaHVmZmxl IShpbmRpY2VzLCBbMCwgMCwgMSwgMSwgMiwgMiwgMywgMywgNCwgNCwgNSwgNSwgNiwgNiwgNywg N10pOwotLSAgICAgICAgICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Ci0tICAgICAgICAgICAgICAgIGxldCBp bmRpY2VzID0gaW5kaWNlcyArIHY7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAg ICAgICAgICAgICAgICBsZXQgczogdTh4MTYgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7 Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5zaHVmZmxlMV9k eW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAg ICB9Ci0tICAgIH07Ci0tICAgICh1MzJ4NCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAg ICAgICAgICAgaWYgI1tjZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4IikpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUzMng0 IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAg ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5 bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6e19tbV9wZXJtdXRldmFyX3BzfTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6e19tbV9wZXJtdXRl dmFyX3BzfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfbW1fcGVybXV0ZXZhcl9wcygKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZi4wKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaW5k aWNlcy4wKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTMyeDQgewotLSAgICAgICAg ICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKLS0gICAgICAgICAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGlj ZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBpbmRpY2VzOiB1OHg0ID0gKGluZGljZXMgKiA0KS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGluZGljZXM6IHU4eDE2ID0gc2h1ZmZsZSEoCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluZGljZXMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAw LCAwLCAwLCAxLCAxLCAxLCAxLCAyLCAyLCAyLCAyLCAzLCAzLCAzLCAzXQotLSAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6 bmV3KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAz LCAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMgKyB2OwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBzOiB1OHgxNiA9Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRp Y2VzKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tICAgICh1NjR4MikgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYg I1tjZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IikpXSB7 Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU2NHgyIHsKLS0gICAgICAg ICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRp Y2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Njo6e19tbV9wZXJtdXRldmFyX3BkfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6e19tbV9wZXJtdXRldmFyX3BkfTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBfbW1fcGVybXV0ZXZhcl9wZCB1c2VzIHRoZSBfc2Vj b25kXyBiaXQgb2YgZWFjaAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgdG8g cGVyZm9ybSB0aGUgc2VsZWN0aW9uLCB0aGF0IGlzOiAwYjAwID0+IDAsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gMGIxMCA9PiAxOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBp bmRpY2VzID0gaW5kaWNlcyA8PCAxOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9wZXJtdXRldmFyX3BkKAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFu c211dGUoaW5kaWNlcykKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0g ZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU2NHgyIHsKLS0g ICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxm LCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgaW5kaWNlczogdTh4MiA9IChpbmRpY2VzICogOCkuY2FzdCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmRpY2VzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g dTh4MTY6Om5ldygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwg NSwgNiwgNywgMCwgMSwgMiwgMywgNCwgNSwgNiwgNwotLSAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsgdjsK LS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgczogdTh4MTYgPWNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5zaHVmZmxlMV9k eW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLSAgICAodTEyOHgxKSA9PiB7Ci0tICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZv ciB1MTI4eDEgewotLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIF9pbmRpY2Vz OiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZgotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbF9mYWxsYmFjayEoJGlkKTsKLS0gICAgfTsKLS19Ci0tCi0taW1wbF9zaHVmZmxl MV9keW4hKHU4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHg0KTsKLS1pbXBsX3NodWZmbGUx X2R5biEodTh4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4eDE2KTsKLS1pbXBsX3NodWZmbGUx X2R5biEodTh4MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHg2NCk7Ci0tCi0taW1wbF9zaHVm ZmxlMV9keW4hKHUxNngyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTE2eDQpOwotLWltcGxfc2h1 ZmZsZTFfZHluISh1MTZ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxNngxNik7Ci0taW1wbF9z aHVmZmxlMV9keW4hKHUxNngzMik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW4hKHUzMngyKTsKLS1p bXBsX3NodWZmbGUxX2R5biEodTMyeDQpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4OCk7Ci0t aW1wbF9zaHVmZmxlMV9keW4hKHUzMngxNik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW4hKHU2NHgy KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTY0eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1NjR4 OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDIpOwotLWltcGxfc2h1ZmZsZTFfZHlu ISh1c2l6ZXg0KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodXNpemV4OCk7Ci0tCi0taW1wbF9zaHVm ZmxlMV9keW4hKHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4Mik7Ci0taW1wbF9z aHVmZmxlMV9keW4hKHUxMjh4NCk7Ci0tCi0tLy8gSW1wbGVtZW50YXRpb24gZm9yIG5vbi11bnNp Z25lZCB2ZWN0b3IgdHlwZXMKLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Ug ewotLSAgICAoJGlkOmlkZW50LCAkdWlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIFNodWZm bGUxRHluIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9ICR1aWQ7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGlu ZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHU6ICR1aWQgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUodS5z aHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShp OHgyLCB1OHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4NCwgdTh4NCk7Ci0taW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDgsIHU4eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShpOHgxNiwgdTh4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHgzMiwgdTh4 MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHg2NCwgdTh4NjQpOwotLQotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShpMTZ4MiwgdTE2eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShpMTZ4NCwgdTE2eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4OCwgdTE2 eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4MTYsIHUxNngxNik7Ci0taW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKGkxNngzMiwgdTE2eDMyKTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEoaTMyeDIsIHUzMngyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDQs IHUzMng0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDgsIHUzMng4KTsKLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDE2LCB1MzJ4MTYpOwotLQotLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShpNjR4MiwgdTY0eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4 NCwgdTY0eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4OCwgdTY0eDgpOwotLQot LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXgyLCB1c2l6ZXgyKTsKLS1pbXBsX3NodWZm bGUxX2R5bl9ub25fdSEoaXNpemV4NCwgdXNpemV4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKGlzaXpleDgsIHVzaXpleDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTI4 eDEsIHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4MiwgdTEyOHgyKTsK LS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTEyOHg0LCB1MTI4eDQpOwotLQotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShtOHgyLCB1OHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo bTh4NCwgdTh4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDgsIHU4eDgpOwotLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHgxNiwgdTh4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtOHgzMiwgdTh4MzIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHg2NCwg dTh4NjQpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4MiwgdTE2eDIpOwotLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4NCwgdTE2eDQpOwotLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtMTZ4OCwgdTE2eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4MTYs IHUxNngxNik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNngzMiwgdTE2eDMyKTsKLS0K LS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDIsIHUzMngyKTsKLS1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEobTMyeDQsIHUzMng0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMy eDgsIHUzMng4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDE2LCB1MzJ4MTYpOwot LQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtNjR4MiwgdTY0eDIpOwotLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShtNjR4NCwgdTY0eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91ISht NjR4OCwgdTY0eDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtc2l6ZXgyLCB1c2l6 ZXgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobXNpemV4NCwgdXNpemV4NCk7Ci0taW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKG1zaXpleDgsIHVzaXpleDgpOwotLQotLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShtMTI4eDEsIHUxMjh4MSk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KG0xMjh4MiwgdTEyOHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHg0LCB1MTI4 eDQpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4MiwgdTMyeDIpOwotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShmMzJ4NCwgdTMyeDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShmMzJ4OCwgdTMyeDgpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4MTYsIHUz MngxNik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHgyLCB1NjR4Mik7Ci0taW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHg0LCB1NjR4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKGY2NHg4LCB1NjR4OCk7Ci0tCi0tLy8gSW1wbGVtZW50YXRpb24gZm9yIG5vbi11bnNp Z25lZCB2ZWN0b3IgdHlwZXMKLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW5fcHRyIHsK LS0gICAgKCRpZDppZGVudCwgJHVpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbDxUPiBTaHVm ZmxlMUR5biBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSAkdWlkOwot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxm LCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB1OiAkdWlkID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHUuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9wdHIh KGNwdHJ4MiwgdXNpemV4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fcHRyIShjcHRyeDQsIHVzaXpl eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cng4LCB1c2l6ZXg4KTsKLS0KLS1pbXBs X3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4MiwgdXNpemV4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5f cHRyIShtcHRyeDQsIHVzaXpleDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cng4LCB1 c2l6ZXg4KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3N3YXBfYnl0ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3N3YXBfYnl0ZXMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2Fw X2J5dGVzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNDkg KzAsMCBAQAotLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0ZXMgcmVkdWN0aW9ucy4KLS0KLS0vLyBG SVhNRTogaW52ZXN0aWdhdGUgdXNpbmcgYGxsdm0uYnN3YXBgCi0tLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOQotLQotLXVzZSBjcmF0 ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFN3YXBCeXRlcyB7Ci0tICAgIGZuIHN3YXBfYnl0 ZXMoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc3dhcF9ieXRlcyB7 Ci0tICAgICh2MTY6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAg ICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgICAgIHNodWZmbGUhKHNlbGYsIFsxLCAwXSkKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0tICAgICh2MzI6ICQoJGlkOmlk ZW50LCkrKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZv ciAkaWQgewotLSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1th bGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dh cF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHg0ID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDQg PSBzaHVmZmxlIShieXRlcywgWzMsIDIsIDEsIDBdKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsK LS0gICAgKHY2NDogJCgkaWQ6aWRlbnQsKSspID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAg ICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Ci0tICAgICAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQotLSAg ICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4 eDggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHJlc3VsdDogdTh4OCA9IHNodWZmbGUhKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBieXRlcywgWzcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdCi0tICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUo cmVzdWx0KQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsKLS0gICAgKHYxMjg6ICQoJGlkOmlkZW50 LCkrKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAk aWQgewotLSAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxv dyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9i eXRlcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHgxNiA9IGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHgxNiA9 IHNodWZmbGUhKGJ5dGVzLCBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAxNCwg MTMsIDEyLCAxMSwgMTAsIDksIDgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsIDYs IDUsIDQsIDMsIDIsIDEsIDAKLS0gICAgICAgICAgICAgICAgICAgICAgICBdKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgKSsKLS0gICAgfTsKLS0gICAgKHYyNTY6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAg ICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3Nf dHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJ5dGVzOiB1OHgzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHgzMiA9IHNodWZmbGUhKGJ5dGVzLCBb Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLCAzMCwgMjksIDI4LCAyNywgMjYsIDI1 LCAyNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsIDIyLCAyMSwgMjAsIDE5LCAx OCwgMTcsIDE2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgMTQsIDEzLCAxMiwg MTEsIDEwLCA5LCAgOCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAg NCwgIDMsICAyLCAgMSwgIDAKLS0gICAgICAgICAgICAgICAgICAgICAgICBdKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgKSsKLS0gICAgfTsKLS0gICAgKHY1MTI6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAg ICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3Nf dHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJ5dGVzOiB1OHg2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHg2NCA9IHNodWZmbGUhKGJ5dGVzLCBb Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzLCA2MiwgNjEsIDYwLCA1OSwgNTgsIDU3 LCA1NiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUsIDU0LCA1MywgNTIsIDUxLCA1 MCwgNDksIDQ4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NywgNDYsIDQ1LCA0NCwg NDMsIDQyLCA0MSwgNDAsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5LCAzOCwgMzcs IDM2LCAzNSwgMzQsIDMzLCAzMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEsIDMw LCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAy MywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksICA4LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAgMAotLSAgICAgICAgICAgICAgICAg ICAgICAgIF0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0 ZShyZXN1bHQpCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLX0KLS0KLS1pbXBsX3N3YXBfYnl0 ZXMhKHYxNjogdTh4MiwgaTh4MiwpOwotLWltcGxfc3dhcF9ieXRlcyEodjMyOiB1OHg0LCBpOHg0 LCB1MTZ4MiwgaTE2eDIsKTsKLS0vLyBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3Rv cgotLWltcGxfc3dhcF9ieXRlcyEodjY0OiB1OHg4LCBpOHg4LCB1MTZ4NCwgaTE2eDQsIHUzMngy LCBpMzJ4MiAvKiB1NjR4MSwgaTY0eDEsICovLCk7Ci0tCi0taW1wbF9zd2FwX2J5dGVzISh2MTI4 OiB1OHgxNiwgaTh4MTYsIHUxNng4LCBpMTZ4OCwgdTMyeDQsIGkzMng0LCB1NjR4MiwgaTY0eDIs IHUxMjh4MSwgaTEyOHgxLCk7Ci0taW1wbF9zd2FwX2J5dGVzISh2MjU2OiB1OHgzMiwgaTh4MzIs IHUxNngxNiwgaTE2eDE2LCB1MzJ4OCwgaTMyeDgsIHU2NHg0LCBpNjR4NCwgdTEyOHgyLCBpMTI4 eDIsKTsKLS0KLS1pbXBsX3N3YXBfYnl0ZXMhKHY1MTI6IHU4eDY0LCBpOHg2NCwgdTE2eDMyLCBp MTZ4MzIsIHUzMngxNiwgaTMyeDE2LCB1NjR4OCwgaTY0eDgsIHUxMjh4NCwgaTEyOHg0LCk7Ci0t Ci0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjgiKV0g ewotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTY6IGlzaXpleDIsIHVzaXpleDIsKTsKLS0g ICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjMyOiBpc2l6ZXg0LCB1c2l6ZXg0LCk7Ci0tICAgICAg ICBpbXBsX3N3YXBfYnl0ZXMhKHY2NDogaXNpemV4OCwgdXNpemV4OCwpOwotLSAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTYiKV0gewotLSAgICAgICAgaW1wbF9z d2FwX2J5dGVzISh2MzI6IGlzaXpleDIsIHVzaXpleDIsKTsKLS0gICAgICAgIGltcGxfc3dhcF9i eXRlcyEodjY0OiBpc2l6ZXg0LCB1c2l6ZXg0LCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMh KHYxMjg6IGlzaXpleDgsIHVzaXpleDgsKTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9w b2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjY0OiBp c2l6ZXgyLCB1c2l6ZXgyLCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxMjg6IGlzaXpl eDQsIHVzaXpleDQsKTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjI1NjogaXNpemV4OCwg dXNpemV4OCwpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAi NjQiKV0gewotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTI4OiBpc2l6ZXgyLCB1c2l6ZXgy LCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYyNTY6IGlzaXpleDQsIHVzaXpleDQsKTsK LS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjUxMjogaXNpemV4OCwgdXNpemV4OCwpOwotLSAg ICB9IGVsc2UgewotLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9w b2ludGVyX3dpZHRoIik7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEy OC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDYgKzAsMCBA QAotLS8vISBJbnRlcm5hbCAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNlIGNyYXRl OjptYXNrczo6KjsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0g ICAgW2k4OyAxNl06IGk4eDE2IHwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwg aTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0pOwot LSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTg7IDE2XTogdTh4 MTYgfAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4 LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OAotLSk7Ci0tI1tydXN0Zm10Ojpza2lw XQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFttODsgMTZdOiBtOHgxNiB8Ci0tICAgIGk4LCBp OCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDhdOiBp MTZ4OCB8IGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS1pbXBsX3Np bWRfYXJyYXkhKFt1MTY7IDhdOiB1MTZ4OCB8IHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYs IHUxNiwgdTE2KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttMTY7IDhdOiBtMTZ4OCB8IGkxNiwgaTE2 LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtp MzI7IDRdOiBpMzJ4NCB8IGkzMiwgaTMyLCBpMzIsIGkzMik7Ci0taW1wbF9zaW1kX2FycmF5IShb dTMyOyA0XTogdTMyeDQgfCB1MzIsIHUzMiwgdTMyLCB1MzIpOwotLWltcGxfc2ltZF9hcnJheSEo W2YzMjsgNF06IGYzMng0IHwgZjMyLCBmMzIsIGYzMiwgZjMyKTsKLS1pbXBsX3NpbWRfYXJyYXkh KFttMzI7IDRdOiBtMzJ4NCB8IGkzMiwgaTMyLCBpMzIsIGkzMik7Ci0tCi0taW1wbF9zaW1kX2Fy cmF5IShbaTY0OyAyXTogaTY0eDIgfCBpNjQsIGk2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTY0 OyAyXTogdTY0eDIgfCB1NjQsIHU2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbZjY0OyAyXTogZjY0 eDIgfCBmNjQsIGY2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTY0OyAyXTogbTY0eDIgfCBpNjQs IGk2NCk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTEyODsgMV06IGkxMjh4MSB8IGkxMjgpOwot LWltcGxfc2ltZF9hcnJheSEoW3UxMjg7IDFdOiB1MTI4eDEgfCB1MTI4KTsKLS1pbXBsX3NpbWRf YXJyYXkhKFttMTI4OyAxXTogbTEyOHgxIHwgaTEyOCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v djE2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3ICswLDAg QEAKLS0vLyEgSW50ZXJuYWwgMTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNlIGNyYXRl OjptYXNrczo6KjsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpODsgMl06IGk4eDIgfCBpOCwgaTgp OwotLWltcGxfc2ltZF9hcnJheSEoW3U4OyAyXTogdTh4MiB8IHU4LCB1OCk7Ci0taW1wbF9zaW1k X2FycmF5IShbbTg7IDJdOiBtOHgyIHwgaTgsIGk4KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi92MjU2LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3OCAr MCwwIEBACi0tLy8hIEludGVybmFsIDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2Ug Y3JhdGU6Om1hc2tzOjoqOwotLQotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkh KAotLSAgICBbaTg7IDMyXTogaTh4MzIgfAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgs IGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwK LS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgs IGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1p bXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTg7IDMyXTogdTh4MzIgfAotLSAgICB1OCwgdTgsIHU4 LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1 OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4 LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgKLS0pOwotLSNbcnVz dGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbbTg7IDMyXTogbTh4MzIgfAot LSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwg aTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAg IGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwg aTgKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbaTE2 OyAxNl06IGkxNngxNiB8Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYs IGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYs IGkxNgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFt1 MTY7IDE2XTogdTE2eDE2IHwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUx NiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUx NiwgdTE2Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAg W20xNjsgMTZdOiBtMTZ4MTYgfAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwg aTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwg aTE2LCBpMTYKLS0pOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kzMjsgOF06IGkzMng4IHwgaTMy LCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIpOwotLWltcGxfc2ltZF9hcnJheSEo W3UzMjsgOF06IHUzMng4IHwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIp OwotLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgOF06IGYzMng4IHwgZjMyLCBmMzIsIGYzMiwgZjMy LCBmMzIsIGYzMiwgZjMyLCBmMzIpOwotLWltcGxfc2ltZF9hcnJheSEoW20zMjsgOF06IG0zMng4 IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIpOwotLQotLWltcGxfc2lt ZF9hcnJheSEoW2k2NDsgNF06IGk2NHg0IHwgaTY0LCBpNjQsIGk2NCwgaTY0KTsKLS1pbXBsX3Np bWRfYXJyYXkhKFt1NjQ7IDRdOiB1NjR4NCB8IHU2NCwgdTY0LCB1NjQsIHU2NCk7Ci0taW1wbF9z aW1kX2FycmF5IShbZjY0OyA0XTogZjY0eDQgfCBmNjQsIGY2NCwgZjY0LCBmNjQpOwotLWltcGxf c2ltZF9hcnJheSEoW202NDsgNF06IG02NHg0IHwgaTY0LCBpNjQsIGk2NCwgaTY0KTsKLS0KLS1p bXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAyXTogaTEyOHgyIHwgaTEyOCwgaTEyOCk7Ci0taW1wbF9z aW1kX2FycmF5IShbdTEyODsgMl06IHUxMjh4MiB8IHUxMjgsIHUxMjgpOwotLWltcGxfc2ltZF9h cnJheSEoW20xMjg7IDJdOiBtMTI4eDIgfCBpMTI4LCBpMTI4KTsKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi92MzIucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEx ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgMzItYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNl IGNyYXRlOjptYXNrczo6KjsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpODsgNF06IGk4eDQgfCBp OCwgaTgsIGk4LCBpOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTg7IDRdOiB1OHg0IHwgdTgsIHU4 LCB1OCwgdTgpOwotLWltcGxfc2ltZF9hcnJheSEoW204OyA0XTogbTh4NCB8IGk4LCBpOCwgaTgs IGk4KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDJdOiBpMTZ4MiB8IGkxNiwgaTE2KTsK LS1pbXBsX3NpbWRfYXJyYXkhKFt1MTY7IDJdOiB1MTZ4MiB8IHUxNiwgdTE2KTsKLS1pbXBsX3Np bWRfYXJyYXkhKFttMTY7IDJdOiBtMTZ4MiB8IGkxNiwgaTE2KTsKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi92NTEyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxNDUgKzAsMCBAQAotLS8vISBJbnRlcm5hbCA1MTItYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0t Ci0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1k X2FycmF5ISgKLS0gICAgW2k4OyA2NF06IGk4eDY0IHwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAg aTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLQotLSAgICBpOCwgaTgsIGk4 LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBp OCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4 LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgKLS0pOwotLSNbcnVz dGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTg7IDY0XTogdTh4NjQgfAot LSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwg dTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAg IHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwg dTgsCi0tCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAg dTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1 OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwg dTgsIHU4LCB1OAotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0t ICAgIFttODsgNjRdOiBtOHg2NCB8Ci0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgs IGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAg ICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgs IGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0KLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAg IGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwg aTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgs IGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBd Ci0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW2kxNjsgMzJdOiBpMTZ4MzIgfAotLSAgICBpMTYs IGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYs IGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYs IGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYs Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxf c2ltZF9hcnJheSEoCi0tICAgIFt1MTY7IDMyXTogdTE2eDMyIHwKLS0gICAgdTE2LCB1MTYsIHUx NiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUx NiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0t ICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1 MTYsIHUxNiwgdTE2LCB1MTYKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJy YXkhKAotLSAgICBbbTE2OyAzMl06IG0xNngzMiB8Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK LS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAg IGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYs IGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYs IGkxNiwgaTE2Ci0tKTsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgK LS0gICAgW2kzMjsgMTZdOiBpMzJ4MTYgfAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCi0tICAg IGkzMiwgaTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAotLSAgICBpMzIs IGkzMiwgaTMyLCBpMzIKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkh KAotLSAgICBbdTMyOyAxNl06IHUzMngxNiB8Ci0tICAgIHUzMiwgdTMyLCB1MzIsIHUzMiwKLS0g ICAgdTMyLCB1MzIsIHUzMiwgdTMyLAotLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIsCi0tICAgIHUz MiwgdTMyLCB1MzIsIHUzMgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJh eSEoCi0tICAgIFtmMzI7IDE2XTogZjMyeDE2IHwKLS0gICAgZjMyLCBmMzIsIGYzMiwgZjMyLAot LSAgICBmMzIsIGYzMiwgZjMyLCBmMzIsCi0tICAgIGYzMiwgZjMyLCBmMzIsIGYzMiwKLS0gICAg ZjMyLCBmMzIsIGYzMiwgZjMyCi0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2Fy cmF5ISgKLS0gICAgW20zMjsgMTZdOiBtMzJ4MTYgfAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIs Ci0tICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAotLSAg ICBpMzIsIGkzMiwgaTMyLCBpMzIKLS0pOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgOF06 IGk2NHg4IHwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQpOwotLWltcGxf c2ltZF9hcnJheSEoW3U2NDsgOF06IHU2NHg4IHwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2 NCwgdTY0LCB1NjQpOwotLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgOF06IGY2NHg4IHwgZjY0LCBm NjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQpOwotLWltcGxfc2ltZF9hcnJheSEoW202 NDsgOF06IG02NHg4IHwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQpOwot LQotLWltcGxfc2ltZF9hcnJheSEoW2kxMjg7IDRdOiBpMTI4eDQgfCBpMTI4LCBpMTI4LCBpMTI4 LCBpMTI4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTI4OyA0XTogdTEyOHg0IHwgdTEyOCwgdTEy OCwgdTEyOCwgdTEyOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTEyODsgNF06IG0xMjh4NCB8IGkx MjgsIGkxMjgsIGkxMjgsIGkxMjgpOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi92NjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vdjY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjEgKzAsMCBAQAotLS8vISBJ bnRlcm5hbCA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3JhdGU6Om1hc2tzOjoq OwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k4OyA4XTogaTh4OCB8IGk4LCBpOCwgaTgsIGk4LCBp OCwgaTgsIGk4LCBpOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTg7IDhdOiB1OHg4IHwgdTgsIHU4 LCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttODsgOF06IG04 eDggfCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOwotLQotLWltcGxfc2ltZF9hcnJh eSEoW2kxNjsgNF06IGkxNng0IHwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS1pbXBsX3NpbWRfYXJy YXkhKFt1MTY7IDRdOiB1MTZ4NCB8IHUxNiwgdTE2LCB1MTYsIHUxNik7Ci0taW1wbF9zaW1kX2Fy cmF5IShbbTE2OyA0XTogbTE2eDQgfCBpMTYsIGkxNiwgaTE2LCBpMTYpOwotLQotLWltcGxfc2lt ZF9hcnJheSEoW2kzMjsgMl06IGkzMngyIHwgaTMyLCBpMzIpOwotLWltcGxfc2ltZF9hcnJheSEo W3UzMjsgMl06IHUzMngyIHwgdTMyLCB1MzIpOwotLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgMl06 IGYzMngyIHwgZjMyLCBmMzIpOwotLWltcGxfc2ltZF9hcnJheSEoW20zMjsgMl06IG0zMngyIHwg aTMyLCBpMzIpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgMV06IGk2NHgxIHwgaTY0KTsK LS1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDFdOiB1NjR4MSB8IHU2NCk7Ci0taW1wbF9zaW1kX2Fy cmF5IShbZjY0OyAxXTogZjY0eDEgfCBmNjQpOwotLWltcGxfc2ltZF9hcnJheSEoW202NDsgMV06 IG02NHgxIHwgaTY0KTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3ZQdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3ZQdHIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vdlB0ci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRyLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNSArMCwwIEBACi0tLy8hIFBvaW50 ZXIgdmVjdG9yIHR5cGVzCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc2ltZF9wdHIgewotLSAgICAo WyRwdHJfdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQgfCAkdHk6aWRl bnQKLS0gICAgIHwgJCgkdHlzOnR5KSwqKSA9PiB7Ci0tICAgICAgICAjW2Rlcml2ZShDb3B5LCBD bG9uZSldCi0tICAgICAgICAjW3JlcHIoc2ltZCldCi0tICAgICAgICBwdWIgc3RydWN0ICR0dXBs ZV9pZDwkdHk+KCQocHViKGNyYXRlKSAkdHlzKSwqKTsKLS0gICAgICAgIC8vXl5eXl5eXiBsZWFr ZWQgdGhyb3VnaCBTaW1kQXJyYXkKLS0KLS0gICAgICAgIGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVk OjpTZWFsIGZvciBbJHB0cl90eTsgJGVsZW1fY291bnRdIHt9Ci0tICAgICAgICBpbXBsPCR0eT4g Y3JhdGU6OnNlYWxlZDo6U2ltZEFycmF5IGZvciBbJHB0cl90eTsgJGVsZW1fY291bnRdIHsKLS0g ICAgICAgICAgICB0eXBlIFR1cGxlID0gJHR1cGxlX2lkPCRwdHJfdHk+OwotLSAgICAgICAgICAg IHR5cGUgVCA9ICRwdHJfdHk7Ci0tICAgICAgICAgICAgY29uc3QgTjogdXNpemUgPSAkZWxlbV9j b3VudDsKLS0gICAgICAgICAgICB0eXBlIE5UID0gW3UzMjsgJGVsZW1fY291bnRdOwotLSAgICAg ICAgfQotLQotLSAgICAgICAgaW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yICR0dXBs ZV9pZDwkcHRyX3R5PiB7fQotLSAgICAgICAgaW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNpbWQg Zm9yICR0dXBsZV9pZDwkcHRyX3R5PiB7Ci0tICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0gJHB0 cl90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsKLS0g ICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKLS0gICAgICAg IH0KLS0KLS0gICAgfQotLX0KLS0KLS1pbXBsX3NpbWRfcHRyIShbKmNvbnN0IFQ7IDJdOiBjcHRy eDIgfCBUIHwgVCwgVCk7Ci0taW1wbF9zaW1kX3B0ciEoWypjb25zdCBUOyA0XTogY3B0cng0IHwg VCB8IFQsIFQsIFQsIFQpOwotLWltcGxfc2ltZF9wdHIhKFsqY29uc3QgVDsgOF06IGNwdHJ4OCB8 IFQgfCBULCBULCBULCBULCBULCBULCBULCBUKTsKLS0KLS1pbXBsX3NpbWRfcHRyIShbKm11dCBU OyAyXTogbXB0cngyIHwgVCB8IFQsIFQpOwotLWltcGxfc2ltZF9wdHIhKFsqbXV0IFQ7IDRdOiBt cHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7Ci0taW1wbF9zaW1kX3B0ciEoWyptdXQgVDsgOF06IG1w dHJ4OCB8IFQgfCBULCBULCBULCBULCBULCBULCBULCBUKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi92U2l6ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMTYgKzAsMCBAQAotLS8vISBWZWN0b3IgdHlwZXMgd2l0aCBwb2ludGVyLXNpemVkIGVsZW1l bnRzCi0tCi0tdXNlIGNyYXRlOjpjb2RlZ2VuOjpwb2ludGVyX3NpemVkX2ludDo6e2lzaXplXywg dXNpemVffTsKLS11c2UgY3JhdGU6Om1hc2tzOjoqOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2lz aXplOyAyXTogaXNpemV4MiB8IGlzaXplXywgaXNpemVfKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1 c2l6ZTsgMl06IHVzaXpleDIgfCB1c2l6ZV8sIHVzaXplXyk7Ci0taW1wbF9zaW1kX2FycmF5IShb bXNpemU7IDJdOiBtc2l6ZXgyIHwgaXNpemVfLCBpc2l6ZV8pOwotLQotLWltcGxfc2ltZF9hcnJh eSEoW2lzaXplOyA0XTogaXNpemV4NCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7 Ci0taW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDRdOiB1c2l6ZXg0IHwgdXNpemVfLCB1c2l6ZV8s IHVzaXplXywgdXNpemVfKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttc2l6ZTsgNF06IG1zaXpleDQg fCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOwotLQotLWltcGxfc2ltZF9hcnJheSEo W2lzaXplOyA4XTogaXNpemV4OCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1c2l6ZTsg OF06IHVzaXpleDggfCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNp emVfLCB1c2l6ZV8sIHVzaXplXyk7Ci0taW1wbF9zaW1kX2FycmF5IShbbXNpemU7IDhdOiBtc2l6 ZXg4IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw2MiArMCwwIEBACi0tLy8hIENvZGUtZ2VuZXJhdGlvbiB1dGlsaXRpZXMK LS0KLS1wdWIoY3JhdGUpIG1vZCBiaXRfbWFuaXA7Ci0tcHViKGNyYXRlKSBtb2QgbGx2bTsKLS1w dWIoY3JhdGUpIG1vZCBtYXRoOwotLXB1YihjcmF0ZSkgbW9kIHJlZHVjdGlvbnM7Ci0tcHViKGNy YXRlKSBtb2Qgc2h1ZmZsZTsKLS1wdWIoY3JhdGUpIG1vZCBzaHVmZmxlMV9keW47Ci0tcHViKGNy YXRlKSBtb2Qgc3dhcF9ieXRlczsKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9zaW1kX2FycmF5IHsK LS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAkdHVwbGVf aWQ6aWRlbnQgfCAkKCRlbGVtX3R5czppZGVudCksKikgPT4gewotLSAgICAgICAgI1tkZXJpdmUo Q29weSwgQ2xvbmUpXQotLSAgICAgICAgI1tyZXByKHNpbWQpXQotLSAgICAgICAgcHViIHN0cnVj dCAkdHVwbGVfaWQoJChwdWIoY3JhdGUpICRlbGVtX3R5cyksKik7Ci0tICAgICAgICAvL15eXl5e Xl4gbGVha2VkIHRocm91Z2ggU2ltZEFycmF5Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpzZWFs ZWQ6OlNlYWwgZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHt9Ci0tCi0tICAgICAgICBpbXBs IGNyYXRlOjpzZWFsZWQ6OlNpbWRBcnJheSBmb3IgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gewot LSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVfaWQ7Ci0tICAgICAgICAgICAgdHlwZSBU ID0gJGVsZW1fdHk7Ci0tICAgICAgICAgICAgY29uc3QgTjogdXNpemUgPSAkZWxlbV9jb3VudDsK LS0gICAgICAgICAgICB0eXBlIE5UID0gW3UzMjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgfQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciAkdHVwbGVfaWQge30KLS0g ICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lkIHsKLS0gICAgICAg ICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKLS0gICAgICAgICAgICBjb25zdCBMQU5FUzog dXNpemUgPSAkZWxlbV9jb3VudDsKLS0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7 ICRlbGVtX2NvdW50XTsKLS0gICAgICAgIH0KLS0KLS0gICAgfQotLX0KLS0KLS1wdWIoY3JhdGUp IG1vZCBwb2ludGVyX3NpemVkX2ludDsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2MTY7Ci0tcHViKGNy YXRlKSB1c2Ugc2VsZjo6djE2OjoqOwotLQotLXB1YihjcmF0ZSkgbW9kIHYzMjsKLS1wdWIoY3Jh dGUpIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0tcHViKGNyYXRlKSBtb2QgdjY0OwotLXB1YihjcmF0 ZSkgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2MTI4OwotLXB1YihjcmF0 ZSkgdXNlIHNlbGY6OnYxMjg6Oio7Ci0tCi0tcHViKGNyYXRlKSBtb2QgdjI1NjsKLS1wdWIoY3Jh dGUpIHVzZSBzZWxmOjp2MjU2OjoqOwotLQotLXB1YihjcmF0ZSkgbW9kIHY1MTI7Ci0tcHViKGNy YXRlKSB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2U2l6ZTsKLS1wdWIo Y3JhdGUpIHVzZSBzZWxmOjp2U2l6ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIG1vZCB2UHRyOwotLXB1 YihjcmF0ZSkgdXNlIHNlbGY6OnZQdHI6Oio7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvbGliLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2xpYi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsMzQ4ICswLDAgQEAKLS0vLyEgIyBQb3J0YWJsZSBwYWNrZWQgU0lNRCB2ZWN0 b3JzCi0tLy8hCi0tLy8hIFRoaXMgY3JhdGUgaXMgcHJvcG9zZWQgZm9yIHN0YWJpbGl6YXRpb24g YXMgYHN0ZDo6cGFja2VkX3NpbWRgIGluIFtSRkMyMzY2OgotLS8vISBgc3RkOjpzaW1kYF0oaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NikgLgotLS8vIQotLS8vISBU aGUgZXhhbXBsZXMgYXZhaWxhYmxlIGluIHRoZQotLS8vISBbYGV4YW1wbGVzL2BdKGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFt cGxlcykKLS0vLyEgc3ViLWRpcmVjdG9yeSBvZiB0aGUgY3JhdGUgc2hvd2Nhc2UgaG93IHRvIHVz ZSB0aGUgbGlicmFyeSBpbiBwcmFjdGljZS4KLS0vLyEKLS0vLyEgIyMgVGFibGUgb2YgY29udGVu dHMKLS0vLyEKLS0vLyEgLSBbSW50cm9kdWN0aW9uXSgjaW50cm9kdWN0aW9uKQotLS8vISAtIFtW ZWN0b3IgdHlwZXNdKCN2ZWN0b3ItdHlwZXMpCi0tLy8hIC0gW0NvbmRpdGlvbmFsIG9wZXJhdGlv bnNdKCNjb25kaXRpb25hbC1vcGVyYXRpb25zKQotLS8vISAtIFtDb252ZXJzaW9uc10oI2NvbnZl cnNpb25zKQotLS8vISAtIFtIYXJkd2FyZSBGZWF0dXJlc10oI2hhcmR3YXJlLWZlYXR1cmVzKQot LS8vISAtIFtQZXJmb3JtYW5jZSBndWlkZV0oaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRo dWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8pCi0tLy8hCi0tLy8hICMjIEludHJvZHVjdGlv bgotLS8vIQotLS8vISBUaGlzIGNyYXRlIGV4cG9ydHMgW2BTaW1kPFtUOyBOXT5gXVtgU2ltZGBd OiBhIHBhY2tlZCB2ZWN0b3Igb2YgYE5gCi0tLy8hIGVsZW1lbnRzIG9mIHR5cGUgYFRgIGFzIHdl bGwgYXMgbWFueSB0eXBlIGFsaWFzZXMgZm9yIHRoaXMgdHlwZTogZm9yCi0tLy8hIGV4YW1wbGUs IFtgZjMyeDRgXSwgd2hpY2ggaXMganVzdCBhbiBhbGlhcyBmb3IgYFNpbWQ8W2YzMjsgNF0+YC4K LS0vLyEKLS0vLyEgVGhlIG9wZXJhdGlvbnMgb24gcGFja2VkIHZlY3RvcnMgYXJlLCBieSBkZWZh dWx0LCAidmVydGljYWwiLCB0aGF0IGlzLCB0aGV5Ci0tLy8hIGFyZSBhcHBsaWVkIHRvIGVhY2gg dmVjdG9yIGxhbmUgaW4gaXNvbGF0aW9uIG9mIHRoZSBvdGhlcnM6Ci0tLy8hCi0tLy8hIGBgYAot LS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDIs IDMsIDQpOwotLS8vISBsZXQgYiA9IGkzMng0OjpuZXcoNSwgNiwgNywgOCk7Ci0tLy8hIGFzc2Vy dF9lcSEoYSArIGIsIGkzMng0OjpuZXcoNiwgOCwgMTAsIDEyKSk7Ci0tLy8hIGBgYAotLS8vIQot LS8vISBNYW55ICJob3Jpem9udGFsIiBvcGVyYXRpb25zIGFyZSBhbHNvIHByb3ZpZGVkOgotLS8v IQotLS8vISBgYGAKLS0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8hICMgbGV0IGEgPSBp MzJ4NDo6bmV3KDEsIDIsIDMsIDQpOwotLS8vISBhc3NlcnRfZXEhKGEud3JhcHBpbmdfc3VtKCks IDEwKTsKLS0vLyEgYGBgCi0tLy8hCi0tLy8hIEluIHZpcnR1YWxseSBhbGwgYXJjaGl0ZWN0dXJl cyB2ZXJ0aWNhbCBvcGVyYXRpb25zIGFyZSBmYXN0LCB3aGlsZQotLS8vISBob3Jpem9udGFsIG9w ZXJhdGlvbnMgYXJlLCBieSBjb21wYXJpc29uLCBtdWNoIHNsb3dlci4gVGhhdCBpcywgdGhlCi0t Ly8hIG1vc3QgcG9ydGFibHktZWZmaWNpZW50IHdheSBvZiBwZXJmb3JtaW5nIGEgcmVkdWN0aW9u IG92ZXIgYSBzbGljZQotLS8vISBpcyB0byBjb2xsZWN0IHRoZSByZXN1bHRzIGludG8gYSB2ZWN0 b3IgdXNpbmcgdmVydGljYWwgb3BlcmF0aW9ucywKLS0vLyEgYW5kIHBlcmZvcm1pbmcgYSBzaW5n bGUgaG9yaXpvbnRhbCBvcGVyYXRpb24gYXQgdGhlIGVuZDoKLS0vLyEKLS0vLyEgYGBgCi0tLy8h ICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8vISBmbiByZWR1Y2UoeDogJltpMzJdKSAtPiBpMzIg ewotLS8vISAgICAgYXNzZXJ0X2VxISh4LmxlbigpICUgNCwgMCk7Ci0tLy8hICAgICBsZXQgbXV0 IHN1bSA9IGkzMng0OjpzcGxhdCgwKTsgLy8gWzAsIDAsIDAsIDBdCi0tLy8hICAgICBmb3IgaSBp biAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7Ci0tLy8hICAgICAgICAgc3VtICs9IGkzMng0Ojpm cm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKTsKLS0vLyEgICAgIH0KLS0vLyEgICAgIHN1bS53 cmFwcGluZ19zdW0oKQotLS8vISB9Ci0tLy8hCi0tLy8hIGxldCB4ID0gWzAsIDEsIDIsIDMsIDQs IDUsIDYsIDddOwotLS8vISBhc3NlcnRfZXEhKHJlZHVjZSgmeCksIDI4KTsKLS0vLyEgYGBgCi0t Ly8hCi0tLy8hICMjIFZlY3RvciB0eXBlcwotLS8vIQotLS8vISBUaGUgdmVjdG9yIHR5cGUgYWxp YXNlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgc2NoZW1lOgotLS8vIQot LS8vISA+IGB7ZWxlbWVudF90eXBlfXh7bnVtYmVyX29mX2xhbmVzfSA9PSBTaW1kPFtlbGVtZW50 X3R5cGU7Ci0tLy8hIG51bWJlcl9vZl9sYW5lc10+YAotLS8vIQotLS8vISB3aGVyZSB0aGUgZm9s bG93aW5nIGVsZW1lbnQgdHlwZXMgYXJlIHN1cHBvcnRlZDoKLS0vLyEKLS0vLyEgKiBgaXtlbGVt ZW50X3dpZHRofWA6IHNpZ25lZCBpbnRlZ2VyCi0tLy8hICogYHV7ZWxlbWVudF93aWR0aH1gOiB1 bnNpZ25lZCBpbnRlZ2VyCi0tLy8hICogYGZ7ZWxlbWVudF93aWR0aH1gOiBmbG9hdAotLS8vISAq IGBte2VsZW1lbnRfd2lkdGh9YDogbWFzayAoc2VlIGJlbG93KQotLS8vISAqIGAqe2NvbnN0LG11 dH0gVGA6IGBjb25zdGAgYW5kIGBtdXRgIHBvaW50ZXJzCi0tLy8hCi0tLy8hICMjIEJhc2ljIG9w ZXJhdGlvbnMKLS0vLyEKLS0vLyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwotLS8v ISAvLyBTZXRzIGFsbCBlbGVtZW50cyB0byBgMGA6Ci0tLy8hIGxldCBhID0gaTMyeDQ6OnNwbGF0 KDApOwotLS8vIQotLS8vISAvLyBSZWFkcyBhIHZlY3RvciBmcm9tIGEgc2xpY2U6Ci0tLy8hIGxl dCBtdXQgYXJyID0gWzAsIDAsIDAsIDEsIDIsIDMsIDQsIDVdOwotLS8vISBsZXQgYiA9IGkzMng0 Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmYXJyKTsKLS0vLyEKLS0vLyEgLy8gUmVhZHMgdGhlIDQt dGggZWxlbWVudCBvZiBhIHZlY3RvcjoKLS0vLyEgYXNzZXJ0X2VxIShiLmV4dHJhY3QoMyksIDEp OwotLS8vIQotLS8vISAvLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgNC10aCBlbGVt ZW50IGlzIHJlcGxhY2VkIHdpdGggYDFgOgotLS8vISBsZXQgYSA9IGEucmVwbGFjZSgzLCAxKTsK LS0vLyEgYXNzZXJ0X2VxIShhLCBiKTsKLS0vLyEKLS0vLyEgLy8gV3JpdGVzIGEgdmVjdG9yIHRv IGEgc2xpY2U6Ci0tLy8hIGxldCBhID0gYS5yZXBsYWNlKDIsIDEpOwotLS8vISBhLndyaXRlX3Rv X3NsaWNlX3VuYWxpZ25lZCgmbXV0IGFycls0Li5dKTsKLS0vLyEgYXNzZXJ0X2VxIShhcnIsIFsw LCAwLCAwLCAxLCAwLCAwLCAxLCAxXSk7Ci0tLy8hIGBgYAotLS8vIQotLS8vISAjIyBDb25kaXRp b25hbCBvcGVyYXRpb25zCi0tLy8hCi0tLy8hIE9uZSBvZnRlbiBuZWVkcyB0byBwZXJmb3JtIGFu IG9wZXJhdGlvbiBvbiBzb21lIGxhbmVzIG9mIHRoZSB2ZWN0b3IuIFZlY3RvcgotLS8vISBtYXNr cywgbGlrZSBgbTMyeDRgLCBhbGxvdyBzZWxlY3Rpbmcgb24gd2hpY2ggdmVjdG9yIGxhbmVzIGFu IG9wZXJhdGlvbiBpcwotLS8vISB0byBiZSBwZXJmb3JtZWQ6Ci0tLy8hCi0tLy8hIGBgYAotLS8v ISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDEsIDIs IDIpOwotLS8vIQotLS8vISAvLyBBZGQgYDFgIHRvIHRoZSBmaXJzdCB0d28gbGFuZXMgb2YgdGhl IHZlY3Rvci4KLS0vLyEgbGV0IG0gPSBtMTZ4NDo6bmV3KHRydWUsIHRydWUsIGZhbHNlLCBmYWxz ZSk7Ci0tLy8hIGxldCBhID0gbS5zZWxlY3QoYSArIDEsIGEpOwotLS8vISBhc3NlcnRfZXEhKGEs IGkzMng0OjpzcGxhdCgyKSk7Ci0tLy8hIGBgYAotLS8vIQotLS8vISBUaGUgZWxlbWVudHMgb2Yg YSB2ZWN0b3IgbWFzayBhcmUgZWl0aGVyIGB0cnVlYCBvciBgZmFsc2VgLiBIZXJlIGB0cnVlYAot LS8vISBtZWFucyB0aGF0IGEgbGFuZSBpcyAic2VsZWN0ZWQiLCB3aGlsZSBgZmFsc2VgIG1lYW5z IHRoYXQgYSBsYW5lIGlzIG5vdAotLS8vISBzZWxlY3RlZC4KLS0vLyEKLS0vLyEgQWxsIHZlY3Rv ciBtYXNrcyBpbXBsZW1lbnQgYSBgbWFzay5zZWxlY3QoYTogVCwgYjogVCkgLT4gVGAgbWV0aG9k IHRoYXQKLS0vLyEgd29ya3Mgb24gYWxsIHZlY3RvcnMgdGhhdCBoYXZlIHRoZSBzYW1lIG51bWJl ciBvZiBsYW5lcyBhcyB0aGUgbWFzay4gVGhlCi0tLy8hIHJlc3VsdGluZyB2ZWN0b3IgY29udGFp bnMgdGhlIGVsZW1lbnRzIG9mIGBhYCBmb3IgdGhvc2UgbGFuZXMgZm9yIHdoaWNoIHRoZQotLS8v ISBtYXNrIGlzIGB0cnVlYCwgYW5kIHRoZSBlbGVtZW50cyBvZiBgYmAgb3RoZXJ3aXNlLgotLS8v IQotLS8vISBUaGUgZXhhbXBsZSBjb25zdHJ1Y3RzIGEgbWFzayB3aXRoIHRoZSBmaXJzdCB0d28g bGFuZXMgc2V0IHRvIGB0cnVlYCBhbmQKLS0vLyEgdGhlIGxhc3QgdHdvIGxhbmVzIHNldCB0byBg ZmFsc2VgLiBUaGlzIHNlbGVjdHMgdGhlIGZpcnN0IHR3byBsYW5lcyBvZiBgYSArCi0tLy8hIDFg IGFuZCB0aGUgbGFzdCB0d28gbGFuZXMgb2YgYGFgLCBwcm9kdWNpbmcgYSB2ZWN0b3Igd2hlcmUg dGhlIGZpcnN0IHR3bwotLS8vISBsYW5lcyBoYXZlIGJlZW4gaW5jcmVtZW50ZWQgYnkgYDFgLgot LS8vIQotLS8vISA+IG5vdGU6IG1hc2sgYHNlbGVjdGAgY2FuIGJlIHVzZWQgb24gdmVjdG9yIHR5 cGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBudW1iZXIKLS0vLyEgPiBvZiBsYW5lcyBhcyB0aGUgbWFz ay4gVGhlIGV4YW1wbGUgc2hvd3MgdGhpcyBieSB1c2luZyBbYG0xNng0YF0gaW5zdGVhZAotLS8v ISA+IG9mIFtgbTMyeDRgXS4gSXQgaXMgX3R5cGljYWxseV8gbW9yZSBwZXJmb3JtYW50IHRvIHVz ZSBhIG1hc2sgZWxlbWVudAotLS8vISA+IHdpZHRoIGVxdWFsIHRvIHRoZSBlbGVtZW50IHdpZHRo IG9mIHRoZSB2ZWN0b3JzIGJlaW5nIG9wZXJhdGVkIHVwb24uCi0tLy8hID4gVGhpcyBpcywgaG93 ZXZlciwgbm90IHRydWUgZm9yIDUxMi1iaXQgd2lkZSB2ZWN0b3JzIHdoZW4gdGFyZ2V0aW5nCi0t Ly8hID4gQVZYLTUxMiwgd2hlcmUgdGhlIG1vc3QgZWZmaWNpZW50IG1hc2tzIHVzZSBvbmx5IDEt Yml0IHBlciBlbGVtZW50LgotLS8vIQotLS8vISBBbGwgdmVydGljYWwgY29tcGFyaXNvbiBvcGVy YXRpb25zIHJldHVybnMgbWFza3M6Ci0tLy8hCi0tLy8hIGBgYAotLS8vISAjIHVzZSBwYWNrZWRf c2ltZDo6KjsKLS0vLyEgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDEsIDMsIDMpOwotLS8vISBsZXQg YiA9IGkzMng0OjpuZXcoMiwgMiwgMCwgMCk7Ci0tLy8hCi0tLy8hIC8vIGdlOiA+PSAoR3JlYXRl ciBFZXF1YWw7IHNlZSBhbHNvIGx0LCBsZSwgZ3QsIGVxLCBuZSkuCi0tLy8hIGxldCBtID0gYS5n ZShpMzJ4NDo6c3BsYXQoMikpOwotLS8vIQotLS8vISBpZiBtLmFueSgpIHsKLS0vLyEgICAgIC8v IGFsbCAvIGFueSAvIG5vbmUgYWxsb3cgY29oZXJlbnQgY29udHJvbCBmbG93Ci0tLy8hICAgICBs ZXQgZCA9IG0uc2VsZWN0KGEsIGIpOwotLS8vISAgICAgYXNzZXJ0X2VxIShkLCBpMzJ4NDo6bmV3 KDIsIDIsIDMsIDMpKTsKLS0vLyEgfQotLS8vISBgYGAKLS0vLyEKLS0vLyEgIyMgQ29udmVyc2lv bnMKLS0vLyEKLS0vLyEgKiAqKmxvc3NsZXNzIHdpZGVuaW5nIGNvbnZlcnNpb25zKio6IFtgRnJv bWBdL1tgSW50b2BdIGFyZSBpbXBsZW1lbnRlZCBmb3IKLS0vLyEgICB2ZWN0b3JzIHdpdGggdGhl IHNhbWUgbnVtYmVyIG9mIGxhbmVzIHdoZW4gdGhlIGNvbnZlcnNpb24gaXMgdmFsdWUKLS0vLyEg cHJlc2VydmluZyAgIChzYW1lIGFzIGluIGBzdGRgKS4KLS0vLyEKLS0vLyEgKiAqKnNhZmUgYml0 d2lzZSBjb252ZXJzaW9ucyoqOiBUaGUgY2FyZ28gZmVhdHVyZSBgaW50b19iaXRzYCBwcm92aWRl cyB0aGUKLS0vLyEgICBgSW50b0JpdHMvRnJvbUJpdHNgIHRyYWl0cyAoYHguaW50b19iaXRzKClg KS4gVGhlc2UgcGVyZm9ybSBzYWZlIGJpdHdpc2UKLS0vLyEgICBgdHJhbnNtdXRlYHMgd2hlbiBh bGwgYml0IHBhdHRlcm5zIG9mIHRoZSBzb3VyY2UgdHlwZSBhcmUgdmFsaWQgYml0Ci0tLy8hICAg cGF0dGVybnMgb2YgdGhlIHRhcmdldCB0eXBlIGFuZCBhcmUgYWxzbyBpbXBsZW1lbnRlZCBmb3Ig dGhlCi0tLy8hICAgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZlY3RvciB0eXBlcyBvZiBgc3RkOjph cmNoYC4gRm9yIGV4YW1wbGUsIGBsZXQgeDoKLS0vLyEgICB1OHg4ID0gbTh4ODo6c3BsYXQodHJ1 ZSkuaW50b19iaXRzKCk7YCBpcyBwcm92aWRlZCBiZWNhdXNlIGFsbCBgbTh4OGAgYml0Ci0tLy8h ICAgcGF0dGVybnMgYXJlIHZhbGlkIGB1OHg4YCBiaXQgcGF0dGVybnMuIEhvd2V2ZXIsIHRoZSBv cHBvc2l0ZSBpcyBub3QKLS0vLyEgdHJ1ZSwgICBub3QgYWxsIGB1OHg4YCBiaXQgcGF0dGVybnMg YXJlIHZhbGlkIGBtOHg4YCBiaXQtcGF0dGVybnMsIHNvIHRoaXMKLS0vLyEgICBvcGVyYXRpb24g Y2Fubm90IGJlIHBlcmZvcm1lZCBzYWZlbHkgdXNpbmcgYHguaW50b19iaXRzKClgOyBvbmUgbmVl ZHMgdG8KLS0vLyEgICB1c2UgYHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSh4KSB9YCBm b3IgdGhhdCwgbWFraW5nIHN1cmUgdGhhdCB0aGUKLS0vLyEgICB2YWx1ZSBpbiB0aGUgYHU4eDhg IGlzIGEgdmFsaWQgYml0LXBhdHRlcm4gb2YgYG04eDhgLgotLS8vIQotLS8vISAqICoqbnVtZXJp YyBjYXN0cyoqIChgYXNgKTogYXJlIHBlcmZvcm1lZCB1c2luZyBbYEZyb21DYXN0YF0vW2BDYXN0 YF0KLS0vLyEgKGB4LmNhc3QoKWApLCBqdXN0IGxpa2UgYGFzYDoKLS0vLyEKLS0vLyEgICAqIGNh c3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2ZSB0aGUgc2FtZSBzaXpl IChlLmcuCi0tLy8hIGBpMzJ4TmAgICAgIC0+IGB1MzJ4TmApIGlzIGEgKipuby1vcCoqLAotLS8v IQotLS8vISAgICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8gYSBzbWFsbGVyIGlu dGVnZXIgKGUuZy4gYHUzMnhOYCAtPgotLS8vISBgdTh4TmApICAgICB3aWxsICoqdHJ1bmNhdGUq KiwKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdlciB0byBhIGxh cmdlciBpbnRlZ2VyICAgICAoZS5nLiBgdTh4TmAgLT4KLS0vLyEgICAgIGB1MzJ4TmApIHdpbGw6 Ci0tLy8hICAgICAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHVuc2lnbmVk LCBvcgotLS8vISAgICAgICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWdu ZWQsCi0tLy8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2VyIHdp bGwgKipyb3VuZCB0aGUgZmxvYXQgdG93YXJkcwotLS8vISB6ZXJvKiosCi0tLy8hCi0tLy8hICAg KiBjYXN0aW5nIGZyb20gYW4gaW50ZWdlciB0byBmbG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0 aW5nIHBvaW50Ci0tLy8hICAgICByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZWdlciwgKipyb3Vu ZGluZyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKiwKLS0vLyEKLS0vLyEgICAqIGNhc3Rpbmcg ZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0YCBpcyBwZXJmZWN0IGFuZCBsb3NzbGVzcywKLS0vLyEK LS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0byBhbiBgZjMyYCAqKnJvdW5kcyB0byBu ZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KLS0vLyEKLS0vLyEgICBOdW1lcmljIGNhc3RzIGFyZSBu b3QgdmVyeSAicHJlY2lzZSI6IHNvbWV0aW1lcyBsb3NzeSwgc29tZXRpbWVzIHZhbHVlCi0tLy8h ICAgcHJlc2VydmluZywgZXRjLgotLS8vIQotLS8vISAjIyBIYXJkd2FyZSBGZWF0dXJlcwotLS8v IQotLS8vISBUaGlzIGNyYXRlIGNhbiB1c2UgZGlmZmVyZW50IGhhcmR3YXJlIGZlYXR1cmVzIGJh c2VkIG9uIHlvdXIgY29uZmlndXJlZAotLS8vISBgUlVTVEZMQUdTYC4gRm9yIGV4YW1wbGUsIHdp dGggbm8gY29uZmlndXJlZCBgUlVTVEZMQUdTYCwgYHU2NHg4YCBvbgotLS8vISB4ODZfNjQgd2ls bCB1c2UgU1NFMiBvcGVyYXRpb25zIGxpa2UgYFBDTVBFUURgLiBJZiB5b3UgY29uZmlndXJlCi0t Ly8hIGBSVVNURkxBR1M9Jy1DIHRhcmdldC1mZWF0dXJlPSthdngyLCthdngnYCBvbiBzdXBwb3J0 ZWQgeDg2XzY0IGhhcmR3YXJlCi0tLy8hIHRoZSBzYW1lIGB1NjR4OGAgbWF5IHVzZSB3aWRlciBB VlgyIG9wZXJhdGlvbnMgbGlrZSBgVlBDTVBFUVFgLiBJdCBpcwotLS8vISBpbXBvcnRhbnQgZm9y IHBlcmZvcm1hbmNlIGFuZCBmb3IgaGFyZHdhcmUgc3VwcG9ydCByZXF1aXJlbWVudHMgdGhhdAot LS8vISB5b3UgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIHNldCBvZiBgdGFyZ2V0LWZlYXR1cmVgIGFu ZCBgdGFyZ2V0LWNwdWAKLS0vLyEgb3B0aW9ucyBkdXJpbmcgYnVpbGRzLiBGb3IgbW9yZSBpbmZv cm1hdGlvbiwgc2VlIHRoZSBbUGVyZm9ybWFuY2UKLS0vLyEgZ3VpZGVdKGh0dHBzOi8vcnVzdC1s YW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvKQotLQotLSMhW2Zl YXR1cmUoCi0tICAgIGFkdF9jb25zdF9wYXJhbXMsCi0tICAgIHJlcHJfc2ltZCwKLS0gICAgcnVz dGNfYXR0cnMsCi0tICAgIHBsYXRmb3JtX2ludHJpbnNpY3MsCi0tICAgIHN0ZHNpbWQsCi0tICAg IGFybV90YXJnZXRfZmVhdHVyZSwKLS0gICAgbGlua19sbHZtX2ludHJpbnNpY3MsCi0tICAgIGNv cmVfaW50cmluc2ljcywKLS0gICAgc3RtdF9leHByX2F0dHJpYnV0ZXMsCi0tICAgIGN1c3RvbV9p bm5lcl9hdHRyaWJ1dGVzLAotLSldCi0tIyFbYWxsb3cobm9uX2NhbWVsX2Nhc2VfdHlwZXMsIG5v bl9zbmFrZV9jYXNlLAotLSAgICAgICAgLy8gRklYTUU6IHRoZXNlIHR5cGVzIGFyZSB1bnNvdW5k IGluIEMgRkZJIGFscmVhZHkKLS0gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL3J1c3QvaXNzdWVzLzUzMzQ2Ci0tICAgICAgICBpbXByb3Blcl9jdHlwZXNfZGVmaW5p dGlvbnMsCi0tICAgICAgICBpbmNvbXBsZXRlX2ZlYXR1cmVzLAotLSAgICAgICAgY2xpcHB5Ojpj YXN0X3Bvc3NpYmxlX3RydW5jYXRpb24sCi0tICAgICAgICBjbGlwcHk6OmNhc3RfbG9zc2xlc3Ms Ci0tICAgICAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfd3JhcCwKLS0gICAgICAgIGNsaXBweTo6 Y2FzdF9wcmVjaXNpb25fbG9zcywKLS0gICAgICAgIC8vIFRPRE86IG1hbnVhbGx5IGFkZCB0aGUg YCNbbXVzdF91c2VdYCBhdHRyaWJ1dGUgd2hlcmUgYXBwcm9wcmlhdGUKLS0gICAgICAgIGNsaXBw eTo6bXVzdF91c2VfY2FuZGlkYXRlLAotLSAgICAgICAgLy8gVGhpcyBsaW50IGlzIGN1cnJlbnRs eSBicm9rZW4gZm9yIGdlbmVyaWMgY29kZQotLSAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmcvcnVzdC1jbGlwcHkvaXNzdWVzLzM0MTAKLS0gICAgICAgIGNsaXBweTo6 dXNlX3NlbGYsCi0tICAgICAgICBjbGlwcHk6Ondyb25nX3NlbGZfY29udmVudGlvbiwKLS0gICAg ICAgIGNsaXBweTo6ZnJvbV9vdmVyX2ludG8sCi0tKV0KLS0jIVtjZmdfYXR0cih0ZXN0LCBmZWF0 dXJlKGhhc2htYXBfaW50ZXJuYWxzKSldCi0tIyFbY2ZnX2F0dHIoZG9jX2NmZywgZmVhdHVyZShk b2NfY2ZnKSldCi0tIyFbZGVueShydXN0XzIwMThfaWRpb21zLCBjbGlwcHk6Om1pc3NpbmdfaW5s aW5lX2luX3B1YmxpY19pdGVtcyldCi0tIyFbbm9fc3RkXQotLQotLXVzZSBjZmdfaWY6OmNmZ19p ZjsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcoZmVhdHVyZSA9ICJjb3JlX2FyY2giKV0g ewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCi0tICAgICAgICB1c2UgY29yZV9h cmNoIGFzIGFyY2g7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF9pbXBv cnRzKV0KLS0gICAgICAgIHVzZSBjb3JlOjphcmNoOwotLSAgICB9Ci0tfQotLQotLSNbY2ZnKGFs bCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB0ZXN0KSldCi0tdXNlIHdhc21fYmluZGdlbl90ZXN0 OjoqOwotLQotLSNbYWxsb3codW51c2VkX2ltcG9ydHMpXQotLXVzZSBjb3JlOjp7Ci0tICAgIC8q IGFyY2ggKGhhbmRsZWQgYWJvdmUpLCAqLyBjbXAsIGYzMiwgZjY0LCBmbXQsIGhhc2gsIGhpbnQs IGkxMjgsIGkxNiwgaTMyLCBpNjQsIGk4LCBpbnRyaW5zaWNzLAotLSAgICBpc2l6ZSwgaXRlciwg bWFya2VyLCBtZW0sIG9wcywgcHRyLCBzbGljZSwgdTEyOCwgdTE2LCB1MzIsIHU2NCwgdTgsIHVz aXplLAotLX07Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHRlc3Rpbmc7Ci0tI1ttYWNyb191c2Vd Ci0tbW9kIGFwaTsKLS1tb2QgY29kZWdlbjsKLS1tb2Qgc2VhbGVkOwotLQotLXB1YiB1c2UgY3Jh dGU6OnNlYWxlZDo6e01hc2ssIFNodWZmbGUsIFNpbWQgYXMgU2ltZFZlY3RvciwgU2ltZEFycmF5 fTsKLS0KLS0vLy8gUGFja2VkIFNJTUQgdmVjdG9yIHR5cGUuCi0tLy8vCi0tLy8vICMgRXhhbXBs ZXMKLS0vLy8KLS0vLy8gYGBgCi0tLy8vICMgdXNlIHBhY2tlZF9zaW1kOjpTaW1kOwotLS8vLyBs ZXQgdiA9IFNpbWQ6OjxbaTMyOyA0XT46Om5ldygwLCAxLCAyLCAzKTsKLS0vLy8gYXNzZXJ0X2Vx ISh2LmV4dHJhY3QoMiksIDIpOwotLS8vLyBgYGAKLS0jW3JlcHIodHJhbnNwYXJlbnQpXQotLSNb ZGVyaXZlKENvcHksIENsb25lKV0KLS1wdWIgc3RydWN0IFNpbWQ8QTogc2VhbGVkOjpTaW1kQXJy YXk+KAotLSAgICAvLyBGSVhNRTogdGhpcyB0eXBlIHNob3VsZCBiZSBwcml2YXRlLAotLSAgICAv LyBidXQgaXQgY3VycmVudGx5IG11c3QgYmUgcHVibGljIGZvciB0aGUKLS0gICAgLy8gYHNodWZm bGUhYCBtYWNybyB0byB3b3JrOiBpdCBuZWVkcyB0bwotLSAgICAvLyBhY2Nlc3MgdGhlIGludGVy bmFsIGByZXByKHNpbWQpYCB0eXBlCi0tICAgIC8vIHRvIGNhbGwgdGhlIHNodWZmbGUgaW50cmlu c2ljcy4KLS0gICAgI1tkb2MoaGlkZGVuKV0gcHViIDxBIGFzIHNlYWxlZDo6U2ltZEFycmF5Pjo6 VHVwbGUsCi0tKTsKLS0KLS1pbXBsPEE6IHNlYWxlZDo6U2ltZEFycmF5PiBzZWFsZWQ6OlNlYWwg Zm9yIFNpbWQ8QT4ge30KLS0KLS0vLy8gV3JhcHBlciBvdmVyIGBUYCBpbXBsZW1lbnRpbmcgYSBs ZXhpY29yYXBoaWNhbCBvcmRlciB2aWEgdGhlIGBQYXJ0aWFsT3JkYAotLS8vLyBhbmQvb3IgYE9y ZGAgdHJhaXRzLgotLSNbcmVwcih0cmFuc3BhcmVudCldCi0tI1tkZXJpdmUoQ29weSwgQ2xvbmUs IERlYnVnKV0KLS0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1z KV0KLS1wdWIgc3RydWN0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPihUKTsKLS0KLS1tb2Qg bWFza3M7Ci0tcHViIHVzZSBzZWxmOjptYXNrczo6KjsKLS0KLS1tb2QgdjE2OwotLXB1YiB1c2Ug c2VsZjo6djE2OjoqOwotLQotLW1vZCB2MzI7Ci0tcHViIHVzZSBzZWxmOjp2MzI6Oio7Ci0tCi0t bW9kIHY2NDsKLS1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKLS0KLS1tb2QgdjEyODsKLS1wdWIgdXNl IHNlbGY6OnYxMjg6Oio7Ci0tCi0tbW9kIHYyNTY7Ci0tcHViIHVzZSBzZWxmOjp2MjU2OjoqOwot LQotLW1vZCB2NTEyOwotLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKLS0KLS1tb2QgdlNpemU7Ci0t cHViIHVzZSBzZWxmOjp2U2l6ZTo6KjsKLS0KLS1tb2QgdlB0cjsKLS1wdWIgdXNlIHNlbGY6OnZQ dHI6Oio7Ci0tCi0tcHViIHVzZSBzZWxmOjphcGk6OmNhc3Q6Oio7Ci0tCi0tI1tjZmcoZmVhdHVy ZSA9ICJpbnRvX2JpdHMiKV0KLS1wdWIgdXNlIHNlbGY6OmFwaTo6aW50b19iaXRzOjoqOwotLQot LS8vIFJlLWV4cG9ydCB0aGUgc2h1ZmZsZSBpbnRyaW5zaWNzIHJlcXVpcmVkIGJ5IHRoZSBgc2h1 ZmZsZSFgIG1hY3JvLgotLSNbZG9jKGhpZGRlbildCi0tcHViIHVzZSBzZWxmOjpjb2RlZ2VuOjps bHZtOjp7Ci0tICAgIF9fc2h1ZmZsZV92ZWN0b3IxNiwgX19zaHVmZmxlX3ZlY3RvcjIsIF9fc2h1 ZmZsZV92ZWN0b3IzMiwgX19zaHVmZmxlX3ZlY3RvcjQsIF9fc2h1ZmZsZV92ZWN0b3I2NCwKLS0g ICAgX19zaHVmZmxlX3ZlY3RvcjgsCi0tfTsKLS0KLS1wdWIoY3JhdGUpIG1vZCBsbHZtIHsKLS0g ICAgcHViKGNyYXRlKSB1c2UgY3JhdGU6OmNvZGVnZW46Omxsdm06Oio7Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21hc2tzLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL21hc2tzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTI2ICswLDAgQEAKLS0vLyEg TWFzayB0eXBlcwotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfdHkgewotLSAgICAoJGlkOmlk ZW50IDogJGVsZW1fdHk6aWRlbnQgfCAjWyRkb2M6bWV0YV0pID0+IHsKLS0gICAgICAgICNbJGRv Y10KLS0gICAgICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KLS0gICAgICAgIHB1YiBzdHJ1Y3Qg JGlkKCRlbGVtX3R5KTsKLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3Ig JGlkIHt9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6Ok1hc2sgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gdGVzdCgmc2VsZikgLT4gYm9vbCB7 Ci0tICAgICAgICAgICAgICAgICRpZDo6dGVzdChzZWxmKQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlh dGUgYSBtYXNrIHdpdGggYHZhbHVlYAotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIHB1YiBmbiBuZXcoeDogYm9vbCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGlmIHgg ewotLSAgICAgICAgICAgICAgICAgICAgJGlkKCEwKQotLSAgICAgICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICAgICAgJGlkKDApCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgLy8vIFRlc3QgaWYgdGhlIG1hc2sgaXMgc2V0Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHRlc3QoJnNlbGYpIC0+IGJv b2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIGltcGwgRGVmYXVsdCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgICRpZCgwKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgICNb YWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBpbXBsIFBhcnRpYWxF cTwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxm LjAgPT0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAg ICAgICAgICAgc2VsZi4wICE9IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICBpbXBsIEVxIGZvciAkaWQge30KLS0KLS0gICAgICAgIGltcGwgUGFydGlhbE9y ZDwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IE9wdGlvbjxjcmF0ZTo6Y21wOjpP cmRlcmluZz4gewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNtcDo6T3JkZXJpbmc7Ci0t ICAgICAgICAgICAgICAgIGlmIHNlbGYgPT0gb3RoZXIgewotLSAgICAgICAgICAgICAgICAgICAg U29tZShPcmRlcmluZzo6RXF1YWwpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBzZWxmLjAg PiBvdGhlci4wIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6Ci0tICAgICAgICAgICAg ICAgICAgICAvLyAgKiBmYWxzZSA9IDBfaQotLSAgICAgICAgICAgICAgICAgICAgLy8gICogdHJ1 ZSA9PSAhMF9pID09IC0xX2kKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxl c3MpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21l KE9yZGVyaW5nOjpHcmVhdGVyKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGx0KCZzZWxmLCBvdGhl cjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAgPiBvdGhlci4wCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGd0 KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBzZWxmLjAg PCBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAg ICAgICBzZWxmLjAgPj0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsK LS0gICAgICAgICAgICAgICAgc2VsZi4wIDw9IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICBpbXBsIE9yZCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBjbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gY3JhdGU6 OmNtcDo6T3JkZXJpbmcgewotLSAgICAgICAgICAgICAgICBtYXRjaCBzZWxmLnBhcnRpYWxfY21w KG90aGVyKSB7Ci0tICAgICAgICAgICAgICAgICAgICBTb21lKHgpID0+IHgsCi0tICAgICAgICAg ICAgICAgICAgICBOb25lID0+IHVuc2FmZSB7IGNyYXRlOjpoaW50Ojp1bnJlYWNoYWJsZV91bmNo ZWNrZWQoKSB9LAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkIHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNo ZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7Ci0tICAgICAgICAgICAgICAgIChzZWxmLjAgIT0g MCkuaGFzaChzdGF0ZSk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAg aW1wbCBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGZtdHRlcjogJm11dCBjcmF0ZTo6Zm10OjpGb3Jt YXR0ZXI8J18+KSAtPiBSZXN1bHQ8KCksIGNyYXRlOjpmbXQ6OkVycm9yPiB7Ci0tICAgICAgICAg ICAgICAgIHdyaXRlIShmbXR0ZXIsICJ7fSh7fSkiLCBzdHJpbmdpZnkhKCRpZCksIHNlbGYuMCAh PSAwKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9t YXNrX3R5IShtODogaTggfCAvLy8gOC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNrX3R5 IShtMTY6IGkxNiB8IC8vLyAxNi1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNrX3R5ISht MzI6IGkzMiB8IC8vLyAzMi1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNrX3R5IShtNjQ6 IGk2NCB8IC8vLyA2NC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNrX3R5IShtMTI4OiBp MTI4IHwgLy8vIDEyOC1iaXQgd2lkZSBtYXNrLgotLSk7Ci0taW1wbF9tYXNrX3R5IShtc2l6ZTog aXNpemUgfCAvLy8gaXNpemUtd2lkZSBtYXNrLgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvc2VhbGVkLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9zZWFsZWQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDIgKzAsMCBAQAotLS8vISBTZWFsZWQgdHJh aXRzCi0tCi0tLy8vIEEgc2VhbGVkIHRyYWl0LCB0aGlzIGlzIGxvZ2ljYWxseSBwcml2YXRlIHRv IHRoZSBjcmF0ZQotLS8vLyBhbmQgd2lsbCBwcmV2ZW50IGltcGxlbWVudGF0aW9ucyBmcm9tIG91 dHNpZGUgdGhlIGNyYXRlCi0tcHViIHRyYWl0IFNlYWw8VCA9ICgpPiB7fQotLQotLS8vLyBUcmFp dCBpbXBsZW1lbnRlZCBieSBhcnJheXMgdGhhdCBjYW4gYmUgU0lNRCB0eXBlcy4KLS1wdWIgdHJh aXQgU2ltZEFycmF5OiBTZWFsIHsKLS0gICAgLy8vIFRoZSB0eXBlIG9mIHRoZSAjW3JlcHIoc2lt ZCldIHR5cGUuCi0tICAgIHR5cGUgVHVwbGU6IENvcHkgKyBDbG9uZTsKLS0gICAgLy8vIFRoZSBl bGVtZW50IHR5cGUgb2YgdGhlIHZlY3Rvci4KLS0gICAgdHlwZSBUOwotLSAgICAvLy8gVGhlIG51 bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCi0tICAgIGNvbnN0IE46IHVzaXplOwotLSAg ICAvLy8gVGhlIHR5cGU6IGBbdTMyOyBTZWxmOjpOXWAuCi0tICAgIHR5cGUgTlQ7Ci0tfQotLQot LS8vLyBUaGlzIHRyYWl0cyBpcyB1c2VkIHRvIGNvbnN0cmFpbnQgdGhlIGFyZ3VtZW50cwotLS8v LyBhbmQgcmVzdWx0IHR5cGUgb2YgdGhlIHBvcnRhYmxlIHNodWZmbGVzLgotLSNbZG9jKGhpZGRl bildCi0tcHViIHRyYWl0IFNodWZmbGU8TGFuZXM+OiBTZWFsPExhbmVzPiB7Ci0tICAgIC8vIExh bmVzIGlzIGEgYFt1MzI7IE5dYCB3aGVyZSBgTmAgaXMgdGhlIG51bWJlciBvZiB2ZWN0b3IgbGFu ZXMKLS0KLS0gICAgLy8vIFRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc2h1ZmZsZS4KLS0gICAgdHlw ZSBPdXRwdXQ7Ci0tfQotLQotLS8vLyBUaGlzIHRyYWl0IGlzIGltcGxlbWVudGVkIGJ5IGFsbCBT SU1EIHZlY3RvciB0eXBlcy4KLS1wdWIgdHJhaXQgU2ltZDogU2VhbCB7Ci0tICAgIC8vLyBFbGVt ZW50IHR5cGUgb2YgdGhlIFNJTUQgdmVjdG9yCi0tICAgIHR5cGUgRWxlbWVudDsKLS0gICAgLy8v IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIFNJTUQgdmVjdG9yLgotLSAgICBjb25zdCBM QU5FUzogdXNpemU7Ci0tICAgIC8vLyBUaGUgdHlwZTogYFt1MzI7IFNlbGY6Ok5dYC4KLS0gICAg dHlwZSBMYW5lc1R5cGU7Ci0tfQotLQotLS8vLyBUaGlzIHRyYWl0IGlzIGltcGxlbWVudGVkIGJ5 IGFsbCBtYXNrIHR5cGVzCi0tcHViIHRyYWl0IE1hc2s6IFNlYWwgewotLSAgICBmbiB0ZXN0KCZz ZWxmKSAtPiBib29sOwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL3Rlc3RpbmcvbWFjcm9zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy90ZXN0aW5nL21hY3Jvcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3Mu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQ0ICswLDAgQEAK LS0vLyEgVGVzdGluZyBtYWNyb3MKLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9pZiB7Ci0tICAgICgk Y2ZnX3R0OnR0OiAkaXQ6aXRlbSkgPT4gewotLSAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRl c3QgZXZlcnl0aGluZyBpZjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gKiBubyBmZWF0dXJlcyBhYm91dCBleGNsdXNpdmVseSB0ZXN0aW5nCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBz cGVjaWZpYyB2ZWN0b3IgY2xhc3NlcyBhcmUgZW5hYmxlZAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbCh0ZXN0LCBub3QoYW55 KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X3YxNiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MzIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjY0 LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0ZXN0X3YxMjgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjI1NiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92 NTEyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X25vbmUsICAvLyBkaXNhYmxlcyBhbGwgdGVzdHMKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGVzdCBpZjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAqIGEgcGFydGljdWxhciBjZmcgdG9rZW4gdHJlZSByZXR1cm5zIHRydWUKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwo dGVzdCwgJGNmZ190dCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApKV0KLS0gICAgICAgICRpdAotLSAgICB9OwotLX0KLS0KLS0jW2Nm Zyh0ZXN0KV0KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIHJlZl8gewotLSAgICAo JGFueXRoaW5nOnR0KSA9PiB7Ci0tICAgICAgICAmJGFueXRoaW5nCi0tICAgIH07Ci0tfQotLQot LSNbY2ZnKHRlc3QpXQotLSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19ydWxlcyEgcmVmX211dF8g ewotLSAgICAoJGFueXRoaW5nOnR0KSA9PiB7Ci0tICAgICAgICAmbXV0ICRhbnl0aGluZwotLSAg ICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90 ZXN0aW5nL3V0aWxzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGlu Zy91dGlscy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGlu Zy91dGlscy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGlscy5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMwICswLDAgQEAKLS0vLyEgVGVzdGlu ZyB1dGlsaXRpZXMKLS0KLS0jIVthbGxvdyhkZWFkX2NvZGUpXQotLS8vIEZJWE1FOiBPciBkb24n dC4gQnV0IGl0J3MgdHJ1ZSB0aGlzIGlzIGEgcHJvYmxlbWF0aWMgY29tcGFyaXNvbi4KLS0jIVth bGxvdyhjbGlwcHk6Om5lZ19jbXBfb3Bfb25fcGFydGlhbF9vcmQpXQotLQotLXVzZSBjcmF0ZTo6 e2NtcDo6UGFydGlhbE9yZCwgZm10OjpEZWJ1ZywgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkfTsK LS0KLS0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFgIGFuZCBgYmAgd2hlcmUgYGEgPCBiYCBp cyB0cnVlLgotLXB1YiBmbiB0ZXN0X2x0PFQ+KGE6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxU PiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KQotLXdoZXJlCi0tICAgIExleGljb2dy YXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0aWFsT3JkLAotLXsKLS0gICAgYXNzZXJ0 IShhIDwgYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0IShiID4gYSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0KLS0gICAgYXNzZXJ0ISghKGEgPT0gYiksICJ7Oj99LCB7Oj99Iiwg YSwgYik7Ci0tICAgIGFzc2VydF9uZSEoYSwgYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0KLS0g ICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFzc2VydCEoYiA+ PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICAvLyBUaGUgZWxlZ2FuY2Ugb2YgdGhl IG1hdGhlbWF0aWNhbCBleHByZXNzaW9uIG9mIGlycmVmbGV4aXZpdHkgaXMgbW9yZQotLSAgICAv LyB0aGFuIGNsaXBweSBjYW4gaGFuZGxlLgotLSAgICAjW2FsbG93KGNsaXBweTo6ZXFfb3ApXQot LSAgICB7Ci0tICAgICAgICAvLyBJcnJlZmxleGl2aXR5Ci0tICAgICAgICBhc3NlcnQhKCEoYSA8 IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0ISghKGIgPCBiKSwgIns6 P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2VydCEoIShhID4gYSksICJ7Oj99LCB7Oj99 IiwgYSwgYik7Ci0tICAgICAgICBhc3NlcnQhKCEoYiA+IGIpLCAiezo/fSwgezo/fSIsIGEsIGIp OwotLQotLSAgICAgICAgYXNzZXJ0IShhIDw9IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAg ICAgICBhc3NlcnQhKGIgPD0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgfQotLX0KLS0K LS0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFgIGFuZCBgYmAgd2hlcmUgYGEgPD0gYmAgaXMg dHJ1ZS4KLS1wdWIgZm4gdGVzdF9sZTxUPihhOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4s IGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPikKLS13aGVyZQotLSAgICBMZXhpY29ncmFw aGljYWxseU9yZGVyZWQ8VD46IERlYnVnICsgUGFydGlhbE9yZCwKLS17Ci0tICAgIGFzc2VydCEo YSA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBhc3NlcnQhKGIgPj0gYSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0KLS0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwg Yik7Ci0tICAgIGFzc2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICBp ZiBhID09IGIgewotLSAgICAgICAgYXNzZXJ0ISghKGEgPCBiKSwgIns6P30sIHs6P30iLCBhLCBi KTsKLS0gICAgICAgIGFzc2VydCEoIShiID4gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tCi0t ICAgICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgfSBl bHNlIHsKLS0gICAgICAgIGFzc2VydF9uZSEoYSwgYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0g ICAgICAgIHRlc3RfbHQoYSwgYik7Ci0tICAgIH0KLS19Ci0tCi0tLy8vIFRlc3QgUGFydGlhbE9y ZDo6cGFydGlhbF9jbXAgZm9yIGBhYCBhbmQgYGJgIHJldHVybmluZyBgT3JkZXJpbmdgCi0tcHVi IGZuIHRlc3RfY21wPFQ+KAotLSAgICBhOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sCi0t ICAgIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwKLS0gICAgbzogT3B0aW9uPGNyYXRl OjpjbXA6Ok9yZGVyaW5nPiwKLS0pIHdoZXJlCi0tICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDxUPjogUGFydGlhbE9yZCArIERlYnVnLAotLSAgICBUOiBEZWJ1ZyArIGNyYXRlOjpzZWFsZWQ6 OlNpbWQgKyBDb3B5ICsgQ2xvbmUsCi0tICAgIDxUIGFzIGNyYXRlOjpzZWFsZWQ6OlNpbWQ+OjpF bGVtZW50OiBEZWZhdWx0ICsgQ29weSArIENsb25lICsgUGFydGlhbE9yZCwKLS17Ci0tICAgIGFz c2VydCEoVDo6TEFORVMgPD0gNjQsICJhcnJheSBsZW5ndGggaW4gdGhlc2UgdHdvIGFycmF5cyBu ZWVkcyB1cGRhdGluZyIpOwotLSAgICBsZXQgbXV0IGFycl9hOiBbVDo6RWxlbWVudDsgNjRdID0g W0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRdOwotLSAgICBsZXQgbXV0IGFycl9iOiBbVDo6RWxlbWVu dDsgNjRdID0gW0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRdOwotLQotLSAgICB1bnNhZmUgeyBjcmF0 ZTo6cHRyOjp3cml0ZV91bmFsaWduZWQoYXJyX2EuYXNfbXV0X3B0cigpIGFzICptdXQgTGV4aWNv Z3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBhKSB9Ci0tICAgIHVuc2FmZSB7IGNyYXRlOjpwdHI6Ondy aXRlX3VuYWxpZ25lZChhcnJfYi5hc19tdXRfcHRyKCkgYXMgKm11dCBMZXhpY29ncmFwaGljYWxs eU9yZGVyZWQ8VD4sIGIpIH0KLS0gICAgbGV0IGV4cGVjdGVkID0gYXJyX2FbMC4uVDo6TEFORVNd LnBhcnRpYWxfY21wKCZhcnJfYlswLi5UOjpMQU5FU10pOwotLSAgICBsZXQgcmVzdWx0ID0gYS5w YXJ0aWFsX2NtcCgmYik7Ci0tICAgIGFzc2VydF9lcSEoZXhwZWN0ZWQsIHJlc3VsdCwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0X2VxIShvLCByZXN1bHQsICJ7Oj99LCB7Oj99Iiwg YSwgYik7Ci0tICAgIG1hdGNoIG8gewotLSAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmlu Zzo6TGVzcykgPT4gewotLSAgICAgICAgICAgIHRlc3RfbHQoYSwgYik7Ci0tICAgICAgICAgICAg dGVzdF9sZShhLCBiKTsKLS0gICAgICAgIH0KLS0gICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3Jk ZXJpbmc6OkdyZWF0ZXIpID0+IHsKLS0gICAgICAgICAgICB0ZXN0X2x0KGIsIGEpOwotLSAgICAg ICAgICAgIHRlc3RfbGUoYiwgYSk7Ci0tICAgICAgICB9Ci0tICAgICAgICBTb21lKGNyYXRlOjpj bXA6Ok9yZGVyaW5nOjpFcXVhbCkgPT4gewotLSAgICAgICAgICAgIGFzc2VydCEoYSA9PSBiLCAi ezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/ fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShhIDwgYiksICJ7Oj99LCB7 Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPCBhKSwgIns6P30sIHs6P30i LCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA+IGIpLCAiezo/fSwgezo/fSIsIGEs IGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShiID4gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7 Ci0tCi0tICAgICAgICAgICAgdGVzdF9sZShhLCBiKTsKLS0gICAgICAgICAgICB0ZXN0X2xlKGIs IGEpOwotLSAgICAgICAgfQotLSAgICAgICAgTm9uZSA9PiB7Ci0tICAgICAgICAgICAgYXNzZXJ0 ISghKGEgPT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISgh KGEgIT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGEg PCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA+IGIp LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShiIDwgYSksICJ7 Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwgIns6P30s IHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA8PSBiKSwgIns6P30sIHs6 P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYiA8PSBhKSwgIns6P30sIHs6P30i LCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYSA+PSBiKSwgIns6P30sIHs6P30iLCBh LCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYiA+PSBhKSwgIns6P30sIHs6P30iLCBhLCBi KTsKLS0gICAgICAgIH0KLS0gICAgfQotLX0KLS0KLS0vLyBSZXR1cm5zIGEgdHVwbGUgY29udGFp bmluZyB0d28gZGlzdGluY3QgcG9pbnRlciB2YWx1ZXMgb2YgdGhlIHNhbWUgdHlwZSBhcwotLS8v IHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIFNpbWQgdmVjdG9yIGAkaWRgLgotLSNbYWxsb3codW51 c2VkKV0KLS1tYWNyb19ydWxlcyEgcHRyX3ZhbHMgewotLSAgICAoJGlkOnR5KSA9PiB7Ci0tICAg ICAgICAvLyBleHBhbmRzIHRvIGFuIGV4cHJlc3Npb24KLS0gICAgICAgICNbYWxsb3codW51c2Vk X3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgIC8vIGFsbCBiaXRzIGNs ZWFyZWQKLS0gICAgICAgICAgICBsZXQgY2xlYXI6IDwkaWQgYXMgc2VhbGVkOjpTaW1kPjo6RWxl bWVudCA9IGNyYXRlOjptZW06Onplcm9lZCgpOwotLSAgICAgICAgICAgIC8vIGFsbCBiaXRzIHNl dAotLSAgICAgICAgICAgIGxldCBzZXQ6IDwkaWQgYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudCA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgtMV9pc2l6ZSk7Ci0tICAgICAgICAgICAgKGNsZWFyLCBz ZXQpCi0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy90ZXN0aW5nLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy90ZXN0aW5nLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4ICswLDAgQEAKLS0vLyEgVGVzdGluZyBtYWNy b3MgYW5kIG90aGVyIHV0aWxpdGllcy4KLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgbWFjcm9zOwot LQotLSNbY2ZnKHRlc3QpXQotLSNbbWFjcm9fdXNlXQotLXB1YihjcmF0ZSkgbW9kIHV0aWxzOwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJz CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4MCArMCwwIEBACi0t Ly8hIDEyOC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNl IGNyYXRlOjoqOwotLQotLWltcGxfaSEoW2k4OyAxNl06IGk4eDE2LCBtOHgxNiB8IGk4LCB1MTYg fCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTogfAot LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxNiBgaThgIGxhbmVzLgotLSk7Ci0t aW1wbF91IShbdTg7IDE2XTogdTh4MTYsIG04eDE2IHwgdTgsIHUxNiB8IHRlc3RfdjEyOCB8Ci0t ICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEs IHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAx MjgtYml0IHZlY3RvciB3aXRoIDE2IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsgMTZd OiBtOHgxNiB8IGk4LCB1MTYgfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAot LSAgICAgICAgRnJvbTogbTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1h c2sgd2l0aCAxNiBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyA4XTogaTE2eDgs IG0xNng4IHwgaTE2LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NyB8Ci0tICAgICAgICBGcm9tOiBpOHg4LCB1OHg4IHwKLS0gICAgICAgIC8vLyBBIDEyOC1i aXQgdmVjdG9yIHdpdGggOCBgaTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxNjsgOF06IHUx Nng4LCBtMTZ4OCB8IHUxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1 LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogdTh4OCB8Ci0tICAgICAgICAvLy8gQSAxMjgtYml0 IHZlY3RvciB3aXRoIDggYHUxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttMTY7IDhdOiBtMTZ4 OCB8IGkxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcg fAotLSAgICAgICAgRnJvbTogbTh4OCwgbTMyeDggfAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2 ZWN0b3IgbWFzayB3aXRoIDggYG0xNmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMzI7IDRd OiBpMzJ4NCwgbTMyeDQgfCBpMzIsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAot LSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0ICB8Ci0tICAgICAgICAvLy8g QSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYGkzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1MzI7 IDRdOiB1MzJ4NCwgbTMyeDQgfCB1MzIsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMg fAotLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQgfAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2 ZWN0b3Igd2l0aCA0IGB1MzJgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjMyOyA0XTogZjMyeDQs IG0zMng0IHwgZjMyIHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJv bTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0IHwKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVj dG9yIHdpdGggNCBgZjMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20zMjsgNF06IG0zMng0IHwg aTMyLCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IG04 eDQsIG0xNng0LCBtNjR4NCB8Ci0tICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdp dGggNCBgbTMyYCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2k2NDsgMl06IGk2NHgyLCBtNjR4 MiB8IGk2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogaTh4Miwg dTh4MiwgaTE2eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIgfAotLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3Igd2l0aCAyIGBpNjRgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTY0OyAyXTogdTY0 eDIsIG02NHgyIHwgdTY0LCB1OCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9t OiB1OHgyLCB1MTZ4MiwgdTMyeDIgfAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0 aCAyIGB1NjRgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjY0OyAyXTogZjY0eDIsIG02NHgyIHwg ZjY0IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkx NngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyLCBmMzJ4MiB8Ci0tICAgICAgICAvLy8gQSAxMjgtYml0 IHZlY3RvciB3aXRoIDIgYGY2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttNjQ7IDJdOiBtNjR4 MiB8IGk2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogbTh4Miwg bTE2eDIsIG0zMngyLCBtMTI4eDIgfAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFz ayB3aXRoIDIgYG02NGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTI4OyAxXTogaTEyOHgx LCBtMTI4eDEgfCBpMTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8q aTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEsIGk2NHgxLCB1NjR4MSAqLyB8 IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKLS0gICAgICAgIC8vLyBBIDEyOC1i aXQgdmVjdG9yIHdpdGggMSBgaTEyOGAgbGFuZS4KLS0pOwotLWltcGxfdSEoW3UxMjg7IDFdOiB1 MTI4eDEsIG0xMjh4MSB8IHUxMjgsIHU4IHwgdGVzdF92MTI4IHwgeDAgfAotLSAgICAgICAgRnJv bTogLyp1OHgxLCB1MTZ4MSwgdTMyeDEsIHU2NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxs IHZlY3RvciB0eXBlcwotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxIGB1MTI4 YCBsYW5lLgotLSk7Ci0taW1wbF9tIShbbTEyODsgMV06IG0xMjh4MSB8IGkxMjgsIHU4IHwgdGVz dF92MTI4IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyptOHgxLCBtMTZ4MSwgbTMyeDEsIG02NHgx ICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBlcwotLSAgICAgICAgLy8vIEEg MTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDEgYG0xMjhgIGxhbmUuCi0tKTsKLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTYucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy92MTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3YxNi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNiArMCwwIEBACi0tLy8hIDE2LWJpdCB3aWRl IHZlY3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsgMl06IGk4 eDIsIG04eDIgfCBpOCwgdTggfCB0ZXN0X3YxNiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiB8 Ci0tICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIHdpdGggMiBgaThgIGxhbmVzLgotLSk7Ci0t aW1wbF91IShbdTg7IDJdOiB1OHgyLCBtOHgyIHwgdTgsIHU4IHwgdGVzdF92MTYgfCB4MCwgeDEg fAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciB3aXRoIDIg YHU4YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW204OyAyXTogbTh4MiB8IGk4LCB1OCB8IHRlc3Rf djE2IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG0xNngyLCBtMzJ4MiwgbTY0eDIsIG0xMjh4 MiB8Ci0tICAgICAgICAvLy8gQSAxNi1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtOGAgbGFuZXMu Ci0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MjU2 LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv djI1Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODYgKzAs MCBAQAotLS8vISAyNTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tI1tydXN0Zm10Ojpza2lwXQot LQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsgMzJdOiBpOHgzMiwgbTh4MzIgfCBp OCwgdTMyIHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2 LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywg eDI4LCB4MjksIHgzMCwgeDMxIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDI1 Ni1iaXQgdmVjdG9yIHdpdGggMzIgYGk4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyAzMl06 IHU4eDMyLCBtOHgzMiB8IHU4LCB1MzIgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4 MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4 MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0 LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAgICAgRnJvbTogfAot LSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAzMiBgdThgIGxhbmVzLgotLSk7Ci0t aW1wbF9tIShbbTg7IDMyXTogbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92MjU2IHwKLS0gICAgICAg IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4 MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIy LCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKLS0gICAgICAg IEZyb206ICB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMzIgYG04 YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kxNjsgMTZdOiBpMTZ4MTYsIG0xNngxNiB8IGkx NiwgdTE2IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZy b206IGk4eDE2LCB1OHgxNiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDE2 IGBpMTZgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTE2OyAxNl06IHUxNngxNiwgbTE2eDE2IHwg dTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAg RnJvbTogdTh4MTYgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdTE2 YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgMTZdOiBtMTZ4MTYgfCBpMTYsIHUxNiB8IHRl c3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiBtOHgxNiB8 Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG0xNmAgbGFuZXMu Ci0tKTsKLS0KLS1pbXBsX2khKFtpMzI7IDhdOiBpMzJ4OCwgbTMyeDggfCBpMzIsIHU4IHwgdGVz dF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3ICB8Ci0tICAgICAgICBGcm9t OiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDggfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0 b3Igd2l0aCA4IGBpMzJgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTMyOyA4XTogdTMyeDgsIG0z Mng4IHwgdTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4 NyB8Ci0tICAgICAgICBGcm9tOiB1OHg4LCB1MTZ4OCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0 IHZlY3RvciB3aXRoIDggYHUzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmMzI7IDhdOiBmMzJ4 OCwgbTMyeDggfCBmMzIgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcgfAotLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4IHwKLS0gICAgICAg IC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggOCBgZjMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEo W20zMjsgOF06IG0zMng4IHwgaTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCB8Ci0tICAgICAgICAv Ly8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTMyYCBsYW5lcy4KLS0pOwotLQotLWlt cGxfaSEoW2k2NDsgNF06IGk2NHg0LCBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwg eDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkz Mng0LCB1MzJ4NCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYGk2NGAg bGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1NjQ7IDRdOiB1NjR4NCwgbTY0eDQgfCB1NjQsIHU4IHwg dGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQs IHUzMng0IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggNCBgdTY0YCBsYW5l cy4KLS0pOwotLWltcGxfZiEoW2Y2NDsgNF06IGY2NHg0LCBtNjR4NCB8IGY2NCB8IHRlc3RfdjI1 NiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1 MTZ4NCwgaTMyeDQsIHUzMng0LCBmMzJ4NCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3Rv ciB3aXRoIDQgYGY2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttNjQ7IDRdOiBtNjR4NCB8IGk2 NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBtOHg0 LCBtMTZ4NCwgbTMyeDQgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRo IDQgYG02NGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTI4OyAyXTogaTEyOHgyLCBtMTI4 eDIgfCBpMTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBpOHgy LCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiwgaTY0eDIsIHU2NHgyIHwKLS0gICAg ICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMiBgaTEyOGAgbGFuZXMuCi0tKTsKLS1pbXBs X3UhKFt1MTI4OyAyXTogdTEyOHgyLCBtMTI4eDIgfCB1MTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgw LCB4MSB8Ci0tICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4MiwgdTMyeDIsIHU2NHgyIHwKLS0gICAg ICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMiBgdTEyOGAgbGFuZXMuCi0tKTsKLS1pbXBs X20hKFttMTI4OyAyXTogbTEyOHgyIHwgaTEyOCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAot LSAgICAgICAgRnJvbTogbTh4MiwgbTE2eDIsIG0zMngyLCBtNjR4MiB8Ci0tICAgICAgICAvLy8g QSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTEyOGAgbGFuZXMuCi0tKTsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3YzMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyOSArMCwwIEBACi0tLy8hIDMyLWJpdCB3 aWRlIHZlY3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsgNF06 IGk4eDQsIG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAg ICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCA0IGBpOGAgbGFu ZXMuCi0tKTsKLS1pbXBsX3UhKFt1ODsgNF06IHU4eDQsIG04eDQgfCB1OCwgdTggfCB0ZXN0X3Yz MiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDMy LWJpdCB2ZWN0b3Igd2l0aCA0IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsgNF06IG04 eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206 IG0xNng0LCBtMzJ4NCwgbTY0eDQgfAotLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciBtYXNr IHdpdGggNCBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyAyXTogaTE2eDIsIG0x NngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IGk4eDIs IHU4eDIgfAotLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDIgYGkxNmAgbGFuZXMu Ci0tKTsKLS1pbXBsX3UhKFt1MTY7IDJdOiB1MTZ4MiwgbTE2eDIgfCB1MTYsIHU4IHwgdGVzdF92 MzIgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogdTh4MiB8Ci0tICAgICAgICAvLy8gQSAzMi1i aXQgdmVjdG9yIHdpdGggMiBgdTE2YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgMl06IG0x NngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG04eDIs IG0zMngyLCBtNjR4MiwgbTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3IgbWFz ayB3aXRoIDIgYG0xNmAgbGFuZXMuCi0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvdjUxMi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsOTkgKzAsMCBAQAotLS8vISA1MTItYml0IHdpZGUgdmVjdG9yIHR5cGVz Ci0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsg NjRdOiBpOHg2NCwgbTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4 MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgx NCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMs IHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAotLSAgICAgICAgeDMyLCB4 MzMsIHgzNCwgeDM1LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0 LCB4NDUsIHg0NiwgeDQ3LAotLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1Mywg eDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKLS0gICAg ICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNjQgYGk4YCBs YW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyA2NF06IHU4eDY0LCBtOHg2NCB8IHU4LCB1NjQgfCB0 ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwg eDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4 LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwg eDMwLCB4MzEsCi0tICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4MzgsIHgz OSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCi0tICAgICAgICB4NDgs IHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwgeDU5LCB4 NjAsIHg2MSwgeDYyLCB4NjMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgNTEy LWJpdCB2ZWN0b3Igd2l0aCA2NCBgdThgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTg7IDY0XTog bTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAg ICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4 MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAotLSAgICAgICAgeDMyLCB4MzMsIHgzNCwgeDM1 LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0LCB4NDUsIHg0Niwg eDQ3LAotLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1MywgeDU0LCB4NTUsIHg1 NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKLS0gICAgICAgIEZyb206ICB8 Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNjQgYG04YCBsYW5lcy4K LS0pOwotLQotLWltcGxfaSEoW2kxNjsgMzJdOiBpMTZ4MzIsIG0xNngzMiB8IGkxNiwgdTMyIHwg dGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgs IHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgx OCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4Mjks IHgzMCwgeDMxIHwKLS0gICAgICAgIEZyb206IGk4eDMyLCB1OHgzMiB8Ci0tICAgICAgICAvLy8g QSA1MTItYml0IHZlY3RvciB3aXRoIDMyIGBpMTZgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTE2 OyAzMl06IHUxNngzMiwgbTE2eDMyIHwgdTE2LCB1MzIgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAg eDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgx MywgeDE0LCB4MTUsCi0tICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIs IHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAgICAg RnJvbTogdTh4MzIgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAzMiBgdTE2 YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20xNjsgMzJdOiBtMTZ4MzIgfCBpMTYsIHUzMiB8IHRl c3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgs IHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4 MzAsIHgzMSB8Ci0tICAgICAgICBGcm9tOiBtOHgzMiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0 IHZlY3RvciBtYXNrIHdpdGggMzIgYG0xNmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMzI7 IDE2XTogaTMyeDE2LCBtMzJ4MTYgfCBpMzIsIHUxNiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEz LCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2eDE2 IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYGkzMmAgbGFuZXMuCi0t KTsKLS1pbXBsX3UhKFt1MzI7IDE2XTogdTMyeDE2LCBtMzJ4MTYgfCB1MzIsIHUxNiB8IHRlc3Rf djUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwg eDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0tICAgICAgICBGcm9tOiB1OHgxNiwgdTE2 eDE2IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYHUzMmAgbGFuZXMu Ci0tKTsKLS1pbXBsX2YhKFtmMzI7IDE2XTogZjMyeDE2LCBtMzJ4MTYgfCBmMzIgfCB0ZXN0X3Y1 MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgx MCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTogaTh4MTYsIHU4eDE2 LCBpMTZ4MTYsIHUxNngxNiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDE2 IGBmMzJgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTMyOyAxNl06IG0zMngxNiB8IGkzMiwgdTE2 IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4Nywg eDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZyb206IG04 eDE2LCBtMTZ4MTYgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDE2 IGBtMzJgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTY0OyA4XTogaTY0eDgsIG02NHg4IHwg aTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0t ICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDgsIGkzMng4LCB1MzJ4OCB8Ci0t ICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYGk2NGAgbGFuZXMuCi0tKTsKLS1p bXBsX3UhKFt1NjQ7IDhdOiB1NjR4OCwgbTY0eDggfCB1NjQsIHU4IHwgdGVzdF92NTEyIHwgeDAs IHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IHU4eDgsIHUxNng4 LCB1MzJ4OCB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYHU2NGAgbGFu ZXMuCi0tKTsKLS1pbXBsX2YhKFtmNjQ7IDhdOiBmNjR4OCwgbTY0eDggfCBmNjQgfCB0ZXN0X3Y1 MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogaTh4 OCwgdTh4OCwgaTE2eDgsIHUxNng4LCBpMzJ4OCwgdTMyeDgsIGYzMng4IHwKLS0gICAgICAgIC8v LyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgZjY0YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW202 NDsgOF06IG02NHg4IHwgaTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCwgbTMyeDggfAotLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG02NGAgbGFuZXMuCi0tKTsKLS0K LS1pbXBsX2khKFtpMTI4OyA0XTogaTEyOHg0LCBtMTI4eDQgfCBpMTI4LCB1OCB8IHRlc3RfdjUx MiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1 MTZ4NCwgaTMyeDQsIHUzMng0LCBpNjR4NCwgdTY0eDQgfAotLSAgICAgICAgLy8vIEEgNTEyLWJp dCB2ZWN0b3Igd2l0aCA0IGBpMTI4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxMjg7IDRdOiB1 MTI4eDQsIG0xMjh4NCB8IHUxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMgfAot LSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQsIHUzMng0LCB1NjR4NCB8Ci0tICAgICAgICAvLy8g QSA1MTItYml0IHZlY3RvciB3aXRoIDQgYHUxMjhgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTEy ODsgNF06IG0xMjh4NCB8IGkxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMgfAot LSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG0zMng0LCBtNjR4NCB8Ci0tICAgICAgICAvLy8g QSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTEyOGAgbGFuZXMuCi0tKTsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3Y2NC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2NiArMCwwIEBACi0tLy8hIDY0LWJpdCB3 aWRlIHZlY3RvciB0eXBlcwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2Ugc3VwZXI6Oio7Ci0t Ci0taW1wbF9pIShbaTg7IDhdOiBpOHg4LCBtOHg4IHwgaTgsIHU4IHwgdGVzdF92NjQgfCB4MCwg eDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAg Ly8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDggYGk4YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4 OyA4XTogdTh4OCwgbTh4OCB8IHU4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2 ZWN0b3Igd2l0aCA4IGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsgOF06IG04eDggfCBp OCwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAg ICAgICBGcm9tOiBtMTZ4OCwgbTMyeDggfAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciBt YXNrIHdpdGggOCBgbThgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTE2OyA0XTogaTE2eDQs IG0xNng0IHwgaTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAg RnJvbTogaTh4NCwgdTh4NCB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggNCBg aTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxNjsgNF06IHUxNng0LCBtMTZ4NCB8IHUxNiwg dTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHU4eDQgfAot LSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDQgYHUxNmAgbGFuZXMuCi0tKTsKLS1p bXBsX20hKFttMTY7IDRdOiBtMTZ4NCB8IGkxNiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIs IHgzIHwKLS0gICAgICAgIEZyb206IG04eDQsIG0zMng0LCBtNjR4NCB8Ci0tICAgICAgICAvLy8g QSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMTZgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9p IShbaTMyOyAyXTogaTMyeDIsIG0zMngyIHwgaTMyLCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxIHwK LS0gICAgICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiB8Ci0tICAgICAgICAvLy8g QSA2NC1iaXQgdmVjdG9yIHdpdGggMiBgaTMyYCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UzMjsg Ml06IHUzMngyLCBtMzJ4MiB8IHUzMiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8Ci0tICAgICAg ICBGcm9tOiB1OHgyLCB1MTZ4MiB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGgg MiBgdTMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20zMjsgMl06IG0zMngyIHwgaTMyLCB1OCB8 IHRlc3RfdjY0IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG04eDIsIG0xNngyLCBtNjR4Miwg bTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIgYG0zMmAg bGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmMzI7IDJdOiBmMzJ4MiwgbTMyeDIgfCBmMzIgfCB0ZXN0 X3Y2NCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIg fAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDIgYGYzMmAgbGFuZXMuCi0tKTsK LS0KLS0vKgotLWltcGxfaSEoW2k2NDsgMV06IGk2NHgxLCBtNjR4MSB8IGk2NCwgdTggfCB0ZXN0 X3Y2NCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBp MzJ4MSwgdTMyeDEqLyB8ICAvLyBGSVhNRTogcHJpbWl0aXZlIHRvIHZlY3RvciBjb252ZXJzaW9u Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMSBgaTY0YCBsYW5lcy4KLS0pOwot LWltcGxfdSEoW3U2NDsgMV06IHU2NHgxLCBtNjR4MSB8IHU2NCwgdTggfCB0ZXN0X3Y2NCB8IHgw IHwKLS0gICAgICAgIEZyb206IC8qdTh4MSwgdTE2eDEsIHUzMngxKi8gfCAvLyBGSVhNRTogcHJp bWl0aXZlIHRvIHZlY3RvciBjb252ZXJzaW9uCi0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9y IHdpdGggMSBgdTY0YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW202NDsgMV06IG02NHgxIHwgaTY0 LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAotLSAgICAgICAgRnJvbTogLyptOHgxLCBtMTZ4MSwgbTMy eDEsICovIG0xMjh4MSB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKLS0gICAg ICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDEgYG02NGAgbGFuZXMuCi0tKTsKLS1p bXBsX2YhKFtmNjQ7IDFdOiBmNjR4MSwgbTY0eDEgfCBmNjQgfCB0ZXN0X3Y2NCB8IHgwIHwKLS0g ICAgICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEsIGYz MngxKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCi0tICAgICAgICAvLy8g QSA2NC1iaXQgdmVjdG9yIHdpdGggMSBgZjY0YCBsYW5lcy4KLS0pOwotLSovCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3ZQdHIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM0ICswLDAgQEAKLS0vLyEgVmVjdG9y cyBvZiBwb2ludGVycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0t aW1wbF9jb25zdF9wISgKLS0gICAgWypjb25zdCBUOyAyXTogY3B0cngyLCBtc2l6ZXgyLCB1c2l6 ZXgyLCBpc2l6ZXgyIHwgdGVzdF92MTI4IHwgeDAsIHgxIHwgRnJvbTogfAotLSAgICAvLy8gQSB2 ZWN0b3Igd2l0aCAyIGAqY29uc3QgVGAgbGFuZXMKLS0pOwotLQotLWltcGxfbXV0X3AhKAotLSAg ICBbKm11dCBUOyAyXTogbXB0cngyLCBtc2l6ZXgyLCB1c2l6ZXgyLCBpc2l6ZXgyIHwgdGVzdF92 MTI4IHwgeDAsIHgxIHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCAyIGAqbXV0IFRg IGxhbmVzCi0tKTsKLS0KLS1pbXBsX2NvbnN0X3AhKAotLSAgICBbKmNvbnN0IFQ7IDRdOiBjcHRy eDQsIG1zaXpleDQsIHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4 MyB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgKmNvbnN0IFRgIGxhbmVzCi0t KTsKLS0KLS1pbXBsX211dF9wISgKLS0gICAgWyptdXQgVDsgNF06IG1wdHJ4NCwgbXNpemV4NCwg dXNpemV4NCwgaXNpemV4NCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwgRnJvbTogfAot LSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGAqbXV0IFRgIGxhbmVzCi0tKTsKLS0KLS1pbXBsX2Nv bnN0X3AhKAotLSAgICBbKmNvbnN0IFQ7IDhdOiBjcHRyeDgsIG1zaXpleDgsIHVzaXpleDgsIGlz aXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfCBGcm9t OiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCpjb25zdCBUYCBsYW5lcwotLSk7Ci0tCi0t aW1wbF9tdXRfcCEoCi0tICAgIFsqbXV0IFQ7IDhdOiBtcHRyeDgsIG1zaXpleDgsIHVzaXpleDgs IGlzaXpleDggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfCBG cm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDggYCptdXQgVGAgbGFuZXMKLS0pOwotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlNpemUucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92U2l6ZS5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTMgKzAsMCBAQAot LS8vISBWZWN0b3JzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50cwotLQotLXVzZSBjcmF0ZTo6 Y29kZWdlbjo6cG9pbnRlcl9zaXplZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307Ci0tdXNlIGNyYXRl OjoqOwotLQotLWltcGxfaSEoW2lzaXplOyAyXTogaXNpemV4MiwgbXNpemV4MiB8IGlzaXplXywg dTggfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxfAotLSAgICAgICAgRnJvbTogfAotLSAg ICAgICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgaXNpemVgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF91 IShbdXNpemU7IDJdOiB1c2l6ZXgyLCBtc2l6ZXgyIHwgdXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8 Ci0tICAgICAgICB4MCwgeDF8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0 b3Igd2l0aCAyIGB1c2l6ZWAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttc2l6ZTsgMl06IG1zaXpl eDIgfCBpc2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4MSB8Ci0tICAgICAg ICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDIgYG1zaXplYCBsYW5l cy4KLS0pOwotLQotLWltcGxfaSEoW2lzaXplOyA0XTogaXNpemV4NCwgbXNpemV4NCB8IGlzaXpl XywgdTggfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAg RnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgaXNpemVgIGxhbmVzLgotLSk7 Ci0taW1wbF91IShbdXNpemU7IDRdOiB1c2l6ZXg0LCBtc2l6ZXg0IHwgdXNpemVfLCB1OCB8IHRl c3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4M3wKLS0gICAgICAgIEZyb206IHwKLS0g ICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYHVzaXplYCBsYW5lcy4KLS0pOwotLWltcGxfbSEo W21zaXplOyA0XTogbXNpemV4NCB8IGlzaXplXywgdTggfCB0ZXN0X3YyNTYgfAotLSAgICAgICAg eDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9y IG1hc2sgd2l0aCA0IGBtc2l6ZWAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpc2l6ZTsgOF06 IGlzaXpleDgsIG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAg ICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGBpc2l6ZWAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1c2l6 ZTsgOF06IHVzaXpleDgsIG1zaXpleDggfCB1c2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKLS0gICAg ICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB8Ci0t ICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGB1c2l6ZWAgbGFuZXMuCi0tKTsKLS1pbXBsX20h KFttc2l6ZTsgOF06IG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKLS0gICAgICAg IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAg ICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDggYG1zaXplYCBsYW5lcy4KLS0pOwotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycwotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3Rlc3RzL2VuZGlhbm5lc3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDI2OCArMCwwIEBACi0tI1tjZmcodGFyZ2V0X2FyY2ggPSAid2FzbTMyIild Ci0tdXNlIHdhc21fYmluZGdlbl90ZXN0OjoqOwotLQotLXVzZSBwYWNrZWRfc2ltZDo6KjsKLS11 c2Ugc3RkOjp7bWVtLCBzbGljZX07Ci0tCi0tI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLWZuIGVuZGlhbl9pbmRleGluZygpIHsKLS0gICAgbGV0IHYgPSBp MzJ4NDo6bmV3KDAsIDEsIDIsIDMpOwotLSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgwKSwgMCk7 Ci0tICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDEpLCAxKTsKLS0gICAgYXNzZXJ0X2VxISh2LmV4 dHJhY3QoMiksIDIpOwotLSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgzKSwgMyk7Ci0tfQotLQot LSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0jW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS1mbiBlbmRp YW5fYml0Y2FzdHMoKSB7Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgx Njo6bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDks IDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB0OiBpMTZ4OCA9IHVu c2FmZSB7IG1lbTo6dHJhbnNtdXRlKHgpIH07Ci0tICAgIGxldCBlOiBpMTZ4OCA9IGlmIGNmZyEo dGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBpMTZ4ODo6bmV3KDI1NiwgNzcw LCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0KQotLSAgICB9IGVsc2UgewotLSAg ICAgICAgaTE2eDg6Om5ldygxLCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1 OTkpCi0tICAgIH07Ci0tICAgIGFzc2VydF9lcSEodCwgZSk7Ci0tfQotLQotLSNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0jW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS1mbiBlbmRpYW5fY2FzdHMoKSB7 Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAg ICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEz LCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB0OiBpMTZ4MTYgPSB4LmludG8oKTsgLy8gc2lt ZF9jYXN0Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IGUgPSBpMTZ4MTY6Om5ldygK LS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEs IDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBhc3NlcnRfZXEhKHQsIGUpOwotLX0KLS0K LS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tZm4gZW5k aWFuX2xvYWRfYW5kX3N0b3JlcygpIHsKLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQg eCA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAg ICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IG11dCB5 OiBbaTE2OyA4XSA9IFswOyA4XTsKLS0gICAgeC53cml0ZV90b19zbGljZV91bmFsaWduZWQodW5z YWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgmbXV0IHkgYXMgKm11dCBfIGFzICptdXQg aTgsIDE2KSB9KTsKLS0KLS0gICAgbGV0IGU6IFtpMTY7IDhdID0gaWYgY2ZnISh0YXJnZXRfZW5k aWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFsyNTYsIDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwg MjgyNiwgMzM0MCwgMzg1NF0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIFsxLCA1MTUsIDEwMjks IDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCi0tICAgIH07Ci0tICAgIGFzc2VydF9lcSEo eSwgZSk7Ci0tCi0tICAgIGxldCB6ID0gaTh4MTY6OmZyb21fc2xpY2VfdW5hbGlnbmVkKHVuc2Fm ZSB7IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygmeSBhcyAqY29uc3QgXyBhcyAqY29uc3QgaTgsIDE2 KSB9KTsKLS0gICAgYXNzZXJ0X2VxISh6LCB4KTsKLS19Ci0tCi0tI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLWZuIGVuZGlhbl9hcnJheV91bmlvbigpIHsK LS0gICAgdW5pb24gQSB7Ci0tICAgICAgICBkYXRhOiBbZjMyOyA0XSwKLS0gICAgICAgIHZlYzog ZjMyeDQsCi0tICAgIH0KLS0gICAgbGV0IHg6IFtmMzI7IDRdID0gdW5zYWZlIHsgQSB7IHZlYzog ZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07Ci0tICAgIC8vIEFzIGFsbCBvZiB0 aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBtYW50aXNzYV4xIHJhbmdlLCBpdAot LSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRoZW0gdG8gYWN0dWFsbHkgZmFpbCB0 byBjb21wYXJlLgotLSAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgewotLSAg ICAgICAgYXNzZXJ0X2VxISh4WzBdLCAwX2YzMik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHhbMV0s IDFfZjMyKTsKLS0gICAgICAgIGFzc2VydF9lcSEoeFsyXSwgMl9mMzIpOwotLSAgICAgICAgYXNz ZXJ0X2VxISh4WzNdLCAzX2YzMik7Ci0tICAgIH0KLS0gICAgbGV0IHk6IGYzMng0ID0gdW5zYWZl IHsgQSB7IGRhdGE6IFszLiwgMi4sIDEuLCAwLl0gfS52ZWMgfTsKLS0gICAgYXNzZXJ0X2VxISh5 LCBmMzJ4NDo6bmV3KDMuLCAyLiwgMS4sIDAuKSk7Ci0tCi0tICAgIHVuaW9uIEIgewotLSAgICAg ICAgZGF0YTogW2k4OyAxNl0sCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAgICB9Ci0tICAgICNb cnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAgICAgMCwgMSwg MiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUs Ci0tICAgICk7Ci0tICAgIGxldCB4OiBbaTg7IDE2XSA9IHVuc2FmZSB7IEIgeyB2ZWM6IHggfS5k YXRhIH07Ci0tCi0tICAgIGZvciAoaSwgdikgaW4geC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAg ICAgICAgYXNzZXJ0X2VxIShpIGFzIGk4LCAqdik7Ci0tICAgIH0KLS0KLS0gICAgI1tydXN0Zm10 Ojpza2lwXQotLSAgICBsZXQgeSA9IFsKLS0gICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTks IDksIDgsCi0tICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCi0tICAgIF07Ci0tICAgICNb cnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IGUgPSBpOHgxNjo6bmV3KAotLSAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxOSwgOSwgOCwKLS0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAK LS0gICAgKTsKLS0gICAgbGV0IHogPSB1bnNhZmUgeyBCIHsgZGF0YTogeSB9LnZlYyB9OwotLSAg ICBhc3NlcnRfZXEhKHosIGUpOwotLQotLSAgICB1bmlvbiBDIHsKLS0gICAgICAgIGRhdGE6IFtp MTY7IDhdLAotLSAgICAgICAgdmVjOiBpOHgxNiwKLS0gICAgfQotLSAgICAjW3J1c3RmbXQ6OnNr aXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUs IDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwot LSAgICBsZXQgeDogW2kxNjsgOF0gPSB1bnNhZmUgeyBDIHsgdmVjOiB4IH0uZGF0YSB9OwotLQot LSAgICBsZXQgZTogW2kxNjsgOF0gPSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikg ewotLSAgICAgICAgWzI1NiwgNzcwLCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0 XQotLSAgICB9IGVsc2UgewotLSAgICAgICAgWzEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3 MSwgMzA4NSwgMzU5OV0KLS0gICAgfTsKLS0gICAgYXNzZXJ0X2VxISh4LCBlKTsKLS19Ci0tCi0t I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLWZuIGVuZGlh bl90dXBsZV9hY2Nlc3MoKSB7Ci0tICAgIHR5cGUgRjMyeDRUID0gKGYzMiwgZjMyLCBmMzIsIGYz Mik7Ci0tICAgIHVuaW9uIEEgewotLSAgICAgICAgZGF0YTogRjMyeDRULAotLSAgICAgICAgdmVj OiBmMzJ4NCwKLS0gICAgfQotLSAgICBsZXQgeDogRjMyeDRUID0gdW5zYWZlIHsgQSB7IHZlYzog ZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07Ci0tICAgIC8vIEFzIGFsbCBvZiB0 aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBtYW50aXNzYV4xIHJhbmdlLCBpdAot LSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRoZW0gdG8gYWN0dWFsbHkgZmFpbCB0 byBjb21wYXJlLgotLSAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgewotLSAg ICAgICAgYXNzZXJ0X2VxISh4LjAsIDBfZjMyKTsKLS0gICAgICAgIGFzc2VydF9lcSEoeC4xLCAx X2YzMik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHguMiwgMl9mMzIpOwotLSAgICAgICAgYXNzZXJ0 X2VxISh4LjMsIDNfZjMyKTsKLS0gICAgfQotLSAgICBsZXQgeTogZjMyeDQgPSB1bnNhZmUgeyBB IHsgZGF0YTogKDMuLCAyLiwgMS4sIDAuKSB9LnZlYyB9OwotLSAgICBhc3NlcnRfZXEhKHksIGYz Mng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKLS0KLS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAg ICB0eXBlIEk4eDE2VCA9IChpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwg aTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7Ci0tICAgIHVuaW9uIEIgewotLSAgICAgICAgZGF0YTog STh4MTZULAotLSAgICAgICAgdmVjOiBpOHgxNiwKLS0gICAgfQotLQotLSAgICAjW3J1c3RmbXQ6 OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQs IDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICAp OwotLSAgICBsZXQgeDogSTh4MTZUID0gdW5zYWZlIHsgQiB7IHZlYzogeCB9LmRhdGEgfTsKLS0K LS0gICAgYXNzZXJ0X2VxISh4LjAsIDApOwotLSAgICBhc3NlcnRfZXEhKHguMSwgMSk7Ci0tICAg IGFzc2VydF9lcSEoeC4yLCAyKTsKLS0gICAgYXNzZXJ0X2VxISh4LjMsIDMpOwotLSAgICBhc3Nl cnRfZXEhKHguNCwgNCk7Ci0tICAgIGFzc2VydF9lcSEoeC41LCA1KTsKLS0gICAgYXNzZXJ0X2Vx ISh4LjYsIDYpOwotLSAgICBhc3NlcnRfZXEhKHguNywgNyk7Ci0tICAgIGFzc2VydF9lcSEoeC44 LCA4KTsKLS0gICAgYXNzZXJ0X2VxISh4LjksIDkpOwotLSAgICBhc3NlcnRfZXEhKHguMTAsIDEw KTsKLS0gICAgYXNzZXJ0X2VxISh4LjExLCAxMSk7Ci0tICAgIGFzc2VydF9lcSEoeC4xMiwgMTIp OwotLSAgICBhc3NlcnRfZXEhKHguMTMsIDEzKTsKLS0gICAgYXNzZXJ0X2VxISh4LjE0LCAxNCk7 Ci0tICAgIGFzc2VydF9lcSEoeC4xNSwgMTUpOwotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0t ICAgIGxldCB5ID0gKAotLSAgICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKLS0g ICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKLS0gICAgKTsKLS0gICAgbGV0IHo6IGk4eDE2 ID0gdW5zYWZlIHsgQiB7IGRhdGE6IHkgfS52ZWMgfTsKLS0gICAgI1tydXN0Zm10Ojpza2lwXQot LSAgICBsZXQgZSA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEw LCA5LCA4LAotLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAotLSAgICApOwotLSAgICBh c3NlcnRfZXEhKGUsIHopOwotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIHR5cGUgSTE2 eDhUID0gKGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKLS0gICAgdW5p b24gQyB7Ci0tICAgICAgICBkYXRhOiBJMTZ4OFQsCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAg ICB9Ci0tCi0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAot LSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwg MTIsIDEzLCAxNCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBJMTZ4OFQgPSB1bnNhZmUgeyBD IHsgdmVjOiB4IH0uZGF0YSB9OwotLQotLSAgICBsZXQgZTogW2kxNjsgOF0gPSBpZiBjZmchKHRh cmdldF9lbmRpYW4gPSAibGl0dGxlIikgewotLSAgICAgICAgWzI1NiwgNzcwLCAxMjg0LCAxNzk4 LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0XQotLSAgICB9IGVsc2UgewotLSAgICAgICAgWzEsIDUx NSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KLS0gICAgfTsKLS0gICAgYXNz ZXJ0X2VxISh4LjAsIGVbMF0pOwotLSAgICBhc3NlcnRfZXEhKHguMSwgZVsxXSk7Ci0tICAgIGFz c2VydF9lcSEoeC4yLCBlWzJdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjMsIGVbM10pOwotLSAgICBh c3NlcnRfZXEhKHguNCwgZVs0XSk7Ci0tICAgIGFzc2VydF9lcSEoeC41LCBlWzVdKTsKLS0gICAg YXNzZXJ0X2VxISh4LjYsIGVbNl0pOwotLSAgICBhc3NlcnRfZXEhKHguNywgZVs3XSk7Ci0tCi0t ICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgI1tyZXByKEMpXQotLSAgICAjW2Rlcml2ZShDb3B5 ICxDbG9uZSldCi0tICAgIHB1YiBzdHJ1Y3QgVHVwKHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LCBw dWIgaTgsIHB1YiBpOCwgcHViIGkxNiwKLS0gICAgICAgICAgICAgICAgICAgcHViIGk4LCBwdWIg aTgsIHB1YiBpMTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2KTsKLS0KLS0gICAgdW5pb24gRCB7 Ci0tICAgICAgICBkYXRhOiBUdXAsCi0tICAgICAgICB2ZWM6IGk4eDE2LAotLSAgICB9Ci0tCi0t ICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAgICAg MCwgMSwgMiwgMywgNCwgNSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAx NCwgMTUsCi0tICAgICk7Ci0tICAgIGxldCB4OiBUdXAgPSB1bnNhZmUgeyBEIHsgdmVjOiB4IH0u ZGF0YSB9OwotLQotLSAgICBsZXQgZTogW2kxNjsgMTJdID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFu ID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFswLCAxLCA3NzAsIDQsIDUsIDE3OTgsIDgsIDksIDI4 MjYsIDEyLCAxMywgMzg1NF0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIFswLCAxLCA1MTUsIDQs IDUsIDE1NDMsIDgsIDksIDI1NzEsIDEyLCAxMywgMzU5OV0KLS0gICAgfTsKLS0gICAgYXNzZXJ0 X2VxISh4LjAgYXMgaTE2LCBlWzBdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEgYXMgaTE2LCBlWzFd KTsKLS0gICAgYXNzZXJ0X2VxISh4LjIgYXMgaTE2LCBlWzJdKTsKLS0gICAgYXNzZXJ0X2VxISh4 LjMgYXMgaTE2LCBlWzNdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjQgYXMgaTE2LCBlWzRdKTsKLS0g ICAgYXNzZXJ0X2VxISh4LjUgYXMgaTE2LCBlWzVdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjYgYXMg aTE2LCBlWzZdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjcgYXMgaTE2LCBlWzddKTsKLS0gICAgYXNz ZXJ0X2VxISh4LjggYXMgaTE2LCBlWzhdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjkgYXMgaTE2LCBl WzldKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEwIGFzIGkxNiwgZVsxMF0pOwotLSAgICBhc3NlcnRf ZXEhKHguMTEgYXMgaTE2LCBlWzExXSk7Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3Qv dmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNh cmdvLWNoZWNrc3VtLmpzb24JMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1OTggKzAzMDAKLUBA IC0wLDAgKzEgQEAKLSt7ImZpbGVzIjp7IkNhcmdvLnRvbWwiOiJmMjVkODgwNDQ5MTRjYjM0NjZk ZjQzYmMzOWExOTllMTU4OWRkYTFhYWQzMjI2YzljN2U3YWM0ZDJmODc1MWQwIiwiTElDRU5TRS1B UEFDSEUiOiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJj OTNiMzZkZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQiOiJiN2U2NTBmM2ZjZTVjNTMyNDlkMWNkYzYw OGI1NGRmMTU2YTk3ZWRkNjM2Y2Y5ZDIzNDk4ZDBjZmU3YWVjNjNlIiwiUkVBRE1FLm1kIjoiYWMy YTBhMzYwODEyNDM2YmQ1Nzk4ZjVmZTJhZmZlN2Q2ZWQ5ZWI3ZjE1ZDZlNGQ3MzkzMWU5NWI0Mzc1 NjBmMiIsInNyYy9jaGFubmVsLnJzIjoiZDI0NDNkNTAzZDRjYzQ2OWExNzFhNTFhMjZlY2EzZWMw ZDJhNThiNWY3Mzc1YTg0NTQyYzM2ZjE0MjE3NjZhOCIsInNyYy9kYXRlLnJzIjoiMDk1ODBhMGEy MDA4ZmFkMmNjYmM0M2ZiNDJhODhmNDIyMjFiOThiMDE2OTI3MDIwMjJhMjk2ZGM5Yzg2YmYzNyIs InNyYy9saWIucnMiOiI3NjBmMGQyOTU2N2VjYWE2MTI4NzA4OGNmMjNjZjc0YjNjMGVmYmJjZDMw NzdjZWE1ZmI3Yzg4MzU5ZTk2YzdlIiwic3JjL3ZlcnNpb24ucnMiOiJkYmExOGEyNTk4M2VjNmUz N2I5NTJmNGNkYzUyMTljOWU1YWJiYTJjM2E3NmNlZjg3NDY1ZTFmYmE2ZjhhYzg5In0sInBhY2th Z2UiOiI0OTg3NGI1MTY3YjY1ZDcxOTNiOGFiYTE1NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAw M2VkYTc4N2U0ODNmIn0KLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9DYXJnby50b21sIGIvdGhpcmRfcGFydHkv cnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9DYXJnby50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbAkyMDI1LTA5 LTE3IDE3OjQxOjQ3LjUwNTc5NTU5OCArMDMwMAotQEAgLTAsMCArMSwyNCBAQAotKyMgVEhJUyBG SUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCi0rIwotKyMgV2hlbiB1cGxv YWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkKLSsj ICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0eQot KyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAgZGVw ZW5kZW5jaWVzCi0rIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMu Ci0rIwotKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBv cmlnaW5hbCBDYXJnby50b21sCi0rIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChh bmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgotKyMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhl IG9yaWdpbmFsIGNvbnRlbnRzLgotKwotK1twYWNrYWdlXQotK25hbWUgPSAidmVyc2lvbl9jaGVj ayIKLSt2ZXJzaW9uID0gIjAuOS40IgotK2F1dGhvcnMgPSBbIlNlcmdpbyBCZW5pdGV6IDxzYkBz ZXJnaW8uYno+Il0KLStleGNsdWRlID0gWyJzdGF0aWMiXQotK2Rlc2NyaXB0aW9uID0gIlRpbnkg Y3JhdGUgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZC9ydW5uaW5nIHJ1c3Rj LiIKLStkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrLyIKLSty ZWFkbWUgPSAiUkVBRE1FLm1kIgotK2tleXdvcmRzID0gWyJ2ZXJzaW9uIiwgInJ1c3RjIiwgIm1p bmltdW0iLCAiY2hlY2siXQotK2xpY2Vuc2UgPSAiTUlUL0FwYWNoZS0yLjAiCi0rcmVwb3NpdG9y eSA9ICJodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9uX2NoZWNrIgotKwot K1tkZXBlbmRlbmNpZXNdCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2No ZWNrL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VO U0UtQVBBQ0hFCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1B UEFDSEUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRQkyMDI1LTA5LTE3IDE3OjQxOjQ3 LjUwNTc5NTU5OCArMDMwMAotQEAgLTAsMCArMSwyMDEgQEAKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBcGFjaGUgTGljZW5zZQotKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNp b24gMi4wLCBKYW51YXJ5IDIwMDQKLSsgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFw YWNoZS5vcmcvbGljZW5zZXMvCi0rCi0rVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQ Uk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0rCi0rMS4gRGVmaW5pdGlvbnMuCi0rCi0rICAg IkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJl cHJvZHVjdGlvbiwKLSsgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMg MSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLSsKLSsgICAiTGljZW5zb3IiIHNoYWxsIG1l YW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQotKyAgIHRoZSBj b3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KLSsKLSsgICAiTGVn YWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQg YWxsCi0rICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwg b3IgYXJlIHVuZGVyIGNvbW1vbgotKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRo ZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0rICAgImNvbnRyb2wiIG1lYW5zIChpKSB0 aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCi0rICAgZGlyZWN0aW9u IG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKLSsg ICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3Ig bW9yZSBvZiB0aGUKLSsgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwg b3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotKwotKyAgICJZb3UiIChvciAiWW91ciIpIHNoYWxs IG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSsgICBleGVyY2lzaW5nIHBlcm1p c3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotKwotKyAgICJTb3VyY2UiIGZvcm0gc2hh bGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAotKyAg IGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3Vt ZW50YXRpb24KLSsgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgotKwotKyAgICJP YmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2Fs Ci0rICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5j bHVkaW5nIGJ1dAotKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5l cmF0ZWQgZG9jdW1lbnRhdGlvbiwKLSsgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEg dHlwZXMuCi0rCi0rICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwg d2hldGhlciBpbiBTb3VyY2Ugb3IKLSsgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5k ZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0rICAgY29weXJpZ2h0IG5vdGljZSB0 aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCi0rICAgKGFuIGV4YW1w bGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLSsKLSsgICAiRGVyaXZhdGl2 ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0 Ci0rICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBh bmQgZm9yIHdoaWNoIHRoZQotKyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBl bGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLSsgICByZXByZXNlbnQsIGFzIGEg d2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3Nlcwot KyAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3 b3JrcyB0aGF0IHJlbWFpbgotKyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3Ig YmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLSsgICB0aGUgV29yayBhbmQgRGVy aXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgotKwotKyAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4g YW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0rICAgdGhlIG9yaWdpbmFsIHZlcnNp b24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwotKyAgIHRv IHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9u YWxseQotKyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3Jr IGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKLSsgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2Fs IEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKLSsgICB0aGUgY29weXJp Z2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRl ZCIKLSsgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4g Y29tbXVuaWNhdGlvbiBzZW50Ci0rICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRh dGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLSsgICBjb21tdW5pY2F0aW9uIG9u IGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAot KyAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9u IGJlaGFsZiBvZiwgdGhlCi0rICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3Np bmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0rICAgZXhjbHVkaW5nIGNvbW11bmljYXRp b24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKLSsgICBkZXNpZ25h dGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0 aW9uLiIKLSsKLSsgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBp bmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotKyAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJp YnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAotKyAgIHN1YnNlcXVlbnRs eSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotKwotKzIuIEdyYW50IG9mIENvcHlyaWdo dCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRo aXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBl dHVhbCwKLSsgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1m cmVlLCBpcnJldm9jYWJsZQotKyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJl cGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAotKyAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5 IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQotKyAgIFdvcmsgYW5kIHN1 Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCi0rCi0rMy4gR3Jh bnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IG9mCi0rICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8g WW91IGEgcGVycGV0dWFsLAotKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdl LCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0rICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhp cyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCi0rICAgdXNlLCBv ZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdv cmssCi0rICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQg Y2xhaW1zIGxpY2Vuc2FibGUKLSsgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vz c2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgotKyAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBi eSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKLSsgICB3aXRoIHRoZSBXb3Jr IHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQotKyAg IGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGlu ZyBhCi0rICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdp bmcgdGhhdCB0aGUgV29yawotKyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRo aW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0rICAgb3IgY29udHJpYnV0b3J5IHBhdGVu dCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwotKyAgIGdyYW50ZWQgdG8g WW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQotKyAg IGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KLSsKLSs0LiBSZWRpc3Ry aWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQot KyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGgg b3Igd2l0aG91dAotKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZv cm0sIHByb3ZpZGVkIHRoYXQgWW91Ci0rICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Ci0rCi0rICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdv cmsgb3IKLSsgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBh bmQKLSsKLSsgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5 IHByb21pbmVudCBub3RpY2VzCi0rICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUg ZmlsZXM7IGFuZAotKwotKyAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9y bSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwotKyAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBh bGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0rICAgICAgIGF0dHJpYnV0aW9u IG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCi0rICAgICAgIGV4Y2x1 ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKLSsg ICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotKwotKyAgIChkKSBJZiB0aGUgV29yayBp bmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwotKyAgICAgICBkaXN0 cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBt dXN0Ci0rICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBu b3RpY2VzIGNvbnRhaW5lZAotKyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVk aW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLSsgICAgICAgcGVydGFpbiB0byBhbnkgcGFy dCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCi0rICAgICAgIG9mIHRo ZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVk Ci0rICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291 cmNlIGZvcm0gb3IKLSsgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0 aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0rICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2Vu ZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKLSsgICAgICAgd2hlcmV2ZXIg c3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCi0r ICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMg b25seSBhbmQKLSsgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQg WW91ciBvd24gYXR0cmlidXRpb24KLSsgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBX b3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLSsgICAgICAgb3IgYXMgYW4gYWRk ZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCi0rICAgICAg IHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0 cnVlZAotKyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0rCi0rICAgWW91IG1heSBh ZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5k Ci0rICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBh bmQgY29uZGl0aW9ucwotKyAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9u IG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLSsgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBX b3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLSsgICByZXByb2R1Y3Rpb24sIGFu ZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKLSsgICB0 aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotKwotKzUuIFN1Ym1pc3Npb24g b2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwK LSsgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNp b24gaW4gdGhlIFdvcmsKLSsgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVy IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBh bnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotKyAgIE5vdHdpdGhzdGFuZGluZyB0 aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKLSsgICB0 aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBl eGVjdXRlZAotKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4K LSsKLSs2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lv biB0byB1c2UgdGhlIHRyYWRlCi0rICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3Ms IG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotKyAgIGV4Y2VwdCBhcyByZXF1aXJl ZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQotKyAg IG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5P VElDRSBmaWxlLgotKwotKzcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJl ZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNv ciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLSsgICBDb250cmlidXRvciBwcm92aWRlcyBp dHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKLSsgICBXSVRIT1VUIFdBUlJB TlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKLSsgICBp bXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3Ig Y29uZGl0aW9ucwotKyAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJ VFksIG9yIEZJVE5FU1MgRk9SIEEKLSsgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29s ZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLSsgICBhcHByb3ByaWF0ZW5lc3Mg b2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKLSsgICBy aXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0 aGlzIExpY2Vuc2UuCi0rCi0rOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50 IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCi0rICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRp bmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCi0rICAgdW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKLSsg ICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250 cmlidXRvciBiZQotKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkg ZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLSsgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50 aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKLSsgICByZXN1bHQgb2Yg dGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCi0r ICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9m IGdvb2R3aWxsLAotKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVu Y3Rpb24sIG9yIGFueSBhbmQgYWxsCi0rICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxv c3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotKyAgIGhhcyBiZWVuIGFkdmlzZWQgb2Yg dGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLSsKLSs5LiBBY2NlcHRpbmcgV2FycmFu dHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCi0rICAgdGhl IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZl ciwKLSsgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJy YW50eSwgaW5kZW1uaXR5LAotKyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQv b3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0rICAgTGljZW5zZS4gSG93ZXZlciwgaW4g YWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKLSsgICBvbiBZb3Vy IG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFs ZgotKyAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRv IGluZGVtbmlmeSwKLSsgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxl c3MgZm9yIGFueSBsaWFiaWxpdHkKLSsgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVk IGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0rICAgb2YgeW91ciBhY2NlcHRp bmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCi0rCi0rRU5EIE9G IFRFUk1TIEFORCBDT05ESVRJT05TCi0rCi0rQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBh Y2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgotKwotKyAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGlj ZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCi0rICAgYm9pbGVycGxhdGUg bm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgotKyAgIHJl cGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNs dWRlCi0rICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0 aGUgYXBwcm9wcmlhdGUKLSsgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBX ZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKLSsgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2Ny aXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0rICAgc2FtZSAicHJpbnRlZCBw YWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCi0rICAgaWRlbnRpZmljYXRp b24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgotKwotK0NvcHlyaWdodCBbeXl5eV0gW25h bWUgb2YgY29weXJpZ2h0IG93bmVyXQotKwotK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotK3lvdSBtYXkgbm90IHVzZSB0aGlz IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLStZb3UgbWF5IG9i dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSsKLSsJaHR0cDovL3d3dy5hcGFjaGUub3Jn L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0rCi0rVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUg bGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotK2Rpc3RyaWJ1dGVkIHVuZGVy IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0rV0lUSE9V VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9y IGltcGxpZWQuCi0rU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292 ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVCBi L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElD RU5TRS1NSVQJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1OTggKzAzMDAKLUBAIC0wLDAgKzEs MTkgQEAKLStUaGUgTUlUIExpY2Vuc2UgKE1JVCkKLStDb3B5cmlnaHQgKGMpIDIwMTctMjAxOCBT ZXJnaW8gQmVuaXRlegotKwotK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YKLSt0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbgotK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KLSt1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgot K3RoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywKLStzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKLSsKLStUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKLStjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKwotK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0rSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksIEZJVE5FU1MKLStGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IKLStDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIKLStJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotK0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5 L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9SRUFETUUubWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQJMjAyNS0wOS0x NyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsODAgQEAKLSsjIHZlcnNpb25c X2NoZWNrCi0rCi0rWyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVu aXRlei92ZXJzaW9uX2NoZWNrL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1 Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9uX2NoZWNrL2FjdGlvbnMpCi0rWyFbQ3VycmVudCBD cmF0ZXMuaW8gVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi92ZXJzaW9u X2NoZWNrLnN2ZyldKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy92ZXJzaW9uX2NoZWNrKQotK1sh W3J1c3Rkb2NzIG9uIGRvY3MucnNdKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrL2JhZGdl LnN2ZyldKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrKQotKwotK1RoaXMgdGlueSBjcmF0 ZSBjaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBtZWV0cyBzb21l IHZlcnNpb24KLStyZXF1aXJlbWVudHMuIFRoZSB2ZXJzaW9uIGlzIHF1ZXJpZWQgYnkgY2FsbGlu ZyB0aGUgUnVzdCBjb21waWxlciB3aXRoCi0rYC0tdmVyc2lvbmAuIFRoZSBwYXRoIHRvIHRoZSBj b21waWxlciBpcyBkZXRlcm1pbmVkIGZpcnN0IHZpYSB0aGUgYFJVU1RDYAotK2Vudmlyb25tZW50 IHZhcmlhYmxlLiBJZiBpdCBpcyBub3Qgc2V0LCB0aGVuIGBydXN0Y2AgaXMgdXNlZC4gSWYgdGhh dCBmYWlscywgbm8KLStkZXRlcm1pbmF0aW9uIGlzIG1hZGUsIGFuZCBjYWxscyByZXR1cm4gYE5v bmVgLgotKwotKyMjIFVzYWdlCi0rCi0rQWRkIHRvIHlvdXIgYENhcmdvLnRvbWxgIGZpbGUsIHR5 cGljYWxseSBhcyBhIGJ1aWxkIGRlcGVuZGVuY3k6Ci0rCi0rYGBgdG9tbAotK1tidWlsZC1kZXBl bmRlbmNpZXNdCi0rdmVyc2lvbl9jaGVjayA9ICIwLjkiCi0rYGBgCi0rCi0rYHZlcnNpb25fY2hl Y2tgIGlzIGNvbXBhdGlibGUgYW5kIGNvbXBpbGVzIHdpdGggUnVzdCAxLjAuMCBhbmQgYmV5b25k LgotKwotKyMjIEV4YW1wbGVzCi0rCi0rU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlm IHRoZSBydW5uaW5nIGNvbXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvIGJlCi0rYXQgbGVhc3QgdmVy c2lvbiBgMS4xMy4wYDoKLSsKLStgYGBydXN0Ci0rZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sg YXMgcnVzdGM7Ci0rCi0raWYgcnVzdGM6OmlzX21pbl92ZXJzaW9uKCIxLjEzLjAiKS51bndyYXBf b3IoZmFsc2UpIHsKLSsgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1xdWVzdGlvbl9tYXJr X29wZXJhdG9yIik7Ci0rfQotK2BgYAotKwotK0NoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGls ZXIgd2FzIHJlbGVhc2VkIG9uIG9yIGFmdGVyIGAyMDE4LTEyLTE4YDoKLSsKLStgYGBydXN0Ci0r ZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Ci0rCi0rbWF0Y2ggcnVzdGM6Omlz X21pbl9kYXRlKCIyMDE4LTEyLTE4IikgewotKyAgICBTb21lKHRydWUpID0+ICJZZXAhIEl0J3Mg cmVjZW50ISIsCi0rICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBvbGRlci4iLAotKyAgICBO b25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIgotK307Ci0rYGBg Ci0rCi0rQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBmZWF0dXJlIGZs YWdzOgotKwotK2BgYHJ1c3QKLStleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsK LSsKLSttYXRjaCBydXN0Yzo6aXNfZmVhdHVyZV9mbGFnZ2FibGUoKSB7Ci0rICAgIFNvbWUodHJ1 ZSkgPT4gIlllcyEgSXQncyBhIGRldiBvciBuaWdodGx5IHJlbGVhc2UhIiwKLSsgICAgU29tZShm YWxzZSkgPT4gIk5vLCBpdCdzIHN0YWJsZSBvciBiZXRhLiIsCi0rICAgIE5vbmUgPT4gIkNvdWxk bid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iCi0rfTsKLStgYGAKLSsKLStTZWUgdGhl IFtydXN0ZG9jc10oaHR0cHM6Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2spIGZvciBtb3JlIGV4YW1w bGVzIGFuZCBjb21wbGV0ZQotK2RvY3VtZW50YXRpb24uCi0rCi0rIyMgQWx0ZXJuYXRpdmVzCi0r Ci0rVGhpcyBjcmF0ZSBpcyBkZWFkIHNpbXBsZSB3aXRoIG5vIGRlcGVuZGVuY2llcy4gSWYgeW91 IG5lZWQgc29tZXRoaW5nIG1vcmUgYW5kCi0rZG9uJ3QgY2FyZSBhYm91dCBwYW5pY2tpbmcgaWYg dGhlIHZlcnNpb24gY2Fubm90IGJlIG9idGFpbmVkLCBvciBpZiB5b3UgZG9uJ3QKLSttaW5kIGFk ZGluZyBkZXBlbmRlbmNpZXMsIHNlZSBbcnVzdGNfdmVyc2lvbl0uIElmIHlvdSdkIGluc3RlYWQg cHJlZmVyIGEgZmVhdHVyZQotK2RldGVjdGlvbiBsaWJyYXJ5IHRoYXQgd29ya3MgYnkgZHluYW1p Y2FsbHkgaW52b2tpbmcgYHJ1c3RjYCB3aXRoIGEKLStyZXByZXNlbnRhdGl2ZSBjb2RlIHNhbXBs ZSwgc2VlIFthdXRvY2ZnXS4KLSsKLStbcnVzdGNfdmVyc2lvbl06IGh0dHBzOi8vY3JhdGVzLmlv L2NyYXRlcy9ydXN0Y192ZXJzaW9uCi0rW2F1dG9jZmddOiBodHRwczovL2NyYXRlcy5pby9jcmF0 ZXMvYXV0b2NmZwotKwotKyMjIExpY2Vuc2UKLSsKLStgdmVyc2lvbl9jaGVja2AgaXMgbGljZW5z ZWQgdW5kZXIgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcsIGF0IHlvdXIgb3B0aW9uOgotKwotKyAq IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwgKFtMSUNFTlNFLUFQQUNIRV0oTElDRU5TRS1B UEFDSEUpIG9yIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKLSsg KiBNSVQgTGljZW5zZSAoW0xJQ0VOU0UtTUlUXShMSUNFTlNFLU1JVCkgb3IgaHR0cDovL29wZW5z b3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Zl cnNpb25fY2hlY2svc3JjL2NoYW5uZWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hl Y2svc3JjL2NoYW5uZWwucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9z cmMvY2hhbm5lbC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJzCTIwMjUtMDktMTcg MTc6NDE6NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsxLDE5MyBAQAotK3VzZSBzdGQ6OmZt dDsKLSsKLSsjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwgQ29weSwgQ2xvbmUpXQotK2Vu dW0gS2luZCB7Ci0rICAgIERldiwKLSsgICAgTmlnaHRseSwKLSsgICAgQmV0YSwKLSsgICAgU3Rh YmxlLAotK30KLSsKLSsvLy8gUmVsZWFzZSBjaGFubmVsOiAiZGV2IiwgIm5pZ2h0bHkiLCAiYmV0 YSIsIG9yICJzdGFibGUiLgotKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBDb3B5LCBD bG9uZSldCi0rcHViIHN0cnVjdCBDaGFubmVsKEtpbmQpOwotKwotK2ltcGwgQ2hhbm5lbCB7Ci0r ICAgIC8vLyBSZWFkcyB0aGUgcmVsZWFzZSBjaGFubmVsIG9mIHRoZSBydW5uaW5nIGNvbXBpbGVy LiBJZiBpdCBjYW5ub3QgYmUKLSsgICAgLy8vIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZl bCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KLSsgICAgLy8vCi0rICAg IC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2Ug dmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAgLy8vCi0rICAgIC8vLyBtYXRjaCBDaGFubmVs OjpyZWFkKCkgewotKyAgICAvLy8gICAgIFNvbWUoYykgPT4gZm9ybWF0ISgiVGhlIGNoYW5uZWwg aXM6IHt9IiwgYyksCi0rICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQgdG8gcmVh ZCB0aGUgcmVsZWFzZSBjaGFubmVsLiIpCi0rICAgIC8vLyB9OwotKyAgICAvLy8gYGBgCi0rICAg IHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPENoYW5uZWw+IHsKLSsgICAgICAgIDo6Z2V0X3ZlcnNp b25fYW5kX2RhdGUoKQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8KHZlcnNpb24sIF8pfCB2ZXJz aW9uKQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8dmVyc2lvbnwgQ2hhbm5lbDo6cGFyc2UoJnZl cnNpb24pKQotKyAgICB9Ci0rCi0rICAgIC8vLyBQYXJzZSBhIFJ1c3QgcmVsZWFzZSBjaGFubmVs IGZyb20gYSBSdXN0IHJlbGVhc2UgdmVyc2lvbiBzdHJpbmcgKG9mIHRoZQotKyAgICAvLy8gZm9y bSBgbWFqb3JbLm1pbm9yWy5wYXRjaFstY2hhbm5lbF1dXWApLiBSZXR1cm5zIGBOb25lYCBpZiBg dmVyc2lvbmAgaXMKLSsgICAgLy8vIG5vdCBhIHZhbGlkIFJ1c3QgdmVyc2lvbiBzdHJpbmcuCi0r ICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAot KyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8g bGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51bndyYXAoKTsKLSsgICAgLy8v IGFzc2VydCEoZGV2LmlzX2RldigpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgbmlnaHRseSA9 IENoYW5uZWw6OnBhcnNlKCIxLjQyLjItbmlnaHRseSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNz ZXJ0IShuaWdodGx5LmlzX25pZ2h0bHkoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGJldGEg PSBDaGFubmVsOjpwYXJzZSgiMS4zMi4wLWJldGEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2Vy dCEoYmV0YS5pc19iZXRhKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBzdGFibGUgPSBDaGFu bmVsOjpwYXJzZSgiMS40LjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoc3RhYmxlLmlz X3N0YWJsZSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gcGFyc2UodmVyc2lvbjogJnN0 cikgLT4gT3B0aW9uPENoYW5uZWw+IHsKLSsgICAgICAgIGxldCB2ZXJzaW9uID0gdmVyc2lvbi50 cmltKCk7Ci0rICAgICAgICBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItZGV2IikgfHwgdmVyc2lvbiA9 PSAiZGV2IiB7Ci0rICAgICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6OkRldikpCi0rICAgICAg ICB9IGVsc2UgaWYgdmVyc2lvbi5jb250YWlucygiLW5pZ2h0bHkiKSB8fCB2ZXJzaW9uID09ICJu aWdodGx5IiB7Ci0rICAgICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6Ok5pZ2h0bHkpKQotKyAg ICAgICAgfSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1iZXRhIikgfHwgdmVyc2lvbiA9PSAi YmV0YSIgewotKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpCZXRhKSkKLSsgICAgICAg IH0gZWxzZSBpZiAhdmVyc2lvbi5jb250YWlucygiLSIpIHsKLSsgICAgICAgICAgICBTb21lKENo YW5uZWwoS2luZDo6U3RhYmxlKSkKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgTm9u ZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRo ZSByZWxlYXNlIGNoYW5uZWwuCi0rICAgIGZuIGFzX3N0cigmc2VsZikgLT4gJidzdGF0aWMgc3Ry IHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAgICAgICAgS2luZDo6RGV2ID0+ICJk ZXYiLAotKyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gImJldGEiLAotKyAgICAgICAgICAgIEtp bmQ6Ok5pZ2h0bHkgPT4gIm5pZ2h0bHkiLAotKyAgICAgICAgICAgIEtpbmQ6OlN0YWJsZSA9PiAi c3RhYmxlIiwKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAg aWYgdGhpcyBjaGFubmVsIHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3MuIEluIG90aGVyIHdvcmRzLAot KyAgICAvLy8gcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGNoYW5uZWwgaXMgZWl0aGVyIGBkZXZgIG9y IGBuaWdodGx5YC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAg IC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAg Ly8vCi0rICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRldiIpLnVud3Jh cCgpOwotKyAgICAvLy8gYXNzZXJ0IShkZXYuc3VwcG9ydHNfZmVhdHVyZXMoKSk7Ci0rICAgIC8v LwotKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJzZSgiMS40Mi4yLW5pZ2h0bHki KS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEobmlnaHRseS5zdXBwb3J0c19mZWF0dXJlcygp KTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBhcnNlKCIxLjMyLjAt YmV0YSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghYmV0YS5zdXBwb3J0c19mZWF0dXJl cygpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEu NC4wIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuc3VwcG9ydHNfZmVhdHVy ZXMoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHN1cHBvcnRzX2ZlYXR1cmVzKCZzZWxm KSAtPiBib29sIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAgICAgICAgS2luZDo6 RGV2IHwgS2luZDo6TmlnaHRseSA9PiB0cnVlLAotKyAgICAgICAgICAgIEtpbmQ6OkJldGEgfCBL aW5kOjpTdGFibGUgPT4gZmFsc2UKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0 dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBkZXZgIGFuZCBgZmFsc2VgIG90aGVyd2lz ZS4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBy dXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsgICAgLy8vCi0rICAg IC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRldiIpLnVud3JhcCgpOwotKyAg ICAvLy8gYXNzZXJ0IShkZXYuaXNfZGV2KCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBzdGFi bGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEo IXN0YWJsZS5pc19kZXYoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGlzX2Rldigmc2Vs ZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAgICAgICAgICAgIEtpbmQ6 OkRldiA9PiB0cnVlLAotKyAgICAgICAgICAgIF8gPT4gZmFsc2UKLSsgICAgICAgIH0KLSsgICAg fQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBuaWdodGx5 YCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0r ICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNo YW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJzZSgi MS4zLjAtbmlnaHRseSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShuaWdodGx5LmlzX25p Z2h0bHkoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNl KCIxLjAuMCIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX25pZ2h0bHko KSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGlzX25pZ2h0bHkoJnNlbGYpIC0+IGJvb2wg ewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsgICAgICAgICAgICBLaW5kOjpOaWdodGx5ID0+ IHRydWUsCi0rICAgICAgICAgICAgXyA9PiBmYWxzZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0r ICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgaXMgYGJldGFgIGFuZCBgZmFs c2VgIG90aGVyd2lzZS4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0r ICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKLSsg ICAgLy8vCi0rICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1iZXRhIiku dW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKGJldGEuaXNfYmV0YSgpKTsKLSsgICAgLy8vCi0r ICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7Ci0r ICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuaXNfYmV0YSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBw dWIgZm4gaXNfYmV0YSgmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewot KyAgICAgICAgICAgIEtpbmQ6OkJldGEgPT4gdHJ1ZSwKLSsgICAgICAgICAgICBfID0+IGZhbHNl Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMg Y2hhbm5lbCBpcyBgc3RhYmxlYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rICAgIC8vLwotKyAg ICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNl IHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHN0YWJsZSA9 IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShzdGFi bGUuaXNfc3RhYmxlKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBiZXRhID0gQ2hhbm5lbDo6 cGFyc2UoIjEuMy4wLWJldGEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoIWJldGEuaXNf c3RhYmxlKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBpc19zdGFibGUoJnNlbGYpIC0+ IGJvb2wgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsgICAgICAgICAgICBLaW5kOjpTdGFi bGUgPT4gdHJ1ZSwKLSsgICAgICAgICAgICBfID0+IGZhbHNlCi0rICAgICAgICB9Ci0rICAgIH0K LSt9Ci0rCi0raW1wbCBmbXQ6OkRpc3BsYXkgZm9yIENoYW5uZWwgewotKyAgICBmbiBmbXQoJnNl bGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKLSsgICAgICAgIHdy aXRlIShmLCAie30iLCBzZWxmLmFzX3N0cigpKQotKyAgICB9Ci0rfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC92ZXJz aW9uX2NoZWNrL3NyYy9kYXRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMJMjAyNS0w OS0xNyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsMjAzIEBACi0rdXNlIHN0 ZDo6Zm10OwotKwotKy8vLyBSZWxlYXNlIGRhdGUgaW5jbHVkaW5nIHllYXIsIG1vbnRoLCBhbmQg ZGF5LgotKy8vIEludGVybmFsIHN0b3JhZ2UgaXM6IHlbMzEuLjldIHwgbVs4Li41XSB8IGRbNS4u LjBdLgotKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlh bE9yZCwgT3JkKV0KLStwdWIgc3RydWN0IERhdGUodTMyKTsKLSsKLStpbXBsIERhdGUgewotKyAg ICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgZGF0ZSBvZiB0aGUgcnVubmluZyBjb21waWxlci4gSWYg aXQgY2Fubm90IGJlCi0rICAgIC8vLyBkZXRlcm1pbmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwgZG9j dW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCi0rICAgIC8vLwotKyAgICAvLy8g IyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNp b25fY2hlY2s6OkRhdGU7Ci0rICAgIC8vLwotKyAgICAvLy8gbWF0Y2ggRGF0ZTo6cmVhZCgpIHsK LSsgICAgLy8vICAgICBTb21lKGQpID0+IGZvcm1hdCEoIlRoZSByZWxlYXNlIGRhdGUgaXM6IHt9 IiwgZCksCi0rICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQgdG8gcmVhZCB0aGUg cmVsZWFzZSBkYXRlLiIpCi0rICAgIC8vLyB9OwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBy ZWFkKCkgLT4gT3B0aW9uPERhdGU+IHsKLSsgICAgICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUo KQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8KF8sIGRhdGUpfCBkYXRlKQotKyAgICAgICAgICAg IC5hbmRfdGhlbih8ZGF0ZXwgRGF0ZTo6cGFyc2UoJmRhdGUpKQotKyAgICB9Ci0rCi0rICAgIC8v LyBQYXJzZSBhIHJlbGVhc2UgZGF0ZSBvZiB0aGUgZm9ybSBgJVktJW0tJWRgLiBSZXR1cm5zIGBO b25lYCBpZiBgZGF0ZWAgaXMKLSsgICAgLy8vIG5vdCBpbiBgJVktJW0tJWRgIGZvcm1hdC4KLSsg ICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0r ICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQg ZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDE2LTA0LTIwIikudW53cmFwKCk7Ci0rICAgIC8vLwotKyAg ICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE2LTAxLTEwIikpOwotKyAgICAvLy8gYXNz ZXJ0IShkYXRlLmF0X21vc3QoIjIwMTYtMDQtMjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKGRhdGUu ZXhhY3RseSgiMjAxNi0wNC0yMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKERhdGU6 OnBhcnNlKCIyMDIxLTEyLTMxIikudW53cmFwKCkuZXhhY3RseSgiMjAyMS0xMi0zMSIpKTsKLSsg ICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCJNYXJjaCAxMywgMjAxOCIpLmlz X25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIxLTItMy00LTUiKS5pc19u b25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0zMDAtMjMxMjAiKS5p c19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMC0xMi0xMiAxIiku aXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjAtMTAiKS5pc19u b25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMCIpLmlzX25vbmUoKSk7 Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHBhcnNlKGRhdGU6ICZzdHIpIC0+IE9wdGlvbjxE YXRlPiB7Ci0rICAgICAgICBsZXQgbXV0IHltZCA9IFswdTE2OyAzXTsKLSsgICAgICAgIGZvciAo aSwgc3BsaXQpIGluIGRhdGUuc3BsaXQoJy0nKS5tYXAofHN8IHMucGFyc2U6Ojx1MTY+KCkpLmVu dW1lcmF0ZSgpIHsKLSsgICAgICAgICAgICB5bWRbaV0gPSBtYXRjaCAoaSwgc3BsaXQpIHsKLSsg ICAgICAgICAgICAgICAgKDMsIF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJuIE5vbmUsCi0rICAg ICAgICAgICAgICAgIChfLCBPayh2KSkgPT4gdiwKLSsgICAgICAgICAgICB9OwotKyAgICAgICAg fQotKwotKyAgICAgICAgbGV0ICh5ZWFyLCBtb250aCwgZGF5KSA9ICh5bWRbMF0sIHltZFsxXSwg eW1kWzJdKTsKLSsgICAgICAgIGlmIHllYXIgPT0gMCB8fCBtb250aCA9PSAwIHx8IG1vbnRoID4g MTIgfHwgZGF5ID09IDAgfHwgZGF5ID4gMzEgewotKyAgICAgICAgICAgIHJldHVybiBOb25lOwot KyAgICAgICAgfQotKwotKyAgICAgICAgU29tZShEYXRlOjpmcm9tX3ltZCh5ZWFyLCBtb250aCBh cyB1OCwgZGF5IGFzIHU4KSkKLSsgICAgfQotKwotKyAgICAvLy8gQ3JlYXRlcyBhIGBEYXRlYCBm cm9tIGAoeWVhciwgbW9udGgsIGRheSlgIGRhdGUgY29tcG9uZW50cy4KLSsgICAgLy8vCi0rICAg IC8vLyBEb2VzIG5vdCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgYHllYXJgLCBgbW9udGhgLCBvciBg ZGF5YCwgYnV0IGB5ZWFyYCBpcwotKyAgICAvLy8gdHJ1bmNhdGVkIHRvIDIzIGJpdHMgKCUgOCwz ODgsNjA4KSwgYG1vbnRoYCB0byA0IGJpdHMgKCUgMTYpLCBhbmQgYGRheWAKLSsgICAgLy8vIHRv IDUgYml0cyAoJSAzMikuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwot KyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Ci0rICAg IC8vLwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDIxLCA3LCAzMCkuZXhhY3Rs eSgiMjAyMS0wNy0zMCIpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjAxMCwg MywgMjMpLmV4YWN0bHkoIjIwMTAtMDMtMjMiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OmZy b21feW1kKDIwOTAsIDEsIDMxKS5leGFjdGx5KCIyMDkwLTAxLTMxIikpOwotKyAgICAvLy8KLSsg ICAgLy8vIC8vIFRydW5jYXRpb246IDMzICUgMzIgPT0gMHgyMSAmIDB4MUYgPT0gMS4KLSsgICAg Ly8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjA5MCwgMSwgMzMpLmV4YWN0bHkoIjIwOTAtMDEt MDEiKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGZyb21feW1kKHllYXI6IHUxNiwgbW9u dGg6IHU4LCBkYXk6IHU4KSAtPiBEYXRlIHsKLSsgICAgICAgIGxldCB5ZWFyID0gKHllYXIgYXMg dTMyKSA8PCA5OwotKyAgICAgICAgbGV0IG1vbnRoID0gKChtb250aCBhcyB1MzIpICYgMHhGKSA8 PCA1OwotKyAgICAgICAgbGV0IGRheSA9IChkYXkgYXMgdTMyKSAmIDB4MUY7Ci0rICAgICAgICBE YXRlKHllYXIgfCBtb250aCB8IGRheSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJuIHRoZSBv cmlnaW5hbCAoWVlZWSwgTU0sIEREKS4KLSsgICAgZm4gdG9feW1kKCZzZWxmKSAtPiAodTE2LCB1 OCwgdTgpIHsKLSsgICAgICAgIGxldCB5ID0gc2VsZi4wID4+IDk7Ci0rICAgICAgICBsZXQgbSA9 IChzZWxmLjAgPj4gNSkgJiAweEY7Ci0rICAgICAgICBsZXQgZCA9IHNlbGYuMCAmIDB4MUY7Ci0r ICAgICAgICAoeSBhcyB1MTYsIG0gYXMgdTgsIGQgYXMgdTgpCi0rICAgIH0KLSsKLSsgICAgLy8v IFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1cnMgb24gb3IgYWZ0ZXIgYGRhdGVgLgotKyAg ICAvLy8KLSsgICAgLy8vIElmIGBkYXRlYCBvY2N1cnMgYmVmb3JlIGBzZWxmYCwgb3IgaWYgYGRh dGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCi0rICAgIC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNl YC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBy dXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8v LyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFwKCk7Ci0rICAgIC8v LwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE5LTEyLTMxIikpOwotKyAgICAv Ly8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDIwLTAxLTAxIikpOwotKyAgICAvLy8gYXNzZXJ0 IShkYXRlLmF0X2xlYXN0KCIyMDE0LTA0LTMxIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2Vy dCEoIWRhdGUuYXRfbGVhc3QoIjIwMjAtMDEtMDIiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRl LmF0X2xlYXN0KCIyMDI0LTA4LTE4IikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBhdF9s ZWFzdCgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAgICBEYXRlOjpwYXJzZShk YXRlKQotKyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYgPj0gJmRhdGUpCi0rICAgICAgICAg ICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAg aWYgYHNlbGZgIG9jY3VycyBvbiBvciBiZWZvcmUgYGRhdGVgLgotKyAgICAvLy8KLSsgICAgLy8v IElmIGBkYXRlYCBvY2N1cnMgYWZ0ZXIgYHNlbGZgLCBvciBpZiBgZGF0ZWAgaXMgbm90IGluIGAl WS0lbS0lZGAKLSsgICAgLy8vIGZvcm1hdCwgcmV0dXJucyBgZmFsc2VgLgotKyAgICAvLy8KLSsg ICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVz ZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBkYXRlID0gRGF0 ZTo6cGFyc2UoIjIwMjAtMDEtMDEiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3Nl cnQhKGRhdGUuYXRfbW9zdCgiMjAyMC0wMS0wMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5h dF9tb3N0KCIyMDIwLTAxLTAyIikpOwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIw MjQtMDgtMTgiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0KCIy MDE5LTEyLTMxIikpOwotKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0KCIyMDE0LTA0LTMx IikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBhdF9tb3N0KCZzZWxmLCBkYXRlOiAmc3Ry KSAtPiBib29sIHsKLSsgICAgICAgIERhdGU6OnBhcnNlKGRhdGUpCi0rICAgICAgICAgICAgLm1h cCh8ZGF0ZXwgc2VsZiA8PSAmZGF0ZSkKLSsgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQot KyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgb2NjdXJzIGV4YWN0 bHkgb24gYGRhdGVgLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGBkYXRlYCBpcyBub3QgZXhhY3Rs eSBgc2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAotKyAgICAvLy8gZm9y bWF0LCByZXR1cm5zIGBmYWxzZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAg IC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7 Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIp LnVud3JhcCgpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5leGFjdGx5KCIyMDIw LTAxLTAxIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAx OS0xMi0zMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAxNC0wNC0zMSIp KTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAyMC0wMS0wMiIpKTsKLSsgICAg Ly8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAyNC0wOC0xOCIpKTsKLSsgICAgLy8vIGBgYAot KyAgICBwdWIgZm4gZXhhY3RseSgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAg ICBEYXRlOjpwYXJzZShkYXRlKQotKyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYgPT0gJmRh dGUpCi0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQotK30KLSsKLStpbXBs IGZtdDo6RGlzcGxheSBmb3IgRGF0ZSB7Ci0rICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6 OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgewotKyAgICAgICAgbGV0ICh5LCBtLCBkKSA9IHNl bGYudG9feW1kKCk7Ci0rICAgICAgICB3cml0ZSEoZiwgInt9LXs6MDJ9LXs6MDJ9IiwgeSwgbSwg ZCkKLSsgICAgfQotK30KLSsKLSsjW2NmZyh0ZXN0KV0KLSttb2QgdGVzdHMgewotKyAgICB1c2Ug c3VwZXI6OkRhdGU7Ci0rCi0rICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVfZGlzcGxheSB7Ci0r ICAgICAgICAoJHN0cmluZzpleHByKSA9PiAoCi0rICAgICAgICAgICAgYXNzZXJ0X2VxIShEYXRl OjpwYXJzZSgkc3RyaW5nKS51bndyYXAoKS50b19zdHJpbmcoKSwgJHN0cmluZyk7Ci0rICAgICAg ICApCi0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiBkaXNwbGF5KCkgewotKyAgICAg ICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDE5LTA1LTA4Iik7Ci0rICAgICAgICByZWZsZXhpdmVf ZGlzcGxheSEoIjIwMDAtMDEtMDEiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjAw MC0xMi0zMSIpOwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDkwLTEyLTMxIik7Ci0r ICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjE5OTktMDItMTkiKTsKLSsgICAgICAgIHJlZmxl eGl2ZV9kaXNwbGF5ISgiOTk5OS0xMi0zMSIpOwotKyAgICB9Ci0rfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVz dC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lv bl9jaGVjay9zcmMvbGliLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycwkyMDI1LTA5LTE3 IDE3OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAsMCArMSw0OTMgQEAKLSsvLyEgVGhpcyB0 aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIG1l ZXRzIHNvbWUKLSsvLyEgdmVyc2lvbiByZXF1aXJlbWVudHMuIFRoZSB2ZXJzaW9uIGlzIHF1ZXJp ZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBjb21waWxlcgotKy8vISB3aXRoIGAtLXZlcnNpb25gLiBU aGUgcGF0aCB0byB0aGUgY29tcGlsZXIgaXMgZGV0ZXJtaW5lZCBmaXJzdCB2aWEgdGhlCi0rLy8h IGBSVVNUQ2AgZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBzZXQsIHRoZW4gYHJ1 c3RjYCBpcyB1c2VkLiBJZgotKy8vISB0aGF0IGZhaWxzLCBubyBkZXRlcm1pbmF0aW9uIGlzIG1h ZGUsIGFuZCBjYWxscyByZXR1cm4gYE5vbmVgLgotKy8vIQotKy8vISAjIEV4YW1wbGVzCi0rLy8h Ci0rLy8hICogU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlmIHRoZSBydW5uaW5nIGNv bXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvCi0rLy8hICAgYmUgYXQgbGVhc3QgdmVyc2lvbiBgMS4x My4wYDoKLSsvLyEKLSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7Ci0rLy8hCi0rLy8hICAgaWYgcnVzdGM6OmlzX21pbl92ZXJzaW9uKCIx LjEzLjAiKS51bndyYXBfb3IoZmFsc2UpIHsKLSsvLyEgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1 c3RjLWNmZz1xdWVzdGlvbl9tYXJrX29wZXJhdG9yIik7Ci0rLy8hICAgfQotKy8vISAgIGBgYAot Ky8vIQotKy8vISAgIFNlZSBbYGlzX21heF92ZXJzaW9uYF0gb3IgW2Bpc19leGFjdF92ZXJzaW9u YF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyCi0rLy8hICAgaXMgX2F0IG1vc3RfIG9yIF9leGFj dGx5XyBhIGNlcnRhaW4gdmVyc2lvbi4KLSsvLyEKLSsvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5u aW5nIGNvbXBpbGVyIHdhcyByZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0xMi0xOGA6Ci0rLy8h Ci0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1 c3RjOwotKy8vIQotKy8vISAgIG1hdGNoIHJ1c3RjOjppc19taW5fZGF0ZSgiMjAxOC0xMi0xOCIp IHsKLSsvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVwISBJdCdzIHJlY2VudCEiLAotKy8vISAg ICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgb2xkZXIuIiwKLSsvLyEgICAgICAgTm9uZSA9 PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKLSsvLyEgICB9OwotKy8v ISAgIGBgYAotKy8vIQotKy8vISAgIFNlZSBbYGlzX21heF9kYXRlYF0gb3IgW2Bpc19leGFjdF9k YXRlYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIHdhcwotKy8vISAgIHJlbGVhc2VkIF9wcmlv ciB0b18gb3IgX2V4YWN0bHkgb25fIGEgY2VydGFpbiBkYXRlLgotKy8vIQotKy8vISAqIENoZWNr IHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgZmVhdHVyZSBmbGFnczoKLSsvLyEK LSsvLyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVz dGM7Ci0rLy8hCi0rLy8hICAgbWF0Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgewot Ky8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXMhIEl0J3MgYSBkZXYgb3IgbmlnaHRseSByZWxl YXNlISIsCi0rLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBzdGFibGUgb3IgYmV0 YS4iLAotKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZl cnNpb24uIgotKy8vISAgIH07Ci0rLy8hICAgYGBgCi0rLy8hCi0rLy8hICogQ2hlY2sgdGhhdCB0 aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBhIHNwZWNpZmljIGZlYXR1cmU6Ci0rLy8hCi0r Ly8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3Rj OwotKy8vIQotKy8vISAgIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1cHBvcnRzX2ZlYXR1 cmUoImRvY19jZmciKSB7Ci0rLy8hICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1oYXNf ZG9jX2NmZyIpOwotKy8vISAgIH0KLSsvLyEgICBgYGAKLSsvLyEKLSsvLyEgKiBDaGVjayB0aGF0 IHRoZSBydW5uaW5nIGNvbXBpbGVyIGlzIG9uIHRoZSBzdGFibGUgY2hhbm5lbDoKLSsvLyEKLSsv LyEgICBgYGBydXN0Ci0rLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7 Ci0rLy8hCi0rLy8hICAgbWF0Y2ggcnVzdGM6OkNoYW5uZWw6OnJlYWQoKSB7Ci0rLy8hICAgICAg IFNvbWUoYykgaWYgYy5pc19zdGFibGUoKSA9PiBmb3JtYXQhKCJZZXMhIEl0J3Mgc3RhYmxlLiIp LAotKy8vISAgICAgICBTb21lKGMpID0+IGZvcm1hdCEoIk5vLCB0aGUgY2hhbm5lbCB7fSBpcyBu b3Qgc3RhYmxlLiIsIGMpLAotKy8vISAgICAgICBOb25lID0+IGZvcm1hdCEoIkNvdWxkbid0IGRl dGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iKQotKy8vISAgIH07Ci0rLy8hICAgYGBgCi0rLy8h Ci0rLy8hIFRvIGludGVyYWN0IHdpdGggdGhlIHZlcnNpb24sIHJlbGVhc2UgZGF0ZSwgYW5kIHJl bGVhc2UgY2hhbm5lbCBhcyBzdHJ1Y3RzLAotKy8vISB1c2UgW2BWZXJzaW9uYF0sIFtgRGF0ZWBd LCBhbmQgW2BDaGFubmVsYF0sIHJlc3BlY3RpdmVseS4gVGhlIFtgdHJpcGxlKClgXQotKy8vISBm dW5jdGlvbiByZXR1cm5zIGFsbCB0aHJlZSB2YWx1ZXMgZWZmaWNpZW50bHkuCi0rLy8hCi0rLy8h ICMgQWx0ZXJuYXRpdmVzCi0rLy8hCi0rLy8hIFRoaXMgY3JhdGUgaXMgZGVhZCBzaW1wbGUgd2l0 aCBubyBkZXBlbmRlbmNpZXMuIElmIHlvdSBuZWVkIHNvbWV0aGluZyBtb3JlCi0rLy8hIGFuZCBk b24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgb2J0YWlu ZWQsIG9yIGlmIHlvdQotKy8vISBkb24ndCBtaW5kIGFkZGluZyBkZXBlbmRlbmNpZXMsIHNlZQot Ky8vISBbcnVzdGNfdmVyc2lvbl0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RjX3ZlcnNp b24pLgotKwotKyMhW2FsbG93KGRlcHJlY2F0ZWQpXQotKwotK21vZCB2ZXJzaW9uOwotK21vZCBj aGFubmVsOwotK21vZCBkYXRlOwotKwotK3VzZSBzdGQ6OmVudjsKLSt1c2Ugc3RkOjpwcm9jZXNz OjpDb21tYW5kOwotKwotKyNbZG9jKGlubGluZSldIHB1YiB1c2UgdmVyc2lvbjo6KjsKLSsjW2Rv YyhpbmxpbmUpXSBwdWIgdXNlIGNoYW5uZWw6Oio7Ci0rI1tkb2MoaW5saW5lKV0gcHViIHVzZSBk YXRlOjoqOwotKwotKy8vLyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9t IHJ1c3RjIHZlcnNpb24gc3RyaW5nLgotK2ZuIHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192 ZXJzaW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKLSsg ICAgbGV0IGxhc3RfbGluZSA9IHMubGluZXMoKS5sYXN0KCkudW53cmFwX29yKHMpOwotKyAgICBs ZXQgbXV0IGNvbXBvbmVudHMgPSBsYXN0X2xpbmUudHJpbSgpLnNwbGl0KCIgIik7Ci0rICAgIGxl dCB2ZXJzaW9uID0gY29tcG9uZW50cy5udGgoMSk7Ci0rICAgIGxldCBkYXRlID0gY29tcG9uZW50 cy5maWx0ZXIofGN8IGMuZW5kc193aXRoKCcpJykpLm5leHQoKQotKyAgICAgICAgLm1hcCh8c3wg cy50cmltX3JpZ2h0KCkudHJpbV9yaWdodF9tYXRjaGVzKCIpIikudHJpbV9sZWZ0KCkudHJpbV9s ZWZ0X21hdGNoZXMoJygnKSk7Ci0rICAgICh2ZXJzaW9uLm1hcCh8c3wgcy50b19zdHJpbmcoKSks IGRhdGUubWFwKHxzfCBzLnRvX3N0cmluZygpKSkKLSt9Ci0rCi0rLy8vIFBhcnNlcyAodmVyc2lv biwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyYm9zZSB2ZXJzaW9uIG91dHB1dC4K LStmbiB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uKHM6ICZzdHIp IC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKLSsgICAgbGV0IChtdXQgdmVy c2lvbiwgbXV0IGRhdGUpID0gKE5vbmUsIE5vbmUpOwotKyAgICBmb3IgbGluZSBpbiBzLmxpbmVz KCkgewotKyAgICAgICAgbGV0IHNwbGl0ID0gfHM6ICZzdHJ8IHMuc3BsaXRuKDIsICI6IikubnRo KDEpLm1hcCh8c3wgcy50cmltKCkudG9fc3RyaW5nKCkpOwotKyAgICAgICAgbWF0Y2ggbGluZS50 cmltKCkuc3BsaXQoIiAiKS5udGgoMCkgewotKyAgICAgICAgICAgIFNvbWUoInJ1c3RjIikgPT4g ewotKyAgICAgICAgICAgICAgICBsZXQgKHYsIGQpID0gdmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1 c3RjX3ZlcnNpb24obGluZSk7Ci0rICAgICAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLm9y KHYpOwotKyAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZS5vcihkKTsKLSsgICAgICAgICAgICB9 LAotKyAgICAgICAgICAgIFNvbWUoInJlbGVhc2U6IikgPT4gdmVyc2lvbiA9IHNwbGl0KGxpbmUp LAotKyAgICAgICAgICAgIFNvbWUoImNvbW1pdC1kYXRlOiIpIGlmIGxpbmUuZW5kc193aXRoKCJ1 bmtub3duIikgPT4gZGF0ZSA9IE5vbmUsCi0rICAgICAgICAgICAgU29tZSgiY29tbWl0LWRhdGU6 IikgPT4gZGF0ZSA9IHNwbGl0KGxpbmUpLAotKyAgICAgICAgICAgIF8gPT4gY29udGludWUKLSsg ICAgICAgIH0KLSsgICAgfQotKwotKyAgICAodmVyc2lvbiwgZGF0ZSkKLSt9Ci0rCi0rLy8vIFJl dHVybnMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIGBydXN0YyAtLXZlcnNpb25g LgotK2ZuIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgLT4gT3B0aW9uPChPcHRpb248U3RyaW5nPiwg T3B0aW9uPFN0cmluZz4pPiB7Ci0rICAgIGxldCBydXN0YyA9IGVudjo6dmFyKCJSVVNUQyIpLnVu d3JhcF9vcl9lbHNlKHxffCAicnVzdGMiLnRvX3N0cmluZygpKTsKLSsgICAgQ29tbWFuZDo6bmV3 KHJ1c3RjKS5hcmcoIi0tdmVyYm9zZSIpLmFyZygiLS12ZXJzaW9uIikub3V0cHV0KCkub2soKQot KyAgICAgICAgLmFuZF90aGVuKHxvdXRwdXR8IFN0cmluZzo6ZnJvbV91dGY4KG91dHB1dC5zdGRv dXQpLm9rKCkpCi0rICAgICAgICAubWFwKHxzfCB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNf dmVyYm9zZV92ZXJzaW9uKCZzKSkKLSt9Ci0rCi0rLy8vIFJlYWRzIHRoZSB0cmlwbGUgb2YgW2BW ZXJzaW9uYF0sIFtgQ2hhbm5lbGBdLCBhbmQgW2BEYXRlYF0gb2YgdGhlIGluc3RhbGxlZAotKy8v LyBvciBydW5uaW5nIGBydXN0Y2AuCi0rLy8vCi0rLy8vIElmIGFueSBhdHRyaWJ1dGUgY2Fubm90 IGJlIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZlbAotKy8vLyBkb2N1bWVudGF0aW9uXShj cmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KLSsvLy8KLSsvLy8gVG8gb2J0YWluIG9ubHkgb25lIG9m IHRocmVlIGF0dHJpYnV0ZXMsIHVzZSBbYFZlcnNpb246OnJlYWQoKWBdLAotKy8vLyBbYENoYW5u ZWw6OnJlYWQoKWBdLCBvciBbYERhdGU6OnJlYWQoKWBdLgotK3B1YiBmbiB0cmlwbGUoKSAtPiBP cHRpb248KFZlcnNpb24sIENoYW5uZWwsIERhdGUpPiB7Ci0rICAgIGxldCAodmVyc2lvbl9zdHIs IGRhdGVfc3RyKSA9IG1hdGNoIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgewotKyAgICAgICAgU29t ZSgoU29tZSh2ZXJzaW9uKSwgU29tZShkYXRlKSkpID0+ICh2ZXJzaW9uLCBkYXRlKSwKLSsgICAg ICAgIF8gPT4gcmV0dXJuIE5vbmUKLSsgICAgfTsKLSsKLSsgICAgLy8gQ2FuJ3QgdXNlIGA/YCBv ciBgdHJ5IWAgZm9yIGBPcHRpb25gIGluIDEuMC4wLgotKyAgICBtYXRjaCBWZXJzaW9uOjpwYXJz ZSgmdmVyc2lvbl9zdHIpIHsKLSsgICAgICAgIFNvbWUodmVyc2lvbikgPT4gbWF0Y2ggQ2hhbm5l bDo6cGFyc2UoJnZlcnNpb25fc3RyKSB7Ci0rICAgICAgICAgICAgU29tZShjaGFubmVsKSA9PiBt YXRjaCBEYXRlOjpwYXJzZSgmZGF0ZV9zdHIpIHsKLSsgICAgICAgICAgICAgICAgU29tZShkYXRl KSA9PiBTb21lKCh2ZXJzaW9uLCBjaGFubmVsLCBkYXRlKSksCi0rICAgICAgICAgICAgICAgIF8g PT4gTm9uZSwKLSsgICAgICAgICAgICB9LAotKyAgICAgICAgICAgIF8gPT4gTm9uZSwKLSsgICAg ICAgIH0sCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRo YXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqb24gb3Ig YWZ0ZXIqKgotKy8vLyBzb21lIGRhdGUuCi0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl9k YXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCi0r Ly8vIGAyMDE3LTAxLTA5YC4KLSsvLy8KLSsvLy8gSWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJp ZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fZGF0ZWAgY291bGQgbm90IGJlCi0rLy8vIHBhcnNl ZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFs bGVkIGBydXN0Y2AKLSsvLy8gd2FzIHJlbGVhc2Ugb24gb3IgYWZ0ZXIgYG1pbl9kYXRlYCBhbmQg YGZhbHNlYCBvdGhlcndpc2UuCi0rcHViIGZuIGlzX21pbl9kYXRlKG1pbl9kYXRlOiAmc3RyKSAt PiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZSht aW5fZGF0ZSkpIHsKLSsgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKG1pbl9kYXRlKSkg PT4gU29tZShydXN0Y19kYXRlID49IG1pbl9kYXRlKSwKLSsgICAgICAgIF8gPT4gTm9uZQotKyAg ICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1 c3RjYCB3YXMgcmVsZWFzZWQgKipvbiBvciBiZWZvcmUqKgotKy8vLyBzb21lIGRhdGUuCi0rLy8v Ci0rLy8vIFRoZSBmb3JtYXQgb2YgYG1heF9kYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBp bnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCi0rLy8vIGAyMDE3LTAxLTA5YC4KLSsvLy8KLSsvLy8g SWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfZGF0 ZWAgY291bGQgbm90IGJlCi0rLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSBy ZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKLSsvLy8gd2FzIHJlbGVhc2Ug b24gb3IgYmVmb3JlIGBtYXhfZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBp c19tYXhfZGF0ZShtYXhfZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKLSsgICAgbWF0Y2gg KERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UobWF4X2RhdGUpKSB7Ci0rICAgICAgICAoU29tZShy dXN0Y19kYXRlKSwgU29tZShtYXhfZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA8PSBtYXhfZGF0 ZSksCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRoYXQg dGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqZXhhY3RseSoq IG9uCi0rLy8vIHNvbWUgZGF0ZS4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBvZiBgZGF0ZWAgbXVz dCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBvcgotKy8vLyBgMjAx Ny0wMS0wOWAuCi0rLy8vCi0rLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3Ig cGFyc2VkLCBvciBpZiBgZGF0ZWAgY291bGQgbm90IGJlIHBhcnNlZCwKLSsvLy8gcmV0dXJucyBg Tm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2Ag d2FzCi0rLy8vIHJlbGVhc2Ugb24gYGRhdGVgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLStwdWIg Zm4gaXNfZXhhY3RfZGF0ZShkYXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRj aCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShkYXRlKSkgewotKyAgICAgICAgKFNvbWUocnVz dGNfZGF0ZSksIFNvbWUoZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA9PSBkYXRlKSwKLSsgICAg ICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmlu ZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IGxlYXN0Kiogc29tZSBtaW5pbXVtCi0rLy8v IHZlcnNpb24uCi0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl92ZXJzaW9uYCBpcyBhIHNl bWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCi0rLy8vIGAxLjE0LjBgLCBg MS4xNi4wLW5pZ2h0bHlgLCBldGMuCi0rLy8vCi0rLy8vIElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBi ZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX3ZlcnNpb25gIGNvdWxkIG5vdAotKy8v LyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYg dGhlIGluc3RhbGxlZCBgcnVzdGNgCi0rLy8vIGlzIGF0IGxlYXN0IGBtaW5fdmVyc2lvbmAgYW5k IGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19taW5fdmVyc2lvbihtaW5fdmVyc2lvbjog JnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKLSsgICAgbWF0Y2ggKFZlcnNpb246OnJlYWQoKSwgVmVy c2lvbjo6cGFyc2UobWluX3ZlcnNpb24pKSB7Ci0rICAgICAgICAoU29tZShydXN0Y192ZXIpLCBT b21lKG1pbl92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA+PSBtaW5fdmVyKSwKLSsgICAgICAgIF8g PT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBp bnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IG1vc3QqKiBzb21lIG1heGltdW0KLSsvLy8gdmVyc2lv bi4KLSsvLy8KLSsvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X3ZlcnNpb25gIGlzIGEgc2VtYW50aWMg dmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKLSsvLy8gYDEuMTQuMGAsIGAxLjE2LjAt bmlnaHRseWAsIGV0Yy4KLSsvLy8KLSsvLy8gSWYgdGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJp ZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfdmVyc2lvbmAgY291bGQgbm90Ci0rLy8vIGJlIHBh cnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5z dGFsbGVkIGBydXN0Y2AKLSsvLy8gaXMgYXQgbW9zdCBgbWF4X3ZlcnNpb25gIGFuZCBgZmFsc2Vg IG90aGVyd2lzZS4KLStwdWIgZm4gaXNfbWF4X3ZlcnNpb24obWF4X3ZlcnNpb246ICZzdHIpIC0+ IE9wdGlvbjxib29sPiB7Ci0rICAgIG1hdGNoIChWZXJzaW9uOjpyZWFkKCksIFZlcnNpb246OnBh cnNlKG1heF92ZXJzaW9uKSkgewotKyAgICAgICAgKFNvbWUocnVzdGNfdmVyKSwgU29tZShtYXhf dmVyKSkgPT4gU29tZShydXN0Y192ZXIgPD0gbWF4X3ZlciksCi0rICAgICAgICBfID0+IE5vbmUK LSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVk IGBydXN0Y2AgaXMgKipleGFjdGx5Kiogc29tZSB2ZXJzaW9uLgotKy8vLwotKy8vLyBUaGUgZm9y bWF0IG9mIGB2ZXJzaW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAt YmV0YWAsCi0rLy8vIGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCi0rLy8vCi0rLy8v IElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgdmVy c2lvbmAgY291bGQgbm90IGJlCi0rLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lz ZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AgaXMKLSsvLy8gZXhhY3Rs eSBgdmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19leGFjdF92ZXJz aW9uKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIG1hdGNoIChWZXJzaW9u OjpyZWFkKCksIFZlcnNpb246OnBhcnNlKHZlcnNpb24pKSB7Ci0rICAgICAgICAoU29tZShydXN0 Y192ZXIpLCBTb21lKHZlcnNpb24pKSA9PiBTb21lKHJ1c3RjX3ZlciA9PSB2ZXJzaW9uKSwKLSsg ICAgICAgIF8gPT4gTm9uZQotKyAgICB9Ci0rfQotKwotKy8vLyBDaGVja3Mgd2hldGhlciB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzLgotKy8v LwotKy8vLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIGNoYW5uZWwgaXMgZWl0aGVyICJuaWdodGx5 IiBvciAiZGV2Ii4KLSsvLy8KLSsvLy8gTm90ZSB0aGF0IHN1cHBvcnQgZm9yIHNwZWNpZmljIGBy dXN0Y2AgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQKLSsvLy8gdmlhIHRoZSBg YWxsb3ctZmVhdHVyZXNgIGNvbXBpbGVyIGZsYWcsIHdoaWNoIHRoaXMgZnVuY3Rpb24gX2RvZXMg bm90XwotKy8vLyBjaGVjay4gVGhhdCBpcywgdGhpcyBmdW5jdGlvbiBfZG9lcyBub3RfIGNoZWNr IHdoZXRoZXIgYSBfc3BlY2lmaWNfIGZlYXR1cmUKLSsvLy8gaXMgc3VwcG9ydGVkLCBidXQgaW5z dGVhZCB3aGV0aGVyIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYXQgYWxsLiBUbyBjaGVjawotKy8v LyBmb3Igc3VwcG9ydCBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCB1c2UgW2BzdXBwb3J0c19mZWF0 dXJlKClgXS4KLSsvLy8KLSsvLy8gSWYgdGhlIHZlcnNpb24gY291bGQgbm90IGJlIGRldGVybWlu ZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucwotKy8vLyBgdHJ1ZWAgaWYgdGhl IHJ1bm5pbmcgdmVyc2lvbiBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KLStwdWIgZm4gaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSAtPiBPcHRpb248Ym9vbD4gewot KyAgICBDaGFubmVsOjpyZWFkKCkubWFwKHxjfCBjLnN1cHBvcnRzX2ZlYXR1cmVzKCkpCi0rfQot KwotKy8vLyBDaGVja3Mgd2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBz dXBwb3J0cyBgZmVhdHVyZWAuCi0rLy8vCi0rLy8vIFJldHVybnMgX3RydWVfIF9pZmZfIFtgaXNf ZmVhdHVyZV9mbGFnZ2FibGUoKWBdIHJldHVybnMgYHRydWVgIF9hbmRfIHRoZQotKy8vLyBmZWF0 dXJlIGlzIG5vdCBkaXNhYmxlZCB2aWEgZXhjbHVzaW9uIGluIGBhbGxvdy1mZWF0dXJlc2Agdmlh IGBSVVNURkxBR1NgIG9yCi0rLy8vIGBDQVJHT19FTkNPREVEX1JVU1RGTEFHU2AuIElmIHRoZSB2 ZXJzaW9uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zCi0rLy8vIGBOb25lYC4KLSsv Ly8KLSsvLy8gIyBFeGFtcGxlCi0rLy8vCi0rLy8vIGBgYHJ1c3QKLSsvLy8gdXNlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7Ci0rLy8vCi0rLy8vIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1 cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7Ci0rLy8vICAgIHByaW50bG4hKCJjYXJnbzpydXN0 Yy1jZmc9aGFzX2RvY19jZmciKTsKLSsvLy8gfQotKy8vLyBgYGAKLStwdWIgZm4gc3VwcG9ydHNf ZmVhdHVyZShmZWF0dXJlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRjaCBpc19m ZWF0dXJlX2ZsYWdnYWJsZSgpIHsKLSsgICAgICAgIFNvbWUodHJ1ZSkgPT4geyAvKiBjb250aW51 ZSAqLyB9Ci0rICAgICAgICBTb21lKGZhbHNlKSA9PiByZXR1cm4gU29tZShmYWxzZSksCi0rICAg ICAgICBOb25lID0+IHJldHVybiBOb25lLAotKyAgICB9Ci0rCi0rICAgIGxldCBlbnZfZmxhZ3Mg PSBlbnY6OnZhcl9vcygiQ0FSR09fRU5DT0RFRF9SVVNURkxBR1MiKQotKyAgICAgICAgLm1hcCh8 ZmxhZ3N8IChmbGFncywgJ1x4MWYnKSkKLSsgICAgICAgIC5vcl9lbHNlKHx8IGVudjo6dmFyX29z KCJSVVNURkxBR1MiKS5tYXAofGZsYWdzfCAoZmxhZ3MsICcgJykpKTsKLSsKLSsgICAgaWYgbGV0 IFNvbWUoKGZsYWdzLCBkZWxpbSkpID0gZW52X2ZsYWdzIHsKLSsgICAgICAgIGNvbnN0IEFMTE9X X0ZFQVRVUkVTOiAmJ3N0YXRpYyBzdHIgPSAiYWxsb3ctZmVhdHVyZXM9IjsKLSsKLSsgICAgICAg IGxldCBydXN0ZmxhZ3MgPSBmbGFncy50b19zdHJpbmdfbG9zc3koKTsKLSsgICAgICAgIGxldCBh bGxvd19mZWF0dXJlcyA9IHJ1c3RmbGFncy5zcGxpdChkZWxpbSkKLSsgICAgICAgICAgICAubWFw KHxmbGFnfCBmbGFnLnRyaW1fbGVmdF9tYXRjaGVzKCItWiIpLnRyaW0oKSkKLSsgICAgICAgICAg ICAuZmlsdGVyKHxmbGFnfCBmbGFnLnN0YXJ0c193aXRoKEFMTE9XX0ZFQVRVUkVTKSkKLSsgICAg ICAgICAgICAubWFwKHxmbGFnfCAmZmxhZ1tBTExPV19GRUFUVVJFUy5sZW4oKS4uXSk7Ci0rCi0r ICAgICAgICBpZiBsZXQgU29tZShhbGxvd19mZWF0dXJlcykgPSBhbGxvd19mZWF0dXJlcy5sYXN0 KCkgewotKyAgICAgICAgICAgIHJldHVybiBTb21lKGFsbG93X2ZlYXR1cmVzLnNwbGl0KCcsJyku YW55KHxmfCBmLnRyaW0oKSA9PSBmZWF0dXJlKSk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsg ICAgLy8gSWYgdGhlcmUgYXJlIG5vIGBSVVNURkxBR1NgIG9yIGBDQVJHT19FTkNPREVEX1JVU1RG TEFHU2Agb3IgdGhleSBkb24ndAotKyAgICAvLyBjb250YWluIGFuIGBhbGxvdy1mZWF0dXJlc2Ag ZmxhZywgYXNzdW1lIGNvbXBpbGVyIGFsbG93cyBhbGwgZmVhdHVyZXMuCi0rICAgIFNvbWUodHJ1 ZSkKLSt9Ci0rCi0rI1tjZmcodGVzdCldCi0rbW9kIHRlc3RzIHsKLSsgICAgdXNlIHN0ZDo6e2Vu diwgZnN9OwotKwotKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192 ZXJzaW9uOwotKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb247Ci0rCi0rICAgIG1hY3JvX3J1bGVzISBjaGVja19wYXJzZSB7Ci0rICAgICAg ICAoQCAkZjpleHByLCAkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ICh7Ci0rICAgICAg ICAgICAgaWYgbGV0IChTb21lKHYpLCBkKSA9ICRmKCYkcykgewotKyAgICAgICAgICAgICAgICBs ZXQgZV9kOiBPcHRpb248JnN0cj4gPSAkZC5pbnRvKCk7Ci0rICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoKHYsIGQpLCAoJHYudG9fc3RyaW5nKCksIGVfZC5tYXAofHN8IHMuaW50bygpKSkpOwot KyAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgIHBhbmljISgiezo/fSBkaWRu J3QgcGFyc2UgZm9yIHZlcnNpb24gdGVzdGluZy4iLCAkcyk7Ci0rICAgICAgICAgICAgfQotKyAg ICAgICAgfSk7Ci0rICAgICAgICAoJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHBy KSA9PiAoewotKyAgICAgICAgICAgIGxldCB3YXJuID0gIndhcm5pbmc6IGludmFsaWQgbG9nZ2lu ZyBzcGVjICd3YXJuaW5nJywgaWdub3JpbmcgaXQiOwotKyAgICAgICAgICAgIGxldCB3YXJuMiA9 ICJ3YXJuaW5nOiBzb3JyeSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgOihzYWQpIjsKLSsgICAgICAg ICAgICBjaGVja19wYXJzZSEoQCAkZiwgJHMgPT4gJHYsICRkKTsKLSsgICAgICAgICAgICBjaGVj a19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fSIsIHdhcm4sICRzKSA9PiAkdiwgJGQpOwot KyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9Iiwgd2FybjIs ICRzKSA9PiAkdiwgJGQpOwotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0 ISgie31cbnt9XG57fSIsIHdhcm4sIHdhcm4yLCAkcykgPT4gJHYsICRkKTsKLSsgICAgICAgICAg ICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3YXJuMiwgd2Fybiwg JHMpID0+ICR2LCAkZCk7Ci0rICAgICAgICB9KQotKyAgICB9Ci0rCi0rICAgIG1hY3JvX3J1bGVz ISBjaGVja190ZXJzZV9wYXJzZSB7Ci0rICAgICAgICAoJCgkczpleHByID0+ICR2OmV4cHIsICRk OmV4cHIsKSspID0+IHskKAotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKLSsgICAgICAgICkrfQotKyAg ICB9Ci0rCi0rICAgIG1hY3JvX3J1bGVzISBjaGVja192ZXJib3NlX3BhcnNlIHsKLSsgICAgICAg ICgkKCRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCi0rICAgICAgICAgICAg Y2hlY2tfcGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJib3NlX3ZlcnNpb24s ICRzID0+ICR2LCAkZCk7Ci0rICAgICAgICApK30KLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0r ICAgIGZuIHRlc3RfdmVyc2lvbl9wYXJzZSgpIHsKLSsgICAgICAgIGNoZWNrX3RlcnNlX3BhcnNl ISB7Ci0rICAgICAgICAgICAgInJ1c3RjIDEuMTguMCIgPT4gIjEuMTguMCIsIE5vbmUsCi0rICAg ICAgICAgICAgInJ1c3RjIDEuOC4wIiA9PiAiMS44LjAiLCBOb25lLAotKyAgICAgICAgICAgICJy dXN0YyAxLjIwLjAtbmlnaHRseSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgTm9uZSwKLSsgICAgICAg ICAgICAicnVzdGMgMS4yMCIgPT4gIjEuMjAiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAx LjMiID0+ICIxLjMiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxIiA9PiAiMSIsIE5vbmUs Ci0rICAgICAgICAgICAgInJ1c3RjIDEuNS4xLWJldGEiID0+ICIxLjUuMS1iZXRhIiwgTm9uZSwK LSsgICAgICAgICAgICAicnVzdGMgMS4yMC4wICgyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMCIsIFNv bWUoIjIwMTctMDctMDkiKSwKLSsgICAgICAgICAgICAicnVzdGMgMS4yMC4wLWRldiAoMjAxNy0w Ny0wOSkiID0+ICIxLjIwLjAtZGV2IiwgU29tZSgiMjAxNy0wNy0wOSIpLAotKyAgICAgICAgICAg ICJydXN0YyAxLjIwLjAtbmlnaHRseSAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4w LW5pZ2h0bHkiLCBTb21lKCIyMDE3LTA3LTA5IiksCi0rICAgICAgICAgICAgInJ1c3RjIDEuMjAu MCAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4wIiwgU29tZSgiMjAxNy0wNy0wOSIp LAotKyAgICAgICAgICAgICJydXN0YyAxLjMwLjAtbmlnaHRseSAoM2JjMmNhN2U0IDIwMTgtMDkt MjApIiA9PiAiMS4zMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE4LTA5LTIwIiksCi0rICAgICAgICB9 OwotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF92ZXJib3NlX3ZlcnNpb25f cGFyc2UoKSB7Ci0rICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlISB7Ci0rICAgICAgICAgICAg InJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIwMTUtMDUtMTQpXG5c Ci0rICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29t bWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFjNzM1OTVjMGVcblwKLSsg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwKLSsgICAgICAgICAgICAg ICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAotKyAgICAgICAgICAgICAgICBob3N0OiB4ODZf NjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVsZWFzZTogMS4wLjAi ID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKLSsKLSsgICAgICAgICAgICAicnVzdGMg MS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAoYnVpbHQgMjAxNS0wNS0xNClcblwKLSsgICAg ICAgICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFj NzM1OTVjMGVcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwK LSsgICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAotKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAg cmVsZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKLSsKLSsgICAg ICAgICAgICAicnVzdGMgMS41MC4wIChjYjc1YWQ1ZGIgMjAyMS0wMi0xMClcblwKLSsgICAgICAg ICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDog Y2I3NWFkNWRiMDI3ODNlOGIwMjIyZmVlMzYzYzVmNjNmN2UyY2Y1YlxuXAotKyAgICAgICAgICAg ICAgICBjb21taXQtZGF0ZTogMjAyMS0wMi0xMFxuXAotKyAgICAgICAgICAgICAgICBob3N0OiB4 ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVsZWFzZTogMS41 MC4wIiA9PiAiMS41MC4wIiwgU29tZSgiMjAyMS0wMi0xMCIpLAotKwotKyAgICAgICAgICAgICJy dXN0YyAxLjUyLjAtbmlnaHRseSAoMjM0NzgxYWZlIDIwMjEtMDMtMDcpXG5cCi0rICAgICAgICAg ICAgICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IDIz NDc4MWFmZTMzZDNmMzM5YjAwMmY4NWY5NDgwNDZkODQ3NmNmYzlcblwKLSsgICAgICAgICAgICAg ICAgY29tbWl0LWRhdGU6IDIwMjEtMDMtMDdcblwKLSsgICAgICAgICAgICAgICAgaG9zdDogeDg2 XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAgICAgIHJlbGVhc2U6IDEuNTIu MC1uaWdodGx5XG5cCi0rICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjogMTIuMC4wIiA9PiAi MS41Mi4wLW5pZ2h0bHkiLCBTb21lKCIyMDIxLTAzLTA3IiksCi0rCi0rICAgICAgICAgICAgInJ1 c3RjIDEuNDEuMVxuXAotKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAgICAg ICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtub3duXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1p dC1kYXRlOiB1bmtub3duXG5cCi0rICAgICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3du LWxpbnV4LWdudVxuXAotKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjQxLjFcblwKLSsgICAg ICAgICAgICAgICAgTExWTSB2ZXJzaW9uOiA3LjAiID0+ICIxLjQxLjEiLCBOb25lLAotKwotKyAg ICAgICAgICAgICJydXN0YyAxLjQ5LjBcblwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0 Y1xuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAotKyAgICAgICAg ICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAotKyAgICAgICAgICAgICAgICBob3N0OiB4 ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVsZWFzZTogMS40 OS4wIiA9PiAiMS40OS4wIiwgTm9uZSwKLSsKLSsgICAgICAgICAgICAicnVzdGMgMS41MC4wIChG ZWRvcmEgMS41MC4wLTEuZmMzMylcblwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xu XAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAotKyAgICAgICAgICAg ICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAotKyAgICAgICAgICAgICAgICBob3N0OiB4ODZf NjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVsZWFzZTogMS41MC4w IiA9PiAiMS41MC4wIiwgTm9uZSwKLSsgICAgICAgIH07Ci0rICAgIH0KLSsKLSsgICAgZm4gcmVh ZF9zdGF0aWModmVyYm9zZTogYm9vbCwgY2hhbm5lbDogJnN0ciwgbWlub3I6IHVzaXplKSAtPiBT dHJpbmcgewotKyAgICAgICAgdXNlIHN0ZDo6ZnM6OkZpbGU7Ci0rICAgICAgICB1c2Ugc3RkOjpw YXRoOjpQYXRoOwotKyAgICAgICAgdXNlIHN0ZDo6aW86OntCdWZSZWFkZXIsIFJlYWR9OwotKwot KyAgICAgICAgbGV0IHN1YmRpciA9IGlmIHZlcmJvc2UgeyAidmVyYm9zZSIgfSBlbHNlIHsgInRl cnNlIiB9OwotKyAgICAgICAgbGV0IHBhdGggPSBQYXRoOjpuZXcoU1RBVElDX1BBVEgpCi0rICAg ICAgICAgICAgLmpvaW4oY2hhbm5lbCkKLSsgICAgICAgICAgICAuam9pbihzdWJkaXIpCi0rICAg ICAgICAgICAgLmpvaW4oZm9ybWF0ISgicnVzdGMtMS57fS4wIiwgbWlub3IpKTsKLSsKLSsgICAg ICAgIGxldCBmaWxlID0gRmlsZTo6b3BlbihwYXRoKS51bndyYXAoKTsKLSsgICAgICAgIGxldCBt dXQgYnVmX3JlYWRlciA9IEJ1ZlJlYWRlcjo6bmV3KGZpbGUpOwotKyAgICAgICAgbGV0IG11dCBj b250ZW50cyA9IFN0cmluZzo6bmV3KCk7Ci0rICAgICAgICBidWZfcmVhZGVyLnJlYWRfdG9fc3Ry aW5nKCZtdXQgY29udGVudHMpLnVud3JhcCgpOwotKyAgICAgICAgY29udGVudHMKLSsgICAgfQot KwotKyAgICBzdGF0aWMgU1RBVElDX1BBVEg6ICYnc3RhdGljIHN0ciA9IGNvbmNhdCEoZW52ISgi Q0FSR09fTUFOSUZFU1RfRElSIiksICIvc3RhdGljIik7Ci0rCi0rICAgIHN0YXRpYyBEQVRFUzog WyYnc3RhdGljIHN0cjsgNTFdID0gWwotKyAgICAgICAgIjIwMTUtMDUtMTMiLCAiMjAxNS0wNi0x OSIsICIyMDE1LTA4LTAzIiwgIjIwMTUtMDktMTUiLCAiMjAxNS0xMC0yNyIsCi0rICAgICAgICAi MjAxNS0xMi0wNCIsICIyMDE2LTAxLTE5IiwgIjIwMTYtMDItMjkiLCAiMjAxNi0wNC0xMSIsICIy MDE2LTA1LTE4IiwKLSsgICAgICAgICIyMDE2LTA3LTAzIiwgIjIwMTYtMDgtMTUiLCAiMjAxNi0w OS0yMyIsICIyMDE2LTExLTA3IiwgIjIwMTYtMTItMTYiLAotKyAgICAgICAgIjIwMTctMDEtMTki LCAiMjAxNy0wMy0xMCIsICIyMDE3LTA0LTI0IiwgIjIwMTctMDYtMDYiLCAiMjAxNy0wNy0xNyIs Ci0rICAgICAgICAiMjAxNy0wOC0yNyIsICIyMDE3LTEwLTA5IiwgIjIwMTctMTEtMjAiLCAiMjAx OC0wMS0wMSIsICIyMDE4LTAyLTEyIiwKLSsgICAgICAgICIyMDE4LTAzLTI1IiwgIjIwMTgtMDUt MDciLCAiMjAxOC0wNi0xOSIsICIyMDE4LTA3LTMwIiwgIjIwMTgtMDktMTEiLAotKyAgICAgICAg IjIwMTgtMTAtMjQiLCAiMjAxOC0xMi0wNCIsICIyMDE5LTAxLTE2IiwgIjIwMTktMDItMjgiLCAi MjAxOS0wNC0xMCIsCi0rICAgICAgICAiMjAxOS0wNS0yMCIsICIyMDE5LTA3LTAzIiwgIjIwMTkt MDgtMTMiLCAiMjAxOS0wOS0yMyIsICIyMDE5LTExLTA0IiwKLSsgICAgICAgICIyMDE5LTEyLTE2 IiwgIjIwMjAtMDEtMjciLCAiMjAyMC0wMy0wOSIsICIyMDIwLTA0LTIwIiwgIjIwMjAtMDYtMDEi LAotKyAgICAgICAgIjIwMjAtMDctMTMiLCAiMjAyMC0wOC0yNCIsICIyMDIwLTEwLTA3IiwgIjIw MjAtMTEtMTYiLCAiMjAyMC0xMi0yOSIsCi0rICAgICAgICAiMjAyMS0wMi0xMCIsCi0rICAgIF07 Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF9zdGFibGVfY29tcGF0aWJpbGl0eSgpIHsK LSsgICAgICAgIGlmIGVudjo6dmFyX29zKCJGT1JDRV9TVEFUSUMiKS5pc19ub25lKCkgJiYgZnM6 Om1ldGFkYXRhKFNUQVRJQ19QQVRIKS5pc19lcnIoKSB7Ci0rICAgICAgICAgICAgLy8gV2UgZXhj bHVkZSBgL3N0YXRpY2Agd2hlbiB3ZSBwYWNrYWdlIGB2ZXJzaW9uX2NoZWNrYCwgc28gZG9uJ3QK LSsgICAgICAgICAgICAvLyBydW4gaWYgc3RhdGljIGZpbGVzIGFyZW4ndCBwcmVzZW50IHVubGVz cyB3ZSBrbm93IHRoZXkgc2hvdWxkIGJlLgotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAg IH0KLSsKLSsgICAgICAgIC8vIEVuc3VyZSB3ZSBjYW4gcGFyc2UgYWxsIG91dHB1dCBmcm9tIGFs bCBMaW51eCBzdGFibGUgcmVsZWFzZXMuCi0rICAgICAgICBmb3IgdiBpbiAwLi5EQVRFUy5sZW4o KSB7Ci0rICAgICAgICAgICAgbGV0ICh2ZXJzaW9uLCBkYXRlKSA9ICgmZm9ybWF0ISgiMS57fS4w IiwgdiksIFNvbWUoREFURVNbdl0pKTsKLSsgICAgICAgICAgICBjaGVja190ZXJzZV9wYXJzZSEo cmVhZF9zdGF0aWMoZmFsc2UsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBkYXRlLCk7Ci0rICAg ICAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEocmVhZF9zdGF0aWModHJ1ZSwgInN0YWJsZSIs IHYpID0+IHZlcnNpb24sIGRhdGUsKTsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAjW3Rl c3RdCi0rICAgIGZuIHRlc3RfcGFyc2VfY3VycmVudCgpIHsKLSsgICAgICAgIGxldCAodmVyc2lv biwgY2hhbm5lbCkgPSAoOjpWZXJzaW9uOjpyZWFkKCksIDo6Q2hhbm5lbDo6cmVhZCgpKTsKLSsg ICAgICAgIGFzc2VydCEodmVyc2lvbi5pc19zb21lKCkpOwotKyAgICAgICAgYXNzZXJ0IShjaGFu bmVsLmlzX3NvbWUoKSk7Ci0rCi0rICAgICAgICBpZiBsZXQgT2soa25vd25fY2hhbm5lbCkgPSBl bnY6OnZhcigiS05PV05fQ0hBTk5FTCIpIHsKLSsgICAgICAgICAgICBhc3NlcnRfZXEhKGNoYW5u ZWwsIDo6Q2hhbm5lbDo6cGFyc2UoJmtub3duX2NoYW5uZWwpKTsKLSsgICAgICAgIH0KLSsgICAg fQotK30KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3Zl cnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3ZlcnNpb24ucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvdmVyc2lvbi5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrL3NyYy92ZXJzaW9uLnJzCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA3Nzk1NTIy ICswMzAwCi1AQCAtMCwwICsxLDMxNiBAQAotK3VzZSBzdGQ6OmZtdDsKLSsKLSsvLy8gVmVyc2lv biBudW1iZXI6IGBtYWpvci5taW5vci5wYXRjaGAsIGlnbm9yaW5nIHJlbGVhc2UgY2hhbm5lbC4K LSsjW2Rlcml2ZShQYXJ0aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlhbE9yZCwgT3JkKV0K LStwdWIgc3RydWN0IFZlcnNpb24odTY0KTsKLSsKLStpbXBsIFZlcnNpb24gewotKyAgICAvLy8g UmVhZHMgdGhlIHZlcnNpb24gb2YgdGhlIHJ1bm5pbmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBi ZSBkZXRlcm1pbmVkCi0rICAgIC8vLyAoc2VlIHRoZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25d KGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQot KyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpW ZXJzaW9uOwotKyAgICAvLy8KLSsgICAgLy8vIG1hdGNoIFZlcnNpb246OnJlYWQoKSB7Ci0rICAg IC8vLyAgICAgU29tZShkKSA9PiBmb3JtYXQhKCJWZXJzaW9uIGlzOiB7fSIsIGQpLAotKyAgICAv Ly8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFpbGVkIHRvIHJlYWQgdGhlIHZlcnNpb24uIikKLSsg ICAgLy8vIH07Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHJlYWQoKSAtPiBPcHRpb248VmVy c2lvbj4gewotKyAgICAgICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCi0rICAgICAgICAgICAg LmFuZF90aGVuKHwodmVyc2lvbiwgXyl8IHZlcnNpb24pCi0rICAgICAgICAgICAgLmFuZF90aGVu KHx2ZXJzaW9ufCBWZXJzaW9uOjpwYXJzZSgmdmVyc2lvbikpCi0rICAgIH0KLSsKLSsKLSsgICAg Ly8vIFBhcnNlIGEgUnVzdCByZWxlYXNlIHZlcnNpb24gKG9mIHRoZSBmb3JtCi0rICAgIC8vLyBg bWFqb3JbLm1pbm9yWy5wYXRjaFstY2hhbm5lbF1dXWApLCBpZ25vcmluZyB0aGUgcmVsZWFzZSBj aGFubmVsLCBpZgotKyAgICAvLy8gYW55LiBSZXR1cm5zIGBOb25lYCBpZiBgdmVyc2lvbmAgaXMg bm90IGEgdmFsaWQgUnVzdCB2ZXJzaW9uIHN0cmluZy4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4 YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9j aGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246 OnBhcnNlKCIxLjE4LjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFj dGx5KCIxLjE4LjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9u OjpwYXJzZSgiMS4yMC4wLW5pZ2h0bHkiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEodmVy c2lvbi5leGFjdGx5KCIxLjIwLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3Rs eSgiMS4yMC4wLWJldGEiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJz aW9uOjpwYXJzZSgiMS4zIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhh Y3RseSgiMS4zLjAiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9u OjpwYXJzZSgiMSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHko IjEuMC4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIm9u ZS50d28udGhyZWUiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJz ZSgiMS42NTUzNi4yIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFy c2UoIjEuIDIiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgi IikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuIikuaXNf bm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuMi4zLjQiKS5pc19u b25lKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBwYXJzZSh2ZXJzaW9uOiAmc3RyKSAt PiBPcHRpb248VmVyc2lvbj4gewotKyAgICAgICAgbGV0IHNwbGl0cyA9IHZlcnNpb24uc3BsaXQo Jy0nKQotKyAgICAgICAgICAgIC5udGgoMCkKLSsgICAgICAgICAgICAudW53cmFwX29yKCIiKQot KyAgICAgICAgICAgIC5zcGxpdCgnLicpCi0rICAgICAgICAgICAgLm1hcCh8c3wgcy5wYXJzZTo6 PHUxNj4oKSk7Ci0rCi0rICAgICAgICBsZXQgbXV0IG1tcCA9IFswdTE2OyAzXTsKLSsgICAgICAg IGZvciAoaSwgc3BsaXQpIGluIHNwbGl0cy5lbnVtZXJhdGUoKSB7Ci0rICAgICAgICAgICAgbW1w W2ldID0gbWF0Y2ggKGksIHNwbGl0KSB7Ci0rICAgICAgICAgICAgICAgICgzLCBfKSB8IChfLCBF cnIoXykpID0+IHJldHVybiBOb25lLAotKyAgICAgICAgICAgICAgICAoXywgT2sodikpID0+IHYs Ci0rICAgICAgICAgICAgfTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGxldCAobWFqLCBtaW4s IHBhdGNoKSA9IChtbXBbMF0sIG1tcFsxXSwgbW1wWzJdKTsKLSsgICAgICAgIFNvbWUoVmVyc2lv bjo6ZnJvbV9tbXAobWFqLCBtaW4sIHBhdGNoKSkKLSsgICAgfQotKwotKyAgICAvLy8gQ3JlYXRl cyBhIGBWZXJzaW9uYCBmcm9tIGAobWFqb3IsIG1pbm9yLCBwYXRjaClgIHZlcnNpb24gY29tcG9u ZW50cy4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBg YGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0r ICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDM1LCAwKS5leGFjdGx5KCIxLjM1 LjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDMzLCAwKS5leGFj dGx5KCIxLjMzLjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDM1 LCAxKS5leGFjdGx5KCIxLjM1LjEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21f bW1wKDEsIDEzLCAyKS5leGFjdGx5KCIxLjEzLjIiKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHVi IGZuIGZyb21fbW1wKG1ham9yOiB1MTYsIG1pbm9yOiB1MTYsIHBhdGNoOiB1MTYpIC0+IFZlcnNp b24gewotKyAgICAgICAgVmVyc2lvbigoKG1ham9yIGFzIHU2NCkgPDwgMzIpIHwgKChtaW5vciBh cyB1NjQpIDw8IDE2KSB8IHBhdGNoIGFzIHU2NCkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJu cyB0aGUgYChtYWpvciwgbWlub3IsIHBhdGNoKWAgdmVyc2lvbiBjb21wb25lbnRzIG9mIGBzZWxm YC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBy dXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAg IC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKS50b19tbXAo KSwgKDEsIDM1LCAwKSk7Ci0rICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjMz LjAiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDMzLCAwKSk7Ci0rICAgIC8vLyBhc3NlcnRfZXEh KFZlcnNpb246OnBhcnNlKCIxLjM1LjEiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDM1LCAxKSk7 Ci0rICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjEzLjIiKS51bndyYXAoKS50 b19tbXAoKSwgKDEsIDEzLCAyKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHRvX21tcCgm c2VsZikgLT4gKHUxNiwgdTE2LCB1MTYpIHsKLSsgICAgICAgIGxldCBtYWpvciA9IHNlbGYuMCA+ PiAzMjsKLSsgICAgICAgIGxldCBtaW5vciA9IHNlbGYuMCA+PiAxNjsKLSsgICAgICAgIGxldCBw YXRjaCA9IHNlbGYuMDsKLSsgICAgICAgIChtYWpvciBhcyB1MTYsIG1pbm9yIGFzIHUxNiwgcGF0 Y2ggYXMgdTE2KQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAg aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGB2ZXJzaW9uYC4KLSsgICAgLy8vCi0rICAgIC8v LyBJZiBgdmVyc2lvbmAgaXMgZ3JlYXRlciB0aGFuIGBzZWxmYCwgb3IgaWYgYHZlcnNpb25gIGlz IG5vdCBhIHZhbGlkIFJ1c3QKLSsgICAgLy8vIHZlcnNpb24gc3RyaW5nLCByZXR1cm5zIGBmYWxz ZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBg cnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0rICAgIC8vLwotKyAg ICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIikudW53cmFwKCk7Ci0r ICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjMzLjAiKSk7Ci0r ICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMCIpKTsKLSsgICAgLy8vIGFz c2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMy4yIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFz c2VydCEoIXZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoIXZl cnNpb24uYXRfbGVhc3QoIjEuNTUuMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lv biA9IFZlcnNpb246OnBhcnNlKCIxLjEyLjUiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8v LyBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEo IXZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMCIpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4g YXRfbGVhc3QoJnNlbGYsIHZlcnNpb246ICZzdHIpIC0+IGJvb2wgewotKyAgICAgICAgVmVyc2lv bjo6cGFyc2UodmVyc2lvbikKLSsgICAgICAgICAgICAubWFwKHx2ZXJzaW9ufCBzZWxmID49ICZ2 ZXJzaW9uKQotKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCi0rICAgIH0KLSsKLSsgICAg Ly8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYHZl cnNpb25gLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBsZXNzIHRoYW4gYHNl bGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAotKyAgICAvLy8gdmVyc2lv biBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUK LSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6 VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNl KCIxLjM1LjAiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24u YXRfbW9zdCgiMS4zNS4xIikpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEu NTUuMCIpKTsKLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjM1LjAiKSk7Ci0r ICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9tb3N0KCIxLjMzLjAiKSk7Ci0r ICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X21vc3QoIjEuMTMuMiIpKTsKLSsgICAgLy8vIGBg YAotKyAgICBwdWIgZm4gYXRfbW9zdCgmc2VsZiwgdmVyc2lvbjogJnN0cikgLT4gYm9vbCB7Ci0r ICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQotKyAgICAgICAgICAgIC5tYXAofHZlcnNp b258IHNlbGYgPD0gJnZlcnNpb24pCi0rICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKLSsg ICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlzIGV4YWN0bHkgZXF1 YWwgdG8gYHZlcnNpb25gLgotKyAgICAvLy8KLSsgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBub3Qg ZXF1YWwgdG8gYHNlbGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAotKyAg ICAvLy8gdmVyc2lvbiBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KLSsgICAgLy8vCi0rICAgIC8v LyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2UgdmVy c2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZl cnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3Nl cnQhKHZlcnNpb24uZXhhY3RseSgiMS4zNS4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2Vy dCEoIXZlcnNpb24uZXhhY3RseSgiMS4zMy4wIikpOwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lv bi5leGFjdGx5KCIxLjM1LjEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHko IjEuMTMuMiIpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gZXhhY3RseSgmc2VsZiwgdmVy c2lvbjogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQot KyAgICAgICAgICAgIC5tYXAofHZlcnNpb258IHNlbGYgPT0gJnZlcnNpb24pCi0rICAgICAgICAg ICAgLnVud3JhcF9vcihmYWxzZSkKLSsgICAgfQotK30KLSsKLStpbXBsIGZtdDo6RGlzcGxheSBm b3IgVmVyc2lvbiB7Ci0rICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikg LT4gZm10OjpSZXN1bHQgewotKyAgICAgICAgbGV0IChtYWpvciwgbWlub3IsIHBhdGNoKSA9IHNl bGYudG9fbW1wKCk7Ci0rICAgICAgICB3cml0ZSEoZiwgInt9Lnt9Lnt9IiwgbWFqb3IsIG1pbm9y LCBwYXRjaCkKLSsgICAgfQotK30KLSsKLStpbXBsIGZtdDo6RGVidWcgZm9yIFZlcnNpb24gewot KyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0 IHsKLSsgICAgICAgIC8vIFdlIGRvbid0IHVzZSBgZGVidWdfKmAgYmVjYXVzZSBpdCdzIG5vdCBh dmFpbGFibGUgaW4gYDEuMC4wYC4KLSsgICAgICAgIHdyaXRlIShmLCAiVmVyc2lvbih7Oj99LCB7 Oj99KSIsIHNlbGYuMCwgc2VsZi50b19tbXAoKSkKLSsgICAgfQotK30KLSsKLSsjW2NmZyh0ZXN0 KV0KLSttb2QgdGVzdHMgewotKyAgICB1c2Ugc3VwZXI6OlZlcnNpb247Ci0rCi0rICAgIG1hY3Jv X3J1bGVzISBhc3NlcnRfdG9fbW1wIHsKLSsgICAgICAgIC8vIFdlIGRvbid0IHVzZSBgLmludG86 OjxPcHRpb248Xz4+YCBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiAxLjAuCi0rICAgICAg ICAvLyBXZSBkb24ndCB1c2UgdGhlIG1lc3NhZ2UgcGFydCBvZiBgYXNzZXJ0IWAgZm9yIHRoZSBz YW1lIHJlYXNvbi4KLSsgICAgICAgICgkczpleHByLCBOb25lKSA9PiAoCi0rICAgICAgICAgICAg YXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgkcyksIE5vbmUpOwotKyAgICAgICAgKTsKLSsgICAg ICAgICgkczpleHByLCAkbW1wOmV4cHIpID0+ICgKLSsgICAgICAgICAgICBhc3NlcnRfZXEhKFZl cnNpb246OnBhcnNlKCRzKS5tYXAofHZ8IHYudG9fbW1wKCkpLCBTb21lKCRtbXApKTsKLSsgICAg ICAgICkKLSsgICAgfQotKwotKyAgICBtYWNyb19ydWxlcyEgYXNzZXJ0X2Zyb21fbW1wIHsKLSsg ICAgICAgICgoJHg6ZXhwciwgJHk6ZXhwciwgJHo6ZXhwcikgPT4gJHM6ZXhwcikgPT4gewotKyAg ICAgICAgICAgIGFzc2VydF9lcSEoU29tZShWZXJzaW9uOjpmcm9tX21tcCgkeCwgJHksICR6KSks IFZlcnNpb246OnBhcnNlKCRzKSk7Ci0rICAgICAgICB9OwotKyAgICB9Ci0rCi0rICAgICNbdGVz dF0KLSsgICAgZm4gdGVzdF9zdHJfdG9fbW1wKCkgewotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEo IjEiLCAoMSwgMCwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMiIsICgxLCAyLCAw KSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xOC4wIiwgKDEsIDE4LCAwKSk7Ci0rICAg ICAgICBhc3NlcnRfdG9fbW1wISgiMy4xOS4wIiwgKDMsIDE5LCAwKSk7Ci0rICAgICAgICBhc3Nl cnRfdG9fbW1wISgiMS4xOS4wLW5pZ2h0bHkiLCAoMSwgMTksIDApKTsKLSsgICAgICAgIGFzc2Vy dF90b19tbXAhKCIxLjEyLjIzNDkiLCAoMSwgMTIsIDIzNDkpKTsKLSsgICAgICAgIGFzc2VydF90 b19tbXAhKCIwLjEyIiwgKDAsIDEyLCAwKSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4x Mi41IiwgKDEsIDEyLCA1KSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xMiIsICgxLCAx MiwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEiLCAoMSwgMCwgMCkpOwotKyAgICAg ICAgYXNzZXJ0X3RvX21tcCEoIjEuNC40LW5pZ2h0bHkgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSki LCAoMSwgNCwgNCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNTg4NzkuNDQ3OC1kZXYi LCAoMSwgNTg4NzksIDQ0NzgpKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjU4ODc5LjQ0 NzgtZGV2IChkODQ2OTNiOTMgMjAxNy0wNy0wOSkpIiwgKDEsIDU4ODc5LCA0NDc4KSk7Ci0rICAg IH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X21hbGZvcm1lZCgpIHsKLSsgICAgICAg IGFzc2VydF90b19tbXAhKCIxLjY1NTM2LjIiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19t bXAhKCItMS4yLjMiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLiAyIiwgTm9u ZSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRf dG9fbW1wISgiICIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIi4iLCBOb25lKTsK LSsgICAgICAgIGFzc2VydF90b19tbXAhKCJvbmUiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90 b19tbXAhKCIxLiIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMi4zLjQuNS42 IiwgTm9uZSk7Ci0rICAgIH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X2Zyb21fbW1w KCkgewotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTgsIDApID0+ICIxLjE4LjAiKTsK LSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDMsIDE5LCAwKSA9PiAiMy4xOS4wIik7Ci0rICAg ICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxOSwgMCkgPT4gIjEuMTkuMCIpOwotKyAgICAgICAg YXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDIzNDkpID0+ICIxLjEyLjIzNDkiKTsKLSsgICAgICAg IGFzc2VydF9mcm9tX21tcCEoKDAsIDEyLCAwKSA9PiAiMC4xMiIpOwotKyAgICAgICAgYXNzZXJ0 X2Zyb21fbW1wISgoMSwgMTIsIDUpID0+ICIxLjEyLjUiKTsKLSsgICAgICAgIGFzc2VydF9mcm9t X21tcCEoKDEsIDEyLCAwKSA9PiAiMS4xMiIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgo MSwgMCwgMCkgPT4gIjEiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDQsIDQpID0+ ICIxLjQuNCIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgNTg4NzksIDQ0NzgpID0+ ICIxLjU4ODc5LjQ0NzgiKTsKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3Rf Y29tcGFyaXNvbnMoKSB7Ci0rICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIx LjE4LjAiKS51bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjE4 LjAiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIuMCIpKTsKLSsg ICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4xMiIpKTsKLSsgICAgICAgIGFzc2Vy dCEodmVyc2lvbi5hdF9sZWFzdCgiMSIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9t b3N0KCIxLjE4LjEiKSk7Ci0rICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTku MCIpKTsKLSsgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOC4xIikpOwotKwot KyAgICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4yMC4wLW5pZ2h0bHkiKS51 bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtYmV0YSIp KTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtbmlnaHRseSIpKTsK LSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAiKSk7Ci0rICAgICAgICBh c3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTkiKSk7Ci0rCi0rICAgICAgICBsZXQgdmVyc2lv biA9IFZlcnNpb246OnBhcnNlKCIxLjMiKS51bndyYXAoKTsKLSsgICAgICAgIGFzc2VydCEodmVy c2lvbi5leGFjdGx5KCIxLjMuMCIpKTsKLSsgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5 KCIxLjMuMC1zdGFibGUiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4z IikpOwotKyAgICAgICAgYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjUuMC1zdGFibGUiKSk7 Ci0rCi0rICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxIikudW53cmFwKCk7 Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7Ci0rICAgICAgICBh c3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wIikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9u LmV4YWN0bHkoIjEiKSk7Ci0rCi0rICAgICAgICBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCJvbmUu dHdvLnRocmVlIikuaXNfbm9uZSgpKTsKLSsgICAgfQotKwotKyAgICBtYWNyb19ydWxlcyEgcmVm bGV4aXZlX2Rpc3BsYXkgewotKyAgICAgICAgKCRzOmV4cHIpID0+ICgKLSsgICAgICAgICAgICBh c3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRzKS51bndyYXAoKS50b19zdHJpbmcoKSwgJHMpOwot KyAgICAgICAgKQotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gZGlzcGxheSgpIHsK LSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4wLjAiKTsKLSsgICAgICAgIHJlZmxleGl2 ZV9kaXNwbGF5ISgiMS4yLjMiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4xMi4x NDM4Iik7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjEuNDQuMCIpOwotKyAgICAgICAg cmVmbGV4aXZlX2Rpc3BsYXkhKCIyLjQ0LjAiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5 ISgiMjM0NTkuMjg5MjMuMzQ4MyIpOwotKyAgICB9Ci0rfQoKZGlmZiAtLWdpdCBhL3NlYW1vbmtl eS0yLjUzLjI0LW1vemlsbGEtMTg2NjE5MS5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjI0LW1vemls bGEtMTg2NjE5MS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTcx YWIxCi0tLSAvZGV2L251bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0xODY2MTkx LnBhdGNoCkBAIC0wLDAgKzEsMTM4OCBAQAorCisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBVc2Vy IEhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPgorIyBEYXRlIDE3Mjk4NTI4OTUg MAorIyBOb2RlIElEIDhlYzZjY2Q2NDQ3YWEyZjhlZDE3NWMxNmIyNzJhYzdkZDQ2ZTk0NmIKKyMg UGFyZW50ICBhMGE1M2EzZmU2YjBlNDcyMDQwN2E4ZjdmZWE4NWU4Y2ZjYmJkMDkzCitCdWcgMTg2 NjE5MSAtIEltcGxlbWVudCBHQjE4MDMwLTIwMjIgY2hhbmdlcyB0byB0aGUgRW5jb2RpbmcgU3Rh bmRhcmQuIHI9c3VwcGx5LWNoYWluLXJldmlld2VycyxlbWsKKworRGlmZmVyZW50aWFsIFJldmlz aW9uOiBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29tL0QyMjI5MjgKKwor ZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9DYXJnby5sb2NrCistLS0gYS9DYXJnby5sb2NrCisr KysgYi9DYXJnby5sb2NrCitAQCAtNjE0LDE5ICs2MTQsMTkgQEAgdmVyc2lvbiA9ICIwLjEuMCIK KyBkZXBlbmRlbmNpZXMgPSBbCisgICJlbmNvZGluZ19ycyIsCisgICJuc2Vycm9yIiwKKyAgIm5z c3RyaW5nIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVuY29kaW5nX3JzIgorLXZl cnNpb24gPSAiMC44LjM0IgorK3ZlcnNpb24gPSAiMC44LjM1IgorIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKy1jaGVja3N1 bSA9ICJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQwNjMxNjgxODQ3ZmE3YjZmMmVhYTdkYWI3 NjE5OTQzYmM0ZjU5IgorK2NoZWNrc3VtID0gIjc1MDMwZjNjNGY0NWRhZmQ3NTg2ZGQ2NzgwOTY1 YThjN2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMiCisgZGVwZW5kZW5jaWVzID0gWwor ICAiYW55X2FsbF93b3JrYXJvdW5kIiwKKyAgImNmZy1pZiAxLjAuMCIsCisgXQorIAorIFtbcGFj a2FnZV1dCisgbmFtZSA9ICJlbnZfbG9nZ2VyIgorIHZlcnNpb24gPSAiMC41LjEzIgorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24g Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAt MSwxICsxLDEgQEAKKy17ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJm YjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZ UklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3 NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjIyYTRkMjEwYzkyZGFlOWYzMmM2OTQ0ZWYz NDBlZThmZGQwMjdmOTljMDgxNTc3ZTg5MDcxMjNlMmE5MzM4M2UiLCJJZGVhcy5tZCI6ImI3NDUy ODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlk YmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1Njgx NDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNj OTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJM SUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5 MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiIxZDA4YWVmY2I5MmFmYTgxYjE4 MTU0MDQ5YzlhYmJjYWQ0NTQwYTIzZjcxNzJlOWY5YmJlZDVhZjMzZjFhMDg3IiwiY2kvbWlyaS5z aCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5 ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0 MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJl ZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZi YWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzcz ZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiJjMWI1MjJi NWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0YjIwNmYyMmI1ZjY1MzY1NjA2 IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFm MWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2 ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJm ZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFk YjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQi OiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFl ZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0 Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTkt MTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNl MjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2 ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lT Ty04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNk MmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4 ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJk b2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2Nk ZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4 ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2Yz YSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3 MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIx NzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAw YmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNl NjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgu dHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1 MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3 ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0 IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1 M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4 NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50 eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1 NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEw MTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0 IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFi YzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhhOGYwN2EyZDg2NTlmNjllZTgx ZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2IiLCJkb2MvbWFjaW50b3NoLnR4 dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0 MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEy ODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dz LTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4 OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVh MTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRv Yy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2Qy NTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEz ODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3 MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAy NTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUu dHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThj YTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQz MDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5k b3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3 MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2 MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIs ImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRi MzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6 IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZm NTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0 YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVu Y29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1ZmRjOGU4YTgwZmNmMjRiM2Jl OTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5 ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9h c2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYz ZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVh MTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6 IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFlYTMyOTllODM5YTFmNThiNDJk MGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2 Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1 YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2 YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4MGY4NTIwZjBjYTliMTYxODY2 ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hhbmRsZXMucnMiOiJiMDhjZWYx ZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVlNDU5M2VhYThjNDIwOGU5ZmUy Iiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNi NmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIucnMiOiI4MzRmNDRiNjcw ZWM0OGVlODJjMGUxMjIyM2QxNTY3MzEzZmRkOWY4OGJjYTVmNGIxMTdjODJjMTgyOGY1NTlmIiwi c3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRm NjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiOTQ4NTcxMTM3ZDNiMTUxZGY4 ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQxZDZhZGFiZSIsInNyYy9yZXBs YWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFk OGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWEx MmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9z aW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3M2NkMzlhNzUyMDY3YzExNDI1ZDZiNDZlNWRh NDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9zaW5nbGVfYnl0ZS5ycyI6IjNhZDg3MTE2ZmIz Mzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2MTk0ZWQwOGY2ZDZjY2YiLCJz cmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRjNzE3MzExODg5YzYzODk0MDI2 ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9p bl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNkYmZlMzViODFjNGZjYmRlYWQ5 M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXQudHh0IjoiNjE5M2Nh OTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYwZjI0NTQwOTcyOTY3MjNhMGIx MyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2NTY3NjkxZjU1N2RmMTQ0ZjZj YzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4YmUxZmMiLCJzcmMvdGVzdF9k YXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0ZTY4NTYyMmE3NTJmZGM3Mjc2 M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVm LnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIyYWUyZTIwNDk4ZmRiZjgwMDVh NDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0IjoiZTdmMzJlMDI2 ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5MmUxNThiNGRlY2IwYTFhMyIs InNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5MDc4NTc5ODBiMjBiOGU5ZTNi NTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0OTI0ZSIsInNyYy90ZXN0X2Rh dGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJkN2Q3ZjNiOWU1MzYxYTdmZjlm N2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3Jl Zi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2ZmRmZjY1MWQyMmU2ZTY5OWZk MDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50eHQiOiJmMDIwOGQ1 MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNkOTJjMjcwMWYwYzMzNjRkYWMx Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiNjgxOWZlNDc2MjdlNGVhMDEw MjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1NWJjNmMwNyIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgzNGUyNWRiNTQ2NDZmYmY0YzQx NTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNyYy90ZXN0X2RhdGEvaXNvXzIw MjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1 ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291 dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5Yzg5YWNjMjEyODNlODg2ODM2 Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6 Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIxMDBiNmI5YTg1MDc0OTgwOWU5 NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0IjoiNmRmMzAzMDU1M2ZmYjBh NjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNlM2MzZGE4MjRjYyIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0 NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvamlz MDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRjM2M1YWRkMWNkMjdiNmJkNGNl MWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4 dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJkZmU4ODU5YjhiMTdjYTI3NjFm ZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0IjoiYzAxMWYwZGQ3MmJk N2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYyYjQxNTg1MmVlYjlmZSIsInNy Yy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4YjNkMmY3M2U3MDkyYTdmNTA1 YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUwNiIsInNyYy90ZXN0X2RhdGEv c2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYzZjUwMzg5OTQwMmNiN2Y3OTc5 MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9y ZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3MDhiN2MzOGQzYzVlYzI5MjUx NjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQiOiI1ZmJj NDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5YzllYTk5MTMwMjcxMmY2OTQy NmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQiOiI0NjYzMjJjNmZlZDgy ODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3OTY4NjY0OWI0ODFmIiwic3Jj L3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIy YzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3 MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0 ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4 MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdm MWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNy Yy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEz NWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5lZC5ycyI6Ijk0NTZjYTQ2 MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUxMzkyZDhhYzQ4NTE5ZDNmYWUi fSwicGFja2FnZSI6ImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0ZDA2MzE2ODE4NDdmYTdiNmYy ZWFhN2RhYjc2MTk5NDNiYzRmNTkifQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisreyJm aWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBl YWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDVi YjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIs IkNhcmdvLnRvbWwiOiJkNzQwNWQyYmNmOTljZjk3MjkwNzU0NzNjNDVmNjc3NjMwZjRjMTk0N2M4 YmE5NzU3ZGI2MDdmMjAyNWE3ZGEyIiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRl NTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFD SEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAw MzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZk MTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4 MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4 N2QxYTUwIiwiUkVBRE1FLm1kIjoiOTgyNjEzN2VkNDI5N2JlM2IyMDE5Yjc0YThmNjExMWE3OTZm ZjUwN2JkZTQxZGYyZjIwNzEyNTM5NzA0YjllOSIsImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUz YmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9j L0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFj ZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQw YTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMt S1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMz YzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiODIyOWU1OTA3NmQ4YmRkYjAxODY1Y2Rj ZjZhZmRhMzUzMzIzOGQ3YzIzZDk3Zjk4ODIwZjllM2IyZDEzNTA1ZCIsImRvYy9JQk04NjYudHh0 IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2Ux MzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2Iy YzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5 LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4 MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3 MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9J U08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAw NTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRh YWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2Ei LCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRh NWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4 Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVk NTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0 OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0 IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1Njgw ZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3 NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTkt Ni50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1 M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4 ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08t ODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYx YzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3 YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJk b2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZh OWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAy NDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2Mv U2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhk NTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2Jh YTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRv Yy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2 Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMw MTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2Mv Z2IxODAzMC50eHQiOiI2N2EwMTY2NWM3NTUwNTMzMGIwZmU1YjhkODhkNTg3M2Q4Y2U1NTVhMTQ1 Yzc3ZGNhMDRhNDY3ZmEyNjgwNzQ0IiwiZG9jL21hY2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2Njcx MWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9j L3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2Uz MzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2 YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhk MzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1 NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4 dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQw YTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3 YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93 cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNk ZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDcz MDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJk b2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1 OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMy OGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAx OGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3Yzkz NzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQu dHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJm YzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2Ez ZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gt dXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0 YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Ijoi NmYzNGE4NDU3ODVmNTM0MjVhY2NmMzA3NTllZGM1NjY4NzNmY2IwYzIxODg2NDhlMDdiMDljODk4 ZjM5ZGRkYiIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3 ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWkucnMiOiI1ODhlMzhi MDFlNjY2ZDVlNzQ2MjYxN2VhN2U5MGExMDhkNjA4ZGVjOWUwMTZmM2QyNzNhYzA3NDRhZjJlMDVk Iiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIy NjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiJiOTNmMzQwMjVmZTVjNmE4 NWI0YjlmMDAzN2JmNTg5NjEzNTJiZjE5YzgzZjkxYjA5YjM1ZWI4NDk1NjI1ZWVjIiwic3JjL2V1 Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVk M2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNm YWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMw LnJzIjoiODljZDZhZTIyNDdhZGQzZjM0NzFhNjk5YmMxMjExM2E5YWUyZjZiOTFhNTIyM2FiYmYx NWI2OGExMzUzN2RjZCIsInNyYy9nYjE4MDMwXzIwMjIucnMiOiIzYzJlMDY0OTJjNWUwMGZjZDM5 NTE1ZTRhZjRjNTYwZDhjZWU1YzMxZTdhN2UzODhkYjY4MmJjOWVlMzNlZTMyIiwic3JjL2hhbmRs ZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVlNDU5 M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0 YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIu cnMiOiJjNGQ5ZmExYzQzMTA1ZTIzMTAxMjJmMWI5MTk3MTI1MDMyZTYwN2ZlNmY3OWJjMjI3Njli MzQwZGU3NmUyNDMwIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5 MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiOTQ4 NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQxZDZh ZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQz ZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoi Njk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQw ZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3M2NkMzlhNzUyMDY3 YzExNDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9zaW5nbGVfYnl0ZS5y cyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2MTk0 ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiYTVhZTI5MDc4NjYxMGM3 ZmFjZGJiMWQwNmJlNjgxNWU4YmI4MWQ2OGRmYTczODBlZGM3ZGRiNmI4YzdlNDEyZSIsInNyYy90 ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiNTI3MzNkOTk3MGZiODk4N2YwMTRmYTBlYWMyNzky MjUwMTIzY2Y1ODNiMzYzYmViMmNlN2IzYzU1ZTNkYzU1NSIsInNyYy90ZXN0X2RhdGEvYmlnNV9v dXQudHh0IjoiNTc0MjBjYTQxYTY2OWM5NDk3MzhjODRjYWI2MjAwMjA5NTk1NzJkMmVlOTdiNGUw NTk0MDViZmUyNmE3OWI2ZCIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjAwZTVm NjdjMjIyZGQ1Y2QzYmIxNzM5Mjc2OTEwYjhmMDAzMmY0NTRjYmE3Y2Y3YzNlYWEyNTVhNTY0MTg4 ZDAiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiIyMTUzNGVjODdlODJkNzg1ZDEyOGY5 ODA5MDJkMTNmYWI2ZDlkZWExNWM2OWE5OTFmNDA5ZDliMGFmZDFjODUyIiwic3JjL3Rlc3RfZGF0 YS9ldWNfa3JfaW5fcmVmLnR4dCI6ImIzMDA5ZTZhOTQ5NjdkZjFmMTEzNWM2NmYwMDU2MTBiZWJh ZDY2NjZkNjM0YWVjNzJkMmFkNzdjMzIxMWJkYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQu dHh0IjoiMjAyMDViMGI1YmU0ZjU3OTI3MTE5M2I1YmZiYzU0OWE2MWE5ZmQ1MjE3YzMzZWVjZmE2 MTc4NGEzZmZlMmU5ZCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYjVmNTY2 MjM3ZjhkNGVmNGQwM2FkMjYxMzVjYTk3ZGZkNzM5ODYwOGE4MjE2NWJkNDg1M2I1MTM0YWIyMmNi NSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiIwZGQxZmJmMDM2MDkzMGRhYWZkY2U3 ZTY3NjE4NTIwMDVhOGY5MmY3OTEwMTgwZGYxOWEwNzBiNmMzYzU5ZGVlIiwic3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX2luX3JlZi50eHQiOiJmM2VhZWExMTE1ODU3MDU0Y2YzMGY4YmExODIxOWU3MjM3 N2YyYTRhZmQ4NDhjY2YyMjM3NzBkNzVhYTQyNTFkIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291 dC50eHQiOiI3MTg0ZmU5NTkyNjA5NTk3ZDU1YzI3MzM2MDZiNGM0YjFhMThiNzliMjQ1MzNlMWEx NmExNGZmOTJlN2QyYjU1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiMjNi Yjg1MGRkYzY5YWFmMWJkZmVhYmUwNWExMmQ5M2Y2MTRlNTU2MGRhYzg3OWQ1ZjAyOTI5ZWU0YTdj MDZjNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiOThmYjgyMzUzMGEzMGE3 NmViMGJhN2FiNmFjNzk2OTU5ZTg4NjljMWVjMTQzZjAxOGExOTY0NTgxYWU4MTNhYSIsInNyYy90 ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6ImRmODIxNjZkMmUwMWJiNDQ2MjExZDdl NDZmMzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkzYzQwOTZkMTEyMTAiLCJzcmMvdGVzdF9kYXRh L2lzb18yMDIyX2pwX291dC50eHQiOiJiZWY4ZWI0ODA0ZWQwODQzYjlkZmZkZDFkMTY4NzM4NjM1 Y2M3N2Y4ZDA5MjliZWIyNTMyYjY4NjMxOGRkYWU2Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9q cF9vdXRfcmVmLnR4dCI6ImIyMjFiMzZiMmJjZTQ5ZDQ5YjYyMGRjOGJhODBkNzdiYWM3NGU4NjYw YTg2YTExNjI4ZTc5YjY3ZjFkOTg5NjQiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0Ijoi M2MxYTdhYWFkYTAwZDZmZmY0MWU2MGJkNzU4OWQ3YWU5NGFmYWY1NjI3NTliMTE2OTU4YjFkODQ3 MTFkMTdiNiIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAx YmI0NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNy Yy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiYTYxODhiNjdlYjAwYmE5ODBjYjgzMDU2MTg2 Yzg5YmNkZGRjMWIwMjEwYWY5YWZhNzhlZDFjOWI3YTA5ODk1MCIsInNyYy90ZXN0X2RhdGEvamlz MDIwOF9vdXRfcmVmLnR4dCI6ImU3NWE5ODZmZTVlNzhlNjRiZjhmYWZkNzM5MmFlOTZlZTBjYjBh NGIyZTdlZjJmZTcyMmIzY2FhY2YzZTJmNzAiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0 IjoiOWVkYTc2NjAwMjY0NmEyNzMxMDQ1N2M2NjE4MzI0MjliZWZmOTA4OWQyNzAzMzU1ODEyYzRj YWMzMGQ4MDBiNSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiZmNmNzRjNThk MmNiZTliM2YzZGI0ZmE5ZWZmMjZlMDlmNWU5NjQ0MDk3Yzc4NjE0YzAzMTc3ZTkzODk4OGQwMyIs InNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6ImU2NWRmNzQ2YmU5MDM1OWU3MDQyMjg2 ODUyMmE3YWEzZThlZDIwZTBkNGMwY2Y5OTk1ZDlkZTI0OGJmOTMzODgiLCJzcmMvdGVzdF9kYXRh L3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiMTNiMTVhZWQ2NGU5ZTdjYjM1ZTZhNzQwYjY3NDEzZjBj Mjg1ZmRhOTQ0ZjQ4MTRkNDVhNzYxOWVhMzM4ZmI1ZSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlz X291dC50eHQiOiIxOTJkMGE0YThjZTVkMGY5MDRjNWNiMjgzZGZiOTc0NTc3ZWU2NjdjZjFlNzE5 NTVhNmRkNmFlY2UyYjM1NGVmIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQi OiJjYjZkNTBiMGMxMWJhZDFkMWYxZmNjMDJkNzc5NjcyYThiOWEyNTA5Y2JiYWZkYzYzOTJhY2Vi NDljOGI0MjY4Iiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVm YjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0 aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIx NjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0 N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJz IjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2 Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMx ZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5l ZC5ycyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUxMzky ZDhhYzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6Ijc1MDMwZjNjNGY0NWRhZmQ3NTg2ZGQ2NzgwOTY1 YThjN2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMifQorXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJn by50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTgsMTggKzgsMjMgQEAKKyAjIElmIHlv dSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUgdGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28u dG9tbAorICMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRpZmZlcmVudCAoYW5kIG11Y2ggbW9yZSBy ZWFzb25hYmxlKS4KKyAjIFNlZSBDYXJnby50b21sLm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250 ZW50cy4KKyAKKyBbcGFja2FnZV0KKyBlZGl0aW9uID0gIjIwMTgiCisgcnVzdC12ZXJzaW9uID0g IjEuMzYiCisgbmFtZSA9ICJlbmNvZGluZ19ycyIKKy12ZXJzaW9uID0gIjAuOC4zNCIKKyt2ZXJz aW9uID0gIjAuOC4zNSIKKyBhdXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2 b25lbi5maT4iXQorK2J1aWxkID0gZmFsc2UKKythdXRvYmlucyA9IGZhbHNlCisrYXV0b2V4YW1w bGVzID0gZmFsc2UKKythdXRvdGVzdHMgPSBmYWxzZQorK2F1dG9iZW5jaGVzID0gZmFsc2UKKyBk ZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBFbmNv ZGluZyBTdGFuZGFyZCIKKyBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMv IgorIGRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyByZWFk bWUgPSAiUkVBRE1FLm1kIgorIGtleXdvcmRzID0gWworICAgICAiZW5jb2RpbmciLAorICAgICAi d2ViIiwKKyAgICAgInVuaWNvZGUiLAorQEAgLTMyLDE2ICszNywyMCBAQCBjYXRlZ29yaWVzID0g WworICAgICAiaW50ZXJuYXRpb25hbGl6YXRpb24iLAorIF0KKyBsaWNlbnNlID0gIihBcGFjaGUt Mi4wIE9SIE1JVCkgQU5EIEJTRC0zLUNsYXVzZSIKKyByZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0 aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycyIKKyAKKyBbcHJvZmlsZS5yZWxlYXNlXQorIGx0 byA9IHRydWUKKyAKKytbbGliXQorK25hbWUgPSAiZW5jb2RpbmdfcnMiCisrcGF0aCA9ICJzcmMv bGliLnJzIgorKworIFtkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5kXQorIHZlcnNpb24g PSAiMC4xLjAiCisgb3B0aW9uYWwgPSB0cnVlCisgCisgW2RlcGVuZGVuY2llcy5jZmctaWZdCisg dmVyc2lvbiA9ICIxLjAiCisgCisgW2RlcGVuZGVuY2llcy5zZXJkZV0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvUkVBRE1FLm1kCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L1JFQURNRS5tZAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQK K0BAIC0xMDMsMTcgKzEwMywxNyBAQCBGb3IgbWFwcGluZ3MgdG8gYW5kIGZyb20gV2luZG93cyBj b2RlIHBhCisgVGhpcyBjcmF0ZSBkb2VzIG5vdCBzdXBwb3J0IHNpbmdsZS1ieXRlIERPUyBlbmNv ZGluZ3MgdGhhdCBhcmVuJ3QgcmVxdWlyZWQgYnkKKyB0aGUgV2ViIFBsYXRmb3JtLCBidXQgdGhl IFtgb2VtX2NwYF0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL29lbV9jcCkgY3JhdGUgZG9lcy4K KyAKKyAjIyBQcmVwYXJpbmcgVGV4dCBmb3IgdGhlIEVuY29kZXJzCisgCisgTm9ybWFsaXppbmcg dGV4dCBpbnRvIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtIEMgcHJpb3IgdG8gZW5jb2Rpbmcg dGV4dCBpbnRvCisgYSBsZWdhY3kgZW5jb2RpbmcgbWluaW1pemVzIHVubWFwcGFibGUgY2hhcmFj dGVycy4gVGV4dCBjYW4gYmUgbm9ybWFsaXplZCB0bworIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBG b3JtIEMgdXNpbmcgdGhlCistW2B1bmljLW5vcm1hbGBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRl cy91bmljLW5vcm1hbCkgY3JhdGUuCisrW2BpY3Vfbm9ybWFsaXplcmBdKGh0dHBzOi8vY3JhdGVz LmlvL2NyYXRlcy9pY3Vfbm9ybWFsaXplcikgY3JhdGUuCisgCisgVGhlIGV4Y2VwdGlvbiBpcyB3 aW5kb3dzLTEyNTgsIHdoaWNoIGFmdGVyIG5vcm1hbGl6aW5nIHRvIFVuaWNvZGUgTm9ybWFsaXph dGlvbgorIEZvcm0gQyByZXF1aXJlcyB0b25lIG1hcmtzIHRvIGJlIGRlY29tcG9zZWQgaW4gb3Jk ZXIgdG8gbWluaW1pemUgdW5tYXBwYWJsZQorIGNoYXJhY3RlcnMuIFZpZXRuYW1lc2UgdG9uZSBt YXJrcyBjYW4gYmUgZGVjb21wb3NlZCB1c2luZyB0aGUKKyBbYGRldG9uZWBdKGh0dHBzOi8vY3Jh dGVzLmlvL2NyYXRlcy9kZXRvbmUpIGNyYXRlLgorIAorICMjIExpY2Vuc2luZworIAorQEAgLTM4 NiwyMCArMzg2LDE5IEBAIFRvIHJlZ2VuZXJhdGUgdGhlIGdlbmVyYXRlZCBjb2RlOgorIAorICAq IEhhdmUgUHl0aG9uIDIgaW5zdGFsbGVkLgorICAqIENsb25lIFtgaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL2VuY29kaW5nX2NgXShodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2Rp bmdfYykKKyAgICBuZXh0IHRvIHRoZSBgZW5jb2RpbmdfcnNgIGRpcmVjdG9yeS4KKyAgKiBDbG9u ZSBbYGh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9jb2RlcGFnZWBdKGh0dHBzOi8vZ2l0aHVi LmNvbS9oc2l2b25lbi9jb2RlcGFnZSkKKyAgICBuZXh0IHRvIHRoZSBgZW5jb2RpbmdfcnNgIGRp cmVjdG9yeS4KKyAgKiBDbG9uZSBbYGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZW5jb2Rpbmdg XShodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2VuY29kaW5nKQorICAgIG5leHQgdG8gdGhlIGBl bmNvZGluZ19yc2AgZGlyZWN0b3J5LgorLSAqIENoZWNrb3V0IHJldmlzaW9uIGBiZTMzMzc0NTBl N2RmMWM0OWRjYTc4NzIxNTNjNGM0NjcwZGQ4MjU2YCBvZiB0aGUgYGVuY29kaW5nYCByZXBvLgor KyAqIENoZWNrb3V0IHJldmlzaW9uIGAxZDUxOWJmOGU1NTU1Y2VmNjRjZjNhNzEyNDg1ZjQxY2Qx YTZhOTkwYCBvZiB0aGUgYGVuY29kaW5nYCByZXBvLgorICAgIChOb3RlOiBgZjM4MTM4OWAgd2Fz IHRoZSByZXZpc2lvbiBvZiBgZW5jb2RpbmdgIHVzZWQgZnJvbSBiZWZvcmUgdGhlIGBlbmNvZGlu Z2AgcmVwbworLSAgIGxpY2Vuc2UgY2hhbmdlLiBTbyBmYXIsIG9ubHkgb3V0cHV0IGNoYW5nZWQg c2luY2UgdGhlbiBoYXMgYmVlbiB1cGRhdGVkIHRvCistICAgdGhlIG5ldyBsaWNlbnNlIGxlZ2Vu ZC4pCisrICAgbGljZW5zZSBjaGFuZ2UuKQorICAqIFdpdGggdGhlIGBlbmNvZGluZ19yc2AgZGly ZWN0b3J5IGFzIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgcnVuCisgICAgYHB5dGhvbiBnZW5lcmF0 ZS1lbmNvZGluZy1kYXRhLnB5YC4KKyAKKyAjIyBSb2FkbWFwCisgCisgLSBbeF0gRGVzaWduIHRo ZSBsb3ctbGV2ZWwgQVBJLgorIC0gW3hdIFByb3ZpZGUgUnVzdC1vbmx5IGNvbnZlbmllbmNlIGZl YXR1cmVzLgorIC0gW3hdIFByb3ZpZGUgYW4gc3RsL2dzbC1mbGF2b3JlZCBDKysgQVBJLgorQEAg LTQzMywxNiArNDMyLDIwIEBAIFRvIHJlZ2VuZXJhdGUgdGhlIGdlbmVyYXRlZCBjb2RlOgorIC0g W3hdIEFkZCBhY3R1YWxseSBmYXN0IENKSyBlbmNvZGUgb3B0aW9ucy4KKyAtIFsgXSB+SW52ZXN0 aWdhdGUgW0JvYiBTdGVhZ2FsbCdzIGxvb2t1cCB0YWJsZSBhY2NlbGVyYXRpb24gZm9yIFVURi04 XShodHRwczovL2dpdGh1Yi5jb20vQm9iU3RlYWdhbGwvQ3BwTm93MjAxOC9ibG9iL21hc3Rlci9G YXN0Q29udmVyc2lvbkZyb21VVEYtOC9GYXN0JTIwQ29udmVyc2lvbiUyMEZyb20lMjBVVEYtOCUy MHdpdGglMjBDJTJCJTJCJTJDJTIwREZBcyUyQyUyMGFuZCUyMFNTRSUyMEludHJpbnNpY3MlMjAt JTIwQm9iJTIwU3RlYWdhbGwlMjAtJTIwQyUyQiUyQk5vdyUyMDIwMTgucGRmKS5+CisgLSBbeF0g UHJvdmlkZSBhIGJ1aWxkIG1vZGUgdGhhdCB3b3JrcyB3aXRob3V0IGBhbGxvY2AgKHdpdGggbGVz c2VyIEFQSSBzdXJmYWNlKS4KKyAtIFt4XSBNaWdyYXRlIHRvIGBzdGQ6OnNpbWRgIH5vbmNlIGl0 IGlzIHN0YWJsZSBhbmQgZGVjbGFyZSAxLjAufgorIC0gWyBdIE1pZ3JhdGUgYHVuc2FmZWAgc2xp Y2UgYWNjZXNzIGJ5IGxhcmdlciB0eXBlcyB0aGFuIGB1OGAvYHUxNmAgdG8gYGFsaWduX3RvYC4K KyAKKyAjIyBSZWxlYXNlIE5vdGVzCisgCisrIyMjIDAuOC4zNQorKworKyogSW1wbGVtZW50IGNo YW5nZXMgZm9yIEdCMTgwMzAtMjAyMi4gKEludGVudGlvbmFsbHkgbm90IHRyZWF0ZWQgYXMgYSBz ZW12ZXIgYnJlYWsgaW4gcHJhY3RpY2UgZXZlbiBpZiB0aGlzIGNvdWxkIGJlIGFyZ3VlZCB0byBi ZSBhIGJyZWFraW5nIGNoYW5nZSBpbiB0aGVvcnkuKQorKworICMjIyAwLjguMzQKKyAKKyAqIFVz ZSB0aGUgYHBvcnRhYmxlX3NpbWRgIG5pZ2h0bHkgZmVhdHVyZSBvZiB0aGUgc3RhbmRhcmQgbGli cmFyeSBpbnN0ZWFkIG9mIHRoZSBgcGFja2VkX3NpbWRgIGNyYXRlLiBPbmx5IGFmZmVjdHMgdGhl IGBzaW1kLWFjY2VsYCBvcHRpb25hbCBuaWdodGx5IGZlYXR1cmUuCisgKiBJbnRlcm5hbCBkb2N1 bWVudGF0aW9uIGltcHJvdmVtZW50cyBhbmQgbWlub3IgY29kZSBpbXByb3ZlbWVudHMgYXJvdW5k IGB1bnNhZmVgLgorICogQWRkZWQgYHJ1c3QtdmVyc2lvbmAgdG8gYENhcmdvLnRvbWxgLgorIAor ICMjIyAwLjguMzMKKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L2RvYy9HQksudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4dAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4dAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4dAorQEAgLTEsMTMgKzEsMTQgQEAK KyAvLy8gVGhlIGRlY29kZXIgZm9yIHRoaXMgZW5jb2RpbmcgaXMgdGhlIHNhbWUgYXMgdGhlIGRl Y29kZXIgZm9yIGdiMTgwMzAuCisgLy8vIFRoZSBlbmNvZGVyIHNpZGUgb2YgdGhpcyBlbmNvZGlu ZyBpcyBHQksgd2l0aCBXaW5kb3dzIGNvZGUgcGFnZSA5MzYgZXVybworLS8vLyBzaWduIGJlaGF2 aW9yLiBHQksgZXh0ZW5kcyBHQjIzMTItODAgdG8gY292ZXIgdGhlIENKSyBVbmlmaWVkIElkZW9n cmFwaHMKKy0vLy8gVW5pY29kZSBibG9jayBhcyB3ZWxsIGFzIGEgaGFuZGZ1bCBvZiBpZGVvZ3Jh cGhzIGZyb20gdGhlIENKSyBVbmlmaWVkCistLy8vIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEgYW5k IENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgYmxvY2tzLgorKy8vLyBzaWduIGJlaGF2aW9y IGFuZCB3aXRoIHRoZSBjaGFuZ2VzIHRvIHR3by1ieXRlIHNlcXVlbmNlcyBtYWRlIGluIEdCMTgw MzAtMjAyMi4KKysvLy8gR0JLIGV4dGVuZHMgR0IyMzEyLTgwIHRvIGNvdmVyIHRoZSBDSksgVW5p ZmllZCBJZGVvZ3JhcGhzIFVuaWNvZGUgYmxvY2sgYXMKKysvLy8gd2VsbCBhcyBhIGhhbmRmdWwg b2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBB CisrLy8vIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIGJsb2Nrcy4KKyAvLy8KKyAv Ly8gVW5saWtlIGUuZy4gaW4gdGhlIGNhc2Ugb2YgSVNPLTg4NTktMSBhbmQgd2luZG93cy0xMjUy LCBHQksgZW5jb2RlciB3YXNuJ3QKKyAvLy8gdW5pZmllZCB3aXRoIHRoZSBnYjE4MDMwIGVuY29k ZXIgaW4gdGhlIEVuY29kaW5nIFN0YW5kYXJkIG91dCBvZiBjb25jZXJuCisgLy8vIHRoYXQgc2Vy dmVycyB0aGF0IGV4cGVjdCBHQksgZm9ybSBzdWJtaXNzaW9ucyBtaWdodCBub3QgYmUgYWJsZSB0 byBoYW5kbGUKKyAvLy8gdGhlIGZvdXItYnl0ZSBzZXF1ZW5jZXMuCisgLy8vCisgLy8vIFtJbmRl eCB2aXN1YWxpemF0aW9uIGZvciB0aGUgdHdvLWJ5dGUgc2VxdWVuY2VzXShodHRwczovL2VuY29k aW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwpLAorIC8vLyBbVmlzdWFsaXphdGlvbiBv ZiBCTVAgY292ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGluZGV4XShodHRwczovL2VuY29kaW5nLnNw ZWMud2hhdHdnLm9yZy9nYjE4MDMwLWJtcC5odG1sKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvZG9jL2diMTgwMzAudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9kb2MvZ2IxODAzMC50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvZG9jL2diMTgwMzAudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2Rv Yy9nYjE4MDMwLnR4dAorQEAgLTEsOSArMSwxMCBAQAorLS8vLyBUaGlzIGVuY29kaW5nIG1hdGNo ZXMgR0IxODAzMC0yMDA1IGV4Y2VwdCB0aGUgdHdvLWJ5dGUgc2VxdWVuY2UgMHhBMyAweEEwCist Ly8vIG1hcHMgdG8gVSszMDAwIGZvciBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgV2ViIGNv bnRlbnQuIEFzIGEgcmVzdWx0LAorLS8vLyB0aGlzIGVuY29kaW5nIGNhbiByZXByZXNlbnQgYWxs IG9mIFVuaWNvZGUgZXhjZXB0IGZvciB0aGUgcHJpdmF0ZS11c2UKKy0vLy8gY2hhcmFjdGVyIFUr RTVFNS4KKysvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIEdCMTgwMzAtMjAyMiBleGNlcHQgdGhl IHR3by1ieXRlIHNlcXVlbmNlIDB4QTMgMHhBMAorKy8vLyBtYXBzIHRvIFUrMzAwMCBmb3IgY29t cGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIFdlYiBjb250ZW50IGFuZCB0aGUgZm91ci1ieXRlCisr Ly8vIHNlcXVlbmNlcyBmb3IgdGhlIG5vbi1QVUEgY2hhcmFjdGVycyB0aGF0IGdvdCB0d28tYnl0 ZSBzZXF1ZW5jZXMgc3RpbGwgZGVjb2RlCisrLy8vIHRvIHRoZSBzYW1lIG5vbi1QVUEgY2hhcmFj dGVycyBhcyBpbiBHQjE4MDMwLTIwMDUuIEFzIGEgcmVzdWx0LCB0aGlzIGVuY29kaW5nCisrLy8v IGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZvciAxOSBwcml2YXRlLXVzZSBj aGFyYWN0ZXJzLgorIC8vLworIC8vLyBbSW5kZXggdmlzdWFsaXphdGlvbiBmb3IgdGhlIHR3by1i eXRlIHNlcXVlbmNlc10oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC5o dG1sKSwKKyAvLy8gW1Zpc3VhbGl6YXRpb24gb2YgQk1QIGNvdmVyYWdlIG9mIHRoZSB0d28tYnl0 ZSBpbmRleF0oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC1ibXAuaHRt bCkKKyAvLy8KKyAvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIHRoZSBXaW5kb3dzIGNvZGUgcGFn ZSA1NDkzNi4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2dlbmVy YXRlLWVuY29kaW5nLWRhdGEucHkgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2dlbmVy YXRlLWVuY29kaW5nLWRhdGEucHkKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv Z2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9nZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CitAQCAtMTAsMTcgKzEwLDE3IEBACisgIyBl eGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAorIGltcG9ydCBqc29uCisgaW1wb3J0 IHN1YnByb2Nlc3MKKyBpbXBvcnQgc3lzCisgaW1wb3J0IG9zLnBhdGgKKyAKKyBpZiAobm90IG9z LnBhdGguaXNmaWxlKCIuLi9lbmNvZGluZy9lbmNvZGluZ3MuanNvbiIpKSBvciAobm90IG9zLnBh dGguaXNmaWxlKCIuLi9lbmNvZGluZy9pbmRleGVzLmpzb24iKSk6CistICBzeXMuc3RkZXJyLndy aXRlKCJUaGlzIHNjcmlwdCBuZWVkcyBhIGNsb25lIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0 d2cvZW5jb2RpbmcvIChwcmVmZXJhYmx5IGF0IHJldmlzaW9uIGYzODEzODkpIG5leHQgdG8gdGhl IGVuY29kaW5nX3JzIGRpcmVjdG9yeS5cbiIpOworKyAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBz Y3JpcHQgbmVlZHMgYSBjbG9uZSBvZiBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2VuY29kaW5n LyAocHJlZmVyYWJseSBhdCByZXZpc2lvbiAxZDUxOWJmOGU1NTU1Y2VmNjRjZjNhNzEyNDg1ZjQx Y2QxYTZhOTkwICkgbmV4dCB0byB0aGUgZW5jb2RpbmdfcnMgZGlyZWN0b3J5LlxuIik7CisgICBz eXMuZXhpdCgtMSkKKyAKKyBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoIi4uL2VuY29kaW5nX2Mvc3Jj L2xpYi5ycyIpOgorICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBzY3JpcHQgYWxzbyB3cml0ZXMg dGhlIGdlbmVyYXRlZCBwYXJ0cyBvZiB0aGUgZW5jb2RpbmdfYyBjcmF0ZSBhbmQgbmVlZHMgYSBj bG9uZSBvZiBodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfYyBuZXh0IHRvIHRo ZSBlbmNvZGluZ19ycyBkaXJlY3RvcnkuXG4iKTsKKyAgIHN5cy5leGl0KC0xKQorIAorIGlmIG5v dCBvcy5wYXRoLmlzZmlsZSgiLi4vY29kZXBhZ2Uvc3JjL2xpYi5ycyIpOgorICAgc3lzLnN0ZGVy ci53cml0ZSgiVGhpcyBzY3JpcHQgYWxzbyB3cml0ZXMgdGhlIGdlbmVyYXRlZCBwYXJ0cyBvZiB0 aGUgY29kZXBhZ2UgY3JhdGUgYW5kIG5lZWRzIGEgY2xvbmUgb2YgaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL2NvZGVwYWdlIG5leHQgdG8gdGhlIGVuY29kaW5nX3JzIGRpcmVjdG9yeS5cbiIp OworQEAgLTE2MDcsMTggKzE2MDcsMTcgQEAgdXRmXzhfZmlsZS53cml0ZSgiIiIKKyAKKyAiIiIp CisgCisgdXRmXzhfZmlsZS53cml0ZSh1dGZfOF9yc19lbmQpCisgdXRmXzhfZmlsZS5jbG9zZSgp CisgCisgIyBVbml0IHRlc3RzCisgCistVEVTVF9IRUFERVIgPSAnJydBbnkgY29weXJpZ2h0IHRv IHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1Q dWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVy by8xLjAvCisrVEVTVF9IRUFERVIgPSAnJydHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5q c29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQ bGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2Vu ZXJhdGUtZW5jb2RpbmctZGF0YS5weQorICcnJworIAorIGluZGV4ID0gaW5kZXhlc1siamlzMDIw OCJdCisgCisgamlzMDIwOF9pbl9maWxlID0gb3Blbigic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2lu LnR4dCIsICJ3IikKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9kYXRhLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycworLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycworKysrIGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycworQEAgLTIsMTYgKzIsNDcgQEAKKyAv LyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uLgor IC8vCisgLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8 TElDRU5TRS1BUEFDSEUgb3IKKyAvLyBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ Q0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKyAvLyA8TElDRU5TRS1NSVQgb3IgaHR0cHM6 Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCisgLy8gb3B0aW9uLiBUaGlz IGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorIC8vIGV4 Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCisgCisrLy8gVGhlIGFib3ZlIGxpY2Vuc2Ug YXBwbGllcyB0byBjb2RlIGluIHRoaXMgZmlsZS4gVGhlIGRhdGEgaW4gdGhpcworKy8vIGZpbGUg aXMgZ2VuZXJhdGVkIGZyb20gV0hBVFdHJ3MgaW5kZXhlcy5qc29uLCB3aGljaCBjYW1lIHVuZGVy CisrLy8gdGhlIGZvbGxvd2luZyBsaWNlbnNlOgorKworKy8vIENvcHlyaWdodCDCqSBXSEFUV0cg KEFwcGxlLCBHb29nbGUsIE1vemlsbGEsIE1pY3Jvc29mdCkuCisrLy8KKysvLyBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK KysvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKysvLworKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcwor Ky8vICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor Ky8vCisrLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vICAgIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKysv LyAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv bi4KKysvLworKy8vIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIg bm9yIHRoZSBuYW1lcyBvZiBpdHMKKysvLyAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKy8vICAgIHRoaXMgc29m dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisrLy8KKysv LyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg Q09OVFJJQlVUT1JTICJBUyBJUyIKKysvLyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisrLy8gSU1QTElFRCBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQVJFCisrLy8gRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS SUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorKy8vIEZPUiBBTlkgRElSRUNU LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U SUFMCisrLy8gREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKysvLyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorKy8vIENB VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs IFNUUklDVCBMSUFCSUxJVFksCisrLy8gT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKysvLyBPRiBUSElT IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN QUdFLgorKworIC8vIEJFR0lOIEdFTkVSQVRFRCBDT0RFLiBQTEVBU0UgRE8gTk9UIEVESVQuCisg Ly8gSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0 YS5weQorIAorICNbcmVwcihhbGlnbig2NCkpXSAvLyBBbGlnbiB0byBjYWNoZSBsaW5lcworIHB1 YiBzdHJ1Y3QgU2luZ2xlQnl0ZURhdGEgeworICAgICBwdWIgaWJtODY2OiBbdTE2OyAxMjhdLAor ICAgICBwdWIgaXNvXzg4NTlfMjogW3UxNjsgMTI4XSwKKyAgICAgcHViIGlzb184ODU5XzM6IFt1 MTY7IDEyOF0sCitAQCAtODgwNTYsMjMgKzg4MDg3LDIzIEBAIHB1YiBzdGF0aWMgR0JLX09USEVS X1VOU09SVEVEX09GRlNFVFM6IFsKKyAgICAgMHgyMjk1LCAweDMwMTIsIDB4MzAxRCwgMHhFN0JD LCAweDMwMjEsIDB4MzJBMywgMHgzMzhFLCAweDMzOUMsIDB4MzNBMSwgMHgzM0M0LCAweDMzQ0Us IDB4MzNEMSwKKyAgICAgMHgzM0Q1LCAweEZFMzAsIDB4RkZFMiwgMHhGRkU0LCAweEU3RTIsIDB4 MjEyMSwgMHgzMjMxLCAweEU3RTMsIDB4MjAxMCwgMHhFN0U0LCAweDMwRkMsIDB4MzA5QiwKKyAg ICAgMHgzMEZELCAweDMwMDYsIDB4MzA5RCwgMHhGRTQ5LCAweEZFNTQsIDB4RkU1OSwgMHhGRTY4 LCAweDMwM0UsIDB4MkZGMCwgMHgzMDA3LCAweEU3RjQsCisgXTsKKyAKKyBwdWIgc3RhdGljIEdC S19CT1RUT006IFt1MTY7IDEwMV0gPSBbCisgICAgIDB4RjkyQywgMHhGOTc5LCAweEY5OTUsIDB4 RjlFNywgMHhGOUYxLCAweEZBMEMsIDB4RkEwRCwgMHhGQTBFLCAweEZBMEYsIDB4RkExMSwgMHhG QTEzLCAweEZBMTQsCisgICAgIDB4RkExOCwgMHhGQTFGLCAweEZBMjAsIDB4RkEyMSwgMHhGQTIz LCAweEZBMjQsIDB4RkEyNywgMHhGQTI4LCAweEZBMjksIDB4MkU4MSwgMHhFODE2LCAweEU4MTcs CistICAgIDB4RTgxOCwgMHgyRTg0LCAweDM0NzMsIDB4MzQ0NywgMHgyRTg4LCAweDJFOEIsIDB4 RTgxRSwgMHgzNTlFLCAweDM2MUEsIDB4MzYwRSwgMHgyRThDLCAweDJFOTcsCistICAgIDB4Mzk2 RSwgMHgzOTE4LCAweEU4MjYsIDB4MzlDRiwgMHgzOURGLCAweDNBNzMsIDB4MzlEMCwgMHhFODJC LCAweEU4MkMsIDB4M0I0RSwgMHgzQzZFLCAweDNDRTAsCistICAgIDB4MkVBNywgMHhFODMxLCAw eEU4MzIsIDB4MkVBQSwgMHg0MDU2LCAweDQxNUYsIDB4MkVBRSwgMHg0MzM3LCAweDJFQjMsIDB4 MkVCNiwgMHgyRUI3LCAweEU4M0IsCistICAgIDB4NDNCMSwgMHg0M0FDLCAweDJFQkIsIDB4NDNE RCwgMHg0NEQ2LCAweDQ2NjEsIDB4NDY0QywgMHhFODQzLCAweDQ3MjMsIDB4NDcyOSwgMHg0NzdD LCAweDQ3OEQsCisrICAgIDB4RTgxOCwgMHgyRTg0LCAweDM0NzMsIDB4MzQ0NywgMHgyRTg4LCAw eDJFOEIsIDB4OUZCNCwgMHgzNTlFLCAweDM2MUEsIDB4MzYwRSwgMHgyRThDLCAweDJFOTcsCisr ICAgIDB4Mzk2RSwgMHgzOTE4LCAweDlGQjUsIDB4MzlDRiwgMHgzOURGLCAweDNBNzMsIDB4MzlE MCwgMHg5RkI2LCAweDlGQjcsIDB4M0I0RSwgMHgzQzZFLCAweDNDRTAsCisrICAgIDB4MkVBNywg MHhFODMxLCAweDlGQjgsIDB4MkVBQSwgMHg0MDU2LCAweDQxNUYsIDB4MkVBRSwgMHg0MzM3LCAw eDJFQjMsIDB4MkVCNiwgMHgyRUI3LCAweEU4M0IsCisrICAgIDB4NDNCMSwgMHg0M0FDLCAweDJF QkIsIDB4NDNERCwgMHg0NEQ2LCAweDQ2NjEsIDB4NDY0QywgMHg5RkI5LCAweDQ3MjMsIDB4NDcy OSwgMHg0NzdDLCAweDQ3OEQsCisgICAgIDB4MkVDQSwgMHg0OTQ3LCAweDQ5N0EsIDB4NDk3RCwg MHg0OTgyLCAweDQ5ODMsIDB4NDk4NSwgMHg0OTg2LCAweDQ5OUYsIDB4NDk5QiwgMHg0OUI3LCAw eDQ5QjYsCistICAgIDB4RTg1NCwgMHhFODU1LCAweDRDQTMsIDB4NEM5RiwgMHg0Q0EwLCAweDRD QTEsIDB4NEM3NywgMHg0Q0EyLCAweDREMTMsIDB4NEQxNCwgMHg0RDE1LCAweDREMTYsCistICAg IDB4NEQxNywgMHg0RDE4LCAweDREMTksIDB4NERBRSwgMHhFODY0LAorKyAgICAweDlGQkEsIDB4 RTg1NSwgMHg0Q0EzLCAweDRDOUYsIDB4NENBMCwgMHg0Q0ExLCAweDRDNzcsIDB4NENBMiwgMHg0 RDEzLCAweDREMTQsIDB4NEQxNSwgMHg0RDE2LAorKyAgICAweDREMTcsIDB4NEQxOCwgMHg0RDE5 LCAweDREQUUsIDB4OUZCQiwKKyBdOworIAorIHB1YiBzdGF0aWMgR0IyMzEyX0hBTlpJOiBbdTE2 OyA2NzY4XSA9IFsKKyAgICAgMHg1NTRBLCAweDk2M0YsIDB4NTdDMywgMHg2MzI4LCAweDU0Q0Us IDB4NTUwOSwgMHg1NEMwLCAweDc2OTEsIDB4NzY0QywgMHg4NTNDLCAweDc3RUUsIDB4ODI3RSwK KyAgICAgMHg3ODhELCAweDcyMzEsIDB4OTY5OCwgMHg5NzhELCAweDZDMjgsIDB4NUI4OSwgMHg0 RkZBLCAweDYzMDksIDB4NjY5NywgMHg1Q0I4LCAweDgwRkEsIDB4Njg0OCwKKyAgICAgMHg4MEFF LCAweDY2MDIsIDB4NzZDRSwgMHg1MUY5LCAweDY1NTYsIDB4NzFBQywgMHg3RkYxLCAweDg4ODQs IDB4NTBCMiwgMHg1OTY1LCAweDYxQ0EsIDB4NkZCMywKKyAgICAgMHg4MkFELCAweDYzNEMsIDB4 NjI1MiwgMHg1M0VELCAweDU0MjcsIDB4N0IwNiwgMHg1MTZCLCAweDc1QTQsIDB4NURGNCwgMHg2 MkQ0LCAweDhEQ0IsIDB4OTc3NiwKKyAgICAgMHg2MjhBLCAweDgwMTksIDB4NTc1RCwgMHg5NzM4 LCAweDdGNjIsIDB4NzIzOCwgMHg3NjdELCAweDY3Q0YsIDB4NzY3RSwgMHg2NDQ2LCAweDRGNzAs IDB4OEQyNSwKK0BAIC04ODY0NSwzNyArODg2NzYsMzcgQEAgcHViIHN0YXRpYyBHQjIzMTJfU1lN Qk9MUzogW3UxNjsgOTRdID0gWworICAgICAweDIyOTksIDB4MjIyQiwgMHgyMjJFLCAweDIyNjEs IDB4MjI0QywgMHgyMjQ4LCAweDIyM0QsIDB4MjIxRCwgMHgyMjYwLCAweDIyNkUsIDB4MjI2Riwg MHgyMjY0LAorICAgICAweDIyNjUsIDB4MjIxRSwgMHgyMjM1LCAweDIyMzQsIDB4MjY0MiwgMHgy NjQwLCAweDAwQjAsIDB4MjAzMiwgMHgyMDMzLCAweDIxMDMsIDB4RkYwNCwgMHgwMEE0LAorICAg ICAweEZGRTAsIDB4RkZFMSwgMHgyMDMwLCAweDAwQTcsIDB4MjExNiwgMHgyNjA2LCAweDI2MDUs IDB4MjVDQiwgMHgyNUNGLCAweDI1Q0UsIDB4MjVDNywgMHgyNUM2LAorICAgICAweDI1QTEsIDB4 MjVBMCwgMHgyNUIzLCAweDI1QjIsIDB4MjAzQiwgMHgyMTkyLCAweDIxOTAsIDB4MjE5MSwgMHgy MTkzLCAweDMwMTMsCisgXTsKKyAKKyBwdWIgc3RhdGljIEdCMjMxMl9TWU1CT0xTX0FGVEVSX0dS RUVLOiBbdTE2OyAyMl0gPSBbCisgICAgIDB4RkUzNSwgMHhGRTM2LCAweEZFMzksIDB4RkUzQSwg MHhGRTNGLCAweEZFNDAsIDB4RkUzRCwgMHhGRTNFLCAweEZFNDEsIDB4RkU0MiwgMHhGRTQzLCAw eEZFNDQsCistICAgIDB4RTc5NCwgMHhFNzk1LCAweEZFM0IsIDB4RkUzQywgMHhGRTM3LCAweEZF MzgsIDB4RkUzMSwgMHhFNzk2LCAweEZFMzMsIDB4RkUzNCwKKysgICAgMHhGRTE3LCAweEZFMTgs IDB4RkUzQiwgMHhGRTNDLCAweEZFMzcsIDB4RkUzOCwgMHhGRTMxLCAweEZFMTksIDB4RkUzMywg MHhGRTM0LAorIF07CisgCisgcHViIHN0YXRpYyBHQjIzMTJfUElOWUlOOiBbdTE2OyAzMl0gPSBb CisgICAgIDB4MDEwMSwgMHgwMEUxLCAweDAxQ0UsIDB4MDBFMCwgMHgwMTEzLCAweDAwRTksIDB4 MDExQiwgMHgwMEU4LCAweDAxMkIsIDB4MDBFRCwgMHgwMUQwLCAweDAwRUMsCisgICAgIDB4MDE0 RCwgMHgwMEYzLCAweDAxRDIsIDB4MDBGMiwgMHgwMTZCLCAweDAwRkEsIDB4MDFENCwgMHgwMEY5 LCAweDAxRDYsIDB4MDFEOCwgMHgwMURBLCAweDAxREMsCisgICAgIDB4MDBGQywgMHgwMEVBLCAw eDAyNTEsIDB4MUUzRiwgMHgwMTQ0LCAweDAxNDgsIDB4MDFGOSwgMHgwMjYxLAorIF07CisgCist cHViIHN0YXRpYyBHQjIzMTJfT1RIRVJfUE9JTlRFUlM6IFt1MTY7IDQ0XSA9IFsKKytwdWIgc3Rh dGljIEdCMjMxMl9PVEhFUl9QT0lOVEVSUzogW3UxNjsgNDddID0gWworICAgICAweDAwMDAsIDB4 MDAwQSwgMHgwMDEwLCAweDAwMjQsIDB4MDAzOCwgMHgwMDQyLCAweDAwNDMsIDB4MDA0NCwgMHgw MDRFLCAweDAwNTAsIDB4MDA1QywgMHgwMDVFLAorICAgICAweDAwNjEsIDB4MDA2MiwgMHgwMEJC LCAweDAwQkMsIDB4MDEwRiwgMHgwMTFBLCAweDAxNzAsIDB4MDE3OCwgMHgwMTg5LCAweDAxOTAs IDB4MDE5OCwgMHgwMUE5LAorLSAgICAweDAxQjAsIDB4MDFCNywgMHgwMUNELCAweDAxRDYsIDB4 MDFEQywgMHgwMURELCAweDAxRjcsIDB4MDIwNiwgMHgwMjBDLCAweDAyMEQsIDB4MDIyNywgMHgw MjM0LAorLSAgICAweDAyNTQsIDB4MDI1OCwgMHgwMjdELCAweDAyOTIsIDB4MDI5NSwgMHgwMkUx LCAweDAyRjAsIDB4MDUyNCwKKysgICAgMHgwMUIwLCAweDAxQjEsIDB4MDFCMiwgMHgwMUIzLCAw eDAxQjcsIDB4MDFDRCwgMHgwMUQ2LCAweDAxREMsIDB4MDFERCwgMHgwMUY3LCAweDAyMDYsIDB4 MDIwQywKKysgICAgMHgwMjBELCAweDAyMjcsIDB4MDIzNCwgMHgwMjU0LCAweDAyNTgsIDB4MDI3 RCwgMHgwMjkyLCAweDAyOTUsIDB4MDJFMSwgMHgwMkYwLCAweDA1MjQsCisgXTsKKyAKKy1wdWIg c3RhdGljIEdCMjMxMl9PVEhFUl9VTlNPUlRFRF9PRkZTRVRTOiBbdTE2OyA0M10gPSBbCisrcHVi IHN0YXRpYyBHQjIzMTJfT1RIRVJfVU5TT1JURURfT0ZGU0VUUzogW3UxNjsgNDZdID0gWworICAg ICAweDIxNzAsIDB4RTc2NiwgMHgyNDg4LCAweDI0NzQsIDB4MjQ2MCwgMHgyMEFDLCAweEU3NkQs IDB4MzIyMCwgMHhFNzZFLCAweDIxNjAsIDB4RTc3MCwgMHhGRjAxLAorICAgICAweEZGRTUsIDB4 RkYwNSwgMHhGRkUzLCAweDMwNDEsIDB4RTc3MiwgMHgzMEExLCAweEU3N0QsIDB4MDM5MSwgMHgw M0EzLCAweEU3ODUsIDB4MDNCMSwgMHgwM0MzLAorLSAgICAweEU3OEQsIDB4MDAwMCwgMHhFNzk3 LCAweDA0MTAsIDB4MDQwMSwgMHgwNDE2LCAweEU3QTAsIDB4MDQzMCwgMHgwNDUxLCAweDA0MzYs IDB4RTdBRiwgMHgwMDAwLAorLSAgICAweEU3QzksIDB4MzEwNSwgMHhFN0NELCAweEU3RkUsIDB4 MjUwMCwgMHhFODAxLCAweEUwMDAsCisrICAgIDB4RkUxMCwgMHhGRTEyLCAweEZFMTEsIDB4RkUx MywgMHgwMDAwLCAweEU3OTcsIDB4MDQxMCwgMHgwNDAxLCAweDA0MTYsIDB4RTdBMCwgMHgwNDMw LCAweDA0NTEsCisrICAgIDB4MDQzNiwgMHhFN0FGLCAweDAwMDAsIDB4RTdDOSwgMHgzMTA1LCAw eEU3Q0QsIDB4RTdGRSwgMHgyNTAwLCAweEU4MDEsIDB4RTAwMCwKKyBdOworIAorIHB1YiBzdGF0 aWMgR0IxODAzMF9SQU5HRV9QT0lOVEVSUzogW3UxNjsgMjA2XSA9IFsKKyAgICAgMHgwMDAwLCAw eDAwMjQsIDB4MDAyNiwgMHgwMDJELCAweDAwMzIsIDB4MDA1MSwgMHgwMDU5LCAweDAwNUYsIDB4 MDA2MCwgMHgwMDY0LCAweDAwNjcsIDB4MDA2OCwKKyAgICAgMHgwMDY5LCAweDAwNkQsIDB4MDA3 RSwgMHgwMDg1LCAweDAwOTQsIDB4MDBBQywgMHgwMEFGLCAweDAwQjMsIDB4MDBEMCwgMHgwMTMy LCAweDAxMzMsIDB4MDEzNCwKKyAgICAgMHgwMTM1LCAweDAxMzYsIDB4MDEzNywgMHgwMTM4LCAw eDAxMzksIDB4MDE1NSwgMHgwMUFDLCAweDAxQkIsIDB4MDIyMCwgMHgwMjIxLCAweDAyMkUsIDB4 MDJFNSwKKyAgICAgMHgwMkU2LCAweDAyRUQsIDB4MDJFRSwgMHgwMzI1LCAweDAzMzMsIDB4MDMz NCwgMHgxRUYyLCAweDFFRjQsIDB4MUVGNSwgMHgxRUY3LCAweDFFRkUsIDB4MUYwNywKKyAgICAg MHgxRjA4LCAweDFGMDksIDB4MUYwRSwgMHgxRjdFLCAweDFGRDQsIDB4MUZENSwgMHgxRkQ4LCAw eDFGRTQsIDB4MUZFRSwgMHgyMDJDLCAweDIwMzAsIDB4MjA0NiwKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9nYjE4MDMwLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMC5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvZ2IxODAzMC5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvZ2IxODAzMC5ycworQEAgLTQsMTYgKzQsMTcgQEAKKyAvLyBMaWNlbnNlZCB1bmRlciB0 aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorIC8vIGh0 dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGlj ZW5zZQorIC8vIDxMSUNFTlNFLU1JVCBvciBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2Vz L01JVD4sIGF0IHlvdXIKKyAvLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwg bW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCisgLy8gZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0 ZXJtcy4KKyAKKyB1c2Ugc3VwZXI6Oio7CisgdXNlIGNyYXRlOjpkYXRhOjoqOworK3VzZSBjcmF0 ZTo6Z2IxODAzMF8yMDIyOjoqOworIHVzZSBjcmF0ZTo6aGFuZGxlczo6KjsKKyB1c2UgY3JhdGU6 OnZhcmlhbnQ6Oio7CisgLy8gUnVzdCAxLjE0LjAgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBkZXNw aXRlIHRoZSBhc3RlcmlzayBhYm92ZS4KKyB1c2Ugc3VwZXI6OmluX2luY2x1c2l2ZV9yYW5nZTE2 OworIHVzZSBzdXBlcjo6aW5fcmFuZ2UxNjsKKyAKKyBlbnVtIEdiMTgwMzBQZW5kaW5nIHsKKyAg ICAgTm9uZSwKK0BAIC0zNDIsMTggKzM0MywyNSBAQCBmbiBnYmtfZW5jb2RlX25vbl91bmlmaWVk KGJtcDogdTE2KSAtPiBPCisgICAgICAgICB7CisgICAgICAgICAgICAgLy8gRGlhY3JpdGljcyBh bmQgTGF0aW4gMSBzeW1ib2xzCisgICAgICAgICAgICAgaWYgbGV0IFNvbWUocG9zKSA9IHBvc2l0 aW9uKCZHQjIzMTJfU1lNQk9MU1szLi4oMHhBQyAtIDB4NjApXSwgYm1wKSB7CisgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKCgweEExLCBwb3MgKyAweEExICsgMykpOworICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKyAgICAgICAgIHJldHVybiBOb25lOworICAgICB9CistICAgIGlmIGJt cCA+PSAweEU3OTQgeworLSAgICAgICAgLy8gVmFyaW91cyBicmFja2V0cywgYWxsIGluIFBVQSBv ciBmdWxsLXdpZHRoIHJlZ2lvbnMKKysKKysgICAgaWYgaW5faW5jbHVzaXZlX3JhbmdlMTYoYm1w LCAweEU3OEQsIDB4RTg2NCkgeworKyAgICAgICAgLy8gVGhlIGFycmF5IGlzIHNvcnRlZCBidXQg c2hvcnQsIHNvIGxldCdzIGRvIGxpbmVhciBzZWFyY2guCisrICAgICAgICBpZiBsZXQgU29tZShw b3MpID0gcG9zaXRpb24oJkdCMTgwMzBfMjAyMl9PVkVSUklERV9QVUFbLi5dLCBibXApIHsKKysg ICAgICAgICAgICBsZXQgcGFpciA9ICZHQjE4MDMwXzIwMjJfT1ZFUlJJREVfQllURVNbcG9zXTsK KysgICAgICAgICAgICByZXR1cm4gU29tZSgocGFpclswXS5pbnRvKCksIHBhaXJbMV0uaW50bygp KSk7CisrICAgICAgICB9CisrICAgIH0gZWxzZSBpZiBibXAgPj0gMHhGRTE3IHsKKysgICAgICAg IC8vIFZhcmlvdXMgYnJhY2tldHMsIGFsbCBpbiBmdWxsLXdpZHRoIHJlZ2lvbnMKKyAgICAgICAg IGlmIGxldCBTb21lKHBvcykgPSBwb3NpdGlvbigmR0IyMzEyX1NZTUJPTFNfQUZURVJfR1JFRUtb Li5dLCBibXApIHsKKyAgICAgICAgICAgICByZXR1cm4gU29tZSgoMHhBNiwgcG9zICsgKDB4OUYg LSAweDYwICsgMHhBMSkpKTsKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIGlmIGJtcCA9PSAweDFF M0YgeworICAgICAgICAgLy8gVGhlIG9uZSBQaW55aW4gcGxhY2VkIGVsc2V3aGVyZSBvbiB0aGUg Qk1QCisgICAgICAgICByZXR1cm4gU29tZSgoMHhBOCwgMHg3QiAtIDB4NjAgKyAweEExKSk7Cisg ICAgIH0gZWxzZSBpZiBpbl9yYW5nZTE2KGJtcCwgMHhBMDAwLCAweEQ4MDApIHsKKyAgICAgICAg IC8vIFNpbmNlIEtvcmVhbiBoYXMgdXNhZ2UgaW4gQ2hpbmEsIGxldCdzIHNwZW5kIGEgYnJhbmNo IHRvIGZhc3QtdHJhY2sKK0BAIC0zNzUsMTggKzM4MywyMSBAQCBmbiBnYmtfZW5jb2RlX25vbl91 bmlmaWVkKGJtcDogdTE2KSAtPiBPCisgICAgIH0KKyAgICAgLy8gR0JLIG90aGVyIChleGNlcHQg cmFkaWNhbHMgYW5kIFBVQSBpbiBHQktfQk9UVE9NKS4KKyAgICAgaWYgbGV0IFNvbWUob3RoZXJf cG9pbnRlcikgPSBnYmtfb3RoZXJfZW5jb2RlKGJtcCkgeworICAgICAgICAgbGV0IG90aGVyX2xl YWQgPSBvdGhlcl9wb2ludGVyIGFzIHVzaXplIC8gKDE5MCAtIDk0KTsKKyAgICAgICAgIGxldCBv dGhlcl90cmFpbCA9IG90aGVyX3BvaW50ZXIgYXMgdXNpemUgJSAoMTkwIC0gOTQpOworICAgICAg ICAgbGV0IG9mZnNldCA9IGlmIG90aGVyX3RyYWlsIDwgMHgzRiB7IDB4NDAgfSBlbHNlIHsgMHg0 MSB9OworICAgICAgICAgcmV0dXJuIFNvbWUoKG90aGVyX2xlYWQgKyAoMHg4MSArIDB4MjApLCBv dGhlcl90cmFpbCArIG9mZnNldCkpOworICAgICB9CistICAgIC8vIENKSyBSYWRpY2FscyBTdXBw bGVtZW50IG9yIFBVQSBpbiBHQktfQk9UVE9NCistICAgIGlmIGluX2luY2x1c2l2ZV9yYW5nZTE2 KGJtcCwgMHgyRTgxLCAweDJFQ0EpIHx8IGluX2luY2x1c2l2ZV9yYW5nZTE2KGJtcCwgMHhFODE2 LCAweEU4NjQpIHsKKysgICAgLy8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQsIFBVQSwgYW5kIFUr OUZCeCBpZGVvZ3JhcGhzIGluIEdCS19CT1RUT00KKysgICAgaWYgaW5faW5jbHVzaXZlX3Jhbmdl MTYoYm1wLCAweDJFODEsIDB4MkVDQSkKKysgICAgICAgIHx8IGluX2luY2x1c2l2ZV9yYW5nZTE2 KGJtcCwgMHg5RkI0LCAweDlGQkIpCisrICAgICAgICB8fCBpbl9pbmNsdXNpdmVfcmFuZ2UxNihi bXAsIDB4RTgxNiwgMHhFODU1KQorKyAgICB7CisgICAgICAgICBpZiBsZXQgU29tZShwb3MpID0g cG9zaXRpb24oJkdCS19CT1RUT01bMjEuLl0sIGJtcCkgeworICAgICAgICAgICAgIGxldCB0cmFp bCA9IHBvcyArIDE2OworICAgICAgICAgICAgIGxldCBvZmZzZXQgPSBpZiB0cmFpbCA8IDB4M0Yg eyAweDQwIH0gZWxzZSB7IDB4NDEgfTsKKyAgICAgICAgICAgICByZXR1cm4gU29tZSgoMHhGRSwg dHJhaWwgKyBvZmZzZXQpKTsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICAvLyBHQjIzMTIgYm90 dG9tIFBVQQorICAgICBsZXQgYm1wX21pbnVzX2diMjMxMl9ib3R0b21fcHVhID0gYm1wLndyYXBw aW5nX3N1YigweEUyMzQpOworQEAgLTYwMiwyMSArNjEzLDI4IEBAIG1vZCB0ZXN0cyB7CisgCisg ICAgICAgICAvLyB0d28gYnl0ZXMKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4MVx4NDAi LCAiXHV7NEUwMn0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4MVx4N0UiLCAiXHV7 NEU4QX0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4MVx4N0YiLCAiXHV7RkZGRH1c dXswMDdGfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgxXHg4MCIsICJcdXs0RTkw fSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgxXHhGRSIsICJcdXs0RkEyfSIpOwor ICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg0MCIsICJcdXtGQTBDfSIpOworLSAgICAg ICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg3RSIsICJcdXtFODQzfSIpOworICAgICAgICAgZGVj b2RlX2diMTgwMzAoYiJceEZFXHg3RiIsICJcdXtGRkZEfVx1ezAwN0Z9Iik7CisgICAgICAgICBk ZWNvZGVfZ2IxODAzMChiIlx4RkVceDgwIiwgIlx1ezQ3MjN9Iik7CisgICAgICAgICBkZWNvZGVf Z2IxODAzMChiIlx4RkVceEZFIiwgIlx1e0U0QzV9Iik7CisgCisrICAgICAgICAvLyBDaGFuZ2Vz IGJldHdlZW4gR0IxODAzMC0yMDA1IGFuZCBHQjE4MDMwLTIwMjIKKysgICAgICAgIGRlY29kZV9n YjE4MDMwKGIiXHhGRVx4N0UiLCAiXHV7OUZCOX0iKTsKKysgICAgICAgIGRlY29kZV9nYjE4MDMw KGIiXHhBNlx4REQiLCAiXHV7RkUxNH0iKTsKKysKKysgICAgICAgIC8vIFRoZXNlIG1hcHBpbmdz IHJlbWFpbiBpbiBwbGFjZSB0aGUgR0IxODAzMC0yMDA1IHdheSBkZXNwaXRlIEdCMTgwMzAtMjAy MgorKyAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDgyXHgzNVx4OTFceDMyIiwgIlx1ezlGQjl9 Iik7CisrICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4ODRceDMxXHg4M1x4MzAiLCAiXHV7RkUx NH0iKTsKKysKKyAgICAgICAgIC8vIFRoZSBkaWZmZXJlbmNlIGZyb20gdGhlIG9yaWdpbmFsIEdC MTgwMzAKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhBM1x4QTAiLCAiXHV7MzAwMH0iKTsK KyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhBMVx4QTEiLCAiXHV7MzAwMH0iKTsKKyAKKyAg ICAgICAgIC8vIDB4RkYKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRlx4NDAiLCAiXHV7 RkZGRH1cdXswMDQwfSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEUzXHhGRlx4OUFc eDMzIiwgIlx1e0ZGRkR9XHV7RkZGRH0iKTsgLy8gbm90IFx1e0ZGRkR9XHV7RkZGRH1cdXswMDMz fSAhCisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkZceDMyXHg5QVx4MzMiLCAiXHV7RkZG RH1cdXswMDMyfVx1e0ZGRkR9Iik7IC8vIG5vdCBcdXtGRkZEfVx1ezAwMzJ9XHV7RkZGRH1cdXsw MDMzfSAhCitAQCAtNjc0LDE2ICs2OTIsMjUgQEAgbW9kIHRlc3RzIHsKKyAgICAgICAgICAgICAv LyBNaXJpIGlzIHRvbyBzbG93CisgICAgICAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1ezI2MDN9 IiwgYiJceDgxXHgzN1x4QTNceDMwIik7CisgICAgICAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1 ezFGNEE5fSIsIGIiXHg5NFx4MzlceERBXHgzMyIpOworICAgICAgICAgICAgIGVuY29kZV9nYjE4 MDMwKCJcdXsxMEZGRkZ9IiwgYiJceEUzXHgzMlx4OUFceDM1Iik7CisgICAgICAgICB9CisgCisg ICAgICAgICAvLyBFZGdlIGNhc2VzCisgICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7MDBGN30i LCBiIlx4QTFceEMyIik7CisrCisrICAgICAgICAvLyBHQjE4MDMwLTIwMjIKKysgICAgICAgIGVu Y29kZV9nYjE4MDMwKCJcdXs5RkI5fSIsIGIiXHhGRVx4N0UiKTsKKysgICAgICAgIGVuY29kZV9n YjE4MDMwKCJcdXtGRTE0fSIsIGIiXHhBNlx4REQiKTsKKysgICAgICAgIGVuY29kZV9nYjE4MDMw KCJcdXtFODQzfSIsIGIiXHhGRVx4N0UiKTsKKysgICAgICAgIGVuY29kZV9nYjE4MDMwKCJcdXtF NzkxfSIsIGIiXHhBNlx4REQiKTsKKysKKysgICAgICAgIC8vIE5vbi1jaGFuZ2UgaW4gR0IxODAz MC0yMDIyCisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTgxN30iLCBiIlx4RkVceDUyIik7 CisgICAgIH0KKyAKKyAgICAgI1t0ZXN0XQorICAgICBmbiB0ZXN0X2dia19lbmNvZGUoKSB7Cisg ICAgICAgICAvLyBFbXB0eQorICAgICAgICAgZW5jb2RlX2diaygiIiwgYiIiKTsKKyAKKyAgICAg ICAgIC8vIEFTQ0lJCitAQCAtNzE2LDE2ICs3NDMsMjUgQEAgbW9kIHRlc3RzIHsKKyAgICAgICAg ICAgICAvLyBNaXJpIGlzIHRvbyBzbG93CisgICAgICAgICAgICAgZW5jb2RlX2diaygiXHV7MjYw M30iLCBiIiYjOTczMTsiKTsKKyAgICAgICAgICAgICBlbmNvZGVfZ2JrKCJcdXsxRjRBOX0iLCBi IiYjMTI4MTY5OyIpOworICAgICAgICAgICAgIGVuY29kZV9nYmsoIlx1ezEwRkZGRn0iLCBiIiYj MTExNDExMTsiKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8vIEVkZ2UgY2FzZXMKKyAgICAg ICAgIGVuY29kZV9nYmsoIlx1ezAwRjd9IiwgYiJceEExXHhDMiIpOworKworKyAgICAgICAgLy8g R0IxODAzMC0yMDIyCisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7OUZCOX0iLCBiIlx4RkVc eDdFIik7CisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RkUxNH0iLCBiIlx4QTZceEREIik7 CisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTg0M30iLCBiIlx4RkVceDdFIik7CisrICAg ICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RTc5MX0iLCBiIlx4QTZceEREIik7CisrCisrICAgICAg ICAvLyBOb24tY2hhbmdlIGluIEdCMTgwMzAtMjAyMgorKyAgICAgICAgZW5jb2RlX2diMTgwMzAo Ilx1e0U4MTd9IiwgYiJceEZFXHg1MiIpOworICAgICB9CisgCisgICAgICNbdGVzdF0KKyAgICAg I1tjZmdfYXR0cihtaXJpLCBpZ25vcmUpXSAvLyBNaXJpIGlzIHRvbyBzbG93CisgICAgIGZuIHRl c3RfZ2IxODAzMF9kZWNvZGVfYWxsKCkgeworICAgICAgICAgbGV0IGlucHV0ID0gaW5jbHVkZV9i eXRlcyEoInRlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCIpOworICAgICAgICAgbGV0IGV4cGVjdGF0 aW9uID0gaW5jbHVkZV9zdHIhKCJ0ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYudHh0Iik7CisgICAg ICAgICBsZXQgKGNvdywgaGFkX2Vycm9ycykgPSBHQjE4MDMwLmRlY29kZV93aXRob3V0X2JvbV9o YW5kbGluZyhpbnB1dCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvZ2IxODAzMF8yMDIyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv Z2IxODAzMF8yMDIyLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMF8yMDIyLnJzCitAQCAt MCwwICsxLDU0IEBACisrLy8gQ29weXJpZ2h0IMKpIFdIQVRXRyAoQXBwbGUsIEdvb2dsZSwgTW96 aWxsYSwgTWljcm9zb2Z0KS4KKysvLworKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKy8vIG1vZGlmaWNhdGlvbiwg YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg bWV0OgorKy8vCisrLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0 YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisrLy8gICAgbGlzdCBvZiBjb25k aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisrLy8KKysvLyAyLiBSZWRpc3Ry aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UsCisrLy8gICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorKy8vICAgIGFuZC9vciBvdGhlciBt YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKy8vCisrLy8gMy4gTmVp dGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0 cworKy8vICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisrLy8gICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKysvLworKy8vIFRISVMgU09GVFdBUkUgSVMg UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElT IgorKy8vIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysvLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKysvLyBE SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05U UklCVVRPUlMgQkUgTElBQkxFCisrLy8gRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKysvLyBEQU1BR0VTIChJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH T09EUyBPUgorKy8vIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisrLy8gQ0FVU0VEIEFORCBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK KysvLyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKy8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisrCisrLy8vIFRoZSBQ VUEgY29kZSBwb2ludHMgc3BlY2lhbC1jYXNlZCBpbiB0aGUgR0IxODAzMCBlbmNvZGVyLgorK3B1 YihjcmF0ZSkgc3RhdGljIEdCMTgwMzBfMjAyMl9PVkVSUklERV9QVUE6IFt1MTY7IDE4XSA9IFsK KysgICAgMHhFNzhELCAweEU3OEUsIDB4RTc4RiwgMHhFNzkwLCAweEU3OTEsIDB4RTc5MiwgMHhF NzkzLCAweEU3OTQsIDB4RTc5NSwgMHhFNzk2LCAweEU4MUUsIDB4RTgyNiwKKysgICAgMHhFODJC LCAweEU4MkMsIDB4RTgzMiwgMHhFODQzLCAweEU4NTQsIDB4RTg2NCwKKytdOworKworKy8vLyBU aGUgYnl0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgUFVBIGNvZGUgcG9pbnRzIHNwZWNpYWwtY2Fz ZWQgaW4gdGhlIEdCMTgwMzAgZW5jb2Rlci4KKytwdWIoY3JhdGUpIHN0YXRpYyBHQjE4MDMwXzIw MjJfT1ZFUlJJREVfQllURVM6IFtbdTg7IDJdOyAxOF0gPSBbCisrICAgIFsweEE2LCAweEQ5XSwK KysgICAgWzB4QTYsIDB4REFdLAorKyAgICBbMHhBNiwgMHhEQl0sCisrICAgIFsweEE2LCAweERD XSwKKysgICAgWzB4QTYsIDB4RERdLAorKyAgICBbMHhBNiwgMHhERV0sCisrICAgIFsweEE2LCAw eERGXSwKKysgICAgWzB4QTYsIDB4RUNdLAorKyAgICBbMHhBNiwgMHhFRF0sCisrICAgIFsweEE2 LCAweEYzXSwKKysgICAgWzB4RkUsIDB4NTldLAorKyAgICBbMHhGRSwgMHg2MV0sCisrICAgIFsw eEZFLCAweDY2XSwKKysgICAgWzB4RkUsIDB4NjddLAorKyAgICBbMHhGRSwgMHg2RF0sCisrICAg IFsweEZFLCAweDdFXSwKKysgICAgWzB4RkUsIDB4OTBdLAorKyAgICBbMHhGRSwgMHhBMF0sCisr XTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvbGliLnJzCitAQCAtMiwxNiArMiw0NyBAQAorIC8vIGZpbGUgYXQgdGhl IHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24uCisgLy8KKyAvLyBMaWNl bnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNI RSBvcgorIC8vIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9y IHRoZSBNSVQgbGljZW5zZQorIC8vIDxMSUNFTlNFLU1JVCBvciBodHRwczovL29wZW5zb3VyY2Uu b3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKKyAvLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90 IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCisgLy8gZXhjZXB0IGFjY29yZGlu ZyB0byB0aG9zZSB0ZXJtcy4KKyAKKysvLyBUaGUgYWJvdmUgbGljZW5zZSBhcHBsaWVzIHRvIGNv ZGUgaW4gdGhpcyBmaWxlLiBUaGUgbGFiZWwgZGF0YSBpbgorKy8vIHRoaXMgZmlsZSBpcyBnZW5l cmF0ZWQgZnJvbSBXSEFUV0cncyBlbmNvZGluZ3MuanNvbiwgd2hpY2ggY2FtZSB1bmRlcgorKy8v IHRoZSBmb2xsb3dpbmcgbGljZW5zZToKKysKKysvLyBDb3B5cmlnaHQgwqkgV0hBVFdHIChBcHBs ZSwgR29vZ2xlLCBNb3ppbGxhLCBNaWNyb3NvZnQpLgorKy8vCisrLy8gUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrLy8g bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zIGFyZSBtZXQ6CisrLy8KKysvLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMKKysvLyAg ICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKysvLwor Ky8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKysvLyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisrLy8gICAg YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisr Ly8KKysvLyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0 aGUgbmFtZXMgb2YgaXRzCisrLy8gICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKysvLyAgICB0aGlzIHNvZnR3YXJl IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorKy8vCisrLy8gVEhJ UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS SUJVVE9SUyAiQVMgSVMiCisrLy8gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKy8vIElNUExJRUQgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFSRQorKy8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg SE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysvLyBGT1IgQU5ZIERJUkVDVCwgSU5E SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor Ky8vIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP RiBTVUJTVElUVVRFIEdPT0RTIE9SCisrLy8gU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKysvLyBDQVVTRUQg QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ Q1QgTElBQklMSVRZLAorKy8vIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisrLy8gT0YgVEhJUyBTT0ZU V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K KysKKyAjIVtjZmdfYXR0cigKKyAgICAgZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLAorICAgICBh bGxvdyhkb2NfbWFya2Rvd24sIGlubGluZV9hbHdheXMsIG5ld19yZXRfbm9fc2VsZikKKyApXQor IAorIC8vISBlbmNvZGluZ19ycyBpcyBhIEdlY2tvLW9yaWVudGVkIEZyZWUgU29mdHdhcmUgLyBP cGVuIFNvdXJjZSBpbXBsZW1lbnRhdGlvbgorIC8vISBvZiB0aGUgW0VuY29kaW5nIFN0YW5kYXJk XShodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8pIGluIFJ1c3QuCisgLy8hIEdlY2tv LW9yaWVudGVkIG1lYW5zIHRoYXQgY29udmVydGluZyB0byBhbmQgZnJvbSBVVEYtMTYgaXMgc3Vw cG9ydGVkIGluCitAQCAtNzI1LDE2ICs3NTYsMTcgQEAgbW9kIHNpbWRfZnVuY3M7CisgCisgI1tj ZmcoYWxsKHRlc3QsIGZlYXR1cmUgPSAiYWxsb2MiKSldCisgbW9kIHRlc3Rpbmc7CisgCisgbW9k IGJpZzU7CisgbW9kIGV1Y19qcDsKKyBtb2QgZXVjX2tyOworIG1vZCBnYjE4MDMwOworK21vZCBn YjE4MDMwXzIwMjI7CisgbW9kIGlzb18yMDIyX2pwOworIG1vZCByZXBsYWNlbWVudDsKKyBtb2Qg c2hpZnRfamlzOworIG1vZCBzaW5nbGVfYnl0ZTsKKyBtb2QgdXRmXzE2OworIG1vZCB1dGZfODsK KyBtb2QgeF91c2VyX2RlZmluZWQ7CisgCitAQCAtOTA5LDE5ICs5NDEsMjAgQEAgcHViIHN0YXRp YyBHQktfSU5JVDogRW5jb2RpbmcgPSBFbmNvZGluZworICAgICBuYW1lOiAiR0JLIiwKKyAgICAg dmFyaWFudDogVmFyaWFudEVuY29kaW5nOjpHYmssCisgfTsKKyAKKyAvLy8gVGhlIEdCSyBlbmNv ZGluZy4KKyAvLy8KKyAvLy8gVGhlIGRlY29kZXIgZm9yIHRoaXMgZW5jb2RpbmcgaXMgdGhlIHNh bWUgYXMgdGhlIGRlY29kZXIgZm9yIGdiMTgwMzAuCisgLy8vIFRoZSBlbmNvZGVyIHNpZGUgb2Yg dGhpcyBlbmNvZGluZyBpcyBHQksgd2l0aCBXaW5kb3dzIGNvZGUgcGFnZSA5MzYgZXVybworLS8v LyBzaWduIGJlaGF2aW9yLiBHQksgZXh0ZW5kcyBHQjIzMTItODAgdG8gY292ZXIgdGhlIENKSyBV bmlmaWVkIElkZW9ncmFwaHMKKy0vLy8gVW5pY29kZSBibG9jayBhcyB3ZWxsIGFzIGEgaGFuZGZ1 bCBvZiBpZGVvZ3JhcGhzIGZyb20gdGhlIENKSyBVbmlmaWVkCistLy8vIElkZW9ncmFwaHMgRXh0 ZW5zaW9uIEEgYW5kIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMgYmxvY2tzLgorKy8vLyBz aWduIGJlaGF2aW9yIGFuZCB3aXRoIHRoZSBjaGFuZ2VzIHRvIHR3by1ieXRlIHNlcXVlbmNlcyBt YWRlIGluIEdCMTgwMzAtMjAyMi4KKysvLy8gR0JLIGV4dGVuZHMgR0IyMzEyLTgwIHRvIGNvdmVy IHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIFVuaWNvZGUgYmxvY2sgYXMKKysvLy8gd2VsbCBh cyBhIGhhbmRmdWwgb2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhz IEV4dGVuc2lvbiBBCisrLy8vIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIGJsb2Nr cy4KKyAvLy8KKyAvLy8gVW5saWtlIGUuZy4gaW4gdGhlIGNhc2Ugb2YgSVNPLTg4NTktMSBhbmQg d2luZG93cy0xMjUyLCBHQksgZW5jb2RlciB3YXNuJ3QKKyAvLy8gdW5pZmllZCB3aXRoIHRoZSBn YjE4MDMwIGVuY29kZXIgaW4gdGhlIEVuY29kaW5nIFN0YW5kYXJkIG91dCBvZiBjb25jZXJuCisg Ly8vIHRoYXQgc2VydmVycyB0aGF0IGV4cGVjdCBHQksgZm9ybSBzdWJtaXNzaW9ucyBtaWdodCBu b3QgYmUgYWJsZSB0byBoYW5kbGUKKyAvLy8gdGhlIGZvdXItYnl0ZSBzZXF1ZW5jZXMuCisgLy8v CisgLy8vIFtJbmRleCB2aXN1YWxpemF0aW9uIGZvciB0aGUgdHdvLWJ5dGUgc2VxdWVuY2VzXSho dHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLmh0bWwpLAorIC8vLyBbVmlz dWFsaXphdGlvbiBvZiBCTVAgY292ZXJhZ2Ugb2YgdGhlIHR3by1ieXRlIGluZGV4XShodHRwczov L2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9nYjE4MDMwLWJtcC5odG1sKQorQEAgLTE2NTMsMjAg KzE2ODYsMjEgQEAgcHViIHN0YXRpYyBVVEZfODogJidzdGF0aWMgRW5jb2RpbmcgPSAmVQorIC8v LyBpdGVtcy4KKyBwdWIgc3RhdGljIEdCMTgwMzBfSU5JVDogRW5jb2RpbmcgPSBFbmNvZGluZyB7 CisgICAgIG5hbWU6ICJnYjE4MDMwIiwKKyAgICAgdmFyaWFudDogVmFyaWFudEVuY29kaW5nOjpH YjE4MDMwLAorIH07CisgCisgLy8vIFRoZSBnYjE4MDMwIGVuY29kaW5nLgorIC8vLworLS8vLyBU aGlzIGVuY29kaW5nIG1hdGNoZXMgR0IxODAzMC0yMDA1IGV4Y2VwdCB0aGUgdHdvLWJ5dGUgc2Vx dWVuY2UgMHhBMyAweEEwCistLy8vIG1hcHMgdG8gVSszMDAwIGZvciBjb21wYXRpYmlsaXR5IHdp dGggZXhpc3RpbmcgV2ViIGNvbnRlbnQuIEFzIGEgcmVzdWx0LAorLS8vLyB0aGlzIGVuY29kaW5n IGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZvciB0aGUgcHJpdmF0ZS11c2UK Ky0vLy8gY2hhcmFjdGVyIFUrRTVFNS4KKysvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIEdCMTgw MzAtMjAyMiBleGNlcHQgdGhlIHR3by1ieXRlIHNlcXVlbmNlIDB4QTMgMHhBMAorKy8vLyBtYXBz IHRvIFUrMzAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIFdlYiBjb250ZW50IGFu ZCB0aGUgZm91ci1ieXRlCisrLy8vIHNlcXVlbmNlcyBmb3IgdGhlIG5vbi1QVUEgY2hhcmFjdGVy cyB0aGF0IGdvdCB0d28tYnl0ZSBzZXF1ZW5jZXMgc3RpbGwgZGVjb2RlCisrLy8vIHRvIHRoZSBz YW1lIG5vbi1QVUEgY2hhcmFjdGVycyBhcyBpbiBHQjE4MDMwLTIwMDUuIEFzIGEgcmVzdWx0LCB0 aGlzIGVuY29kaW5nCisrLy8vIGNhbiByZXByZXNlbnQgYWxsIG9mIFVuaWNvZGUgZXhjZXB0IGZv ciAxOSBwcml2YXRlLXVzZSBjaGFyYWN0ZXJzLgorIC8vLworIC8vLyBbSW5kZXggdmlzdWFsaXph dGlvbiBmb3IgdGhlIHR3by1ieXRlIHNlcXVlbmNlc10oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndo YXR3Zy5vcmcvZ2IxODAzMC5odG1sKSwKKyAvLy8gW1Zpc3VhbGl6YXRpb24gb2YgQk1QIGNvdmVy YWdlIG9mIHRoZSB0d28tYnl0ZSBpbmRleF0oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5v cmcvZ2IxODAzMC1ibXAuaHRtbCkKKyAvLy8KKyAvLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIHRo ZSBXaW5kb3dzIGNvZGUgcGFnZSA1NDkzNi4KKyAvLy8KKyAvLy8gVGhpcyB3aWxsIGNoYW5nZSBm cm9tIGBzdGF0aWNgIHRvIGBjb25zdGAgaWYgUnVzdCBjaGFuZ2VzCisgLy8vIHRvIG1ha2UgdGhl IHJlZmVyZW50IG9mIGBwdWIgY29uc3QgRk9POiAmJ3N0YXRpYyBFbmNvZGluZ2AKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbi50 eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1 X2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2JpZzVfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVz dCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERv bWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLwor K0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4K KyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0 ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg 77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfaW5fcmVm LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2Jp ZzVfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRl c3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBE b21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8K KytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cu CisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5z dGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQor IO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4dCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dC50 eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVs b3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVk IGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMg aXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFz ZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDvvIwK KyDjgIEKKyDjgIIKKyDvvI4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50 eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVs b3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVk IGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMg aXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFz ZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv71ACisg77+9 QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0CisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dAorQEAg LTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlz IGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVh dGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBX SEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdl bmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2Vu ZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUEKKyDvv71CCisg77+9 QworIO+/vUQKKyDvv71FCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50eHQKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVm LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBi ZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0 dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0 ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhp cyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxl YXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOqwggorIOqw gworIOqwhQorIOqwhgorIOqwiworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0CisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQKK0BA IC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhp cyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3Jl YXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20g V0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBn ZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdl bmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDqsIIKKyDqsIMKKyDqsIUK KyDqsIYKKyDqsIsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVm LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBi ZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0 dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0 ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhp cyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxl YXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUEKKyDv v71CCisg77+9QworIO+/vUQKKyDvv71FCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4 dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxv dyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6 Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQg ZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBp cyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNl IHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUAKKyDvv71B Cisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50 eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4 MDMwX2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0 ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMg RG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv CisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdH LgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkK KyDkuIIKKyDkuIQKKyDkuIUKKyDkuIYKKyDkuI8KK0BAIC03MTgwLDQzICs3MTc5LDQzIEBAIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXQKKyDPgQorIM+DCisgz4QKKyDP hQorIM+GCisgz4cKKyDPiAorIM+JCist7p6NCist7p6OCist7p6PCist7p6QCist7p6RCist7p6S Cist7p6TCisr77iQCisr77iSCisr77iRCisr77iTCisr77iUCisr77iVCisr77iWCisg77i1Cisg 77i2Cisg77i5Cisg77i6Cisg77i/Cisg77mACisg77i9Cisg77i+Cisg77mBCisg77mCCisg77mD Cisg77mECist7p6UCist7p6VCisr77iXCisr77iYCisg77i7Cisg77i8Cisg77i3Cisg77i4Cisg 77ixCist7p6WCisr77iZCisg77izCisg77i0Cisg7p6XCisg7p6YCisg7p6ZCisg7p6aCisg7p6b Cisg7p6cCitAQCAtMjM3NzMsODcgKzIzNzcyLDg3IEBAIEluc3RlYWQsIHBsZWFzZSByZWdlbmVy YXRlIHVzaW5nIGdlbmVyYXQKKyDuoJYKKyDuoJcKKyDuoJgKKyDiuoQKKyDjkbMKKyDjkYcKKyDi uogKKyDiuosKKy3uoJ4KKyvpvrQKKyDjlp4KKyDjmJoKKyDjmI4KKyDiuowKKyDiupcKKyDjpa4K KyDjpJgKKy3uoKYKKyvpvrUKKyDjp48KKyDjp58KKyDjqbMKKyDjp5AKKy3uoKsKKy3uoKwKKyvp vrYKKyvpvrcKKyDjrY4KKyDjsa4KKyDjs6AKKyDiuqcKKyDuoLEKKy3uoLIKKyvpvrgKKyDiuqoK KyDkgZYKKyDkhZ8KKyDiuq4KKyDkjLcKKyDiurMKKyDiurYKKyDiurcKKyDuoLsKKyDkjrEKKyDk jqwKKyDiursKKyDkj50KKyDkk5YKKyDkmaEKKyDkmYwKKy3uoYMKKyvpvrkKKyDknKMKKyDknKkK KyDknbwKKyDkno0KKyDiu4oKKyDkpYcKKyDkpboKKyDkpb0KKyDkpoIKKyDkpoMKKyDkpoUKKyDk poYKKyDkpp8KKyDkppsKKyDkprcKKyDkprYKKy3uoZQKKyvpvroKKyDuoZUKKyDksqMKKyDksp8K KyDksqAKKyDksqEKKyDksbcKKyDksqIKKyDktJMKKyDktJQKKyDktJUKKyDktJYKKyDktJcKKyDk tJgKKyDktJkKKyDktq4KKy3uoaQKKyvpvrsKKyDukagKKyDukakKKyDukaoKKyDukasKKyDukawK KyDuka0KKyDuka4KKyDuka8KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dAor QEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0 aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9j cmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJv bSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBh IGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJl Z2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOS4ggorIOS4hAorIOS4 hQorIOS4hgorIOS4jworQEAgLTcxNzksNDMgKzcxNzgsNDMgQEAgSW5zdGVhZCwgcGxlYXNlIHJl Z2VuZXJhdGUgdXNpbmcgZ2VuZXJhdAorIM+BCisgz4MKKyDPhAorIM+FCisgz4YKKyDPhworIM+I Cisgz4kKKy3uno0KKy3uno4KKy3uno8KKy3unpAKKy3unpEKKy3unpIKKy3unpMKKyvvuJAKKyvv uJIKKyvvuJEKKyvvuJMKKyvvuJQKKyvvuJUKKyvvuJYKKyDvuLUKKyDvuLYKKyDvuLkKKyDvuLoK KyDvuL8KKyDvuYAKKyDvuL0KKyDvuL4KKyDvuYEKKyDvuYIKKyDvuYMKKyDvuYQKKy3unpQKKy3u npUKKyvvuJcKKyvvuJgKKyDvuLsKKyDvuLwKKyDvuLcKKyDvuLgKKyDvuLEKKy3unpYKKyvvuJkK KyDvuLMKKyDvuLQKKyDunpcKKyDunpgKKyDunpkKKyDunpoKKyDunpsKKyDunpwKK0BAIC0yMzc3 Miw4NyArMjM3NzEsODcgQEAgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dAorIO6glgorIO6glworIO6gmAorIOK6hAorIOORsworIOORhworIOK6iAorIOK6iworLe6gngor K+m+tAorIOOWngorIOOYmgorIOOYjgorIOK6jAorIOK6lworIOOlrgorIOOkmAorLe6gpgorK+m+ tQorIOOnjworIOOnnworIOOpsworIOOnkAorLe6gqworLe6grAorK+m+tgorK+m+tworIOOtjgor IOOxrgorIOOzoAorIOK6pworIO6gsQorLe6gsgorK+m+uAorIOK6qgorIOSBlgorIOSFnworIOK6 rgorIOSMtworIOK6sworIOK6tgorIOK6tworIO6guworIOSOsQorIOSOrAorIOK6uworIOSPnQor IOSTlgorIOSZoQorIOSZjAorLe6hgworK+m+uQorIOScoworIOScqQorIOSdvAorIOSejQorIOK7 igorIOSlhworIOSlugorIOSlvQorIOSmggorIOSmgworIOSmhQorIOSmhgorIOSmnworIOSmmwor IOSmtworIOSmtgorLe6hlAorK+m+ugorIO6hlQorIOSyoworIOSynworIOSyoAorIOSyoQorIOSx tworIOSyogorIOS0kworIOS0lAorIOS0lQorIOS0lgorIOS0lworIOS0mAorIOS0mQorIOS2rgor Le6hpAorK+m+uworIO6RqAorIO6RqQorIO6RqgorIO6RqworIO6RrAorIO6RrQorIO6RrgorIO6R rworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv dGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0CisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dAor QEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0 aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9j cmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJv bSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBh IGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJl Z2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/vUAKKyDvv71BCisg 77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQK KysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAy Ml9qcF9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0 IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9t YWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisr R2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgor IAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3Rl YWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyAb JEIhIRsoQgorIBskQiEiGyhCCisgGyRCISMbKEIKKyAbJEIhJBsoQgorIBskQiElGyhCCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18y MDIyX2pwX2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQKKysrKyBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYu dHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJl bG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0 cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRl ZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlz IGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVh c2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg44CACisg44CB Cisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50 eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29f MjAyMl9qcF9vdXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUg dGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGlj IERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4w LworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRX Ry4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJ bnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5 Cisg44CACisg44CBCisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291 dF9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dAorQEAgLTEsMTAgKzEs OSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQg aXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1v bnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5k ZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBm aWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNp bmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIBskQiEhGyhCCisgGyRCISIbKEIKKyAbJEIh IxsoQgorIBskQiEkGyhCCisgGyRCISUbKEIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQgYi90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4u dHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJl bG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0 cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRl ZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlz IGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVh c2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+977+9Cisg 77+977+9Cisg77+977+9Cisg77+977+9Cisg77+977+9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMw MjA4X2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJp Z2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0 aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21h aW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJ Q0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5v dCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29k aW5nLWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwKKyDvvI4KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0 IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0 LnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2pp czAyMDhfb3V0LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2ppczAyMDhfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAorIO+8jgorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0 IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0 X3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9qaXMwMjA4X291dF9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFu eSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNh dGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1 YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29u OyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVh c2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJh dGUtZW5jb2RpbmctZGF0YS5weQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/vQor IO+/ve+/vQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9qaXMwMjEyX2luLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQKK0BAIC0xLDEwICsxLDkg QEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlz IGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25z Lm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4 ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmls ZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5n IGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv73vv73vv70KKyDvv73vv73vv70KKyDvv73v v73vv70KKyDvv73vv73vv70KKyDvv73vv73vv70KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IGIvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJf aW5fcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9k YXRhL2ppczAyMTJfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIO+/vQorIO+/vQorIO+/vQorIO+/vQorIO+/vQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50 eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlm dF9qaXNfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQg dG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQor LVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96 ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5T RS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVk aXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2Rpbmct ZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9y ZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0 X2ppc19pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEs OSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQg aXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1v bnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5k ZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBm aWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNp bmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAorIO+8 jgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9zaGlmdF9qaXNfb3V0LnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0CisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQKK0BAIC0xLDEw ICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21t ZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVj b21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdH IGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0 ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRl IHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwK KyDvvI4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19v dXRfcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8gdGhlIHRlc3Qg Y29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1YmxpYyBEb21h aW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKytH ZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1XSEFUV0cuCisg CisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQuCisgSW5zdGVh ZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorIO+/ vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECgpkaWZmIC0tZ2l0IGEvc2VhbW9ua2V5LTIu NTMuMjQtbW96aWxsYS0xODgyMjA5LnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0x ODgyMjA5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwYzE5NzgK LS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTE4ODIyMDkucGF0 Y2gKQEAgLTAsMCArMSwyNTM4NCBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBIZW5y aSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4KKyMgRGF0ZSAxNzE0NDYyMTg0IDAKKyMg Tm9kZSBJRCAxZGIyZWYxMjZhNmE4NTU1ZGJmNTAzNDVlMTY0OTJjOTc3YjQyZTkyCisjIFBhcmVu dCAgNzg3ZDljZDA2MjQxMmE0MjY0OWE4YzYxNjE5Yjk1YWIyMDRhYjU3MQorQnVnIDE4ODIyMDkg LSBVcGRhdGUgZW5jb2RpbmdfcnMgdG8gMC44LjM0IHRvIGRlYWwgd2l0aCBydXN0YyBjaGFuZ2Vz LiByPWdsYW5kaXVtLHN1cHBseS1jaGFpbi1yZXZpZXdlcnMKKworRGlmZmVyZW50aWFsIFJldmlz aW9uOiBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29tL0QyMDcxNjcKKwor ZGlmZiAtLWdpdCBhLy5jYXJnby9jb25maWcuaW4gYi8uY2FyZ28vY29uZmlnLmluCistLS0gYS8u Y2FyZ28vY29uZmlnLmluCisrKysgYi8uY2FyZ28vY29uZmlnLmluCitAQCAtMiwxNSArMiwxNSBA QAorIHJlZ2lzdHJ5ID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4JworIHJlcGxhY2Utd2l0aCA9ICd2ZW5kb3JlZC1zb3VyY2VzJworIAorIFtzb3VyY2UuImh0 dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSJdCisgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNv bS9zZXJ2by9zZXJkZSIKKyBicmFuY2ggPSAiZGVzZXJpYWxpemVfZnJvbV9lbnVtczgiCisgcmVw bGFjZS13aXRoID0gInZlbmRvcmVkLXNvdXJjZXMiCisgCistW3NvdXJjZS4iaHR0cHM6Ly9naXRo dWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kIl0KKy1naXQgPSAiaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL3BhY2tlZF9zaW1kIgorK1tzb3VyY2UuImdpdCtodHRwczovL2dpdGh1Yi5jb20v aHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kP3Jldj03ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFj ODU1NGU4ZDhhNDhhZjgwIl0KKytnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2Fu eV9hbGxfd29ya2Fyb3VuZCIKKytyZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRl OGQ4YTQ4YWY4MCIKKyByZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291cmNlcyIKKy1yZXYgPSAi ZTU4OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCIKKyAKKyBbc291cmNlLnZl bmRvcmVkLXNvdXJjZXNdCisgZGlyZWN0b3J5ID0gJ0B0b3Bfc3JjZGlyQC90aGlyZF9wYXJ0eS9y dXN0JworZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9DYXJnby5sb2NrCistLS0gYS9DYXJnby5s b2NrCisrKysgYi9DYXJnby5sb2NrCitAQCAtMTYsMTYgKzE2LDI1IEBAIG5hbWUgPSAiYW5zaV90 ZXJtIgorIHZlcnNpb24gPSAiMC4xMS4wIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICJlZTQ5YmFm NmNiNjE3Yjg1M2FhOGQ5M2JmNDIwZGIyMzgzZmFiNDZkMzE0NDgyY2EyODAzYjQwZDVmZGU5Nzli IgorIGRlcGVuZGVuY2llcyA9IFsKKyAgIndpbmFwaSAwLjMuNyIsCisgXQorIAorIFtbcGFja2Fn ZV1dCisrbmFtZSA9ICJhbnlfYWxsX3dvcmthcm91bmQiCisrdmVyc2lvbiA9ICIwLjEuMCIKKytz b3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91 bmQ/cmV2PTdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAjN2ZiMWI3MDM0 YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKKytkZXBlbmRlbmNpZXMgPSBbCisrICJj ZmctaWYgMS4wLjAiLAorKyAidmVyc2lvbl9jaGVjayIsCisrXQorKworK1tbcGFja2FnZV1dCisg bmFtZSA9ICJhcHBfdW5pdHMiCisgdmVyc2lvbiA9ICIwLjcuMCIKKyBzb3VyY2UgPSAicmVnaXN0 cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tz dW0gPSAiOWRhZGM2NjgzOTBiMzczZTczZTRhYmJmYzFmMDcyMzhiMDlhMjU4NThmMmYzOWMwNmNl YmM2ZDhlMTQxZDc3NCIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJudW0tdHJhaXRzIiwKKyAgInNl cmRlIiwKKyBdCitAQCAtNjA1LDIyICs2MTQsMjIgQEAgdmVyc2lvbiA9ICIwLjEuMCIKKyBkZXBl bmRlbmNpZXMgPSBbCisgICJlbmNvZGluZ19ycyIsCisgICJuc2Vycm9yIiwKKyAgIm5zc3RyaW5n IiwKKyBdCisgCisgW1twYWNrYWdlXV0KKyBuYW1lID0gImVuY29kaW5nX3JzIgorLXZlcnNpb24g PSAiMC44LjMzIgorK3ZlcnNpb24gPSAiMC44LjM0IgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKy1jaGVja3N1bSA9ICI3 MjY4YjM4NjI5NmEwMjVlNDc0ZDUxNDA2NzhmNzVkNmRlOTQ5M2FlNTVhNWQ3MDllZWI5ZGQwODE0 OTk0NWUxIgorK2NoZWNrc3VtID0gImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0ZDA2MzE2ODE4 NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkiCisgZGVwZW5kZW5jaWVzID0gWworKyAiYW55 X2FsbF93b3JrYXJvdW5kIiwKKyAgImNmZy1pZiAxLjAuMCIsCistICJwYWNrZWRfc2ltZCIsCisg XQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJlbnZfbG9nZ2VyIgorIHZlcnNpb24gPSAiMC41 LjEzIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2Ny YXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICIxNWIwYTRkMmUzOWY4NDIwMjEwYmU4YjI3ZWVk YTI4MDI5NzI5ZTJmZDQyOTEwMTk0NTUwMTZjMzQ4MjQwYzM4IgorIGRlcGVuZGVuY2llcyA9IFsK K0BAIC0xMzI0LDI1ICsxMzMzLDE2IEBAIG5hbWUgPSAib3duaW5nX3JlZiIKKyB2ZXJzaW9uID0g IjAuNC4wIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICI0OWE0YjhlYTIxNzllNmEyZTI3NDExZDNi Y2EwOWNhNmRkNjMwODIxY2Y2ODk0YzZjN2M4NDY3YThlZTdlZjEzIgorIGRlcGVuZGVuY2llcyA9 IFsKKyAgInN0YWJsZV9kZXJlZl90cmFpdCIsCisgXQorIAorIFtbcGFja2FnZV1dCistbmFtZSA9 ICJwYWNrZWRfc2ltZCIKKy12ZXJzaW9uID0gIjAuMy45IgorLXNvdXJjZSA9ICJnaXQraHR0cHM6 Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kP3Jldj1lNTg4Y2ViNTY4ODc4ZTFhMzE1 NmVhOWNlNTUxZDViNjNlZjBjZGM0I2U1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2Vm MGNkYzQiCistZGVwZW5kZW5jaWVzID0gWworLSAiY2ZnLWlmIDEuMC4wIiwKKy0gIm51bS10cmFp dHMiLAorLV0KKy0KKy1bW3BhY2thZ2VdXQorIG5hbWUgPSAicGFya2luZ19sb3QiCisgdmVyc2lv biA9ICIwLjguMCIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiZmE3NzY3ODE3NzAxY2NlNzAxZDU1 ODViOWM0ZGIzY2RkMDIwODYzOTgzMjJjMWQ3ZThiZjUwOTRhOTZhMmNlNyIKKyBkZXBlbmRlbmNp ZXMgPSBbCisgICJsb2NrX2FwaSIsCisgICJwYXJraW5nX2xvdF9jb3JlIiwKKyAgInJ1c3RjX3Zl cnNpb24iLAorQEAgLTIzNjYsMTYgKzIzNjYsMjIgQEAgY2hlY2tzdW0gPSAiMDI1Y2U0MGEwMDdl MTkwN2U1OGQ1YmMxYTU5NAorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJ2ZWNfbWFwIgorIHZl cnNpb24gPSAiMC44LjAiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gIjg4N2I1YjYzMWMyYWQwMTYy OGJiYmFhN2RkNGM4NjlmODBkMzE4NjY4OGY4ZDBiNmY1ODc3NGZiZTMyNDk4OGMiCisgCisgW1tw YWNrYWdlXV0KKytuYW1lID0gInZlcnNpb25fY2hlY2siCisrdmVyc2lvbiA9ICIwLjkuNCIKKytz b3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8t aW5kZXgiCisrY2hlY2tzdW0gPSAiNDk4NzRiNTE2N2I2NWQ3MTkzYjhhYmExNTY3ZjVjN2Q5M2Qw MDFjYWZjMzQ2MDBjZWUwMDNlZGE3ODdlNDgzZiIKKysKKytbW3BhY2thZ2VdXQorIG5hbWUgPSAi dm9pZCIKKyB2ZXJzaW9uID0gIjEuMC4yIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICI2YTAyZTQ4 ODVlZDNiYzBmMmRlOTBlYTZkZDQ1ZWJjYmI2NmRhY2ZmZTAzNTQ3ZmFkYmIwZWVhZTI3NzA4ODdk IgorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJ3YWxrZGlyIgorIHZlcnNpb24gPSAiMi4xLjQi CitkaWZmIC0tZ2l0IGEvQ2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKKy0tLSBhL0NhcmdvLnRvbWwK KysrKyBiL0NhcmdvLnRvbWwKK0BAIC00OCw5ICs0OCw5IEBAIG9wdC1sZXZlbCA9IDIKKyBycGF0 aCA9IGZhbHNlCisgZGVidWctYXNzZXJ0aW9ucyA9IGZhbHNlCisgcGFuaWMgPSAiYWJvcnQiCisg Y29kZWdlbi11bml0cyA9IDEKKyAKKyBbcGF0Y2guY3JhdGVzLWlvXQorIGxpYnVkZXYtc3lzID0g eyBwYXRoID0gImRvbS93ZWJhdXRobi9saWJ1ZGV2LXN5cyIgfQorIHNlcmRlX2Rlcml2ZSA9IHsg Z2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSIsIGJyYW5jaCA9ICJkZXNlcmlh bGl6ZV9mcm9tX2VudW1zOCIgfQorLXBhY2tlZF9zaW1kID0geyBnaXQgPSAiaHR0cHM6Ly9naXRo dWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kIiwgcmV2ID0gImU1ODhjZWI1Njg4NzhlMWEzMTU2 ZWE5Y2U1NTFkNWI2M2VmMGNkYzQiIH0KKythbnlfYWxsX3dvcmthcm91bmQgPSB7IGdpdCA9ICJo dHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kIiwgcmV2ID0gIjdm YjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiIH0KK2RpZmYgLS1naXQgYS9j b25maWcvbWFrZWZpbGVzL3J1c3QubWsgYi9jb25maWcvbWFrZWZpbGVzL3J1c3QubWsKKy0tLSBh L2NvbmZpZy9tYWtlZmlsZXMvcnVzdC5taworKysrIGIvY29uZmlnL21ha2VmaWxlcy9ydXN0Lm1r CitAQCAtNjEsMTcgKzYxLDE3IEBAIGVuZGlmCisgZW5kaWYKKyBlbmRpZgorIAorIGlmbmRlZiBS VVNUQ19CT09UU1RSQVAKKyBpZmVxICgsJChmaWx0ZXIgMS40Ny4lIDEuNDguJSAxLjQ5LiUsJChS VVNUQ19WRVJTSU9OKSkpCisgIyBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0X3NoYXJlZCxxY21z IGZvciBsYXRlcgorIFJVU1RDX0JPT1RTVFJBUCA6PSBna3J1c3Rfc2hhcmVkCisgaWZkZWYgTU9a X1JVU1RfU0lNRAorLVJVU1RDX0JPT1RTVFJBUCA6PSAkKFJVU1RDX0JPT1RTVFJBUCksZW5jb2Rp bmdfcnMscGFja2VkX3NpbWQKKytSVVNUQ19CT09UU1RSQVAgOj0gJChSVVNUQ19CT09UU1RSQVAp LGVuY29kaW5nX3JzLGFueV9hbGxfd29ya2Fyb3VuZAorIGVuZGlmCisgZXhwb3J0IFJVU1RDX0JP T1RTVFJBUAorIGVuZGlmCisgZW5kaWYKKyAKKyBpZmRlZiBDQVJHT19JTkNSRU1FTlRBTAorIGV4 cG9ydCBDQVJHT19JTkNSRU1FTlRBTAorIGVuZGlmCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0 eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgorbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2Fs bF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMCwwICsxLDEgQEAKKyt7ImZp bGVzIjp7IkNhcmdvLnRvbWwiOiJmOGMxMjc0NDlkYzk0MzJkNDA0YzIxYzk5ODMzZTQ2MTdhYjg4 YTc5NzQ0NWFmMjQ5YTdmZTNjOTg5OTg1ZDZkIiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1 MTQ1MzE2NjhkN2UwMDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwi TElDRU5TRS1NSVQiOiI2NDg1YjhlZDMxMGQzZjAzNDBiZjFhZDFmNDc2NDUwNjljZTQwNjlkY2M2 YmI0NmM3ZDVjNmZhZjQxZGUxZmRiIiwiTElDRU5TRS1NSVQtUUNNUyI6IjM2ZDg0N2FlODgyZjY1 NzRlYmM3MmY1NmE0ZjM1NGU0ZjEwNGZkZTRhNTg0MzczNDk2NDgyZTk3ZDUyZDMxYmMiLCJSRUFE TUUubWQiOiI0YzYxN2I4Y2VkM2EyN2I3ZWRlY2YwZTVlNDFlZDQ1MWMwNGU4OGRhYjUyOWU3YTM1 ZmNjYzRlMTU1MWVmYmQ3IiwiYnVpbGQucnMiOiI1NmIyOWFiNmRhM2U0OTA3NWJmZDBhN2I2OTAy NjdjODAxNjI5OGJmMGQzMzJlMmU2OGJiYWYxOWRlY2JiZjcxIiwic3JjL2xpYi5ycyI6IjcxMTgx MDY2OTBiOWQyNWM1ZDBhM2UyMDc5ZmViODNkNzZmMWQ0MzRkMGRhMzZiOWQwMzUxODA2ZDI3Yzg1 MGQifSwicGFja2FnZSI6bnVsbH0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0NhcmdvLnRvbWwgYi90 aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9DYXJnby50b21sCituZXcgZmlsZSBt b2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxs X3dvcmthcm91bmQvQ2FyZ28udG9tbAorQEAgLTAsMCArMSwyOCBAQAorKyMgVEhJUyBGSUxFIElT IEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCisrIworKyMgV2hlbiB1cGxvYWRpbmcg Y3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkKKysjICJub3Jt YWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0eQorKyMgd2l0 aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAgZGVwZW5kZW5j aWVzCisrIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMuCisrIwor KyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBvcmlnaW5h bCBDYXJnby50b21sCisrIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChhbmQgbXVj aCBtb3JlIHJlYXNvbmFibGUpLgorKyMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhlIG9yaWdp bmFsIGNvbnRlbnRzLgorKworK1twYWNrYWdlXQorK2VkaXRpb24gPSAiMjAyMSIKKytuYW1lID0g ImFueV9hbGxfd29ya2Fyb3VuZCIKKyt2ZXJzaW9uID0gIjAuMS4wIgorK2F1dGhvcnMgPSBbIkhl bnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCisrZGVzY3JpcHRpb24gPSAiV29y a2Fyb3VuZCBmb3IgYmFkIExMVk0gY29kZWdlbiBmb3IgYm9vbGVhbiByZWR1Y3Rpb25zIG9uIDMy LWJpdCBBUk0iCisraG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2FueV9hbGxfd29ya2Fyb3Vu ZC8iCisrZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvYW55X2FsbF93b3JrYXJvdW5k LyIKKytyZWFkbWUgPSAiUkVBRE1FLm1kIgorK2xpY2Vuc2UgPSAiTUlUIE9SIEFwYWNoZS0yLjAi CisrcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3Jr YXJvdW5kIgorKworK1tkZXBlbmRlbmNpZXNdCisrY2ZnLWlmID0gIjEuMCIKKysKKytbYnVpbGQt ZGVwZW5kZW5jaWVzXQorK3ZlcnNpb25fY2hlY2sgPSAiMC45IgorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFy dHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29y a2Fyb3VuZC9MSUNFTlNFLUFQQUNIRQorQEAgLTAsMCArMSwyMDEgQEAKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorKyAgICAgICAgICAgICAgICAgICAgICAg IFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKysgICAgICAgICAgICAgICAgICAgICBodHRwOi8v d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisrCisrVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVT RSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisrCisrMS4gRGVmaW5pdGlvbnMuCisr CisrICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1 c2UsIHJlcHJvZHVjdGlvbiwKKysgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2Vj dGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKysKKysgICAiTGljZW5zb3IiIHNo YWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorKyAg IHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKysKKysg ICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0 eSBhbmQgYWxsCisrICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxl ZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4g Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisrICAgImNvbnRyb2wiIG1lYW5z IChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisrICAgZGly ZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qg b3IKKysgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUw JSkgb3IgbW9yZSBvZiB0aGUKKysgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVm aWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorKworKyAgICJZb3UiIChvciAiWW91ciIp IHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKysgICBleGVyY2lzaW5n IHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorKworKyAgICJTb3VyY2UiIGZv cm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25z LAorKyAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUs IGRvY3VtZW50YXRpb24KKysgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorKwor KyAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNo YW5pY2FsCisrICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9y bSwgaW5jbHVkaW5nIGJ1dAorKyAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2Rl LCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKysgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIg bWVkaWEgdHlwZXMuCisrCisrICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9y c2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKysgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFi bGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisrICAgY29weXJpZ2h0IG5v dGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisrICAgKGFu IGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKysKKysgICAiRGVy aXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3Ig T2JqZWN0CisrICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUg V29yayBhbmQgZm9yIHdoaWNoIHRoZQorKyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRp b25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKysgICByZXByZXNlbnQs IGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJw b3NlcworKyAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5j bHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorKyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGlu ayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKysgICB0aGUgV29yayBh bmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorKworKyAgICJDb250cmlidXRpb24iIHNoYWxs IG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisrICAgdGhlIG9yaWdpbmFs IHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwor KyAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50 ZW50aW9uYWxseQorKyAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRo ZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKysgICBvciBieSBhbiBpbmRpdmlkdWFsIG9y IExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKysgICB0aGUg Y29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1 Ym1pdHRlZCIKKysgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdy aXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisrICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXBy ZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKysgICBjb21tdW5pY2F0 aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0 ZW1zLAorKyAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnks IG9yIG9uIGJlaGFsZiBvZiwgdGhlCisrICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRp c2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisrICAgZXhjbHVkaW5nIGNvbW11 bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKysgICBk ZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29u dHJpYnV0aW9uLiIKKysKKysgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5k IGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorKyAgIG9uIGJlaGFsZiBvZiB3aG9tIGEg Q29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorKyAgIHN1YnNl cXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorKworKzIuIEdyYW50IG9mIENv cHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgor KyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBh IHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95 YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVj ZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorKyAgIHB1YmxpY2x5IGRpc3BsYXksIHB1 YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorKyAgIFdvcmsg YW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisrCisr My4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFu dHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8t Y2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgKGV4Y2VwdCBhcyBzdGF0ZWQg aW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisrICAg dXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIg dGhlIFdvcmssCisrICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBw YXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKysgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJl IG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorKyAgIENvbnRyaWJ1dGlvbihzKSBhbG9u ZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKysgICB3aXRoIHRo ZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlv dQorKyAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGlu Y2x1ZGluZyBhCisrICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkg YWxsZWdpbmcgdGhhdCB0aGUgV29yaworKyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRl ZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisrICAgb3IgY29udHJpYnV0b3J5 IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworKyAgIGdyYW50 ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0 ZQorKyAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKysKKys0LiBS ZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9m IHRoZQorKyAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0s IHdpdGggb3Igd2l0aG91dAorKyAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2Jq ZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisrICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6CisrCisrICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2Yg dGhlIFdvcmsgb3IKKysgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNl bnNlOyBhbmQKKysKKysgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRv IGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisrICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdl ZCB0aGUgZmlsZXM7IGFuZAorKworKyAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3Vy Y2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworKyAgICAgICB0aGF0IFlvdSBkaXN0cmli dXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisrICAgICAgIGF0dHJp YnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisrICAgICAg IGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQg b2YKKysgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorKworKyAgIChkKSBJZiB0aGUg V29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworKyAgICAg ICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJp YnV0ZSBtdXN0CisrICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1 dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorKyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwg ZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKysgICAgICAgcGVydGFpbiB0byBh bnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisrICAgICAg IG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3Ry aWJ1dGVkCisrICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0 aGUgU291cmNlIGZvcm0gb3IKKysgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxv bmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisrICAgICAgIHdpdGhpbiBhIGRpc3Bs YXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKysgICAgICAgd2hl cmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRl bnRzCisrICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVy cG9zZXMgb25seSBhbmQKKysgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1h eSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKysgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZh dGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKysgICAgICAgb3IgYXMg YW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisr ICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJl IGNvbnN0cnVlZAorKyAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisrCisrICAgWW91 IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlv bnMgYW5kCisrICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucworKyAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJp YnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKysgICBmb3IgYW55IHN1Y2ggRGVyaXZh dGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKysgICByZXByb2R1Y3Rp b24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgK KysgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorKworKzUuIFN1Ym1p c3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVy d2lzZSwKKysgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBp bmNsdXNpb24gaW4gdGhlIFdvcmsKKysgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJl IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgd2l0 aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorKyAgIE5vdHdpdGhzdGFu ZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkK KysgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkg aGF2ZSBleGVjdXRlZAorKyAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0 aW9ucy4KKysKKys2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVy bWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisrICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2Ug bWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorKyAgIGV4Y2VwdCBhcyBy ZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRo ZQorKyAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2Yg dGhlIE5PVElDRSBmaWxlLgorKworKzcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyBy ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBM aWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKysgICBDb250cmlidXRvciBwcm92 aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKysgICBXSVRIT1VU IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IK KysgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRp ZXMgb3IgY29uZGl0aW9ucworKyAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFO VEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKysgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBh cmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKysgICBhcHByb3ByaWF0 ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkK KysgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1 bmRlciB0aGlzIExpY2Vuc2UuCisrCisrOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5v IGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisrICAgd2hldGhlciBpbiB0b3J0IChp bmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisrICAgdW5sZXNz IHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3Nz bHkKKysgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFu eSBDb250cmlidXRvciBiZQorKyAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGlu ZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKysgICBpbmNpZGVudGFsLCBvciBjb25z ZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKysgICByZXN1 bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2Ug dGhlCisrICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBs b3NzIG9mIGdvb2R3aWxsLAorKyAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3Ig bWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisrICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2Vz IG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorKyAgIGhhcyBiZWVuIGFkdmlz ZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKysKKys5LiBBY2NlcHRpbmcg V2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisr ICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0 byBvZmZlciwKKysgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0 LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorKyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9u cyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisrICAgTGljZW5zZS4gSG93ZXZl ciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKysgICBv biBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9u IGJlaGFsZgorKyAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFn cmVlIHRvIGluZGVtbmlmeSwKKysgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3Ig aGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKysgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFz c2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisrICAgb2YgeW91ciBh Y2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisrCisr RU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisrCisrQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0 aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgorKworKyAgIFRvIGFwcGx5IHRoZSBBcGFj aGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisrICAgYm9pbGVy cGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgor KyAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24n dCBpbmNsdWRlCisrICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3Nl ZCBpbiB0aGUgYXBwcm9wcmlhdGUKKysgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9y bWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKKysgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5k IGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisrICAgc2FtZSAicHJp bnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisrICAgaWRlbnRp ZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgorKworK0NvcHlyaWdodCBbeXl5 eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorKworK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFj aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworK3lvdSBtYXkgbm90IHVz ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKytZb3Ug bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKysKKysJaHR0cDovL3d3dy5hcGFj aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisrCisrVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxp Y2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorK2Rpc3RyaWJ1dGVk IHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisr V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHBy ZXNzIG9yIGltcGxpZWQuCisrU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3Vh Z2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNl bnNlLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJ Q0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1N SVQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0 eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVAorQEAgLTAsMCArMSwyNSBAQAor K0NvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMKKysKKytQZXJt aXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55CisrcGVyc29u IG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZAorK2RvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUKKytTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAorK2xpbWl0YXRpb24gdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCisrcHVibGlzaCwgZGlzdHJpYnV0 ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCisrdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUKKytpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZworK2NvbmRpdGlvbnM6CisrCisrVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKKytzaGFsbCBi ZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisrb2YgdGhl IFNvZnR3YXJlLgorKworK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GCisrQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRAorK1RPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklU TkVTUyBGT1IgQQorK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBO TyBFVkVOVAorK1NIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZCisrQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTgorK09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9N LCBPVVQgT0YgT1IKKytJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKKytERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQtUUNNUyBiL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlULVFDTVMKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxf d29ya2Fyb3VuZC9MSUNFTlNFLU1JVC1RQ01TCitAQCAtMCwwICsxLDIxIEBACisrcWNtcworK0Nv cHlyaWdodCAoQykgMjAwOS0yMDI0IE1vemlsbGEgQ29ycG9yYXRpb24KKytDb3B5cmlnaHQgKEMp IDE5OTgtMjAwNyBNYXJ0aSBNYXJpYQorKworK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyAKKythIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksIAorK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGlu Y2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gCisrdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIAorK2FuZC9vciBz ZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZSBTb2Z0d2FyZSAKKytpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorKworK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIAorK2FsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKworK1RIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAKKytF WFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gCisrVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgCisrTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSAKKytMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIAorK09GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiAKKytXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRI RSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fy b3VuZC9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9SRUFE TUUubWQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9SRUFETUUubWQKK0BAIC0wLDAgKzEsMTMgQEAK KysjIGFueV9hbGxfd29ya2Fyb3VuZAorKworK1RoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBiYWQg Y29kZWdlbiAoW1J1c3QgYnVnXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BvcnRhYmxl LXNpbWQvaXNzdWVzLzE0NiksIFtMTFZNIGJ1Z10oaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2 bS1wcm9qZWN0L2lzc3Vlcy81MDQ2NikpIGZvciB0aGUgYGFueSgpYCBhbmQgYGFsbCgpYCByZWR1 Y3Rpb25zIGZvciBORU9OLWJhY2tlZCBTSU1EIHZlY3RvcnMgb24gMzItYml0IEFSTS4gT24gb3Ro ZXIgcGxhdGZvcm1zIHRoZXNlIGRlbGVnYXRlIHRvIGBhbnkoKWAgYW5kIGBhbGwoKWAgaW4gYGNv cmU6OnNpbWRgLgorKworK1RoZSBwbGFuIGlzIHRvIGFiYW5kb24gdGhpcyBjcmF0ZSBvbmNlIHRo ZSBMTFZNIGJ1ZyBpcyBmaXhlZCBvciBgY29yZTo6c2ltZGAgd29ya3MgYXJvdW5kIHRoZSBMTFZN IGJ1Zy4KKysKKytUaGUgY29kZSBpcyBmb3JrZWQgZnJvbSB0aGUgW2BwYWNrZWRfc2ltZGAgY3Jh dGVdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9oc2l2b25lbi9wYWNrZWRfc2lt ZC9kOTM4ZTM5YmVlOWJjNWMyMjJmNWYyZjJhMGRmOWU1M2I1Y2UzNmFlL3NyYy9jb2RlZ2VuL3Jl ZHVjdGlvbnMvbWFzay9hcm0ucnMpLgorKworK1RoaXMgY3JhdGUgcmVxdWlyZXMgTmlnaHRseSBS dXN0IGFzIGl0IGRlcGVuZHMgb24gdGhlIGBwb3J0YWJsZV9zaW1kYCBmZWF0dXJlLgorKworKyMg TGljZW5zZQorKworK2BNSVQgT1IgQXBhY2hlLTIuMGAsIHNpbmNlIHRoYXQncyBob3cgYHBhY2tl ZF9zaW1kYCBpcyBsaWNlbnNlZC4gKFRoZSBBUk0gaW50cmluc2ljcyBSdXN0IHZlcnNpb24gd29y a2Fyb3VuZCBpcyBmcm9tIHFjbXMsIHNlZSBMSUNFTlNFLU1JVC1RQ01TLikKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91 bmQvYnVpbGQucnMKK0BAIC0wLDAgKzEsNyBAQAorK2V4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNr IGFzIHJ1c3RjOworKworK2ZuIG1haW4oKSB7CisrICAgIGlmIHJ1c3RjOjppc19taW5fdmVyc2lv bigiMS43OC4wIikudW53cmFwX29yKGZhbHNlKSB7CisrICAgICAgICBwcmludGxuISgiY2FyZ286 cnVzdGMtY2ZnPXN0ZHNpbWRfc3BsaXQiKTsKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5k L3NyYy9saWIucnMKK0BAIC0wLDAgKzEsMTEwIEBACisrLy8gVGhpcyBjb2RlIGJlZ2FuIGFzIGEg Zm9yayBvZgorKy8vIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ydXN0LWxhbmcv cGFja2VkX3NpbWQvZDkzOGUzOWJlZTliYzVjMjIyZjVmMmYyYTBkZjllNTNiNWNlMzZhZS9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCisrLy8gd2hpY2ggZGlkbid0IGhhdmUgYSBs aWNlbnNlIGhlYWRlciBvbiB0aGUgZmlsZSwgYnV0IENhcmdvLnRvbWwgc2FpZCAiTUlUIE9SIEFw YWNoZS0yLjAiLgorKy8vIFNlZSBMSUNFTlNFLU1JVCBhbmQgTElDRU5TRS1BUEFDSEUuCisrCisr IyFbbm9fc3RkXQorKyMhW2ZlYXR1cmUocG9ydGFibGVfc2ltZCldCisrIyFbY2ZnX2F0dHIoCisr ICAgIGFsbCgKKysgICAgICAgIHN0ZHNpbWRfc3BsaXQsCisrICAgICAgICB0YXJnZXRfYXJjaCA9 ICJhcm0iLAorKyAgICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAorKyAgICAgICAgdGFy Z2V0X2ZlYXR1cmUgPSAibmVvbiIsCisrICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIKKysg ICAgKSwKKysgICAgZmVhdHVyZShzdGRhcmNoX2FybV9uZW9uX2ludHJpbnNpY3MpCisrKV0KKysj IVtjZmdfYXR0cigKKysgICAgYWxsKAorKyAgICAgICAgbm90KHN0ZHNpbWRfc3BsaXQpLAorKyAg ICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKysgICAgICAgIHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIiwKKysgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorKyAgICAgICAgdGFyZ2V0 X2ZlYXR1cmUgPSAidjciCisrICAgICksCisrICAgIGZlYXR1cmUoc3Rkc2ltZCkKKyspXQorKwor K3VzZSBjZmdfaWY6OmNmZ19pZjsKKyt1c2UgY29yZTo6c2ltZDo6bWFzazE2eDg7CisrdXNlIGNv cmU6OnNpbWQ6Om1hc2szMng0OworK3VzZSBjb3JlOjpzaW1kOjptYXNrOHgxNjsKKysKKytjZmdf aWYhIHsKKysgICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdldF9lbmRp YW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsIHRhcmdldF9mZWF0dXJlID0g InY3IikpXSB7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6bWFzazh4ODsKKysgICAgICAgIHVz ZSBjb3JlOjpzaW1kOjptYXNrMTZ4NDsKKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjptYXNrMzJ4 MjsKKysgICAgICAgIG1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7CisrICAgICAg ICAgICAgKCRhbGw6aWRlbnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2 cG1pbjppZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7CisrICAgICAgICAgICAgICAgICNbaW5saW5l XQorKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFsbChzOiAkaWQpIC0+IGJvb2wgeworKyAgICAg ICAgICAgICAgICAgICAgdXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWluOworKyAgICAgICAgICAg ICAgICAgICAgdXNlIGNvcmU6Om1lbTo6dHJhbnNtdXRlOworKyAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVjOiAkaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzIH0uaGFsdmVzOwor KyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtaW4o dHJhbnNtdXRlKGhhbHZlcy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOworKyAgICAgICAgICAg ICAgICAgICAgICAgIGguYWxsKCkKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgfQorKyAgICAgICAgICAgICAgICAjW2lubGluZV0KKysgICAgICAgICAgICAgICAgcHVi IGZuICRhbnkoczogJGlkKSAtPiBib29sIHsKKysgICAgICAgICAgICAgICAgICAgIHVzZSBjb3Jl OjphcmNoOjphcm06OiR2cG1heDsKKysgICAgICAgICAgICAgICAgICAgIHVzZSBjb3JlOjptZW06 OnRyYW5zbXV0ZTsKKysgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CisrICAgICAgICAgICAg ICAgICAgICAgICAgdW5pb24gVSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZl czogKCRoYWxmLCAkaGFsZiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJGlk LAorKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgaGFsdmVzID0gVSB7IHZlYzogcyB9LmhhbHZlczsKKysgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRy YW5zbXV0ZShoYWx2ZXMuMSkpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBoLmFueSgpCisr ICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9 CisrICAgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgICBtYWNyb19ydWxlcyEgYXJtXzEy OF92N19uZW9uX2ltcGwgeworKyAgICAgICAgICAgICgkYWxsOmlkZW50LCAkYW55OmlkZW50LCAk aWQ6aWRlbnQsICRoYWxmOmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1heDppZGVudCkgPT4gewor KyAgICAgICAgICAgICAgICAjW2lubGluZShhbHdheXMpXQorKyAgICAgICAgICAgICAgICBwdWIg Zm4gJGFsbChzOiAkaWQpIC0+IGJvb2wgeworKyAgICAgICAgICAgICAgICAgICAgcy5hbGwoKQor KyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisr ICAgICAgICAgICAgICAgIHB1YiBmbiAkYW55KHM6ICRpZCkgLT4gYm9vbCB7CisrICAgICAgICAg ICAgICAgICAgICBzLmFueSgpCisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICB9Cisr ICAgICAgICB9CisrICAgIH0KKyt9CisrCisrYXJtXzEyOF92N19uZW9uX2ltcGwhKAorKyAgICBh bGxfbWFzazh4MTYsCisrICAgIGFueV9tYXNrOHgxNiwKKysgICAgbWFzazh4MTYsCisrICAgIG1h c2s4eDgsCisrICAgIHZwbWluX3U4LAorKyAgICB2cG1heF91OAorKyk7CisrYXJtXzEyOF92N19u ZW9uX2ltcGwhKAorKyAgICBhbGxfbWFzazE2eDgsCisrICAgIGFueV9tYXNrMTZ4OCwKKysgICAg bWFzazE2eDgsCisrICAgIG1hc2sxNng0LAorKyAgICB2cG1pbl91MTYsCisrICAgIHZwbWF4X3Ux NgorKyk7CisrYXJtXzEyOF92N19uZW9uX2ltcGwhKAorKyAgICBhbGxfbWFzazMyeDQsCisrICAg IGFueV9tYXNrMzJ4NCwKKysgICAgbWFzazMyeDQsCisrICAgIG1hc2szMngyLAorKyAgICB2cG1p bl91MzIsCisrICAgIHZwbWF4X3UzMgorKyk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24KK0BAIC0xLDEgKzEsMSBAQAorLXsiZmlsZXMi OnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYwZWFhODk4 YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1YmIxODA4 NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAiLCJDYXJn by50b21sIjoiNDJmYTgzMzIyYWE5ZmQ2NzIzYjc3ZDM1ZDBjYWNiOTJjYmI2ZTdmNTczY2UxMWM1 NWY1MjI1MjkyODY2ZjhmNCIsIklkZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhkZTUyYzA5 YWRkYWY5MWUxNjMyNDU0ZWQwMmU4OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBBQ0hFIjoi Y2ZjNzc0OWI5NmY2M2JkMzFjM2M0MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIwMDM0MTdi YzUyM2QzMCIsIkxJQ0VOU0UtTUlUIjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2ZDE2YmRm YjVlYzBjNWNlNDJiMjQ2OTRkOGJiZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoiODM4MTE4 Mzg4ZmU1YzJlN2YxZGJiYWVlZDEzZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5ODdkMWE1 MCIsIlJFQURNRS5tZCI6ImQ5MzhlOGFiMGI5YWI2N2U3NGExYTRmNDhmMjNmZGNlOTU2ZDBhZDNh M2Y2MTQ3YWU3NjEyYTkyNzYzYzg4ZDUiLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDllM2JmZTJk MjI3NGI2Y2NkNmYwNzE0YTQxODhjY2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRvYy9CaWc1 LnR4dCI6ImY3M2EyZWRjNWNiNmMyZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhhY2RlMWRm OTM0ODBmMGNhMGJlMGIiLCJkb2MvRVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0MGE5YWI5 ZmQ1MjVmYzcwMGE0NGRiZGRkYjZjZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVDLUtSLnR4 dCI6IjcxZDllMmNjZjNiMTI0ZThiZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2VjM2M3MjM3 YTUwZjRhNzhhMzAiLCJkb2MvR0JLLnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1MDAxZGE2NjFmNDJj NWE4ZjRkMGFjYjllZjFkNzRiMjA2ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJNODY2LnR4dCI6ImE1 YTQzM2U4MDRkMGY4M2FmNzg1MDE1MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNlMTM2YjUx ZmJkMGUiLCJkb2MvSVNPLTIwMjItSlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdiMmMyOTI4 NjAxNDBjM2QyZTU1Mjc1MzBjYTA5MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1OS0xMC50 eHQiOiI2ZDM5NDlhZDdjODFjYTE3Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4ODBiOTRi ZDMxYmIzNDRhYjRkIiwiZG9jL0lTTy04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3NzI5MTQ4 MDkxNjgzY2Y4NTExZjQ1MjkzODhiN2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2MvSVNPLTg4 NTktMTQudHh0IjoiM2QzMzA3ODRhMDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4YzgwMDUzMDUz NGIwYTAxY2FjNmVkYzYyM2FkYyIsImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0YWFiNTEy N2E4NWFhYjk5MTUzZjg2ZTI0Njk0ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdhIiwiZG9j L0lTTy04ODU5LTE2LnR4dCI6ImNlMDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0YTVjYzcy ZTc1YjE4MzYxMWIwODM5MmU0NGFkZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIxOGNlZmY4 OGMxM2QxYjViYTQ1NWEzOTE5YjFlM2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1ZDU0YWFk IiwiZG9jL0lTTy04ODU5LTMudHh0IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYyNDk5OWRh OTY5NjhjMDYyODQyNzMyMWZjY2NlN2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4dCI6ImQy N2Y2NTIwYzZjNWJmYmNjMTkxNzZiNzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4MGU4MTI2 MzJkNTMiLCJkb2MvSVNPLTg4NTktNS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcyNzVmNmNi MWEzMzY1MTE4NTI3ZTI4ZjlhZjZkMGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5LTYudHh0 IjoiY2NkYThhMmVmYzk2MTE1MzM2YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUzNTNiOTA1 N2ZiZWYxNDRlNyIsImRvYy9JU08tODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1OGYwYTc3 ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNPLTg4NTkt OC1JLnR4dCI6IjgzNTc1NTU2NDZkNTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2MWM2MDEw OGZmOWI4YjExNjdiNmVjZjIiLCJkb2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZiN2I0YTlj MTZhNjZhMzYyNDczMzE1NzcwYjc3NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwiZG9jL0tP STgtUi50eHQiOiI4MzljZjE5YTM4ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2YTlhMmFm MDJiZjJlZmNhNzQ1ZmI1OTY2IiwiZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYwMjQxODNl MjI5OGI3ZTAxOTk1N2RhMmM3MGM4Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9jL1NoaWZ0 X0pJUy50eHQiOiIzNGM0OTE0MTgxOGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4ZDU2M2Yy NjQxNTEwOGFlMWYxNDg0NDNmIiwiZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNiYWE2ZDJh NmIzNTY5ZDYwZTE3NTAwYTI4NWYyYmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJkb2MvVVRG LTE2TEUudHh0IjoiNzBiZGMxNzBlM2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAzNmNjOTZi YjQ0MTZjNGRlMzk2ZjZkNzZjMSIsImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEzMDEwY2Vk MDAyY2Y0YjYwMWE3MzdkMjIwM2ZhZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9jL2diMTgw MzAudHh0IjoiZGM3MTM3OGE4ZjA3YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1NmJhODZmMTI0YjQy OTk3ODI4NTIzN2JiNGE3YiIsImRvYy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3MTFiNDY3 MmQ5YjlmZjM1MzgwYjlkYWM5ZTBkOGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRvYy9yZXBs YWNlbWVudC50eHQiOiI0YjZjM2JiZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdlMzM0YTk1 NDY1YWZmZjhjMmMwOGQzOTVmMGU0IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5NmJiNmEy MWNkYWI2MDIzMDBkMzJlY2ZiYTQzNGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4ZDM5Iiwi ZG9jL3dpbmRvd3MtMTI1MS50eHQiOiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdkNTc4ZGI3 YTlhYWI2M2FiMWNmZDAyZWMwNGI1MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50eHQiOiI5 MzNlZjNiZGRkZmNlNWVlMTMyYjlmMWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhkMGE2ZDM4 ZTE4MGI2IiwiZG9jL3dpbmRvd3MtMTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVjN2IzZDU0 NTZlYWQ0Y2FlZGVhYmFiNTBkNTBkNjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRvd3MtMTI1 NC50eHQiOiJmODM3MmY4NmM2ZjhkNjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIzZGYxNjgz YTk4NjcwYmQ3YmYyYjQ3IiwiZG9jL3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3MzAwNTRl MmRhMjU4YTc0ZTFiOWQ3ODBhYmJjZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwiZG9jL3dp bmRvd3MtMTI1Ni50eHQiOiJjMDg3OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5NTk4Njk0 YTBmZmE0ZmQyODhmZmU0ZmVmN2I4ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJjMjhhMGM5 Zjk2NGZjYjJiNDZkMjFmNTM3YzQwMjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkwMThkNTIz IiwiZG9jL3dpbmRvd3MtMTI1OC50eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5Mzc5MzM0 MmRiYjA5OGQ2NWExODM3NzgzYmMzZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0LnR4dCI6 IjRlZjBlNDUwMWM1ZmViYThiMTdhZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2UyZmMxNmQz OTJjYWJlY2MiLCJkb2MveC1tYWMtY3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNhM2Q0ODRi ODNiNDRmNzQ5ODIzZWYzMzlhYjI3ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94LXVzZXIt ZGVmaW5lZC50eHQiOiJmOWNkMDdjNDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIwNGE2Y2Y3 YTZmNWJjNjM3MDlhODRlMmMxZmZjIiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6ImJlOTg5 ZGQyNWM2Yjk0NmUzZTg3NDVmZGM4ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4MTUzYmEzZjZhYjYz MTAiLCJydXN0Zm10LnRvbWwiOiI4NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUyNzgwNDcy ZWRjMDY0Yzk2Mzk0M2NkYWFhNTZlMGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiYzQ0YzAwMjY0MWFk YjVlYmM0MzY4NzA3YThjYzBhMDc2ZDJmMzNlNmE1YzI3YjFiNjk5ODhlYjUxNWY1NjUzZCIsInNy Yy9iaWc1LnJzIjoiZWM2ZTI5MTMwMTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDViMjY0ZmVm YWU1MWEzY2MxYTY4YTU3Y2VmOSIsInNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3MDMyMDkyZDY1ODUw ZWIyN2UwMGRlNjg3YzgwYWVhMzI5OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIsInNyYy9ldWNfanAu cnMiOiIzMjA0N2Y1YjU0MDE4OGM0Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVlZDNlOWJk YTEyOTNkYWU1MmFhIiwic3JjL2V1Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVjZmFjNThk NTVhZDFjNTk0NmQ2Y2QwY2NkZTJjMjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAzMC5ycyI6 IjgwODU4NzE2OGQ3M2YwYzgwZjg1MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdhMDVlODVmZGYzYjhl ZmU3YmEyOGEiLCJzcmMvaGFuZGxlcy5ycyI6ImNjODNkYzA3NTQ3NTFkNjdmNTY4OGE2NWM1ZTAx OTFjYmEwMmY2YmFjY2U4MWEwODEzYTI0M2NiYTU1ZWVmN2EiLCJzcmMvaXNvXzIwMjJfanAucnMi OiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVl MDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6IjFkYzA3YjgxOGU0NTg0NmIxNmRkY2FmMGRlNDZjODg2 MmRkN2RmODA5OTEyM2VjMzhiOTVjM2Y4YWQ5YzkxZWMiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3 Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5 OSIsInNyYy9tZW0ucnMiOiIwYmYzNDEwM2UwYWQxYjg0MmExM2EwODJkZWUyYjkyMGIwNWNmNGZi MGYxNDVjOWVlN2Y2MDhmNGNiNGE1NDRmIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1 M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIs InNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFi NGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIyNjEyYWJh ODZlMWQyMDEwOTZkN2U0N2E4NTliYzM0NDRmODU5MzRjYzgyZDhhZGM2ZDM5YTQzMDRkOWVlY2Zj Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2M5ZTljMWY5NDZhZTYyMmM3MjViYTk0MjEyNDBjMWZh YTlhMDVlOTVmYTEwZGQ0NjQyYTI1Y2IyNzZhMWVkYyIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50 eHQiOiI0YzVhODY5MWY4ZGM3MTczMTE4ODljNjM4OTQwMjZkMmZiNjI3MjVhODZjNDIwOGNhMjc0 YTljYzhkNDJhNTAzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI5OWQzOTllMTc3 NTBjZjljN2NmMzBiYjI1M2RiZmUzNWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQyOTIxMzQ3M2M3Iiwi c3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIwZTA5Mzk2MDM4ZDE4 ZTkzOGJiN2VhMzMxYzI2ZjBmMjQ1NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rlc3RfZGF0YS9iaWc1 X291dF9yZWYudHh0IjoiMzY1Njc2OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3MDM4ZGZhMTU2ZjI5 NmZjZjEwM2I1NmFlOWE3MThiZTFmYyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6ImM4 NmE3MjI0ZjMyMTVmYTBkMDRlNjg1NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIzMGM3ZmQ2MmRlNTdl YzQwNzQiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0MTlmNGNhNDdkNzA4 YjU0YzczYzQ2MTU0NWEwMjJhZTJlMjA0OThmZGJmODAwNWE0ODNkNzUyYTIwNDg4MyIsInNyYy90 ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1OGUwMDQ3YmFmN2Qz ZDJjNTIwMjY5YzRmOWI5OTkyZTE1OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jf b3V0X3JlZi50eHQiOiJjOTkwNzg1Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1NjdhMmJlNjE4NWQ3 MjIzN2I2MzIyZjA0MDQ5NDQ5MjRlIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6ImFi NzIzMWIyZDNlOWFmYWNkYmQ3ZDdmM2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYzYmQ5MDViOTM2MmIz MDllNTMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4dCI6ImRjNTA2OTQyMWFkY2Ey MDQzYzU1ZjUwMTJiNTVhNzZmZGZmNjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcwNjgxNWMiLCJzcmMv dGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2RlN2Q5YTAzMjNiZThk NWNmMTJkOGExMDRiMjk0M2Q5MmMyNzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0X3JlZi50eHQiOiI2ODE5ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0YjlmMjFhMTMyMmU3 MzJkN2YxZmI5MmNjNmM1NDU1YmM2YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50 eHQiOiJjZDI0YmJkY2IxODM0ZTI1ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1NDBmNmJlM2RiYTRm NWQ5N2Q0NDUxM2FmIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiM2Rj NGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMy Y2RmNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dCI6IjliNmYwMTUzMjlkZGE2 YzNmOWVlNWNlNmRiZDZmYTljODlhY2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0ODBjMjEiLCJzcmMv dGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiNzhjYjI2MDA5M2EyMDExNmFkOWE0 MmY0M2IwNWQxODQ4YzVhYjEwMGI2YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIsInNyYy90ZXN0X2Rh dGEvamlzMDIwOF9pbi50eHQiOiI2ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2RjOGVhOWRjYTZkOTYy M2E5MDI4ZTJmZmVjNzU0Y2UzYzNkYTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3Jl Zi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3 MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiI0ZWMyNDQ3 N2UxNjc1Y2U3NTA3MzNiZGMzYzVhZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0NjQ2ZTk2NTRlODU3 Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0IjoiYzNlMWNlZjUwMzJiMmIxZDkz YTQwNmYzMWZmOTQwYzRlMmRmZTg4NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0OCIsInNyYy90ZXN0 X2RhdGEvamlzMDIxMl9pbi50eHQiOiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRmOTM3NGVmOGQyNzY5 YTc3MTkwNTE0Yzc3ZjZjNjJiNDE1ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2lu X3JlZi50eHQiOiI3ZDk0NThiM2QyZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMzZGRlMThhYTY3OWZi Y2Y5ODg5MjU2MjM5Y2M5ZTA2Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiMDJl Mzg5Y2NlZjBkZDIxMjJlNjNmNTAzODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4MGFiOTMxMzExMTZj NTUyNCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50eHQiOiI1MTJmOTg1OTUwY2E5 MDJlNjQzYzg4NjgyZGJhOTcwOGI3YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0YWIxOWY5Iiwic3Jj L3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5YmY2Y2ZlMGZhMWZk M2ViYTcxMDJiODhmODE5MTljOWVhOTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19vdXRfcmVmLnR4dCI6IjQ2NjMyMmM2ZmVkODI4NmM2NDU4MjczMTc1NTI5MGMyMjk2 NTA4ZWZkZDI1ODgyNmU2Mjc5Njg2NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMi OiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5 YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJl NGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMw NzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2Rh ZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1 OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2 MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdi Iiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiYzljMDEwNzMwZGZiOWYxNDFkNGZlZDE5MzUwYzA4 YTIxYWYyNDA5MTNhNTRiYjY0ZjVjYTg5ZmY5M2I2YjdkMSJ9LCJwYWNrYWdlIjoiNzI2OGIzODYy OTZhMDI1ZTQ3NGQ1MTQwNjc4Zjc1ZDZkZTk0OTNhZTU1YTVkNzA5ZWViOWRkMDgxNDk5NDVlMSJ9 CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt7ImZpbGVzIjp7IkNPTlRSSUJVVElORy5t ZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFl ZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODlj NjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjIyYTRkMjEw YzkyZGFlOWYzMmM2OTQ0ZWYzNDBlZThmZGQwMjdmOTljMDgxNTc3ZTg5MDcxMjNlMmE5MzM4M2Ui LCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVk MDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMx YzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNF LU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0 ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFl ZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiIx ZDA4YWVmY2I5MmFmYTgxYjE4MTU0MDQ5YzlhYmJjYWQ0NTQwYTIzZjcxNzJlOWY5YmJlZDVhZjMz ZjFhMDg3IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0 MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVj YjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwi ZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRk ZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEy NGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9j L0dCSy50eHQiOiJjMWI1MjJiNWE3OTk4ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0 YjIwNmYyMmI1ZjY1MzY1NjA2IiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4 NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0y MDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMw Y2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3Yzgx Y2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRv Yy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5 Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMw Nzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNh ZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUy NDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQi OiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJl NDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkx OWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0z LnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFm Y2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5 MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04 ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5 YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjEx NTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2Mv SVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3 ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1 NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2Yy IiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3 MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2Yx OWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2 NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJj NzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkx NDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQz ZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEy ODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRj MTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2 YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIy MDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhh OGYwN2EyZDg2NTlmNjllZTgxZmI4NzkxZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2Ii LCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFj OWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2 YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1 ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNm YmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEu dHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVj MDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEz MmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5k b3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUw ZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZj NmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIs ImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgw YWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0Ijoi YzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZl ZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUz N2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEy NTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4 M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4 YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gt bWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5 YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjlj ZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJj MWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1 ZmRjOGU4YTgwZmNmMjRiM2JlOTlhZDBiNGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21s IjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFh YTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3ZTkw YTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVjNmUy OTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2Nl ZjkiLCJzcmMvZGF0YS5ycyI6IjhhNjE3Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFl YTMyOTllODM5YTFmNThiNDJkMGIzNWFiZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAx ODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNy Yy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNj ZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4 MGY4NTIwZjBjYTliMTYxODY2ZWQyZWZlYjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hh bmRsZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVl NDU5M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRi N2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9s aWIucnMiOiI4MzRmNDRiNjcwZWM0OGVlODJjMGUxMjIyM2QxNTY3MzEzZmRkOWY4OGJjYTVmNGIx MTdjODJjMTgyOGY1NTlmIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3 NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoi OTQ4NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQx ZDZhZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFl ODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJz IjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5 YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3M2NkMzlhNzUy MDY3YzExNDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9zaW5nbGVfYnl0 ZS5ycyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2 MTk0ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRj NzE3MzExODg5YzYzODk0MDI2ZDJmYjYyNzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNy Yy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNk YmZlMzViODFjNGZjYmRlYWQ5M2NmYTQ4YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmln NV9vdXQudHh0IjoiNjE5M2NhOTdjMjk3YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYw ZjI0NTQwOTcyOTY3MjNhMGIxMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2 NTY3NjkxZjU1N2RmMTQ0ZjZjYzUyMDAxNWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4 YmUxZmMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0 ZTY4NTYyMmE3NTJmZGM3Mjc2M2U4YWUwNzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3Rf ZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIy YWUyZTIwNDk4ZmRiZjgwMDVhNDgzZDc1MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9v dXQudHh0IjoiZTdmMzJlMDI2ZjcwYmUxZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5 MmUxNThiNGRlY2IwYTFhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5 MDc4NTc5ODBiMjBiOGU5ZTNiNTg0NDgyZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0 OTI0ZSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJk N2Q3ZjNiOWU1MzYxYTdmZjlmN2UxY2ZkYjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3Rf ZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2 ZmRmZjY1MWQyMmU2ZTY5OWZkMDk3OGY4ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMw X291dC50eHQiOiJmMDIwOGQ1MjdmNWNhNjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNk OTJjMjcwMWYwYzMzNjRkYWMxIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0Ijoi NjgxOWZlNDc2MjdlNGVhMDEwMjcwMDNmYzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1 NWJjNmMwNyIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgz NGUyNWRiNTQ2NDZmYmY0YzQxNTYwYTEzZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNy Yy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4 NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9k YXRhL2lzb18yMDIyX2pwX291dC50eHQiOiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5 Yzg5YWNjMjEyODNlODg2ODM2Yzc4YjhkODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAy Ml9qcF9vdXRfcmVmLnR4dCI6Ijc4Y2IyNjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIx MDBiNmI5YTg1MDc0OTgwOWU5NDM4ODRiMzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0 IjoiNmRmMzAzMDU1M2ZmYjBhNjYxNWJiMzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNl M2MzZGE4MjRjYyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVl MDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIs InNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRj M2M1YWRkMWNkMjdiNmJkNGNlMWYwOTI4OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEv amlzMDIwOF9vdXRfcmVmLnR4dCI6ImMzZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJk ZmU4ODU5YjhiMTdjYTI3NjFmZWU3YTc1YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4u dHh0IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYy YjQxNTg1MmVlYjlmZSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4 YjNkMmY3M2U3MDkyYTdmNTA1YzA4Y2UxZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUw NiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYz ZjUwMzg5OTQwMmNiN2Y3OTc5MTJjMjQ0NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9k YXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3 MDhiN2MzOGQzYzVlYzI5MjUxNjhhYjAwYWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX291dC50eHQiOiI1ZmJjNDRkYTdiZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5 YzllYTk5MTMwMjcxMmY2OTQyNmZiIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50 eHQiOiI0NjYzMjJjNmZlZDgyODZjNjQ1ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3 OTY4NjY0OWI0ODFmIiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhk MTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90 ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIw ZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMy YzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84 LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMx OTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4 NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVm aW5lZC5ycyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUx MzkyZDhhYzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6ImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0 ZDA2MzE2ODE4NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkifQorXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9D YXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTYsMTggKzYsMTkgQEAKKyAjIHRv IHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8pIGRlcGVuZGVuY2llcy4KKyAjCisgIyBJZiB5b3Ug YXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRv bWwKKyAjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVh c29uYWJsZSkuCisgIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVu dHMuCisgCisgW3BhY2thZ2VdCisgZWRpdGlvbiA9ICIyMDE4IgorK3J1c3QtdmVyc2lvbiA9ICIx LjM2IgorIG5hbWUgPSAiZW5jb2RpbmdfcnMiCistdmVyc2lvbiA9ICIwLjguMzMiCisrdmVyc2lv biA9ICIwLjguMzQiCisgYXV0aG9ycyA9IFsiSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9u ZW4uZmk+Il0KKyBkZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9u IG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKKyBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMv ZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5n X3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1kIgorIGtleXdvcmRzID0gWworICAgICAiZW5jb2Rp bmciLAorICAgICAid2ViIiwKK0BAIC0zMSwyMyArMzIsMjMgQEAgY2F0ZWdvcmllcyA9IFsKKyAg ICAgImludGVybmF0aW9uYWxpemF0aW9uIiwKKyBdCisgbGljZW5zZSA9ICIoQXBhY2hlLTIuMCBP UiBNSVQpIEFORCBCU0QtMy1DbGF1c2UiCisgcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5j b20vaHNpdm9uZW4vZW5jb2RpbmdfcnMiCisgCisgW3Byb2ZpbGUucmVsZWFzZV0KKyBsdG8gPSB0 cnVlCisgCisrW2RlcGVuZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCisrdmVyc2lvbiA9ICIw LjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKyBbZGVwZW5kZW5jaWVzLmNmZy1pZl0KKyB2ZXJz aW9uID0gIjEuMCIKKyAKKy1bZGVwZW5kZW5jaWVzLnBhY2tlZF9zaW1kXQorLXZlcnNpb24gPSAi MC4zLjkiCistb3B0aW9uYWwgPSB0cnVlCistCisgW2RlcGVuZGVuY2llcy5zZXJkZV0KKyB2ZXJz aW9uID0gIjEuMCIKKyBvcHRpb25hbCA9IHRydWUKKyAKKyBbZGV2LWRlcGVuZGVuY2llcy5iaW5j b2RlXQorIHZlcnNpb24gPSAiMS4wIgorIAorIFtkZXYtZGVwZW5kZW5jaWVzLnNlcmRlX2Rlcml2 ZV0KK0BAIC02OSwxNSArNzAsOSBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBbCisgICAgICJmYXN0 LWhhbmphLWVuY29kZSIsCisgICAgICJmYXN0LWthbmppLWVuY29kZSIsCisgICAgICJmYXN0LWdi LWhhbnppLWVuY29kZSIsCisgICAgICJmYXN0LWJpZzUtaGFuemktZW5jb2RlIiwKKyBdCisgbGVz cy1zbG93LWJpZzUtaGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3ctZ2ItaGFuemktZW5jb2Rl ID0gW10KKyBsZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KKy1zaW1kLWFjY2VsID0gWworLSAg ICAicGFja2VkX3NpbWQiLAorLSAgICAicGFja2VkX3NpbWQvaW50b19iaXRzIiwKKy1dCistCist W2JhZGdlcy50cmF2aXMtY2ldCistcmVwb3NpdG9yeSA9ICJoc2l2b25lbi9lbmNvZGluZ19ycyIK KytzaW1kLWFjY2VsID0gWyJhbnlfYWxsX3dvcmthcm91bmQiXQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9SRUFETUUubWQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVB RE1FLm1kCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZAorQEAg LTE2Miw1MCArMTYyLDM2IEBAIHdyYXBwZXJzLgorICogW0MrK10oaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL3JlY29kZV9jcHApCisgCisgIyMgT3B0aW9uYWwgZmVhdHVyZXMKKyAKKyBUaGVy ZSBhcmUgY3VycmVudGx5IHRoZXNlIG9wdGlvbmFsIGNhcmdvIGZlYXR1cmVzOgorIAorICMjIyBg c2ltZC1hY2NlbGAKKyAKKy1FbmFibGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVzaW5nIHRoZSBuaWdo dGx5LWRlcGVuZGVudCBgcGFja2VkX3NpbWRgIGNyYXRlLgorK0VuYWJsZXMgU0lNRCBhY2NlbGVy YXRpb24gdXNpbmcgdGhlIG5pZ2h0bHktZGVwZW5kZW50IGBwb3J0YWJsZV9zaW1kYCBzdGFuZGFy ZAorK2xpYnJhcnkgZmVhdHVyZS4KKyAKKyBUaGlzIGlzIGFuIG9wdC1pbiBmZWF0dXJlLCBiZWNh dXNlIGVuYWJsaW5nIHRoaXMgZmVhdHVyZSBfb3B0cyBvdXRfIG9mIFJ1c3QncworIGd1YXJhbnRl ZXMgb2YgZnV0dXJlIGNvbXBpbGVycyBjb21waWxpbmcgb2xkIGNvZGUgKGFrYS4gInN0YWJpbGl0 eSBzdG9yeSIpLgorIAorIEN1cnJlbnRseSwgdGhpcyBoYXMgbm90IGJlZW4gdGVzdGVkIHRvIGJl IGFuIGltcHJvdmVtZW50IGV4Y2VwdCBmb3IgdGhlc2UKKy10YXJnZXRzOgorK3RhcmdldHMgYW5k IGVuYWJsaW5nIHRoZSBgc2ltZC1hY2NlbGAgZmVhdHVyZSBpcyBleHBlY3RlZCB0byBicmVhayB0 aGUgYnVpbGQKKytvbiBvdGhlciB0YXJnZXRzOgorIAorICogeDg2XzY0CisgKiBpNjg2CisgKiBh YXJjaDY0CisgKiB0aHVtYnY3bmVvbgorIAorIElmIHlvdSB1c2UgbmlnaHRseSBSdXN0LCB5b3Ug dXNlIHRhcmdldHMgd2hvc2UgZmlyc3QgY29tcG9uZW50IGlzIG9uZSBvZiB0aGUKKyBhYm92ZSwg YW5kIHlvdSBhcmUgcHJlcGFyZWQgX3RvIGhhdmUgdG8gcmV2aXNlIHlvdXIgY29uZmlndXJhdGlv biB3aGVuIHVwZGF0aW5nCisgUnVzdF8sIHlvdSBzaG91bGQgZW5hYmxlIHRoaXMgZmVhdHVyZS4g T3RoZXJ3aXNlLCBwbGVhc2UgX2RvIG5vdF8gZW5hYmxlIHRoaXMKKyBmZWF0dXJlLgorIAorLV9O b3RlIV8gSWYgeW91IGFyZSBjb21waWxpbmcgZm9yIGEgdGFyZ2V0IHRoYXQgZG9lcyBub3QgaGF2 ZSAxMjgtYml0IFNJTUQKKy1lbmFibGVkIGFzIHBhcnQgb2YgdGhlIHRhcmdldCBkZWZpbml0aW9u IGFuZCB5b3UgYXJlIGVuYWJsaW5nIDEyOC1iaXQgU0lNRAorLXVzaW5nIGAtQyB0YXJnZXRfZmVh dHVyZWAsIHlvdSBuZWVkIHRvIGVuYWJsZSB0aGUgYGNvcmVfYXJjaGAgQ2FyZ28gZmVhdHVyZQor LWZvciBgcGFja2VkX3NpbWRgIHRvIGNvbXBpbGUgYSBjcmF0ZXMuaW8gc25hcHNob3Qgb2YgYGNv cmVfYXJjaGAgaW5zdGVhZCBvZgorLXVzaW5nIHRoZSBzdGFuZGFyZC1saWJyYXJ5IGNvcHkgb2Yg YGNvcmU6OmFyY2hgLCBiZWNhdXNlIHRoZSBgY29yZTo6YXJjaGAKKy1tb2R1bGUgb2YgdGhlIHBy ZS1jb21waWxlZCBzdGFuZGFyZCBsaWJyYXJ5IGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggdGhlCist YXNzdW1wdGlvbiB0aGF0IHRoZSBDUFUgZG9lc24ndCBoYXZlIDEyOC1iaXQgU0lNRC4gQXQgcHJl c2VudCB0aGlzIGFwcGxpZXMKKy1tYWlubHkgdG8gMzItYml0IEFSTSB0YXJnZXRzIHdob3NlIGZp cnN0IGNvbXBvbmVudCBkb2VzIG5vdCBpbmNsdWRlIHRoZQorLXN1YnN0cmluZyBgbmVvbmAuCist CistVGhlIGVuY29kaW5nX3JzIHNpZGUgb2YgdGhpbmdzIGhhcyBub3QgYmVlbiBwcm9wZXJseSBz ZXQgdXAgZm9yIFBPV0VSLAorLVBvd2VyUEMsIE1JUFMsIGV0Yy4sIFNJTUQgYXQgdGhpcyB0aW1l LCBzbyBldmVuIGlmIHlvdSB3ZXJlIHRvIGZvbGxvdworLXRoZSBhZHZpY2UgZnJvbSB0aGUgcHJl dmlvdXMgcGFyYWdyYXBoLCB5b3UgcHJvYmFibHkgc2hvdWxkbid0IHVzZQorLXRoZSBgc2ltZC1h Y2NlbGAgb3B0aW9uIG9uIHRoZSBsZXNzIG1haW5zdHJlYW0gYXJjaGl0ZWN0dXJlcyBhdCB0aGlz CistdGltZS4KKy0KKyBVc2VkIGJ5IEZpcmVmb3guCisgCisgIyMjIGBzZXJkZWAKKyAKKyBFbmFi bGVzIHN1cHBvcnQgZm9yIHNlcmlhbGl6aW5nIGFuZCBkZXNlcmlhbGl6aW5nIGAmJ3N0YXRpYyBF bmNvZGluZ2AtdHlwZWQKKyBzdHJ1Y3QgZmllbGRzIHVzaW5nIFtTZXJkZV1bMV0uCisgCisgWzFd OiBodHRwczovL3NlcmRlLnJzLworQEAgLTM3NiwxOCArMzYyLDE5IEBAIEl0IGlzIGEgZ29hbCB0 byBzdXBwb3J0IHRoZSBsYXRlc3Qgc3RhYmwKKyB0aGUgdmVyc2lvbiBvZiBSdXN0IHRoYXQncyB1 c2VkIGZvciBGaXJlZm94IE5pZ2h0bHkuCisgCisgQXQgdGhpcyB0aW1lLCB0aGVyZSBpcyBubyBm aXJtIGNvbW1pdG1lbnQgdG8gc3VwcG9ydCBhIHZlcnNpb24gb2xkZXIgdGhhbgorIHdoYXQncyBy ZXF1aXJlZCBieSBGaXJlZm94LCBhbmQgdGhlcmUgaXMgbm8gY29tbWl0bWVudCB0byB0cmVhdCBN U1JWIGNoYW5nZXMKKyBhcyBzZW12ZXItYnJlYWtpbmcsIGJlY2F1c2UgdGhpcyBjcmF0ZSBkZXBl bmRzIG9uIGBjZmctaWZgLCB3aGljaCBkb2Vzbid0CisgYXBwZWFyIHRvIHRyZWF0IE1TUlYgY2hh bmdlcyBhcyBzZW12ZXItYnJlYWtpbmcsIHNvIGl0IHdvdWxkIGJlIHVzZWxlc3MgZm9yCisgdGhp cyBjcmF0ZSB0byB0cmVhdCBNU1JWIGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFraW5nLgorIAorLUFz IG9mIDIwMjEtMDItMDQsIE1TUlYgYXBwZWFycyB0byBiZSBSdXN0IDEuMzYuMCBmb3IgdXNpbmcg dGhlIGNyYXRlIGFuZAorK0FzIG9mIDIwMjQtMDQtMDQsIE1TUlYgYXBwZWFycyB0byBiZSBSdXN0 IDEuMzYuMCBmb3IgdXNpbmcgdGhlIGNyYXRlIGFuZAorIDEuNDIuMCBmb3IgZG9jIHRlc3RzIHRv IHBhc3Mgd2l0aG91dCBlcnJvcnMgYWJvdXQgdGhlIGdsb2JhbCBhbGxvY2F0b3IuCisrV2l0aCB0 aGUgYHNpbWQtYWNjZWxgIGZlYXR1cmUsIHRoZSBNU1JWIGlzIGV2ZW4gaGlnaGVyLgorIAorICMj IENvbXBhdGliaWxpdHkgd2l0aCBydXN0LWVuY29kaW5nCisgCisgQSBjb21wYXRpYmlsaXR5IGxh eWVyIHRoYXQgaW1wbGVtZW50cyB0aGUgcnVzdC1lbmNvZGluZyBBUEkgb24gdG9wIG9mCisgZW5j b2RpbmdfcnMgaXMKKyBbcHJvdmlkZWQgYXMgYSBzZXBhcmF0ZSBjcmF0ZV0oaHR0cHM6Ly9naXRo dWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzX2NvbXBhdCkKKyAoY2Fubm90IGJlIHVwbG9hZGVk IHRvIGNyYXRlcy5pbykuIFRoZSBjb21wYXRpYmlsaXR5IGxheWVyIHdhcyBvcmlnaW5hbGx5Cisg d3JpdHRlbiB3aXRoIHRoZSBhc3N1cHRpb24gdGhhdCBGaXJlZm94IHdvdWxkIG5lZWQgaXQsIGJ1 dCBpdCBpcyBub3QgY3VycmVudGx5CitAQCAtNDQxLDIwICs0MjgsMjcgQEAgVG8gcmVnZW5lcmF0 ZSB0aGUgZ2VuZXJhdGVkIGNvZGU6CisgLSBbeF0gSW1wbGVtZW50IHRoZSBydXN0LWVuY29kaW5n IEFQSSBpbiB0ZXJtcyBvZiBlbmNvZGluZ19ycy4KKyAtIFt4XSBBZGQgU0lNRCBhY2NlbGVyYXRp b24gZm9yIEFhcmNoNjQuCisgLSBbeF0gSW52ZXN0aWdhdGUgdGhlIHVzZSBvZiBORU9OIG9uIDMy LWJpdCBBUk0uCisgLSBbIF0gfkludmVzdGlnYXRlIEJqw7ZybiBIw7Zocm1hbm4ncyBsb29rdXAg dGFibGUgYWNjZWxlcmF0aW9uIGZvciBVVEYtOCBhcworICAgICAgIGFkYXB0ZWQgdG8gUnVzdCBp biBydXN0LWVuY29kaW5nLn4KKyAtIFt4XSBBZGQgYWN0dWFsbHkgZmFzdCBDSksgZW5jb2RlIG9w dGlvbnMuCisgLSBbIF0gfkludmVzdGlnYXRlIFtCb2IgU3RlYWdhbGwncyBsb29rdXAgdGFibGUg YWNjZWxlcmF0aW9uIGZvciBVVEYtOF0oaHR0cHM6Ly9naXRodWIuY29tL0JvYlN0ZWFnYWxsL0Nw cE5vdzIwMTgvYmxvYi9tYXN0ZXIvRmFzdENvbnZlcnNpb25Gcm9tVVRGLTgvRmFzdCUyMENvbnZl cnNpb24lMjBGcm9tJTIwVVRGLTglMjB3aXRoJTIwQyUyQiUyQiUyQyUyMERGQXMlMkMlMjBhbmQl MjBTU0UlMjBJbnRyaW5zaWNzJTIwLSUyMEJvYiUyMFN0ZWFnYWxsJTIwLSUyMEMlMkIlMkJOb3cl MjAyMDE4LnBkZikufgorIC0gW3hdIFByb3ZpZGUgYSBidWlsZCBtb2RlIHRoYXQgd29ya3Mgd2l0 aG91dCBgYWxsb2NgICh3aXRoIGxlc3NlciBBUEkgc3VyZmFjZSkuCistLSBbIF0gTWlncmF0ZSB0 byBgc3RkOjpzaW1kYCBvbmNlIGl0IGlzIHN0YWJsZSBhbmQgZGVjbGFyZSAxLjAuCisrLSBbeF0g TWlncmF0ZSB0byBgc3RkOjpzaW1kYCB+b25jZSBpdCBpcyBzdGFibGUgYW5kIGRlY2xhcmUgMS4w Ln4KKystIFsgXSBNaWdyYXRlIGB1bnNhZmVgIHNsaWNlIGFjY2VzcyBieSBsYXJnZXIgdHlwZXMg dGhhbiBgdThgL2B1MTZgIHRvIGBhbGlnbl90b2AuCisgCisgIyMgUmVsZWFzZSBOb3RlcworIAor KyMjIyAwLjguMzQKKysKKysqIFVzZSB0aGUgYHBvcnRhYmxlX3NpbWRgIG5pZ2h0bHkgZmVhdHVy ZSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSBgcGFja2VkX3NpbWRgIGNy YXRlLiBPbmx5IGFmZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBvcHRpb25hbCBuaWdodGx5IGZlYXR1 cmUuCisrKiBJbnRlcm5hbCBkb2N1bWVudGF0aW9uIGltcHJvdmVtZW50cyBhbmQgbWlub3IgY29k ZSBpbXByb3ZlbWVudHMgYXJvdW5kIGB1bnNhZmVgLgorKyogQWRkZWQgYHJ1c3QtdmVyc2lvbmAg dG8gYENhcmdvLnRvbWxgLgorKworICMjIyAwLjguMzMKKyAKKyAqIFVzZSBgcGFja2VkX3NpbWRg IGluc3RlYWQgb2YgYHBhY2tlZF9zaW1kXzJgIGFnYWluIG5vdyB0aGF0IHVwZGF0ZXMgYXJlIGJh Y2sgdW5kZXIgdGhlIGBwYWNrZWRfc2ltZGAgbmFtZS4gT25seSBhZmZlY3RzIHRoZSBgc2ltZC1h Y2NlbGAgb3B0aW9uYWwgbmlnaHRseSBmZWF0dXJlLgorIAorICMjIyAwLjguMzIKKyAKKyAqIFJl bW92ZWQgYGJ1aWxkLnJzYC4gKFRoaXMgcmVtb3ZhbCBzaG91bGQgcmVzb2x2ZSBmYWxzZSBwb3Np dGl2ZXMgcmVwb3J0ZWQgYnkgc29tZSBhbnRpdmlydXMgcHJvZHVjdHMuIFRoaXMgbWF5IGJyZWFr IHNvbWUgYnVpbGQgY29uZmlndXJhdGlvbnMgdGhhdCBoYXZlIG9wdGVkIG91dCBvZiBSdXN0J3Mg Z3VhcmFudGVlcyBhZ2FpbnN0IGZ1dHVyZSBidWlsZCBicmVha2FnZS4pCisgKiBJbnRlcm5hbCBj aGFuZ2UgdG8gd2hhdCBBUEkgaXMgdXNlZCBmb3IgcmVpbnRlcnByZXRpbmcgdGhlIGxhbmUgY29u ZmlndXJhdGlvbiBvZiBTSU1EIHZlY3RvcnMuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9hc2NpaS5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNj aWkucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzCitA QCAtNDYsNzEgKzQ2LDg3IEBAIGNmZ19pZiEgeworICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUp XQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIGxpa2VseShiOiBib29s KSAtPiBib29sIHsKKyAgICAgICAgICAgICBiCisgICAgICAgICB9CisgICAgIH0KKyB9CisgCisr Ly8gU2FmZXR5IGludmFyaWFudHMgZm9yIG1hc2tzOiBkYXRhICYgbWFzayA9IDAgZm9yIHZhbGlk IEFTQ0lJIG9yIGJhc2ljIGxhdGluIHV0Zi0xNgorKworIC8vIGBhc2AgdHJ1bmNhdGVzLCBzbyB3 b3JrcyBvbiAzMi1iaXQsIHRvby4KKyAjW2FsbG93KGRlYWRfY29kZSldCisgcHViIGNvbnN0IEFT Q0lJX01BU0s6IHVzaXplID0gMHg4MDgwXzgwODBfODA4MF84MDgwdTY0IGFzIHVzaXplOworIAor IC8vIGBhc2AgdHJ1bmNhdGVzLCBzbyB3b3JrcyBvbiAzMi1iaXQsIHRvby4KKyAjW2FsbG93KGRl YWRfY29kZSldCisgcHViIGNvbnN0IEJBU0lDX0xBVElOX01BU0s6IHVzaXplID0gMHhGRjgwX0ZG ODBfRkY4MF9GRjgwdTY0IGFzIHVzaXplOworIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisg bWFjcm9fcnVsZXMhIGFzY2lpX25haXZlIHsKKyAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6 dHksICRkc3RfdW5pdDp0eSkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3Qg bXVzdCBoYXZlIGxlbl91bml0IGVsZW1lbnRzIGFuZCBiZSBhbGlnbmVkCisrICAgICAgICAvLy8g U2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGZhaWxz CisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZhbHVlIHdpbGwgYmUgYSB1OCB0 aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1 bnNhZmUgZm4gJG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAg ICAgICAgICAgIGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwK KyAgICAgICAgICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAg IC8vIFllcywgbWFudWFsbHkgb21pdHRpbmcgdGhlIGJvdW5kIGNoZWNrIGhlcmUgbWF0dGVycwor ICAgICAgICAgICAgIC8vIGEgbG90IGZvciBwZXJmLgorICAgICAgICAgICAgIGZvciBpIGluIDAu LmxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhl cmUKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChpKSk7CisrICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBo ZXJlCisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7CisgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBpKSk7CisgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAg ICAgICAgICAgICAgICAqKGRzdC5hZGQoaSkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CisgICAgICAgICB9CisgICAg IH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lp X2FsdSB7CisgICAgICgkbmFtZTppZGVudCwKKysgICAgIC8vIHNhZmV0eSBpbnZhcmlhbnQ6IHNy Yy9kc3QgTVVTVCBiZSB1OAorICAgICAgJHNyY191bml0OnR5LAorICAgICAgJGRzdF91bml0OnR5 LAorKyAgICAgLy8gU2FmZXR5IGludmFyaWFudDogc3RyaWRlX2ZuIG11c3QgY29uc3VtZSBhbmQg cHJvZHVjZSB0d28gdXNpemVzLCBhbmQgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgbm9u LWFzY2lpIHdoZW4gaXQgZmFpbHMKKyAgICAgICRzdHJpZGVfZm46aWRlbnQpID0+IHsKKysgICAg ICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW4gZWxlbWVudHMsIHNyYyBp cyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgorKyAgICAgICAgLy8vIHdyaXRlCisr ICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3 aGVuIGl0IGZhaWxzCisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZhbHVlIHdp bGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tjZmdfYXR0cihmZWF0dXJlID0g ImNhcmdvLWNsaXBweSIsIGFsbG93KG5ldmVyX2xvb3AsIGNhc3RfcHRyX2FsaWdubWVudCkpXQor ICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUo CisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAgICAgICAgICAgIGRzdDog Km11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwKKyAgICAgICAgICkgLT4g T3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0 ID0gMHVzaXplOworICAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQg b2YgYXMgYSBgZ290b2AgZm9yd2FyZAorICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHVudGlsX2FsaWdubWVudCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0 ZXMgd2UgbmVlZCB0byBtdW5jaCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1c2l6ZQorICAgICAg ICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKKyAgICAgICAgICAgICAgICAg ICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBpZiB3ZSBtb3ZlIHRoZSBuYXJy b3dlciB1bml0CisgICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1lbnQuCisgICAgICAg ICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgIGlmIDo6Y29yZTo6bWVtOjpzaXplX29mOjo8 JHNyY191bml0PigpID09IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JGRzdF91bml0PigpIHsKKyAg ICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2FzY2lpCisgICAgICAgICAgICAgICAgICAg ICBsZXQgc3JjX2FsaWdubWVudCA9IChzcmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNL OworICAgICAgICAgICAgICAgICAgICAgbGV0IGRzdF9hbGlnbm1lbnQgPSAoZHN0IGFzIHVzaXpl KSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgIGlmIHNyY19hbGln bm1lbnQgIT0gZHN0X2FsaWdubWVudCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBiYWlscyBlYXJseSBhbmQgZW5kcyB1cCBpbiB0aGUgbmHDr3ZlIGJyYW5jaCB3aGVyZSB1 c2l6ZS1hbGlnbm1lbnQgZG9lc24ndCBtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIChBTFVf QUxJR05NRU5UIC0gc3JjX2FsaWdubWVudCkgJiBBTFVfQUxJR05NRU5UX01BU0sKKyAgICAgICAg ICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgfSBlbHNlIGlmIDo6Y29yZTo6bWVtOjpzaXpl X29mOjo8JHNyY191bml0PigpIDwgOjpjb3JlOjptZW06OnNpemVfb2Y6OjwkZHN0X3VuaXQ+KCkg eworICAgICAgICAgICAgICAgICAgICAgLy8gYXNjaWlfdG9fYmFzaWNfbGF0aW4KKyAgICAgICAg ICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIGxldCBzcmNfdW50aWxfYWxpZ25tZW50 ID0gKEFMSUdOTUVOVCAtICgoc3JjIGFzIHVzaXplKSAmIEFMSUdOTUVOVF9NQVNLKSkgJiBBTElH Tk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIGlm IChkc3QuYWRkKHNyY191bnRpbF9hbGlnbm1lbnQpIGFzIHVzaXplKSAmIEFMSUdOTUVOVF9NQVNL ICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworQEAgLTEyOSw3NCArMTQ1LDEwNCBAQCBtYWNyb19ydWxlcyEgYXNjaWlfYWx1IHsKKyAg ICAgICAgICAgICAgICAgICAgIC8vIE1vdmluZyBwb2ludGVycyB0byBhbGlnbm1lbnQgc2VlbXMg dG8gYmUgYSBwZXNzaW1pemF0aW9uIG9uCisgICAgICAgICAgICAgICAgICAgICAvLyB4ODZfNjQg Zm9yIG9wZXJhdGlvbnMgdGhhdCBoYXZlIFVURi0xNiBhcyB0aGUgaW50ZXJuYWwKKyAgICAgICAg ICAgICAgICAgICAgIC8vIFVuaWNvZGUgcmVwcmVzZW50YXRpb24uIEhvd2V2ZXIsIHNpbmNlIGl0 IHNlZW1zIHRvIGJlIGEgd2luCisgICAgICAgICAgICAgICAgICAgICAvLyBvbiBBUk0gKHRlc3Rl ZCBBUk12NyBjb2RlIHJ1bm5pbmcgb24gQVJNdjggW3JwaTNdKSwgZXhjZXB0CisgICAgICAgICAg ICAgICAgICAgICAvLyBtaXhlZCByZXN1bHRzIHdoZW4gZW5jb2RpbmcgZnJvbSBVVEYtMTYgYW5k IHNpbmNlIHg4NiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82NCBzaG91bGQgYmUg dXNpbmcgU1NFMiBpbiBkdWUgY291cnNlLCBrZWVwaW5nIHRoZSBtb3ZlCisgICAgICAgICAgICAg ICAgICAgICAvLyB0byBhbGlnbm1lbnQgaGVyZS4gSXQgd291bGQgYmUgZ29vZCB0byB0ZXN0IG9u IG1vcmUgQVJNIENQVXMKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBvbiByZWFsIE1JUFMg YW5kIFBPV0VSIGhhcmR3YXJlLgorKyAgICAgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2Fpbiwg Zm9yIGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB1 bnRpbF9hbGlnbm1lbnQgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVf dW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBj b2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNl dCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIKKyAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX1NUUklERV9T SVpFOworICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBudW1fYXNjaWkgaXMga25vd24gdG8gYmUgYSBieXRlIGluZGV4IG9mIGEg bm9uLWFzY2lpIGJ5dGUgZHVlIHRvIHN0cmlkZV9mbidzIGludmFyaWFudAorICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGxldCBTb21lKG51bV9hc2NpaSkgPSAkc3RyaWRlX2ZuKAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBiZSB2 YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBoYXZlIGF0CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMsIGFu ZCBvZmZzZXQgaXMgdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBv ZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcgdG8gdGhlCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBhYm92 ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFkZAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IG51bV9hc2NpaTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUgYnkgaW5kZXhpbmcgaW50 byBub24tYXNjaWkgYnl0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoKihzcmMuYWRkKG9mZnNldCkpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgY29udGludWVz IHRvIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5kCisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBmb3IgdGhlIG5leHQg bG9vcCBpdGVyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxVX1NU UklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBg b2Zmc2V0ID4gbGVuIC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51ZSBhcyBsb25nIGFz CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4gLSBzdHJpZGVgLCB3 aGljaCBtZWFucyB0aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwgYmUgcmVhZC4KKyAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICAvLyBTYWZl dHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlLCBzYW1lIGFzIGFzY2lpX25haXZlLCBhbmQgaGFz IG5vIHJlcXVpcmVtZW50cworKyAgICAgICAgICAgIC8vIG90aGVyIHRoYW4gc3JjL2RzdCBiZWlu ZyB2YWxpZCBmb3IgdGhlIHRoZSByaWdodCBsZW5zCisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0 IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQg aGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkp OworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAg ICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFu dCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91 bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisg I1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYmFzaWNfbGF0aW5fYWx1IHsK KyAgICAgKCRuYW1lOmlkZW50LAorKyAgICAvLyBzYWZldHkgaW52YXJpYW50OiB1c2UgdTggZm9y IHNyYy9kZXN0IGZvciBhc2NpaSwgYW5kIHUxNiBmb3IgYmFzaWNfbGF0aW4KKyAgICAgICRzcmNf dW5pdDp0eSwKKyAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgLy8gc2FmZXR5IGludmFyaWFudDog c3RyaWRlIGZ1bmN0aW9uIG11c3QgbXVuY2ggQUxVX1NUUklERV9TSVpFKnNpemUoc3JjX3VuaXQp IGJ5dGVzIG9mZiBvZiBzcmMgYW5kCisrICAgIC8vIHdyaXRlIEFMVV9TVFJJREVfU0laRSpzaXpl KGRzdF91bml0KSBieXRlcyB0byBkc3QKKyAgICAgICRzdHJpZGVfZm46aWRlbnQpID0+IHsKKysg ICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW4gZWxlbWVudHMsIHNy YyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgorKyAgICAgICAgLy8vIHdyaXRl CisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUo KSB3aGVuIGl0IGZhaWxzCisrICAgICAgICAvLy8gdG8gY29udmVydC4gVGhlIGZpcnN0IHZhbHVl IHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgorICAgICAgICAgI1tjZmdfYXR0cigKKyAgICAg ICAgICAgICBmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCisgICAgICAgICAgICAgYWxsb3cobmV2 ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNzKQorICAgICAgICAgKV0K KyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1l KAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKKyAgICAgICAgICAgICBkc3Q6 ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjogdXNpemUsCisgICAgICAgICApIC0+ IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNl dCA9IDB1c2l6ZTsKKyAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0 IG9mIGFzIGEgYGdvdG9gIGZvcndhcmQKKyAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiB1bnRpbF9hbGlnbm1lbnQgYmVjb21lcyB0aGUgbnVtYmVyIG9mIGJ5 dGVzIHdlIG5lZWQgdG8gbXVuY2ggZnJvbSBzcmMvZGVzdCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0 byB1c2l6ZQorKyAgICAgICAgICAgICAgICAvLyBXZSBlbnN1cmUgYmFzaWMtbGF0aW4gaGFzIHRo ZSBzYW1lIGFsaWdubWVudCBhcyBhc2NpaSwgc3RhcnRpbmcgd2l0aCBhc2NpaSBzaW5jZSBpdCBp cyBzbWFsbGVyLgorICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsK KyAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBp ZiB3ZSBtb3ZlIHRoZSBuYXJyb3dlciB1bml0CisgICAgICAgICAgICAgICAgICAgICAvLyB0byBh bGlnbm1lbnQuCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgIGlmIDo6Y29y ZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpID09IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8 JGRzdF91bml0PigpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2FzY2lpCisg ICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBsZXQgc3JjX2FsaWdubWVu dCA9IChzcmMgYXMgdXNpemUpICYgQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAg ICAvLyAgICAgICAgICAgICAgICAgICBsZXQgZHN0X2FsaWdubWVudCA9IChkc3QgYXMgdXNpemUp ICYgQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAg ICAgICBpZiBzcmNfYWxpZ25tZW50ICE9IGRzdF9hbGlnbm1lbnQgeworQEAgLTIzMiw2NiArMjc4 LDg5IEBAIG1hY3JvX3J1bGVzISBiYXNpY19sYXRpbl9hbHUgeworICAgICAgICAgICAgICAgICAg ICAgLy8gTW92aW5nIHBvaW50ZXJzIHRvIGFsaWdubWVudCBzZWVtcyB0byBiZSBhIHBlc3NpbWl6 YXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82NCBmb3Igb3BlcmF0aW9ucyB0 aGF0IGhhdmUgVVRGLTE2IGFzIHRoZSBpbnRlcm5hbAorICAgICAgICAgICAgICAgICAgICAgLy8g VW5pY29kZSByZXByZXNlbnRhdGlvbi4gSG93ZXZlciwgc2luY2UgaXQgc2VlbXMgdG8gYmUgYSB3 aW4KKyAgICAgICAgICAgICAgICAgICAgIC8vIG9uIEFSTSAodGVzdGVkIEFSTXY3IGNvZGUgcnVu bmluZyBvbiBBUk12OCBbcnBpM10pLCBleGNlcHQKKyAgICAgICAgICAgICAgICAgICAgIC8vIG1p eGVkIHJlc3VsdHMgd2hlbiBlbmNvZGluZyBmcm9tIFVURi0xNiBhbmQgc2luY2UgeDg2IGFuZAor ICAgICAgICAgICAgICAgICAgICAgLy8geDg2XzY0IHNob3VsZCBiZSB1c2luZyBTU0UyIGluIGR1 ZSBjb3Vyc2UsIGtlZXBpbmcgdGhlIG1vdmUKKyAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGFs aWdubWVudCBoZXJlLiBJdCB3b3VsZCBiZSBnb29kIHRvIHRlc3Qgb24gbW9yZSBBUk0gQ1BVcwor ICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG9uIHJlYWwgTUlQUyBhbmQgUE9XRVIgaGFyZHdh cmUuCisrICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSBvbmNlIGFnYWluLCBmb3IgYHVudGlsX2FsaWdu bWVudGAgYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAh PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHkt dXNhYmxlIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQg YXMgJGRzdF91bml0OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0 IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgorICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdu bWVudCAtPSAxOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg bGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7CisgICAgICAgICAg ICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9m bigKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGVzZSBhcmUga25v d24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBhdAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RSSURFX1NJWkUgZGF0YSBpbiB0aGVzZSBi dWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZhciwgd2hpY2ggYWNjb3JkaW5nIHRvIHRo ZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbF9hbGlnbm1lbnQgY2FsY3Vs YXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBhbmQgZHN0IHRvIGJlCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0ZXIgdGhpcyBhZGQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCB1c2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmFkZChvZmZzZXQpIGFzICptdXQg dXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJl ciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgor ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7CisrICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBz dHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJl IGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgorICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHD r3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGxlZnRvdmVyIGJ5dGVzCisgICAgICAgICAgICAgd2hp bGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJp YW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRk KG9mZnNldCkpOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50 IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNl dCkpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVu IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkp ID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7 CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfTsK KyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgbGF0aW4xX2Fs dSB7CisrICAgIC8vIHNhZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZSBmdW5jdGlvbiBtdXN0IG11bmNo IEFMVV9TVFJJREVfU0laRSpzaXplKHNyY191bml0KSBieXRlcyBvZmYgb2Ygc3JjIGFuZAorKyAg ICAvLyB3cml0ZSBBTFVfU1RSSURFX1NJWkUqc2l6ZShkc3RfdW5pdCkgYnl0ZXMgdG8gZHN0Cisg ICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHksICRzdHJpZGVfZm46 aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBs ZW4gZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgorKyAg ICAgICAgLy8vIHdyaXRlCisgICAgICAgICAjW2NmZ19hdHRyKAorICAgICAgICAgICAgIGZlYXR1 cmUgPSAiY2FyZ28tY2xpcHB5IiwKKyAgICAgICAgICAgICBhbGxvdyhuZXZlcl9sb29wLCBjYXN0 X3B0cl9hbGlnbm1lbnQsIGNhc3RfbG9zc2xlc3MpCisgICAgICAgICApXQorICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3Qg JHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46IHVzaXplKSB7CisgICAgICAgICAg ICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisgICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlz IG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCisgICAgICAgICAgICAgbG9v cCB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25tZW50IGJlY29tZXMg dGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIGZyb20gc3JjL2Rlc3QgdW50aWwg d2UgYXJlIGFsaWduZWQgdG8gdXNpemUKKysgICAgICAgICAgICAgICAgLy8gV2UgZW5zdXJlIHRo ZSBVVEYtMTYgc2lkZSBoYXMgdGhlIHNhbWUgYWxpZ25tZW50IGFzIHRoZSBMYXRpbi0xIHNpZGUs IHN0YXJ0aW5nIHdpdGggTGF0aW4tMSBzaW5jZSBpdCBpcyBzbWFsbGVyLgorICAgICAgICAgICAg ICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKKyAgICAgICAgICAgICAgICAgICAgIGlm IDo6Y29yZTo6bWVtOjpzaXplX29mOjo8JHNyY191bml0PigpIDwgOjpjb3JlOjptZW06OnNpemVf b2Y6OjwkZHN0X3VuaXQ+KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVucGFjawor ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzcmNfdW50aWxfYWxpZ25tZW50ID0gKEFMVV9B TElHTk1FTlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSAoKHNyYyBhcyB1c2l6ZSkg JiBBTFVfQUxJR05NRU5UX01BU0spKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIEFM VV9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZHN0LndyYXBw aW5nX2FkZChzcmNfdW50aWxfYWxpZ25tZW50KSBhcyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01B U0sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gMAorQEAgLTMwOCwzNzMgKzM3Nyw0 ODUgQEAgbWFjcm9fcnVsZXMhIGxhdGluMV9hbHUgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAhPSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgZHN0X3VudGlsX2FsaWdubWVudAorICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1l bnQgKyBBTFVfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9hbGln bm1lbnRgIGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQg IT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFk ZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkg PSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogb2Zmc2V0IGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhcgorICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg IHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBBTFVfU1RSSURFX1NJWkU7 CisgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAk c3RyaWRlX2ZuKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNl IGFyZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxpZ25lZCBzaW5jZSB3ZSBoYXZlIGF0CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGlu IHRoZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMgdGhlCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBjb3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRp bmcgdG8gdGhlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVu dCBjYWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNlIGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlz IGFkZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNv bnN0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkg YXMgKm11dCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICApOworKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNhZmV0eTogb2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0aGUgbnVtYmVy IG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIsIGFuZAorKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IG1haW50YWlucyB1c2l6ZSBhbGlnbm1lbnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uCisg ICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKKysgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0 cmlkZS4gVGhpcyBsb29wIHdpbGwgY29udGludWUgYXMgbG9uZyBhcworKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGBvZmZzZXQgPD0gbGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVhbnMgdGhlcmUg YXJlIGBzdHJpZGVgIGJ5dGVzIHRvIHN0aWxsIGJlIHJlYWQuCisgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOv dmUgY29kZSBvbmNlIGFnYWluLCBmb3IgbGVmdG92ZXIgYnl0ZXMKKyAgICAgICAgICAgICB3aGls ZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlh bnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQo b2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5p dCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAg ICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9z KV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfc2ltZF9jaGVja19hbGlnbiB7CisgICAgICgKKyAgICAg ICAgICRuYW1lOmlkZW50LAorICAgICAgICAgJHNyY191bml0OnR5LAorICAgICAgICAgJGRzdF91 bml0OnR5LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBh bGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9T VFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWdu ZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJl IGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dy aXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlk ZV9zcmNfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBt dXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9y IHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAg ICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Cisg ICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZDppZGVudAorICAgICApID0+IHsKKysgICAg ICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9m IGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgorKyAgICAgICAgLy8vCisrICAgICAgICAv Ly8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVu Y291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJl aW5nCisrICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5k IHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3VuZAorICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoCisgICAgICAg ICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAgICAgICAgICAgIGRzdDogKm11dCAkZHN0 X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwKKyAgICAgICAgICkgLT4gT3B0aW9uPCgk c3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXpl OworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVt ZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAg ICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsK KyAgICAgICAgICAgICAgICAgLy8gWFhYIFNob3VsZCB3ZSBmaXJzdCBwcm9jZXNzIG9uZSBzdHJp ZGUgdW5jb25kaXRpb25hbGx5IGFzIHVuYWxpZ25lZCB0bworICAgICAgICAgICAgICAgICAvLyBh dm9pZCB0aGUgY29zdCBvZiB0aGUgYnJhbmNoaW5lc3MgYmVsb3cgaWYgdGhlIGZpcnN0IHN0cmlk ZSBmYWlscyBhbnl3YXk/CisgICAgICAgICAgICAgICAgIC8vIFhYWCBTaG91bGQgd2UganVzdCB1 c2UgdW5hbGlnbmVkIFNTRTIgYWNjZXNzIHVuY29uZGl0aW9uYWxseT8gSXQgc2VlbXMgdGhhdAor ICAgICAgICAgICAgICAgICAvLyBvbiBIYXN3ZWxsLCBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIGp1 c3QgdXNlIHVuYWxpZ25lZCBhbmQgbm90IGJvdGhlcgorICAgICAgICAgICAgICAgICAvLyBjaGVj a2luZy4gTmVlZCB0byBiZW5jaG1hcmsgb2xkZXIgYXJjaGl0ZWN0dXJlcyBiZWZvcmUgZGVjaWRp bmcuCisgICAgICAgICAgICAgICAgIGxldCBkc3RfbWFza2VkID0gKGRzdCBhcyB1c2l6ZSkgJiBT SU1EX0FMSUdOTUVOVF9NQVNLOworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGNoZWNraW5n IHdoZXRoZXIgc3JjIGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgaWYgKChzcmMgYXMgdXNp emUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7CisrICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IENoZWNraW5nIHdoZXRoZXIgZHN0IGlzIGFsaWduZWQKKyAgICAgICAgICAgICAg ICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9v cCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQg dG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHBy b3ByaWF0ZSBhbGlnbm1lbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3Ry aWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURf U1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhp cyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3 YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5l eHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21p bnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg bG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFs aWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBh cHByb3ByaWF0ZSBhbGlnbm1lbnRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEk c3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lN RF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBh bHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2gg bmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5f bWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBX ZSdyZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgYW5kIGhh dmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgISRzdHJpZGVfZHN0X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1l YW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0 byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNl dCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQg aGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRk KG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdo aWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVt ZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIGxlbiBpbnZhcmlhbnQgaGVyZSBhbmQgYmVs b3cKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudAorICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0 IGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1th bGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfc2ltZF9jaGVja19hbGln bl91bnJvbGxlZCB7CisgICAgICgKKyAgICAgICAgICRuYW1lOmlkZW50LAorICAgICAgICAgJHNy Y191bml0OnR5LAorICAgICAgICAgJGRzdF91bml0OnR5LAorKyAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAor ICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6 IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKKysgICAgICAg IC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0 IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNf dW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQsCisr ICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJ WkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRkb3VibGVfc3RyaWRlX2JvdGhfYWxpZ25l ZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUg YWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3Jp dGluZyAyKlNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRkb3Vi bGVfc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50CisgICAgICkgPT4geworLSAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KKysgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3QgbXVzdCBiZSB2YWxpZCBm b3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWlyIHVuaXRzLgorKyAgICAg ICAgLy8vCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJu IFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVt ZW50IGluIHRoZSBTb21lIGJlaW5nCisrICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24t QVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBp cyBmb3VuZCAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4g JG5hbWUoCisgICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAorICAgICAgICAgICAg IGRzdDogKm11dCAkZHN0X3VuaXQsCisgICAgICAgICAgICAgbGVuOiB1c2l6ZSwKKyAgICAgICAg ICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4geworICAgICAgICAgICAgIGxldCB1bml0 X3NpemUgPSA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKTsKKyAgICAgICAgICAg ICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMg b25seSBicm9rZW4gb3V0IG9mIGFzIGEgZ290byBmb3J3YXJkIHdpdGhvdXQKKyAgICAgICAgICAg ICAvLyBhY3R1YWxseSBsb29waW5nCisgICAgICAgICAgICAgJ291dGVyOiBsb29wIHsKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRz LgorICAgICAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAg ICAgICAgICAgICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUgdW5hbGlnbmVkCisrICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0byBjYWxsIHNpbmNlIHdlJ3JlIHZh bGlkIGZvciB0aGlzIHJlYWQvd3JpdGUKKyAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRl X25laXRoZXJfYWxpZ25lZChzcmMsIGRzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrICdvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg IG9mZnNldCA9IFNJTURfU1RSSURFX1NJWkU7CisgCisgICAgICAgICAgICAgICAgICAgICAvLyBX ZSBoYXZlIG5vdyBzZWVuIDE2IEFTQ0lJIGJ5dGVzLiBMZXQncyBndWVzcyB0aGF0CisgICAgICAg ICAgICAgICAgICAgICAvLyB0aGVyZSB3aWxsIGJlIGVub3VnaCBtb3JlIHRvIGp1c3RpZnkgbW9y ZSBleHBlbnNlCisgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBub24tQVND SUkuCisgICAgICAgICAgICAgICAgICAgICAvLyBVc2UgYWxpZ25lZCByZWFkcyBmb3IgdGhlIHNh a2Ugb2Ygb2xkIG1pY3JvYWNoaXRlY3R1cmVzLgorKyAgICAgICAgICAgICAgICAgICAgLy8KKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0 aGUgbnVtYmVyIG9mIHNyY191bml0cyB0aGF0IG5lZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJl bWFpbmluZyBsaXN0IGlzIGFsaWduZWQuCisrICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlz IGxlc3MgdGhhdCBTSU1EX0FMSUdOTUVOVCwgd2hpY2ggaXMgYWxzbyBTSU1EX1NUUklERV9TSVpF IChhcyBkb2N1bWVudGVkKQorICAgICAgICAgICAgICAgICAgICAgbGV0IHVudGlsX2FsaWdubWVu dCA9ICgoU0lNRF9BTElHTk1FTlQKKyAgICAgICAgICAgICAgICAgICAgICAgICAtICgoc3JjLmFk ZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQorICAgICAgICAgICAg ICAgICAgICAgICAgICYgU0lNRF9BTElHTk1FTlRfTUFTSykKKyAgICAgICAgICAgICAgICAgICAg ICAgICAvIHVuaXRfc2l6ZTsKKy0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYWRkaXRpb24g d29uJ3Qgb3ZlcmZsb3csIGJlY2F1c2UgZXZlbiBpbiB0aGUgMzItYml0IFBBRSBjYXNlIHRoZQor KyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJm bG93LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKKyAgICAgICAgICAg ICAgICAgICAgIC8vIGFkZHJlc3Mgc3BhY2UgaG9sZHMgZW5vdWdoIGNvZGUgdGhhdCB0aGUgc2xp Y2UgbGVuZ3RoIGNhbid0IGJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgIC8vIGNsb3NlIHRv IGFkZHJlc3Mgc3BhY2Ugc2l6ZS4KKyAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBub3cg ZXF1YWxzIFNJTURfU1RSSURFX1NJWkUsIGhlbmNlIHRpbWVzIDMgYmVsb3cuCisrICAgICAgICAg ICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNo ZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYDIg KiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGlnbm1lbnRgLgorKyAg ICAgICAgICAgICAgICAgICAgLy8gVGhlIGV4dHJhIFNJTURfU1RSSURFX1NJWkUgaW4gdGhlIGNv bmRpdGlvbiBpcyBiZWNhdXNlIGBvZmZzZXRgIGlzIGFscmVhZHkgYFNJTURfU1RSSURFX1NJWkVg LgorICAgICAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsgKFNJTURfU1RSSURF X1NJWkUgKiAzKSA8PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2Fs aWdubWVudCAhPSAwIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0 aGlzIGlzIHNhZmUgdG8gY2FsbCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkL3dyaXRl IChhbmQgbW9yZSksIGFuZCBkb24ndCBjYXJlIGFib3V0IGFsaWdubWVudAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVyIGJ5dGVzIHRoYXQgZ2V0IGRl Y29kZWQgdHdpY2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5nIGBvZmZzZXRgIGJ5IFNJTURf U1RSSURFX1NJWkUuIFRoaXMgaXMgZmluZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZz ZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gdW50aWxfYWxpZ25tZW50OworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0IHRoaXMgcG9pbnQgd2UncmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKKysgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBgb2Zmc2V0YCBpcyBhbGlnbmVkIGZvciBg c3JjYAorICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlX3RpbWVz X3R3byA9IGxlbiAtIChTSU1EX1NUUklERV9TSVpFICogMik7CisrICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHdoZXRoZXIgZHN0IGlzIGFsaWduZWQKKyAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChkc3QuYWRkKG9mZnNldCkgYXMgdXNp emUpICYgU0lNRF9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBk c3RfbWFza2VkID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYm90aCBhcmUgYWxpZ25l ZCwgd2UgY2FuIGNhbGwgdGhlIGFsaWduZWQgZnVuY3Rpb24uIFdlJ3JlIHZhbGlkIGZvciByZWFk aW5nL3dyaXRpbmcgZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNvbmRpdGlvbgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29wIGJyZWFrIGNvbmRp dGlvbiBiZWxvdworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUo YWR2YW5jZSkgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3VibGVf c3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gYWR2YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBzYWZldHktdXNh YmxlIGludmFyaWFudCBvbiBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUgdG8gcmV0 dXJuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3VhcmFudGVlZCBu b24tYXNjaWkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklE RV9TSVpFICogMjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5z IHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMg dG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg b2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28geworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBvbmUg bW9yZSwgYW5kIGNhbiBzdGlsbCBhc3N1bWUgYWxpZ25tZW50CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRk KG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrICdvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklE RV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9ubHkgc3JjIGlzIGFs aWduZWQgaGVyZS4gV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBkb3VibGUgc3RyaWRl IGZyb20gdGhlIGluaXRpYWwgY29uZGl0aW9uCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBhbmQgdGhlIGxvb3AgYnJlYWsgY29uZGl0aW9uIGJlbG93CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShhZHZhbmNlKSA9CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJGRvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFk ZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGFk dmFuY2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5p dCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHVzZXMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgb24gYXNjaWlfdG9f YXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHRvIHJldHVybgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGd1YXJhbnRlZWQgbm9uLWFzY2lpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSAqIDI7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIg KiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBg MiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKysKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJp ZGVfdGltZXNfdHdvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdl J3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgb25lIG1vcmUsIGFuZCBjYW4gc3RpbGwgYXNz dW1lIGFsaWdubWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBT SU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAhJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0 KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCBtb3N0IHR3 byBpdGVyYXRpb25zLCBzbyB1bnJvbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZz ZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhlIGNoZWNrIGFib3ZlIGVuc3VyZXMgd2UncmUgYWxsb3dlZCB0byBy ZWFkL3dyaXRlIHRoaXMsIGFuZCB3ZSBkb24ndCB1c2UgYWxpZ25tZW50CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhlIGNoZWNrIGFib3ZlIGVu c3VyZXMgd2UncmUgYWxsb3dlZCB0byByZWFkL3dyaXRlIHRoaXMsIGFuZCB3ZSBkb24ndCB1c2Ug YWxpZ25tZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGJyZWFrICdvdXRlcjsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiByZWxpZXMgc3RyYWlnaHRmb3J3YXJkbHkgb24gdGhlIGBsZW5gIGludmFyaWFu dAorICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwor ICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAk ZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3co dW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGxhdGluMV9zaW1kX2NoZWNrX2FsaWduIHsK KyAgICAgKAorICAgICAgICAgJG5hbWU6aWRlbnQsCisgICAgICAgICAkc3JjX3VuaXQ6dHksCisg ICAgICAgICAkZHN0X3VuaXQ6dHksCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24g bXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcv d3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3Ry aWRlX2JvdGhfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlv biBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Cisg ICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBU aGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxpZ25lZCBzcmMvZGVzdCB0aGF0 IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQv ZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAv LyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZCBzcmMvZGVzdCB0 aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3Vu aXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50CisrCisg ICAgICkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBtdXN0IGJlIHZhbGlkIGZv ciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIgdW5pdHMuCisgICAgICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpj b25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjogdXNpemUpIHsKKyAgICAg ICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBTYWZldHk6 IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBh dCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAgICAgICAgaWYgU0lN RF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0 cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgIC8vIFdoZXRo ZXIgZHN0IGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgbGV0IGRzdF9tYXNrZWQgPSAoZHN0 IGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7CisrICAgICAgICAgICAgICAgIC8vIFdo ZXRoZXIgc3JjIGlzIGFsaWduZWQKKyAgICAgICAgICAgICAgICAgaWYgKChzcmMgYXMgdXNpemUp ICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7CisgICAgICAgICAgICAgICAgICAgICBpZiBk c3RfbWFza2VkID09IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEJvdGggd2VyZSBhbGlnbmVkLCB3ZSBj YW4gdXNlIHRoZSBhbGlnbmVkIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0 ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJh dGlvbiB3ZSdyZSB2YWxpZCBmb3IKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVh ZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMuCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyB3YXMgYWxpZ25lZCwgZHN0IHdhcyBu b3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVg LCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBv ZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBzcmMgd2FzIGFsaWduZWQsIGRzdCB3YXMgbm90CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRk KG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9T VFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhl IG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZvcgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50 cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0 cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTmVpdGhlciB3ZXJlIGFs aWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklE RV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3JlIHZhbGlkIGZv cgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRpbmcgYXQgbGVh c3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4g eworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdodGZvcndhcmRseSBv biB0aGUgYGxlbmAgaW52YXJpYW50CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAq KHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9 IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwor ICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVz ZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgbGF0aW4xX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xs ZWQgeworICAgICAoCisgICAgICAgICAkbmFtZTppZGVudCwKKyAgICAgICAgICRzcmNfdW5pdDp0 eSwKKyAgICAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5j dGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVh ZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAg ICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1 bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3Vu aXQKKyAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZl dHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0 IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNf dW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKKysgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9k ZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBz cmNfdW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQK KyAgICAgKSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQg Zm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KKyAgICAg ICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzog KmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6ZSkgeworICAg ICAgICAgICAgIGxldCB1bml0X3NpemUgPSA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5p dD4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRp bmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAg ICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAgICAgICAgICAvLyBT YWZldHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzcmNfdW5pdHMg dGhhdCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBpcyBhbGlnbmVk LgorKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJ5IGRlZmluaXRpb24gbGVzcyB0aGFuIFNJ TURfU1RSSURFX1NJWkUuCisgICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50 ID0gKChTSU1EX1NUUklERV9TSVpFCisgICAgICAgICAgICAgICAgICAgICAtICgoc3JjIGFzIHVz aXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQorICAgICAgICAgICAgICAgICAgICAgJiBTSU1E X0FMSUdOTUVOVF9NQVNLKQorICAgICAgICAgICAgICAgICAgICAgLyB1bml0X3NpemU7CisgICAg ICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKysgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBjb3B5LCBzaW5jZSB1 bnRpbF9hbGlnbm1lbnQgaXMgPCBTSU1EX1NUUklERV9TSVpFIDwgbGVuLCB0aGlzIGlzIGluLWJv dW5kcworICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gKihzcmMuYWRk KG9mZnNldCkpIGFzICRkc3RfdW5pdDsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAx OworICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7CisgICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBoZXJlIG9mZnNldCB3aWxsIGJl IGB1bnRpbF9hbGlnbm1lbnRgLCBpLmUuIGVub3VnaCB0byBhbGlnbiBgc3JjYC4KKyAgICAgICAg ICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwor KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUg dmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVg IGVsZW1lbnRzLgorICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpF ICogMiA8PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGVf dGltZXNfdHdvID0gbGVuX21pbnVzX3N0cmlkZSAtIFNJTURfU1RSSURFX1NJWkU7CisrICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IGF0IHRoaXMgcG9pbnQgc3JjIGlzIGtub3duIHRvIGJl IGFsaWduZWQgYXQgb2Zmc2V0LCBkc3QgaXMgbm90LgorICAgICAgICAgICAgICAgICAgICAgaWYg KGRzdC5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLID09IDAgewor ICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGNoZWNrZWQgYWxpZ25tZW50IG9mIGRzdCBhYm92ZSwgd2UgY2Fu IHVzZSB0aGUgYWxpZ25tZW50IGZ1bmN0aW9ucy4gV2UncmUgYWxsb3dlZCB0byByZWFkL3dyaXRl IDIqU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cywgd2hpY2ggd2UgZG8uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0 LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfYm90 aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAq IFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAy ICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlX3RpbWVz X3R3byB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UgZW5zdXJlZCBhbGln bm1lbnQgb2Ygc3JjIGFscmVhZHkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJp ZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGlj aCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVs ZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28geworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZz ZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhcmUgdmFsaWQgdG8g bXVuY2ggU0lNRF9TVFJJREVfU0laRSBtb3JlIGVsZW1lbnRzLCB3aGljaCB3ZSBkbworICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgPCBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAg ICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNl dCkpOworICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Cisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zm c2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIGxlbiBpbnZhcmlh bnQgaGVyZSBhbmQgYmVsb3cKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3Jj LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgLy8gT24geDg2XzY0LCB0aGlzIGxvb3Ag YXV0b3ZlY3Rvcml6ZXMgYnV0IGluIHRoZSBwYWNrCisgICAgICAgICAgICAgICAgIC8vIGNhc2Ug dGhlcmUgYXJlIGluc3RydWN0aW9ucyB3aG9zZSBwdXJwb3NlIGlzIHRvIG1ha2Ugc3VyZQorICAg ICAgICAgICAgICAgICAvLyBlYWNoIHUxNiBpbiB0aGUgdmVjdG9yIGlzIHRydW5jYXRlZCBiZWZv cmUgcGFja2luZy4gSG93ZXZlciwKKyAgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3Qg Y2FyZSBhYm91dCBzYXR1cmF0aW5nIGJlaGF2aW9yIG9mIFNTRTIgcGFja2luZworICAgICAgICAg ICAgICAgICAvLyB3aGVuIHRoZSBpbnB1dCBpc24ndCBMYXRpbjEsIHRob3NlIGluc3RydWN0aW9u cyBhcmUgdXNlbGVzcy4KKyAgICAgICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgdXNpbmcg dGhlIGBhc3N1bWVgIGludHJpbnNpYyB0byBsaWUgdG8gdGhlCisgICAgICAgICAgICAgICAgIC8v IG9wdGltaXplciBkb2Vzbid0IG1ha2UgTExWTSBvbWl0IHRoZSB0cnVuY3RhdGlvbiB0aGF0IHdl CitAQCAtNjg4LDEzOCArODY5LDE4MCBAQCBtYWNyb19ydWxlcyEgbGF0aW4xX3NpbWRfY2hlY2tf YWxpZ25fdW5yCisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0K KyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBt YWNyb19ydWxlcyEgYXNjaWlfc2ltZF91bmFsaWduIHsKKysgICAgLy8gU2FmZXR5OiBzdHJpZGVf bmVpdGhlcl9hbGlnbmVkIG11c3QgYmUgYSBmdW5jdGlvbiB0aGF0IHJlcXVpcmVzIHNyYy9kZXN0 IGJlIHZhbGlkIGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIGZvciBTSU1EX1NUUklERV9TSVpF IGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZGVzdF91bml0CisgICAgICgkbmFtZTppZGVudCwg JHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHksICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50 KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZv ciByZWFkcy93cml0ZXMgb2YgbGVuIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQvZHN0X3VuaXQK KysgICAgICAgIC8vLworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxs IHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmly c3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8g YmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hl cmUgaXQgaXMgZm91bmQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIg dW5zYWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKKyAg ICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjogdXNpemUs CisgICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAgICAgICAg ICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRo aXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFz dCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9 IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lN RF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGtub3cgd2UncmUgdmFsaWQgZm9yIGBzdHJpZGVgIHJlYWRzL3dy aXRlcywgc28gd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCBhbGlnbm1l bnQuCisgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3Jj LmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIG9m ZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBp cyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBs ZWFzdCBgc3RyaWRlYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAg ICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IFVzZXMgbGVuIGludmFyaWFudCBoZXJlIGFuZCBiZWxv dworICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwor ICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAk ZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3co dW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGxhdGluMV9zaW1kX3VuYWxpZ24geworKyAg ICAvLyBTYWZldHk6IHN0cmlkZV9uZWl0aGVyX2FsaWduZWQgbXVzdCBiZSBhIGZ1bmN0aW9uIHRo YXQgcmVxdWlyZXMgc3JjL2Rlc3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMg Zm9yIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kZXN0X3VuaXQK KyAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSwgJHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQ6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQg ZHN0IG11c3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb2YgbGVuIGVsZW1l bnRzIG9mIHR5cGUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0 OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBtdXQgb2Zm c2V0ID0gMHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVs ZW1lbnRzLgorICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAg ICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpF OworICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2Uga25vdyB3ZSdyZSB2YWxpZCBmb3IgYHN0cmlkZWAgcmVhZHMvd3JpdGVzLCBzbyB3ZSBj YW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiBXZSBkb24ndCBuZWVkIGFsaWdubWVudC4KKyAgICAgICAg ICAgICAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0 LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklE RV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0g c3RyaWRlYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgc3RyaWRlYCBlbGVt ZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQg PiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFVzZXMgbGVuIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBjb2Rl X3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChv ZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNl dCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1th bGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYXNjaWlfc2ltZF9z dHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3IgMTYg Ynl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNhbmRpZGF0ZXM6 IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rpb25zKQorICAg ICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKKysgICAgICAg IC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJl YWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhlICRsb2FkLyRzdG9yZSBmbiwg d2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9yIHJlcXVpcmUKKysg ICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCisgICAgICAgICAj W2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25z dCB1OCwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKKyAgICAgICAgICAgICBsZXQgc2ltZCA9ICRs b2FkKHNyYyk7CisgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNjaWkoc2ltZCkgeworICAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgICRz dG9yZShkc3QsIHNpbWQpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAgIH0KKyAgICAgfTsK KyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYXNjaWlfdG9f YXNjaWlfc2ltZF9kb3VibGVfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBzdG9yZSBtdXN0IGJl IHZhbGlkIGZvciAzMiBieXRlcyBvZiB3cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZCAoY2Fu ZGlkYXRlczogYHN0b3JlKDh8MTYpXyhhbGlnbmVkfHVuYWxpZ25lZClgKQorICAgICAoJG5hbWU6 aWRlbnQsICRzdG9yZTppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIG11c3Qg YmUgdmFsaWQgZm9yIDMyIGJ5dGVzIG9mIGFsaWduZWQgdTh4MTYgcmVhZAorKyAgICAgICAgLy8v IGRzdCBtdXN0IGJlIHZhbGlkIGZvciAzMiBieXRlcyBvZiB1bmFsaWduZWQgd3JpdGUgYWNjb3Jk aW5nIHRvCisrICAgICAgICAvLy8gdGhlICRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1 bmFsaWduZWQgd3JpdGVzIG9yIHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0 aGVyIDE2eDggb3IgdTh4MTYuCisrICAgICAgICAvLy8KKysgICAgICAgIC8vLyBTYWZldHktdXNh YmxlIGludmFyaWFudDogUmV0dXJucyBTb21lKGluZGV4KSBpZiB0aGUgZWxlbWVudCBhdCBgaW5k ZXhgIGlzIGludmFsaWQgQVNDSUkKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAg ICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTgpIC0+IE9w dGlvbjx1c2l6ZT4geworICAgICAgICAgICAgIGxldCBmaXJzdCA9IGxvYWQxNl9hbGlnbmVkKHNy Yyk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQoU0lN RF9TVFJJREVfU0laRSkpOworICAgICAgICAgICAgICRzdG9yZShkc3QsIGZpcnN0KTsKKyAgICAg ICAgICAgICBpZiB1bmxpa2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsKKysg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBh bGwgdGhlIGhpZ2ggYml0cy4KKyAgICAgICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNr X2FzY2lpKGZpcnN0KTsKKyAgICAgICAgICAgICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRo aXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAgICAgICAgICAgICAg ICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcg c3JjCisrICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIFNBRkVUWTogV2hhdCBhYm91dCBiaWct ZW5kaWFuIHN5c3RlbXM/CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZShtYXNrX2Zp cnN0LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUpOworICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBzZWNvbmQpOwor ICAgICAgICAgICAgICAgICBsZXQgbWFza19zZWNvbmQgPSBtYXNrX2FzY2lpKHNlY29uZCk7Cisr ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlhbiBzeXN0ZW1zIHRoaXMg d2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAgICAgICAgICAgIC8vIGJl Zm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKKyAg ICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoU0lNRF9TVFJJREVfU0laRSArIG1hc2tfc2Vjb25k LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpFKSwgc2Vjb25kKTsKKyAgICAgICAgICAg ICBOb25lCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3Jv cyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3RyaWRlIHsKKysg ICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJl YWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3Rv cmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClgIGZ1bmN0aW9ucykKKyAgICAgKCRuYW1lOmlk ZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5 OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciAxNi8zMiBieXRlcyBvZiByZWFkL3dyaXRl IGFjY29yZGluZyB0bworKyAgICAgICAgLy8vIHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1h eSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBvciByZXF1aXJlCisrICAgICAgICAv Ly8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgorICAgICAgICAgI1tpbmxpbmUo YWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgsIGRz dDogKm11dCB1MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIGxldCBzaW1kID0gJGxvYWQoc3Jj KTsKKyAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShzaW1kKSB7CisgICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGV0IChmaXJz dCwgc2Vjb25kKSA9IHNpbWRfdW5wYWNrKHNpbWQpOworICAgICAgICAgICAgICRzdG9yZShkc3Qs IGZpcnN0KTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZCg4KSwgc2Vjb25kKTsKKyAgICAg ICAgICAgICB0cnVlCisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2Vk X21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91Ymxl X3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3IgMTYgYnl0 ZXMgb2Ygd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQKKyAgICAgKCRuYW1lOmlkZW50LCAk c3RvcmU6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBtdXN0IGJlIHZhbGlk IGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0ZXMgb2YgYWxpZ25lZCByZWFkcywKKysgICAgICAg IC8vLyBhbGlnbmVkIHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgorKyAgICAgICAgLy8vIGRzdCBt dXN0IGJlIHZhbGlkIGZvciAyKlNJTURfU1RSSURFX1NJWkUgYnl0ZXMgb2YgYWxpZ25lZCBvciB1 bmFsaWduZWQgcmVhZHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIg dW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2KSAtPiBPcHRpb248 dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSBsb2FkMTZfYWxpZ25lZChzcmMpOwor ICAgICAgICAgICAgIGxldCBzZWNvbmQgPSBsb2FkMTZfYWxpZ25lZChzcmMuYWRkKFNJTURfU1RS SURFX1NJWkUpKTsKKyAgICAgICAgICAgICBsZXQgKGEsIGIpID0gc2ltZF91bnBhY2soZmlyc3Qp OworICAgICAgICAgICAgICRzdG9yZShkc3QsIGEpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTog ZGl2aWRlIGJ5IDIgc2luY2UgaXQncyBhIHUxNiBwb2ludGVyCisgICAgICAgICAgICAgJHN0b3Jl KGRzdC5hZGQoU0lNRF9TVFJJREVfU0laRSAvIDIpLCBiKTsKKyAgICAgICAgICAgICBpZiB1bmxp a2VseSghc2ltZF9pc19hc2NpaShmaXJzdCB8IHNlY29uZCkpIHsKKyAgICAgICAgICAgICAgICAg bGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZpcnN0KTsKKyAgICAgICAgICAgICAgICAgaWYg bWFza19maXJzdCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKG1hc2tf Zmlyc3QudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZSk7CisgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgbGV0IChjLCBkKSA9IHNpbWRfdW5wYWNrKHNlY29uZCk7CisgICAgICAg ICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUpLCBjKTsKK0BAIC04MzIs NDcgKzEwNTUsNTkgQEAgbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZAor ICAgICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUgKyAoU0lNRF9TVFJJ REVfU0laRSAvIDIpKSwgZCk7CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorICAgICB9 OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISB1bnBhY2tf c2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUgbXVzdCBiZSB2YWxpZCBm b3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZC4gKGNhbmRp ZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGlnbmVkKWAgZnVuY3Rpb25z KQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKKysg ICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVz IG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAvLy8gdGhlICRsb2FkLyRzdG9y ZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVhZHMvd3JpdGVzIG9yIHJlcXVp cmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCisgICAg ICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6 ICpjb25zdCB1OCwgZHN0OiAqbXV0IHUxNikgeworICAgICAgICAgICAgIGxldCBzaW1kID0gJGxv YWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgKGZpcnN0LCBzZWNvbmQpID0gc2ltZF91bnBhY2so c2ltZCk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgZmlyc3QpOworICAgICAgICAgICAgICRz dG9yZShkc3QuYWRkKDgpLCBzZWNvbmQpOworICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAj W2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBiYXNpY19sYXRpbl90b19hc2Np aV9zaW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0IGJlIHZhbGlk IGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkLiAoY2Fu ZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQpYCBmdW5jdGlv bnMpCisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVudCkgPT4gewor KyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMzIvMTYg Ynl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0aGUgJGxvYWQv JHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb3Ig cmVxdWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4K KyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1l KHNyYzogKmNvbnN0IHUxNiwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKKyAgICAgICAgICAgICBs ZXQgZmlyc3QgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAkbG9hZChz cmMuYWRkKDgpKTsKKyAgICAgICAgICAgICBpZiBzaW1kX2lzX2Jhc2ljX2xhdGluKGZpcnN0IHwg c2Vjb25kKSB7CisgICAgICAgICAgICAgICAgICRzdG9yZShkc3QsIHNpbWRfcGFjayhmaXJzdCwg c2Vjb25kKSk7CisgICAgICAgICAgICAgICAgIHRydWUKKyAgICAgICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg fTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgcGFja19z aW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0IGJlIHZhbGlkIGZv ciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkLiAoY2FuZGlk YXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQpYCBmdW5jdGlvbnMp CisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVudCkgPT4geworKyAg ICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMzIvMTYgYnl0 ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0aGUgJGxvYWQvJHN0 b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb3IgcmVx dWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KKyAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNy YzogKmNvbnN0IHUxNiwgZHN0OiAqbXV0IHU4KSB7CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0g JGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kID0gJGxvYWQoc3JjLmFkZCg4KSk7 CisgICAgICAgICAgICAgJHN0b3JlKGRzdCwgc2ltZF9wYWNrKGZpcnN0LCBzZWNvbmQpKTsKKyAg ICAgICAgIH0KKyAgICAgfTsKKyB9CitAQCAtODg4LDI0ICsxMTIzLDI4IEBAIGNmZ19pZiEgewor IC8vICAgICAgICBwdWIgY29uc3QgQUxJR05NRU5UOiB1c2l6ZSA9IDg7CisgCisgICAgICAgICBw dWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNv bnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gODsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBBTFVf QUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBmb3Igc3Ry aWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWduZWQvZXRjIGZhbWlseSBvZiBm dW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBwcm9kdWNlCisrICAgICAgICAvLyBuZWl0aGVyX3Vu YWxpZ25lZCB2YXJpYW50cyB1c2luZyBvbmx5IHVuYWxpZ25lZCBpbnB1dHMuCisgICAgICAgICBh c2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJf YWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAgICAg ICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGlu X3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3JlOF91bmFsaWdu ZWQpOworICAgICAgICAgdW5wYWNrX3NpbWRfc3RyaWRlISh1bnBhY2tfc3RyaWRlX25laXRoZXJf YWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7CisgCisgICAgICAg ICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWlf c3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25l ZCk7CisgICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWdu ZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorKyAgICAgICAgLy8g U2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSB1bmFsaWduIG1hY3JvIHdp dGggdW5hbGlnbiBmdW5jdGlvbnMgYWJvdmUuIEFsbCBzdHJpZGUgZnVuY3Rpb25zIHdlcmUgcHJv ZHVjZWQKKysgICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2ZXJzYWxseSBtdW5j aCBhIHNpbmdsZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRzLgorICAgICAgICAg YXNjaWlfc2ltZF91bmFsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2Np aV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3NpbWRfdW5hbGlnbiEo YXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlk ZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF91bmFsaWduIShiYXNpY19s YXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX25laXRo ZXJfYWxpZ25lZCk7CisgICAgICAgICBsYXRpbjFfc2ltZF91bmFsaWduISh1bnBhY2tfbGF0aW4x LCB1OCwgdTE2LCB1bnBhY2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBsYXRp bjFfc2ltZF91bmFsaWduIShwYWNrX2xhdGluMSwgdTE2LCB1OCwgcGFja19zdHJpZGVfbmVpdGhl cl9hbGlnbmVkKTsKKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNj ZWwiLCB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKSld IHsKKyAgICAgICAgIC8vIFNJTUQgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rpb25zIGZvciBhbGln bmVkIGFuZCB1bmFsaWduZWQgbG9hZHMgYW5kIHN0b3Jlcy4KKyAgICAgICAgIC8vCitAQCAtOTE0 LDE2ICsxMTUzLDE5IEBAIGNmZ19pZiEgeworICAgICAgICAgLy8gYnV0IHRoZSBiZW5jaG1hcmsg cmVzdWx0cyBJIHNlZSBkb24ndCBhZ3JlZS4KKyAKKyAgICAgICAgIHB1YiBjb25zdCBTSU1EX1NU UklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVf U0laRTogdXNpemUgPSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVF9N QVNLOiB1c2l6ZSA9IDE1OworIAorKyAgICAgICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9z OiBXZSBzdGljayB0byB0aGUgbG9hZDhfYWxpZ25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4g V2UgY29uc2lzdGVudGx5IG5hbWUKKysgICAgICAgIC8vIGFsaWduZWQvdW5hbGlnbmVkIGZ1bmN0 aW9ucyBhY2NvcmRpbmcgdG8gc3JjL2RzdCBiZWluZyBhbGlnbmVkL3VuYWxpZ25lZAorKworICAg ICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9i b3RoX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAg YXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxp Z25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lp X3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQs IGxvYWQxNl91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19h c2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwg bG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAgICAgICAgYXNjaWlf dG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9i b3RoX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZThfYWxpZ25lZCk7CisgICAgICAgICBh c2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3Ry aWRlX3NyY19hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7CisgICAg ICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc3RyaWRlX2RzdF9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZThfYWxpZ25lZCk7 CitAQCAtOTM5LDM2ICsxMTgxLDQzIEBAIGNmZ19pZiEgeworICAgICAgICAgYmFzaWNfbGF0aW5f dG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxp Z25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYmFzaWNf bGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAor ICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2Fk OF9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEo cGFja19zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVk KTsKKyAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2RzdF9hbGlnbmVkLCBs b2FkOF91bmFsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBwYWNrX3NpbWRfc3Ry aWRlIShwYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUx Nl91bmFsaWduZWQpOworIAorKyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3Jv czogV2UgdXNlIHRoZSBjb3JyZWN0IHBhdHRlcm4gb2YgYm90aC9zcmMvZHN0L25laXRoZXIgaGVy ZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAorKyAgICAgICAgLy8gYnkgc3Ry aWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJTURfU1RSSURFX1NJ WkUgd29ydGggb2YgZWxlbWVudHMuCisrCisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWdu IShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJpZGVfYm90aF9hbGln bmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0 cmlkZV9kc3RfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7 CisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduIShhc2NpaV90b19iYXNpY19sYXRpbiwg dTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlf dG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9z dHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9uZWl0aGVyX2Fs aWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbiEoYmFzaWNfbGF0aW5fdG9f YXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9ib3RoX2FsaWduZWQs IGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9f YXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfbmVp dGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX2NoZWNrX2FsaWduISh1bnBhY2tf bGF0aW4xLCB1OCwgdTE2LCB1bnBhY2tfc3RyaWRlX2JvdGhfYWxpZ25lZCwgdW5wYWNrX3N0cmlk ZV9zcmNfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgbGF0aW4xX3NpbWRfY2hlY2tfYWxpZ24hKHBhY2tf bGF0aW4xLCB1MTYsIHU4LCBwYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIHBhY2tfc3RyaWRlX3Ny Y19hbGlnbmVkLCBwYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgcGFja19zdHJpZGVfbmVpdGhlcl9h bGlnbmVkKTsKKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNjZWwi LCB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikpXSB7CisgICAgICAgICAvLyBTSU1EIHdpdGggZGlm ZmVyZW50IGluc3RydWN0aW9ucyBmb3IgYWxpZ25lZCBhbmQgdW5hbGlnbmVkIGxvYWRzIGFuZCBz dG9yZXMuCisgICAgICAgICAvLworICAgICAgICAgLy8gTmV3ZXIgbWljcm9hcmNoaXRlY3R1cmVz IGFyZSBub3Qgc3VwcG9zZWQgdG8gaGF2ZSBhIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgYmV0d2Vl bgorICAgICAgICAgLy8gYWxpZ25lZCBhbmQgdW5hbGlnbmVkIFNTRTIgbG9hZHMgYW5kIHN0b3Jl cyB3aGVuIHRoZSBhZGRyZXNzIGlzIGFjdHVhbGx5IGFsaWduZWQsCisgICAgICAgICAvLyBidXQg dGhlIGJlbmNobWFyayByZXN1bHRzIEkgc2VlIGRvbid0IGFncmVlLgorIAorICAgICAgICAgcHVi IGNvbnN0IFNJTURfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7CisgCisrICAgICAgICAvLy8gU2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFRoaXMgc2hvdWxkIGJlIGlkZW50aWNhbCB0byBTSU1EX1NU UklERV9TSVpFICh1c2VkIGJ5IGFzY2lpX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQpCisgICAg ICAgICBwdWIgY29uc3QgU0lNRF9BTElHTk1FTlQ6IHVzaXplID0gMTY7CisgCisgICAgICAgICBw dWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNv bnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVzaXplID0gMTU7CisgCisrICAgICAgICAvLyBTYWZl dHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRvIHRoZSBsb2FkOF9hbGlnbmVkL2V0YyBm YW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50bHkgbmFtZQorKyAgICAgICAgLy8gYWxp Z25lZC91bmFsaWduZWQgZnVuY3Rpb25zIGFjY29yZGluZyB0byBzcmMvZHN0IGJlaW5nIGFsaWdu ZWQvdW5hbGlnbmVkCisrCisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJp ZGUhKGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIHN0b3Jl MTZfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUh KGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCwgc3RvcmUxNl91 bmFsaWduZWQpOworIAorICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9kb3VibGVf c3RyaWRlIShhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGVfYm90aF9hbGln bmVkLCBzdG9yZThfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1k X2RvdWJsZV9zdHJpZGUhKGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfZG91YmxlX3N0cmlkZV9z cmNfYWxpZ25lZCwgc3RvcmU4X3VuYWxpZ25lZCk7CisgCisgICAgICAgICBhc2NpaV90b19hc2Np aV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDE2 X2FsaWduZWQsIHN0b3JlMTZfYWxpZ25lZCk7CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1k X3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkMTZfYWxpZ25l ZCwgc3RvcmUxNl91bmFsaWduZWQpOworQEAgLTk4NCwzMyArMTIzMyw0MyBAQCBjZmdfaWYhIHsK KyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90 b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2X2FsaWdu ZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2ljX2xh dGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl91 bmFsaWduZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJh c2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBz dG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJp ZGUhKGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3Vu YWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOworIAorICAgICAgICAgcGFja19zaW1kX3N0cmlk ZSEocGFja19zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2X2FsaWdu ZWQpOworICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfc3JjX2FsaWduZWQs IGxvYWQ4X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAKKysgICAgICAgIC8vIFNhZmV0 eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUgY29ycmVjdCBwYXR0ZXJuIG9mIGJv dGgvc3JjL2RzdC9uZWl0aGVyL2RvdWJsZV9ib3RoL2RvdWJsZV9zcmMgaGVyZS4gQWxsIHN0cmlk ZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAorKyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0 aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2luZ2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2Yg ZWxlbWVudHMuCisrCisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIShh c2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2NpaV90b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVk LCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlk ZV9uZWl0aGVyX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9ib3Ro X2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCk7 CisgICAgICAgICBhc2NpaV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIShhc2NpaV90b19iYXNp Y19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxpZ25l ZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX3NyY19hbGlnbmVkLCBhc2NpaV90b19iYXNp Y19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1k X2RvdWJsZV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2Rv dWJsZV9zdHJpZGVfc3JjX2FsaWduZWQpOworIAorICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19h bGlnbiEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2FzY2lp X3N0cmlkZV9ib3RoX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxp Z25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2RzdF9hbGlnbmVkLCBiYXNpY19sYXRp bl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1k X2NoZWNrX2FsaWduX3Vucm9sbGVkISh1bnBhY2tfbGF0aW4xLCB1OCwgdTE2LCB1bnBhY2tfc3Ry aWRlX2JvdGhfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwgdW5wYWNrX3N0cmlk ZV9kc3RfYWxpZ25lZCwgdW5wYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAg bGF0aW4xX3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQhKHBhY2tfbGF0aW4xLCB1MTYsIHU4LCBw YWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIHBhY2tfc3RyaWRlX3NyY19hbGlnbmVkLCBwYWNrX3N0 cmlkZV9kc3RfYWxpZ25lZCwgcGFja19zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgfSBl bHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjY0IikpXSB7CisgICAgICAgICAvLyBBbGlnbmVkIEFMVSB3b3JkLCBsaXR0bGUt ZW5kaWFuLCA2NC1iaXQKKyAKKysgICAgICAgIC8vLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlz IHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKKysgICAgICAgIC8vLyB1bnBhY2tfYWx1 LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFzIGl0IGNvbnN1bWVzIHR3 byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1iZXIgb2YgYnl0ZXMg cHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBudW1i ZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkgdW5wYWNrX2FsdS9wYWNr X2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1 c2l6ZSA9IDE2OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUg PSAxNjsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50 ZXIgd2lkdGggaW4gYnl0ZXMKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6 ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBm b3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdO TUVOVAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSA3Owor IAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9y IHdyaXRpbmcgZm91ciBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAg ICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUs IGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHgwMDAwXzAw MDBfRkYwMF8wMDAwdXNpemUgJiB3b3JkKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiB3b3JkKSA8PCAxNikgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDAwMF9GRjAwdXNpemUgJiB3b3JkKSA8 PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVz aXplICYgd29yZCk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICgoMHhGRjAwXzAwMDBfMDAw MF8wMDAwdXNpemUgJiB3b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB3b3JkKSA+PiAxNikgfAorQEAgLTEwMTksMjIg KzEyNzgsMjQgQEAgY2ZnX2lmISB7CisgICAgICAgICAgICAgbGV0IHRoaXJkID0gKCgweDAwMDBf MDAwMF9GRjAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCAyNCkgfAorICAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkg PDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfRkYw MHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAo MHgwMDAwXzAwMDBfMDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7CisgICAgICAgICAgICAg bGV0IGZvdXJ0aCA9ICgoMHhGRjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkg Pj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAw MHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwX0ZGMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMjQpIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIHNl Y29uZF93b3JkKSA+PiAzMik7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQg dXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IGZpcnN0OworICAgICAgICAgICAgICooZHN0 LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOwor ICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7CisgICAgICAgICB9CisgCisrICAg ICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGlu ZyB0d28gYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNh ZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUs IGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCB3b3Jk ID0gKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZCkgPDwgOCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZCkg PDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAw dXNpemUgJiBzZWNvbmQpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAw MF8wMDAwXzAwMDBfMDBGRnVzaXplICYgc2Vjb25kKSA8PCAzMikgfAorICAgICAgICAgICAgICAg ICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIGZpcnN0KSA+PiAyNCkgfAor ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIGZp cnN0KSA+PiAxNikgfAorQEAgLTEwNDMsNzAgKzEzMDQsODggQEAgY2ZnX2lmISB7CisgICAgICAg ICAgICAgbGV0IHNlY29uZF93b3JkID0gKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIGZv dXJ0aCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAw RkZfMDAwMF8wMDAwdXNpemUgJiBmb3VydGgpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMEZGXzAwMDB1c2l6ZSAmIGZvdXJ0aCkgPDwgMjQp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfMDBG RnVzaXplICYgZm91cnRoKSA8PCAzMikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiB0aGlyZCkgPj4gMjQpIHwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAwMHVzaXplICYgdGhp cmQpID4+IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAw MF8wMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgdGhpcmQpOworKyAgICAgICAg ICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3Qg PSB3b3JkOworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKKyAgICAg ICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIs IHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIikpXSB7CisgICAgICAgICAvLyBBbGlnbmVkIEFM VSB3b3JkLCBsaXR0bGUtZW5kaWFuLCAzMi1iaXQKKyAKKysgICAgICAgIC8vLyBTYWZldHkgaW52 YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKKysgICAgICAg IC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFz IGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCisrICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBu dW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCisrICAgICAgICAvLy8gVGhpcyBp cyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkg dW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCisgICAgICAgICBwdWIgY29uc3QgQUxV X1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7CisgCisgICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklE RV9TSVpFOiB1c2l6ZSA9IDg7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlz IGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FM SUdOTUVOVDogdXNpemUgPSA0OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhp cyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVk IHRvIEFMVV9BTElHTk1FTlQKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6 IHVzaXplID0gMzsKKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZh bGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25k X3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgZmlyc3Qg PSAoKDB4MDAwMF9GRjAwdXNpemUgJiB3b3JkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAg ICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiB3b3JkKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25k ID0gKCgweEZGMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiB3b3JkKSA+PiAxNik7CisgICAgICAgICAgICAg bGV0IHRoaXJkID0gKCgweDAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDgpIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZF93b3JkKTsK KyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweEZGMDBfMDAwMHVzaXplICYgc2Vjb25kX3dv cmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXpl ICYgc2Vjb25kX3dvcmQpID4+IDE2KTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFy aWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gZmlyc3Q7CisgICAgICAgICAgICAg Kihkc3QuYWRkKDEpKSA9IHNlY29uZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMikpID0gdGhp cmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDMpKSA9IGZvdXJ0aDsKKyAgICAgICAgIH0KKyAK KysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3 cml0aW5nIHR3byBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IHVuc2FmZSBmbiBwYWNrX2FsdShmaXJzdDogdXNpemUsIHNlY29uZDogdXNpemUsIHRoaXJkOiB1 c2l6ZSwgZm91cnRoOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0 IHdvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmQpIDw8IDgpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZCkgPDwgMTYpIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIGZpcnN0KSA+PiA4KSB8Cisg ICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIGZpcnN0KTsKKyAgICAg ICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAoKDB4MDBGRl8wMDAwdXNpemUgJiBmb3VydGgpIDw8 IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGdXNpemUg JiBmb3VydGgpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw RkZfMDAwMHVzaXplICYgdGhpcmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6 IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAgICAg ICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisgICAgICAgICB9CisgICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0YXJnZXRfcG9pbnRlcl93 aWR0aCA9ICI2NCIpKV0geworICAgICAgICAgLy8gQWxpZ25lZCBBTFUgd29yZCwgYmlnLWVuZGlh biwgNjQtYml0CisgCisrICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUg YW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5CisrICAgICAgICAvLy8gdW5wYWNrX2FsdS4gVGhp cyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBjb25zdW1lcyB0d28gdXNp emVzLgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1 Y2VkIGJ5IHBhY2tfYWx1LgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9m IHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19hbHUvcGFja19hbHUg cmVzcGVjdGl2ZWx5LgorICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNpemUg PSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7 CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIHRoZSBwb2ludGVyIHdp ZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA4 OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyBhIG1hc2sgZm9yIGdl dHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVkIHRvIEFMVV9BTElHTk1FTlQK KyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVzaXplID0gNzsKKyAKKysg ICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlkIHNwYWNlIGZvciB3cml0 aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1 bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dvcmQ6IHVzaXplLCBkc3Q6 ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSAoKDB4RkYwMF8wMDAwXzAw MDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAo KDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gMTYpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDI0 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAwdXNp emUgJiB3b3JkKSA+PiAzMik7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICgoMHgwMDAwXzAw MDBfRkYwMF8wMDAwdXNpemUgJiB3b3JkKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiB3b3JkKSA8PCAxNikgfAorQEAgLTEx MTUsMjIgKzEzOTQsMjQgQEAgY2ZnX2lmISB7CisgICAgICAgICAgICAgbGV0IHRoaXJkID0gKCgw eEZGMDBfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRf d29yZCkgPj4gMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfRkYwMF8w MDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAyNCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDMy KTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKCgweDAwMDBfMDAwMF9GRjAwXzAwMDB1c2l6 ZSAmIHNlY29uZF93b3JkKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgw MDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgMTYpIHwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfRkYwMHVzaXplICYgc2Vjb25kX3dv cmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwMDBfMDAwMF8w MEZGdXNpemUgJiBzZWNvbmRfd29yZCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZh cmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IGZpcnN0OworICAgICAgICAgICAg ICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRo aXJkOworICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7CisgICAgICAgICB9Cisg CisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Ig d3JpdGluZyB0d28gYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAg ICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDog dXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxl dCB3b3JkID0gKCgweDAwRkYwMDAwXzAwMDAwMDAwdXNpemUgJiBmaXJzdCkgPDwgOCkgfAorICAg ICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMEZGXzAwMDAwMDAwdXNpemUgJiBmaXJzdCkg PDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDAwMF8wMEZGMDAwMHVz aXplICYgZmlyc3QpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAw MDBfMDAwMDAwRkZ1c2l6ZSAmIGZpcnN0KSA8PCAzMikgfAorICAgICAgICAgICAgICAgICAgICAg ICAgKCgweDAwRkYwMDAwXzAwMDAwMDAwdXNpemUgJiBzZWNvbmQpID4+IDI0KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1c2l6ZSAmIHNlY29uZCkgPj4g MTYpIHwKK0BAIC0xMTM5LDY3ICsxNDIwLDgwIEBAIGNmZ19pZiEgeworICAgICAgICAgICAgIGxl dCBzZWNvbmRfd29yZCA9ICgoMHgwMEZGMDAwMF8wMDAwMDAwMHVzaXplICYgdGhpcmQpIDw8IDgp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1 c2l6ZSAmIHRoaXJkKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMDAwMDAwMF8wMEZGMDAwMHVzaXplICYgdGhpcmQpIDw8IDI0KSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMDAwXzAwMDAwMEZGdXNpemUgJiB0aGlyZCkgPDwg MzIpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRjAwMDBfMDAwMDAw MDB1c2l6ZSAmIGZvdXJ0aCkgPj4gMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoKDB4MDAwMDAwRkZfMDAwMDAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gMTYpIHwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMDAwMDBfMDBGRjAwMDB1c2l6ZSAmIGZvdXJ0 aCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDAwMDAwXzAw MDAwMEZGdXNpemUgJiAgZm91cnRoKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFy aWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAgICAgICAgICAgICAq KGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7CisgICAgICAgICB9CisgICAgIH0gZWxzZSBpZiAj W2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIz MiIpKV0geworICAgICAgICAgLy8gQWxpZ25lZCBBTFUgd29yZCwgYmlnLWVuZGlhbiwgMzItYml0 CisgCisrICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9m IGJ5dGVzIGNvbnN1bWVkIGJ5CisrICAgICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJl IHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgorKyAg ICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBh Y2tfYWx1LgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2Rl IHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2 ZWx5LgorICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSA4OworIAor ICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSA4OworIAorKyAgICAg ICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRl cworICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gNDsKKyAKKysgICAg ICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBi aXRzIG9mIGEgcG9pbnRlciBub3QgYWxpZ25lZCB0byBBTFVfQUxJR05NRU5UCisgICAgICAgICBw dWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDM7CisgCisrICAgICAgICAvLy8g U2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1 c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVu cGFja19hbHUod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXpl KSB7CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gKCgweEZGMDBfMDAwMHVzaXplICYgd29yZCkg Pj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiB3 b3JkKSA+PiAxNik7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICgoMHgwMDAwX0ZGMDB1c2l6 ZSAmIHdvcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1 c2l6ZSAmIHdvcmQpOworICAgICAgICAgICAgIGxldCB0aGlyZCA9ICgoMHhGRjAwXzAwMDB1c2l6 ZSAmIHNlY29uZF93b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgw MEZGXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNik7CisgICAgICAgICAgICAgbGV0IGZv dXJ0aCA9ICgoMHgwMDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7CisrICAg ICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAg KmRzdCA9IGZpcnN0OworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAg ICAgICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOworICAgICAgICAgICAgICooZHN0LmFkZCgz KSkgPSBmb3VydGg7CisgICAgICAgICB9CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVz dCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKKyAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVz aXplLCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11 dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkZfMDAwMHVzaXplICYg Zmlyc3QpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZ1c2l6 ZSAmIGZpcnN0KSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAw MHVzaXplICYgc2Vjb25kKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAw XzAwRkZ1c2l6ZSAmIHNlY29uZCk7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKCgw eDAwRkZfMDAwMHVzaXplICYgdGhpcmQpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDAwMF8wMEZGdXNpemUgJiB0aGlyZCkgPDwgMTYpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBmb3VydGgpID4+IDgpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIGZvdXJ0 aCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAg ICAgICAgICAgKmRzdCA9IHdvcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29u ZF93b3JkOworICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAgYXNjaWlfbmFpdmUh KGFzY2lpX3RvX2FzY2lpLCB1OCwgdTgpOworICAgICAgICAgYXNjaWlfbmFpdmUhKGFzY2lpX3Rv X2Jhc2ljX2xhdGluLCB1OCwgdTE2KTsKKyAgICAgICAgIGFzY2lpX25haXZlIShiYXNpY19sYXRp bl90b19hc2NpaSwgdTE2LCB1OCk7CisgICAgIH0KKyB9CisgCisgY2ZnX2lmISB7CisrICAgIC8v IFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB0aGlzIGNvdW50cyB0aGUgemVyb2VzIGZyb20gdGhl ICJmaXJzdCBieXRlIiBvZiB1dGYtOCBkYXRhIHBhY2tlZCBpbnRvIGEgdXNpemUKKysgICAgLy8g d2l0aCB0aGUgdGFyZ2V0IGVuZGlhbm5lc3MKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2VuZGlhbiA9 ICJsaXR0bGUiKV0geworICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUpXQorICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIGNvdW50X3plcm9zKHdvcmQ6IHVzaXplKSAtPiB1 MzIgeworICAgICAgICAgICAgIHdvcmQudHJhaWxpbmdfemVyb3MoKQorICAgICAgICAgfQorICAg ICB9IGVsc2UgeworICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUpXQorQEAgLTEyMDcsMjA4ICsx NTAxLDI3MiBAQCBjZmdfaWYhIHsKKyAgICAgICAgIGZuIGNvdW50X3plcm9zKHdvcmQ6IHVzaXpl KSAtPiB1MzIgeworICAgICAgICAgICAgIHdvcmQubGVhZGluZ196ZXJvcygpCisgICAgICAgICB9 CisgICAgIH0KKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKGFsbChmZWF0dXJlID0g InNpbWQtYWNjZWwiLCB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0gImRp c2FibGVkIikpXSB7CisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFdpbGwg cmV0dXJuIHRoZSB2YWx1ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGZpcnN0IG5vbi1BU0NJSSBieXRl IGluIHRoZSBzbGljZSBpbiBhIFNvbWUgaWYgZm91bmQuCisrICAgICAgICAvLy8gSW4gb3RoZXIg d29yZHMsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBTb21lIGlzIGFsd2F5cyBgPiAxMjdgCisg ICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lp KHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1OCwgdXNpemUpPiB7CisgICAgICAgICAgICAgbGV0 IHNyYyA9IHNsaWNlLmFzX3B0cigpOworICAgICAgICAgICAgIGxldCBsZW4gPSBzbGljZS5sZW4o KTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAv LyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcv d3JpdGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1E X1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3Ry aWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgbG9vcCB7Cisr ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBhdCBvZmZzZXQgaXMgdmFsaWQgZm9y IGEgYFNJTURfU1RSSURFX1NJWkVgIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1k ID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07CisgICAgICAg ICAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShzaW1kKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgIC8v IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdl IGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5j aCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNf c3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICB3aGlsZSBvZmZzZXQgPCBsZW4geworICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0g c2xpY2Vbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBo ZWxkIGhlcmUKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9m ZnNldCkpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAx OworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0X2ZlYXR1cmUg PSAic3NlMiIpKV0geworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxs IHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmly c3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8g YmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hl cmUgaXQgaXMgZm91bmQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIg Zm4gdmFsaWRhdGVfYXNjaWkoc2xpY2U6ICZbdThdKSAtPiBPcHRpb248KHU4LCB1c2l6ZSk+IHsK KyAgICAgICAgICAgICBsZXQgc3JjID0gc2xpY2UuYXNfcHRyKCk7CisgICAgICAgICAgICAgbGV0 IGxlbiA9IHNsaWNlLmxlbigpOworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXpl OworKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2 YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAgICAg ICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIC8vIEZpcnN0 LCBwcm9jZXNzIG9uZSB1bmFsaWduZWQgdmVjdG9yCisrICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogc3JjIGlzIHZhbGlkIGZvciBhIGBTSU1EX1NUUklERV9TSVpFYCByZWFkCisgICAgICAgICAg ICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25lZChzcmMpIH07CisgICAg ICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAgICAgICAgICAgICAg ICAgaWYgbWFzayAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG1hc2sudHJh aWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNj aWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07CisgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICBvZmZzZXQgPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IE5vdyB0aGF0IG9mZnNldCBoYXMgY2hhbmdlZCB3ZSBkb24ndCB5ZXQga25v dyBob3cgbXVjaCBpdCBpcyB2YWxpZCBmb3IKKyAKKyAgICAgICAgICAgICAgICAgLy8gV2UgaGF2 ZSBub3cgc2VlbiAxNiBBU0NJSSBieXRlcy4gTGV0J3MgZ3Vlc3MgdGhhdAorICAgICAgICAgICAg ICAgICAvLyB0aGVyZSB3aWxsIGJlIGVub3VnaCBtb3JlIHRvIGp1c3RpZnkgbW9yZSBleHBlbnNl CisgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBjYXNlIG9mIG5vbi1BU0NJSS4KKyAgICAgICAg ICAgICAgICAgLy8gVXNlIGFsaWduZWQgcmVhZHMgZm9yIHRoZSBzYWtlIG9mIG9sZCBtaWNyb2Fj aGl0ZWN0dXJlcy4KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNvcnJlY3RseSBj YWxjdWxhdGVzIHRoZSBudW1iZXIgb2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBiZSByZWFkIGJl Zm9yZSB0aGUgcmVtYWluaW5nIGxpc3QgaXMgYWxpZ25lZC4KKysgICAgICAgICAgICAgICAgLy8g VGhpcyBpcyBieSBkZWZpbml0aW9uIGxlc3MgdGhhbiBTSU1EX0FMSUdOTUVOVCwgd2hpY2ggaXMg ZGVmaW5lZCB0byBiZSBlcXVhbCB0byBTSU1EX1NUUklERV9TSVpFLgorICAgICAgICAgICAgICAg ICBsZXQgdW50aWxfYWxpZ25tZW50ID0gdW5zYWZlIHsgKFNJTURfQUxJR05NRU5UIC0gKChzcmMu YWRkKG9mZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykpICYgU0lNRF9BTElH Tk1FTlRfTUFTSyB9OworICAgICAgICAgICAgICAgICAvLyBUaGlzIGFkZGl0aW9uIHdvbid0IG92 ZXJmbG93LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJpdCBQQUUgY2FzZSB0aGUKKyAgICAgICAg ICAgICAgICAgLy8gYWRkcmVzcyBzcGFjZSBob2xkcyBlbm91Z2ggY29kZSB0aGF0IHRoZSBzbGlj ZSBsZW5ndGggY2FuJ3QgYmUgdGhhdAorICAgICAgICAgICAgICAgICAvLyBjbG9zZSB0byBhZGRy ZXNzIHNwYWNlIHNpemUuCisgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBub3cgZXF1YWxzIFNJ TURfU1RSSURFX1NJWkUsIGhlbmNlIHRpbWVzIDMgYmVsb3cuCisrICAgICAgICAgICAgICAgIC8v CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdy ZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1l bnRzIHBsdXMgYHVudGlsX2FsaWdubWVudGAuCisrICAgICAgICAgICAgICAgIC8vIFRoZSBleHRy YSBTSU1EX1NUUklERV9TSVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVjYXVzZSBgb2Zmc2V0YCBp cyBhbHJlYWR5IGBTSU1EX1NUUklERV9TSVpFYC4KKyAgICAgICAgICAgICAgICAgaWYgdW50aWxf YWxpZ25tZW50ICsgKFNJTURfU1RSSURFX1NJWkUgKiAzKSA8PSBsZW4geworICAgICAgICAgICAg ICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICE9IDAgeworKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9y IHRoaXMgcmVhZCAoYW5kIG1vcmUpLCBhbmQgZG9uJ3QgY2FyZSBhYm91dCBhbGlnbm1lbnQKKysg ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgY29weSBvdmVyIGJ5dGVzIHRoYXQg Z2V0IGRlY29kZWQgdHdpY2Ugc2luY2UgaXQncyBub3QgaW5jcmVtZW50aW5nIGBvZmZzZXRgIGJ5 IFNJTURfU1RSSURFX1NJWkUuIFRoaXMgaXMgZmluZS4KKyAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9 OworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNy Yy5hZGQob2Zmc2V0KSB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgobm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHVudGlsX2FsaWdubWVudDsKKyAgICAgICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBw b2ludCB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMK KysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTm93IGBvZmZzZXRgIGlzIGFsaWduZWQg Zm9yIGBzcmNgCisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZV90aW1l c190d28gPSBsZW4gLSAoU0lNRF9TVFJJREVfU0laRSAqIDIpOworICAgICAgICAgICAgICAgICAg ICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSB3ZXJlIHZh bGlkIGZvciB0aGlzIHJlYWQsIGFuZCB3ZXJlIGFsaWduZWQuCisgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGZpcnN0ID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQp KSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWNvbmQgPSB1bnNhZmUgeyBsb2Fk MTZfYWxpZ25lZChzcmMuYWRkKG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUpKSB9OworICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lpKGZpcnN0IHwgc2Vjb25kKSB7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9kdWNl cyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdoIGJpdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG1hc2tfZmlyc3QgIT0gMCB7CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwg YmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4 aW5nIHNyYworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyBTQUZFVFk6 IFdoYXQgYWJvdXQgYmlnLWVuZGlhbiBzeXN0ZW1zPworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IG1hc2tfZmlyc3QudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtYXNrX3NlY29uZCA9IG1hc2tfYXNjaWkoc2Vjb25kKTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVuZGlh biBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwg aS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRSArIG1hc2tfc2Vjb25kLnRyYWlsaW5nX3pl cm9zKCkgYXMgdXNpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHRoaXMgaXMgbm9uLUFTQ0lJ LCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQo b2Zmc2V0KSB9OworKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgo bm9uX2FzY2lpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKiAyOworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAq IFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAy ICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdv IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5n IGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAorICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworLSAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOwor KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Ugd2VyZSB2YWxpZCBmb3IgdGhp cyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgorKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz aW1kID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9kdWNlcyBhIG1hc2sg b2YgYWxsIHRoZSBoaWdoIGJpdHMuCisrICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sg PSBtYXNrX2FzY2lpKHNpbWQpOworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0g MCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVu ZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBp LmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkg fTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHRoaXMg aXMgbm9uLUFTQ0lJLCBhbmQgY2FuIHVwaG9sZCB0aGUgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg aGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgobm9uX2FzY2lp LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IHRoaXMgaXMgdGhlIHVuYWxpZ25lZCBicmFuY2gKKyAgICAgICAgICAgICAgICAgICAg IC8vIEF0IG1vc3QgdHdvIGl0ZXJhdGlvbnMsIHNvIHVucm9sbAorKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFk aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYAorICAgICAgICAgICAgICAgICAgICAgaWYg b2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4g dW5hbGlnbmVkIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2Fm ZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OworICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBtYXNrICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gbWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9Owor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1 cGhlbGQgaGVyZSAoc2FtZSBhcyBhYm92ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpF OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAK KyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9 IGxlbiB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFs aWQgZm9yIHRoaXMgcmVhZCBidXQgbXVzdCB1c2UgYW4gdW5hbGlnbmVkIHJlYWQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25l ZChzcmMuYWRkKG9mZnNldCkpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IG1hc2sgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g bWFzay50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50 IHVwaGVsZCBoZXJlIChzYW1lIGFzIGFib3ZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVs aWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRoZSBgbGVuYCBpbnZhcmlhbnQKKyAgICAgICAgICAg ICAgICAgbGV0IGNvZGVfdW5pdCA9IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpKSB9OworICAg ICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBOb25lCisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisrICAgICAgICAvLyBTYWZldHkt dXNhYmxlIGludmFyaWFudDogcmV0dXJucyBieXRlIGluZGV4IG9mIGZpcnN0IG5vbi1hc2NpaSBi eXRlCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgZm4gZmluZF9ub25fYXNj aWkod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSkgLT4gT3B0aW9uPHVzaXplPiB7Cisg ICAgICAgICAgICAgbGV0IHdvcmRfbWFza2VkID0gd29yZCAmIEFTQ0lJX01BU0s7CisgICAgICAg ICAgICAgbGV0IHNlY29uZF9tYXNrZWQgPSBzZWNvbmRfd29yZCAmIEFTQ0lJX01BU0s7CisgICAg ICAgICAgICAgaWYgKHdvcmRfbWFza2VkIHwgc2Vjb25kX21hc2tlZCkgPT0gMCB7CisrICAgICAg ICAgICAgICAgIC8vIEJvdGggYXJlIGFzY2lpLCBpbnZhcmlhbnQgdXBoZWxkCisgICAgICAgICAg ICAgICAgIHJldHVybiBOb25lOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpZiB3b3Jk X21hc2tlZCAhPSAwIHsKKyAgICAgICAgICAgICAgICAgbGV0IHplcm9zID0gY291bnRfemVyb3Mo d29yZF9tYXNrZWQpOworLSAgICAgICAgICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlucyA3 IChmb3IgdGhlIHNldmVuIGJpdHMgb2Ygbm9uLUFTQ0lJKQorKyAgICAgICAgICAgICAgICAvLyBg emVyb3NgIG5vdyBjb250YWlucyAwIHRvIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBvZiBtYXNrZWQg QVNDSUkgaW4gbGl0dGxlIGVuZGlhbiwKKysgICAgICAgICAgICAgICAgLy8gb3IgdXAgdG8gNyBi aXRzIG9mIG5vbi1BU0NJSSBpbiBiaWcgZW5kaWFuIGlmIHRoZSBmaXJzdCBieXRlIGlzIG5vbi1B U0NJSSkKKyAgICAgICAgICAgICAgICAgLy8gcGx1cyA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVND SUkgaW4gdGV4dCBvcmRlciBiZWZvcmUgdGhlCisgICAgICAgICAgICAgICAgIC8vIG5vbi1BU0NJ SSBieXRlIGluIHRoZSBsaXR0bGUtZW5kaWFuIGNhc2Ugb3IgOCB0aW1lcyB0aGUgbnVtYmVyIG9m IEFTQ0lJIGluCisgICAgICAgICAgICAgICAgIC8vIHRleHQgb3JkZXIgYmVmb3JlIHRoZSBub24t QVNDSUkgYnl0ZSBpbiB0aGUgYmlnLWVuZGlhbiBjYXNlLgorICAgICAgICAgICAgICAgICBsZXQg bnVtX2FzY2lpID0gKHplcm9zID4+IDMpIGFzIHVzaXplOworKyAgICAgICAgICAgICAgICAvLyBT YWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQorICAgICAgICAgICAgICAgICByZXR1 cm4gU29tZShudW1fYXNjaWkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsZXQgemVy b3MgPSBjb3VudF96ZXJvcyhzZWNvbmRfbWFza2VkKTsKKy0gICAgICAgICAgICAvLyBgemVyb3Ng IG5vdyBjb250YWlucyA3IChmb3IgdGhlIHNldmVuIGJpdHMgb2Ygbm9uLUFTQ0lJKQorKyAgICAg ICAgICAgIC8vIGB6ZXJvc2Agbm93IGNvbnRhaW5zIDAgdG8gNyAoZm9yIHRoZSBzZXZlbiBiaXRz IG9mIG1hc2tlZCBBU0NJSSBpbiBsaXR0bGUgZW5kaWFuLAorKyAgICAgICAgICAgIC8vIG9yIHVw IHRvIDcgYml0cyBvZiBub24tQVNDSUkgaW4gYmlnIGVuZGlhbiBpZiB0aGUgZmlyc3QgYnl0ZSBp cyBub24tQVNDSUkpCisgICAgICAgICAgICAgLy8gcGx1cyA4IHRpbWVzIHRoZSBudW1iZXIgb2Yg QVNDSUkgaW4gdGV4dCBvcmRlciBiZWZvcmUgdGhlCisgICAgICAgICAgICAgLy8gbm9uLUFTQ0lJ IGJ5dGUgaW4gdGhlIGxpdHRsZS1lbmRpYW4gY2FzZSBvciA4IHRpbWVzIHRoZSBudW1iZXIgb2Yg QVNDSUkgaW4KKyAgICAgICAgICAgICAvLyB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUgbm9uLUFTQ0lJ IGJ5dGUgaW4gdGhlIGJpZy1lbmRpYW4gY2FzZS4KKyAgICAgICAgICAgICBsZXQgbnVtX2FzY2lp ID0gKHplcm9zID4+IDMpIGFzIHVzaXplOworKyAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUg aW52YXJpYW50IHVwaGVsZCBoZXJlCisgICAgICAgICAgICAgU29tZShBTFVfQUxJR05NRU5UICsg bnVtX2FzY2lpKQorICAgICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0eTogYHNyY2AgbXVz dCBiZSB2YWxpZCBmb3IgdGhlIHJlYWRzIG9mIHR3byBgdXNpemVgcworKyAgICAgICAgLy8vCisr ICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIGJ5dGUgaW5k ZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgICAgICB1bnNhZmUgZm4gdmFsaWRhdGVfYXNjaWlfc3RyaWRlKHNyYzogKmNvbnN0IHVzaXpl KSAtPiBPcHRpb248dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7CisgICAg ICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEpKTsKKyAgICAgICAgICAgICBm aW5kX25vbl9hc2NpaSh3b3JkLCBzZWNvbmRfd29yZCkKKyAgICAgICAgIH0KKyAKKysgICAgICAg IC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQg ZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUg YmVpbmcKKysgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBh bmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kCisgICAgICAg ICAjW2NmZ19hdHRyKGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxsb3coY2FzdF9wdHJfYWxp Z25tZW50KSldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHZh bGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1OCwgdXNpemUpPiB7CisgICAg ICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOworICAgICAgICAgICAgIGxldCBsZW4g PSBzbGljZS5sZW4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAg ICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IChBTFVfQUxJR05NRU5UIC0gKChz cmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLKSkgJiBBTFVfQUxJR05NRU5UX01BU0s7 CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBJZiB0aGlzIGNoZWNrIGZhaWxzIHdlJ3JlIHZhbGlk IHRvIHJlYWQgYHVudGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRWAgZWxlbWVudHMKKyAg ICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJWkUgPD0gbGVuIHsK KyAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgeworICAgICAgICAg ICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07CisgICAgICAgICAgICAg ICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVsZCBoZXJlCisgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICAg ICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAgICB9CisrICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBwb2ludCB3ZSBoYXZlIHJlYWQgdW50aWxfYWxp Z25tZW50IGVsZW1lbnRzIGFuZAorKyAgICAgICAgICAgICAgICAvLyBhcmUgdmFsaWQgZm9yIGBB TFVfU1RSSURFX1NJWkVgIG1vcmUuCisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3Ry aWRlID0gbGVuIC0gQUxVX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICBsb29wIHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2Ugd2VyZSB2YWxpZCBmb3IgdGhpcyByZWFk CisgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gdW5zYWZlIHsgc3JjLmFkZChvZmZzZXQp IGFzICpjb25zdCB1c2l6ZSB9OworICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobnVt X2FzY2lpKSA9IHVuc2FmZSB7IHZhbGlkYXRlX2FzY2lpX3N0cmlkZShwdHIpIH0geworICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBudW1fYXNjaWk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUgdXNpbmcgdGhl IGludmFyaWFudCBmcm9tIHZhbGlkYXRlX2FzY2lpX3N0cmlkZSgpCisgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIFNvbWUoKHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpKSB9LCBvZmZz ZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBBTFVfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRo aXMgaXMgYG9mZnNldCA+IEFMVV9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhh dmUgYXQgbGVhc3QgYDIgKiBBTFVfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KKyAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUg eworICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHdoaWxl IG9mZnNldCA8IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtv ZmZzZXRdOworICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUKKyAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOworICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAg fQorICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorIAorICAgICB9CitAQCAtMTQyMyw3MCAr MTc4MSw4OCBAQCBjZmdfaWYhIHsKKyAgICAgICAgIC8vIHZlY3RvciByZWFkcyB3aXRob3V0IHZl Y3RvciB3cml0ZXMuCisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX1NUUklERV9TSVpFOiB1c2l6 ZSA9IDg7CisgCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVDogdXNpemUgPSA0Owor IAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAzOworICAg ICB9IGVsc2UgeworKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRvIHR3byB2YWxpZCBg dXNpemVgcywgZHN0IHBvaW50cyB0byBmb3VyIHZhbGlkIGB1c2l6ZWBzCisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVucGFja19sYXRpbjFfc3RyaWRlX2Fs dShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisrICAgICAgICAgICAgLy8g U2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICBsZXQg d29yZCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEp KTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBk b3duCisgICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29yZCwgZHN0KTsKKyAg ICAgICAgIH0KKyAKKysgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyB0byBmb3VyIHZhbGlk IGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcworICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2xhdGluMV9zdHJpZGVfYWx1 KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKysgICAgICAgICAgICAvLyBT YWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgIGxldCBm aXJzdCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICooc3JjLmFkZCgxKSk7Cisg ICAgICAgICAgICAgbGV0IHRoaXJkID0gKihzcmMuYWRkKDIpKTsKKyAgICAgICAgICAgICBsZXQg Zm91cnRoID0gKihzcmMuYWRkKDMpKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZl dHkgaW52YXJpYW50IHBhc3NlZCBkb3duCisgICAgICAgICAgICAgcGFja19hbHUoZmlyc3QsIHNl Y29uZCwgdGhpcmQsIGZvdXJ0aCwgZHN0KTsKKyAgICAgICAgIH0KKyAKKysgICAgICAgIC8vIFNh ZmV0eTogc3JjIHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gZm91 ciB2YWxpZCBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVu c2FmZSBmbiBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXpl LCBkc3Q6ICptdXQgdXNpemUpIC0+IGJvb2wgeworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3Jj IHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3Jj OworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFkZCgxKSk7CisgICAgICAg ICAgICAgLy8gQ2hlY2sgaWYgdGhlIHdvcmRzIGNvbnRhaW5zIG5vbi1BU0NJSQorICAgICAgICAg ICAgIGlmICh3b3JkICYgQVNDSUlfTUFTSykgfCAoc2Vjb25kX3dvcmQgJiBBU0NJSV9NQVNLKSAh PSAwIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgIH0KKysg ICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBkb3duCisg ICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29yZCwgZHN0KTsKKyAgICAgICAg ICAgICB0cnVlCisgICAgICAgICB9CisgCisrICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMg Zm91ciB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMKKyAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gYmFzaWNfbGF0aW5f dG9fYXNjaWlfc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAt PiBib29sIHsKKysgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVz ZWQgaGVyZQorICAgICAgICAgICAgIGxldCBmaXJzdCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0 IHNlY29uZCA9ICooc3JjLmFkZCgxKSk7CisgICAgICAgICAgICAgbGV0IHRoaXJkID0gKihzcmMu YWRkKDIpKTsKKyAgICAgICAgICAgICBsZXQgZm91cnRoID0gKihzcmMuYWRkKDMpKTsKKyAgICAg ICAgICAgICBpZiAoZmlyc3QgJiBCQVNJQ19MQVRJTl9NQVNLKSB8IChzZWNvbmQgJiBCQVNJQ19M QVRJTl9NQVNLKSB8ICh0aGlyZCAmIEJBU0lDX0xBVElOX01BU0spIHwgKGZvdXJ0aCAmIEJBU0lD X0xBVElOX01BU0spICE9IDAgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTogZHN0IHNhZmV0eSBpbnZhcmlhbnQg cGFzc2VkIGRvd24KKyAgICAgICAgICAgICBwYWNrX2FsdShmaXJzdCwgc2Vjb25kLCB0aGlyZCwg Zm91cnRoLCBkc3QpOworICAgICAgICAgICAgIHRydWUKKyAgICAgICAgIH0KKyAKKysgICAgICAg IC8vIFNhZmV0eTogc3JjLCBkc3QgYm90aCBwb2ludCB0byB0d28gdmFsaWQgYHVzaXplYHMgZWFj aAorKyAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFdpbGwgcmV0dXJuIGJ5dGUg aW5kZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGJ5dGUuCisgICAgICAgICAjW2lubGluZShhbHdheXMp XQorICAgICAgICAgdW5zYWZlIGZuIGFzY2lpX3RvX2FzY2lpX3N0cmlkZShzcmM6ICpjb25zdCB1 c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAtPiBPcHRpb248dXNpemU+IHsKKysgICAgICAgICAgICAv LyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgIGxl dCB3b3JkID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5hZGQo MSkpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBo ZXJlCisgICAgICAgICAgICAgKmRzdCA9IHdvcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDEp KSA9IHNlY29uZF93b3JkOworKyAgICAgICAgICAgIC8vIFJlbGllcyBvbiBzYWZldHktdXNhYmxl IGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgZmluZF9ub25fYXNjaWkod29yZCwgc2Vjb25k X3dvcmQpCisgICAgICAgICB9CisgCisgICAgICAgICBiYXNpY19sYXRpbl9hbHUhKGFzY2lpX3Rv X2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfYWx1KTsK KyAgICAgICAgIGJhc2ljX2xhdGluX2FsdSEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgs IGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9hbHUpOworICAgICAgICAgbGF0aW4xX2FsdSEo dW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX2xhdGluMV9zdHJpZGVfYWx1KTsKKyAgICAg ICAgIGxhdGluMV9hbHUhKHBhY2tfbGF0aW4xLCB1MTYsIHU4LCBwYWNrX2xhdGluMV9zdHJpZGVf YWx1KTsKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQgdXBoZWxkOiBhc2NpaV90b19hc2Np aV9zdHJpZGUgd2lsbCByZXR1cm4gYnl0ZSBpbmRleCBvZiBmaXJzdCBub24tYXNjaWkgaWYgZm91 bmQKKyAgICAgICAgIGFzY2lpX2FsdSEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCwgYXNjaWlfdG9f YXNjaWlfc3RyaWRlKTsKKyAgICAgfQorIH0KKyAKKyBwdWIgZm4gYXNjaWlfdmFsaWRfdXBfdG8o Ynl0ZXM6ICZbdThdKSAtPiB1c2l6ZSB7CisgICAgIG1hdGNoIHZhbGlkYXRlX2FzY2lpKGJ5dGVz KSB7CisgICAgICAgICBOb25lID0+IGJ5dGVzLmxlbigpLAorICAgICAgICAgU29tZSgoXywgbnVt X3ZhbGlkKSkgPT4gbnVtX3ZhbGlkLAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL2hhbmRsZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9oYW5kbGVzLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5k bGVzLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJz CitAQCAtMjksMTcgKzI5LDE3IEBAIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6KjsKKyAjW2NmZyhh bGwoCisgICAgIGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsCisgICAgIGFueSgKKyAgICAgICAgIHRh cmdldF9mZWF0dXJlID0gInNzZTIiLAorICAgICAgICAgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpLAorICAgICAgICAgYWxsKHRhcmdldF9lbmRp YW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpCisgICAgICkKKyApKV0KKy11 c2UgcGFja2VkX3NpbWQ6OnUxNng4OworK3VzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKKyAKKyB1c2Ug c3VwZXI6OkRlY29kZXJSZXN1bHQ7CisgdXNlIHN1cGVyOjpFbmNvZGVyUmVzdWx0OworIHVzZSBj cmF0ZTo6YXNjaWk6Oio7CisgdXNlIGNyYXRlOjp1dGZfODo6Y29udmVydF91dGY4X3RvX3V0ZjE2 X3VwX3RvX2ludmFsaWQ7CisgdXNlIGNyYXRlOjp1dGZfODo6dXRmOF92YWxpZF91cF90bzsKKyAK KyBwdWIgZW51bSBTcGFjZTxUPiB7CitAQCAtODUsODQgKzg1LDEwMCBAQCBpbXBsIEVuZGlhbiBm b3IgTGl0dGxlRW5kaWFuIHsKKyAgICAgY29uc3QgT1BQT1NJVEVfRU5ESUFOOiBib29sID0gZmFs c2U7CisgCisgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIildCisgICAgIGNvbnN0IE9Q UE9TSVRFX0VORElBTjogYm9vbCA9IHRydWU7CisgfQorIAorICNbZGVyaXZlKERlYnVnLCBDb3B5 LCBDbG9uZSldCisgc3RydWN0IFVuYWxpZ25lZFUxNlNsaWNlIHsKKysgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIHJlYWRpbmcgMipsZW4gYnl0ZXMKKyAgICAg cHRyOiAqY29uc3QgdTgsCisgICAgIGxlbjogdXNpemUsCisgfQorIAorIGltcGwgVW5hbGlnbmVk VTE2U2xpY2UgeworKyAgICAvLy8gU2FmZXR5OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZGlu ZyAyKmxlbiBieXRlcworICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgdW5zYWZlIGZu IG5ldyhwdHI6ICpjb25zdCB1OCwgbGVuOiB1c2l6ZSkgLT4gVW5hbGlnbmVkVTE2U2xpY2Ugewor KyAgICAgICAgLy8gU2FmZXR5OiBmaWVsZCBpbnZhcmlhbnQgcGFzc2VkIHVwIHRvIGNhbGxlciBo ZXJlCisgICAgICAgICBVbmFsaWduZWRVMTZTbGljZSB7IHB0ciwgbGVuIH0KKyAgICAgfQorIAor ICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gdHJpbV9sYXN0KCZtdXQgc2VsZikg eworICAgICAgICAgYXNzZXJ0IShzZWxmLmxlbiA+IDApOworKyAgICAgICAgLy8gU2FmZXR5OiBp bnZhcmlhbnQgdXBoZWxkIGhlcmU6IGEgc2xpY2UgaXMgc3RpbGwgdmFsaWQgd2l0aCBhIHNob3J0 ZXIgbGVuCisgICAgICAgICBzZWxmLmxlbiAtPSAxOworICAgICB9CisgCisgICAgICNbaW5saW5l KGFsd2F5cyldCisgICAgIHB1YiBmbiBhdCgmc2VsZiwgaTogdXNpemUpIC0+IHUxNiB7CisgICAg ICAgICB1c2UgY29yZTo6bWVtOjpNYXliZVVuaW5pdDsKKyAKKyAgICAgICAgIGFzc2VydCEoaSA8 IHNlbGYubGVuKTsKKyAgICAgICAgIHVuc2FmZSB7CisgICAgICAgICAgICAgbGV0IG11dCB1OiBN YXliZVVuaW5pdDx1MTY+ID0gTWF5YmVVbmluaXQ6OnVuaW5pdCgpOworKyAgICAgICAgICAgIC8v IFNhZmV0eTogaSBpcyBhdCBtb3N0IGxlbiAtIDEsIHdoaWNoIHdvcmtzIGhlcmUKKyAgICAgICAg ICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhzZWxmLnB0ci5hZGQoaSAqIDIp LCB1LmFzX211dF9wdHIoKSBhcyAqbXV0IHU4LCAyKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6 IHZhbGlkIHJlYWQgYWJvdmUgbGV0cyB1cyBkbyB0aGlzCisgICAgICAgICAgICAgdS5hc3N1bWVf aW5pdCgpCisgICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgI1tjZmcoZmVhdHVyZSA9ICJzaW1k LWFjY2VsIildCisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBmbiBzaW1kX2F0KCZz ZWxmLCBpOiB1c2l6ZSkgLT4gdTE2eDggeworKyAgICAgICAgLy8gU2FmZXR5OiBpL2xlbiBhcmUg b24gdGhlIHNjYWxlIG9mIHUxNnMsIGVhY2ggb25lIGNvcnJlc3BvbmRzIHRvIDIgdThzCisgICAg ICAgICBhc3NlcnQhKGkgKyBTSU1EX1NUUklERV9TSVpFIC8gMiA8PSBzZWxmLmxlbik7CisgICAg ICAgICBsZXQgYnl0ZV9pbmRleCA9IGkgKiAyOworKyAgICAgICAgLy8gU2FmZXR5OiBsb2FkMTZf dW5hbGlnbmVkIG5lZWRzIFNJTURfU1RSSURFX1NJWkU9MTYgdTggZWxlbWVudHMgdG8gcmVhZCwK KysgICAgICAgIC8vIG9yIDE2LzIgPSA4IHUxNiBlbGVtZW50cyB0byByZWFkLgorKyAgICAgICAg Ly8gV2UgaGF2ZSBjaGVja2VkIHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCB0aGF0IG1hbnkgYWJvdmUu CisrCisgICAgICAgICB1bnNhZmUgeyB0b191MTZfbGFuZXMobG9hZDE2X3VuYWxpZ25lZChzZWxm LnB0ci5hZGQoYnl0ZV9pbmRleCkpKSB9CisgICAgIH0KKyAKKyAgICAgI1tpbmxpbmUoYWx3YXlz KV0KKyAgICAgcHViIGZuIGxlbigmc2VsZikgLT4gdXNpemUgeworICAgICAgICAgc2VsZi5sZW4K KyAgICAgfQorIAorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gdGFpbCgmc2Vs ZiwgZnJvbTogdXNpemUpIC0+IFVuYWxpZ25lZFUxNlNsaWNlIHsKKyAgICAgICAgIC8vIFhYWCB0 aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSByZXN0cmljdGVkIG5vdCB0bworICAgICAgICAgLy8g b3V0bGl2ZSBzZWxmLgorICAgICAgICAgYXNzZXJ0IShmcm9tIDw9IHNlbGYubGVuKTsKKysgICAg ICAgIC8vIFNhZmV0eTogVGhpcyB1cGhvbGRzIHRoZSBzYW1lIGludmFyaWFudDogYGZyb21gIGlz IGluIGJvdW5kcyBhbmQgd2UncmUgcmV0dXJuaW5nIGEgc2hvcnRlciBzbGljZQorICAgICAgICAg dW5zYWZlIHsgVW5hbGlnbmVkVTE2U2xpY2U6Om5ldyhzZWxmLnB0ci5hZGQoZnJvbSAqIDIpLCBz ZWxmLmxlbiAtIGZyb20pIH0KKyAgICAgfQorIAorICAgICAjW2NmZyhmZWF0dXJlID0gInNpbWQt YWNjZWwiKV0KKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIGNvcHlfYm1wX3Rv PEU6IEVuZGlhbj4oJnNlbGYsIG90aGVyOiAmbXV0IFt1MTZdKSAtPiBPcHRpb248KHUxNiwgdXNp emUpPiB7CisgICAgICAgICBhc3NlcnQhKHNlbGYubGVuIDw9IG90aGVyLmxlbigpKTsKKyAgICAg ICAgIGxldCBtdXQgb2Zmc2V0ID0gMDsKKysgICAgICAgIC8vIFNhZmV0eTogU0lNRF9TVFJJREVf U0laRSBpcyBtZWFzdXJlZCBpbiBieXRlcywgd2hlcmVhcyBsZW4gaXMgaW4gdTE2cy4gV2UgY2hl Y2sgd2UgY2FuCisrICAgICAgICAvLyBtdW5jaCBTSU1EX1NUUklERV9TSVpFIC8gMiB1MTZzIHdo aWNoIG1lYW5zIHdlIGNhbiB3cml0ZSBTSU1EX1NUUklERV9TSVpFIHU4cworICAgICAgICAgaWYg U0lNRF9TVFJJREVfU0laRSAvIDIgPD0gc2VsZi5sZW4geworICAgICAgICAgICAgIGxldCBsZW5f bWludXNfc3RyaWRlID0gc2VsZi5sZW4gLSBTSU1EX1NUUklERV9TSVpFIC8gMjsKKyAgICAgICAg ICAgICBsb29wIHsKKyAgICAgICAgICAgICAgICAgbGV0IG11dCBzaW1kID0gc2VsZi5zaW1kX2F0 KG9mZnNldCk7CisgICAgICAgICAgICAgICAgIGlmIEU6Ok9QUE9TSVRFX0VORElBTiB7CisgICAg ICAgICAgICAgICAgICAgICBzaW1kID0gc2ltZF9ieXRlX3N3YXAoc2ltZCk7CisgICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSBoYXZlIGVub3VnaCBzcGFj ZSBvbiB0aGUgb3RoZXIgc2lkZSB0byB3cml0ZSB0aGlzCisgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7CisgICAgICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVkKG90aGVyLmFzX211dF9w dHIoKS5hZGQob2Zmc2V0KSwgc2ltZCk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgaWYgY29udGFpbnNfc3Vycm9nYXRlcyhzaW1kKSB7CisgICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g U0lNRF9TVFJJREVfU0laRSAvIDI7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBl bnN1cmVzIHdlIHN0aWxsIGhhdmUgc3BhY2UgZm9yIHdyaXRpbmcgU0lNRF9TVFJJREVfU0laRSB1 OHMKKyAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAg ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKyAgICAgICAgIHdoaWxlIG9mZnNldCA8IHNlbGYubGVuIHsKKyAgICAg ICAgICAgICBsZXQgdW5pdCA9IHN3YXBfaWZfb3Bwb3NpdGVfZW5kaWFuOjo8RT4oc2VsZi5hdChv ZmZzZXQpKTsKKyAgICAgICAgICAgICBvdGhlcltvZmZzZXRdID0gdW5pdDsKK0BAIC0yMzEsMzMg KzI0NywzNyBAQCBmbiBjb3B5X3VuYWxpZ25lZF9iYXNpY19sYXRpbl90b19hc2NpaTxFCisgI1tj ZmcoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIildCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBmbiBjb3B5 X3VuYWxpZ25lZF9iYXNpY19sYXRpbl90b19hc2NpaTxFOiBFbmRpYW4+KAorICAgICBzcmM6IFVu YWxpZ25lZFUxNlNsaWNlLAorICAgICBkc3Q6ICZtdXQgW3U4XSwKKyApIC0+IENvcHlBc2NpaVJl c3VsdDx1c2l6ZSwgKHUxNiwgdXNpemUpPiB7CisgICAgIGxldCBsZW4gPSA6OmNvcmU6OmNtcDo6 bWluKHNyYy5sZW4oKSwgZHN0LmxlbigpKTsKKyAgICAgbGV0IG11dCBvZmZzZXQgPSAwOworKyAg ICAvLyBTYWZldHk6IFRoaXMgY2hlY2sgZW5zdXJlcyB3ZSBhcmUgYWJsZSB0byByZWFkL3dyaXRl IGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKKyAgICAgaWYgU0lNRF9TVFJJREVf U0laRSA8PSBsZW4geworICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1E X1NUUklERV9TSVpFOworICAgICAgICAgbG9vcCB7CisgICAgICAgICAgICAgbGV0IG11dCBmaXJz dCA9IHNyYy5zaW1kX2F0KG9mZnNldCk7CisgICAgICAgICAgICAgbGV0IG11dCBzZWNvbmQgPSBz cmMuc2ltZF9hdChvZmZzZXQgKyAoU0lNRF9TVFJJREVfU0laRSAvIDIpKTsKKyAgICAgICAgICAg ICBpZiBFOjpPUFBPU0lURV9FTkRJQU4geworICAgICAgICAgICAgICAgICBmaXJzdCA9IHNpbWRf Ynl0ZV9zd2FwKGZpcnN0KTsKKyAgICAgICAgICAgICAgICAgc2Vjb25kID0gc2ltZF9ieXRlX3N3 YXAoc2Vjb25kKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYmFz aWNfbGF0aW4oZmlyc3QgfCBzZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIGxldCBwYWNrZWQgPSBzaW1kX3BhY2soZmlyc3QsIHNl Y29uZCk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBhcmUgYWJsZSB0byB3cml0ZSBTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzIGluIHRoaXMgaXRlcmF0aW9uCisgICAgICAgICAgICAgdW5z YWZlIHsKKyAgICAgICAgICAgICAgICAgc3RvcmUxNl91bmFsaWduZWQoZHN0LmFzX211dF9wdHIo KS5hZGQob2Zmc2V0KSwgcGFja2VkKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgb2Zm c2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlz IGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCwgd2hpY2ggZW5zdXJlcyB0aGF0IHdl IGNhbiB3cml0ZSBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzCisrICAgICAgICAg ICAgLy8gaW4gdGhlIG5leHQgaXRlcmF0aW9uCisgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0K KyAgICAgICAgIH0KKyAgICAgfQorICAgICBjb3B5X3VuYWxpZ25lZF9iYXNpY19sYXRpbl90b19h c2NpaV9hbHU6OjxFPihzcmMudGFpbChvZmZzZXQpLCAmbXV0IGRzdFtvZmZzZXQuLl0sIG9mZnNl dCkKKyB9CisgCitAQCAtNjMyLDk0ICs2NTIsMTA2IEBAIGltcGw8J2E+IFV0ZjE2RGVzdGluYXRp b248J2E+IHsKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgZm4gd3JpdGVfYXN0cmFsKCZt dXQgc2VsZiwgYXN0cmFsOiB1MzIpIHsKKyAgICAgICAgIGRlYnVnX2Fzc2VydCEoYXN0cmFsID4g MHhGRkZGKTsKKyAgICAgICAgIGRlYnVnX2Fzc2VydCEoYXN0cmFsIDw9IDB4MTBfRkZGRik7Cisg ICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdCgoMHhEN0MwICsgKGFzdHJhbCA+PiAxMCkpIGFz IHUxNik7CisgICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdCgoMHhEQzAwICsgKGFzdHJhbCAm IDB4M0ZGKSkgYXMgdTE2KTsKKyAgICAgfQorICAgICAjW2lubGluZShhbHdheXMpXQorLSAgICBw dWIgZm4gd3JpdGVfc3Vycm9nYXRlX3BhaXIoJm11dCBzZWxmLCBoaWdoOiB1MTYsIGxvdzogdTE2 KSB7CisrICAgIGZuIHdyaXRlX3N1cnJvZ2F0ZV9wYWlyKCZtdXQgc2VsZiwgaGlnaDogdTE2LCBs b3c6IHUxNikgeworICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoaGlnaCk7CisgICAgICAg ICBzZWxmLndyaXRlX2NvZGVfdW5pdChsb3cpOworICAgICB9CisgICAgICNbaW5saW5lKGFsd2F5 cyldCisgICAgIGZuIHdyaXRlX2JpZzVfY29tYmluYXRpb24oJm11dCBzZWxmLCBjb21iaW5lZDog dTE2LCBjb21iaW5pbmc6IHUxNikgeworICAgICAgICAgc2VsZi53cml0ZV9ibXBfZXhjbF9hc2Np aShjb21iaW5lZCk7CisgICAgICAgICBzZWxmLndyaXRlX2JtcF9leGNsX2FzY2lpKGNvbWJpbmlu Zyk7CisgICAgIH0KKysgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IENvcHlBc2NpaVJl c3VsdDo6R29PbiB3aWxsIG9ubHkgY29udGFpbiBieXRlcyA+PTB4ODAKKyAgICAgI1tpbmxpbmUo YWx3YXlzKV0KKyAgICAgcHViIGZuIGNvcHlfYXNjaWlfZnJvbV9jaGVja19zcGFjZV9ibXA8J2I+ KAorICAgICAgICAgJidiIG11dCBzZWxmLAorICAgICAgICAgc291cmNlOiAmbXV0IEJ5dGVTb3Vy Y2UsCisgICAgICkgLT4gQ29weUFzY2lpUmVzdWx0PChEZWNvZGVyUmVzdWx0LCB1c2l6ZSwgdXNp emUpLCAodTgsIFV0ZjE2Qm1wSGFuZGxlPCdiLCAnYT4pPiB7CisgICAgICAgICBsZXQgbm9uX2Fz Y2lpX3JldCA9IHsKKyAgICAgICAgICAgICBsZXQgc3JjX3JlbWFpbmluZyA9ICZzb3VyY2Uuc2xp Y2Vbc291cmNlLnBvcy4uXTsKKyAgICAgICAgICAgICBsZXQgZHN0X3JlbWFpbmluZyA9ICZtdXQg c2VsZi5zbGljZVtzZWxmLnBvcy4uXTsKKyAgICAgICAgICAgICBsZXQgKHBlbmRpbmcsIGxlbmd0 aCkgPSBpZiBkc3RfcmVtYWluaW5nLmxlbigpIDwgc3JjX3JlbWFpbmluZy5sZW4oKSB7CisgICAg ICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3RfcmVtYWluaW5nLmxl bigpKQorICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIChEZWNvZGVyUmVz dWx0OjpJbnB1dEVtcHR5LCBzcmNfcmVtYWluaW5nLmxlbigpKQorICAgICAgICAgICAgIH07Cisr ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgbmVl ZGluZyB2YWxpZCBwb2ludGVycyBmb3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hpY2gKKysgICAgICAg ICAgICAvLyBpcyB0cnVlIHNpbmNlIHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11bSBsZW5ndGggb2Yg dGhlIHR3bworICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7CisgICAgICAgICAgICAgICAgIGFz Y2lpX3RvX2Jhc2ljX2xhdGluKHNyY19yZW1haW5pbmcuYXNfcHRyKCksIGRzdF9yZW1haW5pbmcu YXNfbXV0X3B0cigpLCBsZW5ndGgpCisgICAgICAgICAgICAgfSB7CisgICAgICAgICAgICAgICAg IE5vbmUgPT4geworICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBsZW5ndGg7Cisg ICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBsZW5ndGg7CisgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKChwZW5kaW5nLCBzb3VyY2UucG9zLCBz ZWxmLnBvcykpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogdGhlIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgcmV0dXJuaW5nIGJ5dGVzID49MHg4MCBp biB0aGUgU29tZQorICAgICAgICAgICAgICAgICBTb21lKChub25fYXNjaWksIGNvbnN1bWVkKSkg PT4geworICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSBjb25zdW1lZDsKKyAgICAg ICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAg ICAgc291cmNlLnBvcyArPSAxOyAvLyArMSBmb3Igbm9uX2FzY2lpCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIGJ1YmJsZWQgb3V0IGhl cmUKKyAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaQorICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgfQorICAgICAgICAgfTsKKysgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lp IHJldHVybmVkIGhlcmUKKyAgICAgICAgIENvcHlBc2NpaVJlc3VsdDo6R29Pbigobm9uX2FzY2lp X3JldCwgVXRmMTZCbXBIYW5kbGU6Om5ldyhzZWxmKSkpCisgICAgIH0KKysgICAgLy8gU2FmZXR5 LXVzYWJsZSBpbnZhcmlhbnQ6IENvcHlBc2NpaVJlc3VsdDo6R29PbiB3aWxsIG9ubHkgY29udGFp biBieXRlcyA+PTB4ODAKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIGNvcHlf YXNjaWlfZnJvbV9jaGVja19zcGFjZV9hc3RyYWw8J2I+KAorICAgICAgICAgJidiIG11dCBzZWxm LAorICAgICAgICAgc291cmNlOiAmbXV0IEJ5dGVTb3VyY2UsCisgICAgICkgLT4gQ29weUFzY2lp UmVzdWx0PChEZWNvZGVyUmVzdWx0LCB1c2l6ZSwgdXNpemUpLCAodTgsIFV0ZjE2QXN0cmFsSGFu ZGxlPCdiLCAnYT4pPiB7CisgICAgICAgICBsZXQgbm9uX2FzY2lpX3JldCA9IHsKKyAgICAgICAg ICAgICBsZXQgZHN0X2xlbiA9IHNlbGYuc2xpY2UubGVuKCk7CisgICAgICAgICAgICAgbGV0IHNy Y19yZW1haW5pbmcgPSAmc291cmNlLnNsaWNlW3NvdXJjZS5wb3MuLl07CisgICAgICAgICAgICAg bGV0IGRzdF9yZW1haW5pbmcgPSAmbXV0IHNlbGYuc2xpY2Vbc2VsZi5wb3MuLl07CisgICAgICAg ICAgICAgbGV0IChwZW5kaW5nLCBsZW5ndGgpID0gaWYgZHN0X3JlbWFpbmluZy5sZW4oKSA8IHNy Y19yZW1haW5pbmcubGVuKCkgeworICAgICAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6T3V0 cHV0RnVsbCwgZHN0X3JlbWFpbmluZy5sZW4oKSkKKyAgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3JjX3JlbWFpbmluZy5s ZW4oKSkKKyAgICAgICAgICAgICB9OworKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5j dGlvbiBpcyBkb2N1bWVudGVkIGFzIG5lZWRpbmcgdmFsaWQgcG9pbnRlcnMgZm9yIHNyYy9kZXN0 IGFuZCBsZW4sIHdoaWNoCisrICAgICAgICAgICAgLy8gaXMgdHJ1ZSBzaW5jZSB3ZSd2ZSBwYXNz ZWQgdGhlIG1pbnVtdW0gbGVuZ3RoIG9mIHRoZSB0d28KKyAgICAgICAgICAgICBtYXRjaCB1bnNh ZmUgeworICAgICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbihzcmNfcmVtYWluaW5n LmFzX3B0cigpLCBkc3RfcmVtYWluaW5nLmFzX211dF9wdHIoKSwgbGVuZ3RoKQorICAgICAgICAg ICAgIH0geworICAgICAgICAgICAgICAgICBOb25lID0+IHsKKyAgICAgICAgICAgICAgICAgICAg IHNvdXJjZS5wb3MgKz0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0g bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6U3Rv cCgocGVuZGluZywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKKyAgICAgICAgICAgICAgICAgfQor KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBpcyBkb2N1bWVudGVkIGFz IHJldHVybmluZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKKyAgICAgICAgICAgICAgICAgU29t ZSgobm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJj ZS5wb3MgKz0gY29uc3VtZWQ7CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBjb25z dW1lZDsKKyAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucG9zICsgMSA8IGRzdF9sZW4gewor ICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsgLy8gKzEgZm9yIG5vbl9h c2NpaQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBub24tYXNjaWkgYnViYmxlZCBvdXQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgIG5v bl9hc2NpaQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGVjb2RlclJlc3VsdDo6T3V0cHV0RnVsbCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc291cmNlLnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgKSk7CisgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICB9OworKyAg ICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkgcmV0dXJuZWQgaGVyZQorICAgICAgICAgQ29weUFz Y2lpUmVzdWx0OjpHb09uKChub25fYXNjaWlfcmV0LCBVdGYxNkFzdHJhbEhhbmRsZTo6bmV3KHNl bGYpKSkKKyAgICAgfQorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gY29weV91 dGY4X3VwX3RvX2ludmFsaWRfZnJvbSgmbXV0IHNlbGYsIHNvdXJjZTogJm11dCBCeXRlU291cmNl KSB7CisgICAgICAgICBsZXQgc3JjX3JlbWFpbmluZyA9ICZzb3VyY2Uuc2xpY2Vbc291cmNlLnBv cy4uXTsKKyAgICAgICAgIGxldCBkc3RfcmVtYWluaW5nID0gJm11dCBzZWxmLnNsaWNlW3NlbGYu cG9zLi5dOworICAgICAgICAgbGV0IChyZWFkLCB3cml0dGVuKSA9IGNvbnZlcnRfdXRmOF90b191 dGYxNl91cF90b19pbnZhbGlkKHNyY19yZW1haW5pbmcsIGRzdF9yZW1haW5pbmcpOworICAgICAg ICAgc291cmNlLnBvcyArPSByZWFkOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xp Yi5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKK0BAIC02ODQsMzcgKzY4 NCwyNiBAQAorIC8vISA8dHI+PHRkPlRJUy02MjA8L3RkPjx0ZD53aW5kb3dzLTg3NDwvdGQ+PC90 cj4KKyAvLyEgPC90Ym9keT4KKyAvLyEgPC90YWJsZT4KKyAvLyEKKyAvLyEgU2VlIHRoZSBzZWN0 aW9uIFtfVVRGLTE2TEUsIFVURi0xNkJFIGFuZCBVbmljb2RlIEVuY29kaW5nIFNjaGVtZXNfXSgj dXRmLTE2bGUtdXRmLTE2YmUtYW5kLXVuaWNvZGUtZW5jb2Rpbmctc2NoZW1lcykKKyAvLyEgZm9y IGRpc2N1c3Npb24gYWJvdXQgdGhlIFVURi0xNiBmYW1pbHkuCisgCisgIyFbbm9fc3RkXQorLSMh W2NmZ19hdHRyKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGZlYXR1cmUoY29yZV9pbnRyaW5zaWNz KSldCisrIyFbY2ZnX2F0dHIoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVhdHVyZShjb3JlX2lu dHJpbnNpY3MsIHBvcnRhYmxlX3NpbWQpKV0KKyAKKyAjW2NmZyhmZWF0dXJlID0gImFsbG9jIild CisgI1tjZmdfYXR0cih0ZXN0LCBtYWNyb191c2UpXQorIGV4dGVybiBjcmF0ZSBhbGxvYzsKKyAK KyBleHRlcm4gY3JhdGUgY29yZTsKKyAjW21hY3JvX3VzZV0KKyBleHRlcm4gY3JhdGUgY2ZnX2lm OworIAorLSNbY2ZnKGFsbCgKKy0gICAgZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwKKy0gICAgYW55 KAorLSAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsCistICAgICAgICBhbGwodGFyZ2V0 X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiksCistICAgICAgICBh bGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIikKKy0g ICAgKQorLSkpXQorLSNbbWFjcm9fdXNlKHNodWZmbGUpXQorLWV4dGVybiBjcmF0ZSBwYWNrZWRf c2ltZDsKKy0KKyAjW2NmZyhmZWF0dXJlID0gInNlcmRlIildCisgZXh0ZXJuIGNyYXRlIHNlcmRl OworIAorICNbY2ZnKGFsbCh0ZXN0LCBmZWF0dXJlID0gInNlcmRlIikpXQorIGV4dGVybiBjcmF0 ZSBiaW5jb2RlOworICNbY2ZnKGFsbCh0ZXN0LCBmZWF0dXJlID0gInNlcmRlIikpXQorICNbbWFj cm9fdXNlXQorIGV4dGVybiBjcmF0ZSBzZXJkZV9kZXJpdmU7CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvbWVtLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9tZW0ucnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycwor QEAgLTExMSwxNiArMTExLDIxIEBAIG1hY3JvX3J1bGVzISBieV91bml0X2NoZWNrX2FsdSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOworICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhY2N1ID49 ICRib3VuZCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFMVV9BTElHTk1FTlQg LyB1bml0X3NpemU7CisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyAoNCAqIChBTFVf QUxJR05NRU5UIC8gdW5pdF9zaXplKSkgPD0gbGVuIHsKKysgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0gNCBjb25zZWN1dGl2 ZSByZWFkcyBvZgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aCBBTFVfQUxJR05N RU5UIC8gdW5pdF9zaXplLiBBTFVfQUxJR05NRU5UIGlzIHRoZSBzaXplIG9mIHVzaXplLCBhbmQg dW5pdF9zaXplCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgdGhlIHNpemUgb2YgdGhl IGBzcmNgIHBvaW50ZXIsIHNvIHRoaXMgaXMgZXF1YWwgdG8gcGVyZm9ybWluZyBmb3VyIHVzaXpl IHJlYWRzLgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhpcyBpbnZhcmlhbnQgaXMgdXBoZWxkIG9uIGFsbCBsb29wIGl0ZXJhdGlvbnMK KyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3Vucm9sbCA9IGxlbiAtICg0 ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVucm9sbF9hY2N1ID0g dW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplKSB9CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKihzcmMuYWRkKG9mZnNldCArIChBTFVfQUxJR05NRU5UIC8gdW5pdF9z aXplKSkgYXMgKmNvbnN0IHVzaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICooc3JjLmFkZChvZmZzZXQgKyAoMiAqIChBTFVf QUxJR05NRU5UIC8gdW5pdF9zaXplKSkpCitAQCAtMTI5LDIyICsxMzQsMjQgQEAgbWFjcm9fcnVs ZXMhIGJ5X3VuaXRfY2hlY2tfYWx1IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKHNyYy5h ZGQob2Zmc2V0ICsgKDMgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAqY29uc3QgdXNpemUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiB1bnJvbGxfYWNjdSAmICRtYXNrICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSA0ICogKEFMVV9BTElHTk1FTlQg LyB1bml0X3NpemUpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRo aXMgY2hlY2sgbGV0cyB1cyBjb250aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJlYWRzIGVhcmxpZXIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3Vucm9s bCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8PSBsZW5f bWludXNfc3RyaWRlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBh Ym92ZSBjaGVjayBsZXRzIHVzIHBlcmZvcm0gb25lIHVzaXplIHJlYWQuCisgICAgICAgICAgICAg ICAgICAgICAgICAgYWNjdSB8PSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3Qg dXNpemUpIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IEFMVV9BTElHTk1F TlQgLyB1bml0X3NpemU7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZm9yICZ1bml0IGluICZidWZmZXJbb2Zm c2V0Li5dIHsKKyAgICAgICAgICAgICAgICAgYWNjdSB8PSB1bml0IGFzIHVzaXplOworICAgICAg ICAgICAgIH0KK0BAIC0xODQsMTYgKzE5MSwyMSBAQCBtYWNyb19ydWxlcyEgYnlfdW5pdF9jaGVj a19zaW1kIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09 IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGFjY3UgPj0gJGJvdW5kIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lN RF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNl dCArICg0ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKSA8PSBsZW4geworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVy Zm9ybSA0IGNvbnNlY3V0aXZlIHJlYWRzIG9mCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8g bGVuZ3RoIFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUuIFNJTURfU1RSSURFX1NJWkUgaXMg dGhlIHNpemUgb2YgJHNpbWRfdHksIGFuZCB1bml0X3NpemUKKysgICAgICAgICAgICAgICAgICAg ICAgICAvLyBpcyB0aGUgc2l6ZSBvZiB0aGUgYHNyY2AgcG9pbnRlciwgc28gdGhpcyBpcyBlcXVh bCB0byBwZXJmb3JtaW5nIGZvdXIgJHNpbWRfdHkgcmVhZHMuCisrICAgICAgICAgICAgICAgICAg ICAgICAgLy8KKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGludmFyaWFudCBpcyB1 cGhlbGQgb24gYWxsIGxvb3AgaXRlcmF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBsZW5fbWludXNfdW5yb2xsID0gbGVuIC0gKDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVuaXRf c2l6ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdW5yb2xsX2FjY3UgPSB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0 KSBhcyAqY29uc3QgJHNpbWRfdHkpIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKHNyYy5h ZGQob2Zmc2V0ICsgKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAqY29uc3QgJHNpbWRfdHkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHVuc2FmZSB7CitAQCAtMjAzLDIzICsyMTUsMjUgQEAgbWFjcm9fcnVsZXMhIGJ5X3Vu aXRfY2hlY2tfc2ltZCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHVuc2Fm ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihzcmMuYWRkKG9mZnNl dCArICgzICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemUpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0ICRzaW1kX3R5KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgISRmdW5jKHVucm9sbF9hY2N1KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQgKiAoU0lNRF9TVFJJREVfU0laRSAvIHVu aXRfc2l6ZSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhpcyBj aGVjayBsZXRzIHVzIGNvbnRpbnVlIHRvIHBlcmZvcm0gdGhlIDQgcmVhZHMgZWFybGllcgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfdW5yb2xsIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzaW1kX2FjY3UgPSAkc3Bs YXQ7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPD0gbGVuX21pbnVzX3N0cmlk ZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sg bGV0cyB1cyBwZXJmb3JtIG9uZSAkc2ltZF90eSByZWFkLgorICAgICAgICAgICAgICAgICAgICAg ICAgIHNpbWRfYWNjdSA9IHNpbWRfYWNjdSB8IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpIGFz ICpjb25zdCAkc2ltZF90eSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g U0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgIGlmICEkZnVuYyhzaW1kX2FjY3UpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CitAQCAtMjI5LDE4ICsyNDMsMTggQEAgbWFjcm9f cnVsZXMhIGJ5X3VuaXRfY2hlY2tfc2ltZCB7CisgICAgICAgICAgICAgYWNjdSA8ICRib3VuZAor ICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcoYWxs KGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGFueSh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIiwgYWxs KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpLCBhbGwo dGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIikpKSldIHsK KyAgICAgICAgIHVzZSBjcmF0ZTo6c2ltZF9mdW5jczo6KjsKKy0gICAgICAgIHVzZSBwYWNrZWRf c2ltZDo6dTh4MTY7CistICAgICAgICB1c2UgcGFja2VkX3NpbWQ6OnUxNng4OworKyAgICAgICAg dXNlIGNvcmU6OnNpbWQ6OnU4eDE2OworKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnUxNng4Owor IAorICAgICAgICAgY29uc3QgU0lNRF9BTElHTk1FTlQ6IHVzaXplID0gMTY7CisgCisgICAgICAg ICBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OworIAorICAgICAgICAgYnlf dW5pdF9jaGVja19zaW1kIShpc19hc2NpaV9pbXBsLCB1OCwgdTh4MTY6OnNwbGF0KDApLCB1OHgx NiwgMHg4MCwgc2ltZF9pc19hc2NpaSk7CisgICAgICAgICBieV91bml0X2NoZWNrX3NpbWQhKGlz X2Jhc2ljX2xhdGluX2ltcGwsIHUxNiwgdTE2eDg6OnNwbGF0KDApLCB1MTZ4OCwgMHg4MCwgc2lt ZF9pc19iYXNpY19sYXRpbik7CisgICAgICAgICBieV91bml0X2NoZWNrX3NpbWQhKGlzX3V0ZjE2 X2xhdGluMV9pbXBsLCB1MTYsIHUxNng4OjpzcGxhdCgwKSwgdTE2eDgsIDB4MTAwLCBzaW1kX2lz X2xhdGluMSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMv c2ltZF9mdW5jcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVu Y3MucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3Mu cnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMK K0BAIC0yLDY1ICsyLDg0IEBACisgLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBv ZiB0aGlzIGRpc3RyaWJ1dGlvbi4KKyAvLworIC8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUg TGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCisgLy8gaHR0cHM6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCisgLy8g PExJQ0VOU0UtTUlUIG9yIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQg eW91cgorIC8vIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwg b3IgZGlzdHJpYnV0ZWQKKyAvLyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAor LXVzZSBwYWNrZWRfc2ltZDo6dTE2eDg7CistdXNlIHBhY2tlZF9zaW1kOjp1OHgxNjsKKy11c2Ug cGFja2VkX3NpbWQ6OkludG9CaXRzOworK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFsbF9tYXNr MTZ4ODsKKyt1c2UgYW55X2FsbF93b3JrYXJvdW5kOjphbGxfbWFzazh4MTY7CisrdXNlIGFueV9h bGxfd29ya2Fyb3VuZDo6YW55X21hc2sxNng4OworK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFu eV9tYXNrOHgxNjsKKyt1c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbEVxOworK3VzZSBj b3JlOjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsT3JkOworK3VzZSBjb3JlOjpzaW1kOjptYXNrMTZ4 ODsKKyt1c2UgY29yZTo6c2ltZDo6bWFzazh4MTY7CisrdXNlIGNvcmU6OnNpbWQ6OnNpbWRfc3dp enpsZTsKKyt1c2UgY29yZTo6c2ltZDo6dTE2eDg7CisrdXNlIGNvcmU6OnNpbWQ6OnU4eDE2Owor K3VzZSBjb3JlOjpzaW1kOjpUb0J5dGVzOworIAorIC8vIFRPRE86IE1pZ3JhdGUgdW5hbGlnbmVk IGFjY2VzcyB0byBzdGRsaWIgY29kZSBpZi93aGVuIHRoZSBSRkMKKyAvLyBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8xNzI1IGlzIGltcGxlbWVudGVkLgorIAorKy8vLyBT YWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHJlYWQg b2YgMTYgYnl0ZXMKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gbG9hZDE2X3Vu YWxpZ25lZChwdHI6ICpjb25zdCB1OCkgLT4gdTh4MTYgeworLSAgICBsZXQgbXV0IHNpbWQgPSA6 OmNvcmU6Om1lbTo6dW5pbml0aWFsaXplZCgpOworLSAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25v dmVybGFwcGluZyhwdHIsICZtdXQgc2ltZCBhcyAqbXV0IHU4eDE2IGFzICptdXQgdTgsIDE2KTsK Ky0gICAgc2ltZAorKyAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6TWF5YmVVbmluaXQ6 Ojx1OHgxNj46OnVuaW5pdCgpOworKyAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGlu ZyhwdHIsIHNpbWQuYXNfbXV0X3B0cigpIGFzICptdXQgdTgsIDE2KTsKKysgICAgLy8gU2FmZXR5 OiBjb3BpZWQgMTYgYnl0ZXMgb2YgaW5pdGlhbGl6ZWQgbWVtb3J5IGludG8gdGhpcywgaXQgaXMg bm93IGluaXRpYWxpemVkCisrICAgIHNpbWQuYXNzdW1lX2luaXQoKQorIH0KKyAKKysvLy8gU2Fm ZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXU4eDE2 IHJlYWQgb2YgMTYgYnl0ZXMKKyAjW2FsbG93KGRlYWRfY29kZSldCisgI1tpbmxpbmUoYWx3YXlz KV0KKyBwdWIgdW5zYWZlIGZuIGxvYWQxNl9hbGlnbmVkKHB0cjogKmNvbnN0IHU4KSAtPiB1OHgx NiB7CisgICAgICoocHRyIGFzICpjb25zdCB1OHgxNikKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZh cmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgc3RvcmUgb2YgMTYgYnl0 ZXMKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmUxNl91bmFsaWduZWQo cHRyOiAqbXV0IHU4LCBzOiB1OHgxNikgeworICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVy bGFwcGluZygmcyBhcyAqY29uc3QgdTh4MTYgYXMgKmNvbnN0IHU4LCBwdHIsIDE2KTsKKyB9Cisg CisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVk LWZvci11OHgxNiBzdG9yZSBvZiAxNiBieXRlcworICNbYWxsb3coZGVhZF9jb2RlKV0KKyAjW2lu bGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmUxNl9hbGlnbmVkKHB0cjogKm11dCB1 OCwgczogdTh4MTYpIHsKKyAgICAgKihwdHIgYXMgKm11dCB1OHgxNikgPSBzOworIH0KKyAKKysv Ly8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCBy ZWFkIG9mIDE2IGJ5dGVzCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIGxvYWQ4 X3VuYWxpZ25lZChwdHI6ICpjb25zdCB1MTYpIC0+IHUxNng4IHsKKy0gICAgbGV0IG11dCBzaW1k ID0gOjpjb3JlOjptZW06OnVuaW5pdGlhbGl6ZWQoKTsKKy0gICAgOjpjb3JlOjpwdHI6OmNvcHlf bm9ub3ZlcmxhcHBpbmcocHRyIGFzICpjb25zdCB1OCwgJm11dCBzaW1kIGFzICptdXQgdTE2eDgg YXMgKm11dCB1OCwgMTYpOworLSAgICBzaW1kCisrICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6 bWVtOjpNYXliZVVuaW5pdDo6PHUxNng4Pjo6dW5pbml0KCk7CisrICAgIDo6Y29yZTo6cHRyOjpj b3B5X25vbm92ZXJsYXBwaW5nKHB0ciBhcyAqY29uc3QgdTgsIHNpbWQuYXNfbXV0X3B0cigpIGFz ICptdXQgdTgsIDE2KTsKKysgICAgLy8gU2FmZXR5OiBjb3BpZWQgMTYgYnl0ZXMgb2YgaW5pdGlh bGl6ZWQgbWVtb3J5IGludG8gdGhpcywgaXQgaXMgbm93IGluaXRpYWxpemVkCisrICAgIHNpbWQu YXNzdW1lX2luaXQoKQorIH0KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUg dmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXUxNng4IHJlYWQgb2YgMTYgYnl0ZXMKKyAjW2FsbG93 KGRlYWRfY29kZSldCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIGxvYWQ4X2Fs aWduZWQocHRyOiAqY29uc3QgdTE2KSAtPiB1MTZ4OCB7CisgICAgICoocHRyIGFzICpjb25zdCB1 MTZ4OCkKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZv ciBhbiB1bmFsaWduZWQgc3RvcmUgb2YgMTYgYnl0ZXMKKyAjW2lubGluZShhbHdheXMpXQorIHB1 YiB1bnNhZmUgZm4gc3RvcmU4X3VuYWxpZ25lZChwdHI6ICptdXQgdTE2LCBzOiB1MTZ4OCkgewor ICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygmcyBhcyAqY29uc3QgdTE2eDgg YXMgKmNvbnN0IHU4LCBwdHIgYXMgKm11dCB1OCwgMTYpOworIH0KKyAKKysvLy8gU2FmZXR5IGlu dmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXUxNng4IHN0b3Jl IG9mIDE2IGJ5dGVzCisgI1thbGxvdyhkZWFkX2NvZGUpXQorICNbaW5saW5lKGFsd2F5cyldCisg cHViIHVuc2FmZSBmbiBzdG9yZThfYWxpZ25lZChwdHI6ICptdXQgdTE2LCBzOiB1MTZ4OCkgewor ICAgICAqKHB0ciBhcyAqbXV0IHUxNng4KSA9IHM7CisgfQorIAorIGNmZ19pZiEgeworICAgICBp ZiAjW2NmZyhhbGwodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsIHRhcmdldF9hcmNoID0gIng4Nl82 NCIpKV0geworQEAgLTk1LDIzNCArMTE0LDI0MSBAQCBjZmdfaWYhIHsKKyBwdWIgZm4gc2ltZF9i eXRlX3N3YXAoczogdTE2eDgpIC0+IHUxNng4IHsKKyAgICAgbGV0IGxlZnQgPSBzIDw8IDg7Cisg ICAgIGxldCByaWdodCA9IHMgPj4gODsKKyAgICAgbGVmdCB8IHJpZ2h0CisgfQorIAorICNbaW5s aW5lKGFsd2F5cyldCisgcHViIGZuIHRvX3UxNl9sYW5lcyhzOiB1OHgxNikgLT4gdTE2eDggewor LSAgICBzLmludG9fYml0cygpCisrICAgIHUxNng4Ojpmcm9tX25lX2J5dGVzKHMpCisgfQorIAor IGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKyAK KyAgICAgICAgIC8vIEV4cG9zZSBsb3ctbGV2ZWwgbWFzayBpbnN0ZWFkIG9mIGhpZ2hlci1sZXZl bCBjb25jbHVzaW9uLAorICAgICAgICAgLy8gYmVjYXVzZSB0aGUgbm9uLUFTQ0lJIGNhc2Ugd291 bGQgcGVyZm9ybSBsZXNzIHdlbGwgb3RoZXJ3aXNlLgorKyAgICAgICAgLy8gU2FmZXR5LXVzYWJs ZSBpbnZhcmlhbnQ6IFRoaXMgcmV0dXJuZWQgdmFsdWUgaXMgd2hldGhlciBlYWNoIGhpZ2ggYml0 IGlzIHNldAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBtYXNr X2FzY2lpKHM6IHU4eDE2KSAtPiBpMzIgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAg ICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50b19iaXRzKCkpCisrICAgICAgICAgICAg ICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50bygpKQorICAgICAgICAgICAgIH0KKyAgICAgICAg IH0KKyAKKyAgICAgfSBlbHNlIHsKKyAKKyAgICAgfQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAg aWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CisgICAgICAgICAjW2lubGluZShh bHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4MTYpIC0+IGJvb2wg eworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19l cGk4KHMuaW50b19iaXRzKCkpID09IDAKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBo YXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICBfbW1fbW92 ZW1hc2tfZXBpOChzLmludG8oKSkgPT0gMAorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17CisgICAgICAgICAj W2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4MTYp IC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgIHZtYXh2 cV91OChzLmludG9fYml0cygpKSA8IDB4ODAKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBX ZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICB2bWF4 dnFfdTgocy5pbnRvKCkpIDwgMHg4MAorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg fSBlbHNlIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2lt ZF9pc19hc2NpaShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAgLy8gVGhpcyBvcHRp bWl6ZXMgYmV0dGVyIG9uIEFSTSB0aGFuCisgICAgICAgICAgICAgLy8gdGhlIGx0IGZvcm11bGF0 aW9uLgorICAgICAgICAgICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTh4MTY6OnNwbGF0KDB4N0Yp OworLSAgICAgICAgICAgICFzLmd0KGhpZ2hlc3RfYXNjaWkpLmFueSgpCisrICAgICAgICAgICAg IWFueV9tYXNrOHgxNihzLnNpbWRfZ3QoaGlnaGVzdF9hc2NpaSkpCisgICAgICAgICB9CisgICAg IH0KKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNz ZTIiKV0geworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1k X2lzX3N0cl9sYXRpbjEoczogdTh4MTYpIC0+IGJvb2wgeworICAgICAgICAgICAgIGlmIHNpbWRf aXNfYXNjaWkocykgeworICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgbGV0IGFib3ZlX3N0cl9sYXRpbjEgPSB1OHgxNjo6c3BsYXQoMHhD NCk7CistICAgICAgICAgICAgcy5sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQorKyAgICAgICAg ICAgIHMuc2ltZF9sdChhYm92ZV9zdHJfbGF0aW4xKS5hbGwoKQorICAgICAgICAgfQorICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXXsKKyAgICAgICAgICNbaW5s aW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9pc19zdHJfbGF0aW4xKHM6IHU4eDE2 KSAtPiBib29sIHsKKyAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICB2bWF4 dnFfdTgocy5pbnRvX2JpdHMoKSkgPCAweEM0CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAgICAgICAgICAgICAgdm1h eHZxX3U4KHMuaW50bygpKSA8IDB4QzQKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAg IH0gZWxzZSB7CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNp bWRfaXNfc3RyX2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAgbGV0IGFi b3ZlX3N0cl9sYXRpbjEgPSB1OHgxNjo6c3BsYXQoMHhDNCk7CistICAgICAgICAgICAgcy5sdChh Ym92ZV9zdHJfbGF0aW4xKS5hbGwoKQorKyAgICAgICAgICAgIGFsbF9tYXNrOHgxNihzLnNpbWRf bHQoYWJvdmVfc3RyX2xhdGluMSkpCisgICAgICAgICB9CisgICAgIH0KKyB9CisgCisgY2ZnX2lm ISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17CisgICAgICAgICAj W2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYmFzaWNfbGF0aW4oczog dTE2eDgpIC0+IGJvb2wgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg IHZtYXh2cV91MTYocy5pbnRvX2JpdHMoKSkgPCAweDgwCisrICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAgICAgICAgICAg ICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDgwCisgICAgICAgICAgICAgfQorICAgICAgICAg fQorIAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lz X2xhdGluMShzOiB1MTZ4OCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG9fYml0cygpKSA8IDB4MTAwCisrICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysg ICAgICAgICAgICAgICAgdm1heHZxX3UxNihzLmludG8oKSkgPCAweDEwMAorICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICBwdWIgZm4gc2ltZF9pc19iYXNpY19sYXRpbihzOiB1MTZ4OCkgLT4gYm9vbCB7 CisgICAgICAgICAgICAgbGV0IGFib3ZlX2FzY2lpID0gdTE2eDg6OnNwbGF0KDB4ODApOworLSAg ICAgICAgICAgIHMubHQoYWJvdmVfYXNjaWkpLmFsbCgpCisrICAgICAgICAgICAgYWxsX21hc2sx Nng4KHMuc2ltZF9sdChhYm92ZV9hc2NpaSkpCisgICAgICAgICB9CisgCisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfbGF0aW4xKHM6IHUxNng4KSAt PiBib29sIHsKKyAgICAgICAgICAgICAvLyBGb3Igc29tZSByZWFzb24sIG9uIFNTRTIgdGhpcyBm b3JtdWxhdGlvbgorICAgICAgICAgICAgIC8vIHNlZW1zIGZhc3RlciBpbiB0aGlzIGNhc2Ugd2hp bGUgdGhlIGFib3ZlCisgICAgICAgICAgICAgLy8gZnVuY3Rpb24gaXMgYmV0dGVyIHRoZSBvdGhl ciB3YXkgcm91bmQuLi4KKyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9sYXRpbjEgPSB1MTZ4ODo6 c3BsYXQoMHhGRik7CistICAgICAgICAgICAgIXMuZ3QoaGlnaGVzdF9sYXRpbjEpLmFueSgpCisr ICAgICAgICAgICAgIWFueV9tYXNrMTZ4OChzLnNpbWRfZ3QoaGlnaGVzdF9sYXRpbjEpKQorICAg ICAgICAgfQorICAgICB9CisgfQorIAorICNbaW5saW5lKGFsd2F5cyldCisgcHViIGZuIGNvbnRh aW5zX3N1cnJvZ2F0ZXMoczogdTE2eDgpIC0+IGJvb2wgeworICAgICBsZXQgbWFzayA9IHUxNng4 OjpzcGxhdCgweEY4MDApOworICAgICBsZXQgc3Vycm9nYXRlX2JpdHMgPSB1MTZ4ODo6c3BsYXQo MHhEODAwKTsKKy0gICAgKHMgJiBtYXNrKS5lcShzdXJyb2dhdGVfYml0cykuYW55KCkKKysgICAg YW55X21hc2sxNng4KChzICYgbWFzaykuc2ltZF9lcShzdXJyb2dhdGVfYml0cykpCisgfQorIAor IGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildeworICAg ICAgICAgbWFjcm9fcnVsZXMhIGFhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2JlbG93X2hlYnJldyB7 CisgICAgICAgICAgICAgKCRzOmlkZW50KSA9PiAoeworICAgICAgICAgICAgICAgICB1bnNhZmUg eworLSAgICAgICAgICAgICAgICAgICAgaWYgdm1heHZxX3UxNigkcy5pbnRvX2JpdHMoKSkgPCAw eDA1OTAgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0 aGUgY29ycmVjdCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICAgICAgaWYgdm1heHZxX3UxNigk cy5pbnRvKCkpIDwgMHgwNTkwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICB9KQorICAgICAgICAgfQorIAorICAgICAgICAgbWFjcm9fcnVsZXMhIG5vbl9hYXJjaDY0 X3JldHVybl9mYWxzZV9pZl9hbGwgeworICAgICAgICAgICAgICgkczppZGVudCkgPT4gKCkKKyAg ICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIG1hY3JvX3J1bGVzISBhYXJjaDY0X3Jl dHVybl9mYWxzZV9pZl9iZWxvd19oZWJyZXcgeworICAgICAgICAgICAgICgkczppZGVudCkgPT4g KCkKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIG1hY3JvX3J1bGVzISBub25fYWFyY2g2NF9yZXR1 cm5fZmFsc2VfaWZfYWxsIHsKKyAgICAgICAgICAgICAoJHM6aWRlbnQpID0+ICh7CistICAgICAg ICAgICAgICAgIGlmICRzLmFsbCgpIHsKKysgICAgICAgICAgICAgICAgaWYgYWxsX21hc2sxNng4 KCRzKSB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICB9KQorICAgICAgICAgfQorICAgICB9CisgfQorIAorIG1hY3Jv X3J1bGVzISBpbl9yYW5nZTE2eDggeworICAgICAoJHM6aWRlbnQsICRzdGFydDpleHByLCAkZW5k OmV4cHIpID0+IHt7CisgICAgICAgICAvLyBTSU1EIHN1YiBpcyB3cmFwcGluZworLSAgICAgICAg KCRzIC0gdTE2eDg6OnNwbGF0KCRzdGFydCkpLmx0KHUxNng4OjpzcGxhdCgkZW5kIC0gJHN0YXJ0 KSkKKysgICAgICAgICgkcyAtIHUxNng4OjpzcGxhdCgkc3RhcnQpKS5zaW1kX2x0KHUxNng4Ojpz cGxhdCgkZW5kIC0gJHN0YXJ0KSkKKyAgICAgfX07CisgfQorIAorICNbaW5saW5lKGFsd2F5cyld CisgcHViIGZuIGlzX3UxNng4X2JpZGkoczogdTE2eDgpIC0+IGJvb2wgeworICAgICAvLyBXZSB0 cnkgdG8gZmlyc3QgcXVpY2tseSByZWZ1dGUgdGhlIFJUTG5lc3Mgb2YgdGhlIHZlY3Rvci4gSWYg dGhhdAorICAgICAvLyBmYWlscywgd2UgZG8gdGhlIHJlYWwgUlRMIGNoZWNrLCBzbyBpbiB0aGF0 IGNhc2Ugd2UgZW5kIHVwIHdhc3RpbmcKKyAgICAgLy8gdGhlIHdvcmsgZm9yIHRoZSB1cC1mcm9u dCBxdWljayBjaGVja3MuIEV2ZW4gdGhlIHF1aWNrLWNoZWNrIGlzCisgICAgIC8vIHR3by1mb2xk IGluIG9yZGVyIHRvIHJldHVybiBgZmFsc2VgIEFTQVAgaWYgZXZlcnl0aGluZyBpcyBiZWxvdwor ICAgICAvLyBIZWJyZXcuCisgCisgICAgIGFhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2JlbG93X2hl YnJldyEocyk7CisgCistICAgIGxldCBiZWxvd19oZWJyZXcgPSBzLmx0KHUxNng4OjpzcGxhdCgw eDA1OTApKTsKKysgICAgbGV0IGJlbG93X2hlYnJldyA9IHMuc2ltZF9sdCh1MTZ4ODo6c3BsYXQo MHgwNTkwKSk7CisgCisgICAgIG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9pZl9hbGwhKGJlbG93 X2hlYnJldyk7CisgCistICAgIGlmIChiZWxvd19oZWJyZXcgfCBpbl9yYW5nZTE2eDghKHMsIDB4 MDkwMCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEocywgMHgyMDY4LCAweEQ4MDIpKS5hbGwoKSB7 CisrICAgIGlmIGFsbF9tYXNrMTZ4OCgKKysgICAgICAgIGJlbG93X2hlYnJldyB8IGluX3Jhbmdl MTZ4OCEocywgMHgwOTAwLCAweDIwMEYpIHwgaW5fcmFuZ2UxNng4IShzLCAweDIwNjgsIDB4RDgw MiksCisrICAgICkgeworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCisgICAgIC8v IFF1aWNrIHJlZnV0YXRpb24gZmFpbGVkLiBMZXQncyBkbyB0aGUgZnVsbCBjaGVjay4KKyAKKy0g ICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAweDA5MDApCistICAgICAgICB8IGluX3Jhbmdl MTZ4OCEocywgMHhGQjFELCAweEZFMDApCistICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhG RTcwLCAweEZFRkYpCistICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODAyLCAweEQ4MDQp CistICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhEODNBLCAweEQ4M0MpCistICAgICAgICB8 IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAwRikpCistICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0 KDB4MjAyQikpCistICAgICAgICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjAyRSkpCistICAgICAg ICB8IHMuZXEodTE2eDg6OnNwbGF0KDB4MjA2NykpKQorLSAgICAuYW55KCkKKysgICAgYW55X21h c2sxNng4KAorKyAgICAgICAgKGluX3JhbmdlMTZ4OCEocywgMHgwNTkwLCAweDA5MDApCisrICAg ICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RkIxRCwgMHhGRTAwKQorKyAgICAgICAgICAg IHwgaW5fcmFuZ2UxNng4IShzLCAweEZFNzAsIDB4RkVGRikKKysgICAgICAgICAgICB8IGluX3Jh bmdlMTZ4OCEocywgMHhEODAyLCAweEQ4MDQpCisrICAgICAgICAgICAgfCBpbl9yYW5nZTE2eDgh KHMsIDB4RDgzQSwgMHhEODNDKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxh dCgweDIwMEYpKQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwMkIp KQorKyAgICAgICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwMkUpKQorKyAgICAg ICAgICAgIHwgcy5zaW1kX2VxKHUxNng4OjpzcGxhdCgweDIwNjcpKSksCisrICAgICkKKyB9Cisg CisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgZm4gc2ltZF91bnBhY2soczogdTh4MTYpIC0+ICh1 MTZ4OCwgdTE2eDgpIHsKKy0gICAgdW5zYWZlIHsKKy0gICAgICAgIGxldCBmaXJzdDogdTh4MTYg PSBzaHVmZmxlISgKKy0gICAgICAgICAgICBzLAorLSAgICAgICAgICAgIHU4eDE2OjpzcGxhdCgw KSwKKy0gICAgICAgICAgICBbMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAy MSwgNiwgMjIsIDcsIDIzXQorLSAgICAgICAgKTsKKy0gICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2 ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgcywKKy0gICAgICAgICAgICB1OHgxNjo6c3BsYXQo MCksCistICAgICAgICAgICAgWzgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwg MTMsIDI5LCAxNCwgMzAsIDE1LCAzMV0KKy0gICAgICAgICk7CistICAgICAgICAoZmlyc3QuaW50 b19iaXRzKCksIHNlY29uZC5pbnRvX2JpdHMoKSkKKy0gICAgfQorKyAgICBsZXQgZmlyc3Q6IHU4 eDE2ID0gc2ltZF9zd2l6emxlISgKKysgICAgICAgIHMsCisrICAgICAgICB1OHgxNjo6c3BsYXQo MCksCisrICAgICAgICBbMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwg NiwgMjIsIDcsIDIzXQorKyAgICApOworKyAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IHNpbWRfc3dp enpsZSEoCisrICAgICAgICBzLAorKyAgICAgICAgdTh4MTY6OnNwbGF0KDApLAorKyAgICAgICAg WzgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1 LCAzMV0KKysgICAgKTsKKysgICAgKHUxNng4Ojpmcm9tX25lX2J5dGVzKGZpcnN0KSwgdTE2eDg6 OmZyb21fbmVfYnl0ZXMoc2Vjb25kKSkKKyB9CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K KyAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2soYTogdTE2eDgsIGI6IHUxNng4KSAtPiB1OHgxNiB7 CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgX21tX3BhY2t1c19lcGkx NihhLmludG9fYml0cygpLCBiLmludG9fYml0cygpKS5pbnRvX2JpdHMoKQorKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCisrICAg ICAgICAgICAgICAgIF9tbV9wYWNrdXNfZXBpMTYoYS5pbnRvKCksIGIuaW50bygpKS5pbnRvKCkK KyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfcGFjayhhOiB1MTZ4OCwgYjogdTE2 eDgpIC0+IHU4eDE2IHsKKy0gICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICBs ZXQgZmlyc3Q6IHU4eDE2ID0gYS5pbnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgbGV0IHNl Y29uZDogdTh4MTYgPSBiLmludG9fYml0cygpOworLSAgICAgICAgICAgICAgICBzaHVmZmxlISgK Ky0gICAgICAgICAgICAgICAgICAgIGZpcnN0LAorLSAgICAgICAgICAgICAgICAgICAgc2Vjb25k LAorLSAgICAgICAgICAgICAgICAgICAgWzAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAx OCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAzMF0KKy0gICAgICAgICAgICAgICAgKQorLSAgICAgICAg ICAgIH0KKysgICAgICAgICAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gYS50b19uZV9ieXRlcygpOwor KyAgICAgICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gYi50b19uZV9ieXRlcygpOworKyAgICAg ICAgICAgIHNpbWRfc3dpenpsZSEoCisrICAgICAgICAgICAgICAgIGZpcnN0LAorKyAgICAgICAg ICAgICAgICBzZWNvbmQsCisrICAgICAgICAgICAgICAgIFswLCAyLCA0LCA2LCA4LCAxMCwgMTIs IDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzBdCisrICAgICAgICAgICAgKQorICAg ICAgICAgfQorICAgICB9CisgfQorIAorICNbY2ZnKHRlc3QpXQorIG1vZCB0ZXN0cyB7CisgICAg IHVzZSBzdXBlcjo6KjsKKyAgICAgdXNlIGFsbG9jOjp2ZWM6OlZlYzsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJzCistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycworKysrIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUucnMKK0BAIC00OCwxNiArNDgsMTkgQEAg aW1wbCBTaW5nbGVCeXRlRGVjb2RlciB7CisgICAgICAgICAgICAgICAgIENvcHlBc2NpaVJlc3Vs dDo6R29PbigobXV0IG5vbl9hc2NpaSwgbXV0IGhhbmRsZSkpID0+ICdtaWRkbGU6IGxvb3Agewor ICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgbm9uLWJvaWxlcnBsYXRlCisgICAgICAgICAg ICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vbi1BU0NJ SW5lc3Mgb2YgYG5vbl9hc2NpaWAgaXMgaGlkZGVuIGZyb20KKyAgICAgICAgICAgICAgICAgICAg IC8vIHRoZSBvcHRpbWl6ZXIsIGl0IGNhbid0IGZpZ3VyZSBvdXQgdGhhdCBpdCdzIE9LIHRvCisg ICAgICAgICAgICAgICAgICAgICAvLyBzdGF0aWNhbGx5IG9taXQgdGhlIGJvdW5kIGNoZWNrIHdo ZW4gYWNjZXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAvLyBgW3UxNjsgMTI4XWAgd2l0aCBh biBpbmRleAorICAgICAgICAgICAgICAgICAgICAgLy8gYG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4 ODB1c2l6ZWAuCisrICAgICAgICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBgbm9uX2FzY2lpYCBpcyBhIHU4IGJ5dGUgPj0weDgwLCBmcm9tIHRoZSBpbnZh cmlhbnRzCisrICAgICAgICAgICAgICAgICAgICAvLyBvbiBVdGY4RGVzdGluYXRpb246OmNvcHlf YXNjaWlfZnJvbV9jaGVja19zcGFjZV9ibXAoKQorICAgICAgICAgICAgICAgICAgICAgbGV0IG1h cHBlZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgKihzZWxmLnRhYmxlLmdl dF91bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplKSkgfTsKKyAgICAgICAg ICAgICAgICAgICAgIC8vIGxldCBtYXBwZWQgPSBzZWxmLnRhYmxlW25vbl9hc2NpaSBhcyB1c2l6 ZSAtIDB4ODB1c2l6ZV07CisgICAgICAgICAgICAgICAgICAgICBpZiBtYXBwZWQgPT0gMHUxNiB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGVjb2RlclJlc3VsdDo6TWFsZm9ybWVkKDEsIDApLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2UuY29uc3VtZWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGFuZGxlLndyaXR0ZW4oKSwKK0BAIC0xNDYsODIgKzE0OSwxMDMgQEAgaW1wbCBTaW5n bGVCeXRlRGVjb2RlciB7CisgICAgICAgICBkc3Q6ICZtdXQgW3UxNl0sCisgICAgICAgICBfbGFz dDogYm9vbCwKKyAgICAgKSAtPiAoRGVjb2RlclJlc3VsdCwgdXNpemUsIHVzaXplKSB7CisgICAg ICAgICBsZXQgKHBlbmRpbmcsIGxlbmd0aCkgPSBpZiBkc3QubGVuKCkgPCBzcmMubGVuKCkgewor ICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3QubGVuKCkpCisgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBz cmMubGVuKCkpCisgICAgICAgICB9OworKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogY29u dmVydGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVydGVkIDwgbGVuZ3Ro YAorKyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtlZC4KKyAgICAgICAg IGxldCBtdXQgY29udmVydGVkID0gMHVzaXplOworICAgICAgICAgJ291dGVybW9zdDogbG9vcCB7 CisgICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBsZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhgIHdpbGwgYWx3YXlz IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAtIHhgCisgICAgICAgICAgICAgICAg IGFzY2lpX3RvX2Jhc2ljX2xhdGluKAorICAgICAgICAgICAgICAgICAgICAgc3JjLmFzX3B0cigp LmFkZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAgZHN0LmFzX211dF9wdHIoKS5h ZGQoY29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtIGNvbnZlcnRlZCwK KyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIH0geworICAgICAgICAgICAgICAgICBO b25lID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBs ZW5ndGgpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIFNvbWUoKG11dCBu b25fYXNjaWksIGNvbnN1bWVkKSkgPT4geworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 IGludmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2UgdGhpcyBjYW4g b25seSBjb25zdW1lCisrICAgICAgICAgICAgICAgICAgICAvLyB1cCB0byBgbGVuZ3RoIC0gY29u dmVydGVkYCBieXRlcy4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAg ICAgICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAg ICAgLy8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBzaW5jZSB0aGlzIGJyYW5j aCBpcyBvbmx5IGV2ZXIgaGl0IHdoZW4KKysgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3Rv X2Jhc2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBzbGljZQorICAgICAgICAg ICAgICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAg J21pZGRsZTogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZGAg ZG9lc24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5ZXQuCisgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vbi1BU0NJSW5lc3Mgb2YgYG5vbl9hc2NpaWAg aXMgaGlkZGVuIGZyb20KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgb3B0aW1pemVy LCBpdCBjYW4ndCBmaWd1cmUgb3V0IHRoYXQgaXQncyBPSyB0bworICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHN0YXRpY2FsbHkgb21pdCB0aGUgYm91bmQgY2hlY2sgd2hlbiBhY2Nlc3NpbmcK KyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgW3UxNjsgMTI4XWAgd2l0aCBhbiBpbmRleAor ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNp emVgLgorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBgbm9uX2FzY2lpYCBiZWluZyBiZXR3ZWVuIGAw eDgwYCBhbmQgYDB4RkZgIGR1ZSB0bworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBp bnZhcmlhbnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRpbigpYCwgYW5kIG91ciB0YWJsZSBoYXMg ZW5vdWdoIHNwYWNlIGZvciB0aGF0LgorICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXBw ZWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyAqKHNlbGYudGFibGUu Z2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemUpKSB9OworICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGxldCBtYXBwZWQgPSBzZWxmLnRhYmxlW25vbl9hc2NpaSBh cyB1c2l6ZSAtIDB4ODB1c2l6ZV07CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFwcGVk ID09IDB1MTYgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb2RlclJlc3VsdDo6TWFsZm9ybWVkKDEsIDAp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICsgMSwgLy8gKzEg YGZvciBub25fYXNjaWlgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0 ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFRoZSBib3VuZCBjaGVjayBoYXMgYWxyZWFkeSBiZWVuIHBlcmZv cm1lZAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEFzIG1lbnRpb25l ZCBhYm92ZSwgYGNvbnZlcnRlZCA8IGxlbmd0aGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSBtYXBwZWQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog YGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2UgYGNvbnZlcnRlZCA8IGxlbmd0aGAg YmVmb3JlIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXh0LCBoYW5kbGUgQVNDSUkgcHVuY3R1YXRpb24g YW5kIG5vbi1BU0NJSSB3aXRob3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ29pbmcg YmFjayB0byBBU0NJSSBhY2NlbGVyYXRpb24uIE5vbi1BU0NJSSBzY3JpcHRzCisgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdXNlIEFTQ0lJIHB1bmN0dWF0aW9uLCBzbyB0aGlzIGF2b2lkIGdv aW5nIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWNjZWxlcmF0aW9uIGp1c3QgZm9y IHB1bmN0dWF0aW9uL3NwYWNlIGFuZCB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8g ZmFpbGluZy4gVGhpcyBpcyBhIHNpZ25pZmljYW50IGJvb3N0IHRvIG5vbi1BU0NJSQorICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHNjcmlwdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVE9ETzogU3BsaXQgb3V0IExhdGluIGNvbnZlcnRlcnMgd2l0aG91dCB0aGlzIHBhcnQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHN0dWZmIG1ha2VzIExhdGluIHNjcmlwdC1j b252ZXJzaW9uIHNsb3dlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQg PT0gbGVuZ3RoIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5n LCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIGJhY2sgdG8gYGNvbnZlcnRlZCA8IGxl bmd0aGAgYmVjYXVzZSBvZiB0aGUgPT0gYWJvdmUKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBhbmQgY2FuIHBlcmZvcm0gdGhpcyBjaGVjay4KKyAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGIgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07Cisr ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVkIDwgbGVuZ3RoYCBp cyB1cGhlbGQgZm9yIHRoaXMgbG9vcAorICAgICAgICAgICAgICAgICAgICAgICAgICdpbm5lcm1v c3Q6IGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBiID4gMTI3IHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IGI7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnbWlkZGxlOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3Rpbmcg b24gSGFzd2VsbCBzYXlzIHRoYXQgd2Ugc2hvdWxkIHdyaXRlIHRoZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBieXRlIHVuY29uZGl0aW9uYWxseSBpbnN0ZWFkIG9mIHRyeWluZyB0 byB1bnJlYWQgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWFrZSBpdCBw YXJ0IG9mIHRoZSBuZXh0IFNJTUQgc3RyaWRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBg Y29udmVydGVkIDwgbGVuZ3RoYCBpcyB0cnVlIGZvciB0aGlzIGxvb3AKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0g dTE2Ojpmcm9tKGIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIG5vdyBhdCBgY29udmVydGVkIDw9 IGxlbmd0aGAuIFdlIHNob3VsZCAqbm90KiBgY29udGludWVgCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoZSBsb29wIHdpdGhvdXQgcmV2ZXJpZnlpbmcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udmVydGVkICs9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGIgPCA2MCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2 ZSBnb3QgcHVuY3R1YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNv bnZlcnRlZCA9PSBsZW5ndGggeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiB3ZSdyZSBiYWNrIHRvIGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCBiZWNhdXNlIG9mIHRoZSA9PSBh Ym92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHVuc2FmZSB7ICooc3Jj LmdldF91bmNoZWNrZWQoY29udmVydGVkKSkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhlIGxvb3AgY29udGludWVzIGFzIGBjb252ZXJ0ZWQgPCBsZW5n dGhgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnaW5uZXJtb3N0 OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFdlJ3ZlIGdvdCBtYXJrdXAgb3IgQVNDSUkgdGV4dAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZSAnb3V0ZXJtb3N0OworICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIH0KK0BAIC0yMjksMTYgKzI1MywxOCBAQCBpbXBsIFNpbmdsZUJ5dGVEZWNvZGVyIHsK KyAgICAgfQorIAorICAgICBwdWIgZm4gbGF0aW4xX2J5dGVfY29tcGF0aWJsZV91cF90bygmc2Vs ZiwgYnVmZmVyOiAmW3U4XSkgLT4gdXNpemUgeworICAgICAgICAgbGV0IG11dCBieXRlcyA9IGJ1 ZmZlcjsKKyAgICAgICAgIGxldCBtdXQgdG90YWwgPSAwOworICAgICAgICAgbG9vcCB7CisgICAg ICAgICAgICAgaWYgbGV0IFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSkgPSB2YWxpZGF0ZV9hc2Np aShieXRlcykgeworICAgICAgICAgICAgICAgICB0b3RhbCArPSBvZmZzZXQ7CisrICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogV2UgY2FuIHJlbHkgb24gYG5vbl9hc2NpaWAgYmVpbmcgYmV0d2Vl biBgMHg4MGAgYW5kIGAweEZGYCBkdWUgdG8KKysgICAgICAgICAgICAgICAgLy8gdGhlIGludmFy aWFudHMgb2YgYGFzY2lpX3RvX2Jhc2ljX2xhdGluKClgLCBhbmQgb3VyIHRhYmxlIGhhcyBlbm91 Z2ggc3BhY2UgZm9yIHRoYXQuCisgICAgICAgICAgICAgICAgIGxldCBtYXBwZWQgPSB1bnNhZmUg eyAqKHNlbGYudGFibGUuZ2V0X3VuY2hlY2tlZChub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNp emUpKSB9OworICAgICAgICAgICAgICAgICBpZiBtYXBwZWQgIT0gdTE2Ojpmcm9tKG5vbl9hc2Np aSkgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOworICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIHRvdGFsICs9IDE7CisgICAgICAgICAgICAgICAgIGJ5dGVz ID0gJmJ5dGVzW29mZnNldCArIDEuLl07CisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgICAgcmV0dXJuIHRvdGFsOworQEAgLTM3OSw2NCArNDA1LDg5IEBAIGltcGwgU2luZ2xl Qnl0ZUVuY29kZXIgeworICAgICAgICAgZHN0OiAmbXV0IFt1OF0sCisgICAgICAgICBfbGFzdDog Ym9vbCwKKyAgICAgKSAtPiAoRW5jb2RlclJlc3VsdCwgdXNpemUsIHVzaXplKSB7CisgICAgICAg ICBsZXQgKHBlbmRpbmcsIGxlbmd0aCkgPSBpZiBkc3QubGVuKCkgPCBzcmMubGVuKCkgeworICAg ICAgICAgICAgIChFbmNvZGVyUmVzdWx0OjpPdXRwdXRGdWxsLCBkc3QubGVuKCkpCisgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgIChFbmNvZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmMu bGVuKCkpCisgICAgICAgICB9OworKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogY29udmVy dGVkIDw9IGxlbmd0aC4gUXVpdGUgb2Z0ZW4gd2UgaGF2ZSBgY29udmVydGVkIDwgbGVuZ3RoYAor KyAgICAgICAgLy8gd2hpY2ggd2lsbCBiZSBzZXBhcmF0ZWx5IG1hcmtlZC4KKyAgICAgICAgIGxl dCBtdXQgY29udmVydGVkID0gMHVzaXplOworICAgICAgICAgJ291dGVybW9zdDogbG9vcCB7Cisg ICAgICAgICAgICAgbWF0Y2ggdW5zYWZlIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBs ZW5ndGggaXMgdGhlIG1pbmltdW0gbGVuZ3RoLCBgc3JjL2RzdCArIHhgIHdpbGwgYWx3YXlzIGJl IHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbiAtIHhgCisgICAgICAgICAgICAgICAgIGJh c2ljX2xhdGluX3RvX2FzY2lpKAorICAgICAgICAgICAgICAgICAgICAgc3JjLmFzX3B0cigpLmFk ZChjb252ZXJ0ZWQpLAorICAgICAgICAgICAgICAgICAgICAgZHN0LmFzX211dF9wdHIoKS5hZGQo Y29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtIGNvbnZlcnRlZCwKKyAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIH0geworICAgICAgICAgICAgICAgICBOb25l ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5n dGgpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIFNvbWUoKG11dCBub25f YXNjaWksIGNvbnN1bWVkKSkgPT4geworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2UgdGhpcyBjYW4gb25s eSBjb25zdW1lCisrICAgICAgICAgICAgICAgICAgICAvLyB1cCB0byBgbGVuZ3RoIC0gY29udmVy dGVkYCBieXRlcy4KKysgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAg ICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAg Ly8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBzaW5jZSB0aGlzIGJyYW5jaCBp cyBvbmx5IGV2ZXIgaGl0IHdoZW4KKysgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2Jh c2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBzbGljZQorICAgICAgICAgICAg ICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgJ21p ZGRsZTogbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZGAgZG9l c24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5ZXQuCisgICAgICAgICAgICAg ICAgICAgICAgICAgbWF0Y2ggc2VsZi5lbmNvZGVfdTE2KG5vbl9hc2NpaSkgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGJ5dGUpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2FmZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB3ZSdyZSBhbGxvd2VkIHRoaXMgYWNjZXNzIHNpbmNlIGBjb252ZXJ0ZWQg PCBsZW5ndGhgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuZ2V0 X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSBieXRlOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVk ICs9IDE7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgY29udmVydGVkIDw9 IGxlbmd0aGAgbm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIHRvIGtub3cgaWYgd2UKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBzdXJyb2dhdGUuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgaGlnaF9iaXRzID0gbm9uX2FzY2lpICYgMHhGQzAwdTE2 OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaGlnaF9iaXRzID09IDB4RDgw MHUxNiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGlnaCBzdXJy b2dhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQg KyAxID09IGxlbmd0aCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEVuZCBvZiBidWZmZXIuIFRoaXMgc3Vycm9nYXRlIGlzIHVucGFpcmVkLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5jb2RlclJlc3VsdDo6VW5tYXBwYWJsZSgn XHV7RkZGRH0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnZlcnRlZCArIDEsIC8vICsxIGBmb3Igbm9uX2FzY2lpYAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGNvbnZlcmVkIDwgbGVuZ3RoIGZyb20gb3V0c2lkZSB0aGUgbWF0Y2gsIGFuZCBgY29udmVydGVk ICsgMSAhPSBsZW5ndGhgLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNvIGBjb252ZXJ0ZWQgKyAxIDwgbGVuZ3RoYCBhcyB3ZWxsLiBXZSdyZSBpbiBib3VuZHMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25kID0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyOjpmcm9tKHVuc2FmZSB7ICpzcmMu Z2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQgKyAxKSB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBzZWNvbmQgJiAweEZDMDB1MzIgIT0gMHhEQzAwdTMyIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY29kZXJSZXN1bHQ6OlVubWFwcGFi bGUoJ1x1e0ZGRkR9JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhl IG5leHQgY29kZSB1bml0IGlzIGEgbG93IHN1cnJvZ2F0ZS4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYXN0cmFsOiBjaGFyID0gdW5zYWZlIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBu b25fYXNjaWkgYmVpbmcgMHhEODAwLTB4REJGRiBzaW5jZSB0aGUgaGlnaCBiaXRzIGFyZSAweEQ4 MDAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlbiwgKG5v bl9hc2NpaSA8PCAxMCAtIDB4RDgwMCA8PCAxMCkgYmVjb21lcyBiZXR3ZWVuICgwIHRvIDB4M0ZG KSA8PCAxMCwgd2hpY2ggaXMgYmV0d2VlbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAweDQwMCB0byAweGZmYzAwLiBBZGRpbmcgdGhlIDB4MTAwMDAgZ2l2ZXMg YSByYW5nZSBvZiAweDEwNDAwIHRvIDB4MTBmYzAwLiBTdWJ0cmFjdGluZyB0aGUgMHhEQzAwCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdpdmVzIDB4MjgwMCB0 byAweDEwMjAwMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBU aGUgc2Vjb25kIHRlcm0gaXMgYmV0d2VlbiAweERDMDAgYW5kIDB4REZGRiBmcm9tIHRoZSBjaGVj ayBhYm92ZS4gVGhpcyBnaXZlcyBhIG1heGltdW0KKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gcG9zc2libGUgcmFuZ2Ugb2YgKDB4MTA0MDAgKyAweERDMDApIHRv ICgweDEwMjAwMCArIDB4REZGRikgd2hpY2ggaXMgMHgxRTAwMCB0byAweDEwZmZmZi4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBpbiByYW5nZS4K KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRnJvbSBhIFVuaWNvZGUgcHJpbmNpcGxl cyBwZXJzcGVjdGl2ZSB0aGlzIGNhbiBhbHNvIGJlIHZlcmlmaWVkIGFzIHdlIGhhdmUgY2hlY2tl ZCB0aGF0IGBub25fYXNjaWlgIGlzIGEgaGlnaCBzdXJyb2dhdGUKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gKDB4RDgwMC4uPTB4REJGRiksIGFuZCB0aGF0IGBz ZWNvbmRgIGlzIGEgbG93IHN1cnJvZ2F0ZSAoYDB4REMwMC4uPTB4REZGRmApLCBhbmQgd2UgYXJl IGFwcGx5aW5nIHJldmVyc2Ugb2YgdGhlIFVUQzE2IHRyYW5zZm9ybWF0aW9uCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsZ29yaXRobSA8aHR0cHM6Ly9lbi53 aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX2Zyb21fVSswMTAwMDBfdG9fVSsx MEZGRkY+LCBieSBhcHBseWluZyB0aGUgaGlnaCBzdXJyb2dhdGUgLSAweEQ4MDAgdG8gdGhlCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhpZ2ggdGVuIGJpdHMs IGFuZCB0aGUgbG93IHN1cnJvZ2F0ZSAtIDB4RGMwMCB0byB0aGUgbG93IHRlbiBiaXRzLCBhbmQg dGhlbiBhZGRpbmcgMHgxMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6OmNvcmU6OmNoYXI6OmZyb21fdTMyX3VuY2hlY2tlZCgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1MzI6OmZyb20obm9uX2FzY2lpKSA8PCAxMCkg KyBzZWNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgoKDB4RDgwMHUzMiA8PCAxMCkgLSAweDFfMDAwMHUzMikgKyAweERDMDB1MzIpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF bmNvZGVyUmVzdWx0OjpVbm1hcHBhYmxlKGFzdHJhbCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArIDIsIC8vICsyIGBmb3Igbm9uX2FzY2lpYCBh bmQgYHNlY29uZGAKK0BAIC00NTEsNTIgKzUwMiw2MyBAQCBpbXBsIFNpbmdsZUJ5dGVFbmNvZGVy IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY29kZXJSZXN1bHQ6 OnVubWFwcGFibGVfZnJvbV9ibXAobm9uX2FzY2lpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGlzIGJyYW5jaCBkaXZlcmdlcywgc28gbm8gbmVlZCB0byB1cGhvbGQgaW52 YXJpYW50cyBvbiBgY29udmVydGVkYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5l eHQsIGhhbmRsZSBBU0NJSSBwdW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdpdGhvdXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBnb2luZyBiYWNrIHRvIEFTQ0lJIGFjY2VsZXJhdGlvbi4g Tm9uLUFTQ0lJIHNjcmlwdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2UgQVNDSUkg cHVuY3R1YXRpb24sIHNvIHRoaXMgYXZvaWQgZ29pbmcgdG8KKyAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBhY2NlbGVyYXRpb24ganVzdCBmb3IgcHVuY3R1YXRpb24vc3BhY2UgYW5kIHRoZW4K KyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWlsaW5nLiBUaGlzIGlzIGEgc2lnbmlmaWNh bnQgYm9vc3QgdG8gbm9uLUFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2NyaXB0 cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBTcGxpdCBvdXQgTGF0aW4gY29u dmVydGVycyB3aXRob3V0IHRoaXMgcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo aXMgc3R1ZmYgbWFrZXMgTGF0aW4gc2NyaXB0LWNvbnZlcnNpb24gc2xvd2VyLgorICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGNvbnZlcnRlZCA9PSBsZW5ndGggeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB3 ZSdyZSBiYWNrIHRvIGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGR1ZSB0byB0aGUgPT0gYWJvdmUgYW5k IGNhbiBwZXJmb3JtCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHVuY2hlY2tlZCBy ZWFkCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bml0ID0gdW5zYWZlIHsgKihz cmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQpKSB9OworICAgICAgICAgICAgICAgICAgICAgICAg ICdpbm5lcm1vc3Q6IGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFRoaXMgbG9vcCBhbHdheXMgYmVnaW5zIHdpdGggYGNvbnZlcnRlZCA8IGxlbmd0aGAsIHNl ZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgaW52YXJpYW50IG91dHNpZGUg YW5kIHRoZSBjb21tZW50IG9uIHRoZSBjb250aW51ZSBiZWxvdworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiB1bml0ID4gMTI3IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5vbl9hc2NpaSA9IHVuaXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZSAnbWlkZGxlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3Rpbmcgb24gSGFzd2VsbCBzYXlzIHRoYXQgd2Ug c2hvdWxkIHdyaXRlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBieXRlIHVu Y29uZGl0aW9uYWxseSBpbnN0ZWFkIG9mIHRyeWluZyB0byB1bnJlYWQgaXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdG8gbWFrZSBpdCBwYXJ0IG9mIHRoZSBuZXh0IFNJTUQgc3Ry aWRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBDYW4gcmVseSBvbiBjb252ZXJ0ZWQgPCBs ZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNr ZWRfbXV0KGNvbnZlcnRlZCkpID0gdW5pdCBhcyB1ODsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gMTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZCA8PSBsZW5ndGhgIGhlcmUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW5pdCA8IDYwIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBwdW5jdHVhdGlvbgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxl bmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGR1ZSB0 byB0aGUgPT0gYWJvdmUuIFRoZSByZWFkIGlzIHNhZmUuCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bml0ID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQp KSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIG9u bHkgaGFwcGVucyBpZiBgY29udmVydGVkIDwgbGVuZ3RoYCwgbWFpbnRhaW5pbmcgaXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdpbm5lcm1vc3Q7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g V2UndmUgZ290IG1hcmt1cCBvciBBU0NJSSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlICdvdXRlcm1vc3Q7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogQWxsIG90aGVyIHJvdXRlcyB0byBoZXJlIGRpdmVyZ2Ugc28gdGhlIGNvbnRpbnVl IGlzIHRoZSBvbmx5CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdheSB0byBydW4g dGhlIGlubmVybW9zdCBsb29wLgorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAg ICAgIH0KKyAgICAgfQorIH0KKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKK0BAIC05LDIyICs5LDIzIEBACisgCisgdXNlIHN1 cGVyOjoqOworIHVzZSBjcmF0ZTo6aGFuZGxlczo6KjsKKyB1c2UgY3JhdGU6OnZhcmlhbnQ6Oio7 CisgCisgY2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIpXSB7 CisgICAgICAgICB1c2Ugc2ltZF9mdW5jczo6KjsKKy0gICAgICAgIHVzZSBwYWNrZWRfc2ltZDo6 dTE2eDg7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTE2eDg7CisrICAgICAgICB1c2UgY29y ZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbE9yZDsKKyAKKyAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCisgICAgICAgICBmbiBzaGlmdF91cHBlcih1bnBhY2tlZDogdTE2eDgpIC0+IHUxNng4IHsK KyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9hc2NpaSA9IHUxNng4OjpzcGxhdCgweDdGKTsKKy0g ICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLmd0KGhpZ2hlc3RfYXNjaWkpLnNlbGVjdCh1 MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAgfQorKyAgICAgICAg ICAgIHVucGFja2VkICsgdW5wYWNrZWQuc2ltZF9ndChoaWdoZXN0X2FzY2lpKS5zZWxlY3QodTE2 eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxhdCgwKSkgICAgICAgIH0KKyAgICAgfSBlbHNl IHsKKyAgICAgfQorIH0KKyAKKyBwdWIgc3RydWN0IFVzZXJEZWZpbmVkRGVjb2RlcjsKKyAKKyBp bXBsIFVzZXJEZWZpbmVkRGVjb2RlciB7CisgICAgIHB1YiBmbiBuZXcoKSAtPiBWYXJpYW50RGVj b2RlciB7CitAQCAtMTExLDIwICsxMTIsMjUgQEAgaW1wbCBVc2VyRGVmaW5lZERlY29kZXIgewor ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0 eSwgc3JjLmxlbigpKQorICAgICAgICAgfTsKKyAgICAgICAgIC8vIE5vdCBib3RoZXJpbmcgd2l0 aCBhbGlnbm1lbnQKKyAgICAgICAgIGxldCB0YWlsX3N0YXJ0ID0gbGVuZ3RoICYgITB4RjsKKyAg ICAgICAgIGxldCBzaW1kX2l0ZXJhdGlvbnMgPSBsZW5ndGggPj4gNDsKKyAgICAgICAgIGxldCBz cmNfcHRyID0gc3JjLmFzX3B0cigpOworICAgICAgICAgbGV0IGRzdF9wdHIgPSBkc3QuYXNfbXV0 X3B0cigpOworKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBmb3IgaSBpbiAwLi5sZW5ndGgg LyAxNmAKKyAgICAgICAgIGZvciBpIGluIDAuLnNpbWRfaXRlcmF0aW9ucyB7CisrICAgICAgICAg ICAgLy8gU2FmZXR5OiBUaGlzIGlzIGluIGJvdW5kczogbGVuZ3RoIGlzIHRoZSBtaW51bXVtIHZh bGlkIGxlbmd0aCBmb3IgYm90aCBzcmMvZHN0CisrICAgICAgICAgICAgLy8gYW5kIGkgcmFuZ2Vz IHRvIGxlbmd0aC8xNiwgc28gbXVsdGlwbHlpbmcgYnkgMTYgd2lsbCBhbHdheXMgYmUgYDwgbGVu Z3RoYCBhbmQgY2FuIGRvCisrICAgICAgICAgICAgLy8gYSAxNiBieXRlIHJlYWQKKyAgICAgICAg ICAgICBsZXQgaW5wdXQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyY19wdHIuYWRkKGkg KiAxNikpIH07CisgICAgICAgICAgICAgbGV0IChmaXJzdCwgc2Vjb25kKSA9IHNpbWRfdW5wYWNr KGlucHV0KTsKKyAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IHNhbWUgYXMgYWJvdmUsIGJ1dCB0aGlzIGlzIHR3byBjb25zZWN1dGl2ZSA4LWJ5dGUgcmVh ZHMKKyAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25lZChkc3RfcHRyLmFkZChpICogMTYp LCBzaGlmdF91cHBlcihmaXJzdCkpOworICAgICAgICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVk KGRzdF9wdHIuYWRkKChpICogMTYpICsgOCksIHNoaWZ0X3VwcGVyKHNlY29uZCkpOworICAgICAg ICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGxldCBzcmNfdGFpbCA9ICZzcmNbdGFpbF9z dGFydC4ubGVuZ3RoXTsKKyAgICAgICAgIGxldCBkc3RfdGFpbCA9ICZtdXQgZHN0W3RhaWxfc3Rh cnQuLmxlbmd0aF07CisgICAgICAgICBzcmNfdGFpbAorICAgICAgICAgICAgIC5pdGVyKCkKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55bWwgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2ZXlvci55bWwKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3Iu eW1sCisrKysgL2Rldi9udWxsCitAQCAtMSw1OSArMCwwIEBACistbWF0cml4OgorLSAgYWxsb3df ZmFpbHVyZXM6CistICAgICMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVy c2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNzIKKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93 cy1tc3ZjCistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtZ251CistICAgIC0gVEFSR0VU OiB4ODZfNjQtcGMtd2luZG93cy1nbnUKKy0gIGZhc3RfZmluaXNoOiB0cnVlCistCistZW52aXJv bm1lbnQ6CistICBtYXRyaXg6CistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3Zj CistICAgICAgTVNZU1RFTTogTUlOR1c2NAorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBU QVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0Cist ICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIKKy0gICAgICBOT1ZF UklGWTogIjEiCistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCistICAgICAg TVNZU1RFTTogTUlOR1c2NAorLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSth dngiCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRv d3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy0gICAgICBSVVNURkxBR1M6ICItQyB0 YXJnZXQtZmVhdHVyZT0rYXZ4MiIKKy0gICAgICBOT1ZFUklGWTogIjEiCistCistICAgIC0gVEFS R0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXMzIKKy0gICAg ICBOT1ZFUklGWTogIjEiCistICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAg ICAgIE1TWVNURU06IE1JTkdXMzIKKy0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVy ZT0rc3NlNC4yIgorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMt d2luZG93cy1tc3ZjCistICAgICAgTVNZU1RFTTogTUlOR1czMgorLSAgICAgIFJVU1RGTEFHUzog Ii1DIHRhcmdldC1mZWF0dXJlPSthdngiCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAgICAtIFRB UkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzMyCistICAg ICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCistICAgICAgTk9WRVJJRlk6 ICIxIgorLQorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251CistICAgICAgTVNZ U1RFTTogTUlOR1c2NAorLQorLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLWdudQorLSAg ICAgIE1TWVNURU06IE1JTkdXMzIKKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLWdu dQorLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy1pbnN0YWxsOgorLSAgLSBwczogaWYgKGxzIC1y IC4gLWZpICIqLnJzIiB8IHNscyAiYHQiKSB7IHRocm93ICJGb3VuZCB0YWIgY2hhcmFjdGVyIiB9 CistICAtIHBzOiBTdGFydC1GaWxlRG93bmxvYWQgImh0dHBzOi8vc3RhdGljLnJ1c3QtbGFuZy5v cmcvZGlzdC9ydXN0LW5pZ2h0bHktJHtlbnY6VEFSR0VUfS5leGUiIC1GaWxlTmFtZSAicnVzdC1p bnN0YWxsLmV4ZSIKKy0gIC0gcHM6IC5ccnVzdC1pbnN0YWxsLmV4ZSAvVkVSWVNJTEVOVCAvTk9S RVNUQVJUIC9ESVI9IkM6XHJ1c3QiIHwgT3V0LU51bGwKKy0gIC0gcHM6ICRlbnY6UEFUSD0iJGVu djpQQVRIO0M6XHJ1c3RcYmluIgorLSAgLSBzZXQgUEFUSD1jOlxtc3lzNjRcJU1TWVNURU0lXGJp bjtjOlxtc3lzNjRcdXNyXGJpbjslUEFUSCUKKy0gIC0gcnVzdGMgLXZWCistICAtIGNhcmdvIC12 VgorLWJ1aWxkOiBmYWxzZQorLXRlc3Rfc2NyaXB0OiBiYXNoIC1jICJjaS9ydW4uc2giCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uY2FyZ28tY2hlY2tzdW0uanNv biBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmNhcmdvLWNoZWNrc3VtLmpzb24KK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uY2FyZ28tY2hlY2tzdW0uanNvbgorKysrIC9kZXYvbnVsbAorQEAgLTEsMSArMCwwIEBACist eyJmaWxlcyI6eyIuYXBwdmV5b3IueW1sIjoiZjFlZDAxODUwZTBkNzI1Zjk0OThmNTJhMWE2M2Rk ZjQwNzAyYWQ2ZTBiZjViMmQ3YzRjMDRkNzZlOTY3OTRhMyIsIi5naXRodWIvd29ya2Zsb3dzL2Jl bmNobWFya3MueW1sIjoiZDA0OWYwMTZkYzUzODMwYTNmY2M3MzU4MzNlY2ExNjhkZjJlNDkxZjMz YjZiNDRjZTdlNGQ1ZDFkZDQ1Mzg1NCIsIi5naXRodWIvd29ya2Zsb3dzL2NpLnltbCI6IjE3MGEy MDc0YWRkNTdkZGM4Zjg4Yjc4MDE0OWU0OTMwMTYyYzZlZTQ3MThhZGQ0MzY5ZGNhOGUzZmQ2YzAy MmEiLCIuZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCI6Ijg2ZjdlYjY1MmM5MDA2MjRlNGRlYjc2 MzIwY2Q5MjE3NWRiMWZhNzI5NWE3NmYyOGYzMDMzNmZmMGZhZDE2MDQiLCIuZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbCI6ImQ4NDdiZTI5M2Y5ZWMxNzAzOGU0NTA2NTJiMWViN2Jk YzIwYjgwNWMxOGM1ZGJhYjM0ZDFkOWZmN2E5Yzg5NDAiLCIudHJhdmlzLnltbCI6IjMwYTYxYTVl YzUzMzU1ZmMxZjM1ODVlMTY5MDI4MDMwOGMyYjc5NjE3MDFhYmMxMWU4Mzg5YjIzNWI2NDcxNzgi LCJDYXJnby50b21sIjoiMDIxNTFjNDE1ZjI2N2E2YWViODY1MTE1ODQ3Mjc0NGQ3MWUxZDlkYTg4 ODNkZDIwYmUyNTczMWE0MmU1MjBmNCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMx NjY4ZDdlMDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VO U0UtTUlUIjoiNjQ4NWI4ZWQzMTBkM2YwMzQwYmYxYWQxZjQ3NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZj N2Q1YzZmYWY0MWRlMWZkYiIsIlJFQURNRS5tZCI6ImM0YWM3MDI3YTlhYjdkNzg1OGFhODk1N2Q3 NDU0ZGJmY2RiYjgxZTYwNWI2YTE3MWYwNTMxMGNjM2NhZDM3NjIiLCJib3JzLnRvbWwiOiJkZWU4 ODFkYzY5YjliNzgzNGU0ZWJhNWQ5NWMzZWQ1YTQxNmQ0NjI4ODE1YTE2N2Q2YTIyZDRjYjRmYjA2 NGI4IiwiYnVpbGQucnMiOiIwMTllZDI5YzQzOTg5NzgyZDhlZWMzYTk2MTY1NGNmYzE3MmQ3YTc4 OThkYTRlY2E4ZjY1NDcwMGFmN2UxOTg4IiwiY2kvYWxsLnNoIjoiMmFlNmIyNDQ1YjRkYjgzODMz ZTQwYjM3ZWZkMDAxNmM2Yjk4NzllZTk4OGI5YjNlZjk0ZGI1NDM5YTNlMTYwNiIsImNpL2FuZHJv aWQtaW5zdGFsbC1uZGsuc2giOiJiZGNmOTNiYTkwNDNhYzExODRlMmM1MDRhM2Q0MGM0N2M2YzE2 MDFkODgyZTBmMGEyN2E4ZWI1NmZiYWJjYjVmIiwiY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCI6 IjM0OTA0MzIwMjJjNWM4ZjVhMTE1YzA4NGY3YTlhY2ExNjI2Zjk2YzBjODdmZmI2MjAxOTIyOGM0 MzQ2YjQ3ZTQiLCJjaS9hbmRyb2lkLXN5c2ltYWdlLnNoIjoiZWJmNGU1ZGFhMWYwZmUxYjIwOTJi NzlmMGYzZjE2MWM0YzQyNzVjYjc0NGU1MjM1MmM0ZDgxYWI0NTFlNGM1YSIsImNpL2JlbmNobWFy ay5zaCI6ImI2MWQxOWVmNmI5MGRlYmE4ZmI3OWRlZTc0YzhiMDYyZDk0ODQ0Njc2MjkzZGEzNDZk YTg3YmI3OGE5YTQ5YTQiLCJjaS9kZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIjoi ZWM4ZWNmODJkOTIwNzI2NzZhYTQ3ZjBkMWEzZDAyMWI2MGE3YWUzNTMxMTUzZWYxMmQyZmY0NTQx ZmMyOTRkYyIsImNpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSI6ImFj ZTJlN2QzM2M4N2JjMGY2ZDM5NjJhNGEzNDA4YzA0NTU3NjQ2ZjdmNTFhYjk5Y2ZiZjU3NDkwNjc5 NmIwMTYiLCJjaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoi ZGE4OGMwZDUwZjE2ZGMwODQ0OGM3ZmRmMWZhNWVkMmNiZTU3NmFjZjllN2RkODViNWI4MTg2MjFi MmE4YzcwMiIsImNpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUi OiJiYjVmOGFlODkwNzA3YzEyODY1MjI5MGZmYzU0NDQ0NzY0M2JmMTIwMzdkZGQ3M2M2YWQ2OTg5 Zjg0OGNiMzgwIiwiY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJm aWxlIjoiMWFmYWVmY2JjMDViNzQwODU5YWNkNGUwNjdiYzkyNDM5YmU2YmNiZThmMmU5Njc4NDc0 ZmI0MzRiY2QzOThkOSIsImNpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJm aWxlIjoiMzcwZTU1ZDMzMzBhNDEzYTNjY2Y2NzdiM2FmYjNlMGVmOTAxOGE1ZmFiMjYzZmFhOTdh ZThhYzAxN2ZjMjI4NiIsImNpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9E b2NrZXJmaWxlIjoiODI4MmVhNzA3YTk0MTA5YmVlZDQ3YTU3NTc0NzU1ZTJkNTg0MDE3MzU5MDRh MDNmODVmYjY0YzU3OGM1M2I0ZiIsImNpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUiOiI0OTc5MjkyMjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUxMDFiMjdiZTY3YTZiOTc3 NTVkMDE5NmM2MzMxN2Y3YWJiIiwiY2kvZG9ja2VyL2k2ODYtdW5rbm93bi1saW51eC1nbnUvRG9j a2VyZmlsZSI6IjQ5NzkyOTIyMjY5ZjM3MWJkMjlkYTQ3MjdlOTA4NTEwMWIyN2JlNjdhNmI5Nzc1 NWQwMTk2YzYzMzE3ZjdhYmIiLCJjaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIjoiYjJlYmMyNTc5NzYxMmM0ZjgzOTVmZTlkNDA3NzI1MTU2MDQ0OTU1YmZiY2Y0NDIw MzZiN2Y1NWI0M2E1ZjlkYSIsImNpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2 NC9Eb2NrZXJmaWxlIjoiYjBjMTY5MmFjNjViYzU2ZGQzMDQ5NGIxOTkzZDhlOTI5YzQ4Y2M5YzRi OTIwMjliN2M3NTkyYWY2ZDRmOTIyMCIsImNpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4 LWdudWFiaTY0L0RvY2tlcmZpbGUiOiI0ZTkyNDljMTc5MzAwMTM4MTQxZDBiMmI3NDAxYjExODk3 ZjY0YWVkNjlmNTQxZjA3OGMxZGI0NTk0ZGYyODI3IiwiY2kvZG9ja2VyL21pcHNlbC11bmtub3du LWxpbnV4LW11c2wvRG9ja2VyZmlsZSI6IjMxNjRjNTJiMGRjYmIwMWFmYTc4MjkyYjE1YjVjNDM1 MDNjY2YwNDkxY2Y2ZWI4MDFlYzJiZjIyYWUyNzRlNTIiLCJjaS9kb2NrZXIvcG93ZXJwYy11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiYWU4Mjc0MzA5OTI4NjIwYTVkZDIzMmE0NjI2NGUw NTM5OWJiNzQ2Mjg4ZWJlZTM4NDNhNzFjNDE2MjIwOGNjMyIsImNpL2RvY2tlci9wb3dlcnBjNjQt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImJhNWZiYzRiZjNiYjkxY2Q1MGI0MDcyNDhk YTMxMjI1NjgxZWZjOGYyYmU3NjE4ZjRhMGFiMTIxOWIzODk1MDgiLCJjaS9kb2NrZXIvcG93ZXJw YzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjUzZjk3ZjhiOWI1YWNhNzUzNGI5 YmY5ZWE0OGYzNTE3NTA1MmNkMmE1NjBhMTA3ZTAxYWQyNzA3MzFjMDMyZmMiLCJjaS9kb2NrZXIv czM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6Ijg5ZjU0MjFjZjA2ZDgxN2FlOTQw OTI5ODdlOTE0NDcyZWYzODRhZDJkMWZmZjI3MzViZTNkODc4NmJhMTEyMTQiLCJjaS9kb2NrZXIv c3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiODNlYmExOTU3NjQ4NmY5ZDEw ZDdjMDM3ZDY2OWQ3MmIzMWE2NTU2NWE0NzlmMzBiMjJhYWIzNmFhYTJmZjhkYyIsImNpL2RvY2tl ci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIjoiYzJkZWNkNTU5MWJk N2EwOTM3ODkwMWJlZjYyOWNkOTQ0YWNmMDUyZWI1NWU0ZjM1Yjc5ZWI5Y2I0ZDYyMjQ2YSIsImNp L2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIjoi NTE5NTVhOGJmM2M0ZDQ0MGY0NzM4MmFmNmY1NDI2ZWJmZjk0YWIwMWEwNGRhMzYxNzViYWJkYTlh MDU3NzQwZiIsImNpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUiOiJi OTgyYjQyMWM3MGRiNDc2OTAwZGY1YjYwZTE5ZWY4ODE1ZTZjN2RhZTIyNjg3MjI1MDAyNzgwY2Fi N2IwYTc2IiwiY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUiOiJhMTdl YmRiMTg2Y2UyZGQ2YjYyMTAwYjVhNDM5ZTA1YTFhYjlhZGFiMTEzZTI1MDg4NDNlMTIxYWFlYTUy OTkyIiwiY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJm aWxlIjoiNDRiNjIwM2Q5MjkwYmZkYzUzZDgxMjE5ZjA5MzdlMTExMDg0N2EyM2RkOTgyZWM4YzRk ZTM4ODM1NGYwMTUzNiIsImNpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZSI6IjdmNGUzY2E1ZmEyODhlYTcwZWRiNGQxZjc1MzA5NzA4Y2QzMGIxOTJlMmU0NDQ0ZTYx YzRkNWIzYjU4Zjg5Y2YiLCJjaS9kb3guc2giOiI0MzRlOTYxMWM1MmUzODkzMTJkMmIwMzU2NGFk ZjA5NDI5ZjEwY2M3NmZlNjZhODY0NGFkYjEwNDkwM2I4N2I3IiwiY2kvbGludXgtczM5MHguc2gi OiJkNmI3MzJkNzc5NWI0YmExMzEzMjZhZmY4OTNiY2E2MjI4YTdkMmViMGU5NDAyZjEzNTcwNTQx M2RiYmUwZGNlIiwiY2kvbGludXgtc3BhcmM2NC5zaCI6ImM5Mjk2NjgzOGIxYWI3YWQzYjdhMzQ0 ODMzZWU3MjZhYmE2YjY0N2NmNTk1MmU1NmYwYWQxYmE0MjBiMTMzMjUiLCJjaS9sbGQtc2hpbS5y cyI6IjNkN2Y3MWVjMjNhNDllMmI2N2Y2OTRhMDE2ODc4NmY5YTk1NGRkYTE1ZjVhMTM4ODE1ZDk2 NjY0M2ZkM2ZjYzMiLCJjaS9tYXhfbGluZV93aWR0aC5zaCI6IjBhMTUxOGJiYTRjOWVjYWE1NTY5 NGNiMmU5OTMwZDBlMTljMjY1YmFhYmY3MzE0M2YxN2Y5Y2YyODVhYWE1YmIiLCJjaS9ydW4tZG9j a2VyLnNoIjoiOTJlMDM2MzkwYWQ5YjBkMTZmMTA5NTc5ZGYxYjVjZWQyZTcyZTlhZmVhNDBjN2Qw MTE0MDBlYmQzYTJhOTBkZSIsImNpL3J1bi5zaCI6IjlhZmFiYzk2MWUwZWU4M2I4NzIwMWYzZmQ1 NTRjMTllNWIwYzM2ZjNhOTVkMDEzNTk1ZTI3NmM5ODgyZGQwYTQiLCJjaS9ydW5fZXhhbXBsZXMu c2giOiJkMWEyM2M2YzM1Mzc0YTA2NzhiYTUxMTRiOWI4ZmVmZDhiZTBhNzllNzc0ODcyYThiZjA4 OThkMWJhY2ExOGQwIiwiY2kvcnVudGVzdC1hbmRyb2lkLnJzIjoiMTQ1YThlOTc5OWE1MjIzOTc1 MDYxZmU3ZTU4NmFkZTU2NjllZTQ4NzdhN2Q3YTRjZjZiNGFiNDhlOGUzNmM3YyIsImNpL3NldHVw X2JlbmNobWFya3Muc2giOiJmYWUzOTYwMDIzZjZmM2QxMzg4Y2QyYWQyMmZkYmFiNGIwNzVmMWYy OWRkNDI5MmQ3OTk0YTIwNzgzYmViNmNmIiwiY2kvdGVzdC1ydW5uZXItbGludXgiOiJjOGFhNjAy NWNmZjUzMDZmNGYzMWQwYzYxZGM1ZjlkNGRkNWExZDE4OWFiNjEzZWY4ZDRjMzY3YzY5NGQ5Y2Nk IiwiY29udHJpYnV0aW5nLm1kIjoiMmQyNjI5MzEwYWQ0ZDQ2NGM0ODJiZGJiNTgxOWYwZDZjZTIy M2M1NzZhZWVmMmNkY2U2YTFmNjg1NzA4NWVhNSIsInBlcmYtZ3VpZGUvLmdpdGlnbm9yZSI6ImZl ODJjN2RhNTUxMDc5ZDgzMmNmNzQyMDBiMGIzNTliNGRmOTgyOGNiNGEwNDE2ZmE3Mzg0ZjA3YTJh ZTZhMTMiLCJwZXJmLWd1aWRlL2Jvb2sudG9tbCI6IjExNWE5ODI4NDEyNmM2YjE4MDE3OGI0NDcx MzMxNGNjNDk0ZjA4YTcxNjYyZWUyY2UxNWNmNjdmMTdhNTEwNjQiLCJwZXJmLWd1aWRlL3NyYy9T VU1NQVJZLm1kIjoiM2UwM2JmZmM5OTFmZGMyMDUwZjNkNTE4NDJkNzJkOWQyMWVhNmFiYWI1NmEz YmFmM2IyZDU5NzNhNzhiODllMSIsInBlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcyI6IjI5YWZiMDg4 MzNiMmZlMjI1MGYwNDEyZTFmYTExNjFhMjQzMmEwODIwYTE0OTUzYzg3MTI0NDA3NDE3Yzc0MWEi LCJwZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQiOiI1ZTQ5OTFmZjU4YTE4M2VmMGNkOWZk YzFmZWI0Y2QxMmQwODNiNDRiZGY4NzM5M2JiYjA5Mjc4MDhlZjNjZTdkIiwicGVyZi1ndWlkZS9z cmMvZmxvYXQtbWF0aC9hcHByb3gubWQiOiI4YzA5MDMyZmEyZDc5NWEwYzVkYjE3NzU4MjZjODUw ZDI4ZWIyNjI3ODQ2ZDA5NjVjNjBlZTcyZGU2MzczNWFkIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQt bWF0aC9mbWEubWQiOiIzMTEwNzZiYTRiNzQxZDYwNGE4MmU3NGI4M2E4ZDdlOGMzMThmY2JkN2Y2 NGM0MzkyZDFjZjVhZjk1YzYwMjQzIiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZCI6 IjA0MTUzZTc3NWFiNmU0ZjBkNzgzN2JjYzUxNTIzMGQzMjdiMDRlZGZhMzRjODRjZTljOWUxMGVi YWVlZjJiZTgiLCJwZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQiOiIwNzk4ODczYjhl ZWRhZWRhNWZlZDYyZGM5MTY0NWI1N2MyMDc3NWEwMmQzY2Q3NGQ4YmQwNjk1OGYxNTE2NTA2Iiwi cGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9uLm1kIjoiOWY1YTE5ZTllNjc1MWYyNWQyZGFhZDM5 ODkxYTBjYzYwMDk3NDUyN2VjNGM4MzA1ODQzZjk2MTg5MTA2NzFiZCIsInBlcmYtZ3VpZGUvc3Jj L3Byb2YvbGludXgubWQiOiI0NDc3MzFlYjVkZTdkNjkxNjY3MjhmZGJjNWVjYjBjMGM5ZGI2Nzhl YTQ5M2I0NWE1OTJkNjdkZDAwMjE4NGMwIiwicGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQiOiJm NTZkNTRmM2QyMGU3YWE0ZDMyMDUyMTg2ZTgyMzdiMDNkNjU5NzFlYjVkMTEyODAyYjQ0MjU3MGZm MTFkMzQ0IiwicGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQiOiI4YTY1MGMwZmQ2ZWRl MDk2NDc4OWJiNjU3NzU1N2VlZWYxZDgyMjZhODk2Nzg4NjAyY2U2MTUyOGUyNjBlNDNjIiwicGVy Zi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kIjoiNjE1Zjg4ZGNhMGE3MDdi NmM0MTZmYTYwNTQzNWRkNmUxZmI1MzYxY2M2Mzk0MjljYmY2OGNkODc2MjRiZDc4YiIsInBlcmYt Z3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kIjoiMTcwNzc3NjBmZjI0YzAwNmI2 MDZkZDIxODg5YzUzZDg3MjI4ZjQzMTFmM2JhM2E1NzRmOWFmZGVhY2Q4NjE2NSIsInBlcmYtZ3Vp ZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lubGluaW5nLm1kIjoiN2VkMWQ3MDY4ZDgxNzNhMDBkODRj MTZjZmU1ODcxY2Q2OGI5ZjA0ZjhkMGNjYTJkMDFlYmM4NDk1N2ViZjJmNiIsInBlcmYtZ3VpZGUv c3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kIjoiYzRiMzcxODQyZTAwODZkZjE3ODQ4OGZl Yzk3ZjIwZGVmOGYwYzYyZWU1ODhiY2QyNWZkOTQ4YjliMWZhMjI3ZSIsInBlcmYtZ3VpZGUvc3Jj L3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQiOiI4MzU0MjVmNWVlNTk3ZmIzZTUxZDM2ZTcyNWE4 MWViZWUyOWY0NTYxMjMxZDE5NTYzY2Q0ZGE4MWRiYjFjZmNiIiwicGVyZi1ndWlkZS9zcmMvdGFy Z2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kIjoiMDExOTdhY2Y2ZjBhZGVjOGRiMzJiODU5MTgxMWY2 OWNlY2I2NTU1YTJiMDVkYzVkNWVjMjdkMGUzZjdiMDY1ZSIsInBlcmYtZ3VpZGUvc3JjL3ZlcnQt aG9yLW9wcy5tZCI6ImM2MjExYzBlZTkxZTYwNTUyZWM1OTJkODlkOWQ5NTdlZWRjMjFkZWUzY2Jk ODllMWFkNjc2NWVhMDZhMjc0NzEiLCJydXN0Zm10LnRvbWwiOiJkOTlhNDNmM2Y4ZWY5ZTQyNWNm MDFjMzMzZmJhOWYwMDUxZjg4OGY1ZDg3YWI0ZThmNjNjMmY3ZDBmZTY2MjBmIiwic3JjL2FwaS5y cyI6ImJiMTc5NWU5NjU3YTgyOThkMzdkMjM0OWI0NTQ0M2YwOGU5ZTQ1NTM5OWFkNGI3MjcwMTg2 MDA3Mjg0NzhjMTAiLCJzcmMvYXBpL2JpdF9tYW5pcC5ycyI6IjI3ZjMwOTdmYzBhMTFlM2M0MTA3 MDQ5ZDk3NzllNjgwZGNkNjc0MDdhMDY2NzA0MDA4YTZiOWM0ZmQ1MjllMDUiLCJzcmMvYXBpL2Jp dG1hc2sucnMiOiIwNThlYmMzOGEyZTAzNjNmMDdhNDQxZDNlOWE0Nzc1YWFlYzU3Y2NiMTcwYTBl NWQ1ZWZhNWRjNDc0M2FiMDdiIiwic3JjL2FwaS9jYXN0LnJzIjoiMDNiOTRhM2QzMTZhYzdiN2Jl NzA2ODgxMDA0NDkxMWU5NjVlODg5YTBhY2U3YmFlNzYyNzQ5Y2E3NGE5Mjc0NyIsInNyYy9hcGkv Y2FzdC9tYWNyb3MucnMiOiJiMGExNGQwYzgzYWQyZWJiN2EyNzUxODBmNmQ5ZTNmMmJjMzEyYmE1 N2E3ZDNkNmMzOWZhZDRlMGYyMGY5NDA4Iiwic3JjL2FwaS9jYXN0L3YxMjgucnMiOiJlZGQwOTk0 ZWZhYzQzNzlkZmYyNmUxNzg0MjNhNTJkYmIzZmZlYjM4YjFmYzk3Y2FlOTc1ZDc0NGMwMGI0ZmI2 Iiwic3JjL2FwaS9jYXN0L3YxNi5ycyI6Ijk2YmQ5OGMyZDIxYjA2NjNhYmU2YzBhYjMzMDA1YjFm YTY5M2YzZGI3ZWU2Nzk1MzUxMzkxMzQzODYzNDg0ZGEiLCJzcmMvYXBpL2Nhc3QvdjI1Ni5ycyI6 IjhjMzFmZTkxZjVlNzhlZjczN2RmYmE2OTc5Y2MxMjQwMjEwY2IwOTRhODlkMjg0ZmU0NTliZjhh OTkxY2EyNGIiLCJzcmMvYXBpL2Nhc3QvdjMyLnJzIjoiYTk5YTc5ZGQ4NGQyYTVlNmFkZjlkYjk4 NzA1Njc1OTE1YmQwM2ZkMTI4N2Q0ODljN2ZlMzhlODRkN2U0YTA4NiIsInNyYy9hcGkvY2FzdC92 NTEyLnJzIjoiYzBkZDUyNmY0MWVkN2I4YTcxYzM3NDNkOTEyNjc1NTRlYzBhMGM3NTgzNGNjYzJl M2VjYjBlZjMwMDRhZjY0MiIsInNyYy9hcGkvY2FzdC92NjQucnMiOiI2NTcyZmRiYTJhMTI0MWE2 Y2Q2NjZkM2YwY2NlMzMwNmNkMmNiN2U1ZTIzNjE3MmU1OWQ1ZDQzNTFjOGE4OGFmIiwic3JjL2Fw aS9jbXAucnMiOiIzNTdjM2EyYTA5YzZkNDYxMWMzMmRkN2ZhOTViZTJmYWU5MzNkNTEzZTIyOTAy NmVjOWI0NDQ1MWE3N2I4ODRlIiwic3JjL2FwaS9jbXAvZXEucnMiOiI2MGY3MGYzNTViYWU0Y2I1 YjE3ZGI1MzIwNGNhY2MzODkwZjcwNjcwNjExYzE3ZGY2MzhkNGMwNGY3Y2M4MDc1Iiwic3JjL2Fw aS9jbXAvb3JkLnJzIjoiNTg5ZjcyMzQ3NjFjMjk0ZmE1ZGY4ZjUyNWJjNGFjZDVhNDdjZGI2MDIy MDdkNTI0YTBkNGUxOTgwNGNkOTY5NSIsInNyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMiOiI5MDJj Y2I4YWEwMWZkNTczOGIzMGJhMGI3MTI2NjljMjFkNDgwMTk1ODkwN2UwM2JhZDIzNDMyYzdkYmEw MTk4Iiwic3JjL2FwaS9jbXAvcGFydGlhbF9vcmQucnMiOiI5ZGIwYzM3ZDc0MzRjZGZjNjJkOGQ2 NjkxMmU5NzJmYTNkOGMxMTVhYjJhZjA1MWE2ZjQ1ZTQxNGJkM2U0ZjFjIiwic3JjL2FwaS9jbXAv dmVydGljYWwucnMiOiJkZTNkNjJmMzhlYmE4MTcyOTlhYTE2ZjFlMTkzOTk1NGM5YTQ0N2UzMTY1 MDkzOTc0NjVjMjgzMDg1MmJhMDUzIiwic3JjL2FwaS9kZWZhdWx0LnJzIjoiNjdiZjIxYzEzNDEy N2QxMmE3MDI4YzhiODhhNTdmMGNlZWU4Y2NiZDc0OTc2ZGE4Y2E3NGViOWYxNmExNzRkNSIsInNy Yy9hcGkvZm10LnJzIjoiNjdmYjgwNGJiODZiNmNkNzdjZjhjZDQ5MmI1NzMzY2U0MzcwNzFiNjZm ZTMyOTcyNzhiOGE2NTUyYzMyNWRkYSIsInNyYy9hcGkvZm10L2JpbmFyeS5ycyI6IjAyYjJiMjg3 Zjc0MDRmOGE5ODM4MTNjZjcwYzg3MTA4YzhkYTM4MzU1NzhiNjNhYjMwMzExNjg4NWY2MDk0MTMi LCJzcmMvYXBpL2ZtdC9kZWJ1Zy5ycyI6IjU2ZTFjM2JkYzA5Mjc0NzM0NGZmZmFhZmZmOWRhNzE2 M2VlNzgyNzg1N2Y2ZmI3Y2IxYzk5MjNlY2E0ZjZmYTAiLCJzcmMvYXBpL2ZtdC9sb3dlcl9oZXgu cnMiOiI1NThmZDU5MmY3ZjQ4NTcxMmZiMDUxNTA5Y2VjYzcxNzRhMjFlNmJmNjJlNWNlNjQ3NjZl NzVhZmM5N2JiOGUxIiwic3JjL2FwaS9mbXQvb2N0YWwucnMiOiIzYjJlNzA4NzdhNGYzNjhjNzcw NGY4ZTI1NDIzNmMwMTRjMzY1Yzc0ZDkzMzcxYzFmZWI1ZjAzMGU2YzY2NDIyIiwic3JjL2FwaS9m bXQvdXBwZXJfaGV4LnJzIjoiMmE0NDJmNjY2YmM4MGUyMmQ0MWY5MDNmODgxMjM4ZmUxMTRkZDQ5 MzQ0YzNlZDY5ODQ5MjUwZTg1M2NhZmM1ZCIsInNyYy9hcGkvZnJvbS5ycyI6IjJlNTk5ZDgzMjlj YjA1ZWFmMDYyMjRjYzQ0MTM1NWM0YjdiNTEyNTRmYzE5MjU2NjE5MzMzYmU4YzE0OWQ0NDQiLCJz cmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycyI6IjVkMmNjNzAwNTY4Mzc2YmY2ZWUxZmU1ZTQwNmRh M2JjMmQ0ODhmZjE1NTY0NGJmNzNkMDZhMTM0OWI3M2ZjNTMiLCJzcmMvYXBpL2Zyb20vZnJvbV92 ZWN0b3IucnMiOiI5NzY0MzcxYWE5ZTYwMDVhYWNlNzRkZWExNGY1OWU1NjExYTA5NWI3Y2Y0Mjcw Nzk0MDkyNDc0OTI4MmM1MmYwIiwic3JjL2FwaS9oYXNoLnJzIjoiNTA3NmVjZTg3OTY5NTkyYzg3 NjQ4NmY1YjFlYThhZmZiZWFlYzM3OWQxYTE0YTMwODU5ZTBhYTU1OTIwMTlkZSIsInNyYy9hcGkv aW50b19iaXRzLnJzIjoiOGY4MDExNjI3MjUwZTIzZTY2YjVjMGNhNjQxYWZiMDc5ZDgyMzI2NzRi YjEzNTQxNDBiNTM2YmRiZWE2M2U1NSIsInNyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMu cnMiOiJlNzQ0NTAyMWYzOTA4MzI2YmZlZTc1ODgzNWU1ZmM1YWQ1NmFhMWJhYTc3ZmMxYzU4YWJl NDM1MGM2NmM2NzBhIiwic3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIjoiYmI0ZmU5OWJlMmFm NmEyMWQ4MDVlZmFiNDRjOGU0ZTYxYTdiMmFkYjQyYTY1NTA0YTBjZjI2ZDEzZWZkYWRjZCIsInNy Yy9hcGkvaW50b19iaXRzL3YxMjgucnMiOiIxNDVhNDQ5MjJiMDlhNWNhNWI2MmQ4OGE0NjFkMzI3 ZDM5OWE5OTdhMTVkYjRiMTFkN2IxN2U1NTRhOWZhNGMwIiwic3JjL2FwaS9pbnRvX2JpdHMvdjE2 LnJzIjoiZjRmNGY2MWJhODhhYTUxYjE1OGVjNTZjYTNkY2UyMzQzNDlhZWEwZGFmMmIzMDI5YTE0 YWI1MTI1ZDFlNDFlNSIsInNyYy9hcGkvaW50b19iaXRzL3YyNTYucnMiOiI4Y2VhOWM1ZDk4MDlm MTEzMjNjYjdjZGM1M2I4M2RmNTkzZmQxN2NhZjkyNjI1MWU0MTJhZTk3NzdiZWQ1NDdmIiwic3Jj L2FwaS9pbnRvX2JpdHMvdjMyLnJzIjoiOTA1YmE2ODNkMzQyZmEzMmY0MjAyYjgwYmI0NjUzMDgw N2JkMGE1YjU4OGY2YzJlOGM5ZjQ3NTIyM2M0Nzc3NSIsInNyYy9hcGkvaW50b19iaXRzL3Y1MTIu cnMiOiJlMjVhZmExZmJmMDg4YTVkNThlN2Q3NWQxOTdiNmNkNGM1NjYzN2VhMjg1NDJiYTE4ZTQ2 YTQ1MWYyOWQwNGU3Iiwic3JjL2FwaS9pbnRvX2JpdHMvdjY0LnJzIjoiZDYyMzgwMjJjY2ZmN2I5 MmU1NWIzZjYwMTdmYzI2OWFjYjZmMzYzMzBhNmQ3ZThmYjM4OTg1M2EwZjFiNjQ3OCIsInNyYy9h cGkvbWF0aC5ycyI6IjhiMmEyZmM2NTE5MTdhODUwNTM5Zjk5M2FhMGI5ZTViZjRkYTY3YjExNjg1 Mjg1YjhkZThjZGNhMzExNzE5ZWMiLCJzcmMvYXBpL21hdGgvZmxvYXQucnMiOiI2MWQyNzk0ZDY4 MjYyYTEwOTBhZTQ3M2JkMzA3OTNiNWY2NWNmNzMyZjMyYTY2OTRhM2FmMmNlNWQ5MjI1NjE2Iiwi c3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycyI6IjViNmIyNzAxZTJlMTExMzViN2NlNThhMDUwNTJl YTgxMjBlMTBlNDcwMmM5NWQwNDZiOWQyMWI4MjdiMjZiZjgiLCJzcmMvYXBpL21hdGgvZmxvYXQv Y29uc3RzLnJzIjoiNjMwMmM5MjYxZGE0MjkxZDE0NGQ1YmI1MzQ5M2NkZDA3MzQ5OGZlYjQwOTU1 ZmI2ODYwZWEzYzRkMDZjOTc4YSIsInNyYy9hcGkvbWF0aC9mbG9hdC9jb3MucnMiOiI0YzJkZDcx NzM3MjhlZjE4OTMxNGYxNTc2Yzk0ODZlMDNiZTIxYjdkYTk4ODQzYjJmOTAxMTI4MmE3OTc5ZTMx Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L2V4cC5ycyI6IjdjNmQ1ZjFlMzA0ZjQ5OGEwMWNmYTIzYjky MzgwYzgxNWQ3ZGEwYWQ5NGVhZTM0ODM3ODNiYzM3N2QyODdlZWYiLCJzcmMvYXBpL21hdGgvZmxv YXQvbG4ucnMiOiI1NGM3NTgzZjNkZjc5M2IzOWZmNTc1MzRmYWRlMjdiNDFiYjk5MjQzOWU1ZGMx NzgyNTJmNWNhMzE5MGEzZTU0Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMiOiI2MmNh Yzc3NjYwZDIwMTU5Mjc2ZDRjOWVmMDY2ZWI5MGM4MWNiZGRiODA4ZThlMTU3MTgyYzYwNzYyNWFk MmViIiwic3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIjoiYmFlMDU2ZWU5ZjNhNzBkZjM5 ZWMzYzNiMmY2NDM3YzY1MzAzODg4YTdiODQzZWYxYTViY2YxZjVhY2EwZTYwMiIsInNyYy9hcGkv bWF0aC9mbG9hdC9wb3dmLnJzIjoiOWRkYjkzODk4NGIzNmQzOWQ4MmE4MmY4NjJmODBkZjhmN2Zi MDEzZjFkMjIyZDQ1Njk4ZDQxZDg4NDcyZjU2OCIsInNyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUu cnMiOiI1ODkyMjU3OTRmZjFkYmYzMTE1OGRmZjY2MGU2ZDQ1MDllY2M4YmVmYmI1N2M2MzM5MDBk ZWE1YWMwYjg0MGQ2Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycyI6ImEzMmFiZGNjMzE4 ZDdjY2M4NDQ4MjMxZjU0ZDc1Yjg4NGI3Y2JlYjAzYTdkNTk1NzEzYWI2MjQzMDM2ZjRkYmYiLCJz cmMvYXBpL21hdGgvZmxvYXQvc2luLnJzIjoiY2JkMzYyMmI3ZGY3NGYxOTY5MTc0MzAwMWM4Y2Y3 NDdhMjAxZjg5NzdhZDkwNTQyZmVlOTE1ZjM3ZGNkMWU0OSIsInNyYy9hcGkvbWF0aC9mbG9hdC9z cXJ0LnJzIjoiMGM2NmQ1ZDYzZmIwOGU0ZDk5YzZiODJhODgyOGU0MTE3M2FmZjFhYzlmYTFhMjc2 NGExMWZhYzIxN2NjZjJhYyIsInNyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycyI6IjczMWUxYzlm MzIxYjY2MmFjY2RkMjdkYWNiM2FhYzJlODA0M2I3YWVjYjJmMjE2MWRkZTczM2JkOWYwMjUzNjIi LCJzcmMvYXBpL21pbmltYWwucnMiOiIxZjIyYmNjNTI4NTU1NDQ0ZTc2ZGU1NjllYzBhZTIwMjli OWFlOWQwNDgwNWVmZWFmYTkzMzY5YzgwOTgwMzZiIiwic3JjL2FwaS9taW5pbWFsL2l1Zi5ycyI6 IjgxOWNmZjI2ZDNlMTk2ZjgwNzY0NWJjYzFkNzllYjI3ZDlmMTc1ZWRiODk5MTBmMjI3NGQ1MmEx ZTkxM2NkMTEiLCJzcmMvYXBpL21pbmltYWwvbWFzay5ycyI6IjBjYWUxMGFlMWZjNjVmNTA3MGU2 ODZjMGM3OWJmYmEyN2I4NmIzM2Q2YzM5OTM2N2JkNDg0OGZiMzY3ZGNlYzQiLCJzcmMvYXBpL21p bmltYWwvcHRyLnJzIjoiZjc0ZDdhNDkyNWQ3MjA5ZmFlYmMyNmVhODMxNTI1OWNiMmMwOGVjNjU3 ODlhNzA4NjllNTk1NjQ5YTliYzM5YSIsInNyYy9hcGkvb3BzLnJzIjoiM2UyNzNiMjc3YTBmMzAx OWQ0MmMzYzU5Y2E5NGE1YWZkNDg4NWQ1YWU2ZDIxODJlNTA4OWJiZWVjOWRlNDJlZSIsInNyYy9h cGkvb3BzL3NjYWxhcl9hcml0aG1ldGljLnJzIjoiZDJkNWFkODk3YTU5ZGQwNzg3NTQ0ZjkyN2Uw ZTdjYTQwNzJjM2U1OGIwZjRhMjMyNDA4MzMxMmIwZDVhMjFkNyIsInNyYy9hcGkvb3BzL3NjYWxh cl9iaXR3aXNlLnJzIjoiNDgyMjA0ZTQ1OWNhNmJlNzk1NjhlMWM5ZjcwYWRiZTJkMjE1MTQxMmRk ZjEyMmZiMjE2MWJlOGViYjUxYzQwYyIsInNyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2Uu cnMiOiJjMjUwZjUyMDQyZTM3YjIyZDU3MjU2YzgwZDQ2MDQxMDRjZmQyZmJlMmEyZTEyN2M2NzYy NjcyNzBjYTVkMzUwIiwic3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycyI6ImM0NzczZDQzNWMz ZjlkYTQ0NTQzMjdlNmZiYjJiNWI0MWExYzBlYmIxY2NhNzM3MmU2OWRjN2EzNDRhMWI2ZTQiLCJz cmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycyI6ImRkY2ExNWQwOWRkZWVmNTAyYzJlZDY2 MTE3YTYyMzAwY2E2NWQ4N2U5NTllOGI2MjJkNzY3YmRmMWMzMDc5MTAiLCJzcmMvYXBpL29wcy92 ZWN0b3JfYml0d2lzZS5ycyI6ImIzOTY4ZjcwMDViNjQ5ZWRjYzIyYTU0ZTIzNzliMTRkNWVlMTkw NDVmMmU3ODQwMjk4MDU3ODFhZTA0M2I1ZWUiLCJzcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWlu X21heC5ycyI6Ijc2YmY4Y2I2MDdlMmM0NDI5MjNjMWRhMTA2MWE2YjgwZDc0MmQ2MDc0MDgwMzNj MmEzNzYxMTYxMTE0Y2YyYTAiLCJzcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMiOiJh Mzc4Nzg5YzZmZjliMzJhNTFmYmQwYTk3ZmZkMzZlZDEwMmNkMWZlNmEwNjdkMmIwMjAxN2MxZGYz NDJkZWY2Iiwic3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycyI6IjUwNTJkMTg1MTdk NzY1NDE1ZDQwMzI3ZTZlOGU1NWEzMTJkYWFjYTBhNWUyYWVjOTU5YmZhNTRiMTY3NWY5YzgiLCJz cmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzIjoiNWM2MmY2YjAyMjE5ODNjZGJkMjNjZDBhM2FmMzY3 MmU2YmExMjU1ZjBkZmU4YjE5YWFlNmZiZDY1MDNlMjMxYiIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9y b3RhdGVzLnJzIjoiNmMzZjc2MWQ5ZDU1MWY2MzY1YThhOTU1MzljZWFjZTRiMWEwMmUwYjEyZDE0 NGYzNGVkNjhkYjk0ZTg4Y2ZmNCIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMiOiJlNTEw YmUxNDEyN2MwZmZkNThhMjU3M2EzOTcwMWRhMzU1N2Q2NmJlZGVjMDk4MzdhYzhiYmQ0NGQ1Nzlk YTAwIiwic3JjL2FwaS9wdHIucnMiOiI4YTc5MzI1MWJlZDYxMzBkY2ZiMmYxNTE5Y2VhYTE4Yjc1 MWJiYjE1ODc1OTI4ZDBmYjZkZWI1YTVlMDc1MjNhIiwic3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0 ZXIucnMiOiIzZDYxNGY5ZDViNGNhMjAxYTlmN2U0NmFmNDQwNWUxZDJjMjhlY2VlMTYyMDI5N2My M2I1MmUzN2I5MmNjMGVhIiwic3JjL2FwaS9yZWR1Y3Rpb25zLnJzIjoiYWU1YmFjYTgxMzUyZWNk NDQ1MjZkNmMzMGMwYTFmZWVkYTQ3NWVjNzNkZGQzYzNlYzZiMTRlOTQ0ZTU0NDhlZSIsInNyYy9h cGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzIjoiOGJmOTEwYWUyMjYxODhiZDE1ZmM3ZTEyNWYwNThj ZDI1NjZiNjE4NmZjZDBjZDhmZDAyMGYzNTJjMzljZTEzOSIsInNyYy9hcGkvcmVkdWN0aW9ucy9m bG9hdF9hcml0aG1ldGljLnJzIjoiNDdhNTY3OTg5NmRiMmNiYjU2YzMxMzcyZmU0MjE0M2RhMDE1 YjZiZWFlN2RiNWQyZjNhMDMwOWRkZjQyN2FlMSIsInNyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2Vy X2FyaXRobWV0aWMucnMiOiJjMmRmM2NmNzQ5M2NjYTQxNzRmMmM2NWFlYTQyMmEzZDIwZDhhMjNh ZjAzZjhkNTdjZWY3MmMxOWZlZThmMjBkIiwic3JjL2FwaS9yZWR1Y3Rpb25zL21hc2sucnMiOiJk YjgzMzI3YTk1MGUzM2EzMTdmMzdmZDMzY2E0ZTIwYzM0N2ZiNDE1OTc1ZWMwMjRmM2UyM2RhODUw OTQyNWFmIiwic3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMiOiI2YWY4YzlhYTQ1YzY5OTYx YjFiNmZjMjA1Mzk1ZjQ3NjdkNDQyMTg2OWZiMTA1ZmIzZDU2M2M1NjA1ZmMxM2NkIiwic3JjL2Fw aS9zZWxlY3QucnMiOiI2YjA3ZTdlODAyNmRmNTYxZjczMDcyMjFhODk2ZjBmYmIyNzI1MzZmNDFi OTEwOTA0MGFjMDk0YzI0YzY5MzMxIiwic3JjL2FwaS9zaHVmZmxlLnJzIjoiYmU3ZmFmZjliNTk2 NTQ5MjZkZjEyODk3YjJmOThhNGJhYTdkNmFjZjJhZjFhYWY5M2QzODhiYTZlOTZmODNlYyIsInNy Yy9hcGkvc2h1ZmZsZTFfZHluLnJzIjoiYmZlYTVhOTE5MDViMzE0NDRlOWVmN2NhNmVkZGI3YTk2 MDZiN2UyMmQzZjcxYmI4NDJlYjI3OTVhMDM0NjYyMCIsInNyYy9hcGkvc2xpY2UucnMiOiJlZTg3 NDg0ZThhZjMyOTU0N2I5YTVkNGYyYTY5ZThiZWQ2ZWExMGJiZDk2MjcwZDcwNjA4Mzg0M2Q0ZWVh MmFjIiwic3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzIjoiMzczNTM2MzAwMDczNzEwNGE4ZmM1 ZjM5NGFkOGMzMWVjMTRlODg1OTUyYmQ1NzY0N2RkMmE4NDAwMWFlZTBhNiIsInNyYy9hcGkvc2xp Y2Uvd3JpdGVfdG9fc2xpY2UucnMiOiI3OWQwOWM2NGQwMDcyNDc4M2M3N2M0MmU0NTgzZWVlYzk3 YjE4ZGI5NGNmMmFlMTQ2YjU2NGMzZjg1Y2ZlZmQ2Iiwic3JjL2FwaS9zd2FwX2J5dGVzLnJzIjoi MDViNDI2MmVhYWRlMmY2M2U2Y2QzYjc4MGMxOWEwM2FlY2QyNDU5ZDRjYzQzNjAwNTFmYzA4ODg4 NzE3OWE2ZSIsInNyYy9jb2RlZ2VuLnJzIjoiZGI0ZjIzMmZiOWY1NzI4ZGIzMTBiODdkYzhjNDcz M2JlNDhhZmFjYWIxMDUzNzk4YzA2MTA2YmVmOWE0MmIwNSIsInNyYy9jb2RlZ2VuL2JpdF9tYW5p cC5ycyI6IjUyNWVhNmZmN2FkMWUwNDNiNmY2MTM2OTkyMTY2ZjE4MDNlZDU1NjNiN2Y2ZmMyOTJj MWM0MDI1N2QyMGUyNjQiLCJzcmMvY29kZWdlbi9sbHZtLnJzIjoiMTJlNzQ4YjQ5MjhjM2JlNmNj MTJiNDE2NWMzMDQxYTNkMGVmY2NmNjE5NTMzOGVjZDNkODhiOGZkYjBiYmNjNyIsInNyYy9jb2Rl Z2VuL21hdGgucnMiOiJkZmNmMDJhZDM0ZTJmZGZlMjJjM2YxY2MyODIyMDAxY2M4OTVlNjUwMzFi NGQwNmU1ODVlNTA0NzgzOWZlYmI3Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC5ycyI6IjJjMWNi Y2UxNTViYzUyN2NlMzRkNDcyYzBmZWY2YmMzZGFkYjc5Y2Q3YTM1N2RkN2FhNWIxZWJlYjFkNzdh MTMiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycyI6ImQ1YWFhZGNmNTQwYmRiOWI0MjY0 ZGNhNjQ3MWEyNTVmZDdiZjUwOWU3NjNiZWYwMjM5YzAxNDRhNjg0NjZmZWEiLCJzcmMvY29kZWdl bi9tYXRoL2Zsb2F0L2Nvcy5ycyI6IjE3ZjI4ZDI5MDBjODUyZGNhMjIxZmE5YzkyYTljZDVmZTdm ZDJkZjhkNDI3YmJjNjAyMTZjNzQ5YjJiZTAxM2QiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nv c19waS5ycyI6ImRiYWY5ZjQ0M2Y5ODQ2YTQ5MWQ0ZWM1MjIxMGE3YjU4MzVkZDU5M2IwMzM2NmUz MTM1YjA1YzM3ZDcwZjlkNmMiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyI6ImQzMDAw NThhNGJjYzdhZTc5NzZmMjE2ZjgxOTAyY2Q3M2E5ZTYwM2FkNjM4ODBkZmYzYmJjODY2YzI3YTlm MzciLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzIjoiYzg1MWUyMTFlNDNmODI1NjA5M2Jh NzViMDNhZTBjMzA3Yzk5NjJlZTY2ZDk0ZjA5YjRkZDgwMDY4MTkwY2JkZiIsInNyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvbWFjcm9zLnJzIjoiZmM5OTI0ODY5ZWQ4NWU0Nzk1OTgzYWYyMjhjYWNmMjMx NThmNGYzNTkxOWFkY2UxNmM5MjBhZDRhM2YwYTAwOSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQv bXVsX2FkZC5ycyI6IjA0MWE1YjY5ZDU5OTFkOTNlZjc5NTM1MWIxNzU2MGMxMGZhZjgwYjc4ZmQy NmFkN2RmNDJhMjM5YjMyY2Y5ZGUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJz IjoiZDcxZDVmMGYzMzMzYjYyYTc0MzliODIzY2I3YWRmNTM0MGVhMTU1NWNlODIwZmI0YTNmNGNi OTIyZjczZjVmNSIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycyI6Ijk3NDJjMzg3N2Yx YTU1MDljYTVjOTQ5MmE0MDg4NGI2NTc5YmE2ZGQxMWMyNmI3MTEyZTYzZjcwNjY2YjM5NWQiLCJz cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycyI6IjBlOTg2OGQzNTUzMTU2NjUwOWYzYTAxZDg1 ZDUyNTMwNDVlYjRhZmE4NTI1ZDg0MDdkY2MxZjVmMzNjNTYwMzYiLCJzcmMvY29kZWdlbi9tYXRo L2Zsb2F0L3Npbl9jb3NfcGkucnMiOiI4ZTZiNjE0MmQ3ZGQyNDBjZGIzNjY2OTcyMmU4MmFiOTgx MGEyMjYxZTg2ZTY1OWY3ZDk3YTk0MmFkOGIxMjU4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z aW5fcGkucnMiOiJiYjZkMzlkYjhmOTIxZTAzYTMwMWZjNTIwNmFjMWE2MWE5N2RlZjhhMmNiODNi ODdjY2YxODlmM2ZjNDhkNTQ4Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0LnJzIjoiZTZl YmIwYzVmNDI4ZWZhZDFmNjcyYjlhOGZlNGU1ODUzNGRiZjFlYTVhOGZlMDkyY2U1Y2U3NmI1MmZl ODljYiIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMiOiIyM2FjZmFlYTM4ZDBlMDgx YTZkOTAyMWMxMDk0ZTgxM2QwY2ZkMTJjNThjMWVjYTk2NjJhYWRlNWU2MjVkNTFjIiwic3JjL2Nv ZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMiOiI2Y2ExM2MyMTRiNmNmN2UwOTI5ZGJlMThlOTZh MTZmYzBiYjdkODc5OTYwOGRmMjljNGM4MTE1NDkwZjk5ZTAxIiwic3JjL2NvZGVnZW4vcmVkdWN0 aW9ucy5ycyI6IjhlYjE4ZWJhYzc2OTg1ZDJhYTMwMjYyYTJlZGQ4Y2IwMDQyMzBiNTExYTc2NWQ2 NTc1MjVmNjc3YTU4NWMxMmMiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMiOiJlNjdm MzVhMWY0ZDE1NmE0ODk0YTJkNmVhNWE5MzViNGQ4OThjZjcwZWVmYjI3MTVmNWMxY2MxNjVlNzc2 YzExIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMiOiI4NGIxMDFjMTdj YWQxZWRlNGViNmQzOGNhZGEwYWM3ZGEyMzlkYmE4Y2VhM2JhZGQzODI5Yjk2N2U1NTg0MzFmIiwi c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycyI6ImFhYTA3MTI5YmQwNzhhZTdlNjc3 Y2Y4YjhlNjdlYzlmMzA1MzY2MDZhMGM3ZWQxYmFhYTE4ZmQxNzkzYmIyMTgiLCJzcmMvY29kZWdl bi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMiOiIzZWI5MzE5ZDJjN2NmMTkyMTZiNjA3Yjg0 NTk2MTJjNGUwMjdiNjQzY2YxMWIwMzY5MzdkMzY4OTZiZjc2Nzg2Iiwic3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMiOiI3NjU0N2YzOTZlNTVlZjQwMzMyN2M3N2Mz MTRjZjhkYjhjN2E1YzliOTgxOWJmYjkyNWFiZWFjZjEzMDI0OWU1Iiwic3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL3g4Ni5ycyI6IjM2ZGNkOGFmNGFiOTk3MzBhMDc4ZWQxMTNkMzk1NWY3NGVi MWEyODc2ZTJlNmQ5ZjIyNGUwZmY0NjJjMjE2ZDEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21h c2sveDg2L2F2eC5ycyI6IjNhNDA4NjhiMzhjODZlMzVhZWZiOTZkNzU3OGRlNjMyMmVmZTg5ZDgx MzVlMDM2NjM1OWI1NGRkZDA2Zjg2MWEiLCJzcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2 L2F2eDIucnMiOiI2NzdhZWQzZjA1NjI4NTI4NWRhYTNhZGZmOGJjNjVlNzM5NjMwYjQ0MjRkZWZh NmQ5NjY1ZTE2MGYwMjc1MDdlIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2Uu cnMiOiI4NTIyZjZlZDAzZjZjMzJkZDU3N2Q0Mjk4ZGY0NzdjMDhhZWFhYTM4NTYzNzA2ZjI5MDk2 ZTE5MTFlZDczMWYyIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzIjoi NTRlYzU2ZTQ5YjBjNjg0MWVjY2I3MTllNGYzMTBkNjVmZTc2N2MwNDEzNmIyZWMyMGJkOGI5ZDdk OTg5N2I5ZSIsInNyYy9jb2RlZ2VuL3NodWZmbGUucnMiOiIxZWMyOTMwZjRlMWFjYzQzYWMzMGI1 MThhZjI5OGQ0NjZhNzllOWU3NTczNGE1MWMzODBiNzgxMGVmZDFhMjdmIiwic3JjL2NvZGVnZW4v c2h1ZmZsZTFfZHluLnJzIjoiM2YxM2NhMTU5NzM3ODc1OGQwNTEwNmJmNWZmMzcxNWVlZTUzMWYz Y2I2ZDg4ZjQ4YjkxODJiZDZjOTM4NmI1MSIsInNyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMiOiJj NjdjODZlOTFjYTNmYzc3NTM5ZTBlZmNlYTA4MWEzYzYyNTQ4Y2NjZjUwMzk2M2FlNDA4ZjJlODZm NGU2YTIxIiwic3JjL2NvZGVnZW4vdjEyOC5ycyI6Ijk0MjI2YjMxZWM0MDNkMThkOWQyZmUwNjcx M2YxNDdjOWM3OWU5YjVmOTEwNTA4OTA4ODI2NjMxM2Y4NDMxODUiLCJzcmMvY29kZWdlbi92MTYu cnMiOiJkZGVjNGZmYjY2YjZmN2FhZmZiOWExNzgwYzVkZGJhODI1NTdhYmQ3NGY0NTA3M2QzMzUw NDdlMDRjZjc0OTI0Iiwic3JjL2NvZGVnZW4vdjI1Ni5ycyI6IjZiNjM5MTdmMDQ0NDExOGQ2YjE1 OTViZmYyMDQ1ZTU5Yjk3YzRkMjQwMTJiZDU3NWY2OWYxZjBlZmM1YTAyNDEiLCJzcmMvY29kZWdl bi92MzIucnMiOiIzNDc3YjNjNTU0MGFlZDg2ZTYxZTJmNTgwN2RkMzFkYjk0NzQxM2NlYzkxODFj NTg3ZDkzZWQ2ZWM3NGYwZWJhIiwic3JjL2NvZGVnZW4vdjUxMi5ycyI6IjU4NTRmOTlkM2FhYmM0 Y2Q0MmIyOGEyMGQ5Y2U0NDc3NTZkYzJiYTAyNGE0MDlhNjliNmE4YWUxZjE4NDJmYzUiLCJzcmMv Y29kZWdlbi92NjQucnMiOiJlOWU4OWNhZWJmZTYzZDEwYzBjYmNhNjFlNGRmZGJhM2I3ZTAyZWUw OTg5MTcwZjgwYmVlZDIzMjM3ZGRkOTUwIiwic3JjL2NvZGVnZW4vdlB0ci5ycyI6ImYwNzUzYjQw NWNkYzg2NWJkZjhlODJjNjUwNWYyOTllYTFmOTYxMzYyMzllYmJhZjdmOWNlOTNkMzEwNzY0Yjgi LCJzcmMvY29kZWdlbi92U2l6ZS5ycyI6ImM4OWY1ZmRlYjI4YWM0YzgyNzJlZDE4MTZmY2UwM2Q5 ZDk1MzA4Y2MzMmJiMjUzM2JkOGIyMGNkNWFjMTAyYWMiLCJzcmMvbGliLnJzIjoiMDUwNDhjNmE4 NWVjNjVjZjkwMmQ5ZGQ4Zjc1N2EzZjc2MzkyYjcwM2E2Nzk0ZWE3MWYwZDQxNTAwYTg5Zjc4ZiIs InNyYy9tYXNrcy5ycyI6IjcwZmMwYWJlNGMyOTA3Y2UyYTQ5MWM1NzRlMWNmYjlmMzQyMzM4NWRh MmUxYTkyM2E0OGM5YzEzZjhiYTZlZDgiLCJzcmMvc2VhbGVkLnJzIjoiYWU3ZmRlYWY1ZDg0Y2Q3 NzEwZWQ3MzBjYTcyY2E3ZWFiYTkzZGY2Y2IwYWNiMTgzZTVjMGE3MzI3YWNmMTk3ZiIsInNyYy90 ZXN0aW5nLnJzIjoiODk2NjY5YzA4ZDhjODAxNDQ4YTRkMmZhZGM5ZDYzM2VkYTBmYmU4NzlkMjI5 OTk3ZTJhMTgyZTMxMjc4ZTQ2OSIsInNyYy90ZXN0aW5nL21hY3Jvcy5ycyI6IjQwM2JiYzVlY2I3 Yzc4NmZlMzYxNTZkZjMwMmQwYzA3YTgxMjI0MDhkYmIxNWY3NDc0ZDc2ODIyMjRiYTExMDYiLCJz cmMvdGVzdGluZy91dGlscy5ycyI6IjQxOTEyYTkyMjY2ZGZlODg0NjQ3ZmMwMzVlNDI0MmZkNzQ2 MTAwZGY4ZTgzOTgwOGFlMDM5N2FmMzc1OWEzYzgiLCJzcmMvdjEyOC5ycyI6IjE2Y2Y5YThlNzE1 NmI4OTllZTliOWNkM2YyZGJhOWQxM2VjNjMyODliZWE4YzNlZTlhZTJlNDNhZDk1MTAyODgiLCJz cmMvdjE2LnJzIjoiY2I2NDY1Y2YxZTAwYmY1MzAxODNhZjE4MTliOWZlM2Q3ZWVjOTc4Zjg3NjVk NWU4NWQ5YjU4YTM5YTRiNDA0NSIsInNyYy92MjU2LnJzIjoiZmUyMzUwMTdkYTE4YzdmM2MzNjE4 MzFjNjBlMzE3M2FkMzA0ZDhlYTFlOTVkNjRlYmViYzc5ZGEyZDcwODUxMSIsInNyYy92MzIucnMi OiIxNDVkMzQ3ODU1YmFjNTliMmRlNjUwOGY5ZTU5NDY1NGU2YzMzMDQyM2FmOWVkYzBlMmFjOGY0 ZDFhYmRmNDVlIiwic3JjL3Y1MTIucnMiOiJmMzcyZjI3N2YzZTYyZWI1Yzk0NWJiMWM0NjAzMzNm ZGIxN2I2OTc0ZmNjODc2NjMzNzg4ZmY1M2JkZWQ5NTk5Iiwic3JjL3Y2NC5ycyI6IjBiODA3OTg4 MWI3MTU3NWUzNDE0YmUwYjdmOGY3ZWFiYTY1MjgxYmE2NzMyZjJiMmY2MWY3M2U5NWI2ZjQ4Zjci LCJzcmMvdlB0ci5ycyI6IjhiM2U0MzNkNDg3MTgwYmI0MzA0ZmY3MTI0NWVjYWQ5MGYwMDEwZjQz ZTEzOWE3MjAyN2I2NzJhYmU1OGZhY2MiLCJzcmMvdlNpemUucnMiOiJlZGE1YWEwMjA3MDZjYmY5 NGQxNWJhZGE0MWEwYzJhMzVmYzhmM2YzN2NiN2MyY2Q2ZjM0ZDIwMTM5OWE0OTVlIiwidGVzdHMv ZW5kaWFubmVzcy5ycyI6IjUxNDdmODZkMjI0YzRjNTQwYjc3MjAzM2RhMmY5OTRjYWQ5YmM5YzAz NWYzOGVjMjFlMjNiYzRlNTVmOGE3NTkifSwicGFja2FnZSI6bnVsbH0KK1wgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv LmdpdGh1Yi93b3JrZmxvd3MvYmVuY2htYXJrcy55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3Jr Zmxvd3MvYmVuY2htYXJrcy55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDMxICswLDAgQEAKKy1u YW1lOiBiZW5jaG1hcmtzCistCistb246CistICBwdXNoOgorLSAgICBicmFuY2hlczoKKy0gICAg ICAtIG1hc3RlcgorLSAgcHVsbF9yZXF1ZXN0OgorLSAgd29ya2Zsb3dfZGlzcGF0Y2g6CistCist am9iczoKKy0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDog eDg2XzY0LXVua25vd24tbGludXgtZ251CistICAgICAgc2V0dXBfc2NyaXB0OiBjaS9zZXR1cF9i ZW5jaG1hcmtzLnNoCistICAgICAgc2NyaXB0OiBjaS9iZW5jaG1hcmsuc2gKKy0gICAgICBub3J1 bjogMQorLSAgICAgIHZlcmlmeTogMQorLSAgICAgICMgRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRv IGFkZCBkb3dubG9hZGVkIGlzcGMgdG8gUEFUSAorLSAgICAgICMgZmVhdHVyZXM6IGlzcGMKKy0g IHg4Nl82NC1hcHBsZS1kYXJ3aW46CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1k YXJ3aW4KKy0gICAgICBydW5uZXI6IG1hY29zLWxhdGVzdAorLSAgICAgIHNldHVwX3NjcmlwdDog Y2kvc2V0dXBfYmVuY2htYXJrcy5zaAorLSAgICAgIHNjcmlwdDogY2kvYmVuY2htYXJrLnNoCist ICAgICAgbm9ydW46IDEKKy0gICAgICB2ZXJpZnk6IDEKKy0gICAgICAjIEZJWE1FOiBmaWd1cmUg b3V0IGhvdyB0byBhZGQgZG93bmxvYWRlZCBpc3BjIHRvIFBBVEgKKy0gICAgICAjIGZlYXR1cmVz OiBpc3BjCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHVi L3dvcmtmbG93cy9jaS55bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIv d29ya2Zsb3dzL2NpLnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnltbAorKysrIC9kZXYv bnVsbAorQEAgLTEsMjE4ICswLDAgQEAKKy1uYW1lOiBjaQorLQorLSMgdHJpZ2dlciBmb3IgYWxs IFBScyBhbmQgY2hhbmdlcyB0byBtYXN0ZXIKKy1vbjoKKy0gIHB1c2g6CistICAgIGJyYW5jaGVz OgorLSAgICAgIC0gbWFzdGVyCistICBwdWxsX3JlcXVlc3Q6CistCistam9iczoKKy0gIHJ1c3Rm bXQ6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0g ICAgd2l0aDoKKy0gICAgICBzY3JpcHQ6IGNpL2FsbC5zaCBjaGVja19mbXQgfHwgdHJ1ZQorLSAg eDg2XzY0LXVua25vd24tbGludXgtYW5kcm9pZDoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6 IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1saW51eC1hbmRyb2lkCist ICBhcm12Ny1saW51eC1hbmRyb2lkZWFiaToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRy dWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGFybXY3LWxpbnV4LWFuZHJvaWRlYWJpCist ICBhYXJjaDY0LXVua25vd24tbGludXgtYW5kcm9pZC1ORU9OOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZh aWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYWFyY2g2NC1saW51eC1h bmRyb2lkCistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCistICB0aHVt YnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZh bHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lk ZWFiaQorLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZh c3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24tbGludXgt Z251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljCistICBpNTg2 LXVua25vd24tbGludXgtZ251LVNTRToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNl CistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNTg2LXVua25vd24tbGludXgtZ251CistICAg ICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9 K3NzZQorLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0UyOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZh aWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGk1ODYtdW5rbm93bi1s aW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2NhdGlvbi1tb2RlbD1zdGF0aWMgLUN0 YXJnZXQtZmVhdHVyZT0rc3NlMgorLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNl czogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToK Ky0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNjg2 LXVua25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9 c3RhdGljCistICBpNjg2LXVua25vd24tbGludXgtZ251LVNTRTRfMjoKKy0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAg ICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBpNjg2LXVua25v d24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGlj IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgorLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudS1BVlgy OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAg IHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0 YXJnZXQ6IGk2ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DcmVsb2Nh dGlvbi1tb2RlbD1zdGF0aWMgLUN0YXJnZXQtZmVhdHVyZT0rYXZ4MgorLSAgeDg2XzY0LXVua25v d24tbGludXgtZ251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3Jp cHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRo OgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CistICB4ODZfNjQtdW5r bm93bi1saW51eC1nbnUtU1NFNF8yOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQor LSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CistICAg ICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKKy0gIHg4Nl82NC11bmtub3du LWxpbnV4LWdudS1BVlgyOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3 aXRoOgorLSAgICAgIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CistICAgICAgcnVz dGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthdngyCistICBhcm0tdW5rbm93bi1saW51eC1nbnVl YWJpaGY6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwK Ky0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAg ICAgdGFyZ2V0OiBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gIGFybXY3LXVua25vd24t bGludXgtZ251ZWFiaWhmOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1z Y3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3 aXRoOgorLSAgICAgIHRhcmdldDogYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gIGFy bXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmLU5FT046CistICAgIHVzZXM6IC4vLmdpdGh1Yi93 b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1m YXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBhcm12Ny11bmtub3duLWxpbnV4 LWdudWVhYmloZgorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgorLSAg dGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGY6CistICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFp bC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogdGh1bWJ2N25lb24tdW5r bm93bi1saW51eC1nbnVlYWJpaGYKKy0gIGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUtTkVPTjoK Ky0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBz dHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJn ZXQ6IGFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0 LWZlYXR1cmU9K25lb24KKy0gIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnU6CistICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6Cist ICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogcG93ZXJw Yy11bmtub3duLWxpbnV4LWdudQorLSAgcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251OgorLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0 ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6 IHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorLSAgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51 eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwK Ky0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAg ICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudQorLSAgcG93ZXJwYzY0bGUt dW5rbm93bi1saW51eC1nbnUtQUxUSVZFQzoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRy dWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHBvd2VycGM2NGxlLXVua25vd24tbGludXgt Z251CistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPSthbHRpdmVjCistICBwb3dl cnBjNjRsZS11bmtub3duLWxpbnV4LWdudS1WU1g6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3Jr Zmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0 OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRsZS11bmtub3duLWxp bnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rdnN4CistICBzMzkw eC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4t Y2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCist ICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBzMzkweC11bmtub3duLWxpbnV4LWdudQorLSAgc3Bh cmM2NC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9y dW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNl CistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBzcGFyYzY0LXVua25vd24tbGludXgtZ251Cist ICB3YXNtMzItdW5rbm93bi11bmtub3duOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFs c2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHdhc20zMi11bmtub3duLXVua25vd24KKy0g IHg4Nl82NC1hcHBsZS1kYXJ3aW4tU1NFNF8yOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDog dHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0CistICAgICAgc2Ny aXB0OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1kYXJ3aW4KKy0gICAg ICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMgorLSAgeDg2XzY0LWFwcGxlLWRh cndpbi1BVlg6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6Cist ICAgICAgcnVubmVyOiBtYWNvcy1sYXRlc3QKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAg ICAgIHRhcmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJn ZXQtZmVhdHVyZT0rYXZ4CistICB4ODZfNjQtYXBwbGUtaW9zOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZh aWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Cist ICAgICAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1pb3MK Ky0gIGFhcmNoNjQtYXBwbGUtaW9zOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQor LSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0CistICAgICAgc2NyaXB0OiBj aS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IGFhcmNoNjQtYXBwbGUtaW9zCistICAgICAgcnVzdGZs YWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9kb2NzLnltbCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dv cmtmbG93cy9kb2NzLnltbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLW5hbWU6 IGRvY3MKKy0KKy1vbjoKKy0gIHB1c2g6CistICAgIGJyYW5jaGVzOgorLSAgICAgIC0gbWFzdGVy CistCistam9iczoKKy0gIGRvY3M6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVu LWNpLXNjcmlwdC55bWwKKy0gICAgd2l0aDoKKy0gICAgICBzZXR1cF9zY3JpcHQ6IGNhcmdvIGlu c3RhbGwgbWRib29rCistICAgICAgc2NyaXB0OiBjaS9kb3guc2gKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQu eW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9ydW4t Y2ktc2NyaXB0LnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCisr KysgL2Rldi9udWxsCitAQCAtMSw4NiArMCwwIEBACistbmFtZTogcnVuLWNpLXNjcmlwdAorLQor LW9uOgorLSAgd29ya2Zsb3dfY2FsbDoKKy0gICAgaW5wdXRzOgorLSAgICAgIHJ1bm5lcjoKKy0g ICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAgICAgICBk ZWZhdWx0OiB1YnVudHUtbGF0ZXN0CistICAgICAgdGFyZ2V0OgorLSAgICAgICAgcmVxdWlyZWQ6 IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcnCistICAg ICAgcnVzdGZsYWdzOgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBz dHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcnCistICAgICAgc2NyaXB0OgorLSAgICAgICAgcmVx dWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6IGNp L3J1bi1kb2NrZXIuc2gKKy0gICAgICBzZXR1cF9zY3JpcHQ6CistICAgICAgICByZXF1aXJlZDog ZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAgIG5vcnVuOgorLSAgICAgICAgcmVx dWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcn CistICAgICAgdmVyaWZ5OgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBl OiBzdHJpbmcKKy0gICAgICAgIGRlZmF1bHQ6ICcnCistICAgICAgZmVhdHVyZXM6CistICAgICAg ICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0cmluZworLSAgICAgICAgZGVmYXVs dDogJycKKy0KKy1qb2JzOgorLSAgcnVuLWNpLXNjcmlwdDoKKy0gICAgcnVucy1vbjogJHt7IGlu cHV0cy5ydW5uZXIgfX0KKy0gICAgc3RlcHM6CistICAgICAgLSBuYW1lOiBDaGVja291dAorLSAg ICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEB2MgorLSAgICAgIC0gbmFtZTogSW5pdCBSdXN0 dXAgQ2FjaGUKKy0gICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKKy0gICAgICAgIHdpdGg6 CistICAgICAgICAgIHBhdGg6IHwKKy0gICAgICAgICAgICB+Ly5ydXN0dXAvdG9vbGNoYWlucwor LSAgICAgICAgICBrZXk6ICR7eyBydW5uZXIub3MgfX0tY2FyZ28tJHt7IGhhc2hGaWxlcygnKiov cnVzdC10b29sY2hhaW4nKSB9fQorLSAgICAgIC0gbmFtZTogSW5zdGFsbCBUb29sY2hhaW4KKy0g ICAgICAgIHVzZXM6IGR0b2xuYXkvcnVzdC10b29sY2hhaW5AbmlnaHRseQorLSAgICAgICAgd2l0 aDoKKy0gICAgICAgICAgIyBGSVhNRTogY2hhbmdlIHRvIG5pZ2h0bHkgb25jZSBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL3B1bGwvMzUwIGlzIG1lcmdlZAorLSAgICAg ICAgICAjIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0b29sY2hhaW4gZmlsZXMK Ky0gICAgICAgICAgdGFyZ2V0czogJHt7IGlucHV0cy50YXJnZXQgfX0KKy0gICAgICAgICAgY29t cG9uZW50czogcnVzdGZtdAorLSAgICAgIC0gbmFtZTogR2VuZXJhdGUgTG9ja2ZpbGUKKy0gICAg ICAgIHJ1bjogY2FyZ28gZ2VuZXJhdGUtbG9ja2ZpbGUKKy0gICAgICAtIG5hbWU6IEluaXQgQ2Fy Z28gQ2FjaGUKKy0gICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKKy0gICAgICAgIHdpdGg6 CistICAgICAgICAgIHBhdGg6IHwKKy0gICAgICAgICAgICB+Ly5jYXJnby9iaW4vCistICAgICAg ICAgICAgfi8uY2FyZ28vcmVnaXN0cnkvaW5kZXgvCistICAgICAgICAgICAgfi8uY2FyZ28vcmVn aXN0cnkvY2FjaGUvCistICAgICAgICAgICAgfi8uY2FyZ28vZ2l0L2RiLworLSAgICAgICAgICAg IHRhcmdldC8KKy0gICAgICAgICAga2V5OiAke3sgcnVubmVyLm9zIH19LWNhcmdvLSR7eyBoYXNo RmlsZXMoJyoqL0NhcmdvLmxvY2snKSB9fQorLSAgICAgIC0gbmFtZTogU2V0dXAKKy0gICAgICAg IGlmOiAke3sgaW5wdXRzLnNldHVwX3NjcmlwdCAhPSAnJyB9fQorLSAgICAgICAgcnVuOiAke3sg aW5wdXRzLnNldHVwX3NjcmlwdCB9fQorLSAgICAgICAgZW52OgorLSAgICAgICAgICBUQVJHRVQ6 ICR7eyBpbnB1dHMudGFyZ2V0IH19CistICAgICAgICAgIFJVU1RGTEFHUzogJHt7IGlucHV0cy5y dXN0ZmxhZ3MgfX0KKy0gICAgICAgICAgTk9SVU46ICR7eyBpbnB1dHMubm9ydW4gfX0KKy0gICAg ICAgICAgVkVSSUZZOiAke3sgaW5wdXRzLnZlcmlmeSB9fQorLSAgICAgICAgICBGRUFUVVJFUzog JHt7IGlucHV0cy5mZWF0dXJlcyB9fQorLSAgICAgIC0gbmFtZTogUnVuIENJIFNjcmlwdAorLSAg ICAgICAgdGltZW91dC1taW51dGVzOiAzMAorLSAgICAgICAgcnVuOiAke3sgaW5wdXRzLnNjcmlw dCB9fQorLSAgICAgICAgZW52OgorLSAgICAgICAgICBUQVJHRVQ6ICR7eyBpbnB1dHMudGFyZ2V0 IH19CistICAgICAgICAgIFJVU1RGTEFHUzogJHt7IGlucHV0cy5ydXN0ZmxhZ3MgfX0KKy0gICAg ICAgICAgTk9SVU46ICR7eyBpbnB1dHMubm9ydW4gfX0KKy0gICAgICAgICAgVkVSSUZZOiAke3sg aW5wdXRzLnZlcmlmeSB9fQorLSAgICAgICAgICBGRUFUVVJFUzogJHt7IGlucHV0cy5mZWF0dXJl cyB9fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZpcy55 bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy50cmF2aXMueW1sCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZp cy55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxMiArMCwwIEBACistbGFuZ3VhZ2U6IHJ1c3QK Ky1ydXN0OiBuaWdodGx5Cistb3M6IGxpbnV4CistZGlzdDogZm9jYWwKKy0KKy1zdGFnZXM6Cist ICAtIHRvb2xzCistICAtIGJ1aWxkLXRlc3QtdmVyaWZ5ICMgUGFzc2VzIGZ1bGwgdGVzdCBzdWl0 ZSwgcGVybWl0IG5vIHJlZ3Jlc3Npb25zICh1bmxlc3MgaXQncyBydXN0dXAgOi8pCistICAtIDMy Yml0LXRpZXIxCistICAtIDY0Yml0LXRpZXIyCistICAtIDMyYml0LXRpZXIyCistCistam9iczoK Ky0gIGZhc3RfZmluaXNoOiB0cnVlCistICBpbmNsdWRlOgorLSAgICAjIEFuZHJvaWQ6CistICAg IC0gZW52OiBUQVJHRVQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQKKy0gICAgICBuYW1lOiAieDg2XzY0 LXVua25vd24tbGludXgtYW5kcm9pZCArIFNTRTIiCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3Qt dmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9YXJtLWxpbnV4LWFuZHJvaWRlYWJpCistICAgICAg bmFtZTogImFybS1saW51eC1hbmRyb2lkZWFiaSIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12 ZXJpZnkKKy0gICAgLSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWFuZHJvaWQgKyBORU9O IgorLSAgICAgIGVudjogVEFSR0VUPWFhcmNoNjQtbGludXgtYW5kcm9pZCBSVVNURkxBR1M9Ii1D IHRhcmdldC1mZWF0dXJlPStuZW9uIgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQor LSAgICAtIGVudjogVEFSR0VUPSJ0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaSIKKy0gICAg ICBuYW1lOiAidGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkiCistICAgICAgc3RhZ2U6IDMy Yml0LXRpZXIyCistICAgICMgTGludXg6CistICAgIC0gZW52OiBUQVJHRVQ9aTU4Ni11bmtub3du LWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJpNTg2LXVua25vd24tbGludXgtZ251IgorLSAgICAg IHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51 eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlIgorLSAgICAgIG5hbWU6ICJp NTg2LXVua25vd24tbGludXgtZ251ICsgU1NFIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgor LSAgICAtIGVudjogVEFSR0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSItQyB0 YXJnZXQtZmVhdHVyZT0rc3NlMiIKKy0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxpbnV4LWdu dSArIFNTRTIiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0gZW52OiBUQVJHRVQ9 aTY4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGludXgt Z251ICsgU1NFMiIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAgLSBlbnY6IFRBUkdF VD1pNjg2LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3Nz ZTQuMiIKKy0gICAgICBuYW1lOiAiaTY4Ni11bmtub3duLWxpbnV4LWdudSArIFNTRTQuMiIKKy0g ICAgICBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAgLSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24t bGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCistICAgICAgbmFt ZTogImk2ODYtdW5rbm93bi1saW51eC1nbnUgKyBBVlgyIgorLSAgICAgIHN0YWdlOiAzMmJpdC10 aWVyMQorLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLWxpbnV4LWdudSBSVVNURkxB R1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCistICAgICAgbmFtZTogIng4Nl82NC11bmtu b3duLWxpbnV4LWdudSArIFNTRTQuMiIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkK Ky0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUgUlVTVEZMQUdTPSIt QyB0YXJnZXQtZmVhdHVyZT0rYXZ4MiIKKy0gICAgICBuYW1lOiAieDg2XzY0LXVua25vd24tbGlu dXgtZ251ICsgQVZYMiIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBl bnY6IFRBUkdFVD1hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gICAgICBuYW1lOiAiYXJt LXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlm eQorLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmCistICAg ICAgbmFtZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAgICAgIHN0YWdlOiBi dWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPWFybXY3LXVua25vd24tbGludXgt Z251ZWFiaWhmIFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24iCistICAgICAgbmFt ZTogImFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmICsgTkVPTiIKKy0gICAgICBzdGFnZTog YnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2N25lb24tdW5rbm93 bi1saW51eC1nbnVlYWJpaGYiCistICAgICAgbmFtZTogInRodW1idjduZW9uLXVua25vd24tbGlu dXgtZ251ZWFiaWhmIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIG5hbWU6ICJh YXJjaDY0LXVua25vd24tbGludXgtZ251ICsgTkVPTiIKKy0gICAgICBlbnY6IFRBUkdFVD1hYXJj aDY0LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K25lb24i CistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9bWlw cy11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJtaXBzLXVua25vd24tbGludXgtZ251 IgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIGVudjogVEFSR0VUPW1pcHNlbC11 bmtub3duLWxpbnV4LW11c2wKKy0gICAgICBuYW1lOiAibWlwc2VsLXVua25vd24tbGludXgtbXVz bCIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdFVD1taXBzNjQt dW5rbm93bi1saW51eC1nbnVhYmk2NAorLSAgICAgIG5hbWU6ICJtaXBzNjQtdW5rbm93bi1saW51 eC1nbnVhYmk2NCIKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdF VD1taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0CistICAgICAgbmFtZTogIm1pcHM2NGVs LXVua25vd24tbGludXgtZ251YWJpNjQiCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCistICAg ICAgIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy8xOAorLSAgICAgICMgZW52OiBUQVJHRVQ9bWlwczY0ZWwtdW5rbm93bi1saW51 eC1nbnVhYmk2NCBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSttc2EgLUMgdGFyZ2V0LWNw dT1taXBzNjRyNiIKKy0gICAgLSBlbnY6IFRBUkdFVD1wb3dlcnBjLXVua25vd24tbGludXgtZ251 CistICAgICAgbmFtZTogInBvd2VycGMtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgc3RhZ2U6 IDMyYml0LXRpZXIyCistICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYzY0LXVua25vd24tbGludXgt Z251CistICAgICAgbmFtZTogInBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBz dGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBuYW1lOiAicG93ZXJwYzY0bGUtdW5rbm93bi1saW51 eC1nbnUiCistICAgICAgZW52OiBUQVJHRVQ9cG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUK Ky0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBuYW1lOiAicG93ZXJwYzY0 bGUtdW5rbm93bi1saW51eC1nbnUgKyBBTFRJVkVDIgorLSAgICAgIGVudjogVEFSR0VUPXBvd2Vy cGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2Fs dGl2ZWMiCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gbmFtZTogInBv d2VycGM2NGxlLXVua25vd24tbGludXgtZ251ICsgVlNYIgorLSAgICAgIGVudjogVEFSR0VUPXBv d2VycGM2NGxlLXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9 K3ZzeCIKKy0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBuYW1lOiAiczM5 MHgtdW5rbm93bi1saW51eC1nbnUiCistICAgICAgZW52OiBUQVJHRVQ9czM5MHgtdW5rbm93bi1s aW51eC1nbnUKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdFVD1z cGFyYzY0LXVua25vd24tbGludXgtZ251CistICAgICAgbmFtZTogInNwYXJjNjQtdW5rbm93bi1s aW51eC1nbnUiCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCistICAgICMgV2ViQXNzZW1ibHk6 CistICAgIC0gZW52OiBUQVJHRVQ9d2FzbTMyLXVua25vd24tdW5rbm93bgorLSAgICAgIG5hbWU6 ICJ3YXNtMzItdW5rbm93bi11bmtub3duIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAg ICAjIE1hY09TWDoKKy0gICAgLSBvczogb3N4CistICAgICAgZW52OiBUQVJHRVQ9eDg2XzY0LWFw cGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCistICAgICAg bmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBTU0U0LjIiCistICAgICAgaW5zdGFsbDogdHJ1 ZQorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgb3N4X2ltYWdlOiB4Y29kZTEwCist ICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgICAgIyBUcmF2aXMtQ0kgT1NYIGJ1 aWxkIGJvdHMgZG8gbm90IHN1cHBvcnQgQVZYMjoKKy0gICAgLSBvczogb3N4CistICAgICAgZW52 OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWRhcndpbiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJl PSthdngiCistICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1kYXJ3aW4gKyBBVlgiCistICAgICAg aW5zdGFsbDogdHJ1ZQorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgb3N4X2ltYWdl OiB4Y29kZTEwCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgICMgKkJTRHM6 CistICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1mcmVlYnNkIE5PUlVOPTEKKy0gICAg IyAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24t ZnJlZWJzZCBOT1JVTj0xCistICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICMtIGVudjog VEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JVTj0xCistICAgICMgIHNjcmlwdDogY2kv cnVuLnNoCistICAgICMgU29sYXJpczoKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXN1bi1z b2xhcmlzIE5PUlVOPTEKKy0gICAgIyAgc2NyaXB0OiBjaS9ydW4uc2gKKy0gICAgIyBpT1M6Cist ICAgIC0gb3M6IG9zeAorLSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1pb3MKKy0gICAg ICBuYW1lOiAieDg2XzY0LWFwcGxlLWlvcyArIFNTRTIiCistICAgICAgc2NyaXB0OiBjaS9ydW4u c2gKKy0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40CistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIy CistICAgIC0gbmFtZTogImFhcmNoNjQtYXBwbGUtaW9zICsgTkVPTiIKKy0gICAgICBlbnY6IFRB UkdFVD1hYXJjaDY0LWFwcGxlLWlvcyBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStuZW9u IgorLSAgICAgIG9zOiBvc3gKKy0gICAgICBvc3hfaW1hZ2U6IHhjb2RlOS40CistICAgICAgc2Ny aXB0OiBjaS9ydW4uc2gKKy0gICAgICBzdGFnZTogNjRiaXQtdGllcjIKKy0gICAgIyBCRU5DSE1B UktTOgorLSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2XzY0LXVua25vd24tbGludXgtZ251 IgorLSAgICAgIGluc3RhbGw6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1nbnUgLi9jaS9z ZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgIyBGSVhNRTogVXNlIGBjb3JlX2FyY2gsc2xlZWYt c3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KKy0gICAgICBzY3JpcHQ6IFBBVEg9 JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBjaS9iZW5jaG1hcmsu c2gKKy0gICAgICBzdGFnZTogdG9vbHMKKy0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAtIHg4Nl82 NC1hcHBsZS1kYXJ3aW4iCistICAgICAgaW5zdGFsbDogVEFSR0VUPXg4Nl82NC1hcHBsZS1kYXJ3 aW4gLi9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCistICAgICAgIyBGSVhNRTogVXNlIGBjb3JlX2Fy Y2gsc2xlZWYtc3lzYCBmZWF0dXJlcyBvbmNlIHRoZXkgd29ya3MgYWdhaW4KKy0gICAgICBzY3Jp cHQ6IFBBVEg9JChwd2QpOiRQQVRIIE5PUlVOPTEgVkVSSUZZPTEgRkVBVFVSRVM9aXNwYyBjaS9i ZW5jaG1hcmsuc2gKKy0gICAgICBvczogb3N4CistICAgICAgb3N4X2ltYWdlOiB4Y29kZTkuNAor LSAgICAgIHN0YWdlOiB0b29scworLSAgICAjIFRPT0xTOgorLSAgICAtIG5hbWU6ICJEb2N1bWVu dGF0aW9uIgorLSAgICAgIGJlZm9yZV9pbnN0YWxsOgorLSAgICAgICAgLSBzdWRvIGFkZC1hcHQt cmVwb3NpdG9yeSAteSBwcGE6ZGVhZHNuYWtlcy9wcGEKKy0gICAgICAgIC0gc3VkbyBhcHQtZ2V0 IHVwZGF0ZSAteQorLSAgICAgICAgLSBzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBweXRob24zLjkK Ky0gICAgICBpbnN0YWxsOgorLSAgICAgICAgLSBjYXJnbyBpbnN0YWxsIG1kYm9vaworLSAgICAg IHNjcmlwdDogY2kvZG94LnNoCistICAgICAgc3RhZ2U6IHRvb2xzCistICAgIC0gbmFtZTogInJ1 c3RmbXQiCistICAgICAgaW5zdGFsbDogdHJ1ZQorLSAgICAgIHNjcmlwdDogfAorLSAgICAgICAg cnVzdHVwIHRvb2xjaGFpbiBpbnN0YWxsIG5pZ2h0bHkgLWMgcnVzdGZtdCAtLWFsbG93LWRvd25n cmFkZQorLSAgICAgICAgY2kvYWxsLnNoIGNoZWNrX2ZtdCB8fCB0cnVlCistICAgICAgc3RhZ2U6 IHRvb2xzCistCistICBhbGxvd19mYWlsdXJlczoKKy0gICAgIyBGSVhNRTogSVNQQyBjYW5ub3Qg YmUgZm91bmQ/CistICAgIC0gbmFtZTogIkJlbmNobWFya3MgLSB4ODZfNjQtYXBwbGUtZGFyd2lu IgorLSAgICAjIEZJWE1FOiBpNjg2IGZhaWxzIGluIGlubGluaW5nLCBhcHBhcmVudGx5CistICAg IC0gc3RhZ2U6IDMyYml0LXRpZXIxCistICAgICMtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1m cmVlYnNkIE5PUlVOPTEKKy0gICAgIy0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tZnJlZWJz ZCBOT1JVTj0xCistICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtub3duLW5ldGJzZCBOT1JV Tj0xCistICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC1zdW4tc29sYXJpcyBOT1JVTj0xCistCist ICAgICMgRklYTUU6IFRCRAorLSAgICAtIHN0YWdlOiA2NGJpdC10aWVyMgorLSAgICAtIHN0YWdl OiAzMmJpdC10aWVyMgorLQorLSAgICAjIEZJWE1FOiBpT1MKKy0gICAgIyBodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzI2CistICAgIC0gZW52 OiBUQVJHRVQ9eDg2XzY0LWFwcGxlLWlvcworLSAgICAjIElzIHRoaXMgcmVsYXRlZCB0byB0aGUg YWJvdmU/IE15c3RlcmlvdXMgdGVzdCBmYWlsdXJlCistICAgIC0gbmFtZTogImFhcmNoNjQtYXBw bGUtaW9zICsgTkVPTiIKKy0KKy1pbnN0YWxsOiB0cmF2aXNfcmV0cnkgcnVzdHVwIHRhcmdldCBh ZGQgJFRBUkdFVAorLWJlZm9yZV9zY3JpcHQ6IGNhcmdvIGdlbmVyYXRlLWxvY2tmaWxlCistc2Ny aXB0OiB0cmF2aXNfd2FpdCA1MCBjaS9ydW4tZG9ja2VyLnNoCistYWZ0ZXJfc2NyaXB0OiBzbGVl cCA1CistCistZW52OgorLSAgZ2xvYmFsOgorLSAgICBzZWN1cmU6ICJsUEh2N3M2K0F4UVlOYUZu Y3ljVkZRdCsrWTFhc1FtTWhPaWtRVTF6dGxQOENLNytobjJtOThjZy9ldU9KeXpJT2IyaUozWlg0 Y0daa3p3NGxjNTlNUUJCeWIxR3REYmF6UW9VT3pWRGJWZmU5QkREMmY4SlZvSUZoMUNNZmpQS1E3 R2cvckpxV2x3clVsU2Q1R054UEN1dEtqWTdxWmhKdVI2U1FiSmpsV2FHTjJWZDRmVkN6S1h6OGZI UlhnTUVaUytkK0NSNE5zcmtiODNKM1o0czVrU2RKbWhZeEo2MUFXanV6SlZ3VWg0bDMvSEVZbFNM NVhYcHVoNVIyaTdXMTZoMVBsTmRhVFVna1psaTFsSHpPOCs2UThMelg5K1hpTElFVlg5bHczQTJO ZElLR3o4RS8rN1FzNW9ZT2t3WWhqUk9zRFF4SUs3eGtTTTMwYlF1Tjdjd01CeWJBVkl5T1BKa3FY UTFkUXlwODNLU2RzT2o3Sk15RERSdmNFRExJNmVoUmxtNUVjZEg3WXJSZXVib044MWlVbzBTYTdW c3VVbWdqNWhqRVJDdDlyMzBmOWFXdWl0QUJhaTd2S1J0amdsZzdTcDVDckVWUEE0UFFzNlBxS0ND Um9nb2dnYlhKL1o1RHl3L1JaYVhQZU5SOStxSUtOMVZqbTlHZXcxc1JOMkpLLzMrdlhUS3R5SlhI L3VCeGdKdDRqUWxidVNoT0p1RitCU2ZURjg4c01lNjdhLzM1N1NTT0liNEprYUN5ZDBmbERDV1lF ODU3NmthSFBsVlZNVDJwZVhlZTBMZVJYbTFlMTNuRzNOYTB0M0xTL29ySkxQSE9TaE5RR29Eajdx QVA1YUVLZ2dSeWE4OTZKR3d0dmxhQkhIVG1TUWg2NUc3Y3lORXJabz0iCistYnJhbmNoZXM6Cist ICBvbmx5OgorLSAgICAtIHN0YWdpbmcgIyBib3JzIHIrCistICAgIC0gdHJ5aW5nICAjIGJvcnMg dHJ5CistICAgIC0gbWFzdGVyCistbm90aWZpY2F0aW9uczoKKy0gIGVtYWlsOgorLSAgICBvbl9z dWNjZXNzOiBuZXZlcgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Q2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9tbAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L0NhcmdvLnRvbWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDgwICswLDAgQEAKKy0jIFRISVMgRklM RSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTworLSMKKy0jIFdoZW4gdXBsb2Fk aW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRvbWF0aWNhbGx5CistIyAi bm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNvbXBhdGliaWxpdHkKKy0j IHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3JpdGUgYHBhdGhgIGRlcGVu ZGVuY2llcworLSMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVwZW5kZW5jaWVzLgor LSMKKy0jIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUgdGhhdCB0aGUgb3Jp Z2luYWwgQ2FyZ28udG9tbAorLSMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRpZmZlcmVudCAoYW5k IG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKy0jIFNlZSBDYXJnby50b21sLm9yaWcgZm9yIHRoZSBv cmlnaW5hbCBjb250ZW50cy4KKy0KKy1bcGFja2FnZV0KKy1lZGl0aW9uID0gIjIwMTgiCistbmFt ZSA9ICJwYWNrZWRfc2ltZCIKKy12ZXJzaW9uID0gIjAuMy45IgorLWJ1aWxkID0gImJ1aWxkLnJz IgorLWRlc2NyaXB0aW9uID0gIlBvcnRhYmxlIFBhY2tlZCBTSU1EIHZlY3RvcnMiCistaG9tZXBh Z2UgPSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZCIKKy1kb2N1bWVu dGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9jcmF0ZS9wYWNrZWRfc2ltZC8iCistcmVhZG1lID0g IlJFQURNRS5tZCIKKy1rZXl3b3JkcyA9IFsKKy0gICAgInNpbWQiLAorLSAgICAidmVjdG9yIiwK Ky0gICAgInBvcnRhYmlsaXR5IiwKKy1dCistY2F0ZWdvcmllcyA9IFsKKy0gICAgImhhcmR3YXJl LXN1cHBvcnQiLAorLSAgICAiY29uY3VycmVuY3kiLAorLSAgICAibm8tc3RkIiwKKy0gICAgImRh dGEtc3RydWN0dXJlcyIsCistXQorLWxpY2Vuc2UgPSAiTUlUIE9SIEFwYWNoZS0yLjAiCistcmVw b3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kIgorLQor LVtwYWNrYWdlLm1ldGFkYXRhLmRvY3MucnNdCistZmVhdHVyZXMgPSBbImludG9fYml0cyJdCist cnVzdGRvYy1hcmdzID0gWworLSAgICAiLS1jZmciLAorLSAgICAiZG9jX2NmZyIsCistXQorLQor LVtkZXBlbmRlbmNpZXNdCistY2ZnLWlmID0gIjEuMC4wIgorLQorLVtkZXBlbmRlbmNpZXMuY29y ZV9hcmNoXQorLXZlcnNpb24gPSAiMC4xLjUiCistb3B0aW9uYWwgPSB0cnVlCistCistW2RlcGVu ZGVuY2llcy5udW0tdHJhaXRzXQorLXZlcnNpb24gPSAiMC4yLjE0IgorLWRlZmF1bHQtZmVhdHVy ZXMgPSBmYWxzZQorLQorLVtkZXYtZGVwZW5kZW5jaWVzXQorLXBhc3RlID0gIl4xIgorLQorLVtk ZXYtZGVwZW5kZW5jaWVzLmFycmF5dmVjXQorLXZlcnNpb24gPSAiXjAuNSIKKy1kZWZhdWx0LWZl YXR1cmVzID0gZmFsc2UKKy0KKy1bZmVhdHVyZXNdCistZGVmYXVsdCA9IFtdCistaW50b19iaXRz ID0gW10KKy1saWJjb3JlX25lb24gPSBbXQorLQorLVt0YXJnZXQuImNmZyh0YXJnZXRfYXJjaCA9 IFwieDg2XzY0XCIpIi5kZXBlbmRlbmNpZXMuc2xlZWYtc3lzXQorLXZlcnNpb24gPSAiMC4xLjIi Cistb3B0aW9uYWwgPSB0cnVlCistCistW3RhcmdldC53YXNtMzItdW5rbm93bi11bmtub3duLmRl di1kZXBlbmRlbmNpZXNdCistd2FzbS1iaW5kZ2VuID0gIj0wLjIuODciCistd2FzbS1iaW5kZ2Vu LXRlc3QgPSAiPTAuMy4zNyIKKy0KKy1bYmFkZ2VzLmlzLWl0LW1haW50YWluZWQtaXNzdWUtcmVz b2x1dGlvbl0KKy1yZXBvc2l0b3J5ID0gInJ1c3QtbGFuZy9wYWNrZWRfc2ltZCIKKy0KKy1bYmFk Z2VzLmlzLWl0LW1haW50YWluZWQtb3Blbi1pc3N1ZXNdCistcmVwb3NpdG9yeSA9ICJydXN0LWxh bmcvcGFja2VkX3NpbWQiCistCistW2JhZGdlcy5tYWludGVuYW5jZV0KKy1zdGF0dXMgPSAiZXhw ZXJpbWVudGFsIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvTElD RU5TRS1BUEFDSEUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hF CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvTElDRU5TRS1BUEFDSEUKKysrKyAvZGV2L251bGwKK0BAIC0xLDIwMSArMCwwIEBACist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKy0gICAgICAgICAg ICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CistICAgICAgICAgICAgICAg ICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworLQorLVRFUk1TIEFORCBDT05E SVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorLQorLTEuIERl ZmluaXRpb25zLgorLQorLSAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCistICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBk ZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCistCistICAg IkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhv cml6ZWQgYnkKKy0gICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExp Y2Vuc2UuCistCistICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhl IGFjdGluZyBlbnRpdHkgYW5kIGFsbAorLSAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwg YXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKy0gICBjb250cm9sIHdpdGgg dGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorLSAgICJj b250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNl IHRoZQorLSAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVy IGJ5IGNvbnRyYWN0IG9yCistICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0 eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCistICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBv ciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKy0KKy0gICAiWW91 IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Cist ICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKy0KKy0g ICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcg bW9kaWZpY2F0aW9ucywKKy0gICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJl IHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCistICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlv biBmaWxlcy4KKy0KKy0gICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0 aW5nIGZyb20gbWVjaGFuaWNhbAorLSAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9m IGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKy0gICBub3QgbGltaXRlZCB0byBjb21waWxl ZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCistICAgYW5kIGNvbnZlcnNp b25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorLQorLSAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3 b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCistICAgT2JqZWN0IGZvcm0s IG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorLSAg IGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUg d29yaworLSAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdyku CistCistICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIg aW4gU291cmNlIG9yIE9iamVjdAorLSAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2 ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKy0gICBlZGl0b3JpYWwgcmV2aXNp b25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCist ICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAu IEZvciB0aGUgcHVycG9zZXMKKy0gICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mg c2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKy0gICBzZXBhcmFibGUgZnJvbSwg b3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCist ICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKy0KKy0gICAiQ29udHJp YnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworLSAg IHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBv ciBhZGRpdGlvbnMKKy0gICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9m LCB0aGF0IGlzIGludGVudGlvbmFsbHkKKy0gICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGlu Y2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCistICAgb3IgYnkgYW4g aW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxm IG9mCistICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRl ZmluaXRpb24sICJzdWJtaXR0ZWQiCistICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywg dmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorLSAgIHRvIHRoZSBMaWNlbnNv ciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCist ICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2Rl IGNvbnRyb2wgc3lzdGVtcywKKy0gICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFy ZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorLSAgIExpY2Vuc29yIGZvciB0aGUg cHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorLSAgIGV4 Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3Ro ZXJ3aXNlCistICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIg YXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCistCistICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFu IExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKy0gICBvbiBiZWhh bGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBh bmQKKy0gICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKy0KKy0y LiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNv bmRpdGlvbnMgb2YKKy0gICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdy YW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCistICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBu by1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKy0gICBjb3B5cmlnaHQgbGljZW5z ZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKy0gICBwdWJsaWNs eSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0 aGUKKy0gICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVj dCBmb3JtLgorLQorLTMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorLSAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRv ciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKy0gICB3b3JsZHdpZGUsIG5vbi1l eGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorLSAgIChleGNl cHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2 ZSBtYWRlLAorLSAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3 aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorLSAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9u bHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCistICAgYnkgc3VjaCBDb250cmli dXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKy0gICBDb250cmli dXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMp CistICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3Vi bWl0dGVkLiBJZiBZb3UKKy0gICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBh bnkgZW50aXR5IChpbmNsdWRpbmcgYQorLSAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBp biBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKy0gICBvciBhIENvbnRyaWJ1dGlv biBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorLSAgIG9y IGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5z ZXMKKy0gICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBz aGFsbCB0ZXJtaW5hdGUKKy0gICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmls ZWQuCistCistNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmli dXRlIGNvcGllcyBvZiB0aGUKKy0gICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBp biBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKy0gICBtb2RpZmljYXRpb25zLCBhbmQgaW4g U291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorLSAgIG1lZXQgdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorLQorLSAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciBy ZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCistICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5 IG9mIHRoaXMgTGljZW5zZTsgYW5kCistCistICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2Rp ZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworLSAgICAgICBzdGF0aW5nIHRo YXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKy0KKy0gICAoYykgWW91IG11c3QgcmV0YWlu LCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKy0gICAgICAgdGhh dCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAor LSAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBX b3JrLAorLSAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWlu IHRvIGFueSBwYXJ0IG9mCistICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKy0KKy0g ICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBv ZiBpdHMKKy0gICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRo YXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorLSAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBv ZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKy0gICAgICAgd2l0aGluIHN1Y2gg Tk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CistICAgICAg IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0 IG9uZQorLSAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRl eHQgZmlsZSBkaXN0cmlidXRlZAorLSAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdv cmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCistICAgICAgIGRvY3VtZW50YXRpb24sIGlm IHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorLSAgICAgICB3 aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5k CistICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBl YXIuIFRoZSBjb250ZW50cworLSAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZv cm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCistICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExp Y2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCistICAgICAgIG5vdGljZXMg d2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCist ICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3Jr LCBwcm92aWRlZAorLSAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3Rp Y2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKy0gICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNl LgorLQorLSAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91 ciBtb2RpZmljYXRpb25zIGFuZAorLSAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVy ZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKy0gICBmb3IgdXNlLCByZXByb2R1Y3Rp b24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCistICAgZm9yIGFu eSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCist ICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBj b21wbGllcyB3aXRoCistICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4K Ky0KKy01LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRs eSBzdGF0ZSBvdGhlcndpc2UsCistICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1 Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCistICAgYnkgWW91IHRvIHRoZSBMaWNl bnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKy0gICB0aGlz IExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKy0g ICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNl ZGUgb3IgbW9kaWZ5CistICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVl bWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKy0gICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBz dWNoIENvbnRyaWJ1dGlvbnMuCistCistNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMg bm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorLSAgIG5hbWVzLCB0cmFkZW1h cmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKy0g ICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4g ZGVzY3JpYmluZyB0aGUKKy0gICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRo ZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKy0KKy03LiBEaXNjbGFpbWVyIG9mIFdhcnJh bnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKy0gICBhZ3JlZWQgdG8g aW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCistICAgQ29u dHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMs CistICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhl ciBleHByZXNzIG9yCistICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24s IGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKy0gICBvZiBUSVRMRSwgTk9OLUlORlJJTkdF TUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCistICAgUEFSVElDVUxBUiBQ VVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCist ICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFu ZCBhc3N1bWUgYW55CistICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2Yg cGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorLQorLTguIExpbWl0YXRpb24gb2YgTGlh YmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorLSAgIHdoZXRo ZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNl LAorLSAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVy YXRlIGFuZCBncm9zc2x5CistICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0 aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKy0gICBsaWFibGUgdG8gWW91IGZvciBkYW1h Z2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCistICAgaW5jaWRl bnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBh cyBhCistICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFi aWxpdHkgdG8gdXNlIHRoZQorLSAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8g ZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKy0gICB3b3JrIHN0b3BwYWdlLCBjb21wdXRl ciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorLSAgIG90aGVyIGNvbW1l cmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKy0gICBo YXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCistCist OS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRp c3RyaWJ1dGluZworLSAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91 IG1heSBjaG9vc2UgdG8gb2ZmZXIsCistICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFu Y2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKy0gICBvciBvdGhlciBsaWFiaWxp dHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworLSAgIExp Y2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFj dCBvbmx5CistICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2li aWxpdHksIG5vdCBvbiBiZWhhbGYKKy0gICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBv bmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCistICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNo IENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CistICAgaW5jdXJyZWQgYnks IG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgor LSAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlh YmlsaXR5LgorLQorLUVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworLQorLUFQUEVORElYOiBI b3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKy0KKy0gICBUbyBh cHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2lu ZworLSAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJy YWNrZXRzICJbXSIKKy0gICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9y bWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorLSAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91 bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCistICAgY29tbWVudCBzeW50YXggZm9y IHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCistICAgZmlsZSBvciBj bGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQor LSAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2ll cgorLSAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKy0KKy1D b3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKy0KKy1MaWNlbnNlZCB1 bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy15 b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExp Y2Vuc2UuCistWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CistCistCWh0 dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLQorLVVubGVzcyByZXF1 aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUK Ky1kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMg SVMiIEJBU0lTLAorLVdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLVNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNw ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy1saW1pdGF0aW9ucyB1 bmRlciB0aGUgTGljZW5zZS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLU1J VAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL0xJQ0VOU0UtTUlUCisrKysgL2Rldi9udWxsCitAQCAtMSwyNSArMCwwIEBACistQ29w eXJpZ2h0IChjKSAyMDE0IFRoZSBSdXN0IFByb2plY3QgRGV2ZWxvcGVycworLQorLVBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkKKy1wZXJzb24gb2J0 YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkCistZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZQorLVNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0CistbGltaXRhdGlvbiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwKKy1wdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKKy10aGUgU29mdHdhcmUsIGFuZCB0byBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZQorLWlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCistY29uZGl0aW9uczoKKy0KKy1UaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQorLXNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKy1vZiB0aGUgU29m dHdhcmUuCistCistVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YKKy1BTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVECistVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNT IEZPUiBBCistUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UCistU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkKKy1DTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OCistT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9V VCBPRiBPUgorLUlOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBP VEhFUgorLURFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvUkVBRE1FLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDQgKzAs MCBAQAorLSMgYFNpbWQ8W1Q7IE5dPmAKKy0KKy0jIyBJbXBsZW1lbnRhdGlvbiBvZiBbUnVzdCBS RkMgIzIzNjY6IGBzdGQ6OnNpbWRgXVtyZmMyMzY2XQorLQorLVshW0xhdGVzdCBWZXJzaW9uXV1b Y3JhdGVzLmlvXSBbIVtkb2NzXV1bbWFzdGVyX2RvY3NdCistCistKipXQVJOSU5HKio6IHRoaXMg Y3JhdGUgb25seSBzdXBwb3J0cyB0aGUgbW9zdCByZWNlbnQgbmlnaHRseSBSdXN0IHRvb2xjaGFp bgorLWFuZCB3aWxsIGJlIHN1cGVyc2VkZWQgYnkgW2AjIVtmZWF0dXJlKHBvcnRhYmxlX3NpbWQp XWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcG9ydGFibGUtc2ltZCkuCistCistIyMg RG9jdW1lbnRhdGlvbgorLQorLSogW0FQSSBkb2NzIChgbWFzdGVyYCBicmFuY2gpXVttYXN0ZXJf ZG9jc10KKy0qIFtQZXJmb3JtYW5jZSBndWlkZV1bcGVyZl9ndWlkZV0KKy0qIFtBUEkgZG9jcyAo YGRvY3MucnNgKV1bZG9jcy5yc10KKy0qIFtSRkMyMzY2IGBzdGQ6OnNpbWRgXVtyZmMyMzY2XTog LSBjb250YWlucyBtb3RpdmF0aW9uLCBkZXNpZ24gcmF0aW9uYWxlLAorLSAgZGlzY3Vzc2lvbiwg ZXRjLgorLQorLSMjIEV4YW1wbGVzCistCistTW9zdCBvZiB0aGUgZXhhbXBsZXMgY29tZSB3aXRo IGJvdGggYSBzY2FsYXIgYW5kIGEgdmVjdG9yaXplZCBpbXBsZW1lbnRhdGlvbi4KKy0KKy0qIFtg YW9iZW5jaGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC90cmVlL21hc3Rlci9leGFtcGxlcy9hb2JlbmNoKQorLSogW2BmYW5ua3VjaF9yZWR1eGBdKGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rl ci9leGFtcGxlcy9mYW5ua3VjaF9yZWR1eCkKKy0qIFtgbWF0cml4IGludmVyc2VgXShodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhh bXBsZXMvbWF0cml4X2ludmVyc2UpCistKiBbYG1hbmRlbGJyb3RgXShodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvbWFu ZGVsYnJvdCkKKy0qIFtgbi1ib2R5YF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL25ib2R5KQorLSogW2BvcHRpb25z X3ByaWNpbmdgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvb3B0aW9uc19wcmljaW5nKQorLSogW2BzcGVjdHJhbF9u b3JtYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3Ry ZWUvbWFzdGVyL2V4YW1wbGVzL3NwZWN0cmFsX25vcm0pCistKiBbYHRyaWFuZ2xlIHRyYW5zZm9y bWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVl L21hc3Rlci9leGFtcGxlcy90cmlhbmdsZV94Zm9ybSkKKy0qIFtgc3RlbmNpbGBdKGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFt cGxlcy9zdGVuY2lsKQorLSogW2B2ZWN0b3IgZG90IHByb2R1Y3RgXShodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvZG90 X3Byb2R1Y3QpCistCistIyMgQ2FyZ28gZmVhdHVyZXMKKy0KKy0qIGBpbnRvX2JpdHNgIChkZWZh dWx0OiBkaXNhYmxlZCk6IGVuYWJsZXMgYEZyb21CaXRzYC9gSW50b0JpdHNgIHRyYWl0CistICBp bXBsZW1lbnRhdGlvbnMgZm9yIHRoZSB2ZWN0b3IgdHlwZXMuIFRoZXNlIGFsbG93IHJlaW50ZXJw cmV0aW5nIHRoZSBiaXRzIG9mIGEKKy0gIHZlY3RvciB0eXBlIGFzIHRob3NlIG9mIGFub3RoZXIg dmVjdG9yIHR5cGUgc2FmZWx5IGJ5IGp1c3QgdXNpbmcgdGhlCistICBgLmludG9fYml0cygpYCBt ZXRob2QuCistCistIyMgUGVyZm9ybWFuY2UKKy0KKy1UaGUgZm9sbG93aW5nIFtJU1BDXSBleGFt cGxlcyBhcmUgYWxzbyBwYXJ0IG9mIGBwYWNrZWRfc2ltZGAncworLVtgZXhhbXBsZXMvYF0oaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVy L2V4YW1wbGVzLykKKy1kaXJlY3RvcnksIHdoZXJlIGBwYWNrZWRfc2ltZGArW2ByYXlvbmBdW3Jh eW9uXSBhcmUgdXNlZCB0byBlbXVsYXRlIFtJU1BDXSdzCistU2luZ2xlLVByb2dyYW0tTXVsdGlw bGUtRGF0YSAoU1BNRCkgcHJvZ3JhbW1pbmcgbW9kZWwuIFRoZSBwZXJmb3JtYW5jZSByZXN1bHRz Cistb24gZGlmZmVyZW50IGhhcmR3YXJlIGlzIHNob3duIGluIHRoZSBgcmVhZG1lLm1kYCBvZiBl YWNoIGV4YW1wbGUuIFRoZSBmb2xsb3dpbmcKKy10YWJsZSBzdW1tYXJpemVzIHRoZSBwZXJmb3Jt YW5jZSByYW5nZXMsIHdoZXJlIGArYCBtZWFucyBzcGVlZC11cCBhbmQgYC1gCistc2xvd2Rvd246 CistCistKiBgYW9iZW5jaGA6IGBbLTEuMDJ4LCArMS41M3hdYCwKKy0qIGBzdGVuY2lsYDogYFsr MS4wNngsICsxLjcyeF1gLAorLSogYG1hbmRlbGJyb3RgOiBgWy0xLjc0eCwgKzEuMnhdYCwKKy0q IGBvcHRpb25zX3ByaWNpbmdgOgorLSAgICogYGJsYWNrX3NjaG9sZXNgOiBgKzEuMHhgCistICAg KiBgYmlub21pYWxfcHV0YDogYCsxLjR4YAorLQorLSBXaGlsZSBTUE1EIGlzIG5vdCB0aGUgaW50 ZW5kZWQgdXNlIGNhc2UgZm9yIGBwYWNrZWRfc2ltZGAsIGl0IGlzIHBvc3NpYmxlIHRvCistIGNv bWJpbmUgdGhlIGxpYnJhcnkgd2l0aCBbYHJheW9uYF1bcmF5b25dIHRvIHBvb3JseSBlbXVsYXRl IFtJU1BDXSdzIFNQTUQgcHJvZ3JhbW1pbmcKKy0gbW9kZWwgaW4gUnVzdC4gV3JpdGluZyBwZXJm b3JtYW50IGNvZGUgaXMgbm90IGFzIHN0cmFpZ2h0Zm9yd2FyZCBhcyB3aXRoCistIFtJU1BDXSwg YnV0IHdpdGggc29tZSBjYXJlIChlLmcuIHNlZSB0aGUgW1BlcmZvcm1hbmNlIEd1aWRlXVtwZXJm X2d1aWRlXSkgb25lCistIGNhbiBlYXNpbHkgbWF0Y2ggYW5kIG9mdGVuIG91dC1wZXJmb3JtIFtJ U1BDXSdzICJkZWZhdWx0IHBlcmZvcm1hbmNlIi4KKy0KKy0jIyBQbGF0Zm9ybSBzdXBwb3J0Cist CistVGhlIGZvbGxvd2luZyB0YWJsZSBkZXNjcmliZXMgdGhlIHN1cHBvcnRlZCBwbGF0Zm9ybXM6 IGBidWlsZGAgc2hvd3Mgd2hldGhlcgorLXRoZSBsaWJyYXJ5IGNvbXBpbGVzIHdpdGhvdXQgaXNz dWVzIGZvciBhIGdpdmVuIHRhcmdldCwgd2hpbGUgYHJ1bmAgc2hvd3MKKy13aGV0aGVyIHRoZSB0 ZXN0IHN1aXRlIHBhc3NlcyBmb3IgYSBnaXZlbiB0YXJnZXQuCistCistfCAqKkxpbnV4KiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8CistfC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXwtLS0tLS0tLS18 CistfCBgaTU4Ni11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAg fCDinJcgICAgICAgfAorLXwgYGk2ODYtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAgICB8 IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVg ICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCBgYXJtLXVua25vd24t bGludXgtZ251ZWFiaWhmYCAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAorLXwg YGFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyT ICAgICAgIHwKKy18IGBhYXJjaDY0LXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMg ICAgICAgICB8IOKckyAgICAgICB8CistfCBgcG93ZXJwYy11bmtub3duLWxpbnV4LWdudWAgICAg ICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYHBvd2VycGM2NC11bmtub3du LWxpbnV4LWdudWAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGBwb3dl cnBjNjRsZS11bmtub3duLWxpbnV4LWdudWAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAg ICB8CistfCBgczM5MHgtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAgIHwg4pyTICAgICAg ICAgfCDinJcgICAgICAgfAorLXwgYHNwYXJjNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAg ICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGB0aHVtYnY3bmVvbi11bmtub3duLWxp bnV4LWdudWVhYmloZmAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCAqKk1hY09TWCoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8CistfCBg eDg2XzY0LWFwcGxlLWRhcndpbmAgICAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMg ICAgICAgfAorLXwgKipBbmRyb2lkKiogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVp bGQqKiB8ICoqcnVuKiogfAorLXwgYHg4Nl82NC1saW51eC1hbmRyb2lkYCAgICAgICAgICAgICAg ICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKKy18IGBhcm12Ny1saW51eC1hbmRyb2lkZWFi aWAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCBgYWFyY2g2NC1s aW51eC1hbmRyb2lkYCAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAor LXwgYHRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpYCAgICAgICB8IOKckyAgICAgICAgIHwg 4pyXICAgICAgIHwKKy18ICoqaU9TKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAq KmJ1aWxkKiogfCAqKnJ1bioqIHwKKy18IGB4ODZfNjQtYXBwbGUtaW9zYCAgICAgICAgICAgICAg ICAgICAgfCDinJcgICAgICAgICB8IOKclyAgICAgICB8CistfCBgYWFyY2g2NC1hcHBsZS1pb3Ng ICAgICAgICAgICAgICAgICAgIHwg4pyXICAgICAgICAgfCDinJcgICAgICAgfAorLQorLQorLSMj IE1hY2hpbmUgY29kZSB2ZXJpZmljYXRpb24KKy0KKy1UaGUKKy1bYHZlcmlmeS9gXShodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvdmVy aWZ5KQorLWNyYXRlIHRlc3RzIGRpc2Fzc2VtYmxlcyB0aGUgcG9ydGFibGUgcGFja2VkIHZlY3Rv ciBBUElzIGF0IHJ1bi10aW1lIGFuZAorLWNvbXBhcmVzIHRoZSBnZW5lcmF0ZWQgbWFjaGluZSBj b2RlIGFnYWluc3QgdGhlIGRlc2lyZWQgb25lIHRvIG1ha2Ugc3VyZSB0aGF0CistdGhpcyBjcmF0 ZSByZW1haW5zIGVmZmljaWVudC4KKy0KKy0jIyBMaWNlbnNlCistCistVGhpcyBwcm9qZWN0IGlz IGxpY2Vuc2VkIHVuZGVyIGVpdGhlciBvZgorLQorLSogW0FwYWNoZSBMaWNlbnNlLCBWZXJzaW9u IDIuMF0oaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQorLSAgKFtM SUNFTlNFLUFQQUNIRV0oTElDRU5TRS1BUEFDSEUpKQorLQorLSogW01JVCBMaWNlbnNlXShodHRw Oi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQorLSAgKFtMSUNFTlNFLU1JVF0oTElDRU5T RS1NSVQpKQorLQorLWF0IHlvdXIgb3B0aW9uLgorLQorLSMjIENvbnRyaWJ1dGluZworLQorLVdl IHdlbGNvbWUgYWxsIHBlb3BsZSB3aG8gd2FudCB0byBjb250cmlidXRlLgorLVBsZWFzZSBzZWUg dGhlIFtjb250cmlidXRpbmcgaW5zdHJ1Y3Rpb25zXSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKy0K Ky1Db250cmlidXRpb25zIGluIGFueSBmb3JtIChpc3N1ZXMsIHB1bGwgcmVxdWVzdHMsIGV0Yy4p IHRvIHRoaXMgcHJvamVjdAorLW11c3QgYWRoZXJlIHRvIFJ1c3QncyBbQ29kZSBvZiBDb25kdWN0 XS4KKy0KKy1Vbmxlc3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLCBhbnkgY29udHJp YnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkCistZm9yIGluY2x1c2lvbiBpbiBgcGFja2Vk X3NpbWRgIGJ5IHlvdSwgYXMgZGVmaW5lZCBpbiB0aGUgQXBhY2hlLTIuMCBsaWNlbnNlLCBzaGFs bCBiZQorLWR1YWwgbGljZW5zZWQgYXMgYWJvdmUsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVy bXMgb3IgY29uZGl0aW9ucy4KKy0KKy1bdHJhdmlzXTogaHR0cHM6Ly90cmF2aXMtY2kuY29tL3J1 c3QtbGFuZy9wYWNrZWRfc2ltZAorLVtUcmF2aXMtQ0kgU3RhdHVzXTogaHR0cHM6Ly90cmF2aXMt Y2kuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC5zdmc/YnJhbmNoPW1hc3RlcgorLVthcHB2ZXlv cl06IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvZ256bGJnL3BhY2tlZC1zaW1kCist W0FwcHZleW9yIFN0YXR1c106IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9qZWN0cy9z dGF0dXMvaGQ3djlkdnI0NDJoZ2RpeD9zdmc9dHJ1ZQorLVtMYXRlc3QgVmVyc2lvbl06IGh0dHBz Oi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvcGFja2VkX3NpbWQuc3ZnCistW2NyYXRlcy5pb106 IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9wYWNrZWRfc2ltZAorLVtkb2NzXTogaHR0cHM6Ly9k b2NzLnJzL3BhY2tlZF9zaW1kL2JhZGdlLnN2ZworLVtkb2NzLnJzXTogaHR0cHM6Ly9kb2NzLnJz L3BhY2tlZF9zaW1kCistW21hc3Rlcl9kb2NzXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5n aXRodWIuaW8vcGFja2VkX3NpbWQvcGFja2VkX3NpbWQvCistW3BlcmZfZ3VpZGVdOiBodHRwczov L3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLworLVty ZmMyMzY2XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2NgorLVtJ U1BDXTogaHR0cHM6Ly9pc3BjLmdpdGh1Yi5pby8KKy1bcmF5b25dOiBodHRwczovL2NyYXRlcy5p by9jcmF0ZXMvcmF5b24KKy1bYm9vc3RfbGljZW5zZV06IGh0dHBzOi8vd3d3LmJvb3N0Lm9yZy9M SUNFTlNFXzFfMC50eHQKKy1bU0xFRUZdOiBodHRwczovL3NsZWVmLm9yZy8KKy1bc2xlZWZfc3lz XTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3NsZWVmLXN5cworLVtjb250cmlidXRpbmcgaW5z dHJ1Y3Rpb25zXTogY29udHJpYnV0aW5nLm1kCistW0NvZGUgb2YgQ29uZHVjdF06IGh0dHBzOi8v d3d3LnJ1c3QtbGFuZy5vcmcvZW4tVVMvY29uZHVjdC5odG1sCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2JvcnMudG9tbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbAorKysrIC9kZXYvbnVsbAorQEAgLTEsMyAr MCwwIEBACistc3RhdHVzID0gWworLSAgICAiY29udGludW91cy1pbnRlZ3JhdGlvbi90cmF2aXMt Y2kvcHVzaCIKKy1dCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9idWlsZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2J1aWxkLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2 ICswLDAgQEAKKy1mbiBtYWluKCkgeworLSAgICBsZXQgdGFyZ2V0ID0gc3RkOjplbnY6OnZhcigi VEFSR0VUIikuZXhwZWN0KCJUQVJHRVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGRlZmluZWQi KTsKKy0gICAgaWYgdGFyZ2V0LmNvbnRhaW5zKCJuZW9uIikgeworLSAgICAgICAgcHJpbnRsbiEo ImNhcmdvOnJ1c3RjLWNmZz1saWJjb3JlX25lb24iKTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCisrKysgL2Rldi9udWxsCitA QCAtMSw3MSArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgYmFzaAorLSMKKy0jIFBlcmZvcm1zIGFu IG9wZXJhdGlvbiBvbiBhbGwgdGFyZ2V0cworLQorLXNldCAtZXgKKy0KKy06ICIkezE/VGhlIGFs bC5zaCBzY3JpcHQgcmVxdWlyZXMgb25lIGFyZ3VtZW50Ln0iCistCistb3A9JDEKKy0KKy1jYXJn b19jbGVhbigpIHsKKy0gICAgY2FyZ28gY2xlYW4KKy19CistCistY2FyZ29fY2hlY2tfZm10KCkg eworLSAgICBjYXJnbyBmbXQgLS1hbGwgLS0gLS1jaGVjaworLX0KKy0KKy1jYXJnb19mbXQoKSB7 CistICAgIGNhcmdvIGZtdCAtLWFsbAorLX0KKy0KKy1jYXJnb19jbGlwcHkoKSB7CistICAgIGNh cmdvIGNsaXBweSAtLWFsbCAtLSAtRCBjbGlwcHk6OnBlcmYKKy19CistCistQ01EPSItMSIKKy0K Ky1jYXNlICRvcCBpbgorLSAgICBjbGVhbiopCistICAgICAgICBDTUQ9Y2FyZ29fY2xlYW4KKy0g ICAgICAgIDs7CistICAgIGNoZWNrX2ZtdCopCistICAgICAgICBDTUQ9Y2FyZ29fY2hlY2tfZm10 CistICAgICAgICA7OworLSAgICBmbXQqKQorLSAgICAgICAgQ01EPWNhcmdvX2ZtdAorLSAgICAg ICAgOzsKKy0gICAgY2xpcHB5KQorLSAgICAgICAgQ01EPWNhcmdvX2NsaXBweQorLSAgICAgICAg OzsKKy0gICAgKikKKy0gICAgICAgIGVjaG8gIlVua25vd24gb3BlcmF0aW9uOiBcIiR7b3B9XCIi CistICAgICAgICBleGl0IDEKKy0gICAgICAgIDs7CistZXNhYworLQorLWVjaG8gIk9wZXJhdGlv biBpczogJHtDTUR9IgorLQorLSMgT24gc3JjLworLSRDTUQKKy0KKy0jIENoZWNrIGV4YW1wbGVz LworLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KKy1kbworLSAgICBkaXI9JHtkaXIlKi99CistICAg ICgKKy0gICAgICAgIGNkICIke2RpciUqL30iCistICAgICAgICAkQ01ECistICAgICkKKy1kb25l CistCistKAorLSAgICBjZCB2ZXJpZnkvdmVyaWZ5CistICAgICRDTUQKKy0pCistCistKAorLSAg ICBjZCBtaWNyb19iZW5jaG1hcmtzCistICAgICRDTUQKKy0pCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv YW5kcm9pZC1pbnN0YWxsLW5kay5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjEgKzAsMCBAQAor LSMhL3Vzci9iaW4vZW52IHNoCistIyBDb3B5cmlnaHQgMjAxNiBUaGUgUnVzdCBQcm9qZWN0IERl dmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCistIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGly ZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9uIGFuZCBhdAorLSMgaHR0cDovL3J1c3QtbGFuZy5v cmcvQ09QWVJJR0hULgorLSMKKy0jIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg VmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCistIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcv bGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorLSMgPExJQ0VOU0UtTUlU IG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCistIyBvcHRp b24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNvcGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVk CistIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorLQorLXNldCAtZXgKKy0KKy1B TkRST0lEX05ES19VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2FuZHJvaWQvcmVwb3NpdG9yeQor LUFORFJPSURfTkRLX0FSQ0hJVkU9YW5kcm9pZC1uZGstcjI1Yi1saW51eC56aXAKKy0KKy1jdXJs IC1mTyAiJEFORFJPSURfTkRLX1VSTC8kQU5EUk9JRF9OREtfQVJDSElWRSIKKy11bnppcCAtcSAk QU5EUk9JRF9OREtfQVJDSElWRQorLXJtICRBTkRST0lEX05ES19BUkNISVZFCistbXYgYW5kcm9p ZC1uZGstKiBuZGsKKy1ybSAtcmYgYW5kcm9pZC1uZGstKgorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLXNkay5zaAorZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Fu ZHJvaWQtaW5zdGFsbC1zZGsuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDYwICswLDAgQEAKKy0j IS91c3IvYmluL2VudiBzaAorLSMgQ29weXJpZ2h0IDIwMTYgVGhlIFJ1c3QgUHJvamVjdCBEZXZl bG9wZXJzLiBTZWUgdGhlIENPUFlSSUdIVAorLSMgZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVj dG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKKy0jIGh0dHA6Ly9ydXN0LWxhbmcub3Jn L0NPUFlSSUdIVC4KKy0jCistIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZl cnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorLSMgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xp Y2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKy0jIDxMSUNFTlNFLU1JVCBv ciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgorLSMgb3B0aW9u LiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAor LSMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKy0KKy1zZXQgLWV4CistCistIyBQ cmVwIHRoZSBTREsgYW5kIGVtdWxhdG9yCistIworLSMgTm90ZSB0aGF0IHRoZSB1cGRhdGUgcHJv Y2VzcyByZXF1aXJlcyB0aGF0IHdlIGFjY2VwdCBhIGJ1bmNoIG9mIGxpY2Vuc2VzLCBhbmQKKy0j IHdlIGNhbid0IGp1c3QgcGlwZSBgeWVzYCBpbnRvIGl0IGZvciBzb21lIHJlYXNvbiwgc28gd2Ug dGFrZSB0aGUgc2FtZSBzdHJhdGVneQorLSMgbG9jYXRlZCBpbiBodHRwczovL2dpdGh1Yi5jb20v YXBwdW5pdGUvZG9ja2VyIGJ5IGp1c3Qgd3JhcHBpbmcgaXQgaW4gYSBzY3JpcHQKKy0jIHdoaWNo IGFwcGFyZW50bHkgbWFnaWNhbGx5IGFjY2VwdHMgdGhlIGxpY2Vuc2VzLgorLQorLW1rZGlyIHNk aworLWN1cmwgLS1yZXRyeSA1IGh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRv cnkvc2RrLXRvb2xzLWxpbnV4LTM4NTkzOTcuemlwIC1PCistdW56aXAgLWQgc2RrIHNkay10b29s cy1saW51eC0zODU5Mzk3LnppcAorLQorLWNhc2UgIiQxIiBpbgorLSAgYXJtIHwgYXJtdjcpCist ICAgIGFiaT1hcm1lYWJpLXY3YQorLSAgICA7OworLQorLSAgYWFyY2g2NCkKKy0gICAgYWJpPWFy bTY0LXY4YQorLSAgICA7OworLQorLSAgaTY4NikKKy0gICAgYWJpPXg4NgorLSAgICA7OworLQor LSAgeDg2XzY0KQorLSAgICBhYmk9eDg2XzY0CistICAgIDs7CistCistICAqKQorLSAgICBlY2hv ICJpbnZhbGlkIGFyY2g6ICQxIgorLSAgICBleGl0IDEKKy0gICAgOzsKKy1lc2FjOworLQorLSMg LS1ub19odHRwcyBhdm9pZHMKKy0gICAgICMgamF2YXgubmV0LnNzbC5TU0xIYW5kc2hha2VFeGNl cHRpb246IHN1bi5zZWN1cml0eS52YWxpZGF0b3IuVmFsaWRhdG9yRXhjZXB0aW9uOiBObyB0cnVz dGVkIGNlcnRpZmljYXRlIGZvdW5kCisteWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIg LS1saWNlbnNlcyAtLW5vX2h0dHBzCisteWVzIHwgLi9zZGsvdG9vbHMvYmluL3Nka21hbmFnZXIg LS1ub19odHRwcyBcCistICAgICAgICAiZW11bGF0b3IiIFwKKy0gICAgICAgICJwbGF0Zm9ybS10 b29scyIgXAorLSAgICAgICAgInBsYXRmb3JtczthbmRyb2lkLTI0IiBcCistICAgICAgICAic3lz dGVtLWltYWdlczthbmRyb2lkLTI0O2RlZmF1bHQ7JGFiaSIKKy0KKy1lY2hvICJubyIgfAorLSAg ICAuL3Nkay90b29scy9iaW4vYXZkbWFuYWdlciBjcmVhdGUgYXZkIFwKKy0gICAgICAgIC0tbmFt ZSAiJHsxfSIgXAorLSAgICAgICAgLS1wYWNrYWdlICJzeXN0ZW0taW1hZ2VzO2FuZHJvaWQtMjQ7 ZGVmYXVsdDskYWJpIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvYW5kcm9pZC1zeXNpbWFnZS5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv YW5kcm9pZC1zeXNpbWFnZS5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2gKKysrKyAvZGV2 L251bGwKK0BAIC0xLDU2ICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBiYXNoCistCistIyBDb3B5 cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hU CistIyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9u IGFuZCBhdAorLSMgaHR0cDovL3J1c3QtbGFuZy5vcmcvQ09QWVJJR0hULgorLSMKKy0jIExpY2Vu c2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hF IG9yCistIyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRo ZSBNSVQgbGljZW5zZQorLSMgPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9s aWNlbnNlcy9NSVQ+LCBhdCB5b3VyCistIyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNv cGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCistIyBleGNlcHQgYWNjb3JkaW5nIHRvIHRo b3NlIHRlcm1zLgorLQorLXNldCAtZXgKKy0KKy1VUkw9aHR0cHM6Ly9kbC5nb29nbGUuY29tL2Fu ZHJvaWQvcmVwb3NpdG9yeS9zeXMtaW1nL2FuZHJvaWQKKy0KKy1tYWluKCkgeworLSAgICBsb2Nh bCBhcmNoPSIkezF9IgorLSAgICBsb2NhbCBuYW1lPSIkezJ9IgorLSAgICBsb2NhbCBkZXN0PS9z eXN0ZW0KKy0gICAgbG9jYWwgdGQKKy0gICAgdGQ9IiQobWt0ZW1wIC1kKSIKKy0KKy0gICAgYXB0 LWdldCBpbnN0YWxsIC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIGUydG9vbHMKKy0KKy0gICAgcHVz aGQgIiR7dGR9IgorLSAgICBjdXJsIC0tcmV0cnkgNSAtTyAiJHtVUkx9LyR7bmFtZX0iCistICAg IHVuemlwIC1xICIke25hbWV9IgorLQorLSAgICBsb2NhbCBzeXN0ZW0KKy0gICAgc3lzdGVtPSIk KGZpbmQgLiAtbmFtZSBzeXN0ZW0uaW1nKSIKKy0gICAgbWtkaXIgLXAgJHtkZXN0fS97YmluLGxp YixsaWI2NH0KKy0KKy0gICAgIyBFeHRyYWN0IGFuZHJvaWQgbGlua2VyIGFuZCBsaWJyYXJpZXMg dG8gL3N5c3RlbQorLSAgICAjIFRoaXMgYWxsb3dzIGFuZHJvaWQgZXhlY3V0YWJsZXMgdG8gYmUg cnVuIGRpcmVjdGx5IChvciB3aXRoIHFlbXUpCistICAgIGlmIFsgIiR7YXJjaH0iID0gIng4Nl82 NCIgXSB8fCBbICIke2FyY2h9IiA9ICJhcm02NCIgXTsgdGhlbgorLSAgICAgICAgZTJjcCAtcCAi JHtzeXN0ZW19Oi9iaW4vbGlua2VyNjQiICIke2Rlc3R9L2Jpbi8iCistICAgICAgICBlMmNwIC1w ICIke3N5c3RlbX06L2xpYjY0L2xpYmRsLnNvIiAiJHtkZXN0fS9saWI2NC8iCistICAgICAgICBl MmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYmMuc28iICIke2Rlc3R9L2xpYjY0LyIKKy0gICAg ICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliNjQvbGlibS5zbyIgIiR7ZGVzdH0vbGliNjQvIgor LSAgICBlbHNlCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2Jpbi9saW5rZXIiICIke2Rl c3R9L2Jpbi8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYi9saWJkbC5zbyIgIiR7 ZGVzdH0vbGliLyIKKy0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovbGliL2xpYmMuc28iICIk e2Rlc3R9L2xpYi8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYi9saWJtLnNvIiAi JHtkZXN0fS9saWIvIgorLSAgICBmaQorLQorLSAgICAjIGNsZWFuIHVwCistICAgIGFwdC1nZXQg cHVyZ2UgLS1hdXRvLXJlbW92ZSAteSBlMnRvb2xzCistCistICAgIHBvcGQKKy0KKy0gICAgcm0g LXJmICIke3RkfSIKKy19CistCistbWFpbiAiJHtAfSIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCisrKysgL2Rldi9u dWxsCitAQCAtMSwzMiArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgYmFzaAorLSMKKy0jIFJ1bnMg YWxsIGJlbmNobWFya3MuIENvbnRyb2xsZWQgYnkgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2 YXJpYWJsZXM6CistIworLSMgRkVBVFVSRVM9e30gLSBjYXJnbyBmZWF0dXJlcyB0byBwYXNzIHRv IGFsbCBiZW5jaG1hcmtzIChlLmcuIGNvcmVfYXJjaCxzbGVlZi1zeXMsaXNwYykKKy0jIE5PUlVO PXsxfSAgIC0gb25seSBidWlsZHMgdGhlIGJlbmNobWFya3MKKy0KKy1zZXQgLWV4CistCistaWYg W1sgJHtOT1JVTn0gIT0gMSBdXTsgdGhlbgorLSAgICAjIE1vc3QgYmVuY2htYXJrcyByZXF1aXJl IGh5cGVyZmluZTsgcmVxdWlyZSBpdCB1cGZyb250LgorLSAgICBoYXNoIGh5cGVyZmluZSAyPi9k ZXYvbnVsbCB8fCB7IGVjaG8gPiYyICJoeXBlcmZpbmUgaXMgbm90IGluIFBBVEguIjsgZXhpdCAx OyB9CistZmkKKy0KKy0KKy0jIElmIHRoZSBpc3BjIGJlbmNobWFyayBmZWF0dXJlIGlzIGVuYWJs ZWQsIGlzcGMgbXVzdCBiZSBpbiB0aGUgcGF0aCBvZiB0aGUKKy0jIGJlbmNobWFya3MuIAorLWlm IGVjaG8gIiRGRUFUVVJFUyIgfCBncmVwIC1xICJpc3BjIjsgdGhlbgorLSAgICBoYXNoIGlzcGMg Mj4vZGV2L251bGwgfHwgeyBlY2hvID4mMiAiaXNwYyBpcyBub3QgaW4gUEFUSC4iOyBleGl0IDE7 IH0KKy1maQorLQorLSMgQW4gZXhhbXBsZSB3aXRoIGEgYmVuY2htYXJrLnNoIGlzIGEgYmVuY2ht YXJrOgorLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KKy1kbworLSAgICBkaXI9JHtkaXIlKi99Cist ICAgIGNkICR7ZGlyJSovfQorLSAgICBpZiBbIC1mICJiZW5jaG1hcmsuc2giIF07IHRoZW4KKy0g ICAgICAgIC4vYmVuY2htYXJrLnNoCistICAgIGZpCistICAgIGNkIC0KKy1kb25lCistCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBsb3lfYW5kX3J1bl9v bl9pb3Nfc2ltdWxhdG9yLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBs b3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZGVwbG95X2FuZF9ydW5fb25f aW9zX3NpbXVsYXRvci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTc2ICswLDAgQEAKKy0vLyBD b3B5cmlnaHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJ R0hUCistLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1 dGlvbiBhbmQgYXQKKy0vLyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCistLy8KKy0v LyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNF LUFQQUNIRSBvcgorLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu MD4gb3IgdGhlIE1JVCBsaWNlbnNlCistLy8gPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291 cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCistLy8gb3B0aW9uLiBUaGlzIGZpbGUgbWF5 IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorLS8vIGV4Y2VwdCBhY2Nv cmRpbmcgdG8gdGhvc2UgdGVybXMuCistCistLy8gVGhpcyBpcyBhIHNjcmlwdCB0byBkZXBsb3kg YW5kIGV4ZWN1dGUgYSBiaW5hcnkgb24gYW4gaU9TIHNpbXVsYXRvci4KKy0vLyBUaGUgcHJpbWFy eSB1c2Ugb2YgdGhpcyBpcyB0byBiZSBhYmxlIHRvIHJ1biB1bml0IHRlc3RzIG9uIHRoZSBzaW11 bGF0b3IgYW5kCistLy8gcmV0cmlldmUgdGhlIHJlc3VsdHMuCistLy8KKy0vLyBUbyBkbyB0aGlz IHRocm91Z2ggQ2FyZ28gaW5zdGVhZCwgdXNlIERpbmdoeQorLS8vIChodHRwczovL2dpdGh1Yi5j b20vc25pcHNjby9kaW5naHkpOiBjYXJnbyBkaW5naHkgaW5zdGFsbCwgdGhlbiBjYXJnbyBkaW5n aHkKKy0vLyB0ZXN0LgorLQorLXVzZSBzdGQ6OmVudjsKKy11c2Ugc3RkOjpmczo6e3NlbGYsIEZp bGV9OworLXVzZSBzdGQ6OmlvOjpXcml0ZTsKKy11c2Ugc3RkOjpwYXRoOjpQYXRoOworLXVzZSBz dGQ6OnByb2Nlc3M7CistdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKKy0KKy1tYWNyb19ydWxl cyEgdCB7CistICAgICgkZTpleHByKSA9PiAobWF0Y2ggJGUgeworLSAgICAgICAgT2soZSkgPT4g ZSwKKy0gICAgICAgIEVycihlKSA9PiBwYW5pYyEoInt9IGZhaWxlZCB3aXRoOiB7fSIsIHN0cmlu Z2lmeSEoJGUpLCBlKSwKKy0gICAgfSkKKy19CistCistLy8gU3RlcCBvbmU6IFdyYXAgYXMgYW4g YXBwCistZm4gcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWU6ICZzdHIsIHRlc3Rf YmluYXJ5X3BhdGg6ICZQYXRoKSB7CistICAgIHByaW50bG4hKCJQYWNrYWdpbmcgc2ltdWxhdG9y IGFwcCIpOworLSAgICBkcm9wKGZzOjpyZW1vdmVfZGlyX2FsbCgiaW9zX3NpbXVsYXRvcl9hcHAi KSk7CistICAgIHQhKGZzOjpjcmVhdGVfZGlyKCJpb3Nfc2ltdWxhdG9yX2FwcCIpKTsKKy0gICAg dCEoZnM6OmNvcHkodGVzdF9iaW5hcnlfcGF0aCwKKy0gICAgICAgICAgICAgICAgUGF0aDo6bmV3 KCJpb3Nfc2ltdWxhdG9yX2FwcCIpLmpvaW4oY3JhdGVfbmFtZSkpKTsKKy0KKy0gICAgbGV0IG11 dCBmID0gdCEoRmlsZTo6Y3JlYXRlKCJpb3Nfc2ltdWxhdG9yX2FwcC9JbmZvLnBsaXN0IikpOwor LSAgICB0IShmLndyaXRlX2FsbChmb3JtYXQhKHIjIgorLSAgICAgICAgPD94bWwgdmVyc2lvbj0i MS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKy0gICAgICAgIDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMK Ky0gICAgICAgICAgICAgICAgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIKKy0gICAgICAg ICAgICAgICAgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi PgorLSAgICAgICAgPHBsaXN0IHZlcnNpb249IjEuMCI+CistICAgICAgICAgICAgPGRpY3Q+Cist ICAgICAgICAgICAgICAgIDxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CistICAgICAgICAg ICAgICAgIDxzdHJpbmc+e308L3N0cmluZz4KKy0gICAgICAgICAgICAgICAgPGtleT5DRkJ1bmRs ZUlkZW50aWZpZXI8L2tleT4KKy0gICAgICAgICAgICAgICAgPHN0cmluZz5jb20ucnVzdC51bml0 dGVzdHM8L3N0cmluZz4KKy0gICAgICAgICAgICA8L2RpY3Q+CistICAgICAgICA8L3BsaXN0Pgor LSAgICAiIywgY3JhdGVfbmFtZSkuYXNfYnl0ZXMoKSkpOworLX0KKy0KKy0vLyBTdGVwIHR3bzog U3RhcnQgdGhlIGlPUyBzaW11bGF0b3IKKy1mbiBzdGFydF9zaW11bGF0b3IoKSB7CistICAgIHBy aW50bG4hKCJMb29raW5nIGZvciBpT1Mgc2ltdWxhdG9yIik7CistICAgIGxldCBvdXRwdXQgPSB0 IShDb21tYW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImxpc3QiKS5vdXRwdXQo KSk7CistICAgIGFzc2VydCEob3V0cHV0LnN0YXR1cy5zdWNjZXNzKCkpOworLSAgICBsZXQgbXV0 IHNpbXVsYXRvcl9leGlzdHMgPSBmYWxzZTsKKy0gICAgbGV0IG11dCBzaW11bGF0b3JfYm9vdGVk ID0gZmFsc2U7CistICAgIGxldCBtdXQgZm91bmRfcnVzdF9zaW0gPSBmYWxzZTsKKy0gICAgbGV0 IHN0ZG91dCA9IHQhKFN0cmluZzo6ZnJvbV91dGY4KG91dHB1dC5zdGRvdXQpKTsKKy0gICAgZm9y IGxpbmUgaW4gc3Rkb3V0LmxpbmVzKCkgeworLSAgICAgICAgaWYgbGluZS5jb250YWlucygicnVz dF9pb3MiKSB7CistICAgICAgICAgICAgaWYgZm91bmRfcnVzdF9zaW0geworLSAgICAgICAgICAg ICAgICBwYW5pYyEoIkR1cGxpY2F0ZSBydXN0X2lvcyBzaW11bGF0b3JzIGZvdW5kLiBQbGVhc2Ug XAorLSAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZS1jaGVjayB4Y3J1biBzaW1jdGwgbGlz dC4iKTsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgc2ltdWxhdG9yX2V4aXN0cyA9IHRy dWU7CistICAgICAgICAgICAgc2ltdWxhdG9yX2Jvb3RlZCA9IGxpbmUuY29udGFpbnMoIihCb290 ZWQpIik7CistICAgICAgICAgICAgZm91bmRfcnVzdF9zaW0gPSB0cnVlOworLSAgICAgICAgfQor LSAgICB9CistCistICAgIGlmIHNpbXVsYXRvcl9leGlzdHMgPT0gZmFsc2UgeworLSAgICAgICAg cHJpbnRsbiEoIkNyZWF0aW5nIGlPUyBzaW11bGF0b3IiKTsKKy0gICAgICAgIENvbW1hbmQ6Om5l dygieGNydW4iKQorLSAgICAgICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQorLSAgICAgICAgICAg ICAgICAuYXJnKCJjcmVhdGUiKQorLSAgICAgICAgICAgICAgICAuYXJnKCJydXN0X2lvcyIpCist ICAgICAgICAgICAgICAgIC5hcmcoImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbURldmljZVR5 cGUuaVBob25lLVNFIikKKy0gICAgICAgICAgICAgICAgLmFyZygiY29tLmFwcGxlLkNvcmVTaW11 bGF0b3IuU2ltUnVudGltZS5pT1MtMTAtMiIpCistICAgICAgICAgICAgICAgIC5jaGVja19zdGF0 dXMoKTsKKy0gICAgfSBlbHNlIGlmIHNpbXVsYXRvcl9ib290ZWQgPT0gdHJ1ZSB7CistICAgICAg ICBwcmludGxuISgiU2h1dHRpbmcgZG93biBhbHJlYWR5LWJvb3RlZCBzaW11bGF0b3IiKTsKKy0g ICAgICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgICAgICAgICAuYXJnKCJzaW1j dGwiKQorLSAgICAgICAgICAgICAgICAuYXJnKCJzaHV0ZG93biIpCistICAgICAgICAgICAgICAg IC5hcmcoInJ1c3RfaW9zIikKKy0gICAgICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOworLSAg ICB9CistCistICAgIHByaW50bG4hKCJTdGFydGluZyBpT1Mgc2ltdWxhdG9yIik7CistICAgIC8v IFdlIGNhbid0IHVuaW5zdGFsbCB0aGUgYXBwIChpZiBwcmVzZW50KSBhcyB0aGF0IHdpbGwgaGFu ZyBpZiB0aGUKKy0gICAgLy8gc2ltdWxhdG9yIGlzbid0IGNvbXBsZXRlbHkgYm9vdGVkOyBqdXN0 IGVyYXNlIHRoZSBzaW11bGF0b3IgaW5zdGVhZC4KKy0gICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIp LmFyZygic2ltY3RsIikuYXJnKCJlcmFzZSIpLmFyZygicnVzdF9pb3MiKS5jaGVja19zdGF0dXMo KTsKKy0gICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIikuYXJnKCJib290Iiku YXJnKCJydXN0X2lvcyIpLmNoZWNrX3N0YXR1cygpOworLX0KKy0KKy0vLyBTdGVwIHRocmVlOiBJ bnN0YWxsIHRoZSBhcHAKKy1mbiBpbnN0YWxsX2FwcF90b19zaW11bGF0b3IoKSB7CistICAgIHBy aW50bG4hKCJJbnN0YWxsaW5nIGFwcCB0byBzaW11bGF0b3IiKTsKKy0gICAgQ29tbWFuZDo6bmV3 KCJ4Y3J1biIpCistICAgICAgICAgICAgLmFyZygic2ltY3RsIikKKy0gICAgICAgICAgICAuYXJn KCJpbnN0YWxsIikKKy0gICAgICAgICAgICAuYXJnKCJib290ZWQiKQorLSAgICAgICAgICAgIC5h cmcoImlvc19zaW11bGF0b3JfYXBwLyIpCistICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOwor LX0KKy0KKy0vLyBTdGVwIGZvdXI6IFJ1biB0aGUgYXBwCistZm4gcnVuX2FwcF9vbl9zaW11bGF0 b3IoKSB7CistICAgIHByaW50bG4hKCJSdW5uaW5nIGFwcCIpOworLSAgICBsZXQgb3V0cHV0ID0g dCEoQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAgICAgICAgICAgICAgICAuYXJnKCJzaW1j dGwiKQorLSAgICAgICAgICAgICAgICAgICAgLmFyZygibGF1bmNoIikKKy0gICAgICAgICAgICAg ICAgICAgIC5hcmcoIi0tY29uc29sZSIpCistICAgICAgICAgICAgICAgICAgICAuYXJnKCJib290 ZWQiKQorLSAgICAgICAgICAgICAgICAgICAgLmFyZygiY29tLnJ1c3QudW5pdHRlc3RzIikKKy0g ICAgICAgICAgICAgICAgICAgIC5vdXRwdXQoKSk7CistCistICAgIHByaW50bG4hKCJzdGRvdXQg LS1cbnt9XG4iLCBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCkpOworLSAg ICBwcmludGxuISgic3RkZXJyIC0tXG57fVxuIiwgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91 dHB1dC5zdGRlcnIpKTsKKy0KKy0gICAgbGV0IHN0ZG91dCA9IFN0cmluZzo6ZnJvbV91dGY4X2xv c3N5KCZvdXRwdXQuc3Rkb3V0KTsKKy0gICAgbGV0IGZhaWxlZCA9IHN0ZG91dC5saW5lcygpCist ICAgICAgICAuZmluZCh8bHwgbC5jb250YWlucygiRkFJTEVEIikpCistICAgICAgICAubWFwKHxs fCBsLmNvbnRhaW5zKCJGQUlMRUQiKSkKKy0gICAgICAgIC51bndyYXBfb3IoZmFsc2UpOworLQor LSAgICBsZXQgcGFzc2VkID0gc3Rkb3V0LmxpbmVzKCkKKy0gICAgICAgIC5maW5kKHxsfCBsLmNv bnRhaW5zKCJ0ZXN0IHJlc3VsdDogb2siKSkKKy0gICAgICAgIC5tYXAofGx8IGwuY29udGFpbnMo InRlc3QgcmVzdWx0OiBvayIpKQorLSAgICAgICAgLnVud3JhcF9vcihmYWxzZSk7CistCistICAg IHByaW50bG4hKCJTaHV0dGluZyBkb3duIHNpbXVsYXRvciIpOworLSAgICBDb21tYW5kOjpuZXco InhjcnVuIikKKy0gICAgICAgIC5hcmcoInNpbWN0bCIpCistICAgICAgICAuYXJnKCJzaHV0ZG93 biIpCistICAgICAgICAuYXJnKCJydXN0X2lvcyIpCistICAgICAgICAuY2hlY2tfc3RhdHVzKCk7 CistICAgIGlmICEocGFzc2VkICYmICFmYWlsZWQpIHsKKy0gICAgICAgIHBhbmljISgidGVzdHMg ZGlkbid0IHBhc3MiKTsKKy0gICAgfQorLX0KKy0KKy10cmFpdCBDaGVja1N0YXR1cyB7CistICAg IGZuIGNoZWNrX3N0YXR1cygmbXV0IHNlbGYpOworLX0KKy0KKy1pbXBsIENoZWNrU3RhdHVzIGZv ciBDb21tYW5kIHsKKy0gICAgZm4gY2hlY2tfc3RhdHVzKCZtdXQgc2VsZikgeworLSAgICAgICAg cHJpbnRsbiEoIlx0cnVubmluZzogezo/fSIsIHNlbGYpOworLSAgICAgICAgYXNzZXJ0ISh0IShz ZWxmLnN0YXR1cygpKS5zdWNjZXNzKCkpOworLSAgICB9CistfQorLQorLWZuIG1haW4oKSB7Cist ICAgIGxldCBhcmdzOiBWZWM8U3RyaW5nPiA9IGVudjo6YXJncygpLmNvbGxlY3QoKTsKKy0gICAg aWYgYXJncy5sZW4oKSAhPSAyIHsKKy0gICAgICAgIHByaW50bG4hKCJVc2FnZToge30gPGV4ZWN1 dGFibGU+IiwgYXJnc1swXSk7CistICAgICAgICBwcm9jZXNzOjpleGl0KC0xKTsKKy0gICAgfQor LQorLSAgICBsZXQgdGVzdF9iaW5hcnlfcGF0aCA9IFBhdGg6Om5ldygmYXJnc1sxXSk7CistICAg IGxldCBjcmF0ZV9uYW1lID0gdGVzdF9iaW5hcnlfcGF0aC5maWxlX25hbWUoKS51bndyYXAoKTsK Ky0KKy0gICAgcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWUudG9fc3RyKCkudW53 cmFwKCksIHRlc3RfYmluYXJ5X3BhdGgpOworLSAgICBzdGFydF9zaW11bGF0b3IoKTsKKy0gICAg aW5zdGFsbF9hcHBfdG9fc2ltdWxhdG9yKCk7CistICAgIHJ1bl9hcHBfb25fc2ltdWxhdG9yKCk7 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwK K0BAIC0xLDQ3ICswLDAgQEAKKy1GUk9NIHVidW50dToxNi4wNAorLQorLVJVTiBkcGtnIC0tYWRk LWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKKy0gICAgYXB0LWdldCB1cGRhdGUgJiYgXAorLSAgICBh cHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZmlsZSBcCist ICBtYWtlIFwKKy0gIGN1cmwgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIHB5dGhvbiBcCist ICB1bnppcCBcCistICBleHBlY3QgXAorLSAgb3Blbmpkay05LWpyZSBcCistICBsaWJzdGRjKys2 OmkzODYgXAorLSAgbGlicHVsc2UwIFwKKy0gIGdjYyBcCistICBsaWJjNi1kZXYKKy0KKy1XT1JL RElSIC9hbmRyb2lkLworLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCistCistRU5WIEFORFJPSURf QVJDSD1hYXJjaDY0CistRU5WIFBBVEg9JFBBVEg6L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gv YmluOi9hbmRyb2lkL3Nkay90b29sczovYW5kcm9pZC9zZGsvcGxhdGZvcm0tdG9vbHMKKy0KKy1S VU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCAkQU5EUk9JRF9BUkNICistUlVO IHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2ggJEFORFJPSURfQVJDSAorLVJVTiBt diAvcm9vdC8uYW5kcm9pZCAvdG1wCistUlVOIGNobW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCist UlVOIGNobW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9vbHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3Iv cWVtdS9saW51eC14ODZfNjQvKgorLQorLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbiBcCistICAg IENBUkdPX1RBUkdFVF9BQVJDSDY0X0xJTlVYX0FORFJPSURfTElOS0VSPWFhcmNoNjQtbGludXgt YW5kcm9pZC1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9MSU5VWF9BTkRST0lEX1JV Tk5FUj0vdG1wL3J1bnRlc3QgXAorLSAgICBPQkpEVU1QPWFhcmNoNjQtbGludXgtYW5kcm9pZC1v YmpkdW1wIFwKKy0gICAgSE9NRT0vdG1wCistCistQUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1w L3J1bnRlc3QucnMKKy1FTlRSWVBPSU5UIFsgXAorLSAgImJhc2giLCBcCistICAiLWMiLCBcCist ICAjIHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBkZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUK Ky0gICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDE3ODkxNDQKKy0gICJTSEVMTD0vYmlu L2Rhc2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2VtdWxhdG9yIEBhYXJjaDY0IC1uby13aW5kb3cg JiBcCistICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVzdCAmJiBcCistICAg ZXhlYyBcIiRAXCIiLCBcCistICAiLS0iIFwKKy1dCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYWFyY2g2NC11 bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQgKzAsMCBAQAor LUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFs bCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgY2EtY2VydGlmaWNh dGVzIFwKKy0gIGxpYmM2LWRldiBcCistICBnY2MtYWFyY2g2NC1saW51eC1nbnUgXAorLSAgbGli YzYtZGV2LWFybTY0LWNyb3NzIFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtlIFwKKy0gIGZpbGUK Ky0KKy1FTlYgQ0FSR09fVEFSR0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPWFh cmNoNjQtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BQVJDSDY0X1VOS05PV05f TElOVVhfR05VX1JVTk5FUj0icWVtdS1hYXJjaDY0IC1MIC91c3IvYWFyY2g2NC1saW51eC1nbnUi IFwKKy0gICAgT0JKRFVNUD1hYXJjaDY0LWxpbnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgt Z251ZWFiaS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2Fy bS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEs MTUgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFw dC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAg Y2EtY2VydGlmaWNhdGVzIFwKKy0gIGxpYmM2LWRldiBcCistICBsaWJjNi1hcm1lbC1jcm9zcyBc CistICBsaWJjNi1kZXYtYXJtZWwtY3Jvc3MgXAorLSAgYmludXRpbHMtYXJtLWxpbnV4LWdudWVh YmkgXAorLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpIFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtl IFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklf TElOS0VSPWFybS1saW51eC1nbnVlYWJpLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BUk1fVU5L Tk9XTl9MSU5VWF9HTlVFQUJJX1JVTk5FUj0icWVtdS1hcm0gLUwgL3Vzci9hcm0tbGludXgtZ251 ZWFiaSIgXAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpLW9iamR1bXAKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1s aW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCisrKysgL2Rldi9u dWxsCitAQCAtMSwxMyArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1 cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0g IGdjYyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgbGliYzYtZGV2IFwKKy0gIGdjYy1hcm0t bGludXgtZ251ZWFiaWhmIFwKKy0gIGxpYmM2LWRldi1hcm1oZi1jcm9zcyBcCistICBxZW11LXVz ZXIgXAorLSAgbWFrZSBcCistICBmaWxlCistRU5WIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9M SU5VWF9HTlVFQUJJSEZfTElOS0VSPWFybS1saW51eC1nbnVlYWJpaGYtZ2NjIFwKKy0gICAgQ0FS R09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1M IC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIgXAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVl YWJpaGYtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2Nr ZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUK KysrKyAvZGV2L251bGwKK0BAIC0xLDQ3ICswLDAgQEAKKy1GUk9NIHVidW50dToxNi4wNAorLQor LVJVTiBkcGtnIC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKKy0gICAgYXB0LWdldCB1cGRh dGUgJiYgXAorLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGN1cmwgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwK Ky0gIHB5dGhvbiBcCistICB1bnppcCBcCistICBleHBlY3QgXAorLSAgb3Blbmpkay05LWpyZSBc CistICBsaWJzdGRjKys2OmkzODYgXAorLSAgbGlicHVsc2UwIFwKKy0gIGdjYyBcCistICBsaWJj Ni1kZXYKKy0KKy1XT1JLRElSIC9hbmRyb2lkLworLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCist CistRU5WIEFORFJPSURfQVJDSD1hcm0KKy1FTlYgUEFUSD0kUEFUSDovYW5kcm9pZC9uZGstJEFO RFJPSURfQVJDSC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9wbGF0Zm9ybS10 b29scworLQorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNoICRBTkRST0lE X0FSQ0gKKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAkQU5EUk9JRF9B UkNICistUlVOIG12IC9yb290Ly5hbmRyb2lkIC90bXAKKy1SVU4gY2htb2QgNzc3IC1SIC90bXAv LmFuZHJvaWQKKy1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9hbmRyb2lkL3Nk ay9lbXVsYXRvci9xZW11L2xpbnV4LXg4Nl82NC8qCistCistRU5WIFBBVEg9JFBBVEg6L3J1c3Qv YmluIFwKKy0gICAgQ0FSR09fVEFSR0VUX0FSTV9MSU5VWF9BTkRST0lERUFCSV9MSU5LRVI9YXJt LWxpbnV4LWFuZHJvaWRlYWJpLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BUk1fTElOVVhfQU5E Uk9JREVBQklfUlVOTkVSPS90bXAvcnVudGVzdCBcCistICAgIE9CSkRVTVA9YXJtLWxpbnV4LWFu ZHJvaWRlYWJpLW9iamR1bXAgXAorLSAgICBIT01FPS90bXAKKy0KKy1BREQgcnVudGVzdC1hbmRy b2lkLnJzIC90bXAvcnVudGVzdC5ycworLUVOVFJZUE9JTlQgWyBcCistICAiYmFzaCIsIFwKKy0g ICItYyIsIFwKKy0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBhIDY0Yml0cyBz eXN0ZW0sIHNlZQorLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4OTE0NAorLSAg IlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3IgQGFybSAtbm8t d2luZG93ICYgXAorLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1bnRlc3QgJiYg XAorLSAgIGV4ZWMgXCIkQFwiIiwgXAorLSAgIi0tIiBcCistXQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251 ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwK K0BAIC0xLDEzICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2Nj IFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJjNi1kZXYgXAorLSAgZ2NjLWFybS1saW51 eC1nbnVlYWJpaGYgXAorLSAgbGliYzYtZGV2LWFybWhmLWNyb3NzIFwKKy0gIHFlbXUtdXNlciBc CistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09fVEFSR0VUX0FSTVY3X1VOS05PV05fTElO VVhfR05VRUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaWhmLWdjYyBcCistICAgIENBUkdP X1RBUkdFVF9BUk1WN19VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1M IC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIgXAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVl YWJpaGYtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysr KyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0CistUlVOIGFw dC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5k cyBcCistICBnY2MtbXVsdGlsaWIgXAorLSAgbGliYzYtZGV2IFwKKy0gIGZpbGUgXAorLSAgbWFr ZSBcCistICBjYS1jZXJ0aWZpY2F0ZXMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgt Z251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4w NAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxs LXJlY29tbWVuZHMgXAorLSAgZ2NjLW11bHRpbGliIFwKKy0gIGxpYmM2LWRldiBcCistICBmaWxl IFwKKy0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMtdW5rbm93bi1saW51 eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLUZST00g dWJ1bnR1OjE4LjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUt dXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICAgICAgZ2NjLW1pcHMtbGludXgtZ251IGxpYmM2 LWRldi1taXBzLWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLW1pcHMgXAorLSAgICAgICAg cWVtdS11c2VyIFwKKy0gICAgICAgIG1ha2UgXAorLSAgICAgICAgZmlsZQorLQorLUVOViBDQVJH T19UQVJHRVRfTUlQU19VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9bWlwcy1saW51eC1nbnUtZ2Nj IFwKKy0gICAgQ0FSR09fVEFSR0VUX01JUFNfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11 LW1pcHMgLUwgL3Vzci9taXBzLWxpbnV4LWdudSIgXAorLSAgICBPQkpEVU1QPW1pcHMtbGludXgt Z251LW9iamR1bXAKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4 LWdudWFiaTY0L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUKKysrKyAvZGV2L251 bGwKK0BAIC0xLDEwICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLQorLVJVTiBhcHQtZ2V0 IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAor LSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAg ICAgIGdjYy1taXBzNjQtbGludXgtZ251YWJpNjQgbGliYzYtZGV2LW1pcHM2NC1jcm9zcyBcCist ICAgICAgICBxZW11LXN5c3RlbS1taXBzNjQgcWVtdS11c2VyCistCistRU5WIENBUkdPX1RBUkdF VF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9MSU5LRVI9bWlwczY0LWxpbnV4LWdudWFi aTY0LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9NSVBTNjRfVU5LTk9XTl9MSU5VWF9HTlVBQkk2 NF9SVU5ORVI9InFlbXUtbWlwczY0IC1MIC91c3IvbWlwczY0LWxpbnV4LWdudWFiaTY0IiBcCist ICAgIE9CSkRVTVA9bWlwczY0LWxpbnV4LWdudWFiaTY0LW9iamR1bXAKK1wgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NGVsLXVua25vd24tbGlu dXgtZ251YWJpNjQvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxp bnV4LWdudWFiaTY0L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwICswLDAgQEAK Ky1GUk9NIHVidW50dToxOC4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGlu c3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICAgICAgZ2NjIGxpYmM2LWRl diBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgICAgIGdjYy1taXBzNjRlbC1saW51 eC1nbnVhYmk2NCBsaWJjNi1kZXYtbWlwczY0ZWwtY3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0 ZW0tbWlwczY0ZWwKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX01JUFM2NEVMX1VOS05PV05fTElOVVhf R05VQUJJNjRfTElOS0VSPW1pcHM2NGVsLWxpbnV4LWdudWFiaTY0LWdjYyBcCistICAgIENBUkdP X1RBUkdFVF9NSVBTNjRFTF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X1JVTk5FUj0icWVtdS1taXBz NjRlbCAtTCAvdXNyL21pcHM2NGVsLWxpbnV4LWdudWFiaTY0IiBcCistICAgIE9CSkRVTVA9bWlw czY0ZWwtbGludXgtZ251YWJpNjQtb2JqZHVtcAorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlw c2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGludXgtbXVzbC9Eb2NrZXJmaWxlCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2VyZmlsZQorKysrIC9k ZXYvbnVsbAorQEAgLTEsMjUgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjEwCistCistUlVOIGFw dC1nZXQgdXBkYXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1y ZWNvbW1lbmRzIFwKKy0gICAgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgZ2NjIFwKKy0gICAgbGli YzYtZGV2IFwKKy0gICAgbWFrZSBcCistICAgIHFlbXUtdXNlciBcCistICAgIHFlbXUtc3lzdGVt LW1pcHMgXAorLSAgICBiemlwMiBcCistICAgIGN1cmwgXAorLSAgICBmaWxlCistCistUlVOIG1r ZGlyIC90b29sY2hhaW4KKy0KKy0jIE5vdGUgdGhhdCB0aGlzIG9yaWdpbmFsbHkgY2FtZSBmcm9t OgorLSMgaHR0cHM6Ly9kb3dubG9hZHMub3BlbndydC5vcmcvc25hcHNob3RzL3RydW5rL21hbHRh L2dlbmVyaWMvT3BlbldydC1Ub29sY2hhaW4tbWFsdGEtbGVfZ2NjLTUuMy4wX211c2wtMS4xLjE1 LkxpbnV4LXg4Nl82NC50YXIuYnoyCistUlVOIGN1cmwgLUwgaHR0cHM6Ly9jaS1taXJyb3JzLnJ1 c3QtbGFuZy5vcmcvbGliYy9PcGVuV3J0LVRvb2xjaGFpbi1tYWx0YS1sZV9nY2MtNS4zLjBfbXVz bC0xLjEuMTUuTGludXgteDg2XzY0LnRhci5iejIgfCBcCistICAgICAgdGFyIHhqZiAtIC1DIC90 b29sY2hhaW4gLS1zdHJpcC1jb21wb25lbnRzPTIKKy0KKy1FTlYgUEFUSD0kUEFUSDovcnVzdC9i aW46L3Rvb2xjaGFpbi9iaW4gXAorLSAgICBDQ19taXBzZWxfdW5rbm93bl9saW51eF9tdXNsPW1p cHNlbC1vcGVud3J0LWxpbnV4LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9NSVBTRUxfVU5LTk9X Tl9MSU5VWF9NVVNMX0xJTktFUj1taXBzZWwtb3BlbndydC1saW51eC1nY2MgXAorLSAgICBDQVJH T19UQVJHRVRfTUlQU0VMX1VOS05PV05fTElOVVhfTVVTTF9SVU5ORVI9InFlbXUtbWlwc2VsIC1M IC90b29sY2hhaW4iCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYy11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0 CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3Rh bGwtcmVjb21tZW5kcyBcCistICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0 aWZpY2F0ZXMgXAorLSAgICAgICAgZ2NjLXBvd2VycGMtbGludXgtZ251IGxpYmM2LWRldi1wb3dl cnBjLWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLXBwYyBcCistICAgICAgICBtYWtlIFwK Ky0gICAgICAgIGZpbGUKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX1BPV0VSUENfVU5LTk9XTl9MSU5V WF9HTlVfTElOS0VSPXBvd2VycGMtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9Q T1dFUlBDX1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGMgLWNwdSBWZ2VyIC1MIC91 c3IvcG93ZXJwYy1saW51eC1nbnUiIFwKKy0gICAgQ0M9cG93ZXJwYy1saW51eC1nbnUtZ2NjIFwK Ky0gICAgT0JKRFVNUD1wb3dlcnBjLWxpbnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9w b3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAg LTEsMTcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRl ICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgIGdj YyBcCistICAgIGNhLWNlcnRpZmljYXRlcyBcCistICAgIGxpYmM2LWRldiBcCistICAgIGdjYy1w b3dlcnBjNjQtbGludXgtZ251IFwKKy0gICAgbGliYzYtZGV2LXBwYzY0LWNyb3NzIFwKKy0gICAg cWVtdS11c2VyICBcCistICAgIHFlbXUtc3lzdGVtLXBwYyBcCistICAgIG1ha2UgXAorLSAgICBm aWxlIAorLQorLUVOViBDQVJHT19UQVJHRVRfUE9XRVJQQzY0X1VOS05PV05fTElOVVhfR05VX0xJ TktFUj1wb3dlcnBjNjQtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9QT1dFUlBD NjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXBwYzY0IC1MIC91c3IvcG93ZXJwYzY0 LWxpbnV4LWdudSIgXAorLSAgICBDQz1wb3dlcnBjNjQtbGludXgtZ251LWdjYyBcCistICAgIE9C SkRVTVA9cG93ZXJwYzY0LWxpbnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1n bnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bv d2VycGM2NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93 ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAg LTEsMTEgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIyLjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRl ICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgICAg ICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICAgICAgZ2Nj LXBvd2VycGM2NGxlLWxpbnV4LWdudSBsaWJjNi1kZXYtcHBjNjRlbC1jcm9zcyBcCistICAgICAg ICBxZW11LXN5c3RlbS1wcGMgZmlsZSBtYWtlCistCistRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBD NjRMRV9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9cG93ZXJwYzY0bGUtbGludXgtZ251LWdjYyBc CistICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRMRV9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9 InFlbXUtcHBjNjRsZSAtTCAvdXNyL3Bvd2VycGM2NGxlLWxpbnV4LWdudSIgXAorLSAgICBDQz1w b3dlcnBjNjRsZS1saW51eC1nbnUtZ2NjIFwKKy0gICAgT0JKRFVNUD1wb3dlcnBjNjRsZS1saW51 eC1nbnUtb2JqZHVtcAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUK KysrKyAvZGV2L251bGwKK0BAIC0xLDIwICswLDAgQEAKKy1GUk9NIHVidW50dToyMi4wNAorLQor LVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWlu c3RhbGwtcmVjb21tZW5kcyBcCistICAgIGNhLWNlcnRpZmljYXRlcyBcCistICAgIGN1cmwgXAor LSAgICBjbWFrZSBcCistICAgIGdjYyBcCistICAgIGxpYmM2LWRldiBcCistICAgIGcrKy1zMzkw eC1saW51eC1nbnUgXAorLSAgICBsaWJjNi1kZXYtczM5MHgtY3Jvc3MgXAorLSAgICBxZW11LXVz ZXIgXAorLSAgICBtYWtlIFwKKy0gICAgZmlsZQorLQorLUVOViBDQVJHT19UQVJHRVRfUzM5MFhf VU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXMzOTB4LWxpbnV4LWdudS1nY2MgXAorLSAgICBDQVJH T19UQVJHRVRfUzM5MFhfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXMzOTB4IC1MIC91 c3IvczM5MHgtbGludXgtZ251IiBcCistICAgIENDX3MzOTB4X3Vua25vd25fbGludXhfZ251PXMz OTB4LWxpbnV4LWdudS1nY2MgXAorLSAgICBDWFhfczM5MHhfdW5rbm93bl9saW51eF9nbnU9czM5 MHgtbGludXgtZ251LWcrKyBcCistICAgIE9CSkRVTVA9czM5MHgtbGludXgtZ251LW9iamR1bXAK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFy YzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rl di9udWxsCitAQCAtMSwxOCArMCwwIEBACistRlJPTSBkZWJpYW46Ym9va3dvcm0KKy0KKy1SVU4g YXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1l bmRzIFwKKy0gICAgICAgIGN1cmwgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgICAgIGdjYyBsaWJj Ni1kZXYgXAorLSAgICAgICAgZ2NjLXNwYXJjNjQtbGludXgtZ251IGxpYmM2LWRldi1zcGFyYzY0 LWNyb3NzIFwKKy0gICAgICAgIHFlbXUtc3lzdGVtLXNwYXJjNjQgb3BlbmJpb3Mtc3BhcmMgc2Vh YmlvcyBpcHhlLXFlbXUgXAorLSAgICAgICAgcDd6aXAtZnVsbCBjcGlvCistCistQ09QWSBsaW51 eC1zcGFyYzY0LnNoIC8KKy1SVU4gYmFzaCAvbGludXgtc3BhcmM2NC5zaAorLQorLUNPUFkgdGVz dC1ydW5uZXItbGludXggLworLQorLUVOViBDQVJHT19UQVJHRVRfU1BBUkM2NF9VTktOT1dOX0xJ TlVYX0dOVV9MSU5LRVI9c3BhcmM2NC1saW51eC1nbnUtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VU X1NQQVJDNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvdGVzdC1ydW5uZXItbGludXggc3Bh cmM2NCIgXAorLSAgICBDQ19zcGFyYzY0X3Vua25vd25fbGludXhfZ251PXNwYXJjNjQtbGludXgt Z251LWdjYyBcCistICAgIFBBVEg9JFBBVEg6L3J1c3QvYmluCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5kcm9p ZGVhYmkvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv dGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAor QEAgLTEsNDcgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE2LjA0CistCistUlVOIGRwa2cgLS1hZGQt YXJjaGl0ZWN0dXJlIGkzODYgJiYgXAorLSAgICBhcHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFw dC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBmaWxlIFwKKy0g IG1ha2UgXAorLSAgY3VybCBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgcHl0aG9uIFwKKy0g IHVuemlwIFwKKy0gIGV4cGVjdCBcCistICBvcGVuamRrLTktanJlIFwKKy0gIGxpYnN0ZGMrKzY6 aTM4NiBcCistICBsaWJwdWxzZTAgXAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRldgorLQorLVdPUktE SVIgL2FuZHJvaWQvCistQ09QWSBhbmRyb2lkKiAvYW5kcm9pZC8KKy0KKy1FTlYgQU5EUk9JRF9B UkNIPWFybQorLUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNIL2Jpbjov YW5kcm9pZC9zZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCistCistUlVOIHNo IC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAorLVJVTiBzaCAv YW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKKy1SVU4gbXYgL3Jv b3QvLmFuZHJvaWQgL3RtcAorLVJVTiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAorLVJVTiBj aG1vZCA3NTUgL2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9yL3FlbXUv bGludXgteDg2XzY0LyoKKy0KKy1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAorLSAgICBDQVJH T19UQVJHRVRfVEhVTUJWN05FT05fTElOVVhfQU5EUk9JREVBQklfTElOS0VSPWFybS1saW51eC1h bmRyb2lkZWFiaS1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05fTElOVVhfQU5E Uk9JREVBQklfUlVOTkVSPS90bXAvcnVudGVzdCBcCistICAgIE9CSkRVTVA9YXJtLWxpbnV4LWFu ZHJvaWRlYWJpLW9iamR1bXAgXAorLSAgICBIT01FPS90bXAKKy0KKy1BREQgcnVudGVzdC1hbmRy b2lkLnJzIC90bXAvcnVudGVzdC5ycworLUVOVFJZUE9JTlQgWyBcCistICAiYmFzaCIsIFwKKy0g ICItYyIsIFwKKy0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBhIDY0Yml0cyBz eXN0ZW0sIHNlZQorLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4OTE0NAorLSAg IlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3IgQGFybSAtbm8t d2luZG93ICYgXAorLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1bnRlc3QgJiYg XAorLSAgIGV4ZWMgXCIkQFwiIiwgXAorLSAgIi0tIiBcCistXQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGlu dXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZp bGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAor LVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJl Y29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJjNi1kZXYg XAorLSAgZ2NjLWFybS1saW51eC1nbnVlYWJpaGYgXAorLSAgbGliYzYtZGV2LWFybWhmLWNyb3Nz IFwKKy0gIHFlbXUtdXNlciBcCistICBtYWtlIFwKKy0gIGZpbGUKKy1FTlYgQ0FSR09fVEFSR0VU X1RIVU1CVjdORU9OX1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251 ZWFiaWhmLWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9VTktOT1dOX0xJTlVY X0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3IvYXJtLWxpbnV4LWdudWVhYmloZiIg XAorLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYtb2JqZHVtcAorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVu a25vd24vRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L3dhc20zMi11bmtub3duLXVua25vd24vRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93YXNtMzIt dW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDM5ICswLDAg QEAKKy1GUk9NIHVidW50dToyMi4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAteSAmJiBhcHQt Z2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgY2EtY2VydGlmaWNh dGVzIFwKKy0gIGNsYW5nIFwKKy0gIGNtYWtlIFwKKy0gIGN1cmwgXAorLSAgZ2l0IFwKKy0gIGxp YmM2LWRldiBcCistICBtYWtlIFwKKy0gIG5pbmphLWJ1aWxkIFwKKy0gIHB5dGhvbi1pcy1weXRo b24zIFwKKy0gIHh6LXV0aWxzCistCistIyBJbnN0YWxsIGB3YXNtMndhdGAKKy1SVU4gZ2l0IGNs b25lIC0tcmVjdXJzaXZlIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS93YWJ0CistUlVO IG1ha2UgLUMgd2FidCAtaiQobnByb2MpCistRU5WIFBBVEg9JFBBVEg6L3dhYnQvYmluCistCist IyBJbnN0YWxsIGB3YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXJgCistUlVOIGN1cmwgLUwgaHR0cHM6 Ly9naXRodWIuY29tL3J1c3R3YXNtL3dhc20tYmluZGdlbi9yZWxlYXNlcy9kb3dubG9hZC8wLjIu ODcvd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5rbm93bi1saW51eC1tdXNsLnRhci5neiBc CistICB8IHRhciB4emYgLQorLSMgS2VlcCBpbiBzeW5jIHdpdGggdGhlIHZlcnNpb24gb24gQ2Fy Z28udG9tbC4KKy1FTlYgUEFUSD0kUEFUSDovd2FzbS1iaW5kZ2VuLTAuMi44Ny14ODZfNjQtdW5r bm93bi1saW51eC1tdXNsCistRU5WIENBUkdPX1RBUkdFVF9XQVNNMzJfVU5LTk9XTl9VTktOT1dO X1JVTk5FUj13YXNtLWJpbmRnZW4tdGVzdC1ydW5uZXIKKy0KKy0jIEluc3RhbGwgYG5vZGVgCist UlVOIGN1cmwgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvdjE0LjE2LjAvbm9kZS12MTQuMTYuMC1s aW51eC14NjQudGFyLnh6IHwgdGFyIHhKZiAtCistRU5WIFBBVEg9JFBBVEg6L25vZGUtdjE0LjE2 LjAtbGludXgteDY0L2JpbgorLQorLSMgV2UgdXNlIGEgc2hpbSBsaW5rZXIgdGhhdCByZW1vdmVz IGAtLXN0cmlwLWRlYnVnYCB3aGVuIHBhc3NlZCB0byBMTEQuIFdoaWxlCistIyB0aGlzIHR5cGlj YWxseSByZXN1bHRzIGluIGludmFsaWQgZGVidWcgaW5mb3JtYXRpb24gaW4gcmVsZWFzZSBtb2Rl IGl0IGRvZXNuJ3QKKy0jIHJlc3VsdCBpbiBhbiBpbnZhbGlkIG5hbWVzIHNlY3Rpb24gd2hpY2gg aXMgd2hhdCB3ZSdyZSBpbnRlcmVzdGVkIGluLgorLUNPUFkgbGxkLXNoaW0ucnMgLworLUVOViBD QVJHT19UQVJHRVRfV0FTTTMyX1VOS05PV05fVU5LTk9XTl9MSU5LRVI9L3RtcC9sbGQtc2hpbQor LQorLSMgUnVzdGMgaXNuJ3QgYXZhaWxhYmxlIHVudGlsIHRoaXMgY29udGFpbmVyIHN0YXJ0cywg c28gZGVmZXIgY29tcGlsYXRpb24gb2YgdGhlCistIyBzaGltLgorLUVOVFJZUE9JTlQgL3J1c3Qv YmluL3J1c3RjIC9sbGQtc2hpbS5ycyAtbyAvdG1wL2xsZC1zaGltICYmIGV4ZWMgYmFzaCAiJEAi CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2 XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIveDg2XzY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEs MzEgKzAsMCBAQAorLUZST00gdWJ1bnR1OjIwLjA0CistCistUlVOIGFwdC1nZXQgdXBkYXRlICYm IFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0g IGNhLWNlcnRpZmljYXRlcyBcCistICBjdXJsIFwKKy0gIGdjYyBcCistICBsaWJjLWRldiBcCist ICBweXRob24gXAorLSAgdW56aXAgXAorLSAgZmlsZSBcCistICBtYWtlCistCistV09SS0RJUiAv YW5kcm9pZC8KKy1FTlYgQU5EUk9JRF9BUkNIPXg4Nl82NAorLUNPUFkgYW5kcm9pZC1pbnN0YWxs LW5kay5zaCAvYW5kcm9pZC8KKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLW5kay5z aAorLQorLUVOViBTVERBUkNIX0FTU0VSVF9JTlNUUl9MSU1JVD0zMAorLQorLSMgV2UgZG8gbm90 IHJ1biB4ODZfNjQtbGludXgtYW5kcm9pZCB0ZXN0cyBvbiBhbiBhbmRyb2lkIGVtdWxhdG9yLgor LSMgU2VlIGNpL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggZm9yIGluZm9ybWF0aW9ucyBhYm91dCBob3cg dGVzdHMgYXJlIHJ1bi4KKy1DT1BZIGFuZHJvaWQtc3lzaW1hZ2Uuc2ggL2FuZHJvaWQvCistUlVO IGJhc2ggL2FuZHJvaWQvYW5kcm9pZC1zeXNpbWFnZS5zaCB4ODZfNjQgeDg2XzY0LTI0X3IwNy56 aXAKKy0KKy1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW46L2FuZHJvaWQvbmRrL3Rvb2xjaGFpbnMv bGx2bS9wcmVidWlsdC9saW51eC14ODZfNjQvYmluIFwKKy0gICAgQ0FSR09fVEFSR0VUX1g4Nl82 NF9MSU5VWF9BTkRST0lEX0xJTktFUj14ODZfNjQtbGludXgtYW5kcm9pZDIxLWNsYW5nIFwKKy0g ICAgQ0NfeDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxpbnV4LWFuZHJvaWQyMS1jbGFuZyBc CistICAgIENYWF94ODZfNjRfbGludXhfYW5kcm9pZD14ODZfNjQtbGludXgtYW5kcm9pZDIxLWNs YW5nKysgXAorLSAgICBPQkpEVU1QPWxsdm0tb2JqZHVtcCBcCistICAgIEhPTUU9L3RtcAorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11 bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0Rv Y2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVk L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICswLDAgQEAKKy1GUk9NIHVidW50 dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1p bnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwKKy0gIGxpYmM2LWRldiBcCistICBmaWxlIFwK Ky0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIHdnZXQgXAorLSAgYnppcDIgXAor LSAgY21ha2UgXAorLSAgbGliY2xhbmctZGV2IFwKKy0gIGNsYW5nCistCistUlVOIHdnZXQgaHR0 cHM6Ly9naXRodWIuY29tL2duemxiZy9pbnRlbF9zZGUvcmF3L21hc3Rlci9zZGUtZXh0ZXJuYWwt OC4xNi4wLTIwMTgtMDEtMzAtbGluLnRhci5iejIKKy1SVU4gdGFyIC14amYgc2RlLWV4dGVybmFs LTguMTYuMC0yMDE4LTAxLTMwLWxpbi50YXIuYnoyCistRU5WIENBUkdPX1RBUkdFVF9YODZfNjRf VU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvc2RlLWV4dGVybmFsLTguMTYuMC0yMDE4LTAxLTMw LWxpbi9zZGU2NCAtLSIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9E b2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJm aWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxMCArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQK Ky1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1y ZWNvbW1lbmRzIFwKKy0gIGdjYyBcCistICBsaWJjNi1kZXYgXAorLSAgZmlsZSBcCistICBtYWtl IFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBjbWFrZSBcCistICBsaWJjbGFuZy1kZXYgXAor LSAgY2xhbmcKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv eC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNoCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94 LnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwyNyArMCwwIEBACistIyEvYmluL3NoCistCistc2V0 IC1leAorLQorLXJtIC1yZiB0YXJnZXQvZG9jCistbWtkaXIgLXAgdGFyZ2V0L2RvYworLQorLSMg QnVpbGQgQVBJIGRvY3VtZW50YXRpb24KKy1jYXJnbyBkb2MgLS1mZWF0dXJlcz1pbnRvX2JpdHMK Ky0KKy0jIEJ1aWxkIFBlcmZvcm1hbmNlIEd1aWRlCistIyBGSVhNRTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L21kQm9vay9pc3N1ZXMvNzgwCistIyBtZGJvb2sgYnVpbGQg cGVyZi1ndWlkZSAtZCB0YXJnZXQvZG9jL3BlcmYtZ3VpZGUKKy1jZCBwZXJmLWd1aWRlCistbWRi b29rIGJ1aWxkCistY2QgLQorLWNwIC1yIHBlcmYtZ3VpZGUvYm9vayB0YXJnZXQvZG9jL3BlcmYt Z3VpZGUKKy0KKy0jIElmIHdlJ3JlIG9uIHRyYXZpcywgbm90IGEgUFIsIGFuZCBvbiB0aGUgcmln aHQgYnJhbmNoLCBwdWJsaXNoIQorLWlmIFsgIiRUUkFWSVNfUFVMTF9SRVFVRVNUIiA9ICJmYWxz ZSIgXSAmJiBbICIkVFJBVklTX0JSQU5DSCIgPSAibWFzdGVyIiBdOyB0aGVuCistICBweXRob24z IC12VgorLSAgcGlwIC12VgorLSAgcHl0aG9uMy45IC12VgorLSAgcGlwIGluc3RhbGwgZ2hwX2lt cG9ydCAtLXVzZXIKKy0gIGdocC1pbXBvcnQgLW4gdGFyZ2V0L2RvYworLSAgZ2l0IHB1c2ggLXFm IGh0dHBzOi8vJHtHSF9QQUdFU31AZ2l0aHViLmNvbS8ke1RSQVZJU19SRVBPX1NMVUd9LmdpdCBn aC1wYWdlcworLWZpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9saW51eC1zMzkweC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgt czM5MHguc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTgg KzAsMCBAQAorLXNldCAtZXgKKy0KKy1ta2RpciAtbSA3NzcgL3FlbXUKKy1jZCAvcWVtdQorLQor LWN1cmwgLUxPIGh0dHBzOi8vZ2l0aHViLmNvbS9xZW11L3FlbXUvcmF3L21hc3Rlci9wYy1iaW9z L3MzOTAtY2N3LmltZworLWN1cmwgLUxPIGh0dHA6Ly9mdHAuZGViaWFuLm9yZy9kZWJpYW4vZGlz dHMvdGVzdGluZy9tYWluL2luc3RhbGxlci1zMzkweC8yMDE3MDgyOC9pbWFnZXMvZ2VuZXJpYy9r ZXJuZWwuZGViaWFuCistY3VybCAtTE8gaHR0cDovL2Z0cC5kZWJpYW4ub3JnL2RlYmlhbi9kaXN0 cy90ZXN0aW5nL21haW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcwODI4L2ltYWdlcy9nZW5lcmljL2lu aXRyZC5kZWJpYW4KKy0KKy1tdiBrZXJuZWwuZGViaWFuIGtlcm5lbAorLW12IGluaXRyZC5kZWJp YW4gaW5pdHJkLmd6CistCistbWtkaXIgaW5pdAorLWNkIGluaXQKKy1ndW56aXAgLWMgLi4vaW5p dHJkLmd6IHwgY3BpbyAtaWQKKy1ybSAuLi9pbml0cmQuZ3oKKy1jcCAvdXNyL3MzOTB4LWxpbnV4 LWdudS9saWIvbGliZ2NjX3Muc28uMSB1c3IvbGliLworLWNobW9kIGErdyAuCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGlu dXgtc3BhcmM2NC5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTcgKzAsMCBAQAorLXNldCAtZXgK Ky0KKy1ta2RpciAtbSA3NzcgL3FlbXUKKy1jZCAvcWVtdQorLQorLWN1cmwgLUxPIGh0dHBzOi8v Y2RpbWFnZS5kZWJpYW4ub3JnL2NkaW1hZ2UvcG9ydHMvOS4wL3NwYXJjNjQvaXNvLWNkL2RlYmlh bi05LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvCistN3ogZSBkZWJpYW4tOS4wLXNwYXJjNjQtTkVU SU5TVC0xLmlzbyBib290L2luaXRyZC5negorLTd6IGUgZGViaWFuLTkuMC1zcGFyYzY0LU5FVElO U1QtMS5pc28gYm9vdC9zcGFyYzY0CistbXYgc3BhcmM2NCBrZXJuZWwKKy1ybSBkZWJpYW4tOS4w LXNwYXJjNjQtTkVUSU5TVC0xLmlzbworLQorLW1rZGlyIGluaXQKKy1jZCBpbml0CistZ3Vuemlw IC1jIC4uL2luaXRyZC5neiB8IGNwaW8gLWlkCistcm0gLi4vaW5pdHJkLmd6CistY3AgL3Vzci9z cGFyYzY0LWxpbnV4LWdudS9saWIvbGliZ2NjX3Muc28uMSB1c3IvbGliLworLWNobW9kIGErdyAu CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQtc2hpbS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGxkLXNoaW0ucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9s bGQtc2hpbS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEgKzAsMCBAQAorLXVzZSBzdGQ6Om9z Ojp1bml4OjpwcmVsdWRlOjoqOworLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7CistdXNlIHN0 ZDo6ZW52OworLQorLWZuIG1haW4oKSB7CistICAgIGxldCBhcmdzID0gZW52OjphcmdzKCkKKy0g ICAgICAgIC5za2lwKDEpCistICAgICAgICAuZmlsdGVyKHxzfCBzICE9ICItLXN0cmlwLWRlYnVn IikKKy0gICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpOworLSAgICBwYW5pYyEoImZhaWxlZCB0 byBleGVjOiB7fSIsIENvbW1hbmQ6Om5ldygicnVzdC1sbGQiKS5hcmdzKCZhcmdzKS5leGVjKCkp OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL21heF9s aW5lX3dpZHRoLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93 aWR0aC5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL21heF9saW5lX3dpZHRoLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwx NyArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgc2gKKy0KKy1zZXQgLXgKKy0KKy1leHBvcnQgc3Vj Y2Vzcz10cnVlCistCistZmluZCAuIC1pbmFtZSAnKi5ycycgfCB3aGlsZSByZWFkIC1yIGZpbGU7 IGRvCistICAgIHJlc3VsdD0kKGdyZXAgJy5cezc5XH0nICIke2ZpbGV9IiB8IGdyZXAgLS1pbnZl cnQgJ2h0dHAnKQorLSAgICBpZiBbICIke3Jlc3VsdH0iID0gIiIgXQorLSAgICB0aGVuCistICAg ICAgICA6CistICAgIGVsc2UKKy0gICAgICAgIGVjaG8gImZpbGUgXCIke2ZpbGV9XCI6ICRyZXN1 bHQiCistICAgICAgICBleGl0IDEKKy0gICAgZmkKKy1kb25lCistCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5zaAor KysrIC9kZXYvbnVsbAorQEAgLTEsMzggKzAsMCBAQAorLSMgU21hbGwgc2NyaXB0IHRvIHJ1biB0 ZXN0cyBmb3IgYSB0YXJnZXQgKG9yIGFsbCB0YXJnZXRzKSBpbnNpZGUgYWxsIHRoZQorLSMgcmVz cGVjdGl2ZSBkb2NrZXIgaW1hZ2VzLgorLQorLXNldCAtZXgKKy0KKy1ydW4oKSB7CistICAgIGVj aG8gIkJ1aWxkaW5nIGRvY2tlciBjb250YWluZXIgZm9yIFRBUkdFVD0ke1RBUkdFVH0gUlVTVEZM QUdTPSR7UlVTVEZMQUdTfSIKKy0gICAgZG9ja2VyIGJ1aWxkIC10IHBhY2tlZF9zaW1kIC1mIGNp L2RvY2tlci8ke1RBUkdFVH0vRG9ja2VyZmlsZSBjaS8KKy0gICAgbWtkaXIgLXAgdGFyZ2V0Cist ICAgIHRhcmdldD0kKGVjaG8gIiR7VEFSR0VUfSIgfCBzZWQgJ3MvLWVtdWxhdGVkLy8nKQorLSAg ICBlY2hvICJSdW5uaW5nIGRvY2tlciIKKy0gICAgZG9ja2VyIHJ1biBcCistICAgICAgLS11c2Vy IGBpZCAtdWA6YGlkIC1nYCBcCistICAgICAgLS1ybSBcCistICAgICAgLS1pbml0IFwKKy0gICAg ICAtLXZvbHVtZSAkSE9NRS8uY2FyZ286L2NhcmdvIFwKKy0gICAgICAtLWVudiBDQVJHT19IT01F PS9jYXJnbyBcCistICAgICAgLS12b2x1bWUgYHJ1c3RjIC0tcHJpbnQgc3lzcm9vdGA6L3J1c3Q6 cm8gXAorLSAgICAgIC0tZW52IFRBUkdFVD0kdGFyZ2V0IFwKKy0gICAgICAtLWVudiBOT1JVTiBc CistICAgICAgLS1lbnYgTk9WRVJJRlkgXAorLSAgICAgIC0tZW52IFJVU1RGTEFHUyBcCistICAg ICAgLS12b2x1bWUgYHB3ZGA6L2NoZWNrb3V0OnJvIFwKKy0gICAgICAtLXZvbHVtZSBgcHdkYC90 YXJnZXQ6L2NoZWNrb3V0L3RhcmdldCBcCistICAgICAgLS13b3JrZGlyIC9jaGVja291dCBcCist ICAgICAgLS1wcml2aWxlZ2VkIFwKKy0gICAgICBwYWNrZWRfc2ltZCBcCistICAgICAgYmFzaCBc CistICAgICAgLWMgJ1BBVEg9JFBBVEg6L3J1c3QvYmluIGV4ZWMgY2kvcnVuLnNoJworLX0KKy0K Ky1pZiBbIC16ICIke1RBUkdFVH0iIF07IHRoZW4KKy0gIGZvciBkIGluIGBscyBjaS9kb2NrZXIv YDsgZG8KKy0gICAgcnVuICRkCistICBkb25lCistZWxzZQorLSAgcnVuICR7VEFSR0VUfQorLWZp CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4uc2ggYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAorZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAorKysr IC9kZXYvbnVsbAorQEAgLTEsOTkgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJhc2gKKy0KKy1z ZXQgLWV4CistCistOiAke1RBUkdFVD8iVGhlIFRBUkdFVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBt dXN0IGJlIHNldC4ifQorLQorLSMgVGVzdHMgYXJlIGFsbCBzdXBlciBmYXN0IGFueXdheSwgYW5k IHRoZXkgZmF1bHQgb2Z0ZW4gZW5vdWdoIG9uIHRyYXZpcyB0aGF0CistIyBoYXZpbmcgb25seSBv bmUgdGhyZWFkIGluY3JlYXNlcyBkZWJ1Z2dhYmlsaXR5IHRvIGJlIHdvcnRoIGl0LgorLSNleHBv cnQgUlVTVF9URVNUX1RIUkVBRFM9MQorLSNleHBvcnQgUlVTVF9CQUNLVFJBQ0U9ZnVsbAorLSNl eHBvcnQgUlVTVF9URVNUX05PQ0FQVFVSRT0xCistCistIyBTb21lIGFwcHZleW9yIGJ1aWxkcyBy dW4gb3V0LW9mLW1lbW9yeTsgdGhpcyBhdHRlbXB0cyB0byBtaXRpZ2F0ZSB0aGF0OgorLSMgaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8zOQor LSMgZXhwb3J0IFJVU1RGTEFHUz0iJHtSVVNURkxBR1N9IC1DIGNvZGVnZW4tdW5pdHM9MSIKKy0j IGV4cG9ydCBDQVJHT19CVUlMRF9KT0JTPTEKKy0KKy1leHBvcnQgQ0FSR09fU1VCQ01EPXRlc3QK Ky1pZiBbWyAiJHtOT1JVTn0iID09ICIxIiBdXTsgdGhlbgorLSAgICBleHBvcnQgQ0FSR09fU1VC Q01EPWJ1aWxkCistZmkKKy0KKy1pZiBbWyAke1RBUkdFVH0gPT0gIng4Nl82NC1hcHBsZS1pb3Mi IF1dIHx8IFtbICR7VEFSR0VUfSA9PSAiaTM4Ni1hcHBsZS1pb3MiIF1dOyB0aGVuCistICAgIGV4 cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAtQ2xpbmstYXJnPS1taW9zLXNpbXVsYXRvci12 ZXJzaW9uLW1pbj03LjAiCistICAgIHJ1c3RjIC4vY2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3Np bXVsYXRvci5ycyAtbyAkSE9NRS9ydW50ZXN0CistICAgIGV4cG9ydCBDQVJHT19UQVJHRVRfWDg2 XzY0X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVudGVzdAorLSAgICBleHBvcnQgQ0FSR09fVEFS R0VUX0kzODZfQVBQTEVfSU9TX1JVTk5FUj0kSE9NRS9ydW50ZXN0CistZmkKKy0KKy0jIFRoZSBz b3VyY2UgZGlyZWN0b3J5IGlzIHJlYWQtb25seS4gTmVlZCB0byBjb3B5IGludGVybmFsIGNyYXRl cyB0byB0aGUgdGFyZ2V0CistIyBkaXJlY3RvcnkgZm9yIHRoZWlyIENhcmdvLmxvY2sgdG8gYmUg cHJvcGVybHkgd3JpdHRlbi4KKy1ta2RpciB0YXJnZXQgfHwgdHJ1ZQorLQorLXJ1c3RjIC0tdmVy c2lvbgorLWNhcmdvIC0tdmVyc2lvbgorLWVjaG8gIlRBUkdFVD0ke1RBUkdFVH0iCistZWNobyAi SE9TVD0ke0hPU1R9IgorLWVjaG8gIlJVU1RGTEFHUz0ke1JVU1RGTEFHU30iCistZWNobyAiTk9S VU49JHtOT1JVTn0iCistZWNobyAiTk9WRVJJRlk9JHtOT1ZFUklGWX0iCistZWNobyAiQ0FSR09f U1VCQ01EPSR7Q0FSR09fU1VCQ01EfSIKKy1lY2hvICJDQVJHT19CVUlMRF9KT0JTPSR7Q0FSR09f QlVJTERfSk9CU30iCistZWNobyAiQ0FSR09fSU5DUkVNRU5UQUw9JHtDQVJHT19JTkNSRU1FTlRB TH0iCistZWNobyAiUlVTVF9URVNUX1RIUkVBRFM9JHtSVVNUX1RFU1RfVEhSRUFEU30iCistZWNo byAiUlVTVF9CQUNLVFJBQ0U9JHtSVVNUX0JBQ0tUUkFDRX0iCistZWNobyAiUlVTVF9URVNUX05P Q0FQVFVSRT0ke1JVU1RfVEVTVF9OT0NBUFRVUkV9IgorLQorLWNhcmdvX3Rlc3QoKSB7CistICAg IGNtZD0iY2FyZ28gJHtDQVJHT19TVUJDTUR9IC0tdmVyYm9zZSAtLXRhcmdldD0ke1RBUkdFVH0g JHtAfSIKKy0gICAgaWYgWyAiJHtOT1JVTn0iICE9ICIxIiBdCistICAgIHRoZW4KKy0gICAgICAg IGlmIFsgIiRUQVJHRVQiICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdCistICAgICAgICB0 aGVuCistICAgICAgICAgICAgY21kPSIkY21kIC0tIC0tcXVpZXQiCistICAgICAgICBmaQorLSAg ICBmaQorLSAgICBta2RpciB0YXJnZXQgfHwgdHJ1ZQorLSAgICAke2NtZH0gMj4mMSB8IHRlZSA+ IHRhcmdldC9vdXRwdXQKKy0gICAgaWYgW1sgJHtQSVBFU1RBVFVTWzBdfSAhPSAwIF1dOyB0aGVu CistICAgICAgICBjYXQgdGFyZ2V0L291dHB1dAorLSAgICAgICAgcmV0dXJuIDEKKy0gICAgZmkK Ky19CistCistY2FyZ29fdGVzdF9pbXBsKCkgeworLSAgICBPUklHSU5BTF9SVVNURkxBR1M9JHtS VVNURkxBR1N9CistICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRl c3RfdjE2ICAtLWNmZyB0ZXN0X3YzMiAtLWNmZyB0ZXN0X3Y2NCIgY2FyZ29fdGVzdCAke0B9Cist ICAgIFJVU1RGTEFHUz0iJHtPUklHSU5BTF9SVVNURkxBR1N9IC0tY2ZnIHRlc3RfdjEyOCAtLWNm ZyB0ZXN0X3YyNTYiIGNhcmdvX3Rlc3QgJHtAfQorLSAgICBSVVNURkxBR1M9IiR7T1JJR0lOQUxf UlVTVEZMQUdTfSAtLWNmZyB0ZXN0X3Y1MTIiIGNhcmdvX3Rlc3QgJHtAfQorLSAgICBSVVNURkxB R1M9JHtPUklHSU5BTF9SVVNURkxBR1N9CistfQorLQorLSMgRGVidWcgcnVuOgorLWlmIFtbICIk e1RBUkdFVH0iICE9ICJ3YXNtMzItdW5rbm93bi11bmtub3duIiBdXTsgdGhlbgorLSAgICMgUnVu IHdhc20zMi11bmtub3duLXVua25vd24gaW4gcmVsZWFzZSBtb2RlIG9ubHkKKy0gICBjYXJnb190 ZXN0X2ltcGwKKy1maQorLQorLWlmIFtbICIke1RBUkdFVH0iID09ICJ4ODZfNjQtdW5rbm93bi1s aW51eC1nbnUiIF1dIHx8IFtbICIke1RBUkdFVH0iID09ICJ4ODZfNjQtcGMtd2luZG93cy1tc3Zj IiBdXTsgdGhlbgorLSAgICAjIHVzZSBzbGVlZiBvbiBsaW51eCBhbmQgd2luZG93cyB4ODZfNjQg YnVpbGRzCistICAgICMgRklYTUU6IFVzZSBgY29yZV9hcmNoLHNsZWVmLXN5c2AgZmVhdHVyZXMg b25jZSB0aGV5IHdvcmtzIGFnYWluCistICAgIGNhcmdvX3Rlc3RfaW1wbCAtLXJlbGVhc2UgLS1m ZWF0dXJlcz1pbnRvX2JpdHMKKy1lbHNlCistICAgICMgRklYTUU6IFVzZSBgY29yZV9hcmNoYCBm ZWF0dXJlIG9uY2UgaXQgd29ya3MgYWdhaW4KKy0gICAgY2FyZ29fdGVzdF9pbXBsIC0tcmVsZWFz ZSAtLWZlYXR1cmVzPWludG9fYml0cworLWZpCistCistIyBWZXJpZnkgY29kZSBnZW5lcmF0aW9u CistaWYgW1sgIiR7Tk9WRVJJRll9IiAhPSAiMSIgXV07IHRoZW4KKy0gICAgY3AgLXIgdmVyaWZ5 L3ZlcmlmeSB0YXJnZXQvdmVyaWZ5CistICAgIGV4cG9ydCBTVERTSU1EX0FTU0VSVF9JTlNUUl9M SU1JVD0zMAorLSAgICBpZiBbWyAiJHtUQVJHRVR9IiA9PSAiaTU4Ni11bmtub3duLWxpbnV4LWdu dSIgXV07IHRoZW4KKy0gICAgICAgIGV4cG9ydCBTVERTSU1EX0FTU0VSVF9JTlNUUl9MSU1JVD01 MAorLSAgICBmaQorLSAgICBjYXJnb190ZXN0IC0tcmVsZWFzZSAtLW1hbmlmZXN0LXBhdGg9dGFy Z2V0L3ZlcmlmeS9DYXJnby50b21sCistZmkKKy0KKy0jIEZJWE1FOiBGaWd1cmUgb3V0IHdoaWNo IGV4YW1wbGVzIHRha2UgdG9vIGxvbmcgdG8gcnVuIGFuZCBpZ25vcmUgb3IgYWRqdXN0IHRob3Nl CistIy4gY2kvcnVuX2V4YW1wbGVzLnNoCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL3J1bl9leGFtcGxlcy5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bl9leGFtcGxlcy5zaAorKysrIC9kZXYv bnVsbAorQEAgLTEsNTEgKzAsMCBAQAorLSMgUnVucyBhbGwgZXhhbXBsZXMuCistCistIyBGSVhN RTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy81NQorLSMgQWxsIGV4YW1wbGVzIGZhaWwgdG8gYnVpbGQgZm9yIGBhcm12Ny1hcHBsZS1pb3Ng LgorLWlmIFtbICR7VEFSR0VUfSA9PSAiYXJtdjctYXBwbGUtaW9zIiBdXTsgdGhlbgorLSAgICBl eGl0IDAKKy1maQorLQorLSMgRklYTUU6IHRyYXZpcyBleGNlZWRzIDUwIG1pbnV0ZXMgb24gdGhl c2UgdGFyZ2V0cworLSMgU2tpcHBpbmcgdGhlIGV4YW1wbGVzIGlzIGFuIGF0dGVtcHQgYXQgcHJl dmVudGluZyB0cmF2aXMgZnJvbSB0aW1pbmctb3V0CistaWYgW1sgJHtUQVJHRVR9ID09ICJhcm0t bGludXgtYW5kcm9pZGFiaSIgXV0gfHwgW1sgJHtUQVJHRVR9ID09ICJhYXJjaDY0LWxpbnV4LWFu ZHJvaWRhYmkiIF1dIFwKKy0gICAgfHwgW1sgJHtUQVJHRVR9ID09ICJzcGFyYzY0LXVua25vd24t bGludXgtZ251IiBdXTsgdGhlbgorLSAgICBleGl0IDAKKy1maQorLQorLWlmIFtbICR7VEFSR0VU fSA9PSAid2FzbTMyLXVua25vd24tdW5rbm93biIgXV07IHRoZW4KKy0gICAgZXhpdCAwCistZmkK Ky0KKy1jcCAtciBleGFtcGxlcy9hb2JlbmNoIHRhcmdldC9hb2JlbmNoCistY2FyZ29fdGVzdCAt LW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2FvYmVuY2gvQ2FyZ28udG9tbCAtLXJlbGVhc2UgLS1uby1k ZWZhdWx0LWZlYXR1cmVzCistY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2FvYmVu Y2gvQ2FyZ28udG9tbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz0yNTZiaXQKKy0KKy1jcCAtciBleGFt cGxlcy9kb3RfcHJvZHVjdCB0YXJnZXQvZG90X3Byb2R1Y3QKKy1jYXJnb190ZXN0IC0tbWFuaWZl c3QtcGF0aD10YXJnZXQvZG90X3Byb2R1Y3QvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy0KKy1jcCAt ciBleGFtcGxlcy9mYW5ua3VjaF9yZWR1eCB0YXJnZXQvZmFubmt1Y2hfcmVkdXgKKy1jYXJnb190 ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvZmFubmt1Y2hfcmVkdXgvQ2FyZ28udG9tbCAtLXJl bGVhc2UKKy0KKy0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkv cGFja2VkX3NpbWQvaXNzdWVzLzU2CistaWYgW1sgJHtUQVJHRVR9ICE9ICJpNTg2LXVua25vd24t bGludXgtZ251IiBdXTsgdGhlbgorLSAgICBjcCAtciBleGFtcGxlcy9tYW5kZWxicm90IHRhcmdl dC9tYW5kZWxicm90CistICAgIGNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9tYW5k ZWxicm90L0NhcmdvLnRvbWwgLS1yZWxlYXNlCistZmkKKy0KKy1jcCAtciBleGFtcGxlcy9tYXRy aXhfaW52ZXJzZSB0YXJnZXQvbWF0cml4X2ludmVyc2UKKy1jYXJnb190ZXN0IC0tbWFuaWZlc3Qt cGF0aD10YXJnZXQvbWF0cml4X2ludmVyc2UvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy0KKy1jcCAt ciBleGFtcGxlcy9uYm9keSB0YXJnZXQvbmJvZHkKKy1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0 aD10YXJnZXQvbmJvZHkvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy0KKy1jcCAtciBleGFtcGxlcy9z cGVjdHJhbF9ub3JtIHRhcmdldC9zcGVjdHJhbF9ub3JtCistY2FyZ29fdGVzdCAtLW1hbmlmZXN0 LXBhdGg9dGFyZ2V0L3NwZWN0cmFsX25vcm0vQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy0KKy1pZiBb WyAke1RBUkdFVH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCistICAgIGNw IC1yIGV4YW1wbGVzL3N0ZW5jaWwgdGFyZ2V0L3N0ZW5jaWwKKy0gICAgY2FyZ29fdGVzdCAtLW1h bmlmZXN0LXBhdGg9dGFyZ2V0L3N0ZW5jaWwvQ2FyZ28udG9tbCAtLXJlbGVhc2UKKy1maQorLQor LWNwIC1yIGV4YW1wbGVzL3RyaWFuZ2xlX3hmb3JtIHRhcmdldC90cmlhbmdsZV94Zm9ybQorLWNh cmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC90cmlhbmdsZV94Zm9ybS9DYXJnby50b21s IC0tcmVsZWFzZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv cnVudGVzdC1hbmRyb2lkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50 ZXN0LWFuZHJvaWQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFuZHJvaWQucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDQ1ICswLDAgQEAKKy11c2Ugc3RkOjplbnY7CistdXNlIHN0ZDo6cHJvY2Vzczo6Q29t bWFuZDsKKy11c2Ugc3RkOjpwYXRoOjp7UGF0aCwgUGF0aEJ1Zn07CistCistZm4gbWFpbigpIHsK Ky0gICAgbGV0IGFyZ3MgPSBlbnY6OmFyZ3Nfb3MoKQorLSAgICAgICAgLnNraXAoMSkKKy0gICAg ICAgIC5maWx0ZXIofGFyZ3wgYXJnICE9ICItLXF1aWV0IikKKy0gICAgICAgIC5jb2xsZWN0Ojo8 VmVjPF8+PigpOworLSAgICBhc3NlcnRfZXEhKGFyZ3MubGVuKCksIDEpOworLSAgICBsZXQgdGVz dCA9IFBhdGhCdWY6OmZyb20oJmFyZ3NbMF0pOworLSAgICBsZXQgZHN0ID0gUGF0aDo6bmV3KCIv ZGF0YS9sb2NhbC90bXAiKS5qb2luKHRlc3QuZmlsZV9uYW1lKCkudW53cmFwKCkpOworLQorLSAg ICBsZXQgc3RhdHVzID0gQ29tbWFuZDo6bmV3KCJhZGIiKQorLSAgICAgICAgLmFyZygid2FpdC1m b3ItZGV2aWNlIikKKy0gICAgICAgIC5zdGF0dXMoKQorLSAgICAgICAgLmV4cGVjdCgiZmFpbGVk IHRvIHJ1bjogYWRiIHdhaXQtZm9yLWRldmljZSIpOworLSAgICBhc3NlcnQhKHN0YXR1cy5zdWNj ZXNzKCkpOworLQorLSAgICBsZXQgc3RhdHVzID0gQ29tbWFuZDo6bmV3KCJhZGIiKQorLSAgICAg ICAgLmFyZygicHVzaCIpCistICAgICAgICAuYXJnKCZ0ZXN0KQorLSAgICAgICAgLmFyZygmZHN0 KQorLSAgICAgICAgLnN0YXR1cygpCistICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBh ZGIgcHVzaHIiKTsKKy0gICAgYXNzZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsKKy0KKy0gICAgbGV0 IG91dHB1dCA9IENvbW1hbmQ6Om5ldygiYWRiIikKKy0gICAgICAgIC5hcmcoInNoZWxsIikKKy0g ICAgICAgIC5hcmcoJmRzdCkKKy0gICAgICAgIC5vdXRwdXQoKQorLSAgICAgICAgLmV4cGVjdCgi ZmFpbGVkIHRvIHJ1bjogYWRiIHNoZWxsIik7CistICAgIGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3Mo KSk7CistCistICAgIHByaW50bG4hKCJzdGF0dXM6IHt9XG5zdGRvdXQgLS0tXG57fVxuc3RkZXJy IC0tLVxue30iLAorLSAgICAgICAgICAgICBvdXRwdXQuc3RhdHVzLAorLSAgICAgICAgICAgICBT dHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCksCistICAgICAgICAgICAgIFN0 cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQuc3RkZXJyKSk7CistCistICAgIGxldCBzdGRv dXQgPSBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCk7CistICAgIGxldCBt dXQgbGluZXMgPSBzdGRvdXQubGluZXMoKS5maWx0ZXIofGx8IGwuc3RhcnRzX3dpdGgoInRlc3Qg cmVzdWx0IikpOworLSAgICBpZiAhbGluZXMuYWxsKHxsfCBsLmNvbnRhaW5zKCJ0ZXN0IHJlc3Vs dDogb2siKSAmJiBsLmNvbnRhaW5zKCIwIGZhaWxlZCIpKSB7CistICAgICAgICBwYW5pYyEoImZh aWxlZCB0byBmaW5kIHN1Y2Nlc3NmdWwgdGVzdCBydW4iKTsKKy0gICAgfQorLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNobWFya3Muc2gg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNobWFya3Muc2gKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAK Ky0jIS91c3IvYmluL2VudiBiYXNoCistCistc2V0IC1leAorLQorLSMgR2V0IGxhdGVzdCBJU1BD IGJpbmFyeSBmb3IgdGhlIHRhcmdldCBhbmQgcHV0IGl0IGluIHRoZSBwYXRoCistZ2l0IGNsb25l IGh0dHBzOi8vZ2l0aHViLmNvbS9nbnpsYmcvaXNwYy1iaW5hcmllcworLWNwIGlzcGMtYmluYXJp ZXMvaXNwYy0ke1RBUkdFVH0gaXNwYworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXgKKysrKyAv ZGV2L251bGwKK0BAIC0xLDI0ICswLDAgQEAKKy0jIS9iaW4vc2gKKy0KKy1zZXQgLWUKKy0KKy1h cmNoPSQxCistcHJvZz0kMgorLQorLWNkIC9xZW11L2luaXQKKy1jcCAtZiAkMiBwcm9nCistZmlu ZCAuIHwgY3BpbyAtLWNyZWF0ZSAtLWZvcm1hdD0nbmV3YycgLS1xdWlldCB8IGd6aXAgPiAuLi9p bml0cmQuZ3oKKy1jZCAuLgorLQorLXRpbWVvdXQgMzBzIHFlbXUtc3lzdGVtLSRhcmNoIFwKKy0g ICAgICAgIC1tIDEwMjQgXAorLSAgICAgICAgLW5vZ3JhcGhpYyBcCistICAgICAgICAta2VybmVs IGtlcm5lbCBcCistICAgICAgICAtaW5pdHJkIGluaXRyZC5neiBcCistICAgICAgICAtYXBwZW5k IGluaXQ9L3Byb2cgPiBvdXRwdXQgfHwgdHJ1ZQorLQorLSMgcmVtb3ZlIGtlcm5lbCBtZXNzYWdl cworLXRyIC1kICdccicgPCBvdXRwdXQgfCBlZ3JlcCAtdiAnXlxbJworLQorLSMgaWYgdGhlIG91 dHB1dCBjb250YWlucyBhIGZhaWx1cmUsIHJldHVybiBlcnJvcgorLSEgZ3JlcCBGQUlMRUQgb3V0 cHV0ID4gL2Rldi9udWxsCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jb250cmlidXRpbmcubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1 dGluZy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNjcgKzAs MCBAQAorLSMgQ29udHJpYnV0aW5nIHRvIGBwYWNrZWRfc2ltZGAKKy0KKy1XZWxjb21lISBJZiB5 b3UgYXJlIHJlYWRpbmcgdGhpcyBkb2N1bWVudCwgaXQgbWVhbnMgeW91IGFyZSBpbnRlcmVzdGVk IGluIGNvbnRyaWJ1dGluZworLXRvIHRoZSBgcGFja2VkX3NpbWRgIGNyYXRlLgorLQorLSMjIFJl cG9ydGluZyBpc3N1ZXMKKy0KKy1BbGwgaXNzdWVzIHdpdGggdGhpcyBjcmF0ZSBhcmUgdHJhY2tl ZCB1c2luZyBHaXRIdWIncyBbSXNzdWUgVHJhY2tlcl0uCistCistWW91IGNhbiB1c2UgaXNzdWVz IHRvIGJyaW5nIGJ1Z3MgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUgbWFpbnRhaW5lcnMsIHRvIGRp c2N1c3MKKy1jZXJ0YWluIHByb2JsZW1zIGVuY291bnRlcmVkIHdpdGggdGhlIGNyYXRlLCBvciB0 byByZXF1ZXN0IG5ldyBmZWF0dXJlcyAoYWx0aG91Z2gKKy1mZWF0dXJlIHJlcXVlc3RzIHNob3Vs ZCBiZSBsaW1pdGVkIHRvIHRoaW5ncyBtZW50aW9uZWQgaW4gdGhlIFtSRkNdKS4KKy0KKy1PbmUg dGhpbmcgdG8ga2VlcCBpbiBtaW5kIGlzIHRvIGFsd2F5cyB1c2UgdGhlICoqbGF0ZXN0Kiogbmln aHRseSB0b29sY2hhaW4gd2hlbgorLXdvcmtpbmcgb24gdGhpcyBjcmF0ZS4gRHVlIHRvIHRoZSBu YXR1cmUgb2YgdGhpcyBwcm9qZWN0LCB3ZSB1c2UgYSBsb3Qgb2YgdW5zdGFibGUKKy1mZWF0dXJl cywgbWVhbmluZyBicmVha2FnZSBoYXBwZW5zIG9mdGVuLgorLQorLVtJc3N1ZSBUcmFja2VyXTog aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcwor LVtSRkNdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yMzY2CistCist IyMjIExMVk0gaXNzdWVzCistCistVGhlIFJ1c3QgY29tcGlsZXIgcmVsaWVzIG9uIFtMTFZNXSho dHRwczovL2xsdm0ub3JnLykgZm9yIG1hY2hpbmUgY29kZSBnZW5lcmF0aW9uLAorLWFuZCBxdWl0 ZSBhIGZldyBMTFZNIGJ1Z3MgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgZHVyaW5nIHRoZSBkZXZlbG9w bWVudCBvZiB0aGlzIHByb2plY3QuCistCistSWYgeW91IGVuY291bnRlciBpc3N1ZXMgd2l0aCBp bmNvcnJlY3Qvc3Vib3B0aW1hbCBjb2RlZ2VuLCB3aGljaCB5b3UgZG8gbm90IGVuY291bnRlcgor LXdoZW4gdXNpbmcgdGhlIFtTSU1EIHZlbmRvciBpbnRyaW5zaWNzXShodHRwczovL2RvYy5ydXN0 LWxhbmcub3JnL25pZ2h0bHkvc3RkL2FyY2gvKSwKKy1pdCBpcyBsaWtlbHkgdGhlIGlzc3VlIGlz IHdpdGggTExWTSwgb3IgdGhpcyBjcmF0ZSdzIGludGVyYWN0aW9uIHdpdGggaXQuCistCistWW91 IHNob3VsZCBmaXJzdCBvcGVuIGFuIGlzc3VlICoqaW4gdGhpcyByZXBvKiogdG8gaGVscCB1cyB0 cmFjayB0aGUgcHJvYmxlbSwgYW5kIHdlCistd2lsbCBoZWxwIGRldGVybWluZSB3aGF0IGlzIHRo ZSBleGFjdCBjYXVzZSBvZiB0aGUgcHJvYmxlbS4KKy1JZiBMTFZNIGlzIGluZGVlZCB0aGUgY2F1 c2UsIHRoZSBpc3N1ZSB3aWxsIGJlIHJlcG9ydGVkIHVwc3RyZWFtIHRvIHRoZQorLVtMTFZNIGJ1 Z3RyYWNrZXJdKGh0dHBzOi8vYnVncy5sbHZtLm9yZy8pLgorLQorLSMjIFN1Ym1pdHRpbmcgUHVs bCBSZXF1ZXN0cworLQorLU5ldyBjb2RlIGlzIHN1Ym1pdHRlZCB0byB0aGUgY3JhdGUgdXNpbmcg R2l0SHViJ3MgW3B1bGwgcmVxdWVzdF0gbWVjaGFuaXNtLgorLVlvdSBzaG91bGQgZmlyc3QgZm9y ayB0aGlzIHJlcG9zaXRvcnksIG1ha2UgeW91ciBjaGFuZ2VzIChwcmVmZXJhYmx5IGluIGEgbmV3 CistYnJhbmNoKSwgdGhlbiB1c2UgR2l0SHViJ3Mgd2ViIFVJIHRvIGNyZWF0ZSBhIG5ldyBQUi4K Ky0KKy1bcHVsbCByZXF1ZXN0XTogaHR0cHM6Ly9oZWxwLmdpdGh1Yi5jb20vYXJ0aWNsZXMvYWJv dXQtcHVsbC1yZXF1ZXN0cy8KKy0KKy0jIyMgRXhhbXBsZXMKKy0KKy1UaGUgYGV4YW1wbGVzYCBk aXJlY3RvcnkgY29udGFpbnMgY29kZSBzaG93Y2FzaW5nIFNJTUQgY29kZSB3cml0dGVuIHdpdGgg dGhpcyBjcmF0ZSwKKy11c3VhbGx5IGluIGNvbXBhcmlzb24gdG8gc2NhbGFyIG9yIElTUEMgY29k ZS4gSWYgeW91IGhhdmUgYSBwcm9qZWN0IC8gaWRlYSB3aGljaAorLXVzZXMgU0lNRCwgd2UnZCBs b3ZlIHRvIGFkZCBpdCB0byB0aGUgZXhhbXBsZXMgbGlzdC4KKy0KKy1FdmVyeSBleGFtcGxlIHNo b3VsZCBpbmNsdWRlIGEgc21hbGwgYFJFQURNRWAsIGRlc2NyaWJpbmcgdGhlIGV4YW1wbGUgY29k ZSdzIHB1cnBvc2UuCistSWYgeW91ciBleGFtcGxlIGNvdWxkIHBvdGVudGlhbGx5IHdvcmsgYXMg YSBiZW5jaG1hcmssIHRoZW4gYWRkIGEgYGJlbmNobWFyay5zaGAKKy1zY3JpcHQgdG8gYWxsb3cg cnVubmluZyB0aGUgZXhhbXBsZSBiZW5jaG1hcmsgY29kZSBpbiBDSS4gU2VlIGFuIGV4aXN0aW5n IGV4YW1wbGUncworLVtgYmVuY2htYXJrLnNoYF0oZXhhbXBsZXMvYW9iZW5jaC9iZW5jaG1hcmsu c2gpIGZvciBhIHNhbXBsZS4KKy0KKy1Eb24ndCBmb3JnZXQgdG8gdXBkYXRlIHRoZSBjcmF0ZSdz IHRvcC1sZXZlbCBgUkVBRE1FYCB3aXRoIGEgbGluayB0byB5b3VyIGV4YW1wbGUuCistCistIyMj IFBlcmYgZ3VpZGUKKy0KKy1UaGUgb2JqZWN0aXZlIG9mIHRoZSBbcGVyZm9ybWFuY2UgZ3VpZGVd W3BlcmYtZ3VpZGVdIGlzIHRvIGJlIGEgY29tcHJlaGVuc2l2ZQorLXJlc291cmNlIGRldGFpbGlu ZyB0aGUgcHJvY2VzcyBvZiBvcHRpbWl6aW5nIFJ1c3QgY29kZSB3aXRoIFNJTUQgc3VwcG9ydC4K Ky0KKy1JZiB5b3UgYmVsaWV2ZSBhIGNlcnRhaW4gc2VjdGlvbiBjb3VsZCBiZSByZXdvcmRlZCwg b3IgaWYgeW91IGhhdmUgYW55IHRpcHMgJiB0cmlja3MKKy1yZWxhdGVkIHRvIFNJTUQgd2hpY2gg eW91J2QgbGlrZSB0byBzaGFyZSwgcGxlYXNlIG9wZW4gYSBQUi4KKy0KKy1bbWRCb29rXSBpcyB1 c2VkIHRvIG1hbmFnZSB0aGUgZm9ybWF0dGluZyBvZiB0aGUgZ3VpZGUgYXMgYSBib29rLgorLQor LVtwZXJmLWd1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS8KKy1bbWRCb29rXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L21kQm9vaworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS8uZ2l0aWdub3JlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlLy5naXRpZ25vcmUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUKKysrKyAvZGV2 L251bGwKK0BAIC0xLDEgKzAsMCBAQAorLS9ib29rCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jvb2sudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvcGVyZi1ndWlkZS9ib29rLnRvbWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jvb2sudG9t bAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTIgKzAsMCBAQAorLVtib29rXQorLWF1dGhvcnMgPSBb IkdvbnphbG8gQnJpdG8gR2FkZXNjaGkiLCAiR2FicmllbCBNYWplcmkiXQorLW11bHRpbGluZ3Vh bCA9IGZhbHNlCistc3JjID0gInNyYyIKKy10aXRsZSA9ICJSdXN0IFNJTUQgUGVyZm9ybWFuY2Ug R3VpZGUiCistZGVzY3JpcHRpb24gPSAiVGhpcyBib29rIGRlc2NyaWJlcyBob3cgdG8gd3JpdGUg cGVyZm9ybWFudCBTSU1EIGNvZGUgaW4gUnVzdC4iCistCistW2J1aWxkXQorLWNyZWF0ZS1taXNz aW5nID0gZmFsc2UKKy0KKy1bb3V0cHV0Lmh0bWxdCistYWRkaXRpb25hbC1jc3MgPSBbIi4vc3Jj L2FzY2lpLmNzcyJdCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZAor KysrIC9kZXYvbnVsbAorQEAgLTEsMjEgKzAsMCBAQAorLSMgU3VtbWFyeQorLQorLVtJbnRyb2R1 Y3Rpb25dKC4vaW50cm9kdWN0aW9uLm1kKQorLQorLS0gW0Zsb2F0aW5nLXBvaW50IE1hdGhdKC4v ZmxvYXQtbWF0aC9mcC5tZCkKKy0gIC0gW1Nob3J0LXZlY3RvciBNYXRoIExpYnJhcnldKC4vZmxv YXQtbWF0aC9zdm1sLm1kKQorLSAgLSBbQXBwcm94aW1hdGUgZnVuY3Rpb25zXSguL2Zsb2F0LW1h dGgvYXBwcm94Lm1kKQorLSAgLSBbRnVzZWQgbXVsdGlwbHktYWNjdW11bGF0ZV0oLi9mbG9hdC1t YXRoL2ZtYS5tZCkKKy0KKy0tIFtUYXJnZXQgZmVhdHVyZXNdKC4vdGFyZ2V0LWZlYXR1cmUvZmVh dHVyZXMubWQpCistICAtIFtVc2luZyBgUlVTVEZMQUdTYF0oLi90YXJnZXQtZmVhdHVyZS9ydXN0 ZmxhZ3MubWQpCistICAtIFtVc2luZyB0aGUgYHRhcmdldF9mZWF0dXJlYCBhdHRyaWJ1dGVdKC4v dGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kKQorLSAgLSBbSW50ZXJhY3Rpb24gd2l0aCBpbmxp bmluZ10oLi90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCkKKy0gIC0gW0RldGVjdGluZyBmZWF0 dXJlcyBhdCBydW50aW1lXSguL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQpCistCistLSBbQm91 bmRzIGNoZWNraW5nXSguL2JvdW5kX2NoZWNrcy5tZCkKKy0tIFtWZXJ0aWNhbCBhbmQgaG9yaXpv bnRhbCBvcGVyYXRpb25zXSguL3ZlcnQtaG9yLW9wcy5tZCkKKy0KKy0tIFtQZXJmb3JtYW5jZSBw cm9maWxpbmddKC4vcHJvZi9wcm9maWxpbmcubWQpCistICAtIFtQcm9maWxpbmcgb24gTGludXhd KC4vcHJvZi9saW51eC5tZCkKKy0gIC0gW1VzaW5nIG1hY2hpbmUgY29kZSBhbmFseXplcnNdKC4v cHJvZi9tY2EubWQpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL2FzY2lpLmNzcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2FzY2lpLmNzcworKysr IC9kZXYvbnVsbAorQEAgLTEsNCArMCwwIEBACistY29kZSB7CistICAgIC8qICJTb3VyY2UgQ29k ZSBQcm8iIGJyZWFrcyBBU0NJSSBhcnQgKi8KKy0gICAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCAi VWJ1bnR1IE1vbm8iLCBNZW5sbywgIkRlamFWdSBTYW5zIE1vbm8iLCBtb25vc3BhY2U7CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv Ym91bmRfY2hlY2tzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy9ib3VuZF9jaGVja3MubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQK KysrKyAvZGV2L251bGwKK0BAIC0xLDIyICswLDAgQEAKKy0jIEJvdW5kcyBjaGVja2luZworLQor LVJlYWRpbmcgYW5kIHdyaXRpbmcgcGFja2VkIHZlY3RvcnMgdG8vZnJvbSBzbGljZXMgaXMgY2hl Y2tlZCBieSBkZWZhdWx0LgorLUluZGVwZW5kZW50bHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0 aW9ucyB1c2VkLCB0aGUgc2FmZSBmdW5jdGlvbnM6CistCistKiBgU2ltZDxbVDsgTl0+Ojpmcm9t X3NsaWNlX2FsaWduZWQoJiBzWy4uXSlgCistKiBgU2ltZDxbVDsgTl0+Ojp3cml0ZV90b19zbGlj ZV9hbGlnbmVkKCZtdXQgc1suLl0pYAorLQorLWFsd2F5cyBjaGVjayB0aGF0OgorLQorLSogdGhl IHNsaWNlIGlzIGJpZyBlbm91Z2ggdG8gaG9sZCB0aGUgdmVjdG9yCistKiB0aGUgc2xpY2UgaXMg c3VpdGFibHkgYWxpZ25lZCB0byBwZXJmb3JtIGFuIGFsaWduZWQgbG9hZC9zdG9yZSBmb3IgYSBg U2ltZDxbVDsKKy0gIE5dPmAgKHRoaXMgYWxpZ25tZW50IGlzIG9mdGVuIG11Y2ggbGFyZ2VyIHRo YW4gdGhhdCBvZiBgVGApLgorLQorLVRoZXJlIGFyZSBgX3VuYWxpZ25lZGAgdmVyc2lvbnMgdGhh dCB1c2UgdW5hbGlnbmVkIGxvYWQgYW5kIHN0b3JlcywgYXMgd2VsbCBhcworLWB1bnNhZmVgIGBf dW5jaGVja2VkYCB0aGF0IGRvIG5vdCBwZXJmb3JtIGFueSBjaGVja3MgaWZmIGBkZWJ1Zy1hc3Nl cnRpb25zID0KKy1mYWxzZWAgLyBgZGVidWcgPSBmYWxzZWAuIFRoYXQgaXMsIHRoZSBgX3VuY2hl Y2tlZGAgbWV0aG9kcyBkbyBzdGlsbCBhc3NlcnQgc2l6ZQorLWFuZCBhbGlnbm1lbnQgaW4gZGVi dWcgYnVpbGRzIGFuZCBjb3VsZCBhbHNvIGRvIHNvIGluIHJlbGVhc2UgYnVpbGRzIGRlcGVuZGlu ZworLW9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuCistCistVGhlc2UgYXNzZXJ0aW9ucyBk byBvZnRlbiBzaWduaWZpY2FudGx5IGltcGFjdCBwZXJmb3JtYW5jZSBhbmQgeW91IHNob3VsZCBi ZQorLWF3YXJlIG9mIHRoZW0uCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2FwcHJveC5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEs OCArMCwwIEBACistIyBBcHByb3hpbWF0ZSBmdW5jdGlvbnMKKy0KKy08IS0tIFRPRE86CistCist RXhwbGFpbiB0aGF0IHRoZXkgZXhpc3RzLCB0aGF0IHRoZXkgYXJlIG9mdGVuIF9tdWNoXyBmYXN0 ZXIsIGhvdyB0byB1c2UgdGhlbSwKKy10aGF0IHBlb3BsZSBzaG91bGQgY2hlY2sgd2hldGhlciB0 aGUgZXJyb3IgaXMgZ29vZCBlbm91Z2ggZm9yIHRoZWlyCistYXBwbGljYXRpb25zLiBFeHBsYWlu IHRoYXQgdGhpcyBlcnJvciBpcyBjdXJyZW50bHkgdW5zdGFibGUgYW5kIG1pZ2h0IGNoYW5nZS4K Ky0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0 LW1hdGgvZm1hLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAKKy0jIEZ1c2VkIE11 bHRpcGx5IEFkZAorLQorLTwhLS0gVE9ETzoKKy1FeHBsYWluIHRoYXQgdGhpcyBpcyBhIGNvbXBv dW5kIG9wZXJhdGlvbiwgaW5maW5pdGUgcHJlY2lzaW9uLCBkaWZmZXJlbmNlCistYmV0d2VlbiBg bXVsX2FkZGAgYW5kIGBtdWxfYWRkZWAsIHRoYXQgTExWTSBjYW5ub3QgZG8gdGhpcyBieSBpdHNl bGYsIGV0Yy4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9mbG9hdC1tYXRoL2ZwLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwzICswLDAgQEAKKy0jIEZs b2F0aW5nLXBvaW50IG1hdGgKKy0KKy1UaGlzIGNoYXB0ZXIgY29udGFpbnMgaW5mb3JtYXRpb24g cGVydGFpbmluZyB0byB3b3JraW5nIHdpdGggZmxvYXRpbmctcG9pbnQgbnVtYmVycy4KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0 LW1hdGgvc3ZtbC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvZmxvYXQtbWF0aC9zdm1sLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1s Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0jIFNob3J0IFZlY3RvciBNYXRo IExpYnJhcnkKKy0KKy08IS0tIFRPRE86CistRXhwbGFpbiBob3cgaXMgc2hvcnQtdmVjdG9yIG1h dGggcGVyZm9ybWVkIGJ5IGRlZmF1bHQgKGp1c3Qgc2NhbGFyaXplZCBsaWJtIGNhbGxzKS4KKy0K Ky1FeHBsYWluIGhvdyB0byBlbmFibGUgYHNsZWVmYCwgZXRjLgorLS0tPgorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9u Lm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRyb2R1 Y3Rpb24ubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQKKysrKyAvZGV2L251 bGwKK0BAIC0xLDI2ICswLDAgQEAKKy0jIEludHJvZHVjdGlvbgorLQorLSMjIFdoYXQgaXMgU0lN RAorLQorLTwhLS0gVE9ETzoKKy1kZXNjcmliZSB3aGF0IFNJTUQgaXMsIHdoaWNoIGFsZ29yaXRo bXMgY2FuIGJlbmVmaXQgZnJvbSBpdCwKKy1naXZlIHVzYWdlIGV4YW1wbGVzCistLS0+CistCist IyMgSGlzdG9yeSBvZiBTSU1EIGluIFJ1c3QKKy0KKy08IS0tIFRPRE86CistZGlzY3VzcyBoaXN0 b3J5IG9mIHVuc3RhYmxlIHN0ZDo6c2ltZCwKKy1zdGFiaWxpemF0aW9uIG9mIHN0ZDo6YXJjaCwg ZXRjLgorLS0tPgorLQorLSMjIERpc2NvdmVyIHBhY2tlZF9zaW1kCistCistPCEtLSBUT0RPOiBk ZXNjcmliZSBzY29wZSBvZiB0aGlzIHByb2plY3QgLS0+CistCistV3JpdGluZyBmYXN0IGFuZCBw b3J0YWJsZSBTSU1EIGFsZ29yaXRobXMgdXNpbmcgYHBhY2tlZF9zaW1kYCBpcywgdW5mb3J0dW5h dGVseSwKKy1ub3QgdHJpdmlhbC4gVGhlcmUgYXJlIG1hbnkgcGl0ZmFscyB0aGF0IG9uZSBzaG91 bGQgYmUgYXdhcmUgb2YsIGFuZCBzb21lIGlkaW9tcworLXRoYXQgaGVscCBhdm9pZCB0aG9zZSBw aXRmYWxscy4KKy0KKy1UaGlzIGJvb2sgYXR0ZW1wdHMgdG8gZG9jdW1lbnQgdGhlc2UgYmVzdCBw cmFjdGljZXMgYW5kIHByb3ZpZGVzIHByYWN0aWNhbCBleGFtcGxlcworLW9uIGhvdyB0byBhcHBs eSB0aGUgdGlwcyB0byBfeW91cl8gY29kZS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9wcm9mL2xpbnV4Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDcgKzAsMCBAQAor LSMgUGVyZm9ybWFuY2UgcHJvZmlsaW5nIG9uIExpbnV4CistCistIyMgVXNpbmcgYHBlcmZgCist CistW3BlcmZdKGh0dHBzOi8vcGVyZi53aWtpLmtlcm5lbC5vcmcvKSBpcyB0aGUgbW9zdCBwb3dl cmZ1bCBwZXJmb3JtYW5jZSBwcm9maWxlcgorLWZvciBMaW51eCwgZmVhdHVyaW5nIHN1cHBvcnQg Zm9yIHZhcmlvdXMgaGFyZHdhcmUgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0cywKKy1hcyB3 ZWxsIGFzIGludGVncmF0aW9uIHdpdGggdGhlIGtlcm5lbCdzIHBlcmZvcm1hbmNlIGV2ZW50cyBm cmFtZXdvcmsuCistCistV2Ugd2lsbCBvbmx5IGxvb2sgYXQgaG93IGNhbiB0aGUgYHBlcmZgIGNv bW1hbmQgY2FuIGJlIHVzZWQgdG8gcHJvZmlsZSBTSU1EIGNvZGUuCistRnVsbCBzeXN0ZW0gcHJv ZmlsaW5nIGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgYm9vay4KKy0KKy0jIyMgUmVj b3JkaW5nCistCistVGhlIGZpcnN0IHN0ZXAgaXMgdG8gcmVjb3JkIGEgcHJvZ3JhbSdzIGV4ZWN1 dGlvbiBkdXJpbmcgYW4gYXZlcmFnZSB3b3JrbG9hZC4KKy1JdCBoZWxwcyBpZiB5b3UgY2FuIGlz b2xhdGUgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSB3aGljaCBoYXZlIHBlcmZvcm1hbmNlCist aXNzdWVzLCBhbmQgc2V0IHVwIGEgYmVuY2htYXJrIHdoaWNoIGNhbiBiZSBlYXNpbHkgKHJlKXJ1 bi4KKy0KKy1CdWlsZCB0aGUgYmVuY2htYXJrIGJpbmFyeSBpbiByZWxlYXNlIG1vZGUsIGFmdGVy IGhhdmluZyBlbmFibGVkIGRlYnVnIGluZm86CistCistYGBgc2gKKy0kIGNhcmdvIGJ1aWxkIC0t cmVsZWFzZQorLUZpbmlzaGVkIHJlbGVhc2UgW29wdGltaXplZCArIGRlYnVnaW5mb10gdGFyZ2V0 KHMpIGluIDAuMDJzCistYGBgCistCistVGhlbiB1c2UgdGhlIGBwZXJmIHJlY29yZGAgc3ViY29t bWFuZDoKKy0KKy1gYGBzaAorLSQgcGVyZiByZWNvcmQgLS1jYWxsLWdyYXBoPWR3YXJmIC4vdGFy Z2V0L3JlbGVhc2UvbXktcHJvZ3JhbQorLVsgcGVyZiByZWNvcmQ6IFdva2VuIHVwIDEwIHRpbWVz IHRvIHdyaXRlIGRhdGEgXQorLVsgcGVyZiByZWNvcmQ6IENhcHR1cmVkIGFuZCB3cm90ZSAyLDM1 NiBNQiBwZXJmLmRhdGEgKDI5MiBzYW1wbGVzKSBdCistYGBgCistCistSW5zdGVhZCBvZiB1c2lu ZyBgLS1jYWxsLWdyYXBoPWR3YXJmYCwgd2hpY2ggY2FuIGJlY29tZSBwcmV0dHkgc2xvdywgeW91 IGNhbiB1c2UKKy1gLS1jYWxsLWdyYXBoPWxicmAgaWYgeW91IGhhdmUgYSBwcm9jZXNzb3Igd2l0 aCBzdXBwb3J0IGZvciBMYXN0IEJyYW5jaCBSZWNvcmQKKy0oaS5lLiBJbnRlbCBIYXN3ZWxsIGFu ZCBuZXdlcikuCistCistYHBlcmZgIHdpbGwsIGJ5IGRlZmF1bHQsIHJlY29yZCB0aGUgY291bnQg b2YgQ1BVIGN5Y2xlcyBpdCB0YWtlcyB0byBleGVjdXRlCistdmFyaW91cyBwYXJ0cyBvZiB5b3Vy IHByb2dyYW0uIFlvdSBjYW4gdXNlIHRoZSBgLWVgIGNvbW1hbmQgbGluZSBvcHRpb24KKy10byBl bmFibGUgb3RoZXIgcGVyZm9ybWFuY2UgZXZlbnRzLCBzdWNoIGFzIGBjYWNoZS1taXNzZXNgLiBV c2UgYHBlcmYgbGlzdGAKKy10byBnZXQgYSBsaXN0IG9mIGFsbCBoYXJkd2FyZSBjb3VudGVycyBz dXBwb3J0ZWQgYnkgeW91ciBDUFUuCistCistIyMjIFZpZXdpbmcgdGhlIHJlcG9ydAorLQorLVRo ZSBuZXh0IHN0ZXAgaXMgZ2V0dGluZyBhIGJpcmQncyBleWUgdmlldyBvZiB0aGUgcHJvZ3JhbSdz IGV4ZWN1dGlvbi4KKy1gcGVyZmAgcHJvdmlkZXMgYSBgbmN1cnNlc2AtYmFzZWQgaW50ZXJmYWNl IHdoaWNoIHdpbGwgZ2V0IHlvdSBzdGFydGVkLgorLQorLVVzZSBgcGVyZiByZXBvcnRgIHRvIG9w ZW4gYSB2aXN1YWxpemF0aW9uIG9mIHlvdXIgcHJvZ3JhbSdzIHBlcmZvcm1hbmNlOgorLQorLWBg YHNoCistcGVyZiByZXBvcnQgLS1oaWVyYXJjaHkgLU0gaW50ZWwKKy1gYGAKKy0KKy1gLS1oaWVy YXJjaHlgIHdpbGwgZGlzcGxheSBhIHRyZWUtbGlrZSBzdHJ1Y3R1cmUgb2Ygd2hlcmUgeW91ciBw cm9ncmFtIHNwZW50CistbW9zdCBvZiBpdHMgdGltZS4gYC1NIGludGVsYCBlbmFibGVzIGRpc2Fz c2VtYmx5IG91dHB1dCB3aXRoIEludGVsIHN5bnRheCwgd2hpY2gKKy1pcyBzdWJqZWN0aXZlbHkg bW9yZSByZWFkYWJsZSB0aGFuIHRoZSBkZWZhdWx0IEFUJlQgc3ludGF4LgorLQorLUhlcmUgaXMg dGhlIG91dHB1dCBmcm9tIHByb2ZpbGluZyB0aGUgYG5ib2R5YCBiZW5jaG1hcms6CistCistYGBg CistLSAxMDAsMDAlIG5ib2R5CistICAtIDk0LDE4JSBuYm9keQorLSAgICArIDkzLDQ4JSBbLl0g bmJvZHlfbGliOjpzaW1kOjphZHZhbmNlCistICAgICsgMCw3MCUgWy5dIG5ib2R5X2xpYjo6cnVu CistICAgICsgNSwwNiUgbGliYy0yLjI4LnNvCistYGBgCistCistSWYgeW91IG1vdmUgd2l0aCB0 aGUgYXJyb3cga2V5cyB0byBhbnkgbm9kZSBpbiB0aGUgdHJlZSwgeW91IGNhbiB0aGUgcHJlc3Mg YGFgCistdG8gaGF2ZSBgcGVyZmAgX2Fubm90YXRlXyB0aGF0IG5vZGUuIFRoaXMgbWVhbnMgaXQg d2lsbDoKKy0KKy0tIGRpc2Fzc2VtYmxlIHRoZSBmdW5jdGlvbgorLQorLS0gYXNzb2NpYXRlIGV2 ZXJ5IGluc3RydWN0aW9uIHdpdGggdGhlIHBlcmNlbnRhZ2Ugb2YgdGltZSB3aGljaCB3YXMgc3Bl bnQgZXhlY3V0aW5nIGl0CistCistLSBpbnRlcmxlYXZlcyB0aGUgZGlzYXNzZW1ibHkgd2l0aCB0 aGUgc291cmNlIGNvZGUsCistICBhc3N1bWluZyBpdCBmb3VuZCB0aGUgZGVidWcgc3ltYm9scwor LSAgKHlvdSBjYW4gdXNlIGBzYCB0byB0b2dnbGUgdGhpcyBiZWhhdmlvdXIpCistCistYHBlcmZg IHdpbGwsIGJ5IGRlZmF1bHQsIG9wZW4gdGhlIGluc3RydWN0aW9uIHdoaWNoIGl0IGlkZW50aWZp ZWQgYXMgYmVpbmcgdGhlCistaG90dGVzdCBzcG90IGluIHRoZSBmdW5jdGlvbjoKKy0KKy1gYGAK Ky0wLDc2ICDilIIgbW92YXBkIHhtbTIseG1tMAorLTAsMzggIOKUgiBtb3ZobHBzIHhtbTIseG1t MAorLSAgICAgIOKUgiBhZGRwZCAgeG1tMix4bW0wCistICAgICAg4pSCIHVucGNrbHBkIHhtbTEs eG1tMgorLTEyLDUwIOKUgiBzcXJ0cGQgeG1tMCx4bW0xCistMSw1MiAg4pSCIG11bHBkICB4bW0w LHhtbTEKKy1gYGAKKy0KKy1JbiB0aGlzIGNhc2UsIGBzcXJ0cGRgIHdpbGwgYmUgaGlnaGxpZ2h0 ZWQgaW4gcmVkLCBzaW5jZSB0aGF0J3MgdGhlIGluc3RydWN0aW9uCistd2hpY2ggdGhlIENQVSBz cGVuZHMgbW9zdCBvZiBpdHMgdGltZSBleGVjdXRpbmcuCistCistIyMgVXNpbmcgVmFsZ3JpbmQK Ky0KKy1WYWxncmluZCBpcyBhIHNldCBvZiB0b29scyB3aGljaCBpbml0aWFsbHkgaGVscGVkIEMv QysrIHByb2dyYW1tZXJzIGZpbmQgdW5zYWZlCistbWVtb3J5IGFjY2Vzc2VzIGluIHRoZWlyIGNv ZGUuIE5vd2FkYXlzIHRoZSBwcm9qZWN0IGFsc28gaGFzCistCistLSBhIGhlYXAgcHJvZmlsZXIg Y2FsbGVkIGBtYXNzaWZgCistCistLSBhIGNhY2hlIHV0aWxpemF0aW9uIHByb2ZpbGVyIGNhbGxl ZCBgY2FjaGVncmluZGAKKy0KKy0tIGEgY2FsbC1ncmFwaCBwZXJmb3JtYW5jZSBwcm9maWxlciBj YWxsZWQgYGNhbGxncmluZGAKKy0KKy08IS0tCistVE9ETzogZXhwbGFpbiB2YWxncmluZCdzIGR5 bmFtaWMgYmluYXJ5IHRyYW5zbGF0aW9uLCB3YXJuIGFib3V0IG1hc3NpdmUKKy1zbG93ZG93biwg dGFsayBhYm91dCBga2NhY2hlZ3JpbmRgIGZvciBhIEdVSQorLS0tPgorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9tY2EubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwMCAr MCwwIEBACistIyBNYWNoaW5lIGNvZGUgYW5hbHlzaXMgdG9vbHMKKy0KKy0jIyBUaGUgbWljcm9h cmNoaXRlY3R1cmUgb2YgbW9kZXJuIENQVXMKKy0KKy1XaGlsZSB5b3UgbWlnaHQgaGF2ZSBoZWFy ZCBvZiBJbnN0cnVjdGlvbiBTZXQgQXJjaGl0ZWN0dXJlcywgc3VjaCBhcyBgeDg2YCBvcgorLWBh cm1gIG9yIGBtaXBzYCwgdGhlIHRlcm0gX21pY3JvYXJjaGl0ZWN0dXJlXyAoYWxzbyB3cml0dGVu IGhlcmUgYXMgX8K1LWFyY2hfKSwKKy1yZWZlcnMgdG8gdGhlIGludGVybmFsIGRldGFpbHMgb2Yg YW4gYWN0dWFsIGZhbWlseSBvZiBDUFVzLCBzdWNoIGFzIEludGVsJ3MKKy1fSGFzd2VsbF8gb3Ig QU1EJ3MgX0phZ3Vhcl8uCistCistUmVwbGFjaW5nIHNjYWxhciBjb2RlIHdpdGggU0lNRCBjb2Rl IHdpbGwgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBhbGwgQ1BVcworLXN1cHBvcnRpbmcgdGhlIHJl cXVpcmVkIHZlY3RvciBleHRlbnNpb25zLgorLUhvd2V2ZXIsIGR1ZSB0byBtaWNyb2FyY2hpdGVj dHVyYWwgZGlmZmVyZW5jZXMsIHRoZSBhY3R1YWwgc3BlZWQtdXAgYXQKKy1ydW50aW1lIG1pZ2h0 IHZhcnkuCistCistKipFeGFtcGxlKio6IGEgc2ltcGxlIGV4YW1wbGUgYXJpc2VzIHdoZW4gb3B0 aW1pemluZyBmb3IgQU1EIEs4IENQVXMuCistVGhlIGFzc2VtYmx5IGdlbmVyYXRlZCBmb3IgYW4g ZW1wdHkgZnVuY3Rpb24gc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgorLQorLWBgYGFzbQorLW5vcAor LXJldAorLWBgYAorLQorLVRoZSBgbm9wYCBpcyB1c2VkIHRvIGFsaWduIHRoZSBgcmV0YCBpbnN0 cnVjdGlvbiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorLUhvd2V2ZXIsIHRoZSBjb21waWxlciB3 aWxsIGFjdHVhbGx5IGdlbmVyYXRlZCB0aGUgZm9sbG93aW5nIGNvZGU6CistCistYGBgYXNtCist cmVweiByZXQKKy1gYGAKKy0KKy1UaGUgYHJlcHpgIGluc3RydWN0aW9uIHdpbGwgcmVwZWF0IHRo ZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb24gdW50aWwgYSBjZXJ0YWluCistY29uZGl0aW9uLiBPZiBj b3Vyc2UsIGluIHRoaXMgc2l0dWF0aW9uLCB0aGUgZnVuY3Rpb24gd2lsbCBzaW1wbHkgaW1tZWRp YXRlbHkKKy1yZXR1cm4sIGFuZCB0aGUgYHJldGAgaW5zdHJ1Y3Rpb24gaXMgc3RpbGwgYWxpZ25l ZC4KKy1Ib3dldmVyLCBBTUQgSzgncyBicmFuY2ggcHJlZGljdG9yIHBlcmZvcm1zIGJldHRlciB3 aXRoIHRoZSBsYXR0ZXIgY29kZS4KKy0KKy1Gb3IgdGhvc2UgbG9va2luZyB0byBhYnNvbHV0ZWx5 IG1heGltaXplIHBlcmZvcm1hbmNlIGZvciBhIGNlcnRhaW4gdGFyZ2V0IMK1LWFyY2gsCisteW91 IHdpbGwgaGF2ZSB0byByZWFkIHNvbWUgQ1BVIG1hbnVhbHMsIG9yIGFzayB0aGUgY29tcGlsZXIg dG8gZG8gaXQgZm9yIHlvdQorLXdpdGggYC1DIHRhcmdldC1jcHVgLgorLQorLSMjIyBTdW1tYXJ5 IG9mIENQVSBpbnRlcm5hbHMKKy0KKy1Nb2Rlcm4gcHJvY2Vzc29ycyBhcmUgYWJsZSB0byBleGVj dXRlIGluc3RydWN0aW9ucyBvdXQtb2Ytb3JkZXIgZm9yIGJldHRlciBwZXJmb3JtYW5jZSwKKy1i eSB1dGlsaXppbmcgdHJpY2tzIHN1Y2ggYXMgW2JyYW5jaCBwcmVkaWN0aW9uXSwgW2luc3RydWN0 aW9uIHBpcGVsaW5pbmddLAorLW9yIFtzdXBlcnNjYWxhciBleGVjdXRpb25dLgorLQorLVticmFu Y2ggcHJlZGljdGlvbl06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JyYW5jaF9wcmVk aWN0b3IKKy1baW5zdHJ1Y3Rpb24gcGlwZWxpbmluZ106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL0luc3RydWN0aW9uX3BpcGVsaW5pbmcKKy1bc3VwZXJzY2FsYXIgZXhlY3V0aW9uXTog aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3VwZXJzY2FsYXJfcHJvY2Vzc29yCistCist U0lNRCBpbnN0cnVjdGlvbnMgYXJlIGFsc28gc3ViamVjdCB0byB0aGVzZSBvcHRpbWl6YXRpb25z LCBtZWFuaW5nIGl0IGNhbiBnZXQgcHJldHR5CistZGlmZmljdWx0IHRvIGRldGVybWluZSB3aGVy ZSB0aGUgc2xvd2Rvd24gaGFwcGVucy4KKy1Gb3IgZXhhbXBsZSwgaWYgdGhlIHByb2ZpbGVyIHJl cG9ydHMgYSBzdG9yZSBvcGVyYXRpb24gaXMgc2xvdywgb25lIG9mIHR3byB0aGluZ3MKKy1jb3Vs ZCBiZSBoYXBwZW5pbmc6CistCistLSB0aGUgc3RvcmUgaXMgbGltaXRlZCBieSB0aGUgQ1BVJ3Mg bWVtb3J5IGJhbmR3aWR0aCwgd2hpY2ggaXMgYWN0dWFsbHkgYW4gaWRlYWwKKy0gIHNjZW5hcmlv LCBhbGwgdGhpbmdzIGNvbnNpZGVyZWQ7CistCistLSBtZW1vcnkgYmFuZHdpZHRoIGlzIG5vd2hl cmUgbmVhciBpdHMgcGVhaywgYnV0IHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQgaXMgYXQgdGhlCist ICBlbmQgb2YgYSBsb25nIGNoYWluIG9mIG9wZXJhdGlvbnMsIGFuZCB0aGlzIHN0b3JlIGlzIHdo ZXJlIHRoZSBwcm9maWxlcgorLSAgZW5jb3VudGVyZWQgdGhlIHBpcGVsaW5lIHN0YWxsOworLQor LVNpbmNlIG1vc3QgcHJvZmlsZXJzIGFyZSBzaW1wbGUgdG9vbHMgd2hpY2ggZG9uJ3QgdW5kZXJz dGFuZCB0aGUgc3VidGxldGllcyBvZgorLWluc3RydWN0aW9uIHNjaGVkdWxpbmcsIHlvdQorLQor LSMjIEFuYWx5emluZyB0aGUgbWFjaGluZSBjb2RlCistCistQ2VydGFpbiB0b29scyBoYXZlIGtu b3dsZWRnZSBvZiBpbnRlcm5hbCBDUFUgbWljcm9hcmNoaXRlY3R1cmUsIGkuZS4gdGhleSBrbm93 CistCistLSBob3cgbWFueSBwaHlzaWNhbCBbcmVnaXN0ZXIgZmlsZXNdIGEgQ1BVIGFjdHVhbGx5 IGhhcworLQorLS0gd2hhdCBpcyB0aGUgbGF0ZW5jeSAvIHRocm91Z2h0cHV0IG9mIGFuIGluc3Ry dWN0aW9uCistCistLSB3aGF0IFvCtS1vcHNdIGFyZSBnZW5lcmF0ZWQgZm9yIGEgc2V0IG9mIGlu c3RydWN0aW9ucworLQorLWFuZCBtYW55IG90aGVyIGFyY2hpdGVjdHVyYWwgZGV0YWlscy4KKy0K Ky1bcmVnaXN0ZXIgZmlsZXNdOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9SZWdpc3Rl cl9maWxlCistW8K1LW9wc106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01pY3JvLW9w ZXJhdGlvbgorLQorLVRoZXNlIHRvb2xzIGFyZSB0aGVyZWZvcmUgYWJsZSB0byBwcm92aWRlIGFj Y3VyYXRlIGluZm9ybWF0aW9uIGFzIHRvIHdoeSBzb21lCistaW5zdHJ1Y3Rpb25zIGFyZSBpbmVm ZmljaWVudCwgYW5kIHdoZXJlIHRoZSBib3R0bGVuZWNrIGlzLgorLQorLVRoZSBkaXNhZHZhbnRh Z2UgaXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZXNlIHRvb2xzIHJlcXVpcmVzIGFkdmFuY2VkIGtu b3dsZWRnZQorLW9mIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIHRvIHVuZGVyc3RhbmQsIGkuZS4g dGhleSAqKmNhbm5vdCoqIHBvaW50IG91dCB3aGF0CistdGhlIGNhdXNlIG9mIHRoZSBpc3N1ZSBp cyBleHBsaWNpdGx5LgorLQorLSMjIEludGVsJ3MgQXJjaGl0ZWN0dXJlIENvZGUgQW5hbHl6ZXIg KElBQ0EpCistCistW0lBQ0FdIGlzIGEgZnJlZSB0b29sIG9mZmVyZWQgYnkgSW50ZWwgZm9yIGFu YWx5emluZyB0aGUgcGVyZm9ybWFuY2Ugb2YgdmFyaW91cworLWNvbXB1dGF0aW9uYWwga2VybmVs cy4KKy0KKy1CZWluZyBhIHByb3ByaWV0YXJ5LCBjbG9zZWQgc291cmNlIHRvb2wsIGl0IF9vbmx5 XyBzdXBwb3J0cyBJbnRlbCdzIMK1LWFyY2hlcy4KKy0KKy1bSUFDQV06IGh0dHBzOi8vc29mdHdh cmUuaW50ZWwuY29tL2VuLXVzL2FydGljbGVzL2ludGVsLWFyY2hpdGVjdHVyZS1jb2RlLWFuYWx5 emVyCistCistIyMgbGx2bS1tY2EKKy0KKy08IS0tCistVE9ETzogb25jZSBMTFZNIDcgZ2V0cyBy ZWxlYXNlZCwgd3JpdGUgYSBjaGFwdGVyIG9uIHVzaW5nIGxsdm0tbWNhCistd2l0aCBTSU1EIGRp c2Fzc2VtYmx5LgorLS0tPgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvcHJvZi9wcm9maWxpbmcubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0ICswLDAgQEAK Ky0jIFBlcmZvcm1hbmNlIHByb2ZpbGluZworLQorLVdoaWxlIHRoZSByZXN0IG9mIHRoZSBib29r IHByb3ZpZGVzIHByYWN0aWNhbCBhZHZpY2Ugb24gaG93IHRvIGltcHJvdmUgdGhlIHBlcmZvcm1h bmNlCistb2YgU0lNRCBjb2RlLCB0aGlzIGNoYXB0ZXIgaXMgZGVkaWNhdGVkIHRvIFsqKnBlcmZv cm1hbmNlIHByb2ZpbGluZyoqXVtwcm9maWxpbmddLgorLVByb2ZpbGluZyBjb25zaXN0cyBvZiBy ZWNvcmRpbmcgYSBwcm9ncmFtJ3MgZXhlY3V0aW9uIGluIG9yZGVyIHRvIGlkZW50aWZ5IHByb2dy YW0KKy1ob3RzcG90cy4KKy0KKy0qKkltcG9ydGFudCoqOiBtb3N0IHByb2ZpbGVycyByZXF1aXJl IGRlYnVnIGluZm9ybWF0aW9uIGluIG9yZGVyIHRvIGFjY3VyYXRlbHkKKy1saW5rIHRoZSBwcm9n cmFtIGhvdHNwb3RzIGJhY2sgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUgbGluZXMu IFJ1c3Qgd2lsbAorLWRpc2FibGUgZGVidWcgaW5mbyBnZW5lcmF0aW9uIGJ5IGRlZmF1bHQgZm9y IG9wdGltaXplZCBidWlsZHMsIGJ1dCB5b3UgY2FuIGNoYW5nZQorLXRoYXQgW2luIHlvdXIgYENh cmdvLnRvbWxgXVtjYXJnby1yZWZdLgorLQorLVtwcm9maWxpbmddOiBodHRwczovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9Qcm9maWxpbmdfKGNvbXB1dGVyX3Byb2dyYW1taW5nKQorLVtjYXJnby1y ZWZdOiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL2NhcmdvL3JlZmVyZW5jZS9tYW5pZmVzdC5o dG1sI3RoZS1wcm9maWxlLXNlY3Rpb25zCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJl L2F0dHJpYnV0ZS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0 ZS5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNSArMCwwIEBACistIyBUaGUgYHRhcmdldF9mZWF0 dXJlYCBhdHRyaWJ1dGUKKy0KKy08IS0tIFRPRE86CistRXhwbGFpbiB0aGUgYCNbdGFyZ2V0X2Zl YXR1cmVdYCBhdHRyaWJ1dGUKKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9m ZWF0dXJlcy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1k CisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBACistIyBFbmFibGluZyB0YXJnZXQgZmVh dHVyZXMKKy0KKy1Ob3QgYWxsIHByb2Nlc3NvcnMgb2YgYSBjZXJ0YWluIGFyY2hpdGVjdHVyZSB3 aWxsIGhhdmUgU0lNRCBwcm9jZXNzaW5nIHVuaXRzLAorLWFuZCB1c2luZyBhIFNJTUQgaW5zdHJ1 Y3Rpb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCB3aWxsIHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2 aW9yLgorLQorLVRvIGFsbG93IGJ1aWxkaW5nIHNhZmUsIHBvcnRhYmxlIHByb2dyYW1zLCB0aGUg UnVzdCBjb21waWxlciB3aWxsICoqbm90KiosIGJ5IGRlZmF1bHQsCistZ2VuZXJhdGUgYW55IHNv cnQgb2YgdmVjdG9yIGluc3RydWN0aW9ucywgdW5sZXNzIGl0IGNhbiBzdGF0aWNhbGx5IGRldGVy bWluZQorLXRoZXkgYXJlIHN1cHBvcnRlZC4gRm9yIGV4YW1wbGUsIG9uIEFNRDY0LCBTU0UyIHN1 cHBvcnQgaXMgYXJjaGl0ZWN0dXJhbGx5IGd1YXJhbnRlZWQuCistVGhlIGB4ODZfNjQtYXBwbGUt ZGFyd2luYCB0YXJnZXQgZW5hYmxlcyB1cCB0byBTU1NFMy4gVGhlIGdldCBhIGRlZmludGl2ZSBs aXN0IG9mCistd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB2YXJpb3Vz IHBsYXRmb3JtcywgcmVmZXIgdG8gdGhlIHRhcmdldAorLXNwZWNpZmljYXRpb25zIFtpbiB0aGUg Y29tcGlsZXIncyBzb3VyY2UgY29kZV1bdGFyZ2V0c10uCistCistW3RhcmdldHNdOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QvdHJlZS9tYXN0ZXIvc3JjL2xpYnJ1c3RjX3Rhcmdl dC9zcGVjCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9w ZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZAorKysrIC9kZXYvbnVsbAor QEAgLTEsNSArMCwwIEBACistIyBJbmxpbmluZworLQorLTwhLS0gVE9ETzoKKy1FeHBsYWluIGhv dyB0aGUgYCNbdGFyZ2V0X2ZlYXR1cmVdYCBhdHRyaWJ1dGUgaW50ZXJhY3RzIHdpdGggaW5saW5p bmcKKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYt Z3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZAorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3ByYWN0aWNlLm1kCisrKysgL2Rldi9udWxs CitAQCAtMSwzMSArMCwwIEBACistIyBUYXJnZXQgZmVhdHVyZXMgaW4gcHJhY3RpY2UKKy0KKy1V c2luZyBgUlVTVEZMQUdTYCB3aWxsIGFsbG93IHRoZSBjcmF0ZSBiZWluZyBjb21waWxlZCwgYXMg d2VsbCBhcyBhbGwgaXRzCistdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgdG8gdXNlIGNlcnRhaW4g dGFyZ2V0IGZlYXR1cmVzLgorLQorLUEgdGVobmlxdWUgdXNlZCB0byBhdm9pZCB1bmRlZmluZWQg YmVoYXZpb3IgYXQgcnVudGltZSBpcyB0byBjb21waWxlIGFuZAorLXNoaXAgbXVsdGlwbGUgYmlu YXJpZXMsIGVhY2ggY29tcGlsZWQgd2l0aCBhIGNlcnRhaW4gc2V0IG9mIGZlYXR1cmVzLgorLVRo aXMgbWlnaHQgbm90IGJlIGZlYXNpYmxlIGluIHNvbWUgY2FzZXMsIGFuZCBjYW4gcXVpY2tseSBn ZXQgb3V0IG9mIGhhbmQKKy1hcyBtb3JlIGFuZCBtb3JlIHZlY3RvciBleHRlbnNpb25zIGFyZSBh ZGRlZCB0byBhbiBhcmNoaXRlY3R1cmUuCistCistUnVzdCBjYW4gYmUgbW9yZSBmbGV4aWJsZTog eW91IGNhbiBidWlsZCBhIHNpbmdsZSBiaW5hcnkvbGlicmFyeSB3aGljaCBhdXRvbWF0aWNhbGx5 CistcGlja3MgdGhlIGJlc3Qgc3VwcG9ydGVkIHZlY3RvciBpbnN0cnVjdGlvbnMgZGVwZW5kaW5n IG9uIHRoZSBob3N0IG1hY2hpbmUuCistVGhlIHRyaWNrIGNvbnNpc3RzIG9mIG1vbm9tb3JwaGl6 aW5nIHBhcnRzIG9mIHRoZSBjb2RlIGR1cmluZyBidWlsZGluZywgYW5kIHRoZW4KKy11c2luZyBy dW4tdGltZSBmZWF0dXJlIGRldGVjdGlvbiB0byBzZWxlY3QgdGhlIHJpZ2h0IGNvZGUgcGF0aCB3 aGVuIHJ1bm5pbmcuCistCistPCEtLSBUT0RPCistRXhwbGFpbiBob3cgdG8gY3JlYXRlIGVmZmlj aWVudCBmdW5jdGlvbnMgdGhhdCBkaXNwYXRjaCB0byBkaWZmZXJlbnQKKy1pbXBsZW1lbnRhdGlv bnMgYXQgcnVuLXRpbWUgd2l0aG91dCBpc3N1ZXMgKGUuZy4gdXNpbmcgYCNbaW5saW5lKGFsd2F5 cyldYCBmb3IKKy10aGUgaW1wbHMsIHdyYXBwaW5nIGluIGAjW3RhcmdldF9mZWF0dXJlXWAsIGFu ZCB0aGUgd3JhcHBpbmcgdGhvc2UgaW4gYSBmdW5jdGlvbgorLXRoYXQgZG9lcyBydW4tdGltZSBm ZWF0dXJlIGRldGVjdGlvbikuCistLS0+CistCistKipOT1RFKiogKHg4NiBzcGVjaWZpYyk6IGJl Y2F1c2UgdGhlIEFWWCAoMjU2LWJpdCkgcmVnaXN0ZXJzIGV4dGVuZCB0aGUgZXhpc3RpbmcKKy1T U0UgKDEyOC1iaXQpIHJlZ2lzdGVycywgbWl4aW5nIFNTRSBhbmQgQVZYIGluc3RydWN0aW9ucyBp biBhIHByb2dyYW0gY2FuIGNhdXNlCistcGVyZm9ybWFuY2UgaXNzdWVzLgorLQorLVRoZSBzb2x1 dGlvbiBpcyB0byBjb21waWxlIGFsbCBjb2RlLCBldmVuIHRoZSBjb2RlIHdyaXR0ZW4gd2l0aCAx MjgtYml0IHZlY3RvcnMsCistd2l0aCB0aGUgQVZYIHRhcmdldCBmZWF0dXJlIGVuYWJsZWQuIFRo aXMgd2lsbCBjYXVzZSB0aGUgY29tcGlsZXIgdG8gcHJlZml4IHRoZQorLWdlbmVyYXRlZCBpbnN0 cnVjdGlvbnMgd2l0aCB0aGUgW1ZFWF0gcHJlZml4LgorLQorLVtWRVhdOiBodHRwczovL2VuLndp a2lwZWRpYS5vcmcvd2lraS9WRVhfcHJlZml4CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVy ZS9ydW50aW1lLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5t ZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNSArMCwwIEBACistIyBEZXRlY3RpbmcgaG9zdCBmZWF0 dXJlcyBhdCBydW50aW1lCistCistPCEtLSBUT0RPOgorLUV4cGxhaW4gY29zdCAoaG93IGl0IHdv cmtzKS4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Bl cmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1k CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kCisrKysgL2Rl di9udWxsCitAQCAtMSw3NyArMCwwIEBACistIyBVc2luZyBSVVNURkxBR1MKKy0KKy1PbmUgb2Yg dGhlIGVhc2llc3Qgd2F5cyB0byBiZW5lZml0IGZyb20gU0lNRCBpcyB0byBhbGxvdyB0aGUgY29t cGlsZXIKKy10byBnZW5lcmF0ZSBjb2RlIHVzaW5nIGNlcnRhaW4gdmVjdG9yIGluc3RydWN0aW9u IGV4dGVuc2lvbnMuCistCistVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGBSVVNURkxBR1NgIGNh biBiZSB1c2VkIHRvIHBhc3Mgb3B0aW9ucyBmb3IgY29kZQorLWdlbmVyYXRpb24gdG8gdGhlIFJ1 c3QgY29tcGlsZXIuIFRoZXNlIGZsYWdzIHdpbGwgYWZmZWN0ICoqYWxsKiogY29tcGlsZWQgY3Jh dGVzLgorLQorLVRoZXJlIGFyZSB0d28gZmxhZ3Mgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZW5hYmxl IHNwZWNpZmljIHZlY3RvciBleHRlbnNpb25zOgorLQorLSMjIHRhcmdldC1mZWF0dXJlCistCist LSBTeW50YXg6IGAtQyB0YXJnZXQtZmVhdHVyZT08ZmVhdHVyZXM+YAorLQorLS0gUHJvdmlkZXMg dGhlIGNvbXBpbGVyIHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgc2V0IG9mIGluc3RydWN0aW9uIGV4 dGVuc2lvbnMKKy0gIHRvIGVuYWJsZS4KKy0KKy0gICoqRXhhbXBsZSoqOiBVc2UgYC1DIHRhcmdl dC1mZWF0dXJlPStzc2UzLCthdnhgIHRvIGVuYWJsZSBnZW5lcmF0aW5nIGluc3RydWN0aW9ucwor LSAgZm9yIFtTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb25zIDNdKGh0dHBzOi8vZW4ud2lraXBlZGlh Lm9yZy93aWtpL1NTRTMpIGFuZAorLSAgW0FkdmFuY2VkIFZlY3RvciBFeHRlbnNpb25zXShodHRw czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BZHZhbmNlZF9WZWN0b3JfRXh0ZW5zaW9ucykuCist CistLSBUbyBsaXN0IHRhcmdldCB0cmlwbGVzIGZvciBhbGwgdGFyZ2V0cyBzdXBwb3J0ZWQgYnkg UnVzdCwgdXNlOgorLQorLSAgYGBgc2gKKy0gIHJ1c3RjIC0tcHJpbnQgdGFyZ2V0LWxpc3QKKy0g IGBgYAorLQorLS0gVG8gbGlzdCBhbGwgc3VwcG9ydCB0YXJnZXQgZmVhdHVyZXMgZm9yIGEgY2Vy dGFpbiB0YXJnZXQgdHJpcGxlLCB1c2U6CistCistICBgYGBzaAorLSAgcnVzdGMgLS10YXJnZXQ9 JHtUUklQTEV9IC0tcHJpbnQgdGFyZ2V0LWZlYXR1cmVzCistICBgYGAKKy0KKy0tIE5vdGUgdGhh dCBhbGwgQ1BVIGZlYXR1cmVzIGFyZSBpbmRlcGVuZGVudCwgYW5kIHdpbGwgaGF2ZSB0byBiZSBl bmFibGVkIGluZGl2aWR1YWxseS4KKy0KKy0gICoqRXhhbXBsZSoqOiBTZXR0aW5nIGAtQyB0YXJn ZXQtZmVhdHVyZT0rYXZ4MmAgd2lsbCBfbm90XyBlbmFibGUgYGZtYWAsIGV2ZW4gdGhvdWdoCist ICBhbGwgQ1BVcyB3aGljaCBzdXBwb3J0IEFWWDIgYWxzbyBzdXBwb3J0IEZNQS4gVG8gZW5hYmxl IGJvdGgsIG9uZSBoYXMgdG8gdXNlCistICBgLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIsK2ZtYWAK Ky0KKy0tIFNvbWUgZmVhdHVyZXMgYWxzbyBkZXBlbmQgb24gb3RoZXIgZmVhdHVyZXMsIHdoaWNo IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhlCistICB0YXJnZXQgaW5zdHJ1Y3Rpb25zIHRvIGJl IGdlbmVyYXRlZC4KKy0KKy0gICoqRXhhbXBsZSoqOiBVbmxlc3MgYHY3YCBpcyBzcGVjaWZpZWQg YXMgdGhlIHRhcmdldCBDUFUgKHNlZSBiZWxvdyksIHRvIGVuYWJsZQorLSAgTkVPTiBvbiBBUk0g aXQgaXMgbmVjZXNzYXJ5IHRvIHVzZSBgLUMgdGFyZ2V0LWZlYXR1cmU9K3Y3LCtuZW9uYC4KKy0K Ky0jIyB0YXJnZXQtY3B1CistCistLSBTeW50YXg6IGAtQyB0YXJnZXQtY3B1PTxjcHU+YAorLQor LS0gU2V0cyB0aGUgaWRlbnRpZmllciBvZiBhIENQVSBmYW1pbHkgLyBtb2RlbCBmb3Igd2hpY2gg dG8gYnVpbGQgYW5kIG9wdGltaXplIHRoZSBjb2RlLgorLQorLSAgKipFeGFtcGxlKio6IGBSVVNU RkxBR1M9Jy1DIHRhcmdldC1jcHU9Y29ydGV4LWE3NSdgCistCistLSBUbyBsaXN0IGFsbCBzdXBw b3J0ZWQgdGFyZ2V0IENQVXMgZm9yIGEgY2VydGFpbiB0YXJnZXQgdHJpcGxlLCB1c2U6CistCist ICBgYGBzaAorLSAgcnVzdGMgLS10YXJnZXQ9JHtUUklQTEV9IC0tcHJpbnQgdGFyZ2V0LWNwdXMK Ky0gIGBgYAorLQorLSAgKipFeGFtcGxlKio6CistCistICBgYGBzaAorLSAgcnVzdGMgLS10YXJn ZXQ9aTY4Ni1wYy13aW5kb3dzLW1zdmMgLS1wcmludCB0YXJnZXQtY3B1cworLSAgYGBgCistCist LSBUaGUgY29tcGlsZXIgd2lsbCB0cmFuc2xhdGUgdGhpcyBpbnRvIGEgbGlzdCBvZiB0YXJnZXQg ZmVhdHVyZXMuIFRoZXJlZm9yZSwKKy0gIGluZGl2aWR1YWwgZmVhdHVyZSBjaGVja3MgKGAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICIuLi4iKV1gKSB3aWxsIHN0aWxsCistICB3b3JrIHByb3Blcmx5 LgorLQorLS0gSXQgd2lsbCBjYXVzZSB0aGUgY29kZSBnZW5lcmF0b3IgdG8gb3B0aW1pemUgdGhl IGdlbmVyYXRlZCBjb2RlIGZvciB0aGF0CistICBzcGVjaWZpYyBDUFUgbW9kZWwuCistCistLSBV c2luZyBgbmF0aXZlYCBhcyB0aGUgQ1BVIG1vZGVsIHdpbGwgY2F1c2UgUnVzdCB0byBnZW5lcmF0 ZSBhbmQgb3B0aW1pemUgY29kZQorLSAgZm9yIHRoZSBDUFUgcnVubmluZyB0aGUgY29tcGlsZXIu IEl0IGlzIHVzZWZ1bCB3aGVuIGJ1aWxkaW5nIHByb2dyYW1zIHdoaWNoIHlvdQorLSAgcGxhbiB0 byBvbmx5IHVzZSBsb2NhbGx5LiBUaGlzIHNob3VsZCBuZXZlciBiZSB1c2VkIHdoZW4gdGhlIGdl bmVyYXRlZCBwcm9ncmFtcworLSAgYXJlIG1lYW50IHRvIGJlIHJ1biBvbiBvdGhlciBjb21wdXRl cnMsIHN1Y2ggYXMgd2hlbiBwYWNrYWdpbmcgZm9yIGRpc3RyaWJ1dGlvbgorLSAgb3IgY3Jvc3Mt Y29tcGlsaW5nLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0 LWhvci1vcHMubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDc2ICswLDAgQEAKKy0jIFZlcnRpY2Fs IGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnMKKy0KKy1JbiBTSU1EIHRlcm1pbm9sb2d5LCBlYWNo IHZlY3RvciBoYXMgYSBjZXJ0YWluICJ3aWR0aCIgKG51bWJlciBvZiBsYW5lcykuCistQSB2ZWN0 b3IgcHJvY2Vzc29yIGlzIGFibGUgdG8gcGVyZm9ybSB0d28ga2luZHMgb2Ygb3BlcmF0aW9ucyBv biBhIHZlY3RvcjoKKy0KKy0tIFZlcnRpY2FsIG9wZXJhdGlvbnM6CistICBvcGVyYXRlIG9uIHR3 byB2ZWN0b3JzIG9mIHRoZSBzYW1lIHdpZHRoLCByZXN1bHQgaGFzIHNhbWUgd2lkdGgKKy0KKy0q KkV4YW1wbGUqKjogdmVydGljYWwgYWRkaXRpb24gb2YgdHdvIGBmMzJ4NGAgdmVjdG9ycworLQor LSAgICAgICUwICAgICA9PSB8IDIgfCAtMy41IHwgIDAgfCA3IHwKKy0gICAgICAgICAgICAgICAg ICArICAgICArICAgICArICAgKworLSAgICAgICUxICAgICA9PSB8IDQgfCAgMS41IHwgLTEgfCAw IHwKKy0gICAgICAgICAgICAgICAgICA9ICAgICA9ICAgICA9ICAgPQorLSAgICAlMCArICUxICA9 PSB8IDYgfCAgLTIgIHwgLTEgfCA3IHwKKy0KKy0tIEhvcml6b250YWwgb3BlcmF0aW9uczoKKy0g IHJlZHVjZSB0aGUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgaW4gc29tZSB3YXksCistICB0aGUg cmVzdWx0J3MgZWxlbWVudHMgY29tYmluZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0d28gb3JpZ2lu YWwgb25lcworLQorLSoqRXhhbXBsZSoqOiBob3Jpem9udGFsIGFkZGl0aW9uIG9mIHR3byBgdTY0 eDJgIHZlY3RvcnMKKy0KKy0gICAgICAlMCAgICAgPT0gfCAxIHwgIDMgfAorLSAgICAgICAgICAg ICAgICAgIOKUlOKUgCvilIDilIDilIDilJgKKy0gICAgICAgICAgICAgICAgICAgIOKUlOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUkAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKy0g ICAgICAlMSAgICAgPT0gfCA0IHwgLTEgfCAg4pSCCistICAgICAgICAgICAgICAgICAg4pSU4pSA K+KUgOKUgOKUmCAgICDilIIKKy0gICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKUkCAg IOKUggorLSAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgIOKUggorLSAgICAgICAgICAgICAg ICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUguKUgOKUgOKUgOKUmAorLSAgICAgICAgICAgICAgICAg IOKWvCAgICAg4pa8CistICAgICUwICsgJTEgID09IHwgNCB8ICAgMyB8CistCistIyMgUGVyZm9y bWFuY2UgY29uc2lkZXJhdGlvbiBvZiBob3Jpem9udGFsIG9wZXJhdGlvbnMKKy0KKy1UaGUgcmVz dWx0IG9mIHZlcnRpY2FsIG9wZXJhdGlvbnMsIGxpa2UgdmVjdG9yIG5lZ2F0aW9uOiBgLWFgLCBm b3IgYSBnaXZlbiBsYW5lLAorLWRvZXMgbm90IGRlcGVuZCBvbiB0aGUgcmVzdWx0IG9mIHRoZSBv cGVyYXRpb24gZm9yIHRoZSBvdGhlciBsYW5lcy4gVGhlIHJlc3VsdAorLW9mIGhvcml6b250YWwg b3BlcmF0aW9ucywgbGlrZSB0aGUgdmVjdG9yIGBzdW1gIHJlZHVjdGlvbjogYGEuc3VtKClgLCBk ZXBlbmRzIG9uCistdGhlIHZhbHVlIG9mIGFsbCB2ZWN0b3IgbGFuZXMuCistCistSW4gdmlydHVh bGx5IGFsbCBhcmNoaXRlY3R1cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJlIGZhc3QsIHdoaWxl IGhvcml6b250YWwKKy1vcGVyYXRpb25zIGFyZSwgYnkgY29tcGFyaXNvbiwgdmVyeSBzbG93Lgor LQorLUNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBmb3IgY29tcHV0aW5nIHRo ZSBzdW0gb2YgYWxsIGBmMzJgIHZhbHVlcworLWluIGEgc2xpY2U6CistCistYGBgcnVzdAorLWZu IGZhc3Rfc3VtKHg6ICZbZjMyXSkgLT4gZjMyIHsKKy0gICAgYXNzZXJ0ISh4LmxlbigpICUgNCA9 PSAwKTsKKy0gICAgbGV0IG11dCBzdW0gPSBmMzJ4NDo6c3BsYXQoMC4pOyAvLyBbMC4sIDAuLCAw LiwgMC5dCistICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKKy0gICAgICAg IHN1bSArPSBmMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSk7CistICAgIH0KKy0g ICAgc3VtLnN1bSgpCistfQorLQorLWZuIHNsb3dfc3VtKHg6ICZbZjMyXSkgLT4gZjMyIHsKKy0g ICAgYXNzZXJ0ISh4LmxlbigpICUgNCA9PSAwKTsKKy0gICAgbGV0IG11dCBzdW06IGYzMiA9IDAu OworLSAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7CistICAgICAgICBzdW0g Kz0gZjMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pLnN1bSgpOworLSAgICB9Cist ICAgIHN1bQorLX0KKy1gYGAKKy0KKy1UaGUgaW5uZXIgbG9vcCBvdmVyIHRoZSBzbGljZSBpcyB3 aGVyZSB0aGUgYnVsayBvZiB0aGUgd29yayBhY3R1YWxseSBoYXBwZW5zLgorLVRoZXJlLCB0aGUg YGZhc3Rfc3VtYCBmdW5jdGlvbiBwZXJmb3JtIHZlcnRpY2FsIG9wZXJhdGlvbnMgaW50byBhIHZl Y3RvciwgZG9pbmcKKy1hIHNpbmdsZSBob3Jpem9udGFsIHJlZHVjdGlvbiBhdCB0aGUgZW5kLCB3 aGlsZSB0aGUgYHNsb3dfc3VtYCBmdW5jdGlvbiBwZXJmb3JtcworLWhvcml6b250YWwgdmVjdG9y IG9wZXJhdGlvbnMgaW5zaWRlIG9mIHRoZSBsb29wLgorLQorLU9uIGFsbCB3aWRlbHktdXNlZCBh cmNoaXRlY3R1cmVzLCBgZmFzdF9zdW1gIGlzIGEgbGFyZ2UgY29uc3RhbnQgZmFjdG9yIGZhc3Rl cgorLXRoYW4gYHNsb3dfc3VtYC4gWW91IGNhbiBydW4gdGhlIFtzbGljZV9zdW1dKCkgZXhhbXBs ZSBhbmQgc2VlIGZvciB5b3Vyc2VsZi4gT24KKy10aGUgcGFydGljdWxhciBtYWNoaW5lIHRlc3Rl ZCB0aGVyZSB0aGUgYWxnb3JpdGhtIHVzaW5nIHRoZSBob3Jpem9udGFsIHZlY3RvcgorLWFkZGl0 aW9uIGlzIDIuN3ggc2xvd2VyIHRoYW4gdGhlIG9uZSB1c2luZyB2ZXJ0aWNhbCB2ZWN0b3Igb3Bl cmF0aW9ucyEKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3J1c3Rm bXQudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50b21sCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv cnVzdGZtdC50b21sCisrKysgL2Rldi9udWxsCitAQCAtMSw1ICswLDAgQEAKKy1tYXhfd2lkdGgg PSAxMTAKKy11c2Vfc21hbGxfaGV1cmlzdGljcyA9ICJNYXgiCistd3JhcF9jb21tZW50cyA9IHRy dWUKKy1lZGl0aW9uID0gIjIwMTgiCistZXJyb3Jfb25fbGluZV9vdmVyZmxvdyA9IHRydWUKK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDMwOCArMCwwIEBA CistLy8hIEltcGxlbWVudHMgdGhlIFNpbWQ8W1Q7IE5dPiBBUElzCistCistI1ttYWNyb191c2Vd CistbW9kIGJpdG1hc2s7CistcHViKGNyYXRlKSBtb2QgY2FzdDsKKy0jW21hY3JvX3VzZV0KKy1t b2QgY21wOworLSNbbWFjcm9fdXNlXQorLW1vZCBkZWZhdWx0OworLSNbbWFjcm9fdXNlXQorLW1v ZCBmbXQ7CistI1ttYWNyb191c2VdCistbW9kIGZyb207CistI1ttYWNyb191c2VdCistbW9kIGhh c2g7CistI1ttYWNyb191c2VdCistbW9kIG1hdGg7CistI1ttYWNyb191c2VdCistbW9kIG1pbmlt YWw7CistI1ttYWNyb191c2VdCistbW9kIG9wczsKKy0jW21hY3JvX3VzZV0KKy1tb2QgcHRyOwor LSNbbWFjcm9fdXNlXQorLW1vZCByZWR1Y3Rpb25zOworLSNbbWFjcm9fdXNlXQorLW1vZCBzZWxl Y3Q7CistI1ttYWNyb191c2VdCistbW9kIHNodWZmbGU7CistI1ttYWNyb191c2VdCistbW9kIHNo dWZmbGUxX2R5bjsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2xpY2U7CistI1ttYWNyb191c2VdCist bW9kIHN3YXBfYnl0ZXM7CistI1ttYWNyb191c2VdCistbW9kIGJpdF9tYW5pcDsKKy0KKy0jW2Nm ZyhmZWF0dXJlID0gImludG9fYml0cyIpXQorLXB1YihjcmF0ZSkgbW9kIGludG9fYml0czsKKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9pIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpl eHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudAorLSAgICAgfCAkaWVsZW1fdHk6 aWRlbnQsICRpYml0bWFza190eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRl bnQpLCoKKy0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzpt ZXRhXSkqKSA9PiB7CistICAgICAgICBpbXBsX21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkqKTsKKy0gICAgICAgIGltcGxf b3BzX3ZlY3Rvcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7CistICAgICAgICBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVj dG9yX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCistICAgICAgICApOworLSAgICAg ICAgaW1wbF9vcHNfc2NhbGFyX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCistICAg ICAgICApOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX3No aWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAg ICAgaW1wbF9vcHNfdmVjdG9yX3JvdGF0ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9uZWchKFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rv cl9pbnRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9pbnRl Z2VyX2FyaXRobWV0aWMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9y ZWR1Y3Rpb25fbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBs X3JlZHVjdGlvbl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgICAgIHwgKHx4fHsgeCBh cyAkZWxlbV90eSB9KSB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQorLSAgICAgICAgKTsKKy0gICAg ICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7CistICAgICAgICBpbXBsX2ZtdF9sb3dlcl9oZXghKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X3VwcGVyX2hleCEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9m bXRfb2N0YWwhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfZm10X2JpbmFyeSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mcm9tX2FycmF5IShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgxLCAxKSk7CistICAgICAgICBpbXBsX2Zyb21fdmVj dG9ycyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZGVm YXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAg ICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 CistICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2Vfd3JpdGVfdG9fc2xpY2Uh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGlt cGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFs X2VxISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCB8ICgwLCAxKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfY21wX2VxIShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7CistICAgICAgICBp bXBsX2NtcF92ZXJ0aWNhbCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkLCAkbWFza190eSwgZmFsc2UsICgxLCAwKSB8ICR0ZXN0X3R0CistICAgICAgICApOwor LSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX29yZCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOworLSAgICAgICAgaW1wbF9iaXRt YXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAoLTEsIDApIHwgJHRlc3RfdHQpOworLQor LSAgICAgICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMSwg MikgfCAkdGVzdF90dCk7CistICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3Rfc2h1 ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Cist ICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfdSB7CistICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKKy0gICAg IHwgJGllbGVtX3R5OmlkZW50LCAkaWJpdG1hc2tfdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQo JGVsZW1faWRzOmlkZW50KSwqCistICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwq IHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7Cist ICAgICAgICBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0 aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAg IGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQorLSAgICAg ICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9iaXR3aXNlISgKKy0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVsZW1f dHkpLCAwKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxf b3BzX3NjYWxhcl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9yb3RhdGVzIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfaW50 X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25faW50ZWdlcl9h cml0aG1ldGljISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcmVkdWN0 aW9uX21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9yZWR1 Y3Rpb25fYml0d2lzZSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICAgICB8ICh8eHx7IHggYXMgJGVs ZW1fdHkgfSkgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBp bXBsX2ZtdF9kZWJ1ZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OworLSAgICAgICAgaW1wbF9mbXRfbG93ZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF91cHBlcl9oZXghKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X29j dGFsIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX2ZtdF9iaW5hcnkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0KTsKKy0gICAgICAgIGltcGxfZnJvbV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkIHwgJHRlc3RfdHQgfCAoMSwgMSkpOworLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMh KAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 IHwgJCgkZnJvbV92ZWNfdHkpLCoKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2RlZmF1bHQh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGlt cGxfaGFzaCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9zbGljZV9mcm9tX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3N3 YXBfYnl0ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfYml0X21hbmlwIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9lcSEo CistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQg fCAoMSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9lcSEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkpOworLSAgICAgICAgaW1wbF9j bXBfdmVydGljYWwhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCwgJG1hc2tfdHksIGZhbHNlLCAoMSwgMCkgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAg ICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9vcmQhKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpKTsKKy0gICAgICAgIGltcGxfYml0bWFzayEo JHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5IHwgKCRpZWxlbV90eTo6bWF4X3ZhbHVlKCksIDApIHwK Ky0gICAgICAgICAgICAgICAgICAgICAgJHRlc3RfdHQpOworLQorLSAgICAgICAgdGVzdF9zZWxl Y3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMSwgMikgfCAkdGVzdF90dCk7Cist ICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3Rfc2h1ZmZsZTFfZHluIShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgIH0KKy19CistCistbWFj cm9fcnVsZXMhIGltcGxfZiB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06 ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKKy0gICAgIHwgJGllbGVtX3R5OmlkZW50 IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgorLSAgICAgfCBGcm9tOiAkKCRm cm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgIGlt cGxfbWluaW1hbF9pdWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90 eSB8ICR0ZXN0X3R0CistICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwq IHwgJCgjWyRkb2NdKSopOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxf b3BzX3NjYWxhcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfbmVnIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfZmxv YXRfbWluX21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9mbG9hdF9h cml0aG1ldGljISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKKy0gICAgICAg ICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90 dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zyb21fYXJyYXkhKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEuLCAxLikpOworLSAg ICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoKKy0gICAgICAgICk7 CistICAgICAgICBpbXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfZXEhKAorLSAgICAgICAgICAg IFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEuLCAwLikKKy0g ICAgICAgICk7CistICAgICAgICBpbXBsX3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2Vfd3JpdGVf dG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistCistICAgICAgICBpbXBsX2Zsb2F0X2NvbnN0cyEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkKTsKKy0gICAgICAgIGltcGxfZmxvYXRfY2F0ZWdvcnkhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkpOworLQorLSAgICAgICAgLy8gZmxv YXRpbmctcG9pbnQgbWF0aAorLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2FicyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zs b2F0X2NvcyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9tYXRoX2Zsb2F0X2V4cCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2xuIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRf bXVsX2FkZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9tYXRoX2Zsb2F0X211bF9hZGRlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfcG93ZiEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRo X2Zsb2F0X3JlY3ByZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3JzcXJ0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NpbiEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9t YXRoX2Zsb2F0X3NxcnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9zcXJ0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAorLSAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZhbHNl LCAoMS4sIDAuKQorLSAgICAgICAgICAgICAgICB8ICR0ZXN0X3R0CistICAgICAgICApOworLQor LSAgICAgICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMS4s IDIuKSB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3RfcmVkdWN0aW9uX2Zsb2F0X21pbl9tYXgh KAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 CistICAgICAgICApOworLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgfQorLX0KKy0KKy1tYWNyb19ydWxl cyEgaW1wbF9tIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxl X2lkOmlkZW50CistICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50Cist ICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCogfCBGcm9tOiAkKCRmcm9t X3ZlY190eTppZGVudCksKgorLSAgICAgfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAg ICBpbXBsX21pbmltYWxfbWFzayEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICAgICB8ICQoJGVsZW1f aWRzKSwqIHwgJCgjWyRkb2NdKSoKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX29wc192ZWN0 b3JfbWFza19iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkKKy0gICAgICAgICk7CistICAgICAgICBp bXBsX29wc19zY2FsYXJfbWFza19iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkKKy0gICAgICAgICk7 CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbYm9vbDsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICAgICAg ICAgIHwgKHx4fHsgeCAhPSAwIH0pIHwgKHRydWUsIGZhbHNlKQorLSAgICAgICAgKTsKKy0gICAg ICAgIGltcGxfcmVkdWN0aW9uX21hc2shKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2RlYnVnIShbYm9vbDsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZnJvbV9hcnJheSEoCistICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKKy0gICAgICAg ICAgICB8IChjcmF0ZTo6JGVsZW1fdHk6Om5ldyh0cnVlKSwgdHJ1ZSkKKy0gICAgICAgICk7Cist ICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSksKgorLSAgICAgICAg KTsKKy0gICAgICAgIGltcGxfZGVmYXVsdCEoW2Jvb2w7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAk dGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX2VxISgKKy0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkK Ky0gICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9lcSEoCistICAgICAgICAgICAgWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAodHJ1ZSwgZmFsc2UpCistICAg ICAgICApOworLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAorLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJHR1cGxlX2lkLCB0cnVlLCAodHJ1ZSwgZmFsc2Up CistICAgICAgICAgICAgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfc2Vs ZWN0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfb3JkISgKKy0gICAgICAgICAgICBbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8IChmYWxzZSwgdHJ1ZSkKKy0gICAg ICAgICk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQg fCAkaWJpdG1hc2tfdHkgfCAodHJ1ZSwgZmFsc2UpIHwgJHRlc3RfdHQpOworLQorLSAgICAgICAg dGVzdF9jbXBfcGFydGlhbF9vcmRfbWFzayEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9zaHVmZmxlMV9keW5fbWFzayEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICB9CistfQorLQorLW1hY3Jv X3J1bGVzISBpbXBsX2NvbnN0X3AgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9uOmV4cHJd OiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50LAorLSAgICAgJHVzaXplX3R5OmlkZW50 LCAkaXNpemVfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVu dCksKgorLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1l dGFdKSopID0+IHsKKy0gICAgICAgIGltcGxfbWluaW1hbF9wISgKKy0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCAkdXNpemVfdHksICRpc2l6ZV90 eQorLSAgICAgICAgICAgICAgICB8IHJlZl8gfCAkdGVzdF90dCB8ICQoJGVsZW1faWRzKSwqCist ICAgICAgICAgICAgICAgIHwgKDEgYXMgJGVsZW1fdHksIDAgYXMgJGVsZW1fdHkpIHwgJCgjWyRk b2NdKSoKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX3B0cl9yZWFkIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5IHwgJHRlc3RfdHQpOworLSAgICB9CistfQorLQor LW1hY3JvX3J1bGVzISBpbXBsX211dF9wIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fbjpl eHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudCwKKy0gICAgICR1c2l6ZV90eTpp ZGVudCwgJGlzaXplX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6 aWRlbnQpLCoKKy0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRv YzptZXRhXSkqKSA9PiB7CistICAgICAgICBpbXBsX21pbmltYWxfcCEoCistICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgJHVzaXplX3R5LCAkaXNp emVfdHkKKy0gICAgICAgICAgICAgICAgfCByZWZfbXV0XyB8ICR0ZXN0X3R0IHwgJCgkZWxlbV9p ZHMpLCoKKy0gICAgICAgICAgICAgICAgfCAoMSBhcyAkZWxlbV90eSwgMCBhcyAkZWxlbV90eSkg fCAkKCNbJGRvY10pKgorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcHRyX3JlYWQhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX3B0cl93cml0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190 eSB8ICR0ZXN0X3R0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0X21hbmlwLnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwxMjkgKzAsMCBAQAorLS8vISBCaXQgbWFuaXB1bGF0aW9ucy4K Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9iaXRfbWFuaXAgeworLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAg ICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIG9u ZXMgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZgorLSAgICAgICAgICAgIC8vLyB0aGUg bGFuZXMgb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1 YiBmbiBjb3VudF9vbmVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzdXBlcjo6 Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3Aoc2VsZikKKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB6ZXJvcyBpbiB0aGUg YmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mCistICAgICAgICAgICAgLy8vIHRoZSBsYW5lcyBvZiBg c2VsZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGNvdW50 X3plcm9zKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzdXBlcjo6Y29kZWdlbjo6 Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3Rwb3AoIXNlbGYpCistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcyBpbiB0aGUg YmluYXJ5CistICAgICAgICAgICAgLy8vIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsYW5lcyBvZiBg c2VsZmAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGxlYWRp bmdfemVyb3Moc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHN1cGVyOjpjb2RlZ2Vu OjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdGx6KHNlbGYpCistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgemVyb3MgaW4gdGhl IGJpbmFyeQorLSAgICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGFuZXMgb2Yg YHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB0cmFp bGluZ196ZXJvcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVn ZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0dHooc2VsZikKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgI1thbGxvdyhvdmVy Zmxvd2luZ19saXRlcmFscyldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2JpdF9t YW5pcD5dIHsKKy0gICAgICAgICAgICAgICAgICAgICMhW2FsbG93KGNvbnN0X2l0ZW1fbXV0YXRp b24pXQorLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAgICAgICAg ICAgICAgICAgY29uc3QgTEFORV9XSURUSDogdXNpemUgPSBtZW06OnNpemVfb2Y6OjwkZWxlbV90 eT4oKSAqIDg7CistCistICAgICAgICAgICAgICAgICAgICBtYWNyb19ydWxlcyEgdGVzdF9mdW5j IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAoJHg6ZXhwciwgJGZ1bmM6aWRlbnQpID0+IHt7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWN0dWFsID0gJHg7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSBhY3R1YWwucmVwbGFjZSgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICR4LmV4dHJhY3QoaSkuJGZ1bmMoKSBhcyAkZWxlbV90eQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSAkeC4k ZnVuYygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFjdHVhbCwg ZXhwZWN0ZWQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAgICAgICAgICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQllURVM6IFt1ODsgNjRdID0g WworLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAg ICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsCistICAg ICAgICAgICAgICAgICAgICAgICAgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsCist ICAgICAgICAgICAgICAgICAgICAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LAor LSAgICAgICAgICAgICAgICAgICAgICAgIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywK Ky0gICAgICAgICAgICAgICAgICAgIF07CistCistICAgICAgICAgICAgICAgICAgICBmbiBsb2Fk X2J5dGVzKCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbXM6ICZt dXQgWyRlbGVtX3R5XSA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs aWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCWVRFUy5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRpZDo6bGFuZXMoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAg ICAgJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZChlbGVtcykKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gY291bnRfb25lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KCRpZDo6c3BsYXQoMCksIGNvdW50X29uZXMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50X29uZXMpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBjb3VudF9vbmVzKTsKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gY291bnRfemVyb3MoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBjb3VudF96ZXJvcyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgY291bnRfemVyb3MpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCBjb3VudF96ZXJvcyk7 CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGxlYWRpbmdfemVyb3MoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBsZWFkaW5nX3plcm9zKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMSksIGxlYWRp bmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvbWUgaW1wbGVtZW50YXRp b25zIHVzZSBgcHNodWZiYCB3aGljaCBoYXMgdW5pcXVlCistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYmVoYXZpb3Igd2hlbiB0aGUgOHRoIGJpdCBpcyBzZXQuCistICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDBiMTAwMF8wMDEwKSwgbGVhZGluZ196ZXJv cyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwg bGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxIDw8IChMQU5FX1dJRFRIIC0g MSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nX3plcm9zCistICAgICAg ICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KGxvYWRfYnl0ZXMoKSwgbGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICB9Cist CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZu IHRyYWlsaW5nX3plcm9zKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEo JGlkOjpzcGxhdCgwKSwgdHJhaWxpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgxKSwgdHJhaWxpbmdfemVyb3MpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAxMCksIHRyYWlsaW5n X3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQo ITApLCB0cmFpbGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5j ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxIDw8IChMQU5FX1dJ RFRIIC0gMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ196ZXJvcwor LSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9mdW5jIShsb2FkX2J5dGVzKCksIHRyYWlsaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2JpdG1hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0 bWFzay5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvYml0bWFzay5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzkg KzAsMCBAQAorLS8vISBCaXRtYXNrIEFQSQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2JpdG1hc2sg eworLSAgICAoJGlkOmlkZW50IHwgJGliaXRtYXNrX3R5OmlkZW50IHwgKCRzZXQ6ZXhwciwgJGNs ZWFyOmV4cHIpCistICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7 CistICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBiaXRtYXNrIHdpdGggdGhlIE1TQiBvZiBlYWNo IHZlY3RvciBsYW5lLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiB0aGUg dmVjdG9yIGhhcyBsZXNzIHRoYW4gOCBsYW5lcywgdGhlIGJpdHMgdGhhdCBkbyBub3QKKy0gICAg ICAgICAgICAvLy8gY29ycmVzcG9uZCB0byBhbnkgdmVjdG9yIGxhbmVzIGFyZSBjbGVhcmVkLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBiaXRtYXNrKHNlbGYp IC0+ICRpYml0bWFza190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNvZGVnZW46Omxs dm06OnNpbWRfYml0bWFzayhzZWxmLjApIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAg ICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KAorLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjEwCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZW5k aWFuID0gImJpZyIKKy0gICAgICAgICAgICAgICAgKSldCistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX2JpdG1hc2s+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZu IGJpdG1hc2soKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgYWxsIGxhbmVz CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoJGNsZWFyIGFz IF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkg PSAwOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwg Yml0bWFzayk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGV2ZW4gbGFuZXMK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYyA9ICRpZDo6c3BsYXQoJGNsZWFy IGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxhY2UoaSwgJHNldCBhcyBf KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYml0bWFzayB3aXRoIGV2 ZW4gbGFuZXMgc2V0OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazog JGliaXRtYXNrX3R5ID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4k aWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAw IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hc2sgfD0gMSA8PCBpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0 bWFzayk7CistCistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IG9kZCBsYW5lcwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjID0gJGlkOjpzcGxhdCgkY2xlYXIg YXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMucmVwbGFjZShpLCAkc2V0IGFzIF8p OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBiaXRtYXNrIHdpdGggb2Rk IGxhbmVzIHNldDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJpdG1hc2s6ICRp Yml0bWFza190eSA9IDA7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXNrIHw9IDEgPDwgaTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1h c2spOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBhbGwgbGFuZXMKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpzcGxhdCgkc2V0IGFzIF8pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXNrIHw9IDEgPDwgaTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWMu Yml0bWFzaygpLCBiaXRtYXNrKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2Fz dC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTA4ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50YXRp b24gb2YgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YC4KKy0jIVthbGxvdyhjbGlwcHk6Om1vZHVs ZV9uYW1lX3JlcGV0aXRpb25zKV0KKy0KKy0vLy8gTnVtZXJpYyBjYXN0IGZyb20gYFRgIHRvIGBT ZWxmYC4KKy0vLy8KKy0vLy8gPiBOb3RlOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQg dW50aWwgdGhlIGNvbnZlcnNpb24gdHJhaXRzCistLy8vIHNwZWNpZmllZCA+IGluIFtSRkMyNDg0 XSBhcmUgaW1wbGVtZW50ZWQuCistLy8vCistLy8vIE51bWVyaWMgY2FzdCBiZXR3ZWVuIHZlY3Rv cnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMsIHN1Y2ggdGhhdDoKKy0vLy8KKy0vLy8g KiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5cGVzIGhhdmUgdGhlIHNhbWUg c2l6ZSAoZS5nLiBgaTMyeE5gCistLy8vIC0+IGB1MzJ4TmApIGlzIGEgKipuby1vcCoqLAorLS8v LworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRlZ2VyIHRvIGEgc21hbGxlciBpbnRl Z2VyIChlLmcuIGB1MzJ4TmAgLT4KKy0vLy8gYHU4eE5gKSB3aWxsICoqdHJ1bmNhdGUqKiwKKy0v Ly8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVyIGludGVnZXIgdG8gYSBsYXJnZXIgaW50 ZWdlciAgIChlLmcuIGB1OHhOYCAtPgorLS8vLyAgIGB1MzJ4TmApIHdpbGw6CistLy8vICAgICog Kip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5zaWduZWQsIG9yCistLy8vICAgICog KipzaWduLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgc2lnbmVkLAorLS8vLworLS8vLyAqIGNh c3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIgd2lsbCAqKnJvdW5kIHRoZSBmbG9hdCB0 b3dhcmRzIHplcm8qKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gaW50ZWdlciB0byBm bG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50CistLy8vIHJlcHJlc2VudGF0aW9u IG9mIHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLAor LS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0YCBpcyBwZXJmZWN0 IGFuZCBsb3NzbGVzcywKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGY2NGAgdG8gYW4g YGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiouCistLy8vCistLy8vIFtS RkMyNDg0XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjQ4NAorLXB1 YiB0cmFpdCBGcm9tQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgeworLSAgICAvLy8gTnVt ZXJpYyBjYXN0IGZyb20gYFRgIHRvIGBTZWxmYC4KKy0gICAgZm4gZnJvbV9jYXN0KF86IFQpIC0+ IFNlbGY7CistfQorLQorLS8vLyBOdW1lcmljIGNhc3QgZnJvbSBgU2VsZmAgdG8gYFRgLgorLS8v LworLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB1bnRpbCB0aGUg Y29udmVyc2lvbiB0cmFpdHMKKy0vLy8gc3BlY2lmaWVkID4gaW4gW1JGQzI0ODRdIGFyZSBpbXBs ZW1lbnRlZC4KKy0vLy8KKy0vLy8gTnVtZXJpYyBjYXN0IGJldHdlZW4gdmVjdG9ycyB3aXRoIHRo ZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3VjaCB0aGF0OgorLS8vLworLS8vLyAqIGNhc3Rpbmcg aW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2ZSB0aGUgc2FtZSBzaXplIChlLmcu IGBpMzJ4TmAKKy0vLy8gLT4gYHUzMnhOYCkgaXMgYSAqKm5vLW9wKiosCistLy8vCistLy8vICog Y2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8gYSBzbWFsbGVyIGludGVnZXIgKGUuZy4g YHUzMnhOYCAtPgorLS8vLyBgdTh4TmApIHdpbGwgKip0cnVuY2F0ZSoqLAorLS8vLworLS8vLyAq IGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdlciB0byBhIGxhcmdlciBpbnRlZ2VyICAgKGUu Zy4gYHU4eE5gIC0+CistLy8vICAgYHUzMnhOYCkgd2lsbDoKKy0vLy8gICAgKiAqKnplcm8tZXh0 ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNpZ25lZCwgb3IKKy0vLy8gICAgKiAqKnNpZ24tZXh0 ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWduZWQsCistLy8vCistLy8vICogY2FzdGluZyBmcm9t IGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQgdGhlIGZsb2F0IHRvd2FyZHMgemVy byoqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdpbGwg cHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKKy0vLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGlu dGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiosCistLy8vCistLy8v ICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBlcmZlY3QgYW5kIGxvc3Ns ZXNzLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0byBhbiBgZjMyYCAqKnJv dW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KKy0vLy8KKy0vLy8gW1JGQzI0ODRdOiBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yNDg0CistcHViIHRyYWl0IENh c3Q8VD46IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgLy8vIE51bWVyaWMgY2FzdCBmcm9t IGBzZWxmYCB0byBgVGAuCistICAgIGZuIGNhc3Qoc2VsZikgLT4gVDsKKy19CistCistLy8vIGBG cm9tQ2FzdGAgaW1wbGllcyBgQ2FzdGAuCistaW1wbDxULCBVPiBDYXN0PFU+IGZvciBUCistd2hl cmUKKy0gICAgVTogRnJvbUNhc3Q8VD4sCisteworLSAgICAjW2lubGluZV0KKy0gICAgZm4gY2Fz dChzZWxmKSAtPiBVIHsKKy0gICAgICAgIFU6OmZyb21fY2FzdChzZWxmKQorLSAgICB9CistfQor LQorLS8vLyBgRnJvbUNhc3RgIGFuZCBgQ2FzdGAgYXJlIHJlZmxleGl2ZQorLWltcGw8VD4gRnJv bUNhc3Q8VD4gZm9yIFQgeworLSAgICAjW2lubGluZV0KKy0gICAgZm4gZnJvbV9jYXN0KHQ6IFNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgdAorLSAgICB9CistfQorLQorLSNbbWFjcm9fdXNlXQor LW1vZCBtYWNyb3M7CistCistbW9kIHYxNjsKKy1wdWIgdXNlIHNlbGY6OnYxNjo6KjsKKy0KKy1t b2QgdjMyOworLXB1YiB1c2Ugc2VsZjo6djMyOjoqOworLQorLW1vZCB2NjQ7CistcHViIHVzZSBz ZWxmOjp2NjQ6Oio7CistCistbW9kIHYxMjg7CistcHViIHVzZSBzZWxmOjp2MTI4OjoqOworLQor LW1vZCB2MjU2OworLXB1YiB1c2Ugc2VsZjo6djI1Njo6KjsKKy0KKy1tb2QgdjUxMjsKKy1wdWIg dXNlIHNlbGY6OnY1MTI6Oio7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsODIgKzAsMCBAQAorLS8vISBNYWNyb3MgaW1wbGVtZW50aW5nIGBG cm9tQ2FzdGAKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3RfIHsKKy0gICAgKCRpZDpp ZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIGNy YXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0PCRmcm9tX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tX2Nhc3QoeDogJGZyb21fdHkpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKKy0gICAg ICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISgkZnJvbV90eTo6bGFuZXMoKSwgJGlkOjpsYW5l cygpKTsKKy0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3QoeC4wKSB9KQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAg ICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8gJGZyb21fdHk+XSB7CistICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRpZDo6bGFu ZXMoKSwgJGZyb21fdHk6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3QgeworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0 OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAg ICBpbXBsX2Zyb21fY2FzdF8hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsKKy0gICAgICAgICkq CistICAgIH0KKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0X21hc2tfIHsKKy0g ICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICRmcm9tX3R5OmlkZW50KSA9PiB7CistICAgICAg ICBpbXBsIGNyYXRlOjphcGk6OmNhc3Q6OkZyb21DYXN0PCRmcm9tX3R5PiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tX2Nhc3QoeDogJGZyb21f dHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEhKCRmcm9tX3R5 OjpsYW5lcygpLCAkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICB4Lm5lKCRmcm9tX3R5 OjpkZWZhdWx0KCkpCistICAgICAgICAgICAgICAgICAgICAuc2VsZWN0KCRpZDo6c3BsYXQodHJ1 ZSksICRpZDo6c3BsYXQoZmFsc2UpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fY2FzdF8g JGZyb21fdHk+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKCRpZDo6bGFuZXMoKSwgJGZyb21fdHk6OmxhbmVzKCkpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB4ID0gJGZyb21fdHk6OmRlZmF1bHQoKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbTogJGlkID0geC5jYXN0KCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0IShtLm5vbmUoKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2FzdF9tYXNrIHsKKy0gICAgKCRpZDppZGVu dFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKKy0gICAgICAgICQoCist ICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfbWFza18hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5 KTsKKy0gICAgICAgICkqCistICAgIH0KKy19CistCistI1thbGxvdyh1bnVzZWQpXQorLW1hY3Jv X3J1bGVzISBpbXBsX2ludG9fY2FzdCB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAk KCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGxf ZnJvbV9jYXN0XyEoJGZyb21fdHlbJHRlc3RfdHRdOiAkaWQpOworLSAgICAgICAgKSoKKy0gICAg fQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y2FzdC92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djEyOC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTI4LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwz MDIgKzAsMCBAQAorLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9u cyBmb3IgcG9ydGFibGUgMTI4LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCist CistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0IShpOHgxNlt0ZXN0X3YxMjhdOiB1 OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4 MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3QhKHU4eDE2W3Rlc3RfdjEyOF06IGk4eDE2LCBt OHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMy eDE2KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrIShtOHgxNlt0ZXN0X3YxMjhdOiBpOHgxNiwgdTh4 MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngx Nik7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTZ4OFt0ZXN0X3YxMjhdOiBpOHg4LAor LSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkz Mng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwK Ky0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0g ICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1 MTZ4OFt0ZXN0X3YxMjhdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4 OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCist ICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBt NjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7Cist aW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0xNng4W3Rlc3RfdjEyOF06IGk4eDgsCistICAg IHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMyeDgs CistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAg ICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1 c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkz Mng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0 LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0g ICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02 NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6 ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdCEo CistICAgIHUzMng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCist ICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICBm MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQs CistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAor LSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zy b21fY2FzdCEoCistICAgIGYzMng0W3Rlc3RfdjEyOF06IGk4eDQsCistICAgIHU4eDQsCistICAg IG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0 LAorLSAgICB1MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0g ICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAg bTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsK Ky1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTMyeDRbdGVzdF92MTI4XTogaTh4NCwKKy0g ICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4 NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgaTY0eDQsCist ICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAg dTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAg IG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTY0eDJbdGVzdF92MTI4 XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngy LAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0g ICAgbTMyeDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkx Mjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVz aXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTY0eDJb dGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCist ICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBm MzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIs CistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIs CistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0g ICAgZjY0eDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAg aTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngy LAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0g ICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAg IGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9j YXN0X21hc2shKAorLSAgICBtNjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAg ICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4 MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCist ICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAg IG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7 CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpc2l6ZXgyW3Rlc3RfdjEyOF06IGk4eDIsCist ICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2 eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAor LSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAg aTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgdXNpemV4MiwKKy0gICAg bXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1c2l6ZXgyW3Rlc3RfdjEyOF06 IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwK Ky0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAg IG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4 MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4 MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG1zaXpl eDJbdGVzdF92MTI4XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIs CistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAg ICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0 eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgy LAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyCistKTsKKy0KKy0vLyBGSVhNRVt0ZXN0X3Yx MjhdOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9ycyBpbnRvX2Nhc3QgaW1wbHMKKy1pbXBs X2Zyb21fY2FzdCEoaTEyOHgxW3Rlc3RfdjEyOF06IHUxMjh4MSwgbTEyOHgxKTsKKy1pbXBsX2Zy b21fY2FzdCEodTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgbTEyOHgxKTsKKy1pbXBsX2Zyb21f Y2FzdCEobTEyOHgxW3Rlc3RfdjEyOF06IGkxMjh4MSwgdTEyOHgxKTsKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nh c3QvdjE2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2OCArMCwwIEBACistLy8hIGBGcm9tQ2Fz dGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxNi1iaXQgd2lk ZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBs X2Zyb21fY2FzdCEoCistICAgIGk4eDJbdGVzdF92MTZdOiB1OHgyLAorLSAgICBtOHgyLAorLSAg ICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMy eDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAor LSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAg ICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0p OworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTh4Mlt0ZXN0X3YxNl06IGk4eDIsCistICAgIG04 eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAor LSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAg dTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4 eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNp emV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG04eDJbdGVzdF92MTZdOiBp OHgyLAorLSAgICB1OHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAor LSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAg aTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4 MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpl eDIsCistICAgIG1zaXpleDIKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY2FzdC92MjU2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YyNTYucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDI5OCArMCwwIEBACistLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2Fz dGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAyNTYtYml0IHdpZGUgdmVjdG9ycworLSNb cnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2Nhc3QhKGk4 eDMyW3Rlc3RfdjI1Nl06IHU4eDMyLCBtOHgzMiwgaTE2eDMyLCB1MTZ4MzIsIG0xNngzMik7Cist aW1wbF9mcm9tX2Nhc3QhKHU4eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLCBtOHgzMiwgaTE2eDMyLCB1 MTZ4MzIsIG0xNngzMik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4MzJbdGVzdF92MjU2XTog aTh4MzIsIHU4eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsKKy0KKy1pbXBsX2Zyb21fY2Fz dCEoaTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIHUxNngxNiwgbTE2eDE2 LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0ISh1MTZ4 MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCBtMTZ4MTYsIGkzMngx NiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTE2eDE2 W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBpMzJ4MTYs IHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTMy eDhbdGVzdF92MjU2XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgs CistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAg ICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0 eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWlt cGxfZnJvbV9jYXN0ISgKKy0gICAgdTMyeDhbdGVzdF92MjU2XTogaTh4OCwKKy0gICAgdTh4OCwK Ky0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAg aTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4 LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgs CistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgZjMyeDhbdGVzdF92 MjU2XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUx Nng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBtMzJ4OCwK Ky0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAg IGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9j YXN0X21hc2shKAorLSAgICBtMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4LAorLSAgICB1OHg4LAorLSAg ICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4 OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCist ICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0g ICAgbXNpemV4OAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpNjR4NFt0ZXN0X3Yy NTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2 eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAor LSAgICBtMzJ4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAg aTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAg dXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1NjR4 NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwK Ky0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAg IGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4 NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4 NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAor LSAgICBmNjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAg ICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMy eDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAor LSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0g ICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9t X2Nhc3RfbWFzayEoCistICAgIG02NHg0W3Rlc3RfdjI1Nl06IGk4eDQsCistICAgIHU4eDQsCist ICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkz Mng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwK Ky0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0g ICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0Cist KTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgyLAor LSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0x NngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwK Ky0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAg IHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAg ICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxMjh4Mlt0ZXN0X3YyNTZd OiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIs CistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAg ICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0 eDIsCistICAgIGkxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6 ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTEy OHgyW3Rlc3RfdjI1Nl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngy LAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0g ICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIG02 NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIGlzaXpl eDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLQorLWltcGxfZnJvbV9jYXN0 ISgKKy0gICAgaXNpemV4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0 LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0g ICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2 NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0 LAorLSAgICBtMTI4eDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWltcGxf ZnJvbV9jYXN0ISgKKy0gICAgdXNpemV4NFt0ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAor LSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBp MzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQs CistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0g ICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIG1zaXpleDQKKy0p OworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtc2l6ZXg0W3Rlc3RfdjI1Nl06IGk4eDQs CistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAg bTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0 LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0g ICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0g ICAgdXNpemV4NAorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2Nhc3QvdjMyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMTMyICswLDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1l bnRhdGlvbnMgZm9yIHBvcnRhYmxlIDMyLWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNr aXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTh4NFt0 ZXN0X3YzMl06IHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0g ICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0z Mng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwK Ky0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwK Ky0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAg ICB1OHg0W3Rlc3RfdjMyXTogaTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUx Nng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwK Ky0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAg IG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBp c2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2Fz dF9tYXNrISgKKy0gICAgbTh4NFt0ZXN0X3YzMl06IGk4eDQsCistICAgIHU4eDQsCistICAgIGkx Nng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAg IGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0x Mjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7Cist CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTZ4Mlt0ZXN0X3YzMl06IGk4eDIsCistICAgIHU4 eDIsCistICAgIG04eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCist ICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1 NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4 MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6 ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxNngyW3Rlc3RfdjMyXTogaTh4MiwK Ky0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIG0xNngyLAorLSAgICBp MzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIs CistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0g ICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCist ICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMTZ4Mlt0ZXN0 X3YzMl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1 MTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIs CistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAg ICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAg ICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwyMDkgKzAsMCBAQAorLS8vISBgRnJvbUNhc3RgIGFuZCBg SW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNTEyLWJpdCB3aWRlIHZlY3Rv cnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9j YXN0IShpOHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwgbTh4NjQpOworLWltcGxfZnJvbV9jYXN0ISh1 OHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgbTh4NjQpOworLWltcGxfZnJvbV9jYXN0X21hc2shKG04 eDY0W3Rlc3RfdjUxMl06IGk4eDY0LCB1OHg2NCk7CistCistaW1wbF9mcm9tX2Nhc3QhKGkxNngz Mlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCB1MTZ4MzIsIG0xNngzMik7CistaW1w bF9mcm9tX2Nhc3QhKHUxNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCBpMTZ4 MzIsIG0xNngzMik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTE2eDMyW3Rlc3RfdjUxMl06IGk4 eDMyLCB1OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2eDMyKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEo aTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBt MTZ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0ISh1MzJ4MTZb dGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwg aTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3QhKGYzMngxNlt0ZXN0X3Y1 MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYs IHUzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrIShtMzJ4MTZbdGVzdF92NTEy XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1 MzJ4MTYsIGYzMngxNik7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpNjR4OFt0ZXN0X3Y1 MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2 eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAor LSAgICBtMzJ4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAg aXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nh c3QhKAorLSAgICB1NjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4 LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0g ICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIGY2 NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNp emV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBmNjR4OFt0ZXN0X3Y1MTJdOiBpOHg4 LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAg IG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4 OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwK Ky0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEo CistICAgIG02NHg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCist ICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1 MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgs CistICAgIGY2NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4 CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkxMjh4NFt0ZXN0X3Y1MTJdOiBpOHg0 LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAg IG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4 NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCist ICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAor LSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUxMjh4NFt0ZXN0X3Y1 MTJdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2 eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAor LSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAg bTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1 c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAg bTEyOHg0W3Rlc3RfdjUxMl06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkx Nng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAg IG02NHg0LAorLSAgICBmNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIGlz aXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9j YXN0ISgKKy0gICAgaXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBt OHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwK Ky0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAg IHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIHVzaXpleDgsCistICAgIG1z aXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdXNpemV4OFt0ZXN0X3Y1MTJdOiBp OHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCist ICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBt MzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgs CistICAgIGlzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2sh KAorLSAgICBtc2l6ZXg4W3Rlc3RfdjUxMl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAg ICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0 eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4 OAorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2Nhc3QvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjA4 ICswLDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMg Zm9yIHBvcnRhYmxlIDY0LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCist dXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTh4OFt0ZXN0X3Y2NF06 IHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgs CistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAg ICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNp emV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3Qh KAorLSAgICB1OHg4W3Rlc3RfdjY0XTogaTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBm MzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgs CistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4 CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTh4OFt0ZXN0X3Y2NF06IGk4eDgs CistICAgIHU4eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAg IGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4 OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwK Ky0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAor LSAgICBpMTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAg IHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4 NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCist ICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAg ICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21f Y2FzdCEoCistICAgIHUxNng0W3Rlc3RfdjY0XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4 NCwKKy0gICAgaTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCist ICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBm NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4 eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWlt cGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCistICAgIHU4 eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgaTMyeDQsCist ICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1 NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4 NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6 ZXg0CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGkzMngyW3Rlc3RfdjY0XTogaTh4 MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAg ICBtMTZ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0 eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwK Ky0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIs CistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTMyeDJbdGVzdF92 NjRdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2 eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAor LSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAg aTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAg dXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBmMzJ4 Mlt0ZXN0X3Y2NF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAor LSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAg bTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgy LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgy LAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNr ISgKKy0gICAgbTMyeDJbdGVzdF92NjRdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAor LSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAg dTMyeDIsCistICAgIGYzMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgy LAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwK Ky0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQgY21wIHRy YWl0cyBmb3IgdmVjdG9yIHR5cGVzCistCistI1ttYWNyb191c2VdCistbW9kIHBhcnRpYWxfZXE7 CistCistI1ttYWNyb191c2VdCistbW9kIGVxOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBwYXJ0 aWFsX29yZDsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgb3JkOworLQorLSNbbWFjcm9fdXNlXQor LW1vZCB2ZXJ0aWNhbDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvY21wL2VxLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2NtcC9lcS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL2VxLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwy NyArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEVxYCBmb3IgdmVjdG9yIHR5cGVzLgorLQorLW1h Y3JvX3J1bGVzISBpbXBsX2NtcF9lcSB7CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8 CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAg ICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBmb3IgJGlkIHt9CistICAgICAgICBpbXBsIGNyYXRlOjpj bXA6OkVxIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7fQorLQorLSAgICAgICAg dGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX2VxPl0geworLSAgICAg ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIGVxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6 Y21wOjpFcT4oXzogRSkge30KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb28oYSk7CistICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC9vcmQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9vcmQucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDQzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgT3JkYCBmb3IgdmVjdG9yIHR5cGVz LgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9vcmQgeworLSAgICAoCistICAgICAgICBbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAgJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQorLSAgICApID0+ IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIHdyYXBw ZXIgdGhhdCBpbXBsZW1lbnRzIGBPcmRgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBmbiBsZXhfb3JkKCZzZWxmKSAtPiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8 JGlkPiB7CistICAgICAgICAgICAgICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZCgqc2VsZikK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpjbXA6 Ok9yZCBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGNtcCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBjcmF0 ZTo6Y21wOjpPcmRlcmluZyB7CistICAgICAgICAgICAgICAgIG1hdGNoIHNlbGYucGFydGlhbF9j bXAob3RoZXIpIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUoeCkgPT4geCwKKy0gICAgICAg ICAgICAgICAgICAgIE5vbmUgPT4gdW5zYWZlIHsgY3JhdGU6OmhpbnQ6OnVucmVhY2hhYmxlX3Vu Y2hlY2tlZCgpIH0sCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9j bXBfb3JkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpPcmQ+KF86IEUpIHt9CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9vKGEucGFydGlhbF9sZXhfb3JkKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZv byhhLmxleF9vcmQoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlhbF9lcS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlhbF9lcS5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfZXEucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY1ICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgUGFydGlhbEVxYCBmb3IgdmVjdG9yIHR5cGVzLgorLQor LW1hY3JvX3J1bGVzISBpbXBsX2NtcF9wYXJ0aWFsX2VxIHsKKy0gICAgKAorLSAgICAgICAgWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAgKSA9 PiB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJz ZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODkyCistICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFy dGlhbGVxX25lX2ltcGwpXQorLSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8JGlk PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBlcSgm c2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgJGlkOjplcSgq c2VsZiwgKm90aGVyKS5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0g ICAgICAgICAgICAgICAgJGlkOjpuZSgqc2VsZiwgKm90aGVyKS5hbnkoKQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKKy0gICAgICAgICNbYWxs b3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCistICAgICAgICBpbXBsIGNyYXRlOjpjbXA6 OlBhcnRpYWxFcTxMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBo aWNhbGx5T3JkZXJlZDwkaWQ+IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg c2VsZi4wID09IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAg ICAgICAgICAgICAgIHNlbGYuMCAhPSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Nt cF9QYXJ0aWFsRXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRp YWxfZXEoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRm YWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVl KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoYSA9PSBhKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KCEoYSAhPSBhKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygp ID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgk ZmFsc2UpLnJlcGxhY2UoMCwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKGEgIT0gYik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IShhID09IGIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxf b3JkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFs X29yZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSwyMzAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBQYXJ0aWFsT3JkYCBmb3IgdmVjdG9y IHR5cGVzLgorLS8vIQorLS8vISBUaGlzIGltcGxlbWVudHMgYSBsZXhpY29ncmFwaGljYWwgb3Jk ZXIuCistCistbWFjcm9fcnVsZXMhIGltcGxfY21wX3BhcnRpYWxfb3JkIHsKKy0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFJldHVybnMgYSB3cmFw cGVyIHRoYXQgaW1wbGVtZW50cyBgUGFydGlhbE9yZGAuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIHBhcnRpYWxfbGV4X29yZCgmc2VsZikgLT4gTGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICAgICBMZXhpY29ncmFwaGljYWxs eU9yZGVyZWQoKnNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsT3JkPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+ PiBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+ IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4geworLSAgICAgICAgICAgICAgICBpZiBQYXJ0 aWFsRXE6OmVxKHNlbGYsIG90aGVyKSB7CistICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRl OjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIFBhcnRp YWxPcmQ6Omx0KHNlbGYsIG90aGVyKSB7CistICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRl OjpjbXA6Ok9yZGVyaW5nOjpMZXNzKQorLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgUGFydGlh bE9yZDo6Z3Qoc2VsZiwgb3RoZXIpIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6 OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpCistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgICAgICBOb25lCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbHQoJnNlbGYsIG90aGVy OiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBtX2x0ID0gc2VsZi4wLmx0 KG90aGVyLjApOworLSAgICAgICAgICAgICAgICBsZXQgbV9lcSA9IHNlbGYuMC5lcShvdGhlci4w KTsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgIGlmIG1fZXEuZXh0cmFjdChpKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICByZXR1cm4gbV9sdC5leHRyYWN0KGkpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIGZhbHNlCistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIGxlKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAg ICAgICAgICBzZWxmLmx0KG90aGVyKSB8IFBhcnRpYWxFcTo6ZXEoc2VsZiwgb3RoZXIpCistICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGdlKCZz ZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLmd0KG90 aGVyKSB8IFBhcnRpYWxFcTo6ZXEoc2VsZiwgb3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGd0KCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgbV9ndCA9IHNlbGYuMC5ndChvdGhlci4w KTsKKy0gICAgICAgICAgICAgICAgbGV0IG1fZXEgPSBzZWxmLjAuZXEob3RoZXIuMCk7CistICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAg ICAgICBpZiBtX2VxLmV4dHJhY3QoaSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu IG1fZ3QuZXh0cmFjdChpKTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBm YWxzZQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9f cnVsZXMhIHRlc3RfY21wX3BhcnRpYWxfb3JkX2ludCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7 ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAg ICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxPcmQ+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gcGFydGlhbF9sZXhfb3JkKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6dGVzdGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07CistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gY29uc3RhbnQgdmFsdWVzCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGEgPSAkaWQ6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBi ID0gJGlkOjpzcGxhdCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChh LnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBh cnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo Y3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xl eF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAxLCAyLCAzXTsgYiA9 IFszLCAyLCAxLCAwXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6 c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gJGlkOjpzcGxh dCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIGkgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKGksICgk aWQ6OmxhbmVzKCkgLSBpKSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCks IGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmlu Zzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlh bF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxf bGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6 OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g dmFyaWFibGUgdmFsdWVzOiBhID0gWzAsIDEsIDIsIDNdOyBiID0gWzAsIDEsIDIsIDRdCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBiID0gYi5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6Omxh bmVzKCkgLSAxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLmV4dHJhY3QoJGlkOjps YW5lcygpIC0gMSkgKyAxIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBi LnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNv bWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxf bGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xl eF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpj bXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRp ZDo6bGFuZXMoKSA+IDIgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJs ZSB2YWx1ZXMgYSA9IFswLCAxLCAwLCAwXTsgYiA9IFswLCAxLCAyLCAzXQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYiA9IGE7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGEgPSBhLnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6 T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo Yi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRl cikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4 X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRp YWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6IGEgPSBbMCwgMSwgMiwgM107IGIgPSBbMCwgMSwg MywgMl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDIsIGEuZXh0cmFjdCgkaWQ6OmxhbmVzKCkgLSAxKSArIDEgYXMgJGVs ZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9v cmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpH cmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlh bF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIu cGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgdGVz dF9jbXBfcGFydGlhbF9vcmRfbWFzayB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2Nv dW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgdGVzdF9p ZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxPcmQ+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gcGFydGlhbF9sZXhfb3JkKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6dGVzdGluZzo6dXRpbHM6Ont0ZXN0X2NtcH07CistICAgICAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpjbXA6Ok9yZGVyaW5nOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGNvbnN0YW50IHZhbHVlcworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0g JGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6 OnNwbGF0KHRydWUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFy dGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRl cikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3Jk KCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOgorLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGEgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdOworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGIgPSBbZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0KKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoJGlkOjpsYW5lcygpIC0gMSwgdHJ1ZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5w YXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KE9yZGVyaW5nOjpMZXNzKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5w YXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9v cmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpF cXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhf b3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyB2YXJpYWJsZSB2YWx1ZXM6CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9IFt0 cnVlLCB0cnVlLCB0cnVlLCBmYWxzZV07CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYiA9 IFt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIg PSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxh Y2UoJGlkOjpsYW5lcygpIC0gMSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlh bF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRl cmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFy dGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFs KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMiB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlcworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBhID0gW2ZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiID0gW2ZhbHNlLCB0cnVlLCB0cnVlLCB0 cnVlXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0 KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gJGlkOjpz cGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgx LCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgwLCBm YWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9s ZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQo KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6 R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRp YWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4 X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVy aW5nOjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2NtcC92ZXJ0aWNhbC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9jbXAvdmVydGljYWwucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNhbC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMTE0ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVj dG9yIGNvbXBhcmlzb25zIHJldHVybmluZyB2ZWN0b3IgbWFza3MuCistCistbWFjcm9fcnVsZXMh IGltcGxfY21wX3ZlcnRpY2FsIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDppZGVudCwKKy0gICAgICAgICRtYXNrX3R5 OmlkZW50LAorLSAgICAgICAgJGlzX21hc2s6ZXhwciwoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIp IHwgJHRlc3RfdHQ6dHQKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAg ICAgICAgLy8vIExhbmUtd2lzZSBlcXVhbGl0eSBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBlcShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1h c2tfdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZXE7CistICAg ICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9lcShzZWxmLjAsIG90aGVyLjApIH0pCist ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgaW5lcXVhbGl0eSBj b21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBu ZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Omxsdm06OnNpbWRfbmU7CistICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2lt ZF9uZShzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg IC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgcHViIGZuIGx0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190 eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ3QsIHNpbWRfbHR9 OworLSAgICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7CistICAgICAgICAgICAgICAgICAgICBT aW1kKHVuc2FmZSB7IHNpbWRfZ3Qoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAg ICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2x0KHNl bGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbi1vci1lcXVhbHMgY29tcGFyaXNv bi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbGUoc2VsZiwg b3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjp7c2ltZF9nZSwgc2ltZF9sZX07CistICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsK Ky0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9nZShzZWxmLjAsIG90aGVy LjApIH0pCistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBT aW1kKHVuc2FmZSB7IHNpbWRfbGUoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRl ci10aGFuIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGd0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ3QsIHNpbWRfbHR9OworLSAgICAgICAgICAgICAg ICBpZiAkaXNfbWFzayB7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRf bHQoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2d0KHNlbGYuMCwgb3RoZXIuMCkgfSkK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGdyZWF0ZXItdGhhbi1vci1lcXVhbHMgY29tcGFyaXNvbi4KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZ2Uoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9nZSwg c2ltZF9sZX07CistICAgICAgICAgICAgICAgIGlmICRpc19tYXNrIHsKKy0gICAgICAgICAgICAg ICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNp bWRfZ2Uoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3Rf dHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfY21wX3ZlcnRpY2FsPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGNtcCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCByID0gYS5sdChiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZSA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmxlKGIp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdChmYWxzZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmd0KGIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEu Z2UoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5lcShiKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHIgPT0gZSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBhID0gYTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSBiOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IGU7CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0g YS5yZXBsYWNlKGksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi ID0gYi5yZXBsYWNlKGksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGks ICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2Uo aSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBlLnJlcGxh Y2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sdChi KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9kZWZhdWx0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2RlZmF1bHQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2RlZmF1bHQucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDMwICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgRGVmYXVsdGAgZm9yIHZlY3RvciB0eXBl cy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWZhdWx0IHsKKy0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAg ICAgICBpbXBsIERlZmF1bHQgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBTZWxmOjpz cGxhdCgkZWxlbV90eTo6ZGVmYXVsdCgpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRl Z2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf ZGVmYXVsdD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBkZWZhdWx0KCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShhLmV4dHJhY3QoaSksICRlbGVtX3R5OjpkZWZhdWx0KCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMTIgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGZvcm1hdHRp bmcgQVBJcworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBkZWJ1ZzsKKy0jW21hY3JvX3VzZV0KKy1t b2QgbG93ZXJfaGV4OworLSNbbWFjcm9fdXNlXQorLW1vZCB1cHBlcl9oZXg7CistI1ttYWNyb191 c2VdCistbW9kIG9jdGFsOworLSNbbWFjcm9fdXNlXQorLW1vZCBiaW5hcnk7CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9iaW5hcnkucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvZm10L2JpbmFyeS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTQgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnQgT2N0YWwgZm9ybWF0dGluZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9i aW5hcnkgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6QmluYXJ5 IGZvciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9p bl9wdWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0 ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgeworLSAgICAgICAg ICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OworLSAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICBpZiBp ID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5m bXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAi KSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiEgeworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9iaW5hcnk+XSB7CistICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIGZuIGJpbmFyeSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1 c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307CistICAgICAgICAgICAgICAgICAg ICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNifSIsIHYpLnVud3JhcCgp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6 bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwg c3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRl KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5n OjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6 I2J9Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9kZWJ1Zy5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsNjAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnQgZGVidWcgZm9ybWF0 dGluZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9kZWJ1Z190ZXN0cyB7CistICAgIChbJGVs ZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4g eworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9k ZWJ1Zz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZGVidWcoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlW ZWN9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3Ry aW5nPFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpm bXQ6OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpkZWZhdWx0 KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3 KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6P30iLCB2KS51 bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRpbnlT dHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJlZywg Int9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53 cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVu dW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlu eVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0 IGUsICJ7Oj99Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZm10 X2RlYnVnIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVu dCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6OkRlYnVnIGZv ciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9w dWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6 Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgeworLSAgICAgICAgICAg ICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OworLSAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICBpZiBpID4g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQo Zik/OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbF9mbXRfZGVidWdfdGVz dHMhKFskZWxlbV90eTsgJGVsZW1fY291bnRdOiAkaWQgfCAkdGVzdF90dCk7CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQv bG93ZXJfaGV4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9s b3dlcl9oZXgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDU0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50IGBMb3dlckhleGAgZm9ybWF0dGluZwor LQorLW1hY3JvX3J1bGVzISBpbXBsX2ZtdF9sb3dlcl9oZXggeworLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0g ICAgICAgIGltcGwgY3JhdGU6OmZtdDo6TG93ZXJIZXggZm9yICRpZCB7CistICAgICAgICAgICAg I1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAg ICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+ IGNyYXRlOjpmbXQ6OlJlc3VsdCB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwg c3RyaW5naWZ5ISgkaWQpKT87CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2Nv dW50IHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB3cml0ZSEoZiwgIiwgIik/OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf Zm10X2xvd2VyX2hleD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbG93 ZXJfaGV4KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5 U3RyaW5nLEFycmF5VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJp bmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBzID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgd3JpdGUhKCZtdXQgcywgIns6I3h9IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVu d3JhcCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChi ZWcuYXNfc3RyKCkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193 aXRoKCIpIikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlu eVN0cmluZzsgNjRdPgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShi ZWcuYXNfc3RyKCksICIiKS5yZXBsYWNlKCIpIiwgIiIpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5zcGxpdCgiLCIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8 IFRpbnlTdHJpbmc6OmZyb20odi50cmltKCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuY29sbGVjdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEocy5sZW4oKSwgJGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig KGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojeH0iLCB2LmV4dHJhY3QoaW5k ZXgpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBl KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQv b2N0YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L29jdGFs LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvb2N0YWwucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU0ICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50IE9jdGFsIGZvcm1hdHRpbmcKKy0KKy1tYWNyb19ydWxlcyEg aW1wbF9mbXRfb2N0YWwgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmZt dDo6T2N0YWwgZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdf aW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAm bXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Cist ICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87CistICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAg ICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/ OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRy YWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgd3Jp dGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lm ISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X29jdGFsPl0geworLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBvY3RhbF9oZXgoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OworLSAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEyXT47 CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVmYXVs dCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpu ZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojb30iLCB2 KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9IFRp bnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGJl ZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpLnJlcGxhY2UoIiki LCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCIsIikKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSku dW53cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigp LmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0g VGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgm bXV0IGUsICJ7OiNvfSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ZtdC91cHBlcl9oZXgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU0ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50IGBVcHBlckhleGAgZm9ybWF0dGluZworLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zt dF91cHBlcl9oZXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6 VXBwZXJIZXggZm9yICRpZCB7CistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdf aW5saW5lX2luX3B1YmxpY19pdGVtcyldCistICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAm bXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Cist ICAgICAgICAgICAgICAgIHdyaXRlIShmLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87CistICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAg ICAgIGlmIGkgPiAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/ OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRy YWN0KGkpLmZtdChmKT87CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgd3Jp dGUhKGYsICIpIikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lm ISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK Ky0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X3VwcGVyX2hleD5dIHsKKy0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gdXBwZXJfaGV4KCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVjfTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUx Ml0+OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJGVsZW1fdHk6OmRl ZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzID0gVGlueVN0cmlu Zzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgcywgIns6I1h9 IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcg PSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11 dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIiKS5yZXBsYWNl KCIpIiwgIiIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdCgiLCIpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZyb20odi50cmlt KCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29sbGVjdCgpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlkOjpsYW5lcygp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0 ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg ZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoJm11dCBlLCAiezojWH0iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50YXRpb25zIG9mIHRoZSBg RnJvbWAgYW5kIGBJbnRvYCB0cmFpdHMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZnJvbV9hcnJh eTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZnJvbV92ZWN0b3I7CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Zyb20vZnJvbV9hcnJheS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTI0ICsw LDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgRnJvbTxbVDsgTl0+YCBhbmQgYEludG88W1Q7IE5dPmAg Zm9yIHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2FycmF5IHsKKy0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0CistICAgICB8ICgkbm9uX2RlZmF1bHRfYXJyYXk6ZXhwciwgJG5vbl9kZWZhdWx0X3Zl YzpleHByKSkgPT4geworLSAgICAgICAgaW1wbCBGcm9tPFskZWxlbV90eTsgJGVsZW1fY291bnRd PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9t KGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVs ZW1fY291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgVSB7IGFycmF5IH0udmVjIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIEZyb208JGlkPiBmb3IgWyRl bGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGZyb20odmVjOiAkaWQpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bmlvbiBV IHsKKy0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwK Ky0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyB2ZWMgfS5hcnJheSB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklYTUU6IGBJbnRvOjppbnRvYCBpcyBub3QgaW5s aW5lLCBidXQgZHVlIHRvCistICAgICAgICAvLyB0aGUgYmxhbmtldCBpbXBsIGluIGBzdGRgLCB3 aGljaCBpcyBub3QKKy0gICAgICAgIC8vIG1hcmtlZCBgZGVmYXVsdGAsIHdlIGNhbm5vdCBvdmVy cmlkZSBpdCBoZXJlIHdpdGgKKy0gICAgICAgIC8vIHNwZWNpYWxpemF0aW9uLgorLSAgICAgICAg LyoKKy0gICAgICAgIGltcGwgSW50bzxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaW50byhzZWxmKSAtPiBb JGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7CistICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAg ICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAorLSAgICAg ICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgVSB7IHZlYzogc2VsZiB9LmFycmF5IH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICBpbXBsIEludG88JGlkPiBmb3IgWyRlbGVtX3R5OyAkZWxl bV9jb3VudF0geworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGludG8o c2VsZikgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAg ICAgICAgICBhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCistICAgICAgICAgICAgICAg ICAgICB2ZWM6ICRpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyBVIHsgYXJyYXk6IHNlbGYgfS52ZWMgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgICAgICovCistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3Rf dHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgLy8gQ29t cGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCistICAg ICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAgICAg ICBtb2QgWzwkaWQgX2Zyb20+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG1pcmksIGlnbm9yZSldCistICAgICAgICAgICAgICAgICAgICBmbiBhcnJheSgpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjOiAkaWQgPSBEZWZhdWx0OjpkZWZhdWx0 KCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9y IGFycmF5cyB3aXRoIG1vcmUgdGhhbiAzMgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVs ZW1lbnRzLgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZSBiZWNhdXNlIHdlIG5ldmVyIHRha2UgYSByZWZlcmVuY2UgdG8gYW55Cist ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5pbml0aWFsaXplZCBlbGVtZW50LgorLSAgICAg ICAgICAgICAgICAgICAgICAgIHVuaW9uIFcgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG90aGVyOiAoKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5ID0gVyB7IG90aGVyOiAoKSB9OworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGRlZmF1bHQ6ICRlbGVtX3R5ID0gRGVmYXVsdDo6ZGVmYXVsdCgp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBhcnJheS5vdGhlciBpcyB0 aGUgYWN0aXZlIG1lbWJlciBhbmQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5p dGlhbGl6ZWQgc28gd2UgY2FuIHRha2UgYSByZWZlcmVuY2UgdG8gaXQ6CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBwID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZtdXQgYXJyYXkub3RoZXIgYXMgKm11dCAoKSBhcyAqbXV0ICRlbGVtX3R5Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIG5vdGU6IGRlZmF1bHQgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBmb3IKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gJGVsZW1fdHk6CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6 cHRyOjp3cml0ZShwLndyYXBwaW5nX2FkZChpKSwgZGVmYXVsdCkKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gbm90ZTogdGhlIGFycmF5IHZhcmlhbnQgb2YgdGhlIHVuaW9uIGlzIHBy b3Blcmx5CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQ6CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9IHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFycmF5LmFycmF5CistICAgICAgICAgICAgICAgICAgICAgICAgfTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhcnJheVswXSA9ICRub25fZGVmYXVsdF9hcnJh eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gdmVjLnJlcGxhY2UoMCwgJG5v bl9kZWZhdWx0X3ZlYyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlY19mcm9t X2FycmF5ID0gJGlkOjpmcm9tKGFycmF5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHZlY19mcm9tX2FycmF5LCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBhcnJheV9mcm9tX3ZlYworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDxbJGVsZW1f dHk7ICRlbGVtX2NvdW50XT46OmZyb20odmVjKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAv LyBGSVhNRTogV29ya2Fyb3VuZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFuIDMyCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMuCistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGFycmF5X2Zyb21fdmVjW2ldLCBhcnJheVtpXSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWNfZnJvbV9pbnRv X2FycmF5OiAkaWQgPSBhcnJheS5pbnRvKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2ZWNfZnJvbV9pbnRvX2FycmF5LCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBhcnJheV9mcm9tX2ludG9fdmVjOiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9IHZlYy5pbnRvKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1vcmUgdGhhbiAz MgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLgorLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShhcnJheV9mcm9tX2ludG9fdmVjW2ldLCBhcnJheVtpXSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9t X3ZlY3Rvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zy b21fdmVjdG9yLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw2NyArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEZyb21gIGFuZCBgSW50b2Ag Zm9yIHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX3ZlY3RvciB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dAorLSAgICAgfCAkc291cmNlOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEZyb208 JHNvdXJjZT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gZnJvbShzb3VyY2U6ICRzb3VyY2UpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBmbiBz dGF0aWNfYXNzZXJ0X3NhbWVfbnVtYmVyX29mX2xhbmVzPFQsIFU+KCkKKy0gICAgICAgICAgICAg ICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgICAgIFQ6IGNyYXRlOjpzZWFsZWQ6OlNpbWQsCist ICAgICAgICAgICAgICAgICAgICBVOiBjcmF0ZTo6c2VhbGVkOjpTaW1kPExhbmVzVHlwZSA9IFQ6 OkxhbmVzVHlwZT4sCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfY2FzdDsKKy0gICAgICAgICAgICAg ICAgc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczo6PCRpZCwgJHNvdXJjZT4oKTsK Ky0gICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2Nhc3Qoc291cmNlLjApIH0pCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklYTUU6IGBJbnRvOjpp bnRvYCBpcyBub3QgaW5saW5lLCBidXQgZHVlIHRvIHRoZSBibGFua2V0IGltcGwgaW4KKy0gICAg ICAgIC8vIGBzdGRgLCB3aGljaCBpcyBub3QgbWFya2VkIGBkZWZhdWx0YCwgd2UgY2Fubm90IG92 ZXJyaWRlIGl0IGhlcmUKKy0gICAgICAgIC8vIHdpdGggc3BlY2lhbGl6YXRpb24uCistCistICAg ICAgICAvKgorLSAgICAgICAgICAgaW1wbCBJbnRvPCRpZD4gZm9yICRzb3VyY2UgeworLSAgICAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgIGZuIGludG8oc2VsZikgLT4gJGlk IHsKKy0gICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9jYXN0KHNlbGYpIH0KKy0gICAg ICAgICAgICAgICB9CistICAgICAgICAgICB9CistICAgICAgICAqLworLQorLSAgICAgICAgdGVz dF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zyb21fICRzb3VyY2U+XSB7Cist ICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb20oKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRzb3VyY2U6OmxhbmVzKCkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzb3VyY2U6ICRzb3VyY2UgPSBEZWZhdWx0Ojpk ZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzogJGlkID0gRGVmYXVs dDo6ZGVmYXVsdCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpm cm9tKHNvdXJjZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShlLCB2ZWMp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlOiAkaWQgPSBzb3VyY2UuaW50bygp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZSwgdmVjKTsKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV92ZWN0b3JzIHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0CistICAgICB8ICQoJHNvdXJjZTppZGVudCksKikgPT4geworLSAgICAgICAgJCgK Ky0gICAgICAgICAgICBpbXBsX2Zyb21fdmVjdG9yISgKKy0gICAgICAgICAgICAgICAgWyRlbGVt X3R5OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0ZXN0X3R0IHwgJHNvdXJjZQorLSAgICAgICAgICAg ICk7CistICAgICAgICApKgorLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2hhc2gucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDQ5ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgSGFzaGAgZm9yIHZlY3RvciB0eXBl cy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9oYXNoIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsg JGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAg ICBpbXBsIGNyYXRlOjpoYXNoOjpIYXNoIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hlcj4oJnNlbGYsIHN0 YXRlOiAmbXV0IEgpIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVuaW9uIEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFskZWxlbV90 eTsgJGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIEEgeyB2ZWM6ICpzZWxm IH0uZGF0YS5oYXNoKHN0YXRlKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2hhc2g+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gaGFzaCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntIYXNoLCBIYXNoZXJ9OworLSAgICAgICAgICAgICAg ICAgICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpoYXNoOjp7U2lwSGFzaGVyMTN9OworLSAgICAgICAgICAgICAgICAgICAgICAg IHR5cGUgQSA9IFskZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYTogQSA9IFs0MiBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8QT4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRpZD4oKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFfaGFzaCA9IFNpcEhhc2hlcjEzOjpuZXcoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZfaGFzaCA9IGFfaGFzaC5jbG9uZSgp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGEuaGFzaCgmbXV0IGFfaGFzaCk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZWdlciB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4K Ky0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIHYuaGFzaCgmbXV0IHZfaGFzaCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhX2hhc2guZmluaXNoKCksIHZfaGFzaC5maW5p c2goKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2Jp dHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU5ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50YXRp b24gb2YgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYC4KKy0KKy0vLy8gU2FmZSBsb3NzbGVzcyBi aXR3aXNlIGNvbnZlcnNpb24gZnJvbSBgVGAgdG8gYFNlbGZgLgorLSNbY2ZnX2F0dHIoZG9jX2Nm ZywgZG9jKGNmZyhmZWF0dXJlID0gImludG9fYml0cyIpKSldCistcHViIHRyYWl0IEZyb21CaXRz PFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIC8vLyBTYWZlIGxvc3NsZXNzIGJpdHdp c2UgdHJhbnNtdXRlIGZyb20gYFRgIHRvIGBTZWxmYC4KKy0gICAgZm4gZnJvbV9iaXRzKHQ6IFQp IC0+IFNlbGY7CistfQorLQorLS8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2UgY29udmVyc2lvbiBm cm9tIGBTZWxmYCB0byBgVGAuCistI1tjZmdfYXR0cihkb2NfY2ZnLCBkb2MoY2ZnKGZlYXR1cmUg PSAiaW50b19iaXRzIikpKV0KKy1wdWIgdHJhaXQgSW50b0JpdHM8VD46IGNyYXRlOjptYXJrZXI6 OlNpemVkIHsKKy0gICAgLy8vIFNhZmUgbG9zc2xlc3MgYml0d2lzZSB0cmFuc211dGUgZnJvbSBg c2VsZmAgdG8gYFRgLgorLSAgICBmbiBpbnRvX2JpdHMoc2VsZikgLT4gVDsKKy19CistCistLy8v IGBGcm9tQml0c2AgaW1wbGllcyBgSW50b0JpdHNgLgorLWltcGw8VCwgVT4gSW50b0JpdHM8VT4g Zm9yIFQKKy13aGVyZQorLSAgICBVOiBGcm9tQml0czxUPiwKKy17CistICAgICNbaW5saW5lXQor LSAgICBmbiBpbnRvX2JpdHMoc2VsZikgLT4gVSB7CistICAgICAgICBkZWJ1Z19hc3NlcnQhKGNy YXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpID09IGNyYXRlOjptZW06OnNpemVfb2Y6OjxVPigp KTsKKy0gICAgICAgIFU6OmZyb21fYml0cyhzZWxmKQorLSAgICB9CistfQorLQorLS8vLyBgRnJv bUJpdHNgIGFuZCBgSW50b0JpdHNgIGFyZSByZWZsZXhpdmUKKy1pbXBsPFQ+IEZyb21CaXRzPFQ+ IGZvciBUIHsKKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGZyb21fYml0cyh0OiBTZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgIHQKKy0gICAgfQorLX0KKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbWFj cm9zOworLQorLW1vZCB2MTY7CistcHViIHVzZSBzZWxmOjp2MTY6Oio7CistCistbW9kIHYzMjsK Ky1wdWIgdXNlIHNlbGY6OnYzMjo6KjsKKy0KKy1tb2QgdjY0OworLXB1YiB1c2Ugc2VsZjo6djY0 OjoqOworLQorLW1vZCB2MTI4OworLXB1YiB1c2Ugc2VsZjo6djEyODo6KjsKKy0KKy1tb2QgdjI1 NjsKKy1wdWIgdXNlIHNlbGY6OnYyNTY6Oio7CistCistbW9kIHY1MTI7CistcHViIHVzZSBzZWxm Ojp2NTEyOjoqOworLQorLW1vZCBhcmNoX3NwZWNpZmljOworLXB1YiB1c2Ugc2VsZjo6YXJjaF9z cGVjaWZpYzo6KjsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2lu dG9fYml0cy9hcmNoX3NwZWNpZmljLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNDUgKzAsMCBA QAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGJldHdlZW4gcG9ydGFibGUgdmVjdG9y IHR5cGVzIGFuZCB0aGUKKy0vLyEgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZlY3RvciB0eXBlcy4K Ky0jW3J1c3RmbXQ6OnNraXBdCistCistLy8gRklYTUU6IE1JUFMgRnJvbUJpdHMvSW50b0JpdHMK Ky0KKy0jW2FsbG93KHVudXNlZCldCistdXNlIGNyYXRlOjoqOworLQorLS8vLyBUaGlzIG1hY3Jv IGltcGxlbWVudHMgRnJvbUJpdHMgZm9yIHRoZSBwb3J0YWJsZSBhbmQgdGhlIGFyY2hpdGVjdHVy ZQorLS8vLyBzcGVjaWZpYyB2ZWN0b3IgdHlwZXMuCistLy8vCistLy8vIFRoZSAibGVhZiIgY2Fz ZSBpcyBhdCB0aGUgYm90dG9tLCBhbmQgdGhlIG1vc3QgZ2VuZXJpYyBjYXNlIGlzIGF0IHRoZSB0 b3AuCistLy8vIFRoZSBnZW5lcmljIGNhc2UgaXMgc3BsaXQgaW50byBzbWFsbGVyIGNhc2VzIHJl Y3Vyc2l2ZWx5LgorLW1hY3JvX3J1bGVzISBpbXBsX2FyY2ggeworLSAgICAoWyRhcmNoX2hlYWRf aTppZGVudFskYXJjaF9oZWFkX3R0OnR0XTogJCgkYXJjaF9oZWFkX3R5OmlkZW50KSwqXSwKKy0g ICAgICQoWyRhcmNoX3RhaWxfaTppZGVudFskYXJjaF90YWlsX3R0OnR0XTogJCgkYXJjaF90YWls X3R5OmlkZW50KSwqXSksKiB8CistICAgICBmcm9tOiAkKCRmcm9tX3R5OmlkZW50KSwqIHwgaW50 bzogJCgkaW50b190eTppZGVudCksKiB8CistICAgICB0ZXN0OiAkdGVzdF90dDp0dCkgPT4gewor LSAgICAgICAgaW1wbF9hcmNoISgKKy0gICAgICAgICAgICBbJGFyY2hfaGVhZF9pWyRhcmNoX2hl YWRfdHRdOiAkKCRhcmNoX2hlYWRfdHkpLCpdIHwKKy0gICAgICAgICAgICBmcm9tOiAkKCRmcm9t X3R5KSwqIHwKKy0gICAgICAgICAgICBpbnRvOiAkKCRpbnRvX3R5KSwqIHwKKy0gICAgICAgICAg ICB0ZXN0OiAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfYXJjaCEoCistICAg ICAgICAgICAgJChbJGFyY2hfdGFpbF9pWyRhcmNoX3RhaWxfdHRdOiAkKCRhcmNoX3RhaWxfdHkp LCpdKSwqIHwKKy0gICAgICAgICAgICBmcm9tOiAkKCRmcm9tX3R5KSwqIHwKKy0gICAgICAgICAg ICBpbnRvOiAkKCRpbnRvX3R5KSwqIHwKKy0gICAgICAgICAgICB0ZXN0OiAkdGVzdF90dAorLSAg ICAgICAgKTsKKy0gICAgfTsKKy0gICAgKFskYXJjaDppZGVudFskYXJjaF90dDp0dF06ICQoJGFy Y2hfdHk6aWRlbnQpLCpdIHwKKy0gICAgIGZyb206ICQoJGZyb21fdHk6aWRlbnQpLCogfCBpbnRv OiAkKCRpbnRvX3R5OmlkZW50KSwqIHwKKy0gICAgIHRlc3Q6ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICAvLyBub3RlOiBpZiB0YXJnZXQgaXMgImFybSIsICIrdjcsK25lb24iIG11c3QgYmUg ZW5hYmxlZAorLSAgICAgICAgLy8gYW5kIHRoZSBzdGQgbGlicmFyeSBtdXN0IGJlIHJlY29tcGls ZWQgd2l0aCB0aGVtCistICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAgICAgbm90KHRhcmdl dF9hcmNoID0gImFybSIpLAorLSAgICAgICAgICAgIGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJ2NyIs IHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorLSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9 ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSkKKy0gICAgICAgICldCistICAgICAgICAvLyBu b3RlOiBpZiB0YXJnZXQgaXMgInBvd2VycGMiLCAiYWx0aXZlYyIgbXVzdCBiZSBlbmFibGVkCist ICAgICAgICAvLyBhbmQgdGhlIHN0ZCBsaWJyYXJ5IG11c3QgYmUgcmVjb21waWxlZCB3aXRoIGl0 CistICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAgICAgbm90KHRhcmdldF9hcmNoID0gInBv d2VycGMiKSwKKy0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAiYWx0aXZlYyIsIGZl YXR1cmUgPSAiY29yZV9hcmNoIiksCistICAgICAgICApKV0KKy0gICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gJGFyY2hfdHQpXQorLSAgICAgICAgdXNlIGNyYXRlOjphcmNoOjokYXJjaDo6ewor LSAgICAgICAgICAgICQoJGFyY2hfdHkpLCoKKy0gICAgICAgIH07CistCistICAgICAgICAjW2Nm ZyhhbnkoCistICAgICAgICAgICAgbm90KHRhcmdldF9hcmNoID0gImFybSIpLAorLSAgICAgICAg ICAgIGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAor LSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24p KSkKKy0gICAgICAgICldCistICAgICAgICAjW2NmZyhhbnkoCistICAgICAgICAgICAgbm90KHRh cmdldF9hcmNoID0gInBvd2VycGMiKSwKKy0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUg PSAiYWx0aXZlYyIsIGZlYXR1cmUgPSAiY29yZV9hcmNoIiksCistICAgICAgICApKV0KKy0gICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gJGFyY2hfdHQpXQorLSAgICAgICAgaW1wbF9hcmNoISgk KCRhcmNoX3R5KSwqIHwgJCgkZnJvbV90eSksKiB8ICQoJGludG9fdHkpLCogfAorLSAgICAgICAg ICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7CistICAgIH07CistICAgICgkYXJjaF9oZWFkOmlk ZW50LCAkKCRhcmNoX3RhaWw6aWRlbnQpLCogfCAkKCRmcm9tX3R5OmlkZW50KSwqCistICAgICB8 ICQoJGludG9fdHk6aWRlbnQpLCogfCB0ZXN0OiAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAg aW1wbF9hcmNoISgkYXJjaF9oZWFkIHwgJCgkZnJvbV90eSksKiB8ICQoJGludG9fdHkpLCogfAor LSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2FyY2gh KCQoJGFyY2hfdGFpbCksKiB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRvX3R5KSwqIHwKKy0gICAg ICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOworLSAgICB9OworLSAgICAoJGFyY2hfaGVh ZDppZGVudCB8ICQoJGZyb21fdHk6aWRlbnQpLCogfCAkKCRpbnRvX3R5OmlkZW50KSwqIHwKKy0g ICAgIHRlc3Q6ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsX2Zyb21fYml0cyEoJGFy Y2hfaGVhZFskdGVzdF90dF06ICQoJGZyb21fdHkpLCopOworLSAgICAgICAgaW1wbF9pbnRvX2Jp dHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRpbnRvX3R5KSwqKTsKKy0gICAgfTsKKy19Cist CistLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBJbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSA2 NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXM6CistCistLy8gRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxl bWVudCB0eXBlcworLS8vIEZJWE1FOiBhcm0vYWFyY2ggZmxvYXQxNng0X3QgbWlzc2luZworLWlt cGxfYXJjaCEoCistICAgIFsKKy0gICAgICAgIGFybVsiYXJtIl06IGludDh4OF90LAorLSAgICAg ICAgdWludDh4OF90LAorLSAgICAgICAgcG9seTh4OF90LAorLSAgICAgICAgaW50MTZ4NF90LAor LSAgICAgICAgdWludDE2eDRfdCwKKy0gICAgICAgIHBvbHkxNng0X3QsCistICAgICAgICBpbnQz MngyX3QsCistICAgICAgICB1aW50MzJ4Ml90LAorLSAgICAgICAgZmxvYXQzMngyX3QsCistICAg ICAgICBpbnQ2NHgxX3QsCistICAgICAgICB1aW50NjR4MV90CistICAgIF0sCistICAgIFsKKy0g ICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTogaW50OHg4X3QsCistICAgICAgICB1aW50OHg4X3Qs CistICAgICAgICBwb2x5OHg4X3QsCistICAgICAgICBpbnQxNng0X3QsCistICAgICAgICB1aW50 MTZ4NF90LAorLSAgICAgICAgcG9seTE2eDRfdCwKKy0gICAgICAgIGludDMyeDJfdCwKKy0gICAg ICAgIHVpbnQzMngyX3QsCistICAgICAgICBmbG9hdDMyeDJfdCwKKy0gICAgICAgIGludDY0eDFf dCwKKy0gICAgICAgIHVpbnQ2NHgxX3QsCistICAgICAgICBmbG9hdDY0eDFfdAorLSAgICBdIHwg ZnJvbTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDQsCistICAgIHUx Nng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwK Ky0gICAgbTMyeDIgfCBpbnRvOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBpMTZ4NCwKKy0gICAg dTE2eDQsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIgfCB0ZXN0OiB0ZXN0 X3Y2NAorLSk7CistCistLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBJbXBsZW1lbnRhdGlv bnMgZm9yIHRoZSAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzOgorLQorLS8vIEZJWE1FOiBhcm0v YWFyY2ggZmxvYXQxNng4X3QgbWlzc2luZworLS8vIEZJWE1FOiBwcGMgdmVjdG9yX3BpeGVsIG1p c3NpbmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX0Zsb2F0MTYgbWlzc2luZworLS8vIEZJWE1F OiBwcGM2NCB2ZWN0b3Jfc2lnbmVkX2xvbmdfbG9uZyBtaXNzaW5nCistLy8gRklYTUU6IHBwYzY0 IHZlY3Rvcl91bnNpZ25lZF9sb25nX2xvbmcgbWlzc2luZworLS8vIEZJWE1FOiBwcGM2NCB2ZWN0 b3JfYm9vbF9sb25nX2xvbmcgbWlzc2luZworLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3Jfc2lnbmVk X19faW50MTI4IG1pc3NpbmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3Vuc2lnbmVkX19faW50 MTI4IG1pc3NpbmcKKy1pbXBsX2FyY2ghKAorLSAgICBbeDg2WyJ4ODYiXTogX19tMTI4LCBfX20x MjhpLCBfX20xMjhkXSwKKy0gICAgW3g4Nl82NFsieDg2XzY0Il06IF9fbTEyOCwgX19tMTI4aSwg X19tMTI4ZF0sCistICAgIFsKKy0gICAgICAgIGFybVsiYXJtIl06IGludDh4MTZfdCwKKy0gICAg ICAgIHVpbnQ4eDE2X3QsCistICAgICAgICBwb2x5OHgxNl90LAorLSAgICAgICAgaW50MTZ4OF90 LAorLSAgICAgICAgdWludDE2eDhfdCwKKy0gICAgICAgIHBvbHkxNng4X3QsCistICAgICAgICBp bnQzMng0X3QsCistICAgICAgICB1aW50MzJ4NF90LAorLSAgICAgICAgZmxvYXQzMng0X3QsCist ICAgICAgICBpbnQ2NHgyX3QsCistICAgICAgICB1aW50NjR4Ml90CistICAgIF0sCistICAgIFsK Ky0gICAgICAgIGFhcmNoNjRbImFhcmNoNjQiXTogaW50OHgxNl90LAorLSAgICAgICAgdWludDh4 MTZfdCwKKy0gICAgICAgIHBvbHk4eDE2X3QsCistICAgICAgICBpbnQxNng4X3QsCistICAgICAg ICB1aW50MTZ4OF90LAorLSAgICAgICAgcG9seTE2eDhfdCwKKy0gICAgICAgIGludDMyeDRfdCwK Ky0gICAgICAgIHVpbnQzMng0X3QsCistICAgICAgICBmbG9hdDMyeDRfdCwKKy0gICAgICAgIGlu dDY0eDJfdCwKKy0gICAgICAgIHVpbnQ2NHgyX3QsCistICAgICAgICBmbG9hdDY0eDJfdAorLSAg ICBdLAorLSAgICBbCistICAgICAgICBwb3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9zaWduZWRf Y2hhciwKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9jaGFyLAorLSAgICAgICAgdmVjdG9yX3Np Z25lZF9zaG9ydCwKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9zaG9ydCwKKy0gICAgICAgIHZl Y3Rvcl9zaWduZWRfaW50LAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2ludCwKKy0gICAgICAg IHZlY3Rvcl9mbG9hdAorLSAgICBdLAorLSAgICBbCistICAgICAgICBwb3dlcnBjNjRbInBvd2Vy cGM2NCJdOiB2ZWN0b3Jfc2lnbmVkX2NoYXIsCistICAgICAgICB2ZWN0b3JfdW5zaWduZWRfY2hh ciwKKy0gICAgICAgIHZlY3Rvcl9zaWduZWRfc2hvcnQsCistICAgICAgICB2ZWN0b3JfdW5zaWdu ZWRfc2hvcnQsCistICAgICAgICB2ZWN0b3Jfc2lnbmVkX2ludCwKKy0gICAgICAgIHZlY3Rvcl91 bnNpZ25lZF9pbnQsCistICAgICAgICB2ZWN0b3JfZmxvYXQsCistICAgICAgICB2ZWN0b3Jfc2ln bmVkX2xvbmcsCistICAgICAgICB2ZWN0b3JfdW5zaWduZWRfbG9uZywKKy0gICAgICAgIHZlY3Rv cl9kb3VibGUKKy0gICAgXSB8IGZyb206IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAg ICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0 eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEs CistICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBp NjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4 MSB8IHRlc3Q6IHRlc3RfdjEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2VycGNb InBvd2VycGMiXTogdmVjdG9yX2Jvb2xfY2hhcl0sCistICAgIFtwb3dlcnBjNjRbInBvd2VycGM2 NCJdOiB2ZWN0b3JfYm9vbF9jaGFyXSB8IGZyb206IG04eDE2LAorLSAgICBtMTZ4OCwKKy0gICAg bTMyeDQsCistICAgIG02NHgyLAorLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKKy0gICAgdTh4 MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAor LSAgICBmMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAg aTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIC8vIE1hc2tzOgorLSAgICBtOHgxNiB8IHRlc3Q6 IHRlc3RfdjEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2VycGNbInBvd2VycGMi XTogdmVjdG9yX2Jvb2xfc2hvcnRdLAorLSAgICBbcG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVj dG9yX2Jvb2xfc2hvcnRdIHwgZnJvbTogbTE2eDgsCistICAgIG0zMng0LAorLSAgICBtNjR4MiwK Ky0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBpMTZ4OCwKKy0g ICAgdTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIGk2 NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgx LAorLSAgICAvLyBNYXNrczoKKy0gICAgbTh4MTYsCistICAgIG0xNng4IHwgdGVzdDogdGVzdF92 MTI4CistKTsKKy0KKy1pbXBsX2FyY2ghKAorLSAgICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0 b3JfYm9vbF9pbnRdLAorLSAgICBbcG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xf aW50XSB8IGZyb206IG0zMng0LAorLSAgICBtNjR4MiwKKy0gICAgbTEyOHgxIHwgaW50bzogaTh4 MTYsCistICAgIHU4eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIGkzMng0LAor LSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAg ZjY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICAvLyBNYXNrczoKKy0gICAg bTh4MTYsCistICAgIG0xNng4LAorLSAgICBtMzJ4NCB8IHRlc3Q6IHRlc3RfdjEyOAorLSk7Cist CistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9ib29s X2xvbmddIHwgZnJvbTogbTY0eDIsCistICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAorLSAgICB1 OHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQs CistICAgIGYzMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAg ICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgLy8gTWFza3M6CistICAgIG04eDE2LAorLSAg ICBtMTZ4OCwKKy0gICAgbTMyeDQsCistICAgIG02NHgyIHwgdGVzdDogdGVzdF92MTI4CistKTsK Ky0KKy0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLS8vIEltcGxlbWVudGF0aW9ucyBmb3IgdGhl IDI1Ni1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy1pbXBsX2FyY2ghKAorLSAgICBbeDg2WyJ4 ODYiXTogX19tMjU2LCBfX20yNTZpLCBfX20yNTZkXSwKKy0gICAgW3g4Nl82NFsieDg2XzY0Il06 IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0gfCBmcm9tOiBpOHgzMiwKKy0gICAgdTh4MzIsCist ICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAg ICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0 eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwK Ky0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIgfCBpbnRvOiBpOHgzMiwKKy0gICAgdTh4MzIsCist ICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAg IGYzMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBpMTI4 eDIsCistICAgIHUxMjh4MiB8IHRlc3Q6IHRlc3RfdjI1NgorLSk7CistCistLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KKy0vLyBGSVhNRTogSW1wbGVtZW50YXRpb25zIGZvciB0aGUgNTEyLWJpdCB3 aWRlIHZlY3RvciB0eXBlcworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9t YWNyb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc0ICswLDAgQEAKKy0vLyEgTWFjcm9zIGlt cGxlbWVudGluZyBgRnJvbUJpdHNgCistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9iaXRzXyB7 CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVudCkgPT4geworLSAg ICAgICAgaW1wbCBjcmF0ZTo6YXBpOjppbnRvX2JpdHM6OkZyb21CaXRzPCRmcm9tX3R5PiBmb3Ig JGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tX2JpdHMo eDogJGZyb21fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoeCkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tX2JpdHNfICRm cm9tX3R5Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB0ZXN0KCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6eworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwdHI6OntyZWFkX3VuYWxpZ25lZH0sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lbTo6e3NpemVfb2YsIHplcm9lZH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9 OworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6SW50b0JpdHM7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzaXplX29mOjo8JGlkPigpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV9vZjo6PCRmcm9tX3R5PigpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB3ZSBuZXZlciBjcmVh dGUgYSByZWZlcmVuY2UgdG8KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB1bmluaXRpYWxp emVkIG1lbW9yeToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYTogJGZyb21fdHkgPSB1 bnNhZmUgeyB6ZXJvZWQoKSB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiXzA6 ICRpZCA9IGNyYXRlOjpGcm9tQml0czo6ZnJvbV9iaXRzKGEpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBiXzE6ICRpZCA9IGEuaW50b19iaXRzKCk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGVzZSBhcmUgYnl0ZS13aXNlIGVxdWFsLCB0aGF0IGlz LAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJpdCBwYXR0ZXJucyBhcmUg aWRlbnRpY2FsOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLnNpemVfb2Y6 OjwkaWQ+KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUg YmVjYXVzZSB3ZSBvbmx5IHJlYWQgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbWVtb3J5IGluIGJvdW5kcy4gQWxzbywgdGFraW5nIGEgcmVmZXJlbmNlIHRvCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBiX2lgIGlzIG9rIGJlY2F1c2UgdGhlIGZp ZWxkcyBhcmUgaW5pdGlhbGl6ZWQuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8wX3Y6IHU4ID0gcmVh ZF91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCZiXzAg YXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8xX3Y6IHU4 ID0gcmVhZF91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCZiXzEgYXMgKmNvbnN0ICRpZCBhcyAqY29uc3QgdTgpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC53cmFwcGluZ19hZGQoaSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGJfMF92LCBiXzFfdik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1h Y3JvX3J1bGVzISBpbXBsX2Zyb21fYml0cyB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRd OiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGlt cGxfZnJvbV9iaXRzXyEoJGlkWyR0ZXN0X3R0XTogJGZyb21fdHkpOworLSAgICAgICAgKSoKKy0g ICAgfQorLX0KKy0KKy0jW2FsbG93KHVudXNlZCldCistbWFjcm9fcnVsZXMhIGltcGxfaW50b19i aXRzIHsKKy0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCop ID0+IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX2JpdHNfISgkZnJvbV90 eVskdGVzdF90dF06ICRpZCk7CistICAgICAgICApKgorLSAgICB9CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjEyOC5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIzMiAr MCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZv ciBwb3J0YWJsZSAxMjgtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy0j W2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1pbXBsX2Zyb21fYml0cyEoCistICAgIGk4eDE2W3Rlc3RfdjEyOF06IHU4eDE2LAorLSAgICBt OHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQs CistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAg ICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUx Mjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHU4eDE2W3Rl c3RfdjEyOF06IGk4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAor LSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAg bTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgy LAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zy b21fYml0cyEobTh4MTZbdGVzdF92MTI4XTogbTE2eDgsIG0zMng0LCBtNjR4MiwgbTEyOHgxKTsK Ky0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxNng4W3Rlc3RfdjEyOF06IGk4eDE2LAorLSAg ICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMy eDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAor LSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAg IHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHUxNng4 W3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4 LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0g ICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02 NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBs X2Zyb21fYml0cyEobTE2eDhbdGVzdF92MTI4XTogbTMyeDQsIG02NHgyLCBtMTI4eDEpOworLQor LWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTMyeDRbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4 eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwK Ky0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAg IHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEy OHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTMyeDRbdGVz dF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIGYzMng0LAorLSAgICBt MzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIs CistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEKKy0pOworLWltcGxfZnJv bV9iaXRzISgKKy0gICAgZjMyeDRbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAg ICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMy eDQsCistICAgIHUzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAor LSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAg ICBtMTI4eDEKKy0pOworLWltcGxfZnJvbV9iaXRzIShtMzJ4NFt0ZXN0X3YxMjhdOiBtNjR4Miwg bTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGk2NHgyW3Rlc3RfdjEyOF06IGk4 eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwK Ky0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAg IG0zMng0LAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4 eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCist ICAgIHU2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCist ICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1 MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgZjY0eDIs CistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCist KTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGY2NHgyW3Rlc3RfdjEyOF06IGk4eDE2LAorLSAg ICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2 eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAor LSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAg IHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTY0eDJbdGVzdF92 MTI4XTogbTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxMjh4MVt0ZXN0X3Yx MjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAg dTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0 LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0g ICAgbTY0eDIsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0 cyEoCistICAgIHUxMjh4MVt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04 eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwK Ky0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAg IHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgbTEy OHgxCistKTsKKy0vLyBub3RlOiBtMTI4eDEgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZyb20gYWxs IHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KKy0vLyBoZXJlCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaW50b19iaXRzL3YxNi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsOSArMCwwIEBA CistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0 YWJsZSAxNi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLSNbYWxsb3co dW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNlIGNyYXRlOjoqOworLQorLWltcGxf ZnJvbV9iaXRzIShpOHgyW3Rlc3RfdjE2XTogdTh4MiwgbTh4Mik7CistaW1wbF9mcm9tX2JpdHMh KHU4eDJbdGVzdF92MTZdOiBpOHgyLCBtOHgyKTsKKy0vLyBub3RlOiBtOHgyIGNhbm5vdCBiZSBj b25zdHJ1Y3RlZCBmcm9tIGFsbCBpOHgyIG9yIHU4eDIgYml0IHBhdHRlcm5zCitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MjU2LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MjU2LnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjI1Ni5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjMy ICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMg Zm9yIHBvcnRhYmxlIDI1Ni1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQor LSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNlIGNyYXRlOjoqOwor LQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTh4MzJbdGVzdF92MjU2XTogdTh4MzIsCistICAg IG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBp MzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQs CistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0g ICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTh4 MzJbdGVzdF92MjU2XTogaTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUx NngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4 LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0g ICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOwor LWltcGxfZnJvbV9iaXRzIShtOHgzMlt0ZXN0X3YyNTZdOiBtMTZ4MTYsIG0zMng4LCBtNjR4NCwg bTEyOHgyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxNngxNlt0ZXN0X3YyNTZdOiBp OHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICB1MTZ4MTYsCistICAgIG0xNngx NiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCist ICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBp MTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEo CistICAgIHUxNngxNlt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMy LAorLSAgICBpMTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAor LSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAg ZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEy OHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTE2eDE2W3Rlc3RfdjI1Nl06IG0zMng4LCBtNjR4 NCwgbTEyOHgyKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkzMng4W3Rlc3RfdjI1Nl06 IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2 eDE2LAorLSAgICBtMTZ4MTYsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgs CistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAg ICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0 cyEoCistICAgIHUzMng4W3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4 MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4 LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0g ICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAg bTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGYzMng4W3Rlc3RfdjI1Nl06IGk4 eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2 LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgbTMyeDgsCist ICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBp MTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEo bTMyeDhbdGVzdF92MjU2XTogbTY0eDQsIG0xMjh4Mik7CistCistaW1wbF9mcm9tX2JpdHMhKAor LSAgICBpNjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAor LSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0g ICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgdTY0eDQsCistICAgIGY2 NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4 MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1NjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwK Ky0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0g ICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBt MzJ4OCwKKy0gICAgaTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgy LAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAg ICBmNjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAg ICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAg dTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0 LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4Mgor LSk7CistaW1wbF9mcm9tX2JpdHMhKG02NHg0W3Rlc3RfdjI1Nl06IG0xMjh4Mik7CistCistaW1w bF9mcm9tX2JpdHMhKAorLSAgICBpMTI4eDJbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMy LAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwK Ky0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAg IGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICB1MTI4 eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1MTI4eDJbdGVz dF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAor LSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAg ICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0 eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIG0xMjh4MgorLSk7CistLy8gbm90 ZTogbTEyOHgyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3Mg Yml0IHBhdHRlcm5zIGluCistLy8gaGVyZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0 cy92MzIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy0vLyEgYEZyb21CaXRz YCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDMyLWJpdCB3aWRl IHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2Fz bV9iaW5kZ2VuX3Rlc3QKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKGk4eDRb dGVzdF92MzJdOiB1OHg0LCBtOHg0LCBpMTZ4MiwgdTE2eDIsIG0xNngyKTsKKy1pbXBsX2Zyb21f Yml0cyEodTh4NFt0ZXN0X3YzMl06IGk4eDQsIG04eDQsIGkxNngyLCB1MTZ4MiwgbTE2eDIpOwor LWltcGxfZnJvbV9iaXRzIShtOHg0W3Rlc3RfdjMyXTogbTE2eDIpOworLQorLWltcGxfZnJvbV9i aXRzIShpMTZ4Mlt0ZXN0X3YzMl06IGk4eDQsIHU4eDQsIG04eDQsIHUxNngyLCBtMTZ4Mik7Cist aW1wbF9mcm9tX2JpdHMhKHUxNngyW3Rlc3RfdjMyXTogaTh4NCwgdTh4NCwgbTh4NCwgaTE2eDIs IG0xNngyKTsKKy0vLyBub3RlOiBtMTZ4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwg bTh4NCBiaXQgcGF0dGVybnMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEy LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMzIgKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFu ZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgNTEyLWJpdCB3aWRlIHZl Y3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9i aW5kZ2VuX3Rlc3QKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBp OHg2NFt0ZXN0X3Y1MTJdOiB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAg dTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBm MzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4 OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQK Ky0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTh4NjRbdGVzdF92NTEyXTogaTh4NjQsCist ICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAg ICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAg IGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4 eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEobTh4 NjRbdGVzdF92NTEyXTogbTE2eDMyLCBtMzJ4MTYsIG02NHg4LCBtMTI4eDQpOworLQorLWltcGxf ZnJvbV9iaXRzISgKKy0gICAgaTE2eDMyW3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwK Ky0gICAgbTh4NjQsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCist ICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAg ICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4eDQsCistICAgIHUx Mjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHUxNngzMlt0 ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICBpMTZ4MzIs CistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwK Ky0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAg ICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7Cist aW1wbF9mcm9tX2JpdHMhKG0xNngzMlt0ZXN0X3Y1MTJdOiBtMzJ4MTYsIG02NHg4LCBtMTI4eDQp OworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTMyeDE2W3Rlc3RfdjUxMl06IGk4eDY0LAor LSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAg ICBtMTZ4MzIsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAg IGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4 eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCist ICAgIHUzMngxNlt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAor LSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCist ICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAg IGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0x Mjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmMzJ4MTZbdGVzdF92NTEyXTogaTh4 NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIs CistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIG0zMngxNiwK Ky0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAg IGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRz IShtMzJ4MTZbdGVzdF92NTEyXTogbTY0eDgsIG0xMjh4NCk7CistCistaW1wbF9mcm9tX2JpdHMh KAorLSAgICBpNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0 LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYs CistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIHU2NHg4LAor LSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAg ICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTY0eDhbdGVzdF92NTEyXTog aTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4 MzIsCistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngx NiwKKy0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAor LSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21f Yml0cyEoCistICAgIGY2NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAg bTh4NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkz MngxNiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0 eDgsCistICAgIHU2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQs CistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMhKG02NHg4W3Rlc3RfdjUxMl06IG0x Mjh4NCk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTI4eDRbdGVzdF92NTEyXTogaTh4 NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIs CistICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwK Ky0gICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAg ICBtNjR4OCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRz ISgKKy0gICAgdTEyOHg0W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAgbTh4 NjQsCistICAgIGkxNngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngx NiwKKy0gICAgdTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgs CistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0g ICAgbTEyOHg0CistKTsKKy0vLyBub3RlOiBtMTI4eDQgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZy b20gYWxsIHRoZSBvdGhlciBtYXNrcyBiaXQgcGF0dGVybnMgaW4KKy0vLyBoZXJlCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NjQu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y2NC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y2NC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTgg KzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBm b3IgcG9ydGFibGUgNjQtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy0j W2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1pbXBsX2Zyb21fYml0cyEoaTh4OFt0ZXN0X3Y2NF06IHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4 NCwgbTE2eDQsIGkzMngyLCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBsX2Zyb21fYml0cyEo dTh4OFt0ZXN0X3Y2NF06IGk4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCB1 MzJ4MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBsX2Zyb21fYml0cyEobTh4OFt0ZXN0X3Y2NF06IG0x Nng0LCBtMzJ4Mik7CistCistaW1wbF9mcm9tX2JpdHMhKGkxNng0W3Rlc3RfdjY0XTogaTh4OCwg dTh4OCwgbTh4OCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7Cist aW1wbF9mcm9tX2JpdHMhKHUxNng0W3Rlc3RfdjY0XTogaTh4OCwgdTh4OCwgbTh4OCwgaTE2eDQs IG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7CistaW1wbF9mcm9tX2JpdHMhKG0x Nng0W3Rlc3RfdjY0XTogbTMyeDIpOworLQorLWltcGxfZnJvbV9iaXRzIShpMzJ4Mlt0ZXN0X3Y2 NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIHUzMngyLCBmMzJ4Miwg bTMyeDIpOworLWltcGxfZnJvbV9iaXRzISh1MzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04 eDgsIGkxNng0LCB1MTZ4NCwgbTE2eDQsIGkzMngyLCBmMzJ4MiwgbTMyeDIpOworLWltcGxfZnJv bV9iaXRzIShmMzJ4Mlt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCB1MTZ4NCwg bTE2eDQsIGkzMngyLCB1MzJ4MiwgbTMyeDIpOworLS8vIG5vdGU6IG0zMngyIGNhbm5vdCBiZSBj b25zdHJ1Y3RlZCBmcm9tIGFsbCBtMTZ4NCBvciBtOHg4IGJpdCBwYXR0ZXJucworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRp Y2FsIG1hdGggb3BlcmF0aW9ucworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBmbG9hdDsKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2MSArMCwwIEBA CistLy8hIEltcGxlbWVudHMgdmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0aCBvcGVyYXRpb25z LgorLQorLSNbbWFjcm9fdXNlXQorLW1vZCBhYnM7CistCistI1ttYWNyb191c2VdCistbW9kIGNv bnN0czsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgY29zOworLQorLSNbbWFjcm9fdXNlXQorLW1v ZCBleHA7CistCistI1ttYWNyb191c2VdCistbW9kIHBvd2Y7CistCistI1ttYWNyb191c2VdCist bW9kIGxuOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBtdWxfYWRkOworLQorLSNbbWFjcm9fdXNl XQorLW1vZCBtdWxfYWRkZTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgcmVjcHJlOworLQorLSNb bWFjcm9fdXNlXQorLW1vZCByc3FydGU7CistCistI1ttYWNyb191c2VdCistbW9kIHNpbjsKKy0K Ky0jW21hY3JvX3VzZV0KKy1tb2Qgc3FydDsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2Qgc3FydGU7 CistCistbWFjcm9fcnVsZXMhIGltcGxfZmxvYXRfY2F0ZWdvcnkgeworLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50LCAkbWFza190eTppZGVudCkgPT4g eworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBpc19uYW4oc2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICBz ZWxmLm5lKHNlbGYpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIHB1YiBmbiBpc19pbmZpbml0ZShzZWxmKSAtPiAkbWFza190eSB7CistICAg ICAgICAgICAgICAgIHNlbGYuZXEoU2VsZjo6SU5GSU5JVFkpIHwgc2VsZi5lcShTZWxmOjpORUdf SU5GSU5JVFkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiBpc19maW5pdGUoc2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAg ICAgICAgICAhKHNlbGYuaXNfbmFuKCkgfCBzZWxmLmlzX2luZmluaXRlKCkpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvYWJzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzMSArMCwwIEBACistLy8hIElt cGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGFic2AuCistCist bWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9hYnMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAg ICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQWJzb2x1dGUgdmFsdWUuCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGFicyhzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6YWJzOjpB YnM7CistICAgICAgICAgICAgICAgIEFiczo6YWJzKHNlbGYpCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfbWF0aF9hYnM+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYWJzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8uYWJzKCkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtbyA9ICRpZDo6c3BsYXQoLTEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobywgbW8uYWJzKCkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC9jb25zdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9jb25zdHMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29uc3Rz LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3NCArMCwwIEBACistbWFjcm9fcnVsZXMhIGltcGxf ZmxvYXRfY29uc3RzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBN YWNoaW5lIGVwc2lsb24gdmFsdWUuCistICAgICAgICAgICAgcHViIGNvbnN0IEVQU0lMT046ICRp ZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OkVQU0lMT04pOworLQorLSAgICAgICAgICAg IC8vLyBTbWFsbGVzdCBmaW5pdGUgdmFsdWUuCistICAgICAgICAgICAgcHViIGNvbnN0IE1JTjog JGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6TUlOKTsKKy0KKy0gICAgICAgICAgICAv Ly8gU21hbGxlc3QgcG9zaXRpdmUgbm9ybWFsIHZhbHVlLgorLSAgICAgICAgICAgIHB1YiBjb25z dCBNSU5fUE9TSVRJVkU6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1JTl9QT1NJ VElWRSk7CistCistICAgICAgICAgICAgLy8vIExhcmdlc3QgZmluaXRlIHZhbHVlLgorLSAgICAg ICAgICAgIHB1YiBjb25zdCBNQVg6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1B WCk7CistCistICAgICAgICAgICAgLy8vIE5vdCBhIE51bWJlciAoTmFOKS4KKy0gICAgICAgICAg ICBwdWIgY29uc3QgTkFOOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpOQU4pOwor LQorLSAgICAgICAgICAgIC8vLyBJbmZpbml0eSAo4oieKS4KKy0gICAgICAgICAgICBwdWIgY29u c3QgSU5GSU5JVFk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OklORklOSVRZKTsK Ky0KKy0gICAgICAgICAgICAvLy8gTmVnYXRpdmUgaW5maW5pdHkgKC3iiJ4pLgorLSAgICAgICAg ICAgIHB1YiBjb25zdCBORUdfSU5GSU5JVFk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6Ok5FR19JTkZJTklUWSk7CistCistICAgICAgICAgICAgLy8vIEFyY2hpbWVkZXMnIGNvbnN0 YW50ICjPgCkKKy0gICAgICAgICAgICBwdWIgY29uc3QgUEk6ICRpZCA9ICRpZDo6c3BsYXQoY29y ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkpOworLQorLSAgICAgICAgICAgIC8vLyDPgC8yCistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDX1BJXzIpOworLQorLSAgICAgICAgICAgIC8vLyDPgC8zCistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfMzogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDX1BJXzMpOworLQorLSAgICAgICAgICAgIC8vLyDPgC80CistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfNDogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDX1BJXzQpOworLQorLSAgICAgICAgICAgIC8vLyDPgC82CistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfNjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDX1BJXzYpOworLQorLSAgICAgICAgICAgIC8vLyDPgC84CistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfUElfODogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDX1BJXzgpOworLQorLSAgICAgICAgICAgIC8vLyAxL8+ACistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfMV9QSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDXzFfUEkpOworLQorLSAgICAgICAgICAgIC8vLyAyL8+ACistICAg ICAgICAgICAgcHViIGNvbnN0IEZSQUNfMl9QSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6Y29uc3RzOjpGUkFDXzJfUEkpOworLQorLSAgICAgICAgICAgIC8vLyAyL3NxcnQoz4Ap CistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMl9TUVJUX1BJOiAkaWQgPSAkaWQ6OnNwbGF0 KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMl9TUVJUX1BJKTsKKy0KKy0gICAgICAgICAg ICAvLy8gc3FydCgyKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBTUVJUXzI6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yKTsKKy0KKy0gICAgICAgICAgICAv Ly8gMS9zcXJ0KDIpCistICAgICAgICAgICAgcHViIGNvbnN0IEZSQUNfMV9TUVJUXzI6ICRpZCA9 ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18xX1NRUlRfMik7CistCist ICAgICAgICAgICAgLy8vIEV1bGVyJ3MgbnVtYmVyIChlKQorLSAgICAgICAgICAgIHB1YiBjb25z dCBFOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkUpOworLQorLSAg ICAgICAgICAgIC8vLyBsb2c8c3ViPjI8L3N1Yj4oZSkKKy0gICAgICAgICAgICBwdWIgY29uc3Qg TE9HMl9FOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxPRzJfRSk7 CistCistICAgICAgICAgICAgLy8vIGxvZzxzdWI+MTA8L3N1Yj4oZSkKKy0gICAgICAgICAgICBw dWIgY29uc3QgTE9HMTBfRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3Rz OjpMT0cxMF9FKTsKKy0KKy0gICAgICAgICAgICAvLy8gbG4oMikKKy0gICAgICAgICAgICBwdWIg Y29uc3QgTE5fMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpMTl8y KTsKKy0KKy0gICAgICAgICAgICAvLy8gbG4oMTApCistICAgICAgICAgICAgcHViIGNvbnN0IExO XzEwOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxOXzEwKTsKKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L2Nvcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRz IHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBjb3NgLgorLQorLW1hY3JvX3J1 bGVzISBpbXBsX21hdGhfZmxvYXRfY29zIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBs ICRpZCB7CistICAgICAgICAgICAgLy8vIENvc2luZS4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgZm4gY29zKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3M6OkNvczsKKy0gICAgICAgICAg ICAgICAgQ29zOjpjb3Moc2VsZikKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8v IENvc2luZSBvZiBgc2VsZiAqIFBJYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0Ojpjb3NfcGk6OkNvc1BpOworLSAgICAgICAgICAg ICAgICBDb3NQaTo6Y29zX3BpKHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9jb3M+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gY29zKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6UEk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkgLyAyLik7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHpfciA9ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5 IC8gMi4pLmNvcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb19yID0gJGlkOjpz cGxhdCgoUEkgYXMgJGVsZW1fdHkpLmNvcygpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8sIHouY29zKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoel9yLCBwaC5jb3MoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvX3IsIHAuY29zKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvZXhwLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzMyAr MCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9p bnQgYGV4cGAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9leHAgeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0 aGUgZXhwb25lbnRpYWwgZnVuY3Rpb24gb2YgYHNlbGZgOiBgZV4oc2VsZilgLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBleHAoc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmV4cDo6RXhw OworLSAgICAgICAgICAgICAgICBFeHA6OmV4cChzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X21hdGhfZXhwPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGV4cCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5leHAoKSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KGNyYXRlOjpmNjQ6OmNvbnN0czo6RSBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40 ZS00IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKChlIC0g by5leHAoKSkuYWJzKCkubGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L2xuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvbG4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4ucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDMzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBm bG9hdGluZy1wb2ludCBgbG5gLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfbG4g eworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8g UmV0dXJucyB0aGUgbmF0dXJhbCBsb2dhcml0aG0gb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsbihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bG46OkxuOworLSAgICAg ICAgICAgICAgICBMbjo6bG4oc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBw YXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX2xuPl0g eworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIGxuKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0g JGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg byA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6LCBvLmxuKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl ID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpjb25zdHM6OkUgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgobyAtIGUubG4oKSkuYWJzKCku bGUodG9sKS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxf YWRkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGQucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDQ0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBm bG9hdGluZy1wb2ludCBgbXVsX2FkZGAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9h dF9tdWxfYWRkIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAg ICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5IGFkZDogYHNlbGYgKiB5ICsgemAKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbXVsX2FkZChzZWxmLCB5OiBTZWxmLCB6 OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjpt YXRoOjpmbG9hdDo6bXVsX2FkZDo6TXVsQWRkOworLSAgICAgICAgICAgICAgICBNdWxBZGQ6Om11 bF9hZGQoc2VsZiwgeSwgeikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6 aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX211bF9hZGQ+XSB7 CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gbXVsX2FkZCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg eiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHoubXVsX2FkZCh6LCB6KSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGQobywgeikpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkKHosIG8pKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHoubXVsX2FkZChvLCBvKSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11bF9hZGQobywgbykp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRkKHQsIHop KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQubXVsX2FkZChvLCB6 KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0Lm11bF9hZGQo dCwgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRk KG8sIHQpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQzLCB0Lm11bF9h ZGQobywgbykpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRl LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9hZGRlLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSw0OCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxv YXRpbmctcG9pbnQgYG11bF9hZGRlYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0 X211bF9hZGRlIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAg ICAgICAgLy8vIEZ1c2VkIG11bHRpcGx5IGFkZCBlc3RpbWF0ZTogfj0gYHNlbGYgKiB5ICsgemAK Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gV2hpbGUgZnVzZWQgbXVsdGlwbHkt YWRkIChgZm1hYCkgaGFzIGluZmluaXRlIHByZWNpc2lvbiwKKy0gICAgICAgICAgICAvLy8gYG11 bF9hZGRlYCBoYXMgX2F0IHdvcnN0XyB0aGUgc2FtZSBwcmVjaXNpb24gb2YgYSBtdWx0aXBseSBm b2xsb3dlZCBieSBhbiBhZGQuCistICAgICAgICAgICAgLy8vIFRoaXMgbWlnaHQgYmUgbW9yZSBl ZmZpY2llbnQgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IGRvIG5vdCBoYXZlIGFuIGBmbWFgIGluc3Ry dWN0aW9uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtdWxf YWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6bXVsX2FkZGU6Ok11bEFkZEU7CistICAg ICAgICAgICAgICAgIE11bEFkZEU6Om11bF9hZGRlKHNlbGYsIHksIHopCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3Rf dHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfbWF0aF9tdWxfYWRkZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtdWxfYWRkZSgpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdDMgPSAkaWQ6OnNwbGF0KDMg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxh dCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHosIHoubXVsX2FkZGUoeiwgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobywgby5tdWxfYWRkZShvLCB6KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvLCBvLm11bF9hZGRlKHosIG8pKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8sIHoubXVsX2FkZGUobywgbykpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCwgby5tdWxfYWRkZShvLCBvKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0LCBvLm11bF9hZGRlKHQsIHopKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQsIHQubXVsX2FkZGUobywgeikpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRkZSh0LCB6KSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0Lm11bF9hZGRlKG8sIHQpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQzLCB0Lm11bF9hZGRlKG8sIG8pKTsKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv cG93Zi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzYgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRz IHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBwb3dmYC4KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3Bvd2YgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGlt cGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmFpc2VzIGBzZWxmYCBudW1iZXIgdG8gdGhlIGZs b2F0aW5nIHBvaW50IHBvd2VyIG9mIGB4YC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gcG93ZihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6cG93Zjo6UG93ZjsKKy0gICAg ICAgICAgICAgICAgUG93Zjo6cG93ZihzZWxmLCB4KQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21h dGhfcG93Zj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBwb3dmKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5wb3dmKHopKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHQucG93Zih6KSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvLCBvLnBvd2YobykpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCwgdC5wb3dmKG8pKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmLCB0LnBvd2YodCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9yZWNwcmUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9yZWNwcmUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwzNiArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxh bmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHJlY3ByZWAuCistCistbWFjcm9fcnVsZXMhIGltcGxf bWF0aF9mbG9hdF9yZWNwcmUgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsK Ky0gICAgICAgICAgICAvLy8gUmVjaXByb2NhbCBlc3RpbWF0ZTogYH49IDEuIC8gc2VsZmAuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUgcHJlY2lzaW9uIG9m IHRoZSBlc3RpbWF0ZSBpcyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHJlY3ByZShzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgJGlkOjpzcGxhdCgxLikgLyBzZWxmCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf bWF0aF9yZWNwcmU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcmVjcHJlKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5yZWNwcmUoKSkuYWJz KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgp KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAwLjU7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUgLSB0LnJlY3ByZSgpKS5hYnMoKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOworLSAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvcnNxcnRlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0MCArMCwwIEBACistLy8h IEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYHJzcXJ0ZWAu CistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9yc3FydGUgeworLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gUmVjaXByb2NhbCBzcXVh cmUtcm9vdCBlc3RpbWF0ZTogYH49IDEuIC8gc2VsZi5zcXJ0KClgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBGSVhNRTogVGhlIHByZWNpc2lvbiBvZiB0aGUgZXN0aW1hdGUg aXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBmbiByc3FydGUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZnNxcnQ7 CistICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEuKSAvIFNpbWQoc2ltZF9mc3FydChz ZWxmLjApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAg ICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9y c3FydGU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgZm4gcnNxcnRlKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6U1FSVF8yOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5yc3FydGUoKSkuYWJz KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgp KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAxLiAvIFNRUlRfMjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQucnNxcnRlKCkpLmFi cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwo KSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC9zaW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDUwICswLDAgQEAKKy0vLyEg SW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc2luYC4KKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NpbiB7CistICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAg ICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBTaW5lLgorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzaW4oc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNpbjo6U2luOworLSAg ICAgICAgICAgICAgICBTaW46OnNpbihzZWxmKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAvLy8gU2luZSBvZiBgc2VsZiAqIFBJYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgZm4gc2luX3BpKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzaW5fcGk6OlNpblBpOworLSAgICAg ICAgICAgICAgICBTaW5QaTo6c2luX3BpKHNlbGYpCistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBTaW5lIGFuZCBjb3NpbmUgb2YgYHNlbGYgKiBQSWAuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gKFNlbGYs IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9h dDo6c2luX2Nvc19waTo6U2luQ29zUGk7CistICAgICAgICAgICAgICAgIFNpbkNvc1BpOjpzaW5f Y29zX3BpKHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVz dF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zaW4+XSB7CistICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gc2luKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1f dHk6OmNvbnN0czo6UEk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNw bGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwID0gJGlk OjpzcGxhdChQSSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBo ID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSAvIDIuKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgb19yID0gJGlkOjpzcGxhdCgoUEkgYXMgJGVsZW1fdHkgLyAyLikuc2luKCkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6X3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxl bV90eSkuc2luKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwg ei5zaW4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvX3IsIHBoLnNp bigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHpfciwgcC5zaW4oKSk7 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3NxcnQucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L3NxcnQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM1ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc3FydGAuCist CistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zcXJ0IHsKKy0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIHNxcnQoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNxcnQ6OlNxcnQ7CistICAgICAgICAgICAgICAgIFNxcnQ6 OnNxcnQoc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0 X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg eworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3NxcnQ+XSB7CistICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gc3FydCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVt X3R5Ojpjb25zdHM6OlNRUlRfMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRp ZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8g PSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiwgei5zcXJ0KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobywgby5zcXJ0KCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlk OjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9 ICRpZDo6c3BsYXQoU1FSVF8yKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGUsIHQuc3FydCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydGUu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0 ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0ZS5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsNDQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0 aW5nLXBvaW50IGBzcXJ0ZWAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zcXJ0 ZSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8v LyBTcXVhcmUtcm9vdCBlc3RpbWF0ZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gRklYTUU6IFRoZSBwcmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNw ZWNpZmllZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc3Fy dGUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6 bWF0aDo6ZmxvYXQ6OnNxcnRlOjpTcXJ0ZTsKKy0gICAgICAgICAgICAgICAgU3FydGU6OnNxcnRl KHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7 CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9zcXJ0ZT5dIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBm biBzcXJ0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5 Ojpjb25zdHM6OlNRUlRfMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlk OjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZXJyb3IgPSAoeiAtIHouc3FydGUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKG8gLSBvLnNxcnRlKCkpLmFicygpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChTUVJUXzIgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5zcXJ0 ZSgpKS5hYnMoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxl KHRvbCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5p bWFsLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAKKy0jW21hY3JvX3VzZV0KKy1t b2QgaXVmOworLSNbbWFjcm9fdXNlXQorLW1vZCBtYXNrOworLSNbbWFjcm9fdXNlXQorLW1vZCBw dHI7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21p bmltYWwvaXVmLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmlt YWwvaXVmLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMTY5ICswLDAgQEAKKy0vLyEgTWluaW1hbCBBUEkgb2Ygc2lnbmVkIGludGVnZXIsIHVuc2ln bmVkIGludGVnZXIsIGFuZCBmbG9hdGluZy1wb2ludAorLS8vISB2ZWN0b3JzLgorLQorLW1hY3Jv X3J1bGVzISBpbXBsX21pbmltYWxfaXVmIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8CistICAgICAkdGVzdF90 dDp0dCB8ICQoJGVsZW1fbmFtZTppZGVudCksKyB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0K Ky0gICAgICAgICQoI1skZG9jXSkqCistICAgICAgICBwdWIgdHlwZSAkaWQgPSBTaW1kPFskZWxl bV90eTsgJGVsZW1fY291bnRdPjsKKy0KKy0gICAgICAgIGltcGwgc2VhbGVkOjpTaW1kIGZvciAk aWQgeworLSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OworLSAgICAgICAgICAg IGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFu ZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bCAkaWQgeworLSAgICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFj aCB2ZWN0b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAgICAvLy8gd2l0aCB0aGUg cHJvdmlkZWQgdmFsdWVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNb YWxsb3coY2xpcHB5Ojp0b29fbWFueV9hcmd1bWVudHMpXQorLSAgICAgICAgICAgIHB1YiBjb25z dCBmbiBuZXcoJCgkZWxlbV9uYW1lOiAkZWxlbV90eSksKikgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoJGVsZW1fbmFtZSBhcyAkaWVsZW1fdHkpLCopKQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9m IHZlY3RvciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Y29uc3QgZm4gbGFuZXMoKSAtPiB1c2l6ZSB7CistICAgICAgICAgICAgICAgICRlbGVtX2NvdW50 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDb25zdHJ1Y3RzIGEgbmV3IGlu c3RhbmNlIHdpdGggZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRvCistICAgICAgICAgICAgLy8v IGB2YWx1ZWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGNvbnN0 IGZuIHNwbGF0KHZhbHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNp bWQoY29kZWdlbjo6JGlkKCQoeworLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2Ft ZWxfY2FzZV90eXBlcywgZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAk ZWxlbV9uYW1lOworLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgYXMgJGllbGVtX3R5CistICAg ICAgICAgICAgICAgIH0pLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g RXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElm IGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsK Ky0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRleCkgfQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRl eGAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0 aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiB1bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwgaW5kZXg6IHVzaXpl KSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9l eHRyYWN0OworLSAgICAgICAgICAgICAgICBsZXQgZTogJGllbGVtX3R5ID0gc2ltZF9leHRyYWN0 KHNlbGYuMCwgaW5kZXggYXMgdTMyKTsKKy0gICAgICAgICAgICAgICAgZSBhcyAkZWxlbV90eQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Ig d2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWAuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2UgZG9l cyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAg XAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgor LSAgICAgICAgICAgIF0KKy0gICAgICAgICAgICBwdWIgZm4gcmVwbGFjZShzZWxmLCBpbmRleDog dXNpemUsIG5ld192YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBh c3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBz ZWxmLnJlcGxhY2VfdW5jaGVja2VkKGluZGV4LCBuZXdfdmFsdWUpIH0KKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1 ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVm aW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW211c3RfdXNlID0g InJlcGxhY2VfdW5jaGVja2VkIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBc CistICAgICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRo IHRoZSB2YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxh Y2VkIGJ5IGBuZXdfdmFsdWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAgICAgICAgcHViIHVu c2FmZSBmbiByZXBsYWNlX3VuY2hlY2tlZCgKKy0gICAgICAgICAgICAgICAgc2VsZiwKKy0gICAg ICAgICAgICAgICAgaW5kZXg6IHVzaXplLAorLSAgICAgICAgICAgICAgICBuZXdfdmFsdWU6ICRl bGVtX3R5LAorLSAgICAgICAgICAgICkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7CistICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9pbnNl cnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsIG5ld192YWx1ZSBhcyAkaWVsZW1fdHkpKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdl LgorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gbWluaW1hbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBs YW5lczoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVtX2NvdW50LCAk aWQ6OmxhbmVzKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGF0IGFuZCBl eHRyYWN0IC8gZXh0cmFjdF91bmNoZWNrZWQ6CistICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgVkFMOiAkZWxlbV90eSA9IDcgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgVkVDOiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShWQUwsIFZFQy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZBTCwgdW5zYWZlIHsgVkVDLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSBWRUMucmVwbGFjZSgwLCA0MiBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoNDIgYXMgJGVsZW1fdHksIG5ld192ZWMu ZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwgbmV3X3ZlYy5leHRy YWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFQy5yZXBsYWNlX3VuY2hlY2tlZCgw LCA0MiBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKDQyIGFzICRlbGVtX3R5LCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUwsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2Fz bS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAg ICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAg I1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29v YigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5ID0gNyBh cyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6ICRpZCA9ICRp ZDo6c3BsYXQoVkFMKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IFZFQy5leHRy YWN0KCRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3No b3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQor LSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAg ICBmbiByZXBsYWNlX3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBWQUw6ICRlbGVtX3R5ID0gNyBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBWRUM6ICRpZCA9ICRpZDo6c3BsYXQoVkFMKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgXyA9IFZFQy5yZXBsYWNlKCRpZDo6bGFuZXMoKSwgNDIgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9tYXNrLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL21h c2sucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE3NiArMCwwIEBACistLy8hIE1pbmltYWwgQVBJ IG9mIG1hc2sgdmVjdG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9taW5pbWFsX21hc2sgewor LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJGll bGVtX3R5OmlkZW50CistICAgIHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX25hbWU6aWRlbnQpLCsg fCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICAkKCNbJGRvY10pKgorLSAgICAgICAg cHViIHR5cGUgJGlkID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47CistCistICAgICAg ICBpbXBsIHNlYWxlZDo6U2ltZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIEVsZW1lbnQg PSAkZWxlbV90eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3Vu dDsKKy0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQ3JlYXRl cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1lbnRzIGluaXRpYWxpemVkCist ICAgICAgICAgICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dG9vX21hbnlfYXJndW1lbnRz KV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVsZW1fbmFtZTogYm9vbCksKikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoU2VsZjo6Ym9v bF90b19pbnRlcm5hbCgkZWxlbV9uYW1lKSksKikpCistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBDb252ZXJ0cyBhIGJvb2xlYW4gdHlwZSBpbnRvIHRoZSB0eXBlIG9mIHRoZSB2 ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1thbGxv dyhjbGlwcHk6OmluZGV4aW5nX3NsaWNpbmcpXQorLSAgICAgICAgICAgIGNvbnN0IGZuIGJvb2xf dG9faW50ZXJuYWwoeDogYm9vbCkgLT4gJGllbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgWzAg YXMgJGllbGVtX3R5LCAhKDAgYXMgJGllbGVtX3R5KV1beCBhcyB1c2l6ZV0KKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB2ZWN0b3IgbGFu ZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIGxh bmVzKCkgLT4gdXNpemUgeworLSAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAorLSAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRo IGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bworLSAgICAgICAgICAgIC8vLyBgdmFsdWVgLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBzcGxhdCh2 YWx1ZTogYm9vbCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlk KCQoeworLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2FtZWxfY2FzZV90eXBlcywg ZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAkZWxlbV9uYW1lOworLSAg ICAgICAgICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbCh2YWx1ZSkKKy0gICAgICAg ICAgICAgICAgfSksKikpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRy YWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGlu ZGV4ID49IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBleHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAg IHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQoaW5kZXgpIH0KKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2 aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9leHRyYWN0OworLSAg ICAgICAgICAgICAgICBsZXQgeDogJGllbGVtX3R5ID0gc2ltZF9leHRyYWN0KHNlbGYuMCwgaW5k ZXggYXMgdTMyKTsKKy0gICAgICAgICAgICAgICAgeCAhPSAwCistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQg YGluZGV4YCBpcyByZXBsYWNlZCBieQorLSAgICAgICAgICAgIC8vLyBgbmV3X3ZhbHVlYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZSBkb2Vz IG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBc CistICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCist ICAgICAgICAgICAgXQorLSAgICAgICAgICAgIHB1YiBmbiByZXBsYWNlKHNlbGYsIGluZGV4OiB1 c2l6ZSwgbmV3X3ZhbHVlOiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgYXNzZXJ0 IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgc2VsZi5y ZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9CistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFsdWUgYXQg YGluZGV4YCBpcyByZXBsYWNlZCBieQorLSAgICAgICAgICAgIC8vLyBgbmV3X3ZhbHVlYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhh dmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg I1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdp bmFsIHZhbHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5l dyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAgICAg ICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAgICAg ICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCistICAgICAgICAgICAgICAg IHNlbGYsCistICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKKy0gICAgICAgICAgICAgICAg bmV3X3ZhbHVlOiBib29sLAorLSAgICAgICAgICAgICkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9pbnNlcnQ7CistICAgICAgICAgICAgICAgIFNpbWQo c2ltZF9pbnNlcnQoc2VsZi4wLCBpbmRleCBhcyB1MzIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2VsZjo6Ym9vbF90b19pbnRlcm5hbChuZXdfdmFsdWUpKSkKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9taW5pbWFsPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICBmbiBtaW5pbWFsKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHRlc3Qg bmV3CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjpsYW5lcygpKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAvIGV4dHJhY3RfdW5j aGVja2VkOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KHRy dWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgdmVjLmV4dHJh Y3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRydWUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgdmVjLmV4dHJh Y3RfdW5jaGVja2VkKGkpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVw bGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5l d192ZWMgPSB2ZWMucmVwbGFjZSgwLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZmFsc2UsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRy dWUsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG5ld192ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMucmVw bGFjZV91bmNoZWNrZWQoMCwgZmFsc2UpCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmYWxzZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodHJ1ZSwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNt LWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAg ICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0 XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAg ICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IF8gPSB2ZWMuZXh0cmFjdCgkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90 IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAg ICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2VfcGFuaWNf b29iKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHZlYy5yZXBsYWNlKCRpZDo6 bGFuZXMoKSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvcHRyLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9taW5pbWFsL3B0ci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTM3MyArMCwwIEBACist Ly8hIE1pbmltYWwgQVBJIG9mIHBvaW50ZXIgdmVjdG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9taW5pbWFsX3AgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50LCAkbWFza190eTppZGVudCwKKy0gICAgICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5 OmlkZW50IHwgJHJlZjppZGVudCB8ICR0ZXN0X3R0OnR0CistICAgICB8ICQoJGVsZW1fbmFtZTpp ZGVudCksKyB8ICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikgfAorLSAgICAgJCgjWyRkb2M6bWV0 YV0pKikgPT4geworLQorLSAgICAgICAgJCgjWyRkb2NdKSoKKy0gICAgICAgIHB1YiB0eXBlICRp ZDxUPiA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+OworLQorLSAgICAgICAgaW1wbDxU PiBzZWFsZWQ6OlNpbWQgZm9yICRpZDxUPiB7CistICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0g JGVsZW1fdHk7CistICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7 CistICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07CistICAg ICAgICB9CistCistICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7CistICAgICAgICAgICAgLy8vIENy ZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXpl ZAorLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRvb19tYW55X2FyZ3Vt ZW50cyldCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVtX25hbWU6ICRlbGVt X3R5KSwqKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCgk ZWxlbV9uYW1lKSwqKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVy bnMgdGhlIG51bWJlciBvZiB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgeworLSAgICAgICAgICAg ICAgICAkZWxlbV9jb3VudAorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29u c3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwor LSAgICAgICAgICAgIC8vLyBgdmFsdWVgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBjb25zdCBmbiBzcGxhdCh2YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKHsKKy0gICAgICAgICAgICAgICAgICAg ICNbYWxsb3cobm9uX2NhbWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCistICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgJGVsZW1fbmFtZTsKKy0gICAgICAgICAgICAgICAgICAgIHZhbHVlCist ICAgICAgICAgICAgICAgIH0pLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAv Ly8gQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXpl ZCB0bworLSAgICAgICAgICAgIC8vLyBgbnVsbGAuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGNvbnN0IGZuIG51bGwoKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgU2VsZjo6c3BsYXQoY3JhdGU6OnB0cjo6bnVsbF9tdXQoKSBhcyAkZWxlbV90eSkKKy0gICAg ICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBtYXNrIHRoYXQgc2VsZWN0 cyB0aG9zZSBsYW5lcyB0aGF0IGNvbnRhaW4gYG51bGxgCistICAgICAgICAgICAgLy8vIHBvaW50 ZXJzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBpc19udWxs KHNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgc2VsZi5lcShTZWxmOjpudWxs KCkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFs dWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5p Y3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6 OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBl eHRyYWN0KHNlbGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAg ICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICB1bnNhZmUg eyBzZWxmLmV4dHJhY3RfdW5jaGVja2VkKGluZGV4KSB9CistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUgYXQgYGluZGV4YC4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1 bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiBleHRyYWN0X3VuY2hlY2tlZChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2V4dHJhY3Q7CistICAgICAg ICAgICAgICAgIHNpbWRfZXh0cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMikKKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2 YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5CistICAgICAgICAgICAgLy8vIGBuZXdfdmFs dWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAu CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1ttdXN0X3VzZSA9ICJyZXBs YWNlIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCistICAgICAgICAgICAg ICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBhdCBg aW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdfdmFs dWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om5vdF91 bnNhZmVfcHRyX2FyZ19kZXJlZildCistICAgICAgICAgICAgcHViIGZuIHJlcGxhY2Uoc2VsZiwg aW5kZXg6IHVzaXplLCBuZXdfdmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsgc2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0 aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBp cyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1ttdXN0 X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZh bHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0 b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAgICAgICAgICAg ICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAgICAgICAgICAg IHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCistICAgICAgICAgICAgICAgIHNlbGYs CistICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKKy0gICAgICAgICAgICAgICAgbmV3X3Zh bHVlOiAkZWxlbV90eSwKKy0gICAgICAgICAgICApIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0OworLSAgICAgICAgICAgICAgICBTaW1kKHNp bWRfaW5zZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLCBuZXdfdmFsdWUpKQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0 ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIG1pbmltYWwoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZXM6CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkZWxlbV9jb3VudCwgJGlkOjo8aTMyPjo6 bGFuZXMoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJh Y3QgLyBleHRyYWN0X3VuY2hlY2tlZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFM NzogPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSAkcmVmISg3KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFM NDI6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gJHJlZiEoNDIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBW RUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxhdChWQUw3KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShWQUw3LCBWRUMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWQUw3LCB1bnNhZmUgeyBWRUMuZXh0cmFjdF91bmNoZWNrZWQoaSkgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIC8gcmVwbGFjZV91bmNoZWNrZWQKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IFZFQy5yZXBsYWNlKDAsIFZBTDQy KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNDIsIG5ld192ZWMuZXh0cmFj dChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDcsIG5ld192ZWMuZXh0cmFjdChp KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMucmVwbGFjZV91bmNoZWNrZWQoMCwgVkFM NDIpCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoVkFMNDIsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKFZBTDcsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBuID0gJGlkOjo8aTMyPjo6bnVsbCgpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7IGNy YXRlOjptZW06Onplcm9lZCgpIH0pCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKG4uaXNfbnVsbCgpLmFsbCgpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBuID0gbi5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLCB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgh bi5pc19udWxsKCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6PGkz Mj46OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShu LmlzX251bGwoKS5hbnkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghbi5pc19udWxsKCkuYW55KCkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBz dXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAg I1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29v YigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMOiA8JGlkPGkzMj4gYXMgc2Vh bGVkOjpTaW1kPjo6RWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYh KDcpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpz cGxhdChWQUwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLmV4dHJhY3Qo JGlkOjo8aTMyPjo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9y dCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8v ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0K Ky0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hv dWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDogPCRpZDxpMzI+IGFzIHNlYWxlZDo6 U2ltZD46OkVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg3KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkFMNDI6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6 OlNpbWQ+OjpFbGVtZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNDIp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWRUM6ICRpZDxpMzI+ID0gJGlkOjpzcGxh dChWQUwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfID0gVkVDLnJlcGxhY2UoJGlk Ojo8aTMyPjo6bGFuZXMoKSwgVkFMNDIpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bDxUPiBjcmF0ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAjW2FsbG93 KGNsaXBweTo6bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0gICAgICAgICAgICBm biBmbXQoJnNlbGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikKKy0gICAgICAg ICAgICAgICAgICAgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKKy0gICAgICAgICAgICAgICAgd3Jp dGUhKAorLSAgICAgICAgICAgICAgICAgICAgZiwKKy0gICAgICAgICAgICAgICAgICAgICJ7fTx7 fT4oIiwKKy0gICAgICAgICAgICAgICAgICAgIHN0cmluZ2lmeSEoJGlkKSwKKy0gICAgICAgICAg ICAgICAgICAgIGNyYXRlOjppbnRyaW5zaWNzOjp0eXBlX25hbWU6OjxUPigpCistICAgICAgICAg ICAgICAgICk/OworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Cist ICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg d3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9k ZWJ1Zz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZGVidWcoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlW ZWN9OworLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3Ry aW5nPFt1ODsgNTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpm bXQ6OldyaXRlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjo8aTMyPjo6 ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJp bmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7Oj99 IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiZWcg PSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11 dCBiZWcsICJ7fTxpMzI+KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5z dGFydHNfd2l0aChiZWcuYXNfc3RyKCkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cyA9IHt9IChzaG91bGQgc3RhcnQgd2l0aCA9IHt9KSIsIHMsIGJlZworLSAgICAgICAgICAgICAg ICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0 aCgiKSIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlT dHJpbmc7IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVn LmFzX3N0cigpLCAiIikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIiki LCAiIikuc3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBU aW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHMubGVuKCksICRpZDo6PGkzMj46OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gVGlueVN0cmluZzo6bmV3KCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGUsICJ7Oj99Iiwgdi5leHRyYWN0 KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoc3MsIGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICB9Cist CistICAgICAgICBpbXBsPFQ+IERlZmF1bHQgZm9yICRpZDxUPiB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICAvLyBGSVhNRTogcHRycyBkbyBub3QgaW1wbGVtZW50IGRlZmF1bHQKKy0gICAgICAgICAg ICAgICAgU2VsZjo6bnVsbCgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZGVmYXVsdD5dIHsKKy0g ICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZGVmYXVsdCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46OmRlZmF1bHQoKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGEuZXh0cmFjdChpKSwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6emVyb2VkKCkgfQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0gICAgICAg ICAgICAvLy8gTGFuZS13aXNlIGVxdWFsaXR5IGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGVxKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFz a190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Omxsdm06OnNpbWRfZXE7CistICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVz aXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAg ICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7CistICAg ICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZXEoYS4wLCBiLjApKQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgaW5lcXVh bGl0eSBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1 YiBmbiBuZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAg ICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX25l OworLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBj cmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2ltZChz aW1kX25lKGEuMCwgYi4wKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJpc29uLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxmLCBvdGhlcjogU2Vs ZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2x0OworLSAgICAgICAgICAgICAgICAgICAg bGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3Ro ZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2x0KGEuMCwgYi4wKSkKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13 aXNlIGxlc3MtdGhhbi1vci1lcXVhbHMgY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBwdWIgZm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5 IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6bGx2bTo6c2ltZF9sZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVf dHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICBs ZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAg ICAgICAgICAgICAgIFNpbWQoc2ltZF9sZShhLjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRo YW4gY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Zm4gZ3Qoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9ndDsK Ky0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2lt ZF9ndChhLjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlz b24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGdlKHNlbGYs IG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ2U7CistICAgICAgICAg ICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYp OworLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRy YW5zbXV0ZShvdGhlcik7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfZ2UoYS4wLCBi LjApKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX3ZlcnRp Y2FsPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBjbXAoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFz a190eTo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09 IGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sZShiKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCByID0gYS5ndChiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmdlKGIpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgciA9IGEuZXEoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShyID09IGUpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IGE7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBiID0gYjsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGUgPSBlOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJl cGxhY2UoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoMF9pc2l6ZSkgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUoMV9pc2l6ZSkgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBs YWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KDFfaXNpemUpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDBfaXNpemUpIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlID0gZS5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09 IGUpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxl cV9uZV9pbXBsKV0KKy0gICAgICAgIGltcGw8VD4gY3JhdGU6OmNtcDo6UGFydGlhbEVxPCRpZDxU Pj4gZm9yICRpZDxUPiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g ZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICRpZDo6 PFQ+OjplcSgqc2VsZiwgKm90aGVyKS5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBi b29sIHsKKy0gICAgICAgICAgICAgICAgJGlkOjo8VD46Om5lKCpzZWxmLCAqb3RoZXIpLmFueSgp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgLy8gRklYTUU6IGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5Mgor LSAgICAgICAgI1thbGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KKy0gICAgICAgIGlt cGw8VD4gY3JhdGU6OmNtcDo6UGFydGlhbEVxPExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8 VD4+PgorLSAgICAgICAgICAgIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPFQ+Pgor LSAgICAgICAgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGVxKCZz ZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0g b3RoZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBuZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAg ICAgc2VsZi4wICE9IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbEVx Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFsX2VxKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNp emUpCistICAgICAgICAgICAgICAgICAgICAgICAgfSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShhICE9IGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IShhID09IGIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGlmICRpZDo6PGkzMj46OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCkucmVwbGFjZSgwLCB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKDFfaXNpemUpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUo MV9pc2l6ZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKGEgPT0gYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo IShhICE9IGEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist CistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OkVxIGZvciAkaWQ8VD4ge30KKy0gICAgICAg IGltcGw8VD4gY3JhdGU6OmNtcDo6RXEgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ8 VD4+IHt9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9jbXBfZXE+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGVxKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGZuIGZvbzxFOiBjcmF0ZTo6Y21wOjpFcT4oXzogRSkg e30KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb28oYSk7CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICBpbXBsPFQ+IEZyb208WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQ8VD4gewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGZyb20oYXJyYXk6IFskZWxl bV90eTsgJGVsZW1fY291bnRdKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB1bm5lY2Vzc2FyeSB6ZXJvaW5nOyBiZXR0 ZXIgdGhhbiBVQi4KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdTogU2VsZiA9IGNyYXRl OjptZW06Onplcm9lZCgpOworLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9u b25vdmVybGFwcGluZygKKy0gICAgICAgICAgICAgICAgICAgICAgICAmYXJyYXkgYXMgKmNvbnN0 IFskZWxlbV90eTsgJGVsZW1fY291bnRdIGFzICpjb25zdCB1OCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAmbXV0IHUgYXMgKm11dCBTZWxmIGFzICptdXQgdTgsCistICAgICAgICAgICAgICAg ICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkKKy0gICAgICAgICAgICAgICAg ICAgICk7CistICAgICAgICAgICAgICAgICAgICB1CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsPFQ+IEludG88WyRlbGVtX3R5OyAk ZWxlbV9jb3VudF0+IGZvciAkaWQ8VD4geworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHVubmVj ZXNzYXJ5IHplcm9pbmc7IGJldHRlciB0aGFuIFVCLgorLSAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB1OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSA9IGNyYXRlOjptZW06Onplcm9lZCgpOwor LSAgICAgICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygKKy0g ICAgICAgICAgICAgICAgICAgICAgICAmc2VsZiBhcyAqY29uc3QgJGlkPFQ+IGFzICpjb25zdCB1 OCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAmbXV0IHUgYXMgKm11dCBbJGVsZW1fdHk7ICRl bGVtX2NvdW50XSBhcyAqbXV0IHU4LAorLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnNpemVfb2Y6OjxTZWxmPigpCistICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAg ICAgICAgICAgICAgdQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf ZnJvbT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYXJyYXkoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlcyA9IFsxX2kzMjsgJGVsZW1fY291bnRd OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdmVjOiAkaWQ8aTMyPiA9IERl ZmF1bHQ6OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFycmF5 ID0gWworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpudWxsKCkuZXh0 cmFjdCgwKTsgJGVsZW1fY291bnQKKy0gICAgICAgICAgICAgICAgICAgICAgICBdOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9ICZ2YWx1ZXNbaV0gYXMgKmNvbnN0IGkzMiBh cyAqbXV0IGkzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxh Y2UoaSwgcHRyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBwdHI7 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiB0aGVyZSBpcyBubyBpbXBsIG9mIEZyb208JGlkPFQ+PiBmb3IgWyRlbGVtX3R5 OyBOXQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCBhMCA9IEZyb206OmZyb20odmVj KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnRfZXEhKGEwLCBhcnJheSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWRfYXNzaWdubWVudHMpXQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYTEgPSBhcnJheTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhMSA9IHZlYy5pbnRvKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShhMSwgYXJyYXkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MDog JGlkPGkzMj4gPSBGcm9tOjpmcm9tKGFycmF5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYwLCB2ZWMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MTogJGlk PGkzMj4gPSBhcnJheS5pbnRvKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2MSwgdmVjKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsK Ky0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1 ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMg UGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4o KSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdCBhbGlnbmVkCistICAgICAg ICAgICAgLy8vIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX2FsaWduZWQoc2xp Y2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwor LSAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKTsKKy0g ICAgICAgICAgICAgICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICA9PSAwCistICAgICAgICAgICAgICAgICAgICApOwor LSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChz bGljZSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBz bGljZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6Omxh bmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9t X3NsaWNlX3VuYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4o KSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNl X3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistCistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0 aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBg c2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25l ZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwg dGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6 ICZbJGVsZW1fdHldKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 OmNhc3RfcHRyX2FsaWdubWVudCldCistICAgICAgICAgICAgICAgICooc2xpY2UuYXNfcHRyKCku Y2FzdCgpKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVz IGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlv ciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IHVuc2FmZSBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoCistICAgICAgICAgICAg ICAgIHNsaWNlOiAmWyRlbGVtX3R5XSwKKy0gICAgICAgICAgICApIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKKy0gICAgICAgICAgICAgICAgbGV0 IHRhcmdldF9wdHIgPSBzbGljZS5hc19wdHIoKS5jYXN0KCk7CistICAgICAgICAgICAgICAgIGxl dCBtdXQgeCA9IFNlbGY6OnNwbGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICBsZXQgc2VsZl9wdHIgPSAmbXV0IHggYXMgKm11dCBTZWxmIGFz ICptdXQgdTg7CistICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBp bmcoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLAorLSAgICAgICAgICAgICAgICAg ICAgc2VsZl9wdHIsCistICAgICAgICAgICAgICAgICAgICBzaXplX29mOjo8U2VsZj4oKSwKKy0g ICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0Ogor LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX3NsaWNlX2Zyb21fc2xpY2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOworLQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBm cm9tX3NsaWNlX3VuYWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51 bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5vbl9udWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsgMQorLSAgICAgICAgICAgICAgICAg ICAgICAgIF07CistICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGlnbmVkWzBdID0gbnVsbDsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9zbGlj ZV91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bmFsaWduZWRbMS4u XQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRl c3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAg ICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJv bV9zbGljZV91bmFsaWduZWRfZmFpbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg KF9udWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB1bmFsaWduZWQgPSBbbm9uX251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkg KyAxXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdl IGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlk Ojo8aTMyPjo6ZnJvbV9zbGljZV91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZ1bmFsaWduZWRbMi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAg ICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBkYXRhOiBbPCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVs ZW1lbnQ7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiAkaWQ6OjxpMzI+Ojps YW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQ8aTMyPiwKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygp XSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmxhbmVz KCkuLigyICogJGlkOjo8aTMyPjo6bGFuZXMoKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5k YXRhW2ldID0gbm9uX251bGw7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZl YyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmZy b21fc2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGln bmVkLmRhdGFbJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVtZXJhdGUoKQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA8ICRpZDo6 PGkzMj46OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCBudWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRleCAtICRpZDo6PGkz Mj46OmxhbmVzKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdh c20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAg ICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rl c3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAg ICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCAoX251bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YTogW25vbl9udWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMo KV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyB0aGUgc2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBfdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGlkOjo8aTMyPjo6ZnJvbV9zbGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmFsaWduZWQuZGF0YVsyICogJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAg fTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJ WE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQor LSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAg ICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAg ICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9hbGlnbigpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgKG51bGwsIF9ub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgcHRyID0gYWxpZ25lZC5kYXRhLmFzX3B0cigpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgx KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldCgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OmFsaWduX29mOjo8 JGlkPGkzMj4+KCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSA9PSAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwb2ludGVyIGlzIHByb3Blcmx5IGFs aWduZWQsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmcm9tX3NsaWNl X2FsaWduZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuIHRoaXMKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvIG1h a2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSAic2hvdWxkX2ZhaWwi IHRlc3QgcGFzczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2si KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4 aXN0LCBhcmUgcHJvcGVybHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlh bGl6ZWQsIGFuZCBwcm9wZXJseSBhbGlnbmVkOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgcyA9IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB0ciwgJGlkOjo8aTMyPjo6bGFuZXMoKQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBh bHdheXMgcGFuaWMgYmVjYXVzZSB0aGUgc2xpY2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYWxpZ25tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfdmVjID0gJGlkOjo8aTMyPjo6ZnJvbV9z bGljZV9hbGlnbmVkKHMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0gICAgICAgICAgICAvLy8gV3JpdGVz IHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAg aXMgbm90CistICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4o KWAgYm91bmRhcnkuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZu IHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewor LSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShz bGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBsZXQgdGFy Z2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoCistICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3Jh dGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICA9PSAwCistICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi53cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFs dWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8v IElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoc2VsZiwgc2xp Y2U6ICZtdXQgWyRlbGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAg ICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQo c2xpY2UpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBv ciBgJnNsaWNlWzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxp Z25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9yIGlzCistICAgICAgICAgICAg Ly8vIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg dW5zYWZlIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKAorLSAgICAgICAgICAg ICAgICBzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldLAorLSAgICAgICAgICAgICkgeworLSAg ICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KKy0gICAg ICAgICAgICAgICAgKihzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpKSA9IHNlbGY7CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVj dG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVu KCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2Vf dW5hbGlnbmVkX3VuY2hlY2tlZCgKKy0gICAgICAgICAgICAgICAgc2VsZiwgc2xpY2U6ICZtdXQg WyRlbGVtX3R5XSwKKy0gICAgICAgICAgICApIHsKKy0gICAgICAgICAgICAgICAgbGV0IHRhcmdl dF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCkuY2FzdCgpOworLSAgICAgICAgICAgICAgICBsZXQg c2VsZl9wdHIgPSAmc2VsZiBhcyAqY29uc3QgU2VsZiBhcyAqY29uc3QgdTg7CistICAgICAgICAg ICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCistICAgICAgICAgICAgICAg ICAgICBzZWxmX3B0ciwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIsCistICAgICAg ICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSwKKy0gICAgICAgICAg ICAgICAgKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lm IXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV93cml0ZV90b19zbGljZT5dIHsK Ky0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6aXRlcjo6SXRlcmF0b3I7CistCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92 YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWdu ZWQgPSBbbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25l ZFsxLi5dKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4gdW5h bGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGluZGV4ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCBudWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFj dChpbmRleCAtIDEpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNb c2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAg ICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRf cGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRf ZmFpbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9 IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1 bmFsaWduZWQgPSBbbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4g cGFuaWMKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGln bmVkKCZtdXQgdW5hbGlnbmVkWzIuLl0pOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgdW5pb24gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YTogWzwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAg ICAgICAgICAgICAgX3ZlYzogJGlkPGkzMj4sCistICAgICAgICAgICAgICAgICAgICB9CistCist ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdy aXRlX3RvX3NsaWNlX2FsaWduZWQoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChu dWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkz Mj46OnNwbGF0KG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWyRpZDo6 PGkzMj46OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRl eCwgJmIpIGluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGFsaWduZWQu ZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkgfSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGluZGV4IDwgJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShiLCBub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIsIHZlYy5leHRyYWN0 KGluZGV4IC0gJGlkOjo8aTMyPjo6bGFuZXMoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3Vs ZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAg ICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bhbmlj XQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2xh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0g cHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFs aWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIg KiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVs bCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBl bm91Z2ggPT4gcGFuaWMKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWzIgKiAkaWQ6Ojxp MzI+OjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQg I1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCist ICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3Vs ZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRf ZmFpbF9hbGlnbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9u dWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbbnVsbDsgMiAqICRpZDo6 PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBv ZiBkYXRhCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSBhbGlnbmVkLmRh dGEuYXNfbXV0X3B0cigpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQg cG9pbnRlciBieSBvbmUgZWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg cHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgcHRyLmFsaWduX29mZnNldCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OmFsaWduX29mOjo8JGlkPGkzMj4+KCkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKSA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSBwb2ludGVyIGlzIHByb3Blcmx5IGFsaWduZWQsIHNvCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB3cml0ZV90b19zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5n LgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjYW4gaGFwcGVuIGZv ciBpMTI4eDEpLiBTbyB3ZSBwYW5pYyB0bworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gbWFrZSB0aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2Ug LSB0aGlzIGlzIHNhZmUsIGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGVsZW1lbnRzIG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBzbGljZTo6ZnJvbV9yYXdfcGFy dHNfbXV0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OjxpMzI+ OjpsYW5lcygpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBz bGljZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3Qg bWF0Y2ggdGhlIGFsaWdubWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1 aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQocyk7CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiBjcmF0 ZTo6aGFzaDo6SGFzaCBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11 dCBIKSB7CistICAgICAgICAgICAgICAgIGxldCBzOiAkdXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoKnNlbGYpIH07CistICAgICAgICAgICAgICAgIHMuaGFzaChzdGF0 ZSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7Cist ICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfaGFzaD5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gaGFzaCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omhhc2g6OntIYXNoLCBIYXNoZXJ9OworLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxs b3coZGVwcmVjYXRlZCldCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNo Ojp7U2lwSGFzaGVyMTN9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMg PSBbMV9pMzI7ICRlbGVtX2NvdW50XTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHZlYzogJGlkPGkzMj4gPSBEZWZhdWx0OjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBhcnJheSA9IFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjo8aTMyPjo6bnVsbCgpLmV4dHJhY3QoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRlbGVtX2NvdW50CistICAgICAgICAgICAgICAgICAgICAgICAgXTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBwdHIgPSAmdmFsdWVzW2ldIGFzICpjb25zdCBpMzIgYXMgKm11 dCBpMzI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5yZXBsYWNlKGks IHB0cik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcHRyOworLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2Fs bG93KGRlcHJlY2F0ZWQpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYV9oYXNo ID0gU2lwSGFzaGVyMTM6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg dl9oYXNoID0gYV9oYXNoLmNsb25lKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXku aGFzaCgmbXV0IGFfaGFzaCk7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjLmhhc2goJm11 dCB2X2hhc2gpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYV9oYXNoLmZp bmlzaCgpLCB2X2hhc2guZmluaXNoKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bDxUPiAkaWQ8VD4geworLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJv bSBhIHBvaW50ZXIuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAg aXMgaW4gdW5pdHMgb2YgYFRgOyBlLmcuIGEgY291bnQgb2YgYDNgIHJlcHJlc2VudHMgYQorLSAg ICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRl cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAgICAvLy8gVW5kZWZp bmVkIEJlaGF2aW9yOgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIEJvdGgg dGhlIHN0YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgorLSAg ICAgICAgICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFsbG9j YXRlZCBvYmplY3QuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIGNv bXB1dGVkIG9mZnNldCwgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdyBhbiBgaXNpemVgLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91 bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCistICAgICAgICAgICAgLy8vIHRo ZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSwgaW4g Ynl0ZXMKKy0gICAgICAgICAgICAvLy8gbXVzdCBmaXQgaW4gYSBgdXNpemVgLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJh cnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9u cyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCist ICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2 ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRl cywgc28gYHZlYy5hc19wdHIoKS5vZmZzZXQodmVjLmxlbigpIGFzIGlzaXplKWAKKy0gICAgICAg ICAgICAvLy8gaXMgYWx3YXlzIHNhZmUuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3Vj aCBhbgorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3du IDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgorLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVl c3QgZm9yIDI2MyBieXRlcyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgorLSAgICAg ICAgICAgIC8vLyBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzIt Yml0IGFuZCAxNi1iaXQKKy0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVs bHkgc2VydmUgYSByZXF1ZXN0IGZvciBtb3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlzaXpl OjpNQVhgIGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24u CistICAgICAgICAgICAgLy8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9t IGFsbG9jYXRvcnMgb3IgbWVtb3J5CistICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkg YmUgdG9vIGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRgIGlu c3RlYWQgaWYgdGhlc2UgY29uc3RyYWludHMKKy0gICAgICAgICAgICAvLy8gYXJlIGRpZmZpY3Vs dCB0byBzYXRpc2Z5LiBUaGUgb25seSBhZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2QgaXMKKy0gICAg ICAgICAgICAvLy8gdGhhdCBpdCBlbmFibGVzIG1vcmUgYWdncmVzc2l2ZSBjb21waWxlciBvcHRp bWl6YXRpb25zLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNh ZmUgZm4gb2Zmc2V0KHNlbGYsIGNvdW50OiAkaXNpemVfdHkpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSBMTFZNJ3MgYGFkZCBuc3cgbnV3YAorLSAgICAg ICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldChjb3VudCkKKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1 c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIGAzYCByZXBy ZXNlbnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29m Ojo8VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2Fm ZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9p bnRlciBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCistICAgICAgICAg ICAgLy8vIHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWly ZXMgdW5zYWZlKS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gQWx3YXlzIHVz ZSBgLm9mZnNldChjb3VudClgIGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZQorLSAgICAg ICAgICAgIC8vLyBvZmZzZXQgYWxsb3dzIHRoZSBjb21waWxlciB0byBvcHRpbWl6ZSBiZXR0ZXIu CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHdyYXBwaW5nX29m ZnNldChzZWxmLCBjb3VudDogJGlzaXplX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB7Kywq fSBjdXJyZW50bHkgcGVyZm9ybXMgYSBgd3JhcHBpbmdfe2FkZCwgbXVsfWAKKy0gICAgICAgICAg ICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAg ICB4ICsgKGNvdW50ICogY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFQ+KCkgYXMgaXNpemUpCistICAg ICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBv aW50ZXJzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgcmV0dXJuZWQg dmFsdWUgaXMgaW4gdW5pdHMgb2YgYFRgOiB0aGUgZGlzdGFuY2UgaW4gYnl0ZXMgaXMKKy0gICAg ICAgICAgICAvLy8gZGl2aWRlZCBieSBgbWVtOjpzaXplX29mOjo8VD4oKWAuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIFRoaXMgZnVuY3Rpb24gaXMgdGhlIGludmVyc2Ugb2Yg b2Zmc2V0LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgIC8vLyBV bmRlZmluZWQgQmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICog Qm90aCB0aGUgc3RhcnRpbmcgYW5kIG90aGVyIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4gYm91 bmRzCistICAgICAgICAgICAgLy8vIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiB0aGUgc2Ft ZSBhbGxvY2F0ZWQgb2JqZWN0LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAq IFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0ZXMsIGNhbm5vdCBvdmVy ZmxvdworLSAgICAgICAgICAgIC8vLyBhbiBgaXNpemVgLgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyAqIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBwb2ludGVycywgaW4gYnl0 ZXMsIG11c3QgYmUgYW4gZXhhY3QKKy0gICAgICAgICAgICAvLy8gbXVsdGlwbGUgb2YgdGhlIHNp emUgb2YgYFRgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBkaXN0 YW5jZSBiZWluZyBpbiBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKKy0g ICAgICAgICAgICAvLy8gdGhlIGFkZHJlc3Mgc3BhY2UuCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5lcmFsbHkg dHJ5IHRvIGVuc3VyZQorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBh IHNpemUgd2hlcmUgYW4gb2Zmc2V0IGlzIGEgY29uY2Vybi4gRm9yCistICAgICAgICAgICAgLy8v IGluc3RhbmNlLCBgVmVjYCBhbmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9y ZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28gYHB0cl9pbnRv X3ZlYy5vZmZzZXRfZnJvbSh2ZWMuYXNfcHRyKCkpYAorLSAgICAgICAgICAgIC8vLyBpcyBhbHdh eXMgc2FmZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9y bXMgZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCistICAgICAgICAg ICAgLy8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3Jt IGNhbiBldmVyCistICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjYzIGJ5dGVz IGR1ZSB0byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCistICAgICAgICAgICAgLy8vIHNwbGl0 dGluZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQgYW5kIDE2LWJpdAor LSAgICAgICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVl c3QgZm9yIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0 aCB0aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4KKy0gICAgICAgICAgICAv Ly8gQXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvciBt ZW1vcnkKKy0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1heSBiZSB0b28gbGFyZ2UgdG8g aGFuZGxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldF9mcm9tYCBpbnN0ZWFkIGlmIHRo ZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNm eS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCistICAgICAgICAgICAgLy8v IHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIG9mZnNl dF9mcm9tKHNlbGYsIG9yaWdpbjogU2VsZikgLT4gJGlzaXplX3R5IHsKKy0gICAgICAgICAgICAg ICAgLy8gRklYTUU6IHNob3VsZCB1c2UgTExWTSdzIGBzdWIgbnN3IG51d2AuCistICAgICAgICAg ICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0X2Zyb20ob3JpZ2luKQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0d28g cG9pbnRlcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSByZXR1cm5l ZCB2YWx1ZSBpcyBpbiB1bml0cyBvZiBgVGA6IHRoZSBkaXN0YW5jZSBpbiBieXRlcyBpcworLSAg ICAgICAgICAgIC8vLyBkaXZpZGVkIGJ5IGBtZW06OnNpemVfb2Y6OjxUPigpYC4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgdGhlIGFkZHJlc3MgZGlmZmVyZW50IGJldHdl ZW4gdGhlIHR3byBwb2ludGVycyBpcyBub3QgYQorLSAgICAgICAgICAgIC8vLyBtdWx0aXBsZSBv ZiBgbWVtOjpzaXplX29mOjo8VD4oKWAgdGhlbiB0aGUgcmVzdWx0IG9mIHRoZQorLSAgICAgICAg ICAgIC8vLyBkaXZpc2lvbiBpcyByb3VuZGVkIHRvd2FyZHMgemVyby4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gVGhvdWdoIHRoaXMgbWV0aG9kIGlzIHNhZmUgZm9yIGFueSB0 d28gcG9pbnRlcnMsIG5vdGUgdGhhdCBpdHMKKy0gICAgICAgICAgICAvLy8gcmVzdWx0IHdpbGwg YmUgbW9zdGx5IHVzZWxlc3MgaWYgdGhlIHR3byBwb2ludGVycyBhcmVuJ3QgaW50bworLSAgICAg ICAgICAgIC8vLyB0aGUgc2FtZSBhbGxvY2F0ZWQgb2JqZWN0LCBmb3IgZXhhbXBsZSBpZiB0aGV5 IHBvaW50IHRvIHR3bworLSAgICAgICAgICAgIC8vLyBkaWZmZXJlbnQgbG9jYWwgdmFyaWFibGVz LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19v ZmZzZXRfZnJvbShzZWxmLCBvcmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7CistICAgICAgICAg ICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZikgfTsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICRpc2l6ZV90eSA9IHVuc2FmZSB7IGNy YXRlOjptZW06OnRyYW5zbXV0ZShvcmlnaW4pIH07CistICAgICAgICAgICAgICAgIC8vIG5vdGU6 IHstLC99IGN1cnJlbnRseSBwZXJmb3JtIHdyYXBwaW5nX3tzdWIsIGRpdn0KKy0gICAgICAgICAg ICAgICAgKHkgLSB4KSAvIChjcmF0ZTo6bWVtOjpzaXplX29mOjo8VD4oKSBhcyBpc2l6ZSkKKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIG9mZnNldCBm cm9tIGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9yCistICAgICAgICAgICAgLy8vIGAub2Zmc2V0 KGNvdW50IGFzIGlzaXplKWApLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBg Y291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIDMgcmVwcmVzZW50cyBh CistICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClg IGJ5dGVzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBj b25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgIC8vLyBV bmRlZmluZWQgQmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICog Qm90aCB0aGUgc3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGlu CistICAgICAgICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4g YWxsb2NhdGVkIG9iamVjdC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBU aGUgY29tcHV0ZWQgb2Zmc2V0LCBpbiBieXRlcywgY2Fubm90IG92ZXJmbG93IGFuIGBpc2l6ZWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogVGhlIG9mZnNldCBiZWluZyBp biBib3VuZHMgY2Fubm90IHJlbHkgb24gIndyYXBwaW5nIGFyb3VuZCIKKy0gICAgICAgICAgICAv Ly8gdGhlIGFkZHJlc3Mgc3BhY2UuIFRoYXQgaXMsIHRoZSBpbmZpbml0ZS1wcmVjaXNpb24gc3Vt IG11c3QgZml0CistICAgICAgICAgICAgLy8vIGluIGEgYHVzaXplYC4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdl bmVyYWxseSB0cmllcyB0byBlbnN1cmUKKy0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2 ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgorLSAgICAg ICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFs bG9jYXRlIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNv IGB2ZWMuYXNfcHRyKCkuYWRkKHZlYy5sZW4oKSlgIGlzIGFsd2F5cworLSAgICAgICAgICAgIC8v LyBzYWZlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRmb3Jt cyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KKy0gICAgICAgICAg ICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZvcm0g Y2FuIGV2ZXIKKy0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyNjMgYnl0ZXMg ZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKKy0gICAgICAgICAgICAvLy8gc3BsaXR0 aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJpdCBhbmQgMTYtYml0Cist ICAgICAgICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVxdWVz dCBmb3IgbW9yZSB0aGFuCistICAgICAgICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcyB3aXRo IHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgorLSAgICAgICAgICAgIC8v LyBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9yIG1l bW9yeQorLSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJlIHRvbyBsYXJnZSB0byBo YW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9uLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNv bnN0cmFpbnRzCistICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhl IG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCistICAgICAgICAgICAgLy8vIHRoYXQg aXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6c2hvdWxkX2lt cGxlbWVudF90cmFpdCldCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBhZGQoc2VsZiwgY291 bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYub2Zmc2V0KGNv dW50LmNhc3QoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0 ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciAoY29udmVuaWVuY2UgZm9yCistICAgICAgICAg ICAgLy8vIGAub2Zmc2V0KChjb3VudCBhcyBpc2l6ZSkud3JhcHBpbmdfbmVnKCkpYCkuCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsg ZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRl ciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0 aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVz dWx0aW5nIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4KKy0gICAgICAgICAgICAvLy8gYm91bmRz IG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2JqZWN0LgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRoZSBjb21wdXRlZCBvZmZzZXQgY2Fubm90 IGV4Y2VlZCBgaXNpemU6Ok1BWGAgKipieXRlcyoqLgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3 cmFwcGluZyBhcm91bmQiCistICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0 IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSBtdXN0IGZpdAorLSAgICAgICAgICAgIC8v LyBpbiBhIHVzaXplLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgY29t cGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRyaWVzIHRvIGVuc3VyZQorLSAg ICAgICAgICAgIC8vLyBhbGxvY2F0aW9ucyBuZXZlciByZWFjaCBhIHNpemUgd2hlcmUgYW4gb2Zm c2V0IGlzIGEgY29uY2Vybi4gRm9yCistICAgICAgICAgICAgLy8vIGluc3RhbmNlLCBgVmVjYCBh bmQgYEJveGAgZW5zdXJlIHRoZXkgbmV2ZXIgYWxsb2NhdGUgbW9yZSB0aGFuCistICAgICAgICAg ICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcywgc28KKy0gICAgICAgICAgICAvLy8gYHZlYy5hc19w dHIoKS5hZGQodmVjLmxlbigpKS5zdWIodmVjLmxlbigpKWAgaXMgYWx3YXlzIHNhZmUuCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFs bHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0 aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgorLSAg ICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI8c3VwPjYzPC9zdXA+IGJ5dGVzIGR1 ZSB0byBwYWdlLXRhYmxlCistICAgICAgICAgICAgLy8vIGxpbWl0YXRpb25zIG9yIHNwbGl0dGlu ZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQKKy0gICAgICAgICAgICAv Ly8gYW5kIDE2LWJpdCBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3Qg Zm9yIG1vcmUKKy0gICAgICAgICAgICAvLy8gdGhhbiBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0 aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzCistICAgICAgICAgICAgLy8vIEV4dGVuc2lvbi4g QXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvcgorLSAg ICAgICAgICAgIC8vLyBtZW1vcnkgbWFwcGVkIGZpbGVzICptYXkqIGJlIHRvbyBsYXJnZSB0byBo YW5kbGUgd2l0aCB0aGlzCistICAgICAgICAgICAgLy8vIGZ1bmN0aW9uLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBp bnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1 bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCistICAg ICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0 aW1pemF0aW9ucy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW2FsbG93 KGNsaXBweTo6c2hvdWxkX2ltcGxlbWVudF90cmFpdCldCistICAgICAgICAgICAgcHViIHVuc2Fm ZSBmbiBzdWIoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIGxldCB4OiAkaXNpemVfdHkgPSBjb3VudC5jYXN0KCk7CistICAgICAgICAgICAgICAgIC8v IG5vdGU6IC0gaXMgY3VycmVudGx5IHdyYXBwaW5nX25lZworLSAgICAgICAgICAgICAgICBzZWxm Lm9mZnNldCgteCkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0 ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGljLgor LSAgICAgICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KGNvdW50 IGFzIGlzaXplKWApCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAg aXMgaW4gdW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKKy0gICAg ICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBu ZWVkIHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCistICAgICAgICAgICAgLy8vIHBvdGVudGlh bGx5IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgYHVuc2FmZWApLgor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBBbHdheXMgdXNlIGAuYWRkKGNvdW50 KWAgaW5zdGVhZCB3aGVuIHBvc3NpYmxlLCBiZWNhdXNlIGBhZGRgCistICAgICAgICAgICAgLy8v IGFsbG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgYmV0dGVyLgorLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19hZGQoc2VsZiwgY291bnQ6ICR1 c2l6ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0 KGNvdW50LmNhc3QoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1 bGF0ZXMgdGhlIG9mZnNldCBmcm9tIGEgcG9pbnRlciB1c2luZyB3cmFwcGluZyBhcml0aG1ldGlj LgorLSAgICAgICAgICAgIC8vLyAoY29udmVuaWVuY2UgZm9yIGAud3JhcHBpbmdfb2Zmc2V0KChj b3VudCBhcworLSAgICAgICAgICAgIC8vLyBpc2l6ZSkud3JhcHBpbmdfc3ViKCkpYCkKKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBUOyBl LmcuIGEgYGNvdW50YCBvZiAzIHJlcHJlc2VudHMgYQorLSAgICAgICAgICAgIC8vLyBwb2ludGVy IG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBieXRlcy4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gVGhlIHJlc3VsdGluZyBwb2ludGVyIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYm91bmRz LCBidXQgaXQgaXMKKy0gICAgICAgICAgICAvLy8gcG90ZW50aWFsbHkgaGF6YXJkb3VzIHRvIGRl cmVmZXJlbmNlICh3aGljaCByZXF1aXJlcyBgdW5zYWZlYCkuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIEFsd2F5cyB1c2UgYC5zdWIoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9z c2libGUsIGJlY2F1c2UgYHN1YmAKKy0gICAgICAgICAgICAvLy8gYWxsb3dzIHRoZSBjb21waWxl ciB0byBvcHRpbWl6ZSBiZXR0ZXIuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGZuIHdyYXBwaW5nX3N1YihzZWxmLCBjb3VudDogJHVzaXplX3R5KSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgbGV0IHg6ICRpc2l6ZV90eSA9IGNvdW50LmNhc3QoKTsKKy0gICAg ICAgICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXQoLTEgKiB4KQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0gICAgICAgICAgICAv Ly8gU2h1ZmZsZSB2ZWN0b3IgZWxlbWVudHMgYWNjb3JkaW5nIHRvIGBpbmRpY2VzYC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2h1ZmZsZTFfZHluPEk+KHNl bGYsIGluZGljZXM6IEkpIC0+IFNlbGYKKy0gICAgICAgICAgICAgICAgd2hlcmUKKy0gICAgICAg ICAgICAgICAgU2VsZjogY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2Vz ID0gST4sCistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxl MV9keW46OlNodWZmbGUxRHluOjpzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlcykKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBhbHRlcm5hdGluZyA9IFtub25fbnVsbCwgbnVsbCwgbm9uX251 bGwsIG51bGwsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsdGVybmF0 aW5nID0gJGlkOjo8aTMyPjo6c3BsYXQobnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWx0ZXJuYXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIG5vbl9udWxsKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8JGlkPGkzMj4KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5 bj46OkluZGljZXM7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiA9IFswLCAwLCAy LCAyLCA0LCA0LCAuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbiA9IHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46Omxh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAo aSBhcyB1OCkuaW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChp IGFzIHU4IC0gMSkuaW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBvZGQgPSBbMSwgMSwgMywgMywgNSwgNSwgLi4uXQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBvZGQgPSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg diA9IEluZGljZXM6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgJSAyICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggKyAxKS5pbnRvKCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNodWZmbGUxX2R5bihldmVuKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpCistICAg ICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6 OjxpMzI+OjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVm ZmxlMV9keW4ob2RkKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkz Mj46OnNwbGF0KG51bGwpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwzMiArMCwwIEBACistLy8hIEltcGxlbWVudGF0aW9uIG9m IHRoZSBgb3BzYCB0cmFpdHMKKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX21hc2tfYml0d2lz ZTsKKy0jW21hY3JvX3VzZV0KKy1tb2Qgc2NhbGFyX21hc2tfYml0d2lzZTsKKy0KKy0jW21hY3Jv X3VzZV0KKy1tb2QgdmVjdG9yX2FyaXRobWV0aWM7CistI1ttYWNyb191c2VdCistbW9kIHNjYWxh cl9hcml0aG1ldGljOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3JfYml0d2lzZTsKKy0j W21hY3JvX3VzZV0KKy1tb2Qgc2NhbGFyX2JpdHdpc2U7CistCistI1ttYWNyb191c2VdCistbW9k IHZlY3Rvcl9zaGlmdHM7CistI1ttYWNyb191c2VdCistbW9kIHNjYWxhcl9zaGlmdHM7CistCist I1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9yb3RhdGVzOworLQorLSNbbWFjcm9fdXNlXQorLW1v ZCB2ZWN0b3JfbmVnOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3JfaW50X21pbl9tYXg7 CistCistI1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9mbG9hdF9taW5fbWF4OworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRo bWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxh cl9hcml0aG1ldGljLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0aWMucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDIwMyArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2Up IHZlY3Rvci1zY2FsYXIgLyBzY2FsYXItdmVjdG9yIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4KKy0K Ky1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMgeworLSAgICAoWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+ IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gYWRkKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHNlbGYgKyAkaWQ6OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkPCRpZD4gZm9yICRlbGVtX3R5 IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAg ICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSArIG90aGVyCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWI8JGVsZW1fdHk+IGZvciAk aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBzdWIoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgc2VsZiAtICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWI8JGlkPiBmb3Ig JGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1YihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQg eworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIC0gb3RoZXIKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bDwkZWxlbV90 eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG11bChzZWxmLCBvdGhlcjogJGVsZW1fdHkp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmICogJGlkOjpzcGxhdChvdGhlcikKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bDwk aWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbXVsKHNlbGYsIG90aGVyOiAkaWQp IC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgKiBvdGhlcgorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2 PCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGl2KHNlbGYsIG90aGVyOiAk ZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgLyAkaWQ6OnNwbGF0KG90 aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6RGl2PCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRp ZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBkaXYoc2VsZiwgb3Ro ZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAvIG90 aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpSZW08JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g U2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiByZW0oc2VsZiwg b3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiAlICRpZDo6 c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpSZW08JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0 cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHJlbShz ZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNl bGYpICUgb3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBs IGNyYXRlOjpvcHM6OkFkZEFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAk ZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICsgb3RoZXI7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWJB c3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIHN1Yl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAtIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsQXNzaWduPCRlbGVtX3R5PiBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWxfYXNz aWduKCZtdXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgKiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OkRpdkFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGl2X2Fzc2lnbigmbXV0IHNlbGYsIG90 aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC8gb3RoZXI7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpSZW1Bc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIHJlbV9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsK Ky0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAlIG90aGVyOworLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX29wc19zY2FsYXJfYXJpdGg+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9hcml0 aG1ldGljKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6aSA9IDAgYXMgJGVsZW1f dHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9pID0gMSBhcyAkZWxlbV90eTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSAyIGFzICRlbGVtX3R5OworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBmaSA9IDQgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KHppKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbyA9ICRpZDo6c3BsYXQob2kpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0 ID0gJGlkOjpzcGxhdCh0aSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6 OnNwbGF0KGZpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICsgeiwgeik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ICsgemksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEob2kgKyB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gKyB6aSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAr IHosIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHppLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICsgdCwgZik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgdGksIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHN1YgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkg LSB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLSB6aSwgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAtIHosIG8pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAtIHppLCBvKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC0geiwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0IC0gemksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZmkgLSB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg LSB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gbyAtIG8s IHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIG9pIC0gb2ksIHQp OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11bAorLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoemkgKiB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHogKiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 aSAqIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIG9pLCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICogdCwgeik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogdGksIHopOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgKiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8gKiB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0aSAqIHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCAqIHRpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXYKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIC8gbywgeik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6IC8gb2ksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodGkgLyBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgLyBvaSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAvIG8s IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIG9pLCBmKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC8gdCwgbyk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC8gdGksIG8pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZmkgLyB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgLyB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtCist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAlIG8sIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAlIG9pLCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGZpICUgdCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmICUgdGksIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdiArPSBvaTsgLy8gYWRkX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC09IG9p OyAvLyBzdWJfYXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB0OworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ICo9IG9pOyAvLyBtdWxfYXNzaWduCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgKj0gdGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLz0gb2k7IC8vIGRpdl9hc3NpZ24K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiAvPSB0aTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAlPSB0 aTsgLy8gcmVtX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy9zY2FsYXJfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvc2NhbGFyX2JpdHdpc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lz ZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYyICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxh bmUtd2lzZSkgdmVjdG9yLXNjYWxhciAvIHNjYWxhci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25z LgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc19zY2FsYXJfYml0d2lzZSB7CistICAgICgKKy0g ICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAkaWQ6 aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIp CistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGVsZW1fdHk+ IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6ICRlbGVtX3R5 KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiBeICRpZDo6c3BsYXQob3RoZXIpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRY b3I8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhl cjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIF4gb3Ro ZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdEFuZDwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdGFuZChz ZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmICYg JGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gYml0YW5kKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQoc2VsZikgJiBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3I8JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4gZm9yICRlbGVtX3R5 IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAg ICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwgb3RoZXIKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZEFzc2lnbjwkZWxl bV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4g Yml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgfCBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OkJpdFhvckFzc2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiAkZWxlbV90eSkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9iaXR3aXNlPl0geworLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIG9wc19zY2FsYXJfYml0d2lzZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg emkgPSAwIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9IDEg YXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0gMiBhcyAkZWxl bV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoemkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdChvaSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KHRpKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRBbmQ6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSAmIG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICYgeiwgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgemksIHopOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiBvLCB6KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogJiBvaSwgeik7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6aSAmIHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiAmIHppLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpICYgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgdGks IHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgJiBvLCB6KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBvaSwgeik7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSAmIHQsIHopOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyAmIHRpLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBCaXRPcjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIHwgbywg byk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgb2ksIG8pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgfCB6LCBvKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gfCB6aSwgbyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSB8IG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiB8IG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHppIHwgeiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgemks IHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgfCB0LCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0aSwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSB8IHQsIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpIHwgeiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IHwgemksIHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4gbywgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gb2ksIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6aSBeIG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBe IG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIF4geiwgbyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIF4gemksIG8pOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB0LCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0aSwgeik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSBeIHosIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCBeIHppLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHppIF4gdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gdGks IHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQW5kQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHRpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIE9yQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IG9pOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSBvaTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX21hc2tf Yml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2Nh bGFyX21hc2tfYml0d2lzZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2Uu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0MCArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5l LXdpc2UpIHZlY3Rvci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVz ISBpbXBsX29wc19zY2FsYXJfbWFza19iaXR3aXNlIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVt X3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAgKSA9PiB7 CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvcjxib29sPiBmb3IgJGlkIHsKKy0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgc2VsZiBeICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8JGlkPiBmb3IgYm9vbCB7Cist ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAg ICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgXiBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kPGJvb2w+IGZvciAkaWQg eworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICBzZWxmICYgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDwkaWQ+IGZvciBi b29sIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsK Ky0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAmIG90aGVyCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjxib29sPiBm b3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IGJvb2wpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICBzZWxmIHwgJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRpZD4g Zm9yIGJvb2wgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRp ZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgfCBvdGhlcgorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kQXNz aWduPGJvb2w+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkgeworLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbjxib29sPiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogYm9vbCkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3Ro ZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpCaXRYb3JBc3NpZ248Ym9vbD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBib29sKSB7Cist ICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoK Ky0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFy X21hc2tfYml0d2lzZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGkgPSB0cnVl OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaSA9IGZhbHNlOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KGZpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKHQgIT0gZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKHQgPT0g ZikpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpICYgZiwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICYgZmksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZmkgJiB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgJiB0aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAmIHQs IHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIHRpLCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICYgZiwgZik7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgZmksIGYpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIEJpdE9yOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dGkgfCBmLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCBmaSwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSB8IHQsIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiB8IHRpLCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIHwgdCwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IHwgdGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZmkgfCBmLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgfCBmaSwgZik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiBmLCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiBmaSwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmaSBeIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiBeIHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpIF4gdCwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdGks IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgXiBmLCBmKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiBmaSwgZik7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRB c3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdGk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g T3JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0gdGk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gWE9SQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBm OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IF49IHRpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRzLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTA2ICswLDAg QEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXNjYWxhciBzaGlmdHMgb3BlcmF0 aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaGw8dTMyPiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gc2hsKHNlbGYsIG90aGVyOiB1MzIpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBzZWxmIDw8ICRpZDo6c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTaHI8dTMyPiBmb3Ig JGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gc2hyKHNlbGYsIG90aGVyOiB1MzIpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICBzZWxmID4+ICRpZDo6c3BsYXQob3RoZXIgYXMgJGVsZW1fdHkpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpT aGxBc3NpZ248dTMyPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBzaGxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IHUzMikgeworLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmIDw8IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyQXNzaWduPHUzMj4gZm9yICRpZCB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hyX2Fzc2lnbigmbXV0IHNlbGYs IG90aGVyOiB1MzIpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX3NoaWZ0cz5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQi KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3codW5yZWFjaGFibGVfY29k ZSwgdW51c2VkX3ZhcmlhYmxlcykKKy0gICAgICAgICAgICAgICAgICAgICldCistICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAg ICAgICAgICAgICAgIC8vfl4gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFj a2VkX3NpbWQvaXNzdWVzLzMxNworLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9z aGlmdHMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxh dCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6 c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAk aWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHppID0gMCBhcyB1MzI7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9IDEgYXMgdTMyOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdGkgPSAyIGFzIHUzMjsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG1heGkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKG1lbTo6 c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzIHUzMjsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gc2hyCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiA+PiB6aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoeiA+PiBvaSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiA+PiB0aSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+ PiB0aSwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJn ZXRfYXJjaCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSldIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzEzCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm47CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+IHppLCBvKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHppLCB0KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHppLCBmKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heGksIHopOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPj4gb2ksIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gb2ksIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gdGksIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gb2ksIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdGksIG8pOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4aSwgeik7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHNobAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHogPDwgemksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8g PDwgemksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwg emksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgemks IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgbWF4aSwg eik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCBvaSwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB0aSwgZik7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8PCBvaSwgZik7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgIC8vIHNocl9hc3NpZ24KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ID4+PSBvaTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgLy8gc2hsX2Fzc2lnbgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgPDw9IG9pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJp dGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVj dG9yX2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfYXJpdGhtZXRpYy5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMTQ4ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lz ZSkgdmVjdG9yLXZlY3RvciBhcml0aG1ldGljIG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMh IGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkFkZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9 IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkKHNlbGYs IG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX2FkZDsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2FkZChzZWxm LjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbCBjcmF0ZTo6b3BzOjpTdWIgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQg PSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1YihzZWxm LCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9zdWI7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9zdWIoc2Vs Zi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6TXVsIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0 ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWwoc2Vs Ziwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OnNpbWRfbXVsOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfbXVsKHNl bGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OkRpdiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1 dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZGl2KHNl bGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjpzaW1kX2RpdjsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2Rpdihz ZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW0gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRw dXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHJlbShz ZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9yZW07CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9yZW0o c2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIGltcGwgY3JhdGU6Om9wczo6QWRkQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGFkZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2Vs ZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICsgb3RoZXI7CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWJBc3NpZ24g Zm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc3ViX2Fz c2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0g KnNlbGYgLSBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6Ok11bEFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBtdWxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsK Ky0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAqIG90aGVyOworLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2QXNzaWduIGZvciAk aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGRpdl9hc3NpZ24o Jm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxm IC8gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpSZW1Bc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gcmVtX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAg ICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJSBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X29wc192ZWN0b3JfYXJpdGg+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9hcml0aG1ldGlj KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpz cGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhZGQK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKyB6LCB6KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKyB6LCBvKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQgKyB6LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQgKyB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWIKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLSB6LCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gLSB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgLSB6LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYgLSB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYg LSBvIC0gbywgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVsCistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogeiwgeik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6ICogbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6ICogdCwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv ICogdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICogdCwgZik7 CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGl2CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh6IC8gbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IC8gbywgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8g bywgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC8gdCwgbyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8gdCwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gcmVtCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvICUgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICUgdCwg eik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICs9IG87IC8vIGFk ZF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAtPSBvOyAvLyBzdWJfYXNzaWduCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICo9 IG87IC8vIG11bF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAqPSB0OworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2IC89IG87IC8vIGRpdl9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAv PSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ICU9IHQ7IC8vIHJlbV9hc3NpZ24KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDEyOSArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYml0 d2lzZSBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfYml0d2lz ZSB7CistICAgICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 CistICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhw ciwgJGZhbHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpO b3QgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5vdChzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgU2VsZjo6c3BsYXQoJHRydWUpIF4gc2VsZgorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yIGZvciAkaWQgeworLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9yOworLSAgICAgICAgICAgICAgICB1 bnNhZmUgeyBTaW1kKHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZCBmb3IgJGlkIHsK Ky0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FuZDsKKy0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgU2ltZChzaW1kX2FuZChzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPciBmb3IgJGlk IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfb3I7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmRBc3NpZ24g Zm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5k X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgJiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxm KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbiBm b3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3Jf YXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYg PSAqc2VsZiBeIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfYml0d2lz ZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiBvcHNfdmVjdG9yX2JpdHdpc2UoKSB7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSAkaWQ6OnNwbGF0KCF6LmV4dHJhY3Qo MCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdDoKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCF6LCBtKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKCFtLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRBbmQ6 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgbywgbyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgeiwgeik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh6ICYgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6ICYgeiwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICYgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYg bywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgdCwgeik7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0T3I6CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvIHwgbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvIHwgeiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 IHwgbywgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgeiwgeik7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgdCwgdCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgdCwgdCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgeiwgdCk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQml0WE9SOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBe IG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIHosIHopOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIG8sIG8pOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBeIHosIG8pOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCBeIHQsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCBeIHosIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoeiBeIHQsIHQpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHQ7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0g bzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg Xj0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9y X2Zsb2F0X21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0 X21pbl9tYXgucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDc0ICswLDAgQEAKKy0vLyEgVmVydGlj YWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBtaW5gIGFuZCBgbWF4YCBmb3IgZmxvYXRpbmctcG9pbnQg dmVjdG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2Zsb2F0X21pbl9tYXgg eworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8g TWluaW11bSBvZiB0d28gdmVjdG9ycy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZSBvZiBl YWNoIG9mCistICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG1pbihzZWxmLCB4OiBTZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtaW47Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9mbWluKHNlbGYuMCwgeC4wKSkgfQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTWF4aW11bSBvZiB0d28gdmVjdG9y cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0 b3IgY29udGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBlYWNoIG9mCistICAgICAgICAgICAg Ly8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIG1heChzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2ZtYXg7CistICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IFNpbWQoc2ltZF9mbWF4KHNlbGYuMCwgeC4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCist ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMjMKKy0gICAgICAgICAgICAgICAgICAgIGFs bCh0YXJnZXRfYXJjaCA9ICJtaXBzIiwgdGFyZ2V0X2VuZGlhbiA9ICJiaWciKSwKKy0gICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIm1pcHM2NCIsCistICAgICAgICAgICAgICAgICkp KV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9taW5fbWF4Pl0g eworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIG1pbl9tYXgoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg byA9ICRpZDo6c3BsYXQoMS4gYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB0ID0gJGlkOjpzcGxhdCgyLiBhcyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBtID0gbzsgLy8gWzEuLCAyLiwgMS4sIDIuLCAuLi5dCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCBvbiA9IG87CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtID0g bS5yZXBsYWNlKGksIDIuIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uID0gb24ucmVwbGFjZShpLCBuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG8ubWluKHQpLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG0ubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8u bWluKG0pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKHQp LCBtKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG0pLCBtKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KHQpLCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KG8pLCBtKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG0pLCBtKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKG0ubWF4KHQpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQubWF4KG0pLCB0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG9uLm1pbihvKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShvLm1pbihvbiksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob24u bWF4KG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ubWF4KG9u KSwgbyk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9t YXgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50X21pbl9tYXgucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDU3ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBt aW5gIGFuZCBgbWF4YCBmb3IgaW50ZWdlciB2ZWN0b3JzLgorLQorLW1hY3JvX3J1bGVzISBpbXBs X29wc192ZWN0b3JfaW50X21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwg JGlkIHsKKy0gICAgICAgICAgICAvLy8gTWluaW11bSBvZiB0d28gdmVjdG9ycy4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmlu ZyB0aGUgbWluaW11bSB2YWx1ZSBvZiBlYWNoIG9mCistICAgICAgICAgICAgLy8vIHRoZSBpbnB1 dCB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IGZuIG1pbihzZWxmLCB4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZi5s dCh4KS5zZWxlY3Qoc2VsZiwgeCkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8v IE1heGltdW0gb2YgdHdvIHZlY3RvcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIFJldHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWUgb2Yg ZWFjaCBvZgorLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtYXgoc2VsZiwgeDogU2VsZikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYuZ3QoeCkuc2VsZWN0KHNlbGYsIHgpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7JHRlc3RfdHQ6Cist ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192 ZWN0b3JfbWluX21heD5dIHsKKy0gICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQor LSAgICAgICAgICAgICAgICBmbiBtaW5fbWF4KCkgeworLSAgICAgICAgICAgICAgICAgICAgbGV0 IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0 IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBtID0gbzsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG0gPSBtLnJlcGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1pbih0KSwgbyk7CistICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobS5taW4obyksIG8pOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1p bihtKSwgbyk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKHQpLCBtKTsK Ky0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obSksIG0pOworLQorLSAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heCh0KSwgdCk7CistICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQubWF4KG8pLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobS5tYXgobyksIG0pOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1h eChtKSwgbSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KHQpLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobSksIHQpOworLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0 b3JfbWFza19iaXR3aXNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMTYgKzAsMCBAQAorLS8v ISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4K Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX21hc2tfYml0d2lzZSB7CistICAgICgK Ky0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4 cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpOb3QgZm9yICRpZCB7 CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIG5vdChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg U2VsZjo6c3BsYXQoJHRydWUpIF4gc2VsZgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5 cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9yOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1k KHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZCBmb3IgJGlkIHsKKy0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FuZDsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsg U2ltZChzaW1kX2FuZChzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPciBmb3IgJGlkIHsKKy0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfb3I7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmRBc3NpZ24gZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0 IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBv dGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdE9yQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAg ICAgICAgICAgICpzZWxmID0gKnNlbGYgfCBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvckFzc2lnbiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXR4b3JfYXNzaWduKCZtdXQg c2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiBeIG90 aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhewor LSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAg ICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfbWFza19iaXR3aXNlPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIG9wc192ZWN0b3JfbWFza19iaXR3aXNlKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEodCAhPSBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEodCA9 PSBmKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90OgorLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoIXQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCwgIWYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFu ZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiBmLCBmKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiB0LCBmKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgJiBmLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBC aXRPcjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCBmLCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCB0LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgfCB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGYgfCBmLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAv LyBCaXRYT1I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gZiwgdCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gdCwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdCwgZik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShmIF4gZiwgZik7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmRBc3NpZ246CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgJj0gdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdiB8PSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gZjsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiBePSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy92ZWN0b3JfbmVnLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsNDMgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNl KSB2ZWN0b3IgYE5lZ2AuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9uZWcgewor LSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TmVnIGZvciAkaWQgewor LSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBuZWcoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNl bGY6OnNwbGF0KC0xIGFzICRlbGVtX3R5KSAqIHNlbGYKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNf dmVjdG9yX25lZz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICBmbiBuZWcoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBueiA9ICRpZDo6c3BsYXQoLSgwIGFzICRlbGVt X3R5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vID0gJGlkOjpzcGxhdCgtKDEg YXMgJGVsZW1fdHkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbnQgPSAkaWQ6OnNw bGF0KC0oMiBhcyAkZWxlbV90eSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZiA9 ICRpZDo6c3BsYXQoLSg0IGFzICRlbGVtX3R5KSk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgteiwgbnopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoLW8sIG5vKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKC10LCBudCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgtZiwgbmYpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgLW56KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8sIC1ubyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0LCAtbnQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwg LW5mKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3JvdGF0ZXMucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsOTIg KzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Igcm90YXRlcyBvcGVyYXRp b25zLgorLSMhW2FsbG93KHVudXNlZCldCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rv cl9yb3RhdGVzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRp ZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAg ICAgICAgLy8vIFNoaWZ0cyB0aGUgYml0cyBvZiBlYWNoIGxhbmUgdG8gdGhlIGxlZnQgYnkgdGhl IHNwZWNpZmllZAorLSAgICAgICAgICAgIC8vLyBhbW91bnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcg bGFuZSBvZiBgbmAsIHdyYXBwaW5nIHRoZQorLSAgICAgICAgICAgIC8vLyB0cnVuY2F0ZWQgYml0 cyB0byB0aGUgZW5kIG9mIHRoZSByZXN1bHRpbmcgaW50ZWdlci4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gTm90ZTogdGhpcyBpcyBuZWl0aGVyIHRoZSBzYW1lIG9wZXJhdGlv biBhcyBgPDxgIG5vciBlcXVpdmFsZW50CistICAgICAgICAgICAgLy8vIHRvIGBzbGljZTo6cm90 YXRlX2xlZnRgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBy b3RhdGVfbGVmdChzZWxmLCBuOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGNvbnN0 IExBTkVfV0lEVEg6ICRlbGVtX3R5ID0KKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnNpemVfb2Y6OjwkZWxlbV90eT4oKSBhcyAkZWxlbV90eSAqIDg7CistICAgICAgICAgICAgICAg IC8vIFByb3RlY3QgYWdhaW5zdCB1bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQg c2hpZnRzCistICAgICAgICAgICAgICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7CistICAgICAg ICAgICAgICAgIChzZWxmIDw8IG4pIHwgKHNlbGYgPj4gKChMQU5FX1dJRFRIIC0gbikgJSBMQU5F X1dJRFRIKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFNoaWZ0cyB0aGUg Yml0cyBvZiBlYWNoIGxhbmUgdG8gdGhlIHJpZ2h0IGJ5IHRoZSBzcGVjaWZpZWQKKy0gICAgICAg ICAgICAvLy8gYW1vdW50IGluIHRoZSBjb3JyZXNwb25kaW5nIGxhbmUgb2YgYG5gLCB3cmFwcGlu ZyB0aGUKKy0gICAgICAgICAgICAvLy8gdHJ1bmNhdGVkIGJpdHMgdG8gdGhlIGJlZ2lubmluZyBv ZiB0aGUgcmVzdWx0aW5nIGludGVnZXIuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIE5vdGU6IHRoaXMgaXMgbmVpdGhlciB0aGUgc2FtZSBvcGVyYXRpb24gYXMgYD4+YCBub3Ig ZXF1aXZhbGVudAorLSAgICAgICAgICAgIC8vLyB0byBgc2xpY2U6OnJvdGF0ZV9yaWdodGAuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHJvdGF0ZV9yaWdodChz ZWxmLCBuOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6 ICRlbGVtX3R5ID0KKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6Ojwk ZWxlbV90eT4oKSBhcyAkZWxlbV90eSAqIDg7CistICAgICAgICAgICAgICAgIC8vIFByb3RlY3Qg YWdhaW5zdCB1bmRlZmluZWQgYmVoYXZpb3IgZm9yIG92ZXItbG9uZyBiaXQgc2hpZnRzCistICAg ICAgICAgICAgICAgIGxldCBuID0gbiAlIExBTkVfV0lEVEg7CistICAgICAgICAgICAgICAgIChz ZWxmID4+IG4pIHwgKHNlbGYgPDwgKChMQU5FX1dJRFRIIC0gbikgJSBMQU5FX1dJRFRIKSkKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICAvLyBGSVhNRToKKy0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy83NQorLSAgICAgICAgICAgICAgICAj W2NmZyhub3QoYW55KAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiczM5MHgi LAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAic3BhcmM2NCIsCistICAgICAg ICAgICAgICAgICkpKV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rv cl9yb3RhdGU+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQi KSldCistICAgICAgICAgICAgICAgICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL3BhY2tlZF9zaW1kL2lzc3Vlcy8zMTcKKy0gICAgICAgICAgICAgICAgICAgIGZu IHJvdGF0ZV9vcHMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNw bGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlk OjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9 ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtYXggPSAkaWQ6OnNwbGF0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1fdHkpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHJvdGF0ZV9yaWdodAorLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQoeiksIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQobyksIHopOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfcmlnaHQodCksIHopOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfcmlnaHQoeiksIG8pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfcmlnaHQoeiksIHQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQoeiksIGYp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobWF4 KSwgZiA8PCAxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90 YXRlX3JpZ2h0KG8pLCBvIDw8IG1heCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0LnJvdGF0ZV9yaWdodChvKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0LnJvdGF0ZV9yaWdodCh0KSwgbyA8PCBtYXgpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQobyksIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfcmlnaHQodCksIG8pOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHJvdGF0ZV9sZWZ0CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6LnJvdGF0ZV9sZWZ0KHopLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQoeiksIG8pOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodC5yb3RhdGVfbGVmdCh6KSwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9sZWZ0KHopLCBmKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX2xlZnQobWF4KSwgdCk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KG8pLCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX2xlZnQodCksIGYpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfbGVmdChvKSwgZik7CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz L3ZlY3Rvcl9zaGlmdHMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwNiArMCwwIEBACistLy8h IFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3Igc2hpZnRzIG9wZXJhdGlvbnMuCist CistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMgeworLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK Ky0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsPCRpZD4gZm9yICRpZCB7CistICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIHNobChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaGw7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNp bWQoc2ltZF9zaGwoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyPCRpZD4gZm9yICRpZCB7CistICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zaHI7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 IFNpbWQoc2ltZF9zaHIoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsQXNzaWduPCRpZD4gZm9yICRpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hsX2Fzc2lnbigmbXV0 IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgPDwg b3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpTaHJBc3NpZ248JGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBzaHJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAg ICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA+PiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9v cHNfdmVjdG9yX3NoaWZ0cz5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKGFueSh0YXJnZXRfYXJj aCA9ICJzMzkweCIsIHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWxsb3codW5yZWFjaGFibGVfY29kZSwgdW51c2VkX3ZhcmlhYmxlcykK Ky0gICAgICAgICAgICAgICAgICAgICldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3Qo dGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgICAgIC8vfl4gRklY TUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvaXNzdWVzLzMxNwor LSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9zaGlmdHMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1f dHkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXggPSRpZDo6c3BsYXQoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSAq IDggLSAxKSBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gc2hyCistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6ID4+IHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiA+PiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gdCwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHQsIHopOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKGFueSh0YXJnZXRfYXJjaCA9ICJzMzkweCIs IHRhcmdldF9hcmNoID0gInNwYXJjNjQiKSldIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IHJ1c3QgcHJvZHVjZXMgYmFkIGNvZGVnZW4gZm9yIHNoaWZ0czoKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xMworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm47CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobyA+PiB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHQgPj4geiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmID4+IHosIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+ PiBtYXgsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiBv LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPj4gbywgbyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHQsIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBvLCB0KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGYgPj4gdCwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmID4+IG1heCwgeik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g c2hsCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IDw8IHosIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA8PCB6LCBvKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgeiwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmIDw8IHosIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiA8PCBtYXgsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobyA8PCBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8g PDwgdCwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IDw8IG8sIGYp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gc2hyX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHYgPSBvOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID4+PSBvOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHNobF9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA8PD0gbzsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDQgKzAsMCBAQAorLS8vISBWZWN0b3Igb2YgcG9pbnRlcnMKKy0KKy0j W21hY3JvX3VzZV0KKy1tb2QgZ2F0aGVyX3NjYXR0ZXI7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRlci5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRlci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjE2 ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBtYXNrZWQgZ2F0aGVyIGFuZCBzY2F0dGVycyBmb3Ig dmVjdG9ycyBvZiBwb2ludGVycworLQorLW1hY3JvX3J1bGVzISBpbXBsX3B0cl9yZWFkIHsKKy0g ICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1hc2tfdHk6 aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+ CistICAgICAgICB3aGVyZQorLSAgICAgICAgICAgIFtUOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6 U2ltZEFycmF5LAorLSAgICAgICAgeworLSAgICAgICAgICAgIC8vLyBSZWFkcyBzZWxlY3RlZCB2 ZWN0b3IgZWxlbWVudHMgZnJvbSBtZW1vcnkuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3IgYnkgcmVhZGluZyB0aGUgdmFsdWVzIGZy b20gYHNlbGZgIGZvcgorLSAgICAgICAgICAgIC8vLyB0aG9zZSBsYW5lcyB3aG9zZSBgbWFza2Ag aXMgYHRydWVgLCBhbmQgdXNpbmcgdGhlIGVsZW1lbnRzIG9mCistICAgICAgICAgICAgLy8vIGB2 YWx1ZWAgb3RoZXJ3aXNlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBObyBt ZW1vcnkgaXMgYWNjZXNzZWQgZm9yIHRob3NlIGxhbmVzIG9mIGBzZWxmYCB3aG9zZSBgbWFza2Ag aXMKKy0gICAgICAgICAgICAvLy8gYGZhbHNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhp cyBtZXRob2QgaXMgdW5zYWZlIGJlY2F1c2UgaXQgZGVyZWZlcmVuY2VzIHJhdyBwb2ludGVycy4g VGhlCistICAgICAgICAgICAgLy8vIHBvaW50ZXJzIG11c3QgYmUgYWxpZ25lZCB0byBgbWVtOjph bGlnbl9vZjo6PFQ+KClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1 YiB1bnNhZmUgZm4gcmVhZDxNPigKKy0gICAgICAgICAgICAgICAgc2VsZiwKKy0gICAgICAgICAg ICAgICAgbWFzazogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwKKy0gICAgICAgICAgICAgICAgdmFs dWU6IFNpbWQ8W1Q7ICRlbGVtX2NvdW50XT4sCistICAgICAgICAgICAgKSAtPiBTaW1kPFtUOyAk ZWxlbV9jb3VudF0+CistICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgTTogc2Vh bGVkOjpNYXNrLAorLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1fY291bnRdOiBzZWFsZWQ6OlNp bWRBcnJheSwKKy0gICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9nYXRoZXI7CistICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9nYXRoZXIodmFsdWUu MCwgc2VsZi4wLCBtYXNrLjApKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBtb2QgWzwkaWQgX3JlYWQ+XSB7CistICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW3Rlc3Rd CistICAgICAgICAgICAgICAgICAgICBmbiByZWFkKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9IFswX2kzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdltpXSA9IGkgYXMgaTMyOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHB0ciA9ICRpZDo6PGkzMj46Om51bGwoKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9IHB0ci5yZXBsYWNlKGksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmdltpXSBhcyAqY29uc3QgaTMyIGFzICptdXQgaTMy CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBtYXNrIGVsZW1lbnRzIGFy ZSB0cnVlOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gJG1hc2tfdHk6OnNw bGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYgPSBTaW1kOjo8W2kz MjsgJGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lt ZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnYKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBtYXNrID0gbWFzazsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzayA9IG1hc2sucmVw bGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiBt YXNrIGVsZW1lbnRzIGFyZSB0cnVlLCBvZGQgb25lcyBhcmUgZmFsc2U6CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9 IHY7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVbaV0gPSA0MjsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6ZnJvbV9z bGljZV91bmFsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgbWFzayBlbGVtZW50cyBhcmUgZmFs c2U6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQo ZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYgPSBTaW1kOjo8W2kzMjsg JGVsZW1fY291bnRdPjo6c3BsYXQoNDJfaTMyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgcjogU2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKSB9CistICAgICAgICAgICAgICAgICAg ICAgICAgOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEociwgZGVmKTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfcHRyX3dyaXRl IHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1h c2tfdHk6aWRlbnQKKy0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGw8VD4g JGlkPFQ+CistICAgICAgICB3aGVyZQorLSAgICAgICAgICAgIFtUOyAkZWxlbV9jb3VudF06IHNl YWxlZDo6U2ltZEFycmF5LAorLSAgICAgICAgeworLSAgICAgICAgICAgIC8vLyBXcml0ZXMgc2Vs ZWN0ZWQgdmVjdG9yIGVsZW1lbnRzIHRvIG1lbW9yeS4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gV3JpdGVzIHRoZSBsYW5lcyBvZiBgdmFsdWVzYCBmb3Igd2hpY2ggdGhlIG1h c2sgaXMgYHRydWVgIHRvCistICAgICAgICAgICAgLy8vIHRoZWlyIGNvcnJlc3BvbmRpbmcgbWVt b3J5IGFkZHJlc3NlcyBpbiBgc2VsZmAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIE5vIG1lbW9yeSBpcyBhY2Nlc3NlZCBmb3IgdGhvc2UgbGFuZXMgb2YgYHNlbGZgIHdob3Nl IGBtYXNrYCBpcworLSAgICAgICAgICAgIC8vLyBgZmFsc2VgLgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBPdmVybGFwcGluZyBtZW1vcnkgYWRkcmVzc2VzIG9mIGBzZWxmYCBh cmUgd3JpdHRlbiB0byBpbiBvcmRlcgorLSAgICAgICAgICAgIC8vLyBmcm9tIHRoZSBsZXN0LXNp Z25pZmljYW50IHRvIHRoZSBtb3N0LXNpZ25pZmljYW50IGVsZW1lbnQuCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vIFRoaXMgbWV0aG9kIGlzIHVuc2FmZSBiZWNhdXNlIGl0IGRlcmVmZXJlbmNlcyBy YXcgcG9pbnRlcnMuIFRoZQorLSAgICAgICAgICAgIC8vLyBwb2ludGVycyBtdXN0IGJlIGFsaWdu ZWQgdG8gYG1lbTo6YWxpZ25fb2Y6OjxUPigpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlPE0+KHNlbGYsIG1hc2s6IFNpbWQ8W007ICRl bGVtX2NvdW50XT4sIHZhbHVlOiBTaW1kPFtUOyAkZWxlbV9jb3VudF0+KQorLSAgICAgICAgICAg IHdoZXJlCistICAgICAgICAgICAgICAgIE06IHNlYWxlZDo6TWFzaywKKy0gICAgICAgICAgICAg ICAgW007ICRlbGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCistICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2NhdHRlcjsKKy0gICAgICAg ICAgICAgICAgc2ltZF9zY2F0dGVyKHZhbHVlLjAsIHNlbGYuMCwgbWFzay4wKQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBt b2QgWzwkaWQgX3dyaXRlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3Jp dGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ydHlfdHdvID0gWzQyLCA0Miwg NDIsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm9ydHlfdHdvCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OnNwbGF0 KDQyX2kzMik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwg d3JpdGUgdG8gdGhpcyBhcnJheQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJy ID0gWzBfaTMyOyAkZWxlbV9jb3VudF07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJbaV0g PSBpIGFzIGkzMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYXJyID0gWzAsIDEsIDIsIC4uLl0KKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHB0ciA9ICRpZDo6PGkzMj46Om51bGwoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHB0ciA9IHB0ci5yZXBsYWNlKGksIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcnIuYXNfcHRyKCkuYWRkKGkpIGFzICptdXQgaTMyCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBwdHIgPSBbJmFyclswXSwgJmFyclsxXSwgLi4uXQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGBmb3J0eV90d29gIHRvIGFsbCBlbGVt ZW50cyBvZiBgdmAKKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIud3JpdGUo JG1hc2tfdHk6OnNwbGF0KHRydWUpLCBmb3J0eV90d28pCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCBb NDJfaTMyOyAkZWxlbV9jb3VudF0pOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnIg PSBiYWNrdXA7ICAvLyBhcnIgPSBbMCwgMSwgMiwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSA0MiB0byBldmVuIGVs ZW1lbnRzIG9mIGFycjoKKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHNldCBvZGQgZWxlbWVudHMgb2YgdGhlIG1hc2sgdG8gZmFsc2UK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtYXNrID0gJG1hc2tfdHk6OnNw bGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxl bV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAw IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrID0gbWFzay5yZXBs YWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBtYXNrID0gW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgLi4uXQorLQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBleHBlY3RlZCByZXN1bHQgciA9IFs0MiwgMSwgNDIsIDMsIDQy LCA1LCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgciA9IGFycjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcltpXSA9IDQyOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHB0ci53cml0ZShtYXNrLCBmb3J0eV90d28pIH07 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCByKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJyID0gYmFja3VwOyAgLy8gYXJyID0gWzAsIDEsIDIs IDMsIC4uLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gd3JpdGUgNDIgdG8gbm8gZWxlbWVudHMgb2YgYXJyCistICAgICAgICAgICAg ICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmFja3VwID0g YXJyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHRyLndyaXRlKCRtYXNrX3R5OjpzcGxhdChmYWxzZSksIGZv cnR5X3R3bykKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnIsIGJhY2t1cCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9y ZWR1Y3Rpb25zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMiArMCwwIEBACistLy8hIFJlZHVj dGlvbnMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZmxvYXRfYXJpdGhtZXRpYzsKKy0jW21hY3Jv X3VzZV0KKy1tb2QgaW50ZWdlcl9hcml0aG1ldGljOworLSNbbWFjcm9fdXNlXQorLW1vZCBiaXR3 aXNlOworLSNbbWFjcm9fdXNlXQorLW1vZCBtYXNrOworLSNbbWFjcm9fdXNlXQorLW1vZCBtaW5f bWF4OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9y ZWR1Y3Rpb25zL2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2JpdHdpc2Uu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1MSArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9y dGFibGUgaG9yaXpvbnRhbCBiaXR3aXNlIHZlY3RvciByZWR1Y3Rpb25zLgorLSMhW2FsbG93KHVu dXNlZCldCistCistbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UgeworLSAgICAo CistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAg JGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCRj b252ZXJ0OmV4cHIpIHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKKy0gICAg KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBi aXR3aXNlIGBhbmRgIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmly c3QgZWxlbWVudCBvZiB0aGUKKy0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBhbmQoc2VsZikgLT4g JGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFy Y2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hbmQ7CistICAgICAgICAgICAgICAgICAgICBsZXQgcjog JGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYW5kKHNlbGYuMCkgfTsKKy0gICAgICAg ICAgICAgICAgICAgICRjb252ZXJ0KHIpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7 CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNoNjQKKy0gICAg ICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNl bGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCAmPSBzZWxmLmV4 dHJhY3QoaSkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgLy8vIExhbmUtd2lzZSBiaXR3aXNlIGBvcmAgb2YgdGhlIHZlY3RvciBlbGVtZW50 cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZlY3Rv ciBoYXMgb25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZQorLSAgICAgICAgICAgIC8v LyB2ZWN0b3IgaXMgcmV0dXJuZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgcHViIGZuIG9yKHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmco bm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2Vfb3I7CistICAgICAg ICAgICAgICAgICAgICBsZXQgcjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2Vfb3Io c2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnQocikKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iild CistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9r ZW4gb24gYWFyY2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB4IHw9IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGJpdHdpc2UgYHhvcmAg b2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gTm90ZTogaWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9m IHRoZQorLSAgICAgICAgICAgIC8vLyB2ZWN0b3IgaXMgcmV0dXJuZWQuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHhvcihzZWxmKSAtPiAkZWxlbV90eSB7Cist ICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfcmVkdWNlX3hvcjsKKy0gICAgICAgICAgICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkgPSB1 bnNhZmUgeyBzaW1kX3JlZHVjZV94b3Ioc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAg JGNvbnZlcnQocikKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gYWFyY2g2NAorLSAgICAgICAgICAgICAgICAg ICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDAp IGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4IF49IHNlbGYuZXh0cmFjdChpKSBhcyAk ZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHgK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9iaXR3 aXNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIGFuZCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYuYW5kKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYuYW5kKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRp ZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVw bGFjZSgwLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygp ID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwg JGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYuYW5kKCksICR0cnVlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgw LCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwg JGZhbHNlKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICBmbiBvcigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRp ZDo6c3BsYXQoJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu b3IoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3Bs YXQoJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAk dHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxz ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkdHJ1ZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkZmFsc2UpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwgJHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5vcigpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB4b3IoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkZmFsc2UpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYueG9yKCksICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAk ZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzEz ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIGZsb2F0IHZlY3Rv ciBhcml0aG1ldGljIHJlZHVjdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9u X2Zsb2F0X2FyaXRobWV0aWMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsK Ky0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCBzdW0gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBwZXJmb3Jt cyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAg Ly8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyA+ICgoeDAgKyB4MSkgKyAoeDIgKyB4MykpICsgKCh4NCArIHg1KSAr ICh4NiArIHg3KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgb25lIG9m IHRoZSB2ZWN0b3IgZWxlbWVudCBpcyBgTmFOYCB0aGUgcmVkdWN0aW9uIHJldHVybnMKKy0gICAg ICAgICAgICAvLy8gYE5hTmAuIFRoZSByZXN1bHRpbmcgYE5hTmAgaXMgbm90IHJlcXVpcmVkIHRv IGJlIGVxdWFsIHRvIGFueQorLSAgICAgICAgICAgIC8vLyBvZiB0aGUgYE5hTmBzIGluIHRoZSB2 ZWN0b3IuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHN1bShz ZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FkZF9vcmRlcmVkOworLSAgICAgICAgICAg ICAgICAgICAgdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQoc2VsZi4wLCAwIGFzICRl bGVtX3R5KSB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBh cyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVs ZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB4Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEhv cml6b250YWwgcHJvZHVjdCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rp b24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8gVGhhdCBpcywgZm9y IGFuIDggZWxlbWVudCB2ZWN0b3I6CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8v ID4gKCh4MCAqIHgxKSAqICh4MiAqIHgzKSkgKiAoKHg0ICogeDUpICogKHg2ICogeDcpKQorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBvbmUgb2YgdGhlIHZlY3RvciBlbGVt ZW50IGlzIGBOYU5gIHRoZSByZWR1Y3Rpb24gcmV0dXJucworLSAgICAgICAgICAgIC8vLyBgTmFO YC4gVGhlIHJlc3VsdGluZyBgTmFOYCBpcyBub3QgcmVxdWlyZWQgdG8gYmUgZXF1YWwgdG8gYW55 CistICAgICAgICAgICAgLy8vIG9mIHRoZSBgTmFOYHMgaW4gdGhlIHZlY3Rvci4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcHJvZHVjdChzZWxmKSAtPiAkZWxl bV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Omxsdm06OnNpbWRfcmVkdWNlX211bF9vcmRlcmVkOworLSAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsgc2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQoc2VsZi4wLCAxIGFzICRlbGVtX3R5KSB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogYnJva2VuIG9uIEFBcmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsK Ky0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgeCAqPSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRl OjppdGVyOjpTdW0gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgeworLSAg ICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwLiksIGNyYXRlOjpvcHM6OkFkZDo6 YWRkKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6 Oml0ZXI6OlByb2R1Y3QgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlk IHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMS4pLCBjcmF0ZTo6b3Bz OjpNdWw6Om11bCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBs PCdhPiBjcmF0ZTo6aXRlcjo6U3VtPCYnYSAkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRpZD4+ KGl0ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0 KDAuKSwgfGEsIGJ8IGNyYXRlOjpvcHM6OkFkZDo6YWRkKGEsICpiKSkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistCistICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6UHJvZHVjdDwm J2EgJGlkPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsK Ky0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMS4pLCB8YSwgYnwgY3JhdGU6 Om9wczo6TXVsOjptdWwoYSwgKmIpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBw YXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdl ciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxv dyhjbGlwcHk6OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3Jl ZHVjdGlvbl9mbG9hdF9hcml0aD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgIGZuIGFsdGVybmF0aW5nKHg6IHVzaXplKSAtPiAkaWQg eworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIHggPT0gMCB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIDIgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gc3VtKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxh dCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu c3VtKCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYuc3VtKCksICRpZDo6bGFuZXMoKSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZygyKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnN1bSgpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGlkOjpsYW5lcygpIC8gMiArICRpZDo6bGFu ZXMoKSkgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICBmbiBwcm9kdWN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYucHJvZHVjdCgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnByb2R1Y3QoKSwgMSBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSBtYXRjaCAkaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICA2NCA9PiAxNiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzIgPT4gOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYgPT4gNCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9PiAyLAorLSAgICAgICAgICAgICAgICAgICAg ICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZyhmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2LnByb2R1Y3QoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDJf dXNpemUucG93KCgkaWQ6OmxhbmVzKCkgLyBmKSBhcyB1MzIpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAg ICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCist ICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxlX2NvZGUpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gc3VtX25hbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjczMgorLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvNgorLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBjcmF0ZTo6JGVsZW1fdHk6Ok5B TjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLjApOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJlcGxhY2UoaSwgbjApOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRhaW5zIGEg TmFOIHRoZSByZXN1bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5zdW0oKS5pc19uYW4oKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW4gYXQge30gPT4ge30gfCB7Oj99 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2LnN1bSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISh2LnN1bSgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEodi5zdW0oKS5pc19uYW4oKSwgImFsbCBuYW5zIHwgezo/fSIsIHYpOworLSAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxlX2NvZGUpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gcHJvZHVjdF9uYW4oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6 IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MzIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFj a2VkX3NpbWQvaXNzdWVzLzYKKy0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CistCist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4wID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4wKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5yZXBsYWNlKGksIG4wKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBjb250YWlucyBhIE5hTiB0 aGUgcmVzdWx0IGlzIE5hTjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLmlzX25hbigpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbiBhdCB7fSA9PiB7fSB8IHs6P30i LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0ISh2LnByb2R1Y3QoKS5pc19uYW4oKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KG4wKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpLCAiYWxsIG5hbnMgfCB7Oj99Iiwgdik7Cist ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkLCBkZWFkX2NvZGUpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc3VtX3JvdW5kb2ZmKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24KKy0gICAgICAgICAgICAgICAgICAgICAg ICBmbiB0cmVlX3JlZHVjZV9zdW0oYTogJlskZWxlbV90eV0pIC0+ICRlbGVtX3R5IHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5pc19lbXB0eSgpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgYS5sZW4oKSA9PSAxIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFbMF0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IGlmIGEubGVuKCkgPT0gMiB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzBd ICsgYVsxXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pZCA9IGEubGVuKCkgLyAyOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChsZWZ0LCByaWdodCkgPSBhLnNwbGl0X2F0KG1p ZCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlZHVjZV9zdW0obGVm dCkgKyB0cmVlX3JlZHVjZV9zdW0ocmlnaHQpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBzdGFydCA9IGNyYXRlOjokZWxlbV90eTo6RVBTSUxPTjsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxhcl9yZWR1Y3Rpb24gPSAwLiBhcyAkZWxlbV90eTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAuIGFz ICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IGlmIGkgJSAyID09 IDAgeyAxZTMgfSBlbHNlIHsgLTEuIH07CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXJ0ICo9IDo6Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkgKiBjOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2FsYXJfcmVkdWN0aW9uICs9IHN0YXJ0OworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIHN0YXJ0KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWRfcmVkdWN0aW9uID0g di5zdW0oKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBbMC4gYXMg JGVsZW1fdHk7ICRpZDo6bGFuZXMoKV07CistICAgICAgICAgICAgICAgICAgICAgICAgdi53cml0 ZV90b19zbGljZV91bmFsaWduZWQoJm11dCBhKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdHJlZV9yZWR1Y3Rpb24gPSB0cmVlX3JlZHVjZV9zdW0oJmEpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHRvbGVyYXRlIDEgVUxQIGRpZmZlcmVuY2U6CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHJlZF9iaXRzID0gc2ltZF9yZWR1Y3Rpb24udG9fYml0cygpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmVlX2JpdHMgPSB0cmVlX3JlZHVjdGlvbi50b19i aXRzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgcmVkX2JpdHMgPiB0cmVlX2JpdHMgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVkX2JpdHMgLSB0cmVlX2JpdHMKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRy ZWVfYml0cyAtIHJlZF9iaXRzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gPCAyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yOiB7Oj99IHwgc2ltZF9yZWR1Y3Rp b246IHs6P30gfCBcCistdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2NhbGFyX3JlZHVjdGlvbjoge30i LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaW1kX3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJl ZV9yZWR1Y3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rp b24KKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAj W2FsbG93KHVudXNlZCwgZGVhZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHByb2R1 Y3Rfcm91bmRvZmYoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIDo6Y29yZTo6Y29u dmVydDo6VHJ5SW50bzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtcyBhIHRy ZWUtcmVkdWN0aW9uCistICAgICAgICAgICAgICAgICAgICAgICAgZm4gdHJlZV9yZWR1Y2VfcHJv ZHVjdChhOiAmWyRlbGVtX3R5XSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCFhLmlzX2VtcHR5KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBhLmxlbigpID09IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YVswXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgYS5sZW4oKSA9PSAy IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbMF0gKiBhWzFdCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbWlkID0gYS5sZW4oKSAvIDI7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgKGxlZnQsIHJpZ2h0KSA9IGEuc3BsaXRfYXQobWlkKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVkdWNlX3Byb2R1Y3QobGVmdCkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyZWVfcmVkdWNlX3Byb2R1Y3QocmlnaHQp CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzdGFydCA9IGNyYXRlOjok ZWxlbV90eTo6RVBTSUxPTjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxh cl9yZWR1Y3Rpb24gPSAxLiBhcyAkZWxlbV90eTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAuIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYyA9IGlmIGkgJSAyID09IDAgeyAxZTMgfSBlbHNlIHsgLTEuIH07Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICo9IDo6Y29yZTo6JGVsZW1fdHk6OmNv bnN0czo6UEkgKiBjOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJfcmVkdWN0 aW9uICo9IHN0YXJ0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNl KGksIHN0YXJ0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHNpbWRfcmVkdWN0aW9uID0gdi5wcm9kdWN0KCk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBhID0gWzAuIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCld OworLSAgICAgICAgICAgICAgICAgICAgICAgIHYud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZt dXQgYSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfcmVkdWN0aW9uID0gdHJl ZV9yZWR1Y2VfcHJvZHVjdCgmYSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklY TUU6IFRvbyBpbXByZWNpc2UsIGV2ZW4gb25seSBmb3IgcHJvZHVjdChmMzJ4OCkuCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCBob3cgdG8gbmFycm93IHRoaXMgZG93bi4K Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdWxwX2xpbWl0ID0gJGlkOjpsYW5lcygpIC8g MjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkX2JpdHMgPSBzaW1kX3JlZHVjdGlv bi50b19iaXRzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyZWVfYml0cyA9IHRy ZWVfcmVkdWN0aW9uLnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWRfYml0cyA+IHRyZWVfYml0cyB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRfYml0cyAtIHRyZWVfYml0cwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHJlZV9iaXRzIC0gcmVkX2JpdHMKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfSA8IHVscF9saW1pdC50cnlfaW50bygpLnVud3JhcCgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidmVjdG9yOiB7Oj99IHwgc2ltZF9yZWR1Y3Rpb246IHs6P30gfCBc CistdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2NhbGFyX3JlZHVjdGlvbjoge30iLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW1k X3JlZHVjdGlvbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWR1Y3Rpb24s CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9yZWR1Y3Rpb24KKy0gICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRl Z2VyX2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv cmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv aW50ZWdlcl9hcml0aG1ldGljLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxOTMgKzAsMCBAQAor LS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgaW50ZWdlciB2ZWN0b3IgYXJpdGht ZXRpYyByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVjdGlvbl9pbnRlZ2Vy X2FyaXRobWV0aWMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEhvcml6b250YWwgd3JhcHBpbmcg c3VtIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVj dG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50 IHZlY3RvcjoKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gPiAoKHgwICsgeDEp ICsgKHgyICsgeDMpKSArICgoeDQgKyB4NSkgKyAoeDYgKyB4NykpCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIElmIGFuIG9wZXJhdGlvbiBvdmVyZmxvd3MgaXQgcmV0dXJucyB0 aGUgbWF0aGVtYXRpY2FsIHJlc3VsdAorLSAgICAgICAgICAgIC8vLyBtb2R1bG8gYDJebmAgd2hl cmUgYG5gIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgaXQgb3ZlcmZsb3dzLgorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19zdW0oc2VsZikgLT4gJGVs ZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2 NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjpzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZDsKKy0gICAgICAgICAgICAgICAgICAgIGxl dCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZChzZWxmLjAs IDAgYXMgJGllbGVtX3R5KSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g ImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7 CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIHggPSB4LndyYXBwaW5nX2FkZChzZWxmLmV4dHJhY3QoaSkgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg eAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8v LyBIb3Jpem9udGFsIHdyYXBwaW5nIHByb2R1Y3Qgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBwZXJmb3JtcyBh IHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8v IFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyA+ICgoeDAgKiB4MSkgKiAoeDIgKiB4MykpICogKCh4NCAqIHg1KSAqICh4 NiAqIHg3KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW4gb3BlcmF0 aW9uIG92ZXJmbG93cyBpdCByZXR1cm5zIHRoZSBtYXRoZW1hdGljYWwgcmVzdWx0CistICAgICAg ICAgICAgLy8vIG1vZHVsbyBgMl5uYCB3aGVyZSBgbmAgaXMgdGhlIG51bWJlciBvZiB0aW1lcyBp dCBvdmVyZmxvd3MuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZu IHdyYXBwaW5nX3Byb2R1Y3Qoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAj W2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9tdWxfb3Jk ZXJlZDsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBz aW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAsIDEgYXMgJGllbGVtX3R5KSB9OworLSAgICAg ICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0Cist ICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHgg PSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSB4Lndy YXBwaW5nX211bChzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6aXRlcjo6U3Vt IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1bTxJ OiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAg ICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMCksIGNyYXRlOjpvcHM6OkFkZDo6YWRkKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Oml0ZXI6OlByb2R1 Y3QgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gcHJv ZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKKy0gICAgICAg ICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIGNyYXRlOjpvcHM6Ok11bDo6bXVsKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8J2E+IGNyYXRlOjpp dGVyOjpTdW08JidhICRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4oaXRlcjogSSkgLT4g JGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMCksIHxhLCBifCBj cmF0ZTo6b3BzOjpBZGQ6OmFkZChhLCAqYikpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlByb2R1Y3Q8JidhICRpZD4gZm9yICRp ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gcHJvZHVjdDxJOiBJ dGVyYXRvcjxJdGVtID0gJidhICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAg ICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEpLCB8YSwgYnwgY3JhdGU6Om9wczo6TXVsOjptdWwo YSwgKmIpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYh IHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25faW50X2FyaXRoPl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAgICAgICAgICAgICAg ICAgZm4gYWx0ZXJuYXRpbmcoeDogdXNpemUpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBpICUgeCA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cmFwcGluZ19zdW0oKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19zdW0o KSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6 OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi53cmFwcGluZ19zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi53cmFw cGluZ19zdW0oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6OmxhbmVz KCkgLyAyICsgJGlkOjpsYW5lcygpKSBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2LndyYXBwaW5nX3N1bSgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JhcHBpbmdfc3Vt X292ZXJmbG93KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGFydCA9ICRlbGVt X3R5OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICgkaWQ6Omxh bmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2d3JhcHBpbmdfc3VtID0gdi53cmFwcGluZ19zdW0oKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHdyYXBwaW5nX3N1bSA9IHN0YXJ0OworLSAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBfIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHdyYXBwaW5nX3N1bSA9IHdyYXBwaW5nX3N1bS53cmFwcGluZ19hZGQoc3Rh cnQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHdyYXBwaW5nX3N1bSwgdndyYXBwaW5nX3N1bSwgInYgPSB7Oj99Iiwgdik7 CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5nX3Byb2R1Y3QoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19wcm9kdWN0KCksIDAg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxh dCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu d3JhcHBpbmdfcHJvZHVjdCgpLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZiA9IG1hdGNoICRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDY0ID0+IDE2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMiA9PiA4LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiA9PiA0LAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfID0+IDIsCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi53cmFw cGluZ19wcm9kdWN0KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMl91c2l6 ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcyAkZWxlbV90eSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi53 cmFwcGluZ19wcm9kdWN0KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIGFz ICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cmFwcGluZ19wcm9kdWN0 X292ZXJmbG93KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGFydCA9ICRlbGVt X3R5OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICgkaWQ6Omxh bmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2bXVsID0gdi53cmFwcGluZ19wcm9kdWN0KCk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCBtdWwgPSBzdGFydDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgXyBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt dWwgPSBtdWwud3JhcHBpbmdfbXVsKHN0YXJ0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtdWwsIHZtdWwsICJ2ID0gezo/ fSIsIHYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWFzay5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw4OSArMCwwIEBA CistLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRhbCBtYXNrIHJlZHVjdGlvbnMuCist CistbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX21hc2sgeworLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0g ICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQXJlIGBhbGxgIHZlY3RvciBsYW5l cyBgdHJ1ZWA/CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGFs bChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6OmNvZGVn ZW46OnJlZHVjdGlvbnM6Om1hc2s6OkFsbDo6YWxsKHNlbGYpIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICAgICAgLy8vIElzIGBhbnlgIHZlY3RvciBsYW5lIGB0cnVlYD8KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeyBjcmF0ZTo6Y29kZWdlbjo6cmVkdWN0aW9uczo6bWFzazo6 QW55Ojphbnkoc2VsZikgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAvLy8gQXJlIGBh bGxgIHZlY3RvciBsYW5lcyBgZmFsc2VgPworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBmbiBub25lKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAhc2Vs Zi5hbnkoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYh IHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb24+XSB7CistICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIGFsbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShhLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3Bs YXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuYWxsKCkpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFsc2Up OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbGwoKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwg dHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFsbCgp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gYW55KCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKGEuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlk OjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbnko KSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRy dWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCBm YWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEuYW55KCkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxh dChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNl KGksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFu eSgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbm9uZSgpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0ISghYS5ub25lKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBh ID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShh Lm5vbmUoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4g MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNw bGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFj ZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFh Lm5vbmUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAk aWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBh LnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCFhLm5vbmUoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9t YXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9t aW5fbWF4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL21pbl9tYXgucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDM2MCArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpvbnRh bCB2ZWN0b3IgbWluL21heCByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVj dGlvbl9taW5fbWF4IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudAorLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewor LSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBMYXJnZXN0IHZlY3RvciBlbGVt ZW50IHZhbHVlLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBt YXhfZWxlbWVudChzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5v dChhbnkoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKKy0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCistICAgICAgICAgICAgICAg ICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAorLSAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAgICAgICAgICAgKSkpXQorLSAgICAgICAgICAg ICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNl X21heDsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBz aW1kX3JlZHVjZV9tYXgoc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxl bV90eQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKGFueSgKKy0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAg ICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdl dF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICApKV0KKy0gICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0CistICAgICAgICAg ICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9u IFdBU00zMgorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy85MQorLSAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApOworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4ID0geC5tYXgo c2VsZi5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAvLy8gU21hbGxlc3QgdmVjdG9yIGVsZW1lbnQgdmFsdWUuCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG1pbl9lbGVtZW50KHNlbGYpIC0+ICRlbGVtX3R5 IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KGFueSgKKy0gICAgICAgICAgICAgICAgICAg IHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Fy Y2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODYi LCBub3QodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKSwKKy0gICAgICAgICAgICAgICAgICAgIHRh cmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICApLCkpXQorLSAgICAgICAgICAgICAgICB7 CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX21pbjsK Ky0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3Jl ZHVjZV9taW4oc2VsZi4wKSB9OworLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKGFueSgKKy0gICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAorLSAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKy0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRf YXJjaCA9ICJ4ODYiLCBub3QodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKSwKKy0gICAgICAgICAg ICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAgICAgICAgICAg ICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICApKV0KKy0gICAgICAg ICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJj aDY0CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n LW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogYnJva2VuIG9uIGk1ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICAgICAgICAgICAg ICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9p c3N1ZXMvMjIKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gV0FTTTMy CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzkxCistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHggPSBzZWxmLmV4dHJhY3QoMCk7CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4k aWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSB4Lm1pbihzZWxmLmV4 dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg eAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgdGVzdF9pZiEgeyR0ZXN0X3R0OgorLSAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAg ICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSBy YW5nZS4KKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25fbWluX21heD5dIHsKKy0gICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICBwdWIgZm4gbWF4X2VsZW1lbnQoKSB7CistICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRp ZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYubWF4X2VsZW1lbnQoKSwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICBp ZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYu cmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAyIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgp LCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQorLSAgICAgICAgICAgICAgICBwdWIgZm4gbWluX2VsZW1lbnQoKSB7CistICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMCBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMCBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICBsZXQg diA9IHYucmVwbGFjZSgwLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIGlm ICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di5taW5fZWxlbWVudCgpLCAxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50 KCksIDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gdi5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAxIGFzICRlbGVtX3R5KTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIHRl c3RfcmVkdWN0aW9uX2Zsb2F0X21pbl9tYXggeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIHRl c3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRl bSEgeworLSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3 aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9t aW5fbWF4X25hbj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbWluX2Vs ZW1lbnRfdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbiA9IGNyYXRlOjok ZWxlbV90eTo6TkFOOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobi5t aW4oLTMuKSwgLTMuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCgtMy4g YXMgJGVsZW1fdHkpLm1pbihuKSwgLTMuKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVfbmFuID0gIWNmZyEoYW55KAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLCB0YXJnZXRfYXJjaCA9ICJh YXJjaDY0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0g Ing4NiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QodGFyZ2V0X2ZlYXR1 cmUgPSAic3NlMiIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAgICAgICAgICAg ICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3Rv ciBpcyBpbml0aWFsaXplZCB0byBgLTMuYHM6IFstMywgLTMsIC0zLCAtM10KKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBXZSByZXBsYWNlIHRoZSBpLXRoIGVsZW1lbnQgb2YgdGhlIHZlY3Rv ciB3aXRoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBOYU5gOiBbLTMsIC0zLCAt MywgTmFOXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5yZXBs YWNlKGksIG4pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgTmFO IGlzIGluIHRoZSBsYXN0IHBsYWNlLCB0aGUgTExWTQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRob2RzIGlzIGJyb2tlbiBvbiBzb21l CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldHM6CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4gewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxl bWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiW0FdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVu dHMgaW4gdGhlIHZlY3RvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAt dG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBpcyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBl bGVtZW50cyBvZgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHZlY3Rv ciBhcmUgYE5hTmBzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4g MC4uaSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFj ZShqLCBuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBqID09IGkt MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5t aW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgp LCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0Jd OiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGRvbmUgaGVy ZSwgc2luY2Ugd2Ugd2VyZSBpbiB0aGUgbGFzdAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbGFuZSB3aGljaCBpcyB0aGUgbGFzdCBpdGVyYXRpb24gb2YgdGhlIGxvb3AuCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBu b3QgaW4gdGhlIGxhc3QgbGFuZSwgYW5kIHRoZXJlIGlzIG9ubHkKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IuCistCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgcmVzdWx0 IGlzIGBOYU5gOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkg PT0gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWluX2Vs ZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIltDXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBcCistaXNfbmFuOiB7fSIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsIHYubWluX2VsZW1lbnQo KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5taW5fZWxlbWVu dCgpLmlzX25hbigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5kIHdlIGFyZSBkb25lLCBzaW5jZSB0 aGUgdmVjdG9yIG9ubHkgaGFzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBv bmUgbGFuZSBhbnl3YXlzLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gVGhlIHZlY3RvciBoYXMgbW9yZSB0aGFuIG9uZSBsYW5lLCBzaW5jZSB0aGVy ZSBpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IG9uZSBgTmFOYCBpbiB0 aGUgdmVjdG9yLCB0aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGFsd2F5cyBgLTNgLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu bWluX2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJbRF06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0 aGUgdmVjdG9yCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwLXRvIHRoZSBgaS10 aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50cyBvZiB0aGUK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yIGFyZSBgTmFOYHM6CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAuLmkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygpIC0gMSAmJiBqID09IGkgLSAx IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGwgZWxlbWVudHMg b2YgdGhlIHZlY3RvciBhcmUgYE5hTmBzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIE5hTiBhcyB3ZWxsLgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gTm90ZTogdGhlICNsYW5lcyBvZiB0aGUgdmVjdG9yIGlzID4gMSwgc28K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAiaSAtIDEiIGRvZXMgbm90 IG92ZXJmbG93LgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo di5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIltFXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49e30gfCBcCistaXNf bmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 LCB2Lm1pbl9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBUaGVyZSBhcmUgbm9uLWBOYU5gIGVsZW1lbnRzIGluIHRoZQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciwgdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMg YC0zLmA6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 Lm1pbl9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJbRl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRhaW5zIGFsbCBOYU5zIHRoZSByZXN1 bHQgaXMgTmFOOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoJGlkOjpzcGxhdChu KS5taW5fZWxlbWVudCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFsbCBuYW5zIHwgdj17Oj99IHwgbWluPXt9IHwgaXNfbmFuOiB7fSIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4pLCAkaWQ6OnNwbGF0KG4pLm1pbl9l bGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4p Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtYXhfZWxl bWVudF90ZXN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuID0gY3JhdGU6OiRl bGVtX3R5OjpOQU47CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShuLm1h eCgtMy4pLCAtMy4pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoKC0zLiBh cyAkZWxlbV90eSkubWF4KG4pLCAtMy4pOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB2MCA9ICRpZDo6c3BsYXQoLTMuKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg dGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4gPSAhY2ZnIShhbnkoCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdldF9hcmNoID0gImFh cmNoNjQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dl cnBjNjQiLCB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaXMgaW5pdGlh bGl6ZWQgdG8gYC0zLmBzOiBbLTMsIC0zLCAtMywgLTNdCistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gV2UgcmVwbGFjZSB0aGUgaS10aCBlbGVtZW50IG9mIHRoZSB2ZWN0b3Igd2l0aAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgTmFOYDogWy0zLCAtMywgLTMsIE5hTl0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVwbGFjZShpLCBuKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIE5hTiBpcyBpbiB0aGUg bGFzdCBwbGFjZSwgdGhlIExMVk0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW1w bGVtZW50YXRpb24gb2YgdGhlc2UgbWV0aG9kcyBpcyBicm9rZW4gb24gc29tZQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXRzOgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEgJiYKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0FdOiBuYW4gYXQge30gPT4g e30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwg di5tYXhfZWxlbWVudCgpLCB2KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBg TmFOYHMsIHRoZSByZXN1bHQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlz IHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9mCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVjdG9yIGFyZSBgTmFOYHM6CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGogPT0gaS0xIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9 PiB7fSB8IHs6P30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp LCB2Lm1pbl9lbGVtZW50KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiW0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQo KSwgdik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gV2UgYXJlIGRvbmUgaGVyZSwgc2luY2Ugd2Ugd2VyZSBpbiB0aGUgbGFzdAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFuZSB3aGljaCBpcyB0aGUgbGFzdCBp dGVyYXRpb24gb2YgdGhlIGxvb3AuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhaworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFdlIGFyZSBub3QgaW4gdGhlIGxhc3QgbGFuZSwgYW5kIHRoZXJlIGlz IG9ubHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGBOYU5gIGluIHRoZSB2 ZWN0b3IuCistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3Ig aGFzIG9uZSBsYW5lLCB0aGUgcmVzdWx0IGlzIGBOYU5gOgorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPT0gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIltDXTogYWxsIG5hbnMgfCB2PXs6P30gfCBtaW49 e30gfCBcCistaXNfbmFuOiB7fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYsIHYubWF4X2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdi5tYXhfZWxlbWVudCgpLmlzX25hbigpKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIEFuZCB3ZSBhcmUgZG9uZSwgc2luY2UgdGhlIHZlY3RvciBv bmx5IGhhcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25lIGxhbmUgYW55 d2F5cy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRoZSB2ZWN0b3IgaGFzIG1vcmUgdGhhbiBvbmUgbGFuZSwgc2luY2UgdGhlcmUgaXMKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBvbmUgYE5hTmAgaW4gdGhlIHZlY3Rvciwg dGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgYC0z YC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50 KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0RdOiBu YW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpLCB2Lm1heF9lbGVtZW50KCksIHYpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIHZlY3Rvcgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0 aCBgTmFOYHMsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g c3RpbGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwgZWxlbWVudHMgb2YgdGhlCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciBhcmUgYE5hTmBzOgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7CistCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEgJiYgaiA9PSBpIC0gMSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsIGVsZW1lbnRzIG9mIHRoZSB2ZWN0 b3IgYXJlIGBOYU5gcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGVyZWZvcmUgdGhlIHJlc3VsdCBpcyBOYU4gYXMgd2VsbC4KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIE5vdGU6IHRoZSAjbGFuZXMgb2YgdGhlIHZlY3RvciBpcyA+IDEsIHNvCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gImkgLSAxIiBkb2VzIG5vdCBvdmVyZmxvdy4K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYubWF4X2VsZW1l bnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJbRV06IGFsbCBuYW5zIHwgdj17Oj99IHwgbWF4PXt9IHwgXAorLWlzX25hbjoge30iLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwgdi5tYXhfZWxl bWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5t YXhfZWxlbWVudCgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUg YXJlIG5vbi1gTmFOYCBlbGVtZW50cyBpbiB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB2ZWN0b3IsIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIGAtMy5gOgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVu dCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiW0ZdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gSWYgdGhlIHZlY3RvciBjb250YWlucyBhbGwgTmFOcyB0aGUgcmVzdWx0IGlzIE5hTjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCRpZDo6c3BsYXQobikubWF4X2VsZW1l bnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwgbmFu cyB8IHY9ezo/fSB8IG1heD17fSB8IGlzX25hbjoge30iLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjpzcGxhdChuKSwgJGlkOjpzcGxhdChuKS5tYXhfZWxlbWVudCgpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChuKS5tYXhfZWxlbWVu dCgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVjdC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zZWxlY3QucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NlbGVj dC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIG1h c2sncyBgc2VsZWN0YC4KKy0KKy0vLy8gSW1wbGVtZW50cyBtYXNrIHNlbGVjdCBtZXRob2QKKy1t YWNyb19ydWxlcyEgaW1wbF9zZWxlY3QgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwg JGlkIHsKKy0gICAgICAgICAgICAvLy8gU2VsZWN0cyBlbGVtZW50cyBvZiBgYWAgYW5kIGBiYCB1 c2luZyBtYXNrLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgbGFuZXMg b2YgdGhlIHJlc3VsdCBmb3Igd2hpY2ggdGhlIG1hc2sgaXMgYHRydWVgIGNvbnRhaW4KKy0gICAg ICAgICAgICAvLy8gdGhlIHZhbHVlcyBvZiBgYWAuIFRoZSByZW1haW5pbmcgbGFuZXMgY29udGFp biB0aGUgdmFsdWVzIG9mCistICAgICAgICAgICAgLy8vIGBiYC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2VsZWN0PFQ+KHNlbGYsIGE6IFNpbWQ8VD4sIGI6 IFNpbWQ8VD4pIC0+IFNpbWQ8VD4KKy0gICAgICAgICAgICB3aGVyZQorLSAgICAgICAgICAgICAg ICBUOiBzZWFsZWQ6OlNpbWRBcnJheTxOVCA9IDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyBz ZWFsZWQ6OlNpbWRBcnJheT46Ok5UPiwKKy0gICAgICAgICAgICB7CistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9zZWxlY3Q7CistICAgICAgICAgICAgICAgIFNpbWQodW5z YWZlIHsgc2ltZF9zZWxlY3Qoc2VsZi4wLCBhLjAsIGIuMCkgfSkKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X3NlbGVjdCEoYm9vbCwgJGlkLCAkaWQsIChmYWxz ZSwgdHJ1ZSkgfCAkdGVzdF90dCk7CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISB0ZXN0 X3NlbGVjdCB7CistICAgICgKKy0gICAgICAgICRlbGVtX3R5OmlkZW50LAorLSAgICAgICAgJG1h c2tfdHk6aWRlbnQsCistICAgICAgICAkdmVjX3R5OmlkZW50LCgkc21hbGw6ZXhwciwgJGxhcmdl OmV4cHIpIHwKKy0gICAgICAgICR0ZXN0X3R0OnR0CistICAgICkgPT4geworLSAgICAgICAgdGVz dF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkdmVjX3R5IF9zZWxlY3Q+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistCistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgZm4gc2VsZWN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0g JHNtYWxsIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGxh cmdlIGFzICRlbGVtX3R5OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJHZl Y190eTo6c3BsYXQobyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkdmVjX3R5 OjpzcGxhdCh0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGEubHQoYik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLnNlbGVjdChhLCBiKSwgYSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBiLmx0KGEpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYiwgYSksIGEpOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgYyA9IGE7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBkID0gYjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IG1fZSA9ICRt YXNrX3R5OjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MC4uJHZlY190eTo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg JSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNfdG1wID0g Yy5leHRyYWN0KGkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGMucmVw bGFjZShpLCBkLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZCA9IGQucmVwbGFjZShpLCBjX3RtcCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2UgPSBtX2UucmVwbGFj ZShpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbSA9IGMubHQo ZCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtX2UsIG0pOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYywgZCksIGEpOworLSAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9zaHVmZmxlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwxODQgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIHZlY3RvciBzaHVm ZmxlcyB3aXRoIGltbWVkaWF0ZSBpbmRpY2VzLgorLQorLS8vIEZJWE1FOiBjb21wcmVoZW5zaXZl IHRlc3RzCistLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy8yMAorLQorLS8vLyBTaHVmZmxlcyB2ZWN0b3IgZWxlbWVudHMuCistLy8vCist Ly8vIFRoaXMgbWFjcm8gcmV0dXJucyBhIG5ldyB2ZWN0b3IgdGhhdCBjb250YWlucyBhIHNodWZm bGUgb2YgdGhlIGVsZW1lbnRzIGluCistLy8vIG9uZSAoYHNodWZmbGUhKHZlYywgW2luZGljZXMu Li5dKWApIG9yIHR3byAoYHNodWZmbGUhKHZlYzAsIHZlYzEsCistLy8vIFtpbmRpY2VzLi4uXSlg KSBpbnB1dCB2ZWN0b3JzLgorLS8vLworLS8vLyBUaGUgdHlwZSBvZiBgdmVjMGAgYW5kIGB2ZWMx YCBtdXN0IGJlIGVxdWFsLCBhbmQgdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUKKy0vLy8gcmVzdWx0 aW5nIHZlY3RvciBpcyB0aGUgZWxlbWVudCB0eXBlIG9mIHRoZSBpbnB1dCB2ZWN0b3IuCistLy8v CistLy8vIFRoZSBudW1iZXIgb2YgYGluZGljZXNgIG11c3QgYmUgYSBwb3dlci1vZi10d28gaW4g cmFuZ2UgYFswLCA2NClgLCBzaW5jZQorLS8vLyBjdXJyZW50bHksIHRoZSBsYXJnZXN0IHZlY3Rv ciBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkgaGFzIDY0IGxhbmVzLiBUaGUKKy0vLy8gbGVuZ3Ro IG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yIGVxdWFscyB0aGUgbnVtYmVyIG9mIGluZGljZXMgcHJv dmlkZWQuCistLy8vCistLy8vIFRoZSBpbmRpY2VzIG11c3QgYmUgaW4gcmFuZ2UgYFswLCBNICog TilgIHdoZXJlIGBNYCBpcyB0aGUgbnVtYmVyIG9mIGlucHV0CistLy8vIHZlY3RvcnMgKGAxYCBv ciBgMmApIGFuZCBgTmAgaXMgdGhlIG51bWJlciBvZiBsYW5lcyBvZiB0aGUgaW5wdXQgdmVjdG9y cy4KKy0vLy8gVGhlIGluZGljZXMgYGlgIGluIHJhbmdlIGBbMCwgTilgIHJlZmVyIHRvIHRoZSBg aWAtdGggZWxlbWVudCBvZiBgdmVjMGAsCistLy8vIHdoaWxlIHRoZSBpbmRpY2VzIGluIHJhbmdl IGBbTiwgMipOKWAgcmVmZXIgdG8gdGhlIGBpIC0gTmAtdGggZWxlbWVudCBvZgorLS8vLyBgdmVj MWAuCistLy8vCistLy8vICMgRXhhbXBsZXMKKy0vLy8KKy0vLy8gU2h1ZmZsaW5nIGVsZW1lbnRz IG9mIHR3byB2ZWN0b3JzOgorLS8vLworLS8vLyBgYGAKKy0vLy8gIyB1c2UgcGFja2VkX3NpbWQ6 Oio7CistLy8vICMgZm4gbWFpbigpIHsKKy0vLy8gLy8gU2h1ZmZsZSBhbGxvd3MgcmVvcmRlcmlu ZyB0aGUgZWxlbWVudHM6CistLy8vIGxldCB4ID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKKy0v Ly8gbGV0IHkgPSBpMzJ4NDo6bmV3KDUsIDYsIDcsIDgpOworLS8vLyBsZXQgciA9IHNodWZmbGUh KHgsIHksIFs0LCAwLCA1LCAxXSk7CistLy8vIGFzc2VydF9lcSEociwgaTMyeDQ6Om5ldyg1LCAx LCA2LCAyKSk7CistLy8vCistLy8vIC8vIFRoZSByZXN1bHRpbmcgdmVjdG9yIGNhbiBhbHMgYmUg c21hbGxlciB0aGFuIHRoZSBpbnB1dDoKKy0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCB5LCBbMSwg Nl0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMngyOjpuZXcoMiwgNykpOworLS8vLworLS8vLyAv LyBPciBsYXJnZXI6CistLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgeSwgWzEsIDMsIDQsIDIsIDEs IDcsIDIsIDJdKTsKKy0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4ODo6bmV3KDIsIDQsIDUsIDMsIDIs IDgsIDMsIDMpKTsKKy0vLy8gLy8gQXQgbW9zdCAyICogdGhlIG51bWJlciBvZiBsYW5lcyBpbiB0 aGUgaW5wdXQgdmVjdG9yLgorLS8vLyAjIH0KKy0vLy8gYGBgCistLy8vCistLy8vIFNodWZmbGlu ZyBlbGVtZW50cyBvZiBvbmUgdmVjdG9yOgorLS8vLworLS8vLyBgYGAKKy0vLy8gIyB1c2UgcGFj a2VkX3NpbWQ6Oio7CistLy8vICMgZm4gbWFpbigpIHsKKy0vLy8gLy8gU2h1ZmZsZSBhbGxvd3Mg cmVvcmRlcmluZyB0aGUgZWxlbWVudHMgb2YgYSB2ZWN0b3I6CistLy8vIGxldCB4ID0gaTMyeDQ6 Om5ldygxLCAyLCAzLCA0KTsKKy0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMiwgMSwgMywgMF0p OworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng0OjpuZXcoMywgMiwgNCwgMSkpOworLS8vLworLS8v LyAvLyBUaGUgcmVzdWx0aW5nIHZlY3RvciBjYW4gYmUgc21hbGxlciB0aGFuIHRoZSBpbnB1dDoK Ky0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgM10pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkz MngyOjpuZXcoMiwgNCkpOworLS8vLworLS8vLyAvLyBFcXVhbDoKKy0vLy8gbGV0IHIgPSBzaHVm ZmxlISh4LCBbMSwgMywgMiwgMF0pOworLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng0OjpuZXcoMiwg NCwgMywgMSkpOworLS8vLworLS8vLyAvLyBPciBsYXJnZXI6CistLy8vIGxldCByID0gc2h1ZmZs ZSEoeCwgWzEsIDMsIDIsIDIsIDEsIDMsIDIsIDJdKTsKKy0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4 ODo6bmV3KDIsIDQsIDMsIDMsIDIsIDQsIDMsIDMpKTsKKy0vLy8gLy8gQXQgbW9zdCAyICogdGhl IG51bWJlciBvZiBsYW5lcyBpbiB0aGUgaW5wdXQgdmVjdG9yLgorLS8vLyAjIH0KKy0vLy8gYGBg CistI1ttYWNyb19leHBvcnRdCistbWFjcm9fcnVsZXMhIHNodWZmbGUgeworLSAgICAoJHZlYzA6 ZXhwciwgJHZlYzE6ZXhwciwgWyRsMDpleHByLCAkbDE6ZXhwcl0pID0+IHt7CistICAgICAgICAj W2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAk Y3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yMjo6PHtbJGwwLCAkbDFdfSwgXywg Xz4oCistICAgICAgICAgICAgICAgICR2ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAs CistICAgICAgICAgICAgKSkKKy0gICAgICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHBy LCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHJdKSA9 PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjQ6Ojx7 WyRsMCwgJGwxLCAkbDIsICRsM119LCBfLCBfPigKKy0gICAgICAgICAgICAgICAgJHZlYzAuMCwK Ky0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQorLSAgICAgICAgfQor LSAgICB9fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsCistICAgICBbJGwwOmV4cHIs ICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCistICAgICAgJGw0OmV4cHIsICRsNTpleHBy LCAkbDY6ZXhwciwgJGw3OmV4cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5z YWZlKV0KKy0gICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0 ZTo6X19zaHVmZmxlX3ZlY3Rvcjg6Ojx7WyRsMCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRs NiwgJGw3XX0sIF8sIF8+KAorLSAgICAgICAgICAgICAgICAkdmVjMC4wLAorLSAgICAgICAgICAg ICAgICAkdmVjMS4wLAorLSAgICAgICAgICAgICkpCistICAgICAgICB9CistICAgIH19OworLSAg ICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwKKy0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRs MjpleHByLCAkbDM6ZXhwciwKKy0gICAgICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAk bDc6ZXhwciwKKy0gICAgICAkbDg6ZXhwciwgJGw5OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHBy LAorLSAgICAgICRsMTI6ZXhwciwgJGwxMzpleHByLCAkbDE0OmV4cHIsICRsMTU6ZXhwcl0pID0+ IHt7CistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsK Ky0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yMTY6Ojx7 CistICAgICAgICAgICAgICAgIFsKKy0gICAgICAgICAgICAgICAgICAgICRsMCwgJGwxLCAkbDIs ICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwgJGwxMCwKKy0gICAgICAgICAgICAg ICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRsMTUsCistICAgICAgICAgICAgICAgIF0K Ky0gICAgICAgICAgICB9LCBfLCBfPigKKy0gICAgICAgICAgICAgICAgJHZlYzAuMCwKKy0gICAg ICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQorLSAgICAgICAgfQorLSAgICB9 fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsCistICAgICBbJGwwOmV4cHIsICRsMTpl eHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCistICAgICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6 ZXhwciwgJGw3OmV4cHIsCistICAgICAgJGw4OmV4cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRs MTE6ZXhwciwKKy0gICAgICAkbDEyOmV4cHIsICRsMTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4 cHIsCistICAgICAgJGwxNjpleHByLCAkbDE3OmV4cHIsICRsMTg6ZXhwciwgJGwxOTpleHByLAor LSAgICAgICRsMjA6ZXhwciwgJGwyMTpleHByLCAkbDIyOmV4cHIsICRsMjM6ZXhwciwKKy0gICAg ICAkbDI0OmV4cHIsICRsMjU6ZXhwciwgJGwyNjpleHByLCAkbDI3OmV4cHIsCistICAgICAgJGwy ODpleHByLCAkbDI5OmV4cHIsICRsMzA6ZXhwciwgJGwzMTpleHByXSkgPT4ge3sKKy0gICAgICAg ICNbYWxsb3codW51c2VkX3Vuc2FmZSldCistICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3IzMjo6PHsKKy0gICAgICAgICAg ICAgICAgWworLSAgICAgICAgICAgICAgICAgICAgJGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRs NSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEwLAorLSAgICAgICAgICAgICAgICAgICAgJGwxMSwg JGwxMiwgJGwxMywgJGwxNCwgJGwxNSwgJGwxNiwgJGwxNywgJGwxOCwgJGwxOSwKKy0gICAgICAg ICAgICAgICAgICAgICRsMjAsICRsMjEsICRsMjIsICRsMjMsICRsMjQsICRsMjUsICRsMjYsICRs MjcsICRsMjgsCistICAgICAgICAgICAgICAgICAgICAkbDI5LCAkbDMwLCAkbDMxLAorLSAgICAg ICAgICAgICAgICBdCistICAgICAgICAgICAgfSwgXywgXz4oCistICAgICAgICAgICAgICAgICR2 ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkKKy0gICAg ICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAorLSAgICAgWyRs MDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAorLSAgICAgICRsNDpleHByLCAk bDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAorLSAgICAgICRsODpleHByLCAkbDk6ZXhwciwg JGwxMDpleHByLCAkbDExOmV4cHIsCistICAgICAgJGwxMjpleHByLCAkbDEzOmV4cHIsICRsMTQ6 ZXhwciwgJGwxNTpleHByLAorLSAgICAgICRsMTY6ZXhwciwgJGwxNzpleHByLCAkbDE4OmV4cHIs ICRsMTk6ZXhwciwKKy0gICAgICAkbDIwOmV4cHIsICRsMjE6ZXhwciwgJGwyMjpleHByLCAkbDIz OmV4cHIsCistICAgICAgJGwyNDpleHByLCAkbDI1OmV4cHIsICRsMjY6ZXhwciwgJGwyNzpleHBy LAorLSAgICAgICRsMjg6ZXhwciwgJGwyOTpleHByLCAkbDMwOmV4cHIsICRsMzE6ZXhwciwKKy0g ICAgICAkbDMyOmV4cHIsICRsMzM6ZXhwciwgJGwzNDpleHByLCAkbDM1OmV4cHIsCistICAgICAg JGwzNjpleHByLCAkbDM3OmV4cHIsICRsMzg6ZXhwciwgJGwzOTpleHByLAorLSAgICAgICRsNDA6 ZXhwciwgJGw0MTpleHByLCAkbDQyOmV4cHIsICRsNDM6ZXhwciwKKy0gICAgICAkbDQ0OmV4cHIs ICRsNDU6ZXhwciwgJGw0NjpleHByLCAkbDQ3OmV4cHIsCistICAgICAgJGw0ODpleHByLCAkbDQ5 OmV4cHIsICRsNTA6ZXhwciwgJGw1MTpleHByLAorLSAgICAgICRsNTI6ZXhwciwgJGw1MzpleHBy LCAkbDU0OmV4cHIsICRsNTU6ZXhwciwKKy0gICAgICAkbDU2OmV4cHIsICRsNTc6ZXhwciwgJGw1 ODpleHByLCAkbDU5OmV4cHIsCistICAgICAgJGw2MDpleHByLCAkbDYxOmV4cHIsICRsNjI6ZXhw ciwgJGw2MzpleHByXSkgPT4ge3sKKy0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCist ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1 ZmZsZV92ZWN0b3I2NDo6PHtbCistICAgICAgICAgICAgICAgICRsMCwgJGwxLCAkbDIsICRsMywg JGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwgJGwxMCwKKy0gICAgICAgICAgICAgICAgJGwx MSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwgJGwxNiwgJGwxNywgJGwxOCwgJGwxOSwKKy0gICAg ICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwyMiwgJGwyMywgJGwyNCwgJGwyNSwgJGwyNiwgJGwy NywgJGwyOCwKKy0gICAgICAgICAgICAgICAgJGwyOSwgJGwzMCwgJGwzMSwgJGwzMiwgJGwzMywg JGwzNCwgJGwzNSwgJGwzNiwgJGwzNywKKy0gICAgICAgICAgICAgICAgJGwzOCwgJGwzOSwgJGw0 MCwgJGw0MSwgJGw0MiwgJGw0MywgJGw0NCwgJGw0NSwgJGw0NiwKKy0gICAgICAgICAgICAgICAg JGw0NywgJGw0OCwgJGw0OSwgJGw1MCwgJGw1MSwgJGw1MiwgJGw1MywgJGw1NCwgJGw1NSwKKy0g ICAgICAgICAgICAgICAgJGw1NiwgJGw1NywgJGw1OCwgJGw1OSwgJGw2MCwgJGw2MSwgJGw2Miwg JGw2MywKKy0gICAgICAgICAgICBdfSwgXywgXz4oCistICAgICAgICAgICAgICAgICR2ZWMwLjAs CistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkKKy0gICAgICAgIH0K Ky0gICAgIH19OworLSAgICAoJHZlYzpleHByLCBbJCgkbDpleHByKSwqXSkgPT4geworLSAgICAg ICAgbWF0Y2ggJHZlYyB7CistICAgICAgICAgICAgdiA9PiBzaHVmZmxlISh2LCB2LCBbJCgkbCks Kl0pCistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlMV9keW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZTFfZHluLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxl MV9keW4ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OSArMCwwIEBACistLy8hIFNodWZmbGUg dmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBhIGR5bmFtaWMgdmVjdG9yIG9mIGluZGljZXMu CistCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKKy0gICAgKFskZWxlbV90eTpp ZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFNodWZmbGUgdmVjdG9yIGVsZW1l bnRzIGFjY29yZGluZyB0byBgaW5kaWNlc2AuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgcHViIGZuIHNodWZmbGUxX2R5bjxJPihzZWxmLCBpbmRpY2VzOiBJKSAtPiBTZWxm CistICAgICAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICAgICAgU2VsZjogY29kZWdlbjo6c2h1 ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjxJbmRpY2VzID0gST4sCistICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluOjpzaHVmZmxl MV9keW4oc2VsZiwgaW5kaWNlcykKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorLQorLW1hY3JvX3J1bGVzISB0ZXN0X3NodWZmbGUxX2R5biB7CistICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4g eworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NodWZm bGUxX2R5bj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGluY3JlYXNpbmcgPSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIGkgYXMgJGVsZW1fdHkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBkZWNyZWFzaW5nID0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA9IHYucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaWQ6OmxhbmVz KCkgLSAxIC0gaSkgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistCistICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkaWQgYXMgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bgorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICA+OjpJbmRpY2VzOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBpbmNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGluY3JlYXNpbmcuY2FzdCgpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBkZWNyZWFzaW5nX2lkczogSW5kaWNlcyA9IGRlY3JlYXNpbmcu Y2FzdCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGluY3JlYXNpbmdf aWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIihpLGkpPT5pIgorLSAgICAgICAgICAgICAgICAgICAgICAg ICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGVjcmVhc2luZy5zaHVmZmxlMV9keW4oaW5jcmVhc2luZ19pZHMpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiKGQsaSk9PmQiCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbmNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIoaSxkKT0+ZCIKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGRlY3JlYXNpbmdfaWRzKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5jcmVhc2luZywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IihkLGQpPT5pIgorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHZfaWRzOiBJbmRpY2VzCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9ICRpZDo6c3BsYXQoaSBhcyAkZWxlbV90eSkuY2FzdCgpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGluY3JlYXNpbmcuc2h1ZmZsZTFfZHluKHZfaWRz KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGlu Y3JlYXNpbmcuZXh0cmFjdChpKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShkZWNyZWFzaW5nLnNodWZmbGUx X2R5bih2X2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlk OjpzcGxhdChkZWNyZWFzaW5nLmV4dHJhY3QoaSkpCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNodWZmbGUxX2R5bihpbmNyZWFzaW5n X2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMg JGVsZW1fdHkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9zaHVmZmxlMV9keW5f bWFzayB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX3NodWZmbGUxX2R5bj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVz ZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9k eW4oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRpbmcgPSBbdHJ1ZSwg ZmFsc2UsIHRydWUsIGZhbHNlLCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBhbHRlcm5hdGluZyA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0 ZXJuYXRpbmcgPSBhbHRlcm5hdGluZy5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGlkIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW4KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPjo6SW5kaWNlczsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBldmVuID0gWzAsIDAsIDIsIDIsIDQsIDQsIC4uXQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBldmVuID0geworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSBJbmRpY2VzOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2 LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg PSB2LnJlcGxhY2UoaSwgKGkgYXMgdTggLSAxKS5pbnRvKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIG9kZCA9IFsxLCAxLCAzLCAzLCA1LCA1LCAuLi5dCist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9kZCA9IHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsgMSkuaW50bygpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAg ICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9keW4oZXZl biksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQodHJ1ZSkKKy0gICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6 bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZsZTFfZHlu KG9kZCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KGZhbHNl KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACistLy8hIFNsaWNlIGZyb20vdG8gbWV0aG9kcworLQor LSNbbWFjcm9fdXNlXQorLW1vZCBmcm9tX3NsaWNlOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB3 cml0ZV90b19zbGljZTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3Ns aWNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMDIgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRz IG1ldGhvZHMgdG8gcmVhZCBhIHZlY3RvciB0eXBlIGZyb20gYSBzbGljZS4KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9zbGljZV9mcm9tX3NsaWNlIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBp bXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0 aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBg c2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25l ZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZnJvbV9zbGljZV9h bGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVu c2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVt X2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNf cHRyKCk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRhcmdldF9wdHIuYWxpZ25f b2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOworLSAgICAgICAgICAg ICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzbGljZSkKKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gSW5zdGFu dGlhdGVzIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX3NsaWNlX3VuYWxp Z25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9j b3VudCk7CistICAgICAgICAgICAgICAgICAgICBTZWxmOjpmcm9tX3NsaWNlX3VuYWxpZ25lZF91 bmNoZWNrZWQoc2xpY2UpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVz IG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNh ZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkg PCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAorLSAgICAgICAg ICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeSwgdGhlIGJlaGF2aW9y IGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg dW5zYWZlIGZuIGZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHld KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+ PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2Uu YXNfcHRyKCk7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEodGFyZ2V0X3B0ci5h bGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7CistCistICAg ICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQorLSAgICAg ICAgICAgICAgICAqKHRhcmdldF9wdHIgYXMgKmNvbnN0IFNlbGYpCistICAgICAgICAgICAgfQor LQorLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZh bHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g IyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxl bigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGZyb21fc2xpY2VfdW5h bGlnbmVkX3VuY2hlY2tlZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Om1lbTo6c2l6ZV9vZjsKKy0gICAgICAgICAgICAgICAgZGVidWdf YXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgIGxl dCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOworLSAgICAgICAgICAgICAgICBs ZXQgbXV0IHggPSBTZWxmOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg bGV0IHNlbGZfcHRyID0gJm11dCB4IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4OworLSAgICAgICAg ICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHRhcmdldF9wdHIsIHNlbGZf cHRyLCBzaXplX29mOjo8U2VsZj4oKSk7CistICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgLy8g Q29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCist ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV9mcm9tX3NsaWNlPl0geworLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVy OjpJdGVyYXRvcjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbNDIgYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMo KSArIDFdOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFswXSA9IDAgYXMgJGVs ZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6ZnJvbV9zbGlj ZV91bmFsaWduZWQoJnVuYWxpZ25lZFsxLi5dKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGluZGV4LCAmYikgaW4gdW5hbGlnbmVkLml0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGluZGV4ID09IDAgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoYiwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCB2ZWMuZXh0cmFjdChpbmRleCAtIDEpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3 YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAg ICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0 ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAg ICAgICAgICBmbiBmcm9tX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVz KCkgKyAxXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRbMF0gPSAwIGFzICRl bGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFy Z2UgZW5vdWdoID0+IHBhbmljCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMgPSAk aWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMi4uXSk7CistICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g ZnJvbV9zbGljZV9hbGlnbmVkKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg YWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAk ZWxlbV90eTsgMiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAkaWQ6OmxhbmVzKCkuLigyICogJGlk OjpsYW5lcygpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbmVkLmRhdGFbaV0gPSA0MiBhcyAkZWxl bV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gdW5zYWZlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpmcm9tX3NsaWNlX2FsaWduZWQoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25lZC5kYXRhWyRpZDo6bGFuZXMo KS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAg ICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCAmYikgaW4KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgYWxpZ25lZC5kYXRhLml0ZXIoKS5l bnVtZXJhdGUoKSB9IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPCAk aWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShiLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgNDIgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpbmRl eCAtICRpZDo6bGFuZXMoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0g ICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAg ICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF92ZWMg PSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmZyb21fc2xpY2Vf YWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFb MiAqICRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAg ICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBw b3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg Ly8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikp XQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tz aG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRf ZmFpbF9hbGlnbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCld LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHI6ICpjb25zdCAkZWxlbV90eSA9IGFsaWduZWQu ZGF0YS5hc19wdHIoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0 ICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRl ciBieSBvbmUgZWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0g cHRyLndyYXBwaW5nX2FkZCgxKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg cHRyLmFsaWduX29mZnNldCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OmFsaWduX29mOjo8JGlkPigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkg PT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBp cyBwcm9wZXJseSBhbGlnbmVkLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gZnJvbV9zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0aGlzCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3 ZSBwYW5pYyB0byBtYWtlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUg InNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUs IGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9m IHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHM6ICZbJGVsZW1fdHldID0gc2xpY2U6OmZyb21fcmF3X3BhcnRz KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyLCAkaWQ6OmxhbmVzKCkKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxp Z25tZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3Ig dGhlIHZlY3RvciB0eXBlOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9 ICRpZDo6ZnJvbV9zbGljZV9hbGlnbmVkKHMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTk2 ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBtZXRob2RzIHRvIHdyaXRlIGEgdmVjdG9yIHR5cGUg dG8gYSBzbGljZS4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zbGljZV93cml0ZV90b19zbGljZSB7 CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBX cml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNl WzBdYCBpcyBub3QKKy0gICAgICAgICAgICAvLy8gYWxpZ25lZCB0byBhbiBgYWxpZ25fb2Y6OjxT ZWxmPigpYCBib3VuZGFyeS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHld KSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIGxl dCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpOworLSAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6 PFNlbGY+KCkpLCAwKTsKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2Vf YWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9y IHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBh bmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkg PCBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90 eV0pIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFz c2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAg c2VsZi53cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlKTsKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRo ZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8K Ky0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMg bm90CistICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAg Ym91bmRhcnksIHRoZSBiZWhhdmlvciBpcworLSAgICAgICAgICAgIC8vLyB1bmRlZmluZWQuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90 b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7 CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291 bnQpOworLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIo KTsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISh0YXJnZXRfcHRyLmFsaWduX29m ZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKKy0KKy0gICAgICAgICAg ICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCistICAgICAgICAgICAg ICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQorLSAgICAgICAgICAgICAg ICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KKy0gICAgICAgICAgICAgICAg I1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCistICAgICAgICAgICAgICAgICoo dGFyZ2V0X3B0ciBhcyAqbXV0IFNlbGYpID0gc2VsZjsKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGlj ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVz KClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVj a2VkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAgZGVi dWdfYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAg IGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKTsKKy0gICAgICAgICAg ICAgICAgbGV0IHNlbGZfcHRyID0gJnNlbGYgYXMgKmNvbnN0IFNlbGYgYXMgKmNvbnN0IHU4Owor LSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHNlbGZfcHRy LCB0YXJnZXRfcHRyLCBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSk7CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0 ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIC8v IENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgor LSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2Vfd3JpdGVfdG9fc2xpY2U+XSB7CistICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Oml0ZXI6Okl0ZXJhdG9yOworLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxlbV90eTsgJGlk OjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6 c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0 ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMS4uXSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRl KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXgg LSAxKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9w YW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAg ICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQor LSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB1bmFsaWduZWQgPSBbMCBhcyAkZWxl bV90eTsgJGlkOjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZl YyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAg IHZlYy53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRbMi4uXSk7CistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCld LAorLSAgICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZCwKKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3Bs YXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGlnbmVkLmRhdGFbJGlkOjps YW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvciAoaWR4LCAmYikgaW4gYWxpZ25lZC5kYXRhLml0ZXIoKS5lbnVt ZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpZHggPCAkaWQ6 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo YiwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIs IHZlYy5leHRyYWN0KGlkeCAtICRpZDo6bGFuZXMoKSkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6 IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAg ICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAj W3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAg ICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5lcygpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAor LSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19z bGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhbGln bmVkLmRhdGFbMiAqICRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2Vz IG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAg ICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19z bGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBbMCBhcyAkZWxlbV90eTsg MiAqICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250 IG9mIGRhdGEKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0cjogKm11dCAkZWxl bV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhbGlnbmVkLmRhdGEuYXNf bXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG9mZnNldCBwb2ludGVyIGJ5IG9uZSBlbGVtZW50CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBwdHIgPSBwdHIud3JhcHBpbmdfYWRkKDEpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBwdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8 JGlkPigpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGln bmVkLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGVfdG9fc2xp Y2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoaXMgY2FuIGhhcHBlbiBmb3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgdGhlICJzaG91bGRfZmFp bCIgdGVzdCBwYXNzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuaWMhKCJv ayIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRo ZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2Ug ZXhpc3QsIGFyZSBwcm9wZXJseQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0 aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBzOiAmbXV0IFskZWxlbV90eV0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dChwdHIsICRpZDo6bGFuZXMoKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNh dXNlIHRoZSBzbGljZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQg ZG9lcyBub3QgbWF0Y2ggdGhlIGFsaWdubWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyByZXF1aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoNDIgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZChzKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVz LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE5MiArMCww IEBACistLy8hIEhvcml6b250YWwgc3dhcCBieXRlcworLQorLW1hY3JvX3J1bGVzISBpbXBsX3N3 YXBfYnl0ZXMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAg ICAgICAvLy8gUmV2ZXJzZXMgdGhlIGJ5dGUgb3JkZXIgb2YgdGhlIHZlY3Rvci4KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgc3VwZXI6OmNvZGVnZW46OnN3YXBfYnl0ZXM6OlN3YXBC eXRlczo6c3dhcF9ieXRlcyhzZWxmKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAv Ly8gQ29udmVydHMgc2VsZiB0byBsaXR0bGUgZW5kaWFuIGZyb20gdGhlIHRhcmdldCdzIGVuZGlh bm5lc3MuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9uIGxpdHRsZSBlbmRp YW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBiaWcgZW5kaWFuIHRoZSBieXRlcyBhcmUKKy0gICAgICAg ICAgICAvLy8gc3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gdG9fbGUoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgICAgIHNlbGYuc3dhcF9ieXRlcygpCistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENvbnZlcnRzIHNlbGYgdG8gYmlnIGVu ZGlhbiBmcm9tIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyBPbiBiaWcgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gbGl0dGxlIGVu ZGlhbiB0aGUgYnl0ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBwZWQuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHRvX2JlKHNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQorLSAgICAgICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzZWxmCistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAiYmlnIikpXQorLSAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzZWxmLnN3YXBfYnl0ZXMoKQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBD b252ZXJ0cyBhIHZlY3RvciBmcm9tIGxpdHRsZSBlbmRpYW4gdG8gdGhlIHRhcmdldCdzIGVuZGlh bm5lc3MuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE9uIGxpdHRsZSBlbmRp YW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBiaWcgZW5kaWFuIHRoZSBieXRlcyBhcmUKKy0gICAgICAg ICAgICAvLy8gc3dhcHBlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gZnJvbV9sZSh4OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICAgICAgeC5zd2FwX2J5dGVzKCkKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29udmVydHMgYSB2ZWN0b3IgZnJvbSBi aWcgZW5kaWFuIHRvIHRoZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBPbiBiaWcgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gbGl0dGxl IGVuZGlhbiB0aGUgYnl0ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBwZWQuCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGZyb21fYmUoeDogU2VsZikgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIildCist ICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSld CistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHguc3dhcF9ieXRlcygp CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFz dGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc3dhcF9ieXRlcz5d IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0KKy0gICAgICAgICAgICAg ICAgICAgIGNvbnN0IEJZVEVTOiBbdTg7IDY0XSA9IFsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDgsIDks IDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICAgICAgICAgICAgICAgICAgICAgMTYsIDE3 LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLAorLSAgICAgICAgICAgICAgICAgICAgICAgIDI0LCAy NSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAzMiwg MzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksCistICAgICAgICAgICAgICAgICAgICAgICAgNDAs IDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDQ4 LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwKKy0gICAgICAgICAgICAgICAgICAgICAgICA1 NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsCistICAgICAgICAgICAgICAgICAgICBdOwor LQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHN3YXAgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+IHt7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGNhdGNoIHBvc3NpYmxlIGZ1dHVyZSA+NTEyIHZlY3RvcnMKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShtZW06OnNpemVfb2Y6OjwkaWQ+KCkgPD0gNjQpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFjdHVhbCA9IEJZVEVTOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbXM6ICZtdXQgWyRlbGVtX3R5XSA9 IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGljZTo6ZnJvbV9y YXdfcGFydHNfbXV0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVh bC5hc19tdXRfcHRyKCkgYXMgKm11dCAkZWxlbV90eSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkaWQ6OmxhbmVzKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKGVsZW1z KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjokZnVuYyh2ZWMpLndyaXRlX3Rv X3NsaWNlX3VuYWxpZ25lZChlbGVtcyk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFjdHVhbAorLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3Rfc3dhcCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVudCkgPT4ge3sKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJZVEVTLml0ZXIoKS5yZXYoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLnNraXAoNjQgLSBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGlkPigpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhY3R1YWwuaXRlcigpLnppcChleHBlY3RlZCkK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWxsKHwoeCwgeSl8IHggPT0g eSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH19OworLSAgICAgICAgICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9fcnVsZXMhIHRlc3Rfbm9fc3dhcCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVudCkgPT4ge3sKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IHN3YXAhKCRmdW5jKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0gQllURVMuaXRlcigpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAudGFrZShtZW06OnNpemVfb2Y6OjwkaWQ+KCkpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGFjdHVhbC5pdGVyKCkuemlwKGV4 cGVjdGVkKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hbGwofCh4LCB5 KXwgeCA9PSB5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfX07CistICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRl cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3YXAhKHN3YXBfYnl0ZXMpOwor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIHRvX2xlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRp YW4gPSAibGl0dGxlIildCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3YXAhKHRvX2xlKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRp YW4gPSAibGl0dGxlIikpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9zd2FwISh0b19sZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIHRvX2JlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9lbmRpYW4gPSAiYmlnIildCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3YXAhKHRvX2JlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9lbmRpYW4gPSAiYmlnIikpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9zd2FwISh0b19iZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIGZyb21fbGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEoZnJvbV9sZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEoZnJvbV9sZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fYmUoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJiaWciKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9fc3dhcCEo ZnJvbV9iZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEoZnJv bV9iZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2MiArMCwwIEBACistLy8hIENv ZGUtZ2VuZXJhdGlvbiB1dGlsaXRpZXMKKy0KKy1wdWIoY3JhdGUpIG1vZCBiaXRfbWFuaXA7Cist cHViKGNyYXRlKSBtb2QgbGx2bTsKKy1wdWIoY3JhdGUpIG1vZCBtYXRoOworLXB1YihjcmF0ZSkg bW9kIHJlZHVjdGlvbnM7CistcHViKGNyYXRlKSBtb2Qgc2h1ZmZsZTsKKy1wdWIoY3JhdGUpIG1v ZCBzaHVmZmxlMV9keW47CistcHViKGNyYXRlKSBtb2Qgc3dhcF9ieXRlczsKKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9zaW1kX2FycmF5IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06CistICAgICAkdHVwbGVfaWQ6aWRlbnQgfCAkKCRlbGVtX3R5czppZGVudCksKikg PT4geworLSAgICAgICAgI1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLSAgICAgICAgI1tyZXByKHNp bWQpXQorLSAgICAgICAgcHViIHN0cnVjdCAkdHVwbGVfaWQoJChwdWIoY3JhdGUpICRlbGVtX3R5 cyksKik7CistICAgICAgICAvL15eXl5eXl4gbGVha2VkIHRocm91Z2ggU2ltZEFycmF5CistCist ICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskZWxlbV90eTsgJGVsZW1fY291 bnRdIHt9CistCistICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNpbWRBcnJheSBmb3IgWyRl bGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVf aWQ7CistICAgICAgICAgICAgdHlwZSBUID0gJGVsZW1fdHk7CistICAgICAgICAgICAgY29uc3Qg TjogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIE5UID0gW3UzMjsgJGVs ZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpT ZWFsIGZvciAkdHVwbGVfaWQge30KKy0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2ltZCBm b3IgJHR1cGxlX2lkIHsKKy0gICAgICAgICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90eTsKKy0g ICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAg ICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0g ICAgfQorLX0KKy0KKy1wdWIoY3JhdGUpIG1vZCBwb2ludGVyX3NpemVkX2ludDsKKy0KKy1wdWIo Y3JhdGUpIG1vZCB2MTY7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djE2OjoqOworLQorLXB1Yihj cmF0ZSkgbW9kIHYzMjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MzI6Oio7CistCistcHViKGNy YXRlKSBtb2QgdjY0OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnY2NDo6KjsKKy0KKy1wdWIoY3Jh dGUpIG1vZCB2MTI4OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYxMjg6Oio7CistCistcHViKGNy YXRlKSBtb2QgdjI1NjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MjU2OjoqOworLQorLXB1Yihj cmF0ZSkgbW9kIHY1MTI7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djUxMjo6KjsKKy0KKy1wdWIo Y3JhdGUpIG1vZCB2U2l6ZTsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2U2l6ZTo6KjsKKy0KKy1w dWIoY3JhdGUpIG1vZCB2UHRyOworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnZQdHI6Oio7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9iaXRfbWFu aXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2JpdF9tYW5p cC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2JpdF9tYW5pcC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MzQ3ICswLDAgQEAKKy0vLyEgTExWTSBiaXQgbWFuaXB1bGF0aW9uIGludHJpbnNpY3MuCistI1ty dXN0Zm10Ojpza2lwXQorLQorLXB1YihjcmF0ZSkgdXNlIGNyYXRlOjoqOworLQorLSNbYWxsb3co aW1wcm9wZXJfY3R5cGVzLCBkZWFkX2NvZGUpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0bHoudjJpOCJdCistICAgIGZuIGN0bHpfdTh4Mih4OiB1OHgyLCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHou djRpOCJdCistICAgIGZuIGN0bHpfdTh4NCh4OiB1OHg0LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpOCJdCistICAgIGZuIGN0 bHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg4OworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2aTgiXQorLSAgICBmbiBjdGx6X3U4eDE2KHg6IHU4eDE2 LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgxNjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnYzMmk4Il0KKy0gICAgZm4gY3Rsel91OHgzMih4OiB1OHgzMiwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTh4MzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NjRpOCJd CistICAgIGZuIGN0bHpfdTh4NjQoeDogdTh4NjQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4 eDY0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpMTYiXQorLSAgICBmbiBj dGx6X3UxNngyKHg6IHUxNngyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4NCh4OiB1 MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDQ7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rsei52OGkxNiJdCistICAgIGZuIGN0bHpfdTE2eDgoeDogdTE2eDgsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHUxNng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjE2 aTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4MTYoeDogdTE2eDE2LCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1MTZ4MTY7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MzJpMTYiXQorLSAg ICBmbiBjdGx6X3UxNngzMih4OiB1MTZ4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNngz MjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTMyIl0KKy0gICAgZm4gY3Rs el91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDI7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rsei52NGkzMiJdCistICAgIGZuIGN0bHpfdTMyeDQoeDogdTMy eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjhpMzIiXQorLSAgICBmbiBjdGx6X3UzMng4KHg6IHUzMng4LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYxNmkz MiJdCistICAgIGZuIGN0bHpfdTMyeDE2KHg6IHUzMngxNiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTMyeDE2OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpNjQiXQorLSAg ICBmbiBjdGx6X3U2NHgyKHg6IHU2NHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4MjsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTY0Il0KKy0gICAgZm4gY3Rsel91NjR4 NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDQ7CistICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rsei52OGk2NCJdCistICAgIGZuIGN0bHpfdTY0eDgoeDogdTY0eDgsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0bHoudjFpMTI4Il0KKy0gICAgZm4gY3Rsel91MTI4eDEoeDogdTEyOHgxLCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MTI4eDE7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52Mmkx MjgiXQorLSAgICBmbiBjdGx6X3UxMjh4Mih4OiB1MTI4eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wp IC0+IHUxMjh4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTEyOCJdCistICAg IGZuIGN0bHpfdTEyOHg0KHg6IHUxMjh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHg0 OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpOCJdCistICAgIGZuIGN0dHpf dTh4Mih4OiB1OHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgyOworLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0dHoudjRpOCJdCistICAgIGZuIGN0dHpfdTh4NCh4OiB1OHg0LCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHou djhpOCJdCistICAgIGZuIGN0dHpfdTh4OCh4OiB1OHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHg4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjE2aTgiXQorLSAgICBmbiBj dHR6X3U4eDE2KHg6IHU4eDE2LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHgxNjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYzMmk4Il0KKy0gICAgZm4gY3R0el91OHgzMih4OiB1 OHgzMiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MzI7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uY3R0ei52NjRpOCJdCistICAgIGZuIGN0dHpfdTh4NjQoeDogdTh4NjQsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHU4eDY0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHou djJpMTYiXQorLSAgICBmbiBjdHR6X3UxNngyKHg6IHUxNngyLCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1MTZ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTE2Il0KKy0gICAg Zm4gY3R0el91MTZ4NCh4OiB1MTZ4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDQ7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGkxNiJdCistICAgIGZuIGN0dHpfdTE2eDgo eDogdTE2eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng4OworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0dHoudjE2aTE2Il0KKy0gICAgZm4gY3R0el91MTZ4MTYoeDogdTE2eDE2LCBp c196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MTY7CistICAgICNbbGlua19uYW1lID0gImxsdm0u Y3R0ei52MzJpMTYiXQorLSAgICBmbiBjdHR6X3UxNngzMih4OiB1MTZ4MzIsIGlzX3plcm9fdW5k ZWY6IGJvb2wpIC0+IHUxNngzMjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYy aTMyIl0KKy0gICAgZm4gY3R0el91MzJ4Mih4OiB1MzJ4MiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGkzMiJdCistICAgIGZu IGN0dHpfdTMyeDQoeDogdTMyeDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMng0OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpMzIiXQorLSAgICBmbiBjdHR6X3UzMng4KHg6 IHUzMng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4ODsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHR6LnYxNmkzMiJdCistICAgIGZuIGN0dHpfdTMyeDE2KHg6IHUzMngxNiwgaXNf emVyb191bmRlZjogYm9vbCkgLT4gdTMyeDE2OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmN0dHoudjJpNjQiXQorLSAgICBmbiBjdHR6X3U2NHgyKHg6IHU2NHgyLCBpc196ZXJvX3VuZGVm OiBib29sKSAtPiB1NjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTY0Il0K Ky0gICAgZm4gY3R0el91NjR4NCh4OiB1NjR4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0 eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52OGk2NCJdCistICAgIGZuIGN0dHpf dTY0eDgoeDogdTY0eDgsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg4OworLQorLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjFpMTI4Il0KKy0gICAgZm4gY3R0el91MTI4eDEoeDog dTEyOHgxLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDE7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uY3R0ei52MmkxMjgiXQorLSAgICBmbiBjdHR6X3UxMjh4Mih4OiB1MTI4eDIsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHR6LnY0aTEyOCJdCistICAgIGZuIGN0dHpfdTEyOHg0KHg6IHUxMjh4NCwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTEyOHg0OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYy aTgiXQorLSAgICBmbiBjdHBvcF91OHgyKHg6IHU4eDIpIC0+IHU4eDI7CistICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rwb3AudjRpOCJdCistICAgIGZuIGN0cG9wX3U4eDQoeDogdTh4NCkgLT4g dTh4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGk4Il0KKy0gICAgZm4gY3Rw b3BfdTh4OCh4OiB1OHg4KSAtPiB1OHg4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9w LnYxNmk4Il0KKy0gICAgZm4gY3Rwb3BfdTh4MTYoeDogdTh4MTYpIC0+IHU4eDE2OworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYzMmk4Il0KKy0gICAgZm4gY3Rwb3BfdTh4MzIoeDog dTh4MzIpIC0+IHU4eDMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY2NGk4Il0K Ky0gICAgZm4gY3Rwb3BfdTh4NjQoeDogdTh4NjQpIC0+IHU4eDY0OworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0cG9wLnYyaTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDIoeDogdTE2eDIp IC0+IHUxNngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTE2Il0KKy0gICAg Zm4gY3Rwb3BfdTE2eDQoeDogdTE2eDQpIC0+IHUxNng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0cG9wLnY4aTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDgoeDogdTE2eDgpIC0+IHUxNng4 OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxNmkxNiJdCistICAgIGZuIGN0cG9w X3UxNngxNih4OiB1MTZ4MTYpIC0+IHUxNngxNjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHBvcC52MzJpMTYiXQorLSAgICBmbiBjdHBvcF91MTZ4MzIoeDogdTE2eDMyKSAtPiB1MTZ4MzI7 CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpMzIiXQorLSAgICBmbiBjdHBv cF91MzJ4Mih4OiB1MzJ4MikgLT4gdTMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rw b3AudjRpMzIiXQorLSAgICBmbiBjdHBvcF91MzJ4NCh4OiB1MzJ4NCkgLT4gdTMyeDQ7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjhpMzIiXQorLSAgICBmbiBjdHBvcF91MzJ4OCh4 OiB1MzJ4OCkgLT4gdTMyeDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjE2aTMy Il0KKy0gICAgZm4gY3Rwb3BfdTMyeDE2KHg6IHUzMngxNikgLT4gdTMyeDE2OworLQorLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTY0Il0KKy0gICAgZm4gY3Rwb3BfdTY0eDIoeDog dTY0eDIpIC0+IHU2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTY0Il0K Ky0gICAgZm4gY3Rwb3BfdTY0eDQoeDogdTY0eDQpIC0+IHU2NHg0OworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0cG9wLnY4aTY0Il0KKy0gICAgZm4gY3Rwb3BfdTY0eDgoeDogdTY0eDgpIC0+ IHU2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxaTEyOCJdCistICAg IGZuIGN0cG9wX3UxMjh4MSh4OiB1MTI4eDEpIC0+IHUxMjh4MTsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHBvcC52MmkxMjgiXQorLSAgICBmbiBjdHBvcF91MTI4eDIoeDogdTEyOHgyKSAt PiB1MTI4eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjRpMTI4Il0KKy0gICAg Zm4gY3Rwb3BfdTEyOHg0KHg6IHUxMjh4NCkgLT4gdTEyOHg0OworLX0KKy0KKy1wdWIoY3JhdGUp IHRyYWl0IEJpdE1hbmlwIHsKKy0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZjsKKy0gICAgZm4g Y3RseihzZWxmKSAtPiBTZWxmOworLSAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGY7CistfQorLQor LW1hY3JvX3J1bGVzISBpbXBsX2JpdF9tYW5pcCB7CistICAgIChpbm5lcjogJHR5OmlkZW50LCAk c2NhbGFyOnR5LCAkdXR5OmlkZW50LAorLSAgICAgJGN0cG9wOmlkZW50LCAkY3RsejppZGVudCwg JGN0dHo6aWRlbnQpID0+IHsKKy0gICAgICAgIC8vIEZJWE1FOiBzZXZlcmFsIExMVk0gaW50cmlu c2ljcyBicmVhayBvbiBzMzkweCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkv cGFja2VkX3NpbWQvaXNzdWVzLzE5MgorLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5 MHgiKV0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0K Ky0gICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KKy0gICAgICAgIGlt cGwgQml0TWFuaXAgZm9yICR0eSB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5 ID0gc2VsZi5jYXN0KCk7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRjdHBvcCh5KS5jYXN0 KCkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0 eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICAvLyB0aGUgY3R4eCBpbnRyaW5zaWNz IG5lZWQgY29tcGlsZS10aW1lIGNvbnN0YW50CistICAgICAgICAgICAgICAgIC8vIGBpc196ZXJv X3VuZGVmYAorLSAgICAgICAgICAgICAgICB1bnNhZmUgeyAkY3Rseih5LCBmYWxzZSkuY2FzdCgp IH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkg PSBzZWxmLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgJGN0dHooeSwgZmFsc2Up LmNhc3QoKSB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAoc2l6 ZWRfaW5uZXI6ICR0eTppZGVudCwgJHNjYWxhcjp0eSwgJHV0eTppZGVudCkgPT4geworLSAgICAg ICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0KKy0gICAgICAgIGltcGxfYml0X21hbmlw ISB7IHNjYWxhcjogJHR5LCAkc2NhbGFyIH0KKy0gICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJzMzkweCIpKV0KKy0gICAgICAgIGltcGwgQml0TWFuaXAgZm9yICR0eSB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7CistICAgICAgICAgICAg ICAgICR1dHk6OmN0cG9wKHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICAk dXR5OjpjdGx6KHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICAkdXR5Ojpj dHR6KHkpLmNhc3QoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAg KHNjYWxhcjogJHR5OmlkZW50LCAkc2NhbGFyOnR5KSA9PiB7CistICAgICAgICBpbXBsIEJpdE1h bmlwIGZvciAkdHkgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0 cG9wKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgbXV0IG9uZXMgPSBzZWxm OworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgIG9uZXMgPSBvbmVzLnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLmNvdW50 X29uZXMoKSBhcyAkc2NhbGFyKTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICBvbmVzCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCBtdXQg bHogPSBzZWxmOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsK Ky0gICAgICAgICAgICAgICAgICAgIGx6ID0gbHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSku bGVhZGluZ196ZXJvcygpIGFzICRzY2FsYXIpOworLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIGx6CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxl dCBtdXQgdHogPSBzZWxmOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJh Y3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyAkc2NhbGFyKTsKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB0egorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky0gICAgKCR1dHk6aWRlbnQsICR1c2NhbGFyOnR5LCAkaXR5OmlkZW50LCAkaXNjYWxhcjp0eSwK Ky0gICAgICRjdHBvcDppZGVudCwgJGN0bHo6aWRlbnQsICRjdHR6OmlkZW50KSA9PiB7CistICAg ICAgICBpbXBsX2JpdF9tYW5pcCEgeyBpbm5lcjogJHV0eSwgJHVzY2FsYXIsICR1dHksICRjdHBv cCwgJGN0bHosICRjdHR6IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IGlubmVyOiAkaXR5 LCAkaXNjYWxhciwgJHV0eSwgJGN0cG9wLCAkY3RseiwgJGN0dHogfQorLSAgICB9OworLSAgICAo c2l6ZWQ6ICR1c2l6ZTppZGVudCwgJHVzY2FsYXI6dHksICRpc2l6ZTppZGVudCwKKy0gICAgICRp c2NhbGFyOnR5LCAkdHk6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNp emVkX2lubmVyOiAkdXNpemUsICR1c2NhbGFyLCAkdHkgfQorLSAgICAgICAgaW1wbF9iaXRfbWFu aXAhIHsgc2l6ZWRfaW5uZXI6ICRpc2l6ZSwgJGlzY2FsYXIsICR0eSB9CistICAgIH07CistfQor LQorLWltcGxfYml0X21hbmlwISB7IHU4eDIgICAsICAgdTgsIGk4eDIsIGk4LCAgIGN0cG9wX3U4 eDIsICAgY3Rsel91OHgyLCAgIGN0dHpfdTh4MiAgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHg0 ICAgLCAgIHU4LCBpOHg0LCBpOCwgICBjdHBvcF91OHg0LCAgIGN0bHpfdTh4NCwgICBjdHR6X3U4 eDQgICB9CistI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldIC8vIHNlZSBiZWxv dworLWltcGxfYml0X21hbmlwISB7IHU4eDggICAsICAgdTgsIGk4eDgsIGk4LCAgIGN0cG9wX3U4 eDgsICAgY3Rsel91OHg4LCAgIGN0dHpfdTh4OCAgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHgx NiAgLCAgdTgsIGk4eDE2LCBpOCwgIGN0cG9wX3U4eDE2LCAgY3Rsel91OHgxNiwgIGN0dHpfdTh4 MTYgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHgzMiAgLCAgdTgsIGk4eDMyLCBpOCwgIGN0cG9w X3U4eDMyLCAgY3Rsel91OHgzMiwgIGN0dHpfdTh4MzIgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1 OHg2NCAgLCAgdTgsIGk4eDY0LCBpOCwgIGN0cG9wX3U4eDY0LCAgY3Rsel91OHg2NCwgIGN0dHpf dTh4NjQgIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4MiAgLCAgdTE2LCBpMTZ4MiwgaTE2LCAg Y3Rwb3BfdTE2eDIsICBjdGx6X3UxNngyLCAgY3R0el91MTZ4MiAgfQorLWltcGxfYml0X21hbmlw ISB7IHUxNng0ICAsICB1MTYsIGkxNng0LCBpMTYsICBjdHBvcF91MTZ4NCwgIGN0bHpfdTE2eDQs ICBjdHR6X3UxNng0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDggICwgIHUxNiwgaTE2eDgs IGkxNiwgIGN0cG9wX3UxNng4LCAgY3Rsel91MTZ4OCwgIGN0dHpfdTE2eDggIH0KKy1pbXBsX2Jp dF9tYW5pcCEgeyB1MTZ4MTYgLCB1MTYsIGkxNngxNiwgaTE2LCBjdHBvcF91MTZ4MTYsIGN0bHpf dTE2eDE2LCBjdHR6X3UxNngxNiB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDMyICwgdTE2LCBp MTZ4MzIsIGkxNiwgY3Rwb3BfdTE2eDMyLCBjdGx6X3UxNngzMiwgY3R0el91MTZ4MzIgfQorLWlt cGxfYml0X21hbmlwISB7IHUzMngyICAsICB1MzIsIGkzMngyLCBpMzIsICBjdHBvcF91MzJ4Miwg IGN0bHpfdTMyeDIsICBjdHR6X3UzMngyICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTMyeDQgICwg IHUzMiwgaTMyeDQsIGkzMiwgIGN0cG9wX3UzMng0LCAgY3Rsel91MzJ4NCwgIGN0dHpfdTMyeDQg IH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4OCAgLCAgdTMyLCBpMzJ4OCwgaTMyLCAgY3Rwb3Bf dTMyeDgsICBjdGx6X3UzMng4LCAgY3R0el91MzJ4OCAgfQorLWltcGxfYml0X21hbmlwISB7IHUz MngxNiAsIHUzMiwgaTMyeDE2LCBpMzIsIGN0cG9wX3UzMngxNiwgY3Rsel91MzJ4MTYsIGN0dHpf dTMyeDE2IH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1NjR4MiAgLCAgdTY0LCBpNjR4MiwgaTY0LCAg Y3Rwb3BfdTY0eDIsICBjdGx6X3U2NHgyLCAgY3R0el91NjR4MiAgfQorLWltcGxfYml0X21hbmlw ISB7IHU2NHg0ICAsICB1NjQsIGk2NHg0LCBpNjQsICBjdHBvcF91NjR4NCwgIGN0bHpfdTY0eDQs ICBjdHR6X3U2NHg0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTY0eDggICwgIHU2NCwgaTY0eDgs IGk2NCwgIGN0cG9wX3U2NHg4LCAgY3Rsel91NjR4OCwgIGN0dHpfdTY0eDggIH0KKy1pbXBsX2Jp dF9tYW5pcCEgeyB1MTI4eDEgLCB1MTI4LCBpMTI4eDEsIGkxMjgsIGN0cG9wX3UxMjh4MSwgY3Rs el91MTI4eDEsIGN0dHpfdTEyOHgxIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDIgLCB1MTI4 LCBpMTI4eDIsIGkxMjgsIGN0cG9wX3UxMjh4MiwgY3Rsel91MTI4eDIsIGN0dHpfdTEyOHgyIH0K Ky1pbXBsX2JpdF9tYW5pcCEgeyB1MTI4eDQgLCB1MTI4LCBpMTI4eDQsIGkxMjgsIGN0cG9wX3Ux Mjh4NCwgY3Rsel91MTI4eDQsIGN0dHpfdTEyOHg0IH0KKy0KKy0jW2NmZyh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IildCistaW1wbCBCaXRNYW5pcCBmb3IgdTh4OCB7CistICAgICNbaW5saW5lXQor LSAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIGxldCB5OiB1OHg4ID0gc2Vs Zi5jYXN0KCk7CistICAgICAgICB1bnNhZmUgeyBjdHBvcF91OHg4KHkpLmNhc3QoKSB9CistICAg IH0KKy0KKy0gICAgI1tpbmxpbmVdCistICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZiB7CistICAg ICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgdW5zYWZlIHsgY3Rsel91 OHg4KHksIGZhbHNlKS5jYXN0KCkgfQorLSAgICB9CistCistICAgICNbaW5saW5lXQorLSAgICBm biBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgLy8gRklYTUU6IExMVk0gY3R0ei52OGk4 IGJyb2tlbiBvbiBhYXJjaDY0IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTkxCistICAgICAgICAvLyBPUFRJTUlaRTogYWRhcHQgdGhlIGFs Z29yaXRobSB1c2VkIGZvciB2OGkxNi9ldGMgdG8gUnVzdCdzIGFhcmNoNjQKKy0gICAgICAgIC8v IGludHJpbnNpY3MKKy0gICAgICAgIGxldCBtdXQgdHogPSBzZWxmOworLSAgICAgICAgZm9yIGkg aW4gMC4uU2VsZjo6bGFuZXMoKSB7CistICAgICAgICAgICAgdHogPSB0ei5yZXBsYWNlKGksIHNl bGYuZXh0cmFjdChpKS50cmFpbGluZ196ZXJvcygpIGFzIHU4KTsKKy0gICAgICAgIH0KKy0gICAg ICAgIHR6CistICAgIH0KKy19CistI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLWlt cGwgQml0TWFuaXAgZm9yIGk4eDggeworLSAgICAjW2lubGluZV0KKy0gICAgZm4gY3Rwb3Aoc2Vs ZikgLT4gU2VsZiB7CistICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOworLSAgICAg ICAgdW5zYWZlIHsgY3Rwb3BfdTh4OCh5KS5jYXN0KCkgfQorLSAgICB9CistCistICAgICNbaW5s aW5lXQorLSAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgbGV0IHk6IHU4eDgg PSBzZWxmLmNhc3QoKTsKKy0gICAgICAgIHVuc2FmZSB7IGN0bHpfdTh4OCh5LCBmYWxzZSkuY2Fz dCgpIH0KKy0gICAgfQorLQorLSAgICAjW2lubGluZV0KKy0gICAgZm4gY3R0eihzZWxmKSAtPiBT ZWxmIHsKKy0gICAgICAgIC8vIEZJWE1FOiBMTFZNIGN0dHoudjhpOCBicm9rZW4gb24gYWFyY2g2 NCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVz LzE5MQorLSAgICAgICAgLy8gT1BUSU1JWkU6IGFkYXB0IHRoZSBhbGdvcml0aG0gdXNlZCBmb3Ig djhpMTYvZXRjIHRvIFJ1c3QncyBhYXJjaDY0CistICAgICAgICAvLyBpbnRyaW5zaWNzCistICAg ICAgICBsZXQgbXV0IHR6ID0gc2VsZjsKKy0gICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVz KCkgeworLSAgICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJh aWxpbmdfemVyb3MoKSBhcyBpOCk7CistICAgICAgICB9CistICAgICAgICB0egorLSAgICB9Cist fQorLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI4 IildIHsKKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwg aXNpemV4MiwgaXNpemUsIHU4eDIgfQorLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6 IHVzaXpleDQsIHVzaXplLCBpc2l6ZXg0LCBpc2l6ZSwgdTh4NCB9CistICAgICAgICBpbXBsX2Jp dF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXplLCB1OHg4IH0K Ky0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsKKy0g ICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4Miwg aXNpemUsIHUxNngyIH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0 LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHUxNng0IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlw ISB7IHNpemVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHUxNng4IH0KKy0gICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAg IGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUs IHUzMngyIH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6 ZSwgaXNpemV4NCwgaXNpemUsIHUzMng0IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNp emVkOiB1c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHUzMng4IH0KKy0gICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgIGltcGxf Yml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXgyLCB1c2l6ZSwgaXNpemV4MiwgaXNpemUsIHU2NHgy IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNp emV4NCwgaXNpemUsIHU2NHg0IH0KKy0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1 c2l6ZXg4LCB1c2l6ZSwgaXNpemV4OCwgaXNpemUsIHU2NHg4IH0KKy0gICAgfSBlbHNlIHsKKy0g ICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIp OworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbGx2bS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbGx2bS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDEyMiArMCwwIEBACistLy8hIExMVk0ncyBwbGF0Zm9ybSBpbnRyaW5zaWNzCistIyFbYWxs b3coZGVhZF9jb2RlKV0KKy0KKy11c2UgY3JhdGU6OnNlYWxlZDo6U2h1ZmZsZTsKKy0jW2FsbG93 KHVudXNlZF9pbXBvcnRzKV0gLy8gRklYTUU6IHNwdXJpb3VzIHdhcm5pbmc/CistdXNlIGNyYXRl OjpzZWFsZWQ6OlNpbWQ7CistCistZXh0ZXJuICJwbGF0Zm9ybS1pbnRyaW5zaWMiIHsKKy0gICAg Zm4gc2ltZF9zaHVmZmxlPFQsIEksIFU+KHg6IFQsIHk6IFQsIGlkeDogSSkgLT4gVTsKKy19Cist CistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCistcHVi IHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMjxjb25zdCBJRFg6IFt1MzI7IDJdLCBULCBVPih4 OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2ltZD46 OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMl0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9z aHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5 X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNDxjb25z dCBJRFg6IFt1MzI7IDRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0gICAgVDog U2ltZCwKKy0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgNF0sIE91dHB1 dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxv dyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBm biBfX3NodWZmbGVfdmVjdG9yODxjb25zdCBJRFg6IFt1MzI7IDhdLCBULCBVPih4OiBULCB5OiBU KSAtPiBVCistd2hlcmUKKy0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6 IFNodWZmbGU8W3UzMjsgOF0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgs IHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCist I1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yMTY8Y29uc3QgSURYOiBb dTMyOyAxNl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAor LSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyAxNl0sIE91dHB1dCA9IFU+ LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistI1thbGxvdyhjbGlw cHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tpbmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3No dWZmbGVfdmVjdG9yMzI8Y29uc3QgSURYOiBbdTMyOyAzMl0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+ IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAorLSAgICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1 ZmZsZTxbdTMyOyAzMl0sIE91dHB1dCA9IFU+LAorLXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHks IElEWCkKKy19CistCistI1thbGxvdyhjbGlwcHk6Om1pc3Npbmdfc2FmZXR5X2RvYyldCistI1tp bmxpbmVdCistcHViIHVuc2FmZSBmbiBfX3NodWZmbGVfdmVjdG9yNjQ8Y29uc3QgSURYOiBbdTMy OyA2NF0sIFQsIFU+KHg6IFQsIHk6IFQpIC0+IFUKKy13aGVyZQorLSAgICBUOiBTaW1kLAorLSAg ICA8VCBhcyBTaW1kPjo6RWxlbWVudDogU2h1ZmZsZTxbdTMyOyA2NF0sIE91dHB1dCA9IFU+LAor LXsKKy0gICAgc2ltZF9zaHVmZmxlKHgsIHksIElEWCkKKy19CistCistZXh0ZXJuICJwbGF0Zm9y bS1pbnRyaW5zaWMiIHsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2VxPFQsIFU+KHg6IFQsIHk6 IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9uZTxULCBVPih4OiBULCB5OiBUKSAt PiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbHQ8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsK Ky0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2xlPFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7CistICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9ndDxULCBVPih4OiBULCB5OiBUKSAtPiBVOworLSAgICBwdWIo Y3JhdGUpIGZuIHNpbWRfZ2U8VCwgVT4oeDogVCwgeTogVCkgLT4gVTsKKy0KKy0gICAgcHViKGNy YXRlKSBmbiBzaW1kX2luc2VydDxULCBVPih4OiBULCBpZHg6IHUzMiwgdmFsOiBVKSAtPiBUOwor LSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZXh0cmFjdDxULCBVPih4OiBULCBpZHg6IHUzMikgLT4g VTsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2Nhc3Q8VCwgVT4oeDogVCkgLT4gVTsKKy0K Ky0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FkZDxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfc3ViPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0 ZSkgZm4gc2ltZF9tdWw8VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBz aW1kX2RpdjxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVt PFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9zaGw8VD4oeDog VCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3NocjxUPih4OiBULCB5OiBU KSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfYW5kPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7 CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9vcjxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBw dWIoY3JhdGUpIGZuIHNpbWRfeG9yPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistCistICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX3Vub3JkZXJlZDxULCBVPih4OiBUKSAtPiBVOworLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX211bF91bm9yZGVyZWQ8VCwgVT4oeDogVCkgLT4g VTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZDxULCBVPih4OiBU LCBhY2M6IFUpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfbXVsX29yZGVy ZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVk dWNlX21pbjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNl X21heDxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX21p bl9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1 Y2VfbWF4X25hbmxlc3M8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1k X3JlZHVjZV9hbmQ8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3Jl ZHVjZV9vcjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNl X3hvcjxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2Fs bDxUPih4OiBUKSAtPiBib29sOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FueTxU Pih4OiBUKSAtPiBib29sOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfc2VsZWN0PE0sIFQ+ KG06IE0sIGE6IFQsIGI6IFQpIC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWlu PFQ+KGE6IFQsIGI6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mbWF4PFQ+KGE6 IFQsIGI6IFQpIC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9mc3FydDxUPihhOiBU KSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZm1hPFQ+KGE6IFQsIGI6IFQsIGM6IFQp IC0+IFQ7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9nYXRoZXI8VCwgUCwgTT4odmFsdWU6 IFQsIHBvaW50ZXJzOiBQLCBtYXNrOiBNKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf c2NhdHRlcjxULCBQLCBNPih2YWx1ZTogVCwgcG9pbnRlcnM6IFAsIG1hc2s6IE0pOworLQorLSAg ICBwdWIoY3JhdGUpIGZuIHNpbWRfYml0bWFzazxULCBVPih2YWx1ZTogVCkgLT4gVTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMyArMCwwIEBACist Ly8hIFZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucworLQorLXB1YihjcmF0ZSkgbW9kIGZsb2F0Owor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDE4ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgbWF0aCBvcGVy YXRpb25zLgorLSMhW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUpXQorLQorLSNbbWFj cm9fdXNlXQorLXB1YihjcmF0ZSkgbW9kIG1hY3JvczsKKy1wdWIoY3JhdGUpIG1vZCBhYnM7Cist cHViKGNyYXRlKSBtb2QgY29zOworLXB1YihjcmF0ZSkgbW9kIGNvc19waTsKKy1wdWIoY3JhdGUp IG1vZCBleHA7CistcHViKGNyYXRlKSBtb2QgbG47CistcHViKGNyYXRlKSBtb2QgbXVsX2FkZDsK Ky1wdWIoY3JhdGUpIG1vZCBtdWxfYWRkZTsKKy1wdWIoY3JhdGUpIG1vZCBwb3dmOworLXB1Yihj cmF0ZSkgbW9kIHNpbjsKKy1wdWIoY3JhdGUpIG1vZCBzaW5fY29zX3BpOworLXB1YihjcmF0ZSkg bW9kIHNpbl9waTsKKy1wdWIoY3JhdGUpIG1vZCBzcXJ0OworLXB1YihjcmF0ZSkgbW9kIHNxcnRl OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9hYnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvYWJzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5n LXBvaW50IGBmYWJzYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0IDEg ZWxlbSB2ZWN0b3JzIGZhYnMKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFp dCBBYnMgeworLSAgICBmbiBhYnMoc2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXBy b3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZh YnMudjJmMzIiXQorLSAgICBmbiBmYWJzX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY0ZjMyIl0KKy0gICAgZm4gZmFic192NGYzMih4OiBm MzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52OGYzMiJdCist ICAgIGZuIGZhYnNfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmZhYnMudjE2ZjMyIl0KKy0gICAgZm4gZmFic192MTZmMzIoeDogZjMyeDE2KSAtPiBm MzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBmYWJzZ2xlIGVsZW0gdmVjdG9ycworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjFmNjQiXQorLSAgICBmbiBmYWJzX3YxZjY0KHg6IGY2 NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52 MmY2NCJdCistICAgIGZuIGZhYnNfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmZhYnMudjRmNjQiXQorLSAgICBmbiBmYWJzX3Y0ZjY0KHg6IGY2NHg0 KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY4ZjY0Il0KKy0gICAg Zm4gZmFic192OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1lID0g Imxsdm0uZmFicy5mMzIiXQorLSAgICBmbiBmYWJzX2YzMih4OiBmMzIpIC0+IGYzMjsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLmY2NCJdCistICAgIGZuIGZhYnNfZjY0KHg6IGY2NCkg LT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQWJzLCBhYnMpOworLQorLWNm Z19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAgICAg ICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9z aW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZmFic19m MzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogZmFic19mMzIpOworLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogZmFic19mMzIpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBmYWJzX2YzMik7CistCistICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4MltmNjQ7IDJdOiBmYWJzX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtmNjQ7IDRdOiBmYWJzX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhd OiBmYWJzX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6 Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9 PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9mYWJzZjhfYXZ4Mik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4Mik7 CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfYXZ4 MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9mYWJzZjhf YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9mYWJzZDJf YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9mYWJz ZDRfYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g ImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRd OiBTbGVlZl9mYWJzZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltoID0+IGYzMng4XTogU2xlZWZfZmFic2Y4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9mYWJzZDRfYXZ4KTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2ZhYnNmOF9hdngpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfZmFic2Q0X2F2eCk7CistICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfc3Nl NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xl ZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+ IGY2NHgyXTogU2xlZWZfZmFic2QyX3NzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogU2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX3NzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZmFic2QyX3NzZTQpOwor LSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W2YzMjsgMl06IGZhYnNfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 OiBmYWJzX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBmYWJz X3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGZhYnNfdjRm MzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFic192OGYzMik7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBmYWJzX3YyZjY0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRmNjQpOworLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2Yz MjsgMl06IGZhYnNfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBmYWJzX3Y0ZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBmYWJzX3Y4ZjMyKTsKKy0gICAgICAgIGlt cGxfdW5hcnkhKGYzMngxNjogZmFic192MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IGZhYnNfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGZhYnNfdjRm NjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGZhYnNfdjhmNjQpOworLSAgICB9Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9jb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvY29zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5n LXBvaW50IGBjb3NgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBl bGVtIHZlY3RvciBjb3MKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBD b3MgeworLSAgICBmbiBjb3Moc2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXByb3Bl cl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52 MmYzMiJdCistICAgIGZuIGNvc192MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY29zLnY0ZjMyIl0KKy0gICAgZm4gY29zX3Y0ZjMyKHg6IGYzMng0KSAt PiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjhmMzIiXQorLSAgICBmbiBj b3NfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNv cy52MTZmMzIiXQorLSAgICBmbiBjb3NfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAg ICAvKiBGSVhNRSA2NC1iaXQgY29zZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmNvcy52MWY2NCJdCistICAgIGZuIGNvc192MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7 CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52MmY2NCJdCistICAgIGZu IGNvc192MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0u Y29zLnY0ZjY0Il0KKy0gICAgZm4gY29zX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjhmNjQiXQorLSAgICBmbiBjb3NfdjhmNjQoeDogZjY0 eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy5mMzIiXQorLSAg ICBmbiBjb3NfZjMyKHg6IGYzMikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNv cy5mNjQiXQorLSAgICBmbiBjb3NfZjY0KHg6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5h cnlfaW1wbF90YWJsZSEoQ29zLCBjb3MpOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NFtmMzI7IDRdOiBjb3NfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2Yz MjsgOF06IGNvc19mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBj b3NfZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IGNvc19mNjQp OworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogY29zX2Y2NCk7CistICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBjb3NfZjY0KTsKKy0gICAgfSBlbHNlIGlmICNb Y2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0g eworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAg ICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwYXZ4MjEy OCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xl ZWZfY29zZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2gg PT4gZjY0eDRdOiBTbGVlZl9jb3NkNF91MTBhdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfY29zZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NkMl91MTBhdngyMTI4KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2eDIpOworLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEw c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTog U2xlZWZfY29zZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhb aCA9PiBmNjR4NF06IFNsZWVmX2Nvc2Q0X3UxMGF2eCk7CistCistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc2Q0X3UxMGF2eCk7CistICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9jb3NmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9 PiBmNjR4Ml06IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfY29zZDJf dTEwc3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNjogY29zX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4OiBjb3NfdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDog Y29zX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGNvc192OGYz Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3NfdjJmNjQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogY29zX3Y0ZjY0KTsKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MltmMzI7IDJdOiBjb3NfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBjb3NfdjRm MzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGNvc192OGYzMik7CistICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTY6IGNvc192MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IGNvc192MmY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogY29zX3Y0ZjY0 KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBjb3NfdjhmNjQpOworLSAgICB9CistfQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9jb3NfcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvY29zX3BpLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3Nf cGkucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDg3ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxv YXRpbmctcG9pbnQgYGNvc2AKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vIEZJWE1FIDY0LWJp dCAxIGVsZW0gdmVjdG9ycyBjb3NfcGkKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRl KSB0cmFpdCBDb3NQaSB7CistICAgIGZuIGNvc19waShzZWxmKSAtPiBTZWxmOworLX0KKy0KKy1n ZW5fdW5hcnlfaW1wbF90YWJsZSEoQ29zUGksIGNvc19waSk7CistCistbWFjcm9fcnVsZXMhIGlt cGxfZGVmIHsKKy0gICAgKCR2aWQ6aWRlbnQsICRQSTpwYXRoKSA9PiB7CistICAgICAgICBpbXBs IENvc1BpIGZvciAkdmlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBjb3NfcGkoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIChzZWxmICogU2VsZjo6 c3BsYXQoJFBJKSkuY29zKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKKy0gICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMyOjpjb25zdHM6OlBJKTsKKy0gICAgfTsK Ky19CistbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgeworLSAgICAoJHZpZDppZGVudCkgPT4gewor LSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmNjQ6OmNvbnN0czo6UEkpOworLSAgICB9 OworLX0KKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4 Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lz OjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2Zl YXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3Qg PT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4Mik7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3Nw aWQ0X3UwNWF2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xl ZWZfY29zcGlmNF91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHgyOiBTbGVlZl9jb3NwaWQyX3UwNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogU2xlZWZfY29zcGlkNF91MDVhdngyKTsKKy0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfY29z cGlmOF91MDVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2 NHg0XTogU2xlZWZfY29zcGlkNF91MDVhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0X3UwNWF2eCk7CistICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3Uw NXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06 IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOworLQorLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NwaWQy X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgy XTogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfZGVm MzIhKGYzMng0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDgpOworLSAgICAg ICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X2RlZjY0IShmNjR4Mik7CistICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOworLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKKy0gICAg ICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng4KTsKKy0g ICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCistICAgICAgICBpbXBsX2RlZjY0IShmNjR4 Mik7CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7CistICAgICAgICBpbXBsX2RlZjY0IShm NjR4OCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2V4cC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEyICswLDAgQEAKKy0vLyEg VmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGV4cGAKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8v IEZJWE1FIDY0LWJpdCBleHBnbGUgZWxlbSB2ZWN0b3JzIG1pc2V4cGcKKy0KKy11c2UgY3JhdGU6 Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBFeHAgeworLSAgICBmbiBleHAoc2VsZikgLT4gU2Vs ZjsKKy19CistCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MmYzMiJdCistICAgIGZuIGV4cF92MmYzMih4OiBm MzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjMyIl0KKy0g ICAgZm4gZXhwX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5leHAudjhmMzIiXQorLSAgICBmbiBleHBfdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4Owor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MTZmMzIiXQorLSAgICBmbiBleHBfdjE2ZjMy KHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgZXhwZ2xlIGVsZW0g dmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52MWY2NCJdCistICAgIGZuIGV4 cF92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmV4cC52MmY2NCJdCistICAgIGZuIGV4cF92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7 CistICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY0ZjY0Il0KKy0gICAgZm4gZXhwX3Y0ZjY0 KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjhmNjQi XQorLSAgICBmbiBleHBfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmV4cC5mMzIiXQorLSAgICBmbiBleHBfZjMyKHg6IGYzMikgLT4gZjMyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC5mNjQiXQorLSAgICBmbiBleHBfZjY0KHg6IGY2 NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoRXhwLCBleHApOworLQor LWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogZXhw X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBleHBfZjMyKTsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGV4cF9mMzIpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBleHBfZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5h cnkhKGY2NHgyW2Y2NDsgMl06IGV4cF9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRb ZjY0OyA0XTogZXhwX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBl eHBfZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi LCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsK Ky0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYz Mng0XTogU2xlZWZfZXhwZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4Mik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9leHBkNF91MTBhdngy KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2V4cGY0X3Ux MGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZXhw ZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9l eHBkMl91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNs ZWVmX2V4cGQ0X3UxMGF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZXhwZjhfdTEwYXZ4KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2V4cGQ0X3UxMGF2 eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9leHBmNF91 MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2V4cGY4 X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBk Ml91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2V4 cGQ0X3UxMGF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTQp OworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhwZjRfdTEw c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9leHBmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX2V4cGQyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfZXhwZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZXhwZjRf dTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJd OiBTbGVlZl9leHBkMl91MTBzc2UyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2V4cGY0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlMik7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2UyKTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTIp OworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IGV4cF9mMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTY6IGV4cF92MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhw X3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGV4cF92NGYz Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZXhwX3YyZjY0KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAy XTogZXhwX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZXhwX3Y0ZjMyKTsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBleHBfdjhmMzIpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2OiBleHBfdjE2ZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBl eHBfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGV4cF92NGY2NCk7CistICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZXhwX3Y4ZjY0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv bG4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvbG4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwxMTIgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgbG5gCist IyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgbG5nbGUgZWxlbSB2ZWN0b3Jz IG1pc2xuZworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IExuIHsKKy0g ICAgZm4gbG4oc2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMp XQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MmYzMiJdCist ICAgIGZuIGxuX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5sb2cudjRmMzIiXQorLSAgICBmbiBsbl92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY4ZjMyIl0KKy0gICAgZm4gbG5fdjhmMzIoeDog ZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MTZmMzIiXQor LSAgICBmbiBsbl92MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0 LWJpdCBsbmdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjFm NjQiXQorLSAgICBmbiBsbl92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52MmY2NCJdCistICAgIGZuIGxuX3YyZjY0KHg6IGY2 NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjRmNjQiXQorLSAg ICBmbiBsbl92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxs dm0ubG9nLnY4ZjY0Il0KKy0gICAgZm4gbG5fdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy5mMzIiXQorLSAgICBmbiBsbl9mMzIoeDogZjMy KSAtPiBmMzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLmY2NCJdCistICAgIGZuIGxu X2Y2NCh4OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKExuLCBs bik7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBsbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogbG5fZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGxuX2YzMik7CistICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGxuX2YzMik7CistCistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBsbl9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDRbZjY0OyA0XTogbG5fZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06 IGxuX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0 IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7 CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBm MzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2eDIpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfbG9nZDRfdTEwYXZ4 Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91 MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2xv Z2Y4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf bG9nZDJfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBT bGVlZl9sb2dkNF91MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb dCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2xvZ2Y4X3UxMGF2eCk7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9sb2dkNF91MTBh dngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRf dTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9sb2dm OF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9n ZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9s b2dkNF91MTBhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2U0 KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3Ux MHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTog U2xlZWZfbG9nZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgIH0gZWxz ZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0 X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgy XTogU2xlZWZfbG9nZDJfdTEwc3NlMik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTIpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlMik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2Uy KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MltmMzI7IDJdOiBsbl9mMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTY6IGxuX3YxNmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBsbl92 OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBsbl92OGYzMik7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBsbl92MmY2NCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg0OiBsbl92NGY2NCk7CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5f ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBsbl92NGYzMik7CistICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4ODogbG5fdjhmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 OiBsbl92MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGxuX3YyZjY0KTsK Ky0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBsbl92NGY2NCk7CistICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4ODogbG5fdjhmNjQpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9z LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tYWNyb3MucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDQ3MCArMCwwIEBACistLy8hIFV0aWxpdHkgbWFjcm9zCistIyFbYWxsb3codW51c2Vk KV0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF91bmFyeV8geworLSAgICAvLyBpbXBsZW1lbnRhdGlv biBtYXBwaW5nIDE6MQorLSAgICAodmVjIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAg aW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNt dXRlOworLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNlbGYp KSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEgZm9yIHdoZW4gYCRmdW5gIGlz IGEgZ2VuZXJpYyBmdW5jdGlvbgorLSAgICAvLyBsaWtlIHNvbWUgb2YgdGhlIGZwIG1hdGggcnVz dGMgaW50cmluc2ljcyAoZS5nLiBgZm4gZnVuPFQ+KHg6IFQpIC0+IFRgKS4KKy0gICAgKGdlbiB8 ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0g ICAgICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lk IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9k KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgkZnVuKHNlbGYuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQs ICR0cmFpdF9tZXRob2Q6aWRlbnQsCistICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsg JHNjb3VudDpleHByXSwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQg Zm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0 cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRz Y291bnRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBzY2FsYXJzID0gVSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAmbXV0IHNjYWxhcnMgeworLSAgICAgICAgICAgICAgICAgICAgICAgICpp ID0gJGZ1bigqaSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICBVIHsgc2NhbGFycyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biB0 d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgorLSAgICAoaGFsdmVzIHwgJHRyYWl0 X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJHZl Y2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZv ciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJh aXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAg ICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19p ZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0sCistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGhhbHZl cyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistCistICAgICAgICAgICAgICAgICAgICAqaGFs dmVzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2 ZXMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpoYWx2ZXMuZ2V0 X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRf dW5jaGVja2VkKDEpKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgVSB7IGhhbHZlcyB9LnZl YworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBmb3VyIHRpbWVzIG9uIGVhY2gg b2YgdGhlIHZlY3RvciBxdWFydGVyczoKKy0gICAgKHF1YXJ0ZXIgfCAkdHJhaXRfaWQ6aWRlbnQs ICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVjcV9pZDppZGVu dCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQg eworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qo c2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAorLSAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBxdWFydGVycyA9IFUg eyB2ZWM6IHNlbGYgfS5xdWFydGVyczsKKy0KKy0gICAgICAgICAgICAgICAgICAgICpxdWFydGVy cy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRl cnMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5n ZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMu Z2V0X3VuY2hlY2tlZCgxKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRf dW5jaGVja2VkX211dCgyKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZCgyKSkpKTsKKy0gICAgICAgICAgICAgICAgICAgICpxdWFydGVycy5nZXRfdW5j aGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3Vu Y2hlY2tlZCgzKSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBxdWFydGVycyB9LnZl YworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3 aWNlIGFzIGxhcmdlOgorLSAgICAodHdpY2UgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRo b2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVu dCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6Om1lbTo6e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07CistCistICAgICAgICAgICAg ICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lk OyAyXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCistICAgICAg ICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSBVIHsg dmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOworLSAgICAgICAgICAgICAgICAg ICAgbGV0IHR3aWNlID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHR3aWNlKSkpOworLQorLSAg ICAgICAgICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgwKSkKKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CistCistbWFjcm9fcnVsZXMhIGdlbl91bmFyeV9pbXBsX3RhYmxlIHsKKy0gICAgKCR0cmFpdF9p ZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4geworLSAgICAgICAgbWFjcm9fcnVsZXMh IGltcGxfdW5hcnkgeworLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfISh2ZWMgfCAkdHJhaXRfaWQsICR0cmFpdF9t ZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6 aWRlbnRbZ106ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8h KGdlbiB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAg ICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRm dW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHNjYWxhciB8ICR0 cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgWyRzaWQ7ICRzY10sICRmdW4pOworLSAgICAg ICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZp ZDppZGVudFtoID0+ICR2aWRfaDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeV8hKGhhbHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZp ZCwgJHZpZF9oLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlk ZW50W3EgPT4gJHZpZF9xOmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5XyEocXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwg JHZpZF9xLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50 W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5XyEodHdpY2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRf dCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist bWFjcm9fcnVsZXMhIGltcGxfdGVydGlhcnlfIHsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFw cGluZyAxOjEKKy0gICAgKHZlYyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVu dCwgJHZlY19pZDppZGVudCwKKy0gICAgICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwg JHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRy YW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRlKHkpLCB0cmFuc211dGUoeikpKQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAoc2NhbGFy IHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LAorLSAgICAgJHZlY19pZDpp ZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsKKy0gICAg ICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxhcnM6IFskc2lkOyAkc2NvdW50XSwKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IFUgeyB2ZWM6IHNl bGYgfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHkgPSBVIHsgdmVjOiB5IH0u c2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB6ID0gVSB7IHZlYzogeiB9LnNjYWxh cnM7CistICAgICAgICAgICAgICAgICAgICBmb3IgKHgsICh5LCB6KSkgaW4gKCZtdXQgc2NhbGFy cykuemlwKCZ5KS56aXAoJnopIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAqaSA9ICRmdW4o KmksICp5LCAqeik7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICBVIHsgdmVjOiB4IH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIHR3 aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBoYWx2ZXM6CistICAgIChoYWx2ZXMgfCAkdHJhaXRf aWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVj aF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9y ICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFp dF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNt dXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2 ZWNoX2lkOyAyXSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgeF9oYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLSAgICAgICAg ICAgICAgICAgICAgbGV0IHlfaGFsdmVzID0gVSB7IHZlYzogeSB9LmhhbHZlczsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB6X2hhbHZlcyA9IFUgeyB2ZWM6IHogfS5oYWx2ZXM7CistCistICAg ICAgICAgICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211 dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdl dF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9o YWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNt dXRlKCp6X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAgICAgICAgICAgICkp OworLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0g dHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hh bHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211 dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAgICAgICAg ICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IHhfaGFsdmVzIH0u dmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIGZvdXIgdGltZXMgb24gZWFj aCBvZiB0aGUgdmVjdG9yIHF1YXJ0ZXJzOgorLSAgICAocXVhcnRlciB8ICR0cmFpdF9pZDppZGVu dCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2ZWNxX2lkOmlk ZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19p ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhv ZChzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5z YWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Cist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IFskdmVjcV9p ZDsgNF0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHhfcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7CistICAgICAgICAg ICAgICAgICAgICBsZXQgeV9xdWFydGVycyA9IFUgeyB2ZWM6IHkgfS5xdWFydGVyczsKKy0gICAg ICAgICAgICAgICAgICAgIGxldCB6X3F1YXJ0ZXJzID0gVSB7IHZlYzogeiB9LnF1YXJ0ZXJzOwor LQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkg PSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJh bnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAg ICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVj a2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAg ICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bigKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZCgyKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdl dF91bmNoZWNrZWQoMikpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqel9x dWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQor LSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0 cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVh cnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNt dXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgIHRyYW5zbXV0ZSgqel9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKKy0gICAgICAgICAg ICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgVSB7IHF1YXJ0ZXJzOiB4X3F1 YXJ0ZXJzIH0udmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIG9uY2Ugb24g YSB2ZWN0b3IgdHdpY2UgYXMgbGFyZ2U6CistICAgICh0d2ljZSB8ICR0cmFpdF9pZDppZGVudCwg JHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICR2ZWN0X2lkOmlkZW50 LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChz ZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmlu aXRpYWxpemVkfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHZlYzogWyR2ZWNfaWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAg ICAgIHR3aWNlOiAkdmVjdF9pZCwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgIGxldCB4X3R3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQo KV0gfS50d2ljZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5X3R3aWNlID0gVSB7IHZlYzog W3ksIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB6 X3R3aWNlID0gVSB7IHZlYzogW3osIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB0d2ljZTogJHZlY3RfaWQgPQorLSAgICAgICAgICAgICAgICAgICAg ICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSh4X3R3aWNlKSwgdHJhbnNtdXRlKHlfdHdpY2Up LCB0cmFuc211dGUoel90d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3 aWNlIH0udmVjLmdldF91bmNoZWNrZWQoMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBnZW5fdGVy dGlhcnlfaW1wbF90YWJsZSB7CistICAgICgkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6 aWRlbnQpID0+IHsKKy0gICAgICAgIG1hY3JvX3J1bGVzISBpbXBsX3RlcnRpYXJ5IHsKKy0gICAg ICAgICAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5XyEodmVjIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVu KTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50WyRzaWQ6aWRlbnQ7 ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRp YXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCBbJHNpZDsgJHNj XSwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtzXTog JGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEoc2NhbGFy IHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKKy0gICAgICAgICAgICB9 OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTogJGZ1bjppZGVu dCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEoaGFsdmVzIHwgJHRyYWl0 X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOworLSAgICAgICAgICAgIH07 CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50 KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfIShxdWFydGVyIHwgJHRyYWl0 X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4pOworLSAgICAgICAgICAgIH07 CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAkZnVuOmlkZW50 KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfISh0d2ljZSB8ICR0cmFpdF9p ZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKKy0gICAgICAgICAgICB9Owor LSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9iaW5hcnlfIHsK Ky0gICAgLy8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKKy0gICAgKHZlYyB8ICR0cmFpdF9p ZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICRmdW46 aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6 IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxmKSwgdHJhbnNtdXRlKHkpKSkKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHNj YWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwKKy0gICAgICR2ZWNf aWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlkZW50KSA9PiB7Cist ICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuaW9u IFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICBzY2FsYXJzOiBbJHNpZDsgJHNjb3VudF0sCistICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBVIHsgdmVjOiBzZWxmIH0u c2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5ID0gVSB7IHZlYzogeSB9LnNjYWxh cnM7CistICAgICAgICAgICAgICAgICAgICBmb3IgKHgsIHkpIGluIHguaXRlcl9tdXQoKS56aXAo JnkpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAqeCA9ICRmdW4oKngsICp5KTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIFUgeyBzY2FsYXJzOiB4IH0u dmVjCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2Yg dGhlIHZlY3RvciBoYWx2ZXM6CistICAgIChoYWx2ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFp dF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkdmVjaF9pZDppZGVudCwgJGZ1 bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAg ICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2ZWNoX2lkOyAyXSwKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9oYWx2ZXMgPSBV IHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfaGFsdmVz ID0gVSB7IHZlYzogeSB9LmhhbHZlczsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZl cy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwK Ky0gICAgICAgICAgICAgICAgICAgICkpOworLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVz LmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAor LSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICBVIHsgaGFs dmVzOiB4X2hhbHZlcyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBm b3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKKy0gICAgKHF1YXJ0ZXIg fCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCist ICAgICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJh aXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNt dXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiBb JHZlY3FfaWQ7IDRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOworLSAg ICAgICAgICAgICAgICAgICAgbGV0IHlfcXVhcnRlcnMgPSBVIHsgdmVjOiB5IH0ucXVhcnRlcnM7 CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgw KSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgq eF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAg ICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNr ZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJh bnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAg ICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCistICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAor LSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFy dGVycy5nZXRfdW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZCgzKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg IFUgeyBxdWFydGVyczogeF9xdWFydGVycyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBj YWxsaW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgorLSAgICAodHdpY2Ug fCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCist ICAgICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJh aXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6e3RyYW5z bXV0ZSwgdW5pbml0aWFsaXplZH07CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAyXSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCistICAgICAgICAgICAgICAgICAgICB9Cist CistICAgICAgICAgICAgICAgICAgICBsZXQgeF90d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmlu aXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAgICAgICAgICAgICBsZXQgeV90d2ljZSA9 IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAgICAgICAg ICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lkID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHhfdHdp Y2UpLCB0cmFuc211dGUoeV90d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICooVSB7 IHR3aWNlIH0udmVjLmdldF91bmNoZWNrZWQoMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBnZW5f YmluYXJ5X2ltcGxfdGFibGUgeworLSAgICAoJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9k OmlkZW50KSA9PiB7CistICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF9iaW5hcnkgeworLSAgICAg ICAgICAgICgkdmlkOmlkZW50OiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5XyEodmVjIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsK Ky0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50WyRzaWQ6aWRlbnQ7ICRz YzpleHByXTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8h KHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgWyRzaWQ7ICRzY10sICRm dW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbc106ICRmdW46 aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfIShzY2FsYXIgfCAkdHJh aXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAg ICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEoaGFsdmVzIHwgJHRyYWl0X2lkLCAkdHJh aXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAg ICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Cist ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEocXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0 X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAg ICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4geworLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0 aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICB9Cist ICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L211bF9hZGQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwOSArMCwwIEBACist Ly8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYAorLSMhW2FsbG93KHVudXNlZCld CistdXNlIGNyYXRlOjoqOworLQorLS8vIEZJWE1FOiA2NC1iaXQgMSBlbGVtZW50IG11bF9hZGQK Ky0KKy1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZCB7CistICAgIGZuIG11bF9hZGQoc2VsZiwgeTog U2VsZiwgejogU2VsZikgLT4gU2VsZjsKKy19CistCistI1tjZmcobm90KHRhcmdldF9hcmNoID0g InMzOTB4IikpXQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjJmMzIiXQorLSAgICBmbiBmbWFfdjJmMzIoeDog ZjMyeDIsIHk6IGYzMngyLCB6OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uZm1hLnY0ZjMyIl0KKy0gICAgZm4gZm1hX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCwg ejogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52OGYzMiJd CistICAgIGZuIGZtYV92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYzMng4KSAtPiBmMzJ4 ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjE2ZjMyIl0KKy0gICAgZm4gZm1hX3Yx NmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNiwgejogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8q IEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlua19uYW1lID0gImxs dm0uZm1hLnYxZjY0Il0KKy0gICAgZm4gZm1hX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSwgejog ZjY0eDEpIC0+IGY2NHgxOworLSAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52 MmY2NCJdCistICAgIGZuIGZtYV92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIsIHo6IGY2NHgyKSAt PiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbWEudjRmNjQiXQorLSAgICBmbiBm bWFfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0LCB6OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNb bGlua19uYW1lID0gImxsdm0uZm1hLnY4ZjY0Il0KKy0gICAgZm4gZm1hX3Y4ZjY0KHg6IGY2NHg4 LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4OworLX0KKy0KKy1nZW5fdGVydGlhcnlfaW1w bF90YWJsZSEoTXVsQWRkLCBtdWxfYWRkKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmco dGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAg IG1hY3JvX3J1bGVzISBpbXBsX2Jyb2tlbiB7CistICAgICAgICAgICAgKCRpZDppZGVudCkgPT4g eworLSAgICAgICAgICAgICAgICBpbXBsIE11bEFkZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbXVsX2FkZChzZWxmLCB5 OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBzZWxm ICogeSArIHoKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH07CistICAgICAgICB9CistCistICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDIp OworLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMng0KTsKKy0gICAgICAgIGltcGxfYnJva2VuIShm MzJ4OCk7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjMyeDE2KTsKKy0KKy0gICAgICAgIGltcGxf YnJva2VuIShmNjR4Mik7CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDQpOworLSAgICAgICAg aW1wbF9icm9rZW4hKGY2NHg4KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNs ZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfYXZ4MjEyOCk7CistICAgICAgICAgICAg ICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZm1hZjhfYXZ4Mik7 CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVl Zl9mbWFkNF9hdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDQ6 IFNsZWVmX2ZtYWY0X2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm MzJ4ODogU2xlZWZfZm1hZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkh KGY2NHgyOiBTbGVlZl9mbWFkMl9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0 aWFyeSEoZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3Rl cnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZm1hZjhfYXZ4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNs ZWVmX2ZtYWQ0X2F2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0 OiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMy eDg6IFNsZWVmX2ZtYWY4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2 NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEo ZjY0eDQ6IFNsZWVmX2ZtYWQ0X2F2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlh cnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVm X2ZtYWQyX3NzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDog U2xlZWZfZm1hZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4 W2ggPT4gZjMyeDRdOiBTbGVlZl9mbWFmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjY0eDI6IFNsZWVmX2ZtYWQyX3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfZm1hZDJfc3NlNCk7CistICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDI6IGZt YV92MmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNjogZm1hX3Yx NmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4OiBmbWFfdjhmNjQp OworLQorLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4NDogZm1hX3Y0ZjMyKTsK Ky0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7CistICAg ICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBmbWFfdjJmNjQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4 MjogZm1hX3YyZjMyKTsKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng0OiBmbWFfdjRmMzIp OworLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDg6IGZtYV92OGYzMik7CistICAgICAgICBp bXBsX3RlcnRpYXJ5IShmMzJ4MTY6IGZtYV92MTZmMzIpOworLSAgICAgICAgLy8gaW1wbF90ZXJ0 aWFyeSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFnbGUgZWxlbSB2ZWN0 b3JzCistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3YyZjY0KTsKKy0gICAgICAg IGltcGxfdGVydGlhcnkhKGY2NHg0OiBmbWFfdjRmNjQpOworLSAgICAgICAgaW1wbF90ZXJ0aWFy eSEoZjY0eDg6IGZtYV92OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9h ZGRlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkZS5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsNjAgKzAsMCBAQAorLS8vISBBcHByb3hpbWF0aW9uIGZvciBmbG9hdGluZy1w b2ludCBgbXVsX2FkZGAKKy11c2UgY3JhdGU6Oio7CistCistLy8gRklYTUU6IDY0LWJpdCAxIGVs ZW1lbnQgbXVsX2FkZGUKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IE11bEFkZEUgeworLSAgICBmbiBt dWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6OiBTZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQor LWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjJmMzIiXQor LSAgICBmbiBmbXVsYWRkX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MiwgejogZjMyeDIpIC0+IGYz MngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmMzIiXQorLSAgICBmbiBm bXVsYWRkX3Y0ZjMyKHg6IGYzMng0LCB5OiBmMzJ4NCwgejogZjMyeDQpIC0+IGYzMng0OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmMzIiXQorLSAgICBmbiBmbXVsYWRkX3Y4 ZjMyKHg6IGYzMng4LCB5OiBmMzJ4OCwgejogZjMyeDgpIC0+IGYzMng4OworLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmZtdWxhZGQudjE2ZjMyIl0KKy0gICAgZm4gZm11bGFkZF92MTZmMzIoeDog ZjMyeDE2LCB5OiBmMzJ4MTYsIHo6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2 NC1iaXQgc2luZ2xlIGVsZW0gdmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxh ZGQudjFmNjQiXQorLSAgICBmbiBmbXVsYWRkX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSwgejog ZjY0eDEpIC0+IGY2NHgxOworLSAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxh ZGQudjJmNjQiXQorLSAgICBmbiBmbXVsYWRkX3YyZjY0KHg6IGY2NHgyLCB5OiBmNjR4Miwgejog ZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjRmNjQi XQorLSAgICBmbiBmbXVsYWRkX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwgejogZjY0eDQpIC0+ IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtdWxhZGQudjhmNjQiXQorLSAgICBm biBmbXVsYWRkX3Y4ZjY0KHg6IGY2NHg4LCB5OiBmNjR4OCwgejogZjY0eDgpIC0+IGY2NHg4Owor LX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tdWxfYWRkZSB7CistICAgICgkaWQ6aWRlbnQgOiAk Zm46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgTXVsQWRkRSBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWxfYWRkZShzZWxmLCB5OiBTZWxmLCB6 OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNo ID0gInMzOTB4IikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsg dHJhbnNtdXRlKCRmbih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJhbnNtdXRlKHop KSkgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gInMzOTB4IildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0CistICAgICAgICAgICAgICAgICAgICBzZWxmICogeSArIHoKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist aW1wbF9tdWxfYWRkZSEoZjMyeDI6IGZtdWxhZGRfdjJmMzIpOworLWltcGxfbXVsX2FkZGUhKGYz Mng0OiBmbXVsYWRkX3Y0ZjMyKTsKKy1pbXBsX211bF9hZGRlIShmMzJ4ODogZm11bGFkZF92OGYz Mik7CistaW1wbF9tdWxfYWRkZSEoZjMyeDE2OiBmbXVsYWRkX3YxNmYzMik7CistLy8gaW1wbF9t dWxfYWRkZSEoZjY0eDE6IGZtYV92MWY2NCk7IC8vIEZJWE1FIDY0LWJpdCBmbWFnbGUgZWxlbSB2 ZWN0b3JzCistaW1wbF9tdWxfYWRkZSEoZjY0eDI6IGZtdWxhZGRfdjJmNjQpOworLWltcGxfbXVs X2FkZGUhKGY2NHg0OiBmbXVsYWRkX3Y0ZjY0KTsKKy1pbXBsX211bF9hZGRlIShmNjR4ODogZm11 bGFkZF92OGY2NCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvcG93Zi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEyICswLDAgQEAKKy0vLyEgVmVy dGljYWwgZmxvYXRpbmctcG9pbnQgYHBvd2ZgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBG SVhNRSA2NC1iaXQgcG93ZmdsZSBlbGVtIHZlY3RvcnMgbWlzcG93ZmcKKy0KKy11c2UgY3JhdGU6 Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBQb3dmIHsKKy0gICAgZm4gcG93ZihzZWxmLCB4OiBT ZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJu ICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnYyZjMyIl0KKy0gICAgZm4gcG93 Zl92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIpIC0+IGYzMngyOworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLnBvdy52NGYzMiJdCistICAgIGZuIHBvd2ZfdjRmMzIoeDogZjMyeDQsIHk6IGYzMng0 KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjhmMzIiXQorLSAgICBm biBwb3dmX3Y4ZjMyKHg6IGYzMng4LCB5OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19u YW1lID0gImxsdm0ucG93LnYxNmYzMiJdCistICAgIGZuIHBvd2ZfdjE2ZjMyKHg6IGYzMngxNiwg eTogZjMyeDE2KSAtPiBmMzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBwb3dmZ2xlIGVsZW0g dmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MWY2NCJdCistICAgIGZuIHBv d2ZfdjFmNjQoeDogZjY0eDEsIHk6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNb bGlua19uYW1lID0gImxsdm0ucG93LnYyZjY0Il0KKy0gICAgZm4gcG93Zl92MmY2NCh4OiBmNjR4 MiwgeTogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52NGY2 NCJdCistICAgIGZuIHBvd2ZfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0KSAtPiBmNjR4NDsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjhmNjQiXQorLSAgICBmbiBwb3dmX3Y4ZjY0KHg6 IGY2NHg4LCB5OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0u cG93LmYzMiJdCistICAgIGZuIHBvd2ZfZjMyKHg6IGYzMiwgeTogZjMyKSAtPiBmMzI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0ucG93LmY2NCJdCistICAgIGZuIHBvd2ZfZjY0KHg6IGY2NCwg eTogZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl9iaW5hcnlfaW1wbF90YWJsZSEoUG93ZiwgcG93 Zik7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKKy0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbZjMy OyAyXTogcG93Zl9mMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0W2YzMjsgNF06IHBv d2ZfZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFtmMzI7IDhdOiBwb3dmX2YzMik7 CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBwb3dmX2YzMik7CistCist ICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDJbZjY0OyAyXTogcG93Zl9mNjQpOworLSAgICAgICAg aW1wbF9iaW5hcnkhKGY2NHg0W2Y2NDsgNF06IHBvd2ZfZjY0KTsKKy0gICAgICAgIGltcGxfYmlu YXJ5IShmNjR4OFtmNjQ7IDhdOiBwb3dmX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwo dGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAg ICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBp ZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1w bF9iaW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBhdngyMTI4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfcG93 ZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtoID0+IGY2 NHg0XTogU2xlZWZfcG93ZDRfdTEwYXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5IShmMzJ4ODogU2xlZWZfcG93ZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAg IGltcGxfYmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwYXZ4MjEyOCk7CistICAgICAgICAg ICAgICAgIGltcGxfYmluYXJ5IShmNjR4NDogU2xlZWZfcG93ZDRfdTEwYXZ4Mik7CistICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAg ICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEw c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06 IFNsZWVmX3Bvd2Y4X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4 OFtoID0+IGY2NHg0XTogU2xlZWZfcG93ZDRfdTEwYXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGYzMng4OiBTbGVlZl9wb3dmOF91MTBhdngpOworLSAgICAgICAgICAg ICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IFNsZWVmX3Bvd2Q0X3UxMGF2eCk7CistICAgICAg ICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAg ICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRf dTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4 NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOworLQorLSAgICAgICAgICAg ICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3Ux MHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06 IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF9iaW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7Cist ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfcG93 ZDJfdTEwc3NlMik7CistCistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xl ZWZfcG93ZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFto ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwc3NlMik7CistICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3NlMik7CistICAg ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW2Yz MjsgMl06IHBvd2ZfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBw b3dmX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBwb3dmX3Y4 ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNjogcG93Zl92MTZmMzIp OworLQorLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IHBvd2ZfdjJmNjQpOwor LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IHBvd2ZfdjRmNjQpOworLSAgICAg ICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDg6IHBvd2ZfdjhmNjQpOworLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4 MltmMzI7IDJdOiBwb3dmX2YzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IHBvd2Zf djRmMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBwb3dmX3Y4ZjMyKTsKKy0gICAg ICAgIGltcGxfYmluYXJ5IShmMzJ4MTY6IHBvd2ZfdjE2ZjMyKTsKKy0KKy0gICAgICAgIGltcGxf YmluYXJ5IShmNjR4MjogcG93Zl92MmY2NCk7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6 IHBvd2ZfdjRmNjQpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4OiBwb3dmX3Y4ZjY0KTsK Ky0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvc2luLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDMgKzAsMCBAQAorLS8vISBWZXJ0aWNh bCBmbG9hdGluZy1wb2ludCBgc2luYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUg NjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNpbgorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3Jh dGUpIHRyYWl0IFNpbiB7CistICAgIGZuIHNpbihzZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2Fs bG93KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uc2luLnYyZjMyIl0KKy0gICAgZm4gc2luX3YyZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjRmMzIiXQorLSAgICBmbiBzaW5fdjRmMzIo eDogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52OGYzMiJd CistICAgIGZuIHNpbl92OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uc2luLnYxNmYzMiJdCistICAgIGZuIHNpbl92MTZmMzIoeDogZjMyeDE2KSAtPiBm MzJ4MTY7CistICAgIC8qIEZJWE1FIDY0LWJpdCBzaW5nbGUgZWxlbSB2ZWN0b3JzCistICAgICNb bGlua19uYW1lID0gImxsdm0uc2luLnYxZjY0Il0KKy0gICAgZm4gc2luX3YxZjY0KHg6IGY2NHgx KSAtPiBmNjR4MTsKKy0gICAgICovCistICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnYyZjY0 Il0KKy0gICAgZm4gc2luX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5zaW4udjRmNjQiXQorLSAgICBmbiBzaW5fdjRmNjQoeDogZjY0eDQpIC0+IGY2 NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52OGY2NCJdCistICAgIGZuIHNpbl92 OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uc2lu LmYzMiJdCistICAgIGZuIHNpbl9mMzIoeDogZjMyKSAtPiBmMzI7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uc2luLmY2NCJdCistICAgIGZuIHNpbl9mNjQoeDogZjY0KSAtPiBmNjQ7CistfQor LQorLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTaW4sIHNpbik7CistCistY2ZnX2lmISB7CistICAg IGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJWE1FOiBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMyKTsKKy0gICAgICAg IGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNpbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjMyeDhbZjMyOyA4XTogc2luX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZb ZjMyOyAxNl06IHNpbl9mMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZjY0OyAy XTogc2luX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBzaW5fZjY0 KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2NDsgOF06IHNpbl9mNjQpOworLSAgICB9 IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xl ZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lm ISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5m NF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4g ZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmQ0X3UxMGF2eDIpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2luZjRfdTEwYXZ4MjEyOCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5mOF91MTBhdngyKTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQyX3UxMGF2eDIxMjgp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2luZDRfdTEwYXZ4 Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIp XSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVl Zl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9zaW5mOF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luZDRfdTEwYXZ4KTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbmY0X3UxMHNzZTQpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2luZjhfdTEwYXZ4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQyX3UxMHNzZTQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2luZDRfdTEwYXZ4KTsKKy0g ICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3Np bmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBm MzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc2luZDJfdTEwc3NlNCk7CistCistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NpbmY0X3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc2luZDJfdTEw c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBT bGVlZl9zaW5kMl91MTBzc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMyKTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzaW5fdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjY0eDg6IHNpbl92OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0OiBzaW5fdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogc2luX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNpbl92 MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBzaW5fdjRmNjQpOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxf dW5hcnkhKGYzMngyW2YzMjsgMl06IHNpbl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IHNpbl92NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogc2luX3Y4ZjMyKTsK Ky0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2luX3YxNmYzMik7CistCistICAgICAgICBp bXBsX3VuYXJ5IShmNjR4Mjogc2luX3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBzaW5fdjRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNpbl92OGY2NCk7Cist ICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvc2luX2Nvc19waS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTg4ICsw LDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9jb3NgCistIyFbYWxsb3co dW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc2luX2NvcworLQor LXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFNpbkNvc1BpOiBTaXplZCB7Cist ICAgIHR5cGUgT3V0cHV0OworLSAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1 dDsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKKy0gICAgKCR2aWQ6aWRlbnQsICRQ STpwYXRoKSA9PiB7CistICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKKy0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7CistICAg ICAgICAgICAgICAgIGxldCB2ID0gc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSk7CistICAgICAgICAg ICAgICAgICh2LnNpbigpLCB2LmNvcygpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIgeworLSAgICAoJHZpZDppZGVu dCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmMzI6OmNvbnN0czo6UEkp OworLSAgICB9OworLX0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWY2NCB7CistICAgICgkdmlkOmlk ZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmY2NDo6Y29uc3RzOjpQ SSk7CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5X3QgeworLSAgICAo JHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3Ig JHZpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7CistICAgICAg ICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgeworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5z bXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZShzZWxm KSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50XTogJGZ1bjppZGVudCkgPT4g eworLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7CistICAgICAgICAgICAgdHlwZSBP dXRwdXQgPSAoU2VsZiwgU2VsZik7CistICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAt PiBTZWxmOjpPdXRwdXQgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OworLQor LSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAg dmVjOiBbJHZpZDsgMl0sCistICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2aWRfdCwK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCB0d2lj ZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAg ICAgICAgICAgICBsZXQgdHdpY2UgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUodHdpY2UpKSk7 CistCistICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0d2ljZTogKCR2aWRfdCwgJHZpZF90KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWNzOiAoWyR2aWQ7IDJdLCBbJHZpZDsgMl0pLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBSIHsgdHdpY2UgfS52ZWNzOworLSAgICAgICAgICAg ICAgICAgICAgKCpyLjAuZ2V0X3VuY2hlY2tlZCgwKSwgKnIuMC5nZXRfdW5jaGVja2VkKDEpKQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LSAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0 ID0gKFNlbGYsIFNlbGYpOworLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2Vs Zjo6T3V0cHV0IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistCistICAgICAgICAgICAgICAgICAgICB1 bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQsCistICAgICAgICAg ICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZpZF9oOyAyXSwKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0u aGFsdmVzOworLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18wOiAoJHZpZF9oLCAkdmlk X2gpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSkp KTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCByZXNfMTogKCR2aWRfaCwgJHZpZF9oKSA9IHRy YW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpKSk7CistCist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBy ZXN1bHQ6ICgkdmlkLCAkdmlkKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IChb JHZpZF9oOyAyXSwgWyR2aWRfaDsgMl0pLAorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgUiB7IGhhbHZlczogKFtyZXNfMC4wLCByZXNfMS4wXSwgW3Jlc18wLjEs IHJlc18xLjFdKSB9LnJlc3VsdAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAoJHZpZDppZGVudFtxID0+ICR2aWRfcTppZGVudF06 ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgeworLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOworLSAgICAgICAgICAgIGZuIHNp bl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistCist ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICR2aWQsCistICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IFskdmlkX3E7IDRd LAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHF1 YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOworLQorLSAgICAgICAgICAgICAgICAg ICAgbGV0IHJlc18wOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRl KCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0 IHJlc18xOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpxdWFy dGVycy5nZXRfdW5jaGVja2VkKDEpKSkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18y OiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5n ZXRfdW5jaGVja2VkKDIpKSkpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18zOiAoJHZp ZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5j aGVja2VkKDMpKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gUiB7CistICAgICAg ICAgICAgICAgICAgICAgICAgcmVzdWx0OiAoJHZpZCwgJHZpZCksCistICAgICAgICAgICAgICAg ICAgICAgICAgcXVhcnRlcnM6IChbJHZpZF9xOyA0XSwgWyR2aWRfcTsgNF0pLAorLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgUiB7CistICAgICAgICAgICAgICAg ICAgICAgICAgcXVhcnRlcnM6ICgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc18w LjAsIHJlc18xLjAsIHJlc18yLjAsIHJlc18zLjBdLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbcmVzXzAuMSwgcmVzXzEuMSwgcmVzXzIuMSwgcmVzXzMuMV0sCistICAgICAgICAgICAg ICAgICAgICAgICAgKSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIC5yZXN1bHQKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKGFsbCh0YXJnZXRf YXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNl IHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0X3UwNWF2eDIxMjgpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2lu Y29zcGlmOF91MDVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4OFto ID0+IGY2NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsKKy0KKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVhdngyMTI4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4ODogU2xlZWZfc2luY29zcGlmOF91MDVh dngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4MjogU2xlZWZfc2luY29z cGlkMl91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4NDog U2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbmNvc3Bp ZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmNjR4OFtoID0+IGY2 NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBTbGVlZl9zaW5jb3NwaWY4X3UwNWF2eCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3Nl NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDQ6IFNsZWVmX3NpbmNvc3Bp ZDRfdTA1YXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeV90IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVm X3NpbmNvc3BpZDJfdTA1c3NlNCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEo ZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnlfdCEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNsZWVmX3NpbmNvc3BpZDJfdTA1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDRbaCA9PiBmNjR4Ml06 IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2Rl ZjMyIShmMzJ4NCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1w bF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Cist ICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7CistICAg ICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7Cist ICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQorLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0 eDIpOworLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOworLSAgICAgICAgaW1wbF9kZWY2NCEo ZjY0eDgpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX3BpLnJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDg3ICswLDAg QEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbl9waWAKKy0jIVthbGxvdyh1bnVz ZWQpXQorLQorLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW5fcGkKKy0KKy11c2Ug Y3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTaW5QaSB7CistICAgIGZuIHNpbl9waShz ZWxmKSAtPiBTZWxmOworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU2luUGksIHNpbl9w aSk7CistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKKy0gICAgKCR2aWQ6aWRlbnQsICRQSTpw YXRoKSA9PiB7CistICAgICAgICBpbXBsIFNpblBpIGZvciAkdmlkIHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaW5fcGkoc2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIChzZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuc2luKCkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKKy0g ICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMy Ojpjb25zdHM6OlBJKTsKKy0gICAgfTsKKy19CistbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgewor LSAgICAoJHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpm NjQ6OmNvbnN0czo6UEkpOworLSAgICB9OworLX0KKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tj ZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7 CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAg ICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNWF2eDIx MjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX3NpbnBpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4 W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5waWQ0X3UwNWF2eDIpOworLQorLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVhdngyMTI4KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1YXZ4Mik7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNWF2eDIxMjgp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc2lucGlkNF91MDVh dngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4 IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNs ZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngx NltoID0+IGYzMng4XTogU2xlZWZfc2lucGlmOF91MDVhdngpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91MDVhdngpOworLQor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lucGlmNF91MDVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbnBpZjhfdTA1 YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NpbnBpZDJf dTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zaW5w aWQ0X3UwNWF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9zaW5waWQyX3Uw NXNzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2lu cGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBTbGVlZl9zaW5waWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKKy0gICAg ICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Cist ICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAgICAgICAgICAgaW1w bF9kZWYzMiEoZjMyeDgpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwor LQorLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICAgICAgICAg IGltcGxfZGVmNjQhKGY2NHg0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgp OworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGlt cGxfZGVmMzIhKGYzMngyKTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKKy0gICAgICAg IGltcGxfZGVmMzIhKGYzMng4KTsKKy0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCist ICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7 CistICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnQu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv c3FydC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydC5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMTAzICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNxcnRg CistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMg c3FydAorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFNxcnQgeworLSAg ICBmbiBzcXJ0KHNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVz KV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnYyZjMyIl0K Ky0gICAgZm4gc3FydF92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uc3FydC52NGYzMiJdCistICAgIGZuIHNxcnRfdjRmMzIoeDogZjMyeDQpIC0+IGYz Mng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjhmMzIiXQorLSAgICBmbiBzcXJ0 X3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0 LnYxNmYzMiJdCistICAgIGZuIHNxcnRfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAg ICAvKiBGSVhNRSA2NC1iaXQgc3FydGdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5zcXJ0LnYxZjY0Il0KKy0gICAgZm4gc3FydF92MWY2NCh4OiBmNjR4MSkgLT4gZjY0 eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjJmNjQiXQorLSAg ICBmbiBzcXJ0X3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5zcXJ0LnY0ZjY0Il0KKy0gICAgZm4gc3FydF92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7 CistICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52OGY2NCJdCistICAgIGZuIHNxcnRfdjhm NjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQu ZjMyIl0KKy0gICAgZm4gc3FydF9mMzIoeDogZjMyKSAtPiBmMzI7CistICAgICNbbGlua19uYW1l ID0gImxsdm0uc3FydC5mNjQiXQorLSAgICBmbiBzcXJ0X2Y2NCh4OiBmNjQpIC0+IGY2NDsKKy19 CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKFNxcnQsIHNxcnQpOworLQorLWNmZ19pZiEgewor LSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAvLyBGSVhN RTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOworLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogc3FydF9mMzIpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDhbZjMyOyA4XTogc3FydF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2YzMjsgMTZdOiBzcXJ0X2YzMik7CistCistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MltmNjQ7IDJdOiBzcXJ0X2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRd OiBzcXJ0X2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBzcXJ0X2Y2 NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVh dHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAg ICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX3NxcnRmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9zcXJ0ZjhfYXZ4Mik7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4Mik7CistCistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfYXZ4MjEyOCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfYXZ4Mik7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfYXZ4MjEyOCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfYXZ4Mik7 CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9z cXJ0ZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYz Mng4XTogU2xlZWZfc3FydGY4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NxcnRmOF9hdngpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3NzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X2F2eCk7CistICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc3FydGY0 X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTog U2xlZWZfc3FydGQyX3NzZTQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtoID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3NzZTQpOworLSAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IHNxcnRfZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzcXJ0X3Yx NmYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBzcXJ0X3Y4ZjY0KTsK Ky0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNxcnRfdjRmMzIpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogc3FydF92OGYzMik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzcXJ0X3YyZjY0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IHNxcnRfdjRmNjQpOworLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNx cnRfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzcXJ0X3Y0ZjMyKTsKKy0gICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBzcXJ0X3Y4ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkh KGYzMngxNjogc3FydF92MTZmMzIpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNx cnRfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNxcnRfdjRmNjQpOworLSAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IHNxcnRfdjhmNjQpOworLSAgICB9CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9zcXJ0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0 aC9mbG9hdC9zcXJ0ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDY3ICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9p bnQgYHNxcnRgCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVt IHZlY3RvcnMgc3FydGUKKy0KKy11c2UgY3JhdGU6Omxsdm06OnNpbWRfZnNxcnQ7CistdXNlIGNy YXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgU3FydGUgeworLSAgICBmbiBzcXJ0ZShzZWxm KSAtPiBTZWxmOworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU3FydGUsIHNxcnRlKTsK Ky0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIs IGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwor LSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc3FydGY4X3UzNWF2eDIpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0X3UzNWF2 eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0 X3UzNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZf c3FydGY4X3UzNWF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfc3FydGQyX3UzNWF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogU2xlZWZfc3FydGQ0X3UzNWF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRmOF91MzVhdngpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3Fy dGQ0X3UzNWF2eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVl Zl9zcXJ0ZjRfdTM1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9zcXJ0ZjhfdTM1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDQ6IFNsZWVmX3NxcnRkNF91MzVhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVm X3NxcnRkMl91MzVzc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6 IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsK Ky0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MltnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltn XTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ddOiBz aW1kX2ZzcXJ0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZ106IHNp bWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtnXTogc2ltZF9m c3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyW2ddOiBzaW1kX2ZzcXJ0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZ106IHNpbWRfZnNxcnQpOwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxf dW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0 W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ddOiBzaW1kX2Zz cXJ0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltnXTogc2ltZF9mc3FydCk7CistCist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltnXTogc2ltZF9mc3FydCk7CistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtnXTogc2ltZF9mc3FydCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9wb2ludGVyX3NpemVkX2ludC5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMjggKzAsMCBAQAorLS8vISBQcm92aWRlcyBgaXNpemVgIGFuZCBgdXNpemVgCistCistdXNl IGNmZ19pZjo6Y2ZnX2lmOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9p bnRlcl93aWR0aCA9ICI4IildIHsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBp ODsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1ODsKKy0gICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsKKy0gICAgICAgIHB1YihjcmF0 ZSkgdHlwZSBpc2l6ZV8gPSBpMTY7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0g dTE2OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0g eworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGkzMjsKKy0gICAgICAgIHB1Yihj cmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MzI7CistCistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf cG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVf ID0gaTY0OworLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHU2NDsKKy0gICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgIHB1 YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpNjQ7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNp emVfID0gdTY0OworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAi MTI4IildIHsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMTI4OworLSAgICAg ICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHUxMjg7CistICAgIH0gZWxzZSB7CistICAgICAg ICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0g ICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwxICswLDAgQEAKKy1wdWIoY3JhdGUpIG1vZCBtYXNrOworZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDY5ICswLDAgQEAKKy0vLyEgQ29kZSBnZW5lcmF0aW9uIHdvcmthcm91 bmQgZm9yIGBhbGwoKWAgbWFzayBob3Jpem9udGFsIHJlZHVjdGlvbi4KKy0vLyEKKy0vLyEgV29y a3MgYXJvdW5kIFtMTFZNIGJ1ZyAzNjcwMl0uCistLy8hCistLy8hIFtMTFZNIGJ1ZyAzNjcwMl06 IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MDIKKy0jIVthbGxvdyh1 bnVzZWRfbWFjcm9zKV0KKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBB bGw6IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKKy0gICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBi b29sOworLX0KKy0KKy1wdWIoY3JhdGUpIHRyYWl0IEFueTogY3JhdGU6Om1hcmtlcjo6U2l6ZWQg eworLSAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2w7CistfQorLQorLSNbbWFjcm9fdXNl XQorLW1vZCBmYWxsYmFja19pbXBsOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyhhbnko dGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0IikpXSB7CistICAgICAg ICAjW21hY3JvX3VzZV0KKy0gICAgICAgIG1vZCB4ODY7CistICAgIH0gZWxzZSBpZiAjW2NmZyhh bGwodGFyZ2V0X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKV0gewor LSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBtb2QgYXJtOworLSAgICB9IGVsc2UgaWYg I1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9u IikpXSB7CistICAgICAgICAjW21hY3JvX3VzZV0KKy0gICAgICAgIG1vZCBhYXJjaDY0OworLSAg ICB9IGVsc2UgeworLSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBtb2QgZmFsbGJhY2s7 CistICAgIH0KKy19CistCistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDIpOworLWltcGxfbWFz a19yZWR1Y3Rpb25zIShtOHg0KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4OCk7CistaW1w bF9tYXNrX3JlZHVjdGlvbnMhKG04eDE2KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4MzIp OworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg2NCk7CistCistaW1wbF9tYXNrX3JlZHVjdGlv bnMhKG0xNngyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDQpOworLWltcGxfbWFza19y ZWR1Y3Rpb25zIShtMTZ4OCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNngxNik7CistaW1w bF9tYXNrX3JlZHVjdGlvbnMhKG0xNngzMik7CistCistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0z MngyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDQpOworLWltcGxfbWFza19yZWR1Y3Rp b25zIShtMzJ4OCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMngxNik7CistCistLy8gRklY TUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKKy0vLyBpbXBsX21hc2tfcmVkdWN0aW9u cyEobTY0eDEpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4Mik7CistaW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG02NHg0KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0eDgpOworLQorLWlt cGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDEpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4 eDIpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDQpOworLQorLWltcGxfbWFza19yZWR1 Y3Rpb25zIShtc2l6ZXgyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNpemV4NCk7CistaW1w bF9tYXNrX3JlZHVjdGlvbnMhKG1zaXpleDgpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9h YXJjaDY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNoNjQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDgxICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxl bWVudGF0aW9uIGZvciBgYWFyY2g2NGAgdGFyZ2V0cworLQorLS8vLyAxMjgtYml0IHdpZGUgdmVj dG9ycworLW1hY3JvX3J1bGVzISBhYXJjaDY0XzEyOF9uZW9uX2ltcGwgeworLSAgICAoJGlkOmlk ZW50LCAkdm1pbjppZGVudCwgJHZtYXg6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2Zl YXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OiR2 bWluOworLSAgICAgICAgICAgICAgICAkdm1pbihjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikp ICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3Ig JGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0 dXJlKGVuYWJsZSA9ICJuZW9uIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAt PiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojokdm1h eDsKKy0gICAgICAgICAgICAgICAgJHZtYXgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAh PSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8gNjQt Yml0IHdpZGUgdmVjdG9ycworLW1hY3JvX3J1bGVzISBhYXJjaDY0XzY0X25lb25faW1wbCB7Cist ICAgICgkaWQ6aWRlbnQsICR2ZWMxMjg6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2Zl YXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAvLyBEdXBsaWNhdGVzIHRoZSA2NC1iaXQgdmVj dG9yIGludG8gYSAxMjgtYml0IG9uZSBhbmQKKy0gICAgICAgICAgICAgICAgLy8gY2FsbHMgYWxs IG9uIHRoYXQuCistICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAg ICAgaGFsdmVzOiAoJGlkLCAkaWQpLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjMTI4 LAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IChzZWxm LCBzZWxmKSB9LnZlYy5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg ICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gIm5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAg ICAgICAgICAgICAgICAgIGhhbHZlczogKCRpZCwgJGlkKSwKKy0gICAgICAgICAgICAgICAgICAg IHZlYzogJHZlYzEyOCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBVIHsg aGFsdmVzOiAoc2VsZiwgc2VsZikgfS52ZWMuYW55KCkKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorLQorLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBm b3IgYGFhcmNoNjRgIHRhcmdldHMKKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMg eworLSAgICAvLyA2NC1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4OCkgPT4geworLSAgICAgICAg YWFyY2g2NF82NF9uZW9uX2ltcGwhKG04eDgsIG04eDE2KTsKKy0gICAgfTsKKy0gICAgKG0xNng0 KSA9PiB7CistICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEobTE2eDQsIG0xNng4KTsKKy0g ICAgfTsKKy0gICAgKG0zMngyKSA9PiB7CistICAgICAgICBhYXJjaDY0XzY0X25lb25faW1wbCEo bTMyeDIsIG0zMng0KTsKKy0gICAgfTsKKy0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCistICAg IChtOHgxNikgPT4geworLSAgICAgICAgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIShtOHgxNiwgdm1p bnZxX3U4LCB2bWF4dnFfdTgpOworLSAgICB9OworLSAgICAobTE2eDgpID0+IHsKKy0gICAgICAg IGFhcmNoNjRfMTI4X25lb25faW1wbCEobTE2eDgsIHZtaW52cV91MTYsIHZtYXh2cV91MTYpOwor LSAgICB9OworLSAgICAobTMyeDQpID0+IHsKKy0gICAgICAgIGFhcmNoNjRfMTI4X25lb25faW1w bCEobTMyeDQsIHZtaW52cV91MzIsIHZtYXh2cV91MzIpOworLSAgICB9OworLSAgICAvLyBGYWxs YmFjayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246CistICAgICgkaWQ6aWRlbnQp ID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgIH07CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL2FybS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL2FybS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9h cm0ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDU2ICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rp b25zIGltcGxlbWVudGF0aW9uIGZvciBgYXJtYCB0YXJnZXRzCistCistLy8vIEltcGxlbWVudGF0 aW9uIGZvciBBUk0gKyB2NyArIE5FT04gZm9yIDY0LWJpdCBvciAxMjgtYml0IHdpZGUgdmVjdG9y cyB3aXRoCistLy8vIG1vcmUgdGhhbiB0d28gZWxlbWVudHMuCistbWFjcm9fcnVsZXMhIGFybV8x MjhfdjdfbmVvbl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjpp ZGVudCwgJHZwbWF4OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJs ZSA9ICJ2NyxuZW9uIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29s IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OiR2cG1pbjsKKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAor LSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistICAgICAg ICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtaW4odHJhbnNtdXRlKGhhbHZl cy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOworLSAgICAgICAgICAgICAgICBoLmFsbCgpCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFi bGUgPSAidjcsbmVvbiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjokdnBtYXg7CistICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAg IHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwK Ky0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLSAgICAg ICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZShoYWx2 ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkpKTsKKy0gICAgICAgICAgICAgICAgaC5hbnkoKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIE1hc2sgcmVk dWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciBgYXJtYCB0YXJnZXRzCistbWFjcm9fcnVsZXMhIGlt cGxfbWFza19yZWR1Y3Rpb25zIHsKKy0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCistICAgICht OHgxNikgPT4geworLSAgICAgICAgYXJtXzEyOF92N19uZW9uX2ltcGwhKG04eDE2LCBtOHg4LCB2 cG1pbl91OCwgdnBtYXhfdTgpOworLSAgICB9OworLSAgICAobTE2eDgpID0+IHsKKy0gICAgICAg IGFybV8xMjhfdjdfbmVvbl9pbXBsIShtMTZ4OCwgbTE2eDQsIHZwbWluX3UxNiwgdnBtYXhfdTE2 KTsKKy0gICAgfTsKKy0gICAgKG0zMng0KSA9PiB7CistICAgICAgICBhcm1fMTI4X3Y3X25lb25f aW1wbCEobTMyeDQsIG0zMngyLCB2cG1pbl91MzIsIHZwbWF4X3UzMik7CistICAgIH07CistICAg IC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNvZGUtZ2VuZXJhdGlvbjoKKy0gICAgKCRp ZDppZGVudCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgfTsKKy19 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsOCArMCww IEBACistLy8hIERlZmF1bHQgbWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb25zLgorLQorLS8v LyBEZWZhdWx0IG1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIGlt cGxfbWFza19yZWR1Y3Rpb25zIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgZmFs bGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1w bC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv ZmFsbGJhY2tfaW1wbC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjM3ICswLDAgQEAKKy0vLyEg RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhIG1hc2sgcmVkdWN0aW9uIGZvciBhbnkgdGFyZ2V0 LgorLQorLW1hY3JvX3J1bGVzISBmYWxsYmFja190b19vdGhlcl9pbXBsIHsKKy0gICAgKCRpZDpp ZGVudCwgJG90aGVyOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgbTogJG90aGVyID0gY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBtLmFsbCgpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAg ICAgICAgICAgICAgbGV0IG06ICRvdGhlciA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsK Ky0gICAgICAgICAgICAgICAgbS5hbnkoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CistCistLy8vIEZhbGxiYWNrIGltcGxlbWVudGF0aW9uLgorLW1hY3JvX3J1bGVz ISBmYWxsYmFja19pbXBsIHsKKy0gICAgLy8gMTYtYml0IHdpZGUgbWFza3M6CistICAgIChtOHgy KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MiB7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAg ICAgICAgICAgbGV0IGk6IHUxNiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAg ICAgICAgICAgICAgaSA9PSB1MTY6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDIgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgIGxldCBpOiB1MTYgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAg ICAgICAgICAgIGkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0g ICAgLy8gMzItYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDQpID0+IHsKKy0gICAgICAgIGltcGwg QWxsIGZvciBtOHg0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNh ZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogdTMyID0g Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBpID09IHUzMjo6 bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFu eSBmb3IgbTh4NCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZl IGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUzMiA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgaSAhPSAwCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDIpID0+IHsKKy0gICAg ICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xNngyLCBtOHg0KTsKKy0gICAgfTsKKy0gICAg Ly8gNjQtYml0IHdpZGUgbWFza3M6CistICAgIChtOHg4KSA9PiB7CistICAgICAgICBpbXBsIEFs bCBmb3IgbTh4OCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHU2NCA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgaSA9PSB1NjQ6Om1h eF92YWx1ZSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkg Zm9yIG04eDggeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBm biBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBpOiB1NjQgPSBjcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkgIT0gMAorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNng0KSA9PiB7CistICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4NCwgbTh4OCk7CistICAgIH07CistICAgICht MzJ4MikgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTMyeDIsIG0xNng0 KTsKKy0gICAgfTsKKy0gICAgLy8gRklYTUU6IDY0eDEgbWF4aworLSAgICAvLyAxMjgtYml0IHdp ZGUgbWFza3M6CistICAgIChtOHgxNikgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDE2 IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNl bGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogdTEyOCA9IGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgaSA9PSB1MTI4OjptYXhfdmFsdWUo KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciBtOHgx NiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShz ZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUxMjggPSBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkgIT0gMAorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNng4KSA9PiB7CistICAgICAgICBmYWxs YmFja190b19vdGhlcl9pbXBsIShtMTZ4OCwgbTh4MTYpOworLSAgICB9OworLSAgICAobTMyeDQp ID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0zMng0LCBtMTZ4OCk7Cist ICAgIH07CistICAgIChtNjR4MikgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobTY0eDIsIG0zMng0KTsKKy0gICAgfTsKKy0gICAgKG0xMjh4MSkgPT4geworLSAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTEyOHgxLCBtNjR4Mik7CistICAgIH07CistICAgIC8v IDI1Ni1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4MzIpID0+IHsKKy0gICAgICAgIGltcGwgQWxs IGZvciBtOHgzMiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyAy XSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgbGV0IG86 IFt1MTI4OyAyXSA9IFt1MTI4OjptYXhfdmFsdWUoKTsgMl07CistICAgICAgICAgICAgICAgIGkg PT0gbworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciBt OHgzMiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZlIGZuIGFu eShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyAyXSA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4 OyAyXSA9IFswOyAyXTsKKy0gICAgICAgICAgICAgICAgaSAhPSBvCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDE2KSA9PiB7CistICAgICAgICBmYWxsYmFj a190b19vdGhlcl9pbXBsIShtMTZ4MTYsIG04eDMyKTsKKy0gICAgfTsKKy0gICAgKG0zMng4KSA9 PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMzJ4OCwgbTE2eDE2KTsKKy0g ICAgfTsKKy0gICAgKG02NHg0KSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBs IShtNjR4NCwgbTMyeDgpOworLSAgICB9OworLSAgICAobTEyOHgyKSA9PiB7CistICAgICAgICBm YWxsYmFja190b19vdGhlcl9pbXBsIShtMTI4eDIsIG02NHg0KTsKKy0gICAgfTsKKy0gICAgLy8g NTEyLWJpdCB3aWRlIG1hc2tzCistICAgIChtOHg2NCkgPT4geworLSAgICAgICAgaW1wbCBBbGwg Zm9yIG04eDY0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogW3UxMjg7IDRd ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBsZXQgbzog W3UxMjg7IDRdID0gW3UxMjg6Om1heF92YWx1ZSgpOyA0XTsKKy0gICAgICAgICAgICAgICAgaSA9 PSBvCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yIG04 eDY0IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55 KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogW3UxMjg7IDRdID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBsZXQgbzogW3UxMjg7 IDRdID0gWzA7IDRdOworLSAgICAgICAgICAgICAgICBpICE9IG8KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistICAgIChtMTZ4MzIpID0+IHsKKy0gICAgICAgIGZhbGxiYWNr X3RvX290aGVyX2ltcGwhKG0xNngzMiwgbTh4NjQpOworLSAgICB9OworLSAgICAobTMyeDE2KSA9 PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMzJ4MTYsIG0xNngzMik7Cist ICAgIH07CistICAgIChtNjR4OCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobTY0eDgsIG0zMngxNik7CistICAgIH07CistICAgIChtMTI4eDQpID0+IHsKKy0gICAgICAg IGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xMjh4NCwgbTY0eDgpOworLSAgICB9OworLSAgICAv LyBNYXNrcyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHM2NAorLSAgICAobXNpemV4MikgPT4g eworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50 ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9p bXBsIShtc2l6ZXgyLCBtNjR4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9f b3RoZXJfaW1wbCEobXNpemV4MiwgbTMyeDIpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93 aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG1zaXpl eDQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdl dF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9f b3RoZXJfaW1wbCEobXNpemV4NCwgbTY0eDQpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICAgICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG0zMng0KTsKKy0gICAgICAgICAgICB9IGVsc2Ug eworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3Bv aW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAg IChtc2l6ZXg4KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG02NHg4KTsKKy0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtMzJ4OCk7CistICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KKy0KKy1tYWNyb19ydWxlcyEgcmVjdXJzZV9oYWxmIHsKKy0gICAgKCR2aWQ6aWRlbnQs ICR2aWRfaDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICR2aWQgeworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7CistICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFs dmVzOiAoJHZpZF9oLCAkdmlkX2gpLAorLSAgICAgICAgICAgICAgICAgICAgdmVjOiAkdmlkLAor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVj OiBzZWxmIH0uaGFsdmVzOworLSAgICAgICAgICAgICAgICBoYWx2ZXMuMC5hbGwoKSAmJiBoYWx2 ZXMuMS5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55 IGZvciAkdmlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUg Zm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAg ICAgICAgICAgICAgICAgIGhhbHZlczogKCR2aWRfaCwgJHZpZF9oKSwKKy0gICAgICAgICAgICAg ICAgICAgIHZlYzogJHZpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBs ZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0gICAgICAgICAgICAgICAgaGFs dmVzLjAuYW55KCkgfHwgaGFsdmVzLjEuYW55KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3JlZHVjdGlvbnMvbWFzay94ODYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxNiArMCww IEBACistLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4 ODZfNjRgIHRhcmdldHMKKy0KKy0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0KKy0jW21h Y3JvX3VzZV0KKy1tb2Qgc3NlOworLQorLSNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0K Ky0jW21hY3JvX3VzZV0KKy1tb2Qgc3NlMjsKKy0KKy0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYXZ4OworLQorLSNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eDIiKV0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYXZ4MjsKKy0KKy0vLy8geDg2IDY0LWJp dCBtOHg4IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHg4X2ltcGwgeworLSAg ICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAgICB9 OworLX0KKy0KKy0vLy8geDg2IDEyOC1iaXQgbTh4MTYgaW1wbGVtZW50YXRpb24KKy1tYWNyb19y dWxlcyEgeDg2X204eDE2X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBj ZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIild IHsKKy0gICAgICAgICAgICAgICAgeDg2X204eDE2X3NzZTJfaW1wbCEoJGlkKTsKKy0gICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIHg4NiAxMjgtYml0 IG0zMng0IGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4NF9pbXBsIHsKKy0g ICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKKy0gICAgICAgICAgICAgICAgeDg2X20z Mng0X3NzZV9pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAg ICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KKy0KKy0vLy8geDg2IDEyOC1iaXQgbTY0eDIgaW1wbGVtZW50YXRpb24KKy1tYWNy b19ydWxlcyEgeDg2X202NHgyX2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAg ICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2Uy IildIHsKKy0gICAgICAgICAgICAgICAgeDg2X202NHgyX3NzZTJfaW1wbCEoJGlkKTsKKy0gICAg ICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKKy0gICAg ICAgICAgICAgICAgeDg2X20zMng0X3NzZV9pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxz ZSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8geDg2IDI1Ni1iaXQgbTh4MzIgaW1w bGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X204eDMyX2ltcGwgeworLSAgICAoJGlkOmlk ZW50LCAkaGFsZl9pZDppZGVudCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAg ICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAg IHg4Nl9tOHgzMl9hdngyX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tOHgzMl9h dnhfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1 cmUgPSAic3NlMiIpXSB7CistICAgICAgICAgICAgICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFs Zl9pZCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tf aW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LS8vLyB4ODYgMjU2LWJpdCBtMzJ4OCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZf bTMyeDhfaW1wbCB7CistICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7CistICAg ICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngiKV0geworLSAgICAgICAgICAgICAgICB4ODZfbTMyeDhfYXZ4X2ltcGwhKCRpZCk7CistICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7CistICAg ICAgICAgICAgICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFsZl9pZCk7CistICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyB4ODYgMjU2LWJpdCBtNjR4 NCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTY0eDRfaW1wbCB7CistICAgICgk aWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAg ICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAg ICAgICB4ODZfbTY0eDRfYXZ4X2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNb Y2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7CistICAgICAgICAgICAgICAgIHJlY3Vyc2Vf aGFsZiEoJGlkLCAkaGFsZl9pZCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAg ICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLS8vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4KKy1tYWNyb19ydWxl cyEgeDg2X2ludHJfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwg QWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9yZWR1Y2VfYWxsOworLSAgICAgICAgICAgICAgICBzaW1kX3JlZHVjZV9hbGwoc2Vs Zi4wKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAk aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnko c2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9y ZWR1Y2VfYW55OworLSAgICAgICAgICAgICAgICBzaW1kX3JlZHVjZV9hbnkoc2VsZi4wKQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIE1hc2sgcmVkdWN0 aW9uIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cworLW1hY3Jv X3J1bGVzISBpbXBsX21hc2tfcmVkdWN0aW9ucyB7CistICAgIC8vIDY0LWJpdCB3aWRlIG1hc2tz CistICAgIChtOHg4KSA9PiB7CistICAgICAgICB4ODZfbTh4OF9pbXBsIShtOHg4KTsKKy0gICAg fTsKKy0gICAgKG0xNng0KSA9PiB7CistICAgICAgICB4ODZfbTh4OF9pbXBsIShtMTZ4NCk7Cist ICAgIH07CistICAgIChtMzJ4MikgPT4geworLSAgICAgICAgeDg2X204eDhfaW1wbCEobTMyeDIp OworLSAgICB9OworLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDE2KSA9PiB7 CistICAgICAgICB4ODZfbTh4MTZfaW1wbCEobTh4MTYpOworLSAgICB9OworLSAgICAobTE2eDgp ID0+IHsKKy0gICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtMTZ4OCk7CistICAgIH07CistICAgICht MzJ4NCkgPT4geworLSAgICAgICAgeDg2X20zMng0X2ltcGwhKG0zMng0KTsKKy0gICAgfTsKKy0g ICAgKG02NHgyKSA9PiB7CistICAgICAgICB4ODZfbTY0eDJfaW1wbCEobTY0eDIpOworLSAgICB9 OworLSAgICAobTEyOHgxKSA9PiB7CistICAgICAgICB4ODZfaW50cl9pbXBsIShtMTI4eDEpOwor LSAgICB9OworLSAgICAvLyAyNTYtYml0IHdpZGUgbWFza3M6CistICAgIChtOHgzMikgPT4gewor LSAgICAgICAgeDg2X204eDMyX2ltcGwhKG04eDMyLCBtOHgxNik7CistICAgIH07CistICAgICht MTZ4MTYpID0+IHsKKy0gICAgICAgIHg4Nl9tOHgzMl9pbXBsIShtMTZ4MTYsIG0xNng4KTsKKy0g ICAgfTsKKy0gICAgKG0zMng4KSA9PiB7CistICAgICAgICB4ODZfbTMyeDhfaW1wbCEobTMyeDgs IG0zMng0KTsKKy0gICAgfTsKKy0gICAgKG02NHg0KSA9PiB7CistICAgICAgICB4ODZfbTY0eDRf aW1wbCEobTY0eDQsIG02NHgyKTsKKy0gICAgfTsKKy0gICAgKG0xMjh4MikgPT4geworLSAgICAg ICAgeDg2X2ludHJfaW1wbCEobTEyOHgyKTsKKy0gICAgfTsKKy0gICAgKG1zaXpleDIpID0+IHsK Ky0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobXNpemV4MiwgbTY0eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf cG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290 aGVyX2ltcGwhKG1zaXpleDIsIG0zMngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lk dGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChtc2l6ZXg0 KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRf cG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290 aGVyX2ltcGwhKG1zaXpleDQsIG02NHg0KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAgICAgICAgICBmYWxsYmFj a190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtMzJ4NCk7CistICAgICAgICAgICAgfSBlbHNlIHsK Ky0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2lu dGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAo bXNpemV4OCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmco dGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAgICAgICBmYWxsYmFj a190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtNjR4OCk7CistICAgICAgICAgICAgfSBlbHNlIGlm ICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgICAgICAgICAg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTMyeDgpOworLSAgICAgICAgICAgIH0g ZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJn ZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky0KKy0gICAgLy8gRmFsbGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1nZW5lcmF0aW9uOgor LSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw5 NSArMCwwIEBACistLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAg YW5kIGB4ODZfNjRgIHRhcmdldHMgd2l0aCBgQVZYYAorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAy NTYtYml0IGBBVlhgIGltcGxlbWVudGF0aW9uCistLy8vIEZJWE1FOiBpdCBtaWdodCBiZSBmYXN0 ZXIgaGVyZSB0byBkbyB0d28gYF9tbV9tb3ZtYXNrX2VwaThgCistI1tjZmcodGFyZ2V0X2ZlYXR1 cmUgPSAiYXZ4IildCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9hdnhfaW1wbCB7CistICAgICgk aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gImF2eCIp XQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rlc3RjX3NpMjU2OworLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0Y19zaTI1NjsKKy0gICAgICAgICAgICAgICAgX21t MjU2X3Rlc3RjX3NpMjU2KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSwgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKCRpZDo6c3BsYXQodHJ1ZSkpKSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAiYXZ4IildCistICAgICAg ICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJj aDo6eDg2OjpfbW0yNTZfdGVzdHpfc2kyNTY7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Nl82NDo6X21tMjU2X3Rlc3R6X3NpMjU2OworLSAgICAgICAgICAgICAgICBfbW0yNTZfdGVzdHpf c2kyNTYoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLCBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZikpID09IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IG0zMng4IGBBVlhgIGltcGxlbWVudGF0aW9uCist bWFjcm9fcnVsZXMhIHg4Nl9tMzJ4OF9hdnhfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsK Ky0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Njo6X21tMjU2X21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6 Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0gICAgICAgICAgICAgICAgLy8gX21tMjU2X21vdmVtYXNr X3BzKGEpIGNyZWF0ZXMgYSA4Yml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0gICAgICAgICAgICAg ICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsIGJp dHMgYXJlCistICAgICAgICAgICAgICAgIC8vIHNldCwgdGhlbiBhbGwgOCBsYW5lcyBvZiB0aGUg bWFzayBhcmUgdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BzKGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV8xMTExX2kzMgorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIp XQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0KKy0gICAgICAgICAgICAgICAg X21tMjU2X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIGB4ODZgL2B4ODZf NjRgIDI1Ni1iaXQgbTY0eDQgYEFWWGAgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2 X202NHg0X2F2eF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBB bGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJn ZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChz ZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2 IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1h c2tfcGQ7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNr X3BkOworLSAgICAgICAgICAgICAgICAvLyBfbW0yNTZfbW92ZW1hc2tfcGQoYSkgY3JlYXRlcyBh IDRiaXQgbWFzayBjb250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25p ZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwgYml0cyBhcmUKKy0gICAgICAg ICAgICAgICAgLy8gc2V0LCB0aGVuIGFsbCA0IGxhbmVzIG9mIHRoZSBtYXNrIGFyZSB0cnVlLgor LSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpKSA9PSAwYl8xMTExX2kzMgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg ICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9h cmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21t MjU2X21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1 Nl9tb3ZlbWFza19wZDsKKy0KKy0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BkKGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycworKysrIC9kZXYvbnVs bAorQEAgLTEsMzUgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24g Zm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYEFWWDJgLgorLSMhW2FsbG93KHVu dXNlZCldCistCistLy8vIHg4Ni94ODZfNjQgMjU2LWJpdCBtOHgzMiBBVlgyIGltcGxlbWVudGF0 aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9hdngyX2ltcGwgeworLSAgICAoJGlkOmlkZW50 KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UyIildCistICAg ICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJj aDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAgICAgICAgLy8gX21t MjU2X21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBhIDMyYml0IG1hc2sgY29udGFpbmluZyB0aGUK Ky0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBieXRlIG9m IGBhYC4gSWYgYWxsCistICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwg MzIgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCistICAgICAgICAgICAgICAgIC8vIHRydWUuCistICAg ICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKSkgPT0gLTFfaTMyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1w bCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0 YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlMiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBh bnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21v dmVtYXNrX2VwaTg7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82 NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21v dmVtYXNrX2VwaTg7CistCistICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZS5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMzUgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9y IGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYFNTRWAuCistIyFbYWxsb3codW51c2Vk KV0KKy0KKy0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBgbTMyeDRgIGBTU0VgIGltcGxlbWVu dGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4NF9zc2VfaW1wbCB7CistICAgICgkaWQ6aWRl bnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAg ICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX3BzOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4 ODZfNjQ6Ol9tbV9tb3ZlbWFza19wczsKKy0gICAgICAgICAgICAgICAgLy8gX21tX21vdmVtYXNr X3BzKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0gICAgICAgICAgICAg ICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsCist ICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgNCBsYW5lcyBvZiB0aGUg bWFzayBhcmUKKy0gICAgICAgICAgICAgICAgLy8gdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21t X21vdmVtYXNrX3BzKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV9pMzIK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVu YWJsZSA9ICJzc2UiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wg eworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wczsKKy0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7CistCistICAgICAgICAg ICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4 Ni9zc2UyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1 Y3Rpb25zL21hc2sveDg2L3NzZTIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv eDg2L3NzZTIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY4ICswLDAgQEAKKy0vLyEgTWFzayBy ZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cyB3 aXRoIGBTU0UyYC4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAx MjgtYml0IG02NHgyIGBTU0UyYCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTY0 eDJfc3NlMl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwg Zm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRf ZmVhdHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2Iild CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfcGQ7 CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3BkOworLSAg ICAgICAgICAgICAgICAvLyBfbW1fbW92ZW1hc2tfcGQoYSkgY3JlYXRlcyBhIDJiaXQgbWFzayBj b250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJpdCBv ZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwKKy0gICAgICAgICAgICAgICAgLy8gYml0cyBhcmUg c2V0LCB0aGVuIGFsbCAyIGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAgICAgICAgICAgICAv LyB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpKSA9PSAwYl8xMV9pMzIKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0gICAgICAgICAgICB1 bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6 Ol9tbV9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi eDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1f bW92ZW1hc2tfcGQ7CistCistICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wZChjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLS8vLyBgeDg2YC9geDg2XzY0YCAxMjgtYml0IG04eDE2IGBTU0UyYCBp bXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTh4MTZfc3NlMl9pbXBsIHsKKy0gICAg KCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3Nl MiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7CistICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX2VwaTg7CistICAgICAgICAgICAgICAgIC8v IF9tbV9tb3ZlbWFza19lcGk4KGEpIGNyZWF0ZXMgYSAxNmJpdCBtYXNrIGNvbnRhaW5pbmcgdGhl CistICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggYnl0ZSBv ZiBgYWAuIElmIGFsbAorLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBzZXQsIHRoZW4gYWxs IDE2IGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAgICAgICAgICAgICAvLyB0cnVlLgorLSAg ICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs ZikpID09IGkzMjo6ZnJvbSh1MTY6Om1heF92YWx1ZSgpKQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZTIiKV0KKy0gICAg ICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjph cmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19lcGk4OworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4 ODZfNjQ6Ol9tbV9tb3ZlbWFza19lcGk4OworLQorLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1h c2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1MCArMCwwIEBACistLy8hIEltcGxlbWVudGF0aW9u cyBvZiB0aGUgYFNodWZmbGVSZXN1bHRgIHRyYWl0IGZvciB0aGUgZGlmZmVyZW50IG51bWJlcnMg b2YKKy0vLyEgbGFuZXMgYW5kIHZlY3RvciBlbGVtZW50IHR5cGVzLgorLQorLXVzZSBjcmF0ZTo6 bWFza3M6Oio7CistdXNlIGNyYXRlOjpzZWFsZWQ6OntTZWFsLCBTaHVmZmxlfTsKKy0KKy1tYWNy b19ydWxlcyEgaW1wbF9zaHVmZmxlIHsKKy0gICAgKCRhcnJheTp0eSwgJGJhc2U6dHksICRvdXQ6 dHkpID0+IHsKKy0gICAgICAgIGltcGwgU2VhbDwkYXJyYXk+IGZvciAkYmFzZSB7fQorLSAgICAg ICAgaW1wbCBTaHVmZmxlPCRhcnJheT4gZm9yICRiYXNlIHsKKy0gICAgICAgICAgICB0eXBlIE91 dHB1dCA9ICRvdXQ7CistICAgICAgICB9CistICAgIH07CistfQorLQorLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAyXSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgyIH0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgNF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1 MzI7IDhdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyAxNl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MTYgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyAzMl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MzIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyA2NF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NjQgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyAyXSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgNF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7 IDhdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAx Nl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MTYgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAz Ml0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MzIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA2 NF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NjQgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyAyXSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsg NF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhd LCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0s IG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MTYgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAzMl0s IG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MzIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA2NF0s IG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NjQgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAy XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0 XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4 XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAx Nl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngxNiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7 IDMyXSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDMyIH0KKy0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngyIH0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgNF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng0IH0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgOF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng4IH0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMTZdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MTYgfQorLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAzMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngzMiB9CistCistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDJdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4MiB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDRdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4NCB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDhdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4OCB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDE2XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDE2IH0KKy0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMngyIH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMng0IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgOF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMng4IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMTZdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjppMzJ4MTYgfQorLQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6dTMyeDIgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6dTMyeDQgfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6dTMyeDggfQor LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIHUzMiwgY3JhdGU6OmNvZGVnZW46OnUzMngxNiB9 CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBmMzIsIGNyYXRlOjpjb2RlZ2VuOjpmMzJ4 MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBmMzIsIGNyYXRlOjpjb2RlZ2VuOjpmMzJ4 NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBmMzIsIGNyYXRlOjpjb2RlZ2VuOjpmMzJ4 OCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgZjMyLCBjcmF0ZTo6Y29kZWdlbjo6ZjMy eDE2IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0zMiwgY3JhdGU6OmNvZGVnZW46 Om0zMngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0zMiwgY3JhdGU6OmNvZGVnZW46 Om0zMng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIG0zMiwgY3JhdGU6OmNvZGVnZW46 Om0zMng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBtMzIsIGNyYXRlOjpjb2RlZ2Vu OjptMzJ4MTYgfQorLQorLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Cist Ki8KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgy IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHg0 IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHg4 IH0KKy0KKy0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQorLSovCistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4MiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4NCB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4OCB9CistCist LyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KKy0qLworLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDIgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA0XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDQgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA4XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDggfQorLQorLS8qIEZJWE1F OiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDFd LCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9CistKi8KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgMl0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHgyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgNF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgOF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg4IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsg W3UzMjsgMl0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNpemV4MiB9CistaW1wbF9zaHVmZmxl ISB7IFt1MzI7IDRdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDQgfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyA4XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6ZXg4IH0KKy0KKy1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHVzaXplLCBjcmF0ZTo6Y29kZWdlbjo6dXNpemV4MiB9 CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1c2l6ZSwgY3JhdGU6OmNvZGVnZW46OnVzaXpl eDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdXNpemUsIGNyYXRlOjpjb2RlZ2VuOjp1 c2l6ZXg4IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG1zaXplLCBjcmF0ZTo6Y29k ZWdlbjo6bXNpemV4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtc2l6ZSwgY3JhdGU6 OmNvZGVnZW46Om1zaXpleDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbXNpemUsIGNy YXRlOjpjb2RlZ2VuOjptc2l6ZXg4IH0KKy0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgMl0+IGZvciAq Y29uc3QgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyAyXT4gZm9yICpjb25zdCBUIHsKKy0g ICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cngyPFQ+OworLX0KKy1pbXBsPFQ+ IFNlYWw8W3UzMjsgNF0+IGZvciAqY29uc3QgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyA0 XT4gZm9yICpjb25zdCBUIHsKKy0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0 cng0PFQ+OworLX0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+IGZvciAqY29uc3QgVCB7fQorLWlt cGw8VD4gU2h1ZmZsZTxbdTMyOyA4XT4gZm9yICpjb25zdCBUIHsKKy0gICAgdHlwZSBPdXRwdXQg PSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cng4PFQ+OworLX0KKy0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsg Ml0+IGZvciAqbXV0IFQge30KKy1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgMl0+IGZvciAqbXV0IFQg eworLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjptcHRyeDI8VD47CistfQorLWlt cGw8VD4gU2VhbDxbdTMyOyA0XT4gZm9yICptdXQgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMy OyA0XT4gZm9yICptdXQgVCB7CistICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46Om1w dHJ4NDxUPjsKKy19CistaW1wbDxUPiBTZWFsPFt1MzI7IDhdPiBmb3IgKm11dCBUIHt9CistaW1w bDxUPiBTaHVmZmxlPFt1MzI7IDhdPiBmb3IgKm11dCBUIHsKKy0gICAgdHlwZSBPdXRwdXQgPSBj cmF0ZTo6Y29kZWdlbjo6bXB0cng4PFQ+OworLX0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsg MV0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDEgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMy OyAyXSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1 MzI7IDRdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHg0IH0KKy0KKy1pbXBsX3NodWZmbGUh IHsgW3UzMjsgMV0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDEgfQorLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4MiB9CistaW1wbF9zaHVm ZmxlISB7IFt1MzI7IDRdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHg0IH0KKy0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMV0sIG0xMjgsIGNyYXRlOjpjb2RlZ2VuOjptMTI4eDEgfQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTEyOCwgY3JhdGU6OmNvZGVnZW46Om0xMjh4MiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMTI4LCBjcmF0ZTo6Y29kZWdlbjo6bTEyOHg0IH0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3No dWZmbGUxX2R5bi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v c2h1ZmZsZTFfZHluLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzCisrKysgL2Rl di9udWxsCitAQCAtMSw0MDggKzAsMCBAQAorLS8vISBTaHVmZmxlIHZlY3RvciBsYW5lcyB3aXRo IHJ1bi10aW1lIGluZGljZXMuCistCistdXNlIGNyYXRlOjoqOworLQorLXB1YiB0cmFpdCBTaHVm ZmxlMUR5biB7CistICAgIHR5cGUgSW5kaWNlczsKKy0gICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYs IF86IFNlbGY6OkluZGljZXMpIC0+IFNlbGY7CistfQorLQorLS8vIEZhbGxiYWNrIGltcGxlbWVu dGF0aW9uCistbWFjcm9fcnVsZXMhIGltcGxfZmFsbGJhY2sgeworLSAgICAoJGlkOmlkZW50KSA9 PiB7CistICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciAkaWQgeworLSAgICAgICAgICAgIHR5 cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICBsZXQgbXV0IHJlc3VsdCA9IFNlbGY6OnNwbGF0KDApOworLSAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGluZGljZXMuZXh0cmFj dChpKSBhcyB1c2l6ZSkpOworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHJl c3VsdAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9f cnVsZXMhIGltcGxfc2h1ZmZsZTFfZHluIHsKKy0gICAgKHU4eDgpID0+IHsKKy0gICAgICAgIGNm Z19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbCgKKy0gICAgICAgICAgICAgICAgYW55 KAorLSAgICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJn ZXRfZmVhdHVyZSA9ICJuZW9uIiksCistICAgICAgICAgICAgICAgICAgICBhbGwodGFyZ2V0X2Fy Y2ggPSAiZG9lc25vdGV4aXN0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjciLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKQorLSAgICAgICAgICAgICAgICAp LAorLSAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25l b24pCistICAgICAgICAgICAgKQorLSAgICAgICAgICAgICldIHsKKy0gICAgICAgICAgICAgICAg aW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4OCB7CistICAgICAgICAgICAgICAgICAgICB0eXBlIElu ZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFy Y2g2NDo6dnRibDFfdTg7CistICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAiZG9lc25vdGV4aXN0IildCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjphcm06OnZ0YmwxX3U4OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRo aXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0aAorLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0 aGVyZWZvcmUgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRo YXQgaGF2ZSBpdCBlbmFibGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2dGJsMV91OChtZW06OnRyYW5zbXV0ZShzZWxmLjAp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoaW5kaWNlcy4wKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBs X2ZhbGxiYWNrISh1OHg4KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist ICAgICh1OHgxNikgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tj ZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAic3NzZTMiKSldIHsK Ky0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYgeworLSAgICAgICAg ICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGlj ZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNb Y2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW1fc2h1ZmZsZV9lcGk4OworLSAgICAgICAgICAgICAgICAgICAg ICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fc2h1ZmZsZV9lcGk4OworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29t cGlsZWQgd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNzc2UzIGVuYWJsZWQgYXQg Y29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KKy0gICAgICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1l bTo6dHJhbnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NodWZm bGVfZXBpOChtZW06OnRyYW5zbXV0ZShzZWxmLjApLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzKSkK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRf ZmVhdHVyZSA9ICJuZW9uIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueShm ZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKV0geworLSAgICAgICAgICAgICAg ICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHgxNiB7CistICAgICAgICAgICAgICAgICAgICB0eXBl IEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNl cykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjph YXJjaDY0Ojp2cXRibDFxX3U4OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMg aXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGlsZWQgd2l0aAorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21waWxlLXRpbWUgYW5kIGNhbiB0aGVy ZWZvcmUgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1biBvbiBDUFVzIHRoYXQg aGF2ZSBpdCBlbmFibGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211dGUoCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2cXRibDFxX3U4KG1lbTo6dHJhbnNtdXRlKHNlbGYuMCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKGluZGljZXMuMCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJkb2Vzbm90ZXhpc3QiLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVf bmVvbikpKV0geworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHgxNiB7 CistICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4o c2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphcm06OnZ0YmwyX3U4OworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgY29tcGls ZWQgd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lb24gZW5hYmxlZCBhdCBjb21w aWxlLXRpbWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQorLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIHJ1biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgorLSAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgajogdTh4MTYsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzOiAodTh4OCwgdTh4OCksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChpMCwgaTEp ID0gVSB7IGo6IHkgfS5zOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjAg PSB2dGJsMl91OCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbTo6dHJhbnNt dXRlKHgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKGkwKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgcjEgPSB2dGJsMl91OCgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1lbTo6dHJhbnNtdXRlKHgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGkxKQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IFUgeyBz OiAocjAsIHIxKSB9Lmo7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVt Ojp0cmFuc211dGUocikpCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4MTYpOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHUxNng4KSA9PiB7CistICAgICAgICBpbXBsIFNodWZm bGUxRHluIGZvciB1MTZ4OCB7CistICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwg aW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCBp bmRpY2VzOiB1OHg4ID0gKGluZGljZXMgKiAyKS5jYXN0KCk7CistICAgICAgICAgICAgICAgIGxl dCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKGluZGljZXMsIFswLCAwLCAxLCAxLCAyLCAyLCAz LCAzLCA0LCA0LCA1LCA1LCA2LCA2LCA3LCA3XSk7CistICAgICAgICAgICAgICAgIGxldCB2ID0g dTh4MTY6Om5ldygwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx KTsKKy0gICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsgdjsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9IGNy YXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHUzMng0KSA9PiB7 CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdl dF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJhdngiKSldIHsKKy0gICAgICAgICAgICAgICAg aW1wbCBTaHVmZmxlMUR5biBmb3IgdTMyeDQgeworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJ bmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0g Ing4NiIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojp7 X21tX3Blcm11dGV2YXJfcHN9OworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6eDg2XzY0Ojp7X21tX3Blcm11dGV2YXJfcHN9OworLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9wZXJtdXRl dmFyX3BzKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmLjApLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUx RHluIGZvciB1MzJ4NCB7CistICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxm OworLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgICAgICAgICBm biBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDQgPSAoaW5kaWNlcyAqIDQp LmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBz aHVmZmxlISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlcywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDIsIDIsIDIsIDIs IDMsIDMsIDMsIDNdCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMKKy0gICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRp Y2VzID0gaW5kaWNlcyArIHY7CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IHU4eDE2ID1jcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMpKQorLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKHU2NHgyKSA9PiB7CistICAgICAgICBj ZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55KHRhcmdldF9hcmNoID0gIng4 NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICB0 YXJnZXRfZmVhdHVyZSA9ICJhdngiKSldIHsKKy0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxl MUR5biBmb3IgdTY0eDIgeworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2Vs ZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAg ICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2Ojp7X21tX3Blcm11dGV2 YXJfcGR9OworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4 Nl82NCIpXQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0 Ojp7X21tX3Blcm11dGV2YXJfcGR9OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIF9tbV9w ZXJtdXRldmFyX3BkIHVzZXMgdGhlIF9zZWNvbmRfIGJpdCBvZiBlYWNoCistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gZWxlbWVudCB0byBwZXJmb3JtIHRoZSBzZWxlY3Rpb24sIHRoYXQgaXM6 IDBiMDAgPT4gMCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyAwYjEwID0+IDE6CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzIDw8IDE7CistICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg X21tX3Blcm11dGV2YXJfcGQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbCBT aHVmZmxlMUR5biBmb3IgdTY0eDIgeworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2Vz ID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgyID0gKGluZGlj ZXMgKiA4KS5jYXN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4 eDE2ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAx LCAxLCAxLCAxLCAxLCAxLCAxXQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3KAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3 CistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgaW5kaWNlcyA9IGluZGljZXMgKyB2OworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9Y3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgICh1MTI4eDEpID0+IHsKKy0g ICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUxMjh4MSB7CistICAgICAgICAgICAgdHlwZSBJ bmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBz aHVmZmxlMV9keW4oc2VsZiwgX2luZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBzZWxmCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2ZhbGxiYWNrISgkaWQpOworLSAg ICB9OworLX0KKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTh4Mik7CistaW1wbF9zaHVmZmxlMV9k eW4hKHU4eDQpOworLWltcGxfc2h1ZmZsZTFfZHluISh1OHg4KTsKKy1pbXBsX3NodWZmbGUxX2R5 biEodTh4MTYpOworLWltcGxfc2h1ZmZsZTFfZHluISh1OHgzMik7CistaW1wbF9zaHVmZmxlMV9k eW4hKHU4eDY0KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTE2eDIpOworLWltcGxfc2h1ZmZs ZTFfZHluISh1MTZ4NCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHUxNng4KTsKKy1pbXBsX3NodWZm bGUxX2R5biEodTE2eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTE2eDMyKTsKKy0KKy1pbXBs X3NodWZmbGUxX2R5biEodTMyeDIpOworLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4NCk7CistaW1w bF9zaHVmZmxlMV9keW4hKHUzMng4KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTMyeDE2KTsKKy0K Ky1pbXBsX3NodWZmbGUxX2R5biEodTY0eDIpOworLWltcGxfc2h1ZmZsZTFfZHluISh1NjR4NCk7 CistaW1wbF9zaHVmZmxlMV9keW4hKHU2NHg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodXNp emV4Mik7CistaW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDQpOworLWltcGxfc2h1ZmZsZTFfZHlu ISh1c2l6ZXg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5biEodTEyOHgxKTsKKy1pbXBsX3NodWZm bGUxX2R5biEodTEyOHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTEyOHg0KTsKKy0KKy0vLyBJ bXBsZW1lbnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcworLW1hY3JvX3J1bGVz ISBpbXBsX3NodWZmbGUxX2R5bl9ub25fdSB7CistICAgICgkaWQ6aWRlbnQsICR1aWQ6aWRlbnQp ID0+IHsKKy0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yICRpZCB7CistICAgICAgICAgICAg dHlwZSBJbmRpY2VzID0gJHVpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBsZXQgdTog JHVpZCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZSh1LnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDIsIHU4eDIpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShpOHg0LCB1OHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4OCwgdTh4 OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4eDE2LCB1OHgxNik7CistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGk4eDMyLCB1OHgzMik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KGk4eDY0LCB1OHg2NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNngyLCB1MTZ4 Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxNng0LCB1MTZ4NCk7CistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGkxNng4LCB1MTZ4OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3Uh KGkxNngxNiwgdTE2eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDMyLCB1MTZ4 MzIpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4MiwgdTMyeDIpOworLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShpMzJ4NCwgdTMyeDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShpMzJ4OCwgdTMyeDgpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMzJ4MTYsIHUz MngxNik7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk2NHgyLCB1NjR4Mik7CistaW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKGk2NHg0LCB1NjR4NCk7CistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKGk2NHg4LCB1NjR4OCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGlzaXpl eDIsIHVzaXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXg0LCB1c2l6ZXg0 KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaXNpemV4OCwgdXNpemV4OCk7CistCistaW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4MSwgdTEyOHgxKTsKKy1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEoaTEyOHgyLCB1MTI4eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTI4 eDQsIHUxMjh4NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDIsIHU4eDIpOwor LWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHg0LCB1OHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEobTh4OCwgdTh4OCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDE2LCB1 OHgxNik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDMyLCB1OHgzMik7CistaW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKG04eDY0LCB1OHg2NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKG0xNngyLCB1MTZ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNng0LCB1 MTZ4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNng4LCB1MTZ4OCk7CistaW1wbF9z aHVmZmxlMV9keW5fbm9uX3UhKG0xNngxNiwgdTE2eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEobTE2eDMyLCB1MTZ4MzIpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4 MiwgdTMyeDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4NCwgdTMyeDQpOworLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShtMzJ4OCwgdTMyeDgpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtMzJ4MTYsIHUzMngxNik7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02 NHgyLCB1NjR4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHg0LCB1NjR4NCk7Cist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG02NHg4LCB1NjR4OCk7CistCistaW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKG1zaXpleDIsIHVzaXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShtc2l6ZXg0LCB1c2l6ZXg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobXNpemV4OCwg dXNpemV4OCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xMjh4MSwgdTEyOHgxKTsK Ky1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHgyLCB1MTI4eDIpOworLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShtMTI4eDQsIHUxMjh4NCk7CistCistaW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKGYzMngyLCB1MzJ4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMng0LCB1MzJ4 NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGYzMng4LCB1MzJ4OCk7CistaW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKGYzMngxNiwgdTMyeDE2KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoZjY0eDIsIHU2NHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjY0eDQsIHU2 NHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjY0eDgsIHU2NHg4KTsKKy0KKy0vLyBJ bXBsZW1lbnRhdGlvbiBmb3Igbm9uLXVuc2lnbmVkIHZlY3RvciB0eXBlcworLW1hY3JvX3J1bGVz ISBpbXBsX3NodWZmbGUxX2R5bl9wdHIgeworLSAgICAoJGlkOmlkZW50LCAkdWlkOmlkZW50KSA9 PiB7CistICAgICAgICBpbXBsPFQ+IFNodWZmbGUxRHluIGZvciAkaWQ8VD4geworLSAgICAgICAg ICAgIHR5cGUgSW5kaWNlcyA9ICR1aWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgbGV0 IHU6ICR1aWQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUodS5zaHVmZmxlMV9keW4oaW5kaWNlcykpCistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor LQorLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEoY3B0cngyLCB1c2l6ZXgyKTsKKy1pbXBsX3NodWZm bGUxX2R5bl9wdHIhKGNwdHJ4NCwgdXNpemV4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fcHRyIShj cHRyeDgsIHVzaXpleDgpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cngyLCB1c2l6 ZXgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKG1wdHJ4NCwgdXNpemV4NCk7CistaW1wbF9z aHVmZmxlMV9keW5fcHRyIShtcHRyeDgsIHVzaXpleDgpOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3N3YXBfYnl0ZXMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0OSArMCwwIEBACist Ly8hIEhvcml6b250YWwgc3dhcCBieXRlcyByZWR1Y3Rpb25zLgorLQorLS8vIEZJWE1FOiBpbnZl c3RpZ2F0ZSB1c2luZyBgbGx2bS5ic3dhcGAKKy0vLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5CistCistdXNlIGNyYXRlOjoqOworLQor LXB1YihjcmF0ZSkgdHJhaXQgU3dhcEJ5dGVzIHsKKy0gICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAt PiBTZWxmOworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zd2FwX2J5dGVzIHsKKy0gICAgKHYx NjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbCBT d2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAg ICAgc2h1ZmZsZSEoc2VsZiwgWzEsIDBdKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgKSsKKy0gICAgfTsKKy0gICAgKHYzMjogJCgkaWQ6aWRlbnQsKSspID0+ IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7Cist ICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBw eTo6dXNlbGVzc190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs Zik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4NCA9IHNodWZmbGUh KGJ5dGVzLCBbMywgMiwgMSwgMF0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjpt ZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAgICB9OworLSAgICAodjY0 OiAkKCRpZDppZGVudCwpKykgPT4geworLSAgICAgICAgJCgKKy0gICAgICAgICAgICBpbXBsIFN3 YXBCeXRlcyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCistICAgICAgICAgICAg ICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4OCA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVz dWx0OiB1OHg4ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVz LCBbNywgNiwgNSwgNCwgMywgMiwgMSwgMF0KKy0gICAgICAgICAgICAgICAgICAgICAgICApOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCist ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICApKworLSAgICB9OworLSAgICAodjEyODogJCgkaWQ6aWRlbnQsKSspID0+IHsK Ky0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAg ICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6 dXNlbGVzc190cmFuc211dGUpXQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYnl0ZXM6IHU4eDE2ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDE2ID0gc2h1ZmZsZSEo Ynl0ZXMsIFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE0LCAxMywgMTIsIDEx LCAxMCwgOSwgOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgNiwgNSwgNCwgMywg MiwgMSwgMAorLSAgICAgICAgICAgICAgICAgICAgICAgIF0pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAg ICB9OworLSAgICAodjI1NjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAg ICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUp XQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0 ZXM6IHU4eDMyID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDMyID0gc2h1ZmZsZSEoYnl0ZXMsIFsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgMzEsIDMwLCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAyMywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDks ICA4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIs ICAxLCAgMAorLSAgICAgICAgICAgICAgICAgICAgICAgIF0pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAg ICB9OworLSAgICAodjUxMjogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAg ICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUp XQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0 ZXM6IHU4eDY0ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDY0ID0gc2h1ZmZsZSEoYnl0ZXMsIFsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgNjMsIDYyLCA2MSwgNjAsIDU5LCA1OCwgNTcsIDU2LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICA1NSwgNTQsIDUzLCA1MiwgNTEsIDUwLCA0OSwgNDgs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LCA0NiwgNDUsIDQ0LCA0MywgNDIsIDQx LCA0MCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMzksIDM4LCAzNywgMzYsIDM1LCAz NCwgMzMsIDMyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMSwgMzAsIDI5LCAyOCwg MjcsIDI2LCAyNSwgMjQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLCAyMiwgMjEs IDIwLCAxOSwgMTgsIDE3LCAxNiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxMCwgOSwgIDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcs ICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsICAwCistICAgICAgICAgICAgICAgICAgICAgICAgXSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgICkrCistICAgIH07CistfQorLQorLWltcGxfc3dhcF9ieXRlcyEodjE2OiB1 OHgyLCBpOHgyLCk7CistaW1wbF9zd2FwX2J5dGVzISh2MzI6IHU4eDQsIGk4eDQsIHUxNngyLCBp MTZ4MiwpOworLS8vIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCistaW1wbF9z d2FwX2J5dGVzISh2NjQ6IHU4eDgsIGk4eDgsIHUxNng0LCBpMTZ4NCwgdTMyeDIsIGkzMngyIC8q IHU2NHgxLCBpNjR4MSwgKi8sKTsKKy0KKy1pbXBsX3N3YXBfYnl0ZXMhKHYxMjg6IHU4eDE2LCBp OHgxNiwgdTE2eDgsIGkxNng4LCB1MzJ4NCwgaTMyeDQsIHU2NHgyLCBpNjR4MiwgdTEyOHgxLCBp MTI4eDEsKTsKKy1pbXBsX3N3YXBfYnl0ZXMhKHYyNTY6IHU4eDMyLCBpOHgzMiwgdTE2eDE2LCBp MTZ4MTYsIHUzMng4LCBpMzJ4OCwgdTY0eDQsIGk2NHg0LCB1MTI4eDIsIGkxMjh4MiwpOworLQor LWltcGxfc3dhcF9ieXRlcyEodjUxMjogdTh4NjQsIGk4eDY0LCB1MTZ4MzIsIGkxNngzMiwgdTMy eDE2LCBpMzJ4MTYsIHU2NHg4LCBpNjR4OCwgdTEyOHg0LCBpMTI4eDQsKTsKKy0KKy1jZmdfaWYh IHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIpXSB7CistICAgICAg ICBpbXBsX3N3YXBfYnl0ZXMhKHYxNjogaXNpemV4MiwgdXNpemV4MiwpOworLSAgICAgICAgaW1w bF9zd2FwX2J5dGVzISh2MzI6IGlzaXpleDQsIHVzaXpleDQsKTsKKy0gICAgICAgIGltcGxfc3dh cF9ieXRlcyEodjY0OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIpXSB7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMh KHYzMjogaXNpemV4MiwgdXNpemV4MiwpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6 IGlzaXpleDQsIHVzaXpleDQsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODogaXNp emV4OCwgdXNpemV4OCwpOworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiMzIiKV0geworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6IGlzaXpleDIsIHVz aXpleDIsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODogaXNpemV4NCwgdXNpemV4 NCwpOworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MjU2OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7 CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Cist ICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxMjg6IGlzaXpleDIsIHVzaXpleDIsKTsKKy0gICAg ICAgIGltcGxfc3dhcF9ieXRlcyEodjI1NjogaXNpemV4NCwgdXNpemV4NCwpOworLSAgICAgICAg aW1wbF9zd2FwX2J5dGVzISh2NTEyOiBpc2l6ZXg4LCB1c2l6ZXg4LCk7CistICAgIH0gZWxzZSB7 CistICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lk dGgiKTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3YxMjgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCisrKysgL2Rldi9udWxs CitAQCAtMSw0NiArMCwwIEBACistLy8hIEludGVybmFsIDEyOC1iaXQgd2lkZSB2ZWN0b3IgdHlw ZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBs X3NpbWRfYXJyYXkhKAorLSAgICBbaTg7IDE2XTogaTh4MTYgfAorLSAgICBpOCwgaTgsIGk4LCBp OCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwg aTgsIGk4LCBpOAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCist ICAgIFt1ODsgMTZdOiB1OHgxNiB8CistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgs IHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4CistKTsK Ky0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW204OyAxNl06IG04 eDE2IHwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBp OCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLQorLWltcGxfc2ltZF9h cnJheSEoW2kxNjsgOF06IGkxNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2 LCBpMTYpOworLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgOF06IHUxNng4IHwgdTE2LCB1MTYsIHUx NiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYpOworLWltcGxfc2ltZF9hcnJheSEoW20xNjsgOF06 IG0xNng4IHwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYpOworLQorLWlt cGxfc2ltZF9hcnJheSEoW2kzMjsgNF06IGkzMng0IHwgaTMyLCBpMzIsIGkzMiwgaTMyKTsKKy1p bXBsX3NpbWRfYXJyYXkhKFt1MzI7IDRdOiB1MzJ4NCB8IHUzMiwgdTMyLCB1MzIsIHUzMik7Cist aW1wbF9zaW1kX2FycmF5IShbZjMyOyA0XTogZjMyeDQgfCBmMzIsIGYzMiwgZjMyLCBmMzIpOwor LWltcGxfc2ltZF9hcnJheSEoW20zMjsgNF06IG0zMng0IHwgaTMyLCBpMzIsIGkzMiwgaTMyKTsK Ky0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDJdOiBpNjR4MiB8IGk2NCwgaTY0KTsKKy1pbXBs X3NpbWRfYXJyYXkhKFt1NjQ7IDJdOiB1NjR4MiB8IHU2NCwgdTY0KTsKKy1pbXBsX3NpbWRfYXJy YXkhKFtmNjQ7IDJdOiBmNjR4MiB8IGY2NCwgZjY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttNjQ7 IDJdOiBtNjR4MiB8IGk2NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAxXTog aTEyOHgxIHwgaTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEyODsgMV06IHUxMjh4MSB8IHUx MjgpOworLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDFdOiBtMTI4eDEgfCBpMTI4KTsKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2LnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vdjE2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy0vLyEgSW50 ZXJuYWwgMTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjptYXNrczo6KjsK Ky0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpODsgMl06IGk4eDIgfCBpOCwgaTgpOworLWltcGxfc2lt ZF9hcnJheSEoW3U4OyAyXTogdTh4MiB8IHU4LCB1OCk7CistaW1wbF9zaW1kX2FycmF5IShbbTg7 IDJdOiBtOHgyIHwgaTgsIGk4KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3YyNTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw3OCArMCwwIEBACistLy8hIEludGVybmFsIDI1Ni1iaXQgd2lkZSB2ZWN0b3Ig dHlwZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLSNbcnVzdGZtdDo6c2tpcF0KKy1p bXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTg7IDMyXTogaTh4MzIgfAorLSAgICBpOCwgaTgsIGk4 LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBp OCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4 LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLSNbcnVz dGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTg7IDMyXTogdTh4MzIgfAor LSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwg dTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAg IHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwg dTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbbTg7 IDMyXTogbTh4MzIgfAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgs CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4 LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0g ICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJy YXkhKAorLSAgICBbaTE2OyAxNl06IGkxNngxNiB8CistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK Ky0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAg IGkxNiwgaTE2LCBpMTYsIGkxNgorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9h cnJheSEoCistICAgIFt1MTY7IDE2XTogdTE2eDE2IHwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2 LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0g ICAgdTE2LCB1MTYsIHUxNiwgdTE2CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1k X2FycmF5ISgKKy0gICAgW20xNjsgMTZdOiBtMTZ4MTYgfAorLSAgICBpMTYsIGkxNiwgaTE2LCBp MTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAor LSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOworLQorLWltcGxfc2ltZF9hcnJheSEoW2kzMjsg OF06IGkzMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIpOworLWlt cGxfc2ltZF9hcnJheSEoW3UzMjsgOF06IHUzMng4IHwgdTMyLCB1MzIsIHUzMiwgdTMyLCB1MzIs IHUzMiwgdTMyLCB1MzIpOworLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgOF06IGYzMng4IHwgZjMy LCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIpOworLWltcGxfc2ltZF9hcnJheSEo W20zMjsgOF06IG0zMng4IHwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIp OworLQorLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgNF06IGk2NHg0IHwgaTY0LCBpNjQsIGk2NCwg aTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDRdOiB1NjR4NCB8IHU2NCwgdTY0LCB1NjQs IHU2NCk7CistaW1wbF9zaW1kX2FycmF5IShbZjY0OyA0XTogZjY0eDQgfCBmNjQsIGY2NCwgZjY0 LCBmNjQpOworLWltcGxfc2ltZF9hcnJheSEoW202NDsgNF06IG02NHg0IHwgaTY0LCBpNjQsIGk2 NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyAyXTogaTEyOHgyIHwgaTEyOCwg aTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEyODsgMl06IHUxMjh4MiB8IHUxMjgsIHUxMjgp OworLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDJdOiBtMTI4eDIgfCBpMTI4LCBpMTI4KTsKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vdjMyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMSArMCwwIEBACistLy8h IEludGVybmFsIDMyLWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6 Oio7CistCistaW1wbF9zaW1kX2FycmF5IShbaTg7IDRdOiBpOHg0IHwgaTgsIGk4LCBpOCwgaTgp OworLWltcGxfc2ltZF9hcnJheSEoW3U4OyA0XTogdTh4NCB8IHU4LCB1OCwgdTgsIHU4KTsKKy1p bXBsX3NpbWRfYXJyYXkhKFttODsgNF06IG04eDQgfCBpOCwgaTgsIGk4LCBpOCk7CistCistaW1w bF9zaW1kX2FycmF5IShbaTE2OyAyXTogaTE2eDIgfCBpMTYsIGkxNik7CistaW1wbF9zaW1kX2Fy cmF5IShbdTE2OyAyXTogdTE2eDIgfCB1MTYsIHUxNik7CistaW1wbF9zaW1kX2FycmF5IShbbTE2 OyAyXTogbTE2eDIgfCBpMTYsIGkxNik7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi92NTEyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMTQ1ICswLDAgQEAKKy0vLyEgSW50ZXJuYWwgNTEyLWJpdCB3aWRlIHZl Y3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCistI1tydXN0Zm10Ojpza2lw XQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpODsgNjRdOiBpOHg2NCB8CistICAgIGk4LCBp OCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCist ICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBp OCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0KKy0g ICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4 LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBp OCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4 CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3U4OyA2 NF06IHU4eDY0IHwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAor LSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwg dTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAg IHU4LCB1OCwgdTgsIHU4LAorLQorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1 OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAg dTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1 OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3Np bWRfYXJyYXkhKAorLSAgICBbbTg7IDY0XTogbTh4NjQgfAorLSAgICBpOCwgaTgsIGk4LCBpOCwK Ky0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAg ICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistCistICAgIGk4LCBpOCwg aTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAg IGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwg aTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOAorLSk7CistI1ty dXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFtpMTY7IDMyXTogaTE2eDMy IHwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCist ICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBp MTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBp MTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOworLSNbcnVzdGZtdDo6 c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTE2OyAzMl06IHUxNngzMiB8CistICAg IHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYs IHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYs IHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYs IHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCist aW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW20xNjsgMzJdOiBtMTZ4MzIgfAorLSAgICBpMTYsIGkx NiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkx NiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkx NiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCist ICAgIGkxNiwgaTE2LCBpMTYsIGkxNgorLSk7CistCistI1tydXN0Zm10Ojpza2lwXQorLWltcGxf c2ltZF9hcnJheSEoCistICAgIFtpMzI7IDE2XTogaTMyeDE2IHwKKy0gICAgaTMyLCBpMzIsIGkz MiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBpMzIsIGkz MiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1w bF9zaW1kX2FycmF5ISgKKy0gICAgW3UzMjsgMTZdOiB1MzJ4MTYgfAorLSAgICB1MzIsIHUzMiwg dTMyLCB1MzIsCistICAgIHUzMiwgdTMyLCB1MzIsIHUzMiwKKy0gICAgdTMyLCB1MzIsIHUzMiwg dTMyLAorLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1p bXBsX3NpbWRfYXJyYXkhKAorLSAgICBbZjMyOyAxNl06IGYzMngxNiB8CistICAgIGYzMiwgZjMy LCBmMzIsIGYzMiwKKy0gICAgZjMyLCBmMzIsIGYzMiwgZjMyLAorLSAgICBmMzIsIGYzMiwgZjMy LCBmMzIsCistICAgIGYzMiwgZjMyLCBmMzIsIGYzMgorLSk7CistI1tydXN0Zm10Ojpza2lwXQor LWltcGxfc2ltZF9hcnJheSEoCistICAgIFttMzI7IDE2XTogbTMyeDE2IHwKKy0gICAgaTMyLCBp MzIsIGkzMiwgaTMyLAorLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBp MzIsIGkzMiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCistKTsKKy0KKy1pbXBsX3NpbWRfYXJy YXkhKFtpNjQ7IDhdOiBpNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCwg aTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDhdOiB1NjR4OCB8IHU2NCwgdTY0LCB1NjQs IHU2NCwgdTY0LCB1NjQsIHU2NCwgdTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDhdOiBm NjR4OCB8IGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0KTsKKy1pbXBsX3Np bWRfYXJyYXkhKFttNjQ7IDhdOiBtNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQs IGk2NCwgaTY0KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyA0XTogaTEyOHg0IHwgaTEy OCwgaTEyOCwgaTEyOCwgaTEyOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTEyODsgNF06IHUxMjh4 NCB8IHUxMjgsIHUxMjgsIHUxMjgsIHUxMjgpOworLWltcGxfc2ltZF9hcnJheSEoW20xMjg7IDRd OiBtMTI4eDQgfCBpMTI4LCBpMTI4LCBpMTI4LCBpMTI4KTsKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwyMSArMCwwIEBACistLy8hIEludGVybmFsIDY0LWJpdCB3 aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCistaW1wbF9zaW1k X2FycmF5IShbaTg7IDhdOiBpOHg4IHwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsK Ky1pbXBsX3NpbWRfYXJyYXkhKFt1ODsgOF06IHU4eDggfCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4 LCB1OCwgdTgpOworLWltcGxfc2ltZF9hcnJheSEoW204OyA4XTogbTh4OCB8IGk4LCBpOCwgaTgs IGk4LCBpOCwgaTgsIGk4LCBpOCk7CistCistaW1wbF9zaW1kX2FycmF5IShbaTE2OyA0XTogaTE2 eDQgfCBpMTYsIGkxNiwgaTE2LCBpMTYpOworLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgNF06IHUx Nng0IHwgdTE2LCB1MTYsIHUxNiwgdTE2KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttMTY7IDRdOiBt MTZ4NCB8IGkxNiwgaTE2LCBpMTYsIGkxNik7CistCistaW1wbF9zaW1kX2FycmF5IShbaTMyOyAy XTogaTMyeDIgfCBpMzIsIGkzMik7CistaW1wbF9zaW1kX2FycmF5IShbdTMyOyAyXTogdTMyeDIg fCB1MzIsIHUzMik7CistaW1wbF9zaW1kX2FycmF5IShbZjMyOyAyXTogZjMyeDIgfCBmMzIsIGYz Mik7CistaW1wbF9zaW1kX2FycmF5IShbbTMyOyAyXTogbTMyeDIgfCBpMzIsIGkzMik7CistCist aW1wbF9zaW1kX2FycmF5IShbaTY0OyAxXTogaTY0eDEgfCBpNjQpOworLWltcGxfc2ltZF9hcnJh eSEoW3U2NDsgMV06IHU2NHgxIHwgdTY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDFdOiBm NjR4MSB8IGY2NCk7CistaW1wbF9zaW1kX2FycmF5IShbbTY0OyAxXTogbTY0eDEgfCBpNjQpOwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlB0 ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlB0ci5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3ZQdHIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM1ICswLDAgQEAK Ky0vLyEgUG9pbnRlciB2ZWN0b3IgdHlwZXMKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9zaW1kX3B0 ciB7CistICAgIChbJHB0cl90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICR0dXBsZV9pZDppZGVu dCB8ICR0eTppZGVudAorLSAgICAgfCAkKCR0eXM6dHkpLCopID0+IHsKKy0gICAgICAgICNbZGVy aXZlKENvcHksIENsb25lKV0KKy0gICAgICAgICNbcmVwcihzaW1kKV0KKy0gICAgICAgIHB1YiBz dHJ1Y3QgJHR1cGxlX2lkPCR0eT4oJChwdWIoY3JhdGUpICR0eXMpLCopOworLSAgICAgICAgLy9e Xl5eXl5eIGxlYWtlZCB0aHJvdWdoIFNpbWRBcnJheQorLQorLSAgICAgICAgaW1wbDwkdHk+IGNy YXRlOjpzZWFsZWQ6OlNlYWwgZm9yIFskcHRyX3R5OyAkZWxlbV9jb3VudF0ge30KKy0gICAgICAg IGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVkOjpTaW1kQXJyYXkgZm9yIFskcHRyX3R5OyAkZWxlbV9j b3VudF0geworLSAgICAgICAgICAgIHR5cGUgVHVwbGUgPSAkdHVwbGVfaWQ8JHB0cl90eT47Cist ICAgICAgICAgICAgdHlwZSBUID0gJHB0cl90eTsKKy0gICAgICAgICAgICBjb25zdCBOOiB1c2l6 ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTlQgPSBbdTMyOyAkZWxlbV9jb3Vu dF07CistICAgICAgICB9CistCistICAgICAgICBpbXBsPCR0eT4gY3JhdGU6OnNlYWxlZDo6U2Vh bCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHt9CistICAgICAgICBpbXBsPCR0eT4gY3JhdGU6OnNl YWxlZDo6U2ltZCBmb3IgJHR1cGxlX2lkPCRwdHJfdHk+IHsKKy0gICAgICAgICAgICB0eXBlIEVs ZW1lbnQgPSAkcHRyX3R5OworLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVt X2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRd OworLSAgICAgICAgfQorLQorLSAgICB9CistfQorLQorLWltcGxfc2ltZF9wdHIhKFsqY29uc3Qg VDsgMl06IGNwdHJ4MiB8IFQgfCBULCBUKTsKKy1pbXBsX3NpbWRfcHRyIShbKmNvbnN0IFQ7IDRd OiBjcHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7CistaW1wbF9zaW1kX3B0ciEoWypjb25zdCBUOyA4 XTogY3B0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQpOworLQorLWltcGxfc2ltZF9w dHIhKFsqbXV0IFQ7IDJdOiBtcHRyeDIgfCBUIHwgVCwgVCk7CistaW1wbF9zaW1kX3B0ciEoWypt dXQgVDsgNF06IG1wdHJ4NCB8IFQgfCBULCBULCBULCBUKTsKKy1pbXBsX3NpbWRfcHRyIShbKm11 dCBUOyA4XTogbXB0cng4IHwgVCB8IFQsIFQsIFQsIFQsIFQsIFQsIFQsIFQpOworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNpemUucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vdlNpemUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICswLDAgQEAKKy0vLyEg VmVjdG9yIHR5cGVzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50cworLQorLXVzZSBjcmF0ZTo6 Y29kZWdlbjo6cG9pbnRlcl9zaXplZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307CistdXNlIGNyYXRl OjptYXNrczo6KjsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgMl06IGlzaXpleDIgfCBp c2l6ZV8sIGlzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDJdOiB1c2l6ZXgyIHwg dXNpemVfLCB1c2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW21zaXplOyAyXTogbXNpemV4MiB8 IGlzaXplXywgaXNpemVfKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgNF06IGlzaXpl eDQgfCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEo W3VzaXplOyA0XTogdXNpemV4NCB8IHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXyk7Cist aW1wbF9zaW1kX2FycmF5IShbbXNpemU7IDRdOiBtc2l6ZXg0IHwgaXNpemVfLCBpc2l6ZV8sIGlz aXplXywgaXNpemVfKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgOF06IGlzaXpleDgg fCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXyk7CistaW1wbF9zaW1kX2FycmF5IShbdXNpemU7IDhdOiB1c2l6ZXg4IHwgdXNpemVf LCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8p OworLWltcGxfc2ltZF9hcnJheSEoW21zaXplOyA4XTogbXNpemV4OCB8IGlzaXplXywgaXNpemVf LCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbGliLnJzCisrKysgL2Rl di9udWxsCitAQCAtMSwzNDggKzAsMCBAQAorLS8vISAjIFBvcnRhYmxlIHBhY2tlZCBTSU1EIHZl Y3RvcnMKKy0vLyEKKy0vLyEgVGhpcyBjcmF0ZSBpcyBwcm9wb3NlZCBmb3Igc3RhYmlsaXphdGlv biBhcyBgc3RkOjpwYWNrZWRfc2ltZGAgaW4gW1JGQzIzNjY6CistLy8hIGBzdGQ6OnNpbWRgXSho dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yMzY2KSAuCistLy8hCistLy8h IFRoZSBleGFtcGxlcyBhdmFpbGFibGUgaW4gdGhlCistLy8hIFtgZXhhbXBsZXMvYF0oaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4 YW1wbGVzKQorLS8vISBzdWItZGlyZWN0b3J5IG9mIHRoZSBjcmF0ZSBzaG93Y2FzZSBob3cgdG8g dXNlIHRoZSBsaWJyYXJ5IGluIHByYWN0aWNlLgorLS8vIQorLS8vISAjIyBUYWJsZSBvZiBjb250 ZW50cworLS8vIQorLS8vISAtIFtJbnRyb2R1Y3Rpb25dKCNpbnRyb2R1Y3Rpb24pCistLy8hIC0g W1ZlY3RvciB0eXBlc10oI3ZlY3Rvci10eXBlcykKKy0vLyEgLSBbQ29uZGl0aW9uYWwgb3BlcmF0 aW9uc10oI2NvbmRpdGlvbmFsLW9wZXJhdGlvbnMpCistLy8hIC0gW0NvbnZlcnNpb25zXSgjY29u dmVyc2lvbnMpCistLy8hIC0gW0hhcmR3YXJlIEZlYXR1cmVzXSgjaGFyZHdhcmUtZmVhdHVyZXMp CistLy8hIC0gW1BlcmZvcm1hbmNlIGd1aWRlXShodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5Lmdp dGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlLykKKy0vLyEKKy0vLyEgIyMgSW50cm9kdWN0 aW9uCistLy8hCistLy8hIFRoaXMgY3JhdGUgZXhwb3J0cyBbYFNpbWQ8W1Q7IE5dPmBdW2BTaW1k YF06IGEgcGFja2VkIHZlY3RvciBvZiBgTmAKKy0vLyEgZWxlbWVudHMgb2YgdHlwZSBgVGAgYXMg d2VsbCBhcyBtYW55IHR5cGUgYWxpYXNlcyBmb3IgdGhpcyB0eXBlOiBmb3IKKy0vLyEgZXhhbXBs ZSwgW2BmMzJ4NGBdLCB3aGljaCBpcyBqdXN0IGFuIGFsaWFzIGZvciBgU2ltZDxbZjMyOyA0XT5g LgorLS8vIQorLS8vISBUaGUgb3BlcmF0aW9ucyBvbiBwYWNrZWQgdmVjdG9ycyBhcmUsIGJ5IGRl ZmF1bHQsICJ2ZXJ0aWNhbCIsIHRoYXQgaXMsIHRoZXkKKy0vLyEgYXJlIGFwcGxpZWQgdG8gZWFj aCB2ZWN0b3IgbGFuZSBpbiBpc29sYXRpb24gb2YgdGhlIG90aGVyczoKKy0vLyEKKy0vLyEgYGBg CistLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkzMng0OjpuZXcoMSwg MiwgMywgNCk7CistLy8hIGxldCBiID0gaTMyeDQ6Om5ldyg1LCA2LCA3LCA4KTsKKy0vLyEgYXNz ZXJ0X2VxIShhICsgYiwgaTMyeDQ6Om5ldyg2LCA4LCAxMCwgMTIpKTsKKy0vLyEgYGBgCistLy8h CistLy8hIE1hbnkgImhvcml6b250YWwiIG9wZXJhdGlvbnMgYXJlIGFsc28gcHJvdmlkZWQ6Cist Ly8hCistLy8hIGBgYAorLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgIyBsZXQgYSA9 IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7CistLy8hIGFzc2VydF9lcSEoYS53cmFwcGluZ19zdW0o KSwgMTApOworLS8vISBgYGAKKy0vLyEKKy0vLyEgSW4gdmlydHVhbGx5IGFsbCBhcmNoaXRlY3R1 cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJlIGZhc3QsIHdoaWxlCistLy8hIGhvcml6b250YWwg b3BlcmF0aW9ucyBhcmUsIGJ5IGNvbXBhcmlzb24sIG11Y2ggc2xvd2VyLiBUaGF0IGlzLCB0aGUK Ky0vLyEgbW9zdCBwb3J0YWJseS1lZmZpY2llbnQgd2F5IG9mIHBlcmZvcm1pbmcgYSByZWR1Y3Rp b24gb3ZlciBhIHNsaWNlCistLy8hIGlzIHRvIGNvbGxlY3QgdGhlIHJlc3VsdHMgaW50byBhIHZl Y3RvciB1c2luZyB2ZXJ0aWNhbCBvcGVyYXRpb25zLAorLS8vISBhbmQgcGVyZm9ybWluZyBhIHNp bmdsZSBob3Jpem9udGFsIG9wZXJhdGlvbiBhdCB0aGUgZW5kOgorLS8vIQorLS8vISBgYGAKKy0v LyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7CistLy8hIGZuIHJlZHVjZSh4OiAmW2kzMl0pIC0+IGkz MiB7CistLy8hICAgICBhc3NlcnRfZXEhKHgubGVuKCkgJSA0LCAwKTsKKy0vLyEgICAgIGxldCBt dXQgc3VtID0gaTMyeDQ6OnNwbGF0KDApOyAvLyBbMCwgMCwgMCwgMF0KKy0vLyEgICAgIGZvciBp IGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsKKy0vLyEgICAgICAgICBzdW0gKz0gaTMyeDQ6 OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pOworLS8vISAgICAgfQorLS8vISAgICAgc3Vt LndyYXBwaW5nX3N1bSgpCistLy8hIH0KKy0vLyEKKy0vLyEgbGV0IHggPSBbMCwgMSwgMiwgMywg NCwgNSwgNiwgN107CistLy8hIGFzc2VydF9lcSEocmVkdWNlKCZ4KSwgMjgpOworLS8vISBgYGAK Ky0vLyEKKy0vLyEgIyMgVmVjdG9yIHR5cGVzCistLy8hCistLy8hIFRoZSB2ZWN0b3IgdHlwZSBh bGlhc2VzIGFyZSBuYW1lZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBzY2hlbWU6CistLy8h CistLy8hID4gYHtlbGVtZW50X3R5cGV9eHtudW1iZXJfb2ZfbGFuZXN9ID09IFNpbWQ8W2VsZW1l bnRfdHlwZTsKKy0vLyEgbnVtYmVyX29mX2xhbmVzXT5gCistLy8hCistLy8hIHdoZXJlIHRoZSBm b2xsb3dpbmcgZWxlbWVudCB0eXBlcyBhcmUgc3VwcG9ydGVkOgorLS8vIQorLS8vISAqIGBpe2Vs ZW1lbnRfd2lkdGh9YDogc2lnbmVkIGludGVnZXIKKy0vLyEgKiBgdXtlbGVtZW50X3dpZHRofWA6 IHVuc2lnbmVkIGludGVnZXIKKy0vLyEgKiBgZntlbGVtZW50X3dpZHRofWA6IGZsb2F0CistLy8h ICogYG17ZWxlbWVudF93aWR0aH1gOiBtYXNrIChzZWUgYmVsb3cpCistLy8hICogYCp7Y29uc3Qs bXV0fSBUYDogYGNvbnN0YCBhbmQgYG11dGAgcG9pbnRlcnMKKy0vLyEKKy0vLyEgIyMgQmFzaWMg b3BlcmF0aW9ucworLS8vIQorLS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Cist Ly8hIC8vIFNldHMgYWxsIGVsZW1lbnRzIHRvIGAwYDoKKy0vLyEgbGV0IGEgPSBpMzJ4NDo6c3Bs YXQoMCk7CistLy8hCistLy8hIC8vIFJlYWRzIGEgdmVjdG9yIGZyb20gYSBzbGljZToKKy0vLyEg bGV0IG11dCBhcnIgPSBbMCwgMCwgMCwgMSwgMiwgMywgNCwgNV07CistLy8hIGxldCBiID0gaTMy eDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZhcnIpOworLS8vIQorLS8vISAvLyBSZWFkcyB0aGUg NC10aCBlbGVtZW50IG9mIGEgdmVjdG9yOgorLS8vISBhc3NlcnRfZXEhKGIuZXh0cmFjdCgzKSwg MSk7CistLy8hCistLy8hIC8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSA0LXRoIGVs ZW1lbnQgaXMgcmVwbGFjZWQgd2l0aCBgMWA6CistLy8hIGxldCBhID0gYS5yZXBsYWNlKDMsIDEp OworLS8vISBhc3NlcnRfZXEhKGEsIGIpOworLS8vIQorLS8vISAvLyBXcml0ZXMgYSB2ZWN0b3Ig dG8gYSBzbGljZToKKy0vLyEgbGV0IGEgPSBhLnJlcGxhY2UoMiwgMSk7CistLy8hIGEud3JpdGVf dG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgYXJyWzQuLl0pOworLS8vISBhc3NlcnRfZXEhKGFyciwg WzAsIDAsIDAsIDEsIDAsIDAsIDEsIDFdKTsKKy0vLyEgYGBgCistLy8hCistLy8hICMjIENvbmRp dGlvbmFsIG9wZXJhdGlvbnMKKy0vLyEKKy0vLyEgT25lIG9mdGVuIG5lZWRzIHRvIHBlcmZvcm0g YW4gb3BlcmF0aW9uIG9uIHNvbWUgbGFuZXMgb2YgdGhlIHZlY3Rvci4gVmVjdG9yCistLy8hIG1h c2tzLCBsaWtlIGBtMzJ4NGAsIGFsbG93IHNlbGVjdGluZyBvbiB3aGljaCB2ZWN0b3IgbGFuZXMg YW4gb3BlcmF0aW9uIGlzCistLy8hIHRvIGJlIHBlcmZvcm1lZDoKKy0vLyEKKy0vLyEgYGBgCist Ly8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkzMng0OjpuZXcoMSwgMSwg MiwgMik7CistLy8hCistLy8hIC8vIEFkZCBgMWAgdG8gdGhlIGZpcnN0IHR3byBsYW5lcyBvZiB0 aGUgdmVjdG9yLgorLS8vISBsZXQgbSA9IG0xNng0OjpuZXcodHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZh bHNlKTsKKy0vLyEgbGV0IGEgPSBtLnNlbGVjdChhICsgMSwgYSk7CistLy8hIGFzc2VydF9lcSEo YSwgaTMyeDQ6OnNwbGF0KDIpKTsKKy0vLyEgYGBgCistLy8hCistLy8hIFRoZSBlbGVtZW50cyBv ZiBhIHZlY3RvciBtYXNrIGFyZSBlaXRoZXIgYHRydWVgIG9yIGBmYWxzZWAuIEhlcmUgYHRydWVg CistLy8hIG1lYW5zIHRoYXQgYSBsYW5lIGlzICJzZWxlY3RlZCIsIHdoaWxlIGBmYWxzZWAgbWVh bnMgdGhhdCBhIGxhbmUgaXMgbm90CistLy8hIHNlbGVjdGVkLgorLS8vIQorLS8vISBBbGwgdmVj dG9yIG1hc2tzIGltcGxlbWVudCBhIGBtYXNrLnNlbGVjdChhOiBULCBiOiBUKSAtPiBUYCBtZXRo b2QgdGhhdAorLS8vISB3b3JrcyBvbiBhbGwgdmVjdG9ycyB0aGF0IGhhdmUgdGhlIHNhbWUgbnVt YmVyIG9mIGxhbmVzIGFzIHRoZSBtYXNrLiBUaGUKKy0vLyEgcmVzdWx0aW5nIHZlY3RvciBjb250 YWlucyB0aGUgZWxlbWVudHMgb2YgYGFgIGZvciB0aG9zZSBsYW5lcyBmb3Igd2hpY2ggdGhlCist Ly8hIG1hc2sgaXMgYHRydWVgLCBhbmQgdGhlIGVsZW1lbnRzIG9mIGBiYCBvdGhlcndpc2UuCist Ly8hCistLy8hIFRoZSBleGFtcGxlIGNvbnN0cnVjdHMgYSBtYXNrIHdpdGggdGhlIGZpcnN0IHR3 byBsYW5lcyBzZXQgdG8gYHRydWVgIGFuZAorLS8vISB0aGUgbGFzdCB0d28gbGFuZXMgc2V0IHRv IGBmYWxzZWAuIFRoaXMgc2VsZWN0cyB0aGUgZmlyc3QgdHdvIGxhbmVzIG9mIGBhICsKKy0vLyEg MWAgYW5kIHRoZSBsYXN0IHR3byBsYW5lcyBvZiBgYWAsIHByb2R1Y2luZyBhIHZlY3RvciB3aGVy ZSB0aGUgZmlyc3QgdHdvCistLy8hIGxhbmVzIGhhdmUgYmVlbiBpbmNyZW1lbnRlZCBieSBgMWAu CistLy8hCistLy8hID4gbm90ZTogbWFzayBgc2VsZWN0YCBjYW4gYmUgdXNlZCBvbiB2ZWN0b3Ig dHlwZXMgdGhhdCBoYXZlIHRoZSBzYW1lIG51bWJlcgorLS8vISA+IG9mIGxhbmVzIGFzIHRoZSBt YXNrLiBUaGUgZXhhbXBsZSBzaG93cyB0aGlzIGJ5IHVzaW5nIFtgbTE2eDRgXSBpbnN0ZWFkCist Ly8hID4gb2YgW2BtMzJ4NGBdLiBJdCBpcyBfdHlwaWNhbGx5XyBtb3JlIHBlcmZvcm1hbnQgdG8g dXNlIGEgbWFzayBlbGVtZW50CistLy8hID4gd2lkdGggZXF1YWwgdG8gdGhlIGVsZW1lbnQgd2lk dGggb2YgdGhlIHZlY3RvcnMgYmVpbmcgb3BlcmF0ZWQgdXBvbi4KKy0vLyEgPiBUaGlzIGlzLCBo b3dldmVyLCBub3QgdHJ1ZSBmb3IgNTEyLWJpdCB3aWRlIHZlY3RvcnMgd2hlbiB0YXJnZXRpbmcK Ky0vLyEgPiBBVlgtNTEyLCB3aGVyZSB0aGUgbW9zdCBlZmZpY2llbnQgbWFza3MgdXNlIG9ubHkg MS1iaXQgcGVyIGVsZW1lbnQuCistLy8hCistLy8hIEFsbCB2ZXJ0aWNhbCBjb21wYXJpc29uIG9w ZXJhdGlvbnMgcmV0dXJucyBtYXNrczoKKy0vLyEKKy0vLyEgYGBgCistLy8hICMgdXNlIHBhY2tl ZF9zaW1kOjoqOworLS8vISBsZXQgYSA9IGkzMng0OjpuZXcoMSwgMSwgMywgMyk7CistLy8hIGxl dCBiID0gaTMyeDQ6Om5ldygyLCAyLCAwLCAwKTsKKy0vLyEKKy0vLyEgLy8gZ2U6ID49IChHcmVh dGVyIEVlcXVhbDsgc2VlIGFsc28gbHQsIGxlLCBndCwgZXEsIG5lKS4KKy0vLyEgbGV0IG0gPSBh LmdlKGkzMng0OjpzcGxhdCgyKSk7CistLy8hCistLy8hIGlmIG0uYW55KCkgeworLS8vISAgICAg Ly8gYWxsIC8gYW55IC8gbm9uZSBhbGxvdyBjb2hlcmVudCBjb250cm9sIGZsb3cKKy0vLyEgICAg IGxldCBkID0gbS5zZWxlY3QoYSwgYik7CistLy8hICAgICBhc3NlcnRfZXEhKGQsIGkzMng0Ojpu ZXcoMiwgMiwgMywgMykpOworLS8vISB9CistLy8hIGBgYAorLS8vIQorLS8vISAjIyBDb252ZXJz aW9ucworLS8vIQorLS8vISAqICoqbG9zc2xlc3Mgd2lkZW5pbmcgY29udmVyc2lvbnMqKjogW2BG cm9tYF0vW2BJbnRvYF0gYXJlIGltcGxlbWVudGVkIGZvcgorLS8vISAgIHZlY3RvcnMgd2l0aCB0 aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMgd2hlbiB0aGUgY29udmVyc2lvbiBpcyB2YWx1ZQorLS8v ISBwcmVzZXJ2aW5nICAgKHNhbWUgYXMgaW4gYHN0ZGApLgorLS8vIQorLS8vISAqICoqc2FmZSBi aXR3aXNlIGNvbnZlcnNpb25zKio6IFRoZSBjYXJnbyBmZWF0dXJlIGBpbnRvX2JpdHNgIHByb3Zp ZGVzIHRoZQorLS8vISAgIGBJbnRvQml0cy9Gcm9tQml0c2AgdHJhaXRzIChgeC5pbnRvX2JpdHMo KWApLiBUaGVzZSBwZXJmb3JtIHNhZmUgYml0d2lzZQorLS8vISAgIGB0cmFuc211dGVgcyB3aGVu IGFsbCBiaXQgcGF0dGVybnMgb2YgdGhlIHNvdXJjZSB0eXBlIGFyZSB2YWxpZCBiaXQKKy0vLyEg ICBwYXR0ZXJucyBvZiB0aGUgdGFyZ2V0IHR5cGUgYW5kIGFyZSBhbHNvIGltcGxlbWVudGVkIGZv ciB0aGUKKy0vLyEgICBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdmVjdG9yIHR5cGVzIG9mIGBzdGQ6 OmFyY2hgLiBGb3IgZXhhbXBsZSwgYGxldCB4OgorLS8vISAgIHU4eDggPSBtOHg4OjpzcGxhdCh0 cnVlKS5pbnRvX2JpdHMoKTtgIGlzIHByb3ZpZGVkIGJlY2F1c2UgYWxsIGBtOHg4YCBiaXQKKy0v LyEgICBwYXR0ZXJucyBhcmUgdmFsaWQgYHU4eDhgIGJpdCBwYXR0ZXJucy4gSG93ZXZlciwgdGhl IG9wcG9zaXRlIGlzIG5vdAorLS8vISB0cnVlLCAgIG5vdCBhbGwgYHU4eDhgIGJpdCBwYXR0ZXJu cyBhcmUgdmFsaWQgYG04eDhgIGJpdC1wYXR0ZXJucywgc28gdGhpcworLS8vISAgIG9wZXJhdGlv biBjYW5ub3QgYmUgcGVyZm9ybWVkIHNhZmVseSB1c2luZyBgeC5pbnRvX2JpdHMoKWA7IG9uZSBu ZWVkcyB0bworLS8vISAgIHVzZSBgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHgpIH1g IGZvciB0aGF0LCBtYWtpbmcgc3VyZSB0aGF0IHRoZQorLS8vISAgIHZhbHVlIGluIHRoZSBgdTh4 OGAgaXMgYSB2YWxpZCBiaXQtcGF0dGVybiBvZiBgbTh4OGAuCistLy8hCistLy8hICogKipudW1l cmljIGNhc3RzKiogKGBhc2ApOiBhcmUgcGVyZm9ybWVkIHVzaW5nIFtgRnJvbUNhc3RgXS9bYENh c3RgXQorLS8vISAoYHguY2FzdCgpYCksIGp1c3QgbGlrZSBgYXNgOgorLS8vIQorLS8vISAgICog Y2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBlcyBoYXZlIHRoZSBzYW1lIHNp emUgKGUuZy4KKy0vLyEgYGkzMnhOYCAgICAgLT4gYHUzMnhOYCkgaXMgYSAqKm5vLW9wKiosCist Ly8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0byBhIHNtYWxsZXIg aW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+CistLy8hIGB1OHhOYCkgICAgIHdpbGwgKip0cnVuY2F0 ZSoqLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBpbnRlZ2VyIHRvIGEg bGFyZ2VyIGludGVnZXIgICAgIChlLmcuIGB1OHhOYCAtPgorLS8vISAgICAgYHUzMnhOYCkgd2ls bDoKKy0vLyEgICAgICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5zaWdu ZWQsIG9yCistLy8hICAgICAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHNp Z25lZCwKKy0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIg d2lsbCAqKnJvdW5kIHRoZSBmbG9hdCB0b3dhcmRzCistLy8hIHplcm8qKiwKKy0vLyEKKy0vLyEg ICAqIGNhc3RpbmcgZnJvbSBhbiBpbnRlZ2VyIHRvIGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxv YXRpbmcgcG9pbnQKKy0vLyEgICAgIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlZ2VyLCAqKnJv dW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLAorLS8vIQorLS8vISAgICogY2FzdGlu ZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRgIGlzIHBlcmZlY3QgYW5kIGxvc3NsZXNzLAorLS8v IQorLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGBmNjRgIHRvIGFuIGBmMzJgICoqcm91bmRzIHRv IG5lYXJlc3QsIHRpZXMgdG8gZXZlbioqLgorLS8vIQorLS8vISAgIE51bWVyaWMgY2FzdHMgYXJl IG5vdCB2ZXJ5ICJwcmVjaXNlIjogc29tZXRpbWVzIGxvc3N5LCBzb21ldGltZXMgdmFsdWUKKy0v LyEgICBwcmVzZXJ2aW5nLCBldGMuCistLy8hCistLy8hICMjIEhhcmR3YXJlIEZlYXR1cmVzCist Ly8hCistLy8hIFRoaXMgY3JhdGUgY2FuIHVzZSBkaWZmZXJlbnQgaGFyZHdhcmUgZmVhdHVyZXMg YmFzZWQgb24geW91ciBjb25maWd1cmVkCistLy8hIGBSVVNURkxBR1NgLiBGb3IgZXhhbXBsZSwg d2l0aCBubyBjb25maWd1cmVkIGBSVVNURkxBR1NgLCBgdTY0eDhgIG9uCistLy8hIHg4Nl82NCB3 aWxsIHVzZSBTU0UyIG9wZXJhdGlvbnMgbGlrZSBgUENNUEVRRGAuIElmIHlvdSBjb25maWd1cmUK Ky0vLyEgYFJVU1RGTEFHUz0nLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIsK2F2eCdgIG9uIHN1cHBv cnRlZCB4ODZfNjQgaGFyZHdhcmUKKy0vLyEgdGhlIHNhbWUgYHU2NHg4YCBtYXkgdXNlIHdpZGVy IEFWWDIgb3BlcmF0aW9ucyBsaWtlIGBWUENNUEVRUWAuIEl0IGlzCistLy8hIGltcG9ydGFudCBm b3IgcGVyZm9ybWFuY2UgYW5kIGZvciBoYXJkd2FyZSBzdXBwb3J0IHJlcXVpcmVtZW50cyB0aGF0 CistLy8hIHlvdSBjaG9vc2UgYW4gYXBwcm9wcmlhdGUgc2V0IG9mIGB0YXJnZXQtZmVhdHVyZWAg YW5kIGB0YXJnZXQtY3B1YAorLS8vISBvcHRpb25zIGR1cmluZyBidWlsZHMuIEZvciBtb3JlIGlu Zm9ybWF0aW9uLCBzZWUgdGhlIFtQZXJmb3JtYW5jZQorLS8vISBndWlkZV0oaHR0cHM6Ly9ydXN0 LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8pCistCistIyFb ZmVhdHVyZSgKKy0gICAgYWR0X2NvbnN0X3BhcmFtcywKKy0gICAgcmVwcl9zaW1kLAorLSAgICBy dXN0Y19hdHRycywKKy0gICAgcGxhdGZvcm1faW50cmluc2ljcywKKy0gICAgc3Rkc2ltZCwKKy0g ICAgYXJtX3RhcmdldF9mZWF0dXJlLAorLSAgICBsaW5rX2xsdm1faW50cmluc2ljcywKKy0gICAg Y29yZV9pbnRyaW5zaWNzLAorLSAgICBzdG10X2V4cHJfYXR0cmlidXRlcywKKy0gICAgY3VzdG9t X2lubmVyX2F0dHJpYnV0ZXMsCistKV0KKy0jIVthbGxvdyhub25fY2FtZWxfY2FzZV90eXBlcywg bm9uX3NuYWtlX2Nhc2UsCistICAgICAgICAvLyBGSVhNRTogdGhlc2UgdHlwZXMgYXJlIHVuc291 bmQgaW4gQyBGRkkgYWxyZWFkeQorLSAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvcnVzdC9pc3N1ZXMvNTMzNDYKKy0gICAgICAgIGltcHJvcGVyX2N0eXBlc19kZWZp bml0aW9ucywKKy0gICAgICAgIGluY29tcGxldGVfZmVhdHVyZXMsCistICAgICAgICBjbGlwcHk6 OmNhc3RfcG9zc2libGVfdHJ1bmNhdGlvbiwKKy0gICAgICAgIGNsaXBweTo6Y2FzdF9sb3NzbGVz cywKKy0gICAgICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV93cmFwLAorLSAgICAgICAgY2xpcHB5 OjpjYXN0X3ByZWNpc2lvbl9sb3NzLAorLSAgICAgICAgLy8gVE9ETzogbWFudWFsbHkgYWRkIHRo ZSBgI1ttdXN0X3VzZV1gIGF0dHJpYnV0ZSB3aGVyZSBhcHByb3ByaWF0ZQorLSAgICAgICAgY2xp cHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCistICAgICAgICAvLyBUaGlzIGxpbnQgaXMgY3VycmVu dGx5IGJyb2tlbiBmb3IgZ2VuZXJpYyBjb2RlCistICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9ydXN0LWNsaXBweS9pc3N1ZXMvMzQxMAorLSAgICAgICAgY2xpcHB5 Ojp1c2Vfc2VsZiwKKy0gICAgICAgIGNsaXBweTo6d3Jvbmdfc2VsZl9jb252ZW50aW9uLAorLSAg ICAgICAgY2xpcHB5Ojpmcm9tX292ZXJfaW50bywKKy0pXQorLSMhW2NmZ19hdHRyKHRlc3QsIGZl YXR1cmUoaGFzaG1hcF9pbnRlcm5hbHMpKV0KKy0jIVtjZmdfYXR0cihkb2NfY2ZnLCBmZWF0dXJl KGRvY19jZmcpKV0KKy0jIVtkZW55KHJ1c3RfMjAxOF9pZGlvbXMsIGNsaXBweTo6bWlzc2luZ19p bmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0jIVtub19zdGRdCistCistdXNlIGNmZ19pZjo6Y2Zn X2lmOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyhmZWF0dXJlID0gImNvcmVfYXJjaCIp XSB7CistICAgICAgICAjW2FsbG93KHVudXNlZF9pbXBvcnRzKV0KKy0gICAgICAgIHVzZSBjb3Jl X2FyY2ggYXMgYXJjaDsKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgICNbYWxsb3codW51c2VkX2lt cG9ydHMpXQorLSAgICAgICAgdXNlIGNvcmU6OmFyY2g7CistICAgIH0KKy19CistCistI1tjZmco YWxsKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHRlc3QpKV0KKy11c2Ugd2FzbV9iaW5kZ2VuX3Rl c3Q6Oio7CistCistI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCistdXNlIGNvcmU6OnsKKy0gICAg LyogYXJjaCAoaGFuZGxlZCBhYm92ZSksICovIGNtcCwgZjMyLCBmNjQsIGZtdCwgaGFzaCwgaGlu dCwgaTEyOCwgaTE2LCBpMzIsIGk2NCwgaTgsIGludHJpbnNpY3MsCistICAgIGlzaXplLCBpdGVy LCBtYXJrZXIsIG1lbSwgb3BzLCBwdHIsIHNsaWNlLCB1MTI4LCB1MTYsIHUzMiwgdTY0LCB1OCwg dXNpemUsCistfTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdGVzdGluZzsKKy0jW21hY3JvX3Vz ZV0KKy1tb2QgYXBpOworLW1vZCBjb2RlZ2VuOworLW1vZCBzZWFsZWQ7CistCistcHViIHVzZSBj cmF0ZTo6c2VhbGVkOjp7TWFzaywgU2h1ZmZsZSwgU2ltZCBhcyBTaW1kVmVjdG9yLCBTaW1kQXJy YXl9OworLQorLS8vLyBQYWNrZWQgU0lNRCB2ZWN0b3IgdHlwZS4KKy0vLy8KKy0vLy8gIyBFeGFt cGxlcworLS8vLworLS8vLyBgYGAKKy0vLy8gIyB1c2UgcGFja2VkX3NpbWQ6OlNpbWQ7CistLy8v IGxldCB2ID0gU2ltZDo6PFtpMzI7IDRdPjo6bmV3KDAsIDEsIDIsIDMpOworLS8vLyBhc3NlcnRf ZXEhKHYuZXh0cmFjdCgyKSwgMik7CistLy8vIGBgYAorLSNbcmVwcih0cmFuc3BhcmVudCldCist I1tkZXJpdmUoQ29weSwgQ2xvbmUpXQorLXB1YiBzdHJ1Y3QgU2ltZDxBOiBzZWFsZWQ6OlNpbWRB cnJheT4oCistICAgIC8vIEZJWE1FOiB0aGlzIHR5cGUgc2hvdWxkIGJlIHByaXZhdGUsCistICAg IC8vIGJ1dCBpdCBjdXJyZW50bHkgbXVzdCBiZSBwdWJsaWMgZm9yIHRoZQorLSAgICAvLyBgc2h1 ZmZsZSFgIG1hY3JvIHRvIHdvcms6IGl0IG5lZWRzIHRvCistICAgIC8vIGFjY2VzcyB0aGUgaW50 ZXJuYWwgYHJlcHIoc2ltZClgIHR5cGUKKy0gICAgLy8gdG8gY2FsbCB0aGUgc2h1ZmZsZSBpbnRy aW5zaWNzLgorLSAgICAjW2RvYyhoaWRkZW4pXSBwdWIgPEEgYXMgc2VhbGVkOjpTaW1kQXJyYXk+ OjpUdXBsZSwKKy0pOworLQorLWltcGw8QTogc2VhbGVkOjpTaW1kQXJyYXk+IHNlYWxlZDo6U2Vh bCBmb3IgU2ltZDxBPiB7fQorLQorLS8vLyBXcmFwcGVyIG92ZXIgYFRgIGltcGxlbWVudGluZyBh IGxleGljb3JhcGhpY2FsIG9yZGVyIHZpYSB0aGUgYFBhcnRpYWxPcmRgCistLy8vIGFuZC9vciBg T3JkYCB0cmFpdHMuCistI1tyZXByKHRyYW5zcGFyZW50KV0KKy0jW2Rlcml2ZShDb3B5LCBDbG9u ZSwgRGVidWcpXQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRl bXMpXQorLXB1YiBzdHJ1Y3QgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KFQpOworLQorLW1v ZCBtYXNrczsKKy1wdWIgdXNlIHNlbGY6Om1hc2tzOjoqOworLQorLW1vZCB2MTY7CistcHViIHVz ZSBzZWxmOjp2MTY6Oio7CistCistbW9kIHYzMjsKKy1wdWIgdXNlIHNlbGY6OnYzMjo6KjsKKy0K Ky1tb2QgdjY0OworLXB1YiB1c2Ugc2VsZjo6djY0OjoqOworLQorLW1vZCB2MTI4OworLXB1YiB1 c2Ugc2VsZjo6djEyODo6KjsKKy0KKy1tb2QgdjI1NjsKKy1wdWIgdXNlIHNlbGY6OnYyNTY6Oio7 CistCistbW9kIHY1MTI7CistcHViIHVzZSBzZWxmOjp2NTEyOjoqOworLQorLW1vZCB2U2l6ZTsK Ky1wdWIgdXNlIHNlbGY6OnZTaXplOjoqOworLQorLW1vZCB2UHRyOworLXB1YiB1c2Ugc2VsZjo6 dlB0cjo6KjsKKy0KKy1wdWIgdXNlIHNlbGY6OmFwaTo6Y2FzdDo6KjsKKy0KKy0jW2NmZyhmZWF0 dXJlID0gImludG9fYml0cyIpXQorLXB1YiB1c2Ugc2VsZjo6YXBpOjppbnRvX2JpdHM6Oio7Cist CistLy8gUmUtZXhwb3J0IHRoZSBzaHVmZmxlIGludHJpbnNpY3MgcmVxdWlyZWQgYnkgdGhlIGBz aHVmZmxlIWAgbWFjcm8uCistI1tkb2MoaGlkZGVuKV0KKy1wdWIgdXNlIHNlbGY6OmNvZGVnZW46 Omxsdm06OnsKKy0gICAgX19zaHVmZmxlX3ZlY3RvcjE2LCBfX3NodWZmbGVfdmVjdG9yMiwgX19z aHVmZmxlX3ZlY3RvcjMyLCBfX3NodWZmbGVfdmVjdG9yNCwgX19zaHVmZmxlX3ZlY3RvcjY0LAor LSAgICBfX3NodWZmbGVfdmVjdG9yOCwKKy19OworLQorLXB1YihjcmF0ZSkgbW9kIGxsdm0gewor LSAgICBwdWIoY3JhdGUpIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bGx2bTo6KjsKKy19CitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3MucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsMTI2ICswLDAgQEAKKy0vLyEgTWFzayB0eXBlcworLQorLW1hY3Jv X3J1bGVzISBpbXBsX21hc2tfdHkgeworLSAgICAoJGlkOmlkZW50IDogJGVsZW1fdHk6aWRlbnQg fCAjWyRkb2M6bWV0YV0pID0+IHsKKy0gICAgICAgICNbJGRvY10KKy0gICAgICAgICNbZGVyaXZl KENvcHksIENsb25lKV0KKy0gICAgICAgIHB1YiBzdHJ1Y3QgJGlkKCRlbGVtX3R5KTsKKy0KKy0g ICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgJGlkIHt9CistICAgICAgICBpbXBs IGNyYXRlOjpzZWFsZWQ6Ok1hc2sgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gdGVzdCgmc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICRp ZDo6dGVzdChzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlt cGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGUgYSBtYXNrIHdpdGggYHZhbHVl YAorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBuZXcoeDogYm9v bCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGlmIHggeworLSAgICAgICAgICAgICAgICAg ICAgJGlkKCEwKQorLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAg ICAgJGlkKDApCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICAg ICAgLy8vIFRlc3QgaWYgdGhlIG1hc2sgaXMgc2V0CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIHRlc3QoJnNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICBzZWxmLjAgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlt cGwgRGVmYXVsdCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICRpZCgwKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFs ZXFfbmVfaW1wbCldCistICAgICAgICBpbXBsIFBhcnRpYWxFcTwkaWQ+IGZvciAkaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNl bGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPT0gb3RoZXIuMAorLSAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBuZSgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi4wICE9IG90 aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIEVxIGZv ciAkaWQge30KKy0KKy0gICAgICAgIGltcGwgUGFydGlhbE9yZDwkaWQ+IGZvciAkaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4geworLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmNtcDo6T3JkZXJpbmc7CistICAgICAgICAgICAgICAgIGlmIHNl bGYgPT0gb3RoZXIgeworLSAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwp CistICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBzZWxmLjAgPiBvdGhlci4wIHsKKy0gICAgICAg ICAgICAgICAgICAgIC8vIE5vdGU6CistICAgICAgICAgICAgICAgICAgICAvLyAgKiBmYWxzZSA9 IDBfaQorLSAgICAgICAgICAgICAgICAgICAgLy8gICogdHJ1ZSA9PSAhMF9pID09IC0xX2kKKy0g ICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpCistICAgICAgICAgICAgICAg IH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGx0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewor LSAgICAgICAgICAgICAgICBzZWxmLjAgPiBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGd0KCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPCBvdGhlci4wCistICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGxlKCZzZWxmLCBv dGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgPj0gb3RoZXIu MAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2Vs Zi4wIDw9IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsIE9yZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biBjbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gY3JhdGU6OmNtcDo6T3JkZXJpbmcgeworLSAg ICAgICAgICAgICAgICBtYXRjaCBzZWxmLnBhcnRpYWxfY21wKG90aGVyKSB7CistICAgICAgICAg ICAgICAgICAgICBTb21lKHgpID0+IHgsCistICAgICAgICAgICAgICAgICAgICBOb25lID0+IHVu c2FmZSB7IGNyYXRlOjpoaW50Ojp1bnJlYWNoYWJsZV91bmNoZWNrZWQoKSB9LAorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBj cmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpIYXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11 dCBIKSB7CistICAgICAgICAgICAgICAgIChzZWxmLjAgIT0gMCkuaGFzaChzdGF0ZSk7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpEZWJ1 ZyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBmbXQo JnNlbGYsIGZtdHRlcjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBSZXN1bHQ8 KCksIGNyYXRlOjpmbXQ6OkVycm9yPiB7CistICAgICAgICAgICAgICAgIHdyaXRlIShmbXR0ZXIs ICJ7fSh7fSkiLCBzdHJpbmdpZnkhKCRpZCksIHNlbGYuMCAhPSAwKQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistaW1wbF9tYXNrX3R5IShtODogaTggfCAvLy8g OC1iaXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMTY6IGkxNiB8IC8vLyAxNi1i aXQgd2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMzI6IGkzMiB8IC8vLyAzMi1iaXQg d2lkZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtNjQ6IGk2NCB8IC8vLyA2NC1iaXQgd2lk ZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtMTI4OiBpMTI4IHwgLy8vIDEyOC1iaXQgd2lk ZSBtYXNrLgorLSk7CistaW1wbF9tYXNrX3R5IShtc2l6ZTogaXNpemUgfCAvLy8gaXNpemUtd2lk ZSBtYXNrLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvc2VhbGVkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3NlYWxlZC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDIgKzAsMCBAQAorLS8v ISBTZWFsZWQgdHJhaXRzCistCistLy8vIEEgc2VhbGVkIHRyYWl0LCB0aGlzIGlzIGxvZ2ljYWxs eSBwcml2YXRlIHRvIHRoZSBjcmF0ZQorLS8vLyBhbmQgd2lsbCBwcmV2ZW50IGltcGxlbWVudGF0 aW9ucyBmcm9tIG91dHNpZGUgdGhlIGNyYXRlCistcHViIHRyYWl0IFNlYWw8VCA9ICgpPiB7fQor LQorLS8vLyBUcmFpdCBpbXBsZW1lbnRlZCBieSBhcnJheXMgdGhhdCBjYW4gYmUgU0lNRCB0eXBl cy4KKy1wdWIgdHJhaXQgU2ltZEFycmF5OiBTZWFsIHsKKy0gICAgLy8vIFRoZSB0eXBlIG9mIHRo ZSAjW3JlcHIoc2ltZCldIHR5cGUuCistICAgIHR5cGUgVHVwbGU6IENvcHkgKyBDbG9uZTsKKy0g ICAgLy8vIFRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIHZlY3Rvci4KKy0gICAgdHlwZSBUOworLSAg ICAvLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCistICAgIGNvbnN0IE46 IHVzaXplOworLSAgICAvLy8gVGhlIHR5cGU6IGBbdTMyOyBTZWxmOjpOXWAuCistICAgIHR5cGUg TlQ7CistfQorLQorLS8vLyBUaGlzIHRyYWl0cyBpcyB1c2VkIHRvIGNvbnN0cmFpbnQgdGhlIGFy Z3VtZW50cworLS8vLyBhbmQgcmVzdWx0IHR5cGUgb2YgdGhlIHBvcnRhYmxlIHNodWZmbGVzLgor LSNbZG9jKGhpZGRlbildCistcHViIHRyYWl0IFNodWZmbGU8TGFuZXM+OiBTZWFsPExhbmVzPiB7 CistICAgIC8vIExhbmVzIGlzIGEgYFt1MzI7IE5dYCB3aGVyZSBgTmAgaXMgdGhlIG51bWJlciBv ZiB2ZWN0b3IgbGFuZXMKKy0KKy0gICAgLy8vIFRoZSByZXN1bHQgdHlwZSBvZiB0aGUgc2h1ZmZs ZS4KKy0gICAgdHlwZSBPdXRwdXQ7CistfQorLQorLS8vLyBUaGlzIHRyYWl0IGlzIGltcGxlbWVu dGVkIGJ5IGFsbCBTSU1EIHZlY3RvciB0eXBlcy4KKy1wdWIgdHJhaXQgU2ltZDogU2VhbCB7Cist ICAgIC8vLyBFbGVtZW50IHR5cGUgb2YgdGhlIFNJTUQgdmVjdG9yCistICAgIHR5cGUgRWxlbWVu dDsKKy0gICAgLy8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIFNJTUQgdmVjdG9yLgor LSAgICBjb25zdCBMQU5FUzogdXNpemU7CistICAgIC8vLyBUaGUgdHlwZTogYFt1MzI7IFNlbGY6 Ok5dYC4KKy0gICAgdHlwZSBMYW5lc1R5cGU7CistfQorLQorLS8vLyBUaGlzIHRyYWl0IGlzIGlt cGxlbWVudGVkIGJ5IGFsbCBtYXNrIHR5cGVzCistcHViIHRyYWl0IE1hc2s6IFNlYWwgeworLSAg ICBmbiB0ZXN0KCZzZWxmKSAtPiBib29sOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvdGVzdGluZy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSw4ICswLDAgQEAKKy0vLyEgVGVzdGluZyBtYWNyb3MgYW5kIG90aGVyIHV0aWxpdGllcy4K Ky0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbWFjcm9zOworLQorLSNbY2ZnKHRlc3QpXQorLSNbbWFj cm9fdXNlXQorLXB1YihjcmF0ZSkgbW9kIHV0aWxzOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3MucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNy b3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ0ICswLDAgQEAKKy0vLyEgVGVzdGluZyBtYWNy b3MKKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9pZiB7CistICAgICgkY2ZnX3R0OnR0OiAkaXQ6aXRl bSkgPT4geworLSAgICAgICAgI1tjZmcoYW55KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgZXZlcnl0aGluZyBpZjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKiBubyBmZWF0dXJl cyBhYm91dCBleGNsdXNpdmVseSB0ZXN0aW5nCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBzcGVjaWZpYyB2ZWN0b3IgY2xh c3NlcyBhcmUgZW5hYmxlZAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFsbCh0ZXN0LCBub3QoYW55KAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Yx NiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF92MzIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjY0LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Yx MjgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfdjI1NiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92NTEyLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X25vbmUsICAvLyBkaXNhYmxlcyBhbGwgdGVzdHMKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKSksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBpZjoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vICogdGVzdHMgYXJlIGVuYWJsZWQKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAqIGEgcGFydGljdWxh ciBjZmcgdG9rZW4gdHJlZSByZXR1cm5zIHRydWUKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwodGVzdCwgJGNmZ190dCksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp KV0KKy0gICAgICAgICRpdAorLSAgICB9OworLX0KKy0KKy0jW2NmZyh0ZXN0KV0KKy0jW2FsbG93 KHVudXNlZCldCistbWFjcm9fcnVsZXMhIHJlZl8geworLSAgICAoJGFueXRoaW5nOnR0KSA9PiB7 CistICAgICAgICAmJGFueXRoaW5nCistICAgIH07CistfQorLQorLSNbY2ZnKHRlc3QpXQorLSNb YWxsb3codW51c2VkKV0KKy1tYWNyb19ydWxlcyEgcmVmX211dF8geworLSAgICAoJGFueXRoaW5n OnR0KSA9PiB7CistICAgICAgICAmbXV0ICRhbnl0aGluZworLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL3V0aWxzLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGlscy5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy90ZXN0aW5nL3V0aWxzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMzAgKzAsMCBAQAorLS8v ISBUZXN0aW5nIHV0aWxpdGllcworLQorLSMhW2FsbG93KGRlYWRfY29kZSldCistLy8gRklYTUU6 IE9yIGRvbid0LiBCdXQgaXQncyB0cnVlIHRoaXMgaXMgYSBwcm9ibGVtYXRpYyBjb21wYXJpc29u LgorLSMhW2FsbG93KGNsaXBweTo6bmVnX2NtcF9vcF9vbl9wYXJ0aWFsX29yZCldCistCistdXNl IGNyYXRlOjp7Y21wOjpQYXJ0aWFsT3JkLCBmbXQ6OkRlYnVnLCBMZXhpY29ncmFwaGljYWxseU9y ZGVyZWR9OworLQorLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5kIGBiYCB3aGVyZSBg YSA8IGJgIGlzIHRydWUuCistcHViIGZuIHRlc3RfbHQ8VD4oYTogTGV4aWNvZ3JhcGhpY2FsbHlP cmRlcmVkPFQ+LCBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4pCistd2hlcmUKKy0gICAg TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBEZWJ1ZyArIFBhcnRpYWxPcmQsCisteworLSAg ICBhc3NlcnQhKGEgPCBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBhc3NlcnQhKGIgPiBh LCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICBhc3NlcnQhKCEoYSA9PSBiKSwgIns6P30s IHs6P30iLCBhLCBiKTsKKy0gICAgYXNzZXJ0X25lIShhLCBiLCAiezo/fSwgezo/fSIsIGEsIGIp OworLQorLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgYXNz ZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgIC8vIFRoZSBlbGVnYW5j ZSBvZiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24gb2YgaXJyZWZsZXhpdml0eSBpcyBtb3Jl CistICAgIC8vIHRoYW4gY2xpcHB5IGNhbiBoYW5kbGUuCistICAgICNbYWxsb3coY2xpcHB5Ojpl cV9vcCldCistICAgIHsKKy0gICAgICAgIC8vIElycmVmbGV4aXZpdHkKKy0gICAgICAgIGFzc2Vy dCEoIShhIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBhc3NlcnQhKCEoYiA8 IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0ISghKGEgPiBhKSwgIns6 P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIGFzc2VydCEoIShiID4gYiksICJ7Oj99LCB7Oj99 IiwgYSwgYik7CistCistICAgICAgICBhc3NlcnQhKGEgPD0gYSwgIns6P30sIHs6P30iLCBhLCBi KTsKKy0gICAgICAgIGFzc2VydCEoYiA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICB9 CistfQorLQorLS8vLyBUZXN0cyBQYXJ0aWFsT3JkIGZvciBgYWAgYW5kIGBiYCB3aGVyZSBgYSA8 PSBiYCBpcyB0cnVlLgorLXB1YiBmbiB0ZXN0X2xlPFQ+KGE6IExleGljb2dyYXBoaWNhbGx5T3Jk ZXJlZDxUPiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+KQorLXdoZXJlCistICAgIExl eGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0aWFsT3JkLAorLXsKKy0gICAg YXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIGFzc2VydCEoYiA+PSBh LCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6 P30iLCBhLCBiKTsKKy0gICAgYXNzZXJ0IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7Cist CistICAgIGlmIGEgPT0gYiB7CistICAgICAgICBhc3NlcnQhKCEoYSA8IGIpLCAiezo/fSwgezo/ fSIsIGEsIGIpOworLSAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwgIns6P30sIHs6P30iLCBhLCBi KTsKKy0KKy0gICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwor LSAgICB9IGVsc2UgeworLSAgICAgICAgYXNzZXJ0X25lIShhLCBiLCAiezo/fSwgezo/fSIsIGEs IGIpOworLSAgICAgICAgdGVzdF9sdChhLCBiKTsKKy0gICAgfQorLX0KKy0KKy0vLy8gVGVzdCBQ YXJ0aWFsT3JkOjpwYXJ0aWFsX2NtcCBmb3IgYGFgIGFuZCBgYmAgcmV0dXJuaW5nIGBPcmRlcmlu Z2AKKy1wdWIgZm4gdGVzdF9jbXA8VD4oCistICAgIGE6IExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDxUPiwKKy0gICAgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LAorLSAgICBvOiBPcHRp b248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+LAorLSkgd2hlcmUKKy0gICAgTGV4aWNvZ3JhcGhpY2Fs bHlPcmRlcmVkPFQ+OiBQYXJ0aWFsT3JkICsgRGVidWcsCistICAgIFQ6IERlYnVnICsgY3JhdGU6 OnNlYWxlZDo6U2ltZCArIENvcHkgKyBDbG9uZSwKKy0gICAgPFQgYXMgY3JhdGU6OnNlYWxlZDo6 U2ltZD46OkVsZW1lbnQ6IERlZmF1bHQgKyBDb3B5ICsgQ2xvbmUgKyBQYXJ0aWFsT3JkLAorLXsK Ky0gICAgYXNzZXJ0IShUOjpMQU5FUyA8PSA2NCwgImFycmF5IGxlbmd0aCBpbiB0aGVzZSB0d28g YXJyYXlzIG5lZWRzIHVwZGF0aW5nIik7CistICAgIGxldCBtdXQgYXJyX2E6IFtUOjpFbGVtZW50 OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07CistICAgIGxldCBtdXQgYXJyX2I6IFtU OjpFbGVtZW50OyA2NF0gPSBbRGVmYXVsdDo6ZGVmYXVsdCgpOyA2NF07CistCistICAgIHVuc2Fm ZSB7IGNyYXRlOjpwdHI6OndyaXRlX3VuYWxpZ25lZChhcnJfYS5hc19tdXRfcHRyKCkgYXMgKm11 dCBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGEpIH0KKy0gICAgdW5zYWZlIHsgY3JhdGU6 OnB0cjo6d3JpdGVfdW5hbGlnbmVkKGFycl9iLmFzX211dF9wdHIoKSBhcyAqbXV0IExleGljb2dy YXBoaWNhbGx5T3JkZXJlZDxUPiwgYikgfQorLSAgICBsZXQgZXhwZWN0ZWQgPSBhcnJfYVswLi5U OjpMQU5FU10ucGFydGlhbF9jbXAoJmFycl9iWzAuLlQ6OkxBTkVTXSk7CistICAgIGxldCByZXN1 bHQgPSBhLnBhcnRpYWxfY21wKCZiKTsKKy0gICAgYXNzZXJ0X2VxIShleHBlY3RlZCwgcmVzdWx0 LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICBhc3NlcnRfZXEhKG8sIHJlc3VsdCwgIns6P30s IHs6P30iLCBhLCBiKTsKKy0gICAgbWF0Y2ggbyB7CistICAgICAgICBTb21lKGNyYXRlOjpjbXA6 Ok9yZGVyaW5nOjpMZXNzKSA9PiB7CistICAgICAgICAgICAgdGVzdF9sdChhLCBiKTsKKy0gICAg ICAgICAgICB0ZXN0X2xlKGEsIGIpOworLSAgICAgICAgfQorLSAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6R3JlYXRlcikgPT4geworLSAgICAgICAgICAgIHRlc3RfbHQoYiwgYSk7 CistICAgICAgICAgICAgdGVzdF9sZShiLCBhKTsKKy0gICAgICAgIH0KKy0gICAgICAgIFNvbWUo Y3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSA9PiB7CistICAgICAgICAgICAgYXNzZXJ0IShh ID09IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0g YiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISghKGEgPCBiKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEoYiA8IGEpLCAiezo/ fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhID4gYiksICJ7Oj99LCB7 Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISghKGIgPiBhKSwgIns6P30sIHs6P30i LCBhLCBiKTsKKy0KKy0gICAgICAgICAgICB0ZXN0X2xlKGEsIGIpOworLSAgICAgICAgICAgIHRl c3RfbGUoYiwgYSk7CistICAgICAgICB9CistICAgICAgICBOb25lID0+IHsKKy0gICAgICAgICAg ICBhc3NlcnQhKCEoYSA9PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBh c3NlcnQhKCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3Nl cnQhKCEoYSA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEo IShhID4gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0ISghKGIg PCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEoYiA+IGEp LCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhIDw9IGIpLCAi ezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShiIDw9IGEpLCAiezo/ fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShhID49IGIpLCAiezo/fSwg ezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShiID49IGEpLCAiezo/fSwgezo/ fSIsIGEsIGIpOworLSAgICAgICAgfQorLSAgICB9CistfQorLQorLS8vIFJldHVybnMgYSB0dXBs ZSBjb250YWluaW5nIHR3byBkaXN0aW5jdCBwb2ludGVyIHZhbHVlcyBvZiB0aGUgc2FtZSB0eXBl IGFzCistLy8gdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgU2ltZCB2ZWN0b3IgYCRpZGAuCistI1th bGxvdyh1bnVzZWQpXQorLW1hY3JvX3J1bGVzISBwdHJfdmFscyB7CistICAgICgkaWQ6dHkpID0+ IHsKKy0gICAgICAgIC8vIGV4cGFuZHMgdG8gYW4gZXhwcmVzc2lvbgorLSAgICAgICAgI1thbGxv dyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgLy8gYWxs IGJpdHMgY2xlYXJlZAorLSAgICAgICAgICAgIGxldCBjbGVhcjogPCRpZCBhcyBzZWFsZWQ6OlNp bWQ+OjpFbGVtZW50ID0gY3JhdGU6Om1lbTo6emVyb2VkKCk7CistICAgICAgICAgICAgLy8gYWxs IGJpdHMgc2V0CistICAgICAgICAgICAgbGV0IHNldDogPCRpZCBhcyBzZWFsZWQ6OlNpbWQ+OjpF bGVtZW50ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKC0xX2lzaXplKTsKKy0gICAgICAgICAgICAo Y2xlYXIsIHNldCkKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsODAgKzAsMCBAQAorLS8vISAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistI1tydXN0Zm10 Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2khKFtpODsgMTZdOiBpOHgxNiwg bTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMTYgYGk4 YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyAxNl06IHU4eDE2LCBtOHgxNiB8IHU4LCB1MTYg fCB0ZXN0X3YxMjggfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogfAor LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdThgIGxhbmVzLgorLSk7Cist aW1wbF9tIShbbTg7IDE2XTogbTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4IHwKKy0gICAgICAg IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4 MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IG0xNngxNiB8CistICAgICAgICAvLy8gQSAx MjgtYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG04YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEo W2kxNjsgOF06IGkxNng4LCBtMTZ4OCB8IGkxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCB8CistICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDggYGkxNmAgbGFuZXMuCistKTsKKy1pbXBs X3UhKFt1MTY7IDhdOiB1MTZ4OCwgbTE2eDggfCB1MTYsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHU4eDggfAorLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA4IGB1MTZgIGxhbmVzLgorLSk7CistaW1wbF9t IShbbTE2OyA4XTogbTE2eDggfCBpMTYsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IG04eDgsIG0zMng4IHwKKy0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtMTZgIGxhbmVzLgorLSk7CistCist aW1wbF9pIShbaTMyOyA0XTogaTMyeDQsIG0zMng0IHwgaTMyLCB1OCB8IHRlc3RfdjEyOCB8IHgw LCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCAg fAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMzJgIGxhbmVzLgorLSk7 CistaW1wbF91IShbdTMyOyA0XTogdTMyeDQsIG0zMng0IHwgdTMyLCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHU4eDQsIHUxNng0IHwKKy0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgdTMyYCBsYW5lcy4KKy0pOworLWltcGxfZiEo W2YzMjsgNF06IGYzMng0LCBtMzJ4NCB8IGYzMiB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgz IHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCB8CistICAgICAgICAv Ly8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYGYzMmAgbGFuZXMuCistKTsKKy1pbXBsX20hKFtt MzI7IDRdOiBtMzJ4NCB8IGkzMiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MyB8Cist ICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTY0eDQgfAorLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0zMmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpNjQ7 IDJdOiBpNjR4MiwgbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKKy0gICAg ICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyIHwKKy0gICAg ICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgaTY0YCBsYW5lcy4KKy0pOworLWltcGxf dSEoW3U2NDsgMl06IHU2NHgyLCBtNjR4MiB8IHU2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEg fAorLSAgICAgICAgRnJvbTogdTh4MiwgdTE2eDIsIHUzMngyIHwKKy0gICAgICAgIC8vLyBBIDEy OC1iaXQgdmVjdG9yIHdpdGggMiBgdTY0YCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2Y2NDsgMl06 IGY2NHgyLCBtNjR4MiB8IGY2NCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8CistICAgICAgICBGcm9t OiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiwgZjMyeDIgfAorLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGBmNjRgIGxhbmVzLgorLSk7CistaW1wbF9t IShbbTY0OyAyXTogbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKKy0gICAg ICAgIEZyb206IG04eDIsIG0xNngyLCBtMzJ4MiwgbTEyOHgyIHwKKy0gICAgICAgIC8vLyBBIDEy OC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtNjRgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShb aTEyODsgMV06IGkxMjh4MSwgbTEyOHgxIHwgaTEyOCwgdTggfCB0ZXN0X3YxMjggfCB4MCB8Cist ICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwgaTMyeDEsIHUzMngxLCBp NjR4MSwgdTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCistICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDEgYGkxMjhgIGxhbmUuCistKTsKKy1pbXBs X3UhKFt1MTI4OyAxXTogdTEyOHgxLCBtMTI4eDEgfCB1MTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgw IHwKKy0gICAgICAgIEZyb206IC8qdTh4MSwgdTE2eDEsIHUzMngxLCB1NjR4MSAqLyB8IC8vIEZJ WE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVj dG9yIHdpdGggMSBgdTEyOGAgbGFuZS4KKy0pOworLWltcGxfbSEoW20xMjg7IDFdOiBtMTI4eDEg fCBpMTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgwIHwKKy0gICAgICAgIEZyb206IC8qbTh4MSwgbTE2 eDEsIG0zMngxLCBtNjR4MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMK Ky0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxIGBtMTI4YCBsYW5lLgor LSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxNi5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMTYgKzAsMCBAQAorLS8vISAxNi1iaXQgd2lkZSB2ZWN0 b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9pIShbaTg7IDJdOiBpOHgyLCBt OHgyIHwgaTgsIHU4IHwgdGVzdF92MTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogfAorLSAg ICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciB3aXRoIDIgYGk4YCBsYW5lcy4KKy0pOworLWltcGxf dSEoW3U4OyAyXTogdTh4MiwgbTh4MiB8IHU4LCB1OCB8IHRlc3RfdjE2IHwgeDAsIHgxIHwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3Igd2l0aCAyIGB1OGAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgMl06IG04eDIgfCBpOCwgdTggfCB0ZXN0X3YxNiB8 IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBtMTZ4MiwgbTMyeDIsIG02NHgyLCBtMTI4eDIgfAor LSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbThgIGxhbmVzLgorLSk7 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YyNTYucnMKK2RlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjI1Ni5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsODYgKzAsMCBAQAorLS8vISAyNTYtYml0IHdpZGUgdmVj dG9yIHR5cGVzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBs X2khKFtpODsgMzJdOiBpOHgzMiwgbTh4MzIgfCBpOCwgdTMyIHwgdGVzdF92MjU2IHwKKy0gICAg ICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEy LCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwg eDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKKy0gICAg ICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMzIgYGk4YCBs YW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyAzMl06IHU4eDMyLCBtOHgzMiB8IHU4LCB1MzIgfCB0 ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwg eDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4 LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwg eDMwLCB4MzEgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0 b3Igd2l0aCAzMiBgdThgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTg7IDMyXTogbTh4MzIgfCBp OCwgdTMyIHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2 LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywg eDI4LCB4MjksIHgzMCwgeDMxIHwKKy0gICAgICAgIEZyb206ICB8CistICAgICAgICAvLy8gQSAy NTYtYml0IHZlY3RvciBtYXNrIHdpdGggMzIgYG04YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEo W2kxNjsgMTZdOiBpMTZ4MTYsIG0xNngxNiB8IGkxNiwgdTE2IHwgdGVzdF92MjU2IHwKKy0gICAg ICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEy LCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IGk4eDE2LCB1OHgxNiB8CistICAgICAg ICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDE2IGBpMTZgIGxhbmVzLgorLSk7CistaW1wbF91 IShbdTE2OyAxNl06IHUxNngxNiwgbTE2eDE2IHwgdTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAorLSAg ICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4 MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogdTh4MTYgfAorLSAgICAgICAgLy8v IEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdTE2YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20x NjsgMTZdOiBtMTZ4MTYgfCBpMTYsIHUxNiB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEs IHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQs IHgxNSB8CistICAgICAgICBGcm9tOiBtOHgxNiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZl Y3RvciBtYXNrIHdpdGggMTYgYG0xNmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpMzI7IDhd OiBpMzJ4OCwgbTMyeDggfCBpMzIsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3ICB8CistICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDgg fAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGBpMzJgIGxhbmVzLgorLSk7 CistaW1wbF91IShbdTMyOyA4XTogdTMyeDgsIG0zMng4IHwgdTMyLCB1OCB8IHRlc3RfdjI1NiB8 IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiB1OHg4LCB1 MTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDggYHUzMmAgbGFuZXMu CistKTsKKy1pbXBsX2YhKFtmMzI7IDhdOiBmMzJ4OCwgbTMyeDggfCBmMzIgfCB0ZXN0X3YyNTYg fCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogaTh4OCwg dTh4OCwgaTE2eDgsIHUxNng4IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGgg OCBgZjMyYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20zMjsgOF06IG0zMng4IHwgaTMyLCB1OCB8 IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBG cm9tOiBtOHg4LCBtMTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdp dGggOCBgbTMyYCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2k2NDsgNF06IGk2NHg0LCBtNjR4 NCB8IGk2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9t OiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCB8CistICAgICAgICAvLy8g QSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYGk2NGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1NjQ7 IDRdOiB1NjR4NCwgbTY0eDQgfCB1NjQsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMg fAorLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQsIHUzMng0IHwKKy0gICAgICAgIC8vLyBBIDI1 Ni1iaXQgdmVjdG9yIHdpdGggNCBgdTY0YCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2Y2NDsgNF06 IGY2NHg0LCBtNjR4NCB8IGY2NCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAg ICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCwgaTMyeDQsIHUzMng0LCBmMzJ4NCB8 CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYGY2NGAgbGFuZXMuCistKTsK Ky1pbXBsX20hKFttNjQ7IDRdOiBtNjR4NCB8IGk2NCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEs IHgyLCB4MyB8CistICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTMyeDQgfAorLSAgICAgICAg Ly8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG02NGAgbGFuZXMuCistKTsKKy0KKy1p bXBsX2khKFtpMTI4OyAyXTogaTEyOHgyLCBtMTI4eDIgfCBpMTI4LCB1OCB8IHRlc3RfdjI1NiB8 IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngy LCB1MzJ4MiwgaTY0eDIsIHU2NHgyIHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdp dGggMiBgaTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTI4OyAyXTogdTEyOHgyLCBtMTI4 eDIgfCB1MTI4LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiB1OHgy LCB1MTZ4MiwgdTMyeDIsIHU2NHgyIHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdp dGggMiBgdTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTI4OyAyXTogbTEyOHgyIHwgaTEy OCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogbTh4MiwgbTE2eDIs IG0zMngyLCBtNjR4MiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciBtYXNrIHdpdGgg MiBgbTEyOGAgbGFuZXMuCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIu cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdjMyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyOSArMCwwIEBACistLy8h IDMyLWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2kh KFtpODsgNF06IGk4eDQsIG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgz IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCA0 IGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgNF06IHU4eDQsIG04eDQgfCB1OCwgdTgg fCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAg IC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0aCA0IGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFtt ODsgNF06IG04eDQgfCBpOCwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAg ICAgIEZyb206IG0xNng0LCBtMzJ4NCwgbTY0eDQgfAorLSAgICAgICAgLy8vIEEgMzItYml0IHZl Y3RvciBtYXNrIHdpdGggNCBgbThgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShbaTE2OyAyXTog aTE2eDIsIG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKKy0gICAgICAgIEZy b206IGk4eDIsIHU4eDIgfAorLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDIgYGkx NmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTY7IDJdOiB1MTZ4MiwgbTE2eDIgfCB1MTYsIHU4 IHwgdGVzdF92MzIgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogdTh4MiB8CistICAgICAgICAv Ly8gQSAzMi1iaXQgdmVjdG9yIHdpdGggMiBgdTE2YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20x NjsgMl06IG0xNngyIHwgaTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKKy0gICAgICAgIEZy b206IG04eDIsIG0zMngyLCBtNjR4MiwgbTEyOHgyIHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2 ZWN0b3IgbWFzayB3aXRoIDIgYG0xNmAgbGFuZXMuCistKTsKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdjUxMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NTEyLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSw5OSArMCwwIEBACistLy8hIDUxMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0jW3J1c3RmbXQ6 OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfaSEoW2k4OyA2NF06IGk4eDY0LCBt OHg2NCB8IGk4LCB1NjQgfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAg ICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgy NiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEsCistICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUs IHgzNiwgeDM3LCB4MzgsIHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4 NDcsCistICAgICAgICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2 LCB4NTcsIHg1OCwgeDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAorLSAgICAgICAgRnJvbTogfAor LSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA2NCBgaThgIGxhbmVzLgorLSk7Cist aW1wbF91IShbdTg7IDY0XTogdTh4NjQsIG04eDY0IHwgdTgsIHU2NCB8IHRlc3RfdjUxMiB8Cist ICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEs IHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4 MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwKKy0g ICAgICAgIHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwg eDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywKKy0gICAgICAgIHg0OCwgeDQ5LCB4NTAsIHg1 MSwgeDUyLCB4NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIs IHg2MyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3 aXRoIDY0IGB1OGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgNjRdOiBtOHg2NCB8IGk4LCB1 NjQgfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3 LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgx NywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4Mjgs IHgyOSwgeDMwLCB4MzEsCistICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4 MzgsIHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCistICAgICAg ICB4NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwg eDU5LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAorLSAgICAgICAgRnJvbTogIHwKKy0gICAgICAgIC8v LyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA2NCBgbThgIGxhbmVzLgorLSk7CistCistaW1w bF9pIShbaTE2OyAzMl06IGkxNngzMiwgbTE2eDMyIHwgaTE2LCB1MzIgfCB0ZXN0X3Y1MTIgfAor LSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDEx LCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwg eDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAor LSAgICAgICAgRnJvbTogaTh4MzIsIHU4eDMyIHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIHdpdGggMzIgYGkxNmAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1MTY7IDMyXTogdTE2eDMy LCBtMTZ4MzIgfCB1MTYsIHUzMiB8IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwK Ky0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgy NSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8CistICAgICAgICBGcm9tOiB1OHgzMiB8 CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDMyIGB1MTZgIGxhbmVzLgorLSk7 CistaW1wbF9tIShbbTE2OyAzMl06IG0xNngzMiB8IGkxNiwgdTMyIHwgdGVzdF92NTEyIHwKKy0g ICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwg eDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgy MSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKKy0g ICAgICAgIEZyb206IG04eDMyIHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sg d2l0aCAzMiBgbTE2YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kzMjsgMTZdOiBpMzJ4MTYs IG0zMngxNiB8IGkzMiwgdTE2IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwK Ky0gICAgICAgIEZyb206IGk4eDE2LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYgfAorLSAgICAgICAg Ly8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAxNiBgaTMyYCBsYW5lcy4KKy0pOworLWltcGxfdSEo W3UzMjsgMTZdOiB1MzJ4MTYsIG0zMngxNiB8IHUzMiwgdTE2IHwgdGVzdF92NTEyIHwKKy0gICAg ICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEy LCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IHU4eDE2LCB1MTZ4MTYgfAorLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAxNiBgdTMyYCBsYW5lcy4KKy0pOworLWltcGxf ZiEoW2YzMjsgMTZdOiBmMzJ4MTYsIG0zMngxNiB8IGYzMiB8IHRlc3RfdjUxMiB8CistICAgICAg ICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwg eDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2 eDE2IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYGYzMmAgbGFuZXMu CistKTsKKy1pbXBsX20hKFttMzI7IDE2XTogbTMyeDE2IHwgaTMyLCB1MTYgfCB0ZXN0X3Y1MTIg fAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwg eDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogbTh4MTYsIG0xNngxNiB8 CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG0zMmAgbGFuZXMu CistKTsKKy0KKy1pbXBsX2khKFtpNjQ7IDhdOiBpNjR4OCwgbTY0eDggfCBpNjQsIHU4IHwgdGVz dF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206 IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCwgaTMyeDgsIHUzMng4IHwKKy0gICAgICAgIC8vLyBB IDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgaTY0YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U2NDsg OF06IHU2NHg4LCBtNjR4OCB8IHU2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogdTh4OCwgdTE2eDgsIHUzMng4IHwKKy0g ICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgdTY0YCBsYW5lcy4KKy0pOworLWlt cGxfZiEoW2Y2NDsgOF06IGY2NHg4LCBtNjR4OCB8IGY2NCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwg eDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4 OCwgdTE2eDgsIGkzMng4LCB1MzJ4OCwgZjMyeDggfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2 ZWN0b3Igd2l0aCA4IGBmNjRgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTY0OyA4XTogbTY0eDgg fCBpNjQsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwK Ky0gICAgICAgIEZyb206IG04eDgsIG0xNng4LCBtMzJ4OCB8CistICAgICAgICAvLy8gQSA1MTIt Yml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTY0YCBsYW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kx Mjg7IDRdOiBpMTI4eDQsIG0xMjh4NCB8IGkxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4 MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0LCBpMzJ4NCwg dTMyeDQsIGk2NHg0LCB1NjR4NCB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRo IDQgYGkxMjhgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTEyODsgNF06IHUxMjh4NCwgbTEyOHg0 IHwgdTEyOCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9t OiB1OHg0LCB1MTZ4NCwgdTMyeDQsIHU2NHg0IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIHdpdGggNCBgdTEyOGAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTI4OyA0XTogbTEyOHg0 IHwgaTEyOCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9t OiBtOHg0LCBtMTZ4NCwgbTMyeDQsIG02NHg0IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIG1hc2sgd2l0aCA0IGBtMTI4YCBsYW5lcy4KKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3Y2NC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2 ICswLDAgQEAKKy0vLyEgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistI1tydXN0Zm10Ojpza2lw XQorLQorLXVzZSBzdXBlcjo6KjsKKy0KKy1pbXBsX2khKFtpODsgOF06IGk4eDgsIG04eDggfCBp OCwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAg ICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggOCBgaThgIGxh bmVzLgorLSk7CistaW1wbF91IShbdTg7IDhdOiB1OHg4LCBtOHg4IHwgdTgsIHU4IHwgdGVzdF92 NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogfAor LSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDggYHU4YCBsYW5lcy4KKy0pOworLWlt cGxfbSEoW204OyA4XTogbTh4OCB8IGk4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IG0xNng4LCBtMzJ4OCB8CistICAgICAg ICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtOGAgbGFuZXMuCistKTsKKy0KKy1p bXBsX2khKFtpMTY7IDRdOiBpMTZ4NCwgbTE2eDQgfCBpMTYsIHU4IHwgdGVzdF92NjQgfCB4MCwg eDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0IHwKKy0gICAgICAgIC8vLyBB IDY0LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMTZgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTE2OyA0 XTogdTE2eDQsIG0xNng0IHwgdTE2LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAor LSAgICAgICAgRnJvbTogdTh4NCB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGgg NCBgdTE2YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20xNjsgNF06IG0xNng0IHwgaTE2LCB1OCB8 IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogbTh4NCwgbTMyeDQs IG02NHg0IHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0xNmAg bGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpMzI7IDJdOiBpMzJ4MiwgbTMyeDIgfCBpMzIsIHU4 IHwgdGVzdF92NjQgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIs IHUxNngyIHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGBpMzJgIGxhbmVz LgorLSk7CistaW1wbF91IShbdTMyOyAyXTogdTMyeDIsIG0zMngyIHwgdTMyLCB1OCB8IHRlc3Rf djY0IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHU4eDIsIHUxNngyIHwKKy0gICAgICAgIC8v LyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGB1MzJgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTMy OyAyXTogbTMyeDIgfCBpMzIsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEgfAorLSAgICAgICAgRnJv bTogbTh4MiwgbTE2eDIsIG02NHgyLCBtMTI4eDIgfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZl Y3RvciBtYXNrIHdpdGggMiBgbTMyYCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2YzMjsgMl06IGYz MngyLCBtMzJ4MiB8IGYzMiB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IGk4 eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdp dGggMiBgZjMyYCBsYW5lcy4KKy0pOworLQorLS8qCistaW1wbF9pIShbaTY0OyAxXTogaTY0eDEs IG02NHgxIHwgaTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyppOHgx LCB1OHgxLCBpMTZ4MSwgdTE2eDEsIGkzMngxLCB1MzJ4MSovIHwgIC8vIEZJWE1FOiBwcmltaXRp dmUgdG8gdmVjdG9yIGNvbnZlcnNpb24KKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0 aCAxIGBpNjRgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTY0OyAxXTogdTY0eDEsIG02NHgxIHwg dTY0LCB1OCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyp1OHgxLCB1MTZ4MSwg dTMyeDEqLyB8IC8vIEZJWE1FOiBwcmltaXRpdmUgdG8gdmVjdG9yIGNvbnZlcnNpb24KKy0gICAg ICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAxIGB1NjRgIGxhbmVzLgorLSk7CistaW1wbF9t IShbbTY0OyAxXTogbTY0eDEgfCBpNjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8CistICAgICAgICBG cm9tOiAvKm04eDEsIG0xNngxLCBtMzJ4MSwgKi8gbTEyOHgxIHwgLy8gRklYTUU6IHVuYXJ5IHNt YWxsIHZlY3RvciB0eXBlcworLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciBtYXNrIHdpdGgg MSBgbTY0YCBsYW5lcy4KKy0pOworLWltcGxfZiEoW2Y2NDsgMV06IGY2NHgxLCBtNjR4MSB8IGY2 NCB8IHRlc3RfdjY0IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyppOHgxLCB1OHgxLCBpMTZ4MSwg dTE2eDEsIGkzMngxLCB1MzJ4MSwgZjMyeDEqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0 b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAxIGBmNjRgIGxhbmVz LgorLSk7CistKi8KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy92UHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy92UHRyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNCArMCwwIEBACistLy8hIFZlY3Rv cnMgb2YgcG9pbnRlcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQor LWltcGxfY29uc3RfcCEoCistICAgIFsqY29uc3QgVDsgMl06IGNwdHJ4MiwgbXNpemV4MiwgdXNp emV4MiwgaXNpemV4MiB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8IEZyb206IHwKKy0gICAgLy8vIEEg dmVjdG9yIHdpdGggMiBgKmNvbnN0IFRgIGxhbmVzCistKTsKKy0KKy1pbXBsX211dF9wISgKKy0g ICAgWyptdXQgVDsgMl06IG1wdHJ4MiwgbXNpemV4MiwgdXNpemV4MiwgaXNpemV4MiB8IHRlc3Rf djEyOCB8IHgwLCB4MSB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgKm11dCBU YCBsYW5lcworLSk7CistCistaW1wbF9jb25zdF9wISgKKy0gICAgWypjb25zdCBUOyA0XTogY3B0 cng0LCBtc2l6ZXg0LCB1c2l6ZXg0LCBpc2l6ZXg0IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4Miwg eDMgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYCpjb25zdCBUYCBsYW5lcwor LSk7CistCistaW1wbF9tdXRfcCEoCistICAgIFsqbXV0IFQ7IDRdOiBtcHRyeDQsIG1zaXpleDQs IHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8IEZyb206IHwK Ky0gICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgKm11dCBUYCBsYW5lcworLSk7CistCistaW1wbF9j b25zdF9wISgKKy0gICAgWypjb25zdCBUOyA4XTogY3B0cng4LCBtc2l6ZXg4LCB1c2l6ZXg4LCBp c2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwgRnJv bTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqY29uc3QgVGAgbGFuZXMKKy0pOworLQor LWltcGxfbXV0X3AhKAorLSAgICBbKm11dCBUOyA4XTogbXB0cng4LCBtc2l6ZXg4LCB1c2l6ZXg4 LCBpc2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwg RnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqbXV0IFRgIGxhbmVzCistKTsKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92U2l6ZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw1MyArMCwwIEBACistLy8hIFZlY3RvcnMgd2l0aCBwb2lu dGVyLXNpemVkIGVsZW1lbnRzCistCistdXNlIGNyYXRlOjpjb2RlZ2VuOjpwb2ludGVyX3NpemVk X2ludDo6e2lzaXplXywgdXNpemVffTsKKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9pIShbaXNp emU7IDJdOiBpc2l6ZXgyLCBtc2l6ZXgyIHwgaXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8CistICAg ICAgICB4MCwgeDF8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0 aCAyIGBpc2l6ZWAgbGFuZXMuCistKTsKKy0KKy1pbXBsX3UhKFt1c2l6ZTsgMl06IHVzaXpleDIs IG1zaXpleDIgfCB1c2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4MXwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYHVzaXplYCBsYW5l cy4KKy0pOworLWltcGxfbSEoW21zaXplOyAyXTogbXNpemV4MiB8IGlzaXplXywgdTggfCB0ZXN0 X3YxMjggfAorLSAgICAgICAgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8v LyBBIHZlY3RvciBtYXNrIHdpdGggMiBgbXNpemVgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShb aXNpemU7IDRdOiBpc2l6ZXg0LCBtc2l6ZXg0IHwgaXNpemVfLCB1OCB8IHRlc3RfdjI1NiB8Cist ICAgICAgICB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8g QSB2ZWN0b3Igd2l0aCA0IGBpc2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1c2l6ZTsgNF06 IHVzaXpleDQsIG1zaXpleDQgfCB1c2l6ZV8sIHU4IHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgw LCB4MSwgeDIsIHgzfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgdmVjdG9yIHdp dGggNCBgdXNpemVgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbXNpemU7IDRdOiBtc2l6ZXg0IHwg aXNpemVfLCB1OCB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MyB8CistICAg ICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDQgYG1zaXplYCBs YW5lcy4KKy0pOworLQorLWltcGxfaSEoW2lzaXplOyA4XTogaXNpemV4OCwgbXNpemV4OCB8IGlz aXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDgg YGlzaXplYCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3VzaXplOyA4XTogdXNpemV4OCwgbXNpemV4 OCB8IHVzaXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciB3 aXRoIDggYHVzaXplYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW21zaXplOyA4XTogbXNpemV4OCB8 IGlzaXplXywgdTggfCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIHZlY3RvciBtYXNr IHdpdGggOCBgbXNpemVgIGxhbmVzLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsMjY4ICswLDAgQEAKKy0jW2NmZyh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKV0KKy11c2Ugd2FzbV9iaW5kZ2VuX3Rlc3Q6Oio7CistCistdXNlIHBhY2tlZF9zaW1kOjoq OworLXVzZSBzdGQ6OnttZW0sIHNsaWNlfTsKKy0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistZm4gZW5kaWFuX2luZGV4aW5nKCkgeworLSAgICBsZXQg diA9IGkzMng0OjpuZXcoMCwgMSwgMiwgMyk7CistICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDAp LCAwKTsKKy0gICAgYXNzZXJ0X2VxISh2LmV4dHJhY3QoMSksIDEpOworLSAgICBhc3NlcnRfZXEh KHYuZXh0cmFjdCgyKSwgMik7CistICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDMpLCAzKTsKKy19 CistCistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLWZu IGVuZGlhbl9iaXRjYXN0cygpIHsKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9 IGk4eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAg OCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHQ6IGkxNng4 ID0gdW5zYWZlIHsgbWVtOjp0cmFuc211dGUoeCkgfTsKKy0gICAgbGV0IGU6IGkxNng4ID0gaWYg Y2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAgICAgIGkxNng4OjpuZXcoMjU2 LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTQpCistICAgIH0gZWxzZSB7 CistICAgICAgICBpMTZ4ODo6bmV3KDEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4 NSwgMzU5OSkKKy0gICAgfTsKKy0gICAgYXNzZXJ0X2VxISh0LCBlKTsKKy19CistCistI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLWZuIGVuZGlhbl9jYXN0 cygpIHsKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCist ICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAx MiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHQ6IGkxNngxNiA9IHguaW50bygpOyAv LyBzaW1kX2Nhc3QKKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgZSA9IGkxNngxNjo6 bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEw LCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGFzc2VydF9lcSEodCwgZSk7Cist fQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0j W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy1m biBlbmRpYW5fbG9hZF9hbmRfc3RvcmVzKCkgeworLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAg IGxldCB4ID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCist ICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQg bXV0IHk6IFtpMTY7IDhdID0gWzA7IDhdOworLSAgICB4LndyaXRlX3RvX3NsaWNlX3VuYWxpZ25l ZCh1bnNhZmUgeyBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KCZtdXQgeSBhcyAqbXV0IF8gYXMg Km11dCBpOCwgMTYpIH0pOworLQorLSAgICBsZXQgZTogW2kxNjsgOF0gPSBpZiBjZmchKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAgWzI1NiwgNzcwLCAxMjg0LCAxNzk4LCAy MzEyLCAyODI2LCAzMzQwLCAzODU0XQorLSAgICB9IGVsc2UgeworLSAgICAgICAgWzEsIDUxNSwg MTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KKy0gICAgfTsKKy0gICAgYXNzZXJ0 X2VxISh5LCBlKTsKKy0KKy0gICAgbGV0IHogPSBpOHgxNjo6ZnJvbV9zbGljZV91bmFsaWduZWQo dW5zYWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzKCZ5IGFzICpjb25zdCBfIGFzICpjb25zdCBp OCwgMTYpIH0pOworLSAgICBhc3NlcnRfZXEhKHosIHgpOworLX0KKy0KKy0jW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistZm4gZW5kaWFuX2FycmF5X3VuaW9u KCkgeworLSAgICB1bmlvbiBBIHsKKy0gICAgICAgIGRhdGE6IFtmMzI7IDRdLAorLSAgICAgICAg dmVjOiBmMzJ4NCwKKy0gICAgfQorLSAgICBsZXQgeDogW2YzMjsgNF0gPSB1bnNhZmUgeyBBIHsg dmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsKKy0gICAgLy8gQXMgYWxs IG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1hbnRpc3NhXjEgcmFuZ2Us IGl0CistICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhlbSB0byBhY3R1YWxseSBm YWlsIHRvIGNvbXBhcmUuCistICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICB7 CistICAgICAgICBhc3NlcnRfZXEhKHhbMF0sIDBfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEo eFsxXSwgMV9mMzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4WzJdLCAyX2YzMik7CistICAgICAg ICBhc3NlcnRfZXEhKHhbM10sIDNfZjMyKTsKKy0gICAgfQorLSAgICBsZXQgeTogZjMyeDQgPSB1 bnNhZmUgeyBBIHsgZGF0YTogWzMuLCAyLiwgMS4sIDAuXSB9LnZlYyB9OworLSAgICBhc3NlcnRf ZXEhKHksIGYzMng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKKy0KKy0gICAgdW5pb24gQiB7Cist ICAgICAgICBkYXRhOiBbaTg7IDE2XSwKKy0gICAgICAgIHZlYzogaTh4MTYsCistICAgIH0KKy0g ICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCistICAgICAgICAw LCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0 LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IFtpODsgMTZdID0gdW5zYWZlIHsgQiB7IHZlYzog eCB9LmRhdGEgfTsKKy0KKy0gICAgZm9yIChpLCB2KSBpbiB4Lml0ZXIoKS5lbnVtZXJhdGUoKSB7 CistICAgICAgICBhc3NlcnRfZXEhKGkgYXMgaTgsICp2KTsKKy0gICAgfQorLQorLSAgICAjW3J1 c3RmbXQ6OnNraXBdCistICAgIGxldCB5ID0gWworLSAgICAgICAgMTUsIDE0LCAxMywgMTIsIDEx LCAxOSwgOSwgOCwKKy0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKKy0gICAgXTsKKy0g ICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgZSA9IGk4eDE2OjpuZXcoCistICAgICAgICAx NSwgMTQsIDEzLCAxMiwgMTEsIDE5LCA5LCA4LAorLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwg MSwgMAorLSAgICApOworLSAgICBsZXQgeiA9IHVuc2FmZSB7IEIgeyBkYXRhOiB5IH0udmVjIH07 CistICAgIGFzc2VydF9lcSEoeiwgZSk7CistCistICAgIHVuaW9uIEMgeworLSAgICAgICAgZGF0 YTogW2kxNjsgOF0sCistICAgICAgICB2ZWM6IGk4eDE2LAorLSAgICB9CistICAgICNbcnVzdGZt dDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywg NCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAg ICk7CistICAgIGxldCB4OiBbaTE2OyA4XSA9IHVuc2FmZSB7IEMgeyB2ZWM6IHggfS5kYXRhIH07 CistCistICAgIGxldCBlOiBbaTE2OyA4XSA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0 bGUiKSB7CistICAgICAgICBbMjU2LCA3NzAsIDEyODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAs IDM4NTRdCistICAgIH0gZWxzZSB7CistICAgICAgICBbMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3 LCAyNTcxLCAzMDg1LCAzNTk5XQorLSAgICB9OworLSAgICBhc3NlcnRfZXEhKHgsIGUpOworLX0K Ky0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistZm4g ZW5kaWFuX3R1cGxlX2FjY2VzcygpIHsKKy0gICAgdHlwZSBGMzJ4NFQgPSAoZjMyLCBmMzIsIGYz MiwgZjMyKTsKKy0gICAgdW5pb24gQSB7CistICAgICAgICBkYXRhOiBGMzJ4NFQsCistICAgICAg ICB2ZWM6IGYzMng0LAorLSAgICB9CistICAgIGxldCB4OiBGMzJ4NFQgPSB1bnNhZmUgeyBBIHsg dmVjOiBmMzJ4NDo6bmV3KDAuLCAxLiwgMi4sIDMuKSB9LmRhdGEgfTsKKy0gICAgLy8gQXMgYWxs IG9mIHRoZXNlIGFyZSBpbnRlZ2VyIHZhbHVlcyB3aXRoaW4gdGhlIG1hbnRpc3NhXjEgcmFuZ2Us IGl0CistICAgIC8vIHdvdWxkIGJlIHZlcnkgdW51c3VhbCBmb3IgdGhlbSB0byBhY3R1YWxseSBm YWlsIHRvIGNvbXBhcmUuCistICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICB7 CistICAgICAgICBhc3NlcnRfZXEhKHguMCwgMF9mMzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4 LjEsIDFfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEoeC4yLCAyX2YzMik7CistICAgICAgICBh c3NlcnRfZXEhKHguMywgM19mMzIpOworLSAgICB9CistICAgIGxldCB5OiBmMzJ4NCA9IHVuc2Fm ZSB7IEEgeyBkYXRhOiAoMy4sIDIuLCAxLiwgMC4pIH0udmVjIH07CistICAgIGFzc2VydF9lcSEo eSwgZjMyeDQ6Om5ldygzLiwgMi4sIDEuLCAwLikpOworLQorLSAgICAjW3J1c3RmbXQ6OnNraXBd CistICAgIHR5cGUgSTh4MTZUID0gKGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgs IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKKy0gICAgdW5pb24gQiB7CistICAgICAgICBk YXRhOiBJOHgxNlQsCistICAgICAgICB2ZWM6IGk4eDE2LAorLSAgICB9CistCistICAgICNbcnVz dGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwg MywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCist ICAgICk7CistICAgIGxldCB4OiBJOHgxNlQgPSB1bnNhZmUgeyBCIHsgdmVjOiB4IH0uZGF0YSB9 OworLQorLSAgICBhc3NlcnRfZXEhKHguMCwgMCk7CistICAgIGFzc2VydF9lcSEoeC4xLCAxKTsK Ky0gICAgYXNzZXJ0X2VxISh4LjIsIDIpOworLSAgICBhc3NlcnRfZXEhKHguMywgMyk7CistICAg IGFzc2VydF9lcSEoeC40LCA0KTsKKy0gICAgYXNzZXJ0X2VxISh4LjUsIDUpOworLSAgICBhc3Nl cnRfZXEhKHguNiwgNik7CistICAgIGFzc2VydF9lcSEoeC43LCA3KTsKKy0gICAgYXNzZXJ0X2Vx ISh4LjgsIDgpOworLSAgICBhc3NlcnRfZXEhKHguOSwgOSk7CistICAgIGFzc2VydF9lcSEoeC4x MCwgMTApOworLSAgICBhc3NlcnRfZXEhKHguMTEsIDExKTsKKy0gICAgYXNzZXJ0X2VxISh4LjEy LCAxMik7CistICAgIGFzc2VydF9lcSEoeC4xMywgMTMpOworLSAgICBhc3NlcnRfZXEhKHguMTQs IDE0KTsKKy0gICAgYXNzZXJ0X2VxISh4LjE1LCAxNSk7CistCistICAgICNbcnVzdGZtdDo6c2tp cF0KKy0gICAgbGV0IHkgPSAoCistICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4 LAorLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAorLSAgICApOworLSAgICBsZXQgejog aTh4MTYgPSB1bnNhZmUgeyBCIHsgZGF0YTogeSB9LnZlYyB9OworLSAgICAjW3J1c3RmbXQ6OnNr aXBdCistICAgIGxldCBlID0gaTh4MTY6Om5ldygKKy0gICAgICAgIDE1LCAxNCwgMTMsIDEyLCAx MSwgMTAsIDksIDgsCistICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCistICAgICk7Cist ICAgIGFzc2VydF9lcSEoZSwgeik7CistCistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgdHlw ZSBJMTZ4OFQgPSAoaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYpOworLSAg ICB1bmlvbiBDIHsKKy0gICAgICAgIGRhdGE6IEkxNng4VCwKKy0gICAgICAgIHZlYzogaTh4MTYs CistICAgIH0KKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2Ojpu ZXcoCistICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAs IDExLCAxMiwgMTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IEkxNng4VCA9IHVuc2Fm ZSB7IEMgeyB2ZWM6IHggfS5kYXRhIH07CistCistICAgIGxldCBlOiBbaTE2OyA4XSA9IGlmIGNm ZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAgICBbMjU2LCA3NzAsIDEyODQs IDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTRdCistICAgIH0gZWxzZSB7CistICAgICAgICBb MSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQorLSAgICB9OworLSAg ICBhc3NlcnRfZXEhKHguMCwgZVswXSk7CistICAgIGFzc2VydF9lcSEoeC4xLCBlWzFdKTsKKy0g ICAgYXNzZXJ0X2VxISh4LjIsIGVbMl0pOworLSAgICBhc3NlcnRfZXEhKHguMywgZVszXSk7Cist ICAgIGFzc2VydF9lcSEoeC40LCBlWzRdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjUsIGVbNV0pOwor LSAgICBhc3NlcnRfZXEhKHguNiwgZVs2XSk7CistICAgIGFzc2VydF9lcSEoeC43LCBlWzddKTsK Ky0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICAjW3JlcHIoQyldCistICAgICNbZGVyaXZl KENvcHkgLENsb25lKV0KKy0gICAgcHViIHN0cnVjdCBUdXAocHViIGk4LCBwdWIgaTgsIHB1YiBp MTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LAorLSAgICAgICAgICAgICAgICAgICBwdWIgaTgs IHB1YiBpOCwgcHViIGkxNiwgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYpOworLQorLSAgICB1bmlv biBEIHsKKy0gICAgICAgIGRhdGE6IFR1cCwKKy0gICAgICAgIHZlYzogaTh4MTYsCistICAgIH0K Ky0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCistICAg ICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwg MTMsIDE0LCAxNSwKKy0gICAgKTsKKy0gICAgbGV0IHg6IFR1cCA9IHVuc2FmZSB7IEQgeyB2ZWM6 IHggfS5kYXRhIH07CistCistICAgIGxldCBlOiBbaTE2OyAxMl0gPSBpZiBjZmchKHRhcmdldF9l bmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAgWzAsIDEsIDc3MCwgNCwgNSwgMTc5OCwgOCwg OSwgMjgyNiwgMTIsIDEzLCAzODU0XQorLSAgICB9IGVsc2UgeworLSAgICAgICAgWzAsIDEsIDUx NSwgNCwgNSwgMTU0MywgOCwgOSwgMjU3MSwgMTIsIDEzLCAzNTk5XQorLSAgICB9OworLSAgICBh c3NlcnRfZXEhKHguMCBhcyBpMTYsIGVbMF0pOworLSAgICBhc3NlcnRfZXEhKHguMSBhcyBpMTYs IGVbMV0pOworLSAgICBhc3NlcnRfZXEhKHguMiBhcyBpMTYsIGVbMl0pOworLSAgICBhc3NlcnRf ZXEhKHguMyBhcyBpMTYsIGVbM10pOworLSAgICBhc3NlcnRfZXEhKHguNCBhcyBpMTYsIGVbNF0p OworLSAgICBhc3NlcnRfZXEhKHguNSBhcyBpMTYsIGVbNV0pOworLSAgICBhc3NlcnRfZXEhKHgu NiBhcyBpMTYsIGVbNl0pOworLSAgICBhc3NlcnRfZXEhKHguNyBhcyBpMTYsIGVbN10pOworLSAg ICBhc3NlcnRfZXEhKHguOCBhcyBpMTYsIGVbOF0pOworLSAgICBhc3NlcnRfZXEhKHguOSBhcyBp MTYsIGVbOV0pOworLSAgICBhc3NlcnRfZXEhKHguMTAgYXMgaTE2LCBlWzEwXSk7CistICAgIGFz c2VydF9lcSEoeC4xMSBhcyBpMTYsIGVbMTFdKTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkv cnVzdC92ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCituZXcgZmlsZSBtb2RlIDEw MDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr Ly5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMCwwICsxLDEgQEAKKyt7ImZpbGVzIjp7IkNhcmdv LnRvbWwiOiJmMjVkODgwNDQ5MTRjYjM0NjZkZjQzYmMzOWExOTllMTU4OWRkYTFhYWQzMjI2Yzlj N2U3YWM0ZDJmODc1MWQwIiwiTElDRU5TRS1BUEFDSEUiOiJhNjBlZWE4MTc1MTQ1MzE2NjhkN2Uw MDc2NTczMTQ0OWZlMTRkMDU5ZDMyNDllMGJjOTNiMzZkZTQ1Zjc1OWYyIiwiTElDRU5TRS1NSVQi OiJiN2U2NTBmM2ZjZTVjNTMyNDlkMWNkYzYwOGI1NGRmMTU2YTk3ZWRkNjM2Y2Y5ZDIzNDk4ZDBj ZmU3YWVjNjNlIiwiUkVBRE1FLm1kIjoiYWMyYTBhMzYwODEyNDM2YmQ1Nzk4ZjVmZTJhZmZlN2Q2 ZWQ5ZWI3ZjE1ZDZlNGQ3MzkzMWU5NWI0Mzc1NjBmMiIsInNyYy9jaGFubmVsLnJzIjoiZDI0NDNk NTAzZDRjYzQ2OWExNzFhNTFhMjZlY2EzZWMwZDJhNThiNWY3Mzc1YTg0NTQyYzM2ZjE0MjE3NjZh OCIsInNyYy9kYXRlLnJzIjoiMDk1ODBhMGEyMDA4ZmFkMmNjYmM0M2ZiNDJhODhmNDIyMjFiOThi MDE2OTI3MDIwMjJhMjk2ZGM5Yzg2YmYzNyIsInNyYy9saWIucnMiOiI3NjBmMGQyOTU2N2VjYWE2 MTI4NzA4OGNmMjNjZjc0YjNjMGVmYmJjZDMwNzdjZWE1ZmI3Yzg4MzU5ZTk2YzdlIiwic3JjL3Zl cnNpb24ucnMiOiJkYmExOGEyNTk4M2VjNmUzN2I5NTJmNGNkYzUyMTljOWU1YWJiYTJjM2E3NmNl Zjg3NDY1ZTFmYmE2ZjhhYzg5In0sInBhY2thZ2UiOiI0OTg3NGI1MTY3YjY1ZDcxOTNiOGFiYTE1 NjdmNWM3ZDkzZDAwMWNhZmMzNDYwMGNlZTAwM2VkYTc4N2U0ODNmIn0KK1wgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVj ay9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbAorQEAgLTAsMCArMSwyNCBAQAorKyMgVEhJUyBG SUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCisrIworKyMgV2hlbiB1cGxv YWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2FsbHkKKysj ICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJpbGl0eQor KyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0aGAgZGVw ZW5kZW5jaWVzCisrIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMu CisrIworKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBv cmlnaW5hbCBDYXJnby50b21sCisrIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChh bmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorKyMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhl IG9yaWdpbmFsIGNvbnRlbnRzLgorKworK1twYWNrYWdlXQorK25hbWUgPSAidmVyc2lvbl9jaGVj ayIKKyt2ZXJzaW9uID0gIjAuOS40IgorK2F1dGhvcnMgPSBbIlNlcmdpbyBCZW5pdGV6IDxzYkBz ZXJnaW8uYno+Il0KKytleGNsdWRlID0gWyJzdGF0aWMiXQorK2Rlc2NyaXB0aW9uID0gIlRpbnkg Y3JhdGUgdG8gY2hlY2sgdGhlIHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZC9ydW5uaW5nIHJ1c3Rj LiIKKytkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrLyIKKyty ZWFkbWUgPSAiUkVBRE1FLm1kIgorK2tleXdvcmRzID0gWyJ2ZXJzaW9uIiwgInJ1c3RjIiwgIm1p bmltdW0iLCAiY2hlY2siXQorK2xpY2Vuc2UgPSAiTUlUL0FwYWNoZS0yLjAiCisrcmVwb3NpdG9y eSA9ICJodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9uX2NoZWNrIgorKwor K1tkZXBlbmRlbmNpZXNdCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2No ZWNrL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VO U0UtQVBBQ0hFCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtQVBBQ0hFCitAQCAtMCwwICsxLDIw MSBAQAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisrICAg ICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorKyAgICAgICAg ICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKysKKytURVJNUyBB TkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKysK KysxLiBEZWZpbml0aW9ucy4KKysKKysgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMg YW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorKyAgIGFuZCBkaXN0cmlidXRp b24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50Lgor KworKyAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0 eSBhdXRob3JpemVkIGJ5CisrICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5n IHRoZSBMaWNlbnNlLgorKworKyAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9u IG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKysgICBvdGhlciBlbnRpdGllcyB0aGF0IGNv bnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisrICAgY29udHJv bCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwK KysgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0 byBjYXVzZSB0aGUKKysgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwg d2hldGhlciBieSBjb250cmFjdCBvcgorKyAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAg b2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorKyAgIG91dHN0YW5kaW5nIHNo YXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisrCisr ICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVu dGl0eQorKyAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2Uu CisrCisrICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3Ig bWFraW5nIG1vZGlmaWNhdGlvbnMsCisrICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBz b2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorKyAgIHNvdXJjZSwgYW5kIGNvbmZp Z3VyYXRpb24gZmlsZXMuCisrCisrICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3Jt IHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKysgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xh dGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisrICAgbm90IGxpbWl0ZWQgdG8g Y29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorKyAgIGFuZCBj b252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKysKKysgICAiV29yayIgc2hhbGwgbWVh biB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorKyAgIE9iamVj dCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5 IGEKKysgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQg dG8gdGhlIHdvcmsKKysgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXgg YmVsb3cpLgorKworKyAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3 aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKysgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChv ciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisrICAgZWRpdG9yaWFs IHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0 aW9ucworKyAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRo b3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisrICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZl IFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisrICAgc2VwYXJhYmxl IGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2Vz IG9mLAorKyAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisrCisrICAg IkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRp bmcKKysgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNh dGlvbnMgb3IgYWRkaXRpb25zCisrICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3Mg dGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisrICAgc3VibWl0dGVkIHRvIExpY2Vuc29y IGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorKyAgIG9y IGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9u IGJlaGFsZiBvZgorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2Yg dGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorKyAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0 cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKysgICB0byB0aGUg TGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRl ZCB0bworKyAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3Vy Y2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisrICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMg dGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKysgICBMaWNlbnNvciBm b3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQK KysgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2Vk IG9yIG90aGVyd2lzZQorKyAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0 IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorKworKyAgICJDb250cmlidXRvciIgc2hh bGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAg b24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGlj ZW5zb3IgYW5kCisrICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsu CisrCisrMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhl cmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1 c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgY29weXJpZ2h0 IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisrICAg cHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3Ry aWJ1dGUgdGhlCisrICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBv ciBPYmplY3QgZm9ybS4KKysKKyszLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0 byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29u dHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisrICAgd29ybGR3aWRl LCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKysg ICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1h a2UsIGhhdmUgbWFkZSwKKysgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5k IG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKysgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBw bGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorKyAgIGJ5IHN1Y2gg Q29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisrICAg Q29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1 dGlvbihzKQorKyAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykg d2FzIHN1Ym1pdHRlZC4gSWYgWW91CisrICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFn YWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKysgICBjcm9zcy1jbGFpbSBvciBjb3VudGVy Y2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisrICAgb3IgYSBDb250 cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QK KysgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50 IGxpY2Vuc2VzCisrICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0 IFdvcmsgc2hhbGwgdGVybWluYXRlCisrICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9u IGlzIGZpbGVkLgorKworKzQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQg ZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisrICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRo ZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisrICAgbW9kaWZpY2F0aW9ucywg YW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKysgICBtZWV0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKysgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkg b3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorKyAgICAgICBEZXJpdmF0aXZlIFdvcmtz IGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorKworKyAgIChiKSBZb3UgbXVzdCBjYXVzZSBh bnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKysgICAgICAgc3Rh dGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisrCisrICAgKGMpIFlvdSBtdXN0 IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisrICAg ICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJr LCBhbmQKKysgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBv ZiB0aGUgV29yaywKKysgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3Qg cGVydGFpbiB0byBhbnkgcGFydCBvZgorKyAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5k CisrCisrICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFz IHBhcnQgb2YgaXRzCisrICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBX b3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKysgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxl IGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisrICAgICAgIHdpdGhp biBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAor KyAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBh dCBsZWFzdCBvbmUKKysgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5P VElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKysgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZh dGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorKyAgICAgICBkb2N1bWVudGF0 aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKysg ICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3Ms IGlmIGFuZAorKyAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFs bHkgYXBwZWFyLiBUaGUgY29udGVudHMKKysgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBm b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorKyAgICAgICBkbyBub3QgbW9kaWZ5 IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorKyAgICAgICBu b3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25n c2lkZQorKyAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0 aGUgV29yaywgcHJvdmlkZWQKKysgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRp b24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisrICAgICAgIGFzIG1vZGlmeWluZyB0aGUg TGljZW5zZS4KKysKKysgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50 IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKysgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9y IGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisrICAgZm9yIHVzZSwgcmVw cm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorKyAg IGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIg dXNlLAorKyAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhl cndpc2UgY29tcGxpZXMgd2l0aAorKyAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExp Y2Vuc2UuCisrCisrNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4 cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorKyAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9u YWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworKyAgIGJ5IFlvdSB0byB0 aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisr ICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlv bnMuCisrICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwg c3VwZXJzZWRlIG9yIG1vZGlmeQorKyAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5z ZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisrICAgd2l0aCBMaWNlbnNvciByZWdh cmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorKworKzYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5z ZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKysgICBuYW1lcywg dHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5z b3IsCisrICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkg dXNlIGluIGRlc2NyaWJpbmcgdGhlCisrICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1 Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisrCisrNy4gRGlzY2xhaW1lciBv ZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisrICAgYWdy ZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAor KyAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMi IEJBU0lTLAorKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E LCBlaXRoZXIgZXhwcmVzcyBvcgorKyAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1p dGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisrICAgb2YgVElUTEUsIE5PTi1J TkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorKyAgIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5n IHRoZQorKyAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUg V29yayBhbmQgYXNzdW1lIGFueQorKyAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJj aXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKysKKys4LiBMaW1pdGF0aW9u IG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKysg ICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90 aGVyd2lzZSwKKysgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMg ZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorKyAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8g aW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisrICAgbGlhYmxlIHRvIFlvdSBm b3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorKyAg IGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFy aXNpbmcgYXMgYQorKyAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ug b3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKysgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1p dGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisrICAgd29yayBzdG9wcGFnZSwg Y29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKysgICBvdGhl ciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9y CisrICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2Vz LgorKworKzkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hp bGUgcmVkaXN0cmlidXRpbmcKKysgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJl b2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorKyAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBh Y2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisrICAgb3Igb3RoZXIg bGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMK KysgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91 IG1heSBhY3Qgb25seQorKyAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJl c3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisrICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9y LCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorKyAgIGRlZmVuZCwgYW5kIGhv bGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorKyAgIGluY3Vy cmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSBy ZWFzb24KKysgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlv bmFsIGxpYWJpbGl0eS4KKysKKytFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKysKKytBUFBF TkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisrCisr ICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBm b2xsb3dpbmcKKysgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3Nl ZCBieSBicmFja2V0cyAiW10iCisrICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWlu ZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKysgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRl eHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorKyAgIGNvbW1lbnQgc3lu dGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorKyAgIGZp bGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBv biB0aGUKKysgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZv ciBlYXNpZXIKKysgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMu CisrCisrQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisrCisrTGlj ZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNl Iik7CisreW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRo IHRoZSBMaWNlbnNlLgorK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAor KworKwlodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKysKKytVbmxl c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv ZnR3YXJlCisrZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24g YW4gIkFTIElTIiBCQVNJUywKKytXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB TlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKytTZWUgdGhlIExpY2Vuc2UgZm9y IHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisrbGltaXRh dGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L0xJQ0VOU0UtTUlUCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCitAQCAtMCwwICsxLDE5 IEBACisrVGhlIE1JVCBMaWNlbnNlIChNSVQpCisrQ29weXJpZ2h0IChjKSAyMDE3LTIwMTggU2Vy Z2lvIEJlbml0ZXoKKysKKytQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mCisrdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRl YWwgaW4KKyt0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCisrdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKKyt0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sCisrc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnM6CisrCisrVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCisrY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKysKKytUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorK0lNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLCBGSVRORVNTCisrRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SCisrQ09QWVJJR0hUIEhPTERF UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBX SEVUSEVSCisrSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKytDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9y dXN0L3ZlcnNpb25fY2hlY2svUkVBRE1FLm1kCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZAor QEAgLTAsMCArMSw4MCBAQAorKyMgdmVyc2lvblxfY2hlY2sKKysKKytbIVtCdWlsZCBTdGF0dXNd KGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L3ZlcnNpb25fY2hlY2svd29ya2Zsb3dz L0NJL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9TZXJnaW9CZW5pdGV6L3ZlcnNpb25f Y2hlY2svYWN0aW9ucykKKytbIVtDdXJyZW50IENyYXRlcy5pbyBWZXJzaW9uXShodHRwczovL2lt Zy5zaGllbGRzLmlvL2NyYXRlcy92L3ZlcnNpb25fY2hlY2suc3ZnKV0oaHR0cHM6Ly9jcmF0ZXMu aW8vY3JhdGVzL3ZlcnNpb25fY2hlY2spCisrWyFbcnVzdGRvY3Mgb24gZG9jcy5yc10oaHR0cHM6 Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2svYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9kb2NzLnJzL3ZlcnNp b25fY2hlY2spCisrCisrVGhpcyB0aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9y IGluc3RhbGxlZCBgcnVzdGNgIG1lZXRzIHNvbWUgdmVyc2lvbgorK3JlcXVpcmVtZW50cy4gVGhl IHZlcnNpb24gaXMgcXVlcmllZCBieSBjYWxsaW5nIHRoZSBSdXN0IGNvbXBpbGVyIHdpdGgKKytg LS12ZXJzaW9uYC4gVGhlIHBhdGggdG8gdGhlIGNvbXBpbGVyIGlzIGRldGVybWluZWQgZmlyc3Qg dmlhIHRoZSBgUlVTVENgCisrZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBzZXQs IHRoZW4gYHJ1c3RjYCBpcyB1c2VkLiBJZiB0aGF0IGZhaWxzLCBubworK2RldGVybWluYXRpb24g aXMgbWFkZSwgYW5kIGNhbGxzIHJldHVybiBgTm9uZWAuCisrCisrIyMgVXNhZ2UKKysKKytBZGQg dG8geW91ciBgQ2FyZ28udG9tbGAgZmlsZSwgdHlwaWNhbGx5IGFzIGEgYnVpbGQgZGVwZW5kZW5j eToKKysKKytgYGB0b21sCisrW2J1aWxkLWRlcGVuZGVuY2llc10KKyt2ZXJzaW9uX2NoZWNrID0g IjAuOSIKKytgYGAKKysKKytgdmVyc2lvbl9jaGVja2AgaXMgY29tcGF0aWJsZSBhbmQgY29tcGls ZXMgd2l0aCBSdXN0IDEuMC4wIGFuZCBiZXlvbmQuCisrCisrIyMgRXhhbXBsZXMKKysKKytTZXQg YSBgY2ZnYCBmbGFnIGluIGBidWlsZC5yc2AgaWYgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIGRl dGVybWluZWQgdG8gYmUKKythdCBsZWFzdCB2ZXJzaW9uIGAxLjEzLjBgOgorKworK2BgYHJ1c3QK KytleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysKKytpZiBydXN0Yzo6aXNf bWluX3ZlcnNpb24oIjEuMTMuMCIpLnVud3JhcF9vcihmYWxzZSkgeworKyAgICBwcmludGxuISgi Y2FyZ286cnVzdGMtY2ZnPXF1ZXN0aW9uX21hcmtfb3BlcmF0b3IiKTsKKyt9CisrYGBgCisrCisr Q2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciB3YXMgcmVsZWFzZWQgb24gb3IgYWZ0ZXIg YDIwMTgtMTItMThgOgorKworK2BgYHJ1c3QKKytleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBh cyBydXN0YzsKKysKKyttYXRjaCBydXN0Yzo6aXNfbWluX2RhdGUoIjIwMTgtMTItMTgiKSB7Cisr ICAgIFNvbWUodHJ1ZSkgPT4gIlllcCEgSXQncyByZWNlbnQhIiwKKysgICAgU29tZShmYWxzZSkg PT4gIk5vLCBpdCdzIG9sZGVyLiIsCisrICAgIE5vbmUgPT4gIkNvdWxkbid0IGRldGVybWluZSB0 aGUgcnVzdGMgdmVyc2lvbi4iCisrfTsKKytgYGAKKysKKytDaGVjayB0aGF0IHRoZSBydW5uaW5n IGNvbXBpbGVyIHN1cHBvcnRzIGZlYXR1cmUgZmxhZ3M6CisrCisrYGBgcnVzdAorK2V4dGVybiBj cmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKworK21hdGNoIHJ1c3RjOjppc19mZWF0dXJl X2ZsYWdnYWJsZSgpIHsKKysgICAgU29tZSh0cnVlKSA9PiAiWWVzISBJdCdzIGEgZGV2IG9yIG5p Z2h0bHkgcmVsZWFzZSEiLAorKyAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgc3RhYmxlIG9y IGJldGEuIiwKKysgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJz aW9uLiIKKyt9OworK2BgYAorKworK1NlZSB0aGUgW3J1c3Rkb2NzXShodHRwczovL2RvY3MucnMv dmVyc2lvbl9jaGVjaykgZm9yIG1vcmUgZXhhbXBsZXMgYW5kIGNvbXBsZXRlCisrZG9jdW1lbnRh dGlvbi4KKysKKysjIyBBbHRlcm5hdGl2ZXMKKysKKytUaGlzIGNyYXRlIGlzIGRlYWQgc2ltcGxl IHdpdGggbm8gZGVwZW5kZW5jaWVzLiBJZiB5b3UgbmVlZCBzb21ldGhpbmcgbW9yZSBhbmQKKytk b24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgb2J0YWlu ZWQsIG9yIGlmIHlvdSBkb24ndAorK21pbmQgYWRkaW5nIGRlcGVuZGVuY2llcywgc2VlIFtydXN0 Y192ZXJzaW9uXS4gSWYgeW91J2QgaW5zdGVhZCBwcmVmZXIgYSBmZWF0dXJlCisrZGV0ZWN0aW9u IGxpYnJhcnkgdGhhdCB3b3JrcyBieSBkeW5hbWljYWxseSBpbnZva2luZyBgcnVzdGNgIHdpdGgg YQorK3JlcHJlc2VudGF0aXZlIGNvZGUgc2FtcGxlLCBzZWUgW2F1dG9jZmddLgorKworK1tydXN0 Y192ZXJzaW9uXTogaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RjX3ZlcnNpb24KKytbYXV0 b2NmZ106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9hdXRvY2ZnCisrCisrIyMgTGljZW5zZQor KworK2B2ZXJzaW9uX2NoZWNrYCBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIgb2YgdGhlIGZvbGxv d2luZywgYXQgeW91ciBvcHRpb246CisrCisrICogQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w LCAoW0xJQ0VOU0UtQVBBQ0hFXShMSUNFTlNFLUFQQUNIRSkgb3IgaHR0cDovL3d3dy5hcGFjaGUu b3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKQorKyAqIE1JVCBMaWNlbnNlIChbTElDRU5TRS1NSVRd KExJQ0VOU0UtTUlUKSBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5lbC5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lv bl9jaGVjay9zcmMvY2hhbm5lbC5ycworQEAgLTAsMCArMSwxOTMgQEAKKyt1c2Ugc3RkOjpmbXQ7 CisrCisrI1tkZXJpdmUoRGVidWcsIFBhcnRpYWxFcSwgRXEsIENvcHksIENsb25lKV0KKytlbnVt IEtpbmQgeworKyAgICBEZXYsCisrICAgIE5pZ2h0bHksCisrICAgIEJldGEsCisrICAgIFN0YWJs ZSwKKyt9CisrCisrLy8vIFJlbGVhc2UgY2hhbm5lbDogImRldiIsICJuaWdodGx5IiwgImJldGEi LCBvciAic3RhYmxlIi4KKysjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwgQ29weSwgQ2xv bmUpXQorK3B1YiBzdHJ1Y3QgQ2hhbm5lbChLaW5kKTsKKysKKytpbXBsIENoYW5uZWwgeworKyAg ICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgY2hhbm5lbCBvZiB0aGUgcnVubmluZyBjb21waWxlci4g SWYgaXQgY2Fubm90IGJlCisrICAgIC8vLyBkZXRlcm1pbmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwg ZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCisrICAgIC8vLworKyAgICAv Ly8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZl cnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8vLworKyAgICAvLy8gbWF0Y2ggQ2hhbm5lbDo6 cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21lKGMpID0+IGZvcm1hdCEoIlRoZSBjaGFubmVsIGlz OiB7fSIsIGMpLAorKyAgICAvLy8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFpbGVkIHRvIHJlYWQg dGhlIHJlbGVhc2UgY2hhbm5lbC4iKQorKyAgICAvLy8gfTsKKysgICAgLy8vIGBgYAorKyAgICBw dWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxDaGFubmVsPiB7CisrICAgICAgICA6OmdldF92ZXJzaW9u X2FuZF9kYXRlKCkKKysgICAgICAgICAgICAuYW5kX3RoZW4ofCh2ZXJzaW9uLCBfKXwgdmVyc2lv bikKKysgICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IENoYW5uZWw6OnBhcnNlKCZ2ZXJz aW9uKSkKKysgICAgfQorKworKyAgICAvLy8gUGFyc2UgYSBSdXN0IHJlbGVhc2UgY2hhbm5lbCBm cm9tIGEgUnVzdCByZWxlYXNlIHZlcnNpb24gc3RyaW5nIChvZiB0aGUKKysgICAgLy8vIGZvcm0g YG1ham9yWy5taW5vclsucGF0Y2hbLWNoYW5uZWxdXV1gKS4gUmV0dXJucyBgTm9uZWAgaWYgYHZl cnNpb25gIGlzCisrICAgIC8vLyBub3QgYSB2YWxpZCBSdXN0IHZlcnNpb24gc3RyaW5nLgorKyAg ICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysg ICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxl dCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtZGV2IikudW53cmFwKCk7CisrICAgIC8vLyBh c3NlcnQhKGRldi5pc19kZXYoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IG5pZ2h0bHkgPSBD aGFubmVsOjpwYXJzZSgiMS40Mi4yLW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2Vy dCEobmlnaHRseS5pc19uaWdodGx5KCkpOworKyAgICAvLy8KKysgICAgLy8vIGxldCBiZXRhID0g Q2hhbm5lbDo6cGFyc2UoIjEuMzIuMC1iZXRhIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQh KGJldGEuaXNfYmV0YSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5l bDo6cGFyc2UoIjEuNC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKHN0YWJsZS5pc19z dGFibGUoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHBhcnNlKHZlcnNpb246ICZzdHIp IC0+IE9wdGlvbjxDaGFubmVsPiB7CisrICAgICAgICBsZXQgdmVyc2lvbiA9IHZlcnNpb24udHJp bSgpOworKyAgICAgICAgaWYgdmVyc2lvbi5jb250YWlucygiLWRldiIpIHx8IHZlcnNpb24gPT0g ImRldiIgeworKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpEZXYpKQorKyAgICAgICAg fSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1uaWdodGx5IikgfHwgdmVyc2lvbiA9PSAibmln aHRseSIgeworKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpOaWdodGx5KSkKKysgICAg ICAgIH0gZWxzZSBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItYmV0YSIpIHx8IHZlcnNpb24gPT0gImJl dGEiIHsKKysgICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6QmV0YSkpCisrICAgICAgICB9 IGVsc2UgaWYgIXZlcnNpb24uY29udGFpbnMoIi0iKSB7CisrICAgICAgICAgICAgU29tZShDaGFu bmVsKEtpbmQ6OlN0YWJsZSkpCisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIE5vbmUK KysgICAgICAgIH0KKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUg cmVsZWFzZSBjaGFubmVsLgorKyAgICBmbiBhc19zdHIoJnNlbGYpIC0+ICYnc3RhdGljIHN0ciB7 CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAgICAgIEtpbmQ6OkRldiA9PiAiZGV2 IiwKKysgICAgICAgICAgICBLaW5kOjpCZXRhID0+ICJiZXRhIiwKKysgICAgICAgICAgICBLaW5k OjpOaWdodGx5ID0+ICJuaWdodGx5IiwKKysgICAgICAgICAgICBLaW5kOjpTdGFibGUgPT4gInN0 YWJsZSIsCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlm IHRoaXMgY2hhbm5lbCBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzLiBJbiBvdGhlciB3b3JkcywKKysg ICAgLy8vIHJldHVybnMgYHRydWVgIGlmIHRoZSBjaGFubmVsIGlzIGVpdGhlciBgZGV2YCBvciBg bmlnaHRseWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAv Ly8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8v LworKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51bndyYXAo KTsKKysgICAgLy8vIGFzc2VydCEoZGV2LnN1cHBvcnRzX2ZlYXR1cmVzKCkpOworKyAgICAvLy8K KysgICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2UoIjEuNDIuMi1uaWdodGx5Iiku dW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKG5pZ2h0bHkuc3VwcG9ydHNfZmVhdHVyZXMoKSk7 CisrICAgIC8vLworKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zMi4wLWJl dGEiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIWJldGEuc3VwcG9ydHNfZmVhdHVyZXMo KSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjQu MCIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLnN1cHBvcnRzX2ZlYXR1cmVz KCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBzdXBwb3J0c19mZWF0dXJlcygmc2VsZikg LT4gYm9vbCB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAgICAgIEtpbmQ6OkRl diB8IEtpbmQ6Ok5pZ2h0bHkgPT4gdHJ1ZSwKKysgICAgICAgICAgICBLaW5kOjpCZXRhIHwgS2lu ZDo6U3RhYmxlID0+IGZhbHNlCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVy bnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgZGV2YCBhbmQgYGZhbHNlYCBvdGhlcndpc2Uu CisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVz dAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAgIC8vLworKyAgICAv Ly8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYiKS51bndyYXAoKTsKKysgICAg Ly8vIGFzc2VydCEoZGV2LmlzX2RldigpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3RhYmxl ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFz dGFibGUuaXNfZGV2KCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBpc19kZXYoJnNlbGYp IC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAgICAgICAgICBLaW5kOjpE ZXYgPT4gdHJ1ZSwKKysgICAgICAgICAgICBfID0+IGZhbHNlCisrICAgICAgICB9CisrICAgIH0K KysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgbmlnaHRseWAg YW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAg ICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFu bmVsOworKyAgICAvLy8KKysgICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2UoIjEu My4wLW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEobmlnaHRseS5pc19uaWdo dGx5KCkpOworKyAgICAvLy8KKysgICAgLy8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgi MS4wLjAiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5pc19uaWdodGx5KCkp OworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBpc19uaWdodGx5KCZzZWxmKSAtPiBib29sIHsK KysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAgICAgICAgICAgS2luZDo6TmlnaHRseSA9PiB0 cnVlLAorKyAgICAgICAgICAgIF8gPT4gZmFsc2UKKysgICAgICAgIH0KKysgICAgfQorKworKyAg ICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBiZXRhYCBhbmQgYGZhbHNl YCBvdGhlcndpc2UuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAg ICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7CisrICAg IC8vLworKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtYmV0YSIpLnVu d3JhcCgpOworKyAgICAvLy8gYXNzZXJ0IShiZXRhLmlzX2JldGEoKSk7CisrICAgIC8vLworKyAg ICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOworKyAg ICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX2JldGEoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHVi IGZuIGlzX2JldGEoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysg ICAgICAgICAgICBLaW5kOjpCZXRhID0+IHRydWUsCisrICAgICAgICAgICAgXyA9PiBmYWxzZQor KyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNo YW5uZWwgaXMgYHN0YWJsZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorKyAgICAvLy8KKysgICAg Ly8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2 ZXJzaW9uX2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxldCBzdGFibGUgPSBD aGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoc3RhYmxl LmlzX3N0YWJsZSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBh cnNlKCIxLjMuMC1iZXRhIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFiZXRhLmlzX3N0 YWJsZSgpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gaXNfc3RhYmxlKCZzZWxmKSAtPiBi b29sIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAgICAgICAgICAgS2luZDo6U3RhYmxl ID0+IHRydWUsCisrICAgICAgICAgICAgXyA9PiBmYWxzZQorKyAgICAgICAgfQorKyAgICB9Cisr fQorKworK2ltcGwgZm10OjpEaXNwbGF5IGZvciBDaGFubmVsIHsKKysgICAgZm4gZm10KCZzZWxm LCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICB3cml0 ZSEoZiwgInt9Iiwgc2VsZi5hc19zdHIoKSkKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMK K0BAIC0wLDAgKzEsMjAzIEBACisrdXNlIHN0ZDo6Zm10OworKworKy8vLyBSZWxlYXNlIGRhdGUg aW5jbHVkaW5nIHllYXIsIG1vbnRoLCBhbmQgZGF5LgorKy8vIEludGVybmFsIHN0b3JhZ2UgaXM6 IHlbMzEuLjldIHwgbVs4Li41XSB8IGRbNS4uLjBdLgorKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFs RXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlhbE9yZCwgT3JkKV0KKytwdWIgc3RydWN0IERhdGUo dTMyKTsKKysKKytpbXBsIERhdGUgeworKyAgICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgZGF0ZSBv ZiB0aGUgcnVubmluZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlCisrICAgIC8vLyBkZXRlcm1p bmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBg Tm9uZWAuCisrICAgIC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8g YGBgcnVzdAorKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAg ICAvLy8gbWF0Y2ggRGF0ZTo6cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21lKGQpID0+IGZvcm1h dCEoIlRoZSByZWxlYXNlIGRhdGUgaXM6IHt9IiwgZCksCisrICAgIC8vLyAgICAgTm9uZSA9PiBm b3JtYXQhKCJGYWlsZWQgdG8gcmVhZCB0aGUgcmVsZWFzZSBkYXRlLiIpCisrICAgIC8vLyB9Owor KyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiByZWFkKCkgLT4gT3B0aW9uPERhdGU+IHsKKysgICAg ICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUoKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8KF8s IGRhdGUpfCBkYXRlKQorKyAgICAgICAgICAgIC5hbmRfdGhlbih8ZGF0ZXwgRGF0ZTo6cGFyc2Uo JmRhdGUpKQorKyAgICB9CisrCisrICAgIC8vLyBQYXJzZSBhIHJlbGVhc2UgZGF0ZSBvZiB0aGUg Zm9ybSBgJVktJW0tJWRgLiBSZXR1cm5zIGBOb25lYCBpZiBgZGF0ZWAgaXMKKysgICAgLy8vIG5v dCBpbiBgJVktJW0tJWRgIGZvcm1hdC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysg ICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0 ZTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDE2LTA0LTIw IikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIy MDE2LTAxLTEwIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMTYtMDQtMjAi KSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUuZXhhY3RseSgiMjAxNi0wNC0yMCIpKTsKKysgICAg Ly8vCisrICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIxLTEyLTMxIikudW53cmFwKCku ZXhhY3RseSgiMjAyMS0xMi0zMSIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKERhdGU6 OnBhcnNlKCJNYXJjaCAxMywgMjAxOCIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBhc3NlcnQhKERh dGU6OnBhcnNlKCIxLTItMy00LTUiKS5pc19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShEYXRl OjpwYXJzZSgiMjAyMC0zMDAtMjMxMjAiKS5pc19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShE YXRlOjpwYXJzZSgiMjAyMC0xMi0xMiAxIikuaXNfbm9uZSgpKTsKKysgICAgLy8vIGFzc2VydCEo RGF0ZTo6cGFyc2UoIjIwMjAtMTAiKS5pc19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShEYXRl OjpwYXJzZSgiMjAyMCIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHBh cnNlKGRhdGU6ICZzdHIpIC0+IE9wdGlvbjxEYXRlPiB7CisrICAgICAgICBsZXQgbXV0IHltZCA9 IFswdTE2OyAzXTsKKysgICAgICAgIGZvciAoaSwgc3BsaXQpIGluIGRhdGUuc3BsaXQoJy0nKS5t YXAofHN8IHMucGFyc2U6Ojx1MTY+KCkpLmVudW1lcmF0ZSgpIHsKKysgICAgICAgICAgICB5bWRb aV0gPSBtYXRjaCAoaSwgc3BsaXQpIHsKKysgICAgICAgICAgICAgICAgKDMsIF8pIHwgKF8sIEVy cihfKSkgPT4gcmV0dXJuIE5vbmUsCisrICAgICAgICAgICAgICAgIChfLCBPayh2KSkgPT4gdiwK KysgICAgICAgICAgICB9OworKyAgICAgICAgfQorKworKyAgICAgICAgbGV0ICh5ZWFyLCBtb250 aCwgZGF5KSA9ICh5bWRbMF0sIHltZFsxXSwgeW1kWzJdKTsKKysgICAgICAgIGlmIHllYXIgPT0g MCB8fCBtb250aCA9PSAwIHx8IG1vbnRoID4gMTIgfHwgZGF5ID09IDAgfHwgZGF5ID4gMzEgewor KyAgICAgICAgICAgIHJldHVybiBOb25lOworKyAgICAgICAgfQorKworKyAgICAgICAgU29tZShE YXRlOjpmcm9tX3ltZCh5ZWFyLCBtb250aCBhcyB1OCwgZGF5IGFzIHU4KSkKKysgICAgfQorKwor KyAgICAvLy8gQ3JlYXRlcyBhIGBEYXRlYCBmcm9tIGAoeWVhciwgbW9udGgsIGRheSlgIGRhdGUg Y29tcG9uZW50cy4KKysgICAgLy8vCisrICAgIC8vLyBEb2VzIG5vdCBjaGVjayB0aGUgdmFsaWRp dHkgb2YgYHllYXJgLCBgbW9udGhgLCBvciBgZGF5YCwgYnV0IGB5ZWFyYCBpcworKyAgICAvLy8g dHJ1bmNhdGVkIHRvIDIzIGJpdHMgKCUgOCwzODgsNjA4KSwgYG1vbnRoYCB0byA0IGJpdHMgKCUg MTYpLCBhbmQgYGRheWAKKysgICAgLy8vIHRvIDUgYml0cyAoJSAzMikuCisrICAgIC8vLworKyAg ICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNl IHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpm cm9tX3ltZCgyMDIxLCA3LCAzMCkuZXhhY3RseSgiMjAyMS0wNy0zMCIpKTsKKysgICAgLy8vIGFz c2VydCEoRGF0ZTo6ZnJvbV95bWQoMjAxMCwgMywgMjMpLmV4YWN0bHkoIjIwMTAtMDMtMjMiKSk7 CisrICAgIC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1kKDIwOTAsIDEsIDMxKS5leGFjdGx5KCIy MDkwLTAxLTMxIikpOworKyAgICAvLy8KKysgICAgLy8vIC8vIFRydW5jYXRpb246IDMzICUgMzIg PT0gMHgyMSAmIDB4MUYgPT0gMS4KKysgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjA5 MCwgMSwgMzMpLmV4YWN0bHkoIjIwOTAtMDEtMDEiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHVi IGZuIGZyb21feW1kKHllYXI6IHUxNiwgbW9udGg6IHU4LCBkYXk6IHU4KSAtPiBEYXRlIHsKKysg ICAgICAgIGxldCB5ZWFyID0gKHllYXIgYXMgdTMyKSA8PCA5OworKyAgICAgICAgbGV0IG1vbnRo ID0gKChtb250aCBhcyB1MzIpICYgMHhGKSA8PCA1OworKyAgICAgICAgbGV0IGRheSA9IChkYXkg YXMgdTMyKSAmIDB4MUY7CisrICAgICAgICBEYXRlKHllYXIgfCBtb250aCB8IGRheSkKKysgICAg fQorKworKyAgICAvLy8gUmV0dXJuIHRoZSBvcmlnaW5hbCAoWVlZWSwgTU0sIEREKS4KKysgICAg Zm4gdG9feW1kKCZzZWxmKSAtPiAodTE2LCB1OCwgdTgpIHsKKysgICAgICAgIGxldCB5ID0gc2Vs Zi4wID4+IDk7CisrICAgICAgICBsZXQgbSA9IChzZWxmLjAgPj4gNSkgJiAweEY7CisrICAgICAg ICBsZXQgZCA9IHNlbGYuMCAmIDB4MUY7CisrICAgICAgICAoeSBhcyB1MTYsIG0gYXMgdTgsIGQg YXMgdTgpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1 cnMgb24gb3IgYWZ0ZXIgYGRhdGVgLgorKyAgICAvLy8KKysgICAgLy8vIElmIGBkYXRlYCBvY2N1 cnMgYmVmb3JlIGBzZWxmYCwgb3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCisrICAg IC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1w bGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVj azo6RGF0ZTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIw LTAxLTAxIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xl YXN0KCIyMDE5LTEyLTMxIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDIw LTAxLTAxIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X2xlYXN0KCIyMDE0LTA0LTMxIikp OworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbGVhc3QoIjIwMjAtMDEtMDIi KSk7CisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X2xlYXN0KCIyMDI0LTA4LTE4IikpOworKyAg ICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9v bCB7CisrICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQorKyAgICAgICAgICAgIC5tYXAofGRhdGV8 IHNlbGYgPj0gJmRhdGUpCisrICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKKysgICAgfQor KworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBvbiBvciBiZWZvcmUg YGRhdGVgLgorKyAgICAvLy8KKysgICAgLy8vIElmIGBkYXRlYCBvY2N1cnMgYWZ0ZXIgYHNlbGZg LCBvciBpZiBgZGF0ZWAgaXMgbm90IGluIGAlWS0lbS0lZGAKKysgICAgLy8vIGZvcm1hdCwgcmV0 dXJucyBgZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysg ICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOworKyAgICAv Ly8KKysgICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEtMDEiKS51bndyYXAo KTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAyMC0wMS0wMSIp KTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9tb3N0KCIyMDIwLTAxLTAyIikpOworKyAgICAv Ly8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMjQtMDgtMTgiKSk7CisrICAgIC8vLworKyAgICAv Ly8gYXNzZXJ0ISghZGF0ZS5hdF9tb3N0KCIyMDE5LTEyLTMxIikpOworKyAgICAvLy8gYXNzZXJ0 ISghZGF0ZS5hdF9tb3N0KCIyMDE0LTA0LTMxIikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBm biBhdF9tb3N0KCZzZWxmLCBkYXRlOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIERhdGU6OnBh cnNlKGRhdGUpCisrICAgICAgICAgICAgLm1hcCh8ZGF0ZXwgc2VsZiA8PSAmZGF0ZSkKKysgICAg ICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0 cnVlYCBpZiBgc2VsZmAgb2NjdXJzIGV4YWN0bHkgb24gYGRhdGVgLgorKyAgICAvLy8KKysgICAg Ly8vIElmIGBkYXRlYCBpcyBub3QgZXhhY3RseSBgc2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3Qg aW4gYCVZLSVtLSVkYAorKyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBmYWxzZWAuCisrICAgIC8v LworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAv Ly8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGRhdGUg PSBEYXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8v IGFzc2VydCEoZGF0ZS5leGFjdGx5KCIyMDIwLTAxLTAxIikpOworKyAgICAvLy8KKysgICAgLy8v IGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAxOS0xMi0zMSIpKTsKKysgICAgLy8vIGFzc2VydCEo IWRhdGUuZXhhY3RseSgiMjAxNC0wNC0zMSIpKTsKKysgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhh Y3RseSgiMjAyMC0wMS0wMiIpKTsKKysgICAgLy8vIGFzc2VydCEoIWRhdGUuZXhhY3RseSgiMjAy NC0wOC0xOCIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZXhhY3RseSgmc2VsZiwgZGF0 ZTogJnN0cikgLT4gYm9vbCB7CisrICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQorKyAgICAgICAg ICAgIC5tYXAofGRhdGV8IHNlbGYgPT0gJmRhdGUpCisrICAgICAgICAgICAgLnVud3JhcF9vcihm YWxzZSkKKysgICAgfQorK30KKysKKytpbXBsIGZtdDo6RGlzcGxheSBmb3IgRGF0ZSB7CisrICAg IGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgewor KyAgICAgICAgbGV0ICh5LCBtLCBkKSA9IHNlbGYudG9feW1kKCk7CisrICAgICAgICB3cml0ZSEo ZiwgInt9LXs6MDJ9LXs6MDJ9IiwgeSwgbSwgZCkKKysgICAgfQorK30KKysKKysjW2NmZyh0ZXN0 KV0KKyttb2QgdGVzdHMgeworKyAgICB1c2Ugc3VwZXI6OkRhdGU7CisrCisrICAgIG1hY3JvX3J1 bGVzISByZWZsZXhpdmVfZGlzcGxheSB7CisrICAgICAgICAoJHN0cmluZzpleHByKSA9PiAoCisr ICAgICAgICAgICAgYXNzZXJ0X2VxIShEYXRlOjpwYXJzZSgkc3RyaW5nKS51bndyYXAoKS50b19z dHJpbmcoKSwgJHN0cmluZyk7CisrICAgICAgICApCisrICAgIH0KKysKKysgICAgI1t0ZXN0XQor KyAgICBmbiBkaXNwbGF5KCkgeworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDE5LTA1 LTA4Iik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIwMDAtMDEtMDEiKTsKKysgICAg ICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjAwMC0xMi0zMSIpOworKyAgICAgICAgcmVmbGV4aXZl X2Rpc3BsYXkhKCIyMDkwLTEyLTMxIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjE5 OTktMDItMTkiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiOTk5OS0xMi0zMSIpOwor KyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9z cmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycworQEAgLTAsMCArMSw0OTMgQEAKKysvLyEgVGhpcyB0 aW55IGNyYXRlIGNoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIG1l ZXRzIHNvbWUKKysvLyEgdmVyc2lvbiByZXF1aXJlbWVudHMuIFRoZSB2ZXJzaW9uIGlzIHF1ZXJp ZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBjb21waWxlcgorKy8vISB3aXRoIGAtLXZlcnNpb25gLiBU aGUgcGF0aCB0byB0aGUgY29tcGlsZXIgaXMgZGV0ZXJtaW5lZCBmaXJzdCB2aWEgdGhlCisrLy8h IGBSVVNUQ2AgZW52aXJvbm1lbnQgdmFyaWFibGUuIElmIGl0IGlzIG5vdCBzZXQsIHRoZW4gYHJ1 c3RjYCBpcyB1c2VkLiBJZgorKy8vISB0aGF0IGZhaWxzLCBubyBkZXRlcm1pbmF0aW9uIGlzIG1h ZGUsIGFuZCBjYWxscyByZXR1cm4gYE5vbmVgLgorKy8vIQorKy8vISAjIEV4YW1wbGVzCisrLy8h CisrLy8hICogU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlmIHRoZSBydW5uaW5nIGNv bXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvCisrLy8hICAgYmUgYXQgbGVhc3QgdmVyc2lvbiBgMS4x My4wYDoKKysvLyEKKysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7CisrLy8hCisrLy8hICAgaWYgcnVzdGM6OmlzX21pbl92ZXJzaW9uKCIx LjEzLjAiKS51bndyYXBfb3IoZmFsc2UpIHsKKysvLyEgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1 c3RjLWNmZz1xdWVzdGlvbl9tYXJrX29wZXJhdG9yIik7CisrLy8hICAgfQorKy8vISAgIGBgYAor Ky8vIQorKy8vISAgIFNlZSBbYGlzX21heF92ZXJzaW9uYF0gb3IgW2Bpc19leGFjdF92ZXJzaW9u YF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyCisrLy8hICAgaXMgX2F0IG1vc3RfIG9yIF9leGFj dGx5XyBhIGNlcnRhaW4gdmVyc2lvbi4KKysvLyEKKysvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5u aW5nIGNvbXBpbGVyIHdhcyByZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0xMi0xOGA6CisrLy8h CisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1 c3RjOworKy8vIQorKy8vISAgIG1hdGNoIHJ1c3RjOjppc19taW5fZGF0ZSgiMjAxOC0xMi0xOCIp IHsKKysvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVwISBJdCdzIHJlY2VudCEiLAorKy8vISAg ICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mgb2xkZXIuIiwKKysvLyEgICAgICAgTm9uZSA9 PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKKysvLyEgICB9OworKy8v ISAgIGBgYAorKy8vIQorKy8vISAgIFNlZSBbYGlzX21heF9kYXRlYF0gb3IgW2Bpc19leGFjdF9k YXRlYF0gdG8gY2hlY2sgaWYgdGhlIGNvbXBpbGVyIHdhcworKy8vISAgIHJlbGVhc2VkIF9wcmlv ciB0b18gb3IgX2V4YWN0bHkgb25fIGEgY2VydGFpbiBkYXRlLgorKy8vIQorKy8vISAqIENoZWNr IHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgZmVhdHVyZSBmbGFnczoKKysvLyEK KysvLyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVz dGM7CisrLy8hCisrLy8hICAgbWF0Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgewor Ky8vISAgICAgICBTb21lKHRydWUpID0+ICJZZXMhIEl0J3MgYSBkZXYgb3IgbmlnaHRseSByZWxl YXNlISIsCisrLy8hICAgICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBzdGFibGUgb3IgYmV0 YS4iLAorKy8vISAgICAgICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZl cnNpb24uIgorKy8vISAgIH07CisrLy8hICAgYGBgCisrLy8hCisrLy8hICogQ2hlY2sgdGhhdCB0 aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBhIHNwZWNpZmljIGZlYXR1cmU6CisrLy8hCisr Ly8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3Rj OworKy8vIQorKy8vISAgIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1cHBvcnRzX2ZlYXR1 cmUoImRvY19jZmciKSB7CisrLy8hICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1oYXNf ZG9jX2NmZyIpOworKy8vISAgIH0KKysvLyEgICBgYGAKKysvLyEKKysvLyEgKiBDaGVjayB0aGF0 IHRoZSBydW5uaW5nIGNvbXBpbGVyIGlzIG9uIHRoZSBzdGFibGUgY2hhbm5lbDoKKysvLyEKKysv LyEgICBgYGBydXN0CisrLy8hICAgZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7 CisrLy8hCisrLy8hICAgbWF0Y2ggcnVzdGM6OkNoYW5uZWw6OnJlYWQoKSB7CisrLy8hICAgICAg IFNvbWUoYykgaWYgYy5pc19zdGFibGUoKSA9PiBmb3JtYXQhKCJZZXMhIEl0J3Mgc3RhYmxlLiIp LAorKy8vISAgICAgICBTb21lKGMpID0+IGZvcm1hdCEoIk5vLCB0aGUgY2hhbm5lbCB7fSBpcyBu b3Qgc3RhYmxlLiIsIGMpLAorKy8vISAgICAgICBOb25lID0+IGZvcm1hdCEoIkNvdWxkbid0IGRl dGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4iKQorKy8vISAgIH07CisrLy8hICAgYGBgCisrLy8h CisrLy8hIFRvIGludGVyYWN0IHdpdGggdGhlIHZlcnNpb24sIHJlbGVhc2UgZGF0ZSwgYW5kIHJl bGVhc2UgY2hhbm5lbCBhcyBzdHJ1Y3RzLAorKy8vISB1c2UgW2BWZXJzaW9uYF0sIFtgRGF0ZWBd LCBhbmQgW2BDaGFubmVsYF0sIHJlc3BlY3RpdmVseS4gVGhlIFtgdHJpcGxlKClgXQorKy8vISBm dW5jdGlvbiByZXR1cm5zIGFsbCB0aHJlZSB2YWx1ZXMgZWZmaWNpZW50bHkuCisrLy8hCisrLy8h ICMgQWx0ZXJuYXRpdmVzCisrLy8hCisrLy8hIFRoaXMgY3JhdGUgaXMgZGVhZCBzaW1wbGUgd2l0 aCBubyBkZXBlbmRlbmNpZXMuIElmIHlvdSBuZWVkIHNvbWV0aGluZyBtb3JlCisrLy8hIGFuZCBk b24ndCBjYXJlIGFib3V0IHBhbmlja2luZyBpZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgb2J0YWlu ZWQsIG9yIGlmIHlvdQorKy8vISBkb24ndCBtaW5kIGFkZGluZyBkZXBlbmRlbmNpZXMsIHNlZQor Ky8vISBbcnVzdGNfdmVyc2lvbl0oaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3RjX3ZlcnNp b24pLgorKworKyMhW2FsbG93KGRlcHJlY2F0ZWQpXQorKworK21vZCB2ZXJzaW9uOworK21vZCBj aGFubmVsOworK21vZCBkYXRlOworKworK3VzZSBzdGQ6OmVudjsKKyt1c2Ugc3RkOjpwcm9jZXNz OjpDb21tYW5kOworKworKyNbZG9jKGlubGluZSldIHB1YiB1c2UgdmVyc2lvbjo6KjsKKysjW2Rv YyhpbmxpbmUpXSBwdWIgdXNlIGNoYW5uZWw6Oio7CisrI1tkb2MoaW5saW5lKV0gcHViIHVzZSBk YXRlOjoqOworKworKy8vLyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9t IHJ1c3RjIHZlcnNpb24gc3RyaW5nLgorK2ZuIHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192 ZXJzaW9uKHM6ICZzdHIpIC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKKysg ICAgbGV0IGxhc3RfbGluZSA9IHMubGluZXMoKS5sYXN0KCkudW53cmFwX29yKHMpOworKyAgICBs ZXQgbXV0IGNvbXBvbmVudHMgPSBsYXN0X2xpbmUudHJpbSgpLnNwbGl0KCIgIik7CisrICAgIGxl dCB2ZXJzaW9uID0gY29tcG9uZW50cy5udGgoMSk7CisrICAgIGxldCBkYXRlID0gY29tcG9uZW50 cy5maWx0ZXIofGN8IGMuZW5kc193aXRoKCcpJykpLm5leHQoKQorKyAgICAgICAgLm1hcCh8c3wg cy50cmltX3JpZ2h0KCkudHJpbV9yaWdodF9tYXRjaGVzKCIpIikudHJpbV9sZWZ0KCkudHJpbV9s ZWZ0X21hdGNoZXMoJygnKSk7CisrICAgICh2ZXJzaW9uLm1hcCh8c3wgcy50b19zdHJpbmcoKSks IGRhdGUubWFwKHxzfCBzLnRvX3N0cmluZygpKSkKKyt9CisrCisrLy8vIFBhcnNlcyAodmVyc2lv biwgZGF0ZSkgYXMgYXZhaWxhYmxlIGZyb20gcnVzdGMgdmVyYm9zZSB2ZXJzaW9uIG91dHB1dC4K KytmbiB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uKHM6ICZzdHIp IC0+IChPcHRpb248U3RyaW5nPiwgT3B0aW9uPFN0cmluZz4pIHsKKysgICAgbGV0IChtdXQgdmVy c2lvbiwgbXV0IGRhdGUpID0gKE5vbmUsIE5vbmUpOworKyAgICBmb3IgbGluZSBpbiBzLmxpbmVz KCkgeworKyAgICAgICAgbGV0IHNwbGl0ID0gfHM6ICZzdHJ8IHMuc3BsaXRuKDIsICI6IikubnRo KDEpLm1hcCh8c3wgcy50cmltKCkudG9fc3RyaW5nKCkpOworKyAgICAgICAgbWF0Y2ggbGluZS50 cmltKCkuc3BsaXQoIiAiKS5udGgoMCkgeworKyAgICAgICAgICAgIFNvbWUoInJ1c3RjIikgPT4g eworKyAgICAgICAgICAgICAgICBsZXQgKHYsIGQpID0gdmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1 c3RjX3ZlcnNpb24obGluZSk7CisrICAgICAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLm9y KHYpOworKyAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZS5vcihkKTsKKysgICAgICAgICAgICB9 LAorKyAgICAgICAgICAgIFNvbWUoInJlbGVhc2U6IikgPT4gdmVyc2lvbiA9IHNwbGl0KGxpbmUp LAorKyAgICAgICAgICAgIFNvbWUoImNvbW1pdC1kYXRlOiIpIGlmIGxpbmUuZW5kc193aXRoKCJ1 bmtub3duIikgPT4gZGF0ZSA9IE5vbmUsCisrICAgICAgICAgICAgU29tZSgiY29tbWl0LWRhdGU6 IikgPT4gZGF0ZSA9IHNwbGl0KGxpbmUpLAorKyAgICAgICAgICAgIF8gPT4gY29udGludWUKKysg ICAgICAgIH0KKysgICAgfQorKworKyAgICAodmVyc2lvbiwgZGF0ZSkKKyt9CisrCisrLy8vIFJl dHVybnMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIGBydXN0YyAtLXZlcnNpb25g LgorK2ZuIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgLT4gT3B0aW9uPChPcHRpb248U3RyaW5nPiwg T3B0aW9uPFN0cmluZz4pPiB7CisrICAgIGxldCBydXN0YyA9IGVudjo6dmFyKCJSVVNUQyIpLnVu d3JhcF9vcl9lbHNlKHxffCAicnVzdGMiLnRvX3N0cmluZygpKTsKKysgICAgQ29tbWFuZDo6bmV3 KHJ1c3RjKS5hcmcoIi0tdmVyYm9zZSIpLmFyZygiLS12ZXJzaW9uIikub3V0cHV0KCkub2soKQor KyAgICAgICAgLmFuZF90aGVuKHxvdXRwdXR8IFN0cmluZzo6ZnJvbV91dGY4KG91dHB1dC5zdGRv dXQpLm9rKCkpCisrICAgICAgICAubWFwKHxzfCB2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNf dmVyYm9zZV92ZXJzaW9uKCZzKSkKKyt9CisrCisrLy8vIFJlYWRzIHRoZSB0cmlwbGUgb2YgW2BW ZXJzaW9uYF0sIFtgQ2hhbm5lbGBdLCBhbmQgW2BEYXRlYF0gb2YgdGhlIGluc3RhbGxlZAorKy8v LyBvciBydW5uaW5nIGBydXN0Y2AuCisrLy8vCisrLy8vIElmIGFueSBhdHRyaWJ1dGUgY2Fubm90 IGJlIGRldGVybWluZWQgKHNlZSB0aGUgW3RvcC1sZXZlbAorKy8vLyBkb2N1bWVudGF0aW9uXShj cmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KKysvLy8KKysvLy8gVG8gb2J0YWluIG9ubHkgb25lIG9m IHRocmVlIGF0dHJpYnV0ZXMsIHVzZSBbYFZlcnNpb246OnJlYWQoKWBdLAorKy8vLyBbYENoYW5u ZWw6OnJlYWQoKWBdLCBvciBbYERhdGU6OnJlYWQoKWBdLgorK3B1YiBmbiB0cmlwbGUoKSAtPiBP cHRpb248KFZlcnNpb24sIENoYW5uZWwsIERhdGUpPiB7CisrICAgIGxldCAodmVyc2lvbl9zdHIs IGRhdGVfc3RyKSA9IG1hdGNoIGdldF92ZXJzaW9uX2FuZF9kYXRlKCkgeworKyAgICAgICAgU29t ZSgoU29tZSh2ZXJzaW9uKSwgU29tZShkYXRlKSkpID0+ICh2ZXJzaW9uLCBkYXRlKSwKKysgICAg ICAgIF8gPT4gcmV0dXJuIE5vbmUKKysgICAgfTsKKysKKysgICAgLy8gQ2FuJ3QgdXNlIGA/YCBv ciBgdHJ5IWAgZm9yIGBPcHRpb25gIGluIDEuMC4wLgorKyAgICBtYXRjaCBWZXJzaW9uOjpwYXJz ZSgmdmVyc2lvbl9zdHIpIHsKKysgICAgICAgIFNvbWUodmVyc2lvbikgPT4gbWF0Y2ggQ2hhbm5l bDo6cGFyc2UoJnZlcnNpb25fc3RyKSB7CisrICAgICAgICAgICAgU29tZShjaGFubmVsKSA9PiBt YXRjaCBEYXRlOjpwYXJzZSgmZGF0ZV9zdHIpIHsKKysgICAgICAgICAgICAgICAgU29tZShkYXRl KSA9PiBTb21lKCh2ZXJzaW9uLCBjaGFubmVsLCBkYXRlKSksCisrICAgICAgICAgICAgICAgIF8g PT4gTm9uZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgICAgIF8gPT4gTm9uZSwKKysgICAg ICAgIH0sCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRo YXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqb24gb3Ig YWZ0ZXIqKgorKy8vLyBzb21lIGRhdGUuCisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl9k YXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBpbnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCisr Ly8vIGAyMDE3LTAxLTA5YC4KKysvLy8KKysvLy8gSWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJp ZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtaW5fZGF0ZWAgY291bGQgbm90IGJlCisrLy8vIHBhcnNl ZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFs bGVkIGBydXN0Y2AKKysvLy8gd2FzIHJlbGVhc2Ugb24gb3IgYWZ0ZXIgYG1pbl9kYXRlYCBhbmQg YGZhbHNlYCBvdGhlcndpc2UuCisrcHViIGZuIGlzX21pbl9kYXRlKG1pbl9kYXRlOiAmc3RyKSAt PiBPcHRpb248Ym9vbD4geworKyAgICBtYXRjaCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZSht aW5fZGF0ZSkpIHsKKysgICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKG1pbl9kYXRlKSkg PT4gU29tZShydXN0Y19kYXRlID49IG1pbl9kYXRlKSwKKysgICAgICAgIF8gPT4gTm9uZQorKyAg ICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1 c3RjYCB3YXMgcmVsZWFzZWQgKipvbiBvciBiZWZvcmUqKgorKy8vLyBzb21lIGRhdGUuCisrLy8v CisrLy8vIFRoZSBmb3JtYXQgb2YgYG1heF9kYXRlYCBtdXN0IGJlIFlZWVktTU0tREQuIEZvciBp bnN0YW5jZTogYDIwMTYtMTItMjBgIG9yCisrLy8vIGAyMDE3LTAxLTA5YC4KKysvLy8KKysvLy8g SWYgdGhlIGRhdGUgY2Fubm90IGJlIHJldHJpZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfZGF0 ZWAgY291bGQgbm90IGJlCisrLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSBy ZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AKKysvLy8gd2FzIHJlbGVhc2Ug b24gb3IgYmVmb3JlIGBtYXhfZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBp c19tYXhfZGF0ZShtYXhfZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKKysgICAgbWF0Y2gg KERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UobWF4X2RhdGUpKSB7CisrICAgICAgICAoU29tZShy dXN0Y19kYXRlKSwgU29tZShtYXhfZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA8PSBtYXhfZGF0 ZSksCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRoYXQg dGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqZXhhY3RseSoq IG9uCisrLy8vIHNvbWUgZGF0ZS4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBvZiBgZGF0ZWAgbXVz dCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBvcgorKy8vLyBgMjAx Ny0wMS0wOWAuCisrLy8vCisrLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3Ig cGFyc2VkLCBvciBpZiBgZGF0ZWAgY291bGQgbm90IGJlIHBhcnNlZCwKKysvLy8gcmV0dXJucyBg Tm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2Ag d2FzCisrLy8vIHJlbGVhc2Ugb24gYGRhdGVgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKytwdWIg Zm4gaXNfZXhhY3RfZGF0ZShkYXRlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAgICBtYXRj aCAoRGF0ZTo6cmVhZCgpLCBEYXRlOjpwYXJzZShkYXRlKSkgeworKyAgICAgICAgKFNvbWUocnVz dGNfZGF0ZSksIFNvbWUoZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA9PSBkYXRlKSwKKysgICAg ICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmlu ZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IGxlYXN0Kiogc29tZSBtaW5pbXVtCisrLy8v IHZlcnNpb24uCisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYG1pbl92ZXJzaW9uYCBpcyBhIHNl bWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCisrLy8vIGAxLjE0LjBgLCBg MS4xNi4wLW5pZ2h0bHlgLCBldGMuCisrLy8vCisrLy8vIElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBi ZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX3ZlcnNpb25gIGNvdWxkIG5vdAorKy8v LyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYg dGhlIGluc3RhbGxlZCBgcnVzdGNgCisrLy8vIGlzIGF0IGxlYXN0IGBtaW5fdmVyc2lvbmAgYW5k IGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19taW5fdmVyc2lvbihtaW5fdmVyc2lvbjog JnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKKysgICAgbWF0Y2ggKFZlcnNpb246OnJlYWQoKSwgVmVy c2lvbjo6cGFyc2UobWluX3ZlcnNpb24pKSB7CisrICAgICAgICAoU29tZShydXN0Y192ZXIpLCBT b21lKG1pbl92ZXIpKSA9PiBTb21lKHJ1c3RjX3ZlciA+PSBtaW5fdmVyKSwKKysgICAgICAgIF8g PT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBp bnN0YWxsZWQgYHJ1c3RjYCBpcyAqKmF0IG1vc3QqKiBzb21lIG1heGltdW0KKysvLy8gdmVyc2lv bi4KKysvLy8KKysvLy8gVGhlIGZvcm1hdCBvZiBgbWF4X3ZlcnNpb25gIGlzIGEgc2VtYW50aWMg dmVyc2lvbjogYDEuMy4wYCwgYDEuMTUuMC1iZXRhYCwKKysvLy8gYDEuMTQuMGAsIGAxLjE2LjAt bmlnaHRseWAsIGV0Yy4KKysvLy8KKysvLy8gSWYgdGhlIHZlcnNpb24gY2Fubm90IGJlIHJldHJp ZXZlZCBvciBwYXJzZWQsIG9yIGlmIGBtYXhfdmVyc2lvbmAgY291bGQgbm90CisrLy8vIGJlIHBh cnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lzZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5z dGFsbGVkIGBydXN0Y2AKKysvLy8gaXMgYXQgbW9zdCBgbWF4X3ZlcnNpb25gIGFuZCBgZmFsc2Vg IG90aGVyd2lzZS4KKytwdWIgZm4gaXNfbWF4X3ZlcnNpb24obWF4X3ZlcnNpb246ICZzdHIpIC0+ IE9wdGlvbjxib29sPiB7CisrICAgIG1hdGNoIChWZXJzaW9uOjpyZWFkKCksIFZlcnNpb246OnBh cnNlKG1heF92ZXJzaW9uKSkgeworKyAgICAgICAgKFNvbWUocnVzdGNfdmVyKSwgU29tZShtYXhf dmVyKSkgPT4gU29tZShydXN0Y192ZXIgPD0gbWF4X3ZlciksCisrICAgICAgICBfID0+IE5vbmUK KysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVk IGBydXN0Y2AgaXMgKipleGFjdGx5Kiogc29tZSB2ZXJzaW9uLgorKy8vLworKy8vLyBUaGUgZm9y bWF0IG9mIGB2ZXJzaW9uYCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAt YmV0YWAsCisrLy8vIGAxLjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCisrLy8vCisrLy8v IElmIHRoZSB2ZXJzaW9uIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgdmVy c2lvbmAgY291bGQgbm90IGJlCisrLy8vIHBhcnNlZCwgcmV0dXJucyBgTm9uZWAuIE90aGVyd2lz ZSByZXR1cm5zIGB0cnVlYCBpZiB0aGUgaW5zdGFsbGVkIGBydXN0Y2AgaXMKKysvLy8gZXhhY3Rs eSBgdmVyc2lvbmAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19leGFjdF92ZXJz aW9uKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7CisrICAgIG1hdGNoIChWZXJzaW9u OjpyZWFkKCksIFZlcnNpb246OnBhcnNlKHZlcnNpb24pKSB7CisrICAgICAgICAoU29tZShydXN0 Y192ZXIpLCBTb21lKHZlcnNpb24pKSA9PiBTb21lKHJ1c3RjX3ZlciA9PSB2ZXJzaW9uKSwKKysg ICAgICAgIF8gPT4gTm9uZQorKyAgICB9CisrfQorKworKy8vLyBDaGVja3Mgd2hldGhlciB0aGUg cnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzLgorKy8v LworKy8vLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIGNoYW5uZWwgaXMgZWl0aGVyICJuaWdodGx5 IiBvciAiZGV2Ii4KKysvLy8KKysvLy8gTm90ZSB0aGF0IHN1cHBvcnQgZm9yIHNwZWNpZmljIGBy dXN0Y2AgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQKKysvLy8gdmlhIHRoZSBg YWxsb3ctZmVhdHVyZXNgIGNvbXBpbGVyIGZsYWcsIHdoaWNoIHRoaXMgZnVuY3Rpb24gX2RvZXMg bm90XworKy8vLyBjaGVjay4gVGhhdCBpcywgdGhpcyBmdW5jdGlvbiBfZG9lcyBub3RfIGNoZWNr IHdoZXRoZXIgYSBfc3BlY2lmaWNfIGZlYXR1cmUKKysvLy8gaXMgc3VwcG9ydGVkLCBidXQgaW5z dGVhZCB3aGV0aGVyIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQgYXQgYWxsLiBUbyBjaGVjaworKy8v LyBmb3Igc3VwcG9ydCBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCB1c2UgW2BzdXBwb3J0c19mZWF0 dXJlKClgXS4KKysvLy8KKysvLy8gSWYgdGhlIHZlcnNpb24gY291bGQgbm90IGJlIGRldGVybWlu ZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucworKy8vLyBgdHJ1ZWAgaWYgdGhl IHJ1bm5pbmcgdmVyc2lvbiBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KKytwdWIgZm4gaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSAtPiBPcHRpb248Ym9vbD4gewor KyAgICBDaGFubmVsOjpyZWFkKCkubWFwKHxjfCBjLnN1cHBvcnRzX2ZlYXR1cmVzKCkpCisrfQor KworKy8vLyBDaGVja3Mgd2hldGhlciB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBz dXBwb3J0cyBgZmVhdHVyZWAuCisrLy8vCisrLy8vIFJldHVybnMgX3RydWVfIF9pZmZfIFtgaXNf ZmVhdHVyZV9mbGFnZ2FibGUoKWBdIHJldHVybnMgYHRydWVgIF9hbmRfIHRoZQorKy8vLyBmZWF0 dXJlIGlzIG5vdCBkaXNhYmxlZCB2aWEgZXhjbHVzaW9uIGluIGBhbGxvdy1mZWF0dXJlc2Agdmlh IGBSVVNURkxBR1NgIG9yCisrLy8vIGBDQVJHT19FTkNPREVEX1JVU1RGTEFHU2AuIElmIHRoZSB2 ZXJzaW9uIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zCisrLy8vIGBOb25lYC4KKysv Ly8KKysvLy8gIyBFeGFtcGxlCisrLy8vCisrLy8vIGBgYHJ1c3QKKysvLy8gdXNlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7CisrLy8vCisrLy8vIGlmIGxldCBTb21lKHRydWUpID0gcnVzdGM6OnN1 cHBvcnRzX2ZlYXR1cmUoImRvY19jZmciKSB7CisrLy8vICAgIHByaW50bG4hKCJjYXJnbzpydXN0 Yy1jZmc9aGFzX2RvY19jZmciKTsKKysvLy8gfQorKy8vLyBgYGAKKytwdWIgZm4gc3VwcG9ydHNf ZmVhdHVyZShmZWF0dXJlOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAgICBtYXRjaCBpc19m ZWF0dXJlX2ZsYWdnYWJsZSgpIHsKKysgICAgICAgIFNvbWUodHJ1ZSkgPT4geyAvKiBjb250aW51 ZSAqLyB9CisrICAgICAgICBTb21lKGZhbHNlKSA9PiByZXR1cm4gU29tZShmYWxzZSksCisrICAg ICAgICBOb25lID0+IHJldHVybiBOb25lLAorKyAgICB9CisrCisrICAgIGxldCBlbnZfZmxhZ3Mg PSBlbnY6OnZhcl9vcygiQ0FSR09fRU5DT0RFRF9SVVNURkxBR1MiKQorKyAgICAgICAgLm1hcCh8 ZmxhZ3N8IChmbGFncywgJ1x4MWYnKSkKKysgICAgICAgIC5vcl9lbHNlKHx8IGVudjo6dmFyX29z KCJSVVNURkxBR1MiKS5tYXAofGZsYWdzfCAoZmxhZ3MsICcgJykpKTsKKysKKysgICAgaWYgbGV0 IFNvbWUoKGZsYWdzLCBkZWxpbSkpID0gZW52X2ZsYWdzIHsKKysgICAgICAgIGNvbnN0IEFMTE9X X0ZFQVRVUkVTOiAmJ3N0YXRpYyBzdHIgPSAiYWxsb3ctZmVhdHVyZXM9IjsKKysKKysgICAgICAg IGxldCBydXN0ZmxhZ3MgPSBmbGFncy50b19zdHJpbmdfbG9zc3koKTsKKysgICAgICAgIGxldCBh bGxvd19mZWF0dXJlcyA9IHJ1c3RmbGFncy5zcGxpdChkZWxpbSkKKysgICAgICAgICAgICAubWFw KHxmbGFnfCBmbGFnLnRyaW1fbGVmdF9tYXRjaGVzKCItWiIpLnRyaW0oKSkKKysgICAgICAgICAg ICAuZmlsdGVyKHxmbGFnfCBmbGFnLnN0YXJ0c193aXRoKEFMTE9XX0ZFQVRVUkVTKSkKKysgICAg ICAgICAgICAubWFwKHxmbGFnfCAmZmxhZ1tBTExPV19GRUFUVVJFUy5sZW4oKS4uXSk7CisrCisr ICAgICAgICBpZiBsZXQgU29tZShhbGxvd19mZWF0dXJlcykgPSBhbGxvd19mZWF0dXJlcy5sYXN0 KCkgeworKyAgICAgICAgICAgIHJldHVybiBTb21lKGFsbG93X2ZlYXR1cmVzLnNwbGl0KCcsJyku YW55KHxmfCBmLnRyaW0oKSA9PSBmZWF0dXJlKSk7CisrICAgICAgICB9CisrICAgIH0KKysKKysg ICAgLy8gSWYgdGhlcmUgYXJlIG5vIGBSVVNURkxBR1NgIG9yIGBDQVJHT19FTkNPREVEX1JVU1RG TEFHU2Agb3IgdGhleSBkb24ndAorKyAgICAvLyBjb250YWluIGFuIGBhbGxvdy1mZWF0dXJlc2Ag ZmxhZywgYXNzdW1lIGNvbXBpbGVyIGFsbG93cyBhbGwgZmVhdHVyZXMuCisrICAgIFNvbWUodHJ1 ZSkKKyt9CisrCisrI1tjZmcodGVzdCldCisrbW9kIHRlc3RzIHsKKysgICAgdXNlIHN0ZDo6e2Vu diwgZnN9OworKworKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192 ZXJzaW9uOworKyAgICB1c2Ugc3VwZXI6OnZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJi b3NlX3ZlcnNpb247CisrCisrICAgIG1hY3JvX3J1bGVzISBjaGVja19wYXJzZSB7CisrICAgICAg ICAoQCAkZjpleHByLCAkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIpID0+ICh7CisrICAgICAg ICAgICAgaWYgbGV0IChTb21lKHYpLCBkKSA9ICRmKCYkcykgeworKyAgICAgICAgICAgICAgICBs ZXQgZV9kOiBPcHRpb248JnN0cj4gPSAkZC5pbnRvKCk7CisrICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoKHYsIGQpLCAoJHYudG9fc3RyaW5nKCksIGVfZC5tYXAofHN8IHMuaW50bygpKSkpOwor KyAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgIHBhbmljISgiezo/fSBkaWRu J3QgcGFyc2UgZm9yIHZlcnNpb24gdGVzdGluZy4iLCAkcyk7CisrICAgICAgICAgICAgfQorKyAg ICAgICAgfSk7CisrICAgICAgICAoJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHBy KSA9PiAoeworKyAgICAgICAgICAgIGxldCB3YXJuID0gIndhcm5pbmc6IGludmFsaWQgbG9nZ2lu ZyBzcGVjICd3YXJuaW5nJywgaWdub3JpbmcgaXQiOworKyAgICAgICAgICAgIGxldCB3YXJuMiA9 ICJ3YXJuaW5nOiBzb3JyeSwgc29tZXRoaW5nIHdlbnQgd3JvbmcgOihzYWQpIjsKKysgICAgICAg ICAgICBjaGVja19wYXJzZSEoQCAkZiwgJHMgPT4gJHYsICRkKTsKKysgICAgICAgICAgICBjaGVj a19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fSIsIHdhcm4sICRzKSA9PiAkdiwgJGQpOwor KyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0ISgie31cbnt9Iiwgd2FybjIs ICRzKSA9PiAkdiwgJGQpOworKyAgICAgICAgICAgIGNoZWNrX3BhcnNlIShAICRmLCAmZm9ybWF0 ISgie31cbnt9XG57fSIsIHdhcm4sIHdhcm4yLCAkcykgPT4gJHYsICRkKTsKKysgICAgICAgICAg ICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3YXJuMiwgd2Fybiwg JHMpID0+ICR2LCAkZCk7CisrICAgICAgICB9KQorKyAgICB9CisrCisrICAgIG1hY3JvX3J1bGVz ISBjaGVja190ZXJzZV9wYXJzZSB7CisrICAgICAgICAoJCgkczpleHByID0+ICR2OmV4cHIsICRk OmV4cHIsKSspID0+IHskKAorKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbiwgJHMgPT4gJHYsICRkKTsKKysgICAgICAgICkrfQorKyAg ICB9CisrCisrICAgIG1hY3JvX3J1bGVzISBjaGVja192ZXJib3NlX3BhcnNlIHsKKysgICAgICAg ICgkKCRzOmV4cHIgPT4gJHY6ZXhwciwgJGQ6ZXhwciwpKykgPT4geyQoCisrICAgICAgICAgICAg Y2hlY2tfcGFyc2UhKHZlcnNpb25fYW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJib3NlX3ZlcnNpb24s ICRzID0+ICR2LCAkZCk7CisrICAgICAgICApK30KKysgICAgfQorKworKyAgICAjW3Rlc3RdCisr ICAgIGZuIHRlc3RfdmVyc2lvbl9wYXJzZSgpIHsKKysgICAgICAgIGNoZWNrX3RlcnNlX3BhcnNl ISB7CisrICAgICAgICAgICAgInJ1c3RjIDEuMTguMCIgPT4gIjEuMTguMCIsIE5vbmUsCisrICAg ICAgICAgICAgInJ1c3RjIDEuOC4wIiA9PiAiMS44LjAiLCBOb25lLAorKyAgICAgICAgICAgICJy dXN0YyAxLjIwLjAtbmlnaHRseSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgTm9uZSwKKysgICAgICAg ICAgICAicnVzdGMgMS4yMCIgPT4gIjEuMjAiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAx LjMiID0+ICIxLjMiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxIiA9PiAiMSIsIE5vbmUs CisrICAgICAgICAgICAgInJ1c3RjIDEuNS4xLWJldGEiID0+ICIxLjUuMS1iZXRhIiwgTm9uZSwK KysgICAgICAgICAgICAicnVzdGMgMS4yMC4wICgyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMCIsIFNv bWUoIjIwMTctMDctMDkiKSwKKysgICAgICAgICAgICAicnVzdGMgMS4yMC4wLWRldiAoMjAxNy0w Ny0wOSkiID0+ICIxLjIwLjAtZGV2IiwgU29tZSgiMjAxNy0wNy0wOSIpLAorKyAgICAgICAgICAg ICJydXN0YyAxLjIwLjAtbmlnaHRseSAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4w LW5pZ2h0bHkiLCBTb21lKCIyMDE3LTA3LTA5IiksCisrICAgICAgICAgICAgInJ1c3RjIDEuMjAu MCAoZDg0NjkzYjkzIDIwMTctMDctMDkpIiA9PiAiMS4yMC4wIiwgU29tZSgiMjAxNy0wNy0wOSIp LAorKyAgICAgICAgICAgICJydXN0YyAxLjMwLjAtbmlnaHRseSAoM2JjMmNhN2U0IDIwMTgtMDkt MjApIiA9PiAiMS4zMC4wLW5pZ2h0bHkiLCBTb21lKCIyMDE4LTA5LTIwIiksCisrICAgICAgICB9 OworKyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF92ZXJib3NlX3ZlcnNpb25f cGFyc2UoKSB7CisrICAgICAgICBjaGVja192ZXJib3NlX3BhcnNlISB7CisrICAgICAgICAgICAg InJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIwMTUtMDUtMTQpXG5c CisrICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29t bWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFjNzM1OTVjMGVcblwKKysg ICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwKKysgICAgICAgICAgICAg ICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAorKyAgICAgICAgICAgICAgICBob3N0OiB4ODZf NjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVsZWFzZTogMS4wLjAi ID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKKysKKysgICAgICAgICAgICAicnVzdGMg MS4wLjAgKGE1OWRlMzdlOSAyMDE1LTA1LTEzKSAoYnVpbHQgMjAxNS0wNS0xNClcblwKKysgICAg ICAgICAgICAgICAgY29tbWl0LWhhc2g6IGE1OWRlMzdlOTkwNjAxNjJhMjY3NGUzZmY0NTQwOWFj NzM1OTVjMGVcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMTUtMDUtMTNcblwK KysgICAgICAgICAgICAgICAgYnVpbGQtZGF0ZTogMjAxNS0wNS0xNFxuXAorKyAgICAgICAgICAg ICAgICBob3N0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAg cmVsZWFzZTogMS4wLjAiID0+ICIxLjAuMCIsIFNvbWUoIjIwMTUtMDUtMTMiKSwKKysKKysgICAg ICAgICAgICAicnVzdGMgMS41MC4wIChjYjc1YWQ1ZGIgMjAyMS0wMi0xMClcblwKKysgICAgICAg ICAgICAgICAgYmluYXJ5OiBydXN0Y1xuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDog Y2I3NWFkNWRiMDI3ODNlOGIwMjIyZmVlMzYzYzVmNjNmN2UyY2Y1YlxuXAorKyAgICAgICAgICAg ICAgICBjb21taXQtZGF0ZTogMjAyMS0wMi0xMFxuXAorKyAgICAgICAgICAgICAgICBob3N0OiB4 ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVsZWFzZTogMS41 MC4wIiA9PiAiMS41MC4wIiwgU29tZSgiMjAyMS0wMi0xMCIpLAorKworKyAgICAgICAgICAgICJy dXN0YyAxLjUyLjAtbmlnaHRseSAoMjM0NzgxYWZlIDIwMjEtMDMtMDcpXG5cCisrICAgICAgICAg ICAgICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IDIz NDc4MWFmZTMzZDNmMzM5YjAwMmY4NWY5NDgwNDZkODQ3NmNmYzlcblwKKysgICAgICAgICAgICAg ICAgY29tbWl0LWRhdGU6IDIwMjEtMDMtMDdcblwKKysgICAgICAgICAgICAgICAgaG9zdDogeDg2 XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAgICAgIHJlbGVhc2U6IDEuNTIu MC1uaWdodGx5XG5cCisrICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjogMTIuMC4wIiA9PiAi MS41Mi4wLW5pZ2h0bHkiLCBTb21lKCIyMDIxLTAzLTA3IiksCisrCisrICAgICAgICAgICAgInJ1 c3RjIDEuNDEuMVxuXAorKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAgICAg ICAgICAgICAgIGNvbW1pdC1oYXNoOiB1bmtub3duXG5cCisrICAgICAgICAgICAgICAgIGNvbW1p dC1kYXRlOiB1bmtub3duXG5cCisrICAgICAgICAgICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3du LWxpbnV4LWdudVxuXAorKyAgICAgICAgICAgICAgICByZWxlYXNlOiAxLjQxLjFcblwKKysgICAg ICAgICAgICAgICAgTExWTSB2ZXJzaW9uOiA3LjAiID0+ICIxLjQxLjEiLCBOb25lLAorKworKyAg ICAgICAgICAgICJydXN0YyAxLjQ5LjBcblwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0 Y1xuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAorKyAgICAgICAg ICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAorKyAgICAgICAgICAgICAgICBob3N0OiB4 ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVsZWFzZTogMS40 OS4wIiA9PiAiMS40OS4wIiwgTm9uZSwKKysKKysgICAgICAgICAgICAicnVzdGMgMS41MC4wIChG ZWRvcmEgMS41MC4wLTEuZmMzMylcblwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBydXN0Y1xu XAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAorKyAgICAgICAgICAg ICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAorKyAgICAgICAgICAgICAgICBob3N0OiB4ODZf NjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVsZWFzZTogMS41MC4w IiA9PiAiMS41MC4wIiwgTm9uZSwKKysgICAgICAgIH07CisrICAgIH0KKysKKysgICAgZm4gcmVh ZF9zdGF0aWModmVyYm9zZTogYm9vbCwgY2hhbm5lbDogJnN0ciwgbWlub3I6IHVzaXplKSAtPiBT dHJpbmcgeworKyAgICAgICAgdXNlIHN0ZDo6ZnM6OkZpbGU7CisrICAgICAgICB1c2Ugc3RkOjpw YXRoOjpQYXRoOworKyAgICAgICAgdXNlIHN0ZDo6aW86OntCdWZSZWFkZXIsIFJlYWR9OworKwor KyAgICAgICAgbGV0IHN1YmRpciA9IGlmIHZlcmJvc2UgeyAidmVyYm9zZSIgfSBlbHNlIHsgInRl cnNlIiB9OworKyAgICAgICAgbGV0IHBhdGggPSBQYXRoOjpuZXcoU1RBVElDX1BBVEgpCisrICAg ICAgICAgICAgLmpvaW4oY2hhbm5lbCkKKysgICAgICAgICAgICAuam9pbihzdWJkaXIpCisrICAg ICAgICAgICAgLmpvaW4oZm9ybWF0ISgicnVzdGMtMS57fS4wIiwgbWlub3IpKTsKKysKKysgICAg ICAgIGxldCBmaWxlID0gRmlsZTo6b3BlbihwYXRoKS51bndyYXAoKTsKKysgICAgICAgIGxldCBt dXQgYnVmX3JlYWRlciA9IEJ1ZlJlYWRlcjo6bmV3KGZpbGUpOworKyAgICAgICAgbGV0IG11dCBj b250ZW50cyA9IFN0cmluZzo6bmV3KCk7CisrICAgICAgICBidWZfcmVhZGVyLnJlYWRfdG9fc3Ry aW5nKCZtdXQgY29udGVudHMpLnVud3JhcCgpOworKyAgICAgICAgY29udGVudHMKKysgICAgfQor KworKyAgICBzdGF0aWMgU1RBVElDX1BBVEg6ICYnc3RhdGljIHN0ciA9IGNvbmNhdCEoZW52ISgi Q0FSR09fTUFOSUZFU1RfRElSIiksICIvc3RhdGljIik7CisrCisrICAgIHN0YXRpYyBEQVRFUzog WyYnc3RhdGljIHN0cjsgNTFdID0gWworKyAgICAgICAgIjIwMTUtMDUtMTMiLCAiMjAxNS0wNi0x OSIsICIyMDE1LTA4LTAzIiwgIjIwMTUtMDktMTUiLCAiMjAxNS0xMC0yNyIsCisrICAgICAgICAi MjAxNS0xMi0wNCIsICIyMDE2LTAxLTE5IiwgIjIwMTYtMDItMjkiLCAiMjAxNi0wNC0xMSIsICIy MDE2LTA1LTE4IiwKKysgICAgICAgICIyMDE2LTA3LTAzIiwgIjIwMTYtMDgtMTUiLCAiMjAxNi0w OS0yMyIsICIyMDE2LTExLTA3IiwgIjIwMTYtMTItMTYiLAorKyAgICAgICAgIjIwMTctMDEtMTki LCAiMjAxNy0wMy0xMCIsICIyMDE3LTA0LTI0IiwgIjIwMTctMDYtMDYiLCAiMjAxNy0wNy0xNyIs CisrICAgICAgICAiMjAxNy0wOC0yNyIsICIyMDE3LTEwLTA5IiwgIjIwMTctMTEtMjAiLCAiMjAx OC0wMS0wMSIsICIyMDE4LTAyLTEyIiwKKysgICAgICAgICIyMDE4LTAzLTI1IiwgIjIwMTgtMDUt MDciLCAiMjAxOC0wNi0xOSIsICIyMDE4LTA3LTMwIiwgIjIwMTgtMDktMTEiLAorKyAgICAgICAg IjIwMTgtMTAtMjQiLCAiMjAxOC0xMi0wNCIsICIyMDE5LTAxLTE2IiwgIjIwMTktMDItMjgiLCAi MjAxOS0wNC0xMCIsCisrICAgICAgICAiMjAxOS0wNS0yMCIsICIyMDE5LTA3LTAzIiwgIjIwMTkt MDgtMTMiLCAiMjAxOS0wOS0yMyIsICIyMDE5LTExLTA0IiwKKysgICAgICAgICIyMDE5LTEyLTE2 IiwgIjIwMjAtMDEtMjciLCAiMjAyMC0wMy0wOSIsICIyMDIwLTA0LTIwIiwgIjIwMjAtMDYtMDEi LAorKyAgICAgICAgIjIwMjAtMDctMTMiLCAiMjAyMC0wOC0yNCIsICIyMDIwLTEwLTA3IiwgIjIw MjAtMTEtMTYiLCAiMjAyMC0xMi0yOSIsCisrICAgICAgICAiMjAyMS0wMi0xMCIsCisrICAgIF07 CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9zdGFibGVfY29tcGF0aWJpbGl0eSgpIHsK KysgICAgICAgIGlmIGVudjo6dmFyX29zKCJGT1JDRV9TVEFUSUMiKS5pc19ub25lKCkgJiYgZnM6 Om1ldGFkYXRhKFNUQVRJQ19QQVRIKS5pc19lcnIoKSB7CisrICAgICAgICAgICAgLy8gV2UgZXhj bHVkZSBgL3N0YXRpY2Agd2hlbiB3ZSBwYWNrYWdlIGB2ZXJzaW9uX2NoZWNrYCwgc28gZG9uJ3QK KysgICAgICAgICAgICAvLyBydW4gaWYgc3RhdGljIGZpbGVzIGFyZW4ndCBwcmVzZW50IHVubGVz cyB3ZSBrbm93IHRoZXkgc2hvdWxkIGJlLgorKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAg IH0KKysKKysgICAgICAgIC8vIEVuc3VyZSB3ZSBjYW4gcGFyc2UgYWxsIG91dHB1dCBmcm9tIGFs bCBMaW51eCBzdGFibGUgcmVsZWFzZXMuCisrICAgICAgICBmb3IgdiBpbiAwLi5EQVRFUy5sZW4o KSB7CisrICAgICAgICAgICAgbGV0ICh2ZXJzaW9uLCBkYXRlKSA9ICgmZm9ybWF0ISgiMS57fS4w IiwgdiksIFNvbWUoREFURVNbdl0pKTsKKysgICAgICAgICAgICBjaGVja190ZXJzZV9wYXJzZSEo cmVhZF9zdGF0aWMoZmFsc2UsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBkYXRlLCk7CisrICAg ICAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEocmVhZF9zdGF0aWModHJ1ZSwgInN0YWJsZSIs IHYpID0+IHZlcnNpb24sIGRhdGUsKTsKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICAjW3Rl c3RdCisrICAgIGZuIHRlc3RfcGFyc2VfY3VycmVudCgpIHsKKysgICAgICAgIGxldCAodmVyc2lv biwgY2hhbm5lbCkgPSAoOjpWZXJzaW9uOjpyZWFkKCksIDo6Q2hhbm5lbDo6cmVhZCgpKTsKKysg ICAgICAgIGFzc2VydCEodmVyc2lvbi5pc19zb21lKCkpOworKyAgICAgICAgYXNzZXJ0IShjaGFu bmVsLmlzX3NvbWUoKSk7CisrCisrICAgICAgICBpZiBsZXQgT2soa25vd25fY2hhbm5lbCkgPSBl bnY6OnZhcigiS05PV05fQ0hBTk5FTCIpIHsKKysgICAgICAgICAgICBhc3NlcnRfZXEhKGNoYW5u ZWwsIDo6Q2hhbm5lbDo6cGFyc2UoJmtub3duX2NoYW5uZWwpKTsKKysgICAgICAgIH0KKysgICAg fQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3Zl cnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL3ZlcnNpb24ucnMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L3ZlcnNpb25fY2hlY2svc3JjL3ZlcnNpb24ucnMKK0BAIC0wLDAgKzEsMzE2IEBACisrdXNl IHN0ZDo6Zm10OworKworKy8vLyBWZXJzaW9uIG51bWJlcjogYG1ham9yLm1pbm9yLnBhdGNoYCwg aWdub3JpbmcgcmVsZWFzZSBjaGFubmVsLgorKyNbZGVyaXZlKFBhcnRpYWxFcSwgRXEsIENvcHks IENsb25lLCBQYXJ0aWFsT3JkLCBPcmQpXQorK3B1YiBzdHJ1Y3QgVmVyc2lvbih1NjQpOworKwor K2ltcGwgVmVyc2lvbiB7CisrICAgIC8vLyBSZWFkcyB0aGUgdmVyc2lvbiBvZiB0aGUgcnVubmlu ZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlIGRldGVybWluZWQKKysgICAgLy8vIChzZWUgdGhl IFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCisrICAg IC8vLworKyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAg ICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247CisrICAgIC8vLworKyAgICAvLy8gbWF0 Y2ggVmVyc2lvbjo6cmVhZCgpIHsKKysgICAgLy8vICAgICBTb21lKGQpID0+IGZvcm1hdCEoIlZl cnNpb24gaXM6IHt9IiwgZCksCisrICAgIC8vLyAgICAgTm9uZSA9PiBmb3JtYXQhKCJGYWlsZWQg dG8gcmVhZCB0aGUgdmVyc2lvbi4iKQorKyAgICAvLy8gfTsKKysgICAgLy8vIGBgYAorKyAgICBw dWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxWZXJzaW9uPiB7CisrICAgICAgICA6OmdldF92ZXJzaW9u X2FuZF9kYXRlKCkKKysgICAgICAgICAgICAuYW5kX3RoZW4ofCh2ZXJzaW9uLCBfKXwgdmVyc2lv bikKKysgICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IFZlcnNpb246OnBhcnNlKCZ2ZXJz aW9uKSkKKysgICAgfQorKworKworKyAgICAvLy8gUGFyc2UgYSBSdXN0IHJlbGVhc2UgdmVyc2lv biAob2YgdGhlIGZvcm0KKysgICAgLy8vIGBtYWpvclsubWlub3JbLnBhdGNoWy1jaGFubmVsXV1d YCksIGlnbm9yaW5nIHRoZSByZWxlYXNlIGNoYW5uZWwsIGlmCisrICAgIC8vLyBhbnkuIFJldHVy bnMgYE5vbmVgIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBSdXN0IHZlcnNpb24gc3RyaW5n LgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1 c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAg Ly8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVud3JhcCgpOworKyAg ICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKKysgICAgLy8vCisrICAg IC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjIwLjAtbmlnaHRseSIpLnVud3Jh cCgpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMCIpKTsKKysgICAg Ly8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtYmV0YSIpKTsKKysgICAgLy8vCisr ICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjMiKS51bndyYXAoKTsKKysg ICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMuMCIpKTsKKysgICAgLy8vCisrICAg IC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxIikudW53cmFwKCk7CisrICAgIC8v LyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7CisrICAgIC8vLworKyAgICAvLy8g YXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgib25lLnR3by50aHJlZSIpLmlzX25vbmUoKSk7CisrICAg IC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIxLjY1NTM2LjIiKS5pc19ub25lKCkpOworKyAg ICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS4gMiIpLmlzX25vbmUoKSk7CisrICAgIC8v LyBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCIiKS5pc19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0 IShWZXJzaW9uOjpwYXJzZSgiMS4iKS5pc19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShWZXJz aW9uOjpwYXJzZSgiMS4yLjMuNCIpLmlzX25vbmUoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHVi IGZuIHBhcnNlKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxWZXJzaW9uPiB7CisrICAgICAgICBs ZXQgc3BsaXRzID0gdmVyc2lvbi5zcGxpdCgnLScpCisrICAgICAgICAgICAgLm50aCgwKQorKyAg ICAgICAgICAgIC51bndyYXBfb3IoIiIpCisrICAgICAgICAgICAgLnNwbGl0KCcuJykKKysgICAg ICAgICAgICAubWFwKHxzfCBzLnBhcnNlOjo8dTE2PigpKTsKKysKKysgICAgICAgIGxldCBtdXQg bW1wID0gWzB1MTY7IDNdOworKyAgICAgICAgZm9yIChpLCBzcGxpdCkgaW4gc3BsaXRzLmVudW1l cmF0ZSgpIHsKKysgICAgICAgICAgICBtbXBbaV0gPSBtYXRjaCAoaSwgc3BsaXQpIHsKKysgICAg ICAgICAgICAgICAgKDMsIF8pIHwgKF8sIEVycihfKSkgPT4gcmV0dXJuIE5vbmUsCisrICAgICAg ICAgICAgICAgIChfLCBPayh2KSkgPT4gdiwKKysgICAgICAgICAgICB9OworKyAgICAgICAgfQor KworKyAgICAgICAgbGV0IChtYWosIG1pbiwgcGF0Y2gpID0gKG1tcFswXSwgbW1wWzFdLCBtbXBb Ml0pOworKyAgICAgICAgU29tZShWZXJzaW9uOjpmcm9tX21tcChtYWosIG1pbiwgcGF0Y2gpKQor KyAgICB9CisrCisrICAgIC8vLyBDcmVhdGVzIGEgYFZlcnNpb25gIGZyb20gYChtYWpvciwgbWlu b3IsIHBhdGNoKWAgdmVyc2lvbiBjb21wb25lbnRzLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhh bXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2No ZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6ZnJvbV9t bXAoMSwgMzUsIDApLmV4YWN0bHkoIjEuMzUuMCIpKTsKKysgICAgLy8vIGFzc2VydCEoVmVyc2lv bjo6ZnJvbV9tbXAoMSwgMzMsIDApLmV4YWN0bHkoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2Vy dCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMzUsIDEpLmV4YWN0bHkoIjEuMzUuMSIpKTsKKysgICAg Ly8vIGFzc2VydCEoVmVyc2lvbjo6ZnJvbV9tbXAoMSwgMTMsIDIpLmV4YWN0bHkoIjEuMTMuMiIp KTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZnJvbV9tbXAobWFqb3I6IHUxNiwgbWlub3I6 IHUxNiwgcGF0Y2g6IHUxNikgLT4gVmVyc2lvbiB7CisrICAgICAgICBWZXJzaW9uKCgobWFqb3Ig YXMgdTY0KSA8PCAzMikgfCAoKG1pbm9yIGFzIHU2NCkgPDwgMTYpIHwgcGF0Y2ggYXMgdTY0KQor KyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIHRoZSBgKG1ham9yLCBtaW5vciwgcGF0Y2gpYCB2 ZXJzaW9uIGNvbXBvbmVudHMgb2YgYHNlbGZgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBs ZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNr OjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2Uo IjEuMzUuMCIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzUsIDApKTsKKysgICAgLy8vIGFzc2Vy dF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEuMzMuMCIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMzMs IDApKTsKKysgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoIjEuMzUuMSIpLnVud3Jh cCgpLnRvX21tcCgpLCAoMSwgMzUsIDEpKTsKKysgICAgLy8vIGFzc2VydF9lcSEoVmVyc2lvbjo6 cGFyc2UoIjEuMTMuMiIpLnVud3JhcCgpLnRvX21tcCgpLCAoMSwgMTMsIDIpKTsKKysgICAgLy8v IGBgYAorKyAgICBwdWIgZm4gdG9fbW1wKCZzZWxmKSAtPiAodTE2LCB1MTYsIHUxNikgeworKyAg ICAgICAgbGV0IG1ham9yID0gc2VsZi4wID4+IDMyOworKyAgICAgICAgbGV0IG1pbm9yID0gc2Vs Zi4wID4+IDE2OworKyAgICAgICAgbGV0IHBhdGNoID0gc2VsZi4wOworKyAgICAgICAgKG1ham9y IGFzIHUxNiwgbWlub3IgYXMgdTE2LCBwYXRjaCBhcyB1MTYpCisrICAgIH0KKysKKysgICAgLy8v IFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gYHZl cnNpb25gLgorKyAgICAvLy8KKysgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBncmVhdGVyIHRoYW4g YHNlbGZgLCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAorKyAgICAvLy8gdmVy c2lvbiBzdHJpbmcsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1w bGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVj azo6VmVyc2lvbjsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBh cnNlKCIxLjM1LjAiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKHZlcnNp b24uYXRfbGVhc3QoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFz dCgiMS4zNS4wIikpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjEzLjIi KSk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS4zNS4x IikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS41NS4wIikpOworKyAg ICAvLy8KKysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTIuNSIpLnVu d3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFzdCgiMS4x Mi4wIikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9sZWFzdCgiMS4zNS4wIikpOwor KyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9sZWFzdCgmc2VsZiwgdmVyc2lvbjogJnN0cikg LT4gYm9vbCB7CisrICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQorKyAgICAgICAgICAg IC5tYXAofHZlcnNpb258IHNlbGYgPj0gJnZlcnNpb24pCisrICAgICAgICAgICAgLnVud3JhcF9v cihmYWxzZSkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlz IGxlc3MgdGhhbiBvciBlcXVhbCB0byBgdmVyc2lvbmAuCisrICAgIC8vLworKyAgICAvLy8gSWYg YHZlcnNpb25gIGlzIGxlc3MgdGhhbiBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2 YWxpZCBSdXN0CisrICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBgZmFsc2VgLgorKyAg ICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysg ICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8KKysgICAgLy8vIGxl dCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgpOworKyAgICAvLy8K KysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjM1LjEiKSk7CisrICAgIC8vLyBh c3NlcnQhKHZlcnNpb24uYXRfbW9zdCgiMS41NS4wIikpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJz aW9uLmF0X21vc3QoIjEuMzUuMCIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCF2ZXJz aW9uLmF0X21vc3QoIjEuMzMuMCIpKTsKKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbW9z dCgiMS4xMy4yIikpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBhdF9tb3N0KCZzZWxmLCB2 ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAgIFZlcnNpb246OnBhcnNlKHZlcnNpb24p CisrICAgICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2VsZiA8PSAmdmVyc2lvbikKKysgICAgICAg ICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVl YCBpZiBgc2VsZmAgaXMgZXhhY3RseSBlcXVhbCB0byBgdmVyc2lvbmAuCisrICAgIC8vLworKyAg ICAvLy8gSWYgYHZlcnNpb25gIGlzIG5vdCBlcXVhbCB0byBgc2VsZmAsIG9yIGlmIGB2ZXJzaW9u YCBpcyBub3QgYSB2YWxpZCBSdXN0CisrICAgIC8vLyB2ZXJzaW9uIHN0cmluZywgcmV0dXJucyBg ZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8v IGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAvLy8K KysgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUuMCIpLnVud3JhcCgp OworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjM1LjAiKSk7 CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjMzLjAiKSk7 CisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMzUuMSIpKTsKKysgICAgLy8v IGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xMy4yIikpOworKyAgICAvLy8gYGBgCisrICAg IHB1YiBmbiBleGFjdGx5KCZzZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsKKysgICAgICAg IFZlcnNpb246OnBhcnNlKHZlcnNpb24pCisrICAgICAgICAgICAgLm1hcCh8dmVyc2lvbnwgc2Vs ZiA9PSAmdmVyc2lvbikKKysgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQorKyAgICB9Cisr fQorKworK2ltcGwgZm10OjpEaXNwbGF5IGZvciBWZXJzaW9uIHsKKysgICAgZm4gZm10KCZzZWxm LCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICBsZXQg KG1ham9yLCBtaW5vciwgcGF0Y2gpID0gc2VsZi50b19tbXAoKTsKKysgICAgICAgIHdyaXRlIShm LCAie30ue30ue30iLCBtYWpvciwgbWlub3IsIHBhdGNoKQorKyAgICB9CisrfQorKworK2ltcGwg Zm10OjpEZWJ1ZyBmb3IgVmVyc2lvbiB7CisrICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6 OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGBk ZWJ1Z18qYCBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiBgMS4wLjBgLgorKyAgICAgICAg d3JpdGUhKGYsICJWZXJzaW9uKHs6P30sIHs6P30pIiwgc2VsZi4wLCBzZWxmLnRvX21tcCgpKQor KyAgICB9CisrfQorKworKyNbY2ZnKHRlc3QpXQorK21vZCB0ZXN0cyB7CisrICAgIHVzZSBzdXBl cjo6VmVyc2lvbjsKKysKKysgICAgbWFjcm9fcnVsZXMhIGFzc2VydF90b19tbXAgeworKyAgICAg ICAgLy8gV2UgZG9uJ3QgdXNlIGAuaW50bzo6PE9wdGlvbjxfPj5gIGJlY2F1c2UgaXQncyBub3Qg YXZhaWxhYmxlIGluIDEuMC4KKysgICAgICAgIC8vIFdlIGRvbid0IHVzZSB0aGUgbWVzc2FnZSBw YXJ0IG9mIGBhc3NlcnQhYCBmb3IgdGhlIHNhbWUgcmVhc29uLgorKyAgICAgICAgKCRzOmV4cHIs IE5vbmUpID0+ICgKKysgICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRzKSwg Tm9uZSk7CisrICAgICAgICApOworKyAgICAgICAgKCRzOmV4cHIsICRtbXA6ZXhwcikgPT4gKAor KyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLm1hcCh8dnwgdi50b19t bXAoKSksIFNvbWUoJG1tcCkpOworKyAgICAgICAgKQorKyAgICB9CisrCisrICAgIG1hY3JvX3J1 bGVzISBhc3NlcnRfZnJvbV9tbXAgeworKyAgICAgICAgKCgkeDpleHByLCAkeTpleHByLCAkejpl eHByKSA9PiAkczpleHByKSA9PiB7CisrICAgICAgICAgICAgYXNzZXJ0X2VxIShTb21lKFZlcnNp b246OmZyb21fbW1wKCR4LCAkeSwgJHopKSwgVmVyc2lvbjo6cGFyc2UoJHMpKTsKKysgICAgICAg IH07CisrICAgIH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X3N0cl90b19tbXAoKSB7 CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMSIsICgxLCAwLCAwKSk7CisrICAgICAgICBhc3Nl cnRfdG9fbW1wISgiMS4yIiwgKDEsIDIsIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIx LjE4LjAiLCAoMSwgMTgsIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIzLjE5LjAiLCAo MywgMTksIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjE5LjAtbmlnaHRseSIsICgx LCAxOSwgMCkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTIuMjM0OSIsICgxLCAxMiwg MjM0OSkpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjAuMTIiLCAoMCwgMTIsIDApKTsKKysg ICAgICAgIGFzc2VydF90b19tbXAhKCIxLjEyLjUiLCAoMSwgMTIsIDUpKTsKKysgICAgICAgIGFz c2VydF90b19tbXAhKCIxLjEyIiwgKDEsIDEyLCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1w ISgiMSIsICgxLCAwLCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS40LjQtbmlnaHRs eSAoZDg0NjkzYjkzIDIwMTctMDctMDkpKSIsICgxLCA0LCA0KSk7CisrICAgICAgICBhc3NlcnRf dG9fbW1wISgiMS41ODg3OS40NDc4LWRldiIsICgxLCA1ODg3OSwgNDQ3OCkpOworKyAgICAgICAg YXNzZXJ0X3RvX21tcCEoIjEuNTg4NzkuNDQ3OC1kZXYgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSki LCAoMSwgNTg4NzksIDQ0NzgpKTsKKysgICAgfQorKworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRl c3RfbWFsZm9ybWVkKCkgeworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNjU1MzYuMiIsIE5v bmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIi0xLjIuMyIsIE5vbmUpOworKyAgICAgICAg YXNzZXJ0X3RvX21tcCEoIjEuIDIiLCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIi LCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIgIiwgTm9uZSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgiLiIsIE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIm9uZSIs IE5vbmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuIiwgTm9uZSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgiMS4yLjMuNC41LjYiLCBOb25lKTsKKysgICAgfQorKworKyAgICAjW3Rl c3RdCisrICAgIGZuIHRlc3RfZnJvbV9tbXAoKSB7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAh KCgxLCAxOCwgMCkgPT4gIjEuMTguMCIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMywg MTksIDApID0+ICIzLjE5LjAiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDE5LCAw KSA9PiAiMS4xOS4wIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwgMjM0OSkg PT4gIjEuMTIuMjM0OSIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMCwgMTIsIDApID0+ ICIwLjEyIik7CisrICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwgNSkgPT4gIjEuMTIu NSIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTIsIDApID0+ICIxLjEyIik7Cisr ICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAwLCAwKSA9PiAiMSIpOworKyAgICAgICAgYXNz ZXJ0X2Zyb21fbW1wISgoMSwgNCwgNCkgPT4gIjEuNC40Iik7CisrICAgICAgICBhc3NlcnRfZnJv bV9tbXAhKCgxLCA1ODg3OSwgNDQ3OCkgPT4gIjEuNTg4NzkuNDQ3OCIpOworKyAgICB9CisrCisr ICAgICNbdGVzdF0KKysgICAgZm4gdGVzdF9jb21wYXJpc29ucygpIHsKKysgICAgICAgIGxldCB2 ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMTguMCIpLnVud3JhcCgpOworKyAgICAgICAgYXNz ZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMTguMCIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lv bi5hdF9sZWFzdCgiMS4xMi4wIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0 KCIxLjEyIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxIikpOworKyAg ICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuMTguMSIpKTsKKysgICAgICAgIGFzc2Vy dCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOS4wIikpOworKyAgICAgICAgYXNzZXJ0ISghdmVyc2lv bi5leGFjdGx5KCIxLjE4LjEiKSk7CisrCisrICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246 OnBhcnNlKCIxLjIwLjAtbmlnaHRseSIpLnVud3JhcCgpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJz aW9uLmV4YWN0bHkoIjEuMjAuMC1iZXRhIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4 YWN0bHkoIjEuMjAuMC1uaWdodGx5IikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0 bHkoIjEuMjAuMCIpKTsKKysgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOSIp KTsKKysKKysgICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMyIpLnVud3Jh cCgpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wIikpOworKyAgICAg ICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wLXN0YWJsZSIpKTsKKysgICAgICAgIGFz c2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMiKSk7CisrICAgICAgICBhc3NlcnQhKCF2ZXJzaW9u LmV4YWN0bHkoIjEuNS4wLXN0YWJsZSIpKTsKKysKKysgICAgICAgIGxldCB2ZXJzaW9uID0gVmVy c2lvbjo6cGFyc2UoIjEiKS51bndyYXAoKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFj dGx5KCIxLjAuMCIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjAiKSk7 CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMSIpKTsKKysKKysgICAgICAgIGFz c2VydCEoVmVyc2lvbjo6cGFyc2UoIm9uZS50d28udGhyZWUiKS5pc19ub25lKCkpOworKyAgICB9 CisrCisrICAgIG1hY3JvX3J1bGVzISByZWZsZXhpdmVfZGlzcGxheSB7CisrICAgICAgICAoJHM6 ZXhwcikgPT4gKAorKyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLnVu d3JhcCgpLnRvX3N0cmluZygpLCAkcyk7CisrICAgICAgICApCisrICAgIH0KKysKKysgICAgI1t0 ZXN0XQorKyAgICBmbiBkaXNwbGF5KCkgeworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIx LjAuMCIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjIuMyIpOworKyAgICAgICAg cmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjEyLjE0MzgiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNw bGF5ISgiMS40NC4wIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIuNDQuMCIpOwor KyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMzQ1OS4yODkyMy4zNDgzIik7CisrICAgIH0K Kyt9CgpkaWZmIC0tZ2l0IGEvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0yMDMzMjc5LnBhdGNo IGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0yMDMzMjc5LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3OTczNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25r ZXktMi41My4yNC1tb3ppbGxhLTIwMzMyNzkucGF0Y2gKQEAgLTAsMCArMSwxOTcgQEAKKyMgSEcg Y2hhbmdlc2V0IHBhdGNoCisjIFVzZXIgSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4u Zmk+CisjIERhdGUgMTc3Njc1NTM2MCAwCisjIE5vZGUgSUQgZWMxZGQwNWZkNTc4NTk4NWI3YmQ5 NjM2NDA1Njg4ZDFkNjFhOTVkOQorIyBQYXJlbnQgIDc1NzdjNDcyYzNmMThjYTQ5N2FiOTJiMTVk ZjdhMDFlNzE5NGZmZDYKK0J1ZyAyMDMzMjc5IC0gTWFrZSAtLWVuYWJsZS1ydXN0LXNpbWQgd29y ayB3aXRoIFJ1c3QgMS45NS4gcj1maXJlZm94LWJ1aWxkLXN5c3RlbS1yZXZpZXdlcnMsc3VwcGx5 LWNoYWluLXJldmlld2VycyxhaG9jaGhlaWRlbgorCitEaWZmZXJlbnRpYWwgUmV2aXNpb246IGh0 dHBzOi8vcGhhYnJpY2F0b3Iuc2VydmljZXMubW96aWxsYS5jb20vRDI5NTI4NworCitkaWZmIC0t Z2l0IGEvLmNhcmdvL2NvbmZpZy5pbiBiLy5jYXJnby9jb25maWcuaW4KKy0tLSBhLy5jYXJnby9j b25maWcuaW4KKysrKyBiLy5jYXJnby9jb25maWcuaW4KK0BAIC03LDEwICs3LDE1IEBAIGdpdCA9 ICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiCisgYnJhbmNoID0gImRlc2VyaWFsaXpl X2Zyb21fZW51bXM4IgorIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgorIAorIFtz b3VyY2UuImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5k P3Jldj03ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIl0KKyBnaXQgPSAi aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZCIKKyByZXYgPSAi N2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCIKKyByZXBsYWNlLXdpdGgg PSAidmVuZG9yZWQtc291cmNlcyIKKyAKKytbc291cmNlLiJnaXQraHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL2VuY29kaW5nX3JzP3Jldj0xMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3NGE2MzA0 ZGIyZDcwM2I1Il0KKytnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5n X3JzIgorK3JldiA9ICIxMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3NGE2MzA0ZGIyZDcwM2I1Igor K3JlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgorKworIFtzb3VyY2UudmVuZG9yZWQt c291cmNlc10KKyBkaXJlY3RvcnkgPSAnQHRvcF9zcmNkaXJAL3RoaXJkX3BhcnR5L3J1c3QnCitk aWZmIC0tZ2l0IGEvQ2FyZ28ubG9jayBiL0NhcmdvLmxvY2sKKy0tLSBhL0NhcmdvLmxvY2sKKysr KyBiL0NhcmdvLmxvY2sKK0BAIC02MTUsMjEgKzYxNSwyMSBAQCBkZXBlbmRlbmNpZXMgPSBbCisg ICJlbmNvZGluZ19ycyIsCisgICJuc2Vycm9yIiwKKyAgIm5zc3RyaW5nIiwKKyBdCisgCisgW1tw YWNrYWdlXV0KKyBuYW1lID0gImVuY29kaW5nX3JzIgorIHZlcnNpb24gPSAiMC44LjM1IgorLXNv dXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1p bmRleCIKKy1jaGVja3N1bSA9ICI3NTAzMGYzYzRmNDVkYWZkNzU4NmRkNjc4MDk2NWE4YzdlOGUy ODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIgorK3NvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRo dWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzP3Jldj0xMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3 NGE2MzA0ZGIyZDcwM2I1IzEyMzZkMWJjNDIzZTZiYTM1YTA2NDg1Zjc0YTYzMDRkYjJkNzAzYjUi CisgZGVwZW5kZW5jaWVzID0gWworICAiYW55X2FsbF93b3JrYXJvdW5kIiwKKyAgImNmZy1pZiAx LjAuMCIsCisrICJydXN0dmVyc2lvbiIsCisgXQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJl bnZfbG9nZ2VyIgorIHZlcnNpb24gPSAiMC41LjEzIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICIx NWIwYTRkMmUzOWY4NDIwMjEwYmU4YjI3ZWVkYTI4MDI5NzI5ZTJmZDQyOTEwMTk0NTUwMTZjMzQ4 MjQwYzM4IgorIGRlcGVuZGVuY2llcyA9IFsKK2RpZmYgLS1naXQgYS9DYXJnby50b21sIGIvQ2Fy Z28udG9tbAorLS0tIGEvQ2FyZ28udG9tbAorKysrIGIvQ2FyZ28udG9tbAorQEAgLTQ5LDggKzQ5 LDEwIEBAIHJwYXRoID0gZmFsc2UKKyBkZWJ1Zy1hc3NlcnRpb25zID0gZmFsc2UKKyBwYW5pYyA9 ICJhYm9ydCIKKyBjb2RlZ2VuLXVuaXRzID0gMQorIAorIFtwYXRjaC5jcmF0ZXMtaW9dCisgbGli dWRldi1zeXMgPSB7IHBhdGggPSAiZG9tL3dlYmF1dGhuL2xpYnVkZXYtc3lzIiB9Cisgc2VyZGVf ZGVyaXZlID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRlIiwgYnJhbmNo ID0gImRlc2VyaWFsaXplX2Zyb21fZW51bXM4IiB9CisgYW55X2FsbF93b3JrYXJvdW5kID0geyBn aXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZCIsIHJl diA9ICI3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIiB9CisrIyBNYWtl IC0tZW5hYmxlLXJ1c3Qtc2ltZCBjb21wYXRpYmxlIHdpdGggUnVzdCAxLjk1CisrZW5jb2Rpbmdf cnMgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnMiLCBy ZXYgPSAiMTIzNmQxYmM0MjNlNmJhMzVhMDY0ODVmNzRhNjMwNGRiMmQ3MDNiNSIgfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9DYXJnby50b21sCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L0NhcmdvLnRvbWwKK0BAIC0xMSwxNiArMTEsMTcgQEAKKyAKKyBbcGFja2FnZV0KKyBlZGl0aW9u ID0gIjIwMTgiCisgcnVzdC12ZXJzaW9uID0gIjEuMzYiCisgbmFtZSA9ICJlbmNvZGluZ19ycyIK KyB2ZXJzaW9uID0gIjAuOC4zNSIKKyBhdXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxoc2l2b25l bkBoc2l2b25lbi5maT4iXQorIGJ1aWxkID0gZmFsc2UKKythdXRvbGliID0gZmFsc2UKKyBhdXRv YmlucyA9IGZhbHNlCisgYXV0b2V4YW1wbGVzID0gZmFsc2UKKyBhdXRvdGVzdHMgPSBmYWxzZQor IGF1dG9iZW5jaGVzID0gZmFsc2UKKyBkZXNjcmlwdGlvbiA9ICJBIEdlY2tvLW9yaWVudGVkIGlt cGxlbWVudGF0aW9uIG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIKKyBob21lcGFnZSA9ICJodHRw czovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2Nz LnJzL2VuY29kaW5nX3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1kIgorQEAgLTM0LDQzICszNSwx NiBAQCBjYXRlZ29yaWVzID0gWworICAgICAidGV4dC1wcm9jZXNzaW5nIiwKKyAgICAgImVuY29k aW5nIiwKKyAgICAgIndlYi1wcm9ncmFtbWluZyIsCisgICAgICJpbnRlcm5hdGlvbmFsaXphdGlv biIsCisgXQorIGxpY2Vuc2UgPSAiKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgQlNELTMtQ2xhdXNl IgorIHJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3Jz IgorIAorLVtwcm9maWxlLnJlbGVhc2VdCistbHRvID0gdHJ1ZQorLQorLVtsaWJdCistbmFtZSA9 ICJlbmNvZGluZ19ycyIKKy1wYXRoID0gInNyYy9saWIucnMiCistCistW2RlcGVuZGVuY2llcy5h bnlfYWxsX3dvcmthcm91bmRdCistdmVyc2lvbiA9ICIwLjEuMCIKKy1vcHRpb25hbCA9IHRydWUK Ky0KKy1bZGVwZW5kZW5jaWVzLmNmZy1pZl0KKy12ZXJzaW9uID0gIjEuMCIKKy0KKy1bZGVwZW5k ZW5jaWVzLnNlcmRlXQorLXZlcnNpb24gPSAiMS4wIgorLW9wdGlvbmFsID0gdHJ1ZQorLQorLVtk ZXYtZGVwZW5kZW5jaWVzLmJpbmNvZGVdCistdmVyc2lvbiA9ICIxLjAiCistCistW2Rldi1kZXBl bmRlbmNpZXMuc2VyZGVfZGVyaXZlXQorLXZlcnNpb24gPSAiMS4wIgorLQorLVtkZXYtZGVwZW5k ZW5jaWVzLnNlcmRlX2pzb25dCistdmVyc2lvbiA9ICIxLjAiCistCisgW2ZlYXR1cmVzXQorIGFs bG9jID0gW10KKyBkZWZhdWx0ID0gWyJhbGxvYyJdCisgZmFzdC1iaWc1LWhhbnppLWVuY29kZSA9 IFtdCisgZmFzdC1nYi1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtaGFuZ3VsLWVuY29kZSA9IFtd CisgZmFzdC1oYW5qYS1lbmNvZGUgPSBbXQorIGZhc3Qta2FuamktZW5jb2RlID0gW10KK0BAIC03 OSw5ICs1MywzOSBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBbCisgICAgICJmYXN0LWhhbmphLWVu Y29kZSIsCisgICAgICJmYXN0LWthbmppLWVuY29kZSIsCisgICAgICJmYXN0LWdiLWhhbnppLWVu Y29kZSIsCisgICAgICJmYXN0LWJpZzUtaGFuemktZW5jb2RlIiwKKyBdCisgbGVzcy1zbG93LWJp ZzUtaGFuemktZW5jb2RlID0gW10KKyBsZXNzLXNsb3ctZ2ItaGFuemktZW5jb2RlID0gW10KKyBs ZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KKy1zaW1kLWFjY2VsID0gWyJhbnlfYWxsX3dvcmth cm91bmQiXQorK3NpbWQtYWNjZWwgPSBbCisrICAgICJhbnlfYWxsX3dvcmthcm91bmQiLAorKyAg ICAicnVzdHZlcnNpb24iLAorK10KKysKKytbbGliXQorK25hbWUgPSAiZW5jb2RpbmdfcnMiCisr cGF0aCA9ICJzcmMvbGliLnJzIgorKworK1tkZXBlbmRlbmNpZXNdCisrY2ZnLWlmID0gIjEuMCIK KysKKytbZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fyb3VuZF0KKyt2ZXJzaW9uID0gIjAuMS4w IgorK29wdGlvbmFsID0gdHJ1ZQorKworK1tkZXBlbmRlbmNpZXMucnVzdHZlcnNpb25dCisrdmVy c2lvbiA9ICIxLjAuMTkiCisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2RlcGVuZGVuY2llcy5zZXJk ZV0KKyt2ZXJzaW9uID0gIjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKytbZGV2LWRlcGVuZGVu Y2llc10KKytiaW5jb2RlID0gIjEuMCIKKytzZXJkZV9kZXJpdmUgPSAiMS4wIgorK3NlcmRlX2pz b24gPSAiMS4wIgorKworK1twcm9maWxlLnJlbGVhc2VdCisrbHRvID0gdHJ1ZQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycworQEAg LTExLDE2ICsxMSwxOCBAQCB1c2Ugc3VwZXI6Oio7CisgdXNlIGNyYXRlOjpoYW5kbGVzOjoqOwor IHVzZSBjcmF0ZTo6dmFyaWFudDo6KjsKKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcoZmVh dHVyZSA9ICJzaW1kLWFjY2VsIildIHsKKyAgICAgICAgIHVzZSBzaW1kX2Z1bmNzOjoqOworICAg ICAgICAgdXNlIGNvcmU6OnNpbWQ6OnUxNng4OworICAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OmNt cDo6U2ltZFBhcnRpYWxPcmQ7CisrICAgICAgICAjW3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjk1KV0K KysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpTZWxlY3Q7CisgCisgICAgICAgICAjW2lubGluZShh bHdheXMpXQorICAgICAgICAgZm4gc2hpZnRfdXBwZXIodW5wYWNrZWQ6IHUxNng4KSAtPiB1MTZ4 OCB7CisgICAgICAgICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkgPSB1MTZ4ODo6c3BsYXQoMHg3Rik7 CisgICAgICAgICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5zaW1kX2d0KGhpZ2hlc3RfYXNjaWkp LnNlbGVjdCh1MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAgfQor ICAgICB9IGVsc2UgeworICAgICB9CisgfQoKZGlmZiAtLWdpdCBhL3NlYW1vbmtleS0yLjUzLjI0 LXJ1c3RfdTJmaGlkLnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF91MmZoaWQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQzNDRjYQotLS0gL2Rldi9udWxs CisrKyBiL3NlYW1vbmtleS0yLjUzLjI0LXJ1c3RfdTJmaGlkLnBhdGNoCkBAIC0wLDAgKzEsMjUg QEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVzZXIgRnJhbmstUmFpbmVyIEdyYWhsIDxmcmdy YWhsQGdteC5uZXQ+CisjIERhdGUgMTc4NTEwODExOSAtNzIwMAorIyBQYXJlbnQgIGQ2YzBmZjdi MGMwNWEwY2JjYjBhNzQ5YTg2MTA4MWRjODQ4NTM5YmQKK05vIEJ1ZyAtIEZpeCB1MmZoaWQgZm9y IGxhdGVyIHJ1c3QgdmVyc2lvbnMuIHI9bWUgYT1tZQorCitkaWZmIC0tZ2l0IGEvZG9tL3dlYmF1 dGhuL3UyZi1oaWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzIGIvZG9tL3dlYmF1dGhuL3UyZi1o aWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzCistLS0gYS9kb20vd2ViYXV0aG4vdTJmLWhpZC1y cy9zcmMvd2luZG93cy93aW5hcGkucnMKKysrKyBiL2RvbS93ZWJhdXRobi91MmYtaGlkLXJzL3Ny Yy93aW5kb3dzL3dpbmFwaS5ycworQEAgLTEsMTIgKzEsMTUgQEAKKyAvKiBUaGlzIFNvdXJjZSBD b2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCisg ICogTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1 dGVkIHdpdGggdGhpcworICAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96 aWxsYS5vcmcvTVBMLzIuMC8uICovCisgCisrLy8gWWVzIGl0IGlzIGJhZCBidXQgd2UgZG9uJ3Qg dXNlIHdlYmF1dGhuIGN1cnJlbnRseSBhbnl3YXkuCisrIyFbd2FybihkZXJlZl9udWxscHRyKV0K KysKKyB1c2Ugc3RkOjppbzsKKyB1c2Ugc3RkOjptZW07CisgdXNlIHN0ZDo6cHRyOworIHVzZSBz dGQ6OnNsaWNlOworIAorIHVzZSBzdGQ6OmZmaTo6T3NTdHJpbmc7CisgdXNlIHN0ZDo6b3M6Ondp bmRvd3M6OmZmaTo6T3NTdHJpbmdFeHQ7CisgCgpkaWZmIC0tZ2l0IGEvc2VhbW9ua2V5LTIuNTMu MjQtcnVzdF92ZXJzaW9uLnBhdGNoIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF92ZXJzaW9uLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5YThhOTMKLS0tIC9kZXYv bnVsbAorKysgYi9zZWFtb25rZXktMi41My4yNC1ydXN0X3ZlcnNpb24ucGF0Y2gKQEAgLTAsMCAr MSwyMjc2IEBACisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBVc2VyIEZyYW5rLVJhaW5lciBHcmFo bCA8ZnJncmFobEBnbXgubmV0PgorIyBEYXRlIDE3ODUxMDgwMzIgLTcyMDAKKyMgUGFyZW50ICA5 ZGZmZDc4NjExZDA4MDM0YWRhYmE3MDJkMjA4ZWE4OTc5YmQ3YzQwCitObyBCdWcgLSBBZGQgcnVz dCB2ZXJzaW9uIGNyYXRlLiByPW1lIGE9bWUKKworZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9D YXJnby5sb2NrCistLS0gYS9DYXJnby5sb2NrCisrKysgYi9DYXJnby5sb2NrCitAQCAtMTcxNCwx NiArMTcxNCwyMiBAQCBuYW1lID0gInJ1c3RjX3ZlcnNpb24iCisgdmVyc2lvbiA9ICIwLjIuMSIK KyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMu aW8taW5kZXgiCisgY2hlY2tzdW0gPSAiYjk3NDNhNzY3MGQ4OGQ1ZDUyOTUwNDA4ZWNkYjdjNzFk ODk4NjI1MWFiNjA0ZDQ2ODlkZDJjYTI1YzliY2E2OSIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJz ZW12ZXIiLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorK25hbWUgPSAicnVzdHZlcnNpb24iCisrdmVy c2lvbiA9ICIxLjAuMjMiCisrc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorK2NoZWNrc3VtID0gImNmNTQ3MTVhNTczYjk5YWM4 MGRmMGJjMjA2ZGEwMjJiY2Q0NDJjOTc0OTUyYzdiOTcyMDA2OTM3MDg1MmUyMWYiCisrCisrW1tw YWNrYWdlXV0KKyBuYW1lID0gInNhbWUtZmlsZSIKKyB2ZXJzaW9uID0gIjEuMC4yIgorIHNvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKKyBjaGVja3N1bSA9ICJjZmI2ZWRlZDBiMDZhMGI1MTJjOGRkYmNmMDQwODkxMzhjOWI0MzYy YzJmNjk2ZjNjM2Q3NjAzOWQ2OGYzNjM3IgorIGRlcGVuZGVuY2llcyA9IFsKKyAgIndpbmFwaSAw LjMuNyIsCisgXQorIAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv LmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJn by1jaGVja3N1bS5qc29uCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJn by1jaGVja3N1bS5qc29uCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJn by1jaGVja3N1bS5qc29uCitAQCAtMSwxICsxLDEgQEAKKy17ImZpbGVzIjp7IkNPTlRSSUJVVElO Ry5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTky ZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3 ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6ImQ3NDA1 ZDJiY2Y5OWNmOTcyOTA3NTQ3M2M0NWY2Nzc2MzBmNGMxOTQ3YzhiYTk3NTdkYjYwN2YyMDI1YTdk YTIiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1 NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNi ZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNF TlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0 Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRi YmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQi OiI5ODI2MTM3ZWQ0Mjk3YmUzYjIwMTliNzRhOGY2MTExYTc5NmZmNTA3YmRlNDFkZjJmMjA3MTI1 Mzk3MDRiOWU5IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcx NGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVk YzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBi IiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRk YmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2Yz YjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwi ZG9jL0dCSy50eHQiOiI4MjI5ZTU5MDc2ZDhiZGRiMDE4NjVjZGNmNmFmZGEzNTMzMjM4ZDdjMjNk OTdmOTg4MjBmOWUzYjJkMTM1MDVkIiwiZG9jL0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNh Zjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lT Ty0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3 NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3 YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIs ImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0 NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNk MzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2 MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4 NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50 eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgz OTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVh MzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1 OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0Mjcz MjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJj YzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lT Ty04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2Uy OGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5 NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJk b2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2 YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3 NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZl Y2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMx NTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5 Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZi NTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdk YTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRj NDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4 NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUw MGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6Ijcw YmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2 ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3 ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6IjY3YTAx NjY1Yzc1NTA1MzMwYjBmZTViOGQ4OGQ1ODczZDhjZTU1NWExNDVjNzdkY2EwNGE0NjdmYTI2ODA3 NDQiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5 ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0Ijoi NGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhk Mzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMy ZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEy NTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQw MmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVl ZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93 aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJh YjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJm ODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0 NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlk NzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0 IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZl NGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIx ZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dz LTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgz Nzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZl YmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9j L3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2Vm MzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0Ijoi ZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0 ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiI2ZjM0YTg0NTc4NWY1MzQyNWFj Y2YzMDc1OWVkYzU2Njg3M2ZjYjBjMjE4ODY0OGUwN2IwOWM4OThmMzlkZGRiIiwicnVzdGZtdC50 b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNj ZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2NjZkNWU3NDYyNjE3ZWE3 ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJzcmMvYmlnNS5ycyI6ImVj NmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1 N2NlZjkiLCJzcmMvZGF0YS5ycyI6ImI5M2YzNDAyNWZlNWM2YTg1YjRiOWYwMDM3YmY1ODk2MTM1 MmJmMTljODNmOTFiMDliMzVlYjg0OTU2MjVlZWMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1 NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIs InNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNk MGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMiOiI4OWNkNmFlMjI0N2Fk ZDNmMzQ3MWE2OTliYzEyMTEzYTlhZTJmNmI5MWE1MjIzYWJiZjE1YjY4YTEzNTM3ZGNkIiwic3Jj L2diMTgwMzBfMjAyMi5ycyI6IjNjMmUwNjQ5MmM1ZTAwZmNkMzk1MTVlNGFmNGM1NjBkOGNlZTVj MzFlN2E3ZTM4OGRiNjgyYmM5ZWUzM2VlMzIiLCJzcmMvaGFuZGxlcy5ycyI6ImIwOGNlZjFmNTc4 NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3YTA3NWU0NTkzZWFhOGM0MjA4ZTlmZTIiLCJz cmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2NGYwZmYyNzZhY2I2YTBi YzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6ImM0ZDlmYTFjNDMxMDVl MjMxMDEyMmYxYjkxOTcxMjUwMzJlNjA3ZmU2Zjc5YmMyMjc2OWIzNDBkZTc2ZTI0MzAiLCJzcmMv bWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1ZGY0MjEwOGMwZGY2NjFl NDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMiOiI5NDg1NzExMzdkM2IxNTFkZjhkYjRm YjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNhYjkzNDFkNmFkYWJlIiwic3JjL3JlcGxhY2Vt ZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4MzI2OTUwOTUyYWQ4YmM5 NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMucnMiOiI2OTUxYWU2N2UzNmIxYTEyZmEz YTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBmMTZkOWQ5Iiwic3JjL3NpbWRf ZnVuY3MucnMiOiIwNWM2ZTc3YWY3NGJmZTczY2QzOWE3NTIwNjdjMTE0MjVkNmI0NmU1ZGE0MTk5 MTBmNTRiZjc1YTVjMDJhOTg0Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoiM2FkODcxMTZmYjMzOTQz NGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3MDhmMTYxOTRlZDA4ZjZkNmNjZiIsInNyYy90 ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiJhNWFlMjkwNzg2NjEwYzdmYWNkYmIxZDA2YmU2ODE1ZThi YjgxZDY4ZGZhNzM4MGVkYzdkZGI2YjhjN2U0MTJlIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luX3Jl Zi50eHQiOiI1MjczM2Q5OTcwZmI4OTg3ZjAxNGZhMGVhYzI3OTIyNTAxMjNjZjU4M2IzNjNiZWIy Y2U3YjNjNTVlM2RjNTU1Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dC50eHQiOiI1NzQyMGNhNDFh NjY5Yzk0OTczOGM4NGNhYjYyMDAyMDk1OTU3MmQyZWU5N2I0ZTA1OTQwNWJmZTI2YTc5YjZkIiwi c3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0IjoiMDBlNWY2N2MyMjJkZDVjZDNiYjE3Mzky NzY5MTBiOGYwMDMyZjQ1NGNiYTdjZjdjM2VhYTI1NWE1NjQxODhkMCIsInNyYy90ZXN0X2RhdGEv ZXVjX2tyX2luLnR4dCI6IjIxNTM0ZWM4N2U4MmQ3ODVkMTI4Zjk4MDkwMmQxM2ZhYjZkOWRlYTE1 YzY5YTk5MWY0MDlkOWIwYWZkMWM4NTIiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbl9yZWYudHh0 IjoiYjMwMDllNmE5NDk2N2RmMWYxMTM1YzY2ZjAwNTYxMGJlYmFkNjY2NmQ2MzRhZWM3MmQyYWQ3 N2MzMjExYmRhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQiOiIyMDIwNWIwYjViZTRm NTc5MjcxMTkzYjViZmJjNTQ5YTYxYTlmZDUyMTdjMzNlZWNmYTYxNzg0YTNmZmUyZTlkIiwic3Jj L3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJiNWY1NjYyMzdmOGQ0ZWY0ZDAzYWQyNjEz NWNhOTdkZmQ3Mzk4NjA4YTgyMTY1YmQ0ODUzYjUxMzRhYjIyY2I1Iiwic3JjL3Rlc3RfZGF0YS9n YjE4MDMwX2luLnR4dCI6IjBkZDFmYmYwMzYwOTMwZGFhZmRjZTdlNjc2MTg1MjAwNWE4ZjkyZjc5 MTAxODBkZjE5YTA3MGI2YzNjNTlkZWUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW5fcmVmLnR4 dCI6ImYzZWFlYTExMTU4NTcwNTRjZjMwZjhiYTE4MjE5ZTcyMzc3ZjJhNGFmZDg0OGNjZjIyMzc3 MGQ3NWFhNDI1MWQiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCI6IjcxODRmZTk1OTI2 MDk1OTdkNTVjMjczMzYwNmI0YzRiMWExOGI3OWIyNDUzM2UxYTE2YTE0ZmY5MmU3ZDJiNTUiLCJz cmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQiOiIyM2JiODUwZGRjNjlhYWYxYmRmZWFi ZTA1YTEyZDkzZjYxNGU1NTYwZGFjODc5ZDVmMDI5MjllZTRhN2MwNmM1Iiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9pbi50eHQiOiI5OGZiODIzNTMwYTMwYTc2ZWIwYmE3YWI2YWM3OTY5NTll ODg2OWMxZWMxNDNmMDE4YTE5NjQ1ODFhZTgxM2FhIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9q cF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVh ZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4 dCI6ImJlZjhlYjQ4MDRlZDA4NDNiOWRmZmRkMWQxNjg3Mzg2MzVjYzc3ZjhkMDkyOWJlYjI1MzJi Njg2MzE4ZGRhZTYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0IjoiYjIy MWIzNmIyYmNlNDlkNDliNjIwZGM4YmE4MGQ3N2JhYzc0ZTg2NjBhODZhMTE2MjhlNzliNjdmMWQ5 ODk2NCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQiOiIzYzFhN2FhYWRhMDBkNmZmZjQx ZTYwYmQ3NTg5ZDdhZTk0YWZhZjU2Mjc1OWIxMTY5NThiMWQ4NDcxMWQxN2I2Iiwic3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiJkZjgyMTY2ZDJlMDFiYjQ0NjIxMWQ3ZTQ2ZjMzYjQ3 ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDExMjEwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X291dC50eHQiOiJhNjE4OGI2N2ViMDBiYTk4MGNiODMwNTYxODZjODliY2RkZGMxYjAyMTBhZjlh ZmE3OGVkMWM5YjdhMDk4OTUwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dF9yZWYudHh0Ijoi ZTc1YTk4NmZlNWU3OGU2NGJmOGZhZmQ3MzkyYWU5NmVlMGNiMGE0YjJlN2VmMmZlNzIyYjNjYWFj ZjNlMmY3MCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQiOiI5ZWRhNzY2MDAyNjQ2YTI3 MzEwNDU3YzY2MTgzMjQyOWJlZmY5MDg5ZDI3MDMzNTU4MTJjNGNhYzMwZDgwMGI1Iiwic3JjL3Rl c3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiJmY2Y3NGM1OGQyY2JlOWIzZjNkYjRmYTllZmYy NmUwOWY1ZTk2NDQwOTdjNzg2MTRjMDMxNzdlOTM4OTg4ZDAzIiwic3JjL3Rlc3RfZGF0YS9zaGlm dF9qaXNfaW4udHh0IjoiZTY1ZGY3NDZiZTkwMzU5ZTcwNDIyODY4NTIyYTdhYTNlOGVkMjBlMGQ0 YzBjZjk5OTVkOWRlMjQ4YmY5MzM4OCIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50 eHQiOiIxM2IxNWFlZDY0ZTllN2NiMzVlNmE3NDBiNjc0MTNmMGMyODVmZGE5NDRmNDgxNGQ0NWE3 NjE5ZWEzMzhmYjVlIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dCI6IjE5MmQwYTRh OGNlNWQwZjkwNGM1Y2IyODNkZmI5NzQ1NzdlZTY2N2NmMWU3MTk1NWE2ZGQ2YWVjZTJiMzU0ZWYi LCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6ImNiNmQ1MGIwYzExYmFkMWQx ZjFmY2MwMmQ3Nzk2NzJhOGI5YTI1MDljYmJhZmRjNjM5MmFjZWI0OWM4YjQyNjgiLCJzcmMvdGVz dF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNiOGQxNWZiNTYxM2E2MjVlM2VkYjJjNjFl NzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3JjL3Rlc3RpbmcucnMiOiJmNTllNjcxZTk1 YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVkOTkwYWFmYTE4OTRlIiwi c3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0MWI3NmI5MjlhNDgwMDdi OTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3YjdkODg3YjM0N2YxYWVm YTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUxYWE3ODM5Iiwic3JjL3Zh cmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlkZTg3MzFlYTljZGVkN2FjNjNlYTM1Y2Fh YmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9kZWZpbmVkLnJzIjoiOTQ1NmNhNDYxNjhl Zjg2Yzk4Mzk5YTI1MzZmNTc3ZWY3YmUzY2RkZTkwYzBjNTEzOTJkOGFjNDg1MTlkM2ZhZSJ9LCJw YWNrYWdlIjoiNzUwMzBmM2M0ZjQ1ZGFmZDc1ODZkZDY3ODA5NjVhOGM3ZThlMjg1YTVlY2I4Njcx M2U2M2E3OWM1YjI3NjZmMyJ9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt7ImZpbGVz Ijp7IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4OTRmZDM2NjRmMGVhYTg5 OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQiOiIxMTc4OWY0NWJiMTgw ODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4YTZhZGQwMTkwIiwiQ2Fy Z28udG9tbCI6ImJmZWMwNmJjNjI5MzJiNjI5ZmFhNTc4ZDVmZWZiYzRkYzhkZGJkNmM4MDdlNTQy ZjZhNjc2ZGMyODNlMmY3MTYiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUwMDE2Mzg2OGQ4ZGU1MmMw OWFkZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJMSUNFTlNFLUFQQUNIRSI6 ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3 YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgzOWIxYmRlYjJlNmQxNmJk ZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNFLVdIQVRXRyI6IjgzODEx ODM4OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3YzFkNzdjMThlOTg3ZDFh NTAiLCJSRUFETUUubWQiOiI5ODI2MTM3ZWQ0Mjk3YmUzYjIwMTliNzRhOGY2MTExYTc5NmZmNTA3 YmRlNDFkZjJmMjA3MTI1Mzk3MDRiOWU5IiwiY2kvbWlyaS5zaCI6IjQzY2I4ZDgyZjQ5ZTNiZmUy ZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2ZkYmVlMjUiLCJkb2MvQmln NS50eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRhMjM0OTUwMzc4YWNkZTFk ZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThiOTA3ZDAxMzdmNDBhOWFi OWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYxIiwiZG9jL0VVQy1LUi50 eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4NzgwNzcwMzhkMGNlYzNjNzIz N2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiI4MjI5ZTU5MDc2ZDhiZGRiMDE4NjVjZGNmNmFm ZGEzNTMzMjM4ZDdjMjNkOTdmOTg4MjBmOWUzYjJkMTM1MDVkIiwiZG9jL0lCTTg2Ni50eHQiOiJh NWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYwZWZjZDA0MDkzZTEzNmI1 MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4ZjBlMjg2OGQ3YjJjMjky ODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJkb2MvSVNPLTg4NTktMTAu dHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEwNjBkNjRlMjYyODgwYjk0 YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUxZGQ4OWNmOTNmNzcyOTE0 ODA5MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5M2ZhIiwiZG9jL0lTTy04 ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3NWNjNzE2OGM4MDA1MzA1 MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0IjoiMjRiMTA4NGFhYjUx MjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNmOTdjZjY2YzQ3YSIsImRv Yy9JU08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0NzZmNjQyNGFlNGE1Y2M3 MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5LTIudHh0IjoiMThjZWZm ODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4NTI3YzEyNWM3NWQ1NGFh ZCIsImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRiNTkyMjMzNjJmMjQ5OTlk YTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNPLTg4NTktNC50eHQiOiJk MjdmNjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJiYjNlNDIwZDU2ODBlODEy NjMyZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdhNzhhZDE1ZGE3Mjc1ZjZj YjFhMzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRvYy9JU08tODg1OS02LnR4 dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVlNDRmYmNmNzQ1MzUzYjkw NTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZhMWYyN2E0NDU5NThmMGE3 N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVlIiwiZG9jL0lTTy04ODU5 LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhkMTMyMzEyZjE1NjFjNjAx MDhmZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0IjoiNzJjZDZmM2FmYjdiNGE5 YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2ViYTg2YzhhZiIsImRvYy9L T0k4LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFmNjE1MTY0MDE1NmE5YTJh ZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNjNzY2MjRlZDFmMDI0MTgz ZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1MDU0ZiIsImRvYy9TaGlm dF9KSVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhhNzliZThhZDE0OGQ1NjNm MjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJlMmUyODBkOGFjYmFhNmQy YTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1YTFlZjhmIiwiZG9jL1VU Ri0xNkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1ZWViOGIwNzcwMzZjYzk2 YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3YmFlNzQyZTYxMzAxMGNl ZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0MjhmNTQ4YSIsImRvYy9nYjE4 MDMwLnR4dCI6IjY3YTAxNjY1Yzc1NTA1MzMwYjBmZTViOGQ4OGQ1ODczZDhjZTU1NWExNDVjNzdk Y2EwNGE0NjdmYTI2ODA3NDQiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3NDkxZTUzODY2NzExYjQ2 NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4N2MwMjMiLCJkb2MvcmVw bGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRiZDAyZDEzNjA3ZTMzNGE5 NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAudHh0IjoiNjEyOTZiYjZh MjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcxMGQyZjEyNWUyOGQzOSIs ImRvYy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4ZmYwMmRiMmM3ZDU3OGRi N2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5kb3dzLTEyNTIudHh0Ijoi OTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJlNDc1YjE5MDI4ZDBhNmQz OGUxODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4OGU5OTA3MWE1YzdiM2Q1 NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIsImRvYy93aW5kb3dzLTEy NTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1MzI5MmEzOTQyM2RmMTY4 M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0IjoiNGU1ODUyNDk0NzMwMDU0 ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5ZTkwNDkzZCIsImRvYy93 aW5kb3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2ZThmNjBkOWNkOTU5ODY5 NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEyNTcudHh0IjoiYzI4YTBj OWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2YWJmOWZkOWU5MDE4ZDUy MyIsImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3OWFhY2JmMTdjOTM3OTMz NDJkYmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93aW5kb3dzLTg3NC50eHQi OiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0NzVkYjc3MWNlMmZjMTZk MzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUxNTRkOGE4ODhjYTNkNDg0 YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4YmQiLCJkb2MveC11c2Vy LWRlZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQyNTEwNzI5OTliMDRhNmNm N2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkiOiI2ZjM0 YTg0NTc4NWY1MzQyNWFjY2YzMDc1OWVkYzU2Njg3M2ZjYjBjMjE4ODY0OGUwN2IwOWM4OThmMzlk ZGRiIiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNiYjgxYjcwZmI1Mjc4MDQ3 MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5ycyI6IjU4OGUzOGIwMWU2 NjZkNWU3NDYyNjE3ZWE3ZTkwYTEwOGQ2MDhkZWM5ZTAxNmYzZDI3M2FjMDc0NGFmMmUwNWQiLCJz cmMvYmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYxMzlhN2NhMWQ1YjI2NGZl ZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6ImI5M2YzNDAyNWZlNWM2YTg1YjRi OWYwMDM3YmY1ODk2MTM1MmJmMTljODNmOTFiMDliMzVlYjg0OTU2MjVlZWMiLCJzcmMvZXVjX2pw LnJzIjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZhMDlmMThlMzE1ZWQzZTli ZGExMjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJkOTM3ODcwMGVlY2ZhYzU4 ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwic3JjL2diMTgwMzAucnMi OiI4OWNkNmFlMjI0N2FkZDNmMzQ3MWE2OTliYzEyMTEzYTlhZTJmNmI5MWE1MjIzYWJiZjE1YjY4 YTEzNTM3ZGNkIiwic3JjL2diMTgwMzBfMjAyMi5ycyI6IjNjMmUwNjQ5MmM1ZTAwZmNkMzk1MTVl NGFmNGM1NjBkOGNlZTVjMzFlN2E3ZTM4OGRiNjgyYmM5ZWUzM2VlMzIiLCJzcmMvaGFuZGxlcy5y cyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3YTA3NWU0NTkzZWFh OGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRiMjM2 NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3JjL2xpYi5ycyI6 ImM0ZDlmYTFjNDMxMDVlMjMxMDEyMmYxYjkxOTcxMjUwMzJlNjA3ZmU2Zjc5YmMyMjc2OWIzNDBk ZTc2ZTI0MzAiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTkyMTE1 ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMiOiI5NDg1NzEx MzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNhYjkzNDFkNmFkYWJl Iiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNlYzI4 MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMucnMiOiI2OTUx YWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBmMTZk OWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwNWM2ZTc3YWY3NGJmZTczY2QzOWE3NTIwNjdjMTE0 MjVkNmI0NmU1ZGE0MTk5MTBmNTRiZjc1YTVjMDJhOTg0Iiwic3JjL3NpbmdsZV9ieXRlLnJzIjoi M2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3MDhmMTYxOTRlZDA4 ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiJhNWFlMjkwNzg2NjEwYzdmYWNk YmIxZDA2YmU2ODE1ZThiYjgxZDY4ZGZhNzM4MGVkYzdkZGI2YjhjN2U0MTJlIiwic3JjL3Rlc3Rf ZGF0YS9iaWc1X2luX3JlZi50eHQiOiI1MjczM2Q5OTcwZmI4OTg3ZjAxNGZhMGVhYzI3OTIyNTAx MjNjZjU4M2IzNjNiZWIyY2U3YjNjNTVlM2RjNTU1Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dC50 eHQiOiI1NzQyMGNhNDFhNjY5Yzk0OTczOGM4NGNhYjYyMDAyMDk1OTU3MmQyZWU5N2I0ZTA1OTQw NWJmZTI2YTc5YjZkIiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0IjoiMDBlNWY2N2My MjJkZDVjZDNiYjE3MzkyNzY5MTBiOGYwMDMyZjQ1NGNiYTdjZjdjM2VhYTI1NWE1NjQxODhkMCIs InNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6IjIxNTM0ZWM4N2U4MmQ3ODVkMTI4Zjk4MDkw MmQxM2ZhYjZkOWRlYTE1YzY5YTk5MWY0MDlkOWIwYWZkMWM4NTIiLCJzcmMvdGVzdF9kYXRhL2V1 Y19rcl9pbl9yZWYudHh0IjoiYjMwMDllNmE5NDk2N2RmMWYxMTM1YzY2ZjAwNTYxMGJlYmFkNjY2 NmQ2MzRhZWM3MmQyYWQ3N2MzMjExYmRhMyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQi OiIyMDIwNWIwYjViZTRmNTc5MjcxMTkzYjViZmJjNTQ5YTYxYTlmZDUyMTdjMzNlZWNmYTYxNzg0 YTNmZmUyZTlkIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJiNWY1NjYyMzdm OGQ0ZWY0ZDAzYWQyNjEzNWNhOTdkZmQ3Mzk4NjA4YTgyMTY1YmQ0ODUzYjUxMzRhYjIyY2I1Iiwi c3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6IjBkZDFmYmYwMzYwOTMwZGFhZmRjZTdlNjc2 MTg1MjAwNWE4ZjkyZjc5MTAxODBkZjE5YTA3MGI2YzNjNTlkZWUiLCJzcmMvdGVzdF9kYXRhL2di MTgwMzBfaW5fcmVmLnR4dCI6ImYzZWFlYTExMTU4NTcwNTRjZjMwZjhiYTE4MjE5ZTcyMzc3ZjJh NGFmZDg0OGNjZjIyMzc3MGQ3NWFhNDI1MWQiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4 dCI6IjcxODRmZTk1OTI2MDk1OTdkNTVjMjczMzYwNmI0YzRiMWExOGI3OWIyNDUzM2UxYTE2YTE0 ZmY5MmU3ZDJiNTUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQiOiIyM2JiODUw ZGRjNjlhYWYxYmRmZWFiZTA1YTEyZDkzZjYxNGU1NTYwZGFjODc5ZDVmMDI5MjllZTRhN2MwNmM1 Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQiOiI5OGZiODIzNTMwYTMwYTc2ZWIw YmE3YWI2YWM3OTY5NTllODg2OWMxZWMxNDNmMDE4YTE5NjQ1ODFhZTgxM2FhIiwic3JjL3Rlc3Rf ZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYz M2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNyYy90ZXN0X2RhdGEvaXNv XzIwMjJfanBfb3V0LnR4dCI6ImJlZjhlYjQ4MDRlZDA4NDNiOWRmZmRkMWQxNjg3Mzg2MzVjYzc3 ZjhkMDkyOWJlYjI1MzJiNjg2MzE4ZGRhZTYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291 dF9yZWYudHh0IjoiYjIyMWIzNmIyYmNlNDlkNDliNjIwZGM4YmE4MGQ3N2JhYzc0ZTg2NjBhODZh MTE2MjhlNzliNjdmMWQ5ODk2NCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQiOiIzYzFh N2FhYWRhMDBkNmZmZjQxZTYwYmQ3NTg5ZDdhZTk0YWZhZjU2Mjc1OWIxMTY5NThiMWQ4NDcxMWQx N2I2Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiJkZjgyMTY2ZDJlMDFiYjQ0 NjIxMWQ3ZTQ2ZjMzYjQ3ZDkzYWMxYmFmZWFlMmVkODgwZWU5M2M0MDk2ZDExMjEwIiwic3JjL3Rl c3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiJhNjE4OGI2N2ViMDBiYTk4MGNiODMwNTYxODZjODli Y2RkZGMxYjAyMTBhZjlhZmE3OGVkMWM5YjdhMDk4OTUwIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X291dF9yZWYudHh0IjoiZTc1YTk4NmZlNWU3OGU2NGJmOGZhZmQ3MzkyYWU5NmVlMGNiMGE0YjJl N2VmMmZlNzIyYjNjYWFjZjNlMmY3MCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQiOiI5 ZWRhNzY2MDAyNjQ2YTI3MzEwNDU3YzY2MTgzMjQyOWJlZmY5MDg5ZDI3MDMzNTU4MTJjNGNhYzMw ZDgwMGI1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiJmY2Y3NGM1OGQyY2Jl OWIzZjNkYjRmYTllZmYyNmUwOWY1ZTk2NDQwOTdjNzg2MTRjMDMxNzdlOTM4OTg4ZDAzIiwic3Jj L3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiZTY1ZGY3NDZiZTkwMzU5ZTcwNDIyODY4NTIy YTdhYTNlOGVkMjBlMGQ0YzBjZjk5OTVkOWRlMjQ4YmY5MzM4OCIsInNyYy90ZXN0X2RhdGEvc2hp ZnRfamlzX2luX3JlZi50eHQiOiIxM2IxNWFlZDY0ZTllN2NiMzVlNmE3NDBiNjc0MTNmMGMyODVm ZGE5NDRmNDgxNGQ0NWE3NjE5ZWEzMzhmYjVlIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0 LnR4dCI6IjE5MmQwYTRhOGNlNWQwZjkwNGM1Y2IyODNkZmI5NzQ1NzdlZTY2N2NmMWU3MTk1NWE2 ZGQ2YWVjZTJiMzU0ZWYiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6ImNi NmQ1MGIwYzExYmFkMWQxZjFmY2MwMmQ3Nzk2NzJhOGI5YTI1MDljYmJhZmRjNjM5MmFjZWI0OWM4 YjQyNjgiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNiOGQxNWZiNTYx M2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3JjL3Rlc3Rpbmcu cnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2MDVk OTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3ZTE0 MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRmXzgucnMiOiI3 YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3ODUx YWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlkZTg3MzFlYTlj ZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9kZWZpbmVkLnJz IjoiZDczMzY2MGM3Nzc1YWZhODAwN2NmYzgwYzA5MDU3ZDg3NWQ2NjEzYWFmOThjN2RjOTQyZTQ3 ZmI5MzMwNmZlYiJ9LCJwYWNrYWdlIjpudWxsfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvQ2FyZ28udG9tbAorQEAgLTEwLDIyICsxMCwxNiBAQAorICMgU2VlIENhcmdvLnRv bWwub3JpZyBmb3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorIAorIFtwYWNrYWdlXQorIGVkaXRp b24gPSAiMjAxOCIKKyBydXN0LXZlcnNpb24gPSAiMS4zNiIKKyBuYW1lID0gImVuY29kaW5nX3Jz IgorIHZlcnNpb24gPSAiMC44LjM1IgorIGF1dGhvcnMgPSBbIkhlbnJpIFNpdm9uZW4gPGhzaXZv bmVuQGhzaXZvbmVuLmZpPiJdCistYnVpbGQgPSBmYWxzZQorLWF1dG9saWIgPSBmYWxzZQorLWF1 dG9iaW5zID0gZmFsc2UKKy1hdXRvZXhhbXBsZXMgPSBmYWxzZQorLWF1dG90ZXN0cyA9IGZhbHNl CistYXV0b2JlbmNoZXMgPSBmYWxzZQorIGRlc2NyaXB0aW9uID0gIkEgR2Vja28tb3JpZW50ZWQg aW1wbGVtZW50YXRpb24gb2YgdGhlIEVuY29kaW5nIFN0YW5kYXJkIgorIGhvbWVwYWdlID0gImh0 dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2Rv Y3MucnMvZW5jb2RpbmdfcnMvIgorIHJlYWRtZSA9ICJSRUFETUUubWQiCisga2V5d29yZHMgPSBb CisgICAgICJlbmNvZGluZyIsCisgICAgICJ3ZWIiLAorICAgICAidW5pY29kZSIsCitAQCAtMzUs MTYgKzI5LDM5IEBAIGNhdGVnb3JpZXMgPSBbCisgICAgICJ0ZXh0LXByb2Nlc3NpbmciLAorICAg ICAiZW5jb2RpbmciLAorICAgICAid2ViLXByb2dyYW1taW5nIiwKKyAgICAgImludGVybmF0aW9u YWxpemF0aW9uIiwKKyBdCisgbGljZW5zZSA9ICIoQXBhY2hlLTIuMCBPUiBNSVQpIEFORCBCU0Qt My1DbGF1c2UiCisgcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5j b2RpbmdfcnMiCisgCisrW3Byb2ZpbGUucmVsZWFzZV0KKytsdG8gPSB0cnVlCisrCisrW2RlcGVu ZGVuY2llc10KKytjZmctaWYgPSAiMS4wIgorKworK1tkZXBlbmRlbmNpZXMuYW55X2FsbF93b3Jr YXJvdW5kXQorK3ZlcnNpb24gPSAiMC4xLjAiCisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2RlcGVu ZGVuY2llcy5ydXN0dmVyc2lvbl0KKyt2ZXJzaW9uID0gIjEuMC4xOSIKKytvcHRpb25hbCA9IHRy dWUKKysKKytbZGVwZW5kZW5jaWVzLnNlcmRlXQorK3ZlcnNpb24gPSAiMS4wIgorK29wdGlvbmFs ID0gdHJ1ZQorKworK1tkZXYtZGVwZW5kZW5jaWVzXQorK2JpbmNvZGUgPSAiMS4wIgorK3NlcmRl X2Rlcml2ZSA9ICIxLjAiCisrc2VyZGVfanNvbiA9ICIxLjAiCisrCisgW2ZlYXR1cmVzXQorIGFs bG9jID0gW10KKyBkZWZhdWx0ID0gWyJhbGxvYyJdCisgZmFzdC1iaWc1LWhhbnppLWVuY29kZSA9 IFtdCisgZmFzdC1nYi1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtaGFuZ3VsLWVuY29kZSA9IFtd CisgZmFzdC1oYW5qYS1lbmNvZGUgPSBbXQorIGZhc3Qta2FuamktZW5jb2RlID0gW10KK0BAIC01 NywzNSArNzQsOCBAQCBmYXN0LWxlZ2FjeS1lbmNvZGUgPSBbCisgXQorIGxlc3Mtc2xvdy1iaWc1 LWhhbnppLWVuY29kZSA9IFtdCisgbGVzcy1zbG93LWdiLWhhbnppLWVuY29kZSA9IFtdCisgbGVz cy1zbG93LWthbmppLWVuY29kZSA9IFtdCisgc2ltZC1hY2NlbCA9IFsKKyAgICAgImFueV9hbGxf d29ya2Fyb3VuZCIsCisgICAgICJydXN0dmVyc2lvbiIsCisgXQorLQorLVtsaWJdCistbmFtZSA9 ICJlbmNvZGluZ19ycyIKKy1wYXRoID0gInNyYy9saWIucnMiCistCistW2RlcGVuZGVuY2llc10K Ky1jZmctaWYgPSAiMS4wIgorLQorLVtkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5kXQor LXZlcnNpb24gPSAiMC4xLjAiCistb3B0aW9uYWwgPSB0cnVlCistCistW2RlcGVuZGVuY2llcy5y dXN0dmVyc2lvbl0KKy12ZXJzaW9uID0gIjEuMC4xOSIKKy1vcHRpb25hbCA9IHRydWUKKy0KKy1b ZGVwZW5kZW5jaWVzLnNlcmRlXQorLXZlcnNpb24gPSAiMS4wIgorLW9wdGlvbmFsID0gdHJ1ZQor LQorLVtkZXYtZGVwZW5kZW5jaWVzXQorLWJpbmNvZGUgPSAiMS4wIgorLXNlcmRlX2Rlcml2ZSA9 ICIxLjAiCistc2VyZGVfanNvbiA9ICIxLjAiCistCistW3Byb2ZpbGUucmVsZWFzZV0KKy1sdG8g PSB0cnVlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi8uY2FyZ28t Y2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vLmNhcmdvLWNoZWNr c3VtLmpzb24KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMCwwICsx LDEgQEAKKyt7ImZpbGVzIjp7IkNhcmdvLnRvbWwiOiJmYzIxMWNjZDY0ZDNhZDU5YTA3MTVjMWE2 ZjhjYmZiYmQ4MzA0NWY2NDQxOTQzOTQ1OTVkMTY2NDZlZWU5OTQ3IiwiTElDRU5TRS1BUEFDSEUi OiI2MmM3YTFlMzVmNTY0MDY4OTZkN2FhN2NhNTJkMGNjMGQyNzJhYzAyMmI1ZDI3OTZlN2Q2OTA1 ZGI4YTM2MzZhIiwiTElDRU5TRS1NSVQiOiIyM2YxOGUwM2RjNDlkZjkxNjIyZmUyYTc2MTc2NDk3 NDA0ZTQ2Y2VkOGE3MTVkOWQyYjY3YTc0NDY1NzFjY2EzIiwiUkVBRE1FLm1kIjoiOTEzZDA0ZDE1 ODg0MzU2Njk5MTg0NWNjOWQ3NmUyNDYxMGJmMzFmNWE5OWU1NTExNTAyM2NjYzBiMTZmZjFlNyIs ImJ1aWxkL2J1aWxkLnJzIjoiNDQzOGIxMDhkNWIxOThjYTQzZWYwYTc4NTA5ZGE4OTg2MTAyMDY3 NGFiZDA1MTY2YWRkZDFjMzA1OGFmYmZhNiIsImJ1aWxkL3J1c3RjLnJzIjoiZmFmNjcwMzNlYzgz MWQ5Njg0MDZmNWE2NmM0NzVkZjMzN2Y3MjIxZTlkMWFiMzQ3N2ZlZDNhNjI5ZTFlYzViYyIsInNy Yy9hdHRyLnJzIjoiOTMwMWNkNGFmZjVhOTY0OGMwNTdkNWQ4ZGU5ZWI2NjkyMWYwYzNhNzE1YzUx YWRhNDQ1OTU3NmJkNDljOGIxOSIsInNyYy9ib3VuZC5ycyI6IjEzYzM1MzAyYmQ1ZDk2ZWJlNTQ1 MDk0NzdlNzM2YThiNzIwZTE4Y2IyNDc0ZTU4MDU0ODBjNDUxN2EyMGU1YjAiLCJzcmMvY29uc3Rm bi5ycyI6IjYxM2I4ZjUzYjIxY2MwNmI0ZjYxOWZjZTkwMDA5OTNkM2U3ODczYjY1MDcwMWNhMDFj ZWYxZTUzYmVkNWI0MGEiLCJzcmMvZGF0ZS5ycyI6ImY3OWM1NWRkY2QxOGUxMjQ2MTBjZDVjOTg2 N2IxZWJhYWUxZmVlYjZkZmMzN2UyYjdmOTRlMzEzN2FhODgzYjYiLCJzcmMvZXJyb3IucnMiOiJj YjM3MTAyZjAzZWJiYWNhMzEzZDgwZjk3MTRmZTA4ZGZlZjkyZmU5NTY3ODllZTg3ZDkzZWI2MTIx NzA1ZjRmIiwic3JjL2V4cGFuZC5ycyI6IjljOTM1MjVhOGM0YTBlNjIwMzY5ZWQyNTZhMWVlNDBh MGI0OGY5ODRlMGZhZDhkYjhjMGUyOTk4YmM4ZWNiMjMiLCJzcmMvZXhwci5ycyI6IjhlOGNhNzZm NGY1ODM4NDM2ZDlkNzI3M2Y0OTljNjk4YmI0MWY2YzE1YmMwN2QzMmVjNWMxY2I4YmQzZGQ3MzEi LCJzcmMvaXRlci5ycyI6IjhkNGI4MTdiOWFiYzRlODE3MTA1YjY3M2UxNWYyOWVmOWJiODI4NGEw MTBjZTAxYWMyZDgzMzg3ZmUxMzY5NDciLCJzcmMvbGliLnJzIjoiNzdjNzMyNDkzNTUwYjdlN2E0 NmFlMmQyNWU4OWMzNjNhODUxYmEyNWE5ZTlhODlmMWFhZDY3YmFkNGFmYmIwNCIsInNyYy9yZWxl YXNlLnJzIjoiZTA3NTVlZDE4ODliNGM2ZjBmYWFhNWFkZWU1ZjYwZjI3Zjk5MjZiZWNmZjg3NWRi YjQxYjZhNjVhZTc1NjU5MSIsInNyYy90aW1lLnJzIjoiNmZjZjNhMWVkMjM4YTk3YmQ3YTM5YjE4 N2M4OGJkY2VmMDI0Njg3ODQyNGUwNmFhN2ViNzc5Zjg0MTUyOWIzNCIsInNyYy90b2tlbi5ycyI6 IjgyNGNlNzY1ZjY5MmRiNzNhZmEwMmQzZWJiMDI4MWM3NTA3NDgwMzVlZmM5OGZhNTQ3YmUyOWQz MDcyNjY1Y2UiLCJzcmMvdmVyc2lvbi5ycyI6ImFmZGIwNDhiYmE5NWJiYjg4NTk0NWViYTU1Mjdi NmJmMGVjYTAxMDU2NDJiZmMzMDRjMmY4MmE4YjdkNTU2ZGYiLCJ0ZXN0cy9jb21waWxldGVzdC5y cyI6IjRlMzgxYWE4Y2EzZWFiYjdhYzE0ZDFlMGMzNzAwYjMyMjNlNDc2NDA1NDdhNjk4OGNmYTEz YWQ2ODI1NWY2MGYiLCJ0ZXN0cy90ZXN0X2NvbnN0LnJzIjoiY2IxZTAxNDc5YmQ1NzliMWI3NzMx MmE5MDYzYWI0NTZmZTQ0YWJhZDIyNDNlODE4NzNjMmJmN2VmNWYyMDVlYiIsInRlc3RzL3Rlc3Rf ZXZhbC5ycyI6IjZmMGVlM2Y0OWM5YTBkMGMzNzRhNGQwZTlhOWRjZTc1M2NkOWZjMmNhNzcyNWUw MDBhNDM1ZGJkNWY0YTljZTMiLCJ0ZXN0cy90ZXN0X3BhcnNlLnJzIjoiZjQ1MGUwYTdmMjM5MTU2 MTQ4NGFiYjFiODUxMTI0YjU3NDc3NTViNzZmOTQ1ZTEyMTM3MGFkYzcxMGYyMDk5ZCIsInRlc3Rz L3VpL2JhZC1ib3VuZC5ycyI6IjI1YmRlMjc4ZmNhYWJmNjI4Njg0MTcxNDhhNWU1ZjIwMDZiZjU4 OWQ3ZWJkN2JmNjAwNGZiOGQ3OGU0NzU5NGYiLCJ0ZXN0cy91aS9iYWQtYm91bmQuc3RkZXJyIjoi MjNiNGNhMGFhMWE3ZGY3NWI1ZmIzNGU1NTNhMzFmYWE2YTNjY2MwMjllY2Q3ZDY4YjA1Njg5N2My YzljZmY5ZiIsInRlc3RzL3VpL2JhZC1kYXRlLnJzIjoiNmUyMzcxNGRhZThiNjM0NmZlZmU1MGRh Y2Q0YWJiYTMyNjUyNDhiYmFkZmRkNjBjNzM5MTM4YWE4YTAwMzdiYSIsInRlc3RzL3VpL2JhZC1k YXRlLnN0ZGVyciI6ImY0YWVjNzJjYTkxYmE3NDNjYWRjZGFmNWE4NzRjNzAxOTQ5YWRkNWVmY2U0 OTBhYWYyYmYxMjQ4ZWY1Nzg3NjgiLCJ0ZXN0cy91aS9iYWQtbm90LnJzIjoiZjAwM2RmOGJkMjQ1 ZTlkZDhlZGMzYTZkOTQwNzhlZTUxNjJmYWM3YTk4ZGI4ODEyNzFmMGY1YjZkYjk4ZDQ1ZCIsInRl c3RzL3VpL2JhZC1ub3Quc3RkZXJyIjoiMWFlYmIzMTIxZDA2N2Q0MzJhMzJkZDk1ZmYzODBjZWFj MTVhMDUzMWMzNGY5MGNlZTk1MDU4MjU1ODg0MWM1NiIsInRlc3RzL3VpL2JhZC12ZXJzaW9uLnJz IjoiZjRlYTJjZDAzOGU2YzYzZGViOWMyZTNjZWZmY2U5M2RiZjE3OWQ5Y2UxOGMxNmQ4OGYzYjZj ZDcxMzhhOGM4ZSIsInRlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVyciI6ImU5NDIxNTg2ZDU5Y2I5 MTM1MTIzYmQ5NzcxMDY1NTAxNGY5NWNjNWY1NWIwZjk2MTFlMWQyZThjZTllMjlhNWQiLCJ0ZXN0 cy91aS9jb25zdC1ub3QtZm4ucnMiOiIxMGJiZTM4ZjBkODkzOTFmZmYwNjk4NzU2ZTRjZmQ0ZTcy YTQxMDkwMzYwMzkzYTBjOTUxYjY3ZGYxNGQxYzM1IiwidGVzdHMvdWkvY29uc3Qtbm90LWZuLnN0 ZGVyciI6IjExODA2NjJmZDNiOGM0NDI2ZDQ2OTIzOTE4YTJlNThkZDliNjI1OWYxYTM2NDQ2OWFl MTNkNWZjM2Q2OWNlNmMifSwicGFja2FnZSI6ImNmNTQ3MTVhNTczYjk5YWM4MGRmMGJjMjA2ZGEw MjJiY2Q0NDJjOTc0OTUyYzdiOTcyMDA2OTM3MDg1MmUyMWYifQorXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9DYXJn by50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9DYXJnby50b21sCituZXcgZmls ZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi9DYXJnby50b21sCitAQCAtMCwwICsxLDY5IEBACisrIyBUSElTIEZJTEUgSVMgQVVU T01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FSR08KKysjCisrIyBXaGVuIHVwbG9hZGluZyBjcmF0 ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdpbGwgYXV0b21hdGljYWxseQorKyMgIm5vcm1hbGl6 ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4aW1hbCBjb21wYXRpYmlsaXR5CisrIyB3aXRoIGFs bCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxzbyByZXdyaXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMK KysjIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8pIGRlcGVuZGVuY2llcy4KKysjCisrIyBJ ZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENh cmdvLnRvbWwKKysjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1v cmUgcmVhc29uYWJsZSkuCisrIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwg Y29udGVudHMuCisrCisrW3BhY2thZ2VdCisrZWRpdGlvbiA9ICIyMDE4IgorK3J1c3QtdmVyc2lv biA9ICIxLjMxIgorK25hbWUgPSAicnVzdHZlcnNpb24iCisrdmVyc2lvbiA9ICIxLjAuMjMiCisr YXV0aG9ycyA9IFsiRGF2aWQgVG9sbmF5IDxkdG9sbmF5QGdtYWlsLmNvbT4iXQorK2J1aWxkID0g ImJ1aWxkL2J1aWxkLnJzIgorK2F1dG9saWIgPSBmYWxzZQorK2F1dG9iaW5zID0gZmFsc2UKKyth dXRvZXhhbXBsZXMgPSBmYWxzZQorK2F1dG90ZXN0cyA9IGZhbHNlCisrYXV0b2JlbmNoZXMgPSBm YWxzZQorK2Rlc2NyaXB0aW9uID0gIkNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGFjY29yZGluZyB0 byBydXN0YyBjb21waWxlciB2ZXJzaW9uIgorK2RvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2Nz LnJzL3J1c3R2ZXJzaW9uIgorK3JlYWRtZSA9ICJSRUFETUUubWQiCisrY2F0ZWdvcmllcyA9IFsK KysgICAgImRldmVsb3BtZW50LXRvb2xzOjpidWlsZC11dGlscyIsCisrICAgICJuby1zdGQiLAor KyAgICAibm8tc3RkOjpuby1hbGxvYyIsCisrXQorK2xpY2Vuc2UgPSAiTUlUIE9SIEFwYWNoZS0y LjAiCisrcmVwb3NpdG9yeSA9ICJodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9ydXN0dmVyc2lv biIKKysKKytbcGFja2FnZS5tZXRhZGF0YS5kb2NzLnJzXQorK3RhcmdldHMgPSBbIng4Nl82NC11 bmtub3duLWxpbnV4LWdudSJdCisrcnVzdGRvYy1hcmdzID0gWworKyAgICAiLS1nZW5lcmF0ZS1s aW5rLXRvLWRlZmluaXRpb24iLAorKyAgICAiLS1nZW5lcmF0ZS1tYWNyby1leHBhbnNpb24iLAor KyAgICAiLS1leHRlcm4taHRtbC1yb290LXVybD1jb3JlPWh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5v cmciLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290LXVybD1hbGxvYz1odHRwczovL2RvYy5ydXN0 LWxhbmcub3JnIiwKKysgICAgIi0tZXh0ZXJuLWh0bWwtcm9vdC11cmw9c3RkPWh0dHBzOi8vZG9j LnJ1c3QtbGFuZy5vcmciLAorKyAgICAiLS1leHRlcm4taHRtbC1yb290LXVybD1wcm9jX21hY3Jv PWh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmciLAorK10KKysKKytbbGliXQorK25hbWUgPSAicnVz dHZlcnNpb24iCisrcGF0aCA9ICJzcmMvbGliLnJzIgorK3Byb2MtbWFjcm8gPSB0cnVlCisrCisr W1t0ZXN0XV0KKytuYW1lID0gImNvbXBpbGV0ZXN0IgorK3BhdGggPSAidGVzdHMvY29tcGlsZXRl c3QucnMiCisrCisrW1t0ZXN0XV0KKytuYW1lID0gInRlc3RfY29uc3QiCisrcGF0aCA9ICJ0ZXN0 cy90ZXN0X2NvbnN0LnJzIgorKworK1tbdGVzdF1dCisrbmFtZSA9ICJ0ZXN0X2V2YWwiCisrcGF0 aCA9ICJ0ZXN0cy90ZXN0X2V2YWwucnMiCisrCisrW1t0ZXN0XV0KKytuYW1lID0gInRlc3RfcGFy c2UiCisrcGF0aCA9ICJ0ZXN0cy90ZXN0X3BhcnNlLnJzIgorKworK1tkZXYtZGVwZW5kZW5jaWVz LnRyeWJ1aWxkXQorK3ZlcnNpb24gPSAiMS4wLjQ5IgorK2ZlYXR1cmVzID0gWyJkaWZmIl0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VOU0UtQVBBQ0hFIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLUFQQUNIRQorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vTElDRU5TRS1BUEFDSEUKK0BAIC0wLDAgKzEsMTc2IEBACisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKysgICAgICAgICAgICAgICAgICAgICAgICBWZXJz aW9uIDIuMCwgSmFudWFyeSAyMDA0CisrICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5h cGFjaGUub3JnL2xpY2Vuc2VzLworKworK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJF UFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorKworKzEuIERlZmluaXRpb25zLgorKworKyAg ICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCBy ZXByb2R1Y3Rpb24sCisrICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25z IDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisrCisrICAgIkxpY2Vuc29yIiBzaGFsbCBt ZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKysgICB0aGUg Y29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisrCisrICAgIkxl Z2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5k IGFsbAorKyAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnks IG9yIGFyZSB1bmRlciBjb21tb24KKysgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0 aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorKyAgICJjb250cm9sIiBtZWFucyAoaSkg dGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorKyAgIGRpcmVjdGlv biBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisr ICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9y IG1vcmUgb2YgdGhlCisrICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFs IG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKysKKysgICAiWW91IiAob3IgIllvdXIiKSBzaGFs bCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAgZXhlcmNpc2luZyBwZXJt aXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKysKKysgICAiU291cmNlIiBmb3JtIHNo YWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKysg ICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1 bWVudGF0aW9uCisrICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKysKKysgICAi T2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNh bAorKyAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGlu Y2x1ZGluZyBidXQKKysgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2Vu ZXJhdGVkIGRvY3VtZW50YXRpb24sCisrICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlh IHR5cGVzLgorKworKyAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAs IHdoZXRoZXIgaW4gU291cmNlIG9yCisrICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVu ZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorKyAgIGNvcHlyaWdodCBub3RpY2Ug dGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworKyAgIChhbiBleGFt cGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisrCisrICAgIkRlcml2YXRp dmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVj dAorKyAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsg YW5kIGZvciB3aGljaCB0aGUKKysgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywg ZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisrICAgcmVwcmVzZW50LCBhcyBh IHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMK KysgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUg d29ya3MgdGhhdCByZW1haW4KKysgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9y IGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisrICAgdGhlIFdvcmsgYW5kIERl cml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKysKKysgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFu IGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworKyAgIHRoZSBvcmlnaW5hbCB2ZXJz aW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKysgICB0 byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlv bmFsbHkKKysgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29y ayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisrICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdh bCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisrICAgdGhlIGNvcHly aWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0 ZWQiCisrICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVu IGNvbW11bmljYXRpb24gc2VudAorKyAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50 YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisrICAgY29tbXVuaWNhdGlvbiBv biBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywK KysgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBv biBiZWhhbGYgb2YsIHRoZQorKyAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNz aW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorKyAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0 aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisrICAgZGVzaWdu YXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1 dGlvbi4iCisrCisrICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkg aW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKysgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRy aWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKysgICBzdWJzZXF1ZW50 bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKysKKysyLiBHcmFudCBvZiBDb3B5cmln aHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0 aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJw ZXR1YWwsCisrICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHkt ZnJlZSwgaXJyZXZvY2FibGUKKysgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHBy ZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKysgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNs eSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKysgICBXb3JrIGFuZCBz dWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorKworKzMuIEdy YW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRv IFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJn ZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRo aXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorKyAgIHVzZSwg b2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBX b3JrLAorKyAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50 IGNsYWltcyBsaWNlbnNhYmxlCisrICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNl c3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKysgICBDb250cmlidXRpb24ocykgYWxvbmUgb3Ig YnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisrICAgd2l0aCB0aGUgV29y ayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKysg ICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRp bmcgYQorKyAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVn aW5nIHRoYXQgdGhlIFdvcmsKKysgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0 aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorKyAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRl bnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKysgICBncmFudGVkIHRv IFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKysg ICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisrCisrNC4gUmVkaXN0 cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUK KysgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRo IG9yIHdpdGhvdXQKKysgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBm b3JtLCBwcm92aWRlZCB0aGF0IFlvdQorKyAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgorKworKyAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBX b3JrIG9yCisrICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsg YW5kCisrCisrICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJy eSBwcm9taW5lbnQgbm90aWNlcworKyAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhl IGZpbGVzOyBhbmQKKysKKysgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZv cm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKysgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwg YWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorKyAgICAgICBhdHRyaWJ1dGlv biBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorKyAgICAgICBleGNs dWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisr ICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKysKKysgICAoZCkgSWYgdGhlIFdvcmsg aW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKysgICAgICAgZGlz dHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUg bXVzdAorKyAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24g bm90aWNlcyBjb250YWluZWQKKysgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1 ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisrICAgICAgIHBlcnRhaW4gdG8gYW55IHBh cnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorKyAgICAgICBvZiB0 aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRl ZAorKyAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNv dXJjZSBmb3JtIG9yCisrICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdp dGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorKyAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdl bmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisrICAgICAgIHdoZXJldmVy IHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwor KyAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2Vz IG9ubHkgYW5kCisrICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRk IFlvdXIgb3duIGF0dHJpYnV0aW9uCisrICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUg V29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisrICAgICAgIG9yIGFzIGFuIGFk ZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorKyAgICAg ICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25z dHJ1ZWQKKysgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorKworKyAgIFlvdSBtYXkg YWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFu ZAorKyAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMg YW5kIGNvbmRpdGlvbnMKKysgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlv biBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisrICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUg V29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisrICAgcmVwcm9kdWN0aW9uLCBh bmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisrICAg dGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKysKKys1LiBTdWJtaXNzaW9u IG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2Us CisrICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVz aW9uIGluIHRoZSBXb3JrCisrICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRl ciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQg YW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKysgICBOb3R3aXRoc3RhbmRpbmcg dGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisrICAg dGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUg ZXhlY3V0ZWQKKysgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMu CisrCisrNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Np b24gdG8gdXNlIHRoZSB0cmFkZQorKyAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtz LCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKysgICBleGNlcHQgYXMgcmVxdWly ZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKysg ICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBO T1RJQ0UgZmlsZS4KKysKKys3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWly ZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKysgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5z b3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisrICAgQ29udHJpYnV0b3IgcHJvdmlkZXMg aXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisrICAgV0lUSE9VVCBXQVJS QU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisrICAg aW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9y IGNvbmRpdGlvbnMKKysgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklM SVRZLCBvciBGSVRORVNTIEZPUiBBCisrICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNv bGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisrICAgYXBwcm9wcmlhdGVuZXNz IG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisrICAg cmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIg dGhpcyBMaWNlbnNlLgorKworKzguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVu dCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorKyAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVk aW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorKyAgIHVubGVzcyByZXF1 aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5Cisr ICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29u dHJpYnV0b3IgYmUKKysgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55 IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisrICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVu dGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisrICAgcmVzdWx0IG9m IHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQor KyAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBv ZiBnb29kd2lsbCwKKysgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1 bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorKyAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBs b3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKysgICBoYXMgYmVlbiBhZHZpc2VkIG9m IHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisrCisrOS4gQWNjZXB0aW5nIFdhcnJh bnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworKyAgIHRo ZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2Zm ZXIsCisrICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2Fy cmFudHksIGluZGVtbml0eSwKKysgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5k L29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworKyAgIExpY2Vuc2UuIEhvd2V2ZXIsIGlu IGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisrICAgb24gWW91 ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhh bGYKKysgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0 byBpbmRlbW5pZnksCisrICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1s ZXNzIGZvciBhbnkgbGlhYmlsaXR5CisrICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRl ZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorKyAgIG9mIHlvdXIgYWNjZXB0 aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorKworK0VORCBP RiBURVJNUyBBTkQgQ09ORElUSU9OUworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VO U0UtTUlUCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9MSUNFTlNFLU1JVAorQEAgLTAsMCArMSwyMyBAQAorK1Bl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkKKytwZXJz b24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkCisrZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZQorK1NvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0CisrbGltaXRhdGlvbiB0 aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwKKytwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKKyt0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZQorK2lzIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCisrY29uZGl0aW9uczoKKysKKytUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQorK3NoYWxs IGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKKytvZiB0 aGUgU29mdHdhcmUuCisrCisrVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP VVQgV0FSUkFOVFkgT0YKKytBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVECisrVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBG SVRORVNTIEZPUiBBCisrUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElO IE5PIEVWRU5UCisrU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB QkxFIEZPUiBBTlkKKytDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OCisrT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS T00sIE9VVCBPRiBPUgorK0lOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUgorK0RFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL1JFQURNRS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vUkVBRE1FLm1kCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9SRUFETUUubWQKK0BAIC0wLDAgKzEs MTY3IEBACisrQ29tcGlsZXIgdmVyc2lvbiBjZmcKKys9PT09PT09PT09PT09PT09PT09PQorKwor K1s8aW1nIGFsdD0iZ2l0aHViIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZ2l0 aHViLWR0b2xuYXkvcnVzdHZlcnNpb24tOGRhMGNiP3N0eWxlPWZvci10aGUtYmFkZ2UmbGFiZWxD b2xvcj01NTU1NTUmbG9nbz1naXRodWIiIGhlaWdodD0iMjAiPl0oaHR0cHM6Ly9naXRodWIuY29t L2R0b2xuYXkvcnVzdHZlcnNpb24pCisrWzxpbWcgYWx0PSJjcmF0ZXMuaW8iIHNyYz0iaHR0cHM6 Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi9ydXN0dmVyc2lvbi5zdmc/c3R5bGU9Zm9yLXRoZS1i YWRnZSZjb2xvcj1mYzhkNjImbG9nbz1ydXN0IiBoZWlnaHQ9IjIwIj5dKGh0dHBzOi8vY3JhdGVz LmlvL2NyYXRlcy9ydXN0dmVyc2lvbikKKytbPGltZyBhbHQ9ImRvY3MucnMiIHNyYz0iaHR0cHM6 Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9kb2NzLnJzLXJ1c3R2ZXJzaW9uLTY2YzJhNT9zdHlsZT1m b3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289ZG9jcy5ycyIgaGVpZ2h0PSIyMCI+ XShodHRwczovL2RvY3MucnMvcnVzdHZlcnNpb24pCisrWzxpbWcgYWx0PSJidWlsZCBzdGF0dXMi IHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvYWN0aW9ucy93b3JrZmxvdy9zdGF0 dXMvZHRvbG5heS9ydXN0dmVyc2lvbi9jaS55bWw/YnJhbmNoPW1hc3RlciZzdHlsZT1mb3ItdGhl LWJhZGdlIiBoZWlnaHQ9IjIwIj5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3J1c3R2ZXJz aW9uL2FjdGlvbnM/cXVlcnk9YnJhbmNoJTNBbWFzdGVyKQorKworK1RoaXMgY3JhdGUgcHJvdmlk ZXMgbWFjcm9zIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhY2NvcmRpbmcgdG8gcnVzdGMK Kytjb21waWxlciB2ZXJzaW9uLCBhbmFsb2dvdXMgdG8gW2AjW2NmZyguLi4pXWBdW2NmZ10gYW5k CisrW2AjW2NmZ19hdHRyKC4uLildYF1bY2ZnX2F0dHJdLgorKworK1tjZmddOiBodHRwczovL2Rv Yy5ydXN0LWxhbmcub3JnL3JlZmVyZW5jZS9jb25kaXRpb25hbC1jb21waWxhdGlvbi5odG1sI3Ro ZS1jZmctYXR0cmlidXRlCisrW2NmZ19hdHRyXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9y ZWZlcmVuY2UvY29uZGl0aW9uYWwtY29tcGlsYXRpb24uaHRtbCN0aGUtY2ZnX2F0dHItYXR0cmli dXRlCisrCisrYGBgdG9tbAorK1tkZXBlbmRlbmNpZXNdCisrcnVzdHZlcnNpb24gPSAiMS4wIgor K2BgYAorKworKzxicj4KKysKKysjIyBTZWxlY3RvcnMKKysKKystIDxiPmAjW3J1c3R2ZXJzaW9u OjpzdGFibGVdYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gYW55IHN0YWJsZSBjb21waWxl ci4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpzdGFibGUoMS4zNCldYDwvYj4KKysgIOKAlDxi cj4KKysgIFRydWUgb24gZXhhY3RseSB0aGUgc3BlY2lmaWVkIHN0YWJsZSBjb21waWxlci4KKysK KystIDxiPmAjW3J1c3R2ZXJzaW9uOjpiZXRhXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9u IGFueSBiZXRhIGNvbXBpbGVyLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246Om5pZ2h0bHldYDwv Yj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gYW55IG5pZ2h0bHkgY29tcGlsZXIgb3IgZGV2IGJ1 aWxkLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246Om5pZ2h0bHkoMjAyNS0wMS0wMSldYDwvYj4K KysgIOKAlDxicj4KKysgIFRydWUgb24gZXhhY3RseSBvbmUgbmlnaHRseS4KKysKKystIDxiPmAj W3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjM0KV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiB0 aGF0IHN0YWJsZSByZWxlYXNlIGFuZCBhbnkgbGF0ZXIgY29tcGlsZXIsIGluY2x1ZGluZyBiZXRh IGFuZAorKyAgbmlnaHRseS4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpzaW5jZSgyMDI1LTAx LTAxKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBvbiB0aGF0IG5pZ2h0bHkgYW5kIGFsbCBu ZXdlciBvbmVzLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OmJlZm9yZShgPC9iPjxpPnZlcnNp b24gb3IgZGF0ZTwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgTmVnYXRpdmUgb2YgKiNb cnVzdHZlcnNpb246OnNpbmNlKC4uLildKi4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpub3Qo YDwvYj48aT5zZWxlY3RvcjwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgTmVnYXRpdmUg b2YgYW55IHNlbGVjdG9yOyBmb3IgZXhhbXBsZSAqI1tydXN0dmVyc2lvbjo6bm90KG5pZ2h0bHkp XSouCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6YW55KGA8L2I+PGk+c2VsZWN0b3JzLi4uPC9p PjxiPmApXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIGlmIGFueSBvZiB0aGUgY29tbWEtc2Vw YXJhdGVkIHNlbGVjdG9ycyBpcyB0cnVlOyBmb3IgZXhhbXBsZQorKyAgKiNbcnVzdHZlcnNpb246 OmFueShzdGFibGUsIGJldGEpXSouCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6YWxsKGA8L2I+ PGk+c2VsZWN0b3JzLi4uPC9pPjxiPmApXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIGlmIGFs bCBvZiB0aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBhcmUgdHJ1ZTsgZm9yIGV4YW1wbGUK KysgICojW3J1c3R2ZXJzaW9uOjphbGwoc2luY2UoMS4zMSksIGJlZm9yZSgxLjM0KSldKi4KKysK KystIDxiPmAjW3J1c3R2ZXJzaW9uOjphdHRyKGA8L2I+PGk+c2VsZWN0b3I8L2k+PGI+YCwgYDwv Yj48aT5hdHRyaWJ1dGU8L2k+PGI+YCldYDwvYj4KKysgIOKAlDxicj4KKysgIEZvciBjb25kaXRp b25hbCBpbmNsdXNpb24gb2YgYXR0cmlidXRlczsgYW5hbG9nb3VzIHRvIGBjZmdfYXR0cmAuCisr CisrLSA8Yj5gcnVzdHZlcnNpb246OmNmZyEoYDwvYj48aT5zZWxlY3RvcjwvaT48Yj5gKWA8L2I+ CisrICDigJQ8YnI+CisrICBBbiBleHByZXNzaW9uIGZvcm0gb2YgYW55IG9mIHRoZSBhYm92ZSBh dHRyaWJ1dGVzOyBmb3IgZXhhbXBsZQorKyAgKmlmIHJ1c3R2ZXJzaW9uOjpjZmchKGFueShzdGFi bGUsIGJldGEpKSB7IC4uLiB9Ki4KKysKKys8YnI+CisrCisrIyMgVXNlIGNhc2VzCisrCisrUHJv dmlkaW5nIGFkZGl0aW9uYWwgdHJhaXQgaW1wbHMgYXMgdHlwZXMgYXJlIHN0YWJpbGl6ZWQgaW4g dGhlIHN0YW5kYXJkIGxpYnJhcnkKKyt3aXRob3V0IGJyZWFraW5nIGNvbXBhdGliaWxpdHkgd2l0 aCBvbGRlciBjb21waWxlcnM7IGluIHRoaXMgY2FzZSBQaW5cPFBcPgorK3N0YWJpbGl6ZWQgaW4g W1J1c3QgMS4zM11bcGluXToKKysKKytbcGluXTogaHR0cHM6Ly9ibG9nLnJ1c3QtbGFuZy5vcmcv MjAxOS8wMi8yOC9SdXN0LTEuMzMuMC5odG1sI3Bpbm5pbmcKKysKKytgYGBydXN0CisrI1tydXN0 dmVyc2lvbjo6c2luY2UoMS4zMyldCisrdXNlIHN0ZDo6cGluOjpQaW47CisrCisrI1tydXN0dmVy c2lvbjo6c2luY2UoMS4zMyldCisraW1wbDxQOiBNeVRyYWl0PiBNeVRyYWl0IGZvciBQaW48UD4g eworKyAgICAvKiAuLi4gKi8KKyt9CisrYGBgCisrCisrU2ltaWxhciBidXQgZm9yIGxhbmd1YWdl IGZlYXR1cmVzOyB0aGUgYWJpbGl0eSB0byBjb250cm9sIGFsaWdubWVudCBncmVhdGVyIHRoYW4K KysxIG9mIHBhY2tlZCBzdHJ1Y3RzIHdhcyBzdGFiaWxpemVkIGluIFtSdXN0IDEuMzNdW3BhY2tl ZF0uCisrCisrW3BhY2tlZF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC9ibG9i L21hc3Rlci9SRUxFQVNFUy5tZCN2ZXJzaW9uLTEzMzAtMjAxOS0wMi0yOAorKworK2BgYHJ1c3QK KysjW3J1c3R2ZXJzaW9uOjphdHRyKGJlZm9yZSgxLjMzKSwgcmVwcihwYWNrZWQpKV0KKysjW3J1 c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEuMzMpLCByZXByKHBhY2tlZCgyKSkpXQorK3N0cnVjdCBT aXgoaTE2LCBpMzIpOworKworK2ZuIG1haW4oKSB7CisrICAgIHByaW50bG4hKCJ7fSIsIHN0ZDo6 bWVtOjphbGlnbl9vZjo6PFNpeD4oKSk7CisrfQorK2BgYAorKworK0F1Z21lbnRpbmcgY29kZSB3 aXRoIGBjb25zdGAgYXMgY29uc3QgaW1wbHMgYXJlIHN0YWJpbGl6ZWQgaW4gdGhlIHN0YW5kYXJk CisrbGlicmFyeS4gVGhpcyB1c2Ugb2YgYGNvbnN0YCBhcyBhbiBhdHRyaWJ1dGUgaXMgcmVjb2du aXplZCBhcyBhIHNwZWNpYWwgY2FzZSBieQorK3RoZSBydXN0dmVyc2lvbjo6YXR0ciBtYWNyby4K KysKKytgYGBydXN0CisrdXNlIHN0ZDo6dGltZTo6RHVyYXRpb247CisrCisrI1tydXN0dmVyc2lv bjo6YXR0cihzaW5jZSgxLjMyKSwgY29uc3QpXQorK2ZuIGR1cmF0aW9uX2FzX2RheXMoZHVyOiBE dXJhdGlvbikgLT4gdTY0IHsKKysgICAgZHVyLmFzX3NlY3MoKSAvIDYwIC8gNjAgLyAyNAorK30K KytgYGAKKysKKytFbWl0dGluZyBDYXJnbyBjZmcgZGlyZWN0aXZlcyBmcm9tIGEgYnVpbGQgc2Ny aXB0LiBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcworK2xpc3RpbmcgYHJ1c3R2ZXJzaW9uYCB1bmRl ciBgW2J1aWxkLWRlcGVuZGVuY2llc11gIGluIENhcmdvLnRvbWwsIG5vdAorK2BbZGVwZW5kZW5j aWVzXWAuCisrCisrYGBgcnVzdAorKy8vIGJ1aWxkLnJzCisrCisrZm4gbWFpbigpIHsKKysgICAg aWYgcnVzdHZlcnNpb246OmNmZyEoc2luY2UoMS4zNikpIHsKKysgICAgICAgIHByaW50bG4hKCJj YXJnbzpydXN0Yy1jZmc9bm9fc3RkIik7CisrICAgIH0KKyt9CisrYGBgCisrCisrYGBgcnVzdAor Ky8vIHNyYy9saWIucnMKKysKKysjIVtjZmdfYXR0cihub19zdGQsIG5vX3N0ZCldCisrCisrI1tj Zmcobm9fc3RkKV0KKytleHRlcm4gY3JhdGUgYWxsb2M7CisrYGBgCisrCisrPGJyPgorKworKyMj IyMgTGljZW5zZQorKworKzxzdXA+CisrTGljZW5zZWQgdW5kZXIgZWl0aGVyIG9mIDxhIGhyZWY9 IkxJQ0VOU0UtQVBBQ0hFIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbgorKzIuMDwvYT4gb3IgPGEg aHJlZj0iTElDRU5TRS1NSVQiPk1JVCBsaWNlbnNlPC9hPiBhdCB5b3VyIG9wdGlvbi4KKys8L3N1 cD4KKysKKys8YnI+CisrCisrPHN1Yj4KKytVbmxlc3MgeW91IGV4cGxpY2l0bHkgc3RhdGUgb3Ro ZXJ3aXNlLCBhbnkgY29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkCisrZm9yIGlu Y2x1c2lvbiBpbiB0aGlzIGNyYXRlIGJ5IHlvdSwgYXMgZGVmaW5lZCBpbiB0aGUgQXBhY2hlLTIu MCBsaWNlbnNlLCBzaGFsbAorK2JlIGR1YWwgbGljZW5zZWQgYXMgYWJvdmUsIHdpdGhvdXQgYW55 IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKys8L3N1Yj4KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL2J1aWxkLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi9idWlsZC9idWlsZC5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0t LSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQvYnVp bGQucnMKK0BAIC0wLDAgKzEsMTE5IEBACisrIyFbYWxsb3coCisrICAgIGNsaXBweTo6ZWxpZGFi bGVfbGlmZXRpbWVfbmFtZXMsCisrICAgIGNsaXBweTo6ZW51bV9nbG9iX3VzZSwKKysgICAgY2xp cHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCisrICAgIGNsaXBweTo6c2luZ2xlX21hdGNoX2Vsc2UK KyspXQorKworK21vZCBydXN0YzsKKysKKyt1c2Ugc3RkOjplbnY7CisrdXNlIHN0ZDo6ZmZpOjpP c1N0cmluZzsKKyt1c2Ugc3RkOjpmbXQ6OntzZWxmLCBEZWJ1ZywgRGlzcGxheX07CisrdXNlIHN0 ZDo6ZnM7CisrdXNlIHN0ZDo6aXRlcjsKKyt1c2Ugc3RkOjpwYXRoOjpQYXRoOworK3VzZSBzdGQ6 OnByb2Nlc3M6OntzZWxmLCBDb21tYW5kfTsKKysKKytmbiBtYWluKCkgeworKyAgICBwcmludGxu ISgiY2FyZ286cmVydW4taWYtY2hhbmdlZD1idWlsZC9idWlsZC5ycyIpOworKworKyAgICBsZXQg cnVzdGMgPSBlbnY6OnZhcl9vcygiUlVTVEMiKS51bndyYXBfb3JfZWxzZSh8fCBPc1N0cmluZzo6 ZnJvbSgicnVzdGMiKSk7CisrICAgIGxldCBydXN0Y193cmFwcGVyID0gZW52Ojp2YXJfb3MoIlJV U1RDX1dSQVBQRVIiKS5maWx0ZXIofHdyYXBwZXJ8ICF3cmFwcGVyLmlzX2VtcHR5KCkpOworKyAg ICBsZXQgd3JhcHBlZF9ydXN0YyA9IHJ1c3RjX3dyYXBwZXIuaXRlcigpLmNoYWluKGl0ZXI6Om9u Y2UoJnJ1c3RjKSk7CisrCisrICAgIGxldCBtdXQgaXNfY2xpcHB5X2RyaXZlciA9IGZhbHNlOwor KyAgICBsZXQgbXV0IGlzX21pcmFpID0gZmFsc2U7CisrICAgIGxldCB2ZXJzaW9uID0gbG9vcCB7 CisrICAgICAgICBsZXQgbXV0IGNvbW1hbmQ7CisrICAgICAgICBpZiBpc19taXJhaSB7CisrICAg ICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQ6Om5ldygmcnVzdGMpOworKyAgICAgICAgfSBlbHNl IHsKKysgICAgICAgICAgICBsZXQgbXV0IHdyYXBwZWRfcnVzdGMgPSB3cmFwcGVkX3J1c3RjLmNs b25lKCk7CisrICAgICAgICAgICAgY29tbWFuZCA9IENvbW1hbmQ6Om5ldyh3cmFwcGVkX3J1c3Rj Lm5leHQoKS51bndyYXAoKSk7CisrICAgICAgICAgICAgY29tbWFuZC5hcmdzKHdyYXBwZWRfcnVz dGMpOworKyAgICAgICAgfQorKyAgICAgICAgaWYgaXNfY2xpcHB5X2RyaXZlciB7CisrICAgICAg ICAgICAgY29tbWFuZC5hcmcoIi0tcnVzdGMiKTsKKysgICAgICAgIH0KKysgICAgICAgIGNvbW1h bmQuYXJnKCItLXZlcnNpb24iKTsKKysKKysgICAgICAgIC8vIEFsbG93IHdyYXBwZXIgc2NyaXB0 cyBvciBhbHRlcm5hdGUgY29tcGlsZXJzIHRvIHRlbGwgdGhhdCB0aGlzIGlzCisrICAgICAgICAv LyBgcnVzdHZlcnNpb25gIHJ1bm5pbmcgLS12ZXJzaW9uLCBzbyB0aGF0IHRoZXkgY2FuIHN0aWNr IHRvIHJ1c3RjJ3MKKysgICAgICAgIC8vIHZlcnNpb24gZm9ybWF0LiBodHRwczovL2dpdGh1Yi5j b20vZHRvbG5heS9ydXN0dmVyc2lvbi9pc3N1ZXMvNjcKKysgICAgICAgIGNvbW1hbmQuZW52KCJS VVNUVkVSU0lPTiIsICIxIik7CisrCisrICAgICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggY29tbWFu ZC5vdXRwdXQoKSB7CisrICAgICAgICAgICAgT2sob3V0cHV0KSA9PiBvdXRwdXQsCisrICAgICAg ICAgICAgRXJyKGUpID0+IHsKKysgICAgICAgICAgICAgICAgbGV0IHJ1c3RjID0gcnVzdGMudG9f c3RyaW5nX2xvc3N5KCk7CisrICAgICAgICAgICAgICAgIGVwcmludGxuISgiRXJyb3I6IGZhaWxl ZCB0byBydW4gYHt9IC0tdmVyc2lvbmA6IHt9IiwgcnVzdGMsIGUpOworKyAgICAgICAgICAgICAg ICBwcm9jZXNzOjpleGl0KDEpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH07CisrCisrICAg ICAgICBsZXQgc3RyaW5nID0gbWF0Y2ggU3RyaW5nOjpmcm9tX3V0Zjgob3V0cHV0LnN0ZG91dCkg eworKyAgICAgICAgICAgIE9rKHN0cmluZykgPT4gc3RyaW5nLAorKyAgICAgICAgICAgIEVycihl KSA9PiB7CisrICAgICAgICAgICAgICAgIGxldCBydXN0YyA9IHJ1c3RjLnRvX3N0cmluZ19sb3Nz eSgpOworKyAgICAgICAgICAgICAgICBlcHJpbnRsbiEoCisrICAgICAgICAgICAgICAgICAgICAi RXJyb3I6IGZhaWxlZCB0byBwYXJzZSBvdXRwdXQgb2YgYHt9IC0tdmVyc2lvbmA6IHt9IiwKKysg ICAgICAgICAgICAgICAgICAgIHJ1c3RjLCBlLAorKyAgICAgICAgICAgICAgICApOworKyAgICAg ICAgICAgICAgICBwcm9jZXNzOjpleGl0KDEpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH07 CisrCisrICAgICAgICBicmVhayBtYXRjaCBydXN0Yzo6cGFyc2UoJnN0cmluZykgeworKyAgICAg ICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6U3VjY2Vzcyh2ZXJzaW9uKSA9PiB2ZXJzaW9uLAor KyAgICAgICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6T29wc0NsaXBweSBpZiAhaXNfY2xpcHB5 X2RyaXZlciA9PiB7CisrICAgICAgICAgICAgICAgIGlzX2NsaXBweV9kcml2ZXIgPSB0cnVlOwor KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAg cnVzdGM6OlBhcnNlUmVzdWx0OjpPb3BzTWlyYWkgaWYgIWlzX21pcmFpICYmIHJ1c3RjX3dyYXBw ZXIuaXNfc29tZSgpID0+IHsKKysgICAgICAgICAgICAgICAgaXNfbWlyYWkgPSB0cnVlOworKyAg ICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgcnVz dGM6OlBhcnNlUmVzdWx0OjpVbnJlY29nbml6ZWQKKysgICAgICAgICAgICB8IHJ1c3RjOjpQYXJz ZVJlc3VsdDo6T29wc0NsaXBweQorKyAgICAgICAgICAgIHwgcnVzdGM6OlBhcnNlUmVzdWx0OjpP b3BzTWlyYWkgPT4geworKyAgICAgICAgICAgICAgICBlcHJpbnRsbiEoCisrICAgICAgICAgICAg ICAgICAgICAiRXJyb3I6IHVuZXhwZWN0ZWQgb3V0cHV0IGZyb20gYHJ1c3RjIC0tdmVyc2lvbmA6 IHs6P31cblxuXAorKyAgICAgICAgICAgICAgICAgICAgUGxlYXNlIGZpbGUgYW4gaXNzdWUgaW4g aHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24iLAorKyAgICAgICAgICAgICAg ICAgICAgc3RyaW5nCisrICAgICAgICAgICAgICAgICk7CisrICAgICAgICAgICAgICAgIHByb2Nl c3M6OmV4aXQoMSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfTsKKysgICAgfTsKKysKKysg ICAgaWYgdmVyc2lvbi5taW5vciA8IDM4IHsKKysgICAgICAgIC8vIFByaW9yIHRvIDEuMzgsIGEg I1twcm9jX21hY3JvXSBpcyBub3QgYWxsb3dlZCB0byBiZSBuYW1lZCBgY2ZnYC4KKysgICAgICAg IHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9Y2ZnX21hY3JvX25vdF9hbGxvd2VkIik7CisrICAg IH0KKysKKysgICAgaWYgdmVyc2lvbi5taW5vciA+PSA4MCB7CisrICAgICAgICBwcmludGxuISgi Y2FyZ286cnVzdGMtY2hlY2stY2ZnPWNmZyhjZmdfbWFjcm9fbm90X2FsbG93ZWQpIik7CisrICAg ICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2hlY2stY2ZnPWNmZyhob3N0X29zLCB2YWx1ZXMo XCJ3aW5kb3dzXCIpKSIpOworKyAgICB9CisrCisrICAgIGxldCB2ZXJzaW9uID0gZm9ybWF0ISgi ezojfVxuIiwgUmVuZGVyKCZ2ZXJzaW9uKSk7CisrICAgIGxldCBvdXRfZGlyID0gZW52Ojp2YXJf b3MoIk9VVF9ESVIiKS5leHBlY3QoIk9VVF9ESVIgbm90IHNldCIpOworKyAgICBsZXQgb3V0X2Zp bGUgPSBQYXRoOjpuZXcoJm91dF9kaXIpLmpvaW4oInZlcnNpb24uZXhwciIpOworKyAgICBmczo6 d3JpdGUob3V0X2ZpbGUsIHZlcnNpb24pLmV4cGVjdCgiZmFpbGVkIHRvIHdyaXRlIHZlcnNpb24u ZXhwciIpOworKworKyAgICBsZXQgaG9zdCA9IGVudjo6dmFyX29zKCJIT1NUIikuZXhwZWN0KCJI T1NUIG5vdCBzZXQiKTsKKysgICAgaWYgbGV0IFNvbWUoIndpbmRvd3MiKSA9IGhvc3QudG9fc3Ry KCkudW53cmFwKCkuc3BsaXQoJy0nKS5udGgoMikgeworKyAgICAgICAgcHJpbnRsbiEoImNhcmdv OnJ1c3RjLWNmZz1ob3N0X29zPVwid2luZG93c1wiIik7CisrICAgIH0KKyt9CisrCisrLy8gU2hp bSBWZXJzaW9uJ3Mgezo/fSBmb3JtYXQgaW50byBhIHt9IGZvcm1hdCwgYmVjYXVzZSB7Oj99IGlz IHVudXNhYmxlIGluCisrLy8gZm9ybWF0IHN0cmluZ3Mgd2hlbiBidWlsZGluZyB3aXRoIGAtWmZt dC1kZWJ1Zz1ub25lYC4KKytzdHJ1Y3QgUmVuZGVyPCdhPigmJ2EgcnVzdGM6OlZlcnNpb24pOwor KworK2ltcGw8J2E+IERpc3BsYXkgZm9yIFJlbmRlcjwnYT4geworKyAgICBmbiBmbXQoJnNlbGYs IGZvcm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAg ICAgRGVidWc6OmZtdChzZWxmLjAsIGZvcm1hdHRlcikKKysgICAgfQorK30KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL2J1aWxkL3J1c3RjLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9ydXN0dmVyc2lvbi9idWlsZC9ydXN0Yy5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQv cnVzdGMucnMKK0BAIC0wLDAgKzEsMTI2IEBACisrdXNlIHNlbGY6OkNoYW5uZWw6Oio7CisrdXNl IHN0ZDo6Zm10Ojp7c2VsZiwgRGVidWd9OworKworK3B1YiBlbnVtIFBhcnNlUmVzdWx0IHsKKysg ICAgU3VjY2VzcyhWZXJzaW9uKSwKKysgICAgT29wc0NsaXBweSwKKysgICAgT29wc01pcmFpLAor KyAgICBVbnJlY29nbml6ZWQsCisrfQorKworKyNbY2ZnX2F0dHIodGVzdCwgZGVyaXZlKFBhcnRp YWxFcSkpXQorK3B1YiBzdHJ1Y3QgVmVyc2lvbiB7CisrICAgIHB1YiBtaW5vcjogdTE2LAorKyAg ICBwdWIgcGF0Y2g6IHUxNiwKKysgICAgcHViIGNoYW5uZWw6IENoYW5uZWwsCisrfQorKworKyNb Y2ZnX2F0dHIodGVzdCwgZGVyaXZlKFBhcnRpYWxFcSkpXQorK3B1YiBlbnVtIENoYW5uZWwgewor KyAgICBTdGFibGUsCisrICAgIEJldGEsCisrICAgIE5pZ2h0bHkoRGF0ZSksCisrICAgIERldiwK Kyt9CisrCisrI1tjZmdfYXR0cih0ZXN0LCBkZXJpdmUoUGFydGlhbEVxKSldCisrcHViIHN0cnVj dCBEYXRlIHsKKysgICAgcHViIHllYXI6IHUxNiwKKysgICAgcHViIG1vbnRoOiB1OCwKKysgICAg cHViIGRheTogdTgsCisrfQorKworK3B1YiBmbiBwYXJzZShzdHJpbmc6ICZzdHIpIC0+IFBhcnNl UmVzdWx0IHsKKysgICAgbGV0IGxhc3RfbGluZSA9IHN0cmluZy5saW5lcygpLmxhc3QoKS51bndy YXBfb3Ioc3RyaW5nKTsKKysgICAgbGV0IG11dCB3b3JkcyA9IGxhc3RfbGluZS50cmltKCkuc3Bs aXQoJyAnKTsKKysKKysgICAgbWF0Y2ggd29yZHMubmV4dCgpIHsKKysgICAgICAgIFNvbWUoInJ1 c3RjIikgPT4ge30KKysgICAgICAgIFNvbWUod29yZCkgaWYgd29yZC5zdGFydHNfd2l0aCgiY2xp cHB5IikgPT4gcmV0dXJuIFBhcnNlUmVzdWx0OjpPb3BzQ2xpcHB5LAorKyAgICAgICAgU29tZSgi bWlyYWkiKSA9PiByZXR1cm4gUGFyc2VSZXN1bHQ6Ok9vcHNNaXJhaSwKKysgICAgICAgIFNvbWUo XykgfCBOb25lID0+IHJldHVybiBQYXJzZVJlc3VsdDo6VW5yZWNvZ25pemVkLAorKyAgICB9Cisr CisrICAgIHBhcnNlX3dvcmRzKCZtdXQgd29yZHMpLm1hcF9vcihQYXJzZVJlc3VsdDo6VW5yZWNv Z25pemVkLCBQYXJzZVJlc3VsdDo6U3VjY2VzcykKKyt9CisrCisrZm4gcGFyc2Vfd29yZHMod29y ZHM6ICZtdXQgZHluIEl0ZXJhdG9yPEl0ZW0gPSAmc3RyPikgLT4gT3B0aW9uPFZlcnNpb24+IHsK KysgICAgbGV0IG11dCB2ZXJzaW9uX2NoYW5uZWwgPSB3b3Jkcy5uZXh0KCk/LnNwbGl0KCctJyk7 CisrICAgIGxldCB2ZXJzaW9uID0gdmVyc2lvbl9jaGFubmVsLm5leHQoKT87CisrICAgIGxldCBj aGFubmVsID0gdmVyc2lvbl9jaGFubmVsLm5leHQoKTsKKysKKysgICAgbGV0IG11dCBkaWdpdHMg PSB2ZXJzaW9uLnNwbGl0KCcuJyk7CisrICAgIGxldCBtYWpvciA9IGRpZ2l0cy5uZXh0KCk/Owor KyAgICBpZiBtYWpvciAhPSAiMSIgeworKyAgICAgICAgcmV0dXJuIE5vbmU7CisrICAgIH0KKysg ICAgbGV0IG1pbm9yID0gZGlnaXRzLm5leHQoKT8ucGFyc2UoKS5vaygpPzsKKysgICAgbGV0IHBh dGNoID0gZGlnaXRzLm5leHQoKS51bndyYXBfb3IoIjAiKS5wYXJzZSgpLm9rKCk/OworKworKyAg ICBsZXQgY2hhbm5lbCA9IG1hdGNoIGNoYW5uZWwgeworKyAgICAgICAgTm9uZSA9PiBTdGFibGUs CisrICAgICAgICBTb21lKCJkZXYiKSA9PiBEZXYsCisrICAgICAgICBTb21lKGNoYW5uZWwpIGlm IGNoYW5uZWwuc3RhcnRzX3dpdGgoImJldGEiKSA9PiBCZXRhLAorKyAgICAgICAgU29tZSgibmln aHRseSIpID0+IG1hdGNoIHdvcmRzLm5leHQoKSB7CisrICAgICAgICAgICAgU29tZShoYXNoKSBp ZiBoYXNoLnN0YXJ0c193aXRoKCcoJykgPT4gbWF0Y2ggd29yZHMubmV4dCgpIHsKKysgICAgICAg ICAgICAgICAgTm9uZSBpZiBoYXNoLmVuZHNfd2l0aCgnKScpID0+IERldiwKKysgICAgICAgICAg ICAgICAgU29tZShkYXRlKSBpZiBkYXRlLmVuZHNfd2l0aCgnKScpID0+IHsKKysgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgZGF0ZSA9IGRhdGVbLi5kYXRlLmxlbigpIC0gMV0uc3BsaXQoJy0n KTsKKysgICAgICAgICAgICAgICAgICAgIGxldCB5ZWFyID0gZGF0ZS5uZXh0KCk/LnBhcnNlKCku b2soKT87CisrICAgICAgICAgICAgICAgICAgICBsZXQgbW9udGggPSBkYXRlLm5leHQoKT8ucGFy c2UoKS5vaygpPzsKKysgICAgICAgICAgICAgICAgICAgIGxldCBkYXkgPSBkYXRlLm5leHQoKT8u cGFyc2UoKS5vaygpPzsKKysgICAgICAgICAgICAgICAgICAgIG1hdGNoIGRhdGUubmV4dCgpIHsK KysgICAgICAgICAgICAgICAgICAgICAgICBOb25lID0+IE5pZ2h0bHkoRGF0ZSB7IHllYXIsIG1v bnRoLCBkYXkgfSksCisrICAgICAgICAgICAgICAgICAgICAgICAgU29tZShfKSA9PiByZXR1cm4g Tm9uZSwKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgfQorKyAgICAg ICAgICAgICAgICBOb25lIHwgU29tZShfKSA9PiByZXR1cm4gTm9uZSwKKysgICAgICAgICAgICB9 LAorKyAgICAgICAgICAgIFNvbWUoXykgPT4gcmV0dXJuIE5vbmUsCisrICAgICAgICAgICAgTm9u ZSA9PiBEZXYsCisrICAgICAgICB9LAorKyAgICAgICAgU29tZShfKSA9PiByZXR1cm4gTm9uZSwK KysgICAgfTsKKysKKysgICAgU29tZShWZXJzaW9uIHsKKysgICAgICAgIG1pbm9yLAorKyAgICAg ICAgcGF0Y2gsCisrICAgICAgICBjaGFubmVsLAorKyAgICB9KQorK30KKysKKytpbXBsIERlYnVn IGZvciBWZXJzaW9uIHsKKysgICAgZm4gZm10KCZzZWxmLCBmb3JtYXR0ZXI6ICZtdXQgZm10OjpG b3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKKysgICAgICAgIGZvcm1hdHRlcgorKyAgICAgICAg ICAgIC5kZWJ1Z19zdHJ1Y3QoImNyYXRlOjp2ZXJzaW9uOjpWZXJzaW9uIikKKysgICAgICAgICAg ICAuZmllbGQoIm1pbm9yIiwgJnNlbGYubWlub3IpCisrICAgICAgICAgICAgLmZpZWxkKCJwYXRj aCIsICZzZWxmLnBhdGNoKQorKyAgICAgICAgICAgIC5maWVsZCgiY2hhbm5lbCIsICZzZWxmLmNo YW5uZWwpCisrICAgICAgICAgICAgLmZpbmlzaCgpCisrICAgIH0KKyt9CisrCisraW1wbCBEZWJ1 ZyBmb3IgQ2hhbm5lbCB7CisrICAgIGZuIGZtdCgmc2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6 Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICBtYXRjaCBzZWxmIHsKKysgICAg ICAgICAgICBDaGFubmVsOjpTdGFibGUgPT4gZm9ybWF0dGVyLndyaXRlX3N0cigiY3JhdGU6OnZl cnNpb246OkNoYW5uZWw6OlN0YWJsZSIpLAorKyAgICAgICAgICAgIENoYW5uZWw6OkJldGEgPT4g Zm9ybWF0dGVyLndyaXRlX3N0cigiY3JhdGU6OnZlcnNpb246OkNoYW5uZWw6OkJldGEiKSwKKysg ICAgICAgICAgICBDaGFubmVsOjpOaWdodGx5KGRhdGUpID0+IGZvcm1hdHRlcgorKyAgICAgICAg ICAgICAgICAuZGVidWdfdHVwbGUoImNyYXRlOjp2ZXJzaW9uOjpDaGFubmVsOjpOaWdodGx5IikK KysgICAgICAgICAgICAgICAgLmZpZWxkKGRhdGUpCisrICAgICAgICAgICAgICAgIC5maW5pc2go KSwKKysgICAgICAgICAgICBDaGFubmVsOjpEZXYgPT4gZm9ybWF0dGVyLndyaXRlX3N0cigiY3Jh dGU6OnZlcnNpb246OkNoYW5uZWw6OkRldiIpLAorKyAgICAgICAgfQorKyAgICB9CisrfQorKwor K2ltcGwgRGVidWcgZm9yIERhdGUgeworKyAgICBmbiBmbXQoJnNlbGYsIGZvcm1hdHRlcjogJm11 dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAgZm9ybWF0dGVyCisr ICAgICAgICAgICAgLmRlYnVnX3N0cnVjdCgiY3JhdGU6OmRhdGU6OkRhdGUiKQorKyAgICAgICAg ICAgIC5maWVsZCgieWVhciIsICZzZWxmLnllYXIpCisrICAgICAgICAgICAgLmZpZWxkKCJtb250 aCIsICZzZWxmLm1vbnRoKQorKyAgICAgICAgICAgIC5maWVsZCgiZGF5IiwgJnNlbGYuZGF5KQor KyAgICAgICAgICAgIC5maW5pc2goKQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2F0dHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3NyYy9hdHRyLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYXR0ci5ycworQEAgLTAsMCAr MSwzNSBAQAorK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6 OmV4cHI6OntzZWxmLCBFeHByfTsKKyt1c2UgY3JhdGU6OntpdGVyLCB0b2tlbn07CisrdXNlIHBy b2NfbWFjcm86OntTcGFuLCBUb2tlblN0cmVhbX07CisrCisrcHViIHN0cnVjdCBBcmdzIHsKKysg ICAgcHViIGNvbmRpdGlvbjogRXhwciwKKysgICAgcHViIHRoZW46IFRoZW4sCisrfQorKworK3B1 YiBlbnVtIFRoZW4geworKyAgICBDb25zdChTcGFuKSwKKysgICAgQXR0cmlidXRlKFRva2VuU3Ry ZWFtKSwKKyt9CisrCisrcHViIGZuIHBhcnNlKGlucHV0OiBUb2tlblN0cmVhbSkgLT4gUmVzdWx0 PEFyZ3M+IHsKKysgICAgbGV0IHJlZiBtdXQgaW5wdXQgPSBpdGVyOjpuZXcoaW5wdXQpOworKyAg ICBsZXQgY29uZGl0aW9uID0gZXhwcjo6cGFyc2UoaW5wdXQpPzsKKysKKysgICAgdG9rZW46OnBh cnNlX3B1bmN0KGlucHV0LCAnLCcpPzsKKysgICAgaWYgaW5wdXQucGVlaygpLmlzX25vbmUoKSB7 CisrICAgICAgICByZXR1cm4gRXJyKEVycm9yOjpuZXcoU3Bhbjo6Y2FsbF9zaXRlKCksICJleHBl Y3RlZCBvbmUgb3IgbW9yZSBhdHRycyIpKTsKKysgICAgfQorKworKyAgICBsZXQgY29uc3Rfc3Bh biA9IHRva2VuOjpwYXJzZV9vcHRpb25hbF9rZXl3b3JkKGlucHV0LCAiY29uc3QiKTsKKysgICAg bGV0IHRoZW4gPSBpZiBsZXQgU29tZShjb25zdF9zcGFuKSA9IGNvbnN0X3NwYW4geworKyAgICAg ICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlucHV0LCAnLCcpOworKyAgICAgICAgdG9r ZW46OnBhcnNlX2VuZChpbnB1dCk/OworKyAgICAgICAgVGhlbjo6Q29uc3QoY29uc3Rfc3BhbikK KysgICAgfSBlbHNlIHsKKysgICAgICAgIFRoZW46OkF0dHJpYnV0ZShpbnB1dC5jb2xsZWN0KCkp CisrICAgIH07CisrCisrICAgIE9rKEFyZ3MgeyBjb25kaXRpb24sIHRoZW4gfSkKKyt9CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYm91bmQucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9ib3VuZC5ycworbmV3IGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3Jj L2JvdW5kLnJzCitAQCAtMCwwICsxLDYzIEBACisrdXNlIGNyYXRlOjpkYXRlOjp7c2VsZiwgRGF0 ZX07CisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBjcmF0ZTo6aXRl cjo6SXRlcjsKKyt1c2UgY3JhdGU6OnJlbGVhc2U6OntzZWxmLCBSZWxlYXNlfTsKKyt1c2UgY3Jh dGU6OnRpbWU7CisrdXNlIGNyYXRlOjp2ZXJzaW9uOjp7Q2hhbm5lbDo6KiwgVmVyc2lvbn07Cisr dXNlIHByb2NfbWFjcm86OntHcm91cCwgVG9rZW5UcmVlfTsKKyt1c2Ugc3RkOjpjbXA6Ok9yZGVy aW5nOworKworK3B1YiBlbnVtIEJvdW5kIHsKKysgICAgTmlnaHRseShEYXRlKSwKKysgICAgU3Rh YmxlKFJlbGVhc2UpLAorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46IEdyb3VwLCBpdGVyOiBJ dGVyKSAtPiBSZXN1bHQ8Qm91bmQ+IHsKKysgICAgaWYgbGV0IFNvbWUoVG9rZW5UcmVlOjpMaXRl cmFsKGxpdGVyYWwpKSA9IGl0ZXIucGVlaygpIHsKKysgICAgICAgIGxldCByZXByID0gbGl0ZXJh bC50b19zdHJpbmcoKTsKKysgICAgICAgIGlmIHJlcHIuc3RhcnRzX3dpdGgofGNoOiBjaGFyfCBj aC5pc19hc2NpaV9kaWdpdCgpKSB7CisrICAgICAgICAgICAgaWYgcmVwci5jb250YWlucygnLicp IHsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHJlbGVhc2U6OnBhcnNlKHBhcmVuLCBpdGVyKS5t YXAoQm91bmQ6OlN0YWJsZSk7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAg ICAgcmV0dXJuIGRhdGU6OnBhcnNlKHBhcmVuLCBpdGVyKS5tYXAoQm91bmQ6Ok5pZ2h0bHkpOwor KyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgfQorKyAgICBsZXQgbXNnID0gZm9ybWF0 ISgKKysgICAgICAgICJleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciBsaWtlIDEuODUsIG9y IG5pZ2h0bHkgZGF0ZSBsaWtlIHt9IiwKKysgICAgICAgIHRpbWU6OnRvZGF5KCksCisrICAgICk7 CisrICAgIEVycihFcnJvcjo6Z3JvdXAocGFyZW4sIG1zZykpCisrfQorKworK2ltcGwgUGFydGlh bEVxPEJvdW5kPiBmb3IgVmVyc2lvbiB7CisrICAgIGZuIGVxKCZzZWxmLCByaHM6ICZCb3VuZCkg LT4gYm9vbCB7CisrICAgICAgICBtYXRjaCByaHMgeworKyAgICAgICAgICAgIEJvdW5kOjpOaWdo dGx5KGRhdGUpID0+IG1hdGNoIHNlbGYuY2hhbm5lbCB7CisrICAgICAgICAgICAgICAgIFN0YWJs ZSB8IEJldGEgfCBEZXYgPT4gZmFsc2UsCisrICAgICAgICAgICAgICAgIE5pZ2h0bHkobmlnaHRs eSkgPT4gbmlnaHRseSA9PSAqZGF0ZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgICAgIEJv dW5kOjpTdGFibGUocmVsZWFzZSkgPT4geworKyAgICAgICAgICAgICAgICBzZWxmLm1pbm9yID09 IHJlbGVhc2UubWlub3IKKysgICAgICAgICAgICAgICAgICAgICYmIHJlbGVhc2UucGF0Y2gubWFw X29yKHRydWUsIHxwYXRjaHwgc2VsZi5wYXRjaCA9PSBwYXRjaCkKKysgICAgICAgICAgICB9Cisr ICAgICAgICB9CisrICAgIH0KKyt9CisrCisraW1wbCBQYXJ0aWFsT3JkPEJvdW5kPiBmb3IgVmVy c2lvbiB7CisrICAgIGZuIHBhcnRpYWxfY21wKCZzZWxmLCByaHM6ICZCb3VuZCkgLT4gT3B0aW9u PE9yZGVyaW5nPiB7CisrICAgICAgICBtYXRjaCByaHMgeworKyAgICAgICAgICAgIEJvdW5kOjpO aWdodGx5KGRhdGUpID0+IG1hdGNoIHNlbGYuY2hhbm5lbCB7CisrICAgICAgICAgICAgICAgIFN0 YWJsZSB8IEJldGEgPT4gU29tZShPcmRlcmluZzo6TGVzcyksCisrICAgICAgICAgICAgICAgIE5p Z2h0bHkobmlnaHRseSkgPT4gU29tZShuaWdodGx5LmNtcChkYXRlKSksCisrICAgICAgICAgICAg ICAgIERldiA9PiBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSwKKysgICAgICAgICAgICB9LAorKyAg ICAgICAgICAgIEJvdW5kOjpTdGFibGUocmVsZWFzZSkgPT4geworKyAgICAgICAgICAgICAgICBs ZXQgdmVyc2lvbiA9IChzZWxmLm1pbm9yLCBzZWxmLnBhdGNoKTsKKysgICAgICAgICAgICAgICAg bGV0IGJvdW5kID0gKHJlbGVhc2UubWlub3IsIHJlbGVhc2UucGF0Y2gudW53cmFwX29yKDApKTsK KysgICAgICAgICAgICAgICAgU29tZSh2ZXJzaW9uLmNtcCgmYm91bmQpKQorKyAgICAgICAgICAg IH0KKysgICAgICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3NyYy9jb25zdGZuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi9zcmMvY29uc3Rmbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2NvbnN0Zm4ucnMKK0BAIC0wLDAg KzEsNTggQEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNlIHByb2Nf bWFjcm86OntJZGVudCwgU3BhbiwgVG9rZW5TdHJlYW0sIFRva2VuVHJlZX07CisrdXNlIHN0ZDo6 aXRlcjsKKysKKysjW2Rlcml2ZShQYXJ0aWFsT3JkLCBQYXJ0aWFsRXEpXQorK2VudW0gUXVhbGlm aWVycyB7CisrICAgIE5vbmUsCisrICAgIEFzeW5jLAorKyAgICBVbnNhZmUsCisrICAgIEV4dGVy biwKKysgICAgQWJpLAorK30KKysKKytpbXBsIFF1YWxpZmllcnMgeworKyAgICBmbiBmcm9tX2lk ZW50KGlkZW50OiAmSWRlbnQpIC0+IFNlbGYgeworKyAgICAgICAgbWF0Y2ggaWRlbnQudG9fc3Ry aW5nKCkuYXNfc3RyKCkgeworKyAgICAgICAgICAgICJhc3luYyIgPT4gUXVhbGlmaWVyczo6QXN5 bmMsCisrICAgICAgICAgICAgInVuc2FmZSIgPT4gUXVhbGlmaWVyczo6VW5zYWZlLAorKyAgICAg ICAgICAgICJleHRlcm4iID0+IFF1YWxpZmllcnM6OkV4dGVybiwKKysgICAgICAgICAgICBfID0+ IFF1YWxpZmllcnM6Ok5vbmUsCisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrcHViKGNyYXRl KSBmbiBpbnNlcnRfY29uc3QoaW5wdXQ6IFRva2VuU3RyZWFtLCBjb25zdF9zcGFuOiBTcGFuKSAt PiBSZXN1bHQ8VG9rZW5TdHJlYW0+IHsKKysgICAgbGV0IHJlZiBtdXQgaW5wdXQgPSBjcmF0ZTo6 aXRlcjo6bmV3KGlucHV0KTsKKysgICAgbGV0IG11dCBvdXQgPSBUb2tlblN0cmVhbTo6bmV3KCk7 CisrICAgIGxldCBtdXQgcXVhbGlmaWVycyA9IFF1YWxpZmllcnM6Ok5vbmU7CisrICAgIGxldCBt dXQgcGVuZGluZyA9IFZlYzo6bmV3KCk7CisrCisrICAgIHdoaWxlIGxldCBTb21lKHRva2VuKSA9 IGlucHV0Lm5leHQoKSB7CisrICAgICAgICBtYXRjaCB0b2tlbiB7CisrICAgICAgICAgICAgVG9r ZW5UcmVlOjpJZGVudChyZWYgaWRlbnQpIGlmIGlkZW50LnRvX3N0cmluZygpID09ICJmbiIgPT4g eworKyAgICAgICAgICAgICAgICBsZXQgY29uc3RfaWRlbnQgPSBJZGVudDo6bmV3KCJjb25zdCIs IGNvbnN0X3NwYW4pOworKyAgICAgICAgICAgICAgICBvdXQuZXh0ZW5kKGl0ZXI6Om9uY2UoVG9r ZW5UcmVlOjpJZGVudChjb25zdF9pZGVudCkpKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVu ZChwZW5kaW5nKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVuZChpdGVyOjpvbmNlKHRva2Vu KSk7CisrICAgICAgICAgICAgICAgIG91dC5leHRlbmQoaW5wdXQpOworKyAgICAgICAgICAgICAg ICByZXR1cm4gT2sob3V0KTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgVG9rZW5UcmVl OjpJZGVudChyZWYgaWRlbnQpIGlmIFF1YWxpZmllcnM6OmZyb21faWRlbnQoaWRlbnQpID4gcXVh bGlmaWVycyA9PiB7CisrICAgICAgICAgICAgICAgIHF1YWxpZmllcnMgPSBRdWFsaWZpZXJzOjpm cm9tX2lkZW50KGlkZW50KTsKKysgICAgICAgICAgICAgICAgcGVuZGluZy5wdXNoKHRva2VuKTsK KysgICAgICAgICAgICB9CisrICAgICAgICAgICAgVG9rZW5UcmVlOjpMaXRlcmFsKF8pIGlmIHF1 YWxpZmllcnMgPT0gUXVhbGlmaWVyczo6RXh0ZXJuID0+IHsKKysgICAgICAgICAgICAgICAgcXVh bGlmaWVycyA9IFF1YWxpZmllcnM6OkFiaTsKKysgICAgICAgICAgICAgICAgcGVuZGluZy5wdXNo KHRva2VuKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgXyA9PiB7CisrICAgICAgICAg ICAgICAgIHF1YWxpZmllcnMgPSBRdWFsaWZpZXJzOjpOb25lOworKyAgICAgICAgICAgICAgICBv dXQuZXh0ZW5kKHBlbmRpbmcuZHJhaW4oLi4pKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVu ZChpdGVyOjpvbmNlKHRva2VuKSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9 CisrCisrICAgIEVycihFcnJvcjo6bmV3KGNvbnN0X3NwYW4sICJvbmx5IGFsbG93ZWQgb24gYSBm biBpdGVtIikpCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24v c3JjL2RhdGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9kYXRlLnJzCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvZGF0ZS5ycworQEAgLTAsMCArMSw1MCBAQAorK3VzZSBjcmF0ZTo6 ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0ZXI6Okl0ZXI7CisrdXNlIGNy YXRlOjp7dGltZSwgdG9rZW59OworK3VzZSBwcm9jX21hY3JvOjpHcm91cDsKKyt1c2Ugc3RkOjpm bXQ6OntzZWxmLCBEaXNwbGF5fTsKKysKKysjW2Rlcml2ZShDb3B5LCBDbG9uZSwgRGVidWcsIFBh cnRpYWxFcSwgRXEsIFBhcnRpYWxPcmQsIE9yZCldCisrcHViIHN0cnVjdCBEYXRlIHsKKysgICAg cHViIHllYXI6IHUxNiwKKysgICAgcHViIG1vbnRoOiB1OCwKKysgICAgcHViIGRheTogdTgsCisr fQorKworK2ltcGwgRGlzcGxheSBmb3IgRGF0ZSB7CisrICAgIGZuIGZtdCgmc2VsZiwgZm9ybWF0 dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICB3cml0 ZSEoCisrICAgICAgICAgICAgZm9ybWF0dGVyLAorKyAgICAgICAgICAgICJ7OjA0fS17OjAyfS17 OjAyfSIsCisrICAgICAgICAgICAgc2VsZi55ZWFyLCBzZWxmLm1vbnRoLCBzZWxmLmRheSwKKysg ICAgICAgICkKKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46IEdyb3VwLCBpdGVy OiBJdGVyKSAtPiBSZXN1bHQ8RGF0ZT4geworKyAgICB0cnlfcGFyc2UoaXRlcikubWFwX2Vycih8 KCl8IHsKKysgICAgICAgIGxldCBtc2cgPSBmb3JtYXQhKCJleHBlY3RlZCBuaWdodGx5IGRhdGUs IGxpa2Uge30iLCB0aW1lOjp0b2RheSgpKTsKKysgICAgICAgIEVycm9yOjpncm91cChwYXJlbiwg bXNnKQorKyAgICB9KQorK30KKysKKytmbiB0cnlfcGFyc2UoaXRlcjogSXRlcikgLT4gUmVzdWx0 PERhdGUsICgpPiB7CisrICAgIGxldCB5ZWFyID0gdG9rZW46OnBhcnNlX2xpdGVyYWwoaXRlciku bWFwX2Vycihkcm9wKT87CisrICAgIHRva2VuOjpwYXJzZV9wdW5jdChpdGVyLCAnLScpLm1hcF9l cnIoZHJvcCk/OworKyAgICBsZXQgbW9udGggPSB0b2tlbjo6cGFyc2VfbGl0ZXJhbChpdGVyKS5t YXBfZXJyKGRyb3ApPzsKKysgICAgdG9rZW46OnBhcnNlX3B1bmN0KGl0ZXIsICctJykubWFwX2Vy cihkcm9wKT87CisrICAgIGxldCBkYXkgPSB0b2tlbjo6cGFyc2VfbGl0ZXJhbChpdGVyKS5tYXBf ZXJyKGRyb3ApPzsKKysKKysgICAgbGV0IHllYXIgPSB5ZWFyLnRvX3N0cmluZygpLnBhcnNlOjo8 dTY0PigpLm1hcF9lcnIoZHJvcCk/OworKyAgICBsZXQgbW9udGggPSBtb250aC50b19zdHJpbmco KS5wYXJzZTo6PHU2ND4oKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IGRheSA9IGRheS50b19z dHJpbmcoKS5wYXJzZTo6PHU2ND4oKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgaWYgeWVhciA+PSAz MDAwIHx8IG1vbnRoID4gMTIgfHwgZGF5ID4gMzEgeworKyAgICAgICAgcmV0dXJuIEVycigoKSk7 CisrICAgIH0KKysKKysgICAgT2soRGF0ZSB7CisrICAgICAgICB5ZWFyOiB5ZWFyIGFzIHUxNiwK KysgICAgICAgIG1vbnRoOiBtb250aCBhcyB1OCwKKysgICAgICAgIGRheTogZGF5IGFzIHU4LAor KyAgICB9KQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Ny Yy9lcnJvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2Vycm9yLnJzCitu ZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvZXJyb3IucnMKK0BAIC0wLDAgKzEsNTYgQEAKKyt1c2UgcHJvY19t YWNybzo6e0RlbGltaXRlciwgR3JvdXAsIElkZW50LCBMaXRlcmFsLCBQdW5jdCwgU3BhY2luZywg U3BhbiwgVG9rZW5TdHJlYW0sIFRva2VuVHJlZX07CisrdXNlIHN0ZDo6Zm10OjpEaXNwbGF5Owor K3VzZSBzdGQ6Oml0ZXI6OkZyb21JdGVyYXRvcjsKKysKKytwdWIgdHlwZSBSZXN1bHQ8VCwgRSA9 IEVycm9yPiA9IHN0ZDo6cmVzdWx0OjpSZXN1bHQ8VCwgRT47CisrCisrcHViIHN0cnVjdCBFcnJv ciB7CisrICAgIGJlZ2luOiBTcGFuLAorKyAgICBlbmQ6IFNwYW4sCisrICAgIG1zZzogU3RyaW5n LAorK30KKysKKytpbXBsIEVycm9yIHsKKysgICAgcHViIGZuIG5ldyhzcGFuOiBTcGFuLCBtc2c6 IGltcGwgRGlzcGxheSkgLT4gU2VsZiB7CisrICAgICAgICBTZWxmOjpuZXcyKHNwYW4sIHNwYW4s IG1zZykKKysgICAgfQorKworKyAgICBwdWIgZm4gbmV3MihiZWdpbjogU3BhbiwgZW5kOiBTcGFu LCBtc2c6IGltcGwgRGlzcGxheSkgLT4gU2VsZiB7CisrICAgICAgICBFcnJvciB7CisrICAgICAg ICAgICAgYmVnaW4sCisrICAgICAgICAgICAgZW5kLAorKyAgICAgICAgICAgIG1zZzogbXNnLnRv X3N0cmluZygpLAorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIHB1YiBmbiBncm91cChncm91 cDogR3JvdXAsIG1zZzogaW1wbCBEaXNwbGF5KSAtPiBTZWxmIHsKKysgICAgICAgIGxldCBtdXQg aXRlciA9IGdyb3VwLnN0cmVhbSgpLmludG9faXRlcigpOworKyAgICAgICAgbGV0IGRlbGltaXRl ciA9IGdyb3VwLnNwYW4oKTsKKysgICAgICAgIGxldCBiZWdpbiA9IGl0ZXIubmV4dCgpLm1hcF9v cihkZWxpbWl0ZXIsIHx0fCB0LnNwYW4oKSk7CisrICAgICAgICBsZXQgZW5kID0gaXRlci5sYXN0 KCkubWFwX29yKGJlZ2luLCB8dHwgdC5zcGFuKCkpOworKyAgICAgICAgU2VsZjo6bmV3MihiZWdp biwgZW5kLCBtc2cpCisrICAgIH0KKysKKysgICAgcHViIGZuIGludG9fY29tcGlsZV9lcnJvcihz ZWxmKSAtPiBUb2tlblN0cmVhbSB7CisrICAgICAgICAvLyBjb21waWxlX2Vycm9yISB7ICRtc2cg fQorKyAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcih2ZWMhWworKyAgICAgICAgICAgIFRv a2VuVHJlZTo6SWRlbnQoSWRlbnQ6Om5ldygiY29tcGlsZV9lcnJvciIsIHNlbGYuYmVnaW4pKSwK KysgICAgICAgICAgICBUb2tlblRyZWU6OlB1bmN0KHsKKysgICAgICAgICAgICAgICAgbGV0IG11 dCBwdW5jdCA9IFB1bmN0OjpuZXcoJyEnLCBTcGFjaW5nOjpBbG9uZSk7CisrICAgICAgICAgICAg ICAgIHB1bmN0LnNldF9zcGFuKHNlbGYuYmVnaW4pOworKyAgICAgICAgICAgICAgICBwdW5jdAor KyAgICAgICAgICAgIH0pLAorKyAgICAgICAgICAgIFRva2VuVHJlZTo6R3JvdXAoeworKyAgICAg ICAgICAgICAgICBsZXQgbXV0IGdyb3VwID0gR3JvdXA6Om5ldyhEZWxpbWl0ZXI6OkJyYWNlLCB7 CisrICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKHZlYyFbVG9rZW5U cmVlOjpMaXRlcmFsKHsKKysgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHN0cmluZyA9 IExpdGVyYWw6OnN0cmluZygmc2VsZi5tc2cpOworKyAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmluZy5zZXRfc3BhbihzZWxmLmVuZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5n CisrICAgICAgICAgICAgICAgICAgICB9KV0pCisrICAgICAgICAgICAgICAgIH0pOworKyAgICAg ICAgICAgICAgICBncm91cC5zZXRfc3BhbihzZWxmLmVuZCk7CisrICAgICAgICAgICAgICAgIGdy b3VwCisrICAgICAgICAgICAgfSksCisrICAgICAgICBdKQorKyAgICB9CisrfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cGFuZC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cGFuZC5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4 cGFuZC5ycworQEAgLTAsMCArMSwxMDAgQEAKKyt1c2UgY3JhdGU6OmF0dHI6OntzZWxmLCBUaGVu fTsKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNlIGNyYXRlOjp7Y29u c3RmbiwgZXhwciwgaXRlciwgdG9rZW59OworK3VzZSBwcm9jX21hY3JvOjp7RGVsaW1pdGVyLCBH cm91cCwgSWRlbnQsIFB1bmN0LCBTcGFjaW5nLCBTcGFuLCBUb2tlblN0cmVhbSwgVG9rZW5UcmVl fTsKKyt1c2Ugc3RkOjppdGVyOjpGcm9tSXRlcmF0b3I7CisrCisrcHViIGZuIGNmZyhpbnRyb2R1 Y2VyOiAmc3RyLCBhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tl blN0cmVhbSB7CisrICAgIHRyeV9jZmcoaW50cm9kdWNlciwgYXJncywgaW5wdXQpLnVud3JhcF9v cl9lbHNlKEVycm9yOjppbnRvX2NvbXBpbGVfZXJyb3IpCisrfQorKworK2ZuIHRyeV9jZmcoaW50 cm9kdWNlcjogJnN0ciwgYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4g UmVzdWx0PFRva2VuU3RyZWFtPiB7CisrICAgIGxldCBpbnRyb2R1Y2VyID0gSWRlbnQ6Om5ldyhp bnRyb2R1Y2VyLCBTcGFuOjpjYWxsX3NpdGUoKSk7CisrCisrICAgIGxldCBtdXQgZnVsbF9hcmdz ID0gVG9rZW5TdHJlYW06OmZyb20oVG9rZW5UcmVlOjpJZGVudChpbnRyb2R1Y2VyKSk7CisrICAg IGlmICFhcmdzLmlzX2VtcHR5KCkgeworKyAgICAgICAgZnVsbF9hcmdzLmV4dGVuZChzdGQ6Oml0 ZXI6Om9uY2UoVG9rZW5UcmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgIERlbGlt aXRlcjo6UGFyZW50aGVzaXMsCisrICAgICAgICAgICAgYXJncywKKysgICAgICAgICkpKSk7Cisr ICAgIH0KKysKKysgICAgbGV0IHJlZiBtdXQgZnVsbF9hcmdzID0gaXRlcjo6bmV3KGZ1bGxfYXJn cyk7CisrICAgIGxldCBleHByID0gZXhwcjo6cGFyc2UoZnVsbF9hcmdzKT87CisrICAgIHRva2Vu OjpwYXJzZV9lbmQoZnVsbF9hcmdzKT87CisrCisrICAgIGlmIGV4cHIuZXZhbChjcmF0ZTo6UlVT VFZFUlNJT04pIHsKKysgICAgICAgIE9rKGFsbG93X2luY29tcGF0aWJsZV9tc3J2KGlucHV0KSkK KysgICAgfSBlbHNlIHsKKysgICAgICAgIE9rKFRva2VuU3RyZWFtOjpuZXcoKSkKKysgICAgfQor K30KKysKKytwdWIgZm4gdHJ5X2F0dHIoYXJnczogYXR0cjo6QXJncywgaW5wdXQ6IFRva2VuU3Ry ZWFtKSAtPiBSZXN1bHQ8VG9rZW5TdHJlYW0+IHsKKysgICAgaWYgIWFyZ3MuY29uZGl0aW9uLmV2 YWwoY3JhdGU6OlJVU1RWRVJTSU9OKSB7CisrICAgICAgICByZXR1cm4gT2soaW5wdXQpOworKyAg ICB9CisrCisrICAgIGxldCBvdXRwdXQgPSBtYXRjaCBhcmdzLnRoZW4geworKyAgICAgICAgVGhl bjo6Q29uc3QoY29uc3RfdG9rZW4pID0+IGNvbnN0Zm46Omluc2VydF9jb25zdChpbnB1dCwgY29u c3RfdG9rZW4pPywKKysgICAgICAgIFRoZW46OkF0dHJpYnV0ZSh0aGVuKSA9PiB7CisrICAgICAg ICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcigKKysgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cihhbGwoKSwgI3RoZW4pXQorKyAgICAgICAgICAgICAgICB2ZWMhWworKyAgICAgICAgICAg ICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCcjJywgU3BhY2luZzo6QWxvbmUp KSwKKysgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysg ICAgICAgICAgICAgICAgICAgICAgICBEZWxpbWl0ZXI6OkJyYWNrZXQsCisrICAgICAgICAgICAg ICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcih2ZWMhWworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElkZW50OjpuZXcoImNmZ19hdHRyIiwgU3Bh bjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVl OjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVs aW1pdGVyOjpQYXJlbnRoZXNpcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv a2VuU3RyZWFtOjpmcm9tX2l0ZXIoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmVjIVsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U cmVlOjpJZGVudChJZGVudDo6bmV3KCJhbGwiLCBTcGFuOjpjYWxsX3NpdGUoKSkpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6Okdyb3VwKEdyb3Vw OjpuZXcoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxp bWl0ZXI6OlBhcmVudGhlc2lzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVG9rZW5TdHJlYW06Om5ldygpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCcsJywgU3BhY2luZzo6QWxvbmUpKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLmludG9faXRlcigpCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLmNoYWluKHRoZW4pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCisrICAgICAgICAgICAgICAg ICAgICAgICAgXSksCisrICAgICAgICAgICAgICAgICAgICApKSwKKysgICAgICAgICAgICAgICAg XQorKyAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKKysgICAgICAgICAgICAgICAgLmNoYWlu KGlucHV0KSwKKysgICAgICAgICAgICApCisrICAgICAgICB9CisrICAgIH07CisrCisrICAgIE9r KGFsbG93X2luY29tcGF0aWJsZV9tc3J2KG91dHB1dCkpCisrfQorKworK2ZuIGFsbG93X2luY29t cGF0aWJsZV9tc3J2KGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBU b2tlblN0cmVhbTo6ZnJvbV9pdGVyKAorKyAgICAgICAgLy8gI1thbGxvdyhjbGlwcHk6OmluY29t cGF0aWJsZV9tc3J2KV0KKysgICAgICAgIHZlYyFbCisrICAgICAgICAgICAgVG9rZW5UcmVlOjpQ dW5jdChQdW5jdDo6bmV3KCcjJywgU3BhY2luZzo6QWxvbmUpKSwKKysgICAgICAgICAgICBUb2tl blRyZWU6Okdyb3VwKEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgIERlbGltaXRlcjo6QnJh Y2tldCwKKysgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcih2ZWMhWworKyAg ICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJhbGxvdyIsIFNw YW46OmNhbGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6Okdyb3Vw KEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgICAgICAgICAgRGVsaW1pdGVyOjpQYXJlbnRo ZXNpcywKKysgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKHZl YyFbCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6 Om5ldygiY2xpcHB5IiwgU3Bhbjo6Y2FsbF9zaXRlKCkpKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6bmV3KCc6JywgU3BhY2luZzo6Sm9pbnQp KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdChQdW5jdDo6 bmV3KCc6JywgU3BhY2luZzo6QWxvbmUpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg VG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3KCJpbmNvbXBhdGlibGVfbXNydiIsIFNwYW46OmNh bGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICAgICAgXSksCisrICAgICAgICAgICAg ICAgICAgICApKSwKKysgICAgICAgICAgICAgICAgXSksCisrICAgICAgICAgICAgKSksCisrICAg ICAgICBdCisrICAgICAgICAuaW50b19pdGVyKCkKKysgICAgICAgIC5jaGFpbihpbnB1dCksCisr ICAgICkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMv ZXhwci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2V4cHIucnMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3NyYy9leHByLnJzCitAQCAtMCwwICsxLDE2MyBAQAorK3VzZSBjcmF0ZTo6Ym91 bmQ6OntzZWxmLCBCb3VuZH07CisrdXNlIGNyYXRlOjpkYXRlOjp7c2VsZiwgRGF0ZX07CisrdXNl IGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9OworK3VzZSBjcmF0ZTo6aXRlcjo6e3NlbGYs IEl0ZXJ9OworK3VzZSBjcmF0ZTo6cmVsZWFzZTo6e3NlbGYsIFJlbGVhc2V9OworK3VzZSBjcmF0 ZTo6dG9rZW47CisrdXNlIGNyYXRlOjp2ZXJzaW9uOjp7Q2hhbm5lbCwgVmVyc2lvbn07CisrdXNl IHByb2NfbWFjcm86OntJZGVudCwgU3BhbiwgVG9rZW5UcmVlfTsKKysKKytwdWIgZW51bSBFeHBy IHsKKysgICAgU3RhYmxlLAorKyAgICBCZXRhLAorKyAgICBOaWdodGx5LAorKyAgICBEYXRlKERh dGUpLAorKyAgICBTaW5jZShCb3VuZCksCisrICAgIEJlZm9yZShCb3VuZCksCisrICAgIFJlbGVh c2UoUmVsZWFzZSksCisrICAgIE5vdChCb3g8RXhwcj4pLAorKyAgICBBbnkoVmVjPEV4cHI+KSwK KysgICAgQWxsKFZlYzxFeHByPiksCisrfQorKworK2ltcGwgRXhwciB7CisrICAgIHB1YiBmbiBl dmFsKCZzZWxmLCBydXN0YzogVmVyc2lvbikgLT4gYm9vbCB7CisrICAgICAgICB1c2Ugc2VsZjo6 RXhwcjo6KjsKKysKKysgICAgICAgIG1hdGNoIHNlbGYgeworKyAgICAgICAgICAgIFN0YWJsZSA9 PiBydXN0Yy5jaGFubmVsID09IENoYW5uZWw6OlN0YWJsZSwKKysgICAgICAgICAgICBCZXRhID0+ IHJ1c3RjLmNoYW5uZWwgPT0gQ2hhbm5lbDo6QmV0YSwKKysgICAgICAgICAgICBOaWdodGx5ID0+ IG1hdGNoIHJ1c3RjLmNoYW5uZWwgeworKyAgICAgICAgICAgICAgICBDaGFubmVsOjpOaWdodGx5 KF8pIHwgQ2hhbm5lbDo6RGV2ID0+IHRydWUsCisrICAgICAgICAgICAgICAgIENoYW5uZWw6OlN0 YWJsZSB8IENoYW5uZWw6OkJldGEgPT4gZmFsc2UsCisrICAgICAgICAgICAgfSwKKysgICAgICAg ICAgICBEYXRlKGRhdGUpID0+IG1hdGNoIHJ1c3RjLmNoYW5uZWwgeworKyAgICAgICAgICAgICAg ICBDaGFubmVsOjpOaWdodGx5KHJ1c3RjKSA9PiBydXN0YyA9PSAqZGF0ZSwKKysgICAgICAgICAg ICAgICAgQ2hhbm5lbDo6U3RhYmxlIHwgQ2hhbm5lbDo6QmV0YSB8IENoYW5uZWw6OkRldiA9PiBm YWxzZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgICAgIFNpbmNlKGJvdW5kKSA9PiBydXN0 YyA+PSAqYm91bmQsCisrICAgICAgICAgICAgQmVmb3JlKGJvdW5kKSA9PiBydXN0YyA8ICpib3Vu ZCwKKysgICAgICAgICAgICBSZWxlYXNlKHJlbGVhc2UpID0+IHsKKysgICAgICAgICAgICAgICAg cnVzdGMuY2hhbm5lbCA9PSBDaGFubmVsOjpTdGFibGUKKysgICAgICAgICAgICAgICAgICAgICYm IHJ1c3RjLm1pbm9yID09IHJlbGVhc2UubWlub3IKKysgICAgICAgICAgICAgICAgICAgICYmIHJl bGVhc2UucGF0Y2gubWFwX29yKHRydWUsIHxwYXRjaHwgcnVzdGMucGF0Y2ggPT0gcGF0Y2gpCisr ICAgICAgICAgICAgfQorKyAgICAgICAgICAgIE5vdChleHByKSA9PiAhZXhwci5ldmFsKHJ1c3Rj KSwKKysgICAgICAgICAgICBBbnkoZXhwcnMpID0+IGV4cHJzLml0ZXIoKS5hbnkofGV8IGUuZXZh bChydXN0YykpLAorKyAgICAgICAgICAgIEFsbChleHBycykgPT4gZXhwcnMuaXRlcigpLmFsbCh8 ZXwgZS5ldmFsKHJ1c3RjKSksCisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrcHViIGZuIHBh cnNlKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIG1hdGNoICZpdGVyLm5leHQo KSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5nKCkg PT0gInN0YWJsZSIgPT4gcGFyc2Vfc3RhYmxlKGl0ZXIpLAorKyAgICAgICAgU29tZShUb2tlblRy ZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJiZXRhIiA9PiBPayhFeHByOjpCZXRh KSwKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9 PSAibmlnaHRseSIgPT4gcGFyc2VfbmlnaHRseShpdGVyKSwKKysgICAgICAgIFNvbWUoVG9rZW5U cmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAic2luY2UiID0+IHBhcnNlX3NpbmNl KGksIGl0ZXIpLAorKyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0 cmluZygpID09ICJiZWZvcmUiID0+IHBhcnNlX2JlZm9yZShpLCBpdGVyKSwKKysgICAgICAgIFNv bWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAibm90IiA9PiBwYXJz ZV9ub3QoaSwgaXRlciksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGku dG9fc3RyaW5nKCkgPT0gImFueSIgPT4gcGFyc2VfYW55KGksIGl0ZXIpLAorKyAgICAgICAgU29t ZShUb2tlblRyZWU6OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJhbGwiID0+IHBhcnNl X2FsbChpLCBpdGVyKSwKKysgICAgICAgIHVuZXhwZWN0ZWQgPT4geworKyAgICAgICAgICAgIGxl dCBzcGFuID0gdW5leHBlY3RlZAorKyAgICAgICAgICAgICAgICAuYXNfcmVmKCkKKysgICAgICAg ICAgICAgICAgLm1hcF9vcl9lbHNlKFNwYW46OmNhbGxfc2l0ZSwgVG9rZW5UcmVlOjpzcGFuKTsK KysgICAgICAgICAgICBFcnIoRXJyb3I6Om5ldyhzcGFuLCAiZXhwZWN0ZWQgb25lIG9mIGBzdGFi bGVgLCBgYmV0YWAsIGBuaWdodGx5YCwgYHNpbmNlYCwgYGJlZm9yZWAsIGBub3RgLCBgYW55YCwg YGFsbGAiKSkKKysgICAgICAgIH0KKysgICAgfQorK30KKysKKytmbiBwYXJzZV9uaWdodGx5KGl0 ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJlbiA9IG1hdGNoIHRva2Vu OjpwYXJzZV9vcHRpb25hbF9wYXJlbihpdGVyKSB7CisrICAgICAgICBTb21lKGdyb3VwKSA9PiBn cm91cCwKKysgICAgICAgIE5vbmUgPT4gcmV0dXJuIE9rKEV4cHI6Ok5pZ2h0bHkpLAorKyAgICB9 OworKworKyAgICBsZXQgcmVmIG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7 CisrICAgIGxldCBkYXRlID0gZGF0ZTo6cGFyc2UocGFyZW4sIGlubmVyKT87CisrICAgIHRva2Vu OjpwYXJzZV9vcHRpb25hbF9wdW5jdChpbm5lciwgJywnKTsKKysgICAgdG9rZW46OnBhcnNlX2Vu ZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpEYXRlKGRhdGUpKQorK30KKysKKytmbiBwYXJz ZV9zdGFibGUoaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBhcmVuID0g bWF0Y2ggdG9rZW46OnBhcnNlX29wdGlvbmFsX3BhcmVuKGl0ZXIpIHsKKysgICAgICAgIFNvbWUo Z3JvdXApID0+IGdyb3VwLAorKyAgICAgICAgTm9uZSA9PiByZXR1cm4gT2soRXhwcjo6U3RhYmxl KSwKKysgICAgfTsKKysKKysgICAgbGV0IHJlZiBtdXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4u c3RyZWFtKCkpOworKyAgICBsZXQgcmVsZWFzZSA9IHJlbGVhc2U6OnBhcnNlKHBhcmVuLCBpbm5l cik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcHVuY3QoaW5uZXIsICcsJyk7CisrICAg IHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysKKysgICAgT2soRXhwcjo6UmVsZWFzZShyZWxl YXNlKSkKKyt9CisrCisrZm4gcGFyc2Vfc2luY2UoaW50cm9kdWNlcjogJklkZW50LCBpdGVyOiBJ dGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4gPSB0b2tlbjo6cGFyc2VfcGFy ZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVmIG11dCBpbm5lciA9IGl0ZXI6 Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBib3VuZCA9IGJvdW5kOjpwYXJzZShwYXJl biwgaW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlubmVyLCAnLCcp OworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6OlNpbmNl KGJvdW5kKSkKKyt9CisrCisrZm4gcGFyc2VfYmVmb3JlKGludHJvZHVjZXI6ICZJZGVudCwgaXRl cjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBhcmVuID0gdG9rZW46OnBhcnNl X3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAgbGV0IHJlZiBtdXQgaW5uZXIgPSBp dGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgYm91bmQgPSBib3VuZDo6cGFyc2Uo cGFyZW4sIGlubmVyKT87CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5jdChpbm5lciwg JywnKTsKKysgICAgdG9rZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpC ZWZvcmUoYm91bmQpKQorK30KKysKKytmbiBwYXJzZV9ub3QoaW50cm9kdWNlcjogJklkZW50LCBp dGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4gPSB0b2tlbjo6cGFy c2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVmIG11dCBpbm5lciA9 IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBleHByID0gc2VsZjo6cGFyc2Uo aW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlubmVyLCAnLCcpOwor KyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6Ok5vdChCb3g6 Om5ldyhleHByKSkpCisrfQorKworK2ZuIHBhcnNlX2FueShpbnRyb2R1Y2VyOiAmSWRlbnQsIGl0 ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJlbiA9IHRva2VuOjpwYXJz ZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAgIGxldCByZWYgbXV0IGlubmVyID0g aXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IGV4cHJzID0gcGFyc2VfY29tbWFf c2VwYXJhdGVkKGlubmVyKT87CisrCisrICAgIE9rKEV4cHI6OkFueShleHBycy5pbnRvX2l0ZXIo KS5jb2xsZWN0KCkpKQorK30KKysKKytmbiBwYXJzZV9hbGwoaW50cm9kdWNlcjogJklkZW50LCBp dGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFyZW4gPSB0b2tlbjo6cGFy c2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQgcmVmIG11dCBpbm5lciA9 IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBleHBycyA9IHBhcnNlX2NvbW1h X3NlcGFyYXRlZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpBbGwoZXhwcnMuaW50b19pdGVy KCkuY29sbGVjdCgpKSkKKyt9CisrCisrZm4gcGFyc2VfY29tbWFfc2VwYXJhdGVkKGl0ZXI6IEl0 ZXIpIC0+IFJlc3VsdDxWZWM8RXhwcj4+IHsKKysgICAgbGV0IG11dCBleHBycyA9IFZlYzo6bmV3 KCk7CisrCisrICAgIHdoaWxlIGl0ZXIucGVlaygpLmlzX3NvbWUoKSB7CisrICAgICAgICBsZXQg ZXhwciA9IHNlbGY6OnBhcnNlKGl0ZXIpPzsKKysgICAgICAgIGV4cHJzLnB1c2goZXhwcik7Cisr ICAgICAgICBpZiBpdGVyLnBlZWsoKS5pc19ub25lKCkgeworKyAgICAgICAgICAgIGJyZWFrOwor KyAgICAgICAgfQorKyAgICAgICAgdG9rZW46OnBhcnNlX3B1bmN0KGl0ZXIsICcsJyk/OworKyAg ICB9CisrCisrICAgIE9rKGV4cHJzKQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3NyYy9pdGVyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9z cmMvaXRlci5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2l0ZXIucnMKK0BAIC0wLDAgKzEsNDIgQEAK Kyt1c2UgcHJvY19tYWNybzo6e3Rva2VuX3N0cmVhbSwgRGVsaW1pdGVyLCBUb2tlblN0cmVhbSwg VG9rZW5UcmVlfTsKKysKKytwdWIgdHlwZSBJdGVyPCdhPiA9ICYnYSBtdXQgSXRlckltcGw7Cisr CisrcHViIHN0cnVjdCBJdGVySW1wbCB7CisrICAgIHN0YWNrOiBWZWM8dG9rZW5fc3RyZWFtOjpJ bnRvSXRlcj4sCisrICAgIHBlZWtlZDogT3B0aW9uPFRva2VuVHJlZT4sCisrfQorKworK3B1YiBm biBuZXcodG9rZW5zOiBUb2tlblN0cmVhbSkgLT4gSXRlckltcGwgeworKyAgICBJdGVySW1wbCB7 CisrICAgICAgICBzdGFjazogdmVjIVt0b2tlbnMuaW50b19pdGVyKCldLAorKyAgICAgICAgcGVl a2VkOiBOb25lLAorKyAgICB9CisrfQorKworK2ltcGwgSXRlckltcGwgeworKyAgICBwdWIgZm4g cGVlaygmbXV0IHNlbGYpIC0+IE9wdGlvbjwmVG9rZW5UcmVlPiB7CisrICAgICAgICBzZWxmLnBl ZWtlZCA9IHNlbGYubmV4dCgpOworKyAgICAgICAgc2VsZi5wZWVrZWQuYXNfcmVmKCkKKysgICAg fQorK30KKysKKytpbXBsIEl0ZXJhdG9yIGZvciBJdGVySW1wbCB7CisrICAgIHR5cGUgSXRlbSA9 IFRva2VuVHJlZTsKKysKKysgICAgZm4gbmV4dCgmbXV0IHNlbGYpIC0+IE9wdGlvbjxTZWxmOjpJ dGVtPiB7CisrICAgICAgICBpZiBsZXQgU29tZSh0dCkgPSBzZWxmLnBlZWtlZC50YWtlKCkgewor KyAgICAgICAgICAgIHJldHVybiBTb21lKHR0KTsKKysgICAgICAgIH0KKysgICAgICAgIGxvb3Ag eworKyAgICAgICAgICAgIGxldCB0b3AgPSBzZWxmLnN0YWNrLmxhc3RfbXV0KCk/OworKyAgICAg ICAgICAgIG1hdGNoIHRvcC5uZXh0KCkgeworKyAgICAgICAgICAgICAgICBOb25lID0+IGRyb3Ao c2VsZi5zdGFjay5wb3AoKSksCisrICAgICAgICAgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91 cChyZWYgZ3JvdXApKSBpZiBncm91cC5kZWxpbWl0ZXIoKSA9PSBEZWxpbWl0ZXI6Ok5vbmUgPT4g eworKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFjay5wdXNoKGdyb3VwLnN0cmVhbSgpLmlu dG9faXRlcigpKTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICBTb21lKHR0 KSA9PiByZXR1cm4gU29tZSh0dCksCisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9 CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2xpYi5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2xpYi5ycworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vc3JjL2xpYi5ycworQEAgLTAsMCArMSwyODEgQEAKKysvLyEgWyFbZ2l0aHViXV0oaHR0cHM6 Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24pJmVuc3A7WyFbY3JhdGVzLWlvXV0oaHR0 cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3J1c3R2ZXJzaW9uKSZlbnNwO1shW2RvY3MtcnNdXShodHRw czovL2RvY3MucnMvcnVzdHZlcnNpb24pCisrLy8hCisrLy8hIFtnaXRodWJdOiBodHRwczovL2lt Zy5zaGllbGRzLmlvL2JhZGdlL2dpdGh1Yi04ZGEwY2I/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsYWJl bENvbG9yPTU1NTU1NSZsb2dvPWdpdGh1YgorKy8vISBbY3JhdGVzLWlvXTogaHR0cHM6Ly9pbWcu c2hpZWxkcy5pby9iYWRnZS9jcmF0ZXMuaW8tZmM4ZDYyP3N0eWxlPWZvci10aGUtYmFkZ2UmbGFi ZWxDb2xvcj01NTU1NTUmbG9nbz1ydXN0CisrLy8hIFtkb2NzLXJzXTogaHR0cHM6Ly9pbWcuc2hp ZWxkcy5pby9iYWRnZS9kb2NzLnJzLTY2YzJhNT9zdHlsZT1mb3ItdGhlLWJhZGdlJmxhYmVsQ29s b3I9NTU1NTU1JmxvZ289ZG9jcy5ycworKy8vIQorKy8vISA8YnI+CisrLy8hCisrLy8hIFRoaXMg Y3JhdGUgcHJvdmlkZXMgbWFjcm9zIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBhY2NvcmRp bmcgdG8gcnVzdGMKKysvLyEgY29tcGlsZXIgdmVyc2lvbiwgYW5hbG9nb3VzIHRvIFtgI1tjZmco Li4uKV1gXVtjZmddIGFuZAorKy8vISBbYCNbY2ZnX2F0dHIoLi4uKV1gXVtjZmdfYXR0cl0uCisr Ly8hCisrLy8hIFtjZmddOiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3JlZmVyZW5jZS9jb25k aXRpb25hbC1jb21waWxhdGlvbi5odG1sI3RoZS1jZmctYXR0cmlidXRlCisrLy8hIFtjZmdfYXR0 cl06IGh0dHBzOi8vZG9jLnJ1c3QtbGFuZy5vcmcvcmVmZXJlbmNlL2NvbmRpdGlvbmFsLWNvbXBp bGF0aW9uLmh0bWwjdGhlLWNmZ19hdHRyLWF0dHJpYnV0ZQorKy8vIQorKy8vISA8YnI+CisrLy8h CisrLy8hICMgU2VsZWN0b3JzCisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUw cHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5Omlu bGluZSI+I1tydXN0dmVyc2lvbjo6c3RhYmxlXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgor Ky8vISAgIFRydWUgb24gYW55IHN0YWJsZSBjb21waWxlci4KKysvLyEgICA8L3A+CisrLy8hCisr Ly8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8v ISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6c3RhYmxl KDEuMzQpXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUgb24gZXhhY3Rs eSB0aGUgc3BlY2lmaWVkIHN0YWJsZSBjb21waWxlci4KKysvLyEgICA8L3A+CisrLy8hCisrLy8h IC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAg IDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6YmV0YV08L2Nv ZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIGFueSBiZXRhIGNvbXBpbGVy LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0 ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5l Ij4jW3J1c3R2ZXJzaW9uOjpuaWdodGx5XTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8v ISAgIFRydWUgb24gYW55IG5pZ2h0bHkgY29tcGlsZXIgb3IgZGV2IGJ1aWxkLgorKy8vISAgIDwv cD4KKysvLyEKKysvLyEgLSA8cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDot NTBweCI+CisrLy8hICAgPGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJz aW9uOjpuaWdodGx5KDIwMjUtMDEtMDEpXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8v ISAgIFRydWUgb24gZXhhY3RseSBvbmUgbmlnaHRseS4KKysvLyEgICA8L3A+CisrLy8hCisrLy8h IC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAg IDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6c2luY2UoMS4z NCldPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiB0aGF0IHN0YWJs ZSByZWxlYXNlIGFuZCBhbnkgbGF0ZXIgY29tcGlsZXIsIGluY2x1ZGluZyBiZXRhIGFuZAorKy8v ISAgIG5pZ2h0bHkuCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4t bGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlz cGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246OnNpbmNlKDIwMjUtMDEtMDEpXTwvY29kZT48L2I+ CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUgb24gdGhhdCBuaWdodGx5IGFuZCBhbGwgbmV3 ZXIgb25lcy4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0 OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5 OmlubGluZSI+I1tydXN0dmVyc2lvbjo6YmVmb3JlKDwvY29kZT48L2I+PGk+dmVyc2lvbiBvciBk YXRlPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KV08L2NvZGU+PC9iPgorKy8v ISAgIOKAlDxicj4KKysvLyEgICBOZWdhdGl2ZSBvZiA8aT4jW3J1c3R2ZXJzaW9uOjpzaW5jZSgu Li4pXTwvaT4uCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVm dDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxh eTppbmxpbmUiPiNbcnVzdHZlcnNpb246Om5vdCg8L2NvZGU+PC9iPjxpPnNlbGVjdG9yPC9pPjxi Pjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxi cj4KKysvLyEgICBOZWdhdGl2ZSBvZiBhbnkgc2VsZWN0b3I7IGZvciBleGFtcGxlIDxpPiNbcnVz dHZlcnNpb246Om5vdChuaWdodGx5KV08L2k+LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8 cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+ PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjphbnkoPC9jb2RlPjwv Yj48aT5zZWxlY3RvcnMuLi48L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4pXTwv Y29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRydWUgaWYgYW55IG9mIHRoZSBjb21t YS1zZXBhcmF0ZWQgc2VsZWN0b3JzIGlzIHRydWU7IGZvciBleGFtcGxlCisrLy8hICAgPGk+I1ty dXN0dmVyc2lvbjo6YW55KHN0YWJsZSwgYmV0YSldPC9pPi4KKysvLyEgICA8L3A+CisrLy8hCisr Ly8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8v ISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6YWxsKDwv Y29kZT48L2I+PGk+c2VsZWN0b3JzLi4uPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGlu ZSI+KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIGlmIGFsbCBvZiB0 aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBhcmUgdHJ1ZTsgZm9yIGV4YW1wbGUKKysvLyEg ICA8aT4jW3J1c3R2ZXJzaW9uOjphbGwoc2luY2UoMS4zMSksIGJlZm9yZSgxLjM0KSldPC9pPi4K KysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4 dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+ I1tydXN0dmVyc2lvbjo6YXR0cig8L2NvZGU+PC9iPjxpPnNlbGVjdG9yPC9pPjxiPjxjb2RlIHN0 eWxlPSJkaXNwbGF5OmlubGluZSI+LCA8L2NvZGU+PC9iPjxpPmF0dHJpYnV0ZTwvaT48Yj48Y29k ZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPildPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+Cisr Ly8hICAgRm9yIGNvbmRpdGlvbmFsIGluY2x1c2lvbiBvZiBhdHRyaWJ1dGVzOyBhbmFsb2dvdXMg dG8KKysvLyEgICA8Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPmNmZ19hdHRyPC9jb2RlPi4K KysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4 dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+ cnVzdHZlcnNpb246OmNmZyEoPC9jb2RlPjwvYj48aT5zZWxlY3RvcjwvaT48Yj48Y29kZSBzdHls ZT0iZGlzcGxheTppbmxpbmUiPik8L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBB biBleHByZXNzaW9uIGZvcm0gb2YgYW55IG9mIHRoZSBhYm92ZSBhdHRyaWJ1dGVzOyBmb3IgZXhh bXBsZQorKy8vISAgIDxpPmlmIHJ1c3R2ZXJzaW9uOjpjZmchKGFueShzdGFibGUsIGJldGEpKSB7 IC4uLiB9PC9pPi4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIDxicj4KKysvLyEKKysvLyEgIyBV c2UgY2FzZXMKKysvLyEKKysvLyEgUHJvdmlkaW5nIGFkZGl0aW9uYWwgdHJhaXQgaW1wbHMgYXMg dHlwZXMgYXJlIHN0YWJpbGl6ZWQgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkKKysvLyEgd2l0aG91 dCBicmVha2luZyBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgY29tcGlsZXJzOyBpbiB0aGlzIGNh c2UgUGluXDxQXD4KKysvLyEgc3RhYmlsaXplZCBpbiBbUnVzdCAxLjMzXVtwaW5dOgorKy8vIQor Ky8vISBbcGluXTogaHR0cHM6Ly9ibG9nLnJ1c3QtbGFuZy5vcmcvMjAxOS8wMi8yOC9SdXN0LTEu MzMuMC5odG1sI3Bpbm5pbmcKKysvLyEKKysvLyEgYGBgCisrLy8hICMgdHJhaXQgTXlUcmFpdCB7 fQorKy8vISAjCisrLy8hICNbcnVzdHZlcnNpb246OnNpbmNlKDEuMzMpXQorKy8vISB1c2Ugc3Rk OjpwaW46OlBpbjsKKysvLyEKKysvLyEgI1tydXN0dmVyc2lvbjo6c2luY2UoMS4zMyldCisrLy8h IGltcGw8UDogTXlUcmFpdD4gTXlUcmFpdCBmb3IgUGluPFA+IHsKKysvLyEgICAgIC8qIC4uLiAq LworKy8vISB9CisrLy8hIGBgYAorKy8vIQorKy8vISBTaW1pbGFyIGJ1dCBmb3IgbGFuZ3VhZ2Ug ZmVhdHVyZXM7IHRoZSBhYmlsaXR5IHRvIGNvbnRyb2wgYWxpZ25tZW50IGdyZWF0ZXIgdGhhbgor Ky8vISAxIG9mIHBhY2tlZCBzdHJ1Y3RzIHdhcyBzdGFiaWxpemVkIGluIFtSdXN0IDEuMzNdW3Bh Y2tlZF0uCisrLy8hCisrLy8hIFtwYWNrZWRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L3J1c3QvYmxvYi9tYXN0ZXIvUkVMRUFTRVMubWQjdmVyc2lvbi0xMzMwLTIwMTktMDItMjgKKysv LyEKKysvLyEgYGBgCisrLy8hICNbcnVzdHZlcnNpb246OmF0dHIoYmVmb3JlKDEuMzMpLCByZXBy KHBhY2tlZCkpXQorKy8vISAjW3J1c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEuMzMpLCByZXByKHBh Y2tlZCgyKSkpXQorKy8vISBzdHJ1Y3QgU2l4KGkxNiwgaTMyKTsKKysvLyEKKysvLyEgZm4gbWFp bigpIHsKKysvLyEgICAgIHByaW50bG4hKCJ7fSIsIHN0ZDo6bWVtOjphbGlnbl9vZjo6PFNpeD4o KSk7CisrLy8hIH0KKysvLyEgYGBgCisrLy8hCisrLy8hIEF1Z21lbnRpbmcgY29kZSB3aXRoIGBj b25zdGAgYXMgY29uc3QgaW1wbHMgYXJlIHN0YWJpbGl6ZWQgaW4gdGhlIHN0YW5kYXJkCisrLy8h IGxpYnJhcnkuIFRoaXMgdXNlIG9mIGBjb25zdGAgYXMgYW4gYXR0cmlidXRlIGlzIHJlY29nbml6 ZWQgYXMgYSBzcGVjaWFsIGNhc2UKKysvLyEgYnkgdGhlIHJ1c3R2ZXJzaW9uOjphdHRyIG1hY3Jv LgorKy8vIQorKy8vISBgYGAKKysvLyEgdXNlIHN0ZDo6dGltZTo6RHVyYXRpb247CisrLy8hCisr Ly8hICNbcnVzdHZlcnNpb246OmF0dHIoc2luY2UoMS4zMiksIGNvbnN0KV0KKysvLyEgZm4gZHVy YXRpb25fYXNfZGF5cyhkdXI6IER1cmF0aW9uKSAtPiB1NjQgeworKy8vISAgICAgZHVyLmFzX3Nl Y3MoKSAvIDYwIC8gNjAgLyAyNAorKy8vISB9CisrLy8hIGBgYAorKy8vIQorKy8vISBFbWl0dGlu ZyBDYXJnbyBjZmcgZGlyZWN0aXZlcyBmcm9tIGEgYnVpbGQgc2NyaXB0LiBOb3RlIHRoYXQgdGhp cyByZXF1aXJlcworKy8vISBsaXN0aW5nIGBydXN0dmVyc2lvbmAgdW5kZXIgYFtidWlsZC1kZXBl bmRlbmNpZXNdYCBpbiBDYXJnby50b21sLCBub3QKKysvLyEgYFtkZXBlbmRlbmNpZXNdYC4KKysv LyEKKysvLyEgYGBgCisrLy8hIC8vIGJ1aWxkLnJzCisrLy8hCisrLy8hIGZuIG1haW4oKSB7Cisr Ly8hICAgICBpZiBydXN0dmVyc2lvbjo6Y2ZnIShzaW5jZSgxLjM2KSkgeworKy8vISAgICAgICAg IHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bm9fc3RkIik7CisrLy8hICAgICB9CisrLy8hIH0K KysvLyEgYGBgCisrLy8hCisrLy8hIGBgYAorKy8vISAvLyBzcmMvbGliLnJzCisrLy8hCisrLy8h ICMhW2NmZ19hdHRyKG5vX3N0ZCwgbm9fc3RkKV0KKysvLyEKKysvLyEgI1tjZmcobm9fc3RkKV0K KysvLyEgZXh0ZXJuIGNyYXRlIGFsbG9jOworKy8vISBgYGAKKysvLyEKKysvLyEgPGJyPgorKwor KyMhW2RvYyhodG1sX3Jvb3RfdXJsID0gImh0dHBzOi8vZG9jcy5ycy9ydXN0dmVyc2lvbi8xLjAu MjMiKV0KKysjIVthbGxvdygKKysgICAgY2xpcHB5OjpjYXN0X2xvc3NsZXNzLAorKyAgICBjbGlw cHk6OmNhc3RfcG9zc2libGVfdHJ1bmNhdGlvbiwKKysgICAgY2xpcHB5OjpkZXJpdmVfcGFydGlh bF9lcV93aXRob3V0X2VxLAorKyAgICBjbGlwcHk6OmRvY19tYXJrZG93biwKKysgICAgY2xpcHB5 OjplbnVtX2dsb2JfdXNlLAorKyAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1 c3QtY2xpcHB5L2lzc3Vlcy84NTM5CisrICAgIGNsaXBweTo6aXRlcl93aXRoX2RyYWluLAorKyAg ICBjbGlwcHk6Om1vZHVsZV9uYW1lX3JlcGV0aXRpb25zLAorKyAgICBjbGlwcHk6Om11c3RfdXNl X2NhbmRpZGF0ZSwKKysgICAgY2xpcHB5OjpuZWVkbGVzc19kb2N0ZXN0X21haW4sCisrICAgIGNs aXBweTo6bmVlZGxlc3NfcGFzc19ieV92YWx1ZSwKKysgICAgY2xpcHB5OjpyZWR1bmRhbnRfZWxz ZSwKKysgICAgY2xpcHB5Ojp0b3BsZXZlbF9yZWZfYXJnLAorKyAgICBjbGlwcHk6OnVucmVhZGFi bGVfbGl0ZXJhbAorKyldCisrCisrZXh0ZXJuIGNyYXRlIHByb2NfbWFjcm87CisrCisrbW9kIGF0 dHI7CisrbW9kIGJvdW5kOworK21vZCBjb25zdGZuOworK21vZCBkYXRlOworK21vZCBlcnJvcjsK Kyttb2QgZXhwYW5kOworK21vZCBleHByOworK21vZCBpdGVyOworK21vZCByZWxlYXNlOworK21v ZCB0aW1lOworK21vZCB0b2tlbjsKKyttb2QgdmVyc2lvbjsKKysKKyt1c2UgY3JhdGU6OmVycm9y OjpFcnJvcjsKKyt1c2UgY3JhdGU6OnZlcnNpb246OlZlcnNpb247CisrdXNlIHByb2NfbWFjcm86 OlRva2VuU3RyZWFtOworKworKyNbY2ZnKG5vdChob3N0X29zID0gIndpbmRvd3MiKSldCisrY29u c3QgUlVTVFZFUlNJT046IFZlcnNpb24gPSBpbmNsdWRlIShjb25jYXQhKGVudiEoIk9VVF9ESVIi KSwgIi92ZXJzaW9uLmV4cHIiKSk7CisrCisrI1tjZmcoaG9zdF9vcyA9ICJ3aW5kb3dzIildCisr Y29uc3QgUlVTVFZFUlNJT046IFZlcnNpb24gPSBpbmNsdWRlIShjb25jYXQhKGVudiEoIk9VVF9E SVIiKSwgIlxcdmVyc2lvbi5leHByIikpOworKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisr cHViIGZuIHN0YWJsZShhcmdzOiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBU b2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJzdGFibGUiLCBhcmdzLCBpbnB1dCkKKyt9 CisrCisrI1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gYmV0YShhcmdzOiBUb2tlblN0 cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6 Y2ZnKCJiZXRhIiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVd CisrcHViIGZuIG5pZ2h0bHkoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkg LT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygibmlnaHRseSIsIGFyZ3MsIGlucHV0 KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBzaW5jZShhcmdzOiBU b2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4 cGFuZDo6Y2ZnKCJzaW5jZSIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0 cmlidXRlXQorK3B1YiBmbiBiZWZvcmUoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0 cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygiYmVmb3JlIiwgYXJncywg aW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisrcHViIGZuIG5vdChhcmdz OiBUb2tlblN0cmVhbSwgaW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAg IGV4cGFuZDo6Y2ZnKCJub3QiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1twcm9jX21hY3JvX2F0 dHJpYnV0ZV0KKytwdWIgZm4gYW55KGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDogVG9rZW5TdHJl YW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoImFueSIsIGFyZ3MsIGlucHV0 KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBhbGwoYXJnczogVG9r ZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBh bmQ6OmNmZygiYWxsIiwgYXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1 dGVdCisrcHViIGZuIGF0dHIoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkg LT4gVG9rZW5TdHJlYW0geworKyAgICBhdHRyOjpwYXJzZShhcmdzKQorKyAgICAgICAgLmFuZF90 aGVuKHxhcmdzfCBleHBhbmQ6OnRyeV9hdHRyKGFyZ3MsIGlucHV0KSkKKysgICAgICAgIC51bndy YXBfb3JfZWxzZShFcnJvcjo6aW50b19jb21waWxlX2Vycm9yKQorK30KKysKKysjW2NmZyhub3Qo Y2ZnX21hY3JvX25vdF9hbGxvd2VkKSldCisrI1twcm9jX21hY3JvXQorK3B1YiBmbiBjZmcoaW5w dXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIHVzZSBwcm9jX21hY3JvOjp7 SWRlbnQsIFNwYW4sIFRva2VuVHJlZX07CisrICAgICh8fCB7CisrICAgICAgICBsZXQgcmVmIG11 dCBhcmdzID0gaXRlcjo6bmV3KGlucHV0KTsKKysgICAgICAgIGxldCBleHByID0gZXhwcjo6cGFy c2UoYXJncyk/OworKyAgICAgICAgdG9rZW46OnBhcnNlX2VuZChhcmdzKT87CisrICAgICAgICBs ZXQgYm9vbGVhbiA9IGV4cHIuZXZhbChSVVNUVkVSU0lPTik7CisrICAgICAgICBsZXQgaWRlbnQg PSBJZGVudDo6bmV3KCZib29sZWFuLnRvX3N0cmluZygpLCBTcGFuOjpjYWxsX3NpdGUoKSk7Cisr ICAgICAgICBPayhUb2tlblN0cmVhbTo6ZnJvbShUb2tlblRyZWU6OklkZW50KGlkZW50KSkpCisr ICAgIH0pKCkKKysgICAgLnVud3JhcF9vcl9lbHNlKEVycm9yOjppbnRvX2NvbXBpbGVfZXJyb3Ip CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3JlbGVh c2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9yZWxlYXNlLnJzCituZXcg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9zcmMvcmVsZWFzZS5ycworQEAgLTAsMCArMSwzNCBAQAorK3VzZSBjcmF0ZTo6 ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0ZXI6Okl0ZXI7CisrdXNlIGNy YXRlOjp0b2tlbjsKKyt1c2UgcHJvY19tYWNybzo6R3JvdXA7CisrCisrI1tkZXJpdmUoQ29weSwg Q2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQpXQorK3B1YiBzdHJ1 Y3QgUmVsZWFzZSB7CisrICAgIHB1YiBtaW5vcjogdTE2LAorKyAgICBwdWIgcGF0Y2g6IE9wdGlv bjx1MTY+LAorK30KKysKKytwdWIgZm4gcGFyc2UocGFyZW46IEdyb3VwLCBpdGVyOiBJdGVyKSAt PiBSZXN1bHQ8UmVsZWFzZT4geworKyAgICB0cnlfcGFyc2UoaXRlcikubWFwX2Vycih8KCl8IEVy cm9yOjpncm91cChwYXJlbiwgImV4cGVjdGVkIHJ1c3RjIHJlbGVhc2UgbnVtYmVyLCBsaWtlIDEu MzEiKSkKKyt9CisrCisrZm4gdHJ5X3BhcnNlKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxSZWxlYXNl LCAoKT4geworKyAgICBsZXQgbWFqb3JfbWlub3IgPSB0b2tlbjo6cGFyc2VfbGl0ZXJhbChpdGVy KS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IHN0cmluZyA9IG1ham9yX21pbm9yLnRvX3N0cmlu ZygpOworKworKyAgICBpZiAhc3RyaW5nLnN0YXJ0c193aXRoKCIxLiIpIHsKKysgICAgICAgIHJl dHVybiBFcnIoKCkpOworKyAgICB9CisrCisrICAgIGxldCBtaW5vcjogdTE2ID0gc3RyaW5nWzIu Ll0ucGFyc2UoKS5tYXBfZXJyKGRyb3ApPzsKKysKKysgICAgbGV0IHBhdGNoID0gaWYgdG9rZW46 OnBhcnNlX29wdGlvbmFsX3B1bmN0KGl0ZXIsICcuJykuaXNfc29tZSgpIHsKKysgICAgICAgIGxl dCBpbnQgPSB0b2tlbjo6cGFyc2VfbGl0ZXJhbChpdGVyKS5tYXBfZXJyKGRyb3ApPzsKKysgICAg ICAgIFNvbWUoaW50LnRvX3N0cmluZygpLnBhcnNlKCkubWFwX2Vycihkcm9wKT8pCisrICAgIH0g ZWxzZSB7CisrICAgICAgICBOb25lCisrICAgIH07CisrCisrICAgIE9rKFJlbGVhc2UgeyBtaW5v ciwgcGF0Y2ggfSkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi9zcmMvdGltZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3RpbWUucnMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3NyYy90aW1lLnJzCitAQCAtMCwwICsxLDUxIEBACisrdXNlIGNyYXRl OjpkYXRlOjpEYXRlOworK3VzZSBzdGQ6OmVudjsKKyt1c2Ugc3RkOjp0aW1lOjp7U3lzdGVtVGlt ZSwgVU5JWF9FUE9DSH07CisrCisrLy8gVGltZXN0YW1wIG9mIDIwMTYtMDMtMDEgMDA6MDA6MDAg aW4gVVRDLgorK2NvbnN0IEJBU0U6IHU2NCA9IDE0NTY3OTA0MDA7CisrY29uc3QgQkFTRV9ZRUFS OiB1MTYgPSAyMDE2OworK2NvbnN0IEJBU0VfTU9OVEg6IHU4ID0gMzsKKysKKysvLyBEYXlzIGJl dHdlZW4gbGVhcCBkYXlzLgorK2NvbnN0IENZQ0xFOiB1NjQgPSAzNjUgKiA0ICsgMTsKKysKKytj b25zdCBEQVlTX0JZX01PTlRIOiBbdTg7IDEyXSA9IFszMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAz MSwgMzEsIDMwLCAzMSwgMzAsIDMxXTsKKysKKytwdWIgZm4gdG9kYXkoKSAtPiBEYXRlIHsKKysg ICAgbGV0IGRlZmF1bHQgPSBEYXRlIHsKKysgICAgICAgIHllYXI6IDIwMjUsCisrICAgICAgICBt b250aDogMiwKKysgICAgICAgIGRheTogMjUsCisrICAgIH07CisrICAgIHRyeV90b2RheSgpLnVu d3JhcF9vcihkZWZhdWx0KQorK30KKysKKytmbiB0cnlfdG9kYXkoKSAtPiBPcHRpb248RGF0ZT4g eworKyAgICBpZiBsZXQgU29tZShwa2dfbmFtZSkgPSBlbnY6OnZhcl9vcygiQ0FSR09fUEtHX05B TUUiKSB7CisrICAgICAgICBpZiBwa2dfbmFtZS50b19zdHIoKSA9PSBTb21lKCJydXN0dmVyc2lv bi10ZXN0cyIpIHsKKysgICAgICAgICAgICByZXR1cm4gTm9uZTsgLy8gU3RhYmxlIGRhdGUgZm9y IHVpIHRlc3RpbmcuCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgbGV0IG5vdyA9IFN5c3Rl bVRpbWU6Om5vdygpOworKyAgICBsZXQgc2luY2VfZXBvY2ggPSBub3cuZHVyYXRpb25fc2luY2Uo VU5JWF9FUE9DSCkub2soKT87CisrICAgIGxldCBzZWNzID0gc2luY2VfZXBvY2guYXNfc2Vjcygp OworKworKyAgICBsZXQgYXBwcm94X2RheXMgPSBzZWNzLmNoZWNrZWRfc3ViKEJBU0UpPyAvIDYw IC8gNjAgLyAyNDsKKysgICAgbGV0IGN5Y2xlID0gYXBwcm94X2RheXMgLyBDWUNMRTsKKysgICAg bGV0IG11dCByZW0gPSBhcHByb3hfZGF5cyAlIENZQ0xFOworKworKyAgICBsZXQgbXV0IHllYXIg PSBCQVNFX1lFQVIgKyBjeWNsZSBhcyB1MTYgKiA0OworKyAgICBsZXQgbXV0IG1vbnRoID0gQkFT RV9NT05USDsKKysgICAgbG9vcCB7CisrICAgICAgICBsZXQgZGF5c19pbl9tb250aCA9IERBWVNf QllfTU9OVEhbbW9udGggYXMgdXNpemUgLSAxXTsKKysgICAgICAgIGlmIHJlbSA8IGRheXNfaW5f bW9udGggYXMgdTY0IHsKKysgICAgICAgICAgICBsZXQgZGF5ID0gcmVtIGFzIHU4ICsgMTsKKysg ICAgICAgICAgICByZXR1cm4gU29tZShEYXRlIHsgeWVhciwgbW9udGgsIGRheSB9KTsKKysgICAg ICAgIH0KKysgICAgICAgIHJlbSAtPSBkYXlzX2luX21vbnRoIGFzIHU2NDsKKysgICAgICAgIHll YXIgKz0gKG1vbnRoID09IDEyKSBhcyB1MTY7CisrICAgICAgICBtb250aCA9IG1vbnRoICUgMTIg KyAxOworKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vc3JjL3Rva2VuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdG9rZW4u cnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy90b2tlbi5ycworQEAgLTAsMCArMSw3OCBAQAorK3VzZSBj cmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3JhdGU6Oml0ZXI6Okl0ZXI7Cisr dXNlIHByb2NfbWFjcm86OntEZWxpbWl0ZXIsIEdyb3VwLCBJZGVudCwgTGl0ZXJhbCwgU3Bhbiwg VG9rZW5UcmVlfTsKKysKKytwdWIgZm4gcGFyc2VfcHVuY3QoaXRlcjogSXRlciwgY2g6IGNoYXIp IC0+IFJlc3VsdDwoKT4geworKyAgICBtYXRjaCBpdGVyLm5leHQoKSB7CisrICAgICAgICBTb21l KFRva2VuVHJlZTo6UHVuY3QocmVmIHB1bmN0KSkgaWYgcHVuY3QuYXNfY2hhcigpID09IGNoID0+ IE9rKCgpKSwKKysgICAgICAgIHVuZXhwZWN0ZWQgPT4geworKyAgICAgICAgICAgIGxldCBzcGFu ID0gdW5leHBlY3RlZAorKyAgICAgICAgICAgICAgICAuYXNfcmVmKCkKKysgICAgICAgICAgICAg ICAgLm1hcF9vcl9lbHNlKFNwYW46OmNhbGxfc2l0ZSwgVG9rZW5UcmVlOjpzcGFuKTsKKysgICAg ICAgICAgICBFcnIoRXJyb3I6Om5ldyhzcGFuLCBmb3JtYXQhKCJleHBlY3RlZCBge31gIiwgY2gp KSkKKysgICAgICAgIH0KKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2Vfb3B0aW9uYWxfcHVu Y3QoaXRlcjogSXRlciwgY2g6IGNoYXIpIC0+IE9wdGlvbjwoKT4geworKyAgICBtYXRjaCBpdGVy LnBlZWsoKSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6UHVuY3QocHVuY3QpKSBpZiBwdW5j dC5hc19jaGFyKCkgPT0gY2ggPT4gaXRlci5uZXh0KCkubWFwKGRyb3ApLAorKyAgICAgICAgXyA9 PiBOb25lLAorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9vcHRpb25hbF9rZXl3b3JkKGl0 ZXI6IEl0ZXIsIGtleXdvcmQ6ICZzdHIpIC0+IE9wdGlvbjxTcGFuPiB7CisrICAgIG1hdGNoIGl0 ZXIucGVlaygpIHsKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpZGVudCkpIGlmIGlk ZW50LnRvX3N0cmluZygpID09IGtleXdvcmQgPT4geworKyAgICAgICAgICAgIFNvbWUoaXRlci5u ZXh0KCkudW53cmFwKCkuc3BhbigpKQorKyAgICAgICAgfQorKyAgICAgICAgXyA9PiBOb25lLAor KyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9saXRlcmFsKGl0ZXI6IEl0ZXIpIC0+IFJlc3Vs dDxMaXRlcmFsPiB7CisrICAgIG1hdGNoIGl0ZXIubmV4dCgpIHsKKysgICAgICAgIFNvbWUoVG9r ZW5UcmVlOjpMaXRlcmFsKGxpdGVyYWwpKSA9PiBPayhsaXRlcmFsKSwKKysgICAgICAgIHVuZXhw ZWN0ZWQgPT4geworKyAgICAgICAgICAgIGxldCBzcGFuID0gdW5leHBlY3RlZAorKyAgICAgICAg ICAgICAgICAuYXNfcmVmKCkKKysgICAgICAgICAgICAgICAgLm1hcF9vcl9lbHNlKFNwYW46OmNh bGxfc2l0ZSwgVG9rZW5UcmVlOjpzcGFuKTsKKysgICAgICAgICAgICBFcnIoRXJyb3I6Om5ldyhz cGFuLCAiZXhwZWN0ZWQgbGl0ZXJhbCIpKQorKyAgICAgICAgfQorKyAgICB9CisrfQorKworK3B1 YiBmbiBwYXJzZV9wYXJlbihpbnRyb2R1Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3Vs dDxHcm91cD4geworKyAgICBtYXRjaCBpdGVyLnBlZWsoKSB7CisrICAgICAgICBTb21lKFRva2Vu VHJlZTo6R3JvdXAoZ3JvdXApKSBpZiBncm91cC5kZWxpbWl0ZXIoKSA9PSBEZWxpbWl0ZXI6OlBh cmVudGhlc2lzID0+IHsKKysgICAgICAgICAgICBtYXRjaCBpdGVyLm5leHQoKSB7CisrICAgICAg ICAgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChncm91cCkpID0+IE9rKGdyb3VwKSwKKysg ICAgICAgICAgICAgICAgXyA9PiB1bnJlYWNoYWJsZSEoKSwKKysgICAgICAgICAgICB9CisrICAg ICAgICB9CisrICAgICAgICBTb21lKHVuZXhwZWN0ZWQpID0+IEVycihFcnJvcjo6bmV3KHVuZXhw ZWN0ZWQuc3BhbigpLCAiZXhwZWN0ZWQgYChgIikpLAorKyAgICAgICAgTm9uZSA9PiBFcnIoRXJy b3I6Om5ldygKKysgICAgICAgICAgICBpbnRyb2R1Y2VyLnNwYW4oKSwKKysgICAgICAgICAgICBm b3JtYXQhKCJleHBlY3RlZCBgKGAgYWZ0ZXIgYHt9YCIsIGludHJvZHVjZXIpLAorKyAgICAgICAg KSksCisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlX29wdGlvbmFsX3BhcmVuKGl0ZXI6IEl0 ZXIpIC0+IE9wdGlvbjxHcm91cD4geworKyAgICBtYXRjaCBpdGVyLnBlZWsoKSB7CisrICAgICAg ICBTb21lKFRva2VuVHJlZTo6R3JvdXAoZ3JvdXApKSBpZiBncm91cC5kZWxpbWl0ZXIoKSA9PSBE ZWxpbWl0ZXI6OlBhcmVudGhlc2lzID0+IHsKKysgICAgICAgICAgICBtYXRjaCBpdGVyLm5leHQo KSB7CisrICAgICAgICAgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpHcm91cChncm91cCkpID0+IFNv bWUoZ3JvdXApLAorKyAgICAgICAgICAgICAgICBfID0+IHVucmVhY2hhYmxlISgpLAorKyAgICAg ICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIF8gPT4gTm9uZSwKKysgICAgfQorK30KKysK KytwdWIgZm4gcGFyc2VfZW5kKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDwoKT4geworKyAgICBtYXRj aCBpdGVyLm5leHQoKSB7CisrICAgICAgICBOb25lID0+IE9rKCgpKSwKKysgICAgICAgIFNvbWUo dW5leHBlY3RlZCkgPT4gRXJyKEVycm9yOjpuZXcodW5leHBlY3RlZC5zcGFuKCksICJ1bmV4cGVj dGVkIHRva2VuIikpLAorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cnVzdHZlcnNpb24vc3JjL3ZlcnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3NyYy92ZXJzaW9uLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdmVyc2lvbi5ycworQEAgLTAsMCAr MSwxOCBAQAorKyMhW2FsbG93KGRlYWRfY29kZSldCisrCisrdXNlIGNyYXRlOjpkYXRlOjpEYXRl OworKworKyNbZGVyaXZlKENvcHksIENsb25lLCBEZWJ1ZywgUGFydGlhbEVxKV0KKytwdWIgc3Ry dWN0IFZlcnNpb24geworKyAgICBwdWIgbWlub3I6IHUxNiwKKysgICAgcHViIHBhdGNoOiB1MTYs CisrICAgIHB1YiBjaGFubmVsOiBDaGFubmVsLAorK30KKysKKysjW2Rlcml2ZShDb3B5LCBDbG9u ZSwgRGVidWcsIFBhcnRpYWxFcSldCisrcHViIGVudW0gQ2hhbm5lbCB7CisrICAgIFN0YWJsZSwK KysgICAgQmV0YSwKKysgICAgTmlnaHRseShEYXRlKSwKKysgICAgRGV2LAorK30KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL2NvbXBpbGV0ZXN0LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy9jb21waWxldGVzdC5ycworbmV3IGZp bGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vdGVzdHMvY29tcGlsZXRlc3QucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZl cnNpb246OmF0dHIobm90KG5pZ2h0bHkpLCBpZ25vcmUgPSAicmVxdWlyZXMgbmlnaHRseSIpXQor KyNbY2ZnX2F0dHIobWlyaSwgaWdub3JlID0gImluY29tcGF0aWJsZSB3aXRoIG1pcmkiKV0KKysj W3Rlc3RdCisrZm4gdWkoKSB7CisrICAgIGxldCB0ID0gdHJ5YnVpbGQ6OlRlc3RDYXNlczo6bmV3 KCk7CisrICAgIHQuY29tcGlsZV9mYWlsKCJ0ZXN0cy91aS8qLnJzIik7CisrfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9jb25zdC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9jb25zdC5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vdGVzdHMvdGVzdF9jb25zdC5ycworQEAgLTAsMCArMSw0MiBAQAorKyMhW2FsbG93KAor KyAgICBjbGlwcHk6OnNlbWljb2xvbl9pZl9ub3RoaW5nX3JldHVybmVkLCAvLyBodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QtY2xpcHB5L2lzc3Vlcy83MzI0CisrICAgIGNsaXBweTo6 dXNlZF91bmRlcnNjb3JlX2l0ZW1zLAorKyldCisrCisrI1tydXN0dmVyc2lvbjo6YXR0cihhbGwo KSwgY29uc3QpXQorK2ZuIF9iYXNpYygpIHt9CisrY29uc3QgX0JBU0lDOiAoKSA9IF9iYXNpYygp OworKworKyNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKyt1bnNhZmUgZm4gX3Vu c2FmZSgpIHt9CisrY29uc3QgX1VOU0FGRTogKCkgPSB1bnNhZmUgeyBfdW5zYWZlKCkgfTsKKysK KyttYWNyb19ydWxlcyEgaXRlbSB7CisrICAgICgkaTppdGVtKSA9PiB7CisrICAgICAgICAjW3J1 c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrICAgICAgICAkaQorKyAgICB9OworK30K KysKKytpdGVtISB7Zm4gX2l0ZW0oKSB7fX0KKytjb25zdCBfSVRFTTogKCkgPSBfaXRlbSgpOwor KworK21hY3JvX3J1bGVzISBpZGVudCB7CisrICAgICgkZm46aWRlbnQpID0+IHsKKysgICAgICAg ICNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKysgICAgICAgICRmbiBfaWRlbnQo KSB7fQorKyAgICB9OworK30KKysKKytpZGVudCEge2ZufQorK2NvbnN0IF9JREVOVDogKCkgPSBf aWRlbnQoKTsKKysKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrLy8vIGRv YworK2ZuIF9kb2NfYmVsb3coKSB7fQorK2NvbnN0IF9ET0NfQkVMT1c6ICgpID0gX2RvY19iZWxv dygpOworKworKy8vLyBkb2MKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisr Zm4gX2RvY19hYm92ZSgpIHt9CisrY29uc3QgX0RPQ19BQk9WRTogKCkgPSBfZG9jX2Fib3ZlKCk7 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy90ZXN0X2V2 YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfZXZhbC5ycwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdGVzdF9ldmFsLnJzCitAQCAtMCwwICsxLDIwIEBACisrI1ty dXN0dmVyc2lvbjo6YW55KAorKyAgICBzdGFibGUsCisrICAgIHN0YWJsZSgxLjM0KSwKKysgICAg c3RhYmxlKDEuMzQuMCksCisrICAgIGJldGEsCisrICAgIG5pZ2h0bHksCisrICAgIG5pZ2h0bHko MjAyMC0wMi0yNSksCisrICAgIHNpbmNlKDEuMzQpLAorKyAgICBzaW5jZSgyMDIwLTAyLTI1KSwK KysgICAgYmVmb3JlKDEuMzQpLAorKyAgICBiZWZvcmUoMjAyMC0wMi0yNSksCisrICAgIG5vdChu aWdodGx5KSwKKysgICAgYWxsKHN0YWJsZSwgYmV0YSwgbmlnaHRseSksCisrKV0KKytmbiBzdWNj ZXNzKCkge30KKysKKysjW3Rlc3RdCisrZm4gdGVzdCgpIHsKKysgICAgc3VjY2VzcygpOworK30K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfcGFy c2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfcGFyc2UucnMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfcGFyc2UucnMKK0BAIC0wLDAgKzEsMTAzIEBACisr IyFbYWxsb3coCisrICAgIGNsaXBweTo6ZGVyaXZlX3BhcnRpYWxfZXFfd2l0aG91dF9lcSwKKysg ICAgY2xpcHB5OjplbnVtX2dsb2JfdXNlLAorKyAgICBjbGlwcHk6Om11c3RfdXNlX2NhbmRpZGF0 ZQorKyldCisrCisraW5jbHVkZSEoIi4uL2J1aWxkL3J1c3RjLnJzIik7CisrCisrI1t0ZXN0XQor K2ZuIHRlc3RfcGFyc2UoKSB7CisrICAgIGxldCBjYXNlcyA9ICZbCisrICAgICAgICAoCisrICAg ICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIwMTUt MDUtMTQpIiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6 IDAsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVs OiBTdGFibGUsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAg ICAgICAgICAgInJ1c3RjIDEuMTguMCIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAg ICAgICAgICAgIG1pbm9yOiAxOCwKKysgICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAg ICAgICAgICAgIGNoYW5uZWw6IFN0YWJsZSwKKysgICAgICAgICAgICB9LAorKyAgICAgICAgKSwK KysgICAgICAgICgKKysgICAgICAgICAgICAicnVzdGMgMS4yNC4xIChkM2FlOWE5ZTAgMjAxOC0w Mi0yNykiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjog MjQsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAxLAorKyAgICAgICAgICAgICAgICBjaGFubmVs OiBTdGFibGUsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAg ICAgICAgICAgInJ1c3RjIDEuMzUuMC1iZXRhLjMgKGMxMzExNGRjOCAyMDE5LTA0LTI3KSIsCisr ICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAzNSwKKysgICAg ICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IEJldGEsCisr ICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAgICAgICAgICAgInJ1 c3RjIDEuMzYuMC1uaWdodGx5ICg5MzhkNGZmZTEgMjAxOS0wNC0yNykiLAorKyAgICAgICAgICAg IFZlcnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMzYsCisrICAgICAgICAgICAgICAg IHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBOaWdodGx5KERhdGUgeworKyAg ICAgICAgICAgICAgICAgICAgeWVhcjogMjAxOSwKKysgICAgICAgICAgICAgICAgICAgIG1vbnRo OiA0LAorKyAgICAgICAgICAgICAgICAgICAgZGF5OiAyNywKKysgICAgICAgICAgICAgICAgfSks CisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAgICAgICAgICAg InJ1c3RjIDEuMzYuMC1kZXYiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAg ICAgICBtaW5vcjogMzYsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAg ICAgICBjaGFubmVsOiBEZXYsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAg ICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMzYuMC1uaWdodGx5IiwKKysgICAgICAgICAgICBW ZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDM2LAorKyAgICAgICAgICAgICAgICBw YXRjaDogMCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogRGV2LAorKyAgICAgICAgICAgIH0s CisrICAgICAgICApLAorKyAgICAgICAgKAorKyAgICAgICAgICAgICJ3YXJuaW5nOiBpbnZhbGlk IGxvZ2dpbmcgc3BlYyAnd2FybmluZycsIGlnbm9yaW5nIGl0CisrICAgICAgICAgICAgIHJ1c3Rj IDEuMzAuMC1uaWdodGx5ICgzYmMyY2E3ZTQgMjAxOC0wOS0yMCkiLAorKyAgICAgICAgICAgIFZl cnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMzAsCisrICAgICAgICAgICAgICAgIHBh dGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBOaWdodGx5KERhdGUgeworKyAgICAg ICAgICAgICAgICAgICAgeWVhcjogMjAxOCwKKysgICAgICAgICAgICAgICAgICAgIG1vbnRoOiA5 LAorKyAgICAgICAgICAgICAgICAgICAgZGF5OiAyMCwKKysgICAgICAgICAgICAgICAgfSksCisr ICAgICAgICAgICAgfSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAgICAgICAgICAgInJ1 c3RjIDEuNTIuMS1uaWdodGx5IChnZW50b28pIiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysg ICAgICAgICAgICAgICAgbWlub3I6IDUyLAorKyAgICAgICAgICAgICAgICBwYXRjaDogMSwKKysg ICAgICAgICAgICAgICAgY2hhbm5lbDogRGV2LAorKyAgICAgICAgICAgIH0sCisrICAgICAgICAp LAorKyAgICBdOworKworKyAgICBmb3IgKHN0cmluZywgZXhwZWN0ZWQpIGluIGNhc2VzIHsKKysg ICAgICAgIG1hdGNoIHBhcnNlKHN0cmluZykgeworKyAgICAgICAgICAgIFBhcnNlUmVzdWx0OjpT dWNjZXNzKHZlcnNpb24pID0+IGFzc2VydF9lcSEodmVyc2lvbiwgKmV4cGVjdGVkKSwKKysgICAg ICAgICAgICBQYXJzZVJlc3VsdDo6T29wc0NsaXBweSB8IFBhcnNlUmVzdWx0OjpPb3BzTWlyYWkg fCBQYXJzZVJlc3VsdDo6VW5yZWNvZ25pemVkID0+IHsKKysgICAgICAgICAgICAgICAgcGFuaWMh KCJ1bnJlY29nbml6ZWQ6IHs6P30iLCBzdHJpbmcpOworKyAgICAgICAgICAgIH0KKysgICAgICAg IH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3Rlc3RzL3VpL2JhZC1ib3VuZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVz dHMvdWkvYmFkLWJvdW5kLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQucnMK K0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNpb246OnNpbmNlKHN0YWJsZSldCisrc3RydWN0 IFM7CisrCisrI1tydXN0dmVyc2lvbjo6YW55KHNpbmNlKHN0YWJsZSkpXQorK3N0cnVjdCBTOwor KworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vdGVzdHMvdWkvYmFkLWJvdW5kLnN0ZGVyciBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vdGVzdHMvdWkvYmFkLWJvdW5kLnN0ZGVycgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAv ZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFk LWJvdW5kLnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAorK2Vycm9yOiBleHBlY3RlZCBydXN0YyBy ZWxlYXNlIG51bWJlciBsaWtlIDEuODUsIG9yIG5pZ2h0bHkgZGF0ZSBsaWtlIDIwMjUtMDItMjUK KysgLS0+IHRlc3RzL3VpL2JhZC1ib3VuZC5yczoxOjIyCisrICB8CisrMSB8ICNbcnVzdHZlcnNp b246OnNpbmNlKHN0YWJsZSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXgorKwor K2Vycm9yOiBleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciBsaWtlIDEuODUsIG9yIG5pZ2h0 bHkgZGF0ZSBsaWtlIDIwMjUtMDItMjUKKysgLS0+IHRlc3RzL3VpL2JhZC1ib3VuZC5yczo0OjI2 CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShzaW5jZShzdGFibGUpKV0KKysgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9i YWQtZGF0ZS5ycworQEAgLTAsMCArMSw3IEBACisrI1tydXN0dmVyc2lvbjo6bmlnaHRseShzdGFi bGUpXQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShuaWdodGx5KHN0YWJsZSkp XQorK3N0cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUuc3RkZXJyIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5zdGRlcnIKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3Rlc3RzL3VpL2JhZC1kYXRlLnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAorK2Vycm9yOiBleHBl Y3RlZCBuaWdodGx5IGRhdGUsIGxpa2UgMjAyNS0wMi0yNQorKyAtLT4gdGVzdHMvdWkvYmFkLWRh dGUucnM6MToyNAorKyAgfAorKzEgfCAjW3J1c3R2ZXJzaW9uOjpuaWdodGx5KHN0YWJsZSldCisr ICB8ICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCisrCisrZXJyb3I6IGV4cGVjdGVkIG5p Z2h0bHkgZGF0ZSwgbGlrZSAyMDI1LTAyLTI1CisrIC0tPiB0ZXN0cy91aS9iYWQtZGF0ZS5yczo0 OjI4CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShuaWdodGx5KHN0YWJsZSkpXQorKyAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl4KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3QucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3QucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3Rz L3VpL2JhZC1ub3QucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNpb246OmFueShub3Qp XQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShub3QsIG5vdCldCisrc3RydWN0 IFM7CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0 dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnN0ZGVyciBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vdGVzdHMvdWkvYmFkLW5vdC5zdGRlcnIKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0g L2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2Jh ZC1ub3Quc3RkZXJyCitAQCAtMCwwICsxLDExIEBACisrZXJyb3I6IGV4cGVjdGVkIGAoYCBhZnRl ciBgbm90YAorKyAtLT4gdGVzdHMvdWkvYmFkLW5vdC5yczoxOjIwCisrICB8CisrMSB8ICNbcnVz dHZlcnNpb246OmFueShub3QpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgXl5eCisrCisrZXJy b3I6IGV4cGVjdGVkIGAoYAorKyAtLT4gdGVzdHMvdWkvYmFkLW5vdC5yczo0OjIzCisrICB8Cisr NCB8ICNbcnVzdHZlcnNpb246OmFueShub3QsIG5vdCldCisrICB8ICAgICAgICAgICAgICAgICAg ICAgICBeCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91 aS9iYWQtdmVyc2lvbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkv YmFkLXZlcnNpb24ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnJzCitA QCAtMCwwICsxLDcgQEAKKysjW3J1c3R2ZXJzaW9uOjpzdGFibGUobmlnaHRseSldCisrc3RydWN0 IFM7CisrCisrI1tydXN0dmVyc2lvbjo6YW55KHN0YWJsZShuaWdodGx5KSldCisrc3RydWN0IFM7 CisrCisrZm4gbWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVy c2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5zdGRlcnIgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVycgorbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMv dWkvYmFkLXZlcnNpb24uc3RkZXJyCitAQCAtMCwwICsxLDExIEBACisrZXJyb3I6IGV4cGVjdGVk IHJ1c3RjIHJlbGVhc2UgbnVtYmVyLCBsaWtlIDEuMzEKKysgLS0+IHRlc3RzL3VpL2JhZC12ZXJz aW9uLnJzOjE6MjMKKysgIHwKKysxIHwgI1tydXN0dmVyc2lvbjo6c3RhYmxlKG5pZ2h0bHkpXQor KyAgfCAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXgorKworK2Vycm9yOiBleHBlY3RlZCBy dXN0YyByZWxlYXNlIG51bWJlciwgbGlrZSAxLjMxCisrIC0tPiB0ZXN0cy91aS9iYWQtdmVyc2lv bi5yczo0OjI3CisrICB8CisrNCB8ICNbcnVzdHZlcnNpb246OmFueShzdGFibGUobmlnaHRseSkp XQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl4KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0LW5vdC1mbi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvY29uc3Qtbm90LWZuLnJzCituZXcg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi90ZXN0cy91aS9jb25zdC1ub3QtZm4ucnMKK0BAIC0wLDAgKzEsNCBAQAorKyNb cnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKytwdWIgc3RydWN0IFM7CisrCisrZm4g bWFpbigpIHt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0 cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90 ZXN0cy91aS9jb25zdC1ub3QtZm4uc3RkZXJyCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9k ZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9jb25z dC1ub3QtZm4uc3RkZXJyCitAQCAtMCwwICsxLDUgQEAKKytlcnJvcjogb25seSBhbGxvd2VkIG9u IGEgZm4gaXRlbQorKyAtLT4gdGVzdHMvdWkvY29uc3Qtbm90LWZuLnJzOjE6MjgKKysgIHwKKysx IHwgI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29uc3QpXQorKyAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeXl5eXgo=