ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDY2NjliZjAuLjZiMWZkMWIgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjMsNiArMjMsNyBAQAogL2dpdC1jYXQtZmlsZQogL2dpdC1jaGVjay1hdHRyCiAvZ2l0LWNoZWNrLWlnbm9yZQorL2dpdC1jaGVjay1tYWlsbWFwCiAvZ2l0LWNoZWNrLXJlZi1mb3JtYXQKIC9naXQtY2hlY2tvdXQKIC9naXQtY2hlY2tvdXQtaW5kZXgKQEAgLTEyNSw2ICsxMjYsNyBAQAogL2dpdC1yZW1vdGUtZnRwcwogL2dpdC1yZW1vdGUtZmQKIC9naXQtcmVtb3RlLWV4dAorL2dpdC1yZW1vdGUtdGVzdGdpdAogL2dpdC1yZW1vdGUtdGVzdHB5CiAvZ2l0LXJlbW90ZS10ZXN0c3ZuCiAvZ2l0LXJlcGFjawpAQCAtMTkwLDYgKzE5Miw4IEBACiAvdGVzdC1ta3RlbXAKIC90ZXN0LXBhcnNlLW9wdGlvbnMKIC90ZXN0LXBhdGgtdXRpbHMKKy90ZXN0LXByaW8tcXVldWUKKy90ZXN0LXJlYWQtY2FjaGUKIC90ZXN0LXJlZ2V4CiAvdGVzdC1yZXZpc2lvbi13YWxraW5nCiAvdGVzdC1ydW4tY29tbWFuZApAQCAtMjI4LDYgKzIzMiw3IEBACiAvY3Njb3BlKgogKi5vYmoKICoubGliCisqLnJlcwogKi5zbG4KICouc3VvCiAqLm5jYgpkaWZmIC0tZ2l0IGEvLm1haWxtYXAgYi8ubWFpbG1hcAppbmRleCA0OGQ3YWNmLi4xYzFmNWVjIDEwMDY0NAotLS0gYS8ubWFpbG1hcAorKysgYi8ubWFpbG1hcApAQCAtNSw5OCArNSwyNDIgQEAKICMgc2FtZSBwZXJzb24gYXBwZWFyaW5nIG5vdCB0byBiZSBzby4KICMKIAorPG5pY29AZmx1eG5pYy5uZXQ+IDxuaWNvQGNhbS5vcmc+CitBbGVqYW5kcm8gUi4gU2VkZcOxbyA8YXNlZGVub0BNSVQuRURVPiA8YXNlZGVub0BtaXQuZWR1PgogQWxleCBCZW5uw6llIDxrZXJuZWwtaGFja2VyQGJlbm5lZS5jb20+CitBbGV4IFJpZXNlbiA8cmFhLmxrbWxAZ21haWwuY29tPiA8Zm9yazBAdC1vbmxpbmUuZGU+CitBbGV4IFJpZXNlbiA8cmFhLmxrbWxAZ21haWwuY29tPiA8cmFhQGxpbWJvLmxvY2FsZG9tYWluPgorQWxleCBSaWVzZW4gPHJhYS5sa21sQGdtYWlsLmNvbT4gPHJhYUBzdGVlbC5ob21lPgorQWxleCBWYW5kaXZlciA8YWxleEBjaG1yci5uZXQ+IDxhbGV4bXZATUlULkVEVT4KIEFsZXhhbmRlciBHYXZyaWxvdiA8YW5nYXZyaWxvdkBnbWFpbC5jb20+CitBbGV4ZXkgU2h1bWtpbiA8YWxleC5jcmV6b2ZmQGdtYWlsLmNvbT4gPHphcHBlZEBtYWlsLnJ1PgorQWxleGV5IFNodW1raW4gPGFsZXguY3Jlem9mZkBnbWFpbC5jb20+IDxBbGV4LkNyZXpvZmZAZ21haWwuY29tPgorQW5kZXJzIEthc2VvcmcgPGFuZGVyc2tATUlULkVEVT4gPGFuZGVyc2tAa3NwbGljZS5jb20+CitBbmRlcnMgS2FzZW9yZyA8YW5kZXJza0BNSVQuRURVPiA8YW5kZXJza0BtaXQuZWR1PgogQW5lZXNoIEt1bWFyIEsuViA8YW5lZXNoLmt1bWFyQGdtYWlsLmNvbT4KLUJyaWFuIE0uIENhcmxzb24gPHNhbmRhbHNAY3J1c3R5dG9vdGhwYXN0ZS5hdGguY3g+CitBbW9zIFdhdGVybGFuZCA8YXB3QGRlYmlhbi5vcmc+IDxhcHdAcm9zc2J5Lm1ldHIub3UuZWR1PgorQW1vcyBXYXRlcmxhbmQgPGFwd0BkZWJpYW4ub3JnPiA8YXB3QHVzLmlibS5jb20+CitCZW4gV2FsdG9uIDxiZHdhbHRvbkBnbWFpbC5jb20+IDxid2FsdG9uQGFydHNjaS51dG9yb250by5jYT4KK0Jlbm9pdCBTaWdvdXJlIDx0c3VuYW5ldEBnbWFpbC5jb20+IDx0c3VuYUBscmRlLmVwaXRhLmZyPgorQmVybnQgSGFuc2VuIDxiZXJudEBub3JhbmcuY2E+IDxiZXJudEBhbHVtbmkudXdhdGVybG9vLmNhPgorQnJhbmRvbiBDYXNleSA8ZHJhZm5lbEBnbWFpbC5jb20+IDxjYXNleUBucmxzc2MubmF2eS5taWw+CiticmlhbiBtLiBjYXJsc29uIDxzYW5kYWxzQGNydXN0eXRvb3RocGFzdGUuYXRoLmN4PiBCcmlhbiBNLiBDYXJsc29uIDxzYW5kYWxzQGNydXN0eXRvb3RocGFzdGUuYXRoLmN4PgorYnJpYW4gbS4gY2FybHNvbiA8c2FuZGFsc0BjcnVzdHl0b290aHBhc3RlLmF0aC5jeD4gPHNhbmRhbHNAY3J1c3R5dG9vdGhwYXN0ZS5uZXQ+CitCcnlhbiBMYXJzZW4gPGJyeWFuQGxhcnNlbi5zdD4gPGJyeWFuLmxhcnNlbkBnbWFpbC5jb20+CitCcnlhbiBMYXJzZW4gPGJyeWFuQGxhcnNlbi5zdD4gPGJyeWFubGFyc2VuQHlhaG9vLmNvbT4KIENoZW5nIFJlbnF1YW4gPGNycXVhbkBnbWFpbC5jb20+CiBDaHJpcyBTaG9lbWFrZXIgPGMuc2hvZW1ha2VyQGNveC5uZXQ+CitDaHJpcyBXcmlnaHQgPGNocmlzd0Bzb3VzLXNvbC5vcmc+IDxjaHJpc3dAb3NkbC5vcmc+CitDb3JkIFNlZWxlIDxjb3dvc2VAZ21haWwuY29tPiA8Y293b3NlQGdvb2dsZW1haWwuY29tPgorQ2hyaXN0aWFuIFN0aW1taW5nIDxzdGltbWluZ0B0dWhoLmRlPiA8Y2hzQGNraXN0ZS5nb2V0aGVhbGxlZT4KK0NzYWJhIEhlbmsgPGNzYWJhQGdsdXN0ZXIuY29tPiA8Y3NhYmFAbG93bGlmZS5odT4KIERhbiBKb2huc29uIDxjb21wdXRlcmRydWlkQGdtYWlsLmNvbT4KLURhbmEgTC4gSG93IDxkYW5haG93QGdtYWlsLmNvbT4KLURhbmEgTC4gSG93IDxob3dAZGVhdGh2YWxsZXkuY3N3aXRjaC5jb20+CitEYW5hIEwuIEhvdyA8ZGFuYWhvd0BnbWFpbC5jb20+IDxob3dAZGVhdGh2YWxsZXkuY3N3aXRjaC5jb20+CitEYW5hIEwuIEhvdyA8ZGFuYWhvd0BnbWFpbC5jb20+IERhbmEgSG93CiBEYW5pZWwgQmFya2Fsb3cgPGJhcmthbG93QGlhYmVydm9uLm9yZz4KK0RhbmllbCBUcnN0ZW5qYWsgPGRhbmllbC50cnN0ZW5qYWtAZ21haWwuY29tPiA8ZGFuaWVsLnRyc3Rlbmpha0BvbmxpbmUuZGU+CitEYW5pZWwgVHJzdGVuamFrIDxkYW5pZWwudHJzdGVuamFrQGdtYWlsLmNvbT4gPHRyc3RlbkBzY2llbmNlLWNvbXB1dGluZy5kZT4KK0RhdmlkIEJyb3duIDxnaXRAZGF2aWRiLm9yZz4gPGRhdmlkYkBxdWljaW5jLmNvbT4KIERhdmlkIEQuIEtpbHplciA8ZGRraWx6ZXJAa2lsemVyLm5ldD4KIERhdmlkIEvDpWdlZGFsIDxkYXZpZGtAbHlzYXRvci5saXUuc2U+CitEYXZpZCBSZWlzcyA8ZHJlaXNzQGZhY2Vib29rLmNvbT4gPGRyZWlzc0BkcmVpc3Mtdm13YXJlLihub25lKT4KIERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KIERlc2tpbiBNaWxsZXIgPGRlc2tpbm1AdW1pY2guZWR1PgogRGlyayBTw7xzc2Vyb3R0IDxuZXdzbGV0dGVyQGRpcmsubXkxLmNjPgorRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+IDxlYmI5QGJ5dS5uZXQ+CitFcmljIEhhbmNocm93IDxlcmljLmhhbmNocm93QGdtYWlsLmNvbT4gPG9mZmJ5MUBibGFyZy5uZXQ+CiBFcmljIFMuIFJheW1vbmQgPGVzckB0aHlyc3VzLmNvbT4KIEVyaWsgRmF5ZS1MdW5kIDxrdXNtYWJpdGVAZ21haWwuY29tPiA8a3VzbWFiaXRlQGdvb2dsZW1haWwuY29tPgotRnJlZHJpayBLdWl2aW5lbiA8ZnJla3UwNDVAc3R1ZGVudC5saXUuc2U+CitFeXZpbmQgQmVybmhhcmRzZW4gPGV5dmluZC5iZXJuaGFyZHNlbkBnbWFpbC5jb20+IDxleXZpbmQtZ2l0QG9yYWtlbC5udG51Lm5vPgorRmxvcmlhbiBBY2hsZWl0bmVyIDxmbG9yaWFuLmFjaGxlaXRuZXIuMi42LjMxQGdtYWlsLmNvbT4gPGZsb3JpYW4uYWNobGVpdG5lcjIuNi4zMUBnbWFpbC5jb20+CitGcmFuY2sgQnVpLUh1dSA8dmFnYWJvbi54eXpAZ21haWwuY29tPiA8ZmJ1aWh1dUBnbWFpbC5jb20+CitGcmFuayBMaWNodGVuaGVsZCA8ZnJhbmtAbGljaHRlbmhlbGQuZGU+IDxkanBpZ0BkZWJpYW4ub3JnPgorRnJhbmsgTGljaHRlbmhlbGQgPGZyYW5rQGxpY2h0ZW5oZWxkLmRlPiA8ZmxpY2h0ZW5oZWxkQGFzdGFyby5jb20+CitGcmVkcmlrIEt1aXZpbmVuIDxmcmVrdWlAZ21haWwuY29tPiA8ZnJla3UwNDVAc3R1ZGVudC5saXUuc2U+CiBGcsOpZMOpcmljIEhlaXR6bWFubiA8ZnJlZGVyaWMuaGVpdHptYW5uQGdtYWlsLmNvbT4KLUguIFBldGVyIEFudmluIDxocGFAYm9uZGUuc2Mub3Jpb25tdWx0aS5jb20+Ci1ILiBQZXRlciBBbnZpbiA8aHBhQHRhemVuZGEuc2Mub3Jpb25tdWx0aS5jb20+Ci1ILiBQZXRlciBBbnZpbiA8aHBhQHRyYW50b3IuaG9zLmFudmluLm9yZz4KK0dhcnJ5IERvbGxleSA8Z2RvbGxleUB1Y2xhLmVkdT4gPGdkb2xsZXlAYXJwbmV0d29ya3MuY29tPgorR3JlZyBQcmljZSA8cHJpY2VAbWl0LmVkdT4gPHByaWNlQE1JVC5FRFU+CitHcmVnIFByaWNlIDxwcmljZUBtaXQuZWR1PiA8cHJpY2VAa3NwbGljZS5jb20+CitIZWlrbyBWb2lndCA8aHZvaWd0QGh2b2lndC5uZXQ+IDxnaXQtbGlzdEBodm9pZ3QubmV0PgorSC4gTWVyaWpuIEJyYW5kIDxoLm0uYnJhbmRAeHM0YWxsLm5sPiBILk1lcmlqbiBCcmFuZCA8aC5tLmJyYW5kQHhzNGFsbC5ubD4KK0guIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPiA8aHBhQGJvbmRlLnNjLm9yaW9ubXVsdGkuY29tPgorSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+IDxocGFAc215cm5vLmhvcy5hbnZpbi5vcmc+CitILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4gPGhwYUB0YXplbmRhLnNjLm9yaW9ubXVsdGkuY29tPgorSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+IDxocGFAdHJhbnRvci5ob3MuYW52aW4ub3JnPgorSGFuLVdlbiBOaWVuaHV5cyA8aGFud2VuQGdvb2dsZS5jb20+IEhhbi1XZW4gTmllbmh1eXMgPGhhbndlbkB4czRhbGwubmw+CiBIb3JzdCBILiB2b24gQnJhbmQgPHZvbmJyYW5kQGluZi51dGZzbS5jbD4KLcSwc21haWwgRMO2bm1leiA8aXNtYWlsQHBhcmR1cy5vcmcudHI+CitKLiBCcnVjZSBGaWVsZHMgPGJmaWVsZHNAY2l0aS51bWljaC5lZHU+IDxiZmllbGRzQGZpZWxkc2VzLm9yZz4KK0ouIEJydWNlIEZpZWxkcyA8YmZpZWxkc0BjaXRpLnVtaWNoLmVkdT4gPGJmaWVsZHNAcGlnLmxpbnV4ZGV2LnVzLmRlbGwuY29tPgorSi4gQnJ1Y2UgRmllbGRzIDxiZmllbGRzQGNpdGkudW1pY2guZWR1PiA8YmZpZWxkc0BwdXp6bGUuZmllbGRzZXMub3JnPgogSmFrdWIgTmFyxJlic2tpIDxqbmFyZWJAZ21haWwuY29tPgotSmF5IFNvZmZpYW4gPGpheXNvZmZpYW4rZ2l0QGdtYWlsLmNvbT4KK0phbWVzIFkgS25pZ2h0IDxqa25pZ2h0QGl0YXNvZnR3YXJlLmNvbT4gPGZvb21AZnVobS5uZXQ+CisjIFRoZSAyIGZvbGxvd2luZyBhdXRob3JzIGFyZSBwcm9iYWJseSB0aGUgc2FtZSBwZXJzb24sCisjIGJ1dCBib3RoIGVtYWlscyBib3VuY2UuCitKYXNvbiBNY011bGxhbiA8amFzb24ubWNtdWxsYW5AdGltZXN5cy5jb20+CitKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KK0phc29uIFJpZWR5IDxlanJAZWVjcy5iZXJrZWxleS5lZHU+IDxlanJARUVDUy5CZXJrZWxleS5FRFU+CitKYXNvbiBSaWVkeSA8ZWpyQGVlY3MuYmVya2VsZXkuZWR1PiA8ZWpyQGNzLmJlcmtlbGV5LmVkdT4KK0pheSBTb2ZmaWFuIDxqYXlzb2ZmaWFuQGdtYWlsLmNvbT4gPGpheXNvZmZpYW4rZ2l0QGdtYWlsLmNvbT4KIEplZmYgS2luZyA8cGVmZkBwZWZmLm5ldD4gPHBlZmZAZ2l0aHViLmNvbT4KK0plZmYgTXVpemVsYWFyIDxqbXVpemVsYWFyQG1vemlsbGEuY29tPiA8amVmZkBpbmZpZGlnbS5uZXQ+CitKZW5zIEF4Ym9lIDxheGJvZUBrZXJuZWwuZGs+IDxheGJvZUBzdXNlLmRlPgorSmVucyBBeGJvZSA8YXhib2VAa2VybmVsLmRrPiA8amVucy5heGJvZUBvcmFjbGUuY29tPgorSmltIE1leWVyaW5nIDxqaW1AbWV5ZXJpbmcubmV0PiA8bWV5ZXJpbmdAcmVkaGF0LmNvbT4KIEpvYWNoaW0gQmVyZGFsIEhhZ2EgPGNqaGFnYUBmeXMudWlvLm5vPgotSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8am9oYW5uZXMuc2l4dEB0ZWxlY29tLmF0PgotSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8ai5zaXh0QHZpc2NvdmVyeS5uZXQ+CitKb2hhbm5lcyBTY2hpbmRlbGluIDxKb2hhbm5lcy5TY2hpbmRlbGluQGdteC5kZT4gPGpvaGFubmVzLnNjaGluZGVsaW5AZ214LmRlPgogSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8Si5TaXh0QGV1ZGFwdGljcy5jb20+Ci1Kb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgotSm9uIFNleW1vdXIgPGpvbkBibGFja2N1YmVzLmR5bmRucy5vcmc+Ci1Kb25hdGhhbiBOaWVkZXIgPGpybmllZGVyQHVjaGljYWdvLmVkdT4KK0pvaGFubmVzIFNpeHQgPGo2dEBrZGJnLm9yZz4gPGouc2l4dEB2aXNjb3ZlcnkubmV0PgorSm9oYW5uZXMgU2l4dCA8ajZ0QGtkYmcub3JnPiA8am9oYW5uZXMuc2l4dEB0ZWxlY29tLmF0PgorSm9obiAnV2FydGhvZzknIEhhd2xleSA8d2FydGhvZzlAa2VybmVsLm9yZz4gPHdhcnRob2c5QGVhZ2xlc2NyYWcubmV0PgorSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4gPGpkbEBmcmVlc2NhbGUuY29tPgorSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4gPGpkbEBmcmVlc2NhbGUub3JnPgorSm9uIFNleW1vdXIgPGpvbi5zZXltb3VyQGdtYWlsLmNvbT4gPGpvbkBibGFja2N1YmVzLmR5bmRucy5vcmc+CitKb25hdGhhbiBOaWVkZXIgPGpybmllZGVyQGdtYWlsLmNvbT4gPGpybmllZGVyQHVjaGljYWdvLmVkdT4KK0pvbmF0aGFuIGRlbCBTdHJvdGhlciA8am9uLmRlbFN0cm90aGVyQGJlc3RiZWZvcmUudHY+IDxtYWlsbGlzdEBzdGVlbHNraWVzLmNvbT4KK0pvc2ggVHJpcGxldHQgPGpvc2hAam9zaHRyaXBsZXR0Lm9yZz4gPGpvc2hAZnJlZWRlc2t0b3Aub3JnPgorSm9zaCBUcmlwbGV0dCA8am9zaEBqb3NodHJpcGxldHQub3JnPiA8am9zaHRAdXMuaWJtLmNvbT4KK0p1bGlhbiBQaGlsbGlwcyA8anVsaWFuQHF1YW50dW1meXJlLmNvLnVrPiA8anAzQHF1YW50dW1meXJlLmNvLnVrPgogSnVuaW8gQyBIYW1hbm8gPGdpdHN0ZXJAcG9ib3guY29tPiA8Z2l0c3RlckBwb2JveC5jb20+Ci1KdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0Bwb2JveC5jb20+Ci1KdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0B0d2luc3VuLmNvbT4KLUp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmtpb0B0d2luc3VuLmNvbT4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmlvQGhlcmEua2VybmVsLm9yZz4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmlvQGtlcm5lbC5vcmc+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0Bwb2JveC5jb20+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5pb0B0d2luc3VuLmNvbT4KIEp1bmlvIEMgSGFtYW5vIDxnaXRzdGVyQHBvYm94LmNvbT4gPGp1bmtpb0Bjb3gubmV0PgotS2FybCBIYXNzZWxzdHLDtm0gPGtoYUB0cmVza2FsLmNvbT4KLUtldmluIExldW5nIDxrZXZpbmxza0BnbWFpbC5jb20+CitKdW5pbyBDIEhhbWFubyA8Z2l0c3RlckBwb2JveC5jb20+IDxqdW5raW9AdHdpbnN1bi5jb20+CitLYXJsIFdpYmVyZyA8a2hhQHRyZXNrYWwuY29tPiBLYXJsICBIYXNzZWxzdHLDtm0KK0thcmwgV2liZXJnIDxraGFAdHJlc2thbC5jb20+IDxraGFAeW9naHVydC5oZW1tYS50cmVza2FsLmNvbT4KK0thcnN0ZW4gQmxlZXMgPGJsZWVzQGRjb24uZGU+IDxrYXJzdGVuLmJsZWVzQGRjb24uZGU+CitLYXJzdGVuIEJsZWVzIDxibGVlc0BkY29uLmRlPiA8a2Fyc3Rlbi5ibGVlc0BnbWFpbC5jb20+CitLYXkgU2lldmVycyA8a2F5LnNpZXZlcnNAdnJmeS5vcmc+IDxrYXkuc2lldmVyc0BzdXNlLmRlPgorS2F5IFNpZXZlcnMgPGtheS5zaWV2ZXJzQHZyZnkub3JnPiA8a2F5QG1hbS4obm9uZSk+CitLZWl0aCBDYXNjaW8gPGtlaXRoQENTLlVDTEEuRURVPiA8a2VpdGhAY3MudWNsYS5lZHU+CiBLZW50IEVuZ3N0cm9tIDxrZW50QGx5c2F0b3IubGl1LnNlPgorS2V2aW4gTGV1bmcgPGtldmlubHNrQGdtYWlsLmNvbT4KK0tpcmlsbCBTbWVsa292IDxraXJyQG5hdnl0dXguc3BiLnJ1PiA8a2lyckBsYW5kYXUucGh5cy5zcGJ1LnJ1PgorS2lyaWxsIFNtZWxrb3YgPGtpcnJAbmF2eXR1eC5zcGIucnU+IDxraXJyQG1ucy5zcGIucnU+CitLbnV0IEZyYW5rZSA8S251dC5GcmFua2VAZ214LmRlPiA8ay5mcmFua2VAc2NpZW5jZS1jb21wdXRpbmcuZGU+CiBMYXJzIERvZWxsZSA8bGFycy5kb2VsbGVAb24tbGluZSAhIGRlPgogTGFycyBEb2VsbGUgPGxhcnMuZG9lbGxlQG9uLWxpbmUuZGU+CitMYXJzIE5vc2NoaW5za2kgPGxhcnNAcHVibGljLm5vc2NoaW5za2kuZGU+IDxsYXJzLm5vc2NoaW5za2lAcnd0aC1hYWNoZW4uZGU+CiBMaSBIb25nIDxsZWVob25nQHBrdS5lZHUuY24+Ci1MaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0B3b29keS5saW51eC1mb3VuZGF0aW9uLm9yZz4KLUxpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4gPHRvcnZhbGRzQG9zZGwub3JnPgotTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAZzUub3NkbC5vcmc+CiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0Bldm8ub3NkbC5vcmc+Ci1MaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0BwcGM5NzAub3NkbC5vcmc+CitMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+IDx0b3J2YWxkc0BnNS5vc2RsLm9yZz4KK0xpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4gPHRvcnZhbGRzQG9zZGwub3JnPgogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAcHBjOTcwLm9zZGwub3JnLihub25lKT4KLUx1a2FzIFNhbmRzdHLDtm0gPGx1a2Fzc0BldGVrLmNoYWxtZXJzLnNlPgorTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAcHBjOTcwLm9zZGwub3JnPgorTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPiA8dG9ydmFsZHNAd29vZHkubGludXgtZm91bmRhdGlvbi5vcmc+CitMdWthcyBTYW5kc3Ryw7ZtIDxsdWtzYW5AZ21haWwuY29tPiA8bHVrYXNzQGV0ZWsuY2hhbG1lcnMuc2U+CitNYXJjIEtob3V6YW0gPG1hcmMua2hvdXphbUBlcmljc3Nvbi5jb20+IDxtYXJjLmtob3V6YW1AZ21haWwuY29tPgogTWFyYy1BbmRyw6kgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KK01hcmNvIENvc3RhbGJhIDxtY29zdGFsYmFAZ21haWwuY29tPiA8bWNvc3RhbGJhQHlhaG9vLml0PgorTWFyayBMZXZlZGFobCA8bWRsMTIzQHZlcml6b24ubmV0PiA8bWxldmVkYWhsQGdtYWlsLmNvbT4KIE1hcmsgUmFkYSA8bWFyYWRhQHV3YXRlcmxvby5jYT4KIE1hcnRpbiBMYW5naG9mZiA8bWFydGluQGxhcHRvcC5vcmc+IDxtYXJ0aW5AY2F0YWx5c3QubmV0Lm56PgogTWFydGluIHZvbiBad2VpZ2JlcmdrIDxtYXJ0aW52b256QGdtYWlsLmNvbT4gPG1hcnRpbi52b24uendlaWdiZXJna0BnbWFpbC5jb20+CitNYXR0IERyYWlzZXkgPG1hdHRAZHJhaXNleS5jYT4gPG1hdHRkcmFpc2V5QHN5bXBhdGljby5jYT4KK01hdHQgS3JhYWkgPGtyYWFpQGZ0YmZzLm9yZz4gPG1hdHQua3JhYWlAYW1vLmFiYm90dC5jb20+CitNYXR0IE1jQ3V0Y2hlbiA8bWF0dEBtYXR0bWNjdXRjaGVuLm5ldD4gPGhhc2hwcm9kdWN0QGdtYWlsLmNvbT4KK01hdHRoaWFzIEtlc3RlbmhvbHogPG1hdHRoaWFzQHNwaW5sb2NrLmNoPiA8bWtAc3BpbmxvY2suY2g+CitNYXR0aGlhcyBVcmxpY2hzIDxtYXR0aGlhc0B1cmxpY2hzLmRlPiA8c211cmZAa2lzdGUuKG5vbmUpPgorTWF0dGhpYXMgVXJsaWNocyA8bWF0dGhpYXNAdXJsaWNocy5kZT4gPHNtdXJmQHNtdXJmLm5vcmlzLmRlPgogTWljaGFlbCBDb2xlbWFuIDx0dXR1ZmFuQGdtYWlsLmNvbT4KIE1pY2hhZWwgSiBHcnViZXIgPGdpdEBkcm1pY2hhLndhcnBtYWlsLm5ldD4gPG1pY2hhZWxqZ3J1YmVyK2dtYW5lQGZhc3RtYWlsLmZtPgorTWljaGFlbCBTLiBUc2lya2luIDxtc3RAa2VybmVsLm9yZz4gPG1zdEByZWRoYXQuY29tPgorTWljaGFlbCBTLiBUc2lya2luIDxtc3RAa2VybmVsLm9yZz4gPG1zdEBtZWxsYW5veC5jby5pbD4KK01pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QGtlcm5lbC5vcmc+IDxtc3RAZGV2Lm1lbGxhbm94LmNvLmlsPgogTWljaGFlbCBXLiBPbHNvbiA8bXdvbHNvbkBnbnUub3JnPgorTWljaGFlbCBXaXR0ZW4gPG1md2l0dGVuQGdtYWlsLmNvbT4gPG1md2l0dGVuQE1JVC5FRFU+CitNaWNoYWVsIFdpdHRlbiA8bWZ3aXR0ZW5AZ21haWwuY29tPiA8bWZ3aXR0ZW5AbWl0LmVkdT4KK01pY2hhbCBSb2tvcyA8bWljaGFsLnJva29zQG5leHRzb2Z0LmN6PiA8cm9rb3NAbmV4dHNvZnQuY3o+CiBNaWNoZWxlIEJhbGxhYmlvIDxiYXJyYV9jdWRhQGthdGFtYWlsLmNvbT4KLU5hbmFrbyBTaGlyYWlzaGkgPG5hbmFrbzNAYmx1ZWJvdHRsZS5jb20+CitNaWtsb3MgVmFqbmEgPHZtaWtsb3NAZnJ1Z2Fsd2FyZS5vcmc+IDx2bWlrbG9zQHN1c2UuY3o+CitOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGdtYWlsLmNvbT4gPG5hbWh5dW5nLmtpbUBsZ2UuY29tPgorTmFtaHl1bmcgS2ltIDxuYW1oeXVuZ0BnbWFpbC5jb20+IDxuYW1oeXVuZ0BrZXJuZWwub3JnPgorTmFuYWtvIFNoaXJhaXNoaSA8bmFuYWtvM0BsYXZhYml0LmNvbT4gPG5hbmFrbzNAYmx1ZWJvdHRsZS5jb20+CiBOYW5ha28gU2hpcmFpc2hpIDxuYW5ha28zQGxhdmFiaXQuY29tPgorTmVsc29uIEVsaGFnZSA8bmVsaGFnZUBtaXQuZWR1PiA8bmVsaGFnZUBNSVQuRURVPgorTmVsc29uIEVsaGFnZSA8bmVsaGFnZUBtaXQuZWR1PiA8bmVsaGFnZUBrc3BsaWNlLmNvbT4KIE5ndXnhu4VuIFRow6FpIE5n4buNYyBEdXkgPHBjbG91ZHNAZ21haWwuY29tPgotPG5pY29AZmx1eG5pYy5uZXQ+IDxuaWNvQGNhbS5vcmc+Ci1QZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHN2YXJ0ZW4uaW50ZXJuLnNvZnR3b2x2ZXMucHAuc2U+CitOaWNrIFN0b2tvZSA8bmlja0Bub29kbGVmYWN0b3J5LmNvLnVrPiBOaWNrIFdvb2xsZXkgPG5pY2tAbm9vZGxlZmFjdG9yeS5jby51az4KK05pY2sgU3Rva29lIDxuaWNrQG5vb2RsZWZhY3RvcnkuY28udWs+IE5pY2sgV29vbGxleSA8bmlja3dvb2xsZXlAeWFob28uY28udWs+CitOaWNvbGFzIE1vcmV5LUNoYWlzZW1hcnRpbiA8ZGV2ZWwtZ2l0QG1vcmV5LWNoYWlzZW1hcnRpbi5jb20+IDxuaWNvbGFzLm1vcmV5QGZyZWUuZnI+CitOaWNvbGFzIE1vcmV5LUNoYWlzZW1hcnRpbiA8ZGV2ZWwtZ2l0QG1vcmV5LWNoYWlzZW1hcnRpbi5jb20+IDxubW9yZXlAa2FscmF5LmV1PgorTmljb2xhcyBTZWJyZWNodCA8bmljb2xhcy5zLmRldkBnbXguZnI+IDxuaS5zQGxhcG9zdGUubmV0PgorUGFvbG8gQm9uemluaSA8Ym9uemluaUBnbnUub3JnPiA8cGFvbG8uYm9uemluaUBsdS51bmlzaS5jaD4KK1Bhc2NhbCBPYnJ5IDxwYXNjYWxAb2JyeS5uZXQ+IDxwYXNjYWwub2JyeUBnbWFpbC5jb20+CitQYXNjYWwgT2JyeSA8cGFzY2FsQG9icnkubmV0PiA8cGFzY2FsLm9icnlAd2FuYWRvby5mcj4KK1BhdCBOb3R6IDxwYXRub3R6QGdtYWlsLmNvbT4gPHBrbm90ekBzYW5kaWEuZ292PgorUGF1bCBNYWNrZXJyYXMgPHBhdWx1c0BzYW1iYS5vcmc+IDxwYXVsdXNAZG9ycmlnby4obm9uZSk+CitQYXVsIE1hY2tlcnJhcyA8cGF1bHVzQHNhbWJhLm9yZz4gPHBhdWx1c0Bwb2dvLihub25lKT4KK1BldGVyIEJhdW1hbm4gPHdhc3RlLm1hbmFnZXJAZ214LmRlPiA8UGV0ZXIuQi5CYXVtYW5uQHN0dWQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CitQZXRlciBCYXVtYW5uIDx3YXN0ZS5tYW5hZ2VyQGdteC5kZT4gPHNpcHJiYXVtQHN0dWQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGU+CiBQZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+CitQZXRlciBLcmVmdGluZyA8cGV0ZXJAc29mdHdvbHZlcy5wcC5zZT4gPHBldGVyQHN2YXJ0ZW4uaW50ZXJuLnNvZnR3b2x2ZXMucHAuc2U+CiBQZXRyIEJhdWRpcyA8cGFza3lAdWN3LmN6PiA8cGFza3lAc3VzZS5jej4KK1BldHIgQmF1ZGlzIDxwYXNreUB1Y3cuY3o+IDx4cGFza3lAbWFjaGluZT4KK1BoaWwgSG9yZCA8aG9yZHBAY2lzY28uY29tPiA8cGhpbC5ob3JkQGdtYWlsLmNvbT4KK1BoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwQGZvb2xpcC5vcmc+IDxwaGlsaXAuamFnZW5zdGVkdEBnbWFpbC5jb20+CitQaGlsaXBwIEEuIEhhcnRtYW5uIDxwYWhAcW8uY3g+IDxwaEBzb3JnaC5kZT4KIFBoaWxpcHBlIEJydWhhdCA8Ym9va0BjcGFuLm9yZz4KIFJhbGYgVGhpZWxvdyA8cmFsZi50aGllbG93QGdtYWlsLmNvbT4gPHJhbGYudGhpZWxvd0Bnb29nbGVtYWlsLmNvbT4KIFJhbXNheSBBbGxhbiBKb25lcyA8cmFtc2F5QHJhbXNheTEuZGVtb24uY28udWs+Ci1SZW7DqSBTY2hhcmZlIDxyZW5lLnNjaGFyZmVAbHNyZmlyZS5hdGguY3g+CitSZW7DqSBTY2hhcmZlIDxsLnMuckB3ZWIuZGU+IDxyZW5lLnNjaGFyZmVAbHNyZmlyZS5hdGguY3g+CiBSb2JlcnQgRml0enNpbW9ucyA8cm9iZml0ekAyNzNrLm5ldD4KK1JvYmVydCBTaGVhcm1hbiA8cm9iZXJ0c2hlYXJtYW5AZ21haWwuY29tPiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KIFJvYmVydCBaZWggPHJvYmVydC5hLnplaEBnbWFpbC5jb20+Ci1TYW0gVmlsYWluIDxzYW1AdmlsYWluLm5ldD4KLVNhbnRpIELDqWphciA8c2JlamFyQGdtYWlsLmNvbT4KK1JvYmluIFJvc2VuYmVyZyA8cm9iaW4ucm9zZW5iZXJnQGRld2lyZS5jb20+IDxyb2Jpbi5yb3NlbmJlcmcubGlzdHNAZGV3aXJlLmNvbT4KK1J1dGdlciBOaWpsdW5zaW5nIDxydXRnZXIubmlqbHVuc2luZ0BnbWFpbC5jb20+IDxydXRnZXJAbm9zcGFtLmNvbT4KK1J1dGdlciBOaWpsdW5zaW5nIDxydXRnZXIubmlqbHVuc2luZ0BnbWFpbC5jb20+IDxnaXRAdHV4LnRtZndlYi5ubD4KK1J5YW4gQW5kZXJzb24gPHJ5YW5AbWljaG9ubGluZS5jb20+IDxyZGFAZ29vZ2xlLmNvbT4KK1NhbGlraCBaYWtpcm92IDxzYWxpa2guemFraXJvdkBnbWFpbC5jb20+IDxTYWxpa2guWmFraXJvdkBJbnRlbC5jb20+CitTYW0gVmlsYWluIDxzYW1AdmlsYWluLm5ldD4gPHNhbS52aWxhaW5AY2F0YWx5c3QubmV0Lm56PgorU2FtIFZpbGFpbiA8c2FtQHZpbGFpbi5uZXQ+IHNhbUB2aWxhaW4ubmV0CitTYW50aSBCw6lqYXIgPHNhbnRpQGFnb2xpbmEubmV0PiA8c2JlamFyQGdtYWlsLmNvbT4KIFNlYW4gRXN0YWJyb29rcyA8c2VhbmxrbWxAc3ltcGF0aWNvLmNhPgorU2ViYXN0aWFuIFNjaHViZXJ0aCA8c3NjaHViZXJ0aEBnbWFpbC5jb20+IDxzc2NodWJlcnRoQHZpc2FnZWltYWdpbmcuY29tPgorU2V0aCBGYWxjb24gPHNldGhAdXNlcnByaW1hcnkubmV0PiA8c2ZhbGNvbkBmaGNyYy5vcmc+CiBTaGF3biBPLiBQZWFyY2UgPHNwZWFyY2VAc3BlYXJjZS5vcmc+Ci1TdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPgorU2ltb24gSGF1c21hbm4gPGhhdXNtYW5uQGtkZS5vcmc+IDxzaW1vbkBsc3QuZGU+CitTaW1vbiBIYXVzbWFubiA8aGF1c21hbm5Aa2RlLm9yZz4gPHNoYXVzbWFuQHRyb2xsdGVjaC5jb20+CitTdGVmYW4gTmFld2UgPHN0ZWZhbi5uYWV3ZUBnbWFpbC5jb20+IDxzdGVmYW4ubmFld2VAYXRsYXMtZWxla3Ryb25pay5jb20+CitTdGVmYW4gTmFld2UgPHN0ZWZhbi5uYWV3ZUBnbWFpbC5jb20+IDxzdGVmYW4ubmFld2VAZ29vZ2xlbWFpbC5jb20+CitTdGVmYW4gU3BlcmxpbmcgPHN0c3BAZWxlZ28uZGU+IDxzdHNwQHN0c3AubmFtZT4KK8WgdMSbcMOhbiBOxJttZWMgPHN0ZXBuZW1AZ21haWwuY29tPiA8c3RlcGFuLm5lbWVjQGdtYWlsLmNvbT4KK1N0ZXBoZW4gQm95ZCA8YmViYXJpbm9AZ21haWwuY29tPiA8c2JveWRAY29kZWF1cm9yYS5vcmc+CitTdGV2ZW4gRHJha2UgPHNkcmFrZUB4bmV0LmNvLm56PiA8c2RyYWtlQGlodWcuY28ubno+CitTdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPiA8c2dyaW1tQHNncmltbS1tYnAubG9jYWw+CitTdGV2ZW4gR3JpbW0gPGtvcmV0aEBtaWR3aW50ZXIuY29tPiBrb3JldGhAbWlkd2ludGVyLmNvbQorU3RldmVuIFdhbHRlciA8c3RldmVucndhbHRlckBnbWFpbC5jb20+IDxzd2FsdGVyQGxleG1hcmsuY29tPgorU3RldmVuIFdhbHRlciA8c3RldmVucndhbHRlckBnbWFpbC5jb20+IDxzd2FsdGVyQGxwZGV2LnBydGRldi5sZXhtYXJrLmNvbT4KK1N2ZW4gVmVyZG9vbGFlZ2UgPHNraW1vQGtvdG5ldC5vcmc+IDxTdmVuLlZlcmRvb2xhZWdlQGNzLmt1bGV1dmVuLmFjLmJlPgorU3ZlbiBWZXJkb29sYWVnZSA8c2tpbW9Aa290bmV0Lm9yZz4gPHNraW1vQGxpYWNzLm5sPgogVGF5IFJheSBDaHVhbiA8cmN0YXk4OUBnbWFpbC5jb20+CitUZWQgUGVyY2l2YWwgPHRlZEBtaWRnM3QubmV0PiA8dGVkLnBlcmNpdmFsQHF1ZXN0LmNvbT4KIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CitUaG9tYXMgQWNrZXJtYW5uIDx0aC5hY2tlckBhcmNvci5kZT4gPHRoLmFja2VyNjZAYXJjb3IuZGU+CiBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitUaW1vIEhpcnZvbmVuIDx0aWhpcnZvbkBnbWFpbC5jb20+IDx0aWhpcnZvbkBlZS5vdWx1LmZpPgorVG9ieSBBbGxzb3BwIDxUb2J5LkFsbHNvcHBAbmF2bWFuLmNvLm56PiA8dG9ieS5hbGxzb3BwQG5hdm1hbi5jby5uej4KK1RvbSBHcmVubmFuIDx0bWdyZW5uYW5AZ21haWwuY29tPiA8dGdyZW5uYW5AcmVkYmFjay5jb20+CitUb21taSBWaXJ0YW5lbiA8dHZAZGViaWFuLm9yZz4gPHR2QGVhZ2Fpbi5uZXQ+CitUb21taSBWaXJ0YW5lbiA8dHZAZGViaWFuLm9yZz4gPHR2QGlub2kuZmk+CitUb21teSBUaG9ybiA8dG9tbXktZ2l0QHRob3JuLndzPiA8dHQxNzI5QHlhaG9vLmNvbT4KIFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDxVd2VfWmVpc2JlcmdlckBkaWdpLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDxVd2UuS2xlaW5lLUtvZW5pZ0BkaWdpLmNvbT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDx1a2xlaW5la0BpbmZvcm1hdGlrLnVuaS1mcmVpYnVyZy5kZT4KLVV3ZSBLbGVpbmUtS8O2bmlnIDx1emVpc2JlcmdlckBpby5mc2ZvcnRoLmRlPgotVXdlIEtsZWluZS1Lw7ZuaWcgPHplaXNiZXJnQGluZm9ybWF0aWsudW5pLWZyZWlidXJnLmRlPgotVmlsbGUgU2t5dHTDpCA8c2NvcEB4ZW1hY3Mub3JnPgorVG9yIEFybmUgVmVzdGLDuCA8dG9yYXJudkBnbWFpbC5jb20+IDx0YXZlc3Rib0B0cm9sbHRlY2guY29tPgorVHJlbnQgUGllcGhvIDx0cGllcGhvQGdtYWlsLmNvbT4gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KK1RyZW50IFBpZXBobyA8dHBpZXBob0BnbWFpbC5jb20+IDx4eXp6eUBzcGVha2Vhc3kub3JnPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPFV3ZS5LbGVpbmUtS29lbmlnQGRpZ2kuY29tPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPHVrbGVpbmVrQGluZm9ybWF0aWsudW5pLWZyZWlidXJnLmRlPgorVXdlIEtsZWluZS1Lw7ZuaWcgPHUua2xlaW5lLWtvZW5pZ0BwZW5ndXRyb25peC5kZT4gPHV6ZWlzYmVyZ2VyQGlvLmZzZm9ydGguZGU+CitVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPiA8emVpc2JlcmdAaW5mb3JtYXRpay51bmktZnJlaWJ1cmcuZGU+CitWaWxsZSBTa3l0dMOkIDx2aWxsZS5za3l0dGFAaWtpLmZpPiA8c2NvcEB4ZW1hY3Mub3JnPgogVml0YWx5ICJfVmkiIFNodWtlbGEgPHB1YmxpY192aUB0dXQuYnk+CitXLiBUcmV2b3IgS2luZyA8d2tpbmdAdHJlbWlseS51cz4gPHdraW5nQGRyZXhlbC5lZHU+CiBXaWxsaWFtIFB1cnNlbGwgPGJpbGwucHVyc2VsbEBnbWFpbC5jb20+CitZT05FVEFOSSBUb21va2F6dSA8eTBuM3Q0bjFAZ21haWwuY29tPiA8cWh3dCtnaXRAbGVzLmF0aC5jeD4KK1lPTkVUQU5JIFRvbW9rYXp1IDx5MG4zdDRuMUBnbWFpbC5jb20+IDx5MG5ldGFuMUBkcmFnb25mbHlic2Qub3JnPgogWU9TSElGVUpJIEhpZGVha2kgPHlvc2hmdWppQGxpbnV4LWlwdjYub3JnPgorIyB0aGUgdHdvIGFub255bW91cyBjb250cmlidXRvcnMgYXJlIGRpZmZlcmVudCBwZXJzb25zOgogYW5vbnltb3VzIDxsaW51eEBob3Jpem9uLmNvbT4KIGFub255bW91cyA8bGludXhAaG9yaXpvbi5uZXQ+CivEsHNtYWlsIETDtm5tZXogPGlzbWFpbEBwYXJkdXMub3JnLnRyPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Db2RpbmdHdWlkZWxpbmVzIGIvRG9jdW1lbnRhdGlvbi9Db2RpbmdHdWlkZWxpbmVzCmluZGV4IDdlNGQ1NzEuLjU1OWQ1ZjkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vQ29kaW5nR3VpZGVsaW5lcworKysgYi9Eb2N1bWVudGF0aW9uL0NvZGluZ0d1aWRlbGluZXMKQEAgLTIzNyw4ICsyMzcsMTAgQEAKIAogV3JpdGluZyBEb2N1bWVudGF0aW9uOgogCi0gTW9zdCAoaWYgbm90IGFsbCkgb2YgdGhlIGRvY3VtZW50YXRpb24gcGFnZXMgYXJlIHdyaXR0ZW4gaW4gQXNjaWlEb2MKLSBhbmQgcHJvY2Vzc2VkIGludG8gSFRNTCBvdXRwdXQgYW5kIG1hbnBhZ2VzLgorIE1vc3QgKGlmIG5vdCBhbGwpIG9mIHRoZSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFyZSB3cml0dGVuIGluIHRoZQorIEFzY2lpRG9jIGZvcm1hdCBpbiAqLnR4dCBmaWxlcyAoZS5nLiBEb2N1bWVudGF0aW9uL2dpdC50eHQpLCBhbmQKKyBwcm9jZXNzZWQgaW50byBIVE1MIGFuZCBtYW5wYWdlcyAoZS5nLiBnaXQuaHRtbCBhbmQgZ2l0LjEgaW4gdGhlCisgc2FtZSBkaXJlY3RvcnkpLgogCiAgRXZlcnkgdXNlci12aXNpYmxlIGNoYW5nZSBzaG91bGQgYmUgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uLgogIFRoZSBzYW1lIGdlbmVyYWwgcnVsZSBhcyBmb3IgY29kZSBhcHBsaWVzIC0tIGltaXRhdGUgdGhlIGV4aXN0aW5nCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL01ha2VmaWxlIGIvRG9jdW1lbnRhdGlvbi9NYWtlZmlsZQppbmRleCA2MmRiZDlhLi4wY2ZkYzM2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL01ha2VmaWxlCisrKyBiL0RvY3VtZW50YXRpb24vTWFrZWZpbGUKQEAgLTMxLDExICszMSwxMSBAQAogTUFON19UWFQgKz0gZ2l0d29ya2Zsb3dzLnR4dAogCiBNQU5fVFhUID0gJChNQU4xX1RYVCkgJChNQU41X1RYVCkgJChNQU43X1RYVCkKLU1BTl9YTUw9JChwYXRzdWJzdCAlLnR4dCwlLnhtbCwkKE1BTl9UWFQpKQotTUFOX0hUTUw9JChwYXRzdWJzdCAlLnR4dCwlLmh0bWwsJChNQU5fVFhUKSkKK01BTl9YTUwgPSAkKHBhdHN1YnN0ICUudHh0LCUueG1sLCQoTUFOX1RYVCkpCitNQU5fSFRNTCA9ICQocGF0c3Vic3QgJS50eHQsJS5odG1sLCQoTUFOX1RYVCkpCiAKIE9CU09MRVRFX0hUTUwgPSBnaXQtcmVtb3RlLWhlbHBlcnMuaHRtbAotRE9DX0hUTUw9JChNQU5fSFRNTCkgJChPQlNPTEVURV9IVE1MKQorRE9DX0hUTUwgPSAkKE1BTl9IVE1MKSAkKE9CU09MRVRFX0hUTUwpCiAKIEFSVElDTEVTID0gaG93dG8taW5kZXgKIEFSVElDTEVTICs9IGV2ZXJ5ZGF5CkBAIC03NCwzNSArNzQsMzUgQEAKIAogRE9DX0hUTUwgKz0gJChwYXRzdWJzdCAlLCUuaHRtbCwkKEFSVElDTEVTKSAkKFNQX0FSVElDTEVTKSkKIAotRE9DX01BTjE9JChwYXRzdWJzdCAlLnR4dCwlLjEsJChNQU4xX1RYVCkpCi1ET0NfTUFONT0kKHBhdHN1YnN0ICUudHh0LCUuNSwkKE1BTjVfVFhUKSkKLURPQ19NQU43PSQocGF0c3Vic3QgJS50eHQsJS43LCQoTUFON19UWFQpKQorRE9DX01BTjEgPSAkKHBhdHN1YnN0ICUudHh0LCUuMSwkKE1BTjFfVFhUKSkKK0RPQ19NQU41ID0gJChwYXRzdWJzdCAlLnR4dCwlLjUsJChNQU41X1RYVCkpCitET0NfTUFONyA9ICQocGF0c3Vic3QgJS50eHQsJS43LCQoTUFON19UWFQpKQogCi1wcmVmaXg/PSQoSE9NRSkKLWJpbmRpcj89JChwcmVmaXgpL2JpbgotaHRtbGRpcj89JChwcmVmaXgpL3NoYXJlL2RvYy9naXQtZG9jCi1wZGZkaXI/PSQocHJlZml4KS9zaGFyZS9kb2MvZ2l0LWRvYwotbWFuZGlyPz0kKHByZWZpeCkvc2hhcmUvbWFuCi1tYW4xZGlyPSQobWFuZGlyKS9tYW4xCi1tYW41ZGlyPSQobWFuZGlyKS9tYW41Ci1tYW43ZGlyPSQobWFuZGlyKS9tYW43Ci0jIERFU1RESVI9CitwcmVmaXggPz0gJChIT01FKQorYmluZGlyID89ICQocHJlZml4KS9iaW4KK2h0bWxkaXIgPz0gJChwcmVmaXgpL3NoYXJlL2RvYy9naXQtZG9jCitpbmZvZGlyID89ICQocHJlZml4KS9zaGFyZS9pbmZvCitwZGZkaXIgPz0gJChwcmVmaXgpL3NoYXJlL2RvYy9naXQtZG9jCittYW5kaXIgPz0gJChwcmVmaXgpL3NoYXJlL21hbgorbWFuMWRpciA9ICQobWFuZGlyKS9tYW4xCittYW41ZGlyID0gJChtYW5kaXIpL21hbjUKK21hbjdkaXIgPSAkKG1hbmRpcikvbWFuNworIyBERVNURElSID0KIAogQVNDSUlET0MgPSBhc2NpaWRvYwogQVNDSUlET0NfRVhUUkEgPQogTUFOUEFHRV9YU0wgPSBtYW5wYWdlLW5vcm1hbC54c2wKIFhNTFRPID0geG1sdG8KIFhNTFRPX0VYVFJBID0KLUlOU1RBTEw/PWluc3RhbGwKK0lOU1RBTEwgPz0gaW5zdGFsbAogUk0gPz0gcm0gLWYKIE1BTl9SRVBPID0gLi4vLi4vZ2l0LW1hbnBhZ2VzCiBIVE1MX1JFUE8gPSAuLi8uLi9naXQtaHRtbGRvY3MKIAotaW5mb2Rpcj89JChwcmVmaXgpL3NoYXJlL2luZm8KLU1BS0VJTkZPPW1ha2VpbmZvCi1JTlNUQUxMX0lORk89aW5zdGFsbC1pbmZvCi1ET0NCT09LMlhfVEVYST1kb2Nib29rMngtdGV4aQotREJMQVRFWD1kYmxhdGV4CitNQUtFSU5GTyA9IG1ha2VpbmZvCitJTlNUQUxMX0lORk8gPSBpbnN0YWxsLWluZm8KK0RPQ0JPT0syWF9URVhJID0gZG9jYm9vazJ4LXRleGkKK0RCTEFURVggPSBkYmxhdGV4CiBpZm5kZWYgUEVSTF9QQVRICiAJUEVSTF9QQVRIID0gL3Vzci9iaW4vcGVybAogZW5kaWYKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjEwLjEudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuMTAuMS50eHQKaW5kZXggODA2YTk2NS4uYmU2ODUyNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuMTAuMS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuMTAuMS50eHQKQEAgLTE0LDcgKzE0LDcgQEAKICAgIG5vdCBleGNsdWRlIHRoZW0gYW5kIHRyaWVkIHRvIGFwcGx5IGZ1bm55IHBhdGNoZXMgb25seSB0byBmYWlsLgogCiAgKiAiZ2l0IGJsYW1lIiBzdGFydGVkIG1pc3NpbmcgcXVpdGUgYSBmZXcgY2hhbmdlcyBmcm9tIHRoZSBvcmlnaW4KLSAgIHNpbmNlIHdlIHN0b3BwZWQgdXNpbmcgdGhlIGRpZmYgbWluaW1hbGl6YXRpb24gYnkgZGVmYXVsdCBpbiB2MS43LjIKKyAgIHNpbmNlIHdlIHN0b3BwZWQgdXNpbmcgdGhlIGRpZmYgbWluaW1pemF0aW9uIGJ5IGRlZmF1bHQgaW4gdjEuNy4yCiAgICBlcmEuCiAKICAqIFdoZW4gUEFUSCBjb250YWlucyBhbiB1bnJlYWRhYmxlIGRpcmVjdG9yeSwgYWxpYXMgZXhwYW5zaW9uIGNvZGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjUuNC50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy41LjQudHh0CmluZGV4IGNmM2Y0NTUuLjc3OTZkZjMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjUuNC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuNS40LnR4dApAQCAtNSw3ICs1LDcgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAqIFRoZSBzaW5nbGUta2V5IG1vZGUgb2YgImdpdCBhZGQgLXAiIHdhcyBlYXNpbHkgZm9vbGVkIGludG8gdGhpbmtpbmcKLSAgIHRoYXQgaXQgd2FzIHRvbGQgdG8gYWRkIGV2ZXJ0aGluZyAoJ2EnKSB3aGVuIHVwLWFycm93IHdhcyBwcmVzc2VkIGJ5CisgICB0aGF0IGl0IHdhcyB0b2xkIHRvIGFkZCBldmVyeXRoaW5nICgnYScpIHdoZW4gdXAtYXJyb3cgd2FzIHByZXNzZWQgYnkKICAgIG1pc3Rha2UuCiAKICAqIFNldHRpbmcgYSBnaXQgY29tbWFuZCB0aGF0IHVzZXMgY3VzdG9tIGNvbmZpZ3VyYXRpb24gdmlhICItYyB2YXI9dmFsIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC4yLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS43LjguMi50eHQKaW5kZXggZTc0ZjRlZi4uYjljNjZhYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC4yLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy44LjIudHh0CkBAIC0xMiwxMSArMTIsMTEgQEAKICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyIHVzZWQgZm9yIHNpemVzIChlLmcuIGJpZ0ZpbGVUaHJlc2hvbGQpCiAgICBkaWQgbm90IGNvcnJlY3RseSBpbnRlcnByZXQgJ2cnIHN1ZmZpeC4KIAotICogVGhlIHJlcGxhY2VtZW50IGltcGxlbWVudGlvbiBmb3Igc25wcmludGYgdXNlZCBvbiBwbGF0Zm9ybXMgd2l0aAorICogVGhlIHJlcGxhY2VtZW50IGltcGxlbWVudGF0aW9uIGZvciBzbnByaW50ZiB1c2VkIG9uIHBsYXRmb3JtcyB3aXRoCiAgICBuYXRpdmUgc25wcmludGYgdGhhdCBpcyBicm9rZW4gZGlkIG5vdCB1c2UgdmFfY29weSBjb3JyZWN0bHkuCiAKICAqIExGLXRvLUNSTEYgc3RyZWFtaW5nIGZpbHRlciByZXBsYWNlZCBhbGwgTEYgd2l0aCBDUkxGLCB3aGljaCBtaWdodAotICAgYmUgdGVjaGluaWNhbGx5IGNvcnJlY3QgYnV0IG5vdCBmcmllbmRseSB0byBwZW9wbGUgd2hvIGFyZSB0cnlpbmcKKyAgIGJlIHRlY2huaWNhbGx5IGNvcnJlY3QgYnV0IG5vdCBmcmllbmRseSB0byBwZW9wbGUgd2hvIGFyZSB0cnlpbmcKICAgIHRvIHJlY292ZXIgZnJvbSBlYXJsaWVyIG1pc3Rha2VzIG9mIHVzaW5nIENSTEYgaW4gdGhlIHJlcG9zaXRvcnkKICAgIGRhdGEgaW4gdGhlIGZpcnN0IHBsYWNlLiBJdCBub3cgcmVmcmFpbnMgZnJvbSBkb2luZyBzbyBmb3IgTEYgdGhhdAogICAgZm9sbG93cyBhIENSLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjcuOC50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy44LnR4dAppbmRleCBiNGQ5MGJiLi4yNDkzMTEzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy44LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuNy44LnR4dApAQCAtOSw3ICs5LDcgQEAKICAqIFVwZGF0ZXMgdG8gYmFzaCBjb21wbGV0aW9uIHNjcmlwdHMuCiAKICAqIFRoZSBidWlsZCBwcm9jZWR1cmUgaGFzIGJlZW4gdGF1Z2h0IHRvIHRha2UgYWR2YW50YWdlIG9mIGNvbXB1dGVkCi0gICBkZXBlbmRlbmN5IGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgY29tcGxpZXIgc3VwcG9ydHMgaXQuCisgICBkZXBlbmRlbmN5IGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgY29tcGlsZXIgc3VwcG9ydHMgaXQuCiAKICAqIFRoZSBkYXRlIHBhcnNlciBub3cgYWNjZXB0cyB0aW1lem9uZSBkZXNpZ25hdG9ycyB0aGF0IGxhY2sgbWludXRlcwogICAgcGFydCBhbmQgYWxzbyBoYXMgYSBjb2xvbiBiZXR3ZWVuICJoaDptbSIuCkBAIC0zMSw3ICszMSw3IEBACiAgKiBWYXJpYW50cyBvZiAiZ2l0IGNoZXJyeS1waWNrIiBhbmQgImdpdCByZXZlcnQiIHRoYXQgdGFrZSBtdWx0aXBsZQogICAgY29tbWl0cyBsZWFybmVkIHRvICItLWNvbnRpbnVlIiBhbmQgIi0tYWJvcnQiLgogCi0gKiAiZ2l0IGRhZW1vbiIgZ2l2ZXMgbW9yZSBodW1hbiByZWFkYmxlIGVycm9yIG1lc3NhZ2VzIHRvIGNsaWVudHMKKyAqICJnaXQgZGFlbW9uIiBnaXZlcyBtb3JlIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1lc3NhZ2VzIHRvIGNsaWVudHMKICAgIHVzaW5nIEVSUiBwYWNrZXRzIHdoZW4gYXBwcm9wcmlhdGUuCiAKICAqIEVycm9ycyBhdCB0aGUgbmV0d29yayBsYXllciBpcyBsb2dnZWQgYnkgImdpdCBkYWVtb24iLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMi4xLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMS50eHQKaW5kZXggMTM1NGFkMC4uNzY5YTZmYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMi4xLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjEudHh0CkBAIC00OSw3ICs0OSw3IEBACiAgICBjb21tb24gcHJlZml4IGFuZCBzdWZmaXggYmV0d2VlbiB0aGUgdHdvIGZpbGVuYW1lcyBvdmVybGFwcGVkLgogCiAgKiAiZ2l0IHN1Ym1vZHVsZSB1cGRhdGUiLCB3aGVuIHJlY3Vyc2VkIGludG8gc3ViLXN1Ym1vZHVsZXMsIGRpZCBub3QKLSAgIGFjY2N1bXVsYXRlIHRoZSBwcmVmaXggcGF0aHMuCisgICBhY2N1bXVsYXRlIHRoZSBwcmVmaXggcGF0aHMuCiAKICAqICJnaXQgYW0gJG1haWxkaXIvIiBhcHBsaWVkIG1lc3NhZ2VzIGluIGFuIHVuZXhwZWN0ZWQgb3JkZXI7IHNvcnQKICAgIGZpbGVuYW1lcyByZWFkIGZyb20gdGhlIG1haWxkaXIvIGluIGEgd2F5IHRoYXQgaXMgbW9yZSBsaWtlbHkgdG8KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMi50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjIudHh0CmluZGV4IGRhYjQ4MzEuLjcwOGRmMWEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMi4yLnR4dApAQCAtNTgsNCArNTgsNCBAQAogICAgY29uZmxpY3RzIGhhdmUgYmVlbiBhcHBsaWVkLgogCiAgKiAiZ2l0IGJ1bmRsZSIgZGlkIG5vdCBsaWtlIGEgYnVuZGxlIGNyZWF0ZWQgdXNpbmcgYSBjb21taXQgd2l0aG91dAotICAgYW55IG1lc3NhZ2UgYXMgaXRzIG9uZSBvZiB0aGUgcHJlcmVxdWlzdGVzLgorICAgYW55IG1lc3NhZ2UgYXMgaXRzIG9uZSBvZiB0aGUgcHJlcmVxdWlzaXRlcy4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjIuMy50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMzk0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4yLjMudHh0CkBAIC0wLDAgKzEsMTkgQEAKK0dpdCB2MS44LjIuMyBSZWxlYXNlIE5vdGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PQorCitGaXhlcyBzaW5jZSB2MS44LjIuMgorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICogInJldi1saXN0IC0tc3RkaW4iIGFuZCBmcmllbmRzIGtlcHQgYm9ndXMgcG9pbnRlcnMgaW50byB0aGUgaW5wdXQKKyAgIGJ1ZmZlciBhcm91bmQgYXMgaHVtYW4gcmVhZGFibGUgb2JqZWN0IG5hbWVzLiAgVGhpcyB3YXMgbm90IGEKKyAgIGh1Z2UgcHJvYmxlbSBidXQgd2FzIGV4cG9zZWQgYnkgYSBuZXcgY2hhbmdlIHRoYXQgdXNlcyB0aGVzZQorICAgbmFtZXMgaW4gZXJyb3Igb3V0cHV0LgorCisgKiBXaGVuICJnaXQgZGlmZnRvb2wiIGRyb3ZlICJrZGlmZjMiLCBpdCBtaXN0YWtlbmx5IHBhc3NlZCAtLWF1dG8KKyAgIG9wdGlvbiB0aGF0IHdhcyBtZWFudCB3aGlsZSByZXNvbHZpbmcgbWVyZ2UgY29uZmxpY3RzLgorCisgKiAiZ2l0IHJlbW90ZSBhZGQiIGNvbW1hbmQgZGlkIG5vdCBkaWFnbm9zZSBleHRyYSBjb21tYW5kIGxpbmUKKyAgIGFyZ3VtZW50cyBhcyBhbiBlcnJvciBhbmQgc2lsZW50bHkgaWdub3JlZCB0aGVtLgorCitBbHNvIGNvbnRhaW5zIGEgaGFuZGZ1bCBvZiB0cml2aWFsIGNvZGUgY2xlYW4tdXBzLCBkb2N1bWVudGF0aW9uCit1cGRhdGVzLCB1cGRhdGVzIHRvIHRoZSB0ZXN0IHN1aXRlLCBldGMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLjEudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4xLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzNlYTE4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4xLnR4dApAQCAtMCwwICsxLDE0IEBACitHaXQgdjEuOC4zLjEgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZpeGVzIHNpbmNlIHYxLjguMworLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAqIFdoZW4gJEhPTUUgaXMgbWlzY29uZmlndXJlZCB0byBwb2ludCBhdCBhbiB1bnJlYWRhYmxlIGRpcmVjdG9yeSwgd2UKKyAgIHVzZWQgdG8gY29tcGxhaW4gYW5kIGRpZS4gVGhlIGNoZWNrIGhhcyBiZWVuIGxvb3NlbmVkLgorCisgKiBIYW5kbGluZyBvZiBuZWdhdGl2ZSBleGNsdWRlIHBhdHRlcm4gZm9yIGRpcmVjdG9yaWVzICIhZGlyIiB3YXMKKyAgIGJyb2tlbiBpbiB0aGUgdXBkYXRlIHRvIHYxLjguMy4KKworQWxzbyBjb250YWlucyBhIGhhbmRmdWwgb2YgdHJpdmlhbCBjb2RlIGNsZWFuLXVwcywgZG9jdW1lbnRhdGlvbgordXBkYXRlcywgdXBkYXRlcyB0byB0aGUgdGVzdCBzdWl0ZSwgZXRjLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4yLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuMi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhZTE0MgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuMi50eHQKQEAgLTAsMCArMSw1OSBAQAorR2l0IHYxLjguMy4yIFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ZpeGVzIHNpbmNlIHYxLjguMy4xCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBDbG9uaW5nIHdpdGggImdpdCBjbG9uZSAtLWRlcHRoIE4iIHdoaWxlIGZldGNoLmZzY2tvYmplY3RzIChvcgorICAgdHJhbnNmZXIuZnNja29iamVjdHMpIGlzIHNldCB0byB0cnVlIGRpZCBub3QgdGVsbCB0aGUgY3V0LW9mZgorICAgcG9pbnRzIG9mIHRoZSBzaGFsbG93IGhpc3RvcnkgdG8gdGhlIHByb2Nlc3MgdGhhdCB2YWxpZGF0ZXMgdGhlCisgICBvYmplY3RzIGFuZCB0aGUgaGlzdG9yeSByZWNlaXZlZCwgY2F1c2luZyB0aGUgdmFsaWRhdGlvbiB0byBmYWlsLgorCisgKiAiZ2l0IGNoZWNrb3V0IGZvbyIgRFdJTXMgdGhlIGludGVuZGVkICJ1cHN0cmVhbSIgYW5kIHR1cm5zIGl0IGludG8KKyAgICJnaXQgY2hlY2tvdXQgLXQgLWIgZm9vIHJlbW90ZXMvb3JpZ2luL2ZvbyIuIFRoaXMgY29kZXBhdGggaGFzIGJlZW4KKyAgIHVwZGF0ZWQgdG8gY29ycmVjdGx5IHRha2UgZXhpc3RpbmcgcmVtb3RlIGRlZmluaXRpb25zIGludG8gYWNjb3VudC4KKworICogImdpdCBmZXRjaCIgaW50byBhIHNoYWxsb3cgcmVwb3NpdG9yeSBmcm9tIGEgcmVwb3NpdG9yeSB0aGF0IGRvZXMKKyAgIG5vdCBrbm93IGFib3V0IHRoZSBzaGFsbG93IGJvdW5kYXJ5IGNvbW1pdHMgKGUuZy4gYSBkaWZmZXJlbnQgZm9yaworICAgZnJvbSB0aGUgcmVwb3NpdG9yeSB0aGUgY3VycmVudCBzaGFsbG93IHJlcG9zaXRvcnkgd2FzIGNsb25lZCBmcm9tKQorICAgZGlkIG5vdCB3b3JrIGNvcnJlY3RseS4KKworICogImdpdCBzdWJ0cmVlIiAoaW4gY29udHJpYi8pIGhhZCBvbmUgY29kZXBhdGggd2l0aCBsb29zZSBlcnJvcgorICAgY2hlY2tzIHRvIGxvc2UgZGF0YSBhdCB0aGUgcmVtb3RlIHNpZGUuCisKKyAqICJnaXQgbG9nIC0tYW5jZXN0cnktcGF0aCBBLi4uQiIgZGlkIG5vdCB3b3JrIGFzIGV4cGVjdGVkLCBhcyBpdCBkaWQKKyAgIG5vdCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBmYWN0IHRoYXQgdGhlIG1lcmdlIGJhc2UgYmV0d2VlbiBBIGFuZCBCCisgICB3YXMgdGhlIGJvdHRvbSBvZiB0aGUgcmFuZ2UgYmVpbmcgc3BlY2lmaWVkLgorCisgKiAiZ2l0IGRpZmYgLWMgLXAiIHdhcyBub3Qgc2hvd2luZyBhIGRlbGV0ZWQgbGluZSBmcm9tIGEgaHVuayB3aGVuCisgICBhbm90aGVyIGh1bmsgaW1tZWRpYXRlbHkgYmVnaW5zIHdoZXJlIHRoZSBlYXJsaWVyIG9uZSBlbmRzLgorCisgKiAiZ2l0IG1lcmdlIEB7LTF9fjIyIiB3YXMgcmV3cml0dGVuIHRvICJnaXQgbWVyZ2UgZnJvdHpAezF9fjIyIgorICAgaW5jb3JyZWN0bHkgd2hlbiB5b3VyIHByZXZpb3VzIGJyYW5jaCB3YXMgImZyb3R6IiAoaXQgc2hvdWxkIGJlCisgICByZXdyaXR0ZW4gdG8gImdpdCBtZXJnZSBmcm90en4yMiIgaW5zdGVhZCkuCisKKyAqICJnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHktbWVzc2FnZSAtbSAnJyIgc2hvdWxkIG5vdCBzdGFydCBhbgorICAgZWRpdG9yLgorCisgKiAiZ2l0IHB1c2ggLS1bbm8tXXZlcmlmeSIgd2FzIG5vdCBkb2N1bWVudGVkLgorCisgKiBBbiBlbnRyeSBmb3IgImZpbGU6Ly8iIHNjaGVtZSBpbiB0aGUgZW51bWVyYXRpb24gb2YgVVJMIHR5cGVzIEdpdAorICAgY2FuIHRha2UgaW4gdGhlIEhUTUwgZG9jdW1lbnRhdGlvbiB3YXMgbWFkZSBpbnRvIGEgY2xpY2thYmxlIGxpbmsKKyAgIGJ5IG1pc3Rha2UuCisKKyAqIHpzaCBwcm9tcHQgc2NyaXB0IHRoYXQgYm9ycm93ZWQgZnJvbSBiYXNoIHByb21wdCBzY3JpcHQgZGlkIG5vdAorICAgd29yayBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGFycmF5IHZhcmlhYmxlIG5vdGF0aW9uIGJldHdlZW4KKyAgIHRoZXNlIHR3byBzaGVsbHMuCisKKyAqIFRoZSBiYXNoIHByb21wdCBjb2RlIChpbiBjb250cmliLykgZGlzcGxheWVkIHRoZSBuYW1lIG9mIHRoZSBicmFuY2gKKyAgIGJlaW5nIHJlYmFzZWQgd2hlbiAicmViYXNlIC1pLy1tLy1wIiBtb2RlcyBhcmUgaW4gdXNlLCBidXQgbm90IHRoZQorICAgcGxhaW4gdmFuaWxsYSAicmViYXNlIi4KKworICogImdpdCBwdXNoICR0aGVyZSBIRUFEOmJyYW5jaCIgZGlkIG5vdCByZXNvbHZlIEhFQUQgZWFybHkgZW5vdWdoLCBzbworICAgaXQgd2FzIGVhc3kgdG8gZmxpcCBpdCBhcm91bmQgd2hpbGUgcHVzaCBpcyBzdGlsbCBnb2luZyBvbiBhbmQgcHVzaAorICAgb3V0IGEgYnJhbmNoIHRoYXQgdGhlIHVzZXIgZGlkIG5vdCBvcmlnaW5hbGx5IGludGVuZGVkIHdoZW4gdGhlCisgICBjb21tYW5kIHdhcyBzdGFydGVkLgorCisgKiAiZGlmZnRvb2wgLS1kaXItZGlmZiIgZGlkIG5vdCBjb3B5IGJhY2sgY2hhbmdlcyBtYWRlIGJ5IHRoZQorICAgZW5kLXVzZXIgaW4gdGhlIGRpZmYgdG9vbCBiYWNrZW5kIHRvIHRoZSB3b3JraW5nIHRyZWUgaW4gc29tZQorICAgY2FzZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLjMudHh0IGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmE0ZjRkCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy4zLnR4dApAQCAtMCwwICsxLDQ3IEBACitHaXQgdjEuOC4zLjMgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRml4ZXMgc2luY2UgdjEuOC4zLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAqICJnaXQgYXBwbHkiIHBhcnNlZCBwYXRjaGVzIHRoYXQgYWRkIG5ldyBmaWxlcywgZ2VuZXJhdGVkIGJ5IHByb2dyYW1zCisgICBvdGhlciB0aGFuIEdpdCwgaW5jb3JyZWN0bHkuICBUaGlzIGlzIGFuIG9sZCBicmVha2FnZSBpbiB2MS43LjExLgorCisgKiBPbGRlciBjVVJMIHdhbnRlZCBwaWVjZSBvZiBtZW1vcnkgd2UgY2FsbCBpdCB3aXRoIHRvIGJlIHN0YWJsZSwgYnV0CisgICB3ZSB1cGRhdGVkIHRoZSBhdXRoIG1hdGVyaWFsIGFmdGVyIGhhbmRpbmcgaXQgdG8gYSBjYWxsLgorCisgKiAiZ2l0IHB1bGwiIGludG8gbm90aGluZyB0cmFzaGVkICJsb2NhbCBjaGFuZ2VzIiB0aGF0IHdlcmUgaW4gdGhlCisgICBpbmRleC4KKworICogTWFueSAiZ2l0IHN1Ym1vZHVsZSIgb3BlcmF0aW9ucyBkaWQgbm90IHdvcmsgb24gYSBzdWJtb2R1bGUgYXQgYQorICAgcGF0aCB3aG9zZSBuYW1lIGlzIG5vdCBpbiBBU0NJSS4KKworICogImNoZXJyeS1waWNrIiBoYWQgYSBzbWFsbCBsZWFrIGluIGl0cyBlcnJvciBjb2RlcGF0aC4KKworICogTG9naWMgdXNlZCBieSBnaXQtc2VuZC1lbWFpbCB0byBzdXBwcmVzcyBjYyBtaXNoYW5kbGVkIG5hbWVzIGxpa2UKKyAgICJBIFUuIFRob3IiIDxhdXRob3JAZXhhbXBsZS54ej4sIHdoZXJlIHRoZSBodW1hbiByZWFkYWJsZSBwYXJ0CisgICBuZWVkcyB0byBiZSBxdW90ZWQgKHRoZSB1c2VyIGlucHV0IG1heSBub3QgaGF2ZSB0aGUgZG91YmxlIHF1b3RlcworICAgYXJvdW5kIHRoZSBuYW1lLCBhbmQgY29tcGFyaXNvbiB3YXMgZG9uZSBiZXR3ZWVuIHF1b3RlZCBhbmQKKyAgIHVucXVvdGVkIHN0cmluZ3MpLiAgSXQgYWxzbyBtaXNoYW5kbGVkIG5hbWVzIHRoYXQgbmVlZCBSRkMyMDQ3CisgICBxdW90aW5nLgorCisgKiAiZ2l0d2ViIiBmb3Jnb3QgdG8gY2xlYXIgYSBnbG9iYWwgdmFyaWFibGUgJHNlYXJjaF9yZWdleHAgdXBvbiBlYWNoCisgICByZXF1ZXN0LCBtaXN0YWtlbmx5IGNhcnJ5aW5nIG92ZXIgdGhlIHByZXZpb3VzIHNlYXJjaCB0byBhIG5ldyBvbmUKKyAgIHdoZW4gdXNlZCBhcyBhIHBlcnNpc3RlbnQgQ0dJLgorCisgKiBUaGUgd2lsZG1hdGNoIGVuZ2luZSBkaWQgbm90IGhvbm9yIFdNX0NBU0VGT0xEIG9wdGlvbiBjb3JyZWN0bHkuCisKKyAqICJnaXQgbG9nIC1jIC0tZm9sbG93ICRwYXRoIiBzZWdmYXVsdGVkIHVwb24gaGl0dGluZyB0aGUgY29tbWl0IHRoYXQKKyAgIHJlbmFtZWQgdGhlICRwYXRoIGJlaW5nIGZvbGxvd2VkLgorCisgKiBXaGVuIGEgcmVmbG9nIG5vdGF0aW9uIGlzIHVzZWQgZm9yIGltcGxpY2l0ICJjdXJyZW50IGJyYW5jaCIsCisgICBlLmcuICJnaXQgbG9nIEB7dX0iLCB3ZSBkaWQgbm90IHNheSB3aGljaCBicmFuY2ggYW5kIHdvcnNlIHNhaWQKKyAgICJicmFuY2ggJyciIGluIHRoZSBlcnJvciBtZXNzYWdlcy4KKworICogTWFjIE9TIFggZG9lcyBub3QgbGlrZSB0byB3cml0ZSgyKSBtb3JlIHRoYW4gSU5UX01BWCBudW1iZXIgb2YKKyAgIGJ5dGVzOyB3b3JrIGl0IGFyb3VuZCBieSBjaG9wcGluZyB3cml0ZSgyKSBpbnRvIHNtYWxsZXIgcGllY2VzLgorCisgKiBOZXdlciBNYWNPUyBYIGVuY291cmFnZXMgdGhlIHByb2dyYW1zIHRvIGNvbXBpbGUgYW5kIGxpbmsgd2l0aAorICAgdGhlaXIgQ29tbW9uQ3J5cHRvLCBub3Qgd2l0aCBPcGVuU1NMLgorCitBbHNvIGNvbnRhaW5zIHZhcmlvdXMgbWlub3IgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy40LnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuNC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZmMTA2ZQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjMuNC50eHQKQEAgLTAsMCArMSwyMCBAQAorR2l0IHYxLjguMy40IFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgdXBkYXRlIGlzIG1vc3RseSB0byBwcm9wYWdhdGUgZG9jdW1lbnRhdGlvbiBmaXhlcyBhbmQgdGVzdAordXBkYXRlcyBmcm9tIHRoZSBtYXN0ZXIgZnJvbnQgYmFjayB0byB0aGUgbWFpbnRlbmFuY2UgdHJhY2suCisKK0ZpeGVzIHNpbmNlIHYxLjguMy4zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBUaGUgYmlzZWN0IGxvZyBsaXN0ZWQgaW5jb3JyZWN0IGNvbW1pdHMgd2hlbiBiaXNlY3Rpb24gZW5kcyB3aXRoCisgICBvbmx5IHNraXBwZWQgb25lcy4KKworICogVGhlIHRlc3QgY292ZXJhZ2UgZnJhbWV3b3JrIHdhcyBsZWZ0IGJyb2tlbiBmb3Igc29tZSB0aW1lLgorCisgKiBUaGUgdGVzdCBzdWl0ZSBmb3IgSFRUUCB0cmFuc3BvcnQgZGlkIG5vdCBydW4gd2l0aCBBcGFjaGUgMi40LgorCisgKiAiZ2l0IGRpZmYiIHVzZWQgdG8gZmFpbCB3aGVuIGNvcmUuc2FmZWNybGYgaXMgc2V0IGFuZCB0aGUgd29ya2luZworICAgdHJlZSBjb250ZW50cyBoYWQgbWl4ZWQgQ1JMRi9MRiBsaW5lIGVuZGluZ3MuIENvbW1pdHRpbmcgc3VjaCBhCisgICBjb250ZW50IG11c3QgYmUgcHJvaGliaXRlZCwgYnV0ICJnaXQgZGlmZiIgc2hvdWxkIGhlbHAgdGhlIHVzZXIgdG8KKyAgIGxvY2F0ZSBhbmQgZml4IHN1Y2ggcHJvYmxlbXMgd2l0aG91dCBmYWlsaW5nLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguMy50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLnR4dAppbmRleCBiMGNkODg3Li5lYWQ1NjhlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLnR4dApAQCAtNDEsMTEgKzQxLDIwIEBACiAKIEZvcmVpZ24gaW50ZXJmYWNlCiAKLSAqIHJlbW90ZS1oZyBhbmQgcmVtb3RlLWJ6ciBoZWxwZXJzIChpbiBjb250cmliLykgaGF2ZSBiZWVuIHVwZGF0ZWQuCisgKiByZW1vdGUtaGcgYW5kIHJlbW90ZS1ienIgaGVscGVycyAoaW4gY29udHJpYi8gc2luY2UgdjEuOC4yKSBoYXZlCisgICBiZWVuIHVwZGF0ZWQ7IGVzcGVjaWFsbHksIHRoZSBsYXR0ZXIgaGFzIGJlZW4gZG9uZSBpbiBhbgorICAgYWNjZWxlcmF0ZWQgc2NoZWR1bGUgKHJlYWQ6IHdlIG1heSBub3QgaGF2ZSBtZXJnZWQgdG8gdGhpcyByZWxlYXNlCisgICBpZiB3ZSB3ZXJlIGZvbGxvd2luZyB0aGUgdXN1YWwgImNvb2sgc3VmZmljaWVudGx5IGluIG5leHQgYmVmb3JlCisgICB1bmxlYXNoaW5nIGl0IHRvIHRoZSB3b3JsZCIgd29ya2Zsb3cpIGluIG9yZGVyIHRvIGhlbHAgRW1hY3MgZm9sa3MsCisgICB3aG9zZSBwcmltYXJ5IFNDTSBzZWVtcyB0byBiZSBzdGFnbmF0aW5nLgogCiAKIFVJLCBXb3JrZmxvd3MgJiBGZWF0dXJlcwogCisgKiBBIGhhbmRmdWwgb2YgdXBkYXRlcyBhcHBsaWVkIHRvIGdpdGssIGluY2x1ZGluZyBhbiBhZGRpdGlvbiBvZgorICAgInJldmVydCIgYWN0aW9uLCBzaG93aW5nIGRhdGVzIGluIHRhZ3MgaW4gYSBuaWNlciB3YXksIG1ha2luZworICAgY29sb3JzIGNvbmZpZ3VyYWJsZSwgYW5kIHN1cHBvcnQgZm9yIC1HJ3BpY2theGUnIHNlYXJjaC4KKwogICogVGhlIHByb21wdCBzdHJpbmcgZ2VuZXJhdG9yIChpbiBjb250cmliL2NvbXBsZXRpb24vKSBsZWFybmVkIHRvCiAgICBzaG93IGhvdyBtYW55IGNoYW5nZXMgdGhlcmUgYXJlIGluIHRvdGFsIGFuZCBob3cgbWFueSBoYXZlIGJlZW4KICAgIHJlcGxheWVkIGR1cmluZyBhICJnaXQgcmViYXNlIiBzZXNzaW9uLgpAQCAtMTA1LDkgKzExNCwxMCBAQAogICAgb2YgZXJyb25lb3VzIGlucHV0cyB3YXMgc3Vib3B0aW1hbCBhbmQgaGFzIGJlZW4gaW1wcm92ZWQuCiAKICAqIFdoZW4gdGhlIGludGVyYWN0aXZlIGFjY2VzcyB0byBnaXQtc2hlbGwgaXMgbm90IGVuYWJsZWQsIGl0IGlzc3VlcwotICAgYSBtZXNzYWdlIG1lYW50IHRvIGhlbHAgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGVuYWJsZSBpdC4KLSAgIEFuIGV4cGxpY2l0IHdheSB0byBoZWxwIHRoZSBlbmQgdXNlcnMgd2hvIGNvbm5lY3QgdG8gdGhlIHNlcnZpY2UgYnkKLSAgIGlzc3VpbmcgY3VzdG9tIG1lc3NhZ2VzIHRvIHJlZnVzZSBzdWNoIGFuIGFjY2VzcyBoYXMgYmVlbiBhZGRlZC4KKyAgIGEgbWVzc2FnZSBtZWFudCB0byBoZWxwIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBlbmFibGUgaXQuICBBbgorICAgZXhwbGljaXQgd2F5IGhhcyBiZWVuIGFkZGVkIHRvIGlzc3VlIGN1c3RvbSBtZXNzYWdlcyB0byByZWZ1c2UgYW4KKyAgIGFjY2VzcyBvdmVyIHRoZSBuZXR3b3JrIHRvIGhlbHAgdGhlIGVuZCB1c2VycyB3aG8gY29ubmVjdCB0byB0aGUKKyAgIHNlcnZpY2UgZXhwZWN0aW5nIGFuIGludGVyYWN0aXZlIHNoZWxsLgogCiAgKiBJbiBhZGRpdGlvbiB0byB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBlZGl0cyB0aGUgbG9nIG1lc3NhZ2Ugd2l0aAogICAgdGhlICJlKWRpdCIgb3B0aW9uIG9mICJhbSAtaSIsIHJlcGxhY2UgdGhlICJBcHBseWluZzogdGhpcyBwYXRjaCIKQEAgLTExNyw4ICsxMjcsOCBAQAogICogImdpdCBzdGF0dXMiIHN1Z2dlc3RzIHVzZXJzIHRvIGxvb2sgaW50byB1c2luZyAtLXVudHJhY2tlZD1ubyBvcHRpb24KICAgIHdoZW4gaXQgdGFrZXMgdG9vIGxvbmcuCiAKLSAqICJnaXQgc3RhdHVzIiBzaG93cyBhIGJpdCBtb3JlIGluZm9ybWF0aW9uIGR1cmluZyBhCi0gICByZWJhc2UvYmlzZWN0IHNlc3Npb24uCisgKiAiZ2l0IHN0YXR1cyIgc2hvd3MgYSBiaXQgbW9yZSBpbmZvcm1hdGlvbiBkdXJpbmcgYSByZWJhc2UvYmlzZWN0CisgICBzZXNzaW9uLgogCiAgKiAiZ2l0IGZldGNoIiBsZWFybmVkIHRvIGZldGNoIGEgY29tbWl0IGF0IHRoZSB0aXAgb2YgYW4gdW5hZHZlcnRpc2VkCiAgICByZWYgYnkgc3BlY2lmeWluZyBhIHJhdyBvYmplY3QgbmFtZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUgd2hlbiB0aGUKQEAgLTIzNSw3ICsyNDUsNiBAQAogCiAgKiBWYXJpb3VzIHN1YmNvbW1hbmRzIG9mICJnaXQgcmVtb3RlIiBzaW1wbHkgaWdub3JlZCBleHRyYW5lb3VzCiAgICBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGluc3RlYWQgb2YgZGlhZ25vc2luZyB0aGVtIGFzIGVycm9ycy4KLSAgIChtZXJnZSBiMTdkZDNmIHRyL3JlbW90ZS10aWdodGVuLWNvbW1hbmRsaW5lLXBhcnNpbmcgbGF0ZXIgdG8gbWFpbnQpLgogCiAgKiBXaGVuIHJlY2VpdmUtcGFjayBkZXRlY3RzIGFuIGVycm9yIGluIHRoZSBwYWNrIGhlYWRlciBpdCByZWNlaXZlZCBpbgogICAgb3JkZXIgdG8gZGVjaWRlIHdoaWNoIG9mIHVucGFjay1vYmplY3RzIG9yIGluZGV4LXBhY2sgdG8gcnVuLCBpdApAQCAtMjU4LDcgKzI2Nyw2IEBACiAgICBidWZmZXIgYXJvdW5kIGFzIGh1bWFuIHJlYWRhYmxlIG9iamVjdCBuYW1lcy4gIFRoaXMgd2FzIG5vdCBhIGh1Z2UKICAgIHByb2JsZW0gYnV0IHdhcyBleHBvc2VkIGJ5IGEgbmV3IGNoYW5nZSB0aGF0IHVzZXMgdGhlc2UgbmFtZXMgaW4KICAgIGVycm9yIG91dHB1dC4KLSAgIChtZXJnZSA3MGQyNmM2IHRyL2NvcHktcmV2aXNpb25zLWZyb20tc3RkaW4gbGF0ZXIgdG8gbWFpbnQpLgogCiAgKiBTbWFydC1jYXBhYmxlIEhUVFAgc2VydmVycyB3ZXJlIG5vdCByZXN0cmljdGVkIHZpYSB0aGUKICAgIEdJVF9OQU1FU1BBQ0UgbWVjaGFuaXNtIHdoZW4gdGFsa2luZyB3aXRoIGNvbW1pdC13YWxraW5nIGNsaWVudHMsCkBAIC0zMDMsMTEgKzMxMSw5IEBACiAKICAqIEZpeCBhIDEuOC4xLnggcmVncmVzc2lvbiB0aGF0IHN0b3BwZWQgbWF0Y2hpbmcgImRpciIgKHdpdGhvdXQgYQogICAgdHJhaWxpbmcgc2xhc2gpIHRvIGEgZGlyZWN0b3J5ICJkaXIiLgotICAgKG1lcmdlIGVmYTVmODIgamMvZGlyZWN0b3J5LWF0dHJzLXJlZ3Jlc3Npb24tZml4IGxhdGVyIHRvIG1haW50LTEuOC4xKS4KIAogICogImdpdCBhcHBseSAtLXdoaXRlc3BhY2U9Zml4IiB3YXMgbm90IHByZXBhcmVkIHRvIHNlZSBhIGxpbmUgZ2V0dGluZwogICAgbG9uZ2VyIGFmdGVyIGZpeGluZyB3aGl0ZXNwYWNlcyAoZS5nLiB0YWItaW4taW5kZW50IGFrYSBQeXRob24pLgotICAgKG1lcmdlIDMyOWIyNmUgamMvYXBwbHktd3MtZml4LXRhYi1pbi1pbmRlbnQgbGF0ZXIgdG8gbWFpbnQtMS44LjEpLgogCiAgKiBUaGUgcHJvbXB0IHN0cmluZyBnZW5lcmF0b3IgKGluIGNvbnRyaWIvY29tcGxldGlvbi8pIGRpZCBub3Qgbm90aWNlCiAgICB3aGVuIHdlIGFyZSBpbiBhIG1pZGRsZSBvZiBhICJnaXQgcmV2ZXJ0IiBzZXNzaW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC4xLnR4dCBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2NTQ1YQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKQEAgLTAsMCArMSw1MCBAQAorR2l0IHYxLjguNC4xIFJlbGVhc2UgTm90ZXMKKz09PT09PT09PT09PT09PT09PT09PT09PQorCitGaXhlcyBzaW5jZSB2MS44LjQKKy0tLS0tLS0tLS0tLS0tLS0tLQorCisgKiBTb21lIHBlb3BsZSBzdGlsbCB1c2UgcmF0aGVyIG9sZCB2ZXJzaW9ucyBvZiBiYXNoLCB3aGljaCBjYW5ub3QKKyAgIGdyb2sgc29tZSBjb25zdHJ1Y3RzIGxpa2UgJ3ByaW50ZiAtdiB2YXJuYW1lJyB0aGUgcHJvbXB0IGFuZAorICAgY29tcGxldGlvbiBjb2RlIHN0YXJ0ZWQgdG8gdXNlIHJlY2VudGx5LiAgVGhlIGNvbXBsZXRpb24gYW5kCisgICBwcm9tcHQgc2NyaXB0cyBoYXZlIGJlZW4gYWRqdXN0ZWQgdG8gd29yayBiZXR0ZXIgd2l0aCB0aGVzZSBvbGQKKyAgIHZlcnNpb25zIG9mIGJhc2guCisKKyAqICJnaXQgcmViYXNlIC1pIiBoYWQgYSBtaW5vciBidWcgKHRoZSBzYW1lIGNvdWxkIGJlIGluIG90aGVyCisgICBwcm9ncmFtcywgYXMgdGhlIHJvb3QgY2F1c2UgaXMgcHJldHR5IGdlbmVyaWMpIHdoZXJlIHRoZSBjb2RlCisgICBmZWVkcyBhIHJhbmRvbSwgZGF0YSBkZXBlbmRlYW50IHN0cmluZyB0byAnZWNobycgYW5kIGV4cGVjdHMgaXQKKyAgIHRvIGNvbWUgb3V0IGxpdGVyYWxseS4KKworICogInN1Ym1vZHVsZS48bmFtZT4ucGF0aCIgdmFyaWFibGUgbWlzdGFrZW5seSBzZXQgdG8gdGhlIGVtcHR5CisgICAidHJ1ZSIgY2F1c2VkIHRoZSBjb25maWd1cmF0aW9uIHBhcnNlciB0byBzZWdmYXVsdC4KKworICogT3V0cHV0IGZyb20gImdpdCBsb2cgLS1mdWxsLWRpZmYgLS0gPHBhdGhzcGVjPiIgbG9va2VkIHN0cmFuZ2UsCisgICBiZWNhdXNlIGNvbXBhcmlzb24gd2FzIGRvbmUgd2l0aCB0aGUgcHJldmlvdXMgYW5jZXN0b3IgdGhhdAorICAgdG91Y2hlZCB0aGUgc3BlY2lmaWVkIDxwYXRoc3BlYz4sIGNhdXNpbmcgdGhlIHBhdGNoZXMgZm9yIHBhdGhzCisgICBvdXRzaWRlIHRoZSBwYXRoc3BlYyB0byBzaG93IG1vcmUgdGhhbiB0aGUgc2luZ2xlIGNvbW1pdCBoYXMKKyAgIGNoYW5nZWQuCisKKyAqIFRoZSBhdXRvLXRhZy1mb2xsb3dpbmcgY29kZSBpbiAiZ2l0IGZldGNoIiB0cmllcyB0byByZXVzZSB0aGUKKyAgIHNhbWUgdHJhbnNwb3J0IHR3aWNlIHdoZW4gdGhlIHNlcnZpbmcgZW5kIGRvZXMgbm90IGNvb3BlcmF0ZSBhbmQKKyAgIGRvZXMgbm90IGdpdmUgdGFncyB0aGF0IHBvaW50IHRvIGNvbW1pdHMgdGhhdCBhcmUgYXNrZWQgZm9yIGFzCisgICBwYXJ0IG9mIHRoZSBwcmltYXJ5IHRyYW5zZmVyLiAgVW5mb3J0dW5hdGVseSwgR2l0LWF3YXJlIHRyYW5zcG9ydAorICAgaGVscGVyIGludGVyZmFjZSBpcyBub3QgZGVzaWduZWQgdG8gYmUgdXNlZCBtb3JlIHRoYW4gb25jZSwgaGVuY2UKKyAgIHRoaXMgZGlkIG5vdCB3b3JrIG92ZXIgc21hcnQtaHR0cCB0cmFuc2Zlci4gIEZpeGVkLgorCisgKiBTZW5kIGEgbGFyZ2UgcmVxdWVzdCB0byByZWFkKDIpL3dyaXRlKDIpIGFzIGEgc21hbGxlciBidXQgc3RpbGwKKyAgIHJlYXNvbmFibHkgbGFyZ2UgY2h1bmtzLCB3aGljaCB3b3VsZCBpbXByb3ZlIHRoZSBsYXRlbmN5IHdoZW4gdGhlCisgICBvcGVyYXRpb24gbmVlZHMgdG8gYmUga2lsbGVkIGFuZCBpbmNpZGVudGFsbHkgd29ya3MgYXJvdW5kIGJyb2tlbgorICAgNjQtYml0IHN5c3RlbXMgdGhhdCBjYW5ub3QgdGFrZSBhIDJHQiB3cml0ZSBvciByZWFkIGluIG9uZSBnby4KKworICogQSAiLm1haWxtYXAiIGZpbGUgdGhhdCBlbmRzIHdpdGggYW4gaW5jb21wbGV0ZSBsaW5lLCB3aGVuIHJlYWQKKyAgIGZyb20gYSBibG9iLCB3YXMgbm90IGhhbmRsZWQgcHJvcGVybHkuCisKKyAqIFRoZSByZWNlbnQgInNob3J0LWN1dCBjbG9uZSBjb25uZWN0aXZpdHkgY2hlY2siIHRvcGljIGJyb2tlIGEKKyAgIHNoYWxsb3cgcmVwb3NpdG9yeSB3aGVuIGEgZmV0Y2ggb3BlcmF0aW9uIHRyaWVzIHRvIGF1dG8tZm9sbG93CisgICB0YWdzLgorCisgKiBPbiBwbGF0Zm9ybXMgd2l0aCBmZ2V0YygpIGFuZCBmcmllbmRzIGRlZmluZWQgYXMgbWFjcm9zLAorICAgdGhlIGNvbmZpZ3VyYXRpb24gcGFyc2VyIGRpZCBub3QgY29tcGlsZS4KKworQWxzbyBjb250YWlucyBhIGhhbmRmdWwgb2YgdHJpdmlhbCBjb2RlIGNsZWFuLXVwcywgZG9jdW1lbnRhdGlvbgordXBkYXRlcywgdXBkYXRlcyB0byB0aGUgdGVzdCBzdWl0ZSwgZXRjLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC50eHQgYi9Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC40LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmY2ODFiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9SZWxOb3Rlcy8xLjguNC50eHQKQEAgLTAsMCArMSw0ODYgQEAKK0dpdCB2MS44LjQgUmVsZWFzZSBOb3RlcworPT09PT09PT09PT09PT09PT09PT09PT09CisKK0JhY2t3YXJkIGNvbXBhdGliaWxpdHkgbm90ZXMgKGZvciBHaXQgMi4wKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doZW4gImdpdCBwdXNoIFskdGhlcmVdIiBkb2VzIG5vdCBzYXkgd2hhdCB0byBwdXNoLCB3ZSBoYXZlIHVzZWQgdGhlCit0cmFkaXRpb25hbCAibWF0Y2hpbmciIHNlbWFudGljcyBzbyBmYXIgKGFsbCB5b3VyIGJyYW5jaGVzIHdlcmUgc2VudAordG8gdGhlIHJlbW90ZSBhcyBsb25nIGFzIHRoZXJlIGFscmVhZHkgYXJlIGJyYW5jaGVzIG9mIHRoZSBzYW1lIG5hbWUKK292ZXIgdGhlcmUpLiAgSW4gR2l0IDIuMCwgdGhlIGRlZmF1bHQgd2lsbCBjaGFuZ2UgdG8gdGhlICJzaW1wbGUiCitzZW1hbnRpY3MgdGhhdCBwdXNoZXM6CisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBhbmQgb25seQorICAgd2hlbiB0aGUgY3VycmVudCBicmFuY2ggaXMgc2V0IHRvIGludGVncmF0ZSB3aXRoIHRoYXQgcmVtb3RlCisgICBicmFuY2gsIGlmIHlvdSBhcmUgcHVzaGluZyB0byB0aGUgc2FtZSByZW1vdGUgYXMgeW91IGZldGNoIGZyb207IG9yCisKKyAtIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoIHRvIHRoZSBicmFuY2ggd2l0aCB0aGUgc2FtZSBuYW1lLCBpZiB5b3UKKyAgIGFyZSBwdXNoaW5nIHRvIGEgcmVtb3RlIHRoYXQgaXMgbm90IHdoZXJlIHlvdSB1c3VhbGx5IGZldGNoIGZyb20uCisKK1VzZSB0aGUgdXNlciBwcmVmZXJlbmNlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgInB1c2guZGVmYXVsdCIgdG8KK2NoYW5nZSB0aGlzLiAgSWYgeW91IGFyZSBhbiBvbGQtdGltZXIgd2hvIGlzIHVzZWQgdG8gdGhlICJtYXRjaGluZyIKK3NlbWFudGljcywgeW91IGNhbiBzZXQgdGhlIHZhcmlhYmxlIHRvICJtYXRjaGluZyIgdG8ga2VlcCB0aGUKK3RyYWRpdGlvbmFsIGJlaGF2aW91ci4gIElmIHlvdSB3YW50IHRvIGxpdmUgaW4gdGhlIGZ1dHVyZSBlYXJseSwgeW91CitjYW4gc2V0IGl0IHRvICJzaW1wbGUiIHRvZGF5IHdpdGhvdXQgd2FpdGluZyBmb3IgR2l0IDIuMC4KKworV2hlbiAiZ2l0IGFkZCAtdSIgKGFuZCAiZ2l0IGFkZCAtQSIpIGlzIHJ1biBpbnNpZGUgYSBzdWJkaXJlY3RvcnkgYW5kCitkb2VzIG5vdCBzcGVjaWZ5IHdoaWNoIHBhdGhzIHRvIGFkZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBpdAord2lsbCBvcGVyYXRlIG9uIHRoZSBlbnRpcmUgdHJlZSBpbiBHaXQgMi4wIGZvciBjb25zaXN0ZW5jeQord2l0aCAiZ2l0IGNvbW1pdCAtYSIgYW5kIG90aGVyIGNvbW1hbmRzLiAgVGhlcmUgd2lsbCBiZSBubworbWVjaGFuaXNtIHRvIG1ha2UgcGxhaW4gImdpdCBhZGQgLXUiIGJlaGF2ZSBsaWtlICJnaXQgYWRkIC11IC4iLgorQ3VycmVudCB1c2VycyBvZiAiZ2l0IGFkZCAtdSIgKHdpdGhvdXQgYSBwYXRoc3BlYykgc2hvdWxkIHN0YXJ0Cit0cmFpbmluZyB0aGVpciBmaW5nZXJzIHRvIGV4cGxpY2l0bHkgc2F5ICJnaXQgYWRkIC11IC4iCitiZWZvcmUgR2l0IDIuMCBjb21lcy4gIEEgd2FybmluZyBpcyBpc3N1ZWQgd2hlbiB0aGVzZSBjb21tYW5kcyBhcmUKK3J1biB3aXRob3V0IGEgcGF0aHNwZWMgYW5kIHdoZW4geW91IGhhdmUgbG9jYWwgY2hhbmdlcyBvdXRzaWRlIHRoZQorY3VycmVudCBkaXJlY3RvcnksIGJlY2F1c2UgdGhlIGJlaGF2aW91ciBpbiBHaXQgMi4wIHdpbGwgYmUgZGlmZmVyZW50Citmcm9tIHRvZGF5J3MgdmVyc2lvbiBpbiBzdWNoIGEgc2l0dWF0aW9uLgorCitJbiBHaXQgMi4wLCAiZ2l0IGFkZCA8cGF0aD4iIHdpbGwgYmVoYXZlIGFzICJnaXQgYWRkIC1BIDxwYXRoPiIsIHNvCit0aGF0ICJnaXQgYWRkIGRpci8iIHdpbGwgbm90aWNlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20gdGhlIGRpcmVjdG9yeQorYW5kIHJlY29yZCB0aGUgcmVtb3ZhbC4gIFZlcnNpb25zIGJlZm9yZSBHaXQgMi4wLCBpbmNsdWRpbmcgdGhpcworcmVsZWFzZSwgd2lsbCBrZWVwIGlnbm9yaW5nIHJlbW92YWxzLCBidXQgdGhlIHVzZXJzIHdobyByZWx5IG9uIHRoaXMKK2JlaGF2aW91ciBhcmUgZW5jb3VyYWdlZCB0byBzdGFydCB1c2luZyAiZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoPiIKK25vdyBiZWZvcmUgMi4wIGlzIHJlbGVhc2VkLgorCisKK1VwZGF0ZXMgc2luY2UgdjEuOC4zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3JlaWduIGludGVyZmFjZXMsIHN1YnN5c3RlbXMgYW5kIHBvcnRzLgorCisgKiBDeWd3aW4gcG9ydCBoYXMgYmVlbiB1cGRhdGVkIGZvciBtb3JlIHJlY2VudCBDeWd3aW4gMS43LgorCisgKiAiZ2l0IHJlYmFzZSAtaSIgbm93IGhvbm9ycyAtLXN0cmF0ZWd5IGFuZCAtWCBvcHRpb25zLgorCisgKiBHaXQtZ3VpIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaXRzIDAuMTguMCB2ZXJzaW9uLgorCisgKiBNZWRpYVdpa2kgcmVtb3RlIGhlbHBlciAoaW4gY29udHJpYi8pIGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRoZQorICAgY3JlZGVudGlhbCBoZWxwZXIgaW50ZXJmYWNlIGZyb20gR2l0LnBtLgorCisgKiBVcGRhdGUgYnVpbGQgZm9yIEN5Z3dpbiAxLls1N10uICBUb3JzdGVuIELDtmdlcnNoYXVzZW4gcmVwb3J0cyB0aGF0CisgICB0aGlzIGlzIGZpbmUgd2l0aCBDeWd3aW4gMS43ICgkZ21hbmUvMjI1ODI0KSBzbyBsZXQncyB0cnkgbW92aW5nIGl0CisgICBhaGVhZC4KKworICogVGhlIGNyZWRlbnRpYWwgaGVscGVyIHRvIHRhbGsgdG8ga2V5Y2hhaW4gb24gT1MgWCAoaW4gY29udHJpYi8pIGhhcworICAgYmVlbiB1cGRhdGVkIHRvIGtpY2sgaW4gbm90IGp1c3Qgd2hlbiB0YWxraW5nIGh0dHAvaHR0cHMgYnV0IGFsc28KKyAgIGltYXAocykgYW5kIHNtdHAuCisKKyAqIFJlbW90ZSB0cmFuc3BvcnQgaGVscGVyIGhhcyBiZWVuIHVwZGF0ZWQgdG8gcmVwb3J0IGVycm9ycyBhbmQKKyAgIG1haW50YWluIHJlZiBoaWVyYXJjaHkgdXNlZCB0byBrZWVwIHRyYWNrIG9mIGl0cyBvd24gc3RhdGUgYmV0dGVyLgorCisgKiBXaXRoICJleHBvcnQiIHJlbW90ZS1oZWxwZXIgcHJvdG9jb2wsICgxKSBhIHB1c2ggdGhhdCB0cmllcyB0bworICAgdXBkYXRlIGEgcmVtb3RlIHJlZiB3aG9zZSBuYW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwdXNoaW5nIHNpZGUKKyAgIGRvZXMgbm90IHdvcmsgeWV0LCBhbmQgKDIpIHRoZSBoZWxwZXIgbWF5IG5vdCBrbm93IGhvdyB0byBkbworICAgLS1kcnktcnVuOyB0aGVzZSBwcm9ibGVtYXRpYyBjYXNlcyBhcmUgZGlzYWJsZWQgZm9yIG5vdy4KKworICogZ2l0LXJlbW90ZS1oZy9ienIgKGluIGNvbnRyaWIvKSB1cGRhdGVzLgorCisgKiBnaXQtcmVtb3RlLW13IChpbiBjb250cmliLykgaGludHMgdXNlcnMgdG8gY2hlY2sgdGhlIGNlcnRpZmljYXRlLAorICAgd2hlbiBodHRwczovLyBjb25uZWN0aW9uIGZhaWxlZC4KKworICogZ2l0LXJlbW90ZS1tdyAoaW4gY29udHJpYi8pIGFkZHMgYSBjb21tYW5kIHRvIGFsbG93IHByZXZpZXdpbmcgdGhlCisgICBjb250ZW50cyBsb2NhbGx5IGJlZm9yZSBwdXNoaW5nIGl0IG91dCwgd2hlbiB3b3JraW5nIHdpdGggYQorICAgTWVkaWFXaWtpIHJlbW90ZS4KKworCitVSSwgV29ya2Zsb3dzICYgRmVhdHVyZXMKKworICogU2FtcGxlICJwb3N0LXJlY2VpdmUtZW1haWwiIGhvb2sgc2NyaXB0IGdvdCBhbiBlbmhhbmNlZCByZXBsYWNlbWVudAorICAgIm11bHRpbWFpbCIgKGluIGNvbnRyaWIvKS4KKworICogQWxzbyBpbiBjb250cmliLyBpcyBhIG5ldyAiY29udGFjdHMiIHNjcmlwdCB0aGF0IHJ1bnMgImdpdCBibGFtZSIKKyAgIHRvIGZpbmQgb3V0IHRoZSBwZW9wbGUgd2hvIG1heSBiZSBpbnRlcmVzdGVkIGluIGEgc2V0IG9mIGNoYW5nZXMuCisKKyAqICJnaXQgY2xlYW4iIGNvbW1hbmQgbGVhcm5lZCBhbiBpbnRlcmFjdGl2ZSBtb2RlLgorCisgKiBUaGUgIi0taGVhZCIgb3B0aW9uIHRvICJnaXQgc2hvdy1yZWYiIHdhcyBvbmx5IHRvIGFkZCAiSEVBRCIgdG8gdGhlCisgICBsaXN0IG9mIGNhbmRpZGF0ZSByZWZzIHRvIGJlIGZpbHRlcmVkIGJ5IHRoZSB1c3VhbCBydWxlcworICAgKGUuZy4gIi0taGVhZHMiIHRoYXQgb25seSBzaG93IHJlZnMgdW5kZXIgcmVmcy9oZWFkcykuICBUaGUgbWVhbmluZworICAgb2YgdGhlIG9wdGlvbiBoYXMgYmVlbiBjaGFuZ2VkIHRvIGFsd2F5cyBzaG93ICJIRUFEIiByZWdhcmRsZXNzIG9mCisgICB3aGF0IGZpbHRlcmluZyB3aWxsIGJlIGFwcGxpZWQgdG8gYW55IG90aGVyIHJlZi4KKworICAgVGhpcyBpcyBhIGJhY2t3YXJkIGluY29tcGF0aWJsZSBjaGFuZ2UgYW5kIG1pZ2h0IGNhdXNlIGJyZWFrYWdlcyB0bworICAgcGVvcGxlJ3MgZXhpc3Rpbmcgc2NyaXB0cy4KKworICogImdpdCBzaG93IC1zIiB3YXMgbGVzcyBkaXNjb3ZlcmFibGUgdGhhbiBpdCBzaG91bGQgaGF2ZSBiZWVuLiAgSXQKKyAgIG5vdyBoYXMgYSBuYXR1cmFsIHN5bm9ueW0gImdpdCBzaG93IC0tbm8tcGF0Y2giLgorCisgKiAiZ2l0IGNoZWNrLW1haWxtYXAiIGlzIGEgbmV3IGNvbW1hbmQgdGhhdCBsZXRzIHlvdSBtYXAgdXNlcm5hbWVzCisgICBhbmQgZS1tYWlsIGFkZHJlc3NlcyB0aHJvdWdoIHRoZSBtYWlsbWFwIG1lY2hhbmlzbSwganVzdCBsaWtlIG1hbnkKKyAgIGJ1aWx0LWluIGNvbW1hbmRzIGRvLgorCisgKiAiZ2l0IG5hbWUtcmV2IiBsZWFybmVkIHRvIG5hbWUgYW4gYW5ub3RhdGVkIHRhZyBvYmplY3QgYmFjayB0byBpdHMKKyAgIHRhZ25hbWU7ICJnaXQgbmFtZS1yZXYgJChnaXQgcmV2LXBhcnNlIHYxLjAuMCkiIGdpdmVzICJ0YWdzL3YxLjAuMCIsCisgICBmb3IgZXhhbXBsZS4KKworICogImdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPTxmb3JtYXQ+IiBpcyBhZGRlZCwgcHJpbWFyaWx5IHRvIGFsbG93CisgICBvbi1kaXNrIGZvb3RwcmludCBvZiBvYmplY3RzIGluIHBhY2tmaWxlcyAob2Z0ZW4gdGhleSBhcmUgYSBsb3QKKyAgIHNtYWxsZXIgdGhhbiB0aGVpciB0cnVlIHNpemUsIHdoZW4gZXhwcmVzc2VkIGFzIGRlbHRhcykgdG8gYmUKKyAgIHJlcG9ydGVkLgorCisgKiAiZ2l0IHJlYmFzZSBbLWldIiB1c2VkIHRvIGxlYXZlIGp1c3QgInJlYmFzZSIgYXMgaXRzIHJlZmxvZyBtZXNzYWdlcworICAgZm9yIHNvbWUgb3BlcmF0aW9ucy4gVGhleSBoYXZlIGJlZW4gcmV3b3JkZWQgdG8gYmUgbW9yZSBpbmZvcm1hdGl2ZS4KKworICogSW4gYWRkaXRpb24gdG8gdGhlIGNob2ljZSBmcm9tICJyZWJhc2UsIG1lcmdlLCBvciBjaGVja291dC1kZXRhY2giLAorICAgInN1Ym1vZHVsZSB1cGRhdGUiIGNhbiBhbGxvdyBhIGN1c3RvbSBjb21tYW5kIHRvIGJlIHVzZWQgaW4gdG8KKyAgIHVwZGF0ZSB0aGUgd29ya2luZyB0cmVlIG9mIHN1Ym1vZHVsZXMgdmlhIHRoZSAic3VibW9kdWxlLioudXBkYXRlIgorICAgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KKworICogImdpdCBzdWJtb2R1bGUgdXBkYXRlIiBjYW4gb3B0aW9uYWxseSBjbG9uZSB0aGUgc3VibW9kdWxlCisgICByZXBvc2l0b3JpZXMgc2hhbGxvd2x5LgorCisgKiAiZ2l0IGZvcm1hdC1wYXRjaCIgbGVhcm5lZCAiLS1mcm9tWz13aG9tXSIgb3B0aW9uLCB3aGljaCBzZXRzIHRoZQorICAgIkZyb206ICIgaGVhZGVyIHRvIHRoZSBzcGVjaWZpZWQgcGVyc29uIChvciB0aGUgcGVyc29uIHdobyBydW5zIHRoZQorICAgY29tbWFuZCwgaWYgIj13aG9tIiBwYXJ0IGlzIG1pc3NpbmcpIGFuZCBtb3ZlIHRoZSBvcmlnaW5hbCBhdXRob3IKKyAgIGluZm9ybWF0aW9uIHRvIGFuIGluLWJvZHkgRnJvbTogaGVhZGVyIGFzIG5lY2Vzc2FyeS4KKworICogVGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgIm1lcmdlLmZmIiB3YXMgY2xlYXJ5IGEgdHJpLXN0YXRlIHRvCisgICBjaG9vc2Ugb25lIGZyb20gImZhdm9yIGZhc3QtZm9yd2FyZCB3aGVuIHBvc3NpYmxlIiwgImFsd2F5cyBjcmVhdGUKKyAgIGEgbWVyZ2UgZXZlbiB3aGVuIHRoZSBoaXN0b3J5IGNvdWxkIGZhc3QtZm9yd2FyZCIgYW5kICJkbyBub3QKKyAgIGNyZWF0ZSBhbnkgbWVyZ2UsIG9ubHkgdXBkYXRlIHdoZW4gdGhlIGhpc3RvcnkgZmFzdC1mb3J3YXJkcyIsIGJ1dAorICAgdGhlIGNvbW1hbmQgbGluZSBwYXJzZXIgZGlkIG5vdCBpbXBsZW1lbnQgdGhlIHVzdWFsIGNvbnZlbnRpb24gb2YKKyAgICJsYXN0IG9uZSB3aW5zLCBhbmQgY29tbWFuZCBsaW5lIG92ZXJyaWRlcyB0aGUgY29uZmlndXJhdGlvbiIKKyAgIGNvcnJlY3RseS4KKworICogImdpdHdlYiIgbGVhcm5lZCB0byBvcHRpb25hbGx5IHBsYWNlIGV4dHJhIGxpbmtzIHRoYXQgcG9pbnQgYXQgdGhlCisgICBsZXZlbHMgaGlnaGVyIHRoYW4gdGhlIEdpdHdlYiBwYWdlcyB0aGVtc2VsdmVzIGluIHRoZSBicmVhZGNydW1icywKKyAgIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYXMgcGFydCBvZiBhIGxhcmdlciBpbnN0YWxsYXRpb24uCisKKyAqICJnaXQgbG9nIC0tZm9ybWF0PSIgbm93IGhvbm9ycyBpMThuLmxvZ291dHB1dGVuY29kaW5nIGNvbmZpZ3VyYXRpb24KKyAgIHZhcmlhYmxlLgorCisgKiBUaGUgInB1c2guZGVmYXVsdD1zaW1wbGUiIG1vZGUgb2YgImdpdCBwdXNoIiBoYXMgYmVlbiB1cGRhdGVkIHRvCisgICBiZWhhdmUgbGlrZSAiY3VycmVudCIgd2l0aG91dCByZXF1aXJpbmcgYSByZW1vdGUgdHJhY2tpbmcKKyAgIGluZm9ybWF0aW9uLCB3aGVuIHlvdSBwdXNoIHRvIGEgcmVtb3RlIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gd2hlcmUKKyAgIHlvdSBmZXRjaCBmcm9tIChpLmUuIGEgdHJpYW5ndWxhciB3b3JrZmxvdykuCisKKyAqIEhhdmluZyBtdWx0aXBsZSAiZml4dXAhIiBvbiBhIGxpbmUgaW4gdGhlIHJlYmFzZSBpbnN0cnVjdGlvbiBzaGVldAorICAgZGlkIG5vdCB3b3JrIHZlcnkgd2VsbCB3aXRoICJnaXQgcmViYXNlIC1pIC0tYXV0b3NxdWFzaCIuCisKKyAqICJnaXQgbG9nIiBsZWFybmVkIHRoZSAiLS1hdXRob3ItZGF0ZS1vcmRlciIgb3B0aW9uLCB3aXRoIHdoaWNoIHRoZQorICAgb3V0cHV0IGlzIHRvcG9sb2dpY2FsbHkgc29ydGVkIGFuZCBjb21taXRzIGluIHBhcmFsbGVsIGhpc3RvcmllcworICAgYXJlIHNob3duIGludGVybWl4ZWQgdG9nZXRoZXIgYmFzZWQgb24gdGhlIGF1dGhvciB0aW1lc3RhbXAuCisKKyAqIFZhcmlvdXMgc3ViY29tbWFuZHMgb2YgImdpdCBzdWJtb2R1bGUiIHJlZnVzZWQgdG8gcnVuIGZyb20gYW55d2hlcmUKKyAgIG90aGVyIHRoYW4gdGhlIHRvcCBvZiB0aGUgd29ya2luZyB0cmVlIG9mIHRoZSBzdXBlcnByb2plY3QsIGJ1dAorICAgdGhleSBoYXZlIGJlZW4gdGF1Z2h0IHRvIGxldCB5b3UgcnVuIGZyb20gYSBzdWJkaXJlY3RvcnkuCisKKyAqICJnaXQgZGlmZiIgbGVhcm5lZCBhIG1vZGUgdGhhdCBpZ25vcmVzIGh1bmtzIHdob3NlIGNoYW5nZSBjb25zaXN0cworICAgb25seSBvZiBhZGRpdGlvbnMgYW5kIHJlbW92YWxzIG9mIGJsYW5rIGxpbmVzLCB3aGljaCBpcyB0aGUgc2FtZSBhcworICAgImRpZmYgLUIiIChpZ25vcmUgYmxhbmsgbGluZXMpIG9mIEdOVSBkaWZmLgorCisgKiAiZ2l0IHJtIiBnaXZlcyBhIHNpbmdsZSBtZXNzYWdlIGZvbGxvd2VkIGJ5IGxpc3Qgb2YgcGF0aHMgdG8gcmVwb3J0CisgICBtdWx0aXBsZSBwYXRocyB0aGF0IGNhbm5vdCBiZSByZW1vdmVkLgorCisgKiAiZ2l0IHJlYmFzZSIgY2FuIGJlIHRvbGQgd2l0aCAiOi9sb29rIGZvciB0aGlzIHN0cmluZyIgc3ludGF4IGNvbW1pdHMKKyAgIHRvIHJlcGxheSB0aGUgY2hhbmdlcyBvbnRvIGFuZCB3aGVyZSB0aGUgd29yayB0byBiZSByZXBsYXllZCBiZWdpbnMuCisKKyAqIE1hbnkgdHV0b3JpYWxzIHRlYWNoIHVzZXJzIHRvIHNldCAiY29sb3IudWkiIHRvICJhdXRvIiBhcyB0aGUgZmlyc3QKKyAgIHRoaW5nIGFmdGVyIHlvdSBzZXQgInVzZXIubmFtZS9lbWFpbCIgdG8gaW50cm9kdWNlIHlvdXJzZWx2ZXMgdG8KKyAgIEdpdC4gIE5vdyB0aGUgdmFyaWFibGUgZGVmYXVsdHMgdG8gImF1dG8iLgorCisgKiBPbiBDeWd3aW4sICJjeWdzdGFydCIgaXMgbm93IHJlY29nbmlzZWQgYXMgYSBwb3NzaWJsZSB3YXkgdG8gc3RhcnQKKyAgIGEgd2ViIGJyb3dzZXIgKHVzZWQgaW4gImhlbHAgLXciIGFuZCAiaW5zdGF3ZWIiIGFtb25nIG90aGVycykuCisKKyAqICJnaXQgc3RhdHVzIiBsZWFybmVkIHN0YXR1cy5icmFuY2ggYW5kIHN0YXR1cy5zaG9ydCBjb25maWd1cmF0aW9uCisgICB2YXJpYWJsZXMgdG8gdXNlIC0tYnJhbmNoIGFuZCAtLXNob3J0IG9wdGlvbnMgYnkgZGVmYXVsdCAob3ZlcnJpZGUKKyAgIHdpdGggLS1uby1icmFuY2ggYW5kIC0tbm8tc2hvcnQgb3B0aW9ucyBmcm9tIHRoZSBjb21tYW5kIGxpbmUpLgorCisgKiAiZ2l0IGNtZCA8bmFtZT4iLCB3aGVuIDxuYW1lPiBoYXBwZW5zIHRvIGJlIGEgNDAtaGV4IHN0cmluZywKKyAgIGRpcmVjdGx5IHVzZXMgdGhlIDQwLWhleCBzdHJpbmcgYXMgYW4gb2JqZWN0IG5hbWUsIGV2ZW4gaWYgYSByZWYKKyAgICJyZWZzLzxzb21lIGhpZXJhcmNoeT4vPG5hbWU+IiBleGlzdHMuICBUaGlzIGRpc2FtYmlndWF0aW9uIG9yZGVyCisgICBpcyB1bmxpa2VseSB0byBjaGFuZ2UsIGJ1dCB3ZSBzaG91bGQgd2FybiBhYm91dCB0aGUgYW1iaWd1aXR5IGp1c3QKKyAgIGxpa2Ugd2Ugd2FybiB3aGVuIG1vcmUgdGhhbiBvbmUgcmVmcy8gaGllcmFyY2hpZXMgc2hhcmUgdGhlIHNhbWUKKyAgIG5hbWUuCisKKyAqICJnaXQgcmViYXNlIiBsZWFybmVkICItLVtuby1dYXV0b3N0YXNoIiBvcHRpb24gdG8gc2F2ZSBsb2NhbAorICAgY2hhbmdlcyBpbnN0ZWFkIG9mIHJlZnVzaW5nIHRvIHJ1biAodG8gd2hpY2ggcGVvcGxlJ3Mgbm9ybWFsCisgICByZXNwb25zZSB3YXMgdG8gc3Rhc2ggdGhlbSBhbmQgcmUtcnVuKS4gIFRoaXMgaW50cm9kdWNlZCBhIGNvcm5lcgorICAgY2FzZSBicmVha2FnZSB0byAiZ2l0IGFtIC0tYWJvcnQiIGJ1dCBpdCBoYXMgYmVlbiBmaXhlZC4KKworICogImNoZWNrLWlnbm9yZSIgKG5ldyBmZWF0dXJlIHNpbmNlIDEuOC4yKSBoYXMgYmVlbiB1cGRhdGVkIHRvIHdvcmsKKyAgIG1vcmUgbGlrZSAiY2hlY2stYXR0ciIgb3ZlciBiaWRpLXBpcGVzLgorCisgKiAiZ2l0IGRlc2NyaWJlIiBsZWFybmVkICItLWZpcnN0LXBhcmVudCIgb3B0aW9uIHRvIGxpbWl0IGl0cyBjbG9zZXN0CisgICB0YWdnZWQgY29tbWl0IHNlYXJjaCB0byB0aGUgZmlyc3QtcGFyZW50IGNoYWluLgorCisgKiAiZ2l0IG1lcmdlIGZvbyIgdGhhdCBtaWdodCBoYXZlIG1lYW50ICJnaXQgbWVyZ2Ugb3JpZ2luL2ZvbyIgaXMKKyAgIGRpYWdub3NlZCB3aXRoIGEgbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlLgorCisgKiAiZ2l0IGxvZyAtTDxsaW5lPiw8cmFuZ2U+OjxmaWxlbmFtZT4iIGhhcyBiZWVuIGFkZGVkLiAgVGhpcyBtYXkKKyAgIHN0aWxsIGhhdmUgbGVha3MgYW5kIHJvdWdoIGVkZ2VzLCB0aG91Z2guCisKKyAqIFdlIHVzZWQgdGhlIGFwcHJveGlkYXRlKCkgcGFyc2VyIGZvciAiLS1leHBpcmU9PHRpbWVzdGFtcD4iIG9wdGlvbnMKKyAgIG9mIHZhcmlvdXMgY29tbWFuZHMsIGJ1dCBpdCBpcyBiZXR0ZXIgdG8gdHJlYXQgLS1leHBpcmU9YWxsIGFuZAorICAgLS1leHBpcmU9bm93IGEgYml0IG1vcmUgc3BlY2lhbGx5IHRoYW4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZXN0YW1wLgorICAgImdpdCBnYyIgYW5kICJnaXQgcmVmbG9nIiBoYXZlIGJlZW4gdXBkYXRlZCB3aXRoIGEgbmV3IHBhcnNpbmcKKyAgIGZ1bmN0aW9uIGZvciBleHBpcnkgZGF0ZXMuCisKKyAqIFVwZGF0ZXMgdG8gY29tcGxldGlvbiAoYm90aCBiYXNoIGFuZCB6c2gpIGhlbHBlcnMuCisKKyAqIFRoZSBiZWhhdmlvdXIgb2YgdGhlICItLWNoYWluLXJlcGx5LXRvIiBvcHRpb24gb2YgImdpdCBzZW5kLWVtYWlsIgorICAgaGF2ZSBjaGFuZ2VkIGF0IDEuNy4wLCBhbmQgd2UgYWRkZWQgYSB3YXJuaW5nL2FkdmljZSBtZXNzYWdlIHRvCisgICBoZWxwIHVzZXJzIGFkanVzdCB0byB0aGUgbmV3IGJlaGF2aW91ciBiYWNrIHRoZW4sIGJ1dCB3ZSBrZXB0IGl0CisgICBhcm91bmQgZm9yIHRvbyBsb25nLiAgVGhlIG1lc3NhZ2UgaGFzIGZpbmFsbHkgYmVlbiByZW1vdmVkLgorCisgKiAiZ2l0IGZldGNoIG9yaWdpbiBtYXN0ZXIiIHVubGlrZSAiZ2l0IGZldGNoIG9yaWdpbiIgb3IgImdpdCBmZXRjaCIKKyAgIGRpZCBub3QgdXBkYXRlICJyZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciI7IHRoaXMgd2FzIGFuIGVhcmx5CisgICBkZXNpZ24gZGVjaXNpb24gdG8ga2VlcCB0aGUgdXBkYXRlIG9mIHJlbW90ZSB0cmFja2luZyBicmFuY2hlcworICAgcHJlZGljdGFibGUsIGJ1dCBpbiBwcmFjdGljZSBpdCB0dXJucyBvdXQgdGhhdCBwZW9wbGUgZmluZCBpdCBtb3JlCisgICBjb252ZW5pZW50IHRvIG9wcG9ydHVuaXN0aWNhbGx5IHVwZGF0ZSB0aGVtIHdoZW5ldmVyIHdlIGhhdmUgYQorICAgY2hhbmNlLCBhbmQgd2UgaGF2ZSBiZWVuIHVwZGF0aW5nIHRoZW0gd2hlbiB3ZSBydW4gImdpdCBwdXNoIiB3aGljaAorICAgYWxyZWFkeSBicmVha3MgdGhlIG9yaWdpbmFsICJwcmVkaWN0YWJpbGl0eSIgYW55d2F5LgorCisgKiBUaGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBjb3JlLmNoZWNrc3RhdCB3YXMgYWR2ZXJ0aXNlZCBpbiB0aGUKKyAgIGRvY3VtZW50YXRpb24gYnV0IHRoZSBjb2RlIGV4cGVjdGVkIGNvcmUuc3RhdGluZm8gaW5zdGVhZC4KKyAgIEZvciBub3csIHdlIGFjY2VwdCBib3RoIGNvcmUuY2hlY2tzdGF0IGFuZCBjb3JlLnN0YXRpbmZvLCBidXQgdGhlCisgICBsYXR0ZXIgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBsb25nZXIgdGVybS4KKworCitQZXJmb3JtYW5jZSwgSW50ZXJuYWwgSW1wbGVtZW50YXRpb24sIGV0Yy4KKworICogT24gQ3lnd2luLCB3ZSB1c2VkIHRvIHVzZSBvdXIgb3duIGxzdGF0KDIpIGVtdWxhdGlvbiB0aGF0IGlzCisgICBhbGxlZ2VkbHkgZmFzdGVyIHRoYW4gdGhlIHBsYXRmb3JtIG9uZSBpbiBjb2RlcGF0aHMgd2hlcmUgc29tZSBvZgorICAgdGhlIGluZm9ybWF0aW9uIGl0IHJldHVybnMgZGlkIG5vdCBtYXR0ZXIsIGJ1dCBpdCBzdGFydGVkIHRvIGJpdGUKKyAgIHVzIGluIGEgZmV3IGNvZGVwYXRocyB3aGVyZSB0aGUgdHJpY2sgaXQgdXNlcyB0byBjaGVhdCBkb2VzIHNob3cKKyAgIGJyZWFrYWdlcy4gVGhpcyBlbXVsYXRpb24gaGFzIGJlZW4gcmVtb3ZlZCBhbmQgd2UgdXNlIHRoZSBuYXRpdmUKKyAgIGxzdGF0KDIpIGVtdWxhdGlvbiBzdXBwbGllZCBieSBDeWd3aW4gbm93LgorCisgKiBUaGUgZnVuY3Rpb24gYXR0cmlidXRlcyBleHRlbnNpb25zIGFyZSB1c2VkIHRvIGNhdGNoIG1pc3Rha2VzIGluCisgICB1c2Ugb2Ygb3VyIG93biB2YXJpYWRpYyBmdW5jdGlvbnMgdGhhdCB1c2UgTlVMTCBzZW50aW5lbCBhdCB0aGUgZW5kCisgICAoaS5lLiBsaWtlIGV4ZWNsKDMpKSBhbmQgZm9ybWF0IHN0cmluZ3MgKGkuZS4gbGlrZSBwcmludGYoMykpLgorCisgKiBUaGUgY29kZSB0byBhbGxvdyBjb25maWd1cmF0aW9uIGRhdGEgdG8gYmUgcmVhZCBmcm9tIGluLXRyZWUgYmxvYgorICAgb2JqZWN0cyBpcyBpbi4gIFRoaXMgbWF5IGhlbHAgd29ya2luZyBpbiBhIGJhcmUgcmVwb3NpdG9yeSBhbmQKKyAgIHN1Ym1vZHVsZSB1cGRhdGVzLgorCisgKiBGZXRjaGluZyBiZXR3ZWVuIHJlcG9zaXRvcmllcyB3aXRoIG1hbnkgcmVmcyBlbXBsb3llZCBPKG5eMikKKyAgIGFsZ29yaXRobSB0byBtYXRjaCB1cCB0aGUgY29tbW9uIG9iamVjdHMsIHdoaWNoIGhhcyBiZWVuIGNvcnJlY3RlZC4KKworICogVGhlIG9yaWdpbmFsIHdheSB0byBzcGVjaWZ5IHJlbW90ZSByZXBvc2l0b3J5IHVzaW5nIC5naXQvYnJhbmNoZXMvCisgICB1c2VkIHRvIGhhdmUgYSBuaWZ0eSBmZWF0dXJlLiAgVGhlIGNvZGUgdG8gc3VwcG9ydCB0aGUgZmVhdHVyZSB3YXMKKyAgIHN0aWxsIGluIGEgZnVuY3Rpb24gYnV0IHRoZSBjYWxsZXIgd2FzIGNoYW5nZWQgbm90IHRvIGNhbGwgaXQgNQorICAgeWVhcnMgYWdvLCBicmVha2luZyB0aGF0IGZlYXR1cmUgYW5kIGxlYXZpbmcgdGhlIHN1cHBvcnRpbmcgY29kZQorICAgdW5yZWFjaGFibGUuICBUaGUgZGVhZCBjb2RlIGhhcyBiZWVuIHJlbW92ZWQuCisKKyAqICJnaXQgcGFjay1yZWZzIiB0aGF0IHJhY2VzIHdpdGggbmV3IHJlZiBjcmVhdGlvbiBvciBkZWxldGlvbiBoYXZlCisgICBiZWVuIHN1c2NlcHRpYmxlIHRvIGxvc3NhZ2Ugb2YgcmVmcyB1bmRlciByaWdodCBjb25kaXRpb25zLCB3aGljaAorICAgaGFzIGJlZW4gdGlnaHRlbmVkIHVwLgorCisgKiBXZSByZWFkIGxvb3NlIGFuZCBwYWNrZWQgcmVmZXJlbmNlcyBpbiB0d28gc3RlcHMsIGJ1dCBhZnRlcgorICAgZGVjaWRpbmcgdG8gcmVhZCBhIGxvb3NlIHJlZiBidXQgYmVmb3JlIGFjdHVhbGx5IG9wZW5pbmcgaXQgdG8gcmVhZAorICAgaXQsIGFub3RoZXIgcHJvY2VzcyByYWNpbmcgd2l0aCB1cyBjYW4gdW5saW5rIGl0LCB3aGljaCB3b3VsZCBjYXVzZQorICAgdXMgdG8gYmFyZi4gIFRoZSBjb2RlcGF0aCBoYXMgYmVlbiB1cGRhdGVkIHRvIHJldHJ5IHdoZW4gc3VjaCBhCisgICByYWNlIGlzIGRldGVjdGVkLCBpbnN0ZWFkIG9mIG91dHJpZ2h0IGZhaWxpbmcuCisKKyAqIFVzZXMgb2YgdGhlIHBsYXRmb3JtIGZubWF0Y2goMykgZnVuY3Rpb24gKG1hbnkgcGxhY2VzIGluIHRoZSBjb2RlLAorICAgbWF0Y2hpbmcgcGF0aHNwZWMsIC5naXRpZ25vcmUgYW5kIC5naXRhdHRyaWJ1dGVzIHRvIG5hbWUgYSBmZXcpCisgICBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aCB3aWxkbWF0Y2gsIGFsbG93aW5nICJmb28vKiovYmFyIiB0aGF0IHdvdWxkCisgICBtYXRjaCBmb28vYmFyLCBmb28vYS9iYXIsIGZvby9hL2IvYmFyLCBldGMuCisKKyAqIE1lbW9yeSBvd25lcnNoaXAgYW5kIGxpZmV0aW1lIHJ1bGVzIGZvciB3aGF0IGZvci1lYWNoLXJlZiBmZWVkcyB0bworICAgaXRzIGNhbGxiYWNrcyBoYXZlIGJlZW4gY2xhcmlmaWVkIChpbiBzaG9ydCwgInlvdSBkbyBub3Qgb3duIGl0LCBzbworICAgbWFrZSBhIGNvcHkgaWYgeW91IHdhbnQgdG8ga2VlcCBpdCIpLgorCisgKiBUaGUgcmV2aXNpb24gdHJhdmVyc2FsIGxvZ2ljIHRvIGltcHJvdmUgY3VsbGluZyBvZiBpcnJlbGV2YW50CisgICBwYXJlbnRzIHdoaWxlIHRyYXZlcnNpbmcgYSBtZXJneSBoaXN0b3J5IGhhcyBiZWVuIHVwZGF0ZWQuCisKKyAqIFNvbWUgbGVha3MgaW4gdW5wYWNrLXRyZWVzICh1c2VkIGluIG1lcmdlLCBjaGVycnktcGljayBhbmQgb3RoZXIKKyAgIGNvZGVwYXRocykgaGF2ZSBiZWVuIHBsdWdnZWQuCisKKyAqIFRoZSBjb2RlcGF0aCB0byByZWFkIGZyb20gbWFya3MgZmlsZXMgaW4gZmFzdC1pbXBvcnQvZXhwb3J0IGRpZCBub3QKKyAgIGhhdmUgdG8gYWNjZXB0IGFueXRoaW5nIGJ1dCA0MC1oZXggcmVwcmVzZW50YXRpb24gb2YgdGhlIG9iamVjdAorICAgbmFtZS4gIEZ1cnRoZXIsIGZhc3QtZXhwb3J0IGRpZCBub3QgbmVlZCBmdWxsIGluLWNvcmUgb2JqZWN0CisgICByZXByZXNlbnRhdGlvbiB0byBoYXZlIHBhcnNlZCB3ZW4gcmVhZGluZyBmcm9tIHRoZW0uICBUaGVzZQorICAgY29kZXBhdGhzIGhhdmUgYmVlbiBvcHRpbWl6ZWQgYnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGVzZSBhY2Nlc3MKKyAgIHBhdHRlcm5zLgorCisgKiBPYmplY3QgbG9va3VwIGxvZ2ljLCB3aGVuIHRoZSBvYmplY3QgaGFzaHRhYmxlIHN0YXJ0cyB0byBiZWNvbWUKKyAgIGNyb3dkZWQsIGhhcyBiZWVuIG9wdGltaXplZC4KKworICogV2hlbiBURVNUX09VVFBVVF9ESVJFQ1RPUlkgc2V0dGluZyBpcyB1c2VkLCBpdCB3YXMgaGFuZGxlZCBzb21ld2hhdAorICAgaW5jb25zaXN0ZW50bHkgYmV0d2VlbiB0aGUgdGVzdCBmcmFtZXdvcmsgYW5kIHQvTWFrZWZpbGUsIGFuZCBsb2dpYworICAgdG8gc3VtbWFyaXplIHRoZSByZXN1bHRzIGxvb2tlZCBhdCBhIHdyb25nIHBsYWNlLgorCisgKiAiZ2l0IGNsb25lIiB1c2VzIGEgbGlnaHRlci13ZWlnaHQgaW1wbGVtZW50YXRpb24gd2hlbiBtYWtpbmcgc3VyZQorICAgdGhhdCB0aGUgaGlzdG9yeSBiZWhpbmQgcmVmcyBhcmUgY29tcGxldGUuCisKKyAqIE1hbnkgd2FybmluZ3MgZnJvbSBzcGFyc2Ugc291cmNlIGNoZWNrZXIgaW4gY29tcGF0LyBhcmVhIGhhcyBiZWVuCisgICBzcXVlbGNoZWQuCisKKyAqIFRoZSBjb2RlIHRvIHJlYWRpbmcgYW5kIHVwZGF0aW5nIHBhY2tlZC1yZWZzIGZpbGUgaGFzIGJlZW4gdXBkYXRlZCwKKyAgIGNvcnJlY3RpbmcgY29ybmVyIGNhc2UgYnVncy4KKworCitBbHNvIGNvbnRhaW5zIHZhcmlvdXMgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCBjb2RlIGNsZWFuLXVwcy4KKworCitGaXhlcyBzaW5jZSB2MS44LjMKKy0tLS0tLS0tLS0tLS0tLS0tLQorCitVbmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLCBhbGwgdGhlIGZpeGVzIHNpbmNlIHYxLjguMyBpbiB0aGUgbWFpbnRlbmFuY2UKK3RyYWNrIGFyZSBjb250YWluZWQgaW4gdGhpcyByZWxlYXNlIChzZWUgcmVsZWFzZSBub3RlcyB0byB0aGVtIGZvcgorZGV0YWlscykuCisKKyAqIE5ld2VyIE5ldDo6U01UUDo6U1NMIG1vZHVsZSBkb2VzIG5vdCB3YW50IHRoZSB1c2VyIHByb2dyYW1zIHRvIHVzZQorICAgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIHRvIGxldCBzZXJ2ZXIgY2VydGlmaWNhdGUgZ28gd2l0aG91dAorICAgdmVyaWZpY2F0aW9uLCBzbyBieSBkZWZhdWx0IGVuYWJsZSB0aGUgdmVyaWZpY2F0aW9uIHdpdGggYQorICAgbWVjaGFuaXNtIHRvIHR1cm4gaXQgb2ZmIGlmIG5lZWRlZC4KKyAgIChtZXJnZSAzNTAzNWJiIHJyL3NlbmQtZW1haWwtc3NsLXZlcmlmeSBsYXRlciB0byBtYWludCkuCisKKyAqIFdoZW4gImdpdCIgaXMgc3Bhd25lZCBpbiBzdWNoIGEgd2F5IHRoYXQgYW55IG9mIHRoZSBsb3cgMyBmaWxlCisgICBkZXNjcmlwdG9ycyBpcyBjbG9zZWQsIG91ciBmaXJzdCBvcGVuKCkgbWF5IHlpZWxkIGZpbGUgZGVzY3JpcHRvciAyLAorICAgYW5kIHdyaXRpbmcgZXJyb3IgbWVzc2FnZSB0byBpdCB3b3VsZCBzY3JldyB0aGluZ3MgdXAgaW4gYSBiaWcgd2F5LgorICAgKG1lcmdlIGExMWMzOTYgdHIvcHJvdGVjdC1sb3ctMy1mZHMgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBUaGUgbWFpbG1hcCBtZWNoYW5pc20gdW5uZWNlc3NhcmlseSBkb3duY2FzZWQgdGhlIGUtbWFpbCBhZGRyZXNzZXMKKyAgIGluIHRoZSBvdXRwdXQsIGFuZCBhbHNvIGlnbm9yZWQgdGhlIGh1bWFuIG5hbWUgd2hlbiBpdCBpcyBhIHNpbmdsZQorICAgY2hhcmFjdGVyIG5hbWUuCisgICAobWVyZ2UgYmQyMzc5NCBqYy9tYWlsbWFwLWNhc2UtaW5zZW5zaXRpdml0eSBsYXRlciB0byBtYWludCkuCisKKyAqIEluIHR3byBwbGFjZXMgd2UgZGlkIG5vdCBjaGVjayByZXR1cm4gdmFsdWUgKGV4cGVjdGVkIHRvIGJlIGEgZmlsZQorICAgZGVzY3JpcHRvcikgY29ycmVjdGx5LgorICAgKG1lcmdlIGE3N2YxMDYgdHIvZmQtZ290Y2hhLWZpeGVzIGxhdGVyIHRvIG1haW50KS4KKworICogTG9naWMgdG8gYXV0by1kZXRlY3QgY2hhcmFjdGVyIGVuY29kaW5ncyBpbiB0aGUgY29tbWl0IGxvZyBtZXNzYWdlCisgICBkaWQgbm90IHJlamVjdCBvdmVybG9uZyBhbmQgaW52YWxpZCBVVEYtOCBjaGFyYWN0ZXJzLgorICAgKG1lcmdlIDgxMDUwYWMgYmMvY29tbWl0LWludmFsaWQtdXRmOCBsYXRlciB0byBtYWludCkuCisKKyAqIFBhc3MgcG9ydCBudW1iZXIgYXMgYSBzZXBhcmF0ZSBhcmd1bWVudCB3aGVuICJzZW5kLWVtYWlsIiBpbml0aWFsaXplcworICAgTmV0OjpTTVRQLCBpbnN0ZWFkIG9mIGFzIGEgcGFydCBvZiB0aGUgaG9zdG5hbWUsIGkuZS4gaG9zdDpwb3J0LgorICAgVGhpcyBhbGxvd3MgR1NTQVBJIGNvZGVwYXRoIHRvIG1hdGNoIHdpdGggdGhlIGhvc3RuYW1lIGdpdmVuLgorICAgKG1lcmdlIDFhNzQxYmYgYmMvc2VuZC1lbWFpbC11c2UtcG9ydC1hcy1zZXBhcmF0ZS1wYXJhbSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgZGlmZiIgcmVmdXNlZCB0byBldmVuIHNob3cgZGlmZmVyZW5jZSB3aGVuIGNvcmUuc2FmZWNybGYgaXMKKyAgIHNldCB0byB0cnVlIChpLmUuIGVycm9yIG91dCkgYW5kIHRoZXJlIGFyZSBvZmZlbmRpbmcgbGluZXMgaW4gdGhlCisgICB3b3JraW5nIHRyZWUgZmlsZXMuCisgICAobWVyZ2UgNTQzMGJiMiBqYy9tYWludC1kaWZmLWNvcmUtc2FmZWNybGYgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBIHRlc3QgdGhhdCBzaG91bGQgaGF2ZSBmYWlsZWQgYnV0IGRpZG4ndCByZXZlYWxlZCBhIGJ1ZyB0aGF0IG5lZWRzCisgICB0byBiZSBjb3JyZWN0ZWQuCisgICAobWVyZ2UgOTRkNzVkMSBqYy90MTUxMi1maXggbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBBbiBvdmVybG9uZyBwYXRoIHRvIGEgLmdpdCBkaXJlY3RvcnkgbWF5IGhhdmUgb3ZlcmZsb3duIHRoZQorICAgdGVtcG9yYXJ5IHBhdGggYnVmZmVyIHVzZWQgdG8gY3JlYXRlIGEgbmFtZSBmb3IgbG9ja2ZpbGVzLgorICAgKG1lcmdlIDJmYmQ0ZjkgbWgvbWFpbnQtbG9ja2ZpbGUtb3ZlcmZsb3cgbGF0ZXIgdG8gbWFpbnQpLgorCisgKiBJbnZvY2F0aW9ucyBvZiAiZ2l0IGNoZWNrb3V0IiB1c2VkIGludGVybmFsbHkgYnkgImdpdCByZWJhc2UiIHdlcmUKKyAgIGNvdW50ZWQgYXMgImNoZWNrb3V0IiwgYW5kIGFmZmVjdGVkIGxhdGVyICJnaXQgY2hlY2tvdXQgLSIgdG8gdGhlCisgICB0aGUgdXNlciB0byBhbiB1bmV4cGVjdGVkIHBsYWNlLgorICAgKG1lcmdlIDNiZWQyOTEgcnIvcmViYXNlLWNoZWNrb3V0LXJlZmxvZyBsYXRlciB0byBtYWludCkuCisKKyAqIFRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGNvbHVtbi51aSB3YXMgcG9vcmx5IGRvY3VtZW50ZWQuCisgICAobWVyZ2UgNWU2MmNjMSByci9jb2x1bW4tZG9jIGxhdGVyIHRvIG1haW50KS4KKworICogImdpdCBuYW1lLXJldiAtLXJlZnM9dGFncy92KiIgd2VyZSBmb3JiaWRkZW4sIHdoaWNoIHdhcyBhIGJpdAorICAgaW5jb252ZW5pZW50ICh5b3UgaGFkIHRvIGdpdmUgYSBwYXR0ZXJuIHRvIG1hdGNoIHJlZnMgZnVsbHksIGxpa2UKKyAgIC0tcmVmcz1yZWZzL3RhZ3MvdiopLgorICAgKG1lcmdlIDk4YzVjNGEgbmsvbmFtZS1yZXYtYWJicmV2aWF0ZWQtcmVmcyBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXQgYXBwbHkiIHBhcnNlZCBwYXRjaGVzIHRoYXQgYWRkIG5ldyBmaWxlcywgZ2VuZXJhdGVkIGJ5CisgICBwcm9ncmFtcyBvdGhlciB0aGFuIEdpdCwgaW5jb3JyZWN0bHkuICBUaGlzIGlzIGFuIG9sZCBicmVha2FnZSBpbgorICAgdjEuNy4xMSBhbmQgd2lsbCBuZWVkIHRvIGJlIG1lcmdlZCBkb3duIHRvIHRoZSBtYWludGVuYW5jZSB0cmFja3MuCisKKyAqIE9sZGVyIGNVUkwgd2FudGVkIHBpZWNlIG9mIG1lbW9yeSB3ZSBjYWxsIGl0IHdpdGggdG8gYmUgc3RhYmxlLCBidXQKKyAgIHdlIHVwZGF0ZWQgdGhlIGF1dGggbWF0ZXJpYWwgYWZ0ZXIgaGFuZGluZyBpdCB0byBhIGNhbGwuCisKKyAqICJnaXQgcHVsbCIgaW50byBub3RoaW5nIHRyYXNoZWQgImxvY2FsIGNoYW5nZXMiIHRoYXQgd2VyZSBpbiB0aGUKKyAgIGluZGV4LCBhbmQgdGhpcyBhdm9pZHMgaXQuCisKKyAqIE1hbnkgImdpdCBzdWJtb2R1bGUiIG9wZXJhdGlvbnMgZG8gbm90IHdvcmsgb24gYSBzdWJtb2R1bGUgYXQgYQorICAgcGF0aCB3aG9zZSBuYW1lIGlzIG5vdCBpbiBBU0NJSS4KKworICogImNoZXJyeS1waWNrIiBoYWQgYSBzbWFsbCBsZWFrIGluIGFuIGVycm9yIGNvZGVwYXRoLgorCisgKiBMb2dpYyB1c2VkIGJ5IGdpdC1zZW5kLWVtYWlsIHRvIHN1cHByZXNzIGNjIG1pc2hhbmRsZWQgbmFtZXMgbGlrZQorICAgIkEgVS4gVGhvciIgPGF1dGhvckBleGFtcGxlLnh6Piwgd2hlcmUgdGhlIGh1bWFuIHJlYWRhYmxlIHBhcnQKKyAgIG5lZWRzIHRvIGJlIHF1b3RlZCAodGhlIHVzZXIgaW5wdXQgbWF5IG5vdCBoYXZlIHRoZSBkb3VibGUgcXVvdGVzCisgICBhcm91bmQgdGhlIG5hbWUsIGFuZCBjb21wYXJpc29uIHdhcyBkb25lIGJldHdlZW4gcXVvdGVkIGFuZAorICAgdW5xdW90ZWQgc3RyaW5ncykuICBJdCBhbHNvIG1pc2hhbmRsZWQgbmFtZXMgdGhhdCBuZWVkIFJGQzIwNDcKKyAgIHF1b3RpbmcuCisKKyAqIENhbGwgdG8gZGlzY2FyZF9jYWNoZS9kaXNjYXJkX2luZGV4ICh1c2VkIHdoZW4gd2UgdXNlIGRpZmZlcmVudAorICAgY29udGVudHMgb2YgdGhlIGluZGV4IGluLWNvcmUsIGluIG1hbnkgb3BlcmF0aW9ucyBsaWtlIGNvbW1pdCwKKyAgIGFwcGx5LCBhbmQgbWVyZ2UpIHVzZWQgdG8gbGVhayBtZW1vcnkgdGhhdCBoZWxkIHRoZSBhcnJheSBvZiBpbmRleAorICAgZW50cmllcywgd2hpY2ggaGFzIGJlZW4gcGx1Z2dlZC4KKyAgIChtZXJnZSBhMGZjNGRiIHJzL2Rpc2NhcmQtaW5kZXgtZGlzY2FyZC1hcnJheSBsYXRlciB0byBtYWludCkuCisKKyAqICJnaXR3ZWIiIGZvcmdvdCB0byBjbGVhciBhIGdsb2JhbCB2YXJpYWJsZSAkc2VhcmNoX3JlZ2V4cCB1cG9uIGVhY2gKKyAgIHJlcXVlc3QsIG1pc3Rha2VubHkgY2Fycnlpbmcgb3ZlciB0aGUgcHJldmlvdXMgc2VhcmNoIHRvIGEgbmV3IG9uZQorICAgd2hlbiB1c2VkIGFzIGEgcGVyc2lzdGVudCBDR0kuCisKKyAqIFRoZSB3aWxkbWF0Y2ggZW5naW5lIGRpZCBub3QgaG9ub3IgV01fQ0FTRUZPTEQgb3B0aW9uIGNvcnJlY3RseS4KKworICogImdpdCBsb2cgLWMgLS1mb2xsb3cgJHBhdGgiIHNlZ2ZhdWx0ZWQgdXBvbiBoaXR0aW5nIHRoZSBjb21taXQgdGhhdAorICAgcmVuYW1lZCB0aGUgJHBhdGggYmVpbmcgZm9sbG93ZWQuCisKKyAqIFdoZW4gYSByZWZsb2cgbm90YXRpb24gaXMgdXNlZCBmb3IgaW1wbGljaXQgImN1cnJlbnQgYnJhbmNoIiwgd2UKKyAgIGRpZCBub3Qgc2F5IHdoaWNoIGJyYW5jaCBhbmQgd29yc2Ugc2FpZCAiYnJhbmNoICcnIi4KKworICogImRpZmZ0b29sIC0tZGlyLWRpZmYiIGRpZCBub3QgY29weSBiYWNrIGNoYW5nZXMgbWFkZSBieSB0aGUKKyAgIGVuZC11c2VyIGluIHRoZSBkaWZmIHRvb2wgYmFja2VuZCB0byB0aGUgd29ya2luZyB0cmVlIGluIHNvbWUKKyAgIGNhc2VzLgorCisgKiAiZ2l0IHB1c2ggJHRoZXJlIEhFQUQ6YnJhbmNoIiBkaWQgbm90IHJlc29sdmUgSEVBRCBlYXJseSBlbm91Z2gsIHNvCisgICBpdCB3YXMgZWFzeSB0byBmbGlwIGl0IGFyb3VuZCB3aGlsZSBwdXNoIGlzIHN0aWxsIGdvaW5nIG9uIGFuZCBwdXNoCisgICBvdXQgYSBicmFuY2ggdGhhdCB0aGUgdXNlciBkaWQgbm90IG9yaWdpbmFsbHkgaW50ZW5kZWQgd2hlbiB0aGUKKyAgIGNvbW1hbmQgd2FzIHN0YXJ0ZWQuCisKKyAqIFRoZSBiYXNoIHByb21wdCBjb2RlIChpbiBjb250cmliLykgZGlzcGxheWVkIHRoZSBuYW1lIG9mIHRoZSBicmFuY2gKKyAgIGJlaW5nIHJlYmFzZWQgd2hlbiAicmViYXNlIC1pLy1tLy1wIiBtb2RlcyBhcmUgaW4gdXNlLCBidXQgbm90IHRoZQorICAgcGxhaW4gdmFuaWxsYSAicmViYXNlIi4KKworICogSGFuZGxpbmcgb2YgbmVnYXRpdmUgZXhjbHVkZSBwYXR0ZXJuIGZvciBkaXJlY3RvcmllcyAiIWRpciIgd2FzCisgICBicm9rZW4gaW4gdGhlIHVwZGF0ZSB0byB2MS44LjMuCisKKyAqIHpzaCBwcm9tcHQgc2NyaXB0IHRoYXQgYm9ycm93ZWQgZnJvbSBiYXNoIHByb21wdCBzY3JpcHQgZGlkIG5vdAorICAgd29yayBkdWUgdG8gc2xpZ2h0IGRpZmZlcmVuY2VzIGluIGFycmF5IHZhcmlhYmxlIG5vdGF0aW9uIGJldHdlZW4KKyAgIHRoZXNlIHR3byBzaGVsbHMuCisKKyAqIEFuIGVudHJ5IGZvciAiZmlsZTovLyIgc2NoZW1lIGluIHRoZSBlbnVtZXJhdGlvbiBvZiBVUkwgdHlwZXMgR2l0CisgICBjYW4gdGFrZSBpbiB0aGUgSFRNTCBkb2N1bWVudGF0aW9uIHdhcyBtYWRlIGludG8gYSBjbGlja2FibGUgbGluaworICAgYnkgbWlzdGFrZS4KKworICogImdpdCBwdXNoIC0tW25vLV12ZXJpZnkiIHdhcyBub3QgZG9jdW1lbnRlZC4KKworICogU3RvcCBpbnN0YWxsaW5nIHRoZSBnaXQtcmVtb3RlLXRlc3RweSBzY3JpcHQgdGhhdCBpcyBvbmx5IHVzZWQgZm9yCisgICB0ZXN0aW5nLgorCisgKiAiZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5LW1lc3NhZ2UgLW0gJyciIHNob3VsZCBub3Qgc3RhcnQgYW4KKyAgIGVkaXRvci4KKworICogImdpdCBtZXJnZSBAey0xfX4yMiIgd2FzIHJld3JpdHRlbiB0byAiZ2l0IG1lcmdlIGZyb3R6QHsxfX4yMiIKKyAgIGluY29ycmVjdGx5IHdoZW4geW91ciBwcmV2aW91cyBicmFuY2ggd2FzICJmcm90eiIgKGl0IHNob3VsZCBiZQorICAgcmV3cml0dGVuIHRvICJnaXQgbWVyZ2UgZnJvdHp+MjIiIGluc3RlYWQpLgorCisgKiAiZ2l0IGRpZmYgLWMgLXAiIHdhcyBub3Qgc2hvd2luZyBhIGRlbGV0ZWQgbGluZSBmcm9tIGEgaHVuayB3aGVuCisgICBhbm90aGVyIGh1bmsgaW1tZWRpYXRlbHkgYmVnaW5zIHdoZXJlIHRoZSBlYXJsaWVyIG9uZSBlbmRzLgorCisgKiAiZ2l0IGxvZyAtLWFuY2VzdHJ5LXBhdGggQS4uLkIiIGRpZCBub3Qgd29yayBhcyBleHBlY3RlZCwgYXMgaXQgZGlkCisgICBub3QgcGF5IGF0dGVudGlvbiB0byB0aGUgZmFjdCB0aGF0IHRoZSBtZXJnZSBiYXNlIGJldHdlZW4gQSBhbmQgQgorICAgd2FzIHRoZSBib3R0b20gb2YgdGhlIHJhbmdlIGJlaW5nIHNwZWNpZmllZC4KKworICogTWFjIE9TIFggZG9lcyBub3QgbGlrZSB0byB3cml0ZSgyKSBtb3JlIHRoYW4gSU5UX01BWCBudW1iZXIgb2YKKyAgIGJ5dGVzOyB3b3JrIGl0IGFyb3VuZCBieSBjaG9wcGluZyB3cml0ZSgyKSBpbnRvIHNtYWxsZXIgcGllY2VzLgorCisgKiBOZXdlciBNYWNPUyBYIGVuY291cmFnZXMgdGhlIHByb2dyYW1zIHRvIGNvbXBpbGUgYW5kIGxpbmsgd2l0aAorICAgdGhlaXIgQ29tbW9uQ3J5cHRvLCBub3Qgd2l0aCBPcGVuU1NMLgorCisgKiAiZ2l0IGNsb25lIGZvby9iYXI6YmF6IiBjYW5ub3QgYmUgYSByZXF1ZXN0IHRvIGNsb25lIGZyb20gYSByZW1vdGUKKyAgIG92ZXIgZ2l0LW92ZXItc3NoIHNwZWNpZmllZCBpbiB0aGUgc2NwIHN0eWxlLiAgVGhpcyBjYXNlIGlzIG5vdworICAgZGV0ZWN0ZWQgYW5kIGNsb25lcyBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSBhdCAiZm9vL2JhcjpiYXoiLgorCisgKiBXaGVuICRIT01FIGlzIG1pc2NvbmZpZ3VyZWQgdG8gcG9pbnQgYXQgYW4gdW5yZWFkYWJsZSBkaXJlY3RvcnksIHdlCisgICB1c2VkIHRvIGNvbXBsYWluIGFuZCBkaWUuIExvb3NlbiB0aGUgY2hlY2suCisKKyAqICJnaXQgc3VidHJlZSIgKGluIGNvbnRyaWIvKSBoYWQgb25lIGNvZGVwYXRoIHdpdGggbG9vc2UgZXJyb3IKKyAgIGNoZWNrcyB0byBsb3NlIGRhdGEgYXQgdGhlIHJlbW90ZSBzaWRlLgorCisgKiAiZ2l0IGZldGNoIiBpbnRvIGEgc2hhbGxvdyByZXBvc2l0b3J5IGZyb20gYSByZXBvc2l0b3J5IHRoYXQgZG9lcworICAgbm90IGtub3cgYWJvdXQgdGhlIHNoYWxsb3cgYm91bmRhcnkgY29tbWl0cyAoZS5nLiBhIGRpZmZlcmVudCBmb3JrCisgICBmcm9tIHRoZSByZXBvc2l0b3J5IHRoZSBjdXJyZW50IHNoYWxsb3cgcmVwb3NpdG9yeSB3YXMgY2xvbmVkIGZyb20pCisgICBkaWQgbm90IHdvcmsgY29ycmVjdGx5LgorCisgKiAiZ2l0IGNoZWNrb3V0IGZvbyIgRFdJTXMgdGhlIGludGVuZGVkICJ1cHN0cmVhbSIgYW5kIHR1cm5zIGl0IGludG8KKyAgICJnaXQgY2hlY2tvdXQgLXQgLWIgZm9vIHJlbW90ZXMvb3JpZ2luL2ZvbyIuIFRoaXMgY29kZXBhdGggaGFzIGJlZW4KKyAgIHVwZGF0ZWQgdG8gY29ycmVjdGx5IHRha2UgZXhpc3RpbmcgcmVtb3RlIGRlZmluaXRpb25zIGludG8gYWNjb3VudC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL2JsYW1lLW9wdGlvbnMudHh0CmluZGV4IGIwZDMxZGYuLjRlNTViMTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYmxhbWUtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ibGFtZS1vcHRpb25zLnR4dApAQCAtMTAsMjcgKzEwLDE0IEBACiAJSW5jbHVkZSBhZGRpdGlvbmFsIHN0YXRpc3RpY3MgYXQgdGhlIGVuZCBvZiBibGFtZSBvdXRwdXQuCiAKIC1MIDxzdGFydD4sPGVuZD46OgotCUFubm90YXRlIG9ubHkgdGhlIGdpdmVuIGxpbmUgcmFuZ2UuICA8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZQotCW9uZSBvZiB0aGVzZSBmb3JtczoKKy1MIDo8cmVnZXg+OjoKKwlBbm5vdGF0ZSBvbmx5IHRoZSBnaXZlbiBsaW5lIHJhbmdlLiAgPHN0YXJ0PiBhbmQgPGVuZD4gYXJlIG9wdGlvbmFsLgorCWBgLUwgPHN0YXJ0PicnIG9yIGBgLUwgPHN0YXJ0PiwnJyBzcGFucyBmcm9tIDxzdGFydD4gdG8gZW5kIG9mIGZpbGUuCisJYGAtTCAsPGVuZD4nJyBzcGFucyBmcm9tIHN0YXJ0IG9mIGZpbGUgdG8gPGVuZD4uCisrCis8c3RhcnQ+IGFuZCA8ZW5kPiBjYW4gdGFrZSBvbmUgb2YgdGhlc2UgZm9ybXM6CiAKLQktIG51bWJlcgotKwotSWYgPHN0YXJ0PiBvciA8ZW5kPiBpcyBhIG51bWJlciwgaXQgc3BlY2lmaWVzIGFuCi1hYnNvbHV0ZSBsaW5lIG51bWJlciAobGluZXMgY291bnQgZnJvbSAxKS4KLSsKLQotLSAvcmVnZXgvCi0rCi1UaGlzIGZvcm0gd2lsbCB1c2UgdGhlIGZpcnN0IGxpbmUgbWF0Y2hpbmcgdGhlIGdpdmVuCi1QT1NJWCByZWdleC4gIElmIDxlbmQ+IGlzIGEgcmVnZXgsIGl0IHdpbGwgc2VhcmNoCi1zdGFydGluZyBhdCB0aGUgbGluZSBnaXZlbiBieSA8c3RhcnQ+LgotKwotCi0tICtvZmZzZXQgb3IgLW9mZnNldAotKwotVGhpcyBpcyBvbmx5IHZhbGlkIGZvciA8ZW5kPiBhbmQgd2lsbCBzcGVjaWZ5IGEgbnVtYmVyCi1vZiBsaW5lcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxpbmUgZ2l2ZW4gYnkgPHN0YXJ0Pi4KLSsKK2luY2x1ZGU6OmxpbmUtcmFuZ2UtZm9ybWF0LnR4dFtdCiAKIC1sOjoKIAlTaG93IGxvbmcgcmV2IChEZWZhdWx0OiBvZmYpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jb25maWcudHh0IGIvRG9jdW1lbnRhdGlvbi9jb25maWcudHh0CmluZGV4IDZlNTNmYzUuLmVjNTdhMTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29uZmlnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2NvbmZpZy50eHQKQEAgLTE5OSw2ICsxOTksOSBAQAogCWFtV29ya0Rpcjo6CiAJCUFkdmljZSB0aGF0IHNob3dzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcGF0Y2ggZmlsZSB3aGVuCiAJCWxpbmtnaXQ6Z2l0LWFtWzFdIGZhaWxzIHRvIGFwcGx5IGl0LgorCXJtSGludHM6OgorCQlJbiBjYXNlIG9mIGZhaWx1cmUgaW4gdGhlIG91dHB1dCBvZiBsaW5rZ2l0OmdpdC1ybVsxXSwKKwkJc2hvdyBkaXJlY3Rpb25zIG9uIGhvdyB0byBwcm9jZWVkIGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuCiAtLQogCiBjb3JlLmZpbGVNb2RlOjoKQEAgLTIxMCwxNyArMjEzLDYgQEAKIHdpbGwgcHJvYmUgYW5kIHNldCBjb3JlLmZpbGVNb2RlIGZhbHNlIGlmIGFwcHJvcHJpYXRlIHdoZW4gdGhlCiByZXBvc2l0b3J5IGlzIGNyZWF0ZWQuCiAKLWNvcmUuaWdub3JlQ3lnd2luRlNUcmlja3M6OgotCVRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZCBieSBDeWd3aW4gaW1wbGVtZW50YXRpb24gb2YgR2l0LiBJZiBmYWxzZSwKLQl0aGUgQ3lnd2luIHN0YXQoKSBhbmQgbHN0YXQoKSBmdW5jdGlvbnMgYXJlIHVzZWQuIFRoaXMgbWF5IGJlIHVzZWZ1bAotCWlmIHlvdXIgcmVwb3NpdG9yeSBjb25zaXN0cyBvZiBhIGZldyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBqb2luZWQgaW4KLQlvbmUgaGllcmFyY2h5IHVzaW5nIEN5Z3dpbiBtb3VudC4gSWYgdHJ1ZSwgR2l0IHVzZXMgbmF0aXZlIFdpbjMyIEFQSQotCXdoZW5ldmVyIGl0IGlzIHBvc3NpYmxlIGFuZCBmYWxscyBiYWNrIHRvIEN5Z3dpbiBmdW5jdGlvbnMgb25seSB0bwotCWhhbmRsZSBzeW1ib2wgbGlua3MuIFRoZSBuYXRpdmUgbW9kZSBpcyBtb3JlIHRoYW4gdHdpY2UgZmFzdGVyIHRoYW4KLQlub3JtYWwgQ3lnd2luIGwvc3RhdCgpIGZ1bmN0aW9ucy4gVHJ1ZSBieSBkZWZhdWx0LCB1bmxlc3MgY29yZS5maWxlbW9kZQotCWlzIHRydWUsIGluIHdoaWNoIGNhc2UgaWdub3JlQ3lnd2luRlNUcmlja3MgaXMgaWdub3JlZCBhcyBDeWd3aW4ncwotCVBPU0lYIGVtdWxhdGlvbiBpcyByZXF1aXJlZCB0byBzdXBwb3J0IGNvcmUuZmlsZW1vZGUuCi0KIGNvcmUuaWdub3JlY2FzZTo6CiAJSWYgdHJ1ZSwgdGhpcyBvcHRpb24gZW5hYmxlcyB2YXJpb3VzIHdvcmthcm91bmRzIHRvIGVuYWJsZQogCUdpdCB0byB3b3JrIGJldHRlciBvbiBmaWxlc3lzdGVtcyB0aGF0IGFyZSBub3QgY2FzZSBzZW5zaXRpdmUsCkBAIC04NzYsMTYgKzg2OCwxNyBAQAogCiBjb2xvci5pbnRlcmFjdGl2ZTo6CiAJV2hlbiBzZXQgdG8gYGFsd2F5c2AsIGFsd2F5cyB1c2UgY29sb3JzIGZvciBpbnRlcmFjdGl2ZSBwcm9tcHRzCi0JYW5kIGRpc3BsYXlzIChzdWNoIGFzIHRob3NlIHVzZWQgYnkgImdpdC1hZGQgLS1pbnRlcmFjdGl2ZSIpLgotCVdoZW4gZmFsc2UgKG9yIGBuZXZlcmApLCBuZXZlci4gIFdoZW4gc2V0IHRvIGB0cnVlYCBvciBgYXV0b2AsIHVzZQotCWNvbG9ycyBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyB0byB0aGUgdGVybWluYWwuIERlZmF1bHRzIHRvIGZhbHNlLgorCWFuZCBkaXNwbGF5cyAoc3VjaCBhcyB0aG9zZSB1c2VkIGJ5ICJnaXQtYWRkIC0taW50ZXJhY3RpdmUiIGFuZAorCSJnaXQtY2xlYW4gLS1pbnRlcmFjdGl2ZSIpLiBXaGVuIGZhbHNlIChvciBgbmV2ZXJgKSwgbmV2ZXIuCisJV2hlbiBzZXQgdG8gYHRydWVgIG9yIGBhdXRvYCwgdXNlIGNvbG9ycyBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcworCXRvIHRoZSB0ZXJtaW5hbC4gRGVmYXVsdHMgdG8gZmFsc2UuCiAKIGNvbG9yLmludGVyYWN0aXZlLjxzbG90Pjo6Ci0JVXNlIGN1c3RvbWl6ZWQgY29sb3IgZm9yICdnaXQgYWRkIC0taW50ZXJhY3RpdmUnCi0Jb3V0cHV0LiBgPHNsb3Q+YCBtYXkgYmUgYHByb21wdGAsIGBoZWFkZXJgLCBgaGVscGAgb3IgYGVycm9yYCwgZm9yCi0JZm91ciBkaXN0aW5jdCB0eXBlcyBvZiBub3JtYWwgb3V0cHV0IGZyb20gaW50ZXJhY3RpdmUKLQljb21tYW5kcy4gIFRoZSB2YWx1ZXMgb2YgdGhlc2UgdmFyaWFibGVzIG1heSBiZSBzcGVjaWZpZWQgYXMKLQlpbiBjb2xvci5icmFuY2guPHNsb3Q+LgorCVVzZSBjdXN0b21pemVkIGNvbG9yIGZvciAnZ2l0IGFkZCAtLWludGVyYWN0aXZlJyBhbmQgJ2dpdCBjbGVhbgorCS0taW50ZXJhY3RpdmUnIG91dHB1dC4gYDxzbG90PmAgbWF5IGJlIGBwcm9tcHRgLCBgaGVhZGVyYCwgYGhlbHBgCisJb3IgYGVycm9yYCwgZm9yIGZvdXIgZGlzdGluY3QgdHlwZXMgb2Ygbm9ybWFsIG91dHB1dCBmcm9tCisJaW50ZXJhY3RpdmUgY29tbWFuZHMuICBUaGUgdmFsdWVzIG9mIHRoZXNlIHZhcmlhYmxlcyBtYXkgYmUKKwlzcGVjaWZpZWQgYXMgaW4gY29sb3IuYnJhbmNoLjxzbG90Pi4KIAogY29sb3IucGFnZXI6OgogCUEgYm9vbGVhbiB0byBlbmFibGUvZGlzYWJsZSBjb2xvcmVkIG91dHB1dCB3aGVuIHRoZSBwYWdlciBpcyBpbgpAQCAtOTE5LDE3ICs5MTIsMjEgQEAKIAlhcyBgY29sb3IuZGlmZmAgYW5kIGBjb2xvci5ncmVwYCB0aGF0IGNvbnRyb2wgdGhlIHVzZSBvZiBjb2xvcgogCXBlciBjb21tYW5kIGZhbWlseS4gSXRzIHNjb3BlIHdpbGwgZXhwYW5kIGFzIG1vcmUgY29tbWFuZHMgbGVhcm4KIAljb25maWd1cmF0aW9uIHRvIHNldCBhIGRlZmF1bHQgZm9yIHRoZSBgLS1jb2xvcmAgb3B0aW9uLiAgU2V0IGl0Ci0JdG8gYGFsd2F5c2AgaWYgeW91IHdhbnQgYWxsIG91dHB1dCBub3QgaW50ZW5kZWQgZm9yIG1hY2hpbmUKLQljb25zdW1wdGlvbiB0byB1c2UgY29sb3IsIHRvIGB0cnVlYCBvciBgYXV0b2AgaWYgeW91IHdhbnQgc3VjaAotCW91dHB1dCB0byB1c2UgY29sb3Igd2hlbiB3cml0dGVuIHRvIHRoZSB0ZXJtaW5hbCwgb3IgdG8gYGZhbHNlYCBvcgotCWBuZXZlcmAgaWYgeW91IHByZWZlciBHaXQgY29tbWFuZHMgbm90IHRvIHVzZSBjb2xvciB1bmxlc3MgZW5hYmxlZAotCWV4cGxpY2l0bHkgd2l0aCBzb21lIG90aGVyIGNvbmZpZ3VyYXRpb24gb3IgdGhlIGAtLWNvbG9yYCBvcHRpb24uCisJdG8gYGZhbHNlYCBvciBgbmV2ZXJgIGlmIHlvdSBwcmVmZXIgR2l0IGNvbW1hbmRzIG5vdCB0byB1c2UKKwljb2xvciB1bmxlc3MgZW5hYmxlZCBleHBsaWNpdGx5IHdpdGggc29tZSBvdGhlciBjb25maWd1cmF0aW9uCisJb3IgdGhlIGAtLWNvbG9yYCBvcHRpb24uIFNldCBpdCB0byBgYWx3YXlzYCBpZiB5b3Ugd2FudCBhbGwKKwlvdXRwdXQgbm90IGludGVuZGVkIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uIHRvIHVzZSBjb2xvciwgdG8KKwlgdHJ1ZWAgb3IgYGF1dG9gICh0aGlzIGlzIHRoZSBkZWZhdWx0IHNpbmNlIEdpdCAxLjguNCkgaWYgeW91CisJd2FudCBzdWNoIG91dHB1dCB0byB1c2UgY29sb3Igd2hlbiB3cml0dGVuIHRvIHRoZSB0ZXJtaW5hbC4KIAogY29sdW1uLnVpOjoKIAlTcGVjaWZ5IHdoZXRoZXIgc3VwcG9ydGVkIGNvbW1hbmRzIHNob3VsZCBvdXRwdXQgaW4gY29sdW1ucy4KIAlUaGlzIHZhcmlhYmxlIGNvbnNpc3RzIG9mIGEgbGlzdCBvZiB0b2tlbnMgc2VwYXJhdGVkIGJ5IHNwYWNlcwogCW9yIGNvbW1hczoKICsKK1RoZXNlIG9wdGlvbnMgY29udHJvbCB3aGVuIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkCisoZGVmYXVsdHMgdG8gJ25ldmVyJyk6CisrCiAtLQogYGFsd2F5c2A7OwogCWFsd2F5cyBzaG93IGluIGNvbHVtbnMKQEAgLTkzNywyNCArOTM0LDM5IEBACiAJbmV2ZXIgc2hvdyBpbiBjb2x1bW5zCiBgYXV0b2A7OwogCXNob3cgaW4gY29sdW1ucyBpZiB0aGUgb3V0cHV0IGlzIHRvIHRoZSB0ZXJtaW5hbAorLS0KKysKK1RoZXNlIG9wdGlvbnMgY29udHJvbCBsYXlvdXQgKGRlZmF1bHRzIHRvICdjb2x1bW4nKS4gIFNldHRpbmcgYW55CitvZiB0aGVzZSBpbXBsaWVzICdhbHdheXMnIGlmIG5vbmUgb2YgJ2Fsd2F5cycsICduZXZlcicsIG9yICdhdXRvJyBhcmUKK3NwZWNpZmllZC4KKysKKy0tCiBgY29sdW1uYDs7Ci0JZmlsbCBjb2x1bW5zIGJlZm9yZSByb3dzIChkZWZhdWx0KQorCWZpbGwgY29sdW1ucyBiZWZvcmUgcm93cwogYHJvd2A7OwogCWZpbGwgcm93cyBiZWZvcmUgY29sdW1ucwogYHBsYWluYDs7CiAJc2hvdyBpbiBvbmUgY29sdW1uCistLQorKworRmluYWxseSwgdGhlc2Ugb3B0aW9ucyBjYW4gYmUgY29tYmluZWQgd2l0aCBhIGxheW91dCBvcHRpb24gKGRlZmF1bHRzCit0byAnbm9kZW5zZScpOgorKworLS0KIGBkZW5zZWA7OwogCW1ha2UgdW5lcXVhbCBzaXplIGNvbHVtbnMgdG8gdXRpbGl6ZSBtb3JlIHNwYWNlCiBgbm9kZW5zZWA7OwogCW1ha2UgZXF1YWwgc2l6ZSBjb2x1bW5zCiAtLQotKwotVGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gJ25ldmVyJy4KIAogY29sdW1uLmJyYW5jaDo6CiAJU3BlY2lmeSB3aGV0aGVyIHRvIG91dHB1dCBicmFuY2ggbGlzdGluZyBpbiBgZ2l0IGJyYW5jaGAgaW4gY29sdW1ucy4KIAlTZWUgYGNvbHVtbi51aWAgZm9yIGRldGFpbHMuCiAKK2NvbHVtbi5jbGVhbjo6CisJU3BlY2lmeSB0aGUgbGF5b3V0IHdoZW4gbGlzdCBpdGVtcyBpbiBgZ2l0IGNsZWFuIC1pYCwgd2hpY2ggYWx3YXlzCisJc2hvd3MgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGluIGNvbHVtbnMuIFNlZSBgY29sdW1uLnVpYCBmb3IgZGV0YWlscy4KKwogY29sdW1uLnN0YXR1czo6CiAJU3BlY2lmeSB3aGV0aGVyIHRvIG91dHB1dCB1bnRyYWNrZWQgZmlsZXMgaW4gYGdpdCBzdGF0dXNgIGluIGNvbHVtbnMuCiAJU2VlIGBjb2x1bW4udWlgIGZvciBkZXRhaWxzLgpAQCAtMTgyNiwzOSArMTgzOCw1OSBAQAogCVRoZSBkZWZhdWx0IG1lcmdlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIHB1bGxpbmcgYSBzaW5nbGUgYnJhbmNoLgogCiBwdXNoLmRlZmF1bHQ6OgotCURlZmluZXMgdGhlIGFjdGlvbiBgZ2l0IHB1c2hgIHNob3VsZCB0YWtlIGlmIG5vIHJlZnNwZWMgaXMgZ2l2ZW4KLQlvbiB0aGUgY29tbWFuZCBsaW5lLCBubyByZWZzcGVjIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIHJlbW90ZSwgYW5kCi0Jbm8gcmVmc3BlYyBpcyBpbXBsaWVkIGJ5IGFueSBvZiB0aGUgb3B0aW9ucyBnaXZlbiBvbiB0aGUgY29tbWFuZAotCWxpbmUuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisJRGVmaW5lcyB0aGUgYWN0aW9uIGBnaXQgcHVzaGAgc2hvdWxkIHRha2UgaWYgbm8gcmVmc3BlYyBpcworCWV4cGxpY2l0bHkgZ2l2ZW4uICBEaWZmZXJlbnQgdmFsdWVzIGFyZSB3ZWxsLXN1aXRlZCBmb3IKKwlzcGVjaWZpYyB3b3JrZmxvd3M7IGZvciBpbnN0YW5jZSwgaW4gYSBwdXJlbHkgY2VudHJhbCB3b3JrZmxvdworCShpLmUuIHRoZSBmZXRjaCBzb3VyY2UgaXMgZXF1YWwgdG8gdGhlIHB1c2ggZGVzdGluYXRpb24pLAorCWB1cHN0cmVhbWAgaXMgcHJvYmFibHkgd2hhdCB5b3Ugd2FudC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6CiArCiAtLQotKiBgbm90aGluZ2AgLSBkbyBub3QgcHVzaCBhbnl0aGluZy4KLSogYG1hdGNoaW5nYCAtIHB1c2ggYWxsIGJyYW5jaGVzIGhhdmluZyB0aGUgc2FtZSBuYW1lIGluIGJvdGggZW5kcy4KLSAgVGhpcyBpcyBmb3IgdGhvc2Ugd2hvIHByZXBhcmUgYWxsIHRoZSBicmFuY2hlcyBpbnRvIGEgcHVibGlzaGFibGUKLSAgc2hhcGUgYW5kIHRoZW4gcHVzaCB0aGVtIG91dCB3aXRoIGEgc2luZ2xlIGNvbW1hbmQuICBJdCBpcyBub3QKLSAgYXBwcm9wcmlhdGUgZm9yIHB1c2hpbmcgaW50byBhIHJlcG9zaXRvcnkgc2hhcmVkIGJ5IG11bHRpcGxlIHVzZXJzLAotICBzaW5jZSBsb2NhbGx5IHN0YWxsZWQgYnJhbmNoZXMgd2lsbCBhdHRlbXB0IGEgbm9uLWZhc3QgZm9yd2FyZCBwdXNoCi0gIGlmIG90aGVyIHVzZXJzIHVwZGF0ZWQgdGhlIGJyYW5jaC4KLSAgKwotICBUaGlzIGlzIGN1cnJlbnRseSB0aGUgZGVmYXVsdCwgYnV0IEdpdCAyLjAgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQKLSAgdG8gYHNpbXBsZWAuCi0qIGB1cHN0cmVhbWAgLSBwdXNoIHRoZSBjdXJyZW50IGJyYW5jaCB0byBpdHMgdXBzdHJlYW0gYnJhbmNoCi0gIChgdHJhY2tpbmdgIGlzIGEgZGVwcmVjYXRlZCBzeW5vbnltIGZvciB0aGlzKS4KLSAgV2l0aCB0aGlzLCBgZ2l0IHB1c2hgIHdpbGwgdXBkYXRlIHRoZSBzYW1lIHJlbW90ZSByZWYgYXMgdGhlIG9uZSB3aGljaAotICBpcyBtZXJnZWQgYnkgYGdpdCBwdWxsYCwgbWFraW5nIGBwdXNoYCBhbmQgYHB1bGxgIHN5bW1ldHJpY2FsLgotICBTZWUgImJyYW5jaC48bmFtZT4ubWVyZ2UiIGZvciBob3cgdG8gY29uZmlndXJlIHRoZSB1cHN0cmVhbSBicmFuY2guCi0qIGBzaW1wbGVgIC0gbGlrZSBgdXBzdHJlYW1gLCBidXQgcmVmdXNlcyB0byBwdXNoIGlmIHRoZSB1cHN0cmVhbQotICBicmFuY2gncyBuYW1lIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBsb2NhbCBvbmUuIFRoaXMgaXMgdGhlIHNhZmVzdAotICBvcHRpb24gYW5kIGlzIHdlbGwtc3VpdGVkIGZvciBiZWdpbm5lcnMuIEl0IHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0Ci0gIGluIEdpdCAyLjAuCi0qIGBjdXJyZW50YCAtIHB1c2ggdGhlIGN1cnJlbnQgYnJhbmNoIHRvIGEgYnJhbmNoIG9mIHRoZSBzYW1lIG5hbWUuCi0tLQorCisqIGBub3RoaW5nYCAtIGRvIG5vdCBwdXNoIGFueXRoaW5nIChlcnJvciBvdXQpIHVubGVzcyBhIHJlZnNwZWMgaXMKKyAgZXhwbGljaXRseSBnaXZlbi4gVGhpcyBpcyBwcmltYXJpbHkgbWVhbnQgZm9yIHBlb3BsZSB3aG8gd2FudCB0bworICBhdm9pZCBtaXN0YWtlcyBieSBhbHdheXMgYmVpbmcgZXhwbGljaXQuCisKKyogYGN1cnJlbnRgIC0gcHVzaCB0aGUgY3VycmVudCBicmFuY2ggdG8gdXBkYXRlIGEgYnJhbmNoIHdpdGggdGhlIHNhbWUKKyAgbmFtZSBvbiB0aGUgcmVjZWl2aW5nIGVuZC4gIFdvcmtzIGluIGJvdGggY2VudHJhbCBhbmQgbm9uLWNlbnRyYWwKKyAgd29ya2Zsb3dzLgorCisqIGB1cHN0cmVhbWAgLSBwdXNoIHRoZSBjdXJyZW50IGJyYW5jaCBiYWNrIHRvIHRoZSBicmFuY2ggd2hvc2UKKyAgY2hhbmdlcyBhcmUgdXN1YWxseSBpbnRlZ3JhdGVkIGludG8gdGhlIGN1cnJlbnQgYnJhbmNoICh3aGljaCBpcworICBjYWxsZWQgYEB7dXBzdHJlYW19YCkuICBUaGlzIG1vZGUgb25seSBtYWtlcyBzZW5zZSBpZiB5b3UgYXJlCisgIHB1c2hpbmcgdG8gdGhlIHNhbWUgcmVwb3NpdG9yeSB5b3Ugd291bGQgbm9ybWFsbHkgcHVsbCBmcm9tCisgIChpLmUuIGNlbnRyYWwgd29ya2Zsb3cpLgorCisqIGBzaW1wbGVgIC0gaW4gY2VudHJhbGl6ZWQgd29ya2Zsb3csIHdvcmsgbGlrZSBgdXBzdHJlYW1gIHdpdGggYW4KKyAgYWRkZWQgc2FmZXR5IHRvIHJlZnVzZSB0byBwdXNoIGlmIHRoZSB1cHN0cmVhbSBicmFuY2gncyBuYW1lIGlzCisgIGRpZmZlcmVudCBmcm9tIHRoZSBsb2NhbCBvbmUuCiArCi1UaGUgYHNpbXBsZWAsIGBjdXJyZW50YCBhbmQgYHVwc3RyZWFtYCBtb2RlcyBhcmUgZm9yIHRob3NlIHdobyB3YW50IHRvCi1wdXNoIG91dCBhIHNpbmdsZSBicmFuY2ggYWZ0ZXIgZmluaXNoaW5nIHdvcmssIGV2ZW4gd2hlbiB0aGUgb3RoZXIKLWJyYW5jaGVzIGFyZSBub3QgeWV0IHJlYWR5IHRvIGJlIHB1c2hlZCBvdXQuIElmIHlvdSBhcmUgd29ya2luZyB3aXRoCi1vdGhlciBwZW9wbGUgdG8gcHVzaCBpbnRvIHRoZSBzYW1lIHNoYXJlZCByZXBvc2l0b3J5LCB5b3Ugd291bGQgd2FudAotdG8gdXNlIG9uZSBvZiB0aGVzZS4KK1doZW4gcHVzaGluZyB0byBhIHJlbW90ZSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZW1vdGUgeW91IG5vcm1hbGx5CitwdWxsIGZyb20sIHdvcmsgYXMgYGN1cnJlbnRgLiAgVGhpcyBpcyB0aGUgc2FmZXN0IG9wdGlvbiBhbmQgaXMgc3VpdGVkCitmb3IgYmVnaW5uZXJzLgorKworVGhpcyBtb2RlIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGluIEdpdCAyLjAuCisKKyogYG1hdGNoaW5nYCAtIHB1c2ggYWxsIGJyYW5jaGVzIGhhdmluZyB0aGUgc2FtZSBuYW1lIG9uIGJvdGggZW5kcy4KKyAgVGhpcyBtYWtlcyB0aGUgcmVwb3NpdG9yeSB5b3UgYXJlIHB1c2hpbmcgdG8gcmVtZW1iZXIgdGhlIHNldCBvZgorICBicmFuY2hlcyB0aGF0IHdpbGwgYmUgcHVzaGVkIG91dCAoZS5nLiBpZiB5b3UgYWx3YXlzIHB1c2ggJ21haW50JworICBhbmQgJ21hc3RlcicgdGhlcmUgYW5kIG5vIG90aGVyIGJyYW5jaGVzLCB0aGUgcmVwb3NpdG9yeSB5b3UgcHVzaAorICB0byB3aWxsIGhhdmUgdGhlc2UgdHdvIGJyYW5jaGVzLCBhbmQgeW91ciBsb2NhbCAnbWFpbnQnIGFuZAorICAnbWFzdGVyJyB3aWxsIGJlIHB1c2hlZCB0aGVyZSkuCisrCitUbyB1c2UgdGhpcyBtb2RlIGVmZmVjdGl2ZWx5LCB5b3UgaGF2ZSB0byBtYWtlIHN1cmUgX2FsbF8gdGhlCiticmFuY2hlcyB5b3Ugd291bGQgcHVzaCBvdXQgYXJlIHJlYWR5IHRvIGJlIHB1c2hlZCBvdXQgYmVmb3JlCitydW5uaW5nICdnaXQgcHVzaCcsIGFzIHRoZSB3aG9sZSBwb2ludCBvZiB0aGlzIG1vZGUgaXMgdG8gYWxsb3cgeW91Cit0byBwdXNoIGFsbCBvZiB0aGUgYnJhbmNoZXMgaW4gb25lIGdvLiAgSWYgeW91IHVzdWFsbHkgZmluaXNoIHdvcmsKK29uIG9ubHkgb25lIGJyYW5jaCBhbmQgcHVzaCBvdXQgdGhlIHJlc3VsdCwgd2hpbGUgb3RoZXIgYnJhbmNoZXMgYXJlCit1bmZpbmlzaGVkLCB0aGlzIG1vZGUgaXMgbm90IGZvciB5b3UuICBBbHNvIHRoaXMgbW9kZSBpcyBub3QKK3N1aXRhYmxlIGZvciBwdXNoaW5nIGludG8gYSBzaGFyZWQgY2VudHJhbCByZXBvc2l0b3J5LCBhcyBvdGhlcgorcGVvcGxlIG1heSBhZGQgbmV3IGJyYW5jaGVzIHRoZXJlLCBvciB1cGRhdGUgdGhlIHRpcCBvZiBleGlzdGluZworYnJhbmNoZXMgb3V0c2lkZSB5b3VyIGNvbnRyb2wuCisrCitUaGlzIGlzIGN1cnJlbnRseSB0aGUgZGVmYXVsdCwgYnV0IEdpdCAyLjAgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQKK3RvIGBzaW1wbGVgLgorCistLQogCiByZWJhc2Uuc3RhdDo6CiAJV2hldGhlciB0byBzaG93IGEgZGlmZnN0YXQgb2Ygd2hhdCBjaGFuZ2VkIHVwc3RyZWFtIHNpbmNlIHRoZSBsYXN0CkBAIC0xODY3LDYgKzE4OTksMTQgQEAKIHJlYmFzZS5hdXRvc3F1YXNoOjoKIAlJZiBzZXQgdG8gdHJ1ZSBlbmFibGUgJy0tYXV0b3NxdWFzaCcgb3B0aW9uIGJ5IGRlZmF1bHQuCiAKK3JlYmFzZS5hdXRvc3Rhc2g6OgorCVdoZW4gc2V0IHRvIHRydWUsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgdGVtcG9yYXJ5IHN0YXNoCisJYmVmb3JlIHRoZSBvcGVyYXRpb24gYmVnaW5zLCBhbmQgYXBwbHkgaXQgYWZ0ZXIgdGhlIG9wZXJhdGlvbgorCWVuZHMuICBUaGlzIG1lYW5zIHRoYXQgeW91IGNhbiBydW4gcmViYXNlIG9uIGEgZGlydHkgd29ya3RyZWUuCisJSG93ZXZlciwgdXNlIHdpdGggY2FyZTogdGhlIGZpbmFsIHN0YXNoIGFwcGxpY2F0aW9uIGFmdGVyIGEKKwlzdWNjZXNzZnVsIHJlYmFzZSBtaWdodCByZXN1bHQgaW4gbm9uLXRyaXZpYWwgY29uZmxpY3RzLgorCURlZmF1bHRzIHRvIGZhbHNlLgorCiByZWNlaXZlLmF1dG9nYzo6CiAJQnkgZGVmYXVsdCwgZ2l0LXJlY2VpdmUtcGFjayB3aWxsIHJ1biAiZ2l0LWdjIC0tYXV0byIgYWZ0ZXIKIAlyZWNlaXZpbmcgZGF0YSBmcm9tIGdpdC1wdXNoIGFuZCB1cGRhdGluZyByZWZzLiAgWW91IGNhbiBzdG9wCkBAIC0yMDIyLDYgKzIwNjIsMTAgQEAKIHNlbmRlbWFpbC5zbXRwc3NsOjoKIAlEZXByZWNhdGVkIGFsaWFzIGZvciAnc2VuZGVtYWlsLnNtdHBlbmNyeXB0aW9uID0gc3NsJy4KIAorc2VuZGVtYWlsLnNtdHBzc2xjZXJ0cGF0aDo6CisJUGF0aCB0byBjYS1jZXJ0aWZpY2F0ZXMgKGVpdGhlciBhIGRpcmVjdG9yeSBvciBhIHNpbmdsZSBmaWxlKS4KKwlTZXQgaXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLgorCiBzZW5kZW1haWwuPGlkZW50aXR5Pi4qOjoKIAlJZGVudGl0eS1zcGVjaWZpYyB2ZXJzaW9ucyBvZiB0aGUgJ3NlbmRlbWFpbC4qJyBwYXJhbWV0ZXJzCiAJZm91bmQgYmVsb3csIHRha2luZyBwcmVjZWRlbmNlIG92ZXIgdGhvc2Ugd2hlbiB0aGUgdGhpcwpAQCAtMjA2Niw2ICsyMTEwLDE0IEBACiAJcmVsYXRpdmUgdG8gdGhlIHJlcG9zaXRvcnkgcm9vdCAodGhpcyB3YXMgdGhlIGRlZmF1bHQgZm9yIEdpdAogCXByaW9yIHRvIHYxLjUuNCkuCiAKK3N0YXR1cy5zaG9ydDo6CisJU2V0IHRvIHRydWUgdG8gZW5hYmxlIC0tc2hvcnQgYnkgZGVmYXVsdCBpbiBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0uCisJVGhlIG9wdGlvbiAtLW5vLXNob3J0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGlzIHZhcmlhYmxlLgorCitzdGF0dXMuYnJhbmNoOjoKKwlTZXQgdG8gdHJ1ZSB0byBlbmFibGUgLS1icmFuY2ggYnkgZGVmYXVsdCBpbiBsaW5rZ2l0OmdpdC1zdGF0dXNbMV0uCisJVGhlIG9wdGlvbiAtLW5vLWJyYW5jaCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhpcyB2YXJpYWJsZS4KKwogc3RhdHVzLnNob3dVbnRyYWNrZWRGaWxlczo6CiAJQnkgZGVmYXVsdCwgbGlua2dpdDpnaXQtc3RhdHVzWzFdIGFuZCBsaW5rZ2l0OmdpdC1jb21taXRbMV0gc2hvdwogCWZpbGVzIHdoaWNoIGFyZSBub3QgY3VycmVudGx5IHRyYWNrZWQgYnkgR2l0LiBEaXJlY3RvcmllcyB3aGljaApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi9kaWZmLW9wdGlvbnMudHh0CmluZGV4IDEwNDU3OWQuLmJiZWQyY2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGlmZi1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2RpZmYtb3B0aW9ucy50eHQKQEAgLTI2LDYgKzI2LDExIEBACiAJe2dpdC1kaWZmPyBUaGlzIGlzIHRoZSBkZWZhdWx0Ln0KIGVuZGlmOjpnaXQtZm9ybWF0LXBhdGNoW10KIAorLXM6OgorLS1uby1wYXRjaDo6CisJU3VwcHJlc3MgZGlmZiBvdXRwdXQuIFVzZWZ1bCBmb3IgY29tbWFuZHMgbGlrZSBgZ2l0IHNob3dgIHRoYXQKKwlzaG93IHRoZSBwYXRjaCBieSBkZWZhdWx0LCBvciB0byBjYW5jZWwgdGhlIGVmZmVjdCBvZiBgLS1wYXRjaGAuCisKIC1VPG4+OjoKIC0tdW5pZmllZD08bj46OgogCUdlbmVyYXRlIGRpZmZzIHdpdGggPG4+IGxpbmVzIG9mIGNvbnRleHQgaW5zdGVhZCBvZgpAQCAtMzMzLDcgKzMzOCw3IEBACiAJYSBmcmFjdGlvbiwgd2l0aCBhIGRlY2ltYWwgcG9pbnQgYmVmb3JlIGl0LiAgSS5lLiwgYC1NNWAgYmVjb21lcwogCTAuNSwgYW5kIGlzIHRodXMgdGhlIHNhbWUgYXMgYC1NNTAlYC4gIFNpbWlsYXJseSwgYC1NMDVgIGlzCiAJdGhlIHNhbWUgYXMgYC1NNSVgLiAgVG8gbGltaXQgZGV0ZWN0aW9uIHRvIGV4YWN0IHJlbmFtZXMsIHVzZQotCWAtTTEwMCVgLgorCWAtTTEwMCVgLiAgVGhlIGRlZmF1bHQgc2ltaWxhcml0eSBpbmRleCBpcyA1MCUuCiAKIC1DWzxuPl06OgogLS1maW5kLWNvcGllc1s9PG4+XTo6CkBAIC0zODMsMTQgKzM4OCwzNiBAQAogCXRoYXQgbWF0Y2hlcyBvdGhlciBjcml0ZXJpYSwgbm90aGluZyBpcyBzZWxlY3RlZC4KIAogLVM8c3RyaW5nPjo6Ci0JTG9vayBmb3IgZGlmZmVyZW5jZXMgdGhhdCBpbnRyb2R1Y2Ugb3IgcmVtb3ZlIGFuIGluc3RhbmNlIG9mCi0JPHN0cmluZz4uIE5vdGUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBzdHJpbmcgc2ltcGx5Ci0JYXBwZWFyaW5nIGluIGRpZmYgb3V0cHV0OyBzZWUgdGhlICdwaWNrYXhlJyBlbnRyeSBpbgotCWxpbmtnaXQ6Z2l0ZGlmZmNvcmVbN10gZm9yIG1vcmUgZGV0YWlscy4KKwlMb29rIGZvciBkaWZmZXJlbmNlcyB0aGF0IGNoYW5nZSB0aGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzIG9mCisJdGhlIHNwZWNpZmllZCBzdHJpbmcgKGkuZS4gYWRkaXRpb24vZGVsZXRpb24pIGluIGEgZmlsZS4KKwlJbnRlbmRlZCBmb3IgdGhlIHNjcmlwdGVyJ3MgdXNlLgorKworSXQgaXMgdXNlZnVsIHdoZW4geW91J3JlIGxvb2tpbmcgZm9yIGFuIGV4YWN0IGJsb2NrIG9mIGNvZGUgKGxpa2UgYQorc3RydWN0KSwgYW5kIHdhbnQgdG8ga25vdyB0aGUgaGlzdG9yeSBvZiB0aGF0IGJsb2NrIHNpbmNlIGl0IGZpcnN0CitjYW1lIGludG8gYmVpbmc6IHVzZSB0aGUgZmVhdHVyZSBpdGVyYXRpdmVseSB0byBmZWVkIHRoZSBpbnRlcmVzdGluZworYmxvY2sgaW4gdGhlIHByZWltYWdlIGJhY2sgaW50byBgLVNgLCBhbmQga2VlcCBnb2luZyB1bnRpbCB5b3UgZ2V0IHRoZQordmVyeSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBibG9jay4KIAogLUc8cmVnZXg+OjoKLQlMb29rIGZvciBkaWZmZXJlbmNlcyB3aG9zZSBhZGRlZCBvciByZW1vdmVkIGxpbmUgbWF0Y2hlcwotCXRoZSBnaXZlbiA8cmVnZXg+LgorCUxvb2sgZm9yIGRpZmZlcmVuY2VzIHdob3NlIHBhdGNoIHRleHQgY29udGFpbnMgYWRkZWQvcmVtb3ZlZAorCWxpbmVzIHRoYXQgbWF0Y2ggPHJlZ2V4Pi4KKysKK1RvIGlsbHVzdHJhdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBgLVM8cmVnZXg+IC0tcGlja2F4ZS1yZWdleGAgYW5kCitgLUc8cmVnZXg+YCwgY29uc2lkZXIgYSBjb21taXQgd2l0aCB0aGUgZm9sbG93aW5nIGRpZmYgaW4gdGhlIHNhbWUKK2ZpbGU6CisrCistLS0tCisrICAgIHJldHVybiAhcmVnZXhlYyhyZWdleHAsIHR3by0+cHRyLCAxLCAmcmVnbWF0Y2gsIDApOworLi4uCistICAgIGhpdCA9ICFyZWdleGVjKHJlZ2V4cCwgbWYyLnB0ciwgMSwgJnJlZ21hdGNoLCAwKTsKKy0tLS0KKysKK1doaWxlIGBnaXQgbG9nIC1HInJlZ2V4ZWNcKHJlZ2V4cCJgIHdpbGwgc2hvdyB0aGlzIGNvbW1pdCwgYGdpdCBsb2cKKy1TInJlZ2V4ZWNcKHJlZ2V4cCIgLS1waWNrYXhlLXJlZ2V4YCB3aWxsIG5vdCAoYmVjYXVzZSB0aGUgbnVtYmVyIG9mCitvY2N1cnJlbmNlcyBvZiB0aGF0IHN0cmluZyBkaWQgbm90IGNoYW5nZSkuCisrCitTZWUgdGhlICdwaWNrYXhlJyBlbnRyeSBpbiBsaW5rZ2l0OmdpdGRpZmZjb3JlWzddIGZvciBtb3JlCitpbmZvcm1hdGlvbi4KIAogLS1waWNrYXhlLWFsbDo6CiAJV2hlbiBgLVNgIG9yIGAtR2AgZmluZHMgYSBjaGFuZ2UsIHNob3cgYWxsIHRoZSBjaGFuZ2VzIGluIHRoYXQKQEAgLTM5OCw4ICs0MjUsOCBAQAogCWluIDxzdHJpbmc+LgogCiAtLXBpY2theGUtcmVnZXg6OgotCU1ha2UgdGhlIDxzdHJpbmc+IG5vdCBhIHBsYWluIHN0cmluZyBidXQgYW4gZXh0ZW5kZWQgUE9TSVgKLQlyZWdleCB0byBtYXRjaC4KKwlUcmVhdCB0aGUgPHN0cmluZz4gZ2l2ZW4gdG8gYC1TYCBhcyBhbiBleHRlbmRlZCBQT1NJWCByZWd1bGFyCisJZXhwcmVzc2lvbiB0byBtYXRjaC4KIGVuZGlmOjpnaXQtZm9ybWF0LXBhdGNoW10KIAogLU88b3JkZXJmaWxlPjo6CkBAIC00MzksNiArNDY2LDkgQEAKIAlkaWZmZXJlbmNlcyBldmVuIGlmIG9uZSBsaW5lIGhhcyB3aGl0ZXNwYWNlIHdoZXJlIHRoZSBvdGhlcgogCWxpbmUgaGFzIG5vbmUuCiAKKy0taWdub3JlLWJsYW5rLWxpbmVzOjoKKwlJZ25vcmUgY2hhbmdlcyB3aG9zZSBsaW5lcyBhcmUgYWxsIGJsYW5rLgorCiAtLWludGVyLWh1bmstY29udGV4dD08bGluZXM+OjoKIAlTaG93IHRoZSBjb250ZXh0IGJldHdlZW4gZGlmZiBodW5rcywgdXAgdG8gdGhlIHNwZWNpZmllZCBudW1iZXIKIAlvZiBsaW5lcywgdGhlcmVieSBmdXNpbmcgaHVua3MgdGhhdCBhcmUgY2xvc2UgdG8gZWFjaCBvdGhlci4KQEAgLTQ4MCw3ICs1MTAsNyBAQAogCiAtLWlnbm9yZS1zdWJtb2R1bGVzWz08d2hlbj5dOjoKIAlJZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzIGluIHRoZSBkaWZmIGdlbmVyYXRpb24uIDx3aGVuPiBjYW4gYmUKLQllaXRoZXIgIm5vbmUiLCAidW50cmFja2VkIiwgImRpcnR5IiBvciAiYWxsIiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQKKwllaXRoZXIgIm5vbmUiLCAidW50cmFja2VkIiwgImRpcnR5IiBvciAiYWxsIiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQuCiAJVXNpbmcgIm5vbmUiIHdpbGwgY29uc2lkZXIgdGhlIHN1Ym1vZHVsZSBtb2RpZmllZCB3aGVuIGl0IGVpdGhlciBjb250YWlucwogCXVudHJhY2tlZCBvciBtb2RpZmllZCBmaWxlcyBvciBpdHMgSEVBRCBkaWZmZXJzIGZyb20gdGhlIGNvbW1pdCByZWNvcmRlZAogCWluIHRoZSBzdXBlcnByb2plY3QgYW5kIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIGFueSBzZXR0aW5ncyBvZiB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmV0Y2gtb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL2ZldGNoLW9wdGlvbnMudHh0CmluZGV4IDljYjY0OTYuLmJhMWZlNDkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmV0Y2gtb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9mZXRjaC1vcHRpb25zLnR4dApAQCAtNjEsNyArNjEsNyBAQAogaWZuZGVmOjpnaXQtcHVsbFtdCiAtdDo6CiAtLXRhZ3M6OgotCVRoaXMgaXMgYSBzaG9ydC1oYW5kIGZvciBnaXZpbmcgInJlZnMvdGFncy8qOnJlZnMvdGFncy8qIgorCVRoaXMgaXMgYSBzaG9ydC1oYW5kIGZvciBnaXZpbmcgYHJlZnMvdGFncy8qOnJlZnMvdGFncy8qYAogCXJlZnNwZWMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCB0byBhc2sgYWxsIHRhZ3MgdG8gYmUgZmV0Y2hlZAogCWFuZCBzdG9yZWQgbG9jYWxseS4gIEJlY2F1c2UgdGhpcyBhY3RzIGFzIGFuIGV4cGxpY2l0CiAJcmVmc3BlYywgdGhlIGRlZmF1bHQgcmVmc3BlY3MgKGNvbmZpZ3VyZWQgd2l0aCB0aGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWFtLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWFtLnR4dAppbmRleCAxOWQ1N2E4Li41NGQ4NDYxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1hbS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtYW0udHh0CkBAIC05LDEyICs5LDEyIEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXQgYW0nIFstLXNpZ25vZmZdIFstLWtlZXBdIFstLWtlZXAtY3IgfCAtLW5vLWtlZXAtY3JdIFstLXV0ZjggfCAtLW5vLXV0ZjhdCisnZ2l0IGFtJyBbLS1zaWdub2ZmXSBbLS1rZWVwXSBbLS1bbm8tXWtlZXAtY3JdIFstLVtuby1ddXRmOF0KIAkgWy0tM3dheV0gWy0taW50ZXJhY3RpdmVdIFstLWNvbW1pdHRlci1kYXRlLWlzLWF1dGhvci1kYXRlXQogCSBbLS1pZ25vcmUtZGF0ZV0gWy0taWdub3JlLXNwYWNlLWNoYW5nZSB8IC0taWdub3JlLXdoaXRlc3BhY2VdCiAJIFstLXdoaXRlc3BhY2U9PG9wdGlvbj5dIFstQzxuPl0gWy1wPG4+XSBbLS1kaXJlY3Rvcnk9PGRpcj5dCiAJIFstLWV4Y2x1ZGU9PHBhdGg+XSBbLS1pbmNsdWRlPTxwYXRoPl0gWy0tcmVqZWN0XSBbLXEgfCAtLXF1aWV0XQotCSBbLS1zY2lzc29ycyB8IC0tbm8tc2Npc3NvcnNdCisJIFstLVtuby1dc2Npc3NvcnNdCiAJIFsoPG1ib3g+IHwgPE1haWxkaXI+KS4uLl0KICdnaXQgYW0nICgtLWNvbnRpbnVlIHwgLS1za2lwIHwgLS1hYm9ydCkKIApAQCAtNDMsOCArNDMsNyBAQAogLS1rZWVwLW5vbi1wYXRjaDo6CiAJUGFzcyBgLWJgIGZsYWcgdG8gJ2dpdCBtYWlsaW5mbycgKHNlZSBsaW5rZ2l0OmdpdC1tYWlsaW5mb1sxXSkuCiAKLS0ta2VlcC1jcjo6Ci0tLW5vLWtlZXAtY3I6OgorLS1bbm8tXWtlZXAtY3I6OgogCVdpdGggYC0ta2VlcC1jcmAsIGNhbGwgJ2dpdCBtYWlsc3BsaXQnIChzZWUgbGlua2dpdDpnaXQtbWFpbHNwbGl0WzFdKQogCXdpdGggdGhlIHNhbWUgb3B0aW9uLCB0byBwcmV2ZW50IGl0IGZyb20gc3RyaXBwaW5nIENSIGF0IHRoZSBlbmQgb2YKIAlsaW5lcy4gYGFtLmtlZXBjcmAgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZQpAQCAtMTMzLDcgKzEzMiw3IEBACiAtLXJlc29sdmVtc2c9PG1zZz46OgogCVdoZW4gYSBwYXRjaCBmYWlsdXJlIG9jY3VycywgPG1zZz4gd2lsbCBiZSBwcmludGVkCiAJdG8gdGhlIHNjcmVlbiBiZWZvcmUgZXhpdGluZy4gIFRoaXMgb3ZlcnJpZGVzIHRoZQotCXN0YW5kYXJkIG1lc3NhZ2UgaW5mb3JtaW5nIHlvdSB0byB1c2UgYC0tcmVzb2x2ZWRgCisJc3RhbmRhcmQgbWVzc2FnZSBpbmZvcm1pbmcgeW91IHRvIHVzZSBgLS1jb250aW51ZWAKIAlvciBgLS1za2lwYCB0byBoYW5kbGUgdGhlIGZhaWx1cmUuICBUaGlzIGlzIHNvbGVseQogCWZvciBpbnRlcm5hbCB1c2UgYmV0d2VlbiAnZ2l0IHJlYmFzZScgYW5kICdnaXQgYW0nLgogCkBAIC0xNzcsNyArMTc2LDcgQEAKIAogLiBoYW5kIHJlc29sdmUgdGhlIGNvbmZsaWN0IGluIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgYW5kIHVwZGF0ZQogICB0aGUgaW5kZXggZmlsZSB0byBicmluZyBpdCBpbnRvIGEgc3RhdGUgdGhhdCB0aGUgcGF0Y2ggc2hvdWxkCi0gIGhhdmUgcHJvZHVjZWQuICBUaGVuIHJ1biB0aGUgY29tbWFuZCB3aXRoIHRoZSAnLS1yZXNvbHZlZCcgb3B0aW9uLgorICBoYXZlIHByb2R1Y2VkLiAgVGhlbiBydW4gdGhlIGNvbW1hbmQgd2l0aCB0aGUgJy0tY29udGludWUnIG9wdGlvbi4KIAogVGhlIGNvbW1hbmQgcmVmdXNlcyB0byBwcm9jZXNzIG5ldyBtYWlsYm94ZXMgdW50aWwgdGhlIGN1cnJlbnQKIG9wZXJhdGlvbiBpcyBmaW5pc2hlZCwgc28gaWYgeW91IGRlY2lkZSB0byBzdGFydCBvdmVyIGZyb20gc2NyYXRjaCwKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWFyY2hpdmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtYXJjaGl2ZS50eHQKaW5kZXggMjUwZTUyMi4uYjk3YWFhYiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtYXJjaGl2ZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtYXJjaGl2ZS50eHQKQEAgLTEwLDcgKzEwLDcgQEAKIC0tLS0tLS0tCiBbdmVyc2VdCiAnZ2l0IGFyY2hpdmUnIFstLWZvcm1hdD08Zm10Pl0gWy0tbGlzdF0gWy0tcHJlZml4PTxwcmVmaXg+L10gWzxleHRyYT5dCi0JICAgICAgWy1vIHwgLS1vdXRwdXQ9PGZpbGU+XSBbLS13b3JrdHJlZS1hdHRyaWJ1dGVzXQorCSAgICAgIFstbyA8ZmlsZT4gfCAtLW91dHB1dD08ZmlsZT5dIFstLXdvcmt0cmVlLWF0dHJpYnV0ZXNdCiAJICAgICAgWy0tcmVtb3RlPTxyZXBvPiBbLS1leGVjPTxnaXQtdXBsb2FkLWFyY2hpdmU+XV0gPHRyZWUtaXNoPgogCSAgICAgIFs8cGF0aD4uLi5dCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWJpc2VjdC1sazIwMDkudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtYmlzZWN0LWxrMjAwOS50eHQKaW5kZXggMGVlZDNlMy4uYWZlYjg2YyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtYmlzZWN0LWxrMjAwOS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtYmlzZWN0LWxrMjAwOS50eHQKQEAgLTEzMjAsNyArMTMyMCw3IEBACiA7LSkKIF9fX19fX19fX19fX18KIAotQWNrbm93bGVkZ2VtZW50cworQWNrbm93bGVkZ21lbnRzCiAtLS0tLS0tLS0tLS0tLS0tCiAKIE1hbnkgdGhhbmtzIHRvIEp1bmlvIEhhbWFubyBmb3IgaGlzIGhlbHAgaW4gcmV2aWV3aW5nIHRoaXMgcGFwZXIsIGZvcgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtYmxhbWUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtYmxhbWUudHh0CmluZGV4IDlhMDVjMmIuLjZjZWE3ZjEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWJsYW1lLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1ibGFtZS50eHQKQEAgLTgsOSArOCw5IEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXQgYmxhbWUnIFstY10gWy1iXSBbLWxdIFstLXJvb3RdIFstdF0gWy1mXSBbLW5dIFstc10gWy1lXSBbLXBdIFstd10gWy0taW5jcmVtZW50YWxdIFstTCBuLG1dCi0JICAgIFstUyA8cmV2cy1maWxlPl0gWy1NXSBbLUNdIFstQ10gWy1DXSBbLS1zaW5jZT08ZGF0ZT5dIFstLWFiYnJldj08bj5dCi0JICAgIFs8cmV2PiB8IC0tY29udGVudHMgPGZpbGU+IHwgLS1yZXZlcnNlIDxyZXY+XSBbLS1dIDxmaWxlPgorJ2dpdCBibGFtZScgWy1jXSBbLWJdIFstbF0gWy0tcm9vdF0gWy10XSBbLWZdIFstbl0gWy1zXSBbLWVdIFstcF0gWy13XSBbLS1pbmNyZW1lbnRhbF0KKwkgICAgWy1MIG4sbSB8IC1MIDpmbl0gWy1TIDxyZXZzLWZpbGU+XSBbLU1dIFstQ10gWy1DXSBbLUNdIFstLXNpbmNlPTxkYXRlPl0KKwkgICAgWy0tYWJicmV2PTxuPl0gWzxyZXY+IHwgLS1jb250ZW50cyA8ZmlsZT4gfCAtLXJldmVyc2UgPHJldj5dIFstLV0gPGZpbGU+CiAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2F0LWZpbGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2F0LWZpbGUudHh0CmluZGV4IDMwZDU4NWEuLjEwZmJjNmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNhdC1maWxlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jYXQtZmlsZS50eHQKQEAgLTU4LDEyICs1OCwxNiBAQAogCXRvIGFwcGx5IHRoZSBmaWx0ZXIgdG8gdGhlIGNvbnRlbnQgcmVjb3JkZWQgaW4gdGhlIGluZGV4IGF0IDxwYXRoPi4KIAogLS1iYXRjaDo6Ci0JUHJpbnQgdGhlIFNIQS0xLCB0eXBlLCBzaXplLCBhbmQgY29udGVudHMgb2YgZWFjaCBvYmplY3QgcHJvdmlkZWQgb24KLQlzdGRpbi4gTWF5IG5vdCBiZSBjb21iaW5lZCB3aXRoIGFueSBvdGhlciBvcHRpb25zIG9yIGFyZ3VtZW50cy4KKy0tYmF0Y2g9PGZvcm1hdD46OgorCVByaW50IG9iamVjdCBpbmZvcm1hdGlvbiBhbmQgY29udGVudHMgZm9yIGVhY2ggb2JqZWN0IHByb3ZpZGVkCisJb24gc3RkaW4uICBNYXkgbm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIG9wdGlvbnMgb3IgYXJndW1lbnRzLgorCVNlZSB0aGUgc2VjdGlvbiBgQkFUQ0ggT1VUUFVUYCBiZWxvdyBmb3IgZGV0YWlscy4KIAogLS1iYXRjaC1jaGVjazo6Ci0JUHJpbnQgdGhlIFNIQS0xLCB0eXBlLCBhbmQgc2l6ZSBvZiBlYWNoIG9iamVjdCBwcm92aWRlZCBvbiBzdGRpbi4gTWF5IG5vdAotCWJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIG9wdGlvbnMgb3IgYXJndW1lbnRzLgorLS1iYXRjaC1jaGVjaz08Zm9ybWF0Pjo6CisJUHJpbnQgb2JqZWN0IGluZm9ybWF0aW9uIGZvciBlYWNoIG9iamVjdCBwcm92aWRlZCBvbiBzdGRpbi4gIE1heQorCW5vdCBiZSBjb21iaW5lZCB3aXRoIGFueSBvdGhlciBvcHRpb25zIG9yIGFyZ3VtZW50cy4gIFNlZSB0aGUKKwlzZWN0aW9uIGBCQVRDSCBPVVRQVVRgIGJlbG93IGZvciBkZXRhaWxzLgogCiBPVVRQVVQKIC0tLS0tLQpAQCAtNzgsMjggKzgyLDc1IEBACiBJZiA8dHlwZT4gaXMgc3BlY2lmaWVkLCB0aGUgcmF3ICh0aG91Z2ggdW5jb21wcmVzc2VkKSBjb250ZW50cyBvZiB0aGUgPG9iamVjdD4KIHdpbGwgYmUgcmV0dXJuZWQuCiAKLUlmICctLWJhdGNoJyBpcyBzcGVjaWZpZWQsIG91dHB1dCBvZiB0aGUgZm9sbG93aW5nIGZvcm0gaXMgcHJpbnRlZCBmb3IgZWFjaAotb2JqZWN0IHNwZWNpZmllZCBvbiBzdGRpbjoKK0JBVENIIE9VVFBVVAorLS0tLS0tLS0tLS0tCisKK0lmIGAtLWJhdGNoYCBvciBgLS1iYXRjaC1jaGVja2AgaXMgZ2l2ZW4sIGBjYXQtZmlsZWAgd2lsbCByZWFkIG9iamVjdHMKK2Zyb20gc3RkaW4sIG9uZSBwZXIgbGluZSwgYW5kIHByaW50IGluZm9ybWF0aW9uIGFib3V0IHRoZW0uCisKK0VhY2ggbGluZSBpcyBjb25zaWRlcmVkIGFzIGEgd2hvbGUgb2JqZWN0IG5hbWUsIGFuZCBpcyBwYXJzZWQgYXMgaWYKK2dpdmVuIHRvIGxpbmtnaXQ6Z2l0LXJldi1wYXJzZVsxXS4KKworWW91IGNhbiBzcGVjaWZ5IHRoZSBpbmZvcm1hdGlvbiBzaG93biBmb3IgZWFjaCBvYmplY3QgYnkgdXNpbmcgYSBjdXN0b20KK2A8Zm9ybWF0PmAuIFRoZSBgPGZvcm1hdD5gIGlzIGNvcGllZCBsaXRlcmFsbHkgdG8gc3Rkb3V0IGZvciBlYWNoCitvYmplY3QsIHdpdGggcGxhY2Vob2xkZXJzIG9mIHRoZSBmb3JtIGAlKGF0b20pYCBleHBhbmRlZCwgZm9sbG93ZWQgYnkgYQorbmV3bGluZS4gVGhlIGF2YWlsYWJsZSBhdG9tcyBhcmU6CisKK2BvYmplY3RuYW1lYDo6CisJVGhlIDQwLWhleCBvYmplY3QgbmFtZSBvZiB0aGUgb2JqZWN0LgorCitgb2JqZWN0dHlwZWA6OgorCVRoZSB0eXBlIG9mIG9mIHRoZSBvYmplY3QgKHRoZSBzYW1lIGFzIGBjYXQtZmlsZSAtdGAgcmVwb3J0cykuCisKK2BvYmplY3RzaXplYDo6CisJVGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgb2JqZWN0ICh0aGUgc2FtZSBhcyBgY2F0LWZpbGUgLXNgCisJcmVwb3J0cykuCisKK2BvYmplY3RzaXplOmRpc2tgOjoKKwlUaGUgc2l6ZSwgaW4gYnl0ZXMsIHRoYXQgdGhlIG9iamVjdCB0YWtlcyB1cCBvbiBkaXNrLiBTZWUgdGhlCisJbm90ZSBhYm91dCBvbi1kaXNrIHNpemVzIGluIHRoZSBgQ0FWRUFUU2Agc2VjdGlvbiBiZWxvdy4KKworSWYgbm8gZm9ybWF0IGlzIHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgZm9ybWF0IGlzIGAlKG9iamVjdG5hbWUpCislKG9iamVjdHR5cGUpICUob2JqZWN0c2l6ZSlgLgorCitJZiBgLS1iYXRjaGAgaXMgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IGluZm9ybWF0aW9uIGlzIGZvbGxvd2VkIGJ5IHRoZQorb2JqZWN0IGNvbnRlbnRzIChjb25zaXN0aW5nIG9mIGAlKG9iamVjdHNpemUpYCBieXRlcyksIGZvbGxvd2VkIGJ5IGEKK25ld2xpbmUuCisKK0ZvciBleGFtcGxlLCBgLS1iYXRjaGAgd2l0aG91dCBhIGN1c3RvbSBmb3JtYXQgd291bGQgcHJvZHVjZToKIAogLS0tLS0tLS0tLS0tCiA8c2hhMT4gU1AgPHR5cGU+IFNQIDxzaXplPiBMRgogPGNvbnRlbnRzPiBMRgogLS0tLS0tLS0tLS0tCiAKLUlmICctLWJhdGNoLWNoZWNrJyBpcyBzcGVjaWZpZWQsIG91dHB1dCBvZiB0aGUgZm9sbG93aW5nIGZvcm0gaXMgcHJpbnRlZCBmb3IKLWVhY2ggb2JqZWN0IHNwZWNpZmllZCBvbiBzdGRpbjoKK1doZXJlYXMgYC0tYmF0Y2gtY2hlY2s9JyUob2JqZWN0bmFtZSkgJShvYmplY3R0eXBlKSdgIHdvdWxkIHByb2R1Y2U6CiAKIC0tLS0tLS0tLS0tLQotPHNoYTE+IFNQIDx0eXBlPiBTUCA8c2l6ZT4gTEYKKzxzaGExPiBTUCA8dHlwZT4gTEYKIC0tLS0tLS0tLS0tLQogCi1Gb3IgYm90aCAnLS1iYXRjaCcgYW5kICctLWJhdGNoLWNoZWNrJywgb3V0cHV0IG9mIHRoZSBmb2xsb3dpbmcgZm9ybSBpcyBwcmludGVkCi1mb3IgZWFjaCBvYmplY3Qgc3BlY2lmaWVkIG9uIHN0ZGluIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlcG9zaXRvcnk6CitJZiBhIG5hbWUgaXMgc3BlY2lmaWVkIG9uIHN0ZGluIHRoYXQgY2Fubm90IGJlIHJlc29sdmVkIHRvIGFuIG9iamVjdCBpbgordGhlIHJlcG9zaXRvcnksIHRoZW4gYGNhdC1maWxlYCB3aWxsIGlnbm9yZSBhbnkgY3VzdG9tIGZvcm1hdCBhbmQgcHJpbnQ6CiAKIC0tLS0tLS0tLS0tLQogPG9iamVjdD4gU1AgbWlzc2luZyBMRgogLS0tLS0tLS0tLS0tCiAKKworQ0FWRUFUUworLS0tLS0tLQorCitOb3RlIHRoYXQgdGhlIHNpemVzIG9mIG9iamVjdHMgb24gZGlzayBhcmUgcmVwb3J0ZWQgYWNjdXJhdGVseSwgYnV0IGNhcmUKK3Nob3VsZCBiZSB0YWtlbiBpbiBkcmF3aW5nIGNvbmNsdXNpb25zIGFib3V0IHdoaWNoIHJlZnMgb3Igb2JqZWN0cyBhcmUKK3Jlc3BvbnNpYmxlIGZvciBkaXNrIHVzYWdlLiBUaGUgc2l6ZSBvZiBhIHBhY2tlZCBub24tZGVsdGEgb2JqZWN0IG1heSBiZQorbXVjaCBsYXJnZXIgdGhhbiB0aGUgc2l6ZSBvZiBvYmplY3RzIHdoaWNoIGRlbHRhIGFnYWluc3QgaXQsIGJ1dCB0aGUKK2Nob2ljZSBvZiB3aGljaCBvYmplY3QgaXMgdGhlIGJhc2UgYW5kIHdoaWNoIGlzIHRoZSBkZWx0YSBpcyBhcmJpdHJhcnkKK2FuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZSBkdXJpbmcgYSByZXBhY2suIE5vdGUgYWxzbyB0aGF0IG11bHRpcGxlIGNvcGllcworb2YgYW4gb2JqZWN0IG1heSBiZSBwcmVzZW50IGluIHRoZSBvYmplY3QgZGF0YWJhc2U7IGluIHRoaXMgY2FzZSwgaXQgaXMKK3VuZGVmaW5lZCB3aGljaCBjb3B5J3Mgc2l6ZSB3aWxsIGJlIHJlcG9ydGVkLgorCisKIEdJVAogLS0tCiBQYXJ0IG9mIHRoZSBsaW5rZ2l0OmdpdFsxXSBzdWl0ZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2stYXR0ci50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1hdHRyLnR4dAppbmRleCA1YWJkYmFhLi5hN2JlODBkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1hdHRyLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1hdHRyLnR4dApAQCAtNTYsNiArNTYsMTEgQEAKICdzZXQnOzsJCXdoZW4gdGhlIGF0dHJpYnV0ZSBpcyBkZWZpbmVkIGFzIHRydWUuCiA8dmFsdWU+OzsJd2hlbiBhIHZhbHVlIGhhcyBiZWVuIGFzc2lnbmVkIHRvIHRoZSBhdHRyaWJ1dGUuCiAKK0J1ZmZlcmluZyBoYXBwZW5zIGFzIGRvY3VtZW50ZWQgdW5kZXIgdGhlIGBHSVRfRkxVU0hgIG9wdGlvbiBpbgorbGlua2dpdDpnaXRbMV0uICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBhdm9pZGluZyBkZWFkbG9ja3MKK2NhdXNlZCBieSBvdmVyZmlsbGluZyBhbiBpbnB1dCBidWZmZXIgb3IgcmVhZGluZyBmcm9tIGFuIGVtcHR5IG91dHB1dAorYnVmZmVyLgorCiBFWEFNUExFUwogLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2staWdub3JlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrLWlnbm9yZS50eHQKaW5kZXggODU0ZTRkMC4uZDJkZjQ4NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2staWdub3JlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1pZ25vcmUudHh0CkBAIC0zOSw2ICszOSwxMiBAQAogCWJlbG93KS4gIElmIGAtLXN0ZGluYCBpcyBhbHNvIGdpdmVuLCBpbnB1dCBwYXRocyBhcmUgc2VwYXJhdGVkCiAJd2l0aCBhIE5VTCBjaGFyYWN0ZXIgaW5zdGVhZCBvZiBhIGxpbmVmZWVkIGNoYXJhY3Rlci4KIAorLW4sIC0tbm9uLW1hdGNoaW5nOjoKKwlTaG93IGdpdmVuIHBhdGhzIHdoaWNoIGRvbid0IG1hdGNoIGFueSBwYXR0ZXJuLgkgVGhpcyBvbmx5CisJbWFrZXMgc2Vuc2Ugd2hlbiBgLS12ZXJib3NlYCBpcyBlbmFibGVkLCBvdGhlcndpc2UgaXQgd291bGQKKwlub3QgYmUgcG9zc2libGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBwYXRocyB3aGljaCBtYXRjaCBhCisJcGF0dGVybiBhbmQgdGhvc2Ugd2hpY2ggZG9uJ3QuCisKIE9VVFBVVAogLS0tLS0tCiAKQEAgLTY1LDYgKzcxLDIwIEBACiAKIDxzb3VyY2U+IDxOVUxMPiA8bGluZW51bT4gPE5VTEw+IDxwYXR0ZXJuPiA8TlVMTD4gPHBhdGhuYW1lPiA8TlVMTD4KIAorSWYgYC1uYCBvciBgLS1ub24tbWF0Y2hpbmdgIGFyZSBzcGVjaWZpZWQsIG5vbi1tYXRjaGluZyBwYXRobmFtZXMgd2lsbAorYWxzbyBiZSBvdXRwdXQsIGluIHdoaWNoIGNhc2UgYWxsIGZpZWxkcyBpbiBlYWNoIG91dHB1dCByZWNvcmQgZXhjZXB0Citmb3IgPHBhdGhuYW1lPiB3aWxsIGJlIGVtcHR5LiAgVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gcnVubmluZworbm9uLWludGVyYWN0aXZlbHksIHNvIHRoYXQgZmlsZXMgY2FuIGJlIGluY3JlbWVudGFsbHkgc3RyZWFtZWQgdG8KK1NURElOIG9mIGEgbG9uZy1ydW5uaW5nIGNoZWNrLWlnbm9yZSBwcm9jZXNzLCBhbmQgZm9yIGVhY2ggb2YgdGhlc2UKK2ZpbGVzLCBTVERPVVQgd2lsbCBpbmRpY2F0ZSB3aGV0aGVyIHRoYXQgZmlsZSBtYXRjaGVkIGEgcGF0dGVybiBvcgorbm90LiAgKFdpdGhvdXQgdGhpcyBvcHRpb24sIGl0IHdvdWxkIGJlIGltcG9zc2libGUgdG8gdGVsbCB3aGV0aGVyIHRoZQorYWJzZW5jZSBvZiBvdXRwdXQgZm9yIGEgZ2l2ZW4gZmlsZSBtZWFudCB0aGF0IGl0IGRpZG4ndCBtYXRjaCBhbnkKK3BhdHRlcm4sIG9yIHRoYXQgdGhlIG91dHB1dCBoYWRuJ3QgYmVlbiBnZW5lcmF0ZWQgeWV0LikKKworQnVmZmVyaW5nIGhhcHBlbnMgYXMgZG9jdW1lbnRlZCB1bmRlciB0aGUgYEdJVF9GTFVTSGAgb3B0aW9uIGluCitsaW5rZ2l0OmdpdFsxXS4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGF2b2lkaW5nIGRlYWRsb2NrcworY2F1c2VkIGJ5IG92ZXJmaWxsaW5nIGFuIGlucHV0IGJ1ZmZlciBvciByZWFkaW5nIGZyb20gYW4gZW1wdHkgb3V0cHV0CitidWZmZXIuCiAKIEVYSVQgU1RBVFVTCiAtLS0tLS0tLS0tLQpAQCAtODIsNyArMTAyLDcgQEAKIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdGlnbm9yZVs1XQogbGlua2dpdDpnaXRjb25maWdbNV0KLWxpbmtnaXQ6Z2l0LWxzLWZpbGVzWzVdCitsaW5rZ2l0OmdpdC1scy1maWxlc1sxXQogCiBHSVQKIC0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2stbWFpbG1hcC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1tYWlsbWFwLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTAyOGVlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2stbWFpbG1hcC50eHQKQEAgLTAsMCArMSw0NyBAQAorZ2l0LWNoZWNrLW1haWxtYXAoMSkKKz09PT09PT09PT09PT09PT09PT09CisKK05BTUUKKy0tLS0KK2dpdC1jaGVjay1tYWlsbWFwIC0gU2hvdyBjYW5vbmljYWwgbmFtZXMgYW5kIGVtYWlsIGFkZHJlc3NlcyBvZiBjb250YWN0cworCisKK1NZTk9QU0lTCistLS0tLS0tLQorW3ZlcnNlXQorJ2dpdCBjaGVjay1tYWlsbWFwJyBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uCisKKworREVTQ1JJUFRJT04KKy0tLS0tLS0tLS0tCisKK0ZvciBlYWNoIGBgTmFtZSAkJDx1c2VyQGhvc3Q+JCQnJyBvciBgYCQkPHVzZXJAaG9zdD4kJCcnIGZyb20gdGhlIGNvbW1hbmQtbGluZQorb3Igc3RhbmRhcmQgaW5wdXQgKHdoZW4gdXNpbmcgYC0tc3RkaW5gKSwgbG9vayB1cCB0aGUgcGVyc29uJ3MgY2Fub25pY2FsIG5hbWUKK2FuZCBlbWFpbCBhZGRyZXNzIChzZWUgIk1hcHBpbmcgQXV0aG9ycyIgYmVsb3cpLiBJZiBmb3VuZCwgcHJpbnQgdGhlbTsKK290aGVyd2lzZSBwcmludCB0aGUgaW5wdXQgYXMtaXMuCisKKworT1BUSU9OUworLS0tLS0tLQorLS1zdGRpbjo6CisJUmVhZCBjb250YWN0cywgb25lIHBlciBsaW5lLCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCBhZnRlciBleGhhdXN0aW5nCisJY29udGFjdHMgcHJvdmlkZWQgb24gdGhlIGNvbW1hbmQtbGluZS4KKworCitPVVRQVVQKKy0tLS0tLQorCitGb3IgZWFjaCBjb250YWN0LCBhIHNpbmdsZSBsaW5lIGlzIG91dHB1dCwgdGVybWluYXRlZCBieSBhIG5ld2xpbmUuICBJZiB0aGUKK25hbWUgaXMgcHJvdmlkZWQgb3Iga25vd24gdG8gdGhlICdtYWlsbWFwJywgYGBOYW1lICQkPHVzZXJAaG9zdD4kJCcnIGlzCitwcmludGVkOyBvdGhlcndpc2Ugb25seSBgYCQkPHVzZXJAaG9zdD4kJCcnIGlzIHByaW50ZWQuCisKKworTUFQUElORyBBVVRIT1JTCistLS0tLS0tLS0tLS0tLS0KKworaW5jbHVkZTo6bWFpbG1hcC50eHRbXQorCisKK0dJVAorLS0tCitQYXJ0IG9mIHRoZSBsaW5rZ2l0OmdpdFsxXSBzdWl0ZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2stcmVmLWZvcm1hdC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dAppbmRleCBlYzE3MzlhLi5hNDliZTFiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVjay1yZWYtZm9ybWF0LnR4dApAQCAtODMsOCArODMsNyBAQAogCiBPUFRJT05TCiAtLS0tLS0tCi0tLWFsbG93LW9uZWxldmVsOjoKLS0tbm8tYWxsb3ctb25lbGV2ZWw6OgorLS1bbm8tXWFsbG93LW9uZWxldmVsOjoKIAlDb250cm9scyB3aGV0aGVyIG9uZS1sZXZlbCByZWZuYW1lcyBhcmUgYWNjZXB0ZWQgKGkuZS4sCiAJcmVmbmFtZXMgdGhhdCBkbyBub3QgY29udGFpbiBtdWx0aXBsZSBgL2Atc2VwYXJhdGVkCiAJY29tcG9uZW50cykuICBUaGUgZGVmYXVsdCBpcyBgLS1uby1hbGxvdy1vbmVsZXZlbGAuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jaGVja291dC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jaGVja291dC50eHQKaW5kZXggMjNhOTQxMy4uY2ExMThhYyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2hlY2tvdXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNoZWNrb3V0LnR4dApAQCAtMTMxLDkgKzEzMSw5IEBACiAJIi0tdHJhY2siIGluIGxpbmtnaXQ6Z2l0LWJyYW5jaFsxXSBmb3IgZGV0YWlscy4KICsKIElmIG5vICctYicgb3B0aW9uIGlzIGdpdmVuLCB0aGUgbmFtZSBvZiB0aGUgbmV3IGJyYW5jaCB3aWxsIGJlCi1kZXJpdmVkIGZyb20gdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2guICBJZiAicmVtb3Rlcy8iIG9yICJyZWZzL3JlbW90ZXMvIgotaXMgcHJlZml4ZWQgaXQgaXMgc3RyaXBwZWQgYXdheSwgYW5kIHRoZW4gdGhlIHBhcnQgdXAgdG8gdGhlCi1uZXh0IHNsYXNoICh3aGljaCB3b3VsZCBiZSB0aGUgbmlja25hbWUgb2YgdGhlIHJlbW90ZSkgaXMgcmVtb3ZlZC4KK2Rlcml2ZWQgZnJvbSB0aGUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCwgYnkgbG9va2luZyBhdCB0aGUgbG9jYWwgcGFydCBvZgordGhlIHJlZnNwZWMgY29uZmlndXJlZCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcmVtb3RlLCBhbmQgdGhlbiBzdHJpcHBpbmcKK3RoZSBpbml0aWFsIHBhcnQgdXAgdG8gdGhlICIqIi4KIFRoaXMgd291bGQgdGVsbCB1cyB0byB1c2UgImhhY2siIGFzIHRoZSBsb2NhbCBicmFuY2ggd2hlbiBicmFuY2hpbmcKIG9mZiBvZiAib3JpZ2luL2hhY2siIChvciAicmVtb3Rlcy9vcmlnaW4vaGFjayIsIG9yIGV2ZW4KICJyZWZzL3JlbW90ZXMvb3JpZ2luL2hhY2siKS4gIElmIHRoZSBnaXZlbiBuYW1lIGhhcyBubyBzbGFzaCwgb3IgdGhlIGFib3ZlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1jbGVhbi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbGVhbi50eHQKaW5kZXggYmRjM2FiOC4uODk5NzkyMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtY2xlYW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWNsZWFuLnR4dApAQCAtOCw3ICs4LDcgQEAKIFNZTk9QU0lTCiAtLS0tLS0tLQogW3ZlcnNlXQotJ2dpdCBjbGVhbicgWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aD4uLi4KKydnaXQgY2xlYW4nIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aD4uLi4KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC0zNCw3ICszNCwxMyBAQAogLWY6OgogLS1mb3JjZTo6CiAJSWYgdGhlIEdpdCBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGNsZWFuLnJlcXVpcmVGb3JjZSBpcyBub3Qgc2V0Ci0JdG8gZmFsc2UsICdnaXQgY2xlYW4nIHdpbGwgcmVmdXNlIHRvIHJ1biB1bmxlc3MgZ2l2ZW4gLWYgb3IgLW4uCisJdG8gZmFsc2UsICdnaXQgY2xlYW4nIHdpbGwgcmVmdXNlIHRvIHJ1biB1bmxlc3MgZ2l2ZW4gLWYsIC1uIG9yCisJLWkuCisKKy1pOjoKKy0taW50ZXJhY3RpdmU6OgorCVNob3cgd2hhdCB3b3VsZCBiZSBkb25lIGFuZCBjbGVhbiBmaWxlcyBpbnRlcmFjdGl2ZWx5LiBTZWUKKwlgYEludGVyYWN0aXZlIG1vZGUnJyBmb3IgZGV0YWlscy4KIAogLW46OgogLS1kcnktcnVuOjoKQEAgLTYzLDYgKzY5LDY3IEBACiAJUmVtb3ZlIG9ubHkgZmlsZXMgaWdub3JlZCBieSBHaXQuICBUaGlzIG1heSBiZSB1c2VmdWwgdG8gcmVidWlsZAogCWV2ZXJ5dGhpbmcgZnJvbSBzY3JhdGNoLCBidXQga2VlcCBtYW51YWxseSBjcmVhdGVkIGZpbGVzLgogCitJbnRlcmFjdGl2ZSBtb2RlCistLS0tLS0tLS0tLS0tLS0tCitXaGVuIHRoZSBjb21tYW5kIGVudGVycyB0aGUgaW50ZXJhY3RpdmUgbW9kZSwgaXQgc2hvd3MgdGhlCitmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gYmUgY2xlYW5lZCwgYW5kIGdvZXMgaW50byBpdHMKK2ludGVyYWN0aXZlIGNvbW1hbmQgbG9vcC4KKworVGhlIGNvbW1hbmQgbG9vcCBzaG93cyB0aGUgbGlzdCBvZiBzdWJjb21tYW5kcyBhdmFpbGFibGUsIGFuZAorZ2l2ZXMgYSBwcm9tcHQgIldoYXQgbm93PiAiLiAgSW4gZ2VuZXJhbCwgd2hlbiB0aGUgcHJvbXB0IGVuZHMKK3dpdGggYSBzaW5nbGUgJz4nLCB5b3UgY2FuIHBpY2sgb25seSBvbmUgb2YgdGhlIGNob2ljZXMgZ2l2ZW4KK2FuZCB0eXBlIHJldHVybiwgbGlrZSB0aGlzOgorCistLS0tLS0tLS0tLS0KKyAgICAqKiogQ29tbWFuZHMgKioqCisJMTogY2xlYW4gICAgICAgICAgICAgICAgMjogZmlsdGVyIGJ5IHBhdHRlcm4gICAgMzogc2VsZWN0IGJ5IG51bWJlcnMKKwk0OiBhc2sgZWFjaCAgICAgICAgICAgICA1OiBxdWl0ICAgICAgICAgICAgICAgICA2OiBoZWxwCisgICAgV2hhdCBub3c+IDEKKy0tLS0tLS0tLS0tLQorCitZb3UgYWxzbyBjb3VsZCBzYXkgYGNgIG9yIGBjbGVhbmAgYWJvdmUgYXMgbG9uZyBhcyB0aGUgY2hvaWNlIGlzIHVuaXF1ZS4KKworVGhlIG1haW4gY29tbWFuZCBsb29wIGhhcyA2IHN1YmNvbW1hbmRzLgorCitjbGVhbjo6CisKKyAgIFN0YXJ0IGNsZWFuaW5nIGZpbGVzIGFuZCBkaXJlY3RvcmllcywgYW5kIHRoZW4gcXVpdC4KKworZmlsdGVyIGJ5IHBhdHRlcm46OgorCisgICBUaGlzIHNob3dzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gYmUgZGVsZXRlZCBhbmQgaXNzdWVzIGFuCisgICAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4iIHByb21wdC4gWW91IGNhbiBpbnB1dCBzcGFjZS1zZXBlcmF0ZWQKKyAgIHBhdHRlcm5zIHRvIGV4Y2x1ZGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIGZyb20gZGVsZXRpb24uCisgICBFLmcuICIqLmMgKi5oIiB3aWxsIGV4Y2x1ZGVzIGZpbGVzIGVuZCB3aXRoICIuYyIgYW5kICIuaCIgZnJvbQorICAgZGVsZXRpb24uIFdoZW4geW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB0aGUgZmlsdGVyZWQgcmVzdWx0LCBwcmVzcworICAgRU5URVIgKGVtcHR5KSBiYWNrIHRvIHRoZSBtYWluIG1lbnUuCisKK3NlbGVjdCBieSBudW1iZXJzOjoKKworICAgVGhpcyBzaG93cyB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGJlIGRlbGV0ZWQgYW5kIGlzc3VlcyBhbgorICAgIlNlbGVjdCBpdGVtcyB0byBkZWxldGU+PiIgcHJvbXB0LiBXaGVuIHRoZSBwcm9tcHQgZW5kcyB3aXRoIGRvdWJsZQorICAgJz4+JyBsaWtlIHRoaXMsIHlvdSBjYW4gbWFrZSBtb3JlIHRoYW4gb25lIHNlbGVjdGlvbiwgY29uY2F0ZW5hdGVkCisgICB3aXRoIHdoaXRlc3BhY2Ugb3IgY29tbWEuICBBbHNvIHlvdSBjYW4gc2F5IHJhbmdlcy4gIEUuZy4gIjItNSA3LDkiCisgICB0byBjaG9vc2UgMiwzLDQsNSw3LDkgZnJvbSB0aGUgbGlzdC4gIElmIHRoZSBzZWNvbmQgbnVtYmVyIGluIGEKKyAgIHJhbmdlIGlzIG9taXR0ZWQsIGFsbCByZW1haW5pbmcgaXRlbXMgYXJlIHNlbGVjdGVkLiAgRS5nLiAiNy0iIHRvCisgICBjaG9vc2UgNyw4LDkgZnJvbSB0aGUgbGlzdC4gIFlvdSBjYW4gc2F5ICcqJyB0byBjaG9vc2UgZXZlcnl0aGluZy4KKyAgIEFsc28gd2hlbiB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHRoZSBmaWx0ZXJlZCByZXN1bHQsIHByZXNzIEVOVEVSCisgICAoZW1wdHkpIGJhY2sgdG8gdGhlIG1haW4gbWVudS4KKworYXNrIGVhY2g6OgorCisgIFRoaXMgd2lsbCBzdGFydCB0byBjbGVhbiwgYW5kIHlvdSBtdXN0IGNvbmZpcm0gb25lIGJ5IG9uZSBpbiBvcmRlcgorICB0byBkZWxldGUgaXRlbXMuIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBhY3Rpb24gaXMgbm90IGFzIGVmZmljaWVudAorICBhcyB0aGUgYWJvdmUgdHdvIGFjdGlvbnMuCisKK3F1aXQ6OgorCisgIFRoaXMgbGV0cyB5b3UgcXVpdCB3aXRob3V0IGRvIGNsZWFuaW5nLgorCitoZWxwOjoKKworICBTaG93IGJyaWVmIHVzYWdlIG9mIGludGVyYWN0aXZlIGdpdC1jbGVhbi4KKwogU0VFIEFMU08KIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdGlnbm9yZVs1XQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtY2xvbmUudHh0CmluZGV4IDVjMTZlMzEuLjQ1MGYxNTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNsb25lLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1jbG9uZS50eHQKQEAgLTE0LDcgKzE0LDcgQEAKIAkgIFstbyA8bmFtZT5dIFstYiA8bmFtZT5dIFstdSA8dXBsb2FkLXBhY2s+XSBbLS1yZWZlcmVuY2UgPHJlcG9zaXRvcnk+XQogCSAgWy0tc2VwYXJhdGUtZ2l0LWRpciA8Z2l0IGRpcj5dCiAJICBbLS1kZXB0aCA8ZGVwdGg+XSBbLS1bbm8tXXNpbmdsZS1icmFuY2hdCi0JICBbLS1yZWN1cnNpdmV8LS1yZWN1cnNlLXN1Ym1vZHVsZXNdIFstLV0gPHJlcG9zaXRvcnk+CisJICBbLS1yZWN1cnNpdmUgfCAtLXJlY3Vyc2Utc3VibW9kdWxlc10gWy0tXSA8cmVwb3NpdG9yeT4KIAkgIFs8ZGlyZWN0b3J5Pl0KIAogREVTQ1JJUFRJT04KQEAgLTE4OCw3ICsxODgsNyBAQAogCXdpdGggYSBsb25nIGhpc3RvcnksIGFuZCB3b3VsZCB3YW50IHRvIHNlbmQgaW4gZml4ZXMKIAlhcyBwYXRjaGVzLgogCi0tLXNpbmdsZS1icmFuY2g6OgorLS1bbm8tXXNpbmdsZS1icmFuY2g6OgogCUNsb25lIG9ubHkgdGhlIGhpc3RvcnkgbGVhZGluZyB0byB0aGUgdGlwIG9mIGEgc2luZ2xlIGJyYW5jaCwKIAllaXRoZXIgc3BlY2lmaWVkIGJ5IHRoZSBgLS1icmFuY2hgIG9wdGlvbiBvciB0aGUgcHJpbWFyeQogCWJyYW5jaCByZW1vdGUncyBgSEVBRGAgcG9pbnRzIGF0LiBXaGVuIGNyZWF0aW5nIGEgc2hhbGxvdwpAQCAtMjM5LDggKzIzOSw4IEBACiAqIENsb25lIGZyb20gdXBzdHJlYW06CiArCiAtLS0tLS0tLS0tLS0KLSQgZ2l0IGNsb25lIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vLi4uL2xpbnV4LTIuNiBteTIuNgotJCBjZCBteTIuNgorJCBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS8uLi4vbGludXguZ2l0IG15LWxpbnV4CiskIGNkIG15LWxpbnV4CiAkIG1ha2UKIC0tLS0tLS0tLS0tLQogCkBAIC0yNTcsMTAgKzI1NywxMCBAQAogKiBDbG9uZSBmcm9tIHVwc3RyZWFtIHdoaWxlIGJvcnJvd2luZyBmcm9tIGFuIGV4aXN0aW5nIGxvY2FsIGRpcmVjdG9yeToKICsKIC0tLS0tLS0tLS0tLQotJCBnaXQgY2xvbmUgLS1yZWZlcmVuY2UgbXkyLjYgXAotCWdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vLi4uL2xpbnV4LTIuNyBcCi0JbXkyLjcKLSQgY2QgbXkyLjcKKyQgZ2l0IGNsb25lIC0tcmVmZXJlbmNlIC9naXQvbGludXguZ2l0IFwKKwlnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtLy4uLi9saW51eC5naXQgXAorCW15LWxpbnV4CiskIGNkIG15LWxpbnV4CiAtLS0tLS0tLS0tLS0KIAogCkBAIC0yNzEsMTMgKzI3MSw2IEBACiAtLS0tLS0tLS0tLS0KIAogCi0qIENyZWF0ZSBhIHJlcG9zaXRvcnkgb24gdGhlIGtlcm5lbC5vcmcgbWFjaGluZSB0aGF0IGJvcnJvd3MgZnJvbSBMaW51czoKLSsKLS0tLS0tLS0tLS0tLQotJCBnaXQgY2xvbmUgLS1iYXJlIC1sIC1zIC9wdWIvc2NtLy4uLi90b3J2YWxkcy9saW51eC0yLjYuZ2l0IFwKLSAgICAvcHViL3NjbS8uLi4vbWUvc3Vic3lzLTIuNi5naXQKLS0tLS0tLS0tLS0tLQotCiBHSVQKIC0tLQogUGFydCBvZiB0aGUgbGlua2dpdDpnaXRbMV0gc3VpdGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWNvbW1pdC50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jb21taXQudHh0CmluZGV4IDgxNzI5MzguLjFhNzYxNmMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNvbW1pdC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtY29tbWl0LnR4dApAQCAtMTIsNyArMTIsNyBAQAogCSAgIFstLWRyeS1ydW5dIFsoLWMgfCAtQyB8IC0tZml4dXAgfCAtLXNxdWFzaCkgPGNvbW1pdD5dCiAJICAgWy1GIDxmaWxlPiB8IC1tIDxtc2c+XSBbLS1yZXNldC1hdXRob3JdIFstLWFsbG93LWVtcHR5XQogCSAgIFstLWFsbG93LWVtcHR5LW1lc3NhZ2VdIFstLW5vLXZlcmlmeV0gWy1lXSBbLS1hdXRob3I9PGF1dGhvcj5dCi0JICAgWy0tZGF0ZT08ZGF0ZT5dIFstLWNsZWFudXA9PG1vZGU+XSBbLS1zdGF0dXMgfCAtLW5vLXN0YXR1c10KKwkgICBbLS1kYXRlPTxkYXRlPl0gWy0tY2xlYW51cD08bW9kZT5dIFstLVtuby1dc3RhdHVzXQogCSAgIFstaSB8IC1vXSBbLVNbPGtleWlkPl1dIFstLV0gWzxmaWxlPi4uLl0KIAogREVTQ1JJUFRJT04KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWNvbmZpZy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1jb25maWcudHh0CmluZGV4IDlhZTI1MDguLjJkYmU0ODYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWNvbmZpZy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtY29uZmlnLnR4dApAQCAtODIsNyArODIsNyBAQAogLS1nZXQ6OgogCUdldCB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4ga2V5IChvcHRpb25hbGx5IGZpbHRlcmVkIGJ5IGEgcmVnZXgKIAltYXRjaGluZyB0aGUgdmFsdWUpLiBSZXR1cm5zIGVycm9yIGNvZGUgMSBpZiB0aGUga2V5IHdhcyBub3QKLQlmb3VuZCBhbmQgZXJyb3IgY29kZSAyIGlmIG11bHRpcGxlIGtleSB2YWx1ZXMgd2VyZSBmb3VuZC4KKwlmb3VuZCBhbmQgdGhlIGxhc3QgdmFsdWUgaWYgbXVsdGlwbGUga2V5IHZhbHVlcyB3ZXJlIGZvdW5kLgogCiAtLWdldC1hbGw6OgogCUxpa2UgZ2V0LCBidXQgZG9lcyBub3QgZmFpbCBpZiB0aGUgbnVtYmVyIG9mIHZhbHVlcyBmb3IgdGhlIGtleQpAQCAtOTYsMjggKzk2LDQ2IEBACiAJbmFtZXMgYXJlIG5vdC4KIAogLS1nbG9iYWw6OgotCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIGdsb2JhbCB+Ly5naXRjb25maWcgZmlsZSByYXRoZXIgdGhhbgotCXRoZSByZXBvc2l0b3J5IC5naXQvY29uZmlnLCB3cml0ZSB0byAkWERHX0NPTkZJR19IT01FL2dpdC9jb25maWcgZmlsZQotCWlmIHRoaXMgZmlsZSBleGlzdHMgYW5kIHRoZSB+Ly5naXRjb25maWcgZmlsZSBkb2Vzbid0LgorCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIGdsb2JhbCBgfi8uZ2l0Y29uZmlnYCBmaWxlCisJcmF0aGVyIHRoYW4gdGhlIHJlcG9zaXRvcnkgYC5naXQvY29uZmlnYCwgd3JpdGUgdG8KKwlgJFhER19DT05GSUdfSE9NRS9naXQvY29uZmlnYCBmaWxlIGlmIHRoaXMgZmlsZSBleGlzdHMgYW5kIHRoZQorCWB+Ly5naXRjb25maWdgIGZpbGUgZG9lc24ndC4KICsKLUZvciByZWFkaW5nIG9wdGlvbnM6IHJlYWQgb25seSBmcm9tIGdsb2JhbCB+Ly5naXRjb25maWcgYW5kIGZyb20KLSRYREdfQ09ORklHX0hPTUUvZ2l0L2NvbmZpZyByYXRoZXIgdGhhbiBmcm9tIGFsbCBhdmFpbGFibGUgZmlsZXMuCitGb3IgcmVhZGluZyBvcHRpb25zOiByZWFkIG9ubHkgZnJvbSBnbG9iYWwgYH4vLmdpdGNvbmZpZ2AgYW5kIGZyb20KK2AkWERHX0NPTkZJR19IT01FL2dpdC9jb25maWdgIHJhdGhlciB0aGFuIGZyb20gYWxsIGF2YWlsYWJsZSBmaWxlcy4KICsKIFNlZSBhbHNvIDw8RklMRVM+Pi4KIAogLS1zeXN0ZW06OgotCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIHN5c3RlbS13aWRlICQocHJlZml4KS9ldGMvZ2l0Y29uZmlnCi0JcmF0aGVyIHRoYW4gdGhlIHJlcG9zaXRvcnkgLmdpdC9jb25maWcuCisJRm9yIHdyaXRpbmcgb3B0aW9uczogd3JpdGUgdG8gc3lzdGVtLXdpZGUKKwlgJChwcmVmaXgpL2V0Yy9naXRjb25maWdgIHJhdGhlciB0aGFuIHRoZSByZXBvc2l0b3J5CisJYC5naXQvY29uZmlnYC4KICsKLUZvciByZWFkaW5nIG9wdGlvbnM6IHJlYWQgb25seSBmcm9tIHN5c3RlbS13aWRlICQocHJlZml4KS9ldGMvZ2l0Y29uZmlnCitGb3IgcmVhZGluZyBvcHRpb25zOiByZWFkIG9ubHkgZnJvbSBzeXN0ZW0td2lkZSBgJChwcmVmaXgpL2V0Yy9naXRjb25maWdgCiByYXRoZXIgdGhhbiBmcm9tIGFsbCBhdmFpbGFibGUgZmlsZXMuCiArCiBTZWUgYWxzbyA8PEZJTEVTPj4uCiAKKy0tbG9jYWw6OgorCUZvciB3cml0aW5nIG9wdGlvbnM6IHdyaXRlIHRvIHRoZSByZXBvc2l0b3J5IGAuZ2l0L2NvbmZpZ2AgZmlsZS4KKwlUaGlzIGlzCXRoZSBkZWZhdWx0IGJlaGF2aW9yLgorKworRm9yIHJlYWRpbmcgb3B0aW9uczogcmVhZCBvbmx5IGZyb20gdGhlIHJlcG9zaXRvcnkgYC5naXQvY29uZmlnYCByYXRoZXIgdGhhbgorZnJvbSBhbGwgYXZhaWxhYmxlIGZpbGVzLgorKworU2VlIGFsc28gPDxGSUxFUz4+LgorCiAtZiBjb25maWctZmlsZTo6CiAtLWZpbGUgY29uZmlnLWZpbGU6OgogCVVzZSB0aGUgZ2l2ZW4gY29uZmlnIGZpbGUgaW5zdGVhZCBvZiB0aGUgb25lIHNwZWNpZmllZCBieSBHSVRfQ09ORklHLgogCistLWJsb2IgYmxvYjo6CisJU2ltaWxhciB0byAnLS1maWxlJyBidXQgdXNlIHRoZSBnaXZlbiBibG9iIGluc3RlYWQgb2YgYSBmaWxlLiBFLmcuCisJeW91IGNhbiB1c2UgJ21hc3RlcjouZ2l0bW9kdWxlcycgdG8gcmVhZCB2YWx1ZXMgZnJvbSB0aGUgZmlsZQorCScuZ2l0bW9kdWxlcycgaW4gdGhlIG1hc3RlciBicmFuY2guIFNlZSAiU1BFQ0lGWUlORyBSRVZJU0lPTlMiCisJc2VjdGlvbiBpbiBsaW5rZ2l0OmdpdHJldmlzaW9uc1s3XSBmb3IgYSBtb3JlIGNvbXBsZXRlIGxpc3Qgb2YKKwl3YXlzIHRvIHNwZWxsIGJsb2IgbmFtZXMuCisKIC0tcmVtb3ZlLXNlY3Rpb246OgogCVJlbW92ZSB0aGUgZ2l2ZW4gc2VjdGlvbiBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCiAKQEAgLTE4Niw4ICsyMDQsNyBAQAogCU9wZW5zIGFuIGVkaXRvciB0byBtb2RpZnkgdGhlIHNwZWNpZmllZCBjb25maWcgZmlsZTsgZWl0aGVyCiAJJy0tc3lzdGVtJywgJy0tZ2xvYmFsJywgb3IgcmVwb3NpdG9yeSAoZGVmYXVsdCkuCiAKLS0taW5jbHVkZXM6OgotLS1uby1pbmNsdWRlczo6CistLVtuby1daW5jbHVkZXM6OgogCVJlc3BlY3QgYGluY2x1ZGUuKmAgZGlyZWN0aXZlcyBpbiBjb25maWcgZmlsZXMgd2hlbiBsb29raW5nIHVwCiAJdmFsdWVzLiBEZWZhdWx0cyB0byBvbi4KIApAQCAtMTk4LDIzICsyMTUsMjMgQEAKIElmIG5vdCBzZXQgZXhwbGljaXRseSB3aXRoICctLWZpbGUnLCB0aGVyZSBhcmUgZm91ciBmaWxlcyB3aGVyZQogJ2dpdCBjb25maWcnIHdpbGwgc2VhcmNoIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnM6CiAKLSRHSVRfRElSL2NvbmZpZzo6Ci0JUmVwb3NpdG9yeSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGUuCiskKHByZWZpeCkvZXRjL2dpdGNvbmZpZzo6CisJU3lzdGVtLXdpZGUgY29uZmlndXJhdGlvbiBmaWxlLgorCiskWERHX0NPTkZJR19IT01FL2dpdC9jb25maWc6OgorCVNlY29uZCB1c2VyLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZS4gSWYgJFhER19DT05GSUdfSE9NRSBpcyBub3Qgc2V0CisJb3IgZW1wdHksIGAkSE9NRS8uY29uZmlnL2dpdC9jb25maWdgIHdpbGwgYmUgdXNlZC4gQW55IHNpbmdsZS12YWx1ZWQKKwl2YXJpYWJsZSBzZXQgaW4gdGhpcyBmaWxlIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgd2hhdGV2ZXIgaXMgaW4KKwlgfi8uZ2l0Y29uZmlnYC4gIEl0IGlzIGEgZ29vZCBpZGVhIG5vdCB0byBjcmVhdGUgdGhpcyBmaWxlIGlmCisJeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0LCBhcyBzdXBwb3J0IGZvciB0aGlzCisJZmlsZSB3YXMgYWRkZWQgZmFpcmx5IHJlY2VudGx5LgogCiB+Ly5naXRjb25maWc6OgogCVVzZXItc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmaWxlLiBBbHNvIGNhbGxlZCAiZ2xvYmFsIgogCWNvbmZpZ3VyYXRpb24gZmlsZS4KIAotJFhER19DT05GSUdfSE9NRS9naXQvY29uZmlnOjoKLQlTZWNvbmQgdXNlci1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGUuIElmICRYREdfQ09ORklHX0hPTUUgaXMgbm90IHNldAotCW9yIGVtcHR5LCAkSE9NRS8uY29uZmlnL2dpdC9jb25maWcgd2lsbCBiZSB1c2VkLiBBbnkgc2luZ2xlLXZhbHVlZAotCXZhcmlhYmxlIHNldCBpbiB0aGlzIGZpbGUgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSB3aGF0ZXZlciBpcyBpbgotCX4vLmdpdGNvbmZpZy4gIEl0IGlzIGEgZ29vZCBpZGVhIG5vdCB0byBjcmVhdGUgdGhpcyBmaWxlIGlmCi0JeW91IHNvbWV0aW1lcyB1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgR2l0LCBhcyBzdXBwb3J0IGZvciB0aGlzCi0JZmlsZSB3YXMgYWRkZWQgZmFpcmx5IHJlY2VudGx5LgotCi0kKHByZWZpeCkvZXRjL2dpdGNvbmZpZzo6Ci0JU3lzdGVtLXdpZGUgY29uZmlndXJhdGlvbiBmaWxlLgorJEdJVF9ESVIvY29uZmlnOjoKKwlSZXBvc2l0b3J5IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZmlsZS4KIAogSWYgbm8gZnVydGhlciBvcHRpb25zIGFyZSBnaXZlbiwgYWxsIHJlYWRpbmcgb3B0aW9ucyB3aWxsIHJlYWQgYWxsIG9mIHRoZXNlCiBmaWxlcyB0aGF0IGFyZSBhdmFpbGFibGUuIElmIHRoZSBnbG9iYWwgb3IgdGhlIHN5c3RlbS13aWRlIGNvbmZpZ3VyYXRpb24KQEAgLTIyMiw2ICsyMzksMTAgQEAKIGZpbGUgaXMgbm90IGF2YWlsYWJsZSBvciByZWFkYWJsZSwgJ2dpdCBjb25maWcnIHdpbGwgZXhpdCB3aXRoIGEgbm9uLXplcm8KIGVycm9yIGNvZGUuIEhvd2V2ZXIsIGluIG5laXRoZXIgY2FzZSB3aWxsIGFuIGVycm9yIG1lc3NhZ2UgYmUgaXNzdWVkLgogCitUaGUgZmlsZXMgYXJlIHJlYWQgaW4gdGhlIG9yZGVyIGdpdmVuIGFib3ZlLCB3aXRoIGxhc3QgdmFsdWUgZm91bmQgdGFraW5nCitwcmVjZWRlbmNlIG92ZXIgdmFsdWVzIHJlYWQgZWFybGllci4gIFdoZW4gbXVsdGlwbGUgdmFsdWVzIGFyZSB0YWtlbiB0aGVuIGFsbAordmFsdWVzIG9mIGEga2V5IGZyb20gYWxsIGZpbGVzIHdpbGwgYmUgdXNlZC4KKwogQWxsIHdyaXRpbmcgb3B0aW9ucyB3aWxsIHBlciBkZWZhdWx0IHdyaXRlIHRvIHRoZSByZXBvc2l0b3J5IHNwZWNpZmljCiBjb25maWd1cmF0aW9uIGZpbGUuIE5vdGUgdGhhdCB0aGlzIGFsc28gYWZmZWN0cyBvcHRpb25zIGxpa2UgJy0tcmVwbGFjZS1hbGwnCiBhbmQgJy0tdW5zZXQnLiAqJ2dpdCBjb25maWcnIHdpbGwgb25seSBldmVyIGNoYW5nZSBvbmUgZmlsZSBhdCBhIHRpbWUqLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZGFlbW9uLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWRhZW1vbi50eHQKaW5kZXggYmZiMTA2Yy4uMjIzZjczMSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZGFlbW9uLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1kYWVtb24udHh0CkBAIC0xNiw4ICsxNiwxMCBAQAogCSAgICAgWy0tcmV1c2VhZGRyXSBbLS1kZXRhY2hdIFstLXBpZC1maWxlPTxmaWxlPl0KIAkgICAgIFstLWVuYWJsZT08c2VydmljZT5dIFstLWRpc2FibGU9PHNlcnZpY2U+XQogCSAgICAgWy0tYWxsb3ctb3ZlcnJpZGU9PHNlcnZpY2U+XSBbLS1mb3JiaWQtb3ZlcnJpZGU9PHNlcnZpY2U+XQotCSAgICAgWy0tYWNjZXNzLWhvb2s9PHBhdGg+XQotCSAgICAgWy0taW5ldGQgfCBbLS1saXN0ZW49PGhvc3Rfb3JfaXBhZGRyPl0gWy0tcG9ydD08bj5dIFstLXVzZXI9PHVzZXI+IFstLWdyb3VwPTxncm91cD5dXQorCSAgICAgWy0tYWNjZXNzLWhvb2s9PHBhdGg+XSBbLS1bbm8tXWluZm9ybWF0aXZlLWVycm9yc10KKwkgICAgIFstLWluZXRkIHwKKwkgICAgICBbLS1saXN0ZW49PGhvc3Rfb3JfaXBhZGRyPl0gWy0tcG9ydD08bj5dCisJICAgICAgWy0tdXNlcj08dXNlcj4gWy0tZ3JvdXA9PGdyb3VwPl1dXQogCSAgICAgWzxkaXJlY3Rvcnk+Li4uXQogCiBERVNDUklQVElPTgpAQCAtMTY5LDggKzE3MSw3IEBACiAJcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uLiAgQnkgZGVmYXVsdCwgYWxsIHRoZSBzZXJ2aWNlcwogCWFyZSBvdmVycmlkYWJsZS4KIAotLS1pbmZvcm1hdGl2ZS1lcnJvcnM6OgotLS1uby1pbmZvcm1hdGl2ZS1lcnJvcnM6OgorLS1bbm8tXWluZm9ybWF0aXZlLWVycm9yczo6CiAJV2hlbiBpbmZvcm1hdGl2ZSBlcnJvcnMgYXJlIHR1cm5lZCBvbiwgZ2l0LWRhZW1vbiB3aWxsIHJlcG9ydAogCW1vcmUgdmVyYm9zZSBlcnJvcnMgdG8gdGhlIGNsaWVudCwgZGlmZmVyZW50aWF0aW5nIGNvbmRpdGlvbnMKIAlsaWtlICJubyBzdWNoIHJlcG9zaXRvcnkiIGZyb20gInJlcG9zaXRvcnkgbm90IGV4cG9ydGVkIi4gVGhpcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZGVzY3JpYmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZGVzY3JpYmUudHh0CmluZGV4IDI4ZTVlYzAuLjk0MzljZDYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWRlc2NyaWJlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1kZXNjcmliZS50eHQKQEAgLTg4LDYgKzg4LDExIEBACiAtLWFsd2F5czo6CiAJU2hvdyB1bmlxdWVseSBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrLgogCistLWZpcnN0LXBhcmVudDo6CisJRm9sbG93IG9ubHkgdGhlIGZpcnN0IHBhcmVudCBjb21taXQgdXBvbiBzZWVpbmcgYSBtZXJnZSBjb21taXQuCisJVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2lzaCB0byBub3QgbWF0Y2ggdGFncyBvbiBicmFuY2hlcyBtZXJnZWQKKwlpbiB0aGUgaGlzdG9yeSBvZiB0aGUgdGFyZ2V0IGNvbW1pdC4KKwogRVhBTVBMRVMKIC0tLS0tLS0tCiAKQEAgLTE0OSw3ICsxNTQsOSBAQAogSWYgYW4gZXhhY3QgbWF0Y2ggd2FzIG5vdCBmb3VuZCwgJ2dpdCBkZXNjcmliZScgd2lsbCB3YWxrIGJhY2sKIHRocm91Z2ggdGhlIGNvbW1pdCBoaXN0b3J5IHRvIGxvY2F0ZSBhbiBhbmNlc3RvciBjb21taXQgd2hpY2gKIGhhcyBiZWVuIHRhZ2dlZC4gIFRoZSBhbmNlc3RvcidzIHRhZyB3aWxsIGJlIG91dHB1dCBhbG9uZyB3aXRoIGFuCi1hYmJyZXZpYXRpb24gb2YgdGhlIGlucHV0IGNvbW1pdHRpc2gncyBTSEEtMS4KK2FiYnJldmlhdGlvbiBvZiB0aGUgaW5wdXQgY29tbWl0dGlzaCdzIFNIQS0xLiBJZiAnLS1maXJzdC1wYXJlbnQnIHdhcworc3BlY2lmaWVkIHRoZW4gdGhlIHdhbGsgd2lsbCBvbmx5IGNvbnNpZGVyIHRoZSBmaXJzdCBwYXJlbnQgb2YgZWFjaAorY29tbWl0LgogCiBJZiBtdWx0aXBsZSB0YWdzIHdlcmUgZm91bmQgZHVyaW5nIHRoZSB3YWxrIHRoZW4gdGhlIHRhZyB3aGljaAogaGFzIHRoZSBmZXdlc3QgY29tbWl0cyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5wdXQgY29tbWl0dGlzaCB3aWxsIGJlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1kaWZmLWluZGV4LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYtaW5kZXgudHh0CmluZGV4IGMwYjdjNTguLmE4NmNmNjIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYtaW5kZXgudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYtaW5kZXgudHh0CkBAIC0zLDcgKzMsNyBAQAogCiBOQU1FCiAtLS0tCi1naXQtZGlmZi1pbmRleCAtIENvbXBhcmVzIGNvbnRlbnQgYW5kIG1vZGUgb2YgYmxvYnMgYmV0d2VlbiB0aGUgaW5kZXggYW5kIHJlcG9zaXRvcnkKK2dpdC1kaWZmLWluZGV4IC0gQ29tcGFyZSBhIHRyZWUgdG8gdGhlIHdvcmtpbmcgdHJlZSBvciBpbmRleAogCiAKIFNZTk9QU0lTCkBAIC0xMywxMSArMTMsMTEgQEAKIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCi1Db21wYXJlcyB0aGUgY29udGVudCBhbmQgbW9kZSBvZiB0aGUgYmxvYnMgZm91bmQgdmlhIGEgdHJlZQotb2JqZWN0IHdpdGggdGhlIGNvbnRlbnQgb2YgdGhlIGN1cnJlbnQgaW5kZXggYW5kLCBvcHRpb25hbGx5Ci1pZ25vcmluZyB0aGUgc3RhdCBzdGF0ZSBvZiB0aGUgZmlsZSBvbiBkaXNrLiAgV2hlbiBwYXRocyBhcmUKLXNwZWNpZmllZCwgY29tcGFyZXMgb25seSB0aG9zZSBuYW1lZCBwYXRocy4gIE90aGVyd2lzZSBhbGwKLWVudHJpZXMgaW4gdGhlIGluZGV4IGFyZSBjb21wYXJlZC4KK0NvbXBhcmVzIHRoZSBjb250ZW50IGFuZCBtb2RlIG9mIHRoZSBibG9icyBmb3VuZCBpbiBhIHRyZWUgb2JqZWN0Cit3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHRyYWNrZWQgZmlsZXMgaW4gdGhlIHdvcmtpbmcgdHJlZSwgb3Igd2l0aCB0aGUKK2NvcnJlc3BvbmRpbmcgcGF0aHMgaW4gdGhlIGluZGV4LiAgV2hlbiA8cGF0aD4gYXJndW1lbnRzIGFyZSBwcmVzZW50LAorY29tcGFyZXMgb25seSBwYXRocyBtYXRjaGluZyB0aG9zZSBwYXR0ZXJucy4gIE90aGVyd2lzZSBhbGwgdHJhY2tlZAorZmlsZXMgYXJlIGNvbXBhcmVkLgogCiBPUFRJT05TCiAtLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1kaWZmLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYudHh0CmluZGV4IGE3YjQ2MjAuLjc4ZDZkNTAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWRpZmYudHh0CkBAIC0xOCw4ICsxOCw4IEBACiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KIFNob3cgY2hhbmdlcyBiZXR3ZWVuIHRoZSB3b3JraW5nIHRyZWUgYW5kIHRoZSBpbmRleCBvciBhIHRyZWUsIGNoYW5nZXMKLWJldHdlZW4gdGhlIGluZGV4IGFuZCBhIHRyZWUsIGNoYW5nZXMgYmV0d2VlbiB0d28gdHJlZXMsIG9yIGNoYW5nZXMKLWJldHdlZW4gdHdvIGZpbGVzIG9uIGRpc2suCitiZXR3ZWVuIHRoZSBpbmRleCBhbmQgYSB0cmVlLCBjaGFuZ2VzIGJldHdlZW4gdHdvIHRyZWVzLCBjaGFuZ2VzIGJldHdlZW4KK3R3byBibG9iIG9iamVjdHMsIG9yIGNoYW5nZXMgYmV0d2VlbiB0d28gZmlsZXMgb24gZGlzay4KIAogJ2dpdCBkaWZmJyBbLS1vcHRpb25zXSBbLS1dIFs8cGF0aD4uLi5dOjoKIApAQCAtNTYsMTEgKzU2LDYgQEAKIAlUaGlzIGlzIHRvIHZpZXcgdGhlIGNoYW5nZXMgYmV0d2VlbiB0d28gYXJiaXRyYXJ5CiAJPGNvbW1pdD4uCiAKLSdnaXQgZGlmZicgW29wdGlvbnNdIDxibG9iPiA8YmxvYj46OgotCi0JVGhpcyBmb3JtIGlzIHRvIHZpZXcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHJhdwotCWNvbnRlbnRzIG9mIHR3byBibG9iIG9iamVjdHMuCi0KICdnaXQgZGlmZicgWy0tb3B0aW9uc10gPGNvbW1pdD4uLjxjb21taXQ+IFstLV0gWzxwYXRoPi4uLl06OgogCiAJVGhpcyBpcyBzeW5vbnltb3VzIHRvIHRoZSBwcmV2aW91cyBmb3JtLiAgSWYgPGNvbW1pdD4gb24KQEAgLTg3LDYgKzgyLDExIEBACiAiPGNvbW1pdD5cLi4uPGNvbW1pdD4iKSBkbyBub3QgbWVhbiBhIHJhbmdlIGFzIGRlZmluZWQgaW4gdGhlCiAiU1BFQ0lGWUlORyBSQU5HRVMiIHNlY3Rpb24gaW4gbGlua2dpdDpnaXRyZXZpc2lvbnNbN10uCiAKKydnaXQgZGlmZicgW29wdGlvbnNdIDxibG9iPiA8YmxvYj46OgorCisJVGhpcyBmb3JtIGlzIHRvIHZpZXcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHJhdworCWNvbnRlbnRzIG9mIHR3byBibG9iIG9iamVjdHMuCisKIE9QVElPTlMKIC0tLS0tLS0KIDpnaXQtZGlmZjogMQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZGlmZnRvb2wudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtZGlmZnRvb2wudHh0CmluZGV4IDgzNjFlNmUuLjExODg3ZTYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWRpZmZ0b29sLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1kaWZmdG9vbC50eHQKQEAgLTY5LDggKzY5LDcgQEAKIC0tdG9vbC1oZWxwOjoKIAlQcmludCBhIGxpc3Qgb2YgZGlmZiB0b29scyB0aGF0IG1heSBiZSB1c2VkIHdpdGggYC0tdG9vbGAuCiAKLS0tc3ltbGlua3M6OgotLS1uby1zeW1saW5rczo6CistLVtuby1dc3ltbGlua3M6OgogCSdnaXQgZGlmZnRvb2wnJ3MgZGVmYXVsdCBiZWhhdmlvciBpcyBjcmVhdGUgc3ltbGlua3MgdG8gdGhlCiAJd29ya2luZyB0cmVlIHdoZW4gcnVuIGluIGAtLWRpci1kaWZmYCBtb2RlIGFuZCB0aGUgcmlnaHQtaGFuZAogCXNpZGUgb2YgdGhlIGNvbXBhcmlzb24geWllbGRzIHRoZSBzYW1lIGNvbnRlbnQgYXMgdGhlIGZpbGUgaW4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWZhc3QtZXhwb3J0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWZhc3QtZXhwb3J0LnR4dAppbmRleCAwM2ZjOGMzLi44NWYxZjMwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mYXN0LWV4cG9ydC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZmFzdC1leHBvcnQudHh0CkBAIC0xMDYsMTEgKzEwNiwxMSBAQAogCWRpZmZlcmVudCBmcm9tIHRoZSBjb21taXQncyBmaXJzdCBwYXJlbnQpLgogCiBbPGdpdC1yZXYtbGlzdC1hcmdzPi4uLl06OgotICAgICAgIEEgbGlzdCBvZiBhcmd1bWVudHMsIGFjY2VwdGFibGUgdG8gJ2dpdCByZXYtcGFyc2UnIGFuZAotICAgICAgICdnaXQgcmV2LWxpc3QnLCB0aGF0IHNwZWNpZmllcyB0aGUgc3BlY2lmaWMgb2JqZWN0cyBhbmQgcmVmZXJlbmNlcwotICAgICAgIHRvIGV4cG9ydC4gIEZvciBleGFtcGxlLCBgbWFzdGVyfjEwLi5tYXN0ZXJgIGNhdXNlcyB0aGUKLSAgICAgICBjdXJyZW50IG1hc3RlciByZWZlcmVuY2UgdG8gYmUgZXhwb3J0ZWQgYWxvbmcgd2l0aCBhbGwgb2JqZWN0cwotICAgICAgIGFkZGVkIHNpbmNlIGl0cyAxMHRoIGFuY2VzdG9yIGNvbW1pdC4KKwlBIGxpc3Qgb2YgYXJndW1lbnRzLCBhY2NlcHRhYmxlIHRvICdnaXQgcmV2LXBhcnNlJyBhbmQKKwknZ2l0IHJldi1saXN0JywgdGhhdCBzcGVjaWZpZXMgdGhlIHNwZWNpZmljIG9iamVjdHMgYW5kIHJlZmVyZW5jZXMKKwl0byBleHBvcnQuICBGb3IgZXhhbXBsZSwgYG1hc3Rlcn4xMC4ubWFzdGVyYCBjYXVzZXMgdGhlCisJY3VycmVudCBtYXN0ZXIgcmVmZXJlbmNlIHRvIGJlIGV4cG9ydGVkIGFsb25nIHdpdGggYWxsIG9iamVjdHMKKwlhZGRlZCBzaW5jZSBpdHMgMTB0aCBhbmNlc3RvciBjb21taXQuCiAKIEVYQU1QTEVTCiAtLS0tLS0tLQpAQCAtMTQxLDcgKzE0MSw3IEBACiAtLS0tLS0tLS0tLQogCiBTaW5jZSAnZ2l0IGZhc3QtaW1wb3J0JyBjYW5ub3QgdGFnIHRyZWVzLCB5b3Ugd2lsbCBub3QgYmUKLWFibGUgdG8gZXhwb3J0IHRoZSBsaW51eC0yLjYuZ2l0IHJlcG9zaXRvcnkgY29tcGxldGVseSwgYXMgaXQgY29udGFpbnMKK2FibGUgdG8gZXhwb3J0IHRoZSBsaW51eC5naXQgcmVwb3NpdG9yeSBjb21wbGV0ZWx5LCBhcyBpdCBjb250YWlucwogYSB0YWcgcmVmZXJlbmNpbmcgYSB0cmVlIGluc3RlYWQgb2YgYSBjb21taXQuCiAKIEdJVApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZmV0Y2gtcGFjay50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dAppbmRleCBiODFlOTBkLi4xZTcxNzU0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mZXRjaC1wYWNrLnR4dApAQCAtMTAsOSArMTAsOSBAQAogLS0tLS0tLS0KIFt2ZXJzZV0KICdnaXQgZmV0Y2gtcGFjaycgWy0tYWxsXSBbLS1xdWlldHwtcV0gWy0ta2VlcHwta10gWy0tdGhpbl0gWy0taW5jbHVkZS10YWddCi0JCQkJWy0tdXBsb2FkLXBhY2s9PGdpdC11cGxvYWQtcGFjaz5dCi0JCQkJWy0tZGVwdGg9PG4+XSBbLS1uby1wcm9ncmVzc10KLQkJCQlbLXZdIFs8aG9zdD46XTxkaXJlY3Rvcnk+IFs8cmVmcz4uLi5dCisJWy0tdXBsb2FkLXBhY2s9PGdpdC11cGxvYWQtcGFjaz5dCisJWy0tZGVwdGg9PG4+XSBbLS1uby1wcm9ncmVzc10KKwlbLXZdIFs8aG9zdD46XTxkaXJlY3Rvcnk+IFs8cmVmcz4uLi5dCiAKIERFU0NSSVBUSU9OCiAtLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZm10LW1lcmdlLW1zZy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1mbXQtbWVyZ2UtbXNnLnR4dAppbmRleCAzYTBmNTVlLi5iYjEyMzJhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1mbXQtbWVyZ2UtbXNnLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mbXQtbWVyZ2UtbXNnLnR4dApAQCAtMzUsOCArMzUsNyBAQAogCURvIG5vdCBsaXN0IG9uZS1saW5lIGRlc2NyaXB0aW9ucyBmcm9tIHRoZSBhY3R1YWwgY29tbWl0cyBiZWluZwogCW1lcmdlZC4KIAotLS1zdW1tYXJ5OjoKLS0tbm8tc3VtbWFyeTo6CistLVtuby1dc3VtbWFyeTo6CiAJU3lub255bXMgdG8gLS1sb2cgYW5kIC0tbm8tbG9nOyB0aGVzZSBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZQogCXJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtZm9ybWF0LXBhdGNoLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWZvcm1hdC1wYXRjaC50eHQKaW5kZXggMzkxMTg3Ny4uZTM5NDI3NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtZm9ybWF0LXBhdGNoLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1mb3JtYXQtcGF0Y2gudHh0CkBAIC0xODcsNiArMTg3LDIxIEBACiAJVGhlIG5lZ2F0ZWQgZm9ybSBgLS1uby1jY2AgZGlzY2FyZHMgYWxsIGBDYzpgIGhlYWRlcnMgYWRkZWQgc28KIAlmYXIgKGZyb20gY29uZmlnIG9yIGNvbW1hbmQgbGluZSkuCiAKKy0tZnJvbTo6CistLWZyb209PGlkZW50Pjo6CisJVXNlIGBpZGVudGAgaW4gdGhlIGBGcm9tOmAgaGVhZGVyIG9mIGVhY2ggY29tbWl0IGVtYWlsLiBJZiB0aGUKKwlhdXRob3IgaWRlbnQgb2YgdGhlIGNvbW1pdCBpcyBub3QgdGV4dHVhbGx5IGlkZW50aWNhbCB0byB0aGUKKwlwcm92aWRlZCBgaWRlbnRgLCBwbGFjZSBhIGBGcm9tOmAgaGVhZGVyIGluIHRoZSBib2R5IG9mIHRoZQorCW1lc3NhZ2Ugd2l0aCB0aGUgb3JpZ2luYWwgYXV0aG9yLiBJZiBubyBgaWRlbnRgIGlzIGdpdmVuLCB1c2UKKwl0aGUgY29tbWl0dGVyIGlkZW50LgorKworTm90ZSB0aGF0IHRoaXMgb3B0aW9uIGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBhcmUgYWN0dWFsbHkgc2VuZGluZyB0aGUKK2VtYWlscyBhbmQgd2FudCB0byBpZGVudGlmeSB5b3Vyc2VsZiBhcyB0aGUgc2VuZGVyLCBidXQgcmV0YWluIHRoZQorb3JpZ2luYWwgYXV0aG9yIChhbmQgYGdpdCBhbWAgd2lsbCBjb3JyZWN0bHkgcGljayB1cCB0aGUgaW4tYm9keQoraGVhZGVyKS4gTm90ZSBhbHNvIHRoYXQgYGdpdCBzZW5kLWVtYWlsYCBhbHJlYWR5IGhhbmRsZXMgdGhpcwordHJhbnNmb3JtYXRpb24gZm9yIHlvdSwgYW5kIHRoaXMgb3B0aW9uIHNob3VsZCBub3QgYmUgdXNlZCBpZiB5b3UgYXJlCitmZWVkaW5nIHRoZSByZXN1bHQgdG8gYGdpdCBzZW5kLWVtYWlsYC4KKwogLS1hZGQtaGVhZGVyPTxoZWFkZXI+OjoKIAlBZGQgYW4gYXJiaXRyYXJ5IGhlYWRlciB0byB0aGUgZW1haWwgaGVhZGVycy4gIFRoaXMgaXMgaW4gYWRkaXRpb24KIAl0byBhbnkgY29uZmlndXJlZCBoZWFkZXJzLCBhbmQgbWF5IGJlIHVzZWQgbXVsdGlwbGUgdGltZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1mc2NrLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWZzY2sudHh0CmluZGV4IGU1ODc4YmQuLjI1YzQzMWQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWZzY2sudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWZzY2sudHh0CkBAIC0zMCw4ICszMCw3IEBACiAJUHJpbnQgb3V0IG9iamVjdHMgdGhhdCBleGlzdCBidXQgdGhhdCBhcmVuJ3QgcmVhY2hhYmxlIGZyb20gYW55CiAJb2YgdGhlIHJlZmVyZW5jZSBub2Rlcy4KIAotLS1kYW5nbGluZzo6Ci0tLW5vLWRhbmdsaW5nOjoKKy0tW25vLV1kYW5nbGluZzo6CiAJUHJpbnQgb2JqZWN0cyB0aGF0IGV4aXN0IGJ1dCB0aGF0IGFyZSBuZXZlciAnZGlyZWN0bHknIHVzZWQgKGRlZmF1bHQpLgogCWAtLW5vLWRhbmdsaW5nYCBjYW4gYmUgdXNlZCB0byBvbWl0IHRoaXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgb3V0cHV0LgogCkBAIC03OCw4ICs3Nyw3IEBACiAJYSBibG9iLCB0aGUgY29udGVudHMgYXJlIHdyaXR0ZW4gaW50byB0aGUgZmlsZSwgcmF0aGVyIHRoYW4KIAlpdHMgb2JqZWN0IG5hbWUuCiAKLS0tcHJvZ3Jlc3M6OgotLS1uby1wcm9ncmVzczo6CistLVtuby1dcHJvZ3Jlc3M6OgogCVByb2dyZXNzIHN0YXR1cyBpcyByZXBvcnRlZCBvbiB0aGUgc3RhbmRhcmQgZXJyb3Igc3RyZWFtIGJ5CiAJZGVmYXVsdCB3aGVuIGl0IGlzIGF0dGFjaGVkIHRvIGEgdGVybWluYWwsIHVubGVzcwogCS0tbm8tcHJvZ3Jlc3Mgb3IgLS12ZXJib3NlIGlzIHNwZWNpZmllZC4gLS1wcm9ncmVzcyBmb3JjZXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWdjLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWdjLnR4dAppbmRleCBiMzcwYjAyLi4yNDAyZWQ2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1nYy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtZ2MudHh0CkBAIC02Miw4ICs2Miw5IEBACiAKIC0tcHJ1bmU9PGRhdGU+OjoKIAlQcnVuZSBsb29zZSBvYmplY3RzIG9sZGVyIHRoYW4gZGF0ZSAoZGVmYXVsdCBpcyAyIHdlZWtzIGFnbywKLQlvdmVycmlkYWJsZSBieSB0aGUgY29uZmlnIHZhcmlhYmxlIGBnYy5wcnVuZUV4cGlyZWApLiAgVGhpcwotCW9wdGlvbiBpcyBvbiBieSBkZWZhdWx0LgorCW92ZXJyaWRhYmxlIGJ5IHRoZSBjb25maWcgdmFyaWFibGUgYGdjLnBydW5lRXhwaXJlYCkuCisJLS1wcnVuZT1hbGwgcHJ1bmVzIGxvb3NlIG9iamVjdHMgcmVnYXJkbGVzcyBvZiB0aGVpciBhZ2UuCisJLS1wcnVuZSBpcyBvbiBieSBkZWZhdWx0LgogCiAtLW5vLXBydW5lOjoKIAlEbyBub3QgcHJ1bmUgYW55IGxvb3NlIG9iamVjdHMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1ncmVwLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWdyZXAudHh0CmluZGV4IDUwZDQ2ZTEuLjg0OTdhYTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LWdyZXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWdyZXAudHh0CkBAIC0yNSw3ICsyNSw3IEBACiAJICAgWy1XIHwgLS1mdW5jdGlvbi1jb250ZXh0XQogCSAgIFstZiA8ZmlsZT5dIFstZV0gPHBhdHRlcm4+CiAJICAgWy0tYW5kfC0tb3J8LS1ub3R8KHwpfC1lIDxwYXR0ZXJuPi4uLl0KLQkgICBbIFstLWV4Y2x1ZGUtc3RhbmRhcmRdIFstLWNhY2hlZCB8IC0tbm8taW5kZXggfCAtLXVudHJhY2tlZF0gfCA8dHJlZT4uLi5dCisJICAgWyBbLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmRdIFstLWNhY2hlZCB8IC0tbm8taW5kZXggfCAtLXVudHJhY2tlZF0gfCA8dHJlZT4uLi5dCiAJICAgWy0tXSBbPHBhdGhzcGVjPi4uLl0KIAogREVTQ1JJUFRJT04KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LWluZGV4LXBhY2sudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtaW5kZXgtcGFjay50eHQKaW5kZXggYmRlOGVlYy4uN2E0ZTA1NSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtaW5kZXgtcGFjay50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtaW5kZXgtcGFjay50eHQKQEAgLTc0LDYgKzc0LDkgQEAKIC0tc3RyaWN0OjoKIAlEaWUsIGlmIHRoZSBwYWNrIGNvbnRhaW5zIGJyb2tlbiBvYmplY3RzIG9yIGxpbmtzLgogCistLWNoZWNrLXNlbGYtY29udGFpbmVkLWFuZC1jb25uZWN0ZWQ6OgorCURpZSBpZiB0aGUgcGFjayBjb250YWlucyBicm9rZW4gbGlua3MuIEZvciBpbnRlcm5hbCB1c2Ugb25seS4KKwogLS10aHJlYWRzPTxuPjo6CiAJU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBzcGF3biB3aGVuIHJlc29sdmluZwogCWRlbHRhcy4gVGhpcyByZXF1aXJlcyB0aGF0IGluZGV4LXBhY2sgYmUgY29tcGlsZWQgd2l0aApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbG9nLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LWxvZy50eHQKaW5kZXggYTk3NjUzNC4uYWMyNjk0ZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1sb2cudHh0CkBAIC02Miw2ICs2MiwxOSBAQAogCU5vdGUgdGhhdCBvbmx5IG1lc3NhZ2UgaXMgY29uc2lkZXJlZCwgaWYgYWxzbyBhIGRpZmYgaXMgc2hvd24KIAlpdHMgc2l6ZSBpcyBub3QgaW5jbHVkZWQuCiAKKy1MIDxzdGFydD4sPGVuZD46PGZpbGU+LCAtTCA6PHJlZ2V4Pjo8ZmlsZT46OgorCisJVHJhY2UgdGhlIGV2b2x1dGlvbiBvZiB0aGUgbGluZSByYW5nZSBnaXZlbiBieSAiPHN0YXJ0Piw8ZW5kPiIKKwkob3IgdGhlIGZ1bmNuYW1lIHJlZ2V4IDxyZWdleD4pIHdpdGhpbiB0aGUgPGZpbGU+LiAgWW91IG1heQorCW5vdCBnaXZlIGFueSBwYXRoc3BlYyBsaW1pdGVycy4gIFRoaXMgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8KKwlhIHdhbGsgc3RhcnRpbmcgZnJvbSBhIHNpbmdsZSByZXZpc2lvbiwgaS5lLiwgeW91IG1heSBvbmx5CisJZ2l2ZSB6ZXJvIG9yIG9uZSBwb3NpdGl2ZSByZXZpc2lvbiBhcmd1bWVudHMuCisJWW91IGNhbiBzcGVjaWZ5IHRoaXMgb3B0aW9uIG1vcmUgdGhhbiBvbmNlLgorKworPHN0YXJ0PiBhbmQgPGVuZD4gY2FuIHRha2Ugb25lIG9mIHRoZXNlIGZvcm1zOgorCitpbmNsdWRlOjpsaW5lLXJhbmdlLWZvcm1hdC50eHRbXQorCiA8cmV2aXNpb24gcmFuZ2U+OjoKIAlTaG93IG9ubHkgY29tbWl0cyBpbiB0aGUgc3BlY2lmaWVkIHJldmlzaW9uIHJhbmdlLiAgV2hlbiBubwogCTxyZXZpc2lvbiByYW5nZT4gaXMgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBgSEVBRGAgKGkuZS4gdGhlCkBAIC04NCw3ICs5Nyw3IEBACiAKIGluY2x1ZGU6OnByZXR0eS1mb3JtYXRzLnR4dFtdCiAKLUNvbW1vbiBkaWZmIG9wdGlvbnMKK0NPTU1PTiBESUZGIE9QVElPTlMKIC0tLS0tLS0tLS0tLS0tLS0tLS0KIAogOmdpdC1sb2c6IDEKQEAgLTkyLDcgKzEwNSw3IEBACiAKIGluY2x1ZGU6OmRpZmYtZ2VuZXJhdGUtcGF0Y2gudHh0W10KIAotRXhhbXBsZXMKK0VYQU1QTEVTCiAtLS0tLS0tLQogYGdpdCBsb2cgLS1uby1tZXJnZXNgOjoKIApAQCAtMTE1LDkgKzEyOCw5IEBACiAJaW4gdGhlICJyZWxlYXNlIiBicmFuY2gsIGFsb25nIHdpdGggdGhlIGxpc3Qgb2YgcGF0aHMKIAllYWNoIGNvbW1pdCBtb2RpZmllcy4KIAotYGdpdCBsb2cgLS1mb2xsb3cgYnVpbHRpbi1yZXYtbGlzdC5jYDo6CitgZ2l0IGxvZyAtLWZvbGxvdyBidWlsdGluL3Jldi1saXN0LmNgOjoKIAotCVNob3dzIHRoZSBjb21taXRzIHRoYXQgY2hhbmdlZCBidWlsdGluLXJldi1saXN0LmMsIGluY2x1ZGluZworCVNob3dzIHRoZSBjb21taXRzIHRoYXQgY2hhbmdlZCBidWlsdGluL3Jldi1saXN0LmMsIGluY2x1ZGluZwogCXRob3NlIGNvbW1pdHMgdGhhdCBvY2N1cnJlZCBiZWZvcmUgdGhlIGZpbGUgd2FzIGdpdmVuIGl0cwogCXByZXNlbnQgbmFtZS4KIApAQCAtMTQwLDE1ICsxNTMsMjAgQEAKIAlUaGlzIG1ha2VzIHNlbnNlIG9ubHkgd2hlbiBmb2xsb3dpbmcgYSBzdHJpY3QgcG9saWN5IG9mIG1lcmdpbmcgYWxsCiAJdG9waWMgYnJhbmNoZXMgd2hlbiBzdGF5aW5nIG9uIGEgc2luZ2xlIGludGVncmF0aW9uIGJyYW5jaC4KIAorYGdpdCBsb2cgLUwgJy9pbnQgbWFpbi8nLC9efS86bWFpbi5jYDo6CisKKwlTaG93cyBob3cgdGhlIGZ1bmN0aW9uIGBtYWluKClgIGluIHRoZSBmaWxlICdtYWluLmMnIGV2b2x2ZWQKKwlvdmVyIHRpbWUuCisKIGBnaXQgbG9nIC0zYDo6CiAJTGltaXRzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0byBzaG93IHRvIDMuCiAKLURpc2N1c3Npb24KK0RJU0NVU1NJT04KIC0tLS0tLS0tLS0KIAogaW5jbHVkZTo6aTE4bi50eHRbXQogCi1Db25maWd1cmF0aW9uCitDT05GSUdVUkFUSU9OCiAtLS0tLS0tLS0tLS0tCiAKIFNlZSBsaW5rZ2l0OmdpdC1jb25maWdbMV0gZm9yIGNvcmUgdmFyaWFibGVzIGFuZCBsaW5rZ2l0OmdpdC1kaWZmWzFdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1scy1yZW1vdGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbHMtcmVtb3RlLnR4dAppbmRleCA3NzRkZTVlLi4yZTIyOTE1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1scy1yZW1vdGUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LWxzLXJlbW90ZS50eHQKQEAgLTQ4LDkgKzQ4LDkgQEAKIAlleGl0IHdpdGhvdXQgdGFsa2luZyB0byB0aGUgcmVtb3RlLgogCiA8cmVwb3NpdG9yeT46OgotCUxvY2F0aW9uIG9mIHRoZSByZXBvc2l0b3J5LiAgVGhlIHNob3J0aGFuZCBkZWZpbmVkIGluCi0JJEdJVF9ESVIvYnJhbmNoZXMvIGNhbiBiZSB1c2VkLiBVc2UgIi4iIChkb3QpIHRvIGxpc3QgcmVmZXJlbmNlcyBpbgotCXRoZSBsb2NhbCByZXBvc2l0b3J5LgorCVRoZSAicmVtb3RlIiByZXBvc2l0b3J5IHRvIHF1ZXJ5LiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJlCisJZWl0aGVyIGEgVVJMIG9yIHRoZSBuYW1lIG9mIGEgcmVtb3RlIChzZWUgdGhlIEdJVCBVUkxTIGFuZAorCVJFTU9URVMgc2VjdGlvbnMgb2YgbGlua2dpdDpnaXQtZmV0Y2hbMV0pLgogCiA8cmVmcz4uLi46OgogCVdoZW4gdW5zcGVjaWZpZWQsIGFsbCByZWZlcmVuY2VzLCBhZnRlciBmaWx0ZXJpbmcgZG9uZQpAQCAtNzAsOSArNzAsOCBAQAogCSQgZ2l0IGxzLXJlbW90ZSBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL3NjbS9naXQvZ2l0LmdpdCBtYXN0ZXIgcHUgcmMKIAk1ZmU5NzhhNTM4MWYxZmJhZDI2YTgwZTY4MmRkZDJhNDAxOTY2NzQwCXJlZnMvaGVhZHMvbWFzdGVyCiAJYzc4MWE4NGI1MjA0ZmIyOTRjOWNjYzc5ZjhiM2JhY2VlYjMyYzA2MQlyZWZzL2hlYWRzL3B1Ci0JYjFkMDk2ZjI5MjZjNGUzN2M5YzBiNmE3YmYyMTE5YmVkYWEyNzdjYglyZWZzL2hlYWRzL3JjCi0JJCBlY2hvIGh0dHA6Ly93d3cua2VybmVsLm9yZy9wdWIvc2NtL2dpdC9naXQuZ2l0ID4uZ2l0L2JyYW5jaGVzL3B1YmxpYwotCSQgZ2l0IGxzLXJlbW90ZSAtLXRhZ3MgcHVibGljIHZcKgorCSQgZ2l0IHJlbW90ZSBhZGQga29yZyBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL3NjbS9naXQvZ2l0LmdpdAorCSQgZ2l0IGxzLXJlbW90ZSAtLXRhZ3Mga29yZyB2XCoKIAlkNjYwMmVjNTE5NGM4N2IwZmM4NzEwM2NhNGQ2NzI1MWM3NmYyMzNhCXJlZnMvdGFncy92MC45OQogCWYyNWEyNjVhMzQyYWVkNjA0MWFiMGNjNDg0MjI0ZDljYTU0YjZmNDEJcmVmcy90YWdzL3YwLjk5LjEKIAljNWRiNTQ1NmFlM2IwODczZmM2NTljMTlmYWZkZGUyMjMxM2NjNDQxCXJlZnMvdGFncy92MC45OS4yCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1tYWlsaW5mby50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1tYWlsaW5mby50eHQKaW5kZXggOTdlN2E4ZS4uMTY0YTNjNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtbWFpbGluZm8udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LW1haWxpbmZvLnR4dApAQCAtOSw3ICs5LDcgQEAKIFNZTk9QU0lTCiAtLS0tLS0tLQogW3ZlcnNlXQotJ2dpdCBtYWlsaW5mbycgWy1rfC1iXSBbLXUgfCAtLWVuY29kaW5nPTxlbmNvZGluZz4gfCAtbl0gWy0tc2Npc3NvcnNdIDxtc2c+IDxwYXRjaD4KKydnaXQgbWFpbGluZm8nIFsta3wtYl0gWy11IHwgLS1lbmNvZGluZz08ZW5jb2Rpbmc+IHwgLW5dIFstLVtuby1dc2Npc3NvcnNdIDxtc2c+IDxwYXRjaD4KIAogCiBERVNDUklQVElPTgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2UudHh0CmluZGV4IDQyMzkxZjIuLmE3NGMzNzEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZS50eHQKQEAgLTU2LDggKzU2LDggQEAKIHdhcyBzdGFydGVkKSwgJ2dpdCBtZXJnZSAtLWFib3J0JyB3aWxsIGluIHNvbWUgY2FzZXMgYmUgdW5hYmxlIHRvCiByZWNvbnN0cnVjdCB0aGUgb3JpZ2luYWwgKHByZS1tZXJnZSkgY2hhbmdlcy4gVGhlcmVmb3JlOgogCi0qV2FybmluZyo6IFJ1bm5pbmcgJ2dpdCBtZXJnZScgd2l0aCB1bmNvbW1pdHRlZCBjaGFuZ2VzIGlzCi1kaXNjb3VyYWdlZDogd2hpbGUgcG9zc2libGUsIGl0IGxlYXZlcyB5b3UgaW4gYSBzdGF0ZSB0aGF0IGlzIGhhcmQgdG8KKypXYXJuaW5nKjogUnVubmluZyAnZ2l0IG1lcmdlJyB3aXRoIG5vbi10cml2aWFsIHVuY29tbWl0dGVkIGNoYW5nZXMgaXMKK2Rpc2NvdXJhZ2VkOiB3aGlsZSBwb3NzaWJsZSwgaXQgbWF5IGxlYXZlIHlvdSBpbiBhIHN0YXRlIHRoYXQgaXMgaGFyZCB0bwogYmFjayBvdXQgb2YgaW4gdGhlIGNhc2Ugb2YgYSBjb25mbGljdC4KIAogCkBAIC03Niw4ICs3Niw3IEBACiB1c2VkIHRvIGdpdmUgYSBnb29kIGRlZmF1bHQgZm9yIGF1dG9tYXRlZCAnZ2l0IG1lcmdlJwogaW52b2NhdGlvbnMuCiAKLS0tcmVyZXJlLWF1dG91cGRhdGU6OgotLS1uby1yZXJlcmUtYXV0b3VwZGF0ZTo6CistLVtuby1dcmVyZXJlLWF1dG91cGRhdGU6OgogCUFsbG93IHRoZSByZXJlcmUgbWVjaGFuaXNtIHRvIHVwZGF0ZSB0aGUgaW5kZXggd2l0aCB0aGUKIAlyZXN1bHQgb2YgYXV0by1jb25mbGljdCByZXNvbHV0aW9uIGlmIHBvc3NpYmxlLgogCkBAIC0xODcsMTEgKzE4NiwxMSBAQAogdG8gYGdpdCBtZXJnZWAsIG9yIHBhc3MgYC0tZmYtb25seWAgd2hlbiB5b3UgZG8gbm90IGhhdmUgYW55IHdvcmsgb24KIHlvdXIgb3duLiBlLmcuCiAKLS0tLQorLS0tLQogZ2l0IGZldGNoIG9yaWdpbgogZ2l0IG1lcmdlIHYxLjIuM14wCiBnaXQgbWVyZ2UgLS1mZi1vbmx5IHYxLjIuMwotLS0tCistLS0tCiAKIAogSE9XIENPTkZMSUNUUyBBUkUgUFJFU0VOVEVECmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZXRvb2wudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtbWVyZ2V0b29sLnR4dAppbmRleCA2YjU2M2M1Li4wNzEzN2YyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1tZXJnZXRvb2wudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LW1lcmdldG9vbC50eHQKQEAgLTgsNyArOCw3IEBACiBTWU5PUFNJUwogLS0tLS0tLS0KIFt2ZXJzZV0KLSdnaXQgbWVyZ2V0b29sJyBbLS10b29sPTx0b29sPl0gWy15fC0tbm8tcHJvbXB0fC0tcHJvbXB0XSBbPGZpbGU+Li4uXQorJ2dpdCBtZXJnZXRvb2wnIFstLXRvb2w9PHRvb2w+XSBbLXkgfCAtLVtuby1dcHJvbXB0XSBbPGZpbGU+Li4uXQogCiBERVNDUklQVElPTgogLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LW5hbWUtcmV2LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LW5hbWUtcmV2LnR4dAppbmRleCBhZDFkMTQ2Li4xNWIwMGUwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1uYW1lLXJldi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtbmFtZS1yZXYudHh0CkBAIC0yNSwxNCArMjUsMTcgQEAKIAlEbyBub3QgdXNlIGJyYW5jaCBuYW1lcywgYnV0IG9ubHkgdGFncyB0byBuYW1lIHRoZSBjb21taXRzCiAKIC0tcmVmcz08cGF0dGVybj46OgotCU9ubHkgdXNlIHJlZnMgd2hvc2UgbmFtZXMgbWF0Y2ggYSBnaXZlbiBzaGVsbCBwYXR0ZXJuLgorCU9ubHkgdXNlIHJlZnMgd2hvc2UgbmFtZXMgbWF0Y2ggYSBnaXZlbiBzaGVsbCBwYXR0ZXJuLiAgVGhlIHBhdHRlcm4KKwljYW4gYmUgb25lIG9mIGJyYW5jaCBuYW1lLCB0YWcgbmFtZSBvciBmdWxseSBxdWFsaWZpZWQgcmVmIG5hbWUuCiAKIC0tYWxsOjoKIAlMaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzCiAKIC0tc3RkaW46OgotCVJlYWQgZnJvbSBzdGRpbiwgYXBwZW5kICIoPHJldl9uYW1lPikiIHRvIGFsbCBzaGExJ3Mgb2YgbmFtZWFibGUKLQljb21taXRzLCBhbmQgcGFzcyB0byBzdGRvdXQKKwlUcmFuc2Zvcm0gc3RkaW4gYnkgc3Vic3RpdHV0aW5nIGFsbCB0aGUgNDAtY2hhcmFjdGVyIFNIQS0xCisJaGV4ZXMgKHNheSAkaGV4KSB3aXRoICIkaGV4ICgkcmV2X25hbWUpIi4gIFdoZW4gdXNlZCB3aXRoCisJLS1uYW1lLW9ubHksIHN1YnN0aXR1dGUgd2l0aCAiJHJldl9uYW1lIiwgb21pdHRpbmcgJGhleAorCWFsdG9nZXRoZXIuICBJbnRlbmRlZCBmb3IgdGhlIHNjcmlwdGVyJ3MgdXNlLgogCiAtLW5hbWUtb25seTo6CiAJSW5zdGVhZCBvZiBwcmludGluZyBib3RoIHRoZSBTSEEtMSBhbmQgdGhlIG5hbWUsIHByaW50IG9ubHkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXA0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXA0LnR4dAppbmRleCBjNTc5ZmJjLi44Y2JhMTZkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1wNC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcDQudHh0CkBAIC0xNzYsMTMgKzE3NiwxNiBAQAogVGhlc2Ugb3B0aW9ucyBjYW4gYmUgdXNlZCBpbiB0aGUgaW5pdGlhbCAnY2xvbmUnIGFzIHdlbGwgYXMgaW4KIHN1YnNlcXVlbnQgJ3N5bmMnIG9wZXJhdGlvbnMuCiAKLS0tYnJhbmNoIDxicmFuY2g+OjoKLQlJbXBvcnQgY2hhbmdlcyBpbnRvIGdpdmVuIGJyYW5jaC4gIElmIHRoZSBicmFuY2ggc3RhcnRzIHdpdGgKLQkncmVmcy8nLCBpdCB3aWxsIGJlIHVzZWQgYXMgaXMuICBPdGhlcndpc2UgaWYgaXQgZG9lcyBub3Qgc3RhcnQKLQl3aXRoICdwNC8nLCB0aGF0IHByZWZpeCBpcyBhZGRlZC4gIFRoZSBicmFuY2ggaXMgYXNzdW1lZCB0bwotCW5hbWUgYSByZW1vdGUgdHJhY2tpbmcsIGJ1dCB0aGlzIGNhbiBiZSBtb2RpZmllZCB1c2luZwotCSctLWltcG9ydC1sb2NhbCcsIG9yIGJ5IGdpdmluZyBhIGZ1bGwgcmVmIG5hbWUuICBUaGUgZGVmYXVsdAotCWJyYW5jaCBpcyAnbWFzdGVyJy4KKy0tYnJhbmNoIDxyZWY+OjoKKwlJbXBvcnQgY2hhbmdlcyBpbnRvIDxyZWY+IGluc3RlYWQgb2YgcmVmcy9yZW1vdGVzL3A0L21hc3Rlci4KKwlJZiA8cmVmPiBzdGFydHMgd2l0aCByZWZzLywgaXQgaXMgdXNlZCBhcyBpcy4gIE90aGVyd2lzZSwgaWYKKwlpdCBkb2VzIG5vdCBzdGFydCB3aXRoIHA0LywgdGhhdCBwcmVmaXggaXMgYWRkZWQuCisrCitCeSBkZWZhdWx0IGEgPHJlZj4gbm90IHN0YXJ0aW5nIHdpdGggcmVmcy8gaXMgdHJlYXRlZCBhcyB0aGUKK25hbWUgb2YgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICh1bmRlciByZWZzL3JlbW90ZXMvKS4gIFRoaXMKK2JlaGF2aW9yIGNhbiBiZSBtb2RpZmllZCB1c2luZyB0aGUgLS1pbXBvcnQtbG9jYWwgb3B0aW9uLgorKworVGhlIGRlZmF1bHQgPHJlZj4gaXMgIm1hc3RlciIuCiArCiBUaGlzIGV4YW1wbGUgaW1wb3J0cyBhIG5ldyByZW1vdGUgInA0L3Byb2oyIiBpbnRvIGFuIGV4aXN0aW5nCiBHaXQgcmVwb3NpdG9yeToKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXBhY2stcmVmcy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1wYWNrLXJlZnMudHh0CmluZGV4IGYxMzE2NzcuLjE1NDA4MWYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXBhY2stcmVmcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcGFjay1yZWZzLnR4dApAQCAtMzMsOCArMzMsOCBAQAogYCRHSVRfRElSL3JlZnNgIGRpcmVjdG9yeSBoaWVyYXJjaHkuCiAKIEEgcmVjb21tZW5kZWQgcHJhY3RpY2UgdG8gZGVhbCB3aXRoIGEgcmVwb3NpdG9yeSB3aXRoIHRvbyBtYW55Ci1yZWZzIGlzIHRvIHBhY2sgaXRzIHJlZnMgd2l0aCBgLS1hbGwgLS1wcnVuZWAgb25jZSwgYW5kCi1vY2Nhc2lvbmFsbHkgcnVuIGBnaXQgcGFjay1yZWZzIC0tcHJ1bmVgLiAgVGFncyBhcmUgYnkKK3JlZnMgaXMgdG8gcGFjayBpdHMgcmVmcyB3aXRoIGAtLWFsbGAgb25jZSwgYW5kCitvY2Nhc2lvbmFsbHkgcnVuIGBnaXQgcGFjay1yZWZzYC4gIFRhZ3MgYXJlIGJ5CiBkZWZpbml0aW9uIHN0YXRpb25hcnkgYW5kIGFyZSBub3QgZXhwZWN0ZWQgdG8gY2hhbmdlLiAgQnJhbmNoCiBoZWFkcyB3aWxsIGJlIHBhY2tlZCB3aXRoIHRoZSBpbml0aWFsIGBwYWNrLXJlZnMgLS1hbGxgLCBidXQKIG9ubHkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJhbmNoIGhlYWRzIHdpbGwgYmVjb21lIHVucGFja2VkLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcHJ1bmUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcHJ1bmUudHh0CmluZGV4IDgwZDAxYjAuLmJmODI0MTAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXBydW5lLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1wcnVuZS50eHQKQEAgLTU5LDcgKzU5LDcgQEAKIGAuZ2l0L29iamVjdHMvaW5mby9hbHRlcm5hdGVzYDoKIAogLS0tLS0tLS0tLS0tCi0kIGdpdCBwcnVuZSAkKGNkIC4uL2Fub3RoZXIgJiYgJChnaXQgcmV2LXBhcnNlIC0tYWxsKSkKKyQgZ2l0IHBydW5lICQoY2QgLi4vYW5vdGhlciAmJiBnaXQgcmV2LXBhcnNlIC0tYWxsKQogLS0tLS0tLS0tLS0tCiAKIE5vdGVzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wdWxsLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CmluZGV4IDI0YWIwN2EuLjZlZjhkNTkgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXB1bGwudHh0CkBAIC0zLDcgKzMsNyBAQAogCiBOQU1FCiAtLS0tCi1naXQtcHVsbCAtIEZldGNoIGZyb20gYW5kIG1lcmdlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoCitnaXQtcHVsbCAtIEZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaAogCiAKIFNZTk9QU0lTCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1wdXNoLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXB1c2gudHh0CmluZGV4IGViMjg4M2MuLmY3ZGZlNDggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXB1c2gudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXB1c2gudHh0CkBAIC0xMSw3ICsxMSw3IEBACiBbdmVyc2VdCiAnZ2l0IHB1c2gnIFstLWFsbCB8IC0tbWlycm9yIHwgLS10YWdzXSBbLS1mb2xsb3ctdGFnc10gWy1uIHwgLS1kcnktcnVuXSBbLS1yZWNlaXZlLXBhY2s9PGdpdC1yZWNlaXZlLXBhY2s+XQogCSAgIFstLXJlcG89PHJlcG9zaXRvcnk+XSBbLWYgfCAtLWZvcmNlXSBbLS1wcnVuZV0gWy12IHwgLS12ZXJib3NlXSBbLXUgfCAtLXNldC11cHN0cmVhbV0KLQkgICBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXQorCSAgIFstLW5vLXZlcmlmeV0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC0xMzYsNiArMTM2LDE1IEBACiAJbm90IGFuIGFuY2VzdG9yIG9mIHRoZSBsb2NhbCByZWYgdXNlZCB0byBvdmVyd3JpdGUgaXQuCiAJVGhpcyBmbGFnIGRpc2FibGVzIHRoZSBjaGVjay4gIFRoaXMgY2FuIGNhdXNlIHRoZQogCXJlbW90ZSByZXBvc2l0b3J5IHRvIGxvc2UgY29tbWl0czsgdXNlIGl0IHdpdGggY2FyZS4KKwlOb3RlIHRoYXQgYC0tZm9yY2VgIGFwcGxpZXMgdG8gYWxsIHRoZSByZWZzIHRoYXQgYXJlIHB1c2hlZCwKKwloZW5jZSB1c2luZyBpdCB3aXRoIGBwdXNoLmRlZmF1bHRgIHNldCB0byBgbWF0Y2hpbmdgIG9yIHdpdGgKKwltdWx0aXBsZSBwdXNoIGRlc3RpbmF0aW9ucyBjb25maWd1cmVkIHdpdGggYHJlbW90ZS4qLnB1c2hgCisJbWF5IG92ZXJ3cml0ZSByZWZzIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgYnJhbmNoIChpbmNsdWRpbmcKKwlsb2NhbCByZWZzIHRoYXQgYXJlIHN0cmljdGx5IGJlaGluZCB0aGVpciByZW1vdGUgY291bnRlcnBhcnQpLgorCVRvIGZvcmNlIGEgcHVzaCB0byBvbmx5IG9uZSBicmFuY2gsIHVzZSBhIGArYCBpbiBmcm9udCBvZiB0aGUKKwlyZWZzcGVjIHRvIHB1c2gJKGUuZyBgZ2l0IHB1c2ggb3JpZ2luICttYXN0ZXJgIHRvIGZvcmNlIGEgcHVzaAorCXRvIHRoZSBgbWFzdGVyYAlicmFuY2gpLiBTZWUgdGhlIGA8cmVmc3BlYz4uLi5gIHNlY3Rpb24gYWJvdmUKKwlmb3IgZGV0YWlscy4KIAogLS1yZXBvPTxyZXBvc2l0b3J5Pjo6CiAJVGhpcyBvcHRpb24gaXMgb25seSByZWxldmFudCBpZiBubyA8cmVwb3NpdG9yeT4gYXJndW1lbnQgaXMKQEAgLTE2Miw4ICsxNzEsNyBAQAogCWxpbmtnaXQ6Z2l0LXB1bGxbMV0gYW5kIG90aGVyIGNvbW1hbmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwKIAlzZWUgJ2JyYW5jaC48bmFtZT4ubWVyZ2UnIGluIGxpbmtnaXQ6Z2l0LWNvbmZpZ1sxXS4KIAotLS10aGluOjoKLS0tbm8tdGhpbjo6CistLVtuby1ddGhpbjo6CiAJVGhlc2Ugb3B0aW9ucyBhcmUgcGFzc2VkIHRvIGxpbmtnaXQ6Z2l0LXNlbmQtcGFja1sxXS4gQSB0aGluIHRyYW5zZmVyCiAJc2lnbmlmaWNhbnRseSByZWR1Y2VzIHRoZSBhbW91bnQgb2Ygc2VudCBkYXRhIHdoZW4gdGhlIHNlbmRlciBhbmQKIAlyZWNlaXZlciBzaGFyZSBtYW55IG9mIHRoZSBzYW1lIG9iamVjdHMgaW4gY29tbW9uLiBUaGUgZGVmYXVsdCBpcwpAQCAtMTk2LDYgKzIwNCwxMSBAQAogCWJlIHB1c2hlZC4gSWYgb24tZGVtYW5kIHdhcyBub3QgYWJsZSB0byBwdXNoIGFsbCBuZWNlc3NhcnkKIAlyZXZpc2lvbnMgaXQgd2lsbCBhbHNvIGJlIGFib3J0ZWQgYW5kIGV4aXQgd2l0aCBub24temVybyBzdGF0dXMuCiAKKy0tW25vLV12ZXJpZnk6OgorCVRvZ2dsZSB0aGUgcHJlLXB1c2ggaG9vayAoc2VlIGxpbmtnaXQ6Z2l0aG9va3NbNV0pLiAgVGhlCisJZGVmYXVsdCBpcyBcLS12ZXJpZnksIGdpdmluZyB0aGUgaG9vayBhIGNoYW5jZSB0byBwcmV2ZW50IHRoZQorCXB1c2guICBXaXRoIFwtLW5vLXZlcmlmeSwgdGhlIGhvb2sgaXMgYnlwYXNzZWQgY29tcGxldGVseS4KKwogCiBpbmNsdWRlOjp1cmxzLXJlbW90ZXMudHh0W10KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmViYXNlLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlYmFzZS50eHQKaW5kZXggYWNhODQwNS4uNmIyZTFjOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmViYXNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZWJhc2UudHh0CkBAIC0yMDgsNiArMjA4LDkgQEAKIHJlYmFzZS5hdXRvc3F1YXNoOjoKIAlJZiBzZXQgdG8gdHJ1ZSBlbmFibGUgJy0tYXV0b3NxdWFzaCcgb3B0aW9uIGJ5IGRlZmF1bHQuCiAKK3JlYmFzZS5hdXRvc3Rhc2g6OgorCUlmIHNldCB0byB0cnVlIGVuYWJsZSAnLS1hdXRvc3Rhc2gnIG9wdGlvbiBieSBkZWZhdWx0LgorCiBPUFRJT05TCiAtLS0tLS0tCiAtLW9udG8gPG5ld2Jhc2U+OjoKQEAgLTM4Niw3ICszODksOSBAQAogCXRoZSBzYW1lIC4uLiwgYXV0b21hdGljYWxseSBtb2RpZnkgdGhlIHRvZG8gbGlzdCBvZiByZWJhc2UgLWkKIAlzbyB0aGF0IHRoZSBjb21taXQgbWFya2VkIGZvciBzcXVhc2hpbmcgY29tZXMgcmlnaHQgYWZ0ZXIgdGhlCiAJY29tbWl0IHRvIGJlIG1vZGlmaWVkLCBhbmQgY2hhbmdlIHRoZSBhY3Rpb24gb2YgdGhlIG1vdmVkCi0JY29tbWl0IGZyb20gYHBpY2tgIHRvIGBzcXVhc2hgIChvciBgZml4dXBgKS4KKwljb21taXQgZnJvbSBgcGlja2AgdG8gYHNxdWFzaGAgKG9yIGBmaXh1cGApLiAgSWdub3JlcyBzdWJzZXF1ZW50CisJImZpeHVwISAiIG9yICJzcXVhc2ghICIgYWZ0ZXIgdGhlIGZpcnN0LCBpbiBjYXNlIHlvdSByZWZlcnJlZCB0byBhbgorCWVhcmxpZXIgZml4dXAvc3F1YXNoIHdpdGggYGdpdCBjb21taXQgLS1maXh1cC8tLXNxdWFzaGAuCiArCiBUaGlzIG9wdGlvbiBpcyBvbmx5IHZhbGlkIHdoZW4gdGhlICctLWludGVyYWN0aXZlJyBvcHRpb24gaXMgdXNlZC4KICsKQEAgLTM5NCw2ICszOTksMTMgQEAKIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgYHJlYmFzZS5hdXRvc3F1YXNoYCwgdGhpcyBvcHRpb24gY2FuIGJlCiB1c2VkIHRvIG92ZXJyaWRlIGFuZCBkaXNhYmxlIHRoaXMgc2V0dGluZy4KIAorLS1bbm8tXWF1dG9zdGFzaDo6CisJQXV0b21hdGljYWxseSBjcmVhdGUgYSB0ZW1wb3Jhcnkgc3Rhc2ggYmVmb3JlIHRoZSBvcGVyYXRpb24KKwliZWdpbnMsIGFuZCBhcHBseSBpdCBhZnRlciB0aGUgb3BlcmF0aW9uIGVuZHMuICBUaGlzIG1lYW5zCisJdGhhdCB5b3UgY2FuIHJ1biByZWJhc2Ugb24gYSBkaXJ0eSB3b3JrdHJlZS4gIEhvd2V2ZXIsIHVzZQorCXdpdGggY2FyZTogdGhlIGZpbmFsIHN0YXNoIGFwcGxpY2F0aW9uIGFmdGVyIGEgc3VjY2Vzc2Z1bAorCXJlYmFzZSBtaWdodCByZXN1bHQgaW4gbm9uLXRyaXZpYWwgY29uZmxpY3RzLgorCiAtLW5vLWZmOjoKIAlXaXRoIC0taW50ZXJhY3RpdmUsIGNoZXJyeS1waWNrIGFsbCByZWJhc2VkIGNvbW1pdHMgaW5zdGVhZCBvZgogCWZhc3QtZm9yd2FyZGluZyBvdmVyIHRoZSB1bmNoYW5nZWQgb25lcy4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmVmbG9nLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJlZmxvZy50eHQKaW5kZXggZmI4Njk3ZS4uNzA3OTFiOSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmVmbG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZWZsb2cudHh0CkBAIC02NywxNCArNjcsMTkgQEAKIC0tZXhwaXJlPTx0aW1lPjo6CiAJRW50cmllcyBvbGRlciB0aGFuIHRoaXMgdGltZSBhcmUgcHJ1bmVkLiAgV2l0aG91dCB0aGUKIAlvcHRpb24gaXQgaXMgdGFrZW4gZnJvbSBjb25maWd1cmF0aW9uIGBnYy5yZWZsb2dFeHBpcmVgLAotCXdoaWNoIGluIHR1cm4gZGVmYXVsdHMgdG8gOTAgZGF5cy4KKwl3aGljaCBpbiB0dXJuIGRlZmF1bHRzIHRvIDkwIGRheXMuICAtLWV4cGlyZT1hbGwgcHJ1bmVzCisJZW50cmllcyByZWdhcmRsZXNzIG9mIHRoZWlyIGFnZTsgLS1leHBpcmU9bmV2ZXIgdHVybnMgb2ZmCisJcHJ1bmluZyBvZiByZWFjaGFibGUgZW50cmllcyAoYnV0IHNlZSAtLWV4cGlyZS11bnJlYWNoYWJsZSkuCiAKIC0tZXhwaXJlLXVucmVhY2hhYmxlPTx0aW1lPjo6CiAJRW50cmllcyBvbGRlciB0aGFuIHRoaXMgdGltZSBhbmQgbm90IHJlYWNoYWJsZSBmcm9tCiAJdGhlIGN1cnJlbnQgdGlwIG9mIHRoZSBicmFuY2ggYXJlIHBydW5lZC4gIFdpdGhvdXQgdGhlCiAJb3B0aW9uIGl0IGlzIHRha2VuIGZyb20gY29uZmlndXJhdGlvbgogCWBnYy5yZWZsb2dFeHBpcmVVbnJlYWNoYWJsZWAsIHdoaWNoIGluIHR1cm4gZGVmYXVsdHMgdG8KLQkzMCBkYXlzLgorCTMwIGRheXMuICAtLWV4cGlyZS11bnJlYWNoYWJsZT1hbGwgcHJ1bmVzIHVucmVhY2hhYmxlCisJZW50cmllcyByZWdhcmRsZXNzIG9mIHRoZWlyIGFnZTsgLS1leHBpcmUtdW5yZWFjaGFibGU9bmV2ZXIKKwl0dXJucyBvZmYgZWFybHkgcHJ1bmluZyBvZiB1bnJlYWNoYWJsZSBlbnRyaWVzIChidXQgc2VlCisJLS1leHBpcmUpLgogCiAtLWFsbDo6CiAJSW5zdGVhZCBvZiBsaXN0aW5nIDxyZWZzPiBleHBsaWNpdGx5LCBwcnVuZSBhbGwgcmVmcy4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZW1vdGUudHh0CmluZGV4IDdhNmYzNTQuLjljM2UzYmYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJlbW90ZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtcmVtb3RlLnR4dApAQCAtMTAsNyArMTAsNyBAQAogLS0tLS0tLS0KIFt2ZXJzZV0KICdnaXQgcmVtb3RlJyBbLXYgfCAtLXZlcmJvc2VdCi0nZ2l0IHJlbW90ZSBhZGQnIFstdCA8YnJhbmNoPl0gWy1tIDxtYXN0ZXI+XSBbLWZdIFstLXRhZ3N8LS1uby10YWdzXSBbLS1taXJyb3I9PGZldGNofHB1c2g+XSA8bmFtZT4gPHVybD4KKydnaXQgcmVtb3RlIGFkZCcgWy10IDxicmFuY2g+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tW25vLV10YWdzXSBbLS1taXJyb3I9PGZldGNofHB1c2g+XSA8bmFtZT4gPHVybD4KICdnaXQgcmVtb3RlIHJlbmFtZScgPG9sZD4gPG5ldz4KICdnaXQgcmVtb3RlIHJlbW92ZScgPG5hbWU+CiAnZ2l0IHJlbW90ZSBzZXQtaGVhZCcgPG5hbWU+ICgtYSB8IC1kIHwgPGJyYW5jaD4pCkBAIC0xODcsMTggKzE4NywyNSBAQAogJCBnaXQgcmVtb3RlCiBvcmlnaW4KICQgZ2l0IGJyYW5jaCAtcgotb3JpZ2luL21hc3RlcgotJCBnaXQgcmVtb3RlIGFkZCBsaW51eC1uZnMgZ2l0Oi8vbGludXgtbmZzLm9yZy9wdWIvbGludXgvbmZzLTIuNi5naXQKKyAgb3JpZ2luL0hFQUQgLT4gb3JpZ2luL21hc3RlcgorICBvcmlnaW4vbWFzdGVyCiskIGdpdCByZW1vdGUgYWRkIHN0YWdpbmcgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvLi4uL2dyZWdraC9zdGFnaW5nLmdpdAogJCBnaXQgcmVtb3RlCi1saW51eC1uZnMKIG9yaWdpbgotJCBnaXQgZmV0Y2gKLSogcmVmcy9yZW1vdGVzL2xpbnV4LW5mcy9tYXN0ZXI6IHN0b3JpbmcgYnJhbmNoICdtYXN0ZXInIC4uLgotICBjb21taXQ6IGJmODFiNDYKK3N0YWdpbmcKKyQgZ2l0IGZldGNoIHN0YWdpbmcKKy4uLgorRnJvbSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZ3JlZ2toL3N0YWdpbmcKKyAqIFtuZXcgYnJhbmNoXSAgICAgIG1hc3RlciAgICAgLT4gc3RhZ2luZy9tYXN0ZXIKKyAqIFtuZXcgYnJhbmNoXSAgICAgIHN0YWdpbmctbGludXMgLT4gc3RhZ2luZy9zdGFnaW5nLWxpbnVzCisgKiBbbmV3IGJyYW5jaF0gICAgICBzdGFnaW5nLW5leHQgLT4gc3RhZ2luZy9zdGFnaW5nLW5leHQKICQgZ2l0IGJyYW5jaCAtcgotb3JpZ2luL21hc3RlcgotbGludXgtbmZzL21hc3RlcgotJCBnaXQgY2hlY2tvdXQgLWIgbmZzIGxpbnV4LW5mcy9tYXN0ZXIKKyAgb3JpZ2luL0hFQUQgLT4gb3JpZ2luL21hc3RlcgorICBvcmlnaW4vbWFzdGVyCisgIHN0YWdpbmcvbWFzdGVyCisgIHN0YWdpbmcvc3RhZ2luZy1saW51cworICBzdGFnaW5nL3N0YWdpbmctbmV4dAorJCBnaXQgY2hlY2tvdXQgLWIgc3RhZ2luZyBzdGFnaW5nL21hc3RlcgogLi4uCiAtLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmVzZXQudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmVzZXQudHh0CmluZGV4IGE0MDRiNDcuLmY0NDVjYjMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJlc2V0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXNldC50eHQKQEAgLTksNyArOSw3IEBACiAtLS0tLS0tLQogW3ZlcnNlXQogJ2dpdCByZXNldCcgWy1xXSBbPHRyZWUtaXNoPl0gWy0tXSA8cGF0aHM+Li4uCi0nZ2l0IHJlc2V0JyAoLS1wYXRjaCB8IC1wKSBbPHRyZWUtc2g+XSBbLS1dIFs8cGF0aHM+Li4uXQorJ2dpdCByZXNldCcgKC0tcGF0Y2ggfCAtcCkgWzx0cmVlLWlzaD5dIFstLV0gWzxwYXRocz4uLi5dCiAnZ2l0IHJlc2V0JyBbLS1zb2Z0IHwgLS1taXhlZCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxjb21taXQ+XQogCiBERVNDUklQVElPTgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmV2LWxpc3QudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmV2LWxpc3QudHh0CmluZGV4IDY1YWMyN2UuLjA0NWIzN2IgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXJldi1saXN0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtbGlzdC50eHQKQEAgLTQwLDcgKzQwLDcgQEAKIAkgICAgIFsgXC0tcmlnaHQtb25seSBdCiAJICAgICBbIFwtLWNoZXJyeS1tYXJrIF0KIAkgICAgIFsgXC0tY2hlcnJ5LXBpY2sgXQotCSAgICAgWyBcLS1lbmNvZGluZ1s9PGVuY29kaW5nPl0gXQorCSAgICAgWyBcLS1lbmNvZGluZz08ZW5jb2Rpbmc+IF0KIAkgICAgIFsgXC0tKGF1dGhvcnxjb21taXR0ZXJ8Z3JlcCk9PHBhdHRlcm4+IF0KIAkgICAgIFsgXC0tcmVnZXhwLWlnbm9yZS1jYXNlIHwgLWkgXQogCSAgICAgWyBcLS1leHRlbmRlZC1yZWdleHAgfCAtRSBdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtcGFyc2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtcmV2LXBhcnNlLnR4dAppbmRleCA5NDdkNjJmLi4yYjEyNmMwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1yZXYtcGFyc2UudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXJldi1wYXJzZS50eHQKQEAgLTU5LDYgKzU5LDIyIEBACiAJSWYgdGhlcmUgaXMgbm8gcGFyYW1ldGVyIGdpdmVuIGJ5IHRoZSB1c2VyLCB1c2UgYDxhcmc+YAogCWluc3RlYWQuCiAKKy0tcHJlZml4IDxhcmc+OjoKKwlCZWhhdmUgYXMgaWYgJ2dpdCByZXYtcGFyc2UnIHdhcyBpbnZva2VkIGZyb20gdGhlIGA8YXJnPmAKKwlzdWJkaXJlY3Rvcnkgb2YgdGhlIHdvcmtpbmcgdHJlZS4gIEFueSByZWxhdGl2ZSBmaWxlbmFtZXMgYXJlCisJcmVzb2x2ZWQgYXMgaWYgdGhleSBhcmUgcHJlZml4ZWQgYnkgYDxhcmc+YCBhbmQgd2lsbCBiZSBwcmludGVkCisJaW4gdGhhdCBmb3JtLgorKworVGhpcyBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGFyZ3VtZW50cyB0byBhIGNvbW1hbmQgcnVuIGluIGEgc3ViZGlyZWN0b3J5CitzbyB0aGF0IHRoZXkgY2FuIHN0aWxsIGJlIHVzZWQgYWZ0ZXIgbW92aW5nIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlCityZXBvc2l0b3J5LiAgRm9yIGV4YW1wbGU6CisrCistLS0tCitwcmVmaXg9JChnaXQgcmV2LXBhcnNlIC0tc2hvdy1wcmVmaXgpCitjZCAiJChnaXQgcmV2LXBhcnNlIC0tc2hvdy10b3BsZXZlbCkiCitldmFsICJzZXQgLS0gJChnaXQgcmV2LXBhcnNlIC0tc3EgLS1wcmVmaXggIiRwcmVmaXgiICIkQCIpIgorLS0tLQorCiAtLXZlcmlmeTo6CiAJVmVyaWZ5IHRoYXQgZXhhY3RseSBvbmUgcGFyYW1ldGVyIGlzIHByb3ZpZGVkLCBhbmQgdGhhdCBpdAogCWNhbiBiZSB0dXJuZWQgaW50byBhIHJhdyAyMC1ieXRlIFNIQS0xIHRoYXQgY2FuIGJlIHVzZWQgdG8KQEAgLTY3LDcgKzgzLDcgQEAKICsKIElmIHlvdSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvdXRwdXQgYWN0dWFsbHkgbmFtZXMgYW4gb2JqZWN0IGluCiB5b3VyIG9iamVjdCBkYXRhYmFzZSBhbmQvb3IgY2FuIGJlIHVzZWQgYXMgYSBzcGVjaWZpYyB0eXBlIG9mIG9iamVjdAoteW91IHJlcXVpcmUsIHlvdSBjYW4gYWRkICJee3R5cGV9IiBwZWVsaW5nIG9wZXJhdG9yIHRvIHRoZSBwYXJtZXRlci4KK3lvdSByZXF1aXJlLCB5b3UgY2FuIGFkZCAiXnt0eXBlfSIgcGVlbGluZyBvcGVyYXRvciB0byB0aGUgcGFyYW1ldGVyLgogRm9yIGV4YW1wbGUsIGBnaXQgcmV2LXBhcnNlICIkVkFSXntjb21taXR9ImAgd2lsbCBtYWtlIHN1cmUgYCRWQVJgCiBuYW1lcyBhbiBleGlzdGluZyBvYmplY3QgdGhhdCBpcyBhIGNvbW1pdC1pc2ggKGkuZS4gYSBjb21taXQsIG9yIGFuCiBhbm5vdGF0ZWQgdGFnIHRoYXQgcG9pbnRzIGF0IGEgY29tbWl0KS4gIFRvIG1ha2Ugc3VyZSB0aGF0IGAkVkFSYApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtcmV2ZXJ0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXJldmVydC50eHQKaW5kZXggNzAxNTJlOC4uZjc5YzlkOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXQtcmV2ZXJ0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1yZXZlcnQudHh0CkBAIC04LDcgKzgsNyBAQAogU1lOT1BTSVMKIC0tLS0tLS0tCiBbdmVyc2VdCi0nZ2l0IHJldmVydCcgWy0tZWRpdCB8IC0tbm8tZWRpdF0gWy1uXSBbLW0gcGFyZW50LW51bWJlcl0gWy1zXSA8Y29tbWl0Pi4uLgorJ2dpdCByZXZlcnQnIFstLVtuby1dZWRpdF0gWy1uXSBbLW0gcGFyZW50LW51bWJlcl0gWy1zXSA8Y29tbWl0Pi4uLgogJ2dpdCByZXZlcnQnIC0tY29udGludWUKICdnaXQgcmV2ZXJ0JyAtLXF1aXQKICdnaXQgcmV2ZXJ0JyAtLWFib3J0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zZW5kLWVtYWlsLnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LXNlbmQtZW1haWwudHh0CmluZGV4IDQwYTlhOWEuLmYwZTU3YTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXNlbmQtZW1haWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXNlbmQtZW1haWwudHh0CkBAIC0xOTgsNiArMTk4LDEyIEBACiAtLXNtdHAtc3NsOjoKIAlMZWdhY3kgYWxpYXMgZm9yICctLXNtdHAtZW5jcnlwdGlvbiBzc2wnLgogCistLXNtdHAtc3NsLWNlcnQtcGF0aDo6CisJUGF0aCB0byBjYS1jZXJ0aWZpY2F0ZXMgKGVpdGhlciBhIGRpcmVjdG9yeSBvciBhIHNpbmdsZSBmaWxlKS4KKwlTZXQgaXQgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uLgorCURlZmF1bHRzIHRvIHRoZSB2YWx1ZSBzZXQgdG8gdGhlICdzZW5kZW1haWwuc210cHNzbGNlcnRwYXRoJworCWNvbmZpZ3VyYXRpb24gdmFyaWFibGUsIGlmIHNldCwgb3IgYC9ldGMvc3NsL2NlcnRzYCBvdGhlcndpc2UuCisKIC0tc210cC11c2VyPTx1c2VyPjo6CiAJVXNlcm5hbWUgZm9yIFNNVFAtQVVUSC4gRGVmYXVsdCBpcyB0aGUgdmFsdWUgb2YgJ3NlbmRlbWFpbC5zbXRwdXNlcic7CiAJaWYgYSB1c2VybmFtZSBpcyBub3Qgc3BlY2lmaWVkICh3aXRoICctLXNtdHAtdXNlcicgb3IgJ3NlbmRlbWFpbC5zbXRwdXNlcicpLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtc2hvdy1yZWYudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc2hvdy1yZWYudHh0CmluZGV4IGRlNGQzNTIuLmIwYTMwOWIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXNob3ctcmVmLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LXJlZi50eHQKQEAgLTIxLDYgKzIxLDggQEAKIGRlcmVmZXJlbmNlZCBpbnRvIG9iamVjdCBJRHMuIEFkZGl0aW9uYWxseSwgaXQgY2FuIGJlIHVzZWQgdG8gdGVzdCB3aGV0aGVyIGEKIHBhcnRpY3VsYXIgcmVmIGV4aXN0cy4KIAorQnkgZGVmYXVsdCwgc2hvd3MgdGhlIHRhZ3MsIGhlYWRzLCBhbmQgcmVtb3RlIHJlZnMuCisKIFRoZSAtLWV4Y2x1ZGUtZXhpc3RpbmcgZm9ybSBpcyBhIGZpbHRlciB0aGF0IGRvZXMgdGhlIGludmVyc2UsIGl0IHNob3dzIHRoZQogcmVmcyBmcm9tIHN0ZGluIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGxvY2FsIHJlcG9zaXRvcnkuCiAKQEAgLTMyLDE0ICszNCwxNCBAQAogCiAtLWhlYWQ6OgogCi0JU2hvdyB0aGUgSEVBRCByZWZlcmVuY2UuCisJU2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgbm9ybWFsbHkgYmUgZmlsdGVyZWQgb3V0LgogCiAtLXRhZ3M6OgogLS1oZWFkczo6CiAKLQlMaW1pdCB0byBvbmx5ICJyZWZzL2hlYWRzIiBhbmQgInJlZnMvdGFncyIsIHJlc3BlY3RpdmVseS4gIFRoZXNlCi0Jb3B0aW9ucyBhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZTsgd2hlbiBnaXZlbiBib3RoLCByZWZlcmVuY2VzIHN0b3JlZAotCWluICJyZWZzL2hlYWRzIiBhbmQgInJlZnMvdGFncyIgYXJlIGRpc3BsYXllZC4KKwlMaW1pdCB0byAicmVmcy9oZWFkcyIgYW5kICJyZWZzL3RhZ3MiLCByZXNwZWN0aXZlbHkuICBUaGVzZSBvcHRpb25zCisJYXJlIG5vdCBtdXR1YWxseSBleGNsdXNpdmU7IHdoZW4gZ2l2ZW4gYm90aCwgcmVmZXJlbmNlcyBzdG9yZWQgaW4KKwkicmVmcy9oZWFkcyIgYW5kICJyZWZzL3RhZ3MiIGFyZSBkaXNwbGF5ZWQuCiAKIC1kOjoKIC0tZGVyZWZlcmVuY2U6OgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtc2hvdy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LnR4dAppbmRleCBhZTRlZGNjLi40ZTYxN2U2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1zaG93LnR4dApAQCAtNDUsNiArNDUsMTUgQEAKIGluY2x1ZGU6OnByZXR0eS1mb3JtYXRzLnR4dFtdCiAKIAorQ09NTU9OIERJRkYgT1BUSU9OUworLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6Z2l0LWxvZzogMQoraW5jbHVkZTo6ZGlmZi1vcHRpb25zLnR4dFtdCisKK2luY2x1ZGU6OmRpZmYtZ2VuZXJhdGUtcGF0Y2gudHh0W10KKworCiBFWEFNUExFUwogLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtc3Rhc2gudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc3Rhc2gudHh0CmluZGV4IDcxMWZmZTEuLmRiN2U4MDMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXN0YXNoLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC1zdGFzaC50eHQKQEAgLTEzLDEwICsxMywxMSBAQAogJ2dpdCBzdGFzaCcgZHJvcCBbLXF8LS1xdWlldF0gWzxzdGFzaD5dCiAnZ2l0IHN0YXNoJyAoIHBvcCB8IGFwcGx5ICkgWy0taW5kZXhdIFstcXwtLXF1aWV0XSBbPHN0YXNoPl0KICdnaXQgc3Rhc2gnIGJyYW5jaCA8YnJhbmNobmFtZT4gWzxzdGFzaD5dCi0nZ2l0IHN0YXNoJyBbc2F2ZSBbLS1wYXRjaF0gWy1rfC0tW25vLV1rZWVwLWluZGV4XSBbLXF8LS1xdWlldF0KKydnaXQgc3Rhc2gnIFtzYXZlIFstcHwtLXBhdGNoXSBbLWt8LS1bbm8tXWtlZXAtaW5kZXhdIFstcXwtLXF1aWV0XQogCSAgICAgWy11fC0taW5jbHVkZS11bnRyYWNrZWRdIFstYXwtLWFsbF0gWzxtZXNzYWdlPl1dCiAnZ2l0IHN0YXNoJyBjbGVhcgotJ2dpdCBzdGFzaCcgY3JlYXRlCisnZ2l0IHN0YXNoJyBjcmVhdGUgWzxtZXNzYWdlPl0KKydnaXQgc3Rhc2gnIHN0b3JlIFstbXwtLW1lc3NhZ2UgPG1lc3NhZ2U+XSBbLXF8LS1xdWlldF0gPGNvbW1pdD4KIAogREVTQ1JJUFRJT04KIC0tLS0tLS0tLS0tCkBAIC0xNTEsNyArMTUyLDE1IEBACiAKIAlDcmVhdGUgYSBzdGFzaCAod2hpY2ggaXMgYSByZWd1bGFyIGNvbW1pdCBvYmplY3QpIGFuZCByZXR1cm4gaXRzCiAJb2JqZWN0IG5hbWUsIHdpdGhvdXQgc3RvcmluZyBpdCBhbnl3aGVyZSBpbiB0aGUgcmVmIG5hbWVzcGFjZS4KKwlUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWZ1bCBmb3Igc2NyaXB0cy4gIEl0IGlzIHByb2JhYmx5IG5vdAorCXRoZSBjb21tYW5kIHlvdSB3YW50IHRvIHVzZTsgc2VlICJzYXZlIiBhYm92ZS4KIAorc3RvcmU6OgorCisJU3RvcmUgYSBnaXZlbiBzdGFzaCBjcmVhdGVkIHZpYSAnZ2l0IHN0YXNoIGNyZWF0ZScgKHdoaWNoIGlzIGEKKwlkYW5nbGluZyBtZXJnZSBjb21taXQpIGluIHRoZSBzdGFzaCByZWYsIHVwZGF0aW5nIHRoZSBzdGFzaAorCXJlZmxvZy4gIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZnVsIGZvciBzY3JpcHRzLiAgSXQgaXMKKwlwcm9iYWJseSBub3QgdGhlIGNvbW1hbmQgeW91IHdhbnQgdG8gdXNlOyBzZWUgInNhdmUiIGFib3ZlLgogCiBESVNDVVNTSU9OCiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zdWJtb2R1bGUudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc3VibW9kdWxlLnR4dAppbmRleCA3NGQ1YmRjLi5iZmVmOGEwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1zdWJtb2R1bGUudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXN1Ym1vZHVsZS50eHQKQEAgLTEwLDEyICsxMCwxMiBAQAogLS0tLS0tLS0KIFt2ZXJzZV0KICdnaXQgc3VibW9kdWxlJyBbLS1xdWlldF0gYWRkIFstYiA8YnJhbmNoPl0gWy1mfC0tZm9yY2VdIFstLW5hbWUgPG5hbWU+XQotCSAgICAgIFstLXJlZmVyZW5jZSA8cmVwb3NpdG9yeT5dIFstLV0gPHJlcG9zaXRvcnk+IFs8cGF0aD5dCisJICAgICAgWy0tcmVmZXJlbmNlIDxyZXBvc2l0b3J5Pl0gWy0tZGVwdGggPGRlcHRoPl0gWy0tXSA8cmVwb3NpdG9yeT4gWzxwYXRoPl0KICdnaXQgc3VibW9kdWxlJyBbLS1xdWlldF0gc3RhdHVzIFstLWNhY2hlZF0gWy0tcmVjdXJzaXZlXSBbLS1dIFs8cGF0aD4uLi5dCiAnZ2l0IHN1Ym1vZHVsZScgWy0tcXVpZXRdIGluaXQgWy0tXSBbPHBhdGg+Li4uXQogJ2dpdCBzdWJtb2R1bGUnIFstLXF1aWV0XSBkZWluaXQgWy1mfC0tZm9yY2VdIFstLV0gPHBhdGg+Li4uCiAnZ2l0IHN1Ym1vZHVsZScgWy0tcXVpZXRdIHVwZGF0ZSBbLS1pbml0XSBbLS1yZW1vdGVdIFstTnwtLW5vLWZldGNoXQotCSAgICAgIFstZnwtLWZvcmNlXSBbLS1yZWJhc2VdIFstLXJlZmVyZW5jZSA8cmVwb3NpdG9yeT5dCisJICAgICAgWy1mfC0tZm9yY2VdIFstLXJlYmFzZV0gWy0tcmVmZXJlbmNlIDxyZXBvc2l0b3J5Pl0gWy0tZGVwdGggPGRlcHRoPl0KIAkgICAgICBbLS1tZXJnZV0gWy0tcmVjdXJzaXZlXSBbLS1dIFs8cGF0aD4uLi5dCiAnZ2l0IHN1Ym1vZHVsZScgWy0tcXVpZXRdIHN1bW1hcnkgWy0tY2FjaGVkfC0tZmlsZXNdIFsoLW58LS1zdW1tYXJ5LWxpbWl0KSA8bj5dCiAJICAgICAgW2NvbW1pdF0gWy0tXSBbPHBhdGg+Li4uXQpAQCAtNzcsNiArNzcsOCBAQAogdG8gZXhpc3QgaW4gdGhlIHN1cGVycHJvamVjdC4gSWYgPHBhdGg+IGlzIG5vdCBnaXZlbiwgdGhlCiAiaHVtYW5pc2giIHBhcnQgb2YgdGhlIHNvdXJjZSByZXBvc2l0b3J5IGlzIHVzZWQgKCJyZXBvIiBmb3IKICIvcGF0aC90by9yZXBvLmdpdCIgYW5kICJmb28iIGZvciAiaG9zdC54ejpmb28vLmdpdCIpLgorVGhlIDxwYXRoPiBpcyBhbHNvIHVzZWQgYXMgdGhlIHN1Ym1vZHVsZSdzIGxvZ2ljYWwgbmFtZSBpbiBpdHMKK2NvbmZpZ3VyYXRpb24gZW50cmllcyB1bmxlc3MgYC0tbmFtZWAgaXMgdXNlZCB0byBzcGVjaWZ5IGEgbG9naWNhbCBuYW1lLgogKwogPHJlcG9zaXRvcnk+IGlzIHRoZSBVUkwgb2YgdGhlIG5ldyBzdWJtb2R1bGUncyBvcmlnaW4gcmVwb3NpdG9yeS4KIFRoaXMgbWF5IGJlIGVpdGhlciBhbiBhYnNvbHV0ZSBVUkwsIG9yIChpZiBpdCBiZWdpbnMgd2l0aCAuLwpAQCAtMTI0LDggKzEyNiwxMCBAQAogdG9vIChhbmQgY2FuIGFsc28gcmVwb3J0IGNoYW5nZXMgdG8gYSBzdWJtb2R1bGUncyB3b3JrIHRyZWUpLgogCiBpbml0OjoKLQlJbml0aWFsaXplIHRoZSBzdWJtb2R1bGVzLCBpLmUuIHJlZ2lzdGVyIGVhY2ggc3VibW9kdWxlIG5hbWUKLQlhbmQgdXJsIGZvdW5kIGluIC5naXRtb2R1bGVzIGludG8gLmdpdC9jb25maWcuCisJSW5pdGlhbGl6ZSB0aGUgc3VibW9kdWxlcyByZWNvcmRlZCBpbiB0aGUgaW5kZXggKHdoaWNoIHdlcmUKKwlhZGRlZCBhbmQgY29tbWl0dGVkIGVsc2V3aGVyZSkgYnkgY29weWluZyBzdWJtb2R1bGUKKwluYW1lcyBhbmQgdXJscyBmcm9tIC5naXRtb2R1bGVzIHRvIC5naXQvY29uZmlnLgorCU9wdGlvbmFsIDxwYXRoPiBhcmd1bWVudHMgbGltaXQgd2hpY2ggc3VibW9kdWxlcyB3aWxsIGJlIGluaXRpYWxpemVkLgogCUl0IHdpbGwgYWxzbyBjb3B5IHRoZSB2YWx1ZSBvZiBgc3VibW9kdWxlLiRuYW1lLnVwZGF0ZWAgaW50bwogCS5naXQvY29uZmlnLgogCVRoZSBrZXkgdXNlZCBpbiAuZ2l0L2NvbmZpZyBpcyBgc3VibW9kdWxlLiRuYW1lLnVybGAuCkBAIC0xNTUsNyArMTU5LDkgQEAKIAlUaGlzIHdpbGwgbWFrZSB0aGUgc3VibW9kdWxlcyBIRUFEIGJlIGRldGFjaGVkIHVubGVzcyBgLS1yZWJhc2VgIG9yCiAJYC0tbWVyZ2VgIGlzIHNwZWNpZmllZCBvciB0aGUga2V5IGBzdWJtb2R1bGUuJG5hbWUudXBkYXRlYCBpcyBzZXQgdG8KIAlgcmViYXNlYCwgYG1lcmdlYCBvciBgbm9uZWAuIGBub25lYCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzcGVjaWZ5aW5nCi0JYC0tY2hlY2tvdXRgLgorCWAtLWNoZWNrb3V0YC4gU2V0dGluZyB0aGUga2V5IGBzdWJtb2R1bGUuJG5hbWUudXBkYXRlYCB0byBgIWNvbW1hbmRgCisJd2lsbCBjYXVzZSBgY29tbWFuZGAgdG8gYmUgcnVuLiBgY29tbWFuZGAgY2FuIGJlIGFueSBhcmJpdHJhcnkgc2hlbGwKKwljb21tYW5kIHRoYXQgdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQsIG5hbWVseSB0aGUgc2hhMSB0byB1cGRhdGUgdG8uCiArCiBJZiB0aGUgc3VibW9kdWxlIGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQsIGFuZCB5b3UganVzdCB3YW50IHRvIHVzZSB0aGUKIHNldHRpbmcgYXMgc3RvcmVkIGluIC5naXRtb2R1bGVzLCB5b3UgY2FuIGF1dG9tYXRpY2FsbHkgaW5pdGlhbGl6ZSB0aGUKQEAgLTI1OCw3ICsyNjQsNyBAQAogLS1yZW1vdGU6OgogCVRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIHRoZSB1cGRhdGUgY29tbWFuZC4gIEluc3RlYWQgb2YgdXNpbmcKIAl0aGUgc3VwZXJwcm9qZWN0J3MgcmVjb3JkZWQgU0hBLTEgdG8gdXBkYXRlIHRoZSBzdWJtb2R1bGUsIHVzZSB0aGUKLQlzdGF0dXMgb2YgdGhlIHN1Ym1vZHVsZSdzIHJlbW90ZSB0cmFja2luZyBicmFuY2guICBUaGUgcmVtb3RlIHVzZWQKKwlzdGF0dXMgb2YgdGhlIHN1Ym1vZHVsZSdzIHJlbW90ZS10cmFja2luZyBicmFuY2guICBUaGUgcmVtb3RlIHVzZWQKIAlpcyBicmFuY2gncyByZW1vdGUgKGBicmFuY2guPG5hbWU+LnJlbW90ZWApLCBkZWZhdWx0aW5nIHRvIGBvcmlnaW5gLgogCVRoZSByZW1vdGUgYnJhbmNoIHVzZWQgZGVmYXVsdHMgdG8gYG1hc3RlcmAsIGJ1dCB0aGUgYnJhbmNoIG5hbWUgbWF5CiAJYmUgb3ZlcnJpZGRlbiBieSBzZXR0aW5nIHRoZSBgc3VibW9kdWxlLjxuYW1lPi5icmFuY2hgIG9wdGlvbiBpbgpAQCAtMzI0LDYgKzMzMCwxMiBAQAogCW9ubHkgaW4gdGhlIHN1Ym1vZHVsZXMgb2YgdGhlIGN1cnJlbnQgcmVwbywgYnV0IGFsc28KIAlpbiBhbnkgbmVzdGVkIHN1Ym1vZHVsZXMgaW5zaWRlIHRob3NlIHN1Ym1vZHVsZXMgKGFuZCBzbyBvbikuCiAKKy0tZGVwdGg6OgorCVRoaXMgb3B0aW9uIGlzIHZhbGlkIGZvciBhZGQgYW5kIHVwZGF0ZSBjb21tYW5kcy4gQ3JlYXRlIGEgJ3NoYWxsb3cnCisJY2xvbmUgd2l0aCBhIGhpc3RvcnkgdHJ1bmNhdGVkIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHJldmlzaW9ucy4KKwlTZWUgbGlua2dpdDpnaXQtY2xvbmVbMV0KKworCiA8cGF0aD4uLi46OgogCVBhdGhzIHRvIHN1Ym1vZHVsZShzKS4gV2hlbiBzcGVjaWZpZWQgdGhpcyB3aWxsIHJlc3RyaWN0IHRoZSBjb21tYW5kCiAJdG8gb25seSBvcGVyYXRlIG9uIHRoZSBzdWJtb2R1bGVzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgcGF0aHMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC1zdm4udHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtc3ZuLnR4dAppbmRleCA3NzA2ZDQxLi40ZGQzYmNiIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC1zdm4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXN2bi50eHQKQEAgLTg1LDYgKzg1LDEwIEBACiAJV2hlbiBwYXNzZWQgdG8gJ2luaXQnIG9yICdjbG9uZScgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbAogCWJlIHByZXNlcnZlZCBhcyBhIGNvbmZpZyBrZXkuICBTZWUgJ2ZldGNoJyBmb3IgYSBkZXNjcmlwdGlvbgogCW9mICctLWlnbm9yZS1wYXRocycuCistLWluY2x1ZGUtcGF0aHM9PHJlZ2V4Pjs7CisJV2hlbiBwYXNzZWQgdG8gJ2luaXQnIG9yICdjbG9uZScgdGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbAorCWJlIHByZXNlcnZlZCBhcyBhIGNvbmZpZyBrZXkuICBTZWUgJ2ZldGNoJyBmb3IgYSBkZXNjcmlwdGlvbgorCW9mICctLWluY2x1ZGUtcGF0aHMnLgogLS1uby1taW5pbWl6ZS11cmw7OwogCVdoZW4gdHJhY2tpbmcgbXVsdGlwbGUgZGlyZWN0b3JpZXMgKHVzaW5nIC0tc3RkbGF5b3V0LAogCS0tYnJhbmNoZXMsIG9yIC0tdGFncyBvcHRpb25zKSwgZ2l0IHN2biB3aWxsIGF0dGVtcHQgdG8gY29ubmVjdApAQCAtMTQ2LDYgKzE1MCwxNCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLQogCistLWluY2x1ZGUtcGF0aHM9PHJlZ2V4Pjs7CisJVGhpcyBhbGxvd3Mgb25lIHRvIHNwZWNpZnkgYSBQZXJsIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IHdpbGwKKwljYXVzZSB0aGUgaW5jbHVzaW9uIG9mIG9ubHkgbWF0Y2hpbmcgcGF0aHMgZnJvbSBjaGVja291dCBmcm9tIFNWTi4KKwlUaGUgJy0taW5jbHVkZS1wYXRocycgb3B0aW9uIHNob3VsZCBtYXRjaCBmb3IgZXZlcnkgJ2ZldGNoJworCShpbmNsdWRpbmcgYXV0b21hdGljIGZldGNoZXMgZHVlIHRvICdjbG9uZScsICdkY29tbWl0JywKKwkncmViYXNlJywgZXRjKSBvbiBhIGdpdmVuIHJlcG9zaXRvcnkuICctLWlnbm9yZS1wYXRocycgdGFrZXMKKwlwcmVjZWRlbmNlIG92ZXIgJy0taW5jbHVkZS1wYXRocycuCisKIC0tbG9nLXdpbmRvdy1zaXplPTxuPjs7CiAgICAgRmV0Y2ggPG4+IGxvZyBlbnRyaWVzIHBlciByZXF1ZXN0IHdoZW4gc2Nhbm5pbmcgU3VidmVyc2lvbiBoaXN0b3J5LgogICAgIFRoZSBkZWZhdWx0IGlzIDEwMC4gRm9yIHZlcnkgbGFyZ2UgU3VidmVyc2lvbiByZXBvc2l0b3JpZXMsIGxhcmdlcgpAQCAtMjQ0LDcgKzI1Niw3IEBACiAJRm9yIGVhY2ggcGF0Y2gsIG9uZSBtYXkgYW5zd2VyICJ5ZXMiIChhY2NlcHQgdGhpcyBwYXRjaCksICJubyIgKGRpc2NhcmQgdGhpcwogCXBhdGNoKSwgImFsbCIgKGFjY2VwdCBhbGwgcGF0Y2hlcyksIG9yICJxdWl0Ii4KIAkrCi0JJ2dpdCBzdm4gZGNvbW1pdCcgcmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbnN3ZXIgaWYgIm5vIiBvciAicXVpdCIsIHdpdGhvdXQKKyAgICAgICAnZ2l0IHN2biBkY29tbWl0JyByZXR1cm5zIGltbWVkaWF0ZWx5IGlmIGFuc3dlciBpcyAibm8iIG9yICJxdWl0Iiwgd2l0aG91dAogCWNvbW1pdHRpbmcgYW55dGhpbmcgdG8gU1ZOLgogCiAnYnJhbmNoJzo6CkBAIC0yNTksMTMgKzI3MSwxNSBAQAogCUNyZWF0ZSBhIHRhZyBieSB1c2luZyB0aGUgdGFnc19zdWJkaXIgaW5zdGVhZCBvZiB0aGUgYnJhbmNoZXNfc3ViZGlyCiAJc3BlY2lmaWVkIGR1cmluZyBnaXQgc3ZuIGluaXQuCiAKLS1kOzsKLS0tZGVzdGluYXRpb247OworLWQ8cGF0aD47OworLS1kZXN0aW5hdGlvbj08cGF0aD47OworCiAJSWYgbW9yZSB0aGFuIG9uZSAtLWJyYW5jaGVzIChvciAtLXRhZ3MpIG9wdGlvbiB3YXMgZ2l2ZW4gdG8gdGhlICdpbml0JwogCW9yICdjbG9uZScgY29tbWFuZCwgeW91IG11c3QgcHJvdmlkZSB0aGUgbG9jYXRpb24gb2YgdGhlIGJyYW5jaCAob3IKLQl0YWcpIHlvdSB3aXNoIHRvIGNyZWF0ZSBpbiB0aGUgU1ZOIHJlcG9zaXRvcnkuICBUaGUgdmFsdWUgb2YgdGhpcwotCW9wdGlvbiBtdXN0IG1hdGNoIG9uZSBvZiB0aGUgcGF0aHMgc3BlY2lmaWVkIGJ5IGEgLS1icmFuY2hlcyAob3IKLQktLXRhZ3MpIG9wdGlvbi4gIFlvdSBjYW4gc2VlIHRoZXNlIHBhdGhzIHdpdGggdGhlIGNvbW1hbmRzCisJdGFnKSB5b3Ugd2lzaCB0byBjcmVhdGUgaW4gdGhlIFNWTiByZXBvc2l0b3J5LiAgPHBhdGg+IHNwZWNpZmllcyB3aGljaAorCXBhdGggdG8gdXNlIHRvIGNyZWF0ZSB0aGUgYnJhbmNoIG9yIHRhZyBhbmQgc2hvdWxkIG1hdGNoIHRoZSBwYXR0ZXJuCisJb24gdGhlIGxlZnQtaGFuZCBzaWRlIG9mIG9uZSBvZiB0aGUgY29uZmlndXJlZCBicmFuY2hlcyBvciB0YWdzCisJcmVmc3BlY3MuICBZb3UgY2FuIHNlZSB0aGVzZSByZWZzcGVjcyB3aXRoIHRoZSBjb21tYW5kcwogKwogCWdpdCBjb25maWcgLS1nZXQtYWxsIHN2bi1yZW1vdGUuPG5hbWU+LmJyYW5jaGVzCiAJZ2l0IGNvbmZpZyAtLWdldC1hbGwgc3ZuLXJlbW90ZS48bmFtZT4udGFncwpAQCAtMjg2LDYgKzMwMCwxMSBAQAogCWdpdCBjb25maWcgLS1nZXQtYWxsIHN2bi1yZW1vdGUuPG5hbWU+LmNvbW1pdHVybAogKwogCistLXBhcmVudHM7OworCUNyZWF0ZSBwYXJlbnQgZm9sZGVycy4gVGhpcyBwYXJhbWV0ZXIgaXMgZXF1aXZhbGVudCB0byB0aGUgcGFyYW1ldGVyCisJLS1wYXJlbnRzIG9uIHN2biBjcCBjb21tYW5kcyBhbmQgaXMgdXNlZnVsIGZvciBub24tc3RhbmRhcmQgcmVwb3NpdG9yeQorCWxheW91dHMuCisKICd0YWcnOjoKIAlDcmVhdGUgYSB0YWcgaW4gdGhlIFNWTiByZXBvc2l0b3J5LiBUaGlzIGlzIGEgc2hvcnRoYW5kIGZvcgogCSdicmFuY2ggLXQnLgpAQCAtMTAyMCw2ICsxMDM5LDI1IEBACiAJdGFncyA9IHRhZ3MvezEuMCwyLjB9L3NyYzpyZWZzL3JlbW90ZXMvdGFncy8qCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorTXVsdGlwbGUgZmV0Y2gsIGJyYW5jaGVzLCBhbmQgdGFncyBrZXlzIGFyZSBzdXBwb3J0ZWQ6CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorW3N2bi1yZW1vdGUgIm1lc3N5LXJlcG8iXQorCXVybCA9IGh0dHA6Ly9zZXJ2ZXIub3JnL3N2bgorCWZldGNoID0gdHJ1bmsvcHJvamVjdC1hOnJlZnMvcmVtb3Rlcy9wcm9qZWN0LWEvdHJ1bmsKKwlmZXRjaCA9IGJyYW5jaGVzL2RlbW9zL2p1bmUtcHJvamVjdC1hLWRlbW86cmVmcy9yZW1vdGVzL3Byb2plY3QtYS9kZW1vcy9qdW5lLWRlbW8KKwlicmFuY2hlcyA9IGJyYW5jaGVzL3NlcnZlci8qOnJlZnMvcmVtb3Rlcy9wcm9qZWN0LWEvYnJhbmNoZXMvKgorCWJyYW5jaGVzID0gYnJhbmNoZXMvZGVtb3MvMjAxMS8qOnJlZnMvcmVtb3Rlcy9wcm9qZWN0LWEvMjAxMS1kZW1vcy8qCisJdGFncyA9IHRhZ3Mvc2VydmVyLyo6cmVmcy9yZW1vdGVzL3Byb2plY3QtYS90YWdzLyoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDcmVhdGluZyBhIGJyYW5jaCBpbiBzdWNoIGEgY29uZmlndXJhdGlvbiByZXF1aXJlcyBkaXNhbWJpZ3VhdGluZyB3aGljaAorbG9jYXRpb24gdG8gdXNlIHVzaW5nIHRoZSAtZCBvciAtLWRlc3RpbmF0aW9uIGZsYWc6CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJCBnaXQgc3ZuIGJyYW5jaCAtZCBicmFuY2hlcy9zZXJ2ZXIgcmVsZWFzZS0yLTMtMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIE5vdGUgdGhhdCBnaXQtc3ZuIGtlZXBzIHRyYWNrIG9mIHRoZSBoaWdoZXN0IHJldmlzaW9uIGluIHdoaWNoIGEgYnJhbmNoCiBvciB0YWcgaGFzIGFwcGVhcmVkLiBJZiB0aGUgc3Vic2V0IG9mIGJyYW5jaGVzIG9yIHRhZ3MgaXMgY2hhbmdlZCBhZnRlcgogZmV0Y2hpbmcsIHRoZW4gLmdpdC9zdm4vLm1ldGFkYXRhIG11c3QgYmUgbWFudWFsbHkgZWRpdGVkIHRvIHJlbW92ZSAob3IKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LXRhZy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdC10YWcudHh0CmluZGV4IDIyODk0Y2IuLmM0MThjNDQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXRhZy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQtdGFnLnR4dApAQCAtNDIsNiArNDIsMTcgQEAKIEdudVBHIGtleSBmb3Igc2lnbmluZy4gCVRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGBncGcucHJvZ3JhbWAKIGlzIHVzZWQgdG8gc3BlY2lmeSBjdXN0b20gR251UEcgYmluYXJ5LgogCitUYWcgb2JqZWN0cyAoY3JlYXRlZCB3aXRoIGAtYWAsIGBzYCwgb3IgYC11YCkgYXJlIGNhbGxlZCAiYW5ub3RhdGVkIgordGFnczsgdGhleSBjb250YWluIGEgY3JlYXRpb24gZGF0ZSwgdGhlIHRhZ2dlciBuYW1lIGFuZCBlLW1haWwsIGEKK3RhZ2dpbmcgbWVzc2FnZSwgYW5kIGFuIG9wdGlvbmFsIEdudVBHIHNpZ25hdHVyZS4gV2hlcmVhcyBhCisibGlnaHR3ZWlnaHQiIHRhZyBpcyBzaW1wbHkgYSBuYW1lIGZvciBhbiBvYmplY3QgKHVzdWFsbHkgYSBjb21taXQKK29iamVjdCkuCisKK0Fubm90YXRlZCB0YWdzIGFyZSBtZWFudCBmb3IgcmVsZWFzZSB3aGlsZSBsaWdodHdlaWdodCB0YWdzIGFyZSBtZWFudAorZm9yIHByaXZhdGUgb3IgdGVtcG9yYXJ5IG9iamVjdCBsYWJlbHMuIEZvciB0aGlzIHJlYXNvbiwgc29tZSBnaXQKK2NvbW1hbmRzIGZvciBuYW1pbmcgb2JqZWN0cyAobGlrZSBgZ2l0IGRlc2NyaWJlYCkgd2lsbCBpZ25vcmUKK2xpZ2h0d2VpZ2h0IHRhZ3MgYnkgZGVmYXVsdC4KKwogCiBPUFRJT05TCiAtLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdC11cGRhdGUtaW5kZXgudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtdXBkYXRlLWluZGV4LnR4dAppbmRleCA2NzBlOWZiLi5lMGE4NzAyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC11cGRhdGUtaW5kZXgudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0LXVwZGF0ZS1pbmRleC50eHQKQEAgLTE0LDggKzE0LDggQEAKIAkgICAgIFstLXJlZnJlc2hdIFstcV0gWy0tdW5tZXJnZWRdIFstLWlnbm9yZS1taXNzaW5nXQogCSAgICAgWygtLWNhY2hlaW5mbyA8bW9kZT4gPG9iamVjdD4gPGZpbGU+KS4uLl0KIAkgICAgIFstLWNobW9kPSgrfC0peF0KLQkgICAgIFstLWFzc3VtZS11bmNoYW5nZWQgfCAtLW5vLWFzc3VtZS11bmNoYW5nZWRdCi0JICAgICBbLS1za2lwLXdvcmt0cmVlIHwgLS1uby1za2lwLXdvcmt0cmVlXQorCSAgICAgWy0tW25vLV1hc3N1bWUtdW5jaGFuZ2VkXQorCSAgICAgWy0tW25vLV1za2lwLXdvcmt0cmVlXQogCSAgICAgWy0taWdub3JlLXN1Ym1vZHVsZXNdCiAJICAgICBbLS1yZWFsbHktcmVmcmVzaF0gWy0tdW5yZXNvbHZlXSBbLS1hZ2FpbiB8IC1nXQogCSAgICAgWy0taW5mby1vbmx5XSBbLS1pbmRleC1pbmZvXQpAQCAtNzcsOCArNzcsNyBAQAogLS1jaG1vZD0oK3wtKXg6OgogICAgICAgICBTZXQgdGhlIGV4ZWN1dGUgcGVybWlzc2lvbnMgb24gdGhlIHVwZGF0ZWQgZmlsZXMuCiAKLS0tYXNzdW1lLXVuY2hhbmdlZDo6Ci0tLW5vLWFzc3VtZS11bmNoYW5nZWQ6OgorLS1bbm8tXWFzc3VtZS11bmNoYW5nZWQ6OgogCVdoZW4gdGhlc2UgZmxhZ3MgYXJlIHNwZWNpZmllZCwgdGhlIG9iamVjdCBuYW1lcyByZWNvcmRlZAogCWZvciB0aGUgcGF0aHMgYXJlIG5vdCB1cGRhdGVkLiAgSW5zdGVhZCwgdGhlc2Ugb3B0aW9ucwogCXNldCBhbmQgdW5zZXQgdGhlICJhc3N1bWUgdW5jaGFuZ2VkIiBiaXQgZm9yIHRoZQpAQCAtMTAyLDggKzEwMSw3IEBACiAJTGlrZSAnLS1yZWZyZXNoJywgYnV0IGNoZWNrcyBzdGF0IGluZm9ybWF0aW9uIHVuY29uZGl0aW9uYWxseSwKIAl3aXRob3V0IHJlZ2FyZCB0byB0aGUgImFzc3VtZSB1bmNoYW5nZWQiIHNldHRpbmcuCiAKLS0tc2tpcC13b3JrdHJlZTo6Ci0tLW5vLXNraXAtd29ya3RyZWU6OgorLS1bbm8tXXNraXAtd29ya3RyZWU6OgogCVdoZW4gb25lIG9mIHRoZXNlIGZsYWdzIGlzIHNwZWNpZmllZCwgdGhlIG9iamVjdCBuYW1lIHJlY29yZGVkCiAJZm9yIHRoZSBwYXRocyBhcmUgbm90IHVwZGF0ZWQuIEluc3RlYWQsIHRoZXNlIG9wdGlvbnMKIAlzZXQgYW5kIHVuc2V0IHRoZSAic2tpcC13b3JrdHJlZSIgYml0IGZvciB0aGUgcGF0aHMuIFNlZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXQtd2ViLS1icm93c2UudHh0IGIvRG9jdW1lbnRhdGlvbi9naXQtd2ViLS1icm93c2UudHh0CmluZGV4IGJhNzljYjQuLjVhZWM0ZWMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0LXdlYi0tYnJvd3NlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdC13ZWItLWJyb3dzZS50eHQKQEAgLTM0LDYgKzM0LDcgQEAKICogZGlsbG8KICogb3BlbiAodGhpcyBpcyB0aGUgZGVmYXVsdCB1bmRlciBNYWMgT1MgWCBHVUkpCiAqIHN0YXJ0ICh0aGlzIGlzIHRoZSBkZWZhdWx0IHVuZGVyIE1pbkdXKQorKiBjeWdzdGFydCAodGhpcyBpcyB0aGUgZGVmYXVsdCB1bmRlciBDeWd3aW4pCiAKIEN1c3RvbSBjb21tYW5kcyBtYXkgYWxzbyBiZSBzcGVjaWZpZWQuCiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ2l0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0LnR4dAppbmRleCA4NDM4YzA3Li5kY2ExMWNjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9naXQudHh0CkBAIC00MywxMSArNDMsMjYgQEAKIGJyYW5jaCBvZiB0aGUgYGdpdC5naXRgIHJlcG9zaXRvcnkuCiBEb2N1bWVudGF0aW9uIGZvciBvbGRlciByZWxlYXNlcyBhcmUgYXZhaWxhYmxlIGhlcmU6CiAKLSogbGluazp2MS44LjIuMi9naXQuaHRtbFtkb2N1bWVudGF0aW9uIGZvciByZWxlYXNlIDEuOC4yLjJdCisqIGxpbms6djEuOC40L2dpdC5odG1sW2RvY3VtZW50YXRpb24gZm9yIHJlbGVhc2UgMS44LjRdCiAKICogcmVsZWFzZSBub3RlcyBmb3IKLSAgbGluazpSZWxOb3Rlcy8xLjguMi4yLnR4dFsxLjguMi4yXS4KLSAgbGluazpSZWxOb3Rlcy8xLjguMi4xLnR4dFsxLjguMi4xXS4KKyAgbGluazpSZWxOb3Rlcy8xLjguNC50eHRbMS44LjRdLgorCisqIGxpbms6djEuOC4zLjQvZ2l0Lmh0bWxbZG9jdW1lbnRhdGlvbiBmb3IgcmVsZWFzZSAxLjguMy40XQorCisqIHJlbGVhc2Ugbm90ZXMgZm9yCisgIGxpbms6UmVsTm90ZXMvMS44LjMuNC50eHRbMS44LjMuNF0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMy50eHRbMS44LjMuM10sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMi50eHRbMS44LjMuMl0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMuMS50eHRbMS44LjMuMV0sCisgIGxpbms6UmVsTm90ZXMvMS44LjMudHh0WzEuOC4zXS4KKworKiBsaW5rOnYxLjguMi4zL2dpdC5odG1sW2RvY3VtZW50YXRpb24gZm9yIHJlbGVhc2UgMS44LjIuM10KKworKiByZWxlYXNlIG5vdGVzIGZvcgorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjMudHh0WzEuOC4yLjNdLAorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjIudHh0WzEuOC4yLjJdLAorICBsaW5rOlJlbE5vdGVzLzEuOC4yLjEudHh0WzEuOC4yLjFdLAogICBsaW5rOlJlbE5vdGVzLzEuOC4yLnR4dFsxLjguMl0uCiAKICogbGluazp2MS44LjEuNi9naXQuaHRtbFtkb2N1bWVudGF0aW9uIGZvciByZWxlYXNlIDEuOC4xLjZdCkBAIC02NzYsOSArNjkxLDcgQEAKIAlUaGUgJy0tZ2l0LWRpcicgY29tbWFuZC1saW5lIG9wdGlvbiBhbHNvIHNldHMgdGhpcyB2YWx1ZS4KIAogJ0dJVF9XT1JLX1RSRUUnOjoKLQlTZXQgdGhlIHBhdGggdG8gdGhlIHdvcmtpbmcgdHJlZS4gIFRoZSB2YWx1ZSB3aWxsIG5vdCBiZQotCXVzZWQgaW4gY29tYmluYXRpb24gd2l0aCByZXBvc2l0b3JpZXMgZm91bmQgYXV0b21hdGljYWxseSBpbgotCWEgLmdpdCBkaXJlY3RvcnkgKGkuZS4gJEdJVF9ESVIgaXMgbm90IHNldCkuCisJU2V0IHRoZSBwYXRoIHRvIHRoZSByb290IG9mIHRoZSB3b3JraW5nIHRyZWUuCiAJVGhpcyBjYW4gYWxzbyBiZSBjb250cm9sbGVkIGJ5IHRoZSAnLS13b3JrLXRyZWUnIGNvbW1hbmQgbGluZQogCW9wdGlvbiBhbmQgdGhlIGNvcmUud29ya3RyZWUgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KIApAQCAtODEwLDggKzgyMyw5IEBACiAnR0lUX0ZMVVNIJzo6CiAJSWYgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gIjEiLCB0aGVuIGNvbW1hbmRzIHN1Y2gKIAlhcyAnZ2l0IGJsYW1lJyAoaW4gaW5jcmVtZW50YWwgbW9kZSksICdnaXQgcmV2LWxpc3QnLCAnZ2l0IGxvZycsCi0JYW5kICdnaXQgd2hhdGNoYW5nZWQnIHdpbGwgZm9yY2UgYSBmbHVzaCBvZiB0aGUgb3V0cHV0IHN0cmVhbQotCWFmdGVyIGVhY2ggY29tbWl0LW9yaWVudGVkIHJlY29yZCBoYXZlIGJlZW4gZmx1c2hlZC4gICBJZiB0aGlzCisJJ2dpdCBjaGVjay1hdHRyJywgJ2dpdCBjaGVjay1pZ25vcmUnLCBhbmQgJ2dpdCB3aGF0Y2hhbmdlZCcgd2lsbAorCWZvcmNlIGEgZmx1c2ggb2YgdGhlIG91dHB1dCBzdHJlYW0gYWZ0ZXIgZWFjaCByZWNvcmQgaGF2ZSBiZWVuCisJZmx1c2hlZC4gSWYgdGhpcwogCXZhcmlhYmxlIGlzIHNldCB0byAiMCIsIHRoZSBvdXRwdXQgb2YgdGhlc2UgY29tbWFuZHMgd2lsbCBiZSBkb25lCiAJdXNpbmcgY29tcGxldGVseSBidWZmZXJlZCBJL08uICAgSWYgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcwogCW5vdCBzZXQsIEdpdCB3aWxsIGNob29zZSBidWZmZXJlZCBvciByZWNvcmQtb3JpZW50ZWQgZmx1c2hpbmcKQEAgLTgzMSw2ICs4NDUsMTkgQEAKIAlhcyBhIGZpbGUgcGF0aCBhbmQgd2lsbCB0cnkgdG8gd3JpdGUgdGhlIHRyYWNlIG1lc3NhZ2VzCiAJaW50byBpdC4KIAorJ0dJVF9UUkFDRV9QQUNLX0FDQ0VTUyc6OgorCUlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIGEgcGF0aCwgYSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBhdAorCXRoZSBnaXZlbiBwYXRoIGxvZ2dpbmcgYWxsIGFjY2Vzc2VzIHRvIGFueSBwYWNrcy4gRm9yIGVhY2gKKwlhY2Nlc3MsIHRoZSBwYWNrIGZpbGUgbmFtZSBhbmQgYW4gb2Zmc2V0IGluIHRoZSBwYWNrIGlzCisJcmVjb3JkZWQuIFRoaXMgbWF5IGJlIGhlbHBmdWwgZm9yIHRyb3VibGVzaG9vdGluZyBzb21lCisJcGFjay1yZWxhdGVkIHBlcmZvcm1hbmNlIHByb2JsZW1zLgorCisnR0lUX1RSQUNFX1BBQ0tFVCc6OgorCUlmIHRoaXMgdmFyaWFibGUgaXMgc2V0LCBpdCBzaG93cyBhIHRyYWNlIG9mIGFsbCBwYWNrZXRzCisJY29taW5nIGluIG9yIG91dCBvZiBhIGdpdmVuIHByb2dyYW0uIFRoaXMgY2FuIGhlbHAgd2l0aAorCWRlYnVnZ2luZyBvYmplY3QgbmVnb3RpYXRpb24gb3Igb3RoZXIgcHJvdG9jb2wgaXNzdWVzLiBUcmFjaW5nCisJaXMgdHVybmVkIG9mZiBhdCBhIHBhY2tldCBzdGFydGluZyB3aXRoICJQQUNLIi4KKwogR0lUX0xJVEVSQUxfUEFUSFNQRUNTOjoKIAlTZXR0aW5nIHRoaXMgdmFyaWFibGUgdG8gYDFgIHdpbGwgY2F1c2UgR2l0IHRvIHRyZWF0IGFsbAogCXBhdGhzcGVjcyBsaXRlcmFsbHksIHJhdGhlciB0aGFuIGFzIGdsb2IgcGF0dGVybnMuIEZvciBleGFtcGxlLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRkaWZmY29yZS50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dAppbmRleCA1NjhkNzU3Li5jOGIzZTUxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdGRpZmZjb3JlLnR4dApAQCAtMjIyLDI2ICsyMjIsMzUgQEAKIGRpZmZjb3JlLXBpY2theGU6IEZvciBEZXRlY3RpbmcgQWRkaXRpb24vRGVsZXRpb24gb2YgU3BlY2lmaWVkIFN0cmluZwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRoaXMgdHJhbnNmb3JtYXRpb24gaXMgdXNlZCB0byBmaW5kIGZpbGVwYWlycyB0aGF0IHJlcHJlc2VudAotY2hhbmdlcyB0aGF0IHRvdWNoIGEgc3BlY2lmaWVkIHN0cmluZywgYW5kIGlzIGNvbnRyb2xsZWQgYnkgdGhlCi0tUyBvcHRpb24gYW5kIHRoZSBgLS1waWNrYXhlLWFsbGAgb3B0aW9uIHRvIHRoZSAnZ2l0IGRpZmYtKicKLWNvbW1hbmRzLgorVGhpcyB0cmFuc2Zvcm1hdGlvbiBsaW1pdHMgdGhlIHNldCBvZiBmaWxlcGFpcnMgdG8gdGhvc2UgdGhhdCBjaGFuZ2UKK3NwZWNpZmllZCBzdHJpbmdzIGJldHdlZW4gdGhlIHByZWltYWdlIGFuZCB0aGUgcG9zdGltYWdlIGluIGEgY2VydGFpbgord2F5LiAgLVM8YmxvY2sgb2YgdGV4dD4gYW5kIC1HPHJlZ3VsYXIgZXhwcmVzc2lvbj4gb3B0aW9ucyBhcmUgdXNlZCB0bworc3BlY2lmeSBkaWZmZXJlbnQgd2F5cyB0aGVzZSBzdHJpbmdzIGFyZSBzb3VnaHQuCiAKLVdoZW4gZGlmZmNvcmUtcGlja2F4ZSBpcyBpbiB1c2UsIGl0IGNoZWNrcyBpZiB0aGVyZSBhcmUKLWZpbGVwYWlycyB3aG9zZSAicmVzdWx0IiBzaWRlIGFuZCB3aG9zZSAib3JpZ2luIiBzaWRlIGhhdmUKLWRpZmZlcmVudCBudW1iZXIgb2Ygc3BlY2lmaWVkIHN0cmluZy4gIFN1Y2ggYSBmaWxlcGFpciByZXByZXNlbnRzCi0idGhlIHN0cmluZyBhcHBlYXJlZCBpbiB0aGlzIGNoYW5nZXNldCIuICBJdCBhbHNvIGNoZWNrcyBmb3IgdGhlCi1vcHBvc2l0ZSBjYXNlIHRoYXQgbG9zZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcuCisiLVM8YmxvY2sgb2YgdGV4dD4iIGRldGVjdHMgZmlsZXBhaXJzIHdob3NlIHByZWltYWdlIGFuZCBwb3N0aW1hZ2UKK2hhdmUgZGlmZmVyZW50IG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiB0aGUgc3BlY2lmaWVkIGJsb2NrIG9mIHRleHQuCitCeSBkZWZpbml0aW9uLCBpdCB3aWxsIG5vdCBkZXRlY3QgaW4tZmlsZSBtb3Zlcy4gIEFsc28sIHdoZW4gYQorY2hhbmdlc2V0IG1vdmVzIGEgZmlsZSB3aG9sZXNhbGUgd2l0aG91dCBhZmZlY3RpbmcgdGhlIGludGVyZXN0aW5nCitzdHJpbmcsIGRpZmZjb3JlLXJlbmFtZSBraWNrcyBpbiBhcyB1c3VhbCwgYW5kIGAtU2Agb21pdHMgdGhlIGZpbGVwYWlyCisoc2luY2UgdGhlIG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiB0aGF0IHN0cmluZyBkaWRuJ3QgY2hhbmdlIGluIHRoYXQKK3JlbmFtZS1kZXRlY3RlZCBmaWxlcGFpcikuICBXaGVuIHVzZWQgd2l0aCBgLS1waWNrYXhlLXJlZ2V4YCwgdHJlYXQKK3RoZSA8YmxvY2sgb2YgdGV4dD4gYXMgYW4gZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9uIHRvIG1hdGNoLAoraW5zdGVhZCBvZiBhIGxpdGVyYWwgc3RyaW5nLgogCi1XaGVuIGAtLXBpY2theGUtYWxsYCBpcyBub3QgaW4gZWZmZWN0LCBkaWZmY29yZS1waWNrYXhlIGxlYXZlcwotb25seSBzdWNoIGZpbGVwYWlycyB0aGF0IHRvdWNoIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGluIGl0cwotb3V0cHV0LiAgV2hlbiBgLS1waWNrYXhlLWFsbGAgaXMgdXNlZCwgZGlmZmNvcmUtcGlja2F4ZSBsZWF2ZXMgYWxsCi1maWxlcGFpcnMgaW50YWN0IGlmIHRoZXJlIGlzIHN1Y2ggYSBmaWxlcGFpciwgb3IgbWFrZXMgdGhlCi1vdXRwdXQgZW1wdHkgb3RoZXJ3aXNlLiAgVGhlIGxhdHRlciBiZWhhdmlvdXIgaXMgZGVzaWduZWQgdG8KLW1ha2UgcmV2aWV3aW5nIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBjb250ZXh0IG9mIHRoZSB3aG9sZQorIi1HPHJlZ3VsYXIgZXhwcmVzc2lvbj4iIChtbmVtb25pYzogZ3JlcCkgZGV0ZWN0cyBmaWxlcGFpcnMgd2hvc2UKK3RleHR1YWwgZGlmZiBoYXMgYW4gYWRkZWQgb3IgYSBkZWxldGVkIGxpbmUgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbgorcmVndWxhciBleHByZXNzaW9uLiAgVGhpcyBtZWFucyB0aGF0IGl0IHdpbGwgZGV0ZWN0IGluLWZpbGUgKG9yIHdoYXQKK3JlbmFtZS1kZXRlY3Rpb24gY29uc2lkZXJzIHRoZSBzYW1lIGZpbGUpIG1vdmVzLCB3aGljaCBpcyBub2lzZS4gIFRoZQoraW1wbGVtZW50YXRpb24gcnVucyBkaWZmIHR3aWNlIGFuZCBncmVwcywgYW5kIHRoaXMgY2FuIGJlIHF1aXRlCitleHBlbnNpdmUuCisKK1doZW4gYC1TYCBvciBgLUdgIGFyZSB1c2VkIHdpdGhvdXQgYC0tcGlja2F4ZS1hbGxgLCBvbmx5IGZpbGVwYWlycwordGhhdCBtYXRjaCB0aGVpciByZXNwZWN0aXZlIGNyaXRlcmlvbiBhcmUga2VwdCBpbiB0aGUgb3V0cHV0LiAgV2hlbgorYC0tcGlja2F4ZS1hbGxgIGlzIHVzZWQsIGlmIGV2ZW4gb25lIGZpbGVwYWlyIG1hdGNoZXMgdGhlaXIgcmVzcGVjdGl2ZQorY3JpdGVyaW9uIGluIGEgY2hhbmdlc2V0LCB0aGUgZW50aXJlIGNoYW5nZXNldCBpcyBrZXB0LiAgVGhpcyBiZWhhdmlvcgoraXMgZGVzaWduZWQgdG8gbWFrZSByZXZpZXdpbmcgY2hhbmdlcyBpbiB0aGUgY29udGV4dCBvZiB0aGUgd2hvbGUKIGNoYW5nZXNldCBlYXNpZXIuCiAKLQogZGlmZmNvcmUtb3JkZXI6IEZvciBTb3J0aW5nIHRoZSBPdXRwdXQgQmFzZWQgb24gRmlsZW5hbWVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXRyZW1vdGUtaGVscGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dAppbmRleCBkYTc0NjQxLi4wODI3ZjY5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdHJlbW90ZS1oZWxwZXJzLnR4dApAQCAtMTU5LDExICsxNTksMTEgQEAKIAljYXJyaWVkIG91dC4KIAogJ3JlZnNwZWMnIDxyZWZzcGVjPjo6Ci0JVGhpcyBtb2RpZmllcyB0aGUgJ2ltcG9ydCcgY2FwYWJpbGl0eSwgYWxsb3dpbmcgdGhlIHByb2R1Y2VkCi0JZmFzdC1pbXBvcnQgc3RyZWFtIHRvIG1vZGlmeSByZWZzIGluIGEgcHJpdmF0ZSBuYW1lc3BhY2UKLQlpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gcmVmcy9oZWFkcyBvciByZWZzL3JlbW90ZXMgZGlyZWN0bHkuCisJRm9yIHJlbW90ZSBoZWxwZXJzIHRoYXQgaW1wbGVtZW50ICdpbXBvcnQnIG9yICdleHBvcnQnLCB0aGlzIGNhcGFiaWxpdHkKKwlhbGxvd3MgdGhlIHJlZnMgdG8gYmUgY29uc3RyYWluZWQgdG8gYSBwcml2YXRlIG5hbWVzcGFjZSwgaW5zdGVhZCBvZgorCXdyaXRpbmcgdG8gcmVmcy9oZWFkcyBvciByZWZzL3JlbW90ZXMgZGlyZWN0bHkuCiAJSXQgaXMgcmVjb21tZW5kZWQgdGhhdCBhbGwgaW1wb3J0ZXJzIHByb3ZpZGluZyB0aGUgJ2ltcG9ydCcKLQljYXBhYmlsaXR5IHVzZSB0aGlzLgorCWNhcGFiaWxpdHkgdXNlIHRoaXMuIEl0J3MgbWFuZGF0b3J5IGZvciAnZXhwb3J0Jy4KICsKIEEgaGVscGVyIGFkdmVydGlzaW5nIHRoZSBjYXBhYmlsaXR5CiBgcmVmc3BlYyByZWZzL2hlYWRzLyo6cmVmcy9zdm4vb3JpZ2luL2JyYW5jaGVzLypgCkBAIC0xNzQsOCArMTc0LDggQEAKIFRoaXMgY2FwYWJpbGl0eSBjYW4gYmUgYWR2ZXJ0aXNlZCBtdWx0aXBsZSB0aW1lcy4gIFRoZSBmaXJzdAogYXBwbGljYWJsZSByZWZzcGVjIHRha2VzIHByZWNlZGVuY2UuICBUaGUgbGVmdC1oYW5kIG9mIHJlZnNwZWNzCiBhZHZlcnRpc2VkIHdpdGggdGhpcyBjYXBhYmlsaXR5IG11c3QgY292ZXIgYWxsIHJlZnMgcmVwb3J0ZWQgYnkKLXRoZSBsaXN0IGNvbW1hbmQuICBJZiBhIGhlbHBlciBkb2VzIG5vdCBuZWVkIGEgc3BlY2lmaWMgJ3JlZnNwZWMnCi1jYXBhYmlsaXR5IHRoZW4gaXQgc2hvdWxkIGFkdmVydGlzZSBgcmVmc3BlYyAqOipgLgordGhlIGxpc3QgY29tbWFuZC4gIElmIG5vICdyZWZzcGVjJyBjYXBhYmlsaXR5IGlzIGFkdmVydGlzZWQsCit0aGVyZSBpcyBhbiBpbXBsaWVkIGByZWZzcGVjICo6KmAuCiAKICdiaWRpLWltcG9ydCc6OgogCVRoaXMgbW9kaWZpZXMgdGhlICdpbXBvcnQnIGNhcGFiaWxpdHkuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHJlcG9zaXRvcnktbGF5b3V0LnR4dCBiL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CmluZGV4IGQ2ZjMzOTMuLmFhMDM4ODIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0cmVwb3NpdG9yeS1sYXlvdXQudHh0CkBAIC0yMTEsNiArMjExLDkgQEAKIAlhbmQgbWFpbnRhaW5lZCBieSBzaGFsbG93IGNsb25lIG1lY2hhbmlzbS4gIFNlZSBgLS1kZXB0aGAKIAlvcHRpb24gdG8gbGlua2dpdDpnaXQtY2xvbmVbMV0gYW5kIGxpbmtnaXQ6Z2l0LWZldGNoWzFdLgogCittb2R1bGVzOjoKKwlDb250YWlucyB0aGUgZ2l0LXJlcG9zaXRvcmllcyBvZiB0aGUgc3VibW9kdWxlcy4KKwogU0VFIEFMU08KIC0tLS0tLS0tCiBsaW5rZ2l0OmdpdC1pbml0WzFdLApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9naXR3ZWIuY29uZi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dAppbmRleCBlYTA1MjZlLi4zMDVkYjYzIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi5jb25mLnR4dApAQCAtMzM2LDggKzMzNiwyNiBAQAogCXVzZWQgYXMgdGhlIGZpcnN0IGNvbXBvbmVudCBvZiBnaXR3ZWIncyAiYnJlYWRjcnVtYiB0cmFpbCI6CiAJYDxob21lIGxpbms+IC8gPHByb2plY3Q+IC8gPGFjdGlvbj5gLiAgQ2FuIGJlIHNldCBhdCBidWlsZCB0aW1lIHVzaW5nCiAJdGhlIGBHSVRXRUJfSE9NRV9MSU5LX1NUUmAgdmFyaWFibGUuICBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byAicHJvamVjdHMiLAotCWFzIHRoaXMgbGluayBsZWFkcyB0byB0aGUgbGlzdCBvZiBwcm9qZWN0cy4gIE90aGVyIHBvcHVsYXIgY2hvaWNlIGl0IHRvCi0Jc2V0IGl0IHRvIHRoZSBuYW1lIG9mIHNpdGUuCisJYXMgdGhpcyBsaW5rIGxlYWRzIHRvIHRoZSBsaXN0IG9mIHByb2plY3RzLiAgQW5vdGhlciBwb3B1bGFyIGNob2ljZSBpcyB0bworCXNldCBpdCB0byB0aGUgbmFtZSBvZiBzaXRlLiAgTm90ZSB0aGF0IGl0IGlzIHRyZWF0ZWQgYXMgcmF3IEhUTUwgc28gaXQKKwlzaG91bGQgbm90IGJlIHNldCBmcm9tIHVudHJ1c3RlZCBzb3VyY2VzLgorCitAZXh0cmFfYnJlYWRjcnVtYnM6OgorCUFkZGl0aW9uYWwgbGlua3MgdG8gYmUgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBicmVhZGNydW1iIHRyYWlsIGJlZm9yZQorCXRoZSBob21lIGxpbmssIHRvIHBhZ2VzIHRoYXQgYXJlIGxvZ2ljYWxseSAiYWJvdmUiIHRoZSBnaXR3ZWIgcHJvamVjdHMKKwlsaXN0LCBzdWNoIGFzIHRoZSBvcmdhbml6YXRpb24gYW5kIGRlcGFydG1lbnQgd2hpY2ggaG9zdCB0aGUgZ2l0d2ViCisJc2VydmVyLiBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QgaXMgYSByZWZlcmVuY2UgdG8gYW4gYXJyYXksIGluIHdoaWNoCisJZWxlbWVudCAwIGlzIHRoZSBsaW5rIHRleHQgKGVxdWl2YWxlbnQgdG8gYCRob21lX2xpbmtfc3RyYCkgYW5kIGVsZW1lbnQKKwkxIGlzIHRoZSB0YXJnZXQgVVJMIChlcXVpdmFsZW50IHRvIGAkaG9tZV9saW5rYCkuCisrCitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBzZXR0aW5nIHByb2R1Y2VzIGEgYnJlYWRjcnVtYiB0cmFpbCBsaWtlCisiaG9tZSAvIGRldiAvIHByb2plY3RzIC8gLi4uIiB3aGVyZSAicHJvamVjdHMiIGlzIHRoZSBob21lIGxpbmsuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgb3VyIEBleHRyYV9icmVhZGNydW1icyA9ICgKKyAgICAgIFsgJ2hvbWUnID0+ICdodHRwczovL3d3dy5leGFtcGxlLm9yZy8nIF0sCisgICAgICBbICdkZXYnICA9PiAnaHR0cHM6Ly9kZXYuZXhhbXBsZS5vcmcvJyBdLAorICAgICk7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICRsb2dvX3VybDo6CiAkbG9nb19sYWJlbDo6CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dpdHdlYi50eHQgYi9Eb2N1bWVudGF0aW9uL2dpdHdlYi50eHQKaW5kZXggNDA5NjlmMS4uY2NhMTRiOCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9naXR3ZWIudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ2l0d2ViLnR4dApAQCAtNTA0LDcgKzUwNCw3IEBACiAKIFRoZSBhYm92ZSBjb25maWd1cmF0aW9uIGV4cGVjdHMgeW91ciBwdWJsaWMgcmVwb3NpdG9yaWVzIHRvIGxpdmUgdW5kZXIKICcvcHViL2dpdCcgYW5kIHdpbGwgc2VydmUgdGhlbSBhcyBgaHR0cDovL2dpdC5kb21haW4ub3JnL2Rpci11bmRlci1wdWItZ2l0YCwKLWJvdGggYXMgY2xvbmVhYmxlIEdpdCBVUkwgYW5kIGFzIGJyb3dzZWFibGUgZ2l0d2ViIGludGVyZmFjZS4gIElmIHlvdSB0aGVuCitib3RoIGFzIGNsb25hYmxlIEdpdCBVUkwgYW5kIGFzIGJyb3dzZWFibGUgZ2l0d2ViIGludGVyZmFjZS4gIElmIHlvdSB0aGVuCiBzdGFydCB5b3VyIGxpbmtnaXQ6Z2l0LWRhZW1vblsxXSB3aXRoIGAtLWJhc2UtcGF0aD0vcHViL2dpdCAtLWV4cG9ydC1hbGxgCiB0aGVuIHlvdSBjYW4gZXZlbiB1c2UgdGhlIGBnaXQ6Ly9gIFVSTCB3aXRoIGV4YWN0bHkgdGhlIHNhbWUgcGF0aC4KIApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dCBiL0RvY3VtZW50YXRpb24vZ2xvc3NhcnktY29udGVudC50eHQKaW5kZXggNjhhMThlMS4uZGJhNTA2MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9nbG9zc2FyeS1jb250ZW50LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2dsb3NzYXJ5LWNvbnRlbnQudHh0CkBAIC0xMTMsNyArMTEzLDcgQEAKIHdoaWxlIHRoZSBIRUFEIGlzIGRldGFjaGVkLiBUaGV5IHVwZGF0ZSB0aGUgSEVBRCB0byBwb2ludCBhdCB0aGUgdGlwCiBvZiB0aGUgdXBkYXRlZCBoaXN0b3J5IHdpdGhvdXQgYWZmZWN0aW5nIGFueSBicmFuY2guICBDb21tYW5kcyB0aGF0CiB1cGRhdGUgb3IgaW5xdWlyZSBpbmZvcm1hdGlvbiBfYWJvdXRfIHRoZSBjdXJyZW50IGJyYW5jaCAoZS5nLiBgZ2l0Ci1icmFuY2ggLS1zZXQtdXBzdHJlYW0tdG9gIHRoYXQgc2V0cyB3aGF0IHJlbW90ZSB0cmFja2luZyBicmFuY2ggdGhlCiticmFuY2ggLS1zZXQtdXBzdHJlYW0tdG9gIHRoYXQgc2V0cyB3aGF0IHJlbW90ZS10cmFja2luZyBicmFuY2ggdGhlCiBjdXJyZW50IGJyYW5jaCBpbnRlZ3JhdGVzIHdpdGgpIG9idmlvdXNseSBkbyBub3Qgd29yaywgYXMgdGhlcmUgaXMgbm8KIChyZWFsKSBjdXJyZW50IGJyYW5jaCB0byBhc2sgYWJvdXQgaW4gdGhpcyBzdGF0ZS4KIApAQCAtMjY3LDcgKzI2Nyw3IEBACiAJVGhlIGRlZmF1bHQgdXBzdHJlYW0gPDxkZWZfcmVwb3NpdG9yeSxyZXBvc2l0b3J5Pj4uIE1vc3QgcHJvamVjdHMgaGF2ZQogCWF0IGxlYXN0IG9uZSB1cHN0cmVhbSBwcm9qZWN0IHdoaWNoIHRoZXkgdHJhY2suIEJ5IGRlZmF1bHQKIAknb3JpZ2luJyBpcyB1c2VkIGZvciB0aGF0IHB1cnBvc2UuIE5ldyB1cHN0cmVhbSB1cGRhdGVzCi0Jd2lsbCBiZSBmZXRjaGVkIGludG8gcmVtb3RlIDw8ZGVmX3JlbW90ZV90cmFja2luZ19icmFuY2gscmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzPj4gbmFtZWQKKwl3aWxsIGJlIGZldGNoZWQgaW50byA8PGRlZl9yZW1vdGVfdHJhY2tpbmdfYnJhbmNoLHJlbW90ZS10cmFja2luZyBicmFuY2hlcz4+IG5hbWVkCiAJb3JpZ2luL25hbWUtb2YtdXBzdHJlYW0tYnJhbmNoLCB3aGljaCB5b3UgY2FuIHNlZSB1c2luZwogCWBnaXQgYnJhbmNoIC1yYC4KIApAQCAtNDAwLDEyICs0MDAsMTMgQEAKIAk8PGRlZl9yZWYscmVmPj4gYW5kIGxvY2FsIHJlZi4KIAogW1tkZWZfcmVtb3RlX3RyYWNraW5nX2JyYW5jaF1dcmVtb3RlLXRyYWNraW5nIGJyYW5jaDo6Ci0JQSByZWd1bGFyIEdpdCA8PGRlZl9icmFuY2gsYnJhbmNoPj4gdGhhdCBpcyB1c2VkIHRvIGZvbGxvdyBjaGFuZ2VzIGZyb20KLQlhbm90aGVyIDw8ZGVmX3JlcG9zaXRvcnkscmVwb3NpdG9yeT4+LiBBIHJlbW90ZS10cmFja2luZwotCWJyYW5jaCBzaG91bGQgbm90IGNvbnRhaW4gZGlyZWN0IG1vZGlmaWNhdGlvbnMgb3IgaGF2ZSBsb2NhbCBjb21taXRzCi0JbWFkZSB0byBpdC4gQSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGNhbiB1c3VhbGx5IGJlCi0JaWRlbnRpZmllZCBhcyB0aGUgcmlnaHQtaGFuZC1zaWRlIDw8ZGVmX3JlZixyZWY+PiBpbiBhIFB1bGw6Ci0JPDxkZWZfcmVmc3BlYyxyZWZzcGVjPj4uCisJQSA8PGRlZl9yZWYscmVmPj4gdGhhdCBpcyB1c2VkIHRvIGZvbGxvdyBjaGFuZ2VzIGZyb20gYW5vdGhlcgorCTw8ZGVmX3JlcG9zaXRvcnkscmVwb3NpdG9yeT4+LiBJdCB0eXBpY2FsbHkgbG9va3MgbGlrZQorCSdyZWZzL3JlbW90ZXMvZm9vL2JhcicgKGluZGljYXRpbmcgdGhhdCBpdCB0cmFja3MgYSBicmFuY2ggbmFtZWQKKwknYmFyJyBpbiBhIHJlbW90ZSBuYW1lZCAnZm9vJyksIGFuZCBtYXRjaGVzIHRoZSByaWdodC1oYW5kLXNpZGUgb2YKKwlhIGNvbmZpZ3VyZWQgZmV0Y2ggPDxkZWZfcmVmc3BlYyxyZWZzcGVjPj4uIEEgcmVtb3RlLXRyYWNraW5nCisJYnJhbmNoIHNob3VsZCBub3QgY29udGFpbiBkaXJlY3QgbW9kaWZpY2F0aW9ucyBvciBoYXZlIGxvY2FsCisJY29tbWl0cyBtYWRlIHRvIGl0LgogCiBbW2RlZl9yZXBvc2l0b3J5XV1yZXBvc2l0b3J5OjoKIAlBIGNvbGxlY3Rpb24gb2YgPDxkZWZfcmVmLHJlZnM+PiB0b2dldGhlciB3aXRoIGFuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2hvd3RvL25ldy1jb21tYW5kLnR4dCBiL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CmluZGV4IDJhYmMzYTAuLmQ3ZGU1YTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vaG93dG8vbmV3LWNvbW1hbmQudHh0CkBAIC05NCw3ICs5NCw3IEBACiA2LiBUaGVyZSBpcyBhIGZpbGUgY29tbWFuZC1saXN0LnR4dCBpbiB0aGUgZGlzdHJpYnV0aW9uIG1haW4gZGlyZWN0b3J5CiB0aGF0IGNhdGVnb3JpemVzIGNvbW1hbmRzIGJ5IHR5cGUsIHNvIHRoZXkgY2FuIGJlIGxpc3RlZCBpbiBhcHByb3ByaWF0ZQogc3Vic2VjdGlvbnMgaW4gdGhlIGRvY3VtZW50YXRpb24ncyBzdW1tYXJ5IGNvbW1hbmQgbGlzdC4gIEFkZCBhbiBlbnRyeQotZm9yIHlvdXJzLiAgVG8gdW5kZXJzdGFuZCB0aGUgY2F0ZWdvcmllcywgbG9vayBhdCBnaXQtY21tYW5kcy50eHQKK2ZvciB5b3Vycy4gIFRvIHVuZGVyc3RhbmQgdGhlIGNhdGVnb3JpZXMsIGxvb2sgYXQgZ2l0LWNvbW1hbmRzLnR4dAogaW4gdGhlIG1haW4gZGlyZWN0b3J5LgogCiA3LiBHaXZlIHRoZSBtYWludGFpbmVyIG9uZSBwYXJhZ3JhcGggdG8gaW5jbHVkZSBpbiB0aGUgUmVsTm90ZXMgZmlsZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ob3d0by9yZXZlcnQtYnJhbmNoLXJlYmFzZS50eHQgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAppbmRleCA4NGRkODM5Li4wZDU0MTllIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2hvd3RvL3JldmVydC1icmFuY2gtcmViYXNlLnR4dApAQCAtMTIsNyArMTIsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogT25lIG9mIHRoZSBjaGFuZ2VzIEkgcHVsbGVkIGludG8gdGhlICdtYXN0ZXInIGJyYW5jaCB0dXJucyBvdXQgdG8KLWJyZWFrIGJ1aWxkaW5nIEdpdCB3aXRoIEdDQyAyLjk1LiAgV2hpbGUgdGhleSB3ZXJlIHdlbGwgaW50ZW50aW9uZWQKK2JyZWFrIGJ1aWxkaW5nIEdpdCB3aXRoIEdDQyAyLjk1LiAgV2hpbGUgdGhleSB3ZXJlIHdlbGwtaW50ZW50aW9uZWQKIHBvcnRhYmlsaXR5IGZpeGVzLCBrZWVwaW5nIHRoaW5ncyB3b3JraW5nIHdpdGggZ2NjLTIuOTUgd2FzIGFsc28KIGltcG9ydGFudC4gIEhlcmUgaXMgd2hhdCBJIGRpZCB0byByZXZlcnQgdGhlIGNoYW5nZSBpbiB0aGUgJ21hc3RlcicKIGJyYW5jaCBhbmQgdG8gYWRqdXN0IHRoZSAncHUnIGJyYW5jaCwgdXNpbmcgY29yZSBHaXQgdG9vbHMgYW5kCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2xpbmUtcmFuZ2UtZm9ybWF0LnR4dCBiL0RvY3VtZW50YXRpb24vbGluZS1yYW5nZS1mb3JtYXQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlN2NlNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2xpbmUtcmFuZ2UtZm9ybWF0LnR4dApAQCAtMCwwICsxLDI1IEBACistIG51bWJlcgorKworSWYgPHN0YXJ0PiBvciA8ZW5kPiBpcyBhIG51bWJlciwgaXQgc3BlY2lmaWVzIGFuCithYnNvbHV0ZSBsaW5lIG51bWJlciAobGluZXMgY291bnQgZnJvbSAxKS4KKysKKworLSAvcmVnZXgvCisrCitUaGlzIGZvcm0gd2lsbCB1c2UgdGhlIGZpcnN0IGxpbmUgbWF0Y2hpbmcgdGhlIGdpdmVuCitQT1NJWCByZWdleC4gIElmIDxlbmQ+IGlzIGEgcmVnZXgsIGl0IHdpbGwgc2VhcmNoCitzdGFydGluZyBhdCB0aGUgbGluZSBnaXZlbiBieSA8c3RhcnQ+LgorKworCistICtvZmZzZXQgb3IgLW9mZnNldAorKworVGhpcyBpcyBvbmx5IHZhbGlkIGZvciA8ZW5kPiBhbmQgd2lsbCBzcGVjaWZ5IGEgbnVtYmVyCitvZiBsaW5lcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxpbmUgZ2l2ZW4gYnkgPHN0YXJ0Pi4KKysKKworLSA6cmVnZXgKKysKK0lmIHRoZSBvcHRpb24ncyBhcmd1bWVudCBpcyBvZiB0aGUgZm9ybSA6cmVnZXgsIGl0IGRlbm90ZXMgdGhlIHJhbmdlCitmcm9tIHRoZSBmaXJzdCBmdW5jbmFtZSBsaW5lIHRoYXQgbWF0Y2hlcyA8cmVnZXg+LCB1cCB0byB0aGUgbmV4dAorZnVuY25hbWUgbGluZS4KKysKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbWVyZ2Utb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL21lcmdlLW9wdGlvbnMudHh0CmluZGV4IDJhZGNjZjguLmFmYmE4ZDQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbWVyZ2Utb3B0aW9ucy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9tZXJnZS1vcHRpb25zLnR4dApAQCAtOCwxMiArOCwxMyBAQAogaW5zcGVjdCBhbmQgZnVydGhlciB0d2VhayB0aGUgbWVyZ2UgcmVzdWx0IGJlZm9yZSBjb21taXR0aW5nLgogCiAtLWVkaXQ6OgorLWU6OgogLS1uby1lZGl0OjoKIAlJbnZva2UgYW4gZWRpdG9yIGJlZm9yZSBjb21taXR0aW5nIHN1Y2Nlc3NmdWwgbWVjaGFuaWNhbCBtZXJnZSB0bwogCWZ1cnRoZXIgZWRpdCB0aGUgYXV0by1nZW5lcmF0ZWQgbWVyZ2UgbWVzc2FnZSwgc28gdGhhdCB0aGUgdXNlcgogCWNhbiBleHBsYWluIGFuZCBqdXN0aWZ5IHRoZSBtZXJnZS4gVGhlIGAtLW5vLWVkaXRgIG9wdGlvbiBjYW4gYmUKIAl1c2VkIHRvIGFjY2VwdCB0aGUgYXV0by1nZW5lcmF0ZWQgbWVzc2FnZSAodGhpcyBpcyBnZW5lcmFsbHkKLQlkaXNjb3VyYWdlZCkuIFRoZSBgLS1lZGl0YCBvcHRpb24gaXMgc3RpbGwgdXNlZnVsIGlmIHlvdSBhcmUKKwlkaXNjb3VyYWdlZCkuIFRoZSBgLS1lZGl0YCAob3IgYC1lYCkgb3B0aW9uIGlzIHN0aWxsIHVzZWZ1bCBpZiB5b3UgYXJlCiAJZ2l2aW5nIGEgZHJhZnQgbWVzc2FnZSB3aXRoIHRoZSBgLW1gIG9wdGlvbiBmcm9tIHRoZSBjb21tYW5kIGxpbmUKIAlhbmQgd2FudCB0byBlZGl0IGl0IGluIHRoZSBlZGl0b3IuCiArCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ByZXR0eS1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CmluZGV4IDVlNDk5NDIuLmVlYTBlMzAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vcHJldHR5LW9wdGlvbnMudHh0CkBAIC0yOCw3ICsyOCw3IEBACiAJVGhpcyBpcyBhIHNob3J0aGFuZCBmb3IgIi0tcHJldHR5PW9uZWxpbmUgLS1hYmJyZXYtY29tbWl0IgogCXVzZWQgdG9nZXRoZXIuCiAKLS0tZW5jb2RpbmdbPTxlbmNvZGluZz5dOjoKKy0tZW5jb2Rpbmc9PGVuY29kaW5nPjo6CiAJVGhlIGNvbW1pdCBvYmplY3RzIHJlY29yZCB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgdGhlIGxvZyBtZXNzYWdlCiAJaW4gdGhlaXIgZW5jb2RpbmcgaGVhZGVyOyB0aGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byB0ZWxsIHRoZQogCWNvbW1hbmQgdG8gcmUtY29kZSB0aGUgY29tbWl0IGxvZyBtZXNzYWdlIGluIHRoZSBlbmNvZGluZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9wdWxsLWZldGNoLXBhcmFtLnR4dCBiL0RvY3VtZW50YXRpb24vcHVsbC1mZXRjaC1wYXJhbS50eHQKaW5kZXggOTRhOWQzMi4uMThjZmZjMiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9wdWxsLWZldGNoLXBhcmFtLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3B1bGwtZmV0Y2gtcGFyYW0udHh0CkBAIC02OCw2ICs2OCwxMSBAQAogKwogKiBgdGFnIDx0YWc+YCBtZWFucyB0aGUgc2FtZSBhcyBgcmVmcy90YWdzLzx0YWc+OnJlZnMvdGFncy88dGFnPmA7CiAgIGl0IHJlcXVlc3RzIGZldGNoaW5nIGV2ZXJ5dGhpbmcgdXAgdG8gdGhlIGdpdmVuIHRhZy4KLSogQSBwYXJhbWV0ZXIgPHJlZj4gd2l0aG91dCBhIGNvbG9uIGlzIGVxdWl2YWxlbnQgdG8KLSAgPHJlZj46IHdoZW4gcHVsbGluZy9mZXRjaGluZywgc28gaXQgbWVyZ2VzIDxyZWY+IGludG8gdGhlIGN1cnJlbnQKLSAgYnJhbmNoIHdpdGhvdXQgc3RvcmluZyB0aGUgcmVtb3RlIGJyYW5jaCBhbnl3aGVyZSBsb2NhbGx5CitpZm5kZWY6OmdpdC1wdWxsW10KKyogQSBwYXJhbWV0ZXIgPHJlZj4gd2l0aG91dCBhIGNvbG9uIGZldGNoZXMgdGhhdCByZWYgaW50byBGRVRDSF9IRUFELAorZW5kaWY6OmdpdC1wdWxsW10KK2lmZGVmOjpnaXQtcHVsbFtdCisqIEEgcGFyYW1ldGVyIDxyZWY+IHdpdGhvdXQgYSBjb2xvbiBtZXJnZXMgPHJlZj4gaW50byB0aGUgY3VycmVudAorICBicmFuY2gsCitlbmRpZjo6Z2l0LXB1bGxbXQorICBhbmQgdXBkYXRlcyB0aGUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIChpZiBhbnkpLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9yZXYtbGlzdC1vcHRpb25zLnR4dCBiL0RvY3VtZW50YXRpb24vcmV2LWxpc3Qtb3B0aW9ucy50eHQKaW5kZXggM2JkYmY1ZS4uNWJkZmI0MiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9yZXYtbGlzdC1vcHRpb25zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3Jldi1saXN0LW9wdGlvbnMudHh0CkBAIC0xMTksNyArMTE5LDcgQEAKIC0tbm8tbWluLXBhcmVudHM6OgogLS1uby1tYXgtcGFyZW50czo6CiAKLQlTaG93IG9ubHkgY29tbWl0cyB3aGljaCBoYXZlIGF0IGxlYXN0IChvciBhdCBtb3N0KSB0aGF0IG1hbnkKKwlTaG93IG9ubHkgY29tbWl0cyB3aGljaCBoYXZlIGF0IGxlYXN0IChvciBhdCBtb3N0KSB0aGF0IG1hbnkgcGFyZW50CiAJY29tbWl0cy4gSW4gcGFydGljdWxhciwgYC0tbWF4LXBhcmVudHM9MWAgaXMgdGhlIHNhbWUgYXMgYC0tbm8tbWVyZ2VzYCwKIAlgLS1taW4tcGFyZW50cz0yYCBpcyB0aGUgc2FtZSBhcyBgLS1tZXJnZXNgLiAgYC0tbWF4LXBhcmVudHM9MGAKIAlnaXZlcyBhbGwgcm9vdCBjb21taXRzIGFuZCBgLS1taW4tcGFyZW50cz0zYCBhbGwgb2N0b3B1cyBtZXJnZXMuCkBAIC0yNzEsOCArMjcxLDggQEAKIAogLS1ib3VuZGFyeTo6CiAKLQlPdXRwdXQgdW5pbnRlcmVzdGluZyBjb21taXRzIGF0IHRoZSBib3VuZGFyeSwgd2hpY2ggYXJlIHVzdWFsbHkKLQlub3Qgc2hvd24uCisJT3V0cHV0IGV4Y2x1ZGVkIGJvdW5kYXJ5IGNvbW1pdHMuIEJvdW5kYXJ5IGNvbW1pdHMgYXJlCisJcHJlZml4ZWQgd2l0aCBgLWAuCiAKIC0tCiAKQEAgLTM0MiwxMyArMzQyLDEzIEBACiBpbGx1c3RyYXRlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHNpbXBsaWZpY2F0aW9uIHNldHRpbmdzLiAgV2UgYXNzdW1lCiB0aGF0IHlvdSBhcmUgZmlsdGVyaW5nIGZvciBhIGZpbGUgYGZvb2AgaW4gdGhpcyBjb21taXQgZ3JhcGg6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCSAgLi1BLS0tTS0tLU4tLS1PLS0tUAotCSAvICAgICAvICAgLyAgIC8gICAvCi0JSSAgICAgQiAgIEMgICBEICAgRQotCSBcICAgLyAgIC8gICAvICAgLwotCSAgYC0tLS0tLS0tLS0tLS0nCisJICAuLUEtLS1NLS0tTi0tLU8tLS1QLS0tUQorCSAvICAgICAvICAgLyAgIC8gICAvICAgLworCUkgICAgIEIgICBDICAgRCAgIEUgICBZCisJIFwgICAvICAgLyAgIC8gICAvICAgLworCSAgYC0tLS0tLS0tLS0tLS0nICAgWAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRoZSBob3Jpem9udGFsIGxpbmUgb2YgaGlzdG9yeSBBLS0tUCBpcyB0YWtlbiB0byBiZSB0aGUgZmlyc3QgcGFyZW50IG9mCitUaGUgaG9yaXpvbnRhbCBsaW5lIG9mIGhpc3RvcnkgQS0tLVEgaXMgdGFrZW4gdG8gYmUgdGhlIGZpcnN0IHBhcmVudCBvZgogZWFjaCBtZXJnZS4gIFRoZSBjb21taXRzIGFyZToKIAogKiBgSWAgaXMgdGhlIGluaXRpYWwgY29tbWl0LCBpbiB3aGljaCBgZm9vYCBleGlzdHMgd2l0aCBjb250ZW50cwpAQCAtMzY3LDggKzM2NywxMSBAQAogICBgTmAgYW5kIGBEYCB0byAiZm9vYmFyYmF6IjsgaS5lLiwgaXQgaXMgbm90IFRSRUVTQU1FIHRvIGFueSBwYXJlbnQuCiAKICogYEVgIGNoYW5nZXMgYHF1dXhgIHRvICJ4eXp6eSIsIGFuZCBpdHMgbWVyZ2UgYFBgIGNvbWJpbmVzIHRoZQotICBzdHJpbmdzIHRvICJxdXV4IHh5enp5Ii4gIERlc3BpdGUgYXBwZWFyaW5nIGludGVyZXN0aW5nLCBgUGAgaXMKLSAgVFJFRVNBTUUgdG8gYWxsIHBhcmVudHMuCisgIHN0cmluZ3MgdG8gInF1dXggeHl6enkiLiAgYFBgIGlzIFRSRUVTQU1FIHRvIGBPYCwgYnV0IG5vdCB0byBgRWAuCisKKyogYFhgIGlzIGFuIGluZGVwZW5kZW50IHJvb3QgY29tbWl0IHRoYXQgYWRkZWQgYSBuZXcgZmlsZSBgc2lkZWAsIGFuZCBgWWAKKyAgbW9kaWZpZWQgaXQuIGBZYCBpcyBUUkVFU0FNRSB0byBgWGAuIEl0cyBtZXJnZSBgUWAgYWRkZWQgYHNpZGVgIHRvIGBQYCwgYW5kCisgIGBRYCBpcyBUUkVFU0FNRSB0byBgUGAsIGJ1dCBub3QgdG8gYFlgLgogCiAncmV2LWxpc3QnIHdhbGtzIGJhY2t3YXJkcyB0aHJvdWdoIGhpc3RvcnksIGluY2x1ZGluZyBvciBleGNsdWRpbmcKIGNvbW1pdHMgYmFzZWQgb24gd2hldGhlciAnXC0tZnVsbC1oaXN0b3J5JyBhbmQvb3IgcGFyZW50IHJld3JpdGluZwpAQCAtNDEwLDEwICs0MTMsMTAgQEAKIAl0aGUgZXhhbXBsZSwgd2UgZ2V0CiArCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCUkgIEEgIEIgIE4gIEQgIE8KKwlJICBBICBCICBOICBEICBPICBQICBRCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKwotYFBgIGFuZCBgTWAgd2VyZSBleGNsdWRlZCBiZWNhdXNlIHRoZXkgYXJlIFRSRUVTQU1FIHRvIGEgcGFyZW50LiAgYEVgLAorYE1gIHdhcyBleGNsdWRlZCBiZWNhdXNlIGl0IGlzIFRSRUVTQU1FIHRvIGJvdGggcGFyZW50cy4gIGBFYCwKIGBDYCBhbmQgYEJgIHdlcmUgYWxsIHdhbGtlZCwgYnV0IG9ubHkgYEJgIHdhcyAhVFJFRVNBTUUsIHNvIHRoZSBvdGhlcnMKIGRvIG5vdCBhcHBlYXIuCiArCkBAIC00MzEsNyArNDM0LDcgQEAKIHRoZW1zZWx2ZXMuICBUaGlzIHJlc3VsdHMgaW4KICsKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JICAuLUEtLS1NLS0tTi0tLU8tLS1QCisJICAuLUEtLS1NLS0tTi0tLU8tLS1QLS0tUQogCSAvICAgICAvICAgLyAgIC8gICAvCiAJSSAgICAgQiAgIC8gICBEICAgLwogCSBcICAgLyAgIC8gICAvICAgLwpAQCAtNDQxLDcgKzQ0NCw3IEBACiBDb21wYXJlIHRvICdcLS1mdWxsLWhpc3RvcnknIHdpdGhvdXQgcmV3cml0aW5nIGFib3ZlLiAgTm90ZSB0aGF0IGBFYAogd2FzIHBydW5lZCBhd2F5IGJlY2F1c2UgaXQgaXMgVFJFRVNBTUUsIGJ1dCB0aGUgcGFyZW50IGxpc3Qgb2YgUCB3YXMKIHJld3JpdHRlbiB0byBjb250YWluIGBFYCdzIHBhcmVudCBgSWAuICBUaGUgc2FtZSBoYXBwZW5lZCBmb3IgYENgIGFuZAotYE5gLiAgTm90ZSBhbHNvIHRoYXQgYFBgIHdhcyBpbmNsdWRlZCBkZXNwaXRlIGJlaW5nIFRSRUVTQU1FLgorYE5gLCBhbmQgYFhgLCBgWWAgYW5kIGBRYC4KIAogSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIHNldHRpbmdzLCB5b3UgY2FuIGNoYW5nZSB3aGV0aGVyIFRSRUVTQU1FCiBhZmZlY3RzIGluY2x1c2lvbjoKQEAgLTQ3MSw4ICs0NzQsOSBAQAogKiBTZXQgYEMnYCB0byBgQ2AuCiArCiAqIFJlcGxhY2UgZWFjaCBwYXJlbnQgYFBgIG9mIGBDJ2Agd2l0aCBpdHMgc2ltcGxpZmljYXRpb24gYFAnYC4gIEluCi0gIHRoZSBwcm9jZXNzLCBkcm9wIHBhcmVudHMgdGhhdCBhcmUgYW5jZXN0b3JzIG9mIG90aGVyIHBhcmVudHMsIGFuZAotICByZW1vdmUgZHVwbGljYXRlcy4KKyAgdGhlIHByb2Nlc3MsIGRyb3AgcGFyZW50cyB0aGF0IGFyZSBhbmNlc3RvcnMgb2Ygb3RoZXIgcGFyZW50cyBvciB0aGF0IGFyZQorICByb290IGNvbW1pdHMgVFJFRVNBTUUgdG8gYW4gZW1wdHkgdHJlZSwgYW5kIHJlbW92ZSBkdXBsaWNhdGVzLCBidXQgdGFrZSBjYXJlCisgIHRvIG5ldmVyIGRyb3AgYWxsIHBhcmVudHMgdGhhdCB3ZSBhcmUgVFJFRVNBTUUgdG8uCiArCiAqIElmIGFmdGVyIHRoaXMgcGFyZW50IHJld3JpdGluZywgYEMnYCBpcyBhIHJvb3Qgb3IgbWVyZ2UgY29tbWl0IChoYXMKICAgemVybyBvciA+MSBwYXJlbnRzKSwgYSBib3VuZGFyeSBjb21taXQsIG9yICFUUkVFU0FNRSwgaXQgcmVtYWlucy4KQEAgLTQ5MCw3ICs0OTQsNyBAQAogCSAgYC0tLS0tLS0tLScKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiArCi1Ob3RlIHRoZSBtYWpvciBkaWZmZXJlbmNlcyBpbiBgTmAgYW5kIGBQYCBvdmVyICctLWZ1bGwtaGlzdG9yeSc6CitOb3RlIHRoZSBtYWpvciBkaWZmZXJlbmNlcyBpbiBgTmAsIGBQYCBhbmQgYFFgIG92ZXIgJy0tZnVsbC1oaXN0b3J5JzoKICsKIC0tCiAqIGBOYCdzIHBhcmVudCBsaXN0IGhhZCBgSWAgcmVtb3ZlZCwgYmVjYXVzZSBpdCBpcyBhbiBhbmNlc3RvciBvZiB0aGUKQEAgLTQ5OCw2ICs1MDIsMTAgQEAKICsKICogYFBgJ3MgcGFyZW50IGxpc3Qgc2ltaWxhcmx5IGhhZCBgSWAgcmVtb3ZlZC4gIGBQYCB3YXMgdGhlbgogICByZW1vdmVkIGNvbXBsZXRlbHksIGJlY2F1c2UgaXQgaGFkIG9uZSBwYXJlbnQgYW5kIGlzIFRSRUVTQU1FLgorKworKiBgUWAncyBwYXJlbnQgbGlzdCBoYWQgYFlgIHNpbXBsaWZpZWQgdG8gYFhgLiBgWGAgd2FzIHRoZW4gcmVtb3ZlZCwgYmVjYXVzZSBpdAorICB3YXMgYSBUUkVFU0FNRSByb290LiBgUWAgd2FzIHRoZW4gcmVtb3ZlZCBjb21wbGV0ZWx5LCBiZWNhdXNlIGl0IGhhZCBvbmUKKyAgcGFyZW50IGFuZCBpcyBUUkVFU0FNRS4KIC0tCiAKIEZpbmFsbHksIHRoZXJlIGlzIGEgZmlmdGggc2ltcGxpZmljYXRpb24gbW9kZSBhdmFpbGFibGU6CkBAIC02MTcsNiArNjI1LDEwIEBACiAJU2hvdyBubyBwYXJlbnRzIGJlZm9yZSBhbGwgb2YgaXRzIGNoaWxkcmVuIGFyZSBzaG93biwgYnV0CiAJb3RoZXJ3aXNlIHNob3cgY29tbWl0cyBpbiB0aGUgY29tbWl0IHRpbWVzdGFtcCBvcmRlci4KIAorLS1hdXRob3ItZGF0ZS1vcmRlcjo6CisJU2hvdyBubyBwYXJlbnRzIGJlZm9yZSBhbGwgb2YgaXRzIGNoaWxkcmVuIGFyZSBzaG93biwgYnV0CisJb3RoZXJ3aXNlIHNob3cgY29tbWl0cyBpbiB0aGUgYXV0aG9yIHRpbWVzdGFtcCBvcmRlci4KKwogLS10b3BvLW9yZGVyOjoKIAlTaG93IG5vIHBhcmVudHMgYmVmb3JlIGFsbCBvZiBpdHMgY2hpbGRyZW4gYXJlIHNob3duLCBhbmQKIAlhdm9pZCBzaG93aW5nIGNvbW1pdHMgb24gbXVsdGlwbGUgbGluZXMgb2YgaGlzdG9yeQpAQCAtODM3LDcgKzg0OSw0IEBACiAtdDo6CiAKIAlTaG93IHRoZSB0cmVlIG9iamVjdHMgaW4gdGhlIGRpZmYgb3V0cHV0LiBUaGlzIGltcGxpZXMgJy1yJy4KLQotLXM6OgotCVN1cHByZXNzIGRpZmYgb3V0cHV0LgogZW5kaWY6OmdpdC1yZXYtbGlzdFtdCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktYnVpbHRpbi50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktYnVpbHRpbi50eHQKaW5kZXggNGE0MjI4Yi4uZjNjMTM1NyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLWJ1aWx0aW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1idWlsdGluLnR4dApAQCAtMzksNyArMzksNyBAQAogCW9uIGJhcmUgcmVwb3NpdG9yaWVzLgogCVRoaXMgb25seSBtYWtlcyBzZW5zZSB3aGVuIGBSVU5fU0VUVVBgIGlzIGFsc28gc2V0LgogCi0uIEFkZCBgYnVpbHRpbi1mb28ub2AgdG8gYEJVSUxUSU5fT0JKU2AgaW4gYE1ha2VmaWxlYC4KKy4gQWRkIGBidWlsdGluL2Zvby5vYCB0byBgQlVJTFRJTl9PQkpTYCBpbiBgTWFrZWZpbGVgLgogCiBBZGRpdGlvbmFsbHksIGlmIGBmb29gIGlzIGEgbmV3IGNvbW1hbmQsIHRoZXJlIGFyZSAzIG1vcmUgdGhpbmdzIHRvIGRvOgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcGFyc2Utb3B0aW9ucy50eHQKaW5kZXggMzJkZGMxYy4uMGJlMmI1MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXBhcnNlLW9wdGlvbnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1wYXJzZS1vcHRpb25zLnR4dApAQCAtNDEsNiArNDEsOCBAQAogKiBCb29sZWFuIGxvbmcgb3B0aW9ucyBjYW4gYmUgJ25lZ2F0ZWQnIChvciAndW5zZXQnKSBieSBwcmVwZW5kaW5nCiAgIGBuby1gLCBlLmcuIGAtLW5vLWFiYnJldmAgaW5zdGVhZCBvZiBgLS1hYmJyZXZgLiBDb252ZXJzZWx5LAogICBvcHRpb25zIHRoYXQgYmVnaW4gd2l0aCBgbm8tYCBjYW4gYmUgJ25lZ2F0ZWQnIGJ5IHJlbW92aW5nIGl0LgorICBPdGhlciBsb25nIG9wdGlvbnMgY2FuIGJlIHVuc2V0IChlLmcuLCBzZXQgc3RyaW5nIHRvIE5VTEwsIHNldAorICBpbnRlZ2VyIHRvIDApIGJ5IHByZXBlbmRpbmcgYG5vLWAuCiAKICogT3B0aW9ucyBhbmQgbm9uLW9wdGlvbiBhcmd1bWVudHMgY2FuIGNsZWFybHkgYmUgc2VwYXJhdGVkIHVzaW5nIHRoZSBgLS1gCiAgIG9wdGlvbiwgZS5nLiBgLWEgLWIgLS1vcHRpb24gLS0gLS10aGlzLWlzLWEtZmlsZWAgaW5kaWNhdGVzIHRoYXQKQEAgLTE3NCw2ICsxNzYsMTAgQEAKIAlJbnRyb2R1Y2UgYW4gb3B0aW9uIHdpdGggZGF0ZSBhcmd1bWVudCwgc2VlIGBhcHByb3hpZGF0ZSgpYC4KIAlUaGUgdGltZXN0YW1wIGlzIHB1dCBpbnRvIGBpbnRfdmFyYC4KIAorYE9QVF9FWFBJUllfREFURShzaG9ydCwgbG9uZywgJmludF92YXIsIGRlc2NyaXB0aW9uKWA6OgorCUludHJvZHVjZSBhbiBvcHRpb24gd2l0aCBleHBpcnkgZGF0ZSBhcmd1bWVudCwgc2VlIGBwYXJzZV9leHBpcnlfZGF0ZSgpYC4KKwlUaGUgdGltZXN0YW1wIGlzIHB1dCBpbnRvIGBpbnRfdmFyYC4KKwogYE9QVF9DQUxMQkFDSyhzaG9ydCwgbG9uZywgJnZhciwgYXJnX3N0ciwgZGVzY3JpcHRpb24sIGZ1bmNfcHRyKWA6OgogCUludHJvZHVjZSBhbiBvcHRpb24gd2l0aCBhcmd1bWVudC4KIAlUaGUgYXJndW1lbnQgd2lsbCBiZSBmZWQgaW50byB0aGUgZnVuY3Rpb24gZ2l2ZW4gYnkgYGZ1bmNfcHRyYApAQCAtMjY5LDEwICsyNzUsMTAgQEAKIC0tLS0tLS0tCiAKIFNlZSBgdGVzdC1wYXJzZS1vcHRpb25zLmNgIGFuZAotYGJ1aWx0aW4tYWRkLmNgLAotYGJ1aWx0aW4tY2xvbmUuY2AsCi1gYnVpbHRpbi1jb21taXQuY2AsCi1gYnVpbHRpbi1mZXRjaC5jYCwKLWBidWlsdGluLWZzY2suY2AsCi1gYnVpbHRpbi1ybS5jYAorYGJ1aWx0aW4vYWRkLmNgLAorYGJ1aWx0aW4vY2xvbmUuY2AsCitgYnVpbHRpbi9jb21taXQuY2AsCitgYnVpbHRpbi9mZXRjaC5jYCwKK2BidWlsdGluL2ZzY2suY2AsCitgYnVpbHRpbi9ybS5jYAogZm9yIHJlYWwtd29ybGQgZXhhbXBsZXMuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmV2aXNpb24td2Fsa2luZy50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9hcGktcmV2aXNpb24td2Fsa2luZy50eHQKaW5kZXggYjdkMGQ5YS4uNTViODc4YSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvYXBpLXJldmlzaW9uLXdhbGtpbmcudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2FwaS1yZXZpc2lvbi13YWxraW5nLnR4dApAQCAtNTksNyArNTksNyBAQAogYHJlc2V0X3JldmlzaW9uX3dhbGtgOjoKIAogCVJlc2V0IHRoZSBmbGFncyB1c2VkIGJ5IHRoZSByZXZpc2lvbiB3YWxraW5nIGFwaS4gWW91IGNhbiB1c2UKLQl0aGlzIHRvIGRvIG11bHRpcGxlIHNlcXVlbmNpYWwgcmV2aXNpb24gd2Fsa3MuCisJdGhpcyB0byBkbyBtdWx0aXBsZSBzZXF1ZW50aWFsIHJldmlzaW9uIHdhbGtzLgogCiBEYXRhIHN0cnVjdHVyZXMKIC0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaW5kZXgtZm9ybWF0LnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL2luZGV4LWZvcm1hdC50eHQKaW5kZXggMDgxMDI1MS4uZjM1MmE5YiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvaW5kZXgtZm9ybWF0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9pbmRleC1mb3JtYXQudHh0CkBAIC0xNzUsNyArMTc1LDcgQEAKIAogICBBIGNvbmZsaWN0IGlzIHJlcHJlc2VudGVkIGluIHRoZSBpbmRleCBhcyBhIHNldCBvZiBoaWdoZXIgc3RhZ2UgZW50cmllcy4KICAgV2hlbiBhIGNvbmZsaWN0IGlzIHJlc29sdmVkIChlLmcuIHdpdGggImdpdCBhZGQgcGF0aCIpLCB0aGVzZSBoaWdoZXIKLSAgc3RhZ2UgZW50cmllcyB3aWxsIGJlIHJlbW92ZWQgYW5kIGEgc3RhZ2UtMCBlbnRyeSB3aXRoIHByb3BlciByZXNvbHV0b24KKyAgc3RhZ2UgZW50cmllcyB3aWxsIGJlIHJlbW92ZWQgYW5kIGEgc3RhZ2UtMCBlbnRyeSB3aXRoIHByb3BlciByZXNvbHV0aW9uCiAgIGlzIGFkZGVkLgogCiAgIFdoZW4gdGhlc2UgaGlnaGVyIHN0YWdlIGVudHJpZXMgYXJlIHJlbW92ZWQsIHRoZXkgYXJlIHNhdmVkIGluIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcGFjay1wcm90b2NvbC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAppbmRleCBmMWE1MWVkLi5iODk4ZTk3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wYWNrLXByb3RvY29sLnR4dApAQCAtMjI4LDggKzIyOCw3IEBACiBUaGUgY2xpZW50IE1VU1Qgd3JpdGUgYWxsIG9iai1pZHMgd2hpY2ggaXQgb25seSBoYXMgc2hhbGxvdyBjb3BpZXMKIG9mIChtZWFuaW5nIHRoYXQgaXQgZG9lcyBub3QgaGF2ZSB0aGUgcGFyZW50cyBvZiBhIGNvbW1pdCkgYXMKICdzaGFsbG93JyBsaW5lcyBzbyB0aGF0IHRoZSBzZXJ2ZXIgaXMgYXdhcmUgb2YgdGhlIGxpbWl0YXRpb25zIG9mCi10aGUgY2xpZW50J3MgaGlzdG9yeS4gQ2xpZW50cyBNVVNUIE5PVCBtZW50aW9uIGFuIG9iai1pZCB3aGljaAotaXQgZG9lcyBub3Qga25vdyBleGlzdHMgb24gdGhlIHNlcnZlci4KK3RoZSBjbGllbnQncyBoaXN0b3J5LgogCiBUaGUgY2xpZW50IG5vdyBzZW5kcyB0aGUgbWF4aW11bSBjb21taXQgaGlzdG9yeSBkZXB0aCBpdCB3YW50cyBmb3IKIHRoaXMgdHJhbnNhY3Rpb24sIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyBpdCB3YW50cyBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcHJvdG9jb2wtY2FwYWJpbGl0aWVzLnR4dCBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3Byb3RvY29sLWNhcGFiaWxpdGllcy50eHQKaW5kZXggYjE1NTE3Zi4uZmQ4ZmZhNSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcHJvdG9jb2wtY2FwYWJpbGl0aWVzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9wcm90b2NvbC1jYXBhYmlsaXRpZXMudHh0CkBAIC0xOCwxMSArMTgsMTIgQEAKIGFuZCBzZXJ2ZXIgYWR2ZXJ0aXNlZC4gIEFzIGEgY29uc2VxdWVuY2Ugb2YgdGhlc2UgcnVsZXMsIHNlcnZlciBNVVNUCiBOT1QgYWR2ZXJ0aXNlIGNhcGFiaWxpdGllcyBpdCBkb2VzIG5vdCB1bmRlcnN0YW5kLgogCi1UaGUgJ3JlcG9ydC1zdGF0dXMnIGFuZCAnZGVsZXRlLXJlZnMnIGNhcGFiaWxpdGllcyBhcmUgc2VudCBhbmQKK1RoZSAncmVwb3J0LXN0YXR1cycsICdkZWxldGUtcmVmcycsIGFuZCAncXVpZXQnIGNhcGFiaWxpdGllcyBhcmUgc2VudCBhbmQKIHJlY29nbml6ZWQgYnkgdGhlIHJlY2VpdmUtcGFjayAocHVzaCB0byBzZXJ2ZXIpIHByb2Nlc3MuCiAKLVRoZSAnb2ZzLWRlbHRhJyBjYXBhYmlsaXR5IGlzIHNlbnQgYW5kIHJlY29nbml6ZWQgYnkgYm90aCB1cGxvYWQtcGFjawotYW5kIHJlY2VpdmUtcGFjayBwcm90b2NvbHMuCitUaGUgJ29mcy1kZWx0YScgYW5kICdzaWRlLWJhbmQtNjRrJyBjYXBhYmlsaXRpZXMgYXJlIHNlbnQgYW5kIHJlY29nbml6ZWQKK2J5IGJvdGggdXBsb2FkLXBhY2sgYW5kIHJlY2VpdmUtcGFjayBwcm90b2NvbHMuICBUaGUgJ2FnZW50JyBjYXBhYmlsaXR5CittYXkgb3B0aW9uYWxseSBiZSBzZW50IGluIGJvdGggcHJvdG9jb2xzLgogCiBBbGwgb3RoZXIgY2FwYWJpbGl0aWVzIGFyZSBvbmx5IHJlY29nbml6ZWQgYnkgdGhlIHVwbG9hZC1wYWNrIChmZXRjaAogZnJvbSBzZXJ2ZXIpIHByb2Nlc3MuCkBAIC0xMjMsNiArMTI0LDIwIEBACiBpdHMgYmFzZSBieSBwb3NpdGlvbiBpbiBwYWNrIHJhdGhlciB0aGFuIGJ5IGFuIG9iai1pZC4gIFRoYXQgaXMsIHRoZXkgY2FuCiBzZW5kL3JlYWQgT0JKX09GU19ERUxUQSAoYWthIHR5cGUgNikgaW4gYSBwYWNrZmlsZS4KIAorYWdlbnQKKy0tLS0tCisKK1RoZSBzZXJ2ZXIgbWF5IG9wdGlvbmFsbHkgc2VuZCBhIGNhcGFiaWxpdHkgb2YgdGhlIGZvcm0gYGFnZW50PVhgIHRvCitub3RpZnkgdGhlIGNsaWVudCB0aGF0IHRoZSBzZXJ2ZXIgaXMgcnVubmluZyB2ZXJzaW9uIGBYYC4gVGhlIGNsaWVudCBtYXkKK29wdGlvbmFsbHkgcmV0dXJuIGl0cyBvd24gYWdlbnQgc3RyaW5nIGJ5IHJlc3BvbmRpbmcgd2l0aCBhbiBgYWdlbnQ9WWAKK2NhcGFiaWxpdHkgKGJ1dCBpdCBNVVNUIE5PVCBkbyBzbyBpZiB0aGUgc2VydmVyIGRpZCBub3QgbWVudGlvbiB0aGUKK2FnZW50IGNhcGFiaWxpdHkpLiBUaGUgYFhgIGFuZCBgWWAgc3RyaW5ncyBtYXkgY29udGFpbiBhbnkgcHJpbnRhYmxlCitBU0NJSSBjaGFyYWN0ZXJzIGV4Y2VwdCBzcGFjZSAoaS5lLiwgdGhlIGJ5dGUgcmFuZ2UgMzIgPCB4IDwgMTI3KSwgYW5kCithcmUgdHlwaWNhbGx5IG9mIHRoZSBmb3JtICJwYWNrYWdlL3ZlcnNpb24iIChlLmcuLCAiZ2l0LzEuOC4zLjEiKS4gVGhlCithZ2VudCBzdHJpbmdzIGFyZSBwdXJlbHkgaW5mb3JtYXRpdmUgZm9yIHN0YXRpc3RpY3MgYW5kIGRlYnVnZ2luZworcHVycG9zZXMsIGFuZCBNVVNUIE5PVCBiZSB1c2VkIHRvIHByb2dyYW1hdGljYWxseSBhc3N1bWUgdGhlIHByZXNlbmNlCitvciBhYnNlbmNlIG9mIHBhcnRpY3VsYXIgZmVhdHVyZXMuCisKIHNoYWxsb3cKIC0tLS0tLS0KIApAQCAtMTY4LDcgKzE4Myw3IEBACiByZXBvcnQtc3RhdHVzCiAtLS0tLS0tLS0tLS0tCiAKLVRoZSB1cGxvYWQtcGFjayBwcm9jZXNzIGNhbiByZWNlaXZlIGEgJ3JlcG9ydC1zdGF0dXMnIGNhcGFiaWxpdHksCitUaGUgcmVjZWl2ZS1wYWNrIHByb2Nlc3MgY2FuIHJlY2VpdmUgYSAncmVwb3J0LXN0YXR1cycgY2FwYWJpbGl0eSwKIHdoaWNoIHRlbGxzIGl0IHRoYXQgdGhlIGNsaWVudCB3YW50cyBhIHJlcG9ydCBvZiB3aGF0IGhhcHBlbmVkIGFmdGVyCiBhIHBhY2tmaWxlIHVwbG9hZCBhbmQgcmVmZXJlbmNlIHVwZGF0ZS4gIElmIHRoZSBwdXNoaW5nIGNsaWVudCByZXF1ZXN0cwogdGhpcyBjYXBhYmlsaXR5LCBhZnRlciB1bnBhY2tpbmcgYW5kIHVwZGF0aW5nIHJlZmVyZW5jZXMgdGhlIHNlcnZlcgpAQCAtMTg1LDMgKzIwMCwyMCBAQAogdmFsdWUgb2YgYSByZWZlcmVuY2UgdXBkYXRlLiAgSXQgaXMgbm90IHNlbnQgYmFjayBieSB0aGUgY2xpZW50LCBpdAogc2ltcGx5IGluZm9ybXMgdGhlIGNsaWVudCB0aGF0IGl0IGNhbiBiZSBzZW50IHplcm8taWQgdmFsdWVzCiB0byBkZWxldGUgcmVmZXJlbmNlcy4KKworcXVpZXQKKy0tLS0tCisKK0lmIHRoZSByZWNlaXZlLXBhY2sgc2VydmVyIGFkdmVydGlzZXMgdGhlICdxdWlldCcgY2FwYWJpbGl0eSwgaXQgaXMKK2NhcGFibGUgb2Ygc2lsZW5jaW5nIGh1bWFuLXJlYWRhYmxlIHByb2dyZXNzIG91dHB1dCB3aGljaCBvdGhlcndpc2UgbWF5CitiZSBzaG93biB3aGVuIHByb2Nlc3NpbmcgdGhlIHJlY2VpdmVkIHBhY2suIEEgc2VuZC1wYWNrIGNsaWVudCBzaG91bGQKK3Jlc3BvbmQgd2l0aCB0aGUgJ3F1aWV0JyBjYXBhYmlsaXR5IHRvIHN1cHByZXNzIHNlcnZlci1zaWRlIHByb2dyZXNzCityZXBvcnRpbmcgaWYgdGhlIGxvY2FsIHByb2dyZXNzIHJlcG9ydGluZyBpcyBhbHNvIGJlaW5nIHN1cHByZXNzZWQKKyhlLmcuLCB2aWEgYHB1c2ggLXFgLCBvciBpZiBzdGRlcnIgZG9lcyBub3QgZ28gdG8gYSB0dHkpLgorCithbGxvdy10aXAtc2hhMS1pbi13YW50CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHRoZSB1cGxvYWQtcGFjayBzZXJ2ZXIgYWR2ZXJ0aXNlcyB0aGlzIGNhcGFiaWxpdHksIGZldGNoLXBhY2sgbWF5CitzZW5kICJ3YW50IiBsaW5lcyB3aXRoIFNIQS0xcyB0aGF0IGV4aXN0IGF0IHRoZSBzZXJ2ZXIgYnV0IGFyZSBub3QKK2FkdmVydGlzZWQgYnkgdXBsb2FkLXBhY2suCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9yYWN5LWdpdC50eHQgYi9Eb2N1bWVudGF0aW9uL3RlY2huaWNhbC9yYWN5LWdpdC50eHQKaW5kZXggNmRjODJjYS4uMjQyYTA0NCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi90ZWNobmljYWwvcmFjeS1naXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdGVjaG5pY2FsL3JhY3ktZ2l0LnR4dApAQCAtNDYsNyArNDYsNyBAQAogb24tZGlzayB0aW1lc3RhbXBzLCByZXN1bHRpbmcgaW4gbWVhbmluZ2xlc3MgY2hhbmdlcyB3aGVuIGFuCiBpbm9kZSBpcyBldmljdGVkIGZyb20gdGhlIGlub2RlIGNhY2hlLiAgU2VlIGNvbW1pdCA4Y2UxM2IwCiBvZiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdGdseC9oaXN0b3J5LmdpdAotKFtQQVRDSF0gU3luYyBpbiBjb3JlIHRpbWUgZ3JhbnVhbGl0eSB3aXRoIGZpbGVzeXN0ZW1zLAorKFtQQVRDSF0gU3luYyBpbiBjb3JlIHRpbWUgZ3JhbnVsYXJpdHkgd2l0aCBmaWxlc3lzdGVtcywKIDIwMDUtMDEtMDQpLgogCiBSYWN5IEdpdApAQCAtMTM1LDkgKzEzNSw5IEBACiAgICQgZ2l0IGxzLWZpbGVzIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLXN0ZGluCiAgICQgdG91Y2ggLXIgLmRhdGVzdGFtcCAuZ2l0L2luZGV4CiAKLVRoaXMgd2lsbCBtYWtlIGFsbCBpbmRleCBlbnRyaWVzIHJhY2lseSBjbGVhbi4gIFRoZSBsaW51eC0yLjYKLXByb2plY3QsIGZvciBleGFtcGxlLCB0aGVyZSBhcmUgb3ZlciAyMCwwMDAgZmlsZXMgaW4gdGhlIHdvcmtpbmcKLXRyZWUuICBPbiBteSBBdGhsb24gNjQgWDIgMzgwMCssIGFmdGVyIHRoZSBhYm92ZToKK1RoaXMgd2lsbCBtYWtlIGFsbCBpbmRleCBlbnRyaWVzIHJhY2lseSBjbGVhbi4gIFRoZSBsaW51eCBwcm9qZWN0LCBmb3IKK2V4YW1wbGUsIHRoZXJlIGFyZSBvdmVyIDIwLDAwMCBmaWxlcyBpbiB0aGUgd29ya2luZyB0cmVlLiAgT24gbXkKK0F0aGxvbiA2NCBYMiAzODAwKywgYWZ0ZXIgdGhlIGFib3ZlOgogCiAgICQgL3Vzci9iaW4vdGltZSBnaXQgZGlmZi1maWxlcwogICAxLjY4dXNlciAwLjU0c3lzdGVtIDA6MDIuMjJlbGFwc2VkIDEwMCVDUFUgKDBhdmd0ZXh0KzBhdmdkYXRhIDBtYXhyZXNpZGVudClrCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VybHMudHh0IGIvRG9jdW1lbnRhdGlvbi91cmxzLnR4dAppbmRleCAzY2ExMjJmLi45Y2NiMjQ2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3VybHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdXJscy50eHQKQEAgLTExLDYgKzExLDkgQEAKIGFuZCBwdXNoaW5nLCBidXQgdGhlc2UgYXJlIGluZWZmaWNpZW50IGFuZCBkZXByZWNhdGVkOyBkbyBub3QgdXNlCiB0aGVtKS4KIAorVGhlIG5hdGl2ZSB0cmFuc3BvcnQgKGkuZS4gZ2l0Oi8vIFVSTCkgZG9lcyBubyBhdXRoZW50aWNhdGlvbiBhbmQKK3Nob3VsZCBiZSB1c2VkIHdpdGggY2F1dGlvbiBvbiB1bnNlY3VyZWQgbmV0d29ya3MuCisKIFRoZSBmb2xsb3dpbmcgc3ludGF4ZXMgbWF5IGJlIHVzZWQgd2l0aCB0aGVtOgogCiAtIHNzaDovL3tzdGFydHNifXVzZXJAe2VuZHNifWhvc3QueHp7c3RhcnRzYn06cG9ydHtlbmRzYn0vcGF0aC90by9yZXBvLmdpdC8KQEAgLTIzLDYgKzI2LDEyIEBACiAKIC0ge3N0YXJ0c2J9dXNlckB7ZW5kc2J9aG9zdC54ejpwYXRoL3RvL3JlcG8uZ2l0LwogCitUaGlzIHN5bnRheCBpcyBvbmx5IHJlY29nbml6ZWQgaWYgdGhlcmUgYXJlIG5vIHNsYXNoZXMgYmVmb3JlIHRoZQorZmlyc3QgY29sb24uIFRoaXMgaGVscHMgZGlmZmVyZW50aWF0ZSBhIGxvY2FsIHBhdGggdGhhdCBjb250YWlucyBhCitjb2xvbi4gRm9yIGV4YW1wbGUgdGhlIGxvY2FsIHBhdGggYGZvbzpiYXJgIGNvdWxkIGJlIHNwZWNpZmllZCBhcyBhbgorYWJzb2x1dGUgcGF0aCBvciBgLi9mb286YmFyYCB0byBhdm9pZCBiZWluZyBtaXNpbnRlcnByZXRlZCBhcyBhbiBzc2gKK3VybC4KKwogVGhlIHNzaCBhbmQgZ2l0IHByb3RvY29scyBhZGRpdGlvbmFsbHkgc3VwcG9ydCB+dXNlcm5hbWUgZXhwYW5zaW9uOgogCiAtIHNzaDovL3tzdGFydHNifXVzZXJAe2VuZHNifWhvc3QueHp7c3RhcnRzYn06cG9ydHtlbmRzYn0vfntzdGFydHNifXVzZXJ7ZW5kc2J9L3BhdGgvdG8vcmVwby5naXQvCkBAIC0zMyw3ICs0Miw3IEBACiBzeW50YXhlcyBtYXkgYmUgdXNlZDoKIAogLSAvcGF0aC90by9yZXBvLmdpdC8KLS0gZmlsZTovLy9wYXRoL3RvL3JlcG8uZ2l0LworLSBcZmlsZTovLy9wYXRoL3RvL3JlcG8uZ2l0LwogCiBpZm5kZWY6OmdpdC1jbG9uZVtdCiBUaGVzZSB0d28gc3ludGF4ZXMgYXJlIG1vc3RseSBlcXVpdmFsZW50LCBleGNlcHQgd2hlbiBjbG9uaW5nLCB3aGVuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VzZXItbWFudWFsLnR4dCBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CmluZGV4IGU4MzFjYzIuLmZlNzIzZTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdXNlci1tYW51YWwudHh0CkBAIC01NywxNyArNTcsMTcgQEAKIHByb2plY3QgaW4gbWluZCwgaGVyZSBhcmUgc29tZSBpbnRlcmVzdGluZyBleGFtcGxlczoKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JIyBHaXQgaXRzZWxmIChhcHByb3guIDEwTUIgZG93bmxvYWQpOgorCSMgR2l0IGl0c2VsZiAoYXBwcm94LiA0ME1CIGRvd25sb2FkKToKICQgZ2l0IGNsb25lIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vZ2l0L2dpdC5naXQKLQkjIHRoZSBMaW51eCBrZXJuZWwgKGFwcHJveC4gMTUwTUIgZG93bmxvYWQpOgotJCBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LTIuNi5naXQKKwkjIHRoZSBMaW51eCBrZXJuZWwgKGFwcHJveC4gNjQwTUIgZG93bmxvYWQpOgorJCBnaXQgY2xvbmUgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRoZSBpbml0aWFsIGNsb25lIG1heSBiZSB0aW1lLWNvbnN1bWluZyBmb3IgYSBsYXJnZSBwcm9qZWN0LCBidXQgeW91CiB3aWxsIG9ubHkgbmVlZCB0byBjbG9uZSBvbmNlLgogCi1UaGUgY2xvbmUgY29tbWFuZCBjcmVhdGVzIGEgbmV3IGRpcmVjdG9yeSBuYW1lZCBhZnRlciB0aGUgcHJvamVjdCAoYGdpdGAKLW9yIGBsaW51eC0yLjZgIGluIHRoZSBleGFtcGxlcyBhYm92ZSkuICBBZnRlciB5b3UgY2QgaW50byB0aGlzCitUaGUgY2xvbmUgY29tbWFuZCBjcmVhdGVzIGEgbmV3IGRpcmVjdG9yeSBuYW1lZCBhZnRlciB0aGUgcHJvamVjdAorKGBnaXRgIG9yIGBsaW51eGAgaW4gdGhlIGV4YW1wbGVzIGFib3ZlKS4gIEFmdGVyIHlvdSBjZCBpbnRvIHRoaXMKIGRpcmVjdG9yeSwgeW91IHdpbGwgc2VlIHRoYXQgaXQgY29udGFpbnMgYSBjb3B5IG9mIHRoZSBwcm9qZWN0IGZpbGVzLAogY2FsbGVkIHRoZSA8PGRlZl93b3JraW5nX3RyZWUsd29ya2luZyB0cmVlPj4sIHRvZ2V0aGVyIHdpdGggYSBzcGVjaWFsCiB0b3AtbGV2ZWwgZGlyZWN0b3J5IG5hbWVkIGAuZ2l0YCwgd2hpY2ggY29udGFpbnMgYWxsIHRoZSBpbmZvcm1hdGlvbgpAQCAtNDMxLDE5ICs0MzEsMjUgQEAKIGNsb25lZCBmcm9tLCB1c2luZyBsaW5rZ2l0OmdpdC1yZW1vdGVbMV06CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IHJlbW90ZSBhZGQgbGludXgtbmZzIGdpdDovL2xpbnV4LW5mcy5vcmcvcHViL25mcy0yLjYuZ2l0Ci0kIGdpdCBmZXRjaCBsaW51eC1uZnMKLSogcmVmcy9yZW1vdGVzL2xpbnV4LW5mcy9tYXN0ZXI6IHN0b3JpbmcgYnJhbmNoICdtYXN0ZXInIC4uLgotICBjb21taXQ6IGJmODFiNDYKKyQgZ2l0IHJlbW90ZSBhZGQgc3RhZ2luZyBnaXQ6Ly9naXQua2VybmVsLm9yZy8uLi4vZ3JlZ2toL3N0YWdpbmcuZ2l0CiskIGdpdCBmZXRjaCBzdGFnaW5nCisuLi4KK0Zyb20gZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nCisgKiBbbmV3IGJyYW5jaF0gICAgICBtYXN0ZXIgICAgIC0+IHN0YWdpbmcvbWFzdGVyCisgKiBbbmV3IGJyYW5jaF0gICAgICBzdGFnaW5nLWxpbnVzIC0+IHN0YWdpbmcvc3RhZ2luZy1saW51cworICogW25ldyBicmFuY2hdICAgICAgc3RhZ2luZy1uZXh0IC0+IHN0YWdpbmcvc3RhZ2luZy1uZXh0CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE5ldyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgd2lsbCBiZSBzdG9yZWQgdW5kZXIgdGhlIHNob3J0aGFuZCBuYW1lCi10aGF0IHlvdSBnYXZlIGBnaXQgcmVtb3RlIGFkZGAsIGluIHRoaXMgY2FzZSBgbGludXgtbmZzYDoKK3RoYXQgeW91IGdhdmUgYGdpdCByZW1vdGUgYWRkYCwgaW4gdGhpcyBjYXNlIGBzdGFnaW5nYDoKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJCBnaXQgYnJhbmNoIC1yCi1saW51eC1uZnMvbWFzdGVyCi1vcmlnaW4vbWFzdGVyCisgIG9yaWdpbi9IRUFEIC0+IG9yaWdpbi9tYXN0ZXIKKyAgb3JpZ2luL21hc3RlcgorICBzdGFnaW5nL21hc3RlcgorICBzdGFnaW5nL3N0YWdpbmctbGludXMKKyAgc3RhZ2luZy9zdGFnaW5nLW5leHQKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogSWYgeW91IHJ1biBgZ2l0IGZldGNoIDxyZW1vdGU+YCBsYXRlciwgdGhlIHJlbW90ZS10cmFja2luZyBicmFuY2hlcwpAQCAtNDU1LDkgKzQ2MSw5IEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAkIGNhdCAuZ2l0L2NvbmZpZwogLi4uCi1bcmVtb3RlICJsaW51eC1uZnMiXQotCXVybCA9IGdpdDovL2xpbnV4LW5mcy5vcmcvcHViL25mcy0yLjYuZ2l0Ci0JZmV0Y2ggPSArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9saW51eC1uZnMvKgorW3JlbW90ZSAic3RhZ2luZyJdCisJdXJsID0gZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2dyZWdraC9zdGFnaW5nLmdpdAorCWZldGNoID0gK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvc3RhZ2luZy8qCiAuLi4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTgzNSw3ICsxODQxLDcgQEAKIHJlc29sdXRpb24sIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgY29tbWl0LCBqdXN0IHJ1bgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kIGdpdCBhbSAtLXJlc29sdmVkCiskIGdpdCBhbSAtLWNvbnRpbnVlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGFuZCBHaXQgd2lsbCBjcmVhdGUgdGhlIGNvbW1pdCBmb3IgeW91IGFuZCBjb250aW51ZSBhcHBseWluZyB0aGUKQEAgLTIxNTYsNyArMjE2Miw3IEBACiB0cmVlOgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0kIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXgtMi42LmdpdCB3b3JrCiskIGdpdCBjbG9uZSBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0IHdvcmsKICQgY2Qgd29yawogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0yMTk4LDcgKzIyMDQsNyBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogJCBjYXQgPj4gLmdpdC9jb25maWcgPDxFT0YKIFtyZW1vdGUgIm15dHJlZSJdCi0JdXJsID0gIG1hc3Rlci5rZXJuZWwub3JnOi9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvYWVnbC9saW51eC0yLjYuZ2l0CisJdXJsID0gIG1hc3Rlci5rZXJuZWwub3JnOi9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvYWVnbC9saW51eC5naXQKIAlwdXNoID0gcmVsZWFzZQogCXB1c2ggPSB0ZXN0CiBFT0YKQEAgLTQyNTYsMTUgKzQyNjIsMTYgQEAKIE5vd2FkYXlzLCBgZ2l0IGxvZ2AgaXMgYSBidWlsdGluLCB3aGljaCBtZWFucyB0aGF0IGl0IGlzIF9jb250YWluZWRfIGluIHRoZQogY29tbWFuZCBgZ2l0YC4gIFRoZSBzb3VyY2Ugc2lkZSBvZiBhIGJ1aWx0aW4gaXMKIAotLSBhIGZ1bmN0aW9uIGNhbGxlZCBgY21kXzxibGE+YCwgdHlwaWNhbGx5IGRlZmluZWQgaW4gYGJ1aWx0aW4tPGJsYT4uY2AsCi0gIGFuZCBkZWNsYXJlZCBpbiBgYnVpbHRpbi5oYCwKKy0gYSBmdW5jdGlvbiBjYWxsZWQgYGNtZF88YmxhPmAsIHR5cGljYWxseSBkZWZpbmVkIGluIGBidWlsdGluLzxibGEuYz5gCisgIChub3RlIHRoYXQgb2xkZXIgdmVyc2lvbnMgb2YgR2l0IHVzZWQgdG8gaGF2ZSBpdCBpbiBgYnVpbHRpbi08YmxhPi5jYAorICBpbnN0ZWFkKSwgYW5kIGRlY2xhcmVkIGluIGBidWlsdGluLmhgLgogCiAtIGFuIGVudHJ5IGluIHRoZSBgY29tbWFuZHNbXWAgYXJyYXkgaW4gYGdpdC5jYCwgYW5kCiAKIC0gYW4gZW50cnkgaW4gYEJVSUxUSU5fT0JKRUNUU2AgaW4gdGhlIGBNYWtlZmlsZWAuCiAKIFNvbWV0aW1lcywgbW9yZSB0aGFuIG9uZSBidWlsdGluIGlzIGNvbnRhaW5lZCBpbiBvbmUgc291cmNlIGZpbGUuICBGb3IKLWV4YW1wbGUsIGBjbWRfd2hhdGNoYW5nZWQoKWAgYW5kIGBjbWRfbG9nKClgIGJvdGggcmVzaWRlIGluIGBidWlsdGluLWxvZy5jYCwKK2V4YW1wbGUsIGBjbWRfd2hhdGNoYW5nZWQoKWAgYW5kIGBjbWRfbG9nKClgIGJvdGggcmVzaWRlIGluIGBidWlsdGluL2xvZy5jYCwKIHNpbmNlIHRoZXkgc2hhcmUgcXVpdGUgYSBiaXQgb2YgY29kZS4gIEluIHRoYXQgY2FzZSwgdGhlIGNvbW1hbmRzIHdoaWNoIGFyZQogX25vdF8gbmFtZWQgbGlrZSB0aGUgYC5jYCBmaWxlIGluIHdoaWNoIHRoZXkgbGl2ZSBoYXZlIHRvIGJlIGxpc3RlZCBpbgogYEJVSUxUX0lOU2AgaW4gdGhlIGBNYWtlZmlsZWAuCkBAIC00Mjg3LDEwICs0Mjk0LDEwIEBACiAtIGlzIHBsdW1iaW5nLCBhbmQKIAogLSB3YXMgYXJvdW5kIGV2ZW4gaW4gdGhlIGluaXRpYWwgY29tbWl0IChpdCBsaXRlcmFsbHkgd2VudCBvbmx5IHRocm91Z2gKLSAgc29tZSAyMCByZXZpc2lvbnMgYXMgYGNhdC1maWxlLmNgLCB3YXMgcmVuYW1lZCB0byBgYnVpbHRpbi1jYXQtZmlsZS5jYAorICBzb21lIDIwIHJldmlzaW9ucyBhcyBgY2F0LWZpbGUuY2AsIHdhcyByZW5hbWVkIHRvIGBidWlsdGluL2NhdC1maWxlLmNgCiAgIHdoZW4gbWFkZSBhIGJ1aWx0aW4sIGFuZCB0aGVuIHNhdyBsZXNzIHRoYW4gMTAgdmVyc2lvbnMpLgogCi1TbywgbG9vayBpbnRvIGBidWlsdGluLWNhdC1maWxlLmNgLCBzZWFyY2ggZm9yIGBjbWRfY2F0X2ZpbGUoKWAgYW5kIGxvb2sgd2hhdAorU28sIGxvb2sgaW50byBgYnVpbHRpbi9jYXQtZmlsZS5jYCwgc2VhcmNoIGZvciBgY21kX2NhdF9maWxlKClgIGFuZCBsb29rIHdoYXQKIGl0IGRvZXMuCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDM2Niw3ICs0MzczLDcgQEAKIGJ1aWx0aW46CiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSQgZ2l0IGxvZyAtLW5vLW1lcmdlcyAtLWRpZmYtZmlsdGVyPUEgYnVpbHRpbi0qLmMKKyQgZ2l0IGxvZyAtLW5vLW1lcmdlcyAtLWRpZmYtZmlsdGVyPUEgYnVpbHRpbi8qLmMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogWW91IHNlZSwgR2l0IGlzIGFjdHVhbGx5IHRoZSBiZXN0IHRvb2wgdG8gZmluZCBvdXQgYWJvdXQgdGhlIHNvdXJjZSBvZiBHaXQKQEAgLTQ2NjgsNSArNDY3NSw1IEBACiBBbHRlcm5hdGVzLCBjbG9uZSAtcmVmZXJlbmNlLCBldGMuCiAKIE1vcmUgb24gcmVjb3ZlcnkgZnJvbSByZXBvc2l0b3J5IGNvcnJ1cHRpb24uICBTZWU6Ci0JaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTcyNjM4NjQ4MjA3OTkmdz0yCi0JaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTcxNDc4NTU1MDM3OTgmdz0yCisJaHR0cDovL21hcmMuaW5mby8/bD1naXQmbT0xMTcyNjM4NjQ4MjA3OTkmdz0yCisJaHR0cDovL21hcmMuaW5mby8/bD1naXQmbT0xMTcxNDc4NTU1MDM3OTgmdz0yCmRpZmYgLS1naXQgYS9HSVQtVkVSU0lPTi1HRU4gYi9HSVQtVkVSU0lPTi1HRU4KaW5kZXggN2EyNGFjYS4uMDYwMjZlYSAxMDA3NTUKLS0tIGEvR0lULVZFUlNJT04tR0VOCisrKyBiL0dJVC1WRVJTSU9OLUdFTgpAQCAtMSw3ICsxLDcgQEAKICMhL2Jpbi9zaAogCiBHVkY9R0lULVZFUlNJT04tRklMRQotREVGX1ZFUj12MS44LjMtcmMxCitERUZfVkVSPXYxLjguNAogCiBMRj0nCiAnCkBAIC0xMSw3ICsxMSw3IEBACiBpZiB0ZXN0IC1mIHZlcnNpb24KIHRoZW4KIAlWTj0kKGNhdCB2ZXJzaW9uKSB8fCBWTj0iJERFRl9WRVIiCi1lbGlmIHRlc3QgLWQgLmdpdCAtbyAtZiAuZ2l0ICYmCitlbGlmIHRlc3QgLWQgJHtHSVRfRElSOi0uZ2l0fSAtbyAtZiAuZ2l0ICYmCiAJVk49JChnaXQgZGVzY3JpYmUgLS1tYXRjaCAidlswLTldKiIgLS1hYmJyZXY9NyBIRUFEIDI+L2Rldi9udWxsKSAmJgogCWNhc2UgIiRWTiIgaW4KIAkqJExGKikgKGV4aXQgMSkgOzsKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggMGY5MzFhMi4uNDAyNjIxMSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEwNiw3ICsxMDYsNyBAQAogIyBEZWZpbmUgTk9fRk5NQVRDSF9DQVNFRk9MRCBpZiB5b3VyIGZubWF0Y2ggZnVuY3Rpb24gZG9lc24ndCBoYXZlIHRoZQogIyBGTk1fQ0FTRUZPTEQgR05VIGV4dGVuc2lvbi4KICMKLSMgRGVmaW5lIFVTRV9XSUxETUFUQ0ggaWYgeW91IHdhbnQgdG8gdXNlIEdpdCdzIHdpbGRtYXRjaAorIyBEZWZpbmUgTk9fV0lMRE1BVENIIGlmIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgR2l0J3Mgd2lsZG1hdGNoCiAjIGltcGxlbWVudGF0aW9uIGFzIGZubWF0Y2gKICMKICMgRGVmaW5lIE5PX0dFQ09TX0lOX1BXRU5UIGlmIHlvdSBkb24ndCBoYXZlIHB3X2dlY29zIGluIHN0cnVjdCBwYXNzd2QKQEAgLTEzNyw2ICsxMzcsMTAgQEAKICMgc3BlY2lmeSB5b3VyIG93biAob3IgRGFyd2luUG9ydCdzKSBpbmNsdWRlIGRpcmVjdG9yaWVzIGFuZAogIyBsaWJyYXJ5IGRpcmVjdG9yaWVzIGJ5IGRlZmluaW5nIENGTEFHUyBhbmQgTERGTEFHUyBhcHByb3ByaWF0ZWx5LgogIworIyBEZWZpbmUgTk9fQVBQTEVfQ09NTU9OX0NSWVBUTyBpZiB5b3UgYXJlIGJ1aWxkaW5nIG9uIERhcndpbi9NYWMgT1MgWAorIyBhbmQgZG8gbm90IHdhbnQgdG8gdXNlIEFwcGxlJ3MgQ29tbW9uQ3J5cHRvIGxpYnJhcnkuICBUaGlzIGFsbG93cyB5b3UKKyMgdG8gcHJvdmlkZSB5b3VyIG93biBPcGVuU1NMIGxpYnJhcnksIGZvciBleGFtcGxlIGZyb20gTWFjUG9ydHMuCisjCiAjIERlZmluZSBCTEtfU0hBMSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBtYWtlIHVzZSBvZiB0aGUgYnVuZGxlZAogIyBvcHRpbWl6ZWQgQyBTSEExIHJvdXRpbmUuCiAjCkBAIC0yOTAsMTAgKzI5NCw2IEBACiAjCiAjIERlZmluZSBOT19SRUdFWCBpZiB5b3UgaGF2ZSBubyBvciBpbmZlcmlvciByZWdleCBzdXBwb3J0IGluIHlvdXIgQyBsaWJyYXJ5LgogIwotIyBEZWZpbmUgQ1lHV0lOX1YxNV9XSU4zMkFQSSBpZiB5b3UgYXJlIHVzaW5nIEN5Z3dpbiB2MS43LnggYnV0IGFyZSBub3QKLSMgdXNpbmcgdGhlIGN1cnJlbnQgdzMyYXBpIHBhY2thZ2VzLiBUaGUgcmVjb21tZW5kZWQgYXBwcm9hY2gsIGhvd2V2ZXIsCi0jIGlzIHRvIHVwZGF0ZSB5b3VyIGluc3RhbGxhdGlvbiBpZiBjb21waWxhdGlvbiBlcnJvcnMgb2NjdXIuCi0jCiAjIERlZmluZSBIQVZFX0RFVl9UVFkgaWYgeW91ciBzeXN0ZW0gY2FuIG9wZW4gL2Rldi90dHkgdG8gaW50ZXJhY3Qgd2l0aCB0aGUKICMgdXNlci4KICMKQEAgLTQ2MCw2ICs0NjAsNyBAQAogU0NSSVBUX1NIICs9IGdpdC1wdWxsLnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXF1aWx0aW1wb3J0LnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXJlYmFzZS5zaAorU0NSSVBUX1NIICs9IGdpdC1yZW1vdGUtdGVzdGdpdC5zaAogU0NSSVBUX1NIICs9IGdpdC1yZXBhY2suc2gKIFNDUklQVF9TSCArPSBnaXQtcmVxdWVzdC1wdWxsLnNoCiBTQ1JJUFRfU0ggKz0gZ2l0LXN0YXNoLnNoCkBAIC00ODcsMTEgKzQ4OCwxOCBAQAogU0NSSVBUX1BZVEhPTiArPSBnaXQtcmVtb3RlLXRlc3RweS5weQogU0NSSVBUX1BZVEhPTiArPSBnaXQtcDQucHkKIAorTk9fSU5TVEFMTCArPSBnaXQtcmVtb3RlLXRlc3RnaXQKK05PX0lOU1RBTEwgKz0gZ2l0LXJlbW90ZS10ZXN0cHkKKwogIyBHZW5lcmF0ZWQgZmlsZXMgZm9yIHNjcmlwdHMKIFNDUklQVF9TSF9HRU4gPSAkKHBhdHN1YnN0ICUuc2gsJSwkKFNDUklQVF9TSCkpCiBTQ1JJUFRfUEVSTF9HRU4gPSAkKHBhdHN1YnN0ICUucGVybCwlLCQoU0NSSVBUX1BFUkwpKQogU0NSSVBUX1BZVEhPTl9HRU4gPSAkKHBhdHN1YnN0ICUucHksJSwkKFNDUklQVF9QWVRIT04pKQogCitTQ1JJUFRfU0hfSU5TID0gJChmaWx0ZXItb3V0ICQoTk9fSU5TVEFMTCksJChTQ1JJUFRfU0hfR0VOKSkKK1NDUklQVF9QRVJMX0lOUyA9ICQoZmlsdGVyLW91dCAkKE5PX0lOU1RBTEwpLCQoU0NSSVBUX1BFUkxfR0VOKSkKK1NDUklQVF9QWVRIT05fSU5TID0gJChmaWx0ZXItb3V0ICQoTk9fSU5TVEFMTCksJChTQ1JJUFRfUFlUSE9OX0dFTikpCisKICMgSW5kaXZpZHVhbCBydWxlcyB0byBhbGxvdyBlLmcuCiAjICJtYWtlIC1DIC4uLy4uIFNDUklQVF9QRVJMPWNvbnRyaWIvZm9vL2Jhci5wZXJsIGJ1aWxkLXBlcmwtc2NyaXB0IgogIyBmcm9tIHN1YmRpcmVjdG9yaWVzIGxpa2UgY29udHJpYi8qLwpAQCAtNTAxLDEyICs1MDksMTIgQEAKIGJ1aWxkLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9HRU4pCiAKIC5QSE9OWTogaW5zdGFsbC1wZXJsLXNjcmlwdCBpbnN0YWxsLXNoLXNjcmlwdCBpbnN0YWxsLXB5dGhvbi1zY3JpcHQKLWluc3RhbGwtc2gtc2NyaXB0OiAkKFNDUklQVF9TSF9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9TSF9HRU4pICckKERFU1RESVJfU1EpJChnaXRleGVjX2luc3RkaXJfU1EpJwotaW5zdGFsbC1wZXJsLXNjcmlwdDogJChTQ1JJUFRfUEVSTF9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9QRVJMX0dFTikgJyQoREVTVERJUl9TUSkkKGdpdGV4ZWNfaW5zdGRpcl9TUSknCi1pbnN0YWxsLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9HRU4pCi0JJChJTlNUQUxMKSAkKFNDUklQVF9QWVRIT05fR0VOKSAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKK2luc3RhbGwtc2gtc2NyaXB0OiAkKFNDUklQVF9TSF9JTlMpCisJJChJTlNUQUxMKSAkXiAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKK2luc3RhbGwtcGVybC1zY3JpcHQ6ICQoU0NSSVBUX1BFUkxfSU5TKQorCSQoSU5TVEFMTCkgJF4gJyQoREVTVERJUl9TUSkkKGdpdGV4ZWNfaW5zdGRpcl9TUSknCitpbnN0YWxsLXB5dGhvbi1zY3JpcHQ6ICQoU0NSSVBUX1BZVEhPTl9JTlMpCisJJChJTlNUQUxMKSAkXiAnJChERVNURElSX1NRKSQoZ2l0ZXhlY19pbnN0ZGlyX1NRKScKIAogLlBIT05ZOiBjbGVhbi1wZXJsLXNjcmlwdCBjbGVhbi1zaC1zY3JpcHQgY2xlYW4tcHl0aG9uLXNjcmlwdAogY2xlYW4tc2gtc2NyaXB0OgpAQCAtNTE2LDkgKzUyNCw5IEBACiBjbGVhbi1weXRob24tc2NyaXB0OgogCSQoUk0pICQoU0NSSVBUX1BZVEhPTl9HRU4pCiAKLVNDUklQVFMgPSAkKFNDUklQVF9TSF9HRU4pIFwKLQkgICQoU0NSSVBUX1BFUkxfR0VOKSBcCi0JICAkKFNDUklQVF9QWVRIT05fR0VOKSBcCitTQ1JJUFRTID0gJChTQ1JJUFRfU0hfSU5TKSBcCisJICAkKFNDUklQVF9QRVJMX0lOUykgXAorCSAgJChTQ1JJUFRfUFlUSE9OX0lOUykgXAogCSAgZ2l0LWluc3Rhd2ViCiAKIEVUQUdTX1RBUkdFVCA9IFRBR1MKQEAgLTU1OCw2ICs1NjYsOCBAQAogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1ta3RlbXAKIFRFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3QtcGFyc2Utb3B0aW9ucwogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1wYXRoLXV0aWxzCitURVNUX1BST0dSQU1TX05FRURfWCArPSB0ZXN0LXByaW8tcXVldWUKK1RFU1RfUFJPR1JBTVNfTkVFRF9YICs9IHRlc3QtcmVhZC1jYWNoZQogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1yZWdleAogVEVTVF9QUk9HUkFNU19ORUVEX1ggKz0gdGVzdC1yZXZpc2lvbi13YWxraW5nCiBURVNUX1BST0dSQU1TX05FRURfWCArPSB0ZXN0LXJ1bi1jb21tYW5kCkBAIC02NDEsNyArNjUxLDYgQEAKIExJQl9IICs9IGNvbHVtbi5oCiBMSUJfSCArPSBjb21taXQuaAogTElCX0ggKz0gY29tcGF0L2Jzd2FwLmgKLUxJQl9IICs9IGNvbXBhdC9jeWd3aW4uaAogTElCX0ggKz0gY29tcGF0L21pbmd3LmgKIExJQl9IICs9IGNvbXBhdC9vYnN0YWNrLmgKIExJQl9IICs9IGNvbXBhdC9wb2xsL3BvbGwuaApAQCAtNjczLDYgKzY4Miw4IEBACiBMSUJfSCArPSBodHRwLmgKIExJQl9IICs9IGt3c2V0LmgKIExJQl9IICs9IGxldmVuc2h0ZWluLmgKK0xJQl9IICs9IGxpbmUtbG9nLmgKK0xJQl9IICs9IGxpbmUtcmFuZ2UuaAogTElCX0ggKz0gbGlzdC1vYmplY3RzLmgKIExJQl9IICs9IGxsLW1lcmdlLmgKIExJQl9IICs9IGxvZy10cmVlLmgKQEAgLTY4MiwxNSArNjkzLDE2IEBACiBMSUJfSCArPSBtZXJnZXNvcnQuaAogTElCX0ggKz0gbm90ZXMtY2FjaGUuaAogTElCX0ggKz0gbm90ZXMtbWVyZ2UuaAorTElCX0ggKz0gbm90ZXMtdXRpbHMuaAogTElCX0ggKz0gbm90ZXMuaAogTElCX0ggKz0gb2JqZWN0LmgKLUxJQl9IICs9IHBhY2stcmVmcy5oCiBMSUJfSCArPSBwYWNrLXJldmluZGV4LmgKIExJQl9IICs9IHBhY2suaAogTElCX0ggKz0gcGFyc2Utb3B0aW9ucy5oCiBMSUJfSCArPSBwYXRjaC1pZHMuaAogTElCX0ggKz0gcGF0aHNwZWMuaAogTElCX0ggKz0gcGt0LWxpbmUuaAorTElCX0ggKz0gcHJpby1xdWV1ZS5oCiBMSUJfSCArPSBwcm9ncmVzcy5oCiBMSUJfSCArPSBwcm9tcHQuaAogTElCX0ggKz0gcXVvdGUuaApAQCAtODAxLDYgKzgxMyw4IEBACiBMSUJfT0JKUyArPSBpZGVudC5vCiBMSUJfT0JKUyArPSBrd3NldC5vCiBMSUJfT0JKUyArPSBsZXZlbnNodGVpbi5vCitMSUJfT0JKUyArPSBsaW5lLWxvZy5vCitMSUJfT0JKUyArPSBsaW5lLXJhbmdlLm8KIExJQl9PQkpTICs9IGxpc3Qtb2JqZWN0cy5vCiBMSUJfT0JKUyArPSBsbC1tZXJnZS5vCiBMSUJfT0JKUyArPSBsb2NrZmlsZS5vCkBAIC04MTUsOSArODI5LDkgQEAKIExJQl9PQkpTICs9IG5vdGVzLm8KIExJQl9PQkpTICs9IG5vdGVzLWNhY2hlLm8KIExJQl9PQkpTICs9IG5vdGVzLW1lcmdlLm8KK0xJQl9PQkpTICs9IG5vdGVzLXV0aWxzLm8KIExJQl9PQkpTICs9IG9iamVjdC5vCiBMSUJfT0JKUyArPSBwYWNrLWNoZWNrLm8KLUxJQl9PQkpTICs9IHBhY2stcmVmcy5vCiBMSUJfT0JKUyArPSBwYWNrLXJldmluZGV4Lm8KIExJQl9PQkpTICs9IHBhY2std3JpdGUubwogTElCX09CSlMgKz0gcGFnZXIubwpAQCAtODMwLDYgKzg0NCw3IEBACiBMSUJfT0JKUyArPSBwa3QtbGluZS5vCiBMSUJfT0JKUyArPSBwcmVsb2FkLWluZGV4Lm8KIExJQl9PQkpTICs9IHByZXR0eS5vCitMSUJfT0JKUyArPSBwcmlvLXF1ZXVlLm8KIExJQl9PQkpTICs9IHByb2dyZXNzLm8KIExJQl9PQkpTICs9IHByb21wdC5vCiBMSUJfT0JKUyArPSBxdW90ZS5vCkBAIC04OTMsNiArOTA4LDcgQEAKIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL2NhdC1maWxlLm8KIEJVSUxUSU5fT0JKUyArPSBidWlsdGluL2NoZWNrLWF0dHIubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vY2hlY2staWdub3JlLm8KK0JVSUxUSU5fT0JKUyArPSBidWlsdGluL2NoZWNrLW1haWxtYXAubwogQlVJTFRJTl9PQkpTICs9IGJ1aWx0aW4vY2hlY2stcmVmLWZvcm1hdC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9jaGVja291dC1pbmRleC5vCiBCVUlMVElOX09CSlMgKz0gYnVpbHRpbi9jaGVja291dC5vCkBAIC0xMDU0LDYgKzEwNzAsMTEgQEAKIAkJCUJBU0lDX0xERkxBR1MgKz0gLUwvb3B0L2xvY2FsL2xpYgogCQllbmRpZgogCWVuZGlmCisJaWZuZGVmIE5PX0FQUExFX0NPTU1PTl9DUllQVE8KKwkJQVBQTEVfQ09NTU9OX0NSWVBUTyA9IFllc1BsZWFzZQorCQlDT01QQVRfQ0ZMQUdTICs9IC1EQVBQTEVfQ09NTU9OX0NSWVBUTworCWVuZGlmCisJTk9fUkVHRVggPSBZZXNQbGVhc2UKIAlQVEhSRUFEX0xJQlMgPQogZW5kaWYKIApAQCAtMTI2MSw3ICsxMjgyLDcgQEAKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvZm5tYXRjaC9mbm1hdGNoLm8KIGVuZGlmCiBlbmRpZgotaWZkZWYgVVNFX1dJTERNQVRDSAoraWZuZGVmIE5PX1dJTERNQVRDSAogCUNPTVBBVF9DRkxBR1MgKz0gLURVU0VfV0lMRE1BVENICiBlbmRpZgogaWZkZWYgTk9fU0VURU5WCkBAIC0xMzg4LDEwICsxNDA5LDE2IEBACiAJTElCX09CSlMgKz0gcHBjL3NoYTEubyBwcGMvc2hhMXBwYy5vCiAJTElCX0ggKz0gcHBjL3NoYTEuaAogZWxzZQoraWZkZWYgQVBQTEVfQ09NTU9OX0NSWVBUTworCUNPTVBBVF9DRkxBR1MgKz0gLURDT01NT05fRElHRVNUX0ZPUl9PUEVOU1NMCisJU0hBMV9IRUFERVIgPSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkRpZ2VzdC5oPgorZWxzZQogCVNIQTFfSEVBREVSID0gPG9wZW5zc2wvc2hhLmg+CiAJRVhUTElCUyArPSAkKExJQl80X0NSWVBUTykKIGVuZGlmCiBlbmRpZgorZW5kaWYKKwogaWZkZWYgTk9fUEVSTF9NQUtFTUFLRVIKIAlleHBvcnQgTk9fUEVSTF9NQUtFTUFLRVIKIGVuZGlmCkBAIC0xNDQ5LDkgKzE0NzYsNiBAQAogCUNPTVBBVF9DRkxBR1MgKz0gLUljb21wYXQvcmVnZXgKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvcmVnZXgvcmVnZXgubwogZW5kaWYKLWlmZGVmIENZR1dJTl9WMTVfV0lOMzJBUEkKLQlDT01QQVRfQ0ZMQUdTICs9IC1EQ1lHV0lOX1YxNV9XSU4zMkFQSQotZW5kaWYKIAogaWZkZWYgVVNFX05FRF9BTExPQ0FUT1IKICAgICAgICBDT01QQVRfQ0ZMQUdTICs9IC1JY29tcGF0L25lZG1hbGxvYwpAQCAtMTUwMyw2ICsxNTI3LDcgQEAKIAlRVUlFVF9NU0dGTVQgICA9IEBlY2hvICcgICAnIE1TR0ZNVCAkQDsKIAlRVUlFVF9HQ09WICAgICA9IEBlY2hvICcgICAnIEdDT1YgJEA7CiAJUVVJRVRfU1AgICAgICAgPSBAZWNobyAnICAgJyBTUCAkPDsKKwlRVUlFVF9SQyAgICAgICA9IEBlY2hvICcgICAnIFJDICRAOwogCVFVSUVUX1NVQkRJUjAgID0gK0BzdWJkaXI9CiAJUVVJRVRfU1VCRElSMSAgPSA7JChOT19TVUJESVIpIGVjaG8gJyAgICcgU1VCRElSICQkc3ViZGlyOyBcCiAJCQkgJChNQUtFKSAkKFBSSU5UX0RJUikgLUMgJCRzdWJkaXIKQEAgLTE2NDUsNyArMTY3MCw3IEBACiBzaGVsbF9jb21wYXRpYmlsaXR5X3Rlc3Q6IHBsZWFzZV9zZXRfU0hFTExfUEFUSF90b19hX21vcmVfbW9kZXJuX3NoZWxsCiAKIHN0cmlwOiAkKFBST0dSQU1TKSBnaXQkWAotCSQoU1RSSVApICQoU1RSSVBfT1BUUykgJChQUk9HUkFNUykgZ2l0JFgKKwkkKFNUUklQKSAkKFNUUklQX09QVFMpICReCiAKICMjIyBUYXJnZXQtc3BlY2lmaWMgZmxhZ3MgYW5kIGRlcGVuZGVuY2llcwogCkBAIC0xNzA1LDkgKzE3MzAsOSBAQAogCiAkKEJVSUxUX0lOUyk6IGdpdCRYCiAJJChRVUlFVF9CVUlMVF9JTikkKFJNKSAkQCAmJiBcCi0JbG4gZ2l0JFggJEAgMj4vZGV2L251bGwgfHwgXAotCWxuIC1zIGdpdCRYICRAIDI+L2Rldi9udWxsIHx8IFwKLQljcCBnaXQkWCAkQAorCWxuICQ8ICRAIDI+L2Rldi9udWxsIHx8IFwKKwlsbiAtcyAkPCAkQCAyPi9kZXYvbnVsbCB8fCBcCisJY3AgJDwgJEAKIAogY29tbW9uLWNtZHMuaDogLi9nZW5lcmF0ZS1jbWRsaXN0LnNoIGNvbW1hbmQtbGlzdC50eHQKIApAQCAtMTc0OCw2ICsxNzczLDExIEBACiAJJChRVUlFVF9HRU4pJChjbWRfbXVuZ2Vfc2NyaXB0KSAmJiBcCiAJbXYgJEArICRACiAKK2dpdC5yZXM6IGdpdC5yYyBHSVQtVkVSU0lPTi1GSUxFCisJJChRVUlFVF9SQykkKFJDKSBcCisJICAkKGpvaW4gLURNQUpPUj0gLURNSU5PUj0gLURQQVRDSD0sICQod29yZGxpc3QgMSwzLCQoc3Vic3QgLSwgLCQoc3Vic3QgLiwgLCQoR0lUX1ZFUlNJT04pKSkpKSBcCisJICAtREdJVF9WRVJTSU9OPSJcXFwiJChHSVRfVkVSU0lPTilcXFwiIiAkPCAtbyAkQAorCiBpZm5kZWYgTk9fUEVSTAogJChwYXRzdWJzdCAlLnBlcmwsJSwkKFNDUklQVF9QRVJMKSk6IHBlcmwvcGVybC5tYWsKIApAQCAtMTc3Miw3ICsxODAyLDcgQEAKIAkgICAgLWUgJwl4JyBcCiAJICAgIC1lICd9JyBcCiAJICAgIC1lICdzL0BAR0lUX1ZFUlNJT05AQC8kKEdJVF9WRVJTSU9OKS9nJyBcCi0JICAgICRALnBlcmwgPiRAKyAmJiBcCisJICAgICQ8ID4kQCsgJiYgXAogCWNobW9kICt4ICRAKyAmJiBcCiAJbXYgJEArICRACiAKQEAgLTE3OTYsOCArMTgyNiw4IEBACiBlbmRpZiAjIE5PX1BFUkwKIAogaWZuZGVmIE5PX1BZVEhPTgotJChwYXRzdWJzdCAlLnB5LCUsJChTQ1JJUFRfUFlUSE9OKSk6IEdJVC1DRkxBR1MgR0lULVBSRUZJWCBHSVQtUFlUSE9OLVZBUlMKLSQocGF0c3Vic3QgJS5weSwlLCQoU0NSSVBUX1BZVEhPTikpOiAlIDogJS5weQorJChTQ1JJUFRfUFlUSE9OX0dFTik6IEdJVC1DRkxBR1MgR0lULVBSRUZJWCBHSVQtUFlUSE9OLVZBUlMKKyQoU0NSSVBUX1BZVEhPTl9HRU4pOiAlIDogJS5weQogCSQoUVVJRVRfR0VOKSQoUk0pICRAICRAKyAmJiBcCiAJSU5TVExJQkRJUj1gTUFLRUZMQUdTPSAkKE1BS0UpIC1DIGdpdF9yZW1vdGVfaGVscGVycyAtcyBcCiAJCS0tbm8tcHJpbnQtZGlyZWN0b3J5IHByZWZpeD0nJChwcmVmaXhfU1EpJyBERVNURElSPSckKERFU1RESVJfU1EpJyBcCkBAIC0xODA1LDExICsxODM1LDExIEBACiAJc2VkIC1lICcxc3wjIS4qcHl0aG9ufCMhJChQWVRIT05fUEFUSF9TUSl8JyBcCiAJICAgIC1lICdzfFwob3NcLmdldGVudigiR0lUUFlUSE9OTElCIlwpW14pXSopfFwxLCJAQElOU1RMSUJESVJAQCIpfCcgXAogCSAgICAtZSAnc3xAQElOU1RMSUJESVJAQHwnIiQkSU5TVExJQkRJUiInfGcnIFwKLQkgICAgJEAucHkgPiRAKyAmJiBcCisJICAgICQ8ID4kQCsgJiYgXAogCWNobW9kICt4ICRAKyAmJiBcCiAJbXYgJEArICRACiBlbHNlICMgTk9fUFlUSE9OCi0kKHBhdHN1YnN0ICUucHksJSwkKFNDUklQVF9QWVRIT04pKTogJSA6IHVuaW1wbGVtZW50ZWQuc2gKKyQoU0NSSVBUX1BZVEhPTl9HRU4pOiAlIDogdW5pbXBsZW1lbnRlZC5zaAogCSQoUVVJRVRfR0VOKSQoUk0pICRAICRAKyAmJiBcCiAJc2VkIC1lICcxc3wjIS4qL3NofCMhJChTSEVMTF9QQVRIX1NRKXwnIFwKIAkgICAgLWUgJ3N8QEBSRUFTT05AQHxOT19QWVRIT049JChOT19QWVRIT04pfGcnIFwKQEAgLTIwMDQsNiArMjAzNCw3IEBACiBpZmRlZiBVU0VfTkVEX0FMTE9DQVRPUgogY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2Muc3AgY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MubzogRVhUUkFfQ1BQRkxBR1MgPSBcCiAJLUROREVCVUcgLURPVkVSUklERV9TVFJEVVAgLURSRVBMQUNFX1NZU1RFTV9BTExPQ0FUT1IKK2NvbXBhdC9uZWRtYWxsb2MvbmVkbWFsbG9jLnNwOiBTUEFSU0VfRkxBR1MgKz0gLVduby1ub24tcG9pbnRlci1udWxsCiBlbmRpZgogCiBnaXQtJSRYOiAlLm8gR0lULUxERkxBR1MgJChHSVRMSUJTKQpAQCAtMjAzNSwxMyArMjA2NiwxMyBAQAogCQkkKExJQlMpICQoQ1VSTF9MSUJDVVJMKSAkKEVYUEFUX0xJQkVYUEFUKQogCiAkKExJQl9GSUxFKTogJChMSUJfT0JKUykKLQkkKFFVSUVUX0FSKSQoUk0pICRAICYmICQoQVIpIHJjcyAkQCAkKExJQl9PQkpTKQorCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICReCiAKICQoWERJRkZfTElCKTogJChYRElGRl9PQkpTKQotCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICQoWERJRkZfT0JKUykKKwkkKFFVSUVUX0FSKSQoUk0pICRAICYmICQoQVIpIHJjcyAkQCAkXgogCiAkKFZDU1NWTl9MSUIpOiAkKFZDU1NWTl9PQkpTKQotCSQoUVVJRVRfQVIpJChSTSkgJEAgJiYgJChBUikgcmNzICRAICQoVkNTU1ZOX09CSlMpCisJJChRVUlFVF9BUikkKFJNKSAkQCAmJiAkKEFSKSByY3MgJEAgJF4KIAogZXhwb3J0IERFRkFVTFRfRURJVE9SIERFRkFVTFRfUEFHRVIKIApAQCAtMjE1OSw2ICsyMTkwLDkgQEAKIAlAZWNobyBOT19QRVJMPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoTk9fUEVSTCkpKSdcJyA+PiRACiAJQGVjaG8gTk9fUFlUSE9OPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoTk9fUFlUSE9OKSkpJ1wnID4+JEAKIAlAZWNobyBOT19VTklYX1NPQ0tFVFM9XCcnJChzdWJzdCAnLCdcJycsJChzdWJzdCAnLCdcJycsJChOT19VTklYX1NPQ0tFVFMpKSknXCcgPj4kQAoraWZkZWYgVEVTVF9PVVRQVVRfRElSRUNUT1JZCisJQGVjaG8gVEVTVF9PVVRQVVRfRElSRUNUT1JZPVwnJyQoc3Vic3QgJywnXCcnLCQoc3Vic3QgJywnXCcnLCQoVEVTVF9PVVRQVVRfRElSRUNUT1JZKSkpJ1wnID4+JEAKK2VuZGlmCiBpZmRlZiBHSVRfVEVTVF9PUFRTCiAJQGVjaG8gR0lUX1RFU1RfT1BUUz1cJyckKHN1YnN0ICcsJ1wnJywkKHN1YnN0ICcsJ1wnJywkKEdJVF9URVNUX09QVFMpKSknXCcgPj4kQAogZW5kaWYKQEAgLTIxOTgsNiArMjIzMiw3IEBACiB0ZXN0X2JpbmRpcl9wcm9ncmFtcyA6PSAkKHBhdHN1YnN0ICUsYmluLXdyYXBwZXJzLyUsJChCSU5ESVJfUFJPR1JBTVNfTkVFRF9YKSAkKEJJTkRJUl9QUk9HUkFNU19OT19YKSAkKFRFU1RfUFJPR1JBTVNfTkVFRF9YKSkKIAogYWxsOjogJChURVNUX1BST0dSQU1TKSAkKHRlc3RfYmluZGlyX3Byb2dyYW1zKQorYWxsOjogJChOT19JTlNUQUxMKQogCiBiaW4td3JhcHBlcnMvJTogd3JhcC1mb3ItYmluLnNoCiAJQG1rZGlyIC1wIGJpbi13cmFwcGVycwpAQCAtMjI2Miw5ICsyMjk3LDYgQEAKIAkJZXhpdCAxOyBcCiAJZmkKIAotcmVtb3ZlLWRhc2hlczoKLQkuL2ZpeHVwLWJ1aWx0aW5zICQoQlVJTFRfSU5TKSAkKFBST0dSQU1TKSAkKFNDUklQVFMpCi0KICMjIyBJbnN0YWxsYXRpb24gcnVsZXMKIAogaWZuZXEgKCQoZmlsdGVyIC8lLCQoZmlyc3R3b3JkICQodGVtcGxhdGVfZGlyKSkpLCkKQEAgLTI0NDMsMTEgKzI0NzUsMTEgQEAKIAkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjZGEsJChhZGRwcmVmaXggJChQUk9GSUxFX0RJUikvLCAkKG9iamVjdF9kaXJzKSkpCiAJJChSTSkgJChhZGRzdWZmaXggKi5nY25vLCQoYWRkcHJlZml4ICQoUFJPRklMRV9ESVIpLywgJChvYmplY3RfZGlycykpKQogCi1jbGVhbjogcHJvZmlsZS1jbGVhbgotCSQoUk0pICoubyBibG9jay1zaGExLyoubyBwcGMvKi5vIGNvbXBhdC8qLm8gY29tcGF0LyovKi5vIHhkaWZmLyoubyB2Y3Mtc3ZuLyoubyBcCitjbGVhbjogcHJvZmlsZS1jbGVhbiBjb3ZlcmFnZS1jbGVhbgorCSQoUk0pICoubyAqLnJlcyBibG9jay1zaGExLyoubyBwcGMvKi5vIGNvbXBhdC8qLm8gY29tcGF0LyovKi5vIHhkaWZmLyoubyB2Y3Mtc3ZuLyoubyBcCiAJCWJ1aWx0aW4vKi5vICQoTElCX0ZJTEUpICQoWERJRkZfTElCKSAkKFZDU1NWTl9MSUIpCiAJJChSTSkgJChBTExfUFJPR1JBTVMpICQoU0NSSVBUX0xJQikgJChCVUlMVF9JTlMpIGdpdCRYCi0JJChSTSkgJChURVNUX1BST0dSQU1TKQorCSQoUk0pICQoVEVTVF9QUk9HUkFNUykgJChOT19JTlNUQUxMKQogCSQoUk0pIC1yIGJpbi13cmFwcGVycyAkKGRlcF9kaXJzKQogCSQoUk0pIC1yIHBvL2J1aWxkLwogCSQoUk0pICouc3BlYyAqLnB5YyAqLnB5byAqLyoucHljICovKi5weW8gY29tbW9uLWNtZHMuaCAkKEVUQUdTX1RBUkdFVCkgdGFncyBjc2NvcGUqCkBAIC0yNTI0LDI5ICsyNTU2LDM0IEBACiAKICMjIyBUZXN0IHN1aXRlIGNvdmVyYWdlIHRlc3RpbmcKICMKLS5QSE9OWTogY292ZXJhZ2UgY292ZXJhZ2UtY2xlYW4gY292ZXJhZ2UtYnVpbGQgY292ZXJhZ2UtcmVwb3J0CisuUEhPTlk6IGNvdmVyYWdlIGNvdmVyYWdlLWNsZWFuIGNvdmVyYWdlLWNvbXBpbGUgY292ZXJhZ2UtdGVzdCBjb3ZlcmFnZS1yZXBvcnQKKy5QSE9OWTogY292ZXJhZ2UtY2xlYW4tcmVzdWx0cwogCiBjb3ZlcmFnZToKLQkkKE1BS0UpIGNvdmVyYWdlLWJ1aWxkCi0JJChNQUtFKSBjb3ZlcmFnZS1yZXBvcnQKKwkkKE1BS0UpIGNvdmVyYWdlLXRlc3QKKwkkKE1BS0UpIGNvdmVyYWdlLXVudGVzdGVkLWZ1bmN0aW9ucwogCiBvYmplY3RfZGlycyA6PSAkKHNvcnQgJChkaXIgJChPQkpFQ1RTKSkpCi1jb3ZlcmFnZS1jbGVhbjoKK2NvdmVyYWdlLWNsZWFuLXJlc3VsdHM6CiAJJChSTSkgJChhZGRzdWZmaXggKi5nY292LCQob2JqZWN0X2RpcnMpKQogCSQoUk0pICQoYWRkc3VmZml4ICouZ2NkYSwkKG9iamVjdF9kaXJzKSkKLQkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjbm8sJChvYmplY3RfZGlycykpCiAJJChSTSkgY292ZXJhZ2UtdW50ZXN0ZWQtZnVuY3Rpb25zCiAJJChSTSkgLXIgY292ZXJfZGIvCiAJJChSTSkgLXIgY292ZXJfZGJfaHRtbC8KIAorY292ZXJhZ2UtY2xlYW46IGNvdmVyYWdlLWNsZWFuLXJlc3VsdHMKKwkkKFJNKSAkKGFkZHN1ZmZpeCAqLmdjbm8sJChvYmplY3RfZGlycykpCisKIENPVkVSQUdFX0NGTEFHUyA9ICQoQ0ZMQUdTKSAtTzAgLWZ0ZXN0LWNvdmVyYWdlIC1mcHJvZmlsZS1hcmNzCiBDT1ZFUkFHRV9MREZMQUdTID0gJChDRkxBR1MpICAtTzAgLWxnY292CiBHQ09WRkxBR1MgPSAtLXByZXNlcnZlLXBhdGhzIC0tYnJhbmNoLXByb2JhYmlsaXRpZXMgLS1hbGwtYmxvY2tzCiAKLWNvdmVyYWdlLWJ1aWxkOiBjb3ZlcmFnZS1jbGVhbgorY292ZXJhZ2UtY29tcGlsZToKIAkkKE1BS0UpIENGTEFHUz0iJChDT1ZFUkFHRV9DRkxBR1MpIiBMREZMQUdTPSIkKENPVkVSQUdFX0xERkxBR1MpIiBhbGwKKworY292ZXJhZ2UtdGVzdDogY292ZXJhZ2UtY2xlYW4tcmVzdWx0cyBjb3ZlcmFnZS1jb21waWxlCiAJJChNQUtFKSBDRkxBR1M9IiQoQ09WRVJBR0VfQ0ZMQUdTKSIgTERGTEFHUz0iJChDT1ZFUkFHRV9MREZMQUdTKSIgXAotCQktajEgdGVzdAorCQlERUZBVUxUX1RFU1RfVEFSR0VUPXRlc3QgLWoxIHRlc3QKIAogY292ZXJhZ2UtcmVwb3J0OgogCSQoUVVJRVRfR0NPVilmb3IgZGlyIGluICQob2JqZWN0X2RpcnMpOyBkbyBcCmRpZmYgLS1naXQgYS9SZWxOb3RlcyBiL1JlbE5vdGVzCmluZGV4IDgwYjdlMzguLmQ1NzNhMjcgMTIwMDAwCi0tLSBhL1JlbE5vdGVzCisrKyBiL1JlbE5vdGVzCkBAIC0xICsxIEBACi1Eb2N1bWVudGF0aW9uL1JlbE5vdGVzLzEuOC4zLnR4dApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0RvY3VtZW50YXRpb24vUmVsTm90ZXMvMS44LjQuMS50eHQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hYnNwYXRoLmMgYi9hYnNwYXRoLmMKaW5kZXggNDBjZGM0Ni4uNjRhZGJlMiAxMDA2NDQKLS0tIGEvYWJzcGF0aC5jCisrKyBiL2Fic3BhdGguYwpAQCAtMjE2LDcgKzIxNiw3IEBACiBjb25zdCBjaGFyICpwcmVmaXhfZmlsZW5hbWUoY29uc3QgY2hhciAqcGZ4LCBpbnQgcGZ4X2xlbiwgY29uc3QgY2hhciAqYXJnKQogewogCXN0YXRpYyBjaGFyIHBhdGhbUEFUSF9NQVhdOwotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAlpZiAoIXBmeF9sZW4gfHwgaXNfYWJzb2x1dGVfcGF0aChhcmcpKQogCQlyZXR1cm4gYXJnOwogCW1lbWNweShwYXRoLCBwZngsIHBmeF9sZW4pOwpkaWZmIC0tZ2l0IGEvYWR2aWNlLmMgYi9hZHZpY2UuYwppbmRleCBhOGRlZWU2Li4zZWNhOWY1IDEwMDY0NAotLS0gYS9hZHZpY2UuYworKysgYi9hZHZpY2UuYwpAQCAtMTQsNiArMTQsOCBAQAogaW50IGFkdmljZV9pbXBsaWNpdF9pZGVudGl0eSA9IDE7CiBpbnQgYWR2aWNlX2RldGFjaGVkX2hlYWQgPSAxOwogaW50IGFkdmljZV9zZXRfdXBzdHJlYW1fZmFpbHVyZSA9IDE7CitpbnQgYWR2aWNlX29iamVjdF9uYW1lX3dhcm5pbmcgPSAxOworaW50IGFkdmljZV9ybV9oaW50cyA9IDE7CiAKIHN0YXRpYyBzdHJ1Y3QgewogCWNvbnN0IGNoYXIgKm5hbWU7CkBAIC0zMyw2ICszNSw4IEBACiAJeyAiaW1wbGljaXRpZGVudGl0eSIsICZhZHZpY2VfaW1wbGljaXRfaWRlbnRpdHkgfSwKIAl7ICJkZXRhY2hlZGhlYWQiLCAmYWR2aWNlX2RldGFjaGVkX2hlYWQgfSwKIAl7ICJzZXR1cHN0cmVhbWZhaWx1cmUiLCAmYWR2aWNlX3NldF91cHN0cmVhbV9mYWlsdXJlIH0sCisJeyAib2JqZWN0bmFtZXdhcm5pbmciLCAmYWR2aWNlX29iamVjdF9uYW1lX3dhcm5pbmcgfSwKKwl7ICJybWhpbnRzIiwgJmFkdmljZV9ybV9oaW50cyB9LAogCiAJLyogbWFrZSB0aGlzIGFuIGFsaWFzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCiAJeyAicHVzaG5vbmZhc3Rmb3J3YXJkIiwgJmFkdmljZV9wdXNoX3VwZGF0ZV9yZWplY3RlZCB9CmRpZmYgLS1naXQgYS9hZHZpY2UuaCBiL2FkdmljZS5oCmluZGV4IDk0Y2FhMzIuLjA4ZmJjOGUgMTAwNjQ0Ci0tLSBhL2FkdmljZS5oCisrKyBiL2FkdmljZS5oCkBAIC0xNyw4ICsxNywxMSBAQAogZXh0ZXJuIGludCBhZHZpY2VfaW1wbGljaXRfaWRlbnRpdHk7CiBleHRlcm4gaW50IGFkdmljZV9kZXRhY2hlZF9oZWFkOwogZXh0ZXJuIGludCBhZHZpY2Vfc2V0X3Vwc3RyZWFtX2ZhaWx1cmU7CitleHRlcm4gaW50IGFkdmljZV9vYmplY3RfbmFtZV93YXJuaW5nOworZXh0ZXJuIGludCBhZHZpY2Vfcm1faGludHM7CiAKIGludCBnaXRfZGVmYXVsdF9hZHZpY2VfY29uZmlnKGNvbnN0IGNoYXIgKnZhciwgY29uc3QgY2hhciAqdmFsdWUpOworX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDEsIDIpKSkKIHZvaWQgYWR2aXNlKGNvbnN0IGNoYXIgKmFkdmljZSwgLi4uKTsKIGludCBlcnJvcl9yZXNvbHZlX2NvbmZsaWN0KGNvbnN0IGNoYXIgKm1lKTsKIGV4dGVybiB2b2lkIE5PUkVUVVJOIGRpZV9yZXNvbHZlX2NvbmZsaWN0KGNvbnN0IGNoYXIgKm1lKTsKZGlmZiAtLWdpdCBhL2FyY2hpdmUtemlwLmMgYi9hcmNoaXZlLXppcC5jCmluZGV4IGIyYzRmZTAuLjRiZGUwMTkgMTAwNjQ0Ci0tLSBhL2FyY2hpdmUtemlwLmMKKysrIGIvYXJjaGl2ZS16aXAuYwpAQCAtMjMyLDcgKzIzMiw2IEBACiAJCXNpemUgPSAwOwogCQljb21wcmVzc2VkX3NpemUgPSAwOwogCQlidWZmZXIgPSBOVUxMOwotCQlzaXplID0gMDsKIAl9IGVsc2UgaWYgKFNfSVNSRUcobW9kZSkgfHwgU19JU0xOSyhtb2RlKSkgewogCQllbnVtIG9iamVjdF90eXBlIHR5cGUgPSBzaGExX29iamVjdF9pbmZvKHNoYTEsICZzaXplKTsKIApkaWZmIC0tZ2l0IGEvYXJndi1hcnJheS5oIGIvYXJndi1hcnJheS5oCmluZGV4IDQwMjQ4ZDQuLjg1YmE0MzggMTAwNjQ0Ci0tLSBhL2FyZ3YtYXJyYXkuaAorKysgYi9hcmd2LWFycmF5LmgKQEAgLTE1LDYgKzE1LDcgQEAKIHZvaWQgYXJndl9hcnJheV9wdXNoKHN0cnVjdCBhcmd2X2FycmF5ICosIGNvbnN0IGNoYXIgKik7CiBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwyLDMpKSkKIHZvaWQgYXJndl9hcnJheV9wdXNoZihzdHJ1Y3QgYXJndl9hcnJheSAqLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CitMQVNUX0FSR19NVVNUX0JFX05VTEwKIHZvaWQgYXJndl9hcnJheV9wdXNobChzdHJ1Y3QgYXJndl9hcnJheSAqLCAuLi4pOwogdm9pZCBhcmd2X2FycmF5X3BvcChzdHJ1Y3QgYXJndl9hcnJheSAqKTsKIHZvaWQgYXJndl9hcnJheV9jbGVhcihzdHJ1Y3QgYXJndl9hcnJheSAqKTsKZGlmZiAtLWdpdCBhL2Jpc2VjdC5jIGIvYmlzZWN0LmMKaW5kZXggMzc0ZDllMi4uNzFjMTk1OCAxMDA2NDQKLS0tIGEvYmlzZWN0LmMKKysrIGIvYmlzZWN0LmMKQEAgLTE1LDcgKzE1LDcgQEAKIHN0YXRpYyBzdHJ1Y3Qgc2hhMV9hcnJheSBnb29kX3JldnM7CiBzdGF0aWMgc3RydWN0IHNoYTFfYXJyYXkgc2tpcHBlZF9yZXZzOwogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqY3VycmVudF9iYWRfc2hhMTsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyICpjdXJyZW50X2JhZF9zaGExOwogCiBzdGF0aWMgY29uc3QgY2hhciAqYXJndl9jaGVja291dFtdID0geyJjaGVja291dCIsICItcSIsIE5VTEwsICItLSIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmFyZ3Zfc2hvd19icmFuY2hbXSA9IHsic2hvdy1icmFuY2giLCBOVUxMLCBOVUxMfTsKQEAgLTQwNCw3ICs0MDQsOCBAQAogCQkJaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQogewogCWlmICghc3RyY21wKHJlZm5hbWUsICJiYWQiKSkgewotCQljdXJyZW50X2JhZF9zaGExID0gc2hhMTsKKwkJY3VycmVudF9iYWRfc2hhMSA9IHhtYWxsb2MoMjApOworCQloYXNoY3B5KGN1cnJlbnRfYmFkX3NoYTEsIHNoYTEpOwogCX0gZWxzZSBpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAiZ29vZC0iKSkgewogCQlzaGExX2FycmF5X2FwcGVuZCgmZ29vZF9yZXZzLCBzaGExKTsKIAl9IGVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInNraXAtIikpIHsKZGlmZiAtLWdpdCBhL2JyYW5jaC5jIGIvYnJhbmNoLmMKaW5kZXggOTdjNzJiZi4uYzVjNjk4NCAxMDA2NDQKLS0tIGEvYnJhbmNoLmMKKysrIGIvYnJhbmNoLmMKQEAgLTE5Nyw2ICsxOTcsMjEgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIGludCBjaGVja190cmFja2luZ19icmFuY2goc3RydWN0IHJlbW90ZSAqcmVtb3RlLCB2b2lkICpjYl9kYXRhKQoreworCWNoYXIgKnRyYWNraW5nX2JyYW5jaCA9IGNiX2RhdGE7CisJc3RydWN0IHJlZnNwZWMgcXVlcnk7CisJbWVtc2V0KCZxdWVyeSwgMCwgc2l6ZW9mKHN0cnVjdCByZWZzcGVjKSk7CisJcXVlcnkuZHN0ID0gdHJhY2tpbmdfYnJhbmNoOworCXJldHVybiAhKHJlbW90ZV9maW5kX3RyYWNraW5nKHJlbW90ZSwgJnF1ZXJ5KSB8fAorCQkgcHJlZml4Y21wKHF1ZXJ5LnNyYywgInJlZnMvaGVhZHMvIikpOworfQorCitzdGF0aWMgaW50IHZhbGlkYXRlX3JlbW90ZV90cmFja2luZ19icmFuY2goY2hhciAqcmVmKQoreworCXJldHVybiAhZm9yX2VhY2hfcmVtb3RlKGNoZWNrX3RyYWNraW5nX2JyYW5jaCwgcmVmKTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgdXBzdHJlYW1fbm90X2JyYW5jaFtdID0KIE5fKCJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIpOwogc3RhdGljIGNvbnN0IGNoYXIgdXBzdHJlYW1fbWlzc2luZ1tdID0KQEAgLTI1OSw3ICsyNzQsNyBAQAogCWNhc2UgMToKIAkJLyogVW5pcXVlIGNvbXBsZXRpb24gLS0gZ29vZCwgb25seSBpZiBpdCBpcyBhIHJlYWwgYnJhbmNoICovCiAJCWlmIChwcmVmaXhjbXAocmVhbF9yZWYsICJyZWZzL2hlYWRzLyIpICYmCi0JCSAgICBwcmVmaXhjbXAocmVhbF9yZWYsICJyZWZzL3JlbW90ZXMvIikpIHsKKwkJICAgIHZhbGlkYXRlX3JlbW90ZV90cmFja2luZ19icmFuY2gocmVhbF9yZWYpKSB7CiAJCQlpZiAoZXhwbGljaXRfdHJhY2tpbmcpCiAJCQkJZGllKF8odXBzdHJlYW1fbm90X2JyYW5jaCksIHN0YXJ0X25hbWUpOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi5oIGIvYnVpbHRpbi5oCmluZGV4IGZhZWY1NTkuLjhhZmEyZGUgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4uaAorKysgYi9idWlsdGluLmgKQEAgLTUsMTMgKzUsMTUgQEAKICNpbmNsdWRlICJzdHJidWYuaCIKICNpbmNsdWRlICJjYWNoZS5oIgogI2luY2x1ZGUgImNvbW1pdC5oIgotI2luY2x1ZGUgIm5vdGVzLmgiCiAKICNkZWZpbmUgREVGQVVMVF9NRVJHRV9MT0dfTEVOIDIwCiAKIGV4dGVybiBjb25zdCBjaGFyIGdpdF91c2FnZV9zdHJpbmdbXTsKIGV4dGVybiBjb25zdCBjaGFyIGdpdF9tb3JlX2luZm9fc3RyaW5nW107CiAKKyNkZWZpbmUgUFJVTkVfUEFDS0VEX0RSWV9SVU4gMDEKKyNkZWZpbmUgUFJVTkVfUEFDS0VEX1ZFUkJPU0UgMDIKKwogZXh0ZXJuIHZvaWQgcHJ1bmVfcGFja2VkX29iamVjdHMoaW50KTsKIAogc3RydWN0IGZtdF9tZXJnZV9tc2dfb3B0cyB7CkBAIC0yMywyMSArMjUsNiBAQAogZXh0ZXJuIGludCBmbXRfbWVyZ2VfbXNnKHN0cnVjdCBzdHJidWYgKmluLCBzdHJ1Y3Qgc3RyYnVmICpvdXQsCiAJCQkgc3RydWN0IGZtdF9tZXJnZV9tc2dfb3B0cyAqKTsKIAotc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnIHsKLQlzdHJ1Y3Qgbm90ZXNfdHJlZSAqKnRyZWVzOwotCWNvbnN0IGNoYXIgKmNtZDsKLQlpbnQgZW5hYmxlZDsKLQljb21iaW5lX25vdGVzX2ZuIGNvbWJpbmU7Ci0Jc3RydWN0IHN0cmluZ19saXN0ICpyZWZzOwotCWludCByZWZzX2Zyb21fZW52OwotCWludCBtb2RlX2Zyb21fZW52OwotfTsKLQotc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICppbml0X2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY29uc3QgY2hhciAqY21kKTsKLWludCBjb3B5X25vdGVfZm9yX3Jld3JpdGUoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjLAotCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tX29iaiwgY29uc3QgdW5zaWduZWQgY2hhciAqdG9fb2JqKTsKLXZvaWQgZmluaXNoX2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjKTsKLQogZXh0ZXJuIGludCB0ZXh0Y29udl9vYmplY3QoY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgbW9kZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IHNoYTFfdmFsaWQsIGNoYXIgKipidWYsIHVuc2lnbmVkIGxvbmcgKmJ1Zl9zaXplKTsKIAogZXh0ZXJuIGludCBjbWRfYWRkKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKQEAgLTUzLDYgKzQwLDcgQEAKIGV4dGVybiBpbnQgY21kX2NoZWNrb3V0X2luZGV4KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKIGV4dGVybiBpbnQgY21kX2NoZWNrX2F0dHIoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlY2tfaWdub3JlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KTsKK2V4dGVybiBpbnQgY21kX2NoZWNrX21haWxtYXAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlY2tfcmVmX2Zvcm1hdChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCk7CiBleHRlcm4gaW50IGNtZF9jaGVycnkoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwogZXh0ZXJuIGludCBjbWRfY2hlcnJ5X3BpY2soaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9hZGQuYyBiL2J1aWx0aW4vYWRkLmMKaW5kZXggZjQ1ZDlkNC4uODI2NmE5YyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9hZGQuYworKysgYi9idWlsdGluL2FkZC5jCkBAIC0zNDMsNiArMzQzLDcgQEAKIAogCWFyZ2MgPSBzZXR1cF9yZXZpc2lvbnMoYXJnYywgYXJndiwgJnJldiwgTlVMTCk7CiAJcmV2LmRpZmZvcHQub3V0cHV0X2Zvcm1hdCA9IERJRkZfRk9STUFUX1BBVENIOworCXJldi5kaWZmb3B0LnVzZV9jb2xvciA9IDA7CiAJRElGRl9PUFRfU0VUKCZyZXYuZGlmZm9wdCwgSUdOT1JFX0RJUlRZX1NVQk1PRFVMRVMpOwogCW91dCA9IG9wZW4oZmlsZSwgT19DUkVBVCB8IE9fV1JPTkxZLCAwNjY2KTsKIAlpZiAob3V0IDwgMCkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vYXBwbHkuYyBiL2J1aWx0aW4vYXBwbHkuYwppbmRleCAzMGVlZmMzLi41MDkxMmM5IDEwMDY0NAotLS0gYS9idWlsdGluL2FwcGx5LmMKKysrIGIvYnVpbHRpbi9hcHBseS5jCkBAIC00NzMsNyArNDczLDcgQEAKIAogCS8qCiAJICogUHJvcG9zZWQgIm5ldy1zdHlsZSIgR05VIHBhdGNoL2RpZmYgZm9ybWF0OyBzZWUKLQkgKiBodHRwOi8vbWFyYy50aGVhaW1zZ3JvdXAuY29tLz9sPWdpdCZtPTExMjkyNzMxNjQwODY5MCZ3PTIKKwkgKiBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExMjkyNzMxNjQwODY5MCZ3PTIKIAkgKi8KIAlpZiAodW5xdW90ZV9jX3N0eWxlKCZuYW1lLCBsaW5lLCBOVUxMKSkgewogCQlzdHJidWZfcmVsZWFzZSgmbmFtZSk7CkBAIC03MjIsNyArNzIyLDcgQEAKIAogc3RhdGljIGNoYXIgKmZpbmRfbmFtZV90cmFkaXRpb25hbChjb25zdCBjaGFyICpsaW5lLCBjaGFyICpkZWYsIGludCBwX3ZhbHVlKQogewotCXNpemVfdCBsZW4gPSBzdHJsZW4obGluZSk7CisJc2l6ZV90IGxlbjsKIAlzaXplX3QgZGF0ZV9sZW47CiAKIAlpZiAoKmxpbmUgPT0gJyInKSB7CkBAIC05MDYsNyArOTA2LDcgQEAKIAkJCXBhdGNoLT5vbGRfbmFtZSA9IG5hbWU7CiAJCX0gZWxzZSB7CiAJCQlwYXRjaC0+b2xkX25hbWUgPSBuYW1lOwotCQkJcGF0Y2gtPm5ld19uYW1lID0geHN0cmR1cChuYW1lKTsKKwkJCXBhdGNoLT5uZXdfbmFtZSA9IG51bGxfc3RyZHVwKG5hbWUpOwogCQl9CiAJfQogCWlmICghbmFtZSkKQEAgLTI5OTksNyArMjk5OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcmVhZF9maWxlX29yX2dpdGxpbmsoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0cmJ1ZiAqYnVmKQorc3RhdGljIGludCByZWFkX2ZpbGVfb3JfZ2l0bGluayhjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RyYnVmICpidWYpCiB7CiAJaWYgKCFjZSkKIAkJcmV0dXJuIDA7CkBAIC0zMTE3LDcgKzMxMTcsNyBAQAogCXJldHVybiBwcmV2aW91czsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfaW5kZXhfbWF0Y2goc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQorc3RhdGljIGludCB2ZXJpZnlfaW5kZXhfbWF0Y2goY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQogewogCWlmIChTX0lTR0lUTElOSyhjZS0+Y2VfbW9kZSkpIHsKIAkJaWYgKCFTX0lTRElSKHN0LT5zdF9tb2RlKSkKQEAgLTMxMzAsNyArMzEzMCw3IEBACiAjZGVmaW5lIFNVQk1PRFVMRV9QQVRDSF9XSVRIT1VUX0lOREVYIDEKIAogc3RhdGljIGludCBsb2FkX3BhdGNoX3RhcmdldChzdHJ1Y3Qgc3RyYnVmICpidWYsCi0JCQkgICAgIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgICAgIHN0cnVjdCBzdGF0ICpzdCwKIAkJCSAgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCSAgICAgdW5zaWduZWQgZXhwZWN0ZWRfbW9kZSkKQEAgLTMxNjAsNyArMzE2MCw4IEBACiAgKiB3ZSByZWFkIGZyb20gdGhlIHJlc3VsdCBvZiBhIHByZXZpb3VzIGRpZmYuCiAgKi8KIHN0YXRpYyBpbnQgbG9hZF9wcmVpbWFnZShzdHJ1Y3QgaW1hZ2UgKmltYWdlLAotCQkJIHN0cnVjdCBwYXRjaCAqcGF0Y2gsIHN0cnVjdCBzdGF0ICpzdCwgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKKwkJCSBzdHJ1Y3QgcGF0Y2ggKnBhdGNoLCBzdHJ1Y3Qgc3RhdCAqc3QsCisJCQkgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCXNpemVfdCBsZW47CkBAIC0zMjczLDcgKzMyNzQsNyBAQAogfQogCiBzdGF0aWMgaW50IHRyeV90aHJlZXdheShzdHJ1Y3QgaW1hZ2UgKmltYWdlLCBzdHJ1Y3QgcGF0Y2ggKnBhdGNoLAotCQkJc3RydWN0IHN0YXQgKnN0LCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQorCQkJc3RydWN0IHN0YXQgKnN0LCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXVuc2lnbmVkIGNoYXIgcHJlX3NoYTFbMjBdLCBwb3N0X3NoYTFbMjBdLCBvdXJfc2hhMVsyMF07CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKQEAgLTMzNDMsNyArMzM0NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYXBwbHlfZGF0YShzdHJ1Y3QgcGF0Y2ggKnBhdGNoLCBzdHJ1Y3Qgc3RhdCAqc3QsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgaW50IGFwcGx5X2RhdGEoc3RydWN0IHBhdGNoICpwYXRjaCwgc3RydWN0IHN0YXQgKnN0LCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXN0cnVjdCBpbWFnZSBpbWFnZTsKIApAQCAtMzUyNSw3ICszNTI2LDcgQEAKIAkJb2tfaWZfZXhpc3RzID0gMDsKIAogCWlmIChuZXdfbmFtZSAmJgotCSAgICAoKDAgPCBwYXRjaC0+aXNfbmV3KSB8ICgwIDwgcGF0Y2gtPmlzX3JlbmFtZSkgfCBwYXRjaC0+aXNfY29weSkpIHsKKwkgICAgKCgwIDwgcGF0Y2gtPmlzX25ldykgfHwgcGF0Y2gtPmlzX3JlbmFtZSB8fCBwYXRjaC0+aXNfY29weSkpIHsKIAkJaW50IGVyciA9IGNoZWNrX3RvX2NyZWF0ZShuZXdfbmFtZSwgb2tfaWZfZXhpc3RzKTsKIAogCQlpZiAoZXJyICYmIHRocmVld2F5KSB7CkBAIC0zODQ3LDcgKzM4NDgsNyBAQAogCQljb25zdCBjaGFyICpzID0gYnVmOwogCiAJCWlmIChnZXRfc2hhMV9oZXgocyArIHN0cmxlbigiU3VicHJvamVjdCBjb21taXQgIiksIGNlLT5zaGExKSkKLQkJCWRpZShfKCJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIiksIHBhdGgpOworCQkJZGllKF8oImNvcnJ1cHQgcGF0Y2ggZm9yIHN1Ym1vZHVsZSAlcyIpLCBwYXRoKTsKIAl9IGVsc2UgewogCQlpZiAoIWNhY2hlZCkgewogCQkJaWYgKGxzdGF0KHBhdGgsICZzdCkgPCAwKQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9ibGFtZS5jIGIvYnVpbHRpbi9ibGFtZS5jCmluZGV4IDU3YTQ4N2UuLjA3OWRjZDMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vYmxhbWUuYworKysgYi9idWlsdGluL2JsYW1lLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAidXRmOC5oIgogI2luY2x1ZGUgInVzZXJkaWZmLmgiCisjaW5jbHVkZSAibGluZS1yYW5nZS5oIgogCiBzdGF0aWMgY2hhciBibGFtZV91c2FnZVtdID0gTl8oImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiKTsKIApAQCAtNTY2LDExICs1NjcsMTYgQEAKIAlkc3QtPnNjb3JlID0gMDsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIgKm50aF9saW5lKHN0cnVjdCBzY29yZWJvYXJkICpzYiwgaW50IGxubykKK3N0YXRpYyBjb25zdCBjaGFyICpudGhfbGluZShzdHJ1Y3Qgc2NvcmVib2FyZCAqc2IsIGxvbmcgbG5vKQogewogCXJldHVybiBzYi0+ZmluYWxfYnVmICsgc2ItPmxpbmVub1tsbm9dOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqbnRoX2xpbmVfY2Iodm9pZCAqZGF0YSwgbG9uZyBsbm8pCit7CisJcmV0dXJuIG50aF9saW5lKChzdHJ1Y3Qgc2NvcmVib2FyZCAqKWRhdGEsIGxubyk7Cit9CisKIC8qCiAgKiBJdCBpcyBrbm93biB0aGF0IGxpbmVzIGJldHdlZW4gdGxubyB0byBzYW1lIGNhbWUgZnJvbSBwYXJlbnQsIGFuZCBlCiAgKiBoYXMgYW4gb3ZlcmxhcCB3aXRoIHRoYXQgcmFuZ2UuICBpdCBhbHNvIGlzIGtub3duIHRoYXQgcGFyZW50J3MKQEAgLTE5MzIsODMgKzE5MzgsNiBAQAogfQogCiAvKgotICogUGFyc2luZyBvZiAoY29tbWEgc2VwYXJhdGVkKSBvbmUgaXRlbSBpbiB0aGUgLUwgb3B0aW9uCi0gKi8KLXN0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9sb2MoY29uc3QgY2hhciAqc3BlYywKLQkJCSAgICAgc3RydWN0IHNjb3JlYm9hcmQgKnNiLCBsb25nIGxubywKLQkJCSAgICAgbG9uZyBiZWdpbiwgbG9uZyAqcmV0KQotewotCWNoYXIgKnRlcm07Ci0JY29uc3QgY2hhciAqbGluZTsKLQlsb25nIG51bTsKLQlpbnQgcmVnX2Vycm9yOwotCXJlZ2V4X3QgcmVnZXhwOwotCXJlZ21hdGNoX3QgbWF0Y2hbMV07Ci0KLQkvKiBBbGxvdyAiLUwgPHNvbWV0aGluZz4sKzIwIiB0byBtZWFuIHN0YXJ0aW5nIGF0IDxzb21ldGhpbmc+Ci0JICogZm9yIDIwIGxpbmVzLCBvciAiLUwgPHNvbWV0aGluZz4sLTUiIGZvciA1IGxpbmVzIGVuZGluZyBhdAotCSAqIDxzb21ldGhpbmc+LgotCSAqLwotCWlmICgxIDwgYmVnaW4gJiYgKHNwZWNbMF0gPT0gJysnIHx8IHNwZWNbMF0gPT0gJy0nKSkgewotCQludW0gPSBzdHJ0b2woc3BlYyArIDEsICZ0ZXJtLCAxMCk7Ci0JCWlmICh0ZXJtICE9IHNwZWMgKyAxKSB7Ci0JCQlpZiAoc3BlY1swXSA9PSAnLScpCi0JCQkJbnVtID0gMCAtIG51bTsKLQkJCWlmICgwIDwgbnVtKQotCQkJCSpyZXQgPSBiZWdpbiArIG51bSAtIDI7Ci0JCQllbHNlIGlmICghbnVtKQotCQkJCSpyZXQgPSBiZWdpbjsKLQkJCWVsc2UKLQkJCQkqcmV0ID0gYmVnaW4gKyBudW07Ci0JCQlyZXR1cm4gdGVybTsKLQkJfQotCQlyZXR1cm4gc3BlYzsKLQl9Ci0JbnVtID0gc3RydG9sKHNwZWMsICZ0ZXJtLCAxMCk7Ci0JaWYgKHRlcm0gIT0gc3BlYykgewotCQkqcmV0ID0gbnVtOwotCQlyZXR1cm4gdGVybTsKLQl9Ci0JaWYgKHNwZWNbMF0gIT0gJy8nKQotCQlyZXR1cm4gc3BlYzsKLQotCS8qIGl0IGNvdWxkIGJlIGEgcmVnZXhwIG9mIGZvcm0gLy4uLi8gKi8KLQlmb3IgKHRlcm0gPSAoY2hhciAqKSBzcGVjICsgMTsgKnRlcm0gJiYgKnRlcm0gIT0gJy8nOyB0ZXJtKyspIHsKLQkJaWYgKCp0ZXJtID09ICdcXCcpCi0JCQl0ZXJtKys7Ci0JfQotCWlmICgqdGVybSAhPSAnLycpCi0JCXJldHVybiBzcGVjOwotCi0JLyogdHJ5IFtzcGVjKzEgLi4gdGVybS0xXSBhcyByZWdleHAgKi8KLQkqdGVybSA9IDA7Ci0JYmVnaW4tLTsgLyogaW5wdXQgaXMgaW4gaHVtYW4gdGVybXMgKi8KLQlsaW5lID0gbnRoX2xpbmUoc2IsIGJlZ2luKTsKLQotCWlmICghKHJlZ19lcnJvciA9IHJlZ2NvbXAoJnJlZ2V4cCwgc3BlYyArIDEsIFJFR19ORVdMSU5FKSkgJiYKLQkgICAgIShyZWdfZXJyb3IgPSByZWdleGVjKCZyZWdleHAsIGxpbmUsIDEsIG1hdGNoLCAwKSkpIHsKLQkJY29uc3QgY2hhciAqY3AgPSBsaW5lICsgbWF0Y2hbMF0ucm1fc287Ci0JCWNvbnN0IGNoYXIgKm5saW5lOwotCi0JCXdoaWxlIChiZWdpbisrIDwgbG5vKSB7Ci0JCQlubGluZSA9IG50aF9saW5lKHNiLCBiZWdpbik7Ci0JCQlpZiAobGluZSA8PSBjcCAmJiBjcCA8IG5saW5lKQotCQkJCWJyZWFrOwotCQkJbGluZSA9IG5saW5lOwotCQl9Ci0JCSpyZXQgPSBiZWdpbjsKLQkJcmVnZnJlZSgmcmVnZXhwKTsKLQkJKnRlcm0rKyA9ICcvJzsKLQkJcmV0dXJuIHRlcm07Ci0JfQotCWVsc2UgewotCQljaGFyIGVycmJ1ZlsxMDI0XTsKLQkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOwotCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHNwZWMgKyAxLCBlcnJidWYpOwotCX0KLX0KLQotLyoKICAqIFBhcnNpbmcgb2YgLUwgb3B0aW9uCiAgKi8KIHN0YXRpYyB2b2lkIHByZXBhcmVfYmxhbWVfcmFuZ2Uoc3RydWN0IHNjb3JlYm9hcmQgKnNiLApAQCAtMjAxNiwxNSArMTk0NSw3IEBACiAJCQkJbG9uZyBsbm8sCiAJCQkJbG9uZyAqYm90dG9tLCBsb25nICp0b3ApCiB7Ci0JY29uc3QgY2hhciAqdGVybTsKLQotCXRlcm0gPSBwYXJzZV9sb2MoYm90dG9tdG9wLCBzYiwgbG5vLCAxLCBib3R0b20pOwotCWlmICgqdGVybSA9PSAnLCcpIHsKLQkJdGVybSA9IHBhcnNlX2xvYyh0ZXJtICsgMSwgc2IsIGxubywgKmJvdHRvbSArIDEsIHRvcCk7Ci0JCWlmICgqdGVybSkKLQkJCXVzYWdlKGJsYW1lX3VzYWdlKTsKLQl9Ci0JaWYgKCp0ZXJtKQorCWlmIChwYXJzZV9yYW5nZV9hcmcoYm90dG9tdG9wLCBudGhfbGluZV9jYiwgc2IsIGxubywgYm90dG9tLCB0b3AsIHNiLT5wYXRoKSkKIAkJdXNhZ2UoYmxhbWVfdXNhZ2UpOwogfQogCkBAIC0yNTc0LDEwICsyNDk1LDYgQEAKIAlib3R0b20gPSB0b3AgPSAwOwogCWlmIChib3R0b210b3ApCiAJCXByZXBhcmVfYmxhbWVfcmFuZ2UoJnNiLCBib3R0b210b3AsIGxubywgJmJvdHRvbSwgJnRvcCk7Ci0JaWYgKGJvdHRvbSAmJiB0b3AgJiYgdG9wIDwgYm90dG9tKSB7Ci0JCWxvbmcgdG1wOwotCQl0bXAgPSB0b3A7IHRvcCA9IGJvdHRvbTsgYm90dG9tID0gdG1wOwotCX0KIAlpZiAoYm90dG9tIDwgMSkKIAkJYm90dG9tID0gMTsKIAlpZiAodG9wIDwgMSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2F0LWZpbGUuYyBiL2J1aWx0aW4vY2F0LWZpbGUuYwppbmRleCAwNDVjZWU3Li40MjUzNDYwIDEwMDY0NAotLS0gYS9idWlsdGluL2NhdC1maWxlLmMKKysrIGIvYnVpbHRpbi9jYXQtZmlsZS5jCkBAIC0xMyw5ICsxMyw2IEBACiAjaW5jbHVkZSAidXNlcmRpZmYuaCIKICNpbmNsdWRlICJzdHJlYW1pbmcuaCIKIAotI2RlZmluZSBCQVRDSCAxCi0jZGVmaW5lIEJBVENIX0NIRUNLIDIKLQogc3RhdGljIGludCBjYXRfb25lX2ZpbGUoaW50IG9wdCwgY29uc3QgY2hhciAqZXhwX3R5cGUsIGNvbnN0IGNoYXIgKm9ial9uYW1lKQogewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xMTcsNTQgKzExNCwxNjYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBiYXRjaF9vbmVfb2JqZWN0KGNvbnN0IGNoYXIgKm9ial9uYW1lLCBpbnQgcHJpbnRfY29udGVudHMpCi17CitzdHJ1Y3QgZXhwYW5kX2RhdGEgewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JZW51bSBvYmplY3RfdHlwZSB0eXBlID0gMDsKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CiAJdW5zaWduZWQgbG9uZyBzaXplOwotCXZvaWQgKmNvbnRlbnRzID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGRpc2tfc2l6ZTsKKworCS8qCisJICogSWYgbWFya19xdWVyeSBpcyB0cnVlLCB3ZSBkbyBub3QgZXhwYW5kIGFueXRoaW5nLCBidXQgcmF0aGVyCisJICoganVzdCBtYXJrIHRoZSBvYmplY3RfaW5mbyB3aXRoIGl0ZW1zIHdlIHdpc2ggdG8gcXVlcnkuCisJICovCisJaW50IG1hcmtfcXVlcnk7CisKKwkvKgorCSAqIEFmdGVyIGEgbWFya19xdWVyeSBydW4sIHRoaXMgb2JqZWN0X2luZm8gaXMgc2V0IHVwIHRvIGJlCisJICogcGFzc2VkIHRvIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQuIEl0IHdpbGwgcG9pbnQgdG8gdGhlIGRhdGEKKwkgKiBlbGVtZW50cyBhYm92ZSwgc28geW91IGNhbiByZXRyaWV2ZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGVyZS4KKwkgKi8KKwlzdHJ1Y3Qgb2JqZWN0X2luZm8gaW5mbzsKK307CisKK3N0YXRpYyBpbnQgaXNfYXRvbShjb25zdCBjaGFyICphdG9tLCBjb25zdCBjaGFyICpzLCBpbnQgc2xlbikKK3sKKwlpbnQgYWxlbiA9IHN0cmxlbihhdG9tKTsKKwlyZXR1cm4gYWxlbiA9PSBzbGVuICYmICFtZW1jbXAoYXRvbSwgcywgYWxlbik7Cit9CisKK3N0YXRpYyB2b2lkIGV4cGFuZF9hdG9tKHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICphdG9tLCBpbnQgbGVuLAorCQkJdm9pZCAqdmRhdGEpCit7CisJc3RydWN0IGV4cGFuZF9kYXRhICpkYXRhID0gdmRhdGE7CisKKwlpZiAoaXNfYXRvbSgib2JqZWN0bmFtZSIsIGF0b20sIGxlbikpIHsKKwkJaWYgKCFkYXRhLT5tYXJrX3F1ZXJ5KQorCQkJc3RyYnVmX2FkZHN0cihzYiwgc2hhMV90b19oZXgoZGF0YS0+c2hhMSkpOworCX0gZWxzZSBpZiAoaXNfYXRvbSgib2JqZWN0dHlwZSIsIGF0b20sIGxlbikpIHsKKwkJaWYgKGRhdGEtPm1hcmtfcXVlcnkpCisJCQlkYXRhLT5pbmZvLnR5cGVwID0gJmRhdGEtPnR5cGU7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRzdHIoc2IsIHR5cGVuYW1lKGRhdGEtPnR5cGUpKTsKKwl9IGVsc2UgaWYgKGlzX2F0b20oIm9iamVjdHNpemUiLCBhdG9tLCBsZW4pKSB7CisJCWlmIChkYXRhLT5tYXJrX3F1ZXJ5KQorCQkJZGF0YS0+aW5mby5zaXplcCA9ICZkYXRhLT5zaXplOworCQllbHNlCisJCQlzdHJidWZfYWRkZihzYiwgIiVsdSIsIGRhdGEtPnNpemUpOworCX0gZWxzZSBpZiAoaXNfYXRvbSgib2JqZWN0c2l6ZTpkaXNrIiwgYXRvbSwgbGVuKSkgeworCQlpZiAoZGF0YS0+bWFya19xdWVyeSkKKwkJCWRhdGEtPmluZm8uZGlza19zaXplcCA9ICZkYXRhLT5kaXNrX3NpemU7CisJCWVsc2UKKwkJCXN0cmJ1Zl9hZGRmKHNiLCAiJWx1IiwgZGF0YS0+ZGlza19zaXplKTsKKwl9IGVsc2UKKwkJZGllKCJ1bmtub3duIGZvcm1hdCBlbGVtZW50OiAlLipzIiwgbGVuLCBhdG9tKTsKK30KKworc3RhdGljIHNpemVfdCBleHBhbmRfZm9ybWF0KHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpzdGFydCwgdm9pZCAqZGF0YSkKK3sKKwljb25zdCBjaGFyICplbmQ7CisKKwlpZiAoKnN0YXJ0ICE9ICcoJykKKwkJcmV0dXJuIDA7CisJZW5kID0gc3RyY2hyKHN0YXJ0ICsgMSwgJyknKTsKKwlpZiAoIWVuZCkKKwkJZGllKCJmb3JtYXQgZWxlbWVudCAnJXMnIGRvZXMgbm90IGVuZCBpbiAnKSciLCBzdGFydCk7CisKKwlleHBhbmRfYXRvbShzYiwgc3RhcnQgKyAxLCBlbmQgLSBzdGFydCAtIDEsIGRhdGEpOworCisJcmV0dXJuIGVuZCAtIHN0YXJ0ICsgMTsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfb2JqZWN0X29yX2RpZShpbnQgZmQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkJZW51bSBvYmplY3RfdHlwZSB0eXBlLCB1bnNpZ25lZCBsb25nIHNpemUpCit7CisJaWYgKHR5cGUgPT0gT0JKX0JMT0IpIHsKKwkJaWYgKHN0cmVhbV9ibG9iX3RvX2ZkKGZkLCBzaGExLCBOVUxMLCAwKSA8IDApCisJCQlkaWUoInVuYWJsZSB0byBzdHJlYW0gJXMgdG8gc3Rkb3V0Iiwgc2hhMV90b19oZXgoc2hhMSkpOworCX0KKwllbHNlIHsKKwkJZW51bSBvYmplY3RfdHlwZSBydHlwZTsKKwkJdW5zaWduZWQgbG9uZyByc2l6ZTsKKwkJdm9pZCAqY29udGVudHM7CisKKwkJY29udGVudHMgPSByZWFkX3NoYTFfZmlsZShzaGExLCAmcnR5cGUsICZyc2l6ZSk7CisJCWlmICghY29udGVudHMpCisJCQlkaWUoIm9iamVjdCAlcyBkaXNhcHBlYXJlZCIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKwkJaWYgKHJ0eXBlICE9IHR5cGUpCisJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2VkIHR5cGUhPyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKwkJaWYgKHJzaXplICE9IHNpemUpCisJCQlkaWUoIm9iamVjdCAlcyBjaGFuZ2Ugc2l6ZSE/Iiwgc2hhMV90b19oZXgoc2hhMSkpOworCisJCXdyaXRlX29yX2RpZShmZCwgY29udGVudHMsIHNpemUpOworCQlmcmVlKGNvbnRlbnRzKTsKKwl9Cit9CisKK3N0cnVjdCBiYXRjaF9vcHRpb25zIHsKKwlpbnQgZW5hYmxlZDsKKwlpbnQgcHJpbnRfY29udGVudHM7CisJY29uc3QgY2hhciAqZm9ybWF0OworfTsKKworc3RhdGljIGludCBiYXRjaF9vbmVfb2JqZWN0KGNvbnN0IGNoYXIgKm9ial9uYW1lLCBzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqb3B0LAorCQkJICAgIHN0cnVjdCBleHBhbmRfZGF0YSAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCiAJaWYgKCFvYmpfbmFtZSkKIAkgICByZXR1cm4gMTsKIAotCWlmIChnZXRfc2hhMShvYmpfbmFtZSwgc2hhMSkpIHsKKwlpZiAoZ2V0X3NoYTEob2JqX25hbWUsIGRhdGEtPnNoYTEpKSB7CiAJCXByaW50ZigiJXMgbWlzc2luZ1xuIiwgb2JqX25hbWUpOwogCQlmZmx1c2goc3Rkb3V0KTsKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKHByaW50X2NvbnRlbnRzID09IEJBVENIKQotCQljb250ZW50cyA9IHJlYWRfc2hhMV9maWxlKHNoYTEsICZ0eXBlLCAmc2l6ZSk7Ci0JZWxzZQotCQl0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCAmc2l6ZSk7Ci0KLQlpZiAodHlwZSA8PSAwKSB7CisJaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoZGF0YS0+c2hhMSwgJmRhdGEtPmluZm8pIDwgMCkgewogCQlwcmludGYoIiVzIG1pc3NpbmdcbiIsIG9ial9uYW1lKTsKIAkJZmZsdXNoKHN0ZG91dCk7Ci0JCWlmIChwcmludF9jb250ZW50cyA9PSBCQVRDSCkKLQkJCWZyZWUoY29udGVudHMpOwogCQlyZXR1cm4gMDsKIAl9CiAKLQlwcmludGYoIiVzICVzICVsdVxuIiwgc2hhMV90b19oZXgoc2hhMSksIHR5cGVuYW1lKHR5cGUpLCBzaXplKTsKLQlmZmx1c2goc3Rkb3V0KTsKKwlzdHJidWZfZXhwYW5kKCZidWYsIG9wdC0+Zm9ybWF0LCBleHBhbmRfZm9ybWF0LCBkYXRhKTsKKwlzdHJidWZfYWRkY2goJmJ1ZiwgJ1xuJyk7CisJd3JpdGVfb3JfZGllKDEsIGJ1Zi5idWYsIGJ1Zi5sZW4pOworCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCi0JaWYgKHByaW50X2NvbnRlbnRzID09IEJBVENIKSB7Ci0JCXdyaXRlX29yX2RpZSgxLCBjb250ZW50cywgc2l6ZSk7Ci0JCXByaW50ZigiXG4iKTsKLQkJZmZsdXNoKHN0ZG91dCk7Ci0JCWZyZWUoY29udGVudHMpOworCWlmIChvcHQtPnByaW50X2NvbnRlbnRzKSB7CisJCXByaW50X29iamVjdF9vcl9kaWUoMSwgZGF0YS0+c2hhMSwgZGF0YS0+dHlwZSwgZGF0YS0+c2l6ZSk7CisJCXdyaXRlX29yX2RpZSgxLCAiXG4iLCAxKTsKIAl9Ci0KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBiYXRjaF9vYmplY3RzKGludCBwcmludF9jb250ZW50cykKK3N0YXRpYyBpbnQgYmF0Y2hfb2JqZWN0cyhzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqb3B0KQogewogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IGV4cGFuZF9kYXRhIGRhdGE7CisKKwlpZiAoIW9wdC0+Zm9ybWF0KQorCQlvcHQtPmZvcm1hdCA9ICIlKG9iamVjdG5hbWUpICUob2JqZWN0dHlwZSkgJShvYmplY3RzaXplKSI7CisKKwkvKgorCSAqIEV4cGFuZCBvbmNlIHdpdGggb3VyIHNwZWNpYWwgbWFya19xdWVyeSBmbGFnLCB3aGljaCB3aWxsIHByaW1lIHRoZQorCSAqIG9iamVjdF9pbmZvIHRvIGJlIGhhbmRlZCB0byBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkIGZvciBlYWNoCisJICogb2JqZWN0LgorCSAqLworCW1lbXNldCgmZGF0YSwgMCwgc2l6ZW9mKGRhdGEpKTsKKwlkYXRhLm1hcmtfcXVlcnkgPSAxOworCXN0cmJ1Zl9leHBhbmQoJmJ1Ziwgb3B0LT5mb3JtYXQsIGV4cGFuZF9mb3JtYXQsICZkYXRhKTsKKwlkYXRhLm1hcmtfcXVlcnkgPSAwOworCisJLyoKKwkgKiBXZSBhcmUgZ29pbmcgdG8gY2FsbCBnZXRfc2hhMSBvbiBhIHBvdGVudGlhbGx5IHZlcnkgbGFyZ2UgbnVtYmVyIG9mCisJICogb2JqZWN0cy4gSW4gbW9zdCBsYXJnZSBjYXNlcywgdGhlc2Ugd2lsbCBiZSBhY3R1YWwgb2JqZWN0IHNoYTFzLiBUaGUKKwkgKiBjb3N0IHRvIGRvdWJsZS1jaGVjayB0aGF0IGVhY2ggb25lIGlzIG5vdCBhbHNvIGEgcmVmIChqdXN0IHNvIHdlIGNhbgorCSAqIHdhcm4pIGVuZHMgdXAgZHdhcmZpbmcgdGhlIGFjdHVhbCBjb3N0IG9mIHRoZSBvYmplY3QgbG9va3VwcworCSAqIHRoZW1zZWx2ZXMuIFdlIGNhbiB3b3JrIGFyb3VuZCBpdCBieSBqdXN0IHR1cm5pbmcgb2ZmIHRoZSB3YXJuaW5nLgorCSAqLworCXdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5ID0gMDsKIAogCXdoaWxlIChzdHJidWZfZ2V0bGluZSgmYnVmLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7Ci0JCWludCBlcnJvciA9IGJhdGNoX29uZV9vYmplY3QoYnVmLmJ1ZiwgcHJpbnRfY29udGVudHMpOworCQlpbnQgZXJyb3IgPSBiYXRjaF9vbmVfb2JqZWN0KGJ1Zi5idWYsIG9wdCwgJmRhdGEpOwogCQlpZiAoZXJyb3IpCiAJCQlyZXR1cm4gZXJyb3I7CiAJfQpAQCAtMTg2LDEwICsyOTUsMjkgQEAKIAlyZXR1cm4gZ2l0X2RlZmF1bHRfY29uZmlnKHZhciwgdmFsdWUsIGNiKTsKIH0KIAorc3RhdGljIGludCBiYXRjaF9vcHRpb25fY2FsbGJhY2soY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAorCQkJCSBjb25zdCBjaGFyICphcmcsCisJCQkJIGludCB1bnNldCkKK3sKKwlzdHJ1Y3QgYmF0Y2hfb3B0aW9ucyAqYm8gPSBvcHQtPnZhbHVlOworCisJaWYgKHVuc2V0KSB7CisJCW1lbXNldChibywgMCwgc2l6ZW9mKCpibykpOworCQlyZXR1cm4gMDsKKwl9CisKKwliby0+ZW5hYmxlZCA9IDE7CisJYm8tPnByaW50X2NvbnRlbnRzID0gIXN0cmNtcChvcHQtPmxvbmdfbmFtZSwgImJhdGNoIik7CisJYm8tPmZvcm1hdCA9IGFyZzsKKworCXJldHVybiAwOworfQorCiBpbnQgY21kX2NhdF9maWxlKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewotCWludCBvcHQgPSAwLCBiYXRjaCA9IDA7CisJaW50IG9wdCA9IDA7CiAJY29uc3QgY2hhciAqZXhwX3R5cGUgPSBOVUxMLCAqb2JqX25hbWUgPSBOVUxMOworCXN0cnVjdCBiYXRjaF9vcHRpb25zIGJhdGNoID0gezB9OwogCiAJY29uc3Qgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9HUk9VUChOXygiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIikpLApAQCAtMjAwLDEyICszMjgsMTIgQEAKIAkJT1BUX1NFVF9JTlQoJ3AnLCBOVUxMLCAmb3B0LCBOXygicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiKSwgJ3AnKSwKIAkJT1BUX1NFVF9JTlQoMCwgInRleHRjb252IiwgJm9wdCwKIAkJCSAgICBOXygiZm9yIGJsb2Igb2JqZWN0cywgcnVuIHRleHRjb252IG9uIG9iamVjdCdzIGNvbnRlbnQiKSwgJ2MnKSwKLQkJT1BUX1NFVF9JTlQoMCwgImJhdGNoIiwgJmJhdGNoLAotCQkJICAgIE5fKCJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKLQkJCSAgICBCQVRDSCksCi0JCU9QVF9TRVRfSU5UKDAsICJiYXRjaC1jaGVjayIsICZiYXRjaCwKLQkJCSAgICBOXygic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IiksCi0JCQkgICAgQkFUQ0hfQ0hFQ0spLAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImJhdGNoIiwgJmJhdGNoLCAiZm9ybWF0IiwKKwkJCU5fKCJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKKwkJCVBBUlNFX09QVF9PUFRBUkcsIGJhdGNoX29wdGlvbl9jYWxsYmFjayB9LAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImJhdGNoLWNoZWNrIiwgJmJhdGNoLCAiZm9ybWF0IiwKKwkJCU5fKCJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiKSwKKwkJCVBBUlNFX09QVF9PUFRBUkcsIGJhdGNoX29wdGlvbl9jYWxsYmFjayB9LAogCQlPUFRfRU5EKCkKIAl9OwogCkBAIC0yMjIsMTkgKzM1MCwxOSBAQAogCQllbHNlCiAJCQl1c2FnZV93aXRoX29wdGlvbnMoY2F0X2ZpbGVfdXNhZ2UsIG9wdGlvbnMpOwogCX0KLQlpZiAoIW9wdCAmJiAhYmF0Y2gpIHsKKwlpZiAoIW9wdCAmJiAhYmF0Y2guZW5hYmxlZCkgewogCQlpZiAoYXJnYyA9PSAyKSB7CiAJCQlleHBfdHlwZSA9IGFyZ3ZbMF07CiAJCQlvYmpfbmFtZSA9IGFyZ3ZbMV07CiAJCX0gZWxzZQogCQkJdXNhZ2Vfd2l0aF9vcHRpb25zKGNhdF9maWxlX3VzYWdlLCBvcHRpb25zKTsKIAl9Ci0JaWYgKGJhdGNoICYmIChvcHQgfHwgYXJnYykpIHsKKwlpZiAoYmF0Y2guZW5hYmxlZCAmJiAob3B0IHx8IGFyZ2MpKSB7CiAJCXVzYWdlX3dpdGhfb3B0aW9ucyhjYXRfZmlsZV91c2FnZSwgb3B0aW9ucyk7CiAJfQogCi0JaWYgKGJhdGNoKQotCQlyZXR1cm4gYmF0Y2hfb2JqZWN0cyhiYXRjaCk7CisJaWYgKGJhdGNoLmVuYWJsZWQpCisJCXJldHVybiBiYXRjaF9vYmplY3RzKCZiYXRjaCk7CiAKIAlyZXR1cm4gY2F0X29uZV9maWxlKG9wdCwgZXhwX3R5cGUsIG9ial9uYW1lKTsKIH0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMgYi9idWlsdGluL2NoZWNrLWlnbm9yZS5jCmluZGV4IDg1NGE4OGEuLjRhOGZjNzAgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2hlY2staWdub3JlLmMKKysrIGIvYnVpbHRpbi9jaGVjay1pZ25vcmUuYwpAQCAtNSw3ICs1LDcgQEAKICNpbmNsdWRlICJwYXRoc3BlYy5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKIAotc3RhdGljIGludCBxdWlldCwgdmVyYm9zZSwgc3RkaW5fcGF0aHM7CitzdGF0aWMgaW50IHF1aWV0LCB2ZXJib3NlLCBzdGRpbl9wYXRocywgc2hvd19ub25fbWF0Y2hpbmc7CiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNoZWNrX2lnbm9yZV91c2FnZVtdID0gewogImdpdCBjaGVjay1pZ25vcmUgW29wdGlvbnNdIHBhdGhuYW1lLi4uIiwKICJnaXQgY2hlY2staWdub3JlIFtvcHRpb25zXSAtLXN0ZGluIDwgPGxpc3Qtb2YtcGF0aHM+IiwKQEAgLTIyLDIxICsyMiwyOCBAQAogCQkgICAgTl8oInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIikpLAogCU9QVF9CT09MRUFOKCd6JywgTlVMTCwgJm51bGxfdGVybV9saW5lLAogCQkgICAgTl8oImlucHV0IHBhdGhzIGFyZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbCBjaGFyYWN0ZXIiKSksCisJT1BUX0JPT0xFQU4oJ24nLCAibm9uLW1hdGNoaW5nIiwgJnNob3dfbm9uX21hdGNoaW5nLAorCQkgICAgTl8oInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIikpLAogCU9QVF9FTkQoKQogfTsKIAogc3RhdGljIHZvaWQgb3V0cHV0X2V4Y2x1ZGUoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IGV4Y2x1ZGUgKmV4Y2x1ZGUpCiB7Ci0JY2hhciAqYmFuZyAgPSBleGNsdWRlLT5mbGFncyAmIEVYQ19GTEFHX05FR0FUSVZFICA/ICIhIiA6ICIiOwotCWNoYXIgKnNsYXNoID0gZXhjbHVkZS0+ZmxhZ3MgJiBFWENfRkxBR19NVVNUQkVESVIgPyAiLyIgOiAiIjsKKwljaGFyICpiYW5nICA9IChleGNsdWRlICYmIGV4Y2x1ZGUtPmZsYWdzICYgRVhDX0ZMQUdfTkVHQVRJVkUpICA/ICIhIiA6ICIiOworCWNoYXIgKnNsYXNoID0gKGV4Y2x1ZGUgJiYgZXhjbHVkZS0+ZmxhZ3MgJiBFWENfRkxBR19NVVNUQkVESVIpID8gIi8iIDogIiI7CiAJaWYgKCFudWxsX3Rlcm1fbGluZSkgewogCQlpZiAoIXZlcmJvc2UpIHsKIAkJCXdyaXRlX25hbWVfcXVvdGVkKHBhdGgsIHN0ZG91dCwgJ1xuJyk7CiAJCX0gZWxzZSB7Ci0JCQlxdW90ZV9jX3N0eWxlKGV4Y2x1ZGUtPmVsLT5zcmMsIE5VTEwsIHN0ZG91dCwgMCk7Ci0JCQlwcmludGYoIjolZDolcyVzJXNcdCIsCi0JCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLAotCQkJICAgICAgIGJhbmcsIGV4Y2x1ZGUtPnBhdHRlcm4sIHNsYXNoKTsKKwkJCWlmIChleGNsdWRlKSB7CisJCQkJcXVvdGVfY19zdHlsZShleGNsdWRlLT5lbC0+c3JjLCBOVUxMLCBzdGRvdXQsIDApOworCQkJCXByaW50ZigiOiVkOiVzJXMlc1x0IiwKKwkJCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLAorCQkJCSAgICAgICBiYW5nLCBleGNsdWRlLT5wYXR0ZXJuLCBzbGFzaCk7CisJCQl9CisJCQllbHNlIHsKKwkJCQlwcmludGYoIjo6XHQiKTsKKwkJCX0KIAkJCXF1b3RlX2Nfc3R5bGUocGF0aCwgTlVMTCwgc3Rkb3V0LCAwKTsKIAkJCWZwdXRjKCdcbicsIHN0ZG91dCk7CiAJCX0KQEAgLTQ0LDMwICs1MSwyNiBAQAogCQlpZiAoIXZlcmJvc2UpIHsKIAkJCXByaW50ZigiJXMlYyIsIHBhdGgsICdcMCcpOwogCQl9IGVsc2UgewotCQkJcHJpbnRmKCIlcyVjJWQlYyVzJXMlcyVjJXMlYyIsCi0JCQkgICAgICAgZXhjbHVkZS0+ZWwtPnNyYywgJ1wwJywKLQkJCSAgICAgICBleGNsdWRlLT5zcmNwb3MsICdcMCcsCi0JCQkgICAgICAgYmFuZywgZXhjbHVkZS0+cGF0dGVybiwgc2xhc2gsICdcMCcsCi0JCQkgICAgICAgcGF0aCwgJ1wwJyk7CisJCQlpZiAoZXhjbHVkZSkKKwkJCQlwcmludGYoIiVzJWMlZCVjJXMlcyVzJWMlcyVjIiwKKwkJCQkgICAgICAgZXhjbHVkZS0+ZWwtPnNyYywgJ1wwJywKKwkJCQkgICAgICAgZXhjbHVkZS0+c3JjcG9zLCAnXDAnLAorCQkJCSAgICAgICBiYW5nLCBleGNsdWRlLT5wYXR0ZXJuLCBzbGFzaCwgJ1wwJywKKwkJCQkgICAgICAgcGF0aCwgJ1wwJyk7CisJCQllbHNlCisJCQkJcHJpbnRmKCIlYyVjJWMlcyVjIiwgJ1wwJywgJ1wwJywgJ1wwJywgcGF0aCwgJ1wwJyk7CiAJCX0KIAl9CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfaWdub3JlKGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQorc3RhdGljIGludCBjaGVja19pZ25vcmUoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwKKwkJCWNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3QgY2hhciAqKnBhdGhzcGVjKQogewotCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAljb25zdCBjaGFyICpwYXRoLCAqZnVsbF9wYXRoOwogCWNoYXIgKnNlZW47CiAJaW50IG51bV9pZ25vcmVkID0gMCwgZHR5cGUgPSBEVF9VTktOT1dOLCBpOwogCXN0cnVjdCBleGNsdWRlICpleGNsdWRlOwogCi0JLyogcmVhZF9jYWNoZSgpIGlzIG9ubHkgbmVjZXNzYXJ5IHNvIHdlIGNhbiB3YXRjaCBvdXQgZm9yIHN1Ym1vZHVsZXMuICovCi0JaWYgKHJlYWRfY2FjaGUoKSA8IDApCi0JCWRpZShfKCJpbmRleCBmaWxlIGNvcnJ1cHQiKSk7Ci0KLQltZW1zZXQoJmRpciwgMCwgc2l6ZW9mKGRpcikpOwotCXNldHVwX3N0YW5kYXJkX2V4Y2x1ZGVzKCZkaXIpOwotCiAJaWYgKCFwYXRoc3BlYyB8fCAhKnBhdGhzcGVjKSB7CiAJCWlmICghcXVpZXQpCiAJCQlmcHJpbnRmKHN0ZGVyciwgIm5vIHBhdGhzcGVjIGdpdmVuLlxuIik7CkBAIC04NiwyOCArODksMjYgQEAKIAkJCQkJPyBzdHJsZW4ocHJlZml4KSA6IDAsIHBhdGgpOwogCQlmdWxsX3BhdGggPSBjaGVja19wYXRoX2Zvcl9naXRsaW5rKGZ1bGxfcGF0aCk7CiAJCWRpZV9pZl9wYXRoX2JleW9uZF9zeW1saW5rKGZ1bGxfcGF0aCwgcHJlZml4KTsKKwkJZXhjbHVkZSA9IE5VTEw7CiAJCWlmICghc2VlbltpXSkgewotCQkJZXhjbHVkZSA9IGxhc3RfZXhjbHVkZV9tYXRjaGluZygmZGlyLCBmdWxsX3BhdGgsICZkdHlwZSk7Ci0JCQlpZiAoZXhjbHVkZSkgewotCQkJCWlmICghcXVpZXQpCi0JCQkJCW91dHB1dF9leGNsdWRlKHBhdGgsIGV4Y2x1ZGUpOwotCQkJCW51bV9pZ25vcmVkKys7Ci0JCQl9CisJCQlleGNsdWRlID0gbGFzdF9leGNsdWRlX21hdGNoaW5nKGRpciwgZnVsbF9wYXRoLCAmZHR5cGUpOwogCQl9CisJCWlmICghcXVpZXQgJiYgKGV4Y2x1ZGUgfHwgc2hvd19ub25fbWF0Y2hpbmcpKQorCQkJb3V0cHV0X2V4Y2x1ZGUocGF0aCwgZXhjbHVkZSk7CisJCWlmIChleGNsdWRlKQorCQkJbnVtX2lnbm9yZWQrKzsKIAl9CiAJZnJlZShzZWVuKTsKLQljbGVhcl9kaXJlY3RvcnkoJmRpcik7CiAKIAlyZXR1cm4gbnVtX2lnbm9yZWQ7CiB9CiAKLXN0YXRpYyBpbnQgY2hlY2tfaWdub3JlX3N0ZGluX3BhdGhzKGNvbnN0IGNoYXIgKnByZWZpeCkKK3N0YXRpYyBpbnQgY2hlY2tfaWdub3JlX3N0ZGluX3BhdGhzKHN0cnVjdCBkaXJfc3RydWN0ICpkaXIsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiwgbmJ1ZjsKLQljaGFyICoqcGF0aHNwZWMgPSBOVUxMOwotCXNpemVfdCBuciA9IDAsIGFsbG9jID0gMDsKKwljaGFyICpwYXRoc3BlY1syXSA9IHsgTlVMTCwgTlVMTCB9OwogCWludCBsaW5lX3Rlcm1pbmF0aW9uID0gbnVsbF90ZXJtX2xpbmUgPyAwIDogJ1xuJzsKLQlpbnQgbnVtX2lnbm9yZWQ7CisJaW50IG51bV9pZ25vcmVkID0gMDsKIAogCXN0cmJ1Zl9pbml0KCZidWYsIDApOwogCXN0cmJ1Zl9pbml0KCZuYnVmLCAwKTsKQEAgLTExOCwyMyArMTE5LDE5IEBACiAJCQkJZGllKCJsaW5lIGlzIGJhZGx5IHF1b3RlZCIpOwogCQkJc3RyYnVmX3N3YXAoJmJ1ZiwgJm5idWYpOwogCQl9Ci0JCUFMTE9DX0dST1cocGF0aHNwZWMsIG5yICsgMSwgYWxsb2MpOwotCQlwYXRoc3BlY1tucl0gPSB4Y2FsbG9jKHN0cmxlbihidWYuYnVmKSArIDEsIHNpemVvZigqYnVmLmJ1ZikpOwotCQlzdHJjcHkocGF0aHNwZWNbbnIrK10sIGJ1Zi5idWYpOworCQlwYXRoc3BlY1swXSA9IGJ1Zi5idWY7CisJCW51bV9pZ25vcmVkICs9IGNoZWNrX2lnbm9yZShkaXIsIHByZWZpeCwgKGNvbnN0IGNoYXIgKiopcGF0aHNwZWMpOworCQltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAiY2hlY2staWdub3JlIHRvIHN0ZG91dCIpOwogCX0KLQlBTExPQ19HUk9XKHBhdGhzcGVjLCBuciArIDEsIGFsbG9jKTsKLQlwYXRoc3BlY1tucl0gPSBOVUxMOwotCW51bV9pZ25vcmVkID0gY2hlY2tfaWdub3JlKHByZWZpeCwgKGNvbnN0IGNoYXIgKiopcGF0aHNwZWMpOwotCW1heWJlX2ZsdXNoX29yX2RpZShzdGRvdXQsICJhdHRyaWJ1dGUgdG8gc3Rkb3V0Iik7CiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiAJc3RyYnVmX3JlbGVhc2UoJm5idWYpOwotCWZyZWUocGF0aHNwZWMpOwogCXJldHVybiBudW1faWdub3JlZDsKIH0KIAogaW50IGNtZF9jaGVja19pZ25vcmUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IG51bV9pZ25vcmVkOworCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAogCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIApAQCAtMTU2LDEzICsxNTMsMjQgQEAKIAkJaWYgKHZlcmJvc2UpCiAJCQlkaWUoXygiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiKSk7CiAJfQorCWlmIChzaG93X25vbl9tYXRjaGluZyAmJiAhdmVyYm9zZSkKKwkJZGllKF8oIi0tbm9uLW1hdGNoaW5nIGlzIG9ubHkgdmFsaWQgd2l0aCAtLXZlcmJvc2UiKSk7CisKKwkvKiByZWFkX2NhY2hlKCkgaXMgb25seSBuZWNlc3Nhcnkgc28gd2UgY2FuIHdhdGNoIG91dCBmb3Igc3VibW9kdWxlcy4gKi8KKwlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwkJZGllKF8oImluZGV4IGZpbGUgY29ycnVwdCIpKTsKKworCW1lbXNldCgmZGlyLCAwLCBzaXplb2YoZGlyKSk7CisJc2V0dXBfc3RhbmRhcmRfZXhjbHVkZXMoJmRpcik7CiAKIAlpZiAoc3RkaW5fcGF0aHMpIHsKLQkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmVfc3RkaW5fcGF0aHMocHJlZml4KTsKKwkJbnVtX2lnbm9yZWQgPSBjaGVja19pZ25vcmVfc3RkaW5fcGF0aHMoJmRpciwgcHJlZml4KTsKIAl9IGVsc2UgewotCQludW1faWdub3JlZCA9IGNoZWNrX2lnbm9yZShwcmVmaXgsIGFyZ3YpOworCQludW1faWdub3JlZCA9IGNoZWNrX2lnbm9yZSgmZGlyLCBwcmVmaXgsIGFyZ3YpOwogCQltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAiaWdub3JlIHRvIHN0ZG91dCIpOwogCX0KIAorCWNsZWFyX2RpcmVjdG9yeSgmZGlyKTsKKwogCXJldHVybiAhbnVtX2lnbm9yZWQ7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL2NoZWNrLW1haWxtYXAuYyBiL2J1aWx0aW4vY2hlY2stbWFpbG1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNGQ4MDkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsdGluL2NoZWNrLW1haWxtYXAuYwpAQCAtMCwwICsxLDY2IEBACisjaW5jbHVkZSAiYnVpbHRpbi5oIgorI2luY2x1ZGUgIm1haWxtYXAuaCIKKyNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCisjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKKworc3RhdGljIGludCB1c2Vfc3RkaW47CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNoZWNrX21haWxtYXBfdXNhZ2VbXSA9IHsKK05fKCJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIiksCitOVUxMCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBjaGVja19tYWlsbWFwX29wdGlvbnNbXSA9IHsKKwlPUFRfQk9PTCgwLCAic3RkaW4iLCAmdXNlX3N0ZGluLCBOXygiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iKSksCisJT1BUX0VORCgpCit9OworCitzdGF0aWMgdm9pZCBjaGVja19tYWlsbWFwKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFpbG1hcCwgY29uc3QgY2hhciAqY29udGFjdCkKK3sKKwljb25zdCBjaGFyICpuYW1lLCAqbWFpbDsKKwlzaXplX3QgbmFtZWxlbiwgbWFpbGxlbjsKKwlzdHJ1Y3QgaWRlbnRfc3BsaXQgaWRlbnQ7CisKKwlpZiAoc3BsaXRfaWRlbnRfbGluZSgmaWRlbnQsIGNvbnRhY3QsIHN0cmxlbihjb250YWN0KSkpCisJCWRpZShfKCJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiKSwgY29udGFjdCk7CisKKwluYW1lID0gaWRlbnQubmFtZV9iZWdpbjsKKwluYW1lbGVuID0gaWRlbnQubmFtZV9lbmQgLSBpZGVudC5uYW1lX2JlZ2luOworCW1haWwgPSBpZGVudC5tYWlsX2JlZ2luOworCW1haWxsZW4gPSBpZGVudC5tYWlsX2VuZCAtIGlkZW50Lm1haWxfYmVnaW47CisKKwltYXBfdXNlcihtYWlsbWFwLCAmbWFpbCwgJm1haWxsZW4sICZuYW1lLCAmbmFtZWxlbik7CisKKwlpZiAobmFtZWxlbikKKwkJcHJpbnRmKCIlLipzICIsIChpbnQpbmFtZWxlbiwgbmFtZSk7CisJcHJpbnRmKCI8JS4qcz5cbiIsIChpbnQpbWFpbGxlbiwgbWFpbCk7Cit9CisKK2ludCBjbWRfY2hlY2tfbWFpbG1hcChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgbWFpbG1hcCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisKKwlnaXRfY29uZmlnKGdpdF9kZWZhdWx0X2NvbmZpZywgTlVMTCk7CisJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBjaGVja19tYWlsbWFwX29wdGlvbnMsCisJCQkgICAgIGNoZWNrX21haWxtYXBfdXNhZ2UsIDApOworCWlmIChhcmdjID09IDAgJiYgIXVzZV9zdGRpbikKKwkJZGllKF8oIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIpKTsKKworCXJlYWRfbWFpbG1hcCgmbWFpbG1hcCwgTlVMTCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQorCQljaGVja19tYWlsbWFwKCZtYWlsbWFwLCBhcmd2W2ldKTsKKwltYXliZV9mbHVzaF9vcl9kaWUoc3Rkb3V0LCAic3Rkb3V0Iik7CisKKwlpZiAodXNlX3N0ZGluKSB7CisJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CisJCXdoaWxlIChzdHJidWZfZ2V0bGluZSgmYnVmLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7CisJCQljaGVja19tYWlsbWFwKCZtYWlsbWFwLCBidWYuYnVmKTsKKwkJCW1heWJlX2ZsdXNoX29yX2RpZShzdGRvdXQsICJzdGRvdXQiKTsKKwkJfQorCQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwl9CisKKwljbGVhcl9tYWlsbWFwKCZtYWlsbWFwKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY2hlY2tvdXQuYyBiL2J1aWx0aW4vY2hlY2tvdXQuYwppbmRleCA4MWI0NDE5Li43MDI1OTM4IDEwMDY0NAotLS0gYS9idWlsdGluL2NoZWNrb3V0LmMKKysrIGIvYnVpbHRpbi9jaGVja291dC5jCkBAIC05Nyw3ICs5Nyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2tpcF9zYW1lX25hbWUoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKK3N0YXRpYyBpbnQgc2tpcF9zYW1lX25hbWUoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKIHsKIAl3aGlsZSAoKytwb3MgPCBhY3RpdmVfbnIgJiYKIAkgICAgICAgIXN0cmNtcChhY3RpdmVfY2FjaGVbcG9zXS0+bmFtZSwgY2UtPm5hbWUpKQpAQCAtMTA1LDcgKzEwNSw3IEBACiAJcmV0dXJuIHBvczsKIH0KIAotc3RhdGljIGludCBjaGVja19zdGFnZShpbnQgc3RhZ2UsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGludCBwb3MpCitzdGF0aWMgaW50IGNoZWNrX3N0YWdlKGludCBzdGFnZSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHBvcykKIHsKIAl3aGlsZSAocG9zIDwgYWN0aXZlX25yICYmCiAJICAgICAgICFzdHJjbXAoYWN0aXZlX2NhY2hlW3Bvc10tPm5hbWUsIGNlLT5uYW1lKSkgewpAQCAtMTE5LDcgKzExOSw3IEBACiAJCXJldHVybiBlcnJvcihfKCJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIiksIGNlLT5uYW1lKTsKIH0KIAotc3RhdGljIGludCBjaGVja19zdGFnZXModW5zaWduZWQgc3RhZ2VzLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgcG9zKQorc3RhdGljIGludCBjaGVja19zdGFnZXModW5zaWduZWQgc3RhZ2VzLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgcG9zKQogewogCXVuc2lnbmVkIHNlZW4gPSAwOwogCWNvbnN0IGNoYXIgKm5hbWUgPSBjZS0+bmFtZTsKQEAgLTMyMSw3ICszMjEsNyBAQAogCiAJLyogQW55IHVubWVyZ2VkIHBhdGhzPyAqLwogCWZvciAocG9zID0gMDsgcG9zIDwgYWN0aXZlX25yOyBwb3MrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKIAkJaWYgKGNlLT5jZV9mbGFncyAmIENFX01BVENIRUQpIHsKIAkJCWlmICghY2Vfc3RhZ2UoY2UpKQogCQkJCWNvbnRpbnVlOwpAQCAtNTg3LDcgKzU4Nyw3IEBACiAJCQkJICAgc3RydWN0IGJyYW5jaF9pbmZvICpuZXcpCiB7CiAJc3RydWN0IHN0cmJ1ZiBtc2cgPSBTVFJCVUZfSU5JVDsKLQljb25zdCBjaGFyICpvbGRfZGVzYzsKKwljb25zdCBjaGFyICpvbGRfZGVzYywgKnJlZmxvZ19tc2c7CiAJaWYgKG9wdHMtPm5ld19icmFuY2gpIHsKIAkJaWYgKG9wdHMtPm5ld19vcnBoYW5fYnJhbmNoKSB7CiAJCQlpZiAob3B0cy0+bmV3X2JyYW5jaF9sb2cgJiYgIWxvZ19hbGxfcmVmX3VwZGF0ZXMpIHsKQEAgLTYyMCw4ICs2MjAsMTMgQEAKIAlvbGRfZGVzYyA9IG9sZC0+bmFtZTsKIAlpZiAoIW9sZF9kZXNjICYmIG9sZC0+Y29tbWl0KQogCQlvbGRfZGVzYyA9IHNoYTFfdG9faGV4KG9sZC0+Y29tbWl0LT5vYmplY3Quc2hhMSk7Ci0Jc3RyYnVmX2FkZGYoJm1zZywgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAlcyB0byAlcyIsCi0JCSAgICBvbGRfZGVzYyA/IG9sZF9kZXNjIDogIihpbnZhbGlkKSIsIG5ldy0+bmFtZSk7CisKKwlyZWZsb2dfbXNnID0gZ2V0ZW52KCJHSVRfUkVGTE9HX0FDVElPTiIpOworCWlmICghcmVmbG9nX21zZykKKwkJc3RyYnVmX2FkZGYoJm1zZywgImNoZWNrb3V0OiBtb3ZpbmcgZnJvbSAlcyB0byAlcyIsCisJCQlvbGRfZGVzYyA/IG9sZF9kZXNjIDogIihpbnZhbGlkKSIsIG5ldy0+bmFtZSk7CisJZWxzZQorCQlzdHJidWZfaW5zZXJ0KCZtc2csIDAsIHJlZmxvZ19tc2csIHN0cmxlbihyZWZsb2dfbXNnKSk7CiAKIAlpZiAoIXN0cmNtcChuZXctPm5hbWUsICJIRUFEIikgJiYgIW5ldy0+cGF0aCAmJiAhb3B0cy0+Zm9yY2VfZGV0YWNoKSB7CiAJCS8qIE5vdGhpbmcgdG8gZG8uICovCkBAIC04MjUsMzggKzgzMCw0MyBAQAogfQogCiBzdHJ1Y3QgdHJhY2tpbmdfbmFtZV9kYXRhIHsKLQljb25zdCBjaGFyICpuYW1lOwotCWNoYXIgKnJlbW90ZTsKKwkvKiBjb25zdCAqLyBjaGFyICpzcmNfcmVmOworCWNoYXIgKmRzdF9yZWY7CisJdW5zaWduZWQgY2hhciAqZHN0X3NoYTE7CiAJaW50IHVuaXF1ZTsKIH07CiAKLXN0YXRpYyBpbnQgY2hlY2tfdHJhY2tpbmdfbmFtZShjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJICAgICAgIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKK3N0YXRpYyBpbnQgY2hlY2tfdHJhY2tpbmdfbmFtZShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIHZvaWQgKmNiX2RhdGEpCiB7CiAJc3RydWN0IHRyYWNraW5nX25hbWVfZGF0YSAqY2IgPSBjYl9kYXRhOwotCWNvbnN0IGNoYXIgKnNsYXNoOwotCi0JaWYgKHByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpKQorCXN0cnVjdCByZWZzcGVjIHF1ZXJ5OworCW1lbXNldCgmcXVlcnksIDAsIHNpemVvZihzdHJ1Y3QgcmVmc3BlYykpOworCXF1ZXJ5LnNyYyA9IGNiLT5zcmNfcmVmOworCWlmIChyZW1vdGVfZmluZF90cmFja2luZyhyZW1vdGUsICZxdWVyeSkgfHwKKwkgICAgZ2V0X3NoYTEocXVlcnkuZHN0LCBjYi0+ZHN0X3NoYTEpKSB7CisJCWZyZWUocXVlcnkuZHN0KTsKIAkJcmV0dXJuIDA7Ci0Jc2xhc2ggPSBzdHJjaHIocmVmbmFtZSArIDEzLCAnLycpOwotCWlmICghc2xhc2ggfHwgc3RyY21wKHNsYXNoICsgMSwgY2ItPm5hbWUpKQotCQlyZXR1cm4gMDsKLQlpZiAoY2ItPnJlbW90ZSkgeworCX0KKwlpZiAoY2ItPmRzdF9yZWYpIHsKKwkJZnJlZShxdWVyeS5kc3QpOwogCQljYi0+dW5pcXVlID0gMDsKIAkJcmV0dXJuIDA7CiAJfQotCWNiLT5yZW1vdGUgPSB4c3RyZHVwKHJlZm5hbWUpOworCWNiLT5kc3RfcmVmID0gcXVlcnkuZHN0OwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqdW5pcXVlX3RyYWNraW5nX25hbWUoY29uc3QgY2hhciAqbmFtZSkKK3N0YXRpYyBjb25zdCBjaGFyICp1bmlxdWVfdHJhY2tpbmdfbmFtZShjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKQogewotCXN0cnVjdCB0cmFja2luZ19uYW1lX2RhdGEgY2JfZGF0YSA9IHsgTlVMTCwgTlVMTCwgMSB9OwotCWNiX2RhdGEubmFtZSA9IG5hbWU7Ci0JZm9yX2VhY2hfcmVmKGNoZWNrX3RyYWNraW5nX25hbWUsICZjYl9kYXRhKTsKKwlzdHJ1Y3QgdHJhY2tpbmdfbmFtZV9kYXRhIGNiX2RhdGEgPSB7IE5VTEwsIE5VTEwsIE5VTEwsIDEgfTsKKwljaGFyIHNyY19yZWZbUEFUSF9NQVhdOworCXNucHJpbnRmKHNyY19yZWYsIFBBVEhfTUFYLCAicmVmcy9oZWFkcy8lcyIsIG5hbWUpOworCWNiX2RhdGEuc3JjX3JlZiA9IHNyY19yZWY7CisJY2JfZGF0YS5kc3Rfc2hhMSA9IHNoYTE7CisJZm9yX2VhY2hfcmVtb3RlKGNoZWNrX3RyYWNraW5nX25hbWUsICZjYl9kYXRhKTsKIAlpZiAoY2JfZGF0YS51bmlxdWUpCi0JCXJldHVybiBjYl9kYXRhLnJlbW90ZTsKLQlmcmVlKGNiX2RhdGEucmVtb3RlKTsKKwkJcmV0dXJuIGNiX2RhdGEuZHN0X3JlZjsKKwlmcmVlKGNiX2RhdGEuZHN0X3JlZik7CiAJcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTkxOSw4ICs5MjksOCBAQAogCQlpZiAoZHdpbV9uZXdfbG9jYWxfYnJhbmNoX29rICYmCiAJCSAgICAhY2hlY2tfZmlsZW5hbWUoTlVMTCwgYXJnKSAmJgogCQkgICAgYXJnYyA9PSAxKSB7Ci0JCQljb25zdCBjaGFyICpyZW1vdGUgPSB1bmlxdWVfdHJhY2tpbmdfbmFtZShhcmcpOwotCQkJaWYgKCFyZW1vdGUgfHwgZ2V0X3NoYTEocmVtb3RlLCByZXYpKQorCQkJY29uc3QgY2hhciAqcmVtb3RlID0gdW5pcXVlX3RyYWNraW5nX25hbWUoYXJnLCByZXYpOworCQkJaWYgKCFyZW1vdGUpCiAJCQkJcmV0dXJuIGFyZ2NvdW50OwogCQkJKm5ld19icmFuY2ggPSBhcmc7CiAJCQlhcmcgPSByZW1vdGU7CmRpZmYgLS1naXQgYS9idWlsdGluL2NsZWFuLmMgYi9idWlsdGluL2NsZWFuLmMKaW5kZXggMDRlMzk2Yi4uM2M4NWUxNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9jbGVhbi5jCisrKyBiL2J1aWx0aW4vY2xlYW4uYwpAQCAtMTMsMTEgKzEzLDE2IEBACiAjaW5jbHVkZSAicmVmcy5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAicXVvdGUuaCIKKyNpbmNsdWRlICJjb2x1bW4uaCIKKyNpbmNsdWRlICJjb2xvci5oIgogCiBzdGF0aWMgaW50IGZvcmNlID0gLTE7IC8qIHVuc2V0ICovCitzdGF0aWMgaW50IGludGVyYWN0aXZlOworc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCBkZWxfbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfRFVQOworc3RhdGljIHVuc2lnbmVkIGludCBjb2xvcHRzOwogCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgYnVpbHRpbl9jbGVhbl91c2FnZVtdID0gewotCU5fKCJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIiksCisJTl8oImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIpLAogCU5VTEwKIH07CiAKQEAgLTI3LDExICszMiwxMTIgQEAKIHN0YXRpYyBjb25zdCBjaGFyICptc2dfd291bGRfc2tpcF9naXRfZGlyID0gTl8oIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIik7CiBzdGF0aWMgY29uc3QgY2hhciAqbXNnX3dhcm5fcmVtb3ZlX2ZhaWxlZCA9IE5fKCJmYWlsZWQgdG8gcmVtb3ZlICVzIik7CiAKK3N0YXRpYyBpbnQgY2xlYW5fdXNlX2NvbG9yID0gLTE7CitzdGF0aWMgY2hhciBjbGVhbl9jb2xvcnNbXVtDT0xPUl9NQVhMRU5dID0geworCUdJVF9DT0xPUl9SRVNFVCwKKwlHSVRfQ09MT1JfTk9STUFMLAkvKiBQTEFJTiAqLworCUdJVF9DT0xPUl9CT0xEX0JMVUUsCS8qIFBST01QVCAqLworCUdJVF9DT0xPUl9CT0xELAkJLyogSEVBREVSICovCisJR0lUX0NPTE9SX0JPTERfUkVELAkvKiBIRUxQICovCisJR0lUX0NPTE9SX0JPTERfUkVELAkvKiBFUlJPUiAqLworfTsKK2VudW0gY29sb3JfY2xlYW4geworCUNMRUFOX0NPTE9SX1JFU0VUID0gMCwKKwlDTEVBTl9DT0xPUl9QTEFJTiA9IDEsCisJQ0xFQU5fQ09MT1JfUFJPTVBUID0gMiwKKwlDTEVBTl9DT0xPUl9IRUFERVIgPSAzLAorCUNMRUFOX0NPTE9SX0hFTFAgPSA0LAorCUNMRUFOX0NPTE9SX0VSUk9SID0gNSwKK307CisKKyNkZWZpbmUgTUVOVV9PUFRTX1NJTkdMRVRPTgkJMDEKKyNkZWZpbmUgTUVOVV9PUFRTX0lNTUVESUFURQkJMDIKKyNkZWZpbmUgTUVOVV9PUFRTX0xJU1RfT05MWQkJMDQKKworc3RydWN0IG1lbnVfb3B0cyB7CisJY29uc3QgY2hhciAqaGVhZGVyOworCWNvbnN0IGNoYXIgKnByb21wdDsKKwlpbnQgZmxhZ3M7Cit9OworCisjZGVmaW5lIE1FTlVfUkVUVVJOX05PX0xPT1AJCTEwCisKK3N0cnVjdCBtZW51X2l0ZW0geworCWNoYXIgaG90a2V5OworCWNvbnN0IGNoYXIgKnRpdGxlOworCWludCBzZWxlY3RlZDsKKwlpbnQgKCpmbikoKTsKK307CisKK2VudW0gbWVudV9zdHVmZl90eXBlIHsKKwlNRU5VX1NUVUZGX1RZUEVfU1RSSU5HX0xJU1QgPSAxLAorCU1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU0KK307CisKK3N0cnVjdCBtZW51X3N0dWZmIHsKKwllbnVtIG1lbnVfc3R1ZmZfdHlwZSB0eXBlOworCWludCBucjsKKwl2b2lkICpzdHVmZjsKK307CisKK3N0YXRpYyBpbnQgcGFyc2VfY2xlYW5fY29sb3Jfc2xvdChjb25zdCBjaGFyICp2YXIpCit7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgInJlc2V0IikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9SRVNFVDsKKwlpZiAoIXN0cmNhc2VjbXAodmFyLCAicGxhaW4iKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX1BMQUlOOworCWlmICghc3RyY2FzZWNtcCh2YXIsICJwcm9tcHQiKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX1BST01QVDsKKwlpZiAoIXN0cmNhc2VjbXAodmFyLCAiaGVhZGVyIikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9IRUFERVI7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgImhlbHAiKSkKKwkJcmV0dXJuIENMRUFOX0NPTE9SX0hFTFA7CisJaWYgKCFzdHJjYXNlY21wKHZhciwgImVycm9yIikpCisJCXJldHVybiBDTEVBTl9DT0xPUl9FUlJPUjsKKwlyZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBpbnQgZ2l0X2NsZWFuX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKIHsKLQlpZiAoIXN0cmNtcCh2YXIsICJjbGVhbi5yZXF1aXJlZm9yY2UiKSkKKwlpZiAoIXByZWZpeGNtcCh2YXIsICJjb2x1bW4uIikpCisJCXJldHVybiBnaXRfY29sdW1uX2NvbmZpZyh2YXIsIHZhbHVlLCAiY2xlYW4iLCAmY29sb3B0cyk7CisKKwkvKiBob25vcnMgdGhlIGNvbG9yLmludGVyYWN0aXZlKiBjb25maWcgdmFyaWFibGVzIHdoaWNoIGFsc28KKwkgICBhcHBsaWVkIGluIGdpdC1hZGQtLWludGVyYWN0aXZlIGFuZCBnaXQtc3Rhc2ggKi8KKwlpZiAoIXN0cmNtcCh2YXIsICJjb2xvci5pbnRlcmFjdGl2ZSIpKSB7CisJCWNsZWFuX3VzZV9jb2xvciA9IGdpdF9jb25maWdfY29sb3Jib29sKHZhciwgdmFsdWUpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKCFwcmVmaXhjbXAodmFyLCAiY29sb3IuaW50ZXJhY3RpdmUuIikpIHsKKwkJaW50IHNsb3QgPSBwYXJzZV9jbGVhbl9jb2xvcl9zbG90KHZhciArCisJCQkJCQkgIHN0cmxlbigiY29sb3IuaW50ZXJhY3RpdmUuIikpOworCQlpZiAoc2xvdCA8IDApCisJCQlyZXR1cm4gMDsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCQljb2xvcl9wYXJzZSh2YWx1ZSwgdmFyLCBjbGVhbl9jb2xvcnNbc2xvdF0pOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXN0cmNtcCh2YXIsICJjbGVhbi5yZXF1aXJlZm9yY2UiKSkgewogCQlmb3JjZSA9ICFnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7Ci0JcmV0dXJuIGdpdF9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7CisJCXJldHVybiAwOworCX0KKworCS8qIGluc3BlY3QgdGhlIGNvbG9yLnVpIGNvbmZpZyB2YXJpYWJsZSBhbmQgb3RoZXJzICovCisJcmV0dXJuIGdpdF9jb2xvcl9kZWZhdWx0X2NvbmZpZyh2YXIsIHZhbHVlLCBjYik7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpjbGVhbl9nZXRfY29sb3IoZW51bSBjb2xvcl9jbGVhbiBpeCkKK3sKKwlpZiAod2FudF9jb2xvcihjbGVhbl91c2VfY29sb3IpKQorCQlyZXR1cm4gY2xlYW5fY29sb3JzW2l4XTsKKwlyZXR1cm4gIiI7Cit9CisKK3N0YXRpYyB2b2lkIGNsZWFuX3ByaW50X2NvbG9yKGVudW0gY29sb3JfY2xlYW4gaXgpCit7CisJcHJpbnRmKCIlcyIsIGNsZWFuX2dldF9jb2xvcihpeCkpOwogfQogCiBzdGF0aWMgaW50IGV4Y2x1ZGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKQEAgLTU2LDcgKzE2Miw3IEBACiAJaWYgKChmb3JjZV9mbGFnICYgUkVNT1ZFX0RJUl9LRUVQX05FU1RFRF9HSVQpICYmCiAJCQkhcmVzb2x2ZV9naXRsaW5rX3JlZihwYXRoLT5idWYsICJIRUFEIiwgc3VibW9kdWxlX2hlYWQpKSB7CiAJCWlmICghcXVpZXQpIHsKLQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJcHJpbnRmKGRyeV9ydW4gPyAgXyhtc2dfd291bGRfc2tpcF9naXRfZGlyKSA6IF8obXNnX3NraXBfZ2l0X2RpciksCiAJCQkJCXF1b3RlZC5idWYpOwogCQl9CkBAIC03MCw3ICsxNzYsNyBAQAogCQkvKiBhbiBlbXB0eSBkaXIgY291bGQgYmUgcmVtb3ZlZCBldmVuIGlmIGl0IGlzIHVucmVhZGJsZSAqLwogCQlyZXMgPSBkcnlfcnVuID8gMCA6IHJtZGlyKHBhdGgtPmJ1Zik7CiAJCWlmIChyZXMpIHsKLQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJd2FybmluZyhfKG1zZ193YXJuX3JlbW92ZV9mYWlsZWQpLCBxdW90ZWQuYnVmKTsKIAkJCSpkaXJfZ29uZSA9IDA7CiAJCX0KQEAgLTk0LDcgKzIwMCw3IEBACiAJCQlpZiAocmVtb3ZlX2RpcnMocGF0aCwgcHJlZml4LCBmb3JjZV9mbGFnLCBkcnlfcnVuLCBxdWlldCwgJmdvbmUpKQogCQkJCXJldCA9IDE7CiAJCQlpZiAoZ29uZSkgewotCQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBzdHJsZW4ocGF0aC0+YnVmKSwgJnF1b3RlZCwgcHJlZml4KTsKKwkJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1ZiwgcHJlZml4LCAmcXVvdGVkKTsKIAkJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbHMsIHF1b3RlZC5idWYpOwogCQkJfSBlbHNlCiAJCQkJKmRpcl9nb25lID0gMDsKQEAgLTEwMiwxMCArMjA4LDEwIEBACiAJCX0gZWxzZSB7CiAJCQlyZXMgPSBkcnlfcnVuID8gMCA6IHVubGluayhwYXRoLT5idWYpOwogCQkJaWYgKCFyZXMpIHsKLQkJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1Ziwgc3RybGVuKHBhdGgtPmJ1ZiksICZxdW90ZWQsIHByZWZpeCk7CisJCQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShwYXRoLT5idWYsIHByZWZpeCwgJnF1b3RlZCk7CiAJCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZkZWxzLCBxdW90ZWQuYnVmKTsKIAkJCX0gZWxzZSB7Ci0JCQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShwYXRoLT5idWYsIHN0cmxlbihwYXRoLT5idWYpLCAmcXVvdGVkLCBwcmVmaXgpOworCQkJCXF1b3RlX3BhdGhfcmVsYXRpdmUocGF0aC0+YnVmLCBwcmVmaXgsICZxdW90ZWQpOwogCQkJCXdhcm5pbmcoXyhtc2dfd2Fybl9yZW1vdmVfZmFpbGVkKSwgcXVvdGVkLmJ1Zik7CiAJCQkJKmRpcl9nb25lID0gMDsKIAkJCQlyZXQgPSAxOwpAQCAtMTI3LDcgKzIzMyw3IEBACiAJCWlmICghcmVzKQogCQkJKmRpcl9nb25lID0gMTsKIAkJZWxzZSB7Ci0JCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1Ziwgc3RybGVuKHBhdGgtPmJ1ZiksICZxdW90ZWQsIHByZWZpeCk7CisJCQlxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGgtPmJ1ZiwgcHJlZml4LCAmcXVvdGVkKTsKIAkJCXdhcm5pbmcoXyhtc2dfd2Fybl9yZW1vdmVfZmFpbGVkKSwgcXVvdGVkLmJ1Zik7CiAJCQkqZGlyX2dvbmUgPSAwOwogCQkJcmV0ID0gMTsKQEAgLTE0MiwyNCArMjQ4LDYzMyBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyB2b2lkIHByZXR0eV9wcmludF9kZWxzKHZvaWQpCit7CisJc3RydWN0IHN0cmluZ19saXN0IGxpc3QgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOworCWNvbnN0IGNoYXIgKnFuYW1lOworCXN0cnVjdCBjb2x1bW5fb3B0aW9ucyBjb3B0czsKKworCWZvcl9lYWNoX3N0cmluZ19saXN0X2l0ZW0oaXRlbSwgJmRlbF9saXN0KSB7CisJCXFuYW1lID0gcXVvdGVfcGF0aF9yZWxhdGl2ZShpdGVtLT5zdHJpbmcsIE5VTEwsICZidWYpOworCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmxpc3QsIHFuYW1lKTsKKwl9CisKKwkvKgorCSAqIGFsd2F5cyBlbmFibGUgY29sdW1uIGRpc3BsYXksIHdlIG9ubHkgY29uc3VsdCBjb2x1bW4uKgorCSAqIGFib3V0IGxheW91dCBzdHJhdGVneSBhbmQgc3R1ZmYKKwkgKi8KKwljb2xvcHRzID0gKGNvbG9wdHMgJiB+Q09MX0VOQUJMRV9NQVNLKSB8IENPTF9FTkFCTEVEOworCW1lbXNldCgmY29wdHMsIDAsIHNpemVvZihjb3B0cykpOworCWNvcHRzLmluZGVudCA9ICIgICI7CisJY29wdHMucGFkZGluZyA9IDI7CisJcHJpbnRfY29sdW1ucygmbGlzdCwgY29sb3B0cywgJmNvcHRzKTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmbGlzdCwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIHByZXR0eV9wcmludF9tZW51cyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKm1lbnVfbGlzdCkKK3sKKwl1bnNpZ25lZCBpbnQgbG9jYWxfY29sb3B0cyA9IDA7CisJc3RydWN0IGNvbHVtbl9vcHRpb25zIGNvcHRzOworCisJbG9jYWxfY29sb3B0cyA9IENPTF9FTkFCTEVEIHwgQ09MX1JPVzsKKwltZW1zZXQoJmNvcHRzLCAwLCBzaXplb2YoY29wdHMpKTsKKwljb3B0cy5pbmRlbnQgPSAiICAiOworCWNvcHRzLnBhZGRpbmcgPSAyOworCXByaW50X2NvbHVtbnMobWVudV9saXN0LCBsb2NhbF9jb2xvcHRzLCAmY29wdHMpOworfQorCitzdGF0aWMgdm9pZCBwcm9tcHRfaGVscF9jbWQoaW50IHNpbmdsZXRvbikKK3sKKwljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9IRUxQKTsKKwlwcmludGZfbG4oc2luZ2xldG9uID8KKwkJICBfKCJQcm9tcHQgaGVscDpcbiIKKwkJICAgICIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgorCQkgICAgImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisJCSAgICAiICAgICAgICAgICAtIChlbXB0eSkgc2VsZWN0IG5vdGhpbmciKSA6CisJCSAgXygiUHJvbXB0IGhlbHA6XG4iCisJCSAgICAiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisJCSAgICAiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisJCSAgICAiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKwkJICAgICJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorCQkgICAgIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKwkJICAgICIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorCQkgICAgIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciKSk7CisJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpOworfQorCisvKgorICogZGlzcGxheSBtZW51IHN0dWZmIHdpdGggbnVtYmVyIHByZWZpeCBhbmQgaG90a2V5IGhpZ2hsaWdodAorICovCitzdGF0aWMgdm9pZCBwcmludF9oaWdobGlnaHRfbWVudV9zdHVmZihzdHJ1Y3QgbWVudV9zdHVmZiAqc3R1ZmYsIGludCAqKmNob3NlbikKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgbWVudV9saXN0ID0gU1RSSU5HX0xJU1RfSU5JVF9EVVA7CisJc3RydWN0IHN0cmJ1ZiBtZW51ID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3QgbWVudV9pdGVtICptZW51X2l0ZW07CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKnN0cmluZ19saXN0X2l0ZW07CisJaW50IGk7CisKKwlzd2l0Y2ggKHN0dWZmLT50eXBlKSB7CisJZGVmYXVsdDoKKwkJZGllKCJCYWQgdHlwZSBvZiBtZW51X3N0YWZmIHdoZW4gcHJpbnQgbWVudSIpOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX01FTlVfSVRFTToKKwkJbWVudV9pdGVtID0gKHN0cnVjdCBtZW51X2l0ZW0gKilzdHVmZi0+c3R1ZmY7CisJCWZvciAoaSA9IDA7IGkgPCBzdHVmZi0+bnI7IGkrKywgbWVudV9pdGVtKyspIHsKKwkJCWNvbnN0IGNoYXIgKnA7CisJCQlpbnQgaGlnaGxpZ2h0ZWQgPSAwOworCisJCQlwID0gbWVudV9pdGVtLT50aXRsZTsKKwkJCWlmICgoKmNob3NlbilbaV0gPCAwKQorCQkJCSgqY2hvc2VuKVtpXSA9IG1lbnVfaXRlbS0+c2VsZWN0ZWQgPyAxIDogMDsKKwkJCXN0cmJ1Zl9hZGRmKCZtZW51LCAiJXMlMmQ6ICIsICgqY2hvc2VuKVtpXSA/ICIqIiA6ICIgIiwgaSsxKTsKKwkJCWZvciAoOyAqcDsgcCsrKSB7CisJCQkJaWYgKCFoaWdobGlnaHRlZCAmJiAqcCA9PSBtZW51X2l0ZW0tPmhvdGtleSkgeworCQkJCQlzdHJidWZfYWRkc3RyKCZtZW51LCBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUFJPTVBUKSk7CisJCQkJCXN0cmJ1Zl9hZGRjaCgmbWVudSwgKnApOworCQkJCQlzdHJidWZfYWRkc3RyKCZtZW51LCBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJCQkJaGlnaGxpZ2h0ZWQgPSAxOworCQkJCX0gZWxzZSB7CisJCQkJCXN0cmJ1Zl9hZGRjaCgmbWVudSwgKnApOworCQkJCX0KKwkJCX0KKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmbWVudV9saXN0LCBtZW51LmJ1Zik7CisJCQlzdHJidWZfcmVzZXQoJm1lbnUpOworCQl9CisJCWJyZWFrOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX1NUUklOR19MSVNUOgorCQlpID0gMDsKKwkJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShzdHJpbmdfbGlzdF9pdGVtLCAoc3RydWN0IHN0cmluZ19saXN0ICopc3R1ZmYtPnN0dWZmKSB7CisJCQlpZiAoKCpjaG9zZW4pW2ldIDwgMCkKKwkJCQkoKmNob3NlbilbaV0gPSAwOworCQkJc3RyYnVmX2FkZGYoJm1lbnUsICIlcyUyZDogJXMiLAorCQkJCSAgICAoKmNob3NlbilbaV0gPyAiKiIgOiAiICIsIGkrMSwgc3RyaW5nX2xpc3RfaXRlbS0+c3RyaW5nKTsKKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmbWVudV9saXN0LCBtZW51LmJ1Zik7CisJCQlzdHJidWZfcmVzZXQoJm1lbnUpOworCQkJaSsrOworCQl9CisJCWJyZWFrOworCX0KKworCXByZXR0eV9wcmludF9tZW51cygmbWVudV9saXN0KTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZtZW51KTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmbWVudV9saXN0LCAwKTsKK30KKworc3RhdGljIGludCBmaW5kX3VuaXF1ZShjb25zdCBjaGFyICpjaG9pY2UsIHN0cnVjdCBtZW51X3N0dWZmICptZW51X3N0dWZmKQoreworCXN0cnVjdCBtZW51X2l0ZW0gKm1lbnVfaXRlbTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqc3RyaW5nX2xpc3RfaXRlbTsKKwlpbnQgaSwgbGVuLCBmb3VuZCA9IDA7CisKKwlsZW4gPSBzdHJsZW4oY2hvaWNlKTsKKwlzd2l0Y2ggKG1lbnVfc3R1ZmYtPnR5cGUpIHsKKwlkZWZhdWx0OgorCQlkaWUoIkJhZCB0eXBlIG9mIG1lbnVfc3R1ZmYgd2hlbiBwYXJzZSBjaG9pY2UiKTsKKwljYXNlIE1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU06CisKKwkJbWVudV9pdGVtID0gKHN0cnVjdCBtZW51X2l0ZW0gKiltZW51X3N0dWZmLT5zdHVmZjsKKwkJZm9yIChpID0gMDsgaSA8IG1lbnVfc3R1ZmYtPm5yOyBpKyssIG1lbnVfaXRlbSsrKSB7CisJCQlpZiAobGVuID09IDEgJiYgKmNob2ljZSA9PSBtZW51X2l0ZW0tPmhvdGtleSkgeworCQkJCWZvdW5kID0gaSArIDE7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoIXN0cm5jYXNlY21wKGNob2ljZSwgbWVudV9pdGVtLT50aXRsZSwgbGVuKSkgeworCQkJCWlmIChmb3VuZCkgeworCQkJCQlpZiAobGVuID09IDEpIHsKKwkJCQkJCS8qIGNvbnRpbnVlIGZvciBob3RrZXkgbWF0Y2hpbmcgKi8KKwkJCQkJCWZvdW5kID0gLTE7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlmb3VuZCA9IDA7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0gZWxzZSB7CisJCQkJCWZvdW5kID0gaSArIDE7CisJCQkJfQorCQkJfQorCQl9CisJCWJyZWFrOworCWNhc2UgTUVOVV9TVFVGRl9UWVBFX1NUUklOR19MSVNUOgorCQlzdHJpbmdfbGlzdF9pdGVtID0gKChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiltZW51X3N0dWZmLT5zdHVmZiktPml0ZW1zOworCQlmb3IgKGkgPSAwOyBpIDwgbWVudV9zdHVmZi0+bnI7IGkrKywgc3RyaW5nX2xpc3RfaXRlbSsrKSB7CisJCQlpZiAoIXN0cm5jYXNlY21wKGNob2ljZSwgc3RyaW5nX2xpc3RfaXRlbS0+c3RyaW5nLCBsZW4pKSB7CisJCQkJaWYgKGZvdW5kKSB7CisJCQkJCWZvdW5kID0gMDsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWZvdW5kID0gaSArIDE7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJfQorCXJldHVybiBmb3VuZDsKK30KKworCisvKgorICogUGFyc2UgdXNlciBpbnB1dCwgYW5kIHJldHVybiBjaG9pY2UocykgZm9yIG1lbnUgKG1lbnVfc3R1ZmYpLgorICoKKyAqIElucHV0CisgKiAgICAgKGZvciBzaW5nbGUgY2hvaWNlKQorICogICAgICAgICAxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbQorICogICAgICAgICBmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gbWVudSB0aXRsZQorICogICAgICAgICAgICAgICAgICAgIC0gKGVtcHR5KSBzZWxlY3Qgbm90aGluZworICoKKyAqICAgICAoZm9yIG11bHRpcGxlIGNob2ljZSkKKyAqICAgICAgICAgMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtCisgKiAgICAgICAgIDMtNSAgICAgICAgLSBzZWxlY3QgYSByYW5nZSBvZiBpdGVtcworICogICAgICAgICAyLTMsNi05ICAgIC0gc2VsZWN0IG11bHRpcGxlIHJhbmdlcworICogICAgICAgICBmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gbWVudSB0aXRsZQorICogICAgICAgICAtLi4uICAgICAgIC0gdW5zZWxlY3Qgc3BlY2lmaWVkIGl0ZW1zCisgKiAgICAgICAgICogICAgICAgICAgLSBjaG9vc2UgYWxsIGl0ZW1zCisgKiAgICAgICAgICAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmcKKyAqCisgKiBUaGUgcGFyc2UgcmVzdWx0IHdpbGwgYmUgc2F2ZWQgaW4gYXJyYXkgKipjaG9zZW4sIGFuZAorICogcmV0dXJuIG51bWJlciBvZiB0b3RhbCBzZWxlY3Rpb25zLgorICovCitzdGF0aWMgaW50IHBhcnNlX2Nob2ljZShzdHJ1Y3QgbWVudV9zdHVmZiAqbWVudV9zdHVmZiwKKwkJCWludCBpc19zaW5nbGUsCisJCQlzdHJ1Y3Qgc3RyYnVmIGlucHV0LAorCQkJaW50ICoqY2hvc2VuKQoreworCXN0cnVjdCBzdHJidWYgKipjaG9pY2VfbGlzdCwgKipwdHI7CisJaW50IG5yID0gMDsKKwlpbnQgaTsKKworCWlmIChpc19zaW5nbGUpIHsKKwkJY2hvaWNlX2xpc3QgPSBzdHJidWZfc3BsaXRfbWF4KCZpbnB1dCwgJ1xuJywgMCk7CisJfSBlbHNlIHsKKwkJY2hhciAqcCA9IGlucHV0LmJ1ZjsKKwkJZG8geworCQkJaWYgKCpwID09ICcsJykKKwkJCQkqcCA9ICcgJzsKKwkJfSB3aGlsZSAoKnArKyk7CisJCWNob2ljZV9saXN0ID0gc3RyYnVmX3NwbGl0X21heCgmaW5wdXQsICcgJywgMCk7CisJfQorCisJZm9yIChwdHIgPSBjaG9pY2VfbGlzdDsgKnB0cjsgcHRyKyspIHsKKwkJY2hhciAqcDsKKwkJaW50IGNob29zZSA9IDE7CisJCWludCBib3R0b20gPSAwLCB0b3AgPSAwOworCQlpbnQgaXNfcmFuZ2UsIGlzX251bWJlcjsKKworCQlzdHJidWZfdHJpbSgqcHRyKTsKKwkJaWYgKCEoKnB0ciktPmxlbikKKwkJCWNvbnRpbnVlOworCisJCS8qIElucHV0IHRoYXQgYmVnaW5zIHdpdGggJy0nOyB1bmNob29zZSAqLworCQlpZiAoKigqcHRyKS0+YnVmID09ICctJykgeworCQkJY2hvb3NlID0gMDsKKwkJCXN0cmJ1Zl9yZW1vdmUoKCpwdHIpLCAwLCAxKTsKKwkJfQorCisJCWlzX3JhbmdlID0gMDsKKwkJaXNfbnVtYmVyID0gMTsKKwkJZm9yIChwID0gKCpwdHIpLT5idWY7ICpwOyBwKyspIHsKKwkJCWlmICgnLScgPT0gKnApIHsKKwkJCQlpZiAoIWlzX3JhbmdlKSB7CisJCQkJCWlzX3JhbmdlID0gMTsKKwkJCQkJaXNfbnVtYmVyID0gMDsKKwkJCQl9IGVsc2UgeworCQkJCQlpc19udW1iZXIgPSAwOworCQkJCQlpc19yYW5nZSA9IDA7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0gZWxzZSBpZiAoIWlzZGlnaXQoKnApKSB7CisJCQkJaXNfbnVtYmVyID0gMDsKKwkJCQlpc19yYW5nZSA9IDA7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoaXNfbnVtYmVyKSB7CisJCQlib3R0b20gPSBhdG9pKCgqcHRyKS0+YnVmKTsKKwkJCXRvcCA9IGJvdHRvbTsKKwkJfSBlbHNlIGlmIChpc19yYW5nZSkgeworCQkJYm90dG9tID0gYXRvaSgoKnB0ciktPmJ1Zik7CisJCQkvKiBhIHJhbmdlIGNhbiBiZSBzcGVjaWZpZWQgbGlrZSA1LTcgb3IgNS0gKi8KKwkJCWlmICghKihzdHJjaHIoKCpwdHIpLT5idWYsICctJykgKyAxKSkKKwkJCQl0b3AgPSBtZW51X3N0dWZmLT5ucjsKKwkJCWVsc2UKKwkJCQl0b3AgPSBhdG9pKHN0cmNocigoKnB0ciktPmJ1ZiwgJy0nKSArIDEpOworCQl9IGVsc2UgaWYgKCFzdHJjbXAoKCpwdHIpLT5idWYsICIqIikpIHsKKwkJCWJvdHRvbSA9IDE7CisJCQl0b3AgPSBtZW51X3N0dWZmLT5ucjsKKwkJfSBlbHNlIHsKKwkJCWJvdHRvbSA9IGZpbmRfdW5pcXVlKCgqcHRyKS0+YnVmLCBtZW51X3N0dWZmKTsKKwkJCXRvcCA9IGJvdHRvbTsKKwkJfQorCisJCWlmICh0b3AgPD0gMCB8fCBib3R0b20gPD0gMCB8fCB0b3AgPiBtZW51X3N0dWZmLT5uciB8fCBib3R0b20gPiB0b3AgfHwKKwkJICAgIChpc19zaW5nbGUgJiYgYm90dG9tICE9IHRvcCkpIHsKKwkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCXByaW50Zl9sbihfKCJIdWggKCVzKT8iKSwgKCpwdHIpLT5idWYpOworCQkJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpOworCQkJY29udGludWU7CisJCX0KKworCQlmb3IgKGkgPSBib3R0b207IGkgPD0gdG9wOyBpKyspCisJCQkoKmNob3NlbilbaS0xXSA9IGNob29zZTsKKwl9CisKKwlzdHJidWZfbGlzdF9mcmVlKGNob2ljZV9saXN0KTsKKworCWZvciAoaSA9IDA7IGkgPCBtZW51X3N0dWZmLT5ucjsgaSsrKQorCQluciArPSAoKmNob3NlbilbaV07CisJcmV0dXJuIG5yOworfQorCisvKgorICogSW1wbGVtZW50IGEgZ2l0LWFkZC1pbnRlcmFjdGl2ZSBjb21wYXRpYmxlIFVJLCB3aGljaCBpcyBib3Jyb3dlZAorICogZnJvbSBnaXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsLgorICoKKyAqIFJldHVybiB2YWx1ZToKKyAqCisgKiAgIC0gUmV0dXJuIGFuIGFycmF5IG9mIGludGVnZXJzCisgKiAgIC0gLCBhbmQgaXQgaXMgdXAgdG8geW91IHRvIGZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkuCisgKiAgIC0gVGhlIGFycmF5IGVuZHMgd2l0aCBFT0YuCisgKiAgIC0gSWYgdXNlciBwcmVzc2VkIENUUkwtRCAoaS5lLiBFT0YpLCBubyBzZWxlY3Rpb24gcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBpbnQgKmxpc3RfYW5kX2Nob29zZShzdHJ1Y3QgbWVudV9vcHRzICpvcHRzLCBzdHJ1Y3QgbWVudV9zdHVmZiAqc3R1ZmYpCit7CisJc3RydWN0IHN0cmJ1ZiBjaG9pY2UgPSBTVFJCVUZfSU5JVDsKKwlpbnQgKmNob3NlbiwgKnJlc3VsdDsKKwlpbnQgbnIgPSAwOworCWludCBlb2YgPSAwOworCWludCBpOworCisJY2hvc2VuID0geG1hbGxvYyhzaXplb2YoaW50KSAqIHN0dWZmLT5ucik7CisJLyogc2V0IGNob3NlbiBhcyB1bmluaXRpYWxpemVkICovCisJZm9yIChpID0gMDsgaSA8IHN0dWZmLT5ucjsgaSsrKQorCQljaG9zZW5baV0gPSAtMTsKKworCWZvciAoOzspIHsKKwkJaWYgKG9wdHMtPmhlYWRlcikgeworCQkJcHJpbnRmX2xuKCIlcyVzJXMiLAorCQkJCSAgY2xlYW5fZ2V0X2NvbG9yKENMRUFOX0NPTE9SX0hFQURFUiksCisJCQkJICBfKG9wdHMtPmhlYWRlciksCisJCQkJICBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJfQorCisJCS8qIGNob3NlbiB3aWxsIGJlIGluaXRpYWxpemVkIGJ5IHByaW50X2hpZ2hsaWdodF9tZW51X3N0dWZmICovCisJCXByaW50X2hpZ2hsaWdodF9tZW51X3N0dWZmKHN0dWZmLCAmY2hvc2VuKTsKKworCQlpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfTElTVF9PTkxZKQorCQkJYnJlYWs7CisKKwkJaWYgKG9wdHMtPnByb21wdCkgeworCQkJcHJpbnRmKCIlcyVzJXMlcyIsCisJCQkgICAgICAgY2xlYW5fZ2V0X2NvbG9yKENMRUFOX0NPTE9SX1BST01QVCksCisJCQkgICAgICAgXyhvcHRzLT5wcm9tcHQpLAorCQkJICAgICAgIG9wdHMtPmZsYWdzICYgTUVOVV9PUFRTX1NJTkdMRVRPTiA/ICI+ICIgOiAiPj4gIiwKKwkJCSAgICAgICBjbGVhbl9nZXRfY29sb3IoQ0xFQU5fQ09MT1JfUkVTRVQpKTsKKwkJfQorCisJCWlmIChzdHJidWZfZ2V0bGluZSgmY2hvaWNlLCBzdGRpbiwgJ1xuJykgIT0gRU9GKSB7CisJCQlzdHJidWZfdHJpbSgmY2hvaWNlKTsKKwkJfSBlbHNlIHsKKwkJCWVvZiA9IDE7CisJCQlicmVhazsKKwkJfQorCisJCS8qIGhlbHAgZm9yIHByb21wdCAqLworCQlpZiAoIXN0cmNtcChjaG9pY2UuYnVmLCAiPyIpKSB7CisJCQlwcm9tcHRfaGVscF9jbWQob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfU0lOR0xFVE9OKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJLyogZm9yIGEgbXVsdGlwbGUtY2hvaWNlIG1lbnUsIHByZXNzIEVOVEVSIChlbXB0eSkgd2lsbCByZXR1cm4gYmFjayAqLworCQlpZiAoIShvcHRzLT5mbGFncyAmIE1FTlVfT1BUU19TSU5HTEVUT04pICYmICFjaG9pY2UubGVuKQorCQkJYnJlYWs7CisKKwkJbnIgPSBwYXJzZV9jaG9pY2Uoc3R1ZmYsCisJCQkJICBvcHRzLT5mbGFncyAmIE1FTlVfT1BUU19TSU5HTEVUT04sCisJCQkJICBjaG9pY2UsCisJCQkJICAmY2hvc2VuKTsKKworCQlpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfU0lOR0xFVE9OKSB7CisJCQlpZiAobnIpCisJCQkJYnJlYWs7CisJCX0gZWxzZSBpZiAob3B0cy0+ZmxhZ3MgJiBNRU5VX09QVFNfSU1NRURJQVRFKSB7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChlb2YpIHsKKwkJcmVzdWx0ID0geG1hbGxvYyhzaXplb2YoaW50KSk7CisJCSpyZXN1bHQgPSBFT0Y7CisJfSBlbHNlIHsKKwkJaW50IGogPSAwOworCisJCS8qCisJCSAqIHJlY2FsY3VsYXRlIG5yLCBpZiByZXR1cm4gYmFjayBmcm9tIG1lbnUgZGlyZWN0bHkgd2l0aAorCQkgKiBkZWZhdWx0IHNlbGVjdGlvbnMuCisJCSAqLworCQlpZiAoIW5yKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgc3R1ZmYtPm5yOyBpKyspCisJCQkJbnIgKz0gY2hvc2VuW2ldOworCQl9CisKKwkJcmVzdWx0ID0geG1hbGxvYyhzaXplb2YoaW50KSAqIChuciArIDEpKTsKKwkJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKGludCkgKiAobnIgKyAxKSk7CisJCWZvciAoaSA9IDA7IGkgPCBzdHVmZi0+bnIgJiYgaiA8IG5yOyBpKyspIHsKKwkJCWlmIChjaG9zZW5baV0pCisJCQkJcmVzdWx0W2orK10gPSBpOworCQl9CisJCXJlc3VsdFtqXSA9IEVPRjsKKwl9CisKKwlmcmVlKGNob3Nlbik7CisJc3RyYnVmX3JlbGVhc2UoJmNob2ljZSk7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBjbGVhbl9jbWQodm9pZCkKK3sKKwlyZXR1cm4gTUVOVV9SRVRVUk5fTk9fTE9PUDsKK30KKworc3RhdGljIGludCBmaWx0ZXJfYnlfcGF0dGVybnNfY21kKHZvaWQpCit7CisJc3RydWN0IGRpcl9zdHJ1Y3QgZGlyOworCXN0cnVjdCBzdHJidWYgY29uZmlybSA9IFNUUkJVRl9JTklUOworCXN0cnVjdCBzdHJidWYgKippZ25vcmVfbGlzdDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwlzdHJ1Y3QgZXhjbHVkZV9saXN0ICplbDsKKwlpbnQgY2hhbmdlZCA9IC0xLCBpOworCisJZm9yICg7OykgeworCQlpZiAoIWRlbF9saXN0Lm5yKQorCQkJYnJlYWs7CisKKwkJaWYgKGNoYW5nZWQpCisJCQlwcmV0dHlfcHJpbnRfZGVscygpOworCisJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1BST01QVCk7CisJCXByaW50ZihfKCJJbnB1dCBpZ25vcmUgcGF0dGVybnM+PiAiKSk7CisJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1JFU0VUKTsKKwkJaWYgKHN0cmJ1Zl9nZXRsaW5lKCZjb25maXJtLCBzdGRpbiwgJ1xuJykgIT0gRU9GKQorCQkJc3RyYnVmX3RyaW0oJmNvbmZpcm0pOworCQllbHNlCisJCQlwdXRjaGFyKCdcbicpOworCisJCS8qIHF1aXQgZmlsdGVyX2J5X3BhdHRlcm4gbW9kZSBpZiBwcmVzcyBFTlRFUiBvciBDdHJsLUQgKi8KKwkJaWYgKCFjb25maXJtLmxlbikKKwkJCWJyZWFrOworCisJCW1lbXNldCgmZGlyLCAwLCBzaXplb2YoZGlyKSk7CisJCWVsID0gYWRkX2V4Y2x1ZGVfbGlzdCgmZGlyLCBFWENfQ01ETCwgIm1hbnVhbCBleGNsdWRlIik7CisJCWlnbm9yZV9saXN0ID0gc3RyYnVmX3NwbGl0X21heCgmY29uZmlybSwgJyAnLCAwKTsKKworCQlmb3IgKGkgPSAwOyBpZ25vcmVfbGlzdFtpXTsgaSsrKSB7CisJCQlzdHJidWZfdHJpbShpZ25vcmVfbGlzdFtpXSk7CisJCQlpZiAoIWlnbm9yZV9saXN0W2ldLT5sZW4pCisJCQkJY29udGludWU7CisKKwkJCWFkZF9leGNsdWRlKGlnbm9yZV9saXN0W2ldLT5idWYsICIiLCAwLCBlbCwgLShpKzEpKTsKKwkJfQorCisJCWNoYW5nZWQgPSAwOworCQlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZkZWxfbGlzdCkgeworCQkJaW50IGR0eXBlID0gRFRfVU5LTk9XTjsKKworCQkJaWYgKGlzX2V4Y2x1ZGVkKCZkaXIsIGl0ZW0tPnN0cmluZywgJmR0eXBlKSkgeworCQkJCSppdGVtLT5zdHJpbmcgPSAnXDAnOworCQkJCWNoYW5nZWQrKzsKKwkJCX0KKwkJfQorCisJCWlmIChjaGFuZ2VkKSB7CisJCQlzdHJpbmdfbGlzdF9yZW1vdmVfZW1wdHlfaXRlbXMoJmRlbF9saXN0LCAwKTsKKwkJfSBlbHNlIHsKKwkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCXByaW50Zl9sbihfKCJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIpLCBjb25maXJtLmJ1Zik7CisJCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisJCX0KKworCQlzdHJidWZfbGlzdF9mcmVlKGlnbm9yZV9saXN0KTsKKwkJY2xlYXJfZGlyZWN0b3J5KCZkaXIpOworCX0KKworCXN0cmJ1Zl9yZWxlYXNlKCZjb25maXJtKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZWxlY3RfYnlfbnVtYmVyc19jbWQodm9pZCkKK3sKKwlzdHJ1Y3QgbWVudV9vcHRzIG1lbnVfb3B0czsKKwlzdHJ1Y3QgbWVudV9zdHVmZiBtZW51X3N0dWZmOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtczsKKwlpbnQgKmNob3NlbjsKKwlpbnQgaSwgajsKKworCW1lbnVfb3B0cy5oZWFkZXIgPSBOVUxMOworCW1lbnVfb3B0cy5wcm9tcHQgPSBOXygiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIpOworCW1lbnVfb3B0cy5mbGFncyA9IDA7CisKKwltZW51X3N0dWZmLnR5cGUgPSBNRU5VX1NUVUZGX1RZUEVfU1RSSU5HX0xJU1Q7CisJbWVudV9zdHVmZi5zdHVmZiA9ICZkZWxfbGlzdDsKKwltZW51X3N0dWZmLm5yID0gZGVsX2xpc3QubnI7CisKKwljaG9zZW4gPSBsaXN0X2FuZF9jaG9vc2UoJm1lbnVfb3B0cywgJm1lbnVfc3R1ZmYpOworCWl0ZW1zID0gZGVsX2xpc3QuaXRlbXM7CisJZm9yIChpID0gMCwgaiA9IDA7IGkgPCBkZWxfbGlzdC5ucjsgaSsrKSB7CisJCWlmIChpIDwgY2hvc2VuW2pdKSB7CisJCQkqKGl0ZW1zW2ldLnN0cmluZykgPSAnXDAnOworCQl9IGVsc2UgaWYgKGkgPT0gY2hvc2VuW2pdKSB7CisJCQkvKiBkZWxldGUgc2VsZWN0ZWQgaXRlbSAqLworCQkJaisrOworCQkJY29udGludWU7CisJCX0gZWxzZSB7CisJCQkvKiBlbmQgb2YgY2hvc2VuIChjaG9zZW5bal0gPT0gRU9GKSwgd29uJ3QgZGVsZXRlICovCisJCQkqKGl0ZW1zW2ldLnN0cmluZykgPSAnXDAnOworCQl9CisJfQorCisJc3RyaW5nX2xpc3RfcmVtb3ZlX2VtcHR5X2l0ZW1zKCZkZWxfbGlzdCwgMCk7CisKKwlmcmVlKGNob3Nlbik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXNrX2VhY2hfY21kKHZvaWQpCit7CisJc3RydWN0IHN0cmJ1ZiBjb25maXJtID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKKwljb25zdCBjaGFyICpxbmFtZTsKKwlpbnQgY2hhbmdlZCA9IDAsIGVvZiA9IDA7CisKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sICZkZWxfbGlzdCkgeworCQkvKiBDdHJsLUQgc2hvdWxkIHN0b3AgcmVtb3ZpbmcgZmlsZXMgKi8KKwkJaWYgKCFlb2YpIHsKKwkJCXFuYW1lID0gcXVvdGVfcGF0aF9yZWxhdGl2ZShpdGVtLT5zdHJpbmcsIE5VTEwsICZidWYpOworCQkJcHJpbnRmKF8oInJlbW92ZSAlcz8gIiksIHFuYW1lKTsKKwkJCWlmIChzdHJidWZfZ2V0bGluZSgmY29uZmlybSwgc3RkaW4sICdcbicpICE9IEVPRikgeworCQkJCXN0cmJ1Zl90cmltKCZjb25maXJtKTsKKwkJCX0gZWxzZSB7CisJCQkJcHV0Y2hhcignXG4nKTsKKwkJCQllb2YgPSAxOworCQkJfQorCQl9CisJCWlmICghY29uZmlybS5sZW4gfHwgc3RybmNhc2VjbXAoY29uZmlybS5idWYsICJ5ZXMiLCBjb25maXJtLmxlbikpIHsKKwkJCSppdGVtLT5zdHJpbmcgPSAnXDAnOworCQkJY2hhbmdlZCsrOworCQl9CisJfQorCisJaWYgKGNoYW5nZWQpCisJCXN0cmluZ19saXN0X3JlbW92ZV9lbXB0eV9pdGVtcygmZGVsX2xpc3QsIDApOworCisJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CisJc3RyYnVmX3JlbGVhc2UoJmNvbmZpcm0pOworCXJldHVybiBNRU5VX1JFVFVSTl9OT19MT09QOworfQorCitzdGF0aWMgaW50IHF1aXRfY21kKHZvaWQpCit7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmRlbF9saXN0LCAwKTsKKwlwcmludGZfbG4oXygiQnllLiIpKTsKKwlyZXR1cm4gTUVOVV9SRVRVUk5fTk9fTE9PUDsKK30KKworc3RhdGljIGludCBoZWxwX2NtZCh2b2lkKQoreworCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0hFTFApOworCXByaW50Zl9sbihfKAorCQkgICAgImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorCQkgICAgImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKwkJICAgICJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorCQkgICAgImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorCQkgICAgInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisJCSAgICAiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisJCSAgICAiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCisJCSAgICkpOworCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX1JFU0VUKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaW50ZXJhY3RpdmVfbWFpbl9sb29wKHZvaWQpCit7CisJd2hpbGUgKGRlbF9saXN0Lm5yKSB7CisJCXN0cnVjdCBtZW51X29wdHMgbWVudV9vcHRzOworCQlzdHJ1Y3QgbWVudV9zdHVmZiBtZW51X3N0dWZmOworCQlzdHJ1Y3QgbWVudV9pdGVtIG1lbnVzW10gPSB7CisJCQl7J2MnLCAiY2xlYW4iLAkJCTAsIGNsZWFuX2NtZH0sCisJCQl7J2YnLCAiZmlsdGVyIGJ5IHBhdHRlcm4iLAkwLCBmaWx0ZXJfYnlfcGF0dGVybnNfY21kfSwKKwkJCXsncycsICJzZWxlY3QgYnkgbnVtYmVycyIsCTAsIHNlbGVjdF9ieV9udW1iZXJzX2NtZH0sCisJCQl7J2EnLCAiYXNrIGVhY2giLAkJMCwgYXNrX2VhY2hfY21kfSwKKwkJCXsncScsICJxdWl0IiwJCQkwLCBxdWl0X2NtZH0sCisJCQl7J2gnLCAiaGVscCIsCQkJMCwgaGVscF9jbWR9LAorCQl9OworCQlpbnQgKmNob3NlbjsKKworCQltZW51X29wdHMuaGVhZGVyID0gTl8oIioqKiBDb21tYW5kcyAqKioiKTsKKwkJbWVudV9vcHRzLnByb21wdCA9IE5fKCJXaGF0IG5vdyIpOworCQltZW51X29wdHMuZmxhZ3MgPSBNRU5VX09QVFNfU0lOR0xFVE9OOworCisJCW1lbnVfc3R1ZmYudHlwZSA9IE1FTlVfU1RVRkZfVFlQRV9NRU5VX0lURU07CisJCW1lbnVfc3R1ZmYuc3R1ZmYgPSBtZW51czsKKwkJbWVudV9zdHVmZi5uciA9IHNpemVvZihtZW51cykgLyBzaXplb2Yoc3RydWN0IG1lbnVfaXRlbSk7CisKKwkJY2xlYW5fcHJpbnRfY29sb3IoQ0xFQU5fQ09MT1JfSEVBREVSKTsKKwkJcHJpbnRmX2xuKFFfKCJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtOiIsCisJCQkgICAgICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiLAorCQkJICAgICBkZWxfbGlzdC5ucikpOworCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisKKwkJcHJldHR5X3ByaW50X2RlbHMoKTsKKworCQljaG9zZW4gPSBsaXN0X2FuZF9jaG9vc2UoJm1lbnVfb3B0cywgJm1lbnVfc3R1ZmYpOworCisJCWlmICgqY2hvc2VuICE9IEVPRikgeworCQkJaW50IHJldDsKKwkJCXJldCA9IG1lbnVzWypjaG9zZW5dLmZuKCk7CisJCQlpZiAocmV0ICE9IE1FTlVfUkVUVVJOX05PX0xPT1ApIHsKKwkJCQlmcmVlKGNob3Nlbik7CisJCQkJY2hvc2VuID0gTlVMTDsKKwkJCQlpZiAoIWRlbF9saXN0Lm5yKSB7CisJCQkJCWNsZWFuX3ByaW50X2NvbG9yKENMRUFOX0NPTE9SX0VSUk9SKTsKKwkJCQkJcHJpbnRmX2xuKF8oIk5vIG1vcmUgZmlsZXMgdG8gY2xlYW4sIGV4aXRpbmcuIikpOworCQkJCQljbGVhbl9wcmludF9jb2xvcihDTEVBTl9DT0xPUl9SRVNFVCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCXF1aXRfY21kKCk7CisJCX0KKworCQlmcmVlKGNob3Nlbik7CisJCWNob3NlbiA9IE5VTEw7CisJCWJyZWFrOworCX0KK30KKwogaW50IGNtZF9jbGVhbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIGNvbnN0IGNoYXIgKnByZWZpeCkKIHsKIAlpbnQgaSwgcmVzOwogCWludCBkcnlfcnVuID0gMCwgcmVtb3ZlX2RpcmVjdG9yaWVzID0gMCwgcXVpZXQgPSAwLCBpZ25vcmVkID0gMDsKIAlpbnQgaWdub3JlZF9vbmx5ID0gMCwgY29uZmlnX3NldCA9IDAsIGVycm9ycyA9IDAsIGdvbmUgPSAxOwogCWludCBybV9mbGFncyA9IFJFTU9WRV9ESVJfS0VFUF9ORVNURURfR0lUOwotCXN0cnVjdCBzdHJidWYgZGlyZWN0b3J5ID0gU1RSQlVGX0lOSVQ7CisJc3RydWN0IHN0cmJ1ZiBhYnNfcGF0aCA9IFNUUkJVRl9JTklUOwogCXN0cnVjdCBkaXJfc3RydWN0IGRpcjsKIAlzdGF0aWMgY29uc3QgY2hhciAqKnBhdGhzcGVjOwogCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7CiAJc3RydWN0IHN0cmluZ19saXN0IGV4Y2x1ZGVfbGlzdCA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAJc3RydWN0IGV4Y2x1ZGVfbGlzdCAqZWw7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAJY29uc3QgY2hhciAqcW5hbWU7CiAJY2hhciAqc2VlbiA9IE5VTEw7CiAJc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAJCU9QVF9fUVVJRVQoJnF1aWV0LCBOXygiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiKSksCiAJCU9QVF9fRFJZX1JVTigmZHJ5X3J1biwgTl8oImRyeSBydW4iKSksCiAJCU9QVF9fRk9SQ0UoJmZvcmNlLCBOXygiZm9yY2UiKSksCisJCU9QVF9CT09MKCdpJywgImludGVyYWN0aXZlIiwgJmludGVyYWN0aXZlLCBOXygiaW50ZXJhY3RpdmUgY2xlYW5pbmciKSksCiAJCU9QVF9CT09MRUFOKCdkJywgTlVMTCwgJnJlbW92ZV9kaXJlY3RvcmllcywKIAkJCQlOXygicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIikpLAogCQl7IE9QVElPTl9DQUxMQkFDSywgJ2UnLCAiZXhjbHVkZSIsICZleGNsdWRlX2xpc3QsIE5fKCJwYXR0ZXJuIiksCkBAIC0xODYsMTIgKzkwMSwxMiBAQAogCWlmIChpZ25vcmVkICYmIGlnbm9yZWRfb25seSkKIAkJZGllKF8oIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIpKTsKIAotCWlmICghZHJ5X3J1biAmJiAhZm9yY2UpIHsKKwlpZiAoIWludGVyYWN0aXZlICYmICFkcnlfcnVuICYmICFmb3JjZSkgewogCQlpZiAoY29uZmlnX3NldCkKLQkJCWRpZShfKCJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyAiCisJCQlkaWUoXygiY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKIAkJCQkgICJyZWZ1c2luZyB0byBjbGVhbiIpKTsKIAkJZWxzZQotCQkJZGllKF8oImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgIgorCQkJZGllKF8oImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1pLCAtbiBub3IgLWYgZ2l2ZW47ICIKIAkJCQkgICJyZWZ1c2luZyB0byBjbGVhbiIpKTsKIAl9CiAKQEAgLTIyMSw4ICs5MzYsOSBAQAogCQlzdHJ1Y3QgZGlyX2VudHJ5ICplbnQgPSBkaXIuZW50cmllc1tpXTsKIAkJaW50IGxlbiwgcG9zOwogCQlpbnQgbWF0Y2hlcyA9IDA7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAJCXN0cnVjdCBzdGF0IHN0OworCQljb25zdCBjaGFyICpyZWw7CiAKIAkJLyoKIAkJICogUmVtb3ZlIHRoZSAnLycgYXQgdGhlIGVuZCB0aGF0IGRpcmVjdG9yeQpAQCAtMjQyLDEzICs5NTgsOCBAQAogCQkJCWNvbnRpbnVlOyAvKiBZdXAsIHRoaXMgb25lIGV4aXN0cyB1bm1lcmdlZCAqLwogCQl9CiAKLQkJLyoKLQkJICogd2UgbWlnaHQgaGF2ZSByZW1vdmVkIHRoaXMgYXMgcGFydCBvZiBlYXJsaWVyCi0JCSAqIHJlY3Vyc2l2ZSBkaXJlY3RvcnkgcmVtb3ZhbCwgc28gbHN0YXQoKSBoZXJlIGNvdWxkCi0JCSAqIGZhaWwgd2l0aCBFTk9FTlQuCi0JCSAqLwogCQlpZiAobHN0YXQoZW50LT5uYW1lLCAmc3QpKQotCQkJY29udGludWU7CisJCQlkaWVfZXJybm8oIkNhbm5vdCBsc3RhdCAnJXMnIiwgZW50LT5uYW1lKTsKIAogCQlpZiAocGF0aHNwZWMpIHsKIAkJCW1lbXNldChzZWVuLCAwLCBhcmdjID4gMCA/IGFyZ2MgOiAxKTsKQEAgLTI1NywzMyArOTY4LDYyIEBACiAJCX0KIAogCQlpZiAoU19JU0RJUihzdC5zdF9tb2RlKSkgewotCQkJc3RyYnVmX2FkZHN0cigmZGlyZWN0b3J5LCBlbnQtPm5hbWUpOwogCQkJaWYgKHJlbW92ZV9kaXJlY3RvcmllcyB8fCAobWF0Y2hlcyA9PSBNQVRDSEVEX0VYQUNUTFkpKSB7Ci0JCQkJaWYgKHJlbW92ZV9kaXJzKCZkaXJlY3RvcnksIHByZWZpeCwgcm1fZmxhZ3MsIGRyeV9ydW4sIHF1aWV0LCAmZ29uZSkpCi0JCQkJCWVycm9ycysrOwotCQkJCWlmIChnb25lICYmICFxdWlldCkgewotCQkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoZGlyZWN0b3J5LmJ1ZiwgZGlyZWN0b3J5LmxlbiwgJmJ1ZiwgcHJlZml4KTsKLQkJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOwotCQkJCX0KKwkJCQlyZWwgPSByZWxhdGl2ZV9wYXRoKGVudC0+bmFtZSwgcHJlZml4LCAmYnVmKTsKKwkJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJmRlbF9saXN0LCByZWwpOwogCQkJfQotCQkJc3RyYnVmX3Jlc2V0KCZkaXJlY3RvcnkpOwogCQl9IGVsc2UgewogCQkJaWYgKHBhdGhzcGVjICYmICFtYXRjaGVzKQogCQkJCWNvbnRpbnVlOwotCQkJcmVzID0gZHJ5X3J1biA/IDAgOiB1bmxpbmsoZW50LT5uYW1lKTsKKwkJCXJlbCA9IHJlbGF0aXZlX3BhdGgoZW50LT5uYW1lLCBwcmVmaXgsICZidWYpOworCQkJc3RyaW5nX2xpc3RfYXBwZW5kKCZkZWxfbGlzdCwgcmVsKTsKKwkJfQorCX0KKworCWlmIChpbnRlcmFjdGl2ZSAmJiBkZWxfbGlzdC5uciA+IDApCisJCWludGVyYWN0aXZlX21haW5fbG9vcCgpOworCisJZm9yX2VhY2hfc3RyaW5nX2xpc3RfaXRlbShpdGVtLCAmZGVsX2xpc3QpIHsKKwkJc3RydWN0IHN0YXQgc3Q7CisKKwkJaWYgKHByZWZpeCkKKwkJCXN0cmJ1Zl9hZGRzdHIoJmFic19wYXRoLCBwcmVmaXgpOworCisJCXN0cmJ1Zl9hZGRzdHIoJmFic19wYXRoLCBpdGVtLT5zdHJpbmcpOworCisJCS8qCisJCSAqIHdlIG1pZ2h0IGhhdmUgcmVtb3ZlZCB0aGlzIGFzIHBhcnQgb2YgZWFybGllcgorCQkgKiByZWN1cnNpdmUgZGlyZWN0b3J5IHJlbW92YWwsIHNvIGxzdGF0KCkgaGVyZSBjb3VsZAorCQkgKiBmYWlsIHdpdGggRU5PRU5ULgorCQkgKi8KKwkJaWYgKGxzdGF0KGFic19wYXRoLmJ1ZiwgJnN0KSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChTX0lTRElSKHN0LnN0X21vZGUpKSB7CisJCQlpZiAocmVtb3ZlX2RpcnMoJmFic19wYXRoLCBwcmVmaXgsIHJtX2ZsYWdzLCBkcnlfcnVuLCBxdWlldCwgJmdvbmUpKQorCQkJCWVycm9ycysrOworCQkJaWYgKGdvbmUgJiYgIXF1aWV0KSB7CisJCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGl0ZW0tPnN0cmluZywgTlVMTCwgJmJ1Zik7CisJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOworCQkJfQorCQl9IGVsc2UgeworCQkJcmVzID0gZHJ5X3J1biA/IDAgOiB1bmxpbmsoYWJzX3BhdGguYnVmKTsKIAkJCWlmIChyZXMpIHsKLQkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoZW50LT5uYW1lLCAtMSwgJmJ1ZiwgcHJlZml4KTsKKwkJCQlxbmFtZSA9IHF1b3RlX3BhdGhfcmVsYXRpdmUoaXRlbS0+c3RyaW5nLCBOVUxMLCAmYnVmKTsKIAkJCQl3YXJuaW5nKF8obXNnX3dhcm5fcmVtb3ZlX2ZhaWxlZCksIHFuYW1lKTsKIAkJCQllcnJvcnMrKzsKIAkJCX0gZWxzZSBpZiAoIXF1aWV0KSB7Ci0JCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGVudC0+bmFtZSwgLTEsICZidWYsIHByZWZpeCk7CisJCQkJcW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKGl0ZW0tPnN0cmluZywgTlVMTCwgJmJ1Zik7CiAJCQkJcHJpbnRmKGRyeV9ydW4gPyBfKG1zZ193b3VsZF9yZW1vdmUpIDogXyhtc2dfcmVtb3ZlKSwgcW5hbWUpOwogCQkJfQogCQl9CisJCXN0cmJ1Zl9yZXNldCgmYWJzX3BhdGgpOwogCX0KIAlmcmVlKHNlZW4pOwogCi0Jc3RyYnVmX3JlbGVhc2UoJmRpcmVjdG9yeSk7CisJc3RyYnVmX3JlbGVhc2UoJmFic19wYXRoKTsKKwlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmZGVsX2xpc3QsIDApOwogCXN0cmluZ19saXN0X2NsZWFyKCZleGNsdWRlX2xpc3QsIDApOwogCXJldHVybiAoZXJyb3JzICE9IDApOwogfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9jbG9uZS5jIGIvYnVpbHRpbi9jbG9uZS5jCmluZGV4IDAzNWFiNjQuLjQzMDMwN2IgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY2xvbmUuYworKysgYi9idWlsdGluL2Nsb25lLmMKQEAgLTE4LDcgKzE4LDYgQEAKICNpbmNsdWRlICJ0cmFuc3BvcnQuaCIKICNpbmNsdWRlICJzdHJidWYuaCIKICNpbmNsdWRlICJkaXIuaCIKLSNpbmNsdWRlICJwYWNrLXJlZnMuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImJyYW5jaC5oIgogI2luY2x1ZGUgInJlbW90ZS5oIgpAQCAtNDk0LDEzICs0OTMsMTYgQEAKIHsKIAljb25zdCBzdHJ1Y3QgcmVmICpyOwogCisJbG9ja19wYWNrZWRfcmVmcyhMT0NLX0RJRV9PTl9FUlJPUik7CisKIAlmb3IgKHIgPSBsb2NhbF9yZWZzOyByOyByID0gci0+bmV4dCkgewogCQlpZiAoIXItPnBlZXJfcmVmKQogCQkJY29udGludWU7CiAJCWFkZF9wYWNrZWRfcmVmKHItPnBlZXJfcmVmLT5uYW1lLCByLT5vbGRfc2hhMSk7CiAJfQogCi0JcGFja19yZWZzKFBBQ0tfUkVGU19BTEwpOworCWlmIChjb21taXRfcGFja2VkX3JlZnMoKSkKKwkJZGllX2Vycm5vKCJ1bmFibGUgdG8gb3ZlcndyaXRlIG9sZCByZWYtcGFjayBmaWxlIik7CiB9CiAKIHN0YXRpYyB2b2lkIHdyaXRlX2ZvbGxvd3RhZ3MoY29uc3Qgc3RydWN0IHJlZiAqcmVmcywgY29uc3QgY2hhciAqbXNnKQpAQCAtNTQyLDEyICs1NDQsMjEgQEAKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcmVmICptYXBwZWRfcmVmcywKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcmVmICpyZW1vdGVfaGVhZF9wb2ludHNfYXQsCiAJCQkgICAgICAgY29uc3QgY2hhciAqYnJhbmNoX3RvcCwKLQkJCSAgICAgICBjb25zdCBjaGFyICptc2cpCisJCQkgICAgICAgY29uc3QgY2hhciAqbXNnLAorCQkJICAgICAgIHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKKwkJCSAgICAgICBpbnQgY2hlY2tfY29ubmVjdGl2aXR5KQogewogCWNvbnN0IHN0cnVjdCByZWYgKnJtID0gbWFwcGVkX3JlZnM7CiAKLQlpZiAoY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoaXRlcmF0ZV9yZWZfbWFwLCAwLCAmcm0pKQotCQlkaWUoXygicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiKSk7CisJaWYgKGNoZWNrX2Nvbm5lY3Rpdml0eSkgeworCQlpZiAoMCA8PSBvcHRpb25fdmVyYm9zaXR5KQorCQkJcHJpbnRmKF8oIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiKSk7CisJCWlmIChjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZF93aXRoX3RyYW5zcG9ydChpdGVyYXRlX3JlZl9tYXAsCisJCQkJCQkJICAgICAgMCwgJnJtLCB0cmFuc3BvcnQpKQorCQkJZGllKF8oInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIikpOworCQlpZiAoMCA8PSBvcHRpb25fdmVyYm9zaXR5KQorCQkJcHJpbnRmKF8oImRvbmVcbiIpKTsKKwl9CiAKIAlpZiAocmVmcykgewogCQl3cml0ZV9yZW1vdGVfcmVmcyhtYXBwZWRfcmVmcyk7CkBAIC02OTMsNyArNzA0LDcgQEAKIAkJCS8qCiAJCQkgKiBvdGhlcndpc2UsIHRoZSBuZXh0ICJnaXQgZmV0Y2giIHdpbGwKIAkJCSAqIHNpbXBseSBmZXRjaCBmcm9tIEhFQUQgd2l0aG91dCB1cGRhdGluZwotCQkJICogYW55IHJlbW90ZSB0cmFja2luZyBicmFuY2gsIHdoaWNoIGlzIHdoYXQKKwkJCSAqIGFueSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoLCB3aGljaCBpcyB3aGF0CiAJCQkgKiB3ZSB3YW50LgogCQkJICovCiAJCX0gZWxzZSB7CkBAIC03ODMsNiArNzk0LDggQEAKIAlpc19sb2NhbCA9IG9wdGlvbl9sb2NhbCAhPSAwICYmIHBhdGggJiYgIWlzX2J1bmRsZTsKIAlpZiAoaXNfbG9jYWwgJiYgb3B0aW9uX2RlcHRoKQogCQl3YXJuaW5nKF8oIi0tZGVwdGggaXMgaWdub3JlZCBpbiBsb2NhbCBjbG9uZXM7IHVzZSBmaWxlOi8vIGluc3RlYWQuIikpOworCWlmIChvcHRpb25fbG9jYWwgPiAwICYmICFpc19sb2NhbCkKKwkJd2FybmluZyhfKCItLWxvY2FsIGlzIGlnbm9yZWQiKSk7CiAKIAlpZiAoYXJnYyA9PSAyKQogCQlkaXIgPSB4c3RyZHVwKGFyZ3ZbMV0pOwpAQCAtODg5LDYgKzkwMiw5IEBACiAJCWlmIChvcHRpb25fdXBsb2FkX3BhY2spCiAJCQl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9VUExPQURQQUNLLAogCQkJCQkgICAgIG9wdGlvbl91cGxvYWRfcGFjayk7CisKKwkJaWYgKHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucyAmJiAhb3B0aW9uX2RlcHRoKQorCQkJdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zLT5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0gMTsKIAl9CiAKIAlyZWZzID0gdHJhbnNwb3J0X2dldF9yZW1vdGVfcmVmcyh0cmFuc3BvcnQpOwpAQCAtOTUwLDcgKzk2Niw3IEBACiAJCXRyYW5zcG9ydF9mZXRjaF9yZWZzKHRyYW5zcG9ydCwgbWFwcGVkX3JlZnMpOwogCiAJdXBkYXRlX3JlbW90ZV9yZWZzKHJlZnMsIG1hcHBlZF9yZWZzLCByZW1vdGVfaGVhZF9wb2ludHNfYXQsCi0JCQkgICBicmFuY2hfdG9wLmJ1ZiwgcmVmbG9nX21zZy5idWYpOworCQkJICAgYnJhbmNoX3RvcC5idWYsIHJlZmxvZ19tc2cuYnVmLCB0cmFuc3BvcnQsICFpc19sb2NhbCk7CiAKIAl1cGRhdGVfaGVhZChvdXJfaGVhZF9wb2ludHNfYXQsIHJlbW90ZV9oZWFkLCByZWZsb2dfbXNnLmJ1Zik7CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vY29tbWl0LmMgYi9idWlsdGluL2NvbW1pdC5jCmluZGV4IGQyZjMwZDkuLjEwYWNjNTMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY29tbWl0LmMKKysrIGIvYnVpbHRpbi9jb21taXQuYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgImdwZy1pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJzZXF1ZW5jZXIuaCIKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ1aWx0aW5fY29tbWl0X3VzYWdlW10gPSB7CiAJTl8oImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIpLApAQCAtNjIsOCArNjMsMTggQEAKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgorIlxuIik7CisKK3N0YXRpYyBjb25zdCBjaGFyIGVtcHR5X2NoZXJyeV9waWNrX2FkdmljZV9zaW5nbGVbXSA9CitOXygiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iKTsKKworc3RhdGljIGNvbnN0IGNoYXIgZW1wdHlfY2hlcnJ5X3BpY2tfYWR2aWNlX211bHRpW10gPQorTl8oIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKICJcbiIKLSJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIpOworIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJUaGVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiB3aWxsIHJlc3VtZSBjaGVycnktcGlja2luZ1xuIgorInRoZSByZW1haW5pbmcgY29tbWl0cy5cbiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciAqdXNlX21lc3NhZ2VfYnVmZmVyOwogc3RhdGljIGNvbnN0IGNoYXIgY29tbWl0X2VkaXRtc2dbXSA9ICJDT01NSVRfRURJVE1TRyI7CkBAIC0xMDYsMjQgKzExNywyOSBAQAogc3RhdGljIGNvbnN0IGNoYXIgKmNsZWFudXBfYXJnOwogCiBzdGF0aWMgZW51bSBjb21taXRfd2hlbmNlIHdoZW5jZTsKK3N0YXRpYyBpbnQgc2VxdWVuY2VyX2luX3VzZTsKIHN0YXRpYyBpbnQgdXNlX2VkaXRvciA9IDEsIGluY2x1ZGVfc3RhdHVzID0gMTsKLXN0YXRpYyBpbnQgc2hvd19pZ25vcmVkX2luX3N0YXR1czsKK3N0YXRpYyBpbnQgc2hvd19pZ25vcmVkX2luX3N0YXR1cywgaGF2ZV9vcHRpb25fbTsKIHN0YXRpYyBjb25zdCBjaGFyICpvbmx5X2luY2x1ZGVfYXNzdW1lZDsKIHN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIG1lc3NhZ2UgPSBTVFJCVUZfSU5JVDsKIAotc3RhdGljIGVudW0geworc3RhdGljIGVudW0gc3RhdHVzX2Zvcm1hdCB7CiAJU1RBVFVTX0ZPUk1BVF9OT05FID0gMCwKIAlTVEFUVVNfRk9STUFUX0xPTkcsCiAJU1RBVFVTX0ZPUk1BVF9TSE9SVCwKLQlTVEFUVVNfRk9STUFUX1BPUkNFTEFJTgotfSBzdGF0dXNfZm9ybWF0OworCVNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOLAorCisJU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRAorfSBzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRDsKIAogc3RhdGljIGludCBvcHRfcGFyc2VfbShjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKmFyZywgaW50IHVuc2V0KQogewogCXN0cnVjdCBzdHJidWYgKmJ1ZiA9IG9wdC0+dmFsdWU7Ci0JaWYgKHVuc2V0KQorCWlmICh1bnNldCkgeworCQloYXZlX29wdGlvbl9tID0gMDsKIAkJc3RyYnVmX3NldGxlbihidWYsIDApOwotCWVsc2UgeworCX0gZWxzZSB7CisJCWhhdmVfb3B0aW9uX20gPSAxOwogCQlpZiAoYnVmLT5sZW4pCiAJCQlzdHJidWZfYWRkY2goYnVmLCAnXG4nKTsKIAkJc3RyYnVmX2FkZHN0cihidWYsIGFyZyk7CkBAIC0xMzYsOCArMTUyLDExIEBACiB7CiAJaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJNRVJHRV9IRUFEIikpKQogCQl3aGVuY2UgPSBGUk9NX01FUkdFOwotCWVsc2UgaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIikpKQorCWVsc2UgaWYgKGZpbGVfZXhpc3RzKGdpdF9wYXRoKCJDSEVSUllfUElDS19IRUFEIikpKSB7CiAJCXdoZW5jZSA9IEZST01fQ0hFUlJZX1BJQ0s7CisJCWlmIChmaWxlX2V4aXN0cyhnaXRfcGF0aCgic2VxdWVuY2VyIikpKQorCQkJc2VxdWVuY2VyX2luX3VzZSA9IDE7CisJfQogCWVsc2UKIAkJd2hlbmNlID0gRlJPTV9DT01NSVQ7CiAJaWYgKHMpCkBAIC0yMDIsNyArMjIxLDcgQEAKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CiAKIAkJaWYgKGNlLT5jZV9mbGFncyAmIENFX1VQREFURSkKQEAgLTQ1Nyw2ICs0NzYsOSBAQAogCWNhc2UgU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU46CiAJCXd0X3BvcmNlbGFpbl9wcmludChzKTsKIAkJYnJlYWs7CisJY2FzZSBTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVEOgorCQlkaWUoIkJVRzogZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQiKTsKKwkJYnJlYWs7CiAJY2FzZSBTVEFUVVNfRk9STUFUX05PTkU6CiAJY2FzZSBTVEFUVVNfRk9STUFUX0xPTkc6CiAJCXd0X3N0YXR1c19wcmludChzKTsKQEAgLTUyNiw3ICs1NDgsNiBAQAogCQkJCQkobGIgLSBzdHJsZW4oIiAiKSAtCiAJCQkJCSAoYSArIHN0cmxlbigiXG5hdXRob3IgIikpKSk7CiAJCWVtYWlsID0geG1lbWR1cHoobGIgKyBzdHJsZW4oIjwiKSwgcmIgLSAobGIgKyBzdHJsZW4oIjwiKSkpOwotCQlkYXRlID0geG1lbWR1cHoocmIgKyBzdHJsZW4oIj4gIiksIGVvbCAtIChyYiArIHN0cmxlbigiPiAiKSkpOwogCQlsZW4gPSBlb2wgLSAocmIgKyBzdHJsZW4oIj4gIikpOwogCQlkYXRlID0geG1hbGxvYyhsZW4gKyAyKTsKIAkJKmRhdGUgPSAnQCc7CkBAIC04MDMsOCArODI0LDEzIEBACiAJCXJ1bl9zdGF0dXMoc3Rkb3V0LCBpbmRleF9maWxlLCBwcmVmaXgsIDAsIHMpOwogCQlpZiAoYW1lbmQpCiAJCQlmcHV0cyhfKGVtcHR5X2FtZW5kX2FkdmljZSksIHN0ZGVycik7Ci0JCWVsc2UgaWYgKHdoZW5jZSA9PSBGUk9NX0NIRVJSWV9QSUNLKQorCQllbHNlIGlmICh3aGVuY2UgPT0gRlJPTV9DSEVSUllfUElDSykgewogCQkJZnB1dHMoXyhlbXB0eV9jaGVycnlfcGlja19hZHZpY2UpLCBzdGRlcnIpOworCQkJaWYgKCFzZXF1ZW5jZXJfaW5fdXNlKQorCQkJCWZwdXRzKF8oZW1wdHlfY2hlcnJ5X3BpY2tfYWR2aWNlX3NpbmdsZSksIHN0ZGVycik7CisJCQllbHNlCisJCQkJZnB1dHMoXyhlbXB0eV9jaGVycnlfcGlja19hZHZpY2VfbXVsdGkpLCBzdGRlcnIpOworCQl9CiAJCXJldHVybiAwOwogCX0KIApAQCAtOTU4LDYgKzk4NCw0MiBAQAogCXJldHVybiBsb2dtc2dfcmVlbmNvZGUoY29tbWl0LCBOVUxMLCBvdXRfZW5jKTsKIH0KIAorLyoKKyAqIEVudW1lcmF0ZSB3aGF0IG5lZWRzIHRvIGJlIHByb3BhZ2F0ZWQgd2hlbiAtLXBvcmNlbGFpbgorICogaXMgbm90IGluIGVmZmVjdCBoZXJlLgorICovCitzdGF0aWMgc3RydWN0IHN0YXR1c19kZWZlcnJlZF9jb25maWcgeworCWVudW0gc3RhdHVzX2Zvcm1hdCBzdGF0dXNfZm9ybWF0OworCWludCBzaG93X2JyYW5jaDsKK30gc3RhdHVzX2RlZmVycmVkX2NvbmZpZyA9IHsKKwlTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVELAorCS0xIC8qIHVuc3BlY2lmaWVkICovCit9OworCitzdGF0aWMgdm9pZCBmaW5hbGl6ZV9kZWZlcnJlZF9jb25maWcoc3RydWN0IHd0X3N0YXR1cyAqcykKK3sKKwlpbnQgdXNlX2RlZmVycmVkX2NvbmZpZyA9IChzdGF0dXNfZm9ybWF0ICE9IFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOICYmCisJCQkJICAgIXMtPm51bGxfdGVybWluYXRpb24pOworCisJaWYgKHMtPm51bGxfdGVybWluYXRpb24pIHsKKwkJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9OT05FIHx8CisJCSAgICBzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfVU5TUEVDSUZJRUQpCisJCQlzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU47CisJCWVsc2UgaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9MT05HKQorCQkJZGllKF8oIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIpKTsKKwl9CisKKwlpZiAodXNlX2RlZmVycmVkX2NvbmZpZyAmJiBzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfVU5TUEVDSUZJRUQpCisJCXN0YXR1c19mb3JtYXQgPSBzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnN0YXR1c19mb3JtYXQ7CisJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9VTlNQRUNJRklFRCkKKwkJc3RhdHVzX2Zvcm1hdCA9IFNUQVRVU19GT1JNQVRfTk9ORTsKKworCWlmICh1c2VfZGVmZXJyZWRfY29uZmlnICYmIHMtPnNob3dfYnJhbmNoIDwgMCkKKwkJcy0+c2hvd19icmFuY2ggPSBzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnNob3dfYnJhbmNoOworCWlmIChzLT5zaG93X2JyYW5jaCA8IDApCisJCXMtPnNob3dfYnJhbmNoID0gMDsKK30KKwogc3RhdGljIGludCBwYXJzZV9hbmRfdmFsaWRhdGVfb3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbnMsCiAJCQkJICAgICAgY29uc3QgY2hhciAqIGNvbnN0IHVzYWdlW10sCkBAIC05NjgsNiArMTAzMCw3IEBACiAJaW50IGYgPSAwOwogCiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBvcHRpb25zLCB1c2FnZSwgMCk7CisJZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKHMpOwogCiAJaWYgKGZvcmNlX2F1dGhvciAmJiAhc3RyY2hyKGZvcmNlX2F1dGhvciwgJz4nKSkKIAkJZm9yY2VfYXV0aG9yID0gZmluZF9hdXRob3JfYnlfbmlja25hbWUoZm9yY2VfYXV0aG9yKTsKQEAgLTk3NSw3ICsxMDM4LDcgQEAKIAlpZiAoZm9yY2VfYXV0aG9yICYmIHJlbmV3X2F1dGhvcnNoaXApCiAJCWRpZShfKCJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIikpOwogCi0JaWYgKGxvZ2ZpbGUgfHwgbWVzc2FnZS5sZW4gfHwgdXNlX21lc3NhZ2UgfHwgZml4dXBfbWVzc2FnZSkKKwlpZiAobG9nZmlsZSB8fCBoYXZlX29wdGlvbl9tIHx8IHVzZV9tZXNzYWdlIHx8IGZpeHVwX21lc3NhZ2UpCiAJCXVzZV9lZGl0b3IgPSAwOwogCWlmICgwIDw9IGVkaXRfZmxhZykKIAkJdXNlX2VkaXRvciA9IGVkaXRfZmxhZzsKQEAgLTEwNTIsMTIgKzExMTUsNiBAQAogCWlmIChhbGwgJiYgYXJnYyA+IDApCiAJCWRpZShfKCJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIikpOwogCi0JaWYgKHMtPm51bGxfdGVybWluYXRpb24pIHsKLQkJaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9OT05FKQotCQkJc3RhdHVzX2Zvcm1hdCA9IFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOOwotCQllbHNlIGlmIChzdGF0dXNfZm9ybWF0ID09IFNUQVRVU19GT1JNQVRfTE9ORykKLQkJCWRpZShfKCItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiKSk7Ci0JfQogCWlmIChzdGF0dXNfZm9ybWF0ICE9IFNUQVRVU19GT1JNQVRfTk9ORSkKIAkJZHJ5X3J1biA9IDE7CiAKQEAgLTExMTAsNiArMTE2NywxNyBAQAogCQkJcy0+c3VibW9kdWxlX3N1bW1hcnkgPSAtMTsKIAkJcmV0dXJuIDA7CiAJfQorCWlmICghc3RyY21wKGssICJzdGF0dXMuc2hvcnQiKSkgeworCQlpZiAoZ2l0X2NvbmZpZ19ib29sKGssIHYpKQorCQkJc3RhdHVzX2RlZmVycmVkX2NvbmZpZy5zdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9TSE9SVDsKKwkJZWxzZQorCQkJc3RhdHVzX2RlZmVycmVkX2NvbmZpZy5zdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9OT05FOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKCFzdHJjbXAoaywgInN0YXR1cy5icmFuY2giKSkgeworCQlzdGF0dXNfZGVmZXJyZWRfY29uZmlnLnNob3dfYnJhbmNoID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOworCQlyZXR1cm4gMDsKKwl9CiAJaWYgKCFzdHJjbXAoaywgInN0YXR1cy5jb2xvciIpIHx8ICFzdHJjbXAoaywgImNvbG9yLnN0YXR1cyIpKSB7CiAJCXMtPnVzZV9jb2xvciA9IGdpdF9jb25maWdfY29sb3Jib29sKGssIHYpOwogCQlyZXR1cm4gMDsKQEAgLTExNTIsOCArMTIyMCw4IEBACiAJCU9QVF9fVkVSQk9TRSgmdmVyYm9zZSwgTl8oImJlIHZlcmJvc2UiKSksCiAJCU9QVF9TRVRfSU5UKCdzJywgInNob3J0IiwgJnN0YXR1c19mb3JtYXQsCiAJCQkgICAgTl8oInNob3cgc3RhdHVzIGNvbmNpc2VseSIpLCBTVEFUVVNfRk9STUFUX1NIT1JUKSwKLQkJT1BUX0JPT0xFQU4oJ2InLCAiYnJhbmNoIiwgJnMuc2hvd19icmFuY2gsCi0JCQkgICAgTl8oInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIikpLAorCQlPUFRfQk9PTCgnYicsICJicmFuY2giLCAmcy5zaG93X2JyYW5jaCwKKwkJCSBOXygic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iKSksCiAJCU9QVF9TRVRfSU5UKDAsICJwb3JjZWxhaW4iLCAmc3RhdHVzX2Zvcm1hdCwKIAkJCSAgICBOXygibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiKSwKIAkJCSAgICBTVEFUVVNfRk9STUFUX1BPUkNFTEFJTiksCkBAIC0xMTg2LDEzICsxMjU0LDcgQEAKIAkJCSAgICAgYnVpbHRpbl9zdGF0dXNfb3B0aW9ucywKIAkJCSAgICAgYnVpbHRpbl9zdGF0dXNfdXNhZ2UsIDApOwogCWZpbmFsaXplX2NvbG9wdHMoJnMuY29sb3B0cywgLTEpOwotCi0JaWYgKHMubnVsbF90ZXJtaW5hdGlvbikgewotCQlpZiAoc3RhdHVzX2Zvcm1hdCA9PSBTVEFUVVNfRk9STUFUX05PTkUpCi0JCQlzdGF0dXNfZm9ybWF0ID0gU1RBVFVTX0ZPUk1BVF9QT1JDRUxBSU47Ci0JCWVsc2UgaWYgKHN0YXR1c19mb3JtYXQgPT0gU1RBVFVTX0ZPUk1BVF9MT05HKQotCQkJZGllKF8oIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIpKTsKLQl9CisJZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCZzKTsKIAogCWhhbmRsZV91bnRyYWNrZWRfZmlsZXNfYXJnKCZzKTsKIAlpZiAoc2hvd19pZ25vcmVkX2luX3N0YXR1cykKQEAgLTEyMjEsNiArMTI4Myw5IEBACiAJY2FzZSBTVEFUVVNfRk9STUFUX1BPUkNFTEFJTjoKIAkJd3RfcG9yY2VsYWluX3ByaW50KCZzKTsKIAkJYnJlYWs7CisJY2FzZSBTVEFUVVNfRk9STUFUX1VOU1BFQ0lGSUVEOgorCQlkaWUoIkJVRzogZmluYWxpemVfZGVmZXJyZWRfY29uZmlnKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQiKTsKKwkJYnJlYWs7CiAJY2FzZSBTVEFUVVNfRk9STUFUX05PTkU6CiAJY2FzZSBTVEFUVVNfRk9STUFUX0xPTkc6CiAJCXMudmVyYm9zZSA9IHZlcmJvc2U7CkBAIC0xMzg5LDcgKzE0NTQsNyBAQAogCQlPUFRfQk9PTEVBTigwLCAiZHJ5LXJ1biIsICZkcnlfcnVuLCBOXygic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIpKSwKIAkJT1BUX1NFVF9JTlQoMCwgInNob3J0IiwgJnN0YXR1c19mb3JtYXQsIE5fKCJzaG93IHN0YXR1cyBjb25jaXNlbHkiKSwKIAkJCSAgICBTVEFUVVNfRk9STUFUX1NIT1JUKSwKLQkJT1BUX0JPT0xFQU4oMCwgImJyYW5jaCIsICZzLnNob3dfYnJhbmNoLCBOXygic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iKSksCisJCU9QVF9CT09MKDAsICJicmFuY2giLCAmcy5zaG93X2JyYW5jaCwgTl8oInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIikpLAogCQlPUFRfU0VUX0lOVCgwLCAicG9yY2VsYWluIiwgJnN0YXR1c19mb3JtYXQsCiAJCQkgICAgTl8oIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IiksIFNUQVRVU19GT1JNQVRfUE9SQ0VMQUlOKSwKIAkJT1BUX1NFVF9JTlQoMCwgImxvbmciLCAmc3RhdHVzX2Zvcm1hdCwKQEAgLTE0MzAsNiArMTQ5NSw3IEBACiAJd3Rfc3RhdHVzX3ByZXBhcmUoJnMpOwogCWdpdG1vZHVsZXNfY29uZmlnKCk7CiAJZ2l0X2NvbmZpZyhnaXRfY29tbWl0X2NvbmZpZywgJnMpOworCXN0YXR1c19mb3JtYXQgPSBTVEFUVVNfRk9STUFUX05PTkU7IC8qIElnbm9yZSBzdGF0dXMuc2hvcnQgKi8KIAlkZXRlcm1pbmVfd2hlbmNlKCZzKTsKIAlzLmNvbG9wdHMgPSAwOwogCkBAIC0xNTkxLDcgKzE2NTcsNyBAQAogCQlpZiAoY2ZnKSB7CiAJCQkvKiB3ZSBhcmUgYW1lbmRpbmcsIHNvIGN1cnJlbnRfaGVhZCBpcyBub3QgTlVMTCAqLwogCQkJY29weV9ub3RlX2Zvcl9yZXdyaXRlKGNmZywgY3VycmVudF9oZWFkLT5vYmplY3Quc2hhMSwgc2hhMSk7Ci0JCQlmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjZmcpOworCQkJZmluaXNoX2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY2ZnLCAiTm90ZXMgYWRkZWQgYnkgJ2dpdCBjb21taXQgLS1hbWVuZCciKTsKIAkJfQogCQlydW5fcmV3cml0ZV9ob29rKGN1cnJlbnRfaGVhZC0+b2JqZWN0LnNoYTEsIHNoYTEpOwogCX0KZGlmZiAtLWdpdCBhL2J1aWx0aW4vY29uZmlnLmMgYi9idWlsdGluL2NvbmZpZy5jCmluZGV4IDMzYzliZjkuLjQwMTBjNDMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vY29uZmlnLmMKKysrIGIvYnVpbHRpbi9jb25maWcuYwpAQCAtMjEsNiArMjEsNyBAQAogCiBzdGF0aWMgaW50IHVzZV9nbG9iYWxfY29uZmlnLCB1c2Vfc3lzdGVtX2NvbmZpZywgdXNlX2xvY2FsX2NvbmZpZzsKIHN0YXRpYyBjb25zdCBjaGFyICpnaXZlbl9jb25maWdfZmlsZTsKK3N0YXRpYyBjb25zdCBjaGFyICpnaXZlbl9jb25maWdfYmxvYjsKIHN0YXRpYyBpbnQgYWN0aW9ucywgdHlwZXM7CiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X2NvbG9yX3Nsb3QsICpnZXRfY29sb3Jib29sX3Nsb3Q7CiBzdGF0aWMgaW50IGVuZF9udWxsOwpAQCAtNTMsNiArNTQsNyBAQAogCU9QVF9CT09MRUFOKDAsICJzeXN0ZW0iLCAmdXNlX3N5c3RlbV9jb25maWcsIE5fKCJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIikpLAogCU9QVF9CT09MRUFOKDAsICJsb2NhbCIsICZ1c2VfbG9jYWxfY29uZmlnLCBOXygidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiKSksCiAJT1BUX1NUUklORygnZicsICJmaWxlIiwgJmdpdmVuX2NvbmZpZ19maWxlLCBOXygiZmlsZSIpLCBOXygidXNlIGdpdmVuIGNvbmZpZyBmaWxlIikpLAorCU9QVF9TVFJJTkcoMCwgImJsb2IiLCAmZ2l2ZW5fY29uZmlnX2Jsb2IsIE5fKCJibG9iLWlkIiksIE5fKCJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IikpLAogCU9QVF9HUk9VUChOXygiQWN0aW9uIikpLAogCU9QVF9CSVQoMCwgImdldCIsICZhY3Rpb25zLCBOXygiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iKSwgQUNUSU9OX0dFVCksCiAJT1BUX0JJVCgwLCAiZ2V0LWFsbCIsICZhY3Rpb25zLCBOXygiZ2V0IGFsbCB2YWx1ZXM6IGtleSBbdmFsdWUtcmVnZXhdIiksIEFDVElPTl9HRVRfQUxMKSwKQEAgLTIxOCw3ICsyMjAsOCBAQAogCX0KIAogCWdpdF9jb25maWdfd2l0aF9vcHRpb25zKGNvbGxlY3RfY29uZmlnLCAmdmFsdWVzLAotCQkJCWdpdmVuX2NvbmZpZ19maWxlLCByZXNwZWN0X2luY2x1ZGVzKTsKKwkJCQlnaXZlbl9jb25maWdfZmlsZSwgZ2l2ZW5fY29uZmlnX2Jsb2IsCisJCQkJcmVzcGVjdF9pbmNsdWRlcyk7CiAKIAlyZXQgPSAhdmFsdWVzLm5yOwogCkBAIC0zMDIsNyArMzA1LDggQEAKIAlnZXRfY29sb3JfZm91bmQgPSAwOwogCXBhcnNlZF9jb2xvclswXSA9ICdcMCc7CiAJZ2l0X2NvbmZpZ193aXRoX29wdGlvbnMoZ2l0X2dldF9jb2xvcl9jb25maWcsIE5VTEwsCi0JCQkJZ2l2ZW5fY29uZmlnX2ZpbGUsIHJlc3BlY3RfaW5jbHVkZXMpOworCQkJCWdpdmVuX2NvbmZpZ19maWxlLCBnaXZlbl9jb25maWdfYmxvYiwKKwkJCQlyZXNwZWN0X2luY2x1ZGVzKTsKIAogCWlmICghZ2V0X2NvbG9yX2ZvdW5kICYmIGRlZl9jb2xvcikKIAkJY29sb3JfcGFyc2UoZGVmX2NvbG9yLCAiY29tbWFuZCBsaW5lIiwgcGFyc2VkX2NvbG9yKTsKQEAgLTMyOSw4ICszMzMsMTAgQEAKIHsKIAlnZXRfY29sb3Jib29sX2ZvdW5kID0gLTE7CiAJZ2V0X2RpZmZfY29sb3JfZm91bmQgPSAtMTsKKwlnZXRfY29sb3JfdWlfZm91bmQgPSAtMTsKIAlnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhnaXRfZ2V0X2NvbG9yYm9vbF9jb25maWcsIE5VTEwsCi0JCQkJZ2l2ZW5fY29uZmlnX2ZpbGUsIHJlc3BlY3RfaW5jbHVkZXMpOworCQkJCWdpdmVuX2NvbmZpZ19maWxlLCBnaXZlbl9jb25maWdfYmxvYiwKKwkJCQlyZXNwZWN0X2luY2x1ZGVzKTsKIAogCWlmIChnZXRfY29sb3Jib29sX2ZvdW5kIDwgMCkgewogCQlpZiAoIXN0cmNtcChnZXRfY29sb3Jib29sX3Nsb3QsICJjb2xvci5kaWZmIikpCkBAIC0zMzksNiArMzQ1LDEwIEBACiAJCQlnZXRfY29sb3Jib29sX2ZvdW5kID0gZ2V0X2NvbG9yX3VpX2ZvdW5kOwogCX0KIAorCWlmIChnZXRfY29sb3Jib29sX2ZvdW5kIDwgMCkKKwkJLyogZGVmYXVsdCB2YWx1ZSBpZiBub25lIGZvdW5kIGluIGNvbmZpZyAqLworCQlnZXRfY29sb3Jib29sX2ZvdW5kID0gR0lUX0NPTE9SX0FVVE87CisKIAlnZXRfY29sb3Jib29sX2ZvdW5kID0gd2FudF9jb2xvcihnZXRfY29sb3Jib29sX2ZvdW5kKTsKIAogCWlmIChwcmludCkgewpAQCAtMzQ4LDYgKzM1OCwxMiBAQAogCQlyZXR1cm4gZ2V0X2NvbG9yYm9vbF9mb3VuZCA/IDAgOiAxOwogfQogCitzdGF0aWMgdm9pZCBjaGVja19ibG9iX3dyaXRlKHZvaWQpCit7CisJaWYgKGdpdmVuX2NvbmZpZ19ibG9iKQorCQlkaWUoIndyaXRpbmcgY29uZmlnIGJsb2JzIGlzIG5vdCBzdXBwb3J0ZWQiKTsKK30KKwogaW50IGNtZF9jb25maWcoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IG5vbmdpdCA9ICFzdGFydHVwX2luZm8tPmhhdmVfcmVwb3NpdG9yeTsKQEAgLTM1OSw3ICszNzUsOCBAQAogCQkJICAgICBidWlsdGluX2NvbmZpZ191c2FnZSwKIAkJCSAgICAgUEFSU0VfT1BUX1NUT1BfQVRfTk9OX09QVElPTik7CiAKLQlpZiAodXNlX2dsb2JhbF9jb25maWcgKyB1c2Vfc3lzdGVtX2NvbmZpZyArIHVzZV9sb2NhbF9jb25maWcgKyAhIWdpdmVuX2NvbmZpZ19maWxlID4gMSkgeworCWlmICh1c2VfZ2xvYmFsX2NvbmZpZyArIHVzZV9zeXN0ZW1fY29uZmlnICsgdXNlX2xvY2FsX2NvbmZpZyArCisJICAgICEhZ2l2ZW5fY29uZmlnX2ZpbGUgKyAhIWdpdmVuX2NvbmZpZ19ibG9iID4gMSkgewogCQllcnJvcigib25seSBvbmUgY29uZmlnIGZpbGUgYXQgYSB0aW1lLiIpOwogCQl1c2FnZV93aXRoX29wdGlvbnMoYnVpbHRpbl9jb25maWdfdXNhZ2UsIGJ1aWx0aW5fY29uZmlnX29wdGlvbnMpOwogCX0KQEAgLTM3OSw4ICszOTYsOCBAQAogCQkJICovCiAJCQlkaWUoIiRIT01FIG5vdCBzZXQiKTsKIAotCQlpZiAoYWNjZXNzX29yX3dhcm4odXNlcl9jb25maWcsIFJfT0spICYmCi0JCSAgICB4ZGdfY29uZmlnICYmICFhY2Nlc3Nfb3Jfd2Fybih4ZGdfY29uZmlnLCBSX09LKSkKKwkJaWYgKGFjY2Vzc19vcl93YXJuKHVzZXJfY29uZmlnLCBSX09LLCAwKSAmJgorCQkgICAgeGRnX2NvbmZpZyAmJiAhYWNjZXNzX29yX3dhcm4oeGRnX2NvbmZpZywgUl9PSywgMCkpCiAJCQlnaXZlbl9jb25maWdfZmlsZSA9IHhkZ19jb25maWc7CiAJCWVsc2UKIAkJCWdpdmVuX2NvbmZpZ19maWxlID0gdXNlcl9jb25maWc7CkBAIC00MzgsNiArNDU1LDcgQEAKIAkJY2hlY2tfYXJnYyhhcmdjLCAwLCAwKTsKIAkJaWYgKGdpdF9jb25maWdfd2l0aF9vcHRpb25zKHNob3dfYWxsX2NvbmZpZywgTlVMTCwKIAkJCQkJICAgIGdpdmVuX2NvbmZpZ19maWxlLAorCQkJCQkgICAgZ2l2ZW5fY29uZmlnX2Jsb2IsCiAJCQkJCSAgICByZXNwZWN0X2luY2x1ZGVzKSA8IDApIHsKIAkJCWlmIChnaXZlbl9jb25maWdfZmlsZSkKIAkJCQlkaWVfZXJybm8oInVuYWJsZSB0byByZWFkIGNvbmZpZyBmaWxlICclcyciLApAQCAtNDUwLDYgKzQ2OCw4IEBACiAJCWNoZWNrX2FyZ2MoYXJnYywgMCwgMCk7CiAJCWlmICghZ2l2ZW5fY29uZmlnX2ZpbGUgJiYgbm9uZ2l0KQogCQkJZGllKCJub3QgaW4gYSBnaXQgZGlyZWN0b3J5Iik7CisJCWlmIChnaXZlbl9jb25maWdfYmxvYikKKwkJCWRpZSgiZWRpdGluZyBibG9icyBpcyBub3Qgc3VwcG9ydGVkIik7CiAJCWdpdF9jb25maWcoZ2l0X2RlZmF1bHRfY29uZmlnLCBOVUxMKTsKIAkJbGF1bmNoX2VkaXRvcihnaXZlbl9jb25maWdfZmlsZSA/CiAJCQkgICAgICBnaXZlbl9jb25maWdfZmlsZSA6IGdpdF9wYXRoKCJjb25maWciKSwKQEAgLTQ1Nyw2ICs0NzcsNyBAQAogCX0KIAllbHNlIGlmIChhY3Rpb25zID09IEFDVElPTl9TRVQpIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDIsIDIpOwogCQl2YWx1ZSA9IG5vcm1hbGl6ZV92YWx1ZShhcmd2WzBdLCBhcmd2WzFdKTsKIAkJcmV0ID0gZ2l0X2NvbmZpZ19zZXRfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwgYXJndlswXSwgdmFsdWUpOwpAQCAtNDY2LDE4ICs0ODcsMjEgQEAKIAkJcmV0dXJuIHJldDsKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fU0VUX0FMTCkgeworCQljaGVja19ibG9iX3dyaXRlKCk7CiAJCWNoZWNrX2FyZ2MoYXJnYywgMiwgMyk7CiAJCXZhbHVlID0gbm9ybWFsaXplX3ZhbHVlKGFyZ3ZbMF0sIGFyZ3ZbMV0pOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCB2YWx1ZSwgYXJndlsyXSwgMCk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX0FERCkgeworCQljaGVja19ibG9iX3dyaXRlKCk7CiAJCWNoZWNrX2FyZ2MoYXJnYywgMiwgMik7CiAJCXZhbHVlID0gbm9ybWFsaXplX3ZhbHVlKGFyZ3ZbMF0sIGFyZ3ZbMV0pOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCB2YWx1ZSwgIl4kIiwgMCk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX1JFUExBQ0VfQUxMKSB7CisJCWNoZWNrX2Jsb2Jfd3JpdGUoKTsKIAkJY2hlY2tfYXJnYyhhcmdjLCAyLCAzKTsKIAkJdmFsdWUgPSBub3JtYWxpemVfdmFsdWUoYXJndlswXSwgYXJndlsxXSk7CiAJCXJldHVybiBnaXRfY29uZmlnX3NldF9tdWx0aXZhcl9pbl9maWxlKGdpdmVuX2NvbmZpZ19maWxlLApAQCAtNTAwLDYgKzUyNCw3IEBACiAJCXJldHVybiBnZXRfdmFsdWUoYXJndlswXSwgYXJndlsxXSk7CiAJfQogCWVsc2UgaWYgKGFjdGlvbnMgPT0gQUNUSU9OX1VOU0VUKSB7CisJCWNoZWNrX2Jsb2Jfd3JpdGUoKTsKIAkJY2hlY2tfYXJnYyhhcmdjLCAxLCAyKTsKIAkJaWYgKGFyZ2MgPT0gMikKIAkJCXJldHVybiBnaXRfY29uZmlnX3NldF9tdWx0aXZhcl9pbl9maWxlKGdpdmVuX2NvbmZpZ19maWxlLApAQCAtNTA5LDEyICs1MzQsMTQgQEAKIAkJCQkJCSAgICAgIGFyZ3ZbMF0sIE5VTEwpOwogCX0KIAllbHNlIGlmIChhY3Rpb25zID09IEFDVElPTl9VTlNFVF9BTEwpIHsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDEsIDIpOwogCQlyZXR1cm4gZ2l0X2NvbmZpZ19zZXRfbXVsdGl2YXJfaW5fZmlsZShnaXZlbl9jb25maWdfZmlsZSwKIAkJCQkJCSAgICAgICBhcmd2WzBdLCBOVUxMLCBhcmd2WzFdLCAxKTsKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fUkVOQU1FX1NFQ1RJT04pIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDIsIDIpOwogCQlyZXQgPSBnaXRfY29uZmlnX3JlbmFtZV9zZWN0aW9uX2luX2ZpbGUoZ2l2ZW5fY29uZmlnX2ZpbGUsCiAJCQkJCQkJYXJndlswXSwgYXJndlsxXSk7CkBAIC01MjUsNiArNTUyLDcgQEAKIAl9CiAJZWxzZSBpZiAoYWN0aW9ucyA9PSBBQ1RJT05fUkVNT1ZFX1NFQ1RJT04pIHsKIAkJaW50IHJldDsKKwkJY2hlY2tfYmxvYl93cml0ZSgpOwogCQljaGVja19hcmdjKGFyZ2MsIDEsIDEpOwogCQlyZXQgPSBnaXRfY29uZmlnX3JlbmFtZV9zZWN0aW9uX2luX2ZpbGUoZ2l2ZW5fY29uZmlnX2ZpbGUsCiAJCQkJCQkJYXJndlswXSwgTlVMTCk7CmRpZmYgLS1naXQgYS9idWlsdGluL2Rlc2NyaWJlLmMgYi9idWlsdGluL2Rlc2NyaWJlLmMKaW5kZXggNjYzNmE2OC4uN2Q3MzcyMiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9kZXNjcmliZS5jCisrKyBiL2J1aWx0aW4vZGVzY3JpYmUuYwpAQCAtNyw2ICs3LDcgQEAKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAiZGlmZi5oIgogI2luY2x1ZGUgImhhc2guaCIKKyNpbmNsdWRlICJhcmd2LWFycmF5LmgiCiAKICNkZWZpbmUgU0VFTgkJKDF1PDwwKQogI2RlZmluZSBNQVhfVEFHUwkoRkxBR19CSVRTIC0gMSkKQEAgLTIxLDYgKzIyLDcgQEAKIHN0YXRpYyBpbnQgYWxsOwkvKiBBbnkgdmFsaWQgcmVmIGNhbiBiZSB1c2VkICovCiBzdGF0aWMgaW50IHRhZ3M7CS8qIEFsbG93IGxpZ2h0d2VpZ2h0IHRhZ3MgKi8KIHN0YXRpYyBpbnQgbG9uZ2Zvcm1hdDsKK3N0YXRpYyBpbnQgZmlyc3RfcGFyZW50Owogc3RhdGljIGludCBhYmJyZXYgPSAtMTsgLyogdW5zcGVjaWZpZWQgKi8KIHN0YXRpYyBpbnQgbWF4X2NhbmRpZGF0ZXMgPSAxMDsKIHN0YXRpYyBzdHJ1Y3QgaGFzaF90YWJsZSBuYW1lczsKQEAgLTQyLDcgKzQ0LDcgQEAKIAl1bnNpZ25lZCBwcmlvOjI7IC8qIGFubm90YXRlZCB0YWcgPSAyLCB0YWcgPSAxLCBoZWFkID0gMCAqLwogCXVuc2lnbmVkIG5hbWVfY2hlY2tlZDoxOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JY29uc3QgY2hhciAqcGF0aDsKKwljaGFyICpwYXRoOwogfTsKIHN0YXRpYyBjb25zdCBjaGFyICpwcmlvX25hbWVzW10gPSB7CiAJImhlYWQiLCAibGlnaHR3ZWlnaHQiLCAiYW5ub3RhdGVkIiwKQEAgLTEyNiwxMiArMTI4LDE0IEBACiAJCQl9IGVsc2UgewogCQkJCWUtPm5leHQgPSBOVUxMOwogCQkJfQorCQkJZS0+cGF0aCA9IE5VTEw7CiAJCX0KIAkJZS0+dGFnID0gdGFnOwogCQllLT5wcmlvID0gcHJpbzsKIAkJZS0+bmFtZV9jaGVja2VkID0gMDsKIAkJaGFzaGNweShlLT5zaGExLCBzaGExKTsKLQkJZS0+cGF0aCA9IHBhdGg7CisJCWZyZWUoZS0+cGF0aCk7CisJCWUtPnBhdGggPSB4c3RyZHVwKHBhdGgpOwogCX0KIH0KIApAQCAtMzM2LDYgKzM0MCw5IEBACiAJCQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUocCwgJmxpc3QpOwogCQkJcC0+b2JqZWN0LmZsYWdzIHw9IGMtPm9iamVjdC5mbGFnczsKIAkJCXBhcmVudHMgPSBwYXJlbnRzLT5uZXh0OworCisJCQlpZiAoZmlyc3RfcGFyZW50KQorCQkJCWJyZWFrOwogCQl9CiAJfQogCkBAIC00MDQsNiArNDExLDcgQEAKIAkJT1BUX0JPT0xFQU4oMCwgImFsbCIsICAgICAgICAmYWxsLCBOXygidXNlIGFueSByZWYiKSksCiAJCU9QVF9CT09MRUFOKDAsICJ0YWdzIiwgICAgICAgJnRhZ3MsIE5fKCJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIpKSwKIAkJT1BUX0JPT0xFQU4oMCwgImxvbmciLCAgICAgICAmbG9uZ2Zvcm1hdCwgTl8oImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiKSksCisJCU9QVF9CT09MRUFOKDAsICJmaXJzdC1wYXJlbnQiLCAmZmlyc3RfcGFyZW50LCBOXygib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IikpLAogCQlPUFRfX0FCQlJFVigmYWJicmV2KSwKIAkJT1BUX1NFVF9JTlQoMCwgImV4YWN0LW1hdGNoIiwgJm1heF9jYW5kaWRhdGVzLAogCQkJICAgIE5fKCJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIiksIDApLApAQCAtNDM1LDI0ICs0NDMsMjQgQEAKIAkJZGllKF8oIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIikpOwogCiAJaWYgKGNvbnRhaW5zKSB7Ci0JCWNvbnN0IGNoYXIgKiphcmdzID0geG1hbGxvYygoNyArIGFyZ2MpICogc2l6ZW9mKGNoYXIgKikpOwotCQlpbnQgaSA9IDA7Ci0JCWFyZ3NbaSsrXSA9ICJuYW1lLXJldiI7Ci0JCWFyZ3NbaSsrXSA9ICItLW5hbWUtb25seSI7Ci0JCWFyZ3NbaSsrXSA9ICItLW5vLXVuZGVmaW5lZCI7CisJCXN0cnVjdCBhcmd2X2FycmF5IGFyZ3M7CisKKwkJYXJndl9hcnJheV9pbml0KCZhcmdzKTsKKwkJYXJndl9hcnJheV9wdXNobCgmYXJncywgIm5hbWUtcmV2IiwKKwkJCQkgIi0tcGVlbC10YWciLCAiLS1uYW1lLW9ubHkiLCAiLS1uby11bmRlZmluZWQiLAorCQkJCSBOVUxMKTsKIAkJaWYgKGFsd2F5cykKLQkJCWFyZ3NbaSsrXSA9ICItLWFsd2F5cyI7CisJCQlhcmd2X2FycmF5X3B1c2goJmFyZ3MsICItLWFsd2F5cyIpOwogCQlpZiAoIWFsbCkgewotCQkJYXJnc1tpKytdID0gIi0tdGFncyI7Ci0JCQlpZiAocGF0dGVybikgewotCQkJCWNoYXIgKnMgPSB4bWFsbG9jKHN0cmxlbigiLS1yZWZzPXJlZnMvdGFncy8iKSArIHN0cmxlbihwYXR0ZXJuKSArIDEpOwotCQkJCXNwcmludGYocywgIi0tcmVmcz1yZWZzL3RhZ3MvJXMiLCBwYXR0ZXJuKTsKLQkJCQlhcmdzW2krK10gPSBzOwotCQkJfQorCQkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS10YWdzIik7CisJCQlpZiAocGF0dGVybikKKwkJCQlhcmd2X2FycmF5X3B1c2hmKCZhcmdzLCAiLS1yZWZzPXJlZnMvdGFncy8lcyIsIHBhdHRlcm4pOwogCQl9Ci0JCW1lbWNweShhcmdzICsgaSwgYXJndiwgYXJnYyAqIHNpemVvZihjaGFyICopKTsKLQkJYXJnc1tpICsgYXJnY10gPSBOVUxMOwotCQlyZXR1cm4gY21kX25hbWVfcmV2KGkgKyBhcmdjLCBhcmdzLCBwcmVmaXgpOworCQl3aGlsZSAoKmFyZ3YpIHsKKwkJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgKmFyZ3YpOworCQkJYXJndisrOworCQl9CisJCXJldHVybiBjbWRfbmFtZV9yZXYoYXJncy5hcmdjLCBhcmdzLmFyZ3YsIHByZWZpeCk7CiAJfQogCiAJaW5pdF9oYXNoKCZuYW1lcyk7CmRpZmYgLS1naXQgYS9idWlsdGluL2RpZmYuYyBiL2J1aWx0aW4vZGlmZi5jCmluZGV4IDhjMmFmNmMuLjlmYzI3M2QgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZGlmZi5jCisrKyBiL2J1aWx0aW4vZGlmZi5jCkBAIC0xNTMsNyArMTUzLDggQEAKIAogc3RhdGljIGludCBidWlsdGluX2RpZmZfdHJlZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCiAJCQkgICAgIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwKLQkJCSAgICAgc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqZW50KQorCQkJICAgICBzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICplbnQwLAorCQkJICAgICBzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICplbnQxKQogewogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKihzaGExWzJdKTsKIAlpbnQgc3dhcCA9IDA7CkBAIC0xNjEsMTMgKzE2MiwxNCBAQAogCWlmIChhcmdjID4gMSkKIAkJdXNhZ2UoYnVpbHRpbl9kaWZmX3VzYWdlKTsKIAotCS8qIFdlIHNhdyB0d28gdHJlZXMsIGVudFswXSBhbmQgZW50WzFdLgotCSAqIGlmIGVudFsxXSBpcyB1bmludGVyZXN0aW5nLCB0aGV5IGFyZSBzd2FwcGVkCisJLyoKKwkgKiBXZSBzYXcgdHdvIHRyZWVzLCBlbnQwIGFuZCBlbnQxLiAgSWYgZW50MSBpcyB1bmludGVyZXN0aW5nLAorCSAqIHN3YXAgdGhlbS4KIAkgKi8KLQlpZiAoZW50WzFdLml0ZW0tPmZsYWdzICYgVU5JTlRFUkVTVElORykKKwlpZiAoZW50MS0+aXRlbS0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQogCQlzd2FwID0gMTsKLQlzaGExW3N3YXBdID0gZW50WzBdLml0ZW0tPnNoYTE7Ci0Jc2hhMVsxLXN3YXBdID0gZW50WzFdLml0ZW0tPnNoYTE7CisJc2hhMVtzd2FwXSA9IGVudDAtPml0ZW0tPnNoYTE7CisJc2hhMVsxLXN3YXBdID0gZW50MS0+aXRlbS0+c2hhMTsKIAlkaWZmX3RyZWVfc2hhMShzaGExWzBdLCBzaGExWzFdLCAiIiwgJnJldnMtPmRpZmZvcHQpOwogCWxvZ190cmVlX2RpZmZfZmx1c2gocmV2cyk7CiAJcmV0dXJuIDA7CkBAIC0yNTEsOCArMjUzLDggQEAKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgcmV2X2luZm8gcmV2OwotCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgZW50WzEwMF07Ci0JaW50IGVudHMgPSAwLCBibG9icyA9IDAsIHBhdGhzID0gMDsKKwlzdHJ1Y3Qgb2JqZWN0X2FycmF5IGVudCA9IE9CSkVDVF9BUlJBWV9JTklUOworCWludCBibG9icyA9IDAsIHBhdGhzID0gMDsKIAljb25zdCBjaGFyICpwYXRoID0gTlVMTDsKIAlzdHJ1Y3QgYmxvYmluZm8gYmxvYlsyXTsKIAlpbnQgbm9uZ2l0OwpAQCAtMzM3LDkgKzMzOSw5IEBACiAJfQogCiAJZm9yIChpID0gMDsgaSA8IHJldi5wZW5kaW5nLm5yOyBpKyspIHsKLQkJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqbGlzdCA9IHJldi5wZW5kaW5nLm9iamVjdHMraTsKLQkJc3RydWN0IG9iamVjdCAqb2JqID0gbGlzdC0+aXRlbTsKLQkJY29uc3QgY2hhciAqbmFtZSA9IGxpc3QtPm5hbWU7CisJCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKmVudHJ5ID0gJnJldi5wZW5kaW5nLm9iamVjdHNbaV07CisJCXN0cnVjdCBvYmplY3QgKm9iaiA9IGVudHJ5LT5pdGVtOworCQljb25zdCBjaGFyICpuYW1lID0gZW50cnktPm5hbWU7CiAJCWludCBmbGFncyA9IChvYmotPmZsYWdzICYgVU5JTlRFUkVTVElORyk7CiAJCWlmICghb2JqLT5wYXJzZWQpCiAJCQlvYmogPSBwYXJzZV9vYmplY3Qob2JqLT5zaGExKTsKQEAgLTM0OCwyNyArMzUwLDIxIEBACiAJCQlkaWUoXygiaW52YWxpZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJCWlmIChvYmotPnR5cGUgPT0gT0JKX0NPTU1JVCkKIAkJCW9iaiA9ICYoKHN0cnVjdCBjb21taXQgKilvYmopLT50cmVlLT5vYmplY3Q7CisKIAkJaWYgKG9iai0+dHlwZSA9PSBPQkpfVFJFRSkgewotCQkJaWYgKEFSUkFZX1NJWkUoZW50KSA8PSBlbnRzKQotCQkJCWRpZShfKCJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciKSwKLQkJCQkgICAgKGludCkgQVJSQVlfU0laRShlbnQpLCBuYW1lKTsKIAkJCW9iai0+ZmxhZ3MgfD0gZmxhZ3M7Ci0JCQllbnRbZW50c10uaXRlbSA9IG9iajsKLQkJCWVudFtlbnRzXS5uYW1lID0gbmFtZTsKLQkJCWVudHMrKzsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCWlmIChvYmotPnR5cGUgPT0gT0JKX0JMT0IpIHsKKwkJCWFkZF9vYmplY3RfYXJyYXkob2JqLCBuYW1lLCAmZW50KTsKKwkJfSBlbHNlIGlmIChvYmotPnR5cGUgPT0gT0JKX0JMT0IpIHsKIAkJCWlmICgyIDw9IGJsb2JzKQogCQkJCWRpZShfKCJtb3JlIHRoYW4gdHdvIGJsb2JzIGdpdmVuOiAnJXMnIiksIG5hbWUpOwogCQkJaGFzaGNweShibG9iW2Jsb2JzXS5zaGExLCBvYmotPnNoYTEpOwogCQkJYmxvYltibG9ic10ubmFtZSA9IG5hbWU7Ci0JCQlibG9iW2Jsb2JzXS5tb2RlID0gbGlzdC0+bW9kZTsKKwkJCWJsb2JbYmxvYnNdLm1vZGUgPSBlbnRyeS0+bW9kZTsKIAkJCWJsb2JzKys7Ci0JCQljb250aW51ZTsKIAorCQl9IGVsc2UgeworCQkJZGllKF8oInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJCX0KLQkJZGllKF8oInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iKSwgbmFtZSk7CiAJfQogCWlmIChyZXYucHJ1bmVfZGF0YS5ucikgewogCQlpZiAoIXBhdGgpCkBAIC0zNzksNyArMzc1LDcgQEAKIAkvKgogCSAqIE5vdywgZG8gdGhlIGFyZ3VtZW50cyBsb29rIHJlYXNvbmFibGU/CiAJICovCi0JaWYgKCFlbnRzKSB7CisJaWYgKCFlbnQubnIpIHsKIAkJc3dpdGNoIChibG9icykgewogCQljYXNlIDA6CiAJCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfZmlsZXMoJnJldiwgYXJnYywgYXJndik7CkBAIC00MDAsMjMgKzM5NiwyNiBAQAogCX0KIAllbHNlIGlmIChibG9icykKIAkJdXNhZ2UoYnVpbHRpbl9kaWZmX3VzYWdlKTsKLQllbHNlIGlmIChlbnRzID09IDEpCisJZWxzZSBpZiAoZW50Lm5yID09IDEpCiAJCXJlc3VsdCA9IGJ1aWx0aW5fZGlmZl9pbmRleCgmcmV2LCBhcmdjLCBhcmd2KTsKLQllbHNlIGlmIChlbnRzID09IDIpCi0JCXJlc3VsdCA9IGJ1aWx0aW5fZGlmZl90cmVlKCZyZXYsIGFyZ2MsIGFyZ3YsIGVudCk7Ci0JZWxzZSBpZiAoZW50WzBdLml0ZW0tPmZsYWdzICYgVU5JTlRFUkVTVElORykgeworCWVsc2UgaWYgKGVudC5uciA9PSAyKQorCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LAorCQkJCQkgICAmZW50Lm9iamVjdHNbMF0sICZlbnQub2JqZWN0c1sxXSk7CisJZWxzZSBpZiAoZW50Lm9iamVjdHNbMF0uaXRlbS0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSB7CiAJCS8qCiAJCSAqIGRpZmYgQS4uLkIgd2hlcmUgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lcmdlIGJhc2UKLQkJICogYmV0d2VlbiBBIGFuZCBCLiAgV2UgaGF2ZSBlbnRbMF0gPT0gbWVyZ2UtYmFzZSwKLQkJICogZW50W2VudHMtMl0gPT0gQSwgYW5kIGVudFtlbnRzLTFdID09IEIuICBTaG93IGRpZmYKLQkJICogYmV0d2VlbiB0aGUgYmFzZSBhbmQgQi4gIE5vdGUgdGhhdCB3ZSBwaWNrIG9uZQotCQkgKiBtZXJnZSBiYXNlIGF0IHJhbmRvbSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZS4KKwkJICogYmV0d2VlbiBBIGFuZCBCLiAgV2UgaGF2ZSBlbnQub2JqZWN0c1swXSA9PQorCQkgKiBtZXJnZS1iYXNlLCBlbnQub2JqZWN0c1tlbnRzLTJdID09IEEsIGFuZAorCQkgKiBlbnQub2JqZWN0c1tlbnRzLTFdID09IEIuICBTaG93IGRpZmYgYmV0d2VlbiB0aGUKKwkJICogYmFzZSBhbmQgQi4gIE5vdGUgdGhhdCB3ZSBwaWNrIG9uZSBtZXJnZSBiYXNlIGF0CisJCSAqIHJhbmRvbSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZS4KIAkJICovCi0JCWVudFsxXSA9IGVudFtlbnRzLTFdOwotCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LCBlbnQpOworCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfdHJlZSgmcmV2LCBhcmdjLCBhcmd2LAorCQkJCQkgICAmZW50Lm9iamVjdHNbMF0sCisJCQkJCSAgICZlbnQub2JqZWN0c1tlbnQubnItMV0pOwogCX0gZWxzZQogCQlyZXN1bHQgPSBidWlsdGluX2RpZmZfY29tYmluZWQoJnJldiwgYXJnYywgYXJndiwKLQkJCQkJICAgICAgIGVudCwgZW50cyk7CisJCQkJCSAgICAgICBlbnQub2JqZWN0cywgZW50Lm5yKTsKIAlyZXN1bHQgPSBkaWZmX3Jlc3VsdF9jb2RlKCZyZXYuZGlmZm9wdCwgcmVzdWx0KTsKIAlpZiAoMSA8IHJldi5kaWZmb3B0LnNraXBfc3RhdF91bm1hdGNoKQogCQlyZWZyZXNoX2luZGV4X3F1aWV0bHkoKTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vZmFzdC1leHBvcnQuYyBiL2J1aWx0aW4vZmFzdC1leHBvcnQuYwppbmRleCBkNjBkNjc1Li44ZTE5MDU4IDEwMDY0NAotLS0gYS9idWlsdGluL2Zhc3QtZXhwb3J0LmMKKysrIGIvYnVpbHRpbi9mYXN0LWV4cG9ydC5jCkBAIC0zNzksNyArMzc5LDcgQEAKIAlpbnQgdGFnZ2VkX21hcms7CiAJc3RydWN0IGNvbW1pdCAqcDsKIAotCS8qIFRyZWVzIGhhdmUgbm8gaWRlbnRpZmVyIGluIGZhc3QtZXhwb3J0IG91dHB1dCwgdGh1cyB3ZSBoYXZlIG5vIHdheQorCS8qIFRyZWVzIGhhdmUgbm8gaWRlbnRpZmllciBpbiBmYXN0LWV4cG9ydCBvdXRwdXQsIHRodXMgd2UgaGF2ZSBubyB3YXkKIAkgKiB0byBvdXRwdXQgdGFncyBvZiB0cmVlcywgdGFncyBvZiB0YWdzIG9mIHRyZWVzLCBldGMuICBTaW1wbHkgb21pdAogCSAqIHN1Y2ggdGFncy4KIAkgKi8KQEAgLTYxMyw2ICs2MTMsOCBAQAogCQljaGFyICpsaW5lX2VuZCwgKm1hcmtfZW5kOwogCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3Q7CisJCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKKwkJZW51bSBvYmplY3RfdHlwZSB0eXBlOwogCiAJCWxpbmVfZW5kID0gc3RyY2hyKGxpbmUsICdcbicpOwogCQlpZiAobGluZVswXSAhPSAnOicgfHwgIWxpbmVfZW5kKQpAQCAtNjIxLDIzICs2MjMsMjkgQEAKIAogCQltYXJrID0gc3RydG91bWF4KGxpbmUgKyAxLCAmbWFya19lbmQsIDEwKTsKIAkJaWYgKCFtYXJrIHx8IG1hcmtfZW5kID09IGxpbmUgKyAxCi0JCQl8fCAqbWFya19lbmQgIT0gJyAnIHx8IGdldF9zaGExKG1hcmtfZW5kICsgMSwgc2hhMSkpCisJCQl8fCAqbWFya19lbmQgIT0gJyAnIHx8IGdldF9zaGExX2hleChtYXJrX2VuZCArIDEsIHNoYTEpKQogCQkJZGllKCJjb3JydXB0IG1hcmsgbGluZTogJXMiLCBsaW5lKTsKIAogCQlpZiAobGFzdF9pZG51bSA8IG1hcmspCiAJCQlsYXN0X2lkbnVtID0gbWFyazsKIAotCQlvYmplY3QgPSBwYXJzZV9vYmplY3Qoc2hhMSk7Ci0JCWlmICghb2JqZWN0KQorCQl0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCBOVUxMKTsKKwkJaWYgKHR5cGUgPCAwKQorCQkJZGllKCJvYmplY3Qgbm90IGZvdW5kOiAlcyIsIHNoYTFfdG9faGV4KHNoYTEpKTsKKworCQlpZiAodHlwZSAhPSBPQkpfQ09NTUlUKQorCQkJLyogb25seSBjb21taXRzICovCiAJCQljb250aW51ZTsKIAorCQljb21taXQgPSBsb29rdXBfY29tbWl0KHNoYTEpOworCQlpZiAoIWNvbW1pdCkKKwkJCWRpZSgibm90IGEgY29tbWl0PyBjYW4ndCBoYXBwZW46ICVzIiwgc2hhMV90b19oZXgoc2hhMSkpOworCisJCW9iamVjdCA9ICZjb21taXQtPm9iamVjdDsKKwogCQlpZiAob2JqZWN0LT5mbGFncyAmIFNIT1dOKQogCQkJZXJyb3IoIk9iamVjdCAlcyBhbHJlYWR5IGhhcyBhIG1hcmsiLCBzaGExX3RvX2hleChzaGExKSk7CiAKLQkJaWYgKG9iamVjdC0+dHlwZSAhPSBPQkpfQ09NTUlUKQotCQkJLyogb25seSBjb21taXRzICovCi0JCQljb250aW51ZTsKLQogCQltYXJrX29iamVjdChvYmplY3QsIG1hcmspOwogCiAJCW9iamVjdC0+ZmxhZ3MgfD0gU0hPV047CmRpZmYgLS1naXQgYS9idWlsdGluL2ZldGNoLmMgYi9idWlsdGluL2ZldGNoLmMKaW5kZXggNGI2YjFkZi4uNTY0NzA1NSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9mZXRjaC5jCisrKyBiL2J1aWx0aW4vZmV0Y2guYwpAQCAtMzYsNyArMzYsOCBAQAogc3RhdGljIGNvbnN0IGNoYXIgKmRlcHRoOwogc3RhdGljIGNvbnN0IGNoYXIgKnVwbG9hZF9wYWNrOwogc3RhdGljIHN0cnVjdCBzdHJidWYgZGVmYXVsdF9ybGEgPSBTVFJCVUZfSU5JVDsKLXN0YXRpYyBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQ7CitzdGF0aWMgc3RydWN0IHRyYW5zcG9ydCAqZ3RyYW5zcG9ydDsKK3N0YXRpYyBzdHJ1Y3QgdHJhbnNwb3J0ICpnc2Vjb25kYXJ5Owogc3RhdGljIGNvbnN0IGNoYXIgKnN1Ym1vZHVsZV9wcmVmaXggPSAiIjsKIHN0YXRpYyBjb25zdCBjaGFyICpyZWN1cnNlX3N1Ym1vZHVsZXNfZGVmYXVsdDsKIApAQCAtOTUsOCArOTYsMTAgQEAKIAogc3RhdGljIHZvaWQgdW5sb2NrX3BhY2sodm9pZCkKIHsKLQlpZiAodHJhbnNwb3J0KQotCQl0cmFuc3BvcnRfdW5sb2NrX3BhY2sodHJhbnNwb3J0KTsKKwlpZiAoZ3RyYW5zcG9ydCkKKwkJdHJhbnNwb3J0X3VubG9ja19wYWNrKGd0cmFuc3BvcnQpOworCWlmIChnc2Vjb25kYXJ5KQorCQl0cmFuc3BvcnRfdW5sb2NrX3BhY2soZ3NlY29uZGFyeSk7CiB9CiAKIHN0YXRpYyB2b2lkIHVubG9ja19wYWNrX29uX3NpZ25hbChpbnQgc2lnbm8pCkBAIC0xMTksNyArMTIyLDcgQEAKIAogCQlmb3IgKHJtID0gKmhlYWQ7IHJtOyBybSA9IHJtLT5uZXh0KSB7CiAJCQlpZiAoYnJhbmNoX21lcmdlX21hdGNoZXMoYnJhbmNoLCBpLCBybS0+bmFtZSkpIHsKLQkJCQlybS0+bWVyZ2UgPSAxOworCQkJCXJtLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTE0MCw3ICsxNDMsNyBAQAogCQlyZWZzcGVjLnNyYyA9IGJyYW5jaC0+bWVyZ2VbaV0tPnNyYzsKIAkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgJnJlZnNwZWMsIHRhaWwsIDEpOwogCQlmb3IgKHJtID0gKm9sZF90YWlsOyBybTsgcm0gPSBybS0+bmV4dCkKLQkJCXJtLT5tZXJnZSA9IDE7CisJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX01FUkdFOwogCX0KIH0KIApAQCAtMTYwLDYgKzE2Myw4IEBACiAJY29uc3Qgc3RydWN0IHJlZiAqcmVtb3RlX3JlZnMgPSB0cmFuc3BvcnRfZ2V0X3JlbW90ZV9yZWZzKHRyYW5zcG9ydCk7CiAKIAlpZiAocmVmX2NvdW50IHx8IHRhZ3MgPT0gVEFHU19TRVQpIHsKKwkJc3RydWN0IHJlZiAqKm9sZF90YWlsOworCiAJCWZvciAoaSA9IDA7IGkgPCByZWZfY291bnQ7IGkrKykgewogCQkJZ2V0X2ZldGNoX21hcChyZW1vdGVfcmVmcywgJnJlZnNbaV0sICZ0YWlsLCAwKTsKIAkJCWlmIChyZWZzW2ldLmRzdCAmJiByZWZzW2ldLmRzdFswXSkKQEAgLTE2Nyw5ICsxNzIsMjMgQEAKIAkJfQogCQkvKiBNZXJnZSBldmVyeXRoaW5nIG9uIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCBub3QgLS10YWdzICovCiAJCWZvciAocm0gPSByZWZfbWFwOyBybTsgcm0gPSBybS0+bmV4dCkKLQkJCXJtLT5tZXJnZSA9IDE7CisJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX01FUkdFOwogCQlpZiAodGFncyA9PSBUQUdTX1NFVCkKIAkJCWdldF9mZXRjaF9tYXAocmVtb3RlX3JlZnMsIHRhZ19yZWZzcGVjLCAmdGFpbCwgMCk7CisKKwkJLyoKKwkJICogRm9yIGFueSByZWZzIHRoYXQgd2UgaGFwcGVuIHRvIGJlIGZldGNoaW5nIHZpYSBjb21tYW5kLWxpbmUKKwkJICogYXJndW1lbnRzLCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlaXIgY29uZmlndXJlZAorCQkgKiBjb3VudGVycGFydHMuIEhvd2V2ZXIsIHdlIGRvIG5vdCB3YW50IHRvIG1lbnRpb24gdGhlc2UKKwkJICogZW50cmllcyBpbiBGRVRDSF9IRUFEIGF0IGFsbCwgYXMgdGhleSB3b3VsZCBzaW1wbHkgYmUKKwkJICogZHVwbGljYXRlcyBvZiBleGlzdGluZyBlbnRyaWVzLgorCQkgKi8KKwkJb2xkX3RhaWwgPSB0YWlsOworCQlmb3IgKGkgPSAwOyBpIDwgdHJhbnNwb3J0LT5yZW1vdGUtPmZldGNoX3JlZnNwZWNfbnI7IGkrKykKKwkJCWdldF9mZXRjaF9tYXAocmVmX21hcCwgJnRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaFtpXSwKKwkJCQkgICAgICAmdGFpbCwgMSk7CisJCWZvciAocm0gPSAqb2xkX3RhaWw7IHJtOyBybSA9IHJtLT5uZXh0KQorCQkJcm0tPmZldGNoX2hlYWRfc3RhdHVzID0gRkVUQ0hfSEVBRF9JR05PUkU7CiAJfSBlbHNlIHsKIAkJLyogVXNlIHRoZSBkZWZhdWx0cyAqLwogCQlzdHJ1Y3QgcmVtb3RlICpyZW1vdGUgPSB0cmFuc3BvcnQtPnJlbW90ZTsKQEAgLTE4Niw3ICsyMDUsNyBAQAogCQkJCQkqYXV0b3RhZ3MgPSAxOwogCQkJCWlmICghaSAmJiAhaGFzX21lcmdlICYmIHJlZl9tYXAgJiYKIAkJCQkgICAgIXJlbW90ZS0+ZmV0Y2hbMF0ucGF0dGVybikKLQkJCQkJcmVmX21hcC0+bWVyZ2UgPSAxOworCQkJCQlyZWZfbWFwLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQl9CiAJCQkvKgogCQkJICogaWYgdGhlIHJlbW90ZSB3ZSdyZSBmZXRjaGluZyBmcm9tIGlzIHRoZSBzYW1lCkBAIC0yMDIsNyArMjIxLDcgQEAKIAkJCXJlZl9tYXAgPSBnZXRfcmVtb3RlX3JlZihyZW1vdGVfcmVmcywgIkhFQUQiKTsKIAkJCWlmICghcmVmX21hcCkKIAkJCQlkaWUoXygiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiKSk7Ci0JCQlyZWZfbWFwLT5tZXJnZSA9IDE7CisJCQlyZWZfbWFwLT5mZXRjaF9oZWFkX3N0YXR1cyA9IEZFVENIX0hFQURfTUVSR0U7CiAJCQl0YWlsID0gJnJlZl9tYXAtPm5leHQ7CiAJCX0KIAl9CkBAIC0zODksNyArNDA4LDcgQEAKIAljb25zdCBjaGFyICp3aGF0LCAqa2luZDsKIAlzdHJ1Y3QgcmVmICpybTsKIAljaGFyICp1cmwsICpmaWxlbmFtZSA9IGRyeV9ydW4gPyAiL2Rldi9udWxsIiA6IGdpdF9wYXRoKCJGRVRDSF9IRUFEIik7Ci0JaW50IHdhbnRfbWVyZ2U7CisJaW50IHdhbnRfc3RhdHVzOwogCiAJZnAgPSBmb3BlbihmaWxlbmFtZSwgImEiKTsKIAlpZiAoIWZwKQpAQCAtNDA3LDE5ICs0MjYsMjIgQEAKIAl9CiAKIAkvKgotCSAqIFRoZSBmaXJzdCBwYXNzIHdyaXRlcyBvYmplY3RzIHRvIGJlIG1lcmdlZCBhbmQgdGhlbiB0aGUKLQkgKiBzZWNvbmQgcGFzcyB3cml0ZXMgdGhlIHJlc3QsIGluIG9yZGVyIHRvIGFsbG93IHVzaW5nCi0JICogRkVUQ0hfSEVBRCBhcyBhIHJlZm5hbWUgdG8gcmVmZXIgdG8gdGhlIHJlZiB0byBiZSBtZXJnZWQuCisJICogV2UgZG8gYSBwYXNzIGZvciBlYWNoIGZldGNoX2hlYWRfc3RhdHVzIHR5cGUgaW4gdGhlaXIgZW51bSBvcmRlciwgc28KKwkgKiBtZXJnZWQgZW50cmllcyBhcmUgd3JpdHRlbiBiZWZvcmUgbm90LWZvci1tZXJnZS4gVGhhdCBsZXRzIHJlYWRlcnMKKwkgKiB1c2UgRkVUQ0hfSEVBRCBhcyBhIHJlZm5hbWUgdG8gcmVmZXIgdG8gdGhlIHJlZiB0byBiZSBtZXJnZWQuCiAJICovCi0JZm9yICh3YW50X21lcmdlID0gMTsgMCA8PSB3YW50X21lcmdlOyB3YW50X21lcmdlLS0pIHsKKwlmb3IgKHdhbnRfc3RhdHVzID0gRkVUQ0hfSEVBRF9NRVJHRTsKKwkgICAgIHdhbnRfc3RhdHVzIDw9IEZFVENIX0hFQURfSUdOT1JFOworCSAgICAgd2FudF9zdGF0dXMrKykgewogCQlmb3IgKHJtID0gcmVmX21hcDsgcm07IHJtID0gcm0tPm5leHQpIHsKIAkJCXN0cnVjdCByZWYgKnJlZiA9IE5VTEw7CisJCQljb25zdCBjaGFyICptZXJnZV9zdGF0dXNfbWFya2VyID0gIiI7CiAKIAkJCWNvbW1pdCA9IGxvb2t1cF9jb21taXRfcmVmZXJlbmNlX2dlbnRseShybS0+b2xkX3NoYTEsIDEpOwogCQkJaWYgKCFjb21taXQpCi0JCQkJcm0tPm1lcmdlID0gMDsKKwkJCQlybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgPSBGRVRDSF9IRUFEX05PVF9GT1JfTUVSR0U7CiAKLQkJCWlmIChybS0+bWVyZ2UgIT0gd2FudF9tZXJnZSkKKwkJCWlmIChybS0+ZmV0Y2hfaGVhZF9zdGF0dXMgIT0gd2FudF9zdGF0dXMpCiAJCQkJY29udGludWU7CiAKIAkJCWlmIChybS0+cGVlcl9yZWYpIHsKQEAgLTQ2NSwxNiArNDg3LDI2IEBACiAJCQkJCXN0cmJ1Zl9hZGRmKCZub3RlLCAiJXMgIiwga2luZCk7CiAJCQkJc3RyYnVmX2FkZGYoJm5vdGUsICInJXMnIG9mICIsIHdoYXQpOwogCQkJfQotCQkJZnByaW50ZihmcCwgIiVzXHQlc1x0JXMiLAotCQkJCXNoYTFfdG9faGV4KHJtLT5vbGRfc2hhMSksCi0JCQkJcm0tPm1lcmdlID8gIiIgOiAibm90LWZvci1tZXJnZSIsCi0JCQkJbm90ZS5idWYpOwotCQkJZm9yIChpID0gMDsgaSA8IHVybF9sZW47ICsraSkKLQkJCQlpZiAoJ1xuJyA9PSB1cmxbaV0pCi0JCQkJCWZwdXRzKCJcXG4iLCBmcCk7Ci0JCQkJZWxzZQotCQkJCQlmcHV0Yyh1cmxbaV0sIGZwKTsKLQkJCWZwdXRjKCdcbicsIGZwKTsKKwkJCXN3aXRjaCAocm0tPmZldGNoX2hlYWRfc3RhdHVzKSB7CisJCQljYXNlIEZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRToKKwkJCQltZXJnZV9zdGF0dXNfbWFya2VyID0gIm5vdC1mb3ItbWVyZ2UiOworCQkJCS8qIGZhbGwtdGhyb3VnaCAqLworCQkJY2FzZSBGRVRDSF9IRUFEX01FUkdFOgorCQkJCWZwcmludGYoZnAsICIlc1x0JXNcdCVzIiwKKwkJCQkJc2hhMV90b19oZXgocm0tPm9sZF9zaGExKSwKKwkJCQkJbWVyZ2Vfc3RhdHVzX21hcmtlciwKKwkJCQkJbm90ZS5idWYpOworCQkJCWZvciAoaSA9IDA7IGkgPCB1cmxfbGVuOyArK2kpCisJCQkJCWlmICgnXG4nID09IHVybFtpXSkKKwkJCQkJCWZwdXRzKCJcXG4iLCBmcCk7CisJCQkJCWVsc2UKKwkJCQkJCWZwdXRjKHVybFtpXSwgZnApOworCQkJCWZwdXRjKCdcbicsIGZwKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJLyogZG8gbm90IHdyaXRlIGFueXRoaW5nIHRvIEZFVENIX0hFQUQgKi8KKwkJCQlicmVhazsKKwkJCX0KIAogCQkJc3RyYnVmX3Jlc2V0KCZub3RlKTsKIAkJCWlmIChyZWYpIHsKQEAgLTU3MSw3ICs2MDMsOCBAQAogewogCXN0cnVjdCBzdHJpbmdfbGlzdCAqbGlzdCA9IChzdHJ1Y3Qgc3RyaW5nX2xpc3QgKiljYmRhdGE7CiAJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnQobGlzdCwgcmVmbmFtZSk7Ci0JaXRlbS0+dXRpbCA9ICh2b2lkICopc2hhMTsKKwlpdGVtLT51dGlsID0geG1hbGxvYygyMCk7CisJaGFzaGNweShpdGVtLT51dGlsLCBzaGExKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTkwLDcgKzYyMyw3IEBACiAJCQlzdHJ1Y3QgcmVmICoqaGVhZCwKIAkJCXN0cnVjdCByZWYgKioqdGFpbCkKIHsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZXhpc3RpbmdfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisJc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3QgcmVtb3RlX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCWNvbnN0IHN0cnVjdCByZWYgKnJlZjsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbSA9IE5VTEw7CkBAIC02MzYsNyArNjY5LDcgQEAKIAkJaXRlbSA9IHN0cmluZ19saXN0X2luc2VydCgmcmVtb3RlX3JlZnMsIHJlZi0+bmFtZSk7CiAJCWl0ZW0tPnV0aWwgPSAodm9pZCAqKXJlZi0+b2xkX3NoYTE7CiAJfQotCXN0cmluZ19saXN0X2NsZWFyKCZleGlzdGluZ19yZWZzLCAwKTsKKwlzdHJpbmdfbGlzdF9jbGVhcigmZXhpc3RpbmdfcmVmcywgMSk7CiAKIAkvKgogCSAqIFdlIG1heSBoYXZlIGEgZmluYWwgbGlnaHR3ZWlnaHQgdGFnIHRoYXQgbmVlZHMgdG8gYmUKQEAgLTY5MCwxNCArNzIzLDU2IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHNldF9vcHRpb24oc3RydWN0IHRyYW5zcG9ydCAqdHJhbnNwb3J0LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKwlpbnQgciA9IHRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgbmFtZSwgdmFsdWUpOworCWlmIChyIDwgMCkKKwkJZGllKF8oIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiKSwKKwkJICAgIG5hbWUsIHZhbHVlLCB0cmFuc3BvcnQtPnVybCk7CisJaWYgKHIgPiAwKQorCQl3YXJuaW5nKF8oIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIpLAorCQkJbmFtZSwgdHJhbnNwb3J0LT51cmwpOworfQorCitzdGF0aWMgc3RydWN0IHRyYW5zcG9ydCAqcHJlcGFyZV90cmFuc3BvcnQoc3RydWN0IHJlbW90ZSAqcmVtb3RlKQoreworCXN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydDsKKwl0cmFuc3BvcnQgPSB0cmFuc3BvcnRfZ2V0KHJlbW90ZSwgTlVMTCk7CisJdHJhbnNwb3J0X3NldF92ZXJib3NpdHkodHJhbnNwb3J0LCB2ZXJib3NpdHksIHByb2dyZXNzKTsKKwlpZiAodXBsb2FkX3BhY2spCisJCXNldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfVVBMT0FEUEFDSywgdXBsb2FkX3BhY2spOworCWlmIChrZWVwKQorCQlzZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0tFRVAsICJ5ZXMiKTsKKwlpZiAoZGVwdGgpCisJCXNldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfREVQVEgsIGRlcHRoKTsKKwlyZXR1cm4gdHJhbnNwb3J0OworfQorCitzdGF0aWMgdm9pZCBiYWNrZmlsbF90YWdzKHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwgc3RydWN0IHJlZiAqcmVmX21hcCkKK3sKKwlpZiAodHJhbnNwb3J0LT5jYW5ub3RfcmV1c2UpIHsKKwkJZ3NlY29uZGFyeSA9IHByZXBhcmVfdHJhbnNwb3J0KHRyYW5zcG9ydC0+cmVtb3RlKTsKKwkJdHJhbnNwb3J0ID0gZ3NlY29uZGFyeTsKKwl9CisKKwl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9GT0xMT1dUQUdTLCBOVUxMKTsKKwl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9ERVBUSCwgIjAiKTsKKwlmZXRjaF9yZWZzKHRyYW5zcG9ydCwgcmVmX21hcCk7CisKKwlpZiAoZ3NlY29uZGFyeSkgeworCQl0cmFuc3BvcnRfZGlzY29ubmVjdChnc2Vjb25kYXJ5KTsKKwkJZ3NlY29uZGFyeSA9IE5VTEw7CisJfQorfQorCiBzdGF0aWMgaW50IGRvX2ZldGNoKHN0cnVjdCB0cmFuc3BvcnQgKnRyYW5zcG9ydCwKIAkJICAgIHN0cnVjdCByZWZzcGVjICpyZWZzLCBpbnQgcmVmX2NvdW50KQogewotCXN0cnVjdCBzdHJpbmdfbGlzdCBleGlzdGluZ19yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKLQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqcGVlcl9pdGVtID0gTlVMTDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZXhpc3RpbmdfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfRFVQOwogCXN0cnVjdCByZWYgKnJlZl9tYXA7CiAJc3RydWN0IHJlZiAqcm07CiAJaW50IGF1dG90YWdzID0gKHRyYW5zcG9ydC0+cmVtb3RlLT5mZXRjaF90YWdzID09IDEpOworCWludCByZXRjb2RlID0gMDsKIAogCWZvcl9lYWNoX3JlZihhZGRfZXhpc3RpbmcsICZleGlzdGluZ19yZWZzKTsKIApAQCAtNzEzLDkgKzc4OCw5IEBACiAKIAkvKiBpZiBub3QgYXBwZW5kaW5nLCB0cnVuY2F0ZSBGRVRDSF9IRUFEICovCiAJaWYgKCFhcHBlbmQgJiYgIWRyeV9ydW4pIHsKLQkJaW50IGVycmNvZGUgPSB0cnVuY2F0ZV9mZXRjaF9oZWFkKCk7Ci0JCWlmIChlcnJjb2RlKQotCQkJcmV0dXJuIGVycmNvZGU7CisJCXJldGNvZGUgPSB0cnVuY2F0ZV9mZXRjaF9oZWFkKCk7CisJCWlmIChyZXRjb2RlKQorCQkJZ290byBjbGVhbnVwOwogCX0KIAogCXJlZl9tYXAgPSBnZXRfcmVmX21hcCh0cmFuc3BvcnQsIHJlZnMsIHJlZl9jb3VudCwgdGFncywgJmF1dG90YWdzKTsKQEAgLTcyNCw4ICs3OTksOSBAQAogCiAJZm9yIChybSA9IHJlZl9tYXA7IHJtOyBybSA9IHJtLT5uZXh0KSB7CiAJCWlmIChybS0+cGVlcl9yZWYpIHsKLQkJCXBlZXJfaXRlbSA9IHN0cmluZ19saXN0X2xvb2t1cCgmZXhpc3RpbmdfcmVmcywKLQkJCQkJCSAgICAgICBybS0+cGVlcl9yZWYtPm5hbWUpOworCQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKnBlZXJfaXRlbSA9CisJCQkJc3RyaW5nX2xpc3RfbG9va3VwKCZleGlzdGluZ19yZWZzLAorCQkJCQkJICAgcm0tPnBlZXJfcmVmLT5uYW1lKTsKIAkJCWlmIChwZWVyX2l0ZW0pCiAJCQkJaGFzaGNweShybS0+cGVlcl9yZWYtPm9sZF9zaGExLAogCQkJCQlwZWVyX2l0ZW0tPnV0aWwpOwpAQCAtNzM2LDcgKzgxMiw4IEBACiAJCXRyYW5zcG9ydF9zZXRfb3B0aW9uKHRyYW5zcG9ydCwgVFJBTlNfT1BUX0ZPTExPV1RBR1MsICIxIik7CiAJaWYgKGZldGNoX3JlZnModHJhbnNwb3J0LCByZWZfbWFwKSkgewogCQlmcmVlX3JlZnMocmVmX21hcCk7Ci0JCXJldHVybiAxOworCQlyZXRjb2RlID0gMTsKKwkJZ290byBjbGVhbnVwOwogCX0KIAlpZiAocHJ1bmUpIHsKIAkJLyogSWYgLS10YWdzIHdhcyBzcGVjaWZpZWQsIHByZXRlbmQgdGhlIHVzZXIgZ2F2ZSB1cyB0aGUgY2Fub25pY2FsIHRhZ3MgcmVmc3BlYyAqLwpAQCAtNzcxLDI2ICs4NDgsMTQgQEAKIAkJc3RydWN0IHJlZiAqKnRhaWwgPSAmcmVmX21hcDsKIAkJcmVmX21hcCA9IE5VTEw7CiAJCWZpbmRfbm9uX2xvY2FsX3RhZ3ModHJhbnNwb3J0LCAmcmVmX21hcCwgJnRhaWwpOwotCQlpZiAocmVmX21hcCkgewotCQkJdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LCBUUkFOU19PUFRfRk9MTE9XVEFHUywgTlVMTCk7Ci0JCQl0cmFuc3BvcnRfc2V0X29wdGlvbih0cmFuc3BvcnQsIFRSQU5TX09QVF9ERVBUSCwgIjAiKTsKLQkJCWZldGNoX3JlZnModHJhbnNwb3J0LCByZWZfbWFwKTsKLQkJfQorCQlpZiAocmVmX21hcCkKKwkJCWJhY2tmaWxsX3RhZ3ModHJhbnNwb3J0LCByZWZfbWFwKTsKIAkJZnJlZV9yZWZzKHJlZl9tYXApOwogCX0KIAotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfb3B0aW9uKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQotewotCWludCByID0gdHJhbnNwb3J0X3NldF9vcHRpb24odHJhbnNwb3J0LCBuYW1lLCB2YWx1ZSk7Ci0JaWYgKHIgPCAwKQotCQlkaWUoXygiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIpLAotCQkJbmFtZSwgdmFsdWUsIHRyYW5zcG9ydC0+dXJsKTsKLQlpZiAociA+IDApCi0JCXdhcm5pbmcoXygiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIiksCi0JCQluYW1lLCB0cmFuc3BvcnQtPnVybCk7CisgY2xlYW51cDoKKwlzdHJpbmdfbGlzdF9jbGVhcigmZXhpc3RpbmdfcmVmcywgMSk7CisJcmV0dXJuIHJldGNvZGU7CiB9CiAKIHN0YXRpYyBpbnQgZ2V0X29uZV9yZW1vdGVfZm9yX2ZldGNoKHN0cnVjdCByZW1vdGUgKnJlbW90ZSwgdm9pZCAqcHJpdikKQEAgLTkxNSwxNSArOTgwLDcgQEAKIAkJZGllKF8oIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogCQkgICAgInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iKSk7CiAKLQl0cmFuc3BvcnQgPSB0cmFuc3BvcnRfZ2V0KHJlbW90ZSwgTlVMTCk7Ci0JdHJhbnNwb3J0X3NldF92ZXJib3NpdHkodHJhbnNwb3J0LCB2ZXJib3NpdHksIHByb2dyZXNzKTsKLQlpZiAodXBsb2FkX3BhY2spCi0JCXNldF9vcHRpb24oVFJBTlNfT1BUX1VQTE9BRFBBQ0ssIHVwbG9hZF9wYWNrKTsKLQlpZiAoa2VlcCkKLQkJc2V0X29wdGlvbihUUkFOU19PUFRfS0VFUCwgInllcyIpOwotCWlmIChkZXB0aCkKLQkJc2V0X29wdGlvbihUUkFOU19PUFRfREVQVEgsIGRlcHRoKTsKLQorCWd0cmFuc3BvcnQgPSBwcmVwYXJlX3RyYW5zcG9ydChyZW1vdGUpOwogCWlmIChhcmdjID4gMCkgewogCQlpbnQgaiA9IDA7CiAJCXJlZnMgPSB4Y2FsbG9jKGFyZ2MgKyAxLCBzaXplb2YoY29uc3QgY2hhciAqKSk7CkBAIC05NDksMTAgKzEwMDYsMTAgQEAKIAlzaWdjaGFpbl9wdXNoX2NvbW1vbih1bmxvY2tfcGFja19vbl9zaWduYWwpOwogCWF0ZXhpdCh1bmxvY2tfcGFjayk7CiAJcmVmc3BlYyA9IHBhcnNlX2ZldGNoX3JlZnNwZWMocmVmX25yLCByZWZzKTsKLQlleGl0X2NvZGUgPSBkb19mZXRjaCh0cmFuc3BvcnQsIHJlZnNwZWMsIHJlZl9ucik7CisJZXhpdF9jb2RlID0gZG9fZmV0Y2goZ3RyYW5zcG9ydCwgcmVmc3BlYywgcmVmX25yKTsKIAlmcmVlX3JlZnNwZWMocmVmX25yLCByZWZzcGVjKTsKLQl0cmFuc3BvcnRfZGlzY29ubmVjdCh0cmFuc3BvcnQpOwotCXRyYW5zcG9ydCA9IE5VTEw7CisJdHJhbnNwb3J0X2Rpc2Nvbm5lY3QoZ3RyYW5zcG9ydCk7CisJZ3RyYW5zcG9ydCA9IE5VTEw7CiAJcmV0dXJuIGV4aXRfY29kZTsKIH0KIApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9mc2NrLmMgYi9idWlsdGluL2ZzY2suYwppbmRleCBiYjlhMmNkLi45OTA5YjZkIDEwMDY0NAotLS0gYS9idWlsdGluL2ZzY2suYworKysgYi9idWlsdGluL2ZzY2suYwpAQCAtMTEyLDcgKzExMiw3IEBACiAJCXJldHVybiAxOwogCX0KIAotCWFkZF9vYmplY3RfYXJyYXkob2JqLCAodm9pZCAqKSBwYXJlbnQsICZwZW5kaW5nKTsKKwlhZGRfb2JqZWN0X2FycmF5KG9iaiwgTlVMTCwgJnBlbmRpbmcpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9idWlsdGluL2dyZXAuYyBiL2J1aWx0aW4vZ3JlcC5jCmluZGV4IDE1OWU2NWQuLmQzYjNiMWQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vZ3JlcC5jCisrKyBiL2J1aWx0aW4vZ3JlcC5jCkBAIC0yODYsOCArMjg2LDcgQEAKIAlzdHJ1Y3Qgc3RyYnVmIHBhdGhidWYgPSBTVFJCVUZfSU5JVDsKIAogCWlmIChvcHQtPnJlbGF0aXZlICYmIG9wdC0+cHJlZml4X2xlbmd0aCkgewotCQlxdW90ZV9wYXRoX3JlbGF0aXZlKGZpbGVuYW1lICsgdHJlZV9uYW1lX2xlbiwgLTEsICZwYXRoYnVmLAotCQkJCSAgICBvcHQtPnByZWZpeCk7CisJCXF1b3RlX3BhdGhfcmVsYXRpdmUoZmlsZW5hbWUgKyB0cmVlX25hbWVfbGVuLCBvcHQtPnByZWZpeCwgJnBhdGhidWYpOwogCQlzdHJidWZfaW5zZXJ0KCZwYXRoYnVmLCAwLCBmaWxlbmFtZSwgdHJlZV9uYW1lX2xlbik7CiAJfSBlbHNlIHsKIAkJc3RyYnVmX2FkZHN0cigmcGF0aGJ1ZiwgZmlsZW5hbWUpOwpAQCAtMzE4LDcgKzMxNyw3IEBACiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAogCWlmIChvcHQtPnJlbGF0aXZlICYmIG9wdC0+cHJlZml4X2xlbmd0aCkKLQkJcXVvdGVfcGF0aF9yZWxhdGl2ZShmaWxlbmFtZSwgLTEsICZidWYsIG9wdC0+cHJlZml4KTsKKwkJcXVvdGVfcGF0aF9yZWxhdGl2ZShmaWxlbmFtZSwgb3B0LT5wcmVmaXgsICZidWYpOwogCWVsc2UKIAkJc3RyYnVmX2FkZHN0cigmYnVmLCBmaWxlbmFtZSk7CiAKQEAgLTM3Niw3ICszNzUsNyBAQAogCXJlYWRfY2FjaGUoKTsKIAogCWZvciAobnIgPSAwOyBuciA8IGFjdGl2ZV9ucjsgbnIrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW25yXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtucl07CiAJCWlmICghU19JU1JFRyhjZS0+Y2VfbW9kZSkpCiAJCQljb250aW51ZTsKIAkJaWYgKCFtYXRjaF9wYXRoc3BlY19kZXB0aChwYXRoc3BlYywgY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpLCAwLCBOVUxMKSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vaGVscC5jIGIvYnVpbHRpbi9oZWxwLmMKaW5kZXggMDYyOTU3Zi4uZjFlMjM2YiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9oZWxwLmMKKysrIGIvYnVpbHRpbi9oZWxwLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogYnVpbHRpbi1oZWxwLmMKLSAqCiAgKiBCdWlsdGluIGhlbHAgY29tbWFuZAogICovCiAjaW5jbHVkZSAiY2FjaGUuaCIKZGlmZiAtLWdpdCBhL2J1aWx0aW4vaW5kZXgtcGFjay5jIGIvYnVpbHRpbi9pbmRleC1wYWNrLmMKaW5kZXggNzlkZmU0Ny4uOWMxY2ZhYyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9pbmRleC1wYWNrLmMKKysrIGIvYnVpbHRpbi9pbmRleC1wYWNrLmMKQEAgLTc3LDggKzc3LDEwIEBACiAKIHN0YXRpYyBpbnQgZnJvbV9zdGRpbjsKIHN0YXRpYyBpbnQgc3RyaWN0Oworc3RhdGljIGludCBkb19mc2NrX29iamVjdDsKIHN0YXRpYyBpbnQgdmVyYm9zZTsKIHN0YXRpYyBpbnQgc2hvd19zdGF0Oworc3RhdGljIGludCBjaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkOwogCiBzdGF0aWMgc3RydWN0IHByb2dyZXNzICpwcm9ncmVzczsKIApAQCAtMTg3LDEzICsxODksMTMgQEAKIAogLyogVGhlIGNvbnRlbnQgb2YgZWFjaCBsaW5rZWQgb2JqZWN0IG11c3QgaGF2ZSBiZWVuIGNoZWNrZWQKICAgIG9yIGl0IG11c3QgYmUgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBvYmplY3QgZGF0YWJhc2UgKi8KLXN0YXRpYyB2b2lkIGNoZWNrX29iamVjdChzdHJ1Y3Qgb2JqZWN0ICpvYmopCitzdGF0aWMgdW5zaWduZWQgY2hlY2tfb2JqZWN0KHN0cnVjdCBvYmplY3QgKm9iaikKIHsKIAlpZiAoIW9iaikKLQkJcmV0dXJuOworCQlyZXR1cm4gMDsKIAogCWlmICghKG9iai0+ZmxhZ3MgJiBGTEFHX0xJTkspKQotCQlyZXR1cm47CisJCXJldHVybiAwOwogCiAJaWYgKCEob2JqLT5mbGFncyAmIEZMQUdfQ0hFQ0tFRCkpIHsKIAkJdW5zaWduZWQgbG9uZyBzaXplOwpAQCAtMjAxLDE3ICsyMDMsMjAgQEAKIAkJaWYgKHR5cGUgIT0gb2JqLT50eXBlIHx8IHR5cGUgPD0gMCkKIAkJCWRpZShfKCJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIikpOwogCQlvYmotPmZsYWdzIHw9IEZMQUdfQ0hFQ0tFRDsKLQkJcmV0dXJuOworCQlyZXR1cm4gMTsKIAl9CisKKwlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgY2hlY2tfb2JqZWN0cyh2b2lkKQorc3RhdGljIHVuc2lnbmVkIGNoZWNrX29iamVjdHModm9pZCkKIHsKLQl1bnNpZ25lZCBpLCBtYXg7CisJdW5zaWduZWQgaSwgbWF4LCBmb3JlaWduX25yID0gMDsKIAogCW1heCA9IGdldF9tYXhfb2JqZWN0X2luZGV4KCk7CiAJZm9yIChpID0gMDsgaSA8IG1heDsgaSsrKQotCQljaGVja19vYmplY3QoZ2V0X2luZGV4ZWRfb2JqZWN0KGkpKTsKKwkJZm9yZWlnbl9uciArPSBjaGVja19vYmplY3QoZ2V0X2luZGV4ZWRfb2JqZWN0KGkpKTsKKwlyZXR1cm4gZm9yZWlnbl9ucjsKIH0KIAogCkBAIC03NDcsOCArNzUyLDcgQEAKIAkJCWludCBlYXRlbjsKIAkJCXZvaWQgKmJ1ZiA9ICh2b2lkICopIGRhdGE7CiAKLQkJCWlmICghYnVmKQotCQkJCWJ1ZiA9IG5ld19kYXRhID0gZ2V0X2RhdGFfZnJvbV9wYWNrKG9ial9lbnRyeSk7CisJCQlhc3NlcnQoZGF0YSAmJiAiZGF0YSBjYW4gb25seSBiZSBOVUxMIGZvciBsYXJnZSBfYmxvYnNfIik7CiAKIAkJCS8qCiAJCQkgKiB3ZSBkbyBub3QgbmVlZCB0byBmcmVlIHRoZSBtZW1vcnkgaGVyZSwgYXMgdGhlCkBAIC03NTcsNyArNzYxLDggQEAKIAkJCW9iaiA9IHBhcnNlX29iamVjdF9idWZmZXIoc2hhMSwgdHlwZSwgc2l6ZSwgYnVmLCAmZWF0ZW4pOwogCQkJaWYgKCFvYmopCiAJCQkJZGllKF8oImludmFsaWQgJXMiKSwgdHlwZW5hbWUodHlwZSkpOwotCQkJaWYgKGZzY2tfb2JqZWN0KG9iaiwgMSwgZnNja19lcnJvcl9mdW5jdGlvbikpCisJCQlpZiAoZG9fZnNja19vYmplY3QgJiYKKwkJCSAgICBmc2NrX29iamVjdChvYmosIDEsIGZzY2tfZXJyb3JfZnVuY3Rpb24pKQogCQkJCWRpZShfKCJFcnJvciBpbiBvYmplY3QiKSk7CiAJCQlpZiAoZnNja193YWxrKG9iaiwgbWFya19saW5rLCBOVUxMKSkKIAkJCQlkaWUoXygiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiKSwgc2hhMV90b19oZXgob2JqLT5zaGExKSk7CkBAIC0xNDkxLDYgKzE0OTYsNyBAQAogCXN0cnVjdCBwYWNrX2lkeF9lbnRyeSAqKmlkeF9vYmplY3RzOwogCXN0cnVjdCBwYWNrX2lkeF9vcHRpb24gb3B0czsKIAl1bnNpZ25lZCBjaGFyIHBhY2tfc2hhMVsyMF07CisJdW5zaWduZWQgZm9yZWlnbl9uciA9IDE7CS8qIHplcm8gaXMgYSAiZ29vZCIgdmFsdWUsIGFzc3VtZSBiYWQgKi8KIAogCWlmIChhcmdjID09IDIgJiYgIXN0cmNtcChhcmd2WzFdLCAiLWgiKSkKIAkJdXNhZ2UoaW5kZXhfcGFja191c2FnZSk7CkBAIC0xNTEyLDYgKzE1MTgsMTAgQEAKIAkJCQlmaXhfdGhpbl9wYWNrID0gMTsKIAkJCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXN0cmljdCIpKSB7CiAJCQkJc3RyaWN0ID0gMTsKKwkJCQlkb19mc2NrX29iamVjdCA9IDE7CisJCQl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1jaGVjay1zZWxmLWNvbnRhaW5lZC1hbmQtY29ubmVjdGVkIikpIHsKKwkJCQlzdHJpY3QgPSAxOworCQkJCWNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPSAxOwogCQkJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdmVyaWZ5IikpIHsKIAkJCQl2ZXJpZnkgPSAxOwogCQkJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tdmVyaWZ5LXN0YXQiKSkgewpAQCAtMTYyNSw3ICsxNjM1LDcgQEAKIAljb25jbHVkZV9wYWNrKGZpeF90aGluX3BhY2ssIGN1cnJfcGFjaywgcGFja19zaGExKTsKIAlmcmVlKGRlbHRhcyk7CiAJaWYgKHN0cmljdCkKLQkJY2hlY2tfb2JqZWN0cygpOworCQlmb3JlaWduX25yID0gY2hlY2tfb2JqZWN0cygpOwogCiAJaWYgKHNob3dfc3RhdCkKIAkJc2hvd19wYWNrX2luZm8oc3RhdF9vbmx5KTsKQEAgLTE2NTEsNSArMTY2MSwxMSBAQAogCWlmIChpbmRleF9uYW1lID09IE5VTEwpCiAJCWZyZWUoKHZvaWQgKikgY3Vycl9pbmRleCk7CiAKKwkvKgorCSAqIExldCB0aGUgY2FsbGVyIGtub3cgdGhpcyBwYWNrIGlzIG5vdCBzZWxmIGNvbnRhaW5lZAorCSAqLworCWlmIChjaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkICYmIGZvcmVpZ25fbnIpCisJCXJldHVybiAxOworCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9idWlsdGluL2xvZy5jIGIvYnVpbHRpbi9sb2cuYwppbmRleCA2ZTU2YTUwLi4yNjI1Zjk4IDEwMDY0NAotLS0gYS9idWlsdGluL2xvZy5jCisrKyBiL2J1aWx0aW4vbG9nLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJyZW1vdGUuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJsaW5lLWxvZy5oIgogI2luY2x1ZGUgImJyYW5jaC5oIgogI2luY2x1ZGUgInN0cmVhbWluZy5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTQyLDYgKzQzLDEyIEBACiAJTlVMTAogfTsKIAorc3RydWN0IGxpbmVfb3B0X2NhbGxiYWNrX2RhdGEgeworCXN0cnVjdCByZXZfaW5mbyAqcmV2OworCWNvbnN0IGNoYXIgKnByZWZpeDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgYXJnczsKK307CisKIHN0YXRpYyBpbnQgcGFyc2VfZGVjb3JhdGlvbl9zdHlsZShjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlKQogewogCXN3aXRjaCAoZ2l0X2NvbmZpZ19tYXliZV9ib29sKHZhciwgdmFsdWUpKSB7CkBAIC03Niw2ICs4MywxOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGxvZ19saW5lX3JhbmdlX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbiwgY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCit7CisJc3RydWN0IGxpbmVfb3B0X2NhbGxiYWNrX2RhdGEgKmRhdGEgPSBvcHRpb24tPnZhbHVlOworCisJaWYgKCFhcmcpCisJCXJldHVybiAtMTsKKworCWRhdGEtPnJldi0+bGluZV9sZXZlbF90cmF2ZXJzZSA9IDE7CisJc3RyaW5nX2xpc3RfYXBwZW5kKCZkYXRhLT5hcmdzLCBhcmcpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIGNtZF9sb2dfaW5pdF9kZWZhdWx0cyhzdHJ1Y3QgcmV2X2luZm8gKnJldikKIHsKIAlpZiAoZm10X3ByZXR0eSkKQEAgLTk4LDYgKzExOCw3IEBACiB7CiAJc3RydWN0IHVzZXJmb3JtYXRfd2FudCB3OwogCWludCBxdWlldCA9IDAsIHNvdXJjZSA9IDAsIG1haWxtYXAgPSAwOworCXN0YXRpYyBzdHJ1Y3QgbGluZV9vcHRfY2FsbGJhY2tfZGF0YSBsaW5lX2NiID0ge05VTEwsIE5VTEwsIFNUUklOR19MSVNUX0lOSVRfRFVQfTsKIAogCWNvbnN0IHN0cnVjdCBvcHRpb24gYnVpbHRpbl9sb2dfb3B0aW9uc1tdID0gewogCQlPUFRfQk9PTCgwLCAicXVpZXQiLCAmcXVpZXQsIE5fKCJzdXBwcmVzcyBkaWZmIG91dHB1dCIpKSwKQEAgLTEwNSw5ICsxMjYsMTUgQEAKIAkJT1BUX0JPT0woMCwgInVzZS1tYWlsbWFwIiwgJm1haWxtYXAsIE5fKCJVc2UgbWFpbCBtYXAgZmlsZSIpKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJkZWNvcmF0ZSIsIE5VTEwsIE5VTEwsIE5fKCJkZWNvcmF0ZSBvcHRpb25zIiksCiAJCSAgUEFSU0VfT1BUX09QVEFSRywgZGVjb3JhdGVfY2FsbGJhY2t9LAorCQlPUFRfQ0FMTEJBQ0soJ0wnLCBOVUxMLCAmbGluZV9jYiwgIm4sbTpmaWxlIiwKKwkJCSAgICAgIlByb2Nlc3MgbGluZSByYW5nZSBuLG0gaW4gZmlsZSwgY291bnRpbmcgZnJvbSAxIiwKKwkJCSAgICAgbG9nX2xpbmVfcmFuZ2VfY2FsbGJhY2spLAogCQlPUFRfRU5EKCkKIAl9OwogCisJbGluZV9jYi5yZXYgPSByZXY7CisJbGluZV9jYi5wcmVmaXggPSBwcmVmaXg7CisKIAltYWlsbWFwID0gdXNlX21haWxtYXBfY29uZmlnOwogCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwKIAkJCSAgICAgYnVpbHRpbl9sb2dfb3B0aW9ucywgYnVpbHRpbl9sb2dfdXNhZ2UsCkBAIC0xNjEsNiArMTg4LDEwIEBACiAJCXJldi0+c2hvd19kZWNvcmF0aW9ucyA9IDE7CiAJCWxvYWRfcmVmX2RlY29yYXRpb25zKGRlY29yYXRpb25fc3R5bGUpOwogCX0KKworCWlmIChyZXYtPmxpbmVfbGV2ZWxfdHJhdmVyc2UpCisJCWxpbmVfbG9nX2luaXQocmV2LCBsaW5lX2NiLnByZWZpeCwgJmxpbmVfY2IuYXJncyk7CisKIAlzZXR1cF9wYWdlcigpOwogfQogCkBAIC0yMDYsNyArMjM3LDcgQEAKIAlpbnQgaSA9IHJldnMtPmVhcmx5X291dHB1dDsKIAlpbnQgc2hvd19oZWFkZXIgPSAxOwogCi0Jc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmbGlzdCwgcmV2cy0+bGlmbyk7CisJc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmbGlzdCwgcmV2cy0+c29ydF9vcmRlcik7CiAJd2hpbGUgKGxpc3QgJiYgaSkgewogCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSBsaXN0LT5pdGVtOwogCQlzd2l0Y2ggKHNpbXBsaWZ5X2NvbW1pdChyZXZzLCBjb21taXQpKSB7CkBAIC0xMDgxLDYgKzExMTIsMjEgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBmcm9tX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCit7CisJY2hhciAqKmZyb20gPSBvcHQtPnZhbHVlOworCisJZnJlZSgqZnJvbSk7CisKKwlpZiAodW5zZXQpCisJCSpmcm9tID0gTlVMTDsKKwllbHNlIGlmIChhcmcpCisJCSpmcm9tID0geHN0cmR1cChhcmcpOworCWVsc2UKKwkJKmZyb20gPSB4c3RyZHVwKGdpdF9jb21taXR0ZXJfaW5mbyhJREVOVF9OT19EQVRFKSk7CisJcmV0dXJuIDA7Cit9CisKIGludCBjbWRfZm9ybWF0X3BhdGNoKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKQEAgLTExMDMsNiArMTE0OSw3IEBACiAJaW50IHF1aWV0ID0gMDsKIAlpbnQgcmVyb2xsX2NvdW50ID0gLTE7CiAJY2hhciAqYnJhbmNoX25hbWUgPSBOVUxMOworCWNoYXIgKmZyb20gPSBOVUxMOwogCWNvbnN0IHN0cnVjdCBvcHRpb24gYnVpbHRpbl9mb3JtYXRfcGF0Y2hfb3B0aW9uc1tdID0gewogCQl7IE9QVElPTl9DQUxMQkFDSywgJ24nLCAibnVtYmVyZWQiLCAmbnVtYmVyZWQsIE5VTEwsCiAJCQkgICAgTl8oInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giKSwKQEAgLTExNDYsNiArMTE5Myw5IEBACiAJCQkgICAgMCwgdG9fY2FsbGJhY2sgfSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJjYyIsIE5VTEwsIE5fKCJlbWFpbCIpLCBOXygiYWRkIENjOiBoZWFkZXIiKSwKIAkJCSAgICAwLCBjY19jYWxsYmFjayB9LAorCQl7IE9QVElPTl9DQUxMQkFDSywgMCwgImZyb20iLCAmZnJvbSwgTl8oImlkZW50IiksCisJCQkgICAgTl8oInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiKSwKKwkJCSAgICBQQVJTRV9PUFRfT1BUQVJHLCBmcm9tX2NhbGxiYWNrIH0sCiAJCU9QVF9TVFJJTkcoMCwgImluLXJlcGx5LXRvIiwgJmluX3JlcGx5X3RvLCBOXygibWVzc2FnZS1pZCIpLAogCQkJICAgIE5fKCJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iKSksCiAJCXsgT1BUSU9OX0NBTExCQUNLLCAwLCAiYXR0YWNoIiwgJnJldiwgTl8oImJvdW5kYXJ5IiksCkBAIC0xMjMzLDYgKzEyODMsMTEgQEAKIAogCXJldi5leHRyYV9oZWFkZXJzID0gc3RyYnVmX2RldGFjaCgmYnVmLCBOVUxMKTsKIAorCWlmIChmcm9tKSB7CisJCWlmIChzcGxpdF9pZGVudF9saW5lKCZyZXYuZnJvbV9pZGVudCwgZnJvbSwgc3RybGVuKGZyb20pKSkKKwkJCWRpZShfKCJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIiksIGZyb20pOworCX0KKwogCWlmIChzdGFydF9udW1iZXIgPCAwKQogCQlzdGFydF9udW1iZXIgPSAxOwogCmRpZmYgLS1naXQgYS9idWlsdGluL2xzLWZpbGVzLmMgYi9idWlsdGluL2xzLWZpbGVzLmMKaW5kZXggMjIwMjA3Mi4uNWNmM2UzMSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9scy1maWxlcy5jCisrKyBiL2J1aWx0aW4vbHMtZmlsZXMuYwpAQCAtNDYsMTAgKzQ2LDE0IEBACiBzdGF0aWMgY29uc3QgY2hhciAqdGFnX3NraXBfd29ya3RyZWUgPSAiIjsKIHN0YXRpYyBjb25zdCBjaGFyICp0YWdfcmVzb2x2ZV91bmRvID0gIiI7CiAKLXN0YXRpYyB2b2lkIHdyaXRlX25hbWUoY29uc3QgY2hhciogbmFtZSwgc2l6ZV90IGxlbikKK3N0YXRpYyB2b2lkIHdyaXRlX25hbWUoY29uc3QgY2hhciAqbmFtZSkKIHsKLQl3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShuYW1lLCBsZW4sIHByZWZpeCwgcHJlZml4X2xlbiwgc3Rkb3V0LAotCQkJbGluZV90ZXJtaW5hdG9yKTsKKwkvKgorCSAqIFdpdGggIi0tZnVsbC1uYW1lIiwgcHJlZml4X2xlbj0wOyB0aGlzIGNhbGxlciBuZWVkcyB0byBwYXNzCisJICogYW4gZW1wdHkgc3RyaW5nIGluIHRoYXQgY2FzZSAoYSBOVUxMIGlzIGdvb2QgZm9yICIiKS4KKwkgKi8KKwl3cml0ZV9uYW1lX3F1b3RlZF9yZWxhdGl2ZShuYW1lLCBwcmVmaXhfbGVuID8gcHJlZml4IDogTlVMTCwKKwkJCQkgICBzdGRvdXQsIGxpbmVfdGVybWluYXRvcik7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfZGlyX2VudHJ5KGNvbnN0IGNoYXIgKnRhZywgc3RydWN0IGRpcl9lbnRyeSAqZW50KQpAQCAtNjMsNyArNjcsNyBAQAogCQlyZXR1cm47CiAKIAlmcHV0cyh0YWcsIHN0ZG91dCk7Ci0Jd3JpdGVfbmFtZShlbnQtPm5hbWUsIGVudC0+bGVuKTsKKwl3cml0ZV9uYW1lKGVudC0+bmFtZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHNob3dfb3RoZXJfZmlsZXMoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpcikKQEAgLTEyNyw3ICsxMzEsNyBAQAogCX0KIH0KIAotc3RhdGljIHZvaWQgc2hvd19jZV9lbnRyeShjb25zdCBjaGFyICp0YWcsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgdm9pZCBzaG93X2NlX2VudHJ5KGNvbnN0IGNoYXIgKnRhZywgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlpbnQgbGVuID0gbWF4X3ByZWZpeF9sZW47CiAKQEAgLTE2MywxMyArMTY3LDE1IEBACiAJCSAgICAgICBmaW5kX3VuaXF1ZV9hYmJyZXYoY2UtPnNoYTEsYWJicmV2KSwKIAkJICAgICAgIGNlX3N0YWdlKGNlKSk7CiAJfQotCXdyaXRlX25hbWUoY2UtPm5hbWUsIGNlX25hbWVsZW4oY2UpKTsKKwl3cml0ZV9uYW1lKGNlLT5uYW1lKTsKIAlpZiAoZGVidWdfbW9kZSkgewotCQlwcmludGYoIiAgY3RpbWU6ICVkOiVkXG4iLCBjZS0+Y2VfY3RpbWUuc2VjLCBjZS0+Y2VfY3RpbWUubnNlYyk7Ci0JCXByaW50ZigiICBtdGltZTogJWQ6JWRcbiIsIGNlLT5jZV9tdGltZS5zZWMsIGNlLT5jZV9tdGltZS5uc2VjKTsKLQkJcHJpbnRmKCIgIGRldjogJWRcdGlubzogJWRcbiIsIGNlLT5jZV9kZXYsIGNlLT5jZV9pbm8pOwotCQlwcmludGYoIiAgdWlkOiAlZFx0Z2lkOiAlZFxuIiwgY2UtPmNlX3VpZCwgY2UtPmNlX2dpZCk7Ci0JCXByaW50ZigiICBzaXplOiAlZFx0ZmxhZ3M6ICV4XG4iLCBjZS0+Y2Vfc2l6ZSwgY2UtPmNlX2ZsYWdzKTsKKwkJY29uc3Qgc3RydWN0IHN0YXRfZGF0YSAqc2QgPSAmY2UtPmNlX3N0YXRfZGF0YTsKKworCQlwcmludGYoIiAgY3RpbWU6ICVkOiVkXG4iLCBzZC0+c2RfY3RpbWUuc2VjLCBzZC0+c2RfY3RpbWUubnNlYyk7CisJCXByaW50ZigiICBtdGltZTogJWQ6JWRcbiIsIHNkLT5zZF9tdGltZS5zZWMsIHNkLT5zZF9tdGltZS5uc2VjKTsKKwkJcHJpbnRmKCIgIGRldjogJWRcdGlubzogJWRcbiIsIHNkLT5zZF9kZXYsIHNkLT5zZF9pbm8pOworCQlwcmludGYoIiAgdWlkOiAlZFx0Z2lkOiAlZFxuIiwgc2QtPnNkX3VpZCwgc2QtPnNkX2dpZCk7CisJCXByaW50ZigiICBzaXplOiAlZFx0ZmxhZ3M6ICV4XG4iLCBzZC0+c2Rfc2l6ZSwgY2UtPmNlX2ZsYWdzKTsKIAl9CiB9CiAKQEAgLTE5NiwxMiArMjAyLDEyIEBACiAJCQlwcmludGYoIiVzJTA2byAlcyAlZFx0IiwgdGFnX3Jlc29sdmVfdW5kbywgdWktPm1vZGVbaV0sCiAJCQkgICAgICAgZmluZF91bmlxdWVfYWJicmV2KHVpLT5zaGExW2ldLCBhYmJyZXYpLAogCQkJICAgICAgIGkgKyAxKTsKLQkJCXdyaXRlX25hbWUocGF0aCwgbGVuKTsKKwkJCXdyaXRlX25hbWUocGF0aCk7CiAJCX0KIAl9CiB9CiAKLXN0YXRpYyBpbnQgY2VfZXhjbHVkZWQoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKK3N0YXRpYyBpbnQgY2VfZXhjbHVkZWQoc3RydWN0IGRpcl9zdHJ1Y3QgKmRpciwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlpbnQgZHR5cGUgPSBjZV90b19kdHlwZShjZSk7CiAJcmV0dXJuIGlzX2V4Y2x1ZGVkKGRpciwgY2UtPm5hbWUsICZkdHlwZSk7CkBAIC0yMTksOSArMjI1LDkgQEAKIAkJaWYgKHNob3dfa2lsbGVkKQogCQkJc2hvd19raWxsZWRfZmlsZXMoZGlyKTsKIAl9Ci0JaWYgKHNob3dfY2FjaGVkIHwgc2hvd19zdGFnZSkgeworCWlmIChzaG93X2NhY2hlZCB8fCBzaG93X3N0YWdlKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCQlpZiAoKGRpci0+ZmxhZ3MgJiBESVJfU0hPV19JR05PUkVEKSAmJgogCQkJICAgICFjZV9leGNsdWRlZChkaXIsIGNlKSkKIAkJCQljb250aW51ZTsKQEAgLTIzMyw5ICsyMzksOSBAQAogCQkJCShjZV9za2lwX3dvcmt0cmVlKGNlKSA/IHRhZ19za2lwX3dvcmt0cmVlIDogdGFnX2NhY2hlZCksIGNlKTsKIAkJfQogCX0KLQlpZiAoc2hvd19kZWxldGVkIHwgc2hvd19tb2RpZmllZCkgeworCWlmIChzaG93X2RlbGV0ZWQgfHwgc2hvd19tb2RpZmllZCkgewogCQlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCQkJc3RydWN0IHN0YXQgc3Q7CiAJCQlpbnQgZXJyOwogCQkJaWYgKChkaXItPmZsYWdzICYgRElSX1NIT1dfSUdOT1JFRCkgJiYKQEAgLTI3MSw3ICsyNzcsNyBAQAogCWxhc3QgPSBhY3RpdmVfbnI7CiAJd2hpbGUgKGxhc3QgPiBmaXJzdCkgewogCQlpbnQgbmV4dCA9IChsYXN0ICsgZmlyc3QpID4+IDE7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbbmV4dF07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbbmV4dF07CiAJCWlmICghc3RybmNtcChjZS0+bmFtZSwgcHJlZml4LCBtYXhfcHJlZml4X2xlbikpIHsKIAkJCWZpcnN0ID0gbmV4dCsxOwogCQkJY29udGludWU7CkBAIC0zODksNyArMzk1LDcgQEAKIAkJaWYgKGZvdW5kX2R1cCkKIAkJCWNvbnRpbnVlOwogCi0JCW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGhzcGVjW251bV0sIC0xLCAmc2IsIHByZWZpeCk7CisJCW5hbWUgPSBxdW90ZV9wYXRoX3JlbGF0aXZlKHBhdGhzcGVjW251bV0sIHByZWZpeCwgJnNiKTsKIAkJZXJyb3IoInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZShzKSBrbm93biB0byBnaXQuIiwKIAkJICAgICAgbmFtZSk7CiAJCWVycm9ycysrOwpAQCAtNTcxLDggKzU3Nyw4IEBACiAJCWRpZSgibHMtZmlsZXMgLS1pZ25vcmVkIG5lZWRzIHNvbWUgZXhjbHVkZSBwYXR0ZXJuIik7CiAKIAkvKiBXaXRoIG5vIGZsYWdzLCB3ZSBkZWZhdWx0IHRvIHNob3dpbmcgdGhlIGNhY2hlZCBmaWxlcyAqLwotCWlmICghKHNob3dfc3RhZ2UgfCBzaG93X2RlbGV0ZWQgfCBzaG93X290aGVycyB8IHNob3dfdW5tZXJnZWQgfAotCSAgICAgIHNob3dfa2lsbGVkIHwgc2hvd19tb2RpZmllZCB8IHNob3dfcmVzb2x2ZV91bmRvKSkKKwlpZiAoIShzaG93X3N0YWdlIHx8IHNob3dfZGVsZXRlZCB8fCBzaG93X290aGVycyB8fCBzaG93X3VubWVyZ2VkIHx8CisJICAgICAgc2hvd19raWxsZWQgfHwgc2hvd19tb2RpZmllZCB8fCBzaG93X3Jlc29sdmVfdW5kbykpCiAJCXNob3dfY2FjaGVkID0gMTsKIAogCWlmIChtYXhfcHJlZml4KQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9tZXJnZS1iYXNlLmMgYi9idWlsdGluL21lcmdlLWJhc2UuYwppbmRleCAxYmM3OTkxLi4wYzRjZDJmIDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLWJhc2UuYworKysgYi9idWlsdGluL21lcmdlLWJhc2UuYwpAQCAtMTA3LDcgKzEwNyw3IEBACiAJYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgcHJlZml4LCBvcHRpb25zLCBtZXJnZV9iYXNlX3VzYWdlLCAwKTsKIAlpZiAoIW9jdG9wdXMgJiYgIXJlZHVjZSAmJiBhcmdjIDwgMikKIAkJdXNhZ2Vfd2l0aF9vcHRpb25zKG1lcmdlX2Jhc2VfdXNhZ2UsIG9wdGlvbnMpOwotCWlmIChpc19hbmNlc3RvciAmJiAoc2hvd19hbGwgfCBvY3RvcHVzIHwgcmVkdWNlKSkKKwlpZiAoaXNfYW5jZXN0b3IgJiYgKHNob3dfYWxsIHx8IG9jdG9wdXMgfHwgcmVkdWNlKSkKIAkJZGllKCItLWlzLWFuY2VzdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggb3RoZXIgb3B0aW9ucyIpOwogCWlmIChpc19hbmNlc3RvcikKIAkJcmV0dXJuIGhhbmRsZV9pc19hbmNlc3RvcihhcmdjLCBhcmd2KTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UtaW5kZXguYyBiL2J1aWx0aW4vbWVyZ2UtaW5kZXguYwppbmRleCBiZTVlNTE0Li5iNDE2ZDkyIDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLWluZGV4LmMKKysrIGIvYnVpbHRpbi9tZXJnZS1pbmRleC5jCkBAIC0xNiw3ICsxNiw3IEBACiAJCWRpZSgiZ2l0IG1lcmdlLWluZGV4OiAlcyBub3QgaW4gdGhlIGNhY2hlIiwgcGF0aCk7CiAJZm91bmQgPSAwOwogCWRvIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAJCWludCBzdGFnZSA9IGNlX3N0YWdlKGNlKTsKIAogCQlpZiAoc3RyY21wKGNlLT5uYW1lLCBwYXRoKSkKQEAgLTU4LDcgKzU4LDcgQEAKIHsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKCFjZV9zdGFnZShjZSkpCiAJCQljb250aW51ZTsKIAkJaSArPSBtZXJnZV9lbnRyeShpLCBjZS0+bmFtZSktMTsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UtdHJlZS5jIGIvYnVpbHRpbi9tZXJnZS10cmVlLmMKaW5kZXggZWM0OTkxNy4uNjFjYmRlNCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9tZXJnZS10cmVlLmMKKysrIGIvYnVpbHRpbi9tZXJnZS10cmVlLmMKQEAgLTI1MSw3ICsyNTEsMTEgQEAKIAogCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKIAkJbWFzayB8PSAoMSA8PCBpKTsKLQkJaWYgKG5baV0ubW9kZSAmJiBTX0lTRElSKG5baV0ubW9kZSkpCisJCS8qCisJCSAqIFRyZWF0IG1pc3NpbmcgZW50cmllcyBhcyBkaXJlY3RvcmllcyBzbyB0aGF0IHdlIHJldHVybgorCQkgKiBhZnRlciB1bnJlc29sdmVkX2RpcmVjdG9yeSBoYXMgaGFuZGxlZCB0aGlzLgorCQkgKi8KKwkJaWYgKCFuW2ldLm1vZGUgfHwgU19JU0RJUihuW2ldLm1vZGUpKQogCQkJZGlybWFzayB8PSAoMSA8PCBpKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbWVyZ2UuYyBiL2J1aWx0aW4vbWVyZ2UuYwppbmRleCAzZTJkYWEzLi4zNGE2MTY2IDEwMDY0NAotLS0gYS9idWlsdGluL21lcmdlLmMKKysrIGIvYnVpbHRpbi9tZXJnZS5jCkBAIC00Nyw4ICs0Nyw4IEBACiB9OwogCiBzdGF0aWMgaW50IHNob3dfZGlmZnN0YXQgPSAxLCBzaG9ydGxvZ19sZW4gPSAtMSwgc3F1YXNoOwotc3RhdGljIGludCBvcHRpb25fY29tbWl0ID0gMSwgYWxsb3dfZmFzdF9mb3J3YXJkID0gMTsKLXN0YXRpYyBpbnQgZmFzdF9mb3J3YXJkX29ubHksIG9wdGlvbl9lZGl0ID0gLTE7CitzdGF0aWMgaW50IG9wdGlvbl9jb21taXQgPSAxOworc3RhdGljIGludCBvcHRpb25fZWRpdCA9IC0xOwogc3RhdGljIGludCBhbGxvd190cml2aWFsID0gMSwgaGF2ZV9tZXNzYWdlLCB2ZXJpZnlfc2lnbmF0dXJlczsKIHN0YXRpYyBpbnQgb3ZlcndyaXRlX2lnbm9yZSA9IDE7CiBzdGF0aWMgc3RydWN0IHN0cmJ1ZiBtZXJnZV9tc2cgPSBTVFJCVUZfSU5JVDsKQEAgLTc2LDYgKzc2LDE0IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyICpwdWxsX3R3b2hlYWQsICpwdWxsX29jdG9wdXM7CiAKK2VudW0gZmZfdHlwZSB7CisJRkZfTk8sCisJRkZfQUxMT1csCisJRkZfT05MWQorfTsKKworc3RhdGljIGVudW0gZmZfdHlwZSBmYXN0X2ZvcndhcmQgPSBGRl9BTExPVzsKKwogc3RhdGljIGludCBvcHRpb25fcGFyc2VfbWVzc2FnZShjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsCiAJCQkJY29uc3QgY2hhciAqYXJnLCBpbnQgdW5zZXQpCiB7CkBAIC0xNzgsNiArMTg2LDEzIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgb3B0aW9uX3BhcnNlX2ZmX29ubHkoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LAorCQkJICBjb25zdCBjaGFyICphcmcsIGludCB1bnNldCkKK3sKKwlmYXN0X2ZvcndhcmQgPSBGRl9PTkxZOworCXJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IG9wdGlvbiBidWlsdGluX21lcmdlX29wdGlvbnNbXSA9IHsKIAl7IE9QVElPTl9DQUxMQkFDSywgJ24nLCBOVUxMLCBOVUxMLCBOVUxMLAogCQlOXygiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIpLApAQCAtMTk0LDEwICsyMDksMTAgQEAKIAkJTl8oInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIpKSwKIAlPUFRfQk9PTCgnZScsICJlZGl0IiwgJm9wdGlvbl9lZGl0LAogCQlOXygiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIikpLAotCU9QVF9CT09MRUFOKDAsICJmZiIsICZhbGxvd19mYXN0X2ZvcndhcmQsCi0JCU5fKCJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIikpLAotCU9QVF9CT09MRUFOKDAsICJmZi1vbmx5IiwgJmZhc3RfZm9yd2FyZF9vbmx5LAotCQlOXygiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIpKSwKKwlPUFRfU0VUX0lOVCgwLCAiZmYiLCAmZmFzdF9mb3J3YXJkLCBOXygiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIpLCBGRl9BTExPVyksCisJeyBPUFRJT05fQ0FMTEJBQ0ssIDAsICJmZi1vbmx5IiwgTlVMTCwgTlVMTCwKKwkJTl8oImFib3J0IGlmIGZhc3QtZm9yd2FyZCBpcyBub3QgcG9zc2libGUiKSwKKwkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX05PTkVHLCBvcHRpb25fcGFyc2VfZmZfb25seSB9LAogCU9QVF9SRVJFUkVfQVVUT1VQREFURSgmYWxsb3dfcmVyZXJlX2F1dG8pLAogCU9QVF9CT09MKDAsICJ2ZXJpZnktc2lnbmF0dXJlcyIsICZ2ZXJpZnlfc2lnbmF0dXJlcywKIAkJTl8oIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIpKSwKQEAgLTU4MSwxMCArNTk2LDkgQEAKIAllbHNlIGlmICghc3RyY21wKGssICJtZXJnZS5mZiIpKSB7CiAJCWludCBib29sdmFsID0gZ2l0X2NvbmZpZ19tYXliZV9ib29sKGssIHYpOwogCQlpZiAoMCA8PSBib29sdmFsKSB7Ci0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSBib29sdmFsOworCQkJZmFzdF9mb3J3YXJkID0gYm9vbHZhbCA/IEZGX0FMTE9XIDogRkZfTk87CiAJCX0gZWxzZSBpZiAodiAmJiAhc3RyY21wKHYsICJvbmx5IikpIHsKLQkJCWFsbG93X2Zhc3RfZm9yd2FyZCA9IDE7Ci0JCQlmYXN0X2ZvcndhcmRfb25seSA9IDE7CisJCQlmYXN0X2ZvcndhcmQgPSBGRl9PTkxZOwogCQl9IC8qIGRvIG5vdCBiYXJmIG9uIHZhbHVlcyBmcm9tIGZ1dHVyZSB2ZXJzaW9ucyBvZiBnaXQgKi8KIAkJcmV0dXJuIDA7CiAJfSBlbHNlIGlmICghc3RyY21wKGssICJtZXJnZS5kZWZhdWx0dG91cHN0cmVhbSIpKSB7CkBAIC04NjMsNyArODc3LDcgQEAKIAogCWZyZWVfY29tbWl0X2xpc3QoY29tbW9uKTsKIAlwYXJlbnRzID0gcmVtb3RlaGVhZHM7Ci0JaWYgKCFoZWFkX3N1YnN1bWVkIHx8ICFhbGxvd19mYXN0X2ZvcndhcmQpCisJaWYgKCFoZWFkX3N1YnN1bWVkIHx8IGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJY29tbWl0X2xpc3RfaW5zZXJ0KGhlYWQsICZwYXJlbnRzKTsKIAlzdHJidWZfYWRkY2goJm1lcmdlX21zZywgJ1xuJyk7CiAJcHJlcGFyZV90b19jb21taXQocmVtb3RlaGVhZHMpOwpAQCAtODg5LDcgKzkwMyw3IEBACiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIiksIGZpbGVuYW1lKTsKIAlmcHJpbnRmKGZwLCAiXG5Db25mbGljdHM6XG4iKTsKIAlmb3IgKHBvcyA9IDA7IHBvcyA8IGFjdGl2ZV9ucjsgcG9zKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAKIAkJaWYgKGNlX3N0YWdlKGNlKSkgewogCQkJZnByaW50ZihmcCwgIlx0JXNcbiIsIGNlLT5uYW1lKTsKQEAgLTk0OCw3ICs5NjIsNyBAQAogfQogCiAvKgotICogUHJldGVuZCBhcyBpZiB0aGUgdXNlciB0b2xkIHVzIHRvIG1lcmdlIHdpdGggdGhlIHRyYWNraW5nCisgKiBQcmV0ZW5kIGFzIGlmIHRoZSB1c2VyIHRvbGQgdXMgdG8gbWVyZ2Ugd2l0aCB0aGUgcmVtb3RlLXRyYWNraW5nCiAgKiBicmFuY2ggd2UgaGF2ZSBmb3IgdGhlIHVwc3RyZWFtIG9mIHRoZSBjdXJyZW50IGJyYW5jaAogICovCiBzdGF0aWMgaW50IHNldHVwX3dpdGhfdXBzdHJlYW0oY29uc3QgY2hhciAqKiphcmd2KQpAQCAtOTY3LDcgKzk4MSw3IEBACiAJYXJncyA9IHhjYWxsb2MoYnJhbmNoLT5tZXJnZV9uciArIDEsIHNpemVvZihjaGFyICopKTsKIAlmb3IgKGkgPSAwOyBpIDwgYnJhbmNoLT5tZXJnZV9ucjsgaSsrKSB7CiAJCWlmICghYnJhbmNoLT5tZXJnZVtpXS0+ZHN0KQotCQkJZGllKF8oIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiKSwKKwkJCWRpZShfKCJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIiksCiAJCQkgICAgYnJhbmNoLT5tZXJnZVtpXS0+c3JjLCBicmFuY2gtPnJlbW90ZV9uYW1lKTsKIAkJYXJnc1tpXSA9IGJyYW5jaC0+bWVyZ2VbaV0tPmRzdDsKIAl9CkBAIC0xMDA4LDcgKzEwMjIsNyBAQAogCWlmIChmZCA8IDApCiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIiksIGZpbGVuYW1lKTsKIAlzdHJidWZfcmVzZXQoJmJ1Zik7Ci0JaWYgKCFhbGxvd19mYXN0X2ZvcndhcmQpCisJaWYgKGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJc3RyYnVmX2FkZGYoJmJ1ZiwgIm5vLWZmIik7CiAJaWYgKHdyaXRlX2luX2Z1bGwoZmQsIGJ1Zi5idWYsIGJ1Zi5sZW4pICE9IGJ1Zi5sZW4pCiAJCWRpZV9lcnJubyhfKCJDb3VsZCBub3Qgd3JpdGUgdG8gJyVzJyIpLCBmaWxlbmFtZSk7CkBAIC0xMDU0LDcgKzEwNjgsOCBAQAogCWZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gZ2V0X21lcmdlX3BhcmVudChhcmd2W2ldKTsKIAkJaWYgKCFjb21taXQpCi0JCQlkaWUoXygiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIpLCBhcmd2W2ldKTsKKwkJCWhlbHBfdW5rbm93bl9yZWYoYXJndltpXSwgIm1lcmdlIiwKKwkJCQkJICJub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIpOwogCQlyZW1vdGVzID0gJmNvbW1pdF9saXN0X2luc2VydChjb21taXQsIHJlbW90ZXMpLT5uZXh0OwogCX0KIAkqcmVtb3RlcyA9IE5VTEw7CkBAIC0xMTU2LDE0ICsxMTcxLDExIEBACiAJCXNob3dfZGlmZnN0YXQgPSAwOwogCiAJaWYgKHNxdWFzaCkgewotCQlpZiAoIWFsbG93X2Zhc3RfZm9yd2FyZCkKKwkJaWYgKGZhc3RfZm9yd2FyZCA9PSBGRl9OTykKIAkJCWRpZShfKCJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIpKTsKIAkJb3B0aW9uX2NvbW1pdCA9IDA7CiAJfQogCi0JaWYgKCFhbGxvd19mYXN0X2ZvcndhcmQgJiYgZmFzdF9mb3J3YXJkX29ubHkpCi0JCWRpZShfKCJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iKSk7Ci0KIAlpZiAoIWFib3J0X2N1cnJlbnRfbWVyZ2UpIHsKIAkJaWYgKCFhcmdjKSB7CiAJCQlpZiAoZGVmYXVsdF90b191cHN0cmVhbSkKQEAgLTEyMDUsNyArMTIxNyw3IEBACiAJCQkJImVtcHR5IGhlYWQiKSk7CiAJCWlmIChzcXVhc2gpCiAJCQlkaWUoXygiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiKSk7Ci0JCWlmICghYWxsb3dfZmFzdF9mb3J3YXJkKQorCQlpZiAoZmFzdF9mb3J3YXJkID09IEZGX05PKQogCQkJZGllKF8oIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byAiCiAJCQkgICAgImFuIGVtcHR5IGhlYWQiKSk7CiAJCXJlbW90ZWhlYWRzID0gY29sbGVjdF9wYXJlbnRzKGhlYWRfY29tbWl0LCAmaGVhZF9zdWJzdW1lZCwgYXJnYywgYXJndik7CkBAIC0xMjkzLDExICsxMzA1LDExIEBACiAJCQkgICAgc2hhMV90b19oZXgoY29tbWl0LT5vYmplY3Quc2hhMSkpOwogCQlzZXRlbnYoYnVmLmJ1ZiwgbWVyZ2VfcmVtb3RlX3V0aWwoY29tbWl0KS0+bmFtZSwgMSk7CiAJCXN0cmJ1Zl9yZXNldCgmYnVmKTsKLQkJaWYgKCFmYXN0X2ZvcndhcmRfb25seSAmJgorCQlpZiAoZmFzdF9mb3J3YXJkICE9IEZGX09OTFkgJiYKIAkJICAgIG1lcmdlX3JlbW90ZV91dGlsKGNvbW1pdCkgJiYKIAkJICAgIG1lcmdlX3JlbW90ZV91dGlsKGNvbW1pdCktPm9iaiAmJgogCQkgICAgbWVyZ2VfcmVtb3RlX3V0aWwoY29tbWl0KS0+b2JqLT50eXBlID09IE9CSl9UQUcpCi0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSAwOworCQkJZmFzdF9mb3J3YXJkID0gRkZfTk87CiAJfQogCiAJaWYgKG9wdGlvbl9lZGl0IDwgMCkKQEAgLTEzMTQsNyArMTMyNiw3IEBACiAKIAlmb3IgKGkgPSAwOyBpIDwgdXNlX3N0cmF0ZWdpZXNfbnI7IGkrKykgewogCQlpZiAodXNlX3N0cmF0ZWdpZXNbaV0tPmF0dHIgJiBOT19GQVNUX0ZPUldBUkQpCi0JCQlhbGxvd19mYXN0X2ZvcndhcmQgPSAwOworCQkJZmFzdF9mb3J3YXJkID0gRkZfTk87CiAJCWlmICh1c2Vfc3RyYXRlZ2llc1tpXS0+YXR0ciAmIE5PX1RSSVZJQUwpCiAJCQlhbGxvd190cml2aWFsID0gMDsKIAl9CkBAIC0xMzQ0LDcgKzEzNTYsNyBAQAogCQkgKi8KIAkJZmluaXNoX3VwX3RvX2RhdGUoIkFscmVhZHkgdXAtdG8tZGF0ZS4iKTsKIAkJZ290byBkb25lOwotCX0gZWxzZSBpZiAoYWxsb3dfZmFzdF9mb3J3YXJkICYmICFyZW1vdGVoZWFkcy0+bmV4dCAmJgorCX0gZWxzZSBpZiAoZmFzdF9mb3J3YXJkICE9IEZGX05PICYmICFyZW1vdGVoZWFkcy0+bmV4dCAmJgogCQkJIWNvbW1vbi0+bmV4dCAmJgogCQkJIWhhc2hjbXAoY29tbW9uLT5pdGVtLT5vYmplY3Quc2hhMSwgaGVhZF9jb21taXQtPm9iamVjdC5zaGExKSkgewogCQkvKiBBZ2FpbiB0aGUgbW9zdCBjb21tb24gY2FzZSBvZiBtZXJnaW5nIG9uZSByZW1vdGUuICovCkBAIC0xMzkxLDcgKzE0MDMsNyBAQAogCQkgKiBvbmx5IG9uZSBjb21tb24uCiAJCSAqLwogCQlyZWZyZXNoX2NhY2hlKFJFRlJFU0hfUVVJRVQpOwotCQlpZiAoYWxsb3dfdHJpdmlhbCAmJiAhZmFzdF9mb3J3YXJkX29ubHkpIHsKKwkJaWYgKGFsbG93X3RyaXZpYWwgJiYgZmFzdF9mb3J3YXJkICE9IEZGX09OTFkpIHsKIAkJCS8qIFNlZSBpZiBpdCBpcyByZWFsbHkgdHJpdmlhbC4gKi8KIAkJCWdpdF9jb21taXR0ZXJfaW5mbyhJREVOVF9TVFJJQ1QpOwogCQkJcHJpbnRmKF8oIlRyeWluZyByZWFsbHkgdHJpdmlhbCBpbi1pbmRleCBtZXJnZS4uLlxuIikpOwpAQCAtMTQzMiw3ICsxNDQ0LDcgQEAKIAkJfQogCX0KIAotCWlmIChmYXN0X2ZvcndhcmRfb25seSkKKwlpZiAoZmFzdF9mb3J3YXJkID09IEZGX09OTFkpCiAJCWRpZShfKCJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iKSk7CiAKIAkvKiBXZSBhcmUgZ29pbmcgdG8gbWFrZSBhIG5ldyBjb21taXQuICovCmRpZmYgLS1naXQgYS9idWlsdGluL25hbWUtcmV2LmMgYi9idWlsdGluL25hbWUtcmV2LmMKaW5kZXggNjIzODI0Ny4uMGFhYTE5ZSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9uYW1lLXJldi5jCisrKyBiL2J1aWx0aW4vbmFtZS1yZXYuYwpAQCAtNCw2ICs0LDcgQEAKICNpbmNsdWRlICJ0YWcuaCIKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgorI2luY2x1ZGUgInNoYTEtbG9va3VwLmgiCiAKICNkZWZpbmUgQ1VUT0ZGX0RBVEVfU0xPUCA4NjQwMCAvKiBvbmUgZGF5ICovCiAKQEAgLTgyLDIzICs4Myw4OCBAQAogCX0KIH0KIAorc3RhdGljIGludCBzdWJwYXRoX21hdGNoZXMoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqZmlsdGVyKQoreworCWNvbnN0IGNoYXIgKnN1YnBhdGggPSBwYXRoOworCisJd2hpbGUgKHN1YnBhdGgpIHsKKwkJaWYgKCFmbm1hdGNoKGZpbHRlciwgc3VicGF0aCwgMCkpCisJCQlyZXR1cm4gc3VicGF0aCAtIHBhdGg7CisJCXN1YnBhdGggPSBzdHJjaHIoc3VicGF0aCwgJy8nKTsKKwkJaWYgKHN1YnBhdGgpCisJCQlzdWJwYXRoKys7CisJfQorCXJldHVybiAtMTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVfcmVmX2FiYnJldihjb25zdCBjaGFyICpyZWZuYW1lLCBpbnQgc2hvcnRlbl91bmFtYmlndW91cykKK3sKKwlpZiAoc2hvcnRlbl91bmFtYmlndW91cykKKwkJcmVmbmFtZSA9IHNob3J0ZW5fdW5hbWJpZ3VvdXNfcmVmKHJlZm5hbWUsIDApOworCWVsc2UgaWYgKCFwcmVmaXhjbXAocmVmbmFtZSwgInJlZnMvaGVhZHMvIikpCisJCXJlZm5hbWUgPSByZWZuYW1lICsgMTE7CisJZWxzZSBpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy8iKSkKKwkJcmVmbmFtZSA9IHJlZm5hbWUgKyA1OworCXJldHVybiByZWZuYW1lOworfQorCiBzdHJ1Y3QgbmFtZV9yZWZfZGF0YSB7CiAJaW50IHRhZ3Nfb25seTsKIAlpbnQgbmFtZV9vbmx5OwogCWNvbnN0IGNoYXIgKnJlZl9maWx0ZXI7CiB9OwogCitzdGF0aWMgc3RydWN0IHRpcF90YWJsZSB7CisJc3RydWN0IHRpcF90YWJsZV9lbnRyeSB7CisJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisJCWNvbnN0IGNoYXIgKnJlZm5hbWU7CisJfSAqdGFibGU7CisJaW50IG5yOworCWludCBhbGxvYzsKKwlpbnQgc29ydGVkOworfSB0aXBfdGFibGU7CisKK3N0YXRpYyB2b2lkIGFkZF90b190aXBfdGFibGUoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgY29uc3QgY2hhciAqcmVmbmFtZSwKKwkJCSAgICAgaW50IHNob3J0ZW5fdW5hbWJpZ3VvdXMpCit7CisJcmVmbmFtZSA9IG5hbWVfcmVmX2FiYnJldihyZWZuYW1lLCBzaG9ydGVuX3VuYW1iaWd1b3VzKTsKKworCUFMTE9DX0dST1codGlwX3RhYmxlLnRhYmxlLCB0aXBfdGFibGUubnIgKyAxLCB0aXBfdGFibGUuYWxsb2MpOworCWhhc2hjcHkodGlwX3RhYmxlLnRhYmxlW3RpcF90YWJsZS5ucl0uc2hhMSwgc2hhMSk7CisJdGlwX3RhYmxlLnRhYmxlW3RpcF90YWJsZS5ucl0ucmVmbmFtZSA9IHhzdHJkdXAocmVmbmFtZSk7CisJdGlwX3RhYmxlLm5yKys7CisJdGlwX3RhYmxlLnNvcnRlZCA9IDA7Cit9CisKK3N0YXRpYyBpbnQgdGlwY21wKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXykKK3sKKwljb25zdCBzdHJ1Y3QgdGlwX3RhYmxlX2VudHJ5ICphID0gYV8sICpiID0gYl87CisJcmV0dXJuIGhhc2hjbXAoYS0+c2hhMSwgYi0+c2hhMSk7Cit9CisKIHN0YXRpYyBpbnQgbmFtZV9yZWYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQogewogCXN0cnVjdCBvYmplY3QgKm8gPSBwYXJzZV9vYmplY3Qoc2hhMSk7CiAJc3RydWN0IG5hbWVfcmVmX2RhdGEgKmRhdGEgPSBjYl9kYXRhOworCWludCBjYW5fYWJicmV2aWF0ZV9vdXRwdXQgPSBkYXRhLT50YWdzX29ubHkgJiYgZGF0YS0+bmFtZV9vbmx5OwogCWludCBkZXJlZiA9IDA7CiAKIAlpZiAoZGF0YS0+dGFnc19vbmx5ICYmIHByZWZpeGNtcChwYXRoLCAicmVmcy90YWdzLyIpKQogCQlyZXR1cm4gMDsKIAotCWlmIChkYXRhLT5yZWZfZmlsdGVyICYmIGZubWF0Y2goZGF0YS0+cmVmX2ZpbHRlciwgcGF0aCwgMCkpCi0JCXJldHVybiAwOworCWlmIChkYXRhLT5yZWZfZmlsdGVyKSB7CisJCXN3aXRjaCAoc3VicGF0aF9tYXRjaGVzKHBhdGgsIGRhdGEtPnJlZl9maWx0ZXIpKSB7CisJCWNhc2UgLTE6IC8qIGRpZCBub3QgbWF0Y2ggKi8KKwkJCXJldHVybiAwOworCQljYXNlIDA6ICAvKiBtYXRjaGVkIGZ1bGx5ICovCisJCQlicmVhazsKKwkJZGVmYXVsdDogLyogbWF0Y2hlZCBzdWJwYXRoICovCisJCQljYW5fYWJicmV2aWF0ZV9vdXRwdXQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlhZGRfdG9fdGlwX3RhYmxlKHNoYTEsIHBhdGgsIGNhbl9hYmJyZXZpYXRlX291dHB1dCk7CiAKIAl3aGlsZSAobyAmJiBvLT50eXBlID09IE9CSl9UQUcpIHsKIAkJc3RydWN0IHRhZyAqdCA9IChzdHJ1Y3QgdGFnICopIG87CkBAIC0xMTAsMjAgKzE3NiwzOCBAQAogCWlmIChvICYmIG8tPnR5cGUgPT0gT0JKX0NPTU1JVCkgewogCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSAoc3RydWN0IGNvbW1pdCAqKW87CiAKLQkJaWYgKCFwcmVmaXhjbXAocGF0aCwgInJlZnMvaGVhZHMvIikpCi0JCQlwYXRoID0gcGF0aCArIDExOwotCQllbHNlIGlmIChkYXRhLT50YWdzX29ubHkKLQkJICAgICYmIGRhdGEtPm5hbWVfb25seQotCQkgICAgJiYgIXByZWZpeGNtcChwYXRoLCAicmVmcy90YWdzLyIpKQotCQkJcGF0aCA9IHBhdGggKyAxMDsKLQkJZWxzZSBpZiAoIXByZWZpeGNtcChwYXRoLCAicmVmcy8iKSkKLQkJCXBhdGggPSBwYXRoICsgNTsKLQorCQlwYXRoID0gbmFtZV9yZWZfYWJicmV2KHBhdGgsIGNhbl9hYmJyZXZpYXRlX291dHB1dCk7CiAJCW5hbWVfcmV2KGNvbW1pdCwgeHN0cmR1cChwYXRoKSwgMCwgMCwgZGVyZWYpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm50aF90aXBfdGFibGVfZW50KHNpemVfdCBpeCwgdm9pZCAqdGFibGVfKQoreworCXN0cnVjdCB0aXBfdGFibGVfZW50cnkgKnRhYmxlID0gdGFibGVfOworCXJldHVybiB0YWJsZVtpeF0uc2hhMTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmdldF9leGFjdF9yZWZfbWF0Y2goY29uc3Qgc3RydWN0IG9iamVjdCAqbykKK3sKKwlpbnQgZm91bmQ7CisKKwlpZiAoIXRpcF90YWJsZS50YWJsZSB8fCAhdGlwX3RhYmxlLm5yKQorCQlyZXR1cm4gTlVMTDsKKworCWlmICghdGlwX3RhYmxlLnNvcnRlZCkgeworCQlxc29ydCh0aXBfdGFibGUudGFibGUsIHRpcF90YWJsZS5uciwgc2l6ZW9mKCp0aXBfdGFibGUudGFibGUpLAorCQkgICAgICB0aXBjbXApOworCQl0aXBfdGFibGUuc29ydGVkID0gMTsKKwl9CisKKwlmb3VuZCA9IHNoYTFfcG9zKG8tPnNoYTEsIHRpcF90YWJsZS50YWJsZSwgdGlwX3RhYmxlLm5yLAorCQkJIG50aF90aXBfdGFibGVfZW50KTsKKwlpZiAoMCA8PSBmb3VuZCkKKwkJcmV0dXJuIHRpcF90YWJsZS50YWJsZVtmb3VuZF0ucmVmbmFtZTsKKwlyZXR1cm4gTlVMTDsKK30KKwogLyogcmV0dXJucyBhIHN0YXRpYyBidWZmZXIgKi8KIHN0YXRpYyBjb25zdCBjaGFyICpnZXRfcmV2X25hbWUoY29uc3Qgc3RydWN0IG9iamVjdCAqbykKIHsKQEAgLTEzMiw3ICsyMTYsNyBAQAogCXN0cnVjdCBjb21taXQgKmM7CiAKIAlpZiAoby0+dHlwZSAhPSBPQkpfQ09NTUlUKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIGdldF9leGFjdF9yZWZfbWF0Y2gobyk7CiAJYyA9IChzdHJ1Y3QgY29tbWl0ICopIG87CiAJbiA9IGMtPnV0aWw7CiAJaWYgKCFuKQpAQCAtMjIzLDcgKzMwNyw3IEBACiBpbnQgY21kX25hbWVfcmV2KGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqcHJlZml4KQogewogCXN0cnVjdCBvYmplY3RfYXJyYXkgcmV2cyA9IE9CSkVDVF9BUlJBWV9JTklUOwotCWludCBhbGwgPSAwLCB0cmFuc2Zvcm1fc3RkaW4gPSAwLCBhbGxvd191bmRlZmluZWQgPSAxLCBhbHdheXMgPSAwOworCWludCBhbGwgPSAwLCB0cmFuc2Zvcm1fc3RkaW4gPSAwLCBhbGxvd191bmRlZmluZWQgPSAxLCBhbHdheXMgPSAwLCBwZWVsX3RhZyA9IDA7CiAJc3RydWN0IG5hbWVfcmVmX2RhdGEgZGF0YSA9IHsgMCwgMCwgTlVMTCB9OwogCXN0cnVjdCBvcHRpb24gb3B0c1tdID0gewogCQlPUFRfQk9PTEVBTigwLCAibmFtZS1vbmx5IiwgJmRhdGEubmFtZV9vbmx5LCBOXygicHJpbnQgb25seSBuYW1lcyAobm8gU0hBLTEpIikpLApAQCAtMjM2LDYgKzMyMCwxMiBAQAogCQlPUFRfQk9PTEVBTigwLCAidW5kZWZpbmVkIiwgJmFsbG93X3VuZGVmaW5lZCwgTl8oImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIikpLAogCQlPUFRfQk9PTEVBTigwLCAiYWx3YXlzIiwgICAgICZhbHdheXMsCiAJCQkgICBOXygic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIikpLAorCQl7CisJCQkvKiBBIEhpZGRlbiBPUFRfQk9PTCAqLworCQkJT1BUSU9OX1NFVF9JTlQsIDAsICJwZWVsLXRhZyIsICZwZWVsX3RhZywgTlVMTCwKKwkJCU5fKCJkZXJlZmVyZW5jZSB0YWdzIGluIHRoZSBpbnB1dCAoaW50ZXJuYWwgdXNlKSIpLAorCQkJUEFSU0VfT1BUX05PQVJHIHwgUEFSU0VfT1BUX0hJRERFTiwgTlVMTCwgMSwKKwkJfSwKIAkJT1BUX0VORCgpLAogCX07CiAKQEAgLTI1MCw3ICszNDAsNyBAQAogCiAJZm9yICg7IGFyZ2M7IGFyZ2MtLSwgYXJndisrKSB7CiAJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07Ci0JCXN0cnVjdCBvYmplY3QgKm87CisJCXN0cnVjdCBvYmplY3QgKm9iamVjdDsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0OwogCiAJCWlmIChnZXRfc2hhMSgqYXJndiwgc2hhMSkpIHsKQEAgLTI1OSwxNyArMzQ5LDM0IEBACiAJCQljb250aW51ZTsKIAkJfQogCi0JCW8gPSBkZXJlZl90YWcocGFyc2Vfb2JqZWN0KHNoYTEpLCAqYXJndiwgMCk7Ci0JCWlmICghbyB8fCBvLT50eXBlICE9IE9CSl9DT01NSVQpIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdldCBjb21taXQgZm9yICVzLiBTa2lwcGluZy5cbiIsCisJCWNvbW1pdCA9IE5VTEw7CisJCW9iamVjdCA9IHBhcnNlX29iamVjdChzaGExKTsKKwkJaWYgKG9iamVjdCkgeworCQkJc3RydWN0IG9iamVjdCAqcGVlbGVkID0gZGVyZWZfdGFnKG9iamVjdCwgKmFyZ3YsIDApOworCQkJaWYgKHBlZWxlZCAmJiBwZWVsZWQtPnR5cGUgPT0gT0JKX0NPTU1JVCkKKwkJCQljb21taXQgPSAoc3RydWN0IGNvbW1pdCAqKXBlZWxlZDsKKwkJfQorCisJCWlmICghb2JqZWN0KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBnZXQgb2JqZWN0IGZvciAlcy4gU2tpcHBpbmcuXG4iLAogCQkJCQkqYXJndik7CiAJCQljb250aW51ZTsKIAkJfQogCi0JCWNvbW1pdCA9IChzdHJ1Y3QgY29tbWl0ICopbzsKLQkJaWYgKGN1dG9mZiA+IGNvbW1pdC0+ZGF0ZSkKLQkJCWN1dG9mZiA9IGNvbW1pdC0+ZGF0ZTsKLQkJYWRkX29iamVjdF9hcnJheSgoc3RydWN0IG9iamVjdCAqKWNvbW1pdCwgKmFyZ3YsICZyZXZzKTsKKwkJaWYgKGNvbW1pdCkgeworCQkJaWYgKGN1dG9mZiA+IGNvbW1pdC0+ZGF0ZSkKKwkJCQljdXRvZmYgPSBjb21taXQtPmRhdGU7CisJCX0KKworCQlpZiAocGVlbF90YWcpIHsKKwkJCWlmICghY29tbWl0KSB7CisJCQkJZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgZ2V0IGNvbW1pdCBmb3IgJXMuIFNraXBwaW5nLlxuIiwKKwkJCQkJKmFyZ3YpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJb2JqZWN0ID0gKHN0cnVjdCBvYmplY3QgKiljb21taXQ7CisJCX0KKwkJYWRkX29iamVjdF9hcnJheShvYmplY3QsICphcmd2LCAmcmV2cyk7CiAJfQogCiAJaWYgKGN1dG9mZikKZGlmZiAtLWdpdCBhL2J1aWx0aW4vbm90ZXMuYyBiL2J1aWx0aW4vbm90ZXMuYwppbmRleCA1Nzc0OGE2Li5lNDEwMGM0IDEwMDY0NAotLS0gYS9idWlsdGluL25vdGVzLmMKKysrIGIvYnVpbHRpbi9ub3Rlcy5jCkBAIC00LDcgKzQsNyBAQAogICogQ29weXJpZ2h0IChjKSAyMDEwIEpvaGFuIEhlcmxhbmQgPGpvaGFuQGhlcmxhbmQubmV0PgogICoKICAqIEJhc2VkIG9uIGdpdC1ub3Rlcy5zaCBieSBKb2hhbm5lcyBTY2hpbmRlbGluLAotICogYW5kIGJ1aWx0aW4tdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIGFuZCBDYXJsb3MgUmljYS4KKyAqIGFuZCBidWlsdGluL3RhZy5jIGJ5IEtyaXN0aWFuIEjDuGdzYmVyZyBhbmQgQ2FybG9zIFJpY2EuCiAgKi8KIAogI2luY2x1ZGUgImNhY2hlLmgiCkBAIC0xOCw5ICsxOCw3IEBACiAjaW5jbHVkZSAicGFyc2Utb3B0aW9ucy5oIgogI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAjaW5jbHVkZSAibm90ZXMtbWVyZ2UuaCIKLQotc3RhdGljIHZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpOwotc3RhdGljIGNvbWJpbmVfbm90ZXNfZm4gcGFyc2VfY29tYmluZV9ub3Rlc19mbihjb25zdCBjaGFyICp2KTsKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGdpdF9ub3Rlc191c2FnZVtdID0gewogCU5fKCJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPG9iamVjdD5dXSIpLApAQCAtMjg3LDEzOSArMjg1LDEzIEBACiAJcmV0dXJuIHBhcnNlX3JldXNlX2FyZyhvcHQsIGFyZywgdW5zZXQpOwogfQogCi1zdGF0aWMgdm9pZCBjb21taXRfbm90ZXMoc3RydWN0IG5vdGVzX3RyZWUgKnQsIGNvbnN0IGNoYXIgKm1zZykKLXsKLQlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwotCXVuc2lnbmVkIGNoYXIgY29tbWl0X3NoYTFbMjBdOwotCi0JaWYgKCF0KQotCQl0ID0gJmRlZmF1bHRfbm90ZXNfdHJlZTsKLQlpZiAoIXQtPmluaXRpYWxpemVkIHx8ICF0LT5yZWYgfHwgISp0LT5yZWYpCi0JCWRpZShfKCJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiKSk7Ci0JaWYgKCF0LT5kaXJ0eSkKLQkJcmV0dXJuOyAvKiBkb24ndCBoYXZlIHRvIGNvbW1pdCBhbiB1bmNoYW5nZWQgdHJlZSAqLwotCi0JLyogUHJlcGFyZSBjb21taXQgbWVzc2FnZSBhbmQgcmVmbG9nIG1lc3NhZ2UgKi8KLQlzdHJidWZfYWRkc3RyKCZidWYsIG1zZyk7Ci0JaWYgKGJ1Zi5idWZbYnVmLmxlbiAtIDFdICE9ICdcbicpCi0JCXN0cmJ1Zl9hZGRjaCgmYnVmLCAnXG4nKTsgLyogTWFrZSBzdXJlIG1zZyBlbmRzIHdpdGggbmV3bGluZSAqLwotCi0JY3JlYXRlX25vdGVzX2NvbW1pdCh0LCBOVUxMLCAmYnVmLCBjb21taXRfc2hhMSk7Ci0Jc3RyYnVmX2luc2VydCgmYnVmLCAwLCAibm90ZXM6ICIsIDcpOyAvKiBjb21taXQgbWVzc2FnZSBzdGFydHMgYXQgaW5kZXggNyAqLwotCXVwZGF0ZV9yZWYoYnVmLmJ1ZiwgdC0+cmVmLCBjb21taXRfc2hhMSwgTlVMTCwgMCwgRElFX09OX0VSUik7Ci0KLQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKLX0KLQotc3RhdGljIGNvbWJpbmVfbm90ZXNfZm4gcGFyc2VfY29tYmluZV9ub3Rlc19mbihjb25zdCBjaGFyICp2KQotewotCWlmICghc3RyY2FzZWNtcCh2LCAib3ZlcndyaXRlIikpCi0JCXJldHVybiBjb21iaW5lX25vdGVzX292ZXJ3cml0ZTsKLQllbHNlIGlmICghc3RyY2FzZWNtcCh2LCAiaWdub3JlIikpCi0JCXJldHVybiBjb21iaW5lX25vdGVzX2lnbm9yZTsKLQllbHNlIGlmICghc3RyY2FzZWNtcCh2LCAiY29uY2F0ZW5hdGUiKSkKLQkJcmV0dXJuIGNvbWJpbmVfbm90ZXNfY29uY2F0ZW5hdGU7Ci0JZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImNhdF9zb3J0X3VuaXEiKSkKLQkJcmV0dXJuIGNvbWJpbmVfbm90ZXNfY2F0X3NvcnRfdW5pcTsKLQllbHNlCi0JCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgaW50IG5vdGVzX3Jld3JpdGVfY29uZmlnKGNvbnN0IGNoYXIgKmssIGNvbnN0IGNoYXIgKnYsIHZvaWQgKmNiKQotewotCXN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYyA9IGNiOwotCWlmICghcHJlZml4Y21wKGssICJub3Rlcy5yZXdyaXRlLiIpICYmICFzdHJjbXAoaysxNCwgYy0+Y21kKSkgewotCQljLT5lbmFibGVkID0gZ2l0X2NvbmZpZ19ib29sKGssIHYpOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKCFjLT5tb2RlX2Zyb21fZW52ICYmICFzdHJjbXAoaywgIm5vdGVzLnJld3JpdGVtb2RlIikpIHsKLQkJaWYgKCF2KQotCQkJY29uZmlnX2Vycm9yX25vbmJvb2woayk7Ci0JCWMtPmNvbWJpbmUgPSBwYXJzZV9jb21iaW5lX25vdGVzX2ZuKHYpOwotCQlpZiAoIWMtPmNvbWJpbmUpIHsKLQkJCWVycm9yKF8oIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIpLCB2KTsKLQkJCXJldHVybiAxOwotCQl9Ci0JCXJldHVybiAwOwotCX0gZWxzZSBpZiAoIWMtPnJlZnNfZnJvbV9lbnYgJiYgIXN0cmNtcChrLCAibm90ZXMucmV3cml0ZXJlZiIpKSB7Ci0JCS8qIG5vdGUgdGhhdCBhIHJlZnMvIHByZWZpeCBpcyBpbXBsaWVkIGluIHRoZQotCQkgKiB1bmRlcmx5aW5nIGZvcl9lYWNoX2dsb2JfcmVmICovCi0JCWlmICghcHJlZml4Y21wKHYsICJyZWZzL25vdGVzLyIpKQotCQkJc3RyaW5nX2xpc3RfYWRkX3JlZnNfYnlfZ2xvYihjLT5yZWZzLCB2KTsKLQkJZWxzZQotCQkJd2FybmluZyhfKCJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIgotCQkJCSIgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIiksIHYpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotCi1zdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjb25zdCBjaGFyICpjbWQpCi17Ci0Jc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICpjID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnKSk7Ci0JY29uc3QgY2hhciAqcmV3cml0ZV9tb2RlX2VudiA9IGdldGVudihHSVRfTk9URVNfUkVXUklURV9NT0RFX0VOVklST05NRU5UKTsKLQljb25zdCBjaGFyICpyZXdyaXRlX3JlZnNfZW52ID0gZ2V0ZW52KEdJVF9OT1RFU19SRVdSSVRFX1JFRl9FTlZJUk9OTUVOVCk7Ci0JYy0+Y21kID0gY21kOwotCWMtPmVuYWJsZWQgPSAxOwotCWMtPmNvbWJpbmUgPSBjb21iaW5lX25vdGVzX2NvbmNhdGVuYXRlOwotCWMtPnJlZnMgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3Qgc3RyaW5nX2xpc3QpKTsKLQljLT5yZWZzLT5zdHJkdXBfc3RyaW5ncyA9IDE7Ci0JYy0+cmVmc19mcm9tX2VudiA9IDA7Ci0JYy0+bW9kZV9mcm9tX2VudiA9IDA7Ci0JaWYgKHJld3JpdGVfbW9kZV9lbnYpIHsKLQkJYy0+bW9kZV9mcm9tX2VudiA9IDE7Ci0JCWMtPmNvbWJpbmUgPSBwYXJzZV9jb21iaW5lX25vdGVzX2ZuKHJld3JpdGVfbW9kZV9lbnYpOwotCQlpZiAoIWMtPmNvbWJpbmUpCi0JCQkvKiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQotCQkJICAgZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlICovCi0JCQllcnJvcihfKCJCYWQgJXMgdmFsdWU6ICclcyciKSwgR0lUX05PVEVTX1JFV1JJVEVfTU9ERV9FTlZJUk9OTUVOVCwKLQkJCQkJcmV3cml0ZV9tb2RlX2Vudik7Ci0JfQotCWlmIChyZXdyaXRlX3JlZnNfZW52KSB7Ci0JCWMtPnJlZnNfZnJvbV9lbnYgPSAxOwotCQlzdHJpbmdfbGlzdF9hZGRfcmVmc19mcm9tX2NvbG9uX3NlcChjLT5yZWZzLCByZXdyaXRlX3JlZnNfZW52KTsKLQl9Ci0JZ2l0X2NvbmZpZyhub3Rlc19yZXdyaXRlX2NvbmZpZywgYyk7Ci0JaWYgKCFjLT5lbmFibGVkIHx8ICFjLT5yZWZzLT5ucikgewotCQlzdHJpbmdfbGlzdF9jbGVhcihjLT5yZWZzLCAwKTsKLQkJZnJlZShjLT5yZWZzKTsKLQkJZnJlZShjKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCWMtPnRyZWVzID0gbG9hZF9ub3Rlc190cmVlcyhjLT5yZWZzKTsKLQlzdHJpbmdfbGlzdF9jbGVhcihjLT5yZWZzLCAwKTsKLQlmcmVlKGMtPnJlZnMpOwotCXJldHVybiBjOwotfQotCi1pbnQgY29weV9ub3RlX2Zvcl9yZXdyaXRlKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYywKLQkJCSAgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbV9vYmosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRvX29iaikKLXsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKQotCQlyZXQgPSBjb3B5X25vdGUoYy0+dHJlZXNbaV0sIGZyb21fb2JqLCB0b19vYmosIDEsIGMtPmNvbWJpbmUpIHx8IHJldDsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIGZpbmlzaF9jb3B5X25vdGVzX2Zvcl9yZXdyaXRlKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYykKLXsKLQlpbnQgaTsKLQlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKSB7Ci0JCWNvbW1pdF9ub3RlcyhjLT50cmVlc1tpXSwgIk5vdGVzIGFkZGVkIGJ5ICdnaXQgbm90ZXMgY29weSciKTsKLQkJZnJlZV9ub3RlcyhjLT50cmVlc1tpXSk7Ci0JfQotCWZyZWUoYy0+dHJlZXMpOwotCWZyZWUoYyk7Ci19Ci0KIHN0YXRpYyBpbnQgbm90ZXNfY29weV9mcm9tX3N0ZGluKGludCBmb3JjZSwgY29uc3QgY2hhciAqcmV3cml0ZV9jbWQpCiB7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMgPSBOVUxMOwogCXN0cnVjdCBub3Rlc190cmVlICp0ID0gTlVMTDsKIAlpbnQgcmV0ID0gMDsKKwljb25zdCBjaGFyICptc2cgPSAiTm90ZXMgYWRkZWQgYnkgJ2dpdCBub3RlcyBjb3B5JyI7CiAKIAlpZiAocmV3cml0ZV9jbWQpIHsKIAkJYyA9IGluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShyZXdyaXRlX2NtZCk7CkBAIC00NjEsMTAgKzMzMywxMCBAQAogCX0KIAogCWlmICghcmV3cml0ZV9jbWQpIHsKLQkJY29tbWl0X25vdGVzKHQsICJOb3RlcyBhZGRlZCBieSAnZ2l0IG5vdGVzIGNvcHknIik7CisJCWNvbW1pdF9ub3Rlcyh0LCBtc2cpOwogCQlmcmVlX25vdGVzKHQpOwogCX0gZWxzZSB7Ci0JCWZpbmlzaF9jb3B5X25vdGVzX2Zvcl9yZXdyaXRlKGMpOworCQlmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjLCBtc2cpOwogCX0KIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wYWNrLXJlZnMuYyBiL2J1aWx0aW4vcGFjay1yZWZzLmMKaW5kZXggYjVhMGY4OC4uYjIwYjFlYyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wYWNrLXJlZnMuYworKysgYi9idWlsdGluL3BhY2stcmVmcy5jCkBAIC0xLDYgKzEsNiBAQAogI2luY2x1ZGUgImJ1aWx0aW4uaCIKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCi0jaW5jbHVkZSAicGFjay1yZWZzLmgiCisjaW5jbHVkZSAicmVmcy5oIgogCiBzdGF0aWMgY2hhciBjb25zdCAqIGNvbnN0IHBhY2tfcmVmc191c2FnZVtdID0gewogCU5fKCJnaXQgcGFjay1yZWZzIFtvcHRpb25zXSIpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wcnVuZS1wYWNrZWQuYyBiL2J1aWx0aW4vcHJ1bmUtcGFja2VkLmMKaW5kZXggODMzODJjMS4uZmE2Y2U0MiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wcnVuZS1wYWNrZWQuYworKysgYi9idWlsdGluL3BydW5lLXBhY2tlZC5jCkBAIC04LDkgKzgsNiBAQAogCU5VTEwKIH07CiAKLSNkZWZpbmUgRFJZX1JVTiAwMQotI2RlZmluZSBWRVJCT1NFIDAyCi0KIHN0YXRpYyBzdHJ1Y3QgcHJvZ3Jlc3MgKnByb2dyZXNzOwogCiBzdGF0aWMgdm9pZCBwcnVuZV9kaXIoaW50IGksIERJUiAqZGlyLCBjaGFyICpwYXRobmFtZSwgaW50IGxlbiwgaW50IG9wdHMpCkBAIC0yOSw3ICsyNiw3IEBACiAJCWlmICghaGFzX3NoYTFfcGFjayhzaGExKSkKIAkJCWNvbnRpbnVlOwogCQltZW1jcHkocGF0aG5hbWUgKyBsZW4sIGRlLT5kX25hbWUsIDM4KTsKLQkJaWYgKG9wdHMgJiBEUllfUlVOKQorCQlpZiAob3B0cyAmIFBSVU5FX1BBQ0tFRF9EUllfUlVOKQogCQkJcHJpbnRmKCJybSAtZiAlc1xuIiwgcGF0aG5hbWUpOwogCQllbHNlCiAJCQl1bmxpbmtfb3Jfd2FybihwYXRobmFtZSk7CkBAIC00NCw3ICs0MSw3IEBACiAJY29uc3QgY2hhciAqZGlyID0gZ2V0X29iamVjdF9kaXJlY3RvcnkoKTsKIAlpbnQgbGVuID0gc3RybGVuKGRpcik7CiAKLQlpZiAob3B0cyA9PSBWRVJCT1NFKQorCWlmIChvcHRzICYgUFJVTkVfUEFDS0VEX1ZFUkJPU0UpCiAJCXByb2dyZXNzID0gc3RhcnRfcHJvZ3Jlc3NfZGVsYXkoIlJlbW92aW5nIGR1cGxpY2F0ZSBvYmplY3RzIiwKIAkJCTI1NiwgOTUsIDIpOwogCkBAIC03MSwxMCArNjgsMTIgQEAKIAogaW50IGNtZF9wcnVuZV9wYWNrZWQoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7Ci0JaW50IG9wdHMgPSBpc2F0dHkoMikgPyBWRVJCT1NFIDogMDsKKwlpbnQgb3B0cyA9IGlzYXR0eSgyKSA/IFBSVU5FX1BBQ0tFRF9WRVJCT1NFIDogMDsKIAljb25zdCBzdHJ1Y3Qgb3B0aW9uIHBydW5lX3BhY2tlZF9vcHRpb25zW10gPSB7Ci0JCU9QVF9CSVQoJ24nLCAiZHJ5LXJ1biIsICZvcHRzLCBOXygiZHJ5IHJ1biIpLCBEUllfUlVOKSwKLQkJT1BUX05FR0JJVCgncScsICJxdWlldCIsICZvcHRzLCBOXygiYmUgcXVpZXQiKSwgVkVSQk9TRSksCisJCU9QVF9CSVQoJ24nLCAiZHJ5LXJ1biIsICZvcHRzLCBOXygiZHJ5IHJ1biIpLAorCQkJUFJVTkVfUEFDS0VEX0RSWV9SVU4pLAorCQlPUFRfTkVHQklUKCdxJywgInF1aWV0IiwgJm9wdHMsIE5fKCJiZSBxdWlldCIpLAorCQkJICAgUFJVTkVfUEFDS0VEX1ZFUkJPU0UpLAogCQlPUFRfRU5EKCkKIAl9OwogCmRpZmYgLS1naXQgYS9idWlsdGluL3BydW5lLmMgYi9idWlsdGluL3BydW5lLmMKaW5kZXggODU4NDNkNC4uNjM2NjkxNyAxMDA2NDQKLS0tIGEvYnVpbHRpbi9wcnVuZS5jCisrKyBiL2J1aWx0aW4vcHJ1bmUuYwpAQCAtMTMyLDggKzEzMiw4IEBACiAJCU9QVF9fRFJZX1JVTigmc2hvd19vbmx5LCBOXygiZG8gbm90IHJlbW92ZSwgc2hvdyBvbmx5IikpLAogCQlPUFRfX1ZFUkJPU0UoJnZlcmJvc2UsIE5fKCJyZXBvcnQgcHJ1bmVkIG9iamVjdHMiKSksCiAJCU9QVF9CT09MKDAsICJwcm9ncmVzcyIsICZzaG93X3Byb2dyZXNzLCBOXygic2hvdyBwcm9ncmVzcyIpKSwKLQkJT1BUX0RBVEUoMCwgImV4cGlyZSIsICZleHBpcmUsCi0JCQkgTl8oImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IikpLAorCQlPUFRfRVhQSVJZX0RBVEUoMCwgImV4cGlyZSIsICZleHBpcmUsCisJCQkJTl8oImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IikpLAogCQlPUFRfRU5EKCkKIAl9OwogCWNoYXIgKnM7CkBAIC0xNjUsNyArMTY1LDcgQEAKIAlzdG9wX3Byb2dyZXNzKCZwcm9ncmVzcyk7CiAJcHJ1bmVfb2JqZWN0X2RpcihnZXRfb2JqZWN0X2RpcmVjdG9yeSgpKTsKIAotCXBydW5lX3BhY2tlZF9vYmplY3RzKHNob3dfb25seSk7CisJcHJ1bmVfcGFja2VkX29iamVjdHMoc2hvd19vbmx5ID8gUFJVTkVfUEFDS0VEX0RSWV9SVU4gOiAwKTsKIAlyZW1vdmVfdGVtcG9yYXJ5X2ZpbGVzKGdldF9vYmplY3RfZGlyZWN0b3J5KCkpOwogCXMgPSBta3BhdGhkdXAoIiVzL3BhY2siLCBnZXRfb2JqZWN0X2RpcmVjdG9yeSgpKTsKIAlyZW1vdmVfdGVtcG9yYXJ5X2ZpbGVzKHMpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9wdXNoLmMgYi9idWlsdGluL3B1c2guYwppbmRleCA5MDljMzRkLi4wNGYwZWFmIDEwMDY0NAotLS0gYS9idWlsdGluL3B1c2guYworKysgYi9idWlsdGluL3B1c2guYwpAQCAtOTIsNyArOTIsNyBAQAogCWlmICghc2hvcnRfdXBzdHJlYW0pCiAJCXNob3J0X3Vwc3RyZWFtID0gYnJhbmNoLT5tZXJnZVswXS0+c3JjOwogCS8qCi0JICogRG9uJ3Qgc2hvdyBhZHZpY2UgZm9yIHBlb3BsZSB3aG8gZXhwbGljaXRlbHkgc2V0CisJICogRG9uJ3Qgc2hvdyBhZHZpY2UgZm9yIHBlb3BsZSB3aG8gZXhwbGljaXRseSBzZXQKIAkgKiBwdXNoLmRlZmF1bHQuCiAJICovCiAJaWYgKHB1c2hfZGVmYXVsdCA9PSBQVVNIX0RFRkFVTFRfVU5TUEVDSUZJRUQpCkBAIC0xMTMsMTcgKzExMywyMCBAQAogCSAgICByZW1vdGUtPm5hbWUsIGJyYW5jaC0+bmFtZSwgYWR2aWNlX21heWJlKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0dXBfcHVzaF91cHN0cmVhbShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIGludCBzaW1wbGUpCitzdGF0aWMgY29uc3QgY2hhciBtZXNzYWdlX2RldGFjaGVkX2hlYWRfZGllW10gPQorCU5fKCJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCisJICAgIlRvIHB1c2ggdGhlIGhpc3RvcnkgbGVhZGluZyB0byB0aGUgY3VycmVudCAoZGV0YWNoZWQgSEVBRClcbiIKKwkgICAic3RhdGUgbm93LCB1c2VcbiIKKwkgICAiXG4iCisJICAgIiAgICBnaXQgcHVzaCAlcyBIRUFEOjxuYW1lLW9mLXJlbW90ZS1icmFuY2g+XG4iKTsKKworc3RhdGljIHZvaWQgc2V0dXBfcHVzaF91cHN0cmVhbShzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIHN0cnVjdCBicmFuY2ggKmJyYW5jaCwKKwkJCQlpbnQgdHJpYW5ndWxhcikKIHsKIAlzdHJ1Y3Qgc3RyYnVmIHJlZnNwZWMgPSBTVFJCVUZfSU5JVDsKLQlzdHJ1Y3QgYnJhbmNoICpicmFuY2ggPSBicmFuY2hfZ2V0KE5VTEwpOworCiAJaWYgKCFicmFuY2gpCi0JCWRpZShfKCJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCi0JCSAgICAiVG8gcHVzaCB0aGUgaGlzdG9yeSBsZWFkaW5nIHRvIHRoZSBjdXJyZW50IChkZXRhY2hlZCBIRUFEKVxuIgotCQkgICAgInN0YXRlIG5vdywgdXNlXG4iCi0JCSAgICAiXG4iCi0JCSAgICAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIpLAotCQkgICAgcmVtb3RlLT5uYW1lKTsKKwkJZGllKF8obWVzc2FnZV9kZXRhY2hlZF9oZWFkX2RpZSksIHJlbW90ZS0+bmFtZSk7CiAJaWYgKCFicmFuY2gtPm1lcmdlX25yIHx8ICFicmFuY2gtPm1lcmdlIHx8ICFicmFuY2gtPnJlbW90ZV9uYW1lKQogCQlkaWUoXygiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCiAJCSAgICAiVG8gcHVzaCB0aGUgY3VycmVudCBicmFuY2ggYW5kIHNldCB0aGUgcmVtb3RlIGFzIHVwc3RyZWFtLCB1c2VcbiIKQEAgLTEzNSwxOCArMTM4LDI5IEBACiAJaWYgKGJyYW5jaC0+bWVyZ2VfbnIgIT0gMSkKIAkJZGllKF8oIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsICIKIAkJICAgICJyZWZ1c2luZyB0byBwdXNoLiIpLCBicmFuY2gtPm5hbWUpOwotCWlmIChzdHJjbXAoYnJhbmNoLT5yZW1vdGVfbmFtZSwgcmVtb3RlLT5uYW1lKSkKKwlpZiAodHJpYW5ndWxhcikKIAkJZGllKF8oIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgogCQkgICAgICAieW91ciBjdXJyZW50IGJyYW5jaCAnJXMnLCB3aXRob3V0IHRlbGxpbmcgbWUgd2hhdCB0byBwdXNoXG4iCiAJCSAgICAgICJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iKSwKIAkJICAgIHJlbW90ZS0+bmFtZSwgYnJhbmNoLT5uYW1lKTsKLQlpZiAoc2ltcGxlICYmIHN0cmNtcChicmFuY2gtPnJlZm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYykpCi0JCWRpZV9wdXNoX3NpbXBsZShicmFuY2gsIHJlbW90ZSk7CisKKwlpZiAocHVzaF9kZWZhdWx0ID09IFBVU0hfREVGQVVMVF9TSU1QTEUpIHsKKwkJLyogQWRkaXRpb25hbCBzYWZldHkgKi8KKwkJaWYgKHN0cmNtcChicmFuY2gtPnJlZm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYykpCisJCQlkaWVfcHVzaF9zaW1wbGUoYnJhbmNoLCByZW1vdGUpOworCX0KIAogCXN0cmJ1Zl9hZGRmKCZyZWZzcGVjLCAiJXM6JXMiLCBicmFuY2gtPm5hbWUsIGJyYW5jaC0+bWVyZ2VbMF0tPnNyYyk7CiAJYWRkX3JlZnNwZWMocmVmc3BlYy5idWYpOwogfQogCitzdGF0aWMgdm9pZCBzZXR1cF9wdXNoX2N1cnJlbnQoc3RydWN0IHJlbW90ZSAqcmVtb3RlLCBzdHJ1Y3QgYnJhbmNoICpicmFuY2gpCit7CisJaWYgKCFicmFuY2gpCisJCWRpZShfKG1lc3NhZ2VfZGV0YWNoZWRfaGVhZF9kaWUpLCByZW1vdGUtPm5hbWUpOworCWFkZF9yZWZzcGVjKGJyYW5jaC0+bmFtZSk7Cit9CisKIHN0YXRpYyBjaGFyIHdhcm5fdW5zcGVjaWZpZWRfcHVzaF9kZWZhdWx0X21zZ1tdID0KIE5fKCJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogICAgIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtMTcxLDggKzE4NSwxNyBAQAogCXdhcm5pbmcoIiVzXG4iLCBfKHdhcm5fdW5zcGVjaWZpZWRfcHVzaF9kZWZhdWx0X21zZykpOwogfQogCitzdGF0aWMgaW50IGlzX3dvcmtmbG93X3RyaWFuZ3VsYXIoc3RydWN0IHJlbW90ZSAqcmVtb3RlKQoreworCXN0cnVjdCByZW1vdGUgKmZldGNoX3JlbW90ZSA9IHJlbW90ZV9nZXQoTlVMTCk7CisJcmV0dXJuIChmZXRjaF9yZW1vdGUgJiYgZmV0Y2hfcmVtb3RlICE9IHJlbW90ZSk7Cit9CisKIHN0YXRpYyB2b2lkIHNldHVwX2RlZmF1bHRfcHVzaF9yZWZzcGVjcyhzdHJ1Y3QgcmVtb3RlICpyZW1vdGUpCiB7CisJc3RydWN0IGJyYW5jaCAqYnJhbmNoID0gYnJhbmNoX2dldChOVUxMKTsKKwlpbnQgdHJpYW5ndWxhciA9IGlzX3dvcmtmbG93X3RyaWFuZ3VsYXIocmVtb3RlKTsKKwogCXN3aXRjaCAocHVzaF9kZWZhdWx0KSB7CiAJZGVmYXVsdDoKIAljYXNlIFBVU0hfREVGQVVMVF9VTlNQRUNJRklFRDoKQEAgLTE4NCwxNSArMjA3LDE4IEBACiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfU0lNUExFOgotCQlzZXR1cF9wdXNoX3Vwc3RyZWFtKHJlbW90ZSwgMSk7CisJCWlmICh0cmlhbmd1bGFyKQorCQkJc2V0dXBfcHVzaF9jdXJyZW50KHJlbW90ZSwgYnJhbmNoKTsKKwkJZWxzZQorCQkJc2V0dXBfcHVzaF91cHN0cmVhbShyZW1vdGUsIGJyYW5jaCwgdHJpYW5ndWxhcik7CiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfVVBTVFJFQU06Ci0JCXNldHVwX3B1c2hfdXBzdHJlYW0ocmVtb3RlLCAwKTsKKwkJc2V0dXBfcHVzaF91cHN0cmVhbShyZW1vdGUsIGJyYW5jaCwgdHJpYW5ndWxhcik7CiAJCWJyZWFrOwogCiAJY2FzZSBQVVNIX0RFRkFVTFRfQ1VSUkVOVDoKLQkJYWRkX3JlZnNwZWMoIkhFQUQiKTsKKwkJc2V0dXBfcHVzaF9jdXJyZW50KHJlbW90ZSwgYnJhbmNoKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBVU0hfREVGQVVMVF9OT1RISU5HOgpAQCAtMjA0LDggKzIzMCw4IEBACiAKIHN0YXRpYyBjb25zdCBjaGFyIG1lc3NhZ2VfYWR2aWNlX3B1bGxfYmVmb3JlX3B1c2hbXSA9CiAJTl8oIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKLQkgICAiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpXG4iCi0JICAgImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorCSAgICJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBJbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuXG4iCisJICAgIidnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKIAkgICAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgbWVzc2FnZV9hZHZpY2VfdXNlX3Vwc3RyZWFtW10gPQpAQCAtMjE2LDE1ICsyNDIsMTUgQEAKIAogc3RhdGljIGNvbnN0IGNoYXIgbWVzc2FnZV9hZHZpY2VfY2hlY2tvdXRfcHVsbF9wdXNoW10gPQogCU5fKCJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCi0JICAgImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotCSAgICIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKwkgICAiY291bnRlcnBhcnQuIENoZWNrIG91dCB0aGlzIGJyYW5jaCBhbmQgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorCSAgICIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAJICAgIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIik7CiAKIHN0YXRpYyBjb25zdCBjaGFyIG1lc3NhZ2VfYWR2aWNlX3JlZl9mZXRjaF9maXJzdFtdID0KIAlOXygiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAJICAgIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKLQkgICAidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotCSAgICInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKwkgICAidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorCSAgICIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogCSAgICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciBtZXNzYWdlX2FkdmljZV9yZWZfYWxyZWFkeV9leGlzdHNbXSA9CmRpZmYgLS1naXQgYS9idWlsdGluL3JlYWQtdHJlZS5jIGIvYnVpbHRpbi9yZWFkLXRyZWUuYwppbmRleCAwNDJhYzFiLi4wZjVkN2ZlIDEwMDY0NAotLS0gYS9idWlsdGluL3JlYWQtdHJlZS5jCisrKyBiL2J1aWx0aW4vcmVhZC10cmVlLmMKQEAgLTY2LDcgKzY2LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgZGVidWdfc3RhZ2UoY29uc3QgY2hhciAqbGFiZWwsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgdm9pZCBkZWJ1Z19zdGFnZShjb25zdCBjaGFyICpsYWJlbCwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlwcmludGYoIiVzICIsIGxhYmVsKTsKQEAgLTgwLDcgKzgwLDggQEAKIAkJICAgICAgIHNoYTFfdG9faGV4KGNlLT5zaGExKSk7CiB9CiAKLXN0YXRpYyBpbnQgZGVidWdfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3RhZ2VzLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IGRlYnVnX21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzdGFnZXMsCisJCSAgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJaW50IGk7CiAKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVmbG9nLmMgYi9idWlsdGluL3JlZmxvZy5jCmluZGV4IDcyYTBhZjcuLjU0MTg0YjMgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmVmbG9nLmMKKysrIGIvYnVpbHRpbi9yZWZsb2cuYwpAQCAtNDk2LDExICs0OTYsOSBAQAogewogCWlmICghdmFsdWUpCiAJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOwotCWlmICghc3RyY21wKHZhbHVlLCAibmV2ZXIiKSB8fCAhc3RyY21wKHZhbHVlLCAiZmFsc2UiKSkgewotCQkqZXhwaXJlID0gMDsKLQkJcmV0dXJuIDA7Ci0JfQotCSpleHBpcmUgPSBhcHByb3hpZGF0ZSh2YWx1ZSk7CisJaWYgKHBhcnNlX2V4cGlyeV9kYXRlKHZhbHVlLCBleHBpcmUpKQorCQlyZXR1cm4gZXJyb3IoXygiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLAorCQkJICAgICB2YWx1ZSwgdmFyKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjE0LDExICs2MTIsMTMgQEAKIAkJaWYgKCFzdHJjbXAoYXJnLCAiLS1kcnktcnVuIikgfHwgIXN0cmNtcChhcmcsICItbiIpKQogCQkJY2IuZHJ5X3J1biA9IDE7CiAJCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1leHBpcmU9IikpIHsKLQkJCWNiLmV4cGlyZV90b3RhbCA9IGFwcHJveGlkYXRlKGFyZyArIDkpOworCQkJaWYgKHBhcnNlX2V4cGlyeV9kYXRlKGFyZyArIDksICZjYi5leHBpcmVfdG90YWwpKQorCQkJCWRpZShfKCInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLCBhcmcpOwogCQkJZXhwbGljaXRfZXhwaXJ5IHw9IEVYUElSRV9UT1RBTDsKIAkJfQogCQllbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tZXhwaXJlLXVucmVhY2hhYmxlPSIpKSB7Ci0JCQljYi5leHBpcmVfdW5yZWFjaGFibGUgPSBhcHByb3hpZGF0ZShhcmcgKyAyMSk7CisJCQlpZiAocGFyc2VfZXhwaXJ5X2RhdGUoYXJnICsgMjEsICZjYi5leHBpcmVfdW5yZWFjaGFibGUpKQorCQkJCWRpZShfKCInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIpLCBhcmcpOwogCQkJZXhwbGljaXRfZXhwaXJ5IHw9IEVYUElSRV9VTlJFQUNIOwogCQl9CiAJCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1zdGFsZS1maXgiKSkKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmVwbGFjZS5jIGIvYnVpbHRpbi9yZXBsYWNlLmMKaW5kZXggMzk4Y2NkNS4uNTlkMzExNSAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXBsYWNlLmMKKysrIGIvYnVpbHRpbi9yZXBsYWNlLmMKQEAgLTMsNyArMyw3IEBACiAgKgogICogQ29weXJpZ2h0IChjKSAyMDA4IENocmlzdGlhbiBDb3VkZXIgPGNocmlzY29vbEB0dXhmYW1pbHkub3JnPgogICoKLSAqIEJhc2VkIG9uIGJ1aWx0aW4tdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIDxrcmhAcmVkaGF0LmNvbT4KKyAqIEJhc2VkIG9uIGJ1aWx0aW4vdGFnLmMgYnkgS3Jpc3RpYW4gSMO4Z3NiZXJnIDxrcmhAcmVkaGF0LmNvbT4KICAqIGFuZCBDYXJsb3MgUmljYSA8amFzYW1wbGVyQGdtYWlsLmNvbT4gdGhhdCB3YXMgaXRzZWxmIGJhc2VkIG9uCiAgKiBnaXQtdGFnLnNoIGFuZCBta3RhZy5jIGJ5IExpbnVzIFRvcnZhbGRzLgogICovCmRpZmYgLS1naXQgYS9idWlsdGluL3Jlc2V0LmMgYi9idWlsdGluL3Jlc2V0LmMKaW5kZXggNjAzMjEzMS4uYWZhNmUwMiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXNldC5jCisrKyBiL2J1aWx0aW4vcmVzZXQuYwpAQCAtOTMsMTAgKzkzLDEyIEBACiBzdGF0aWMgdm9pZCBwcmludF9uZXdfaGVhZF9saW5lKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKIHsKIAljb25zdCBjaGFyICpoZXgsICpib2R5OworCWNoYXIgKm1zZzsKIAogCWhleCA9IGZpbmRfdW5pcXVlX2FiYnJldihjb21taXQtPm9iamVjdC5zaGExLCBERUZBVUxUX0FCQlJFVik7CiAJcHJpbnRmKF8oIkhFQUQgaXMgbm93IGF0ICVzIiksIGhleCk7Ci0JYm9keSA9IHN0cnN0cihjb21taXQtPmJ1ZmZlciwgIlxuXG4iKTsKKwltc2cgPSBsb2dtc2dfcmVlbmNvZGUoY29tbWl0LCBOVUxMLCBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpKTsKKwlib2R5ID0gc3Ryc3RyKG1zZywgIlxuXG4iKTsKIAlpZiAoYm9keSkgewogCQljb25zdCBjaGFyICplb2w7CiAJCXNpemVfdCBsZW47CkBAIC0xMDcsNiArMTA5LDcgQEAKIAl9CiAJZWxzZQogCQlwcmludGYoIlxuIik7CisJbG9nbXNnX2ZyZWUobXNnLCBjb21taXQpOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVfaW5kZXhfZnJvbV9kaWZmKHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqcSwKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmV2LWxpc3QuYyBiL2J1aWx0aW4vcmV2LWxpc3QuYwppbmRleCA2NzcwMWJlLi5hNWVjMzBkIDEwMDY0NAotLS0gYS9idWlsdGluL3Jldi1saXN0LmMKKysrIGIvYnVpbHRpbi9yZXYtbGlzdC5jCkBAIC0xMTEsNiArMTExLDcgQEAKIAkJY3R4LmRhdGVfbW9kZSA9IHJldnMtPmRhdGVfbW9kZTsKIAkJY3R4LmRhdGVfbW9kZV9leHBsaWNpdCA9IHJldnMtPmRhdGVfbW9kZV9leHBsaWNpdDsKIAkJY3R4LmZtdCA9IHJldnMtPmNvbW1pdF9mb3JtYXQ7CisJCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOwogCQlwcmV0dHlfcHJpbnRfY29tbWl0KCZjdHgsIGNvbW1pdCwgJmJ1Zik7CiAJCWlmIChyZXZzLT5ncmFwaCkgewogCQkJaWYgKGJ1Zi5sZW4pIHsKZGlmZiAtLWdpdCBhL2J1aWx0aW4vcmV2LXBhcnNlLmMgYi9idWlsdGluL3Jldi1wYXJzZS5jCmluZGV4IGYyNjdhMWQuLmRlODk0YzcgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcmV2LXBhcnNlLmMKKysrIGIvYnVpbHRpbi9yZXYtcGFyc2UuYwpAQCAtMjEyLDExICsyMTIsMTcgQEAKIAlzaG93KGJ1ZmZlcik7CiB9CiAKLXN0YXRpYyBpbnQgc2hvd19maWxlKGNvbnN0IGNoYXIgKmFyZykKK3N0YXRpYyBpbnQgc2hvd19maWxlKGNvbnN0IGNoYXIgKmFyZywgaW50IG91dHB1dF9wcmVmaXgpCiB7CiAJc2hvd19kZWZhdWx0KCk7CiAJaWYgKChmaWx0ZXIgJiAoRE9fTk9ORkxBR1N8RE9fTk9SRVYpKSA9PSAoRE9fTk9ORkxBR1N8RE9fTk9SRVYpKSB7Ci0JCXNob3coYXJnKTsKKwkJaWYgKG91dHB1dF9wcmVmaXgpIHsKKwkJCWNvbnN0IGNoYXIgKnByZWZpeCA9IHN0YXJ0dXBfaW5mby0+cHJlZml4OworCQkJc2hvdyhwcmVmaXhfZmlsZW5hbWUocHJlZml4LAorCQkJCQkgICAgIHByZWZpeCA/IHN0cmxlbihwcmVmaXgpIDogMCwKKwkJCQkJICAgICBhcmcpKTsKKwkJfSBlbHNlCisJCQlzaG93KGFyZyk7CiAJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKQEAgLTQ3MCw2ICs0NzYsNyBAQAogaW50IGNtZF9yZXZfcGFyc2UoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICpwcmVmaXgpCiB7CiAJaW50IGksIGFzX2lzID0gMCwgdmVyaWZ5ID0gMCwgcXVpZXQgPSAwLCByZXZzX2NvdW50ID0gMCwgdHlwZSA9IDA7CisJaW50IG91dHB1dF9wcmVmaXggPSAwOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJY29uc3QgY2hhciAqbmFtZSA9IE5VTEw7CiAKQEAgLTUwMyw3ICs1MTAsNyBAQAogCQljb25zdCBjaGFyICphcmcgPSBhcmd2W2ldOwogCiAJCWlmIChhc19pcykgewotCQkJaWYgKHNob3dfZmlsZShhcmcpICYmIGFzX2lzIDwgMikKKwkJCWlmIChzaG93X2ZpbGUoYXJnLCBvdXRwdXRfcHJlZml4KSAmJiBhc19pcyA8IDIpCiAJCQkJdmVyaWZ5X2ZpbGVuYW1lKHByZWZpeCwgYXJnLCAwKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC01MjcsNyArNTM0LDcgQEAKIAkJCQlhc19pcyA9IDI7CiAJCQkJLyogUGFzcyBvbiB0aGUgIi0tIiBpZiB3ZSBzaG93IGFueXRoaW5nIGJ1dCBmaWxlcy4uICovCiAJCQkJaWYgKGZpbHRlciAmIChET19GTEFHUyB8IERPX1JFVlMpKQotCQkJCQlzaG93X2ZpbGUoYXJnKTsKKwkJCQkJc2hvd19maWxlKGFyZywgMCk7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlpZiAoIXN0cmNtcChhcmcsICItLWRlZmF1bHQiKSkgewpAQCAtNTM1LDYgKzU0MiwxMyBAQAogCQkJCWkrKzsKIAkJCQljb250aW51ZTsKIAkJCX0KKwkJCWlmICghc3RyY21wKGFyZywgIi0tcHJlZml4IikpIHsKKwkJCQlwcmVmaXggPSBhcmd2W2krMV07CisJCQkJc3RhcnR1cF9pbmZvLT5wcmVmaXggPSBwcmVmaXg7CisJCQkJb3V0cHV0X3ByZWZpeCA9IDE7CisJCQkJaSsrOworCQkJCWNvbnRpbnVlOworCQkJfQogCQkJaWYgKCFzdHJjbXAoYXJnLCAiLS1yZXZzLW9ubHkiKSkgewogCQkJCWZpbHRlciAmPSB+RE9fTk9SRVY7CiAJCQkJY29udGludWU7CkBAIC03NTQsNyArNzY4LDcgQEAKIAkJaWYgKHZlcmlmeSkKIAkJCWRpZV9ub19zaW5nbGVfcmV2KHF1aWV0KTsKIAkJYXNfaXMgPSAxOwotCQlpZiAoIXNob3dfZmlsZShhcmcpKQorCQlpZiAoIXNob3dfZmlsZShhcmcsIG91dHB1dF9wcmVmaXgpKQogCQkJY29udGludWU7CiAJCXZlcmlmeV9maWxlbmFtZShwcmVmaXgsIGFyZywgMSk7CiAJfQpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9yZXZlcnQuYyBiL2J1aWx0aW4vcmV2ZXJ0LmMKaW5kZXggMDQwMWZkYi4uMWQyNjQ4YiAxMDA2NDQKLS0tIGEvYnVpbHRpbi9yZXZlcnQuYworKysgYi9idWlsdGluL3JldmVydC5jCkBAIC01NCw2ICs1NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogc3RhdGljIHZvaWQgdmVyaWZ5X29wdF9jb21wYXRpYmxlKGNvbnN0IGNoYXIgKm1lLCBjb25zdCBjaGFyICpiYXNlX29wdCwgLi4uKQogewogCWNvbnN0IGNoYXIgKnRoaXNfb3B0OwpAQCAtNzAsNiArNzEsNyBAQAogCQlkaWUoXygiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiKSwgbWUsIHRoaXNfb3B0LCBiYXNlX29wdCk7CiB9CiAKK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogc3RhdGljIHZvaWQgdmVyaWZ5X29wdF9tdXR1YWxseV9jb21wYXRpYmxlKGNvbnN0IGNoYXIgKm1lLCAuLi4pCiB7CiAJY29uc3QgY2hhciAqb3B0MSwgKm9wdDIgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9ybS5jIGIvYnVpbHRpbi9ybS5jCmluZGV4IDdiOTFkNTIuLjBkZjBiNGQgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vcm0uYworKysgYi9idWlsdGluL3JtLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSAiY2FjaGUtdHJlZS5oIgogI2luY2x1ZGUgInRyZWUtd2Fsay5oIgogI2luY2x1ZGUgInBhcnNlLW9wdGlvbnMuaCIKKyNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgogI2luY2x1ZGUgInN1Ym1vZHVsZS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGJ1aWx0aW5fcm1fdXNhZ2VbXSA9IHsKQEAgLTM2LDE1ICszNyw1MiBAQAogCXJldHVybiAtMTsKIH0KIAorc3RhdGljIHZvaWQgcHJpbnRfZXJyb3JfZmlsZXMoc3RydWN0IHN0cmluZ19saXN0ICpmaWxlc19saXN0LAorCQkJICAgICAgY29uc3QgY2hhciAqbWFpbl9tc2csCisJCQkgICAgICBjb25zdCBjaGFyICpoaW50c19tc2csCisJCQkgICAgICBpbnQgKmVycnMpCit7CisJaWYgKGZpbGVzX2xpc3QtPm5yKSB7CisJCWludCBpOworCQlzdHJ1Y3Qgc3RyYnVmIGVycl9tc2cgPSBTVFJCVUZfSU5JVDsKKworCQlzdHJidWZfYWRkc3RyKCZlcnJfbXNnLCBtYWluX21zZyk7CisJCWZvciAoaSA9IDA7IGkgPCBmaWxlc19saXN0LT5ucjsgaSsrKQorCQkJc3RyYnVmX2FkZGYoJmVycl9tc2csCisJCQkJICAgICJcbiAgICAlcyIsCisJCQkJICAgIGZpbGVzX2xpc3QtPml0ZW1zW2ldLnN0cmluZyk7CisJCWlmIChhZHZpY2Vfcm1faGludHMpCisJCQlzdHJidWZfYWRkc3RyKCZlcnJfbXNnLCBoaW50c19tc2cpOworCQkqZXJycyA9IGVycm9yKCIlcyIsIGVycl9tc2cuYnVmKTsKKwkJc3RyYnVmX3JlbGVhc2UoJmVycl9tc2cpOworCX0KK30KKworc3RhdGljIHZvaWQgZXJyb3JfcmVtb3ZpbmdfY29uY3JldGVfc3VibW9kdWxlcyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmZpbGVzLCBpbnQgKmVycnMpCit7CisJcHJpbnRfZXJyb3JfZmlsZXMoZmlsZXMsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZSAob3Igb25lIG9mIGl0cyBuZXN0ZWQgIgorCQkJICAgICAic3VibW9kdWxlcylcbiIKKwkJCSAgICAgInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCAiCisJCQkgICAgICJzdWJtb2R1bGVzKVxuIgorCQkJICAgICAidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IiwgZmlsZXMtPm5yKSwKKwkJCSAgXygiXG4odXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgIgorCQkJICAgICJpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIpLAorCQkJICBlcnJzKTsKKwlzdHJpbmdfbGlzdF9jbGVhcihmaWxlcywgMCk7Cit9CisKIHN0YXRpYyBpbnQgY2hlY2tfc3VibW9kdWxlc191c2VfZ2l0ZmlsZXModm9pZCkKIHsKIAlpbnQgaTsKIAlpbnQgZXJycyA9IDA7CisJc3RydWN0IHN0cmluZ19saXN0IGZpbGVzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKIAogCWZvciAoaSA9IDA7IGkgPCBsaXN0Lm5yOyBpKyspIHsKIAkJY29uc3QgY2hhciAqbmFtZSA9IGxpc3QuZW50cnlbaV0ubmFtZTsKIAkJaW50IHBvczsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKIAkJc3RydWN0IHN0YXQgc3Q7CiAKIAkJcG9zID0gY2FjaGVfbmFtZV9wb3MobmFtZSwgc3RybGVuKG5hbWUpKTsKQEAgLTYxLDEyICs5OSwxMSBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKCFzdWJtb2R1bGVfdXNlc19naXRmaWxlKG5hbWUpKQotCQkJZXJycyA9IGVycm9yKF8oInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCAiCi0JCQkJICAgICAic3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCi0JCQkJICAgICAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlICIKLQkJCQkgICAgICJpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIpLCBuYW1lKTsKKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXMsIG5hbWUpOwogCX0KIAorCWVycm9yX3JlbW92aW5nX2NvbmNyZXRlX3N1Ym1vZHVsZXMoJmZpbGVzLCAmZXJycyk7CisKIAlyZXR1cm4gZXJyczsKIH0KIApAQCAtODEsMTIgKzExOCwxNiBAQAogCSAqLwogCWludCBpLCBub19oZWFkOwogCWludCBlcnJzID0gMDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfc3RhZ2VkID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfY2FjaGVkID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfc3VibW9kdWxlID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgZmlsZXNfbG9jYWwgPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCiAJbm9faGVhZCA9IGlzX251bGxfc2hhMShoZWFkKTsKIAlmb3IgKGkgPSAwOyBpIDwgbGlzdC5ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdGF0IHN0OwogCQlpbnQgcG9zOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCQljb25zdCBjaGFyICpuYW1lID0gbGlzdC5lbnRyeVtpXS5uYW1lOwogCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCQl1bnNpZ25lZCBtb2RlOwpAQCAtMTcxLDI5ICsyMTIsNTAgQEAKIAkJICovCiAJCWlmIChsb2NhbF9jaGFuZ2VzICYmIHN0YWdlZF9jaGFuZ2VzKSB7CiAJCQlpZiAoIWluZGV4X29ubHkgfHwgIShjZS0+Y2VfZmxhZ3MgJiBDRV9JTlRFTlRfVE9fQUREKSkKLQkJCQllcnJzID0gZXJyb3IoXygiJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50ICIKLQkJCQkJICAgICAiZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgotCQkJCQkgICAgICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIiksIG5hbWUpOworCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfc3RhZ2VkLCBuYW1lKTsKIAkJfQogCQllbHNlIGlmICghaW5kZXhfb25seSkgewogCQkJaWYgKHN0YWdlZF9jaGFuZ2VzKQotCQkJCWVycnMgPSBlcnJvcihfKCInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKLQkJCQkJICAgICAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCAiCi0JCQkJCSAgICAgIm9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIiksIG5hbWUpOworCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfY2FjaGVkLCBuYW1lKTsKIAkJCWlmIChsb2NhbF9jaGFuZ2VzKSB7CiAJCQkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSAmJgotCQkJCSAgICAhc3VibW9kdWxlX3VzZXNfZ2l0ZmlsZShuYW1lKSkgewotCQkJCQllcnJzID0gZXJyb3IoXygic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkICIKLQkJCQkJCSAgICAgInN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgotCQkJCQkJICAgICAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlICIKLQkJCQkJCSAgICAgIml0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIiksIG5hbWUpOwotCQkJCX0gZWxzZQotCQkJCQllcnJzID0gZXJyb3IoXygiJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotCQkJCQkJICAgICAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCAiCi0JCQkJCQkgICAgICJvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLCBuYW1lKTsKKwkJCQkgICAgIXN1Ym1vZHVsZV91c2VzX2dpdGZpbGUobmFtZSkpCisJCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfc3VibW9kdWxlLCBuYW1lKTsKKwkJCQllbHNlCisJCQkJCXN0cmluZ19saXN0X2FwcGVuZCgmZmlsZXNfbG9jYWwsIG5hbWUpOwogCQkJfQogCQl9CiAJfQorCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19zdGFnZWQsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCAiCisJCQkgICAgICJmcm9tIGJvdGggdGhlXG5maWxlIGFuZCB0aGUgSEVBRDoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCIKKwkJCSAgICAgIiBmcm9tIGJvdGggdGhlXG5maWxlIGFuZCB0aGUgSEVBRDoiLAorCQkJICAgICBmaWxlc19zdGFnZWQubnIpLAorCQkJICBfKCJcbih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiKSwKKwkJCSAgJmVycnMpOworCXN0cmluZ19saXN0X2NsZWFyKCZmaWxlc19zdGFnZWQsIDApOworCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19jYWNoZWQsCisJCQkgIFFfKCJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgIgorCQkJICAgICAic3RhZ2VkIGluIHRoZSBpbmRleDoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgIgorCQkJICAgICAic3RhZ2VkIGluIHRoZSBpbmRleDoiLCBmaWxlc19jYWNoZWQubnIpLAorCQkJICBfKCJcbih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwiCisJCQkgICAgIiBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLAorCQkJICAmZXJycyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmZpbGVzX2NhY2hlZCwgMCk7CisKKwllcnJvcl9yZW1vdmluZ19jb25jcmV0ZV9zdWJtb2R1bGVzKCZmaWxlc19zdWJtb2R1bGUsICZlcnJzKTsKKworCXByaW50X2Vycm9yX2ZpbGVzKCZmaWxlc19sb2NhbCwKKwkJCSAgUV8oInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiLAorCQkJICAgICAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IiwKKwkJCSAgICAgZmlsZXNfbG9jYWwubnIpLAorCQkJICBfKCJcbih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwiCisJCQkgICAgIiBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIpLAorCQkJICAmZXJycyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoJmZpbGVzX2xvY2FsLCAwKTsKKwogCXJldHVybiBlcnJzOwogfQogCkBAIC0yNTgsNyArMzIwLDcgQEAKIAlzZWVuID0geGNhbGxvYyhpLCAxKTsKIAogCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCQlpZiAoIW1hdGNoX3BhdGhzcGVjKHBhdGhzcGVjLCBjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSksIDAsIHNlZW4pKQogCQkJY29udGludWU7CiAJCUFMTE9DX0dST1cobGlzdC5lbnRyeSwgbGlzdC5uciArIDEsIGxpc3QuYWxsb2MpOwpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zaG9ydGxvZy5jIGIvYnVpbHRpbi9zaG9ydGxvZy5jCmluZGV4IDFmZDZmOGEuLjE0MzRmOGYgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vc2hvcnRsb2cuYworKysgYi9idWlsdGluL3Nob3J0bG9nLmMKQEAgLTEzNyw2ICsxMzcsNyBAQAogCQljdHguc3ViamVjdCA9ICIiOwogCQljdHguYWZ0ZXJfc3ViamVjdCA9ICIiOwogCQljdHguZGF0ZV9tb2RlID0gREFURV9OT1JNQUw7CisJCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOwogCQlwcmV0dHlfcHJpbnRfY29tbWl0KCZjdHgsIGNvbW1pdCwgJnVmYnVmKTsKIAkJYnVmZmVyID0gdWZidWYuYnVmOwogCX0gZWxzZSBpZiAoKmJ1ZmZlcikgewpkaWZmIC0tZ2l0IGEvYnVpbHRpbi9zaG93LWJyYW5jaC5jIGIvYnVpbHRpbi9zaG93LWJyYW5jaC5jCmluZGV4IDkwZmM2YjEuLjk3ODhlYjEgMTAwNjQ0Ci0tLSBhL2J1aWx0aW4vc2hvdy1icmFuY2guYworKysgYi9idWlsdGluL3Nob3ctYnJhbmNoLmMKQEAgLTYzMCw3ICs2MzAsNyBAQAogCWludCBudW1fcmV2LCBpLCBleHRyYSA9IDA7CiAJaW50IGFsbF9oZWFkcyA9IDAsIGFsbF9yZW1vdGVzID0gMDsKIAlpbnQgYWxsX21hc2ssIGFsbF9yZXZzOwotCWludCBsaWZvID0gMTsKKwllbnVtIHJldl9zb3J0X29yZGVyIHNvcnRfb3JkZXIgPSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUjsKIAljaGFyIGhlYWRbMTI4XTsKIAljb25zdCBjaGFyICpoZWFkX3A7CiAJaW50IGhlYWRfbGVuOwpAQCAtNjY1LDE1ICs2NjUsMTcgQEAKIAkJCSAgICBOXygic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIpKSwKIAkJT1BUX0JPT0xFQU4oMCwgImluZGVwZW5kZW50IiwgJmluZGVwZW5kZW50LAogCQkJICAgIE5fKCJzaG93IHJlZnMgdW5yZWFjaGFibGUgZnJvbSBhbnkgb3RoZXIgcmVmIikpLAotCQlPUFRfQk9PTEVBTigwLCAidG9wby1vcmRlciIsICZsaWZvLAotCQkJICAgIE5fKCJzaG93IGNvbW1pdHMgaW4gdG9wb2xvZ2ljYWwgb3JkZXIiKSksCisJCU9QVF9TRVRfSU5UKDAsICJ0b3BvLW9yZGVyIiwgJnNvcnRfb3JkZXIsCisJCQkgICAgTl8oInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIpLAorCQkJICAgIFJFVl9TT1JUX0lOX0dSQVBIX09SREVSKSwKIAkJT1BUX0JPT0xFQU4oMCwgInRvcGljcyIsICZ0b3BpY3MsCiAJCQkgICAgTl8oInNob3cgb25seSBjb21taXRzIG5vdCBvbiB0aGUgZmlyc3QgYnJhbmNoIikpLAogCQlPUFRfU0VUX0lOVCgwLCAic3BhcnNlIiwgJmRlbnNlLAogCQkJICAgIE5fKCJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiKSwgMCksCi0JCU9QVF9TRVRfSU5UKDAsICJkYXRlLW9yZGVyIiwgJmxpZm8sCi0JCQkgICAgTl8oInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyAiCi0JCQkgICAgICAgImNoaWxkcmVuIiksIDApLAorCQlPUFRfU0VUX0lOVCgwLCAiZGF0ZS1vcmRlciIsICZzb3J0X29yZGVyLAorCQkJICAgIE5fKCJ0b3BvbG9naWNhbGx5IHNvcnQsIG1haW50YWluaW5nIGRhdGUgb3JkZXIgIgorCQkJICAgICAgICJ3aGVyZSBwb3NzaWJsZSIpLAorCQkJICAgIFJFVl9TT1JUX0JZX0NPTU1JVF9EQVRFKSwKIAkJeyBPUFRJT05fQ0FMTEJBQ0ssICdnJywgInJlZmxvZyIsICZyZWZsb2dfYmFzZSwgTl8oIjxuPlssPGJhc2U+XSIpLAogCQkJICAgIE5fKCJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgIgogCQkJICAgICAgICJiYXNlIiksCkBAIC05MDAsNyArOTAyLDcgQEAKIAkJZXhpdCgwKTsKIAogCS8qIFNvcnQgdG9wb2xvZ2ljYWxseSAqLwotCXNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoJnNlZW4sIGxpZm8pOworCXNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoJnNlZW4sIHNvcnRfb3JkZXIpOwogCiAJLyogR2l2ZSBuYW1lcyB0byBjb21taXRzICovCiAJaWYgKCFzaGExX25hbWUgJiYgIW5vX25hbWUpCmRpZmYgLS1naXQgYS9idWlsdGluL3Nob3ctcmVmLmMgYi9idWlsdGluL3Nob3ctcmVmLmMKaW5kZXggOGQ5Yjc2YS4uODc4MDZhZCAxMDA2NDQKLS0tIGEvYnVpbHRpbi9zaG93LXJlZi5jCisrKyBiL2J1aWx0aW4vc2hvdy1yZWYuYwpAQCAtMzEsNiArMzEsOSBAQAogCWNvbnN0IGNoYXIgKmhleDsKIAl1bnNpZ25lZCBjaGFyIHBlZWxlZFsyMF07CiAKKwlpZiAoc2hvd19oZWFkICYmICFzdHJjbXAocmVmbmFtZSwgIkhFQUQiKSkKKwkJZ290byBtYXRjaDsKKwogCWlmICh0YWdzX29ubHkgfHwgaGVhZHNfb25seSkgewogCQlpbnQgbWF0Y2g7CiAKQEAgLTEwMyw3ICsxMDYsNyBAQAogICovCiBzdGF0aWMgaW50IGV4Y2x1ZGVfZXhpc3RpbmcoY29uc3QgY2hhciAqbWF0Y2gpCiB7Ci0Jc3RhdGljIHN0cnVjdCBzdHJpbmdfbGlzdCBleGlzdGluZ19yZWZzID0gU1RSSU5HX0xJU1RfSU5JVF9OT0RVUDsKKwlzdGF0aWMgc3RydWN0IHN0cmluZ19saXN0IGV4aXN0aW5nX3JlZnMgPSBTVFJJTkdfTElTVF9JTklUX0RVUDsKIAljaGFyIGJ1ZlsxMDI0XTsKIAlpbnQgbWF0Y2hsZW4gPSBtYXRjaCA/IHN0cmxlbihtYXRjaCkgOiAwOwogCkBAIC0xNjcsOSArMTcwLDEwIEBACiAJT1BUX0JPT0xFQU4oMCwgInZlcmlmeSIsICZ2ZXJpZnksIE5fKCJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsICIKIAkJICAgICJyZXF1aXJlcyBleGFjdCByZWYgcGF0aCIpKSwKIAl7IE9QVElPTl9CT09MRUFOLCAnaCcsIE5VTEwsICZzaG93X2hlYWQsIE5VTEwsCi0JICBOXygic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiKSwKKwkgIE5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiKSwKIAkgIFBBUlNFX09QVF9OT0FSRyB8IFBBUlNFX09QVF9ISURERU4gfSwKLQlPUFRfQk9PTEVBTigwLCAiaGVhZCIsICZzaG93X2hlYWQsIE5fKCJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIpKSwKKwlPUFRfQk9PTEVBTigwLCAiaGVhZCIsICZzaG93X2hlYWQsCisJICBOXygic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IikpLAogCU9QVF9CT09MRUFOKCdkJywgImRlcmVmZXJlbmNlIiwgJmRlcmVmX3RhZ3MsCiAJCSAgICBOXygiZGVyZWZlcmVuY2UgdGFncyBpbnRvIG9iamVjdCBJRHMiKSksCiAJeyBPUFRJT05fQ0FMTEJBQ0ssICdzJywgImhhc2giLCAmYWJicmV2LCBOXygibiIpLApkaWZmIC0tZ2l0IGEvYnVpbHRpbi91cGRhdGUtaW5kZXguYyBiL2J1aWx0aW4vdXBkYXRlLWluZGV4LmMKaW5kZXggNWM3NzYyZS4uYzMxNzk4MSAxMDA2NDQKLS0tIGEvYnVpbHRpbi91cGRhdGUtaW5kZXguYworKysgYi9idWlsdGluL3VwZGF0ZS1pbmRleC5jCkBAIC04Myw3ICs4Myw3IEBACiAJcmV0dXJuIGVycm9yKCJsc3RhdChcIiVzXCIpOiAlcyIsIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7CiB9CiAKLXN0YXRpYyBpbnQgYWRkX29uZV9wYXRoKHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgbGVuLCBzdHJ1Y3Qgc3RhdCAqc3QpCitzdGF0aWMgaW50IGFkZF9vbmVfcGF0aChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCwgY29uc3QgY2hhciAqcGF0aCwgaW50IGxlbiwgc3RydWN0IHN0YXQgKnN0KQogewogCWludCBvcHRpb24sIHNpemU7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKQEAgLTE0Miw3ICsxNDIsNyBAQAogCiAJLyogRXhhY3QgbWF0Y2g6IGZpbGUgb3IgZXhpc3RpbmcgZ2l0bGluayAqLwogCWlmIChwb3MgPj0gMCkgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKIAkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSkgewogCiAJCQkvKiBEbyBub3RoaW5nIHRvIHRoZSBpbmRleCBpZiB0aGVyZSBpcyBubyBIRUFEISAqLwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJLyogSW5leGFjdCBtYXRjaDogaXMgdGhlcmUgcGVyaGFwcyBhIHN1YmRpcmVjdG9yeSBtYXRjaD8gKi8KIAlwb3MgPSAtcG9zLTE7CiAJd2hpbGUgKHBvcyA8IGFjdGl2ZV9ucikgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3BvcysrXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3MrK107CiAKIAkJaWYgKHN0cm5jbXAoY2UtPm5hbWUsIHBhdGgsIGxlbikpCiAJCQlicmVhazsKQEAgLTE4Myw3ICsxODMsNyBAQAogewogCWludCBwb3MsIGxlbjsKIAlzdHJ1Y3Qgc3RhdCBzdDsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAKIAlsZW4gPSBzdHJsZW4ocGF0aCk7CiAJaWYgKGhhc19zeW1saW5rX2xlYWRpbmdfcGF0aChwYXRoLCBsZW4pKQpAQCAtNDQ4LDcgKzQ0OCw3IEBACiAJCS8qIGFscmVhZHkgbWVyZ2VkICovCiAJCXBvcyA9IHVubWVyZ2VfY2FjaGVfZW50cnlfYXQocG9zKTsKIAkJaWYgKHBvcyA8IGFjdGl2ZV9ucikgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOworCQkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOwogCQkJaWYgKGNlX3N0YWdlKGNlKSAmJgogCQkJICAgIGNlX25hbWVsZW4oY2UpID09IG5hbWVsZW4gJiYKIAkJCSAgICAhbWVtY21wKGNlLT5uYW1lLCBwYXRoLCBuYW1lbGVuKSkKQEAgLTQ2Miw3ICs0NjIsNyBAQAogCQkgKi8KIAkJcG9zID0gLXBvcy0xOwogCQlpZiAocG9zIDwgYWN0aXZlX25yKSB7Ci0JCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CisJCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3Bvc107CiAJCQlpZiAoY2VfbmFtZWxlbihjZSkgPT0gbmFtZWxlbiAmJgogCQkJICAgICFtZW1jbXAoY2UtPm5hbWUsIHBhdGgsIG5hbWVsZW4pKSB7CiAJCQkJZnByaW50ZihzdGRlcnIsCkBAIC01NTgsNyArNTU4LDcgQEAKIAkJaGFzX2hlYWQgPSAwOwogIHJlZG86CiAJZm9yIChwb3MgPSAwOyBwb3MgPCBhY3RpdmVfbnI7IHBvcysrKSB7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtwb3NdOwogCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCA9IE5VTEw7CiAJCWludCBzYXZlX25yOwogCmRpZmYgLS1naXQgYS9idWxrLWNoZWNraW4uYyBiL2J1bGstY2hlY2tpbi5jCmluZGV4IDZiMGI2ZDQuLjExOGM2MjUgMTAwNjQ0Ci0tLSBhL2J1bGstY2hlY2tpbi5jCisrKyBiL2J1bGstY2hlY2tpbi5jCkBAIC0xMTQsNyArMTE0LDcgQEAKIAogCQlpZiAoc2l6ZSAmJiAhcy5hdmFpbF9pbikgewogCQkJc3NpemVfdCByc2l6ZSA9IHNpemUgPCBzaXplb2YoaWJ1ZikgPyBzaXplIDogc2l6ZW9mKGlidWYpOwotCQkJaWYgKHhyZWFkKGZkLCBpYnVmLCByc2l6ZSkgIT0gcnNpemUpCisJCQlpZiAocmVhZF9pbl9mdWxsKGZkLCBpYnVmLCByc2l6ZSkgIT0gcnNpemUpCiAJCQkJZGllKCJmYWlsZWQgdG8gcmVhZCAlZCBieXRlcyBmcm9tICclcyciLAogCQkJCSAgICAoaW50KXJzaXplLCBwYXRoKTsKIAkJCW9mZnNldCArPSByc2l6ZTsKZGlmZiAtLWdpdCBhL2J1bmRsZS5jIGIvYnVuZGxlLmMKaW5kZXggNGIwZTVjZC4uM2Q2NDMxMSAxMDA2NDQKLS0tIGEvYnVuZGxlLmMKKysrIGIvYnVuZGxlLmMKQEAgLTI4MSw3ICsyODEsNyBAQAogCQkJaWYgKCFnZXRfc2hhMV9oZXgoYnVmLmJ1ZiArIDEsIHNoYTEpKSB7CiAJCQkJc3RydWN0IG9iamVjdCAqb2JqZWN0ID0gcGFyc2Vfb2JqZWN0X29yX2RpZShzaGExLCBidWYuYnVmKTsKIAkJCQlvYmplY3QtPmZsYWdzIHw9IFVOSU5URVJFU1RJTkc7Ci0JCQkJYWRkX3BlbmRpbmdfb2JqZWN0KCZyZXZzLCBvYmplY3QsIHhzdHJkdXAoYnVmLmJ1ZikpOworCQkJCWFkZF9wZW5kaW5nX29iamVjdCgmcmV2cywgb2JqZWN0LCBidWYuYnVmKTsKIAkJCX0KIAkJfSBlbHNlIGlmICghZ2V0X3NoYTFfaGV4KGJ1Zi5idWYsIHNoYTEpKSB7CiAJCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3QgPSBwYXJzZV9vYmplY3Rfb3JfZGllKHNoYTEsIGJ1Zi5idWYpOwpkaWZmIC0tZ2l0IGEvY2FjaGUtdHJlZS5jIGIvY2FjaGUtdHJlZS5jCmluZGV4IDM3ZTRkMDAuLjBiYmVjNDMgMTAwNjQ0Ci0tLSBhL2NhY2hlLXRyZWUuYworKysgYi9jYWNoZS10cmVlLmMKQEAgLTE0OSw3ICsxNDksNyBAQAogCQljYWNoZV90cmVlX2ludmFsaWRhdGVfcGF0aChkb3duLT5jYWNoZV90cmVlLCBzbGFzaCArIDEpOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV9jYWNoZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipjYWNoZSwKK3N0YXRpYyBpbnQgdmVyaWZ5X2NhY2hlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpjYWNoZSwKIAkJCWludCBlbnRyaWVzLCBpbnQgZmxhZ3MpCiB7CiAJaW50IGksIGZ1bm55OwpAQCAtMTU4LDcgKzE1OCw3IEBACiAJLyogVmVyaWZ5IHRoYXQgdGhlIHRyZWUgaXMgbWVyZ2VkICovCiAJZnVubnkgPSAwOwogCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGNhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CiAJCWlmIChjZV9zdGFnZShjZSkpIHsKIAkJCWlmIChzaWxlbnQpCiAJCQkJcmV0dXJuIC0xOwpAQCAtMjM0LDcgKzIzNCw3IEBACiB9CiAKIHN0YXRpYyBpbnQgdXBkYXRlX29uZShzdHJ1Y3QgY2FjaGVfdHJlZSAqaXQsCi0JCSAgICAgIHN0cnVjdCBjYWNoZV9lbnRyeSAqKmNhY2hlLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqY2FjaGUsCiAJCSAgICAgIGludCBlbnRyaWVzLAogCQkgICAgICBjb25zdCBjaGFyICpiYXNlLAogCQkgICAgICBpbnQgYmFzZWxlbiwKQEAgLTI2NSw3ICsyNjUsNyBAQAogCSAqLwogCWkgPSAwOwogCXdoaWxlIChpIDwgZW50cmllcykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBjYWNoZVtpXTsKIAkJc3RydWN0IGNhY2hlX3RyZWVfc3ViICpzdWI7CiAJCWNvbnN0IGNoYXIgKnBhdGgsICpzbGFzaDsKIAkJaW50IHBhdGhsZW4sIHN1Ymxlbiwgc3ViY250LCBzdWJza2lwOwpAQCAtMzEyLDcgKzMxMiw3IEBACiAKIAlpID0gMDsKIAl3aGlsZSAoaSA8IGVudHJpZXMpIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGNhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gY2FjaGVbaV07CiAJCXN0cnVjdCBjYWNoZV90cmVlX3N1YiAqc3ViOwogCQljb25zdCBjaGFyICpwYXRoLCAqc2xhc2g7CiAJCWludCBwYXRobGVuLCBlbnRsZW47CkBAIC0zOTcsNyArMzk3LDcgQEAKIH0KIAogaW50IGNhY2hlX3RyZWVfdXBkYXRlKHN0cnVjdCBjYWNoZV90cmVlICppdCwKLQkJICAgICAgc3RydWN0IGNhY2hlX2VudHJ5ICoqY2FjaGUsCisJCSAgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpjYWNoZSwKIAkJICAgICAgaW50IGVudHJpZXMsCiAJCSAgICAgIGludCBmbGFncykKIHsKQEAgLTU5OSw4ICs1OTksOCBAQAogCXdhc192YWxpZCA9IGNhY2hlX3RyZWVfZnVsbHlfdmFsaWQoYWN0aXZlX2NhY2hlX3RyZWUpOwogCWlmICghd2FzX3ZhbGlkKSB7CiAJCWlmIChjYWNoZV90cmVlX3VwZGF0ZShhY3RpdmVfY2FjaGVfdHJlZSwKLQkJCQkgICAgICBhY3RpdmVfY2FjaGUsIGFjdGl2ZV9uciwKLQkJCQkgICAgICBmbGFncykgPCAwKQorCQkJCSAgICAgIChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqKWFjdGl2ZV9jYWNoZSwKKwkJCQkgICAgICBhY3RpdmVfbnIsIGZsYWdzKSA8IDApCiAJCQlyZXR1cm4gV1JJVEVfVFJFRV9VTk1FUkdFRF9JTkRFWDsKIAkJaWYgKDAgPD0gbmV3ZmQpIHsKIAkJCWlmICghd3JpdGVfY2FjaGUobmV3ZmQsIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yKSAmJgpAQCAtNzAxLDUgKzcwMSw2IEBACiAJaWYgKCF0aGVfaW5kZXguY2FjaGVfdHJlZSkKIAkJdGhlX2luZGV4LmNhY2hlX3RyZWUgPSBjYWNoZV90cmVlKCk7CiAJcmV0dXJuIGNhY2hlX3RyZWVfdXBkYXRlKHRoZV9pbmRleC5jYWNoZV90cmVlLAotCQkJCSB0aGVfaW5kZXguY2FjaGUsIHRoZV9pbmRleC5jYWNoZV9uciwgZmxhZ3MpOworCQkJCSAoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKil0aGVfaW5kZXguY2FjaGUsCisJCQkJIHRoZV9pbmRleC5jYWNoZV9uciwgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvY2FjaGUtdHJlZS5oIGIvY2FjaGUtdHJlZS5oCmluZGV4IDU1ZDBmNTkuLmYxOTIzYWQgMTAwNjQ0Ci0tLSBhL2NhY2hlLXRyZWUuaAorKysgYi9jYWNoZS10cmVlLmgKQEAgLTMwLDcgKzMwLDcgQEAKIHN0cnVjdCBjYWNoZV90cmVlICpjYWNoZV90cmVlX3JlYWQoY29uc3QgY2hhciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIHNpemUpOwogCiBpbnQgY2FjaGVfdHJlZV9mdWxseV92YWxpZChzdHJ1Y3QgY2FjaGVfdHJlZSAqKTsKLWludCBjYWNoZV90cmVlX3VwZGF0ZShzdHJ1Y3QgY2FjaGVfdHJlZSAqLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiosIGludCwgaW50KTsKK2ludCBjYWNoZV90cmVlX3VwZGF0ZShzdHJ1Y3QgY2FjaGVfdHJlZSAqLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqLCBpbnQsIGludCk7CiAKIGludCB1cGRhdGVfbWFpbl9jYWNoZV90cmVlKGludCk7CiAKZGlmZiAtLWdpdCBhL2NhY2hlLmggYi9jYWNoZS5oCmluZGV4IDk0Y2ExYWMuLjg1YjU0NGYgMTAwNjQ0Ci0tLSBhL2NhY2hlLmgKKysrIGIvY2FjaGUuaApAQCAtMTE5LDE1ICsxMTksMTkgQEAKIAl1bnNpZ25lZCBpbnQgbnNlYzsKIH07CiAKK3N0cnVjdCBzdGF0X2RhdGEgeworCXN0cnVjdCBjYWNoZV90aW1lIHNkX2N0aW1lOworCXN0cnVjdCBjYWNoZV90aW1lIHNkX210aW1lOworCXVuc2lnbmVkIGludCBzZF9kZXY7CisJdW5zaWduZWQgaW50IHNkX2lubzsKKwl1bnNpZ25lZCBpbnQgc2RfdWlkOworCXVuc2lnbmVkIGludCBzZF9naWQ7CisJdW5zaWduZWQgaW50IHNkX3NpemU7Cit9OworCiBzdHJ1Y3QgY2FjaGVfZW50cnkgewotCXN0cnVjdCBjYWNoZV90aW1lIGNlX2N0aW1lOwotCXN0cnVjdCBjYWNoZV90aW1lIGNlX210aW1lOwotCXVuc2lnbmVkIGludCBjZV9kZXY7Ci0JdW5zaWduZWQgaW50IGNlX2lubzsKKwlzdHJ1Y3Qgc3RhdF9kYXRhIGNlX3N0YXRfZGF0YTsKIAl1bnNpZ25lZCBpbnQgY2VfbW9kZTsKLQl1bnNpZ25lZCBpbnQgY2VfdWlkOwotCXVuc2lnbmVkIGludCBjZV9naWQ7Ci0JdW5zaWduZWQgaW50IGNlX3NpemU7CiAJdW5zaWduZWQgaW50IGNlX2ZsYWdzOwogCXVuc2lnbmVkIGludCBjZV9uYW1lbGVuOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xOTAsNyArMTk0LDggQEAKICAqIGFub3RoZXIuIEJ1dCB3ZSBuZXZlciBjaGFuZ2UgdGhlIG5hbWUsIG9yIHRoZSBoYXNoIHN0YXRlIQogICovCiAjZGVmaW5lIENFX1NUQVRFX01BU0sgKENFX0hBU0hFRCB8IENFX1VOSEFTSEVEKQotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfY2FjaGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpkc3QsIHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjKQorc3RhdGljIGlubGluZSB2b2lkIGNvcHlfY2FjaGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpkc3QsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjKQogewogCXVuc2lnbmVkIGludCBzdGF0ZSA9IGRzdC0+Y2VfZmxhZ3MgJiBDRV9TVEFURV9NQVNLOwogCkBAIC0yMjIsNyArMjI3LDggQEAKIAkJcmV0dXJuIFNfSUZHSVRMSU5LOwogCXJldHVybiBTX0lGUkVHIHwgY2VfcGVybWlzc2lvbnMobW9kZSk7CiB9Ci1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjZV9tb2RlX2Zyb21fc3RhdChzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCB1bnNpZ25lZCBpbnQgbW9kZSkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNlX21vZGVfZnJvbV9zdGF0KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJCSAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJZXh0ZXJuIGludCB0cnVzdF9leGVjdXRhYmxlX2JpdCwgaGFzX3N5bWxpbmtzOwogCWlmICghaGFzX3N5bWxpbmtzICYmIFNfSVNSRUcobW9kZSkgJiYKQEAgLTQxOSw2ICs0MjUsOCBAQAogZXh0ZXJuIGludCBzZXRfZ2l0X2Rpcl9pbml0KGNvbnN0IGNoYXIgKmdpdF9kaXIsIGNvbnN0IGNoYXIgKnJlYWxfZ2l0X2RpciwgaW50KTsKIGV4dGVybiBpbnQgaW5pdF9kYihjb25zdCBjaGFyICp0ZW1wbGF0ZV9kaXIsIHVuc2lnbmVkIGludCBmbGFncyk7CiAKK2V4dGVybiB2b2lkIHNhbml0aXplX3N0ZGZkcyh2b2lkKTsKKwogI2RlZmluZSBhbGxvY19ucih4KSAoKCh4KSsxNikqMy8yKQogCiAvKgpAQCAtNDcwLDcgKzQ3OCw3IEBACiBleHRlcm4gaW50IGFkZF90b19pbmRleChzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0YXQgKiwgaW50IGZsYWdzKTsKIGV4dGVybiBpbnQgYWRkX2ZpbGVfdG9faW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IGNoYXIgKnBhdGgsIGludCBmbGFncyk7CiBleHRlcm4gc3RydWN0IGNhY2hlX2VudHJ5ICptYWtlX2NhY2hlX2VudHJ5KHVuc2lnbmVkIGludCBtb2RlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCBjaGFyICpwYXRoLCBpbnQgc3RhZ2UsIGludCByZWZyZXNoKTsKLWV4dGVybiBpbnQgY2Vfc2FtZV9uYW1lKHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgc3RydWN0IGNhY2hlX2VudHJ5ICpiKTsKK2V4dGVybiBpbnQgY2Vfc2FtZV9uYW1lKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpiKTsKIGV4dGVybiBpbnQgaW5kZXhfbmFtZV9pc19vdGhlcihjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgKnJlYWRfYmxvYl9kYXRhX2Zyb21faW5kZXgoc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgbG9uZyAqKTsKIApAQCAtNDgwLDEwICs0ODgsMTAgQEAKICNkZWZpbmUgQ0VfTUFUQ0hfUkFDWV9JU19ESVJUWQkJMDIKIC8qIGRvIHN0YXQgY29tcGFyaXNvbiBldmVuIGlmIENFX1NLSVBfV09SS1RSRUUgaXMgdHJ1ZSAqLwogI2RlZmluZSBDRV9NQVRDSF9JR05PUkVfU0tJUF9XT1JLVFJFRQkwNAotZXh0ZXJuIGludCBpZV9tYXRjaF9zdGF0KGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiwgc3RydWN0IHN0YXQgKiwgdW5zaWduZWQgaW50KTsKLWV4dGVybiBpbnQgaWVfbW9kaWZpZWQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICosIHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBzdHJ1Y3Qgc3RhdCAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBpZV9tYXRjaF9zdGF0KGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiwgc3RydWN0IHN0YXQgKiwgdW5zaWduZWQgaW50KTsKK2V4dGVybiBpbnQgaWVfbW9kaWZpZWQoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICosIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqLCBzdHJ1Y3Qgc3RhdCAqLCB1bnNpZ25lZCBpbnQpOwogCi0jZGVmaW5lIFBBVEhTUEVDX09ORVNUQVIgMQkvKiB0aGUgcGF0aHNwZWMgcGF0dGVybiBzYXN0aXNmaWVzIEdGTk1fT05FU1RBUiAqLworI2RlZmluZSBQQVRIU1BFQ19PTkVTVEFSIDEJLyogdGhlIHBhdGhzcGVjIHBhdHRlcm4gc2F0aXNmaWVzIEdGTk1fT05FU1RBUiAqLwogCiBzdHJ1Y3QgcGF0aHNwZWMgewogCWNvbnN0IGNoYXIgKipyYXc7IC8qIGdldF9wYXRoc3BlYygpIHJlc3VsdCwgbm90IGZyZWVkIGJ5IGZyZWVfcGF0aHNwZWMoKSAqLwpAQCAtNTA5LDYgKzUxNywyMSBAQAogI2RlZmluZSBIQVNIX0ZPUk1BVF9DSEVDSyAyCiBleHRlcm4gaW50IGluZGV4X2ZkKHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmZCwgc3RydWN0IHN0YXQgKnN0LCBlbnVtIG9iamVjdF90eXBlIHR5cGUsIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGZsYWdzKTsKIGV4dGVybiBpbnQgaW5kZXhfcGF0aCh1bnNpZ25lZCBjaGFyICpzaGExLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqc3QsIHVuc2lnbmVkIGZsYWdzKTsKKworLyoKKyAqIFJlY29yZCB0byBzZCB0aGUgZGF0YSBmcm9tIHN0IHRoYXQgd2UgdXNlIHRvIGNoZWNrIHdoZXRoZXIgYSBmaWxlCisgKiBtaWdodCBoYXZlIGNoYW5nZWQuCisgKi8KK2V4dGVybiB2b2lkIGZpbGxfc3RhdF9kYXRhKHN0cnVjdCBzdGF0X2RhdGEgKnNkLCBzdHJ1Y3Qgc3RhdCAqc3QpOworCisvKgorICogUmV0dXJuIDAgaWYgc3QgaXMgY29uc2lzdGVudCB3aXRoIGEgZmlsZSBub3QgaGF2aW5nIGJlZW4gY2hhbmdlZAorICogc2luY2Ugc2Qgd2FzIGZpbGxlZC4gIElmIHRoZXJlIGFyZSBkaWZmZXJlbmNlcywgcmV0dXJuIGEKKyAqIGNvbWJpbmF0aW9uIG9mIE1USU1FX0NIQU5HRUQsIENUSU1FX0NIQU5HRUQsIE9XTkVSX0NIQU5HRUQsCisgKiBJTk9ERV9DSEFOR0VELCBhbmQgREFUQV9DSEFOR0VELgorICovCitleHRlcm4gaW50IG1hdGNoX3N0YXRfZGF0YShjb25zdCBzdHJ1Y3Qgc3RhdF9kYXRhICpzZCwgc3RydWN0IHN0YXQgKnN0KTsKKwogZXh0ZXJuIHZvaWQgZmlsbF9zdGF0X2NhY2hlX2luZm8oc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KTsKIAogI2RlZmluZSBSRUZSRVNIX1JFQUxMWQkJMHgwMDAxCS8qIGlnbm9yZV92YWxpZCAqLwpAQCAtNTU0LDYgKzU3Nyw3IEBACiBleHRlcm4gaW50IHByZWZlcl9zeW1saW5rX3JlZnM7CiBleHRlcm4gaW50IGxvZ19hbGxfcmVmX3VwZGF0ZXM7CiBleHRlcm4gaW50IHdhcm5fYW1iaWd1b3VzX3JlZnM7CitleHRlcm4gaW50IHdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5OwogZXh0ZXJuIGludCBzaGFyZWRfcmVwb3NpdG9yeTsKIGV4dGVybiBjb25zdCBjaGFyICphcHBseV9kZWZhdWx0X3doaXRlc3BhY2U7CiBleHRlcm4gY29uc3QgY2hhciAqYXBwbHlfZGVmYXVsdF9pZ25vcmV3aGl0ZXNwYWNlOwpAQCAtNzM3LDcgKzc2MSw3IEBACiBjb25zdCBjaGFyICpyZWFsX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7CiBjb25zdCBjaGFyICpyZWFsX3BhdGhfaWZfdmFsaWQoY29uc3QgY2hhciAqcGF0aCk7CiBjb25zdCBjaGFyICphYnNvbHV0ZV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwotY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICphYnMsIGNvbnN0IGNoYXIgKmJhc2UpOworY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICppbiwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3Qgc3RyYnVmICpzYik7CiBpbnQgbm9ybWFsaXplX3BhdGhfY29weShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYyk7CiBpbnQgbG9uZ2VzdF9hbmNlc3Rvcl9sZW5ndGgoY29uc3QgY2hhciAqcGF0aCwgc3RydWN0IHN0cmluZ19saXN0ICpwcmVmaXhlcyk7CiBjaGFyICpzdHJpcF9wYXRoX3N1ZmZpeChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICpzdWZmaXgpOwpAQCAtNzcyLDkgKzc5Niw2IEBACiAvKiBnbG9iYWwgZmxhZyB0byBlbmFibGUgZXh0cmEgY2hlY2tzIHdoZW4gYWNjZXNzaW5nIHBhY2tlZCBvYmplY3RzICovCiBleHRlcm4gaW50IGRvX2NoZWNrX3BhY2tlZF9vYmplY3RfY3JjOwogCi0vKiBmb3IgZGV2ZWxvcG1lbnQ6IGxvZyBvZmZzZXQgb2YgcGFjayBhY2Nlc3MgKi8KLWV4dGVybiBjb25zdCBjaGFyICpsb2dfcGFja19hY2Nlc3M7Ci0KIGV4dGVybiBpbnQgY2hlY2tfc2hhMV9zaWduYXR1cmUoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKnR5cGUpOwogCiBleHRlcm4gaW50IG1vdmVfdGVtcF90b19maWxlKGNvbnN0IGNoYXIgKnRtcGZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKQEAgLTkxMCw2ICs5MzEsNyBAQAogCQkJc3RydWN0IHN0cmJ1ZiAqdGltZWJ1Zik7CiBpbnQgcGFyc2VfZGF0ZShjb25zdCBjaGFyICpkYXRlLCBjaGFyICpidWYsIGludCBidWZzaXplKTsKIGludCBwYXJzZV9kYXRlX2Jhc2ljKGNvbnN0IGNoYXIgKmRhdGUsIHVuc2lnbmVkIGxvbmcgKnRpbWVzdGFtcCwgaW50ICpvZmZzZXQpOworaW50IHBhcnNlX2V4cGlyeV9kYXRlKGNvbnN0IGNoYXIgKmRhdGUsIHVuc2lnbmVkIGxvbmcgKnRpbWVzdGFtcCk7CiB2b2lkIGRhdGVzdGFtcChjaGFyICpidWYsIGludCBidWZzaXplKTsKICNkZWZpbmUgYXBwcm94aWRhdGUocykgYXBwcm94aWRhdGVfY2FyZWZ1bCgocyksIE5VTEwpCiB1bnNpZ25lZCBsb25nIGFwcHJveGlkYXRlX2NhcmVmdWwoY29uc3QgY2hhciAqLCBpbnQgKik7CkBAIC0xMDI0LDkgKzEwNDYsMjEgQEAKIAl1bnNpZ25lZCBpbnQKIAkJZm9yY2U6MSwKIAkJZm9yY2VkX3VwZGF0ZToxLAotCQltZXJnZToxLAogCQlkZWxldGlvbjoxLAogCQltYXRjaGVkOjE7CisKKwkvKgorCSAqIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlLCBhcyB3ZSB3cml0ZSB0byBGRVRDSF9IRUFECisJICogaW4gbnVtZXJpYyBvcmRlci4gQW5kIHRoZSBkZWZhdWx0IE5PVF9GT1JfTUVSR0UKKwkgKiBzaG91bGQgYmUgMCwgc28gdGhhdCB4Y2FsbG9jJ2Qgc3RydWN0dXJlcyBnZXQgaXQKKwkgKiBieSBkZWZhdWx0LgorCSAqLworCWVudW0geworCQlGRVRDSF9IRUFEX01FUkdFID0gLTEsCisJCUZFVENIX0hFQURfTk9UX0ZPUl9NRVJHRSA9IDAsCisJCUZFVENIX0hFQURfSUdOT1JFID0gMQorCX0gZmV0Y2hfaGVhZF9zdGF0dXM7CisKIAllbnVtIHsKIAkJUkVGX1NUQVRVU19OT05FID0gMCwKIAkJUkVGX1NUQVRVU19PSywKQEAgLTEwOTgsNyArMTEzMiw5IEBACiAKIHN0cnVjdCBvYmplY3RfaW5mbyB7CiAJLyogUmVxdWVzdCAqLworCWVudW0gb2JqZWN0X3R5cGUgKnR5cGVwOwogCXVuc2lnbmVkIGxvbmcgKnNpemVwOworCXVuc2lnbmVkIGxvbmcgKmRpc2tfc2l6ZXA7CiAKIAkvKiBSZXNwb25zZSAqLwogCWVudW0gewpAQCAtMTE0MiwxMSArMTE3OCwxNSBAQAogdHlwZWRlZiBpbnQgKCpjb25maWdfZm5fdCkoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHZvaWQgKik7CiBleHRlcm4gaW50IGdpdF9kZWZhdWx0X2NvbmZpZyhjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgdm9pZCAqKTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoY29uZmlnX2ZuX3QgZm4sIGNvbnN0IGNoYXIgKiwgdm9pZCAqKTsKK2V4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX2J1Zihjb25maWdfZm5fdCBmbiwgY29uc3QgY2hhciAqbmFtZSwKKwkJCSAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIHZvaWQgZ2l0X2NvbmZpZ19wdXNoX3BhcmFtZXRlcihjb25zdCBjaGFyICp0ZXh0KTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19mcm9tX3BhcmFtZXRlcnMoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGludCBnaXRfY29uZmlnKGNvbmZpZ19mbl90IGZuLCB2b2lkICopOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhjb25maWdfZm5fdCBmbiwgdm9pZCAqLAotCQkJCSAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgcmVzcGVjdF9pbmNsdWRlcyk7CisJCQkJICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkJICAgY29uc3QgY2hhciAqYmxvYl9yZWYsCisJCQkJICAgaW50IHJlc3BlY3RfaW5jbHVkZXMpOwogZXh0ZXJuIGludCBnaXRfY29uZmlnX2Vhcmx5KGNvbmZpZ19mbl90IGZuLCB2b2lkICosIGNvbnN0IGNoYXIgKnJlcG9fY29uZmlnKTsKIGV4dGVybiBpbnQgZ2l0X3BhcnNlX3Vsb25nKGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgbG9uZyAqKTsKIGV4dGVybiBpbnQgZ2l0X2NvbmZpZ19pbnQoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwpAQCAtMTMyNiw0ICsxMzY2LDMxIEBACiAKIGludCBzYW5lX2V4ZWN2cChjb25zdCBjaGFyICpmaWxlLCBjaGFyICpjb25zdCBhcmd2W10pOwogCisvKgorICogQSBzdHJ1Y3QgdG8gZW5jYXBzdWxhdGUgdGhlIGNvbmNlcHQgb2Ygd2hldGhlciBhIGZpbGUgaGFzIGNoYW5nZWQKKyAqIHNpbmNlIHdlIGxhc3QgY2hlY2tlZCBpdC4gVGhpcyB1c2VzIGNyaXRlcmlhIHNpbWlsYXIgdG8gdGhvc2UgdXNlZAorICogZm9yIHRoZSBpbmRleC4KKyAqLworc3RydWN0IHN0YXRfdmFsaWRpdHkgeworCXN0cnVjdCBzdGF0X2RhdGEgKnNkOworfTsKKwordm9pZCBzdGF0X3ZhbGlkaXR5X2NsZWFyKHN0cnVjdCBzdGF0X3ZhbGlkaXR5ICpzdik7CisKKy8qCisgKiBSZXR1cm5zIDEgaWYgdGhlIHBhdGggaXMgYSByZWd1bGFyIGZpbGUgKG9yIGEgc3ltbGluayB0byBhIHJlZ3VsYXIKKyAqIGZpbGUpIGFuZCBtYXRjaGVzIHRoZSBzYXZlZCBzdGF0X3ZhbGlkaXR5LCAwIG90aGVyd2lzZS4gIEEgbWlzc2luZworICogb3IgaW5hY2Nlc3NpYmxlIGZpbGUgaXMgY29uc2lkZXJlZCBhIG1hdGNoIGlmIHRoZSBzdHJ1Y3Qgd2FzIGp1c3QKKyAqIGluaXRpYWxpemVkLCBvciBpZiB0aGUgcHJldmlvdXMgdXBkYXRlIGZvdW5kIGFuIGluYWNjZXNzaWJsZSBmaWxlLgorICovCitpbnQgc3RhdF92YWxpZGl0eV9jaGVjayhzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGNvbnN0IGNoYXIgKnBhdGgpOworCisvKgorICogVXBkYXRlIHRoZSBzdGF0X3ZhbGlkaXR5IGZyb20gYSBmaWxlIG9wZW5lZCBhdCBkZXNjcmlwdG9yIGZkLiBJZgorICogdGhlIGZpbGUgaXMgbWlzc2luZywgaW5hY2Nlc3NpYmxlLCBvciBub3QgYSByZWd1bGFyIGZpbGUsIHRoZW4KKyAqIGZ1dHVyZSBjYWxscyB0byBzdGF0X3ZhbGlkaXR5X2NoZWNrIHdpbGwgbWF0Y2ggaWZmIG9uZSBvZiB0aG9zZQorICogY29uZGl0aW9ucyBjb250aW51ZXMgdG8gYmUgdHJ1ZS4KKyAqLwordm9pZCBzdGF0X3ZhbGlkaXR5X3VwZGF0ZShzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGludCBmZCk7CisKICNlbmRpZiAvKiBDQUNIRV9IICovCmRpZmYgLS1naXQgYS9jb2xvci5jIGIvY29sb3IuYwppbmRleCBlOGUyNjgxLi5mNjcyODg1IDEwMDY0NAotLS0gYS9jb2xvci5jCisrKyBiL2NvbG9yLmMKQEAgLTEsNyArMSw3IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJjb2xvci5oIgogCi1zdGF0aWMgaW50IGdpdF91c2VfY29sb3JfZGVmYXVsdCA9IDA7CitzdGF0aWMgaW50IGdpdF91c2VfY29sb3JfZGVmYXVsdCA9IEdJVF9DT0xPUl9BVVRPOwogaW50IGNvbG9yX3N0ZG91dF9pc190dHkgPSAtMTsKIAogLyoKZGlmZiAtLWdpdCBhL2NvbWJpbmUtZGlmZi5jIGIvY29tYmluZS1kaWZmLmMKaW5kZXggNzdkNzg3Mi4uNGZjMTZhZCAxMDA2NDQKLS0tIGEvY29tYmluZS1kaWZmLmMKKysrIGIvY29tYmluZS1kaWZmLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlICJyZWZzLmgiCiAjaW5jbHVkZSAidXNlcmRpZmYuaCIKICNpbmNsdWRlICJzaGExLWFycmF5LmgiCisjaW5jbHVkZSAicmV2aXNpb24uaCIKIAogc3RhdGljIHN0cnVjdCBjb21iaW5lX2RpZmZfcGF0aCAqaW50ZXJzZWN0X3BhdGhzKHN0cnVjdCBjb21iaW5lX2RpZmZfcGF0aCAqY3VyciwgaW50IG4sIGludCBudW1fcGFyZW50KQogewpAQCAtMTY1LDcgKzE2Niw3IEBACiAKIAkvKgogCSAqIENvYWxlc2NlIG5ldyBsaW5lcyBpbnRvIGJhc2UgYnkgZmluZGluZyB0aGUgTENTCi0JICogLSBDcmVhdGUgdGhlIHRhYmxlIHRvIHJ1biBkeW5hbWljIHByb2dyYW1pbmcKKwkgKiAtIENyZWF0ZSB0aGUgdGFibGUgdG8gcnVuIGR5bmFtaWMgcHJvZ3JhbW1pbmcKIAkgKiAtIENvbXB1dGUgdGhlIExDUwogCSAqIC0gVGhlbiByZXZlcnNlIHJlYWQgdGhlIGRpcmVjdGlvbiBzdHJ1Y3R1cmU6CiAJICogICAtIElmIHdlIGhhdmUgTUFUQ0gsIGFzc2lnbiBwYXJlbnQgdG8gYmFzZSBmbGFnLCBhbmQgY29uc3VtZQpAQCAtNTE4LDggKzUxOSwxMSBAQAogCQl1bnNpZ25lZCBsb25nIGs7CiAKIAkJLyogUGFpbnQgYSBmZXcgbGluZXMgYmVmb3JlIHRoZSBmaXJzdCBpbnRlcmVzdGluZyBsaW5lLiAqLwotCQl3aGlsZSAoaiA8IGkpCi0JCQlzbGluZVtqKytdLmZsYWcgfD0gbWFyayB8IG5vX3ByZV9kZWxldGU7CisJCXdoaWxlIChqIDwgaSkgeworCQkJaWYgKCEoc2xpbmVbal0uZmxhZyAmIG1hcmspKQorCQkJCXNsaW5lW2pdLmZsYWcgfD0gbm9fcHJlX2RlbGV0ZTsKKwkJCXNsaW5lW2orK10uZmxhZyB8PSBtYXJrOworCQl9CiAKIAlhZ2FpbjoKIAkJLyogd2Uga25vdyB1cCB0byBpIGlzIHRvIGJlIGluY2x1ZGVkLiAgd2hlcmUgZG9lcyB0aGUKQEAgLTEzMDIsNiArMTMwNiw3IEBACiAJaW50IGksIG51bV9wYXRocywgbmVlZHNlcCwgc2hvd19sb2dfZmlyc3QsIG51bV9wYXJlbnQgPSBwYXJlbnRzLT5ucjsKIAogCWRpZmZvcHRzID0gKm9wdDsKKwlkaWZmX3RyZWVfc2V0dXBfcGF0aHMoZGlmZm9wdHMucGF0aHNwZWMucmF3LCAmZGlmZm9wdHMpOwogCWRpZmZvcHRzLm91dHB1dF9mb3JtYXQgPSBESUZGX0ZPUk1BVF9OT19PVVRQVVQ7CiAJRElGRl9PUFRfU0VUKCZkaWZmb3B0cywgUkVDVVJTSVZFKTsKIAlESUZGX09QVF9DTFIoJmRpZmZvcHRzLCBBTExPV19FWFRFUk5BTCk7CkBAIC0xMzcyLDEyICsxMzc3LDE0IEBACiAJCXBhdGhzID0gcGF0aHMtPm5leHQ7CiAJCWZyZWUodG1wKTsKIAl9CisKKwlkaWZmX3RyZWVfcmVsZWFzZV9wYXRocygmZGlmZm9wdHMpOwogfQogCiB2b2lkIGRpZmZfdHJlZV9jb21iaW5lZF9tZXJnZShjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsIGludCBkZW5zZSwKIAkJCSAgICAgIHN0cnVjdCByZXZfaW5mbyAqcmV2KQogewotCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50ID0gY29tbWl0LT5wYXJlbnRzOworCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50ID0gZ2V0X3NhdmVkX3BhcmVudHMocmV2LCBjb21taXQpOwogCXN0cnVjdCBzaGExX2FycmF5IHBhcmVudHMgPSBTSEExX0FSUkFZX0lOSVQ7CiAKIAl3aGlsZSAocGFyZW50KSB7CmRpZmYgLS1naXQgYS9jb21tYW5kLWxpc3QudHh0IGIvY29tbWFuZC1saXN0LnR4dAppbmRleCBiZjgzMzAzLi4wOGIwNGUyIDEwMDY0NAotLS0gYS9jb21tYW5kLWxpc3QudHh0CisrKyBiL2NvbW1hbmQtbGlzdC50eHQKQEAgLTEzLDYgKzEzLDcgQEAKIGdpdC1jYXQtZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVtYmluZ2ludGVycm9nYXRvcnMKIGdpdC1jaGVjay1hdHRyICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJlaGVscGVycwogZ2l0LWNoZWNrLWlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgIHB1cmVoZWxwZXJzCitnaXQtY2hlY2stbWFpbG1hcCAgICAgICAgICAgICAgICAgICAgICAgcHVyZWhlbHBlcnMKIGdpdC1jaGVja291dCAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWlucG9yY2VsYWluIGNvbW1vbgogZ2l0LWNoZWNrb3V0LWluZGV4ICAgICAgICAgICAgICAgICAgICAgIHBsdW1iaW5nbWFuaXB1bGF0b3JzCiBnaXQtY2hlY2stcmVmLWZvcm1hdCAgICAgICAgICAgICAgICAgICAgcHVyZWhlbHBlcnMKZGlmZiAtLWdpdCBhL2NvbW1pdC1zbGFiLmggYi9jb21taXQtc2xhYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YzgyODYKLS0tIC9kZXYvbnVsbAorKysgYi9jb21taXQtc2xhYi5oCkBAIC0wLDAgKzEsOTcgQEAKKyNpZm5kZWYgQ09NTUlUX1NMQUJfSAorI2RlZmluZSBDT01NSVRfU0xBQl9ICisKKy8qCisgKiBkZWZpbmVfY29tbWl0X3NsYWIoc2xhYm5hbWUsIGVsZW10eXBlKSBjcmVhdGVzIGJvaWxlcnBsYXRlIGNvZGUgdG8gZGVmaW5lCisgKiBhIG5ldyBzdHJ1Y3QgKHN0cnVjdCBzbGFibmFtZSkgdGhhdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhIHBpZWNlIG9mIGRhdGEKKyAqIG9mIGVsZW10eXBlIHRvIGNvbW1pdHMsIGFuZCBhIGZldyBmdW5jdGlvbnMgdG8gdXNlIHRoYXQgc3RydWN0LgorICoKKyAqIEFmdGVyIGluY2x1ZGluZyB0aGlzIGhlYWRlciBmaWxlLCB1c2luZzoKKyAqCisgKiBkZWZpbmVfY29tbWl0X3NsYWIoaW5kZWdlZSwgaW50KTsKKyAqCisgKiB3aWxsIGxldCB5b3UgY2FsbCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKKyAqCisgKiAtIGludCAqaW5kZWdyZWVfYXQoc3RydWN0IGluZGVncmVlICosIHN0cnVjdCBjb21taXQgKik7CisgKgorICogICBUaGlzIGZ1bmN0aW9uIGxvY2F0ZXMgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjb21taXQgaW4KKyAqICAgdGhlIGluZGVncmVlIHNsYWIsIGFuZCByZXR1cm5zIHRoZSBwb2ludGVyIHRvIGl0LgorICoKKyAqIC0gdm9pZCBpbml0X2luZGVncmVlKHN0cnVjdCBpbmRlZ3JlZSAqKTsKKyAqICAgdm9pZCBpbml0X2luZGVncmVlX3dpdGhfc3RyaWRlKHN0cnVjdCBpbmRlZ3JlZSAqLCBpbnQpOworICoKKyAqICAgSW5pdGlhbGl6ZXMgdGhlIGluZGVncmVlIHNsYWIgdGhhdCBhc3NvY2lhdGVzIGFuIGFycmF5IG9mIGludGVnZXJzCisgKiAgIHRvIGVhY2ggY29tbWl0LiAnc3RyaWRlJyBzcGVjaWZpZXMgaG93IGJpZyBlYWNoIGFycmF5IGlzLiAgVGhlIHNsYWIKKyAqICAgdGhhdCBpZCBpbml0aWFsaWVkIGJ5IHRoZSB2YXJpYW50IHdpdGhvdXQgIl93aXRoX3N0cmlkZSIgYXNzb2NpYXRlcworICogICBlYWNoIGNvbW1pdCB3aXRoIGFuIGFycmF5IG9mIG9uZSBpbnRlZ2VyLgorICovCisKKy8qIGFsbG9jYXRlIH41MTJrQiBhdCBvbmNlLCBhbGxvd2luZyBmb3IgbWFsbG9jIG92ZXJoZWFkICovCisjaWZuZGVmIENPTU1JVF9TTEFCX1NJWkUKKyNkZWZpbmUgQ09NTUlUX1NMQUJfU0laRSAoNTEyKjEwMjQtMzIpCisjZW5kaWYKKworI2RlZmluZSBkZWZpbmVfY29tbWl0X3NsYWIoc2xhYm5hbWUsIGVsZW10eXBlKSAJCQkJXAorCQkJCQkJCQkJXAorc3RydWN0IHNsYWJuYW1lIHsJCQkJCQkJXAorCXVuc2lnbmVkIHNsYWJfc2l6ZTsJCQkJCQlcCisJdW5zaWduZWQgc3RyaWRlOwkJCQkJCVwKKwl1bnNpZ25lZCBzbGFiX2NvdW50OwkJCQkJCVwKKwllbGVtdHlwZSAqKnNsYWI7CQkJCQkJXAorfTsJCQkJCQkJCQlcCitzdGF0aWMgaW50IHN0YXRfICMjc2xhYm5hbWUjIyByZWFsbG9jOwkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIHZvaWQgaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQlcCisJCQkJCSAgICB1bnNpZ25lZCBzdHJpZGUpCQlcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBlbGVtX3NpemU7CQkJCQkJXAorCWlmICghc3RyaWRlKQkJCQkJCQlcCisJCXN0cmlkZSA9IDE7CQkJCQkJXAorCXMtPnN0cmlkZSA9IHN0cmlkZTsJCQkJCQlcCisJZWxlbV9zaXplID0gc2l6ZW9mKGVsZW10eXBlKSAqIHN0cmlkZTsJCQkJXAorCXMtPnNsYWJfc2l6ZSA9IENPTU1JVF9TTEFCX1NJWkUgLyBlbGVtX3NpemU7CQkJXAorCXMtPnNsYWJfY291bnQgPSAwOwkJCQkJCVwKKwlzLT5zbGFiID0gTlVMTDsJCQkJCQkJXAorfQkJCQkJCQkJCVwKKwkJCQkJCQkJCVwKK3N0YXRpYyB2b2lkIGluaXRfICMjc2xhYm5hbWUoc3RydWN0IHNsYWJuYW1lICpzKQkJCVwKK3sJCQkJCQkJCQlcCisJaW5pdF8gIyNzbGFibmFtZSMjIF93aXRoX3N0cmlkZShzLCAxKTsJCQkJXAorfQkJCQkJCQkJCVwKKwkJCQkJCQkJCVwKK3N0YXRpYyB2b2lkIGNsZWFyXyAjI3NsYWJuYW1lKHN0cnVjdCBzbGFibmFtZSAqcykJCQlcCit7CQkJCQkJCQkJXAorCWludCBpOwkJCQkJCQkJXAorCWZvciAoaSA9IDA7IGkgPCBzLT5zbGFiX2NvdW50OyBpKyspCQkJCVwKKwkJZnJlZShzLT5zbGFiW2ldKTsJCQkJCVwKKwlzLT5zbGFiX2NvdW50ID0gMDsJCQkJCQlcCisJZnJlZShzLT5zbGFiKTsJCQkJCQkJXAorCXMtPnNsYWIgPSBOVUxMOwkJCQkJCQlcCit9CQkJCQkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIGVsZW10eXBlICpzbGFibmFtZSMjIF9hdChzdHJ1Y3Qgc2xhYm5hbWUgKnMsCQkJXAorCQkJCWNvbnN0IHN0cnVjdCBjb21taXQgKmMpCQkJXAorewkJCQkJCQkJCVwKKwlpbnQgbnRoX3NsYWIsIG50aF9zbG90OwkJCQkJCVwKKwkJCQkJCQkJCVwKKwludGhfc2xhYiA9IGMtPmluZGV4IC8gcy0+c2xhYl9zaXplOwkJCQlcCisJbnRoX3Nsb3QgPSBjLT5pbmRleCAlIHMtPnNsYWJfc2l6ZTsJCQkJXAorCQkJCQkJCQkJXAorCWlmIChzLT5zbGFiX2NvdW50IDw9IG50aF9zbGFiKSB7CQkJCVwKKwkJaW50IGk7CQkJCQkJCVwKKwkJcy0+c2xhYiA9IHhyZWFsbG9jKHMtPnNsYWIsCQkJCVwKKwkJCQkgICAobnRoX3NsYWIgKyAxKSAqIHNpemVvZihzLT5zbGFiKSk7CVwKKwkJc3RhdF8gIyNzbGFibmFtZSMjIHJlYWxsb2MrKzsJCQkJXAorCQlmb3IgKGkgPSBzLT5zbGFiX2NvdW50OyBpIDw9IG50aF9zbGFiOyBpKyspCQlcCisJCQlzLT5zbGFiW2ldID0gTlVMTDsJCQkJXAorCQlzLT5zbGFiX2NvdW50ID0gbnRoX3NsYWIgKyAxOwkJCQlcCisJfQkJCQkJCQkJXAorCWlmICghcy0+c2xhYltudGhfc2xhYl0pCQkJCQkJXAorCQlzLT5zbGFiW250aF9zbGFiXSA9IHhjYWxsb2Mocy0+c2xhYl9zaXplLAkJXAorCQkJCQkgICAgc2l6ZW9mKCoqcy0+c2xhYikgKiBzLT5zdHJpZGUpOwkJXAorCXJldHVybiAmcy0+c2xhYltudGhfc2xhYl1bbnRoX3Nsb3QgKiBzLT5zdHJpZGVdOwkJCQlcCit9CQkJCQkJCQkJXAorCQkJCQkJCQkJXAorc3RhdGljIGludCBzdGF0XyAjI3NsYWJuYW1lIyMgcmVhbGxvYworCisjZW5kaWYgLyogQ09NTUlUX1NMQUJfSCAqLwpkaWZmIC0tZ2l0IGEvY29tbWl0LmMgYi9jb21taXQuYwppbmRleCA4ODhlMDJhLi5kZTE2YTNjIDEwMDY0NAotLS0gYS9jb21taXQuYworKysgYi9jb21taXQuYwpAQCAtOCwxMiArOCwxNSBAQAogI2luY2x1ZGUgIm5vdGVzLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgogI2luY2x1ZGUgIm1lcmdlc29ydC5oIgorI2luY2x1ZGUgImNvbW1pdC1zbGFiLmgiCisjaW5jbHVkZSAicHJpby1xdWV1ZS5oIgogCiBzdGF0aWMgc3RydWN0IGNvbW1pdF9leHRyYV9oZWFkZXIgKnJlYWRfY29tbWl0X2V4dHJhX2hlYWRlcl9saW5lcyhjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKiopOwogCiBpbnQgc2F2ZV9jb21taXRfYnVmZmVyID0gMTsKIAogY29uc3QgY2hhciAqY29tbWl0X3R5cGUgPSAiY29tbWl0IjsKK3N0YXRpYyBpbnQgY29tbWl0X2NvdW50OwogCiBzdGF0aWMgc3RydWN0IGNvbW1pdCAqY2hlY2tfY29tbWl0KHN0cnVjdCBvYmplY3QgKm9iaiwKIAkJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLApAQCAtNTgsOCArNjEsMTEgQEAKIHN0cnVjdCBjb21taXQgKmxvb2t1cF9jb21taXQoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSBsb29rdXBfb2JqZWN0KHNoYTEpOwotCWlmICghb2JqKQotCQlyZXR1cm4gY3JlYXRlX29iamVjdChzaGExLCBPQkpfQ09NTUlULCBhbGxvY19jb21taXRfbm9kZSgpKTsKKwlpZiAoIW9iaikgeworCQlzdHJ1Y3QgY29tbWl0ICpjID0gYWxsb2NfY29tbWl0X25vZGUoKTsKKwkJYy0+aW5kZXggPSBjb21taXRfY291bnQrKzsKKwkJcmV0dXJuIGNyZWF0ZV9vYmplY3Qoc2hhMSwgT0JKX0NPTU1JVCwgYyk7CisJfQogCWlmICghb2JqLT50eXBlKQogCQlvYmotPnR5cGUgPSBPQkpfQ09NTUlUOwogCXJldHVybiBjaGVja19jb21taXQob2JqLCBzaGExLCAwKTsKQEAgLTM3MSw2ICszNzcsMjIgQEAKIAlyZXR1cm4gYzsKIH0KIAorc3RydWN0IGNvbW1pdF9saXN0ICpjb3B5X2NvbW1pdF9saXN0KHN0cnVjdCBjb21taXRfbGlzdCAqbGlzdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmhlYWQgPSBOVUxMOworCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwID0gJmhlYWQ7CisJd2hpbGUgKGxpc3QpIHsKKwkJc3RydWN0IGNvbW1pdF9saXN0ICpuZXc7CisJCW5ldyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21taXRfbGlzdCkpOworCQluZXctPml0ZW0gPSBsaXN0LT5pdGVtOworCQluZXctPm5leHQgPSBOVUxMOworCQkqcHAgPSBuZXc7CisJCXBwID0gJm5ldy0+bmV4dDsKKwkJbGlzdCA9IGxpc3QtPm5leHQ7CisJfQorCXJldHVybiBoZWFkOworfQorCiB2b2lkIGZyZWVfY29tbWl0X2xpc3Qoc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0KQogewogCXdoaWxlIChsaXN0KSB7CkBAIC01MDcsMzIgKzUyOSwxMzYgQEAKIH0KIAogLyoKKyAqIFRvcG9sb2dpY2FsIHNvcnQgc3VwcG9ydAorICovCisKKy8qIGNvdW50IG51bWJlciBvZiBjaGlsZHJlbiB0aGF0IGhhdmUgbm90IGJlZW4gZW1pdHRlZCAqLworZGVmaW5lX2NvbW1pdF9zbGFiKGluZGVncmVlX3NsYWIsIGludCk7CisKKy8qIHJlY29yZCBhdXRob3ItZGF0ZSBmb3IgZWFjaCBjb21taXQgb2JqZWN0ICovCitkZWZpbmVfY29tbWl0X3NsYWIoYXV0aG9yX2RhdGVfc2xhYiwgdW5zaWduZWQgbG9uZyk7CisKK3N0YXRpYyB2b2lkIHJlY29yZF9hdXRob3JfZGF0ZShzdHJ1Y3QgYXV0aG9yX2RhdGVfc2xhYiAqYXV0aG9yX2RhdGUsCisJCQkgICAgICAgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCWNvbnN0IGNoYXIgKmJ1ZiwgKmxpbmVfZW5kOworCWNoYXIgKmJ1ZmZlciA9IE5VTEw7CisJc3RydWN0IGlkZW50X3NwbGl0IGlkZW50OworCWNoYXIgKmRhdGVfZW5kOworCXVuc2lnbmVkIGxvbmcgZGF0ZTsKKworCWlmICghY29tbWl0LT5idWZmZXIpIHsKKwkJdW5zaWduZWQgbG9uZyBzaXplOworCQllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJCWJ1ZmZlciA9IHJlYWRfc2hhMV9maWxlKGNvbW1pdC0+b2JqZWN0LnNoYTEsICZ0eXBlLCAmc2l6ZSk7CisJCWlmICghYnVmZmVyKQorCQkJcmV0dXJuOworCX0KKworCWZvciAoYnVmID0gY29tbWl0LT5idWZmZXIgPyBjb21taXQtPmJ1ZmZlciA6IGJ1ZmZlcjsKKwkgICAgIGJ1ZjsKKwkgICAgIGJ1ZiA9IGxpbmVfZW5kICsgMSkgeworCQlsaW5lX2VuZCA9IHN0cmNocm51bChidWYsICdcbicpOworCQlpZiAocHJlZml4Y21wKGJ1ZiwgImF1dGhvciAiKSkgeworCQkJaWYgKCFsaW5lX2VuZFswXSB8fCBsaW5lX2VuZFsxXSA9PSAnXG4nKQorCQkJCXJldHVybjsgLyogZW5kIG9mIGhlYWRlciAqLworCQkJY29udGludWU7CisJCX0KKwkJaWYgKHNwbGl0X2lkZW50X2xpbmUoJmlkZW50LAorCQkJCSAgICAgYnVmICsgc3RybGVuKCJhdXRob3IgIiksCisJCQkJICAgICBsaW5lX2VuZCAtIChidWYgKyBzdHJsZW4oImF1dGhvciAiKSkpIHx8CisJCSAgICAhaWRlbnQuZGF0ZV9iZWdpbiB8fCAhaWRlbnQuZGF0ZV9lbmQpCisJCQlnb3RvIGZhaWxfZXhpdDsgLyogbWFsZm9ybWVkICJhdXRob3IiIGxpbmUgKi8KKwkJYnJlYWs7CisJfQorCisJZGF0ZSA9IHN0cnRvdWwoaWRlbnQuZGF0ZV9iZWdpbiwgJmRhdGVfZW5kLCAxMCk7CisJaWYgKGRhdGVfZW5kICE9IGlkZW50LmRhdGVfZW5kKQorCQlnb3RvIGZhaWxfZXhpdDsgLyogbWFsZm9ybWVkIGRhdGUgKi8KKwkqKGF1dGhvcl9kYXRlX3NsYWJfYXQoYXV0aG9yX2RhdGUsIGNvbW1pdCkpID0gZGF0ZTsKKworZmFpbF9leGl0OgorCWZyZWUoYnVmZmVyKTsKK30KKworc3RhdGljIGludCBjb21wYXJlX2NvbW1pdHNfYnlfYXV0aG9yX2RhdGUoY29uc3Qgdm9pZCAqYV8sIGNvbnN0IHZvaWQgKmJfLAorCQkJCQkgIHZvaWQgKmNiX2RhdGEpCit7CisJY29uc3Qgc3RydWN0IGNvbW1pdCAqYSA9IGFfLCAqYiA9IGJfOworCXN0cnVjdCBhdXRob3JfZGF0ZV9zbGFiICphdXRob3JfZGF0ZSA9IGNiX2RhdGE7CisJdW5zaWduZWQgbG9uZyBhX2RhdGUgPSAqKGF1dGhvcl9kYXRlX3NsYWJfYXQoYXV0aG9yX2RhdGUsIGEpKTsKKwl1bnNpZ25lZCBsb25nIGJfZGF0ZSA9ICooYXV0aG9yX2RhdGVfc2xhYl9hdChhdXRob3JfZGF0ZSwgYikpOworCisJLyogbmV3ZXIgY29tbWl0cyB3aXRoIGxhcmdlciBkYXRlIGZpcnN0ICovCisJaWYgKGFfZGF0ZSA8IGJfZGF0ZSkKKwkJcmV0dXJuIDE7CisJZWxzZSBpZiAoYV9kYXRlID4gYl9kYXRlKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIDA7Cit9CisKK2ludCBjb21wYXJlX2NvbW1pdHNfYnlfY29tbWl0X2RhdGUoY29uc3Qgdm9pZCAqYV8sIGNvbnN0IHZvaWQgKmJfLCB2b2lkICp1bnVzZWQpCit7CisJY29uc3Qgc3RydWN0IGNvbW1pdCAqYSA9IGFfLCAqYiA9IGJfOworCS8qIG5ld2VyIGNvbW1pdHMgd2l0aCBsYXJnZXIgZGF0ZSBmaXJzdCAqLworCWlmIChhLT5kYXRlIDwgYi0+ZGF0ZSkKKwkJcmV0dXJuIDE7CisJZWxzZSBpZiAoYS0+ZGF0ZSA+IGItPmRhdGUpCisJCXJldHVybiAtMTsKKwlyZXR1cm4gMDsKK30KKworLyoKICAqIFBlcmZvcm1zIGFuIGluLXBsYWNlIHRvcG9sb2dpY2FsIHNvcnQgb24gdGhlIGxpc3Qgc3VwcGxpZWQuCiAgKi8KLXZvaWQgc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcihzdHJ1Y3QgY29tbWl0X2xpc3QgKiogbGlzdCwgaW50IGxpZm8pCit2b2lkIHNvcnRfaW5fdG9wb2xvZ2ljYWxfb3JkZXIoc3RydWN0IGNvbW1pdF9saXN0ICoqbGlzdCwgZW51bSByZXZfc29ydF9vcmRlciBzb3J0X29yZGVyKQogewogCXN0cnVjdCBjb21taXRfbGlzdCAqbmV4dCwgKm9yaWcgPSAqbGlzdDsKLQlzdHJ1Y3QgY29tbWl0X2xpc3QgKndvcmssICoqaW5zZXJ0OwogCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwdHI7CisJc3RydWN0IGluZGVncmVlX3NsYWIgaW5kZWdyZWU7CisJc3RydWN0IHByaW9fcXVldWUgcXVldWU7CisJc3RydWN0IGNvbW1pdCAqY29tbWl0OworCXN0cnVjdCBhdXRob3JfZGF0ZV9zbGFiIGF1dGhvcl9kYXRlOwogCiAJaWYgKCFvcmlnKQogCQlyZXR1cm47CiAJKmxpc3QgPSBOVUxMOwogCisJaW5pdF9pbmRlZ3JlZV9zbGFiKCZpbmRlZ3JlZSk7CisJbWVtc2V0KCZxdWV1ZSwgJ1wwJywgc2l6ZW9mKHF1ZXVlKSk7CisKKwlzd2l0Y2ggKHNvcnRfb3JkZXIpIHsKKwlkZWZhdWx0OiAvKiBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUiAqLworCQlxdWV1ZS5jb21wYXJlID0gTlVMTDsKKwkJYnJlYWs7CisJY2FzZSBSRVZfU09SVF9CWV9DT01NSVRfREFURToKKwkJcXVldWUuY29tcGFyZSA9IGNvbXBhcmVfY29tbWl0c19ieV9jb21taXRfZGF0ZTsKKwkJYnJlYWs7CisJY2FzZSBSRVZfU09SVF9CWV9BVVRIT1JfREFURToKKwkJaW5pdF9hdXRob3JfZGF0ZV9zbGFiKCZhdXRob3JfZGF0ZSk7CisJCXF1ZXVlLmNvbXBhcmUgPSBjb21wYXJlX2NvbW1pdHNfYnlfYXV0aG9yX2RhdGU7CisJCXF1ZXVlLmNiX2RhdGEgPSAmYXV0aG9yX2RhdGU7CisJCWJyZWFrOworCX0KKwogCS8qIE1hcmsgdGhlbSBhbmQgY2xlYXIgdGhlIGluZGVncmVlICovCiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gbmV4dC0+aXRlbTsKLQkJY29tbWl0LT5pbmRlZ3JlZSA9IDE7CisJCSooaW5kZWdyZWVfc2xhYl9hdCgmaW5kZWdyZWUsIGNvbW1pdCkpID0gMTsKKwkJLyogYWxzbyByZWNvcmQgdGhlIGF1dGhvciBkYXRlcywgaWYgbmVlZGVkICovCisJCWlmIChzb3J0X29yZGVyID09IFJFVl9TT1JUX0JZX0FVVEhPUl9EQVRFKQorCQkJcmVjb3JkX2F1dGhvcl9kYXRlKCZhdXRob3JfZGF0ZSwgY29tbWl0KTsKIAl9CiAKIAkvKiB1cGRhdGUgdGhlIGluZGVncmVlICovCiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICogcGFyZW50cyA9IG5leHQtPml0ZW0tPnBhcmVudHM7CisJCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cyA9IG5leHQtPml0ZW0tPnBhcmVudHM7CiAJCXdoaWxlIChwYXJlbnRzKSB7CiAJCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwYXJlbnRzLT5pdGVtOworCQkJaW50ICpwaSA9IGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBwYXJlbnQpOwogCi0JCQlpZiAocGFyZW50LT5pbmRlZ3JlZSkKLQkJCQlwYXJlbnQtPmluZGVncmVlKys7CisJCQlpZiAoKnBpKQorCQkJCSgqcGkpKys7CiAJCQlwYXJlbnRzID0gcGFyZW50cy0+bmV4dDsKIAkJfQogCX0KQEAgLTU0NCwzNCArNjcwLDMzIEBACiAJICoKIAkgKiB0aGUgdGlwcyBzZXJ2ZSBhcyBhIHN0YXJ0aW5nIHNldCBmb3IgdGhlIHdvcmsgcXVldWUuCiAJICovCi0Jd29yayA9IE5VTEw7Ci0JaW5zZXJ0ID0gJndvcms7CiAJZm9yIChuZXh0ID0gb3JpZzsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsKIAkJc3RydWN0IGNvbW1pdCAqY29tbWl0ID0gbmV4dC0+aXRlbTsKIAotCQlpZiAoY29tbWl0LT5pbmRlZ3JlZSA9PSAxKQotCQkJaW5zZXJ0ID0gJmNvbW1pdF9saXN0X2luc2VydChjb21taXQsIGluc2VydCktPm5leHQ7CisJCWlmICgqKGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBjb21taXQpKSA9PSAxKQorCQkJcHJpb19xdWV1ZV9wdXQoJnF1ZXVlLCBjb21taXQpOwogCX0KIAotCS8qIHByb2Nlc3MgdGhlIGxpc3QgaW4gdG9wb2xvZ2ljYWwgb3JkZXIgKi8KLQlpZiAoIWxpZm8pCi0JCWNvbW1pdF9saXN0X3NvcnRfYnlfZGF0ZSgmd29yayk7CisJLyoKKwkgKiBUaGlzIGlzIHVuZm9ydHVuYXRlOyB0aGUgaW5pdGlhbCB0aXBzIG5lZWQgdG8gYmUgc2hvd24KKwkgKiBpbiB0aGUgb3JkZXIgZ2l2ZW4gZnJvbSB0aGUgcmV2aXNpb24gdHJhdmVyc2FsIG1hY2hpbmVyeS4KKwkgKi8KKwlpZiAoc29ydF9vcmRlciA9PSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUikKKwkJcHJpb19xdWV1ZV9yZXZlcnNlKCZxdWV1ZSk7CisKKwkvKiBXZSBubyBsb25nZXIgbmVlZCB0aGUgY29tbWl0IGxpc3QgKi8KKwlmcmVlX2NvbW1pdF9saXN0KG9yaWcpOwogCiAJcHB0ciA9IGxpc3Q7CiAJKmxpc3QgPSBOVUxMOwotCXdoaWxlICh3b3JrKSB7Ci0JCXN0cnVjdCBjb21taXQgKmNvbW1pdDsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLCAqd29ya19pdGVtOworCXdoaWxlICgoY29tbWl0ID0gcHJpb19xdWV1ZV9nZXQoJnF1ZXVlKSkgIT0gTlVMTCkgeworCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHM7CiAKLQkJd29ya19pdGVtID0gd29yazsKLQkJd29yayA9IHdvcmtfaXRlbS0+bmV4dDsKLQkJd29ya19pdGVtLT5uZXh0ID0gTlVMTDsKLQotCQljb21taXQgPSB3b3JrX2l0ZW0tPml0ZW07CiAJCWZvciAocGFyZW50cyA9IGNvbW1pdC0+cGFyZW50czsgcGFyZW50cyA7IHBhcmVudHMgPSBwYXJlbnRzLT5uZXh0KSB7CiAJCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwYXJlbnRzLT5pdGVtOworCQkJaW50ICpwaSA9IGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBwYXJlbnQpOwogCi0JCQlpZiAoIXBhcmVudC0+aW5kZWdyZWUpCisJCQlpZiAoISpwaSkKIAkJCQljb250aW51ZTsKIAogCQkJLyoKQEAgLTU3OSwyMSArNzA0LDIyIEBACiAJCQkgKiB3aGVuIGFsbCB0aGVpciBjaGlsZHJlbiBoYXZlIGJlZW4gZW1pdHRlZCB0aGVyZWJ5CiAJCQkgKiBndWFyYW50ZWVpbmcgdG9wb2xvZ2ljYWwgb3JkZXIuCiAJCQkgKi8KLQkJCWlmICgtLXBhcmVudC0+aW5kZWdyZWUgPT0gMSkgewotCQkJCWlmICghbGlmbykKLQkJCQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUocGFyZW50LCAmd29yayk7Ci0JCQkJZWxzZQotCQkJCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmd29yayk7Ci0JCQl9CisJCQlpZiAoLS0oKnBpKSA9PSAxKQorCQkJCXByaW9fcXVldWVfcHV0KCZxdWV1ZSwgcGFyZW50KTsKIAkJfQogCQkvKgotCQkgKiB3b3JrX2l0ZW0gaXMgYSBjb21taXQgYWxsIG9mIHdob3NlIGNoaWxkcmVuCi0JCSAqIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWQuIHdlIGNhbiBlbWl0IGl0IG5vdy4KKwkJICogYWxsIGNoaWxkcmVuIG9mIGNvbW1pdCBoYXZlIGFscmVhZHkgYmVlbgorCQkgKiBlbWl0dGVkLiB3ZSBjYW4gZW1pdCBpdCBub3cuCiAJCSAqLwotCQljb21taXQtPmluZGVncmVlID0gMDsKLQkJKnBwdHIgPSB3b3JrX2l0ZW07Ci0JCXBwdHIgPSAmd29ya19pdGVtLT5uZXh0OworCQkqKGluZGVncmVlX3NsYWJfYXQoJmluZGVncmVlLCBjb21taXQpKSA9IDA7CisKKwkJcHB0ciA9ICZjb21taXRfbGlzdF9pbnNlcnQoY29tbWl0LCBwcHRyKS0+bmV4dDsKIAl9CisKKwljbGVhcl9pbmRlZ3JlZV9zbGFiKCZpbmRlZ3JlZSk7CisJY2xlYXJfcHJpb19xdWV1ZSgmcXVldWUpOworCWlmIChzb3J0X29yZGVyID09IFJFVl9TT1JUX0JZX0FVVEhPUl9EQVRFKQorCQljbGVhcl9hdXRob3JfZGF0ZV9zbGFiKCZhdXRob3JfZGF0ZSk7CiB9CiAKIC8qIG1lcmdlLWJhc2Ugc3R1ZmYgKi8KQEAgLTEyNDAsMTAgKzEzNjYsMTUgQEAKIHN0YXRpYyBpbnQgZmluZF9pbnZhbGlkX3V0ZjgoY29uc3QgY2hhciAqYnVmLCBpbnQgbGVuKQogewogCWludCBvZmZzZXQgPSAwOworCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbWF4X2NvZGVwb2ludFtdID0geworCQkweDdmLCAweDdmZiwgMHhmZmZmLCAweDEwZmZmZgorCX07CiAKIAl3aGlsZSAobGVuKSB7CiAJCXVuc2lnbmVkIGNoYXIgYyA9ICpidWYrKzsKIAkJaW50IGJ5dGVzLCBiYWRfb2Zmc2V0OworCQl1bnNpZ25lZCBpbnQgY29kZXBvaW50OworCQl1bnNpZ25lZCBpbnQgbWluX3ZhbCwgbWF4X3ZhbDsKIAogCQlsZW4tLTsKIAkJb2Zmc2V0Kys7CkBAIC0xMjY0LDI0ICsxMzk1LDQ4IEBACiAJCQlieXRlcysrOwogCQl9CiAKLQkJLyogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDUgbW9yZSBieXRlcyAqLwotCQlpZiAoYnl0ZXMgPCAxIHx8IGJ5dGVzID4gNSkKKwkJLyoKKwkJICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDMgbW9yZSBieXRlcy4gIExvbmdlciBzZXF1ZW5jZXMgcmVzdWx0IGluCisJCSAqIGNvZGVwb2ludHMgYmV5b25kIFUrMTBGRkZGLCB3aGljaCBhcmUgZ3VhcmFudGVlZCBuZXZlciB0byBleGlzdC4KKwkJICovCisJCWlmIChieXRlcyA8IDEgfHwgMyA8IGJ5dGVzKQogCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CiAKIAkJLyogRG8gd2UgKmhhdmUqIHRoYXQgbWFueSBieXRlcz8gKi8KIAkJaWYgKGxlbiA8IGJ5dGVzKQogCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CiAKKwkJLyoKKwkJICogUGxhY2UgdGhlIGVuY29kZWQgYml0cyBhdCB0aGUgYm90dG9tIG9mIHRoZSB2YWx1ZSBhbmQgY29tcHV0ZSB0aGUKKwkJICogdmFsaWQgcmFuZ2UuCisJCSAqLworCQljb2RlcG9pbnQgPSAoYyAmIDB4N2YpID4+IGJ5dGVzOworCQltaW5fdmFsID0gbWF4X2NvZGVwb2ludFtieXRlcy0xXSArIDE7CisJCW1heF92YWwgPSBtYXhfY29kZXBvaW50W2J5dGVzXTsKKwogCQlvZmZzZXQgKz0gYnl0ZXM7CiAJCWxlbiAtPSBieXRlczsKIAogCQkvKiBBbmQgdmVyaWZ5IHRoYXQgdGhleSBhcmUgZ29vZCBjb250aW51YXRpb24gYnl0ZXMgKi8KIAkJZG8geworCQkJY29kZXBvaW50IDw8PSA2OworCQkJY29kZXBvaW50IHw9ICpidWYgJiAweDNmOwogCQkJaWYgKCgqYnVmKysgJiAweGMwKSAhPSAweDgwKQogCQkJCXJldHVybiBiYWRfb2Zmc2V0OwogCQl9IHdoaWxlICgtLWJ5dGVzKTsKIAotCQkvKiBXZSBjb3VsZC9zaG91bGQgY2hlY2sgdGhlIHZhbHVlIGFuZCBsZW5ndGggaGVyZSB0b28gKi8KKwkJLyogUmVqZWN0IGNvZGVwb2ludHMgdGhhdCBhcmUgb3V0IG9mIHJhbmdlIGZvciB0aGUgc2VxdWVuY2UgbGVuZ3RoLiAqLworCQlpZiAoY29kZXBvaW50IDwgbWluX3ZhbCB8fCBjb2RlcG9pbnQgPiBtYXhfdmFsKQorCQkJcmV0dXJuIGJhZF9vZmZzZXQ7CisJCS8qIFN1cnJvZ2F0ZXMgYXJlIG9ubHkgZm9yIFVURi0xNiBhbmQgY2Fubm90IGJlIGVuY29kZWQgaW4gVVRGLTguICovCisJCWlmICgoY29kZXBvaW50ICYgMHgxZmY4MDApID09IDB4ZDgwMCkKKwkJCXJldHVybiBiYWRfb2Zmc2V0OworCQkvKiBVK3h4RkZGRSBhbmQgVSt4eEZGRkYgYXJlIGd1YXJhbnRlZWQgbm9uLWNoYXJhY3RlcnMuICovCisJCWlmICgoY29kZXBvaW50ICYgMHhmZmZlKSA9PSAweGZmZmUpCisJCQlyZXR1cm4gYmFkX29mZnNldDsKKwkJLyogU28gYXJlIGFueXRoaW5nIGluIHRoZSByYW5nZSBVK0ZERDAuLlUrRkRFRi4gKi8KKwkJaWYgKGNvZGVwb2ludCA+PSAweGZkZDAgJiYgY29kZXBvaW50IDw9IDB4ZmRlZikKKwkJCXJldHVybiBiYWRfb2Zmc2V0OwogCX0KIAlyZXR1cm4gLTE7CiB9CkBAIC0xMjkxLDkgKzE0NDYsNiBAQAogICoKICAqIElmIGl0IGlzbid0LCBpdCBhc3N1bWVzIGFueSBub24tdXRmOCBjaGFyYWN0ZXJzIGFyZSBMYXRpbjEsCiAgKiBhbmQgZG9lcyB0aGUgY29udmVyc2lvbi4KLSAqCi0gKiBGaXhtZTogd2Ugc2hvdWxkIHByb2JhYmx5IGFsc28gZGlzYWxsb3cgb3ZlcmxvbmcgZm9ybXMgYW5kCi0gKiBpbnZhbGlkIGNoYXJhY3RlcnMuIEJ1dCB3ZSBkb24ndCBkbyB0aGF0IGN1cnJlbnRseS4KICAqLwogc3RhdGljIGludCB2ZXJpZnlfdXRmOChzdHJ1Y3Qgc3RyYnVmICpidWYpCiB7CmRpZmYgLS1naXQgYS9jb21taXQuaCBiL2NvbW1pdC5oCmluZGV4IDY3YmQ1MDkuLmY5NTA0ZjcgMTAwNjQ0Ci0tLSBhL2NvbW1pdC5oCisrKyBiL2NvbW1pdC5oCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgInN0cmJ1Zi5oIgogI2luY2x1ZGUgImRlY29yYXRlLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgorI2luY2x1ZGUgInN0cmluZy1saXN0LmgiCiAKIHN0cnVjdCBjb21taXRfbGlzdCB7CiAJc3RydWN0IGNvbW1pdCAqaXRlbTsKQEAgLTE1LDcgKzE2LDcgQEAKIHN0cnVjdCBjb21taXQgewogCXN0cnVjdCBvYmplY3Qgb2JqZWN0OwogCXZvaWQgKnV0aWw7Ci0JdW5zaWduZWQgaW50IGluZGVncmVlOworCXVuc2lnbmVkIGludCBpbmRleDsKIAl1bnNpZ25lZCBsb25nIGRhdGU7CiAJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzOwogCXN0cnVjdCB0cmVlICp0cmVlOwpAQCAtNjEsNiArNjIsOSBAQAogCQkJCSAgICBzdHJ1Y3QgY29tbWl0X2xpc3QgKipsaXN0KTsKIHZvaWQgY29tbWl0X2xpc3Rfc29ydF9ieV9kYXRlKHN0cnVjdCBjb21taXRfbGlzdCAqKmxpc3QpOwogCisvKiBTaGFsbG93IGNvcHkgb2YgdGhlIGlucHV0IGxpc3QgKi8KK3N0cnVjdCBjb21taXRfbGlzdCAqY29weV9jb21taXRfbGlzdChzdHJ1Y3QgY29tbWl0X2xpc3QgKmxpc3QpOworCiB2b2lkIGZyZWVfY29tbWl0X2xpc3Qoc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0KTsKIAogLyogQ29tbWl0IGZvcm1hdHMgKi8KQEAgLTc5LDYgKzgzLDkgQEAKIH07CiAKIHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCB7CisJLyoKKwkgKiBDYWxsZXJzIHNob3VsZCB0d2VhayB0aGVzZSB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHBwXyogZnVuY3Rpb25zLgorCSAqLwogCWVudW0gY21pdF9mbXQgZm10OwogCWludCBhYmJyZXY7CiAJY29uc3QgY2hhciAqc3ViamVjdDsKQEAgLTkyLDYgKzk5LDEzIEBACiAJY29uc3QgY2hhciAqb3V0cHV0X2VuY29kaW5nOwogCXN0cnVjdCBzdHJpbmdfbGlzdCAqbWFpbG1hcDsKIAlpbnQgY29sb3I7CisJc3RydWN0IGlkZW50X3NwbGl0ICpmcm9tX2lkZW50OworCisJLyoKKwkgKiBGaWVsZHMgYmVsb3cgaGVyZSBhcmUgbWFuaXB1bGF0ZWQgaW50ZXJuYWxseSBieSBwcF8qIGZ1bmN0aW9ucyBhbmQKKwkgKiBzaG91bGQgbm90IGJlIGNvdW50ZWQgb24gYnkgY2FsbGVycy4KKwkgKi8KKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgaW5fYm9keV9oZWFkZXJzOwogfTsKIAogc3RydWN0IHVzZXJmb3JtYXRfd2FudCB7CkBAIC0xMTEsMjAgKzEyNSwyMCBAQAogZXh0ZXJuIHZvaWQgZm9ybWF0X2NvbW1pdF9tZXNzYWdlKGNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCwKIAkJCQkgIGNvbnN0IGNoYXIgKmZvcm1hdCwgc3RydWN0IHN0cmJ1ZiAqc2IsCiAJCQkJICBjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKmNvbnRleHQpOwotZXh0ZXJuIHZvaWQgcHJldHR5X3ByaW50X2NvbW1pdChjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAorZXh0ZXJuIHZvaWQgcHJldHR5X3ByaW50X2NvbW1pdChzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkJCWNvbnN0IHN0cnVjdCBjb21taXQgKmNvbW1pdCwKIAkJCQlzdHJ1Y3Qgc3RyYnVmICpzYik7CiBleHRlcm4gdm9pZCBwcF9jb21taXRfZWFzeShlbnVtIGNtaXRfZm10IGZtdCwgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0LAogCQkJICAgc3RydWN0IHN0cmJ1ZiAqc2IpOwotdm9pZCBwcF91c2VyX2luZm8oY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3ZvaWQgcHBfdXNlcl9pbmZvKHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCSAgY29uc3QgY2hhciAqd2hhdCwgc3RydWN0IHN0cmJ1ZiAqc2IsCiAJCSAgY29uc3QgY2hhciAqbGluZSwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwotdm9pZCBwcF90aXRsZV9saW5lKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3RpdGxlX2xpbmUoc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKIAkJICAgY29uc3QgY2hhciAqKm1zZ19wLAogCQkgICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCiAJCSAgIGludCBuZWVkXzhiaXRfY3RlKTsKLXZvaWQgcHBfcmVtYWluZGVyKGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHBwX3JlbWFpbmRlcihzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkgIGNvbnN0IGNoYXIgKiptc2dfcCwKIAkJICBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICBpbnQgaW5kZW50KTsKQEAgLTE0MiwxNSArMTU2LDI0IEBACiB2b2lkIGNsZWFyX2NvbW1pdF9tYXJrc19tYW55KGludCBuciwgc3RydWN0IGNvbW1pdCAqKmNvbW1pdCwgdW5zaWduZWQgaW50IG1hcmspOwogdm9pZCBjbGVhcl9jb21taXRfbWFya3NfZm9yX29iamVjdF9hcnJheShzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphLCB1bnNpZ25lZCBtYXJrKTsKIAorCitlbnVtIHJldl9zb3J0X29yZGVyIHsKKwlSRVZfU09SVF9JTl9HUkFQSF9PUkRFUiA9IDAsCisJUkVWX1NPUlRfQllfQ09NTUlUX0RBVEUsCisJUkVWX1NPUlRfQllfQVVUSE9SX0RBVEUKK307CisKIC8qCiAgKiBQZXJmb3JtcyBhbiBpbi1wbGFjZSB0b3BvbG9naWNhbCBzb3J0IG9mIGxpc3Qgc3VwcGxpZWQuCiAgKgogICogICBpbnZhcmlhbnQgb2YgcmVzdWx0aW5nIGxpc3QgaXM6CiAgKiAgICAgIGEgcmVhY2hhYmxlIGZyb20gYiA9PiBvcmQoYikgPCBvcmQoYSkKLSAqICAgaW4gYWRkaXRpb24sIHdoZW4gbGlmbyA9PSAwLCBjb21taXRzIG9uIHBhcmFsbGVsIHRyYWNrcyBhcmUKLSAqICAgc29ydGVkIGluIHRoZSBkYXRlcyBvcmRlci4KKyAqICAgc29ydF9vcmRlciBmdXJ0aGVyIHNwZWNpZmllczoKKyAqICAgUkVWX1NPUlRfSU5fR1JBUEhfT1JERVI6IHRyeSB0byBzaG93IGEgY29tbWl0IG9uIGEgc2luZ2xlLXBhcmVudAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhaW4gdG9nZXRoZXIuCisgKiAgIFJFVl9TT1JUX0JZX0NPTU1JVF9EQVRFOiBzaG93IGVsaWdpYmxlIGNvbW1pdHMgaW4gY29tbWl0dGVyLWRhdGUgb3JkZXIuCiAgKi8KLXZvaWQgc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcihzdHJ1Y3QgY29tbWl0X2xpc3QgKiogbGlzdCwgaW50IGxpZm8pOwordm9pZCBzb3J0X2luX3RvcG9sb2dpY2FsX29yZGVyKHN0cnVjdCBjb21taXRfbGlzdCAqKiwgZW51bSByZXZfc29ydF9vcmRlcik7CiAKIHN0cnVjdCBjb21taXRfZ3JhZnQgewogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CkBAIC0xNzYsNiArMTk5LDggQEAKIGV4dGVybiBpbnQgaXNfcmVwb3NpdG9yeV9zaGFsbG93KHZvaWQpOwogZXh0ZXJuIHN0cnVjdCBjb21taXRfbGlzdCAqZ2V0X3NoYWxsb3dfY29tbWl0cyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICpoZWFkcywKIAkJaW50IGRlcHRoLCBpbnQgc2hhbGxvd19mbGFnLCBpbnQgbm90X3NoYWxsb3dfZmxhZyk7CitleHRlcm4gdm9pZCBjaGVja19zaGFsbG93X2ZpbGVfZm9yX3VwZGF0ZSh2b2lkKTsKK2V4dGVybiB2b2lkIHNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlKGNvbnN0IGNoYXIgKnBhdGgpOwogCiBpbnQgaXNfZGVzY2VuZGFudF9vZihzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXRfbGlzdCAqKTsKIGludCBpbl9tZXJnZV9iYXNlcyhzdHJ1Y3QgY29tbWl0ICosIHN0cnVjdCBjb21taXQgKik7CkBAIC0yNDMsNCArMjY4LDYgQEAKICAqLwogZXh0ZXJuIHZvaWQgY2hlY2tfY29tbWl0X3NpZ25hdHVyZShjb25zdCBzdHJ1Y3QgY29tbWl0KiBjb21taXQsIHN0cnVjdCBzaWduYXR1cmVfY2hlY2sgKnNpZ2MpOwogCitpbnQgY29tcGFyZV9jb21taXRzX2J5X2NvbW1pdF9kYXRlKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXywgdm9pZCAqdW51c2VkKTsKKwogI2VuZGlmIC8qIENPTU1JVF9IICovCmRpZmYgLS1naXQgYS9jb21wYXQvY3lnd2luLmMgYi9jb21wYXQvY3lnd2luLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3MWI0MWQuLjAwMDAwMDAKLS0tIGEvY29tcGF0L2N5Z3dpbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAKLSNkZWZpbmUgQ1lHV0lOX0MKLSNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgotI2lmZGVmIENZR1dJTl9WMTVfV0lOMzJBUEkKLSNpbmNsdWRlICIuLi9naXQtY29tcGF0LXV0aWwuaCIKLSNpbmNsdWRlICJ3aW4zMi5oIgotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN5cy9lcnJuby5oPgotI2luY2x1ZGUgIndpbjMyLmgiCi0jaW5jbHVkZSAiLi4vZ2l0LWNvbXBhdC11dGlsLmgiCi0jZW5kaWYKLSNpbmNsdWRlICIuLi9jYWNoZS5oIiAvKiB0byByZWFkIGNvbmZpZ3VyYXRpb24gKi8KLQotLyoKLSAqIFJldHVybiBQT1NJWCBwZXJtaXNzaW9uIGJpdHMsIHJlZ2FyZGxlc3Mgb2YgY29yZS5pZ25vcmVjeWd3aW5mc3RyaWNrcwotICovCi1pbnQgY3lnd2luX2dldF9zdF9tb2RlX2JpdHMoY29uc3QgY2hhciAqcGF0aCwgaW50ICptb2RlKQotewotCXN0cnVjdCBzdGF0IHN0OwotCWlmIChsc3RhdChwYXRoLCAmc3QpIDwgMCkKLQkJcmV0dXJuIC0xOwotCSptb2RlID0gc3Quc3RfbW9kZTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGZpbGV0aW1lX3RvX3RpbWVzcGVjKGNvbnN0IEZJTEVUSU1FICpmdCwgc3RydWN0IHRpbWVzcGVjICp0cykKLXsKLQlsb25nIGxvbmcgd2luVGltZSA9ICgobG9uZyBsb25nKWZ0LT5kd0hpZ2hEYXRlVGltZSA8PCAzMikgKwotCQkJZnQtPmR3TG93RGF0ZVRpbWU7Ci0Jd2luVGltZSAtPSAxMTY0NDQ3MzYwMDAwMDAwMDBMTDsgLyogV2luZG93cyB0byBVbml4IEVwb2NoIGNvbnZlcnNpb24gKi8KLQkvKiBjb252ZXJ0IDEwMC1uc2Vjb25kIGludGVydmFsIHRvIHNlY29uZHMgYW5kIG5hbm9zZWNvbmRzICovCi0JdHMtPnR2X3NlYyA9ICh0aW1lX3QpKHdpblRpbWUvMTAwMDAwMDApOwotCXRzLT50dl9uc2VjID0gKGxvbmcpKHdpblRpbWUgLSB0cy0+dHZfc2VjKjEwMDAwMDAwTEwpICogMTAwOwotfQotCi0jZGVmaW5lIHNpemVfdG9fYmxvY2tzKHMpICgoKHMpKzUxMSkvNTEyKQotCi0vKiBkb19zdGF0IGlzIGEgY29tbW9uIGltcGxlbWVudGF0aW9uIGZvciBjeWd3aW5fbHN0YXQgYW5kIGN5Z3dpbl9zdGF0LgotICoKLSAqIFRvIHNpbXBsaWZ5IGl0cyBsb2dpYywgaW4gdGhlIGNhc2Ugb2YgY3lnd2luIHN5bWxpbmtzLCB0aGlzIGltcGxlbWVudGF0aW9uCi0gKiBmYWxscyBiYWNrIHRvIHRoZSBjeWd3aW4gdmVyc2lvbiBvZiBzdGF0L2xzdGF0LCB3aGljaCBpcyBwcm92aWRlZCBhcyB0aGUKLSAqIGxhc3QgYXJndW1lbnQuCi0gKi8KLXN0YXRpYyBpbnQgZG9fc3RhdChjb25zdCBjaGFyICpmaWxlX25hbWUsIHN0cnVjdCBzdGF0ICpidWYsIHN0YXRfZm5fdCBjeWdzdGF0KQotewotCVdJTjMyX0ZJTEVfQVRUUklCVVRFX0RBVEEgZmRhdGE7Ci0KLQlpZiAoZmlsZV9uYW1lWzBdID09ICcvJykKLQkJcmV0dXJuIGN5Z3N0YXQgKGZpbGVfbmFtZSwgYnVmKTsKLQotCWlmICghKGVycm5vID0gZ2V0X2ZpbGVfYXR0cihmaWxlX25hbWUsICZmZGF0YSkpKSB7Ci0JCS8qCi0JCSAqIElmIHRoZSBzeXN0ZW0gYXR0cmlidXRlIGlzIHNldCBhbmQgaXQgaXMgbm90IGEgZGlyZWN0b3J5IHRoZW4KLQkJICogaXQgY291bGQgYmUgYSBzeW1ib2wgbGluayBjcmVhdGVkIGluIHRoZSBub3dpbnN5bWxpbmtzIG1vZGUuCi0JCSAqIE5vcm1hbGx5LCBDeWd3aW4gd29ya3MgaW4gdGhlIHdpbnN5bWxpbmtzIG1vZGUsIHNvIHRoaXMgc2l0dWF0aW9uCi0JCSAqIGlzIHZlcnkgdW5saWtlbHkuIEZvciB0aGUgc2FrZSBvZiBzaW1wbGljaXR5IG9mIG91ciBjb2RlLCBsZXQncwotCQkgKiBDeWd3aW4gdG8gaGFuZGxlIGl0LgotCQkgKi8KLQkJaWYgKChmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfU1lTVEVNKSAmJgotCQkgICAgIShmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKSkKLQkJCXJldHVybiBjeWdzdGF0KGZpbGVfbmFtZSwgYnVmKTsKLQotCQkvKiBmaWxsIG91dCB0aGUgc3RhdCBzdHJ1Y3R1cmUgKi8KLQkJYnVmLT5zdF9kZXYgPSBidWYtPnN0X3JkZXYgPSAwOyAvKiBub3QgdXNlZCBieSBHaXQgKi8KLQkJYnVmLT5zdF9pbm8gPSAwOwotCQlidWYtPnN0X21vZGUgPSBmaWxlX2F0dHJfdG9fc3RfbW9kZShmZGF0YS5kd0ZpbGVBdHRyaWJ1dGVzKTsKLQkJYnVmLT5zdF9ubGluayA9IDE7Ci0JCWJ1Zi0+c3RfdWlkID0gYnVmLT5zdF9naWQgPSAwOwotI2lmZGVmIF9fQ1lHV0lOX1VTRV9CSUdfVFlQRVNfXwotCQlidWYtPnN0X3NpemUgPSAoKF9vZmY2NF90KWZkYXRhLm5GaWxlU2l6ZUhpZ2ggPDwgMzIpICsKLQkJCWZkYXRhLm5GaWxlU2l6ZUxvdzsKLSNlbHNlCi0JCWJ1Zi0+c3Rfc2l6ZSA9IChvZmZfdClmZGF0YS5uRmlsZVNpemVMb3c7Ci0jZW5kaWYKLQkJYnVmLT5zdF9ibG9ja3MgPSBzaXplX3RvX2Jsb2NrcyhidWYtPnN0X3NpemUpOwotCQlmaWxldGltZV90b190aW1lc3BlYygmZmRhdGEuZnRMYXN0QWNjZXNzVGltZSwgJmJ1Zi0+c3RfYXRpbSk7Ci0JCWZpbGV0aW1lX3RvX3RpbWVzcGVjKCZmZGF0YS5mdExhc3RXcml0ZVRpbWUsICZidWYtPnN0X210aW0pOwotCQlmaWxldGltZV90b190aW1lc3BlYygmZmRhdGEuZnRDcmVhdGlvblRpbWUsICZidWYtPnN0X2N0aW0pOwotCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKGVycm5vID09IEVOT0VOVCkgewotCQkvKgotCQkgKiBJbiB0aGUgd2luc3ltbGlua3MgbW9kZSAod2hpY2ggaXMgdGhlIGRlZmF1bHQpLCBDeWd3aW4KLQkJICogZW11bGF0ZXMgc3ltYm9sIGxpbmtzIHVzaW5nIFdpbmRvd3Mgc2hvcnRjdXQgZmlsZXMuIFRoZXNlCi0JCSAqIGZpbGVzIGFyZSBmb3JtZWQgYnkgYWRkaW5nIC5sbmsgZXh0ZW5zaW9uLiBTbywgaWYgd2UgaGF2ZQotCQkgKiBub3QgZm91bmQgdGhlIHNwZWNpZmllZCBmaWxlIG5hbWUsIGl0IGNvdWxkIGJlIHRoYXQgaXQgaXMKLQkJICogYSBzeW1ib2wgbGluay4gTGV0J3MgQ3lnd2luIHRvIGRlYWwgd2l0aCB0aGF0LgotCQkgKi8KLQkJcmV0dXJuIGN5Z3N0YXQoZmlsZV9uYW1lLCBidWYpOwotCX0KLQlyZXR1cm4gLTE7Ci19Ci0KLS8qIFdlIHByb3ZpZGUgb3VyIG93biBsc3RhdC9zdGF0IGZ1bmN0aW9ucywgc2luY2UgdGhlIHByb3ZpZGVkIEN5Z3dpbiB2ZXJzaW9ucwotICogb2YgdGhlc2UgZnVuY3Rpb25zIGFyZSB0b28gc2xvdy4gVGhlc2Ugc3RhdCBmdW5jdGlvbnMgYXJlIHRhaWxvcmVkIGZvciBHaXQncwotICogdXNhZ2UsIGFuZCB0aGVyZWZvcmUgdGhleSBhcmUgbm90IG1lYW50IHRvIGJlIGNvbXBsZXRlIGFuZCBjb3JyZWN0IGVtdWxhdGlvbgotICogb2YgbHN0YXQvc3RhdCBmdW5jdGlvbmFsaXR5LgotICovCi1zdGF0aWMgaW50IGN5Z3dpbl9sc3RhdChjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmKQotewotCXJldHVybiBkb19zdGF0KHBhdGgsIGJ1ZiwgbHN0YXQpOwotfQotCi1zdGF0aWMgaW50IGN5Z3dpbl9zdGF0KGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBzdGF0ICpidWYpCi17Ci0JcmV0dXJuIGRvX3N0YXQocGF0aCwgYnVmLCBzdGF0KTsKLX0KLQotCi0vKgotICogQXQgc3RhcnQgdXAsIHdlIGFyZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgV2luMzIgQVBJIG9yIGN5Z3dpbiBzdGF0Ci0gKiBmdW5jdGlvbnMgc2hvdWxkIGJlIHVzZWQuIFRoZSBjaG9pY2UgaXMgZGV0ZXJtaW5lZCBieSBjb3JlLmlnbm9yZWN5Z3dpbmZzdHJpY2tzLgotICogUmVhZGluZyB0aGlzIG9wdGlvbiBpcyBub3QgYWx3YXlzIHBvc3NpYmxlIGltbWVkaWF0ZWx5IGFzIGdpdF9kaXIgbWF5Ci0gKiBub3QgYmUgc2V0IHlldC4gU28gdW50aWwgaXQgaXMgc2V0LCB1c2UgY3lnd2luIGxzdGF0L3N0YXQgZnVuY3Rpb25zLgotICogSG93ZXZlciwgaWYgY29yZS5maWxlbW9kZSBpcyBzZXQsIHdlIG11c3QgdXNlIHRoZSBDeWd3aW4gcG9zaXgKLSAqIHN0YXQvbHN0YXQgYXMgdGhlIFdpbmRvd3Mgc3RhdCBmdW5jdGlvbnMgZG8gbm90IGRldGVybWluZSBwb3NpeCBmaWxlbW9kZS4KLSAqCi0gKiBOb3RlIHRoYXQgZ2l0X2N5Z3dpbl9jb25maWcoKSBkb2VzIE5PVCBjYWxsIGdpdF9kZWZhdWx0X2NvbmZpZygpIGFuZCB0aGlzCi0gKiBpcyBkZWxpYmVyYXRlLiAgTWFueSBjb21tYW5kcyByZWFkIGZyb20gY29uZmlnIHRvIGVzdGFibGlzaCBpbml0aWFsCi0gKiB2YWx1ZXMgaW4gdmFyaWFibGVzIGFuZCBsYXRlciB0d2VhayB0aGVtIGZyb20gZWxzZXdoZXJlIChlLmcuIGNvbW1hbmQgbGluZSkuCi0gKiBpbml0X3N0YXQoKSBpcyBjYWxsZWQgbGF6aWx5IG9uIGRlbWFuZCwgdHlwaWNhbGx5IG11Y2ggbGF0ZSBpbiB0aGUgcHJvZ3JhbSwKLSAqIGFuZCBjYWxsaW5nIGdpdF9kZWZhdWx0X2NvbmZpZygpIGZyb20gaGVyZSB3b3VsZCBicmVhayBzdWNoIHZhcmlhYmxlcy4KLSAqLwotc3RhdGljIGludCBuYXRpdmVfc3RhdCA9IDE7Ci1zdGF0aWMgaW50IGNvcmVfZmlsZW1vZGUgPSAxOyAvKiBtYXRjaGVzIHRydXN0X2V4ZWN1dGFibGVfYml0IGRlZmF1bHQgKi8KLQotc3RhdGljIGludCBnaXRfY3lnd2luX2NvbmZpZyhjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIgKnZhbHVlLCB2b2lkICpjYikKLXsKLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLmlnbm9yZWN5Z3dpbmZzdHJpY2tzIikpCi0JCW5hdGl2ZV9zdGF0ID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwotCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiY29yZS5maWxlbW9kZSIpKQotCQljb3JlX2ZpbGVtb2RlID0gZ2l0X2NvbmZpZ19ib29sKHZhciwgdmFsdWUpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGluaXRfc3RhdCh2b2lkKQotewotCWlmIChoYXZlX2dpdF9kaXIoKSAmJiBnaXRfY29uZmlnKGdpdF9jeWd3aW5fY29uZmlnLE5VTEwpKSB7Ci0JCWlmICghY29yZV9maWxlbW9kZSAmJiBuYXRpdmVfc3RhdCkgewotCQkJY3lnd2luX3N0YXRfZm4gPSBjeWd3aW5fc3RhdDsKLQkJCWN5Z3dpbl9sc3RhdF9mbiA9IGN5Z3dpbl9sc3RhdDsKLQkJfSBlbHNlIHsKLQkJCWN5Z3dpbl9zdGF0X2ZuID0gc3RhdDsKLQkJCWN5Z3dpbl9sc3RhdF9mbiA9IGxzdGF0OwotCQl9Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIGludCBjeWd3aW5fc3RhdF9zdHViKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKmJ1ZikKLXsKLQlyZXR1cm4gKGluaXRfc3RhdCgpID8gc3RhdCA6ICpjeWd3aW5fc3RhdF9mbikoZmlsZV9uYW1lLCBidWYpOwotfQotCi1zdGF0aWMgaW50IGN5Z3dpbl9sc3RhdF9zdHViKGNvbnN0IGNoYXIgKmZpbGVfbmFtZSwgc3RydWN0IHN0YXQgKmJ1ZikKLXsKLQlyZXR1cm4gKGluaXRfc3RhdCgpID8gbHN0YXQgOiAqY3lnd2luX2xzdGF0X2ZuKShmaWxlX25hbWUsIGJ1Zik7Ci19Ci0KLXN0YXRfZm5fdCBjeWd3aW5fc3RhdF9mbiA9IGN5Z3dpbl9zdGF0X3N0dWI7Ci1zdGF0X2ZuX3QgY3lnd2luX2xzdGF0X2ZuID0gY3lnd2luX2xzdGF0X3N0dWI7Ci0KZGlmZiAtLWdpdCBhL2NvbXBhdC9jeWd3aW4uaCBiL2NvbXBhdC9jeWd3aW4uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA0OTY1YS4uMDAwMDAwMAotLS0gYS9jb21wYXQvY3lnd2luLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLQotdHlwZWRlZiBpbnQgKCpzdGF0X2ZuX3QpKGNvbnN0IGNoYXIqLCBzdHJ1Y3Qgc3RhdCopOwotZXh0ZXJuIHN0YXRfZm5fdCBjeWd3aW5fc3RhdF9mbjsKLWV4dGVybiBzdGF0X2ZuX3QgY3lnd2luX2xzdGF0X2ZuOwotaW50IGN5Z3dpbl9nZXRfc3RfbW9kZV9iaXRzKGNvbnN0IGNoYXIgKnBhdGgsIGludCAqbW9kZSk7Ci0KLSNkZWZpbmUgZ2V0X3N0X21vZGVfYml0cyhwLG0pIGN5Z3dpbl9nZXRfc3RfbW9kZV9iaXRzKChwKSwobSkpCi0jaWZuZGVmIENZR1dJTl9DCi0vKiBjeWd3aW4uYyBuZWVkcyB0aGUgb3JpZ2luYWwgbHN0YXQoKSAqLwotI2RlZmluZSBzdGF0KHBhdGgsIGJ1ZikgKCpjeWd3aW5fc3RhdF9mbikocGF0aCwgYnVmKQotI2RlZmluZSBsc3RhdChwYXRoLCBidWYpICgqY3lnd2luX2xzdGF0X2ZuKShwYXRoLCBidWYpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2NvbXBhdC9mbm1hdGNoL2ZubWF0Y2guYyBiL2NvbXBhdC9mbm1hdGNoL2ZubWF0Y2guYwppbmRleCA1ZWYwNjg1Li4zNzhjNDY3IDEwMDY0NAotLS0gYS9jb21wYXQvZm5tYXRjaC9mbm1hdGNoLmMKKysrIGIvY29tcGF0L2ZubWF0Y2gvZm5tYXRjaC5jCkBAIC0yNSw2ICsyNSw3IEBACiAjIGRlZmluZSBfR05VX1NPVVJDRQkxCiAjZW5kaWYKIAorI2luY2x1ZGUgPHN0ZGRlZi5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8Zm5tYXRjaC5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC0xMjEsNyArMTIyLDcgQEAKICAgIHdob3NlIG5hbWVzIGFyZSBpbmNvbnNpc3RlbnQuICAqLwogCiAjIGlmICFkZWZpbmVkIF9MSUJDICYmICFkZWZpbmVkIGdldGVudgotZXh0ZXJuIGNoYXIgKmdldGVudiAoKTsKK2V4dGVybiBjaGFyICpnZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUpOwogIyBlbmRpZgogCiAjIGlmbmRlZiBlcnJubwpkaWZmIC0tZ2l0IGEvY29tcGF0L21pbmd3LmMgYi9jb21wYXQvbWluZ3cuYwppbmRleCBiNjczNjI1Li5iYjkyYzQzIDEwMDY0NAotLS0gYS9jb21wYXQvbWluZ3cuYworKysgYi9jb21wYXQvbWluZ3cuYwpAQCAtODQxLDggKzg0MSw4IEBACiAJc3RydWN0IHBpbmZvX3QgKm5leHQ7CiAJcGlkX3QgcGlkOwogCUhBTkRMRSBwcm9jOwotfSBwaW5mb190Owotc3RydWN0IHBpbmZvX3QgKnBpbmZvID0gTlVMTDsKK307CitzdGF0aWMgc3RydWN0IHBpbmZvX3QgKnBpbmZvID0gTlVMTDsKIENSSVRJQ0FMX1NFQ1RJT04gcGluZm9fY3M7CiAKIHN0YXRpYyBwaWRfdCBtaW5nd19zcGF3bnZlX2ZkKGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnYsCkBAIC0xMjUzLDcgKzEyNTMsNyBAQAogCWVsc2UKIAkJc2luLT5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfTE9PUEJBQ0s7CiAJYWktPmFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyICopc2luOwotCWFpLT5haV9uZXh0ID0gMDsKKwlhaS0+YWlfbmV4dCA9IE5VTEw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2NzcsMTQgKzE2NzcsMTYgQEAKICN1bmRlZiBzaWduYWwKIHNpZ19oYW5kbGVyX3QgbWluZ3dfc2lnbmFsKGludCBzaWcsIHNpZ19oYW5kbGVyX3QgaGFuZGxlcikKIHsKLQlzaWdfaGFuZGxlcl90IG9sZCA9IHRpbWVyX2ZuOworCXNpZ19oYW5kbGVyX3Qgb2xkOwogCiAJc3dpdGNoIChzaWcpIHsKIAljYXNlIFNJR0FMUk06CisJCW9sZCA9IHRpbWVyX2ZuOwogCQl0aW1lcl9mbiA9IGhhbmRsZXI7CiAJCWJyZWFrOwogCiAJY2FzZSBTSUdJTlQ6CisJCW9sZCA9IHNpZ2ludF9mbjsKIAkJc2lnaW50X2ZuID0gaGFuZGxlcjsKIAkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL2NvbXBhdC9taW5ndy5oIGIvY29tcGF0L21pbmd3LmgKaW5kZXggNjg1Y2QyYy4uYmQwYTg4YiAxMDA2NDQKLS0tIGEvY29tcGF0L21pbmd3LmgKKysrIGIvY29tcGF0L21pbmd3LmgKQEAgLTMzNCwxMyArMzM0LDIwIEBACiB2b2lkIGZyZWVfZW52aXJvbihjaGFyICoqZW52KTsKIAogLyoKKyAqIEEgY3JpdGljYWwgc2VjdGlvbiB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3Bhd24KKyAqIGZ1bmN0aW9ucyAobWluZ3dfc3Bhd252W3BdZSgpKSBhbmQgd2FpdHBpZCgpLiBJbnRpYWxpc2VkIGluCisgKiB0aGUgcmVwbGFjZW1lbnQgbWFpbigpIG1hY3JvIGJlbG93LgorICovCitleHRlcm4gQ1JJVElDQUxfU0VDVElPTiBwaW5mb19jczsKKworLyoKICAqIEEgcmVwbGFjZW1lbnQgb2YgbWFpbigpIHRoYXQgZW5zdXJlcyB0aGF0IGFyZ3ZbMF0gaGFzIGEgcGF0aAogICogYW5kIHRoYXQgZGVmYXVsdCBmbW9kZSBhbmQgc3RkKGlufG91dHxlcnIpIGFyZSBpbiBiaW5hcnkgbW9kZQogICovCiAKICNkZWZpbmUgbWFpbihjLHYpIGR1bW15X2RlY2xfbWluZ3dfbWFpbigpOyBcCi1zdGF0aWMgaW50IG1pbmd3X21haW4oKTsgXAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KSBcCitzdGF0aWMgaW50IG1pbmd3X21haW4oYyx2KTsgXAoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSBcCiB7IFwKIAlleHRlcm4gQ1JJVElDQUxfU0VDVElPTiBwaW5mb19jczsgXAogCV9mbW9kZSA9IF9PX0JJTkFSWTsgXApkaWZmIC0tZ2l0IGEvY29tcGF0L25lZG1hbGxvYy9SZWFkbWUudHh0IGIvY29tcGF0L25lZG1hbGxvYy9SZWFkbWUudHh0CmluZGV4IGU0NmQ4ZjEuLjA3Y2JmNTAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9uZWRtYWxsb2MvUmVhZG1lLnR4dAorKysgYi9jb21wYXQvbmVkbWFsbG9jL1JlYWRtZS50eHQKQEAgLTk3LDcgKzk3LDcgQEAKIAogdjEuMDRhbHBoYV9zdm45MTUgN3RoIE9jdG9iZXIgMjAwNjoKICAqIEZpeGVkIGZhaWx1cmUgdG8gdW5sb2NrIHRocmVhZCBjYWNoZSBsaXN0IGlmIGFsbG9jYXRpbmcgYSBuZXcgbGlzdCBmYWlsZWQuCi1UaGFua3MgdG8gRG1pdHJ5IENoaWNoa292IGZvciByZXBvcnRpbmcgdGhpcy4gRnV0aGVyIHRoYW5rcyB0byBBbGVrc2V5IFNhbmluLgorVGhhbmtzIHRvIERtaXRyeSBDaGljaGtvdiBmb3IgcmVwb3J0aW5nIHRoaXMuIEZ1cnRoZXIgdGhhbmtzIHRvIEFsZWtzZXkgU2FuaW4uCiAgKiBGaXhlZCByZWFsbG9jKDAsIDxzaXplPikgc2VnZmF1bHRpbmcuIFRoYW5rcyB0byBEbWl0cnkgQ2hpY2hrb3YgZm9yCiByZXBvcnRpbmcgdGhpcy4KICAqIE1hZGUgY29uZmlnIGRlZmluZXMgI2lmbmRlZiBzbyB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBidWlsZCBzeXN0ZW0uCmRpZmYgLS1naXQgYS9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmggYi9jb21wYXQvbmVkbWFsbG9jL21hbGxvYy5jLmgKaW5kZXggMTQwMWE2Ny4uZWQ0ZjFmYSAxMDA2NDQKLS0tIGEvY29tcGF0L25lZG1hbGxvYy9tYWxsb2MuYy5oCisrKyBiL2NvbXBhdC9uZWRtYWxsb2MvbWFsbG9jLmMuaApAQCAtNDg0LDYgKzQ4NCwxMCBAQAogI2RlZmluZSBETE1BTExPQ19WRVJTSU9OIDIwODA0CiAjZW5kaWYgLyogRExNQUxMT0NfVkVSU0lPTiAqLwogCisjaWYgZGVmaW5lZChsaW51eCkKKyNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorI2VuZGlmCisKICNpZm5kZWYgV0lOMzIKICNpZmRlZiBfV0lOMzIKICNkZWZpbmUgV0lOMzIgMQpAQCAtMTgwMiw3ICsxODA2LDcgQEAKIAogc3RhdGljIE1MT0NLX1QgbWFsbG9jX2dsb2JhbF9tdXRleCA9IHsgMCwgMCwgMH07CiAKLXN0YXRpYyBGT1JDRUlOTElORSBsb25nIHdpbjMyX2dldGN1cnJlbnR0aHJlYWRpZCgpIHsKK3N0YXRpYyBGT1JDRUlOTElORSBsb25nIHdpbjMyX2dldGN1cnJlbnR0aHJlYWRpZCh2b2lkKSB7CiAjaWZkZWYgX01TQ19WRVIKICNpZiBkZWZpbmVkKF9NX0lYODYpCiAgIGxvbmcgKnRocmVhZHN0cnVjdD0obG9uZyAqKV9fcmVhZGZzZHdvcmQoMHgxOCk7CkBAIC0zNTk4LDggKzM2MDIsOCBAQAogICAgICBhbmQgY2hvb3NlIGl0cyBiayBub2RlIGFzIGl0cyByZXBsYWNlbWVudC4KICAgMi4gSWYgeCB3YXMgdGhlIGxhc3Qgbm9kZSBvZiBpdHMgc2l6ZSwgYnV0IG5vdCBhIGxlYWYgbm9kZSwgaXQgbXVzdAogICAgICBiZSByZXBsYWNlZCB3aXRoIGEgbGVhZiBub2RlIChub3QgbWVyZWx5IG9uZSB3aXRoIGFuIG9wZW4gbGVmdCBvcgotICAgICByaWdodCksIHRvIG1ha2Ugc3VyZSB0aGF0IGxlZnRzIGFuZCByaWdodHMgb2YgZGVzY2VuZGVudHMKLSAgICAgY29ycmVzcG9uZCBwcm9wZXJseSB0byBiaXQgbWFza3MuICBXZSB1c2UgdGhlIHJpZ2h0bW9zdCBkZXNjZW5kZW50CisgICAgIHJpZ2h0KSwgdG8gbWFrZSBzdXJlIHRoYXQgbGVmdHMgYW5kIHJpZ2h0cyBvZiBkZXNjZW5kYW50cworICAgICBjb3JyZXNwb25kIHByb3Blcmx5IHRvIGJpdCBtYXNrcy4gIFdlIHVzZSB0aGUgcmlnaHRtb3N0IGRlc2NlbmRhbnQKICAgICAgb2YgeC4gIFdlIGNvdWxkIHVzZSBhbnkgb3RoZXIgbGVhZiwgYnV0IHRoaXMgaXMgZWFzeSB0byBsb2NhdGUgYW5kCiAgICAgIHRlbmRzIHRvIGNvdW50ZXJhY3QgcmVtb3ZhbCBvZiBsZWZ0bW9zdHMgZWxzZXdoZXJlLCBhbmQgc28ga2VlcHMKICAgICAgcGF0aHMgc2hvcnRlciB0aGFuIG1pbmltYWxseSBndWFyYW50ZWVkLiAgVGhpcyBkb2Vzbid0IGxvb3AgbXVjaApkaWZmIC0tZ2l0IGEvY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MuYyBiL2NvbXBhdC9uZWRtYWxsb2MvbmVkbWFsbG9jLmMKaW5kZXggOTFjNGU3Zi4uNjA5ZWJiYSAxMDA2NDQKLS0tIGEvY29tcGF0L25lZG1hbGxvYy9uZWRtYWxsb2MuYworKysgYi9jb21wYXQvbmVkbWFsbG9jL25lZG1hbGxvYy5jCkBAIC0xNTksOCArMTU5LDggQEAKICNlbmRpZgogaW50ICAgIG5lZG1hbGxvcHQoaW50IHBhcm5vLCBpbnQgdmFsdWUpIFRIUk9XU1BFQwl7IHJldHVybiBuZWRwbWFsbG9wdCgwLCBwYXJubywgdmFsdWUpOyB9CiBpbnQgICAgbmVkbWFsbG9jX3RyaW0oc2l6ZV90IHBhZCkgVEhST1dTUEVDCQkJeyByZXR1cm4gbmVkcG1hbGxvY190cmltKDAsIHBhZCk7IH0KLXZvaWQgICBuZWRtYWxsb2Nfc3RhdHMoKSBUSFJPV1NQRUMJCQkJCXsgbmVkcG1hbGxvY19zdGF0cygwKTsgfQotc2l6ZV90IG5lZG1hbGxvY19mb290cHJpbnQoKSBUSFJPV1NQRUMJCQkJeyByZXR1cm4gbmVkcG1hbGxvY19mb290cHJpbnQoMCk7IH0KK3ZvaWQgICBuZWRtYWxsb2Nfc3RhdHModm9pZCkgVEhST1dTUEVDCQkJCQl7IG5lZHBtYWxsb2Nfc3RhdHMoMCk7IH0KK3NpemVfdCBuZWRtYWxsb2NfZm9vdHByaW50KHZvaWQpIFRIUk9XU1BFQwkJCQl7IHJldHVybiBuZWRwbWFsbG9jX2Zvb3RwcmludCgwKTsgfQogdm9pZCAqKm5lZGluZGVwZW5kZW50X2NhbGxvYyhzaXplX3QgZWxlbXNubywgc2l6ZV90IGVsZW1zaXplLCB2b2lkICoqY2h1bmtzKSBUSFJPV1NQRUMJeyByZXR1cm4gbmVkcGluZGVwZW5kZW50X2NhbGxvYygwLCBlbGVtc25vLCBlbGVtc2l6ZSwgY2h1bmtzKTsgfQogdm9pZCAqKm5lZGluZGVwZW5kZW50X2NvbWFsbG9jKHNpemVfdCBlbGVtcywgc2l6ZV90ICpzaXplcywgdm9pZCAqKmNodW5rcykgVEhST1dTUEVDCXsgcmV0dXJuIG5lZHBpbmRlcGVuZGVudF9jb21hbGxvYygwLCBlbGVtcywgc2l6ZXMsIGNodW5rcyk7IH0KIApkaWZmIC0tZ2l0IGEvY29tcGF0L3BvbGwvcG9sbC5jIGIvY29tcGF0L3BvbGwvcG9sbC5jCmluZGV4IDdkMjI2ZWMuLjQ0MTAzMTAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9wb2xsL3BvbGwuYworKysgYi9jb21wYXQvcG9sbC9wb2xsLmMKQEAgLTU3Niw3ICs1NzYsNyBAQAogCXsKIAkgIC8qIEl0J3MgYSBzb2NrZXQuICAqLwogCSAgV1NBRW51bU5ldHdvcmtFdmVudHMgKChTT0NLRVQpIGgsIE5VTEwsICZldik7Ci0JICBXU0FFdmVudFNlbGVjdCAoKFNPQ0tFVCkgaCwgMCwgMCk7CisJICBXU0FFdmVudFNlbGVjdCAoKFNPQ0tFVCkgaCwgTlVMTCwgMCk7CiAKIAkgIC8qIElmIHdlJ3JlIGx1Y2t5LCBXU0FFbnVtTmV0d29ya0V2ZW50cyBhbHJlYWR5IHByb3ZpZGVkIGEgd2F5CiAJICAgICB0byBkaXN0aW5ndWlzaCBGRF9SRUFEIGFuZCBGRF9BQ0NFUFQ7IHRoaXMgc2F2ZXMgYSByZWN2IGxhdGVyLiAgKi8KZGlmZiAtLWdpdCBhL2NvbXBhdC9yZWdleC9yZWdjb21wLmMgYi9jb21wYXQvcmVnZXgvcmVnY29tcC5jCmluZGV4IGQwMDI1YmQuLmIyYzVkNDYgMTAwNjQ0Ci0tLSBhL2NvbXBhdC9yZWdleC9yZWdjb21wLmMKKysrIGIvY29tcGF0L3JlZ2V4L3JlZ2NvbXAuYwpAQCAtMjYxNyw3ICsyNjE3LDcgQEAKICAgICAgQnVpbGQgdGhlIHJhbmdlIGV4cHJlc3Npb24gd2hpY2ggc3RhcnRzIGZyb20gU1RBUlRfRUxFTSwgYW5kIGVuZHMKICAgICAgYXQgRU5EX0VMRU0uICBUaGUgcmVzdWx0IGFyZSB3cml0dGVuIHRvIE1CQ1NFVCBhbmQgU0JDU0VULgogICAgICBSQU5HRV9BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5yYW5nZV9zdGFydHMsIGFuZAotICAgICBtYmNzZXQtPnJhbmdlX2VuZHMsIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkKKyAgICAgbWJjc2V0LT5yYW5nZV9lbmRzLCBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5CiAgICAgIHVwZGF0ZSBpdC4gICovCiAKIHN0YXRpYyByZWdfZXJyY29kZV90CkBAIC0yNzg4LDcgKzI3ODgsNyBAQAogICBjb25zdCBpbnQzMl90ICpzeW1iX3RhYmxlOwogICBjb25zdCB1bnNpZ25lZCBjaGFyICpleHRyYTsKIAotICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9uZW1lbnQuCisgIC8qIExvY2FsIGZ1bmN0aW9uIGZvciBwYXJzZV9icmFja2V0X2V4cCB1c2VkIGluIF9MSUJDIGVudmlyb25tZW50LgogICAgICBTZWVrIHRoZSBjb2xsYXRpbmcgc3ltYm9sIGVudHJ5IGNvcnJlc3BvbmRpbmdzIHRvIE5BTUUuCiAgICAgIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHN5bWJvbCBpbiB0aGUgU1lNQl9UQUJMRS4gICovCiAKQEAgLTI4OTIsMTEgKzI4OTIsMTEgQEAKICAgICAgIHJldHVybiBVSU5UX01BWDsKICAgICB9CiAKLSAgLyogTG9jYWwgZnVuY3Rpb24gZm9yIHBhcnNlX2JyYWNrZXRfZXhwIHVzZWQgaW4gX0xJQkMgZW52aXJvbmVtZW50LgorICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9ubWVudC4KICAgICAgQnVpbGQgdGhlIHJhbmdlIGV4cHJlc3Npb24gd2hpY2ggc3RhcnRzIGZyb20gU1RBUlRfRUxFTSwgYW5kIGVuZHMKICAgICAgYXQgRU5EX0VMRU0uICBUaGUgcmVzdWx0IGFyZSB3cml0dGVuIHRvIE1CQ1NFVCBhbmQgU0JDU0VULgogICAgICBSQU5HRV9BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5yYW5nZV9zdGFydHMsIGFuZAotICAgICBtYmNzZXQtPnJhbmdlX2VuZHMsIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkKKyAgICAgbWJjc2V0LT5yYW5nZV9lbmRzLCBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5CiAgICAgIHVwZGF0ZSBpdC4gICovCiAKICAgYXV0byBpbmxpbmUgcmVnX2VycmNvZGVfdApAQCAtMjk3NiwxMSArMjk3NiwxMSBAQAogICAgICAgcmV0dXJuIFJFR19OT0VSUk9SOwogICAgIH0KIAotICAvKiBMb2NhbCBmdW5jdGlvbiBmb3IgcGFyc2VfYnJhY2tldF9leHAgdXNlZCBpbiBfTElCQyBlbnZpcm9uZW1lbnQuCisgIC8qIExvY2FsIGZ1bmN0aW9uIGZvciBwYXJzZV9icmFja2V0X2V4cCB1c2VkIGluIF9MSUJDIGVudmlyb25tZW50LgogICAgICBCdWlsZCB0aGUgY29sbGF0aW5nIGVsZW1lbnQgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgQ09MTF9TWU1fQUxMT0MgaXMgdGhlIGFsbG9jYXRlZCBzaXplIG9mIG1iY3NldC0+Y29sbF9zeW0sIGlzIGEKLSAgICAgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KKyAgICAgcG9pbnRlciBhcmd1bWVudCBzaW5jZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KIAogICBhdXRvIGlubGluZSByZWdfZXJyY29kZV90CiAgIF9fYXR0cmlidXRlICgoYWx3YXlzX2lubGluZSkpCkBAIC0zNDE5LDcgKzM0MTksNyBAQAogICAgICBCdWlsZCB0aGUgZXF1aXZhbGVuY2UgY2xhc3Mgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgRVFVSVZfQ0xBU1NfQUxMT0MgaXMgdGhlIGFsbG9jYXRlZCBzaXplIG9mIG1iY3NldC0+ZXF1aXZfY2xhc3NlcywKLSAgICAgaXMgYSBwb2ludGVyIGFyZ3VtZW50IHNpbnNlIHdlIG1heSB1cGRhdGUgaXQuICAqLworICAgICBpcyBhIHBvaW50ZXIgYXJndW1lbnQgc2luY2Ugd2UgbWF5IHVwZGF0ZSBpdC4gICovCiAKIHN0YXRpYyByZWdfZXJyY29kZV90CiAjaWZkZWYgUkVfRU5BQkxFX0kxOE4KQEAgLTM1MTUsNyArMzUxNSw3IEBACiAgICAgIEJ1aWxkIHRoZSBjaGFyYWN0ZXIgY2xhc3Mgd2hpY2ggaXMgcmVwcmVzZW50ZWQgYnkgTkFNRS4KICAgICAgVGhlIHJlc3VsdCBhcmUgd3JpdHRlbiB0byBNQkNTRVQgYW5kIFNCQ1NFVC4KICAgICAgQ0hBUl9DTEFTU19BTExPQyBpcyB0aGUgYWxsb2NhdGVkIHNpemUgb2YgbWJjc2V0LT5jaGFyX2NsYXNzZXMsCi0gICAgIGlzIGEgcG9pbnRlciBhcmd1bWVudCBzaW5zZSB3ZSBtYXkgdXBkYXRlIGl0LiAgKi8KKyAgICAgaXMgYSBwb2ludGVyIGFyZ3VtZW50IHNpbmNlIHdlIG1heSB1cGRhdGUgaXQuICAqLwogCiBzdGF0aWMgcmVnX2VycmNvZGVfdAogI2lmZGVmIFJFX0VOQUJMRV9JMThOCmRpZmYgLS1naXQgYS9jb21wYXQvcmVnZXgvcmVnZXhlYy5jIGIvY29tcGF0L3JlZ2V4L3JlZ2V4ZWMuYwppbmRleCAwMTk0OTY1Li5lYjVlMWQ0IDEwMDY0NAotLS0gYS9jb21wYXQvcmVnZXgvcmVnZXhlYy5jCisrKyBiL2NvbXBhdC9yZWdleC9yZWdleGVjLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQAogCiAgIHJ2YWwgPSAwOwogCi0gIC8qIEkgaG9wZSB3ZSBuZWVkbid0IGZpbGwgdGhlciByZWdzIHdpdGggLTEncyB3aGVuIG5vIG1hdGNoIHdhcyBmb3VuZC4gICovCisgIC8qIEkgaG9wZSB3ZSBuZWVkbid0IGZpbGwgdGhlaXIgcmVncyB3aXRoIC0xJ3Mgd2hlbiBubyBtYXRjaCB3YXMgZm91bmQuICAqLwogICBpZiAocmVzdWx0ICE9IFJFR19OT0VSUk9SKQogICAgIHJ2YWwgPSAtMTsKICAgZWxzZSBpZiAocmVncyAhPSBOVUxMKQpAQCAtMTA3MSw3ICsxMDcxLDcgQEAKICAgIEZMX0xPTkdFU1RfTUFUQ0ggbWVhbnMgd2Ugd2FudCB0aGUgUE9TSVggbG9uZ2VzdCBtYXRjaGluZy4KICAgIElmIFBfTUFUQ0hfRklSU1QgaXMgbm90IE5VTEwsIGFuZCB0aGUgbWF0Y2ggZmFpbHMsIGl0IGlzIHNldCB0byB0aGUKICAgIG5leHQgcGxhY2Ugd2hlcmUgd2UgbWF5IHdhbnQgdG8gdHJ5IG1hdGNoaW5nLgotICAgTm90ZSB0aGF0IHRoZSBtYXRjaGVyIGFzc3VtZSB0aGF0IHRoZSBtYWNoaW5nIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50CisgICBOb3RlIHRoYXQgdGhlIG1hdGNoZXIgYXNzdW1lIHRoYXQgdGhlIG1hdGNoaW5nIHN0YXJ0cyBmcm9tIHRoZSBjdXJyZW50CiAgICBpbmRleCBvZiB0aGUgYnVmZmVyLiAgKi8KIAogc3RhdGljIGludApAQCAtMjIzOSw3ICsyMjM5LDcgQEAKIAkJCSAgICBkZmEtPm5leHRzW25vZGVfaWR4XSkpCiAgICAgLyogVGhlIG5vZGUgY2FuJ3QgYWNjZXB0IHRoZSBgbXVsdGkgYnl0ZScsIG9yIHRoZQogICAgICAgIGRlc3RpbmF0aW9uIHdhcyBhbHJlYWR5IHRocm93biBhd2F5LCB0aGVuIHRoZSBub2RlCi0gICAgICAgY291bGQndCBhY2NlcHQgdGhlIGN1cnJlbnQgaW5wdXQgYG11bHRpIGJ5dGUnLiAgICovCisgICAgICAgY291bGRuJ3QgYWNjZXB0IHRoZSBjdXJyZW50IGlucHV0IGBtdWx0aSBieXRlJy4gICAqLwogICAgIG5hY2NlcHRlZCA9IDA7CiAgIC8qIE90aGVyd2lzZSwgaXQgaXMgc3VyZSB0aGF0IHRoZSBub2RlIGNvdWxkIGFjY2VwdAogICAgICBgbmFjY2VwdGVkJyBieXRlcyBpbnB1dC4gICovCkBAIC0yMzEzLDcgKzIzMTMsNyBAQAogfQogCiAvKiBVcGRhdGUgdGhlIHN0YXRlX2xvZyBpZiB3ZSBuZWVkICovCi1yZV9kZmFzdGF0ZV90ICoKK3N0YXRpYyByZV9kZmFzdGF0ZV90ICoKIGludGVybmFsX2Z1bmN0aW9uCiBtZXJnZV9zdGF0ZV93aXRoX2xvZyAocmVnX2VycmNvZGVfdCAqZXJyLCByZV9tYXRjaF9jb250ZXh0X3QgKm1jdHgsCiAJCSAgICAgIHJlX2RmYXN0YXRlX3QgKm5leHRfc3RhdGUpCkBAIC0yMzI2LDcgKzIzMjYsNyBAQAogICAgICAgbWN0eC0+c3RhdGVfbG9nW2N1cl9pZHhdID0gbmV4dF9zdGF0ZTsKICAgICAgIG1jdHgtPnN0YXRlX2xvZ190b3AgPSBjdXJfaWR4OwogICAgIH0KLSAgZWxzZSBpZiAobWN0eC0+c3RhdGVfbG9nW2N1cl9pZHhdID09IDApCisgIGVsc2UgaWYgKG1jdHgtPnN0YXRlX2xvZ1tjdXJfaWR4XSA9PSBOVUxMKQogICAgIHsKICAgICAgIG1jdHgtPnN0YXRlX2xvZ1tjdXJfaWR4XSA9IG5leHRfc3RhdGU7CiAgICAgfQpAQCAtMjM5Miw3ICsyMzkyLDcgQEAKIC8qIFNraXAgYnl0ZXMgaW4gdGhlIGlucHV0IHRoYXQgY29ycmVzcG9uZCB0byBwYXJ0IG9mIGEKICAgIG11bHRpLWJ5dGUgbWF0Y2gsIHRoZW4gbG9vayBpbiB0aGUgbG9nIGZvciBhIHN0YXRlCiAgICBmcm9tIHdoaWNoIHRvIHJlc3RhcnQgbWF0Y2hpbmcuICAqLwotcmVfZGZhc3RhdGVfdCAqCitzdGF0aWMgcmVfZGZhc3RhdGVfdCAqCiBpbnRlcm5hbF9mdW5jdGlvbgogZmluZF9yZWNvdmVyX3N0YXRlIChyZWdfZXJyY29kZV90ICplcnIsIHJlX21hdGNoX2NvbnRleHRfdCAqbWN0eCkKIHsKZGlmZiAtLWdpdCBhL2NvbXBhdC90ZXJtaW5hbC5jIGIvY29tcGF0L3Rlcm1pbmFsLmMKaW5kZXggOWI1ZTNkMS4uMzEzODk3ZCAxMDA2NDQKLS0tIGEvY29tcGF0L3Rlcm1pbmFsLmMKKysrIGIvY29tcGF0L3Rlcm1pbmFsLmMKQEAgLTMsNyArMyw3IEBACiAjaW5jbHVkZSAic2lnY2hhaW4uaCIKICNpbmNsdWRlICJzdHJidWYuaCIKIAotI2lmIGRlZmluZWQoSEFWRV9ERVZfVFRZKSB8fCBkZWZpbmVkKFdJTjMyKQorI2lmIGRlZmluZWQoSEFWRV9ERVZfVFRZKSB8fCBkZWZpbmVkKEdJVF9XSU5ET1dTX05BVElWRSkKIAogc3RhdGljIHZvaWQgcmVzdG9yZV90ZXJtKHZvaWQpOwogCkBAIC01Myw3ICs1Myw3IEBACiAJcmV0dXJuIC0xOwogfQogCi0jZWxpZiBkZWZpbmVkKFdJTjMyKQorI2VsaWYgZGVmaW5lZChHSVRfV0lORE9XU19OQVRJVkUpCiAKICNkZWZpbmUgSU5QVVRfUEFUSCAiQ09OSU4kIgogI2RlZmluZSBPVVRQVVRfUEFUSCAiQ09OT1VUJCIKZGlmZiAtLWdpdCBhL2NvbXBhdC91bnNldGVudi5jIGIvY29tcGF0L3Vuc2V0ZW52LmMKaW5kZXggZWIyOWY1ZS4uYmY1ZmQ3MCAxMDA2NDQKLS0tIGEvY29tcGF0L3Vuc2V0ZW52LmMKKysrIGIvY29tcGF0L3Vuc2V0ZW52LmMKQEAgLTIsNyArMiw5IEBACiAKIHZvaWQgZ2l0dW5zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUpCiB7CisjaWYgIWRlZmluZWQoX19NSU5HVzMyX18pCiAgICAgIGV4dGVybiBjaGFyICoqZW52aXJvbjsKKyNlbmRpZgogICAgICBpbnQgc3JjLCBkc3Q7CiAgICAgIHNpemVfdCBubWxuOwogCmRpZmYgLS1naXQgYS9jb21wYXQvd2luMzIuaCBiL2NvbXBhdC93aW4zMi5oCmluZGV4IDhjZTkxMDQuLmE5N2U4ODAgMTAwNjQ0Ci0tLSBhL2NvbXBhdC93aW4zMi5oCisrKyBiL2NvbXBhdC93aW4zMi5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBXSU4zMl9ICiAKIC8qIGNvbW1vbiBXaW4zMiBmdW5jdGlvbnMgZm9yIE1pbkdXIGFuZCBDeWd3aW4gKi8KLSNpZm5kZWYgV0lOMzIgICAgICAgICAvKiBOb3QgZGVmaW5lZCBieSBDeWd3aW4gKi8KKyNpZm5kZWYgR0lUX1dJTkRPV1NfTkFUSVZFCS8qIE5vdCBkZWZpbmVkIGZvciBDeWd3aW4gKi8KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvY29tcGF0L3dpbjMyL3B0aHJlYWQuYyBiL2NvbXBhdC93aW4zMi9wdGhyZWFkLmMKaW5kZXggMDEwZTg3NS4uZTE4ZjVjNiAxMDA2NDQKLS0tIGEvY29tcGF0L3dpbjMyL3B0aHJlYWQuYworKysgYi9jb21wYXQvd2luMzIvcHRocmVhZC5jCkBAIC01Miw3ICs1Miw3IEBACiAKIHB0aHJlYWRfdCBwdGhyZWFkX3NlbGYodm9pZCkKIHsKLQlwdGhyZWFkX3QgdCA9IHsgMCB9OworCXB0aHJlYWRfdCB0ID0geyBOVUxMIH07CiAJdC50aWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKIAlyZXR1cm4gdDsKIH0KZGlmZiAtLWdpdCBhL2NvbXBhdC93aW4zMm1tYXAuYyBiL2NvbXBhdC93aW4zMm1tYXAuYwppbmRleCA2MWQyZWY4Li44MGE4YzlhIDEwMDY0NAotLS0gYS9jb21wYXQvd2luMzJtbWFwLmMKKysrIGIvY29tcGF0L3dpbjMybW1hcC5jCkBAIC0yMSw4ICsyMSw4IEBACiAJaWYgKCEoZmxhZ3MgJiBNQVBfUFJJVkFURSkpCiAJCWRpZSgiSW52YWxpZCB1c2FnZSBvZiBtbWFwIHdoZW4gYnVpbHQgd2l0aCBVU0VfV0lOMzJfTU1BUCIpOwogCi0JaG1hcCA9IENyZWF0ZUZpbGVNYXBwaW5nKChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmQpLCAwLCBQQUdFX1dSSVRFQ09QWSwKLQkJMCwgMCwgMCk7CisJaG1hcCA9IENyZWF0ZUZpbGVNYXBwaW5nKChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmQpLCBOVUxMLAorCQlQQUdFX1dSSVRFQ09QWSwgMCwgMCwgTlVMTCk7CiAKIAlpZiAoIWhtYXApCiAJCXJldHVybiBNQVBfRkFJTEVEOwpkaWZmIC0tZ2l0IGEvY29uZmlnLmMgYi9jb25maWcuYwppbmRleCBhZWZkODBiLi45ZjliZjBjIDEwMDY0NAotLS0gYS9jb25maWcuYworKysgYi9jb25maWcuYwpAQCAtMTAsMjAgKzEwLDY5IEBACiAjaW5jbHVkZSAic3RyYnVmLmgiCiAjaW5jbHVkZSAicXVvdGUuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgY29uZmlnX2ZpbGUgewotCXN0cnVjdCBjb25maWdfZmlsZSAqcHJldjsKLQlGSUxFICpmOworc3RydWN0IGNvbmZpZ19zb3VyY2UgeworCXN0cnVjdCBjb25maWdfc291cmNlICpwcmV2OworCXVuaW9uIHsKKwkJRklMRSAqZmlsZTsKKwkJc3RydWN0IGNvbmZpZ19idWYgeworCQkJY29uc3QgY2hhciAqYnVmOworCQkJc2l6ZV90IGxlbjsKKwkJCXNpemVfdCBwb3M7CisJCX0gYnVmOworCX0gdTsKIAljb25zdCBjaGFyICpuYW1lOworCWludCBkaWVfb25fZXJyb3I7CiAJaW50IGxpbmVucjsKIAlpbnQgZW9mOwogCXN0cnVjdCBzdHJidWYgdmFsdWU7CiAJc3RydWN0IHN0cmJ1ZiB2YXI7Ci19IGNvbmZpZ19maWxlOwogCi1zdGF0aWMgY29uZmlnX2ZpbGUgKmNmOworCWludCAoKmRvX2ZnZXRjKShzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqYyk7CisJaW50ICgqZG9fdW5nZXRjKShpbnQgYywgc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpOworCWxvbmcgKCpkb19mdGVsbCkoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmMpOworfTsKKworc3RhdGljIHN0cnVjdCBjb25maWdfc291cmNlICpjZjsKIAogc3RhdGljIGludCB6bGliX2NvbXByZXNzaW9uX3NlZW47CiAKK3N0YXRpYyBpbnQgY29uZmlnX2ZpbGVfZmdldGMoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpCit7CisJcmV0dXJuIGZnZXRjKGNvbmYtPnUuZmlsZSk7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX2ZpbGVfdW5nZXRjKGludCBjLCBzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqY29uZikKK3sKKwlyZXR1cm4gdW5nZXRjKGMsIGNvbmYtPnUuZmlsZSk7Cit9CisKK3N0YXRpYyBsb25nIGNvbmZpZ19maWxlX2Z0ZWxsKHN0cnVjdCBjb25maWdfc291cmNlICpjb25mKQoreworCXJldHVybiBmdGVsbChjb25mLT51LmZpbGUpOworfQorCisKK3N0YXRpYyBpbnQgY29uZmlnX2J1Zl9mZ2V0YyhzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqY29uZikKK3sKKwlpZiAoY29uZi0+dS5idWYucG9zIDwgY29uZi0+dS5idWYubGVuKQorCQlyZXR1cm4gY29uZi0+dS5idWYuYnVmW2NvbmYtPnUuYnVmLnBvcysrXTsKKworCXJldHVybiBFT0Y7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX2J1Zl91bmdldGMoaW50IGMsIHN0cnVjdCBjb25maWdfc291cmNlICpjb25mKQoreworCWlmIChjb25mLT51LmJ1Zi5wb3MgPiAwKQorCQlyZXR1cm4gY29uZi0+dS5idWYuYnVmWy0tY29uZi0+dS5idWYucG9zXTsKKworCXJldHVybiBFT0Y7Cit9CisKK3N0YXRpYyBsb25nIGNvbmZpZ19idWZfZnRlbGwoc3RydWN0IGNvbmZpZ19zb3VyY2UgKmNvbmYpCit7CisJcmV0dXJuIGNvbmYtPnUuYnVmLnBvczsKK30KKwogI2RlZmluZSBNQVhfSU5DTFVERV9ERVBUSCAxMAogc3RhdGljIGNvbnN0IGNoYXIgaW5jbHVkZV9kZXB0aF9hZHZpY2VbXSA9CiAiZXhjZWVkZWQgbWF4aW11bSBpbmNsdWRlIGRlcHRoICglZCkgd2hpbGUgaW5jbHVkaW5nXG4iCkBAIC01OCw3ICsxMDcsNyBAQAogCQlwYXRoID0gYnVmLmJ1ZjsKIAl9CiAKLQlpZiAoIWFjY2Vzc19vcl9kaWUocGF0aCwgUl9PSykpIHsKKwlpZiAoIWFjY2Vzc19vcl9kaWUocGF0aCwgUl9PSywgMCkpIHsKIAkJaWYgKCsraW5jLT5kZXB0aCA+IE1BWF9JTkNMVURFX0RFUFRIKQogCQkJZGllKGluY2x1ZGVfZGVwdGhfYWR2aWNlLCBNQVhfSU5DTFVERV9ERVBUSCwgcGF0aCwKIAkJCSAgICBjZiAmJiBjZi0+bmFtZSA/IGNmLT5uYW1lIDogInRoZSBjb21tYW5kIGxpbmUiKTsKQEAgLTE2OCwyNiArMjE3LDIxIEBACiAKIHN0YXRpYyBpbnQgZ2V0X25leHRfY2hhcih2b2lkKQogewotCWludCBjOwotCUZJTEUgKmY7CisJaW50IGMgPSBjZi0+ZG9fZmdldGMoY2YpOwogCi0JYyA9ICdcbic7Ci0JaWYgKGNmICYmICgoZiA9IGNmLT5mKSAhPSBOVUxMKSkgewotCQljID0gZmdldGMoZik7Ci0JCWlmIChjID09ICdccicpIHsKLQkJCS8qIERPUyBsaWtlIHN5c3RlbXMgKi8KLQkJCWMgPSBmZ2V0YyhmKTsKLQkJCWlmIChjICE9ICdcbicpIHsKLQkJCQl1bmdldGMoYywgZik7Ci0JCQkJYyA9ICdccic7Ci0JCQl9CisJaWYgKGMgPT0gJ1xyJykgeworCQkvKiBET1MgbGlrZSBzeXN0ZW1zICovCisJCWMgPSBjZi0+ZG9fZmdldGMoY2YpOworCQlpZiAoYyAhPSAnXG4nKSB7CisJCQljZi0+ZG9fdW5nZXRjKGMsIGNmKTsKKwkJCWMgPSAnXHInOwogCQl9Ci0JCWlmIChjID09ICdcbicpCi0JCQljZi0+bGluZW5yKys7Ci0JCWlmIChjID09IEVPRikgewotCQkJY2YtPmVvZiA9IDE7Ci0JCQljID0gJ1xuJzsKLQkJfQorCX0KKwlpZiAoYyA9PSAnXG4nKQorCQljZi0+bGluZW5yKys7CisJaWYgKGMgPT0gRU9GKSB7CisJCWNmLT5lb2YgPSAxOworCQljID0gJ1xuJzsKIAl9CiAJcmV0dXJuIGM7CiB9CkBAIC0zMzksNyArMzgzLDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZ2l0X3BhcnNlX2ZpbGUoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGdpdF9wYXJzZV9zb3VyY2UoY29uZmlnX2ZuX3QgZm4sIHZvaWQgKmRhdGEpCiB7CiAJaW50IGNvbW1lbnQgPSAwOwogCWludCBiYXNlbGVuID0gMDsKQEAgLTM5OSw3ICs0NDMsMTAgQEAKIAkJaWYgKGdldF92YWx1ZShmbiwgZGF0YSwgdmFyKSA8IDApCiAJCQlicmVhazsKIAl9Ci0JZGllKCJiYWQgY29uZmlnIGZpbGUgbGluZSAlZCBpbiAlcyIsIGNmLT5saW5lbnIsIGNmLT5uYW1lKTsKKwlpZiAoY2YtPmRpZV9vbl9lcnJvcikKKwkJZGllKCJiYWQgY29uZmlnIGZpbGUgbGluZSAlZCBpbiAlcyIsIGNmLT5saW5lbnIsIGNmLT5uYW1lKTsKKwllbHNlCisJCXJldHVybiBlcnJvcigiYmFkIGNvbmZpZyBmaWxlIGxpbmUgJWQgaW4gJXMiLCBjZi0+bGluZW5yLCBjZi0+bmFtZSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFyc2VfdW5pdF9mYWN0b3IoY29uc3QgY2hhciAqZW5kLCB1aW50bWF4X3QgKnZhbCkKQEAgLTU2Niw3ICs2MTMsMjAgQEAKIAkJdHJ1c3RfY3RpbWUgPSBnaXRfY29uZmlnX2Jvb2wodmFyLCB2YWx1ZSk7CiAJCXJldHVybiAwOwogCX0KLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLnN0YXRpbmZvIikpIHsKKwlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLnN0YXRpbmZvIikgfHwKKwkgICAgIXN0cmNtcCh2YXIsICJjb3JlLmNoZWNrc3RhdCIpKSB7CisJCS8qCisJCSAqIE5FRURTV09SSzogc3RhdGluZm8gd2FzIGEgdHlwbyBpbiB2MS44LjIgdGhhdCBoYXMKKwkJICogbmV2ZXIgYmVlbiBhZHZlcnRpc2VkLiAgd2Ugd2lsbCByZW1vdmUgaXQgYXQgR2l0CisJCSAqIDIuMCBib3VuZGFyeS4KKwkJICovCisJCWlmICghc3RyY21wKHZhciwgImNvcmUuc3RhdGluZm8iKSkgeworCQkJc3RhdGljIGludCB3YXJuZWQ7CisJCQlpZiAoIXdhcm5lZCsrKSB7CisJCQkJd2FybmluZygiJ2NvcmUuc3RhdGluZm8nIHdpbGwgYmUgcmVtb3ZlZCBpbiBHaXQgMi4wOyAiCisJCQkJCSJ1c2UgJ2NvcmUuY2hlY2tzdGF0JyBpbnN0ZWFkLiIpOworCQkJfQorCQl9CiAJCWlmICghc3RyY2FzZWNtcCh2YWx1ZSwgImRlZmF1bHQiKSkKIAkJCWNoZWNrX3N0YXQgPSAxOwogCQllbHNlIGlmICghc3RyY2FzZWNtcCh2YWx1ZSwgIm1pbmltYWwiKSkKQEAgLTY3NSw5ICs3MzUsNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoIXN0cmNtcCh2YXIsICJjb3JlLmxvZ3BhY2thY2Nlc3MiKSkKLQkJcmV0dXJuIGdpdF9jb25maWdfc3RyaW5nKCZsb2dfcGFja19hY2Nlc3MsIHZhciwgdmFsdWUpOwotCiAJaWYgKCFzdHJjbXAodmFyLCAiY29yZS5hdXRvY3JsZiIpKSB7CiAJCWlmICh2YWx1ZSAmJiAhc3RyY2FzZWNtcCh2YWx1ZSwgImlucHV0IikpIHsKIAkJCWlmIChjb3JlX2VvbCA9PSBFT0xfQ1JMRikKQEAgLTg5Niw2ICs5NTMsMzMgQEAKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEFsbCBzb3VyY2Ugc3BlY2lmaWMgZmllbGRzIGluIHRoZSB1bmlvbiwgZGllX29uX2Vycm9yLCBuYW1lIGFuZCB0aGUgY2FsbGJhY2tzCisgKiBmZ2V0YywgdW5nZXRjLCBmdGVsbCBvZiB0b3AgbmVlZCB0byBiZSBpbml0aWFsaXplZCBiZWZvcmUgY2FsbGluZworICogdGhpcyBmdW5jdGlvbi4KKyAqLworc3RhdGljIGludCBkb19jb25maWdfZnJvbShzdHJ1Y3QgY29uZmlnX3NvdXJjZSAqdG9wLCBjb25maWdfZm5fdCBmbiwgdm9pZCAqZGF0YSkKK3sKKwlpbnQgcmV0OworCisJLyogcHVzaCBjb25maWctZmlsZSBwYXJzaW5nIHN0YXRlIHN0YWNrICovCisJdG9wLT5wcmV2ID0gY2Y7CisJdG9wLT5saW5lbnIgPSAxOworCXRvcC0+ZW9mID0gMDsKKwlzdHJidWZfaW5pdCgmdG9wLT52YWx1ZSwgMTAyNCk7CisJc3RyYnVmX2luaXQoJnRvcC0+dmFyLCAxMDI0KTsKKwljZiA9IHRvcDsKKworCXJldCA9IGdpdF9wYXJzZV9zb3VyY2UoZm4sIGRhdGEpOworCisJLyogcG9wIGNvbmZpZy1maWxlIHBhcnNpbmcgc3RhdGUgc3RhY2sgKi8KKwlzdHJidWZfcmVsZWFzZSgmdG9wLT52YWx1ZSk7CisJc3RyYnVmX3JlbGVhc2UoJnRvcC0+dmFyKTsKKwljZiA9IHRvcC0+cHJldjsKKworCXJldHVybiByZXQ7Cit9CisKIGludCBnaXRfY29uZmlnX2Zyb21fZmlsZShjb25maWdfZm5fdCBmbiwgY29uc3QgY2hhciAqZmlsZW5hbWUsIHZvaWQgKmRhdGEpCiB7CiAJaW50IHJldDsKQEAgLTkwMywzMCArOTg3LDc0IEBACiAKIAlyZXQgPSAtMTsKIAlpZiAoZikgewotCQljb25maWdfZmlsZSB0b3A7CisJCXN0cnVjdCBjb25maWdfc291cmNlIHRvcDsKIAotCQkvKiBwdXNoIGNvbmZpZy1maWxlIHBhcnNpbmcgc3RhdGUgc3RhY2sgKi8KLQkJdG9wLnByZXYgPSBjZjsKLQkJdG9wLmYgPSBmOworCQl0b3AudS5maWxlID0gZjsKIAkJdG9wLm5hbWUgPSBmaWxlbmFtZTsKLQkJdG9wLmxpbmVuciA9IDE7Ci0JCXRvcC5lb2YgPSAwOwotCQlzdHJidWZfaW5pdCgmdG9wLnZhbHVlLCAxMDI0KTsKLQkJc3RyYnVmX2luaXQoJnRvcC52YXIsIDEwMjQpOwotCQljZiA9ICZ0b3A7CisJCXRvcC5kaWVfb25fZXJyb3IgPSAxOworCQl0b3AuZG9fZmdldGMgPSBjb25maWdfZmlsZV9mZ2V0YzsKKwkJdG9wLmRvX3VuZ2V0YyA9IGNvbmZpZ19maWxlX3VuZ2V0YzsKKwkJdG9wLmRvX2Z0ZWxsID0gY29uZmlnX2ZpbGVfZnRlbGw7CiAKLQkJcmV0ID0gZ2l0X3BhcnNlX2ZpbGUoZm4sIGRhdGEpOwotCi0JCS8qIHBvcCBjb25maWctZmlsZSBwYXJzaW5nIHN0YXRlIHN0YWNrICovCi0JCXN0cmJ1Zl9yZWxlYXNlKCZ0b3AudmFsdWUpOwotCQlzdHJidWZfcmVsZWFzZSgmdG9wLnZhcik7Ci0JCWNmID0gdG9wLnByZXY7CisJCXJldCA9IGRvX2NvbmZpZ19mcm9tKCZ0b3AsIGZuLCBkYXRhKTsKIAogCQlmY2xvc2UoZik7CiAJfQogCXJldHVybiByZXQ7CiB9CiAKK2ludCBnaXRfY29uZmlnX2Zyb21fYnVmKGNvbmZpZ19mbl90IGZuLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpidWYsCisJCQlzaXplX3QgbGVuLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjb25maWdfc291cmNlIHRvcDsKKworCXRvcC51LmJ1Zi5idWYgPSBidWY7CisJdG9wLnUuYnVmLmxlbiA9IGxlbjsKKwl0b3AudS5idWYucG9zID0gMDsKKwl0b3AubmFtZSA9IG5hbWU7CisJdG9wLmRpZV9vbl9lcnJvciA9IDA7CisJdG9wLmRvX2ZnZXRjID0gY29uZmlnX2J1Zl9mZ2V0YzsKKwl0b3AuZG9fdW5nZXRjID0gY29uZmlnX2J1Zl91bmdldGM7CisJdG9wLmRvX2Z0ZWxsID0gY29uZmlnX2J1Zl9mdGVsbDsKKworCXJldHVybiBkb19jb25maWdfZnJvbSgmdG9wLCBmbiwgZGF0YSk7Cit9CisKK3N0YXRpYyBpbnQgZ2l0X2NvbmZpZ19mcm9tX2Jsb2Jfc2hhMShjb25maWdfZm5fdCBmbiwKKwkJCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJCSAgICAgdm9pZCAqZGF0YSkKK3sKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJY2hhciAqYnVmOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwlpbnQgcmV0OworCisJYnVmID0gcmVhZF9zaGExX2ZpbGUoc2hhMSwgJnR5cGUsICZzaXplKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIGVycm9yKCJ1bmFibGUgdG8gbG9hZCBjb25maWcgYmxvYiBvYmplY3QgJyVzJyIsIG5hbWUpOworCWlmICh0eXBlICE9IE9CSl9CTE9CKSB7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJuIGVycm9yKCJyZWZlcmVuY2UgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGJsb2IiLCBuYW1lKTsKKwl9CisKKwlyZXQgPSBnaXRfY29uZmlnX2Zyb21fYnVmKGZuLCBuYW1lLCBidWYsIHNpemUsIGRhdGEpOworCWZyZWUoYnVmKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgZ2l0X2NvbmZpZ19mcm9tX2Jsb2JfcmVmKGNvbmZpZ19mbl90IGZuLAorCQkJCSAgICBjb25zdCBjaGFyICpuYW1lLAorCQkJCSAgICB2b2lkICpkYXRhKQoreworCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CisKKwlpZiAoZ2V0X3NoYTEobmFtZSwgc2hhMSkgPCAwKQorCQlyZXR1cm4gZXJyb3IoInVuYWJsZSB0byByZXNvbHZlIGNvbmZpZyBibG9iICclcyciLCBuYW1lKTsKKwlyZXR1cm4gZ2l0X2NvbmZpZ19mcm9tX2Jsb2Jfc2hhMShmbiwgbmFtZSwgc2hhMSwgZGF0YSk7Cit9CisKIGNvbnN0IGNoYXIgKmdpdF9ldGNfZ2l0Y29uZmlnKHZvaWQpCiB7CiAJc3RhdGljIGNvbnN0IGNoYXIgKnN5c3RlbV93aWRlOwpAQCAtOTU0LDIzICsxMDgyLDIzIEBACiAKIAlob21lX2NvbmZpZ19wYXRocygmdXNlcl9jb25maWcsICZ4ZGdfY29uZmlnLCAiY29uZmlnIik7CiAKLQlpZiAoZ2l0X2NvbmZpZ19zeXN0ZW0oKSAmJiAhYWNjZXNzX29yX2RpZShnaXRfZXRjX2dpdGNvbmZpZygpLCBSX09LKSkgeworCWlmIChnaXRfY29uZmlnX3N5c3RlbSgpICYmICFhY2Nlc3Nfb3JfZGllKGdpdF9ldGNfZ2l0Y29uZmlnKCksIFJfT0ssIDApKSB7CiAJCXJldCArPSBnaXRfY29uZmlnX2Zyb21fZmlsZShmbiwgZ2l0X2V0Y19naXRjb25maWcoKSwKIAkJCQkJICAgIGRhdGEpOwogCQlmb3VuZCArPSAxOwogCX0KIAotCWlmICh4ZGdfY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHhkZ19jb25maWcsIFJfT0spKSB7CisJaWYgKHhkZ19jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUoeGRnX2NvbmZpZywgUl9PSywgQUNDRVNTX0VBQ0NFU19PSykpIHsKIAkJcmV0ICs9IGdpdF9jb25maWdfZnJvbV9maWxlKGZuLCB4ZGdfY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CiAKLQlpZiAodXNlcl9jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUodXNlcl9jb25maWcsIFJfT0spKSB7CisJaWYgKHVzZXJfY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHVzZXJfY29uZmlnLCBSX09LLCBBQ0NFU1NfRUFDQ0VTX09LKSkgewogCQlyZXQgKz0gZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoZm4sIHVzZXJfY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CiAKLQlpZiAocmVwb19jb25maWcgJiYgIWFjY2Vzc19vcl9kaWUocmVwb19jb25maWcsIFJfT0spKSB7CisJaWYgKHJlcG9fY29uZmlnICYmICFhY2Nlc3Nfb3JfZGllKHJlcG9fY29uZmlnLCBSX09LLCAwKSkgewogCQlyZXQgKz0gZ2l0X2NvbmZpZ19mcm9tX2ZpbGUoZm4sIHJlcG9fY29uZmlnLCBkYXRhKTsKIAkJZm91bmQgKz0gMTsKIAl9CkBAIC05OTIsNyArMTEyMCw5IEBACiB9CiAKIGludCBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhjb25maWdfZm5fdCBmbiwgdm9pZCAqZGF0YSwKLQkJCSAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IHJlc3BlY3RfaW5jbHVkZXMpCisJCQkgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQkgICAgY29uc3QgY2hhciAqYmxvYl9yZWYsCisJCQkgICAgaW50IHJlc3BlY3RfaW5jbHVkZXMpCiB7CiAJY2hhciAqcmVwb19jb25maWcgPSBOVUxMOwogCWludCByZXQ7CkBAIC0xMDExLDYgKzExNDEsOCBAQAogCSAqLwogCWlmIChmaWxlbmFtZSkKIAkJcmV0dXJuIGdpdF9jb25maWdfZnJvbV9maWxlKGZuLCBmaWxlbmFtZSwgZGF0YSk7CisJZWxzZSBpZiAoYmxvYl9yZWYpCisJCXJldHVybiBnaXRfY29uZmlnX2Zyb21fYmxvYl9yZWYoZm4sIGJsb2JfcmVmLCBkYXRhKTsKIAogCXJlcG9fY29uZmlnID0gZ2l0X3BhdGhkdXAoImNvbmZpZyIpOwogCXJldCA9IGdpdF9jb25maWdfZWFybHkoZm4sIGRhdGEsIHJlcG9fY29uZmlnKTsKQEAgLTEwMjEsNyArMTE1Myw3IEBACiAKIGludCBnaXRfY29uZmlnKGNvbmZpZ19mbl90IGZuLCB2b2lkICpkYXRhKQogewotCXJldHVybiBnaXRfY29uZmlnX3dpdGhfb3B0aW9ucyhmbiwgZGF0YSwgTlVMTCwgMSk7CisJcmV0dXJuIGdpdF9jb25maWdfd2l0aF9vcHRpb25zKGZuLCBkYXRhLCBOVUxMLCBOVUxMLCAxKTsKIH0KIAogLyoKQEAgLTEwNTMsNyArMTE4NSw2IEBACiB7CiAJY29uc3QgY2hhciAqZXA7CiAJc2l6ZV90IHNlY3Rpb25fbGVuOwotCUZJTEUgKmYgPSBjZi0+ZjsKIAogCXN3aXRjaCAoc3RvcmUuc3RhdGUpIHsKIAljYXNlIEtFWV9TRUVOOgpAQCAtMTA2NSw3ICsxMTk2LDcgQEAKIAkJCQlyZXR1cm4gMTsKIAkJCX0KIAotCQkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gZnRlbGwoZik7CisJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJc3RvcmUuc2VlbisrOwogCQl9CiAJCWJyZWFrOwpAQCAtMTA5MiwxOSArMTIyMywxOSBAQAogCQkgKiBEbyBub3QgaW5jcmVtZW50IG1hdGNoZXM6IHRoaXMgaXMgbm8gbWF0Y2gsIGJ1dCB3ZQogCQkgKiBqdXN0IG1hZGUgc3VyZSB3ZSBhcmUgaW4gdGhlIGRlc2lyZWQgc2VjdGlvbi4KIAkJICovCi0JCXN0b3JlLm9mZnNldFtzdG9yZS5zZWVuXSA9IGZ0ZWxsKGYpOworCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkvKiBmYWxsdGhydSAqLwogCWNhc2UgU0VDVElPTl9FTkRfU0VFTjoKIAljYXNlIFNUQVJUOgogCQlpZiAobWF0Y2hlcyhrZXksIHZhbHVlKSkgewotCQkJc3RvcmUub2Zmc2V0W3N0b3JlLnNlZW5dID0gZnRlbGwoZik7CisJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJc3RvcmUuc3RhdGUgPSBLRVlfU0VFTjsKIAkJCXN0b3JlLnNlZW4rKzsKIAkJfSBlbHNlIHsKIAkJCWlmIChzdHJyY2hyKGtleSwgJy4nKSAtIGtleSA9PSBzdG9yZS5iYXNlbGVuICYmCiAJCQkgICAgICAhc3RybmNtcChrZXksIHN0b3JlLmtleSwgc3RvcmUuYmFzZWxlbikpIHsKIAkJCQkJc3RvcmUuc3RhdGUgPSBTRUNUSU9OX1NFRU47Ci0JCQkJCXN0b3JlLm9mZnNldFtzdG9yZS5zZWVuXSA9IGZ0ZWxsKGYpOworCQkJCQlzdG9yZS5vZmZzZXRbc3RvcmUuc2Vlbl0gPSBjZi0+ZG9fZnRlbGwoY2YpOwogCQkJfQogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvY29uZmlnLm1hay51bmFtZSBiL2NvbmZpZy5tYWsudW5hbWUKaW5kZXggZDc4ZmQzZC4uN2Q2MTUzMSAxMDA2NDQKLS0tIGEvY29uZmlnLm1hay51bmFtZQorKysgYi9jb25maWcubWFrLnVuYW1lCkBAIC0xNTgsMTkgKzE1OCwxOCBAQAogCQlOT19TWU1MSU5LX0hFQUQgPSBZZXNQbGVhc2UKIAkJTk9fSVBWNiA9IFllc1BsZWFzZQogCQlPTERfSUNPTlYgPSBVbmZvcnR1bmF0ZWx5WWVzCi0JCUNZR1dJTl9WMTVfV0lOMzJBUEkgPSBZZXNQbGVhc2UKKwkJTk9fVEhSRUFEX1NBRkVfUFJFQUQgPSBZZXNQbGVhc2UKKwkJIyBUaGVyZSBhcmUgY29uZmxpY3RpbmcgcmVwb3J0cyBhYm91dCB0aGlzLgorCQkjIE9uIHNvbWUgYm94ZXMgTk9fTU1BUCBpcyBuZWVkZWQsIGFuZCBub3Qgc28gZWxzZXdoZXJlLgorCQkjIFRyeSBjb21tZW50aW5nIHRoaXMgb3V0IGlmIHlvdSBzdXNwZWN0IE1NQVAgaXMgbW9yZSBlZmZpY2llbnQKKwkJTk9fTU1BUCA9IFllc1BsZWFzZQorCWVsc2UKKwkJTk9fUkVHRVggPSBVbmZvcnR1bmF0ZWx5WWVzCiAJZW5kaWYKLQlOT19USFJFQURfU0FGRV9QUkVBRCA9IFllc1BsZWFzZQogCU5FRURTX0xJQklDT05WID0gWWVzUGxlYXNlCiAJTk9fRkFTVF9XT1JLSU5HX0RJUkVDVE9SWSA9IFVuZm9ydHVuYXRlbHlZZXMKLQlOT19UUlVTVEFCTEVfRklMRU1PREUgPSBVbmZvcnR1bmF0ZWx5WWVzCiAJTk9fU1RfQkxPQ0tTX0lOX1NUUlVDVF9TVEFUID0gWWVzUGxlYXNlCi0JIyBUaGVyZSBhcmUgY29uZmxpY3RpbmcgcmVwb3J0cyBhYm91dCB0aGlzLgotCSMgT24gc29tZSBib3hlcyBOT19NTUFQIGlzIG5lZWRlZCwgYW5kIG5vdCBzbyBlbHNld2hlcmUuCi0JIyBUcnkgY29tbWVudGluZyB0aGlzIG91dCBpZiB5b3Ugc3VzcGVjdCBNTUFQIGlzIG1vcmUgZWZmaWNpZW50Ci0JTk9fTU1BUCA9IFllc1BsZWFzZQogCVggPSAuZXhlCi0JQ09NUEFUX09CSlMgKz0gY29tcGF0L2N5Z3dpbi5vCiAJVU5SRUxJQUJMRV9GU1RBVCA9IFVuZm9ydHVuYXRlbHlZZXMKIAlTUEFSU0VfRkxBR1MgPSAtaXN5c3RlbSAvdXNyL2luY2x1ZGUvdzMyYXBpIC1Xbm8tb25lLWJpdC1zaWduZWQtYml0ZmllbGQKIGVuZGlmCkBAIC00ODAsNyArNDc5LDYgQEAKIAlOT19GTk1BVENIID0gWWVzUGxlYXNlCiAJTk9fTUVNTUVNID0gWWVzUGxlYXNlCiAJTkVFRFNfTElCSUNPTlYgPSBZZXNQbGVhc2UKLQlPTERfSUNPTlYgPSBZZXNQbGVhc2UKIAlOT19TVFJUT1VNQVggPSBZZXNQbGVhc2UKIAlOT19NS0RURU1QID0gWWVzUGxlYXNlCiAJTk9fTUtTVEVNUFMgPSBZZXNQbGVhc2UKQEAgLTUwMCwxMyArNDk4LDE3IEBACiAJTk9fSU5FVF9QVE9OID0gWWVzUGxlYXNlCiAJTk9fSU5FVF9OVE9QID0gWWVzUGxlYXNlCiAJTk9fUE9TSVhfR09PRElFUyA9IFVuZm9ydHVuYXRlbHlZZXMKKwlERUZBVUxUX0hFTFBfRk9STUFUID0gaHRtbAogCUNPTVBBVF9DRkxBR1MgKz0gLURfX1VTRV9NSU5HV19BQ0NFU1MgLUROT0dESSAtSWNvbXBhdCAtSWNvbXBhdC93aW4zMgogCUNPTVBBVF9DRkxBR1MgKz0gLURTVFJJUF9FWFRFTlNJT049XCIuZXhlXCIKIAlDT01QQVRfT0JKUyArPSBjb21wYXQvbWluZ3cubyBjb21wYXQvd2luYW5zaS5vIFwKIAkJY29tcGF0L3dpbjMyL3B0aHJlYWQubyBjb21wYXQvd2luMzIvc3lzbG9nLm8gXAogCQljb21wYXQvd2luMzIvZGlyZW50Lm8KKwlCQVNJQ19MREZMQUdTICs9IC1XbCwtLWxhcmdlLWFkZHJlc3MtYXdhcmUKIAlFWFRMSUJTICs9IC1sd3MyXzMyCisJR0lUTElCUyArPSBnaXQucmVzCiAJUFRIUkVBRF9MSUJTID0KKwlSQyA9IHdpbmRyZXMgLU8gY29mZgogCU5BVElWRV9DUkxGID0gWWVzUGxlYXNlCiAJWCA9IC5leGUKIAlTUEFSU0VfRkxBR1MgPSAtV25vLW9uZS1iaXQtc2lnbmVkLWJpdGZpZWxkCkBAIC01MTgsNiArNTIwLDcgQEAKIAlOT19SX1RPX0dDQ19MSU5LRVIgPSBZZXNQbGVhc2UKIAlJTlRFUk5BTF9RU09SVCA9IFllc1BsZWFzZQogCUhBVkVfTElCQ0hBUlNFVF9IID0gWWVzUGxlYXNlCisJTk9fR0VUVEVYVCA9IFllc1BsZWFzZQogZWxzZQogCU5PX0NVUkwgPSBZZXNQbGVhc2UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggZjM0NjJkOS4uMmY0MzM5MyAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTkzLDcgKzE5Myw3IEBACiAgIFtGTEFHUyBpcyB0aGUgdmFsdWUgdG8gcGFzcyB0byB0aGUgY29tcGlsZXIgdG8gZW5hYmxlIFBPU0lYIFRocmVhZHMuXQogICBbVGhlIGRlZmF1bHQgaWYgRkxBR1MgaXMgbm90IHNwZWNpZmllZCBpcyB0byB0cnkgZmlyc3QgLXB0aHJlYWRdCiAgIFthbmQgdGhlbiAtbHB0aHJlYWQuXQotICBbLS13aXRob3V0LXB0aHJlYWRzIHdpbGwgZGlzYWJsZSB0aHJlYWRpbmcuXSldLAorICBbLS1kaXNhYmxlLXB0aHJlYWRzIHdpbGwgZGlzYWJsZSB0aHJlYWRpbmcuXSldLAogWwogaWYgdGVzdCAieCRlbmFibGV2YWwiID0gInh5ZXMiOyB0aGVuCiAgICBBQ19NU0dfTk9USUNFKFtXaWxsIHRyeSAtcHRocmVhZCB0aGVuIC1scHRocmVhZCB0byBlbmFibGUgUE9TSVggVGhyZWFkc10pCmRpZmYgLS1naXQgYS9jb25uZWN0LmMgYi9jb25uZWN0LmMKaW5kZXggZjU3ZWZkMC4uYTA3ODNkNCAxMDA2NDQKLS0tIGEvY29ubmVjdC5jCisrKyBiL2Nvbm5lY3QuYwpAQCAtNTUxLDggKzU1MSwxMSBAQAogCXBhdGggPSBzdHJjaHIoZW5kLCBjKTsKIAlpZiAocGF0aCAmJiAhaGFzX2Rvc19kcml2ZV9wcmVmaXgoZW5kKSkgewogCQlpZiAoYyA9PSAnOicpIHsKLQkJCXByb3RvY29sID0gUFJPVE9fU1NIOwotCQkJKnBhdGgrKyA9ICdcMCc7CisJCQlpZiAocGF0aCA8IHN0cmNocm51bChob3N0LCAnLycpKSB7CisJCQkJcHJvdG9jb2wgPSBQUk9UT19TU0g7CisJCQkJKnBhdGgrKyA9ICdcMCc7CisJCQl9IGVsc2UgLyogJy8nIGluIHRoZSBob3N0IHBhcnQsIGFzc3VtZSBsb2NhbCBwYXRoICovCisJCQkJcGF0aCA9IGVuZDsKIAkJfQogCX0gZWxzZQogCQlwYXRoID0gZW5kOwpkaWZmIC0tZ2l0IGEvY29ubmVjdGVkLmMgYi9jb25uZWN0ZWQuYwppbmRleCAxZTg5YzFjLi5mYWU4ZDY0IDEwMDY0NAotLS0gYS9jb25uZWN0ZWQuYworKysgYi9jb25uZWN0ZWQuYwpAQCAtMiw3ICsyLDEyIEBACiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImNvbm5lY3RlZC5oIgorI2luY2x1ZGUgInRyYW5zcG9ydC5oIgogCitpbnQgY2hlY2tfZXZlcnl0aGluZ19jb25uZWN0ZWQoc2hhMV9pdGVyYXRlX2ZuIGZuLCBpbnQgcXVpZXQsIHZvaWQgKmNiX2RhdGEpCit7CisJcmV0dXJuIGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KGZuLCBxdWlldCwgY2JfZGF0YSwgTlVMTCk7Cit9CiAvKgogICogSWYgd2UgZmVlZCBhbGwgdGhlIGNvbW1pdHMgd2Ugd2FudCB0byB2ZXJpZnkgdG8gdGhpcyBjb21tYW5kCiAgKgpAQCAtMTQsNyArMTksMTAgQEAKICAqCiAgKiBSZXR1cm5zIDAgaWYgZXZlcnl0aGluZyBpcyBjb25uZWN0ZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KICAqLwotaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkKHNoYTFfaXRlcmF0ZV9mbiBmbiwgaW50IHF1aWV0LCB2b2lkICpjYl9kYXRhKQoraW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KHNoYTFfaXRlcmF0ZV9mbiBmbiwKKwkJCQkJICAgICAgaW50IHF1aWV0LAorCQkJCQkgICAgICB2b2lkICpjYl9kYXRhLAorCQkJCQkgICAgICBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQpCiB7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgcmV2X2xpc3Q7CiAJY29uc3QgY2hhciAqYXJndltdID0geyJyZXYtbGlzdCIsICItLW9iamVjdHMiLApAQCAtMjIsMTAgKzMwLDIzIEBACiAJY2hhciBjb21taXRbNDFdOwogCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJaW50IGVyciA9IDA7CisJc3RydWN0IHBhY2tlZF9naXQgKm5ld19wYWNrID0gTlVMTDsKIAogCWlmIChmbihjYl9kYXRhLCBzaGExKSkKIAkJcmV0dXJuIGVycjsKIAorCWlmICh0cmFuc3BvcnQgJiYgdHJhbnNwb3J0LT5zbWFydF9vcHRpb25zICYmCisJICAgIHRyYW5zcG9ydC0+c21hcnRfb3B0aW9ucy0+c2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCAmJgorCSAgICB0cmFuc3BvcnQtPnBhY2tfbG9ja2ZpbGUgJiYKKwkgICAgIXN1ZmZpeGNtcCh0cmFuc3BvcnQtPnBhY2tfbG9ja2ZpbGUsICIua2VlcCIpKSB7CisJCXN0cnVjdCBzdHJidWYgaWR4X2ZpbGUgPSBTVFJCVUZfSU5JVDsKKwkJc3RyYnVmX2FkZHN0cigmaWR4X2ZpbGUsIHRyYW5zcG9ydC0+cGFja19sb2NrZmlsZSk7CisJCXN0cmJ1Zl9zZXRsZW4oJmlkeF9maWxlLCBpZHhfZmlsZS5sZW4gLSA1KTsgLyogIi5rZWVwIiAqLworCQlzdHJidWZfYWRkc3RyKCZpZHhfZmlsZSwgIi5pZHgiKTsKKwkJbmV3X3BhY2sgPSBhZGRfcGFja2VkX2dpdChpZHhfZmlsZS5idWYsIGlkeF9maWxlLmxlbiwgMSk7CisJCXN0cmJ1Zl9yZWxlYXNlKCZpZHhfZmlsZSk7CisJfQorCiAJaWYgKHF1aWV0KQogCQlhcmd2WzVdID0gIi0tcXVpZXQiOwogCkBAIC00Miw2ICs2MywxNyBAQAogCiAJY29tbWl0WzQwXSA9ICdcbic7CiAJZG8geworCQkvKgorCQkgKiBJZiBpbmRleC1wYWNrIGFscmVhZHkgY2hlY2tlZCB0aGF0OgorCQkgKiAtIHRoZXJlIGFyZSBubyBkYW5nbGluZyBwb2ludGVycyBpbiB0aGUgbmV3IHBhY2sKKwkJICogLSB0aGUgcGFjayBpcyBzZWxmIGNvbnRhaW5lZAorCQkgKiBUaGVuIGlmIHRoZSB1cGRhdGVkIHJlZiBpcyBpbiB0aGUgbmV3IHBhY2ssIHRoZW4gd2UKKwkJICogYXJlIHN1cmUgdGhlIHJlZiBpcyBnb29kIGFuZCBub3Qgc2VuZGluZyBpdCB0bworCQkgKiByZXYtbGlzdCBmb3IgdmVyaWZpY2F0aW9uLgorCQkgKi8KKwkJaWYgKG5ld19wYWNrICYmIGZpbmRfcGFja19lbnRyeV9vbmUoc2hhMSwgbmV3X3BhY2spKQorCQkJY29udGludWU7CisKIAkJbWVtY3B5KGNvbW1pdCwgc2hhMV90b19oZXgoc2hhMSksIDQwKTsKIAkJaWYgKHdyaXRlX2luX2Z1bGwocmV2X2xpc3QuaW4sIGNvbW1pdCwgNDEpIDwgMCkgewogCQkJaWYgKGVycm5vICE9IEVQSVBFICYmIGVycm5vICE9IEVJTlZBTCkKZGlmZiAtLWdpdCBhL2Nvbm5lY3RlZC5oIGIvY29ubmVjdGVkLmgKaW5kZXggN2U0NTg1YS4uMGIwNjBiNyAxMDA2NDQKLS0tIGEvY29ubmVjdGVkLmgKKysrIGIvY29ubmVjdGVkLmgKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIENPTk5FQ1RFRF9ICiAjZGVmaW5lIENPTk5FQ1RFRF9ICiAKK3N0cnVjdCB0cmFuc3BvcnQ7CisKIC8qCiAgKiBUYWtlIGNhbGxiYWNrIGRhdGEsIGFuZCByZXR1cm4gbmV4dCBvYmplY3QgbmFtZSBpbiB0aGUgYnVmZmVyLgogICogV2hlbiBjYWxsZWQgYWZ0ZXIgcmV0dXJuaW5nIHRoZSBuYW1lIGZvciB0aGUgbGFzdCBvYmplY3QsIHJldHVybiAtMQpAQCAtMTYsNSArMTgsOCBAQAogICogUmV0dXJuIDAgaWYgT2ssIG5vbiB6ZXJvIG90aGVyd2lzZSAoaS5lLiBzb21lIG1pc3Npbmcgb2JqZWN0cykKICAqLwogZXh0ZXJuIGludCBjaGVja19ldmVyeXRoaW5nX2Nvbm5lY3RlZChzaGExX2l0ZXJhdGVfZm4sIGludCBxdWlldCwgdm9pZCAqY2JfZGF0YSk7CitleHRlcm4gaW50IGNoZWNrX2V2ZXJ5dGhpbmdfY29ubmVjdGVkX3dpdGhfdHJhbnNwb3J0KHNoYTFfaXRlcmF0ZV9mbiwgaW50IHF1aWV0LAorCQkJCQkJICAgICB2b2lkICpjYl9kYXRhLAorCQkJCQkJICAgICBzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQpOwogCiAjZW5kaWYgLyogQ09OTkVDVEVEX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYmxhbWV2aWV3L1JFQURNRSBiL2NvbnRyaWIvYmxhbWV2aWV3L1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmFkYTVjZS4uMDAwMDAwMAotLS0gYS9jb250cmliL2JsYW1ldmlldy9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRoaXMgaXMgYSBzYW1wbGUgcHJvZ3JhbSB0byB1c2UgJ2dpdC1ibGFtZSAtLWluY3JlbWVudGFsJywgYmFzZWQKLW9uIHRoaXMgbWVzc2FnZS4KLQotRnJvbTogSmVmZiBLaW5nIDxwZWZmQHBlZmYubmV0PgotU3ViamVjdDogUmU6IE1vcmUgcHJlY2lzZSB0YWcgZm9sbG93aW5nCi1UbzogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgotQ2M6IGdpdEB2Z2VyLmtlcm5lbC5vcmcKLURhdGU6IFNhdCwgMjcgSmFuIDIwMDcgMTg6NTI6MzggLTA1MDAKLU1lc3NhZ2UtSUQ6IDwyMDA3MDEyNzIzNTIzOC5HQTI4NzA2QGNvcmVkdW1wLmludHJhLnBlZmYubmV0PgpkaWZmIC0tZ2l0IGEvY29udHJpYi9ibGFtZXZpZXcvYmxhbWV2aWV3LnBlcmwgYi9jb250cmliL2JsYW1ldmlldy9ibGFtZXZpZXcucGVybApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMWRlYzAwMS4uMDAwMDAwMAotLS0gYS9jb250cmliL2JsYW1ldmlldy9ibGFtZXZpZXcucGVybAorKysgL2Rldi9udWxsCkBAIC0xLDE1NSArMCwwIEBACi0jIS91c3IvYmluL3BlcmwKLQotdXNlIEd0azIgLWluaXQ7Ci11c2UgR3RrMjo6U2ltcGxlTGlzdDsKLQotbXkgJGhhc2g7Ci1teSAkZm47Ci1pZiAoIEBBUkdWID09IDEgKSB7Ci0JJGhhc2ggPSAiSEVBRCI7Ci0JJGZuID0gc2hpZnQ7Ci19IGVsc2lmICggQEFSR1YgPT0gMiApIHsKLQkkaGFzaCA9IHNoaWZ0OwotCSRmbiA9IHNoaWZ0OwotfSBlbHNlIHsKLQlkaWUgIlVzYWdlIGJsYW1ldmlldyBbPHJldj5dIDxmaWxlbmFtZT4iOwotfQotCi1HdGsyOjpSYy0+cGFyc2Vfc3RyaW5nKDw8J0VPUycpOwotc3R5bGUgInRyZWV2aWV3X3N0eWxlIgotewotICBHdGtUcmVlVmlldzo6dmVydGljYWwtc2VwYXJhdG9yID0gMAotfQotY2xhc3MgIkd0a1RyZWVWaWV3IiBzdHlsZSAidHJlZXZpZXdfc3R5bGUiCi1FT1MKLQotbXkgJHdpbmRvdyA9IEd0azI6OldpbmRvdy0+bmV3KCd0b3BsZXZlbCcpOwotJHdpbmRvdy0+c2lnbmFsX2Nvbm5lY3QoZGVzdHJveSA9PiBzdWIgeyBHdGsyLT5tYWluX3F1aXQgfSk7Ci1teSAkdnBhbiA9IEd0azI6OlZQYW5lZC0+bmV3KCk7Ci0kd2luZG93LT5hZGQoJHZwYW4pOwotbXkgJHNjcm9sbGVkX3dpbmRvdyA9IEd0azI6OlNjcm9sbGVkV2luZG93LT5uZXc7Ci0kdnBhbi0+cGFjazEoJHNjcm9sbGVkX3dpbmRvdywgMSwgMSk7Ci1teSAkZmlsZXZpZXcgPSBHdGsyOjpTaW1wbGVMaXN0LT5uZXcoCi0gICAgJ0NvbW1pdCcgPT4gJ3RleHQnLAotICAgICdGaWxlTGluZScgPT4gJ3RleHQnLAotICAgICdEYXRhJyA9PiAndGV4dCcKLSk7Ci0kc2Nyb2xsZWRfd2luZG93LT5hZGQoJGZpbGV2aWV3KTsKLSRmaWxldmlldy0+Z2V0X2NvbHVtbigwKS0+c2V0X3NwYWNpbmcoMCk7Ci0kZmlsZXZpZXctPnNldF9zaXplX3JlcXVlc3QoMTAyNCwgNzY4KTsKLSRmaWxldmlldy0+c2V0X3J1bGVzX2hpbnQoMSk7Ci0kZmlsZXZpZXctPnNpZ25hbF9jb25uZWN0IChyb3dfYWN0aXZhdGVkID0+IHN1YiB7Ci0JCW15ICgkc2wsICRwYXRoLCAkY29sdW1uKSA9IEBfOwotCQlteSAkcm93X3JlZiA9ICRzbC0+Z2V0X3Jvd19kYXRhX2Zyb21fcGF0aCAoJHBhdGgpOwotCQlzeXN0ZW0oImJsYW1ldmlldyBAJHJvd19yZWZbMF1+MSAkZm4gJiIpOwotCQl9KTsKLQotbXkgJGNvbW1pdHdpbmRvdyA9IEd0azI6OlNjcm9sbGVkV2luZG93LT5uZXcoKTsKLSRjb21taXR3aW5kb3ctPnNldF9wb2xpY3kgKCdHVEtfUE9MSUNZX0FVVE9NQVRJQycsJ0dUS19QT0xJQ1lfQVVUT01BVElDJyk7Ci0kdnBhbi0+cGFjazIoJGNvbW1pdHdpbmRvdywgMSwgMSk7Ci1teSAkY29tbWl0X3RleHQgPSBHdGsyOjpUZXh0Vmlldy0+bmV3KCk7Ci1teSAkY29tbWl0X2J1ZmZlciA9IEd0azI6OlRleHRCdWZmZXItPm5ldygpOwotJGNvbW1pdF90ZXh0LT5zZXRfYnVmZmVyKCRjb21taXRfYnVmZmVyKTsKLSRjb21taXR3aW5kb3ctPmFkZCgkY29tbWl0X3RleHQpOwotCi0kZmlsZXZpZXctPnNpZ25hbF9jb25uZWN0IChjdXJzb3JfY2hhbmdlZCA9PiBzdWIgewotCQlteSAoJHNsKSA9IEBfOwotCQlteSAoJHBhdGgsICRmb2N1c19jb2x1bW4pID0gJHNsLT5nZXRfY3Vyc29yKCk7Ci0JCW15ICRyb3dfcmVmID0gJHNsLT5nZXRfcm93X2RhdGFfZnJvbV9wYXRoICgkcGF0aCk7Ci0JCW15ICRjX2ZoOwotCQlvcGVuKCRjX2ZoLCAgJy18JywgImdpdCBjYXQtZmlsZSBjb21taXQgQCRyb3dfcmVmWzBdIikKLQkJCQkJb3IgZGllICJ1bmFibGUgdG8gZmluZCBjb21taXQgQCRyb3dfcmVmWzBdIjsKLQkJbXkgQGJ1ZmZlciA9IDwkY19maD47Ci0JCSRjb21taXRfYnVmZmVyLT5zZXRfdGV4dCgiQGJ1ZmZlciIpOwotCQljbG9zZSgkY19maCk7Ci0JCX0pOwotCi1teSAkZmg7Ci1vcGVuKCRmaCwgJy18JywgImdpdCBjYXQtZmlsZSBibG9iICRoYXNoOiRmbiIpCi0gIG9yIGRpZSAidW5hYmxlIHRvIG9wZW4gJGZuOiAkISI7Ci0KLXdoaWxlKDwkZmg+KSB7Ci0gIGNob21wOwotICAkZmlsZXZpZXctPntkYXRhfS0+WyQuXSA9IFsnSEVBRCcsICIkZm46JC4iLCAkX107Ci19Ci0KLW15ICRibGFtZTsKLW9wZW4oJGJsYW1lLCAnLXwnLCBxdyhnaXQgYmxhbWUgLS1pbmNyZW1lbnRhbCAtLSksICRmbiwgJGhhc2gpCi0gICAgb3IgZGllICJjYW5ub3Qgc3RhcnQgZ2l0LWJsYW1lICRmbiI7Ci0KLUdsaWI6OklPLT5hZGRfd2F0Y2goZmlsZW5vKCRibGFtZSksICdpbicsIFwmcmVhZF9ibGFtZV9saW5lKTsKLQotJHdpbmRvdy0+c2hvd19hbGw7Ci1HdGsyLT5tYWluOwotZXhpdCAwOwotCi1teSAlY29tbWl0aW5mbyA9ICgpOwotCi1zdWIgZmx1c2hfYmxhbWVfbGluZSB7Ci0JbXkgKCRhdHRyKSA9IEBfOwotCi0JcmV0dXJuIHVubGVzcyBkZWZpbmVkICRhdHRyOwotCi0JbXkgKCRjb21taXQsICRzX2xubywgJGxubywgJGNudCkgPQotCSAgICBAeyRhdHRyfXtxdyhDT01NSVQgU19MTk8gTE5PIENOVCl9OwotCi0JbXkgKCRmaWxlbmFtZSwgJGF1dGhvciwgJGF1dGhvcl90aW1lLCAkYXV0aG9yX3R6KSA9Ci0JICAgIEB7JGNvbW1pdGluZm97JGNvbW1pdH19e3F3KEZJTEVOQU1FIEFVVEhPUiBBVVRIT1ItVElNRSBBVVRIT1ItVFopfTsKLQlteSAkaW5mbyA9ICRhdXRob3IgLiAnICcgLiBmb3JtYXRfdGltZSgkYXV0aG9yX3RpbWUsICRhdXRob3JfdHopOwotCi0JZm9yKG15ICRpID0gMDsgJGkgPCAkY250OyAkaSsrKSB7Ci0JCUB7JGZpbGV2aWV3LT57ZGF0YX0tPlskbG5vKyRpLTFdfVswLDEsMl0gPQotCQkoc3Vic3RyKCRjb21taXQsIDAsIDgpLCAkZmlsZW5hbWUgLiAnOicgLiAoJHNfbG5vKyRpKSk7Ci0JfQotfQotCi1teSAkYnVmOwotbXkgJGN1cnJlbnQ7Ci1zdWIgcmVhZF9ibGFtZV9saW5lIHsKLQotCW15ICRyID0gc3lzcmVhZCgkYmxhbWUsICRidWYsIDEwMjQsIGxlbmd0aCgkYnVmKSk7Ci0JZGllICJJL08gZXJyb3IiIHVubGVzcyBkZWZpbmVkICRyOwotCi0JaWYgKCRyID09IDApIHsKLQkJZmx1c2hfYmxhbWVfbGluZSgkY3VycmVudCk7Ci0JCSRjdXJyZW50ID0gdW5kZWY7Ci0JCXJldHVybiAwOwotCX0KLQotCXdoaWxlICgkYnVmID1+IHMvKFteXG5dKilcbi8vKSB7Ci0JCW15ICRsaW5lID0gJDE7Ci0KLQkJaWYgKCgkY29tbWl0LCAkc19sbm8sICRsbm8sICRjbnQpID0KLQkJICAgICgkbGluZSA9fiAvXihbMC05YS1mXXs0MH0pIChcZCspIChcZCspIChcZCspJC8pKSB7Ci0JCQlmbHVzaF9ibGFtZV9saW5lKCRjdXJyZW50KTsKLQkJCSRjdXJyZW50ID0gK3sKLQkJCQlDT01NSVQgPT4gJDEsCi0JCQkJU19MTk8gPT4gJDIsCi0JCQkJTE5PID0+ICQzLAotCQkJCUNOVCA9PiAkNCwKLQkJCX07Ci0JCQluZXh0OwotCQl9Ci0KLQkJIyBleHRlbmRlZCBhdHRyaWJ1dGUgdmFsdWVzCi0JCWlmICgkbGluZSA9fiAvXihhdXRob3J8YXV0aG9yLW1haWx8YXV0aG9yLXRpbWV8YXV0aG9yLXR6fGNvbW1pdHRlcnxjb21taXR0ZXItbWFpbHxjb21taXR0ZXItdGltZXxjb21taXR0ZXItdHp8c3VtbWFyeXxmaWxlbmFtZSkgKC4qKSQvKSB7Ci0JCQlteSAkY29tbWl0ID0gJGN1cnJlbnQtPntDT01NSVR9OwotCQkJJGNvbW1pdGluZm97JGNvbW1pdH17dWMoJDEpfSA9ICQyOwotCQkJbmV4dDsKLQkJfQotCX0KLQlyZXR1cm4gMTsKLX0KLQotc3ViIGZvcm1hdF90aW1lIHsKLSAgbXkgJHRpbWUgPSBzaGlmdDsKLSAgbXkgJHR6ID0gc2hpZnQ7Ci0KLSAgbXkgJG1pbnV0ZXMgPSAkdHogPCAwID8gMC0kdHogOiAkdHo7Ci0gICRtaW51dGVzID0gKCRtaW51dGVzIC8gMTAwKSo2MCArICgkbWludXRlcyAlIDEwMCk7Ci0gICRtaW51dGVzID0gJHR6IDwgMCA/IDAtJG1pbnV0ZXMgOiAkbWludXRlczsKLSAgJHRpbWUgKz0gJG1pbnV0ZXMgKiA2MDsKLSAgbXkgQHQgPSBnbXRpbWUoJHRpbWUpOwotICByZXR1cm4gc3ByaW50ZignJTA0ZC0lMDJkLSUwMmQgJTAyZDolMDJkOiUwMmQgJXMnLAotCQkgJHRbNV0gKyAxOTAwLCBAdFs0LDMsMiwxLDBdLCAkdHopOwotfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvY2lhYm90LnB5IGIvY29udHJpYi9jaWFib3QvY2lhYm90LnB5CmluZGV4IDM2YjU2NjUuLmJlZmEwYzMgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5weQorKysgYi9jb250cmliL2NpYWJvdC9jaWFib3QucHkKQEAgLTcwLDcgKzcwLDcgQEAKIAogIyBUaGUgdGVtcGxhdGUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgWE1MIG1lc3NhZ2VzIHRvIENJQS4gIFlvdSBjYW4gbWFrZQogIyB2aXNpYmxlIGNoYW5nZXMgdG8gdGhlIElSQy1ib3Qgbm90aWZpY2F0aW9uIGxpbmVzIGJ5IGhhY2tpbmcgdGhpcy4KLSMgVGhlIGRlZmF1bHQgd2lsbCBwcm9kdWNlIGEgbm90ZmljYXRpb24gbGluZSB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyMgVGhlIGRlZmF1bHQgd2lsbCBwcm9kdWNlIGEgbm90aWZpY2F0aW9uIGxpbmUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CiAjCiAjICR7cHJvamVjdH06ICR7YXV0aG9yfSAke3JlcG99OiR7YnJhbmNofSAqICR7cmV2fSAke2ZpbGVzfTogJHtsb2dtc2d9ICR7dXJsfQogIwpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaWFib3QvY2lhYm90LnNoIGIvY29udHJpYi9jaWFib3QvY2lhYm90LnNoCmluZGV4IDNmYmJjNTMuLmRmYjcxYTEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvY2lhYm90L2NpYWJvdC5zaAorKysgYi9jb250cmliL2NpYWJvdC9jaWFib3Quc2gKQEAgLTM5LDcgKzM5LDcgQEAKICMgICAgICAgZG9uZQogIwogIyBUaGUgcmVhc29uIGZvciB0aGUgdGFjIGNhbGwgaXMgdGhhdCBnaXQgcmV2LWxpc3QgZW1pdHMgY29tbWl0cyBmcm9tCi0jIG1vc3QgcmVjZW50IHRvIGxlYXN0IC0gYmV0dGVyIHRvIHNoaXAgbm90aWZhY3Rpb25zIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4KKyMgbW9zdCByZWNlbnQgdG8gbGVhc3QgLSBiZXR0ZXIgdG8gc2hpcCBub3RpZmljYXRpb25zIGZyb20gb2xkZXN0IHRvIG5ld2VzdC4KICMKICMgQ29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYWZmZWN0aW5nIHRoaXMgc2NyaXB0OgogIwpAQCAtNjQsNyArNjQsNyBAQAogIyBkb3duLiBJdCBpcyB1bmtub3duIHdoZXRoZXIgdGhpcyBpcyBzdGlsbCBhbiBpc3N1ZSBpbiAyMDEwLCBidXQKICMgWE1MLVJQQyB3b3VsZCBiZSBhbm5veWluZyB0byBkbyBmcm9tIHNoIGluIGFueSBjYXNlLiAoWE1MLVJQQyBkb2VzCiAjIGhhdmUgdGhlIGFkdmFudGFnZSB0aGF0IGl0IGd1YXJhbnRlZXMgbm90aWZpY2F0aW9uIG9mIG11bHRpcGxlIGNvbW1pdHMKLSMgc2hwcGVkIGZyb20gYW4gdXBkYXRlIGluIHRoZWlyIGFjdHVhbCBvcmRlci4pCisjIHNoaXBwZWQgZnJvbSBhbiB1cGRhdGUgaW4gdGhlaXIgYWN0dWFsIG9yZGVyLikKICMKIAogIyBUaGUgcHJvamVjdCBhcyBrbm93biB0byBDSUEuIFlvdSBjYW4gc2V0IHRoaXMgd2l0aCBhIC1wIG9wdGlvbiwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi5iYXNoIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKaW5kZXggYjk3MTYyZi4uZTFiNzMxMyAxMDA2NDQKLS0tIGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKKysrIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLmJhc2gKQEAgLTMzLDggKzMzLDYgQEAKICMgcmV0dXJucyBsb2NhdGlvbiBvZiAuZ2l0IHJlcG8KIF9fZ2l0ZGlyICgpCiB7Ci0JIyBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIGR1cGxpY2F0ZWQgaW4gZ2l0LXByb21wdC5zaAotCSMgV2hlbiB1cGRhdGluZyBpdCwgbWFrZSBzdXJlIHlvdSB1cGRhdGUgdGhlIG90aGVyIG9uZSB0byBtYXRjaC4KIAlpZiBbIC16ICIkezEtfSIgXTsgdGhlbgogCQlpZiBbIC1uICIke19fZ2l0X2Rpci19IiBdOyB0aGVuCiAJCQllY2hvICIkX19naXRfZGlyIgpAQCAtMjUyLDEwNiArMjUwLDUwIEBACiAJIyBzaW5jZSB0aWxkZSBleHBhbnNpb24gaXMgbm90IGFwcGxpZWQuCiAJIyBUaGlzIG1lYW5zIHRoYXQgQ09NUFJFUExZIHdpbGwgYmUgZW1wdHkgYW5kIEJhc2ggZGVmYXVsdAogCSMgY29tcGxldGlvbiB3aWxsIGJlIHVzZWQuCi0JQ09NUFJFUExZPSgkKGNvbXBnZW4gLVAgIiR7Mi19IiAtVyAiJDEiIC0tICIkezMtJGN1cn0iKSkKKwlfX2dpdGNvbXBhZGQgIiQxIiAiJHsyLX0iICIkezMtJGN1cn0iICIiCiAKLQkjIFRlbGwgQmFzaCB0aGF0IGNvbXBzcGVjIGdlbmVyYXRlcyBmaWxlbmFtZXMuCi0JY29tcG9wdCAtbyBmaWxlbmFtZXMgMj4vZGV2L251bGwKKwkjIHVzZSBhIGhhY2sgdG8gZW5hYmxlIGZpbGUgbW9kZSBpbiBiYXNoIDwgNAorCWNvbXBvcHQgLW8gZmlsZW5hbWVzICtvIG5vc3BhY2UgMj4vZGV2L251bGwgfHwKKwljb21wZ2VuIC1mIC9ub24tZXhpc3RpbmctZGlyLyA+IC9kZXYvbnVsbAogfQogCi1fX2dpdF9pbmRleF9maWxlX2xpc3RfZmlsdGVyX2NvbXBhdCAoKQotewotCWxvY2FsIHBhdGgKLQotCXdoaWxlIHJlYWQgLXIgcGF0aDsgZG8KLQkJY2FzZSAiJHBhdGgiIGluCi0JCT8qLyopIGVjaG8gIiR7cGF0aCUlLyp9LyIgOzsKLQkJKikgZWNobyAiJHBhdGgiIDs7Ci0JCWVzYWMKLQlkb25lCi19Ci0KLV9fZ2l0X2luZGV4X2ZpbGVfbGlzdF9maWx0ZXJfYmFzaCAoKQotewotCWxvY2FsIHBhdGgKLQotCXdoaWxlIHJlYWQgLXIgcGF0aDsgZG8KLQkJY2FzZSAiJHBhdGgiIGluCi0JCT8qLyopCi0JCQkjIFhYWCBpZiB3ZSBhcHBlbmQgYSBzbGFzaCB0byBkaXJlY3RvcnkgbmFtZXMgd2hlbiB1c2luZwotCQkJIyBgY29tcG9wdCAtbyBmaWxlbmFtZXNgLCBCYXNoIHdpbGwgYXBwZW5kIGFub3RoZXIgc2xhc2guCi0JCQkjIFRoaXMgaXMgcHJldHR5IHN0dXBpZCwgYW5kIHRoaXMgdGhlIHJlYXNvbiB3aHkgd2UgaGF2ZSB0bwotCQkJIyBkZWZpbmUgYSBjb21wYXRpYmxlIHZlcnNpb24gZm9yIHRoaXMgZnVuY3Rpb24uCi0JCQllY2hvICIke3BhdGglJS8qfSIgOzsKLQkJKikKLQkJCWVjaG8gIiRwYXRoIiA7OwotCQllc2FjCi0JZG9uZQotfQotCi0jIFByb2Nlc3MgcGF0aCBsaXN0IHJldHVybmVkIGJ5ICJscy1maWxlcyIgYW5kICJkaWZmLWluZGV4IC0tbmFtZS1vbmx5IgotIyBjb21tYW5kcywgaW4gb3JkZXIgdG8gbGlzdCBvbmx5IGZpbGUgbmFtZXMgcmVsYXRpdmUgdG8gYSBzcGVjaWZpZWQKLSMgZGlyZWN0b3J5LCBhbmQgYXBwZW5kIGEgc2xhc2ggdG8gZGlyZWN0b3J5IG5hbWVzLgotX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlciAoKQotewotCSMgRGVmYXVsdCB0byBCYXNoID49IDQueAotCV9fZ2l0X2luZGV4X2ZpbGVfbGlzdF9maWx0ZXJfYmFzaAotfQotCi0jIEV4ZWN1dGUgZ2l0IGxzLWZpbGVzLCByZXR1cm5pbmcgcGF0aHMgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQotIyBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IGFyZ3VtZW50LCBhbmQgdXNpbmcgdGhlIG9wdGlvbnMgc3BlY2lmaWVkIGluCi0jIHRoZSBzZWNvbmQgYXJndW1lbnQuCisjIEV4ZWN1dGUgJ2dpdCBscy1maWxlcycsIHVubGVzcyB0aGUgLS1jb21taXR0YWJsZSBvcHRpb24gaXMgc3BlY2lmaWVkLCBpbgorIyB3aGljaCBjYXNlIGl0IHJ1bnMgJ2dpdCBkaWZmLWluZGV4JyB0byBmaW5kIG91dCB0aGUgZmlsZXMgdGhhdCBjYW4gYmUKKyMgY29tbWl0dGVkLiAgSXQgcmV0dXJuIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGluIHRoZSBmaXJzdAorIyBhcmd1bWVudCwgYW5kIHVzaW5nIHRoZSBvcHRpb25zIHNwZWNpZmllZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LgogX19naXRfbHNfZmlsZXNfaGVscGVyICgpCiB7CiAJKAogCQl0ZXN0IC1uICIke0NEUEFUSCtzZXR9IiAmJiB1bnNldCBDRFBBVEgKLQkJIyBOT1RFOiAkMiBpcyBub3QgcXVvdGVkIGluIG9yZGVyIHRvIHN1cHBvcnQgbXVsdGlwbGUgb3B0aW9ucwotCQljZCAiJDEiICYmIGdpdCBscy1maWxlcyAtLWV4Y2x1ZGUtc3RhbmRhcmQgJDIKKwkJY2QgIiQxIgorCQlpZiBbICIkMiIgPT0gIi0tY29tbWl0dGFibGUiIF07IHRoZW4KKwkJCWdpdCBkaWZmLWluZGV4IC0tbmFtZS1vbmx5IC0tcmVsYXRpdmUgSEVBRAorCQllbHNlCisJCQkjIE5PVEU6ICQyIGlzIG5vdCBxdW90ZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBtdWx0aXBsZSBvcHRpb25zCisJCQlnaXQgbHMtZmlsZXMgLS1leGNsdWRlLXN0YW5kYXJkICQyCisJCWZpCiAJKSAyPi9kZXYvbnVsbAogfQogCiAKLSMgRXhlY3V0ZSBnaXQgZGlmZi1pbmRleCwgcmV0dXJuaW5nIHBhdGhzIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkKLSMgc3BlY2lmaWVkIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIHVzaW5nIHRoZSB0cmVlIG9iamVjdCBpZAotIyBzcGVjaWZpZWQgaW4gdGhlIHNlY29uZCBhcmd1bWVudC4KLV9fZ2l0X2RpZmZfaW5kZXhfaGVscGVyICgpCi17Ci0JKAotCQl0ZXN0IC1uICIke0NEUEFUSCtzZXR9IiAmJiB1bnNldCBDRFBBVEgKLQkJY2QgIiQxIiAmJiBnaXQgZGlmZi1pbmRleCAtLW5hbWUtb25seSAtLXJlbGF0aXZlICIkMiIKLQkpIDI+L2Rldi9udWxsCi19Ci0KICMgX19naXRfaW5kZXhfZmlsZXMgYWNjZXB0cyAxIG9yIDIgYXJndW1lbnRzOgogIyAxOiBPcHRpb25zIHRvIHBhc3MgdG8gbHMtZmlsZXMgKHJlcXVpcmVkKS4KLSMgICAgU3VwcG9ydGVkIG9wdGlvbnMgYXJlIC0tY2FjaGVkLCAtLW1vZGlmaWVkLCAtLWRlbGV0ZWQsIC0tb3RoZXJzLAotIyAgICBhbmQgLS1kaXJlY3RvcnkuCiAjIDI6IEEgZGlyZWN0b3J5IHBhdGggKG9wdGlvbmFsKS4KICMgICAgSWYgcHJvdmlkZWQsIG9ubHkgZmlsZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGFyZSBsaXN0ZWQuCiAjICAgIFN1YiBkaXJlY3RvcmllcyBhcmUgbmV2ZXIgcmVjdXJzZWQuICBQYXRoIG11c3QgaGF2ZSBhIHRyYWlsaW5nCiAjICAgIHNsYXNoLgogX19naXRfaW5kZXhfZmlsZXMgKCkKIHsKLQlsb2NhbCBkaXI9IiQoX19naXRkaXIpIiByb290PSIkezItLn0iCisJbG9jYWwgZGlyPSIkKF9fZ2l0ZGlyKSIgcm9vdD0iJHsyLS59IiBmaWxlCiAKIAlpZiBbIC1kICIkZGlyIiBdOyB0aGVuCi0JCV9fZ2l0X2xzX2ZpbGVzX2hlbHBlciAiJHJvb3QiICIkMSIgfCBfX2dpdF9pbmRleF9maWxlX2xpc3RfZmlsdGVyIHwKLQkJCXNvcnQgfCB1bmlxCi0JZmkKLX0KLQotIyBfX2dpdF9kaWZmX2luZGV4X2ZpbGVzIGFjY2VwdHMgMSBvciAyIGFyZ3VtZW50czoKLSMgMSkgVGhlIGlkIG9mIGEgdHJlZSBvYmplY3QuCi0jIDIpIEEgZGlyZWN0b3J5IHBhdGggKG9wdGlvbmFsKS4KLSMgICAgSWYgcHJvdmlkZWQsIG9ubHkgZmlsZXMgd2l0aGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5IGFyZSBsaXN0ZWQuCi0jICAgIFN1YiBkaXJlY3RvcmllcyBhcmUgbmV2ZXIgcmVjdXJzZWQuICBQYXRoIG11c3QgaGF2ZSBhIHRyYWlsaW5nCi0jICAgIHNsYXNoLgotX19naXRfZGlmZl9pbmRleF9maWxlcyAoKQotewotCWxvY2FsIGRpcj0iJChfX2dpdGRpcikiIHJvb3Q9IiR7Mi0ufSIKLQotCWlmIFsgLWQgIiRkaXIiIF07IHRoZW4KLQkJX19naXRfZGlmZl9pbmRleF9oZWxwZXIgIiRyb290IiAiJDEiIHwgX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlciB8Ci0JCQlzb3J0IHwgdW5pcQorCQlfX2dpdF9sc19maWxlc19oZWxwZXIgIiRyb290IiAiJDEiIHwKKwkJd2hpbGUgcmVhZCAtciBmaWxlOyBkbworCQkJY2FzZSAiJGZpbGUiIGluCisJCQk/Ki8qKSBlY2hvICIke2ZpbGUlJS8qfSIgOzsKKwkJCSopIGVjaG8gIiRmaWxlIiA7OworCQkJZXNhYworCQlkb25lIHwgc29ydCB8IHVuaXEKIAlmaQogfQogCkBAIC00MjcsMTQgKzM2OSw4IEBACiAJCWRvbmUKIAkJOzsKIAkqKQotCQlnaXQgbHMtcmVtb3RlICIkZGlyIiBIRUFEIE9SSUdfSEVBRCAncmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyonICdyZWZzL3JlbW90ZXMvKicgMj4vZGV2L251bGwgfCBcCi0JCXdoaWxlIHJlYWQgLXIgaGFzaCBpOyBkbwotCQkJY2FzZSAiJGkiIGluCi0JCQkqXnt9KSA7OwotCQkJcmVmcy8qKSBlY2hvICIke2kjcmVmcy8qL30iIDs7Ci0JCQkqKSBlY2hvICIkaSIgOzsKLQkJCWVzYWMKLQkJZG9uZQorCQllY2hvICJIRUFEIgorCQlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKHJlZm5hbWU6c2hvcnQpIiAtLSAicmVmcy9yZW1vdGVzLyRkaXIvIiB8IHNlZCAtZSAicyNeJGRpci8jIyIKIAkJOzsKIAllc2FjCiB9CkBAIC01NTIsNDQgKzQ4OCwyMyBAQAogfQogCiAKLSMgX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSByZXF1aXJlcyAxIGFyZ3VtZW50OiB0aGUgb3B0aW9ucyB0byBwYXNzIHRvCi0jIGxzLWZpbGUKKyMgX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSByZXF1aXJlcyAxIGFyZ3VtZW50OgorIyAxOiB0aGUgb3B0aW9ucyB0byBwYXNzIHRvIGxzLWZpbGUKKyMKKyMgVGhlIGV4Y2VwdGlvbiBpcyAtLWNvbW1pdHRhYmxlLCB3aGljaCBmaW5kcyB0aGUgZmlsZXMgYXBwcm9wcmlhdGUgY29tbWl0LgogX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSAoKQogewotCWxvY2FsIHBmeCBjdXJfPSIkY3VyIgorCWxvY2FsIHBmeD0iIiBjdXJfPSIkY3VyIgogCiAJY2FzZSAiJGN1cl8iIGluCiAJPyovKikKIAkJcGZ4PSIke2N1cl8lLyp9IgogCQljdXJfPSIke2N1cl8jIyovfSIKIAkJcGZ4PSIke3BmeH0vIgotCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2luZGV4X2ZpbGVzICIkMSIgIiRwZngiKSIgIiRwZngiICIkY3VyXyIKLQkJOzsKLQkqKQotCQlfX2dpdGNvbXBfZmlsZSAiJChfX2dpdF9pbmRleF9maWxlcyAiJDEiKSIgIiIgIiRjdXJfIgogCQk7OwogCWVzYWMKLX0KIAotIyBfX2dpdF9jb21wbGV0ZV9kaWZmX2luZGV4X2ZpbGUgcmVxdWlyZXMgMSBhcmd1bWVudDogdGhlIGlkIG9mIGEgdHJlZQotIyBvYmplY3QKLV9fZ2l0X2NvbXBsZXRlX2RpZmZfaW5kZXhfZmlsZSAoKQotewotCWxvY2FsIHBmeCBjdXJfPSIkY3VyIgotCi0JY2FzZSAiJGN1cl8iIGluCi0JPyovKikKLQkJcGZ4PSIke2N1cl8lLyp9IgotCQljdXJfPSIke2N1cl8jIyovfSIKLQkJcGZ4PSIke3BmeH0vIgotCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2RpZmZfaW5kZXhfZmlsZXMgIiQxIiAiJHBmeCIpIiAiJHBmeCIgIiRjdXJfIgotCQk7OwotCSopCi0JCV9fZ2l0Y29tcF9maWxlICIkKF9fZ2l0X2RpZmZfaW5kZXhfZmlsZXMgIiQxIikiICIiICIkY3VyXyIKLQkJOzsKLQllc2FjCisJX19naXRjb21wX2ZpbGUgIiQoX19naXRfaW5kZXhfZmlsZXMgIiQxIiAiJHBmeCIpIiAiJHBmeCIgIiRjdXJfIgogfQogCiBfX2dpdF9jb21wbGV0ZV9maWxlICgpCkBAIC03MzMsNiArNjQ4LDcgQEAKIAkJY2F0LWZpbGUpICAgICAgICAgOiBwbHVtYmluZzs7CiAJCWNoZWNrLWF0dHIpICAgICAgIDogcGx1bWJpbmc7OwogCQljaGVjay1pZ25vcmUpICAgICA6IHBsdW1iaW5nOzsKKwkJY2hlY2stbWFpbG1hcCkgICAgOiBwbHVtYmluZzs7CiAJCWNoZWNrLXJlZi1mb3JtYXQpIDogcGx1bWJpbmc7OwogCQljaGVja291dC1pbmRleCkgICA6IHBsdW1iaW5nOzsKIAkJY29tbWl0LXRyZWUpICAgICAgOiBwbHVtYmluZzs7CkBAIC0xMjEzLDcgKzExMjksNyBAQAogCWVzYWMKIAogCWlmIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCBIRUFEID4vZGV2L251bGw7IHRoZW4KLQkJX19naXRfY29tcGxldGVfZGlmZl9pbmRleF9maWxlICJIRUFEIgorCQlfX2dpdF9jb21wbGV0ZV9pbmRleF9maWxlICItLWNvbW1pdHRhYmxlIgogCWVsc2UKIAkJIyBUaGlzIGlzIHRoZSBmaXJzdCBjb21taXQKIAkJX19naXRfY29tcGxldGVfaW5kZXhfZmlsZSAiLS1jYWNoZWQiCkBAIC0xMjQ2LDcgKzExNjIsNyBAQAogCQkJLS1uby1wcmVmaXggLS1zcmMtcHJlZml4PSAtLWRzdC1wcmVmaXg9CiAJCQktLWludGVyLWh1bmstY29udGV4dD0KIAkJCS0tcGF0aWVuY2UgLS1oaXN0b2dyYW0gLS1taW5pbWFsCi0JCQktLXJhdworCQkJLS1yYXcgLS13b3JkLWRpZmYKIAkJCS0tZGlyc3RhdCAtLWRpcnN0YXQ9IC0tZGlyc3RhdC1ieS1maWxlCiAJCQktLWRpcnN0YXQtYnktZmlsZT0gLS1jdW11bGF0aXZlCiAJCQktLWRpZmYtYWxnb3JpdGhtPQpAQCAtMTI5NCw3ICsxMjEwLDcgQEAKIAkJcmV0dXJuCiAJCTs7CiAJZXNhYwotCV9fZ2l0X2NvbXBsZXRlX2ZpbGUKKwlfX2dpdF9jb21wbGV0ZV9yZXZsaXN0X2ZpbGUKIH0KIAogX19naXRfZmV0Y2hfb3B0aW9ucz0iCkBAIC0xODMxLDcgKzE3NDcsNyBAQAogCQlsb2NhbCByZW1vdGU9IiR7cHJldiNyZW1vdGUufSIKIAkJcmVtb3RlPSIke3JlbW90ZSUuZmV0Y2h9IgogCQlpZiBbIC16ICIkY3VyIiBdOyB0aGVuCi0JCQlfX2dpdGNvbXBhZGQgInJlZnMvaGVhZHMvIiAiIiAiIiAiIgorCQkJX19naXRjb21wX25sICJyZWZzL2hlYWRzLyIgIiIgIiIgIiIKIAkJCXJldHVybgogCQlmaQogCQlfX2dpdGNvbXBfbmwgIiQoX19naXRfcmVmc19yZW1vdGVzICIkcmVtb3RlIikiCkBAIC0yMDQyLDcgKzE5NTgsNiBAQAogCQljb3JlLmZpbGVNb2RlCiAJCWNvcmUuZnN5bmNvYmplY3RmaWxlcwogCQljb3JlLmdpdFByb3h5Ci0JCWNvcmUuaWdub3JlQ3lnd2luRlNUcmlja3MKIAkJY29yZS5pZ25vcmVTdGF0CiAJCWNvcmUuaWdub3JlY2FzZQogCQljb3JlLmxvZ0FsbFJlZlVwZGF0ZXMKQEAgLTIzNjAsNyArMjI3NSw3IEBACiAJCXJldHVybgogCQk7OwogCWVzYWMKLQlfX2dpdF9jb21wbGV0ZV9maWxlCisJX19naXRfY29tcGxldGVfcmV2bGlzdF9maWxlCiB9CiAKIF9naXRfc2hvd19icmFuY2ggKCkKQEAgLTI0NTEsNyArMjM2Niw3IEBACiAJCQktLW5vLW1ldGFkYXRhIC0tdXNlLXN2bS1wcm9wcyAtLXVzZS1zdm5zeW5jLXByb3BzCiAJCQktLWxvZy13aW5kb3ctc2l6ZT0gLS1uby1jaGVja291dCAtLXF1aWV0CiAJCQktLXJlcGFjay1mbGFncyAtLXVzZS1sb2ctYXV0aG9yIC0tbG9jYWx0aW1lCi0JCQktLWlnbm9yZS1wYXRocz0gJHJlbW90ZV9vcHRzCisJCQktLWlnbm9yZS1wYXRocz0gLS1pbmNsdWRlLXBhdGhzPSAkcmVtb3RlX29wdHMKIAkJCSIKIAkJbG9jYWwgaW5pdF9vcHRzPSIKIAkJCS0tdGVtcGxhdGU9IC0tc2hhcmVkPSAtLXRydW5rPSAtLXRhZ3M9CkBAIC0yNTc1LDkgKzI0OTAsMTAgQEAKIAkJaT0iJHt3b3Jkc1tjXX0iCiAJCWNhc2UgIiRpIiBpbgogCQktLWdpdC1kaXI9KikgX19naXRfZGlyPSIke2kjLS1naXQtZGlyPX0iIDs7CisJCS0tZ2l0LWRpcikgICAoKGMrKykpIDsgX19naXRfZGlyPSIke3dvcmRzW2NdfSIgOzsKIAkJLS1iYXJlKSAgICAgIF9fZ2l0X2Rpcj0iLiIgOzsKIAkJLS1oZWxwKSBjb21tYW5kPSJoZWxwIjsgYnJlYWsgOzsKLQkJLWMpIGM9JCgoKytjKSkgOzsKKwkJLWN8LS13b3JrLXRyZWV8LS1uYW1lc3BhY2UpICgoYysrKSkgOzsKIAkJLSopIDs7CiAJCSopIGNvbW1hbmQ9IiRpIjsgYnJlYWsgOzsKIAkJZXNhYwpAQCAtMjU5NSw2ICsyNTExLDcgQEAKIAkJCS0tZXhlYy1wYXRoCiAJCQktLWV4ZWMtcGF0aD0KIAkJCS0taHRtbC1wYXRoCisJCQktLW1hbi1wYXRoCiAJCQktLWluZm8tcGF0aAogCQkJLS13b3JrLXRyZWU9CiAJCQktLW5hbWVzcGFjZT0KQEAgLTI2NjMsNyArMjU4MCw3IEBACiAJCQkJLS0qPSp8Ki4pIDs7CiAJCQkJKikgYz0iJGMgIiA7OwogCQkJCWVzYWMKLQkJCQlhcnJheVskI2FycmF5KzFdPSIkYyIKKwkJCQlhcnJheVskeyNhcnJheVtAXX0rMV09IiRjIgogCQkJZG9uZQogCQkJY29tcHNldCAtUCAnKls9Ol0nCiAJCQljb21wYWRkIC1RIC1TICcnIC1wICIkezItfSIgLWEgLS0gYXJyYXkgJiYgX3JldD0wCkBAIC0yNjg5LDM1ICsyNjA2LDE5IEBACiAJCWNvbXBhZGQgLVEgLXAgIiR7Mi19IiAtZiAtLSAkez0xfSAmJiBfcmV0PTAKIAl9CiAKLQlfX2dpdF96c2hfaGVscGVyICgpCi0JewotCQllbXVsYXRlIC1MIGtzaAotCQlsb2NhbCBjdXIgY3dvcmQgcHJldgotCQljdXI9JHt3b3Jkc1tDVVJSRU5ULTFdfQotCQlwcmV2PSR7d29yZHNbQ1VSUkVOVC0yXX0KLQkJbGV0IGN3b3JkPUNVUlJFTlQtMQotCQlfXyR7c2VydmljZX1fbWFpbgotCX0KLQogCV9naXQgKCkKIAl7Ci0JCWVtdWxhdGUgLUwgenNoCi0JCWxvY2FsIF9yZXQ9MQotCQlfX2dpdF96c2hfaGVscGVyCi0JCWxldCBfcmV0ICYmIF9kZWZhdWx0IC1TICcnICYmIF9yZXQ9MAorCQlsb2NhbCBfcmV0PTEgY3VyIGN3b3JkIHByZXYKKwkJY3VyPSR7d29yZHNbQ1VSUkVOVF19CisJCXByZXY9JHt3b3Jkc1tDVVJSRU5ULTFdfQorCQlsZXQgY3dvcmQ9Q1VSUkVOVC0xCisJCWVtdWxhdGUga3NoIC1jIF9fJHtzZXJ2aWNlfV9tYWluCisJCWxldCBfcmV0ICYmIF9kZWZhdWx0ICYmIF9yZXQ9MAogCQlyZXR1cm4gX3JldAogCX0KIAogCWNvbXBkZWYgX2dpdCBnaXQgZ2l0awogCXJldHVybgotZWxpZiBbWyAtbiAke0JBU0hfVkVSU0lPTi19IF1dOyB0aGVuCi0JaWYgKCgke0JBU0hfVkVSU0lORk9bMF19IDwgNCkpOyB0aGVuCi0JCSMgY29tcG9wdCBpcyBub3Qgc3VwcG9ydGVkCi0JCV9fZ2l0X2luZGV4X2ZpbGVfbGlzdF9maWx0ZXIgKCkKLQkJewotCQkJX19naXRfaW5kZXhfZmlsZV9saXN0X2ZpbHRlcl9jb21wYXQKLQkJfQotCWZpCiBmaQogCiBfX2dpdF9mdW5jX3dyYXAgKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi56c2ggYi9jb250cmliL2NvbXBsZXRpb24vZ2l0LWNvbXBsZXRpb24uenNoCmluZGV4IDI1NjVkMmUuLmZhYzVlNzEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY29tcGxldGlvbi9naXQtY29tcGxldGlvbi56c2gKKysrIGIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1jb21wbGV0aW9uLnpzaApAQCAtNCwxOCArNCwxNyBAQAogIwogIyBDb3B5cmlnaHQgKGMpIDIwMTItMjAxMyBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUuY29udHJlcmFzQGdtYWlsLmNvbT4KICMKLSMgWW91IG5lZWQgZ2l0J3MgYmFzaCBjb21wbGV0aW9uIHNjcmlwdCBpbnN0YWxsZWQgc29tZXdoZXJlLCBieSBkZWZhdWx0IG9uIHRoZQotIyBzYW1lIGRpcmVjdG9yeSBhcyB0aGlzIHNjcmlwdC4KKyMgWW91IG5lZWQgZ2l0J3MgYmFzaCBjb21wbGV0aW9uIHNjcmlwdCBpbnN0YWxsZWQgc29tZXdoZXJlLCBieSBkZWZhdWx0IGl0CisjIHdvdWxkIGJlIHRoZSBsb2NhdGlvbiBiYXNoLWNvbXBsZXRpb24gdXNlcy4KICMKLSMgSWYgeW91ciBzY3JpcHQgaXMgb24gfi8uZ2l0LWNvbXBsZXRpb24uc2ggaW5zdGVhZCwgeW91IGNhbiBjb25maWd1cmUgaXQgb24KLSMgeW91ciB+Ly56c2hyYzoKKyMgSWYgeW91ciBzY3JpcHQgaXMgc29tZXdoZXJlIGVsc2UsIHlvdSBjYW4gY29uZmlndXJlIGl0IG9uIHlvdXIgfi8uenNocmM6CiAjCiAjICB6c3R5bGUgJzpjb21wbGV0aW9uOio6KjpnaXQ6Kicgc2NyaXB0IH4vLmdpdC1jb21wbGV0aW9uLnNoCiAjCi0jIFRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zdGFsbCB0aGlzIHNjcmlwdCBpcyB0byBjb3B5IHRvCi0jICd+Ly56c2gvY29tcGxldGlvbi9fZ2l0JywgYW5kIHRoZW4gYWRkIHRoZSBmb2xsb3dpbmcgdG8geW91ciB+Ly56c2hyYyBmaWxlOgorIyBUaGUgcmVjb21tZW5kZWQgd2F5IHRvIGluc3RhbGwgdGhpcyBzY3JpcHQgaXMgdG8gY29weSB0byAnfi8uenNoL19naXQnLCBhbmQKKyMgdGhlbiBhZGQgdGhlIGZvbGxvd2luZyB0byB5b3VyIH4vLnpzaHJjIGZpbGU6CiAjCi0jICBmcGF0aD0ofi8uenNoL2NvbXBsZXRpb24gJGZwYXRoKQorIyAgZnBhdGg9KH4vLnpzaCAkZnBhdGgpCiAKIGNvbXBsZXRlICgpCiB7CkBAIC0yNyw3ICsyNiwxOSBAQAogCXpzdHlsZSAnOmNvbXBsZXRpb246KjoqOmdpdDoqJyB0YWctb3JkZXIgJ2NvbW1vbi1jb21tYW5kcycKIAogenN0eWxlIC1zICI6Y29tcGxldGlvbjoqOio6Z2l0OioiIHNjcmlwdCBzY3JpcHQKLXRlc3QgLXogIiRzY3JpcHQiICYmIHNjcmlwdD0iJChkaXJuYW1lICR7ZnVuY3NvdXJjZXRyYWNlWzFdJToqfSkiL2dpdC1jb21wbGV0aW9uLmJhc2gKK2lmIFsgLXogIiRzY3JpcHQiIF07IHRoZW4KKwlsb2NhbCAtYSBsb2NhdGlvbnMKKwlsb2NhbCBlCisJbG9jYXRpb25zPSgKKwkJJy9ldGMvYmFzaF9jb21wbGV0aW9uLmQvZ2l0JyAjIGZlZG9yYSwgb2xkIGRlYmlhbgorCQknL3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24vY29tcGxldGlvbnMvZ2l0JyAjIGFyY2gsIHVidW50dSwgbmV3IGRlYmlhbgorCQknL3Vzci9zaGFyZS9iYXNoLWNvbXBsZXRpb24vZ2l0JyAjIGdlbnRvbworCQkkKGRpcm5hbWUgJHtmdW5jc291cmNldHJhY2VbMV0lOip9KS9naXQtY29tcGxldGlvbi5iYXNoCisJCSkKKwlmb3IgZSBpbiAkbG9jYXRpb25zOyBkbworCQl0ZXN0IC1mICRlICYmIHNjcmlwdD0iJGUiICYmIGJyZWFrCisJZG9uZQorZmkKIFpTSF9WRVJTSU9OPScnIC4gIiRzY3JpcHQiCiAKIF9fZ2l0Y29tcCAoKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2ggYi9jb250cmliL2NvbXBsZXRpb24vZ2l0LXByb21wdC5zaAppbmRleCBlYWY1YzM2Li5kNmM2MWIyIDEwMDY0NAotLS0gYS9jb250cmliL2NvbXBsZXRpb24vZ2l0LXByb21wdC5zaAorKysgYi9jb250cmliL2NvbXBsZXRpb24vZ2l0LXByb21wdC5zaApAQCAtMyw3ICszLDcgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA2LDIwMDcgU2hhd24gTy4gUGVhcmNlIDxzcGVhcmNlQHNwZWFyY2Uub3JnPgogIyBEaXN0cmlidXRlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMi4wLgogIwotIyBUaGlzIHNjcmlwdCBhbGxvd3MgeW91IHRvIHNlZSB0aGUgY3VycmVudCBicmFuY2ggaW4geW91ciBwcm9tcHQuCisjIFRoaXMgc2NyaXB0IGFsbG93cyB5b3UgdG8gc2VlIHJlcG9zaXRvcnkgc3RhdHVzIGluIHlvdXIgcHJvbXB0LgogIwogIyBUbyBlbmFibGU6CiAjCkBAIC0xMywyMyArMTMsMjcgQEAKICMgICAgM2EpIENoYW5nZSB5b3VyIFBTMSB0byBjYWxsIF9fZ2l0X3BzMSBhcwogIyAgICAgICAgY29tbWFuZC1zdWJzdGl0dXRpb246CiAjICAgICAgICBCYXNoOiBQUzE9J1tcdUBcaCBcVyQoX19naXRfcHMxICIgKCVzKSIpXVwkICcKLSMgICAgICAgIFpTSDogIFBTMT0nWyVuQCVtICVjJChfX2dpdF9wczEgIiAoJXMpIildXCQgJworIyAgICAgICAgWlNIOiAgc2V0b3B0IFBST01QVF9TVUJTVCA7IFBTMT0nWyVuQCVtICVjJChfX2dpdF9wczEgIiAoJXMpIildXCQgJwogIyAgICAgICAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IHdpbGwgYmUgdXNlZCBhcyBmb3JtYXQgc3RyaW5nLgotIyAgICAzYikgQWx0ZXJuYXRpdmVseSwgaWYgeW91IGFyZSB1c2luZyBiYXNoLCBfX2dpdF9wczEgY2FuIGJlCi0jICAgICAgICB1c2VkIGZvciBQUk9NUFRfQ09NTUFORCB3aXRoIHR3byBwYXJhbWV0ZXJzLCA8cHJlPiBhbmQKLSMgICAgICAgIDxwb3N0Piwgd2hpY2ggYXJlIHN0cmluZ3MgeW91IHdvdWxkIHB1dCBpbiAkUFMxIGJlZm9yZQotIyAgICAgICAgYW5kIGFmdGVyIHRoZSBzdGF0dXMgc3RyaW5nIGdlbmVyYXRlZCBieSB0aGUgZ2l0LXByb21wdAotIyAgICAgICAgbWFjaGluZXJ5LiAgZS5nLgotIyAgICAgICAgICAgUFJPTVBUX0NPTU1BTkQ9J19fZ2l0X3BzMSAiXHVAXGg6XHciICJcXFwkICInCi0jICAgICAgICB3aWxsIHNob3cgdXNlcm5hbWUsIGF0LXNpZ24sIGhvc3QsIGNvbG9uLCBjd2QsIHRoZW4KLSMgICAgICAgIHZhcmlvdXMgc3RhdHVzIHN0cmluZywgZm9sbG93ZWQgYnkgZG9sbGFyIGFuZCBTUCwgYXMKLSMgICAgICAgIHlvdXIgcHJvbXB0LgorIyAgICAzYikgQWx0ZXJuYXRpdmVseSwgZm9yIGEgc2xpZ2h0bHkgZmFzdGVyIHByb21wdCwgX19naXRfcHMxIGNhbgorIyAgICAgICAgYmUgdXNlZCBmb3IgUFJPTVBUX0NPTU1BTkQgaW4gQmFzaCBvciBmb3IgcHJlY21kKCkgaW4gWnNoCisjICAgICAgICB3aXRoIHR3byBwYXJhbWV0ZXJzLCA8cHJlPiBhbmQgPHBvc3Q+LCB3aGljaCBhcmUgc3RyaW5ncworIyAgICAgICAgeW91IHdvdWxkIHB1dCBpbiAkUFMxIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHN0YXR1cyBzdHJpbmcKKyMgICAgICAgIGdlbmVyYXRlZCBieSB0aGUgZ2l0LXByb21wdCBtYWNoaW5lcnkuICBlLmcuCisjICAgICAgICBCYXNoOiBQUk9NUFRfQ09NTUFORD0nX19naXRfcHMxICJcdUBcaDpcdyIgIlxcXCQgIicKKyMgICAgICAgICAgd2lsbCBzaG93IHVzZXJuYW1lLCBhdC1zaWduLCBob3N0LCBjb2xvbiwgY3dkLCB0aGVuCisjICAgICAgICAgIHZhcmlvdXMgc3RhdHVzIHN0cmluZywgZm9sbG93ZWQgYnkgZG9sbGFyIGFuZCBTUCwgYXMKKyMgICAgICAgICAgeW91ciBwcm9tcHQuCisjICAgICAgICBaU0g6ICBwcmVjbWQgKCkgeyBfX2dpdF9wczEgIiVuIiAiOiV+JCAiICJ8JXMiIH0KKyMgICAgICAgICAgd2lsbCBzaG93IHVzZXJuYW1lLCBwaXBlLCB0aGVuIHZhcmlvdXMgc3RhdHVzIHN0cmluZywKKyMgICAgICAgICAgZm9sbG93ZWQgYnkgY29sb24sIGN3ZCwgZG9sbGFyIGFuZCBTUCwgYXMgeW91ciBwcm9tcHQuCiAjICAgICAgICBPcHRpb25hbGx5LCB5b3UgY2FuIHN1cHBseSBhIHRoaXJkIGFyZ3VtZW50IHdpdGggYSBwcmludGYKICMgICAgICAgIGZvcm1hdCBzdHJpbmcgdG8gZmluZXR1bmUgdGhlIG91dHB1dCBvZiB0aGUgYnJhbmNoIHN0YXR1cwogIwotIyBUaGUgYXJndW1lbnQgdG8gX19naXRfcHMxIHdpbGwgYmUgZGlzcGxheWVkIG9ubHkgaWYgeW91IGFyZSBjdXJyZW50bHkKLSMgaW4gYSBnaXQgcmVwb3NpdG9yeS4gIFRoZSAlcyB0b2tlbiB3aWxsIGJlIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50Ci0jIGJyYW5jaC4KKyMgVGhlIHJlcG9zaXRvcnkgc3RhdHVzIHdpbGwgYmUgZGlzcGxheWVkIG9ubHkgaWYgeW91IGFyZSBjdXJyZW50bHkgaW4gYQorIyBnaXQgcmVwb3NpdG9yeS4gVGhlICVzIHRva2VuIGlzIHRoZSBwbGFjZWhvbGRlciBmb3IgdGhlIHNob3duIHN0YXR1cy4KKyMKKyMgVGhlIHByb21wdCBzdGF0dXMgYWx3YXlzIGluY2x1ZGVzIHRoZSBjdXJyZW50IGJyYW5jaCBuYW1lLgogIwogIyBJbiBhZGRpdGlvbiwgaWYgeW91IHNldCBHSVRfUFMxX1NIT1dESVJUWVNUQVRFIHRvIGEgbm9uZW1wdHkgdmFsdWUsCiAjIHVuc3RhZ2VkICgqKSBhbmQgc3RhZ2VkICgrKSBjaGFuZ2VzIHdpbGwgYmUgc2hvd24gbmV4dCB0byB0aGUgYnJhbmNoCkBAIC03NywzMSArODEsMTIgQEAKICMKICMgSWYgeW91IHdvdWxkIGxpa2UgYSBjb2xvcmVkIGhpbnQgYWJvdXQgdGhlIGN1cnJlbnQgZGlydHkgc3RhdGUsIHNldAogIyBHSVRfUFMxX1NIT1dDT0xPUkhJTlRTIHRvIGEgbm9uZW1wdHkgdmFsdWUuIFRoZSBjb2xvcnMgYXJlIGJhc2VkIG9uCi0jIHRoZSBjb2xvcmVkIG91dHB1dCBvZiAiZ2l0IHN0YXR1cyAtc2IiLgorIyB0aGUgY29sb3JlZCBvdXRwdXQgb2YgImdpdCBzdGF0dXMgLXNiIiBhbmQgYXJlIGF2YWlsYWJsZSBvbmx5IHdoZW4KKyMgdXNpbmcgX19naXRfcHMxIGZvciBQUk9NUFRfQ09NTUFORCBvciBwcmVjbWQuCiAKLSMgX19naXRkaXIgYWNjZXB0cyAwIG9yIDEgYXJndW1lbnRzIChpLmUuLCBsb2NhdGlvbikKLSMgcmV0dXJucyBsb2NhdGlvbiBvZiAuZ2l0IHJlcG8KLV9fZ2l0ZGlyICgpCi17Ci0JIyBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIGR1cGxpY2F0ZWQgaW4gZ2l0LWNvbXBsZXRpb24uYmFzaAotCSMgV2hlbiB1cGRhdGluZyBpdCwgbWFrZSBzdXJlIHlvdSB1cGRhdGUgdGhlIG90aGVyIG9uZSB0byBtYXRjaC4KLQlpZiBbIC16ICIkezEtfSIgXTsgdGhlbgotCQlpZiBbIC1uICIke19fZ2l0X2Rpci19IiBdOyB0aGVuCi0JCQllY2hvICIkX19naXRfZGlyIgotCQllbGlmIFsgLW4gIiR7R0lUX0RJUi19IiBdOyB0aGVuCi0JCQl0ZXN0IC1kICIke0dJVF9ESVItfSIgfHwgcmV0dXJuIDEKLQkJCWVjaG8gIiRHSVRfRElSIgotCQllbGlmIFsgLWQgLmdpdCBdOyB0aGVuCi0JCQllY2hvIC5naXQKLQkJZWxzZQotCQkJZ2l0IHJldi1wYXJzZSAtLWdpdC1kaXIgMj4vZGV2L251bGwKLQkJZmkKLQllbGlmIFsgLWQgIiQxLy5naXQiIF07IHRoZW4KLQkJZWNobyAiJDEvLmdpdCIKLQllbHNlCi0JCWVjaG8gIiQxIgotCWZpCi19CisjIGNoZWNrIHdoZXRoZXIgcHJpbnRmIHN1cHBvcnRzIC12CitfX2dpdF9wcmludGZfc3VwcG9ydHNfdj0KK3ByaW50ZiAtdiBfX2dpdF9wcmludGZfc3VwcG9ydHNfdiAtLSAnJXMnIHllcyA+L2Rldi9udWxsIDI+JjEKIAogIyBzdG9yZXMgdGhlIGRpdmVyZ2VuY2UgZnJvbSB1cHN0cmVhbSBpbiAkcAogIyB1c2VkIGJ5IEdJVF9QUzFfU0hPV1VQU1RSRUFNCkBAIC0xMjQsNyArMTA5LDcgQEAKIAkJCWZpCiAJCQk7OwogCQlzdm4tcmVtb3RlLioudXJsKQotCQkJc3ZuX3JlbW90ZVsgJCgoJHsjc3ZuX3JlbW90ZVtAXX0gKyAxKSkgXT0iJHZhbHVlIgorCQkJc3ZuX3JlbW90ZVskKCgkeyNzdm5fcmVtb3RlW0BdfSArIDEpKV09IiR2YWx1ZSIKIAkJCXN2bl91cmxfcGF0dGVybis9IlxcfCR2YWx1ZSIKIAkJCXVwc3RyZWFtPXN2bitnaXQgIyBkZWZhdWx0IHVwc3RyZWFtIGlzIFNWTiBpZiBhdmFpbGFibGUsIGVsc2UgZ2l0CiAJCQk7OwpAQCAtMTQ2LDEwICsxMzEsMTEgQEAKIAlzdm4qKQogCQkjIGdldCB0aGUgdXBzdHJlYW0gZnJvbSB0aGUgImdpdC1zdm4taWQ6IC4uLiIgaW4gYSBjb21taXQgbWVzc2FnZQogCQkjIChnaXQtc3ZuIHVzZXMgZXNzZW50aWFsbHkgdGhlIHNhbWUgcHJvY2VkdXJlIGludGVybmFsbHkpCi0JCWxvY2FsIHN2bl91cHN0cmVhbT0oJChnaXQgbG9nIC0tZmlyc3QtcGFyZW50IC0xIFwKKwkJbG9jYWwgLWEgc3ZuX3Vwc3RyZWFtCisJCXN2bl91cHN0cmVhbT0oJChnaXQgbG9nIC0tZmlyc3QtcGFyZW50IC0xIFwKIAkJCQkJLS1ncmVwPSJeZ2l0LXN2bi1pZDogXCgke3N2bl91cmxfcGF0dGVybiM/P31cKSIgMj4vZGV2L251bGwpKQogCQlpZiBbWyAwIC1uZSAkeyNzdm5fdXBzdHJlYW1bQF19IF1dOyB0aGVuCi0JCQlzdm5fdXBzdHJlYW09JHtzdm5fdXBzdHJlYW1bICR7I3N2bl91cHN0cmVhbVtAXX0gLSAyIF19CisJCQlzdm5fdXBzdHJlYW09JHtzdm5fdXBzdHJlYW1bJHsjc3ZuX3Vwc3RyZWFtW0BdfSAtIDJdfQogCQkJc3ZuX3Vwc3RyZWFtPSR7c3ZuX3Vwc3RyZWFtJUAqfQogCQkJbG9jYWwgbl9zdG9wPSIkeyNzdm5fcmVtb3RlW0BdfSIKIAkJCWZvciAoKG49MTsgbiA8PSBuX3N0b3A7IG4rKykpOyBkbwpAQCAtMjIyLDYgKzIwOCw1MSBAQAogCiB9CiAKKyMgSGVscGVyIGZ1bmN0aW9uIHRoYXQgaXMgbWVhbnQgdG8gYmUgY2FsbGVkIGZyb20gX19naXRfcHMxLiAgSXQKKyMgaW5qZWN0cyBjb2xvciBjb2RlcyBpbnRvIHRoZSBhcHByb3ByaWF0ZSBnaXRzdHJpbmcgdmFyaWFibGVzIHVzZWQKKyMgdG8gYnVpbGQgYSBnaXRzdHJpbmcuCitfX2dpdF9wczFfY29sb3JpemVfZ2l0c3RyaW5nICgpCit7CisJaWYgW1sgLW4gJHtaU0hfVkVSU0lPTi19IF1dOyB0aGVuCisJCWxvY2FsIGNfcmVkPSclRntyZWR9JworCQlsb2NhbCBjX2dyZWVuPSclRntncmVlbn0nCisJCWxvY2FsIGNfbGJsdWU9JyVGe2JsdWV9JworCQlsb2NhbCBjX2NsZWFyPSclZicKKwllbHNlCisJCSMgVXNpbmcgXFsgYW5kIFxdIGFyb3VuZCBjb2xvcnMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQKKwkJIyBpc3N1ZXMgd2l0aCBjb21tYW5kIGxpbmUgZWRpdGluZy9icm93c2luZy9jb21wbGV0aW9uIQorCQlsb2NhbCBjX3JlZD0nXFtcZVszMW1cXScKKwkJbG9jYWwgY19ncmVlbj0nXFtcZVszMm1cXScKKwkJbG9jYWwgY19sYmx1ZT0nXFtcZVsxOzM0bVxdJworCQlsb2NhbCBjX2NsZWFyPSdcW1xlWzBtXF0nCisJZmkKKwlsb2NhbCBiYWRfY29sb3I9JGNfcmVkCisJbG9jYWwgb2tfY29sb3I9JGNfZ3JlZW4KKwlsb2NhbCBmbGFnc19jb2xvcj0iJGNfbGJsdWUiCisKKwlsb2NhbCBicmFuY2hfY29sb3I9IiIKKwlpZiBbICRkZXRhY2hlZCA9IG5vIF07IHRoZW4KKwkJYnJhbmNoX2NvbG9yPSIkb2tfY29sb3IiCisJZWxzZQorCQlicmFuY2hfY29sb3I9IiRiYWRfY29sb3IiCisJZmkKKwljPSIkYnJhbmNoX2NvbG9yJGMiCisKKwl6PSIkY19jbGVhciR6IgorCWlmIFsgIiR3IiA9ICIqIiBdOyB0aGVuCisJCXc9IiRiYWRfY29sb3IkdyIKKwlmaQorCWlmIFsgLW4gIiRpIiBdOyB0aGVuCisJCWk9IiRva19jb2xvciRpIgorCWZpCisJaWYgWyAtbiAiJHMiIF07IHRoZW4KKwkJcz0iJGZsYWdzX2NvbG9yJHMiCisJZmkKKwlpZiBbIC1uICIkdSIgXTsgdGhlbgorCQl1PSIkYmFkX2NvbG9yJHUiCisJZmkKKwlyPSIkY19jbGVhciRyIgorfQogCiAjIF9fZ2l0X3BzMSBhY2NlcHRzIDAgb3IgMSBhcmd1bWVudHMgKGkuZS4sIGZvcm1hdCBzdHJpbmcpCiAjIHdoZW4gY2FsbGVkIGZyb20gUFMxIHVzaW5nIGNvbW1hbmQgc3Vic3RpdHV0aW9uCkBAIC0yNTQsNDggKzI4NSw4MyBAQAogCQk7OwogCWVzYWMKIAotCWxvY2FsIGc9IiQoX19naXRkaXIpIgotCWlmIFsgLXogIiRnIiBdOyB0aGVuCisJbG9jYWwgcmVwb19pbmZvIHJldl9wYXJzZV9leGl0X2NvZGUKKwlyZXBvX2luZm89IiQoZ2l0IHJldi1wYXJzZSAtLWdpdC1kaXIgLS1pcy1pbnNpZGUtZ2l0LWRpciBcCisJCS0taXMtYmFyZS1yZXBvc2l0b3J5IC0taXMtaW5zaWRlLXdvcmstdHJlZSBcCisJCS0tc2hvcnQgSEVBRCAyPi9kZXYvbnVsbCkiCisJcmV2X3BhcnNlX2V4aXRfY29kZT0iJD8iCisKKwlpZiBbIC16ICIkcmVwb19pbmZvIiBdOyB0aGVuCiAJCWlmIFsgJHBjbW9kZSA9IHllcyBdOyB0aGVuCiAJCQkjSW4gUEMgbW9kZSBQUzEgYWx3YXlzIG5lZWRzIHRvIGJlIHNldAogCQkJUFMxPSIkcHMxcGNfc3RhcnQkcHMxcGNfZW5kIgogCQlmaQotCWVsc2UKLQkJbG9jYWwgcj0iIgotCQlsb2NhbCBiPSIiCi0JCWxvY2FsIHN0ZXA9IiIKLQkJbG9jYWwgdG90YWw9IiIKLQkJaWYgWyAtZCAiJGcvcmViYXNlLW1lcmdlIiBdOyB0aGVuCi0JCQliPSIkKGNhdCAiJGcvcmViYXNlLW1lcmdlL2hlYWQtbmFtZSIpIgotCQkJc3RlcD0kKGNhdCAiJGcvcmViYXNlLW1lcmdlL21zZ251bSIpCi0JCQl0b3RhbD0kKGNhdCAiJGcvcmViYXNlLW1lcmdlL2VuZCIpCi0JCQlpZiBbIC1mICIkZy9yZWJhc2UtbWVyZ2UvaW50ZXJhY3RpdmUiIF07IHRoZW4KLQkJCQlyPSJ8UkVCQVNFLWkiCi0JCQllbHNlCi0JCQkJcj0ifFJFQkFTRS1tIgotCQkJZmkKLQkJZWxzZQotCQkJaWYgWyAtZCAiJGcvcmViYXNlLWFwcGx5IiBdOyB0aGVuCi0JCQkJc3RlcD0kKGNhdCAiJGcvcmViYXNlLWFwcGx5L25leHQiKQotCQkJCXRvdGFsPSQoY2F0ICIkZy9yZWJhc2UtYXBwbHkvbGFzdCIpCi0JCQkJaWYgWyAtZiAiJGcvcmViYXNlLWFwcGx5L3JlYmFzaW5nIiBdOyB0aGVuCi0JCQkJCXI9InxSRUJBU0UiCi0JCQkJZWxpZiBbIC1mICIkZy9yZWJhc2UtYXBwbHkvYXBwbHlpbmciIF07IHRoZW4KLQkJCQkJcj0ifEFNIgotCQkJCWVsc2UKLQkJCQkJcj0ifEFNL1JFQkFTRSIKLQkJCQlmaQotCQkJZWxpZiBbIC1mICIkZy9NRVJHRV9IRUFEIiBdOyB0aGVuCi0JCQkJcj0ifE1FUkdJTkciCi0JCQllbGlmIFsgLWYgIiRnL0NIRVJSWV9QSUNLX0hFQUQiIF07IHRoZW4KLQkJCQlyPSJ8Q0hFUlJZLVBJQ0tJTkciCi0JCQllbGlmIFsgLWYgIiRnL1JFVkVSVF9IRUFEIiBdOyB0aGVuCi0JCQkJcj0ifFJFVkVSVElORyIKLQkJCWVsaWYgWyAtZiAiJGcvQklTRUNUX0xPRyIgXTsgdGhlbgotCQkJCXI9InxCSVNFQ1RJTkciCi0JCQlmaQorCQlyZXR1cm4KKwlmaQogCi0JCQliPSIkKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCAyPi9kZXYvbnVsbCkiIHx8IHsKKwlsb2NhbCBzaG9ydF9zaGEKKwlpZiBbICIkcmV2X3BhcnNlX2V4aXRfY29kZSIgPSAiMCIgXTsgdGhlbgorCQlzaG9ydF9zaGE9IiR7cmVwb19pbmZvIyMqJCdcbid9IgorCQlyZXBvX2luZm89IiR7cmVwb19pbmZvJSQnXG4nKn0iCisJZmkKKwlsb2NhbCBpbnNpZGVfd29ya3RyZWU9IiR7cmVwb19pbmZvIyMqJCdcbid9IgorCXJlcG9faW5mbz0iJHtyZXBvX2luZm8lJCdcbicqfSIKKwlsb2NhbCBiYXJlX3JlcG89IiR7cmVwb19pbmZvIyMqJCdcbid9IgorCXJlcG9faW5mbz0iJHtyZXBvX2luZm8lJCdcbicqfSIKKwlsb2NhbCBpbnNpZGVfZ2l0ZGlyPSIke3JlcG9faW5mbyMjKiQnXG4nfSIKKwlsb2NhbCBnPSIke3JlcG9faW5mbyUkJ1xuJyp9IgorCisJbG9jYWwgcj0iIgorCWxvY2FsIGI9IiIKKwlsb2NhbCBzdGVwPSIiCisJbG9jYWwgdG90YWw9IiIKKwlpZiBbIC1kICIkZy9yZWJhc2UtbWVyZ2UiIF07IHRoZW4KKwkJcmVhZCBiIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLW1lcmdlL2hlYWQtbmFtZSIKKwkJcmVhZCBzdGVwIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLW1lcmdlL21zZ251bSIKKwkJcmVhZCB0b3RhbCAyPi9kZXYvbnVsbCA8IiRnL3JlYmFzZS1tZXJnZS9lbmQiCisJCWlmIFsgLWYgIiRnL3JlYmFzZS1tZXJnZS9pbnRlcmFjdGl2ZSIgXTsgdGhlbgorCQkJcj0ifFJFQkFTRS1pIgorCQllbHNlCisJCQlyPSJ8UkVCQVNFLW0iCisJCWZpCisJZWxzZQorCQlpZiBbIC1kICIkZy9yZWJhc2UtYXBwbHkiIF07IHRoZW4KKwkJCXJlYWQgc3RlcCAyPi9kZXYvbnVsbCA8IiRnL3JlYmFzZS1hcHBseS9uZXh0IgorCQkJcmVhZCB0b3RhbCAyPi9kZXYvbnVsbCA8IiRnL3JlYmFzZS1hcHBseS9sYXN0IgorCQkJaWYgWyAtZiAiJGcvcmViYXNlLWFwcGx5L3JlYmFzaW5nIiBdOyB0aGVuCisJCQkJcmVhZCBiIDI+L2Rldi9udWxsIDwiJGcvcmViYXNlLWFwcGx5L2hlYWQtbmFtZSIKKwkJCQlyPSJ8UkVCQVNFIgorCQkJZWxpZiBbIC1mICIkZy9yZWJhc2UtYXBwbHkvYXBwbHlpbmciIF07IHRoZW4KKwkJCQlyPSJ8QU0iCisJCQllbHNlCisJCQkJcj0ifEFNL1JFQkFTRSIKKwkJCWZpCisJCWVsaWYgWyAtZiAiJGcvTUVSR0VfSEVBRCIgXTsgdGhlbgorCQkJcj0ifE1FUkdJTkciCisJCWVsaWYgWyAtZiAiJGcvQ0hFUlJZX1BJQ0tfSEVBRCIgXTsgdGhlbgorCQkJcj0ifENIRVJSWS1QSUNLSU5HIgorCQllbGlmIFsgLWYgIiRnL1JFVkVSVF9IRUFEIiBdOyB0aGVuCisJCQlyPSJ8UkVWRVJUSU5HIgorCQllbGlmIFsgLWYgIiRnL0JJU0VDVF9MT0ciIF07IHRoZW4KKwkJCXI9InxCSVNFQ1RJTkciCisJCWZpCisKKwkJaWYgWyAtbiAiJGIiIF07IHRoZW4KKwkJCToKKwkJZWxpZiBbIC1oICIkZy9IRUFEIiBdOyB0aGVuCisJCQkjIHN5bWxpbmsgc3ltYm9saWMgcmVmCisJCQliPSIkKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCAyPi9kZXYvbnVsbCkiCisJCWVsc2UKKwkJCWxvY2FsIGhlYWQ9IiIKKwkJCWlmICEgcmVhZCBoZWFkIDI+L2Rldi9udWxsIDwiJGcvSEVBRCI7IHRoZW4KKwkJCQlpZiBbICRwY21vZGUgPSB5ZXMgXTsgdGhlbgorCQkJCQlQUzE9IiRwczFwY19zdGFydCRwczFwY19lbmQiCisJCQkJZmkKKwkJCQlyZXR1cm4KKwkJCWZpCisJCQkjIGlzIGl0IGEgc3ltYm9saWMgcmVmPworCQkJYj0iJHtoZWFkI3JlZjogfSIKKwkJCWlmIFsgIiRoZWFkIiA9ICIkYiIgXTsgdGhlbgogCQkJCWRldGFjaGVkPXllcwogCQkJCWI9IiQoCiAJCQkJY2FzZSAiJHtHSVRfUFMxX0RFU0NSSUJFX1NUWUxFLX0iIGluCkBAIC0zMDksMTA0ICszNzUsNzUgQEAKIAkJCQkJZ2l0IGRlc2NyaWJlIC0tdGFncyAtLWV4YWN0LW1hdGNoIEhFQUQgOzsKIAkJCQllc2FjIDI+L2Rldi9udWxsKSIgfHwKIAotCQkJCWI9IiQoY3V0IC1jMS03ICIkZy9IRUFEIiAyPi9kZXYvbnVsbCkuLi4iIHx8Ci0JCQkJYj0idW5rbm93biIKKwkJCQliPSIkc2hvcnRfc2hhLi4uIgogCQkJCWI9IigkYikiCi0JCQl9Ci0JCWZpCi0KLQkJaWYgWyAtbiAiJHN0ZXAiIF0gJiYgWyAtbiAiJHRvdGFsIiBdOyB0aGVuCi0JCQlyPSIkciAkc3RlcC8kdG90YWwiCi0JCWZpCi0KLQkJbG9jYWwgdz0iIgotCQlsb2NhbCBpPSIiCi0JCWxvY2FsIHM9IiIKLQkJbG9jYWwgdT0iIgotCQlsb2NhbCBjPSIiCi0JCWxvY2FsIHA9IiIKLQotCQlpZiBbICJ0cnVlIiA9ICIkKGdpdCByZXYtcGFyc2UgLS1pcy1pbnNpZGUtZ2l0LWRpciAyPi9kZXYvbnVsbCkiIF07IHRoZW4KLQkJCWlmIFsgInRydWUiID0gIiQoZ2l0IHJldi1wYXJzZSAtLWlzLWJhcmUtcmVwb3NpdG9yeSAyPi9kZXYvbnVsbCkiIF07IHRoZW4KLQkJCQljPSJCQVJFOiIKLQkJCWVsc2UKLQkJCQliPSJHSVRfRElSISIKLQkJCWZpCi0JCWVsaWYgWyAidHJ1ZSIgPSAiJChnaXQgcmV2LXBhcnNlIC0taXMtaW5zaWRlLXdvcmstdHJlZSAyPi9kZXYvbnVsbCkiIF07IHRoZW4KLQkJCWlmIFsgLW4gIiR7R0lUX1BTMV9TSE9XRElSVFlTVEFURS19IiBdICYmCi0JCQkgICBbICIkKGdpdCBjb25maWcgLS1ib29sIGJhc2guc2hvd0RpcnR5U3RhdGUpIiAhPSAiZmFsc2UiIF0KLQkJCXRoZW4KLQkJCQlnaXQgZGlmZiAtLW5vLWV4dC1kaWZmIC0tcXVpZXQgLS1leGl0LWNvZGUgfHwgdz0iKiIKLQkJCQlpZiBnaXQgcmV2LXBhcnNlIC0tcXVpZXQgLS12ZXJpZnkgSEVBRCA+L2Rldi9udWxsOyB0aGVuCi0JCQkJCWdpdCBkaWZmLWluZGV4IC0tY2FjaGVkIC0tcXVpZXQgSEVBRCAtLSB8fCBpPSIrIgotCQkJCWVsc2UKLQkJCQkJaT0iIyIKLQkJCQlmaQotCQkJZmkKLQkJCWlmIFsgLW4gIiR7R0lUX1BTMV9TSE9XU1RBU0hTVEFURS19IiBdOyB0aGVuCi0JCQkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3N0YXNoID4vZGV2L251bGwgMj4mMSAmJiBzPSIkIgotCQkJZmkKLQotCQkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUy19IiBdICYmCi0JCQkgICBbICIkKGdpdCBjb25maWcgLS1ib29sIGJhc2guc2hvd1VudHJhY2tlZEZpbGVzKSIgIT0gImZhbHNlIiBdICYmCi0JCQkgICBbIC1uICIkKGdpdCBscy1maWxlcyAtLW90aGVycyAtLWV4Y2x1ZGUtc3RhbmRhcmQpIiBdCi0JCQl0aGVuCi0JCQkJdT0iJSR7WlNIX1ZFUlNJT04rJX0iCi0JCQlmaQotCi0JCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV1VQU1RSRUFNLX0iIF07IHRoZW4KLQkJCQlfX2dpdF9wczFfc2hvd191cHN0cmVhbQogCQkJZmkKIAkJZmkKKwlmaQogCi0JCWxvY2FsIGY9IiR3JGkkcyR1IgotCQlpZiBbICRwY21vZGUgPSB5ZXMgXTsgdGhlbgotCQkJbG9jYWwgZ2l0c3RyaW5nPQotCQkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dDT0xPUkhJTlRTLX0iIF07IHRoZW4KLQkJCQlsb2NhbCBjX3JlZD0nXGVbMzFtJwotCQkJCWxvY2FsIGNfZ3JlZW49J1xlWzMybScKLQkJCQlsb2NhbCBjX2xibHVlPSdcZVsxOzM0bScKLQkJCQlsb2NhbCBjX2NsZWFyPSdcZVswbScKLQkJCQlsb2NhbCBiYWRfY29sb3I9JGNfcmVkCi0JCQkJbG9jYWwgb2tfY29sb3I9JGNfZ3JlZW4KLQkJCQlsb2NhbCBicmFuY2hfY29sb3I9IiRjX2NsZWFyIgotCQkJCWxvY2FsIGZsYWdzX2NvbG9yPSIkY19sYmx1ZSIKLQkJCQlsb2NhbCBicmFuY2hzdHJpbmc9IiRjJHtiIyNyZWZzL2hlYWRzL30iCisJaWYgWyAtbiAiJHN0ZXAiIF0gJiYgWyAtbiAiJHRvdGFsIiBdOyB0aGVuCisJCXI9IiRyICRzdGVwLyR0b3RhbCIKKwlmaQogCi0JCQkJaWYgWyAkZGV0YWNoZWQgPSBubyBdOyB0aGVuCi0JCQkJCWJyYW5jaF9jb2xvcj0iJG9rX2NvbG9yIgotCQkJCWVsc2UKLQkJCQkJYnJhbmNoX2NvbG9yPSIkYmFkX2NvbG9yIgotCQkJCWZpCisJbG9jYWwgdz0iIgorCWxvY2FsIGk9IiIKKwlsb2NhbCBzPSIiCisJbG9jYWwgdT0iIgorCWxvY2FsIGM9IiIKKwlsb2NhbCBwPSIiCiAKLQkJCQkjIFNldHRpbmcgZ2l0c3RyaW5nIGRpcmVjdGx5IHdpdGggXFsgYW5kIFxdIGFyb3VuZCBjb2xvcnMKLQkJCQkjIGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHdyYXBwaW5nIGlzc3VlcyEKLQkJCQlnaXRzdHJpbmc9IlxbJGJyYW5jaF9jb2xvclxdJGJyYW5jaHN0cmluZ1xbJGNfY2xlYXJcXSIKLQotCQkJCWlmIFsgLW4gIiR3JGkkcyR1JHIkcCIgXTsgdGhlbgotCQkJCQlnaXRzdHJpbmc9IiRnaXRzdHJpbmcgIgotCQkJCWZpCi0JCQkJaWYgWyAiJHciID0gIioiIF07IHRoZW4KLQkJCQkJZ2l0c3RyaW5nPSIkZ2l0c3RyaW5nXFskYmFkX2NvbG9yXF0kdyIKLQkJCQlmaQotCQkJCWlmIFsgLW4gIiRpIiBdOyB0aGVuCi0JCQkJCWdpdHN0cmluZz0iJGdpdHN0cmluZ1xbJG9rX2NvbG9yXF0kaSIKLQkJCQlmaQotCQkJCWlmIFsgLW4gIiRzIiBdOyB0aGVuCi0JCQkJCWdpdHN0cmluZz0iJGdpdHN0cmluZ1xbJGZsYWdzX2NvbG9yXF0kcyIKLQkJCQlmaQotCQkJCWlmIFsgLW4gIiR1IiBdOyB0aGVuCi0JCQkJCWdpdHN0cmluZz0iJGdpdHN0cmluZ1xbJGJhZF9jb2xvclxdJHUiCi0JCQkJZmkKLQkJCQlnaXRzdHJpbmc9IiRnaXRzdHJpbmdcWyRjX2NsZWFyXF0kciRwIgotCQkJZWxzZQotCQkJCWdpdHN0cmluZz0iJGMke2IjI3JlZnMvaGVhZHMvfSR7ZjorICRmfSRyJHAiCi0JCQlmaQotCQkJZ2l0c3RyaW5nPSQocHJpbnRmIC0tICIkcHJpbnRmX2Zvcm1hdCIgIiRnaXRzdHJpbmciKQotCQkJUFMxPSIkcHMxcGNfc3RhcnQkZ2l0c3RyaW5nJHBzMXBjX2VuZCIKKwlpZiBbICJ0cnVlIiA9ICIkaW5zaWRlX2dpdGRpciIgXTsgdGhlbgorCQlpZiBbICJ0cnVlIiA9ICIkYmFyZV9yZXBvIiBdOyB0aGVuCisJCQljPSJCQVJFOiIKIAkJZWxzZQotCQkJIyBOTyBjb2xvciBvcHRpb24gdW5sZXNzIGluIFBST01QVF9DT01NQU5EIG1vZGUKLQkJCXByaW50ZiAtLSAiJHByaW50Zl9mb3JtYXQiICIkYyR7YiMjcmVmcy9oZWFkcy99JHtmOisgJGZ9JHIkcCIKKwkJCWI9IkdJVF9ESVIhIgogCQlmaQorCWVsaWYgWyAidHJ1ZSIgPSAiJGluc2lkZV93b3JrdHJlZSIgXTsgdGhlbgorCQlpZiBbIC1uICIke0dJVF9QUzFfU0hPV0RJUlRZU1RBVEUtfSIgXSAmJgorCQkgICBbICIkKGdpdCBjb25maWcgLS1ib29sIGJhc2guc2hvd0RpcnR5U3RhdGUpIiAhPSAiZmFsc2UiIF0KKwkJdGhlbgorCQkJZ2l0IGRpZmYgLS1uby1leHQtZGlmZiAtLXF1aWV0IC0tZXhpdC1jb2RlIHx8IHc9IioiCisJCQlpZiBbIC1uICIkc2hvcnRfc2hhIiBdOyB0aGVuCisJCQkJZ2l0IGRpZmYtaW5kZXggLS1jYWNoZWQgLS1xdWlldCBIRUFEIC0tIHx8IGk9IisiCisJCQllbHNlCisJCQkJaT0iIyIKKwkJCWZpCisJCWZpCisJCWlmIFsgLW4gIiR7R0lUX1BTMV9TSE9XU1RBU0hTVEFURS19IiBdICYmCisJCSAgIFsgLXIgIiRnL3JlZnMvc3Rhc2giIF07IHRoZW4KKwkJCXM9IiQiCisJCWZpCisKKwkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUy19IiBdICYmCisJCSAgIFsgIiQoZ2l0IGNvbmZpZyAtLWJvb2wgYmFzaC5zaG93VW50cmFja2VkRmlsZXMpIiAhPSAiZmFsc2UiIF0gJiYKKwkJICAgZ2l0IGxzLWZpbGVzIC0tb3RoZXJzIC0tZXhjbHVkZS1zdGFuZGFyZCAtLWVycm9yLXVubWF0Y2ggLS0gJyonID4vZGV2L251bGwgMj4vZGV2L251bGwKKwkJdGhlbgorCQkJdT0iJSR7WlNIX1ZFUlNJT04rJX0iCisJCWZpCisKKwkJaWYgWyAtbiAiJHtHSVRfUFMxX1NIT1dVUFNUUkVBTS19IiBdOyB0aGVuCisJCQlfX2dpdF9wczFfc2hvd191cHN0cmVhbQorCQlmaQorCWZpCisKKwlsb2NhbCB6PSIke0dJVF9QUzFfU1RBVEVTRVBBUkFUT1ItIiAifSIKKworCSMgTk8gY29sb3Igb3B0aW9uIHVubGVzcyBpbiBQUk9NUFRfQ09NTUFORCBtb2RlCisJaWYgWyAkcGNtb2RlID0geWVzIF0gJiYgWyAtbiAiJHtHSVRfUFMxX1NIT1dDT0xPUkhJTlRTLX0iIF07IHRoZW4KKwkJX19naXRfcHMxX2NvbG9yaXplX2dpdHN0cmluZworCWZpCisKKwlsb2NhbCBmPSIkdyRpJHMkdSIKKwlsb2NhbCBnaXRzdHJpbmc9IiRjJHtiIyNyZWZzL2hlYWRzL30ke2Y6KyR6JGZ9JHIkcCIKKworCWlmIFsgJHBjbW9kZSA9IHllcyBdOyB0aGVuCisJCWlmIFsgIiR7X19naXRfcHJpbnRmX3N1cHBvcnRzX3YtfSIgIT0geWVzIF07IHRoZW4KKwkJCWdpdHN0cmluZz0kKHByaW50ZiAtLSAiJHByaW50Zl9mb3JtYXQiICIkZ2l0c3RyaW5nIikKKwkJZWxzZQorCQkJcHJpbnRmIC12IGdpdHN0cmluZyAtLSAiJHByaW50Zl9mb3JtYXQiICIkZ2l0c3RyaW5nIgorCQlmaQorCQlQUzE9IiRwczFwY19zdGFydCRnaXRzdHJpbmckcHMxcGNfZW5kIgorCWVsc2UKKwkJcHJpbnRmIC0tICIkcHJpbnRmX2Zvcm1hdCIgIiRnaXRzdHJpbmciCiAJZmkKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29udGFjdHMvZ2l0LWNvbnRhY3RzIGIvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDgwZjdkMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvY29udGFjdHMvZ2l0LWNvbnRhY3RzCkBAIC0wLDAgKzEsMTg4IEBACisjIS91c3IvYmluL3BlcmwKKworIyBMaXN0IHBlb3BsZSB3aG8gbWlnaHQgYmUgaW50ZXJlc3RlZCBpbiBhIHBhdGNoLiAgVXNlZnVsIGFzIHRoZSBhcmd1bWVudCB0bworIyBnaXQtc2VuZC1lbWFpbCAtLWNjLWNtZCBvcHRpb24sIGFuZCBpbiBvdGhlciBzaXR1YXRpb25zLgorIworIyBVc2FnZTogZ2l0IGNvbnRhY3RzIDxmaWxlIHwgcmV2LWxpc3Qgb3B0aW9uPiAuLi4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBJUEM6Ok9wZW4yOworCitteSAkc2luY2UgPSAnNS15ZWFycy1hZ28nOworbXkgJG1pbl9wZXJjZW50ID0gMTA7CitteSAkbGFiZWxzX3J4ID0gcXIvU2lnbmVkLW9mZi1ieXxSZXZpZXdlZC1ieXxBY2tlZC1ieXxDYy9pOworbXkgJXNlZW47CisKK3N1YiBmb3JtYXRfY29udGFjdCB7CisJbXkgKCRuYW1lLCAkZW1haWwpID0gQF87CisJcmV0dXJuICIkbmFtZSA8JGVtYWlsPiI7Cit9CisKK3N1YiBwYXJzZV9jb21taXQgeworCW15ICgkY29tbWl0LCAkZGF0YSkgPSBAXzsKKwlteSAkY29udGFjdHMgPSAkY29tbWl0LT57Y29udGFjdHN9OworCW15ICRpbmJvZHkgPSAwOworCWZvciAoc3BsaXQoL14vbSwgJGRhdGEpKSB7CisJCWlmIChub3QgJGluYm9keSkgeworCQkJaWYgKC9eYXV0aG9yIChbXjw+XSspIDwoXFMrKT4gLiskLykgeworCQkJCSRjb250YWN0cy0+e2Zvcm1hdF9jb250YWN0KCQxLCAkMil9ID0gMTsKKwkJCX0gZWxzaWYgKC9eJC8pIHsKKwkJCQkkaW5ib2R5ID0gMTsKKwkJCX0KKwkJfSBlbHNpZiAoL14kbGFiZWxzX3J4OlxzKyhbXjw+XSspXHMrPChcUys/KT4kL28pIHsKKwkJCSRjb250YWN0cy0+e2Zvcm1hdF9jb250YWN0KCQxLCAkMil9ID0gMTsKKwkJfQorCX0KK30KKworc3ViIGltcG9ydF9jb21taXRzIHsKKwlteSAoJGNvbW1pdHMpID0gQF87CisJcmV0dXJuIHVubGVzcyAlJGNvbW1pdHM7CisJbXkgJHBpZCA9IG9wZW4yIG15ICRyZWFkZXIsIG15ICR3cml0ZXIsIHF3KGdpdCBjYXQtZmlsZSAtLWJhdGNoKTsKKwlmb3IgbXkgJGlkIChrZXlzKCUkY29tbWl0cykpIHsKKwkJcHJpbnQgJHdyaXRlciAiJGlkXG4iOworCQlteSAkbGluZSA9IDwkcmVhZGVyPjsKKwkJaWYgKCRsaW5lID1+IC9eKFswLTlhLWZdezQwfSkgY29tbWl0IChcZCspLykgeworCQkJbXkgKCRjaWQsICRsZW4pID0gKCQxLCAkMik7CisJCQlkaWUgImV4cGVjdGVkICRpZCBidXQgZ290ICRjaWRcbiIgdW5sZXNzICRpZCBlcSAkY2lkOworCQkJbXkgJGRhdGE7CisJCQkjIGNhdC1maWxlIGVtaXRzIG5ld2xpbmUgYWZ0ZXIgZGF0YSwgc28gcmVhZCBsZW4rMQorCQkJcmVhZCAkcmVhZGVyLCAkZGF0YSwgJGxlbiArIDE7CisJCQlwYXJzZV9jb21taXQoJGNvbW1pdHMtPnskaWR9LCAkZGF0YSk7CisJCX0KKwl9CisJY2xvc2UgJHJlYWRlcjsKKwljbG9zZSAkd3JpdGVyOworCXdhaXRwaWQoJHBpZCwgMCk7CisJZGllICJnaXQtY2F0LWZpbGUgZXJyb3I6ICQ/XG4iIGlmICQ/OworfQorCitzdWIgZ2V0X2JsYW1lIHsKKwlteSAoJGNvbW1pdHMsICRzb3VyY2UsICRzdGFydCwgJGxlbiwgJGZyb20pID0gQF87CisJJGxlbiA9IDEgdW5sZXNzIGRlZmluZWQoJGxlbik7CisJcmV0dXJuIGlmICRsZW4gPT0gMDsKKwlvcGVuIG15ICRmLCAnLXwnLAorCQlxdyhnaXQgYmxhbWUgLS1wb3JjZWxhaW4gLUMpLCAnLUwnLCAiJHN0YXJ0LCskbGVuIiwKKwkJJy0tc2luY2UnLCAkc2luY2UsICIkZnJvbV4iLCAnLS0nLCAkc291cmNlIG9yIGRpZTsKKwl3aGlsZSAoPCRmPikgeworCQlpZiAoL14oWzAtOWEtZl17NDB9KSBcZCsgXGQrIFxkKyQvKSB7CisJCQlteSAkaWQgPSAkMTsKKwkJCSRjb21taXRzLT57JGlkfSA9IHsgaWQgPT4gJGlkLCBjb250YWN0cyA9PiB7fSB9CisJCQkJdW5sZXNzICRzZWVueyRpZH07CisJCQkkc2VlbnskaWR9ID0gMTsKKwkJfQorCX0KKwljbG9zZSAkZjsKK30KKworc3ViIHNjYW5fcGF0Y2hlcyB7CisJbXkgKCRjb21taXRzLCAkaWQsICRmKSA9IEBfOworCW15ICRzb3VyY2U7CisJd2hpbGUgKDwkZj4pIHsKKwkJaWYgKC9eRnJvbSAoWzAtOWEtZl17NDB9KSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEkLykgeworCQkJJGlkID0gJDE7CisJCQkkc2VlbnskaWR9ID0gMTsKKwkJfQorCQluZXh0IHVubGVzcyAkaWQ7CisJCWlmIChte14tLS0gKD86YS8oLispfC9kZXYvbnVsbCkkfSkgeworCQkJJHNvdXJjZSA9ICQxOworCQl9IGVsc2lmICgvXi0tLSAvKSB7CisJCQlkaWUgIkNhbm5vdCBwYXJzZSBodW5rIHNvdXJjZTogJF9cbiI7CisJCX0gZWxzaWYgKC9eQEAgLShcZCspKD86LChcZCspKT8vICYmICRzb3VyY2UpIHsKKwkJCWdldF9ibGFtZSgkY29tbWl0cywgJHNvdXJjZSwgJDEsICQyLCAkaWQpOworCQl9CisJfQorfQorCitzdWIgc2Nhbl9wYXRjaF9maWxlIHsKKwlteSAoJGNvbW1pdHMsICRmaWxlKSA9IEBfOworCW9wZW4gbXkgJGYsICc8JywgJGZpbGUgb3IgZGllICJyZWFkIGZhaWx1cmU6ICRmaWxlOiAkIVxuIjsKKwlzY2FuX3BhdGNoZXMoJGNvbW1pdHMsIHVuZGVmLCAkZik7CisJY2xvc2UgJGY7Cit9CisKK3N1YiBwYXJzZV9yZXZfYXJncyB7CisJbXkgQGFyZ3MgPSBAXzsKKwlvcGVuIG15ICRmLCAnLXwnLAorCQlxdyhnaXQgcmV2LXBhcnNlIC0tcmV2cy1vbmx5IC0tZGVmYXVsdCBIRUFEIC0tc3ltYm9saWMpLCBAYXJncworCQlvciBkaWU7CisJbXkgQHJldnM7CisJd2hpbGUgKDwkZj4pIHsKKwkJY2hvbXA7CisJCXB1c2ggQHJldnMsICRfOworCX0KKwljbG9zZSAkZjsKKwlyZXR1cm4gQHJldnMgaWYgc2NhbGFyKEByZXZzKSAhPSAxOworCXJldHVybiAiXiRyZXZzWzBdIiwgJ0hFQUQnIHVubGVzcyAkcmV2c1swXSA9fiAvXi0vOworCXJldHVybiAkcmV2c1swXSwgJ0hFQUQnOworfQorCitzdWIgc2Nhbl9yZXZfYXJncyB7CisJbXkgKCRjb21taXRzLCAkYXJncykgPSBAXzsKKwlteSBAcmV2cyA9IHBhcnNlX3Jldl9hcmdzKEAkYXJncyk7CisJb3BlbiBteSAkZiwgJy18JywgcXcoZ2l0IHJldi1saXN0IC0tcmV2ZXJzZSksIEByZXZzIG9yIGRpZTsKKwl3aGlsZSAoPCRmPikgeworCQljaG9tcDsKKwkJbXkgJGlkID0gJF87CisJCSRzZWVueyRpZH0gPSAxOworCQlvcGVuIG15ICRnLCAnLXwnLCBxdyhnaXQgc2hvdyAtQyAtLW9uZWxpbmUpLCAkaWQgb3IgZGllOworCQlzY2FuX3BhdGNoZXMoJGNvbW1pdHMsICRpZCwgJGcpOworCQljbG9zZSAkZzsKKwl9CisJY2xvc2UgJGY7Cit9CisKK3N1YiBtYWlsbWFwX2NvbnRhY3RzIHsKKwlteSAoJGNvbnRhY3RzKSA9IEBfOworCW15ICVtYXBwZWQ7CisJbXkgJHBpZCA9IG9wZW4yIG15ICRyZWFkZXIsIG15ICR3cml0ZXIsIHF3KGdpdCBjaGVjay1tYWlsbWFwIC0tc3RkaW4pOworCWZvciBteSAkY29udGFjdCAoa2V5cyglJGNvbnRhY3RzKSkgeworCQlwcmludCAkd3JpdGVyICIkY29udGFjdFxuIjsKKwkJbXkgJGNhbm9uaWNhbCA9IDwkcmVhZGVyPjsKKwkJY2hvbXAgJGNhbm9uaWNhbDsKKwkJJG1hcHBlZHskY2Fub25pY2FsfSArPSAkY29udGFjdHMtPnskY29udGFjdH07CisJfQorCWNsb3NlICRyZWFkZXI7CisJY2xvc2UgJHdyaXRlcjsKKwl3YWl0cGlkKCRwaWQsIDApOworCWRpZSAiZ2l0LWNoZWNrLW1haWxtYXAgZXJyb3I6ICQ/XG4iIGlmICQ/OworCXJldHVybiBcJW1hcHBlZDsKK30KKworaWYgKCFAQVJHVikgeworCWRpZSAiTm8gaW5wdXQgcmV2aXNpb25zIG9yIHBhdGNoIGZpbGVzXG4iOworfQorCitteSAoQGZpbGVzLCBAcmV2X2FyZ3MpOworZm9yIChAQVJHVikgeworCWlmICgtZSkgeworCQlwdXNoIEBmaWxlcywgJF87CisJfSBlbHNlIHsKKwkJcHVzaCBAcmV2X2FyZ3MsICRfOworCX0KK30KKworbXkgJWNvbW1pdHM7Citmb3IgKEBmaWxlcykgeworCXNjYW5fcGF0Y2hfZmlsZShcJWNvbW1pdHMsICRfKTsKK30KK2lmIChAcmV2X2FyZ3MpIHsKKwlzY2FuX3Jldl9hcmdzKFwlY29tbWl0cywgXEByZXZfYXJncykKK30KK2ltcG9ydF9jb21taXRzKFwlY29tbWl0cyk7CisKK215ICRjb250YWN0cyA9IHt9OworZm9yIG15ICRjb21taXQgKHZhbHVlcyAlY29tbWl0cykgeworCWZvciBteSAkY29udGFjdCAoa2V5cyAleyRjb21taXQtPntjb250YWN0c319KSB7CisJCSRjb250YWN0cy0+eyRjb250YWN0fSsrOworCX0KK30KKyRjb250YWN0cyA9IG1haWxtYXBfY29udGFjdHMoJGNvbnRhY3RzKTsKKworbXkgJG5jb21taXRzID0gc2NhbGFyKGtleXMgJWNvbW1pdHMpOworZm9yIG15ICRjb250YWN0IChrZXlzICUkY29udGFjdHMpIHsKKwlteSAkcGVyY2VudCA9ICRjb250YWN0cy0+eyRjb250YWN0fSAqIDEwMCAvICRuY29tbWl0czsKKwluZXh0IGlmICRwZXJjZW50IDwgJG1pbl9wZXJjZW50OworCXByaW50ICIkY29udGFjdFxuIjsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY29udGFjdHMvZ2l0LWNvbnRhY3RzLnR4dCBiL2NvbnRyaWIvY29udGFjdHMvZ2l0LWNvbnRhY3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDkxNGQxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9jb250YWN0cy9naXQtY29udGFjdHMudHh0CkBAIC0wLDAgKzEsOTQgQEAKK2dpdC1jb250YWN0cygxKQorPT09PT09PT09PT09PT09CisKK05BTUUKKy0tLS0KK2dpdC1jb250YWN0cyAtIExpc3QgcGVvcGxlIHdobyBtaWdodCBiZSBpbnRlcmVzdGVkIGluIGEgc2V0IG9mIGNoYW5nZXMKKworCitTWU5PUFNJUworLS0tLS0tLS0KK1t2ZXJzZV0KKydnaXQgY29udGFjdHMnICg8cGF0Y2g+fDxyYW5nZT58PHJldj4pLi4uCisKKworREVTQ1JJUFRJT04KKy0tLS0tLS0tLS0tCisKK0dpdmVuIGEgc2V0IG9mIGNoYW5nZXMsIHNwZWNpZmllZCBhcyBwYXRjaCBmaWxlcyBvciByZXZpc2lvbnMsIGRldGVybWluZSBwZW9wbGUKK3dobyBtaWdodCBiZSBpbnRlcmVzdGVkIGluIHRob3NlIGNoYW5nZXMuICBUaGlzIGlzIGRvbmUgYnkgY29uc3VsdGluZyB0aGUKK2hpc3Rvcnkgb2YgZWFjaCBwYXRjaCBvciByZXZpc2lvbiBodW5rIHRvIGZpbmQgcGVvcGxlIG1lbnRpb25lZCBieSBjb21taXRzCit3aGljaCB0b3VjaGVkIHRoZSBsaW5lcyBvZiBmaWxlcyB1bmRlciBjb25zaWRlcmF0aW9uLgorCitJbnB1dCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYXRjaCBmaWxlcyBvciByZXZpc2lvbiBhcmd1bWVudHMuICBBIHJldmlzaW9uCithcmd1bWVudCBjYW4gYmUgYSByYW5nZSBvciBhIHNpbmdsZSBgPHJldj5gIHdoaWNoIGlzIGludGVycHJldGVkIGFzCitgPHJldj4uLkhFQURgLCB0aHVzIHRoZSBzYW1lIHJldmlzaW9uIGFyZ3VtZW50cyBhcmUgYWNjZXB0ZWQgYXMgZm9yCitsaW5rZ2l0OmdpdC1mb3JtYXQtcGF0Y2hbMV0uIFBhdGNoIGZpbGVzIGFuZCByZXZpc2lvbiBhcmd1bWVudHMgY2FuIGJlIGNvbWJpbmVkCitpbiB0aGUgc2FtZSBpbnZvY2F0aW9uLgorCitUaGlzIGNvbW1hbmQgY2FuIGJlIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgdGhlIGxpc3Qgb2YgcGVvcGxlIHdpdGggd2hvbSB0bworZGlzY3VzcyBwcm9wb3NlZCBjaGFuZ2VzLCBvciBmb3IgZmluZGluZyB0aGUgbGlzdCBvZiByZWNpcGllbnRzIHRvIENjOiB3aGVuCitzdWJtaXR0aW5nIGEgcGF0Y2ggc2VyaWVzIHZpYSBgZ2l0IHNlbmQtZW1haWxgLiBGb3IgdGhlIGxhdHRlciBjYXNlLCBgZ2l0Citjb250YWN0c2AgY2FuIGJlIHVzZWQgYXMgdGhlIGFyZ3VtZW50IHRvIGBnaXQgc2VuZC1lbWFpbGAncyBgLS1jYy1jbWRgIG9wdGlvbi4KKworCitESVNDVVNTSU9OCistLS0tLS0tLS0tCisKK2BnaXQgYmxhbWVgIGlzIGludm9rZWQgZm9yIGVhY2ggaHVuayBpbiBhIHBhdGNoIGZpbGUgb3IgcmV2aXNpb24uICBGb3IgZWFjaAorY29tbWl0IG1lbnRpb25lZCBieSBgZ2l0IGJsYW1lYCwgdGhlIGNvbW1pdCBtZXNzYWdlIGlzIGNvbnN1bHRlZCBmb3IgcGVvcGxlIHdobworYXV0aG9yZWQsIHJldmlld2VkLCBzaWduZWQsIGFja25vd2xlZGdlZCwgb3Igd2VyZSBDYzonZC4gIE9uY2UgdGhlIGxpc3Qgb2YKK3BhcnRpY2lwYW50cyBpcyBrbm93biwgZWFjaCBwZXJzb24ncyByZWxldmFuY2UgaXMgY29tcHV0ZWQgYnkgY29uc2lkZXJpbmcgaG93CittYW55IGNvbW1pdHMgbWVudGlvbmVkIHRoYXQgcGVyc29uIGNvbXBhcmVkIHdpdGggdGhlIHRvdGFsIG51bWJlciBvZiBjb21taXRzCit1bmRlciBjb25zaWRlcmF0aW9uLiAgVGhlIGZpbmFsIG91dHB1dCBjb25zaXN0cyBvbmx5IG9mIHBhcnRpY2lwYW50cyB3aG8gZXhjZWVkCithIG1pbmltdW0gdGhyZXNob2xkIG9mIHBhcnRpY2lwYXRpb24uCisKKworT1VUUFVUCistLS0tLS0KKworRm9yIGVhY2ggcGVyc29uIG9mIGludGVyZXN0LCBhIHNpbmdsZSBsaW5lIGlzIG91dHB1dCwgdGVybWluYXRlZCBieSBhIG5ld2xpbmUuCitJZiB0aGUgcGVyc29uJ3MgbmFtZSBpcyBrbm93biwgYGBOYW1lICQkPHVzZXJAaG9zdD4kJCcnIGlzIHByaW50ZWQ7IG90aGVyd2lzZQorb25seSBgYCQkPHVzZXJAaG9zdD4kJCcnIGlzIHByaW50ZWQuCisKKworRVhBTVBMRVMKKy0tLS0tLS0tCisKKyogQ29uc3VsdCBwYXRjaCBmaWxlczoKKysKKy0tLS0tLS0tLS0tLQorJCBnaXQgY29udGFjdHMgZmVhdHVyZS8qLnBhdGNoCistLS0tLS0tLS0tLS0KKworKiBSZXZpc2lvbiByYW5nZToKKysKKy0tLS0tLS0tLS0tLQorJCBnaXQgY29udGFjdHMgUjEuLlIyCistLS0tLS0tLS0tLS0KKworKiBGcm9tIGEgc2luZ2xlIHJldmlzaW9uIHRvIGBIRUFEYDoKKysKKy0tLS0tLS0tLS0tLQorJCBnaXQgY29udGFjdHMgb3JpZ2luCistLS0tLS0tLS0tLS0KKworKiBIZWxwZXIgZm9yIGBnaXQgc2VuZC1lbWFpbGA6CisrCistLS0tLS0tLS0tLS0KKyQgZ2l0IHNlbmQtZW1haWwgLS1jYy1jbWQ9J2dpdCBjb250YWN0cycgZmVhdHVyZS8qLnBhdGNoCistLS0tLS0tLS0tLS0KKworCitMSU1JVEFUSU9OUworLS0tLS0tLS0tLS0KKworU2V2ZXJhbCBjb25kaXRpb25zIGNvbnRyb2xsaW5nIGEgcGVyc29uJ3Mgc2lnbmlmaWNhbmNlIGFyZSBjdXJyZW50bHkKK2hhcmQtY29kZWQsIHN1Y2ggYXMgbWluaW11bSBwYXJ0aWNpcGF0aW9uIGxldmVsICgxMCUpLCBibGFtZSBkYXRlLWxpbWl0aW5nICg1Cit5ZWFycyksIGFuZCBgLUNgIGxldmVsIGZvciBkZXRlY3RpbmcgbW92ZWQgYW5kIGNvcGllZCBsaW5lcyAoYSBzaW5nbGUgYC1DYCkuIEluCit0aGUgZnV0dXJlLCB0aGVzZSBjb25kaXRpb25zIG1heSBiZWNvbWUgY29uZmlndXJhYmxlLgorCisKK0dJVAorLS0tCitQYXJ0IG9mIHRoZSBsaW5rZ2l0OmdpdFsxXSBzdWl0ZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jb250aW51b3VzL2NpZGFlbW9uIGIvY29udHJpYi9jb250aW51b3VzL2NpZGFlbW9uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MDA5YTE1Li4wMDAwMDAwCi0tLSBhL2NvbnRyaWIvY29udGludW91cy9jaWRhZW1vbgorKysgL2Rldi9udWxsCkBAIC0xLDUwMyArMCwwIEBACi0jIS91c3IvYmluL3BlcmwKLSMKLSMgQSBkYWVtb24gdGhhdCB3YWl0cyBmb3IgdXBkYXRlIGV2ZW50cyBzZW50IGJ5IGl0cyBjb21wYW5pb24KLSMgcG9zdC1yZWNlaXZlLWNpbm90aWZ5IGhvb2ssIGNoZWNrcyBvdXQgYSBuZXcgY29weSBvZiBzb3VyY2UsCi0jIGNvbXBpbGVzIGl0LCBhbmQgZW1haWxzIHRoZSBndWlsdHkgcGFydGllcyBpZiB0aGUgY29tcGlsZQotIyAoYW5kIG9wdGlvbmFsbHkgdGVzdCBzdWl0ZSkgZmFpbHMuCi0jCi0jIFRvIHVzZSB0aGlzIGRhZW1vbiwgY29uZmlndXJlIGl0IGFuZCBydW4gaXQuICBJdCB3aWxsIGRpc2Nvbm5lY3QKLSMgZnJvbSB5b3VyIHRlcm1pbmFsIGFuZCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQuICBUaGUgZGFlbW9uIG11c3QKLSMgaGF2ZSBsb2NhbCBmaWxlc3lzdGVtIGFjY2VzcyB0byB0aGUgc291cmNlIHJlcG9zaXRvcmllcywgYXMgaXQKLSMgdXNlcyBvYmplY3RzL2luZm8vYWx0ZXJuYXRlcyB0byBhdm9pZCBjb3B5aW5nIG9iamVjdHMuCi0jCi0jIEFkZCBpdHMgY29tcGFuaW9uIHBvc3QtcmVjZWl2ZS1jaW5vdGlmeSBob29rIGFzIHRoZSBwb3N0LXJlY2VpdmUKLSMgaG9vayB0byBlYWNoIHJlcG9zaXRvcnkgdGhhdCB0aGUgZGFlbW9uIHNob3VsZCBtb25pdG9yLiAgWWVzLCBhCi0jIHNpbmdsZSBkYWVtb24gY2FuIG1vbml0b3IgbW9yZSB0aGFuIG9uZSByZXBvc2l0b3J5LgotIwotIyBUbyB1c2UgbXVsdGlwbGUgZGFlbW9ucyBvbiB0aGUgc2FtZSBzeXN0ZW0sIGdpdmUgdGhlbSBlYWNoIGEKLSMgdW5pcXVlIHF1ZXVlIGZpbGUgYW5kIHRtcGRpci4KLSMKLSMgR2xvYmFsIENvbmZpZwotIyAtLS0tLS0tLS0tLS0tCi0jIFJlYWRzIGZyb20gYSBHaXQgc3R5bGUgY29uZmlndXJhdGlvbiBmaWxlLiAgVGhpcyB3aWxsIGJlCi0jIH4vLmdpdGNvbmZpZyBieSBkZWZhdWx0IGJ1dCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzZXR0aW5nCi0jIHRoZSBHSVRfQ09ORklHX0ZJTEUgZW52aXJvbm1lbnQgdmFyaWFibGUgYmVmb3JlIHN0YXJ0aW5nLgotIwotIyBjaWRhZW1vbi5zbXRwSG9zdAotIyAgIEhvc3RuYW1lIG9mIHRoZSBTTVRQIHNlcnZlciB0aGUgZGFlbW9uIHdpbGwgc2VuZCBlbWFpbAotIyAgIHRocm91Z2guICBEZWZhdWx0cyB0byAnbG9jYWxob3N0Jy4KLSMKLSMgY2lkYWVtb24uc210cFVzZXIKLSMgICBVc2VybmFtZSB0byBhdXRoZW50aWNhdGUgdG8gdGhlIFNNVFAgc2VydmVyIGFzLiAgVGhpcwotIyAgIHZhcmlhYmxlIGlzIG9wdGlvbmFsOyBpZiBpdCBpcyBub3Qgc3VwcGxpZWQgdGhlbiBubwotIyAgIGF1dGhlbnRpY2F0aW9uIHdpbGwgYmUgcGVyZm9ybWVkLgotIwotIyBjaWRhZW1vbi5zbXRwUGFzc3dvcmQKLSMgICBQYXNzd29yZCB0byBhdXRoZW50aWNhdGUgdG8gdGhlIFNNVFAgc2VydmVyIGFzLiAgVGhpcwotIyAgIHZhcmlhYmxlIGlzIG9wdGlvbmFsLiAgSWYgbm90IHN1cHBsaWVkIGJ1dCBzbXRwVXNlciB3YXMsCi0jICAgdGhlIGRhZW1vbiBwcm9tcHRzIGZvciB0aGUgcGFzc3dvcmQgYmVmb3JlIGZvcmtpbmcgaW50bwotIyAgIHRoZSBiYWNrZ3JvdW5kLgotIwotIyBjaWRhZW1vbi5zbXRwQXV0aAotIyAgIFR5cGUgb2YgYXV0aGVudGljYXRpb24gdG8gcGVyZm9ybSB3aXRoIHRoZSBTTVRQIHNlcnZlci4KLSMgICBJZiBzZXQgdG8gJ2xvZ2luJyBhbmQgc210cFVzZXIgd2FzIGRlZmluZWQsIHRoaXMgd2lsbAotIyAgIHVzZSB0aGUgQVVUSCBMT0dJTiBjb21tYW5kLCB3aGljaCBpcyBzdWl0YWJsZSBmb3IgdXNlCi0jICAgd2l0aCBhdCBsZWFzdCBvbmUgdmVyc2lvbiBvZiBNaWNyb3NvZnQgRXhjaGFuZ2UgU2VydmVyLgotIyAgIElmIG5vdCBzZXQgdGhlIGRhZW1vbiB3aWxsIHVzZSB3aGF0ZXZlciBhdXRoIG1ldGhvZHMKLSMgICBhcmUgc3VwcG9ydGVkIGJ5IHlvdXIgdmVyc2lvbiBvZiBOZXQ6OlNNVFAuCi0jCi0jIGNpZGFlbW9uLmVtYWlsCi0jICAgRW1haWwgYWRkcmVzcyB0aGF0IGRhZW1vbiBnZW5lcmF0ZWQgZW1haWxzIHdpbGwgYmUgc2VudAotIyAgIGZyb20uICBUaGlzIHNob3VsZCBiZSBhIHVzZWZ1bCBlbWFpbCBhZGRyZXNzIHdpdGhpbiB5b3VyCi0jICAgb3JnYW5pemF0aW9uLiAgUmVxdWlyZWQuCi0jCi0jIGNpZGFlbW9uLm5hbWUKLSMgICBIdW1hbiBmcmllbmRseSBuYW1lIHRoYXQgdGhlIGRhZW1vbiB3aWxsIHNlbmQgZW1haWxzIGFzLgotIyAgIERlZmF1bHRzIHRvICdjaWRhZW1vbicuCi0jCi0jIGNpZGFlbW9uLnNjYW5EZWxheQotIyAgIE51bWJlciBvZiBzZWNvbmRzIHRvIHNsZWVwIGJldHdlZW4gcG9sbHMgb2YgdGhlIHF1ZXVlIGZpbGUuCi0jICAgRGVmYXVsdHMgdG8gNjAuCi0jCi0jIGNpZGFlbW9uLnJlY2VudENhY2hlCi0jICAgTnVtYmVyIG9mIHJlY2VudCBjb21taXQgU0hBLTFzIHBlciByZXBvc2l0b3J5IHRvIGNhY2hlIGFuZAotIyAgIHNraXAgYnVpbGRpbmcgaWYgdGhleSBhcHBlYXIgYWdhaW4uICBUaGlzIGlzIHVzZWZ1bCB0byBhdm9pZAotIyAgIHJlYnVpbGRpbmcgdGhlIHNhbWUgY29tbWl0IG11bHRpcGxlIHRpbWVzIGp1c3QgYmVjYXVzZSBpdCB3YXMKLSMgICBwdXNoZWQgaW50byBtb3JlIHRoYW4gb25lIGJyYW5jaC4gIERlZmF1bHRzIHRvIDEwMC4KLSMKLSMgY2lkYWVtb24udG1wZGlyCi0jICAgU2NyYXRjaCBkaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBidWlsZHMgd2l0aGluLiAgVGhlIGRhZW1vbgotIyAgIG1ha2VzIGEgbmV3IHN1YmRpcmVjdG9yeSBmb3IgZWFjaCBidWlsZCwgdGhlbiBkZWxldGVzIGl0IHdoZW4KLSMgICB0aGUgYnVpbGQgaGFzIGZpbmlzaGVkLiAgVGhlIHBpZCBmaWxlIGlzIGFsc28gcGxhY2VkIGhlcmUuCi0jICAgRGVmYXVsdHMgdG8gJy90bXAnLgotIwotIyBjaWRhZW1vbi5xdWV1ZQotIyAgIFBhdGggdG8gdGhlIHF1ZXVlIGZpbGUgdGhhdCB0aGUgcG9zdC1yZWNlaXZlLWNpbm90aWZ5IGhvb2sKLSMgICBhcHBlbmRzIGV2ZW50cyB0by4gIFRoaXMgZmlsZSBpcyBwb2xsZWQgYnkgdGhlIGRhZW1vbi4gIEl0Ci0jICAgbXVzdCBub3QgYmUgb24gYW4gTkZTIG1vdW50ICh1c2VzIGZsb2NrKS4gIFJlcXVpcmVkLgotIwotIyBjaWRhZW1vbi5ub2NjCi0jICAgUGVybCByZWdleCBwYXR0ZXJucyB0byBtYXRjaCBhZ2FpbnN0IGF1dGhvciBhbmQgY29tbWl0dGVyCi0jICAgbGluZXMuICBJZiBhIHBhdHRlcm4gbWF0Y2hlcywgdGhhdCBhdXRob3Igb3IgY29tbWl0dGVyIHdpbGwKLSMgICBub3QgYmUgbm90aWZpZWQgb2YgYSBidWlsZCBmYWlsdXJlLgotIwotIyBQZXIgUmVwb3NpdG9yeSBDb25maWcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBSZWFkIGZyb20gdGhlIHNvdXJjZSByZXBvc2l0b3J5J3MgY29uZmlnIGZpbGUuCi0jCi0jIGJ1aWxkZXIuY29tbWFuZAotIyAgIFNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSB0aGUgYnVpbGQuICBUaGlzIGNvbW1hbmQgbXVzdAotIyAgIHJldHVybiAwIG9uICJzdWNjZXNzIiBhbmQgbm9uLXplcm8gb24gZmFpbHVyZS4gIElmIHlvdQotIyAgIGFsc28gd2FudCB0byBydW4gYSB0ZXN0IHN1aXRlLCBtYWtlIHN1cmUgeW91ciBjb21tYW5kCi0jICAgZG9lcyB0aGF0IHRvby4gIFJlcXVpcmVkLgotIwotIyBidWlsZGVyLnF1ZXVlCi0jICAgUXVldWUgZmlsZSB0byBub3RpZnkgdGhlIGNpZGFlbW9uIHRocm91Z2guICBTaG91bGQgbWF0Y2gKLSMgICBjaWRhZW1vbi5xdWV1ZS4gIElmIG5vdCBzZXQgdGhlIGhvb2sgd2lsbCBub3Qgbm90aWZ5IHRoZQotIyAgIGNpZGFlbW9uLgotIwotIyBidWlsZGVyLnNraXAKLSMgICBQZXJsIHJlZ2V4IHBhdHRlcm5zIG9mIHJlZnMgdGhhdCBzaG91bGQgbm90IGJlIHNlbnQgdG8KLSMgICBjaWRhZW1vbi4gIFVwZGF0ZXMgb2YgdGhlc2UgcmVmcyB3aWxsIGJlIGlnbm9yZWQuCi0jCi0jIGJ1aWxkZXIubmV3QnJhbmNoQmFzZQotIyAgIEdsb2IgcGF0dGVybnMgb2YgcmVmcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGZvcm0gdGhlCi0jICAgJ29sZCcgcmV2aW9ucyBvZiBhIG5ld2x5IGNyZWF0ZWQgcmVmLiAgVGhpcyBzaG91bGQgc2V0Ci0jICAgdG8gYmUgZ2xvYnMgdGhhdCBtYXRjaCB5b3VyICdtYWlubGluZScgYnJhbmNoZXMuICBUaGlzCi0jICAgd2F5IGEgYnVpbGQgZmFpbHVyZSBvZiBhIGJyYW5kIG5ldyB0b3BpYyBicmFuY2ggZG9lcyBub3QKLSMgICBhdHRlbXB0IHRvIGVtYWlsIGV2ZXJ5b25lIHNpbmNlIHRoZSBiZWdpbm5pbmcgb2YgdGltZTsKLSMgICBpbnN0ZWFkIGl0IG9ubHkgZW1haWxzIHRob3NlIGF1dGhvcnMgb2YgY29tbWl0cyBub3QgaW4KLSMgICB0aGVzZSAnbWFpbmxpbmUnIGJyYW5jaGVzLgotCi1sb2NhbCAkRU5We1BBVEh9ID0gam9pbiAnOicsIHF3KAotCS9vcHQvZ2l0L2JpbgotCS91c3IvYmluCi0JL2JpbgotCSk7Ci0KLXVzZSBzdHJpY3Q7Ci11c2Ugd2FybmluZ3M7Ci11c2UgRmluZEJpbiBxdygkUmVhbEJpbik7Ci11c2UgRmlsZTo6U3BlYzsKLXVzZSBsaWIgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkUmVhbEJpbiwgJy4uJywgJ3Blcmw1Jyk7Ci11c2UgU3RvcmFibGUgcXcocmV0cmlldmUgbnN0b3JlKTsKLXVzZSBGY250bCAnOmZsb2NrJzsKLXVzZSBQT1NJWCBxdyhzdHJmdGltZSk7Ci11c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgbm9fYXV0b19hYmJyZXYgYXV0b19oZWxwKTsKLQotc3ViIGdpdF9jb25maWcgKCQ7JCkKLXsKLQlteSAkdmFyID0gc2hpZnQ7Ci0JbXkgJHJlcXVpcmVkID0gc2hpZnQgfHwgMDsKLQlsb2NhbCAqR0lUOwotCW9wZW4gR0lULCAnLXwnLCdnaXQnLCdjb25maWcnLCctLWdldCcsJHZhcjsKLQlteSAkciA9IDxHSVQ+OwotCWNob3AgJHIgaWYgJHI7Ci0JY2xvc2UgR0lUOwotCWRpZSAiZXJyb3I6ICR2YXIgbm90IHNldC5cbiIgaWYgKCRyZXF1aXJlZCAmJiAhJHIpOwotCXJldHVybiAkcjsKLX0KLQotcGFja2FnZSBFWENIQU5HRV9ORVRfU01UUDsKLQotIyBNaWNyb3NvZnQgRXhjaGFuZ2UgU2VydmVyIHJlcXVpcmVzIGFuICdBVVRIIExPR0lOJwotIyBzdHlsZSBvZiBhdXRoZW50aWNhdGlvbi4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20KLSMgdGhlIGRlZmF1bHQgc3VwcG9ydGVkIGJ5IE5ldDo6U01UUCBzbyB3ZSBzdWJjbGFzcwotIyBhbmQgb3ZlcnJpZGUgdGhlIGF1dGggbWV0aG9kIHRvIHN1cHBvcnQgdGhhdC4KLQotdXNlIE5ldDo6U01UUDsKLXVzZSBOZXQ6OkNtZDsKLXVzZSBNSU1FOjpCYXNlNjQgcXcoZW5jb2RlX2Jhc2U2NCk7Ci1vdXIgQElTQSA9IHF3KE5ldDo6U01UUCk7Ci1vdXIgJGF1dGhfdHlwZSA9IDo6Z2l0X2NvbmZpZyAnY2lkYWVtb24uc210cEF1dGgnOwotCi1zdWIgbmV3Ci17Ci0JbXkgJHNlbGYgPSBzaGlmdDsKLQlteSAkdHlwZSA9IHJlZigkc2VsZikgfHwgJHNlbGY7Ci0JJHR5cGUtPlNVUEVSOjpuZXcoQF8pOwotfQotCi1zdWIgYXV0aAotewotCW15ICRzZWxmID0gc2hpZnQ7Ci0JcmV0dXJuICRzZWxmLT5TVVBFUjo6YXV0aChAXykgdW5sZXNzICRhdXRoX3R5cGUgZXEgJ2xvZ2luJzsKLQotCW15ICR1c2VyID0gZW5jb2RlX2Jhc2U2NCBzaGlmdCwgJyc7Ci0JbXkgJHBhc3MgPSBlbmNvZGVfYmFzZTY0IHNoaWZ0LCAnJzsKLQlyZXR1cm4gMCB1bmxlc3MgQ01EX01PUkUgPT0gJHNlbGYtPmNvbW1hbmQoIkFVVEggTE9HSU4iKS0+cmVzcG9uc2U7Ci0JcmV0dXJuIDAgdW5sZXNzIENNRF9NT1JFID09ICRzZWxmLT5jb21tYW5kKCR1c2VyKS0+cmVzcG9uc2U7Ci0JQ01EX09LID09ICRzZWxmLT5jb21tYW5kKCRwYXNzKS0+cmVzcG9uc2U7Ci19Ci0KLXBhY2thZ2UgbWFpbjsKLQotbXkgKCRkZWJ1Z19mbGFnLCAlcmVjZW50KTsKLQotbXkgJGV4X2hvc3QgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5zbXRwSG9zdCcpIHx8ICdsb2NhbGhvc3QnOwotbXkgJGV4X3VzZXIgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5zbXRwVXNlcicpOwotbXkgJGV4X3Bhc3MgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5zbXRwUGFzc3dvcmQnKTsKLQotbXkgJGV4X2Zyb21fYWRkciA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLmVtYWlsJywgMSk7Ci1teSAkZXhfZnJvbV9uYW1lID0gZ2l0X2NvbmZpZygnY2lkYWVtb24ubmFtZScpIHx8ICdjaWRhZW1vbic7Ci0KLW15ICRzY2FuX2RlbGF5ID0gZ2l0X2NvbmZpZygnY2lkYWVtb24uc2NhbkRlbGF5JykgfHwgNjA7Ci1teSAkcmVjZW50X3NpemUgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi5yZWNlbnRDYWNoZScpIHx8IDEwMDsKLW15ICR0bXBkaXIgPSBnaXRfY29uZmlnKCdjaWRhZW1vbi50bXBkaXInKSB8fCAnL3RtcCc7Ci1teSAkcXVldWVfbmFtZSA9IGdpdF9jb25maWcoJ2NpZGFlbW9uLnF1ZXVlJywgMSk7Ci1teSAkcXVldWVfbG9jayA9ICIkcXVldWVfbmFtZS5sb2NrIjsKLQotbXkgQG5vY2NfbGlzdDsKLW9wZW4gR0lULCdnaXQgY29uZmlnIC0tZ2V0LWFsbCBjaWRhZW1vbi5ub2NjfCc7Ci13aGlsZSAoPEdJVD4pIHsKLQljaG9wOwotCXB1c2ggQG5vY2NfbGlzdCwgJF87Ci19Ci1jbG9zZSBHSVQ7Ci0KLXN1YiBub2NjX2F1dGhvciAoJCkKLXsKLQlsb2NhbCAkXyA9IHNoaWZ0OwotCWZvcmVhY2ggbXkgJHBhdCAoQG5vY2NfbGlzdCkgewotCQlyZXR1cm4gMSBpZiAvJHBhdC87Ci0JfQotCTA7Ci19Ci0KLXN1YiBpbnB1dF9lY2hvICgkKQotewotCW15ICRwcm9tcHQgPSBzaGlmdDsKLQotCWxvY2FsICR8ID0gMTsKLQlwcmludCAkcHJvbXB0OwotCW15ICRpbnB1dCA9IDxTVERJTj47Ci0JY2hvcCAkaW5wdXQ7Ci0JcmV0dXJuICRpbnB1dDsKLX0KLQotc3ViIGlucHV0X25vZWNobyAoJCkKLXsKLQlteSAkcHJvbXB0ID0gc2hpZnQ7Ci0KLQlteSAkZW5kID0gc3ViIHtzeXN0ZW0oJ3N0dHknLCdlY2hvJyk7cHJpbnQgIlxuIjtleGl0fTsKLQlsb2NhbCAkU0lHe1RFUk19ID0gJGVuZDsKLQlsb2NhbCAkU0lHe0lOVH0gPSAkZW5kOwotCXN5c3RlbSgnc3R0eScsJy1lY2hvJyk7Ci0KLQlsb2NhbCAkfCA9IDE7Ci0JcHJpbnQgJHByb21wdDsKLQlteSAkaW5wdXQgPSA8U1RESU4+OwotCXN5c3RlbSgnc3R0eScsJ2VjaG8nKTsKLQlwcmludCAiXG4iOwotCWNob3AgJGlucHV0OwotCXJldHVybiAkaW5wdXQ7Ci19Ci0KLXN1YiByZmMyODIyX2RhdGUgKCkKLXsKLQkgc3RyZnRpbWUoIiVhLCAlZCAlYiAlWSAlSDolTTolUyAlWiIsIGxvY2FsdGltZSk7Ci19Ci0KLXN1YiBzZW5kX2VtYWlsICgkJCQpCi17Ci0JbXkgKCRzdWJqLCAkYm9keSwgJHRvKSA9IEBfOwotCW15ICRub3cgPSByZmMyODIyX2RhdGU7Ci0JbXkgJHRvX3N0ciA9ICcnOwotCW15IEByY3B0X3RvOwotCWZvcmVhY2ggKEAkdG8pIHsKLQkJbXkgJHMgPSAkXzsKLQkJJHMgPX4gcy9eLyIvOwotCQkkcyA9fiBzLyhccys8KS8iJDEvOwotCQkkdG9fc3RyIC49ICcsICcgaWYgJHRvX3N0cjsKLQkJJHRvX3N0ciAuPSAkczsKLQkJcHVzaCBAcmNwdF90bywgJDEgaWYgJHMgPX4gLzwoLiopPi87Ci0JfQotCWRpZSAiTm9ib2R5IHRvIHNlbmQgdG8uXG4iIHVubGVzcyBAcmNwdF90bzsKLQlteSAkbXNnID0gPDxFT0Y7Ci1Gcm9tOiAiJGV4X2Zyb21fbmFtZSIgPCRleF9mcm9tX2FkZHI+Ci1UbzogJHRvX3N0cgotRGF0ZTogJG5vdwotU3ViamVjdDogJHN1YmoKLQotJGJvZHkKLUVPRgotCi0JbXkgJHNtdHAgPSBFWENIQU5HRV9ORVRfU01UUC0+bmV3KEhvc3QgPT4gJGV4X2hvc3QpCi0JCW9yIGRpZSAiQ2Fubm90IGNvbm5lY3QgdG8gJGV4X2hvc3Q6ICQhXG4iOwotCWlmICgkZXhfdXNlciAmJiAkZXhfcGFzcykgewotCQkkc210cC0+YXV0aCgkZXhfdXNlciwkZXhfcGFzcykKLQkJCW9yIGRpZSAiJGV4X2hvc3QgcmVqZWN0ZWQgJGV4X3VzZXJcbiI7Ci0JfQotCSRzbXRwLT5tYWlsKCRleF9mcm9tX2FkZHIpCi0JCW9yIGRpZSAiJGV4X2hvc3QgcmVqZWN0ZWQgJGV4X2Zyb21fYWRkclxuIjsKLQlzY2FsYXIoJHNtdHAtPnJlY2lwaWVudChAcmNwdF90bywgeyBTa2lwQmFkID0+IDEgfSkpCi0JCW9yIGRpZSAiJGV4X2hvc3QgZGlkIG5vdCBhY2NlcHQgYW55IGFkZHJlc3Nlcy5cbiI7Ci0JJHNtdHAtPmRhdGEoJG1zZykKLQkJb3IgZGllICIkZXhfaG9zdCByZWplY3RlZCBtZXNzYWdlIGRhdGFcbiI7Ci0JJHNtdHAtPnF1aXQ7Ci19Ci0KLXN1YiBwb3BfcXVldWUgKCkKLXsKLQlvcGVuIExPQ0ssICI+JHF1ZXVlX2xvY2siIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkcXVldWVfbG9jazogJCEiOwotCWZsb2NrIExPQ0ssIExPQ0tfRVg7Ci0KLQlteSAkcXVldWUgPSAtZiAkcXVldWVfbmFtZSA/IHJldHJpZXZlICRxdWV1ZV9uYW1lIDogW107Ci0JbXkgJGVudCA9IHNoaWZ0IEAkcXVldWU7Ci0JbnN0b3JlICRxdWV1ZSwgJHF1ZXVlX25hbWU7Ci0KLQlmbG9jayBMT0NLLCBMT0NLX1VOOwotCWNsb3NlIExPQ0s7Ci0JJGVudDsKLX0KLQotc3ViIGdpdF9leGVjIChAKQotewotCXN5c3RlbSgnZ2l0JyxAXykgPT0gMCBvciBkaWUgIkNhbm5vdCBnaXQgIiAuIGpvaW4oJyAnLCBAXykgLiAiXG4iOwotfQotCi1zdWIgZ2l0X3ZhbCAoQCkKLXsKLQlvcGVuKEMsICctfCcsJ2dpdCcsQF8pOwotCW15ICRyID0gPEM+OwotCWNob3AgJHIgaWYgJHI7Ci0JY2xvc2UgQzsKLQkkcjsKLX0KLQotc3ViIGRvX2J1aWxkICgkJCkKLXsKLQlteSAoJGdpdF9kaXIsICRuZXcpID0gQF87Ci0KLQlteSAkdG1wID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdG1wZGlyLCAiYnVpbGRlciQkIik7Ci0Jc3lzdGVtKCdybScsJy1yZicsJHRtcCkgPT0gMCBvciBkaWUgIkNhbm5vdCBjbGVhciAkdG1wXG4iOwotCWRpZSAiQ2Fubm90IGNsZWFyICR0bXAuXG4iIGlmIC1lICR0bXA7Ci0KLQlteSAkcmVzdWx0ID0gMTsKLQlldmFsIHsKLQkJbXkgJGNvbW1hbmQ7Ci0JCXsKLQkJCWxvY2FsICRFTlZ7R0lUX0RJUn0gPSAkZ2l0X2RpcjsKLQkJCSRjb21tYW5kID0gZ2l0X3ZhbCAnY29uZmlnJywnYnVpbGRlci5jb21tYW5kJzsKLQkJfQotCQlkaWUgIk5vIGJ1aWxkZXIuY29tbWFuZCBmb3IgJGdpdF9kaXIuXG4iIHVubGVzcyAkY29tbWFuZDsKLQotCQlnaXRfZXhlYyAnY2xvbmUnLCctbicsJy1sJywnLXMnLCRnaXRfZGlyLCR0bXA7Ci0JCWNobW9kIDA3MDAsICR0bXAgb3IgZGllICJDYW5ub3QgbG9jayAkdG1wXG4iOwotCQljaGRpciAkdG1wIG9yIGRpZSAiQ2Fubm90IGVudGVyICR0bXBcbiI7Ci0KLQkJZ2l0X2V4ZWMgJ3VwZGF0ZS1yZWYnLCdIRUFEJywkbmV3OwotCQlnaXRfZXhlYyAncmVhZC10cmVlJywnLW0nLCctdScsJ0hFQUQnLCdIRUFEJzsKLQkJc3lzdGVtICRjb21tYW5kOwotCQlpZiAoJD8gPT0gLTEpIHsKLQkJCXByaW50IFNUREVSUiAiZmFpbGVkIHRvIGV4ZWN1dGUgJyRjb21tYW5kJzogJCFcbiI7Ci0JCQkkcmVzdWx0ID0gMTsKLQkJfSBlbHNpZiAoJD8gJiAxMjcpIHsKLQkJCW15ICRzaWcgPSAkPyAmIDEyNzsKLQkJCXByaW50IFNUREVSUiAiJyRjb21tYW5kJyBkaWVkIGZyb20gc2lnbmFsICRzaWdcbiI7Ci0JCQkkcmVzdWx0ID0gMTsKLQkJfSBlbHNlIHsKLQkJCW15ICRyID0gJD8gPj4gODsKLQkJCXByaW50IFNUREVSUiAiJyRjb21tYW5kJyBleGl0ZWQgd2l0aCAkclxuIiBpZiAkcjsKLQkJCSRyZXN1bHQgPSAkcjsKLQkJfQotCX07Ci0JaWYgKCRAKSB7Ci0JCSRyZXN1bHQgPSAyOwotCQlwcmludCBTVERFUlIgIiRAXG4iOwotCX0KLQotCWNoZGlyICcvJzsKLQlzeXN0ZW0oJ3JtJywnLXJmJywkdG1wKTsKLQlybWRpciAkdG1wOwotCSRyZXN1bHQ7Ci19Ci0KLXN1YiBidWlsZF9mYWlsZWQgKCQkJCQkKQotewotCW15ICgkZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ldywgJG1zZykgPSBAXzsKLQotCSRnaXRfZGlyID1+IG0sLyhbXi9dKykkLDsKLQlteSAkcmVwb19uYW1lID0gJDE7Ci0JJHJlZiA9fiBzLF5yZWZzLyhoZWFkc3x0YWdzKS8sLDsKLQotCW15ICVhdXRob3JzOwotCW15ICRzaG9ydGxvZzsKLQlteSAkcmV2c3RyOwotCXsKLQkJbG9jYWwgJEVOVntHSVRfRElSfSA9ICRnaXRfZGlyOwotCQlteSBAcmV2cyA9ICgkbmV3KTsKLQkJcHVzaCBAcmV2cywgJy0tbm90JywgQCRvbGQgaWYgQCRvbGQ7Ci0JCW9wZW4gTE9HLCctfCcsJ2dpdCcsJ3Jldi1saXN0JywnLS1wcmV0dHk9cmF3JyxAcmV2czsKLQkJd2hpbGUgKDxMT0c+KSB7Ci0JCQlpZiAocy9eKGF1dGhvcnxjb21taXR0ZXIpIC8vKSB7Ci0JCQkJY2hvbXA7Ci0JCQkJcy8+LiokLz4vOwotCQkJCSRhdXRob3JzeyRffSA9IDEgdW5sZXNzIG5vY2NfYXV0aG9yICRfOwotCQkJfQotCQl9Ci0JCWNsb3NlIExPRzsKLQkJb3BlbiBMT0csJy18JywnZ2l0Jywnc2hvcnRsb2cnLEByZXZzOwotCQkkc2hvcnRsb2cgLj0gJF8gd2hpbGUgPExPRz47Ci0JCWNsb3NlIExPRzsKLQkJJHJldnN0ciA9IGpvaW4oJyAnLCBAcmV2cyk7Ci0JfQotCi0JbXkgQHRvID0gc29ydCBrZXlzICVhdXRob3JzOwotCXVubGVzcyAoQHRvKSB7Ci0JCXByaW50IFNUREVSUiAiZXJyb3I6IE5vIGF1dGhvcnMgaW4gJHJldnN0clxuIjsKLQkJcmV0dXJuOwotCX0KLQotCW15ICRzdWJqZWN0ID0gIlskcmVwb19uYW1lXSAkcmVmIDogQnVpbGQgRmFpbGVkIjsKLQlteSAkYm9keSA9IDw8RU9GOwotUHJvamVjdDogJGdpdF9kaXIKLUJyYW5jaDogICRyZWYKLUNvbW1pdHM6ICRyZXZzdHIKLQotJHNob3J0bG9nCi1CdWlsZCBPdXRwdXQ6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotJG1zZwotRU9GCi0Jc2VuZF9lbWFpbCgkc3ViamVjdCwgJGJvZHksIFxAdG8pOwotfQotCi1zdWIgcnVuX2J1aWxkICgkJCQkKQotewotCW15ICgkZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ldykgPSBAXzsKLQotCWlmICgkZGVidWdfZmxhZykgewotCQlteSBAcmV2cyA9ICgkbmV3KTsKLQkJcHVzaCBAcmV2cywgJy0tbm90JywgQCRvbGQgaWYgQCRvbGQ7Ci0JCXByaW50ICJCVUlMRElORyAkZ2l0X2RpclxuIjsKLQkJcHJpbnQgIiAgQlJBTkNIOiAkcmVmXG4iOwotCQlwcmludCAiICBDT01NSVRTOiAiLCBqb2luKCcgJywgQHJldnMpLCAiXG4iOwotCX0KLQotCWxvY2FsKCpSLCAqVyk7Ci0JcGlwZSBSLCBXIG9yIGRpZSAiY2Fubm90IHBpcGUgYnVpbGRlcjogJCEiOwotCi0JbXkgJGJ1aWxkZXIgPSBmb3JrKCk7Ci0JaWYgKCFkZWZpbmVkICRidWlsZGVyKSB7Ci0JCWRpZSAiY2Fubm90IGZvcmsgYnVpbGRlcjogJCEiOwotCX0gZWxzaWYgKDAgPT0gJGJ1aWxkZXIpIHsKLQkJY2xvc2UgUjsKLQkJY2xvc2UgU1RESU47b3BlbihTVERJTiwgJy9kZXYvbnVsbCcpOwotCQlvcGVuKFNURE9VVCwgJz4mVycpOwotCQlvcGVuKFNUREVSUiwgJz4mVycpOwotCQlleGl0IGRvX2J1aWxkICRnaXRfZGlyLCAkbmV3OwotCX0gZWxzZSB7Ci0JCWNsb3NlIFc7Ci0JCW15ICRvdXQgPSAnJzsKLQkJJG91dCAuPSAkXyB3aGlsZSA8Uj47Ci0JCWNsb3NlIFI7Ci0JCXdhaXRwaWQgJGJ1aWxkZXIsIDA7Ci0JCWJ1aWxkX2ZhaWxlZCAkZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ldywgJG91dCBpZiAkPzsKLQl9Ci0KLQlwcmludCAiRE9ORVxuXG4iIGlmICRkZWJ1Z19mbGFnOwotfQotCi1zdWIgZGFlbW9uX2xvb3AgKCkKLXsKLQlteSAkcnVuID0gMTsKLQlteSAkc3RvcF9zdWIgPSBzdWIgeyRydW4gPSAwfTsKLQkkU0lHe0hVUH0gPSAkc3RvcF9zdWI7Ci0JJFNJR3tJTlR9ID0gJHN0b3Bfc3ViOwotCSRTSUd7VEVSTX0gPSAkc3RvcF9zdWI7Ci0KLQlta2RpciAkdG1wZGlyLCAwNzU1OwotCW15ICRwaWRmaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdG1wZGlyLCAiY2lkYWVtb24ucGlkIik7Ci0Jb3BlbihPLCAiPiRwaWRmaWxlIik7IHByaW50IE8gIiQkXG4iOyBjbG9zZSBPOwotCi0Jd2hpbGUgKCRydW4pIHsKLQkJbXkgJGVudCA9IHBvcF9xdWV1ZTsKLQkJaWYgKCRlbnQpIHsKLQkJCW15ICgkZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ldykgPSBAJGVudDsKLQotCQkJJGVudCA9ICRyZWNlbnR7JGdpdF9kaXJ9OwotCQkJJHJlY2VudHskZ2l0X2Rpcn0gPSAkZW50ID0gW1tdLCB7fV0gdW5sZXNzICRlbnQ7Ci0JCQlteSAoJHJlY19hcnIsICRyZWNfaGFzaCkgPSBAJGVudDsKLQkJCW5leHQgaWYgJHJlY19oYXNoLT57JG5ld30rKzsKLQkJCXdoaWxlIChAJHJlY19hcnIgPj0gJHJlY2VudF9zaXplKSB7Ci0JCQkJbXkgJHRvX2tpbGwgPSBzaGlmdCBAJHJlY19hcnI7Ci0JCQkJZGVsZXRlICRyZWNfaGFzaC0+eyR0b19raWxsfTsKLQkJCX0KLQkJCXB1c2ggQCRyZWNfYXJyLCAkbmV3OwotCi0JCQlydW5fYnVpbGQgJGdpdF9kaXIsICRyZWYsICRvbGQsICRuZXc7Ci0JCX0gZWxzZSB7Ci0JCQlzbGVlcCAkc2Nhbl9kZWxheTsKLQkJfQotCX0KLQotCXVubGluayAkcGlkZmlsZTsKLX0KLQotJGRlYnVnX2ZsYWcgPSAwOwotR2V0T3B0aW9ucygKLQknZGVidWd8ZCcgPT4gXCRkZWJ1Z19mbGFnLAotCSdzbXRwLXVzZXI9cycgPT4gXCRleF91c2VyLAotKSBvciBkaWUgInVzYWdlOiAkMCBbLS1kZWJ1Z10gWy0tc210cC11c2VyPXVzZXJdXG4iOwotCi0kZXhfcGFzcyA9IGlucHV0X25vZWNobygiJGV4X3VzZXIgU01UUCBwYXNzd29yZDogIikKLQlpZiAoJGV4X3VzZXIgJiYgISRleF9wYXNzKTsKLQotaWYgKCRkZWJ1Z19mbGFnKSB7Ci0JZGFlbW9uX2xvb3A7Ci0JZXhpdCAwOwotfQotCi1teSAkZGFlbW9uID0gZm9yaygpOwotaWYgKCFkZWZpbmVkICRkYWVtb24pIHsKLQlkaWUgImNhbm5vdCBmb3JrIGRhZW1vbjogJCEiOwotfSBlbHNpZiAoMCA9PSAkZGFlbW9uKSB7Ci0JY2xvc2UgU1RESU47b3BlbihTVERJTiwgJy9kZXYvbnVsbCcpOwotCWNsb3NlIFNURE9VVDtvcGVuKFNURE9VVCwgJz4vZGV2L251bGwnKTsKLQljbG9zZSBTVERFUlI7b3BlbihTVERFUlIsICc+L2Rldi9udWxsJyk7Ci0JZGFlbW9uX2xvb3A7Ci0JZXhpdCAwOwotfSBlbHNlIHsKLQlwcmludCAiRGFlbW9uICRkYWVtb24gcnVubmluZyBpbiB0aGUgYmFja2dyb3VuZC5cbiI7Ci19CmRpZmYgLS1naXQgYS9jb250cmliL2NvbnRpbnVvdXMvcG9zdC1yZWNlaXZlLWNpbm90aWZ5IGIvY29udHJpYi9jb250aW51b3VzL3Bvc3QtcmVjZWl2ZS1jaW5vdGlmeQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhmNWE2MC4uMDAwMDAwMAotLS0gYS9jb250cmliL2NvbnRpbnVvdXMvcG9zdC1yZWNlaXZlLWNpbm90aWZ5CisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLSMhL3Vzci9iaW4vcGVybAotIwotIyBBIGhvb2sgdGhhdCBub3RpZmllcyBpdHMgY29tcGFuaW9uIGNpZGFlbW9uIHRocm91Z2ggYSBzaW1wbGUKLSMgcXVldWUgZmlsZSB0aGF0IGEgcmVmIGhhcyBiZWVuIHVwZGF0ZWQgdmlhIGEgcHVzaCAoYWN0dWFsbHkKLSMgYnkgYSByZWNlaXZlLXBhY2sgcnVubmluZyBvbiB0aGUgc2VydmVyKS4KLSMKLSMgU2VlIGNpZGFlbW9uIGZvciBwZXItcmVwb3NpdG9yeSBjb25maWd1cmF0aW9uIGRldGFpbHMuCi0jCi0jIFRvIHVzZSB0aGlzIGhvb2ssIGFkZCBpdCBhcyB0aGUgcG9zdC1yZWNlaXZlIGhvb2ssIG1ha2UgaXQKLSMgZXhlY3V0YWJsZSwgYW5kIHNldCBpdHMgY29uZmlndXJhdGlvbiBvcHRpb25zLgotIwotCi1sb2NhbCAkRU5We1BBVEh9ID0gJy9vcHQvZ2l0L2Jpbic7Ci0KLXVzZSBzdHJpY3Q7Ci11c2Ugd2FybmluZ3M7Ci11c2UgRmlsZTo6U3BlYzsKLXVzZSBTdG9yYWJsZSBxdyhyZXRyaWV2ZSBuc3RvcmUpOwotdXNlIEZjbnRsICc6ZmxvY2snOwotCi1teSAkZ2l0X2RpciA9IEZpbGU6OlNwZWMtPnJlbDJhYnMoJEVOVntHSVRfRElSfSk7Ci1teSAkcXVldWVfbmFtZSA9IGBnaXQgY29uZmlnIC0tZ2V0IGJ1aWxkZXIucXVldWVgO2Nob3AgJHF1ZXVlX25hbWU7Ci0kcXVldWVfbmFtZSA9fiBtLF4oW15cc10rKSQsOyAkcXVldWVfbmFtZSA9ICQxOyAjIHVudGFpbnQKLXVubGVzcyAoJHF1ZXVlX25hbWUpIHsKLQkxIHdoaWxlIDxTVERJTj47Ci0JcHJpbnQgU1RERVJSICJcbmVycm9yOiBidWlsZGVyLnF1ZXVlIG5vdCBzZXQuICBOb3QgZW5xdWVpbmcuXG5cbiI7Ci0JZXhpdDsKLX0KLW15ICRxdWV1ZV9sb2NrID0gIiRxdWV1ZV9uYW1lLmxvY2siOwotCi1teSBAc2tpcDsKLW9wZW4gUywgImdpdCBjb25maWcgLS1nZXQtYWxsIGJ1aWxkZXIuc2tpcHwiOwotd2hpbGUgKDxTPikgewotCWNob3A7Ci0JcHVzaCBAc2tpcCwgJF87Ci19Ci1jbG9zZSBTOwotCi1teSBAbmV3X2JyYW5jaF9iYXNlOwotb3BlbiBTLCAiZ2l0IGNvbmZpZyAtLWdldC1hbGwgYnVpbGRlci5uZXdCcmFuY2hCYXNlfCI7Ci13aGlsZSAoPFM+KSB7Ci0JY2hvcDsKLQlwdXNoIEBuZXdfYnJhbmNoX2Jhc2UsICRfOwotfQotY2xvc2UgUzsKLQotc3ViIHNraXAgKCQpCi17Ci0JbG9jYWwgJF8gPSBzaGlmdDsKLQlmb3JlYWNoIG15ICRwIChAc2tpcCkgewotCQlyZXR1cm4gMSBpZiAvXiRwLzsKLQl9Ci0JMDsKLX0KLQotb3BlbiBMT0NLLCAiPiRxdWV1ZV9sb2NrIiBvciBkaWUgIkNhbid0IG9wZW4gJHF1ZXVlX2xvY2s6ICQhIjsKLWZsb2NrIExPQ0ssIExPQ0tfRVg7Ci0KLW15ICRxdWV1ZSA9IC1mICRxdWV1ZV9uYW1lID8gcmV0cmlldmUgJHF1ZXVlX25hbWUgOiBbXTsKLW15ICVleGlzdGluZzsKLWZvcmVhY2ggbXkgJHIgKEAkcXVldWUpIHsKLQlteSAoJGdkLCAkcmVmKSA9IEAkcjsKLQkkZXhpc3Rpbmd7JGdkfXskcmVmfSA9ICRyOwotfQotCi1teSBAbmV3X2JyYW5jaF9jb21taXRzOwotbXkgJGxvYWRlZF9uZXdfYnJhbmNoX2NvbW1pdHMgPSAwOwotCi13aGlsZSAoPFNURElOPikgewotCWNob3A7Ci0JbXkgKCRvbGQsICRuZXcsICRyZWYpID0gc3BsaXQgLyAvLCAkXywgMzsKLQotCW5leHQgaWYgJG9sZCBlcSAkbmV3OwotCW5leHQgaWYgJG5ldyA9fiAvXjB7NDB9JC87Ci0JbmV4dCBpZiBza2lwICRyZWY7Ci0KLQlteSAkciA9ICRleGlzdGluZ3skZ2l0X2Rpcn17JHJlZn07Ci0JaWYgKCRyKSB7Ci0JCSRyLT5bM10gPSAkbmV3OwotCX0gZWxzZSB7Ci0JCWlmICgkb2xkID1+IC9eMHs0MH0kLykgewotCQkJaWYgKCEkbG9hZGVkX25ld19icmFuY2hfY29tbWl0cyAmJiBAbmV3X2JyYW5jaF9iYXNlKSB7Ci0JCQkJb3BlbiBNLCctfCcsJ2dpdCcsJ3Nob3ctcmVmJyxAbmV3X2JyYW5jaF9iYXNlOwotCQkJCXdoaWxlICg8TT4pIHsKLQkJCQkJKCRfKSA9IHNwbGl0IC8gLywgJF87Ci0JCQkJCXB1c2ggQG5ld19icmFuY2hfY29tbWl0cywgJF87Ci0JCQkJfQotCQkJCWNsb3NlIE07Ci0JCQkJJGxvYWRlZF9uZXdfYnJhbmNoX2NvbW1pdHMgPSAxOwotCQkJfQotCQkJJG9sZCA9IFtAbmV3X2JyYW5jaF9jb21taXRzXTsKLQkJfSBlbHNlIHsKLQkJCSRvbGQgPSBbJG9sZF07Ci0JCX0KLQotCQkkciA9IFskZ2l0X2RpciwgJHJlZiwgJG9sZCwgJG5ld107Ci0JCSRleGlzdGluZ3skZ2l0X2Rpcn17JHJlZn0gPSAkcjsKLQkJcHVzaCBAJHF1ZXVlLCAkcjsKLQl9Ci19Ci1uc3RvcmUgJHF1ZXVlLCAkcXVldWVfbmFtZTsKLQotZmxvY2sgTE9DSywgTE9DS19VTjsKLWNsb3NlIExPQ0s7CmRpZmYgLS1naXQgYS9jb250cmliL2NyZWRlbnRpYWwvb3N4a2V5Y2hhaW4vZ2l0LWNyZWRlbnRpYWwtb3N4a2V5Y2hhaW4uYyBiL2NvbnRyaWIvY3JlZGVudGlhbC9vc3hrZXljaGFpbi9naXQtY3JlZGVudGlhbC1vc3hrZXljaGFpbi5jCmluZGV4IDM5NDAyMDIuLmJjZDNmNTcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY3JlZGVudGlhbC9vc3hrZXljaGFpbi9naXQtY3JlZGVudGlhbC1vc3hrZXljaGFpbi5jCisrKyBiL2NvbnRyaWIvY3JlZGVudGlhbC9vc3hrZXljaGFpbi9naXQtY3JlZGVudGlhbC1vc3hrZXljaGFpbi5jCkBAIC0xMjcsMTAgKzEyNywyMCBAQAogCQkqdisrID0gJ1wwJzsKIAogCQlpZiAoIXN0cmNtcChidWYsICJwcm90b2NvbCIpKSB7Ci0JCQlpZiAoIXN0cmNtcCh2LCAiaHR0cHMiKSkKKwkJCWlmICghc3RyY21wKHYsICJpbWFwIikpCisJCQkJcHJvdG9jb2wgPSBrU2VjUHJvdG9jb2xUeXBlSU1BUDsKKwkJCWVsc2UgaWYgKCFzdHJjbXAodiwgImltYXBzIikpCisJCQkJcHJvdG9jb2wgPSBrU2VjUHJvdG9jb2xUeXBlSU1BUFM7CisJCQllbHNlIGlmICghc3RyY21wKHYsICJmdHAiKSkKKwkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVGVFA7CisJCQllbHNlIGlmICghc3RyY21wKHYsICJmdHBzIikpCisJCQkJcHJvdG9jb2wgPSBrU2VjUHJvdG9jb2xUeXBlRlRQUzsKKwkJCWVsc2UgaWYgKCFzdHJjbXAodiwgImh0dHBzIikpCiAJCQkJcHJvdG9jb2wgPSBrU2VjUHJvdG9jb2xUeXBlSFRUUFM7CiAJCQllbHNlIGlmICghc3RyY21wKHYsICJodHRwIikpCiAJCQkJcHJvdG9jb2wgPSBrU2VjUHJvdG9jb2xUeXBlSFRUUDsKKwkJCWVsc2UgaWYgKCFzdHJjbXAodiwgInNtdHAiKSkKKwkJCQlwcm90b2NvbCA9IGtTZWNQcm90b2NvbFR5cGVTTVRQOwogCQkJZWxzZSAvKiB3ZSBkb24ndCB5ZXQgaGFuZGxlIG90aGVyIHByb3RvY29scyAqLwogCQkJCWV4aXQoMCk7CiAJCX0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaGctdG8tZ2l0L2hnLXRvLWdpdC5weSBiL2NvbnRyaWIvaGctdG8tZ2l0L2hnLXRvLWdpdC5weQppbmRleCAyMzI2MjVhLi42MGRlYzg2IDEwMDc1NQotLS0gYS9jb250cmliL2hnLXRvLWdpdC9oZy10by1naXQucHkKKysrIGIvY29udHJpYi9oZy10by1naXQvaGctdG8tZ2l0LnB5CkBAIC0yMjUsNyArMjI1LDcgQEAKICAgICBvcy5zeXN0ZW0oJ2dpdCBscy1maWxlcyAteCAuaGcgLS1kZWxldGVkIHwgZ2l0IHVwZGF0ZS1pbmRleCAtLXJlbW92ZSAtLXN0ZGluJykKIAogICAgICMgY29tbWl0Ci0gICAgb3Muc3lzdGVtKGdldGdpdGVudih1c2VyLCBkYXRlKSArICdnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLWEgLUYgJXMnICUgZmlsZWNvbW1lbnQpCisgICAgb3Muc3lzdGVtKGdldGdpdGVudih1c2VyLCBkYXRlKSArICdnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLS1hbGxvdy1lbXB0eS1tZXNzYWdlIC1hIC1GICVzJyAlIGZpbGVjb21tZW50KQogICAgIG9zLnVubGluayhmaWxlY29tbWVudCkKIAogICAgICMgdGFnCmRpZmYgLS1naXQgYS9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkwNDM5NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRQpAQCAtMCwwICsxLDQ4NiBAQAorCQkJICAgZ2l0LW11bHRpbWFpbAorCQkJICAgPT09PT09PT09PT09PQorCitnaXQtbXVsdGltYWlsIGlzIGEgdG9vbCBmb3Igc2VuZGluZyBub3RpZmljYXRpb24gZW1haWxzIG9uIHB1c2hlcyB0byBhCitHaXQgcmVwb3NpdG9yeS4gIEl0IGluY2x1ZGVzIGEgUHl0aG9uIG1vZHVsZSBjYWxsZWQgZ2l0X211bHRpbWFpbC5weSwKK3doaWNoIGNhbiBlaXRoZXIgYmUgdXNlZCBhcyBhIGhvb2sgc2NyaXB0IGRpcmVjdGx5IG9yIGNhbiBiZSBpbXBvcnRlZAorYXMgYSBQeXRob24gbW9kdWxlIGludG8gYW5vdGhlciBzY3JpcHQuCisKK2dpdC1tdWx0aW1haWwgaXMgZGVyaXZlZCBmcm9tIHRoZSBHaXQgcHJvamVjdCdzIG9sZAorY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWwsIGFuZCBpcyBtb3N0bHkgY29tcGF0aWJsZSB3aXRoIHRoYXQKK3NjcmlwdC4gIFNlZSBSRUFETUUubWlncmF0ZS1mcm9tLXBvc3QtcmVjZWl2ZS1lbWFpbCBmb3IgZGV0YWlscyBhYm91dAordGhlIGRpZmZlcmVuY2VzIGFuZCBmb3IgaG93IHRvIG1pZ3JhdGUgZnJvbSBwb3N0LXJlY2VpdmUtZW1haWwgdG8KK2dpdC1tdWx0aW1haWwuCisKK2dpdC1tdWx0aW1haWwsIGxpa2UgdGhlIHJlc3Qgb2YgdGhlIEdpdCBwcm9qZWN0LCBpcyBsaWNlbnNlZCB1bmRlcgorR1BMdjIgKHNlZSB0aGUgQ09QWUlORyBmaWxlIGZvciBkZXRhaWxzKS4KKworUGxlYXNlIG5vdGU6IGFsdGhvdWdoLCBhcyBhIGNvbnZlbmllbmNlLCBnaXQtbXVsdGltYWlsIG1heSBiZQorZGlzdHJpYnV0ZWQgYWxvbmcgd2l0aCB0aGUgbWFpbiBHaXQgcHJvamVjdCwgZGV2ZWxvcG1lbnQgb2YKK2dpdC1tdWx0aW1haWwgdGFrZXMgcGxhY2UgaW4gaXRzIG93biwgc2VwYXJhdGUgcHJvamVjdC4gIFNlZSBzZWN0aW9uCisiR2V0dGluZyBpbnZvbHZlZCIgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKworQnkgZGVmYXVsdCwgZm9yIGVhY2ggcHVzaCByZWNlaXZlZCBieSB0aGUgcmVwb3NpdG9yeSwgZ2l0LW11bHRpbWFpbDoKKworMS4gT3V0cHV0cyBvbmUgZW1haWwgc3VtbWFyaXppbmcgZWFjaCByZWZlcmVuY2UgdGhhdCB3YXMgY2hhbmdlZC4KKyAgIFRoZXNlICJyZWZlcmVuY2UgY2hhbmdlIiAoY2FsbGVkICJyZWZjaGFuZ2UiIGJlbG93KSBlbWFpbHMgZGVzY3JpYmUKKyAgIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZSAoZS5nLiwgd2FzIHRoZSByZWZlcmVuY2UgY3JlYXRlZCwgZGVsZXRlZCwKKyAgIGZhc3QtZm9yd2FyZGVkLCBldGMuKSBhbmQgaW5jbHVkZSBhIG9uZS1saW5lIHN1bW1hcnkgb2YgZWFjaCBjb21taXQKKyAgIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSByZWZlcmVuY2UuCisKKzIuIE91dHB1dHMgb25lIGVtYWlsIGZvciBlYWNoIG5ldyBjb21taXQgdGhhdCB3YXMgaW50cm9kdWNlZCBieSB0aGUKKyAgIHJlZmVyZW5jZSBjaGFuZ2UuICBUaGVzZSAiY29tbWl0IiBlbWFpbHMgaW5jbHVkZSBhIGxpc3Qgb2YgdGhlCisgICBmaWxlcyBjaGFuZ2VkIGJ5IHRoZSBjb21taXQsIGZvbGxvd2VkIGJ5IHRoZSBkaWZmcyBvZiBmaWxlcworICAgbW9kaWZpZWQgYnkgdGhlIGNvbW1pdC4gIFRoZSBjb21taXQgZW1haWxzIGFyZSB0aHJlYWRlZCB0byB0aGUKKyAgIGNvcnJlc3BvbmRpbmcgcmVmZXJlbmNlIGNoYW5nZSBlbWFpbCB2aWEgIkluLVJlcGx5LVRvIi4gIFRoaXMgc3R5bGUKKyAgIChzaW1pbGFyIHRvIHRoZSAiZ2l0IGZvcm1hdC1wYXRjaCIgc3R5bGUgdXNlZCBvbiB0aGUgR2l0IG1haWxpbmcKKyAgIGxpc3QpIG1ha2VzIGl0IGVhc3kgdG8gc2NhbiB0aHJvdWdoIHRoZSBlbWFpbHMsIGp1bXAgdG8gcGF0Y2hlcworICAgdGhhdCBuZWVkIGZ1cnRoZXIgYXR0ZW50aW9uLCBhbmQgd3JpdGUgY29tbWVudHMgYWJvdXQgc3BlY2lmaWMKKyAgIGNvbW1pdHMuICBDb21taXRzIGFyZSBoYW5kbGVkIGluIHJldmVyc2UgdG9wb2xvZ2ljYWwgb3JkZXIgKGkuZS4sCisgICBwYXJlbnRzIHNob3duIGJlZm9yZSBjaGlsZHJlbikuICBGb3IgZXhhbXBsZSwKKworICAgW2dpdF0gYnJhbmNoIG1hc3RlciB1cGRhdGVkCisgICArIFtnaXRdIDAxLzA4OiBkb2M6IGZpeCB4cmVmIGxpbmsgZnJvbSBhcGkgZG9jcyB0byBtYW51YWwgcGFnZXMKKyAgICsgW2dpdF0gMDIvMDg6IGFwaS1jcmVkZW50aWFscy50eHQ6IHNob3cgdGhlIGJpZyBwaWN0dXJlIGZpcnN0CisgICArIFtnaXRdIDAzLzA4OiBhcGktY3JlZGVudGlhbHMudHh0OiBtZW50aW9uIGNyZWRlbnRpYWwuaGVscGVyIGV4cGxpY2l0bHkKKyAgICsgW2dpdF0gMDQvMDg6IGFwaS1jcmVkZW50aWFscy50eHQ6IGFkZCAic2VlIGFsc28iIHNlY3Rpb24KKyAgICsgW2dpdF0gMDUvMDg6IHQzNTEwIChjaGVycnktcGljay1zZXF1ZW5jZSk6IGFkZCBtaXNzaW5nICcmJicKKyAgICsgW2dpdF0gMDYvMDg6IE1lcmdlIGJyYW5jaCAncnIvbWFpbnQtdDM1MTAtY2FzY2FkZS1maXgnCisgICArIFtnaXRdIDA3LzA4OiBNZXJnZSBicmFuY2ggJ21tL2FwaS1jcmVkZW50aWFscy1kb2MnCisgICArIFtnaXRdIDA4LzA4OiBHaXQgMS43LjExLXJjMgorCisgICBFYWNoIGNvbW1pdCBhcHBlYXJzIGluIGV4YWN0bHkgb25lIGNvbW1pdCBlbWFpbCwgdGhlIGZpcnN0IHRpbWUKKyAgIHRoYXQgaXQgaXMgcHVzaGVkIHRvIHRoZSByZXBvc2l0b3J5LiAgSWYgYSBjb21taXQgaXMgbGF0ZXIgbWVyZ2VkCisgICBpbnRvIGFub3RoZXIgYnJhbmNoLCB0aGVuIGEgb25lLWxpbmUgc3VtbWFyeSBvZiB0aGUgY29tbWl0IGlzCisgICBpbmNsdWRlZCBpbiB0aGUgcmVmZXJlbmNlIGNoYW5nZSBlbWFpbCAoYXMgdXN1YWwpLCBidXQgbm8KKyAgIGFkZGl0aW9uYWwgY29tbWl0IGVtYWlsIGlzIGdlbmVyYXRlZC4KKworICAgQnkgZGVmYXVsdCwgcmVmZXJlbmNlIGNoYW5nZSBlbWFpbHMgaGF2ZSB0aGVpciAiUmVwbHktVG8iIGZpZWxkIHNldAorICAgdG8gdGhlIHBlcnNvbiB3aG8gcHVzaGVkIHRoZSBjaGFuZ2UsIGFuZCBjb21taXQgZW1haWxzIGhhdmUgdGhlaXIKKyAgICJSZXBseS1UbyIgZmllbGQgc2V0IHRvIHRoZSBhdXRob3Igb2YgdGhlIGNvbW1pdC4KKworMy4gT3V0cHV0IG9uZSAiYW5ub3VuY2UiIG1haWwgZm9yIGVhY2ggbmV3IGFubm90YXRlZCB0YWcsIGluY2x1ZGluZworICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhZyBhbmQgb3B0aW9uYWxseSBhIHNob3J0bG9nIGRlc2NyaWJpbmcgdGhlCisgICBjaGFuZ2VzIHNpbmNlIHRoZSBwcmV2aW91cyB0YWcuICBTdWNoIGVtYWlscyBtaWdodCBiZSB1c2VmdWwgaWYgeW91CisgICB1c2UgYW5ub3RhdGVkIHRhZ3MgdG8gbWFyayByZWxlYXNlcyBvZiB5b3VyIHByb2plY3QuCisKKworUmVxdWlyZW1lbnRzCistLS0tLS0tLS0tLS0KKworKiBQeXRob24gMi54LCB2ZXJzaW9uIDIuNCBvciBsYXRlci4gIE5vIG5vbi1zdGFuZGFyZCBQeXRob24gbW9kdWxlcworICBhcmUgcmVxdWlyZWQuICBnaXQtbXVsdGltYWlsIGRvZXMgKm5vdCogY3VycmVudGx5IHdvcmsgd2l0aCBQeXRob24KKyAgMy54LgorCisgIFRoZSBleGFtcGxlIHNjcmlwdHMgaW52b2tlIFB5dGhvbiB1c2luZyB0aGUgZm9sbG93aW5nIHNoZWJhbmcgbGluZQorICAoZm9sbG93aW5nIFBFUCAzOTQgWzFdKToKKworICAgICAgIyEgL3Vzci9iaW4vZW52IHB5dGhvbjIKKworICBJZiB5b3VyIHN5c3RlbSdzIFB5dGhvbjIgaW50ZXJwcmV0ZXIgaXMgbm90IGluIHlvdXIgUEFUSCBvciBpcyBub3QKKyAgY2FsbGVkICJweXRob24yIiwgeW91IGNhbiBjaGFuZ2UgdGhlIGxpbmVzIGFjY29yZGluZ2x5LiAgT3IgeW91IGNhbgorICBpbnZva2UgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBleHBsaWNpdGx5LCBmb3IgZXhhbXBsZSB2aWEgYSB0aW55CisgIHNoZWxsIHNjcmlwdCBsaWtlCisKKyAgICAgICMhIC9iaW4vc2gKKyAgICAgIC91c3IvbG9jYWwvYmluL3B5dGhvbiAvcGF0aC90by9naXRfbXVsdGltYWlsLnB5ICIkQCIKKworKiBUaGUgImdpdCIgY29tbWFuZCBtdXN0IGJlIGluIHlvdXIgUEFUSC4gIGdpdC1tdWx0aW1haWwgaXMga25vd24gdG8KKyAgd29yayB3aXRoIEdpdCB2ZXJzaW9ucyBiYWNrIHRvIDEuNy4xLiAgKEVhcmxpZXIgdmVyc2lvbnMgaGF2ZSBub3QKKyAgYmVlbiB0ZXN0ZWQ7IGlmIHlvdSBkbyBzbywgcGxlYXNlIHJlcG9ydCB5b3VyIHJlc3VsdHMuKQorCisqIFRvIHNlbmQgZW1haWxzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIGEgc3RhbmRhcmQgc2VuZG1haWwKKyAgcHJvZ3JhbSBtdXN0IGJlIGxvY2F0ZWQgYXQgJy91c3Ivc2Jpbi9zZW5kbWFpbCcgYW5kIGNvbmZpZ3VyZWQKKyAgY29ycmVjdGx5IHRvIHNlbmQgZW1haWxzLiAgSWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIHNlZSB0aGUKKyAgbXVsdGltYWlsaG9vay5tYWlsZXIgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBiZWxvdyBmb3IgaG93IHRvCisgIGNvbmZpZ3VyZSBnaXQtbXVsdGltYWlsIHRvIHNlbmQgZW1haWxzIHZpYSBhbiBTTVRQIHNlcnZlci4KKworCitJbnZvY2F0aW9uCistLS0tLS0tLS0tCisKK2dpdF9tdWx0aW1haWwucHkgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBhcyBhICJwb3N0LXJlY2VpdmUiIGhvb2sgaW4gYQorR2l0IHJlcG9zaXRvcnkgKHNlZSBnaXRob29rcyg1KSkuICBMaW5rIG9yIGNvcHkgaXQgdG8KKyRHSVRfRElSL2hvb2tzL3Bvc3QtcmVjZWl2ZSB3aXRoaW4gdGhlIHJlcG9zaXRvcnkgZm9yIHdoaWNoIGVtYWlsCitub3RpZmljYXRpb25zIGFyZSBkZXNpcmVkLiAgVXN1YWxseSBpdCBzaG91bGQgYmUgaW5zdGFsbGVkIG9uIHRoZQorY2VudHJhbCByZXBvc2l0b3J5IGZvciBhIHByb2plY3QsIHRvIHdoaWNoIGFsbCBjb21taXRzIGFyZSBldmVudHVhbGx5CitwdXNoZWQuCisKK0ZvciB1c2Ugb24gcHJlLXYxLjUuMSBHaXQgc2VydmVycywgZ2l0X211bHRpbWFpbC5weSBjYW4gYWxzbyB3b3JrIGFzCithbiAidXBkYXRlIiBob29rLCB0YWtpbmcgaXRzIGFyZ3VtZW50cyBvbiB0aGUgY29tbWFuZCBsaW5lLiAgVG8gdXNlCit0aGlzIHNjcmlwdCBpbiB0aGlzIG1hbm5lciwgbGluayBvciBjb3B5IGl0IHRvICRHSVRfRElSL2hvb2tzL3VwZGF0ZS4KK1BsZWFzZSBub3RlIHRoYXQgdGhlIHNjcmlwdCBpcyBub3QgY29tcGxldGVseSByZWxpYWJsZSBpbiB0aGlzIG1vZGUKK1syXS4KKworQWx0ZXJuYXRpdmVseSwgZ2l0X211bHRpbWFpbC5weSBjYW4gYmUgaW1wb3J0ZWQgYXMgYSBQeXRob24gbW9kdWxlCitpbnRvIHlvdXIgb3duIFB5dGhvbiBwb3N0LXJlY2VpdmUgc2NyaXB0LiAgVGhpcyBtZXRob2QgaXMgYSBiaXQgbW9yZQord29yaywgYnV0IGFsbG93cyB0aGUgYmVoYXZpb3Igb2YgdGhlIGhvb2sgdG8gYmUgY3VzdG9taXplZCB1c2luZworYXJiaXRyYXJ5IFB5dGhvbiBjb2RlLiAgRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGEgY3VzdG9tIGVudmlyb25tZW50CisocGVyaGFwcyBpbmhlcml0aW5nIGZyb20gR2VuZXJpY0Vudmlyb25tZW50IG9yIEdpdG9saXRlRW52aXJvbm1lbnQpIHRvCisKKyogY2hhbmdlIGhvdyB0aGUgdXNlciB3aG8gZGlkIHRoZSBwdXNoIGlzIGRldGVybWluZWQKKworKiByZWFkIHVzZXJzJyBlbWFpbCBhZGRyZXNzZXMgZnJvbSBhbiBMREFQIHNlcnZlciBvciBmcm9tIGEgZGF0YWJhc2UKKworKiBkZWNpZGUgd2hpY2ggdXNlcnMgc2hvdWxkIGJlIG5vdGlmaWVkIGFib3V0IHdoaWNoIGNvbW1pdHMgYmFzZWQgb24KKyAgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb21taXRzIChlLmcuLCBmb3IgdXNlcnMgd2hvIHdhbnQgdG8gYmUgbm90aWZpZWQKKyAgb25seSBhYm91dCBjaGFuZ2VzIGFmZmVjdGluZyBwYXJ0aWN1bGFyIGZpbGVzIG9yIHN1YmRpcmVjdG9yaWVzKQorCitPciB5b3UgY2FuIGNoYW5nZSBob3cgZW1haWxzIGFyZSBzZW50IGJ5IHdyaXRpbmcgeW91ciBvd24gTWFpbGVyCitjbGFzcy4gIFRoZSAicG9zdC1yZWNlaXZlIiBzY3JpcHQgaW4gdGhpcyBkaXJlY3RvcnkgZGVtb25zdHJhdGVzIGhvdwordG8gdXNlIGdpdF9tdWx0aW1haWwucHkgYXMgYSBQeXRob24gbW9kdWxlLiAgKElmIHlvdSBtYWtlIGludGVyZXN0aW5nCitjaGFuZ2VzIG9mIHRoaXMgdHlwZSwgcGxlYXNlIGNvbnNpZGVyIHNoYXJpbmcgdGhlbSB3aXRoIHRoZQorY29tbXVuaXR5LikKKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisKK0J5IGRlZmF1bHQsIGdpdC1tdWx0aW1haWwgbW9zdGx5IHRha2VzIGl0cyBjb25maWd1cmF0aW9uIGZyb20gdGhlCitmb2xsb3dpbmcgImdpdCBjb25maWciIHNldHRpbmdzOgorCittdWx0aW1haWxob29rLmVudmlyb25tZW50CisKKyAgICBUaGlzIGRlc2NyaWJlcyB0aGUgZ2VuZXJhbCBlbnZpcm9ubWVudCBvZiB0aGUgcmVwb3NpdG9yeS4KKyAgICBDdXJyZW50bHkgc3VwcG9ydGVkIHZhbHVlczoKKworICAgICJnZW5lcmljIiAtLSB0aGUgdXNlcm5hbWUgb2YgdGhlIHB1c2hlciBpcyByZWFkIGZyb20gJFVTRVIgYW5kIHRoZQorICAgICAgICByZXBvc2l0b3J5IG5hbWUgaXMgZGVyaXZlZCBmcm9tIHRoZSByZXBvc2l0b3J5J3MgcGF0aC4KKworICAgICJnaXRvbGl0ZSIgLS0gdGhlIHVzZXJuYW1lIG9mIHRoZSBwdXNoZXIgaXMgcmVhZCBmcm9tICRHTF9VU0VSIGFuZAorICAgICAgICB0aGUgcmVwb3NpdG9yeSBuYW1lIGZyb20gJEdMX1JFUE8uCisKKyAgICBJZiBuZWl0aGVyIG9mIHRoZXNlIGVudmlyb25tZW50cyBpcyBzdWl0YWJsZSBmb3IgeW91ciBzZXR1cCwgdGhlbgorICAgIHlvdSBjYW4gaW1wbGVtZW50IGEgUHl0aG9uIGNsYXNzIHRoYXQgaW5oZXJpdHMgZnJvbSBFbnZpcm9ubWVudAorICAgIGFuZCBpbnN0YW50aWF0ZSBpdCB2aWEgYSBzY3JpcHQgdGhhdCBsb29rcyBsaWtlIHRoZSBleGFtcGxlCisgICAgcG9zdC1yZWNlaXZlIHNjcmlwdC4KKworICAgIFRoZSBlbnZpcm9ubWVudCB2YWx1ZSBjYW4gYmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgdXNpbmcKKyAgICB0aGUgLS1lbnZpcm9ubWVudCBvcHRpb24uICBJZiBpdCBpcyBub3Qgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kCisgICAgbGluZSBvciBieSBtdWx0aW1haWxob29rLmVudmlyb25tZW50LCB0aGVuIGl0IGRlZmF1bHRzIHRvCisgICAgImdpdG9saXRlIiBpZiB0aGUgZW52aXJvbm1lbnQgY29udGFpbnMgdmFyaWFibGVzICRHTF9VU0VSIGFuZAorICAgICRHTF9SRVBPOyBvdGhlcndpc2UgImdlbmVyaWMiLgorCittdWx0aW1haWxob29rLnJlcG9OYW1lCisKKyAgICBBIHNob3J0IG5hbWUgb2YgdGhpcyBHaXQgcmVwb3NpdG9yeSwgdG8gYmUgdXNlZCBpbiB2YXJpb3VzIHBsYWNlcworICAgIGluIHRoZSBub3RpZmljYXRpb24gZW1haWwgdGV4dC4gIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSAkR0xfUkVQTworICAgIGZvciBnaXRvbGl0ZSByZXBvc2l0b3JpZXMsIG9yIG90aGVyd2lzZSB0byBkZXJpdmUgdGhpcyB2YWx1ZSBmcm9tCisgICAgdGhlIHJlcG9zaXRvcnkgcGF0aCBuYW1lLgorCittdWx0aW1haWxob29rLm1haWxpbmdsaXN0CisKKyAgICBUaGUgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMgdG8gd2hpY2ggbm90aWZpY2F0aW9uIGVtYWlscyBzaG91bGQgYmUKKyAgICBzZW50LCBhcyBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gIFRoaXMKKyAgICBjb25maWd1cmF0aW9uIG9wdGlvbiBjYW4gYmUgbXVsdGl2YWx1ZWQuICBMZWF2ZSBpdCB1bnNldCBvciBzZXQgaXQKKyAgICB0byB0aGUgZW1wdHkgc3RyaW5nIHRvIG5vdCBzZW5kIGVtYWlscyBieSBkZWZhdWx0LiAgVGhlIG5leHQgZmV3CisgICAgc2V0dGluZ3MgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIHNwZWNpZmljIGFkZHJlc3MgbGlzdHMgZm9yCisgICAgc3BlY2lmaWMgdHlwZXMgb2Ygbm90aWZpY2F0aW9uIGVtYWlsLgorCittdWx0aW1haWxob29rLnJlZmNoYW5nZUxpc3QKKworICAgIFRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBzdW1tYXJ5IGVtYWlscyBhYm91dAorICAgIHJlZmVyZW5jZSBjaGFuZ2VzIHNob3VsZCBiZSBzZW50LCBhcyBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzZXMKKyAgICBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgVGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiBjYW4gYmUKKyAgICBtdWx0aXZhbHVlZC4gIFRoZSBkZWZhdWx0IGlzIHRoZSB2YWx1ZSBpbgorICAgIG11bHRpbWFpbGhvb2subWFpbGluZ2xpc3QuICBTZXQgdGhpcyB2YWx1ZSB0byB0aGUgZW1wdHkgc3RyaW5nIHRvCisgICAgcHJldmVudCByZWZlcmVuY2UgY2hhbmdlIGVtYWlscyBmcm9tIGJlaW5nIHNlbnQuCisKK211bHRpbWFpbGhvb2suYW5ub3VuY2VMaXN0CisKKyAgICBUaGUgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMgdG8gd2hpY2ggZW1haWxzIGFib3V0IG5ldyBhbm5vdGF0ZWQKKyAgICB0YWdzIHNob3VsZCBiZSBzZW50LCBhcyBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzZXMgc2VwYXJhdGVkIGJ5CisgICAgY29tbWFzLiAgVGhpcyBjb25maWd1cmF0aW9uIG9wdGlvbiBjYW4gYmUgbXVsdGl2YWx1ZWQuICBUaGUKKyAgICBkZWZhdWx0IGlzIHRoZSB2YWx1ZSBpbiBtdWx0aW1haWxob29rLnJlZmNoYW5nZWxpc3Qgb3IKKyAgICBtdWx0aW1haWxob29rLm1haWxpbmdsaXN0LiAgU2V0IHRoaXMgdmFsdWUgdG8gdGhlIGVtcHR5IHN0cmluZyB0bworICAgIHByZXZlbnQgYW5ub3RhdGVkIHRhZyBhbm5vdW5jZW1lbnQgZW1haWxzIGZyb20gYmVpbmcgc2VudC4KKworbXVsdGltYWlsaG9vay5jb21taXRMaXN0CisKKyAgICBUaGUgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMgdG8gd2hpY2ggZW1haWxzIGFib3V0IGluZGl2aWR1YWwgbmV3CisgICAgY29tbWl0cyBzaG91bGQgYmUgc2VudCwgYXMgUkZDIDI4MjIgZW1haWwgYWRkcmVzc2VzIHNlcGFyYXRlZCBieQorICAgIGNvbW1hcy4gIFRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24gY2FuIGJlIG11bHRpdmFsdWVkLiAgVGhlCisgICAgZGVmYXVsdCBpcyB0aGUgdmFsdWUgaW4gbXVsdGltYWlsaG9vay5tYWlsaW5nbGlzdC4gIFNldCB0aGlzIHZhbHVlCisgICAgdG8gdGhlIGVtcHR5IHN0cmluZyB0byBwcmV2ZW50IG5vdGlmaWNhdGlvbiBlbWFpbHMgYWJvdXQKKyAgICBpbmRpdmlkdWFsIGNvbW1pdHMgZnJvbSBiZWluZyBzZW50LgorCittdWx0aW1haWxob29rLmFubm91bmNlU2hvcnRsb2cKKworICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byB0cnVlLCB0aGVuIGVtYWlscyBhYm91dCBjaGFuZ2VzIHRvCisgICAgYW5ub3RhdGVkIHRhZ3MgaW5jbHVkZSBhIHNob3J0bG9nIG9mIGNoYW5nZXMgc2luY2UgdGhlIHByZXZpb3VzCisgICAgdGFnLiAgVGhpcyBjYW4gYmUgdXNlZnVsIGlmIHRoZSBhbm5vdGF0ZWQgdGFncyByZXByZXNlbnQgcmVsZWFzZXM7CisgICAgdGhlbiB0aGUgc2hvcnRsb2cgd2lsbCBiZSBhIGtpbmQgb2Ygcm91Z2ggc3VtbWFyeSBvZiB3aGF0IGhhcworICAgIGhhcHBlbmVkIHNpbmNlIHRoZSBsYXN0IHJlbGVhc2UuICBCdXQgaWYgeW91ciB0YWdnaW5nIHBvbGljeSBpcworICAgIG5vdCBzbyBzdHJhaWdodGZvcndhcmQsIHRoZW4gdGhlIHNob3J0bG9nIG1pZ2h0IGJlIGNvbmZ1c2luZworICAgIHJhdGhlciB0aGFuIHVzZWZ1bC4gIERlZmF1bHQgaXMgZmFsc2UuCisKK211bHRpbWFpbGhvb2sucmVmY2hhbmdlU2hvd0xvZworCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IHRvIHRydWUsIHRoZW4gc3VtbWFyeSBlbWFpbHMgYWJvdXQgcmVmZXJlbmNlCisgICAgY2hhbmdlcyB3aWxsIGluY2x1ZGUgYSBkZXRhaWxlZCBsb2cgb2YgdGhlIGFkZGVkIGNvbW1pdHMgaW4KKyAgICBhZGRpdGlvbiB0byB0aGUgb25lIGxpbmUgc3VtbWFyeS4gIFRoZSBsb2cgaXMgZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcKKyAgICAiZ2l0IGxvZyIgd2l0aCB0aGUgb3B0aW9ucyBzcGVjaWZpZWQgaW4gbXVsdGltYWlsaG9vay5sb2dPcHRzLgorICAgIERlZmF1bHQgaXMgZmFsc2UuCisKK211bHRpbWFpbGhvb2subWFpbGVyCisKKyAgICBUaGlzIG9wdGlvbiBjaGFuZ2VzIHRoZSB3YXkgZW1haWxzIGFyZSBzZW50LiAgQWNjZXB0ZWQgdmFsdWVzIGFyZToKKworICAgIC0gc2VuZG1haWwgKHRoZSBkZWZhdWx0KTogdXNlIHRoZSBjb21tYW5kIC91c3Ivc2Jpbi9zZW5kbWFpbCBvcgorICAgICAgL3Vzci9saWIvc2VuZG1haWwgKG9yIHNlbmRtYWlsQ29tbWFuZCwgaWYgY29uZmlndXJlZCkuICBUaGlzCisgICAgICBtb2RlIGNhbiBiZSBmdXJ0aGVyIGN1c3RvbWl6ZWQgdmlhIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoKKworICAgICAgIG11bHRpbWFpbGhvb2suc2VuZG1haWxDb21tYW5kCisKKyAgICAgICAgICAgVGhlIGNvbW1hbmQgdXNlZCBieSBtYWlsZXIgInNlbmRtYWlsIiB0byBzZW5kIGVtYWlscy4gIFNoZWxsCisgICAgICAgICAgIHF1b3RpbmcgaXMgYWxsb3dlZCBpbiB0aGUgdmFsdWUgb2YgdGhpcyBzZXR0aW5nLCBidXQgcmVtZW1iZXIgdGhhdAorICAgICAgICAgICBHaXQgcmVxdWlyZXMgZG91YmxlLXF1b3RlcyB0byBiZSBlc2NhcGVkOyBlLmcuLAorCisgICAgICAgICAgICAgZ2l0IGNvbmZpZyBtdWx0aW1haWxob29rLnNlbmRtYWlsY29tbWFuZCAnL3Vzci9zYmluL3NlbmRtYWlsIC10IC1GIFwiR2l0IFJlcG9cIicKKworICAgICAgICAgICBEZWZhdWx0IGlzICcvdXNyL3NiaW4vc2VuZG1haWwgLXQnIG9yICcvdXNyL2xpYi9zZW5kbWFpbAorICAgICAgICAgICAtdCcgKGRlcGVuZGluZyBvbiB3aGljaCBmaWxlIGlzIHByZXNlbnQgYW5kIGV4ZWN1dGFibGUpLgorCisgICAgICAgbXVsdGltYWlsaG9vay5lbnZlbG9wZVNlbmRlcgorCisgICAgICAgICAgIElmIHNldCB0aGVuIHBhc3MgdGhpcyB2YWx1ZSB0byBzZW5kbWFpbCB2aWEgdGhlIC1mIG9wdGlvbiB0byBzZXQKKyAgICAgICAgICAgdGhlIGVudmVsb3BlIHNlbmRlciBhZGRyZXNzLgorCisgICAgLSBzbXRwOiB1c2UgUHl0aG9uJ3Mgc210cGxpYi4gIFRoaXMgaXMgdXNlZnVsIHdoZW4gdGhlIHNlbmRtYWlsCisgICAgICBjb21tYW5kIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIHN5c3RlbS4gIFRoaXMgbW9kZSBjYW4gYmUKKyAgICAgIGZ1cnRoZXIgY3VzdG9taXplZCB2aWEgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCisgICAgICAgbXVsdGltYWlsaG9vay5zbXRwU2VydmVyCisKKyAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIFNNVFAgc2VydmVyIHRvIGNvbm5lY3QgdG8uICBUaGUgdmFsdWUgY2FuCisgICAgICAgICAgIGFsc28gaW5jbHVkZSBhIGNvbG9uIGFuZCBhIHBvcnQgbnVtYmVyOyBlLmcuLAorICAgICAgICAgICAibWFpbC5leGFtcGxlLmNvbToyNSIuICBEZWZhdWx0IGlzICdsb2NhbGhvc3QnIHVzaW5nIHBvcnQKKyAgICAgICAgICAgMjUuCisKKyAgICAgICBtdWx0aW1haWxob29rLmVudmVsb3BlU2VuZGVyCisKKyAgICAgICAgICAgVGhlIHNlbmRlciBhZGRyZXNzIHRvIGJlIHBhc3NlZCB0byB0aGUgU01UUCBzZXJ2ZXIuICBJZgorICAgICAgICAgICB1bnNldCwgdGhlbiB0aGUgdmFsdWUgb2YgbXVsdGltYWlsaG9vay5mcm9tIGlzIHVzZWQuCisKK211bHRpbWFpbGhvb2suZnJvbQorCisgICAgSWYgc2V0IHRoZW4gdXNlIHRoaXMgdmFsdWUgaW4gdGhlIEZyb206IGZpZWxkIG9mIGdlbmVyYXRlZCBlbWFpbHMuCisgICAgSWYgdW5zZXQsIHRoZW4gdXNlIHRoZSByZXBvc2l0b3J5J3MgdXNlciBjb25maWd1cmF0aW9uICh1c2VyLm5hbWUKKyAgICBhbmQgdXNlci5lbWFpbCkuICBJZiB1c2VyLmVtYWlsIGlzIGFsc28gdW5zZXQsIHRoZW4gdXNlCisgICAgbXVsdGltYWlsaG9vay5lbnZlbG9wZVNlbmRlci4KKworbXVsdGltYWlsaG9vay5hZG1pbmlzdHJhdG9yCisKKyAgICBUaGUgbmFtZSBhbmQvb3IgZW1haWwgYWRkcmVzcyBvZiB0aGUgYWRtaW5pc3RyYXRvciBvZiB0aGUgR2l0CisgICAgcmVwb3NpdG9yeTsgdXNlZCBpbiBGT09URVJfVEVNUExBVEUuICBEZWZhdWx0IGlzCisgICAgbXVsdGltYWlsaG9vay5lbnZlbG9wZXNlbmRlciBpZiBpdCBpcyBzZXQ7IG90aGVyd2lzZSBhIGdlbmVyaWMKKyAgICBzdHJpbmcgaXMgdXNlZC4KKworbXVsdGltYWlsaG9vay5lbWFpbFByZWZpeAorCisgICAgQWxsIGVtYWlscyBoYXZlIHRoaXMgc3RyaW5nIHByZXBlbmRlZCB0byB0aGVpciBzdWJqZWN0cywgdG8gYWlkCisgICAgZW1haWwgZmlsdGVyaW5nICh0aG91Z2ggZmlsdGVyaW5nIGJhc2VkIG9uIHRoZSBYLUdpdC0qIGVtYWlsCisgICAgaGVhZGVycyBpcyBwcm9iYWJseSBtb3JlIHJvYnVzdCkuICBEZWZhdWx0IGlzIHRoZSBzaG9ydCBuYW1lIG9mCisgICAgdGhlIHJlcG9zaXRvcnkgaW4gc3F1YXJlIGJyYWNrZXRzOyBlLmcuLCAiW215cmVwb10iLgorCittdWx0aW1haWxob29rLmVtYWlsTWF4TGluZXMKKworICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgYm9keSBvZgorICAgIGEgZ2VuZXJhdGVkIGVtYWlsLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlcmUgaXMgbm8gbGltaXQuICBMaW5lcworICAgIGJleW9uZCB0aGUgbGltaXQgYXJlIHN1cHByZXNzZWQgYW5kIGNvdW50ZWQsIGFuZCBhIGZpbmFsIGxpbmUgaXMKKyAgICBhZGRlZCBpbmRpY2F0aW5nIHRoZSBudW1iZXIgb2Ygc3VwcHJlc3NlZCBsaW5lcy4KKworbXVsdGltYWlsaG9vay5lbWFpbE1heExpbmVMZW5ndGgKKworICAgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGxpbmUgaW4gdGhlIGVtYWlsIGJvZHkuICBMaW5lcyBsb25nZXIgdGhhbgorICAgIHRoaXMgbGltaXQgYXJlIHRydW5jYXRlZCB0byB0aGlzIGxlbmd0aCB3aXRoIGEgdHJhaWxpbmcgIiBbLi4uXSIKKyAgICBhZGRlZCB0byBpbmRpY2F0ZSB0aGUgbWlzc2luZyB0ZXh0LiAgVGhlIGRlZmF1bHQgaXMgNTAwLCBiZWNhdXNlCisgICAgKGEpIGRpZmZzIHdpdGggbG9uZ2VyIGxpbmVzIGFyZSBwcm9iYWJseSBmcm9tIGJpbmFyeSBmaWxlcywgZm9yCisgICAgd2hpY2ggYSBkaWZmIGlzIHVzZWxlc3MsIGFuZCAoYikgZXZlbiBpZiBhIHRleHQgZmlsZSBoYXMgc3VjaCBsb25nCisgICAgbGluZXMsIHRoZSBkaWZmcyBhcmUgcHJvYmFibHkgdW5yZWFkYWJsZSBhbnl3YXkuICBUbyBkaXNhYmxlIGxpbmUKKyAgICB0cnVuY2F0aW9uLCBzZXQgdGhpcyBvcHRpb24gdG8gMC4KKworbXVsdGltYWlsaG9vay5tYXhDb21taXRFbWFpbHMKKworICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjb21taXQgZW1haWxzIHRvIHNlbmQgZm9yIGEgZ2l2ZW4gY2hhbmdlLgorICAgIFdoZW4gdGhlIG51bWJlciBvZiBwYXRjaGVzIGlzIGxhcmdlciB0aGF0IHRoaXMgdmFsdWUsIG9ubHkgdGhlCisgICAgc3VtbWFyeSByZWZjaGFuZ2UgZW1haWwgaXMgc2VudC4gIFRoaXMgY2FuIGF2b2lkIGFjY2lkZW50YWwKKyAgICBtYWlsYm9tYmluZywgZm9yIGV4YW1wbGUgb24gYW4gaW5pdGlhbCBwdXNoLiAgVG8gZGlzYWJsZSBjb21taXQKKyAgICBlbWFpbHMgbGltaXQsIHNldCB0aGlzIG9wdGlvbiB0byAwLiAgVGhlIGRlZmF1bHQgaXMgNTAwLgorCittdWx0aW1haWxob29rLmVtYWlsU3RyaWN0VVRGOAorCisgICAgSWYgdGhpcyBib29sZWFuIG9wdGlvbiBpcyBzZXQgdG8gInRydWUiLCB0aGVuIHRoZSBtYWluIHBhcnQgb2YgdGhlCisgICAgZW1haWwgYm9keSBpcyBmb3JjZWQgdG8gYmUgdmFsaWQgVVRGLTguICBBbnkgY2hhcmFjdGVycyB0aGF0IGFyZQorICAgIG5vdCB2YWxpZCBVVEYtOCBhcmUgY29udmVydGVkIHRvIHRoZSBVbmljb2RlIHJlcGxhY2VtZW50CisgICAgY2hhcmFjdGVyLCBVK0ZGRkQuICBUaGUgZGVmYXVsdCBpcyAidHJ1ZSIuCisKK211bHRpbWFpbGhvb2suZGlmZk9wdHMKKworICAgIE9wdGlvbnMgcGFzc2VkIHRvICJnaXQgZGlmZi10cmVlIiB3aGVuIGdlbmVyYXRpbmcgdGhlIHN1bW1hcnkKKyAgICBpbmZvcm1hdGlvbiBmb3IgUmVmZXJlbmNlQ2hhbmdlIGVtYWlscy4gIERlZmF1bHQgaXMgIi0tc3RhdAorICAgIC0tc3VtbWFyeSAtLWZpbmQtY29waWVzLWhhcmRlciIuICBBZGQgLXAgdG8gdGhvc2Ugb3B0aW9ucyB0bworICAgIGluY2x1ZGUgYSB1bmlmaWVkIGRpZmYgb2YgY2hhbmdlcyBpbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwgc3VtbWFyeQorICAgIG91dHB1dC4gIFNoZWxsIHF1b3RpbmcgaXMgYWxsb3dlZDsgc2VlIG11bHRpbWFpbGhvb2subG9nT3B0cyBmb3IKKyAgICBkZXRhaWxzLgorCittdWx0aW1haWxob29rLmxvZ09wdHMKKworICAgIE9wdGlvbnMgcGFzc2VkIHRvICJnaXQgbG9nIiB0byBnZW5lcmF0ZSBhZGRpdGlvbmFsIGluZm8gZm9yCisgICAgcmVmZXJlbmNlIGNoYW5nZSBlbWFpbHMgKHVzZWQgb25seSBpZiByZWZjaGFuZ2VTaG93TG9nIGlzIHNldCkuCisgICAgRm9yIGV4YW1wbGUsIGFkZGluZyAtLWdyYXBoIHdpbGwgc2hvdyB0aGUgZ3JhcGggb2YgcmV2aXNpb25zLCAtcAorICAgIHdpbGwgc2hvdyB0aGUgY29tcGxldGUgZGlmZiwgZXRjLiAgVGhlIGRlZmF1bHQgaXMgZW1wdHkuCisKKyAgICBTaGVsbCBxdW90aW5nIGlzIGFsbG93ZWQ7IGZvciBleGFtcGxlLCBhIGxvZyBmb3JtYXQgdGhhdCBjb250YWlucworICAgIHNwYWNlcyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHNvbWV0aGluZyBsaWtlOgorCisgICAgICBnaXQgY29uZmlnIG11bHRpbWFpbGhvb2subG9nb3B0cyAnLS1wcmV0dHk9Zm9ybWF0OiIlaCAlYU4gPCVhRT4lbiVzJW4lbiViJW4iJworCisgICAgSWYgeW91IHdhbnQgdG8gc2V0IHRoaXMgYnkgZWRpdGluZyB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZQorICAgIGRpcmVjdGx5LCByZW1lbWJlciB0aGF0IEdpdCByZXF1aXJlcyBkb3VibGUtcXVvdGVzIHRvIGJlIGVzY2FwZWQKKyAgICAoc2VlIGdpdC1jb25maWcoMSkgZm9yIG1vcmUgaW5mb3JtYXRpb24pOgorCisgICAgICBbbXVsdGltYWlsaG9va10KKyAgICAgICAgICAgICAgbG9nb3B0cyA9IC0tcHJldHR5PWZvcm1hdDpcIiVoICVhTiA8JWFFPiVuJXMlbiVuJWIlblwiCisKK211bHRpbWFpbGhvb2suZW1haWxEb21haW4KKworICAgIERvbWFpbiBuYW1lIGFwcGVuZGVkIHRvIHRoZSB1c2VybmFtZSBvZiB0aGUgcGVyc29uIGRvaW5nIHRoZSBwdXNoCisgICAgdG8gY29udmVydCBpdCBpbnRvIGFuIGVtYWlsIGFkZHJlc3MgKHZpYSAiJXNAJXMiICUgKHVzZXJuYW1lLAorICAgIGVtYWlsZG9tYWluKSkuICBNb3JlIGNvbXBsaWNhdGVkIHNjaGVtZXMgY2FuIGJlIGltcGxlbWVudGVkIGJ5CisgICAgb3ZlcnJpZGluZyBFbnZpcm9ubWVudCBhbmQgb3ZlcnJpZGluZyBpdHMgZ2V0X3B1c2hlcl9lbWFpbCgpCisgICAgbWV0aG9kLgorCittdWx0aW1haWxob29rLnJlcGx5VG8KK211bHRpbWFpbGhvb2sucmVwbHlUb0NvbW1pdAorbXVsdGltYWlsaG9vay5yZXBseVRvUmVmY2hhbmdlCisKKyAgICBBZGRyZXNzZXMgdG8gdXNlIGluIHRoZSBSZXBseS1UbzogZmllbGQgZm9yIGNvbW1pdCBlbWFpbHMKKyAgICAocmVwbHlUb0NvbW1pdCkgYW5kIHJlZmNoYW5nZSBlbWFpbHMgKHJlcGx5VG9SZWZjaGFuZ2UpLgorICAgIG11bHRpbWFpbGhvb2sucmVwbHlUbyBpcyB1c2VkIGFzIGRlZmF1bHQgd2hlbiByZXBseVRvQ29tbWl0IG9yCisgICAgcmVwbHlUb1JlZmNoYW5nZSBpcyBub3Qgc2V0LiAgVGhlIHZhbHVlIGZvciB0aGVzZSB2YXJpYWJsZXMgY2FuIGJlCisgICAgZWl0aGVyOgorCisgICAgLSBBbiBlbWFpbCBhZGRyZXNzLCB3aGljaCB3aWxsIGJlIHVzZWQgZGlyZWN0bHkuCisKKyAgICAtIFRoZSB2YWx1ZSAicHVzaGVyIiwgaW4gd2hpY2ggY2FzZSB0aGUgcHVzaGVyJ3MgYWRkcmVzcyAoaWYKKyAgICAgIGF2YWlsYWJsZSkgd2lsbCBiZSB1c2VkLiAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgcmVmY2hhbmdlCisgICAgICBlbWFpbHMuCisKKyAgICAtIFRoZSB2YWx1ZSAiYXV0aG9yIiAobWVhbmluZ2Z1bCBvbmx5IGZvciByZXBseVRvQ29tbWl0KSwgaW4gd2hpY2gKKyAgICAgIGNhc2UgdGhlIGNvbW1pdCBhdXRob3IncyBhZGRyZXNzIHdpbGwgYmUgdXNlZC4gIFRoaXMgaXMgdGhlCisgICAgICBkZWZhdWx0IGZvciBjb21taXQgZW1haWxzLgorCisgICAgLSBUaGUgdmFsdWUgIm5vbmUiLCBpbiB3aGljaCBjYXNlIHRoZSBSZXBseS1UbzogZmllbGQgd2lsbCBiZQorICAgICAgb21pdHRlZC4KKworCitFbWFpbCBmaWx0ZXJpbmcgYWlkcworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQWxsIGVtYWlscyBpbmNsdWRlIGV4dHJhIGhlYWRlcnMgdG8gZW5hYmxlIGZpbmUgdHVuZWQgZmlsdGVyaW5nIGFuZAorZ2l2ZSBpbmZvcm1hdGlvbiBmb3IgZGVidWdnaW5nLiAgQWxsIGVtYWlscyBpbmNsdWRlIHRoZSBoZWFkZXJzCisiWC1HaXQtUmVwbyIsICJYLUdpdC1SZWZuYW1lIiwgYW5kICJYLUdpdC1SZWZ0eXBlIi4gIFJlZmVyZW5jZUNoYW5nZQorZW1haWxzIGFsc28gaW5jbHVkZSBoZWFkZXJzICJYLUdpdC1PbGRyZXYiIGFuZCAiWC1HaXQtTmV3cmV2IjsKK1JldmlzaW9uIGVtYWlscyBhbHNvIGluY2x1ZGUgaGVhZGVyICJYLUdpdC1SZXYiLgorCisKK0N1c3RvbWl6aW5nIGVtYWlsIGNvbnRlbnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitnaXQtbXVsdGltYWlsIG1vc3RseSBnZW5lcmF0ZXMgZW1haWxzIGJ5IGV4cGFuZGluZyB0ZW1wbGF0ZXMuICBUaGUKK3RlbXBsYXRlcyBjYW4gYmUgY3VzdG9taXplZC4gIFRvIGF2b2lkIHRoZSBuZWVkIHRvIGVkaXQKK2dpdF9tdWx0aW1haWwucHkgZGlyZWN0bHksIHRoZSBwcmVmZXJyZWQgd2F5IHRvIGNoYW5nZSB0aGUgdGVtcGxhdGVzCitpcyB0byB3cml0ZSBhIHNlcGFyYXRlIFB5dGhvbiBzY3JpcHQgdGhhdCBpbXBvcnRzIGdpdF9tdWx0aW1haWwucHkgYXMKK2EgbW9kdWxlLCB0aGVuIHJlcGxhY2VzIHRoZSB0ZW1wbGF0ZXMgaW4gcGxhY2UuICBTZWUgdGhlIHByb3ZpZGVkCitwb3N0LXJlY2VpdmUgc2NyaXB0IGZvciBhbiBleGFtcGxlIG9mIGhvdyB0aGlzIGlzIGRvbmUuCisKKworQ3VzdG9taXppbmcgZ2l0LW11bHRpbWFpbCBmb3IgeW91ciBlbnZpcm9ubWVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitnaXQtbXVsdGltYWlsIGlzIG1vc3RseSBjdXN0b21pemVkIHZpYSBhbiAiZW52aXJvbm1lbnQiIHRoYXQgZGVzY3JpYmVzCit0aGUgbG9jYWwgZW52aXJvbm1lbnQgaW4gd2hpY2ggR2l0IGlzIHJ1bm5pbmcuICBUd28gdHlwZXMgb2YKK2Vudmlyb25tZW50IGFyZSBidWlsdCBpbjoKKworKiBHZW5lcmljRW52aXJvbm1lbnQ6IGEgc3RhbmQtYWxvbmUgR2l0IHJlcG9zaXRvcnkuCisKKyogR2l0b2xpdGVFbnZpcm9ubWVudDogYSBHaXQgcmVwb3NpdG9yeSB0aGF0IGlzIG1hbmFnZWQgYnkgZ2l0b2xpdGUKKyAgWzNdLiAgRm9yIHN1Y2ggcmVwb3NpdG9yaWVzLCB0aGUgaWRlbnRpdHkgb2YgdGhlIHB1c2hlciBpcyByZWFkIGZyb20KKyAgZW52aXJvbm1lbnQgdmFyaWFibGUgJEdMX1VTRVIsIGFuZCB0aGUgbmFtZSBvZiB0aGUgcmVwb3NpdG9yeSBpcworICByZWFkIGZyb20gJEdMX1JFUE8gKGlmIGl0IGlzIG5vdCBvdmVycmlkZGVuIGJ5CisgIG11bHRpbWFpbGhvb2sucmVwb25hbWUpLgorCitCeSBkZWZhdWx0LCBnaXQtbXVsdGltYWlsIGFzc3VtZXMgR2l0b2xpdGVFbnZpcm9ubWVudCBpZiAkR0xfVVNFUiBhbmQKKyRHTF9SRVBPIGFyZSBzZXQsIGFuZCBvdGhlcndpc2UgYXNzdW1lcyBHZW5lcmljRW52aXJvbm1lbnQuCitBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNob29zZSBvbmUgb2YgdGhlc2UgdHdvIGVudmlyb25tZW50cyBleHBsaWNpdGx5CitieSBzZXR0aW5nIGEgIm11bHRpbWFpbGhvb2suZW52aXJvbm1lbnQiIGNvbmZpZyBzZXR0aW5nICh3aGljaCBjYW4KK2hhdmUgdGhlIHZhbHVlICJnZW5lcmljIiBvciAiZ2l0b2xpdGUiKSBvciBieSBwYXNzaW5nIGFuIC0tZW52aXJvbm1lbnQKK29wdGlvbiB0byB0aGUgc2NyaXB0LgorCitJZiB5b3UgbmVlZCB0byBjdXN0b21pemUgdGhlIHNjcmlwdCBpbiB3YXlzIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkKK3RoZSBleGlzdGluZyBlbnZpcm9ubWVudHMsIHlvdSBjYW4gZGVmaW5lIHlvdXIgb3duIGVudmlyb25tZW50IGNsYXNzCitjbGFzcyB1c2luZyBhcmJpdHJhcnkgUHl0aG9uIGNvZGUuICBUbyBkbyBzbywgeW91IG5lZWQgdG8gaW1wb3J0CitnaXRfbXVsdGltYWlsLnB5IGFzIGEgUHl0aG9uIG1vZHVsZSwgYXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBleGFtcGxlCitwb3N0LXJlY2VpdmUgc2NyaXB0LiAgVGhlbiBpbXBsZW1lbnQgeW91ciBlbnZpcm9ubWVudCBjbGFzczsgaXQgc2hvdWxkCit1c3VhbGx5IGluaGVyaXQgZnJvbSBvbmUgb2YgdGhlIGV4aXN0aW5nIEVudmlyb25tZW50IGNsYXNzZXMgYW5kCitwb3NzaWJseSBvbmUgb3IgbW9yZSBvZiB0aGUgRW52aXJvbm1lbnRNaXhpbiBjbGFzc2VzLiAgVGhlbiBzZXQgdGhlCisiZW52aXJvbm1lbnQiIHZhcmlhYmxlIHRvIGFuIGluc3RhbmNlIG9mIHlvdXIgb3duIGVudmlyb25tZW50IGNsYXNzCithbmQgcGFzcyBpdCB0byBydW5fYXNfcG9zdF9yZWNlaXZlX2hvb2soKS4KKworVGhlIHN0YW5kYXJkIGVudmlyb25tZW50IGNsYXNzZXMsIEdlbmVyaWNFbnZpcm9ubWVudCBhbmQKK0dpdG9saXRlRW52aXJvbm1lbnQsIGFyZSBpbiBmYWN0IHRoZW1zZWx2ZXMgcHV0IHRvZ2V0aGVyIG91dCBvZiBhCitudW1iZXIgb2YgbWl4aW4gY2xhc3NlcywgZWFjaCBvZiB3aGljaCBoYW5kbGVzIG9uZSBhc3BlY3Qgb2YgdGhlCitjdXN0b21pemF0aW9uLiAgRm9yIHRoZSBmaW5lc3QgY29udHJvbCBvdmVyIHlvdXIgY29uZmlndXJhdGlvbiwgeW91CitjYW4gc3BlY2lmeSBleGFjdGx5IHdoaWNoIG1peGluIGNsYXNzZXMgeW91ciBvd24gZW52aXJvbm1lbnQgY2xhc3MKK3Nob3VsZCBpbmhlcml0IGZyb20sIGFuZCBvdmVycmlkZSBpbmRpdmlkdWFsIG1ldGhvZHMgKG9yIGV2ZW4gYWRkIHlvdXIKK293biBtaXhpbiBjbGFzc2VzKSB0byBpbXBsZW1lbnQgZW50aXJlbHkgbmV3IGJlaGF2aW9ycy4gIElmIHlvdQoraW1wbGVtZW50IGFueSBtaXhpbnMgdGhhdCBtaWdodCBiZSB1c2VmdWwgdG8gb3RoZXIgcGVvcGxlLCBwbGVhc2UKK2NvbnNpZGVyIHNoYXJpbmcgdGhlbSB3aXRoIHRoZSBjb21tdW5pdHkhCisKKworR2V0dGluZyBpbnZvbHZlZAorLS0tLS0tLS0tLS0tLS0tLQorCitnaXQtbXVsdGltYWlsIGlzIGFuIG9wZW4tc291cmNlIHByb2plY3QsIGJ1aWx0IGJ5IHZvbHVudGVlcnMuICBXZQord291bGQgd2VsY29tZSB5b3VyIGhlbHAhCisKK1RoZSBjdXJyZW50IG1haW50YWluZXIgaXMgTWljaGFlbCBIYWdnZXJ0eSA8bWhhZ2dlckBhbHVtLm1pdC5lZHU+LgorCitHZW5lcmFsIGRpc2N1c3Npb24gb2YgZ2l0LW11bHRpbWFpbCB0YWtlcyBwbGFjZSBvbiB0aGUgbWFpbiBHaXQKK21haWxpbmcgbGlzdCwKKworICAgIGdpdEB2Z2VyLmtlcm5lbC5vcmcKKworUGxlYXNlIENDIGVtYWlscyByZWdhcmRpbmcgZ2l0LW11bHRpbWFpbCB0byBtZSBzbyB0aGF0IEkgZG9uJ3QKK292ZXJsb29rIHRoZW0uCisKK1RoZSBnaXQtbXVsdGltYWlsIHByb2plY3QgaXRzZWxmIGlzIGN1cnJlbnRseSBob3N0ZWQgb24gR2l0SHViOgorCisgICAgaHR0cHM6Ly9naXRodWIuY29tL21oYWdnZXIvZ2l0LW11bHRpbWFpbAorCitXZSB1c2UgdGhlIEdpdEh1YiBpc3N1ZSB0cmFja2VyIHRvIGtlZXAgdHJhY2sgb2YgYnVncyBhbmQgZmVhdHVyZQorcmVxdWVzdHMsIGFuZCBHaXRIdWIgcHVsbCByZXF1ZXN0cyB0byBleGNoYW5nZSBwYXRjaGVzICh0aG91Z2gsIGlmIHlvdQorcHJlZmVyLCB5b3UgY2FuIHNlbmQgcGF0Y2hlcyB2aWEgdGhlIEdpdCBtYWlsaW5nIGxpc3Qgd2l0aCBjYyB0byBtZSkuCisKK1BsZWFzZSBub3RlIHRoYXQgYWx0aG91Z2ggYSBjb3B5IG9mIGdpdC1tdWx0aW1haWwgd2lsbCBwcm9iYWJseSBiZQorZGlzdHJpYnV0ZWQgaW4gdGhlICJjb250cmliIiBzZWN0aW9uIG9mIHRoZSBtYWluIEdpdCBwcm9qZWN0LAorZGV2ZWxvcG1lbnQgdGFrZXMgcGxhY2UgaW4gdGhlIHNlcGFyYXRlIGdpdC1tdWx0aW1haWwgcmVwb3NpdG9yeSBvbgorR2l0SHViISAgKFdoZW5ldmVyIGVub3VnaCBjaGFuZ2VzIHRvIGdpdC1tdWx0aW1haWwgaGF2ZSBhY2N1bXVsYXRlZCwgYQorbmV3IGNvZGUtZHJvcCBvZiBnaXQtbXVsdGltYWlsIHdpbGwgYmUgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlCitHaXQgcHJvamVjdC4pCisKKworRm9vdG5vdGVzCistLS0tLS0tLS0KKworWzFdIGh0dHA6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDM5NC8KKworWzJdIEJlY2F1c2Ugb2YgdGhlIHdheSBpbmZvcm1hdGlvbiBpcyBwYXNzZWQgdG8gdXBkYXRlIGhvb2tzLCB0aGUKKyAgICBzY3JpcHQncyBtZXRob2Qgb2YgZGV0ZXJtaW5pbmcgd2hldGhlciBhIGNvbW1pdCBoYXMgYWxyZWFkeSBiZWVuCisgICAgc2VlbiBkb2VzIG5vdCB3b3JrIHdoZW4gaXQgaXMgdXNlZCBhcyBhbiAidXBkYXRlIiBzY3JpcHQuICBJbgorICAgIHBhcnRpY3VsYXIsIG5vIG5vdGlmaWNhdGlvbiBlbWFpbCB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgYSBuZXcKKyAgICBjb21taXQgdGhhdCBpcyBhZGRlZCB0byBtdWx0aXBsZSByZWZlcmVuY2VzIGluIHRoZSBzYW1lIHB1c2guCisKK1szXSBodHRwczovL2dpdGh1Yi5jb20vc2l0YXJhbWMvZ2l0b2xpdGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5HaXQgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUuR2l0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMmU2NmEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUuR2l0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgY29weSBvZiBnaXQtbXVsdGltYWlsIGlzIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgdGhlICJjb250cmliIgorc2VjdGlvbiBvZiB0aGUgR2l0IHByb2plY3QgYXMgYSBjb252ZW5pZW5jZSB0byBHaXQgdXNlcnMuCitnaXQtbXVsdGltYWlsIGlzIGRldmVsb3BlZCBhcyBhbiBpbmRlcGVuZGVudCBwcm9qZWN0IGF0IHRoZSBmb2xsb3dpbmcKK3dlYnNpdGU6CisKKyAgICBodHRwczovL2dpdGh1Yi5jb20vbWhhZ2dlci9naXQtbXVsdGltYWlsCisKK1RoZSB2ZXJzaW9uIGluIHRoaXMgZGlyZWN0b3J5IHdhcyBvYnRhaW5lZCBmcm9tIHRoZSB1cHN0cmVhbSBwcm9qZWN0CitvbiAyMDEzLTA3LTE0IGFuZCBjb25zaXN0cyBvZiB0aGUgImdpdC1tdWx0aW1haWwiIHN1YmRpcmVjdG9yeSBmcm9tCityZXZpc2lvbgorCisgICAgMWE1Y2IwOWM2OThhNzRkMTVhNzE1YTg2YjA5ZWFkNWY1NmJmNGIwNgorCitQbGVhc2Ugc2VlIHRoZSBSRUFETUUgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeSBmb3IgaW5mb3JtYXRpb24gYWJvdXQgaG93Cit0byByZXBvcnQgYnVncyBvciBjb250cmlidXRlIHRvIGdpdC1tdWx0aW1haWwuCmRpZmYgLS1naXQgYS9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUubWlncmF0ZS1mcm9tLXBvc3QtcmVjZWl2ZS1lbWFpbCBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL1JFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNmE5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9SRUFETUUubWlncmF0ZS1mcm9tLXBvc3QtcmVjZWl2ZS1lbWFpbApAQCAtMCwwICsxLDE0NSBAQAorZ2l0LW11bHRpbWFpbCBpcyBjbG9zZSB0bywgYnV0IG5vdCBleGFjdGx5LCBhIHBsdWctaW4gcmVwbGFjZW1lbnQgZm9yCit0aGUgb2xkIEdpdCBwcm9qZWN0IHNjcmlwdCBjb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbC4gIFRoaXMKK2RvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGlmZmVyZW5jZXMgYW5kIGV4cGxhaW5zIGhvdyB0byBjb25maWd1cmUKK2dpdC1tdWx0aW1haWwgdG8gZ2V0IGJlaGF2aW9yIGNsb3Nlc3QgdG8gdGhhdCBvZiBwb3N0LXJlY2VpdmUtZW1haWwuCisKK0lmIHlvdSBhcmUgaW4gYSBodXJyeQorPT09PT09PT09PT09PT09PT09PT09CisKK0Egc2NyaXB0IGNhbGxlZCBtaWdyYXRlLW1haWxob29rLWNvbmZpZyBpcyBpbmNsdWRlZCB3aXRoCitnaXQtbXVsdGltYWlsLiAgSWYgeW91IHJ1biB0aGlzIHNjcmlwdCB3aXRoaW4gYSBHaXQgcmVwb3NpdG9yeSB0aGF0IGlzCitjb25maWd1cmVkIHRvIHVzZSBwb3N0LXJlY2VpdmUtZW1haWwsIGl0IHdpbGwgY29udmVydCB0aGUKK2NvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaW50byB0aGUgYXBwcm94aW1hdGUgZXF1aXZhbGVudCBzZXR0aW5ncyBmb3IKK2dpdC1tdWx0aW1haWwuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcnVuCisKKyAgICBtaWdyYXRlLW1haWxob29rLWNvbmZpZyAtLWhlbHAKKworCitDb25maWd1cmF0aW9uIGRpZmZlcmVuY2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09CisKKyogVGhlIG5hbWVzIG9mIHRoZSBjb25maWcgb3B0aW9ucyBmb3IgZ2l0LW11bHRpbWFpbCBhcmUgaW4gbmFtZXNwYWNlCisgICJtdWx0aW1haWxob29rLioiIGluc3RlYWQgb2YgImhvb2tzLioiLiAgKEVkaXRvcmlhbCBjb21tZW50OgorICBwb3N0LXJlY2VpdmUtZW1haWwgc2hvdWxkIG5ldmVyIGhhdmUgdXNlZCBzdWNoIGEgZ2VuZXJpYyB0b3AtbGV2ZWwKKyAgbmFtZXNwYWNlLikKKworKiBJbiBlbWFpbHMgYWJvdXQgbmV3IGFubm90YXRlZCB0YWdzLCBwb3N0LXJlY2VpdmUtZW1haWwgaW5jbHVkZXMgYQorICBzaG9ydGxvZyBvZiBhbGwgY2hhbmdlcyBzaW5jZSB0aGUgcHJldmlvdXMgYW5ub3RhdGVkIHRhZy4gIFRvIGdldAorICB0aGlzIGJlaGF2aW9yIHdpdGggZ2l0LW11bHRpbWFpbCwgeW91IG5lZWQgdG8gc2V0CisgIG11bHRpbWFpbGhvb2suYW5ub3VuY2VzaG9ydGxvZyB0byB0cnVlOgorCisgICAgICBnaXQgY29uZmlnIG11bHRpbWFpbGhvb2suYW5ub3VuY2VzaG9ydGxvZyB0cnVlCisKKyogbXVsdGltYWlsaG9vay5jb21taXRsaXN0IC0tIFRoaXMgaXMgYSBuZXcgY29uZmlndXJhdGlvbiB2YXJpYWJsZS4KKyAgUmVjaXBpZW50cyBsaXN0ZWQgaGVyZSB3aWxsIHJlY2VpdmUgYSBzZXBhcmF0ZSBlbWFpbCBmb3IgZWFjaCBuZXcKKyAgY29tbWl0LiAgSG93ZXZlciwgaWYgdGhpcyB2YXJpYWJsZSBpcyAqbm90KiBzZXQsIGl0IGRlZmF1bHRzIHRvIHRoZQorICB2YWx1ZSBvZiBtdWx0aW1haWxob29rLm1haWxpbmdsaXN0LiAgVGhlcmVmb3JlLCBpZiB5b3UgKmRvbid0KiB3YW50CisgIHRoZSBtZW1iZXJzIG9mIG11bHRpbWFpbGhvb2subWFpbGluZ2xpc3QgdG8gcmVjZWl2ZSBvbmUgZW1haWwgcGVyCisgIGNvbW1pdCwgdGhlbiBzZXQgdGhpcyB2YWx1ZSB0byB0aGUgZW1wdHkgc3RyaW5nOgorCisgICAgICBnaXQgY29uZmlnIG11bHRpbWFpbGhvb2suY29tbWl0bGlzdCAnJworCisqIG11bHRpbWFpbGhvb2suZW1haWxwcmVmaXggLS0gSWYgdGhpcyB2YWx1ZSBpcyBub3Qgc2V0LCB0aGVuIHRoZQorICBzdWJqZWN0cyBvZiBnZW5lcmF0ZWQgZW1haWxzIGFyZSBwcmVmaXhlZCB3aXRoIHRoZSBzaG9ydCBuYW1lIG9mIHRoZQorICByZXBvc2l0b3J5IGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0czsgZS5nLiwgIltteXJlcG9dIi4KKyAgcG9zdC1yZWNlaXZlLWVtYWlsIGRlZmF1bHRzIHRvIHByZWZpeCAiW1NDTV0iIGlmIHRoaXMgb3B0aW9uIGlzIG5vdAorICBzZXQuICBTbyBpZiB5b3Ugd2VyZSB1c2luZyB0aGUgb2xkIGRlZmF1bHQgYW5kIHdhbnQgdG8gcmV0YWluIGl0CisgIChmb3IgZXhhbXBsZSwgdG8gYXZvaWQgaGF2aW5nIHRvIGNoYW5nZSB5b3VyIGVtYWlsIGZpbHRlcnMpLCBzZXQKKyAgdGhpcyB2YXJpYWJsZSBleHBsaWNpdGx5IHRvIHRoZSBvbGQgdmFsdWU6CisKKyAgICAgIGdpdCBjb25maWcgbXVsdGltYWlsaG9vay5lbWFpbHByZWZpeCAiW1NDTV0iCisKKyogVGhlICJtdWx0aW1haWxob29rLnNob3dyZXYiIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgIEl0cyBtYWluIHVzZSBpcyBvYnNvbGV0ZWQgYnkgdGhlIG9uZS1lbWFpbC1wZXItY29tbWl0IGZlYXR1cmUgb2YKKyAgZ2l0LW11bHRpbWFpbC4KKworCitPdGhlciBkaWZmZXJlbmNlcworPT09PT09PT09PT09PT09PT0KKworVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBvdGhlciBkaWZmZXJlbmNlcyBpbiB0aGUgYmVoYXZpb3Igb2YKK2dpdC1tdWx0aW1haWwgdnMuIHBvc3QtcmVjZWl2ZS1lbWFpbC4gIEZvciBmdWxsIGRldGFpbHMsIHBsZWFzZSByZWZlcgordG8gdGhlIG1haW4gUkVBRE1FIGZpbGU6CisKKyogT25lIGVtYWlsIHBlciBjb21taXQuICBGb3IgZWFjaCByZWZlcmVuY2UgY2hhbmdlLCB0aGUgc2NyaXB0IGZpcnN0CisgIG91dHB1dHMgb25lIGVtYWlsIHN1bW1hcml6aW5nIHRoZSByZWZlcmVuY2UgY2hhbmdlIChpbmNsdWRpbmcKKyAgb25lLWxpbmUgc3VtbWFyaWVzIG9mIHRoZSBuZXcgY29tbWl0cyksIHRoZW4gaXQgb3V0cHV0cyBhIHNlcGFyYXRlCisgIGVtYWlsIGZvciBlYWNoIG5ldyBjb21taXQgdGhhdCB3YXMgaW50cm9kdWNlZCwgaW5jbHVkaW5nIHBhdGNoZXMuCisgIFRoZXNlIG9uZS1lbWFpbC1wZXItY29tbWl0IGVtYWlscyBnbyB0byB0aGUgYWRkcmVzc2VzIGxpc3RlZCBpbgorICBtdWx0aW1haWxob29rLmNvbW1pdGxpc3QuICBwb3N0LXJlY2VpdmUtZW1haWwgc2VuZHMgb25seSBvbmUgZW1haWwKKyAgZm9yIGVhY2ggKnJlZmVyZW5jZSogdGhhdCBpcyBjaGFuZ2VkLCBubyBtYXR0ZXIgaG93IG1hbnkgY29tbWl0cworICB3ZXJlIGFkZGVkIHRvIHRoZSByZWZlcmVuY2UuCisKKyogQmV0dGVyIGFsZ29yaXRobSBmb3IgZGV0ZWN0aW5nIG5ldyBjb21taXRzLiAgcG9zdC1yZWNlaXZlLWVtYWlsCisgIHByb2Nlc3NlcyBvbmUgcmVmZXJlbmNlIGNoYW5nZSBhdCBhIHRpbWUsIHdoaWNoIGNhdXNlcyBpdCB0byBmYWlsIHRvCisgIGRlc2NyaWJlIG5ldyBjb21taXRzIHRoYXQgd2VyZSBpbmNsdWRlZCBpbiBtdWx0aXBsZSBicmFuY2hlcy4gIEZvcgorICBleGFtcGxlLCBpZiBhIHNpbmdsZSBwdXNoIGFkZHMgdGhlICIqIiBjb21taXRzIGluIHRoZSBkaWFncmFtIGJlbG93LAorICB0aGVuIHBvc3QtcmVjZWl2ZS1lbWFpbCB3b3VsZCBuZXZlciBpbmNsdWRlIHRoZSBkZXRhaWxzIG9mIHRoZSB0d28KKyAgY29tbWl0cyB0aGF0IGFyZSBjb21tb24gdG8gIm1hc3RlciIgYW5kICJicmFuY2giIGluIGl0cworICBub3RpZmljYXRpb25zLgorCisgICAgICBvLS0tby0tLW8tLS0qLS0tKi0tLSogICAgPC0tIG1hc3RlcgorICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAqLS0tKiAgPC0tIGJyYW5jaAorCisgIGdpdC1tdWx0aW1haWwgYW5hbHl6ZXMgYWxsIHJlZmVyZW5jZSBtb2RpZmljYXRpb25zIHRvIGRldGVybWluZQorICB3aGljaCBjb21taXRzIHdlcmUgbm90IHByZXNlbnQgYmVmb3JlIHRoZSBjaGFuZ2UsIHRoZXJlZm9yZSBhdm9pZGluZworICB0aGF0IGVycm9yLgorCisqIEluIHJlZmVyZW5jZSBjaGFuZ2UgZW1haWxzLCBnaXQtbXVsdGltYWlsIHRlbGxzIHdoaWNoIGNvbW1pdHMgaGF2ZQorICBiZWVuIGFkZGVkIHRvIHRoZSByZWZlcmVuY2UgdnMuIGFyZSBlbnRpcmVseSBuZXcgdG8gdGhlIHJlcG9zaXRvcnksCisgIGFuZCB3aGljaCBjb21taXRzIHRoYXQgaGF2ZSBiZWVuIG9taXR0ZWQgZnJvbSB0aGUgcmVmZXJlbmNlCisgIHZzLiBlbnRpcmVseSBkaXNjYXJkZWQgZnJvbSB0aGUgcmVwb3NpdG9yeS4KKworKiBUaGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggR2l0IGlzIHJ1bm5pbmcgY2FuIGJlIGNvbmZpZ3VyZWQgdmlhIGFuCisgICJFbnZpcm9ubWVudCIgYWJzdHJhY3Rpb24uCisKKyogQnVpbHQtaW4gc3VwcG9ydCBmb3IgR2l0b2xpdGUtbWFuYWdlZCByZXBvc2l0b3JpZXMuCisKKyogSW5zdGVhZCBvZiB1c2luZyBmdWxsIFNIQTEgb2JqZWN0IG5hbWVzIGluIGVtYWlscywgZ2l0LW11bHRpbWFpbAorICBtb3N0bHkgdXNlcyBhYmJyZXZpYXRlZCBTSEExcywgcGx1cyBvbmUtbGluZSBsb2cgbWVzc2FnZSBzdW1tYXJpZXMKKyAgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyogSW4gdGhlIHNjaGVtYXRpYyBkaWFncmFtcyB0aGF0IGV4cGxhaW4gbm9uLWZhc3QtZm9yd2FyZCBjb21taXRzLAorICBnaXQtbXVsdGltYWlsIHNob3dzIHRoZSBuYW1lcyBvZiB0aGUgYnJhbmNoZXMgaW52b2x2ZWQuCisKKyogVGhlIGVtYWlscyBnZW5lcmF0ZWQgYnkgZ2l0LW11bHRpbWFpbCBpbmNsdWRlIHRoZSBuYW1lIG9mIHRoZSBHaXQKKyAgcmVwb3NpdG9yeSB0aGF0IHdhcyBtb2RpZmllZDsgdGhpcyBpcyBjb252ZW5pZW50IGZvciByZWNpcGllbnRzIHdobworICBhcmUgbW9uaXRvcmluZyBtdWx0aXBsZSByZXBvc2l0b3JpZXMuCisKKyogZ2l0LW11bHRpbWFpbCBhbGxvd3MgdGhlIGVtYWlsICJGcm9tIiBhZGRyZXNzZXMgdG8gYmUgY29uZmlndXJlZC4KKworKiBUaGUgcmVjaXBpZW50cyBsaXN0cyAobXVsdGltYWlsaG9vay5tYWlsaW5nbGlzdCwKKyAgbXVsdGltYWlsaG9vay5yZWZjaGFuZ2VsaXN0LCBtdWx0aW1haWxob29rLmFubm91bmNlbGlzdCwgYW5kCisgIG11bHRpbWFpbGhvb2suY29tbWl0bGlzdCkgY2FuIGJlIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgYW5kL29yCisgIG11bHRpdmFsdWVkIHNldHRpbmdzIGluIHRoZSBjb25maWcgZmlsZTsgZS5nLiwKKworICAgICAgW211bHRpbWFpbGhvb2tdCisgICAgICAgICAgICAgIG1haWxpbmdsaXN0ID0gbXIuYnJvd25AZXhhbXBsZS5jb20sIG1yLmJsYWNrQGV4YW1wbGUuY29tCisgICAgICAgICAgICAgIGFubm91bmNlbGlzdCA9IEhpbSA8aGltQGV4YW1wbGUuY29tPgorICAgICAgICAgICAgICBhbm5vdW5jZWxpc3QgPSBKaW0gPGppbUBleGFtcGxlLmNvbT4KKyAgICAgICAgICAgICAgYW5ub3VuY2VsaXN0ID0gcG9wQGV4YW1wbGUuY29tCisKKyAgVGhpcyBtaWdodCBtYWtlIGl0IGVhc2llciB0byBtYWludGFpbiBzaG9ydCByZWNpcGllbnRzIGxpc3RzIHdpdGhvdXQKKyAgcmVxdWlyaW5nIGZ1bGwtZmxlZGdlZCBtYWlsaW5nIGxpc3Qgc29mdHdhcmUuCisKKyogQnkgZGVmYXVsdCwgZ2l0LW11bHRpbWFpbCBzZXRzIGVtYWlsICJSZXBseS1UbyIgaGVhZGVycyB0byByZXBseSB0bworICB0aGUgcHVzaGVyIChmb3IgcmVmZXJlbmNlIHVwZGF0ZXMpIGFuZCB0byB0aGUgYXV0aG9yIChmb3IgY29tbWl0CisgIG5vdGlmaWNhdGlvbnMpLiAgQnkgZGVmYXVsdCwgdGhlIHB1c2hlcidzIGVtYWlsIGFkZHJlc3MgaXMKKyAgY29uc3RydWN0ZWQgYnkgYXBwZW5kaW5nICJtdWx0aW1haWxob29rLmVtYWlsZG9tYWluIiB0byB0aGUgcHVzaGVyJ3MKKyAgdXNlcm5hbWUuCisKKyogVGhlIGdlbmVyYXRlZCBlbWFpbHMgY29udGFpbiBhIGNvbmZpZ3VyYWJsZSBmb290ZXIuICBCeSBkZWZhdWx0LCBpdAorICBsaXN0cyB0aGUgbmFtZSBvZiB0aGUgYWRtaW5pc3RyYXRvciB3aG8gc2hvdWxkIGJlIGNvbnRhY3RlZCB0bworICB1bnN1YnNjcmliZSBmcm9tIG5vdGlmaWNhdGlvbiBlbWFpbHMuCisKKyogTmV3IG9wdGlvbiBtdWx0aW1haWxob29rLmVtYWlsbWF4bGluZWxlbmd0aCB0byBsaW1pdCB0aGUgbGVuZ3RoIG9mCisgIGxpbmVzIGluIHRoZSBtYWluIHBhcnQgb2YgdGhlIGVtYWlsIGJvZHkuICBUaGUgZGVmYXVsdCBsaW1pdCBpcyA1MDAKKyAgY2hhcmFjdGVycy4KKworKiBOZXcgb3B0aW9uIG11bHRpbWFpbGhvb2suZW1haWxzdHJpY3R1dGY4IHRvIGVuc3VyZSB0aGF0IHRoZSBtYWluCisgIHBhcnQgb2YgdGhlIGVtYWlsIGJvZHkgaXMgdmFsaWQgVVRGLTguICBJbnZhbGlkIGNoYXJhY3RlcnMgYXJlCisgIHR1cm5lZCBpbnRvIHRoZSBVbmljb2RlIHJlcGxhY2VtZW50IGNoYXJhY3RlciwgVStGRkZELiAgQnkgZGVmYXVsdAorICB0aGlzIG9wdGlvbiBpcyB0dXJuZWQgb24uCisKKyogV3JpdHRlbiBpbiBQeXRob24uICBFYXNpZXIgdG8gYWRkIG5ldyBmZWF0dXJlcy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL2dpdF9tdWx0aW1haWwucHkgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9naXRfbXVsdGltYWlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxYzZhNTEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2hvb2tzL211bHRpbWFpbC9naXRfbXVsdGltYWlsLnB5CkBAIC0wLDAgKzEsMjM5MyBAQAorIyEgL3Vzci9iaW4vZW52IHB5dGhvbjIKKworIyBDb3B5cmlnaHQgKGMpIDIwMTIsMjAxMyBNaWNoYWVsIEhhZ2dlcnR5CisjIERlcml2ZWQgZnJvbSBjb250cmliL2hvb2tzL3Bvc3QtcmVjZWl2ZS1lbWFpbCwgd2hpY2ggaXMKKyMgQ29weXJpZ2h0IChjKSAyMDA3IEFuZHkgUGFya2lucworIyBhbmQgYWxzbyBpbmNsdWRlcyBjb250cmlidXRpb25zIGJ5IG90aGVyIGF1dGhvcnMuCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGdpdC1tdWx0aW1haWwuCisjCisjIGdpdC1tdWx0aW1haWwgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyMgMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZQorIyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyIiIkdlbmVyYXRlIG5vdGlmaWNhdGlvbiBlbWFpbHMgZm9yIHB1c2hlcyB0byBhIGdpdCByZXBvc2l0b3J5LgorCitUaGlzIGhvb2sgc2VuZHMgZW1haWxzIGRlc2NyaWJpbmcgY2hhbmdlcyBpbnRyb2R1Y2VkIGJ5IHB1c2hlcyB0byBhCitnaXQgcmVwb3NpdG9yeS4gIEZvciBlYWNoIHJlZmVyZW5jZSB0aGF0IHdhcyBjaGFuZ2VkLCBpdCBlbWl0cyBvbmUKK1JlZmVyZW5jZUNoYW5nZSBlbWFpbCBzdW1tYXJpemluZyBob3cgdGhlIHJlZmVyZW5jZSB3YXMgY2hhbmdlZCwKK2ZvbGxvd2VkIGJ5IG9uZSBSZXZpc2lvbiBlbWFpbCBmb3IgZWFjaCBuZXcgY29tbWl0IHRoYXQgd2FzIGludHJvZHVjZWQKK2J5IHRoZSByZWZlcmVuY2UgY2hhbmdlLgorCitFYWNoIGNvbW1pdCBpcyBhbm5vdW5jZWQgaW4gZXhhY3RseSBvbmUgUmV2aXNpb24gZW1haWwuICBJZiB0aGUgc2FtZQorY29tbWl0IGlzIG1lcmdlZCBpbnRvIGFub3RoZXIgYnJhbmNoIGluIHRoZSBzYW1lIG9yIGEgbGF0ZXIgcHVzaCwgdGhlbgordGhlIFJlZmVyZW5jZUNoYW5nZSBlbWFpbCB3aWxsIGxpc3QgdGhlIGNvbW1pdCdzIFNIQTEgYW5kIGl0cyBvbmUtbGluZQorc3VtbWFyeSwgYnV0IG5vIG5ldyBSZXZpc2lvbiBlbWFpbCB3aWxsIGJlIGdlbmVyYXRlZC4KKworVGhpcyBzY3JpcHQgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBhcyBhICJwb3N0LXJlY2VpdmUiIGhvb2sgaW4gYSBnaXQKK3JlcG9zaXRvcnkgKHNlZSBnaXRob29rcyg1KSkuICBJdCBjYW4gYWxzbyBiZSB1c2VkIGFzIGFuICJ1cGRhdGUiCitzY3JpcHQsIGJ1dCB0aGlzIHVzYWdlIGlzIG5vdCBjb21wbGV0ZWx5IHJlbGlhYmxlIGFuZCBpcyBkZXByZWNhdGVkLgorCitUbyBoZWxwIHdpdGggZGVidWdnaW5nLCB0aGlzIHNjcmlwdCBhY2NlcHRzIGEgLS1zdGRvdXQgb3B0aW9uLCB3aGljaAorY2F1c2VzIHRoZSBlbWFpbHMgdG8gYmUgd3JpdHRlbiB0byBzdGFuZGFyZCBvdXRwdXQgcmF0aGVyIHRoYW4gc2VudAordXNpbmcgc2VuZG1haWwuCisKK1NlZSB0aGUgYWNjb21wYW55aW5nIFJFQURNRSBmaWxlIGZvciB0aGUgY29tcGxldGUgZG9jdW1lbnRhdGlvbi4KKworIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgYmlzZWN0CitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHNobGV4CitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBzbXRwbGliCisKK3RyeToKKyAgICBmcm9tIGVtYWlsLnV0aWxzIGltcG9ydCBtYWtlX21zZ2lkCisgICAgZnJvbSBlbWFpbC51dGlscyBpbXBvcnQgZ2V0YWRkcmVzc2VzCisgICAgZnJvbSBlbWFpbC51dGlscyBpbXBvcnQgZm9ybWF0YWRkcgorICAgIGZyb20gZW1haWwuaGVhZGVyIGltcG9ydCBIZWFkZXIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFByaW9yIHRvIFB5dGhvbiAyLjUsIHRoZSBlbWFpbCBtb2R1bGUgdXNlZCBkaWZmZXJlbnQgbmFtZXM6CisgICAgZnJvbSBlbWFpbC5VdGlscyBpbXBvcnQgbWFrZV9tc2dpZAorICAgIGZyb20gZW1haWwuVXRpbHMgaW1wb3J0IGdldGFkZHJlc3NlcworICAgIGZyb20gZW1haWwuVXRpbHMgaW1wb3J0IGZvcm1hdGFkZHIKKyAgICBmcm9tIGVtYWlsLkhlYWRlciBpbXBvcnQgSGVhZGVyCisKKworREVCVUcgPSBGYWxzZQorCitaRVJPUyA9ICcwJyAqIDQwCitMT0dCRUdJTiA9ICctIExvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJworTE9HRU5EID0gJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4nCisKKworIyBJdCBpcyBhc3N1bWVkIGluIG1hbnkgcGxhY2VzIHRoYXQgdGhlIGVuY29kaW5nIGlzIHVuaWZvcm1seSBVVEYtOCwKKyMgc28gY2hhbmdpbmcgdGhlc2UgY29uc3RhbnRzIGlzIHVuc3VwcG9ydGVkLiAgQnV0IGRlZmluZSB0aGVtIGhlcmUKKyMgYW55d2F5LCB0byBtYWtlIGl0IGVhc2llciB0byBmaW5kIChhdCBsZWFzdCBtb3N0IG9mKSB0aGUgcGxhY2VzCisjIHdoZXJlIHRoZSBlbmNvZGluZyBpcyBpbXBvcnRhbnQuCisoRU5DT0RJTkcsIENIQVJTRVQpID0gKCdVVEYtOCcsICd1dGYtOCcpCisKKworUkVGX0NSRUFURURfU1VCSkVDVF9URU1QTEFURSA9ICgKKyAgICAnJShlbWFpbHByZWZpeClzJShyZWZuYW1lX3R5cGUpcyAlKHNob3J0X3JlZm5hbWUpcyBjcmVhdGVkJworICAgICcgKG5vdyAlKG5ld3Jldl9zaG9ydClzKScKKyAgICApCitSRUZfVVBEQVRFRF9TVUJKRUNUX1RFTVBMQVRFID0gKAorICAgICclKGVtYWlscHJlZml4KXMlKHJlZm5hbWVfdHlwZSlzICUoc2hvcnRfcmVmbmFtZSlzIHVwZGF0ZWQnCisgICAgJyAoJShvbGRyZXZfc2hvcnQpcyAtPiAlKG5ld3Jldl9zaG9ydClzKScKKyAgICApCitSRUZfREVMRVRFRF9TVUJKRUNUX1RFTVBMQVRFID0gKAorICAgICclKGVtYWlscHJlZml4KXMlKHJlZm5hbWVfdHlwZSlzICUoc2hvcnRfcmVmbmFtZSlzIGRlbGV0ZWQnCisgICAgJyAod2FzICUob2xkcmV2X3Nob3J0KXMpJworICAgICkKKworUkVGQ0hBTkdFX0hFQURFUl9URU1QTEFURSA9ICIiIlwKK1RvOiAlKHJlY2lwaWVudHMpcworU3ViamVjdDogJShzdWJqZWN0KXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9JShjaGFyc2V0KXMKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKK01lc3NhZ2UtSUQ6ICUobXNnaWQpcworRnJvbTogJShmcm9tYWRkcilzCitSZXBseS1UbzogJShyZXBseV90bylzCitYLUdpdC1SZXBvOiAlKHJlcG9fc2hvcnRuYW1lKXMKK1gtR2l0LVJlZm5hbWU6ICUocmVmbmFtZSlzCitYLUdpdC1SZWZ0eXBlOiAlKHJlZm5hbWVfdHlwZSlzCitYLUdpdC1PbGRyZXY6ICUob2xkcmV2KXMKK1gtR2l0LU5ld3JldjogJShuZXdyZXYpcworQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkCisiIiIKKworUkVGQ0hBTkdFX0lOVFJPX1RFTVBMQVRFID0gIiIiXAorVGhpcyBpcyBhbiBhdXRvbWF0ZWQgZW1haWwgZnJvbSB0aGUgZ2l0IGhvb2tzL3Bvc3QtcmVjZWl2ZSBzY3JpcHQuCisKKyUocHVzaGVyKXMgcHVzaGVkIGEgY2hhbmdlIHRvICUocmVmbmFtZV90eXBlKXMgJShzaG9ydF9yZWZuYW1lKXMKK2luIHJlcG9zaXRvcnkgJShyZXBvX3Nob3J0bmFtZSlzLgorCisiIiIKKworCitGT09URVJfVEVNUExBVEUgPSAiIiJcCisKKy0tIFxuXAorVG8gc3RvcCByZWNlaXZpbmcgbm90aWZpY2F0aW9uIGVtYWlscyBsaWtlIHRoaXMgb25lLCBwbGVhc2UgY29udGFjdAorJShhZG1pbmlzdHJhdG9yKXMuCisiIiIKKworCitSRVdJTkRfT05MWV9URU1QTEFURSA9ICIiIlwKK1RoaXMgdXBkYXRlIHJlbW92ZWQgZXhpc3RpbmcgcmV2aXNpb25zIGZyb20gdGhlIHJlZmVyZW5jZSwgbGVhdmluZyB0aGUKK3JlZmVyZW5jZSBwb2ludGluZyBhdCBhIHByZXZpb3VzIHBvaW50IGluIHRoZSByZXBvc2l0b3J5IGhpc3RvcnkuCisKKyAqIC0tICogLS0gTiAgICUocmVmbmFtZSlzICglKG5ld3Jldl9zaG9ydClzKQorICAgICAgICAgICAgXFwKKyAgICAgICAgICAgICBPIC0tIE8gLS0gTyAgICglKG9sZHJldl9zaG9ydClzKQorCitBbnkgcmV2aXNpb25zIG1hcmtlZCAib21pdHMiIGFyZSBub3QgZ29uZTsgb3RoZXIgcmVmZXJlbmNlcyBzdGlsbAorcmVmZXIgdG8gdGhlbS4gIEFueSByZXZpc2lvbnMgbWFya2VkICJkaXNjYXJkcyIgYXJlIGdvbmUgZm9yZXZlci4KKyIiIgorCisKK05PTl9GRl9URU1QTEFURSA9ICIiIlwKK1RoaXMgdXBkYXRlIGFkZGVkIG5ldyByZXZpc2lvbnMgYWZ0ZXIgdW5kb2luZyBleGlzdGluZyByZXZpc2lvbnMuCitUaGF0IGlzIHRvIHNheSwgc29tZSByZXZpc2lvbnMgdGhhdCB3ZXJlIGluIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUKKyUocmVmbmFtZV90eXBlKXMgYXJlIG5vdCBpbiB0aGUgbmV3IHZlcnNpb24uICBUaGlzIHNpdHVhdGlvbiBvY2N1cnMKK3doZW4gYSB1c2VyIC0tZm9yY2UgcHVzaGVzIGEgY2hhbmdlIGFuZCBnZW5lcmF0ZXMgYSByZXBvc2l0b3J5Citjb250YWluaW5nIHNvbWV0aGluZyBsaWtlIHRoaXM6CisKKyAqIC0tICogLS0gQiAtLSBPIC0tIE8gLS0gTyAgICglKG9sZHJldl9zaG9ydClzKQorICAgICAgICAgICAgXFwKKyAgICAgICAgICAgICBOIC0tIE4gLS0gTiAgICUocmVmbmFtZSlzICglKG5ld3Jldl9zaG9ydClzKQorCitZb3Ugc2hvdWxkIGFscmVhZHkgaGF2ZSByZWNlaXZlZCBub3RpZmljYXRpb24gZW1haWxzIGZvciBhbGwgb2YgdGhlIE8KK3JldmlzaW9ucywgYW5kIHNvIHRoZSBmb2xsb3dpbmcgZW1haWxzIGRlc2NyaWJlIG9ubHkgdGhlIE4gcmV2aXNpb25zCitmcm9tIHRoZSBjb21tb24gYmFzZSwgQi4KKworQW55IHJldmlzaW9ucyBtYXJrZWQgIm9taXRzIiBhcmUgbm90IGdvbmU7IG90aGVyIHJlZmVyZW5jZXMgc3RpbGwKK3JlZmVyIHRvIHRoZW0uICBBbnkgcmV2aXNpb25zIG1hcmtlZCAiZGlzY2FyZHMiIGFyZSBnb25lIGZvcmV2ZXIuCisiIiIKKworCitOT19ORVdfUkVWSVNJT05TX1RFTVBMQVRFID0gIiIiXAorTm8gbmV3IHJldmlzaW9ucyB3ZXJlIGFkZGVkIGJ5IHRoaXMgdXBkYXRlLgorIiIiCisKKworRElTQ0FSREVEX1JFVklTSU9OU19URU1QTEFURSA9ICIiIlwKK1RoaXMgY2hhbmdlIHBlcm1hbmVudGx5IGRpc2NhcmRzIHRoZSBmb2xsb3dpbmcgcmV2aXNpb25zOgorIiIiCisKKworTk9fRElTQ0FSREVEX1JFVklTSU9OU19URU1QTEFURSA9ICIiIlwKK1RoZSByZXZpc2lvbnMgdGhhdCB3ZXJlIG9uIHRoaXMgJShyZWZuYW1lX3R5cGUpcyBhcmUgc3RpbGwgY29udGFpbmVkIGluCitvdGhlciByZWZlcmVuY2VzOyB0aGVyZWZvcmUsIHRoaXMgY2hhbmdlIGRvZXMgbm90IGRpc2NhcmQgYW55IGNvbW1pdHMKK2Zyb20gdGhlIHJlcG9zaXRvcnkuCisiIiIKKworCitORVdfUkVWSVNJT05TX1RFTVBMQVRFID0gIiIiXAorVGhlICUodG90KXMgcmV2aXNpb25zIGxpc3RlZCBhYm92ZSBhcyAibmV3IiBhcmUgZW50aXJlbHkgbmV3IHRvIHRoaXMKK3JlcG9zaXRvcnkgYW5kIHdpbGwgYmUgZGVzY3JpYmVkIGluIHNlcGFyYXRlIGVtYWlscy4gIFRoZSByZXZpc2lvbnMKK2xpc3RlZCBhcyAiYWRkcyIgd2VyZSBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIHJlcG9zaXRvcnkgYW5kIGhhdmUgb25seQorYmVlbiBhZGRlZCB0byB0aGlzIHJlZmVyZW5jZS4KKworIiIiCisKKworVEFHX0NSRUFURURfVEVNUExBVEUgPSAiIiJcCisgICAgICAgIGF0ICAlKG5ld3Jldl9zaG9ydCktOXMgKCUobmV3cmV2X3R5cGUpcykKKyIiIgorCisKK1RBR19VUERBVEVEX1RFTVBMQVRFID0gIiIiXAorKioqIFdBUk5JTkc6IHRhZyAlKHNob3J0X3JlZm5hbWUpcyB3YXMgbW9kaWZpZWQhICoqKgorCisgICAgICBmcm9tICAlKG9sZHJldl9zaG9ydCktOXMgKCUob2xkcmV2X3R5cGUpcykKKyAgICAgICAgdG8gICUobmV3cmV2X3Nob3J0KS05cyAoJShuZXdyZXZfdHlwZSlzKQorIiIiCisKKworVEFHX0RFTEVURURfVEVNUExBVEUgPSAiIiJcCisqKiogV0FSTklORzogdGFnICUoc2hvcnRfcmVmbmFtZSlzIHdhcyBkZWxldGVkISAqKioKKworIiIiCisKKworIyBUaGUgdGVtcGxhdGUgdXNlZCBpbiBzdW1tYXJ5IHRhYmxlcy4gIEl0IGxvb2tzIGJlc3QgaWYgdGhpcyB1c2VzIHRoZQorIyBzYW1lIGFsaWdubWVudCBhcyBUQUdfQ1JFQVRFRF9URU1QTEFURSBhbmQgVEFHX1VQREFURURfVEVNUExBVEUuCitCUklFRl9TVU1NQVJZX1RFTVBMQVRFID0gIiIiXAorJShhY3Rpb24pMTBzICAlKHJldl9zaG9ydCktOXMgJSh0ZXh0KXMKKyIiIgorCisKK05PTl9DT01NSVRfVVBEQVRFX1RFTVBMQVRFID0gIiIiXAorVGhpcyBpcyBhbiB1bnVzdWFsIHJlZmVyZW5jZSBjaGFuZ2UgYmVjYXVzZSB0aGUgcmVmZXJlbmNlIGRpZCBub3QKK3JlZmVyIHRvIGEgY29tbWl0IGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGNoYW5nZS4gIFdlIGRvIG5vdCBrbm93Citob3cgdG8gcHJvdmlkZSBmdWxsIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgcmVmZXJlbmNlIGNoYW5nZS4KKyIiIgorCisKK1JFVklTSU9OX0hFQURFUl9URU1QTEFURSA9ICIiIlwKK1RvOiAlKHJlY2lwaWVudHMpcworU3ViamVjdDogJShlbWFpbHByZWZpeClzJShudW0pMDJkLyUodG90KTAyZDogJShvbmVsaW5lKXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9JShjaGFyc2V0KXMKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKK0Zyb206ICUoZnJvbWFkZHIpcworUmVwbHktVG86ICUocmVwbHlfdG8pcworSW4tUmVwbHktVG86ICUocmVwbHlfdG9fbXNnaWQpcworUmVmZXJlbmNlczogJShyZXBseV90b19tc2dpZClzCitYLUdpdC1SZXBvOiAlKHJlcG9fc2hvcnRuYW1lKXMKK1gtR2l0LVJlZm5hbWU6ICUocmVmbmFtZSlzCitYLUdpdC1SZWZ0eXBlOiAlKHJlZm5hbWVfdHlwZSlzCitYLUdpdC1SZXY6ICUocmV2KXMKK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZAorIiIiCisKK1JFVklTSU9OX0lOVFJPX1RFTVBMQVRFID0gIiIiXAorVGhpcyBpcyBhbiBhdXRvbWF0ZWQgZW1haWwgZnJvbSB0aGUgZ2l0IGhvb2tzL3Bvc3QtcmVjZWl2ZSBzY3JpcHQuCisKKyUocHVzaGVyKXMgcHVzaGVkIGEgY29tbWl0IHRvICUocmVmbmFtZV90eXBlKXMgJShzaG9ydF9yZWZuYW1lKXMKK2luIHJlcG9zaXRvcnkgJShyZXBvX3Nob3J0bmFtZSlzLgorCisiIiIKKworCitSRVZJU0lPTl9GT09URVJfVEVNUExBVEUgPSBGT09URVJfVEVNUExBVEUKKworCitjbGFzcyBDb21tYW5kRXJyb3IoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY21kLCByZXRjb2RlKToKKyAgICAgICAgc2VsZi5jbWQgPSBjbWQKKyAgICAgICAgc2VsZi5yZXRjb2RlID0gcmV0Y29kZQorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oCisgICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgJ0NvbW1hbmQgIiVzIiBmYWlsZWQgd2l0aCByZXRjb2RlICVzJyAlICgnICcuam9pbihjbWQpLCByZXRjb2RlLCkKKyAgICAgICAgICAgICkKKworCitjbGFzcyBDb25maWd1cmF0aW9uRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisKK2RlZiByZWFkX2dpdF9vdXRwdXQoYXJncywgaW5wdXQ9Tm9uZSwga2VlcGVuZHM9RmFsc2UsICoqa3cpOgorICAgICIiIlJlYWQgdGhlIG91dHB1dCBvZiBhIEdpdCBjb21tYW5kLiIiIgorCisgICAgcmV0dXJuIHJlYWRfb3V0cHV0KAorICAgICAgICBbJ2dpdCcsICctYycsICdpMThuLmxvZ291dHB1dGVuY29kaW5nPSVzJyAlIChFTkNPRElORywpXSArIGFyZ3MsCisgICAgICAgIGlucHV0PWlucHV0LCBrZWVwZW5kcz1rZWVwZW5kcywgKiprdworICAgICAgICApCisKKworZGVmIHJlYWRfb3V0cHV0KGNtZCwgaW5wdXQ9Tm9uZSwga2VlcGVuZHM9RmFsc2UsICoqa3cpOgorICAgIGlmIGlucHV0OgorICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRQorICAgIGVsc2U6CisgICAgICAgIHN0ZGluID0gTm9uZQorICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgICAgICBjbWQsIHN0ZGluPXN0ZGluLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLCAqKmt3CisgICAgICAgICkKKyAgICAob3V0LCBlcnIpID0gcC5jb21tdW5pY2F0ZShpbnB1dCkKKyAgICByZXRjb2RlID0gcC53YWl0KCkKKyAgICBpZiByZXRjb2RlOgorICAgICAgICByYWlzZSBDb21tYW5kRXJyb3IoY21kLCByZXRjb2RlKQorICAgIGlmIG5vdCBrZWVwZW5kczoKKyAgICAgICAgb3V0ID0gb3V0LnJzdHJpcCgnXG5ccicpCisgICAgcmV0dXJuIG91dAorCisKK2RlZiByZWFkX2dpdF9saW5lcyhhcmdzLCBrZWVwZW5kcz1GYWxzZSwgKiprdyk6CisgICAgIiIiUmV0dXJuIHRoZSBsaW5lcyBvdXRwdXQgYnkgR2l0IGNvbW1hbmQuCisKKyAgICBSZXR1cm4gYXMgc2luZ2xlIGxpbmVzLCB3aXRoIG5ld2xpbmVzIHN0cmlwcGVkIG9mZi4iIiIKKworICAgIHJldHVybiByZWFkX2dpdF9vdXRwdXQoYXJncywga2VlcGVuZHM9VHJ1ZSwgKiprdykuc3BsaXRsaW5lcyhrZWVwZW5kcykKKworCitjbGFzcyBDb25maWcob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2VjdGlvbiwgZ2l0X2NvbmZpZz1Ob25lKToKKyAgICAgICAgIiIiUmVwcmVzZW50IGEgc2VjdGlvbiBvZiB0aGUgZ2l0IGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgSWYgZ2l0X2NvbmZpZyBpcyBzcGVjaWZpZWQsIGl0IGlzIHBhc3NlZCB0byAiZ2l0IGNvbmZpZyIgaW4KKyAgICAgICAgdGhlIEdJVF9DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUsIG1lYW5pbmcgdGhhdCAiZ2l0IGNvbmZpZyIKKyAgICAgICAgd2lsbCByZWFkIHRoZSBzcGVjaWZpZWQgcGF0aCByYXRoZXIgdGhhbiB0aGUgR2l0IGRlZmF1bHQKKyAgICAgICAgY29uZmlnIHBhdGhzLiIiIgorCisgICAgICAgIHNlbGYuc2VjdGlvbiA9IHNlY3Rpb24KKyAgICAgICAgaWYgZ2l0X2NvbmZpZzoKKyAgICAgICAgICAgIHNlbGYuZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgICAgIHNlbGYuZW52WydHSVRfQ09ORklHJ10gPSBnaXRfY29uZmlnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmVudiA9IE5vbmUKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX3NwbGl0KHMpOgorICAgICAgICAiIiJTcGxpdCBOVUwtdGVybWluYXRlZCB2YWx1ZXMuIiIiCisKKyAgICAgICAgd29yZHMgPSBzLnNwbGl0KCdcMCcpCisgICAgICAgIGFzc2VydCB3b3Jkc1stMV0gPT0gJycKKyAgICAgICAgcmV0dXJuIHdvcmRzWzotMV0KKworICAgIGRlZiBnZXQoc2VsZiwgbmFtZSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmFsdWVzID0gc2VsZi5fc3BsaXQocmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgICAgICAgICBbJ2NvbmZpZycsICctLWdldCcsICctLW51bGwnLCAnJXMuJXMnICUgKHNlbGYuc2VjdGlvbiwgbmFtZSldLAorICAgICAgICAgICAgICAgICAgICBlbnY9c2VsZi5lbnYsIGtlZXBlbmRzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlc1swXQorICAgICAgICBleGNlcHQgQ29tbWFuZEVycm9yOgorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBnZXRfYm9vbChzZWxmLCBuYW1lLCBkZWZhdWx0PU5vbmUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB2YWx1ZSA9IHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgICAgICBbJ2NvbmZpZycsICctLWdldCcsICctLWJvb2wnLCAnJXMuJXMnICUgKHNlbGYuc2VjdGlvbiwgbmFtZSldLAorICAgICAgICAgICAgICAgIGVudj1zZWxmLmVudiwKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICByZXR1cm4gdmFsdWUgPT0gJ3RydWUnCisKKyAgICBkZWYgZ2V0X2FsbChzZWxmLCBuYW1lLCBkZWZhdWx0PU5vbmUpOgorICAgICAgICAiIiJSZWFkIGEgKHBvc3NpYmx5IG11bHRpdmFsdWVkKSBzZXR0aW5nIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgUmV0dXJuIHRoZSByZXN1bHQgYXMgYSBsaXN0IG9mIHZhbHVlcywgb3IgZGVmYXVsdCBpZiB0aGUgbmFtZQorICAgICAgICBpcyB1bnNldC4iIiIKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc3BsaXQocmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgICAgIFsnY29uZmlnJywgJy0tZ2V0LWFsbCcsICctLW51bGwnLCAnJXMuJXMnICUgKHNlbGYuc2VjdGlvbiwgbmFtZSldLAorICAgICAgICAgICAgICAgIGVudj1zZWxmLmVudiwga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICApKQorICAgICAgICBleGNlcHQgQ29tbWFuZEVycm9yLCBlOgorICAgICAgICAgICAgaWYgZS5yZXRjb2RlID09IDE6CisgICAgICAgICAgICAgICAgIyAidGhlIHNlY3Rpb24gb3Iga2V5IGlzIGludmFsaWQiOyBpLmUuLCB0aGVyZSBpcyBubworICAgICAgICAgICAgICAgICMgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQga2V5LgorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgZ2V0X3JlY2lwaWVudHMoc2VsZiwgbmFtZSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgIiIiUmVhZCBhIHJlY2lwaWVudHMgbGlzdCBmcm9tIHRoZSBjb25maWd1cmF0aW9uLgorCisgICAgICAgIFJldHVybiB0aGUgcmVzdWx0IGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwKKyAgICAgICAgYWRkcmVzc2VzLCBvciBkZWZhdWx0IGlmIHRoZSBvcHRpb24gaXMgdW5zZXQuICBJZiB0aGUgc2V0dGluZworICAgICAgICBoYXMgbXVsdGlwbGUgdmFsdWVzLCBjb25jYXRlbmF0ZSB0aGVtIHdpdGggY29tbWEgc2VwYXJhdG9ycy4iIiIKKworICAgICAgICBsaW5lcyA9IHNlbGYuZ2V0X2FsbChuYW1lLCBkZWZhdWx0PU5vbmUpCisgICAgICAgIGlmIGxpbmVzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICByZXR1cm4gJywgJy5qb2luKGxpbmUuc3RyaXAoKSBmb3IgbGluZSBpbiBsaW5lcykKKworICAgIGRlZiBzZXQoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICByZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICBbJ2NvbmZpZycsICclcy4lcycgJSAoc2VsZi5zZWN0aW9uLCBuYW1lKSwgdmFsdWVdLAorICAgICAgICAgICAgZW52PXNlbGYuZW52LAorICAgICAgICAgICAgKQorCisgICAgZGVmIGFkZChzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgIFsnY29uZmlnJywgJy0tYWRkJywgJyVzLiVzJyAlIChzZWxmLnNlY3Rpb24sIG5hbWUpLCB2YWx1ZV0sCisgICAgICAgICAgICBlbnY9c2VsZi5lbnYsCisgICAgICAgICAgICApCisKKyAgICBkZWYgaGFzX2tleShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X2FsbChuYW1lLCBkZWZhdWx0PU5vbmUpIGlzIG5vdCBOb25lCisKKyAgICBkZWYgdW5zZXRfYWxsKHNlbGYsIG5hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICAgICAgWydjb25maWcnLCAnLS11bnNldC1hbGwnLCAnJXMuJXMnICUgKHNlbGYuc2VjdGlvbiwgbmFtZSldLAorICAgICAgICAgICAgICAgIGVudj1zZWxmLmVudiwKKyAgICAgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLnJldGNvZGUgPT0gNToKKyAgICAgICAgICAgICAgICAjIFRoZSBuYW1lIGRvZXNuJ3QgZXhpc3QsIHdoaWNoIGlzIHdoYXQgd2Ugd2FudGVkIGFueXdheS4uLgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiBzZXRfcmVjaXBpZW50cyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudW5zZXRfYWxsKG5hbWUpCisgICAgICAgIGZvciBwYWlyIGluIGdldGFkZHJlc3NlcyhbdmFsdWVdKToKKyAgICAgICAgICAgIHNlbGYuYWRkKG5hbWUsIGZvcm1hdGFkZHIocGFpcikpCisKKworZGVmIGdlbmVyYXRlX3N1bW1hcmllcygqbG9nX2FyZ3MpOgorICAgICIiIkdlbmVyYXRlIGEgYnJpZWYgc3VtbWFyeSBmb3IgZWFjaCByZXZpc2lvbiByZXF1ZXN0ZWQuCisKKyAgICBsb2dfYXJncyBhcmUgc3RyaW5ncyB0aGF0IHdpbGwgYmUgcGFzc2VkIGRpcmVjdGx5IHRvICJnaXQgbG9nIiBhcworICAgIHJldmlzaW9uIHNlbGVjdG9ycy4gIEl0ZXJhdGUgb3ZlciAoc2hhMV9zaG9ydCwgc3ViamVjdCkgZm9yIGVhY2gKKyAgICBjb21taXQgc3BlY2lmaWVkIGJ5IGxvZ19hcmdzIChzdWJqZWN0IGlzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZQorICAgIGNvbW1pdCBtZXNzYWdlIGFzIGEgc3RyaW5nIHdpdGhvdXQgRU9McykuIiIiCisKKyAgICBjbWQgPSBbCisgICAgICAgICdsb2cnLCAnLS1hYmJyZXYnLCAnLS1mb3JtYXQ9JWggJXMnLAorICAgICAgICBdICsgbGlzdChsb2dfYXJncykgKyBbJy0tJ10KKyAgICBmb3IgbGluZSBpbiByZWFkX2dpdF9saW5lcyhjbWQpOgorICAgICAgICB5aWVsZCB0dXBsZShsaW5lLnNwbGl0KCcgJywgMSkpCisKKworZGVmIGxpbWl0X2xpbmVzKGxpbmVzLCBtYXhfbGluZXMpOgorICAgIGZvciAoaW5kZXgsIGxpbmUpIGluIGVudW1lcmF0ZShsaW5lcyk6CisgICAgICAgIGlmIGluZGV4IDwgbWF4X2xpbmVzOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgaWYgaW5kZXggPj0gbWF4X2xpbmVzOgorICAgICAgICB5aWVsZCAnLi4uICVkIGxpbmVzIHN1cHByZXNzZWQgLi4uXG4nICUgKGluZGV4ICsgMSAtIG1heF9saW5lcywpCisKKworZGVmIGxpbWl0X2xpbmVsZW5ndGgobGluZXMsIG1heF9saW5lbGVuZ3RoKToKKyAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgIyBEb24ndCBmb3JnZXQgdGhhdCBsaW5lcyBhbHdheXMgaW5jbHVkZSBhIHRyYWlsaW5nIG5ld2xpbmUuCisgICAgICAgIGlmIGxlbihsaW5lKSA+IG1heF9saW5lbGVuZ3RoICsgMToKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lWzptYXhfbGluZWxlbmd0aCAtIDddICsgJyBbLi4uXVxuJworICAgICAgICB5aWVsZCBsaW5lCisKKworY2xhc3MgQ29tbWl0U2V0KG9iamVjdCk6CisgICAgIiIiQSAoY29uc3RhbnQpIHNldCBvZiBvYmplY3QgbmFtZXMuCisKKyAgICBUaGUgc2V0IHNob3VsZCBiZSBpbml0aWFsaXplZCB3aXRoIGZ1bGwgU0hBMSBvYmplY3QgbmFtZXMuICBUaGUKKyAgICBfX2NvbnRhaW5zX18oKSBtZXRob2QgcmV0dXJucyBUcnVlIGlmZiBpdHMgYXJndW1lbnQgaXMgYW4KKyAgICBhYmJyZXZpYXRpb24gb2YgYW55IHRoZSBuYW1lcyBpbiB0aGUgc2V0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWVzKToKKyAgICAgICAgc2VsZi5fbmFtZXMgPSBzb3J0ZWQobmFtZXMpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9uYW1lcykKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgc2hhMV9hYmJyZXYpOgorICAgICAgICAiIiJSZXR1cm4gVHJ1ZSBpZmYgdGhpcyBzZXQgY29udGFpbnMgc2hhMV9hYmJyZXYgKHdoaWNoIG1pZ2h0IGJlIGFiYnJldmlhdGVkKS4iIiIKKworICAgICAgICBpID0gYmlzZWN0LmJpc2VjdF9sZWZ0KHNlbGYuX25hbWVzLCBzaGExX2FiYnJldikKKyAgICAgICAgcmV0dXJuIGkgPCBsZW4oc2VsZikgYW5kIHNlbGYuX25hbWVzW2ldLnN0YXJ0c3dpdGgoc2hhMV9hYmJyZXYpCisKKworY2xhc3MgR2l0T2JqZWN0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNoYTEsIHR5cGU9Tm9uZSk6CisgICAgICAgIGlmIHNoYTEgPT0gWkVST1M6CisgICAgICAgICAgICBzZWxmLnNoYTEgPSBzZWxmLnR5cGUgPSBzZWxmLmNvbW1pdF9zaGExID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zaGExID0gc2hhMQorICAgICAgICAgICAgc2VsZi50eXBlID0gdHlwZSBvciByZWFkX2dpdF9vdXRwdXQoWydjYXQtZmlsZScsICctdCcsIHNlbGYuc2hhMV0pCisKKyAgICAgICAgICAgIGlmIHNlbGYudHlwZSA9PSAnY29tbWl0JzoKKyAgICAgICAgICAgICAgICBzZWxmLmNvbW1pdF9zaGExID0gc2VsZi5zaGExCisgICAgICAgICAgICBlbGlmIHNlbGYudHlwZSA9PSAndGFnJzoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWl0X3NoYTEgPSByZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICAgICAgICAgICAgICBbJ3Jldi1wYXJzZScsICctLXZlcmlmeScsICclc14wJyAlIChzZWxmLnNoYTEsKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBleGNlcHQgQ29tbWFuZEVycm9yOgorICAgICAgICAgICAgICAgICAgICAjIENhbm5vdCBkZXJlZiB0YWcgdG8gZGV0ZXJtaW5lIGNvbW1pdF9zaGExCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWl0X3NoYTEgPSBOb25lCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuY29tbWl0X3NoYTEgPSBOb25lCisKKyAgICAgICAgc2VsZi5zaG9ydCA9IHJlYWRfZ2l0X291dHB1dChbJ3Jldi1wYXJzZScsICctLXNob3J0Jywgc2hhMV0pCisKKyAgICBkZWYgZ2V0X3N1bW1hcnkoc2VsZik6CisgICAgICAgICIiIlJldHVybiAoc2hhMV9zaG9ydCwgc3ViamVjdCkgZm9yIHRoaXMgY29tbWl0LiIiIgorCisgICAgICAgIGlmIG5vdCBzZWxmLnNoYTE6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFbXB0eSBjb21taXQgaGFzIG5vIHN1bW1hcnknKQorCisgICAgICAgIHJldHVybiBpdGVyKGdlbmVyYXRlX3N1bW1hcmllcygnLS1uby13YWxrJywgc2VsZi5zaGExKSkubmV4dCgpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uob3RoZXIsIEdpdE9iamVjdCkgYW5kIHNlbGYuc2hhMSA9PSBvdGhlci5zaGExCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiBoYXNoKHNlbGYuc2hhMSkKKworICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5zaGExKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNoYTEgb3IgWkVST1MKKworCitjbGFzcyBDaGFuZ2Uob2JqZWN0KToKKyAgICAiIiJBIENoYW5nZSB0aGF0IGhhcyBiZWVuIG1hZGUgdG8gdGhlIEdpdCByZXBvc2l0b3J5LgorCisgICAgQWJzdHJhY3QgY2xhc3MgZnJvbSB3aGljaCBib3RoIFJldmlzaW9ucyBhbmQgUmVmZXJlbmNlQ2hhbmdlcyBhcmUKKyAgICBkZXJpdmVkLiAgQSBDaGFuZ2Uga25vd3MgaG93IHRvIGdlbmVyYXRlIGEgbm90aWZpY2F0aW9uIGVtYWlsCisgICAgZGVzY3JpYmluZyBpdHNlbGYuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZW52aXJvbm1lbnQpOgorICAgICAgICBzZWxmLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQKKyAgICAgICAgc2VsZi5fdmFsdWVzID0gTm9uZQorCisgICAgZGVmIF9jb21wdXRlX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgZGljdGlvbmFyeSB7a2V5d29yZCA6IGV4cGFuc2lvbn0gZm9yIHRoaXMgQ2hhbmdlLgorCisgICAgICAgIERlcml2ZWQgY2xhc3NlcyBvdmVybG9hZCB0aGlzIG1ldGhvZCB0byBhZGQgbW9yZSBlbnRyaWVzIHRvCisgICAgICAgIHRoZSByZXR1cm4gdmFsdWUuICBUaGlzIG1ldGhvZCBpcyB1c2VkIGludGVybmFsbHkgYnkKKyAgICAgICAgZ2V0X3ZhbHVlcygpLiAgVGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYWx3YXlzIGJlIGEgbmV3CisgICAgICAgIGRpY3Rpb25hcnkuIiIiCisKKyAgICAgICAgcmV0dXJuIHNlbGYuZW52aXJvbm1lbnQuZ2V0X3ZhbHVlcygpCisKKyAgICBkZWYgZ2V0X3ZhbHVlcyhzZWxmLCAqKmV4dHJhX3ZhbHVlcyk6CisgICAgICAgICIiIlJldHVybiBhIGRpY3Rpb25hcnkge2tleXdvcmQgOiBleHBhbnNpb259IGZvciB0aGlzIENoYW5nZS4KKworICAgICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IG1hcHBpbmcga2V5d29yZHMgdG8gdGhlIHZhbHVlcyB0aGF0IHRoZXkKKyAgICAgICAgc2hvdWxkIGJlIGV4cGFuZGVkIHRvIGZvciB0aGlzIENoYW5nZSAodXNlZCB3aGVuIGludGVycG9sYXRpbmcKKyAgICAgICAgdGVtcGxhdGUgc3RyaW5ncykuICBJZiBhbnkga2V5d29yZCBhcmd1bWVudHMgYXJlIHN1cHBsaWVkLCBhZGQKKyAgICAgICAgdGhvc2UgdG8gdGhlIHJldHVybiB2YWx1ZSBhcyB3ZWxsLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMKKyAgICAgICAgYSBuZXcgZGljdGlvbmFyeS4iIiIKKworICAgICAgICBpZiBzZWxmLl92YWx1ZXMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3ZhbHVlcyA9IHNlbGYuX2NvbXB1dGVfdmFsdWVzKCkKKworICAgICAgICB2YWx1ZXMgPSBzZWxmLl92YWx1ZXMuY29weSgpCisgICAgICAgIGlmIGV4dHJhX3ZhbHVlczoKKyAgICAgICAgICAgIHZhbHVlcy51cGRhdGUoZXh0cmFfdmFsdWVzKQorICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAgICBkZWYgZXhwYW5kKHNlbGYsIHRlbXBsYXRlLCAqKmV4dHJhX3ZhbHVlcyk6CisgICAgICAgICIiIkV4cGFuZCB0ZW1wbGF0ZS4KKworICAgICAgICBFeHBhbmQgdGhlIHRlbXBsYXRlICh3aGljaCBzaG91bGQgYmUgYSBzdHJpbmcpIHVzaW5nIHN0cmluZworICAgICAgICBpbnRlcnBvbGF0aW9uIG9mIHRoZSB2YWx1ZXMgZm9yIHRoaXMgQ2hhbmdlLiAgSWYgYW55IGtleXdvcmQKKyAgICAgICAgYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgYWxzbyBpbmNsdWRlIHRob3NlIGluIHRoZSBrZXl3b3JkcworICAgICAgICBhdmFpbGFibGUgZm9yIGludGVycG9sYXRpb24uIiIiCisKKyAgICAgICAgcmV0dXJuIHRlbXBsYXRlICUgc2VsZi5nZXRfdmFsdWVzKCoqZXh0cmFfdmFsdWVzKQorCisgICAgZGVmIGV4cGFuZF9saW5lcyhzZWxmLCB0ZW1wbGF0ZSwgKipleHRyYV92YWx1ZXMpOgorICAgICAgICAiIiJCcmVhayB0ZW1wbGF0ZSBpbnRvIGxpbmVzIGFuZCBleHBhbmQgZWFjaCBsaW5lLiIiIgorCisgICAgICAgIHZhbHVlcyA9IHNlbGYuZ2V0X3ZhbHVlcygqKmV4dHJhX3ZhbHVlcykKKyAgICAgICAgZm9yIGxpbmUgaW4gdGVtcGxhdGUuc3BsaXRsaW5lcyhUcnVlKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUgJSB2YWx1ZXMKKworICAgIGRlZiBleHBhbmRfaGVhZGVyX2xpbmVzKHNlbGYsIHRlbXBsYXRlLCAqKmV4dHJhX3ZhbHVlcyk6CisgICAgICAgICIiIkJyZWFrIHRlbXBsYXRlIGludG8gbGluZXMgYW5kIGV4cGFuZCBlYWNoIGxpbmUgYXMgYW4gUkZDIDI4MjIgaGVhZGVyLgorCisgICAgICAgIEVuY29kZSB2YWx1ZXMgYW5kIHNwbGl0IHVwIGxpbmVzIHRoYXQgYXJlIHRvbyBsb25nLiAgU2lsZW50bHkKKyAgICAgICAgc2tpcCBsaW5lcyB0aGF0IGNvbnRhaW4gcmVmZXJlbmNlcyB0byB1bmtub3duIHZhcmlhYmxlcy4iIiIKKworICAgICAgICB2YWx1ZXMgPSBzZWxmLmdldF92YWx1ZXMoKipleHRyYV92YWx1ZXMpCisgICAgICAgIGZvciBsaW5lIGluIHRlbXBsYXRlLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkgPSBsaW5lLnNwbGl0KCc6JywgMSkKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgJSB2YWx1ZXMKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvciwgZToKKyAgICAgICAgICAgICAgICBpZiBERUJVRzoKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICdXYXJuaW5nOiB1bmtub3duIHZhcmlhYmxlICVyIGluIHRoZSBmb2xsb3dpbmcgbGluZTsgbGluZSBza2lwcGVkOlxuJworICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAlc1xuJworICAgICAgICAgICAgICAgICAgICAgICAgJSAoZS5hcmdzWzBdLCBsaW5lLCkKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBoID0gSGVhZGVyKHZhbHVlLCBoZWFkZXJfbmFtZT1uYW1lKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGggPSBIZWFkZXIodmFsdWUsIGhlYWRlcl9uYW1lPW5hbWUsIGNoYXJzZXQ9Q0hBUlNFVCwgZXJyb3JzPSdyZXBsYWNlJykKKyAgICAgICAgICAgICAgICBmb3Igc3BsaXRsaW5lIGluICgnJXM6ICVzXG4nICUgKG5hbWUsIGguZW5jb2RlKCksKSkuc3BsaXRsaW5lcyhUcnVlKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc3BsaXRsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfaGVhZGVyKHNlbGYpOgorICAgICAgICAiIiJHZW5lcmF0ZSB0aGUgUkZDIDI4MjIgZW1haWwgaGVhZGVycyBmb3IgdGhpcyBDaGFuZ2UsIGEgbGluZSBhdCBhIHRpbWUuCisKKyAgICAgICAgVGhlIG91dHB1dCBzaG91bGQgbm90IGluY2x1ZGUgdGhlIHRyYWlsaW5nIGJsYW5rIGxpbmUuIiIiCisKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfaW50cm8oc2VsZik6CisgICAgICAgICIiIkdlbmVyYXRlIHRoZSBlbWFpbCBpbnRybyBmb3IgdGhpcyBDaGFuZ2UsIGEgbGluZSBhdCBhIHRpbWUuCisKKyAgICAgICAgVGhlIG91dHB1dCB3aWxsIGJlIHVzZWQgYXMgdGhlIHN0YW5kYXJkIGJvaWxlcnBsYXRlIGF0IHRoZSB0b3AKKyAgICAgICAgb2YgdGhlIGVtYWlsIGJvZHkuIiIiCisKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfYm9keShzZWxmKToKKyAgICAgICAgIiIiR2VuZXJhdGUgdGhlIG1haW4gcGFydCBvZiB0aGUgZW1haWwgYm9keSwgYSBsaW5lIGF0IGEgdGltZS4KKworICAgICAgICBUaGUgdGV4dCBpbiB0aGUgYm9keSBtaWdodCBiZSB0cnVuY2F0ZWQgYWZ0ZXIgYSBzcGVjaWZpZWQKKyAgICAgICAgbnVtYmVyIG9mIGxpbmVzIChzZWUgbXVsdGltYWlsaG9vay5lbWFpbG1heGxpbmVzKS4iIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9mb290ZXIoc2VsZik6CisgICAgICAgICIiIkdlbmVyYXRlIHRoZSBmb290ZXIgb2YgdGhlIGVtYWlsLCBhIGxpbmUgYXQgYSB0aW1lLgorCisgICAgICAgIFRoZSBmb290ZXIgaXMgYWx3YXlzIGluY2x1ZGVkLCBpcnJlc3BlY3RpdmUgb2YKKyAgICAgICAgbXVsdGltYWlsaG9vay5lbWFpbG1heGxpbmVzLiIiIgorCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsKHNlbGYsIHB1c2gsIGJvZHlfZmlsdGVyPU5vbmUpOgorICAgICAgICAiIiJHZW5lcmF0ZSBhbiBlbWFpbCBkZXNjcmliaW5nIHRoaXMgY2hhbmdlLgorCisgICAgICAgIEl0ZXJhdGUgb3ZlciB0aGUgbGluZXMgKGluY2x1ZGluZyB0aGUgaGVhZGVyIGxpbmVzKSBvZiBhbgorICAgICAgICBlbWFpbCBkZXNjcmliaW5nIHRoaXMgY2hhbmdlLiAgSWYgYm9keV9maWx0ZXIgaXMgbm90IE5vbmUsCisgICAgICAgIHRoZW4gdXNlIGl0IHRvIGZpbHRlciB0aGUgbGluZXMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIHRoZQorICAgICAgICBlbWFpbCBib2R5LiIiIgorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZ2VuZXJhdGVfZW1haWxfaGVhZGVyKCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5nZW5lcmF0ZV9lbWFpbF9pbnRybygpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGJvZHkgPSBzZWxmLmdlbmVyYXRlX2VtYWlsX2JvZHkocHVzaCkKKyAgICAgICAgaWYgYm9keV9maWx0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBib2R5ID0gYm9keV9maWx0ZXIoYm9keSkKKyAgICAgICAgZm9yIGxpbmUgaW4gYm9keToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmdlbmVyYXRlX2VtYWlsX2Zvb3RlcigpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisKK2NsYXNzIFJldmlzaW9uKENoYW5nZSk6CisgICAgIiIiQSBDaGFuZ2UgY29uc2lzdGluZyBvZiBhIHNpbmdsZSBnaXQgY29tbWl0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlZmVyZW5jZV9jaGFuZ2UsIHJldiwgbnVtLCB0b3QpOgorICAgICAgICBDaGFuZ2UuX19pbml0X18oc2VsZiwgcmVmZXJlbmNlX2NoYW5nZS5lbnZpcm9ubWVudCkKKyAgICAgICAgc2VsZi5yZWZlcmVuY2VfY2hhbmdlID0gcmVmZXJlbmNlX2NoYW5nZQorICAgICAgICBzZWxmLnJldiA9IHJldgorICAgICAgICBzZWxmLmNoYW5nZV90eXBlID0gc2VsZi5yZWZlcmVuY2VfY2hhbmdlLmNoYW5nZV90eXBlCisgICAgICAgIHNlbGYucmVmbmFtZSA9IHNlbGYucmVmZXJlbmNlX2NoYW5nZS5yZWZuYW1lCisgICAgICAgIHNlbGYubnVtID0gbnVtCisgICAgICAgIHNlbGYudG90ID0gdG90CisgICAgICAgIHNlbGYuYXV0aG9yID0gcmVhZF9naXRfb3V0cHV0KFsnbG9nJywgJy0tbm8td2FsaycsICctLWZvcm1hdD0lYU4gPCVhRT4nLCBzZWxmLnJldi5zaGExXSkKKyAgICAgICAgc2VsZi5yZWNpcGllbnRzID0gc2VsZi5lbnZpcm9ubWVudC5nZXRfcmV2aXNpb25fcmVjaXBpZW50cyhzZWxmKQorCisgICAgZGVmIF9jb21wdXRlX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgdmFsdWVzID0gQ2hhbmdlLl9jb21wdXRlX3ZhbHVlcyhzZWxmKQorCisgICAgICAgIG9uZWxpbmUgPSByZWFkX2dpdF9vdXRwdXQoCisgICAgICAgICAgICBbJ2xvZycsICctLWZvcm1hdD0lcycsICctLW5vLXdhbGsnLCBzZWxmLnJldi5zaGExXQorICAgICAgICAgICAgKQorCisgICAgICAgIHZhbHVlc1sncmV2J10gPSBzZWxmLnJldi5zaGExCisgICAgICAgIHZhbHVlc1sncmV2X3Nob3J0J10gPSBzZWxmLnJldi5zaG9ydAorICAgICAgICB2YWx1ZXNbJ2NoYW5nZV90eXBlJ10gPSBzZWxmLmNoYW5nZV90eXBlCisgICAgICAgIHZhbHVlc1sncmVmbmFtZSddID0gc2VsZi5yZWZuYW1lCisgICAgICAgIHZhbHVlc1snc2hvcnRfcmVmbmFtZSddID0gc2VsZi5yZWZlcmVuY2VfY2hhbmdlLnNob3J0X3JlZm5hbWUKKyAgICAgICAgdmFsdWVzWydyZWZuYW1lX3R5cGUnXSA9IHNlbGYucmVmZXJlbmNlX2NoYW5nZS5yZWZuYW1lX3R5cGUKKyAgICAgICAgdmFsdWVzWydyZXBseV90b19tc2dpZCddID0gc2VsZi5yZWZlcmVuY2VfY2hhbmdlLm1zZ2lkCisgICAgICAgIHZhbHVlc1snbnVtJ10gPSBzZWxmLm51bQorICAgICAgICB2YWx1ZXNbJ3RvdCddID0gc2VsZi50b3QKKyAgICAgICAgdmFsdWVzWydyZWNpcGllbnRzJ10gPSBzZWxmLnJlY2lwaWVudHMKKyAgICAgICAgdmFsdWVzWydvbmVsaW5lJ10gPSBvbmVsaW5lCisgICAgICAgIHZhbHVlc1snYXV0aG9yJ10gPSBzZWxmLmF1dGhvcgorCisgICAgICAgIHJlcGx5X3RvID0gc2VsZi5lbnZpcm9ubWVudC5nZXRfcmVwbHlfdG9fY29tbWl0KHNlbGYpCisgICAgICAgIGlmIHJlcGx5X3RvOgorICAgICAgICAgICAgdmFsdWVzWydyZXBseV90byddID0gcmVwbHlfdG8KKworICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfaGVhZGVyKHNlbGYpOgorICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9oZWFkZXJfbGluZXMoUkVWSVNJT05fSEVBREVSX1RFTVBMQVRFKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9pbnRybyhzZWxmKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoUkVWSVNJT05fSU5UUk9fVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX2VtYWlsX2JvZHkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIlNob3cgdGhpcyByZXZpc2lvbi4iIiIKKworICAgICAgICByZXR1cm4gcmVhZF9naXRfbGluZXMoCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgJ2xvZycsICctQycsCisgICAgICAgICAgICAgICAgICctLXN0YXQnLCAnLXAnLCAnLS1jYycsCisgICAgICAgICAgICAgICAgJy0xJywgc2VsZi5yZXYuc2hhMSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9mb290ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmV4cGFuZF9saW5lcyhSRVZJU0lPTl9GT09URVJfVEVNUExBVEUpCisKKworY2xhc3MgUmVmZXJlbmNlQ2hhbmdlKENoYW5nZSk6CisgICAgIiIiQSBDaGFuZ2UgdG8gYSBHaXQgcmVmZXJlbmNlLgorCisgICAgQW4gYWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIGEgY3JlYXRlLCB1cGRhdGUsIG9yIGRlbGV0ZSBvZiBhCisgICAgR2l0IHJlZmVyZW5jZS4gIERlcml2ZWQgY2xhc3NlcyBoYW5kbGUgc3BlY2lmaWMgdHlwZXMgb2YgcmVmZXJlbmNlCisgICAgKGUuZy4sIHRhZ3MgdnMuIGJyYW5jaGVzKS4gIFRoZXNlIGNsYXNzZXMgZ2VuZXJhdGUgdGhlIG1haW4KKyAgICByZWZlcmVuY2UgY2hhbmdlIGVtYWlsIHN1bW1hcml6aW5nIHRoZSByZWZlcmVuY2UgY2hhbmdlIGFuZAorICAgIHdoZXRoZXIgaXQgY2F1c2VkIGFueSBhbnkgY29tbWl0cyB0byBiZSBhZGRlZCBvciByZW1vdmVkLgorCisgICAgUmVmZXJlbmNlQ2hhbmdlIG9iamVjdHMgYXJlIHVzdWFsbHkgY3JlYXRlZCB1c2luZyB0aGUgc3RhdGljCisgICAgY3JlYXRlKCkgbWV0aG9kLCB3aGljaCBoYXMgdGhlIGxvZ2ljIHRvIGRlY2lkZSB3aGljaCBkZXJpdmVkIGNsYXNzCisgICAgdG8gaW5zdGFudGlhdGUuIiIiCisKKyAgICBSRUZfUkUgPSByZS5jb21waWxlKHInXnJlZnNcLyg/UDxhcmVhPlteXC9dKylcLyg/UDxzaG9ydG5hbWU+LiopJCcpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGNyZWF0ZShlbnZpcm9ubWVudCwgb2xkcmV2LCBuZXdyZXYsIHJlZm5hbWUpOgorICAgICAgICAiIiJSZXR1cm4gYSBSZWZlcmVuY2VDaGFuZ2Ugb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgY2hhbmdlLgorCisgICAgICAgIFJldHVybiBhbiBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIGNoYW5nZSB0aGF0IGlzIGJlaW5nCisgICAgICAgIG1hZGUuIG9sZHJldiBhbmQgbmV3cmV2IHNob3VsZCBiZSBTSEExcyBvciBaRVJPUy4iIiIKKworICAgICAgICBvbGQgPSBHaXRPYmplY3Qob2xkcmV2KQorICAgICAgICBuZXcgPSBHaXRPYmplY3QobmV3cmV2KQorICAgICAgICByZXYgPSBuZXcgb3Igb2xkCisKKyAgICAgICAgIyBUaGUgcmV2aXNpb24gdHlwZSB0ZWxscyB1cyB3aGF0IHR5cGUgdGhlIGNvbW1pdCBpcywgY29tYmluZWQgd2l0aAorICAgICAgICAjIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVmIHdlIGNhbiBkZWNpZGUgYmV0d2VlbgorICAgICAgICAjICAtIHdvcmtpbmcgYnJhbmNoCisgICAgICAgICMgIC0gdHJhY2tpbmcgYnJhbmNoCisgICAgICAgICMgIC0gdW5hbm5vdGF0ZWQgdGFnCisgICAgICAgICMgIC0gYW5ub3RhdGVkIHRhZworICAgICAgICBtID0gUmVmZXJlbmNlQ2hhbmdlLlJFRl9SRS5tYXRjaChyZWZuYW1lKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgYXJlYSA9IG0uZ3JvdXAoJ2FyZWEnKQorICAgICAgICAgICAgc2hvcnRfcmVmbmFtZSA9IG0uZ3JvdXAoJ3Nob3J0bmFtZScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmVhID0gJycKKyAgICAgICAgICAgIHNob3J0X3JlZm5hbWUgPSByZWZuYW1lCisKKyAgICAgICAgaWYgcmV2LnR5cGUgPT0gJ3RhZyc6CisgICAgICAgICAgICAjIEFubm90YXRlZCB0YWc6CisgICAgICAgICAgICBrbGFzcyA9IEFubm90YXRlZFRhZ0NoYW5nZQorICAgICAgICBlbGlmIHJldi50eXBlID09ICdjb21taXQnOgorICAgICAgICAgICAgaWYgYXJlYSA9PSAndGFncyc6CisgICAgICAgICAgICAgICAgIyBOb24tYW5ub3RhdGVkIHRhZzoKKyAgICAgICAgICAgICAgICBrbGFzcyA9IE5vbkFubm90YXRlZFRhZ0NoYW5nZQorICAgICAgICAgICAgZWxpZiBhcmVhID09ICdoZWFkcyc6CisgICAgICAgICAgICAgICAgIyBCcmFuY2g6CisgICAgICAgICAgICAgICAga2xhc3MgPSBCcmFuY2hDaGFuZ2UKKyAgICAgICAgICAgIGVsaWYgYXJlYSA9PSAncmVtb3Rlcyc6CisgICAgICAgICAgICAgICAgIyBUcmFja2luZyBicmFuY2g6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAgICAgJyoqKiBQdXNoLXVwZGF0ZSBvZiB0cmFja2luZyBicmFuY2ggJXJcbicKKyAgICAgICAgICAgICAgICAgICAgJyoqKiAgLSBpbmNvbXBsZXRlIGVtYWlsIGdlbmVyYXRlZC5cbicKKyAgICAgICAgICAgICAgICAgICAgICUgKHJlZm5hbWUsKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAga2xhc3MgPSBPdGhlclJlZmVyZW5jZUNoYW5nZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIFNvbWUgb3RoZXIgcmVmZXJlbmNlIG5hbWVzcGFjZToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAnKioqIFB1c2gtdXBkYXRlIG9mIHN0cmFuZ2UgcmVmZXJlbmNlICVyXG4nCisgICAgICAgICAgICAgICAgICAgICcqKiogIC0gaW5jb21wbGV0ZSBlbWFpbCBnZW5lcmF0ZWQuXG4nCisgICAgICAgICAgICAgICAgICAgICAlIChyZWZuYW1lLCkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGtsYXNzID0gT3RoZXJSZWZlcmVuY2VDaGFuZ2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgQW55dGhpbmcgZWxzZSAoaXMgdGhlcmUgYW55dGhpbmcgZWxzZT8pCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICcqKiogVW5rbm93biB0eXBlIG9mIHVwZGF0ZSB0byAlciAoJXMpXG4nCisgICAgICAgICAgICAgICAgJyoqKiAgLSBpbmNvbXBsZXRlIGVtYWlsIGdlbmVyYXRlZC5cbicKKyAgICAgICAgICAgICAgICAgJSAocmVmbmFtZSwgcmV2LnR5cGUsKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGtsYXNzID0gT3RoZXJSZWZlcmVuY2VDaGFuZ2UKKworICAgICAgICByZXR1cm4ga2xhc3MoCisgICAgICAgICAgICBlbnZpcm9ubWVudCwKKyAgICAgICAgICAgIHJlZm5hbWU9cmVmbmFtZSwgc2hvcnRfcmVmbmFtZT1zaG9ydF9yZWZuYW1lLAorICAgICAgICAgICAgb2xkPW9sZCwgbmV3PW5ldywgcmV2PXJldiwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9ubWVudCwgcmVmbmFtZSwgc2hvcnRfcmVmbmFtZSwgb2xkLCBuZXcsIHJldik6CisgICAgICAgIENoYW5nZS5fX2luaXRfXyhzZWxmLCBlbnZpcm9ubWVudCkKKyAgICAgICAgc2VsZi5jaGFuZ2VfdHlwZSA9IHsKKyAgICAgICAgICAgIChGYWxzZSwgVHJ1ZSkgOiAnY3JlYXRlJywKKyAgICAgICAgICAgIChUcnVlLCBUcnVlKSA6ICd1cGRhdGUnLAorICAgICAgICAgICAgKFRydWUsIEZhbHNlKSA6ICdkZWxldGUnLAorICAgICAgICAgICAgfVtib29sKG9sZCksIGJvb2wobmV3KV0KKyAgICAgICAgc2VsZi5yZWZuYW1lID0gcmVmbmFtZQorICAgICAgICBzZWxmLnNob3J0X3JlZm5hbWUgPSBzaG9ydF9yZWZuYW1lCisgICAgICAgIHNlbGYub2xkID0gb2xkCisgICAgICAgIHNlbGYubmV3ID0gbmV3CisgICAgICAgIHNlbGYucmV2ID0gcmV2CisgICAgICAgIHNlbGYubXNnaWQgPSBtYWtlX21zZ2lkKCkKKyAgICAgICAgc2VsZi5kaWZmb3B0cyA9IGVudmlyb25tZW50LmRpZmZvcHRzCisgICAgICAgIHNlbGYubG9nb3B0cyA9IGVudmlyb25tZW50LmxvZ29wdHMKKyAgICAgICAgc2VsZi5zaG93bG9nID0gZW52aXJvbm1lbnQucmVmY2hhbmdlX3Nob3dsb2cKKworICAgIGRlZiBfY29tcHV0ZV92YWx1ZXMoc2VsZik6CisgICAgICAgIHZhbHVlcyA9IENoYW5nZS5fY29tcHV0ZV92YWx1ZXMoc2VsZikKKworICAgICAgICB2YWx1ZXNbJ2NoYW5nZV90eXBlJ10gPSBzZWxmLmNoYW5nZV90eXBlCisgICAgICAgIHZhbHVlc1sncmVmbmFtZV90eXBlJ10gPSBzZWxmLnJlZm5hbWVfdHlwZQorICAgICAgICB2YWx1ZXNbJ3JlZm5hbWUnXSA9IHNlbGYucmVmbmFtZQorICAgICAgICB2YWx1ZXNbJ3Nob3J0X3JlZm5hbWUnXSA9IHNlbGYuc2hvcnRfcmVmbmFtZQorICAgICAgICB2YWx1ZXNbJ21zZ2lkJ10gPSBzZWxmLm1zZ2lkCisgICAgICAgIHZhbHVlc1sncmVjaXBpZW50cyddID0gc2VsZi5yZWNpcGllbnRzCisgICAgICAgIHZhbHVlc1snb2xkcmV2J10gPSBzdHIoc2VsZi5vbGQpCisgICAgICAgIHZhbHVlc1snb2xkcmV2X3Nob3J0J10gPSBzZWxmLm9sZC5zaG9ydAorICAgICAgICB2YWx1ZXNbJ25ld3JldiddID0gc3RyKHNlbGYubmV3KQorICAgICAgICB2YWx1ZXNbJ25ld3Jldl9zaG9ydCddID0gc2VsZi5uZXcuc2hvcnQKKworICAgICAgICBpZiBzZWxmLm9sZDoKKyAgICAgICAgICAgIHZhbHVlc1snb2xkcmV2X3R5cGUnXSA9IHNlbGYub2xkLnR5cGUKKyAgICAgICAgaWYgc2VsZi5uZXc6CisgICAgICAgICAgICB2YWx1ZXNbJ25ld3Jldl90eXBlJ10gPSBzZWxmLm5ldy50eXBlCisKKyAgICAgICAgcmVwbHlfdG8gPSBzZWxmLmVudmlyb25tZW50LmdldF9yZXBseV90b19yZWZjaGFuZ2Uoc2VsZikKKyAgICAgICAgaWYgcmVwbHlfdG86CisgICAgICAgICAgICB2YWx1ZXNbJ3JlcGx5X3RvJ10gPSByZXBseV90bworCisgICAgICAgIHJldHVybiB2YWx1ZXMKKworICAgIGRlZiBnZXRfc3ViamVjdChzZWxmKToKKyAgICAgICAgdGVtcGxhdGUgPSB7CisgICAgICAgICAgICAnY3JlYXRlJyA6IFJFRl9DUkVBVEVEX1NVQkpFQ1RfVEVNUExBVEUsCisgICAgICAgICAgICAndXBkYXRlJyA6IFJFRl9VUERBVEVEX1NVQkpFQ1RfVEVNUExBVEUsCisgICAgICAgICAgICAnZGVsZXRlJyA6IFJFRl9ERUxFVEVEX1NVQkpFQ1RfVEVNUExBVEUsCisgICAgICAgICAgICB9W3NlbGYuY2hhbmdlX3R5cGVdCisgICAgICAgIHJldHVybiBzZWxmLmV4cGFuZCh0ZW1wbGF0ZSkKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9oZWFkZXIoc2VsZik6CisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2hlYWRlcl9saW5lcygKKyAgICAgICAgICAgIFJFRkNIQU5HRV9IRUFERVJfVEVNUExBVEUsIHN1YmplY3Q9c2VsZi5nZXRfc3ViamVjdCgpLAorICAgICAgICAgICAgKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9pbnRybyhzZWxmKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoUkVGQ0hBTkdFX0lOVFJPX1RFTVBMQVRFKToKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgIGRlZiBnZW5lcmF0ZV9lbWFpbF9ib2R5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsIHRoZSBhcHByb3ByaWF0ZSBib2R5LWdlbmVyYXRpb24gcm91dGluZS4KKworICAgICAgICBDYWxsIG9uZSBvZiBnZW5lcmF0ZV9jcmVhdGVfc3VtbWFyeSgpIC8KKyAgICAgICAgZ2VuZXJhdGVfdXBkYXRlX3N1bW1hcnkoKSAvIGdlbmVyYXRlX2RlbGV0ZV9zdW1tYXJ5KCkuIiIiCisKKyAgICAgICAgY2hhbmdlX3N1bW1hcnkgPSB7CisgICAgICAgICAgICAnY3JlYXRlJyA6IHNlbGYuZ2VuZXJhdGVfY3JlYXRlX3N1bW1hcnksCisgICAgICAgICAgICAnZGVsZXRlJyA6IHNlbGYuZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnksCisgICAgICAgICAgICAndXBkYXRlJyA6IHNlbGYuZ2VuZXJhdGVfdXBkYXRlX3N1bW1hcnksCisgICAgICAgICAgICB9W3NlbGYuY2hhbmdlX3R5cGVdKHB1c2gpCisgICAgICAgIGZvciBsaW5lIGluIGNoYW5nZV9zdW1tYXJ5OgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZ2VuZXJhdGVfcmV2aXNpb25fY2hhbmdlX3N1bW1hcnkocHVzaCk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfZW1haWxfZm9vdGVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5leHBhbmRfbGluZXMoRk9PVEVSX1RFTVBMQVRFKQorCisgICAgZGVmIGdlbmVyYXRlX3JldmlzaW9uX2NoYW5nZV9sb2coc2VsZiwgbmV3X2NvbW1pdHNfbGlzdCk6CisgICAgICAgIGlmIHNlbGYuc2hvd2xvZzoKKyAgICAgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgICAgIHlpZWxkICdEZXRhaWxlZCBsb2cgb2YgbmV3IGNvbW1pdHM6XG5cbicKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHJlYWRfZ2l0X2xpbmVzKAorICAgICAgICAgICAgICAgICAgICBbJ2xvZycsICctLW5vLXdhbGsnXQorICAgICAgICAgICAgICAgICAgICArIHNlbGYubG9nb3B0cworICAgICAgICAgICAgICAgICAgICArIG5ld19jb21taXRzX2xpc3QKKyAgICAgICAgICAgICAgICAgICAgKyBbJy0tJ10sCisgICAgICAgICAgICAgICAgICAgIGtlZXBlbmRzPVRydWUsCisgICAgICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfcmV2aXNpb25fY2hhbmdlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkdlbmVyYXRlIGEgc3VtbWFyeSBvZiB0aGUgcmV2aXNpb25zIGFkZGVkL3JlbW92ZWQgYnkgdGhpcyBjaGFuZ2UuIiIiCisKKyAgICAgICAgaWYgc2VsZi5uZXcuY29tbWl0X3NoYTEgYW5kIG5vdCBzZWxmLm9sZC5jb21taXRfc2hhMToKKyAgICAgICAgICAgICMgQSBuZXcgcmVmZXJlbmNlIHdhcyBjcmVhdGVkLiAgTGlzdCB0aGUgbmV3IHJldmlzaW9ucworICAgICAgICAgICAgIyBicm91Z2h0IGJ5IHRoZSBuZXcgcmVmZXJlbmNlIChpLmUuLCB0aG9zZSByZXZpc2lvbnMgdGhhdAorICAgICAgICAgICAgIyB3ZXJlIG5vdCBpbiB0aGUgcmVwb3NpdG9yeSBiZWZvcmUgdGhpcyByZWZlcmVuY2UKKyAgICAgICAgICAgICMgY2hhbmdlKS4KKyAgICAgICAgICAgIHNoYTFzID0gbGlzdChwdXNoLmdldF9uZXdfY29tbWl0cyhzZWxmKSkKKyAgICAgICAgICAgIHNoYTFzLnJldmVyc2UoKQorICAgICAgICAgICAgdG90ID0gbGVuKHNoYTFzKQorICAgICAgICAgICAgbmV3X3JldmlzaW9ucyA9IFsKKyAgICAgICAgICAgICAgICBSZXZpc2lvbihzZWxmLCBHaXRPYmplY3Qoc2hhMSksIG51bT1pKzEsIHRvdD10b3QpCisgICAgICAgICAgICAgICAgZm9yIChpLCBzaGExKSBpbiBlbnVtZXJhdGUoc2hhMXMpCisgICAgICAgICAgICAgICAgXQorCisgICAgICAgICAgICBpZiBuZXdfcmV2aXNpb25zOgorICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKCdUaGlzICUocmVmbmFtZV90eXBlKXMgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBuZXcgY29tbWl0czpcbicpCisgICAgICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgICAgIGZvciByIGluIG5ld19yZXZpc2lvbnM6CisgICAgICAgICAgICAgICAgICAgIChzaGExLCBzdWJqZWN0KSA9IHIucmV2LmdldF9zdW1tYXJ5KCkKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgci5leHBhbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249J25ldycsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICB5aWVsZCAnXG4nCisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTkVXX1JFVklTSU9OU19URU1QTEFURSwgdG90PXRvdCk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmdlbmVyYXRlX3JldmlzaW9uX2NoYW5nZV9sb2coW3IucmV2LnNoYTEgZm9yIHIgaW4gbmV3X3JldmlzaW9uc10pOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKE5PX05FV19SRVZJU0lPTlNfVEVNUExBVEUpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZWxpZiBzZWxmLm5ldy5jb21taXRfc2hhMSBhbmQgc2VsZi5vbGQuY29tbWl0X3NoYTE6CisgICAgICAgICAgICAjIEEgcmVmZXJlbmNlIHdhcyBjaGFuZ2VkIHRvIHBvaW50IGF0IGEgZGlmZmVyZW50IGNvbW1pdC4KKyAgICAgICAgICAgICMgTGlzdCB0aGUgcmV2aXNpb25zIHRoYXQgd2VyZSByZW1vdmVkIGFuZC9vciBhZGRlZCAqZnJvbQorICAgICAgICAgICAgIyB0aGF0IHJlZmVyZW5jZSogYnkgdGhpcyByZWZlcmVuY2UgY2hhbmdlLCBhbG9uZyB3aXRoIGEKKyAgICAgICAgICAgICMgZGlmZiBiZXR3ZWVuIHRoZSB0cmVlcyBmb3IgaXRzIG9sZCBhbmQgbmV3IHZhbHVlcy4KKworICAgICAgICAgICAgIyBMaXN0IG9mIHRoZSByZXZpc2lvbnMgdGhhdCB3ZXJlIGFkZGVkIHRvIHRoZSBicmFuY2ggYnkKKyAgICAgICAgICAgICMgdGhpcyB1cGRhdGUuICBOb3RlIHRoaXMgbGlzdCBjYW4gaW5jbHVkZSByZXZpc2lvbnMgdGhhdAorICAgICAgICAgICAgIyBoYXZlIGFscmVhZHkgaGFkIG5vdGlmaWNhdGlvbiBlbWFpbHM7IHdlIHdhbnQgc3VjaAorICAgICAgICAgICAgIyByZXZpc2lvbnMgaW4gdGhlIHN1bW1hcnkgZXZlbiB0aG91Z2ggd2Ugd2lsbCBub3Qgc2VuZAorICAgICAgICAgICAgIyBuZXcgbm90aWZpY2F0aW9uIGVtYWlscyBmb3IgdGhlbS4KKyAgICAgICAgICAgIGFkZHMgPSBsaXN0KGdlbmVyYXRlX3N1bW1hcmllcygKKyAgICAgICAgICAgICAgICAgICAgJy0tdG9wby1vcmRlcicsICctLXJldmVyc2UnLCAnJXMuLiVzJworICAgICAgICAgICAgICAgICAgICAlIChzZWxmLm9sZC5jb21taXRfc2hhMSwgc2VsZi5uZXcuY29tbWl0X3NoYTEsKQorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgICAgICAjIExpc3Qgb2YgdGhlIHJldmlzaW9ucyB0aGF0IHdlcmUgcmVtb3ZlZCBmcm9tIHRoZSBicmFuY2gKKyAgICAgICAgICAgICMgYnkgdGhpcyB1cGRhdGUuICBUaGlzIHdpbGwgYmUgZW1wdHkgZXhjZXB0IGZvcgorICAgICAgICAgICAgIyBub24tZmFzdC1mb3J3YXJkIHVwZGF0ZXMuCisgICAgICAgICAgICBkaXNjYXJkcyA9IGxpc3QoZ2VuZXJhdGVfc3VtbWFyaWVzKAorICAgICAgICAgICAgICAgICAgICAnJXMuLiVzJyAlIChzZWxmLm5ldy5jb21taXRfc2hhMSwgc2VsZi5vbGQuY29tbWl0X3NoYTEsKQorICAgICAgICAgICAgICAgICAgICApKQorCisgICAgICAgICAgICBpZiBhZGRzOgorICAgICAgICAgICAgICAgIG5ld19jb21taXRzX2xpc3QgPSBwdXNoLmdldF9uZXdfY29tbWl0cyhzZWxmKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuZXdfY29tbWl0c19saXN0ID0gW10KKyAgICAgICAgICAgIG5ld19jb21taXRzID0gQ29tbWl0U2V0KG5ld19jb21taXRzX2xpc3QpCisKKyAgICAgICAgICAgIGlmIGRpc2NhcmRzOgorICAgICAgICAgICAgICAgIGRpc2NhcmRlZF9jb21taXRzID0gQ29tbWl0U2V0KHB1c2guZ2V0X2Rpc2NhcmRlZF9jb21taXRzKHNlbGYpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkaXNjYXJkZWRfY29tbWl0cyA9IENvbW1pdFNldChbXSkKKworICAgICAgICAgICAgaWYgZGlzY2FyZHMgYW5kIGFkZHM6CisgICAgICAgICAgICAgICAgZm9yIChzaGExLCBzdWJqZWN0KSBpbiBkaXNjYXJkczoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2hhMSBpbiBkaXNjYXJkZWRfY29tbWl0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdkaXNjYXJkcycKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICdvbWl0cycKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBmb3IgKHNoYTEsIHN1YmplY3QpIGluIGFkZHM6CisgICAgICAgICAgICAgICAgICAgIGlmIHNoYTEgaW4gbmV3X2NvbW1pdHM6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnbmV3JworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ2FkZHMnCisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPWFjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldl9zaG9ydD1zaGExLCB0ZXh0PXN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKE5PTl9GRl9URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICAgICAgZWxpZiBkaXNjYXJkczoKKyAgICAgICAgICAgICAgICBmb3IgKHNoYTEsIHN1YmplY3QpIGluIGRpc2NhcmRzOgorICAgICAgICAgICAgICAgICAgICBpZiBzaGExIGluIGRpc2NhcmRlZF9jb21taXRzOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ2Rpc2NhcmRzJworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gJ29taXRzJworICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj1hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICByZXZfc2hvcnQ9c2hhMSwgdGV4dD1zdWJqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhSRVdJTkRfT05MWV9URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICAgICAgZWxpZiBhZGRzOgorICAgICAgICAgICAgICAgIChzaGExLCBzdWJqZWN0KSA9IHNlbGYub2xkLmdldF9zdW1tYXJ5KCkKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPSdmcm9tJywKKyAgICAgICAgICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIGZvciAoc2hhMSwgc3ViamVjdCkgaW4gYWRkczoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2hhMSBpbiBuZXdfY29tbWl0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiA9ICduZXcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSAnYWRkcycKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5leHBhbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBCUklFRl9TVU1NQVJZX1RFTVBMQVRFLCBhY3Rpb249YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgeWllbGQgJ1xuJworCisgICAgICAgICAgICBpZiBuZXdfY29tbWl0czoKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhORVdfUkVWSVNJT05TX1RFTVBMQVRFLCB0b3Q9bGVuKG5ld19jb21taXRzKSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmdlbmVyYXRlX3JldmlzaW9uX2NoYW5nZV9sb2cobmV3X2NvbW1pdHNfbGlzdCk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoTk9fTkVXX1JFVklTSU9OU19URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICAgICAgIyBUaGUgZGlmZnN0YXQgaXMgc2hvd24gZnJvbSB0aGUgb2xkIHJldmlzaW9uIHRvIHRoZSBuZXcKKyAgICAgICAgICAgICMgcmV2aXNpb24uICBUaGlzIGlzIHRvIHNob3cgdGhlIHRydXRoIG9mIHdoYXQgaGFwcGVuZWQgaW4KKyAgICAgICAgICAgICMgdGhpcyBjaGFuZ2UuICBUaGVyZSdzIG5vIHBvaW50IHNob3dpbmcgdGhlIHN0YXQgZnJvbSB0aGUKKyAgICAgICAgICAgICMgYmFzZSB0byB0aGUgbmV3IHJldmlzaW9uIGJlY2F1c2UgdGhlIGJhc2UgaXMgZWZmZWN0aXZlbHkgYQorICAgICAgICAgICAgIyByYW5kb20gcmV2aXNpb24gYXQgdGhpcyBwb2ludCAtIHRoZSB1c2VyIHdpbGwgYmUgaW50ZXJlc3RlZAorICAgICAgICAgICAgIyBpbiB3aGF0IHRoaXMgcmV2aXNpb24gY2hhbmdlZCAtIGluY2x1ZGluZyB0aGUgdW5kb2luZyBvZgorICAgICAgICAgICAgIyBwcmV2aW91cyByZXZpc2lvbnMgaW4gdGhlIGNhc2Ugb2Ygbm9uLWZhc3QtZm9yd2FyZCB1cGRhdGVzLgorICAgICAgICAgICAgeWllbGQgJ1xuJworICAgICAgICAgICAgeWllbGQgJ1N1bW1hcnkgb2YgY2hhbmdlczpcbicKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHJlYWRfZ2l0X2xpbmVzKAorICAgICAgICAgICAgICAgIFsnZGlmZi10cmVlJ10KKyAgICAgICAgICAgICAgICArIHNlbGYuZGlmZm9wdHMKKyAgICAgICAgICAgICAgICArIFsnJXMuLiVzJyAlIChzZWxmLm9sZC5jb21taXRfc2hhMSwgc2VsZi5uZXcuY29tbWl0X3NoYTEsKV0sCisgICAgICAgICAgICAgICAga2VlcGVuZHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBlbGlmIHNlbGYub2xkLmNvbW1pdF9zaGExIGFuZCBub3Qgc2VsZi5uZXcuY29tbWl0X3NoYTE6CisgICAgICAgICAgICAjIEEgcmVmZXJlbmNlIHdhcyBkZWxldGVkLiAgTGlzdCB0aGUgcmV2aXNpb25zIHRoYXQgd2VyZQorICAgICAgICAgICAgIyByZW1vdmVkIGZyb20gdGhlIHJlcG9zaXRvcnkgYnkgdGhpcyByZWZlcmVuY2UgY2hhbmdlLgorCisgICAgICAgICAgICBzaGExcyA9IGxpc3QocHVzaC5nZXRfZGlzY2FyZGVkX2NvbW1pdHMoc2VsZikpCisgICAgICAgICAgICB0b3QgPSBsZW4oc2hhMXMpCisgICAgICAgICAgICBkaXNjYXJkZWRfcmV2aXNpb25zID0gWworICAgICAgICAgICAgICAgIFJldmlzaW9uKHNlbGYsIEdpdE9iamVjdChzaGExKSwgbnVtPWkrMSwgdG90PXRvdCkKKyAgICAgICAgICAgICAgICBmb3IgKGksIHNoYTEpIGluIGVudW1lcmF0ZShzaGExcykKKyAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIGlmIGRpc2NhcmRlZF9yZXZpc2lvbnM6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoRElTQ0FSREVEX1JFVklTSU9OU19URU1QTEFURSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgICAgICB5aWVsZCAnXG4nCisgICAgICAgICAgICAgICAgZm9yIHIgaW4gZGlzY2FyZGVkX3JldmlzaW9uczoKKyAgICAgICAgICAgICAgICAgICAgKHNoYTEsIHN1YmplY3QpID0gci5yZXYuZ2V0X3N1bW1hcnkoKQorICAgICAgICAgICAgICAgICAgICB5aWVsZCByLmV4cGFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj0nZGlzY2FyZHMnLCB0ZXh0PXN1YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKE5PX0RJU0NBUkRFRF9SRVZJU0lPTlNfVEVNUExBVEUpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZWxpZiBub3Qgc2VsZi5vbGQuY29tbWl0X3NoYTEgYW5kIG5vdCBzZWxmLm5ldy5jb21taXRfc2hhMToKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZXhwYW5kX2xpbmVzKE5PTl9DT01NSVRfVVBEQVRFX1RFTVBMQVRFKToKKyAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfY3JlYXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVmZXJlbmNlLiIiIgorCisgICAgICAgICMgVGhpcyBpcyBhIG5ldyByZWZlcmVuY2UgYW5kIHNvIG9sZHJldiBpcyBub3QgdmFsaWQKKyAgICAgICAgKHNoYTEsIHN1YmplY3QpID0gc2VsZi5uZXcuZ2V0X3N1bW1hcnkoKQorICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj0nYXQnLAorICAgICAgICAgICAgcmV2X3Nob3J0PXNoYTEsIHRleHQ9c3ViamVjdCwKKyAgICAgICAgICAgICkKKyAgICAgICAgeWllbGQgJ1xuJworCisgICAgZGVmIGdlbmVyYXRlX3VwZGF0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsZWQgZm9yIHRoZSBjaGFuZ2Ugb2YgYSBwcmUtZXhpc3RpbmcgYnJhbmNoLiIiIgorCisgICAgICAgIHJldHVybiBpdGVyKFtdKQorCisgICAgZGVmIGdlbmVyYXRlX2RlbGV0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsZWQgZm9yIHRoZSBkZWxldGlvbiBvZiBhbnkgdHlwZSBvZiByZWZlcmVuY2UuIiIiCisKKyAgICAgICAgKHNoYTEsIHN1YmplY3QpID0gc2VsZi5vbGQuZ2V0X3N1bW1hcnkoKQorICAgICAgICB5aWVsZCBzZWxmLmV4cGFuZCgKKyAgICAgICAgICAgIEJSSUVGX1NVTU1BUllfVEVNUExBVEUsIGFjdGlvbj0nd2FzJywKKyAgICAgICAgICAgIHJldl9zaG9ydD1zaGExLCB0ZXh0PXN1YmplY3QsCisgICAgICAgICAgICApCisgICAgICAgIHlpZWxkICdcbicKKworCitjbGFzcyBCcmFuY2hDaGFuZ2UoUmVmZXJlbmNlQ2hhbmdlKToKKyAgICByZWZuYW1lX3R5cGUgPSAnYnJhbmNoJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50LCByZWZuYW1lLCBzaG9ydF9yZWZuYW1lLCBvbGQsIG5ldywgcmV2KToKKyAgICAgICAgUmVmZXJlbmNlQ2hhbmdlLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWZuYW1lPXJlZm5hbWUsIHNob3J0X3JlZm5hbWU9c2hvcnRfcmVmbmFtZSwKKyAgICAgICAgICAgIG9sZD1vbGQsIG5ldz1uZXcsIHJldj1yZXYsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYucmVjaXBpZW50cyA9IGVudmlyb25tZW50LmdldF9yZWZjaGFuZ2VfcmVjaXBpZW50cyhzZWxmKQorCisKK2NsYXNzIEFubm90YXRlZFRhZ0NoYW5nZShSZWZlcmVuY2VDaGFuZ2UpOgorICAgIHJlZm5hbWVfdHlwZSA9ICdhbm5vdGF0ZWQgdGFnJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGVudmlyb25tZW50LCByZWZuYW1lLCBzaG9ydF9yZWZuYW1lLCBvbGQsIG5ldywgcmV2KToKKyAgICAgICAgUmVmZXJlbmNlQ2hhbmdlLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWZuYW1lPXJlZm5hbWUsIHNob3J0X3JlZm5hbWU9c2hvcnRfcmVmbmFtZSwKKyAgICAgICAgICAgIG9sZD1vbGQsIG5ldz1uZXcsIHJldj1yZXYsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYucmVjaXBpZW50cyA9IGVudmlyb25tZW50LmdldF9hbm5vdW5jZV9yZWNpcGllbnRzKHNlbGYpCisgICAgICAgIHNlbGYuc2hvd19zaG9ydGxvZyA9IGVudmlyb25tZW50LmFubm91bmNlX3Nob3dfc2hvcnRsb2cKKworICAgIEFOTk9UQVRFRF9UQUdfRk9STUFUID0gKAorICAgICAgICAnJSgqb2JqZWN0bmFtZSlcbicKKyAgICAgICAgJyUoKm9iamVjdHR5cGUpXG4nCisgICAgICAgICclKHRhZ2dlcm5hbWUpXG4nCisgICAgICAgICclKHRhZ2dlcmRhdGUpJworICAgICAgICApCisKKyAgICBkZWYgZGVzY3JpYmVfdGFnKHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJEZXNjcmliZSB0aGUgbmV3IHZhbHVlIG9mIGFuIGFubm90YXRlZCB0YWcuIiIiCisKKyAgICAgICAgIyBVc2UgZ2l0IGZvci1lYWNoLXJlZiB0byBwdWxsIG91dCB0aGUgaW5kaXZpZHVhbCBmaWVsZHMgZnJvbQorICAgICAgICAjIHRoZSB0YWcKKyAgICAgICAgW3RhZ29iamVjdCwgdGFndHlwZSwgdGFnZ2VyLCB0YWdnZWRdID0gcmVhZF9naXRfbGluZXMoCisgICAgICAgICAgICBbJ2Zvci1lYWNoLXJlZicsICctLWZvcm1hdD0lcycgJSAoc2VsZi5BTk5PVEFURURfVEFHX0ZPUk1BVCwpLCBzZWxmLnJlZm5hbWVdLAorICAgICAgICAgICAgKQorCisgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKAorICAgICAgICAgICAgQlJJRUZfU1VNTUFSWV9URU1QTEFURSwgYWN0aW9uPSd0YWdnaW5nJywKKyAgICAgICAgICAgIHJldl9zaG9ydD10YWdvYmplY3QsIHRleHQ9JyglcyknICUgKHRhZ3R5cGUsKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgaWYgdGFndHlwZSA9PSAnY29tbWl0JzoKKyAgICAgICAgICAgICMgSWYgdGhlIHRhZ2dlZCBvYmplY3QgaXMgYSBjb21taXQsIHRoZW4gd2UgYXNzdW1lIHRoaXMgaXMgYQorICAgICAgICAgICAgIyByZWxlYXNlLCBhbmQgc28gd2UgY2FsY3VsYXRlIHdoaWNoIHRhZyB0aGlzIHRhZyBpcworICAgICAgICAgICAgIyByZXBsYWNpbmcKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwcmV2dGFnID0gcmVhZF9naXRfb3V0cHV0KFsnZGVzY3JpYmUnLCAnLS1hYmJyZXY9MCcsICclc14nICUgKHNlbGYubmV3LCldKQorICAgICAgICAgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgICAgICAgICBwcmV2dGFnID0gTm9uZQorICAgICAgICAgICAgaWYgcHJldnRhZzoKKyAgICAgICAgICAgICAgICB5aWVsZCAnICByZXBsYWNlcyAgJXNcbicgJSAocHJldnRhZywpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmV2dGFnID0gTm9uZQorICAgICAgICAgICAgeWllbGQgJyAgICBsZW5ndGggICVzIGJ5dGVzXG4nICUgKHJlYWRfZ2l0X291dHB1dChbJ2NhdC1maWxlJywgJy1zJywgdGFnb2JqZWN0XSksKQorCisgICAgICAgIHlpZWxkICcgdGFnZ2VkIGJ5ICAlc1xuJyAlICh0YWdnZXIsKQorICAgICAgICB5aWVsZCAnICAgICAgICBvbiAgJXNcbicgJSAodGFnZ2VkLCkKKyAgICAgICAgeWllbGQgJ1xuJworCisgICAgICAgICMgU2hvdyB0aGUgY29udGVudCBvZiB0aGUgdGFnIG1lc3NhZ2U7IHRoaXMgbWlnaHQgY29udGFpbiBhCisgICAgICAgICMgY2hhbmdlIGxvZyBvciByZWxlYXNlIG5vdGVzIHNvIGlzIHdvcnRoIGRpc3BsYXlpbmcuCisgICAgICAgIHlpZWxkIExPR0JFR0lOCisgICAgICAgIGNvbnRlbnRzID0gbGlzdChyZWFkX2dpdF9saW5lcyhbJ2NhdC1maWxlJywgJ3RhZycsIHNlbGYubmV3LnNoYTFdLCBrZWVwZW5kcz1UcnVlKSkKKyAgICAgICAgY29udGVudHMgPSBjb250ZW50c1tjb250ZW50cy5pbmRleCgnXG4nKSArIDE6XQorICAgICAgICBpZiBjb250ZW50cyBhbmQgY29udGVudHNbLTFdWy0xOl0gIT0gJ1xuJzoKKyAgICAgICAgICAgIGNvbnRlbnRzLmFwcGVuZCgnXG4nKQorICAgICAgICBmb3IgbGluZSBpbiBjb250ZW50czoKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICBpZiBzZWxmLnNob3dfc2hvcnRsb2cgYW5kIHRhZ3R5cGUgPT0gJ2NvbW1pdCc6CisgICAgICAgICAgICAjIE9ubHkgY29tbWl0IHRhZ3MgbWFrZSBzZW5zZSB0byBoYXZlIHJldi1saXN0IG9wZXJhdGlvbnMKKyAgICAgICAgICAgICMgcGVyZm9ybWVkIG9uIHRoZW0KKyAgICAgICAgICAgIHlpZWxkICdcbicKKyAgICAgICAgICAgIGlmIHByZXZ0YWc6CisgICAgICAgICAgICAgICAgIyBTaG93IGNoYW5nZXMgc2luY2UgdGhlIHByZXZpb3VzIHJlbGVhc2UKKyAgICAgICAgICAgICAgICByZXZsaXN0ID0gcmVhZF9naXRfb3V0cHV0KAorICAgICAgICAgICAgICAgICAgICBbJ3Jldi1saXN0JywgJy0tcHJldHR5PXNob3J0JywgJyVzLi4lcycgJSAocHJldnRhZywgc2VsZi5uZXcsKV0sCisgICAgICAgICAgICAgICAgICAgIGtlZXBlbmRzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBObyBwcmV2aW91cyB0YWcsIHNob3cgYWxsIHRoZSBjaGFuZ2VzIHNpbmNlIHRpbWUKKyAgICAgICAgICAgICAgICAjIGJlZ2FuCisgICAgICAgICAgICAgICAgcmV2bGlzdCA9IHJlYWRfZ2l0X291dHB1dCgKKyAgICAgICAgICAgICAgICAgICAgWydyZXYtbGlzdCcsICctLXByZXR0eT1zaG9ydCcsICclcycgJSAoc2VsZi5uZXcsKV0sCisgICAgICAgICAgICAgICAgICAgIGtlZXBlbmRzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHJlYWRfZ2l0X2xpbmVzKFsnc2hvcnRsb2cnXSwgaW5wdXQ9cmV2bGlzdCwga2VlcGVuZHM9VHJ1ZSk6CisgICAgICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIHlpZWxkIExPR0VORAorICAgICAgICB5aWVsZCAnXG4nCisKKyAgICBkZWYgZ2VuZXJhdGVfY3JlYXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGFuIGFubm90YXRlZCB0YWcuIiIiCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoVEFHX0NSRUFURURfVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZGVzY3JpYmVfdGFnKHB1c2gpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX3VwZGF0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsZWQgZm9yIHRoZSB1cGRhdGUgb2YgYW4gYW5ub3RhdGVkIHRhZy4KKworICAgICAgICBUaGlzIGlzIHByb2JhYmx5IGEgcmFyZSBldmVudCBhbmQgbWF5IG5vdCBldmVuIGJlIGFsbG93ZWQuIiIiCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoVEFHX1VQREFURURfVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYuZGVzY3JpYmVfdGFnKHB1c2gpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgZGVmIGdlbmVyYXRlX2RlbGV0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAiIiJDYWxsZWQgd2hlbiBhIG5vbi1hbm5vdGF0ZWQgcmVmZXJlbmNlIGlzIHVwZGF0ZWQuIiIiCisKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5leHBhbmRfbGluZXMoVEFHX0RFTEVURURfVEVNUExBVEUpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisgICAgICAgIHlpZWxkIHNlbGYuZXhwYW5kKCcgICB0YWcgd2FzICAlKG9sZHJldl9zaG9ydClzXG4nKQorICAgICAgICB5aWVsZCAnXG4nCisKKworY2xhc3MgTm9uQW5ub3RhdGVkVGFnQ2hhbmdlKFJlZmVyZW5jZUNoYW5nZSk6CisgICAgcmVmbmFtZV90eXBlID0gJ3RhZycKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9ubWVudCwgcmVmbmFtZSwgc2hvcnRfcmVmbmFtZSwgb2xkLCBuZXcsIHJldik6CisgICAgICAgIFJlZmVyZW5jZUNoYW5nZS5fX2luaXRfXygKKyAgICAgICAgICAgIHNlbGYsIGVudmlyb25tZW50LAorICAgICAgICAgICAgcmVmbmFtZT1yZWZuYW1lLCBzaG9ydF9yZWZuYW1lPXNob3J0X3JlZm5hbWUsCisgICAgICAgICAgICBvbGQ9b2xkLCBuZXc9bmV3LCByZXY9cmV2LAorICAgICAgICAgICAgKQorICAgICAgICBzZWxmLnJlY2lwaWVudHMgPSBlbnZpcm9ubWVudC5nZXRfcmVmY2hhbmdlX3JlY2lwaWVudHMoc2VsZikKKworICAgIGRlZiBnZW5lcmF0ZV9jcmVhdGVfc3VtbWFyeShzZWxmLCBwdXNoKToKKyAgICAgICAgIiIiQ2FsbGVkIGZvciB0aGUgY3JlYXRpb24gb2YgYW4gYW5ub3RhdGVkIHRhZy4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfQ1JFQVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfdXBkYXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCB3aGVuIGEgbm9uLWFubm90YXRlZCByZWZlcmVuY2UgaXMgdXBkYXRlZC4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfVVBEQVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICBkZWYgZ2VuZXJhdGVfZGVsZXRlX3N1bW1hcnkoc2VsZiwgcHVzaCk6CisgICAgICAgICIiIkNhbGxlZCB3aGVuIGEgbm9uLWFubm90YXRlZCByZWZlcmVuY2UgaXMgdXBkYXRlZC4iIiIKKworICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmV4cGFuZF9saW5lcyhUQUdfREVMRVRFRF9URU1QTEFURSk6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgZm9yIGxpbmUgaW4gUmVmZXJlbmNlQ2hhbmdlLmdlbmVyYXRlX2RlbGV0ZV9zdW1tYXJ5KHNlbGYsIHB1c2gpOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisKK2NsYXNzIE90aGVyUmVmZXJlbmNlQ2hhbmdlKFJlZmVyZW5jZUNoYW5nZSk6CisgICAgcmVmbmFtZV90eXBlID0gJ3JlZmVyZW5jZScKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZpcm9ubWVudCwgcmVmbmFtZSwgc2hvcnRfcmVmbmFtZSwgb2xkLCBuZXcsIHJldik6CisgICAgICAgICMgV2UgdXNlIHRoZSBmdWxsIHJlZm5hbWUgYXMgc2hvcnRfcmVmbmFtZSwgYmVjYXVzZSBvdGhlcndpc2UKKyAgICAgICAgIyB0aGUgZnVsbCBuYW1lIG9mIHRoZSByZWZlcmVuY2Ugd291bGQgbm90IGJlIG9idmlvdXMgZnJvbSB0aGUKKyAgICAgICAgIyB0ZXh0IG9mIHRoZSBlbWFpbC4KKyAgICAgICAgUmVmZXJlbmNlQ2hhbmdlLl9faW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWZuYW1lPXJlZm5hbWUsIHNob3J0X3JlZm5hbWU9cmVmbmFtZSwKKyAgICAgICAgICAgIG9sZD1vbGQsIG5ldz1uZXcsIHJldj1yZXYsCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYucmVjaXBpZW50cyA9IGVudmlyb25tZW50LmdldF9yZWZjaGFuZ2VfcmVjaXBpZW50cyhzZWxmKQorCisKK2NsYXNzIE1haWxlcihvYmplY3QpOgorICAgICIiIkFuIG9iamVjdCB0aGF0IGNhbiBzZW5kIGVtYWlscy4iIiIKKworICAgIGRlZiBzZW5kKHNlbGYsIGxpbmVzLCB0b19hZGRycyk6CisgICAgICAgICIiIlNlbmQgYW4gZW1haWwgY29uc2lzdGluZyBvZiBsaW5lcy4KKworICAgICAgICBsaW5lcyBtdXN0IGJlIGFuIGl0ZXJhYmxlIG92ZXIgdGhlIGxpbmVzIGNvbnN0aXR1dGluZyB0aGUKKyAgICAgICAgaGVhZGVyIGFuZCBib2R5IG9mIHRoZSBlbWFpbC4gIHRvX2FkZHJzIGlzIGEgbGlzdCBvZiByZWNpcGllbnQKKyAgICAgICAgYWRkcmVzc2VzIChjYW4gYmUgbmVlZGVkIGV2ZW4gaWYgbGluZXMgYWxyZWFkeSBjb250YWlucyBhCisgICAgICAgICJUbzoiIGZpZWxkKS4gIEl0IGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgKGNvbW1hLXNlcGFyYXRlZCBsaXN0CisgICAgICAgIG9mIGVtYWlsIGFkZHJlc3Nlcykgb3IgYSBQeXRob24gbGlzdCBvZiBpbmRpdmlkdWFsIGVtYWlsCisgICAgICAgIGFkZHJlc3Nlcy4KKworICAgICAgICAiIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworCitjbGFzcyBTZW5kTWFpbGVyKE1haWxlcik6CisgICAgIiIiU2VuZCBlbWFpbHMgdXNpbmcgJ3NlbmRtYWlsIC10Jy4iIiIKKworICAgIFNFTkRNQUlMX0NBTkRJREFURVMgPSBbCisgICAgICAgICcvdXNyL3NiaW4vc2VuZG1haWwnLAorICAgICAgICAnL3Vzci9saWIvc2VuZG1haWwnLAorICAgICAgICBdCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGZpbmRfc2VuZG1haWwoKToKKyAgICAgICAgZm9yIHBhdGggaW4gU2VuZE1haWxlci5TRU5ETUFJTF9DQU5ESURBVEVTOgorICAgICAgICAgICAgaWYgb3MuYWNjZXNzKHBhdGgsIG9zLlhfT0spOgorICAgICAgICAgICAgICAgIHJldHVybiBwYXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBDb25maWd1cmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdObyBzZW5kbWFpbCBleGVjdXRhYmxlIGZvdW5kLiAgJworICAgICAgICAgICAgICAgICdUcnkgc2V0dGluZyBtdWx0aW1haWxob29rLnNlbmRtYWlsQ29tbWFuZC4nCisgICAgICAgICAgICAgICAgKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbW1hbmQ9Tm9uZSwgZW52ZWxvcGVzZW5kZXI9Tm9uZSk6CisgICAgICAgICIiIkNvbnN0cnVjdCBhIFNlbmRNYWlsZXIgaW5zdGFuY2UuCisKKyAgICAgICAgY29tbWFuZCBzaG91bGQgYmUgdGhlIGNvbW1hbmQgYW5kIGFyZ3VtZW50cyB1c2VkIHRvIGludm9rZQorICAgICAgICBzZW5kbWFpbCwgYXMgYSBsaXN0IG9mIHN0cmluZ3MuICBJZiBhbiBlbnZlbG9wZXNlbmRlciBpcworICAgICAgICBwcm92aWRlZCwgaXQgd2lsbCBhbHNvIGJlIHBhc3NlZCB0byB0aGUgY29tbWFuZCwgdmlhICctZgorICAgICAgICBlbnZlbG9wZXNlbmRlcicuIiIiCisKKyAgICAgICAgaWYgY29tbWFuZDoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZCA9IGNvbW1hbmRbOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZCA9IFtzZWxmLmZpbmRfc2VuZG1haWwoKSwgJy10J10KKworICAgICAgICBpZiBlbnZlbG9wZXNlbmRlcjoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZC5leHRlbmQoWyctZicsIGVudmVsb3Blc2VuZGVyXSkKKworICAgIGRlZiBzZW5kKHNlbGYsIGxpbmVzLCB0b19hZGRycyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgc3RkaW49c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICBleGNlcHQgT1NFcnJvciwgZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJyoqKiBDYW5ub3QgZXhlY3V0ZSBjb21tYW5kOiAlc1xuJyAlICcgJy5qb2luKHNlbGYuY29tbWFuZCkKKyAgICAgICAgICAgICAgICArICcqKiogJXNcbicgJSBzdHIoZSkKKyAgICAgICAgICAgICAgICArICcqKiogVHJ5IHNldHRpbmcgbXVsdGltYWlsaG9vay5tYWlsZXIgdG8gInNtdHAiXG4nCisgICAgICAgICAgICAgICAgJyoqKiB0byBzZW5kIGVtYWlscyB3aXRob3V0IHVzaW5nIHRoZSBzZW5kbWFpbCBjb21tYW5kLlxuJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHAuc3RkaW4ud3JpdGVsaW5lcyhsaW5lcykKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAnKioqIEVycm9yIHdoaWxlIGdlbmVyYXRpbmcgY29tbWl0IGVtYWlsXG4nCisgICAgICAgICAgICAgICAgJyoqKiAgLSBtYWlsIHNlbmRpbmcgYWJvcnRlZC5cbicKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBwLnRlcm1pbmF0ZSgpCisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcC5zdGRpbi5jbG9zZSgpCisgICAgICAgICAgICByZXRjb2RlID0gcC53YWl0KCkKKyAgICAgICAgICAgIGlmIHJldGNvZGU6CisgICAgICAgICAgICAgICAgcmFpc2UgQ29tbWFuZEVycm9yKHNlbGYuY29tbWFuZCwgcmV0Y29kZSkKKworCitjbGFzcyBTTVRQTWFpbGVyKE1haWxlcik6CisgICAgIiIiU2VuZCBlbWFpbHMgdXNpbmcgUHl0aG9uJ3Mgc210cGxpYi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbnZlbG9wZXNlbmRlciwgc210cHNlcnZlcik6CisgICAgICAgIGlmIG5vdCBlbnZlbG9wZXNlbmRlcjoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJ2ZhdGFsOiBnaXRfbXVsdGltYWlsOiBjYW5ub3QgdXNlIFNNVFBNYWlsZXIgd2l0aG91dCBhIHNlbmRlciBhZGRyZXNzLlxuJworICAgICAgICAgICAgICAgICdwbGVhc2Ugc2V0IGVpdGhlciBtdWx0aW1haWxob29rLmVudmVsb3BlU2VuZGVyIG9yIHVzZXIuZW1haWxcbicKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBzZWxmLmVudmVsb3Blc2VuZGVyID0gZW52ZWxvcGVzZW5kZXIKKyAgICAgICAgc2VsZi5zbXRwc2VydmVyID0gc210cHNlcnZlcgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnNtdHAgPSBzbXRwbGliLlNNVFAoc2VsZi5zbXRwc2VydmVyKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnKioqIEVycm9yIGVzdGFibGlzaGluZyBTTVRQIGNvbm5lY3Rpb24gdG8gJXMqKipcbicgJSBzZWxmLnNtdHBzZXJ2ZXIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcqKiogJXNcbicgJSBzdHIoZSkpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIHNlbGYuc210cC5xdWl0KCkKKworICAgIGRlZiBzZW5kKHNlbGYsIGxpbmVzLCB0b19hZGRycyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1zZyA9ICcnLmpvaW4obGluZXMpCisgICAgICAgICAgICAjIHR1cm4gY29tbWEtc2VwYXJhdGVkIGxpc3QgaW50byBQeXRob24gbGlzdCBpZiBuZWVkZWQuCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHRvX2FkZHJzLCBiYXNlc3RyaW5nKToKKyAgICAgICAgICAgICAgICB0b19hZGRycyA9IFtlbWFpbCBmb3IgKG5hbWUsIGVtYWlsKSBpbiBnZXRhZGRyZXNzZXMoW3RvX2FkZHJzXSldCisgICAgICAgICAgICBzZWxmLnNtdHAuc2VuZG1haWwoc2VsZi5lbnZlbG9wZXNlbmRlciwgdG9fYWRkcnMsIG1zZykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJyoqKiBFcnJvciBzZW5kaW5nIGVtYWlsKioqXG4nKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnKioqICVzXG4nICUgc3RyKGUpKQorICAgICAgICAgICAgc2VsZi5zbXRwLnF1aXQoKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworCitjbGFzcyBPdXRwdXRNYWlsZXIoTWFpbGVyKToKKyAgICAiIiJXcml0ZSBlbWFpbHMgdG8gYW4gb3V0cHV0IHN0cmVhbSwgYnJhY2tldGVkIGJ5IGxpbmVzIG9mICc9JyBjaGFyYWN0ZXJzLgorCisgICAgVGhpcyBpcyBpbnRlbmRlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiIiIgorCisgICAgU0VQQVJBVE9SID0gJz0nICogNzUgKyAnXG4nCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZik6CisgICAgICAgIHNlbGYuZiA9IGYKKworICAgIGRlZiBzZW5kKHNlbGYsIGxpbmVzLCB0b19hZGRycyk6CisgICAgICAgIHNlbGYuZi53cml0ZShzZWxmLlNFUEFSQVRPUikKKyAgICAgICAgc2VsZi5mLndyaXRlbGluZXMobGluZXMpCisgICAgICAgIHNlbGYuZi53cml0ZShzZWxmLlNFUEFSQVRPUikKKworCitkZWYgZ2V0X2dpdF9kaXIoKToKKyAgICAiIiJEZXRlcm1pbmUgR0lUX0RJUi4KKworICAgIERldGVybWluZSBHSVRfRElSIGVpdGhlciBmcm9tIHRoZSBHSVRfRElSIGVudmlyb25tZW50IHZhcmlhYmxlIG9yCisgICAgZnJvbSB0aGUgd29ya2luZyBkaXJlY3RvcnksIHVzaW5nIEdpdCdzIHVzdWFsIHJ1bGVzLiIiIgorCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gcmVhZF9naXRfb3V0cHV0KFsncmV2LXBhcnNlJywgJy0tZ2l0LWRpciddKQorICAgIGV4Y2VwdCBDb21tYW5kRXJyb3I6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ2ZhdGFsOiBnaXRfbXVsdGltYWlsOiBub3QgaW4gYSBnaXQgZGlyZWN0b3J5XG4nKQorICAgICAgICBzeXMuZXhpdCgxKQorCisKK2NsYXNzIEVudmlyb25tZW50KG9iamVjdCk6CisgICAgIiIiRGVzY3JpYmVzIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGUgcHVzaCBpcyBvY2N1cnJpbmcuCisKKyAgICBBbiBFbnZpcm9ubWVudCBvYmplY3QgZW5jYXBzdWxhdGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICAgIGVudmlyb25tZW50LiAgRm9yIGV4YW1wbGUsIGl0IGtub3dzIGhvdyB0byBkZXRlcm1pbmU6CisKKyAgICAqIHRoZSBuYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIHdoaWNoIHRoZSBwdXNoIG9jY3VycmVkCisKKyAgICAqIHdoYXQgdXNlciBkaWQgdGhlIHB1c2gKKworICAgICogd2hhdCB1c2VycyB3YW50IHRvIGJlIGluZm9ybWVkIGFib3V0IHZhcmlvdXMgdHlwZXMgb2YgY2hhbmdlcy4KKworICAgIEFuIEVudmlyb25tZW50IG9iamVjdCBpcyBleHBlY3RlZCB0byBoYXZlIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKKworICAgICAgICBnZXRfcmVwb19zaG9ydG5hbWUoKQorCisgICAgICAgICAgICBSZXR1cm4gYSBzaG9ydCBuYW1lIGZvciB0aGUgcmVwb3NpdG9yeSwgZm9yIGRpc3BsYXkKKyAgICAgICAgICAgIHB1cnBvc2VzLgorCisgICAgICAgIGdldF9yZXBvX3BhdGgoKQorCisgICAgICAgICAgICBSZXR1cm4gdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIEdpdCByZXBvc2l0b3J5LgorCisgICAgICAgIGdldF9lbWFpbHByZWZpeCgpCisKKyAgICAgICAgICAgIFJldHVybiBhIHN0cmluZyB0aGF0IHdpbGwgYmUgcHJlZml4ZWQgdG8gZXZlcnkgZW1haWwncworICAgICAgICAgICAgc3ViamVjdC4KKworICAgICAgICBnZXRfcHVzaGVyKCkKKworICAgICAgICAgICAgUmV0dXJuIHRoZSB1c2VybmFtZSBvZiB0aGUgcGVyc29uIHdobyBwdXNoZWQgdGhlIGNoYW5nZXMuCisgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIHVzZWQgaW4gdGhlIGVtYWlsIGJvZHkgdG8gaW5kaWNhdGUgd2hvCisgICAgICAgICAgICBwdXNoZWQgdGhlIGNoYW5nZS4KKworICAgICAgICBnZXRfcHVzaGVyX2VtYWlsKCkgKG1heSByZXR1cm4gTm9uZSkKKworICAgICAgICAgICAgUmV0dXJuIHRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBwZXJzb24gd2hvIHB1c2hlZCB0aGUKKyAgICAgICAgICAgIGNoYW5nZXMuICBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgc2luZ2xlIFJGQyAyODIyIGVtYWlsCisgICAgICAgICAgICBhZGRyZXNzIGFzIGEgc3RyaW5nOyBlLmcuLCAiSm9lIFVzZXIgPHVzZXJAZXhhbXBsZS5jb20+IgorICAgICAgICAgICAgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgInVzZXJAZXhhbXBsZS5jb20iLiAgSWYgc2V0LCB0aGUKKyAgICAgICAgICAgIHZhbHVlIGlzIHVzZWQgYXMgdGhlIFJlcGx5LVRvIGFkZHJlc3MgZm9yIHJlZmNoYW5nZQorICAgICAgICAgICAgZW1haWxzLiAgSWYgaXQgaXMgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUgdGhlIHB1c2hlcidzCisgICAgICAgICAgICBlbWFpbCwgdGhpcyBhdHRyaWJ1dGUgc2hvdWxkIGJlIHNldCB0byBOb25lIChpbiB3aGljaCBjYXNlCisgICAgICAgICAgICBubyBSZXBseS1UbyBoZWFkZXIgd2lsbCBiZSBvdXRwdXQpLgorCisgICAgICAgIGdldF9zZW5kZXIoKQorCisgICAgICAgICAgICBSZXR1cm4gdGhlIGFkZHJlc3MgdG8gYmUgdXNlZCBhcyB0aGUgJ0Zyb20nIGVtYWlsIGFkZHJlc3MKKyAgICAgICAgICAgIGluIHRoZSBlbWFpbCBlbnZlbG9wZS4KKworICAgICAgICBnZXRfZnJvbWFkZHIoKQorCisgICAgICAgICAgICBSZXR1cm4gdGhlICdGcm9tJyBlbWFpbCBhZGRyZXNzIHVzZWQgaW4gdGhlIGVtYWlsICdGcm9tOicKKyAgICAgICAgICAgIGhlYWRlcnMuICAoTWF5IGJlIGEgZnVsbCBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzIGxpa2UgJ0pvZQorICAgICAgICAgICAgVXNlciA8dXNlckBleGFtcGxlLmNvbT4nLikKKworICAgICAgICBnZXRfYWRtaW5pc3RyYXRvcigpCisKKyAgICAgICAgICAgIFJldHVybiB0aGUgbmFtZSBhbmQvb3IgZW1haWwgb2YgdGhlIHJlcG9zaXRvcnkKKyAgICAgICAgICAgIGFkbWluaXN0cmF0b3IuICBUaGlzIHZhbHVlIGlzIHVzZWQgaW4gdGhlIGZvb3RlciBhcyB0aGUKKyAgICAgICAgICAgIHBlcnNvbiB0byB3aG9tIHJlcXVlc3RzIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUKKyAgICAgICAgICAgIG5vdGlmaWNhdGlvbiBsaXN0IHNob3VsZCBiZSBzZW50LiAgSWRlYWxseSwgaXQgc2hvdWxkCisgICAgICAgICAgICBpbmNsdWRlIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4KKworICAgICAgICBnZXRfcmVwbHlfdG9fcmVmY2hhbmdlKCkKKyAgICAgICAgZ2V0X3JlcGx5X3RvX2NvbW1pdCgpCisKKyAgICAgICAgICAgIFJldHVybiB0aGUgYWRkcmVzcyB0byB1c2UgaW4gdGhlIGVtYWlsICJSZXBseS1UbyIgaGVhZGVyLAorICAgICAgICAgICAgYXMgYSBzdHJpbmcuICBUaGVzZSBjYW4gYmUgYW4gUkZDIDI4MjIgZW1haWwgYWRkcmVzcywgb3IKKyAgICAgICAgICAgIE5vbmUgdG8gb21pdCB0aGUgIlJlcGx5LVRvIiBoZWFkZXIuCisgICAgICAgICAgICBnZXRfcmVwbHlfdG9fcmVmY2hhbmdlKCkgaXMgdXNlZCBmb3IgcmVmY2hhbmdlIGVtYWlsczsKKyAgICAgICAgICAgIGdldF9yZXBseV90b19jb21taXQoKSBpcyB1c2VkIGZvciBpbmRpdmlkdWFsIGNvbW1pdAorICAgICAgICAgICAgZW1haWxzLgorCisgICAgVGhleSBzaG91bGQgYWxzbyBkZWZpbmUgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgorCisgICAgICAgIGFubm91bmNlX3Nob3dfc2hvcnRsb2cgKGJvb2wpCisKKyAgICAgICAgICAgIFRydWUgaWZmIGFubm91bmNlIGVtYWlscyBzaG91bGQgaW5jbHVkZSBhIHNob3J0bG9nLgorCisgICAgICAgIHJlZmNoYW5nZV9zaG93bG9nIChib29sKQorCisgICAgICAgICAgICBUcnVlIGlmZiByZWZjaGFuZ2VzIGVtYWlscyBzaG91bGQgaW5jbHVkZSBhIGRldGFpbGVkIGxvZy4KKworICAgICAgICBkaWZmb3B0cyAobGlzdCBvZiBzdHJpbmdzKQorCisgICAgICAgICAgICBUaGUgb3B0aW9ucyB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gJ2dpdCBkaWZmJyBmb3IgdGhlCisgICAgICAgICAgICBzdW1tYXJ5IGVtYWlsLiAgVGhlIHZhbHVlIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3RyaW5ncworICAgICAgICAgICAgcmVwcmVzZW50aW5nIHdvcmRzIHRvIGJlIHBhc3NlZCB0byB0aGUgY29tbWFuZC4KKworICAgICAgICBsb2dvcHRzIChsaXN0IG9mIHN0cmluZ3MpCisKKyAgICAgICAgICAgIEFuYWxvZ291cyB0byBkaWZmb3B0cywgYnV0IGNvbnRhaW5zIG9wdGlvbnMgcGFzc2VkIHRvCisgICAgICAgICAgICAnZ2l0IGxvZycgd2hlbiBnZW5lcmF0aW5nIHRoZSBkZXRhaWxlZCBsb2cgZm9yIGEgc2V0IG9mCisgICAgICAgICAgICBjb21taXRzIChzZWUgcmVmY2hhbmdlX3Nob3dsb2cpCisKKyAgICAiIiIKKworICAgIFJFUE9fTkFNRV9SRSA9IHJlLmNvbXBpbGUocideKD9QPG5hbWU+Lis/KSg/OlwuZ2l0KSQnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zZW52PU5vbmUpOgorICAgICAgICBzZWxmLm9zZW52ID0gb3NlbnYgb3Igb3MuZW52aXJvbgorICAgICAgICBzZWxmLmFubm91bmNlX3Nob3dfc2hvcnRsb2cgPSBGYWxzZQorICAgICAgICBzZWxmLm1heGNvbW1pdGVtYWlscyA9IDUwMAorICAgICAgICBzZWxmLmRpZmZvcHRzID0gWyctLXN0YXQnLCAnLS1zdW1tYXJ5JywgJy0tZmluZC1jb3BpZXMtaGFyZGVyJ10KKyAgICAgICAgc2VsZi5sb2dvcHRzID0gW10KKyAgICAgICAgc2VsZi5yZWZjaGFuZ2Vfc2hvd2xvZyA9IEZhbHNlCisKKyAgICAgICAgc2VsZi5DT01QVVRFRF9LRVlTID0gWworICAgICAgICAgICAgJ2FkbWluaXN0cmF0b3InLAorICAgICAgICAgICAgJ2NoYXJzZXQnLAorICAgICAgICAgICAgJ2VtYWlscHJlZml4JywKKyAgICAgICAgICAgICdmcm9tYWRkcicsCisgICAgICAgICAgICAncHVzaGVyJywKKyAgICAgICAgICAgICdwdXNoZXJfZW1haWwnLAorICAgICAgICAgICAgJ3JlcG9fcGF0aCcsCisgICAgICAgICAgICAncmVwb19zaG9ydG5hbWUnLAorICAgICAgICAgICAgJ3NlbmRlcicsCisgICAgICAgICAgICBdCisKKyAgICAgICAgc2VsZi5fdmFsdWVzID0gTm9uZQorCisgICAgZGVmIGdldF9yZXBvX3Nob3J0bmFtZShzZWxmKToKKyAgICAgICAgIiIiVXNlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIHJlcG8gcGF0aCwgd2l0aCAiLmdpdCIgc3RyaXBwZWQgb2ZmIGlmIHByZXNlbnQuIiIiCisKKyAgICAgICAgYmFzZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguYWJzcGF0aChzZWxmLmdldF9yZXBvX3BhdGgoKSkpCisgICAgICAgIG0gPSBzZWxmLlJFUE9fTkFNRV9SRS5tYXRjaChiYXNlbmFtZSkKKyAgICAgICAgaWYgbToKKyAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKCduYW1lJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBiYXNlbmFtZQorCisgICAgZGVmIGdldF9wdXNoZXIoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGdldF9wdXNoZXJfZW1haWwoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgZ2V0X2FkbWluaXN0cmF0b3Ioc2VsZik6CisgICAgICAgIHJldHVybiAndGhlIGFkbWluaXN0cmF0b3Igb2YgdGhpcyByZXBvc2l0b3J5JworCisgICAgZGVmIGdldF9lbWFpbHByZWZpeChzZWxmKToKKyAgICAgICAgcmV0dXJuICcnCisKKyAgICBkZWYgZ2V0X3JlcG9fcGF0aChzZWxmKToKKyAgICAgICAgaWYgcmVhZF9naXRfb3V0cHV0KFsncmV2LXBhcnNlJywgJy0taXMtYmFyZS1yZXBvc2l0b3J5J10pID09ICd0cnVlJzoKKyAgICAgICAgICAgIHBhdGggPSBnZXRfZ2l0X2RpcigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXRoID0gcmVhZF9naXRfb3V0cHV0KFsncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddKQorICAgICAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKHBhdGgpCisKKyAgICBkZWYgZ2V0X2NoYXJzZXQoc2VsZik6CisgICAgICAgIHJldHVybiBDSEFSU0VUCisKKyAgICBkZWYgZ2V0X3ZhbHVlcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgZGljdGlvbmFyeSB7a2V5d29yZCA6IGV4cGFuc2lvbn0gZm9yIHRoaXMgRW52aXJvbm1lbnQuCisKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IENoYW5nZS5fY29tcHV0ZV92YWx1ZXMoKS4gIFRoZSBrZXlzCisgICAgICAgIGluIHRoZSByZXR1cm5lZCBkaWN0aW9uYXJ5IGFyZSBhdmFpbGFibGUgdG8gYmUgdXNlZCBpbiBhbnkgb2YKKyAgICAgICAgdGhlIHRlbXBsYXRlcy4gIFRoZSBkaWN0aW9uYXJ5IGlzIGNyZWF0ZWQgYnkgY2FsbGluZworICAgICAgICBzZWxmLmdldF9OQU1FKCkgZm9yIGVhY2ggb2YgdGhlIGF0dHJpYnV0ZXMgbmFtZWQgaW4KKyAgICAgICAgQ09NUFVURURfS0VZUyBhbmQgcmVjb3JkaW5nIHRob3NlIHRoYXQgZG8gbm90IHJldHVybiBOb25lLgorICAgICAgICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyBhIG5ldyBkaWN0aW9uYXJ5LiIiIgorCisgICAgICAgIGlmIHNlbGYuX3ZhbHVlcyBpcyBOb25lOgorICAgICAgICAgICAgdmFsdWVzID0ge30KKworICAgICAgICAgICAgZm9yIGtleSBpbiBzZWxmLkNPTVBVVEVEX0tFWVM6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRhdHRyKHNlbGYsICdnZXRfJXMnICUgKGtleSwpKSgpCisgICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlc1trZXldID0gdmFsdWUKKworICAgICAgICAgICAgc2VsZi5fdmFsdWVzID0gdmFsdWVzCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZhbHVlcy5jb3B5KCkKKworICAgIGRlZiBnZXRfcmVmY2hhbmdlX3JlY2lwaWVudHMoc2VsZiwgcmVmY2hhbmdlKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSByZWNpcGllbnRzIGZvciBub3RpZmljYXRpb25zIGFib3V0IHJlZmNoYW5nZS4KKworICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzIHRvIHdoaWNoIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgYWJvdXQgdGhlIHNwZWNpZmllZCBSZWZlcmVuY2VDaGFuZ2Ugc2hvdWxkIGJlIHNlbnQuIiIiCisKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgZ2V0X2Fubm91bmNlX3JlY2lwaWVudHMoc2VsZiwgYW5ub3RhdGVkX3RhZ19jaGFuZ2UpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHJlY2lwaWVudHMgZm9yIG5vdGlmaWNhdGlvbnMgYWJvdXQgYW5ub3RhdGVkX3RhZ19jaGFuZ2UuCisKKyAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBub3RpZmljYXRpb25zCisgICAgICAgIGFib3V0IHRoZSBzcGVjaWZpZWQgQW5ub3RhdGVkVGFnQ2hhbmdlIHNob3VsZCBiZSBzZW50LiIiIgorCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgZGVmIGdldF9yZXBseV90b19yZWZjaGFuZ2Uoc2VsZiwgcmVmY2hhbmdlKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3B1c2hlcl9lbWFpbCgpCisKKyAgICBkZWYgZ2V0X3JldmlzaW9uX3JlY2lwaWVudHMoc2VsZiwgcmV2aXNpb24pOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHJlY2lwaWVudHMgZm9yIG1lc3NhZ2VzIGFib3V0IHJldmlzaW9uLgorCisgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBlbWFpbCBhZGRyZXNzZXMgdG8gd2hpY2ggbm90aWZpY2F0aW9ucworICAgICAgICBhYm91dCB0aGUgc3BlY2lmaWVkIFJldmlzaW9uIHNob3VsZCBiZSBzZW50LiAgVGhpcyBtZXRob2QKKyAgICAgICAgY291bGQgYmUgb3ZlcnJpZGRlbiwgZm9yIGV4YW1wbGUsIHRvIHRha2UgaW50byBhY2NvdW50IHRoZQorICAgICAgICBjb250ZW50cyBvZiB0aGUgcmV2aXNpb24gd2hlbiBkZWNpZGluZyB3aG9tIHRvIG5vdGlmeSBhYm91dAorICAgICAgICBpdC4gIEZvciBleGFtcGxlLCB0aGVyZSBjb3VsZCBiZSBhIHNjaGVtZSBmb3IgdXNlcnMgdG8gZXhwcmVzcworICAgICAgICBpbnRlcmVzdCBpbiBwYXJ0aWN1bGFyIGZpbGVzIG9yIHN1YmRpcmVjdG9yaWVzLCBhbmQgb25seQorICAgICAgICByZWNlaXZlIG5vdGlmaWNhdGlvbiBlbWFpbHMgZm9yIHJldmlzaW9ucyB0aGF0IGFmZmVjdGluZyB0aG9zZQorICAgICAgICBmaWxlcy4iIiIKKworICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBnZXRfcmVwbHlfdG9fY29tbWl0KHNlbGYsIHJldmlzaW9uKToKKyAgICAgICAgcmV0dXJuIHJldmlzaW9uLmF1dGhvcgorCisgICAgZGVmIGZpbHRlcl9ib2R5KHNlbGYsIGxpbmVzKToKKyAgICAgICAgIiIiRmlsdGVyIHRoZSBsaW5lcyBpbnRlbmRlZCBmb3IgYW4gZW1haWwgYm9keS4KKworICAgICAgICBsaW5lcyBpcyBhbiBpdGVyYWJsZSBvdmVyIHRoZSBsaW5lcyB0aGF0IHdvdWxkIGdvIGludG8gdGhlCisgICAgICAgIGVtYWlsIGJvZHkuICBGaWx0ZXIgaXQgKGUuZy4sIGxpbWl0IHRoZSBudW1iZXIgb2YgbGluZXMsIHRoZQorICAgICAgICBsaW5lIGxlbmd0aCwgY2hhcmFjdGVyIHNldCwgZXRjLiksIHJldHVybmluZyBhbm90aGVyIGl0ZXJhYmxlLgorICAgICAgICBTZWUgRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluIGFuZCBNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4KKyAgICAgICAgZm9yIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgZnVuY3Rpb25hbGl0eS4iIiIKKworICAgICAgICByZXR1cm4gbGluZXMKKworCitjbGFzcyBDb25maWdFbnZpcm9ubWVudE1peGluKEVudmlyb25tZW50KToKKyAgICAiIiJBIG1peGluIHRoYXQgc2V0cyBzZWxmLmNvbmZpZyB0byBpdHMgY29uc3RydWN0b3IncyBjb25maWcgYXJndW1lbnQuCisKKyAgICBUaGlzIGNsYXNzJ3MgY29uc3RydWN0b3IgY29uc3VtZXMgdGhlICJjb25maWciIGFyZ3VtZW50LgorCisgICAgTWl4aW5zIHRoYXQgbmVlZCB0byBpbnNwZWN0IHRoZSBjb25maWcgc2hvdWxkIGluaGVyaXQgZnJvbSB0aGlzCisgICAgY2xhc3MgKDEpIHRvIG1ha2Ugc3VyZSB0aGF0ICJjb25maWciIGlzIHN0aWxsIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgIGFyZ3VtZW50cyB3aXRoIGl0cyBvd24gY29uc3RydWN0b3IgcnVucyBhbmQvb3IgKDIpIHRvIGJlIHN1cmUgdGhhdAorICAgIHNlbGYuY29uZmlnIGlzIHNldCBhZnRlciBjb25zdHJ1Y3Rpb24uIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCAqKmt3KToKKyAgICAgICAgc3VwZXIoQ29uZmlnRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuX19pbml0X18oKiprdykKKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKKworCitjbGFzcyBDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbihDb25maWdFbnZpcm9ubWVudE1peGluKToKKyAgICAiIiJBbiBFbnZpcm9ubWVudCB0aGF0IHJlYWRzIG1vc3Qgb2YgaXRzIGluZm9ybWF0aW9uIGZyb20gImdpdCBjb25maWciLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgKiprdyk6CisgICAgICAgIHN1cGVyKENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygKKyAgICAgICAgICAgIGNvbmZpZz1jb25maWcsICoqa3cKKyAgICAgICAgICAgICkKKworICAgICAgICBzZWxmLmFubm91bmNlX3Nob3dfc2hvcnRsb2cgPSBjb25maWcuZ2V0X2Jvb2woCisgICAgICAgICAgICAnYW5ub3VuY2VzaG9ydGxvZycsIGRlZmF1bHQ9c2VsZi5hbm5vdW5jZV9zaG93X3Nob3J0bG9nCisgICAgICAgICAgICApCisKKyAgICAgICAgc2VsZi5yZWZjaGFuZ2Vfc2hvd2xvZyA9IGNvbmZpZy5nZXRfYm9vbCgKKyAgICAgICAgICAgICdyZWZjaGFuZ2VzaG93bG9nJywgZGVmYXVsdD1zZWxmLnJlZmNoYW5nZV9zaG93bG9nCisgICAgICAgICAgICApCisKKyAgICAgICAgbWF4Y29tbWl0ZW1haWxzID0gY29uZmlnLmdldCgnbWF4Y29tbWl0ZW1haWxzJykKKyAgICAgICAgaWYgbWF4Y29tbWl0ZW1haWxzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYubWF4Y29tbWl0ZW1haWxzID0gaW50KG1heGNvbW1pdGVtYWlscykKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICcqKiogTWFsZm9ybWVkIHZhbHVlIGZvciBtdWx0aW1haWxob29rLm1heENvbW1pdEVtYWlsczogJXNcbicgJSBtYXhjb21taXRlbWFpbHMKKyAgICAgICAgICAgICAgICAgICAgKyAnKioqIEV4cGVjdGVkIGEgbnVtYmVyLiAgSWdub3JpbmcuXG4nCisgICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICBkaWZmb3B0cyA9IGNvbmZpZy5nZXQoJ2RpZmZvcHRzJykKKyAgICAgICAgaWYgZGlmZm9wdHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmRpZmZvcHRzID0gc2hsZXguc3BsaXQoZGlmZm9wdHMpCisKKyAgICAgICAgbG9nb3B0cyA9IGNvbmZpZy5nZXQoJ2xvZ29wdHMnKQorICAgICAgICBpZiBsb2dvcHRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2dvcHRzID0gc2hsZXguc3BsaXQobG9nb3B0cykKKworICAgICAgICByZXBseV90byA9IGNvbmZpZy5nZXQoJ3JlcGx5VG8nKQorICAgICAgICBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlID0gY29uZmlnLmdldCgncmVwbHlUb1JlZmNoYW5nZScsIGRlZmF1bHQ9cmVwbHlfdG8pCisgICAgICAgIGlmICgKKyAgICAgICAgICAgIHNlbGYuX19yZXBseV90b19yZWZjaGFuZ2UgaXMgbm90IE5vbmUKKyAgICAgICAgICAgIGFuZCBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlLmxvd2VyKCkgPT0gJ2F1dGhvcicKKyAgICAgICAgICAgICk6CisgICAgICAgICAgICByYWlzZSBDb25maWd1cmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICciYXV0aG9yIiBpcyBub3QgYW4gYWxsb3dlZCBzZXR0aW5nIGZvciByZXBseVRvUmVmY2hhbmdlJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5fX3JlcGx5X3RvX2NvbW1pdCA9IGNvbmZpZy5nZXQoJ3JlcGx5VG9Db21taXQnLCBkZWZhdWx0PXJlcGx5X3RvKQorCisgICAgZGVmIGdldF9hZG1pbmlzdHJhdG9yKHNlbGYpOgorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgc2VsZi5jb25maWcuZ2V0KCdhZG1pbmlzdHJhdG9yJykKKyAgICAgICAgICAgIG9yIHNlbGYuZ2V0X3NlbmRlcigpCisgICAgICAgICAgICBvciBzdXBlcihDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuZ2V0X2FkbWluaXN0cmF0b3IoKQorICAgICAgICAgICAgKQorCisgICAgZGVmIGdldF9yZXBvX3Nob3J0bmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgIHNlbGYuY29uZmlnLmdldCgncmVwb25hbWUnKQorICAgICAgICAgICAgb3Igc3VwZXIoQ29uZmlnT3B0aW9uc0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLmdldF9yZXBvX3Nob3J0bmFtZSgpCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X2VtYWlscHJlZml4KHNlbGYpOgorICAgICAgICBlbWFpbHByZWZpeCA9IHNlbGYuY29uZmlnLmdldCgnZW1haWxwcmVmaXgnKQorICAgICAgICBpZiBlbWFpbHByZWZpeCBhbmQgZW1haWxwcmVmaXguc3RyaXAoKToKKyAgICAgICAgICAgIHJldHVybiBlbWFpbHByZWZpeC5zdHJpcCgpICsgJyAnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJ1slc10gJyAlIChzZWxmLmdldF9yZXBvX3Nob3J0bmFtZSgpLCkKKworICAgIGRlZiBnZXRfc2VuZGVyKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jb25maWcuZ2V0KCdlbnZlbG9wZXNlbmRlcicpCisKKyAgICBkZWYgZ2V0X2Zyb21hZGRyKHNlbGYpOgorICAgICAgICBmcm9tYWRkciA9IHNlbGYuY29uZmlnLmdldCgnZnJvbScpCisgICAgICAgIGlmIGZyb21hZGRyOgorICAgICAgICAgICAgcmV0dXJuIGZyb21hZGRyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25maWcgPSBDb25maWcoJ3VzZXInKQorICAgICAgICAgICAgZnJvbW5hbWUgPSBjb25maWcuZ2V0KCduYW1lJywgZGVmYXVsdD0nJykKKyAgICAgICAgICAgIGZyb21lbWFpbCA9IGNvbmZpZy5nZXQoJ2VtYWlsJywgZGVmYXVsdD0nJykKKyAgICAgICAgICAgIGlmIGZyb21lbWFpbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0YWRkcihbZnJvbW5hbWUsIGZyb21lbWFpbF0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9zZW5kZXIoKQorCisgICAgZGVmIGdldF9yZXBseV90b19yZWZjaGFuZ2Uoc2VsZiwgcmVmY2hhbmdlKToKKyAgICAgICAgaWYgc2VsZi5fX3JlcGx5X3RvX3JlZmNoYW5nZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5nZXRfcmVwbHlfdG9fcmVmY2hhbmdlKHJlZmNoYW5nZSkKKyAgICAgICAgZWxpZiBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlLmxvd2VyKCkgPT0gJ3B1c2hlcic6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfcHVzaGVyX2VtYWlsKCkKKyAgICAgICAgZWxpZiBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlLmxvd2VyKCkgPT0gJ25vbmUnOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fcmVwbHlfdG9fcmVmY2hhbmdlCisKKyAgICBkZWYgZ2V0X3JlcGx5X3RvX2NvbW1pdChzZWxmLCByZXZpc2lvbik6CisgICAgICAgIGlmIHNlbGYuX19yZXBseV90b19jb21taXQgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuZ2V0X3JlcGx5X3RvX2NvbW1pdChyZXZpc2lvbikKKyAgICAgICAgZWxpZiBzZWxmLl9fcmVwbHlfdG9fY29tbWl0Lmxvd2VyKCkgPT0gJ2F1dGhvcic6CisgICAgICAgICAgICByZXR1cm4gcmV2aXNpb24uZ2V0X2F1dGhvcigpCisgICAgICAgIGVsaWYgc2VsZi5fX3JlcGx5X3RvX2NvbW1pdC5sb3dlcigpID09ICdwdXNoZXInOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3B1c2hlcl9lbWFpbCgpCisgICAgICAgIGVsaWYgc2VsZi5fX3JlcGx5X3RvX2NvbW1pdC5sb3dlcigpID09ICdub25lJzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fX3JlcGx5X3RvX2NvbW1pdAorCisKK2NsYXNzIEZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbihFbnZpcm9ubWVudCk6CisgICAgIiIiSGFuZGxlIGVuY29kaW5nIGFuZCBtYXhpbXVtIGxpbmUgbGVuZ3RoIG9mIGJvZHkgbGluZXMuCisKKyAgICAgICAgZW1haWxtYXhsaW5lbGVuZ3RoIChpbnQgb3IgTm9uZSkKKworICAgICAgICAgICAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBzaW5nbGUgbGluZSBpbiB0aGUgZW1haWwgYm9keS4KKyAgICAgICAgICAgIExvbmdlciBsaW5lcyBhcmUgdHJ1bmNhdGVkIGF0IHRoYXQgbGVuZ3RoIHdpdGggJyBbLi4uXScKKyAgICAgICAgICAgIGFwcGVuZGVkLgorCisgICAgICAgIHN0cmljdF91dGY4IChib29sKQorCisgICAgICAgICAgICBJZiB0aGlzIGZpZWxkIGlzIHNldCB0byBUcnVlLCB0aGVuIHRoZSBlbWFpbCBib2R5IHRleHQgaXMKKyAgICAgICAgICAgIGV4cGVjdGVkIHRvIGJlIFVURi04LiAgQW55IGludmFsaWQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgIGNvbnZlcnRlZCB0byBVK0ZGRkQsIHRoZSBVbmljb2RlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICAgICAgKGVuY29kZWQgYXMgVVRGLTgsIG9mIGNvdXJzZSkuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJpY3RfdXRmOD1UcnVlLCBlbWFpbG1heGxpbmVsZW5ndGg9NTAwLCAqKmt3KToKKyAgICAgICAgc3VwZXIoRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygqKmt3KQorICAgICAgICBzZWxmLl9fc3RyaWN0X3V0ZjggPSBzdHJpY3RfdXRmOAorICAgICAgICBzZWxmLl9fZW1haWxtYXhsaW5lbGVuZ3RoID0gZW1haWxtYXhsaW5lbGVuZ3RoCisKKyAgICBkZWYgZmlsdGVyX2JvZHkoc2VsZiwgbGluZXMpOgorICAgICAgICBsaW5lcyA9IHN1cGVyKEZpbHRlckxpbmVzRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuZmlsdGVyX2JvZHkobGluZXMpCisgICAgICAgIGlmIHNlbGYuX19zdHJpY3RfdXRmODoKKyAgICAgICAgICAgIGxpbmVzID0gKGxpbmUuZGVjb2RlKEVOQ09ESU5HLCAncmVwbGFjZScpIGZvciBsaW5lIGluIGxpbmVzKQorICAgICAgICAgICAgIyBMaW1pdCB0aGUgbGluZSBsZW5ndGggaW4gVW5pY29kZS1zcGFjZSB0byBhdm9pZAorICAgICAgICAgICAgIyBzcGxpdHRpbmcgY2hhcmFjdGVyczoKKyAgICAgICAgICAgIGlmIHNlbGYuX19lbWFpbG1heGxpbmVsZW5ndGg6CisgICAgICAgICAgICAgICAgbGluZXMgPSBsaW1pdF9saW5lbGVuZ3RoKGxpbmVzLCBzZWxmLl9fZW1haWxtYXhsaW5lbGVuZ3RoKQorICAgICAgICAgICAgbGluZXMgPSAobGluZS5lbmNvZGUoRU5DT0RJTkcsICdyZXBsYWNlJykgZm9yIGxpbmUgaW4gbGluZXMpCisgICAgICAgIGVsaWYgc2VsZi5fX2VtYWlsbWF4bGluZWxlbmd0aDoKKyAgICAgICAgICAgIGxpbmVzID0gbGltaXRfbGluZWxlbmd0aChsaW5lcywgc2VsZi5fX2VtYWlsbWF4bGluZWxlbmd0aCkKKworICAgICAgICByZXR1cm4gbGluZXMKKworCitjbGFzcyBDb25maWdGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4oCisgICAgQ29uZmlnRW52aXJvbm1lbnRNaXhpbiwKKyAgICBGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgKToKKyAgICAiIiJIYW5kbGUgZW5jb2RpbmcgYW5kIG1heGltdW0gbGluZSBsZW5ndGggYmFzZWQgb24gY29uZmlnLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgKiprdyk6CisgICAgICAgIHN0cmljdF91dGY4ID0gY29uZmlnLmdldF9ib29sKCdlbWFpbHN0cmljdHV0ZjgnLCBkZWZhdWx0PU5vbmUpCisgICAgICAgIGlmIHN0cmljdF91dGY4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dbJ3N0cmljdF91dGY4J10gPSBzdHJpY3RfdXRmOAorCisgICAgICAgIGVtYWlsbWF4bGluZWxlbmd0aCA9IGNvbmZpZy5nZXQoJ2VtYWlsbWF4bGluZWxlbmd0aCcpCisgICAgICAgIGlmIGVtYWlsbWF4bGluZWxlbmd0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGt3WydlbWFpbG1heGxpbmVsZW5ndGgnXSA9IGludChlbWFpbG1heGxpbmVsZW5ndGgpCisKKyAgICAgICAgc3VwZXIoQ29uZmlnRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygKKyAgICAgICAgICAgIGNvbmZpZz1jb25maWcsICoqa3cKKyAgICAgICAgICAgICkKKworCitjbGFzcyBNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgICIiIkxpbWl0IHRoZSBlbWFpbCBib2R5IHRvIGEgc3BlY2lmaWVkIG51bWJlciBvZiBsaW5lcy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbWFpbG1heGxpbmVzLCAqKmt3KToKKyAgICAgICAgc3VwZXIoTWF4bGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygqKmt3KQorICAgICAgICBzZWxmLl9fZW1haWxtYXhsaW5lcyA9IGVtYWlsbWF4bGluZXMKKworICAgIGRlZiBmaWx0ZXJfYm9keShzZWxmLCBsaW5lcyk6CisgICAgICAgIGxpbmVzID0gc3VwZXIoTWF4bGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5maWx0ZXJfYm9keShsaW5lcykKKyAgICAgICAgaWYgc2VsZi5fX2VtYWlsbWF4bGluZXM6CisgICAgICAgICAgICBsaW5lcyA9IGxpbWl0X2xpbmVzKGxpbmVzLCBzZWxmLl9fZW1haWxtYXhsaW5lcykKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKworY2xhc3MgQ29uZmlnTWF4bGluZXNFbnZpcm9ubWVudE1peGluKAorICAgIENvbmZpZ0Vudmlyb25tZW50TWl4aW4sCisgICAgTWF4bGluZXNFbnZpcm9ubWVudE1peGluLAorICAgICk6CisgICAgIiIiTGltaXQgdGhlIGVtYWlsIGJvZHkgdG8gdGhlIG51bWJlciBvZiBsaW5lcyBzcGVjaWZpZWQgaW4gY29uZmlnLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgKiprdyk6CisgICAgICAgIGVtYWlsbWF4bGluZXMgPSBpbnQoY29uZmlnLmdldCgnZW1haWxtYXhsaW5lcycsIGRlZmF1bHQ9JzAnKSkKKyAgICAgICAgc3VwZXIoQ29uZmlnTWF4bGluZXNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygKKyAgICAgICAgICAgIGNvbmZpZz1jb25maWcsCisgICAgICAgICAgICBlbWFpbG1heGxpbmVzPWVtYWlsbWF4bGluZXMsCisgICAgICAgICAgICAqKmt3CisgICAgICAgICAgICApCisKKworY2xhc3MgUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbihDb25maWdFbnZpcm9ubWVudE1peGluKToKKyAgICAiIiJEZWR1Y2UgcHVzaGVyX2VtYWlsIGZyb20gcHVzaGVyIGJ5IGFwcGVuZGluZyBhbiBlbWFpbGRvbWFpbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKKyAgICAgICAgc3VwZXIoUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbiwgc2VsZikuX19pbml0X18oKiprdykKKyAgICAgICAgc2VsZi5fX2VtYWlsZG9tYWluID0gc2VsZi5jb25maWcuZ2V0KCdlbWFpbGRvbWFpbicpCisKKyAgICBkZWYgZ2V0X3B1c2hlcl9lbWFpbChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fX2VtYWlsZG9tYWluOgorICAgICAgICAgICAgIyBEZXJpdmUgdGhlIHB1c2hlcidzIGZ1bGwgZW1haWwgYWRkcmVzcyBpbiB0aGUgZGVmYXVsdCB3YXk6CisgICAgICAgICAgICByZXR1cm4gJyVzQCVzJyAlIChzZWxmLmdldF9wdXNoZXIoKSwgc2VsZi5fX2VtYWlsZG9tYWluKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKFB1c2hlckRvbWFpbkVudmlyb25tZW50TWl4aW4sIHNlbGYpLmdldF9wdXNoZXJfZW1haWwoKQorCisKK2NsYXNzIFN0YXRpY1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluKEVudmlyb25tZW50KToKKyAgICAiIiJTZXQgcmVjaXBpZW50cyBzdGF0aWNhbGx5IGJhc2VkIG9uIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMuIiIiCisKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgIHNlbGYsCisgICAgICAgIHJlZmNoYW5nZV9yZWNpcGllbnRzLCBhbm5vdW5jZV9yZWNpcGllbnRzLCByZXZpc2lvbl9yZWNpcGllbnRzLAorICAgICAgICAqKmt3CisgICAgICAgICk6CisgICAgICAgIHN1cGVyKFN0YXRpY1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygqKmt3KQorCisgICAgICAgICMgVGhlIHJlY2lwaWVudHMgZm9yIHZhcmlvdXMgdHlwZXMgb2Ygbm90aWZpY2F0aW9uIGVtYWlscywgYXMKKyAgICAgICAgIyBSRkMgMjgyMiBlbWFpbCBhZGRyZXNzZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcyAob3IgdGhlIGVtcHR5CisgICAgICAgICMgc3RyaW5nIGlmIG5vIHJlY2lwaWVudHMgYXJlIGNvbmZpZ3VyZWQpLiAgQWx0aG91Z2ggdGhlcmUgaXMKKyAgICAgICAgIyBhIG1lY2hhbmlzbSB0byBjaG9vc2UgdGhlIHJlY2lwaWVudCBsaXN0cyBiYXNlZCBvbiBvbiB0aGUKKyAgICAgICAgIyBhY3R1YWwgKmNvbnRlbnRzKiBvZiB0aGUgY2hhbmdlIGJlaW5nIHJlcG9ydGVkLCB3ZSBvbmx5CisgICAgICAgICMgY2hvb3NlIGJhc2VkIG9uIHRoZSAqdHlwZSogb2YgdGhlIGNoYW5nZS4gIFRoZXJlZm9yZSB3ZSBjYW4KKyAgICAgICAgIyBjb21wdXRlIHRoZW0gb25jZSBhbmQgZm9yIGFsbDoKKyAgICAgICAgc2VsZi5fX3JlZmNoYW5nZV9yZWNpcGllbnRzID0gcmVmY2hhbmdlX3JlY2lwaWVudHMKKyAgICAgICAgc2VsZi5fX2Fubm91bmNlX3JlY2lwaWVudHMgPSBhbm5vdW5jZV9yZWNpcGllbnRzCisgICAgICAgIHNlbGYuX19yZXZpc2lvbl9yZWNpcGllbnRzID0gcmV2aXNpb25fcmVjaXBpZW50cworCisgICAgZGVmIGdldF9yZWZjaGFuZ2VfcmVjaXBpZW50cyhzZWxmLCByZWZjaGFuZ2UpOgorICAgICAgICByZXR1cm4gc2VsZi5fX3JlZmNoYW5nZV9yZWNpcGllbnRzCisKKyAgICBkZWYgZ2V0X2Fubm91bmNlX3JlY2lwaWVudHMoc2VsZiwgYW5ub3RhdGVkX3RhZ19jaGFuZ2UpOgorICAgICAgICByZXR1cm4gc2VsZi5fX2Fubm91bmNlX3JlY2lwaWVudHMKKworICAgIGRlZiBnZXRfcmV2aXNpb25fcmVjaXBpZW50cyhzZWxmLCByZXZpc2lvbik6CisgICAgICAgIHJldHVybiBzZWxmLl9fcmV2aXNpb25fcmVjaXBpZW50cworCisKK2NsYXNzIENvbmZpZ1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluKAorICAgIENvbmZpZ0Vudmlyb25tZW50TWl4aW4sCisgICAgU3RhdGljUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4KKyAgICApOgorICAgICIiIkRldGVybWluZSByZWNpcGllbnRzIHN0YXRpY2FsbHkgYmFzZWQgb24gY29uZmlnLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgKiprdyk6CisgICAgICAgIHN1cGVyKENvbmZpZ1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluLCBzZWxmKS5fX2luaXRfXygKKyAgICAgICAgICAgIGNvbmZpZz1jb25maWcsCisgICAgICAgICAgICByZWZjaGFuZ2VfcmVjaXBpZW50cz1zZWxmLl9nZXRfcmVjaXBpZW50cygKKyAgICAgICAgICAgICAgICBjb25maWcsICdyZWZjaGFuZ2VsaXN0JywgJ21haWxpbmdsaXN0JywKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgYW5ub3VuY2VfcmVjaXBpZW50cz1zZWxmLl9nZXRfcmVjaXBpZW50cygKKyAgICAgICAgICAgICAgICBjb25maWcsICdhbm5vdW5jZWxpc3QnLCAncmVmY2hhbmdlbGlzdCcsICdtYWlsaW5nbGlzdCcsCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIHJldmlzaW9uX3JlY2lwaWVudHM9c2VsZi5fZ2V0X3JlY2lwaWVudHMoCisgICAgICAgICAgICAgICAgY29uZmlnLCAnY29tbWl0bGlzdCcsICdtYWlsaW5nbGlzdCcsCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICoqa3cKKyAgICAgICAgICAgICkKKworICAgIGRlZiBfZ2V0X3JlY2lwaWVudHMoc2VsZiwgY29uZmlnLCAqbmFtZXMpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHJlY2lwaWVudHMgZm9yIGEgcGFydGljdWxhciB0eXBlIG9mIG1lc3NhZ2UuCisKKyAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGVtYWlsIGFkZHJlc3NlcyB0byB3aGljaCBhIHBhcnRpY3VsYXIgdHlwZQorICAgICAgICBvZiBub3RpZmljYXRpb24gZW1haWwgc2hvdWxkIGJlIHNlbnQsIGJ5IGxvb2tpbmcgYXQgdGhlIGNvbmZpZworICAgICAgICB2YWx1ZSBmb3IgIm11bHRpbWFpbGhvb2suJG5hbWUiIGZvciBlYWNoIG9mIG5hbWVzLiAgVXNlIHRoZQorICAgICAgICB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBuYW1lIHRoYXQgaXMgY29uZmlndXJlZC4gIFRoZSByZXR1cm4KKyAgICAgICAgdmFsdWUgaXMgYSAocG9zc2libHkgZW1wdHkpIHN0cmluZyBjb250YWluaW5nIFJGQyAyODIyIGVtYWlsCisgICAgICAgIGFkZHJlc3NlcyBzZXBhcmF0ZWQgYnkgY29tbWFzLiAgSWYgbm8gY29uZmlndXJhdGlvbiBjb3VsZCBiZQorICAgICAgICBmb3VuZCwgcmFpc2UgYSBDb25maWd1cmF0aW9uRXhjZXB0aW9uLiIiIgorCisgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgcmV0dmFsID0gY29uZmlnLmdldF9yZWNpcGllbnRzKG5hbWUpCisgICAgICAgICAgICBpZiByZXR2YWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldHZhbAorICAgICAgICBpZiBsZW4obmFtZXMpID09IDE6CisgICAgICAgICAgICBoaW50ID0gJ1BsZWFzZSBzZXQgIiVzLiVzIicgJSAoY29uZmlnLnNlY3Rpb24sIG5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBoaW50ID0gKAorICAgICAgICAgICAgICAgICdQbGVhc2Ugc2V0IG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuICAgICIlcyInCisgICAgICAgICAgICAgICAgJSAoJyJcbiAgICAiJy5qb2luKCclcy4lcycgJSAoY29uZmlnLnNlY3Rpb24sIG5hbWUpIGZvciBuYW1lIGluIG5hbWVzKSkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgcmFpc2UgQ29uZmlndXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICdUaGUgbGlzdCBvZiByZWNpcGllbnRzIGZvciAlcyBpcyBub3QgY29uZmlndXJlZC5cbiVzJyAlIChuYW1lc1swXSwgaGludCkKKyAgICAgICAgICAgICkKKworCitjbGFzcyBQcm9qZWN0ZGVzY0Vudmlyb25tZW50TWl4aW4oRW52aXJvbm1lbnQpOgorICAgICIiIk1ha2UgYSAicHJvamVjdGRlc2MiIHZhbHVlIGF2YWlsYWJsZSBmb3IgdGVtcGxhdGVzLgorCisgICAgQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIHRoZSBmaXJzdCBsaW5lIG9mICRHSVRfRElSL2Rlc2NyaXB0aW9uCisgICAgKGlmIHRoYXQgZmlsZSBpcyBwcmVzZW50IGFuZCBhcHBlYXJzIHRvIGJlIHNldCBtZWFuaW5nZnVsbHkpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgorICAgICAgICBzdXBlcihQcm9qZWN0ZGVzY0Vudmlyb25tZW50TWl4aW4sIHNlbGYpLl9faW5pdF9fKCoqa3cpCisgICAgICAgIHNlbGYuQ09NUFVURURfS0VZUyArPSBbJ3Byb2plY3RkZXNjJ10KKworICAgIGRlZiBnZXRfcHJvamVjdGRlc2Moc2VsZik6CisgICAgICAgICIiIlJldHVybiBhIG9uZS1saW5lIGRlc2NyaXBpdGlvbiBvZiB0aGUgcHJvamVjdC4iIiIKKworICAgICAgICBnaXRfZGlyID0gZ2V0X2dpdF9kaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcm9qZWN0ZGVzYyA9IG9wZW4ob3MucGF0aC5qb2luKGdpdF9kaXIsICdkZXNjcmlwdGlvbicpKS5yZWFkbGluZSgpLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIHByb2plY3RkZXNjIGFuZCBub3QgcHJvamVjdGRlc2Muc3RhcnRzd2l0aCgnVW5uYW1lZCByZXBvc2l0b3J5Jyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByb2plY3RkZXNjCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHJldHVybiAnVU5OQU1FRCBQUk9KRUNUJworCisKK2NsYXNzIEdlbmVyaWNFbnZpcm9ubWVudE1peGluKEVudmlyb25tZW50KToKKyAgICBkZWYgZ2V0X3B1c2hlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYub3NlbnYuZ2V0KCdVU0VSJywgJ3Vua25vd24gdXNlcicpCisKKworY2xhc3MgR2VuZXJpY0Vudmlyb25tZW50KAorICAgIFByb2plY3RkZXNjRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdNYXhsaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgQ29uZmlnRmlsdGVyTGluZXNFbnZpcm9ubWVudE1peGluLAorICAgIENvbmZpZ1JlY2lwaWVudHNFbnZpcm9ubWVudE1peGluLAorICAgIFB1c2hlckRvbWFpbkVudmlyb25tZW50TWl4aW4sCisgICAgQ29uZmlnT3B0aW9uc0Vudmlyb25tZW50TWl4aW4sCisgICAgR2VuZXJpY0Vudmlyb25tZW50TWl4aW4sCisgICAgRW52aXJvbm1lbnQsCisgICAgKToKKyAgICBwYXNzCisKKworY2xhc3MgR2l0b2xpdGVFbnZpcm9ubWVudE1peGluKEVudmlyb25tZW50KToKKyAgICBkZWYgZ2V0X3JlcG9fc2hvcnRuYW1lKHNlbGYpOgorICAgICAgICAjIFRoZSBnaXRvbGl0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSAkR0xfUkVQTyBpcyBhIHByZXR0eSBnb29kCisgICAgICAgICMgcmVwb19zaG9ydG5hbWUgKHRob3VnaCBpdCdzIHByb2JhYmx5IG5vdCBhcyBnb29kIGFzIGEgdmFsdWUKKyAgICAgICAgIyB0aGUgdXNlciBtaWdodCBoYXZlIGV4cGxpY2l0bHkgcHV0IGluIGhpcyBjb25maWcpLgorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgc2VsZi5vc2Vudi5nZXQoJ0dMX1JFUE8nLCBOb25lKQorICAgICAgICAgICAgb3Igc3VwZXIoR2l0b2xpdGVFbnZpcm9ubWVudE1peGluLCBzZWxmKS5nZXRfcmVwb19zaG9ydG5hbWUoKQorICAgICAgICAgICAgKQorCisgICAgZGVmIGdldF9wdXNoZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm9zZW52LmdldCgnR0xfVVNFUicsICd1bmtub3duIHVzZXInKQorCisKK2NsYXNzIEdpdG9saXRlRW52aXJvbm1lbnQoCisgICAgUHJvamVjdGRlc2NFbnZpcm9ubWVudE1peGluLAorICAgIENvbmZpZ01heGxpbmVzRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgQ29uZmlnUmVjaXBpZW50c0Vudmlyb25tZW50TWl4aW4sCisgICAgUHVzaGVyRG9tYWluRW52aXJvbm1lbnRNaXhpbiwKKyAgICBDb25maWdPcHRpb25zRW52aXJvbm1lbnRNaXhpbiwKKyAgICBHaXRvbGl0ZUVudmlyb25tZW50TWl4aW4sCisgICAgRW52aXJvbm1lbnQsCisgICAgKToKKyAgICBwYXNzCisKKworY2xhc3MgUHVzaChvYmplY3QpOgorICAgICIiIlJlcHJlc2VudCBhbiBlbnRpcmUgcHVzaCAoaS5lLiwgYSBncm91cCBvZiBSZWZlcmVuY2VDaGFuZ2VzKS4KKworICAgIEl0IGlzIGVhc3kgdG8gZmlndXJlIG91dCB3aGF0IGNvbW1pdHMgd2VyZSBhZGRlZCB0byBhICpicmFuY2gqIGJ5CisgICAgYSBSZWZlcmVuY2UgY2hhbmdlOgorCisgICAgICAgIGdpdCByZXYtbGlzdCBjaGFuZ2Uub2xkLi5jaGFuZ2UubmV3CisKKyAgICBvciByZW1vdmVkIGZyb20gYSAqYnJhbmNoKjoKKworICAgICAgICBnaXQgcmV2LWxpc3QgY2hhbmdlLm5ldy4uY2hhbmdlLm9sZAorCisgICAgQnV0IGl0IGlzIG5vdCBxdWl0ZSBzbyB0cml2aWFsIHRvIGRldGVybWluZSB3aGljaCBlbnRpcmVseSBuZXcKKyAgICBjb21taXRzIHdlcmUgYWRkZWQgdG8gdGhlICpyZXBvc2l0b3J5KiBieSBhIHB1c2ggYW5kIHdoaWNoIG9sZAorICAgIGNvbW1pdHMgd2VyZSBkaXNjYXJkZWQgYnkgYSBwdXNoLiAgQSBiaWcgcGFydCBvZiB0aGUgam9iIG9mIHRoaXMKKyAgICBjbGFzcyBpcyB0byBmaWd1cmUgb3V0IHRoZXNlIHRoaW5ncywgYW5kIHRvIG1ha2Ugc3VyZSB0aGF0IG5ldworICAgIGNvbW1pdHMgYXJlIG9ubHkgZGV0YWlsZWQgb25jZSBldmVuIGlmIHRoZXkgd2VyZSBhZGRlZCB0byBtdWx0aXBsZQorICAgIHJlZmVyZW5jZXMuCisKKyAgICBUaGUgZmlyc3Qgc3RlcCBpcyB0byBkZXRlcm1pbmUgdGhlICJvdGhlciIgcmVmZXJlbmNlcy0tdGhvc2UKKyAgICB1bmFmZmVjdGVkIGJ5IHRoZSBjdXJyZW50IHB1c2guICBUaGV5IGFyZSBjb21wdXRlZCBieQorICAgIFB1c2guX2NvbXB1dGVfb3RoZXJfcmVmX3NoYTFzKCkgYnkgbGlzdGluZyBhbGwgcmVmZXJlbmNlcyB0aGVuCisgICAgcmVtb3ZpbmcgYW55IGFmZmVjdGVkIGJ5IHRoaXMgcHVzaC4KKworICAgIFRoZSBjb21taXRzIGNvbnRhaW5lZCBpbiB0aGUgcmVwb3NpdG9yeSBiZWZvcmUgdGhpcyBwdXNoIHdlcmUKKworICAgICAgICBnaXQgcmV2LWxpc3Qgb3RoZXIxIG90aGVyMiBvdGhlcjMgLi4uIGNoYW5nZTEub2xkIGNoYW5nZTIub2xkIC4uLgorCisgICAgV2hlcmUgImNoYW5nZU4ub2xkIiBpcyB0aGUgb2xkIHZhbHVlIG9mIG9uZSBvZiB0aGUgcmVmZXJlbmNlcworICAgIGFmZmVjdGVkIGJ5IHRoaXMgcHVzaC4KKworICAgIFRoZSBjb21taXRzIGNvbnRhaW5lZCBpbiB0aGUgcmVwb3NpdG9yeSBhZnRlciB0aGlzIHB1c2ggYXJlCisKKyAgICAgICAgZ2l0IHJldi1saXN0IG90aGVyMSBvdGhlcjIgb3RoZXIzIC4uLiBjaGFuZ2UxLm5ldyBjaGFuZ2UyLm5ldyAuLi4KKworICAgIFRoZSBjb21taXRzIGFkZGVkIGJ5IHRoaXMgcHVzaCBhcmUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVzZQorICAgIHR3byBzZXRzLCB3aGljaCBjYW4gYmUgd3JpdHRlbgorCisgICAgICAgIGdpdCByZXYtbGlzdCBcCisgICAgICAgICAgICBeb3RoZXIxIF5vdGhlcjIgLi4uIFwKKyAgICAgICAgICAgIF5jaGFuZ2UxLm9sZCBeY2hhbmdlMi5vbGQgLi4uIFwKKyAgICAgICAgICAgIGNoYW5nZTEubmV3IGNoYW5nZTIubmV3IC4uLgorCisgICAgVGhlIGNvbW1pdHMgcmVtb3ZlZCBieSB0aGlzIHB1c2ggY2FuIGJlIGNvbXB1dGVkIGJ5CisKKyAgICAgICAgZ2l0IHJldi1saXN0IFwKKyAgICAgICAgICAgIF5vdGhlcjEgXm90aGVyMiAuLi4gXAorICAgICAgICAgICAgXmNoYW5nZTEubmV3IF5jaGFuZ2UyLm5ldyAuLi4gXAorICAgICAgICAgICAgY2hhbmdlMS5vbGQgY2hhbmdlMi5vbGQgLi4uCisKKyAgICBUaGUgbGFzdCBwb2ludCBpcyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgb3RoZXIgcHVzaGVzIGFyZQorICAgIG9jY3VycmluZyBzaW11bHRhbmVvdXNseSB0byB0aGlzIG9uZSwgc28gcmVmZXJlbmNlIHZhbHVlcyBjYW4KKyAgICBjaGFuZ2UgYXQgYW55IHRpbWUuICBJdCBpcyBpbXBvc3NpYmxlIHRvIGVsaW1pbmF0ZSBhbGwgcmFjZQorICAgIGNvbmRpdGlvbnMsIGJ1dCB3ZSByZWR1Y2UgdGhlIHdpbmRvdyBvZiB0aW1lIGR1cmluZyB3aGljaCBwcm9ibGVtcworICAgIGNhbiBvY2N1ciBieSB0cmFuc2xhdGluZyByZWZlcmVuY2UgbmFtZXMgdG8gU0hBMXMgYXMgc29vbiBhcworICAgIHBvc3NpYmxlIGFuZCB3b3JraW5nIHdpdGggU0hBMXMgdGhlcmVhZnRlciAoYmVjYXVzZSBTSEExcyBhcmUKKyAgICBpbW11dGFibGUpLiIiIgorCisgICAgIyBBIG1hcCB7KGNoYW5nZWNsYXNzLCBjaGFuZ2V0eXBlKSA6IGludGVnZXJ9IHNwZWNpZnlpbmcgdGhlIG9yZGVyCisgICAgIyB0aGF0IHJlZmVyZW5jZSBjaGFuZ2VzIHdpbGwgYmUgcHJvY2Vzc2VkIGlmIG11bHRpcGxlIHJlZmVyZW5jZQorICAgICMgY2hhbmdlcyBhcmUgaW5jbHVkZWQgaW4gYSBzaW5nbGUgcHVzaC4gIFRoZSBvcmRlciBpcyBzaWduaWZpY2FudAorICAgICMgbW9zdGx5IGJlY2F1c2UgbmV3IGNvbW1pdCBub3RpZmljYXRpb25zIGFyZSB0aHJlYWRlZCB0b2dldGhlcgorICAgICMgd2l0aCB0aGUgZmlyc3QgcmVmZXJlbmNlIGNoYW5nZSB0aGF0IGluY2x1ZGVzIHRoZSBjb21taXQuICBUaGUKKyAgICAjIGZvbGxvd2luZyBvcmRlciB0aHVzIGNhdXNlcyBjb21taXRzIHRvIGJlIGdyb3VwZWQgd2l0aCBicmFuY2gKKyAgICAjIGNoYW5nZXMgKGFzIG9wcG9zZWQgdG8gdGFnIGNoYW5nZXMpIGlmIHBvc3NpYmxlLgorICAgIFNPUlRfT1JERVIgPSBkaWN0KAorICAgICAgICAodmFsdWUsIGkpIGZvciAoaSwgdmFsdWUpIGluIGVudW1lcmF0ZShbCisgICAgICAgICAgICAoQnJhbmNoQ2hhbmdlLCAndXBkYXRlJyksCisgICAgICAgICAgICAoQnJhbmNoQ2hhbmdlLCAnY3JlYXRlJyksCisgICAgICAgICAgICAoQW5ub3RhdGVkVGFnQ2hhbmdlLCAndXBkYXRlJyksCisgICAgICAgICAgICAoQW5ub3RhdGVkVGFnQ2hhbmdlLCAnY3JlYXRlJyksCisgICAgICAgICAgICAoTm9uQW5ub3RhdGVkVGFnQ2hhbmdlLCAndXBkYXRlJyksCisgICAgICAgICAgICAoTm9uQW5ub3RhdGVkVGFnQ2hhbmdlLCAnY3JlYXRlJyksCisgICAgICAgICAgICAoQnJhbmNoQ2hhbmdlLCAnZGVsZXRlJyksCisgICAgICAgICAgICAoQW5ub3RhdGVkVGFnQ2hhbmdlLCAnZGVsZXRlJyksCisgICAgICAgICAgICAoTm9uQW5ub3RhdGVkVGFnQ2hhbmdlLCAnZGVsZXRlJyksCisgICAgICAgICAgICAoT3RoZXJSZWZlcmVuY2VDaGFuZ2UsICd1cGRhdGUnKSwKKyAgICAgICAgICAgIChPdGhlclJlZmVyZW5jZUNoYW5nZSwgJ2NyZWF0ZScpLAorICAgICAgICAgICAgKE90aGVyUmVmZXJlbmNlQ2hhbmdlLCAnZGVsZXRlJyksCisgICAgICAgICAgICBdKQorICAgICAgICApCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhbmdlcyk6CisgICAgICAgIHNlbGYuY2hhbmdlcyA9IHNvcnRlZChjaGFuZ2VzLCBrZXk9c2VsZi5fc29ydF9rZXkpCisKKyAgICAgICAgIyBUaGUgU0hBLTFzIG9mIGNvbW1pdHMgcmVmZXJyZWQgdG8gYnkgcmVmZXJlbmNlcyB1bmFmZmVjdGVkCisgICAgICAgICMgYnkgdGhpcyBwdXNoOgorICAgICAgICBvdGhlcl9yZWZfc2hhMXMgPSBzZWxmLl9jb21wdXRlX290aGVyX3JlZl9zaGExcygpCisKKyAgICAgICAgc2VsZi5fb2xkX3Jldl9leGNsdXNpb25fc3BlYyA9IHNlbGYuX2NvbXB1dGVfcmV2X2V4Y2x1c2lvbl9zcGVjKAorICAgICAgICAgICAgb3RoZXJfcmVmX3NoYTFzLnVuaW9uKAorICAgICAgICAgICAgICAgIGNoYW5nZS5vbGQuc2hhMQorICAgICAgICAgICAgICAgIGZvciBjaGFuZ2UgaW4gc2VsZi5jaGFuZ2VzCisgICAgICAgICAgICAgICAgaWYgY2hhbmdlLm9sZC50eXBlIGluIFsnY29tbWl0JywgJ3RhZyddCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBzZWxmLl9uZXdfcmV2X2V4Y2x1c2lvbl9zcGVjID0gc2VsZi5fY29tcHV0ZV9yZXZfZXhjbHVzaW9uX3NwZWMoCisgICAgICAgICAgICBvdGhlcl9yZWZfc2hhMXMudW5pb24oCisgICAgICAgICAgICAgICAgY2hhbmdlLm5ldy5zaGExCisgICAgICAgICAgICAgICAgZm9yIGNoYW5nZSBpbiBzZWxmLmNoYW5nZXMKKyAgICAgICAgICAgICAgICBpZiBjaGFuZ2UubmV3LnR5cGUgaW4gWydjb21taXQnLCAndGFnJ10KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3NvcnRfa2V5KGtsYXNzLCBjaGFuZ2UpOgorICAgICAgICByZXR1cm4gKGtsYXNzLlNPUlRfT1JERVJbY2hhbmdlLl9fY2xhc3NfXywgY2hhbmdlLmNoYW5nZV90eXBlXSwgY2hhbmdlLnJlZm5hbWUsKQorCisgICAgZGVmIF9jb21wdXRlX290aGVyX3JlZl9zaGExcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBHaXRPYmplY3RzIHJlZmVycmVkIHRvIGJ5IHJlZmVyZW5jZXMgdW5hZmZlY3RlZCBieSB0aGlzIHB1c2guIiIiCisKKyAgICAgICAgIyBUaGUgcmVmbmFtZXMgYmVpbmcgY2hhbmdlZCBieSB0aGlzIHB1c2g6CisgICAgICAgIHVwZGF0ZWRfcmVmcyA9IHNldCgKKyAgICAgICAgICAgIGNoYW5nZS5yZWZuYW1lCisgICAgICAgICAgICBmb3IgY2hhbmdlIGluIHNlbGYuY2hhbmdlcworICAgICAgICAgICAgKQorCisgICAgICAgICMgVGhlIFNIQS0xcyBvZiBjb21taXRzIHJlZmVycmVkIHRvIGJ5IGFsbCByZWZlcmVuY2VzIGluIHRoaXMKKyAgICAgICAgIyByZXBvc2l0b3J5ICpleGNlcHQqIHVwZGF0ZWRfcmVmczoKKyAgICAgICAgc2hhMXMgPSBzZXQoKQorICAgICAgICBmbXQgPSAoCisgICAgICAgICAgICAnJShvYmplY3RuYW1lKSAlKG9iamVjdHR5cGUpICUocmVmbmFtZSlcbicKKyAgICAgICAgICAgICclKCpvYmplY3RuYW1lKSAlKCpvYmplY3R0eXBlKSAlKHJlZm5hbWUpJworICAgICAgICAgICAgKQorICAgICAgICBmb3IgbGluZSBpbiByZWFkX2dpdF9saW5lcyhbJ2Zvci1lYWNoLXJlZicsICctLWZvcm1hdD0lcycgJSAoZm10LCldKToKKyAgICAgICAgICAgIChzaGExLCB0eXBlLCBuYW1lKSA9IGxpbmUuc3BsaXQoJyAnLCAyKQorICAgICAgICAgICAgaWYgc2hhMSBhbmQgdHlwZSA9PSAnY29tbWl0JyBhbmQgbmFtZSBub3QgaW4gdXBkYXRlZF9yZWZzOgorICAgICAgICAgICAgICAgIHNoYTFzLmFkZChzaGExKQorCisgICAgICAgIHJldHVybiBzaGExcworCisgICAgZGVmIF9jb21wdXRlX3Jldl9leGNsdXNpb25fc3BlYyhzZWxmLCBzaGExcyk6CisgICAgICAgICIiIlJldHVybiBhbiBleGNsdXNpb24gc3BlY2lmaWNhdGlvbiBmb3IgJ2dpdCByZXYtbGlzdCcuCisKKyAgICAgICAgZ2l0X29iamVjdHMgaXMgYW4gaXRlcmFibGUgb3ZlciBHaXRPYmplY3QgaW5zdGFuY2VzLiAgUmV0dXJuIGEKKyAgICAgICAgc3RyaW5nIHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgc3RhbmRhcmQgaW5wdXQgb2YgJ2dpdAorICAgICAgICByZXYtbGlzdCAtLXN0ZGluJyB0byBleGNsdWRlIGFsbCBvZiB0aGUgY29tbWl0cyByZWZlcnJlZCB0byBieQorICAgICAgICBnaXRfb2JqZWN0cy4iIiIKKworICAgICAgICByZXR1cm4gJycuam9pbigKKyAgICAgICAgICAgIFsnXiVzXG4nICUgKHNoYTEsKSBmb3Igc2hhMSBpbiBzb3J0ZWQoc2hhMXMpXQorICAgICAgICAgICAgKQorCisgICAgZGVmIGdldF9uZXdfY29tbWl0cyhzZWxmLCByZWZlcmVuY2VfY2hhbmdlPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGNvbW1pdHMgYWRkZWQgYnkgdGhpcyBwdXNoLgorCisgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIG9iamVjdCBuYW1lcyBvZiBjb21taXRzIHRoYXQgd2VyZSBhZGRlZAorICAgICAgICBieSB0aGUgcGFydCBvZiB0aGlzIHB1c2ggcmVwcmVzZW50ZWQgYnkgcmVmZXJlbmNlX2NoYW5nZS4gIElmCisgICAgICAgIHJlZmVyZW5jZV9jaGFuZ2UgaXMgTm9uZSwgdGhlbiByZXR1cm4gYSBsaXN0IG9mICphbGwqIGNvbW1pdHMKKyAgICAgICAgYWRkZWQgYnkgdGhpcyBwdXNoLiIiIgorCisgICAgICAgIGlmIG5vdCByZWZlcmVuY2VfY2hhbmdlOgorICAgICAgICAgICAgbmV3X3JldnMgPSBzb3J0ZWQoCisgICAgICAgICAgICAgICAgY2hhbmdlLm5ldy5zaGExCisgICAgICAgICAgICAgICAgZm9yIGNoYW5nZSBpbiBzZWxmLmNoYW5nZXMKKyAgICAgICAgICAgICAgICBpZiBjaGFuZ2UubmV3CisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbGlmIG5vdCByZWZlcmVuY2VfY2hhbmdlLm5ldy5jb21taXRfc2hhMToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV3X3JldnMgPSBbcmVmZXJlbmNlX2NoYW5nZS5uZXcuY29tbWl0X3NoYTFdCisKKyAgICAgICAgY21kID0gWydyZXYtbGlzdCcsICctLXN0ZGluJ10gKyBuZXdfcmV2cworICAgICAgICByZXR1cm4gcmVhZF9naXRfbGluZXMoY21kLCBpbnB1dD1zZWxmLl9vbGRfcmV2X2V4Y2x1c2lvbl9zcGVjKQorCisgICAgZGVmIGdldF9kaXNjYXJkZWRfY29tbWl0cyhzZWxmLCByZWZlcmVuY2VfY2hhbmdlKToKKyAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBjb21taXRzIGRpc2NhcmRlZCBieSB0aGlzIHB1c2guCisKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgb2JqZWN0IG5hbWVzIG9mIGNvbW1pdHMgdGhhdCB3ZXJlCisgICAgICAgIGVudGlyZWx5IGRpc2NhcmRlZCBmcm9tIHRoZSByZXBvc2l0b3J5IGJ5IHRoZSBwYXJ0IG9mIHRoaXMKKyAgICAgICAgcHVzaCByZXByZXNlbnRlZCBieSByZWZlcmVuY2VfY2hhbmdlLiIiIgorCisgICAgICAgIGlmIG5vdCByZWZlcmVuY2VfY2hhbmdlLm9sZC5jb21taXRfc2hhMToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb2xkX3JldnMgPSBbcmVmZXJlbmNlX2NoYW5nZS5vbGQuY29tbWl0X3NoYTFdCisKKyAgICAgICAgY21kID0gWydyZXYtbGlzdCcsICctLXN0ZGluJ10gKyBvbGRfcmV2cworICAgICAgICByZXR1cm4gcmVhZF9naXRfbGluZXMoY21kLCBpbnB1dD1zZWxmLl9uZXdfcmV2X2V4Y2x1c2lvbl9zcGVjKQorCisgICAgZGVmIHNlbmRfZW1haWxzKHNlbGYsIG1haWxlciwgYm9keV9maWx0ZXI9Tm9uZSk6CisgICAgICAgICIiIlVzZSBzZW5kIGFsbCBvZiB0aGUgbm90aWZpY2F0aW9uIGVtYWlscyBuZWVkZWQgZm9yIHRoaXMgcHVzaC4KKworICAgICAgICBVc2Ugc2VuZCBhbGwgb2YgdGhlIG5vdGlmaWNhdGlvbiBlbWFpbHMgKGluY2x1ZGluZyByZWZlcmVuY2UKKyAgICAgICAgY2hhbmdlIGVtYWlscyBhbmQgY29tbWl0IGVtYWlscykgbmVlZGVkIGZvciB0aGlzIHB1c2guICBTZW5kCisgICAgICAgIHRoZSBlbWFpbHMgdXNpbmcgbWFpbGVyLiAgSWYgYm9keV9maWx0ZXIgaXMgbm90IE5vbmUsIHRoZW4gdXNlCisgICAgICAgIGl0IHRvIGZpbHRlciB0aGUgbGluZXMgdGhhdCBhcmUgaW50ZW5kZWQgZm9yIHRoZSBlbWFpbAorICAgICAgICBib2R5LiIiIgorCisgICAgICAgICMgVGhlIHNoYTFzIG9mIGNvbW1pdHMgdGhhdCB3ZXJlIGludHJvZHVjZWQgYnkgdGhpcyBwdXNoLgorICAgICAgICAjIFRoZXkgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhpcyBzZXQgYXMgdGhleSBhcmUgcHJvY2Vzc2VkLCB0bworICAgICAgICAjIGd1YXJhbnRlZSB0aGF0IG9uZSAoYW5kIG9ubHkgb25lKSBlbWFpbCBpcyBnZW5lcmF0ZWQgZm9yCisgICAgICAgICMgZWFjaCBuZXcgY29tbWl0LgorICAgICAgICB1bmhhbmRsZWRfc2hhMXMgPSBzZXQoc2VsZi5nZXRfbmV3X2NvbW1pdHMoKSkKKyAgICAgICAgZm9yIGNoYW5nZSBpbiBzZWxmLmNoYW5nZXM6CisgICAgICAgICAgICAjIENoZWNrIGlmIHdlJ3ZlIGdvdCBhbnlvbmUgdG8gc2VuZCB0bworICAgICAgICAgICAgaWYgbm90IGNoYW5nZS5yZWNpcGllbnRzOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICcqKiogbm8gcmVjaXBpZW50cyBjb25maWd1cmVkIHNvIG5vIGVtYWlsIHdpbGwgYmUgc2VudFxuJworICAgICAgICAgICAgICAgICAgICAnKioqIGZvciAlciB1cGRhdGUgJXMtPiVzXG4nCisgICAgICAgICAgICAgICAgICAgICUgKGNoYW5nZS5yZWZuYW1lLCBjaGFuZ2Uub2xkLnNoYTEsIGNoYW5nZS5uZXcuc2hhMSwpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnU2VuZGluZyBub3RpZmljYXRpb24gZW1haWxzIHRvOiAlc1xuJyAlIChjaGFuZ2UucmVjaXBpZW50cywpKQorICAgICAgICAgICAgICAgIG1haWxlci5zZW5kKGNoYW5nZS5nZW5lcmF0ZV9lbWFpbChzZWxmLCBib2R5X2ZpbHRlciksIGNoYW5nZS5yZWNpcGllbnRzKQorCisgICAgICAgICAgICBzaGExcyA9IFtdCisgICAgICAgICAgICBmb3Igc2hhMSBpbiByZXZlcnNlZChsaXN0KHNlbGYuZ2V0X25ld19jb21taXRzKGNoYW5nZSkpKToKKyAgICAgICAgICAgICAgICBpZiBzaGExIGluIHVuaGFuZGxlZF9zaGExczoKKyAgICAgICAgICAgICAgICAgICAgc2hhMXMuYXBwZW5kKHNoYTEpCisgICAgICAgICAgICAgICAgICAgIHVuaGFuZGxlZF9zaGExcy5yZW1vdmUoc2hhMSkKKworICAgICAgICAgICAgbWF4X2VtYWlscyA9IGNoYW5nZS5lbnZpcm9ubWVudC5tYXhjb21taXRlbWFpbHMKKyAgICAgICAgICAgIGlmIG1heF9lbWFpbHMgYW5kIGxlbihzaGExcykgPiBtYXhfZW1haWxzOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgICAgICcqKiogVG9vIG1hbnkgbmV3IGNvbW1pdHMgKCVkKSwgbm90IHNlbmRpbmcgY29tbWl0IGVtYWlscy5cbicgJSBsZW4oc2hhMXMpCisgICAgICAgICAgICAgICAgICAgICsgJyoqKiBUcnkgc2V0dGluZyBtdWx0aW1haWxob29rLm1heENvbW1pdEVtYWlscyB0byBhIGdyZWF0ZXIgdmFsdWVcbicKKyAgICAgICAgICAgICAgICAgICAgKyAnKioqIEN1cnJlbnRseSwgbXVsdGltYWlsaG9vay5tYXhDb21taXRFbWFpbHM9JWRcbicgJSBtYXhfZW1haWxzCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAgICAgZm9yIChudW0sIHNoYTEpIGluIGVudW1lcmF0ZShzaGExcyk6CisgICAgICAgICAgICAgICAgcmV2ID0gUmV2aXNpb24oY2hhbmdlLCBHaXRPYmplY3Qoc2hhMSksIG51bT1udW0rMSwgdG90PWxlbihzaGExcykpCisgICAgICAgICAgICAgICAgaWYgcmV2LnJlY2lwaWVudHM6CisgICAgICAgICAgICAgICAgICAgIG1haWxlci5zZW5kKHJldi5nZW5lcmF0ZV9lbWFpbChzZWxmLCBib2R5X2ZpbHRlciksIHJldi5yZWNpcGllbnRzKQorCisgICAgICAgICMgQ29uc2lzdGVuY3kgY2hlY2s6CisgICAgICAgIGlmIHVuaGFuZGxlZF9zaGExczoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAgICAgJ0VSUk9SOiBObyBlbWFpbHMgd2VyZSBzZW50IGZvciB0aGUgZm9sbG93aW5nIG5ldyBjb21taXRzOlxuJworICAgICAgICAgICAgICAgICcgICAgJXNcbicKKyAgICAgICAgICAgICAgICAlICgnXG4gICAgJy5qb2luKHNvcnRlZCh1bmhhbmRsZWRfc2hhMXMpKSwpCisgICAgICAgICAgICAgICAgKQorCisKK2RlZiBydW5fYXNfcG9zdF9yZWNlaXZlX2hvb2soZW52aXJvbm1lbnQsIG1haWxlcik6CisgICAgY2hhbmdlcyA9IFtdCisgICAgZm9yIGxpbmUgaW4gc3lzLnN0ZGluOgorICAgICAgICAob2xkcmV2LCBuZXdyZXYsIHJlZm5hbWUpID0gbGluZS5zdHJpcCgpLnNwbGl0KCcgJywgMikKKyAgICAgICAgY2hhbmdlcy5hcHBlbmQoCisgICAgICAgICAgICBSZWZlcmVuY2VDaGFuZ2UuY3JlYXRlKGVudmlyb25tZW50LCBvbGRyZXYsIG5ld3JldiwgcmVmbmFtZSkKKyAgICAgICAgICAgICkKKyAgICBwdXNoID0gUHVzaChjaGFuZ2VzKQorICAgIHB1c2guc2VuZF9lbWFpbHMobWFpbGVyLCBib2R5X2ZpbHRlcj1lbnZpcm9ubWVudC5maWx0ZXJfYm9keSkKKworCitkZWYgcnVuX2FzX3VwZGF0ZV9ob29rKGVudmlyb25tZW50LCBtYWlsZXIsIHJlZm5hbWUsIG9sZHJldiwgbmV3cmV2KToKKyAgICBjaGFuZ2VzID0gWworICAgICAgICBSZWZlcmVuY2VDaGFuZ2UuY3JlYXRlKAorICAgICAgICAgICAgZW52aXJvbm1lbnQsCisgICAgICAgICAgICByZWFkX2dpdF9vdXRwdXQoWydyZXYtcGFyc2UnLCAnLS12ZXJpZnknLCBvbGRyZXZdKSwKKyAgICAgICAgICAgIHJlYWRfZ2l0X291dHB1dChbJ3Jldi1wYXJzZScsICctLXZlcmlmeScsIG5ld3Jldl0pLAorICAgICAgICAgICAgcmVmbmFtZSwKKyAgICAgICAgICAgICksCisgICAgICAgIF0KKyAgICBwdXNoID0gUHVzaChjaGFuZ2VzKQorICAgIHB1c2guc2VuZF9lbWFpbHMobWFpbGVyLCBib2R5X2ZpbHRlcj1lbnZpcm9ubWVudC5maWx0ZXJfYm9keSkKKworCitkZWYgY2hvb3NlX21haWxlcihjb25maWcsIGVudmlyb25tZW50KToKKyAgICBtYWlsZXIgPSBjb25maWcuZ2V0KCdtYWlsZXInLCBkZWZhdWx0PSdzZW5kbWFpbCcpCisKKyAgICBpZiBtYWlsZXIgPT0gJ3NtdHAnOgorICAgICAgICBzbXRwc2VydmVyID0gY29uZmlnLmdldCgnc210cHNlcnZlcicsIGRlZmF1bHQ9J2xvY2FsaG9zdCcpCisgICAgICAgIG1haWxlciA9IFNNVFBNYWlsZXIoCisgICAgICAgICAgICBlbnZlbG9wZXNlbmRlcj0oZW52aXJvbm1lbnQuZ2V0X3NlbmRlcigpIG9yIGVudmlyb25tZW50LmdldF9mcm9tYWRkcigpKSwKKyAgICAgICAgICAgIHNtdHBzZXJ2ZXI9c210cHNlcnZlciwKKyAgICAgICAgICAgICkKKyAgICBlbGlmIG1haWxlciA9PSAnc2VuZG1haWwnOgorICAgICAgICBjb21tYW5kID0gY29uZmlnLmdldCgnc2VuZG1haWxjb21tYW5kJykKKyAgICAgICAgaWYgY29tbWFuZDoKKyAgICAgICAgICAgIGNvbW1hbmQgPSBzaGxleC5zcGxpdChjb21tYW5kKQorICAgICAgICBtYWlsZXIgPSBTZW5kTWFpbGVyKGNvbW1hbmQ9Y29tbWFuZCwgZW52ZWxvcGVzZW5kZXI9ZW52aXJvbm1lbnQuZ2V0X3NlbmRlcigpKQorICAgIGVsc2U6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAnZmF0YWw6IG11bHRpbWFpbGhvb2subWFpbGVyIGlzIHNldCB0byBhbiBpbmNvcnJlY3QgdmFsdWU6ICIlcyJcbicgJSBtYWlsZXIKKyAgICAgICAgICAgICsgJ3BsZWFzZSB1c2Ugb25lIG9mICJzbXRwIiBvciAic2VuZG1haWwiLlxuJworICAgICAgICAgICAgKQorICAgICAgICBzeXMuZXhpdCgxKQorICAgIHJldHVybiBtYWlsZXIKKworCitLTk9XTl9FTlZJUk9OTUVOVFMgPSB7CisgICAgJ2dlbmVyaWMnIDogR2VuZXJpY0Vudmlyb25tZW50TWl4aW4sCisgICAgJ2dpdG9saXRlJyA6IEdpdG9saXRlRW52aXJvbm1lbnRNaXhpbiwKKyAgICB9CisKKworZGVmIGNob29zZV9lbnZpcm9ubWVudChjb25maWcsIG9zZW52PU5vbmUsIGVudj1Ob25lLCByZWNpcGllbnRzPU5vbmUpOgorICAgIGlmIG5vdCBvc2VudjoKKyAgICAgICAgb3NlbnYgPSBvcy5lbnZpcm9uCisKKyAgICBlbnZpcm9ubWVudF9taXhpbnMgPSBbCisgICAgICAgIFByb2plY3RkZXNjRW52aXJvbm1lbnRNaXhpbiwKKyAgICAgICAgQ29uZmlnTWF4bGluZXNFbnZpcm9ubWVudE1peGluLAorICAgICAgICBDb25maWdGaWx0ZXJMaW5lc0Vudmlyb25tZW50TWl4aW4sCisgICAgICAgIFB1c2hlckRvbWFpbkVudmlyb25tZW50TWl4aW4sCisgICAgICAgIENvbmZpZ09wdGlvbnNFbnZpcm9ubWVudE1peGluLAorICAgICAgICBdCisgICAgZW52aXJvbm1lbnRfa3cgPSB7CisgICAgICAgICdvc2VudicgOiBvc2VudiwKKyAgICAgICAgJ2NvbmZpZycgOiBjb25maWcsCisgICAgICAgIH0KKworICAgIGlmIG5vdCBlbnY6CisgICAgICAgIGVudiA9IGNvbmZpZy5nZXQoJ2Vudmlyb25tZW50JykKKworICAgIGlmIG5vdCBlbnY6CisgICAgICAgIGlmICdHTF9VU0VSJyBpbiBvc2VudiBhbmQgJ0dMX1JFUE8nIGluIG9zZW52OgorICAgICAgICAgICAgZW52ID0gJ2dpdG9saXRlJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52ID0gJ2dlbmVyaWMnCisKKyAgICBlbnZpcm9ubWVudF9taXhpbnMuYXBwZW5kKEtOT1dOX0VOVklST05NRU5UU1tlbnZdKQorCisgICAgaWYgcmVjaXBpZW50czoKKyAgICAgICAgZW52aXJvbm1lbnRfbWl4aW5zLmluc2VydCgwLCBTdGF0aWNSZWNpcGllbnRzRW52aXJvbm1lbnRNaXhpbikKKyAgICAgICAgZW52aXJvbm1lbnRfa3dbJ3JlZmNoYW5nZV9yZWNpcGllbnRzJ10gPSByZWNpcGllbnRzCisgICAgICAgIGVudmlyb25tZW50X2t3Wydhbm5vdW5jZV9yZWNpcGllbnRzJ10gPSByZWNpcGllbnRzCisgICAgICAgIGVudmlyb25tZW50X2t3WydyZXZpc2lvbl9yZWNpcGllbnRzJ10gPSByZWNpcGllbnRzCisgICAgZWxzZToKKyAgICAgICAgZW52aXJvbm1lbnRfbWl4aW5zLmluc2VydCgwLCBDb25maWdSZWNpcGllbnRzRW52aXJvbm1lbnRNaXhpbikKKworICAgIGVudmlyb25tZW50X2tsYXNzID0gdHlwZSgKKyAgICAgICAgJ0VmZmVjdGl2ZUVudmlyb25tZW50JywKKyAgICAgICAgdHVwbGUoZW52aXJvbm1lbnRfbWl4aW5zKSArIChFbnZpcm9ubWVudCwpLAorICAgICAgICB7fSwKKyAgICAgICAgKQorICAgIHJldHVybiBlbnZpcm9ubWVudF9rbGFzcygqKmVudmlyb25tZW50X2t3KQorCisKK2RlZiBtYWluKGFyZ3MpOgorICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigKKyAgICAgICAgZGVzY3JpcHRpb249X19kb2NfXywKKyAgICAgICAgdXNhZ2U9JyVwcm9nIFtPUFRJT05TXVxuICAgb3I6ICVwcm9nIFtPUFRJT05TXSBSRUZOQU1FIE9MRFJFViBORVdSRVYnLAorICAgICAgICApCisKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tZW52aXJvbm1lbnQnLCAnLS1lbnYnLCBhY3Rpb249J3N0b3JlJywgdHlwZT0nY2hvaWNlJywKKyAgICAgICAgY2hvaWNlcz1bJ2dlbmVyaWMnLCAnZ2l0b2xpdGUnXSwgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSgKKyAgICAgICAgICAgICdDaG9vc2UgdHlwZSBvZiBlbnZpcm9ubWVudCBpcyBpbiB1c2UuICBEZWZhdWx0IGlzIHRha2VuIGZyb20gJworICAgICAgICAgICAgJ211bHRpbWFpbGhvb2suZW52aXJvbm1lbnQgaWYgc2V0OyBvdGhlcndpc2UgImdlbmVyaWMiLicKKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tc3Rkb3V0JywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0nT3V0cHV0IGVtYWlscyB0byBzdGRvdXQgcmF0aGVyIHRoYW4gc2VuZGluZyB0aGVtLicsCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tcmVjaXBpZW50cycsIGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PU5vbmUsCisgICAgICAgIGhlbHA9J1NldCBsaXN0IG9mIGVtYWlsIHJlY2lwaWVudHMgZm9yIGFsbCB0eXBlcyBvZiBlbWFpbHMuJywKKyAgICAgICAgKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgICAgICAnLS1zaG93LWVudicsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgIGhlbHA9KAorICAgICAgICAgICAgJ1dyaXRlIHRvIHN0ZGVyciB0aGUgdmFsdWVzIGRldGVybWluZWQgZm9yIHRoZSBlbnZpcm9ubWVudCAnCisgICAgICAgICAgICAnKGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMpLicKKyAgICAgICAgICAgICksCisgICAgICAgICkKKworICAgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3MpCisKKyAgICBjb25maWcgPSBDb25maWcoJ211bHRpbWFpbGhvb2snKQorCisgICAgdHJ5OgorICAgICAgICBlbnZpcm9ubWVudCA9IGNob29zZV9lbnZpcm9ubWVudCgKKyAgICAgICAgICAgIGNvbmZpZywgb3NlbnY9b3MuZW52aXJvbiwKKyAgICAgICAgICAgIGVudj1vcHRpb25zLmVudmlyb25tZW50LAorICAgICAgICAgICAgcmVjaXBpZW50cz1vcHRpb25zLnJlY2lwaWVudHMsCisgICAgICAgICAgICApCisKKyAgICAgICAgaWYgb3B0aW9ucy5zaG93X2VudjoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ0Vudmlyb25tZW50IHZhbHVlczpcbicpCisgICAgICAgICAgICBmb3IgKGssdikgaW4gc29ydGVkKGVudmlyb25tZW50LmdldF92YWx1ZXMoKS5pdGVtcygpKToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcgICAgJXMgOiAlclxuJyAlIChrLHYpKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnXG4nKQorCisgICAgICAgIGlmIG9wdGlvbnMuc3Rkb3V0OgorICAgICAgICAgICAgbWFpbGVyID0gT3V0cHV0TWFpbGVyKHN5cy5zdGRvdXQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYWlsZXIgPSBjaG9vc2VfbWFpbGVyKGNvbmZpZywgZW52aXJvbm1lbnQpCisKKyAgICAgICAgIyBEdWFsIG1vZGU6IGlmIGFyZ3VtZW50cyB3ZXJlIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLCBydW4KKyAgICAgICAgIyBsaWtlIGFuIHVwZGF0ZSBob29rOyBvdGhlcndpc2UsIHJ1biBhcyBhIHBvc3QtcmVjZWl2ZSBob29rLgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgaWYgbGVuKGFyZ3MpICE9IDM6CisgICAgICAgICAgICAgICAgcGFyc2VyLmVycm9yKCdOZWVkIHplcm8gb3IgdGhyZWUgbm9uLW9wdGlvbiBhcmd1bWVudHMnKQorICAgICAgICAgICAgKHJlZm5hbWUsIG9sZHJldiwgbmV3cmV2KSA9IGFyZ3MKKyAgICAgICAgICAgIHJ1bl9hc191cGRhdGVfaG9vayhlbnZpcm9ubWVudCwgbWFpbGVyLCByZWZuYW1lLCBvbGRyZXYsIG5ld3JldikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ1bl9hc19wb3N0X3JlY2VpdmVfaG9vayhlbnZpcm9ubWVudCwgbWFpbGVyKQorICAgIGV4Y2VwdCBDb25maWd1cmF0aW9uRXhjZXB0aW9uLCBlOgorICAgICAgICBzeXMuZXhpdChzdHIoZSkpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKHN5cy5hcmd2WzE6XSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL21pZ3JhdGUtbWFpbGhvb2stY29uZmlnIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvbWlncmF0ZS1tYWlsaG9vay1jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDRlZWFhYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL21pZ3JhdGUtbWFpbGhvb2stY29uZmlnCkBAIC0wLDAgKzEsMjY5IEBACisjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMgorCisiIiJNaWdyYXRlIGEgcG9zdC1yZWNlaXZlLWVtYWlsIGNvbmZpZ3VyYXRpb24gdG8gYmUgdXNhYmxlIHdpdGggZ2l0X211bHRpbWFpbC5weS4KKworU2VlIFJFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCisiIiIKKworaW1wb3J0IHN5cworaW1wb3J0IG9wdHBhcnNlCisKK2Zyb20gZ2l0X211bHRpbWFpbCBpbXBvcnQgQ29tbWFuZEVycm9yCitmcm9tIGdpdF9tdWx0aW1haWwgaW1wb3J0IENvbmZpZworZnJvbSBnaXRfbXVsdGltYWlsIGltcG9ydCByZWFkX291dHB1dAorCisKK09MRF9OQU1FUyA9IFsKKyAgICAnbWFpbGluZ2xpc3QnLAorICAgICdhbm5vdW5jZWxpc3QnLAorICAgICdlbnZlbG9wZXNlbmRlcicsCisgICAgJ2VtYWlscHJlZml4JywKKyAgICAnc2hvd3JldicsCisgICAgJ2VtYWlsbWF4bGluZXMnLAorICAgICdkaWZmb3B0cycsCisgICAgXQorCitORVdfTkFNRVMgPSBbCisgICAgJ2Vudmlyb25tZW50JywKKyAgICAncmVwb25hbWUnLAorICAgICdtYWlsaW5nbGlzdCcsCisgICAgJ3JlZmNoYW5nZWxpc3QnLAorICAgICdjb21taXRsaXN0JywKKyAgICAnYW5ub3VuY2VsaXN0JywKKyAgICAnYW5ub3VuY2VzaG9ydGxvZycsCisgICAgJ2VudmVsb3Blc2VuZGVyJywKKyAgICAnYWRtaW5pc3RyYXRvcicsCisgICAgJ2VtYWlscHJlZml4JywKKyAgICAnZW1haWxtYXhsaW5lcycsCisgICAgJ2RpZmZvcHRzJywKKyAgICAnZW1haWxkb21haW4nLAorICAgIF0KKworCitJTkZPID0gIiIiXAorCitTVUNDRVNTIQorCitZb3VyIHBvc3QtcmVjZWl2ZS1lbWFpbCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGNvbnZlcnRlZCB0bworZ2l0LW11bHRpbWFpbCBmb3JtYXQuICBQbGVhc2Ugc2VlIFJFQURNRSBhbmQKK1JFQURNRS5taWdyYXRlLWZyb20tcG9zdC1yZWNlaXZlLWVtYWlsIHRvIGxlYXJuIGFib3V0IG90aGVyCitnaXQtbXVsdGltYWlsIGNvbmZpZ3VyYXRpb24gcG9zc2liaWxpdGllcy4KKworRm9yIGV4YW1wbGUsIGdpdC1tdWx0aW1haWwgaGFzIHRoZSBmb2xsb3dpbmcgbmV3IG9wdGlvbnMgd2l0aCBubworZXF1aXZhbGVudCBpbiBwb3N0LXJlY2VpdmUtZW1haWwuICBZb3UgbWlnaHQgd2FudCB0byByZWFkIGFib3V0IHRoZW0KK3RvIHNlZSBpZiB0aGV5IHdvdWxkIGJlIHVzZWZ1bCBpbiB5b3VyIHNpdHVhdGlvbjoKKworIiIiCisKKworZGVmIF9jaGVja19vbGRfY29uZmlnX2V4aXN0cyhvbGQpOgorICAgICIiIkNoZWNrIHRoYXQgYXQgbGVhc3Qgb25lIG9sZCBjb25maWd1cmF0aW9uIHZhbHVlIGlzIHNldC4iIiIKKworICAgIGZvciBuYW1lIGluIE9MRF9OQU1FUzoKKyAgICAgICAgaWYgb2xkLmhhc19rZXkobmFtZSk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIF9jaGVja19uZXdfY29uZmlnX2NsZWFyKG5ldyk6CisgICAgIiIiQ2hlY2sgdGhhdCBub25lIG9mIHRoZSBuZXcgY29uZmlndXJhdGlvbiBuYW1lcyBhcmUgc2V0LiIiIgorCisgICAgcmV0dmFsID0gVHJ1ZQorICAgIGZvciBuYW1lIGluIE5FV19OQU1FUzoKKyAgICAgICAgaWYgbmV3Lmhhc19rZXkobmFtZSk6CisgICAgICAgICAgICBpZiByZXR2YWw6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnSU5GTzogVGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHZhbHVlcyBhbHJlYWR5IGV4aXN0OlxuXG4nKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnICAgICIlcy4lcyJcbicgJSAobmV3LnNlY3Rpb24sIG5hbWUpKQorICAgICAgICAgICAgcmV0dmFsID0gRmFsc2UKKworICAgIHJldHVybiByZXR2YWwKKworCitkZWYgZXJhc2VfdmFsdWVzKGNvbmZpZywgbmFtZXMpOgorICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICBpZiBjb25maWcuaGFzX2tleShuYW1lKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcuLi51bnNldHRpbmcgIiVzLiVzIlxuJyAlIChjb25maWcuc2VjdGlvbiwgbmFtZSkpCisgICAgICAgICAgICAgICAgY29uZmlnLnVuc2V0X2FsbChuYW1lKQorICAgICAgICAgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICAgICAnXG5XQVJOSU5HOiBjb3VsZCBub3QgdW5zZXQgIiVzLiVzIi4gICcKKyAgICAgICAgICAgICAgICAgICAgJ1BlcmhhcHMgaXQgaXMgbm90IHNldCBhdCB0aGUgLS1sb2NhbCBsZXZlbD9cblxuJworICAgICAgICAgICAgICAgICAgICAlIChjb25maWcuc2VjdGlvbiwgbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgKQorCisKK2RlZiBpc19zZWN0aW9uX2VtcHR5KHNlY3Rpb24sIGxvY2FsKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZmYgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHNlY3Rpb24gaXMgZW1wdHkuCisKKyAgICBJZmYgbG9jYWwgaXMgVHJ1ZSwgdXNlIHRoZSAtLWxvY2FsIG9wdGlvbiB3aGVuIGludm9raW5nICdnaXQKKyAgICBjb25maWcnLiIiIgorCisgICAgaWYgbG9jYWw6CisgICAgICAgIGxvY2FsX29wdGlvbiA9IFsnLS1sb2NhbCddCisgICAgZWxzZToKKyAgICAgICAgbG9jYWxfb3B0aW9uID0gW10KKworICAgIHRyeToKKyAgICAgICAgcmVhZF9vdXRwdXQoCisgICAgICAgICAgICBbJ2dpdCcsICdjb25maWcnXQorICAgICAgICAgICAgKyBsb2NhbF9vcHRpb24KKyAgICAgICAgICAgICsgWyctLWdldC1yZWdleHAnLCAnXiVzXC4nICUgKHNlY3Rpb24sKV0KKyAgICAgICAgICAgICkKKyAgICBleGNlcHQgQ29tbWFuZEVycm9yLCBlOgorICAgICAgICBpZiBlLnJldGNvZGUgPT0gMToKKyAgICAgICAgICAgICMgVGhpcyBtZWFucyB0aGF0IG5vIHNldHRpbmdzIHdlcmUgZm91bmQuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYgcmVtb3ZlX3NlY3Rpb25faWZfZW1wdHkoc2VjdGlvbik6CisgICAgIiIiSWYgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHNlY3Rpb24gaXMgZW1wdHksIGRlbGV0ZSBpdC4iIiIKKworICAgIHRyeToKKyAgICAgICAgZW1wdHkgPSBpc19zZWN0aW9uX2VtcHR5KHNlY3Rpb24sIGxvY2FsPVRydWUpCisgICAgZXhjZXB0IENvbW1hbmRFcnJvcjoKKyAgICAgICAgIyBPbGRlciB2ZXJzaW9ucyBvZiBnaXQgZG8gbm90IHN1cHBvcnQgdGhlIC0tbG9jYWwgb3B0aW9uLCBzbworICAgICAgICAjIGlmIHRoZSBmaXJzdCBhdHRlbXB0IGZhaWxzLCB0cnkgd2l0aG91dCAtLWxvY2FsLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBlbXB0eSA9IGlzX3NlY3Rpb25fZW1wdHkoc2VjdGlvbiwgbG9jYWw9RmFsc2UpCisgICAgICAgIGV4Y2VwdCBDb21tYW5kRXJyb3I6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICdcbklORk86IElmIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiAiJXMuKiIgaXMgZW1wdHksIHlvdSBtaWdodCB3YW50ICcKKyAgICAgICAgICAgICAgICAndG8gZGVsZXRlIGl0LlxuXG4nCisgICAgICAgICAgICAgICAgJSAoc2VjdGlvbiwpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICBpZiBlbXB0eToKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnLi4ucmVtb3Zpbmcgc2VjdGlvbiAiJXMuKiJcbicgJSAoc2VjdGlvbiwpKQorICAgICAgICByZWFkX291dHB1dChbJ2dpdCcsICdjb25maWcnLCAnLS1yZW1vdmUtc2VjdGlvbicsIHNlY3Rpb25dKQorICAgIGVsc2U6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAnXG5JTkZPOiBDb25maWd1cmF0aW9uIHNlY3Rpb24gIiVzLioiIHN0aWxsIGhhcyBjb250ZW50cy4gICcKKyAgICAgICAgICAgICdJdCB3aWxsIG5vdCBiZSBkZWxldGVkLlxuXG4nCisgICAgICAgICAgICAlIChzZWN0aW9uLCkKKyAgICAgICAgICAgICkKKworCitkZWYgbWlncmF0ZV9jb25maWcoc3RyaWN0PUZhbHNlLCByZXRhaW49RmFsc2UsIG92ZXJ3cml0ZT1GYWxzZSk6CisgICAgb2xkID0gQ29uZmlnKCdob29rcycpCisgICAgbmV3ID0gQ29uZmlnKCdtdWx0aW1haWxob29rJykKKyAgICBpZiBub3QgX2NoZWNrX29sZF9jb25maWdfZXhpc3RzKG9sZCk6CisgICAgICAgIHN5cy5leGl0KAorICAgICAgICAgICAgJ1lvdXIgcmVwb3NpdG9yeSBoYXMgbm8gcG9zdC1yZWNlaXZlLWVtYWlsIGNvbmZpZ3VyYXRpb24uICAnCisgICAgICAgICAgICAnTm90aGluZyB0byBkby4nCisgICAgICAgICAgICApCisgICAgaWYgbm90IF9jaGVja19uZXdfY29uZmlnX2NsZWFyKG5ldyk6CisgICAgICAgIGlmIG92ZXJ3cml0ZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuV0FSTklORzogRXJhc2luZyB0aGUgYWJvdmUgdmFsdWVzLi4uXG5cbicpCisgICAgICAgICAgICBlcmFzZV92YWx1ZXMobmV3LCBORVdfTkFNRVMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzeXMuZXhpdCgKKyAgICAgICAgICAgICAgICAnXG5FUlJPUjogUmVmdXNpbmcgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIHZhbHVlcy4gIFVzZSB0aGUgLS1vdmVyd3JpdGVcbicKKyAgICAgICAgICAgICAgICAnb3B0aW9uIHRvIGNvbnRpbnVlIGFueXdheS4nCisgICAgICAgICAgICAgICAgKQorCisgICAgbmFtZSA9ICdzaG93cmV2JworICAgIGlmIG9sZC5oYXNfa2V5KG5hbWUpOgorICAgICAgICBtc2cgPSAnZ2l0LW11bHRpbWFpbCBkb2VzIG5vdCBzdXBwb3J0ICIlcy4lcyInICUgKG9sZC5zZWN0aW9uLCBuYW1lLCkKKyAgICAgICAgaWYgc3RyaWN0OgorICAgICAgICAgICAgc3lzLmV4aXQoCisgICAgICAgICAgICAgICAgJ0VSUk9SOiAlcy5cbicKKyAgICAgICAgICAgICAgICAnUGxlYXNlIHVuc2V0IHRoYXQgdmFsdWUgdGhlbiB0cnkgYWdhaW4sIG9yIHJ1biB3aXRob3V0IC0tc3RyaWN0LicKKyAgICAgICAgICAgICAgICAlIChtc2csKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuV0FSTklORzogJXMgKGlnbm9yaW5nKS5cblxuJyAlIChtc2csKSkKKworICAgIGZvciBuYW1lIGluIFsnbWFpbGluZ2xpc3QnLCAnYW5ub3VuY2VsaXN0J106CisgICAgICAgIGlmIG9sZC5oYXNfa2V5KG5hbWUpOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICAgICAnLi4uY29weWluZyAiJXMuJXMiIHRvICIlcy4lcyJcbicgJSAob2xkLnNlY3Rpb24sIG5hbWUsIG5ldy5zZWN0aW9uLCBuYW1lKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIG5ldy5zZXRfcmVjaXBpZW50cyhuYW1lLCBvbGQuZ2V0X3JlY2lwaWVudHMobmFtZSkpCisKKyAgICBpZiBzdHJpY3Q6CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoCisgICAgICAgICAgICAnLi4uc2V0dGluZyAiJXMuY29tbWl0bGlzdCIgdG8gdGhlIGVtcHR5IHN0cmluZ1xuJyAlIChuZXcuc2VjdGlvbiwpCisgICAgICAgICAgICApCisgICAgICAgIG5ldy5zZXRfcmVjaXBpZW50cygnY29tbWl0bGlzdCcsICcnKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgJy4uLnNldHRpbmcgIiVzLmFubm91bmNlc2hvcnRsb2ciIHRvICJ0cnVlIlxuJyAlIChuZXcuc2VjdGlvbiwpCisgICAgICAgICAgICApCisgICAgICAgIG5ldy5zZXQoJ2Fubm91bmNlc2hvcnRsb2cnLCAndHJ1ZScpCisKKyAgICBmb3IgbmFtZSBpbiBbJ2VudmVsb3Blc2VuZGVyJywgJ2VtYWlsbWF4bGluZXMnLCAnZGlmZm9wdHMnXToKKyAgICAgICAgaWYgb2xkLmhhc19rZXkobmFtZSk6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKAorICAgICAgICAgICAgICAgICcuLi5jb3B5aW5nICIlcy4lcyIgdG8gIiVzLiVzIlxuJyAlIChvbGQuc2VjdGlvbiwgbmFtZSwgbmV3LnNlY3Rpb24sIG5hbWUpCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgbmV3LnNldChuYW1lLCBvbGQuZ2V0KG5hbWUpKQorCisgICAgbmFtZSA9ICdlbWFpbHByZWZpeCcKKyAgICBpZiBvbGQuaGFzX2tleShuYW1lKToKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICcuLi5jb3B5aW5nICIlcy4lcyIgdG8gIiVzLiVzIlxuJyAlIChvbGQuc2VjdGlvbiwgbmFtZSwgbmV3LnNlY3Rpb24sIG5hbWUpCisgICAgICAgICAgICApCisgICAgICAgIG5ldy5zZXQobmFtZSwgb2xkLmdldChuYW1lKSkKKyAgICBlbGlmIHN0cmljdDoKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgKKyAgICAgICAgICAgICcuLi5zZXR0aW5nICIlcy4lcyIgdG8gIltTQ01dIiB0byBwcmVzZXJ2ZSBvbGQgc3ViamVjdCBsaW5lc1xuJworICAgICAgICAgICAgJSAobmV3LnNlY3Rpb24sIG5hbWUpCisgICAgICAgICAgICApCisgICAgICAgIG5ldy5zZXQobmFtZSwgJ1tTQ01dJykKKworICAgIGlmIG5vdCByZXRhaW46CisgICAgICAgIGVyYXNlX3ZhbHVlcyhvbGQsIE9MRF9OQU1FUykKKyAgICAgICAgcmVtb3ZlX3NlY3Rpb25faWZfZW1wdHkob2xkLnNlY3Rpb24pCisKKyAgICBzeXMuc3RkZXJyLndyaXRlKElORk8pCisgICAgZm9yIG5hbWUgaW4gTkVXX05BTUVTOgorICAgICAgICBpZiBuYW1lIG5vdCBpbiBPTERfTkFNRVM6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCcgICAgIiVzLiVzIlxuJyAlIChuZXcuc2VjdGlvbiwgbmFtZSwpKQorICAgIHN5cy5zdGRlcnIud3JpdGUoJ1xuJykKKworCitkZWYgbWFpbihhcmdzKToKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoCisgICAgICAgIGRlc2NyaXB0aW9uPV9fZG9jX18sCisgICAgICAgIHVzYWdlPSclcHJvZyBbT1BUSU9OU10nLAorICAgICAgICApCisKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tc3RyaWN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0oCisgICAgICAgICAgICAnU2xhdmlzaGx5IGNvbmZpZ3VyZSBnaXQtbXVsdGltYWlsIGFzIGNsb3NlbHkgYXMgcG9zc2libGUgdG8gJworICAgICAgICAgICAgJ3RoZSBwb3N0LXJlY2VpdmUtZW1haWwgY29uZmlndXJhdGlvbi4gIERlZmF1bHQgaXMgdG8gdHVybiAnCisgICAgICAgICAgICAnb24gc29tZSBuZXcgZmVhdHVyZXMgdGhhdCBoYXZlIG5vIGVxdWl2YWxlbnQgaW4gcG9zdC1yZWNlaXZlLWVtYWlsLicKKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tcmV0YWluJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0oCisgICAgICAgICAgICAnUmV0YWluIHRoZSBwb3N0LXJlY2VpdmUtZW1haWwgY29uZmlndXJhdGlvbiB2YWx1ZXMuICAnCisgICAgICAgICAgICAnRGVmYXVsdCBpcyB0byBkZWxldGUgdGhlbSBhZnRlciB0aGUgbmV3IHZhbHVlcyBhcmUgc2V0LicKKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICAgICAgJy0tb3ZlcndyaXRlJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0oCisgICAgICAgICAgICAnT3ZlcndyaXRlIGFueSBleGlzdGluZyBnaXQtbXVsdGltYWlsIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuICAnCisgICAgICAgICAgICAnRGVmYXVsdCBpcyB0byBhYm9ydCBpZiBzdWNoIHNldHRpbmdzIGFscmVhZHkgZXhpc3QuJworICAgICAgICAgICAgKSwKKyAgICAgICAgKQorCisgICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncykKKworICAgIGlmIGFyZ3M6CisgICAgICAgIHBhcnNlci5lcnJvcignVW5leHBlY3RlZCBhcmd1bWVudHM6ICVzJyAlICgnICcuam9pbihhcmdzKSwpKQorCisgICAgbWlncmF0ZV9jb25maWcoc3RyaWN0PW9wdGlvbnMuc3RyaWN0LCByZXRhaW49b3B0aW9ucy5yZXRhaW4sIG92ZXJ3cml0ZT1vcHRpb25zLm92ZXJ3cml0ZSkKKworCittYWluKHN5cy5hcmd2WzE6XSkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL3Bvc3QtcmVjZWl2ZSBiL2NvbnRyaWIvaG9va3MvbXVsdGltYWlsL3Bvc3QtcmVjZWl2ZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45M2ViYjQzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9ob29rcy9tdWx0aW1haWwvcG9zdC1yZWNlaXZlCkBAIC0wLDAgKzEsOTAgQEAKKyMhIC91c3IvYmluL2VudiBweXRob24yCisKKyIiIkV4YW1wbGUgcG9zdC1yZWNlaXZlIGhvb2sgYmFzZWQgb24gZ2l0LW11bHRpbWFpbC4KKworVGhpcyBzY3JpcHQgaXMgYSBzaW1wbGUgZXhhbXBsZSBvZiBhIHBvc3QtcmVjZWl2ZSBob29rIGltcGxlbWVudGVkCit1c2luZyBnaXRfbXVsdGltYWlsLnB5IGFzIGEgUHl0aG9uIG1vZHVsZS4gIEl0IGlzIGludGVuZGVkIHRvIGJlCitjdXN0b21pemVkIGJlZm9yZSB1c2U7IHNlZSB0aGUgY29tbWVudHMgaW4gdGhlIHNjcmlwdCB0byBoZWxwIHlvdSBnZXQKK3N0YXJ0ZWQuCisKK0l0IGlzIHBvc3NpYmxlIHRvIHVzZSBnaXRfbXVsdGltYWlsLnB5IGl0c2VsZiBhcyBhIHBvc3QtcmVjZWl2ZSBvcgordXBkYXRlIGhvb2ssIGNvbmZpZ3VyZWQgdmlhIGdpdCBjb25maWcgc2V0dGluZ3MgYW5kL29yIGNvbW1hbmQtbGluZQorcGFyYW1ldGVycy4gIEJ1dCBmb3IgbW9yZSBmbGV4aWJpbGl0eSwgaXQgY2FuIGFsc28gYmUgaW1wb3J0ZWQgYXMgYQorUHl0aG9uIG1vZHVsZSBieSBhIGN1c3RvbSBwb3N0LXJlY2VpdmUgc2NyaXB0IGFzIGRvbmUgaGVyZS4gIFRoZQorbGF0dGVyIGhhcyB0aGUgZm9sbG93aW5nIGFkdmFudGFnZXM6CisKKyogVGhlIHRvb2wncyBiZWhhdmlvciBjYW4gYmUgY3VzdG9taXplZCB1c2luZyBhcmJpdHJhcnkgUHl0aG9uIGNvZGUsCisgIHdpdGhvdXQgaGF2aW5nIHRvIGVkaXQgZ2l0X211bHRpbWFpbC5weS4KKworKiBDb25maWd1cmF0aW9uIHNldHRpbmdzIGNhbiBiZSByZWFkIGZyb20gb3RoZXIgc291cmNlczsgZm9yIGV4YW1wbGUsCisgIHVzZXIgbmFtZXMgYW5kIGVtYWlsIGFkZHJlc3NlcyBjb3VsZCBiZSByZWFkIGZyb20gTERBUCBvciBmcm9tIGEKKyAgZGF0YWJhc2UuICBPciB0aGUgc2V0dGluZ3MgY2FuIGV2ZW4gYmUgaGFyZGNvZGVkIGluIHRoZSBpbXBvcnRpbmcKKyAgUHl0aG9uIHNjcmlwdCwgaWYgdGhpcyBpcyBwcmVmZXJyZWQuCisKK1RoaXMgc2NyaXB0IGlzIGEgdmVyeSBiYXNpYyBleGFtcGxlIG9mIGhvdyB0byB1c2UgZ2l0X211bHRpbWFpbC5weSBhcworYSBtb2R1bGUuICBUaGUgY29tbWVudHMgYmVsb3cgZXhwbGFpbiBzb21lIG9mIHRoZSBwb2ludHMgYXQgd2hpY2ggdGhlCitzY3JpcHQncyBiZWhhdmlvciBjb3VsZCBiZSBjaGFuZ2VkIG9yIGN1c3RvbWl6ZWQuCisKKyIiIgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworIyBJZiBuZWNlc3NhcnksIGFkZCB0aGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcKKyMgZ2l0X211bHRpbWFpbC5weSB0byB0aGUgUHl0aG9uIHBhdGggYXMgZm9sbG93cy4gIChUaGlzIGlzIG5vdAorIyBuZWNlc3NhcnkgaWYgZ2l0X211bHRpbWFpbC5weSBpcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhpcworIyBzY3JpcHQpOgorCisjTElCRElSID0gJ3BhdGgvdG8vZGlyZWN0b3J5L2NvbnRhaW5pbmcvbW9kdWxlJworI3N5cy5wYXRoLmluc2VydCgwLCBMSUJESVIpCisKK2ltcG9ydCBnaXRfbXVsdGltYWlsCisKKworIyBJdCBpcyBwb3NzaWJsZSB0byBtb2RpZnkgdGhlIG91dHB1dCB0ZW1wbGF0ZXMgaGVyZTsgZS5nLjoKKworI2dpdF9tdWx0aW1haWwuRk9PVEVSX1RFTVBMQVRFID0gIiIiXAorIworIy0tIFxuXAorI1RoaXMgZW1haWwgd2FzIGdlbmVyYXRlZCBieSB0aGUgd29uZGVyZnVsIGdpdC1tdWx0aW1haWwgdG9vbC4KKyMiIiIKKworCisjIFNwZWNpZnkgd2hpY2ggImdpdCBjb25maWciIHNlY3Rpb24gY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yCisjIGdpdC1tdWx0aW1haWw6Citjb25maWcgPSBnaXRfbXVsdGltYWlsLkNvbmZpZygnbXVsdGltYWlsaG9vaycpCisKKworIyBTZWxlY3QgdGhlIHR5cGUgb2YgZW52aXJvbm1lbnQ6CitlbnZpcm9ubWVudCA9IGdpdF9tdWx0aW1haWwuR2VuZXJpY0Vudmlyb25tZW50KGNvbmZpZz1jb25maWcpCisjZW52aXJvbm1lbnQgPSBnaXRfbXVsdGltYWlsLkdpdG9saXRlRW52aXJvbm1lbnQoY29uZmlnPWNvbmZpZykKKworCisjIENob29zZSB0aGUgbWV0aG9kIG9mIHNlbmRpbmcgZW1haWxzIGJhc2VkIG9uIHRoZSBnaXQgY29uZmlnOgorbWFpbGVyID0gZ2l0X211bHRpbWFpbC5jaG9vc2VfbWFpbGVyKGNvbmZpZywgZW52aXJvbm1lbnQpCisKKyMgQWx0ZXJuYXRpdmVseSwgeW91IG1heSBoYXJkY29kZSB0aGUgbWFpbGVyIHVzaW5nIGNvZGUgbGlrZSBvbmUgb2YKKyMgdGhlIGZvbGxvd2luZzoKKworIyBVc2UgIi91c3Ivc2Jpbi9zZW5kbWFpbCAtdCIgdG8gc2VuZCBlbWFpbHMuICBUaGUgZW52ZWxvcGVzZW5kZXIKKyMgYXJndW1lbnQgaXMgb3B0aW9uYWw6CisjbWFpbGVyID0gZ2l0X211bHRpbWFpbC5TZW5kTWFpbGVyKAorIyAgICBjb21tYW5kPVsnL3Vzci9zYmluL3NlbmRtYWlsJywgJy10J10sCisjICAgIGVudmVsb3Blc2VuZGVyPSdnaXQtcmVwb0BleGFtcGxlLmNvbScsCisjICAgICkKKworIyBVc2UgUHl0aG9uJ3Mgc210cGxpYiB0byBzZW5kIGVtYWlscy4gIEJvdGggYXJndW1lbnRzIGFyZSByZXF1aXJlZC4KKyNtYWlsZXIgPSBnaXRfbXVsdGltYWlsLlNNVFBNYWlsZXIoCisjICAgIGVudmVsb3Blc2VuZGVyPSdnaXQtcmVwb0BleGFtcGxlLmNvbScsCisjICAgICMgVGhlIHNtdHBzZXJ2ZXIgYXJndW1lbnQgY2FuIGFsc28gaW5jbHVkZSBhIHBvcnQgbnVtYmVyOyBlLmcuLAorIyAgICAjICAgICBzbXRwc2VydmVyPSdtYWlsLmV4YW1wbGUuY29tOjI1JworIyAgICBzbXRwc2VydmVyPSdtYWlsLmV4YW1wbGUuY29tJywKKyMgICAgKQorCisjIE91dHB1dE1haWxlciBpcyBpbnRlbmRlZCBvbmx5IGZvciB0ZXN0aW5nOyBpdCB3cml0ZXMgdGhlIGVtYWlscyB0bworIyB0aGUgc3BlY2lmaWVkIGZpbGUgc3RyZWFtLgorI21haWxlciA9IGdpdF9tdWx0aW1haWwuT3V0cHV0TWFpbGVyKHN5cy5zdGRvdXQpCisKKworIyBSZWFkIGNoYW5nZXMgZnJvbSBzdGRpbiBhbmQgc2VuZCBub3RpZmljYXRpb24gZW1haWxzOgorZ2l0X211bHRpbWFpbC5ydW5fYXNfcG9zdF9yZWNlaXZlX2hvb2soZW52aXJvbm1lbnQsIG1haWxlcikKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaG9va3MvcG9zdC1yZWNlaXZlLWVtYWlsIGIvY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWwKaW5kZXggMGU1YjcyZC4uMTUzMTE1MCAxMDA3NTUKLS0tIGEvY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWwKKysrIGIvY29udHJpYi9ob29rcy9wb3N0LXJlY2VpdmUtZW1haWwKQEAgLTIsMTAgKzIsMTkgQEAKICMKICMgQ29weXJpZ2h0IChjKSAyMDA3IEFuZHkgUGFya2lucwogIwotIyBBbiBleGFtcGxlIGhvb2sgc2NyaXB0IHRvIG1haWwgb3V0IGNvbW1pdCB1cGRhdGUgaW5mb3JtYXRpb24uICBUaGlzIGhvb2sKLSMgc2VuZHMgZW1haWxzIGxpc3RpbmcgbmV3IHJldmlzaW9ucyB0byB0aGUgcmVwb3NpdG9yeSBpbnRyb2R1Y2VkIGJ5IHRoZQotIyBjaGFuZ2UgYmVpbmcgcmVwb3J0ZWQuICBUaGUgcnVsZSBpcyB0aGF0IChmb3IgYnJhbmNoIHVwZGF0ZXMpIGVhY2ggY29tbWl0Ci0jIHdpbGwgYXBwZWFyIG9uIG9uZSBlbWFpbCBhbmQgb25lIGVtYWlsIG9ubHkuCisjIEFuIGV4YW1wbGUgaG9vayBzY3JpcHQgdG8gbWFpbCBvdXQgY29tbWl0IHVwZGF0ZSBpbmZvcm1hdGlvbi4KKyMKKyMgTk9URTogVGhpcyBzY3JpcHQgaXMgbm8gbG9uZ2VyIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudC4gIFRoZXJlCisjIGlzIGFub3RoZXIgc2NyaXB0LCBnaXQtbXVsdGltYWlsLCB3aGljaCBpcyBtb3JlIGNhcGFibGUgYW5kCisjIGNvbmZpZ3VyYWJsZSBhbmQgaXMgbGFyZ2VseSBiYWNrd2FyZHMtY29tcGF0aWJsZSB3aXRoIHRoaXMgc2NyaXB0OworIyBwbGVhc2Ugc2VlICJjb250cmliL2hvb2tzL211bHRpbWFpbC8iLiAgRm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8KKyMgbWlncmF0ZSBmcm9tIHBvc3QtcmVjZWl2ZS1lbWFpbCB0byBnaXQtbXVsdGltYWlsLCBwbGVhc2Ugc2VlCisjICJSRUFETUUubWlncmF0ZS1mcm9tLXBvc3QtcmVjZWl2ZS1lbWFpbCIgaW4gdGhhdCBkaXJlY3RvcnkuCisjCisjIFRoaXMgaG9vayBzZW5kcyBlbWFpbHMgbGlzdGluZyBuZXcgcmV2aXNpb25zIHRvIHRoZSByZXBvc2l0b3J5CisjIGludHJvZHVjZWQgYnkgdGhlIGNoYW5nZSBiZWluZyByZXBvcnRlZC4gIFRoZSBydWxlIGlzIHRoYXQgKGZvcgorIyBicmFuY2ggdXBkYXRlcykgZWFjaCBjb21taXQgd2lsbCBhcHBlYXIgb24gb25lIGVtYWlsIGFuZCBvbmUgZW1haWwKKyMgb25seS4KICMKICMgVGhpcyBob29rIGlzIHN0b3JlZCBpbiB0aGUgY29udHJpYi9ob29rcyBkaXJlY3RvcnkuICBZb3VyIGRpc3RyaWJ1dGlvbgogIyB3aWxsIGhhdmUgcHV0IHRoaXMgc29tZXdoZXJlIHN0YW5kYXJkLiAgWW91IHNob3VsZCBtYWtlIHRoaXMgc2NyaXB0CmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC8uZ2l0aWdub3JlIGIvY29udHJpYi9tdy10by1naXQvLmdpdGlnbm9yZQppbmRleCBiOTE5NjU1Li5hZTU0NWIwIDEwMDY0NAotLS0gYS9jb250cmliL213LXRvLWdpdC8uZ2l0aWdub3JlCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0Ly5naXRpZ25vcmUKQEAgLTEgKzEsMiBAQAogZ2l0LXJlbW90ZS1tZWRpYXdpa2kKK2dpdC1tdwpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvLnBlcmxjcml0aWNyYyBiL2NvbnRyaWIvbXctdG8tZ2l0Ly5wZXJsY3JpdGljcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE5OTU1ZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0Ly5wZXJsY3JpdGljcmMKQEAgLTAsMCArMSwyOCBAQAorIyBUaGVzZSAzIHJ1bGVzIGRlbWFuZCB0byBhZGQgdGhlIHMsIG0gYW5kIHggZmxhZyB0byAqZXZlcnkqIHJlZ2V4cC4gVGhpcyBpcworIyBvdmVya2lsbCBhbmQgd291bGQgYmUgaGFybWZ1bCBmb3IgcmVhZGFiaWxpdHkuCitbLVJlZ3VsYXJFeHByZXNzaW9uczo6UmVxdWlyZUV4dGVuZGVkRm9ybWF0dGluZ10KK1stUmVndWxhckV4cHJlc3Npb25zOjpSZXF1aXJlRG90TWF0Y2hBbnl0aGluZ10KK1stUmVndWxhckV4cHJlc3Npb25zOjpSZXF1aXJlTGluZUJvdW5kYXJ5TWF0Y2hpbmddCisKKyMgVGhpcyBydWxlIHNheXMgdGhhdCBidWlsdGluIGZ1bmN0aW9ucyBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIHBhcmVudGhlc2VzCisjIGUuZy46ICh0YWtlbiBmcm9tIENQQU4ncyBkb2N1bWVudGF0aW9uKQorIyBvcGVuKCRoYW5kbGUsICc+JywgJGZpbGVuYW1lKTsgI25vdCBvaworIyBvcGVuICRoYW5kbGUsICc+JywgJGZpbGVuYW1lOyAgI29rCisjIEFwcGx5aW5nIHN1Y2ggYSBydWxlIHdvdWxkIG1lYW4gbW9kaWZ5aW5nIGEgaHVnZSBudW1iZXIgb2YgbGluZXMgZm9yIGEKKyMgcXVlc3Rpb24gb2Ygc3R5bGUuCitbLUNvZGVMYXlvdXQ6OlByb2hpYml0UGFyZW5zV2l0aEJ1aWx0aW5zXQorCisjIFRoaXMgcnVsZSBzdGF0ZXMgdGhhdCBlYWNoIHN5c3RlbSBjYWxsIHNob3VsZCBoYXZlIGl0cyByZXR1cm4gdmFsdWUgY2hlY2tlZAorIyBUaGUgcHJvYmxlbSBpcyB0aGF0IGl0IGluY2x1ZGVzIHRoZSBwcmludCBjYWxsLiBDaGVja2luZyBldmVyeSBwcmludCBjYWxsJ3MKKyMgcmV0dXJuIHZhbHVlIHdvdWxkIGJlIGhhcm1mdWwgdG8gdGhlIGNvZGUgcmVhZGFiaWx0eS4KKyMgVGhpcyBjb25maWd1cmF0aW9uIGtlZXBzIGFsbCBkZWZhdWx0IGZ1bmN0aW9uIGJ1dCBwcmludC4KK1tJbnB1dE91dHB1dDo6UmVxdWlyZUNoZWNrZWRTeXNjYWxsc10KK2Z1bmN0aW9ucyA9IG9wZW4gc2F5IGNsb3NlCisKKyMgVGhpcyBydWxlcyBkZW1hbmRzIHRvIGFkZCBhIGRlcGVuZGFuY3kgZm9yIHRoZSBSZWFkb25seSBtb2R1bGUuIFRoaXMgaXMgbm90CisjIHdpc2hlZC4KK1stVmFsdWVzQW5kRXhwcmVzc2lvbnM6OlByb2hpYml0Q29uc3RhbnRQcmFnbWFdCisKKyMgVGhpcyBydWxlIGlzIG5vdCByZWFsbHkgdXNlZnVsIChyYXRoZXIgYSBxdWVzdGlvbiBvZiBzdHlsZSkgYW5kIHByb2R1Y2VzIG1hbnkKKyMgd2FybmluZ3MgYW1vbmcgdGhlIGNvZGUuCitbLVZhbHVlc0FuZEV4cHJlc3Npb25zOjpQcm9oaWJpdE5vaXN5UXVvdGVzXQpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvR2l0L01lZGlhd2lraS5wbSBiL2NvbnRyaWIvbXctdG8tZ2l0L0dpdC9NZWRpYXdpa2kucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEzYzRkZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L0dpdC9NZWRpYXdpa2kucG0KQEAgLTAsMCArMSwxMDAgQEAKK3BhY2thZ2UgR2l0OjpNZWRpYXdpa2k7CisKK3VzZSA1LjAwODsKK3VzZSBzdHJpY3Q7Cit1c2UgR2l0OworCitCRUdJTiB7CisKK291ciAoJFZFUlNJT04sIEBJU0EsIEBFWFBPUlQsIEBFWFBPUlRfT0spOworCisjIFRvdGFsbHkgdW5zdGFibGUgQVBJLgorJFZFUlNJT04gPSAnMC4wMSc7CisKK3JlcXVpcmUgRXhwb3J0ZXI7CisKK0BJU0EgPSBxdyhFeHBvcnRlcik7CisKK0BFWFBPUlQgPSAoKTsKKworIyBNZXRob2RzIHdoaWNoIGNhbiBiZSBjYWxsZWQgYXMgc3RhbmRhbG9uZSBmdW5jdGlvbnMgYXMgd2VsbDoKK0BFWFBPUlRfT0sgPSBxdyhjbGVhbl9maWxlbmFtZSBzbXVkZ2VfZmlsZW5hbWUgY29ubmVjdF9tYXliZQorCQkJCUVNUFRZIEhUVFBfQ09ERV9PSyBIVFRQX0NPREVfUEFHRV9OT1RfRk9VTkQpOworfQorCisjIE1lZGlhd2lraSBmaWxlbmFtZXMgY2FuIGNvbnRhaW4gZm9yd2FyZCBzbGFzaGVzLiBUaGlzIHZhcmlhYmxlIGRlY2lkZXMgYnkgd2hpY2ggcGF0dGVybiB0aGV5IHNob3VsZCBiZSByZXBsYWNlZAordXNlIGNvbnN0YW50IFNMQVNIX1JFUExBQ0VNRU5UID0+ICclMkYnOworCisjIFVzZWQgdG8gdGVzdCBmb3IgZW1wdHkgc3RyaW5ncwordXNlIGNvbnN0YW50IEVNUFRZID0+IHF7fTsKKworIyBIVFRQIGNvZGVzCit1c2UgY29uc3RhbnQgSFRUUF9DT0RFX09LID0+IDIwMDsKK3VzZSBjb25zdGFudCBIVFRQX0NPREVfUEFHRV9OT1RfRk9VTkQgPT4gNDA0OworCitzdWIgY2xlYW5fZmlsZW5hbWUgeworCW15ICRmaWxlbmFtZSA9IHNoaWZ0OworCSRmaWxlbmFtZSA9fiBze0B7W1NMQVNIX1JFUExBQ0VNRU5UXX19ey99ZzsKKwkjIFssIF0sIHwsIHssIGFuZCB9IGFyZSBmb3JiaWRkZW4gYnkgTWVkaWFXaWtpLCBldmVuIFVSTC1lbmNvZGVkLgorCSMgRG8gYSB2YXJpYW50IG9mIFVSTC1lbmNvZGluZywgaS5lLiBsb29rcyBsaWtlIFVSTC1lbmNvZGluZywKKwkjIGJ1dCB3aXRoIF8gYWRkZWQgdG8gcHJldmVudCBNZWRpYVdpa2kgZnJvbSB0aGlua2luZyB0aGlzIGlzCisJIyBhbiBhY3R1YWwgc3BlY2lhbCBjaGFyYWN0ZXIuCisJJGZpbGVuYW1lID1+IHMvW1xbXF1ce1x9XHxdL3NwcmludGYoIl8lJV8leCIsIG9yZCgkJikpL2dlOworCSMgSWYgd2UgdXNlIHRoZSB1cmkgZXNjYXBlIGJlZm9yZQorCSMgd2Ugc2hvdWxkIHVuZXNjYXBlIGhlcmUsIGJlZm9yZSBhbnl0aGluZworCisJcmV0dXJuICRmaWxlbmFtZTsKK30KKworc3ViIHNtdWRnZV9maWxlbmFtZSB7CisJbXkgJGZpbGVuYW1lID0gc2hpZnQ7CisJJGZpbGVuYW1lID1+IHN7L317QHtbU0xBU0hfUkVQTEFDRU1FTlRdfX1nOworCSRmaWxlbmFtZSA9fiBzLyAvXy9nOworCSMgRGVjb2RlIGZvcmJpZGRlbiBjaGFyYWN0ZXJzIGVuY29kZWQgaW4gY2xlYW5fZmlsZW5hbWUKKwkkZmlsZW5hbWUgPX4gcy9fJV8oWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkvc3ByaW50ZignJWMnLCBoZXgoJDEpKS9nZTsKKwlyZXR1cm4gJGZpbGVuYW1lOworfQorCitzdWIgY29ubmVjdF9tYXliZSB7CisJbXkgJHdpa2kgPSBzaGlmdDsKKwlpZiAoJHdpa2kpIHsKKwkJcmV0dXJuICR3aWtpOworCX0KKworCW15ICRyZW1vdGVfbmFtZSA9IHNoaWZ0OworCW15ICRyZW1vdGVfdXJsID0gc2hpZnQ7CisJbXkgKCR3aWtpX2xvZ2luLCAkd2lraV9wYXNzd29yZCwgJHdpa2lfZG9tYWluKTsKKworCSR3aWtpX2xvZ2luID0gR2l0Ojpjb25maWcoInJlbW90ZS4ke3JlbW90ZV9uYW1lfS5td0xvZ2luIik7CisJJHdpa2lfcGFzc3dvcmQgPSBHaXQ6OmNvbmZpZygicmVtb3RlLiR7cmVtb3RlX25hbWV9Lm13UGFzc3dvcmQiKTsKKwkkd2lraV9kb21haW4gPSBHaXQ6OmNvbmZpZygicmVtb3RlLiR7cmVtb3RlX25hbWV9Lm13RG9tYWluIik7CisKKwkkd2lraSA9IE1lZGlhV2lraTo6QVBJLT5uZXc7CisJJHdpa2ktPntjb25maWd9LT57YXBpX3VybH0gPSAiJHtyZW1vdGVfdXJsfS9hcGkucGhwIjsKKwlpZiAoJHdpa2lfbG9naW4pIHsKKwkJbXkgJWNyZWRlbnRpYWwgPSAoCisJCQkndXJsJyA9PiAkcmVtb3RlX3VybCwKKwkJCSd1c2VybmFtZScgPT4gJHdpa2lfbG9naW4sCisJCQkncGFzc3dvcmQnID0+ICR3aWtpX3Bhc3N3b3JkCisJCSk7CisJCUdpdDo6Y3JlZGVudGlhbChcJWNyZWRlbnRpYWwpOworCQlteSAkcmVxdWVzdCA9IHtsZ25hbWUgPT4gJGNyZWRlbnRpYWx7dXNlcm5hbWV9LAorCQkJICAgICAgIGxncGFzc3dvcmQgPT4gJGNyZWRlbnRpYWx7cGFzc3dvcmR9LAorCQkJICAgICAgIGxnZG9tYWluID0+ICR3aWtpX2RvbWFpbn07CisJCWlmICgkd2lraS0+bG9naW4oJHJlcXVlc3QpKSB7CisJCQlHaXQ6OmNyZWRlbnRpYWwoXCVjcmVkZW50aWFsLCAnYXBwcm92ZScpOworCQkJcHJpbnQgeypTVERFUlJ9IHFxKExvZ2dlZCBpbiBtZWRpYXdpa2kgdXNlciAiJGNyZWRlbnRpYWx7dXNlcm5hbWV9Ii5cbik7CisJCX0gZWxzZSB7CisJCQlwcmludCB7KlNUREVSUn0gcXEoRmFpbGVkIHRvIGxvZyBpbiBtZWRpYXdpa2kgdXNlciAiJGNyZWRlbnRpYWx7dXNlcm5hbWV9IiBvbiAke3JlbW90ZV91cmx9XG4pOworCQkJcHJpbnQgeypTVERFUlJ9ICcgIChlcnJvciAnIC4KKwkJCQkkd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4gJzogJyAuCisJCQkJJHdpa2ktPntlcnJvcn0tPntkZXRhaWxzfSAuICIpXG4iOworCQkJR2l0OjpjcmVkZW50aWFsKFwlY3JlZGVudGlhbCwgJ3JlamVjdCcpOworCQkJZXhpdCAxOworCQl9CisJfQorCisJcmV0dXJuICR3aWtpOworfQorCisxOyAjIEZhbW91cyBsYXN0IHdvcmRzCmRpZmYgLS1naXQgYS9jb250cmliL213LXRvLWdpdC9NYWtlZmlsZSBiL2NvbnRyaWIvbXctdG8tZ2l0L01ha2VmaWxlCmluZGV4IGYxNDk3MTkuLjc2ZmNkNGQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbXctdG8tZ2l0L01ha2VmaWxlCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L01ha2VmaWxlCkBAIC0yLDE2ICsyLDQzIEBACiAjIENvcHlyaWdodCAoQykgMjAxMwogIyAgICAgTWF0dGhpZXUgTW95IDxNYXR0aGlldS5Nb3lAaW1hZy5mcj4KICMKLSMjIEJ1aWxkIGdpdC1yZW1vdGUtbWVkaWF3aWtpCisjIFRvIGJ1aWxkIGFuZCB0ZXN0OgorIworIyAgIG1ha2UKKyMgICBiaW4td3JhcHBlci9naXQgbXcgcHJldmlldyBTb21lX3BhZ2UubXcKKyMgICBiaW4td3JhcHBlci9naXQgY2xvbmUgbWVkaWF3aWtpOjpodHRwOi8vZXhhbXBsZS5jb20vd2lraS8KKyMKKyMgVG8gaW5zdGFsbCwgcnVuIEdpdCdzIHRvcGxldmVsICdtYWtlIGluc3RhbGwnIHRoZW4gcnVuOgorIworIyAgIG1ha2UgaW5zdGFsbAogCitHSVRfTUVESUFXSUtJX1BNPUdpdC9NZWRpYXdpa2kucG0KIFNDUklQVF9QRVJMPWdpdC1yZW1vdGUtbWVkaWF3aWtpLnBlcmwKK1NDUklQVF9QRVJMKz1naXQtbXcucGVybAogR0lUX1JPT1RfRElSPS4uLy4uCiBIRVJFPWNvbnRyaWIvbXctdG8tZ2l0LwogCiBTQ1JJUFRfUEVSTF9GVUxMPSQocGF0c3Vic3QgJSwkKEhFUkUpLyUsJChTQ1JJUFRfUEVSTCkpCitJTlNUTElCRElSPSQoc2hlbGwgJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikvcGVybCBcCisgICAgICAgICAgICAgICAgLXMgLS1uby1wcmludC1kaXJlY3RvcnkgaW5zdGxpYmRpcikKIAogYWxsOiBidWlsZAogCi1idWlsZCBpbnN0YWxsIGNsZWFuOgotCSQoTUFLRSkgLUMgJChHSVRfUk9PVF9ESVIpIFNDUklQVF9QRVJMPSQoU0NSSVBUX1BFUkxfRlVMTCkgXAotICAgICAgICAgICAgICAgICRALXBlcmwtc2NyaXB0CitpbnN0YWxsX3BtOgorCWluc3RhbGwgJChHSVRfTUVESUFXSUtJX1BNKSAkKElOU1RMSUJESVIpLyQoR0lUX01FRElBV0lLSV9QTSkKKworYnVpbGQ6CisJJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikgU0NSSVBUX1BFUkw9IiQoU0NSSVBUX1BFUkxfRlVMTCkiIFwKKyAgICAgICAgICAgICAgICBidWlsZC1wZXJsLXNjcmlwdAorCitpbnN0YWxsOiBpbnN0YWxsX3BtCisJJChNQUtFKSAtQyAkKEdJVF9ST09UX0RJUikgU0NSSVBUX1BFUkw9IiQoU0NSSVBUX1BFUkxfRlVMTCkiIFwKKyAgICAgICAgICAgICAgICBpbnN0YWxsLXBlcmwtc2NyaXB0CisKK2NsZWFuOgorCSQoTUFLRSkgLUMgJChHSVRfUk9PVF9ESVIpIFNDUklQVF9QRVJMPSIkKFNDUklQVF9QRVJMX0ZVTEwpIiBcCisgICAgICAgICAgICAgICAgY2xlYW4tcGVybC1zY3JpcHQKKwlybSAkKElOU1RMSUJESVIpLyQoR0lUX01FRElBV0lLSV9QTSkKKworcGVybGNyaXRpYzoKKwlwZXJsY3JpdGljIC0yICoucGVybApkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvYmluLXdyYXBwZXIvZ2l0IGIvY29udHJpYi9tdy10by1naXQvYmluLXdyYXBwZXIvZ2l0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY2NjNhZTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL213LXRvLWdpdC9iaW4td3JhcHBlci9naXQKQEAgLTAsMCArMSwxNCBAQAorIyEvYmluL3NoCisKKyMgZ2l0IGV4ZWN1dGFibGUgd3JhcHBlciBzY3JpcHQgZm9yIEdpdC1NZWRpYXdpa2kgdG8gcnVuIHRlc3RzIHdpdGhvdXQKKyMgaW5zdGFsbGluZyBhbGwgdGhlIHNjcmlwdHMgYW5kIHBlcmwgcGFja2FnZXMuCisKK0dJVF9ST09UX0RJUj0uLi8uLi8uLgorR0lUX0VYRUNfUEFUSD0kKGNkICIkKGRpcm5hbWUgIiQwIikiICYmIGNkICR7R0lUX1JPT1RfRElSfSAmJiBwd2QpCisKK0dJVFBFUkxMSUI9IiRHSVRfRVhFQ19QQVRIIicvY29udHJpYi9tdy10by1naXQnIiR7R0lUUEVSTExJQjorOiRHSVRQRVJMTElCfSIKK1BBVEg9IiRHSVRfRVhFQ19QQVRIIicvY29udHJpYi9tdy10by1naXQ6JyIkUEFUSCIKKworZXhwb3J0IEdJVFBFUkxMSUIgUEFUSAorCitleGVjICIke0dJVF9FWEVDX1BBVEh9L2Jpbi13cmFwcGVycy9naXQiICIkQCIKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1tdy5wZXJsIGIvY29udHJpYi9tdy10by1naXQvZ2l0LW13LnBlcmwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjhkZjNlZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1tdy5wZXJsCkBAIC0wLDAgKzEsMzY4IEBACisjIS91c3IvYmluL3BlcmwKKworIyBDb3B5cmlnaHQgKEMpIDIwMTMKKyMgICAgIEJlbm9pdCBQZXJzb24gPGJlbm9pdC5wZXJzb25AZW5zaW1hZy5pbWFnLmZyPgorIyAgICAgQ2VsZXN0aW4gTWF0dGUgPGNlbGVzdGluLm1hdHRlQGVuc2ltYWcuaW1hZy5mcj4KKyMgTGljZW5zZTogR1BMIHYyIG9yIGxhdGVyCisKKyMgU2V0IG9mIHRvb2xzIGZvciBnaXQgcmVwbyB3aXRoIGEgbWVkaWF3aWtpIHJlbW90ZS4KKyMgRG9jdW1lbnRhdGlvbiAmIGJ1Z3RyYWNrZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb3kvR2l0LU1lZGlhd2lraS8KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIEdldG9wdDo6TG9uZzsKK3VzZSBVUkk6OlVSTCBxdyh1cmwpOwordXNlIExXUDo6VXNlckFnZW50OwordXNlIEhUTUw6OlRyZWVCdWlsZGVyOworCit1c2UgR2l0OwordXNlIE1lZGlhV2lraTo6QVBJOwordXNlIEdpdDo6TWVkaWF3aWtpIHF3KGNsZWFuX2ZpbGVuYW1lIGNvbm5lY3RfbWF5YmUKKwkJCQkJRU1QVFkgSFRUUF9DT0RFX1BBR0VfTk9UX0ZPVU5EKTsKKworIyBCeSBkZWZhdWx0LCB1c2UgVVRGLTggdG8gY29tbXVuaWNhdGUgd2l0aCBHaXQgYW5kIHRoZSB1c2VyCitiaW5tb2RlIFNUREVSUiwgJzplbmNvZGluZyhVVEYtOCknOworYmlubW9kZSBTVERPVVQsICc6ZW5jb2RpbmcoVVRGLTgpJzsKKworIyBHbG9iYWwgcGFyYW1ldGVycworbXkgJHZlcmJvc2UgPSAwOworc3ViIHZfcHJpbnQgeworCWlmICgkdmVyYm9zZSkgeworCQlyZXR1cm4gcHJpbnQgeypTVERFUlJ9IEBfOworCX0KKwlyZXR1cm47Cit9CisKKyMgUHJldmlldyBwYXJhbWV0ZXJzCitteSAkZmlsZV9uYW1lID0gRU1QVFk7CitteSAkcmVtb3RlX25hbWUgPSBFTVBUWTsKK215ICRwcmV2aWV3X2ZpbGVfbmFtZSA9IEVNUFRZOworbXkgJGF1dG9sb2FkID0gMDsKK3N1YiBmaWxlIHsKKwkkZmlsZV9uYW1lID0gc2hpZnQ7CisJcmV0dXJuICRmaWxlX25hbWU7Cit9CisKK215ICVjb21tYW5kcyA9ICgKKwknaGVscCcgPT4KKwkJW1wmaGVscCwge30sIFwmaGVscF0sCisJJ3ByZXZpZXcnID0+CisJCVtcJnByZXZpZXcsIHsKKwkJCSc8PicgPT4gXCZmaWxlLAorCQkJJ291dHB1dHxvPXMnID0+IFwkcHJldmlld19maWxlX25hbWUsCisJCQkncmVtb3RlfHI9cycgPT4gXCRyZW1vdGVfbmFtZSwKKwkJCSdhdXRvbG9hZHxhJyA9PiBcJGF1dG9sb2FkCisJCX0sIFwmcHJldmlld19oZWxwXQorKTsKKworIyBTZWFyY2ggZm9yIHN1Yi1jb21tYW5kCitteSAkY21kID0gJGNvbW1hbmRzeydoZWxwJ307Citmb3IgKDAuLkBBUkdWLTEpIHsKKwlpZiAoZGVmaW5lZCAkY29tbWFuZHN7JEFSR1ZbJF9dfSkgeworCQkkY21kID0gJGNvbW1hbmRzeyRBUkdWWyRfXX07CisJCXNwbGljZSBAQVJHViwgJF8sIDE7CisJCWxhc3Q7CisJfQorfTsKK0dldE9wdGlvbnMoICV7JGNtZC0+WzFdfSwKKwknaGVscHxoJyA9PiBcJnskY21kLT5bMl19LAorCSd2ZXJib3NlfHYnICA9PiBcJHZlcmJvc2UpOworCisjIExhdW5jaCBjb21tYW5kCismeyRjbWQtPlswXX07CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFByZXZpZXcgRnVuY3Rpb25zICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3N1YiBwcmV2aWV3X2hlbHAgeworCXByaW50IHsqU1RET1VUfSA8PCdFTkQnOworVVNBR0U6IGdpdCBtdyBwcmV2aWV3IFstLXJlbW90ZXwtciA8cmVtb3RlIG5hbWU+XSBbLS1hdXRvbG9hZHwtYV0KKyAgICAgICAgICAgICAgICAgICAgICBbLS1vdXRwdXR8LW8gPG91dHB1dCBmaWxlbmFtZT5dIFstLXZlcmJvc2V8LXZdCisgICAgICAgICAgICAgICAgICAgICAgPGJsb2I+IHwgPGZpbGVuYW1lPgorCitERVNDUklQVElPTjoKK1ByZXZpZXcgaXMgYW4gdXRpbGl5IHRvIHByZXZpZXcgbG9jYWwgY29udGVudCBvZiBhIG1lZGlhd2lraSByZXBvIGFzIGlmIGl0IHdhcworcHVzaGVkIG9uIHRoZSByZW1vdGUuCisKK0ZvciB0aGF0LCBwcmV2aWV3IHNlYXJjaGVzIGZvciB0aGUgcmVtb3RlIG5hbWUgb2YgdGhlIGN1cnJlbnQgYnJhbmNoJ3MKK3Vwc3RyZWFtIGlmIC0tcmVtb3RlIGlzIG5vdCBzZXQuIElmIHRoYXQgcmVtb3RlIGlzIG5vdCBmb3VuZCBvciBpZiBpdAoraXMgbm90IGEgbWVkaWF3aWtpLCBpdCBsaXN0cyBhbGwgbWVkaWF3aWtpIHJlbW90ZXMgY29uZmlndXJlZCBhbmQgYXNrcworeW91IHRvIHJlcGxheSB5b3VyIGNvbW1hbmQgd2l0aCB0aGUgLS1yZW1vdGUgb3B0aW9uIHNldCBwcm9wZXJseS4KKworVGhlbiwgaXQgc2VhcmNoZXMgZm9yIGEgZmlsZSBuYW1lZCAnZmlsZW5hbWUnLiBJZiBpdCdzIG5vdCBmb3VuZCBpbgordGhlIGN1cnJlbnQgZGlyLCBpdCB3aWxsIGFzc3VtZSBpdCdzIGEgYmxvYi4KKworVGhlIGNvbnRlbnQgcmV0cmlldmVkIGluIHRoZSBmaWxlIChvciBpbiB0aGUgYmxvYikgd2lsbCB0aGVuIGJlIHBhcnNlZAorYnkgdGhlIHJlbW90ZSBtZWRpYXdpa2kgYW5kIGNvbWJpbmVkIHdpdGggYSB0ZW1wbGF0ZSByZXRyaWV2ZWQgZnJvbQordGhlIG1lZGlhd2lraS4KKworRmluYWxseSwgcHJldmlldyB3aWxsIHNhdmUgdGhlIEhUTUwgcmVzdWx0IGluIGEgZmlsZS4gYW5kIGF1dG9sb2FkIGl0CitpbiB5b3VyIGRlZmF1bHQgd2ViIGJyb3dzZXIgaWYgdGhlIG9wdGlvbiAtLWF1dG9sb2FkIGlzIHByZXNlbnQuCisKK09QVElPTlM6CisgICAgLXIgPHJlbW90ZSBuYW1lPiwgLS1yZW1vdGUgPHJlbW90ZSBuYW1lPgorICAgICAgICBJZiB0aGUgcmVtb3RlIGlzIGEgbWVkaWF3aWtpLCB0aGUgdGVtcGxhdGUgYW5kIHRoZSBwYXJzZSBlbmdpbmUKKyAgICAgICAgdXNlZCBmb3IgdGhlIHByZXZpZXcgd2lsbCBiZSB0aG9zZSBvZiB0aGF0IHJlbW90ZS4KKyAgICAgICAgSWYgbm90LCBhIGxpc3Qgb2YgdmFsaWQgcmVtb3RlcyB3aWxsIGJlIHNob3duLgorCisgICAgLWEsIC0tYXV0b2xvYWQKKyAgICAgICAgVHJ5IHRvIGxvYWQgdGhlIEhUTUwgb3V0cHV0IGluIGEgbmV3IHRhYiAob3IgbmV3IHdpbmRvdykgb2YgeW91cgorICAgICAgICBkZWZhdWx0IHdlYiBicm93c2VyLgorCisgICAgLW8gPG91dHB1dCBmaWxlbmFtZT4sIC0tb3V0cHV0IDxvdXRwdXQgZmlsZW5hbWU+CisgICAgICAgIENoYW5nZSB0aGUgSFRNTCBvdXRwdXQgZmlsZW5hbWUuIERlZmF1bHQgZmlsZW5hbWUgaXMgYmFzZWQgb24gdGhlCisgICAgICAgIGlucHV0IGZpbGVuYW1lIHdpdGggaXRzIGV4dGVuc2lvbiByZXBsYWNlZCBieSAnLmh0bWwnLgorCisgICAgLXYsIC0tdmVyYm9zZQorICAgICAgICBTaG93IG1vcmUgaW5mb3JtYXRpb24gb24gd2hhdCdzIGdvaW5nIG9uIHVuZGVyIHRoZSBob29kLgorRU5ECisJZXhpdDsKK30KKworc3ViIHByZXZpZXcgeworCW15ICR3aWtpOworCW15ICgkcmVtb3RlX3VybCwgJHdpa2lfcGFnZV9uYW1lKTsKKwlteSAoJG5ld19jb250ZW50LCAkdGVtcGxhdGUpOworCW15ICRmaWxlX2NvbnRlbnQ7CisKKwlpZiAoJGZpbGVfbmFtZSBlcSBFTVBUWSkgeworCQlkaWUgIk1pc3NpbmcgZmlsZSBhcmd1bWVudCwgc2VlIGBnaXQgbXcgaGVscGBcbiI7CisJfQorCisJdl9wcmludCgiIyMjIFNlbGVjdGluZyByZW1vdGVcbiIpOworCWlmICgkcmVtb3RlX25hbWUgZXEgRU1QVFkpIHsKKwkJJHJlbW90ZV9uYW1lID0gZmluZF91cHN0cmVhbV9yZW1vdGVfbmFtZSgpOworCQlpZiAoJHJlbW90ZV9uYW1lKSB7CisJCQkkcmVtb3RlX3VybCA9IG1lZGlhd2lraV9yZW1vdGVfdXJsX21heWJlKCRyZW1vdGVfbmFtZSk7CisJCX0KKworCQlpZiAoISAkcmVtb3RlX3VybCkgeworCQkJbXkgQHZhbGlkX3JlbW90ZXMgPSBmaW5kX21lZGlhd2lraV9yZW1vdGVzKCk7CisKKwkJCWlmICgkI3ZhbGlkX3JlbW90ZXMgPT0gMCkgeworCQkJCXByaW50IHsqU1RERVJSfSAiTm8gbWVkaWF3aWtpIHJlbW90ZSBpbiB0aGlzIHJlcG8uIFxuIjsKKwkJCQlleGl0IDE7CisJCQl9IGVsc2UgeworCQkJCW15ICRyZW1vdGVzX2xpc3QgPSBqb2luKCJcblx0IiwgQHZhbGlkX3JlbW90ZXMpOworCQkJCXByaW50IHsqU1RERVJSfSA8PCJNRVNTQUdFIjsKK1RoZXJlIGFyZSBtdWx0aXBsZSBtZWRpYXdpa2kgcmVtb3Rlcywgd2hpY2ggb2Y6CisJJHtyZW1vdGVzX2xpc3R9CitkbyB5b3Ugd2FudCA/IFVzZSB0aGUgLXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHJlbW90ZS4KK01FU1NBR0UKKwkJCX0KKworCQkJZXhpdCAxOworCQl9CisJfSBlbHNlIHsKKwkJaWYgKCFpc192YWxpZF9yZW1vdGUoJHJlbW90ZV9uYW1lKSkgeworCQkJZGllICIke3JlbW90ZV9uYW1lfSBpcyBub3QgYSByZW1vdGVcbiI7CisJCX0KKworCQkkcmVtb3RlX3VybCA9IG1lZGlhd2lraV9yZW1vdGVfdXJsX21heWJlKCRyZW1vdGVfbmFtZSk7CisJCWlmICghICRyZW1vdGVfdXJsKSB7CisJCQlkaWUgIiR7cmVtb3RlX25hbWV9IGlzIG5vdCBhIG1lZGlhd2lraSByZW1vdGVcbiI7CisJCX0KKwl9CisJdl9wcmludCgic2VsZWN0ZWQgcmVtb3RlOlxuXHRuYW1lOiAke3JlbW90ZV9uYW1lfVxuXHR1cmw6ICR7cmVtb3RlX3VybH1cbiIpOworCisJJHdpa2kgPSBjb25uZWN0X21heWJlKCR3aWtpLCAkcmVtb3RlX25hbWUsICRyZW1vdGVfdXJsKTsKKworCSMgUmVhZCBmaWxlIGNvbnRlbnQKKwlpZiAoISAtZSAkZmlsZV9uYW1lKSB7CisJCSRmaWxlX2NvbnRlbnQgPSBnaXRfY21kX3RyeSB7CisJCQlHaXQ6OmNvbW1hbmQoJ2NhdC1maWxlJywgJ2Jsb2InLCAkZmlsZV9uYW1lKTsgfQorCQkJIiVzIGZhaWxlZCB3LyBjb2RlICVkIjsKKworCQlpZiAoJGZpbGVfbmFtZSA9fiAvKC4rKTooLispLykgeworCQkJJGZpbGVfbmFtZSA9ICQyOworCQl9CisJfSBlbHNlIHsKKwkJb3BlbiBteSAkcmVhZF9maCwgIjwiLCAkZmlsZV9uYW1lCisJCQlvciBkaWUgImNvdWxkIG5vdCBvcGVuICR7ZmlsZV9uYW1lfTogJCFcbiI7CisJCSRmaWxlX2NvbnRlbnQgPSBkbyB7IGxvY2FsICQvID0gdW5kZWY7IDwkcmVhZF9maD4gfTsKKwkJY2xvc2UgJHJlYWRfZmgKKwkJCW9yIGRpZSAidW5hYmxlIHRvIGNsb3NlOiAkIVxuIjsKKwl9CisKKwl2X3ByaW50KCIjIyMgUmV0cmlldmluZyB0ZW1wbGF0ZVxuIik7CisJKCR3aWtpX3BhZ2VfbmFtZSA9IGNsZWFuX2ZpbGVuYW1lKCRmaWxlX25hbWUpKSA9fiBzL1wuW14uXSskLy87CisJJHRlbXBsYXRlID0gZ2V0X3RlbXBsYXRlKCRyZW1vdGVfdXJsLCAkd2lraV9wYWdlX25hbWUpOworCisJdl9wcmludCgiIyMjIFBhcnNpbmcgbG9jYWwgY29udGVudFxuIik7CisJJG5ld19jb250ZW50ID0gJHdpa2ktPmFwaSh7CisJCWFjdGlvbiA9PiAncGFyc2UnLAorCQl0ZXh0ID0+ICRmaWxlX2NvbnRlbnQsCisJCXRpdGxlID0+ICR3aWtpX3BhZ2VfbmFtZQorCX0sIHsKKwkJc2tpcF9lbmNvZGluZyA9PiAxCisJfSkgb3IgZGllICJObyByZXNwb25zZSBmcm9tIHJlbW90ZSBtZWRpYXdpa2lcbiI7CisJJG5ld19jb250ZW50ID0gJG5ld19jb250ZW50LT57J3BhcnNlJ30tPnsndGV4dCd9LT57JyonfTsKKworCXZfcHJpbnQoIiMjIyBNZXJnaW5nIGNvbnRlbnRzXG4iKTsKKwlpZiAoJHByZXZpZXdfZmlsZV9uYW1lIGVxIEVNUFRZKSB7CisJCSgkcHJldmlld19maWxlX25hbWUgPSAkZmlsZV9uYW1lKSA9fiBzL1wuW14uXSskLy5odG1sLzsKKwl9CisJb3BlbihteSAkc2F2ZV9maCwgJz46ZW5jb2RpbmcoVVRGLTgpJywgJHByZXZpZXdfZmlsZV9uYW1lKQorCQlvciBkaWUgIkNvdWxkIG5vdCBvcGVuOiAkIVxuIjsKKwlwcmludCB7JHNhdmVfZmh9IG1lcmdlX2NvbnRlbnRzKCR0ZW1wbGF0ZSwgJG5ld19jb250ZW50LCAkcmVtb3RlX3VybCk7CisJY2xvc2UoJHNhdmVfZmgpCisJCW9yIGRpZSAiQ291bGQgbm90IGNsb3NlOiAkIVxuIjsKKworCXZfcHJpbnQoIiMjIyBSZXN1bHRzXG4iKTsKKwlpZiAoJGF1dG9sb2FkKSB7CisJCXZfcHJpbnQoIkxhdW5jaGluZyBicm93c2VyIHcvIGZpbGU6ICR7cHJldmlld19maWxlX25hbWV9Iik7CisJCXN5c3RlbSgnZ2l0JywgJ3dlYi0tYnJvd3NlJywgJHByZXZpZXdfZmlsZV9uYW1lKTsKKwl9IGVsc2UgeworCQlwcmludCB7KlNUREVSUn0gIlByZXZpZXcgZmlsZSBzYXZlZCBhczogJHtwcmV2aWV3X2ZpbGVfbmFtZX1cbiI7CisJfQorCisJZXhpdDsKK30KKworIyB1c2VzIGdsb2JhbCBzY29wZSB2YXJpYWJsZTogJHJlbW90ZV9uYW1lCitzdWIgbWVyZ2VfY29udGVudHMgeworCW15ICR0ZW1wbGF0ZSA9IHNoaWZ0OworCW15ICRjb250ZW50ID0gc2hpZnQ7CisJbXkgJHJlbW90ZV91cmwgPSBzaGlmdDsKKwlteSAoJGNvbnRlbnRfdHJlZSwgJGh0bWxfdHJlZSwgJG13X2NvbnRlbnRfdGV4dCk7CisJbXkgJHRlbXBsYXRlX2NvbnRlbnRfaWQgPSAnYm9keUNvbnRlbnQnOworCisJJGh0bWxfdHJlZSA9IEhUTUw6OlRyZWVCdWlsZGVyLT5uZXc7CisJJGh0bWxfdHJlZS0+cGFyc2UoJHRlbXBsYXRlKTsKKworCSRjb250ZW50X3RyZWUgPSBIVE1MOjpUcmVlQnVpbGRlci0+bmV3OworCSRjb250ZW50X3RyZWUtPnBhcnNlKCRjb250ZW50KTsKKworCSR0ZW1wbGF0ZV9jb250ZW50X2lkID0gR2l0Ojpjb25maWcoInJlbW90ZS4ke3JlbW90ZV9uYW1lfS5td0lEY29udGVudCIpCisJCXx8ICR0ZW1wbGF0ZV9jb250ZW50X2lkOworCXZfcHJpbnQoIlVzaW5nICcke3RlbXBsYXRlX2NvbnRlbnRfaWR9JyBhcyB0aGUgY29udGVudCBJRFxuIik7CisKKwkkbXdfY29udGVudF90ZXh0ID0gJGh0bWxfdHJlZS0+bG9va19kb3duKCdpZCcsICR0ZW1wbGF0ZV9jb250ZW50X2lkKTsKKwlpZiAoIWRlZmluZWQgJG13X2NvbnRlbnRfdGV4dCkgeworCQlwcmludCB7KlNUREVSUn0gPDwiQ09ORklHIjsKK0NvdWxkIG5vdCBjb21iaW5lIHRoZSBuZXcgY29udGVudCB3aXRoIHRoZSB0ZW1wbGF0ZS4gWW91IG1pZ2h0IHdhbnQgdG8KK2NvbmZpZ3VyZSBgbWVkaWF3aWtpLklEQ29udGVudGAgaW4geW91ciBjb25maWc6CisJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUuJHtyZW1vdGVfbmFtZX0ubXdJRGNvbnRlbnQgPGlkPgorYW5kIHJlLXJ1biB0aGUgY29tbWFuZCBhZnRlcndhcmQuCitDT05GSUcKKwkJZXhpdCAxOworCX0KKwkkbXdfY29udGVudF90ZXh0LT5kZWxldGVfY29udGVudCgpOworCSRtd19jb250ZW50X3RleHQtPnB1c2hfY29udGVudCgkY29udGVudF90cmVlKTsKKworCW1ha2VfbGlua3NfYWJzb2x1dGUoJGh0bWxfdHJlZSwgJHJlbW90ZV91cmwpOworCisJcmV0dXJuICRodG1sX3RyZWUtPmFzX0hUTUw7Cit9CisKK3N1YiBtYWtlX2xpbmtzX2Fic29sdXRlIHsKKwlteSAkaHRtbF90cmVlID0gc2hpZnQ7CisJbXkgJHJlbW90ZV91cmwgPSBzaGlmdDsKKwlmb3IgKEB7ICRodG1sX3RyZWUtPmV4dHJhY3RfbGlua3MoKSB9KSB7CisJCW15ICgkbGluaywgJGVsZW1lbnQsICRhdHRyKSA9IEB7ICRfIH07CisJCW15ICR1cmwgPSB1cmwoJGxpbmspLT5jYW5vbmljYWw7CisJCWlmICgkdXJsICF+IC8jLykgeworCQkJJGVsZW1lbnQtPmF0dHIoJGF0dHIsIFVSSS0+bmV3X2FicygkdXJsLCAkcmVtb3RlX3VybCkpOworCQl9CisJfQorCXJldHVybiAkaHRtbF90cmVlOworfQorCitzdWIgaXNfdmFsaWRfcmVtb3RlIHsKKwlteSAkcmVtb3RlID0gc2hpZnQ7CisJbXkgQHJlbW90ZXMgPSBnaXRfY21kX3RyeSB7CisJCUdpdDo6Y29tbWFuZCgncmVtb3RlJykgfQorCQkiJXMgZmFpbGVkIHcvIGNvZGUgJWQiOworCW15ICRmb3VuZF9yZW1vdGUgPSAwOworCWZvcmVhY2ggbXkgJHJlbW90ZSAoQHJlbW90ZXMpIHsKKwkJaWYgKCRyZW1vdGUgZXEgJHJlbW90ZSkgeworCQkJJGZvdW5kX3JlbW90ZSA9IDE7CisJCQlsYXN0OworCQl9CisJfQorCXJldHVybiAkZm91bmRfcmVtb3RlOworfQorCitzdWIgZmluZF9tZWRpYXdpa2lfcmVtb3RlcyB7CisJbXkgQHJlbW90ZXMgPSBnaXRfY21kX3RyeSB7CisJCUdpdDo6Y29tbWFuZCgncmVtb3RlJyk7IH0KKwkJIiVzIGZhaWxlZCB3LyBjb2RlICVkIjsKKwlteSAkcmVtb3RlX3VybDsKKwlteSBAdmFsaWRfcmVtb3RlcyA9ICgpOworCWZvcmVhY2ggbXkgJHJlbW90ZSAoQHJlbW90ZXMpIHsKKwkJJHJlbW90ZV91cmwgPSBtZWRpYXdpa2lfcmVtb3RlX3VybF9tYXliZSgkcmVtb3RlKTsKKwkJaWYgKCRyZW1vdGVfdXJsKSB7CisJCQlwdXNoKEB2YWxpZF9yZW1vdGVzLCAkcmVtb3RlKTsKKwkJfQorCX0KKwlyZXR1cm4gQHZhbGlkX3JlbW90ZXM7Cit9CisKK3N1YiBmaW5kX3Vwc3RyZWFtX3JlbW90ZV9uYW1lIHsKKwlteSAkY3VycmVudF9icmFuY2ggPSBnaXRfY21kX3RyeSB7CisJCUdpdDo6Y29tbWFuZF9vbmVsaW5lKCdzeW1ib2xpYy1yZWYnLCAnLS1zaG9ydCcsICdIRUFEJykgfQorCQkiJXMgZmFpbGVkIHcvIGNvZGUgJWQiOworCXJldHVybiBHaXQ6OmNvbmZpZygiYnJhbmNoLiR7Y3VycmVudF9icmFuY2h9LnJlbW90ZSIpOworfQorCitzdWIgbWVkaWF3aWtpX3JlbW90ZV91cmxfbWF5YmUgeworCW15ICRyZW1vdGUgPSBzaGlmdDsKKworCSMgRmluZCByZW1vdGUgdXJsCisJbXkgJHJlbW90ZV91cmwgPSBHaXQ6OmNvbmZpZygicmVtb3RlLiR7cmVtb3RlfS51cmwiKTsKKwlpZiAoJHJlbW90ZV91cmwgPX4gcy9tZWRpYXdpa2k6OiguKikvJDEvKSB7CisJCXJldHVybiB1cmwoJHJlbW90ZV91cmwpLT5jYW5vbmljYWw7CisJfQorCisJcmV0dXJuOworfQorCitzdWIgZ2V0X3RlbXBsYXRlIHsKKwlteSAkdXJsID0gc2hpZnQ7CisJbXkgJHBhZ2VfbmFtZSA9IHNoaWZ0OworCW15ICgkcmVxLCAkcmVzLCAkY29kZSwgJHVybF9hZnRlcik7CisKKwkkcmVxID0gTFdQOjpVc2VyQWdlbnQtPm5ldzsKKwlpZiAoJHZlcmJvc2UpIHsKKwkJJHJlcS0+c2hvd19wcm9ncmVzcygxKTsKKwl9CisKKwkkcmVzID0gJHJlcS0+Z2V0KCIke3VybH0vaW5kZXgucGhwP3RpdGxlPSR7cGFnZV9uYW1lfSIpOworCWlmICghJHJlcy0+aXNfc3VjY2VzcykgeworCQkkY29kZSA9ICRyZXMtPmNvZGU7CisJCSR1cmxfYWZ0ZXIgPSAkcmVzLT5yZXF1ZXN0KCktPnVyaSgpOyAjIHJlc29sdmUgYWxsIHJlZGlyZWN0aW9ucworCQlpZiAoJGNvZGUgPT0gSFRUUF9DT0RFX1BBR0VfTk9UX0ZPVU5EKSB7CisJCQlpZiAoJHZlcmJvc2UpIHsKKwkJCQlwcmludCB7KlNUREVSUn0gPDwiV0FSTklORyI7CitXYXJuaW5nOiBGYWlsZWQgdG8gcmV0cmlldmUgJyRwYWdlX25hbWUnLiBDcmVhdGUgaXQgb24gdGhlIG1lZGlhd2lraSBpZiB5b3Ugd2FudAorYWxsIHRoZSBsaW5rcyB0byB3b3JrIHByb3Blcmx5LgorVHJ5aW5nIHRvIHVzZSB0aGUgbWVkaWF3aWtpIGhvbWVwYWdlIGFzIGEgZmFsbGJhY2sgdGVtcGxhdGUgLi4uCitXQVJOSU5HCisJCQl9CisKKwkJCSMgTFdQIGF1dG9tYXRpY2FsbHkgcmVkaXJlY3RzIEdFVCByZXF1ZXN0CisJCQkkcmVzID0gJHJlcS0+Z2V0KCIke3VybH0vaW5kZXgucGhwIik7CisJCQlpZiAoISRyZXMtPmlzX3N1Y2Nlc3MpIHsKKwkJCQkkdXJsX2FmdGVyID0gJHJlcy0+cmVxdWVzdCgpLT51cmkoKTsgIyByZXNvbHZlIGFsbCByZWRpcmVjdGlvbnMKKwkJCQlkaWUgIkZhaWxlZCB0byBnZXQgaG9tZXBhZ2UgQCAke3VybF9hZnRlcn0gdy8gY29kZSAke2NvZGV9XG4iOworCQkJfQorCQl9IGVsc2UgeworCQkJZGllICJGYWlsZWQgdG8gZ2V0ICcke3BhZ2VfbmFtZX0nIEAgJHt1cmxfYWZ0ZXJ9IHcvIGNvZGUgJHtjb2RlfVxuIjsKKwkJfQorCX0KKworCXJldHVybiAkcmVzLT5kZWNvZGVkX2NvbnRlbnQ7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBIZWxwIEZ1bmN0aW9ucyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3N1YiBoZWxwIHsKKwlwcmludCB7KlNURE9VVH0gPDwnRU5EJzsKK3VzYWdlOiBnaXQgbXcgPGNvbW1hbmQ+IDxhcmdzPgorCitnaXQgbXcgY29tbWFuZHMgYXJlOgorICAgIGhlbHAgICAgICAgIERpc3BsYXkgaGVscCBpbmZvcm1hdGlvbiBhYm91dCBnaXQgbXcKKyAgICBwcmV2aWV3ICAgICBQYXJzZSBhbmQgcmVuZGVyIGxvY2FsIGZpbGUgaW50byBIVE1MCitFTkQKKwlleGl0OworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvZ2l0LXJlbW90ZS1tZWRpYXdpa2kucGVybCBiL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1yZW1vdGUtbWVkaWF3aWtpLnBlcmwKaW5kZXggOWMxNGMxZi4uODVkMGM0MiAxMDA3NTUKLS0tIGEvY29udHJpYi9tdy10by1naXQvZ2l0LXJlbW90ZS1tZWRpYXdpa2kucGVybAorKysgYi9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraS5wZXJsCkBAIC0xMywxOSArMTMsMTcgQEAKIAogdXNlIHN0cmljdDsKIHVzZSBNZWRpYVdpa2k6OkFQSTsKK3VzZSBHaXQ7Cit1c2UgR2l0OjpNZWRpYXdpa2kgcXcoY2xlYW5fZmlsZW5hbWUgc211ZGdlX2ZpbGVuYW1lIGNvbm5lY3RfbWF5YmUKKwkJCQkJRU1QVFkgSFRUUF9DT0RFX09LKTsKIHVzZSBEYXRlVGltZTo6Rm9ybWF0OjpJU084NjAxOwotCi0jIEJ5IGRlZmF1bHQsIHVzZSBVVEYtOCB0byBjb21tdW5pY2F0ZSB3aXRoIEdpdCBhbmQgdGhlIHVzZXIKLWJpbm1vZGUgU1RERVJSLCAiOnV0ZjgiOwotYmlubW9kZSBTVERPVVQsICI6dXRmOCI7Ci0KLXVzZSBVUkk6OkVzY2FwZTsKLXVzZSBJUEM6Ok9wZW4yOwotCiB1c2Ugd2FybmluZ3M7CiAKLSMgTWVkaWF3aWtpIGZpbGVuYW1lcyBjYW4gY29udGFpbiBmb3J3YXJkIHNsYXNoZXMuIFRoaXMgdmFyaWFibGUgZGVjaWRlcyBieSB3aGljaCBwYXR0ZXJuIHRoZXkgc2hvdWxkIGJlIHJlcGxhY2VkCi11c2UgY29uc3RhbnQgU0xBU0hfUkVQTEFDRU1FTlQgPT4gIiUyRiI7CisjIEJ5IGRlZmF1bHQsIHVzZSBVVEYtOCB0byBjb21tdW5pY2F0ZSB3aXRoIEdpdCBhbmQgdGhlIHVzZXIKK2Jpbm1vZGUgU1RERVJSLCAnOmVuY29kaW5nKFVURi04KSc7CitiaW5tb2RlIFNURE9VVCwgJzplbmNvZGluZyhVVEYtOCknOworCit1c2UgVVJJOjpFc2NhcGU7CiAKICMgSXQncyBub3QgYWx3YXlzIHBvc3NpYmxlIHRvIGRlbGV0ZSBwYWdlcyAobWF5IHJlcXVpcmUgc29tZQogIyBwcml2aWxlZ2VzKS4gRGVsZXRlZCBwYWdlcyBhcmUgcmVwbGFjZWQgd2l0aCB0aGlzIGNvbnRlbnQuCkBAIC0zNiw0NSArMzQsNTcgQEAKIHVzZSBjb25zdGFudCBFTVBUWV9DT05URU5UID0+ICI8IS0tIGVtcHR5IHBhZ2UgLS0+XG4iOwogCiAjIHVzZWQgdG8gcmVmbGVjdCBmaWxlIGNyZWF0aW9uIG9yIGRlbGV0aW9uIGluIGRpZmYuCi11c2UgY29uc3RhbnQgTlVMTF9TSEExID0+ICIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIjsKK3VzZSBjb25zdGFudCBOVUxMX1NIQTEgPT4gJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOwogCiAjIFVzZWQgb24gR2l0J3Mgc2lkZSB0byByZWZsZWN0IGVtcHR5IGVkaXQgbWVzc2FnZXMgb24gdGhlIHdpa2kKIHVzZSBjb25zdGFudCBFTVBUWV9NRVNTQUdFID0+ICcqRW1wdHkgTWVkaWFXaWtpIE1lc3NhZ2UqJzsKIAorIyBOdW1iZXIgb2YgcGFnZXMgdGFrZW4gaW50byBhY2NvdW50IGF0IG9uY2UgaW4gc3VibW9kdWxlIGdldF9td19wYWdlX2xpc3QKK3VzZSBjb25zdGFudCBTTElDRV9TSVpFID0+IDUwOworCisjIE51bWJlciBvZiBsaW5rZWQgbWVkaWFmaWxlIHRvIGdldCBhdCBvbmNlIGluIGdldF9saW5rZWRfbWVkaWFmaWxlcworIyBUaGUgcXVlcnkgaXMgc3BsaXQgaW4gc21hbGwgYmF0Y2hlcyBiZWNhdXNlIG9mIHRoZSBNVyBBUEkgbGltaXQgb2YKKyMgdGhlIG51bWJlciBvZiBsaW5rcyB0byBiZSByZXR1cm5lZCAoNTAwIGxpbmtzIG1heCkuCit1c2UgY29uc3RhbnQgQkFUQ0hfU0laRSA9PiAxMDsKKworaWYgKEBBUkdWICE9IDIpIHsKKwlleGl0X2Vycm9yX3VzYWdlKCk7Cit9CisKIG15ICRyZW1vdGVuYW1lID0gJEFSR1ZbMF07CiBteSAkdXJsID0gJEFSR1ZbMV07CiAKICMgQWNjZXB0IGJvdGggc3BhY2Utc2VwYXJhdGVkIGFuZCBtdWx0aXBsZSBrZXlzIGluIGNvbmZpZyBmaWxlLgogIyBTcGFjZXMgc2hvdWxkIGJlIHdyaXR0ZW4gYXMgXyBhbnl3YXkgYmVjYXVzZSB3ZSdsbCB1c2UgY2hvbXAuCi1teSBAdHJhY2tlZF9wYWdlcyA9IHNwbGl0KC9bIFxuXS8sIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLnBhZ2VzIikpOworbXkgQHRyYWNrZWRfcGFnZXMgPSBzcGxpdCgvWyBcbl0vLCBydW5fZ2l0KCJjb25maWcgLS1nZXQtYWxsIHJlbW90ZS4ke3JlbW90ZW5hbWV9LnBhZ2VzIikpOwogY2hvbXAoQHRyYWNrZWRfcGFnZXMpOwogCiAjIEp1c3QgbGlrZSBAdHJhY2tlZF9wYWdlcywgYnV0IGZvciBNZWRpYVdpa2kgY2F0ZWdvcmllcy4KLW15IEB0cmFja2VkX2NhdGVnb3JpZXMgPSBzcGxpdCgvWyBcbl0vLCBydW5fZ2l0KCJjb25maWcgLS1nZXQtYWxsIHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5jYXRlZ29yaWVzIikpOworbXkgQHRyYWNrZWRfY2F0ZWdvcmllcyA9IHNwbGl0KC9bIFxuXS8sIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiR7cmVtb3RlbmFtZX0uY2F0ZWdvcmllcyIpKTsKIGNob21wKEB0cmFja2VkX2NhdGVnb3JpZXMpOwogCiAjIEltcG9ydCBtZWRpYSBmaWxlcyBvbiBwdWxsCi1teSAkaW1wb3J0X21lZGlhID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IC0tYm9vbCByZW1vdGUuIi4gJHJlbW90ZW5hbWUgLiIubWVkaWFpbXBvcnQiKTsKK215ICRpbXBvcnRfbWVkaWEgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4ke3JlbW90ZW5hbWV9Lm1lZGlhaW1wb3J0Iik7CiBjaG9tcCgkaW1wb3J0X21lZGlhKTsKLSRpbXBvcnRfbWVkaWEgPSAoJGltcG9ydF9tZWRpYSBlcSAidHJ1ZSIpOworJGltcG9ydF9tZWRpYSA9ICgkaW1wb3J0X21lZGlhIGVxICd0cnVlJyk7CiAKICMgRXhwb3J0IG1lZGlhIGZpbGVzIG9uIHB1c2gKLW15ICRleHBvcnRfbWVkaWEgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5tZWRpYWV4cG9ydCIpOworbXkgJGV4cG9ydF9tZWRpYSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiR7cmVtb3RlbmFtZX0ubWVkaWFleHBvcnQiKTsKIGNob21wKCRleHBvcnRfbWVkaWEpOwotJGV4cG9ydF9tZWRpYSA9ICEoJGV4cG9ydF9tZWRpYSBlcSAiZmFsc2UiKTsKKyRleHBvcnRfbWVkaWEgPSAhKCRleHBvcnRfbWVkaWEgZXEgJ2ZhbHNlJyk7CiAKLW15ICR3aWtpX2xvZ2luID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5td0xvZ2luIik7CitteSAkd2lraV9sb2dpbiA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuJHtyZW1vdGVuYW1lfS5td0xvZ2luIik7CiAjIE5vdGU6IG13UGFzc3dvcmQgaXMgZGlzY291cnJhZ2VkLiBVc2UgdGhlIGNyZWRlbnRpYWwgc3lzdGVtIGluc3RlYWQuCi1teSAkd2lraV9wYXNzd2QgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgcmVtb3RlLiIuICRyZW1vdGVuYW1lIC4iLm13UGFzc3dvcmQiKTsKLW15ICR3aWtpX2RvbWFpbiA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuIi4gJHJlbW90ZW5hbWUgLiIubXdEb21haW4iKTsKK215ICR3aWtpX3Bhc3N3ZCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuJHtyZW1vdGVuYW1lfS5td1Bhc3N3b3JkIik7CitteSAkd2lraV9kb21haW4gPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgcmVtb3RlLiR7cmVtb3RlbmFtZX0ubXdEb21haW4iKTsKIGNob21wKCR3aWtpX2xvZ2luKTsKIGNob21wKCR3aWtpX3Bhc3N3ZCk7CiBjaG9tcCgkd2lraV9kb21haW4pOwogCiAjIEltcG9ydCBvbmx5IGxhc3QgcmV2aXNpb25zIChib3RoIGZvciBjbG9uZSBhbmQgZmV0Y2gpCi1teSAkc2hhbGxvd19pbXBvcnQgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4iLiAkcmVtb3RlbmFtZSAuIi5zaGFsbG93Iik7CitteSAkc2hhbGxvd19pbXBvcnQgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4ke3JlbW90ZW5hbWV9LnNoYWxsb3ciKTsKIGNob21wKCRzaGFsbG93X2ltcG9ydCk7Ci0kc2hhbGxvd19pbXBvcnQgPSAoJHNoYWxsb3dfaW1wb3J0IGVxICJ0cnVlIik7Ciskc2hhbGxvd19pbXBvcnQgPSAoJHNoYWxsb3dfaW1wb3J0IGVxICd0cnVlJyk7CiAKICMgRmV0Y2ggKGNsb25lIGFuZCBwdWxsKSBieSByZXZpc2lvbnMgaW5zdGVhZCBvZiBieSBwYWdlcy4gVGhpcyBiZWhhdmlvcgogIyBpcyBtb3JlIGVmZmljaWVudCB3aGVuIHdlIGhhdmUgYSB3aWtpIHdpdGggbG90cyBvZiBwYWdlcyBhbmQgd2UgZmV0Y2gKQEAgLTgyLDE1ICs5MiwxOCBAQAogIyBQb3NzaWJsZSB2YWx1ZXM6CiAjIC0gYnlfcmV2OiBwZXJmb3JtIG9uZSBxdWVyeSBwZXIgbmV3IHJldmlzaW9uIG9uIHRoZSByZW1vdGUgd2lraQogIyAtIGJ5X3BhZ2U6IHF1ZXJ5IGVhY2ggdHJhY2tlZCBwYWdlIGZvciBuZXcgcmV2aXNpb24KLW15ICRmZXRjaF9zdHJhdGVneSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuJHJlbW90ZW5hbWUuZmV0Y2hTdHJhdGVneSIpOwotdW5sZXNzICgkZmV0Y2hfc3RyYXRlZ3kpIHsKLQkkZmV0Y2hfc3RyYXRlZ3kgPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgbWVkaWF3aWtpLmZldGNoU3RyYXRlZ3kiKTsKK215ICRmZXRjaF9zdHJhdGVneSA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCByZW1vdGUuJHtyZW1vdGVuYW1lfS5mZXRjaFN0cmF0ZWd5Iik7CitpZiAoISRmZXRjaF9zdHJhdGVneSkgeworCSRmZXRjaF9zdHJhdGVneSA9IHJ1bl9naXQoJ2NvbmZpZyAtLWdldCBtZWRpYXdpa2kuZmV0Y2hTdHJhdGVneScpOwogfQogY2hvbXAoJGZldGNoX3N0cmF0ZWd5KTsKLXVubGVzcyAoJGZldGNoX3N0cmF0ZWd5KSB7Ci0JJGZldGNoX3N0cmF0ZWd5ID0gImJ5X3BhZ2UiOworaWYgKCEkZmV0Y2hfc3RyYXRlZ3kpIHsKKwkkZmV0Y2hfc3RyYXRlZ3kgPSAnYnlfcGFnZSc7CiB9CiAKKyMgUmVtZW1iZXIgdGhlIHRpbWVzdGFtcCBjb3JyZXNwb25kaW5nIHRvIGEgcmV2aXNpb24gaWQuCitteSAlYmFzZXRpbWVzdGFtcHM7CisKICMgRHVtYiBwdXNoOiBkb24ndCB1cGRhdGUgbm90ZXMgYW5kIG1lZGlhd2lraSByZWYgdG8gcmVmbGVjdCB0aGUgbGFzdCBwdXNoLgogIwogIyBDb25maWd1cmFibGUgd2l0aCBtZWRpYXdpa2kuZHVtYlB1c2gsIG9yIHBlci1yZW1vdGUgd2l0aApAQCAtMTA1LDQ4ICsxMTgsMjUgQEAKICMgd2lsbCBnZXQgdGhlIGhpc3Rvcnkgd2l0aCBpbmZvcm1hdGlvbiBsb3N0KS4gSWYgdGhlIGltcG9ydCBpcwogIyBkZXRlcm1pbmlzdGljLCB0aGlzIG1lYW5zIGV2ZXJ5Ym9keSBnZXRzIHRoZSBzYW1lIHNoYTEgZm9yIGVhY2gKICMgTWVkaWFXaWtpIHJldmlzaW9uLgotbXkgJGR1bWJfcHVzaCA9IHJ1bl9naXQoImNvbmZpZyAtLWdldCAtLWJvb2wgcmVtb3RlLiRyZW1vdGVuYW1lLmR1bWJQdXNoIik7Ci11bmxlc3MgKCRkdW1iX3B1c2gpIHsKLQkkZHVtYl9wdXNoID0gcnVuX2dpdCgiY29uZmlnIC0tZ2V0IC0tYm9vbCBtZWRpYXdpa2kuZHVtYlB1c2giKTsKK215ICRkdW1iX3B1c2ggPSBydW5fZ2l0KCJjb25maWcgLS1nZXQgLS1ib29sIHJlbW90ZS4ke3JlbW90ZW5hbWV9LmR1bWJQdXNoIik7CitpZiAoISRkdW1iX3B1c2gpIHsKKwkkZHVtYl9wdXNoID0gcnVuX2dpdCgnY29uZmlnIC0tZ2V0IC0tYm9vbCBtZWRpYXdpa2kuZHVtYlB1c2gnKTsKIH0KIGNob21wKCRkdW1iX3B1c2gpOwotJGR1bWJfcHVzaCA9ICgkZHVtYl9wdXNoIGVxICJ0cnVlIik7CiskZHVtYl9wdXNoID0gKCRkdW1iX3B1c2ggZXEgJ3RydWUnKTsKIAogbXkgJHdpa2lfbmFtZSA9ICR1cmw7Ci0kd2lraV9uYW1lID1+IHMvW15cL10qOlwvXC8vLzsKKyR3aWtpX25hbWUgPX4gc3tbXi9dKjovL317fTsKICMgSWYgVVJMIGlzIGxpa2UgaHR0cDovL3VzZXI6cGFzc3dvcmRAZXhhbXBsZS5jb20vLCB3ZSBjbGVhcmx5IGRvbid0CiAjIHdhbnQgdGhlIHBhc3N3b3JkIGluICR3aWtpX25hbWUuIFdoaWxlIHdlJ3JlIHRoZXJlLCBhbHNvIHJlbW92ZSB1c2VyCiAjIGFuZCAnQCcgc2lnbiwgdG8gYXZvaWQgYXV0aG9yIGxpa2UgTVdVc2VyQEhUVFBVc2VyQGhvc3QuY29tCiAkd2lraV9uYW1lID1+IHMvXi4qQC8vOwogCiAjIENvbW1hbmRzIHBhcnNlcgotbXkgJGVudHJ5OwotbXkgQGNtZDsKIHdoaWxlICg8U1RESU4+KSB7CiAJY2hvbXA7Ci0JQGNtZCA9IHNwbGl0KC8gLyk7Ci0JaWYgKGRlZmluZWQoJGNtZFswXSkpIHsKLQkJIyBMaW5lIG5vdCBibGFuawotCQlpZiAoJGNtZFswXSBlcSAiY2FwYWJpbGl0aWVzIikgewotCQkJZGllKCJUb28gbWFueSBhcmd1bWVudHMgZm9yIGNhcGFiaWxpdGllcyIpIHVubGVzcyAoIWRlZmluZWQoJGNtZFsxXSkpOwotCQkJbXdfY2FwYWJpbGl0aWVzKCk7Ci0JCX0gZWxzaWYgKCRjbWRbMF0gZXEgImxpc3QiKSB7Ci0JCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3IgbGlzdCIpIHVubGVzcyAoIWRlZmluZWQoJGNtZFsyXSkpOwotCQkJbXdfbGlzdCgkY21kWzFdKTsKLQkJfSBlbHNpZiAoJGNtZFswXSBlcSAiaW1wb3J0IikgewotCQkJZGllKCJJbnZhbGlkIGFyZ3VtZW50cyBmb3IgaW1wb3J0IikgdW5sZXNzICgkY21kWzFdIG5lICIiICYmICFkZWZpbmVkKCRjbWRbMl0pKTsKLQkJCW13X2ltcG9ydCgkY21kWzFdKTsKLQkJfSBlbHNpZiAoJGNtZFswXSBlcSAib3B0aW9uIikgewotCQkJZGllKCJUb28gbWFueSBhcmd1bWVudHMgZm9yIG9wdGlvbiIpIHVubGVzcyAoJGNtZFsxXSBuZSAiIiAmJiAkY21kWzJdIG5lICIiICYmICFkZWZpbmVkKCRjbWRbM10pKTsKLQkJCW13X29wdGlvbigkY21kWzFdLCRjbWRbMl0pOwotCQl9IGVsc2lmICgkY21kWzBdIGVxICJwdXNoIikgewotCQkJbXdfcHVzaCgkY21kWzFdKTsKLQkJfSBlbHNlIHsKLQkJCXByaW50IFNUREVSUiAiVW5rbm93biBjb21tYW5kLiBBYm9ydGluZy4uLlxuIjsKLQkJCWxhc3Q7Ci0JCX0KLQl9IGVsc2UgewotCQkjIGJsYW5rIGxpbmU6IHdlIHNob3VsZCB0ZXJtaW5hdGUKKworCWlmICghcGFyc2VfY29tbWFuZCgkXykpIHsKIAkJbGFzdDsKIAl9CiAKQEAgLTE1NiwxMDcgKzE0Niw5MSBAQAogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBGdW5jdGlvbnMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLSMjIGNyZWRlbnRpYWwgQVBJIG1hbmFnZW1lbnQgKGdlbmVyaWMgZnVuY3Rpb25zKQotCi1zdWIgY3JlZGVudGlhbF9yZWFkIHsKLQlteSAlY3JlZGVudGlhbDsKLQlteSAkcmVhZGVyID0gc2hpZnQ7Ci0JbXkgJG9wID0gc2hpZnQ7Ci0Jd2hpbGUgKDwkcmVhZGVyPikgewotCQlteSAoJGtleSwgJHZhbHVlKSA9IC8oW149XSopPSguKikvOwotCQlpZiAobm90IGRlZmluZWQgJGtleSkgewotCQkJZGllICJFUlJPUiByZWNlaXZpbmcgcmVzcG9uc2UgZnJvbSBnaXQgY3JlZGVudGlhbCAkb3A6XG4kX1xuIjsKLQkJfQotCQkkY3JlZGVudGlhbHska2V5fSA9ICR2YWx1ZTsKLQl9Ci0JcmV0dXJuICVjcmVkZW50aWFsOworIyMgZXJyb3IgaGFuZGxpbmcKK3N1YiBleGl0X2Vycm9yX3VzYWdlIHsKKwlkaWUgIkVSUk9SOiBnaXQtcmVtb3RlLW1lZGlhd2lraSBtb2R1bGUgd2FzIG5vdCBjYWxsZWQgd2l0aCBhIGNvcnJlY3QgbnVtYmVyIG9mXG4iIC4KKwkgICAgInBhcmFtZXRlcnNcbiIgLgorCSAgICAiWW91IG1heSBvYnRhaW4gdGhpcyBlcnJvciBiZWNhdXNlIHlvdSBhdHRlbXB0ZWQgdG8gcnVuIHRoZSBnaXQtcmVtb3RlLW1lZGlhd2lraVxuIiAuCisgICAgICAgICAgICAibW9kdWxlIGRpcmVjdGx5LlxuIiAuCisJICAgICJUaGlzIG1vZHVsZSBjYW4gYmUgdXNlZCB0aGUgZm9sbG93aW5nIHdheTpcbiIgLgorCSAgICAiXHRnaXQgY2xvbmUgbWVkaWF3aWtpOi8vPGFkZHJlc3Mgb2YgYSBtZWRpYXdpa2k+XG4iIC4KKwkgICAgIlRoZW4sIHVzZSBnaXQgY29tbWl0LCBwdXNoIGFuZCBwdWxsIGFzIHdpdGggZXZlcnkgbm9ybWFsIGdpdCByZXBvc2l0b3J5LlxuIjsKIH0KIAotc3ViIGNyZWRlbnRpYWxfd3JpdGUgewotCW15ICRjcmVkZW50aWFsID0gc2hpZnQ7Ci0JbXkgJHdyaXRlciA9IHNoaWZ0OwotCSMgdXJsIG92ZXJ3cml0ZXMgb3RoZXIgZmllbGRzLCBzbyBpdCBtdXN0IGNvbWUgZmlyc3QKLQlwcmludCAkd3JpdGVyICJ1cmw9JGNyZWRlbnRpYWwtPnt1cmx9XG4iIGlmIGV4aXN0cyAkY3JlZGVudGlhbC0+e3VybH07Ci0Jd2hpbGUgKG15ICgka2V5LCAkdmFsdWUpID0gZWFjaCglJGNyZWRlbnRpYWwpICkgewotCQlpZiAobGVuZ3RoICR2YWx1ZSAmJiAka2V5IG5lICd1cmwnKSB7Ci0JCQlwcmludCAkd3JpdGVyICIka2V5PSR2YWx1ZVxuIjsKLQkJfQorc3ViIHBhcnNlX2NvbW1hbmQgeworCW15ICgkbGluZSkgPSBAXzsKKwlteSBAY21kID0gc3BsaXQoLyAvLCAkbGluZSk7CisJaWYgKCFkZWZpbmVkICRjbWRbMF0pIHsKKwkJcmV0dXJuIDA7CiAJfQotfQotCi1zdWIgY3JlZGVudGlhbF9ydW4gewotCW15ICRvcCA9IHNoaWZ0OwotCW15ICRjcmVkZW50aWFsID0gc2hpZnQ7Ci0JbXkgJHBpZCA9IG9wZW4yKG15ICRyZWFkZXIsIG15ICR3cml0ZXIsICJnaXQgY3JlZGVudGlhbCAkb3AiKTsKLQljcmVkZW50aWFsX3dyaXRlKCRjcmVkZW50aWFsLCAkd3JpdGVyKTsKLQlwcmludCAkd3JpdGVyICJcbiI7Ci0JY2xvc2UoJHdyaXRlcik7Ci0KLQlpZiAoJG9wIGVxICJmaWxsIikgewotCQklJGNyZWRlbnRpYWwgPSBjcmVkZW50aWFsX3JlYWQoJHJlYWRlciwgJG9wKTsKKwlpZiAoJGNtZFswXSBlcSAnY2FwYWJpbGl0aWVzJykgeworCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3IgY2FwYWJpbGl0aWVzXG4iKQorCQkgICAgaWYgKGRlZmluZWQoJGNtZFsxXSkpOworCQltd19jYXBhYmlsaXRpZXMoKTsKKwl9IGVsc2lmICgkY21kWzBdIGVxICdsaXN0JykgeworCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3IgbGlzdFxuIikgaWYgKGRlZmluZWQoJGNtZFsyXSkpOworCQltd19saXN0KCRjbWRbMV0pOworCX0gZWxzaWYgKCRjbWRbMF0gZXEgJ2ltcG9ydCcpIHsKKwkJZGllKCJJbnZhbGlkIGFyZ3VtZW50IGZvciBpbXBvcnRcbiIpCisJCSAgICBpZiAoJGNtZFsxXSBlcSBFTVBUWSk7CisJCWRpZSgiVG9vIG1hbnkgYXJndW1lbnRzIGZvciBpbXBvcnRcbiIpCisJCSAgICBpZiAoZGVmaW5lZCgkY21kWzJdKSk7CisJCW13X2ltcG9ydCgkY21kWzFdKTsKKwl9IGVsc2lmICgkY21kWzBdIGVxICdvcHRpb24nKSB7CisJCWRpZSgiSW52YWxpZCBhcmd1bWVudHMgZm9yIG9wdGlvblxuIikKKwkJICAgIGlmICgkY21kWzFdIGVxIEVNUFRZIHx8ICRjbWRbMl0gZXEgRU1QVFkpOworCQlkaWUoIlRvbyBtYW55IGFyZ3VtZW50cyBmb3Igb3B0aW9uXG4iKQorCQkgICAgaWYgKGRlZmluZWQoJGNtZFszXSkpOworCQltd19vcHRpb24oJGNtZFsxXSwkY21kWzJdKTsKKwl9IGVsc2lmICgkY21kWzBdIGVxICdwdXNoJykgeworCQltd19wdXNoKCRjbWRbMV0pOwogCX0gZWxzZSB7Ci0JCWlmICg8JHJlYWRlcj4pIHsKLQkJCWRpZSAiRVJST1Igd2hpbGUgcnVubmluZyBnaXQgY3JlZGVudGlhbCAkb3A6XG4kXyI7Ci0JCX0KKwkJcHJpbnQgeypTVERFUlJ9ICJVbmtub3duIGNvbW1hbmQuIEFib3J0aW5nLi4uXG4iOworCQlyZXR1cm4gMDsKIAl9Ci0JY2xvc2UoJHJlYWRlcik7Ci0Jd2FpdHBpZCgkcGlkLCAwKTsKLQlteSAkY2hpbGRfZXhpdF9zdGF0dXMgPSAkPyA+PiA4OwotCWlmICgkY2hpbGRfZXhpdF9zdGF0dXMgIT0gMCkgewotCQlkaWUgIidnaXQgY3JlZGVudGlhbCAkb3AnIGZhaWxlZCB3aXRoIGNvZGUgJGNoaWxkX2V4aXRfc3RhdHVzLiI7Ci0JfQorCXJldHVybiAxOwogfQogCiAjIE1lZGlhV2lraSBBUEkgaW5zdGFuY2UsIGNyZWF0ZWQgbGF6aWx5LgogbXkgJG1lZGlhd2lraTsKIAotc3ViIG13X2Nvbm5lY3RfbWF5YmUgewotCWlmICgkbWVkaWF3aWtpKSB7Ci0JCXJldHVybjsKK3N1YiBmYXRhbF9td19lcnJvciB7CisJbXkgJGFjdGlvbiA9IHNoaWZ0OworCXByaW50IFNUREVSUiAiZmF0YWw6IGNvdWxkIG5vdCAkYWN0aW9uLlxuIjsKKwlwcmludCBTVERFUlIgImZhdGFsOiAnJHVybCcgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgbWVkaWF3aWtpXG4iOworCWlmICgkdXJsID1+IC9eaHR0cHMvKSB7CisJCXByaW50IFNUREVSUiAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2VcbiI7CisJCXByaW50IFNUREVSUiAiZmF0YWw6IGFuZCB0aGUgU1NMIGNlcnRpZmljYXRlIGlzIGNvcnJlY3QuXG4iOworCX0gZWxzZSB7CisJCXByaW50IFNUREVSUiAiZmF0YWw6IG1ha2Ugc3VyZSAnJHVybC9hcGkucGhwJyBpcyBhIHZhbGlkIHBhZ2UuXG4iOwogCX0KLQkkbWVkaWF3aWtpID0gTWVkaWFXaWtpOjpBUEktPm5ldzsKLQkkbWVkaWF3aWtpLT57Y29uZmlnfS0+e2FwaV91cmx9ID0gIiR1cmwvYXBpLnBocCI7Ci0JaWYgKCR3aWtpX2xvZ2luKSB7Ci0JCW15ICVjcmVkZW50aWFsID0gKHVybCA9PiAkdXJsKTsKLQkJJGNyZWRlbnRpYWx7dXNlcm5hbWV9ID0gJHdpa2lfbG9naW47Ci0JCSRjcmVkZW50aWFse3Bhc3N3b3JkfSA9ICR3aWtpX3Bhc3N3ZDsKLQkJY3JlZGVudGlhbF9ydW4oImZpbGwiLCBcJWNyZWRlbnRpYWwpOwotCQlteSAkcmVxdWVzdCA9IHtsZ25hbWUgPT4gJGNyZWRlbnRpYWx7dXNlcm5hbWV9LAotCQkJICAgICAgIGxncGFzc3dvcmQgPT4gJGNyZWRlbnRpYWx7cGFzc3dvcmR9LAotCQkJICAgICAgIGxnZG9tYWluID0+ICR3aWtpX2RvbWFpbn07Ci0JCWlmICgkbWVkaWF3aWtpLT5sb2dpbigkcmVxdWVzdCkpIHsKLQkJCWNyZWRlbnRpYWxfcnVuKCJhcHByb3ZlIiwgXCVjcmVkZW50aWFsKTsKLQkJCXByaW50IFNUREVSUiAiTG9nZ2VkIGluIG1lZGlhd2lraSB1c2VyIFwiJGNyZWRlbnRpYWx7dXNlcm5hbWV9XCIuXG4iOwotCQl9IGVsc2UgewotCQkJcHJpbnQgU1RERVJSICJGYWlsZWQgdG8gbG9nIGluIG1lZGlhd2lraSB1c2VyIFwiJGNyZWRlbnRpYWx7dXNlcm5hbWV9XCIgb24gJHVybFxuIjsKLQkJCXByaW50IFNUREVSUiAiICAoZXJyb3IgIiAuCi0JCQkJJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4gJzogJyAuCi0JCQkJJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9IC4gIilcbiI7Ci0JCQljcmVkZW50aWFsX3J1bigicmVqZWN0IiwgXCVjcmVkZW50aWFsKTsKLQkJCWV4aXQgMTsKLQkJfQotCX0KKwlwcmludCBTVERFUlIgImZhdGFsOiAoZXJyb3IgIiAuCisJICAgICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuICc6ICcgLgorCSAgICAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLiAiKVxuIjsKKwlleGl0IDE7CiB9CiAKICMjIEZ1bmN0aW9ucyBmb3IgbGlzdGluZyBwYWdlcyBvbiB0aGUgcmVtb3RlIHdpa2kKIHN1YiBnZXRfbXdfdHJhY2tlZF9wYWdlcyB7CiAJbXkgJHBhZ2VzID0gc2hpZnQ7CiAJZ2V0X213X3BhZ2VfbGlzdChcQHRyYWNrZWRfcGFnZXMsICRwYWdlcyk7CisJcmV0dXJuOwogfQogCiBzdWIgZ2V0X213X3BhZ2VfbGlzdCB7CiAJbXkgJHBhZ2VfbGlzdCA9IHNoaWZ0OwogCW15ICRwYWdlcyA9IHNoaWZ0OwotCW15IEBzb21lX3BhZ2VzID0gQCRwYWdlX2xpc3Q7CisJbXkgQHNvbWVfcGFnZXMgPSBAeyRwYWdlX2xpc3R9OwogCXdoaWxlIChAc29tZV9wYWdlcykgewotCQlteSAkbGFzdCA9IDUwOwotCQlpZiAoJCNzb21lX3BhZ2VzIDwgJGxhc3QpIHsKLQkJCSRsYXN0ID0gJCNzb21lX3BhZ2VzOworCQlteSAkbGFzdF9wYWdlID0gU0xJQ0VfU0laRTsKKwkJaWYgKCQjc29tZV9wYWdlcyA8ICRsYXN0X3BhZ2UpIHsKKwkJCSRsYXN0X3BhZ2UgPSAkI3NvbWVfcGFnZXM7CiAJCX0KLQkJbXkgQHNsaWNlID0gQHNvbWVfcGFnZXNbMC4uJGxhc3RdOworCQlteSBAc2xpY2UgPSBAc29tZV9wYWdlc1swLi4kbGFzdF9wYWdlXTsKIAkJZ2V0X213X2ZpcnN0X3BhZ2VzKFxAc2xpY2UsICRwYWdlcyk7Ci0JCUBzb21lX3BhZ2VzID0gQHNvbWVfcGFnZXNbNTEuLiQjc29tZV9wYWdlc107CisJCUBzb21lX3BhZ2VzID0gQHNvbWVfcGFnZXNbKFNMSUNFX1NJWkUgKyAxKS4uJCNzb21lX3BhZ2VzXTsKIAl9CisJcmV0dXJuOwogfQogCiBzdWIgZ2V0X213X3RyYWNrZWRfY2F0ZWdvcmllcyB7CkBAIC0yNjYsNyArMjQwLDcgQEAKIAkJCSMgTWVkaWF3aWtpIHJlcXVpcmVzIHRoZSBDYXRlZ29yeQogCQkJIyBwcmVmaXgsIGJ1dCBsZXQncyBub3QgZm9yY2UgdGhlIHVzZXIKIAkJCSMgdG8gc3BlY2lmeSBpdC4KLQkJCSRjYXRlZ29yeSA9ICJDYXRlZ29yeToiIC4gJGNhdGVnb3J5OworCQkJJGNhdGVnb3J5ID0gIkNhdGVnb3J5OiR7Y2F0ZWdvcnl9IjsKIAkJfQogCQlteSAkbXdfcGFnZXMgPSAkbWVkaWF3aWtpLT5saXN0KCB7CiAJCQlhY3Rpb24gPT4gJ3F1ZXJ5JywKQEAgLTI3NCwxMSArMjQ4LDEyIEBACiAJCQljbXRpdGxlID0+ICRjYXRlZ29yeSwKIAkJCWNtbGltaXQgPT4gJ21heCcgfSApCiAJCQl8fCBkaWUgJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9IC4gJzogJwotCQkJCS4gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9OworCQkJCS4gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9IC4gIlxuIjsKIAkJZm9yZWFjaCBteSAkcGFnZSAoQHskbXdfcGFnZXN9KSB7CiAJCQkkcGFnZXMtPnskcGFnZS0+e3RpdGxlfX0gPSAkcGFnZTsKIAkJfQogCX0KKwlyZXR1cm47CiB9CiAKIHN1YiBnZXRfbXdfYWxsX3BhZ2VzIHsKQEAgLTI5MCwxNCArMjY1LDEyIEBACiAJCWFwbGltaXQgPT4gJ21heCcKIAl9KTsKIAlpZiAoIWRlZmluZWQoJG13X3BhZ2VzKSkgewotCQlwcmludCBTVERFUlIgImZhdGFsOiBjb3VsZCBub3QgZ2V0IHRoZSBsaXN0IG9mIHdpa2kgcGFnZXMuXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiAnJHVybCcgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgbWVkaWF3aWtpXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiBtYWtlIHN1cmUgJyR1cmwvYXBpLnBocCcgaXMgYSB2YWxpZCBwYWdlLlxuIjsKLQkJZXhpdCAxOworCQlmYXRhbF9td19lcnJvcigiZ2V0IHRoZSBsaXN0IG9mIHdpa2kgcGFnZXMiKTsKIAl9CiAJZm9yZWFjaCBteSAkcGFnZSAoQHskbXdfcGFnZXN9KSB7CiAJCSRwYWdlcy0+eyRwYWdlLT57dGl0bGV9fSA9ICRwYWdlOwogCX0KKwlyZXR1cm47CiB9CiAKICMgcXVlcmllcyB0aGUgd2lraSBmb3IgYSBzZXQgb2YgcGFnZXMuIE1lYW50IHRvIGJlIHVzZWQgd2l0aGluIGEgbG9vcApAQCAtMzE2LDI1ICsyODksMjMgQEAKIAkJdGl0bGVzID0+ICR0aXRsZXMsCiAJfSk7CiAJaWYgKCFkZWZpbmVkKCRtd19wYWdlcykpIHsKLQkJcHJpbnQgU1RERVJSICJmYXRhbDogY291bGQgbm90IHF1ZXJ5IHRoZSBsaXN0IG9mIHdpa2kgcGFnZXMuXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiAnJHVybCcgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgbWVkaWF3aWtpXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiBtYWtlIHN1cmUgJyR1cmwvYXBpLnBocCcgaXMgYSB2YWxpZCBwYWdlLlxuIjsKLQkJZXhpdCAxOworCQlmYXRhbF9td19lcnJvcigicXVlcnkgdGhlIGxpc3Qgb2Ygd2lraSBwYWdlcyIpOwogCX0KIAl3aGlsZSAobXkgKCRpZCwgJHBhZ2UpID0gZWFjaCgleyRtd19wYWdlcy0+e3F1ZXJ5fS0+e3BhZ2VzfX0pKSB7CiAJCWlmICgkaWQgPCAwKSB7Ci0JCQlwcmludCBTVERFUlIgIldhcm5pbmc6IHBhZ2UgJHBhZ2UtPnt0aXRsZX0gbm90IGZvdW5kIG9uIHdpa2lcbiI7CisJCQlwcmludCB7KlNUREVSUn0gIldhcm5pbmc6IHBhZ2UgJHBhZ2UtPnt0aXRsZX0gbm90IGZvdW5kIG9uIHdpa2lcbiI7CiAJCX0gZWxzZSB7CiAJCQkkcGFnZXMtPnskcGFnZS0+e3RpdGxlfX0gPSAkcGFnZTsKIAkJfQogCX0KKwlyZXR1cm47CiB9CiAKICMgR2V0IHRoZSBsaXN0IG9mIHBhZ2VzIHRvIGJlIGZldGNoZWQgYWNjb3JkaW5nIHRvIGNvbmZpZ3VyYXRpb24uCiBzdWIgZ2V0X213X3BhZ2VzIHsKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCi0JcHJpbnQgU1RERVJSICJMaXN0aW5nIHBhZ2VzIG9uIHJlbW90ZSB3aWtpLi4uXG4iOworCXByaW50IHsqU1RERVJSfSAiTGlzdGluZyBwYWdlcyBvbiByZW1vdGUgd2lraS4uLlxuIjsKIAogCW15ICVwYWdlczsgIyBoYXNoIG9uIHBhZ2UgdGl0bGVzIHRvIGF2b2lkIGR1cGxpY2F0ZXMKIAlteSAkdXNlcl9kZWZpbmVkOwpAQCAtMzUyLDE0ICszMjMsMTQgQEAKIAkJZ2V0X213X2FsbF9wYWdlcyhcJXBhZ2VzKTsKIAl9CiAJaWYgKCRpbXBvcnRfbWVkaWEpIHsKLQkJcHJpbnQgU1RERVJSICJHZXR0aW5nIG1lZGlhIGZpbGVzIGZvciBzZWxlY3RlZCBwYWdlcy4uLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJHZXR0aW5nIG1lZGlhIGZpbGVzIGZvciBzZWxlY3RlZCBwYWdlcy4uLlxuIjsKIAkJaWYgKCR1c2VyX2RlZmluZWQpIHsKIAkJCWdldF9saW5rZWRfbWVkaWFmaWxlcyhcJXBhZ2VzKTsKIAkJfSBlbHNlIHsKIAkJCWdldF9hbGxfbWVkaWFmaWxlcyhcJXBhZ2VzKTsKIAkJfQogCX0KLQlwcmludCBTVERFUlIgKHNjYWxhciBrZXlzICVwYWdlcykgLiAiIHBhZ2VzIGZvdW5kLlxuIjsKKwlwcmludCB7KlNUREVSUn0gKHNjYWxhciBrZXlzICVwYWdlcykgLiAiIHBhZ2VzIGZvdW5kLlxuIjsKIAlyZXR1cm4gJXBhZ2VzOwogfQogCkBAIC0zNjcsOSArMzM4LDEzIEBACiAjICAgICAgICAkb3V0ID0gcnVuX2dpdCgiY29tbWFuZCBhcmdzIiwgInJhdyIpOyAjIGRvbid0IGludGVycHJldCBvdXRwdXQgYXMgVVRGLTguCiBzdWIgcnVuX2dpdCB7CiAJbXkgJGFyZ3MgPSBzaGlmdDsKLQlteSAkZW5jb2RpbmcgPSAoc2hpZnQgfHwgImVuY29kaW5nKFVURi04KSIpOwotCW9wZW4obXkgJGdpdCwgIi18OiRlbmNvZGluZyIsICJnaXQgIiAuICRhcmdzKTsKLQlteSAkcmVzID0gZG8geyBsb2NhbCAkLzsgPCRnaXQ+IH07CisJbXkgJGVuY29kaW5nID0gKHNoaWZ0IHx8ICdlbmNvZGluZyhVVEYtOCknKTsKKwlvcGVuKG15ICRnaXQsICItfDoke2VuY29kaW5nfSIsICJnaXQgJHthcmdzfSIpCisJICAgIG9yIGRpZSAiVW5hYmxlIHRvIGZvcms6ICQhXG4iOworCW15ICRyZXMgPSBkbyB7CisJCWxvY2FsICQvID0gdW5kZWY7CisJCTwkZ2l0PgorCX07CiAJY2xvc2UoJGdpdCk7CiAKIAlyZXR1cm4gJHJlczsKQEAgLTM4NCwyNyArMzU5LDI2IEBACiAJbXkgJG13X3BhZ2VzID0gJG1lZGlhd2lraS0+bGlzdCh7CiAJCWFjdGlvbiA9PiAncXVlcnknLAogCQlsaXN0ID0+ICdhbGxwYWdlcycsCi0JCWFwbmFtZXNwYWNlID0+IGdldF9td19uYW1lc3BhY2VfaWQoIkZpbGUiKSwKKwkJYXBuYW1lc3BhY2UgPT4gZ2V0X213X25hbWVzcGFjZV9pZCgnRmlsZScpLAogCQlhcGxpbWl0ID0+ICdtYXgnCiAJfSk7CiAJaWYgKCFkZWZpbmVkKCRtd19wYWdlcykpIHsKLQkJcHJpbnQgU1RERVJSICJmYXRhbDogY291bGQgbm90IGdldCB0aGUgbGlzdCBvZiBwYWdlcyBmb3IgbWVkaWEgZmlsZXMuXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiAnJHVybCcgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgbWVkaWF3aWtpXG4iOwotCQlwcmludCBTVERFUlIgImZhdGFsOiBtYWtlIHN1cmUgJyR1cmwvYXBpLnBocCcgaXMgYSB2YWxpZCBwYWdlLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJmYXRhbDogY291bGQgbm90IGdldCB0aGUgbGlzdCBvZiBwYWdlcyBmb3IgbWVkaWEgZmlsZXMuXG4iOworCQlwcmludCB7KlNUREVSUn0gImZhdGFsOiAnJHVybCcgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgbWVkaWF3aWtpXG4iOworCQlwcmludCB7KlNUREVSUn0gImZhdGFsOiBtYWtlIHN1cmUgJyR1cmwvYXBpLnBocCcgaXMgYSB2YWxpZCBwYWdlLlxuIjsKIAkJZXhpdCAxOwogCX0KIAlmb3JlYWNoIG15ICRwYWdlIChAeyRtd19wYWdlc30pIHsKIAkJJHBhZ2VzLT57JHBhZ2UtPnt0aXRsZX19ID0gJHBhZ2U7CiAJfQorCXJldHVybjsKIH0KIAogc3ViIGdldF9saW5rZWRfbWVkaWFmaWxlcyB7CiAJbXkgJHBhZ2VzID0gc2hpZnQ7Ci0JbXkgQHRpdGxlcyA9IG1hcCAkXy0+e3RpdGxlfSwgdmFsdWVzKCV7JHBhZ2VzfSk7CisJbXkgQHRpdGxlcyA9IG1hcCB7ICRfLT57dGl0bGV9IH0gdmFsdWVzKCV7JHBhZ2VzfSk7CiAKLQkjIFRoZSBxdWVyeSBpcyBzcGxpdCBpbiBzbWFsbCBiYXRjaGVzIGJlY2F1c2Ugb2YgdGhlIE1XIEFQSSBsaW1pdCBvZgotCSMgdGhlIG51bWJlciBvZiBsaW5rcyB0byBiZSByZXR1cm5lZCAoNTAwIGxpbmtzIG1heCkuCi0JbXkgJGJhdGNoID0gMTA7CisJbXkgJGJhdGNoID0gQkFUQ0hfU0laRTsKIAl3aGlsZSAoQHRpdGxlcykgewogCQlpZiAoJCN0aXRsZXMgPCAkYmF0Y2gpIHsKIAkJCSRiYXRjaCA9ICQjdGl0bGVzOwpAQCAtNDIwLDcgKzM5NCw3IEBACiAJCQlhY3Rpb24gPT4gJ3F1ZXJ5JywKIAkJCXByb3AgPT4gJ2xpbmtzfGltYWdlcycsCiAJCQl0aXRsZXMgPT4gJG13X3RpdGxlcywKLQkJCXBsbmFtZXNwYWNlID0+IGdldF9td19uYW1lc3BhY2VfaWQoIkZpbGUiKSwKKwkJCXBsbmFtZXNwYWNlID0+IGdldF9td19uYW1lc3BhY2VfaWQoJ0ZpbGUnKSwKIAkJCXBsbGltaXQgPT4gJ21heCcKIAkJfTsKIAkJbXkgJHJlc3VsdCA9ICRtZWRpYXdpa2ktPmFwaSgkcXVlcnkpOwpAQCAtNDI4LDExICs0MDIsMTMgQEAKIAkJd2hpbGUgKG15ICgkaWQsICRwYWdlKSA9IGVhY2goJXskcmVzdWx0LT57cXVlcnl9LT57cGFnZXN9fSkpIHsKIAkJCW15IEBtZWRpYV90aXRsZXM7CiAJCQlpZiAoZGVmaW5lZCgkcGFnZS0+e2xpbmtzfSkpIHsKLQkJCQlteSBAbGlua190aXRsZXMgPSBtYXAgJF8tPnt0aXRsZX0sIEB7JHBhZ2UtPntsaW5rc319OworCQkJCW15IEBsaW5rX3RpdGxlcworCQkJCSAgICA9IG1hcCB7ICRfLT57dGl0bGV9IH0gQHskcGFnZS0+e2xpbmtzfX07CiAJCQkJcHVzaChAbWVkaWFfdGl0bGVzLCBAbGlua190aXRsZXMpOwogCQkJfQogCQkJaWYgKGRlZmluZWQoJHBhZ2UtPntpbWFnZXN9KSkgewotCQkJCW15IEBpbWFnZV90aXRsZXMgPSBtYXAgJF8tPnt0aXRsZX0sIEB7JHBhZ2UtPntpbWFnZXN9fTsKKwkJCQlteSBAaW1hZ2VfdGl0bGVzCisJCQkJICAgID0gbWFwIHsgJF8tPnt0aXRsZX0gfSBAeyRwYWdlLT57aW1hZ2VzfX07CiAJCQkJcHVzaChAbWVkaWFfdGl0bGVzLCBAaW1hZ2VfdGl0bGVzKTsKIAkJCX0KIAkJCWlmIChAbWVkaWFfdGl0bGVzKSB7CkBAIC00NDIsNiArNDE4LDcgQEAKIAogCQlAdGl0bGVzID0gQHRpdGxlc1soJGJhdGNoKzEpLi4kI3RpdGxlc107CiAJfQorCXJldHVybjsKIH0KIAogc3ViIGdldF9td19tZWRpYWZpbGVfZm9yX3BhZ2VfcmV2aXNpb24gewpAQCAtNDU1LDcgKzQzMiw3IEBACiAJbXkgJHF1ZXJ5ID0gewogCQlhY3Rpb24gPT4gJ3F1ZXJ5JywKIAkJcHJvcCA9PiAnaW1hZ2VpbmZvJywKLQkJdGl0bGVzID0+ICJGaWxlOiIgLiAkZmlsZW5hbWUsCisJCXRpdGxlcyA9PiAiRmlsZToke2ZpbGVuYW1lfSIsCiAJCWlpc3RhcnQgPT4gJHRpbWVzdGFtcCwKIAkJaWllbmQgPT4gJHRpbWVzdGFtcCwKIAkJaWlwcm9wID0+ICd0aW1lc3RhbXB8YXJjaGl2ZW5hbWV8dXJsJywKQEAgLTQ3Myw1MyArNDUwLDUwIEBACiAJCSRtZWRpYWZpbGV7dGltZXN0YW1wfSA9ICRmaWxlaW5mby0+e3RpbWVzdGFtcH07CiAJCSMgTWVkaWF3aWtpOjpBUEkncyBkb3dubG9hZCBmdW5jdGlvbiBkb2Vzbid0IHN1cHBvcnQgaHR0cHMgVVJMcwogCQkjIGFuZCBjYW4ndCBkb3dubG9hZCBvbGQgdmVyc2lvbnMgb2YgZmlsZXMuCi0JCXByaW50IFNUREVSUiAiXHREb3dubG9hZGluZyBmaWxlICRtZWRpYWZpbGV7dGl0bGV9LCB2ZXJzaW9uICRtZWRpYWZpbGV7dGltZXN0YW1wfVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJcdERvd25sb2FkaW5nIGZpbGUgJG1lZGlhZmlsZXt0aXRsZX0sIHZlcnNpb24gJG1lZGlhZmlsZXt0aW1lc3RhbXB9XG4iOwogCQkkbWVkaWFmaWxle2NvbnRlbnR9ID0gZG93bmxvYWRfbXdfbWVkaWFmaWxlKCRmaWxlaW5mby0+e3VybH0pOwogCX0KIAlyZXR1cm4gJW1lZGlhZmlsZTsKIH0KIAogc3ViIGRvd25sb2FkX213X21lZGlhZmlsZSB7Ci0JbXkgJHVybCA9IHNoaWZ0OworCW15ICRkb3dubG9hZF91cmwgPSBzaGlmdDsKIAotCW15ICRyZXNwb25zZSA9ICRtZWRpYXdpa2ktPnt1YX0tPmdldCgkdXJsKTsKLQlpZiAoJHJlc3BvbnNlLT5jb2RlID09IDIwMCkgeworCW15ICRyZXNwb25zZSA9ICRtZWRpYXdpa2ktPnt1YX0tPmdldCgkZG93bmxvYWRfdXJsKTsKKwlpZiAoJHJlc3BvbnNlLT5jb2RlID09IEhUVFBfQ09ERV9PSykgewogCQlyZXR1cm4gJHJlc3BvbnNlLT5kZWNvZGVkX2NvbnRlbnQ7CiAJfSBlbHNlIHsKLQkJcHJpbnQgU1RERVJSICJFcnJvciBkb3dubG9hZGluZyBtZWRpYWZpbGUgZnJvbSA6XG4iOwotCQlwcmludCBTVERFUlIgIlVSTDogJHVybFxuIjsKLQkJcHJpbnQgU1RERVJSICJTZXJ2ZXIgcmVzcG9uc2U6ICIgLiAkcmVzcG9uc2UtPmNvZGUgLiAiICIgLiAkcmVzcG9uc2UtPm1lc3NhZ2UgLiAiXG4iOworCQlwcmludCB7KlNUREVSUn0gIkVycm9yIGRvd25sb2FkaW5nIG1lZGlhZmlsZSBmcm9tIDpcbiI7CisJCXByaW50IHsqU1RERVJSfSAiVVJMOiAke2Rvd25sb2FkX3VybH1cbiI7CisJCXByaW50IHsqU1RERVJSfSAnU2VydmVyIHJlc3BvbnNlOiAnIC4gJHJlc3BvbnNlLT5jb2RlIC4gcXsgfSAuICRyZXNwb25zZS0+bWVzc2FnZSAuICJcbiI7CiAJCWV4aXQgMTsKIAl9CiB9CiAKIHN1YiBnZXRfbGFzdF9sb2NhbF9yZXZpc2lvbiB7CiAJIyBHZXQgbm90ZSByZWdhcmRpbmcgbGFzdCBtZWRpYXdpa2kgcmV2aXNpb24KLQlteSAkbm90ZSA9IHJ1bl9naXQoIm5vdGVzIC0tcmVmPSRyZW1vdGVuYW1lL21lZGlhd2lraSBzaG93IHJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lL21hc3RlciAyPi9kZXYvbnVsbCIpOworCW15ICRub3RlID0gcnVuX2dpdCgibm90ZXMgLS1yZWY9JHtyZW1vdGVuYW1lfS9tZWRpYXdpa2kgc2hvdyByZWZzL21lZGlhd2lraS8ke3JlbW90ZW5hbWV9L21hc3RlciAyPi9kZXYvbnVsbCIpOwogCW15IEBub3RlX2luZm8gPSBzcGxpdCgvIC8sICRub3RlKTsKIAogCW15ICRsYXN0cmV2aXNpb25fbnVtYmVyOwotCWlmICghKGRlZmluZWQoJG5vdGVfaW5mb1swXSkgJiYgJG5vdGVfaW5mb1swXSBlcSAibWVkaWF3aWtpX3JldmlzaW9uOiIpKSB7Ci0JCXByaW50IFNUREVSUiAiTm8gcHJldmlvdXMgbWVkaWF3aWtpIHJldmlzaW9uIGZvdW5kIjsKKwlpZiAoIShkZWZpbmVkKCRub3RlX2luZm9bMF0pICYmICRub3RlX2luZm9bMF0gZXEgJ21lZGlhd2lraV9yZXZpc2lvbjonKSkgeworCQlwcmludCB7KlNUREVSUn0gJ05vIHByZXZpb3VzIG1lZGlhd2lraSByZXZpc2lvbiBmb3VuZCc7CiAJCSRsYXN0cmV2aXNpb25fbnVtYmVyID0gMDsKIAl9IGVsc2UgewogCQkjIE5vdGVzIGFyZSBmb3JtYXR0ZWQgOiBtZWRpYXdpa2lfcmV2aXNpb246ICNudW1iZXIKIAkJJGxhc3RyZXZpc2lvbl9udW1iZXIgPSAkbm90ZV9pbmZvWzFdOwogCQljaG9tcCgkbGFzdHJldmlzaW9uX251bWJlcik7Ci0JCXByaW50IFNUREVSUiAiTGFzdCBsb2NhbCBtZWRpYXdpa2kgcmV2aXNpb24gZm91bmQgaXMgJGxhc3RyZXZpc2lvbl9udW1iZXIiOworCQlwcmludCB7KlNUREVSUn0gIkxhc3QgbG9jYWwgbWVkaWF3aWtpIHJldmlzaW9uIGZvdW5kIGlzICR7bGFzdHJldmlzaW9uX251bWJlcn0iOwogCX0KIAlyZXR1cm4gJGxhc3RyZXZpc2lvbl9udW1iZXI7CiB9CiAKLSMgUmVtZW1iZXIgdGhlIHRpbWVzdGFtcCBjb3JyZXNwb25kaW5nIHRvIGEgcmV2aXNpb24gaWQuCi1teSAlYmFzZXRpbWVzdGFtcHM7Ci0KICMgR2V0IHRoZSBsYXN0IHJlbW90ZSByZXZpc2lvbiB3aXRob3V0IHRha2luZyBpbiBhY2NvdW50IHdoaWNoIHBhZ2VzIGFyZQogIyB0cmFja2VkIG9yIG5vdC4gVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNpbmdsZSByZXF1ZXN0IHRvIHRoZSB3aWtpIHRodXMKICMgYXZvaWQgYSBsb29wIG9udG8gYWxsIHRyYWNrZWQgcGFnZXMuIFRoaXMgaXMgdXNlZnVsIGZvciB0aGUgZmV0Y2gtYnktcmV2CiAjIG9wdGlvbi4KIHN1YiBnZXRfbGFzdF9nbG9iYWxfcmVtb3RlX3JldiB7Ci0JbXdfY29ubmVjdF9tYXliZSgpOworCSRtZWRpYXdpa2kgPSBjb25uZWN0X21heWJlKCRtZWRpYXdpa2ksICRyZW1vdGVuYW1lLCAkdXJsKTsKIAogCW15ICRxdWVyeSA9IHsKIAkJYWN0aW9uID0+ICdxdWVyeScsCkBAIC01MzUsMTQgKzUwOSwxNCBAQAogIyBHZXQgdGhlIGxhc3QgcmVtb3RlIHJldmlzaW9uIGNvbmNlcm5pbmcgdGhlIHRyYWNrZWQgcGFnZXMgYW5kIHRoZSB0cmFja2VkCiAjIGNhdGVnb3JpZXMuCiBzdWIgZ2V0X2xhc3RfcmVtb3RlX3JldmlzaW9uIHsKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCiAJbXkgJXBhZ2VzX2hhc2ggPSBnZXRfbXdfcGFnZXMoKTsKIAlteSBAcGFnZXMgPSB2YWx1ZXMoJXBhZ2VzX2hhc2gpOwogCiAJbXkgJG1heF9yZXZfbnVtID0gMDsKIAotCXByaW50IFNUREVSUiAiR2V0dGluZyBsYXN0IHJldmlzaW9uIGlkIG9uIHRyYWNrZWQgcGFnZXMuLi5cbiI7CisJcHJpbnQgeypTVERFUlJ9ICJHZXR0aW5nIGxhc3QgcmV2aXNpb24gaWQgb24gdHJhY2tlZCBwYWdlcy4uLlxuIjsKIAogCWZvcmVhY2ggbXkgJHBhZ2UgKEBwYWdlcykgewogCQlteSAkaWQgPSAkcGFnZS0+e3BhZ2VpZH07CkBAIC01NjMsNyArNTM3LDcgQEAKIAkJJG1heF9yZXZfbnVtID0gKCRsYXN0cmV2LT57cmV2aWR9ID4gJG1heF9yZXZfbnVtID8gJGxhc3RyZXYtPntyZXZpZH0gOiAkbWF4X3Jldl9udW0pOwogCX0KIAotCXByaW50IFNUREVSUiAiTGFzdCByZW1vdGUgcmV2aXNpb24gZm91bmQgaXMgJG1heF9yZXZfbnVtLlxuIjsKKwlwcmludCB7KlNUREVSUn0gIkxhc3QgcmVtb3RlIHJldmlzaW9uIGZvdW5kIGlzICRtYXhfcmV2X251bS5cbiI7CiAJcmV0dXJuICRtYXhfcmV2X251bTsKIH0KIApAQCAtNTc0LDcgKzU0OCw3IEBACiAJIyBNZWRpYXdpa2kgZG9lcyBub3QgYWxsb3cgYmxhbmsgc3BhY2UgYXQgdGhlIGVuZCBvZiBhIHBhZ2UgYW5kIGVuZHMgd2l0aCBhIHNpbmdsZSBcbi4KIAkjIFRoaXMgZnVuY3Rpb24gcmlnaHQgdHJpbXMgYSBzdHJpbmcgYW5kIGFkZHMgYSBcbiBhdCB0aGUgZW5kIHRvIGZvbGxvdyB0aGlzIHJ1bGUKIAkkc3RyaW5nID1+IHMvXHMrJC8vOwotCWlmICgkc3RyaW5nIGVxICIiICYmICRwYWdlX2NyZWF0ZWQpIHsKKwlpZiAoJHN0cmluZyBlcSBFTVBUWSAmJiAkcGFnZV9jcmVhdGVkKSB7CiAJCSMgQ3JlYXRpbmcgZW1wdHkgcGFnZXMgaXMgZm9yYmlkZGVuLgogCQkkc3RyaW5nID0gRU1QVFlfQ09OVEVOVDsKIAl9CkBAIC01ODUsMzggKzU1OSwxNiBAQAogc3ViIG1lZGlhd2lraV9zbXVkZ2UgewogCW15ICRzdHJpbmcgPSBzaGlmdDsKIAlpZiAoJHN0cmluZyBlcSBFTVBUWV9DT05URU5UKSB7Ci0JCSRzdHJpbmcgPSAiIjsKKwkJJHN0cmluZyA9IEVNUFRZOwogCX0KIAkjIFRoaXMgXG4gaXMgaW1wb3J0YW50LiBUaGlzIGlzIGR1ZSB0byBtZWRpYXdpa2kncyB3YXkgdG8gaGFuZGxlIGVuZCBvZiBmaWxlcy4KLQlyZXR1cm4gJHN0cmluZy4iXG4iOwotfQotCi1zdWIgbWVkaWF3aWtpX2NsZWFuX2ZpbGVuYW1lIHsKLQlteSAkZmlsZW5hbWUgPSBzaGlmdDsKLQkkZmlsZW5hbWUgPX4gcy9Ae1tTTEFTSF9SRVBMQUNFTUVOVF19L1wvL2c7Ci0JIyBbLCBdLCB8LCB7LCBhbmQgfSBhcmUgZm9yYmlkZGVuIGJ5IE1lZGlhV2lraSwgZXZlbiBVUkwtZW5jb2RlZC4KLQkjIERvIGEgdmFyaWFudCBvZiBVUkwtZW5jb2RpbmcsIGkuZS4gbG9va3MgbGlrZSBVUkwtZW5jb2RpbmcsCi0JIyBidXQgd2l0aCBfIGFkZGVkIHRvIHByZXZlbnQgTWVkaWFXaWtpIGZyb20gdGhpbmtpbmcgdGhpcyBpcwotCSMgYW4gYWN0dWFsIHNwZWNpYWwgY2hhcmFjdGVyLgotCSRmaWxlbmFtZSA9fiBzL1tcW1xdXHtcfVx8XS9zcHJpbnRmKCJfJSVfJXgiLCBvcmQoJCYpKS9nZTsKLQkjIElmIHdlIHVzZSB0aGUgdXJpIGVzY2FwZSBiZWZvcmUKLQkjIHdlIHNob3VsZCB1bmVzY2FwZSBoZXJlLCBiZWZvcmUgYW55dGhpbmcKLQotCXJldHVybiAkZmlsZW5hbWU7Ci19Ci0KLXN1YiBtZWRpYXdpa2lfc211ZGdlX2ZpbGVuYW1lIHsKLQlteSAkZmlsZW5hbWUgPSBzaGlmdDsKLQkkZmlsZW5hbWUgPX4gcy9cLy9Ae1tTTEFTSF9SRVBMQUNFTUVOVF19L2c7Ci0JJGZpbGVuYW1lID1+IHMvIC9fL2c7Ci0JIyBEZWNvZGUgZm9yYmlkZGVuIGNoYXJhY3RlcnMgZW5jb2RlZCBpbiBtZWRpYXdpa2lfY2xlYW5fZmlsZW5hbWUKLQkkZmlsZW5hbWUgPX4gcy9fJV8oWzAtOWEtZkEtRl1bMC05YS1mQS1GXSkvc3ByaW50ZigiJWMiLCBoZXgoJDEpKS9nZTsKLQlyZXR1cm4gJGZpbGVuYW1lOworCXJldHVybiAiJHtzdHJpbmd9XG4iOwogfQogCiBzdWIgbGl0ZXJhbF9kYXRhIHsKIAlteSAoJGNvbnRlbnQpID0gQF87Ci0JcHJpbnQgU1RET1VUICJkYXRhICIsIGJ5dGVzOjpsZW5ndGgoJGNvbnRlbnQpLCAiXG4iLCAkY29udGVudDsKKwlwcmludCB7KlNURE9VVH0gJ2RhdGEgJywgYnl0ZXM6Omxlbmd0aCgkY29udGVudCksICJcbiIsICRjb250ZW50OworCXJldHVybjsKIH0KIAogc3ViIGxpdGVyYWxfZGF0YV9yYXcgewpAQCAtNjI0LDMzICs1NzYsMzcgQEAKIAlteSAoJGNvbnRlbnQpID0gQF87CiAJIyBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBzaXplIGluIGJ5dGVzIGFuZCBpbiBjaGFyYWN0ZXJzCiAJdXRmODo6ZG93bmdyYWRlKCRjb250ZW50KTsKLQliaW5tb2RlIFNURE9VVCwgIjpyYXciOwotCXByaW50IFNURE9VVCAiZGF0YSAiLCBieXRlczo6bGVuZ3RoKCRjb250ZW50KSwgIlxuIiwgJGNvbnRlbnQ7Ci0JYmlubW9kZSBTVERPVVQsICI6dXRmOCI7CisJYmlubW9kZSBTVERPVVQsICc6cmF3JzsKKwlwcmludCB7KlNURE9VVH0gJ2RhdGEgJywgYnl0ZXM6Omxlbmd0aCgkY29udGVudCksICJcbiIsICRjb250ZW50OworCWJpbm1vZGUgU1RET1VULCAnOmVuY29kaW5nKFVURi04KSc7CisJcmV0dXJuOwogfQogCiBzdWIgbXdfY2FwYWJpbGl0aWVzIHsKIAkjIFJldmlzaW9ucyBhcmUgaW1wb3J0ZWQgdG8gdGhlIHByaXZhdGUgbmFtZXNwYWNlCiAJIyByZWZzL21lZGlhd2lraS8kcmVtb3RlbmFtZS8gYnkgdGhlIGhlbHBlciBhbmQgZmV0Y2hlZCBpbnRvCiAJIyByZWZzL3JlbW90ZXMvJHJlbW90ZW5hbWUgbGF0ZXIgYnkgZmV0Y2guCi0JcHJpbnQgU1RET1VUICJyZWZzcGVjIHJlZnMvaGVhZHMvKjpyZWZzL21lZGlhd2lraS8kcmVtb3RlbmFtZS8qXG4iOwotCXByaW50IFNURE9VVCAiaW1wb3J0XG4iOwotCXByaW50IFNURE9VVCAibGlzdFxuIjsKLQlwcmludCBTVERPVVQgInB1c2hcbiI7Ci0JcHJpbnQgU1RET1VUICJcbiI7CisJcHJpbnQgeypTVERPVVR9ICJyZWZzcGVjIHJlZnMvaGVhZHMvKjpyZWZzL21lZGlhd2lraS8ke3JlbW90ZW5hbWV9LypcbiI7CisJcHJpbnQgeypTVERPVVR9ICJpbXBvcnRcbiI7CisJcHJpbnQgeypTVERPVVR9ICJsaXN0XG4iOworCXByaW50IHsqU1RET1VUfSAicHVzaFxuIjsKKwlwcmludCB7KlNURE9VVH0gIlxuIjsKKwlyZXR1cm47CiB9CiAKIHN1YiBtd19saXN0IHsKIAkjIE1lZGlhV2lraSBkbyBub3QgaGF2ZSBicmFuY2hlcywgd2UgY29uc2lkZXIgb25lIGJyYW5jaCBhcmJpdHJhcmlseQogCSMgY2FsbGVkIG1hc3RlciwgYW5kIEhFQUQgcG9pbnRpbmcgdG8gaXQuCi0JcHJpbnQgU1RET1VUICI/IHJlZnMvaGVhZHMvbWFzdGVyXG4iOwotCXByaW50IFNURE9VVCAiXEByZWZzL2hlYWRzL21hc3RlciBIRUFEXG4iOwotCXByaW50IFNURE9VVCAiXG4iOworCXByaW50IHsqU1RET1VUfSAiPyByZWZzL2hlYWRzL21hc3RlclxuIjsKKwlwcmludCB7KlNURE9VVH0gIlxAcmVmcy9oZWFkcy9tYXN0ZXIgSEVBRFxuIjsKKwlwcmludCB7KlNURE9VVH0gIlxuIjsKKwlyZXR1cm47CiB9CiAKIHN1YiBtd19vcHRpb24gewotCXByaW50IFNUREVSUiAicmVtb3RlLWhlbHBlciBjb21tYW5kICdvcHRpb24gJF9bMF0nIG5vdCB5ZXQgaW1wbGVtZW50ZWRcbiI7Ci0JcHJpbnQgU1RET1VUICJ1bnN1cHBvcnRlZFxuIjsKKwlwcmludCB7KlNUREVSUn0gInJlbW90ZS1oZWxwZXIgY29tbWFuZCAnb3B0aW9uICRfWzBdJyBub3QgeWV0IGltcGxlbWVudGVkXG4iOworCXByaW50IHsqU1RET1VUfSAidW5zdXBwb3J0ZWRcbiI7CisJcmV0dXJuOwogfQogCiBzdWIgZmV0Y2hfbXdfcmV2aXNpb25zX2Zvcl9wYWdlIHsKQEAgLTY2Niw2ICs2MjIsOSBAQAogCQlydnN0YXJ0aWQgPT4gJGZldGNoX2Zyb20sCiAJCXJ2bGltaXQgPT4gNTAwLAogCQlwYWdlaWRzID0+ICRpZCwKKworCQkjIExldCBNZWRpYVdpa2kga25vdyB0aGF0IHdlIHN1cHBvcnQgdGhlIGxhdGVzdCBBUEkuCisJCWNvbnRpbnVlID0+ICcnLAogCX07CiAKIAlteSAkcmV2bnVtID0gMDsKQEAgLTY4MSwxNSArNjQwLDIyIEBACiAJCQlwdXNoKEBwYWdlX3JldnMsICRwYWdlX3Jldl9pZHMpOwogCQkJJHJldm51bSsrOwogCQl9Ci0JCWxhc3QgdW5sZXNzICRyZXN1bHQtPnsncXVlcnktY29udGludWUnfTsKLQkJJHF1ZXJ5LT57cnZzdGFydGlkfSA9ICRyZXN1bHQtPnsncXVlcnktY29udGludWUnfS0+e3JldmlzaW9uc30tPntydnN0YXJ0aWR9OworCisJCWlmICgkcmVzdWx0LT57J3F1ZXJ5LWNvbnRpbnVlJ30pIHsgIyBGb3IgbGVnYWN5IEFQSXMKKwkJCSRxdWVyeS0+e3J2c3RhcnRpZH0gPSAkcmVzdWx0LT57J3F1ZXJ5LWNvbnRpbnVlJ30tPntyZXZpc2lvbnN9LT57cnZzdGFydGlkfTsKKwkJfSBlbHNpZiAoJHJlc3VsdC0+e2NvbnRpbnVlfSkgeyAjIEZvciBuZXdlciBBUElzCisJCQkkcXVlcnktPntydnN0YXJ0aWR9ID0gJHJlc3VsdC0+e2NvbnRpbnVlfS0+e3J2Y29udGludWV9OworCQkJJHF1ZXJ5LT57Y29udGludWV9ID0gJHJlc3VsdC0+e2NvbnRpbnVlfS0+e2NvbnRpbnVlfTsKKwkJfSBlbHNlIHsKKwkJCWxhc3Q7CisJCX0KIAl9CiAJaWYgKCRzaGFsbG93X2ltcG9ydCAmJiBAcGFnZV9yZXZzKSB7Ci0JCXByaW50IFNUREVSUiAiICBGb3VuZCAxIHJldmlzaW9uIChzaGFsbG93IGltcG9ydCkuXG4iOworCQlwcmludCB7KlNUREVSUn0gIiAgRm91bmQgMSByZXZpc2lvbiAoc2hhbGxvdyBpbXBvcnQpLlxuIjsKIAkJQHBhZ2VfcmV2cyA9IHNvcnQgeyRiLT57cmV2aWR9IDw9PiAkYS0+e3JldmlkfX0gKEBwYWdlX3JldnMpOwogCQlyZXR1cm4gJHBhZ2VfcmV2c1swXTsKIAl9Ci0JcHJpbnQgU1RERVJSICIgIEZvdW5kICIsICRyZXZudW0sICIgcmV2aXNpb24ocykuXG4iOworCXByaW50IHsqU1RERVJSfSAiICBGb3VuZCAke3Jldm51bX0gcmV2aXNpb24ocykuXG4iOwogCXJldHVybiBAcGFnZV9yZXZzOwogfQogCkBAIC03MDEsOCArNjY3LDcgQEAKIAlteSAkbiA9IDE7CiAJZm9yZWFjaCBteSAkcGFnZSAoQHBhZ2VzKSB7CiAJCW15ICRpZCA9ICRwYWdlLT57cGFnZWlkfTsKLQotCQlwcmludCBTVERFUlIgInBhZ2UgJG4vIiwgc2NhbGFyKEBwYWdlcyksICI6ICIuICRwYWdlLT57dGl0bGV9IC4iXG4iOworCQlwcmludCB7KlNUREVSUn0gInBhZ2UgJHtufS8iLCBzY2FsYXIoQHBhZ2VzKSwgJzogJywgJHBhZ2UtPnt0aXRsZX0sICJcbiI7CiAJCSRuKys7CiAJCW15IEBwYWdlX3JldnMgPSBmZXRjaF9td19yZXZpc2lvbnNfZm9yX3BhZ2UoJHBhZ2UsICRpZCwgJGZldGNoX2Zyb20pOwogCQlAcmV2aXNpb25zID0gKEBwYWdlX3JldnMsIEByZXZpc2lvbnMpOwpAQCAtNzE2LDcgKzY4MSw3IEBACiAgICAgJHBhdGggPX4gcy9cXC9cXFxcL2c7CiAgICAgJHBhdGggPX4gcy8iL1xcIi9nOwogICAgICRwYXRoID1+IHMvXG4vXFxuL2c7Ci0gICAgcmV0dXJuICciJyAuICRwYXRoIC4gJyInOworICAgIHJldHVybiBxcSgiJHtwYXRofSIpOwogfQogCiBzdWIgaW1wb3J0X2ZpbGVfcmV2aXNpb24gewpAQCAtNzM2LDQyICs3MDEsNDMgQEAKIAlteSAkYXV0aG9yID0gJGNvbW1pdHthdXRob3J9OwogCW15ICRkYXRlID0gJGNvbW1pdHtkYXRlfTsKIAotCXByaW50IFNURE9VVCAiY29tbWl0IHJlZnMvbWVkaWF3aWtpLyRyZW1vdGVuYW1lL21hc3RlclxuIjsKLQlwcmludCBTVERPVVQgIm1hcmsgOiRuXG4iOwotCXByaW50IFNURE9VVCAiY29tbWl0dGVyICRhdXRob3IgPCRhdXRob3JcQCR3aWtpX25hbWU+ICIsICRkYXRlLT5lcG9jaCwgIiArMDAwMFxuIjsKKwlwcmludCB7KlNURE9VVH0gImNvbW1pdCByZWZzL21lZGlhd2lraS8ke3JlbW90ZW5hbWV9L21hc3RlclxuIjsKKwlwcmludCB7KlNURE9VVH0gIm1hcmsgOiR7bn1cbiI7CisJcHJpbnQgeypTVERPVVR9ICJjb21taXR0ZXIgJHthdXRob3J9IDwke2F1dGhvcn1cQCR7d2lraV9uYW1lfT4gIiAuICRkYXRlLT5lcG9jaCAuICIgKzAwMDBcbiI7CiAJbGl0ZXJhbF9kYXRhKCRjb21tZW50KTsKIAogCSMgSWYgaXQncyBub3QgYSBjbG9uZSwgd2UgbmVlZCB0byBrbm93IHdoZXJlIHRvIHN0YXJ0IGZyb20KIAlpZiAoISRmdWxsX2ltcG9ydCAmJiAkbiA9PSAxKSB7Ci0JCXByaW50IFNURE9VVCAiZnJvbSByZWZzL21lZGlhd2lraS8kcmVtb3RlbmFtZS9tYXN0ZXJeMFxuIjsKKwkJcHJpbnQgeypTVERPVVR9ICJmcm9tIHJlZnMvbWVkaWF3aWtpLyR7cmVtb3RlbmFtZX0vbWFzdGVyXjBcbiI7CiAJfQogCWlmICgkY29udGVudCBuZSBERUxFVEVEX0NPTlRFTlQpIHsKLQkJcHJpbnQgU1RET1VUICJNIDY0NCBpbmxpbmUgIiAuCi0JCSAgICBmZV9lc2NhcGVfcGF0aCgkdGl0bGUgLiAiLm13IikgLiAiXG4iOworCQlwcmludCB7KlNURE9VVH0gJ00gNjQ0IGlubGluZSAnIC4KKwkJICAgIGZlX2VzY2FwZV9wYXRoKCIke3RpdGxlfS5tdyIpIC4gIlxuIjsKIAkJbGl0ZXJhbF9kYXRhKCRjb250ZW50KTsKIAkJaWYgKCVtZWRpYWZpbGUpIHsKLQkJCXByaW50IFNURE9VVCAiTSA2NDQgaW5saW5lICIKKwkJCXByaW50IHsqU1RET1VUfSAnTSA2NDQgaW5saW5lICcKIAkJCSAgICAuIGZlX2VzY2FwZV9wYXRoKCRtZWRpYWZpbGV7dGl0bGV9KSAuICJcbiI7CiAJCQlsaXRlcmFsX2RhdGFfcmF3KCRtZWRpYWZpbGV7Y29udGVudH0pOwogCQl9Ci0JCXByaW50IFNURE9VVCAiXG5cbiI7CisJCXByaW50IHsqU1RET1VUfSAiXG5cbiI7CiAJfSBlbHNlIHsKLQkJcHJpbnQgU1RET1VUICJEICIgLiBmZV9lc2NhcGVfcGF0aCgkdGl0bGUgLiAiLm13IikgLiAiXG4iOworCQlwcmludCB7KlNURE9VVH0gJ0QgJyAuIGZlX2VzY2FwZV9wYXRoKCIke3RpdGxlfS5tdyIpIC4gIlxuIjsKIAl9CiAKIAkjIG1lZGlhd2lraSByZXZpc2lvbiBudW1iZXIgaW4gdGhlIGdpdCBub3RlCiAJaWYgKCRmdWxsX2ltcG9ydCAmJiAkbiA9PSAxKSB7Ci0JCXByaW50IFNURE9VVCAicmVzZXQgcmVmcy9ub3Rlcy8kcmVtb3RlbmFtZS9tZWRpYXdpa2lcbiI7CisJCXByaW50IHsqU1RET1VUfSAicmVzZXQgcmVmcy9ub3Rlcy8ke3JlbW90ZW5hbWV9L21lZGlhd2lraVxuIjsKIAl9Ci0JcHJpbnQgU1RET1VUICJjb21taXQgcmVmcy9ub3Rlcy8kcmVtb3RlbmFtZS9tZWRpYXdpa2lcbiI7Ci0JcHJpbnQgU1RET1VUICJjb21taXR0ZXIgJGF1dGhvciA8JGF1dGhvclxAJHdpa2lfbmFtZT4gIiwgJGRhdGUtPmVwb2NoLCAiICswMDAwXG4iOwotCWxpdGVyYWxfZGF0YSgiTm90ZSBhZGRlZCBieSBnaXQtbWVkaWF3aWtpIGR1cmluZyBpbXBvcnQiKTsKKwlwcmludCB7KlNURE9VVH0gImNvbW1pdCByZWZzL25vdGVzLyR7cmVtb3RlbmFtZX0vbWVkaWF3aWtpXG4iOworCXByaW50IHsqU1RET1VUfSAiY29tbWl0dGVyICR7YXV0aG9yfSA8JHthdXRob3J9XEAke3dpa2lfbmFtZX0+ICIgLiAkZGF0ZS0+ZXBvY2ggLiAiICswMDAwXG4iOworCWxpdGVyYWxfZGF0YSgnTm90ZSBhZGRlZCBieSBnaXQtbWVkaWF3aWtpIGR1cmluZyBpbXBvcnQnKTsKIAlpZiAoISRmdWxsX2ltcG9ydCAmJiAkbiA9PSAxKSB7Ci0JCXByaW50IFNURE9VVCAiZnJvbSByZWZzL25vdGVzLyRyZW1vdGVuYW1lL21lZGlhd2lraV4wXG4iOworCQlwcmludCB7KlNURE9VVH0gImZyb20gcmVmcy9ub3Rlcy8ke3JlbW90ZW5hbWV9L21lZGlhd2lraV4wXG4iOwogCX0KLQlwcmludCBTVERPVVQgIk4gaW5saW5lIDokblxuIjsKLQlsaXRlcmFsX2RhdGEoIm1lZGlhd2lraV9yZXZpc2lvbjogIiAuICRjb21taXR7bXdfcmV2aXNpb259KTsKLQlwcmludCBTVERPVVQgIlxuXG4iOworCXByaW50IHsqU1RET1VUfSAiTiBpbmxpbmUgOiR7bn1cbiI7CisJbGl0ZXJhbF9kYXRhKCJtZWRpYXdpa2lfcmV2aXNpb246ICRjb21taXR7bXdfcmV2aXNpb259Iik7CisJcHJpbnQgeypTVERPVVR9ICJcblxuIjsKKwlyZXR1cm47CiB9CiAKICMgcGFyc2UgYSBzZXF1ZW5jZSBvZgpAQCAtNzg0LDIzICs3NTAsMjUgQEAKIAlteSBAcmVmczsKIAl3aGlsZSAoMSkgewogCQlteSAkbGluZSA9IDxTVERJTj47Ci0JCWlmICgkbGluZSA9fiBtL14kY21kICguKikkLykgeworCQlpZiAoJGxpbmUgPX4gL14kY21kICguKikkLykgewogCQkJcHVzaChAcmVmcywgJDEpOwogCQl9IGVsc2lmICgkbGluZSBlcSAiXG4iKSB7CiAJCQlyZXR1cm4gQHJlZnM7CiAJCX0gZWxzZSB7Ci0JCQlkaWUoIkludmFsaWQgY29tbWFuZCBpbiBhICckY21kJyBiYXRjaDogIi4gJF8pOworCQkJZGllKCJJbnZhbGlkIGNvbW1hbmQgaW4gYSAnJGNtZCcgYmF0Y2g6ICRfXG4iKTsKIAkJfQogCX0KKwlyZXR1cm47CiB9CiAKIHN1YiBtd19pbXBvcnQgewogCSMgbXVsdGlwbGUgaW1wb3J0IGNvbW1hbmRzIGNhbiBmb2xsb3cgZWFjaCBvdGhlci4KLQlteSBAcmVmcyA9IChzaGlmdCwgZ2V0X21vcmVfcmVmcygiaW1wb3J0IikpOworCW15IEByZWZzID0gKHNoaWZ0LCBnZXRfbW9yZV9yZWZzKCdpbXBvcnQnKSk7CiAJZm9yZWFjaCBteSAkcmVmIChAcmVmcykgewogCQltd19pbXBvcnRfcmVmKCRyZWYpOwogCX0KLQlwcmludCBTVERPVVQgImRvbmVcbiI7CisJcHJpbnQgeypTVERPVVR9ICJkb25lXG4iOworCXJldHVybjsKIH0KIAogc3ViIG13X2ltcG9ydF9yZWYgewpAQCAtODEwLDQwICs3NzgsNDEgQEAKIAkjIFNpbmNlIEhFQUQgaXMgYSBzeW1ib2xpYyByZWYgdG8gbWFzdGVyIChieSBjb252ZW50aW9uLAogCSMgZm9sbG93ZWQgYnkgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCAibGlzdCIgdGhhdCB3ZSBnYXZlKSwKIAkjIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgaW4gdGhpcyBjYXNlLgotCWlmICgkcmVmIGVxICJIRUFEIikgeworCWlmICgkcmVmIGVxICdIRUFEJykgewogCQlyZXR1cm47CiAJfQogCi0JbXdfY29ubmVjdF9tYXliZSgpOworCSRtZWRpYXdpa2kgPSBjb25uZWN0X21heWJlKCRtZWRpYXdpa2ksICRyZW1vdGVuYW1lLCAkdXJsKTsKIAotCXByaW50IFNUREVSUiAiU2VhcmNoaW5nIHJldmlzaW9ucy4uLlxuIjsKKwlwcmludCB7KlNUREVSUn0gIlNlYXJjaGluZyByZXZpc2lvbnMuLi5cbiI7CiAJbXkgJGxhc3RfbG9jYWwgPSBnZXRfbGFzdF9sb2NhbF9yZXZpc2lvbigpOwogCW15ICRmZXRjaF9mcm9tID0gJGxhc3RfbG9jYWwgKyAxOwogCWlmICgkZmV0Y2hfZnJvbSA9PSAxKSB7Ci0JCXByaW50IFNUREVSUiAiLCBmZXRjaGluZyBmcm9tIGJlZ2lubmluZy5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiLCBmZXRjaGluZyBmcm9tIGJlZ2lubmluZy5cbiI7CiAJfSBlbHNlIHsKLQkJcHJpbnQgU1RERVJSICIsIGZldGNoaW5nIGZyb20gaGVyZS5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiLCBmZXRjaGluZyBmcm9tIGhlcmUuXG4iOwogCX0KIAogCW15ICRuID0gMDsKLQlpZiAoJGZldGNoX3N0cmF0ZWd5IGVxICJieV9yZXYiKSB7Ci0JCXByaW50IFNUREVSUiAiRmV0Y2hpbmcgJiB3cml0aW5nIGV4cG9ydCBkYXRhIGJ5IHJldnMuLi5cbiI7CisJaWYgKCRmZXRjaF9zdHJhdGVneSBlcSAnYnlfcmV2JykgeworCQlwcmludCB7KlNUREVSUn0gIkZldGNoaW5nICYgd3JpdGluZyBleHBvcnQgZGF0YSBieSByZXZzLi4uXG4iOwogCQkkbiA9IG13X2ltcG9ydF9yZWZfYnlfcmV2cygkZmV0Y2hfZnJvbSk7Ci0JfSBlbHNpZiAoJGZldGNoX3N0cmF0ZWd5IGVxICJieV9wYWdlIikgewotCQlwcmludCBTVERFUlIgIkZldGNoaW5nICYgd3JpdGluZyBleHBvcnQgZGF0YSBieSBwYWdlcy4uLlxuIjsKKwl9IGVsc2lmICgkZmV0Y2hfc3RyYXRlZ3kgZXEgJ2J5X3BhZ2UnKSB7CisJCXByaW50IHsqU1RERVJSfSAiRmV0Y2hpbmcgJiB3cml0aW5nIGV4cG9ydCBkYXRhIGJ5IHBhZ2VzLi4uXG4iOwogCQkkbiA9IG13X2ltcG9ydF9yZWZfYnlfcGFnZXMoJGZldGNoX2Zyb20pOwogCX0gZWxzZSB7Ci0JCXByaW50IFNUREVSUiAiZmF0YWw6IGludmFsaWQgZmV0Y2ggc3RyYXRlZ3kgXCIkZmV0Y2hfc3RyYXRlZ3lcIi5cbiI7Ci0JCXByaW50IFNUREVSUiAiQ2hlY2sgeW91ciBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyByZW1vdGUuJHJlbW90ZW5hbWUuZmV0Y2hTdHJhdGVneSBhbmQgbWVkaWF3aWtpLmZldGNoU3RyYXRlZ3lcbiI7CisJCXByaW50IHsqU1RERVJSfSBxcShmYXRhbDogaW52YWxpZCBmZXRjaCBzdHJhdGVneSAiJHtmZXRjaF9zdHJhdGVneX0iLlxuKTsKKwkJcHJpbnQgeypTVERFUlJ9ICJDaGVjayB5b3VyIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHJlbW90ZS4ke3JlbW90ZW5hbWV9LmZldGNoU3RyYXRlZ3kgYW5kIG1lZGlhd2lraS5mZXRjaFN0cmF0ZWd5XG4iOwogCQlleGl0IDE7CiAJfQogCiAJaWYgKCRmZXRjaF9mcm9tID09IDEgJiYgJG4gPT0gMCkgewotCQlwcmludCBTVERFUlIgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgTWVkaWFXaWtpLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IE1lZGlhV2lraS5cbiI7CiAJCSMgU29tZXRoaW5nIGhhcyB0byBiZSBkb25lIHJlbW90ZS1oZWxwZXIgc2lkZS4gSWYgbm90aGluZyBpcyBkb25lLCBhbiBlcnJvciBpcwogCQkjIHRocm93biBzYXlpbmcgdGhhdCBIRUFEIGlzIHJlZmVycmluZyB0byB1bmtub3duIG9iamVjdCAwMDAwMDAwMDAwMDAwMDAwMDAwCiAJCSMgYW5kIHRoZSBjbG9uZSBmYWlscy4KIAl9CisJcmV0dXJuOwogfQogCiBzdWIgbXdfaW1wb3J0X3JlZl9ieV9wYWdlcyB7CkBAIC04NTUsNyArODI0LDcgQEAKIAlteSAoJG4sIEByZXZpc2lvbnMpID0gZmV0Y2hfbXdfcmV2aXNpb25zKFxAcGFnZXMsICRmZXRjaF9mcm9tKTsKIAogCUByZXZpc2lvbnMgPSBzb3J0IHskYS0+e3JldmlkfSA8PT4gJGItPntyZXZpZH19IEByZXZpc2lvbnM7Ci0JbXkgQHJldmlzaW9uX2lkcyA9IG1hcCAkXy0+e3JldmlkfSwgQHJldmlzaW9uczsKKwlteSBAcmV2aXNpb25faWRzID0gbWFwIHsgJF8tPntyZXZpZH0gfSBAcmV2aXNpb25zOwogCiAJcmV0dXJuIG13X2ltcG9ydF9yZXZpZHMoJGZldGNoX2Zyb20sIFxAcmV2aXNpb25faWRzLCBcJXBhZ2VzX2hhc2gpOwogfQpAQCAtODgyLDcgKzg1MSw3IEBACiAJbXkgJG5fYWN0dWFsID0gMDsKIAlteSAkbGFzdF90aW1lc3RhbXAgPSAwOyAjIFBsYWNlaG9sZXIgaW4gY2FzZSAkcmV2LT50aW1lc3RhbXAgaXMgdW5kZWZpbmVkCiAKLQlmb3JlYWNoIG15ICRwYWdlcmV2aWQgKEAkcmV2aXNpb25faWRzKSB7CisJZm9yZWFjaCBteSAkcGFnZXJldmlkIChAeyRyZXZpc2lvbl9pZHN9KSB7CiAJICAgICAgICAjIENvdW50IHBhZ2UgZXZlbiBpZiB3ZSBza2lwIGl0LCBzaW5jZSB3ZSBkaXNwbGF5CiAJCSMgJG4vJHRvdGFsIGFuZCAkdG90YWwgaW5jbHVkZXMgc2tpcHBlZCBwYWdlcy4KIAkJJG4rKzsKQEAgLTg5OCw3ICs4NjcsNyBAQAogCQlteSAkcmVzdWx0ID0gJG1lZGlhd2lraS0+YXBpKCRxdWVyeSk7CiAKIAkJaWYgKCEkcmVzdWx0KSB7Ci0JCQlkaWUgIkZhaWxlZCB0byByZXRyaWV2ZSBtb2RpZmllZCBwYWdlIGZvciByZXZpc2lvbiAkcGFnZXJldmlkIjsKKwkJCWRpZSAiRmFpbGVkIHRvIHJldHJpZXZlIG1vZGlmaWVkIHBhZ2UgZm9yIHJldmlzaW9uICRwYWdlcmV2aWRcbiI7CiAJCX0KIAogCQlpZiAoZGVmaW5lZCgkcmVzdWx0LT57cXVlcnl9LT57YmFkcmV2aWRzfS0+eyRwYWdlcmV2aWR9KSkgewpAQCAtOTA3LDcgKzg3Niw3IEBACiAJCX0KIAogCQlpZiAoIWRlZmluZWQoJHJlc3VsdC0+e3F1ZXJ5fS0+e3BhZ2VzfSkpIHsKLQkJCWRpZSAiSW52YWxpZCByZXZpc2lvbiAkcGFnZXJldmlkLiI7CisJCQlkaWUgIkludmFsaWQgcmV2aXNpb24gJHtwYWdlcmV2aWR9LlxuIjsKIAkJfQogCiAJCW15IEByZXN1bHRfcGFnZXMgPSB2YWx1ZXMoJXskcmVzdWx0LT57cXVlcnl9LT57cGFnZXN9fSk7CkBAIC05MTcsOCArODg2LDggQEAKIAkJbXkgJHBhZ2VfdGl0bGUgPSAkcmVzdWx0X3BhZ2UtPnt0aXRsZX07CiAKIAkJaWYgKCFleGlzdHMoJHBhZ2VzLT57JHBhZ2VfdGl0bGV9KSkgewotCQkJcHJpbnQgU1RERVJSICIkbi8iLCBzY2FsYXIoQCRyZXZpc2lvbl9pZHMpLAotCQkJCSI6IFNraXBwaW5nIHJldmlzaW9uICMkcmV2LT57cmV2aWR9IG9mICRwYWdlX3RpdGxlXG4iOworCQkJcHJpbnQgeypTVERFUlJ9ICIke259LyIsIHNjYWxhcihAeyRyZXZpc2lvbl9pZHN9KSwKKwkJCQkiOiBTa2lwcGluZyByZXZpc2lvbiAjJHJldi0+e3JldmlkfSBvZiAke3BhZ2VfdGl0bGV9XG4iOwogCQkJbmV4dDsKIAkJfQogCkBAIC05MjcsNyArODk2LDcgQEAKIAkJbXkgJWNvbW1pdDsKIAkJJGNvbW1pdHthdXRob3J9ID0gJHJldi0+e3VzZXJ9IHx8ICdBbm9ueW1vdXMnOwogCQkkY29tbWl0e2NvbW1lbnR9ID0gJHJldi0+e2NvbW1lbnR9IHx8IEVNUFRZX01FU1NBR0U7Ci0JCSRjb21taXR7dGl0bGV9ID0gbWVkaWF3aWtpX3NtdWRnZV9maWxlbmFtZSgkcGFnZV90aXRsZSk7CisJCSRjb21taXR7dGl0bGV9ID0gc211ZGdlX2ZpbGVuYW1lKCRwYWdlX3RpdGxlKTsKIAkJJGNvbW1pdHttd19yZXZpc2lvbn0gPSAkcmV2LT57cmV2aWR9OwogCQkkY29tbWl0e2NvbnRlbnR9ID0gbWVkaWF3aWtpX3NtdWRnZSgkcmV2LT57JyonfSk7CiAKQEAgLTk0MywxNCArOTEyLDE0IEBACiAJCW15ICVtZWRpYWZpbGU7CiAJCWlmICgkbmFtZXNwYWNlKSB7CiAJCQlteSAkaWQgPSBnZXRfbXdfbmFtZXNwYWNlX2lkKCRuYW1lc3BhY2UpOwotCQkJaWYgKCRpZCAmJiAkaWQgPT0gZ2V0X213X25hbWVzcGFjZV9pZCgiRmlsZSIpKSB7CisJCQlpZiAoJGlkICYmICRpZCA9PSBnZXRfbXdfbmFtZXNwYWNlX2lkKCdGaWxlJykpIHsKIAkJCQklbWVkaWFmaWxlID0gZ2V0X213X21lZGlhZmlsZV9mb3JfcGFnZV9yZXZpc2lvbigkZmlsZW5hbWUsICRyZXYtPnt0aW1lc3RhbXB9KTsKIAkJCX0KIAkJfQogCQkjIElmIHRoaXMgaXMgYSByZXZpc2lvbiBvZiB0aGUgbWVkaWEgcGFnZSBmb3IgbmV3IHZlcnNpb24KIAkJIyBvZiBhIGZpbGUgZG8gb25lIGNvbW1vbiBjb21taXQgZm9yIGJvdGggZmlsZSBhbmQgbWVkaWEgcGFnZS4KIAkJIyBFbHNlIGRvIGNvbW1pdCBvbmx5IGZvciB0aGF0IHBhZ2UuCi0JCXByaW50IFNUREVSUiAiJG4vIiwgc2NhbGFyKEAkcmV2aXNpb25faWRzKSwgIjogUmV2aXNpb24gIyRyZXYtPntyZXZpZH0gb2YgJGNvbW1pdHt0aXRsZX1cbiI7CisJCXByaW50IHsqU1RERVJSfSAiJHtufS8iLCBzY2FsYXIoQHskcmV2aXNpb25faWRzfSksICI6IFJldmlzaW9uICMkcmV2LT57cmV2aWR9IG9mICRjb21taXR7dGl0bGV9XG4iOwogCQlpbXBvcnRfZmlsZV9yZXZpc2lvbihcJWNvbW1pdCwgKCRmZXRjaF9mcm9tID09IDEpLCAkbl9hY3R1YWwsIFwlbWVkaWFmaWxlKTsKIAl9CiAKQEAgLTk1OCwxNyArOTI3LDE3IEBACiB9CiAKIHN1YiBlcnJvcl9ub25fZmFzdF9mb3J3YXJkIHsKLQlteSAkYWR2aWNlID0gcnVuX2dpdCgiY29uZmlnIC0tYm9vbCBhZHZpY2UucHVzaE5vbkZhc3RGb3J3YXJkIik7CisJbXkgJGFkdmljZSA9IHJ1bl9naXQoJ2NvbmZpZyAtLWJvb2wgYWR2aWNlLnB1c2hOb25GYXN0Rm9yd2FyZCcpOwogCWNob21wKCRhZHZpY2UpOwotCWlmICgkYWR2aWNlIG5lICJmYWxzZSIpIHsKKwlpZiAoJGFkdmljZSBuZSAnZmFsc2UnKSB7CiAJCSMgTmF0aXZlIGdpdC1wdXNoIHdvdWxkIHNob3cgdGhpcyBhZnRlciB0aGUgc3VtbWFyeS4KIAkJIyBXZSBjYW4ndCBhc2sgaXQgdG8gZGlzcGxheSBpdCBjbGVhbmx5LCBzbyBwcmludCBpdAogCQkjIG91cnNlbHZlcyBiZWZvcmUuCi0JCXByaW50IFNUREVSUiAiVG8gcHJldmVudCB5b3UgZnJvbSBsb3NpbmcgaGlzdG9yeSwgbm9uLWZhc3QtZm9yd2FyZCB1cGRhdGVzIHdlcmUgcmVqZWN0ZWRcbiI7Ci0JCXByaW50IFNUREVSUiAiTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLiBTZWUgdGhlXG4iOwotCQlwcmludCBTVERFUlIgIidOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIHNlY3Rpb24gb2YgJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuXG4iOworCQlwcmludCB7KlNUREVSUn0gIlRvIHByZXZlbnQgeW91IGZyb20gbG9zaW5nIGhpc3RvcnksIG5vbi1mYXN0LWZvcndhcmQgdXBkYXRlcyB3ZXJlIHJlamVjdGVkXG4iOworCQlwcmludCB7KlNUREVSUn0gIk1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi4gU2VlIHRoZVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICInTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBzZWN0aW9uIG9mICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLlxuIjsKIAl9Ci0JcHJpbnQgU1RET1VUICJlcnJvciAkX1swXSBcIm5vbi1mYXN0LWZvcndhcmRcIlxuIjsKKwlwcmludCB7KlNURE9VVH0gcXEoZXJyb3IgJF9bMF0gIm5vbi1mYXN0LWZvcndhcmQiXG4pOwogCXJldHVybiAwOwogfQogCkBAIC05NzksMzQgKzk0OCwzNCBAQAogCW15ICRmaWxlX2RlbGV0ZWQgPSBzaGlmdDsKIAlteSAkc3VtbWFyeSA9IHNoaWZ0OwogCW15ICRuZXdyZXZpZDsKLQlteSAkcGF0aCA9ICJGaWxlOiIgLiAkY29tcGxldGVfZmlsZV9uYW1lOworCW15ICRwYXRoID0gIkZpbGU6JHtjb21wbGV0ZV9maWxlX25hbWV9IjsKIAlteSAlaGFzaEZpbGVzID0gZ2V0X2FsbG93ZWRfZmlsZV9leHRlbnNpb25zKCk7CiAJaWYgKCFleGlzdHMoJGhhc2hGaWxlc3skZXh0ZW5zaW9ufSkpIHsKLQkJcHJpbnQgU1RERVJSICIkY29tcGxldGVfZmlsZV9uYW1lIGlzIG5vdCBhIHBlcm1pdHRlZCBmaWxlIG9uIHRoaXMgd2lraS5cbiI7Ci0JCXByaW50IFNUREVSUiAiQ2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb2YgZmlsZSB1cGxvYWRzIGluIHlvdXIgbWVkaWF3aWtpLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICIke2NvbXBsZXRlX2ZpbGVfbmFtZX0gaXMgbm90IGEgcGVybWl0dGVkIGZpbGUgb24gdGhpcyB3aWtpLlxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJDaGVjayB0aGUgY29uZmlndXJhdGlvbiBvZiBmaWxlIHVwbG9hZHMgaW4geW91ciBtZWRpYXdpa2kuXG4iOwogCQlyZXR1cm4gJG5ld3JldmlkOwogCX0KIAkjIERlbGV0aW5nIGFuZCB1cGxvYWRpbmcgYSBmaWxlIHJlcXVpcmVzIGEgcHJpdmlsZWRnZWQgdXNlcgogCWlmICgkZmlsZV9kZWxldGVkKSB7Ci0JCW13X2Nvbm5lY3RfbWF5YmUoKTsKKwkJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCQlteSAkcXVlcnkgPSB7CiAJCQlhY3Rpb24gPT4gJ2RlbGV0ZScsCiAJCQl0aXRsZSA9PiAkcGF0aCwKIAkJCXJlYXNvbiA9PiAkc3VtbWFyeQogCQl9OwogCQlpZiAoISRtZWRpYXdpa2ktPmVkaXQoJHF1ZXJ5KSkgewotCQkJcHJpbnQgU1RERVJSICJGYWlsZWQgdG8gZGVsZXRlIGZpbGUgb24gcmVtb3RlIHdpa2lcbiI7Ci0JCQlwcmludCBTVERFUlIgIkNoZWNrIHlvdXIgcGVybWlzc2lvbnMgb24gdGhlIHJlbW90ZSBzaXRlLiBFcnJvciBjb2RlOlxuIjsKLQkJCXByaW50IFNUREVSUiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gLiAnOicgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc307CisJCQlwcmludCB7KlNUREVSUn0gIkZhaWxlZCB0byBkZWxldGUgZmlsZSBvbiByZW1vdGUgd2lraVxuIjsKKwkJCXByaW50IHsqU1RERVJSfSAiQ2hlY2sgeW91ciBwZXJtaXNzaW9ucyBvbiB0aGUgcmVtb3RlIHNpdGUuIEVycm9yIGNvZGU6XG4iOworCQkJcHJpbnQgeypTVERFUlJ9ICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuICc6JyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfTsKIAkJCWV4aXQgMTsKIAkJfQogCX0gZWxzZSB7CiAJCSMgRG9uJ3QgbGV0IHBlcmwgdHJ5IHRvIGludGVycHJldCBmaWxlIGNvbnRlbnQgYXMgVVRGLTggPT4gdXNlICJyYXciCi0JCW15ICRjb250ZW50ID0gcnVuX2dpdCgiY2F0LWZpbGUgYmxvYiAkbmV3X3NoYTEiLCAicmF3Iik7Ci0JCWlmICgkY29udGVudCBuZSAiIikgewotCQkJbXdfY29ubmVjdF9tYXliZSgpOworCQlteSAkY29udGVudCA9IHJ1bl9naXQoImNhdC1maWxlIGJsb2IgJHtuZXdfc2hhMX0iLCAncmF3Jyk7CisJCWlmICgkY29udGVudCBuZSBFTVBUWSkgeworCQkJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCQkJJG1lZGlhd2lraS0+e2NvbmZpZ30tPnt1cGxvYWRfdXJsfSA9Ci0JCQkJIiR1cmwvaW5kZXgucGhwL1NwZWNpYWw6VXBsb2FkIjsKKwkJCQkiJHt1cmx9L2luZGV4LnBocC9TcGVjaWFsOlVwbG9hZCI7CiAJCQkkbWVkaWF3aWtpLT5lZGl0KHsKIAkJCQlhY3Rpb24gPT4gJ3VwbG9hZCcsCiAJCQkJZmlsZW5hbWUgPT4gJGNvbXBsZXRlX2ZpbGVfbmFtZSwKQEAgLTEwMTgsMTIgKzk4NywxMiBAQAogCQkJfSwgewogCQkJCXNraXBfZW5jb2RpbmcgPT4gMQogCQkJfSApIHx8IGRpZSAkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gLiAnOicKLQkJCQkgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc307CisJCQkJIC4gJG1lZGlhd2lraS0+e2Vycm9yfS0+e2RldGFpbHN9IC4gIlxuIjsKIAkJCW15ICRsYXN0X2ZpbGVfcGFnZSA9ICRtZWRpYXdpa2ktPmdldF9wYWdlKHt0aXRsZSA9PiAkcGF0aH0pOwogCQkJJG5ld3JldmlkID0gJGxhc3RfZmlsZV9wYWdlLT57cmV2aWR9OwotCQkJcHJpbnQgU1RERVJSICJQdXNoZWQgZmlsZTogJG5ld19zaGExIC0gJGNvbXBsZXRlX2ZpbGVfbmFtZS5cbiI7CisJCQlwcmludCB7KlNUREVSUn0gIlB1c2hlZCBmaWxlOiAke25ld19zaGExfSAtICR7Y29tcGxldGVfZmlsZV9uYW1lfS5cbiI7CiAJCX0gZWxzZSB7Ci0JCQlwcmludCBTVERFUlIgIkVtcHR5IGZpbGUgJGNvbXBsZXRlX2ZpbGVfbmFtZSBub3QgcHVzaGVkLlxuIjsKKwkJCXByaW50IHsqU1RERVJSfSAiRW1wdHkgZmlsZSAke2NvbXBsZXRlX2ZpbGVfbmFtZX0gbm90IHB1c2hlZC5cbiI7CiAJCX0KIAl9CiAJcmV0dXJuICRuZXdyZXZpZDsKQEAgLTEwNDUsMjQgKzEwMTQsMjQgQEAKIAlteSAkbmV3cmV2aWQ7CiAKIAlpZiAoJHN1bW1hcnkgZXEgRU1QVFlfTUVTU0FHRSkgewotCQkkc3VtbWFyeSA9ICcnOworCQkkc3VtbWFyeSA9IEVNUFRZOwogCX0KIAogCW15ICRuZXdfc2hhMSA9ICRkaWZmX2luZm9fc3BsaXRbM107CiAJbXkgJG9sZF9zaGExID0gJGRpZmZfaW5mb19zcGxpdFsyXTsKIAlteSAkcGFnZV9jcmVhdGVkID0gKCRvbGRfc2hhMSBlcSBOVUxMX1NIQTEpOwogCW15ICRwYWdlX2RlbGV0ZWQgPSAoJG5ld19zaGExIGVxIE5VTExfU0hBMSk7Ci0JJGNvbXBsZXRlX2ZpbGVfbmFtZSA9IG1lZGlhd2lraV9jbGVhbl9maWxlbmFtZSgkY29tcGxldGVfZmlsZV9uYW1lKTsKKwkkY29tcGxldGVfZmlsZV9uYW1lID0gY2xlYW5fZmlsZW5hbWUoJGNvbXBsZXRlX2ZpbGVfbmFtZSk7CiAKIAlteSAoJHRpdGxlLCAkZXh0ZW5zaW9uKSA9ICRjb21wbGV0ZV9maWxlX25hbWUgPX4gL14oLiopXC4oW15cLl0qKSQvOwogCWlmICghZGVmaW5lZCgkZXh0ZW5zaW9uKSkgewotCQkkZXh0ZW5zaW9uID0gIiI7CisJCSRleHRlbnNpb24gPSBFTVBUWTsKIAl9Ci0JaWYgKCRleHRlbnNpb24gZXEgIm13IikgeworCWlmICgkZXh0ZW5zaW9uIGVxICdtdycpIHsKIAkJbXkgJG5zID0gZ2V0X213X25hbWVzcGFjZV9pZF9mb3JfcGFnZSgkY29tcGxldGVfZmlsZV9uYW1lKTsKLQkJaWYgKCRucyAmJiAkbnMgPT0gZ2V0X213X25hbWVzcGFjZV9pZCgiRmlsZSIpICYmICghJGV4cG9ydF9tZWRpYSkpIHsKLQkJCXByaW50IFNUREVSUiAiSWdub3JpbmcgbWVkaWEgZmlsZSByZWxhdGVkIHBhZ2U6ICRjb21wbGV0ZV9maWxlX25hbWVcbiI7Ci0JCQlyZXR1cm4gKCRvbGRyZXZpZCwgIm9rIik7CisJCWlmICgkbnMgJiYgJG5zID09IGdldF9td19uYW1lc3BhY2VfaWQoJ0ZpbGUnKSAmJiAoISRleHBvcnRfbWVkaWEpKSB7CisJCQlwcmludCB7KlNUREVSUn0gIklnbm9yaW5nIG1lZGlhIGZpbGUgcmVsYXRlZCBwYWdlOiAke2NvbXBsZXRlX2ZpbGVfbmFtZX1cbiI7CisJCQlyZXR1cm4gKCRvbGRyZXZpZCwgJ29rJyk7CiAJCX0KIAkJbXkgJGZpbGVfY29udGVudDsKIAkJaWYgKCRwYWdlX2RlbGV0ZWQpIHsKQEAgLTEwNzIsMTAgKzEwNDEsMTAgQEAKIAkJCSMgd2l0aCB0aGlzIGNvbnRlbnQgaW5zdGVhZDoKIAkJCSRmaWxlX2NvbnRlbnQgPSBERUxFVEVEX0NPTlRFTlQ7CiAJCX0gZWxzZSB7Ci0JCQkkZmlsZV9jb250ZW50ID0gcnVuX2dpdCgiY2F0LWZpbGUgYmxvYiAkbmV3X3NoYTEiKTsKKwkJCSRmaWxlX2NvbnRlbnQgPSBydW5fZ2l0KCJjYXQtZmlsZSBibG9iICR7bmV3X3NoYTF9Iik7CiAJCX0KIAotCQltd19jb25uZWN0X21heWJlKCk7CisJCSRtZWRpYXdpa2kgPSBjb25uZWN0X21heWJlKCRtZWRpYXdpa2ksICRyZW1vdGVuYW1lLCAkdXJsKTsKIAogCQlteSAkcmVzdWx0ID0gJG1lZGlhd2lraS0+ZWRpdCggewogCQkJYWN0aW9uID0+ICdlZGl0JywKQEAgLTEwODksNDkgKzEwNTgsNDkgQEAKIAkJaWYgKCEkcmVzdWx0KSB7CiAJCQlpZiAoJG1lZGlhd2lraS0+e2Vycm9yfS0+e2NvZGV9ID09IDMpIHsKIAkJCQkjIGVkaXQgY29uZmxpY3RzLCBjb25zaWRlcmVkIGFzIG5vbi1mYXN0LWZvcndhcmQKLQkJCQlwcmludCBTVERFUlIgJ1dhcm5pbmc6IEVycm9yICcgLgorCQkJCXByaW50IHsqU1RERVJSfSAnV2FybmluZzogRXJyb3IgJyAuCiAJCQkJICAgICRtZWRpYXdpa2ktPntlcnJvcn0tPntjb2RlfSAuCi0JCQkJICAgICcgZnJvbSBtZWRpd2lraTogJyAuICRtZWRpYXdpa2ktPntlcnJvcn0tPntkZXRhaWxzfSAuCisJCQkJICAgICcgZnJvbSBtZWRpYXdpa2k6ICcgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLgogCQkJCSAgICAiLlxuIjsKLQkJCQlyZXR1cm4gKCRvbGRyZXZpZCwgIm5vbi1mYXN0LWZvcndhcmQiKTsKKwkJCQlyZXR1cm4gKCRvbGRyZXZpZCwgJ25vbi1mYXN0LWZvcndhcmQnKTsKIAkJCX0gZWxzZSB7CiAJCQkJIyBPdGhlciBlcnJvcnMuIFNob3VsZG4ndCBoYXBwZW4gPT4ganVzdCBkaWUoKQogCQkJCWRpZSAnRmF0YWw6IEVycm9yICcgLgogCQkJCSAgICAkbWVkaWF3aWtpLT57ZXJyb3J9LT57Y29kZX0gLgotCQkJCSAgICAnIGZyb20gbWVkaXdpa2k6ICcgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc307CisJCQkJICAgICcgZnJvbSBtZWRpYXdpa2k6ICcgLiAkbWVkaWF3aWtpLT57ZXJyb3J9LT57ZGV0YWlsc30gLiAiXG4iOwogCQkJfQogCQl9CiAJCSRuZXdyZXZpZCA9ICRyZXN1bHQtPntlZGl0fS0+e25ld3JldmlkfTsKLQkJcHJpbnQgU1RERVJSICJQdXNoZWQgZmlsZTogJG5ld19zaGExIC0gJHRpdGxlXG4iOworCQlwcmludCB7KlNUREVSUn0gIlB1c2hlZCBmaWxlOiAke25ld19zaGExfSAtICR7dGl0bGV9XG4iOwogCX0gZWxzaWYgKCRleHBvcnRfbWVkaWEpIHsKIAkJJG5ld3JldmlkID0gbXdfdXBsb2FkX2ZpbGUoJGNvbXBsZXRlX2ZpbGVfbmFtZSwgJG5ld19zaGExLAogCQkJCQkgICAkZXh0ZW5zaW9uLCAkcGFnZV9kZWxldGVkLAogCQkJCQkgICAkc3VtbWFyeSk7CiAJfSBlbHNlIHsKLQkJcHJpbnQgU1RERVJSICJJZ25vcmluZyBtZWRpYSBmaWxlICR0aXRsZVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJJZ25vcmluZyBtZWRpYSBmaWxlICR7dGl0bGV9XG4iOwogCX0KIAkkbmV3cmV2aWQgPSAoJG5ld3JldmlkIG9yICRvbGRyZXZpZCk7Ci0JcmV0dXJuICgkbmV3cmV2aWQsICJvayIpOworCXJldHVybiAoJG5ld3JldmlkLCAnb2snKTsKIH0KIAogc3ViIG13X3B1c2ggewogCSMgbXVsdGlwbGUgcHVzaCBzdGF0ZW1lbnRzIGNhbiBmb2xsb3cgZWFjaCBvdGhlcgotCW15IEByZWZzc3BlY3MgPSAoc2hpZnQsIGdldF9tb3JlX3JlZnMoInB1c2giKSk7CisJbXkgQHJlZnNzcGVjcyA9IChzaGlmdCwgZ2V0X21vcmVfcmVmcygncHVzaCcpKTsKIAlteSAkcHVzaGVkOwogCWZvciBteSAkcmVmc3BlYyAoQHJlZnNzcGVjcykgewogCQlteSAoJGZvcmNlLCAkbG9jYWwsICRyZW1vdGUpID0gJHJlZnNwZWMgPX4gL14oXCspPyhbXjpdKik6KFteOl0qKSQvCi0JCSAgICBvciBkaWUoIkludmFsaWQgcmVmc3BlYyBmb3IgcHVzaC4gRXhwZWN0ZWQgPHNyYz46PGRzdD4gb3IgKzxzcmM+Ojxkc3Q+Iik7CisJCSAgICBvciBkaWUoIkludmFsaWQgcmVmc3BlYyBmb3IgcHVzaC4gRXhwZWN0ZWQgPHNyYz46PGRzdD4gb3IgKzxzcmM+Ojxkc3Q+XG4iKTsKIAkJaWYgKCRmb3JjZSkgewotCQkJcHJpbnQgU1RERVJSICJXYXJuaW5nOiBmb3JjZWQgcHVzaCBub3QgYWxsb3dlZCBvbiBhIE1lZGlhV2lraS5cbiI7CisJCQlwcmludCB7KlNUREVSUn0gIldhcm5pbmc6IGZvcmNlZCBwdXNoIG5vdCBhbGxvd2VkIG9uIGEgTWVkaWFXaWtpLlxuIjsKIAkJfQotCQlpZiAoJGxvY2FsIGVxICIiKSB7Ci0JCQlwcmludCBTVERFUlIgIkNhbm5vdCBkZWxldGUgcmVtb3RlIGJyYW5jaCBvbiBhIE1lZGlhV2lraVxuIjsKLQkJCXByaW50IFNURE9VVCAiZXJyb3IgJHJlbW90ZSBjYW5ub3QgZGVsZXRlXG4iOworCQlpZiAoJGxvY2FsIGVxIEVNUFRZKSB7CisJCQlwcmludCB7KlNUREVSUn0gIkNhbm5vdCBkZWxldGUgcmVtb3RlIGJyYW5jaCBvbiBhIE1lZGlhV2lraVxuIjsKKwkJCXByaW50IHsqU1RET1VUfSAiZXJyb3IgJHtyZW1vdGV9IGNhbm5vdCBkZWxldGVcbiI7CiAJCQluZXh0OwogCQl9Ci0JCWlmICgkcmVtb3RlIG5lICJyZWZzL2hlYWRzL21hc3RlciIpIHsKLQkJCXByaW50IFNUREVSUiAiT25seSBwdXNoIHRvIHRoZSBicmFuY2ggJ21hc3RlcicgaXMgc3VwcG9ydGVkIG9uIGEgTWVkaWFXaWtpXG4iOwotCQkJcHJpbnQgU1RET1VUICJlcnJvciAkcmVtb3RlIG9ubHkgbWFzdGVyIGFsbG93ZWRcbiI7CisJCWlmICgkcmVtb3RlIG5lICdyZWZzL2hlYWRzL21hc3RlcicpIHsKKwkJCXByaW50IHsqU1RERVJSfSAiT25seSBwdXNoIHRvIHRoZSBicmFuY2ggJ21hc3RlcicgaXMgc3VwcG9ydGVkIG9uIGEgTWVkaWFXaWtpXG4iOworCQkJcHJpbnQgeypTVERPVVR9ICJlcnJvciAke3JlbW90ZX0gb25seSBtYXN0ZXIgYWxsb3dlZFxuIjsKIAkJCW5leHQ7CiAJCX0KIAkJaWYgKG13X3B1c2hfcmV2aXNpb24oJGxvY2FsLCAkcmVtb3RlKSkgewpAQCAtMTE0MCwzMCArMTEwOSwzMiBAQAogCX0KIAogCSMgTm90aWZ5IEdpdCB0aGF0IHRoZSBwdXNoIGlzIGRvbmUKLQlwcmludCBTVERPVVQgIlxuIjsKKwlwcmludCB7KlNURE9VVH0gIlxuIjsKIAogCWlmICgkcHVzaGVkICYmICRkdW1iX3B1c2gpIHsKLQkJcHJpbnQgU1RERVJSICJKdXN0IHB1c2hlZCBzb21lIHJldmlzaW9ucyB0byBNZWRpYVdpa2kuXG4iOwotCQlwcmludCBTVERFUlIgIlRoZSBwdXNoZWQgcmV2aXNpb25zIG5vdyBoYXZlIHRvIGJlIHJlLWltcG9ydGVkLCBhbmQgeW91ciBjdXJyZW50IGJyYW5jaFxuIjsKLQkJcHJpbnQgU1RERVJSICJuZWVkcyB0byBiZSB1cGRhdGVkIHdpdGggdGhlc2UgcmUtaW1wb3J0ZWQgY29tbWl0cy4gWW91IGNhbiBkbyB0aGlzIHdpdGhcbiI7Ci0JCXByaW50IFNUREVSUiAiXG4iOwotCQlwcmludCBTVERFUlIgIiAgZ2l0IHB1bGwgLS1yZWJhc2VcbiI7Ci0JCXByaW50IFNUREVSUiAiXG4iOworCQlwcmludCB7KlNUREVSUn0gIkp1c3QgcHVzaGVkIHNvbWUgcmV2aXNpb25zIHRvIE1lZGlhV2lraS5cbiI7CisJCXByaW50IHsqU1RERVJSfSAiVGhlIHB1c2hlZCByZXZpc2lvbnMgbm93IGhhdmUgdG8gYmUgcmUtaW1wb3J0ZWQsIGFuZCB5b3VyIGN1cnJlbnQgYnJhbmNoXG4iOworCQlwcmludCB7KlNUREVSUn0gIm5lZWRzIHRvIGJlIHVwZGF0ZWQgd2l0aCB0aGVzZSByZS1pbXBvcnRlZCBjb21taXRzLiBZb3UgY2FuIGRvIHRoaXMgd2l0aFxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJcbiI7CisJCXByaW50IHsqU1RERVJSfSAiICBnaXQgcHVsbCAtLXJlYmFzZVxuIjsKKwkJcHJpbnQgeypTVERFUlJ9ICJcbiI7CiAJfQorCXJldHVybjsKIH0KIAogc3ViIG13X3B1c2hfcmV2aXNpb24gewogCW15ICRsb2NhbCA9IHNoaWZ0OwogCW15ICRyZW1vdGUgPSBzaGlmdDsgIyBhY3R1YWxseSwgdGhpcyBoYXMgdG8gYmUgInJlZnMvaGVhZHMvbWFzdGVyIiBhdCB0aGlzIHBvaW50LgogCW15ICRsYXN0X2xvY2FsX3JldmlkID0gZ2V0X2xhc3RfbG9jYWxfcmV2aXNpb24oKTsKLQlwcmludCBTVERFUlIgIi5cbiI7ICMgRmluaXNoIHNlbnRlbmNlIHN0YXJ0ZWQgYnkgZ2V0X2xhc3RfbG9jYWxfcmV2aXNpb24oKQorCXByaW50IHsqU1RERVJSfSAiLlxuIjsgIyBGaW5pc2ggc2VudGVuY2Ugc3RhcnRlZCBieSBnZXRfbGFzdF9sb2NhbF9yZXZpc2lvbigpCiAJbXkgJGxhc3RfcmVtb3RlX3JldmlkID0gZ2V0X2xhc3RfcmVtb3RlX3JldmlzaW9uKCk7CiAJbXkgJG13X3JldmlzaW9uID0gJGxhc3RfcmVtb3RlX3JldmlkOwogCiAJIyBHZXQgc2hhMSBvZiBjb21taXQgcG9pbnRlZCBieSBsb2NhbCBIRUFECi0JbXkgJEhFQURfc2hhMSA9IHJ1bl9naXQoInJldi1wYXJzZSAkbG9jYWwgMj4vZGV2L251bGwiKTsgY2hvbXAoJEhFQURfc2hhMSk7CisJbXkgJEhFQURfc2hhMSA9IHJ1bl9naXQoInJldi1wYXJzZSAke2xvY2FsfSAyPi9kZXYvbnVsbCIpOworCWNob21wKCRIRUFEX3NoYTEpOwogCSMgR2V0IHNoYTEgb2YgY29tbWl0IHBvaW50ZWQgYnkgcmVtb3Rlcy8kcmVtb3RlbmFtZS9tYXN0ZXIKLQlteSAkcmVtb3Rlb3JpZ2luX3NoYTEgPSBydW5fZ2l0KCJyZXYtcGFyc2UgcmVmcy9yZW1vdGVzLyRyZW1vdGVuYW1lL21hc3RlciAyPi9kZXYvbnVsbCIpOworCW15ICRyZW1vdGVvcmlnaW5fc2hhMSA9IHJ1bl9naXQoInJldi1wYXJzZSByZWZzL3JlbW90ZXMvJHtyZW1vdGVuYW1lfS9tYXN0ZXIgMj4vZGV2L251bGwiKTsKIAljaG9tcCgkcmVtb3Rlb3JpZ2luX3NoYTEpOwogCiAJaWYgKCRsYXN0X2xvY2FsX3JldmlkID4gMCAmJgpAQCAtMTE4MiwyMiArMTE1MywyMiBAQAogCWlmICgkbGFzdF9sb2NhbF9yZXZpZCA+IDApIHsKIAkJbXkgJHBhcnNlZF9zaGExID0gJHJlbW90ZW9yaWdpbl9zaGExOwogCQkjIEZpbmQgYSBwYXRoIGZyb20gbGFzdCBNZWRpYVdpa2kgY29tbWl0IHRvIHB1c2hlZCBjb21taXQKLQkJcHJpbnQgU1RERVJSICJDb21wdXRpbmcgcGF0aCBmcm9tIGxvY2FsIHRvIHJlbW90ZSAuLi5cbiI7Ci0JCW15IEBsb2NhbF9hbmNlc3RyeSA9IHNwbGl0KC9cbi8sIHJ1bl9naXQoInJldi1saXN0IC0tYm91bmRhcnkgLS1wYXJlbnRzICRsb2NhbCBeJHBhcnNlZF9zaGExIikpOworCQlwcmludCB7KlNUREVSUn0gIkNvbXB1dGluZyBwYXRoIGZyb20gbG9jYWwgdG8gcmVtb3RlIC4uLlxuIjsKKwkJbXkgQGxvY2FsX2FuY2VzdHJ5ID0gc3BsaXQoL1xuLywgcnVuX2dpdCgicmV2LWxpc3QgLS1ib3VuZGFyeSAtLXBhcmVudHMgJHtsb2NhbH0gXiR7cGFyc2VkX3NoYTF9IikpOwogCQlteSAlbG9jYWxfYW5jZXN0cnk7CiAJCWZvcmVhY2ggbXkgJGxpbmUgKEBsb2NhbF9hbmNlc3RyeSkgewotCQkJaWYgKG15ICgkY2hpbGQsICRwYXJlbnRzKSA9ICRsaW5lID1+IG0vXi0/KFthLWYwLTldKykgKFthLWYwLTkgXSspLykgewotCQkJCWZvcmVhY2ggbXkgJHBhcmVudCAoc3BsaXQoJyAnLCAkcGFyZW50cykpIHsKKwkJCWlmIChteSAoJGNoaWxkLCAkcGFyZW50cykgPSAkbGluZSA9fiAvXi0/KFthLWYwLTldKykgKFthLWYwLTkgXSspLykgeworCQkJCWZvcmVhY2ggbXkgJHBhcmVudCAoc3BsaXQoLyAvLCAkcGFyZW50cykpIHsKIAkJCQkJJGxvY2FsX2FuY2VzdHJ5eyRwYXJlbnR9ID0gJGNoaWxkOwogCQkJCX0KLQkJCX0gZWxzaWYgKCEkbGluZSA9fiBtL14oW2EtZjAtOV0rKS8pIHsKLQkJCQlkaWUgIlVuZXhwZWN0ZWQgb3V0cHV0IGZyb20gZ2l0IHJldi1saXN0OiAkbGluZSI7CisJCQl9IGVsc2lmICghJGxpbmUgPX4gL14oW2EtZjAtOV0rKS8pIHsKKwkJCQlkaWUgIlVuZXhwZWN0ZWQgb3V0cHV0IGZyb20gZ2l0IHJldi1saXN0OiAke2xpbmV9XG4iOwogCQkJfQogCQl9CiAJCXdoaWxlICgkcGFyc2VkX3NoYTEgbmUgJEhFQURfc2hhMSkgewogCQkJbXkgJGNoaWxkID0gJGxvY2FsX2FuY2VzdHJ5eyRwYXJzZWRfc2hhMX07CiAJCQlpZiAoISRjaGlsZCkgewotCQkJCXByaW50ZiBTVERFUlIgIkNhbm5vdCBmaW5kIGEgcGF0aCBpbiBoaXN0b3J5IGZyb20gcmVtb3RlIGNvbW1pdCB0byBsYXN0IGNvbW1pdFxuIjsKKwkJCQlwcmludCB7KlNUREVSUn0gIkNhbm5vdCBmaW5kIGEgcGF0aCBpbiBoaXN0b3J5IGZyb20gcmVtb3RlIGNvbW1pdCB0byBsYXN0IGNvbW1pdFxuIjsKIAkJCQlyZXR1cm4gZXJyb3Jfbm9uX2Zhc3RfZm9yd2FyZCgkcmVtb3RlKTsKIAkJCX0KIAkJCXB1c2goQGNvbW1pdF9wYWlycywgWyRwYXJzZWRfc2hhMSwgJGNoaWxkXSk7CkBAIC0xMjA2LDEyICsxMTc3LDEyIEBACiAJfSBlbHNlIHsKIAkJIyBObyByZW1vdGUgbWVkaWF3aWtpIHJldmlzaW9uLiBFeHBvcnQgdGhlIHdob2xlCiAJCSMgaGlzdG9yeSAobGluZWFyaXplZCB3aXRoIC0tZmlyc3QtcGFyZW50KQotCQlwcmludCBTVERFUlIgIldhcm5pbmc6IG5vIGNvbW1vbiBhbmNlc3RvciwgcHVzaGluZyBjb21wbGV0ZSBoaXN0b3J5XG4iOwotCQlteSAkaGlzdG9yeSA9IHJ1bl9naXQoInJldi1saXN0IC0tZmlyc3QtcGFyZW50IC0tY2hpbGRyZW4gJGxvY2FsIik7Ci0JCW15IEBoaXN0b3J5ID0gc3BsaXQoJ1xuJywgJGhpc3RvcnkpOworCQlwcmludCB7KlNUREVSUn0gIldhcm5pbmc6IG5vIGNvbW1vbiBhbmNlc3RvciwgcHVzaGluZyBjb21wbGV0ZSBoaXN0b3J5XG4iOworCQlteSAkaGlzdG9yeSA9IHJ1bl9naXQoInJldi1saXN0IC0tZmlyc3QtcGFyZW50IC0tY2hpbGRyZW4gJHtsb2NhbH0iKTsKKwkJbXkgQGhpc3RvcnkgPSBzcGxpdCgvXG4vLCAkaGlzdG9yeSk7CiAJCUBoaXN0b3J5ID0gQGhpc3RvcnlbMS4uJCNoaXN0b3J5XTsKIAkJZm9yZWFjaCBteSAkbGluZSAocmV2ZXJzZSBAaGlzdG9yeSkgewotCQkJbXkgQGNvbW1pdF9pbmZvX3NwbGl0ID0gc3BsaXQoLyB8XG4vLCAkbGluZSk7CisJCQlteSBAY29tbWl0X2luZm9fc3BsaXQgPSBzcGxpdCgvWyBcbl0vLCAkbGluZSk7CiAJCQlwdXNoKEBjb21taXRfcGFpcnMsIFxAY29tbWl0X2luZm9fc3BsaXQpOwogCQl9CiAJfQpAQCAtMTIxOSwxMiArMTE5MCwxMiBAQAogCWZvcmVhY2ggbXkgJGNvbW1pdF9pbmZvX3NwbGl0IChAY29tbWl0X3BhaXJzKSB7CiAJCW15ICRzaGExX2NoaWxkID0gQHskY29tbWl0X2luZm9fc3BsaXR9WzBdOwogCQlteSAkc2hhMV9jb21taXQgPSBAeyRjb21taXRfaW5mb19zcGxpdH1bMV07Ci0JCW15ICRkaWZmX2luZm9zID0gcnVuX2dpdCgiZGlmZi10cmVlIC1yIC0tcmF3IC16ICRzaGExX2NoaWxkICRzaGExX2NvbW1pdCIpOworCQlteSAkZGlmZl9pbmZvcyA9IHJ1bl9naXQoImRpZmYtdHJlZSAtciAtLXJhdyAteiAke3NoYTFfY2hpbGR9ICR7c2hhMV9jb21taXR9Iik7CiAJCSMgVE9ETzogd2UgY291bGQgZGV0ZWN0IHJlbmFtZSwgYW5kIGVuY29kZSB0aGVtIHdpdGggYSAjcmVkaXJlY3Qgb24gdGhlIHdpa2kuCiAJCSMgVE9ETzogZm9yIG5vdywgaXQncyBqdXN0IGEgZGVsZXRlK2FkZAogCQlteSBAZGlmZl9pbmZvX2xpc3QgPSBzcGxpdCgvXDAvLCAkZGlmZl9pbmZvcyk7CiAJCSMgS2VlcCB0aGUgc3ViamVjdCBsaW5lIG9mIHRoZSBjb21taXQgbWVzc2FnZSBhcyBtZWRpYXdpa2kgY29tbWVudCBmb3IgdGhlIHJldmlzaW9uCi0JCW15ICRjb21taXRfbXNnID0gcnVuX2dpdCgibG9nIC0tbm8td2FsayAtLWZvcm1hdD1cIiVzXCIgJHNoYTFfY29tbWl0Iik7CisJCW15ICRjb21taXRfbXNnID0gcnVuX2dpdChxcShsb2cgLS1uby13YWxrIC0tZm9ybWF0PSIlcyIgJHtzaGExX2NvbW1pdH0pKTsKIAkJY2hvbXAoJGNvbW1pdF9tc2cpOwogCQkjIFB1c2ggZXZlcnkgYmxvYgogCQl3aGlsZSAoQGRpZmZfaW5mb19saXN0KSB7CkBAIC0xMjM2LDcgKzEyMDcsNyBAQAogCQkJbXkgJGluZm8gPSBzaGlmdChAZGlmZl9pbmZvX2xpc3QpOwogCQkJbXkgJGZpbGUgPSBzaGlmdChAZGlmZl9pbmZvX2xpc3QpOwogCQkJKCRtd19yZXZpc2lvbiwgJHN0YXR1cykgPSBtd19wdXNoX2ZpbGUoJGluZm8sICRmaWxlLCAkY29tbWl0X21zZywgJG13X3JldmlzaW9uKTsKLQkJCWlmICgkc3RhdHVzIGVxICJub24tZmFzdC1mb3J3YXJkIikgeworCQkJaWYgKCRzdGF0dXMgZXEgJ25vbi1mYXN0LWZvcndhcmQnKSB7CiAJCQkJIyB3ZSBtYXkgYWxyZWFkeSBoYXZlIHNlbnQgcGFydCBvZiB0aGUKIAkJCQkjIGNvbW1pdCB0byBNZWRpYVdpa2ksIGJ1dCBpdCdzIHRvbwogCQkJCSMgbGF0ZSB0byBjYW5jZWwgaXQuIFN0b3AgdGhlIHB1c2ggaW4KQEAgLTEyNDQsMjIgKzEyMTUsMjIgQEAKIAkJCQkjIGFjY3VyYXRlIGVycm9yIG1lc3NhZ2UuCiAJCQkJcmV0dXJuIGVycm9yX25vbl9mYXN0X2ZvcndhcmQoJHJlbW90ZSk7CiAJCQl9Ci0JCQlpZiAoJHN0YXR1cyBuZSAib2siKSB7Ci0JCQkJZGllKCJVbmtub3duIGVycm9yIGZyb20gbXdfcHVzaF9maWxlKCkiKTsKKwkJCWlmICgkc3RhdHVzIG5lICdvaycpIHsKKwkJCQlkaWUoIlVua25vd24gZXJyb3IgZnJvbSBtd19wdXNoX2ZpbGUoKVxuIik7CiAJCQl9CiAJCX0KLQkJdW5sZXNzICgkZHVtYl9wdXNoKSB7Ci0JCQlydW5fZ2l0KCJub3RlcyAtLXJlZj0kcmVtb3RlbmFtZS9tZWRpYXdpa2kgYWRkIC1mIC1tIFwibWVkaWF3aWtpX3JldmlzaW9uOiAkbXdfcmV2aXNpb25cIiAkc2hhMV9jb21taXQiKTsKLQkJCXJ1bl9naXQoInVwZGF0ZS1yZWYgLW0gXCJHaXQtTWVkaWFXaWtpIHB1c2hcIiByZWZzL21lZGlhd2lraS8kcmVtb3RlbmFtZS9tYXN0ZXIgJHNoYTFfY29tbWl0ICRzaGExX2NoaWxkIik7CisJCWlmICghJGR1bWJfcHVzaCkgeworCQkJcnVuX2dpdChxcShub3RlcyAtLXJlZj0ke3JlbW90ZW5hbWV9L21lZGlhd2lraSBhZGQgLWYgLW0gIm1lZGlhd2lraV9yZXZpc2lvbjogJHttd19yZXZpc2lvbn0iICR7c2hhMV9jb21taXR9KSk7CisJCQlydW5fZ2l0KHFxKHVwZGF0ZS1yZWYgLW0gIkdpdC1NZWRpYVdpa2kgcHVzaCIgcmVmcy9tZWRpYXdpa2kvJHtyZW1vdGVuYW1lfS9tYXN0ZXIgJHtzaGExX2NvbW1pdH0gJHtzaGExX2NoaWxkfSkpOwogCQl9CiAJfQogCi0JcHJpbnQgU1RET1VUICJvayAkcmVtb3RlXG4iOworCXByaW50IHsqU1RET1VUfSAib2sgJHtyZW1vdGV9XG4iOwogCXJldHVybiAxOwogfQogCiBzdWIgZ2V0X2FsbG93ZWRfZmlsZV9leHRlbnNpb25zIHsKLQltd19jb25uZWN0X21heWJlKCk7CisJJG1lZGlhd2lraSA9IGNvbm5lY3RfbWF5YmUoJG1lZGlhd2lraSwgJHJlbW90ZW5hbWUsICR1cmwpOwogCiAJbXkgJHF1ZXJ5ID0gewogCQlhY3Rpb24gPT4gJ3F1ZXJ5JywKQEAgLTEyNjcsOCArMTIzOCw4IEBACiAJCXNpcHJvcCA9PiAnZmlsZWV4dGVuc2lvbnMnCiAJCX07CiAJbXkgJHJlc3VsdCA9ICRtZWRpYXdpa2ktPmFwaSgkcXVlcnkpOwotCW15IEBmaWxlX2V4dGVuc2lvbnM9IG1hcCAkXy0+e2V4dH0sQHskcmVzdWx0LT57cXVlcnl9LT57ZmlsZWV4dGVuc2lvbnN9fTsKLQlteSAlaGFzaEZpbGUgPSBtYXAgeyRfID0+IDF9QGZpbGVfZXh0ZW5zaW9uczsKKwlteSBAZmlsZV9leHRlbnNpb25zID0gbWFwIHsgJF8tPntleHR9fSBAeyRyZXN1bHQtPntxdWVyeX0tPntmaWxlZXh0ZW5zaW9uc319OworCW15ICVoYXNoRmlsZSA9IG1hcCB7ICRfID0+IDEgfSBAZmlsZV9leHRlbnNpb25zOwogCiAJcmV0dXJuICVoYXNoRmlsZTsKIH0KQEAgLTEyODMsMTUgKzEyNTQsMTUgQEAKICMgUmV0dXJuIE1lZGlhV2lraSBpZCBmb3IgYSBjYW5vbmljYWwgbmFtZXNwYWNlIG5hbWUuCiAjIEV4LjogIkZpbGUiLCAiUHJvamVjdCIuCiBzdWIgZ2V0X213X25hbWVzcGFjZV9pZCB7Ci0JbXdfY29ubmVjdF9tYXliZSgpOworCSRtZWRpYXdpa2kgPSBjb25uZWN0X21heWJlKCRtZWRpYXdpa2ksICRyZW1vdGVuYW1lLCAkdXJsKTsKIAlteSAkbmFtZSA9IHNoaWZ0OwogCiAJaWYgKCFleGlzdHMgJG5hbWVzcGFjZV9pZHskbmFtZX0pIHsKIAkJIyBMb29rIGF0IGNvbmZpZ3VyYXRpb24gZmlsZSwgaWYgdGhlIHJlY29yZCBmb3IgdGhhdCBuYW1lc3BhY2UgaXMKIAkJIyBhbHJlYWR5IGNhY2hlZC4gTmFtZXNwYWNlcyBhcmUgc3RvcmVkIGluIGZvcm06CiAJCSMgIk5hbWVfb2ZfbmFtZXNwYWNlOklkX25hbWVzcGFjZSIsIGV4LjogIkZpbGU6NiIuCi0JCW15IEB0ZW1wID0gc3BsaXQoL1tcbl0vLCBydW5fZ2l0KCJjb25maWcgLS1nZXQtYWxsIHJlbW90ZS4iCi0JCQkJCQkuICRyZW1vdGVuYW1lIC4iLm5hbWVzcGFjZUNhY2hlIikpOworCQlteSBAdGVtcCA9IHNwbGl0KC9cbi8sCisJCQkJIHJ1bl9naXQoImNvbmZpZyAtLWdldC1hbGwgcmVtb3RlLiR7cmVtb3RlbmFtZX0ubmFtZXNwYWNlQ2FjaGUiKSk7CiAJCWNob21wKEB0ZW1wKTsKIAkJZm9yZWFjaCBteSAkbnMgKEB0ZW1wKSB7CiAJCQlteSAoJG4sICRpZCkgPSBzcGxpdCgvOi8sICRucyk7CkBAIC0xMzA1LDcgKzEyNzYsNyBAQAogCX0KIAogCWlmICghZXhpc3RzICRuYW1lc3BhY2VfaWR7JG5hbWV9KSB7Ci0JCXByaW50IFNUREVSUiAiTmFtZXNwYWNlICRuYW1lIG5vdCBmb3VuZCBpbiBjYWNoZSwgcXVlcnlpbmcgdGhlIHdpa2kgLi4uXG4iOworCQlwcmludCB7KlNUREVSUn0gIk5hbWVzcGFjZSAke25hbWV9IG5vdCBmb3VuZCBpbiBjYWNoZSwgcXVlcnlpbmcgdGhlIHdpa2kgLi4uXG4iOwogCQkjIE5TIG5vdCBmb3VuZCA9PiBnZXQgbmFtZXNwYWNlIGlkIGZyb20gTVcgYW5kIHN0b3JlIGl0IGluCiAJICAgICAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZS4KIAkgICAgICAgIG15ICRxdWVyeSA9IHsKQEAgLTEzMjksOCArMTMwMCw4IEBACiAJbXkgJG5zID0gJG5hbWVzcGFjZV9pZHskbmFtZX07CiAJbXkgJGlkOwogCi0JdW5sZXNzIChkZWZpbmVkICRucykgewotCQlwcmludCBTVERFUlIgIk5vIHN1Y2ggbmFtZXNwYWNlICRuYW1lIG9uIE1lZGlhV2lraS5cbiI7CisJaWYgKCFkZWZpbmVkICRucykgeworCQlwcmludCB7KlNUREVSUn0gIk5vIHN1Y2ggbmFtZXNwYWNlICR7bmFtZX0gb24gTWVkaWFXaWtpLlxuIjsKIAkJJG5zID0ge2lzX25hbWVzcGFjZSA9PiAwfTsKIAkJJG5hbWVzcGFjZV9pZHskbmFtZX0gPSAkbnM7CiAJfQpAQCAtMTM0NCwxNSArMTMxNSwxNSBAQAogCiAJIyBTdG9yZSBleHBsaWNpdGVseSByZXF1ZXN0ZWQgbmFtZXNwYWNlcyBvbiBkaXNrCiAJaWYgKCFleGlzdHMgJGNhY2hlZF9td19uYW1lc3BhY2VfaWR7JG5hbWV9KSB7Ci0JCXJ1bl9naXQoImNvbmZpZyAtLWFkZCByZW1vdGUuIi4gJHJlbW90ZW5hbWUKLQkJCS4iLm5hbWVzcGFjZUNhY2hlIFwiIi4gJG5hbWUgLiI6Ii4gJHN0b3JlX2lkIC4iXCIiKTsKKwkJcnVuX2dpdChxcShjb25maWcgLS1hZGQgcmVtb3RlLiR7cmVtb3RlbmFtZX0ubmFtZXNwYWNlQ2FjaGUgIiR7bmFtZX06JHtzdG9yZV9pZH0iKSk7CiAJCSRjYWNoZWRfbXdfbmFtZXNwYWNlX2lkeyRuYW1lfSA9IDE7CiAJfQogCXJldHVybiAkaWQ7CiB9CiAKIHN1YiBnZXRfbXdfbmFtZXNwYWNlX2lkX2Zvcl9wYWdlIHsKLQlpZiAobXkgKCRuYW1lc3BhY2UpID0gJF9bMF0gPX4gL14oW146XSopOi8pIHsKKwlteSAkbmFtZXNwYWNlID0gc2hpZnQ7CisJaWYgKCRuYW1lc3BhY2UgPX4gL14oW146XSopOi8pIHsKIAkJcmV0dXJuIGdldF9td19uYW1lc3BhY2VfaWQoJG5hbWVzcGFjZSk7CiAJfSBlbHNlIHsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvdC90OTM2NS1jb250aW51aW5nLXF1ZXJpZXMuc2ggYi9jb250cmliL213LXRvLWdpdC90L3Q5MzY1LWNvbnRpbnVpbmctcXVlcmllcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yN2UyNjdmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9tdy10by1naXQvdC90OTM2NS1jb250aW51aW5nLXF1ZXJpZXMuc2gKQEAgLTAsMCArMSwyMyBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J1Rlc3QgdGhlIEdpdCBNZWRpYXdpa2kgcmVtb3RlIGhlbHBlcjogcXVlcmllcyB3LyBtb3JlIHRoYW4gNTAwIHJlc3VsdHMnCisKKy4gLi90ZXN0LWdpdG13LWxpYi5zaAorLiAkVEVTVF9ESVJFQ1RPUlkvdGVzdC1saWIuc2gKKwordGVzdF9jaGVja19wcmVjb25kCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0aW5nIHBhZ2Ugdy8gPjUwMCByZXZpc2lvbnMnICcKKwl3aWtpX3Jlc2V0ICYmCisJZm9yIGkgaW4gYHRlc3Rfc2VxIDUwMWAKKwlkbworCQllY2hvICJjcmVhdGluZyByZXZpc2lvbiAkaSIgJiYKKwkJd2lraV9lZGl0cGFnZSBmb28gInJldmlzaW9uICRpPGJyLz4iIHRydWUKKwlkb25lCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25pbmcgcGFnZSB3LyA+NTAwIHJldmlzaW9ucycgJworCWdpdCBjbG9uZSBtZWRpYXdpa2k6OiciJFdJS0lfVVJMIicgbXdfZGlyCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9tdy10by1naXQvdC90ZXN0LWdpdG13LWxpYi5zaCBiL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC1naXRtdy1saWIuc2gKaW5kZXggM2IyY2ZhYy4uY2E2ODYwZiAxMDA3NTUKLS0tIGEvY29udHJpYi9tdy10by1naXQvdC90ZXN0LWdpdG13LWxpYi5zaAorKysgYi9jb250cmliL213LXRvLWdpdC90L3Rlc3QtZ2l0bXctbGliLnNoCkBAIC02MiwxMiArNjIsOCBAQAogCQl0ZXN0X2RvbmUKIAlmaQogCi0JaWYgWyAhIC1mICIkR0lUX0JVSUxEX0RJUiIvZ2l0LXJlbW90ZS1tZWRpYXdpa2kgXTsKLQl0aGVuCi0JCWVjaG8gIk5vIHJlbW90ZSBtZWRpYXdpa2kgZm9yIGdpdCBmb3VuZC4gQ29weWluZyBpdCBpbiBnaXQiCi0JCWVjaG8gImNwICRHSVRfQlVJTERfRElSL2NvbnRyaWIvbXctdG8tZ2l0L2dpdC1yZW1vdGUtbWVkaWF3aWtpICRHSVRfQlVJTERfRElSLyIKLQkJbG4gLXMgIiRHSVRfQlVJTERfRElSIi9jb250cmliL213LXRvLWdpdC9naXQtcmVtb3RlLW1lZGlhd2lraSAiJEdJVF9CVUlMRF9ESVIiCi0JZmkKKwlHSVRfRVhFQ19QQVRIPSQoY2QgIiQoZGlybmFtZSAiJDAiKSIgJiYgY2QgIi4uLy4uIiAmJiBwd2QpCisJUEFUSD0iJEdJVF9FWEVDX1BBVEgiJy9iaW4td3JhcHBlcjonIiRQQVRIIgogCiAJaWYgWyAhIC1kICIkV0lLSV9ESVJfSU5TVC8kV0lLSV9ESVJfTkFNRSIgXTsKIAl0aGVuCkBAIC0zMzYsMjAgKzMzMiwyMSBAQAogCWZpCiAKIAkjIEZldGNoIE1lZGlhV2lraSdzIGFyY2hpdmUgaWYgbm90IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgVE1QIGRpcmVjdG9yeQorCU1XX0ZJTEVOQU1FPSJtZWRpYXdpa2ktJE1XX1ZFUlNJT05fTUFKT1IuJE1XX1ZFUlNJT05fTUlOT1IudGFyLmd6IgogCWNkICIkVE1QIgotCWlmIFsgISAtZiAiJE1XX1ZFUlNJT04udGFyLmd6IiBdIDsgdGhlbgotCQllY2hvICJEb3dubG9hZGluZyAkTVdfVkVSU0lPTiBzb3VyY2VzIC4uLiIKLQkJd2dldCAiaHR0cDovL2Rvd25sb2FkLndpa2ltZWRpYS5vcmcvbWVkaWF3aWtpLzEuMTkvbWVkaWF3aWtpLTEuMTkuMC50YXIuZ3oiIHx8CisJaWYgWyAhIC1mICRNV19GSUxFTkFNRSBdIDsgdGhlbgorCQllY2hvICJEb3dubG9hZGluZyAkTVdfVkVSU0lPTl9NQUpPUi4kTVdfVkVSU0lPTl9NSU5PUiBzb3VyY2VzIC4uLiIKKwkJd2dldCAiaHR0cDovL2Rvd25sb2FkLndpa2ltZWRpYS5vcmcvbWVkaWF3aWtpLyRNV19WRVJTSU9OX01BSk9SLyRNV19GSUxFTkFNRSIgfHwKIAkJCWVycm9yICJVbmFibGUgdG8gZG93bmxvYWQgIlwKLQkJCSJodHRwOi8vZG93bmxvYWQud2lraW1lZGlhLm9yZy9tZWRpYXdpa2kvMS4xOS8iXAotCQkJIm1lZGlhd2lraS0xLjE5LjAudGFyLmd6LiAiXAorCQkJImh0dHA6Ly9kb3dubG9hZC53aWtpbWVkaWEub3JnL21lZGlhd2lraS8kTVdfVkVSU0lPTl9NQUpPUi8iXAorCQkJIiRNV19GSUxFTkFNRS4gIlwKIAkJCSJQbGVhc2UgZml4IHlvdXIgY29ubmVjdGlvbiBhbmQgbGF1bmNoIHRoZSBzY3JpcHQgYWdhaW4uIgotCQllY2hvICIkTVdfVkVSU0lPTi50YXIuZ3ogZG93bmxvYWRlZCBpbiBgcHdkYC4gIlwKKwkJZWNobyAiJE1XX0ZJTEVOQU1FIGRvd25sb2FkZWQgaW4gYHB3ZGAuICJcCiAJCQkiWW91IGNhbiBkZWxldGUgaXQgbGF0ZXIgaWYgeW91IHdhbnQuIgogCWVsc2UKLQkJZWNobyAiUmV1c2luZyBleGlzdGluZyAkTVdfVkVSU0lPTi50YXIuZ3ogZG93bmxvYWRlZCBpbiBgcHdkYC4iCisJCWVjaG8gIlJldXNpbmcgZXhpc3RpbmcgJE1XX0ZJTEVOQU1FIGRvd25sb2FkZWQgaW4gYHB3ZGAuIgogCWZpCi0JYXJjaGl2ZV9hYnNfcGF0aD0kKHB3ZCkvIiRNV19WRVJTSU9OLnRhci5neiIKKwlhcmNoaXZlX2Fic19wYXRoPSQocHdkKS8kTVdfRklMRU5BTUUKIAljZCAiJFdJS0lfRElSX0lOU1QvJFdJS0lfRElSX05BTUUvIiB8fAogCQllcnJvciAiY2FuJ3QgY2QgdG8gJFdJS0lfRElSX0lOU1QvJFdJS0lfRElSX05BTUUvIgogCXRhciB4emYgIiRhcmNoaXZlX2Fic19wYXRoIiAtLXN0cmlwLWNvbXBvbmVudHM9MSB8fApAQCAtNDMxLDUgKzQyOCw1IEBACiAJIyBEZWxldGUgdGhlIHdpa2kncyBTUUxpdGUgZGF0YWJhc2UKIAlybSAtZiAiJFRNUC8kREJfRklMRSIgfHwgZXJyb3IgIkRhdGFiYXNlICRUTVAvJERCX0ZJTEUgY291bGQgbm90IGJlIGRlbGV0ZWQuIgogCXJtIC1mICIkRklMRVNfRk9MREVSLyREQl9GSUxFIgotCXJtIC1yZiAiJFRNUC8kTVdfVkVSU0lPTiIKKwlybSAtcmYgIiRUTVAvbWVkaWF3aWtpLSRNV19WRVJTSU9OX01BSk9SLiRNV19WRVJTSU9OX01JTk9SLnRhci5neiIKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC5jb25maWcgYi9jb250cmliL213LXRvLWdpdC90L3Rlc3QuY29uZmlnCmluZGV4IDk1OGIzN2IuLjRjZmViZTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbXctdG8tZ2l0L3QvdGVzdC5jb25maWcKKysrIGIvY29udHJpYi9tdy10by1naXQvdC90ZXN0LmNvbmZpZwpAQCAtMzAsNiArMzAsOCBAQAogCiAjIFRoZSB2YXJpYWJsZXMgYmVsb3cgYXJlIHVzZWQgYnkgdGhlIHNjcmlwdCB0byBpbnN0YWxsIGEgd2lraS4KICMgWW91IHNob3VsZCBub3QgbW9kaWZ5IHRoZXNlIHVubGVzcyB5b3UgYXJlIG1vZGlmeWluZyB0aGUgc2NyaXB0IGl0c2VsZi4KLU1XX1ZFUlNJT049bWVkaWF3aWtpLTEuMTkuMAorIyB0ZXN0ZWQgdmVyc2lvbnM6IDEuMTkuWCAtPiAxLjIxLjEKK01XX1ZFUlNJT05fTUFKT1I9MS4yMQorTVdfVkVSU0lPTl9NSU5PUj0xCiBGSUxFU19GT0xERVI9aW5zdGFsbC13aWtpCiBEQl9JTlNUQUxMX1NDUklQVD1kYl9pbnN0YWxsLnBocApkaWZmIC0tZ2l0IGEvY29udHJpYi9wYXRjaGVzL2RvY2Jvb2steHNsLW1hbnBhZ2VzLWNoYXJtYXAucGF0Y2ggYi9jb250cmliL3BhdGNoZXMvZG9jYm9vay14c2wtbWFucGFnZXMtY2hhcm1hcC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJiMDhiNC4uMDAwMDAwMAotLS0gYS9jb250cmliL3BhdGNoZXMvZG9jYm9vay14c2wtbWFucGFnZXMtY2hhcm1hcC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUZyb206IElzbWFpbCBEw7ZubWV6IDxpc21haWxAcGFyZHVzLm9yZy50cj4KLQotVHJ5aW5nIHRvIGJ1aWxkIHRoZSBkb2N1bWVudGF0aW9uIHdpdGggZG9jYm9vay14c2wgMS43MyBtYXkgcmVzdWx0IGluCi10aGUgZm9sbG93aW5nIGVycm9yLiAgVGhpcyBwYXRjaCBmaXhlcyBpdC4KLQotJCB4bWx0byAtbSBjYWxsb3V0cy54c2wgbWFuIGdpdC1hZGQueG1sCi1ydW50aW1lIGVycm9yOiBmaWxlCi1maWxlOi8vL3Vzci9zaGFyZS9zZ21sL2RvY2Jvb2sveHNsLXN0eWxlc2hlZXRzLTEuNzMuMC9tYW5wYWdlcy9vdGhlci54c2wgbGluZQotMTI5IGVsZW1lbnQgY2FsbC10ZW1wbGF0ZQotVGhlIGNhbGxlZCB0ZW1wbGF0ZSAncmVhZC1jaGFyYWN0ZXItbWFwJyB3YXMgbm90IGZvdW5kLgotCi0tLS0gZG9jYm9vay14c2wtMS43My4wL21hbnBhZ2VzL2RvY2Jvb2sueHNsLm1hbnBhZ2VzLWNoYXJtYXAJMjAwNy0wNy0yMyAxNjoyNDoyMy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBkb2Nib29rLXhzbC0xLjczLjAvbWFucGFnZXMvZG9jYm9vay54c2wJMjAwNy0wNy0yMyAxNjoyNToxNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNyw2ICszNyw3IEBACi0gICA8eHNsOmluY2x1ZGUgaHJlZj0ibGlzdHMueHNsIi8+Ci0gICA8eHNsOmluY2x1ZGUgaHJlZj0iZW5kbm90ZXMueHNsIi8+Ci0gICA8eHNsOmluY2x1ZGUgaHJlZj0idGFibGUueHNsIi8+Ci0rICA8eHNsOmluY2x1ZGUgaHJlZj0iLi4vY29tbW9uL2NoYXJtYXAueHNsIi8+Ci0KLSAgIDwhLS0gKiB3ZSByZW5hbWUgdGhlIGZvbGxvd2luZyBqdXN0IHRvIGF2b2lkIHVzaW5nIHBhcmFtcyB3aXRoICJtYW4iIC0tPgotICAgPCEtLSAqIHByZWZpeGVzIGluIHRoZSB0YWJsZS54c2wgc3R5bGVzaGVldCAoYmVjYXVzZSB0aGF0IHN0eWxlc2hlZXQgLS0+CmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtYnpyIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWJ6cgppbmRleCBjMTllZDBlLi5jM2EzY2FjIDEwMDc1NQotLS0gYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtYnpyCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1ienIKQEAgLTEzLDYgKzEzLDkgQEAKICMgb3IKICMgJSBnaXQgY2xvbmUgYnpyOjpscDpteXJlcG8KICMKKyMgSWYgeW91IHdhbnQgdG8gc3BlY2lmeSB3aGljaCBicmFuY2hlcyB5b3Ugd2FudCB0cmFjayAocGVyIHJlcG8pOgorIyBnaXQgY29uZmlnIHJlbW90ZS1ienIuYnJhbmNoZXMgJ3RydW5rLCBkZXZlbCwgdGVzdCcKKyMKIAogaW1wb3J0IHN5cwogCkBAIC0yNyw2ICszMCw4IEBACiBpbXBvcnQgYnpybGliLnRyYW5zcG9ydAogaW1wb3J0IGJ6cmxpYi5lcnJvcnMKIGltcG9ydCBienJsaWIudWkKK2ltcG9ydCBienJsaWIudXJsdXRpbHMKK2ltcG9ydCBienJsaWIuYnJhbmNoCiAKIGltcG9ydCBzeXMKIGltcG9ydCBvcwpAQCAtMzcsNiArNDIsNyBAQAogCiBOQU1FX1JFID0gcmUuY29tcGlsZSgnXihbXjw+XSspJykKIEFVVEhPUl9SRSA9IHJlLmNvbXBpbGUoJ14oW148Pl0rPyk/ID88KFtePD5dKik+JCcpCitFTUFJTF9SRSA9IHJlLmNvbXBpbGUoJ14oW148Pl0rW14gXFxcdDw+XSk/XFxiKD86WyBcXHQ8Pl0qPylcXGIoW14gXFx0PD5dK0BbXiBcXHQ8Pl0rKScpCiBSQVdfQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihcdyspICguKyk/IDwoLiopPiAoXGQrKSAoWystXVxkKyknKQogCiBkZWYgZGllKG1zZywgKmFyZ3MpOgpAQCAtNDksNiArNTUsMTIgQEAKIGRlZiBnaXR0eih0eik6CiAgICAgcmV0dXJuICclKzAzZCUwMmQnICUgKHR6IC8gMzYwMCwgdHogJSAzNjAwIC8gNjApCiAKK2RlZiBnZXRfY29uZmlnKGNvbmZpZyk6CisgICAgY21kID0gWydnaXQnLCAnY29uZmlnJywgJy0tZ2V0JywgY29uZmlnXQorICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICBvdXRwdXQsIF8gPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICByZXR1cm4gb3V0cHV0CisKIGNsYXNzIE1hcmtzOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgpAQCAtODQsNyArOTYsNyBAQAogICAgICAgICByZXR1cm4gc2VsZi5tYXJrc1tyZXZdCiAKICAgICBkZWYgdG9fcmV2KHNlbGYsIG1hcmspOgotICAgICAgICByZXR1cm4gc2VsZi5yZXZfbWFya3NbbWFya10KKyAgICAgICAgcmV0dXJuIHN0cihzZWxmLnJldl9tYXJrc1ttYXJrXSkKIAogICAgIGRlZiBuZXh0X21hcmsoc2VsZik6CiAgICAgICAgIHNlbGYubGFzdF9tYXJrICs9IDEKQEAgLTEwNCw3ICsxMTYsMTAgQEAKICAgICAgICAgc2VsZi5sYXN0X21hcmsgPSBtYXJrCiAKICAgICBkZWYgZ2V0X3RpcChzZWxmLCBicmFuY2gpOgotICAgICAgICByZXR1cm4gc2VsZi50aXBzLmdldChicmFuY2gsIE5vbmUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi50aXBzW2JyYW5jaF0pCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgc2V0X3RpcChzZWxmLCBicmFuY2gsIHRpcCk6CiAgICAgICAgIHNlbGYudGlwc1ticmFuY2hdID0gdGlwCkBAIC0xNzQsOSArMTg5LDE5IEBACiAgICAgICAgIG5hbWUgPSBtLmdyb3VwKDEpCiAgICAgICAgIG1haWwgPSBtLmdyb3VwKDIpLnN0cmlwKCkKICAgICBlbHNlOgotICAgICAgICBtID0gTkFNRV9SRS5tYXRjaCh1c2VyKQorICAgICAgICBtID0gRU1BSUxfUkUubWF0Y2godXNlcikKICAgICAgICAgaWYgbToKLSAgICAgICAgICAgIG5hbWUgPSBtLmdyb3VwKDEpLnN0cmlwKCkKKyAgICAgICAgICAgIG5hbWUgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICBtYWlsID0gbS5ncm91cCgyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbSA9IE5BTUVfUkUubWF0Y2godXNlcikKKyAgICAgICAgICAgIGlmIG06CisgICAgICAgICAgICAgICAgbmFtZSA9IG0uZ3JvdXAoMSkuc3RyaXAoKQorCisgICAgaWYgbm90IG5hbWU6CisgICAgICAgIG5hbWUgPSAndW5rbm93bicKKyAgICBpZiBub3QgbWFpbDoKKyAgICAgICAgbWFpbCA9ICdVbmtub3duJwogCiAgICAgcmV0dXJuICclcyA8JXM+JyAlIChuYW1lLCBtYWlsKQogCkBAIC0yNTAsMjIgKzI3NSwzMiBAQAogCiAgICAgcmV0dXJuIGZpbmFsCiAKLWRlZiBleHBvcnRfYnJhbmNoKGJyYW5jaCwgbmFtZSk6CitkZWYgZXhwb3J0X2JyYW5jaChyZXBvLCBuYW1lKToKICAgICBnbG9iYWwgcHJlZml4CiAKICAgICByZWYgPSAnJXMvaGVhZHMvJXMnICUgKHByZWZpeCwgbmFtZSkKICAgICB0aXAgPSBtYXJrcy5nZXRfdGlwKG5hbWUpCiAKKyAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChuYW1lKQogICAgIHJlcG8gPSBicmFuY2gucmVwb3NpdG9yeQotICAgIHJlcG8ubG9ja19yZWFkKCkKKworICAgIGJyYW5jaC5sb2NrX3JlYWQoKQogICAgIHJldnMgPSBicmFuY2guaXRlcl9tZXJnZV9zb3J0ZWRfcmV2aXNpb25zKE5vbmUsIHRpcCwgJ2V4Y2x1ZGUnLCAnZm9yd2FyZCcpCi0gICAgY291bnQgPSAwCisgICAgdHJ5OgorICAgICAgICB0aXBfcmV2bm8gPSBicmFuY2gucmV2aXNpb25faWRfdG9fcmV2bm8odGlwKQorICAgICAgICBsYXN0X3Jldm5vLCBfID0gYnJhbmNoLmxhc3RfcmV2aXNpb25faW5mbygpCisgICAgICAgIHRvdGFsID0gbGFzdF9yZXZubyAtIHRpcF9yZXZubworICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vU3VjaFJldmlzaW9uOgorICAgICAgICB0aXBfcmV2bm8gPSAwCisgICAgICAgIHRvdGFsID0gMAogCi0gICAgcmV2cyA9IFtyZXZpZCBmb3IgcmV2aWQsIF8sIF8sIF8gaW4gcmV2cyBpZiBub3QgbWFya3MuaXNfbWFya2VkKHJldmlkKV0KKyAgICBmb3IgcmV2aWQsIF8sIHNlcSwgXyBpbiByZXZzOgogCi0gICAgZm9yIHJldmlkIGluIHJldnM6CisgICAgICAgIGlmIG1hcmtzLmlzX21hcmtlZChyZXZpZCk6CisgICAgICAgICAgICBjb250aW51ZQogCiAgICAgICAgIHJldiA9IHJlcG8uZ2V0X3JldmlzaW9uKHJldmlkKQorICAgICAgICByZXZubyA9IHNlcVswXQogCiAgICAgICAgIHBhcmVudHMgPSByZXYucGFyZW50X2lkcwogICAgICAgICB0aW1lID0gcmV2LnRpbWVzdGFtcApAQCAtMzIwLDEyICszNTUsMTggQEAKICAgICAgICAgICAgIHByaW50ICJNICVzIDoldSAlcyIgJSBmCiAgICAgICAgIHByaW50CiAKLSAgICAgICAgY291bnQgKz0gMQotICAgICAgICBpZiAoY291bnQgJSAxMDAgPT0gMCk6Ci0gICAgICAgICAgICBwcmludCAicHJvZ3Jlc3MgcmV2aXNpb24gJXMgKCVkLyVkKSIgJSAocmV2aWQsIGNvdW50LCBsZW4ocmV2cykpCi0gICAgICAgICAgICBwcmludCAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKKyAgICAgICAgaWYgbGVuKHNlcSkgPiAxOgorICAgICAgICAgICAgIyBsZXQncyBza2lwIGJyYW5jaCByZXZpc2lvbnMgZnJvbSB0aGUgcHJvZ3Jlc3MgcmVwb3J0CisgICAgICAgICAgICBjb250aW51ZQogCi0gICAgcmVwby51bmxvY2soKQorICAgICAgICBwcm9ncmVzcyA9IChyZXZubyAtIHRpcF9yZXZubykKKyAgICAgICAgaWYgKHByb2dyZXNzICUgMTAwID09IDApOgorICAgICAgICAgICAgaWYgdG90YWw6CisgICAgICAgICAgICAgICAgcHJpbnQgInByb2dyZXNzIHJldmlzaW9uICVkICclcycgKCVkLyVkKSIgJSAocmV2bm8sIG5hbWUsIHByb2dyZXNzLCB0b3RhbCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgInByb2dyZXNzIHJldmlzaW9uICVkICclcycgKCVkKSIgJSAocmV2bm8sIG5hbWUsIHByb2dyZXNzKQorCisgICAgYnJhbmNoLnVubG9jaygpCiAKICAgICByZXZpZCA9IGJyYW5jaC5sYXN0X3JldmlzaW9uKCkKIApAQCAtMzQ3LDIzICszODgsMjQgQEAKIGRlZiBkb19pbXBvcnQocGFyc2VyKToKICAgICBnbG9iYWwgZGlybmFtZQogCi0gICAgYnJhbmNoID0gcGFyc2VyLnJlcG8KKyAgICByZXBvID0gcGFyc2VyLnJlcG8KICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcm5hbWUsICdtYXJrcy1naXQnKQogCiAgICAgcHJpbnQgImZlYXR1cmUgZG9uZSIKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKICAgICAgICAgcHJpbnQgImZlYXR1cmUgaW1wb3J0LW1hcmtzPSVzIiAlIHBhdGgKICAgICBwcmludCAiZmVhdHVyZSBleHBvcnQtbWFya3M9JXMiICUgcGF0aAorICAgIHByaW50ICJmZWF0dXJlIGZvcmNlIgogICAgIHN5cy5zdGRvdXQuZmx1c2goKQogCiAgICAgd2hpbGUgcGFyc2VyLmNoZWNrKCdpbXBvcnQnKToKICAgICAgICAgcmVmID0gcGFyc2VyWzFdCiAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKCdyZWZzL2hlYWRzLycpOgogICAgICAgICAgICAgbmFtZSA9IHJlZltsZW4oJ3JlZnMvaGVhZHMvJyk6XQotICAgICAgICAgICAgZXhwb3J0X2JyYW5jaChicmFuY2gsIG5hbWUpCisgICAgICAgICAgICBleHBvcnRfYnJhbmNoKHJlcG8sIG5hbWUpCiAgICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKCdyZWZzL3RhZ3MvJyk6CiAgICAgICAgICAgICBuYW1lID0gcmVmW2xlbigncmVmcy90YWdzLycpOl0KLSAgICAgICAgICAgIGV4cG9ydF90YWcoYnJhbmNoLCBuYW1lKQorICAgICAgICAgICAgZXhwb3J0X3RhZyhyZXBvLCBuYW1lKQogICAgICAgICBwYXJzZXIubmV4dCgpCiAKICAgICBwcmludCAnZG9uZScKQEAgLTM4MiwyMyArNDI0LDIxIEBACiAKIGNsYXNzIEN1c3RvbVRyZWUoKToKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvLCByZXZpZCwgcGFyZW50cywgZmlsZXMpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicmFuY2gsIHJldmlkLCBwYXJlbnRzLCBmaWxlcyk6CiAgICAgICAgIGdsb2JhbCBmaWxlc19jYWNoZQogCi0gICAgICAgIHNlbGYucmVwbyA9IHJlcG8KLSAgICAgICAgc2VsZi5yZXZpZCA9IHJldmlkCi0gICAgICAgIHNlbGYucGFyZW50cyA9IHBhcmVudHMKICAgICAgICAgc2VsZi51cGRhdGVzID0ge30KKyAgICAgICAgc2VsZi5icmFuY2ggPSBicmFuY2gKIAogICAgICAgICBkZWYgY29weV90cmVlKHJldmlkKToKICAgICAgICAgICAgIGZpbGVzID0gZmlsZXNfY2FjaGVbcmV2aWRdID0ge30KLSAgICAgICAgICAgIHRyZWUgPSByZXBvLnJlcG9zaXRvcnkucmV2aXNpb25fdHJlZShyZXZpZCkKLSAgICAgICAgICAgIHJlcG8ubG9ja19yZWFkKCkKKyAgICAgICAgICAgIGJyYW5jaC5sb2NrX3JlYWQoKQorICAgICAgICAgICAgdHJlZSA9IGJyYW5jaC5yZXBvc2l0b3J5LnJldmlzaW9uX3RyZWUocmV2aWQpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZm9yIHBhdGgsIGVudHJ5IGluIHRyZWUuaXRlcl9lbnRyaWVzX2J5X2RpcigpOgotICAgICAgICAgICAgICAgICAgICBmaWxlc1twYXRoXSA9IGVudHJ5LmZpbGVfaWQKKyAgICAgICAgICAgICAgICAgICAgZmlsZXNbcGF0aF0gPSBbZW50cnkuZmlsZV9pZCwgTm9uZV0KICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgcmVwby51bmxvY2soKQorICAgICAgICAgICAgICAgIGJyYW5jaC51bmxvY2soKQogICAgICAgICAgICAgcmV0dXJuIGZpbGVzCiAKICAgICAgICAgaWYgbGVuKHBhcmVudHMpID09IDA6CkBAIC00MTEsMTIgKzQ1MSwxOCBAQAogICAgICAgICAgICAgICAgIHNlbGYuYmFzZV9maWxlcyA9IGNvcHlfdHJlZShzZWxmLmJhc2VfaWQpCiAKICAgICAgICAgc2VsZi5maWxlcyA9IGZpbGVzX2NhY2hlW3JldmlkXSA9IHNlbGYuYmFzZV9maWxlcy5jb3B5KCkKKyAgICAgICAgc2VsZi5yZXZfZmlsZXMgPSB7fQorCisgICAgICAgIGZvciBwYXRoLCBkYXRhIGluIHNlbGYuZmlsZXMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICBmaWQsIG1hcmsgPSBkYXRhCisgICAgICAgICAgICBzZWxmLnJldl9maWxlc1tmaWRdID0gW3BhdGgsIG1hcmtdCiAKICAgICAgICAgZm9yIHBhdGgsIGYgaW4gZmlsZXMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBmaWQgPSBzZWxmLmZpbGVzLmdldChwYXRoLCBOb25lKQorICAgICAgICAgICAgZmlkLCBtYXJrID0gc2VsZi5maWxlcy5nZXQocGF0aCwgW05vbmUsIE5vbmVdKQogICAgICAgICAgICAgaWYgbm90IGZpZDoKICAgICAgICAgICAgICAgICBmaWQgPSBienJsaWIuZ2VuZXJhdGVfaWRzLmdlbl9maWxlX2lkKHBhdGgpCiAgICAgICAgICAgICBmWydwYXRoJ10gPSBwYXRoCisgICAgICAgICAgICBzZWxmLnJldl9maWxlc1tmaWRdID0gW3BhdGgsIG1hcmtdCiAgICAgICAgICAgICBzZWxmLnVwZGF0ZXNbZmlkXSA9IGYKIAogICAgIGRlZiBsYXN0X3JldmlzaW9uKHNlbGYpOgpAQCAtNDI2LDE2ICs0NzIsMTYgQEAKICAgICAgICAgY2hhbmdlcyA9IFtdCiAKICAgICAgICAgZGVmIGdldF9wYXJlbnQoZGlybmFtZSwgYmFzZW5hbWUpOgotICAgICAgICAgICAgcGFyZW50X2ZpZCA9IHNlbGYuYmFzZV9maWxlcy5nZXQoZGlybmFtZSwgTm9uZSkKKyAgICAgICAgICAgIHBhcmVudF9maWQsIG1hcmsgPSBzZWxmLmJhc2VfZmlsZXMuZ2V0KGRpcm5hbWUsIFtOb25lLCBOb25lXSkKICAgICAgICAgICAgIGlmIHBhcmVudF9maWQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudF9maWQKLSAgICAgICAgICAgIHBhcmVudF9maWQgPSBzZWxmLmZpbGVzLmdldChkaXJuYW1lLCBOb25lKQorICAgICAgICAgICAgcGFyZW50X2ZpZCwgbWFyayA9IHNlbGYuZmlsZXMuZ2V0KGRpcm5hbWUsIFtOb25lLCBOb25lXSkKICAgICAgICAgICAgIGlmIHBhcmVudF9maWQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudF9maWQKICAgICAgICAgICAgIGlmIGJhc2VuYW1lID09ICcnOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICBmaWQgPSBienJsaWIuZ2VuZXJhdGVfaWRzLmdlbl9maWxlX2lkKHBhdGgpCi0gICAgICAgICAgICBkID0gYWRkX2VudHJ5KGZpZCwgZGlybmFtZSwgJ2RpcmVjdG9yeScpCisgICAgICAgICAgICBhZGRfZW50cnkoZmlkLCBkaXJuYW1lLCAnZGlyZWN0b3J5JykKICAgICAgICAgICAgIHJldHVybiBmaWQKIAogICAgICAgICBkZWYgYWRkX2VudHJ5KGZpZCwgcGF0aCwga2luZCwgbW9kZSA9IE5vbmUpOgpAQCAtNDU2LDkgKzUwMiw4IEBACiAgICAgICAgICAgICAgICAgICAgIChOb25lLCBiYXNlbmFtZSksCiAgICAgICAgICAgICAgICAgICAgIChOb25lLCBraW5kKSwKICAgICAgICAgICAgICAgICAgICAgKE5vbmUsIGV4ZWN1dGFibGUpKQotICAgICAgICAgICAgc2VsZi5maWxlc1twYXRoXSA9IGNoYW5nZVswXQorICAgICAgICAgICAgc2VsZi5maWxlc1twYXRoXSA9IFtjaGFuZ2VbMF0sIE5vbmVdCiAgICAgICAgICAgICBjaGFuZ2VzLmFwcGVuZChjaGFuZ2UpCi0gICAgICAgICAgICByZXR1cm4gY2hhbmdlCiAKICAgICAgICAgZGVmIHVwZGF0ZV9lbnRyeShmaWQsIHBhdGgsIGtpbmQsIG1vZGUgPSBOb25lKToKICAgICAgICAgICAgIGRpcm5hbWUsIGJhc2VuYW1lID0gb3MucGF0aC5zcGxpdChwYXRoKQpAQCAtNDc4LDkgKzUyMyw4IEBACiAgICAgICAgICAgICAgICAgICAgIChOb25lLCBiYXNlbmFtZSksCiAgICAgICAgICAgICAgICAgICAgIChOb25lLCBraW5kKSwKICAgICAgICAgICAgICAgICAgICAgKE5vbmUsIGV4ZWN1dGFibGUpKQotICAgICAgICAgICAgc2VsZi5maWxlc1twYXRoXSA9IGNoYW5nZVswXQorICAgICAgICAgICAgc2VsZi5maWxlc1twYXRoXSA9IFtjaGFuZ2VbMF0sIE5vbmVdCiAgICAgICAgICAgICBjaGFuZ2VzLmFwcGVuZChjaGFuZ2UpCi0gICAgICAgICAgICByZXR1cm4gY2hhbmdlCiAKICAgICAgICAgZGVmIHJlbW92ZV9lbnRyeShmaWQsIHBhdGgsIGtpbmQpOgogICAgICAgICAgICAgZGlybmFtZSwgYmFzZW5hbWUgPSBvcy5wYXRoLnNwbGl0KHBhdGgpCkBAIC00OTUsNyArNTM5LDYgQEAKICAgICAgICAgICAgICAgICAgICAgKE5vbmUsIE5vbmUpKQogICAgICAgICAgICAgZGVsIHNlbGYuZmlsZXNbcGF0aF0KICAgICAgICAgICAgIGNoYW5nZXMuYXBwZW5kKGNoYW5nZSkKLSAgICAgICAgICAgIHJldHVybiBjaGFuZ2UKIAogICAgICAgICBmb3IgZmlkLCBmIGluIHNlbGYudXBkYXRlcy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHBhdGggPSBmWydwYXRoJ10KQEAgLTUwOSwxMyArNTUyLDMwIEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFkZF9lbnRyeShmaWQsIHBhdGgsICdmaWxlJywgZlsnbW9kZSddKQogCisgICAgICAgICAgICBzZWxmLmZpbGVzW3BhdGhdWzFdID0gZlsnbWFyayddCisgICAgICAgICAgICBzZWxmLnJldl9maWxlc1tmaWRdWzFdID0gZlsnbWFyayddCisKICAgICAgICAgcmV0dXJuIGNoYW5nZXMKIAorICAgIGRlZiBnZXRfY29udGVudChzZWxmLCBmaWxlX2lkKToKKyAgICAgICAgcGF0aCwgbWFyayA9IHNlbGYucmV2X2ZpbGVzW2ZpbGVfaWRdCisgICAgICAgIGlmIG1hcms6CisgICAgICAgICAgICByZXR1cm4gYmxvYl9tYXJrc1ttYXJrXQorCisgICAgICAgICMgbGFzdCByZXNvcnQKKyAgICAgICAgdHJlZSA9IHNlbGYuYnJhbmNoLnJlcG9zaXRvcnkucmV2aXNpb25fdHJlZShzZWxmLmJhc2VfaWQpCisgICAgICAgIHJldHVybiB0cmVlLmdldF9maWxlX3RleHQoZmlsZV9pZCkKKwogICAgIGRlZiBnZXRfZmlsZV93aXRoX3N0YXQoc2VsZiwgZmlsZV9pZCwgcGF0aD1Ob25lKToKLSAgICAgICAgcmV0dXJuIChTdHJpbmdJTy5TdHJpbmdJTyhzZWxmLnVwZGF0ZXNbZmlsZV9pZF1bJ2RhdGEnXSksIE5vbmUpCisgICAgICAgIGNvbnRlbnQgPSBzZWxmLmdldF9jb250ZW50KGZpbGVfaWQpCisgICAgICAgIHJldHVybiAoU3RyaW5nSU8uU3RyaW5nSU8oY29udGVudCksIE5vbmUpCiAKICAgICBkZWYgZ2V0X3N5bWxpbmtfdGFyZ2V0KHNlbGYsIGZpbGVfaWQpOgotICAgICAgICByZXR1cm4gc2VsZi51cGRhdGVzW2ZpbGVfaWRdWydkYXRhJ10KKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X2NvbnRlbnQoZmlsZV9pZCkKKworICAgIGRlZiBpZDJwYXRoKHNlbGYsIGZpbGVfaWQpOgorICAgICAgICBwYXRoLCBtYXJrID0gc2VsZi5yZXZfZmlsZXNbZmlsZV9pZF0KKyAgICAgICAgcmV0dXJuIHBhdGgKIAogZGVmIGNfc3R5bGVfdW5lc2NhcGUoc3RyaW5nKToKICAgICBpZiBzdHJpbmdbMF0gPT0gc3RyaW5nWy0xXSA9PSAnIic6CkBAIC01MzEsOCArNTkxLDExIEBACiAgICAgcmVmID0gcGFyc2VyWzFdCiAgICAgcGFyc2VyLm5leHQoKQogCi0gICAgaWYgcmVmICE9ICdyZWZzL2hlYWRzL21hc3Rlcic6Ci0gICAgICAgIGRpZSgiYnpyIGRvZXNuJ3Qgc3VwcG9ydCBtdWx0aXBsZSBicmFuY2hlczsgdXNlICdtYXN0ZXInIikKKyAgICBpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKKyAgICAgICAgbmFtZSA9IHJlZltsZW4oJ3JlZnMvaGVhZHMvJyk6XQorICAgICAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChuYW1lKQorICAgIGVsc2U6CisgICAgICAgIGRpZSgndW5rbm93biByZWYnKQogCiAgICAgY29tbWl0X21hcmsgPSBwYXJzZXIuZ2V0X21hcmsoKQogICAgIHBhcnNlci5uZXh0KCkKQEAgLTU1OSwyOSArNjIyLDI3IEBACiAgICAgICAgIGlmIHBhcnNlci5jaGVjaygnTScpOgogICAgICAgICAgICAgdCwgbSwgbWFya19yZWYsIHBhdGggPSBsaW5lLnNwbGl0KCcgJywgMykKICAgICAgICAgICAgIG1hcmsgPSBpbnQobWFya19yZWZbMTpdKQotICAgICAgICAgICAgZiA9IHsgJ21vZGUnIDogbSwgJ2RhdGEnIDogYmxvYl9tYXJrc1ttYXJrXSB9CisgICAgICAgICAgICBmID0geyAnbW9kZScgOiBtLCAnbWFyaycgOiBtYXJrIH0KICAgICAgICAgZWxpZiBwYXJzZXIuY2hlY2soJ0QnKToKLSAgICAgICAgICAgIHQsIHBhdGggPSBsaW5lLnNwbGl0KCcgJykKKyAgICAgICAgICAgIHQsIHBhdGggPSBsaW5lLnNwbGl0KCcgJywgMSkKICAgICAgICAgICAgIGYgPSB7ICdkZWxldGVkJyA6IFRydWUgfQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZGllKCdVbmtub3duIGZpbGUgY29tbWFuZDogJXMnICUgbGluZSkKICAgICAgICAgcGF0aCA9IGNfc3R5bGVfdW5lc2NhcGUocGF0aCkuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgIGZpbGVzW3BhdGhdID0gZgogCi0gICAgcmVwbyA9IHBhcnNlci5yZXBvCi0KICAgICBjb21taXR0ZXIsIGRhdGUsIHR6ID0gY29tbWl0dGVyCi0gICAgcGFyZW50cyA9IFtzdHIobWFya190b19yZXYocCkpIGZvciBwIGluIHBhcmVudHNdCisgICAgcGFyZW50cyA9IFttYXJrX3RvX3JldihwKSBmb3IgcCBpbiBwYXJlbnRzXQogICAgIHJldmlkID0gYnpybGliLmdlbmVyYXRlX2lkcy5nZW5fcmV2aXNpb25faWQoY29tbWl0dGVyLCBkYXRlKQogICAgIHByb3BzID0ge30KLSAgICBwcm9wc1snYnJhbmNoLW5pY2snXSA9IHJlcG8ubmljaworICAgIHByb3BzWydicmFuY2gtbmljayddID0gYnJhbmNoLm5pY2sKIAotICAgIG10cmVlID0gQ3VzdG9tVHJlZShyZXBvLCByZXZpZCwgcGFyZW50cywgZmlsZXMpCisgICAgbXRyZWUgPSBDdXN0b21UcmVlKGJyYW5jaCwgcmV2aWQsIHBhcmVudHMsIGZpbGVzKQogICAgIGNoYW5nZXMgPSBtdHJlZS5pdGVyX2NoYW5nZXMoKQogCi0gICAgcmVwby5sb2NrX3dyaXRlKCkKKyAgICBicmFuY2gubG9ja193cml0ZSgpCiAgICAgdHJ5OgotICAgICAgICBidWlsZGVyID0gcmVwby5nZXRfY29tbWl0X2J1aWxkZXIocGFyZW50cywgTm9uZSwgZGF0ZSwgdHosIGNvbW1pdHRlciwgcHJvcHMsIHJldmlkKQorICAgICAgICBidWlsZGVyID0gYnJhbmNoLmdldF9jb21taXRfYnVpbGRlcihwYXJlbnRzLCBOb25lLCBkYXRlLCB0eiwgY29tbWl0dGVyLCBwcm9wcywgcmV2aWQpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxpc3QoYnVpbGRlci5yZWNvcmRfaXRlcl9jaGFuZ2VzKG10cmVlLCBtdHJlZS5sYXN0X3JldmlzaW9uKCksIGNoYW5nZXMpKQogICAgICAgICAgICAgYnVpbGRlci5maW5pc2hfaW52ZW50b3J5KCkKQEAgLTU5MCw3ICs2NTEsNyBAQAogICAgICAgICAgICAgYnVpbGRlci5hYm9ydCgpCiAgICAgICAgICAgICByYWlzZQogICAgIGZpbmFsbHk6Ci0gICAgICAgIHJlcG8udW5sb2NrKCkKKyAgICAgICAgYnJhbmNoLnVubG9jaygpCiAKICAgICBwYXJzZWRfcmVmc1tyZWZdID0gcmV2aWQKICAgICBtYXJrcy5uZXdfbWFyayhyZXZpZCwgY29tbWl0X21hcmspCkBAIC02MDEsOSArNjYyLDYgQEAKICAgICByZWYgPSBwYXJzZXJbMV0KICAgICBwYXJzZXIubmV4dCgpCiAKLSAgICBpZiByZWYgIT0gJ3JlZnMvaGVhZHMvbWFzdGVyJzoKLSAgICAgICAgZGllKCJienIgZG9lc24ndCBzdXBwb3J0IG11bHRpcGxlIGJyYW5jaGVzOyB1c2UgJ21hc3RlciciKQotCiAgICAgIyB1Z2gKICAgICBpZiBwYXJzZXIuY2hlY2soJ2NvbW1pdCcpOgogICAgICAgICBwYXJzZV9jb21taXQocGFyc2VyKQpAQCAtNjE2LDcgKzY3NCw3IEBACiAgICAgcGFyc2VkX3JlZnNbcmVmXSA9IG1hcmtfdG9fcmV2KGZyb21fbWFyaykKIAogZGVmIGRvX2V4cG9ydChwYXJzZXIpOgotICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgZGlybmFtZSwgcGVlcgorICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgZGlybmFtZQogCiAgICAgcGFyc2VyLm5leHQoKQogCkBAIC02MzQsMjAgKzY5MiwzMyBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZGllKCd1bmhhbmRsZWQgZXhwb3J0IGNvbW1hbmQ6ICVzJyAlIGxpbmUpCiAKLSAgICByZXBvID0gcGFyc2VyLnJlcG8KLQogICAgIGZvciByZWYsIHJldmlkIGluIHBhcnNlZF9yZWZzLml0ZXJpdGVtcygpOgotICAgICAgICBpZiByZWYgPT0gJ3JlZnMvaGVhZHMvbWFzdGVyJzoKLSAgICAgICAgICAgIHJlcG8uZ2VuZXJhdGVfcmV2aXNpb25faGlzdG9yeShyZXZpZCwgbWFya3MuZ2V0X3RpcCgnbWFzdGVyJykpCi0gICAgICAgICAgICBpZiBwZWVyOgorICAgICAgICBpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKKyAgICAgICAgICAgIG5hbWUgPSByZWZbbGVuKCdyZWZzL2hlYWRzLycpOl0KKyAgICAgICAgICAgIGJyYW5jaCA9IGdldF9yZW1vdGVfYnJhbmNoKG5hbWUpCisgICAgICAgICAgICBicmFuY2guZ2VuZXJhdGVfcmV2aXNpb25faGlzdG9yeShyZXZpZCwgbWFya3MuZ2V0X3RpcChuYW1lKSkKKworICAgICAgICAgICAgaWYgbmFtZSBpbiBwZWVyczoKKyAgICAgICAgICAgICAgICBwZWVyID0gYnpybGliLmJyYW5jaC5CcmFuY2gub3BlbihwZWVyc1tuYW1lXSkKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJlcG8ucHVzaChwZWVyLCBzdG9wX3JldmlzaW9uPXJldmlkKQorICAgICAgICAgICAgICAgICAgICBwZWVyLmJ6cmRpci5wdXNoX2JyYW5jaChicmFuY2gsIHJldmlzaW9uX2lkPXJldmlkKQogICAgICAgICAgICAgICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLkRpdmVyZ2VkQnJhbmNoZXM6CiAgICAgICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBub24tZmFzdCBmb3J3YXJkIiAlIHJlZgogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB3dCA9IHJlcG8uYnpyZGlyLm9wZW5fd29ya2luZ3RyZWUoKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgd3QgPSBicmFuY2guYnpyZGlyLm9wZW5fd29ya2luZ3RyZWUoKQogICAgICAgICAgICAgICAgIHd0LnVwZGF0ZSgpCisgICAgICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1dvcmtpbmdUcmVlOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiByZWYuc3RhcnRzd2l0aCgncmVmcy90YWdzLycpOgorICAgICAgICAgICAgIyBUT0RPOiBpbXBsZW1lbnQgdGFnIHB1c2gKKyAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBwdXNoaW5nIHRhZ3Mgbm90IHN1cHBvcnRlZCIgJSByZWYKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHRyYW5zcG9ydC1oZWxwZXIvZmFzdC1leHBvcnQgYnVncworICAgICAgICAgICAgY29udGludWUKKwogICAgICAgICBwcmludCAib2sgJXMiICUgcmVmCiAKICAgICBwcmludApAQCAtNjczLDkgKzc0NCwxNSBAQAogCiBkZWYgZG9fbGlzdChwYXJzZXIpOgogICAgIGdsb2JhbCB0YWdzCi0gICAgcHJpbnQgIj8gcmVmcy9oZWFkcy8lcyIgJSAnbWFzdGVyJwogCi0gICAgYnJhbmNoID0gcGFyc2VyLnJlcG8KKyAgICBtYXN0ZXJfYnJhbmNoID0gTm9uZQorCisgICAgZm9yIG5hbWUgaW4gYnJhbmNoZXM6CisgICAgICAgIGlmIG5vdCBtYXN0ZXJfYnJhbmNoOgorICAgICAgICAgICAgbWFzdGVyX2JyYW5jaCA9IG5hbWUKKyAgICAgICAgcHJpbnQgIj8gcmVmcy9oZWFkcy8lcyIgJSBuYW1lCisKKyAgICBicmFuY2ggPSBnZXRfcmVtb3RlX2JyYW5jaChtYXN0ZXJfYnJhbmNoKQogICAgIGJyYW5jaC5sb2NrX3JlYWQoKQogICAgIGZvciB0YWcsIHJldmlkIGluIGJyYW5jaC50YWdzLmdldF90YWdfZGljdCgpLml0ZW1zKCk6CiAgICAgICAgIHRyeToKQEAgLTY4NywzNyArNzY0LDEyMyBAQAogICAgICAgICBwcmludCAiPyByZWZzL3RhZ3MvJXMiICUgdGFnCiAgICAgICAgIHRhZ3NbdGFnXSA9IHJldmlkCiAgICAgYnJhbmNoLnVubG9jaygpCi0gICAgcHJpbnQgIkByZWZzL2hlYWRzLyVzIEhFQUQiICUgJ21hc3RlcicKKworICAgIHByaW50ICJAcmVmcy9oZWFkcy8lcyBIRUFEIiAlIG1hc3Rlcl9icmFuY2gKICAgICBwcmludAogCi1kZWYgZ2V0X3JlcG8odXJsLCBhbGlhcyk6Ci0gICAgZ2xvYmFsIGRpcm5hbWUsIHBlZXIKK2RlZiBjbG9uZShwYXRoLCByZW1vdGVfYnJhbmNoKToKKyAgICB0cnk6CisgICAgICAgIGJkaXIgPSBienJsaWIuYnpyZGlyLkJ6ckRpci5jcmVhdGUocGF0aCkKKyAgICBleGNlcHQgYnpybGliLmVycm9ycy5BbHJlYWR5Q29udHJvbERpckVycm9yOgorICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihwYXRoKQorICAgIHJlcG8gPSBiZGlyLmZpbmRfcmVwb3NpdG9yeSgpCisgICAgcmVwby5mZXRjaChyZW1vdGVfYnJhbmNoLnJlcG9zaXRvcnkpCisgICAgcmV0dXJuIHJlbW90ZV9icmFuY2guc3Byb3V0KGJkaXIsIHJlcG9zaXRvcnk9cmVwbykKIAotICAgIG9yaWdpbiA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLm9wZW4odXJsKQotICAgIGJyYW5jaCA9IG9yaWdpbi5vcGVuX2JyYW5jaCgpCitkZWYgZ2V0X3JlbW90ZV9icmFuY2gobmFtZSk6CisgICAgZ2xvYmFsIGRpcm5hbWUsIGJyYW5jaGVzCiAKLSAgICBpZiBub3QgaXNpbnN0YW5jZShvcmlnaW4udHJhbnNwb3J0LCBienJsaWIudHJhbnNwb3J0LmxvY2FsLkxvY2FsVHJhbnNwb3J0KToKLSAgICAgICAgY2xvbmVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnY2xvbmUnKQotICAgICAgICByZW1vdGVfYnJhbmNoID0gYnJhbmNoCi0gICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGNsb25lX3BhdGgpOgotICAgICAgICAgICAgIyBwdWxsCi0gICAgICAgICAgICBkID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihjbG9uZV9wYXRoKQotICAgICAgICAgICAgYnJhbmNoID0gZC5vcGVuX2JyYW5jaCgpCi0gICAgICAgICAgICByZXN1bHQgPSBicmFuY2gucHVsbChyZW1vdGVfYnJhbmNoLCBbXSwgTm9uZSwgRmFsc2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGNsb25lCi0gICAgICAgICAgICBkID0gb3JpZ2luLnNwcm91dChjbG9uZV9wYXRoLCBOb25lLAotICAgICAgICAgICAgICAgICAgICBoYXJkbGluaz1UcnVlLCBjcmVhdGVfdHJlZV9pZl9sb2NhbD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgc291cmNlX2JyYW5jaD1yZW1vdGVfYnJhbmNoKQotICAgICAgICAgICAgYnJhbmNoID0gZC5vcGVuX2JyYW5jaCgpCi0gICAgICAgICAgICBicmFuY2guYmluZChyZW1vdGVfYnJhbmNoKQorICAgIHJlbW90ZV9icmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuKGJyYW5jaGVzW25hbWVdKQorICAgIGlmIGlzaW5zdGFuY2UocmVtb3RlX2JyYW5jaC51c2VyX3RyYW5zcG9ydCwgYnpybGliLnRyYW5zcG9ydC5sb2NhbC5Mb2NhbFRyYW5zcG9ydCk6CisgICAgICAgIHJldHVybiByZW1vdGVfYnJhbmNoCiAKLSAgICAgICAgcGVlciA9IHJlbW90ZV9icmFuY2gKKyAgICBicmFuY2hfcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnY2xvbmUnLCBuYW1lKQorCisgICAgdHJ5OgorICAgICAgICBicmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuKGJyYW5jaF9wYXRoKQorICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vdEJyYW5jaEVycm9yOgorICAgICAgICAjIGNsb25lCisgICAgICAgIGJyYW5jaCA9IGNsb25lKGJyYW5jaF9wYXRoLCByZW1vdGVfYnJhbmNoKQogICAgIGVsc2U6Ci0gICAgICAgIHBlZXIgPSBOb25lCisgICAgICAgICMgcHVsbAorICAgICAgICB0cnk6CisgICAgICAgICAgICBicmFuY2gucHVsbChyZW1vdGVfYnJhbmNoLCBvdmVyd3JpdGU9VHJ1ZSkKKyAgICAgICAgZXhjZXB0IGJ6cmxpYi5lcnJvcnMuRGl2ZXJnZWRCcmFuY2hlczoKKyAgICAgICAgICAgICMgdXNlIHJlbW90ZSBicmFuY2ggZm9yIG5vdworICAgICAgICAgICAgcmV0dXJuIHJlbW90ZV9icmFuY2gKIAogICAgIHJldHVybiBicmFuY2gKIAorZGVmIGZpbmRfYnJhbmNoZXMocmVwbyk6CisgICAgdHJhbnNwb3J0ID0gcmVwby5ienJkaXIucm9vdF90cmFuc3BvcnQKKworICAgIGZvciBmbiBpbiB0cmFuc3BvcnQuaXRlcl9maWxlc19yZWN1cnNpdmUoKToKKyAgICAgICAgaWYgbm90IGZuLmVuZHN3aXRoKCcuYnpyL2JyYW5jaC1mb3JtYXQnKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgbmFtZSA9IHN1YmRpciA9IGZuWzotbGVuKCcvLmJ6ci9icmFuY2gtZm9ybWF0JyldCisgICAgICAgIG5hbWUgPSBuYW1lIGlmIG5hbWUgIT0gJycgZWxzZSAnbWFzdGVyJworICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCcvJywgJysnKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGN1ciA9IHRyYW5zcG9ydC5jbG9uZShzdWJkaXIpCisgICAgICAgICAgICBicmFuY2ggPSBienJsaWIuYnJhbmNoLkJyYW5jaC5vcGVuX2Zyb21fdHJhbnNwb3J0KGN1cikKKyAgICAgICAgZXhjZXB0IGJ6cmxpYi5lcnJvcnMuTm90QnJhbmNoRXJyb3I6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgeWllbGQgbmFtZSwgYnJhbmNoLmJhc2UKKworZGVmIGdldF9yZXBvKHVybCwgYWxpYXMpOgorICAgIGdsb2JhbCBkaXJuYW1lLCBwZWVyLCBicmFuY2hlcworCisgICAgbm9ybWFsX3VybCA9IGJ6cmxpYi51cmx1dGlscy5ub3JtYWxpemVfdXJsKHVybCkKKyAgICBvcmlnaW4gPSBienJsaWIuYnpyZGlyLkJ6ckRpci5vcGVuKHVybCkKKyAgICBpc19sb2NhbCA9IGlzaW5zdGFuY2Uob3JpZ2luLnRyYW5zcG9ydCwgYnpybGliLnRyYW5zcG9ydC5sb2NhbC5Mb2NhbFRyYW5zcG9ydCkKKworICAgIHNoYXJlZF9wYXRoID0gb3MucGF0aC5qb2luKGdpdGRpciwgJ2J6cicpCisgICAgdHJ5OgorICAgICAgICBzaGFyZWRfZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihzaGFyZWRfcGF0aCkKKyAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob3RCcmFuY2hFcnJvcjoKKyAgICAgICAgc2hhcmVkX2RpciA9IGJ6cmxpYi5ienJkaXIuQnpyRGlyLmNyZWF0ZShzaGFyZWRfcGF0aCkKKyAgICB0cnk6CisgICAgICAgIHNoYXJlZF9yZXBvID0gc2hhcmVkX2Rpci5vcGVuX3JlcG9zaXRvcnkoKQorICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vUmVwb3NpdG9yeVByZXNlbnQ6CisgICAgICAgIHNoYXJlZF9yZXBvID0gc2hhcmVkX2Rpci5jcmVhdGVfcmVwb3NpdG9yeShzaGFyZWQ9VHJ1ZSkKKworICAgIGlmIG5vdCBpc19sb2NhbDoKKyAgICAgICAgY2xvbmVfcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnY2xvbmUnKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoY2xvbmVfcGF0aCk6CisgICAgICAgICAgICBvcy5ta2RpcihjbG9uZV9wYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBjaGVjayBhbmQgcmVtb3ZlIG9sZCBvcmdhbml6YXRpb24KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBiZGlyID0gYnpybGliLmJ6cmRpci5CenJEaXIub3BlbihjbG9uZV9wYXRoKQorICAgICAgICAgICAgICAgIGJkaXIuZGVzdHJveV9yZXBvc2l0b3J5KCkKKyAgICAgICAgICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vdEJyYW5jaEVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGV4Y2VwdCBienJsaWIuZXJyb3JzLk5vUmVwb3NpdG9yeVByZXNlbnQ6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgd2FudGVkID0gZ2V0X2NvbmZpZygncmVtb3RlLWJ6ci5icmFuY2hlcycpLnJzdHJpcCgpLnNwbGl0KCcsICcpCisgICAgIyBzdHVwaWQgcHl0aG9uCisgICAgd2FudGVkID0gW2UgZm9yIGUgaW4gd2FudGVkIGlmIGVdCisKKyAgICBpZiBub3Qgd2FudGVkOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXBvID0gb3JpZ2luLm9wZW5fcmVwb3NpdG9yeSgpCisgICAgICAgICAgICBpZiBub3QgcmVwby51c2VyX3RyYW5zcG9ydC5saXN0YWJsZSgpOgorICAgICAgICAgICAgICAgICMgdGhpcyByZXBvc2l0b3J5IGlzIG5vdCB1c2FibGUgZm9yIHVzCisgICAgICAgICAgICAgICAgcmFpc2UgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50KHJlcG8uYnpyZGlyKQorICAgICAgICBleGNlcHQgYnpybGliLmVycm9ycy5Ob1JlcG9zaXRvcnlQcmVzZW50OgorICAgICAgICAgICAgd2FudGVkID0gWydtYXN0ZXInXQorCisgICAgaWYgd2FudGVkOgorICAgICAgICBkZWYgbGlzdF93YW50ZWQodXJsLCB3YW50ZWQpOgorICAgICAgICAgICAgZm9yIG5hbWUgaW4gd2FudGVkOgorICAgICAgICAgICAgICAgIHN1YmRpciA9IG5hbWUgaWYgbmFtZSAhPSAnbWFzdGVyJyBlbHNlICcnCisgICAgICAgICAgICAgICAgeWllbGQgbmFtZSwgYnpybGliLnVybHV0aWxzLmpvaW4odXJsLCBzdWJkaXIpCisKKyAgICAgICAgYnJhbmNoX2xpc3QgPSBsaXN0X3dhbnRlZCh1cmwsIHdhbnRlZCkKKyAgICBlbHNlOgorICAgICAgICBicmFuY2hfbGlzdCA9IGZpbmRfYnJhbmNoZXMocmVwbykKKworICAgIGZvciBuYW1lLCB1cmwgaW4gYnJhbmNoX2xpc3Q6CisgICAgICAgIGlmIG5vdCBpc19sb2NhbDoKKyAgICAgICAgICAgIHBlZXJzW25hbWVdID0gdXJsCisgICAgICAgIGJyYW5jaGVzW25hbWVdID0gdXJsCisKKyAgICByZXR1cm4gb3JpZ2luCisKIGRlZiBmaXhfcGF0aChhbGlhcywgb3JpZ191cmwpOgogICAgIHVybCA9IHVybHBhcnNlLnVybHBhcnNlKG9yaWdfdXJsLCAnZmlsZScpCiAgICAgaWYgdXJsLnNjaGVtZSAhPSAnZmlsZScgb3Igb3MucGF0aC5pc2Ficyh1cmwucGF0aCk6CkBAIC03MjcsMTIgKzg5MCwxMyBAQAogICAgIHN1YnByb2Nlc3MuY2FsbChjbWQpCiAKIGRlZiBtYWluKGFyZ3MpOgotICAgIGdsb2JhbCBtYXJrcywgcHJlZml4LCBkaXJuYW1lCisgICAgZ2xvYmFsIG1hcmtzLCBwcmVmaXgsIGdpdGRpciwgZGlybmFtZQogICAgIGdsb2JhbCB0YWdzLCBmaWxlbm9kZXMKICAgICBnbG9iYWwgYmxvYl9tYXJrcwogICAgIGdsb2JhbCBwYXJzZWRfcmVmcwogICAgIGdsb2JhbCBmaWxlc19jYWNoZQogICAgIGdsb2JhbCBpc190bXAKKyAgICBnbG9iYWwgYnJhbmNoZXMsIHBlZXJzCiAKICAgICBhbGlhcyA9IGFyZ3NbMV0KICAgICB1cmwgPSBhcmdzWzJdCkBAIC03NDMsNiArOTA3LDggQEAKICAgICBwYXJzZWRfcmVmcyA9IHt9CiAgICAgZmlsZXNfY2FjaGUgPSB7fQogICAgIG1hcmtzID0gTm9uZQorICAgIGJyYW5jaGVzID0ge30KKyAgICBwZWVycyA9IHt9CiAKICAgICBpZiBhbGlhc1s1Ol0gPT0gdXJsOgogICAgICAgICBpc190bXAgPSBUcnVlCkBAIC03NjAsNyArOTI2LDggQEAKICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlybmFtZSk6CiAgICAgICAgIG9zLm1ha2VkaXJzKGRpcm5hbWUpCiAKLSAgICBienJsaWIudWkudWlfZmFjdG9yeS5iZV9xdWlldChUcnVlKQorICAgIGlmIGhhc2F0dHIoYnpybGliLnVpLnVpX2ZhY3RvcnksICdiZV9xdWlldCcpOgorICAgICAgICBienJsaWIudWkudWlfZmFjdG9yeS5iZV9xdWlldChUcnVlKQogCiAgICAgcmVwbyA9IGdldF9yZXBvKHVybCwgYWxpYXMpCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1oZyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvZ2l0LXJlbW90ZS1oZwppbmRleCAwNjkyMGYyLi4wMTk0YzY3IDEwMDc1NQotLS0gYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL2dpdC1yZW1vdGUtaGcKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy9naXQtcmVtb3RlLWhnCkBAIC0xMiw3ICsxMiw3IEBACiAjIEZvciByZW1vdGUgcmVwb3NpdG9yaWVzIGEgbG9jYWwgY2xvbmUgaXMgc3RvcmVkIGluCiAjICIkR0lUX0RJUi9oZy9vcmlnaW4vY2xvbmUvLmhnLyIuCiAKLWZyb20gbWVyY3VyaWFsIGltcG9ydCBoZywgdWksIGJvb2ttYXJrcywgY29udGV4dCwgZW5jb2RpbmcsIG5vZGUsIGVycm9yLCBleHRlbnNpb25zCitmcm9tIG1lcmN1cmlhbCBpbXBvcnQgaGcsIHVpLCBib29rbWFya3MsIGNvbnRleHQsIGVuY29kaW5nLCBub2RlLCBlcnJvciwgZXh0ZW5zaW9ucywgZGlzY292ZXJ5LCB1dGlsCiAKIGltcG9ydCByZQogaW1wb3J0IHN5cwpAQCAtMjUsMTggKzI1LDE1IEBACiBpbXBvcnQgdXJscGFyc2UsIGhhc2hsaWIKIAogIwotIyBJZiB5b3Ugd2FudCB0byBzd2l0Y2ggdG8gaGctZ2l0IGNvbXBhdGliaWxpdHkgbW9kZToKLSMgZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcuaGctZ2l0LWNvbXBhdCB0cnVlCi0jCiAjIElmIHlvdSBhcmUgbm90IGluIGhnLWdpdC1jb21wYXQgbW9kZSBhbmQgd2FudCB0byBkaXNhYmxlIHRoZSB0cmFja2luZyBvZgogIyBuYW1lZCBicmFuY2hlczoKICMgZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcudHJhY2stYnJhbmNoZXMgZmFsc2UKICMKLSMgSWYgeW91IGRvbid0IHdhbnQgdG8gZm9yY2UgcHVzaGVzIChhbmQgdGh1cyByaXNrIGNyZWF0aW5nIG5ldyByZW1vdGUgaGVhZHMpOgotIyBnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy5mb3JjZS1wdXNoIGZhbHNlCi0jCiAjIElmIHlvdSB3YW50IHRoZSBlcXVpdmFsZW50IG9mIGhnJ3MgY2xvbmUvcHVsbC0taW5zZWN1cmUgb3B0aW9uOgotIyBnaXQgY29uZmlnIHJlbW90ZS1oZy5pbnNlY3VyZSB0cnVlCisjIGdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLmluc2VjdXJlIHRydWUKKyMKKyMgSWYgeW91IHdhbnQgdG8gc3dpdGNoIHRvIGhnLWdpdCBjb21wYXRpYmlsaXR5IG1vZGU6CisjIGdpdCBjb25maWcgLS1nbG9iYWwgcmVtb3RlLWhnLmhnLWdpdC1jb21wYXQgdHJ1ZQogIwogIyBnaXQ6CiAjIFNlbnNpYmxlIGRlZmF1bHRzIGZvciBnaXQuCkBAIC01NSw2ICs1Miw4IEBACiBBVVRIT1JfSEdfUkUgPSByZS5jb21waWxlKCdeKC4qPykgPzwoLio/KSg/Oj4oLispPyk/JCcpCiBSQVdfQVVUSE9SX1JFID0gcmUuY29tcGlsZSgnXihcdyspICg/OiguKyk/ICk/PCguKik+IChcZCspIChbKy1dXGQrKScpCiAKK1ZFUlNJT04gPSAyCisKIGRlZiBkaWUobXNnLCAqYXJncyk6CiAgICAgc3lzLnN0ZGVyci53cml0ZSgnRVJST1I6ICVzXG4nICUgKG1zZyAlIGFyZ3MpKQogICAgIHN5cy5leGl0KDEpCkBAIC03Miw4ICs3MSwxMSBAQAogICAgIG0gPSB7ICcxMDA3NTUnOiAneCcsICcxMjAwMDAnOiAnbCcgfQogICAgIHJldHVybiBtLmdldChtb2RlLCAnJykKIAotZGVmIGhnaGV4KG5vZGUpOgotICAgIHJldHVybiBoZy5ub2RlLmhleChub2RlKQorZGVmIGhnaGV4KG4pOgorICAgIHJldHVybiBub2RlLmhleChuKQorCitkZWYgaGdiaW4obik6CisgICAgcmV0dXJuIG5vZGUuYmluKG4pCiAKIGRlZiBoZ3JlZihyZWYpOgogICAgIHJldHVybiByZWYucmVwbGFjZSgnX19fJywgJyAnKQpAQCAtODEsMjIgKzgzLDQ5IEBACiBkZWYgZ2l0cmVmKHJlZik6CiAgICAgcmV0dXJuIHJlZi5yZXBsYWNlKCcgJywgJ19fXycpCiAKK2RlZiBjaGVja192ZXJzaW9uKCpjaGVjayk6CisgICAgaWYgbm90IGhnX3ZlcnNpb246CisgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIGhnX3ZlcnNpb24gPj0gY2hlY2sKKwogZGVmIGdldF9jb25maWcoY29uZmlnKToKICAgICBjbWQgPSBbJ2dpdCcsICdjb25maWcnLCAnLS1nZXQnLCBjb25maWddCiAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQogICAgIG91dHB1dCwgXyA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQogICAgIHJldHVybiBvdXRwdXQKIAorZGVmIGdldF9jb25maWdfYm9vbChjb25maWcsIGRlZmF1bHQ9RmFsc2UpOgorICAgIHZhbHVlID0gZ2V0X2NvbmZpZyhjb25maWcpLnJzdHJpcCgnXG4nKQorICAgIGlmIHZhbHVlID09ICJ0cnVlIjoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBlbGlmIHZhbHVlID09ICJmYWxzZSI6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBkZWZhdWx0CisKIGNsYXNzIE1hcmtzOgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCByZXBvKToKICAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAgICBzZWxmLnJlcG8gPSByZXBvCisgICAgICAgIHNlbGYuY2xlYXIoKQorICAgICAgICBzZWxmLmxvYWQoKQorCisgICAgICAgIGlmIHNlbGYudmVyc2lvbiA8IFZFUlNJT046CisgICAgICAgICAgICBpZiBzZWxmLnZlcnNpb24gPT0gMToKKyAgICAgICAgICAgICAgICBzZWxmLnVwZ3JhZGVfb25lKCkKKworICAgICAgICAgICAgIyB1cGdyYWRlZD8KKyAgICAgICAgICAgIGlmIHNlbGYudmVyc2lvbiA8IFZFUlNJT046CisgICAgICAgICAgICAgICAgc2VsZi5jbGVhcigpCisgICAgICAgICAgICAgICAgc2VsZi52ZXJzaW9uID0gVkVSU0lPTgorCisgICAgZGVmIGNsZWFyKHNlbGYpOgogICAgICAgICBzZWxmLnRpcHMgPSB7fQogICAgICAgICBzZWxmLm1hcmtzID0ge30KICAgICAgICAgc2VsZi5yZXZfbWFya3MgPSB7fQogICAgICAgICBzZWxmLmxhc3RfbWFyayA9IDAKLQotICAgICAgICBzZWxmLmxvYWQoKQorICAgICAgICBzZWxmLnZlcnNpb24gPSAwCiAKICAgICBkZWYgbG9hZChzZWxmKToKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYucGF0aCk6CkBAIC0xMDcsMTIgKzEzNiwyMSBAQAogICAgICAgICBzZWxmLnRpcHMgPSB0bXBbJ3RpcHMnXQogICAgICAgICBzZWxmLm1hcmtzID0gdG1wWydtYXJrcyddCiAgICAgICAgIHNlbGYubGFzdF9tYXJrID0gdG1wWydsYXN0LW1hcmsnXQorICAgICAgICBzZWxmLnZlcnNpb24gPSB0bXAuZ2V0KCd2ZXJzaW9uJywgMSkKIAogICAgICAgICBmb3IgcmV2LCBtYXJrIGluIHNlbGYubWFya3MuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxmLnJldl9tYXJrc1ttYXJrXSA9IGludChyZXYpCisgICAgICAgICAgICBzZWxmLnJldl9tYXJrc1ttYXJrXSA9IHJldgorCisgICAgZGVmIHVwZ3JhZGVfb25lKHNlbGYpOgorICAgICAgICBkZWYgZ2V0X2lkKHJldik6CisgICAgICAgICAgICByZXR1cm4gaGdoZXgoc2VsZi5yZXBvLmNoYW5nZWxvZy5ub2RlKGludChyZXYpKSkKKyAgICAgICAgc2VsZi50aXBzID0gZGljdCgobmFtZSwgZ2V0X2lkKHJldikpIGZvciBuYW1lLCByZXYgaW4gc2VsZi50aXBzLml0ZXJpdGVtcygpKQorICAgICAgICBzZWxmLm1hcmtzID0gZGljdCgoZ2V0X2lkKHJldiksIG1hcmspIGZvciByZXYsIG1hcmsgaW4gc2VsZi5tYXJrcy5pdGVyaXRlbXMoKSkKKyAgICAgICAgc2VsZi5yZXZfbWFya3MgPSBkaWN0KChtYXJrLCBnZXRfaWQocmV2KSkgZm9yIG1hcmssIHJldiBpbiBzZWxmLnJldl9tYXJrcy5pdGVyaXRlbXMoKSkKKyAgICAgICAgc2VsZi52ZXJzaW9uID0gMgogCiAgICAgZGVmIGRpY3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiB7ICd0aXBzJzogc2VsZi50aXBzLCAnbWFya3MnOiBzZWxmLm1hcmtzLCAnbGFzdC1tYXJrJyA6IHNlbGYubGFzdF9tYXJrIH0KKyAgICAgICAgcmV0dXJuIHsgJ3RpcHMnOiBzZWxmLnRpcHMsICdtYXJrcyc6IHNlbGYubWFya3MsICdsYXN0LW1hcmsnIDogc2VsZi5sYXN0X21hcmssICd2ZXJzaW9uJyA6IHNlbGYudmVyc2lvbiB9CiAKICAgICBkZWYgc3RvcmUoc2VsZik6CiAgICAgICAgIGpzb24uZHVtcChzZWxmLmRpY3QoKSwgb3BlbihzZWxmLnBhdGgsICd3JykpCkBAIC0xMjEsMTAgKzE1OSwxMCBAQAogICAgICAgICByZXR1cm4gc3RyKHNlbGYuZGljdCgpKQogCiAgICAgZGVmIGZyb21fcmV2KHNlbGYsIHJldik6Ci0gICAgICAgIHJldHVybiBzZWxmLm1hcmtzW3N0cihyZXYpXQorICAgICAgICByZXR1cm4gc2VsZi5tYXJrc1tyZXZdCiAKICAgICBkZWYgdG9fcmV2KHNlbGYsIG1hcmspOgotICAgICAgICByZXR1cm4gc2VsZi5yZXZfbWFya3NbbWFya10KKyAgICAgICAgcmV0dXJuIHN0cihzZWxmLnJldl9tYXJrc1ttYXJrXSkKIAogICAgIGRlZiBuZXh0X21hcmsoc2VsZik6CiAgICAgICAgIHNlbGYubGFzdF9tYXJrICs9IDEKQEAgLTEzMiwxOSArMTcwLDE5IEBACiAKICAgICBkZWYgZ2V0X21hcmsoc2VsZiwgcmV2KToKICAgICAgICAgc2VsZi5sYXN0X21hcmsgKz0gMQotICAgICAgICBzZWxmLm1hcmtzW3N0cihyZXYpXSA9IHNlbGYubGFzdF9tYXJrCisgICAgICAgIHNlbGYubWFya3NbcmV2XSA9IHNlbGYubGFzdF9tYXJrCiAgICAgICAgIHJldHVybiBzZWxmLmxhc3RfbWFyawogCiAgICAgZGVmIG5ld19tYXJrKHNlbGYsIHJldiwgbWFyayk6Ci0gICAgICAgIHNlbGYubWFya3Nbc3RyKHJldildID0gbWFyaworICAgICAgICBzZWxmLm1hcmtzW3Jldl0gPSBtYXJrCiAgICAgICAgIHNlbGYucmV2X21hcmtzW21hcmtdID0gcmV2CiAgICAgICAgIHNlbGYubGFzdF9tYXJrID0gbWFyawogCiAgICAgZGVmIGlzX21hcmtlZChzZWxmLCByZXYpOgotICAgICAgICByZXR1cm4gc3RyKHJldikgaW4gc2VsZi5tYXJrcworICAgICAgICByZXR1cm4gcmV2IGluIHNlbGYubWFya3MKIAogICAgIGRlZiBnZXRfdGlwKHNlbGYsIGJyYW5jaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLnRpcHMuZ2V0KGJyYW5jaCwgMCkKKyAgICAgICAgcmV0dXJuIHN0cihzZWxmLnRpcHNbYnJhbmNoXSkKIAogICAgIGRlZiBzZXRfdGlwKHNlbGYsIGJyYW5jaCwgdGlwKToKICAgICAgICAgc2VsZi50aXBzW2JyYW5jaF0gPSB0aXAKQEAgLTI1Miw3ICsyOTAsNyBAQAogICAgIHJlbW92ZWQgPSBzZXQoKQogCiAgICAgIyBsb2FkIGVhcmxpZXN0IG1hbmlmZXN0IGZpcnN0IGZvciBjYWNoaW5nIHJlYXNvbnMKLSAgICBwcmV2ID0gcmVwb1twYXJlbnRdLm1hbmlmZXN0KCkuY29weSgpCisgICAgcHJldiA9IHBhcmVudC5tYW5pZmVzdCgpLmNvcHkoKQogICAgIGN1ciA9IGN0eC5tYW5pZmVzdCgpCiAKICAgICBmb3IgZm4gaW4gY3VyOgpAQCAtMzIwLDYgKzM1OCwyMSBAQAogCiAgICAgcmV0dXJuICclcyA8JXM+JyAlIChuYW1lLCBtYWlsKQogCitkZWYgdXBkYXRlYm9va21hcmtzKHJlcG8sIHBlZXIpOgorICAgIHJlbW90ZW1hcmtzID0gcGVlci5saXN0a2V5cygnYm9va21hcmtzJykKKyAgICBsb2NhbG1hcmtzID0gcmVwby5fYm9va21hcmtzCisKKyAgICBpZiBub3QgcmVtb3RlbWFya3M6CisgICAgICAgIHJldHVybgorCisgICAgZm9yIGssIHYgaW4gcmVtb3RlbWFya3MuaXRlcml0ZW1zKCk6CisgICAgICAgIGxvY2FsbWFya3Nba10gPSBoZ2Jpbih2KQorCisgICAgaWYgaGFzYXR0cihsb2NhbG1hcmtzLCAnd3JpdGUnKToKKyAgICAgICAgbG9jYWxtYXJrcy53cml0ZSgpCisgICAgZWxzZToKKyAgICAgICAgYm9va21hcmtzLndyaXRlKHJlcG8pCisKIGRlZiBnZXRfcmVwbyh1cmwsIGFsaWFzKToKICAgICBnbG9iYWwgZGlybmFtZSwgcGVlcgogCkBAIC0zMjcsNDEgKzM4MCw0NCBAQAogICAgIG15dWkuc2V0Y29uZmlnKCd1aScsICdpbnRlcmFjdGl2ZScsICdvZmYnKQogICAgIG15dWkuZm91dCA9IHN5cy5zdGRlcnIKIAotICAgIHRyeToKLSAgICAgICAgaWYgZ2V0X2NvbmZpZygncmVtb3RlLWhnLmluc2VjdXJlJykgPT0gJ3RydWVcbic6Ci0gICAgICAgICAgICBteXVpLnNldGNvbmZpZygnd2ViJywgJ2NhY2VydHMnLCAnJykKLSAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6Ci0gICAgICAgIHBhc3MKKyAgICBpZiBnZXRfY29uZmlnX2Jvb2woJ3JlbW90ZS1oZy5pbnNlY3VyZScpOgorICAgICAgICBteXVpLnNldGNvbmZpZygnd2ViJywgJ2NhY2VydHMnLCAnJykKIAotICAgIHRyeToKLSAgICAgICAgbW9kID0gZXh0ZW5zaW9ucy5sb2FkKG15dWksICdoZ2V4dC5zY2hlbWVzJywgTm9uZSkKLSAgICAgICAgbW9kLmV4dHNldHVwKG15dWkpCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBwYXNzCisgICAgZXh0ZW5zaW9ucy5sb2FkYWxsKG15dWkpCiAKLSAgICBpZiBoZy5pc2xvY2FsKHVybCk6CisgICAgaWYgaGcuaXNsb2NhbCh1cmwpIGFuZCBub3Qgb3MuZW52aXJvbi5nZXQoJ0dJVF9SRU1PVEVfSEdfVEVTVF9SRU1PVEUnKToKICAgICAgICAgcmVwbyA9IGhnLnJlcG9zaXRvcnkobXl1aSwgdXJsKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlybmFtZSk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQogICAgIGVsc2U6CisgICAgICAgIHNoYXJlZF9wYXRoID0gb3MucGF0aC5qb2luKGdpdGRpciwgJ2hnJykKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNoYXJlZF9wYXRoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBoZy5jbG9uZShteXVpLCB7fSwgdXJsLCBzaGFyZWRfcGF0aCwgdXBkYXRlPUZhbHNlLCBwdWxsPVRydWUpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgZGllKCdSZXBvc2l0b3J5IGVycm9yJykKKworICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGlybmFtZSk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQorCiAgICAgICAgIGxvY2FsX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlybmFtZSwgJ2Nsb25lJykKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGxvY2FsX3BhdGgpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBlZXIsIGRzdHBlZXIgPSBoZy5jbG9uZShteXVpLCB7fSwgdXJsLCBsb2NhbF9wYXRoLCB1cGRhdGU9VHJ1ZSwgcHVsbD1UcnVlKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGRpZSgnUmVwb3NpdG9yeSBlcnJvcicpCi0gICAgICAgICAgICByZXBvID0gZHN0cGVlci5sb2NhbCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXBvID0gaGcucmVwb3NpdG9yeShteXVpLCBsb2NhbF9wYXRoKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBlZXIgPSBoZy5wZWVyKG15dWksIHt9LCB1cmwpCi0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgZGllKCdSZXBvc2l0b3J5IGVycm9yJykKLSAgICAgICAgICAgIHJlcG8ucHVsbChwZWVyLCBoZWFkcz1Ob25lLCBmb3JjZT1UcnVlKQorICAgICAgICAgICAgaGcuc2hhcmUobXl1aSwgc2hhcmVkX3BhdGgsIGxvY2FsX3BhdGgsIHVwZGF0ZT1GYWxzZSkKKworICAgICAgICByZXBvID0gaGcucmVwb3NpdG9yeShteXVpLCBsb2NhbF9wYXRoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwZWVyID0gaGcucGVlcihteXVpLCB7fSwgdXJsKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBkaWUoJ1JlcG9zaXRvcnkgZXJyb3InKQorICAgICAgICByZXBvLnB1bGwocGVlciwgaGVhZHM9Tm9uZSwgZm9yY2U9VHJ1ZSkKKworICAgICAgICB1cGRhdGVib29rbWFya3MocmVwbywgcGVlcikKIAogICAgIHJldHVybiByZXBvCiAKIGRlZiByZXZfdG9fbWFyayhyZXYpOgogICAgIGdsb2JhbCBtYXJrcwotICAgIHJldHVybiBtYXJrcy5mcm9tX3JldihyZXYpCisgICAgcmV0dXJuIG1hcmtzLmZyb21fcmV2KHJldi5oZXgoKSkKIAogZGVmIG1hcmtfdG9fcmV2KG1hcmspOgogICAgIGdsb2JhbCBtYXJrcwpAQCAtMzcxLDE3ICs0MjcsMjQgQEAKICAgICBnbG9iYWwgcHJlZml4LCBtYXJrcywgbW9kZQogCiAgICAgZW5hbWUgPSAnJXMvJXMnICUgKGtpbmQsIG5hbWUpCi0gICAgdGlwID0gbWFya3MuZ2V0X3RpcChlbmFtZSkKKyAgICB0cnk6CisgICAgICAgIHRpcCA9IG1hcmtzLmdldF90aXAoZW5hbWUpCisgICAgICAgIHRpcCA9IHJlcG9bdGlwXS5yZXYoKQorICAgIGV4Y2VwdDoKKyAgICAgICAgdGlwID0gMAogCiAgICAgcmV2cyA9IHhyYW5nZSh0aXAsIGhlYWQucmV2KCkgKyAxKQotICAgIGNvdW50ID0gMAotCi0gICAgcmV2cyA9IFtyZXYgZm9yIHJldiBpbiByZXZzIGlmIG5vdCBtYXJrcy5pc19tYXJrZWQocmV2KV0KKyAgICB0b3RhbCA9IGxlbihyZXZzKQogCiAgICAgZm9yIHJldiBpbiByZXZzOgogCiAgICAgICAgIGMgPSByZXBvW3Jldl0KLSAgICAgICAgKG1hbmlmZXN0LCB1c2VyLCAodGltZSwgdHopLCBmaWxlcywgZGVzYywgZXh0cmEpID0gcmVwby5jaGFuZ2Vsb2cucmVhZChjLm5vZGUoKSkKKyAgICAgICAgbm9kZSA9IGMubm9kZSgpCisKKyAgICAgICAgaWYgbWFya3MuaXNfbWFya2VkKGMuaGV4KCkpOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAobWFuaWZlc3QsIHVzZXIsICh0aW1lLCB0eiksIGZpbGVzLCBkZXNjLCBleHRyYSkgPSByZXBvLmNoYW5nZWxvZy5yZWFkKG5vZGUpCiAgICAgICAgIHJldl9icmFuY2ggPSBleHRyYVsnYnJhbmNoJ10KIAogICAgICAgICBhdXRob3IgPSAiJXMgJWQgJXMiICUgKGZpeHVwX3VzZXIodXNlciksIHRpbWUsIGdpdHR6KHR6KSkKQEAgLTM5MSw3ICs0NTQsNyBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY29tbWl0dGVyID0gYXV0aG9yCiAKLSAgICAgICAgcGFyZW50cyA9IFtwIGZvciBwIGluIHJlcG8uY2hhbmdlbG9nLnBhcmVudHJldnMocmV2KSBpZiBwID49IDBdCisgICAgICAgIHBhcmVudHMgPSBbcmVwb1twXSBmb3IgcCBpbiByZXBvLmNoYW5nZWxvZy5wYXJlbnRyZXZzKHJldikgaWYgcCA+PSAwXQogCiAgICAgICAgIGlmIGxlbihwYXJlbnRzKSA9PSAwOgogICAgICAgICAgICAgbW9kaWZpZWQgPSBjLm1hbmlmZXN0KCkua2V5cygpCkBAIC00MzMsNyArNDk2LDcgQEAKICAgICAgICAgbW9kaWZpZWRfZmluYWwgPSBleHBvcnRfZmlsZXMoYy5maWxlY3R4KGYpIGZvciBmIGluIG1vZGlmaWVkKQogCiAgICAgICAgIHByaW50ICJjb21taXQgJXMvJXMiICUgKHByZWZpeCwgZW5hbWUpCi0gICAgICAgIHByaW50ICJtYXJrIDolZCIgJSAobWFya3MuZ2V0X21hcmsocmV2KSkKKyAgICAgICAgcHJpbnQgIm1hcmsgOiVkIiAlIChtYXJrcy5nZXRfbWFyayhjLmhleCgpKSkKICAgICAgICAgcHJpbnQgImF1dGhvciAlcyIgJSAoYXV0aG9yKQogICAgICAgICBwcmludCAiY29tbWl0dGVyICVzIiAlIChjb21taXR0ZXIpCiAgICAgICAgIHByaW50ICJkYXRhICVkIiAlIChsZW4oZGVzYykpCkBAIC00NDQsMjMgKzUwNywyMiBAQAogICAgICAgICAgICAgaWYgbGVuKHBhcmVudHMpID4gMToKICAgICAgICAgICAgICAgICBwcmludCAibWVyZ2UgOiVzIiAlIChyZXZfdG9fbWFyayhwYXJlbnRzWzFdKSkKIAotICAgICAgICBmb3IgZiBpbiBtb2RpZmllZF9maW5hbDoKLSAgICAgICAgICAgIHByaW50ICJNICVzIDoldSAlcyIgJSBmCiAgICAgICAgIGZvciBmIGluIHJlbW92ZWQ6CiAgICAgICAgICAgICBwcmludCAiRCAlcyIgJSAoZml4X2ZpbGVfcGF0aChmKSkKKyAgICAgICAgZm9yIGYgaW4gbW9kaWZpZWRfZmluYWw6CisgICAgICAgICAgICBwcmludCAiTSAlcyA6JXUgJXMiICUgZgogICAgICAgICBwcmludAogCi0gICAgICAgIGNvdW50ICs9IDEKLSAgICAgICAgaWYgKGNvdW50ICUgMTAwID09IDApOgotICAgICAgICAgICAgcHJpbnQgInByb2dyZXNzIHJldmlzaW9uICVkICclcycgKCVkLyVkKSIgJSAocmV2LCBuYW1lLCBjb3VudCwgbGVuKHJldnMpKQotICAgICAgICAgICAgcHJpbnQgIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCisgICAgICAgIHByb2dyZXNzID0gKHJldiAtIHRpcCkKKyAgICAgICAgaWYgKHByb2dyZXNzICUgMTAwID09IDApOgorICAgICAgICAgICAgcHJpbnQgInByb2dyZXNzIHJldmlzaW9uICVkICclcycgKCVkLyVkKSIgJSAocmV2LCBuYW1lLCBwcm9ncmVzcywgdG90YWwpCiAKICAgICAjIG1ha2Ugc3VyZSB0aGUgcmVmIGlzIHVwZGF0ZWQKICAgICBwcmludCAicmVzZXQgJXMvJXMiICUgKHByZWZpeCwgZW5hbWUpCi0gICAgcHJpbnQgImZyb20gOiV1IiAlIHJldl90b19tYXJrKHJldikKKyAgICBwcmludCAiZnJvbSA6JXUiICUgcmV2X3RvX21hcmsoaGVhZCkKICAgICBwcmludAogCi0gICAgbWFya3Muc2V0X3RpcChlbmFtZSwgcmV2KQorICAgIG1hcmtzLnNldF90aXAoZW5hbWUsIGhlYWQuaGV4KCkpCiAKIGRlZiBleHBvcnRfdGFnKHJlcG8sIHRhZyk6CiAgICAgZXhwb3J0X3JlZihyZXBvLCB0YWcsICd0YWdzJywgcmVwb1toZ3JlZih0YWcpXSkKQEAgLTQ5MiwxNSArNTU0LDEyIEBACiAgICAgaWYgb3MucGF0aC5leGlzdHMocGF0aCk6CiAgICAgICAgIHByaW50ICIqaW1wb3J0LW1hcmtzICVzIiAlIHBhdGgKICAgICBwcmludCAiKmV4cG9ydC1tYXJrcyAlcyIgJSBwYXRoCisgICAgcHJpbnQgIm9wdGlvbiIKIAogICAgIHByaW50CiAKLWRlZiBicmFuY2hfdGlwKHJlcG8sIGJyYW5jaCk6Ci0gICAgIyBvbGRlciB2ZXJzaW9ucyBvZiBtZXJjdXJpYWwgZG9uJ3QgaGF2ZSB0aGlzCi0gICAgaWYgaGFzYXR0cihyZXBvLCAnYnJhbmNodGlwJyk6Ci0gICAgICAgIHJldHVybiByZXBvLmJyYW5jaHRpcChicmFuY2gpCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIHJlcG8uYnJhbmNodGFncygpW2JyYW5jaF0KK2RlZiBicmFuY2hfdGlwKGJyYW5jaCk6CisgICAgcmV0dXJuIGJyYW5jaGVzW2JyYW5jaF1bLTFdCiAKIGRlZiBnZXRfYnJhbmNoX3RpcChyZXBvLCBicmFuY2gpOgogICAgIGdsb2JhbCBicmFuY2hlcwpAQCAtNTEyLDQ5ICs1NzEsNDUgQEAKICAgICAjIHZlcmlmeSB0aGVyZSdzIG9ubHkgb25lIGhlYWQKICAgICBpZiAobGVuKGhlYWRzKSA+IDEpOgogICAgICAgICB3YXJuKCJCcmFuY2ggJyVzJyBoYXMgbW9yZSB0aGFuIG9uZSBoZWFkLCBjb25zaWRlciBtZXJnaW5nIiAlIGJyYW5jaCkKLSAgICAgICAgcmV0dXJuIGJyYW5jaF90aXAocmVwbywgaGdyZWYoYnJhbmNoKSkKKyAgICAgICAgcmV0dXJuIGJyYW5jaF90aXAoaGdyZWYoYnJhbmNoKSkKIAogICAgIHJldHVybiBoZWFkc1swXQogCiBkZWYgbGlzdF9oZWFkKHJlcG8sIGN1cik6Ci0gICAgZ2xvYmFsIGdfaGVhZCwgYm1hcmtzCisgICAgZ2xvYmFsIGdfaGVhZCwgYm1hcmtzLCBmYWtlX2JtYXJrCiAKLSAgICBoZWFkID0gYm9va21hcmtzLnJlYWRjdXJyZW50KHJlcG8pCi0gICAgaWYgaGVhZDoKLSAgICAgICAgbm9kZSA9IHJlcG9baGVhZF0KLSAgICBlbHNlOgotICAgICAgICAjIGZha2UgYm9va21hcmsgZnJvbSBjdXJyZW50IGJyYW5jaAotICAgICAgICBoZWFkID0gY3VyCi0gICAgICAgIG5vZGUgPSByZXBvWycuJ10KLSAgICAgICAgaWYgbm90IG5vZGU6Ci0gICAgICAgICAgICBub2RlID0gcmVwb1sndGlwJ10KLSAgICAgICAgaWYgbm90IG5vZGU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaGVhZCA9PSAnZGVmYXVsdCc6Ci0gICAgICAgICAgICBoZWFkID0gJ21hc3RlcicKLSAgICAgICAgYm1hcmtzW2hlYWRdID0gbm9kZQorICAgIGlmICdkZWZhdWx0JyBub3QgaW4gYnJhbmNoZXM6CisgICAgICAgICMgZW1wdHkgcmVwbworICAgICAgICByZXR1cm4KKworICAgIG5vZGUgPSByZXBvW2JyYW5jaF90aXAoJ2RlZmF1bHQnKV0KKyAgICBoZWFkID0gJ21hc3RlcicgaWYgbm90ICdtYXN0ZXInIGluIGJtYXJrcyBlbHNlICdkZWZhdWx0JworICAgIGZha2VfYm1hcmsgPSBoZWFkCisgICAgYm1hcmtzW2hlYWRdID0gbm9kZQogCiAgICAgaGVhZCA9IGdpdHJlZihoZWFkKQogICAgIHByaW50ICJAcmVmcy9oZWFkcy8lcyBIRUFEIiAlIGhlYWQKICAgICBnX2hlYWQgPSAoaGVhZCwgbm9kZSkKIAogZGVmIGRvX2xpc3QocGFyc2VyKToKLSAgICBnbG9iYWwgYnJhbmNoZXMsIGJtYXJrcywgbW9kZSwgdHJhY2tfYnJhbmNoZXMKKyAgICBnbG9iYWwgYnJhbmNoZXMsIGJtYXJrcywgdHJhY2tfYnJhbmNoZXMKIAogICAgIHJlcG8gPSBwYXJzZXIucmVwbwogICAgIGZvciBibWFyaywgbm9kZSBpbiBib29rbWFya3MubGlzdGJvb2ttYXJrcyhyZXBvKS5pdGVyaXRlbXMoKToKICAgICAgICAgYm1hcmtzW2JtYXJrXSA9IHJlcG9bbm9kZV0KIAogICAgIGN1ciA9IHJlcG8uZGlyc3RhdGUuYnJhbmNoKCkKKyAgICBvcmlnID0gcGVlciBpZiBwZWVyIGVsc2UgcmVwbworCisgICAgZm9yIGJyYW5jaCwgaGVhZHMgaW4gb3JpZy5icmFuY2htYXAoKS5pdGVyaXRlbXMoKToKKyAgICAgICAgIyBvbmx5IG9wZW4gaGVhZHMKKyAgICAgICAgaGVhZHMgPSBbaCBmb3IgaCBpbiBoZWFkcyBpZiAnY2xvc2UnIG5vdCBpbiByZXBvLmNoYW5nZWxvZy5yZWFkKGgpWzVdXQorICAgICAgICBpZiBoZWFkczoKKyAgICAgICAgICAgIGJyYW5jaGVzW2JyYW5jaF0gPSBoZWFkcwogCiAgICAgbGlzdF9oZWFkKHJlcG8sIGN1cikKIAogICAgIGlmIHRyYWNrX2JyYW5jaGVzOgotICAgICAgICBmb3IgYnJhbmNoIGluIHJlcG8uYnJhbmNobWFwKCk6Ci0gICAgICAgICAgICBoZWFkcyA9IHJlcG8uYnJhbmNoaGVhZHMoYnJhbmNoKQotICAgICAgICAgICAgaWYgbGVuKGhlYWRzKToKLSAgICAgICAgICAgICAgICBicmFuY2hlc1ticmFuY2hdID0gaGVhZHMKLQogICAgICAgICBmb3IgYnJhbmNoIGluIGJyYW5jaGVzOgogICAgICAgICAgICAgcHJpbnQgIj8gcmVmcy9oZWFkcy9icmFuY2hlcy8lcyIgJSBnaXRyZWYoYnJhbmNoKQogCkBAIC01NzcsNiArNjMyLDcgQEAKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKICAgICAgICAgcHJpbnQgImZlYXR1cmUgaW1wb3J0LW1hcmtzPSVzIiAlIHBhdGgKICAgICBwcmludCAiZmVhdHVyZSBleHBvcnQtbWFya3M9JXMiICUgcGF0aAorICAgIHByaW50ICJmZWF0dXJlIGZvcmNlIgogICAgIHN5cy5zdGRvdXQuZmx1c2goKQogCiAgICAgdG1wID0gZW5jb2RpbmcuZW5jb2RpbmcKQEAgLTY2Niw2ICs3MjIsMTEgQEAKICAgICAgICAgICAgIGRpZSgnVW5rbm93biBmaWxlIGNvbW1hbmQ6ICVzJyAlIGxpbmUpCiAgICAgICAgIGZpbGVzW3BhdGhdID0gZgogCisgICAgIyBvbmx5IGV4cG9ydCB0aGUgY29tbWl0cyBpZiB3ZSBhcmUgb24gYW4gaW50ZXJuYWwgcHJveHkgcmVwbworICAgIGlmIGRyeV9ydW4gYW5kIG5vdCBwZWVyOgorICAgICAgICBwYXJzZWRfcmVmc1tyZWZdID0gTm9uZQorICAgICAgICByZXR1cm4KKwogICAgIGRlZiBnZXRmaWxlY3R4KHJlcG8sIG1lbWN0eCwgZik6CiAgICAgICAgIG9mID0gZmlsZXNbZl0KICAgICAgICAgaWYgJ2RlbGV0ZWQnIGluIG9mOgpAQCAtNjg3LDE0ICs3NDgsMTQgQEAKICAgICAgICAgZXh0cmFbJ2NvbW1pdHRlciddID0gIiVzICV1ICV1IiAlIGNvbW1pdHRlcgogCiAgICAgaWYgZnJvbV9tYXJrOgotICAgICAgICBwMSA9IHJlcG8uY2hhbmdlbG9nLm5vZGUobWFya190b19yZXYoZnJvbV9tYXJrKSkKKyAgICAgICAgcDEgPSBtYXJrX3RvX3Jldihmcm9tX21hcmspCiAgICAgZWxzZToKLSAgICAgICAgcDEgPSAnXDAnICogMjAKKyAgICAgICAgcDEgPSAnMCcgKiA0MAogCiAgICAgaWYgbWVyZ2VfbWFyazoKLSAgICAgICAgcDIgPSByZXBvLmNoYW5nZWxvZy5ub2RlKG1hcmtfdG9fcmV2KG1lcmdlX21hcmspKQorICAgICAgICBwMiA9IG1hcmtfdG9fcmV2KG1lcmdlX21hcmspCiAgICAgZWxzZToKLSAgICAgICAgcDIgPSAnXDAnICogMjAKKyAgICAgICAgcDIgPSAnMCcgKiA0MAogCiAgICAgIwogICAgICMgSWYgZmlsZXMgY2hhbmdlZCBmcm9tIGFueSBvZiB0aGUgcGFyZW50cywgaGcgd2FudHMgdG8ga25vdywgYnV0IGluIGdpdCBpZgpAQCAtNzMwLDE0ICs3OTEsMTIgQEAKICAgICB0bXAgPSBlbmNvZGluZy5lbmNvZGluZwogICAgIGVuY29kaW5nLmVuY29kaW5nID0gJ3V0Zi04JwogCi0gICAgbm9kZSA9IHJlcG8uY29tbWl0Y3R4KGN0eCkKKyAgICBub2RlID0gaGdoZXgocmVwby5jb21taXRjdHgoY3R4KSkKIAogICAgIGVuY29kaW5nLmVuY29kaW5nID0gdG1wCiAKLSAgICByZXYgPSByZXBvW25vZGVdLnJldigpCi0KICAgICBwYXJzZWRfcmVmc1tyZWZdID0gbm9kZQotICAgIG1hcmtzLm5ld19tYXJrKHJldiwgY29tbWl0X21hcmspCisgICAgbWFya3MubmV3X21hcmsobm9kZSwgY29tbWl0X21hcmspCiAKIGRlZiBwYXJzZV9yZXNldChwYXJzZXIpOgogICAgIGdsb2JhbCBwYXJzZWRfcmVmcwpAQCAtNzUzLDggKzgxMiwxMSBAQAogICAgIGZyb21fbWFyayA9IHBhcnNlci5nZXRfbWFyaygpCiAgICAgcGFyc2VyLm5leHQoKQogCi0gICAgbm9kZSA9IHBhcnNlci5yZXBvLmNoYW5nZWxvZy5ub2RlKG1hcmtfdG9fcmV2KGZyb21fbWFyaykpCi0gICAgcGFyc2VkX3JlZnNbcmVmXSA9IG5vZGUKKyAgICB0cnk6CisgICAgICAgIHJldiA9IG1hcmtfdG9fcmV2KGZyb21fbWFyaykKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHJldiA9IE5vbmUKKyAgICBwYXJzZWRfcmVmc1tyZWZdID0gcmV2CiAKIGRlZiBwYXJzZV90YWcocGFyc2VyKToKICAgICBuYW1lID0gcGFyc2VyWzFdCkBAIC03NzAsNyArODMyLDcgQEAKIAogZGVmIHdyaXRlX3RhZyhyZXBvLCB0YWcsIG5vZGUsIG1zZywgYXV0aG9yKToKICAgICBicmFuY2ggPSByZXBvW25vZGVdLmJyYW5jaCgpCi0gICAgdGlwID0gYnJhbmNoX3RpcChyZXBvLCBicmFuY2gpCisgICAgdGlwID0gYnJhbmNoX3RpcChicmFuY2gpCiAgICAgdGlwID0gcmVwb1t0aXBdCiAKICAgICBkZWYgZ2V0ZmlsZWN0eChyZXBvLCBtZW1jdHgsIGYpOgpAQCAtNzc5LDE4ICs4NDEsMjggQEAKICAgICAgICAgICAgIGRhdGEgPSBmY3R4LmRhdGEoKQogICAgICAgICBleGNlcHQgZXJyb3IuTWFuaWZlc3RMb29rdXBFcnJvcjoKICAgICAgICAgICAgIGRhdGEgPSAiIgotICAgICAgICBjb250ZW50ID0gZGF0YSArICIlcyAlc1xuIiAlIChoZ2hleChub2RlKSwgdGFnKQorICAgICAgICBjb250ZW50ID0gZGF0YSArICIlcyAlc1xuIiAlIChub2RlLCB0YWcpCiAgICAgICAgIHJldHVybiBjb250ZXh0Lm1lbWZpbGVjdHgoZiwgY29udGVudCwgRmFsc2UsIEZhbHNlLCBOb25lKQogCiAgICAgcDEgPSB0aXAuaGV4KCkKLSAgICBwMiA9ICdcMCcgKiAyMAotICAgIGlmIG5vdCBhdXRob3I6Ci0gICAgICAgIGF1dGhvciA9IChOb25lLCAwLCAwKQotICAgIHVzZXIsIGRhdGUsIHR6ID0gYXV0aG9yCisgICAgcDIgPSAnMCcgKiA0MAorICAgIGlmIGF1dGhvcjoKKyAgICAgICAgdXNlciwgZGF0ZSwgdHogPSBhdXRob3IKKyAgICAgICAgZGF0ZV90eiA9IChkYXRlLCB0eikKKyAgICBlbHNlOgorICAgICAgICBjbWQgPSBbJ2dpdCcsICd2YXInLCAnR0lUX0NPTU1JVFRFUl9JREVOVCddCisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgb3V0cHV0LCBfID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgIG0gPSByZS5tYXRjaCgnXi4qIDwuKj4nLCBvdXRwdXQpCisgICAgICAgIGlmIG06CisgICAgICAgICAgICB1c2VyID0gbS5ncm91cCgwKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXNlciA9IHJlcG8udWkudXNlcm5hbWUoKQorICAgICAgICBkYXRlX3R6ID0gTm9uZQogCiAgICAgY3R4ID0gY29udGV4dC5tZW1jdHgocmVwbywgKHAxLCBwMiksIG1zZywKICAgICAgICAgICAgIFsnLmhndGFncyddLCBnZXRmaWxlY3R4LAotICAgICAgICAgICAgdXNlciwgKGRhdGUsIHR6KSwgeydicmFuY2gnIDogYnJhbmNofSkKKyAgICAgICAgICAgIHVzZXIsIGRhdGVfdHosIHsnYnJhbmNoJyA6IGJyYW5jaH0pCiAKICAgICB0bXAgPSBlbmNvZGluZy5lbmNvZGluZwogICAgIGVuY29kaW5nLmVuY29kaW5nID0gJ3V0Zi04JwpAQCAtNzk5LDEyICs4NzEsMTMyIEBACiAKICAgICBlbmNvZGluZy5lbmNvZGluZyA9IHRtcAogCi0gICAgcmV0dXJuIHRhZ25vZGUKKyAgICByZXR1cm4gKHRhZ25vZGUsIGJyYW5jaCkKKworZGVmIGNoZWNraGVhZHNfYm1hcmsocmVwbywgcmVmLCBjdHgpOgorICAgIGJtYXJrID0gcmVmW2xlbigncmVmcy9oZWFkcy8nKTpdCisgICAgaWYgbm90IGJtYXJrIGluIGJtYXJrczoKKyAgICAgICAgIyBuZXcgYm1hcmsKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGN0eF9vbGQgPSBibWFya3NbYm1hcmtdCisgICAgY3R4X25ldyA9IGN0eAorICAgIGlmIG5vdCByZXBvLmNoYW5nZWxvZy5kZXNjZW5kYW50KGN0eF9vbGQucmV2KCksIGN0eF9uZXcucmV2KCkpOgorICAgICAgICBpZiBmb3JjZV9wdXNoOgorICAgICAgICAgICAgcHJpbnQgIm9rICVzIGZvcmNlZCB1cGRhdGUiICUgcmVmCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAiZXJyb3IgJXMgbm9uLWZhc3QgZm9yd2FyZCIgJSByZWYKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIFRydWUKKworZGVmIGNoZWNraGVhZHMocmVwbywgcmVtb3RlLCBwX3JldnMpOgorCisgICAgcmVtb3RlbWFwID0gcmVtb3RlLmJyYW5jaG1hcCgpCisgICAgaWYgbm90IHJlbW90ZW1hcDoKKyAgICAgICAgIyBlbXB0eSByZXBvCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBuZXcgPSB7fQorICAgIHJldCA9IFRydWUKKworICAgIGZvciBub2RlLCByZWYgaW4gcF9yZXZzLml0ZXJpdGVtcygpOgorICAgICAgICBjdHggPSByZXBvW25vZGVdCisgICAgICAgIGJyYW5jaCA9IGN0eC5icmFuY2goKQorICAgICAgICBpZiBub3QgYnJhbmNoIGluIHJlbW90ZW1hcDoKKyAgICAgICAgICAgICMgbmV3IGJyYW5jaAorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgbm90IHJlZi5zdGFydHN3aXRoKCdyZWZzL2hlYWRzL2JyYW5jaGVzJyk6CisgICAgICAgICAgICBpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKKyAgICAgICAgICAgICAgICBpZiBub3QgY2hlY2toZWFkc19ibWFyayhyZXBvLCByZWYsIGN0eCk6CisgICAgICAgICAgICAgICAgICAgIHJldCA9IEZhbHNlCisKKyAgICAgICAgICAgICMgb25seSBjaGVjayBicmFuY2hlcworICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbmV3LnNldGRlZmF1bHQoYnJhbmNoLCBbXSkuYXBwZW5kKGN0eC5yZXYoKSkKKworICAgIGZvciBicmFuY2gsIGhlYWRzIGluIG5ldy5pdGVyaXRlbXMoKToKKyAgICAgICAgb2xkID0gW3JlcG8uY2hhbmdlbG9nLnJldih4KSBmb3IgeCBpbiByZW1vdGVtYXBbYnJhbmNoXV0KKyAgICAgICAgZm9yIHJldiBpbiBoZWFkczoKKyAgICAgICAgICAgIGlmIGNoZWNrX3ZlcnNpb24oMiwgMyk6CisgICAgICAgICAgICAgICAgYW5jZXN0b3JzID0gcmVwby5jaGFuZ2Vsb2cuYW5jZXN0b3JzKFtyZXZdLCBzdG9wcmV2PW1pbihvbGQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhbmNlc3RvcnMgPSByZXBvLmNoYW5nZWxvZy5hbmNlc3RvcnMocmV2KQorICAgICAgICAgICAgZm91bmQgPSBGYWxzZQorCisgICAgICAgICAgICBmb3IgeCBpbiBvbGQ6CisgICAgICAgICAgICAgICAgaWYgeCBpbiBhbmNlc3RvcnM6CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICBpZiBmb3VuZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBub2RlID0gcmVwby5jaGFuZ2Vsb2cubm9kZShyZXYpCisgICAgICAgICAgICByZWYgPSBwX3JldnNbbm9kZV0KKyAgICAgICAgICAgIGlmIGZvcmNlX3B1c2g6CisgICAgICAgICAgICAgICAgcHJpbnQgIm9rICVzIGZvcmNlZCB1cGRhdGUiICUgcmVmCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBub24tZmFzdCBmb3J3YXJkIiAlIHJlZgorICAgICAgICAgICAgICAgIHJldCA9IEZhbHNlCisKKyAgICByZXR1cm4gcmV0CisKK2RlZiBwdXNoX3Vuc2FmZShyZXBvLCByZW1vdGUsIHBhcnNlZF9yZWZzLCBwX3JldnMpOgorCisgICAgZm9yY2UgPSBmb3JjZV9wdXNoCisKKyAgICBmY2kgPSBkaXNjb3ZlcnkuZmluZGNvbW1vbmluY29taW5nCisgICAgY29tbW9uaW5jID0gZmNpKHJlcG8sIHJlbW90ZSwgZm9yY2U9Zm9yY2UpCisgICAgY29tbW9uLCBfLCByZW1vdGVoZWFkcyA9IGNvbW1vbmluYworCisgICAgaWYgbm90IGNoZWNraGVhZHMocmVwbywgcmVtb3RlLCBwX3JldnMpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgY2cgPSByZXBvLmdldGJ1bmRsZSgncHVzaCcsIGhlYWRzPWxpc3QocF9yZXZzKSwgY29tbW9uPWNvbW1vbikKKworICAgIHVuYnVuZGxlID0gcmVtb3RlLmNhcGFibGUoJ3VuYnVuZGxlJykKKyAgICBpZiB1bmJ1bmRsZToKKyAgICAgICAgaWYgZm9yY2U6CisgICAgICAgICAgICByZW1vdGVoZWFkcyA9IFsnZm9yY2UnXQorICAgICAgICByZXR1cm4gcmVtb3RlLnVuYnVuZGxlKGNnLCByZW1vdGVoZWFkcywgJ3B1c2gnKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiByZW1vdGUuYWRkY2hhbmdlZ3JvdXAoY2csICdwdXNoJywgcmVwby51cmwoKSkKKworZGVmIHB1c2gocmVwbywgcmVtb3RlLCBwYXJzZWRfcmVmcywgcF9yZXZzKToKKyAgICBpZiBoYXNhdHRyKHJlbW90ZSwgJ2NhbnB1c2gnKSBhbmQgbm90IHJlbW90ZS5jYW5wdXNoKCk6CisgICAgICAgIHByaW50ICJlcnJvciBjYW5ub3QgcHVzaCIKKworICAgIGlmIG5vdCBwX3JldnM6CisgICAgICAgICMgbm90aGluZyB0byBwdXNoCisgICAgICAgIHJldHVybgorCisgICAgbG9jayA9IE5vbmUKKyAgICB1bmJ1bmRsZSA9IHJlbW90ZS5jYXBhYmxlKCd1bmJ1bmRsZScpCisgICAgaWYgbm90IHVuYnVuZGxlOgorICAgICAgICBsb2NrID0gcmVtb3RlLmxvY2soKQorICAgIHRyeToKKyAgICAgICAgcmV0ID0gcHVzaF91bnNhZmUocmVwbywgcmVtb3RlLCBwYXJzZWRfcmVmcywgcF9yZXZzKQorICAgIGZpbmFsbHk6CisgICAgICAgIGlmIGxvY2sgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBsb2NrLnJlbGVhc2UoKQorCisgICAgcmV0dXJuIHJldAorCitkZWYgY2hlY2tfdGlwKHJlZiwga2luZCwgbmFtZSwgaGVhZHMpOgorICAgIHRyeToKKyAgICAgICAgZW5hbWUgPSAnJXMvJXMnICUgKGtpbmQsIG5hbWUpCisgICAgICAgIHRpcCA9IG1hcmtzLmdldF90aXAoZW5hbWUpCisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiB0aXAgaW4gaGVhZHMKIAogZGVmIGRvX2V4cG9ydChwYXJzZXIpOgogICAgIGdsb2JhbCBwYXJzZWRfcmVmcywgYm1hcmtzLCBwZWVyCiAKICAgICBwX2JtYXJrcyA9IFtdCisgICAgcF9yZXZzID0ge30KIAogICAgIHBhcnNlci5uZXh0KCkKIApAQCAtODIyLDcxICsxMDE0LDExNCBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZGllKCd1bmhhbmRsZWQgZXhwb3J0IGNvbW1hbmQ6ICVzJyAlIGxpbmUpCiAKKyAgICBuZWVkX2ZldGNoID0gRmFsc2UKKwogICAgIGZvciByZWYsIG5vZGUgaW4gcGFyc2VkX3JlZnMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJub2RlID0gaGdiaW4obm9kZSkgaWYgbm9kZSBlbHNlIE5vbmUKICAgICAgICAgaWYgcmVmLnN0YXJ0c3dpdGgoJ3JlZnMvaGVhZHMvYnJhbmNoZXMnKToKICAgICAgICAgICAgIGJyYW5jaCA9IHJlZltsZW4oJ3JlZnMvaGVhZHMvYnJhbmNoZXMvJyk6XQotICAgICAgICAgICAgaWYgYnJhbmNoIGluIGJyYW5jaGVzIGFuZCBub2RlIGluIGJyYW5jaGVzW2JyYW5jaF06CisgICAgICAgICAgICBpZiBicmFuY2ggaW4gYnJhbmNoZXMgYW5kIGJub2RlIGluIGJyYW5jaGVzW2JyYW5jaF06CiAgICAgICAgICAgICAgICAgIyB1cCB0byBkYXRlCiAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgcGVlcjoKKyAgICAgICAgICAgICAgICByZW1vdGVtYXAgPSBwZWVyLmJyYW5jaG1hcCgpCisgICAgICAgICAgICAgICAgaWYgcmVtb3RlbWFwIGFuZCBicmFuY2ggaW4gcmVtb3RlbWFwOgorICAgICAgICAgICAgICAgICAgICBoZWFkcyA9IFtoZ2hleChlKSBmb3IgZSBpbiByZW1vdGVtYXBbYnJhbmNoXV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGNoZWNrX3RpcChyZWYsICdicmFuY2hlcycsIGJyYW5jaCwgaGVhZHMpOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yICVzIGZldGNoIGZpcnN0IiAlIHJlZgorICAgICAgICAgICAgICAgICAgICAgICAgbmVlZF9mZXRjaCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHBfcmV2c1tibm9kZV0gPSByZWYKICAgICAgICAgICAgIHByaW50ICJvayAlcyIgJSByZWYKICAgICAgICAgZWxpZiByZWYuc3RhcnRzd2l0aCgncmVmcy9oZWFkcy8nKToKICAgICAgICAgICAgIGJtYXJrID0gcmVmW2xlbigncmVmcy9oZWFkcy8nKTpdCi0gICAgICAgICAgICBwX2JtYXJrcy5hcHBlbmQoKGJtYXJrLCBub2RlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBuZXcgPSBub2RlCisgICAgICAgICAgICBvbGQgPSBibWFya3NbYm1hcmtdLmhleCgpIGlmIGJtYXJrIGluIGJtYXJrcyBlbHNlICcnCisKKyAgICAgICAgICAgIGlmIG9sZCA9PSBuZXc6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgorICAgICAgICAgICAgaWYgYm1hcmsgIT0gZmFrZV9ibWFyayBhbmQgXAorICAgICAgICAgICAgICAgICAgICBub3QgKGJtYXJrID09ICdtYXN0ZXInIGFuZCBibWFyayBub3QgaW4gcGFyc2VyLnJlcG8uX2Jvb2ttYXJrcyk6CisgICAgICAgICAgICAgICAgcF9ibWFya3MuYXBwZW5kKChyZWYsIGJtYXJrLCBvbGQsIG5ldykpCisKKyAgICAgICAgICAgIGlmIHBlZXI6CisgICAgICAgICAgICAgICAgcmVtb3RlX29sZCA9IHBlZXIubGlzdGtleXMoJ2Jvb2ttYXJrcycpLmdldChibWFyaykKKyAgICAgICAgICAgICAgICBpZiByZW1vdGVfb2xkOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY2hlY2tfdGlwKHJlZiwgJ2Jvb2ttYXJrcycsIGJtYXJrLCByZW1vdGVfb2xkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJlcnJvciAlcyBmZXRjaCBmaXJzdCIgJSByZWYKKyAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRfZmV0Y2ggPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwX3JldnNbYm5vZGVdID0gcmVmCiAgICAgICAgIGVsaWYgcmVmLnN0YXJ0c3dpdGgoJ3JlZnMvdGFncy8nKToKKyAgICAgICAgICAgIGlmIGRyeV9ydW46CisgICAgICAgICAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0YWcgPSByZWZbbGVuKCdyZWZzL3RhZ3MvJyk6XQogICAgICAgICAgICAgdGFnID0gaGdyZWYodGFnKQogICAgICAgICAgICAgYXV0aG9yLCBtc2cgPSBwYXJzZWRfdGFncy5nZXQodGFnLCAoTm9uZSwgTm9uZSkpCiAgICAgICAgICAgICBpZiBtb2RlID09ICdnaXQnOgogICAgICAgICAgICAgICAgIGlmIG5vdCBtc2c6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICdBZGRlZCB0YWcgJXMgZm9yIGNoYW5nZXNldCAlcycgJSAodGFnLCBoZ2hleChub2RlWzo2XSkpOwotICAgICAgICAgICAgICAgIHdyaXRlX3RhZyhwYXJzZXIucmVwbywgdGFnLCBub2RlLCBtc2csIGF1dGhvcikKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gJ0FkZGVkIHRhZyAlcyBmb3IgY2hhbmdlc2V0ICVzJyAlICh0YWcsIG5vZGVbOjEyXSk7CisgICAgICAgICAgICAgICAgdGFnbm9kZSwgYnJhbmNoID0gd3JpdGVfdGFnKHBhcnNlci5yZXBvLCB0YWcsIG5vZGUsIG1zZywgYXV0aG9yKQorICAgICAgICAgICAgICAgIHBfcmV2c1t0YWdub2RlXSA9ICdyZWZzL2hlYWRzL2JyYW5jaGVzLycgKyBnaXRyZWYoYnJhbmNoKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBmcCA9IHBhcnNlci5yZXBvLm9wZW5lcignbG9jYWx0YWdzJywgJ2EnKQotICAgICAgICAgICAgICAgIGZwLndyaXRlKCclcyAlc1xuJyAlIChoZ2hleChub2RlKSwgdGFnKSkKKyAgICAgICAgICAgICAgICBmcC53cml0ZSgnJXMgJXNcbicgJSAobm9kZSwgdGFnKSkKICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgICAgICBwX3JldnNbYm5vZGVdID0gcmVmCiAgICAgICAgICAgICBwcmludCAib2sgJXMiICUgcmVmCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIHRyYW5zcG9ydC1oZWxwZXIvZmFzdC1leHBvcnQgYnVncwogICAgICAgICAgICAgY29udGludWUKIAorICAgIGlmIG5lZWRfZmV0Y2g6CisgICAgICAgIHByaW50CisgICAgICAgIHJldHVybgorCisgICAgaWYgZHJ5X3J1bjoKKyAgICAgICAgaWYgcGVlciBhbmQgbm90IGZvcmNlX3B1c2g6CisgICAgICAgICAgICBjaGVja2hlYWRzKHBhcnNlci5yZXBvLCBwZWVyLCBwX3JldnMpCisgICAgICAgIHByaW50CisgICAgICAgIHJldHVybgorCiAgICAgaWYgcGVlcjoKLSAgICAgICAgcGFyc2VyLnJlcG8ucHVzaChwZWVyLCBmb3JjZT1mb3JjZV9wdXNoKQorICAgICAgICBpZiBub3QgcHVzaChwYXJzZXIucmVwbywgcGVlciwgcGFyc2VkX3JlZnMsIHBfcmV2cyk6CisgICAgICAgICAgICAjIGRvIG5vdCB1cGRhdGUgYm9va21hcmtzCisgICAgICAgICAgICBwcmludAorICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAjIGhhbmRsZSBib29rbWFya3MKLSAgICBmb3IgYm1hcmssIG5vZGUgaW4gcF9ibWFya3M6Ci0gICAgICAgIHJlZiA9ICdyZWZzL2hlYWRzLycgKyBibWFyawotICAgICAgICBuZXcgPSBoZ2hleChub2RlKQotCi0gICAgICAgIGlmIGJtYXJrIGluIGJtYXJrczoKLSAgICAgICAgICAgIG9sZCA9IGJtYXJrc1tibWFya10uaGV4KCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9sZCA9ICcnCi0KLSAgICAgICAgaWYgb2xkID09IG5ldzoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgaWYgYm1hcmsgPT0gJ21hc3RlcicgYW5kICdtYXN0ZXInIG5vdCBpbiBwYXJzZXIucmVwby5fYm9va21hcmtzOgotICAgICAgICAgICAgIyBmYWtlIGJvb2ttYXJrCi0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsaWYgYm9va21hcmtzLnB1c2hib29rbWFyayhwYXJzZXIucmVwbywgYm1hcmssIG9sZCwgbmV3KToKLSAgICAgICAgICAgICMgdXBkYXRlZCBsb2NhbGx5Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCAiZXJyb3IgJXMiICUgcmVmCi0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGlmIHBlZXI6Ci0gICAgICAgICAgICByYiA9IHBlZXIubGlzdGtleXMoJ2Jvb2ttYXJrcycpCi0gICAgICAgICAgICBvbGQgPSByYi5nZXQoYm1hcmssICcnKQorICAgICAgICAjIHVwZGF0ZSByZW1vdGUgYm9va21hcmtzCisgICAgICAgIHJlbW90ZV9ibWFya3MgPSBwZWVyLmxpc3RrZXlzKCdib29rbWFya3MnKQorICAgICAgICBmb3IgcmVmLCBibWFyaywgb2xkLCBuZXcgaW4gcF9ibWFya3M6CisgICAgICAgICAgICBpZiBmb3JjZV9wdXNoOgorICAgICAgICAgICAgICAgIG9sZCA9IHJlbW90ZV9ibWFya3MuZ2V0KGJtYXJrLCAnJykKICAgICAgICAgICAgIGlmIG5vdCBwZWVyLnB1c2hrZXkoJ2Jvb2ttYXJrcycsIGJtYXJrLCBvbGQsIG5ldyk6CiAgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yICVzIiAlIHJlZgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgcHJpbnQgIm9rICVzIiAlIHJlZgorICAgIGVsc2U6CisgICAgICAgICMgdXBkYXRlIGxvY2FsIGJvb2ttYXJrcworICAgICAgICBmb3IgcmVmLCBibWFyaywgb2xkLCBuZXcgaW4gcF9ibWFya3M6CisgICAgICAgICAgICBpZiBub3QgYm9va21hcmtzLnB1c2hib29rbWFyayhwYXJzZXIucmVwbywgYm1hcmssIG9sZCwgbmV3KToKKyAgICAgICAgICAgICAgICBwcmludCAiZXJyb3IgJXMiICUgcmVmCiAKICAgICBwcmludAogCitkZWYgZG9fb3B0aW9uKHBhcnNlcik6CisgICAgZ2xvYmFsIGRyeV9ydW4sIGZvcmNlX3B1c2gKKyAgICBfLCBrZXksIHZhbHVlID0gcGFyc2VyLmxpbmUuc3BsaXQoJyAnKQorICAgIGlmIGtleSA9PSAnZHJ5LXJ1bic6CisgICAgICAgIGRyeV9ydW4gPSAodmFsdWUgPT0gJ3RydWUnKQorICAgICAgICBwcmludCAnb2snCisgICAgZWxpZiBrZXkgPT0gJ2ZvcmNlJzoKKyAgICAgICAgZm9yY2VfcHVzaCA9ICh2YWx1ZSA9PSAndHJ1ZScpCisgICAgICAgIHByaW50ICdvaycKKyAgICBlbHNlOgorICAgICAgICBwcmludCAndW5zdXBwb3J0ZWQnCisKIGRlZiBmaXhfcGF0aChhbGlhcywgcmVwbywgb3JpZ191cmwpOgogICAgIHVybCA9IHVybHBhcnNlLnVybHBhcnNlKG9yaWdfdXJsLCAnZmlsZScpCiAgICAgaWYgdXJsLnNjaGVtZSAhPSAnZmlsZScgb3Igb3MucGF0aC5pc2Ficyh1cmwucGF0aCk6CkBAIC04OTYsMzEgKzExMzEsMjIgQEAKICAgICBzdWJwcm9jZXNzLmNhbGwoY21kKQogCiBkZWYgbWFpbihhcmdzKToKLSAgICBnbG9iYWwgcHJlZml4LCBkaXJuYW1lLCBicmFuY2hlcywgYm1hcmtzCisgICAgZ2xvYmFsIHByZWZpeCwgZ2l0ZGlyLCBkaXJuYW1lLCBicmFuY2hlcywgYm1hcmtzCiAgICAgZ2xvYmFsIG1hcmtzLCBibG9iX21hcmtzLCBwYXJzZWRfcmVmcwogICAgIGdsb2JhbCBwZWVyLCBtb2RlLCBiYWRfbWFpbCwgYmFkX25hbWUKICAgICBnbG9iYWwgdHJhY2tfYnJhbmNoZXMsIGZvcmNlX3B1c2gsIGlzX3RtcAogICAgIGdsb2JhbCBwYXJzZWRfdGFncwogICAgIGdsb2JhbCBmaWxlbm9kZXMKKyAgICBnbG9iYWwgZmFrZV9ibWFyaywgaGdfdmVyc2lvbgorICAgIGdsb2JhbCBkcnlfcnVuCiAKICAgICBhbGlhcyA9IGFyZ3NbMV0KICAgICB1cmwgPSBhcmdzWzJdCiAgICAgcGVlciA9IE5vbmUKIAotICAgIGhnX2dpdF9jb21wYXQgPSBGYWxzZQotICAgIHRyYWNrX2JyYW5jaGVzID0gVHJ1ZQotICAgIGZvcmNlX3B1c2ggPSBUcnVlCi0KLSAgICB0cnk6Ci0gICAgICAgIGlmIGdldF9jb25maWcoJ3JlbW90ZS1oZy5oZy1naXQtY29tcGF0JykgPT0gJ3RydWVcbic6Ci0gICAgICAgICAgICBoZ19naXRfY29tcGF0ID0gVHJ1ZQotICAgICAgICAgICAgdHJhY2tfYnJhbmNoZXMgPSBGYWxzZQotICAgICAgICBpZiBnZXRfY29uZmlnKCdyZW1vdGUtaGcudHJhY2stYnJhbmNoZXMnKSA9PSAnZmFsc2Vcbic6Ci0gICAgICAgICAgICB0cmFja19icmFuY2hlcyA9IEZhbHNlCi0gICAgICAgIGlmIGdldF9jb25maWcoJ3JlbW90ZS1oZy5mb3JjZS1wdXNoJykgPT0gJ2ZhbHNlXG4nOgotICAgICAgICAgICAgZm9yY2VfcHVzaCA9IEZhbHNlCi0gICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgotICAgICAgICBwYXNzCisgICAgaGdfZ2l0X2NvbXBhdCA9IGdldF9jb25maWdfYm9vbCgncmVtb3RlLWhnLmhnLWdpdC1jb21wYXQnKQorICAgIHRyYWNrX2JyYW5jaGVzID0gZ2V0X2NvbmZpZ19ib29sKCdyZW1vdGUtaGcudHJhY2stYnJhbmNoZXMnLCBUcnVlKQorICAgIGZvcmNlX3B1c2ggPSBGYWxzZQogCiAgICAgaWYgaGdfZ2l0X2NvbXBhdDoKICAgICAgICAgbW9kZSA9ICdoZycKQEAgLTk0Niw2ICsxMTcyLDEyIEBACiAgICAgbWFya3MgPSBOb25lCiAgICAgcGFyc2VkX3RhZ3MgPSB7fQogICAgIGZpbGVub2RlcyA9IHt9CisgICAgZmFrZV9ibWFyayA9IE5vbmUKKyAgICB0cnk6CisgICAgICAgIGhnX3ZlcnNpb24gPSB0dXBsZShpbnQoZSkgZm9yIGUgaW4gdXRpbC52ZXJzaW9uKCkuc3BsaXQoJy4nKSkKKyAgICBleGNlcHQ6CisgICAgICAgIGhnX3ZlcnNpb24gPSBOb25lCisgICAgZHJ5X3J1biA9IEZhbHNlCiAKICAgICByZXBvID0gZ2V0X3JlcG8odXJsLCBhbGlhcykKICAgICBwcmVmaXggPSAncmVmcy9oZy8lcycgJSBhbGlhcwpAQCAtOTUzLDExICsxMTg1LDEyIEBACiAgICAgaWYgbm90IGlzX3RtcDoKICAgICAgICAgZml4X3BhdGgoYWxpYXMsIHBlZXIgb3IgcmVwbywgdXJsKQogCi0gICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcm5hbWUpOgotICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQotCiAgICAgbWFya3NfcGF0aCA9IG9zLnBhdGguam9pbihkaXJuYW1lLCAnbWFya3MtaGcnKQotICAgIG1hcmtzID0gTWFya3MobWFya3NfcGF0aCkKKyAgICBtYXJrcyA9IE1hcmtzKG1hcmtzX3BhdGgsIHJlcG8pCisKKyAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgaW1wb3J0IG1zdmNydAorICAgICAgICBtc3ZjcnQuc2V0bW9kZShzeXMuc3Rkb3V0LmZpbGVubygpLCBvcy5PX0JJTkFSWSkKIAogICAgIHBhcnNlciA9IFBhcnNlcihyZXBvKQogICAgIGZvciBsaW5lIGluIHBhcnNlcjoKQEAgLTk2OSw2ICsxMjAyLDggQEAKICAgICAgICAgICAgIGRvX2ltcG9ydChwYXJzZXIpCiAgICAgICAgIGVsaWYgcGFyc2VyLmNoZWNrKCdleHBvcnQnKToKICAgICAgICAgICAgIGRvX2V4cG9ydChwYXJzZXIpCisgICAgICAgIGVsaWYgcGFyc2VyLmNoZWNrKCdvcHRpb24nKToKKyAgICAgICAgICAgIGRvX29wdGlvbihwYXJzZXIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBkaWUoJ3VuaGFuZGxlZCBjb21tYW5kOiAlcycgJSBsaW5lKQogICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1ienIuc2ggYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtYnpyLnNoCmluZGV4IDM0NjY2ZTEuLmRjZTI4MWYgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1ienIuc2gKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWJ6ci5zaApAQCAtMTIsODYgKzEyLDkwIEBACiAJdGVzdF9kb25lCiBmaQogCi1pZiAhICIkUFlUSE9OX1BBVEgiIC1jICdpbXBvcnQgYnpybGliJzsgdGhlbgoraWYgISBweXRob24gLWMgJ2ltcG9ydCBienJsaWInOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1ienIgdGVzdHM7IGJ6ciBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAogY2hlY2sgKCkgewotCShjZCAkMSAmJgotCWdpdCBsb2cgLS1mb3JtYXQ9JyVzJyAtMSAmJgotCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCkgPiBhY3R1YWwgJiYKLQkoZWNobyAkMiAmJgotCWVjaG8gInJlZnMvaGVhZHMvJDMiKSA+IGV4cGVjdGVkICYmCisJZWNobyAkMyA+IGV4cGVjdGVkICYmCisJZ2l0IC0tZ2l0LWRpcj0kMS8uZ2l0IGxvZyAtLWZvcm1hdD0nJXMnIC0xICQyID4gYWN0dWFsCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiB9CiAKIGJ6ciB3aG9hbWkgIkEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uaW5nJyAnCi0gIChienIgaW5pdCBienJyZXBvICYmCi0gIGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBvbmUgPiBjb250ZW50ICYmCi0gIGJ6ciBhZGQgY29udGVudCAmJgotICBienIgY29tbWl0IC1tIG9uZQotICApICYmCisJKAorCWJ6ciBpbml0IGJ6cnJlcG8gJiYKKwljZCBienJyZXBvICYmCisJZWNobyBvbmUgPiBjb250ZW50ICYmCisJYnpyIGFkZCBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBvbmUKKwkpICYmCiAKLSAgZ2l0IGNsb25lICJienI6OiRQV0QvYnpycmVwbyIgZ2l0cmVwbyAmJgotICBjaGVjayBnaXRyZXBvIG9uZSBtYXN0ZXIKKwlnaXQgY2xvbmUgImJ6cjo6YnpycmVwbyIgZ2l0cmVwbyAmJgorCWNoZWNrIGdpdHJlcG8gSEVBRCBvbmUKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZycgJwotICAoY2QgYnpycmVwbyAmJgotICBlY2hvIHR3byA+IGNvbnRlbnQgJiYKLSAgYnpyIGNvbW1pdCAtbSB0d28KLSAgKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyB0d28gPiBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSB0d28KKwkpICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYgZ2l0IHB1bGwpICYmCisJKGNkIGdpdHJlcG8gJiYgZ2l0IHB1bGwpICYmCiAKLSAgY2hlY2sgZ2l0cmVwbyB0d28gbWFzdGVyCisJY2hlY2sgZ2l0cmVwbyBIRUFEIHR3bwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nJyAnCi0gIChjZCBnaXRyZXBvICYmCi0gIGVjaG8gdGhyZWUgPiBjb250ZW50ICYmCi0gIGdpdCBjb21taXQgLWEgLW0gdGhyZWUgJiYKLSAgZ2l0IHB1c2gKLSAgKSAmJgorCSgKKwljZCBnaXRyZXBvICYmCisJZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHRocmVlICYmCisJZ2l0IHB1c2gKKwkpICYmCiAKLSAgZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCi0gIGNhdCBienJyZXBvL2NvbnRlbnQgPiBhY3R1YWwgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyb3VuZHRyaXAnICcKLSAgKGNkIGdpdHJlcG8gJiYKLSAgZ2l0IHB1bGwgJiYKLSAgZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIC0xIG9yaWdpbi9tYXN0ZXIgPiBhY3R1YWwpICYmCi0gIGVjaG8gdGhyZWUgPiBleHBlY3RlZCAmJgotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBwdWxsICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIC0xIG9yaWdpbi9tYXN0ZXIgPiBhY3R1YWwKKwkpICYmCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYgZ2l0IHB1c2ggJiYgZ2l0IHB1bGwpICYmCisJKGNkIGdpdHJlcG8gJiYgZ2l0IHB1c2ggJiYgZ2l0IHB1bGwpICYmCiAKLSAgKGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBmb3VyID4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIGZvdXIKLSAgKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyBmb3VyID4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gZm91cgorCSkgJiYKIAotICAoY2QgZ2l0cmVwbyAmJiBnaXQgcHVsbCAmJiBnaXQgcHVzaCkgJiYKKwkoY2QgZ2l0cmVwbyAmJiBnaXQgcHVsbCAmJiBnaXQgcHVzaCkgJiYKIAotICBjaGVjayBnaXRyZXBvIGZvdXIgbWFzdGVyICYmCisJY2hlY2sgZ2l0cmVwbyBIRUFEIGZvdXIgJiYKIAotICAoY2QgZ2l0cmVwbyAmJgotICBlY2hvIGZpdmUgPiBjb250ZW50ICYmCi0gIGdpdCBjb21taXQgLWEgLW0gZml2ZSAmJgotICBnaXQgcHVzaCAmJiBnaXQgcHVsbAotICApICYmCisJKAorCWNkIGdpdHJlcG8gJiYKKwllY2hvIGZpdmUgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBmaXZlICYmCisJZ2l0IHB1c2ggJiYgZ2l0IHB1bGwKKwkpICYmCiAKLSAgKGNkIGJ6cnJlcG8gJiYgYnpyIHJldmVydCkgJiYKKwkoY2QgYnpycmVwbyAmJiBienIgcmV2ZXJ0KSAmJgogCi0gIGVjaG8gZml2ZSA+IGV4cGVjdGVkICYmCi0gIGNhdCBienJyZXBvL2NvbnRlbnQgPiBhY3R1YWwgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyBmaXZlID4gZXhwZWN0ZWQgJiYKKwljYXQgYnpycmVwby9jb250ZW50ID4gYWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIGNhdCA+IGV4cGVjdGVkIDw8RU9GCkBAIC0xMDEsMjkgKzEwNSwzNSBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NwZWNpYWwgbW9kZXMnICcKLSAgKGNkIGJ6cnJlcG8gJiYKLSAgZWNobyBleGVjID4gZXhlY3V0YWJsZQotICBjaG1vZCAreCBleGVjdXRhYmxlICYmCi0gIGJ6ciBhZGQgZXhlY3V0YWJsZQotICBienIgY29tbWl0IC1tIGV4ZWMgJiYKLSAgbG4gLXMgY29udGVudCBsaW5rCi0gIGJ6ciBhZGQgbGluawotICBienIgY29tbWl0IC1tIGxpbmsgJiYKLSAgbWtkaXIgZGlyICYmCi0gIGJ6ciBhZGQgZGlyICYmCi0gIGJ6ciBjb21taXQgLW0gZGlyKSAmJgorCSgKKwljZCBienJyZXBvICYmCisJZWNobyBleGVjID4gZXhlY3V0YWJsZQorCWNobW9kICt4IGV4ZWN1dGFibGUgJiYKKwlienIgYWRkIGV4ZWN1dGFibGUKKwlienIgY29tbWl0IC1tIGV4ZWMgJiYKKwlsbiAtcyBjb250ZW50IGxpbmsKKwlienIgYWRkIGxpbmsKKwlienIgY29tbWl0IC1tIGxpbmsgJiYKKwlta2RpciBkaXIgJiYKKwlienIgYWRkIGRpciAmJgorCWJ6ciBjb21taXQgLW0gZGlyCisJKSAmJgogCi0gIChjZCBnaXRyZXBvICYmCi0gIGdpdCBwdWxsCi0gIGdpdCBscy10cmVlIEhFQUQgPiAuLi9hY3R1YWwpICYmCisJKAorCWNkIGdpdHJlcG8gJiYKKwlnaXQgcHVsbAorCWdpdCBscy10cmVlIEhFQUQgPiAuLi9hY3R1YWwKKwkpICYmCiAKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCiAKLSAgKGNkIGdpdHJlcG8gJiYKLSAgZ2l0IGNhdC1maWxlIC1wIEhFQUQ6bGluayA+IC4uL2FjdHVhbCkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjYXQtZmlsZSAtcCBIRUFEOmxpbmsgPiAuLi9hY3R1YWwKKwkpICYmCiAKLSAgcHJpbnRmIGNvbnRlbnQgPiBleHBlY3RlZCAmJgotICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwlwcmludGYgY29udGVudCA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIGNhdCA+IGV4cGVjdGVkIDw8RU9GCkBAIC0xMzQsOTggKzE0NCwyMTggQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdtb3ZpbmcgZGlyZWN0b3J5JyAnCi0gIChjZCBienJyZXBvICYmCi0gIG1rZGlyIG1vdmVkaXIgJiYKLSAgZWNobyBvbmUgPiBtb3ZlZGlyL29uZSAmJgotICBlY2hvIHR3byA+IG1vdmVkaXIvdHdvICYmCi0gIGJ6ciBhZGQgbW92ZWRpciAmJgotICBienIgY29tbWl0IC1tIG1vdmVkaXIgJiYKLSAgYnpyIG12IG1vdmVkaXIgbW92ZWRpci1uZXcgJiYKLSAgYnpyIGNvbW1pdCAtbSBtb3ZlZGlyLW5ldykgJiYKKwkoCisJY2QgYnpycmVwbyAmJgorCW1rZGlyIG1vdmVkaXIgJiYKKwllY2hvIG9uZSA+IG1vdmVkaXIvb25lICYmCisJZWNobyB0d28gPiBtb3ZlZGlyL3R3byAmJgorCWJ6ciBhZGQgbW92ZWRpciAmJgorCWJ6ciBjb21taXQgLW0gbW92ZWRpciAmJgorCWJ6ciBtdiBtb3ZlZGlyIG1vdmVkaXItbmV3ICYmCisJYnpyIGNvbW1pdCAtbSBtb3ZlZGlyLW5ldworCSkgJiYKIAotICAoY2QgZ2l0cmVwbyAmJgotICBnaXQgcHVsbCAmJgotICBnaXQgbHMtdHJlZSBIRUFEID4gLi4vYWN0dWFsKSAmJgorCSgKKwljZCBnaXRyZXBvICYmCisJZ2l0IHB1bGwgJiYKKwlnaXQgbHMtdHJlZSBIRUFEID4gLi4vYWN0dWFsCisJKSAmJgogCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmZXJlbnQgYXV0aG9ycycgJwotICAoY2QgYnpycmVwbyAmJgotICBlY2hvIGpvaG4gPj4gY29udGVudCAmJgotICBienIgY29tbWl0IC1tIGpvaG4gXAotICAgIC0tYXV0aG9yICJKYW5lIFJleSA8anJleUBleGFtcGxlLmNvbT4iIFwKLSAgICAtLWF1dGhvciAiSm9obiBEb2UgPGpkb2VAZXhhbXBsZS5jb20+IikgJiYKKwkoCisJY2QgYnpycmVwbyAmJgorCWVjaG8gam9obiA+PiBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBqb2huIFwKKwkgIC0tYXV0aG9yICJKYW5lIFJleSA8anJleUBleGFtcGxlLmNvbT4iIFwKKwkgIC0tYXV0aG9yICJKb2huIERvZSA8amRvZUBleGFtcGxlLmNvbT4iCisJKSAmJgogCi0gIChjZCBnaXRyZXBvICYmCi0gIGdpdCBwdWxsICYmCi0gIGdpdCBzaG93IC0tZm9ybWF0PSIlYW4gPCVhZT4sICVjbiA8JWNlPiIgLS1xdWlldCA+IC4uL2FjdHVhbCkgJiYKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBwdWxsICYmCisJZ2l0IHNob3cgLS1mb3JtYXQ9IiVhbiA8JWFlPiwgJWNuIDwlY2U+IiAtLXF1aWV0ID4gLi4vYWN0dWFsCisJKSAmJgogCi0gIGVjaG8gIkphbmUgUmV5IDxqcmV5QGV4YW1wbGUuY29tPiwgQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4iID4gZXhwZWN0ZWQgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyAiSmFuZSBSZXkgPGpyZXlAZXhhbXBsZS5jb20+LCBBIFUgVGhvciA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPiBleHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCisjIGNsZWFudXAgcHJldmlvdXMgc3R1ZmYKK3JtIC1yZiBienJyZXBvIGdpdHJlcG8KKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggdXRmLTggZmlsZW5hbWVzJyAnCi0gIG1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wICYmIExDX0FMTD1DIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyAmJiBMQ19BTEw9QyIgJiYKIAotICBMQ19BTEw9ZW5fVVMuVVRGLTgKLSAgZXhwb3J0IExDX0FMTAotICAoCi0gIGJ6ciBpbml0IGJ6cnJlcG8gJiYKLSAgY2QgYnpycmVwbyAmJgorCUxDX0FMTD1lbl9VUy5VVEYtOAorCWV4cG9ydCBMQ19BTEwKIAotICBlY2hvIHRlc3QgPj4gIsOmcsO4IiAmJgotICBienIgYWRkICLDpnLDuCIgJiYKLSAgZWNobyB0ZXN0ID4+ICLDuH4/IiAmJgotICBienIgYWRkICLDuH4/IiAmJgotICBienIgY29tbWl0IC1tIGFkZC11dGYtOCAmJgotICBlY2hvIHRlc3QgPj4gIsOmcsO4IiAmJgotICBienIgY29tbWl0IC1tIHRlc3QtdXRmLTggJiYKLSAgYnpyIHJtICLDuH4/IiAmJgotICBienIgbXYgIsOmcsO4IiAiw7h+PyIgJiYKLSAgYnpyIGNvbW1pdCAtbSBienItbXYtdXRmLTgKLSAgKSAmJgorCSgKKwlienIgaW5pdCBienJyZXBvICYmCisJY2QgYnpycmVwbyAmJgogCi0gICgKLSAgZ2l0IGNsb25lICJienI6OiRQV0QvYnpycmVwbyIgZ2l0cmVwbyAmJgotICBjZCBnaXRyZXBvICYmCi0gIGdpdCAtYyBjb3JlLnF1b3RlcGF0aD1mYWxzZSBscy1maWxlcyA+IC4uL2FjdHVhbAotICApICYmCi0gIGVjaG8gIsO4fj8iID4gZXhwZWN0ZWQgJiYKLSAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJZWNobyB0ZXN0ID4+ICLDpnLDuCIgJiYKKwlienIgYWRkICLDpnLDuCIgJiYKKwllY2hvIHRlc3QgPj4gIsO4fj8iICYmCisJYnpyIGFkZCAiw7h+PyIgJiYKKwlienIgY29tbWl0IC1tIGFkZC11dGYtOCAmJgorCWVjaG8gdGVzdCA+PiAiw6Zyw7giICYmCisJYnpyIGNvbW1pdCAtbSB0ZXN0LXV0Zi04ICYmCisJYnpyIHJtICLDuH4/IiAmJgorCWJ6ciBtdiAiw6Zyw7giICLDuH4/IiAmJgorCWJ6ciBjb21taXQgLW0gYnpyLW12LXV0Zi04CisJKSAmJgorCisJKAorCWdpdCBjbG9uZSAiYnpyOjpienJyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCAtYyBjb3JlLnF1b3RlcGF0aD1mYWxzZSBscy1maWxlcyA+IC4uL2FjdHVhbAorCSkgJiYKKwllY2hvICLDuH4/IiA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggdXRmLTggZmlsZW5hbWVzJyAnCi0gIG1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wICYmIExDX0FMTD1DIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyAmJiBMQ19BTEw9QyIgJiYKIAotICBMQ19BTEw9ZW5fVVMuVVRGLTgKLSAgZXhwb3J0IExDX0FMTAorCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKIAotICAoCi0gIGJ6ciBpbml0IGJ6cnJlcG8gJiYKLSAgY2QgYnpycmVwbyAmJgorCUxDX0FMTD1lbl9VUy5VVEYtOAorCWV4cG9ydCBMQ19BTEwKIAotICBlY2hvIG9uZSA+PiBjb250ZW50ICYmCi0gIGJ6ciBhZGQgY29udGVudCAmJgotICBienIgY29tbWl0IC1tIG9uZQotICApICYmCisJKAorCWJ6ciBpbml0IGJ6cnJlcG8gJiYKKwljZCBienJyZXBvICYmCiAKLSAgKAotICBnaXQgY2xvbmUgImJ6cjo6JFBXRC9ienJyZXBvIiBnaXRyZXBvICYmCi0gIGNkIGdpdHJlcG8gJiYKKwllY2hvIG9uZSA+PiBjb250ZW50ICYmCisJYnpyIGFkZCBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBvbmUKKwkpICYmCiAKLSAgZWNobyB0ZXN0ID4+ICLDpnLDuCIgJiYKLSAgZ2l0IGFkZCAiw6Zyw7giICYmCi0gIGdpdCBjb21taXQgLW0gdXRmLTggJiYKKwkoCisJZ2l0IGNsb25lICJienI6OmJ6cnJlcG8iIGdpdHJlcG8gJiYKKwljZCBnaXRyZXBvICYmCiAKLSAgZ2l0IHB1c2gKLSAgKSAmJgorCWVjaG8gdGVzdCA+PiAiw6Zyw7giICYmCisJZ2l0IGFkZCAiw6Zyw7giICYmCisJZ2l0IGNvbW1pdCAtbSB1dGYtOCAmJgogCi0gIChjZCBienJyZXBvICYmIGJ6ciBscyA+IC4uL2FjdHVhbCkgJiYKLSAgcHJpbnRmICJjb250ZW50XG7DpnLDuFxuIiA+IGV4cGVjdGVkICYmCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCWdpdCBwdXNoCisJKSAmJgorCisJKGNkIGJ6cnJlcG8gJiYgYnpyIGxzID4gLi4vYWN0dWFsKSAmJgorCXByaW50ZiAiY29udGVudFxuw6Zyw7hcbiIgPiBleHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nIGEgbWVyZ2UnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBienJyZXBvIGdpdHJlcG8iICYmCisKKwkoCisJYnpyIGluaXQgYnpycmVwbyAmJgorCWNkIGJ6cnJlcG8gJiYKKwllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwlienIgYWRkIGNvbnRlbnQgJiYKKwlienIgY29tbWl0IC1tIG9uZQorCSkgJiYKKworCWdpdCBjbG9uZSAiYnpyOjpienJyZXBvIiBnaXRyZXBvICYmCisKKwkoCisJY2QgYnpycmVwbyAmJgorCWVjaG8gdHdvID4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdHdvCisJKSAmJgorCisJKAorCWNkIGdpdHJlcG8gJiYKKwllY2hvIHRocmVlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gdGhyZWUgJiYKKwlnaXQgZmV0Y2ggJiYKKwlnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlciB8fCB0cnVlICYmCisJZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC0tbm8tZWRpdCAmJgorCWdpdCBwdXNoCisJKSAmJgorCisJZWNobyB0aHJlZSA+IGV4cGVjdGVkICYmCisJY2F0IGJ6cnJlcG8vY29udGVudCA+IGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCitjYXQgPiBleHBlY3RlZCA8PEVPRgorb3JpZ2luL0hFQUQKK29yaWdpbi9icmFuY2gKK29yaWdpbi90cnVuaworRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb3BlciBienIgcmVwbycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGJ6cnJlcG8gZ2l0cmVwbyIgJiYKKworCWJ6ciBpbml0LXJlcG8gYnpycmVwbyAmJgorCisJKAorCWJ6ciBpbml0IGJ6cnJlcG8vdHJ1bmsgJiYKKwljZCBienJyZXBvL3RydW5rICYmCisJZWNobyBvbmUgPj4gY29udGVudCAmJgorCWJ6ciBhZGQgY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gb25lCisJKSAmJgorCisJKAorCWJ6ciBicmFuY2ggYnpycmVwby90cnVuayBienJyZXBvL2JyYW5jaCAmJgorCWNkIGJ6cnJlcG8vYnJhbmNoICYmCisJZWNobyB0d28gPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gb25lCisJKSAmJgorCisJKAorCWdpdCBjbG9uZSAiYnpyOjpienJyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQgIiUocmVmbmFtZTpzaG9ydCkiIHJlZnMvcmVtb3Rlcy9vcmlnaW4gPiAuLi9hY3R1YWwKKwkpICYmCisKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RyaXAnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBienJyZXBvIGdpdHJlcG8iICYmCisKKwkoCisJYnpyIGluaXQgYnpycmVwbyAmJgorCWNkIGJ6cnJlcG8gJiYKKworCWVjaG8gb25lID4+IGNvbnRlbnQgJiYKKwlienIgYWRkIGNvbnRlbnQgJiYKKwlienIgY29tbWl0IC1tIG9uZSAmJgorCisJZWNobyB0d28gPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdHdvCisJKSAmJgorCisJZ2l0IGNsb25lICJienI6OmJ6cnJlcG8iIGdpdHJlcG8gJiYKKworCSgKKwljZCBienJyZXBvICYmCisJYnpyIHVuY29tbWl0IC0tZm9yY2UgJiYKKworCWVjaG8gdGhyZWUgPj4gY29udGVudCAmJgorCWJ6ciBjb21taXQgLW0gdGhyZWUgJiYKKworCWVjaG8gZm91ciA+PiBjb250ZW50ICYmCisJYnpyIGNvbW1pdCAtbSBmb3VyICYmCisJYnpyIGxvZyAtLWxpbmUgfCBzZWQgLWUgInMvXlswLTldWzAtOV0qOiAvLyIgPiAuLi9leHBlY3RlZAorCSkgJiYKKworCSgKKwljZCBnaXRyZXBvICYmCisJZ2l0IGZldGNoICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0iJWFuICVhZCAlcyIgLS1kYXRlPXNob3J0IG9yaWdpbi9tYXN0ZXIgPiAuLi9hY3R1YWwKKwkpICYmCisKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGctYmlkaS5zaCBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1iaWRpLnNoCmluZGV4IGY1Njk2OTcuLmY4M2Q2N2QgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1iaWRpLnNoCisrKyBiL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1iaWRpLnNoCkBAIC0xNSwyMyArMTUsMjIgQEAKIAl0ZXN0X2RvbmUKIGZpCiAKLWlmICEgIiRQWVRIT05fUEFUSCIgLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IG1lcmN1cmlhbCc7IHRoZW4KIAlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLWhnIHRlc3RzOyBtZXJjdXJpYWwgbm90IGF2YWlsYWJsZScKIAl0ZXN0X2RvbmUKIGZpCiAKICMgY2xvbmUgdG8gYSBnaXQgcmVwbwogZ2l0X2Nsb25lICgpIHsKLQlnaXQgY2xvbmUgLXEgImhnOjokUFdELyQxIiAkMgorCWdpdCBjbG9uZSAtcSAiaGc6OiQxIiAkMgogfQogCiAjIGNsb25lIHRvIGFuIGhnIHJlcG8KIGhnX2Nsb25lICgpIHsKIAkoCiAJaGcgaW5pdCAkMiAmJgotCWhnIC1SICQyIGJvb2ttYXJrIC1pIG1hc3RlciAmJgogCWNkICQxICYmCi0JZ2l0IHB1c2ggLXEgImhnOjokUFdELy4uLyQyIiAncmVmcy90YWdzLyo6cmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qJworCWdpdCBwdXNoIC1xICJoZzo6Li4vJDIiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonCiAJKSAmJgogCiAJKGNkICQyICYmIGhnIC1xIHVwZGF0ZSkKQEAgLTQxLDE3ICs0MCwxNSBAQAogaGdfcHVzaCAoKSB7CiAJKAogCWNkICQyCi0Jb2xkPSQoZ2l0IHN5bWJvbGljLXJlZiAtLXNob3J0IEhFQUQpCiAJZ2l0IGNoZWNrb3V0IC1xIC1iIHRtcCAmJgotCWdpdCBmZXRjaCAtcSAiaGc6OiRQV0QvLi4vJDEiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonICYmCi0JZ2l0IGNoZWNrb3V0IC1xICRvbGQgJiYKKwlnaXQgZmV0Y2ggLXEgImhnOjouLi8kMSIgJ3JlZnMvdGFncy8qOnJlZnMvdGFncy8qJyAncmVmcy9oZWFkcy8qOnJlZnMvaGVhZHMvKicgJiYKKwlnaXQgY2hlY2tvdXQgLXEgQHstMX0gJiYKIAlnaXQgYnJhbmNoIC1xIC1EIHRtcCAyPiAvZGV2L251bGwgfHwgdHJ1ZQogCSkKIH0KIAogaGdfbG9nICgpIHsKLQloZyAtUiAkMSBsb2cgLS1ncmFwaCAtLWRlYnVnID5sb2cgJiYKLQlncmVwIC12ICd0YWc6ICpkZWZhdWx0LycgbG9nCisJaGcgLVIgJDEgbG9nIC0tZ3JhcGggLS1kZWJ1ZwogfQogCiBzZXR1cCAoKSB7CkBAIC02Nyw2ICs2NCw3IEBACiAJZWNobyAiZ3JhcGhsb2cgPSIKIAkpID4+ICIkSE9NRSIvLmhncmMgJiYKIAlnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy5oZy1naXQtY29tcGF0IHRydWUKKwlnaXQgY29uZmlnIC0tZ2xvYmFsIHJlbW90ZS1oZy50cmFjay1icmFuY2hlcyB0cnVlCiAKIAlIR0VESVRPUj0vdXNyL2Jpbi90cnVlCiAJR0lUX0FVVEhPUl9EQVRFPSIyMDA3LTAxLTAxIDAwOjAwOjAwICswMjMwIgpAQCAtNzcsOCArNzUsNyBAQAogc2V0dXAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZW5jb2RpbmcnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgpAQCAtMTE1LDggKzExMiw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgcmVtb3ZhbCcgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xNDgsOCArMTQ0LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHRhZ3MnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgpAQCAtMTc3LDggKzE3Miw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2hnIGJyYW5jaCcgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xOTQsNyArMTg4LDcgQEAKIAloZ19jbG9uZSBnaXRyZXBvIGhncmVwbyAmJgogCiAJY2QgaGdyZXBvICYmCi0JaGcgLXEgY28gbWFzdGVyICYmCisJaGcgLXEgY28gZGVmYXVsdCAmJgogCWhnIG12IGFscGhhIGJldGEgJiYKIAloZyAtcSBjb21taXQgLW0gInJlbmFtZSBhbHBoYSB0byBiZXRhIiAmJgogCWhnIGJyYW5jaCBnYW1tYSB8IGdyZXAgLXYgInBlcm1hbmVudCBhbmQgZ2xvYmFsIiAmJgpAQCAtMjE0LDggKzIwOCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2hnIHRhZ3MnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgpAQCAtMjMxLDcgKzIyNCw3IEBACiAJaGdfY2xvbmUgZ2l0cmVwbyBoZ3JlcG8gJiYKIAogCWNkIGhncmVwbyAmJgotCWhnIGNvIG1hc3RlciAmJgorCWhnIGNvIGRlZmF1bHQgJiYKIAloZyB0YWcgYWxwaGEKIAkpICYmCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1oZy1naXQuc2ggYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGctaGctZ2l0LnNoCmluZGV4IDg0NDAzNDEuLjIyMTkyODQgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy1oZy1naXQuc2gKKysrIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLWhnLWdpdC5zaApAQCAtMTUsMTkgKzE1LDIwIEBACiAJdGVzdF9kb25lCiBmaQogCi1pZiAhICIkUFlUSE9OX1BBVEgiIC1jICdpbXBvcnQgbWVyY3VyaWFsJzsgdGhlbgoraWYgISBweXRob24gLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1oZyB0ZXN0czsgbWVyY3VyaWFsIG5vdCBhdmFpbGFibGUnCiAJdGVzdF9kb25lCiBmaQogCi1pZiAhICIkUFlUSE9OX1BBVEgiIC1jICdpbXBvcnQgaGdnaXQnOyB0aGVuCitpZiAhIHB5dGhvbiAtYyAnaW1wb3J0IGhnZ2l0JzsgdGhlbgogCXNraXBfYWxsPSdza2lwcGluZyByZW1vdGUtaGcgdGVzdHM7IGhnLWdpdCBub3QgYXZhaWxhYmxlJwogCXRlc3RfZG9uZQogZmkKIAogIyBjbG9uZSB0byBhIGdpdCByZXBvIHdpdGggZ2l0CiBnaXRfY2xvbmVfZ2l0ICgpIHsKLQlnaXQgY2xvbmUgLXEgImhnOjokUFdELyQxIiAkMgorCWdpdCBjbG9uZSAtcSAiaGc6OiQxIiAkMiAmJgorCShjZCAkMiAmJiBnaXQgY2hlY2tvdXQgbWFzdGVyICYmIGdpdCBicmFuY2ggLUQgZGVmYXVsdCkKIH0KIAogIyBjbG9uZSB0byBhbiBoZyByZXBvIHdpdGggZ2l0CkBAIC0zNiw3ICszNyw3IEBACiAJaGcgaW5pdCAkMiAmJgogCWhnIC1SICQyIGJvb2ttYXJrIC1pIG1hc3RlciAmJgogCWNkICQxICYmCi0JZ2l0IHB1c2ggLXEgImhnOjokUFdELy4uLyQyIiAncmVmcy90YWdzLyo6cmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qJworCWdpdCBwdXNoIC1xICJoZzo6Li4vJDIiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonCiAJKSAmJgogCiAJKGNkICQyICYmIGhnIC1xIHVwZGF0ZSkKQEAgLTYxLDEwICs2MiwxMCBAQAogaGdfcHVzaF9naXQgKCkgewogCSgKIAljZCAkMgotCW9sZD0kKGdpdCBzeW1ib2xpYy1yZWYgLS1zaG9ydCBIRUFEKQogCWdpdCBjaGVja291dCAtcSAtYiB0bXAgJiYKLQlnaXQgZmV0Y2ggLXEgImhnOjokUFdELy4uLyQxIiAncmVmcy90YWdzLyo6cmVmcy90YWdzLyonICdyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qJyAmJgotCWdpdCBjaGVja291dCAtcSAkb2xkICYmCisJZ2l0IGZldGNoIC1xICJoZzo6Li4vJDEiICdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKicgJ3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzLyonICYmCisJZ2l0IGJyYW5jaCAtRCBkZWZhdWx0ICYmCisJZ2l0IGNoZWNrb3V0IC1xIEB7LTF9ICYmCiAJZ2l0IGJyYW5jaCAtcSAtRCB0bXAgMj4gL2Rldi9udWxsIHx8IHRydWUKIAkpCiB9CkBAIC0xMDIsMTkgKzEwMywyMCBAQAogCSkgPj4gIiRIT01FIi8uaGdyYyAmJgogCWdpdCBjb25maWcgLS1nbG9iYWwgcmVjZWl2ZS5kZW55Y3VycmVudGJyYW5jaCB3YXJuCiAJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcuaGctZ2l0LWNvbXBhdCB0cnVlCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCByZW1vdGUtaGcudHJhY2stYnJhbmNoZXMgZmFsc2UKIAotCUhHRURJVE9SPS91c3IvYmluL3RydWUKKwlIR0VESVRPUj10cnVlCisJSEdNRVJHRT10cnVlCiAKIAlHSVRfQVVUSE9SX0RBVEU9IjIwMDctMDEtMDEgMDA6MDA6MDAgKzAyMzAiCiAJR0lUX0NPTU1JVFRFUl9EQVRFPSIkR0lUX0FVVEhPUl9EQVRFIgotCWV4cG9ydCBIR0VESVRPUiBHSVRfQVVUSE9SX0RBVEUgR0lUX0NPTU1JVFRFUl9EQVRFCisJZXhwb3J0IEhHRURJVE9SIEhHTUVSR0UgR0lUX0FVVEhPUl9EQVRFIEdJVF9DT01NSVRURVJfREFURQogfQogCiBzZXR1cAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdleGVjdXRhYmxlIGJpdCcgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xNDksOCArMTUxLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluaycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAlnaXQgaW5pdCAtcSBnaXRyZXBvICYmCkBAIC0xODAsOCArMTgxLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgY29uZmxpY3QgMScgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCSgKIAloZyBpbml0IGhncmVwbzEgJiYKQEAgLTE5Nyw3ICsxOTcsNyBAQAogCWVjaG8gQyA+IGFmaWxlICYmCiAJaGcgY2kgLW0gIkEtPkMiICYmCiAKLQloZyBtZXJnZSAtcjEgfHwgdHJ1ZSAmJgorCWhnIG1lcmdlIC1yMSAmJgogCWVjaG8gQyA+IGFmaWxlICYmCiAJaGcgcmVzb2x2ZSAtbSBhZmlsZSAmJgogCWhnIGNpIC1tICJtZXJnZSB0byBDIgpAQCAtMjE1LDggKzIxNSw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIGNvbmZsaWN0IDInICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJaGcgaW5pdCBoZ3JlcG8xICYmCkBAIC0yNTAsOCArMjQ5LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY29udmVyZ2VkIG1lcmdlJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWhnIGluaXQgaGdyZXBvMSAmJgpAQCAtMjg2LDggKzI4NCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2VuY29kaW5nJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTMyNiw4ICszMjMsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmaWxlIHJlbW92YWwnICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAkoCiAJZ2l0IGluaXQgLXEgZ2l0cmVwbyAmJgpAQCAtMzY2LDggKzM2Miw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCB0YWdzJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJKAogCWdpdCBpbml0IC1xIGdpdHJlcG8gJiYKQEAgLTM5Myw4ICszODgsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdoZyBhdXRob3InICcKLQlta2RpciAtcCB0bXAgJiYgY2QgdG1wICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIGhncmVwbyoiICYmCiAKIAlmb3IgeCBpbiBoZyBnaXQ7IGRvCiAJCSgKQEAgLTQ1NSwxNSArNDQ5LDEyIEBACiAJCWdpdF9sb2cgZ2l0cmVwby0keCA+IGdpdC1sb2ctJHgKIAlkb25lICYmCiAKLQl0ZXN0X2NtcCBnaXQtbG9nLWhnIGdpdC1sb2ctZ2l0ICYmCi0KIAl0ZXN0X2NtcCBoZy1sb2ctaGcgaGctbG9nLWdpdCAmJgogCXRlc3RfY21wIGdpdC1sb2ctaGcgZ2l0LWxvZy1naXQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaGcgYnJhbmNoJyAnCi0JbWtkaXIgLXAgdG1wICYmIGNkIHRtcCAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiBoZ3JlcG8qIiAmJgogCiAJZm9yIHggaW4gaGcgZ2l0OyBkbwogCQkoCkBAIC00OTksOCArNDkwLDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaGcgdGFncycgJwotCW1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgImNkIC4uICYmIHJtIC1yZiB0bXAiICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyogaGdyZXBvKiIgJiYKIAogCWZvciB4IGluIGhnIGdpdDsgZG8KIAkJKApkaWZmIC0tZ2l0IGEvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLnNoIGIvY29udHJpYi9yZW1vdGUtaGVscGVycy90ZXN0LWhnLnNoCmluZGV4IDhkZTJhYTcuLmY3Y2U4YWEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvcmVtb3RlLWhlbHBlcnMvdGVzdC1oZy5zaAorKysgYi9jb250cmliL3JlbW90ZS1oZWxwZXJzL3Rlc3QtaGcuc2gKQEAgLTE1LDE0MyArMTUsNjc4IEBACiAJdGVzdF9kb25lCiBmaQogCi1pZiAhICIkUFlUSE9OX1BBVEgiIC1jICdpbXBvcnQgbWVyY3VyaWFsJzsgdGhlbgoraWYgISBweXRob24gLWMgJ2ltcG9ydCBtZXJjdXJpYWwnOyB0aGVuCiAJc2tpcF9hbGw9J3NraXBwaW5nIHJlbW90ZS1oZyB0ZXN0czsgbWVyY3VyaWFsIG5vdCBhdmFpbGFibGUnCiAJdGVzdF9kb25lCiBmaQogCiBjaGVjayAoKSB7Ci0JKGNkICQxICYmCi0JZ2l0IGxvZyAtLWZvcm1hdD0nJXMnIC0xICYmCi0JZ2l0IHN5bWJvbGljLXJlZiBIRUFEKSA+IGFjdHVhbCAmJgotCShlY2hvICQyICYmCi0JZWNobyAicmVmcy9oZWFkcy8kMyIpID4gZXhwZWN0ZWQgJiYKKwllY2hvICQzID4gZXhwZWN0ZWQgJiYKKwlnaXQgLS1naXQtZGlyPSQxLy5naXQgbG9nIC0tZm9ybWF0PSclcycgLTEgJDIgPiBhY3R1YWwKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKIH0KIAorY2hlY2tfYnJhbmNoICgpIHsKKwlpZiBbIC1uICIkMyIgXTsgdGhlbgorCQllY2hvICQzID4gZXhwZWN0ZWQgJiYKKwkJaGcgLVIgJDEgbG9nIC1yICQyIC0tdGVtcGxhdGUgJ3tkZXNjfVxuJyA+IGFjdHVhbCAmJgorCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwllbHNlCisJCWhnIC1SICQxIGJyYW5jaGVzID4gb3V0ICYmCisJCSEgZ3JlcCAkMiBvdXQKKwlmaQorfQorCitjaGVja19ib29rbWFyayAoKSB7CisJaWYgWyAtbiAiJDMiIF07IHRoZW4KKwkJZWNobyAkMyA+IGV4cGVjdGVkICYmCisJCWhnIC1SICQxIGxvZyAtciAiYm9va21hcmsoJyQyJykiIC0tdGVtcGxhdGUgJ3tkZXNjfVxuJyA+IGFjdHVhbCAmJgorCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwllbHNlCisJCWhnIC1SICQxIGJvb2ttYXJrcyA+IG91dCAmJgorCQkhIGdyZXAgJDIgb3V0CisJZmkKK30KKworY2hlY2tfcHVzaCAoKSB7CisJbG9jYWwgZXhwZWN0ZWRfcmV0PSQxIHJldD0wIHJlZl9yZXQ9MCBJRlM9JzonCisKKwlzaGlmdAorCWdpdCBwdXNoIG9yaWdpbiAiJEAiIDI+IGVycm9yCisJcmV0PSQ/CisJY2F0IGVycm9yCisKKwl3aGlsZSByZWFkIGJyYW5jaCBraW5kCisJZG8KKwkJY2FzZSAiJGtpbmQiIGluCisJCSduZXcnKQorCQkJZ3JlcCAiXiBcKiBcW25ldyBicmFuY2hcXSAqJHticmFuY2h9IC0+ICR7YnJhbmNofSQiIGVycm9yIHx8IHJlZl9yZXQ9MQorCQkJOzsKKwkJJ25vbi1mYXN0LWZvcndhcmQnKQorCQkJZ3JlcCAiXiAhIFxbcmVqZWN0ZWRcXSAqJHticmFuY2h9IC0+ICR7YnJhbmNofSAobm9uLWZhc3QtZm9yd2FyZCkkIiBlcnJvciB8fCByZWZfcmV0PTEKKwkJCTs7CisJCSdmZXRjaC1maXJzdCcpCisJCQlncmVwICJeICEgXFtyZWplY3RlZFxdICoke2JyYW5jaH0gLT4gJHticmFuY2h9IChmZXRjaCBmaXJzdCkkIiBlcnJvciB8fCByZWZfcmV0PTEKKwkJCTs7CisJCSdmb3JjZWQtdXBkYXRlJykKKwkJCWdyZXAgIl4gKyBbYS1mMC05XSpcLlwuXC5bYS1mMC05XSogKiR7YnJhbmNofSAtPiAke2JyYW5jaH0gKGZvcmNlZCB1cGRhdGUpJCIgZXJyb3IgfHwgcmVmX3JldD0xCisJCQk7OworCQknJykKKwkJCWdyZXAgIl4gICBbYS1mMC05XSpcLlwuW2EtZjAtOV0qICoke2JyYW5jaH0gLT4gJHticmFuY2h9JCIgZXJyb3IgfHwgcmVmX3JldD0xCisJCQk7OworCQllc2FjCisJCWxldCAncmVmX3JldCcgJiYgZWNobyAibWF0Y2ggZm9yICckYnJhbmNoJyBmYWlsZWQiICYmIGJyZWFrCisJZG9uZQorCisJaWYgbGV0ICdleHBlY3RlZF9yZXQgIT0gcmV0IHx8IHJlZl9yZXQnCisJdGhlbgorCQlyZXR1cm4gMQorCWZpCisKKwlyZXR1cm4gMAorfQorCiBzZXR1cCAoKSB7CiAJKAogCWVjaG8gIlt1aV0iCiAJZWNobyAidXNlcm5hbWUgPSBIIEcgV2VsbHMgPHdlbGxzQGV4YW1wbGUuY29tPiIKLQkpID4+ICIkSE9NRSIvLmhncmMKKwllY2hvICJbZXh0ZW5zaW9uc10iCisJZWNobyAibXEgPSIKKwkpID4+ICIkSE9NRSIvLmhncmMgJiYKKworCUdJVF9BVVRIT1JfREFURT0iMjAwNy0wMS0wMSAwMDowMDowMCArMDIzMCIgJiYKKwlHSVRfQ09NTUlUVEVSX0RBVEU9IiRHSVRfQVVUSE9SX0RBVEUiICYmCisJZXhwb3J0IEdJVF9DT01NSVRURVJfREFURSBHSVRfQVVUSE9SX0RBVEUKIH0KIAogc2V0dXAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmluZycgJwotICB0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKIAotICAoCi0gIGhnIGluaXQgaGdyZXBvICYmCi0gIGNkIGhncmVwbyAmJgotICBlY2hvIHplcm8gPiBjb250ZW50ICYmCi0gIGhnIGFkZCBjb250ZW50ICYmCi0gIGhnIGNvbW1pdCAtbSB6ZXJvCi0gICkgJiYKKwkoCisJaGcgaW5pdCBoZ3JlcG8gJiYKKwljZCBoZ3JlcG8gJiYKKwllY2hvIHplcm8gPiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gemVybworCSkgJiYKIAotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbyAmJgotICBjaGVjayBnaXRyZXBvIHplcm8gbWFzdGVyCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2hlY2sgZ2l0cmVwbyBIRUFEIHplcm8KICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmluZyB3aXRoIGJyYW5jaGVzJyAnCi0gIHRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgogCi0gICgKLSAgY2QgaGdyZXBvICYmCi0gIGhnIGJyYW5jaCBuZXh0ICYmCi0gIGVjaG8gbmV4dCA+IGNvbnRlbnQgJiYKLSAgaGcgY29tbWl0IC1tIG5leHQKLSAgKSAmJgorCSgKKwljZCBoZ3JlcG8gJiYKKwloZyBicmFuY2ggbmV4dCAmJgorCWVjaG8gbmV4dCA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gbmV4dAorCSkgJiYKIAotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbyAmJgotICBjaGVjayBnaXRyZXBvIG5leHQgbmV4dCAmJgotCi0gIChjZCBoZ3JlcG8gJiYgaGcgY2hlY2tvdXQgZGVmYXVsdCkgJiYKLQotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbzIgJiYKLSAgY2hlY2sgZ2l0cmVwbzIgemVybyBtYXN0ZXIKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljaGVjayBnaXRyZXBvIG9yaWdpbi9icmFuY2hlcy9uZXh0IG5leHQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmluZyB3aXRoIGJvb2ttYXJrcycgJwotICB0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKIAotICAoCi0gIGNkIGhncmVwbyAmJgotICBoZyBib29rbWFyayBmZWF0dXJlLWEgJiYKLSAgZWNobyBmZWF0dXJlLWEgPiBjb250ZW50ICYmCi0gIGhnIGNvbW1pdCAtbSBmZWF0dXJlLWEKLSAgKSAmJgorCSgKKwljZCBoZ3JlcG8gJiYKKwloZyBjaGVja291dCBkZWZhdWx0ICYmCisJaGcgYm9va21hcmsgZmVhdHVyZS1hICYmCisJZWNobyBmZWF0dXJlLWEgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIGZlYXR1cmUtYQorCSkgJiYKIAotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbyAmJgotICBjaGVjayBnaXRyZXBvIGZlYXR1cmUtYSBmZWF0dXJlLWEKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmluZyB3aXRoIGRldGFjaGVkIGhlYWQnICcKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCi0KLSAgKAotICBjZCBoZ3JlcG8gJiYKLSAgaGcgdXBkYXRlIC1yIDAKLSAgKSAmJgotCi0gIGdpdCBjbG9uZSAiaGc6OiRQV0QvaGdyZXBvIiBnaXRyZXBvICYmCi0gIGNoZWNrIGdpdHJlcG8gemVybyBtYXN0ZXIKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljaGVjayBnaXRyZXBvIG9yaWdpbi9mZWF0dXJlLWEgZmVhdHVyZS1hCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSBib29rbWFyaycgJwotICB0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKIAotICAoCi0gIGNkIGhncmVwbyAmJgotICBoZyBib29rbWFyayBkZXZlbAotICApICYmCisJKAorCWNkIGhncmVwbyAmJgorCWhnIGJvb2ttYXJrIGRldmVsCisJKSAmJgogCi0gICgKLSAgZ2l0IGNsb25lICJoZzo6JFBXRC9oZ3JlcG8iIGdpdHJlcG8gJiYKLSAgY2QgZ2l0cmVwbyAmJgotICBnaXQgY2hlY2tvdXQgZGV2ZWwgJiYKLSAgZWNobyBkZXZlbCA+IGNvbnRlbnQgJiYKLSAgZ2l0IGNvbW1pdCAtYSAtbSBkZXZlbCAmJgotICBnaXQgcHVzaAotICApICYmCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgY2hlY2tvdXQgLS1xdWlldCBkZXZlbCAmJgorCWVjaG8gZGV2ZWwgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBkZXZlbCAmJgorCWdpdCBwdXNoIC0tcXVpZXQKKwkpICYmCiAKLSAgaGcgLVIgaGdyZXBvIGJvb2ttYXJrcyB8IGVncmVwICJkZXZlbFsJIF0rMzoiCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGRldmVsIGRldmVsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ25ldyBib29rbWFyaycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgY2hlY2tvdXQgLS1xdWlldCAtYiBmZWF0dXJlLWIgJiYKKwllY2hvIGZlYXR1cmUtYiA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIGZlYXR1cmUtYiAmJgorCWdpdCBwdXNoIC0tcXVpZXQgb3JpZ2luIGZlYXR1cmUtYgorCSkgJiYKKworCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBmZWF0dXJlLWIgZmVhdHVyZS1iCisnCisKKyMgY2xlYW51cCBwcmV2aW91cyBzdHVmZgorcm0gLXJmIGhncmVwbworCiBhdXRob3JfdGVzdCAoKSB7Ci0gIGVjaG8gJDEgPj4gY29udGVudCAmJgotICBoZyBjb21taXQgLXUgIiQyIiAtbSAiYWRkICQxIiAmJgotICBlY2hvICIkMyIgPj4gLi4vZXhwZWN0ZWQKKwllY2hvICQxID4+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLXUgIiQyIiAtbSAiYWRkICQxIiAmJgorCWVjaG8gIiQzIiA+PiAuLi9leHBlY3RlZAogfQogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhdXRob3JzJyAnCi0gIG1rZGlyIC1wIHRtcCAmJiBjZCB0bXAgJiYKLSAgdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvIiAmJgogCi0gICgKLSAgaGcgaW5pdCBoZ3JlcG8gJiYKLSAgY2QgaGdyZXBvICYmCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCiAKLSAgdG91Y2ggY29udGVudCAmJgotICBoZyBhZGQgY29udGVudCAmJgorCXRvdWNoIGNvbnRlbnQgJiYKKwloZyBhZGQgY29udGVudCAmJgogCi0gIGF1dGhvcl90ZXN0IGFscGhhICIiICJIIEcgV2VsbHMgPHdlbGxzQGV4YW1wbGUuY29tPiIgJiYKLSAgYXV0aG9yX3Rlc3QgYmV0YSAidGVzdCIgInRlc3QgPHVua25vd24+IiAmJgotICBhdXRob3JfdGVzdCBiZXRhICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiAoY29tbWVudCkiICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKLSAgYXV0aG9yX3Rlc3QgZ2FtbWEgIjx0ZXN0QGV4YW1wbGUuY29tPiIgIlVua25vd24gPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotICBhdXRob3JfdGVzdCBkZWx0YSAibmFtZTx0ZXN0QGV4YW1wbGUuY29tPiIgIm5hbWUgPHRlc3RAZXhhbXBsZS5jb20+IiAmJgotICBhdXRob3JfdGVzdCBlcHNpbG9uICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tIiAibmFtZSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0gIGF1dGhvcl90ZXN0IHpldGEgIiB0ZXN0ICIgInRlc3QgPHVua25vd24+IiAmJgotICBhdXRob3JfdGVzdCBldGEgInRlc3QgPCB0ZXN0QGV4YW1wbGUuY29tID4iICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKLSAgYXV0aG9yX3Rlc3QgdGhldGEgInRlc3QgPnRlc3RAZXhhbXBsZS5jb20+IiAidGVzdCA8dGVzdEBleGFtcGxlLmNvbT4iICYmCi0gIGF1dGhvcl90ZXN0IGlvdGEgInRlc3QgPCB0ZXN0IDxhdD4gZXhhbXBsZSA8ZG90PiBjb20+IiAidGVzdCA8dW5rbm93bj4iICYmCi0gIGF1dGhvcl90ZXN0IGthcHBhICJ0ZXN0QGV4YW1wbGUuY29tIiAiVW5rbm93biA8dGVzdEBleGFtcGxlLmNvbT4iCi0gICkgJiYKKwk+IC4uL2V4cGVjdGVkICYmCisJYXV0aG9yX3Rlc3QgYWxwaGEgIiIgIkggRyBXZWxscyA8d2VsbHNAZXhhbXBsZS5jb20+IiAmJgorCWF1dGhvcl90ZXN0IGJldGEgInRlc3QiICJ0ZXN0IDx1bmtub3duPiIgJiYKKwlhdXRob3JfdGVzdCBiZXRhICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiAoY29tbWVudCkiICJ0ZXN0IDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBnYW1tYSAiPHRlc3RAZXhhbXBsZS5jb20+IiAiVW5rbm93biA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgZGVsdGEgIm5hbWU8dGVzdEBleGFtcGxlLmNvbT4iICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tPiIgJiYKKwlhdXRob3JfdGVzdCBlcHNpbG9uICJuYW1lIDx0ZXN0QGV4YW1wbGUuY29tIiAibmFtZSA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgemV0YSAiIHRlc3QgIiAidGVzdCA8dW5rbm93bj4iICYmCisJYXV0aG9yX3Rlc3QgZXRhICJ0ZXN0IDwgdGVzdEBleGFtcGxlLmNvbSA+IiAidGVzdCA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgdGhldGEgInRlc3QgPnRlc3RAZXhhbXBsZS5jb20+IiAidGVzdCA8dGVzdEBleGFtcGxlLmNvbT4iICYmCisJYXV0aG9yX3Rlc3QgaW90YSAidGVzdCA8IHRlc3QgPGF0PiBleGFtcGxlIDxkb3Q+IGNvbT4iICJ0ZXN0IDx1bmtub3duPiIgJiYKKwlhdXRob3JfdGVzdCBrYXBwYSAidGVzdEBleGFtcGxlLmNvbSIgIlVua25vd24gPHRlc3RAZXhhbXBsZS5jb20+IgorCSkgJiYKIAotICBnaXQgY2xvbmUgImhnOjokUFdEL2hncmVwbyIgZ2l0cmVwbyAmJgotICBnaXQgLS1naXQtZGlyPWdpdHJlcG8vLmdpdCBsb2cgLS1yZXZlcnNlIC0tZm9ybWF0PSIlYW4gPCVhZT4iID4gYWN0dWFsICYmCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJZ2l0IC0tZ2l0LWRpcj1naXRyZXBvLy5naXQgbG9nIC0tcmV2ZXJzZSAtLWZvcm1hdD0iJWFuIDwlYWU+IiA+IGFjdHVhbCAmJgogCi0gIHRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdHJpcCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvIiAmJgorCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisKKwllY2hvIG9uZSA+PiBjb250ZW50ICYmCisJaGcgYWRkIGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gb25lICYmCisKKwllY2hvIHR3byA+PiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHR3bworCSkgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCisJKAorCWNkIGhncmVwbyAmJgorCWhnIHN0cmlwIDEgJiYKKworCWVjaG8gdGhyZWUgPj4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSB0aHJlZSAmJgorCisJZWNobyBmb3VyID4+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gZm91cgorCSkgJiYKKworCSgKKwljZCBnaXRyZXBvICYmCisJZ2l0IGZldGNoICYmCisJZ2l0IGxvZyAtLWZvcm1hdD0iJXMiIG9yaWdpbi9tYXN0ZXIgPiAuLi9hY3R1YWwKKwkpICYmCisKKwloZyAtUiBoZ3JlcG8gbG9nIC0tdGVtcGxhdGUgIntkZXNjfVxuIiA+IGV4cGVjdGVkICYmCisJdGVzdF9jbXAgYWN0dWFsIGV4cGVjdGVkCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBwdXNoIHdpdGggbWFzdGVyIGJvb2ttYXJrJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8qIiAmJgorCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisJZWNobyB6ZXJvID4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHplcm8gJiYKKwloZyBib29rbWFyayBtYXN0ZXIgJiYKKwllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gb25lCisJKSAmJgorCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwllY2hvIHR3byA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHR3byAmJgorCWdpdCBwdXNoCisJKSAmJgorCisJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IHR3bworJworCitjYXQgPiBleHBlY3RlZCA8PEVPRgorY2hhbmdlc2V0OiAgIDA6NmUyMTI2NDg5ZDNkCit0YWc6ICAgICAgICAgdGlwCit1c2VyOiAgICAgICAgQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KK2RhdGU6ICAgICAgICBNb24gSmFuIDAxIDAwOjAwOjAwIDIwMDcgKzAyMzAKK3N1bW1hcnk6ICAgICBvbmUKKworRU9GCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBwdXNoIGZyb20gbWFzdGVyIGJyYW5jaCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvKiIgJiYKKworCWhnIGluaXQgaGdyZXBvICYmCisKKwkoCisJZ2l0IGluaXQgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgcmVtb3RlIGFkZCBvcmlnaW4gImhnOjouLi9oZ3JlcG8iICYmCisJZWNobyBvbmUgPiBjb250ZW50ICYmCisJZ2l0IGFkZCBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBvbmUgJiYKKwlnaXQgcHVzaCBvcmlnaW4gbWFzdGVyCisJKSAmJgorCisJaGcgLVIgaGdyZXBvIGxvZyA+IGFjdHVhbCAmJgorCWNhdCBhY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKKworCWNoZWNrX2JyYW5jaCBoZ3JlcG8gZGVmYXVsdCBvbmUKKycKKworR0lUX1JFTU9URV9IR19URVNUX1JFTU9URT0xCitleHBvcnQgR0lUX1JFTU9URV9IR19URVNUX1JFTU9URQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgY2xvbmluZycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGdpdHJlcG8qIiAmJgorCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisJZWNobyB6ZXJvID4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHplcm8KKwkpICYmCisKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljaGVjayBnaXRyZXBvIEhFQUQgemVybworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgdXBkYXRlIGJvb2ttYXJrJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgYm9va21hcmsgZGV2ZWwKKwkpICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjaGVja291dCAtLXF1aWV0IGRldmVsICYmCisJZWNobyBkZXZlbCA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIGRldmVsICYmCisJZ2l0IHB1c2ggLS1xdWlldAorCSkgJiYKKworCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBkZXZlbCBkZXZlbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgbmV3IGJvb2ttYXJrJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisKKwkoCisJZ2l0IGNsb25lICJoZzo6aGdyZXBvIiBnaXRyZXBvICYmCisJY2QgZ2l0cmVwbyAmJgorCWdpdCBjaGVja291dCAtLXF1aWV0IC1iIGZlYXR1cmUtYiAmJgorCWVjaG8gZmVhdHVyZS1iID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gZmVhdHVyZS1iICYmCisJZ2l0IHB1c2ggLS1xdWlldCBvcmlnaW4gZmVhdHVyZS1iCisJKSAmJgorCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGZlYXR1cmUtYiBmZWF0dXJlLWIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHB1c2ggZGl2ZXJnZWQnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCisJKAorCWNkIGhncmVwbyAmJgorCWhnIGNoZWNrb3V0IGRlZmF1bHQgJiYKKwllY2hvIGJ1bXAgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIGJ1bXAKKwkpICYmCisKKwkoCisJY2QgZ2l0cmVwbyAmJgorCWVjaG8gZGl2ZXJnZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1hIC1tIGRpdmVyZ2VkICYmCisJY2hlY2tfcHVzaCAxIDw8LUVPRgorCW1hc3Rlcjpub24tZmFzdC1mb3J3YXJkCisJRU9GCisJKSAmJgorCisJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IGJ1bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHVwZGF0ZSBib29rbWFyayBkaXZlcmdlJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgZ2l0cmVwbyoiICYmCisKKwkoCisJY2QgaGdyZXBvICYmCisJaGcgY2hlY2tvdXQgdGlwXiAmJgorCWhnIGJvb2ttYXJrIGRpdmVyZ2UKKwkpICYmCisKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKworCSgKKwljZCBoZ3JlcG8gJiYKKwllY2hvICJidW1wIGJvb2ttYXJrIiA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gImJ1bXAgYm9va21hcmsiCisJKSAmJgorCisJKAorCWNkIGdpdHJlcG8gJiYKKwlnaXQgY2hlY2tvdXQgLS1xdWlldCBkaXZlcmdlICYmCisJZWNobyBkaXZlcmdlID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLWEgLW0gZGl2ZXJnZSAmJgorCWNoZWNrX3B1c2ggMSA8PC1FT0YKKwlkaXZlcmdlOmZldGNoLWZpcnN0CisJRU9GCisJKSAmJgorCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGRpdmVyZ2UgImJ1bXAgYm9va21hcmsiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW90ZSBuZXcgYm9va21hcmsgbXVsdGlwbGUgYnJhbmNoIGhlYWQnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBnaXRyZXBvKiIgJiYKKworCSgKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKwljZCBnaXRyZXBvICYmCisJZ2l0IGNoZWNrb3V0IC0tcXVpZXQgLWIgZmVhdHVyZS1jIEhFQUReICYmCisJZWNobyBmZWF0dXJlLWMgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSBmZWF0dXJlLWMgJiYKKwlnaXQgcHVzaCAtLXF1aWV0IG9yaWdpbiBmZWF0dXJlLWMKKwkpICYmCisKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZmVhdHVyZS1jIGZlYXR1cmUtYworJworCisjIGNsZWFudXAgcHJldmlvdXMgc3R1ZmYKK3JtIC1yZiBoZ3JlcG8KKworc2V0dXBfYmlnX3B1c2ggKCkgeworCSgKKwloZyBpbml0IGhncmVwbyAmJgorCWNkIGhncmVwbyAmJgorCWVjaG8gemVybyA+IGNvbnRlbnQgJiYKKwloZyBhZGQgY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSB6ZXJvICYmCisJaGcgYm9va21hcmsgYmFkX2JtYXJrMSAmJgorCWVjaG8gb25lID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSBvbmUgJiYKKwloZyBib29rbWFyayBiYWRfYm1hcmsyICYmCisJaGcgYm9va21hcmsgZ29vZF9ibWFyayAmJgorCWhnIGJvb2ttYXJrIC1pIGdvb2RfYm1hcmsgJiYKKwloZyAtcSBicmFuY2ggZ29vZF9icmFuY2ggJiYKKwllY2hvICJnb29kIGJyYW5jaCIgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tICJnb29kIGJyYW5jaCIgJiYKKwloZyAtcSBicmFuY2ggYmFkX2JyYW5jaCAmJgorCWVjaG8gImJhZCBicmFuY2giID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSAiYmFkIGJyYW5jaCIKKwkpICYmCisKKwlnaXQgY2xvbmUgImhnOjpoZ3JlcG8iIGdpdHJlcG8gJiYKKworCSgKKwljZCBnaXRyZXBvICYmCisJZWNobyB0d28gPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSB0d28gJiYKKworCWdpdCBjaGVja291dCAtcSBnb29kX2JtYXJrICYmCisJZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIHRocmVlICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgYmFkX2JtYXJrMSAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwllY2hvIGZvdXIgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmb3VyICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgYmFkX2JtYXJrMiAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwllY2hvIGZpdmUgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmaXZlICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgLWIgbmV3X2JtYXJrIG1hc3RlciAmJgorCWVjaG8gc2l4ID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gc2l4ICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgYnJhbmNoZXMvZ29vZF9icmFuY2ggJiYKKwllY2hvIHNldmVuID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gc2V2ZW4gJiYKKwllY2hvIGVpZ2h0ID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gZWlnaHQgJiYKKworCWdpdCBjaGVja291dCAtcSBicmFuY2hlcy9iYWRfYnJhbmNoICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWVjaG8gbmluZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIG5pbmUgJiYKKworCWdpdCBjaGVja291dCAtcSAtYiBicmFuY2hlcy9uZXdfYnJhbmNoIG1hc3RlciAmJgorCWVjaG8gdGVuID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gdGVuCisJKQorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgYmlnIHB1c2gnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyoiICYmCisKKwlzZXR1cF9iaWdfcHVzaAorCisJKAorCWNkIGdpdHJlcG8gJiYKKworCWNoZWNrX3B1c2ggMSAtLWFsbCA8PC1FT0YKKwltYXN0ZXIKKwlnb29kX2JtYXJrCisJYnJhbmNoZXMvZ29vZF9icmFuY2gKKwluZXdfYm1hcms6bmV3CisJYnJhbmNoZXMvbmV3X2JyYW5jaDpuZXcKKwliYWRfYm1hcmsxOm5vbi1mYXN0LWZvcndhcmQKKwliYWRfYm1hcmsyOm5vbi1mYXN0LWZvcndhcmQKKwlicmFuY2hlcy9iYWRfYnJhbmNoOm5vbi1mYXN0LWZvcndhcmQKKwlFT0YKKwkpICYmCisKKwljaGVja19icmFuY2ggaGdyZXBvIGRlZmF1bHQgb25lICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBnb29kX2JyYW5jaCAiZ29vZCBicmFuY2giICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBiYWRfYnJhbmNoICJiYWQgYnJhbmNoIiAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gbmV3X2JyYW5jaCAnJyAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBnb29kX2JtYXJrIG9uZSAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBiYWRfYm1hcmsxIG9uZSAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBiYWRfYm1hcmsyIG9uZSAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBuZXdfYm1hcmsgJycKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIGJpZyBwdXNoIGZldGNoIGZpcnN0JyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8qIiAmJgorCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisJZWNobyB6ZXJvID4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHplcm8gJiYKKwloZyBib29rbWFyayBiYWRfYm1hcmsgJiYKKwloZyBib29rbWFyayBnb29kX2JtYXJrICYmCisJaGcgYm9va21hcmsgLWkgZ29vZF9ibWFyayAmJgorCWhnIC1xIGJyYW5jaCBnb29kX2JyYW5jaCAmJgorCWVjaG8gImdvb2QgYnJhbmNoIiA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gImdvb2QgYnJhbmNoIiAmJgorCWhnIC1xIGJyYW5jaCBiYWRfYnJhbmNoICYmCisJZWNobyAiYmFkIGJyYW5jaCIgPiBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tICJiYWQgYnJhbmNoIgorCSkgJiYKKworCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCisJKAorCWNkIGhncmVwbyAmJgorCWhnIGJvb2ttYXJrIC1mIGJhZF9ibWFyayAmJgorCWVjaG8gdXBkYXRlX2JtYXJrID4gY29udGVudCAmJgorCWhnIGNvbW1pdCAtbSAidXBkYXRlIGJtYXJrIgorCSkgJiYKKworCSgKKwljZCBnaXRyZXBvICYmCisJZWNobyB0d28gPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSB0d28gJiYKKworCWdpdCBjaGVja291dCAtcSBnb29kX2JtYXJrICYmCisJZWNobyB0aHJlZSA+IGNvbnRlbnQgJiYKKwlnaXQgY29tbWl0IC1xIC1hIC1tIHRocmVlICYmCisKKwlnaXQgY2hlY2tvdXQgLXEgYmFkX2JtYXJrICYmCisJZWNobyBmb3VyID4gY29udGVudCAmJgorCWdpdCBjb21taXQgLXEgLWEgLW0gZm91ciAmJgorCisJZ2l0IGNoZWNrb3V0IC1xIGJyYW5jaGVzL2JhZF9icmFuY2ggJiYKKwllY2hvIGZpdmUgPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtcSAtYSAtbSBmaXZlICYmCisKKwljaGVja19wdXNoIDEgLS1hbGwgPDwtRU9GCisJbWFzdGVyCisJZ29vZF9ibWFyaworCW5ld19ibWFyazpuZXcKKwluZXdfYnJhbmNoOm5ldworCWJhZF9ibWFyazpmZXRjaC1maXJzdAorCWJyYW5jaGVzL2JhZF9icmFuY2g6ZmVzdGNoLWZpcnN0CisJRU9GCisKKwlnaXQgZmV0Y2ggJiYKKworCWNoZWNrX3B1c2ggMSAtLWFsbCA8PC1FT0YKKwltYXN0ZXIKKwlnb29kX2JtYXJrCisJYmFkX2JtYXJrOm5vbi1mYXN0LWZvcndhcmQKKwlicmFuY2hlcy9iYWRfYnJhbmNoOm5vbi1mYXN0LWZvcndhcmQKKwlFT0YKKwkpCisnCisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ3JlbW90ZSBiaWcgcHVzaCBmb3JjZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIGhncmVwbyBnaXRyZXBvKiIgJiYKKworCXNldHVwX2JpZ19wdXNoCisKKwkoCisJY2QgZ2l0cmVwbyAmJgorCisJY2hlY2tfcHVzaCAwIC0tZm9yY2UgLS1hbGwgPDwtRU9GCisJbWFzdGVyCisJZ29vZF9ibWFyaworCWJyYW5jaGVzL2dvb2RfYnJhbmNoCisJbmV3X2JtYXJrOm5ldworCWJyYW5jaGVzL25ld19icmFuY2g6bmV3CisJYmFkX2JtYXJrMTpmb3JjZWQtdXBkYXRlCisJYmFkX2JtYXJrMjpmb3JjZWQtdXBkYXRlCisJYnJhbmNoZXMvYmFkX2JyYW5jaDpmb3JjZWQtdXBkYXRlCisJRU9GCisJKSAmJgorCisJY2hlY2tfYnJhbmNoIGhncmVwbyBkZWZhdWx0IHNpeCAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gZ29vZF9icmFuY2ggZWlnaHQgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIGJhZF9icmFuY2ggbmluZSAmJgorCWNoZWNrX2JyYW5jaCBoZ3JlcG8gbmV3X2JyYW5jaCB0ZW4gJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gZ29vZF9ibWFyayB0aHJlZSAmJgorCWNoZWNrX2Jvb2ttYXJrIGhncmVwbyBiYWRfYm1hcmsxIGZvdXIgJiYKKwljaGVja19ib29rbWFyayBoZ3JlcG8gYmFkX2JtYXJrMiBmaXZlICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIG5ld19ibWFyayBzaXgKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAncmVtb3RlIGJpZyBwdXNoIGRyeS1ydW4nICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1yZiBoZ3JlcG8gZ2l0cmVwbyoiICYmCisKKwlzZXR1cF9iaWdfcHVzaAorCisJKAorCWNkIGdpdHJlcG8gJiYKKworCWNoZWNrX3B1c2ggMCAtLWRyeS1ydW4gLS1hbGwgPDwtRU9GCisJbWFzdGVyCisJZ29vZF9ibWFyaworCWJyYW5jaGVzL2dvb2RfYnJhbmNoCisJbmV3X2JtYXJrOm5ldworCWJyYW5jaGVzL25ld19icmFuY2g6bmV3CisJYmFkX2JtYXJrMTpub24tZmFzdC1mb3J3YXJkCisJYmFkX2JtYXJrMjpub24tZmFzdC1mb3J3YXJkCisJYnJhbmNoZXMvYmFkX2JyYW5jaDpub24tZmFzdC1mb3J3YXJkCisJRU9GCisKKwljaGVja19wdXNoIDAgLS1kcnktcnVuIG1hc3RlciBnb29kX2JtYXJrIG5ld19ibWFyayBicmFuY2hlcy9nb29kX2JyYW5jaCBicmFuY2hlcy9uZXdfYnJhbmNoIDw8LUVPRgorCW1hc3RlcgorCWdvb2RfYm1hcmsKKwlicmFuY2hlcy9nb29kX2JyYW5jaAorCW5ld19ibWFyazpuZXcKKwlicmFuY2hlcy9uZXdfYnJhbmNoOm5ldworCUVPRgorCSkgJiYKKworCWNoZWNrX2JyYW5jaCBoZ3JlcG8gZGVmYXVsdCBvbmUgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIGdvb2RfYnJhbmNoICJnb29kIGJyYW5jaCIgJiYKKwljaGVja19icmFuY2ggaGdyZXBvIGJhZF9icmFuY2ggImJhZCBicmFuY2giICYmCisJY2hlY2tfYnJhbmNoIGhncmVwbyBuZXdfYnJhbmNoICcnICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGdvb2RfYm1hcmsgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGJhZF9ibWFyazEgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIGJhZF9ibWFyazIgb25lICYmCisJY2hlY2tfYm9va21hcmsgaGdyZXBvIG5ld19ibWFyayAnJworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdGUgZG91YmxlIGZhaWxlZCBwdXNoJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgaGdyZXBvIGdpdHJlcG8qIiAmJgorCisJKAorCWhnIGluaXQgaGdyZXBvICYmCisJY2QgaGdyZXBvICYmCisJZWNobyB6ZXJvID4gY29udGVudCAmJgorCWhnIGFkZCBjb250ZW50ICYmCisJaGcgY29tbWl0IC1tIHplcm8gJiYKKwllY2hvIG9uZSA+IGNvbnRlbnQgJiYKKwloZyBjb21taXQgLW0gb25lCisJKSAmJgorCisJKAorCWdpdCBjbG9uZSAiaGc6OmhncmVwbyIgZ2l0cmVwbyAmJgorCWNkIGdpdHJlcG8gJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJZWNobyB0d28gPiBjb250ZW50ICYmCisJZ2l0IGNvbW1pdCAtYSAtbSB0d28gJiYKKwl0ZXN0X2V4cGVjdF9jb2RlIDEgZ2l0IHB1c2ggJiYKKwl0ZXN0X2V4cGVjdF9jb2RlIDEgZ2l0IHB1c2gKKwkpCiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9zdWJ0cmVlL01ha2VmaWxlIGIvY29udHJpYi9zdWJ0cmVlL01ha2VmaWxlCmluZGV4IGI1MDc1MDUuLjQzNWIyZGUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc3VidHJlZS9NYWtlZmlsZQorKysgYi9jb250cmliL3N1YnRyZWUvTWFrZWZpbGUKQEAgLTMwLDYgKzMwLDcgQEAKIGRvYzogJChHSVRfU1VCVFJFRV9ET0MpCiAKIGluc3RhbGw6ICQoR0lUX1NVQlRSRUUpCisJJChJTlNUQUxMKSAtZCAtbSA3NTUgJChERVNURElSKSQobGliZXhlY2RpcikKIAkkKElOU1RBTEwpIC1tIDc1NSAkKEdJVF9TVUJUUkVFKSAkKERFU1RESVIpJChsaWJleGVjZGlyKQogCiBpbnN0YWxsLWRvYzogaW5zdGFsbC1tYW4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS5zaCBiL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS5zaAppbmRleCA4YTIzZjU4Li43ZDdhZjAzIDEwMDc1NQotLS0gYS9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUuc2gKKysrIGIvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnNoCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS50eHQgYi9jb250cmliL3N1YnRyZWUvZ2l0LXN1YnRyZWUudHh0CmluZGV4IDdiYTg1M2UuLmUwOTU3ZWUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc3VidHJlZS9naXQtc3VidHJlZS50eHQKKysrIGIvY29udHJpYi9zdWJ0cmVlL2dpdC1zdWJ0cmVlLnR4dApAQCAtMjcwLDcgKzI3MCw3IEBACiBuYW1lCiAKIFlvdSBjYW4gb21pdCB0aGUgLS1zcXVhc2ggZmxhZywgYnV0IGRvaW5nIHNvIHdpbGwgaW5jcmVhc2UgdGhlIG51bWJlcgotb2YgY29tbWl0cyB0aGF0IGFyZSBpbmNsZHVlZCBpbiB5b3VyIGxvY2FsIHJlcG9zaXRvcnkuCitvZiBjb21taXRzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHlvdXIgbG9jYWwgcmVwb3NpdG9yeS4KIAogV2Ugbm93IGhhdmUgYSB+L2dpdC1leHRlbnNpb25zL2dpdC1zdWJ0cmVlIGRpcmVjdG9yeSBjb250YWluaW5nIGNvZGUKIGZyb20gdGhlIG1hc3RlciBicmFuY2ggb2YgZ2l0Oi8vZ2l0aHViLmNvbS9hcGVud2Fyci9naXQtc3VidHJlZS5naXQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvc3VidHJlZS90L3Q3OTAwLXN1YnRyZWUuc2ggYi9jb250cmliL3N1YnRyZWUvdC90NzkwMC1zdWJ0cmVlLnNoCmluZGV4IGIwZjg1MzYuLjY2Y2U0YjAgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvc3VidHJlZS90L3Q3OTAwLXN1YnRyZWUuc2gKKysrIGIvY29udHJpYi9zdWJ0cmVlL3QvdDc5MDAtc3VidHJlZS5zaApAQCAtMTgyLDkgKzE4Miw5IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdDaGVjayB0aGF0IHByZWZpeCBhcmd1bWVudCBpcyByZXF1aXJlZCBmb3Igc3BsaXQnICcKICAgICAgICAgZWNobyAiWW91IG11c3QgcHJvdmlkZSB0aGUgLS1wcmVmaXggb3B0aW9uLiIgPiBleHBlY3RlZCAmJgogICAgICAgICB0ZXN0X211c3RfZmFpbCBnaXQgc3VidHJlZSBzcGxpdCA+IGFjdHVhbCAyPiYxICYmCi0gICAgICAgIHRlc3RfZGVidWcgImVjaG8gLW4gZXhwZWN0ZWQ6ICIgJiYKKwl0ZXN0X2RlYnVnICJwcmludGYgJyInIidleHBlY3RlZDogJyInIiciICYmCiAgICAgICAgIHRlc3RfZGVidWcgImNhdCBleHBlY3RlZCIgJiYKLSAgICAgICAgdGVzdF9kZWJ1ZyAiZWNobyAtbiBhY3R1YWw6ICIgJiYKKwl0ZXN0X2RlYnVnICJwcmludGYgJyInIidhY3R1YWw6ICciJyInIiAmJgogICAgICAgICB0ZXN0X2RlYnVnICJjYXQgYWN0dWFsIiAmJgogICAgICAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwgJiYKICAgICAgICAgcm0gLWYgZXhwZWN0ZWQgYWN0dWFsCkBAIC0xOTMsOSArMTkzLDkgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0NoZWNrIHRoYXQgdGhlIDxwcmVmaXg+IGV4aXN0cyBmb3IgYSBzcGxpdCcgJwogICAgICAgICBlY2hvICInIiciJ25vbi1leGlzdGVudC1kaXJlY3RvcnknIiciJyIgZG9lcyBub3QgZXhpc3RcOyB1c2UgIiciJyInZ2l0IHN1YnRyZWUgYWRkJyInIiciID4gZXhwZWN0ZWQgJiYKICAgICAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHN1YnRyZWUgc3BsaXQgLS1wcmVmaXg9bm9uLWV4aXN0ZW50LWRpcmVjdG9yeSA+IGFjdHVhbCAyPiYxICYmCi0gICAgICAgIHRlc3RfZGVidWcgImVjaG8gLW4gZXhwZWN0ZWQ6ICIgJiYKKwl0ZXN0X2RlYnVnICJwcmludGYgJyInIidleHBlY3RlZDogJyInIiciICYmCiAgICAgICAgIHRlc3RfZGVidWcgImNhdCBleHBlY3RlZCIgJiYKLSAgICAgICAgdGVzdF9kZWJ1ZyAiZWNobyAtbiBhY3R1YWw6ICIgJiYKKwl0ZXN0X2RlYnVnICJwcmludGYgJyInIidhY3R1YWw6ICciJyInIiAmJgogICAgICAgICB0ZXN0X2RlYnVnICJjYXQgYWN0dWFsIiAmJgogICAgICAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICMgICAgICAgIHJtIC1mIGV4cGVjdGVkIGFjdHVhbApkaWZmIC0tZ2l0IGEvY29udmVydC5jIGIvY29udmVydC5jCmluZGV4IDJhMmU0NmMuLjExYTk1ZmMgMTAwNjQ0Ci0tLSBhL2NvbnZlcnQuYworKysgYi9jb252ZXJ0LmMKQEAgLTgzNSw3ICs4MzUsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBTdHJlYW1pbmcgY29udmVyaXNvbiBzdXBwb3J0CisgKiBTdHJlYW1pbmcgY29udmVyc2lvbiBzdXBwb3J0CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9jb252ZXJ0LmggYi9jb252ZXJ0LmgKaW5kZXggZWM1ZmQ2OS4uMGMyMTQzYyAxMDA2NDQKLS0tIGEvY29udmVydC5oCisrKyBiL2NvbnZlcnQuaApAQCAtNDgsNyArNDgsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBTdHJlYW1pbmcgY29udmVyaXNvbiBzdXBwb3J0CisgKiBTdHJlYW1pbmcgY29udmVyc2lvbiBzdXBwb3J0CiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCmRpZmYgLS1naXQgYS9jcmVkZW50aWFsLXN0b3JlLmMgYi9jcmVkZW50aWFsLXN0b3JlLmMKaW5kZXggMjZmNzU4OS4uZjkxNDZlNSAxMDA2NDQKLS0tIGEvY3JlZGVudGlhbC1zdG9yZS5jCisrKyBiL2NyZWRlbnRpYWwtc3RvcmUuYwpAQCAtMTE0LDcgKzExNCw3IEBACiAJcmV0dXJuIGMtPnVzZXJuYW1lICYmIGMtPnBhc3N3b3JkOwogfQogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqIGNvbnN0IHVzYWdlW10gPSB7CiAJCSJnaXQgY3JlZGVudGlhbC1zdG9yZSBbb3B0aW9uc10gPGFjdGlvbj4iLApAQCAtMTMxLDcgKzEzMSw3IEBACiAKIAl1bWFzaygwNzcpOwogCi0JYXJnYyA9IHBhcnNlX29wdGlvbnMoYXJnYywgYXJndiwgTlVMTCwgb3B0aW9ucywgdXNhZ2UsIDApOworCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIChjb25zdCBjaGFyICoqKWFyZ3YsIE5VTEwsIG9wdGlvbnMsIHVzYWdlLCAwKTsKIAlpZiAoYXJnYyAhPSAxKQogCQl1c2FnZV93aXRoX29wdGlvbnModXNhZ2UsIG9wdGlvbnMpOwogCW9wID0gYXJndlswXTsKZGlmZiAtLWdpdCBhL2RhZW1vbi5jIGIvZGFlbW9uLmMKaW5kZXggNmFlZGRjYi4uMzQ5MTZjNSAxMDA2NDQKLS0tIGEvZGFlbW9uLmMKKysrIGIvZGFlbW9uLmMKQEAgLTc2MCw3ICs3NjAsNyBAQAogCQlzbnByaW50Zihwb3J0YnVmLCBzaXplb2YocG9ydGJ1ZiksICJSRU1PVEVfUE9SVD0lZCIsCiAJCSAgICBudG9ocyhzaW5fYWRkci0+c2luX3BvcnQpKTsKICNpZm5kZWYgTk9fSVBWNgotCX0gZWxzZSBpZiAoYWRkciAmJiBhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKKwl9IGVsc2UgaWYgKGFkZHItPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgewogCQlzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW42X2FkZHIgPSAodm9pZCAqKSBhZGRyOwogCiAJCWNoYXIgKmJ1ZiA9IGFkZHJidWYgKyAxMjsKQEAgLTEwNDcsMTggKzEwNDcsNiBAQAogCX0KIH0KIAotLyogaWYgYW55IHN0YW5kYXJkIGZpbGUgZGVzY3JpcHRvciBpcyBtaXNzaW5nIG9wZW4gaXQgdG8gL2Rldi9udWxsICovCi1zdGF0aWMgdm9pZCBzYW5pdGl6ZV9zdGRmZHModm9pZCkKLXsKLQlpbnQgZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IsIDApOwotCXdoaWxlIChmZCAhPSAtMSAmJiBmZCA8IDIpCi0JCWZkID0gZHVwKGZkKTsKLQlpZiAoZmQgPT0gLTEpCi0JCWRpZV9lcnJubygib3BlbiAvZGV2L251bGwgb3IgZHVwIGZhaWxlZCIpOwotCWlmIChmZCA+IDIpCi0JCWNsb3NlKGZkKTsKLX0KLQogI2lmZGVmIE5PX1BPU0lYX0dPT0RJRVMKIAogc3RydWN0IGNyZWRlbnRpYWxzOwpkaWZmIC0tZ2l0IGEvZGF0ZS5jIGIvZGF0ZS5jCmluZGV4IGRmMjBkMGIuLjI5ZjE1NDAgMTAwNjQ0Ci0tLSBhL2RhdGUuYworKysgYi9kYXRlLmMKQEAgLTcxMSw2ICs3MTEsMjggQEAKIAlyZXR1cm4gMDsgLyogc3VjY2VzcyAqLwogfQogCitpbnQgcGFyc2VfZXhwaXJ5X2RhdGUoY29uc3QgY2hhciAqZGF0ZSwgdW5zaWduZWQgbG9uZyAqdGltZXN0YW1wKQoreworCWludCBlcnJvcnMgPSAwOworCisJaWYgKCFzdHJjbXAoZGF0ZSwgIm5ldmVyIikgfHwgIXN0cmNtcChkYXRlLCAiZmFsc2UiKSkKKwkJKnRpbWVzdGFtcCA9IDA7CisJZWxzZSBpZiAoIXN0cmNtcChkYXRlLCAiYWxsIikgfHwgIXN0cmNtcChkYXRlLCAibm93IikpCisJCS8qCisJCSAqIFdlIHRha2Ugb3ZlciAibm93IiBoZXJlLCB3aGljaCB1c3VhbGx5IHRyYW5zbGF0ZXMKKwkJICogdG8gdGhlIGN1cnJlbnQgdGltZXN0YW1wLiAgVGhpcyBpcyBiZWNhdXNlIHRoZSB1c2VyCisJCSAqIHJlYWxseSBtZWFucyB0byBleHBpcmUgZXZlcnl0aGluZyBzaGUgaGFzIGRvbmUgaW4KKwkJICogdGhlIHBhc3QsIGFuZCBieSBkZWZpbml0aW9uIHJlZmxvZ3MgYXJlIHRoZSByZWNvcmQKKwkJICogb2YgdGhlIHBhc3QsIGFuZCB0aGVyZSBpcyBub3RoaW5nIGZyb20gdGhlIGZ1dHVyZQorCQkgKiB0byBiZSBrZXB0LgorCQkgKi8KKwkJKnRpbWVzdGFtcCA9IFVMT05HX01BWDsKKwllbHNlCisJCSp0aW1lc3RhbXAgPSBhcHByb3hpZGF0ZV9jYXJlZnVsKGRhdGUsICZlcnJvcnMpOworCisJcmV0dXJuIGVycm9yczsKK30KKwogaW50IHBhcnNlX2RhdGUoY29uc3QgY2hhciAqZGF0ZSwgY2hhciAqcmVzdWx0LCBpbnQgbWF4bGVuKQogewogCXVuc2lnbmVkIGxvbmcgdGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvZGVjb3JhdGUuYyBiL2RlY29yYXRlLmMKaW5kZXggMmY4YTYzZS4uN2NiNWQyOSAxMDA2NDQKLS0tIGEvZGVjb3JhdGUuYworKysgYi9kZWNvcmF0ZS5jCkBAIC00OSw3ICs0OSw3IEBACiAJCWNvbnN0IHN0cnVjdCBvYmplY3QgKmJhc2UgPSBvbGRfaGFzaFtpXS5iYXNlOwogCQl2b2lkICpkZWNvcmF0aW9uID0gb2xkX2hhc2hbaV0uZGVjb3JhdGlvbjsKIAotCQlpZiAoIWJhc2UpCisJCWlmICghZGVjb3JhdGlvbikKIAkJCWNvbnRpbnVlOwogCQlpbnNlcnRfZGVjb3JhdGlvbihuLCBiYXNlLCBkZWNvcmF0aW9uKTsKIAl9CmRpZmYgLS1naXQgYS9kaWZmLWxpYi5jIGIvZGlmZi1saWIuYwppbmRleCBmMzVkZTBmLi5iNmY0YjIxIDEwMDY0NAotLS0gYS9kaWZmLWxpYi5jCisrKyBiL2RpZmYtbGliLmMKQEAgLTY0LDggKzY0LDkgQEAKICAqIGNvbW1pdHMsIHVudHJhY2tlZCBjb250ZW50IGFuZC9vciBtb2RpZmllZCBjb250ZW50KS4KICAqLwogc3RhdGljIGludCBtYXRjaF9zdGF0X3dpdGhfc3VibW9kdWxlKHN0cnVjdCBkaWZmX29wdGlvbnMgKmRpZmZvcHQsCi0JCQkJICAgICAgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LAotCQkJCSAgICAgIHVuc2lnbmVkIGNlX29wdGlvbiwgdW5zaWduZWQgKmRpcnR5X3N1Ym1vZHVsZSkKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJICAgICBzdHJ1Y3Qgc3RhdCAqc3QsIHVuc2lnbmVkIGNlX29wdGlvbiwKKwkJCQkgICAgIHVuc2lnbmVkICpkaXJ0eV9zdWJtb2R1bGUpCiB7CiAJaW50IGNoYW5nZWQgPSBjZV9tYXRjaF9zdGF0KGNlLCBzdCwgY2Vfb3B0aW9uKTsKIAlpZiAoU19JU0dJVExJTksoY2UtPmNlX21vZGUpKSB7CkBAIC0yMzcsNyArMjM4LDcgQEAKIC8qIEEgZmlsZSBlbnRyeSB3ZW50IGF3YXkgb3IgYXBwZWFyZWQgKi8KIHN0YXRpYyB2b2lkIGRpZmZfaW5kZXhfc2hvd19maWxlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKIAkJCQkgY29uc3QgY2hhciAqcHJlZml4LAotCQkJCSBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJCSBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgc2hhMV92YWxpZCwKIAkJCQkgdW5zaWduZWQgaW50IG1vZGUsCiAJCQkJIHVuc2lnbmVkIGRpcnR5X3N1Ym1vZHVsZSkKQEAgLTI0Niw3ICsyNDcsNyBAQAogCQkgICAgICAgc2hhMSwgc2hhMV92YWxpZCwgY2UtPm5hbWUsIGRpcnR5X3N1Ym1vZHVsZSk7CiB9CiAKLXN0YXRpYyBpbnQgZ2V0X3N0YXRfZGF0YShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorc3RhdGljIGludCBnZXRfc3RhdF9kYXRhKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgY29uc3QgdW5zaWduZWQgY2hhciAqKnNoYTFwLAogCQkJIHVuc2lnbmVkIGludCAqbW9kZXAsCiAJCQkgaW50IGNhY2hlZCwgaW50IG1hdGNoX21pc3NpbmcsCkBAIC0yODMsNyArMjg0LDcgQEAKIH0KIAogc3RhdGljIHZvaWQgc2hvd19uZXdfZmlsZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCi0JCQkgIHN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3LAorCQkJICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm5ldywKIAkJCSAgaW50IGNhY2hlZCwgaW50IG1hdGNoX21pc3NpbmcpCiB7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMTsKQEAgLTMwMiw4ICszMDMsOCBAQAogfQogCiBzdGF0aWMgaW50IHNob3dfbW9kaWZpZWQoc3RydWN0IHJldl9pbmZvICpyZXZzLAotCQkJIHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLAotCQkJIHN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3LAorCQkJIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLAorCQkJIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3LAogCQkJIGludCByZXBvcnRfbWlzc2luZywKIAkJCSBpbnQgY2FjaGVkLCBpbnQgbWF0Y2hfbWlzc2luZykKIHsKQEAgLTM2Miw4ICszNjMsOCBAQAogICogZ2l2ZSB5b3UgdGhlIHBvc2l0aW9uIGFuZCBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgaW5kZXgpLgogICovCiBzdGF0aWMgdm9pZCBkb19vbmV3YXlfZGlmZihzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8sCi0Jc3RydWN0IGNhY2hlX2VudHJ5ICppZHgsCi0Jc3RydWN0IGNhY2hlX2VudHJ5ICp0cmVlKQorCQkJICAgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICppZHgsCisJCQkgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKnRyZWUpCiB7CiAJc3RydWN0IHJldl9pbmZvICpyZXZzID0gby0+dW5wYWNrX2RhdGE7CiAJaW50IG1hdGNoX21pc3NpbmcsIGNhY2hlZDsKQEAgLTQyMywxMCArNDI0LDExIEBACiAgKiB0aGUgZmFpcmx5IGNvbXBsZXggdW5wYWNrX3RyZWVzKCkgc2VtYW50aWMgcmVxdWlyZW1lbnRzLCBpbmNsdWRpbmcKICAqIHRoZSBza2lwcGluZywgdGhlIHBhdGggbWF0Y2hpbmcsIHRoZSB0eXBlIGNvbmZsaWN0IGNhc2VzIGV0Yy4KICAqLwotc3RhdGljIGludCBvbmV3YXlfZGlmZihzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbnQgb25ld2F5X2RpZmYoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJICAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmlkeCA9IHNyY1swXTsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKnRyZWUgPSBzcmNbMV07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICppZHggPSBzcmNbMF07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICp0cmVlID0gc3JjWzFdOwogCXN0cnVjdCByZXZfaW5mbyAqcmV2cyA9IG8tPnVucGFja19kYXRhOwogCiAJLyoKZGlmZiAtLWdpdCBhL2RpZmYtbm8taW5kZXguYyBiL2RpZmYtbm8taW5kZXguYwppbmRleCA3NGRhNjU5Li5lNjZmZGYzIDEwMDY0NAotLS0gYS9kaWZmLW5vLWluZGV4LmMKKysrIGIvZGlmZi1uby1pbmRleC5jCkBAIC00NSw3ICs0NSw3IEBACiAKIAlpZiAoIXBhdGggfHwgIXN0cmNtcChwYXRoLCAiL2Rldi9udWxsIikpCiAJCSptb2RlID0gMDsKLSNpZmRlZiBfV0lOMzIKKyNpZmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAllbHNlIGlmICghc3RyY2FzZWNtcChwYXRoLCAibnVsIikpCiAJCSptb2RlID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZGlmZi5jIGIvZGlmZi5jCmluZGV4IGYwYjNlN2MuLjI2NjExMmMgMTAwNjQ0Ci0tLSBhL2RpZmYuYworKysgYi9kaWZmLmMKQEAgLTE2ODMsOSArMTY4Myw3IEBACiAJCWRlbCA9IGRlbGV0ZWQ7CiAKIAkJaWYgKGdyYXBoX3dpZHRoIDw9IG1heF9jaGFuZ2UpIHsKLQkJCWludCB0b3RhbCA9IGFkZCArIGRlbDsKLQotCQkJdG90YWwgPSBzY2FsZV9saW5lYXIoYWRkICsgZGVsLCBncmFwaF93aWR0aCwgbWF4X2NoYW5nZSk7CisJCQlpbnQgdG90YWwgPSBzY2FsZV9saW5lYXIoYWRkICsgZGVsLCBncmFwaF93aWR0aCwgbWF4X2NoYW5nZSk7CiAJCQlpZiAodG90YWwgPCAyICYmIGFkZCAmJiBkZWwpCiAJCQkJLyogd2lkdGggPj0gMiBkdWUgdG8gdGhlIHNhbml0eSBjaGVjayAqLwogCQkJCXRvdGFsID0gMjsKQEAgLTI1ODYsNyArMjU4NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgcmV1c2Vfd29ya3RyZWVfZmlsZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgd2FudF9maWxlKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKIAlzdHJ1Y3Qgc3RhdCBzdDsKIAlpbnQgcG9zLCBsZW47CiAKQEAgLTI2NzcsNiArMjY3NSwxNCBAQAogaW50IGRpZmZfcG9wdWxhdGVfZmlsZXNwZWMoc3RydWN0IGRpZmZfZmlsZXNwZWMgKnMsIGludCBzaXplX29ubHkpCiB7CiAJaW50IGVyciA9IDA7CisJLyoKKwkgKiBkZW1vdGUgRkFJTCB0byBXQVJOIHRvIGFsbG93IGluc3BlY3RpbmcgdGhlIHNpdHVhdGlvbgorCSAqIGluc3RlYWQgb2YgcmVmdXNpbmcuCisJICovCisJZW51bSBzYWZlX2NybGYgY3JsZl93YXJuID0gKHNhZmVfY3JsZiA9PSBTQUZFX0NSTEZfRkFJTAorCQkJCSAgICA/IFNBRkVfQ1JMRl9XQVJOCisJCQkJICAgIDogc2FmZV9jcmxmKTsKKwogCWlmICghRElGRl9GSUxFX1ZBTElEKHMpKQogCQlkaWUoImludGVybmFsIGVycm9yOiBhc2tpbmcgdG8gcG9wdWxhdGUgaW52YWxpZCBmaWxlLiIpOwogCWlmIChTX0lTRElSKHMtPm1vZGUpKQpAQCAtMjczMiw3ICsyNzM4LDcgQEAKIAkJLyoKIAkJICogQ29udmVydCBmcm9tIHdvcmtpbmcgdHJlZSBmb3JtYXQgdG8gY2Fub25pY2FsIGdpdCBmb3JtYXQKIAkJICovCi0JCWlmIChjb252ZXJ0X3RvX2dpdChzLT5wYXRoLCBzLT5kYXRhLCBzLT5zaXplLCAmYnVmLCBzYWZlX2NybGYpKSB7CisJCWlmIChjb252ZXJ0X3RvX2dpdChzLT5wYXRoLCBzLT5kYXRhLCBzLT5zaXplLCAmYnVmLCBjcmxmX3dhcm4pKSB7CiAJCQlzaXplX3Qgc2l6ZSA9IDA7CiAJCQltdW5tYXAocy0+ZGF0YSwgcy0+c2l6ZSk7CiAJCQlzLT5zaG91bGRfbXVubWFwID0gMDsKQEAgLTM0OTcsNiArMzUwMywxMSBAQAogCXJldHVybiAxOwogfQogCitzdGF0aWMgdm9pZCBlbmFibGVfcGF0Y2hfb3V0cHV0KGludCAqZm10KSB7CisJKmZtdCAmPSB+RElGRl9GT1JNQVRfTk9fT1VUUFVUOworCSpmbXQgfD0gRElGRl9GT1JNQVRfUEFUQ0g7Cit9CisKIGludCBkaWZmX29wdF9wYXJzZShzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHRpb25zLCBjb25zdCBjaGFyICoqYXYsIGludCBhYykKIHsKIAljb25zdCBjaGFyICphcmcgPSBhdlswXTsKQEAgLTM1MDQsMTUgKzM1MTUsMTUgQEAKIAlpbnQgYXJnY291bnQ7CiAKIAkvKiBPdXRwdXQgZm9ybWF0IG9wdGlvbnMgKi8KLQlpZiAoIXN0cmNtcChhcmcsICItcCIpIHx8ICFzdHJjbXAoYXJnLCAiLXUiKSB8fCAhc3RyY21wKGFyZywgIi0tcGF0Y2giKSkKLQkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9QQVRDSDsKLQllbHNlIGlmIChvcHRfYXJnKGFyZywgJ1UnLCAidW5pZmllZCIsICZvcHRpb25zLT5jb250ZXh0KSkKLQkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9QQVRDSDsKKwlpZiAoIXN0cmNtcChhcmcsICItcCIpIHx8ICFzdHJjbXAoYXJnLCAiLXUiKSB8fCAhc3RyY21wKGFyZywgIi0tcGF0Y2giKQorCSAgICB8fCBvcHRfYXJnKGFyZywgJ1UnLCAidW5pZmllZCIsICZvcHRpb25zLT5jb250ZXh0KSkKKwkJZW5hYmxlX3BhdGNoX291dHB1dCgmb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCk7CiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXJhdyIpKQogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1JBVzsKLQllbHNlIGlmICghc3RyY21wKGFyZywgIi0tcGF0Y2gtd2l0aC1yYXciKSkKLQkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9QQVRDSCB8IERJRkZfRk9STUFUX1JBVzsKLQllbHNlIGlmICghc3RyY21wKGFyZywgIi0tbnVtc3RhdCIpKQorCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1wYXRjaC13aXRoLXJhdyIpKSB7CisJCWVuYWJsZV9wYXRjaF9vdXRwdXQoJm9wdGlvbnMtPm91dHB1dF9mb3JtYXQpOworCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1JBVzsKKwl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1udW1zdGF0IikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfTlVNU1RBVDsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tc2hvcnRzdGF0IikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfU0hPUlRTVEFUOwpAQCAtMzUzNCwxMyArMzU0NSwxNCBAQAogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX0NIRUNLRElGRjsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tc3VtbWFyeSIpKQogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1NVTU1BUlk7Ci0JZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXBhdGNoLXdpdGgtc3RhdCIpKQotCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX1BBVENIIHwgRElGRl9GT1JNQVRfRElGRlNUQVQ7Ci0JZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5hbWUtb25seSIpKQorCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1wYXRjaC13aXRoLXN0YXQiKSkgeworCQllbmFibGVfcGF0Y2hfb3V0cHV0KCZvcHRpb25zLT5vdXRwdXRfZm9ybWF0KTsKKwkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9ESUZGU1RBVDsKKwl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1uYW1lLW9ubHkiKSkKIAkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9OQU1FOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1uYW1lLXN0YXR1cyIpKQogCQlvcHRpb25zLT5vdXRwdXRfZm9ybWF0IHw9IERJRkZfRk9STUFUX05BTUVfU1RBVFVTOwotCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLXMiKSkKKwllbHNlIGlmICghc3RyY21wKGFyZywgIi1zIikgfHwgIXN0cmNtcChhcmcsICItLW5vLXBhdGNoIikpCiAJCW9wdGlvbnMtPm91dHB1dF9mb3JtYXQgfD0gRElGRl9GT1JNQVRfTk9fT1VUUFVUOwogCWVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1zdGF0IikpCiAJCS8qIC0tc3RhdCwgLS1zdGF0LXdpZHRoLCAtLXN0YXQtbmFtZS13aWR0aCwgb3IgLS1zdGF0LWNvdW50ICovCkBAIC0zNTkzLDYgKzM2MDUsOCBAQAogCQlESUZGX1hETF9TRVQob3B0aW9ucywgSUdOT1JFX1dISVRFU1BBQ0VfQ0hBTkdFKTsKIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0taWdub3JlLXNwYWNlLWF0LWVvbCIpKQogCQlESUZGX1hETF9TRVQob3B0aW9ucywgSUdOT1JFX1dISVRFU1BBQ0VfQVRfRU9MKTsKKwllbHNlIGlmICghc3RyY21wKGFyZywgIi0taWdub3JlLWJsYW5rLWxpbmVzIikpCisJCURJRkZfWERMX1NFVChvcHRpb25zLCBJR05PUkVfQkxBTktfTElORVMpOwogCWVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1wYXRpZW5jZSIpKQogCQlvcHRpb25zLT54ZGxfb3B0cyA9IERJRkZfV0lUSF9BTEcob3B0aW9ucywgUEFUSUVOQ0VfRElGRik7CiAJZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLWhpc3RvZ3JhbSIpKQpAQCAtMzYxMSw3ICszNjI1LDcgQEAKIAogCS8qIGZsYWdzIG9wdGlvbnMgKi8KIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tYmluYXJ5IikpIHsKLQkJb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCB8PSBESUZGX0ZPUk1BVF9QQVRDSDsKKwkJZW5hYmxlX3BhdGNoX291dHB1dCgmb3B0aW9ucy0+b3V0cHV0X2Zvcm1hdCk7CiAJCURJRkZfT1BUX1NFVChvcHRpb25zLCBCSU5BUlkpOwogCX0KIAllbHNlIGlmICghc3RyY21wKGFyZywgIi0tZnVsbC1pbmRleCIpKQpAQCAtNDQ1MCw3ICs0NDY0LDcgQEAKIAkgICAgRElGRl9PUFRfVFNUKG9wdGlvbnMsIERJRkZfRlJPTV9DT05URU5UUykpIHsKIAkJLyoKIAkJICogcnVuIGRpZmZfZmx1c2hfcGF0Y2ggZm9yIHRoZSBleGl0IHN0YXR1cy4gc2V0dGluZwotCQkgKiBvcHRpb25zLT5maWxlIHRvIC9kZXYvbnVsbCBzaG91bGQgYmUgc2FmZSwgYmVjYXVlIHdlCisJCSAqIG9wdGlvbnMtPmZpbGUgdG8gL2Rldi9udWxsIHNob3VsZCBiZSBzYWZlLCBiZWNhdXNlIHdlCiAJCSAqIGFyZW4ndCBzdXBwb3NlZCB0byBwcm9kdWNlIGFueSBvdXRwdXQgYW55d2F5LgogCQkgKi8KIAkJaWYgKG9wdGlvbnMtPmNsb3NlX2ZpbGUpCmRpZmYgLS1naXQgYS9kaWZmY29yZS1waWNrYXhlLmMgYi9kaWZmY29yZS1waWNrYXhlLmMKaW5kZXggNjM3MjJmOC4uNDAxZWI3MiAxMDA2NDQKLS0tIGEvZGlmZmNvcmUtcGlja2F4ZS5jCisrKyBiL2RpZmZjb3JlLXBpY2theGUuYwpAQCAtMTIyLDcgKzEyMiw3IEBACiAJCWNoYXIgZXJyYnVmWzEwMjRdOwogCQlyZWdlcnJvcihlcnIsICZyZWdleCwgZXJyYnVmLCAxMDI0KTsKIAkJcmVnZnJlZSgmcmVnZXgpOwotCQlkaWUoImludmFsaWQgbG9nLWdyZXAgcmVnZXg6ICVzIiwgZXJyYnVmKTsKKwkJZGllKCJpbnZhbGlkIHJlZ2V4OiAlcyIsIGVycmJ1Zik7CiAJfQogCiAJcGlja2F4ZSgmZGlmZl9xdWV1ZWRfZGlmZiwgbywgJnJlZ2V4LCBOVUxMLCBkaWZmX2dyZXApOwpAQCAtMTMxLDggKzEzMSw3IEBACiAJcmV0dXJuOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGNvbnRhaW5zKG1tZmlsZV90ICptZiwgc3RydWN0IGRpZmZfb3B0aW9ucyAqbywKLQkJCSAgICAgcmVnZXhfdCAqcmVnZXhwLCBrd3NldF90IGt3cykKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY29udGFpbnMobW1maWxlX3QgKm1mLCByZWdleF90ICpyZWdleHAsIGt3c2V0X3Qga3dzKQogewogCXVuc2lnbmVkIGludCBjbnQ7CiAJdW5zaWduZWQgbG9uZyBzejsKQEAgLTE3NiwxMSArMTc1LDkgQEAKIAkJICAgICAgIHN0cnVjdCBkaWZmX29wdGlvbnMgKm8sCiAJCSAgICAgICByZWdleF90ICpyZWdleHAsIGt3c2V0X3Qga3dzKQogewotCWlmICghb25lKQotCQlyZXR1cm4gY29udGFpbnModHdvLCBvLCByZWdleHAsIGt3cykgIT0gMDsKLQlpZiAoIXR3bykKLQkJcmV0dXJuIGNvbnRhaW5zKG9uZSwgbywgcmVnZXhwLCBrd3MpICE9IDA7Ci0JcmV0dXJuIGNvbnRhaW5zKG9uZSwgbywgcmVnZXhwLCBrd3MpICE9IGNvbnRhaW5zKHR3bywgbywgcmVnZXhwLCBrd3MpOworCXVuc2lnbmVkIGludCBvbmVfY29udGFpbnMgPSBvbmUgPyBjb250YWlucyhvbmUsIHJlZ2V4cCwga3dzKSA6IDA7CisJdW5zaWduZWQgaW50IHR3b19jb250YWlucyA9IHR3byA/IGNvbnRhaW5zKHR3bywgcmVnZXhwLCBrd3MpIDogMDsKKwlyZXR1cm4gb25lX2NvbnRhaW5zICE9IHR3b19jb250YWluczsKIH0KIAogc3RhdGljIGludCBwaWNrYXhlX21hdGNoKHN0cnVjdCBkaWZmX2ZpbGVwYWlyICpwLCBzdHJ1Y3QgZGlmZl9vcHRpb25zICpvLApAQCAtMjQ2LDcgKzI0Myw3IEBACiAJCQljaGFyIGVycmJ1ZlsxMDI0XTsKIAkJCXJlZ2Vycm9yKGVyciwgJnJlZ2V4LCBlcnJidWYsIDEwMjQpOwogCQkJcmVnZnJlZSgmcmVnZXgpOwotCQkJZGllKCJpbnZhbGlkIHBpY2theGUgcmVnZXg6ICVzIiwgZXJyYnVmKTsKKwkJCWRpZSgiaW52YWxpZCByZWdleDogJXMiLCBlcnJidWYpOwogCQl9CiAJCXJlZ2V4cCA9ICZyZWdleDsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZGlyLmMgYi9kaXIuYwppbmRleCBhNTkyNmZiLi45MTBiZmNkIDEwMDY0NAotLS0gYS9kaXIuYworKysgYi9kaXIuYwpAQCAtODIxLDYgKzgyMSw5IEBACiAJCQkJZGlyLT5iYXNlYnVmLCBzdGstPmJhc2VsZW4gLSAxLAogCQkJCWRpci0+YmFzZWJ1ZiArIGN1cnJlbnQsICZkdCk7CiAJCQlkaXItPmJhc2VidWZbc3RrLT5iYXNlbGVuIC0gMV0gPSAnLyc7CisJCQlpZiAoZGlyLT5leGNsdWRlICYmCisJCQkgICAgZGlyLT5leGNsdWRlLT5mbGFncyAmIEVYQ19GTEFHX05FR0FUSVZFKQorCQkJCWRpci0+ZXhjbHVkZSA9IE5VTEw7CiAJCQlpZiAoZGlyLT5leGNsdWRlKSB7CiAJCQkJZGlyLT5iYXNlYnVmW3N0ay0+YmFzZWxlbl0gPSAwOwogCQkJCWRpci0+ZXhjbHVkZV9zdGFjayA9IHN0azsKQEAgLTkzMCw3ICs5MzMsNyBAQAogICovCiBzdGF0aWMgZW51bSBleGlzdF9zdGF0dXMgZGlyZWN0b3J5X2V4aXN0c19pbl9pbmRleF9pY2FzZShjb25zdCBjaGFyICpkaXJuYW1lLCBpbnQgbGVuKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpbmRleF9uYW1lX2V4aXN0cygmdGhlX2luZGV4LCBkaXJuYW1lLCBsZW4gKyAxLCBpZ25vcmVfY2FzZSk7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4X25hbWVfZXhpc3RzKCZ0aGVfaW5kZXgsIGRpcm5hbWUsIGxlbiArIDEsIGlnbm9yZV9jYXNlKTsKIAl1bnNpZ25lZCBjaGFyIGVuZGNoYXI7CiAKIAlpZiAoIWNlKQpAQCAtOTc0LDcgKzk3Nyw3IEBACiAJaWYgKHBvcyA8IDApCiAJCXBvcyA9IC1wb3MtMTsKIAl3aGlsZSAocG9zIDwgYWN0aXZlX25yKSB7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbcG9zKytdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW3BvcysrXTsKIAkJdW5zaWduZWQgY2hhciBlbmRjaGFyOwogCiAJCWlmIChzdHJuY21wKGNlLT5uYW1lLCBkaXJuYW1lLCBsZW4pKQpAQCAtMTAzMyw5ICsxMDM2LDcgQEAKIAkJcmV0dXJuIHBhdGhfcmVjdXJzZTsKIAogCWNhc2UgaW5kZXhfZ2l0ZGlyOgotCQlpZiAoZGlyLT5mbGFncyAmIERJUl9TSE9XX09USEVSX0RJUkVDVE9SSUVTKQotCQkJcmV0dXJuIHBhdGhfbm9uZTsKLQkJcmV0dXJuIHBhdGhfdW50cmFja2VkOworCQlyZXR1cm4gcGF0aF9ub25lOwogCiAJY2FzZSBpbmRleF9ub25leGlzdGVudDoKIAkJaWYgKGRpci0+ZmxhZ3MgJiBESVJfU0hPV19PVEhFUl9ESVJFQ1RPUklFUykKQEAgLTExMTIsNyArMTExMyw3IEBACiBzdGF0aWMgaW50IGdldF9pbmRleF9kdHlwZShjb25zdCBjaGFyICpwYXRoLCBpbnQgbGVuKQogewogCWludCBwb3M7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCiAJY2UgPSBjYWNoZV9uYW1lX2V4aXN0cyhwYXRoLCBsZW4sIDApOwogCWlmIChjZSkgewpAQCAtMTU0Miw5ICsxNTQzLDkgQEAKIAkJaG9tZV9jb25maWdfcGF0aHMoTlVMTCwgJnhkZ19wYXRoLCAiaWdub3JlIik7CiAJCWV4Y2x1ZGVzX2ZpbGUgPSB4ZGdfcGF0aDsKIAl9Ci0JaWYgKCFhY2Nlc3Nfb3Jfd2FybihwYXRoLCBSX09LKSkKKwlpZiAoIWFjY2Vzc19vcl93YXJuKHBhdGgsIFJfT0ssIDApKQogCQlhZGRfZXhjbHVkZXNfZnJvbV9maWxlKGRpciwgcGF0aCk7Ci0JaWYgKGV4Y2x1ZGVzX2ZpbGUgJiYgIWFjY2Vzc19vcl93YXJuKGV4Y2x1ZGVzX2ZpbGUsIFJfT0spKQorCWlmIChleGNsdWRlc19maWxlICYmICFhY2Nlc3Nfb3Jfd2FybihleGNsdWRlc19maWxlLCBSX09LLCAwKSkKIAkJYWRkX2V4Y2x1ZGVzX2Zyb21fZmlsZShkaXIsIGV4Y2x1ZGVzX2ZpbGUpOwogfQogCmRpZmYgLS1naXQgYS9lbnRyeS5jIGIvZW50cnkuYwppbmRleCBkN2MxMzFkLi5hY2M4OTJmIDEwMDY0NAotLS0gYS9lbnRyeS5jCisrKyBiL2VudHJ5LmMKQEAgLTc5LDcgKzc5LDcgQEAKIAlyZXR1cm4gb3BlbihwYXRoLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX0VYQ0wsIG1vZGUpOwogfQogCi1zdGF0aWMgdm9pZCAqcmVhZF9ibG9iX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHVuc2lnbmVkIGxvbmcgKnNpemUpCitzdGF0aWMgdm9pZCAqcmVhZF9ibG9iX2VudHJ5KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHVuc2lnbmVkIGxvbmcgKnNpemUpCiB7CiAJZW51bSBvYmplY3RfdHlwZSB0eXBlOwogCXZvaWQgKm5ldyA9IHJlYWRfc2hhMV9maWxlKGNlLT5zaGExLCAmdHlwZSwgc2l6ZSk7CkBAIC05Miw3ICs5Miw3IEBACiAJcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBpbnQgb3Blbl9vdXRwdXRfZmQoY2hhciAqcGF0aCwgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgaW50IHRvX3RlbXBmaWxlKQorc3RhdGljIGludCBvcGVuX291dHB1dF9mZChjaGFyICpwYXRoLCBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBpbnQgdG9fdGVtcGZpbGUpCiB7CiAJaW50IHN5bWxpbmsgPSAoY2UtPmNlX21vZGUgJiBTX0lGTVQpICE9IFNfSUZSRUc7CiAJaWYgKHRvX3RlbXBmaWxlKSB7CkBAIC0xMTUsNyArMTE1LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBzdHJlYW1pbmdfd3JpdGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgY2hhciAqcGF0aCwKK3N0YXRpYyBpbnQgc3RyZWFtaW5nX3dyaXRlX2VudHJ5KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGNoYXIgKnBhdGgsCiAJCQkJIHN0cnVjdCBzdHJlYW1fZmlsdGVyICpmaWx0ZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBjaGVja291dCAqc3RhdGUsIGludCB0b190ZW1wZmlsZSwKIAkJCQkgaW50ICpmc3RhdF9kb25lLCBzdHJ1Y3Qgc3RhdCAqc3RhdGJ1ZikKQEAgLTEzNiw3ICsxMzYsOCBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbnQgd3JpdGVfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgY2hhciAqcGF0aCwgY29uc3Qgc3RydWN0IGNoZWNrb3V0ICpzdGF0ZSwgaW50IHRvX3RlbXBmaWxlKQorc3RhdGljIGludCB3cml0ZV9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkgICAgICAgY2hhciAqcGF0aCwgY29uc3Qgc3RydWN0IGNoZWNrb3V0ICpzdGF0ZSwgaW50IHRvX3RlbXBmaWxlKQogewogCXVuc2lnbmVkIGludCBjZV9tb2RlX3NfaWZtdCA9IGNlLT5jZV9tb2RlICYgU19JRk1UOwogCWludCBmZCwgcmV0LCBmc3RhdF9kb25lID0gMDsKQEAgLTE5OSw5ICsyMDAsOSBAQAogCQlicmVhazsKIAljYXNlIFNfSUZHSVRMSU5LOgogCQlpZiAodG9fdGVtcGZpbGUpCi0JCQlyZXR1cm4gZXJyb3IoImNhbm5vdCBjcmVhdGUgdGVtcG9yYXJ5IHN1YnByb2plY3QgJXMiLCBwYXRoKTsKKwkJCXJldHVybiBlcnJvcigiY2Fubm90IGNyZWF0ZSB0ZW1wb3Jhcnkgc3VibW9kdWxlICVzIiwgcGF0aCk7CiAJCWlmIChta2RpcihwYXRoLCAwNzc3KSA8IDApCi0JCQlyZXR1cm4gZXJyb3IoImNhbm5vdCBjcmVhdGUgc3VicHJvamVjdCBkaXJlY3RvcnkgJXMiLCBwYXRoKTsKKwkJCXJldHVybiBlcnJvcigiY2Fubm90IGNyZWF0ZSBzdWJtb2R1bGUgZGlyZWN0b3J5ICVzIiwgcGF0aCk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiBlcnJvcigidW5rbm93biBmaWxlIG1vZGUgZm9yICVzIGluIGluZGV4IiwgcGF0aCk7CkBAIC0yMzMsNyArMjM0LDggQEAKIAlyZXR1cm4gbHN0YXQocGF0aCwgc3QpOwogfQogCi1pbnQgY2hlY2tvdXRfZW50cnkoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgY29uc3Qgc3RydWN0IGNoZWNrb3V0ICpzdGF0ZSwgY2hhciAqdG9wYXRoKQoraW50IGNoZWNrb3V0X2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCSAgIGNvbnN0IHN0cnVjdCBjaGVja291dCAqc3RhdGUsIGNoYXIgKnRvcGF0aCkKIHsKIAlzdGF0aWMgY2hhciBwYXRoW1BBVEhfTUFYICsgMV07CiAJc3RydWN0IHN0YXQgc3Q7CmRpZmYgLS1naXQgYS9lbnZpcm9ubWVudC5jIGIvZW52aXJvbm1lbnQuYwppbmRleCBlMmU3NWMxLi41Mzk4YzM2IDEwMDY0NAotLS0gYS9lbnZpcm9ubWVudC5jCisrKyBiL2Vudmlyb25tZW50LmMKQEAgLTIyLDYgKzIyLDcgQEAKIGludCBpc19iYXJlX3JlcG9zaXRvcnlfY2ZnID0gLTE7IC8qIHVuc3BlY2lmaWVkICovCiBpbnQgbG9nX2FsbF9yZWZfdXBkYXRlcyA9IC0xOyAvKiB1bnNwZWNpZmllZCAqLwogaW50IHdhcm5fYW1iaWd1b3VzX3JlZnMgPSAxOworaW50IHdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5ID0gMTsKIGludCByZXBvc2l0b3J5X2Zvcm1hdF92ZXJzaW9uOwogY29uc3QgY2hhciAqZ2l0X2NvbW1pdF9lbmNvZGluZzsKIGNvbnN0IGNoYXIgKmdpdF9sb2dfb3V0cHV0X2VuY29kaW5nOwpAQCAtMzcsNyArMzgsNiBAQAogc2l6ZV90IHBhY2tlZF9naXRfbGltaXQgPSBERUZBVUxUX1BBQ0tFRF9HSVRfTElNSVQ7CiBzaXplX3QgZGVsdGFfYmFzZV9jYWNoZV9saW1pdCA9IDE2ICogMTAyNCAqIDEwMjQ7CiB1bnNpZ25lZCBsb25nIGJpZ19maWxlX3RocmVzaG9sZCA9IDUxMiAqIDEwMjQgKiAxMDI0OwotY29uc3QgY2hhciAqbG9nX3BhY2tfYWNjZXNzOwogY29uc3QgY2hhciAqcGFnZXJfcHJvZ3JhbTsKIGludCBwYWdlcl91c2VfY29sb3IgPSAxOwogY29uc3QgY2hhciAqZWRpdG9yX3Byb2dyYW07CmRpZmYgLS1naXQgYS9leGVjX2NtZC5oIGIvZXhlY19jbWQuaAppbmRleCBlMmI1NDZiLi5lNGM5NzAyIDEwMDY0NAotLS0gYS9leGVjX2NtZC5oCisrKyBiL2V4ZWNfY21kLmgKQEAgLTcsNiArNyw3IEBACiBleHRlcm4gdm9pZCBzZXR1cF9wYXRoKHZvaWQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKipwcmVwYXJlX2dpdF9jbWQoY29uc3QgY2hhciAqKmFyZ3YpOwogZXh0ZXJuIGludCBleGVjdl9naXRfY21kKGNvbnN0IGNoYXIgKiphcmd2KTsgLyogTlVMTCB0ZXJtaW5hdGVkICovCitMQVNUX0FSR19NVVNUX0JFX05VTEwKIGV4dGVybiBpbnQgZXhlY2xfZ2l0X2NtZChjb25zdCBjaGFyICpjbWQsIC4uLik7CiBleHRlcm4gY29uc3QgY2hhciAqc3lzdGVtX3BhdGgoY29uc3QgY2hhciAqcGF0aCk7CiAKZGlmZiAtLWdpdCBhL2Zhc3QtaW1wb3J0LmMgYi9mYXN0LWltcG9ydC5jCmluZGV4IDVmNTM5ZDcuLjIzZjYyNWYgMTAwNjQ0Ci0tLSBhL2Zhc3QtaW1wb3J0LmMKKysrIGIvZmFzdC1pbXBvcnQuYwpAQCAtMjk3LDcgKzI5Nyw3IEBACiBzdGF0aWMgRklMRSAqcGFja19lZGdlczsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2hvd19zdGF0cyA9IDE7CiBzdGF0aWMgaW50IGdsb2JhbF9hcmdjOwotc3RhdGljIGNvbnN0IGNoYXIgKipnbG9iYWxfYXJndjsKK3N0YXRpYyBjaGFyICoqZ2xvYmFsX2FyZ3Y7CiAKIC8qIE1lbW9yeSBwb29scyAqLwogc3RhdGljIHNpemVfdCBtZW1fcG9vbF9hbGxvYyA9IDIqMTAyNCoxMDI0IC0gc2l6ZW9mKHN0cnVjdCBtZW1fcG9vbCk7CkBAIC0xODIyLDcgKzE4MjIsNyBAQAogCQkqZW5kID0gMDsKIAkJbWFyayA9IHN0cnRvdW1heChsaW5lICsgMSwgJmVuZCwgMTApOwogCQlpZiAoIW1hcmsgfHwgZW5kID09IGxpbmUgKyAxCi0JCQl8fCAqZW5kICE9ICcgJyB8fCBnZXRfc2hhMShlbmQgKyAxLCBzaGExKSkKKwkJCXx8ICplbmQgIT0gJyAnIHx8IGdldF9zaGExX2hleChlbmQgKyAxLCBzaGExKSkKIAkJCWRpZSgiY29ycnVwdCBtYXJrIGxpbmU6ICVzIiwgbGluZSk7CiAJCWUgPSBmaW5kX29iamVjdChzaGExKTsKIAkJaWYgKCFlKSB7CkBAIC0zMzQ3LDcgKzMzNDcsNyBAQAogCQlyZWFkX21hcmtzKCk7CiB9CiAKLWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIApkaWZmIC0tZ2l0IGEvZmV0Y2gtcGFjay5jIGIvZmV0Y2gtcGFjay5jCmluZGV4IGYxNTZkZDQuLmY1ZDk5YzEgMTAwNjQ0Ci0tLSBhL2ZldGNoLXBhY2suYworKysgYi9mZXRjaC1wYWNrLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogI2luY2x1ZGUgInRyYW5zcG9ydC5oIgogI2luY2x1ZGUgInZlcnNpb24uaCIKKyNpbmNsdWRlICJwcmlvLXF1ZXVlLmgiCiAKIHN0YXRpYyBpbnQgdHJhbnNmZXJfdW5wYWNrX2xpbWl0ID0gLTE7CiBzdGF0aWMgaW50IGZldGNoX3VucGFja19saW1pdCA9IC0xOwpAQCAtMjAsNiArMjEsOCBAQAogc3RhdGljIGludCBmZXRjaF9mc2NrX29iamVjdHMgPSAtMTsKIHN0YXRpYyBpbnQgdHJhbnNmZXJfZnNja19vYmplY3RzID0gLTE7CiBzdGF0aWMgaW50IGFnZW50X3N1cHBvcnRlZDsKK3N0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIHNoYWxsb3dfbG9jazsKK3N0YXRpYyBjb25zdCBjaGFyICphbHRlcm5hdGVfc2hhbGxvd19maWxlOwogCiAjZGVmaW5lIENPTVBMRVRFCSgxVSA8PCAwKQogI2RlZmluZSBDT01NT04JCSgxVSA8PCAxKQpAQCAtMzUsNyArMzgsNyBAQAogICovCiAjZGVmaW5lIE1BWF9JTl9WQUlOIDI1NgogCi1zdGF0aWMgc3RydWN0IGNvbW1pdF9saXN0ICpyZXZfbGlzdDsKK3N0YXRpYyBzdHJ1Y3QgcHJpb19xdWV1ZSByZXZfbGlzdCA9IHsgY29tcGFyZV9jb21taXRzX2J5X2NvbW1pdF9kYXRlIH07CiBzdGF0aWMgaW50IG5vbl9jb21tb25fcmV2cywgbXVsdGlfYWNrLCB1c2Vfc2lkZWJhbmQsIGFsbG93X3RpcF9zaGExX2luX3dhbnQ7CiAKIHN0YXRpYyB2b2lkIHJldl9saXN0X3B1c2goc3RydWN0IGNvbW1pdCAqY29tbWl0LCBpbnQgbWFyaykKQEAgLTQ3LDcgKzUwLDcgQEAKIAkJCWlmIChwYXJzZV9jb21taXQoY29tbWl0KSkKIAkJCQlyZXR1cm47CiAKLQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUoY29tbWl0LCAmcmV2X2xpc3QpOworCQlwcmlvX3F1ZXVlX3B1dCgmcmV2X2xpc3QsIGNvbW1pdCk7CiAKIAkJaWYgKCEoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBDT01NT04pKQogCQkJbm9uX2NvbW1vbl9yZXZzKys7CkBAIC0xMjAsMTAgKzEyMywxMCBAQAogCQl1bnNpZ25lZCBpbnQgbWFyazsKIAkJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzOwogCi0JCWlmIChyZXZfbGlzdCA9PSBOVUxMIHx8IG5vbl9jb21tb25fcmV2cyA9PSAwKQorCQlpZiAocmV2X2xpc3QubnIgPT0gMCB8fCBub25fY29tbW9uX3JldnMgPT0gMCkKIAkJCXJldHVybiBOVUxMOwogCi0JCWNvbW1pdCA9IHJldl9saXN0LT5pdGVtOworCQljb21taXQgPSBwcmlvX3F1ZXVlX2dldCgmcmV2X2xpc3QpOwogCQlpZiAoIWNvbW1pdC0+b2JqZWN0LnBhcnNlZCkKIAkJCXBhcnNlX2NvbW1pdChjb21taXQpOwogCQlwYXJlbnRzID0gY29tbWl0LT5wYXJlbnRzOwpAQCAtMTUwLDggKzE1Myw2IEBACiAJCQkJbWFya19jb21tb24ocGFyZW50cy0+aXRlbSwgMSwgMCk7CiAJCQlwYXJlbnRzID0gcGFyZW50cy0+bmV4dDsKIAkJfQotCi0JCXJldl9saXN0ID0gcmV2X2xpc3QtPm5leHQ7CiAJfQogCiAJcmV0dXJuIGNvbW1pdC0+b2JqZWN0LnNoYTE7CkBAIC00NDAsNyArNDQxLDcgQEAKIAkJCQkJaW5fdmFpbiA9IDA7CiAJCQkJCWdvdF9jb250aW51ZSA9IDE7CiAJCQkJCWlmIChhY2sgPT0gQUNLX3JlYWR5KSB7Ci0JCQkJCQlyZXZfbGlzdCA9IE5VTEw7CisJCQkJCQljbGVhcl9wcmlvX3F1ZXVlKCZyZXZfbGlzdCk7CiAJCQkJCQlnb3RfcmVhZHkgPSAxOwogCQkJCQl9CiAJCQkJCWJyZWFrOwpAQCAtNTAzLDcgKzUwNCw3IEBACiAJCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IChzdHJ1Y3QgY29tbWl0ICopbzsKIAkJaWYgKCEoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBDT01QTEVURSkpIHsKIAkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IENPTVBMRVRFOwotCQkJY29tbWl0X2xpc3RfaW5zZXJ0X2J5X2RhdGUoY29tbWl0LCAmY29tcGxldGUpOworCQkJY29tbWl0X2xpc3RfaW5zZXJ0KGNvbW1pdCwgJmNvbXBsZXRlKTsKIAkJfQogCX0KIAlyZXR1cm4gMDsKQEAgLTYyMCw2ICs2MjEsNyBAQAogCWlmICghYXJncy0+ZGVwdGgpIHsKIAkJZm9yX2VhY2hfcmVmKG1hcmtfY29tcGxldGUsIE5VTEwpOwogCQlmb3JfZWFjaF9hbHRlcm5hdGVfcmVmKG1hcmtfYWx0ZXJuYXRlX2NvbXBsZXRlLCBOVUxMKTsKKwkJY29tbWl0X2xpc3Rfc29ydF9ieV9kYXRlKCZjb21wbGV0ZSk7CiAJCWlmIChjdXRvZmYpCiAJCQltYXJrX3JlY2VudF9jb21wbGV0ZV9jb21taXRzKGFyZ3MsIGN1dG9mZik7CiAJfQpAQCAtNjgzLDEyICs2ODUsMTMgQEAKIAkJICAgIGludCB4ZFsyXSwgY2hhciAqKnBhY2tfbG9ja2ZpbGUpCiB7CiAJc3RydWN0IGFzeW5jIGRlbXV4OwotCWNvbnN0IGNoYXIgKmFyZ3ZbMjBdOworCWNvbnN0IGNoYXIgKmFyZ3ZbMjJdOwogCWNoYXIga2VlcF9hcmdbMjU2XTsKIAljaGFyIGhkcl9hcmdbMjU2XTsKIAljb25zdCBjaGFyICoqYXY7CiAJaW50IGRvX2tlZXAgPSBhcmdzLT5rZWVwX3BhY2s7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY21kOworCWludCByZXQ7CiAKIAltZW1zZXQoJmRlbXV4LCAwLCBzaXplb2YoZGVtdXgpKTsKIAlpZiAodXNlX3NpZGViYW5kKSB7CkBAIC03MjQsNiArNzI3LDExIEBACiAJCQlkb19rZWVwID0gMTsKIAl9CiAKKwlpZiAoYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSkgeworCQkqYXYrKyA9ICItLXNoYWxsb3ctZmlsZSI7CisJCSphdisrID0gYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZTsKKwl9CisKIAlpZiAoZG9fa2VlcCkgewogCQlpZiAocGFja19sb2NrZmlsZSkKIAkJCWNtZC5vdXQgPSAtMTsKQEAgLTc0MCwxMSArNzQ4LDE0IEBACiAJCQkJc3RyY3B5KGtlZXBfYXJnICsgcywgImxvY2FsaG9zdCIpOwogCQkJKmF2KysgPSBrZWVwX2FyZzsKIAkJfQorCQlpZiAoYXJncy0+Y2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCkKKwkJCSphdisrID0gIi0tY2hlY2stc2VsZi1jb250YWluZWQtYW5kLWNvbm5lY3RlZCI7CiAJfQogCWVsc2UgewogCQkqYXYrKyA9ICJ1bnBhY2stb2JqZWN0cyI7CiAJCWlmIChhcmdzLT5xdWlldCB8fCBhcmdzLT5ub19wcm9ncmVzcykKIAkJCSphdisrID0gIi1xIjsKKwkJYXJncy0+Y2hlY2tfc2VsZl9jb250YWluZWRfYW5kX2Nvbm5lY3RlZCA9IDA7CiAJfQogCWlmICgqaGRyX2FyZykKIAkJKmF2KysgPSBoZHJfYXJnOwpAQCAtNzY1LDcgKzc3NiwxMiBAQAogCQljbG9zZShjbWQub3V0KTsKIAl9CiAKLQlpZiAoZmluaXNoX2NvbW1hbmQoJmNtZCkpCisJcmV0ID0gZmluaXNoX2NvbW1hbmQoJmNtZCk7CisJaWYgKCFyZXQgfHwgKGFyZ3MtPmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgJiYgcmV0ID09IDEpKQorCQlhcmdzLT5zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0KKwkJCWFyZ3MtPmNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgJiYKKwkJCXJldCA9PSAwOworCWVsc2UKIAkJZGllKCIlcyBmYWlsZWQiLCBhcmd2WzBdKTsKIAlpZiAodXNlX3NpZGViYW5kICYmIGZpbmlzaF9hc3luYygmZGVtdXgpKQogCQlkaWUoImVycm9yIGluIHNpZGViYW5kIGRlbXVsdGlwbGV4ZXIiKTsKQEAgLTc3OSw2ICs3OTUsMjcgQEAKIAlyZXR1cm4gc3RyY21wKGEtPm5hbWUsIGItPm5hbWUpOwogfQogCitzdGF0aWMgdm9pZCBzZXR1cF9hbHRlcm5hdGVfc2hhbGxvdyh2b2lkKQoreworCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKKwlpbnQgZmQ7CisKKwljaGVja19zaGFsbG93X2ZpbGVfZm9yX3VwZGF0ZSgpOworCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmc2hhbGxvd19sb2NrLCBnaXRfcGF0aCgic2hhbGxvdyIpLAorCQkJCSAgICAgICBMT0NLX0RJRV9PTl9FUlJPUik7CisJaWYgKHdyaXRlX3NoYWxsb3dfY29tbWl0cygmc2IsIDApKSB7CisJCWlmICh3cml0ZV9pbl9mdWxsKGZkLCBzYi5idWYsIHNiLmxlbikgIT0gc2IubGVuKQorCQkJZGllX2Vycm5vKCJmYWlsZWQgdG8gd3JpdGUgdG8gJXMiLCBzaGFsbG93X2xvY2suZmlsZW5hbWUpOworCQlhbHRlcm5hdGVfc2hhbGxvd19maWxlID0gc2hhbGxvd19sb2NrLmZpbGVuYW1lOworCX0gZWxzZQorCQkvKgorCQkgKiBpc19yZXBvc2l0b3J5X3NoYWxsb3coKSBzZWVzIGVtcHR5IHN0cmluZyBhcyAibm8KKwkJICogc2hhbGxvdyBmaWxlIi4KKwkJICovCisJCWFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPSAiIjsKKwlzdHJidWZfcmVsZWFzZSgmc2IpOworfQorCiBzdGF0aWMgc3RydWN0IHJlZiAqZG9fZmV0Y2hfcGFjayhzdHJ1Y3QgZmV0Y2hfcGFja19hcmdzICphcmdzLAogCQkJCSBpbnQgZmRbMl0sCiAJCQkJIGNvbnN0IHN0cnVjdCByZWYgKm9yaWdfcmVmLApAQCAtODU4LDYgKzg5NSwxMCBAQAogCiAJaWYgKGFyZ3MtPnN0YXRlbGVzc19ycGMpCiAJCXBhY2tldF9mbHVzaChmZFsxXSk7CisJaWYgKGFyZ3MtPmRlcHRoID4gMCkKKwkJc2V0dXBfYWx0ZXJuYXRlX3NoYWxsb3coKTsKKwllbHNlCisJCWFsdGVybmF0ZV9zaGFsbG93X2ZpbGUgPSBOVUxMOwogCWlmIChnZXRfcGFjayhhcmdzLCBmZCwgcGFja19sb2NrZmlsZSkpCiAJCWRpZSgiZ2l0IGZldGNoLXBhY2s6IGZldGNoIGZhaWxlZC4iKTsKIApAQCAtOTM2LDE1ICs5NzcsOSBAQAogCQkgICAgICAgc3RydWN0IHJlZiAqKnNvdWdodCwgaW50IG5yX3NvdWdodCwKIAkJICAgICAgIGNoYXIgKipwYWNrX2xvY2tmaWxlKQogewotCXN0cnVjdCBzdGF0IHN0OwogCXN0cnVjdCByZWYgKnJlZl9jcHk7CiAKIAlmZXRjaF9wYWNrX3NldHVwKCk7Ci0JaWYgKGFyZ3MtPmRlcHRoID4gMCkgewotCQlpZiAoc3RhdChnaXRfcGF0aCgic2hhbGxvdyIpLCAmc3QpKQotCQkJc3Quc3RfbXRpbWUgPSAwOwotCX0KLQogCWlmIChucl9zb3VnaHQpCiAJCW5yX3NvdWdodCA9IHJlbW92ZV9kdXBsaWNhdGVzX2luX3JlZnMoc291Z2h0LCBucl9zb3VnaHQpOwogCkBAIC05NTQsMzUgKzk4OSwxMiBAQAogCX0KIAlyZWZfY3B5ID0gZG9fZmV0Y2hfcGFjayhhcmdzLCBmZCwgcmVmLCBzb3VnaHQsIG5yX3NvdWdodCwgcGFja19sb2NrZmlsZSk7CiAKLQlpZiAoYXJncy0+ZGVwdGggPiAwKSB7Ci0JCXN0YXRpYyBzdHJ1Y3QgbG9ja19maWxlIGxvY2s7Ci0JCXN0cnVjdCBjYWNoZV90aW1lIG10aW1lOwotCQlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7Ci0JCWNoYXIgKnNoYWxsb3cgPSBnaXRfcGF0aCgic2hhbGxvdyIpOwotCQlpbnQgZmQ7Ci0KLQkJbXRpbWUuc2VjID0gc3Quc3RfbXRpbWU7Ci0JCW10aW1lLm5zZWMgPSBTVF9NVElNRV9OU0VDKHN0KTsKLQkJaWYgKHN0YXQoc2hhbGxvdywgJnN0KSkgewotCQkJaWYgKG10aW1lLnNlYykKLQkJCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgcmVtb3ZlZCBkdXJpbmcgZmV0Y2giKTsKLQkJfSBlbHNlIGlmIChzdC5zdF9tdGltZSAhPSBtdGltZS5zZWMKLSNpZmRlZiBVU0VfTlNFQwotCQkJCXx8IFNUX01USU1FX05TRUMoc3QpICE9IG10aW1lLm5zZWMKLSNlbmRpZgotCQkJICApCi0JCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgY2hhbmdlZCBkdXJpbmcgZmV0Y2giKTsKLQotCQlmZCA9IGhvbGRfbG9ja19maWxlX2Zvcl91cGRhdGUoJmxvY2ssIHNoYWxsb3csCi0JCQkJCSAgICAgICBMT0NLX0RJRV9PTl9FUlJPUik7Ci0JCWlmICghd3JpdGVfc2hhbGxvd19jb21taXRzKCZzYiwgMCkKLQkJIHx8IHdyaXRlX2luX2Z1bGwoZmQsIHNiLmJ1Ziwgc2IubGVuKSAhPSBzYi5sZW4pIHsKLQkJCXVubGlua19vcl93YXJuKHNoYWxsb3cpOwotCQkJcm9sbGJhY2tfbG9ja19maWxlKCZsb2NrKTsKLQkJfSBlbHNlIHsKLQkJCWNvbW1pdF9sb2NrX2ZpbGUoJmxvY2spOwotCQl9Ci0JCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CisJaWYgKGFyZ3MtPmRlcHRoID4gMCAmJiBhbHRlcm5hdGVfc2hhbGxvd19maWxlKSB7CisJCWlmICgqYWx0ZXJuYXRlX3NoYWxsb3dfZmlsZSA9PSAnXDAnKSB7IC8qIC0tdW5zaGFsbG93ICovCisJCQl1bmxpbmtfb3Jfd2FybihnaXRfcGF0aCgic2hhbGxvdyIpKTsKKwkJCXJvbGxiYWNrX2xvY2tfZmlsZSgmc2hhbGxvd19sb2NrKTsKKwkJfSBlbHNlCisJCQljb21taXRfbG9ja19maWxlKCZzaGFsbG93X2xvY2spOwogCX0KIAogCXJlcHJlcGFyZV9wYWNrZWRfZ2l0KCk7CmRpZmYgLS1naXQgYS9mZXRjaC1wYWNrLmggYi9mZXRjaC1wYWNrLmgKaW5kZXggZGM1MjY2Yy4uNDBmMDhiYSAxMDA2NDQKLS0tIGEvZmV0Y2gtcGFjay5oCisrKyBiL2ZldGNoLXBhY2suaApAQCAtMTYsNyArMTYsOSBAQAogCQl2ZXJib3NlOjEsCiAJCW5vX3Byb2dyZXNzOjEsCiAJCWluY2x1ZGVfdGFnOjEsCi0JCXN0YXRlbGVzc19ycGM6MTsKKwkJc3RhdGVsZXNzX3JwYzoxLAorCQljaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkOjEsCisJCXNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQ6MTsKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9maXh1cC1idWlsdGlucyBiL2ZpeHVwLWJ1aWx0aW5zCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2M2RmYTRjLi4wMDAwMDAwCi0tLSBhL2ZpeHVwLWJ1aWx0aW5zCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyEvYmluL3NoCi13aGlsZSBbICIkMSIgXQotZG8KLQlpZiBbICIkMSIgIT0gImdpdC1zaC1zZXR1cCIgLWEgIiQxIiAhPSAiZ2l0LXBhcnNlLXJlbW90ZSIgLWEgIiQxIiAhPSAiZ2l0LXN2biIgXTsgdGhlbgotCQlvbGQ9IiQxIgotCQluZXc9JChlY2hvICIkMSIgfCBzZWQgJ3MvZ2l0LS9naXQgLycpCi0JCWVjaG8gIkNvbnZlcnRpbmcgJyRvbGQnIHRvICckbmV3JyIKLQkJc2VkIC1pICJzL1xcPCRvbGRcXD4vJG5ldy9nIiAkKGdpdCBscy1maWxlcyAnKi5zaCcpCi0JZmkKLQlzaGlmdAotZG9uZQotCi1zZWQgLWkgJ3MvZ2l0IG1lcmdlLW9uZS1maWxlL2dpdC1tZXJnZS1vbmUtZmlsZS9nCi1zL2dpdCByZWJhc2UtdG9kby9naXQtcmViYXNlLXRvZG8vZycgJChnaXQgbHMtZmlsZXMgJyouc2gnKQotZ2l0IHVwZGF0ZS1pbmRleCAtLXJlZnJlc2ggPiYgL2Rldi9udWxsCi1leGl0IDAKZGlmZiAtLWdpdCBhL2dpdC1hZGQtLWludGVyYWN0aXZlLnBlcmwgYi9naXQtYWRkLS1pbnRlcmFjdGl2ZS5wZXJsCmluZGV4IGQyYzRjZTYuLjc1YTk5MWYgMTAwNzU1Ci0tLSBhL2dpdC1hZGQtLWludGVyYWN0aXZlLnBlcmwKKysrIGIvZ2l0LWFkZC0taW50ZXJhY3RpdmUucGVybApAQCAtNDQsNiArNDQsOCBAQAogCiBteSAkbm9ybWFsX2NvbG9yID0gJHJlcG8tPmdldF9jb2xvcigiIiwgInJlc2V0Iik7CiAKK215ICRkaWZmX2FsZ29yaXRobSA9ICRyZXBvLT5jb25maWcoJ2RpZmYuYWxnb3JpdGhtJyk7CisKIG15ICR1c2VfcmVhZGtleSA9IDA7CiBteSAkdXNlX3Rlcm1jYXAgPSAwOwogbXkgJXRlcm1fZXNjYXBlczsKQEAgLTczMSw2ICs3MzMsOSBAQAogc3ViIHBhcnNlX2RpZmYgewogCW15ICgkcGF0aCkgPSBAXzsKIAlteSBAZGlmZl9jbWQgPSBzcGxpdCgiICIsICRwYXRjaF9tb2RlX2ZsYXZvdXJ7RElGRn0pOworCWlmIChkZWZpbmVkICRkaWZmX2FsZ29yaXRobSkgeworCQlzcGxpY2UgQGRpZmZfY21kLCAxLCAwLCAiLS1kaWZmLWFsZ29yaXRobT0ke2RpZmZfYWxnb3JpdGhtfSI7CisJfQogCWlmIChkZWZpbmVkICRwYXRjaF9tb2RlX3JldmlzaW9uKSB7CiAJCXB1c2ggQGRpZmZfY21kLCAkcGF0Y2hfbW9kZV9yZXZpc2lvbjsKIAl9CmRpZmYgLS1naXQgYS9naXQtYW0uc2ggYi9naXQtYW0uc2gKaW5kZXggMWNmM2QxZC4uN2VhNDBmZSAxMDA3NTUKLS0tIGEvZ2l0LWFtLnNoCisrKyBiL2dpdC1hbS5zaApAQCAtNiw3ICs2LDcgQEAKIE9QVElPTlNfS0VFUERBU0hEQVNIPQogT1BUSU9OU19TUEVDPSJcCiBnaXQgYW0gW29wdGlvbnNdIFsoPG1ib3g+fDxNYWlsZGlyPikuLi5dCi1naXQgYW0gW29wdGlvbnNdICgtLXJlc29sdmVkIHwgLS1za2lwIHwgLS1hYm9ydCkKK2dpdCBhbSBbb3B0aW9uc10gKC0tY29udGludWUgfCAtLXNraXAgfCAtLWFib3J0KQogLS0KIGksaW50ZXJhY3RpdmUgICBydW4gaW50ZXJhY3RpdmVseQogYixiaW5hcnkqICAgICAgIChoaXN0b3JpY2FsIG9wdGlvbiAtLSBuby1vcCkKQEAgLTEwMiw3ICsxMDIsNyBAQAogCSAgICBwcmludGYgJyVzXG4nICIkcmVzb2x2ZW1zZyIKIAkgICAgc3RvcF9oZXJlICQxCiAgICAgZmkKLSAgICBldmFsX2dldHRleHRsbiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIlwkY21kbGluZSAtLXJlc29sdmVkXCIuCisgICAgZXZhbF9nZXR0ZXh0bG4gIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCJcJGNtZGxpbmUgLS1jb250aW51ZVwiLgogSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcIlwkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLgogVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nLCBydW4gXCJcJGNtZGxpbmUgLS1hYm9ydFwiLiIKIApAQCAtNTA2LDcgKzUwNiwyNCBAQAogCWVzYWMKIAlybSAtZiAiJGRvdGVzdC9kaXJ0eWluZGV4IgogZWxzZQotCSMgTWFrZSBzdXJlIHdlIGFyZSBub3QgZ2l2ZW4gLS1za2lwLCAtLXJlc29sdmVkLCBub3IgLS1hYm9ydAorCSMgUG9zc2libGUgc3RyYXkgJGRvdGVzdCBkaXJlY3RvcnkgaW4gdGhlIGluZGVwZW5kZW50LXJ1bgorCSMgY2FzZTsgaW4gdGhlIC0tcmViYXNpbmcgY2FzZSwgaXQgaXMgdXB0byB0aGUgY2FsbGVyCisJIyAoZ2l0LXJlYmFzZS0tYW0pIHRvIHRha2UgY2FyZSBvZiBzdHJheSBkaXJlY3Rvcmllcy4KKwlpZiB0ZXN0IC1kICIkZG90ZXN0IiAmJiB0ZXN0IC16ICIkcmViYXNpbmciCisJdGhlbgorCQljYXNlICIkc2tpcCwkcmVzb2x2ZWQsJGFib3J0IiBpbgorCQksLHQpCisJCQlybSAtZnIgIiRkb3Rlc3QiCisJCQlleGl0IDAKKwkJCTs7CisJCSopCisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJTdHJheSBcJGRvdGVzdCBkaXJlY3RvcnkgZm91bmQuCitVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iKSIKKwkJCTs7CisJCWVzYWMKKwlmaQorCisJIyBNYWtlIHN1cmUgd2UgYXJlIG5vdCBnaXZlbiAtLXNraXAsIC0tY29udGludWUsIG5vciAtLWFib3J0CiAJdGVzdCAiJHNraXAkcmVzb2x2ZWQkYWJvcnQiID0gIiIgfHwKIAkJZGllICIkKGdldHRleHQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iKSIKIApAQCAtNjUzLDcgKzY3MCw3IEBACiAJIyAgLSBwYXRjaCBpcyB0aGUgcGF0Y2ggYm9keS4KIAkjCiAJIyBXaGVuIHdlIGFyZSByZXN1bWluZywgdGhlc2UgZmlsZXMgYXJlIGVpdGhlciBhbHJlYWR5IHByZXBhcmVkCi0JIyBieSB0aGUgdXNlciwgb3IgdGhlIHVzZXIgY2FuIHRlbGwgdXMgdG8gZG8gc28gYnkgLS1yZXNvbHZlZCBmbGFnLgorCSMgYnkgdGhlIHVzZXIsIG9yIHRoZSB1c2VyIGNhbiB0ZWxsIHVzIHRvIGRvIHNvIGJ5IC0tY29udGludWUgZmxhZy4KIAljYXNlICIkcmVzdW1lIiBpbgogCScnKQogCQlpZiB0ZXN0IC1mICIkZG90ZXN0L3JlYmFzaW5nIgpkaWZmIC0tZ2l0IGEvZ2l0LWJpc2VjdC5zaCBiL2dpdC1iaXNlY3Quc2gKaW5kZXggZDc1MThlOS4uOWYwNjRiNiAxMDA3NTUKLS0tIGEvZ2l0LWJpc2VjdC5zaAorKysgYi9naXQtYmlzZWN0LnNoCkBAIC0zMjAsOCArMzIwLDggQEAKIAllbGlmIHRlc3QgJHJlcyAtZXEgMgogCXRoZW4KIAkJZWNobyAiIyBvbmx5IHNraXBwZWQgY29tbWl0cyBsZWZ0IHRvIHRlc3QiID4+IiRHSVRfRElSL0JJU0VDVF9MT0ciCi0JCWdvb2RfcmV2cz0kKGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9Ii0tbm90ICUob2JqZWN0bmFtZSkiICJyZWZzL2Jpc2VjdC9nb29kLSoiKQotCQlmb3Igc2tpcHBlZCBpbiAkKGdpdCByZXYtbGlzdCByZWZzL2Jpc2VjdC9iYWQgJGdvb2RfcmV2cykKKwkJZ29vZF9yZXZzPSQoZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0iJShvYmplY3RuYW1lKSIgInJlZnMvYmlzZWN0L2dvb2QtKiIpCisJCWZvciBza2lwcGVkIGluICQoZ2l0IHJldi1saXN0IHJlZnMvYmlzZWN0L2JhZCAtLW5vdCAkZ29vZF9yZXZzKQogCQlkbwogCQkJc2tpcHBlZF9jb21taXQ9JChnaXQgc2hvdy1icmFuY2ggJHNraXBwZWQpCiAJCQllY2hvICIjIHBvc3NpYmxlIGZpcnN0IGJhZCBjb21taXQ6ICRza2lwcGVkX2NvbW1pdCIgPj4iJEdJVF9ESVIvQklTRUNUX0xPRyIKZGlmZiAtLWdpdCBhL2dpdC1jb21wYXQtdXRpbC5oIGIvZ2l0LWNvbXBhdC11dGlsLmgKaW5kZXggZTk1NWJiNS4uOTZkODg4MSAxMDA2NDQKLS0tIGEvZ2l0LWNvbXBhdC11dGlsLmgKKysrIGIvZ2l0LWNvbXBhdC11dGlsLmgKQEAgLTg1LDEzICs4NSwxNCBAQAogI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCiAjZGVmaW5lIF9TR0lfU09VUkNFIDEKIAotI2lmZGVmIFdJTjMyIC8qIEJvdGggTWluR1cgYW5kIE1TVkMgKi8KKyNpZiBkZWZpbmVkKFdJTjMyKSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKSAvKiBCb3RoIE1pbkdXIGFuZCBNU1ZDICovCiAjIGlmIGRlZmluZWQgKF9NU0NfVkVSKQogIyAgZGVmaW5lIF9XSU4zMl9XSU5OVCAweDA1MDIKICMgZW5kaWYKICNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTiAgLyogc3RvcHMgd2luZG93cy5oIGluY2x1ZGluZyB3aW5zb2NrLmggKi8KICNpbmNsdWRlIDx3aW5zb2NrMi5oPgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNkZWZpbmUgR0lUX1dJTkRPV1NfTkFUSVZFCiAjZW5kaWYKIAogI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtMTI3LDYgKzEyOCw3IEBACiAjZWxzZQogI2luY2x1ZGUgPHBvbGwuaD4KICNlbmRpZgorCiAjaWYgZGVmaW5lZChfX01JTkdXMzJfXykKIC8qIHB1bGwgaW4gV2luZG93cyBjb21wYXRpYmlsaXR5IHN0dWZmICovCiAjaW5jbHVkZSAiY29tcGF0L21pbmd3LmgiCkBAIC0xNjMsMTIgKzE2NSwxMCBAQAogdHlwZWRlZiBsb25nIGludHB0cl90OwogdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVpbnRwdHJfdDsKICNlbmRpZgotaW50IGdldF9zdF9tb2RlX2JpdHMoY29uc3QgY2hhciAqcGF0aCwgaW50ICptb2RlKTsKICNpZiBkZWZpbmVkKF9fQ1lHV0lOX18pCiAjdW5kZWYgX1hPUEVOX1NPVVJDRQogI2luY2x1ZGUgPGdycC5oPgogI2RlZmluZSBfWE9QRU5fU09VUkNFIDYwMAotI2luY2x1ZGUgImNvbXBhdC9jeWd3aW4uaCIKICNlbHNlCiAjdW5kZWYgX0FMTF9TT1VSQ0UgLyogQUlYIDUuM0wgZGVmaW5lcyBhIHN0cnVjdCBsaXN0IHdpdGggX0FMTF9TT1VSQ0UuICovCiAjaW5jbHVkZSA8Z3JwLmg+CkBAIC0yOTUsNiArMjk1LDEzIEBACiAjZW5kaWYKICNlbmRpZgogCisvKiBUaGUgc2VudGluZWwgYXR0cmlidXRlIGlzIHZhbGlkIGZyb20gZ2NjIHZlcnNpb24gNC4wICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKF9fR05VQ19fID49IDQpCisjZGVmaW5lIExBU1RfQVJHX01VU1RfQkVfTlVMTCBfX2F0dHJpYnV0ZV9fKChzZW50aW5lbCkpCisjZWxzZQorI2RlZmluZSBMQVNUX0FSR19NVVNUX0JFX05VTEwKKyNlbmRpZgorCiAjaW5jbHVkZSAiY29tcGF0L2Jzd2FwLmgiCiAKICNpZmRlZiBVU0VfV0lMRE1BVENICkBAIC02OTIsOCArNjk5LDkgQEAKICAqIENhbGwgYWNjZXNzKDIpLCBidXQgd2FybiBmb3IgYW55IGVycm9yIGV4Y2VwdCAibWlzc2luZyBmaWxlIgogICogKEVOT0VOVCBvciBFTk9URElSKS4KICAqLwotaW50IGFjY2Vzc19vcl93YXJuKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKLWludCBhY2Nlc3Nfb3JfZGllKGNvbnN0IGNoYXIgKnBhdGgsIGludCBtb2RlKTsKKyNkZWZpbmUgQUNDRVNTX0VBQ0NFU19PSyAoMVUgPDwgMCkKK2ludCBhY2Nlc3Nfb3Jfd2Fybihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZyk7CitpbnQgYWNjZXNzX29yX2RpZShjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZyk7CiAKIC8qIFdhcm4gb24gYW4gaW5hY2Nlc3NpYmxlIGZpbGUgdGhhdCBvdWdodCB0byBiZSBhY2Nlc3NpYmxlICovCiB2b2lkIHdhcm5fb25faW5hY2Nlc3NpYmxlKGNvbnN0IGNoYXIgKnBhdGgpOwpkaWZmIC0tZ2l0IGEvZ2l0LWRpZmZ0b29sLnBlcmwgYi9naXQtZGlmZnRvb2wucGVybAppbmRleCA2NzgwMjkyLi5lNTdkM2QxMiAxMDA3NTUKLS0tIGEvZ2l0LWRpZmZ0b29sLnBlcmwKKysrIGIvZ2l0LWRpZmZ0b29sLnBlcmwKQEAgLTg1LDExICs4NSwxMyBAQAogCiBzdWIgdXNlX3d0X2ZpbGUKIHsKLQlteSAoJHJlcG8sICR3b3JrZGlyLCAkZmlsZSwgJHNoYTEsICRzeW1saW5rcykgPSBAXzsKKwlteSAoJHJlcG8sICR3b3JrZGlyLCAkZmlsZSwgJHNoYTEpID0gQF87CiAJbXkgJG51bGxfc2hhMSA9ICcwJyB4IDQwOwogCi0JaWYgKCRzaGExIG5lICRudWxsX3NoYTEgYW5kIG5vdCAkc3ltbGlua3MpIHsKLQkJcmV0dXJuIDA7CisJaWYgKCEgLWUgIiR3b3JrZGlyLyRmaWxlIikgeworCQkjIElmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIHdvcmtpbmcgdHJlZSwgd2UgY2Fubm90CisJCSMgdXNlIGl0LgorCQlyZXR1cm4gKDAsICRudWxsX3NoYTEpOwogCX0KIAogCW15ICR3dF9zaGExID0gJHJlcG8tPmNvbW1hbmRfb25lbGluZSgnaGFzaC1vYmplY3QnLCAiJHdvcmtkaXIvJGZpbGUiKTsKQEAgLTIwNyw4ICsyMDksNyBAQAogCiAJCWlmICgkcm1vZGUgbmUgJG51bGxfbW9kZSkgewogCQkJbXkgKCR1c2UsICR3dF9zaGExKSA9IHVzZV93dF9maWxlKCRyZXBvLCAkd29ya2RpciwKLQkJCQkJCQkgICRkc3RfcGF0aCwgJHJzaGExLAotCQkJCQkJCSAgJHN5bWxpbmtzKTsKKwkJCQkJCQkgICRkc3RfcGF0aCwgJHJzaGExKTsKIAkJCWlmICgkdXNlKSB7CiAJCQkJcHVzaCBAd29ya2luZ190cmVlLCAkZHN0X3BhdGg7CiAJCQkJJHd0aW5kZXggLj0gIiRybW9kZSAkd3Rfc2hhMVx0JGRzdF9wYXRoXDAiOwpkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9HSVQtVkVSU0lPTi1HRU4gYi9naXQtZ3VpL0dJVC1WRVJTSU9OLUdFTgppbmRleCA0OWI2MmVhLi4wYTFmOGQ0IDEwMDc1NQotLS0gYS9naXQtZ3VpL0dJVC1WRVJTSU9OLUdFTgorKysgYi9naXQtZ3VpL0dJVC1WRVJTSU9OLUdFTgpAQCAtMSw3ICsxLDcgQEAKICMhL2Jpbi9zaAogCiBHVkY9R0lULVZFUlNJT04tRklMRQotREVGX1ZFUj0wLjE3LkdJVEdVSQorREVGX1ZFUj0wLjE4LkdJVEdVSQogCiBMRj0nCiAnCmRpZmYgLS1naXQgYS9naXQtZ3VpL01ha2VmaWxlIGIvZ2l0LWd1aS9NYWtlZmlsZQppbmRleCBlMjJiYTVjLi5lOWMyYmMzIDEwMDY0NAotLS0gYS9naXQtZ3VpL01ha2VmaWxlCisrKyBiL2dpdC1ndWkvTWFrZWZpbGUKQEAgLTI1NCw3ICsyNTQsNyBAQAogCSAgYXV0b19ta2luZGV4IGxpYiAnKi50Y2wnIFwKIAl8ICQoVENMX1BBVEgpICQoUVVJRVRfMkRFVk5VTEwpOyB0aGVuIDogb2s7IFwKIAllbHNlIFwKLQkgZWNobyAxPiYyICIgICAgKiAkKFRDTF9QQVRIKSBmYWlsZWQ7IHVzaW5nIHVub3B0aW1pemVkIGxvYWRpbmciOyBcCisJIGVjaG8gPiYyICIgICAgKiAkKFRDTF9QQVRIKSBmYWlsZWQ7IHVzaW5nIHVub3B0aW1pemVkIGxvYWRpbmciOyBcCiAJIHJtIC1mICRAIDsgXAogCSBlY2hvICcjIEF1dG9nZW5lcmF0ZWQgYnkgZ2l0LWd1aSBNYWtlZmlsZScgPiRAICYmIFwKIAkgZWNobyA+PiRAICYmIFwKQEAgLTI3NCw4ICsyNzQsOCBAQAogR0lULUdVSS1WQVJTOiBGT1JDRQogCUBWQVJTPSckKFRSQUNLX1ZBUlMpJzsgXAogCWlmIHRlc3QgeCIkJFZBUlMiICE9IHgiYGNhdCAkQCAyPi9kZXYvbnVsbGAiIDsgdGhlbiBcCi0JCWVjaG8gMT4mMiAiICAgICogbmV3IGxvY2F0aW9ucyBvciBUY2wvVGsgaW50ZXJwcmV0ZXIiOyBcCi0JCWVjaG8gMT4kQCAiJCRWQVJTIjsgXAorCQllY2hvID4mMiAiICAgICogbmV3IGxvY2F0aW9ucyBvciBUY2wvVGsgaW50ZXJwcmV0ZXIiOyBcCisJCWVjaG8gPiRAICIkJFZBUlMiOyBcCiAJZmkKIAogaWZkZWYgR0lUR1VJX01BQ09TWEFQUApkaWZmIC0tZ2l0IGEvZ2l0LWd1aS9naXQtZ3VpLnNoIGIvZ2l0LWd1aS9naXQtZ3VpLnNoCmluZGV4IDg5ZjYzNmYuLjE1M2Y4NWQgMTAwNzU1Ci0tLSBhL2dpdC1ndWkvZ2l0LWd1aS5zaAorKysgYi9naXQtZ3VpL2dpdC1ndWkuc2gKQEAgLTEzNyw2ICsxMzcsMjAgQEAKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMKKyMjIE9uIE1hYywgYnJpbmcgdGhlIGN1cnJlbnQgV2lzaCBwcm9jZXNzIHdpbmRvdyB0byBmcm9udAorCitpZiB7W3RrIHdpbmRvd2luZ3N5c3RlbV0gZXEgImFxdWEifSB7CisJY2F0Y2ggeworCQlleGVjIG9zYXNjcmlwdCAtZSBbZm9ybWF0IHsKKwkJCXRlbGwgYXBwbGljYXRpb24gIlN5c3RlbSBFdmVudHMiCisJCQkJc2V0IGZyb250bW9zdCBvZiBwcm9jZXNzZXMgd2hvc2UgdW5peCBpZCBpcyAlZCB0byB0cnVlCisJCQllbmQgdGVsbAorCQl9IFtwaWRdXQorCX0KK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMKICMjIHJlYWQgb25seSBnbG9iYWxzCiAKIHNldCBfYXBwbmFtZSB7R2l0IEd1aX0KQEAgLTMwMDMsMTggKzMwMTcsMTEgQEAKIAlzZXQganVtcF9zcGVjIHt9CiAJc2V0IGlzX3BhdGggMAogCWZvcmVhY2ggYSAkYXJndiB7Ci0JCWlmIHtbZmlsZSBleGlzdHMgJGFdfSB7Ci0JCQlpZiB7JHBhdGggbmUge319IHVzYWdlCi0JCQlzZXQgcGF0aCBbbm9ybWFsaXplX3JlbHBhdGggJGFdCi0JCQlicmVhawotCQl9IGVsc2VpZiB7W2ZpbGUgZXhpc3RzICRfcHJlZml4JGFdfSB7Ci0JCQlpZiB7JHBhdGggbmUge319IHVzYWdlCi0JCQlzZXQgcGF0aCBbbm9ybWFsaXplX3JlbHBhdGggJF9wcmVmaXgkYV0KLQkJCWJyZWFrCi0JCX0KKwkJc2V0IHAgW2ZpbGUgam9pbiAkX3ByZWZpeCAkYV0KIAotCQlpZiB7JGlzX3BhdGh9IHsKKwkJaWYgeyRpc19wYXRoIHx8IFtmaWxlIGV4aXN0cyAkcF19IHsKIAkJCWlmIHskcGF0aCBuZSB7fX0gdXNhZ2UKKwkJCXNldCBwYXRoIFtub3JtYWxpemVfcmVscGF0aCAkcF0KIAkJCWJyZWFrCiAJCX0gZWxzZWlmIHskYSBlcSB7LS19fSB7CiAJCQlpZiB7JHBhdGggbmUge319IHsKZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbCBiL2dpdC1ndWkvbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbAppbmRleCA2NTdmN2Q1Li5lZTU4OTgxIDEwMDY0NAotLS0gYS9naXQtZ3VpL2xpYi9jaG9vc2VfcmVwb3NpdG9yeS50Y2wKKysrIGIvZ2l0LWd1aS9saWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsCkBAIC0yODYsNyArMjg2LDkgQEAKIAlkZXN0cm95ICR3X2JvZHkKIAlpZiB7IVt3aW5mbyBleGlzdHMgJHdfbmV4dF19IHsKIAkJJHtOU306OmJ1dHRvbiAkd19uZXh0IC1kZWZhdWx0IGFjdGl2ZQotCQlwYWNrICR3X25leHQgLXNpZGUgcmlnaHQgLXBhZHggNSAtYmVmb3JlICR3X3F1aXQKKwkJc2V0IHBvcyAtYmVmb3JlCisJCWlmIHtbdGsgd2luZG93aW5nc3lzdGVtXSBlcSAid2luMzIifSB7IHNldCBwb3MgLWFmdGVyIH0KKwkJcGFjayAkd19uZXh0IC1zaWRlIHJpZ2h0IC1wYWR4IDUgJHBvcyAkd19xdWl0CiAJfQogCV9kb18kYWN0aW9uICR0aGlzCiB9CmRpZmYgLS1naXQgYS9naXQtZ3VpL2xpYi9kaWZmLnRjbCBiL2dpdC1ndWkvbGliL2RpZmYudGNsCmluZGV4IGVjNDQwNTUuLjMwZDlhNzkgMTAwNjQ0Ci0tLSBhL2dpdC1ndWkvbGliL2RpZmYudGNsCisrKyBiL2dpdC1ndWkvbGliL2RpZmYudGNsCkBAIC03NjQsOCArNzY0LDE1IEBACiAJCQkJIyBjb250ZXh0IGxpbmUKIAkJCQlzZXQgbG4gWyR1aV9kaWZmIGdldCAkaV9sICRuZXh0X2xdCiAJCQkJc2V0IHBhdGNoICIkcGF0Y2gkcHJlX2NvbnRleHQkbG4iCi0JCQkJc2V0IG4gW2V4cHIgJG4rMV0KLQkJCQlzZXQgbSBbZXhwciAkbSsxXQorCQkJCSMgU2tpcCB0aGUgIlwgTm8gbmV3bGluZSBhdCBlbmQgb2YKKwkJCQkjIGZpbGUiLiBEZXBlbmRpbmcgb24gdGhlIGxvY2FsZSBzZXR0aW5nCisJCQkJIyB3ZSBkb24ndCBrbm93IHdoYXQgdGhpcyBsaW5lIGxvb2tzCisJCQkJIyBsaWtlIGV4YWN0bHkuIFRoZSBvbmx5IHRoaW5nIHdlIGRvCisJCQkJIyBrbm93IGlzIHRoYXQgaXQgc3RhcnRzIHdpdGggIlwgIgorCQkJCWlmIHshW3N0cmluZyBtYXRjaCB7XFwgKn0gJGxuXX0geworCQkJCQlzZXQgbiBbZXhwciAkbisxXQorCQkJCQlzZXQgbSBbZXhwciAkbSsxXQorCQkJCX0KIAkJCQlzZXQgcHJlX2NvbnRleHQge30KIAkJCX0gZWxzZWlmIHskYzEgZXEgJHRvX2NvbnRleHR9IHsKIAkJCQkjIHR1cm4gY2hhbmdlIGxpbmUgaW50byBjb250ZXh0IGxpbmUKZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL21lcmdldG9vbC50Y2wgYi9naXQtZ3VpL2xpYi9tZXJnZXRvb2wudGNsCmluZGV4IDNjOGU3M2IuLjEyMGJjNDAgMTAwNjQ0Ci0tLSBhL2dpdC1ndWkvbGliL21lcmdldG9vbC50Y2wKKysrIGIvZ2l0LWd1aS9saWIvbWVyZ2V0b29sLnRjbApAQCAtMTg5LDkgKzE4OSw5IEBACiAJfQogCWJjMyB7CiAJCWlmIHskYmFzZV9zdGFnZSBuZSB7fX0gewotCQkJc2V0IGNtZGxpbmUgW2xpc3QgIiRtZXJnZV90b29sX3BhdGgiICIkTE9DQUwiICIkUkVNT1RFIiAiJEJBU0UiIC1tZXJnZW91dHB1dD0iJE1FUkdFRCJdCisJCQlzZXQgY21kbGluZSBbbGlzdCAiJG1lcmdlX3Rvb2xfcGF0aCIgIiRMT0NBTCIgIiRSRU1PVEUiICIkQkFTRSIgIi1tZXJnZW91dHB1dD0kTUVSR0VEIl0KIAkJfSBlbHNlIHsKLQkJCXNldCBjbWRsaW5lIFtsaXN0ICIkbWVyZ2VfdG9vbF9wYXRoIiAiJExPQ0FMIiAiJFJFTU9URSIgLW1lcmdlb3V0cHV0PSIkTUVSR0VEIl0KKwkJCXNldCBjbWRsaW5lIFtsaXN0ICIkbWVyZ2VfdG9vbF9wYXRoIiAiJExPQ0FMIiAiJFJFTU9URSIgIi1tZXJnZW91dHB1dD0kTUVSR0VEIl0KIAkJfQogCX0KIAllY21lcmdlIHsKZGlmZiAtLWdpdCBhL2dpdC1ndWkvbGliL3JlbW90ZS50Y2wgYi9naXQtZ3VpL2xpYi9yZW1vdGUudGNsCmluZGV4IDVlNGU3ZjQuLjRlNWM3ODQgMTAwNjQ0Ci0tLSBhL2dpdC1ndWkvbGliL3JlbW90ZS50Y2wKKysrIGIvZ2l0LWd1aS9saWIvcmVtb3RlLnRjbApAQCAtMjQ1LDcgKzI0NSw4IEBACiAJc2V0IHBydW5lX20gJHJlbW90ZV9tLnBydW5lCiAJaWYgeyRoYXZlX3JlbW90ZSA+IDF9IHsKIAkJbWFrZV9zdXJlX3JlbW90ZV9zdWJtZW51ZXNfZXhpc3QgJHJlbW90ZV9tCi0JCWlmIHtbJGZldGNoX20gZW50cnljZ2V0IGVuZCAtbGFiZWxdIG5lICJBbGwifSB7CisJCWlmIHtbJGZldGNoX20gdHlwZSBlbmRdIGVxICJjb21tYW5kIiBcCisJCQkmJiBbJGZldGNoX20gZW50cnljZ2V0IGVuZCAtbGFiZWxdIG5lICJBbGwifSB7CiAKIAkJCSRmZXRjaF9tIGluc2VydCBlbmQgc2VwYXJhdG9yCiAJCQkkZmV0Y2hfbSBpbnNlcnQgZW5kIGNvbW1hbmQgXApAQCAtMjU5LDcgKzI2MCw4IEBACiAJCX0KIAl9IGVsc2UgewogCQlpZiB7W3dpbmZvIGV4aXN0cyAkZmV0Y2hfbV19IHsKLQkJCWlmIHtbJGZldGNoX20gZW50cnljZ2V0IGVuZCAtbGFiZWxdIGVxICJBbGwifSB7CisJCQlpZiB7WyRmZXRjaF9tIHR5cGUgZW5kXSBlcSAiY29tbWFuZCIgXAorCQkJCSYmIFskZmV0Y2hfbSBlbnRyeWNnZXQgZW5kIC1sYWJlbF0gZXEgIkFsbCJ9IHsKIAogCQkJCWRlbGV0ZV9mcm9tX21lbnUgJGZldGNoX20gZW5kCiAJCQkJZGVsZXRlX2Zyb21fbWVudSAkZmV0Y2hfbSBlbmQKZGlmZiAtLWdpdCBhL2dpdC1ndWkvcG8vZnIucG8gYi9naXQtZ3VpL3BvL2ZyLnBvCmluZGV4IDQwNDQxZGIuLjBhZmYxODYgMTAwNjQ0Ci0tLSBhL2dpdC1ndWkvcG8vZnIucG8KKysrIGIvZ2l0LWd1aS9wby9mci5wbwpAQCAtMTEzOSw3ICsxMTM5LDcgQEAKIAogIzogbGliL2Nob29zZV9yZXBvc2l0b3J5LnRjbDo1MTQKIG1zZ2lkICJGdWxsIENvcHkgKFNsb3dlciwgUmVkdW5kYW50IEJhY2t1cCkiCi1tc2dzdHIgIkNvcHkgY29tcGzDqHRlIChwbHVzIGxlbnQsIHNhdXZlZ2FyZGUgcmVkb25kYW50ZSkiCittc2dzdHIgIkNvcGllIGNvbXBsw6h0ZSAocGx1cyBsZW50LCBzYXV2ZWdhcmRlIHJlZG9uZGFudGUpIgogCiAjOiBsaWIvY2hvb3NlX3JlcG9zaXRvcnkudGNsOjUyMAogbXNnaWQgIlNoYXJlZCAoRmFzdGVzdCwgTm90IFJlY29tbWVuZGVkLCBObyBCYWNrdXApIgpkaWZmIC0tZ2l0IGEvZ2l0LW1lcmdldG9vbC0tbGliLnNoIGIvZ2l0LW1lcmdldG9vbC0tbGliLnNoCmluZGV4IGUzMzhiZTUuLmZlZWU2YTQgMTAwNjQ0Ci0tLSBhL2dpdC1tZXJnZXRvb2wtLWxpYi5zaAorKysgYi9naXQtbWVyZ2V0b29sLS1saWIuc2gKQEAgLTExNCwxMCArMTE0LDM3IEBACiAJdGVzdCAtbiAiJGNtZCIKIH0KIAorc2V0dXBfdXNlcl90b29sICgpIHsKKwltZXJnZV90b29sX2NtZD0kKGdldF9tZXJnZV90b29sX2NtZCAiJHRvb2wiKQorCXRlc3QgLW4gIiRtZXJnZV90b29sX2NtZCIgfHwgcmV0dXJuIDEKKworCWRpZmZfY21kICgpIHsKKwkJKCBldmFsICRtZXJnZV90b29sX2NtZCApCisJCXN0YXR1cz0kPworCQlyZXR1cm4gJHN0YXR1cworCX0KKworCW1lcmdlX2NtZCAoKSB7CisJCXRydXN0X2V4aXRfY29kZT0kKGdpdCBjb25maWcgLS1ib29sIFwKKwkJCSJtZXJnZXRvb2wuJDEudHJ1c3RFeGl0Q29kZSIgfHwgZWNobyBmYWxzZSkKKwkJaWYgdGVzdCAiJHRydXN0X2V4aXRfY29kZSIgPSAiZmFsc2UiCisJCXRoZW4KKwkJCXRvdWNoICIkQkFDS1VQIgorCQkJKCBldmFsICRtZXJnZV90b29sX2NtZCApCisJCQlzdGF0dXM9JD8KKwkJCWNoZWNrX3VuY2hhbmdlZAorCQllbHNlCisJCQkoIGV2YWwgJG1lcmdlX3Rvb2xfY21kICkKKwkJCXN0YXR1cz0kPworCQlmaQorCQlyZXR1cm4gJHN0YXR1cworCX0KK30KKwogc2V0dXBfdG9vbCAoKSB7CiAJdG9vbD0iJDEiCiAKLQkjIEZhbGxiYWNrIGRlZmluaXRpb25zLCB0byBiZSBvdmVycmlkZW4gYnkgdG9vbHMuCisJIyBGYWxsYmFjayBkZWZpbml0aW9ucywgdG8gYmUgb3ZlcnJpZGRlbiBieSB0b29scy4KIAljYW5fbWVyZ2UgKCkgewogCQlyZXR1cm4gMAogCX0KQEAgLTE0MiwxNSArMTY5LDE1IEBACiAKIAlpZiAhIHRlc3QgLWYgIiRNRVJHRV9UT09MU19ESVIvJHRvb2wiCiAJdGhlbgotCQkjIFVzZSBhIHNwZWNpYWwgcmV0dXJuIGNvZGUgZm9yIHRoaXMgY2FzZSBzaW5jZSB3ZSB3YW50IHRvCi0JCSMgc291cmNlICJkZWZhdWx0cyIgZXZlbiB3aGVuIGFuIGV4cGxpY2l0IHRvb2wgcGF0aCBpcwotCQkjIGNvbmZpZ3VyZWQgc2luY2UgdGhlIHVzZXIgY2FuIHVzZSB0aGF0IHRvIG92ZXJyaWRlIHRoZQotCQkjIGRlZmF1bHQgcGF0aCBpbiB0aGUgc2NyaXB0bGV0LgotCQlyZXR1cm4gMgorCQlzZXR1cF91c2VyX3Rvb2wKKwkJcmV0dXJuICQ/CiAJZmkKIAogCSMgTG9hZCB0aGUgcmVkZWZpbmVkIGZ1bmN0aW9ucwogCS4gIiRNRVJHRV9UT09MU19ESVIvJHRvb2wiCisJIyBOb3cgbGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbW1hbmQgZm9yIHRoZSB0b29sLiAgSWYKKwkjIHRoZXkgaGF2ZSBub3QgZG9uZSBzbyB0aGVuIHRoaXMgd2lsbCByZXR1cm4gMSB3aGljaCB3ZSBpZ25vcmUuCisJc2V0dXBfdXNlcl90b29sCiAKIAlpZiBtZXJnZV9tb2RlICYmICEgY2FuX21lcmdlCiAJdGhlbgpAQCAtMTg3LDIwICsyMTQsNyBAQAogCXN0YXR1cz0wCiAKIAkjIEJyaW5nIHRvb2wtc3BlY2lmaWMgZnVuY3Rpb25zIGludG8gc2NvcGUKLQlzZXR1cF90b29sICIkMSIKLQlleGl0Y29kZT0kPwotCWNhc2UgJGV4aXRjb2RlIGluCi0JMCkKLQkJOgotCQk7OwotCTIpCi0JCSMgVGhlIGNvbmZpZ3VyZWQgdG9vbCBpcyBub3QgYSBidWlsdC1pbiB0b29sLgotCQl0ZXN0IC1uICIkbWVyZ2VfdG9vbF9wYXRoIiB8fCByZXR1cm4gMQotCQk7OwotCSopCi0JCXJldHVybiAkZXhpdGNvZGUKLQkJOzsKLQllc2FjCisJc2V0dXBfdG9vbCAiJDEiIHx8IHJldHVybiAxCiAKIAlpZiBtZXJnZV9tb2RlCiAJdGhlbgpAQCAtMjEzLDM4ICsyMjcsMTIgQEAKIAogIyBSdW4gYSBlaXRoZXIgYSBjb25maWd1cmVkIG9yIGJ1aWx0LWluIGRpZmYgdG9vbAogcnVuX2RpZmZfY21kICgpIHsKLQltZXJnZV90b29sX2NtZD0kKGdldF9tZXJnZV90b29sX2NtZCAiJDEiKQotCWlmIHRlc3QgLW4gIiRtZXJnZV90b29sX2NtZCIKLQl0aGVuCi0JCSggZXZhbCAkbWVyZ2VfdG9vbF9jbWQgKQotCQlzdGF0dXM9JD8KLQkJcmV0dXJuICRzdGF0dXMKLQllbHNlCi0JCWRpZmZfY21kICIkMSIKLQlmaQorCWRpZmZfY21kICIkMSIKIH0KIAogIyBSdW4gYSBlaXRoZXIgYSBjb25maWd1cmVkIG9yIGJ1aWx0LWluIG1lcmdlIHRvb2wKIHJ1bl9tZXJnZV9jbWQgKCkgewotCW1lcmdlX3Rvb2xfY21kPSQoZ2V0X21lcmdlX3Rvb2xfY21kICIkMSIpCi0JaWYgdGVzdCAtbiAiJG1lcmdlX3Rvb2xfY21kIgotCXRoZW4KLQkJdHJ1c3RfZXhpdF9jb2RlPSQoZ2l0IGNvbmZpZyAtLWJvb2wgXAotCQkJIm1lcmdldG9vbC4kMS50cnVzdEV4aXRDb2RlIiB8fCBlY2hvIGZhbHNlKQotCQlpZiB0ZXN0ICIkdHJ1c3RfZXhpdF9jb2RlIiA9ICJmYWxzZSIKLQkJdGhlbgotCQkJdG91Y2ggIiRCQUNLVVAiCi0JCQkoIGV2YWwgJG1lcmdlX3Rvb2xfY21kICkKLQkJCXN0YXR1cz0kPwotCQkJY2hlY2tfdW5jaGFuZ2VkCi0JCWVsc2UKLQkJCSggZXZhbCAkbWVyZ2VfdG9vbF9jbWQgKQotCQkJc3RhdHVzPSQ/Ci0JCWZpCi0JCXJldHVybiAkc3RhdHVzCi0JZWxzZQotCQltZXJnZV9jbWQgIiQxIgotCWZpCisJbWVyZ2VfY21kICIkMSIKIH0KIAogbGlzdF9tZXJnZV90b29sX2NhbmRpZGF0ZXMgKCkgewpkaWZmIC0tZ2l0IGEvZ2l0LXA0LnB5IGIvZ2l0LXA0LnB5CmluZGV4IDkxMWJiY2UuLjMxZTcxZmYgMTAwNzU1Ci0tLSBhL2dpdC1wNC5weQorKysgYi9naXQtcDQucHkKQEAgLTE3ODYsNyArMTc4Niw3IEBACiAgICAgICAgICAgICBtaXNzaW5nR2l0VGFncyA9IGdpdFRhZ3MgLSBwNExhYmVscwogICAgICAgICAgICAgc2VsZi5leHBvcnRHaXRUYWdzKG1pc3NpbmdHaXRUYWdzKQogCi0gICAgICAgICMgZXhpdCB3aXRoIGVycm9yIHVubGVzcyBldmVyeXRoaW5nIGFwcGxpZWQgcGVyZmVjbHkKKyAgICAgICAgIyBleGl0IHdpdGggZXJyb3IgdW5sZXNzIGV2ZXJ5dGhpbmcgYXBwbGllZCBwZXJmZWN0bHkKICAgICAgICAgaWYgbGVuKGNvbW1pdHMpICE9IGxlbihhcHBsaWVkKToKICAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQogCkBAIC0zMTY4LDcgKzMxNjgsNyBAQAogICAgICAgICBpZiBvcy5zeXN0ZW0oImdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoIikgIT0gMDoKICAgICAgICAgICAgIGRpZSgiU29tZSBmaWxlcyBpbiB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGFyZSBtb2RpZmllZCBhbmQgZGlmZmVyZW50IHRoYW4gd2hhdCBpcyBpbiB5b3VyIGluZGV4LiBZb3UgY2FuIHVzZSBnaXQgdXBkYXRlLWluZGV4IDxmaWxlbmFtZT4gdG8gYnJpbmcgdGhlIGluZGV4IHVwLXRvLWRhdGUgb3Igc3Rhc2ggYXdheSBhbGwgeW91ciBjaGFuZ2VzIHdpdGggZ2l0IHN0YXNoLiIpOwogICAgICAgICBpZiBsZW4ocmVhZF9waXBlKCJnaXQgZGlmZi1pbmRleCBIRUFEIC0tIikpID4gMDoKLSAgICAgICAgICAgIGRpZSgiWW91IGhhdmUgdW5jb21taXRlZCBjaGFuZ2VzLiBQbGVhc2UgY29tbWl0IHRoZW0gYmVmb3JlIHJlYmFzaW5nIG9yIHN0YXNoIHRoZW0gYXdheSB3aXRoIGdpdCBzdGFzaC4iKTsKKyAgICAgICAgICAgIGRpZSgiWW91IGhhdmUgdW5jb21taXR0ZWQgY2hhbmdlcy4gUGxlYXNlIGNvbW1pdCB0aGVtIGJlZm9yZSByZWJhc2luZyBvciBzdGFzaCB0aGVtIGF3YXkgd2l0aCBnaXQgc3Rhc2guIik7CiAKICAgICAgICAgW3Vwc3RyZWFtLCBzZXR0aW5nc10gPSBmaW5kVXBzdHJlYW1CcmFuY2hQb2ludCgpCiAgICAgICAgIGlmIGxlbih1cHN0cmVhbSkgPT0gMDoKZGlmZiAtLWdpdCBhL2dpdC1wdWxsLnNoIGIvZ2l0LXB1bGwuc2gKaW5kZXggNjM4YWFiYi4uZjBkZjQxYyAxMDA3NTUKLS0tIGEvZ2l0LXB1bGwuc2gKKysrIGIvZ2l0LXB1bGwuc2gKQEAgLTUsNyArNSw3IEBACiAjIEZldGNoIG9uZSBvciBtb3JlIHJlbW90ZSByZWZzIGFuZCBtZXJnZSBpdC90aGVtIGludG8gdGhlIGN1cnJlbnQgSEVBRC4KIAogVVNBR0U9J1stbiB8IC0tbm8tc3RhdF0gWy0tW25vLV1jb21taXRdIFstLVtuby1dc3F1YXNoXSBbLS1bbm8tXWZmXSBbLXMgc3RyYXRlZ3ldLi4uIFs8ZmV0Y2gtb3B0aW9ucz5dIDxyZXBvPiA8aGVhZD4uLi4nCi1MT05HX1VTQUdFPSdGZXRjaCBvbmUgb3IgbW9yZSByZW1vdGUgcmVmcyBhbmQgbWVyZ2UgaXQvdGhlbSBpbnRvIHRoZSBjdXJyZW50IEhFQUQuJworTE9OR19VU0FHRT0nRmV0Y2ggb25lIG9yIG1vcmUgcmVtb3RlIHJlZnMgYW5kIGludGVncmF0ZSBpdC90aGVtIHdpdGggdGhlIGN1cnJlbnQgSEVBRC4nCiBTVUJESVJFQ1RPUllfT0s9WWVzCiBPUFRJT05TX1NQRUM9CiAuIGdpdC1zaC1zZXR1cApAQCAtMjY2LDEwICsyNjYsMTcgQEAKIAk7OwogZXNhYwogCisjIFB1bGxpbmcgaW50byB1bmJvcm4gYnJhbmNoOiBhIHNob3J0aGFuZCBmb3IgYnJhbmNoaW5nIG9mZgorIyBGRVRDSF9IRUFELCBmb3IgbGF6eSB0eXBlcnMuCiBpZiB0ZXN0IC16ICIkb3JpZ19oZWFkIgogdGhlbgotCWdpdCB1cGRhdGUtcmVmIC1tICJpbml0aWFsIHB1bGwiIEhFQUQgJG1lcmdlX2hlYWQgIiRjdXJyX2hlYWQiICYmCi0JZ2l0IHJlYWQtdHJlZSAtbSAtdSBIRUFEIHx8IGV4aXQgMQorCSMgVHdvLXdheSBtZXJnZTogd2UgY2xhaW0gdGhlIGluZGV4IGlzIGJhc2VkIG9uIGFuIGVtcHR5IHRyZWUsCisJIyBhbmQgdHJ5IHRvIGZhc3QtZm9yd2FyZCB0byBIRUFELiAgVGhpcyBlbnN1cmVzIHdlIHdpbGwgbm90CisJIyBsb3NlIGluZGV4L3dvcmt0cmVlIGNoYW5nZXMgdGhhdCB0aGUgdXNlciBhbHJlYWR5IG1hZGUgb24KKwkjIHRoZSB1bmJvcm4gYnJhbmNoLgorCWVtcHR5X3RyZWU9NGI4MjVkYzY0MmNiNmViOWEwNjBlNTRiZjhkNjkyODhmYmVlNDkwNAorCWdpdCByZWFkLXRyZWUgLW0gLXUgJGVtcHR5X3RyZWUgJG1lcmdlX2hlYWQgJiYKKwlnaXQgdXBkYXRlLXJlZiAtbSAiaW5pdGlhbCBwdWxsIiBIRUFEICRtZXJnZV9oZWFkICIkY3Vycl9oZWFkIgogCWV4aXQKIGZpCiAKZGlmZiAtLWdpdCBhL2dpdC1yZWJhc2UtLWludGVyYWN0aXZlLnNoIGIvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKaW5kZXggZjk1M2Q4ZC4uODNkNmQ0NiAxMDA2NDQKLS0tIGEvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKKysrIGIvZ2l0LXJlYmFzZS0taW50ZXJhY3RpdmUuc2gKQEAgLTgwLDYgKzgwLDE4IEBACiByZXdyaXR0ZW5fbGlzdD0iJHN0YXRlX2RpciIvcmV3cml0dGVuLWxpc3QKIHJld3JpdHRlbl9wZW5kaW5nPSIkc3RhdGVfZGlyIi9yZXdyaXR0ZW4tcGVuZGluZwogCitzdHJhdGVneV9hcmdzPQoraWYgdGVzdCAtbiAiJGRvX21lcmdlIgordGhlbgorCXN0cmF0ZWd5X2FyZ3M9JHtzdHJhdGVneTorLS1zdHJhdGVneT0kc3RyYXRlZ3l9CisJZXZhbCAnCisJCWZvciBzdHJhdGVneV9vcHQgaW4gJyIkc3RyYXRlZ3lfb3B0cyInCisJCWRvCisJCQlzdHJhdGVneV9hcmdzPSIkc3RyYXRlZ3lfYXJncyAtWCQoZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlICIke3N0cmF0ZWd5X29wdCMtLX0iKSIKKwkJZG9uZQorCScKK2ZpCisKIEdJVF9DSEVSUllfUElDS19IRUxQPSIkcmVzb2x2ZW1zZyIKIGV4cG9ydCBHSVRfQ0hFUlJZX1BJQ0tfSEVMUAogCkBAIC0yMzksNyArMjUxLDcgQEAKIAogCXRlc3QgLWQgIiRyZXdyaXR0ZW4iICYmCiAJCXBpY2tfb25lX3ByZXNlcnZpbmdfbWVyZ2VzICIkQCIgJiYgcmV0dXJuCi0Jb3V0cHV0IGdpdCBjaGVycnktcGljayAkZW1wdHlfYXJncyAkZmYgIiRAIgorCW91dHB1dCBldmFsIGdpdCBjaGVycnktcGljayAiJHN0cmF0ZWd5X2FyZ3MiICRlbXB0eV9hcmdzICRmZiAiJEAiCiB9CiAKIHBpY2tfb25lX3ByZXNlcnZpbmdfbWVyZ2VzICgpIHsKQEAgLTM0MCw5ICszNTIsOCBAQAogCQkJbXNnX2NvbnRlbnQ9IiQoY29tbWl0X21lc3NhZ2UgJHNoYTEpIgogCQkJIyBObyBwb2ludCBpbiBtZXJnaW5nIHRoZSBmaXJzdCBwYXJlbnQsIHRoYXQncyBIRUFECiAJCQluZXdfcGFyZW50cz0ke25ld19wYXJlbnRzIyAkZmlyc3RfcGFyZW50fQotCQkJaWYgISBkb193aXRoX2F1dGhvciBvdXRwdXQgXAotCQkJCWdpdCBtZXJnZSAtLW5vLWZmICR7c3RyYXRlZ3k6Ky1zICRzdHJhdGVneX0gLW0gXAotCQkJCQkiJG1zZ19jb250ZW50IiAkbmV3X3BhcmVudHMKKwkJCWlmICEgZG9fd2l0aF9hdXRob3Igb3V0cHV0IGV2YWwgXAorCQkJJ2dpdCBtZXJnZSAtLW5vLWZmICRzdHJhdGVneV9hcmdzIC1tICIkbXNnX2NvbnRlbnQiICRuZXdfcGFyZW50cycKIAkJCXRoZW4KIAkJCQlwcmludGYgIiVzXG4iICIkbXNnX2NvbnRlbnQiID4gIiRHSVRfRElSIi9NRVJHRV9NU0cKIAkJCQlkaWVfd2l0aF9wYXRjaCAkc2hhMSAiRXJyb3IgcmVkb2luZyBtZXJnZSAkc2hhMSIKQEAgLTM1MCw3ICszNjEsNyBAQAogCQkJZWNobyAiJHNoYTEgJChnaXQgcmV2LXBhcnNlIEhFQUReMCkiID4+ICIkcmV3cml0dGVuX2xpc3QiCiAJCQk7OwogCQkqKQotCQkJb3V0cHV0IGdpdCBjaGVycnktcGljayAiJEAiIHx8CisJCQlvdXRwdXQgZXZhbCBnaXQgY2hlcnJ5LXBpY2sgIiRzdHJhdGVneV9hcmdzIiAiJEAiIHx8CiAJCQkJZGllX3dpdGhfcGF0Y2ggJHNoYTEgIkNvdWxkIG5vdCBwaWNrICRzaGExIgogCQkJOzsKIAkJZXNhYwpAQCAtNjg5LDggKzcwMCwyMiBAQAogCQljYXNlICIkbWVzc2FnZSIgaW4KIAkJInNxdWFzaCEgIip8ImZpeHVwISAiKikKIAkJCWFjdGlvbj0iJHttZXNzYWdlJSUhKn0iCi0JCQlyZXN0PSIke21lc3NhZ2UjKiEgfSIKLQkJCWVjaG8gIiRzaGExICRhY3Rpb24gJHJlc3QiCisJCQlyZXN0PSRtZXNzYWdlCisJCQlwcmVmaXg9CisJCQkjIHNraXAgYWxsIHNxdWFzaCEgb3IgZml4dXAhIChidXQgc2F2ZSBmb3IgbGF0ZXIpCisJCQl3aGlsZSA6CisJCQlkbworCQkJCWNhc2UgIiRyZXN0IiBpbgorCQkJCSJzcXVhc2ghICIqfCJmaXh1cCEgIiopCisJCQkJCXByZWZpeD0iJHByZWZpeCR7cmVzdCUlISp9LCIKKwkJCQkJcmVzdD0iJHtyZXN0IyohIH0iCisJCQkJCTs7CisJCQkJKikKKwkJCQkJYnJlYWsKKwkJCQkJOzsKKwkJCQllc2FjCisJCQlkb25lCisJCQllY2hvICIkc2hhMSAkYWN0aW9uICRwcmVmaXggJHJlc3QiCiAJCQkjIGlmIGl0J3MgYSBzaW5nbGUgd29yZCwgdHJ5IHRvIHJlc29sdmUgdG8gYSBmdWxsIHNoYTEgYW5kCiAJCQkjIGVtaXQgYSBzZWNvbmQgY29weS4gVGhpcyBhbGxvd3MgdXMgdG8gbWF0Y2ggb24gYm90aCBtZXNzYWdlCiAJCQkjIGFuZCBvbiBzaGExIHByZWZpeApAQCAtNjk5LDcgKzcyNCw3IEBACiAJCQkJaWYgdGVzdCAtbiAiJGZ1bGxzaGEiOyB0aGVuCiAJCQkJCSMgcHJlZml4IHRoZSBhY3Rpb24gdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBsaW5lIGFzCiAJCQkJCSMgaW50ZW5kZWQgZm9yIGZ1bGwgc2hhMSBtYXRjaAotCQkJCQllY2hvICIkc2hhMSArJGFjdGlvbiAkZnVsbHNoYSIKKwkJCQkJZWNobyAiJHNoYTEgKyRhY3Rpb24gJHByZWZpeCAkZnVsbHNoYSIKIAkJCQlmaQogCQkJZmkKIAkJZXNhYwpAQCAtNzE0LDcgKzczOSw3IEBACiAJCWVzYWMKIAkJcHJpbnRmICclc1xuJyAiJHBpY2sgJHNoYTEgJG1lc3NhZ2UiCiAJCXVzZWQ9IiR1c2VkJHNoYTEgIgotCQl3aGlsZSByZWFkIC1yIHNxdWFzaCBhY3Rpb24gbXNnX2NvbnRlbnQKKwkJd2hpbGUgcmVhZCAtciBzcXVhc2ggYWN0aW9uIG1zZ19wcmVmaXggbXNnX2NvbnRlbnQKIAkJZG8KIAkJCWNhc2UgIiAkdXNlZCIgaW4KIAkJCSoiICRzcXVhc2ggIiopIGNvbnRpbnVlIDs7CkBAIC03MzAsNyArNzU1LDggQEAKIAkJCQljYXNlICIkbWVzc2FnZSIgaW4gIiRtc2dfY29udGVudCIqKSBlbWl0PTE7OyBlc2FjIDs7CiAJCQllc2FjCiAJCQlpZiB0ZXN0ICRlbWl0ID0gMTsgdGhlbgotCQkJCXByaW50ZiAnJXNcbicgIiRhY3Rpb24gJHNxdWFzaCAkYWN0aW9uISAkbXNnX2NvbnRlbnQiCisJCQkJcmVhbF9wcmVmaXg9JChlY2hvICIkbXNnX3ByZWZpeCIgfCBzZWQgInMvLC8hIC9nIikKKwkJCQlwcmludGYgJyVzXG4nICIkYWN0aW9uICRzcXVhc2ggJHtyZWFsX3ByZWZpeH0kbXNnX2NvbnRlbnQiCiAJCQkJdXNlZD0iJHVzZWQkc3F1YXNoICIKIAkJCWZpCiAJCWRvbmUgPCIkMS5zcSIKQEAgLTgzOCw4ICs4NjQsMTEgQEAKIAogaWYgdGVzdCAhIC16ICIkc3dpdGNoX3RvIgogdGhlbgorCUdJVF9SRUZMT0dfQUNUSU9OPSIkR0lUX1JFRkxPR19BQ1RJT046IGNoZWNrb3V0ICRzd2l0Y2hfdG8iCiAJb3V0cHV0IGdpdCBjaGVja291dCAiJHN3aXRjaF90byIgLS0gfHwKLQkJZGllICJDb3VsZCBub3QgY2hlY2tvdXQgJHN3aXRjaF90byIKKwlkaWUgIkNvdWxkIG5vdCBjaGVja291dCAkc3dpdGNoX3RvIgorCisJY29tbWVudF9mb3JfcmVmbG9nIHN0YXJ0CiBmaQogCiBvcmlnX2hlYWQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpIHx8IGRpZSAiTm8gSEVBRD8iCkBAIC05ODEsNiArMTAxMCw3IEBACiAKIHRlc3QgLWQgIiRyZXdyaXR0ZW4iIHx8IHRlc3QgLW4gIiRmb3JjZV9yZWJhc2UiIHx8IHNraXBfdW5uZWNlc3NhcnlfcGlja3MKIAorR0lUX1JFRkxPR19BQ1RJT049IiRHSVRfUkVGTE9HX0FDVElPTjogY2hlY2tvdXQgJG9udG9fbmFtZSIKIG91dHB1dCBnaXQgY2hlY2tvdXQgJG9udG8gfHwgZGllX2Fib3J0ICJjb3VsZCBub3QgZGV0YWNoIEhFQUQiCiBnaXQgdXBkYXRlLXJlZiBPUklHX0hFQUQgJG9yaWdfaGVhZAogZG9fcmVzdApkaWZmIC0tZ2l0IGEvZ2l0LXJlYmFzZS0tbWVyZ2Uuc2ggYi9naXQtcmViYXNlLS1tZXJnZS5zaAppbmRleCBiMTBmMmNmLi4xNmQxODE3IDEwMDY0NAotLS0gYS9naXQtcmViYXNlLS1tZXJnZS5zaAorKysgYi9naXQtcmViYXNlLS1tZXJnZS5zaApAQCAtOTYsNyArOTYsNiBAQAogCQkJIiRHSVRfRElSIi9ob29rcy9wb3N0LXJld3JpdGUgcmViYXNlIDwiJHN0YXRlX2RpciIvcmV3cml0dGVuCiAJCWZpCiAJZmkKLQlybSAtciAiJHN0YXRlX2RpciIKIAlzYXkgQWxsIGRvbmUuCiB9CiAKQEAgLTExMCw3ICsxMDksNyBAQAogCQljb250aW51ZV9tZXJnZQogCWRvbmUKIAlmaW5pc2hfcmJfbWVyZ2UKLQlleGl0CisJcmV0dXJuCiAJOzsKIHNraXApCiAJcmVhZF9zdGF0ZQpAQCAtMTIyLDcgKzEyMSw3IEBACiAJCWNvbnRpbnVlX21lcmdlCiAJZG9uZQogCWZpbmlzaF9yYl9tZXJnZQotCWV4aXQKKwlyZXR1cm4KIAk7OwogZXNhYwogCmRpZmYgLS1naXQgYS9naXQtcmViYXNlLnNoIGIvZ2l0LXJlYmFzZS5zaAppbmRleCA3YWI2NDM0Li4yMjY3NTJmIDEwMDc1NQotLS0gYS9naXQtcmViYXNlLnNoCisrKyBiL2dpdC1yZWJhc2Uuc2gKQEAgLTEzLDYgKzEzLDcgQEAKICBBdmFpbGFibGUgb3B0aW9ucyBhcmUKIHYsdmVyYm9zZSEgICAgICAgICBkaXNwbGF5IGEgZGlmZnN0YXQgb2Ygd2hhdCBjaGFuZ2VkIHVwc3RyZWFtCiBxLHF1aWV0ISAgICAgICAgICAgYmUgcXVpZXQuIGltcGxpZXMgLS1uby1zdGF0CithdXRvc3Rhc2ghICAgICAgICAgYXV0b21hdGljYWxseSBzdGFzaC9zdGFzaCBwb3AgYmVmb3JlIGFuZCBhZnRlcgogb250bz0hICAgICAgICAgICAgIHJlYmFzZSBvbnRvIGdpdmVuIGJyYW5jaCBpbnN0ZWFkIG9mIHVwc3RyZWFtCiBwLHByZXNlcnZlLW1lcmdlcyEgdHJ5IHRvIHJlY3JlYXRlIG1lcmdlcyBpbnN0ZWFkIG9mIGlnbm9yaW5nIHRoZW0KIHMsc3RyYXRlZ3k9ISAgICAgICB1c2UgdGhlIGdpdmVuIG1lcmdlIHN0cmF0ZWd5CkBAIC02NCw2ICs2NSw3IEBACiB2ZXJib3NlPQogZGlmZnN0YXQ9CiB0ZXN0ICIkKGdpdCBjb25maWcgLS1ib29sIHJlYmFzZS5zdGF0KSIgPSB0cnVlICYmIGRpZmZzdGF0PXQKK2F1dG9zdGFzaD0iJChnaXQgY29uZmlnIC0tYm9vbCByZWJhc2UuYXV0b3N0YXNoIHx8IGVjaG8gZmFsc2UpIgogZ2l0X2FtX29wdD0KIHJlYmFzZV9yb290PQogZm9yY2VfcmViYXNlPQpAQCAtODIsNiArODQsOCBAQAogdGVzdCAiJChnaXQgY29uZmlnIC0tYm9vbCByZWJhc2UuYXV0b3NxdWFzaCkiID0gInRydWUiICYmIGF1dG9zcXVhc2g9dAogCiByZWFkX2Jhc2ljX3N0YXRlICgpIHsKKwl0ZXN0IC1mICIkc3RhdGVfZGlyL2hlYWQtbmFtZSIgJiYKKwl0ZXN0IC1mICIkc3RhdGVfZGlyL29udG8iICYmCiAJaGVhZF9uYW1lPSQoY2F0ICIkc3RhdGVfZGlyIi9oZWFkLW5hbWUpICYmCiAJb250bz0kKGNhdCAiJHN0YXRlX2RpciIvb250bykgJiYKIAkjIFdlIGFsd2F5cyB3cml0ZSB0byBvcmlnLWhlYWQsIGJ1dCBpbnRlcmFjdGl2ZSByZWJhc2UgdXNlZCB0byB3cml0ZSB0bwpAQCAtMTQzLDYgKzE0NywyNiBAQAogCWVzYWMKIH0KIAorZmluaXNoX3JlYmFzZSAoKSB7CisJaWYgdGVzdCAtZiAiJHN0YXRlX2Rpci9hdXRvc3Rhc2giCisJdGhlbgorCQlzdGFzaF9zaGExPSQoY2F0ICIkc3RhdGVfZGlyL2F1dG9zdGFzaCIpCisJCWlmIGdpdCBzdGFzaCBhcHBseSAkc3Rhc2hfc2hhMSAyPiYxID4vZGV2L251bGwKKwkJdGhlbgorCQkJZWNobyAiJChnZXR0ZXh0ICdBcHBsaWVkIGF1dG9zdGFzaC4nKSIKKwkJZWxzZQorCQkJZ2l0IHN0YXNoIHN0b3JlIC1tICJhdXRvc3Rhc2giIC1xICRzdGFzaF9zaGExIHx8CisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJDYW5ub3Qgc3RvcmUgXCRzdGFzaF9zaGExIikiCisJCQlnZXR0ZXh0ICdBcHBseWluZyBhdXRvc3Rhc2ggcmVzdWx0ZWQgaW4gY29uZmxpY3RzLgorWW91ciBjaGFuZ2VzIGFyZSBzYWZlIGluIHRoZSBzdGFzaC4KK1lvdSBjYW4gcnVuICJnaXQgc3Rhc2ggcG9wIiBvciAiZ2l0IHN0YXNoIGRyb3AiIGF0IGFueSB0aW1lLgorJworCQlmaQorCWZpCisJZ2l0IGdjIC0tYXV0byAmJgorCXJtIC1yZiAiJHN0YXRlX2RpciIKK30KKwogcnVuX3NwZWNpZmljX3JlYmFzZV9pbnRlcm5hbCAoKSB7CiAJaWYgWyAiJGludGVyYWN0aXZlX3JlYmFzZSIgPSBpbXBsaWVkIF07IHRoZW4KIAkJR0lUX0VESVRPUj06CkBAIC0xNjIsOCArMTg2LDcgQEAKIAlyZXQ9JD8KIAlpZiB0ZXN0ICRyZXQgLWVxIDAKIAl0aGVuCi0JCWdpdCBnYyAtLWF1dG8gJiYKLQkJcm0gLXJmICIkc3RhdGVfZGlyIgorCQlmaW5pc2hfcmViYXNlCiAJZmkKIAlleGl0ICRyZXQKIH0KQEAgLTI1Nyw2ICsyODAsOSBAQAogCS0tc3RhdCkKIAkJZGlmZnN0YXQ9dAogCQk7OworCS0tYXV0b3N0YXNoKQorCQlhdXRvc3Rhc2g9dHJ1ZQorCQk7OwogCS12KQogCQl2ZXJib3NlPXQKIAkJZGlmZnN0YXQ9dApAQCAtMzU3LDcgKzM4Myw3IEBACiAJCTs7CiAJZXNhYwogCW91dHB1dCBnaXQgcmVzZXQgLS1oYXJkICRvcmlnX2hlYWQKLQlybSAtciAiJHN0YXRlX2RpciIKKwlmaW5pc2hfcmViYXNlCiAJZXhpdAogCTs7CiBlZGl0LXRvZG8pCkBAIC00MTYsNyArNDQyLDcgQEAKIAkJc2hpZnQKIAkJOzsKIAllc2FjCi0JdXBzdHJlYW09YGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiR7dXBzdHJlYW1fbmFtZX1eMCJgIHx8CisJdXBzdHJlYW09JChwZWVsX2NvbW1pdHRpc2ggIiR7dXBzdHJlYW1fbmFtZX0iKSB8fAogCWRpZSAiJChldmFsX2dldHRleHQgImludmFsaWQgdXBzdHJlYW0gXCR1cHN0cmVhbV9uYW1lIikiCiAJdXBzdHJlYW1fYXJnPSIkdXBzdHJlYW1fbmFtZSIKIGVsc2UKQEAgLTQ1Miw3ICs0NzgsNyBAQAogCWZpCiAJOzsKICopCi0Jb250bz0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiR7b250b19uYW1lfV4wIikgfHwKKwlvbnRvPSQocGVlbF9jb21taXR0aXNoICIkb250b19uYW1lIikgfHwKIAlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJEb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIGNvbW1pdDogXCRvbnRvX25hbWUiKSIKIAk7OwogZXNhYwpAQCAtNDk2LDYgKzUyMiwxOCBAQAogCTs7CiBlc2FjCiAKK2lmIHRlc3QgIiRhdXRvc3Rhc2giID0gdHJ1ZSAmJiAhIChyZXF1aXJlX2NsZWFuX3dvcmtfdHJlZSkgMj4vZGV2L251bGwKK3RoZW4KKwlzdGFzaF9zaGExPSQoZ2l0IHN0YXNoIGNyZWF0ZSAiYXV0b3N0YXNoIikgfHwKKwlkaWUgIiQoZ2V0dGV4dCAnQ2Fubm90IGF1dG9zdGFzaCcpIgorCisJbWtkaXIgLXAgIiRzdGF0ZV9kaXIiICYmCisJZWNobyAkc3Rhc2hfc2hhMSA+IiRzdGF0ZV9kaXIvYXV0b3N0YXNoIiAmJgorCXN0YXNoX2FiYnJldj0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCAkc3Rhc2hfc2hhMSkgJiYKKwllY2hvICIkKGV2YWxfZ2V0dGV4dCAnQ3JlYXRlZCBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYnKSIgJiYKKwlnaXQgcmVzZXQgLS1oYXJkCitmaQorCiByZXF1aXJlX2NsZWFuX3dvcmtfdHJlZSAicmViYXNlIiAiJChnZXR0ZXh0ICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIikiCiAKICMgTm93IHdlIGFyZSByZWJhc2luZyBjb21taXRzICR1cHN0cmVhbS4uJG9yaWdfaGVhZCAob3Igd2l0aCAtLXJvb3QsCkBAIC01MTMsOCArNTUxLDExIEBACiAJaWYgdGVzdCAteiAiJGZvcmNlX3JlYmFzZSIKIAl0aGVuCiAJCSMgTGF6aWx5IHN3aXRjaCB0byB0aGUgdGFyZ2V0IGJyYW5jaCBpZiBuZWVkZWQuLi4KLQkJdGVzdCAteiAiJHN3aXRjaF90byIgfHwgZ2l0IGNoZWNrb3V0ICIkc3dpdGNoX3RvIiAtLQorCQl0ZXN0IC16ICIkc3dpdGNoX3RvIiB8fAorCQlHSVRfUkVGTE9HX0FDVElPTj0iJEdJVF9SRUZMT0dfQUNUSU9OOiBjaGVja291dCAkc3dpdGNoX3RvIiBcCisJCQlnaXQgY2hlY2tvdXQgIiRzd2l0Y2hfdG8iIC0tCiAJCXNheSAiJChldmFsX2dldHRleHQgIkN1cnJlbnQgYnJhbmNoIFwkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iKSIKKwkJZmluaXNoX3JlYmFzZQogCQlleGl0IDAKIAllbHNlCiAJCXNheSAiJChldmFsX2dldHRleHQgIkN1cnJlbnQgYnJhbmNoIFwkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZC4iKSIKQEAgLTUzOCw3ICs1NzksOSBAQAogCiAjIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQogc2F5ICIkKGdldHRleHQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIpIgotZ2l0IGNoZWNrb3V0IC1xICIkb250b14wIiB8fCBkaWUgImNvdWxkIG5vdCBkZXRhY2ggSEVBRCIKKworR0lUX1JFRkxPR19BQ1RJT049IiRHSVRfUkVGTE9HX0FDVElPTjogY2hlY2tvdXQgJG9udG9fbmFtZSIgXAorCWdpdCBjaGVja291dCAtcSAiJG9udG9eMCIgfHwgZGllICJjb3VsZCBub3QgZGV0YWNoIEhFQUQiCiBnaXQgdXBkYXRlLXJlZiBPUklHX0hFQUQgJG9yaWdfaGVhZAogCiAjIElmIHRoZSAkb250byBpcyBhIHByb3BlciBkZXNjZW5kYW50IG9mIHRoZSB0aXAgb2YgdGhlIGJyYW5jaCwgdGhlbgpAQCAtNTQ3LDYgKzU5MCw3IEBACiB0aGVuCiAJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiRmFzdC1mb3J3YXJkZWQgXCRicmFuY2hfbmFtZSB0byBcJG9udG9fbmFtZS4iKSIKIAltb3ZlX3RvX29yaWdpbmFsX2JyYW5jaAorCWZpbmlzaF9yZWJhc2UKIAlleGl0IDAKIGZpCiAKZGlmZiAtLWdpdCBhL2dpdC1yZW1vdGUtdGVzdGdpdCBiL2dpdC1yZW1vdGUtdGVzdGdpdApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZTdlZDNhMy4uMDAwMDAwMAotLS0gYS9naXQtcmVtb3RlLXRlc3RnaXQKKysrIC9kZXYvbnVsbApAQCAtMSw5MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBiYXNoCi0jIENvcHlyaWdodCAoYykgMjAxMiBGZWxpcGUgQ29udHJlcmFzCi0KLWFsaWFzPSQxCi11cmw9JDIKLQotZGlyPSIkR0lUX0RJUi90ZXN0Z2l0LyRhbGlhcyIKLXByZWZpeD0icmVmcy90ZXN0Z2l0LyRhbGlhcyIKLQotZGVmYXVsdF9yZWZzcGVjPSJyZWZzL2hlYWRzLyo6JHtwcmVmaXh9L2hlYWRzLyoiCi0KLXJlZnNwZWM9IiR7R0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUMtJGRlZmF1bHRfcmVmc3BlY30iCi0KLXRlc3QgLXogIiRyZWZzcGVjIiAmJiBwcmVmaXg9InJlZnMiCi0KLWV4cG9ydCBHSVRfRElSPSIkdXJsLy5naXQiCi0KLW1rZGlyIC1wICIkZGlyIgotCi1pZiB0ZXN0IC16ICIkR0lUX1JFTU9URV9URVNUR0lUX05PX01BUktTIgotdGhlbgotCWdpdG1hcmtzPSIkZGlyL2dpdC5tYXJrcyIKLQl0ZXN0Z2l0bWFya3M9IiRkaXIvdGVzdGdpdC5tYXJrcyIKLQl0ZXN0IC1lICIkZ2l0bWFya3MiIHx8ID4iJGdpdG1hcmtzIgotCXRlc3QgLWUgIiR0ZXN0Z2l0bWFya3MiIHx8ID4iJHRlc3RnaXRtYXJrcyIKLQl0ZXN0Z2l0bWFya3NfYXJncz0oICItLSJ7aW1wb3J0LGV4cG9ydH0iLW1hcmtzPSR0ZXN0Z2l0bWFya3MiICkKLWZpCi0KLXdoaWxlIHJlYWQgbGluZQotZG8KLQljYXNlICRsaW5lIGluCi0JY2FwYWJpbGl0aWVzKQotCQllY2hvICdpbXBvcnQnCi0JCWVjaG8gJ2V4cG9ydCcKLQkJdGVzdCAtbiAiJHJlZnNwZWMiICYmIGVjaG8gInJlZnNwZWMgJHJlZnNwZWMiCi0JCWlmIHRlc3QgLW4gIiRnaXRtYXJrcyIKLQkJdGhlbgotCQkJZWNobyAiKmltcG9ydC1tYXJrcyAkZ2l0bWFya3MiCi0JCQllY2hvICIqZXhwb3J0LW1hcmtzICRnaXRtYXJrcyIKLQkJZmkKLQkJdGVzdCAtbiAiJEdJVF9SRU1PVEVfVEVTVEdJVF9TSUdORURfVEFHUyIgJiYgZWNobyAic2lnbmVkLXRhZ3MiCi0JCWVjaG8KLQkJOzsKLQlsaXN0KQotCQlnaXQgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSc/ICUocmVmbmFtZSknICdyZWZzL2hlYWRzLycKLQkJaGVhZD0kKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkKLQkJZWNobyAiQCRoZWFkIEhFQUQiCi0JCWVjaG8KLQkJOzsKLQlpbXBvcnQqKQotCQkjIHJlYWQgYWxsIGltcG9ydCBsaW5lcwotCQl3aGlsZSB0cnVlCi0JCWRvCi0JCQlyZWY9IiR7bGluZSMqIH0iCi0JCQlyZWZzPSIkcmVmcyAkcmVmIgotCQkJcmVhZCBsaW5lCi0JCQl0ZXN0ICIke2xpbmUlJSAqfSIgIT0gImltcG9ydCIgJiYgYnJlYWsKLQkJZG9uZQotCi0JCWlmIHRlc3QgLW4gIiRnaXRtYXJrcyIKLQkJdGhlbgotCQkJZWNobyAiZmVhdHVyZSBpbXBvcnQtbWFya3M9JGdpdG1hcmtzIgotCQkJZWNobyAiZmVhdHVyZSBleHBvcnQtbWFya3M9JGdpdG1hcmtzIgotCQlmaQotCQllY2hvICJmZWF0dXJlIGRvbmUiCi0JCWdpdCBmYXN0LWV4cG9ydCAiJHt0ZXN0Z2l0bWFya3NfYXJnc1tAXX0iICRyZWZzIHwKLQkJc2VkIC1lICJzI3JlZnMvaGVhZHMvIyR7cHJlZml4fS9oZWFkcy8jZyIKLQkJZWNobyAiZG9uZSIKLQkJOzsKLQlleHBvcnQpCi0JCWJlZm9yZT0kKGdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9JyUocmVmbmFtZSkgJShvYmplY3RuYW1lKScpCi0KLQkJZ2l0IGZhc3QtaW1wb3J0ICIke3Rlc3RnaXRtYXJrc19hcmdzW0BdfSIgLS1xdWlldAotCi0JCWFmdGVyPSQoZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0nJShyZWZuYW1lKSAlKG9iamVjdG5hbWUpJykKLQotCQkjIGZpZ3VyZSBvdXQgd2hpY2ggcmVmcyB3ZXJlIHVwZGF0ZWQKLQkJam9pbiAtZSAwIC1vICcwIDEuMiAyLjInIC1hIDIgPChlY2hvICIkYmVmb3JlIikgPChlY2hvICIkYWZ0ZXIiKSB8Ci0JCXdoaWxlIHJlYWQgcmVmIGEgYgotCQlkbwotCQkJdGVzdCAkYSA9PSAkYiAmJiBjb250aW51ZQotCQkJZWNobyAib2sgJHJlZiIKLQkJZG9uZQotCi0JCWVjaG8KLQkJOzsKLQknJykKLQkJZXhpdAotCQk7OwotCWVzYWMKLWRvbmUKZGlmZiAtLWdpdCBhL2dpdC1yZW1vdGUtdGVzdGdpdC5zaCBiL2dpdC1yZW1vdGUtdGVzdGdpdC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTA5MDcwCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0LXJlbW90ZS10ZXN0Z2l0LnNoCkBAIC0wLDAgKzEsMTIxIEBACisjIS9iaW4vc2gKKyMgQ29weXJpZ2h0IChjKSAyMDEyIEZlbGlwZSBDb250cmVyYXMKKworYWxpYXM9JDEKK3VybD0kMgorCitkaXI9IiRHSVRfRElSL3Rlc3RnaXQvJGFsaWFzIgorcHJlZml4PSJyZWZzL3Rlc3RnaXQvJGFsaWFzIgorCitkZWZhdWx0X3JlZnNwZWM9InJlZnMvaGVhZHMvKjoke3ByZWZpeH0vaGVhZHMvKiIKKworcmVmc3BlYz0iJHtHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQy0kZGVmYXVsdF9yZWZzcGVjfSIKKwordGVzdCAteiAiJHJlZnNwZWMiICYmIHByZWZpeD0icmVmcyIKKworZXhwb3J0IEdJVF9ESVI9IiR1cmwvLmdpdCIKKworbWtkaXIgLXAgIiRkaXIiCisKK2lmIHRlc3QgLXogIiRHSVRfUkVNT1RFX1RFU1RHSVRfTk9fTUFSS1MiCit0aGVuCisJZ2l0bWFya3M9IiRkaXIvZ2l0Lm1hcmtzIgorCXRlc3RnaXRtYXJrcz0iJGRpci90ZXN0Z2l0Lm1hcmtzIgorCXRlc3QgLWUgIiRnaXRtYXJrcyIgfHwgPiIkZ2l0bWFya3MiCisJdGVzdCAtZSAiJHRlc3RnaXRtYXJrcyIgfHwgPiIkdGVzdGdpdG1hcmtzIgorZmkKKword2hpbGUgcmVhZCBsaW5lCitkbworCWNhc2UgJGxpbmUgaW4KKwljYXBhYmlsaXRpZXMpCisJCWVjaG8gJ2ltcG9ydCcKKwkJZWNobyAnZXhwb3J0JworCQl0ZXN0IC1uICIkcmVmc3BlYyIgJiYgZWNobyAicmVmc3BlYyAkcmVmc3BlYyIKKwkJaWYgdGVzdCAtbiAiJGdpdG1hcmtzIgorCQl0aGVuCisJCQllY2hvICIqaW1wb3J0LW1hcmtzICRnaXRtYXJrcyIKKwkJCWVjaG8gIipleHBvcnQtbWFya3MgJGdpdG1hcmtzIgorCQlmaQorCQl0ZXN0IC1uICIkR0lUX1JFTU9URV9URVNUR0lUX1NJR05FRF9UQUdTIiAmJiBlY2hvICJzaWduZWQtdGFncyIKKwkJZWNobworCQk7OworCWxpc3QpCisJCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9Jz8gJShyZWZuYW1lKScgJ3JlZnMvaGVhZHMvJworCQloZWFkPSQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEKQorCQllY2hvICJAJGhlYWQgSEVBRCIKKwkJZWNobworCQk7OworCWltcG9ydCopCisJCSMgcmVhZCBhbGwgaW1wb3J0IGxpbmVzCisJCXdoaWxlIHRydWUKKwkJZG8KKwkJCXJlZj0iJHtsaW5lIyogfSIKKwkJCXJlZnM9IiRyZWZzICRyZWYiCisJCQlyZWFkIGxpbmUKKwkJCXRlc3QgIiR7bGluZSUlICp9IiAhPSAiaW1wb3J0IiAmJiBicmVhaworCQlkb25lCisKKwkJaWYgdGVzdCAtbiAiJGdpdG1hcmtzIgorCQl0aGVuCisJCQllY2hvICJmZWF0dXJlIGltcG9ydC1tYXJrcz0kZ2l0bWFya3MiCisJCQllY2hvICJmZWF0dXJlIGV4cG9ydC1tYXJrcz0kZ2l0bWFya3MiCisJCWZpCisKKwkJaWYgdGVzdCAtbiAiJEdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFIgorCQl0aGVuCisJCQllY2hvICJmZWF0dXJlIGRvbmUiCisJCQlleGl0IDEKKwkJZmkKKworCQllY2hvICJmZWF0dXJlIGRvbmUiCisJCWdpdCBmYXN0LWV4cG9ydCBcCisJCQkke3Rlc3RnaXRtYXJrczorIi0taW1wb3J0LW1hcmtzPSR0ZXN0Z2l0bWFya3MifSBcCisJCQkke3Rlc3RnaXRtYXJrczorIi0tZXhwb3J0LW1hcmtzPSR0ZXN0Z2l0bWFya3MifSBcCisJCQkkcmVmcyB8CisJCXNlZCAtZSAicyNyZWZzL2hlYWRzLyMke3ByZWZpeH0vaGVhZHMvI2ciCisJCWVjaG8gImRvbmUiCisJCTs7CisJZXhwb3J0KQorCQlpZiB0ZXN0IC1uICIkR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkUiCisJCXRoZW4KKwkJCSMgY29uc3VtZSBpbnB1dCBzbyBmYXN0LWV4cG9ydCBkb2Vzbid0IGdldCBTSUdQSVBFOworCQkJIyBnaXQgd291bGQgYWxzbyBub3RpY2UgdGhhdCBjYXNlLCBidXQgd2Ugd2FudAorCQkJIyB0byBtYWtlIHN1cmUgd2UgYXJlIGV4ZXJjaXNpbmcgdGhlIGxhdGVyCisJCQkjIGVycm9yIGNoZWNrcworCQkJd2hpbGUgcmVhZCBsaW5lOyBkbworCQkJCXRlc3QgImRvbmUiID0gIiRsaW5lIiAmJiBicmVhaworCQkJZG9uZQorCQkJZXhpdCAxCisJCWZpCisKKwkJYmVmb3JlPSQoZ2l0IGZvci1lYWNoLXJlZiAtLWZvcm1hdD0nICUocmVmbmFtZSkgJShvYmplY3RuYW1lKSAnKQorCisJCWdpdCBmYXN0LWltcG9ydCBcCisJCQkke3Rlc3RnaXRtYXJrczorIi0taW1wb3J0LW1hcmtzPSR0ZXN0Z2l0bWFya3MifSBcCisJCQkke3Rlc3RnaXRtYXJrczorIi0tZXhwb3J0LW1hcmtzPSR0ZXN0Z2l0bWFya3MifSBcCisJCQktLXF1aWV0CisKKwkJIyBmaWd1cmUgb3V0IHdoaWNoIHJlZnMgd2VyZSB1cGRhdGVkCisJCWdpdCBmb3ItZWFjaC1yZWYgLS1mb3JtYXQ9JyUocmVmbmFtZSkgJShvYmplY3RuYW1lKScgfAorCQl3aGlsZSByZWFkIHJlZiBhCisJCWRvCisJCQljYXNlICIkYmVmb3JlIiBpbgorCQkJKiIgJHJlZiAkYSAiKikKKwkJCQljb250aW51ZSA7OwkjIHVuY2hhbmdlZAorCQkJZXNhYworCQkJaWYgdGVzdCAteiAiJEdJVF9SRU1PVEVfVEVTVEdJVF9QVVNIX0VSUk9SIgorCQkJdGhlbgorCQkJCWVjaG8gIm9rICRyZWYiCisJCQllbHNlCisJCQkJZWNobyAiZXJyb3IgJHJlZiAkR0lUX1JFTU9URV9URVNUR0lUX1BVU0hfRVJST1IiCisJCQlmaQorCQlkb25lCisKKwkJZWNobworCQk7OworCScnKQorCQlleGl0CisJCTs7CisJZXNhYworZG9uZQpkaWZmIC0tZ2l0IGEvZ2l0LXJlcXVlc3QtcHVsbC5zaCBiL2dpdC1yZXF1ZXN0LXB1bGwuc2gKaW5kZXggZDU2NjAxNS4uZWJmMTI2OSAxMDA3NTUKLS0tIGEvZ2l0LXJlcXVlc3QtcHVsbC5zaAorKysgYi9naXQtcmVxdWVzdC1wdWxsLnNoCkBAIC01MSw4ICs1MSwxOCBAQAogdGFnX25hbWU9JChnaXQgZGVzY3JpYmUgLS1leGFjdCAiJGhlYWReMCIgMj4vZGV2L251bGwpCiAKIHRlc3QgLW4gIiRiYXNlIiAmJiB0ZXN0IC1uICIkdXJsIiB8fCB1c2FnZQotYmFzZXJldj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiRiYXNlIl4wKSAmJgotaGVhZHJldj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiRoZWFkIl4wKSB8fCBleGl0CisKK2Jhc2VyZXY9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tcXVpZXQgIiRiYXNlIl4wKQoraWYgdGVzdCAteiAiJGJhc2VyZXYiCit0aGVuCisgICAgZGllICJmYXRhbDogTm90IGEgdmFsaWQgcmV2aXNpb246ICRiYXNlIgorZmkKKworaGVhZHJldj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1xdWlldCAiJGhlYWQiXjApCitpZiB0ZXN0IC16ICIkaGVhZHJldiIKK3RoZW4KKyAgICBkaWUgImZhdGFsOiBOb3QgYSB2YWxpZCByZXZpc2lvbjogJGhlYWQiCitmaQogCiBtZXJnZV9iYXNlPSQoZ2l0IG1lcmdlLWJhc2UgJGJhc2VyZXYgJGhlYWRyZXYpIHx8CiBkaWUgImZhdGFsOiBObyBjb21taXRzIGluIGNvbW1vbiBiZXR3ZWVuICRiYXNlIGFuZCAkaGVhZCIKZGlmZiAtLWdpdCBhL2dpdC1zZW5kLWVtYWlsLnBlcmwgYi9naXQtc2VuZC1lbWFpbC5wZXJsCmluZGV4IGJkMTNjYzguLjM3ODJjM2IgMTAwNzU1Ci0tLSBhL2dpdC1zZW5kLWVtYWlsLnBlcmwKKysrIGIvZ2l0LXNlbmQtZW1haWwucGVybApAQCAtNjksNiArNjksOSBAQAogICAgIC0tc210cC1wYXNzICAgICAgICAgICAgIDxzdHI+ICAqIFBhc3N3b3JkIGZvciBTTVRQLUFVVEg7IG5vdCBuZWNlc3NhcnkuCiAgICAgLS1zbXRwLWVuY3J5cHRpb24gICAgICAgPHN0cj4gICogdGxzIG9yIHNzbDsgYW55dGhpbmcgZWxzZSBkaXNhYmxlcy4KICAgICAtLXNtdHAtc3NsICAgICAgICAgICAgICAgICAgICAgKiBEZXByZWNhdGVkLiBVc2UgJy0tc210cC1lbmNyeXB0aW9uIHNzbCcuCisgICAgLS1zbXRwLXNzbC1jZXJ0LXBhdGggICAgPHN0cj4gICogUGF0aCB0byBjYS1jZXJ0aWZpY2F0ZXMgKGVpdGhlciBkaXJlY3Rvcnkgb3IgZmlsZSkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzcyBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSBjZXJ0aWZpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbi4KICAgICAtLXNtdHAtZG9tYWluICAgICAgICAgICA8c3RyPiAgKiBUaGUgZG9tYWluIG5hbWUgc2VudCB0byBIRUxPL0VITE8gaGFuZHNoYWtlCiAgICAgLS1zbXRwLWRlYnVnICAgICAgICAgICAgPDB8MT4gICogRGlzYWJsZSwgZW5hYmxlIE5ldDo6U01UUCBkZWJ1Zy4KIApAQCAtMTk0LDcgKzE5Nyw3IEBACiBteSAoJHRocmVhZCwgJGNoYWluX3JlcGx5X3RvLCAkc3VwcHJlc3NfZnJvbSwgJHNpZ25lZF9vZmZfYnlfY2MpOwogbXkgKCR0b19jbWQsICRjY19jbWQpOwogbXkgKCRzbXRwX3NlcnZlciwgJHNtdHBfc2VydmVyX3BvcnQsIEBzbXRwX3NlcnZlcl9vcHRpb25zKTsKLW15ICgkc210cF9hdXRodXNlciwgJHNtdHBfZW5jcnlwdGlvbik7CitteSAoJHNtdHBfYXV0aHVzZXIsICRzbXRwX2VuY3J5cHRpb24sICRzbXRwX3NzbF9jZXJ0X3BhdGgpOwogbXkgKCRpZGVudGl0eSwgJGFsaWFzZmlsZXR5cGUsIEBhbGlhc19maWxlcywgJHNtdHBfZG9tYWluKTsKIG15ICgkdmFsaWRhdGUsICRjb25maXJtKTsKIG15IChAc3VwcHJlc3NfY2MpOwpAQCAtMjAzLDExICsyMDYsOSBAQAogCiBteSAoJGRlYnVnX25ldF9zbXRwKSA9IDA7CQkjIE5ldDo6U01UUCwgc2VlIHNlbmRfbWVzc2FnZSgpCiAKLW15ICRub3Rfc2V0X2J5X3VzZXIgPSAidHJ1ZSBidXQgbm90IHNldCBieSB0aGUgdXNlciI7Ci0KIG15ICVjb25maWdfYm9vbF9zZXR0aW5ncyA9ICgKICAgICAidGhyZWFkIiA9PiBbXCR0aHJlYWQsIDFdLAotICAgICJjaGFpbnJlcGx5dG8iID0+IFtcJGNoYWluX3JlcGx5X3RvLCAkbm90X3NldF9ieV91c2VyXSwKKyAgICAiY2hhaW5yZXBseXRvIiA9PiBbXCRjaGFpbl9yZXBseV90bywgMF0sCiAgICAgInN1cHByZXNzZnJvbSIgPT4gW1wkc3VwcHJlc3NfZnJvbSwgdW5kZWZdLAogICAgICJzaWduZWRvZmZieWNjIiA9PiBbXCRzaWduZWRfb2ZmX2J5X2NjLCB1bmRlZl0sCiAgICAgInNpZ25lZG9mZmNjIiA9PiBbXCRzaWduZWRfb2ZmX2J5X2NjLCB1bmRlZl0sICAgICAgIyBEZXByZWNhdGVkCkBAIC0yMjIsNiArMjIzLDcgQEAKICAgICAic210cHNlcnZlcm9wdGlvbiIgPT4gXEBzbXRwX3NlcnZlcl9vcHRpb25zLAogICAgICJzbXRwdXNlciIgPT4gXCRzbXRwX2F1dGh1c2VyLAogICAgICJzbXRwcGFzcyIgPT4gXCRzbXRwX2F1dGhwYXNzLAorICAgICJzbXRwc3NsY2VydHBhdGgiID0+IFwkc210cF9zc2xfY2VydF9wYXRoLAogICAgICJzbXRwZG9tYWluIiA9PiBcJHNtdHBfZG9tYWluLAogICAgICJ0byIgPT4gXEBpbml0aWFsX3RvLAogICAgICJ0b2NtZCIgPT4gXCR0b19jbWQsCkBAIC0yNDEsMTkgKzI0Myw2IEBACiAgICAgImFsaWFzZXNmaWxlIiA9PiBcQGFsaWFzX2ZpbGVzLAogKTsKIAotIyBIZWxwIHVzZXJzIHByZXBhcmUgZm9yIDEuNy4wCi1zdWIgY2hhaW5fcmVwbHlfdG8gewotCWlmIChkZWZpbmVkICRjaGFpbl9yZXBseV90byAmJgotCSAgICAkY2hhaW5fcmVwbHlfdG8gZXEgJG5vdF9zZXRfYnlfdXNlcikgewotCQlwcmludCBTVERFUlIKLQkJICAgICJJbiBnaXQgMS43LjAsIHRoZSBkZWZhdWx0IGhhcyBjaGFuZ2VkIHRvIC0tbm8tY2hhaW4tcmVwbHktdG9cbiIgLgotCQkgICAgIlNldCBzZW5kZW1haWwuY2hhaW5yZXBseXRvIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgdG8gdHJ1ZSBpZlxuIiAuCi0JCSAgICAieW91IHdhbnQgdG8ga2VlcCAtLWNoYWluLXJlcGx5LXRvIGFzIHlvdXIgZGVmYXVsdC5cbiI7Ci0JCSRjaGFpbl9yZXBseV90byA9IDA7Ci0JfQotCXJldHVybiAkY2hhaW5fcmVwbHlfdG87Ci19Ci0KICMgSGFuZGxlIFVuY291dGggVGVybWluYXRpb24KIHN1YiBzaWduYWxfaGFuZGxlciB7CiAKQEAgLTMwMiw2ICsyOTEsNyBAQAogCQkgICAgInNtdHAtcGFzczpzIiA9PiBcJHNtdHBfYXV0aHBhc3MsCiAJCSAgICAic210cC1zc2wiID0+IHN1YiB7ICRzbXRwX2VuY3J5cHRpb24gPSAnc3NsJyB9LAogCQkgICAgInNtdHAtZW5jcnlwdGlvbj1zIiA9PiBcJHNtdHBfZW5jcnlwdGlvbiwKKwkJICAgICJzbXRwLXNzbC1jZXJ0LXBhdGgiID0+IFwkc210cF9zc2xfY2VydF9wYXRoLAogCQkgICAgInNtdHAtZGVidWc6aSIgPT4gXCRkZWJ1Z19uZXRfc210cCwKIAkJICAgICJzbXRwLWRvbWFpbjpzIiA9PiBcJHNtdHBfZG9tYWluLAogCQkgICAgImlkZW50aXR5PXMiID0+IFwkaWRlbnRpdHksCkBAIC03NjAsNiArNzUwLDExIEBACiAJJHNlbmRlciA9ICRyZXBvYXV0aG9yIHx8ICRyZXBvY29tbWl0dGVyIHx8ICcnOwogfQogCisjICRzZW5kZXIgY291bGQgYmUgYW4gYWxyZWFkeSBzYW5pdGl6ZWQgYWRkcmVzcworIyAoZS5nLiBzZW5kZW1haWwuZnJvbSBjb3VsZCBiZSBtYW51YWxseSBzYW5pdGl6ZWQgYnkgdXNlcikuCisjIEJ1dCBpdCdzIGEgbm8tb3AgdG8gcnVuIHNhbml0aXplX2FkZHJlc3Mgb24gYW4gYWxyZWFkeSBzYW5pdGl6ZWQgYWRkcmVzcy4KKyRzZW5kZXIgPSBzYW5pdGl6ZV9hZGRyZXNzKCRzZW5kZXIpOworCiBteSAkcHJvbXB0aW5nID0gMDsKIGlmICghQGluaXRpYWxfdG8gJiYgIWRlZmluZWQgJHRvX2NtZCkgewogCW15ICR0byA9IGFzaygiV2hvIHNob3VsZCB0aGUgZW1haWxzIGJlIHNlbnQgdG8gKGlmIGFueSk/ICIsCkBAIC0xMDg5LDYgKzEwODQsMzQgQEAKIAlyZXR1cm4gJGF1dGg7CiB9CiAKK3N1YiBzc2xfdmVyaWZ5X3BhcmFtcyB7CisJZXZhbCB7CisJCXJlcXVpcmUgSU86OlNvY2tldDo6U1NMOworCQlJTzo6U29ja2V0OjpTU0wtPmltcG9ydChxdy9TU0xfVkVSSUZZX1BFRVIgU1NMX1ZFUklGWV9OT05FLyk7CisJfTsKKwlpZiAoJEApIHsKKwkJcHJpbnQgU1RERVJSICJOb3QgdXNpbmcgU1NMX1ZFUklGWV9QRUVSIGR1ZSB0byBvdXQtb2YtZGF0ZSBJTzo6U29ja2V0OjpTU0wuXG4iOworCQlyZXR1cm47CisJfQorCisJaWYgKCFkZWZpbmVkICRzbXRwX3NzbF9jZXJ0X3BhdGgpIHsKKwkJJHNtdHBfc3NsX2NlcnRfcGF0aCA9ICIvZXRjL3NzbC9jZXJ0cyI7CisJfQorCisJaWYgKCRzbXRwX3NzbF9jZXJ0X3BhdGggZXEgIiIpIHsKKwkJcmV0dXJuIChTU0xfdmVyaWZ5X21vZGUgPT4gU1NMX1ZFUklGWV9OT05FKCkpOworCX0gZWxzaWYgKC1kICRzbXRwX3NzbF9jZXJ0X3BhdGgpIHsKKwkJcmV0dXJuIChTU0xfdmVyaWZ5X21vZGUgPT4gU1NMX1ZFUklGWV9QRUVSKCksCisJCQlTU0xfY2FfcGF0aCA9PiAkc210cF9zc2xfY2VydF9wYXRoKTsKKwl9IGVsc2lmICgtZiAkc210cF9zc2xfY2VydF9wYXRoKSB7CisJCXJldHVybiAoU1NMX3ZlcmlmeV9tb2RlID0+IFNTTF9WRVJJRllfUEVFUigpLAorCQkJU1NMX2NhX2ZpbGUgPT4gJHNtdHBfc3NsX2NlcnRfcGF0aCk7CisJfSBlbHNlIHsKKwkJcHJpbnQgU1RERVJSICJOb3QgdXNpbmcgU1NMX1ZFUklGWV9QRUVSIGJlY2F1c2UgdGhlIENBIHBhdGggZG9lcyBub3QgZXhpc3QuXG4iOworCQlyZXR1cm4gKFNTTF92ZXJpZnlfbW9kZSA9PiBTU0xfVkVSSUZZX05PTkUoKSk7CisJfQorfQorCiAjIFJldHVybnMgMSBpZiB0aGUgbWVzc2FnZSB3YXMgc2VudCwgYW5kIDAgb3RoZXJ3aXNlLgogIyBJbiBhY3R1YWxpdHksIHRoZSB3aG9sZSBwcm9ncmFtIGRpZXMgd2hlbiB0aGVyZQogIyBpcyBhbiBlcnJvciBzZW5kaW5nIGEgbWVzc2FnZS4KQEAgLTExMTMsMTAgKzExMzYsOSBAQAogCWlmICgkY2MgbmUgJycpIHsKIAkJJGNjbGluZSA9ICJcbkNjOiAkY2MiOwogCX0KLQlteSAkc2FuaXRpemVkX3NlbmRlciA9IHNhbml0aXplX2FkZHJlc3MoJHNlbmRlcik7CiAJbWFrZV9tZXNzYWdlX2lkKCkgdW5sZXNzIGRlZmluZWQoJG1lc3NhZ2VfaWQpOwogCi0JbXkgJGhlYWRlciA9ICJGcm9tOiAkc2FuaXRpemVkX3NlbmRlcgorCW15ICRoZWFkZXIgPSAiRnJvbTogJHNlbmRlcgogVG86ICR0byR7Y2NsaW5lfQogU3ViamVjdDogJHN1YmplY3QKIERhdGU6ICRkYXRlCkBAIC0xMTMzLDcgKzExNTUsNyBAQAogCX0KIAogCW15IEBzZW5kbWFpbF9wYXJhbWV0ZXJzID0gKCctaScsIEByZWNpcGllbnRzKTsKLQlteSAkcmF3X2Zyb20gPSAkc2FuaXRpemVkX3NlbmRlcjsKKwlteSAkcmF3X2Zyb20gPSAkc2VuZGVyOwogCWlmIChkZWZpbmVkICRlbnZlbG9wZV9zZW5kZXIgJiYgJGVudmVsb3BlX3NlbmRlciBuZSAiYXV0byIpIHsKIAkJJHJhd19mcm9tID0gJGVudmVsb3BlX3NlbmRlcjsKIAl9CkBAIC0xMTk0LDIxICsxMjE2LDI1IEBACiAJCQkkc210cF9kb21haW4gfHw9IG1haWxkb21haW4oKTsKIAkJCSRzbXRwIHx8PSBOZXQ6OlNNVFA6OlNTTC0+bmV3KCRzbXRwX3NlcnZlciwKIAkJCQkJCSAgICAgIEhlbGxvID0+ICRzbXRwX2RvbWFpbiwKLQkJCQkJCSAgICAgIFBvcnQgPT4gJHNtdHBfc2VydmVyX3BvcnQpOworCQkJCQkJICAgICAgUG9ydCA9PiAkc210cF9zZXJ2ZXJfcG9ydCwKKwkJCQkJCSAgICAgIHNzbF92ZXJpZnlfcGFyYW1zKCkpOwogCQl9CiAJCWVsc2UgewogCQkJcmVxdWlyZSBOZXQ6OlNNVFA7CiAJCQkkc210cF9kb21haW4gfHw9IG1haWxkb21haW4oKTsKLQkJCSRzbXRwIHx8PSBOZXQ6OlNNVFAtPm5ldyhzbXRwX2hvc3Rfc3RyaW5nKCksCisJCQkkc210cF9zZXJ2ZXJfcG9ydCB8fD0gMjU7CisJCQkkc210cCB8fD0gTmV0OjpTTVRQLT5uZXcoJHNtdHBfc2VydmVyLAogCQkJCQkJIEhlbGxvID0+ICRzbXRwX2RvbWFpbiwKLQkJCQkJCSBEZWJ1ZyA9PiAkZGVidWdfbmV0X3NtdHApOworCQkJCQkJIERlYnVnID0+ICRkZWJ1Z19uZXRfc210cCwKKwkJCQkJCSBQb3J0ID0+ICRzbXRwX3NlcnZlcl9wb3J0KTsKIAkJCWlmICgkc210cF9lbmNyeXB0aW9uIGVxICd0bHMnICYmICRzbXRwKSB7CiAJCQkJcmVxdWlyZSBOZXQ6OlNNVFA6OlNTTDsKIAkJCQkkc210cC0+Y29tbWFuZCgnU1RBUlRUTFMnKTsKIAkJCQkkc210cC0+cmVzcG9uc2UoKTsKIAkJCQlpZiAoJHNtdHAtPmNvZGUgPT0gMjIwKSB7Ci0JCQkJCSRzbXRwID0gTmV0OjpTTVRQOjpTU0wtPnN0YXJ0X1NTTCgkc210cCkKLQkJCQkJCW9yIGRpZSAiU1RBUlRUTFMgZmFpbGVkISAiLiRzbXRwLT5tZXNzYWdlOworCQkJCQkkc210cCA9IE5ldDo6U01UUDo6U1NMLT5zdGFydF9TU0woJHNtdHAsCisJCQkJCQkJCQkgIHNzbF92ZXJpZnlfcGFyYW1zKCkpCisJCQkJCQlvciBkaWUgIlNUQVJUVExTIGZhaWxlZCEgIi5JTzo6U29ja2V0OjpTU0w6OmVycnN0cigpOwogCQkJCQkkc210cF9lbmNyeXB0aW9uID0gJyc7CiAJCQkJCSMgU2VuZCBFSExPIGFnYWluIHRvIHJlY2VpdmUgZnJlc2gKIAkJCQkJIyBzdXBwb3J0ZWQgY29tbWFuZHMKQEAgLTEyNzAsNiArMTI5Niw3IEBACiAJb3BlbiBteSAkZmgsICI8IiwgJHQgb3IgZGllICJjYW4ndCBvcGVuIGZpbGUgJHQiOwogCiAJbXkgJGF1dGhvciA9IHVuZGVmOworCW15ICRzYXV0aG9yID0gdW5kZWY7CiAJbXkgJGF1dGhvcl9lbmNvZGluZzsKIAlteSAkaGFzX2NvbnRlbnRfdHlwZTsKIAlteSAkYm9keV9lbmNvZGluZzsKQEAgLTEzMDgsOCArMTMzNSw5IEBACiAJCQl9CiAJCQllbHNpZiAoL15Gcm9tOlxzKyguKikkL2kpIHsKIAkJCQkoJGF1dGhvciwgJGF1dGhvcl9lbmNvZGluZykgPSB1bnF1b3RlX3JmYzIwNDcoJDEpOworCQkJCSRzYXV0aG9yID0gc2FuaXRpemVfYWRkcmVzcygkYXV0aG9yKTsKIAkJCQluZXh0IGlmICRzdXBwcmVzc19jY3snYXV0aG9yJ307Ci0JCQkJbmV4dCBpZiAkc3VwcHJlc3NfY2N7J3NlbGYnfSBhbmQgJGF1dGhvciBlcSAkc2VuZGVyOworCQkJCW5leHQgaWYgJHN1cHByZXNzX2NjeydzZWxmJ30gYW5kICRzYXV0aG9yIGVxICRzZW5kZXI7CiAJCQkJcHJpbnRmKCIobWJveCkgQWRkaW5nIGNjOiAlcyBmcm9tIGxpbmUgJyVzJ1xuIiwKIAkJCQkJJDEsICRfKSB1bmxlc3MgJHF1aWV0OwogCQkJCXB1c2ggQGNjLCAkMTsKQEAgLTEzMjMsNyArMTM1MSw5IEBACiAJCQl9CiAJCQllbHNpZiAoL15DYzpccysoLiopJC9pKSB7CiAJCQkJZm9yZWFjaCBteSAkYWRkciAocGFyc2VfYWRkcmVzc19saW5lKCQxKSkgewotCQkJCQlpZiAodW5xdW90ZV9yZmMyMDQ3KCRhZGRyKSBlcSAkc2VuZGVyKSB7CisJCQkJCW15ICRxYWRkciA9IHVucXVvdGVfcmZjMjA0NygkYWRkcik7CisJCQkJCW15ICRzYWRkciA9IHNhbml0aXplX2FkZHJlc3MoJHFhZGRyKTsKKwkJCQkJaWYgKCRzYWRkciBlcSAkc2VuZGVyKSB7CiAJCQkJCQluZXh0IGlmICgkc3VwcHJlc3NfY2N7J3NlbGYnfSk7CiAJCQkJCX0gZWxzZSB7CiAJCQkJCQluZXh0IGlmICgkc3VwcHJlc3NfY2N7J2NjJ30pOwpAQCAtMTM3MCw3ICsxNDAwLDggQEAKIAkJCWNob21wOwogCQkJbXkgKCR3aGF0LCAkYykgPSAoJDEsICQyKTsKIAkJCWNob21wICRjOwotCQkJaWYgKCRjIGVxICRzZW5kZXIpIHsKKwkJCW15ICRzYyA9IHNhbml0aXplX2FkZHJlc3MoJGMpOworCQkJaWYgKCRzYyBlcSAkc2VuZGVyKSB7CiAJCQkJbmV4dCBpZiAoJHN1cHByZXNzX2NjeydzZWxmJ30pOwogCQkJfSBlbHNlIHsKIAkJCQluZXh0IGlmICRzdXBwcmVzc19jY3snc29iJ30gYW5kICR3aGF0ID1+IC9TaWduZWQtb2ZmLWJ5L2k7CkBAIC0xNDAwLDcgKzE0MzEsNyBAQAogCQkkc3ViamVjdCA9IHF1b3RlX3N1YmplY3QoJHN1YmplY3QsICRhdXRvXzhiaXRfZW5jb2RpbmcpOwogCX0KIAotCWlmIChkZWZpbmVkICRhdXRob3IgYW5kICRhdXRob3IgbmUgJHNlbmRlcikgeworCWlmIChkZWZpbmVkICRzYXV0aG9yIGFuZCAkc2F1dGhvciBuZSAkc2VuZGVyKSB7CiAJCSRtZXNzYWdlID0gIkZyb206ICRhdXRob3JcblxuJG1lc3NhZ2UiOwogCQlpZiAoZGVmaW5lZCAkYXV0aG9yX2VuY29kaW5nKSB7CiAJCQlpZiAoJGhhc19jb250ZW50X3R5cGUpIHsKQEAgLTE0MzcsNyArMTQ2OCw3IEBACiAKIAkjIHNldCB1cCBmb3IgdGhlIG5leHQgbWVzc2FnZQogCWlmICgkdGhyZWFkICYmICRtZXNzYWdlX3dhc19zZW50ICYmCi0JCShjaGFpbl9yZXBseV90bygpIHx8ICFkZWZpbmVkICRyZXBseV90byB8fCBsZW5ndGgoJHJlcGx5X3RvKSA9PSAwIHx8CisJCSgkY2hhaW5fcmVwbHlfdG8gfHwgIWRlZmluZWQgJHJlcGx5X3RvIHx8IGxlbmd0aCgkcmVwbHlfdG8pID09IDAgfHwKIAkJJG1lc3NhZ2VfbnVtID09IDEpKSB7CiAJCSRyZXBseV90byA9ICRtZXNzYWdlX2lkOwogCQlpZiAobGVuZ3RoICRyZWZlcmVuY2VzID4gMCkgewpAQCAtMTQ1NCw3ICsxNDg1LDYgQEAKIHN1YiByZWNpcGllbnRzX2NtZCB7CiAJbXkgKCRwcmVmaXgsICR3aGF0LCAkY21kLCAkZmlsZSkgPSBAXzsKIAotCW15ICRzYW5pdGl6ZWRfc2VuZGVyID0gc2FuaXRpemVfYWRkcmVzcygkc2VuZGVyKTsKIAlteSBAYWRkcmVzc2VzID0gKCk7CiAJb3BlbiBteSAkZmgsICItfCIsICIkY21kIFxRJGZpbGVcRSIKIAkgICAgb3IgZGllICIoJHByZWZpeCkgQ291bGQgbm90IGV4ZWN1dGUgJyRjbWQnIjsKQEAgLTE0NjIsNyArMTQ5Miw3IEBACiAJCSRhZGRyZXNzID1+IHMvXlxzKi8vZzsKIAkJJGFkZHJlc3MgPX4gcy9ccyokLy9nOwogCQkkYWRkcmVzcyA9IHNhbml0aXplX2FkZHJlc3MoJGFkZHJlc3MpOwotCQluZXh0IGlmICgkYWRkcmVzcyBlcSAkc2FuaXRpemVkX3NlbmRlciBhbmQgJHN1cHByZXNzX2Zyb20pOworCQluZXh0IGlmICgkYWRkcmVzcyBlcSAkc2VuZGVyIGFuZCAkc3VwcHJlc3NfY2N7J3NlbGYnfSk7CiAJCXB1c2ggQGFkZHJlc3NlcywgJGFkZHJlc3M7CiAJCXByaW50ZigiKCRwcmVmaXgpIEFkZGluZyAlczogJXMgZnJvbTogJyVzJ1xuIiwKIAkJICAgICAgICR3aGF0LCAkYWRkcmVzcywgJGNtZCkgdW5sZXNzICRxdWlldDsKZGlmZiAtLWdpdCBhL2dpdC1zaC1zZXR1cC5zaCBiL2dpdC1zaC1zZXR1cC5zaAppbmRleCAyZjc4MzU5Li5lMTViZTUxIDEwMDY0NAotLS0gYS9naXQtc2gtc2V0dXAuc2gKKysrIGIvZ2l0LXNoLXNldHVwLnNoCkBAIC01Myw3ICs1Myw3IEBACiBkaWVfd2l0aF9zdGF0dXMgKCkgewogCXN0YXR1cz0kMQogCXNoaWZ0Ci0JZWNobyA+JjIgIiQqIgorCXByaW50ZiA+JjIgJyVzXG4nICIkKiIKIAlleGl0ICIkc3RhdHVzIgogfQogCkBAIC0zMTMsMyArMzEzLDE1IEBACiAJfQogCTogJHtHSVRfT0JKRUNUX0RJUkVDVE9SWT0iJEdJVF9ESVIvb2JqZWN0cyJ9CiBmaQorCitwZWVsX2NvbW1pdHRpc2ggKCkgeworCWNhc2UgIiQxIiBpbgorCTovKikKKwkJcGVlbHRtcD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiQxIikgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAiJHtwZWVsdG1wfV4wIgorCQk7OworCSopCisJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgIiR7MX1eMCIKKwkJOzsKKwllc2FjCit9CmRpZmYgLS1naXQgYS9naXQtc3Rhc2guc2ggYi9naXQtc3Rhc2guc2gKaW5kZXggYmJlZmRmNi4uMWU1NDFhMiAxMDA3NTUKLS0tIGEvZ2l0LXN0YXNoLnNoCisrKyBiL2dpdC1zdGFzaC5zaApAQCAtMTU2LDYgKzE1Niw0MSBAQAogCWRpZSAiJChnZXR0ZXh0ICJDYW5ub3QgcmVjb3JkIHdvcmtpbmcgdHJlZSBzdGF0ZSIpIgogfQogCitzdG9yZV9zdGFzaCAoKSB7CisJd2hpbGUgdGVzdCAkIyAhPSAwCisJZG8KKwkJY2FzZSAiJDEiIGluCisJCS1tfC0tbWVzc2FnZSkKKwkJCXNoaWZ0CisJCQlzdGFzaF9tc2c9IiQxIgorCQkJOzsKKwkJLXF8LS1xdWlldCkKKwkJCXF1aWV0PXQKKwkJCTs7CisJCSopCisJCQlicmVhaworCQkJOzsKKwkJZXNhYworCQlzaGlmdAorCWRvbmUKKwl0ZXN0ICQjID0gMSB8fAorCWRpZSAiJChldmFsX2dldHRleHQgIlwiJGRhc2hsZXNzIHN0b3JlXCIgcmVxdWlyZXMgb25lIDxjb21taXQ+IGFyZ3VtZW50IikiCisKKwl3X2NvbW1pdD0iJDEiCisJaWYgdGVzdCAteiAiJHN0YXNoX21zZyIKKwl0aGVuCisJCXN0YXNoX21zZz0iQ3JlYXRlZCB2aWEgXCJnaXQgc3Rhc2ggc3RvcmVcIi4iCisJZmkKKworCSMgTWFrZSBzdXJlIHRoZSByZWZsb2cgZm9yIHN0YXNoIGlzIGtlcHQuCisJOiA+PiIkR0lUX0RJUi9sb2dzLyRyZWZfc3Rhc2giCisJZ2l0IHVwZGF0ZS1yZWYgLW0gIiRzdGFzaF9tc2ciICRyZWZfc3Rhc2ggJHdfY29tbWl0CisJcmV0PSQ/CisJdGVzdCAkcmV0ICE9IDAgJiYgdGVzdCAteiAkcXVpZXQgJiYKKwlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJDYW5ub3QgdXBkYXRlIFwkcmVmX3N0YXNoIHdpdGggXCR3X2NvbW1pdCIpIgorCXJldHVybiAkcmV0Cit9CisKIHNhdmVfc3Rhc2ggKCkgewogCWtlZXBfaW5kZXg9CiAJcGF0Y2hfbW9kZT0KQEAgLTIyNywxMiArMjYyLDggQEAKIAkJY2xlYXJfc3Rhc2ggfHwgZGllICIkKGdldHRleHQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIikiCiAKIAljcmVhdGVfc3Rhc2ggIiRzdGFzaF9tc2ciICR1bnRyYWNrZWQKLQotCSMgTWFrZSBzdXJlIHRoZSByZWZsb2cgZm9yIHN0YXNoIGlzIGtlcHQuCi0JOiA+PiIkR0lUX0RJUi9sb2dzLyRyZWZfc3Rhc2giCi0KLQlnaXQgdXBkYXRlLXJlZiAtbSAiJHN0YXNoX21zZyIgJHJlZl9zdGFzaCAkd19jb21taXQgfHwKLQkJZGllICIkKGdldHRleHQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIpIgorCXN0b3JlX3N0YXNoIC1tICIkc3Rhc2hfbXNnIiAtcSAkd19jb21taXQgfHwKKwlkaWUgIiQoZ2V0dGV4dCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIikiCiAJc2F5IFNhdmVkIHdvcmtpbmcgZGlyZWN0b3J5IGFuZCBpbmRleCBzdGF0ZSAiJHN0YXNoX21zZyIKIAogCWlmIHRlc3QgLXogIiRwYXRjaF9tb2RlIgpAQCAtNTQ2LDEyICs1NzcsMTMgQEAKIAljbGVhcl9zdGFzaCAiJEAiCiAJOzsKIGNyZWF0ZSkKLQlpZiB0ZXN0ICQjIC1ndCAwICYmIHRlc3QgIiQxIiA9IGNyZWF0ZQotCXRoZW4KLQkJc2hpZnQKLQlmaQorCXNoaWZ0CiAJY3JlYXRlX3N0YXNoICIkKiIgJiYgZWNobyAiJHdfY29tbWl0IgogCTs7CitzdG9yZSkKKwlzaGlmdAorCXN0b3JlX3N0YXNoICIkQCIKKwk7OwogZHJvcCkKIAlzaGlmdAogCWRyb3Bfc3Rhc2ggIiRAIgpkaWZmIC0tZ2l0IGEvZ2l0LXN1Ym1vZHVsZS5zaCBiL2dpdC1zdWJtb2R1bGUuc2gKaW5kZXggNzliZmFhYy4uMjk3OTE5NyAxMDA3NTUKLS0tIGEvZ2l0LXN1Ym1vZHVsZS5zaAorKysgYi9naXQtc3VibW9kdWxlLnNoCkBAIC0xNCwxMCArMTQsMTMgQEAKICAgIG9yOiAkZGFzaGxlc3MgWy0tcXVpZXRdIGZvcmVhY2ggWy0tcmVjdXJzaXZlXSA8Y29tbWFuZD4KICAgIG9yOiAkZGFzaGxlc3MgWy0tcXVpZXRdIHN5bmMgWy0tcmVjdXJzaXZlXSBbLS1dIFs8cGF0aD4uLi5dIgogT1BUSU9OU19TUEVDPQorU1VCRElSRUNUT1JZX09LPVllcwogLiBnaXQtc2gtc2V0dXAKIC4gZ2l0LXNoLWkxOG4KIC4gZ2l0LXBhcnNlLXJlbW90ZQogcmVxdWlyZV93b3JrX3RyZWUKK3d0X3ByZWZpeD0kKGdpdCByZXYtcGFyc2UgLS1zaG93LXByZWZpeCkKK2NkX3RvX3RvcGxldmVsCiAKIGNvbW1hbmQ9CiBicmFuY2g9CkBAIC0zMiw2ICszNSw3IEBACiB1cGRhdGU9CiBwcmVmaXg9CiBjdXN0b21fbmFtZT0KK2RlcHRoPQogCiAjIFRoZSBmdW5jdGlvbiB0YWtlcyBhdCBtb3N0IDIgYXJndW1lbnRzLiBUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlCiAjIFVSTCB0aGF0IG5hdmlnYXRlcyB0byB0aGUgc3VibW9kdWxlIG9yaWdpbiByZXBvLiBXaGVuIHJlbGF0aXZlLCB0aGlzIFVSTApAQCAtMTA2LDE0ICsxMTAsNTAgQEAKIAllY2hvICIke2lzX3JlbGF0aXZlOiske3VwX3BhdGh9fSR7cmVtb3RldXJsIy4vfSIKIH0KIAorIyBSZXNvbHZlIGEgcGF0aCB0byBiZSByZWxhdGl2ZSB0byBhbm90aGVyIHBhdGguICBUaGlzIGlzIGludGVuZGVkIGZvcgorIyBjb252ZXJ0aW5nIHN1Ym1vZHVsZSBwYXRocyB3aGVuIGdpdC1zdWJtb2R1bGUgaXMgcnVuIGluIGEgc3ViZGlyZWN0b3J5CisjIGFuZCBvbmx5IGhhbmRsZXMgcGF0aHMgd2hlcmUgdGhlIGRpcmVjdG9yeSBzZXBhcmF0b3IgaXMgJy8nLgorIworIyBUaGUgb3V0cHV0IGlzIHRoZSBmaXJzdCBhcmd1bWVudCBhcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHNlY29uZCBhcmd1bWVudCwKKyMgd2hpY2ggZGVmYXVsdHMgdG8gJHd0X3ByZWZpeCBpZiBpdCBpcyBvbWl0dGVkLgorcmVsYXRpdmVfcGF0aCAoKQoreworCWxvY2FsIHRhcmdldCBjdXJkaXIgcmVzdWx0CisJdGFyZ2V0PSQxCisJY3VyZGlyPSR7Mi0kd3RfcHJlZml4fQorCWN1cmRpcj0ke2N1cmRpciUvfQorCXJlc3VsdD0KKworCXdoaWxlIHRlc3QgLW4gIiRjdXJkaXIiCisJZG8KKwkJY2FzZSAiJHRhcmdldCIgaW4KKwkJIiRjdXJkaXIvIiopCisJCQl0YXJnZXQ9JHt0YXJnZXQjIiRjdXJkaXIiL30KKwkJCWJyZWFrCisJCQk7OworCQllc2FjCisKKwkJcmVzdWx0PSIke3Jlc3VsdH0uLi8iCisJCWlmIHRlc3QgIiRjdXJkaXIiID0gIiR7Y3VyZGlyJS8qfSIKKwkJdGhlbgorCQkJY3VyZGlyPQorCQllbHNlCisJCQljdXJkaXI9IiR7Y3VyZGlyJS8qfSIKKwkJZmkKKwlkb25lCisKKwllY2hvICIkcmVzdWx0JHRhcmdldCIKK30KKwogIwogIyBHZXQgc3VibW9kdWxlIGluZm8gZm9yIHJlZ2lzdGVyZWQgc3VibW9kdWxlcwogIyAkQCA9IHBhdGggdG8gbGltaXQgc3VibW9kdWxlIGxpc3QKICMKIG1vZHVsZV9saXN0KCkKIHsKKwlldmFsICJzZXQgJChnaXQgcmV2LXBhcnNlIC0tc3EgLS1wcmVmaXggIiR3dF9wcmVmaXgiIC0tICIkQCIpIgogCSgKLQkJZ2l0IGxzLWZpbGVzIC0tZXJyb3ItdW5tYXRjaCAtLXN0YWdlIC0tICIkQCIgfHwKKwkJZ2l0IGxzLWZpbGVzIC16IC0tZXJyb3ItdW5tYXRjaCAtLXN0YWdlIC0tICIkQCIgfHwKIAkJZWNobyAidW5tYXRjaGVkIHBhdGhzcGVjIGV4aXN0cyIKIAkpIHwKIAlwZXJsIC1lICcKQEAgLTEyMSw2ICsxNjEsNyBAQAogCW15ICgkbnVsbF9zaGExKSA9ICgiMCIgeCA0MCk7CiAJbXkgQG91dCA9ICgpOwogCW15ICR1bm1hdGNoZWQgPSAwOworCSQvID0gIlwwIjsKIAl3aGlsZSAoPFNURElOPikgewogCQlpZiAoL151bm1hdGNoZWQgcGF0aHNwZWMvKSB7CiAJCQkkdW5tYXRjaGVkID0gMTsKQEAgLTIxMSw2ICsyNTIsNyBAQAogCW5hbWU9JDIKIAl1cmw9JDMKIAlyZWZlcmVuY2U9IiQ0IgorCWRlcHRoPSIkNSIKIAlxdWlldD0KIAlpZiB0ZXN0IC1uICIkR0lUX1FVSUVUIgogCXRoZW4KQEAgLTIzMyw3ICsyNzUsNyBAQAogCQlta2RpciAtcCAiJGdpdGRpcl9iYXNlIgogCQkoCiAJCQljbGVhcl9sb2NhbF9naXRfZW52Ci0JCQlnaXQgY2xvbmUgJHF1aWV0IC1uICR7cmVmZXJlbmNlOisiJHJlZmVyZW5jZSJ9IFwKKwkJCWdpdCBjbG9uZSAkcXVpZXQgJHtkZXB0aDorIiRkZXB0aCJ9IC1uICR7cmVmZXJlbmNlOisiJHJlZmVyZW5jZSJ9IFwKIAkJCQktLXNlcGFyYXRlLWdpdC1kaXIgIiRnaXRkaXIiICIkdXJsIiAiJHNtX3BhdGgiCiAJCSkgfHwKIAkJZGllICIkKGV2YWxfZ2V0dGV4dCAiQ2xvbmUgb2YgJ1wkdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICdcJHNtX3BhdGgnIGZhaWxlZCIpIgpAQCAtMjgyLDYgKzMyNCw3IEBACiBjbWRfYWRkKCkKIHsKIAkjIHBhcnNlICRhcmdzIGFmdGVyICJzdWJtb2R1bGUgLi4uIGFkZCIuCisJcmVmZXJlbmNlX3BhdGg9CiAJd2hpbGUgdGVzdCAkIyAtbmUgMAogCWRvCiAJCWNhc2UgIiQxIiBpbgpAQCAtMjk4LDE3ICszNDEsMjUgQEAKIAkJCTs7CiAJCS0tcmVmZXJlbmNlKQogCQkJY2FzZSAiJDIiIGluICcnKSB1c2FnZSA7OyBlc2FjCi0JCQlyZWZlcmVuY2U9Ii0tcmVmZXJlbmNlPSQyIgorCQkJcmVmZXJlbmNlX3BhdGg9JDIKIAkJCXNoaWZ0CiAJCQk7OwogCQktLXJlZmVyZW5jZT0qKQotCQkJcmVmZXJlbmNlPSIkMSIKKwkJCXJlZmVyZW5jZV9wYXRoPSIkezEjLS1yZWZlcmVuY2U9fSIKIAkJCTs7CiAJCS0tbmFtZSkKIAkJCWNhc2UgIiQyIiBpbiAnJykgdXNhZ2UgOzsgZXNhYwogCQkJY3VzdG9tX25hbWU9JDIKIAkJCXNoaWZ0CiAJCQk7OworCQktLWRlcHRoKQorCQkJY2FzZSAiJDIiIGluICcnKSB1c2FnZSA7OyBlc2FjCisJCQlkZXB0aD0iLS1kZXB0aD0kMiIKKwkJCXNoaWZ0CisJCQk7OworCQktLWRlcHRoPSopCisJCQlkZXB0aD0kMQorCQkJOzsKIAkJLS0pCiAJCQlzaGlmdAogCQkJYnJlYWsKQEAgLTMyMyw2ICszNzQsMTQgQEAKIAkJc2hpZnQKIAlkb25lCiAKKwlpZiB0ZXN0IC1uICIkcmVmZXJlbmNlX3BhdGgiCisJdGhlbgorCQlpc19hYnNvbHV0ZV9wYXRoICIkcmVmZXJlbmNlX3BhdGgiIHx8CisJCXJlZmVyZW5jZV9wYXRoPSIkd3RfcHJlZml4JHJlZmVyZW5jZV9wYXRoIgorCisJCXJlZmVyZW5jZT0iLS1yZWZlcmVuY2U9JHJlZmVyZW5jZV9wYXRoIgorCWZpCisKIAlyZXBvPSQxCiAJc21fcGF0aD0kMgogCkBAIC0zMzUsOSArMzk0LDE0IEBACiAJCXVzYWdlCiAJZmkKIAorCWlzX2Fic29sdXRlX3BhdGggIiRzbV9wYXRoIiB8fCBzbV9wYXRoPSIkd3RfcHJlZml4JHNtX3BhdGgiCisKIAkjIGFzc3VyZSByZXBvIGlzIGFic29sdXRlIG9yIHJlbGF0aXZlIHRvIHBhcmVudAogCWNhc2UgIiRyZXBvIiBpbgogCS4vKnwuLi8qKQorCQl0ZXN0IC16ICIkd3RfcHJlZml4IiB8fAorCQlkaWUgIiQoZ2V0dGV4dCAiUmVsYXRpdmUgcGF0aCBjYW4gb25seSBiZSB1c2VkIGZyb20gdGhlIHRvcGxldmVsIG9mIHRoZSB3b3JraW5nIHRyZWUiKSIKKwogCQkjIGRlcmVmZXJlbmNlIHNvdXJjZSB1cmwgcmVsYXRpdmUgdG8gcGFyZW50J3MgdXJsCiAJCXJlYWxyZXBvPSQocmVzb2x2ZV9yZWxhdGl2ZV91cmwgIiRyZXBvIikgfHwgZXhpdAogCQk7OwpAQCAtNDA1LDcgKzQ2OSw3IEBACiAJCQkJZWNobyAiJChldmFsX2dldHRleHQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJ1wkc21fbmFtZScuIikiCiAJCQlmaQogCQlmaQotCQltb2R1bGVfY2xvbmUgIiRzbV9wYXRoIiAiJHNtX25hbWUiICIkcmVhbHJlcG8iICIkcmVmZXJlbmNlIiB8fCBleGl0CisJCW1vZHVsZV9jbG9uZSAiJHNtX3BhdGgiICIkc21fbmFtZSIgIiRyZWFscmVwbyIgIiRyZWZlcmVuY2UiICIkZGVwdGgiIHx8IGV4aXQKIAkJKAogCQkJY2xlYXJfbG9jYWxfZ2l0X2VudgogCQkJY2QgIiRzbV9wYXRoIiAmJgpAQCAtNDcxLDIxICs1MzUsMjMgQEAKIAkJZGllX2lmX3VubWF0Y2hlZCAiJG1vZGUiCiAJCWlmIHRlc3QgLWUgIiRzbV9wYXRoIi8uZ2l0CiAJCXRoZW4KLQkJCXNheSAiJChldmFsX2dldHRleHQgIkVudGVyaW5nICdcJHByZWZpeFwkc21fcGF0aCciKSIKKwkJCWRpc3BsYXlwYXRoPSQocmVsYXRpdmVfcGF0aCAiJHNtX3BhdGgiKQorCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiRW50ZXJpbmcgJ1wkcHJlZml4XCRkaXNwbGF5cGF0aCciKSIKIAkJCW5hbWU9JChtb2R1bGVfbmFtZSAiJHNtX3BhdGgiKQogCQkJKAogCQkJCXByZWZpeD0iJHByZWZpeCRzbV9wYXRoLyIKIAkJCQljbGVhcl9sb2NhbF9naXRfZW52Ci0JCQkJIyB3ZSBtYWtlICRwYXRoIGF2YWlsYWJsZSB0byBzY3JpcHRzIC4uLgotCQkJCXBhdGg9JHNtX3BhdGgKIAkJCQljZCAiJHNtX3BhdGgiICYmCisJCQkJc21fcGF0aD0kKHJlbGF0aXZlX3BhdGggIiRzbV9wYXRoIikgJiYKKwkJCQkjIHdlIG1ha2UgJHBhdGggYXZhaWxhYmxlIHRvIHNjcmlwdHMgLi4uCisJCQkJcGF0aD0kc21fcGF0aCAmJgogCQkJCWV2YWwgIiRAIiAmJgogCQkJCWlmIHRlc3QgLW4gIiRyZWN1cnNpdmUiCiAJCQkJdGhlbgogCQkJCQljbWRfZm9yZWFjaCAiLS1yZWN1cnNpdmUiICIkQCIKIAkJCQlmaQogCQkJKSA8JjMgMzwmLSB8fAotCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiU3RvcHBpbmcgYXQgJ1wkc21fcGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIikiCisJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJTdG9wcGluZyBhdCAnXCRwcmVmaXhcJGRpc3BsYXlwYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iKSIKIAkJZmkKIAlkb25lCiB9CkBAIC01MjQsMTIgKzU5MCwxNCBAQAogCQlkaWVfaWZfdW5tYXRjaGVkICIkbW9kZSIKIAkJbmFtZT0kKG1vZHVsZV9uYW1lICIkc21fcGF0aCIpIHx8IGV4aXQKIAorCQlkaXNwbGF5cGF0aD0kKHJlbGF0aXZlX3BhdGggIiRzbV9wYXRoIikKKwogCQkjIENvcHkgdXJsIHNldHRpbmcgd2hlbiBpdCBpcyBub3Qgc2V0IHlldAogCQlpZiB0ZXN0IC16ICIkKGdpdCBjb25maWcgInN1Ym1vZHVsZS4kbmFtZS51cmwiKSIKIAkJdGhlbgogCQkJdXJsPSQoZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuIiRuYW1lIi51cmwpCiAJCQl0ZXN0IC16ICIkdXJsIiAmJgotCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnXCRzbV9wYXRoJyBpbiAuZ2l0bW9kdWxlcyIpIgorCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMiKSIKIAogCQkJIyBQb3NzaWJseSBhIHVybCByZWxhdGl2ZSB0byBwYXJlbnQKIAkJCWNhc2UgIiR1cmwiIGluCkBAIC01MzgsOSArNjA2LDkgQEAKIAkJCQk7OwogCQkJZXNhYwogCQkJZ2l0IGNvbmZpZyBzdWJtb2R1bGUuIiRuYW1lIi51cmwgIiR1cmwiIHx8Ci0JCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnXCRzbV9wYXRoJyIpIgorCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCiAKLQkJCXNheSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSAnXCRuYW1lJyAoXCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJ1wkc21fcGF0aCciKSIKKwkJCXNheSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSAnXCRuYW1lJyAoXCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCiAJCWZpCiAKIAkJIyBDb3B5ICJ1cGRhdGUiIHNldHRpbmcgd2hlbiBpdCBpcyBub3Qgc2V0IHlldApAQCAtNTQ4LDcgKzYxNiw3IEBACiAJCXRlc3QgLXogIiR1cGQiIHx8CiAJCXRlc3QgLW4gIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuIiRuYW1lIi51cGRhdGUpIiB8fAogCQlnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVwZGF0ZSAiJHVwZCIgfHwKLQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnXCRzbV9wYXRoJyIpIgorCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgogCWRvbmUKIH0KIApAQCAtNTk0LDI3ICs2NjIsMjkgQEAKIAkJZGllX2lmX3VubWF0Y2hlZCAiJG1vZGUiCiAJCW5hbWU9JChtb2R1bGVfbmFtZSAiJHNtX3BhdGgiKSB8fCBleGl0CiAKKwkJZGlzcGxheXBhdGg9JChyZWxhdGl2ZV9wYXRoICIkc21fcGF0aCIpCisKIAkJIyBSZW1vdmUgdGhlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgKHVubGVzcyB0aGUgdXNlciBhbHJlYWR5IGRpZCBpdCkKIAkJaWYgdGVzdCAtZCAiJHNtX3BhdGgiCiAJCXRoZW4KIAkJCSMgUHJvdGVjdCBzdWJtb2R1bGVzIGNvbnRhaW5pbmcgYSAuZ2l0IGRpcmVjdG9yeQogCQkJaWYgdGVzdCAtZCAiJHNtX3BhdGgvLmdpdCIKIAkJCXRoZW4KLQkJCQllY2hvID4mMiAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJ1wkc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIpIgorCQkJCWVjaG8gPiYyICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnXCRkaXNwbGF5cGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIpIgogCQkJCWRpZSAiJChldmFsX2dldHRleHQgIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIpIgogCQkJZmkKIAogCQkJaWYgdGVzdCAteiAiJGZvcmNlIgogCQkJdGhlbgogCQkJCWdpdCBybSAtcW4gIiRzbV9wYXRoIiB8fAotCQkJCWRpZSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJ1wkc21fcGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gZGlzY2FyZCB0aGVtIikiCisJCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnXCRkaXNwbGF5cGF0aCcgY29udGFpbnMgbG9jYWwgbW9kaWZpY2F0aW9uczsgdXNlICctZicgdG8gZGlzY2FyZCB0aGVtIikiCiAJCQlmaQogCQkJcm0gLXJmICIkc21fcGF0aCIgJiYKLQkJCXNheSAiJChldmFsX2dldHRleHQgIkNsZWFyZWQgZGlyZWN0b3J5ICdcJHNtX3BhdGgnIikiIHx8Ci0JCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJ1wkc21fcGF0aCciKSIKKwkJCXNheSAiJChldmFsX2dldHRleHQgIkNsZWFyZWQgZGlyZWN0b3J5ICdcJGRpc3BsYXlwYXRoJyIpIiB8fAorCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICdcJGRpc3BsYXlwYXRoJyIpIgogCQlmaQogCi0JCW1rZGlyICIkc21fcGF0aCIgfHwgc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICdcJHNtX3BhdGgnIikiCisJCW1rZGlyICIkc21fcGF0aCIgfHwgc2F5ICIkKGV2YWxfZ2V0dGV4dCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICdcJGRpc3BsYXlwYXRoJyIpIgogCiAJCSMgUmVtb3ZlIHRoZSAuZ2l0L2NvbmZpZyBlbnRyaWVzICh1bmxlc3MgdGhlIHVzZXIgYWxyZWFkeSBkaWQgaXQpCiAJCWlmIHRlc3QgLW4gIiQoZ2l0IGNvbmZpZyAtLWdldC1yZWdleHAgc3VibW9kdWxlLiIkbmFtZVwuIikiCkBAIC02MjMsNyArNjkzLDcgQEAKIAkJCSMgdGhlIHVzZXIgbGF0ZXIgZGVjaWRlcyB0byBpbml0IHRoaXMgc3VibW9kdWxlIGFnYWluCiAJCQl1cmw9JChnaXQgY29uZmlnIHN1Ym1vZHVsZS4iJG5hbWUiLnVybCkKIAkJCWdpdCBjb25maWcgLS1yZW1vdmUtc2VjdGlvbiBzdWJtb2R1bGUuIiRuYW1lIiAyPi9kZXYvbnVsbCAmJgotCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlICdcJG5hbWUnIChcJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICdcJHNtX3BhdGgnIikiCisJCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgJ1wkbmFtZScgKFwkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJ1wkZGlzcGxheXBhdGgnIikiCiAJCWZpCiAJZG9uZQogfQpAQCAtNjc2LDYgKzc0NiwxNCBAQAogCQktLWNoZWNrb3V0KQogCQkJdXBkYXRlPSJjaGVja291dCIKIAkJCTs7CisJCS0tZGVwdGgpCisJCQljYXNlICIkMiIgaW4gJycpIHVzYWdlIDs7IGVzYWMKKwkJCWRlcHRoPSItLWRlcHRoPSQyIgorCQkJc2hpZnQKKwkJCTs7CisJCS0tZGVwdGg9KikKKwkJCWRlcHRoPSQxCisJCQk7OwogCQktLSkKIAkJCXNoaWZ0CiAJCQlicmVhawpAQCAtNzE3LDkgKzc5NSwxMSBAQAogCQkJdXBkYXRlX21vZHVsZT0kKGdpdCBjb25maWcgc3VibW9kdWxlLiIkbmFtZSIudXBkYXRlKQogCQlmaQogCisJCWRpc3BsYXlwYXRoPSQocmVsYXRpdmVfcGF0aCAiJHByZWZpeCRzbV9wYXRoIikKKwogCQlpZiB0ZXN0ICIkdXBkYXRlX21vZHVsZSIgPSAibm9uZSIKIAkJdGhlbgotCQkJZWNobyAiU2tpcHBpbmcgc3VibW9kdWxlICckcHJlZml4JHNtX3BhdGgnIgorCQkJZWNobyAiU2tpcHBpbmcgc3VibW9kdWxlICckZGlzcGxheXBhdGgnIgogCQkJY29udGludWUKIAkJZmkKIApAQCAtNzI4LDIwICs4MDgsMjAgQEAKIAkJCSMgT25seSBtZW50aW9uIHVuaW5pdGlhbGl6ZWQgc3VibW9kdWxlcyB3aGVuIGl0cwogCQkJIyBwYXRoIGhhdmUgYmVlbiBzcGVjaWZpZWQKIAkJCXRlc3QgIiQjIiAhPSAiMCIgJiYKLQkJCXNheSAiJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCcgbm90IGluaXRpYWxpemVkCisJCQlzYXkgIiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCcgbm90IGluaXRpYWxpemVkCiBNYXliZSB5b3Ugd2FudCB0byB1c2UgJ3VwZGF0ZSAtLWluaXQnPyIpIgogCQkJY29udGludWUKIAkJZmkKIAogCQlpZiAhIHRlc3QgLWQgIiRzbV9wYXRoIi8uZ2l0IC1vIC1mICIkc21fcGF0aCIvLmdpdAogCQl0aGVuCi0JCQltb2R1bGVfY2xvbmUgIiRzbV9wYXRoIiAiJG5hbWUiICIkdXJsIiAiJHJlZmVyZW5jZSIgfHwgZXhpdAorCQkJbW9kdWxlX2Nsb25lICIkc21fcGF0aCIgIiRuYW1lIiAiJHVybCIgIiRyZWZlcmVuY2UiICIkZGVwdGgiIHx8IGV4aXQKIAkJCWNsb25lZF9tb2R1bGVzPSIkY2xvbmVkX21vZHVsZXM7JG5hbWUiCiAJCQlzdWJzaGExPQogCQllbHNlCiAJCQlzdWJzaGExPSQoY2xlYXJfbG9jYWxfZ2l0X2VudjsgY2QgIiRzbV9wYXRoIiAmJgogCQkJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkgfHwKLQkJCWRpZSAiJChldmFsX2dldHRleHQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgorCQkJZGllICIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAkJZmkKIAogCQlpZiB0ZXN0IC1uICIkcmVtb3RlIgpAQCAtNzc0LDcgKzg1NCw3IEBACiAJCQkJKGNsZWFyX2xvY2FsX2dpdF9lbnY7IGNkICIkc21fcGF0aCIgJiYKIAkJCQkJKCAocmV2PSQoZ2l0IHJldi1saXN0IC1uIDEgJHNoYTEgLS1ub3QgLS1hbGwgMj4vZGV2L251bGwpICYmCiAJCQkJCSB0ZXN0IC16ICIkcmV2IikgfHwgZ2l0LWZldGNoKSkgfHwKLQkJCQlkaWUgIiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgorCQkJCWRpZSAiJChldmFsX2dldHRleHQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAkJCWZpCiAKIAkJCSMgSXMgdGhpcyBzb21ldGhpbmcgd2UganVzdCBjbG9uZWQ/CkBAIC03ODgsMjAgKzg2OCwyNiBAQAogCQkJY2FzZSAiJHVwZGF0ZV9tb2R1bGUiIGluCiAJCQlyZWJhc2UpCiAJCQkJY29tbWFuZD0iZ2l0IHJlYmFzZSIKLQkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIHJlYmFzZSAnXCRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnIikiCi0JCQkJc2F5X21zZz0iJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCc6IHJlYmFzZWQgaW50byAnXCRzaGExJyIpIgorCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJVbmFibGUgdG8gcmViYXNlICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgorCQkJCXNheV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCc6IHJlYmFzZWQgaW50byAnXCRzaGExJyIpIgogCQkJCW11c3RfZGllX29uX2ZhaWx1cmU9eWVzCiAJCQkJOzsKIAkJCW1lcmdlKQogCQkJCWNvbW1hbmQ9ImdpdCBtZXJnZSIKLQkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIG1lcmdlICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCciKSIKLQkJCQlzYXlfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJzogbWVyZ2VkIGluICdcJHNoYTEnIikiCisJCQkJZGllX21zZz0iJChldmFsX2dldHRleHQgIlVuYWJsZSB0byBtZXJnZSAnXCRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKKwkJCQlzYXlfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkZGlzcGxheXBhdGgnOiBtZXJnZWQgaW4gJ1wkc2hhMSciKSIKKwkJCQltdXN0X2RpZV9vbl9mYWlsdXJlPXllcworCQkJCTs7CisJCQkhKikKKwkJCQljb21tYW5kPSIke3VwZGF0ZV9tb2R1bGUjIX0iCisJCQkJZGllX21zZz0iJChldmFsX2dldHRleHQgIkV4ZWN1dGlvbiBvZiAnXCRjb21tYW5kIFwkc2hhMScgZmFpbGVkIGluIHN1Ym1vZHVsZSAgcGF0aCAnXCRwcmVmaXhcJHNtX3BhdGgnIikiCisJCQkJc2F5X21zZz0iJChldmFsX2dldHRleHQgIlN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCc6ICdcJGNvbW1hbmQgXCRzaGExJyIpIgogCQkJCW11c3RfZGllX29uX2ZhaWx1cmU9eWVzCiAJCQkJOzsKIAkJCSopCiAJCQkJY29tbWFuZD0iZ2l0IGNoZWNrb3V0ICRzdWJmb3JjZSAtcSIKLQkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIGNoZWNrb3V0ICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCciKSIKLQkJCQlzYXlfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiU3VibW9kdWxlIHBhdGggJ1wkcHJlZml4XCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJ1wkc2hhMSciKSIKKwkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiVW5hYmxlIHRvIGNoZWNrb3V0ICdcJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICdcJGRpc3BsYXlwYXRoJyIpIgorCQkJCXNheV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJTdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCc6IGNoZWNrZWQgb3V0ICdcJHNoYTEnIikiCiAJCQkJOzsKIAkJCWVzYWMKIApAQCAtODI4LDcgKzkxNCw3IEBACiAJCQlyZXM9JD8KIAkJCWlmIHRlc3QgJHJlcyAtZ3QgMAogCQkJdGhlbgotCQkJCWRpZV9tc2c9IiQoZXZhbF9nZXR0ZXh0ICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICdcJHByZWZpeFwkc21fcGF0aCciKSIKKwkJCQlkaWVfbXNnPSIkKGV2YWxfZ2V0dGV4dCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnXCRkaXNwbGF5cGF0aCciKSIKIAkJCQlpZiB0ZXN0ICRyZXMgLWVxIDEKIAkJCQl0aGVuCiAJCQkJCWVycj0iJHtlcnJ9OyRkaWVfbXNnIgpAQCAtOTQyLDYgKzEwMjgsNyBAQAogCWZpCiAKIAljZF90b190b3BsZXZlbAorCWV2YWwgInNldCAkKGdpdCByZXYtcGFyc2UgLS1zcSAtLXByZWZpeCAiJHd0X3ByZWZpeCIgLS0gIiRAIikiCiAJIyBHZXQgbW9kaWZpZWQgbW9kdWxlcyBjYXJlZCBieSB1c2VyCiAJbW9kdWxlcz0kKGdpdCAkZGlmZl9jbWQgJGNhY2hlZCAtLWlnbm9yZS1zdWJtb2R1bGVzPWRpcnR5IC0tcmF3ICRoZWFkIC0tICIkQCIgfAogCQlzYW5lX2VncmVwICdeOihbMC03XSogKT8xNjAwMDAnIHwKQEAgLTk5MSwxNiArMTA3OCwxOCBAQAogCQkhIEdJVF9ESVI9IiRuYW1lLy5naXQiIGdpdC1yZXYtcGFyc2UgLXEgLS12ZXJpZnkgJHNoYTFfZHN0XjAgPi9kZXYvbnVsbCAmJgogCQltaXNzaW5nX2RzdD10CiAKKwkJZGlzcGxheV9uYW1lPSQocmVsYXRpdmVfcGF0aCAiJG5hbWUiKQorCiAJCXRvdGFsX2NvbW1pdHM9CiAJCWNhc2UgIiRtaXNzaW5nX3NyYywkbWlzc2luZ19kc3QiIGluCiAJCXQsKQotCQkJZXJybXNnPSIkKGV2YWxfZ2V0dGV4dCAiICBXYXJuOiBcJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCBcJHNoYTFfc3JjIikiCisJCQllcnJtc2c9IiQoZXZhbF9nZXR0ZXh0ICIgIFdhcm46IFwkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgXCRzaGExX3NyYyIpIgogCQkJOzsKIAkJLHQpCi0JCQllcnJtc2c9IiQoZXZhbF9nZXR0ZXh0ICIgIFdhcm46IFwkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0IFwkc2hhMV9kc3QiKSIKKwkJCWVycm1zZz0iJChldmFsX2dldHRleHQgIiAgV2FybjogXCRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCBcJHNoYTFfZHN0IikiCiAJCQk7OwogCQl0LHQpCi0JCQllcnJtc2c9IiQoZXZhbF9nZXR0ZXh0ICIgIFdhcm46IFwkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyBcJHNoYTFfc3JjIGFuZCBcJHNoYTFfZHN0IikiCisJCQllcnJtc2c9IiQoZXZhbF9nZXR0ZXh0ICIgIFdhcm46IFwkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzIFwkc2hhMV9zcmMgYW5kIFwkc2hhMV9kc3QiKSIKIAkJCTs7CiAJCSopCiAJCQllcnJtc2c9CkBAIC0xMDI5LDEyICsxMTE4LDEyIEBACiAJCQlzdWJtb2R1bGU9IiQoZ2V0dGV4dCAic3VibW9kdWxlIikiCiAJCQlpZiB0ZXN0ICRtb2RfZHN0ID0gMTYwMDAwCiAJCQl0aGVuCi0JCQkJZWNobyAiKiAkbmFtZSAkc2hhMV9hYmJyX3NyYygkYmxvYiktPiRzaGExX2FiYnJfZHN0KCRzdWJtb2R1bGUpJHRvdGFsX2NvbW1pdHM6IgorCQkJCWVjaG8gIiogJGRpc3BsYXlfbmFtZSAkc2hhMV9hYmJyX3NyYygkYmxvYiktPiRzaGExX2FiYnJfZHN0KCRzdWJtb2R1bGUpJHRvdGFsX2NvbW1pdHM6IgogCQkJZWxzZQotCQkJCWVjaG8gIiogJG5hbWUgJHNoYTFfYWJicl9zcmMoJHN1Ym1vZHVsZSktPiRzaGExX2FiYnJfZHN0KCRibG9iKSR0b3RhbF9jb21taXRzOiIKKwkJCQllY2hvICIqICRkaXNwbGF5X25hbWUgJHNoYTFfYWJicl9zcmMoJHN1Ym1vZHVsZSktPiRzaGExX2FiYnJfZHN0KCRibG9iKSR0b3RhbF9jb21taXRzOiIKIAkJCWZpCiAJCWVsc2UKLQkJCWVjaG8gIiogJG5hbWUgJHNoYTFfYWJicl9zcmMuLi4kc2hhMV9hYmJyX2RzdCR0b3RhbF9jb21taXRzOiIKKwkJCWVjaG8gIiogJGRpc3BsYXlfbmFtZSAkc2hhMV9hYmJyX3NyYy4uLiRzaGExX2FiYnJfZHN0JHRvdGFsX2NvbW1pdHM6IgogCQlmaQogCQlpZiB0ZXN0IC1uICIkZXJybXNnIgogCQl0aGVuCkBAIC0xMTE4LDcgKzEyMDcsNyBAQAogCQlkaWVfaWZfdW5tYXRjaGVkICIkbW9kZSIKIAkJbmFtZT0kKG1vZHVsZV9uYW1lICIkc21fcGF0aCIpIHx8IGV4aXQKIAkJdXJsPSQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuIiRuYW1lIi51cmwpCi0JCWRpc3BsYXlwYXRoPSIkcHJlZml4JHNtX3BhdGgiCisJCWRpc3BsYXlwYXRoPSQocmVsYXRpdmVfcGF0aCAiJHByZWZpeCRzbV9wYXRoIikKIAkJaWYgdGVzdCAiJHN0YWdlIiA9IFUKIAkJdGhlbgogCQkJc2F5ICJVJHNoYTEgJGRpc3BsYXlwYXRoIgpAQCAtMTEyOSwxNiArMTIxOCwxNiBAQAogCQkJc2F5ICItJHNoYTEgJGRpc3BsYXlwYXRoIgogCQkJY29udGludWU7CiAJCWZpCi0JCXNldF9uYW1lX3JldiAiJHNtX3BhdGgiICIkc2hhMSIKIAkJaWYgZ2l0IGRpZmYtZmlsZXMgLS1pZ25vcmUtc3VibW9kdWxlcz1kaXJ0eSAtLXF1aWV0IC0tICIkc21fcGF0aCIKIAkJdGhlbgorCQkJc2V0X25hbWVfcmV2ICIkc21fcGF0aCIgIiRzaGExIgogCQkJc2F5ICIgJHNoYTEgJGRpc3BsYXlwYXRoJHJldm5hbWUiCiAJCWVsc2UKIAkJCWlmIHRlc3QgLXogIiRjYWNoZWQiCiAJCQl0aGVuCiAJCQkJc2hhMT0kKGNsZWFyX2xvY2FsX2dpdF9lbnY7IGNkICIkc21fcGF0aCIgJiYgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKQotCQkJCXNldF9uYW1lX3JldiAiJHNtX3BhdGgiICIkc2hhMSIKIAkJCWZpCisJCQlzZXRfbmFtZV9yZXYgIiRzbV9wYXRoIiAiJHNoYTEiCiAJCQlzYXkgIiskc2hhMSAkZGlzcGxheXBhdGgkcmV2bmFtZSIKIAkJZmkKIApAQCAtMTIxMyw3ICsxMzAyLDggQEAKIAogCQlpZiBnaXQgY29uZmlnICJzdWJtb2R1bGUuJG5hbWUudXJsIiA+L2Rldi9udWxsIDI+L2Rldi9udWxsCiAJCXRoZW4KLQkJCXNheSAiJChldmFsX2dldHRleHQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJ1wkcHJlZml4XCRzbV9wYXRoJyIpIgorCQkJZGlzcGxheXBhdGg9JChyZWxhdGl2ZV9wYXRoICIkcHJlZml4JHNtX3BhdGgiKQorCQkJc2F5ICIkKGV2YWxfZ2V0dGV4dCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnXCRkaXNwbGF5cGF0aCciKSIKIAkJCWdpdCBjb25maWcgc3VibW9kdWxlLiIkbmFtZSIudXJsICIkc3VwZXJfY29uZmlnX3VybCIKIAogCQkJaWYgdGVzdCAtZSAiJHNtX3BhdGgiLy5naXQKZGlmZiAtLWdpdCBhL2dpdC1zdm4ucGVybCBiL2dpdC1zdm4ucGVybAppbmRleCA2YzdiZDk1Li5mZjFjZTNkIDEwMDc1NQotLS0gYS9naXQtc3ZuLnBlcmwKKysrIGIvZ2l0LXN2bi5wZXJsCkBAIC0xMTMsNyArMTEzLDcgQEAKIAkkX3RlbXBsYXRlLCAkX3NoYXJlZCwKIAkkX3ZlcnNpb24sICRfZmV0Y2hfYWxsLCAkX25vX3JlYmFzZSwgJF9mZXRjaF9wYXJlbnQsCiAJJF9iZWZvcmUsICRfYWZ0ZXIsCi0JJF9tZXJnZSwgJF9zdHJhdGVneSwgJF9wcmVzZXJ2ZV9tZXJnZXMsICRfZHJ5X3J1biwgJF9sb2NhbCwKKwkkX21lcmdlLCAkX3N0cmF0ZWd5LCAkX3ByZXNlcnZlX21lcmdlcywgJF9kcnlfcnVuLCAkX3BhcmVudHMsICRfbG9jYWwsCiAJJF9wcmVmaXgsICRfbm9fY2hlY2tvdXQsICRfdXJsLCAkX3ZlcmJvc2UsCiAJJF9jb21taXRfdXJsLCAkX3RhZywgJF9tZXJnZV9pbmZvLCAkX2ludGVyYWN0aXZlKTsKIApAQCAtMTI2LDYgKzEyNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICdjb25maWctZGlyPXMnID0+IFwkR2l0OjpTVk46OlJhOjpjb25maWdfZGlyLAogICAgICAgICAgICAgICAgICAgICAnbm8tYXV0aC1jYWNoZScgPT4gXCRHaXQ6OlNWTjo6UHJvbXB0Ojpfbm9fYXV0aF9jYWNoZSwKICAgICAgICAgICAgICAgICAgICAgJ2lnbm9yZS1wYXRocz1zJyA9PiBcJEdpdDo6U1ZOOjpGZXRjaGVyOjpfaWdub3JlX3JlZ2V4LAorICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZS1wYXRocz1zJyA9PiBcJEdpdDo6U1ZOOjpGZXRjaGVyOjpfaW5jbHVkZV9yZWdleCwKICAgICAgICAgICAgICAgICAgICAgJ2lnbm9yZS1yZWZzPXMnID0+IFwkR2l0OjpTVk46OlJhOjpfaWdub3JlX3JlZnNfcmVnZXggKTsKIG15ICVmY19vcHRzID0gKCAnZm9sbG93LXBhcmVudHxmb2xsb3chJyA9PiBcJEdpdDo6U1ZOOjpfZm9sbG93X3BhcmVudCwKIAkJJ2F1dGhvcnMtZmlsZXxBPXMnID0+IFwkX2F1dGhvcnMsCkBAIC0yMDIsNiArMjAzLDcgQEAKIAkgICAgICAgICAgICB7ICdtZXNzYWdlfG09cycgPT4gXCRfbWVzc2FnZSwKIAkgICAgICAgICAgICAgICdkZXN0aW5hdGlvbnxkPXMnID0+IFwkX2JyYW5jaF9kZXN0LAogCSAgICAgICAgICAgICAgJ2RyeS1ydW58bicgPT4gXCRfZHJ5X3J1biwKKwkgICAgICAgICAgICAgICdwYXJlbnRzJyA9PiBcJF9wYXJlbnRzLAogCSAgICAgICAgICAgICAgJ3RhZ3x0JyA9PiBcJF90YWcsCiAJICAgICAgICAgICAgICAndXNlcm5hbWU9cycgPT4gXCRHaXQ6OlNWTjo6UHJvbXB0OjpfdXNlcm5hbWUsCiAJICAgICAgICAgICAgICAnY29tbWl0LXVybD1zJyA9PiBcJF9jb21taXRfdXJsIH0gXSwKQEAgLTIxMCw2ICsyMTIsNyBAQAogCSAgICAgICAgIHsgJ21lc3NhZ2V8bT1zJyA9PiBcJF9tZXNzYWdlLAogCSAgICAgICAgICAgJ2Rlc3RpbmF0aW9ufGQ9cycgPT4gXCRfYnJhbmNoX2Rlc3QsCiAJICAgICAgICAgICAnZHJ5LXJ1bnxuJyA9PiBcJF9kcnlfcnVuLAorCSAgICAgICAgICAgJ3BhcmVudHMnID0+IFwkX3BhcmVudHMsCiAJICAgICAgICAgICAndXNlcm5hbWU9cycgPT4gXCRHaXQ6OlNWTjo6UHJvbXB0OjpfdXNlcm5hbWUsCiAJICAgICAgICAgICAnY29tbWl0LXVybD1zJyA9PiBcJF9jb21taXRfdXJsIH0gXSwKIAknc2V0LXRyZWUnID0+IFsgXCZjbWRfc2V0X3RyZWUsCkBAIC00NzAsNiArNDczLDkgQEAKIAlteSAkaWdub3JlX3BhdGhzX3JlZ2V4ID0gXCRHaXQ6OlNWTjo6RmV0Y2hlcjo6X2lnbm9yZV9yZWdleDsKIAljb21tYW5kX25vaXN5KCdjb25maWcnLCAiJHBmeC5pZ25vcmUtcGF0aHMiLCAkJGlnbm9yZV9wYXRoc19yZWdleCkKIAkJaWYgZGVmaW5lZCAkJGlnbm9yZV9wYXRoc19yZWdleDsKKwlteSAkaW5jbHVkZV9wYXRoc19yZWdleCA9IFwkR2l0OjpTVk46OkZldGNoZXI6Ol9pbmNsdWRlX3JlZ2V4OworCWNvbW1hbmRfbm9pc3koJ2NvbmZpZycsICIkcGZ4LmluY2x1ZGUtcGF0aHMiLCAkJGluY2x1ZGVfcGF0aHNfcmVnZXgpCisJCWlmIGRlZmluZWQgJCRpbmNsdWRlX3BhdGhzX3JlZ2V4OwogCW15ICRpZ25vcmVfcmVmc19yZWdleCA9IFwkR2l0OjpTVk46OlJhOjpfaWdub3JlX3JlZnNfcmVnZXg7CiAJY29tbWFuZF9ub2lzeSgnY29uZmlnJywgIiRwZnguaWdub3JlLXJlZnMiLCAkJGlnbm9yZV9yZWZzX3JlZ2V4KQogCQlpZiBkZWZpbmVkICQkaWdub3JlX3JlZnNfcmVnZXg7CkBAIC02NjksMTIgKzY3NSwxNCBAQAogfQogCiBzdWIgbWVyZ2VfbWVyZ2VfaW5mbyB7Ci0JbXkgKCRtZXJnZWluZm9fb25lLCAkbWVyZ2VpbmZvX3R3bykgPSBAXzsKKwlteSAoJG1lcmdlaW5mb19vbmUsICRtZXJnZWluZm9fdHdvLCAkaWdub3JlX2JyYW5jaCkgPSBAXzsKIAlteSAlcmVzdWx0X2hhc2ggPSAoKTsKIAogCW1lcmdlX3JldnNfaW50b19oYXNoKFwlcmVzdWx0X2hhc2gsICRtZXJnZWluZm9fb25lKTsKIAltZXJnZV9yZXZzX2ludG9faGFzaChcJXJlc3VsdF9oYXNoLCAkbWVyZ2VpbmZvX3R3byk7CiAKKwlkZWxldGUgJHJlc3VsdF9oYXNoeyRpZ25vcmVfYnJhbmNofSBpZiAkaWdub3JlX2JyYW5jaDsKKwogCW15ICRyZXN1bHQgPSAnJzsKIAkjIFNvcnQgYmVsb3cgaXMgZm9yIGNvbnNpc3RlbmN5J3Mgc2FrZQogCWZvciBteSAkYnJhbmNobmFtZSAoc29ydCBrZXlzKCVyZXN1bHRfaGFzaCkpIHsKQEAgLTY5NSw2ICs3MDMsNyBAQAogCQlteSAkYWxsX3BhcmVudHNfb2sgPSAxOwogCQlteSAkYWdncmVnYXRlX21lcmdlaW5mbyA9ICcnOwogCQlteSAkcm9vdHVybCA9ICRncy0+cmVwb3Nfcm9vdDsKKwkJbXkgKCR0YXJnZXRfYnJhbmNoKSA9ICRncy0+ZnVsbF9wdXNodXJsID1+IC9eXFEkcm9vdHVybFxFKC4qKS87CiAKIAkJaWYgKGRlZmluZWQoJHJld3JpdHRlbl9wYXJlbnQpKSB7CiAJCQkjIFJlcGxhY2UgZmlyc3QgcGFyZW50IHdpdGggbmV3bHktcmV3cml0dGVuIHZlcnNpb24KQEAgLTcyNiw3ICs3MzUsOCBAQAogCQkJIyBNZXJnZSBwcmV2aW91cyBtZXJnZWluZm8gdmFsdWVzCiAJCQkkYWdncmVnYXRlX21lcmdlaW5mbyA9CiAJCQkJbWVyZ2VfbWVyZ2VfaW5mbygkYWdncmVnYXRlX21lcmdlaW5mbywKLQkJCQkJCQkJICRwYXJfbWVyZ2VpbmZvLCAwKTsKKwkJCQkJCQkJJHBhcl9tZXJnZWluZm8sCisJCQkJCQkJCSR0YXJnZXRfYnJhbmNoKTsKIAogCQkJbmV4dCBpZiAkcGFyZW50IGVxICRwYXJlbnRzWzBdOyAjIFNraXAgZmlyc3QgcGFyZW50CiAJCQkjIEFkZCBuZXcgY2hhbmdlcyBiZWluZyBwbGFjZWQgaW4gdHJlZSBieSBtZXJnZQpAQCAtNzY5LDcgKzc3OSw4IEBACiAJCQlteSAkbmV3bWVyZ2VpbmZvID0gIiRicmFuY2hwYXRoOiIgLiBqb2luKCcsJywgQHJldnNpbik7CiAJCQkkYWdncmVnYXRlX21lcmdlaW5mbyA9CiAJCQkJbWVyZ2VfbWVyZ2VfaW5mbygkYWdncmVnYXRlX21lcmdlaW5mbywKLQkJCQkJCQkJICRuZXdtZXJnZWluZm8sIDEpOworCQkJCQkJCQkkbmV3bWVyZ2VpbmZvLAorCQkJCQkJCQkkdGFyZ2V0X2JyYW5jaCk7CiAJCX0KIAkJaWYgKCRhbGxfcGFyZW50c19vayBhbmQgJGFnZ3JlZ2F0ZV9tZXJnZWluZm8pIHsKIAkJCXJldHVybiAkYWdncmVnYXRlX21lcmdlaW5mbzsKQEAgLTgyMCw3ICs4MzEsNyBAQAogc3ViIGNtZF9kY29tbWl0IHsKIAlteSAkaGVhZCA9IHNoaWZ0OwogCWNvbW1hbmRfbm9pc3kocXcvdXBkYXRlLWluZGV4IC0tcmVmcmVzaC8pOwotCWdpdF9jbWRfdHJ5IHsgY29tbWFuZF9vbmVsaW5lKHF3L2RpZmYtaW5kZXggLS1xdWlldCBIRUFELykgfQorCWdpdF9jbWRfdHJ5IHsgY29tbWFuZF9vbmVsaW5lKHF3L2RpZmYtaW5kZXggLS1xdWlldCBIRUFEIC0tLykgfQogCQknQ2Fubm90IGRjb21taXQgd2l0aCBhIGRpcnR5IGluZGV4LiAgQ29tbWl0IHlvdXIgY2hhbmdlcyBmaXJzdCwgJwogCQkuICJvciBzdGFzaCB0aGVtIHdpdGggYGdpdCBzdGFzaCcuXG4iOwogCSRoZWFkIHx8PSAnSEVBRCc7CkBAIC0xMTYzLDYgKzExNzQsMTAgQEAKIAkJJGN0eC0+bHMoJGRzdCwgJ0hFQUQnLCAwKTsKIAl9IGFuZCBkaWUgImJyYW5jaCAke2JyYW5jaF9uYW1lfSBhbHJlYWR5IGV4aXN0c1xuIjsKIAorCWlmICgkX3BhcmVudHMpIHsKKwkJbWtfcGFyZW50X2RpcnMoJGN0eCwgJGRzdCk7CisJfQorCiAJcHJpbnQgIkNvcHlpbmcgJHtzcmN9IGF0IHIke3Jldn0gdG8gJHtkc3R9Li4uXG4iOwogCSRjdHgtPmNvcHkoJHNyYywgJHJldiwgJGRzdCkKIAkJdW5sZXNzICRfZHJ5X3J1bjsKQEAgLTExNzAsNiArMTE4NSwxNyBAQAogCSRncy0+ZmV0Y2hfYWxsOwogfQogCitzdWIgbWtfcGFyZW50X2RpcnMgeworCW15ICgkY3R4LCAkcGFyZW50KSA9IEBfOworCSRwYXJlbnQgPX4gc3svW14vXSokfXt9OworCisJaWYgKCFldmFseyRjdHgtPmxzKCRwYXJlbnQsICdIRUFEJywgMCl9KSB7CisJCW1rX3BhcmVudF9kaXJzKCRjdHgsICRwYXJlbnQpOworCQlwcmludCAiQ3JlYXRpbmcgcGFyZW50IGZvbGRlciAke3BhcmVudH0gLi4uXG4iOworCQkkY3R4LT5ta2RpcigkcGFyZW50KSB1bmxlc3MgJF9kcnlfcnVuOworCX0KK30KKwogc3ViIGNtZF9maW5kX3JldiB7CiAJbXkgJHJldmlzaW9uX29yX2hhc2ggPSBzaGlmdCBvciBkaWUgIlNWTiBvciBnaXQgcmV2aXNpb24gcmVxdWlyZWQgIiwKIAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXMgYSBjb21tYW5kLWxpbmUgYXJndW1lbnRcbiI7CkBAIC0xMjIwLDcgKzEyNDYsNyBAQAogCQlyZXR1cm47CiAJfQogCWlmIChjb21tYW5kKHF3L2RpZmYtaW5kZXggSEVBRCAtLS8pKSB7Ci0JCXByaW50IFNUREVSUiAiQ2Fubm90IHJlYmFzZSB3aXRoIHVuY29tbWl0ZWQgY2hhbmdlczpcbiI7CisJCXByaW50IFNUREVSUiAiQ2Fubm90IHJlYmFzZSB3aXRoIHVuY29tbWl0dGVkIGNoYW5nZXM6XG4iOwogCQljb21tYW5kX25vaXN5KCdzdGF0dXMnKTsKIAkJZXhpdCAxOwogCX0KQEAgLTE5MDYsNyArMTkzMiw3IEBACiBzdWIgd29ya2luZ19oZWFkX2luZm8gewogCW15ICgkaGVhZCwgJHJlZnMpID0gQF87CiAJbXkgQGFyZ3MgPSBxdy9yZXYtbGlzdCAtLWZpcnN0LXBhcmVudCAtLXByZXR0eT1tZWRpdW0vOwotCW15ICgkZmgsICRjdHgpID0gY29tbWFuZF9vdXRwdXRfcGlwZShAYXJncywgJGhlYWQpOworCW15ICgkZmgsICRjdHgpID0gY29tbWFuZF9vdXRwdXRfcGlwZShAYXJncywgJGhlYWQsICItLSIpOwogCW15ICRoYXNoOwogCW15ICVtYXg7CiAJd2hpbGUgKDwkZmg+KSB7CmRpZmYgLS1naXQgYS9naXQtd2ViLS1icm93c2Uuc2ggYi9naXQtd2ViLS1icm93c2Uuc2gKaW5kZXggOWY0NDY3OS4uMWQ3MmVjNyAxMDA3NTUKLS0tIGEvZ2l0LXdlYi0tYnJvd3NlLnNoCisrKyBiL2dpdC13ZWItLWJyb3dzZS5zaApAQCAtMzIsOCArMzIsOSBAQAogdmFsaWRfdG9vbCgpIHsKIAljYXNlICIkMSIgaW4KIAlmaXJlZm94IHwgaWNld2Vhc2VsIHwgc2VhbW9ua2V5IHwgaWNlYXBlIHwgXAotCWNocm9tZSB8IGdvb2dsZS1jaHJvbWUgfCBjaHJvbWl1bSB8IGNocm9taXVtLWJyb3dzZXIgfFwKLQlrb25xdWVyb3IgfCBvcGVyYSB8IHczbSB8IGVsaW5rcyB8IGxpbmtzIHwgbHlueCB8IGRpbGxvIHwgb3BlbiB8IHN0YXJ0KQorCWNocm9tZSB8IGdvb2dsZS1jaHJvbWUgfCBjaHJvbWl1bSB8IGNocm9taXVtLWJyb3dzZXIgfCBcCisJa29ucXVlcm9yIHwgb3BlcmEgfCB3M20gfCBlbGlua3MgfCBsaW5rcyB8IGx5bnggfCBkaWxsbyB8IG9wZW4gfCBcCisJc3RhcnQgfCBjeWdzdGFydCkKIAkJOzsgIyBoYXBweQogCSopCiAJCXZhbGlkX2N1c3RvbV90b29sICIkMSIgfHwgcmV0dXJuIDEKQEAgLTEyNyw2ICsxMjgsMTAgQEAKIAlpZiB0ZXN0IC14IC9iaW4vc3RhcnQ7IHRoZW4KIAkJYnJvd3Nlcl9jYW5kaWRhdGVzPSJzdGFydCAkYnJvd3Nlcl9jYW5kaWRhdGVzIgogCWZpCisJIyAvdXNyL2Jpbi9jeWdzdGFydCBpbmRpY2F0ZXMgQ3lnd2luCisJaWYgdGVzdCAteCAvdXNyL2Jpbi9jeWdzdGFydDsgdGhlbgorCQlicm93c2VyX2NhbmRpZGF0ZXM9ImN5Z3N0YXJ0ICRicm93c2VyX2NhbmRpZGF0ZXMiCisJZmkKIAogCWZvciBpIGluICRicm93c2VyX2NhbmRpZGF0ZXM7IGRvCiAJCWluaXRfYnJvd3Nlcl9wYXRoICRpCkBAIC0xNzQsNyArMTc5LDcgQEAKIAkJOzsKIAllc2FjCiAJOzsKLXczbXxlbGlua3N8bGlua3N8bHlueHxvcGVuKQordzNtfGVsaW5rc3xsaW5rc3xseW54fG9wZW58Y3lnc3RhcnQpCiAJIiRicm93c2VyX3BhdGgiICIkQCIKIAk7Owogc3RhcnQpCmRpZmYgLS1naXQgYS9naXQuYyBiL2dpdC5jCmluZGV4IDFhZGExNjkuLjIwMjVmNzcgMTAwNjQ0Ci0tLSBhL2dpdC5jCisrKyBiL2dpdC5jCkBAIC00LDYgKzQsNyBAQAogI2luY2x1ZGUgImhlbHAuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1ZGUgInJ1bi1jb21tYW5kLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCiAKIGNvbnN0IGNoYXIgZ2l0X3VzYWdlX3N0cmluZ1tdID0KIAkiZ2l0IFstLXZlcnNpb25dIFstLWhlbHBdIFstYyBuYW1lPXZhbHVlXVxuIgpAQCAtMTQ2LDYgKzE0NywxMiBAQAogCQkJc2V0ZW52KEdJVF9MSVRFUkFMX1BBVEhTUEVDU19FTlZJUk9OTUVOVCwgIjAiLCAxKTsKIAkJCWlmIChlbnZjaGFuZ2VkKQogCQkJCSplbnZjaGFuZ2VkID0gMTsKKwkJfSBlbHNlIGlmICghc3RyY21wKGNtZCwgIi0tc2hhbGxvdy1maWxlIikpIHsKKwkJCSgqYXJndikrKzsKKwkJCSgqYXJnYyktLTsKKwkJCXNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlKCgqYXJndilbMF0pOworCQkJaWYgKGVudmNoYW5nZWQpCisJCQkJKmVudmNoYW5nZWQgPSAxOwogCQl9IGVsc2UgewogCQkJZnByaW50ZihzdGRlcnIsICJVbmtub3duIG9wdGlvbjogJXNcbiIsIGNtZCk7CiAJCQl1c2FnZShnaXRfdXNhZ2Vfc3RyaW5nKTsKQEAgLTMxNyw2ICszMjQsNyBAQAogCQl7ICJjYXQtZmlsZSIsIGNtZF9jYXRfZmlsZSwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLWF0dHIiLCBjbWRfY2hlY2tfYXR0ciwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLWlnbm9yZSIsIGNtZF9jaGVja19pZ25vcmUsIFJVTl9TRVRVUCB8IE5FRURfV09SS19UUkVFIH0sCisJCXsgImNoZWNrLW1haWxtYXAiLCBjbWRfY2hlY2tfbWFpbG1hcCwgUlVOX1NFVFVQIH0sCiAJCXsgImNoZWNrLXJlZi1mb3JtYXQiLCBjbWRfY2hlY2tfcmVmX2Zvcm1hdCB9LAogCQl7ICJjaGVja291dCIsIGNtZF9jaGVja291dCwgUlVOX1NFVFVQIHwgTkVFRF9XT1JLX1RSRUUgfSwKIAkJeyAiY2hlY2tvdXQtaW5kZXgiLCBjbWRfY2hlY2tvdXRfaW5kZXgsCkBAIC01MDcsOCArNTE1LDkgQEAKIH0KIAogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmF2KQogeworCWNvbnN0IGNoYXIgKiphcmd2ID0gKGNvbnN0IGNoYXIgKiopIGF2OwogCWNvbnN0IGNoYXIgKmNtZDsKIAogCXN0YXJ0dXBfaW5mbyA9ICZnaXRfc3RhcnR1cF9pbmZvOwpAQCAtNTE3LDYgKzUyNiwxMyBAQAogCWlmICghY21kKQogCQljbWQgPSAiZ2l0LWhlbHAiOwogCisJLyoKKwkgKiBBbHdheXMgb3BlbiBmaWxlIGRlc2NyaXB0b3JzIDAvMS8yIHRvIGF2b2lkIGNsb2JiZXJpbmcgZmlsZXMKKwkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG1lc3NpbmcgdXAgd2hlbiB0aGUgcGlwZXMgYXJlIGR1cCdlZAorCSAqIG9udG8gc3RkaW4vc3Rkb3V0L3N0ZGVyciBpbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdlIHNwYXduLgorCSAqLworCXNhbml0aXplX3N0ZGZkcygpOworCiAJZ2l0X3NldHVwX2dldHRleHQoKTsKIAogCS8qCmRpZmYgLS1naXQgYS9naXQucmMgYi9naXQucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNlNmRiOQotLS0gL2Rldi9udWxsCisrKyBiL2dpdC5yYwpAQCAtMCwwICsxLDIyIEBACisxIFZFUlNJT05JTkZPCitGSUxFVkVSU0lPTiAgICAgTUFKT1IsTUlOT1IsUEFUQ0gsMAorUFJPRFVDVFZFUlNJT04gIE1BSk9SLE1JTk9SLFBBVENILDAKK0JFR0lOCisgIEJMT0NLICJTdHJpbmdGaWxlSW5mbyIKKyAgQkVHSU4KKyAgICBCTE9DSyAiMDQwOTA0YjAiICAgLyogTEFOR19FTkdMSVNIL1NVQkxBTkdfRU5HTElTSF9VUywgVW5pY29kZSBDUCAqLworICAgIEJFR0lOCisgICAgICBWQUxVRSAiQ29tcGFueU5hbWUiLCAiVGhlIEdpdCBEZXZlbG9wbWVudCBDb21tdW5pdHlcMCIKKyAgICAgIFZBTFVFICJGaWxlRGVzY3JpcHRpb24iLCAiR2l0IGZvciBXaW5kb3dzXDAiCisgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgImdpdFwwIgorICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAiZ2l0LmV4ZVwwIgorICAgICAgVkFMVUUgIlByb2R1Y3ROYW1lIiwgIkdpdFwwIgorICAgICAgVkFMVUUgIlByb2R1Y3RWZXJzaW9uIiwgR0lUX1ZFUlNJT04gIlwwIgorICAgIEVORAorICBFTkQKKworICBCTE9DSyAiVmFyRmlsZUluZm8iCisgIEJFR0lOCisgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg0MDksIDEyMDAKKyAgRU5ECitFTkQKZGlmZiAtLWdpdCBhL2dpdGstZ2l0L2dpdGsgYi9naXRrLWdpdC9naXRrCmluZGV4IGIzNzA2ZmMuLjVjZDAwZDggMTAwNzU1Ci0tLSBhL2dpdGstZ2l0L2dpdGsKKysrIGIvZ2l0ay1naXQvZ2l0awpAQCAtMTk5OCw2ICsxOTk4LDkgQEAKICAgICByZXR1cm4gW3N0cmluZyBtYXAgeyYmICYgJiB7fX0gW21jICRzdHJdXQogfQogCitwcm9jIGNsZWFyZHJvcHNlbCB7d30geworICAgICR3IHNlbGVjdGlvbiBjbGVhcgorfQogcHJvYyBtYWtlZHJvcGxpc3Qge3cgdmFybmFtZSBhcmdzfSB7CiAgICAgZ2xvYmFsIHVzZV90dGsKICAgICBpZiB7JHVzZV90dGt9IHsKQEAgLTIwMDcsNyArMjAxMCw5IEBACiAgICAgICAgICAgICBpZiB7JGN4ID4gJHdpZHRofSB7c2V0IHdpZHRoICRjeH0KICAgICAgICAgfQogCXNldCBnbSBbdHRrOjpjb21ib2JveCAkdyAtd2lkdGggJHdpZHRoIC1zdGF0ZSByZWFkb25seVwKLQkJICAgIC10ZXh0dmFyaWFibGUgJHZhcm5hbWUgLXZhbHVlcyAkYXJnc10KKwkJICAgIC10ZXh0dmFyaWFibGUgJHZhcm5hbWUgLXZhbHVlcyAkYXJncyBcCisJCSAgICAtZXhwb3J0c2VsZWN0aW9uIGZhbHNlXQorCWJpbmQgJGdtIDw8Q29tYm9ib3hTZWxlY3RlZD4+IFtsaXN0ICRnbSBzZWxlY3Rpb24gY2xlYXJdCiAgICAgfSBlbHNlIHsKIAlzZXQgZ20gW2V2YWwgW2xpbnNlcnQgJGFyZ3MgMCB0a19vcHRpb25NZW51ICR3ICR2YXJuYW1lXV0KICAgICB9CkBAIC0yMDI2LDYgKzIwMzEsOSBAQAogICAgIGdsb2JhbCBoaWdobGlnaHRfZmlsZXMgZ2R0dHlwZQogICAgIGdsb2JhbCBzZWFyY2hzdHJpbmcgc3N0cmluZwogICAgIGdsb2JhbCBiZ2NvbG9yIGZnY29sb3IgYmdsaXN0IGZnbGlzdCBkaWZmY29sb3JzIHNlbGVjdGJnY29sb3IKKyAgICBnbG9iYWwgdWlmZ2NvbG9yIHVpZmdkaXNhYmxlZGNvbG9yCisgICAgZ2xvYmFsIGZpbGVzZXBiZ2NvbG9yIGZpbGVzZXBmZ2NvbG9yCisgICAgZ2xvYmFsIG1lcmdlY29sb3JzIGZvdW5kYmdjb2xvciBjdXJyZW50c2VhcmNoaGl0Ymdjb2xvcgogICAgIGdsb2JhbCBoZWFkY3R4bWVudSBwcm9ncmVzc2NhbnYgcHJvZ3Jlc3NpdGVtIHByb2dyZXNzY29vcmRzIHN0YXR1c3cKICAgICBnbG9iYWwgZnByb2dpdGVtIGZwcm9nY29vcmQgbGFzdHByb2d1cGRhdGUgcHJvZ3VwZGF0ZXBlbmRpbmcKICAgICBnbG9iYWwgcnByb2dpdGVtIHJwcm9nY29vcmQgcm93bnVtc2VsIG51bWNvbW1pdHMKQEAgLTIxNzcsMTAgKzIxODUsMTAgQEAKIAkweDAwLCAweDM4LCAweGZmLCAweDdmLCAweGZmLCAweDdmLCAweGZmLCAweDdmLCAweDAwLCAweDM4LCAweDAwLCAweDFjLAogCTB4MDAsIDB4MGUsIDB4MDAsIDB4MDcsIDB4ODAsIDB4MDMsIDB4YzAsIDB4MDF9OwogICAgIH0KLSAgICBpbWFnZSBjcmVhdGUgYml0bWFwIGJtLWxlZnQgLWRhdGEgJGJtX2xlZnRfZGF0YQotICAgIGltYWdlIGNyZWF0ZSBiaXRtYXAgYm0tbGVmdC1ncmF5IC1kYXRhICRibV9sZWZ0X2RhdGEgLWZvcmVncm91bmQgIiM5OTkiCi0gICAgaW1hZ2UgY3JlYXRlIGJpdG1hcCBibS1yaWdodCAtZGF0YSAkYm1fcmlnaHRfZGF0YQotICAgIGltYWdlIGNyZWF0ZSBiaXRtYXAgYm0tcmlnaHQtZ3JheSAtZGF0YSAkYm1fcmlnaHRfZGF0YSAtZm9yZWdyb3VuZCAiIzk5OSIKKyAgICBpbWFnZSBjcmVhdGUgYml0bWFwIGJtLWxlZnQgLWRhdGEgJGJtX2xlZnRfZGF0YSAtZm9yZWdyb3VuZCAkdWlmZ2NvbG9yCisgICAgaW1hZ2UgY3JlYXRlIGJpdG1hcCBibS1sZWZ0LWdyYXkgLWRhdGEgJGJtX2xlZnRfZGF0YSAtZm9yZWdyb3VuZCAkdWlmZ2Rpc2FibGVkY29sb3IKKyAgICBpbWFnZSBjcmVhdGUgYml0bWFwIGJtLXJpZ2h0IC1kYXRhICRibV9yaWdodF9kYXRhIC1mb3JlZ3JvdW5kICR1aWZnY29sb3IKKyAgICBpbWFnZSBjcmVhdGUgYml0bWFwIGJtLXJpZ2h0LWdyYXkgLWRhdGEgJGJtX3JpZ2h0X2RhdGEgLWZvcmVncm91bmQgJHVpZmdkaXNhYmxlZGNvbG9yCiAKICAgICAke05TfTo6YnV0dG9uIC50Zi5iYXIubGVmdGJ1dCAtY29tbWFuZCBnb2JhY2sgLXN0YXRlIGRpc2FibGVkIC13aWR0aCAyNgogICAgIGlmIHskdXNlX3R0a30gewpAQCAtMjI0NSw3ICsyMjUzLDggQEAKICAgICBzZXQgZ20gW21ha2Vkcm9wbGlzdCAudGYubGJhci5nZHR0eXBlIGdkdHR5cGUgXAogCQlbbWMgImNvbnRhaW5pbmc6Il0gXAogCQlbbWMgInRvdWNoaW5nIHBhdGhzOiJdIFwKLQkJW21jICJhZGRpbmcvcmVtb3Zpbmcgc3RyaW5nOiJdXQorCQlbbWMgImFkZGluZy9yZW1vdmluZyBzdHJpbmc6Il0gXAorCQlbbWMgImNoYW5naW5nIGxpbmVzIG1hdGNoaW5nOiJdXQogICAgIHRyYWNlIGFkZCB2YXJpYWJsZSBnZHR0eXBlIHdyaXRlIGdkdHR5cGVfY2hhbmdlCiAgICAgcGFjayAudGYubGJhci5nZHR0eXBlIC1zaWRlIGxlZnQgLWZpbGwgeQogCkBAIC0yMzQ5LDMyICsyMzU4LDMyIEBACiAgICAgbGFwcGVuZCBmZ2xpc3QgJGN0ZXh0CiAKICAgICAkY3RleHQgdGFnIGNvbmYgY29tbWVudCAtd3JhcCAkd3JhcGNvbW1lbnQKLSAgICAkY3RleHQgdGFnIGNvbmYgZmlsZXNlcCAtZm9udCB0ZXh0Zm9udGJvbGQgLWJhY2sgIiNhYWFhYWEiCisgICAgJGN0ZXh0IHRhZyBjb25mIGZpbGVzZXAgLWZvbnQgdGV4dGZvbnRib2xkIC1mb3JlICRmaWxlc2VwZmdjb2xvciAtYmFjayAkZmlsZXNlcGJnY29sb3IKICAgICAkY3RleHQgdGFnIGNvbmYgaHVua3NlcCAtZm9yZSBbbGluZGV4ICRkaWZmY29sb3JzIDJdCiAgICAgJGN0ZXh0IHRhZyBjb25mIGQwIC1mb3JlIFtsaW5kZXggJGRpZmZjb2xvcnMgMF0KICAgICAkY3RleHQgdGFnIGNvbmYgZHJlc3VsdCAtZm9yZSBbbGluZGV4ICRkaWZmY29sb3JzIDFdCi0gICAgJGN0ZXh0IHRhZyBjb25mIG0wIC1mb3JlIHJlZAotICAgICRjdGV4dCB0YWcgY29uZiBtMSAtZm9yZSBibHVlCi0gICAgJGN0ZXh0IHRhZyBjb25mIG0yIC1mb3JlIGdyZWVuCi0gICAgJGN0ZXh0IHRhZyBjb25mIG0zIC1mb3JlIHB1cnBsZQotICAgICRjdGV4dCB0YWcgY29uZiBtNCAtZm9yZSBicm93bgotICAgICRjdGV4dCB0YWcgY29uZiBtNSAtZm9yZSAiIzAwOTA5MCIKLSAgICAkY3RleHQgdGFnIGNvbmYgbTYgLWZvcmUgbWFnZW50YQotICAgICRjdGV4dCB0YWcgY29uZiBtNyAtZm9yZSAiIzgwODAwMCIKLSAgICAkY3RleHQgdGFnIGNvbmYgbTggLWZvcmUgIiMwMDkwMDAiCi0gICAgJGN0ZXh0IHRhZyBjb25mIG05IC1mb3JlICIjZmYwMDgwIgotICAgICRjdGV4dCB0YWcgY29uZiBtMTAgLWZvcmUgY3lhbgotICAgICRjdGV4dCB0YWcgY29uZiBtMTEgLWZvcmUgIiNiMDcwNzAiCi0gICAgJGN0ZXh0IHRhZyBjb25mIG0xMiAtZm9yZSAiIzcwYjBmMCIKLSAgICAkY3RleHQgdGFnIGNvbmYgbTEzIC1mb3JlICIjNzBmMGIwIgotICAgICRjdGV4dCB0YWcgY29uZiBtMTQgLWZvcmUgIiNmMGIwNzAiCi0gICAgJGN0ZXh0IHRhZyBjb25mIG0xNSAtZm9yZSAiI2ZmNzBiMCIKKyAgICAkY3RleHQgdGFnIGNvbmYgbTAgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgMF0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTEgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgMV0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTIgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgMl0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTMgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgM10KKyAgICAkY3RleHQgdGFnIGNvbmYgbTQgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgNF0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTUgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgNV0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTYgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgNl0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTcgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgN10KKyAgICAkY3RleHQgdGFnIGNvbmYgbTggLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgOF0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTkgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgOV0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTEwIC1mb3JlIFtsaW5kZXggJG1lcmdlY29sb3JzIDEwXQorICAgICRjdGV4dCB0YWcgY29uZiBtMTEgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgMTFdCisgICAgJGN0ZXh0IHRhZyBjb25mIG0xMiAtZm9yZSBbbGluZGV4ICRtZXJnZWNvbG9ycyAxMl0KKyAgICAkY3RleHQgdGFnIGNvbmYgbTEzIC1mb3JlIFtsaW5kZXggJG1lcmdlY29sb3JzIDEzXQorICAgICRjdGV4dCB0YWcgY29uZiBtMTQgLWZvcmUgW2xpbmRleCAkbWVyZ2Vjb2xvcnMgMTRdCisgICAgJGN0ZXh0IHRhZyBjb25mIG0xNSAtZm9yZSBbbGluZGV4ICRtZXJnZWNvbG9ycyAxNV0KICAgICAkY3RleHQgdGFnIGNvbmYgbW1heCAtZm9yZSBkYXJrZ3JleQogICAgIHNldCBtZXJnZW1heCAxNgogICAgICRjdGV4dCB0YWcgY29uZiBtcmVzdWx0IC1mb250IHRleHRmb250Ym9sZAogICAgICRjdGV4dCB0YWcgY29uZiBtc2VwIC1mb250IHRleHRmb250Ym9sZAotICAgICRjdGV4dCB0YWcgY29uZiBmb3VuZCAtYmFjayB5ZWxsb3cKLSAgICAkY3RleHQgdGFnIGNvbmYgY3VycmVudHNlYXJjaGhpdCAtYmFjayBvcmFuZ2UKKyAgICAkY3RleHQgdGFnIGNvbmYgZm91bmQgLWJhY2sgJGZvdW5kYmdjb2xvcgorICAgICRjdGV4dCB0YWcgY29uZiBjdXJyZW50c2VhcmNoaGl0IC1iYWNrICRjdXJyZW50c2VhcmNoaGl0Ymdjb2xvcgogICAgICRjdGV4dCB0YWcgY29uZiB3d3JhcCAtd3JhcCB3b3JkCiAKICAgICAucHdib3R0b20gYWRkIC5ibGVmdApAQCAtMjU1OSw2ICsyNTY4LDcgQEAKIAl7bWMgIkNvbXBhcmUgd2l0aCBtYXJrZWQgY29tbWl0IiBjb21tYW5kIGNvbXBhcmVfY29tbWl0c30KIAl7bWMgIkRpZmYgdGhpcyAtPiBtYXJrZWQgY29tbWl0IiBjb21tYW5kIHtkaWZmdnNtYXJrIDB9fQogCXttYyAiRGlmZiBtYXJrZWQgY29tbWl0IC0+IHRoaXMiIGNvbW1hbmQge2RpZmZ2c21hcmsgMX19CisJe21jICJSZXZlcnQgdGhpcyBjb21taXQiIGNvbW1hbmQgcmV2ZXJ0fQogICAgIH0KICAgICAkcm93Y3R4bWVudSBjb25maWd1cmUgLXRlYXJvZmYgMAogCkBAIC0yNzIxLDYgKzI3MzEsMTQgQEAKICAgICBnbG9iYWwgdmlld25hbWUgdmlld2ZpbGVzIHZpZXdhcmdzIHZpZXdhcmdzY21kIHZpZXdwZXJtIG5leHR2aWV3bnVtCiAgICAgZ2xvYmFsIGNtaXRtb2RlIHdyYXBjb21tZW50IGRhdGV0aW1lZm9ybWF0IGxpbWl0ZGlmZnMKICAgICBnbG9iYWwgY29sb3JzIHVpY29sb3IgYmdjb2xvciBmZ2NvbG9yIGRpZmZjb2xvcnMgZGlmZmNvbnRleHQgc2VsZWN0Ymdjb2xvcgorICAgIGdsb2JhbCB1aWZnY29sb3IgdWlmZ2Rpc2FibGVkY29sb3IKKyAgICBnbG9iYWwgaGVhZGJnY29sb3IgaGVhZGZnY29sb3IgaGVhZG91dGxpbmVjb2xvciByZW1vdGViZ2NvbG9yCisgICAgZ2xvYmFsIHRhZ2JnY29sb3IgdGFnZmdjb2xvciB0YWdvdXRsaW5lY29sb3IKKyAgICBnbG9iYWwgcmVmbGluZWNvbG9yIGZpbGVzZXBiZ2NvbG9yIGZpbGVzZXBmZ2NvbG9yCisgICAgZ2xvYmFsIG1lcmdlY29sb3JzIGZvdW5kYmdjb2xvciBjdXJyZW50c2VhcmNoaGl0Ymdjb2xvcgorICAgIGdsb2JhbCBsaW5laG92ZXJiZ2NvbG9yIGxpbmVob3ZlcmZnY29sb3IgbGluZWhvdmVyb3V0bGluZWNvbG9yIGNpcmNsZWNvbG9ycworICAgIGdsb2JhbCBtYWluaGVhZGNpcmNsZWNvbG9yIHdvcmtpbmdmaWxlc2NpcmNsZWNvbG9yIGluZGV4Y2lyY2xlY29sb3IKKyAgICBnbG9iYWwgbGlua2ZnY29sb3IgY2lyY2xlb3V0bGluZWNvbG9yCiAgICAgZ2xvYmFsIGF1dG9zZWxlY3QgYXV0b3NlbGxlbiBleHRkaWZmdG9vbCBwZXJmaWxlX2F0dHJzIG1hcmtiZ2NvbG9yIHVzZV90dGsKICAgICBnbG9iYWwgaGlkZXJlbW90ZXMgd2FudF90dGsgbWF4cmVmcwogCkBAIC0yNzUzLDEzICsyNzcxLDM3IEBACiAJcHV0cyAkZiBbbGlzdCBzZXQgd2FudF90dGsgJHdhbnRfdHRrXQogCXB1dHMgJGYgW2xpc3Qgc2V0IGJnY29sb3IgJGJnY29sb3JdCiAJcHV0cyAkZiBbbGlzdCBzZXQgZmdjb2xvciAkZmdjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCB1aWZnY29sb3IgJHVpZmdjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCB1aWZnZGlzYWJsZWRjb2xvciAkdWlmZ2Rpc2FibGVkY29sb3JdCiAJcHV0cyAkZiBbbGlzdCBzZXQgY29sb3JzICRjb2xvcnNdCiAJcHV0cyAkZiBbbGlzdCBzZXQgZGlmZmNvbG9ycyAkZGlmZmNvbG9yc10KKwlwdXRzICRmIFtsaXN0IHNldCBtZXJnZWNvbG9ycyAkbWVyZ2Vjb2xvcnNdCiAJcHV0cyAkZiBbbGlzdCBzZXQgbWFya2JnY29sb3IgJG1hcmtiZ2NvbG9yXQogCXB1dHMgJGYgW2xpc3Qgc2V0IGRpZmZjb250ZXh0ICRkaWZmY29udGV4dF0KIAlwdXRzICRmIFtsaXN0IHNldCBzZWxlY3RiZ2NvbG9yICRzZWxlY3RiZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IGZvdW5kYmdjb2xvciAkZm91bmRiZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IGN1cnJlbnRzZWFyY2hoaXRiZ2NvbG9yICRjdXJyZW50c2VhcmNoaGl0Ymdjb2xvcl0KIAlwdXRzICRmIFtsaXN0IHNldCBleHRkaWZmdG9vbCAkZXh0ZGlmZnRvb2xdCiAJcHV0cyAkZiBbbGlzdCBzZXQgcGVyZmlsZV9hdHRycyAkcGVyZmlsZV9hdHRyc10KKwlwdXRzICRmIFtsaXN0IHNldCBoZWFkYmdjb2xvciAkaGVhZGJnY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgaGVhZGZnY29sb3IgJGhlYWRmZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IGhlYWRvdXRsaW5lY29sb3IgJGhlYWRvdXRsaW5lY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgcmVtb3RlYmdjb2xvciAkcmVtb3RlYmdjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCB0YWdiZ2NvbG9yICR0YWdiZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IHRhZ2ZnY29sb3IgJHRhZ2ZnY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgdGFnb3V0bGluZWNvbG9yICR0YWdvdXRsaW5lY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgcmVmbGluZWNvbG9yICRyZWZsaW5lY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgZmlsZXNlcGJnY29sb3IgJGZpbGVzZXBiZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IGZpbGVzZXBmZ2NvbG9yICRmaWxlc2VwZmdjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCBsaW5laG92ZXJiZ2NvbG9yICRsaW5laG92ZXJiZ2NvbG9yXQorCXB1dHMgJGYgW2xpc3Qgc2V0IGxpbmVob3ZlcmZnY29sb3IgJGxpbmVob3ZlcmZnY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgbGluZWhvdmVyb3V0bGluZWNvbG9yICRsaW5laG92ZXJvdXRsaW5lY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgbWFpbmhlYWRjaXJjbGVjb2xvciAkbWFpbmhlYWRjaXJjbGVjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCB3b3JraW5nZmlsZXNjaXJjbGVjb2xvciAkd29ya2luZ2ZpbGVzY2lyY2xlY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgaW5kZXhjaXJjbGVjb2xvciAkaW5kZXhjaXJjbGVjb2xvcl0KKwlwdXRzICRmIFtsaXN0IHNldCBjaXJjbGVjb2xvcnMgJGNpcmNsZWNvbG9yc10KKwlwdXRzICRmIFtsaXN0IHNldCBsaW5rZmdjb2xvciAkbGlua2ZnY29sb3JdCisJcHV0cyAkZiBbbGlzdCBzZXQgY2lyY2xlb3V0bGluZWNvbG9yICRjaXJjbGVvdXRsaW5lY29sb3JdCiAKIAlwdXRzICRmICJzZXQgZ2VvbWV0cnkobWFpbikgW3dtIGdlb21ldHJ5IC5dIgogCXB1dHMgJGYgInNldCBnZW9tZXRyeShzdGF0ZSkgW3dtIHN0YXRlIC5dIgpAQCAtNDYxNyw2ICs0NjU5LDggQEAKIAlzZXQgZ2R0YXJncyBbY29uY2F0IC0tICRyZWxhdGl2ZV9wYXRoc10KICAgICB9IGVsc2VpZiB7JGdkdHR5cGUgZXEgW21jICJhZGRpbmcvcmVtb3Zpbmcgc3RyaW5nOiJdfSB7CiAJc2V0IGdkdGFyZ3MgW2xpc3QgIi1TJGhpZ2hsaWdodF9maWxlcyJdCisgICAgfSBlbHNlaWYgeyRnZHR0eXBlIGVxIFttYyAiY2hhbmdpbmcgbGluZXMgbWF0Y2hpbmc6Il19IHsKKwlzZXQgZ2R0YXJncyBbbGlzdCAiLUckaGlnaGxpZ2h0X2ZpbGVzIl0KICAgICB9IGVsc2UgewogCSMgbXVzdCBiZSAiY29udGFpbmluZzoiLCBpLmUuIHdlJ3JlIHNlYXJjaGluZyBjb21taXQgaW5mbwogCXJldHVybgpAQCAtNTkyNSwxNSArNTk2OSwxNyBAQAogICAgIGdsb2JhbCBsaW5laHRhZyBsaW5lbnRhZyBsaW5lZHRhZyBzZWxlY3RlZGxpbmUKICAgICBnbG9iYWwgY2FudnhtYXggYm9sZGlkcyBib2xkbmFtZWlkcyBmZ2NvbG9yIG1hcmtlZGlkCiAgICAgZ2xvYmFsIG1haW5oZWFkaWQgbnVsbGlkIG51bGxpZDIgY2lyY2xlaXRlbSBjaXJjbGVjb2xvcnMgY3R4YnV0CisgICAgZ2xvYmFsIG1haW5oZWFkY2lyY2xlY29sb3Igd29ya2luZ2ZpbGVzY2lyY2xlY29sb3IgaW5kZXhjaXJjbGVjb2xvcgorICAgIGdsb2JhbCBjaXJjbGVvdXRsaW5lY29sb3IKIAogICAgICMgbGlzdGVkIGlzIDAgZm9yIGJvdW5kYXJ5LCAxIGZvciBub3JtYWwsIDIgZm9yIG5lZ2F0aXZlLCAzIGZvciBsZWZ0LCA0IGZvciByaWdodAogICAgIHNldCBsaXN0ZWQgJGNtaXRsaXN0ZWQoJGN1cnZpZXcsJGlkKQogICAgIGlmIHskaWQgZXEgJG51bGxpZH0gewotCXNldCBvZmlsbCByZWQKKwlzZXQgb2ZpbGwgJHdvcmtpbmdmaWxlc2NpcmNsZWNvbG9yCiAgICAgfSBlbHNlaWYgeyRpZCBlcSAkbnVsbGlkMn0gewotCXNldCBvZmlsbCBncmVlbgorCXNldCBvZmlsbCAkaW5kZXhjaXJjbGVjb2xvcgogICAgIH0gZWxzZWlmIHskaWQgZXEgJG1haW5oZWFkaWR9IHsKLQlzZXQgb2ZpbGwgeWVsbG93CisJc2V0IG9maWxsICRtYWluaGVhZGNpcmNsZWNvbG9yCiAgICAgfSBlbHNlIHsKIAlzZXQgb2ZpbGwgW2xpbmRleCAkY2lyY2xlY29sb3JzICRsaXN0ZWRdCiAgICAgfQpAQCAtNTk0MywyMSArNTk4OSwyMSBAQAogICAgIGlmIHskbGlzdGVkIDw9IDJ9IHsKIAlzZXQgdCBbJGNhbnYgY3JlYXRlIG92YWwgW2V4cHIgeyR4IC0gJG9yYWR9XSBbZXhwciB7JHkgLSAkb3JhZH1dIFwKIAkJICAgW2V4cHIgeyR4ICsgJG9yYWQgLSAxfV0gW2V4cHIgeyR5ICsgJG9yYWQgLSAxfV0gXAotCQkgICAtZmlsbCAkb2ZpbGwgLW91dGxpbmUgJGZnY29sb3IgLXdpZHRoIDEgLXRhZ3MgY2lyY2xlXQorCQkgICAtZmlsbCAkb2ZpbGwgLW91dGxpbmUgJGNpcmNsZW91dGxpbmVjb2xvciAtd2lkdGggMSAtdGFncyBjaXJjbGVdCiAgICAgfSBlbHNlaWYgeyRsaXN0ZWQgPT0gM30gewogCSMgdHJpYW5nbGUgcG9pbnRpbmcgbGVmdCBmb3IgbGVmdC1zaWRlIGNvbW1pdHMKIAlzZXQgdCBbJGNhbnYgY3JlYXRlIHBvbHlnb24gXAogCQkgICBbZXhwciB7JHggLSAkb3JhZH1dICR5IFwKIAkJICAgW2V4cHIgeyR4ICsgJG9yYWQgLSAxfV0gW2V4cHIgeyR5IC0gJG9yYWR9XSBcCiAJCSAgIFtleHByIHskeCArICRvcmFkIC0gMX1dIFtleHByIHskeSArICRvcmFkIC0gMX1dIFwKLQkJICAgLWZpbGwgJG9maWxsIC1vdXRsaW5lICRmZ2NvbG9yIC13aWR0aCAxIC10YWdzIGNpcmNsZV0KKwkJICAgLWZpbGwgJG9maWxsIC1vdXRsaW5lICRjaXJjbGVvdXRsaW5lY29sb3IgLXdpZHRoIDEgLXRhZ3MgY2lyY2xlXQogICAgIH0gZWxzZSB7CiAJIyB0cmlhbmdsZSBwb2ludGluZyByaWdodCBmb3IgcmlnaHQtc2lkZSBjb21taXRzCiAJc2V0IHQgWyRjYW52IGNyZWF0ZSBwb2x5Z29uIFwKIAkJICAgW2V4cHIgeyR4ICsgJG9yYWQgLSAxfV0gJHkgXAogCQkgICBbZXhwciB7JHggLSAkb3JhZH1dIFtleHByIHskeSAtICRvcmFkfV0gXAogCQkgICBbZXhwciB7JHggLSAkb3JhZH1dIFtleHByIHskeSArICRvcmFkIC0gMX1dIFwKLQkJICAgLWZpbGwgJG9maWxsIC1vdXRsaW5lICRmZ2NvbG9yIC13aWR0aCAxIC10YWdzIGNpcmNsZV0KKwkJICAgLWZpbGwgJG9maWxsIC1vdXRsaW5lICRjaXJjbGVvdXRsaW5lY29sb3IgLXdpZHRoIDEgLXRhZ3MgY2lyY2xlXQogICAgIH0KICAgICBzZXQgY2lyY2xlaXRlbSgkcm93KSAkdAogICAgICRjYW52IHJhaXNlICR0CkBAIC02MzQ1LDYgKzYzOTEsOSBAQAogICAgIGdsb2JhbCBpZHRhZ3MgaWRoZWFkcyBpZG90aGVycmVmcyBtYWluaGVhZAogICAgIGdsb2JhbCBsaW5lc3BjIGx0aGlja25lc3MKICAgICBnbG9iYWwgY2FudiByb3d0ZXh0eCBjdXJ2aWV3IGZnY29sb3IgYmdjb2xvciBjdHhidXQKKyAgICBnbG9iYWwgaGVhZGJnY29sb3IgaGVhZGZnY29sb3IgaGVhZG91dGxpbmVjb2xvciByZW1vdGViZ2NvbG9yCisgICAgZ2xvYmFsIHRhZ2JnY29sb3IgdGFnZmdjb2xvciB0YWdvdXRsaW5lY29sb3IKKyAgICBnbG9iYWwgcmVmbGluZWNvbG9yCiAKICAgICBzZXQgbWFya3Mge30KICAgICBzZXQgbnRhZ3MgMApAQCAtNjM4Miw3ICs2NDMxLDcgQEAKIAlzZXQgeHQgW2V4cHIgeyR4dCArICRkZWx0YSArICR3aWQgKyAkbHRoaWNrbmVzcyArICRsaW5lc3BjfV0KICAgICB9CiAgICAgc2V0IHQgWyRjYW52IGNyZWF0ZSBsaW5lICR4ICR5MSBbbGluZGV4ICR4dmFscyBlbmRdICR5MSBcCi0JICAgICAgIC13aWR0aCAkbHRoaWNrbmVzcyAtZmlsbCBibGFjayAtdGFncyB0YWcuJGlkXQorCSAgICAgICAtd2lkdGggJGx0aGlja25lc3MgLWZpbGwgJHJlZmxpbmVjb2xvciAtdGFncyB0YWcuJGlkXQogICAgICRjYW52IGxvd2VyICR0CiAgICAgZm9yZWFjaCB0YWcgJG1hcmtzIHggJHh2YWxzIHdpZCAkd3ZhbHMgewogCXNldCB0YWdfcXVvdGVkIFtzdHJpbmcgbWFwIHslICUlfSAkdGFnXQpAQCAtNjM5MywxMyArNjQ0MiwxNCBAQAogCSAgICAjIGRyYXcgYSB0YWcKIAkgICAgc2V0IHQgWyRjYW52IGNyZWF0ZSBwb2x5Z29uICR4IFtleHByIHskeXQgKyAkZGVsdGF9XSAkeGwgJHl0IFwKIAkJICAgICAgICR4ciAkeXQgJHhyICR5YiAkeGwgJHliICR4IFtleHByIHskeWIgLSAkZGVsdGF9XSBcCi0JCSAgICAgICAtd2lkdGggMSAtb3V0bGluZSBibGFjayAtZmlsbCB5ZWxsb3cgLXRhZ3MgdGFnLiRpZF0KKwkJICAgICAgIC13aWR0aCAxIC1vdXRsaW5lICR0YWdvdXRsaW5lY29sb3IgLWZpbGwgJHRhZ2JnY29sb3IgXAorCQkgICAgICAgLXRhZ3MgdGFnLiRpZF0KIAkgICAgJGNhbnYgYmluZCAkdCA8MT4gW2xpc3Qgc2hvd3RhZyAkdGFnX3F1b3RlZCAxXQogCSAgICBzZXQgcm93dGV4dHgoW3Jvd29mY29tbWl0ICRpZF0pIFtleHByIHskeHIgKyAkbGluZXNwY31dCiAJfSBlbHNlIHsKIAkgICAgIyBkcmF3IGEgaGVhZCBvciBvdGhlciByZWYKIAkgICAgaWYge1tpbmNyIG5oZWFkcyAtMV0gPj0gMH0gewotCQlzZXQgY29sIGdyZWVuCisJCXNldCBjb2wgJGhlYWRiZ2NvbG9yCiAJCWlmIHskdGFnIGVxICRtYWluaGVhZH0gewogCQkgICAgc2V0IGZvbnQgbWFpbmZvbnRib2xkCiAJCX0KQEAgLTY0MTUsMTAgKzY0NjUsMTAgQEAKIAkJc2V0IHl0aSBbZXhwciB7JHl0ICsgMX1dCiAJCXNldCB4cmkgW2V4cHIgeyR4ICsgJHJ3aWR9XQogCQkkY2FudiBjcmVhdGUgcG9seWdvbiAkeGkgJHl0aSAkeHJpICR5dGkgJHhyaSAkeWIgJHhpICR5YiBcCi0JCQktd2lkdGggMCAtZmlsbCAiI2ZmZGRhYSIgLXRhZ3MgdGFnLiRpZAorCQkJLXdpZHRoIDAgLWZpbGwgJHJlbW90ZWJnY29sb3IgLXRhZ3MgdGFnLiRpZAogCSAgICB9CiAJfQotCXNldCB0IFskY2FudiBjcmVhdGUgdGV4dCAkeGwgJHkxIC1hbmNob3IgdyAtdGV4dCAkdGFnIC1maWxsICRmZ2NvbG9yIFwKKwlzZXQgdCBbJGNhbnYgY3JlYXRlIHRleHQgJHhsICR5MSAtYW5jaG9yIHcgLXRleHQgJHRhZyAtZmlsbCAkaGVhZGZnY29sb3IgXAogCQkgICAtZm9udCAkZm9udCAtdGFncyBbbGlzdCB0YWcuJGlkIHRleHRdXQogCWlmIHskbnRhZ3MgPj0gMH0gewogCSAgICAkY2FudiBiaW5kICR0IDwxPiBbbGlzdCBzaG93dGFnICR0YWdfcXVvdGVkIDFdCkBAIC02Nzk5LDYgKzY4NDksNyBAQAogCiBwcm9jIHNldGxpbmsge2lkIGxrfSB7CiAgICAgZ2xvYmFsIGN1cnZpZXcgY3RleHQgcGVuZGluZ2xpbmtzCisgICAgZ2xvYmFsIGxpbmtmZ2NvbG9yCiAKICAgICBpZiB7W3N0cmluZyByYW5nZSAkaWQgMCAxXSBlcSAiLWcifSB7CiAgICAgICBzZXQgaWQgW3N0cmluZyByYW5nZSAkaWQgMiBlbmRdCkBAIC02ODE2LDcgKzY4NjcsNyBAQAogCXNldCBrbm93biBbY29tbWl0aW52aWV3ICRpZCAkY3Vydmlld10KICAgICB9CiAgICAgaWYgeyRrbm93bn0gewotCSRjdGV4dCB0YWcgY29uZiAkbGsgLWZvcmVncm91bmQgYmx1ZSAtdW5kZXJsaW5lIDEKKwkkY3RleHQgdGFnIGNvbmYgJGxrIC1mb3JlZ3JvdW5kICRsaW5rZmdjb2xvciAtdW5kZXJsaW5lIDEKIAkkY3RleHQgdGFnIGJpbmQgJGxrIDwxPiBbbGlzdCBzZWxieWlkICRpZF0KIAkkY3RleHQgdGFnIGJpbmQgJGxrIDxFbnRlcj4ge2xpbmtjdXJzb3IgJVcgMX0KIAkkY3RleHQgdGFnIGJpbmQgJGxrIDxMZWF2ZT4ge2xpbmtjdXJzb3IgJVcgLTF9CkBAIC03NTcxLDkgKzc2MjIsMTMgQEAKIH0KIAogcHJvYyBnZXR0cmVlZGlmZnMge2lkc30gewotICAgIGdsb2JhbCB0cmVlZGlmZiB0cmVlcGVuZGluZworICAgIGdsb2JhbCB0cmVlZGlmZiB0cmVlcGVuZGluZyBsaW1pdGRpZmZzIHZmaWxlbGltaXQgY3VydmlldwogCi0gICAgaWYge1tjYXRjaCB7c2V0IGdkdGYgW29wZW4gW2RpZmZjbWQgJGlkcyB7LS1uby1jb21taXQtaWR9XSByXX1dfSByZXR1cm4KKyAgICBzZXQgY21kIFtkaWZmY21kICRpZHMgey0tbm8tY29tbWl0LWlkfV0KKyAgICBpZiB7JGxpbWl0ZGlmZnMgJiYgJHZmaWxlbGltaXQoJGN1cnZpZXcpIG5lIHt9fSB7CisJICAgIHNldCBjbWQgW2NvbmNhdCAkY21kIC0tICR2ZmlsZWxpbWl0KCRjdXJ2aWV3KV0KKyAgICB9CisgICAgaWYge1tjYXRjaCB7c2V0IGdkdGYgW29wZW4gJGNtZCByXX1dfSByZXR1cm4KIAogICAgIHNldCB0cmVlcGVuZGluZyAkaWRzCiAgICAgc2V0IHRyZWVkaWZmIHt9CkBAIC03NjE3LDE3ICs3NjcyLDcgQEAKIAlyZXR1cm4gW2V4cHIgeyRuciA+PSAkbWF4PyAyOiAxfV0KICAgICB9CiAgICAgY2xvc2UgJGdkdGYKLSAgICBpZiB7JGxpbWl0ZGlmZnMgJiYgJHZmaWxlbGltaXQoJGN1cnZpZXcpIG5lIHt9fSB7Ci0Jc2V0IGZsaXN0IHt9Ci0JZm9yZWFjaCBmICR0cmVlZGlmZiB7Ci0JICAgIGlmIHtbcGF0aF9maWx0ZXIgJHZmaWxlbGltaXQoJGN1cnZpZXcpICRmXX0gewotCQlsYXBwZW5kIGZsaXN0ICRmCi0JICAgIH0KLQl9Ci0Jc2V0IHRyZWVkaWZmcygkaWRzKSAkZmxpc3QKLSAgICB9IGVsc2UgewotCXNldCB0cmVlZGlmZnMoJGlkcykgJHRyZWVkaWZmCi0gICAgfQorICAgIHNldCB0cmVlZGlmZnMoJGlkcykgJHRyZWVkaWZmCiAgICAgdW5zZXQgdHJlZXBlbmRpbmcKICAgICBpZiB7JGNtaXRtb2RlIGVxICJ0cmVlIiAmJiBbbGxlbmd0aCAkZGlmZmlkc10gPT0gMX0gewogCWdldHRyZWUgJGRpZmZpZHMKQEAgLTg0NTksNiArODUwNCw4IEBACiBwcm9jIGxpbmVob3ZlciB7fSB7CiAgICAgZ2xvYmFsIGhvdmVyeCBob3ZlcnkgaG92ZXJpZCBob3ZlcnRpbWVyCiAgICAgZ2xvYmFsIGNhbnYgbGluZXNwYyBsdGhpY2tuZXNzCisgICAgZ2xvYmFsIGxpbmVob3ZlcmJnY29sb3IgbGluZWhvdmVyZmdjb2xvciBsaW5laG92ZXJvdXRsaW5lY29sb3IKKwogICAgIGdsb2JhbCBjb21taXRpbmZvCiAKICAgICBzZXQgdGV4dCBbbGluZGV4ICRjb21taXRpbmZvKCRob3ZlcmlkKSAwXQpAQCAtODQ3MiwxMCArODUxOSwxMSBAQAogICAgIHNldCB4MSBbZXhwciB7JHggKyBbZm9udCBtZWFzdXJlIG1haW5mb250ICR0ZXh0XSArIDIgKiAkbHRoaWNrbmVzc31dCiAgICAgc2V0IHkxIFtleHByIHskeSArICRsaW5lc3BjICsgMiAqICRsdGhpY2tuZXNzfV0KICAgICBzZXQgdCBbJGNhbnYgY3JlYXRlIHJlY3RhbmdsZSAkeDAgJHkwICR4MSAkeTEgXAotCSAgICAgICAtZmlsbCBcI2ZmZmY4MCAtb3V0bGluZSBibGFjayAtd2lkdGggMSAtdGFncyBob3Zlcl0KKwkgICAgICAgLWZpbGwgJGxpbmVob3ZlcmJnY29sb3IgLW91dGxpbmUgJGxpbmVob3Zlcm91dGxpbmVjb2xvciBcCisJICAgICAgIC13aWR0aCAxIC10YWdzIGhvdmVyXQogICAgICRjYW52IHJhaXNlICR0CiAgICAgc2V0IHQgWyRjYW52IGNyZWF0ZSB0ZXh0ICR4ICR5IC1hbmNob3IgbncgLXRleHQgJHRleHQgLXRhZ3MgaG92ZXIgXAotCSAgICAgICAtZm9udCBtYWluZm9udF0KKwkgICAgICAgLWZvbnQgbWFpbmZvbnQgLWZpbGwgJGxpbmVob3ZlcmZnY29sb3JdCiAgICAgJGNhbnYgcmFpc2UgJHQKIH0KIApAQCAtOTAzOSwxMiArOTA4NywxMyBAQAogcHJvYyByZWRyYXd0YWdzIHtpZH0gewogICAgIGdsb2JhbCBjYW52IGxpbmVodGFnIGlkcG9zIGN1cnJlbnRpZCBjdXJ2aWV3IGNtaXRsaXN0ZWQgbWFya2VkaWQKICAgICBnbG9iYWwgY2FudnhtYXggaWRkcmF3biBjaXJjbGVpdGVtIG1haW5oZWFkaWQgY2lyY2xlY29sb3JzCisgICAgZ2xvYmFsIG1haW5oZWFkY2lyY2xlY29sb3IKIAogICAgIGlmIHshW2NvbW1pdGludmlldyAkaWQgJGN1cnZpZXddfSByZXR1cm4KICAgICBpZiB7IVtpbmZvIGV4aXN0cyBpZGRyYXduKCRpZCldfSByZXR1cm4KICAgICBzZXQgcm93IFtyb3dvZmNvbW1pdCAkaWRdCiAgICAgaWYgeyRpZCBlcSAkbWFpbmhlYWRpZH0gewotCXNldCBvZmlsbCB5ZWxsb3cKKwlzZXQgb2ZpbGwgJG1haW5oZWFkY2lyY2xlY29sb3IKICAgICB9IGVsc2UgewogCXNldCBvZmlsbCBbbGluZGV4ICRjaXJjbGVjb2xvcnMgJGNtaXRsaXN0ZWQoJGN1cnZpZXcsJGlkKV0KICAgICB9CkBAIC05MzAxLDYgKzkzNTAsNjcgQEAKICAgICBub3RidXN5IGNoZXJyeXBpY2sKIH0KIAorcHJvYyByZXZlcnQge30geworICAgIGdsb2JhbCByb3dtZW51aWQgY3VydmlldworICAgIGdsb2JhbCBtYWluaGVhZCBtYWluaGVhZGlkCisgICAgZ2xvYmFsIGdpdGRpcgorCisgICAgc2V0IG9sZGhlYWQgW2V4ZWMgZ2l0IHJldi1wYXJzZSBIRUFEXQorICAgIHNldCBkaGVhZHMgW2Rlc2NoZWFkcyAkcm93bWVudWlkXQorICAgIGlmIHsgJGRoZWFkcyBlcSB7fSB8fCBbbHNlYXJjaCAtZXhhY3QgJGRoZWFkcyAkb2xkaGVhZF0gPT0gLTEgfSB7CisgICAgICAgc2V0IG9rIFtjb25maXJtX3BvcHVwIFttYyAiQ29tbWl0ICVzIGlzIG5vdFwKKyAgICAgICAgICAgaW5jbHVkZWQgaW4gYnJhbmNoICVzIC0tIHJlYWxseSByZXZlcnQgaXQ/IiBcCisgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZyByYW5nZSAkcm93bWVudWlkIDAgN10gJG1haW5oZWFkXV0KKyAgICAgICBpZiB7ISRva30gcmV0dXJuCisgICAgfQorICAgIG5vd2J1c3kgcmV2ZXJ0IFttYyAiUmV2ZXJ0aW5nIl0KKyAgICB1cGRhdGUKKworICAgIGlmIFtjYXRjaCB7ZXhlYyBnaXQgcmV2ZXJ0IC0tbm8tZWRpdCAkcm93bWVudWlkfSBlcnJdIHsKKyAgICAgICAgbm90YnVzeSByZXZlcnQKKyAgICAgICAgaWYgW3JlZ2V4cCB7ZmlsZXMgd291bGQgYmUgb3ZlcndyaXR0ZW4gYnkgbWVyZ2U6KFxuKCggfFx0KStbXlxuXStcbikrKX1cCisgICAgICAgICAgICAgICAgJGVyciBtYXRjaCBmaWxlc10geworICAgICAgICAgICAgcmVnc3ViIHtcbiggfFx0KSt9ICRmaWxlcyAiXG4iIGZpbGVzCisgICAgICAgICAgICBlcnJvcl9wb3B1cCBbbWMgIlJldmVydCBmYWlsZWQgYmVjYXVzZSBvZiBsb2NhbCBjaGFuZ2VzIHRvXAorICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgZmlsZXM6JXMgUGxlYXNlIGNvbW1pdCwgcmVzZXQgb3Igc3Rhc2ggXAorICAgICAgICAgICAgICAgIHlvdXIgY2hhbmdlcyBhbmQgdHJ5IGFnYWluLiIgJGZpbGVzXQorICAgICAgICB9IGVsc2VpZiBbcmVnZXhwIHtlcnJvcjogY291bGQgbm90IHJldmVydH0gJGVycl0geworICAgICAgICAgICAgaWYgW2NvbmZpcm1fcG9wdXAgW21jICJSZXZlcnQgZmFpbGVkIGJlY2F1c2Ugb2YgbWVyZ2UgY29uZmxpY3QuXG5cCisgICAgICAgICAgICAgICAgRG8geW91IHdpc2ggdG8gcnVuIGdpdCBjaXRvb2wgdG8gcmVzb2x2ZSBpdD8iXV0geworICAgICAgICAgICAgICAgICMgRm9yY2UgY2l0b29sIHRvIHJlYWQgTUVSR0VfTVNHCisgICAgICAgICAgICAgICAgZmlsZSBkZWxldGUgW2ZpbGUgam9pbiAkZ2l0ZGlyICJHSVRHVUlfTVNHIl0KKyAgICAgICAgICAgICAgICBleGVjX2NpdG9vbCB7fSAkcm93bWVudWlkCisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7IGVycm9yX3BvcHVwICRlcnIgfQorICAgICAgICBydW4gdXBkYXRlY29tbWl0cworICAgICAgICByZXR1cm4KKyAgICB9CisKKyAgICBzZXQgbmV3aGVhZCBbZXhlYyBnaXQgcmV2LXBhcnNlIEhFQURdCisgICAgaWYgeyAkbmV3aGVhZCBlcSAkb2xkaGVhZCB9IHsKKyAgICAgICAgbm90YnVzeSByZXZlcnQKKyAgICAgICAgZXJyb3JfcG9wdXAgW21jICJObyBjaGFuZ2VzIGNvbW1pdHRlZCJdCisgICAgICAgIHJldHVybgorICAgIH0KKworICAgIGFkZG5ld2NoaWxkICRuZXdoZWFkICRvbGRoZWFkCisKKyAgICBpZiBbY29tbWl0aW52aWV3ICRvbGRoZWFkICRjdXJ2aWV3XSB7CisgICAgICAgICMgWFhYIHRoaXMgaXNuJ3QgcmlnaHQgaWYgd2UgaGF2ZSBhIHBhdGggbGltaXQuLi4KKyAgICAgICAgaW5zZXJ0cm93ICRuZXdoZWFkICRvbGRoZWFkICRjdXJ2aWV3CisgICAgICAgIGlmIHskbWFpbmhlYWQgbmUge319IHsKKyAgICAgICAgICAgIG1vdmVoZWFkICRuZXdoZWFkICRtYWluaGVhZAorICAgICAgICAgICAgbW92ZWRoZWFkICRuZXdoZWFkICRtYWluaGVhZAorICAgICAgICB9CisgICAgICAgIHNldCBtYWluaGVhZGlkICRuZXdoZWFkCisgICAgICAgIHJlZHJhd3RhZ3MgJG9sZGhlYWQKKyAgICAgICAgcmVkcmF3dGFncyAkbmV3aGVhZAorICAgICAgICBzZWxieWlkICRuZXdoZWFkCisgICAgfQorCisgICAgbm90YnVzeSByZXZlcnQKK30KKwogcHJvYyByZXNldGhlYWQge30gewogICAgIGdsb2JhbCBtYWluaGVhZCByb3dtZW51aWQgY29uZmlybV9vayByZXNldHR5cGUgTlMKIApAQCAtMTA3ODAsNyArMTA4OTAsNyBAQAogICAgIHNldCBsaW5rbnVtIDAKICAgICBpZiB7IVtpbmZvIGV4aXN0cyBjYWNoZWRfdGFnY29udGVudCgkdGFnKV19IHsKIAljYXRjaCB7Ci0gICAgICAgICAgIHNldCBjYWNoZWRfdGFnY29udGVudCgkdGFnKSBbZXhlYyBnaXQgY2F0LWZpbGUgdGFnICR0YWddCisgICAgICAgICAgIHNldCBjYWNoZWRfdGFnY29udGVudCgkdGFnKSBbZXhlYyBnaXQgY2F0LWZpbGUgLXAgJHRhZ10KIAl9CiAgICAgfQogICAgIGlmIHtbaW5mbyBleGlzdHMgY2FjaGVkX3RhZ2NvbnRlbnQoJHRhZyldfSB7CkBAIC0xMTY0MSw2ICsxMTc1MSwxNSBAQAogICAgIGV4aXQgMQogfQogCisjIG9uIE9TWCBicmluZyB0aGUgY3VycmVudCBXaXNoIHByb2Nlc3Mgd2luZG93IHRvIGZyb250CitpZiB7W3RrIHdpbmRvd2luZ3N5c3RlbV0gZXEgImFxdWEifSB7CisgICAgZXhlYyBvc2FzY3JpcHQgLWUgW2Zvcm1hdCB7CisgICAgICAgIHRlbGwgYXBwbGljYXRpb24gIlN5c3RlbSBFdmVudHMiCisgICAgICAgICAgICBzZXQgZnJvbnRtb3N0IG9mIHByb2Nlc3NlcyB3aG9zZSB1bml4IGlkIGlzICVkIHRvIHRydWUKKyAgICAgICAgZW5kIHRlbGwKKyAgICB9IFtwaWRdIF0KK30KKwogIyBVbnNldCBHSVRfVFJBQ0UgdmFyIGlmIHNldAogaWYgeyBbaW5mbyBleGlzdHMgOjplbnYoR0lUX1RSQUNFKV0gfSB7CiAgICAgdW5zZXQgOjplbnYoR0lUX1RSQUNFKQpAQCAtMTE3MjgsMjIgKzExODQ3LDQ3IEBACiBzZXQgY29sb3JzIHtncmVlbiByZWQgYmx1ZSBtYWdlbnRhIGRhcmtncmV5IGJyb3duIG9yYW5nZX0KIGlmIHtbdGsgd2luZG93aW5nc3lzdGVtXSBlcSAid2luMzIifSB7CiAgICAgc2V0IHVpY29sb3IgU3lzdGVtQnV0dG9uRmFjZQorICAgIHNldCB1aWZnY29sb3IgU3lzdGVtQnV0dG9uVGV4dAorICAgIHNldCB1aWZnZGlzYWJsZWRjb2xvciBTeXN0ZW1EaXNhYmxlZFRleHQKICAgICBzZXQgYmdjb2xvciBTeXN0ZW1XaW5kb3cKLSAgICBzZXQgZmdjb2xvciBTeXN0ZW1CdXR0b25UZXh0CisgICAgc2V0IGZnY29sb3IgU3lzdGVtV2luZG93VGV4dAogICAgIHNldCBzZWxlY3RiZ2NvbG9yIFN5c3RlbUhpZ2hsaWdodAogfSBlbHNlIHsKICAgICBzZXQgdWljb2xvciBncmV5ODUKKyAgICBzZXQgdWlmZ2NvbG9yIGJsYWNrCisgICAgc2V0IHVpZmdkaXNhYmxlZGNvbG9yICIjOTk5IgogICAgIHNldCBiZ2NvbG9yIHdoaXRlCiAgICAgc2V0IGZnY29sb3IgYmxhY2sKICAgICBzZXQgc2VsZWN0Ymdjb2xvciBncmF5ODUKIH0KIHNldCBkaWZmY29sb3JzIHtyZWQgIiMwMGEwMDAiIGJsdWV9CiBzZXQgZGlmZmNvbnRleHQgMworc2V0IG1lcmdlY29sb3JzIHtyZWQgYmx1ZSBncmVlbiBwdXJwbGUgYnJvd24gIiMwMDkwOTAiIG1hZ2VudGEgIiM4MDgwMDAiICIjMDA5MDAwIiAiI2ZmMDA4MCIgY3lhbiAiI2IwNzA3MCIgIiM3MGIwZjAiICIjNzBmMGIwIiAiI2YwYjA3MCIgIiNmZjcwYjAifQogc2V0IGlnbm9yZXNwYWNlIDAKIHNldCB3b3JkZGlmZiAiIgogc2V0IG1hcmtiZ2NvbG9yICIjZTBlMGZmIgogCitzZXQgaGVhZGJnY29sb3IgZ3JlZW4KK3NldCBoZWFkZmdjb2xvciBibGFjaworc2V0IGhlYWRvdXRsaW5lY29sb3IgYmxhY2sKK3NldCByZW1vdGViZ2NvbG9yICNmZmRkYWEKK3NldCB0YWdiZ2NvbG9yIHllbGxvdworc2V0IHRhZ2ZnY29sb3IgYmxhY2sKK3NldCB0YWdvdXRsaW5lY29sb3IgYmxhY2sKK3NldCByZWZsaW5lY29sb3IgYmxhY2sKK3NldCBmaWxlc2VwYmdjb2xvciAjYWFhYWFhCitzZXQgZmlsZXNlcGZnY29sb3IgYmxhY2sKK3NldCBsaW5laG92ZXJiZ2NvbG9yICNmZmZmODAKK3NldCBsaW5laG92ZXJmZ2NvbG9yIGJsYWNrCitzZXQgbGluZWhvdmVyb3V0bGluZWNvbG9yIGJsYWNrCitzZXQgbWFpbmhlYWRjaXJjbGVjb2xvciB5ZWxsb3cKK3NldCB3b3JraW5nZmlsZXNjaXJjbGVjb2xvciByZWQKK3NldCBpbmRleGNpcmNsZWNvbG9yIGdyZWVuCiBzZXQgY2lyY2xlY29sb3JzIHt3aGl0ZSBibHVlIGdyYXkgYmx1ZSBibHVlfQorc2V0IGxpbmtmZ2NvbG9yIGJsdWUKK3NldCBjaXJjbGVvdXRsaW5lY29sb3IgJGZnY29sb3IKK3NldCBmb3VuZGJnY29sb3IgeWVsbG93CitzZXQgY3VycmVudHNlYXJjaGhpdGJnY29sb3Igb3JhbmdlCiAKICMgYnV0dG9uIGZvciBwb3BwaW5nIHVwIGNvbnRleHQgbWVudXMKIGlmIHtbdGsgd2luZG93aW5nc3lzdGVtXSBlcSAiYXF1YSJ9IHsKZGlmZiAtLWdpdCBhL2dpdGstZ2l0L3BvL3N2LnBvIGIvZ2l0ay1naXQvcG8vc3YucG8KaW5kZXggOGNjOThkYy4uZGY5NWUwMSAxMDA2NDQKLS0tIGEvZ2l0ay1naXQvcG8vc3YucG8KKysrIGIvZ2l0ay1naXQvcG8vc3YucG8KQEAgLTEsMTYgKzEsMTYgQEAKICMgU3dlZGlzaCB0cmFuc2xhdGlvbiBmb3IgZ2l0awotIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiBQYXVsIE1hY2tlcnJhcworIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMyBQYXVsIE1hY2tlcnJhcwogIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ2l0ayBwYWNrYWdlLgogIwogIyBNaWthZWwgTWFnbnVzc29uIDxtaWthY2h1QGdtYWlsLmNvbT4sIDIwMDguCi0jIFBldGVyIEtyZWZ0aW5nIDxwZXRlckBzb2Z0d29sdmVzLnBwLnNlPiwgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMi4KKyMgUGV0ZXIgS3JlZnRpbmcgPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDEyLCAyMDEzLgogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogc3ZcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTItMTAtMDMgMDg6MDkrMDEwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTItMTAtMDMgMDg6MTMrMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA1LTE2IDA4OjA2KzAxMDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA1LTE2IDA4OjEyKzAxMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFBldGVyIEtyZWZ0aW5nIDxwZXRlckBzb2Z0d29sdmVzLnBwLnNlPlxuIgogIkxhbmd1YWdlLVRlYW06IFN3ZWRpc2ggPHRwLXN2QGxpc3Rvci50cC1zdi5zZT5cbiIKICJMYW5ndWFnZTogc3ZcbiIKQEAgLTIyLDExICsyMiwxMSBAQAogbXNnaWQgIkNvdWxkbid0IGdldCBsaXN0IG9mIHVubWVyZ2VkIGZpbGVzOiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBow6RtdGEgbGlzdGEgw7Z2ZXIgZWogc2FtbWFuc2xhZ25hIGZpbGVyOiIKIAotIzogZ2l0azoyMTAgZ2l0azoyMzE3CisjOiBnaXRrOjIxMCBnaXRrOjIzMzQKIG1zZ2lkICJDb2xvciB3b3JkcyIKIG1zZ3N0ciAiRsOkcmdhIG9yZCIKIAotIzogZ2l0azoyMTUgZ2l0azoyMzE3IGdpdGs6Nzg4OCBnaXRrOjc5MjEKKyM6IGdpdGs6MjE1IGdpdGs6MjMzNCBnaXRrOjc5NzcgZ2l0azo4MDEwCiBtc2dpZCAiTWFya3VwIHdvcmRzIgogbXNnc3RyICJNw6RyayB1cHAgb3JkIgogCkBAIC02MCwxMSArNjAsMTEgQEAKIG1zZ2lkICJSZWFkaW5nIgogbXNnc3RyICJMw6RzZXIiCiAKLSM6IGdpdGs6NDg0IGdpdGs6NDM1MworIzogZ2l0azo0ODQgZ2l0azo0NDA5CiBtc2dpZCAiUmVhZGluZyBjb21taXRzLi4uIgogbXNnc3RyICJMw6RzZXIgaW5jaGVja25pbmdhci4uLiIKIAotIzogZ2l0azo0ODcgZ2l0azoxNjI1IGdpdGs6NDM1NgorIzogZ2l0azo0ODcgZ2l0azoxNjI1IGdpdGs6NDQxMgogbXNnaWQgIk5vIGNvbW1pdHMgc2VsZWN0ZWQiCiBtc2dzdHIgIkluZ2EgaW5jaGVja25pbmdhciBtYXJrZXJhZGUiCiAKQEAgLTgwLDI3OCArODAsMjg2IEBACiBtc2dpZCAibWMiCiBtc2dzdHIgIm1jIgogCi0jOiBnaXRrOjE5MTEgZ2l0azo0MTQ2IGdpdGs6OTI4MiBnaXRrOjEwODI0IGdpdGs6MTExMDAKKyM6IGdpdGs6MTkxMSBnaXRrOjQyMDIgZ2l0azo5NDM3IGdpdGs6MTA5NzkgZ2l0azoxMTI1OAogbXNnaWQgIk9LIgogbXNnc3RyICJPSyIKIAotIzogZ2l0azoxOTEzIGdpdGs6NDE0OCBnaXRrOjg4NzEgZ2l0azo4OTUwIGdpdGs6OTA2NSBnaXRrOjkxMTQgZ2l0azo5Mjg0Ci0jOiBnaXRrOjEwODI1IGdpdGs6MTExMDEKKyM6IGdpdGs6MTkxMyBnaXRrOjQyMDQgZ2l0azo4OTY0IGdpdGs6OTA0MyBnaXRrOjkxNTkgZ2l0azo5MjA4IGdpdGs6OTQzOQorIzogZ2l0azoxMDk4MCBnaXRrOjExMjU5CiBtc2dpZCAiQ2FuY2VsIgogbXNnc3RyICJBdmJyeXQiCiAKLSM6IGdpdGs6MjA0MAorIzogZ2l0azoyMDQ4CiBtc2dpZCAiVXBkYXRlIgogbXNnc3RyICJVcHBkYXRlcmEiCiAKLSM6IGdpdGs6MjA0MQorIzogZ2l0azoyMDQ5CiBtc2dpZCAiUmVsb2FkIgogbXNnc3RyICJMYWRkYSBvbSIKIAotIzogZ2l0azoyMDQyCisjOiBnaXRrOjIwNTAKIG1zZ2lkICJSZXJlYWQgcmVmZXJlbmNlcyIKIG1zZ3N0ciAiTMOkcyBvbSByZWZlcmVuc2VyIgogCi0jOiBnaXRrOjIwNDMKKyM6IGdpdGs6MjA1MQogbXNnaWQgIkxpc3QgcmVmZXJlbmNlcyIKIG1zZ3N0ciAiVmlzYSByZWZlcmVuc2VyIgogCi0jOiBnaXRrOjIwNDUKKyM6IGdpdGs6MjA1MwogbXNnaWQgIlN0YXJ0IGdpdCBndWkiCiBtc2dzdHIgIlN0YXJ0YSBnaXQgZ3VpIgogCi0jOiBnaXRrOjIwNDcKKyM6IGdpdGs6MjA1NQogbXNnaWQgIlF1aXQiCiBtc2dzdHIgIkF2c2x1dGEiCiAKLSM6IGdpdGs6MjAzOQorIzogZ2l0azoyMDQ3CiBtc2dpZCAiRmlsZSIKIG1zZ3N0ciAiQXJraXYiCiAKLSM6IGdpdGs6MjA1MQorIzogZ2l0azoyMDU5CiBtc2dpZCAiUHJlZmVyZW5jZXMiCiBtc2dzdHIgIkluc3TDpGxsbmluZ2FyIgogCi0jOiBnaXRrOjIwNTAKKyM6IGdpdGs6MjA1OAogbXNnaWQgIkVkaXQiCiBtc2dzdHIgIlJlZGlnZXJhIgogCi0jOiBnaXRrOjIwNTUKKyM6IGdpdGs6MjA2MwogbXNnaWQgIk5ldyB2aWV3Li4uIgogbXNnc3RyICJOeSB2eS4uLiIKIAotIzogZ2l0azoyMDU2CisjOiBnaXRrOjIwNjQKIG1zZ2lkICJFZGl0IHZpZXcuLi4iCiBtc2dzdHIgIsOEbmRyYSB2eS4uLiIKIAotIzogZ2l0azoyMDU3CisjOiBnaXRrOjIwNjUKIG1zZ2lkICJEZWxldGUgdmlldyIKIG1zZ3N0ciAiVGEgYm9ydCB2eSIKIAotIzogZ2l0azoyMDU5CisjOiBnaXRrOjIwNjcKIG1zZ2lkICJBbGwgZmlsZXMiCiBtc2dzdHIgIkFsbGEgZmlsZXIiCiAKLSM6IGdpdGs6MjA1NCBnaXRrOjM4OTkKKyM6IGdpdGs6MjA2MiBnaXRrOjM5NTUKIG1zZ2lkICJWaWV3IgogbXNnc3RyICJWaXNhIgogCi0jOiBnaXRrOjIwNjQgZ2l0azoyMDc0IGdpdGs6Mjg2OQorIzogZ2l0azoyMDcyIGdpdGs6MjA4MiBnaXRrOjI5MjUKIG1zZ2lkICJBYm91dCBnaXRrIgogbXNnc3RyICJPbSBnaXRrIgogCi0jOiBnaXRrOjIwNjUgZ2l0azoyMDc5CisjOiBnaXRrOjIwNzMgZ2l0azoyMDg3CiBtc2dpZCAiS2V5IGJpbmRpbmdzIgogbXNnc3RyICJUYW5nZW50Ym9yZHNiaW5kbmluZ2FyIgogCi0jOiBnaXRrOjIwNjMgZ2l0azoyMDc4CisjOiBnaXRrOjIwNzEgZ2l0azoyMDg2CiBtc2dpZCAiSGVscCIKIG1zZ3N0ciAiSGrDpGxwIgogCi0jOiBnaXRrOjIxNTYgZ2l0azo4MzMwCisjOiBnaXRrOjIxNjQgZ2l0azo4NDIwCiBtc2dpZCAiU0hBMSBJRDoiCiBtc2dzdHIgIlNIQTEtaWQ6IgogCi0jOiBnaXRrOjIxOTIKKyM6IGdpdGs6MjIwOAogbXNnaWQgIlJvdyIKIG1zZ3N0ciAiUmFkIgogCi0jOiBnaXRrOjIyMzAKKyM6IGdpdGs6MjI0NgogbXNnaWQgIkZpbmQiCiBtc2dzdHIgIlPDtmsiCiAKLSM6IGdpdGs6MjIzMQorIzogZ2l0azoyMjQ3CiBtc2dpZCAibmV4dCIKIG1zZ3N0ciAibsOkc3RhIgogCi0jOiBnaXRrOjIyMzIKKyM6IGdpdGs6MjI0OAogbXNnaWQgInByZXYiCiBtc2dzdHIgImbDtnJlZyIKIAotIzogZ2l0azoyMjMzCisjOiBnaXRrOjIyNDkKIG1zZ2lkICJjb21taXQiCiBtc2dzdHIgImluY2hlY2tuaW5nIgogCi0jOiBnaXRrOjIyMzYgZ2l0azoyMjM4IGdpdGs6NDUxNCBnaXRrOjQ1MzcgZ2l0azo0NTYxIGdpdGs6NjUyOCBnaXRrOjY2MDAKLSM6IGdpdGs6NjY4NQorIzogZ2l0azoyMjUyIGdpdGs6MjI1NCBnaXRrOjQ1NzAgZ2l0azo0NTkzIGdpdGs6NDYxNyBnaXRrOjY1OTIgZ2l0azo2NjY0CisjOiBnaXRrOjY3NDkKIG1zZ2lkICJjb250YWluaW5nOiIKIG1zZ3N0ciAic29tIGlubmVow6VsbGVyOiIKIAotIzogZ2l0azoyMjM5IGdpdGs6MzM4MSBnaXRrOjMzODYgZ2l0azo0NTkwCisjOiBnaXRrOjIyNTUgZ2l0azozNDM3IGdpdGs6MzQ0MiBnaXRrOjQ2NDYKIG1zZ2lkICJ0b3VjaGluZyBwYXRoczoiCiBtc2dzdHIgInNvbSByw7ZyIHPDtmt2w6RnOiIKIAotIzogZ2l0azoyMjQwIGdpdGs6NDYwNAorIzogZ2l0azoyMjU2IGdpdGs6NDY2MAogbXNnaWQgImFkZGluZy9yZW1vdmluZyBzdHJpbmc6IgogbXNnc3RyICJzb20gbMOkZ2dlci90aWxsIHRhciBib3J0IHN0csOkbmc6IgogCi0jOiBnaXRrOjIyNDkgZ2l0azoyMjUxIGdpdGs6NDU5MworIzogZ2l0azoyMjU3IGdpdGs6NDY2MgorbXNnaWQgImNoYW5naW5nIGxpbmVzIG1hdGNoaW5nOiIKK21zZ3N0ciAiw6RuZHJhciByYWRlciBzb20gbWF0Y2hhcjoiCisKKyM6IGdpdGs6MjI2NiBnaXRrOjIyNjggZ2l0azo0NjQ5CiBtc2dpZCAiRXhhY3QiCiBtc2dzdHIgIkV4YWt0IgogCi0jOiBnaXRrOjIyNTEgZ2l0azo0Njc5IGdpdGs6NjQ5NgorIzogZ2l0azoyMjY4IGdpdGs6NDczNyBnaXRrOjY1NjAKIG1zZ2lkICJJZ25DYXNlIgogbXNnc3RyICJJZ25WZXJzYWxlciIKIAotIzogZ2l0azoyMjUxIGdpdGs6NDU2MyBnaXRrOjQ2NzcgZ2l0azo2NDkyCisjOiBnaXRrOjIyNjggZ2l0azo0NjE5IGdpdGs6NDczNSBnaXRrOjY1NTYKIG1zZ2lkICJSZWdleHAiCiBtc2dzdHIgIlJlZy51dHRyLiIKIAotIzogZ2l0azoyMjUzIGdpdGs6MjI1NCBnaXRrOjQ2OTkgZ2l0azo0NzI5IGdpdGs6NDczNiBnaXRrOjY2MjEgZ2l0azo2Njg5CisjOiBnaXRrOjIyNzAgZ2l0azoyMjcxIGdpdGs6NDc1NyBnaXRrOjQ3ODcgZ2l0azo0Nzk0IGdpdGs6NjY4NSBnaXRrOjY3NTMKIG1zZ2lkICJBbGwgZmllbGRzIgogbXNnc3RyICJBbGxhIGbDpGx0IgogCi0jOiBnaXRrOjIyNTQgZ2l0azo0Njk2IGdpdGs6NDcyOSBnaXRrOjY1NTkKKyM6IGdpdGs6MjI3MSBnaXRrOjQ3NTQgZ2l0azo0Nzg3IGdpdGs6NjYyMwogbXNnaWQgIkhlYWRsaW5lIgogbXNnc3RyICJSdWJyaWsiCiAKLSM6IGdpdGs6MjI1NSBnaXRrOjQ2OTYgZ2l0azo2NTU5IGdpdGs6NjY4OSBnaXRrOjcxMjYKKyM6IGdpdGs6MjI3MiBnaXRrOjQ3NTQgZ2l0azo2NjIzIGdpdGs6Njc1MyBnaXRrOjcyMjEKIG1zZ2lkICJDb21tZW50cyIKIG1zZ3N0ciAiS29tbWVudGFyZXIiCiAKLSM6IGdpdGs6MjI1NSBnaXRrOjQ2OTYgZ2l0azo0NzAxIGdpdGs6NDczNiBnaXRrOjY1NTkgZ2l0azo3MDYxIGdpdGs6ODUwNQotIzogZ2l0azo4NTIwCisjOiBnaXRrOjIyNzIgZ2l0azo0NzU0IGdpdGs6NDc1OSBnaXRrOjQ3OTQgZ2l0azo2NjIzIGdpdGs6NzE1NiBnaXRrOjg1OTgKKyM6IGdpdGs6ODYxMwogbXNnaWQgIkF1dGhvciIKIG1zZ3N0ciAiRsO2cmZhdHRhcmUiCiAKLSM6IGdpdGs6MjI1NSBnaXRrOjQ2OTYgZ2l0azo2NTU5IGdpdGs6NzA2MworIzogZ2l0azoyMjcyIGdpdGs6NDc1NCBnaXRrOjY2MjMgZ2l0azo3MTU4CiBtc2dpZCAiQ29tbWl0dGVyIgogbXNnc3RyICJJbmNoZWNrYXJlIgogCi0jOiBnaXRrOjIyODYKKyM6IGdpdGs6MjMwMwogbXNnaWQgIlNlYXJjaCIKIG1zZ3N0ciAiU8O2ayIKIAotIzogZ2l0azoyMjk0CisjOiBnaXRrOjIzMTEKIG1zZ2lkICJEaWZmIgogbXNnc3RyICJEaWZmIgogCi0jOiBnaXRrOjIyOTYKKyM6IGdpdGs6MjMxMwogbXNnaWQgIk9sZCB2ZXJzaW9uIgogbXNnc3RyICJHYW1tYWwgdmVyc2lvbiIKIAotIzogZ2l0azoyMjk4CisjOiBnaXRrOjIzMTUKIG1zZ2lkICJOZXcgdmVyc2lvbiIKIG1zZ3N0ciAiTnkgdmVyc2lvbiIKIAotIzogZ2l0azoyMzAwCisjOiBnaXRrOjIzMTcKIG1zZ2lkICJMaW5lcyBvZiBjb250ZXh0IgogbXNnc3RyICJSYWRlciBzYW1tYW5oYW5nIgogCi0jOiBnaXRrOjIzMTAKKyM6IGdpdGs6MjMyNwogbXNnaWQgIklnbm9yZSBzcGFjZSBjaGFuZ2UiCiBtc2dzdHIgIklnbm9yZXJhIMOkbmRyaW5nYXIgaSBibGFua3N0ZWciCiAKLSM6IGdpdGs6MjMxNCBnaXRrOjIzMTYgZ2l0azo3NjQ2IGdpdGs6Nzg3NAorIzogZ2l0azoyMzMxIGdpdGs6MjMzMyBnaXRrOjc3MzUgZ2l0azo3OTYzCiBtc2dpZCAiTGluZSBkaWZmIgogbXNnc3RyICJSYWQtZGlmZiIKIAotIzogZ2l0azoyMzc5CisjOiBnaXRrOjIzOTcKIG1zZ2lkICJQYXRjaCIKIG1zZ3N0ciAiUGF0Y2giCiAKLSM6IGdpdGs6MjM4MQorIzogZ2l0azoyMzk5CiBtc2dpZCAiVHJlZSIKIG1zZ3N0ciAiVHLDpGQiCiAKLSM6IGdpdGs6MjU0MCBnaXRrOjI1NTkKKyM6IGdpdGs6MjU1NyBnaXRrOjI1NzcKIG1zZ2lkICJEaWZmIHRoaXMgLT4gc2VsZWN0ZWQiCiBtc2dzdHIgIkRpZmYgZGVubmEgLT4gbWFya2VyYWQiCiAKLSM6IGdpdGs6MjU0MSBnaXRrOjI1NjAKKyM6IGdpdGs6MjU1OCBnaXRrOjI1NzgKIG1zZ2lkICJEaWZmIHNlbGVjdGVkIC0+IHRoaXMiCiBtc2dzdHIgIkRpZmYgbWFya2VyYWQgLT4gZGVubmEiCiAKLSM6IGdpdGs6MjU0MiBnaXRrOjI1NjEKKyM6IGdpdGs6MjU1OSBnaXRrOjI1NzkKIG1zZ2lkICJNYWtlIHBhdGNoIgogbXNnc3RyICJTa2FwYSBwYXRjaCIKIAotIzogZ2l0azoyNTQzIGdpdGs6ODkyOQorIzogZ2l0azoyNTYwIGdpdGs6OTAyMgogbXNnaWQgIkNyZWF0ZSB0YWciCiBtc2dzdHIgIlNrYXBhIHRhZ2ciCiAKLSM6IGdpdGs6MjU0NCBnaXRrOjkwNDUKKyM6IGdpdGs6MjU2MSBnaXRrOjkxMzkKIG1zZ2lkICJXcml0ZSBjb21taXQgdG8gZmlsZSIKIG1zZ3N0ciAiU2tyaXYgaW5jaGVja25pbmcgdGlsbCBmaWwiCiAKLSM6IGdpdGs6MjU0NSBnaXRrOjkxMDIKKyM6IGdpdGs6MjU2MiBnaXRrOjkxOTYKIG1zZ2lkICJDcmVhdGUgbmV3IGJyYW5jaCIKIG1zZ3N0ciAiU2thcGEgbnkgZ3JlbiIKIAotIzogZ2l0azoyNTQ2CisjOiBnaXRrOjI1NjMKIG1zZ2lkICJDaGVycnktcGljayB0aGlzIGNvbW1pdCIKIG1zZ3N0ciAiUGxvY2thIGRlbm5hIGluY2hlY2tuaW5nIgogCi0jOiBnaXRrOjI1NDcKKyM6IGdpdGs6MjU2NAogbXNnaWQgIlJlc2V0IEhFQUQgYnJhbmNoIHRvIGhlcmUiCiBtc2dzdHIgIsOFdGVyc3TDpGxsIEhFQUQtZ3JlbmVuIGhpdCIKIAotIzogZ2l0azoyNTQ4CisjOiBnaXRrOjI1NjUKIG1zZ2lkICJNYXJrIHRoaXMgY29tbWl0IgogbXNnc3RyICJNYXJrZXJhIGRlbm5hIGluY2hlY2tuaW5nIgogCi0jOiBnaXRrOjI1NDkKKyM6IGdpdGs6MjU2NgogbXNnaWQgIlJldHVybiB0byBtYXJrIgogbXNnc3RyICLDhXRlcmfDpSB0aWxsIG1hcmtlcmluZyIKIAotIzogZ2l0azoyNTUwCisjOiBnaXRrOjI1NjcKIG1zZ2lkICJGaW5kIGRlc2NlbmRhbnQgb2YgdGhpcyBhbmQgbWFyayIKIG1zZ3N0ciAiSGl0dGEgZWZ0ZXJmw7ZsamFyZSB0aWxsIGRlbm5hIG9jaCBtYXJrZXJhIgogCi0jOiBnaXRrOjI1NTEKKyM6IGdpdGs6MjU2OAogbXNnaWQgIkNvbXBhcmUgd2l0aCBtYXJrZWQgY29tbWl0IgogbXNnc3RyICJKw6RtZsO2ciBtZWQgbWFya2VyYWQgaW5jaGVja25pbmciCiAKLSM6IGdpdGs6MjU1MiBnaXRrOjI1NjIKKyM6IGdpdGs6MjU2OSBnaXRrOjI1ODAKIG1zZ2lkICJEaWZmIHRoaXMgLT4gbWFya2VkIGNvbW1pdCIKIG1zZ3N0ciAiRGlmZiBkZW5uYSAtPiBtYXJrZXJhZCBpbmNoZWNrbmluZyIKIAotIzogZ2l0azoyNTUzIGdpdGs6MjU2MworIzogZ2l0azoyNTcwIGdpdGs6MjU4MQogbXNnaWQgIkRpZmYgbWFya2VkIGNvbW1pdCAtPiB0aGlzIgogbXNnc3RyICJEaWZmIG1hcmtlcmFkIGluY2hlY2tuaW5nIC0+IGRlbm5hIgogCi0jOiBnaXRrOjI1NjkKKyM6IGdpdGs6MjU3MQorbXNnaWQgIlJldmVydCB0aGlzIGNvbW1pdCIKK21zZ3N0ciAiw4VuZ3JhIGRlbm5hIGluY2hlY2tuaW5nIgorCisjOiBnaXRrOjI1ODcKIG1zZ2lkICJDaGVjayBvdXQgdGhpcyBicmFuY2giCiBtc2dzdHIgIkNoZWNrYSB1dCBkZW5uYSBncmVuIgogCi0jOiBnaXRrOjI1NzAKKyM6IGdpdGs6MjU4OAogbXNnaWQgIlJlbW92ZSB0aGlzIGJyYW5jaCIKIG1zZ3N0ciAiVGEgYm9ydCBkZW5uYSBncmVuIgogCi0jOiBnaXRrOjI1NzcKKyM6IGdpdGs6MjU5NQogbXNnaWQgIkhpZ2hsaWdodCB0aGlzIHRvbyIKIG1zZ3N0ciAiTWFya2VyYSDDpHZlbiBkZXR0YSIKIAotIzogZ2l0azoyNTc4CisjOiBnaXRrOjI1OTYKIG1zZ2lkICJIaWdobGlnaHQgdGhpcyBvbmx5IgogbXNnc3RyICJNYXJrZXJhIGJhcmEgZGV0dGEiCiAKLSM6IGdpdGs6MjU3OQorIzogZ2l0azoyNTk3CiBtc2dpZCAiRXh0ZXJuYWwgZGlmZiIKIG1zZ3N0ciAiRXh0ZXJuIGRpZmYiCiAKLSM6IGdpdGs6MjU4MAorIzogZ2l0azoyNTk4CiBtc2dpZCAiQmxhbWUgcGFyZW50IGNvbW1pdCIKIG1zZ3N0ciAiS2xhbmRyYSBmw7Zyw6RsZHJhaW5jaGVja25pbmciCiAKLSM6IGdpdGs6MjU4NworIzogZ2l0azoyNjA1CiBtc2dpZCAiU2hvdyBvcmlnaW4gb2YgdGhpcyBsaW5lIgogbXNnc3RyICJWaXNhIHVyc3BydW5nZXQgZsO2ciBkZW4gaMOkciByYWRlbiIKIAotIzogZ2l0azoyNTg4CisjOiBnaXRrOjI2MDYKIG1zZ2lkICJSdW4gZ2l0IGd1aSBibGFtZSBvbiB0aGlzIGxpbmUiCiBtc2dzdHIgIkvDtnIgZ2l0IGd1aSBibGFtZSBww6UgZGVuIGjDpHIgcmFkZW4iCiAKLSM6IGdpdGs6Mjg3MQorIzogZ2l0azoyOTI3CiBtc2dpZCAiIgogIlxuIgogIkdpdGsgLSBhIGNvbW1pdCB2aWV3ZXIgZm9yIGdpdFxuIgpAQCAtMzY3LDMwMiArMzc1LDMwMiBAQAogIlxuIgogIkFudsOkbmQgb2NoIHZpZGFyZWbDtnJtZWRsYSBlbmxpZ3QgdmlsbGtvcmVuIGkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiCiAKLSM6IGdpdGs6Mjg3OSBnaXRrOjI5NDQgZ2l0azo5NDY4CisjOiBnaXRrOjI5MzUgZ2l0azozMDAwIGdpdGs6OTYyMwogbXNnaWQgIkNsb3NlIgogbXNnc3RyICJTdMOkbmciCiAKLSM6IGdpdGs6MjkwMAorIzogZ2l0azoyOTU2CiBtc2dpZCAiR2l0ayBrZXkgYmluZGluZ3MiCiBtc2dzdHIgIlRhbmdlbnRib3Jkc2JpbmRuaW5nYXIgZsO2ciBHaXRrIgogCi0jOiBnaXRrOjI5MDMKKyM6IGdpdGs6Mjk1OQogbXNnaWQgIkdpdGsga2V5IGJpbmRpbmdzOiIKIG1zZ3N0ciAiVGFuZ2VudGJvcmRzYmluZG5pbmdhciBmw7ZyIEdpdGs6IgogCi0jOiBnaXRrOjI5MDUKKyM6IGdpdGs6Mjk2MQogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1RPlx0XHRRdWl0IgogbXNnc3RyICI8JXMtUT5cdFx0QXZzbHV0YSIKIAotIzogZ2l0azoyOTA2CisjOiBnaXRrOjI5NjIKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtVz5cdFx0Q2xvc2Ugd2luZG93IgogbXNnc3RyICI8JXMtVz5cdFx0U3TDpG5nIGbDtm5zdGVyIgogCi0jOiBnaXRrOjI5MDcKKyM6IGdpdGs6Mjk2MwogbXNnaWQgIjxIb21lPlx0XHRNb3ZlIHRvIGZpcnN0IGNvbW1pdCIKIG1zZ3N0ciAiPEhvbWU+XHRcdEfDpSB0aWxsIGbDtnJzdGEgaW5jaGVja25pbmciCiAKLSM6IGdpdGs6MjkwOAorIzogZ2l0azoyOTY0CiBtc2dpZCAiPEVuZD5cdFx0TW92ZSB0byBsYXN0IGNvbW1pdCIKIG1zZ3N0ciAiPEVuZD5cdFx0R8OlIHRpbGwgc2lzdGEgaW5jaGVja25pbmciCiAKLSM6IGdpdGs6MjkwOQorIzogZ2l0azoyOTY1CiBtc2dpZCAiPFVwPiwgcCwga1x0TW92ZSB1cCBvbmUgY29tbWl0IgogbXNnc3RyICI8VXBwPiwgcCwga1x0R8OlIGVuIGluY2hlY2tuaW5nIHVwcCIKIAotIzogZ2l0azoyOTEwCisjOiBnaXRrOjI5NjYKIG1zZ2lkICI8RG93bj4sIG4sIGpcdE1vdmUgZG93biBvbmUgY29tbWl0IgogbXNnc3RyICI8TmVkPiwgbiwgalx0R8OlIGVuIGluY2hlY2tuaW5nIG5lZCIKIAotIzogZ2l0azoyOTExCisjOiBnaXRrOjI5NjcKIG1zZ2lkICI8TGVmdD4sIHosIGhcdEdvIGJhY2sgaW4gaGlzdG9yeSBsaXN0IgogbXNnc3RyICI8VsOkbnN0ZXI+LCB6LCBoXHRHw6UgYmFrw6V0IGkgaGlzdG9yaWtlbiIKIAotIzogZ2l0azoyOTEyCisjOiBnaXRrOjI5NjgKIG1zZ2lkICI8UmlnaHQ+LCB4LCBsXHRHbyBmb3J3YXJkIGluIGhpc3RvcnkgbGlzdCIKIG1zZ3N0ciAiPEjDtmdlcj4sIHgsIGxcdEfDpSBmcmFtw6V0IGkgaGlzdG9yaWtlbiIKIAotIzogZ2l0azoyOTEzCisjOiBnaXRrOjI5NjkKIG1zZ2lkICI8UGFnZVVwPlx0TW92ZSB1cCBvbmUgcGFnZSBpbiBjb21taXQgbGlzdCIKIG1zZ3N0ciAiPFBhZ2VVcD5cdEfDpSB1cHAgZW4gc2lkYSBpIGluY2hlY2tuaW5nc2xpc3RhbiIKIAotIzogZ2l0azoyOTE0CisjOiBnaXRrOjI5NzAKIG1zZ2lkICI8UGFnZURvd24+XHRNb3ZlIGRvd24gb25lIHBhZ2UgaW4gY29tbWl0IGxpc3QiCiBtc2dzdHIgIjxQYWdlRG93bj5cdEfDpSBuZWQgZW4gc2lkYSBpIGluY2hlY2tuaW5nc2xpc3RhbiIKIAotIzogZ2l0azoyOTE1CisjOiBnaXRrOjI5NzEKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtSG9tZT5cdFNjcm9sbCB0byB0b3Agb2YgY29tbWl0IGxpc3QiCiBtc2dzdHIgIjwlcy1Ib21lPlx0UnVsbGEgdGlsbCBiw7ZyamFuIGF2IGluY2hlY2tuaW5nc2xpc3RhbiIKIAotIzogZ2l0azoyOTE2CisjOiBnaXRrOjI5NzIKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtRW5kPlx0U2Nyb2xsIHRvIGJvdHRvbSBvZiBjb21taXQgbGlzdCIKIG1zZ3N0ciAiPCVzLUVuZD5cdFJ1bGxhIHRpbGwgc2x1dGV0IGF2IGluY2hlY2tuaW5nc2xpc3RhbiIKIAotIzogZ2l0azoyOTE3CisjOiBnaXRrOjI5NzMKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtVXA+XHRTY3JvbGwgY29tbWl0IGxpc3QgdXAgb25lIGxpbmUiCiBtc2dzdHIgIjwlcy1VcHA+XHRSdWxsYSBpbmNoZWNrbmluZ3NsaXN0YW4gdXBwIGV0dCBzdGVnIgogCi0jOiBnaXRrOjI5MTgKKyM6IGdpdGs6Mjk3NAogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1Eb3duPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IGRvd24gb25lIGxpbmUiCiBtc2dzdHIgIjwlcy1OZWQ+XHRSdWxsYSBpbmNoZWNrbmluZ3NsaXN0YW4gbmVkIGV0dCBzdGVnIgogCi0jOiBnaXRrOjI5MTkKKyM6IGdpdGs6Mjk3NQogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1QYWdlVXA+XHRTY3JvbGwgY29tbWl0IGxpc3QgdXAgb25lIHBhZ2UiCiBtc2dzdHIgIjwlcy1QYWdlVXA+XHRSdWxsYSBpbmNoZWNrbmluZ3NsaXN0YW4gdXBwIGVuIHNpZGEiCiAKLSM6IGdpdGs6MjkyMAorIzogZ2l0azoyOTc2CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiPCVzLVBhZ2VEb3duPlx0U2Nyb2xsIGNvbW1pdCBsaXN0IGRvd24gb25lIHBhZ2UiCiBtc2dzdHIgIjwlcy1QYWdlRG93bj5cdFJ1bGxhIGluY2hlY2tuaW5nc2xpc3RhbiBuZWQgZW4gc2lkYSIKIAotIzogZ2l0azoyOTIxCisjOiBnaXRrOjI5NzcKIG1zZ2lkICI8U2hpZnQtVXA+XHRGaW5kIGJhY2t3YXJkcyAodXB3YXJkcywgbGF0ZXIgY29tbWl0cykiCiBtc2dzdHIgIjxTa2lmdC1VcHA+XHRTw7ZrIGJha8OldCAodXBww6V0LCBzZW5hcmUgaW5jaGVja25pbmdhcikiCiAKLSM6IGdpdGs6MjkyMgorIzogZ2l0azoyOTc4CiBtc2dpZCAiPFNoaWZ0LURvd24+XHRGaW5kIGZvcndhcmRzIChkb3dud2FyZHMsIGVhcmxpZXIgY29tbWl0cykiCiBtc2dzdHIgIjxTa2lmdC1OZWQ+XHRTw7ZrIGZyYW3DpXQgKG5lZMOldCwgdGlkaWdhcmUgaW5jaGVja25pbmdhcikiCiAKLSM6IGdpdGs6MjkyMworIzogZ2l0azoyOTc5CiBtc2dpZCAiPERlbGV0ZT4sIGJcdFNjcm9sbCBkaWZmIHZpZXcgdXAgb25lIHBhZ2UiCiBtc2dzdHIgIjxEZWxldGU+LCBiXHRSdWxsYSBkaWZmdmlzbmluZ2VuIHVwcCBlbiBzaWRhIgogCi0jOiBnaXRrOjI5MjQKKyM6IGdpdGs6Mjk4MAogbXNnaWQgIjxCYWNrc3BhY2U+XHRTY3JvbGwgZGlmZiB2aWV3IHVwIG9uZSBwYWdlIgogbXNnc3RyICI8QmFrc3RlZz5cdFJ1bGxhIGRpZmZ2aXNuaW5nZW4gdXBwIGVuIHNpZGEiCiAKLSM6IGdpdGs6MjkyNQorIzogZ2l0azoyOTgxCiBtc2dpZCAiPFNwYWNlPlx0XHRTY3JvbGwgZGlmZiB2aWV3IGRvd24gb25lIHBhZ2UiCiBtc2dzdHIgIjxCbGFua3N0ZWc+XHRSdWxsYSBkaWZmdmlzbmluZ2VuIG5lZCBlbiBzaWRhIgogCi0jOiBnaXRrOjI5MjYKKyM6IGdpdGs6Mjk4MgogbXNnaWQgInVcdFx0U2Nyb2xsIGRpZmYgdmlldyB1cCAxOCBsaW5lcyIKIG1zZ3N0ciAidVx0XHRSdWxsYSBkaWZmdmlzbmluZ2VuIHVwcCAxOCByYWRlciIKIAotIzogZ2l0azoyOTI3CisjOiBnaXRrOjI5ODMKIG1zZ2lkICJkXHRcdFNjcm9sbCBkaWZmIHZpZXcgZG93biAxOCBsaW5lcyIKIG1zZ3N0ciAiZFx0XHRSdWxsYSBkaWZmdmlzbmluZ2VuIG5lZCAxOCByYWRlciIKIAotIzogZ2l0azoyOTI4CisjOiBnaXRrOjI5ODQKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtRj5cdFx0RmluZCIKIG1zZ3N0ciAiPCVzLUY+XHRcdFPDtmsiCiAKLSM6IGdpdGs6MjkyOQorIzogZ2l0azoyOTg1CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiPCVzLUc+XHRcdE1vdmUgdG8gbmV4dCBmaW5kIGhpdCIKIG1zZ3N0ciAiPCVzLUc+XHRcdEfDpSB0aWxsIG7DpHN0YSBzw7ZrdHLDpGZmIgogCi0jOiBnaXRrOjI5MzAKKyM6IGdpdGs6Mjk4NgogbXNnaWQgIjxSZXR1cm4+XHRNb3ZlIHRvIG5leHQgZmluZCBoaXQiCiBtc2dzdHIgIjxSZXR1cm4+XHRcdEfDpSB0aWxsIG7DpHN0YSBzw7ZrdHLDpGZmIgogCi0jOiBnaXRrOjI5MzEKKyM6IGdpdGs6Mjk4NwogbXNnaWQgIi9cdFx0Rm9jdXMgdGhlIHNlYXJjaCBib3giCiBtc2dzdHIgIi9cdFx0Rm9rdXNlcmEgc8O2a3J1dGFuIgogCi0jOiBnaXRrOjI5MzIKKyM6IGdpdGs6Mjk4OAogbXNnaWQgIj9cdFx0TW92ZSB0byBwcmV2aW91cyBmaW5kIGhpdCIKIG1zZ3N0ciAiP1x0XHRHw6UgdGlsbCBmw7ZyZWfDpWVuZGUgc8O2a3Ryw6RmZiIKIAotIzogZ2l0azoyOTMzCisjOiBnaXRrOjI5ODkKIG1zZ2lkICJmXHRcdFNjcm9sbCBkaWZmIHZpZXcgdG8gbmV4dCBmaWxlIgogbXNnc3RyICJmXHRcdFJ1bGxhIGRpZmZ2aXNuaW5nZW4gdGlsbCBuw6RzdGEgZmlsIgogCi0jOiBnaXRrOjI5MzQKKyM6IGdpdGs6Mjk5MAogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1TPlx0XHRTZWFyY2ggZm9yIG5leHQgaGl0IGluIGRpZmYgdmlldyIKIG1zZ3N0ciAiPCVzLVM+XHRcdEfDpSB0aWxsIG7DpHN0YSBzw7ZrdHLDpGZmIGkgZGlmZnZpc25pbmdlbiIKIAotIzogZ2l0azoyOTM1CisjOiBnaXRrOjI5OTEKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtUj5cdFx0U2VhcmNoIGZvciBwcmV2aW91cyBoaXQgaW4gZGlmZiB2aWV3IgogbXNnc3RyICI8JXMtUj5cdFx0R8OlIHRpbGwgZsO2cmVnw6VlbmRlIHPDtmt0csOkZmYgaSBkaWZmdmlzbmluZ2VuIgogCi0jOiBnaXRrOjI5MzYKKyM6IGdpdGs6Mjk5MgogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1LUCs+XHRJbmNyZWFzZSBmb250IHNpemUiCiBtc2dzdHIgIjwlcy1OdW0rPlx0w5ZrYSB0ZWNrZW5zdG9ybGVrIgogCi0jOiBnaXRrOjI5MzcKKyM6IGdpdGs6Mjk5MwogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1wbHVzPlx0SW5jcmVhc2UgZm9udCBzaXplIgogbXNnc3RyICI8JXMtcGx1cz5cdMOWa2EgdGVja2Vuc3RvcmxlayIKIAotIzogZ2l0azoyOTM4CisjOiBnaXRrOjI5OTQKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICI8JXMtS1AtPlx0RGVjcmVhc2UgZm9udCBzaXplIgogbXNnc3RyICI8JXMtTnVtLT5cdE1pbnNrYSB0ZWNrZW5zdG9ybGVrIgogCi0jOiBnaXRrOjI5MzkKKyM6IGdpdGs6Mjk5NQogIywgdGNsLWZvcm1hdAogbXNnaWQgIjwlcy1taW51cz5cdERlY3JlYXNlIGZvbnQgc2l6ZSIKIG1zZ3N0ciAiPCVzLW1pbnVzPlx0TWluc2thIHRlY2tlbnN0b3JsZWsiCiAKLSM6IGdpdGs6Mjk0MAorIzogZ2l0azoyOTk2CiBtc2dpZCAiPEY1Plx0XHRVcGRhdGUiCiBtc2dzdHIgIjxGNT5cdFx0VXBwZGF0ZXJhIgogCi0jOiBnaXRrOjMzOTUgZ2l0azozNDA0CisjOiBnaXRrOjM0NTEgZ2l0azozNDYwCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiRXJyb3IgY3JlYXRpbmcgdGVtcG9yYXJ5IGRpcmVjdG9yeSAlczoiCiBtc2dzdHIgIkZlbCB2aWQgc2thcGFuZGUgYXYgdGVtcG9yw6RyIGthdGFsb2cgJXM6IgogCi0jOiBnaXRrOjM0MTcKKyM6IGdpdGs6MzQ3MwogIywgdGNsLWZvcm1hdAogbXNnaWQgIkVycm9yIGdldHRpbmcgXCIlc1wiIGZyb20gJXM6IgogbXNnc3RyICJGZWwgdmlkIGjDpG10bmluZyBhdiAgXCIlc1wiIGZyw6VuICVzOiIKIAotIzogZ2l0azozNDgwCisjOiBnaXRrOjM1MzYKIG1zZ2lkICJjb21tYW5kIGZhaWxlZDoiCiBtc2dzdHIgImtvbW1hbmRvIG1pc3NseWNrYWRlczoiCiAKLSM6IGdpdGs6MzYyOQorIzogZ2l0azozNjg1CiBtc2dpZCAiTm8gc3VjaCBjb21taXQiCiBtc2dzdHIgIkluY2hlY2tuaW5nIHNha25hcyIKIAotIzogZ2l0azozNjQzCisjOiBnaXRrOjM2OTkKIG1zZ2lkICJnaXQgZ3VpIGJsYW1lOiBjb21tYW5kIGZhaWxlZDoiCiBtc2dzdHIgImdpdCBndWkgYmxhbWU6IGtvbW1hbmRvIG1pc3NseWNrYWRlczoiCiAKLSM6IGdpdGs6MzY3NAorIzogZ2l0azozNzMwCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiQ291bGRuJ3QgcmVhZCBtZXJnZSBoZWFkOiAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RzYSBzYW1tYW5zbGFnbmluZ3NodXZ1ZDogJXMiCiAKLSM6IGdpdGs6MzY4MgorIzogZ2l0azozNzM4CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiRXJyb3IgcmVhZGluZyBpbmRleDogJXMiCiBtc2dzdHIgIkZlbCB2aWQgbMOkc25pbmcgYXYgaW5kZXg6ICVzIgogCi0jOiBnaXRrOjM3MDcKKyM6IGdpdGs6Mzc2MwogIywgdGNsLWZvcm1hdAogbXNnaWQgIkNvdWxkbid0IHN0YXJ0IGdpdCBibGFtZTogJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgc3RhcnRhIGdpdCBibGFtZTogJXMiCiAKLSM6IGdpdGs6MzcxMCBnaXRrOjY1MjcKKyM6IGdpdGs6Mzc2NiBnaXRrOjY1OTEKIG1zZ2lkICJTZWFyY2hpbmciCiBtc2dzdHIgIlPDtmtlciIKIAotIzogZ2l0azozNzQyCisjOiBnaXRrOjM3OTgKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJFcnJvciBydW5uaW5nIGdpdCBibGFtZTogJXMiCiBtc2dzdHIgIkZlbCB2aWQga8O2cm5pbmcgYXYgZ2l0IGJsYW1lOiAlcyIKIAotIzogZ2l0azozNzcwCisjOiBnaXRrOjM4MjYKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJUaGF0IGxpbmUgY29tZXMgZnJvbSBjb21taXQgJXMsICB3aGljaCBpcyBub3QgaW4gdGhpcyB2aWV3IgogbXNnc3RyICJSYWRlbiBrb21tZXIgZnLDpW4gaW5jaGVja25pbmdlbiAlcywgc29tIGludGUgZmlubnMgaSBkZW5uYSB2eSIKIAotIzogZ2l0azozNzg0CisjOiBnaXRrOjM4NDAKIG1zZ2lkICJFeHRlcm5hbCBkaWZmIHZpZXdlciBmYWlsZWQ6IgogbXNnc3RyICJFeHRlcm50IGRpZmYtdmVya3R5ZyBtaXNzbHlja2FkZXM6IgogCi0jOiBnaXRrOjM5MDIKKyM6IGdpdGs6Mzk1OAogbXNnaWQgIkdpdGsgdmlldyBkZWZpbml0aW9uIgogbXNnc3RyICJEZWZpbml0aW9uIGF2IEdpdGstdnkiCiAKLSM6IGdpdGs6MzkwNgorIzogZ2l0azozOTYyCiBtc2dpZCAiUmVtZW1iZXIgdGhpcyB2aWV3IgogbXNnc3RyICJTcGFyYSBkZW5uYSB2eSIKIAotIzogZ2l0azozOTA3CisjOiBnaXRrOjM5NjMKIG1zZ2lkICJSZWZlcmVuY2VzIChzcGFjZSBzZXBhcmF0ZWQgbGlzdCk6IgogbXNnc3RyICJSZWZlcmVuc2VyIChibGFua3N0ZWdzYXZkZWxhZCBsaXN0YSk6IgogCi0jOiBnaXRrOjM5MDgKKyM6IGdpdGs6Mzk2NAogbXNnaWQgIkJyYW5jaGVzICYgdGFnczoiCiBtc2dzdHIgIkdyZW5hciAmIHRhZ2dhcjoiCiAKLSM6IGdpdGs6MzkwOQorIzogZ2l0azozOTY1CiBtc2dpZCAiQWxsIHJlZnMiCiBtc2dzdHIgIkFsbGEgcmVmZXJlbnNlciIKIAotIzogZ2l0azozOTEwCisjOiBnaXRrOjM5NjYKIG1zZ2lkICJBbGwgKGxvY2FsKSBicmFuY2hlcyIKIG1zZ3N0ciAiQWxsYSAobG9rYWxhKSBncmVuYXIiCiAKLSM6IGdpdGs6MzkxMQorIzogZ2l0azozOTY3CiBtc2dpZCAiQWxsIHRhZ3MiCiBtc2dzdHIgIkFsbGEgdGFnZ2FyIgogCi0jOiBnaXRrOjM5MTIKKyM6IGdpdGs6Mzk2OAogbXNnaWQgIkFsbCByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIkFsbGEgZmrDpHJyc3DDpXJhbmRlIGdyZW5hciIKIAotIzogZ2l0azozOTEzCisjOiBnaXRrOjM5NjkKIG1zZ2lkICJDb21taXQgSW5mbyAocmVndWxhciBleHByZXNzaW9ucyk6IgogbXNnc3RyICJJbmNoZWNrbmluZ3NpbmZvIChyZWd1bGrDpHJhIHV0dHJ5Y2spOiIKIAotIzogZ2l0azozOTE0CisjOiBnaXRrOjM5NzAKIG1zZ2lkICJBdXRob3I6IgogbXNnc3RyICJGw7ZyZmF0dGFyZToiCiAKLSM6IGdpdGs6MzkxNQorIzogZ2l0azozOTcxCiBtc2dpZCAiQ29tbWl0dGVyOiIKIG1zZ3N0ciAiSW5jaGVja2FyZToiCiAKLSM6IGdpdGs6MzkxNgorIzogZ2l0azozOTcyCiBtc2dpZCAiQ29tbWl0IE1lc3NhZ2U6IgogbXNnc3RyICJJbmNoZWNrbmluZ3NtZWRkZWxhbmRlOiIKIAotIzogZ2l0azozOTE3CisjOiBnaXRrOjM5NzMKIG1zZ2lkICJNYXRjaGVzIGFsbCBDb21taXQgSW5mbyBjcml0ZXJpYSIKIG1zZ3N0ciAiTW90c3ZhcmFyIGFsbGEga3JpdGVyaWVyIGbDtnIgaW5jaGVja25pbmdzaW5mbyIKIAotIzogZ2l0azozOTE4CisjOiBnaXRrOjM5NzQKIG1zZ2lkICJDaGFuZ2VzIHRvIEZpbGVzOiIKIG1zZ3N0ciAiw4RuZHJpbmdhciBhdiBmaWxlcjoiCiAKLSM6IGdpdGs6MzkxOQorIzogZ2l0azozOTc1CiBtc2dpZCAiRml4ZWQgU3RyaW5nIgogbXNnc3RyICJGYXN0IHN0csOkbmciCiAKLSM6IGdpdGs6MzkyMAorIzogZ2l0azozOTc2CiBtc2dpZCAiUmVndWxhciBFeHByZXNzaW9uIgogbXNnc3RyICJSZWd1bGrDpHJ0IHV0dHJ5Y2siCiAKLSM6IGdpdGs6MzkyMQorIzogZ2l0azozOTc3CiBtc2dpZCAiU2VhcmNoIHN0cmluZzoiCiBtc2dzdHIgIlPDtmtzdHLDpG5nOiIKIAotIzogZ2l0azozOTIyCisjOiBnaXRrOjM5NzgKIG1zZ2lkICIiCiAiQ29tbWl0IERhdGVzIChcIjIgd2Vla3MgYWdvXCIsIFwiMjAwOS0wMy0xNyAxNToyNzozOFwiLCBcIk1hcmNoIDE3LCAyMDA5ICIKICIxNToyNzozOFwiKToiCkBAIC02NzAsMTk3ICs2NzgsMjAxIEBACiAiSW5jaGVja2luZ3NkYXR1bSAoXCIyIHdlZWtzIGFnb1wiLCBcIjIwMDktMDMtMTcgMTU6Mjc6MzhcIiwgXCJNYXJjaCAxNywgMjAwOSAiCiAiMTU6Mjc6MzhcIik6IgogCi0jOiBnaXRrOjM5MjMKKyM6IGdpdGs6Mzk3OQogbXNnaWQgIlNpbmNlOiIKIG1zZ3N0ciAiRnLDpW46IgogCi0jOiBnaXRrOjM5MjQKKyM6IGdpdGs6Mzk4MAogbXNnaWQgIlVudGlsOiIKIG1zZ3N0ciAiVGlsbDoiCiAKLSM6IGdpdGs6MzkyNQorIzogZ2l0azozOTgxCiBtc2dpZCAiTGltaXQgYW5kL29yIHNraXAgYSBudW1iZXIgb2YgcmV2aXNpb25zIChwb3NpdGl2ZSBpbnRlZ2VyKToiCiBtc2dzdHIgIkJlZ3LDpG5zYSBvY2gvZWxsZXIgaG9wcGEgw7Z2ZXIgZXR0IGFudGFsIHJldmlzaW9uZXIgKHBvc2l0aXZ0IGhlbHRhbCk6IgogCi0jOiBnaXRrOjM5MjYKKyM6IGdpdGs6Mzk4MgogbXNnaWQgIk51bWJlciB0byBzaG93OiIKIG1zZ3N0ciAiQW50YWwgYXR0IHZpc2E6IgogCi0jOiBnaXRrOjM5MjcKKyM6IGdpdGs6Mzk4MwogbXNnaWQgIk51bWJlciB0byBza2lwOiIKIG1zZ3N0ciAiQW50YWwgYXR0IGhvcHBhIMO2dmVyOiIKIAotIzogZ2l0azozOTI4CisjOiBnaXRrOjM5ODQKIG1zZ2lkICJNaXNjZWxsYW5lb3VzIG9wdGlvbnM6IgogbXNnc3RyICJEaXZlcnNlIGFsdGVybmF0aXY6IgogCi0jOiBnaXRrOjM5MjkKKyM6IGdpdGs6Mzk4NQogbXNnaWQgIlN0cmljdGx5IHNvcnQgYnkgZGF0ZSIKIG1zZ3N0ciAiU3RyaWt0IGRhdHVtc29ydGVyaW5nIgogCi0jOiBnaXRrOjM5MzAKKyM6IGdpdGs6Mzk4NgogbXNnaWQgIk1hcmsgYnJhbmNoIHNpZGVzIgogbXNnc3RyICJNYXJrZXJhIHNpZG9ncmVuYXIiCiAKLSM6IGdpdGs6MzkzMQorIzogZ2l0azozOTg3CiBtc2dpZCAiTGltaXQgdG8gZmlyc3QgcGFyZW50IgogbXNnc3RyICJCZWdyw6Ruc2EgdGlsbCBmw7Zyc3RhIGbDtnLDpGxkZXIiCiAKLSM6IGdpdGs6MzkzMgorIzogZ2l0azozOTg4CiBtc2dpZCAiU2ltcGxlIGhpc3RvcnkiCiBtc2dzdHIgIkVua2VsIGhpc3RvcmlrIgogCi0jOiBnaXRrOjM5MzMKKyM6IGdpdGs6Mzk4OQogbXNnaWQgIkFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIGdpdCBsb2c6IgogbXNnc3RyICJZdHRlcmxpZ2FyZSBhcmd1bWVudCB0aWxsIGdpdCBsb2c6IgogCi0jOiBnaXRrOjM5MzQKKyM6IGdpdGs6Mzk5MAogbXNnaWQgIkVudGVyIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB0byBpbmNsdWRlLCBvbmUgcGVyIGxpbmU6IgogbXNnc3RyICJBbmdlIGZpbGVyIG9jaCBrYXRhbG9nZXIgYXR0IHRhIG1lZCwgZW4gcGVyIHJhZDoiCiAKLSM6IGdpdGs6MzkzNQorIzogZ2l0azozOTkxCiBtc2dpZCAiQ29tbWFuZCB0byBnZW5lcmF0ZSBtb3JlIGNvbW1pdHMgdG8gaW5jbHVkZToiCiBtc2dzdHIgIktvbW1hbmRvIGbDtnIgYXR0IGdlbmVyZXJhIGZsZXIgaW5jaGVja25pbmdhciBhdHQgdGEgbWVkOiIKIAotIzogZ2l0azo0MDU5CisjOiBnaXRrOjQxMTUKIG1zZ2lkICJHaXRrOiBlZGl0IHZpZXciCiBtc2dzdHIgIkdpdGs6IHJlZGlnZXJhIHZ5IgogCi0jOiBnaXRrOjQwNjcKKyM6IGdpdGs6NDEyMwogbXNnaWQgIi0tIGNyaXRlcmlhIGZvciBzZWxlY3RpbmcgcmV2aXNpb25zIgogbXNnc3RyICIgLSBrcml0ZXJpZXIgZsO2ciB2YWwgYXYgcmV2aXNpb25lciIKIAotIzogZ2l0azo0MDcyCisjOiBnaXRrOjQxMjgKIG1zZ2lkICJWaWV3IE5hbWUiCiBtc2dzdHIgIk5hbW4gcMOlIHZ5IgogCi0jOiBnaXRrOjQxNDcKKyM6IGdpdGs6NDIwMwogbXNnaWQgIkFwcGx5IChGNSkiCiBtc2dzdHIgIkFudsOkbmQgKEY1KSIKIAotIzogZ2l0azo0MTg1CisjOiBnaXRrOjQyNDEKIG1zZ2lkICJFcnJvciBpbiBjb21taXQgc2VsZWN0aW9uIGFyZ3VtZW50czoiCiBtc2dzdHIgIkZlbCBpIGFyZ3VtZW50IGbDtnIgdmFsIGF2IGluY2hlY2tuaW5nYXI6IgogCi0jOiBnaXRrOjQyMzggZ2l0azo0MjkwIGdpdGs6NDc0OSBnaXRrOjQ3NjMgZ2l0azo2MDI3IGdpdGs6MTE4NDkgZ2l0azoxMTg1MAorIzogZ2l0azo0Mjk0IGdpdGs6NDM0NiBnaXRrOjQ4MDcgZ2l0azo0ODIxIGdpdGs6NjA4NyBnaXRrOjEyMDQxIGdpdGs6MTIwNDIKIG1zZ2lkICJOb25lIgogbXNnc3RyICJJbmdldCIKIAotIzogZ2l0azo0ODQ2IGdpdGs6NDg1MQorIzogZ2l0azo0OTA0IGdpdGs6NDkwOQogbXNnaWQgIkRlc2NlbmRhbnQiCiBtc2dzdHIgIkF2a29tbGluZyIKIAotIzogZ2l0azo0ODQ3CisjOiBnaXRrOjQ5MDUKIG1zZ2lkICJOb3QgZGVzY2VuZGFudCIKIG1zZ3N0ciAiSW50ZSBhdmtvbWxpbmciCiAKLSM6IGdpdGs6NDg1NCBnaXRrOjQ4NTkKKyM6IGdpdGs6NDkxMiBnaXRrOjQ5MTcKIG1zZ2lkICJBbmNlc3RvciIKIG1zZ3N0ciAiRsO2cmZhZGVyIgogCi0jOiBnaXRrOjQ4NTUKKyM6IGdpdGs6NDkxMwogbXNnaWQgIk5vdCBhbmNlc3RvciIKIG1zZ3N0ciAiSW50ZSBmw7ZyZmFkZXIiCiAKLSM6IGdpdGs6NTE0NQorIzogZ2l0azo1MjAzCiBtc2dpZCAiTG9jYWwgY2hhbmdlcyBjaGVja2VkIGluIHRvIGluZGV4IGJ1dCBub3QgY29tbWl0dGVkIgogbXNnc3RyICJMb2thbGEgw6RuZHJpbmdhciBzcGFyYWRlIGkgaW5kZXhldCBtZW4gaW50ZSBpbmNoZWNrYWRlIgogCi0jOiBnaXRrOjUxODEKKyM6IGdpdGs6NTIzOQogbXNnaWQgIkxvY2FsIHVuY29tbWl0dGVkIGNoYW5nZXMsIG5vdCBjaGVja2VkIGluIHRvIGluZGV4IgogbXNnc3RyICJMb2thbGEgw6RuZHJpbmdhciwgZWogc3BhcmFkZSBpIGluZGV4ZXQiCiAKLSM6IGdpdGs6Njg4MgorIzogZ2l0azo2OTcxCittc2dpZCAiYW5kIG1hbnkgbW9yZSIKK21zZ3N0ciAibWVkIG3DpW5nYSBmbGVyYSIKKworIzogZ2l0azo2OTc0CiBtc2dpZCAibWFueSIKIG1zZ3N0ciAibcOlbmdhIgogCi0jOiBnaXRrOjcwNjUKKyM6IGdpdGs6NzE2MAogbXNnaWQgIlRhZ3M6IgogbXNnc3RyICJUYWdnYXI6IgogCi0jOiBnaXRrOjcwODIgZ2l0azo3MDg4IGdpdGs6ODUwMAorIzogZ2l0azo3MTc3IGdpdGs6NzE4MyBnaXRrOjg1OTMKIG1zZ2lkICJQYXJlbnQiCiBtc2dzdHIgIkbDtnLDpGxkZXIiCiAKLSM6IGdpdGs6NzA5MworIzogZ2l0azo3MTg4CiBtc2dpZCAiQ2hpbGQiCiBtc2dzdHIgIkJhcm4iCiAKLSM6IGdpdGs6NzEwMgorIzogZ2l0azo3MTk3CiBtc2dpZCAiQnJhbmNoIgogbXNnc3RyICJHcmVuIgogCi0jOiBnaXRrOjcxMDUKKyM6IGdpdGs6NzIwMAogbXNnaWQgIkZvbGxvd3MiCiBtc2dzdHIgIkbDtmxqZXIiCiAKLSM6IGdpdGs6NzEwOAorIzogZ2l0azo3MjAzCiBtc2dpZCAiUHJlY2VkZXMiCiBtc2dzdHIgIkbDtnJlZ8OlciIKIAotIzogZ2l0azo3NjUzCisjOiBnaXRrOjc3NDIKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJFcnJvciBnZXR0aW5nIGRpZmZzOiAlcyIKIG1zZ3N0ciAiRmVsIHZpZCBow6RtdG5pbmcgYXYgZGlmZjogJXMiCiAKLSM6IGdpdGs6ODMyOAorIzogZ2l0azo4NDE4CiBtc2dpZCAiR290bzoiCiBtc2dzdHIgIkfDpSB0aWxsOiIKIAotIzogZ2l0azo4MzQ5CisjOiBnaXRrOjg0MzkKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJTaG9ydCBTSEExIGlkICVzIGlzIGFtYmlndW91cyIKIG1zZ3N0ciAiRsO2cmtvcnRhdCBTSEExLWlkICVzIMOkciB0dmV0eWRpZ3QiCiAKLSM6IGdpdGs6ODM1NgorIzogZ2l0azo4NDQ2CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiUmV2aXNpb24gJXMgaXMgbm90IGtub3duIgogbXNnc3RyICJSZXZpc2lvbmVuICVzIMOkciBpbnRlIGvDpG5kIgogCi0jOiBnaXRrOjgzNjYKKyM6IGdpdGs6ODQ1NgogIywgdGNsLWZvcm1hdAogbXNnaWQgIlNIQTEgaWQgJXMgaXMgbm90IGtub3duIgogbXNnc3RyICJTSEEtaWQ6dCAlcyDDpHIgaW50ZSBrw6RudCIKIAotIzogZ2l0azo4MzY4CisjOiBnaXRrOjg0NTgKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJSZXZpc2lvbiAlcyBpcyBub3QgaW4gdGhlIGN1cnJlbnQgdmlldyIKIG1zZ3N0ciAiUmV2aXNpb25lbiAlcyBmaW5ucyBpbnRlIGkgZGVuIG51dmFyYW5kZSB2eW4iCiAKLSM6IGdpdGs6ODUwNyBnaXRrOjg1MjIKKyM6IGdpdGs6ODYwMCBnaXRrOjg2MTUKIG1zZ2lkICJEYXRlIgogbXNnc3RyICJEYXR1bSIKIAotIzogZ2l0azo4NTEwCisjOiBnaXRrOjg2MDMKIG1zZ2lkICJDaGlsZHJlbiIKIG1zZ3N0ciAiQmFybiIKIAotIzogZ2l0azo4NTczCisjOiBnaXRrOjg2NjYKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJSZXNldCAlcyBicmFuY2ggdG8gaGVyZSIKIG1zZ3N0ciAiw4V0ZXJzdMOkbGwgZ3JlbmVuICVzIGhpdCIKIAotIzogZ2l0azo4NTc1CisjOiBnaXRrOjg2NjgKIG1zZ2lkICJEZXRhY2hlZCBoZWFkOiBjYW4ndCByZXNldCIKIG1zZ3N0ciAiRnLDpW5rb3BwbGFkIGhlYWQ6IGthbiBpbnRlIMOldGVyc3TDpGxsYSIKIAotIzogZ2l0azo4NjgwIGdpdGs6ODY4NgorIzogZ2l0azo4NzczIGdpdGs6ODc3OQogbXNnaWQgIlNraXBwaW5nIG1lcmdlIGNvbW1pdCAiCiBtc2dzdHIgIkhvcHBhciDDtnZlciBzYW1tYW5zbGFnbmluZ3NpbmNoZWNrbmluZyAiCiAKLSM6IGdpdGs6ODY5NSBnaXRrOjg3MDAKKyM6IGdpdGs6ODc4OCBnaXRrOjg3OTMKIG1zZ2lkICJFcnJvciBnZXR0aW5nIHBhdGNoIElEIGZvciAiCiBtc2dzdHIgIkZlbCB2aWQgaMOkbXRuaW5nIGF2IHBhdGNoLWlkIGbDtnIgIgogCi0jOiBnaXRrOjg2OTYgZ2l0azo4NzAxCisjOiBnaXRrOjg3ODkgZ2l0azo4Nzk0CiBtc2dpZCAiIC0gc3RvcHBpbmdcbiIKIG1zZ3N0ciAiIC0gc3Rhbm5hclxuIgogCi0jOiBnaXRrOjg3MDYgZ2l0azo4NzA5IGdpdGs6ODcxNyBnaXRrOjg3MzEgZ2l0azo4NzQwCisjOiBnaXRrOjg3OTkgZ2l0azo4ODAyIGdpdGs6ODgxMCBnaXRrOjg4MjQgZ2l0azo4ODMzCiBtc2dpZCAiQ29tbWl0ICIKIG1zZ3N0ciAiSW5jaGVja25pbmcgIgogCi0jOiBnaXRrOjg3MTAKKyM6IGdpdGs6ODgwMwogbXNnaWQgIiIKICIgaXMgdGhlIHNhbWUgcGF0Y2ggYXNcbiIKICIgICAgICAgIgpAQCAtODY4LDcgKzg4MCw3IEBACiAiIMOkciBzYW1tYSBwYXRjaCBzb21cbiIKICIgICAgICAgIgogCi0jOiBnaXRrOjg3MTgKKyM6IGdpdGs6ODgxMQogbXNnaWQgIiIKICIgZGlmZmVycyBmcm9tXG4iCiAiICAgICAgICIKQEAgLTg3Niw3ICs4ODgsNyBAQAogIiBza2lsamVyIHNpZyBmcsOlblxuIgogIiAgICAgICAiCiAKLSM6IGdpdGs6ODcyMAorIzogZ2l0azo4ODEzCiBtc2dpZCAiIgogIkRpZmYgb2YgY29tbWl0czpcbiIKICJcbiIKQEAgLTg4NCwxMzEgKzg5NiwxMzEgQEAKICJTa2lsbG5hZCBtZWxsYW4gaW5jaGVja25pbmdhcjpcbiIKICJcbiIKIAotIzogZ2l0azo4NzMyIGdpdGs6ODc0MQorIzogZ2l0azo4ODI1IGdpdGs6ODgzNAogIywgdGNsLWZvcm1hdAogbXNnaWQgIiBoYXMgJXMgY2hpbGRyZW4gLSBzdG9wcGluZ1xuIgogbXNnc3RyICIgaGFyICVzIGJhcm4gLSBzdGFubmFyXG4iCiAKLSM6IGdpdGs6ODc2MAorIzogZ2l0azo4ODUzCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JpdGluZyBjb21taXQgdG8gZmlsZTogJXMiCiBtc2dzdHIgIkZlbCB2aWQgc2tyaXZuaW5nIGF2IGluY2hlY2tuaW5nIHRpbGwgZmlsOiAlcyIKIAotIzogZ2l0azo4NzY2CisjOiBnaXRrOjg4NTkKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJFcnJvciBkaWZmaW5nIGNvbW1pdHM6ICVzIgogbXNnc3RyICJGZWwgdmlkIGrDpG1mw7ZyZWxzZSBhdiBpbmNoZWNrbmluZ2FyOiAlcyIKIAotIzogZ2l0azo4ODEyCisjOiBnaXRrOjg5MDUKIG1zZ2lkICJUb3AiCiBtc2dzdHIgIlRvcHAiCiAKLSM6IGdpdGs6ODgxMworIzogZ2l0azo4OTA2CiBtc2dpZCAiRnJvbSIKIG1zZ3N0ciAiRnLDpW4iCiAKLSM6IGdpdGs6ODgxOAorIzogZ2l0azo4OTExCiBtc2dpZCAiVG8iCiBtc2dzdHIgIlRpbGwiCiAKLSM6IGdpdGs6ODg0MgorIzogZ2l0azo4OTM1CiBtc2dpZCAiR2VuZXJhdGUgcGF0Y2giCiBtc2dzdHIgIkdlbmVyZXJhIHBhdGNoIgogCi0jOiBnaXRrOjg4NDQKKyM6IGdpdGs6ODkzNwogbXNnaWQgIkZyb206IgogbXNnc3RyICJGcsOlbjoiCiAKLSM6IGdpdGs6ODg1MworIzogZ2l0azo4OTQ2CiBtc2dpZCAiVG86IgogbXNnc3RyICJUaWxsOiIKIAotIzogZ2l0azo4ODYyCisjOiBnaXRrOjg5NTUKIG1zZ2lkICJSZXZlcnNlIgogbXNnc3RyICJWw6RuZCIKIAotIzogZ2l0azo4ODY0IGdpdGs6OTA1OQorIzogZ2l0azo4OTU3IGdpdGs6OTE1MwogbXNnaWQgIk91dHB1dCBmaWxlOiIKIG1zZ3N0ciAiVXRkYXRhZmlsOiIKIAotIzogZ2l0azo4ODcwCisjOiBnaXRrOjg5NjMKIG1zZ2lkICJHZW5lcmF0ZSIKIG1zZ3N0ciAiR2VuZXJlcmEiCiAKLSM6IGdpdGs6ODkwOAorIzogZ2l0azo5MDAxCiBtc2dpZCAiRXJyb3IgY3JlYXRpbmcgcGF0Y2g6IgogbXNnc3RyICJGZWwgdmlkIGdlbmVyZXJpbmcgYXYgcGF0Y2g6IgogCi0jOiBnaXRrOjg5MzEgZ2l0azo5MDQ3IGdpdGs6OTEwNAorIzogZ2l0azo5MDI0IGdpdGs6OTE0MSBnaXRrOjkxOTgKIG1zZ2lkICJJRDoiCiBtc2dzdHIgIklkOiIKIAotIzogZ2l0azo4OTQwCisjOiBnaXRrOjkwMzMKIG1zZ2lkICJUYWcgbmFtZToiCiBtc2dzdHIgIlRhZ2duYW1uOiIKIAotIzogZ2l0azo4OTQzCisjOiBnaXRrOjkwMzYKIG1zZ2lkICJUYWcgbWVzc2FnZSBpcyBvcHRpb25hbCIKIG1zZ3N0ciAiVGFnZ21lZGRlbGFuZGV0IMOkciB2YWxmcml0dCIKIAotIzogZ2l0azo4OTQ1CisjOiBnaXRrOjkwMzgKIG1zZ2lkICJUYWcgbWVzc2FnZToiCiBtc2dzdHIgIlRhZ2dtZWRkZWxhbmRlOiIKIAotIzogZ2l0azo4OTQ5IGdpdGs6OTExMworIzogZ2l0azo5MDQyIGdpdGs6OTIwNwogbXNnaWQgIkNyZWF0ZSIKIG1zZ3N0ciAiU2thcGEiCiAKLSM6IGdpdGs6ODk2NworIzogZ2l0azo5MDYwCiBtc2dpZCAiTm8gdGFnIG5hbWUgc3BlY2lmaWVkIgogbXNnc3RyICJJbmdldCB0YWdnbmFtbiBhbmdhdnMiCiAKLSM6IGdpdGs6ODk3MQorIzogZ2l0azo5MDY0CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiVGFnIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIKIG1zZ3N0ciAiVGFnZ2VuIFwiJXNcIiBmaW5ucyByZWRhbiIKIAotIzogZ2l0azo4OTgxCisjOiBnaXRrOjkwNzQKIG1zZ2lkICJFcnJvciBjcmVhdGluZyB0YWc6IgogbXNnc3RyICJGZWwgdmlkIHNrYXBhbmRlIGF2IHRhZ2c6IgogCi0jOiBnaXRrOjkwNTYKKyM6IGdpdGs6OTE1MAogbXNnaWQgIkNvbW1hbmQ6IgogbXNnc3RyICJLb21tYW5kbzoiCiAKLSM6IGdpdGs6OTA2NAorIzogZ2l0azo5MTU4CiBtc2dpZCAiV3JpdGUiCiBtc2dzdHIgIlNrcml2IgogCi0jOiBnaXRrOjkwODIKKyM6IGdpdGs6OTE3NgogbXNnaWQgIkVycm9yIHdyaXRpbmcgY29tbWl0OiIKIG1zZ3N0ciAiRmVsIHZpZCBza3Jpdm5pbmcgYXYgaW5jaGVja25pbmc6IgogCi0jOiBnaXRrOjkxMDkKKyM6IGdpdGs6OTIwMwogbXNnaWQgIk5hbWU6IgogbXNnc3RyICJOYW1uOiIKIAotIzogZ2l0azo5MTMyCisjOiBnaXRrOjkyMjYKIG1zZ2lkICJQbGVhc2Ugc3BlY2lmeSBhIG5hbWUgZm9yIHRoZSBuZXcgYnJhbmNoIgogbXNnc3RyICJBbmdlIGV0dCBuYW1uIGbDtnIgZGVuIG55YSBncmVuZW4iCiAKLSM6IGdpdGs6OTEzNworIzogZ2l0azo5MjMxCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiQnJhbmNoICclcycgYWxyZWFkeSBleGlzdHMuIE92ZXJ3cml0ZT8iCiBtc2dzdHIgIkdyZW5lbiBcIiVzXCIgZmlubnMgcmVkYW4uIFNrcml2YSDDtnZlcj8iCiAKLSM6IGdpdGs6OTIwNAorIzogZ2l0azo5Mjk4CiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gYnJhbmNoICVzIC0tIHJlYWxseSByZS1hcHBseSBpdD8iCiBtc2dzdHIgIiIKICJJbmNoZWNrbmluZ2VuICVzIGZpbm5zIHJlZGFuIHDDpSBncmVuZW4gJXMgLS0gc2thbGwgZGVuIHZlcmtsaWdlbiBhcHBsaWNlcmFzICIKICJww6Ugbnl0dD8iCiAKLSM6IGdpdGs6OTIwOQorIzogZ2l0azo5MzAzCiBtc2dpZCAiQ2hlcnJ5LXBpY2tpbmciCiBtc2dzdHIgIlBsb2NrYXIiCiAKLSM6IGdpdGs6OTIxOAorIzogZ2l0azo5MzEyCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiIgogIkNoZXJyeS1waWNrIGZhaWxlZCBiZWNhdXNlIG9mIGxvY2FsIGNoYW5nZXMgdG8gZmlsZSAnJXMnLlxuIgpAQCAtMTAxOCw3ICsxMDMwLDcgQEAKICJDaGVja2EgaW4sIMOldGVyc3TDpGxsIGVsbGVyIHNwYXJhIHVuZGFuIChzdGFzaCkgZGluYSDDpG5kcmluZ2FyIG9jaCBmw7Zyc8O2ayAiCiAiaWdlbi4iCiAKLSM6IGdpdGs6OTIyNAorIzogZ2l0azo5MzE4CiBtc2dpZCAiIgogIkNoZXJyeS1waWNrIGZhaWxlZCBiZWNhdXNlIG9mIG1lcmdlIGNvbmZsaWN0LlxuIgogIkRvIHlvdSB3aXNoIHRvIHJ1biBnaXQgY2l0b29sIHRvIHJlc29sdmUgaXQ/IgpAQCAtMTAyNiwzMiArMTAzOCw1OSBAQAogIkNoZXJyeS1waWNrIG1pc3NseWNrYWRlcyBww6UgZ3J1bmQgYXYgZW4gc2FtbWFuc2xhZ25pbmdza29uZmxpa3QuXG4iCiAiVmlsbCBkdSBrw7ZyYSBnaXQgY2l0b29sIGbDtnIgYXR0IGzDtnNhIGRlbj8iCiAKLSM6IGdpdGs6OTI0MAorIzogZ2l0azo5MzM0IGdpdGs6OTM5MgogbXNnaWQgIk5vIGNoYW5nZXMgY29tbWl0dGVkIgogbXNnc3RyICJJbmdhIMOkbmRyaW5nYXIgaW5jaGVja2FkZSIKIAotIzogZ2l0azo5MjY2CisjOiBnaXRrOjkzNjEKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgaXMgbm90IGluY2x1ZGVkIGluIGJyYW5jaCAlcyAtLSByZWFsbHkgcmV2ZXJ0IGl0PyIKK21zZ3N0ciAiSW5jaGVja25pbmdlbiAlcyBmaW5ucyBpbnRlIHDDpSBncmVuZW4gJXMgLS0gdmlsbCBkdSB2ZXJrbGlnZW4gw6VuZ3JhPyIKKworIzogZ2l0azo5MzY2Cittc2dpZCAiUmV2ZXJ0aW5nIgorbXNnc3RyICLDhW5ncmFyIgorCisjOiBnaXRrOjkzNzQKKyMsIHRjbC1mb3JtYXQKK21zZ2lkICIiCisiUmV2ZXJ0IGZhaWxlZCBiZWNhdXNlIG9mIGxvY2FsIGNoYW5nZXMgdG8gdGhlIGZvbGxvd2luZyBmaWxlczolcyBQbGVhc2UgIgorImNvbW1pdCwgcmVzZXQgb3Igc3Rhc2ggIHlvdXIgY2hhbmdlcyBhbmQgdHJ5IGFnYWluLiIKK21zZ3N0ciAiIgorIk1pc3NseWNrYWRlcyBtZWQgYXR0IMOlbmdyYSBww6UgZ3J1bmQgYXYgbG9rYWxhIMOkbmRyaW5nYXIgaSBmw7ZsamFuZGUgZmlsZXI6JXMuICIKKyJDaGVja2EgaW4sIMOldGVyc3TDpGxsIGVsbGVyIHNwYXJhIHVuZGFuIChzdGFzaCkgZGluYSDDpG5kcmluZ2FyIG9jaCBmw7Zyc8O2ayAiCisiaWdlbi4iCisKKyM6IGdpdGs6OTM3OAorbXNnaWQgIiIKKyJSZXZlcnQgZmFpbGVkIGJlY2F1c2Ugb2YgbWVyZ2UgY29uZmxpY3QuXG4iCisiIERvIHlvdSB3aXNoIHRvIHJ1biBnaXQgY2l0b29sIHRvIHJlc29sdmUgaXQ/IgorbXNnc3RyICIiCisiTWlzc2x5Y2thZGVzIG1lZCBhdHQgw6VuZ3JhIHDDpSBncnVuZCBhdiBlbiBzYW1tYW5zbGFnbmluZ3Nrb25mbGlrdC5cbiIKKyIgVmlsbCBkdSBrw7ZyYSBnaXQgY2l0b29sIGbDtnIgYXR0IGzDtnNhIGRlbj8iCisKKyM6IGdpdGs6OTQyMQogbXNnaWQgIkNvbmZpcm0gcmVzZXQiCiBtc2dzdHIgIkJla3LDpGZ0YSDDpXRlcnN0w6RsbG5pbmciCiAKLSM6IGdpdGs6OTI2OAorIzogZ2l0azo5NDIzCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiUmVzZXQgYnJhbmNoICVzIHRvICVzPyIKIG1zZ3N0ciAiw4V0ZXJzdMOkbGxhIGdyZW5lbiAlcyB0aWxsICVzPyIKIAotIzogZ2l0azo5MjcwCisjOiBnaXRrOjk0MjUKIG1zZ2lkICJSZXNldCB0eXBlOiIKIG1zZ3N0ciAiVHlwIGF2IMOldGVyc3TDpGxsbmluZzoiCiAKLSM6IGdpdGs6OTI3MworIzogZ2l0azo5NDI4CiBtc2dpZCAiU29mdDogTGVhdmUgd29ya2luZyB0cmVlIGFuZCBpbmRleCB1bnRvdWNoZWQiCiBtc2dzdHIgIk1qdWs6IFLDtnIgaW50ZSB1dGNoZWNrbmluZyBvY2ggaW5kZXgiCiAKLSM6IGdpdGs6OTI3NgorIzogZ2l0azo5NDMxCiBtc2dpZCAiTWl4ZWQ6IExlYXZlIHdvcmtpbmcgdHJlZSB1bnRvdWNoZWQsIHJlc2V0IGluZGV4IgogbXNnc3RyICJCbGFuZGFkOiBSw7ZyIGludGUgdXRjaGVja25pbmcsIMOldGVyc3TDpGxsIGluZGV4IgogCi0jOiBnaXRrOjkyNzkKKyM6IGdpdGs6OTQzNAogbXNnaWQgIiIKICJIYXJkOiBSZXNldCB3b3JraW5nIHRyZWUgYW5kIGluZGV4XG4iCiAiKGRpc2NhcmQgQUxMIGxvY2FsIGNoYW5nZXMpIgpAQCAtMTA1OSwxOSArMTA5OCwxOSBAQAogIkjDpXJkOiDDhXRlcnN0w6RsbCB1dGNoZWNrbmluZyBvY2ggaW5kZXhcbiIKICIoZsO2cmthc3RhciBBTExBIGxva2FsYSDDpG5kcmluZ2FyKSIKIAotIzogZ2l0azo5Mjk2CisjOiBnaXRrOjk0NTEKIG1zZ2lkICJSZXNldHRpbmciCiBtc2dzdHIgIsOFdGVyc3TDpGxsZXIiCiAKLSM6IGdpdGs6OTM1NgorIzogZ2l0azo5NTExCiBtc2dpZCAiQ2hlY2tpbmcgb3V0IgogbXNnc3RyICJDaGVja2FyIHV0IgogCi0jOiBnaXRrOjk0MDkKKyM6IGdpdGs6OTU2NAogbXNnaWQgIkNhbm5vdCBkZWxldGUgdGhlIGN1cnJlbnRseSBjaGVja2VkLW91dCBicmFuY2giCiBtc2dzdHIgIkthbiBpbnRlIHRhIGJvcnQgZGVuIGp1c3QgbnUgdXRjaGVja2FkZSBncmVuZW4iCiAKLSM6IGdpdGs6OTQxNQorIzogZ2l0azo5NTcwCiAjLCB0Y2wtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjb21taXRzIG9uIGJyYW5jaCAlcyBhcmVuJ3Qgb24gYW55IG90aGVyIGJyYW5jaC5cbiIKQEAgLTEwODAsMTYgKzExMTksMTYgQEAKICJJbmNoZWNrbmluZ2FybmEgcMOlIGdyZW5lbiAlcyBleGlzdGVyYXIgaW50ZSBww6UgbsOlZ29uIGFubmFuIGdyZW4uXG4iCiAiVmlsbCBkdSB2ZXJrbGlnZW4gdGEgYm9ydCBncmVuZW4gJXM/IgogCi0jOiBnaXRrOjk0NDYKKyM6IGdpdGs6OTYwMQogIywgdGNsLWZvcm1hdAogbXNnaWQgIlRhZ3MgYW5kIGhlYWRzOiAlcyIKIG1zZ3N0ciAiVGFnZ2FyIG9jaCBodXZ1ZGVuOiAlcyIKIAotIzogZ2l0azo5NDYxCisjOiBnaXRrOjk2MTYKIG1zZ2lkICJGaWx0ZXIiCiBtc2dzdHIgIkZpbHRlciIKIAotIzogZ2l0azo5NzU3CisjOiBnaXRrOjk5MTIKIG1zZ2lkICIiCiAiRXJyb3IgcmVhZGluZyBjb21taXQgdG9wb2xvZ3kgaW5mb3JtYXRpb247IGJyYW5jaCBhbmQgcHJlY2VkaW5nL2ZvbGxvd2luZyAiCiAidGFnIGluZm9ybWF0aW9uIHdpbGwgYmUgaW5jb21wbGV0ZS4iCkBAIC0xMDk3LDIxMCArMTEzNiwyMTQgQEAKICJGZWwgdmlkIGzDpHNuaW5nIGF2IGluZm9ybWF0aW9uIG9tIGluY2hlY2tuaW5nc3RvcG9sb2dpOyBpbmZvcm1hdGlvbiBvbSAiCiAiZ3JlbmFyIG9jaCBmw7ZyZWfDpWVuZGUvc2VuYXJlIHRhZ2dhciBrb21tZXIgaW50ZSB2YXJhIGtvbXBsZXR0LiIKIAotIzogZ2l0azoxMDc0NAorIzogZ2l0azoxMDg5OQogbXNnaWQgIlRhZyIKIG1zZ3N0ciAiVGFnZyIKIAotIzogZ2l0azoxMDc0NAorIzogZ2l0azoxMDg5OQogbXNnaWQgIklkIgogbXNnc3RyICJJZCIKIAotIzogZ2l0azoxMDc5MworIzogZ2l0azoxMDk0OAogbXNnaWQgIkdpdGsgZm9udCBjaG9vc2VyIgogbXNnc3RyICJUZWNrZW5zbml0dHN2w6RsamFyZSBmw7ZyIEdpdGsiCiAKLSM6IGdpdGs6MTA4MTAKKyM6IGdpdGs6MTA5NjUKIG1zZ2lkICJCIgogbXNnc3RyICJGIgogCi0jOiBnaXRrOjEwODEzCisjOiBnaXRrOjEwOTY4CiBtc2dpZCAiSSIKIG1zZ3N0ciAiSyIKIAotIzogZ2l0azoxMDkzMQorIzogZ2l0azoxMTA4NgogbXNnaWQgIkNvbW1pdCBsaXN0IGRpc3BsYXkgb3B0aW9ucyIKIG1zZ3N0ciAiQWx0ZXJuYXRpdiBmw7ZyIGluY2hlY2tuaW5nc2xpc3R2eSIKIAotIzogZ2l0azoxMDkzNAorIzogZ2l0azoxMTA4OQogbXNnaWQgIk1heGltdW0gZ3JhcGggd2lkdGggKGxpbmVzKSIKIG1zZ3N0ciAiTWF4aW1hbCBncmFmYnJlZGQgKHJhZGVyKSIKIAotIzogZ2l0azoxMDkzNworIzogZ2l0azoxMTA5MgogIywgdGNsLWZvcm1hdAogbXNnaWQgIk1heGltdW0gZ3JhcGggd2lkdGggKCUgb2YgcGFuZSkiCiBtc2dzdHIgIk1heGltYWwgZ3JhZmJyZWRkICglIGF2IHJ1dGEpIgogCi0jOiBnaXRrOjEwOTQwCisjOiBnaXRrOjExMDk1CiBtc2dpZCAiU2hvdyBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICJWaXNhIGxva2FsYSDDpG5kcmluZ2FyIgogCi0jOiBnaXRrOjEwOTQzCisjOiBnaXRrOjExMDk4CiBtc2dpZCAiQXV0by1zZWxlY3QgU0hBMSAobGVuZ3RoKSIKIG1zZ3N0ciAiVsOkbGogU0hBMSAobMOkbmdkKSBhdXRvbWF0aXNrdCIKIAotIzogZ2l0azoxMDk0NworIzogZ2l0azoxMTEwMgogbXNnaWQgIkhpZGUgcmVtb3RlIHJlZnMiCiBtc2dzdHIgIkTDtmxqIGZqw6Ryci1yZWZlcmVuc2VyIgogCi0jOiBnaXRrOjEwOTUxCisjOiBnaXRrOjExMTA2CiBtc2dpZCAiRGlmZiBkaXNwbGF5IG9wdGlvbnMiCiBtc2dzdHIgIkFsdGVybmF0aXYgZsO2ciBkaWZmdnkiCiAKLSM6IGdpdGs6MTA5NTMKKyM6IGdpdGs6MTExMDgKIG1zZ2lkICJUYWIgc3BhY2luZyIKIG1zZ3N0ciAiQmxhbmtzdGVnIGbDtnIgdGFidWxhdG9ydGVja2VuIgogCi0jOiBnaXRrOjEwOTU2Ci1tc2dpZCAiRGlzcGxheSBuZWFyYnkgdGFncyIKLW1zZ3N0ciAiVmlzYSBuw6RybGlnZ2FuZGUgdGFnZ2FyIgorIzogZ2l0azoxMTExMQorbXNnaWQgIkRpc3BsYXkgbmVhcmJ5IHRhZ3MvaGVhZHMiCittc2dzdHIgIlZpc2EgbsOkcmxpZ2dhbmRlIHRhZ2dhci9odXZ1ZGVuIgogCi0jOiBnaXRrOjEwOTU5CisjOiBnaXRrOjExMTE0Cittc2dpZCAiTWF4aW11bSAjIHRhZ3MvaGVhZHMgdG8gc2hvdyIKK21zZ3N0ciAiTWF4aW1hbHQgYW50YWwgdGFnZ2FyL2h1dnVkZW4gYXR0IHZpc2EiCisKKyM6IGdpdGs6MTExMTcKIG1zZ2lkICJMaW1pdCBkaWZmcyB0byBsaXN0ZWQgcGF0aHMiCiBtc2dzdHIgIkJlZ3LDpG5zYSBkaWZmIHRpbGwgbGlzdGFkZSBzw7ZrdsOkZ2FyIgogCi0jOiBnaXRrOjEwOTYyCisjOiBnaXRrOjExMTIwCiBtc2dpZCAiU3VwcG9ydCBwZXItZmlsZSBlbmNvZGluZ3MiCiBtc2dzdHIgIlN0w7ZkIGbDtnIgZmlsc3BlY2lmaWthIHRlY2tlbmtvZG5pbmdhciIKIAotIzogZ2l0azoxMDk2OCBnaXRrOjExMTE1CisjOiBnaXRrOjExMTI2IGdpdGs6MTEyNzMKIG1zZ2lkICJFeHRlcm5hbCBkaWZmIHRvb2wiCiBtc2dzdHIgIkV4dGVybnQgZGlmZi12ZXJrdHlnIgogCi0jOiBnaXRrOjEwOTY5CisjOiBnaXRrOjExMTI3CiBtc2dpZCAiQ2hvb3NlLi4uIgogbXNnc3RyICJWw6Rsai4uLiIKIAotIzogZ2l0azoxMDk3NAorIzogZ2l0azoxMTEzMgogbXNnaWQgIkdlbmVyYWwgb3B0aW9ucyIKIG1zZ3N0ciAiQWxsbcOkbm5hIGluc3TDpGxsbmluZ2FyIgogCi0jOiBnaXRrOjEwOTc3CisjOiBnaXRrOjExMTM1CiBtc2dpZCAiVXNlIHRoZW1lZCB3aWRnZXRzIgogbXNnc3RyICJBbnbDpG5kIHRlbWEgcMOlIGbDtm5zdGVyZWxlbWVudCIKIAotIzogZ2l0azoxMDk3OQorIzogZ2l0azoxMTEzNwogbXNnaWQgIihjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkiCiBtc2dzdHIgIijDpG5kcmluZ2VuIGtyw6R2ZXIgb21zdGFydCkiCiAKLSM6IGdpdGs6MTA5ODEKKyM6IGdpdGs6MTExMzkKIG1zZ2lkICIoY3VycmVudGx5IHVuYXZhaWxhYmxlKSIKIG1zZ3N0ciAiKGbDtnIgbsOkcnZhcmFuZGUgaW50ZSB0aWxsZ8OkbmdsaWd0KSIKIAotIzogZ2l0azoxMDk5MgorIzogZ2l0azoxMTE1MAogbXNnaWQgIkNvbG9yczogcHJlc3MgdG8gY2hvb3NlIgogbXNnc3RyICJGw6RyZ2VyOiB0cnljayBmw7ZyIGF0dCB2w6RsamEiCiAKLSM6IGdpdGs6MTA5OTUKKyM6IGdpdGs6MTExNTMKIG1zZ2lkICJJbnRlcmZhY2UiCiBtc2dzdHIgIkdyw6Ruc3NuaXR0IgogCi0jOiBnaXRrOjEwOTk2CisjOiBnaXRrOjExMTU0CiBtc2dpZCAiaW50ZXJmYWNlIgogbXNnc3RyICJncsOkbnNzbml0dCIKIAotIzogZ2l0azoxMDk5OQorIzogZ2l0azoxMTE1NwogbXNnaWQgIkJhY2tncm91bmQiCiBtc2dzdHIgIkJha2dydW5kIgogCi0jOiBnaXRrOjExMDAwIGdpdGs6MTEwMzAKKyM6IGdpdGs6MTExNTggZ2l0azoxMTE4OAogbXNnaWQgImJhY2tncm91bmQiCiBtc2dzdHIgImJha2dydW5kIgogCi0jOiBnaXRrOjExMDAzCisjOiBnaXRrOjExMTYxCiBtc2dpZCAiRm9yZWdyb3VuZCIKIG1zZ3N0ciAiRsO2cmdydW5kIgogCi0jOiBnaXRrOjExMDA0CisjOiBnaXRrOjExMTYyCiBtc2dpZCAiZm9yZWdyb3VuZCIKIG1zZ3N0ciAiZsO2cmdydW5kIgogCi0jOiBnaXRrOjExMDA3CisjOiBnaXRrOjExMTY1CiBtc2dpZCAiRGlmZjogb2xkIGxpbmVzIgogbXNnc3RyICJEaWZmOiBnYW1sYSByYWRlciIKIAotIzogZ2l0azoxMTAwOAorIzogZ2l0azoxMTE2NgogbXNnaWQgImRpZmYgb2xkIGxpbmVzIgogbXNnc3RyICJkaWZmIGdhbWxhIHJhZGVyIgogCi0jOiBnaXRrOjExMDEyCisjOiBnaXRrOjExMTcwCiBtc2dpZCAiRGlmZjogbmV3IGxpbmVzIgogbXNnc3RyICJEaWZmOiBueWEgcmFkZXIiCiAKLSM6IGdpdGs6MTEwMTMKKyM6IGdpdGs6MTExNzEKIG1zZ2lkICJkaWZmIG5ldyBsaW5lcyIKIG1zZ3N0ciAiZGlmZiBueWEgcmFkZXIiCiAKLSM6IGdpdGs6MTEwMTcKKyM6IGdpdGs6MTExNzUKIG1zZ2lkICJEaWZmOiBodW5rIGhlYWRlciIKIG1zZ3N0ciAiRGlmZjogZGVsaHV2dWQiCiAKLSM6IGdpdGs6MTEwMTkKKyM6IGdpdGs6MTExNzcKIG1zZ2lkICJkaWZmIGh1bmsgaGVhZGVyIgogbXNnc3RyICJkaWZmIGRlbGh1dnVkIgogCi0jOiBnaXRrOjExMDIzCisjOiBnaXRrOjExMTgxCiBtc2dpZCAiTWFya2VkIGxpbmUgYmciCiBtc2dzdHIgIk1hcmtlcmFkIHJhZCBiYWtncnVuZCIKIAotIzogZ2l0azoxMTAyNQorIzogZ2l0azoxMTE4MwogbXNnaWQgIm1hcmtlZCBsaW5lIGJhY2tncm91bmQiCiBtc2dzdHIgIm1hcmtlcmFkIHJhZCBiYWtncnVuZCIKIAotIzogZ2l0azoxMTAyOQorIzogZ2l0azoxMTE4NwogbXNnaWQgIlNlbGVjdCBiZyIKIG1zZ3N0ciAiTWFya2VyYWQgYmFrZ3J1bmQiCiAKLSM6IGdpdGs6MTEwMzgKKyM6IGdpdGs6MTExOTYKIG1zZ2lkICJGb250czogcHJlc3MgdG8gY2hvb3NlIgogbXNnc3RyICJUZWNrZW5zbml0dDogdHJ5Y2sgZsO2ciBhdHQgdsOkbGphIgogCi0jOiBnaXRrOjExMDQwCisjOiBnaXRrOjExMTk4CiBtc2dpZCAiTWFpbiBmb250IgogbXNnc3RyICJIdXZ1ZHRlY2tlbnNuaXR0IgogCi0jOiBnaXRrOjExMDQxCisjOiBnaXRrOjExMTk5CiBtc2dpZCAiRGlmZiBkaXNwbGF5IGZvbnQiCiBtc2dzdHIgIlRlY2tlbnNuaXR0IGbDtnIgZGlmZnZpc25pbmciCiAKLSM6IGdpdGs6MTEwNDIKKyM6IGdpdGs6MTEyMDAKIG1zZ2lkICJVc2VyIGludGVyZmFjZSBmb250IgogbXNnc3RyICJUZWNrZW5zbml0dCBmw7ZyIGFudsOkbmRhcmdyw6Ruc3NuaXR0IgogCi0jOiBnaXRrOjExMDY0CisjOiBnaXRrOjExMjIyCiBtc2dpZCAiR2l0ayBwcmVmZXJlbmNlcyIKIG1zZ3N0ciAiSW5zdMOkbGxuaW5nYXIgZsO2ciBHaXRrIgogCi0jOiBnaXRrOjExMDczCisjOiBnaXRrOjExMjMxCiBtc2dpZCAiR2VuZXJhbCIKIG1zZ3N0ciAiQWxsbcOkbnQiCiAKLSM6IGdpdGs6MTEwNzQKKyM6IGdpdGs6MTEyMzIKIG1zZ2lkICJDb2xvcnMiCiBtc2dzdHIgIkbDpHJnZXIiCiAKLSM6IGdpdGs6MTEwNzUKKyM6IGdpdGs6MTEyMzMKIG1zZ2lkICJGb250cyIKIG1zZ3N0ciAiVGVja2Vuc25pdHQiCiAKLSM6IGdpdGs6MTExMjUKKyM6IGdpdGs6MTEyODMKICMsIHRjbC1mb3JtYXQKIG1zZ2lkICJHaXRrOiBjaG9vc2UgY29sb3IgZm9yICVzIgogbXNnc3RyICJHaXRrOiB2w6RsaiBmw6RyZyBmw7ZyICVzIgogCi0jOiBnaXRrOjExNzQ1CisjOiBnaXRrOjExOTM3CiBtc2dpZCAiQ2Fubm90IGZpbmQgYSBnaXQgcmVwb3NpdG9yeSBoZXJlLiIKIG1zZ3N0ciAiSGl0dGFyIGluZ2V0IGdpdC1hcmtpdiBow6RyLiIKIAotIzogZ2l0azoxMTc5MgorIzogZ2l0azoxMTk4NAogIywgdGNsLWZvcm1hdAogbXNnaWQgIkFtYmlndW91cyBhcmd1bWVudCAnJXMnOiBib3RoIHJldmlzaW9uIGFuZCBmaWxlbmFtZSIKIG1zZ3N0ciAiVHZldHlkaWd0IGFyZ3VtZW50IFwiJXNcIjogYsOlZGUgcmV2aXNpb24gb2NoIGZpbG5hbW4iCiAKLSM6IGdpdGs6MTE4MDQKKyM6IGdpdGs6MTE5OTYKIG1zZ2lkICJCYWQgYXJndW1lbnRzIHRvIGdpdGs6IgogbXNnc3RyICJGZWxha3RpZ2EgYXJndW1lbnQgdGlsbCBnaXRrOiIKIAotIzogZ2l0azoxMTkwNworIzogZ2l0azoxMjA5OQogbXNnaWQgIkNvbW1hbmQgbGluZSIKIG1zZ3N0ciAiS29tbWFuZG9yYWQiCiAKZGlmZiAtLWdpdCBhL2dpdHdlYi9naXR3ZWIucGVybCBiL2dpdHdlYi9naXR3ZWIucGVybAppbmRleCA4MDk1MGMwLi5mNDI5Zjc1IDEwMDc1NQotLS0gYS9naXR3ZWIvZ2l0d2ViLnBlcmwKKysrIGIvZ2l0d2ViL2dpdHdlYi5wZXJsCkBAIC04NSw2ICs4NSw5IEBACiAjIHN0cmluZyBvZiB0aGUgaG9tZSBsaW5rIG9uIHRvcCBvZiBhbGwgcGFnZXMKIG91ciAkaG9tZV9saW5rX3N0ciA9ICIrK0dJVFdFQl9IT01FX0xJTktfU1RSKysiOwogCisjIGV4dHJhIGJyZWFkY3J1bWJzIHByZWNlZGluZyB0aGUgaG9tZSBsaW5rCitvdXIgQGV4dHJhX2JyZWFkY3J1bWJzID0gKCk7CisKICMgbmFtZSBvZiB5b3VyIHNpdGUgb3Igb3JnYW5pemF0aW9uIHRvIGFwcGVhciBpbiBwYWdlIHRpdGxlcwogIyByZXBsYWNlIHRoaXMgd2l0aCBzb21ldGhpbmcgbW9yZSBkZXNjcmlwdGl2ZSBmb3IgY2xlYXJlciBib29rbWFya3MKIG91ciAkc2l0ZV9uYW1lID0gIisrR0lUV0VCX1NJVEVOQU1FKysiCkBAIC0xMDg2LDcgKzEwODksNyBAQAogCW91ciAkc2VhcmNoX3VzZV9yZWdleHAgPSAkaW5wdXRfcGFyYW1zeydzZWFyY2hfdXNlX3JlZ2V4cCd9OwogCiAJb3VyICRzZWFyY2h0ZXh0ID0gJGlucHV0X3BhcmFtc3snc2VhcmNodGV4dCd9OwotCW91ciAkc2VhcmNoX3JlZ2V4cDsKKwlvdXIgJHNlYXJjaF9yZWdleHAgPSB1bmRlZjsKIAlpZiAoZGVmaW5lZCAkc2VhcmNodGV4dCkgewogCQlpZiAobGVuZ3RoKCRzZWFyY2h0ZXh0KSA8IDIpIHsKIAkJCWRpZV9lcnJvcig0MDMsICJBdCBsZWFzdCB0d28gY2hhcmFjdGVycyBhcmUgcmVxdWlyZWQgZm9yIHNlYXJjaCBwYXJhbWV0ZXIiKTsKQEAgLTM5ODIsNyArMzk4NSw5IEBACiBzdWIgcHJpbnRfbmF2X2JyZWFkY3J1bWJzIHsKIAlteSAlb3B0cyA9IEBfOwogCi0JcHJpbnQgJGNnaS0+YSh7LWhyZWYgPT4gZXNjX3VybCgkaG9tZV9saW5rKX0sICRob21lX2xpbmtfc3RyKSAuICIgLyAiOworCWZvciBteSAkY3J1bWIgKEBleHRyYV9icmVhZGNydW1icywgWyAkaG9tZV9saW5rX3N0ciA9PiAkaG9tZV9saW5rIF0pIHsKKwkJcHJpbnQgJGNnaS0+YSh7LWhyZWYgPT4gZXNjX3VybCgkY3J1bWItPlsxXSl9LCAkY3J1bWItPlswXSkgLiAiIC8gIjsKKwl9CiAJaWYgKGRlZmluZWQgJHByb2plY3QpIHsKIAkJbXkgQGRpcm5hbWUgPSBzcGxpdCAnLycsICRwcm9qZWN0OwogCQlteSAkcHJvamVjdGJhc2VuYW1lID0gcG9wIEBkaXJuYW1lOwpkaWZmIC0tZ2l0IGEvaGVscC5jIGIvaGVscC5jCmluZGV4IDAyYmEwNDMuLmYwNjg5MjUgMTAwNjQ0Ci0tLSBhL2hlbHAuYworKysgYi9oZWxwLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKICNpbmNsdWRlICJjb2x1bW4uaCIKICNpbmNsdWRlICJ2ZXJzaW9uLmgiCisjaW5jbHVkZSAicmVmcy5oIgogCiB2b2lkIGFkZF9jbWRuYW1lKHN0cnVjdCBjbWRuYW1lcyAqY21kcywgY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbikKIHsKQEAgLTEwNiwxMCArMTA3LDcgQEAKIAkgICAgIVNfSVNSRUcoc3Quc3RfbW9kZSkpCiAJCXJldHVybiAwOwogCi0jaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKQotI2lmIGRlZmluZWQoX19DWUdXSU5fXykKLWlmICgoc3Quc3RfbW9kZSAmIFNfSVhVU1IpID09IDApCi0jZW5kaWYKKyNpZiBkZWZpbmVkKEdJVF9XSU5ET1dTX05BVElWRSkKIHsJLyogY2Fubm90IHRydXN0IHRoZSBleGVjdXRhYmxlIGJpdCwgcGVlayBpbnRvIHRoZSBmaWxlIGluc3RlYWQgKi8KIAljaGFyIGJ1ZlszXSA9IHsgMCB9OwogCWludCBuOwpAQCAtNDA0LDMgKzQwMiw1MiBAQAogCXByaW50ZigiZ2l0IHZlcnNpb24gJXNcbiIsIGdpdF92ZXJzaW9uX3N0cmluZyk7CiAJcmV0dXJuIDA7CiB9CisKK3N0cnVjdCBzaW1pbGFyX3JlZl9jYiB7CisJY29uc3QgY2hhciAqYmFzZV9yZWY7CisJc3RydWN0IHN0cmluZ19saXN0ICpzaW1pbGFyX3JlZnM7Cit9OworCitzdGF0aWMgaW50IGFwcGVuZF9zaW1pbGFyX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAorCQkJICAgICAgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCBzaW1pbGFyX3JlZl9jYiAqY2IgPSAoc3RydWN0IHNpbWlsYXJfcmVmX2NiICopKGNiX2RhdGEpOworCWNoYXIgKmJyYW5jaCA9IHN0cnJjaHIocmVmbmFtZSwgJy8nKSArIDE7CisJLyogQSByZW1vdGUgYnJhbmNoIG9mIHRoZSBzYW1lIG5hbWUgaXMgZGVlbWVkIHNpbWlsYXIgKi8KKwlpZiAoIXByZWZpeGNtcChyZWZuYW1lLCAicmVmcy9yZW1vdGVzLyIpICYmCisJICAgICFzdHJjbXAoYnJhbmNoLCBjYi0+YmFzZV9yZWYpKQorCQlzdHJpbmdfbGlzdF9hcHBlbmQoY2ItPnNpbWlsYXJfcmVmcywKKwkJCQkgICByZWZuYW1lICsgc3RybGVuKCJyZWZzL3JlbW90ZXMvIikpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHN0cmluZ19saXN0IGd1ZXNzX3JlZnMoY29uc3QgY2hhciAqcmVmKQoreworCXN0cnVjdCBzaW1pbGFyX3JlZl9jYiByZWZfY2I7CisJc3RydWN0IHN0cmluZ19saXN0IHNpbWlsYXJfcmVmcyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CisKKwlyZWZfY2IuYmFzZV9yZWYgPSByZWY7CisJcmVmX2NiLnNpbWlsYXJfcmVmcyA9ICZzaW1pbGFyX3JlZnM7CisJZm9yX2VhY2hfcmVmKGFwcGVuZF9zaW1pbGFyX3JlZiwgJnJlZl9jYik7CisJcmV0dXJuIHNpbWlsYXJfcmVmczsKK30KKwordm9pZCBoZWxwX3Vua25vd25fcmVmKGNvbnN0IGNoYXIgKnJlZiwgY29uc3QgY2hhciAqY21kLCBjb25zdCBjaGFyICplcnJvcikKK3sKKwlpbnQgaTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3Qgc3VnZ2VzdGVkX3JlZnMgPSBndWVzc19yZWZzKHJlZik7CisKKwlmcHJpbnRmX2xuKHN0ZGVyciwgXygiJXM6ICVzIC0gJXMiKSwgY21kLCByZWYsIGVycm9yKTsKKworCWlmIChzdWdnZXN0ZWRfcmVmcy5uciA+IDApIHsKKwkJZnByaW50Zl9sbihzdGRlcnIsCisJCQkgICBRXygiXG5EaWQgeW91IG1lYW4gdGhpcz8iLAorCQkJICAgICAgIlxuRGlkIHlvdSBtZWFuIG9uZSBvZiB0aGVzZT8iLAorCQkJICAgICAgc3VnZ2VzdGVkX3JlZnMubnIpKTsKKwkJZm9yIChpID0gMDsgaSA8IHN1Z2dlc3RlZF9yZWZzLm5yOyBpKyspCisJCQlmcHJpbnRmKHN0ZGVyciwgIlx0JXNcbiIsIHN1Z2dlc3RlZF9yZWZzLml0ZW1zW2ldLnN0cmluZyk7CisJfQorCisJc3RyaW5nX2xpc3RfY2xlYXIoJnN1Z2dlc3RlZF9yZWZzLCAwKTsKKwlleGl0KDEpOworfQpkaWZmIC0tZ2l0IGEvaGVscC5oIGIvaGVscC5oCmluZGV4IDBhZTVhMTIuLmIyMWQ3YzkgMTAwNjQ0Ci0tLSBhL2hlbHAuaAorKysgYi9oZWxwLmgKQEAgLTI3LDQgKzI3LDkgQEAKIGV4dGVybiBpbnQgaXNfaW5fY21kbGlzdChzdHJ1Y3QgY21kbmFtZXMgKmNtZHMsIGNvbnN0IGNoYXIgKm5hbWUpOwogZXh0ZXJuIHZvaWQgbGlzdF9jb21tYW5kcyh1bnNpZ25lZCBpbnQgY29sb3B0cywgc3RydWN0IGNtZG5hbWVzICptYWluX2NtZHMsIHN0cnVjdCBjbWRuYW1lcyAqb3RoZXJfY21kcyk7CiAKKy8qCisgKiBjYWxsIHRoaXMgdG8gZGllKCksIHdoZW4gaXQgaXMgc3VzcGVjdGVkIHRoYXQgdGhlIHVzZXIgbWlzdHlwZWQgYQorICogcmVmIHRvIHRoZSBjb21tYW5kLCB0byBnaXZlIHN1Z2dlc3RlZCAiY29ycmVjdCIgcmVmcy4KKyAqLworZXh0ZXJuIHZvaWQgaGVscF91bmtub3duX3JlZihjb25zdCBjaGFyICpyZWYsIGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqZXJyb3IpOwogI2VuZGlmIC8qIEhFTFBfSCAqLwpkaWZmIC0tZ2l0IGEvaHR0cC1iYWNrZW5kLmMgYi9odHRwLWJhY2tlbmQuYwppbmRleCA2Yjg1ZmZhLi4wMzI0NDE3IDEwMDY0NAotLS0gYS9odHRwLWJhY2tlbmQuYworKysgYi9odHRwLWJhY2tlbmQuYwpAQCAtNDEwLDE0ICs0MTAsMTQgQEAKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIH0KIAotc3RhdGljIGludCBzaG93X2hlYWRfcmVmKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCitzdGF0aWMgaW50IHNob3dfaGVhZF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKIAlpbnQgZmxhZywgdm9pZCAqY2JfZGF0YSkKIHsKIAlzdHJ1Y3Qgc3RyYnVmICpidWYgPSBjYl9kYXRhOwogCiAJaWYgKGZsYWcgJiBSRUZfSVNTWU1SRUYpIHsKLQkJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQkJY29uc3QgY2hhciAqdGFyZ2V0ID0gcmVzb2x2ZV9yZWZfdW5zYWZlKG5hbWUsIHNoYTEsIDEsIE5VTEwpOworCQl1bnNpZ25lZCBjaGFyIHVudXNlZFsyMF07CisJCWNvbnN0IGNoYXIgKnRhcmdldCA9IHJlc29sdmVfcmVmX3Vuc2FmZShyZWZuYW1lLCB1bnVzZWQsIDEsIE5VTEwpOwogCQljb25zdCBjaGFyICp0YXJnZXRfbm9ucyA9IHN0cmlwX25hbWVzcGFjZSh0YXJnZXQpOwogCiAJCXN0cmJ1Zl9hZGRmKGJ1ZiwgInJlZjogJXNcbiIsIHRhcmdldF9ub25zKTsKZGlmZiAtLWdpdCBhL2h0dHAtcHVzaC5jIGIvaHR0cC1wdXNoLmMKaW5kZXggMzk1YThjZi4uNmRhZDE4OCAxMDA2NDQKLS0tIGEvaHR0cC1wdXNoLmMKKysrIGIvaHR0cC1wdXNoLmMKQEAgLTY2Myw3ICs2NjMsNyBAQAogCiBzdGF0aWMgaW50IGFkZF9zZW5kX3JlcXVlc3Qoc3RydWN0IG9iamVjdCAqb2JqLCBzdHJ1Y3QgcmVtb3RlX2xvY2sgKmxvY2spCiB7Ci0Jc3RydWN0IHRyYW5zZmVyX3JlcXVlc3QgKnJlcXVlc3QgPSByZXF1ZXN0X3F1ZXVlX2hlYWQ7CisJc3RydWN0IHRyYW5zZmVyX3JlcXVlc3QgKnJlcXVlc3Q7CiAJc3RydWN0IHBhY2tlZF9naXQgKnRhcmdldDsKIAogCS8qIEtlZXAgbG9ja3MgYWN0aXZlICovCmRpZmYgLS1naXQgYS9odHRwLmMgYi9odHRwLmMKaW5kZXggOTJhYmE1OS4uMmQwODZhZSAxMDA2NDQKLS0tIGEvaHR0cC5jCisrKyBiL2h0dHAuYwpAQCAtMjI4LDkgKzIyOCwxNSBAQAogI2Vsc2UKIAl7CiAJCXN0YXRpYyBzdHJ1Y3Qgc3RyYnVmIHVwID0gU1RSQlVGX0lOSVQ7Ci0JCXN0cmJ1Zl9yZXNldCgmdXApOwotCQlzdHJidWZfYWRkZigmdXAsICIlczolcyIsCi0JCQkgICAgaHR0cF9hdXRoLnVzZXJuYW1lLCBodHRwX2F1dGgucGFzc3dvcmQpOworCQkvKgorCQkgKiBOb3RlIHRoYXQgd2UgYXNzdW1lIHdlIG9ubHkgZXZlciBoYXZlIGEgc2luZ2xlIHNldCBvZgorCQkgKiBjcmVkZW50aWFscyBpbiBhIGdpdmVuIHByb2dyYW0gcnVuLCBzbyB3ZSBkbyBub3QgaGF2ZQorCQkgKiB0byB3b3JyeSBhYm91dCB1cGRhdGluZyB0aGlzIGJ1ZmZlciwgb25seSBzZXR0aW5nIGl0cworCQkgKiBpbml0aWFsIHZhbHVlLgorCQkgKi8KKwkJaWYgKCF1cC5sZW4pCisJCQlzdHJidWZfYWRkZigmdXAsICIlczolcyIsCisJCQkJaHR0cF9hdXRoLnVzZXJuYW1lLCBodHRwX2F1dGgucGFzc3dvcmQpOwogCQljdXJsX2Vhc3lfc2V0b3B0KHJlc3VsdCwgQ1VSTE9QVF9VU0VSUFdELCB1cC5idWYpOwogCX0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW1hcC1zZW5kLmMgYi9pbWFwLXNlbmQuYwppbmRleCBkOWJjZmI0Li5kNmI2NWUyIDEwMDY0NAotLS0gYS9pbWFwLXNlbmQuYworKysgYi9pbWFwLXNlbmQuYwpAQCAtMjksOCArMjksMTggQEAKICNpZmRlZiBOT19PUEVOU1NMCiB0eXBlZGVmIHZvaWQgKlNTTDsKICNlbHNlCisjaWZkZWYgQVBQTEVfQ09NTU9OX0NSWVBUTworI2luY2x1ZGUgPENvbW1vbkNyeXB0by9Db21tb25ITUFDLmg+CisjZGVmaW5lIEhNQUNfQ1RYIENDSG1hY0NvbnRleHQKKyNkZWZpbmUgSE1BQ19Jbml0KGhtYWMsIGtleSwgbGVuLCBhbGdvKSBDQ0htYWNJbml0KGhtYWMsIGFsZ28sIGtleSwgbGVuKQorI2RlZmluZSBITUFDX1VwZGF0ZSBDQ0htYWNVcGRhdGUKKyNkZWZpbmUgSE1BQ19GaW5hbChobWFjLCBoYXNoLCBwdHIpIENDSG1hY0ZpbmFsKGhtYWMsIGhhc2gpCisjZGVmaW5lIEhNQUNfQ1RYX2NsZWFudXAoaWdub3JlKQorI2RlZmluZSBFVlBfbWQ1KCkga0NDSG1hY0FsZ01ENQorI2Vsc2UKICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgogI2luY2x1ZGUgPG9wZW5zc2wvaG1hYy5oPgorI2VuZGlmCiAjaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9rd3NldC5jIGIva3dzZXQuYwppbmRleCA1ODAwOTk5Li5hMGY0OWIzIDEwMDY0NAotLS0gYS9rd3NldC5jCisrKyBiL2t3c2V0LmMKQEAgLTY1LDcgKzY1LDcgQEAKICAgc3RydWN0IHRyaWUgKmZhaWw7CQkvKiBBaG8tQ29yYXNpY2sgZmFpbHVyZSBmdW5jdGlvbi4gKi8KICAgaW50IGRlcHRoOwkJCS8qIERlcHRoIG9mIHRoaXMgbm9kZSBmcm9tIHRoZSByb290LiAqLwogICBpbnQgc2hpZnQ7CQkJLyogU2hpZnQgZnVuY3Rpb24gZm9yIHNlYXJjaCBmYWlsdXJlcy4gKi8KLSAgaW50IG1heHNoaWZ0OwkJCS8qIE1heCBzaGlmdCBvZiBzZWxmIGFuZCBkZXNjZW5kZW50cy4gKi8KKyAgaW50IG1heHNoaWZ0OwkJCS8qIE1heCBzaGlmdCBvZiBzZWxmIGFuZCBkZXNjZW5kYW50cy4gKi8KIH07CiAKIC8qIFN0cnVjdHVyZSByZXR1cm5lZCBvcGFxdWVseSB0byB0aGUgY2FsbGVyLCBjb250YWluaW5nIGV2ZXJ5dGhpbmcuICovCkBAIC0zMDgsNyArMzA4LDcgQEAKICAgdHJlZWZhaWxzKHRyZWUtPnJsaW5rLCBmYWlsLCByZWNvdXJzZSk7CiAKICAgLyogRmluZCwgaW4gdGhlIGNoYWluIG9mIGZhaWxzIGdvaW5nIGJhY2sgdG8gdGhlIHJvb3QsIHRoZSBmaXJzdAotICAgICBub2RlIHRoYXQgaGFzIGEgZGVzY2VuZGVudCBvbiB0aGUgY3VycmVudCBsYWJlbC4gKi8KKyAgICAgbm9kZSB0aGF0IGhhcyBhIGRlc2NlbmRhbnQgb24gdGhlIGN1cnJlbnQgbGFiZWwuICovCiAgIHdoaWxlIChmYWlsKQogICAgIHsKICAgICAgIGxpbmsgPSBmYWlsLT5saW5rczsKQEAgLTQyNiwxMyArNDI2LDEzIEBACiAJIGNvbXB1dGluZyB0aGUgZGVsdGEgdGFibGUsIGZhaWx1cmUgZnVuY3Rpb24sIGFuZCBzaGlmdCBmdW5jdGlvbi4gKi8KICAgICAgIGZvciAoY3VyciA9IGxhc3QgPSBrd3NldC0+dHJpZTsgY3VycjsgY3VyciA9IGN1cnItPm5leHQpCiAJewotCSAgLyogRW5xdWV1ZSB0aGUgaW1tZWRpYXRlIGRlc2NlbmRlbnRzIGluIHRoZSBsZXZlbCBvcmRlciBxdWV1ZS4gKi8KKwkgIC8qIEVucXVldWUgdGhlIGltbWVkaWF0ZSBkZXNjZW5kYW50cyBpbiB0aGUgbGV2ZWwgb3JkZXIgcXVldWUuICovCiAJICBlbnF1ZXVlKGN1cnItPmxpbmtzLCAmbGFzdCk7CiAKIAkgIGN1cnItPnNoaWZ0ID0ga3dzZXQtPm1pbmQ7CiAJICBjdXJyLT5tYXhzaGlmdCA9IGt3c2V0LT5taW5kOwogCi0JICAvKiBVcGRhdGUgdGhlIGRlbHRhIHRhYmxlIGZvciB0aGUgZGVzY2VuZGVudHMgb2YgdGhpcyBub2RlLiAqLworCSAgLyogVXBkYXRlIHRoZSBkZWx0YSB0YWJsZSBmb3IgdGhlIGRlc2NlbmRhbnRzIG9mIHRoaXMgbm9kZS4gKi8KIAkgIHRyZWVkZWx0YShjdXJyLT5saW5rcywgY3Vyci0+ZGVwdGgsIGRlbHRhKTsKIAogCSAgLyogQ29tcHV0ZSB0aGUgZmFpbHVyZSBmdW5jdGlvbiBmb3IgdGhlIGRlc2NlbmRhbnRzIG9mIHRoaXMgbm9kZS4gKi8KQEAgLTQ1MCw3ICs0NTAsNyBAQAogCQkgIGZhaWwtPnNoaWZ0ID0gY3Vyci0+ZGVwdGggLSBmYWlsLT5kZXB0aDsKIAogCSAgICAgIC8qIElmIHRoZSBjdXJyZW50IG5vZGUgaXMgYWNjZXB0aW5nIHRoZW4gdGhlIHNoaWZ0IGF0IHRoZQotCQkgZmFpbCBhbmQgaXRzIGRlc2NlbmRlbnRzIHNob3VsZCBiZSBubyBsYXJnZXIgdGhhbiB0aGUKKwkJIGZhaWwgYW5kIGl0cyBkZXNjZW5kYW50cyBzaG91bGQgYmUgbm8gbGFyZ2VyIHRoYW4gdGhlCiAJCSBkaWZmZXJlbmNlIG9mIHRoZWlyIGRlcHRocy4gKi8KIAkgICAgICBpZiAoY3Vyci0+YWNjZXB0aW5nICYmIGZhaWwtPm1heHNoaWZ0ID4gY3Vyci0+ZGVwdGggLSBmYWlsLT5kZXB0aCkKIAkJZmFpbC0+bWF4c2hpZnQgPSBjdXJyLT5kZXB0aCAtIGZhaWwtPmRlcHRoOwpkaWZmIC0tZ2l0IGEvbGluZS1sb2cuYyBiL2xpbmUtbG9nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJkMDFkYwotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtbG9nLmMKQEAgLTAsMCArMSwxMjc3IEBACisjaW5jbHVkZSAiZ2l0LWNvbXBhdC11dGlsLmgiCisjaW5jbHVkZSAibGluZS1yYW5nZS5oIgorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAidGFnLmgiCisjaW5jbHVkZSAiYmxvYi5oIgorI2luY2x1ZGUgInRyZWUuaCIKKyNpbmNsdWRlICJkaWZmLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAiZGVjb3JhdGUuaCIKKyNpbmNsdWRlICJyZXZpc2lvbi5oIgorI2luY2x1ZGUgInhkaWZmLWludGVyZmFjZS5oIgorI2luY2x1ZGUgInN0cmJ1Zi5oIgorI2luY2x1ZGUgImxvZy10cmVlLmgiCisjaW5jbHVkZSAiZ3JhcGguaCIKKyNpbmNsdWRlICJ1c2VyZGlmZi5oIgorI2luY2x1ZGUgImxpbmUtbG9nLmgiCisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9ncm93KHN0cnVjdCByYW5nZV9zZXQgKnJzLCBzaXplX3QgZXh0cmEpCit7CisJQUxMT0NfR1JPVyhycy0+cmFuZ2VzLCBycy0+bnIgKyBleHRyYSwgcnMtPmFsbG9jKTsKK30KKworLyogRWl0aGVyIGluaXRpYWxpemF0aW9uIHdvdWxkIGJlIGZpbmUgKi8KKyNkZWZpbmUgUkFOR0VfU0VUX0lOSVQgezB9CisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9pbml0KHN0cnVjdCByYW5nZV9zZXQgKnJzLCBzaXplX3QgcHJlYWxsb2MpCit7CisJcnMtPmFsbG9jID0gcnMtPm5yID0gMDsKKwlycy0+cmFuZ2VzID0gTlVMTDsKKwlpZiAocHJlYWxsb2MpCisJCXJhbmdlX3NldF9ncm93KHJzLCBwcmVhbGxvYyk7Cit9CisKK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9yZWxlYXNlKHN0cnVjdCByYW5nZV9zZXQgKnJzKQoreworCWZyZWUocnMtPnJhbmdlcyk7CisJcnMtPmFsbG9jID0gcnMtPm5yID0gMDsKKwlycy0+cmFuZ2VzID0gTlVMTDsKK30KKworLyogZHN0IG11c3QgYmUgdW5pbml0aWFsaXplZCEgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9jb3B5KHN0cnVjdCByYW5nZV9zZXQgKmRzdCwgc3RydWN0IHJhbmdlX3NldCAqc3JjKQoreworCXJhbmdlX3NldF9pbml0KGRzdCwgc3JjLT5ucik7CisJbWVtY3B5KGRzdC0+cmFuZ2VzLCBzcmMtPnJhbmdlcywgc3JjLT5ucipzaXplb2Yoc3RydWN0IHJhbmdlX3NldCkpOworCWRzdC0+bnIgPSBzcmMtPm5yOworfQorc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X21vdmUoc3RydWN0IHJhbmdlX3NldCAqZHN0LCBzdHJ1Y3QgcmFuZ2Vfc2V0ICpzcmMpCit7CisJcmFuZ2Vfc2V0X3JlbGVhc2UoZHN0KTsKKwlkc3QtPnJhbmdlcyA9IHNyYy0+cmFuZ2VzOworCWRzdC0+bnIgPSBzcmMtPm5yOworCWRzdC0+YWxsb2MgPSBzcmMtPmFsbG9jOworCXNyYy0+cmFuZ2VzID0gTlVMTDsKKwlzcmMtPmFsbG9jID0gc3JjLT5uciA9IDA7Cit9CisKKy8qIHRhY2sgb24gYSBfbmV3XyByYW5nZSBfYXQgdGhlIGVuZF8gKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9hcHBlbmRfdW5zYWZlKHN0cnVjdCByYW5nZV9zZXQgKnJzLCBsb25nIGEsIGxvbmcgYikKK3sKKwlhc3NlcnQoYSA8PSBiKTsKKwlyYW5nZV9zZXRfZ3JvdyhycywgMSk7CisJcnMtPnJhbmdlc1tycy0+bnJdLnN0YXJ0ID0gYTsKKwlycy0+cmFuZ2VzW3JzLT5ucl0uZW5kID0gYjsKKwlycy0+bnIrKzsKK30KKworc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X2FwcGVuZChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgbG9uZyBhLCBsb25nIGIpCit7CisJYXNzZXJ0KHJzLT5uciA9PSAwIHx8IHJzLT5yYW5nZXNbcnMtPm5yLTFdLmVuZCA8PSBhKTsKKwlyYW5nZV9zZXRfYXBwZW5kX3Vuc2FmZShycywgYSwgYik7Cit9CisKK3N0YXRpYyBpbnQgcmFuZ2VfY21wKGNvbnN0IHZvaWQgKl9yLCBjb25zdCB2b2lkICpfcykKK3sKKwljb25zdCBzdHJ1Y3QgcmFuZ2UgKnIgPSBfcjsKKwljb25zdCBzdHJ1Y3QgcmFuZ2UgKnMgPSBfczsKKworCS8qIHRoaXMgY291bGQgYmUgc2ltcGx5ICdyZXR1cm4gci5zdGFydC1zLnN0YXJ0JywgYnV0IGZvciB0aGUgdHlwZXMgKi8KKwlpZiAoci0+c3RhcnQgPT0gcy0+c3RhcnQpCisJCXJldHVybiAwOworCWlmIChyLT5zdGFydCA8IHMtPnN0YXJ0KQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IHRoZSByYW5nZXMgYXJlIG5vbi1lbXB0eSwgc29ydGVkIGFuZCBub24tb3ZlcmxhcHBpbmcKKyAqLworc3RhdGljIHZvaWQgcmFuZ2Vfc2V0X2NoZWNrX2ludmFyaWFudHMoc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGk7CisKKwlpZiAoIXJzKQorCQlyZXR1cm47CisKKwlpZiAocnMtPm5yKQorCQlhc3NlcnQocnMtPnJhbmdlc1swXS5zdGFydCA8IHJzLT5yYW5nZXNbMF0uZW5kKTsKKworCWZvciAoaSA9IDE7IGkgPCBycy0+bnI7IGkrKykgeworCQlhc3NlcnQocnMtPnJhbmdlc1tpLTFdLmVuZCA8IHJzLT5yYW5nZXNbaV0uc3RhcnQpOworCQlhc3NlcnQocnMtPnJhbmdlc1tpXS5zdGFydCA8IHJzLT5yYW5nZXNbaV0uZW5kKTsKKwl9Cit9CisKKy8qCisgKiBJbi1wbGFjZSBwYXNzIG9mIHNvcnRpbmcgYW5kIG1lcmdpbmcgdGhlIHJhbmdlcyBpbiB0aGUgcmFuZ2Ugc2V0LAorICogdG8gZXN0YWJsaXNoIHRoZSBpbnZhcmlhbnRzIHdoZW4gd2UgZ2V0IHRoZSByYW5nZXMgZnJvbSB0aGUgdXNlcgorICovCitzdGF0aWMgdm9pZCBzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGk7CisJaW50IG8gPSAwOyAvKiBvdXRwdXQgY3Vyc29yICovCisKKwlxc29ydChycy0+cmFuZ2VzLCBycy0+bnIsIHNpemVvZihzdHJ1Y3QgcmFuZ2UpLCByYW5nZV9jbXApOworCisJZm9yIChpID0gMDsgaSA8IHJzLT5ucjsgaSsrKSB7CisJCWlmIChycy0+cmFuZ2VzW2ldLnN0YXJ0ID09IHJzLT5yYW5nZXNbaV0uZW5kKQorCQkJY29udGludWU7CisJCWlmIChvID4gMCAmJiBycy0+cmFuZ2VzW2ldLnN0YXJ0IDw9IHJzLT5yYW5nZXNbby0xXS5lbmQpIHsKKwkJCWlmIChycy0+cmFuZ2VzW28tMV0uZW5kIDwgcnMtPnJhbmdlc1tpXS5lbmQpCisJCQkJcnMtPnJhbmdlc1tvLTFdLmVuZCA9IHJzLT5yYW5nZXNbaV0uZW5kOworCQl9IGVsc2UgeworCQkJcnMtPnJhbmdlc1tvXS5zdGFydCA9IHJzLT5yYW5nZXNbaV0uc3RhcnQ7CisJCQlycy0+cmFuZ2VzW29dLmVuZCA9IHJzLT5yYW5nZXNbaV0uZW5kOworCQkJbysrOworCQl9CisJfQorCWFzc2VydChvIDw9IHJzLT5ucik7CisJcnMtPm5yID0gbzsKKworCXJhbmdlX3NldF9jaGVja19pbnZhcmlhbnRzKHJzKTsKK30KKworLyoKKyAqIFVuaW9uIG9mIHJhbmdlIHNldHMgKGkuZS4sIHNldHMgb2YgbGluZSBudW1iZXJzKS4gIFVzZWQgdG8gbWVyZ2UKKyAqIHRoZW0gd2hlbiBzZWFyY2hlcyBtZWV0IGF0IGEgY29tbW9uIGFuY2VzdG9yLgorICoKKyAqIFRoaXMgaXMgYWxzbyB3aGVyZSB0aGUgcmFuZ2VzIGFyZSBjb25zb2xpZGF0ZWQgaW50byBjYW5vbmljYWwgZm9ybToKKyAqIG92ZXJsYXBwaW5nIGFuZCBhZGphY2VudCByYW5nZXMgYXJlIG1lcmdlZCwgYW5kIGVtcHR5IHJhbmdlcyBhcmUKKyAqIHJlbW92ZWQuCisgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF91bmlvbihzdHJ1Y3QgcmFuZ2Vfc2V0ICpvdXQsCisJCQkgICAgIHN0cnVjdCByYW5nZV9zZXQgKmEsIHN0cnVjdCByYW5nZV9zZXQgKmIpCit7CisJaW50IGkgPSAwLCBqID0gMCwgbyA9IDA7CisJc3RydWN0IHJhbmdlICpyYSA9IGEtPnJhbmdlczsKKwlzdHJ1Y3QgcmFuZ2UgKnJiID0gYi0+cmFuZ2VzOworCS8qIGNhbm5vdCBtYWtlIGFuIGFsaWFzIG9mIG91dC0+cmFuZ2VzOiBpdCBtYXkgY2hhbmdlIGR1cmluZyBncm93ICovCisKKwlhc3NlcnQob3V0LT5uciA9PSAwKTsKKwl3aGlsZSAoaSA8IGEtPm5yIHx8IGogPCBiLT5ucikgeworCQlzdHJ1Y3QgcmFuZ2UgKm5ldzsKKwkJaWYgKGkgPCBhLT5uciAmJiBqIDwgYi0+bnIpIHsKKwkJCWlmIChyYVtpXS5zdGFydCA8IHJiW2pdLnN0YXJ0KQorCQkJCW5ldyA9ICZyYVtpKytdOworCQkJZWxzZSBpZiAocmFbaV0uc3RhcnQgPiByYltqXS5zdGFydCkKKwkJCQluZXcgPSAmcmJbaisrXTsKKwkJCWVsc2UgaWYgKHJhW2ldLmVuZCA8IHJiW2pdLmVuZCkKKwkJCQluZXcgPSAmcmFbaSsrXTsKKwkJCWVsc2UKKwkJCQluZXcgPSAmcmJbaisrXTsKKwkJfSBlbHNlIGlmIChpIDwgYS0+bnIpICAgICAgLyogYiBleGhhdXN0ZWQgKi8KKwkJCW5ldyA9ICZyYVtpKytdOworCQllbHNlICAgICAgICAgICAgICAgICAgICAgICAvKiBhIGV4aGF1c3RlZCAqLworCQkJbmV3ID0gJnJiW2orK107CisJCWlmIChuZXctPnN0YXJ0ID09IG5ldy0+ZW5kKQorCQkJOyAvKiBlbXB0eSByYW5nZSAqLworCQllbHNlIGlmICghbyB8fCBvdXQtPnJhbmdlc1tvLTFdLmVuZCA8IG5ldy0+c3RhcnQpIHsKKwkJCXJhbmdlX3NldF9ncm93KG91dCwgMSk7CisJCQlvdXQtPnJhbmdlc1tvXS5zdGFydCA9IG5ldy0+c3RhcnQ7CisJCQlvdXQtPnJhbmdlc1tvXS5lbmQgPSBuZXctPmVuZDsKKwkJCW8rKzsKKwkJfSBlbHNlIGlmIChvdXQtPnJhbmdlc1tvLTFdLmVuZCA8IG5ldy0+ZW5kKSB7CisJCQlvdXQtPnJhbmdlc1tvLTFdLmVuZCA9IG5ldy0+ZW5kOworCQl9CisJfQorCW91dC0+bnIgPSBvOworfQorCisvKgorICogRGlmZmVyZW5jZSBvZiByYW5nZSBzZXRzIChvdXQgPSBhIFwgYikuICBQYXNzIHRoZSAiaW50ZXJlc3RpbmciCisgKiByYW5nZXMgYXMgJ2EnIGFuZCB0aGUgdGFyZ2V0IHNpZGUgb2YgdGhlIGRpZmYgYXMgJ2InOiBpdCByZW1vdmVzCisgKiB0aGUgcmFuZ2VzIGZvciB3aGljaCB0aGUgY29tbWl0IGlzIHJlc3BvbnNpYmxlLgorICovCitzdGF0aWMgdm9pZCByYW5nZV9zZXRfZGlmZmVyZW5jZShzdHJ1Y3QgcmFuZ2Vfc2V0ICpvdXQsCisJCQkJICBzdHJ1Y3QgcmFuZ2Vfc2V0ICphLCBzdHJ1Y3QgcmFuZ2Vfc2V0ICpiKQoreworCWludCBpLCBqID0gIDA7CisJZm9yIChpID0gMDsgaSA8IGEtPm5yOyBpKyspIHsKKwkJbG9uZyBzdGFydCA9IGEtPnJhbmdlc1tpXS5zdGFydDsKKwkJbG9uZyBlbmQgPSBhLT5yYW5nZXNbaV0uZW5kOworCQl3aGlsZSAoc3RhcnQgPCBlbmQpIHsKKwkJCXdoaWxlIChqIDwgYi0+bnIgJiYgc3RhcnQgPj0gYi0+cmFuZ2VzW2pdLmVuZCkKKwkJCQkvKgorCQkJCSAqIGE6ICAgICAgICAgfC0tLS0tLS0KKwkJCQkgKiBiOiAtLS0tLS18CisJCQkJICovCisJCQkJaisrOworCQkJaWYgKGogPj0gYi0+bnIgfHwgZW5kIDwgYi0+cmFuZ2VzW2pdLnN0YXJ0KSB7CisJCQkJLyoKKwkJCQkgKiBiIGV4aGF1c3RlZCwgb3IKKwkJCQkgKiBhOiAgLS0tLXwKKwkJCQkgKiBiOiAgICAgICAgIHwtLS0tCisJCQkJICovCisJCQkJcmFuZ2Vfc2V0X2FwcGVuZChvdXQsIHN0YXJ0LCBlbmQpOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKHN0YXJ0ID49IGItPnJhbmdlc1tqXS5zdGFydCkgeworCQkJCS8qCisJCQkJICogYTogICAgIHwtLT8/Pz8KKwkJCQkgKiBiOiB8LS0tLS0tfAorCQkJCSAqLworCQkJCXN0YXJ0ID0gYi0+cmFuZ2VzW2pdLmVuZDsKKwkJCX0gZWxzZSBpZiAoZW5kID4gYi0+cmFuZ2VzW2pdLnN0YXJ0KSB7CisJCQkJLyoKKwkJCQkgKiBhOiB8LS0tLS18CisJCQkJICogYjogICAgfC0tPz8/Pz8KKwkJCQkgKi8KKwkJCQlpZiAoc3RhcnQgPCBiLT5yYW5nZXNbal0uc3RhcnQpCisJCQkJCXJhbmdlX3NldF9hcHBlbmQob3V0LCBzdGFydCwgYi0+cmFuZ2VzW2pdLnN0YXJ0KTsKKwkJCQlzdGFydCA9IGItPnJhbmdlc1tqXS5lbmQ7CisJCQl9CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRpZmZfcmFuZ2VzX2luaXQoc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmKQoreworCXJhbmdlX3NldF9pbml0KCZkaWZmLT5wYXJlbnQsIDApOworCXJhbmdlX3NldF9pbml0KCZkaWZmLT50YXJnZXQsIDApOworfQorCitzdGF0aWMgdm9pZCBkaWZmX3Jhbmdlc19yZWxlYXNlKHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZikKK3sKKwlyYW5nZV9zZXRfcmVsZWFzZSgmZGlmZi0+cGFyZW50KTsKKwlyYW5nZV9zZXRfcmVsZWFzZSgmZGlmZi0+dGFyZ2V0KTsKK30KKwordm9pZCBsaW5lX2xvZ19kYXRhX2luaXQoc3RydWN0IGxpbmVfbG9nX2RhdGEgKnIpCit7CisJbWVtc2V0KHIsIDAsIHNpemVvZihzdHJ1Y3QgbGluZV9sb2dfZGF0YSkpOworCXJhbmdlX3NldF9pbml0KCZyLT5yYW5nZXMsIDApOworfQorCitzdGF0aWMgdm9pZCBsaW5lX2xvZ19kYXRhX2NsZWFyKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyKQoreworCXJhbmdlX3NldF9yZWxlYXNlKCZyLT5yYW5nZXMpOworCWlmIChyLT5wYWlyKQorCQlkaWZmX2ZyZWVfZmlsZXBhaXIoci0+cGFpcik7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfbGluZV9sb2dfZGF0YShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwl3aGlsZSAocikgeworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbmV4dCA9IHItPm5leHQ7CisJCWxpbmVfbG9nX2RhdGFfY2xlYXIocik7CisJCWZyZWUocik7CisJCXIgPSBuZXh0OworCX0KK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK3NlYXJjaF9saW5lX2xvZ19kYXRhKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpsaXN0LCBjb25zdCBjaGFyICpwYXRoLAorCQkgICAgIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqaW5zZXJ0aW9uX3BvaW50KQoreworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpwID0gbGlzdDsKKwlpZiAoaW5zZXJ0aW9uX3BvaW50KQorCQkqaW5zZXJ0aW9uX3BvaW50ID0gTlVMTDsKKwl3aGlsZSAocCkgeworCQlpbnQgY21wID0gc3RyY21wKHAtPnBhdGgsIHBhdGgpOworCQlpZiAoIWNtcCkKKwkJCXJldHVybiBwOworCQlpZiAoaW5zZXJ0aW9uX3BvaW50ICYmIGNtcCA8IDApCisJCQkqaW5zZXJ0aW9uX3BvaW50ID0gcDsKKwkJcCA9IHAtPm5leHQ7CisJfQorCXJldHVybiBOVUxMOworfQorCisvKgorICogTm90ZTogdGFrZXMgb3duZXJzaGlwIG9mICdwYXRoJywgd2hpY2ggaGFwcGVucyB0byBiZSB3aGF0IHRoZSBvbmx5CisgKiBjYWxsZXIgbmVlZHMuCisgKi8KK3N0YXRpYyB2b2lkIGxpbmVfbG9nX2RhdGFfaW5zZXJ0KHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqbGlzdCwKKwkJCQkgY2hhciAqcGF0aCwKKwkJCQkgbG9uZyBiZWdpbiwgbG9uZyBlbmQpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKmlwOworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpwID0gc2VhcmNoX2xpbmVfbG9nX2RhdGEoKmxpc3QsIHBhdGgsICZpcCk7CisKKwlpZiAocCkgeworCQlyYW5nZV9zZXRfYXBwZW5kX3Vuc2FmZSgmcC0+cmFuZ2VzLCBiZWdpbiwgZW5kKTsKKwkJc29ydF9hbmRfbWVyZ2VfcmFuZ2Vfc2V0KCZwLT5yYW5nZXMpOworCQlmcmVlKHBhdGgpOworCQlyZXR1cm47CisJfQorCisJcCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBsaW5lX2xvZ19kYXRhKSk7CisJcC0+cGF0aCA9IHBhdGg7CisJcmFuZ2Vfc2V0X2FwcGVuZCgmcC0+cmFuZ2VzLCBiZWdpbiwgZW5kKTsKKwlzb3J0X2FuZF9tZXJnZV9yYW5nZV9zZXQoJnAtPnJhbmdlcyk7CisJaWYgKGlwKSB7CisJCXAtPm5leHQgPSBpcC0+bmV4dDsKKwkJaXAtPm5leHQgPSBwOworCX0gZWxzZSB7CisJCXAtPm5leHQgPSAqbGlzdDsKKwkJKmxpc3QgPSBwOworCX0KK30KKworc3RydWN0IGNvbGxlY3RfZGlmZl9jYmRhdGEgeworCXN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZjsKK307CisKK3N0YXRpYyBpbnQgY29sbGVjdF9kaWZmX2NiKGxvbmcgc3RhcnRfYSwgbG9uZyBjb3VudF9hLAorCQkJICAgbG9uZyBzdGFydF9iLCBsb25nIGNvdW50X2IsCisJCQkgICB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjb2xsZWN0X2RpZmZfY2JkYXRhICpkID0gZGF0YTsKKworCWlmIChjb3VudF9hID49IDApCisJCXJhbmdlX3NldF9hcHBlbmQoJmQtPmRpZmYtPnBhcmVudCwgc3RhcnRfYSwgc3RhcnRfYSArIGNvdW50X2EpOworCWlmIChjb3VudF9iID49IDApCisJCXJhbmdlX3NldF9hcHBlbmQoJmQtPmRpZmYtPnRhcmdldCwgc3RhcnRfYiwgc3RhcnRfYiArIGNvdW50X2IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNvbGxlY3RfZGlmZihtbWZpbGVfdCAqcGFyZW50LCBtbWZpbGVfdCAqdGFyZ2V0LCBzdHJ1Y3QgZGlmZl9yYW5nZXMgKm91dCkKK3sKKwlzdHJ1Y3QgY29sbGVjdF9kaWZmX2NiZGF0YSBjYmRhdGEgPSB7TlVMTH07CisJeHBwYXJhbV90IHhwcDsKKwl4ZGVtaXRjb25mX3QgeGVjZmc7CisJeGRlbWl0Y2JfdCBlY2I7CisKKwltZW1zZXQoJnhwcCwgMCwgc2l6ZW9mKHhwcCkpOworCW1lbXNldCgmeGVjZmcsIDAsIHNpemVvZih4ZWNmZykpOworCXhlY2ZnLmN0eGxlbiA9IHhlY2ZnLmludGVyaHVua2N0eGxlbiA9IDA7CisKKwljYmRhdGEuZGlmZiA9IG91dDsKKwl4ZWNmZy5odW5rX2Z1bmMgPSBjb2xsZWN0X2RpZmZfY2I7CisJbWVtc2V0KCZlY2IsIDAsIHNpemVvZihlY2IpKTsKKwllY2IucHJpdiA9ICZjYmRhdGE7CisJeGRpX2RpZmYocGFyZW50LCB0YXJnZXQsICZ4cHAsICZ4ZWNmZywgJmVjYik7Cit9CisKKy8qCisgKiBUaGVzZSBhcmUgaGFuZHkgZm9yIGRlYnVnZ2luZy4gIFJlbW92aW5nIHRoZW0gd2l0aCAjaWYgMCBzaWxlbmNlcworICogdGhlICJ1bnVzZWQgZnVuY3Rpb24iIHdhcm5pbmcuCisgKi8KKyNpZiAwCitzdGF0aWMgdm9pZCBkdW1wX3JhbmdlX3NldChzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywgY29uc3QgY2hhciAqZGVzYykKK3sKKwlpbnQgaTsKKwlwcmludGYoInJhbmdlIHNldCAlcyAoJWQgaXRlbXMpOlxuIiwgZGVzYywgcnMtPm5yKTsKKwlmb3IgKGkgPSAwOyBpIDwgcnMtPm5yOyBpKyspCisJCXByaW50ZigiXHRbJWxkLCVsZF1cbiIsIHJzLT5yYW5nZXNbaV0uc3RhcnQsIHJzLT5yYW5nZXNbaV0uZW5kKTsKK30KKworc3RhdGljIHZvaWQgZHVtcF9saW5lX2xvZ19kYXRhKHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyKQoreworCWNoYXIgYnVmWzQwOTZdOworCXdoaWxlIChyKSB7CisJCXNucHJpbnRmKGJ1ZiwgNDA5NiwgImZpbGUgJXNcbiIsIHItPnBhdGgpOworCQlkdW1wX3JhbmdlX3NldCgmci0+cmFuZ2VzLCBidWYpOworCQlyID0gci0+bmV4dDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBfZGlmZl9yYW5nZXMoc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmLCBjb25zdCBjaGFyICpkZXNjKQoreworCWludCBpOworCWFzc2VydChkaWZmLT5wYXJlbnQubnIgPT0gZGlmZi0+dGFyZ2V0Lm5yKTsKKwlwcmludGYoImRpZmYgcmFuZ2VzICVzICglZCBpdGVtcyk6XG4iLCBkZXNjLCBkaWZmLT5wYXJlbnQubnIpOworCXByaW50ZigiXHRwYXJlbnRcdHRhcmdldFxuIik7CisJZm9yIChpID0gMDsgaSA8IGRpZmYtPnBhcmVudC5ucjsgaSsrKSB7CisJCXByaW50ZigiXHRbJWxkLCVsZF1cdFslbGQsJWxkXVxuIiwKKwkJICAgICAgIGRpZmYtPnBhcmVudC5yYW5nZXNbaV0uc3RhcnQsCisJCSAgICAgICBkaWZmLT5wYXJlbnQucmFuZ2VzW2ldLmVuZCwKKwkJICAgICAgIGRpZmYtPnRhcmdldC5yYW5nZXNbaV0uc3RhcnQsCisJCSAgICAgICBkaWZmLT50YXJnZXQucmFuZ2VzW2ldLmVuZCk7CisJfQorfQorI2VuZGlmCisKKworc3RhdGljIGludCByYW5nZXNfb3ZlcmxhcChzdHJ1Y3QgcmFuZ2UgKmEsIHN0cnVjdCByYW5nZSAqYikKK3sKKwlyZXR1cm4gIShhLT5lbmQgPD0gYi0+c3RhcnQgfHwgYi0+ZW5kIDw9IGEtPnN0YXJ0KTsKK30KKworLyoKKyAqIEdpdmVuIGEgZGlmZiBhbmQgdGhlIHNldCBvZiBpbnRlcmVzdGluZyByYW5nZXMsIGRldGVybWluZSBhbGwgaHVua3MKKyAqIG9mIHRoZSBkaWZmIHdoaWNoIHRvdWNoIChvdmVybGFwKSBhdCBsZWFzdCBvbmUgb2YgdGhlIGludGVyZXN0aW5nCisgKiByYW5nZXMgaW4gdGhlIHRhcmdldC4KKyAqLworc3RhdGljIHZvaWQgZGlmZl9yYW5nZXNfZmlsdGVyX3RvdWNoZWQoc3RydWN0IGRpZmZfcmFuZ2VzICpvdXQsCisJCQkJICAgICAgIHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZiwKKwkJCQkgICAgICAgc3RydWN0IHJhbmdlX3NldCAqcnMpCit7CisJaW50IGksIGogPSAwOworCisJYXNzZXJ0KG91dC0+dGFyZ2V0Lm5yID09IDApOworCisJZm9yIChpID0gMDsgaSA8IGRpZmYtPnRhcmdldC5ucjsgaSsrKSB7CisJCXdoaWxlIChkaWZmLT50YXJnZXQucmFuZ2VzW2ldLnN0YXJ0ID4gcnMtPnJhbmdlc1tqXS5lbmQpIHsKKwkJCWorKzsKKwkJCWlmIChqID09IHJzLT5ucikKKwkJCQlyZXR1cm47CisJCX0KKwkJaWYgKHJhbmdlc19vdmVybGFwKCZkaWZmLT50YXJnZXQucmFuZ2VzW2ldLCAmcnMtPnJhbmdlc1tqXSkpIHsKKwkJCXJhbmdlX3NldF9hcHBlbmQoJm91dC0+cGFyZW50LAorCQkJCQkgZGlmZi0+cGFyZW50LnJhbmdlc1tpXS5zdGFydCwKKwkJCQkJIGRpZmYtPnBhcmVudC5yYW5nZXNbaV0uZW5kKTsKKwkJCXJhbmdlX3NldF9hcHBlbmQoJm91dC0+dGFyZ2V0LAorCQkJCQkgZGlmZi0+dGFyZ2V0LnJhbmdlc1tpXS5zdGFydCwKKwkJCQkJIGRpZmYtPnRhcmdldC5yYW5nZXNbaV0uZW5kKTsKKwkJfQorCX0KK30KKworLyoKKyAqIEFkanVzdCB0aGUgbGluZSBjb3VudHMgaW4gJ3JzJyB0byBhY2NvdW50IGZvciB0aGUgbGluZXMKKyAqIGFkZGVkL3JlbW92ZWQgaW4gdGhlIGRpZmYuCisgKi8KK3N0YXRpYyB2b2lkIHJhbmdlX3NldF9zaGlmdF9kaWZmKHN0cnVjdCByYW5nZV9zZXQgKm91dCwKKwkJCQkgc3RydWN0IHJhbmdlX3NldCAqcnMsCisJCQkJIHN0cnVjdCBkaWZmX3JhbmdlcyAqZGlmZikKK3sKKwlpbnQgaSwgaiA9IDA7CisJbG9uZyBvZmZzZXQgPSAwOworCXN0cnVjdCByYW5nZSAqc3JjID0gcnMtPnJhbmdlczsKKwlzdHJ1Y3QgcmFuZ2UgKnRhcmdldCA9IGRpZmYtPnRhcmdldC5yYW5nZXM7CisJc3RydWN0IHJhbmdlICpwYXJlbnQgPSBkaWZmLT5wYXJlbnQucmFuZ2VzOworCisJZm9yIChpID0gMDsgaSA8IHJzLT5ucjsgaSsrKSB7CisJCXdoaWxlIChqIDwgZGlmZi0+dGFyZ2V0Lm5yICYmIHNyY1tpXS5zdGFydCA+PSB0YXJnZXRbal0uc3RhcnQpIHsKKwkJCW9mZnNldCArPSAocGFyZW50W2pdLmVuZC1wYXJlbnRbal0uc3RhcnQpCisJCQkJLSAodGFyZ2V0W2pdLmVuZC10YXJnZXRbal0uc3RhcnQpOworCQkJaisrOworCQl9CisJCXJhbmdlX3NldF9hcHBlbmQob3V0LCBzcmNbaV0uc3RhcnQrb2Zmc2V0LCBzcmNbaV0uZW5kK29mZnNldCk7CisJfQorfQorCisvKgorICogR2l2ZW4gYSBkaWZmIGFuZCB0aGUgc2V0IG9mIGludGVyZXN0aW5nIHJhbmdlcywgbWFwIHRoZSByYW5nZXMKKyAqIGFjcm9zcyB0aGUgZGlmZi4gIFRoYXQgaXM6IG9ic2VydmUgdGhhdCB0aGUgdGFyZ2V0IGNvbW1pdCB0YWtlcworICogYmxhbWUgZm9yIGFsbCB0aGUgKyAodGFyZ2V0LXNpZGUpIHJhbmdlcy4gIFNvIGZvciBldmVyeSBwYWlyIG9mCisgKiByYW5nZXMgaW4gdGhlIGRpZmYgdGhhdCB3YXMgdG91Y2hlZCwgd2UgcmVtb3ZlIHRoZSBsYXR0ZXIgYW5kIGFkZAorICogaXRzIHBhcmVudCBzaWRlLgorICovCitzdGF0aWMgdm9pZCByYW5nZV9zZXRfbWFwX2Fjcm9zc19kaWZmKHN0cnVjdCByYW5nZV9zZXQgKm91dCwKKwkJCQkgICAgICBzdHJ1Y3QgcmFuZ2Vfc2V0ICpycywKKwkJCQkgICAgICBzdHJ1Y3QgZGlmZl9yYW5nZXMgKmRpZmYsCisJCQkJICAgICAgc3RydWN0IGRpZmZfcmFuZ2VzICoqdG91Y2hlZF9vdXQpCit7CisJc3RydWN0IGRpZmZfcmFuZ2VzICp0b3VjaGVkID0geG1hbGxvYyhzaXplb2YoKnRvdWNoZWQpKTsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRtcDEgPSBSQU5HRV9TRVRfSU5JVDsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRtcDIgPSBSQU5HRV9TRVRfSU5JVDsKKworCWRpZmZfcmFuZ2VzX2luaXQodG91Y2hlZCk7CisJZGlmZl9yYW5nZXNfZmlsdGVyX3RvdWNoZWQodG91Y2hlZCwgZGlmZiwgcnMpOworCXJhbmdlX3NldF9kaWZmZXJlbmNlKCZ0bXAxLCBycywgJnRvdWNoZWQtPnRhcmdldCk7CisJcmFuZ2Vfc2V0X3NoaWZ0X2RpZmYoJnRtcDIsICZ0bXAxLCBkaWZmKTsKKwlyYW5nZV9zZXRfdW5pb24ob3V0LCAmdG1wMiwgJnRvdWNoZWQtPnBhcmVudCk7CisJcmFuZ2Vfc2V0X3JlbGVhc2UoJnRtcDEpOworCXJhbmdlX3NldF9yZWxlYXNlKCZ0bXAyKTsKKworCSp0b3VjaGVkX291dCA9IHRvdWNoZWQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY29tbWl0ICpjaGVja19zaW5nbGVfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cykKK3sKKwlzdHJ1Y3Qgb2JqZWN0ICpjb21taXQgPSBOVUxMOworCWludCBmb3VuZCA9IC0xOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHJldnMtPnBlbmRpbmcubnI7IGkrKykgeworCQlzdHJ1Y3Qgb2JqZWN0ICpvYmogPSByZXZzLT5wZW5kaW5nLm9iamVjdHNbaV0uaXRlbTsKKwkJaWYgKG9iai0+ZmxhZ3MgJiBVTklOVEVSRVNUSU5HKQorCQkJY29udGludWU7CisJCXdoaWxlIChvYmotPnR5cGUgPT0gT0JKX1RBRykKKwkJCW9iaiA9IGRlcmVmX3RhZyhvYmosIE5VTEwsIDApOworCQlpZiAob2JqLT50eXBlICE9IE9CSl9DT01NSVQpCisJCQlkaWUoIk5vbiBjb21taXQgJXM/IiwgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ldLm5hbWUpOworCQlpZiAoY29tbWl0KQorCQkJZGllKCJNb3JlIHRoYW4gb25lIGNvbW1pdCB0byBkaWcgZnJvbTogJXMgYW5kICVzPyIsCisJCQkgICAgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ldLm5hbWUsCisJCQkgICAgcmV2cy0+cGVuZGluZy5vYmplY3RzW2ZvdW5kXS5uYW1lKTsKKwkJY29tbWl0ID0gb2JqOworCQlmb3VuZCA9IGk7CisJfQorCisJaWYgKCFjb21taXQpCisJCWRpZSgiTm8gY29tbWl0IHNwZWNpZmllZD8iKTsKKworCXJldHVybiAoc3RydWN0IGNvbW1pdCAqKSBjb21taXQ7Cit9CisKK3N0YXRpYyB2b2lkIGZpbGxfYmxvYl9zaGExKHN0cnVjdCBjb21taXQgKmNvbW1pdCwgc3RydWN0IGRpZmZfZmlsZXNwZWMgKnNwZWMpCit7CisJdW5zaWduZWQgbW9kZTsKKwl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOworCisJaWYgKGdldF90cmVlX2VudHJ5KGNvbW1pdC0+b2JqZWN0LnNoYTEsIHNwZWMtPnBhdGgsCisJCQkgICBzaGExLCAmbW9kZSkpCisJCWRpZSgiVGhlcmUgaXMgbm8gcGF0aCAlcyBpbiB0aGUgY29tbWl0Iiwgc3BlYy0+cGF0aCk7CisJZmlsbF9maWxlc3BlYyhzcGVjLCBzaGExLCAxLCBtb2RlKTsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgZmlsbF9saW5lX2VuZHMoc3RydWN0IGRpZmZfZmlsZXNwZWMgKnNwZWMsIGxvbmcgKmxpbmVzLAorCQkJICAgdW5zaWduZWQgbG9uZyAqKmxpbmVfZW5kcykKK3sKKwlpbnQgbnVtID0gMCwgc2l6ZSA9IDUwOworCWxvbmcgY3VyID0gMDsKKwl1bnNpZ25lZCBsb25nICplbmRzID0gTlVMTDsKKwljaGFyICpkYXRhID0gTlVMTDsKKworCWlmIChkaWZmX3BvcHVsYXRlX2ZpbGVzcGVjKHNwZWMsIDApKQorCQlkaWUoIkNhbm5vdCByZWFkIGJsb2IgJXMiLCBzaGExX3RvX2hleChzcGVjLT5zaGExKSk7CisKKwllbmRzID0geG1hbGxvYyhzaXplICogc2l6ZW9mKCplbmRzKSk7CisJZW5kc1tjdXIrK10gPSAwOworCWRhdGEgPSBzcGVjLT5kYXRhOworCXdoaWxlIChudW0gPCBzcGVjLT5zaXplKSB7CisJCWlmIChkYXRhW251bV0gPT0gJ1xuJyB8fCBudW0gPT0gc3BlYy0+c2l6ZSAtIDEpIHsKKwkJCUFMTE9DX0dST1coZW5kcywgKGN1ciArIDEpLCBzaXplKTsKKwkJCWVuZHNbY3VyKytdID0gbnVtOworCQl9CisJCW51bSsrOworCX0KKworCS8qIHNocmluayB0aGUgYXJyYXkgdG8gZml0IHRoZSBlbGVtZW50cyAqLworCWVuZHMgPSB4cmVhbGxvYyhlbmRzLCBjdXIgKiBzaXplb2YoKmVuZHMpKTsKKwkqbGluZXMgPSBjdXItMTsKKwkqbGluZV9lbmRzID0gZW5kczsKK30KKworc3RydWN0IG50aF9saW5lX2NiIHsKKwlzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqc3BlYzsKKwlsb25nIGxpbmVzOworCXVuc2lnbmVkIGxvbmcgKmxpbmVfZW5kczsKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpudGhfbGluZSh2b2lkICpkYXRhLCBsb25nIGxpbmUpCit7CisJc3RydWN0IG50aF9saW5lX2NiICpkID0gZGF0YTsKKwlhc3NlcnQoZCAmJiBsaW5lIDw9IGQtPmxpbmVzKTsKKwlhc3NlcnQoZC0+c3BlYyAmJiBkLT5zcGVjLT5kYXRhKTsKKworCWlmIChsaW5lID09IDApCisJCXJldHVybiAoY2hhciAqKWQtPnNwZWMtPmRhdGE7CisJZWxzZQorCQlyZXR1cm4gKGNoYXIgKilkLT5zcGVjLT5kYXRhICsgZC0+bGluZV9lbmRzW2xpbmVdICsgMTsKK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK3BhcnNlX2xpbmVzKHN0cnVjdCBjb21taXQgKmNvbW1pdCwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3Qgc3RyaW5nX2xpc3QgKmFyZ3MpCit7CisJbG9uZyBsaW5lcyA9IDA7CisJdW5zaWduZWQgbG9uZyAqZW5kcyA9IE5VTEw7CisJc3RydWN0IG50aF9saW5lX2NiIGNiX2RhdGE7CisJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW07CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlcyA9IE5VTEw7CisKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKGl0ZW0sIGFyZ3MpIHsKKwkJY29uc3QgY2hhciAqbmFtZV9wYXJ0LCAqcmFuZ2VfcGFydDsKKwkJY2hhciAqZnVsbF9uYW1lOworCQlzdHJ1Y3QgZGlmZl9maWxlc3BlYyAqc3BlYzsKKwkJbG9uZyBiZWdpbiA9IDAsIGVuZCA9IDA7CisKKwkJbmFtZV9wYXJ0ID0gc2tpcF9yYW5nZV9hcmcoaXRlbS0+c3RyaW5nKTsKKwkJaWYgKCFuYW1lX3BhcnQgfHwgKm5hbWVfcGFydCAhPSAnOicgfHwgIW5hbWVfcGFydFsxXSkKKwkJCWRpZSgiLUwgYXJndW1lbnQgJyVzJyBub3Qgb2YgdGhlIGZvcm0gc3RhcnQsZW5kOmZpbGUiLAorCQkJICAgIGl0ZW0tPnN0cmluZyk7CisJCXJhbmdlX3BhcnQgPSB4c3RybmR1cChpdGVtLT5zdHJpbmcsIG5hbWVfcGFydCAtIGl0ZW0tPnN0cmluZyk7CisJCW5hbWVfcGFydCsrOworCisJCWZ1bGxfbmFtZSA9IHByZWZpeF9wYXRoKHByZWZpeCwgcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwLAorCQkJCQluYW1lX3BhcnQpOworCisJCXNwZWMgPSBhbGxvY19maWxlc3BlYyhmdWxsX25hbWUpOworCQlmaWxsX2Jsb2Jfc2hhMShjb21taXQsIHNwZWMpOworCQlmaWxsX2xpbmVfZW5kcyhzcGVjLCAmbGluZXMsICZlbmRzKTsKKwkJY2JfZGF0YS5zcGVjID0gc3BlYzsKKwkJY2JfZGF0YS5saW5lcyA9IGxpbmVzOworCQljYl9kYXRhLmxpbmVfZW5kcyA9IGVuZHM7CisKKwkJaWYgKHBhcnNlX3JhbmdlX2FyZyhyYW5nZV9wYXJ0LCBudGhfbGluZSwgJmNiX2RhdGEsCisJCQkJICAgIGxpbmVzLCAmYmVnaW4sICZlbmQsCisJCQkJICAgIGZ1bGxfbmFtZSkpCisJCQlkaWUoIm1hbGZvcm1lZCAtTCBhcmd1bWVudCAnJXMnIiwgcmFuZ2VfcGFydCk7CisJCWlmIChiZWdpbiA8IDEpCisJCQliZWdpbiA9IDE7CisJCWlmIChlbmQgPCAxKQorCQkJZW5kID0gbGluZXM7CisJCWJlZ2luLS07CisJCWlmIChsaW5lcyA8IGVuZCB8fCBsaW5lcyA8IGJlZ2luKQorCQkJZGllKCJmaWxlICVzIGhhcyBvbmx5ICVsZCBsaW5lcyIsIG5hbWVfcGFydCwgbGluZXMpOworCQlsaW5lX2xvZ19kYXRhX2luc2VydCgmcmFuZ2VzLCBmdWxsX25hbWUsIGJlZ2luLCBlbmQpOworCisJCWZyZWVfZmlsZXNwZWMoc3BlYyk7CisJCWZyZWUoZW5kcyk7CisJCWVuZHMgPSBOVUxMOworCX0KKworCXJldHVybiByYW5nZXM7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbGluZV9sb2dfZGF0YV9jb3B5X29uZShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0geG1hbGxvYyhzaXplb2YoKnJldCkpOworCisJYXNzZXJ0KHIpOworCWxpbmVfbG9nX2RhdGFfaW5pdChyZXQpOworCXJhbmdlX3NldF9jb3B5KCZyZXQtPnJhbmdlcywgJnItPnJhbmdlcyk7CisKKwlyZXQtPnBhdGggPSB4c3RyZHVwKHItPnBhdGgpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICoKK2xpbmVfbG9nX2RhdGFfY29weShzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcikKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0gTlVMTDsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqdG1wID0gTlVMTCwgKnByZXYgPSBOVUxMOworCisJYXNzZXJ0KHIpOworCXJldCA9IHRtcCA9IHByZXYgPSBsaW5lX2xvZ19kYXRhX2NvcHlfb25lKHIpOworCXIgPSByLT5uZXh0OworCXdoaWxlIChyKSB7CisJCXRtcCA9IGxpbmVfbG9nX2RhdGFfY29weV9vbmUocik7CisJCXByZXYtPm5leHQgPSB0bXA7CisJCXByZXYgPSB0bXA7CisJCXIgPSByLT5uZXh0OworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qIG1lcmdlIHR3byByYW5nZSBzZXRzIGFjcm9zcyBmaWxlcyAqLworc3RhdGljIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpsaW5lX2xvZ19kYXRhX21lcmdlKHN0cnVjdCBsaW5lX2xvZ19kYXRhICphLAorCQkJCQkJIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpiKQoreworCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpoZWFkID0gTlVMTCwgKipwcCA9ICZoZWFkOworCisJd2hpbGUgKGEgfHwgYikgeworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqc3JjOworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqc3JjMiA9IE5VTEw7CisJCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpkOworCQlpbnQgY21wOworCQlpZiAoIWEpCisJCQljbXAgPSAxOworCQllbHNlIGlmICghYikKKwkJCWNtcCA9IC0xOworCQllbHNlCisJCQljbXAgPSBzdHJjbXAoYS0+cGF0aCwgYi0+cGF0aCk7CisJCWlmIChjbXAgPCAwKSB7CisJCQlzcmMgPSBhOworCQkJYSA9IGEtPm5leHQ7CisJCX0gZWxzZSBpZiAoY21wID09IDApIHsKKwkJCXNyYyA9IGE7CisJCQlhID0gYS0+bmV4dDsKKwkJCXNyYzIgPSBiOworCQkJYiA9IGItPm5leHQ7CisJCX0gZWxzZSB7CisJCQlzcmMgPSBiOworCQkJYiA9IGItPm5leHQ7CisJCX0KKwkJZCA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBsaW5lX2xvZ19kYXRhKSk7CisJCWxpbmVfbG9nX2RhdGFfaW5pdChkKTsKKwkJZC0+cGF0aCA9IHhzdHJkdXAoc3JjLT5wYXRoKTsKKwkJKnBwID0gZDsKKwkJcHAgPSAmZC0+bmV4dDsKKwkJaWYgKHNyYzIpCisJCQlyYW5nZV9zZXRfdW5pb24oJmQtPnJhbmdlcywgJnNyYy0+cmFuZ2VzLCAmc3JjMi0+cmFuZ2VzKTsKKwkJZWxzZQorCQkJcmFuZ2Vfc2V0X2NvcHkoJmQtPnJhbmdlcywgJnNyYy0+cmFuZ2VzKTsKKwl9CisKKwlyZXR1cm4gaGVhZDsKK30KKworc3RhdGljIHZvaWQgYWRkX2xpbmVfcmFuZ2Uoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCisJCQkgICBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKm9sZCA9IE5VTEw7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKm5ldyA9IE5VTEw7CisKKwlvbGQgPSBsb29rdXBfZGVjb3JhdGlvbigmcmV2cy0+bGluZV9sb2dfZGF0YSwgJmNvbW1pdC0+b2JqZWN0KTsKKwlpZiAob2xkICYmIHJhbmdlKSB7CisJCW5ldyA9IGxpbmVfbG9nX2RhdGFfbWVyZ2Uob2xkLCByYW5nZSk7CisJCWZyZWVfbGluZV9sb2dfZGF0YShvbGQpOworCX0gZWxzZSBpZiAocmFuZ2UpCisJCW5ldyA9IGxpbmVfbG9nX2RhdGFfY29weShyYW5nZSk7CisKKwlpZiAobmV3KQorCQlhZGRfZGVjb3JhdGlvbigmcmV2cy0+bGluZV9sb2dfZGF0YSwgJmNvbW1pdC0+b2JqZWN0LCBuZXcpOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl9jb21taXRfbGluZV9yYW5nZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcjsKKwlyID0gbG9va3VwX2RlY29yYXRpb24oJnJldnMtPmxpbmVfbG9nX2RhdGEsICZjb21taXQtPm9iamVjdCk7CisJaWYgKCFyKQorCQlyZXR1cm47CisJZnJlZV9saW5lX2xvZ19kYXRhKHIpOworCWFkZF9kZWNvcmF0aW9uKCZyZXZzLT5saW5lX2xvZ19kYXRhLCAmY29tbWl0LT5vYmplY3QsIE5VTEwpOworfQorCitzdGF0aWMgc3RydWN0IGxpbmVfbG9nX2RhdGEgKmxvb2t1cF9saW5lX3JhbmdlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkJICAgICAgIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmV0ID0gTlVMTDsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqZDsKKworCXJldCA9IGxvb2t1cF9kZWNvcmF0aW9uKCZyZXZzLT5saW5lX2xvZ19kYXRhLCAmY29tbWl0LT5vYmplY3QpOworCisJZm9yIChkID0gcmV0OyBkOyBkID0gZC0+bmV4dCkKKwkJcmFuZ2Vfc2V0X2NoZWNrX2ludmFyaWFudHMoJmQtPnJhbmdlcyk7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIGxpbmVfbG9nX2luaXQoc3RydWN0IHJldl9pbmZvICpyZXYsIGNvbnN0IGNoYXIgKnByZWZpeCwgc3RydWN0IHN0cmluZ19saXN0ICphcmdzKQoreworCXN0cnVjdCBjb21taXQgKmNvbW1pdCA9IE5VTEw7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlOworCisJY29tbWl0ID0gY2hlY2tfc2luZ2xlX2NvbW1pdChyZXYpOworCXJhbmdlID0gcGFyc2VfbGluZXMoY29tbWl0LCBwcmVmaXgsIGFyZ3MpOworCWFkZF9saW5lX3JhbmdlKHJldiwgY29tbWl0LCByYW5nZSk7CisKKwlpZiAoIXJldi0+ZGlmZm9wdC5kZXRlY3RfcmVuYW1lKSB7CisJCWludCBpLCBjb3VudCA9IDA7CisJCXN0cnVjdCBsaW5lX2xvZ19kYXRhICpyID0gcmFuZ2U7CisJCWNvbnN0IGNoYXIgKipwYXRoczsKKwkJd2hpbGUgKHIpIHsKKwkJCWNvdW50Kys7CisJCQlyID0gci0+bmV4dDsKKwkJfQorCQlwYXRocyA9IHhtYWxsb2MoKGNvdW50KzEpKnNpemVvZihjaGFyICopKTsKKwkJciA9IHJhbmdlOworCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworCQkJcGF0aHNbaV0gPSB4c3RyZHVwKHItPnBhdGgpOworCQkJciA9IHItPm5leHQ7CisJCX0KKwkJcGF0aHNbY291bnRdID0gTlVMTDsKKwkJaW5pdF9wYXRoc3BlYygmcmV2LT5kaWZmb3B0LnBhdGhzcGVjLCBwYXRocyk7CisJCWZyZWUocGF0aHMpOworCX0KK30KKworc3RhdGljIHZvaWQgbG9hZF90cmVlX2Rlc2Moc3RydWN0IHRyZWVfZGVzYyAqZGVzYywgdm9pZCAqKnRyZWUsCisJCQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQoreworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwkqdHJlZSA9IHJlYWRfb2JqZWN0X3dpdGhfcmVmZXJlbmNlKHNoYTEsIHRyZWVfdHlwZSwgJnNpemUsIE5VTEwpOworCWlmICghKnRyZWUpCisJCWRpZSgiVW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoc2hhMSkpOworCWluaXRfdHJlZV9kZXNjKGRlc2MsICp0cmVlLCBzaXplKTsKK30KKworc3RhdGljIGludCBjb3VudF9wYXJlbnRzKHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHMgPSBjb21taXQtPnBhcmVudHM7CisJaW50IGNvdW50ID0gMDsKKwl3aGlsZSAocGFyZW50cykgeworCQljb3VudCsrOworCQlwYXJlbnRzID0gcGFyZW50cy0+bmV4dDsKKwl9CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgdm9pZCBtb3ZlX2RpZmZfcXVldWUoc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpkc3QsCisJCQkgICAgc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpzcmMpCit7CisJYXNzZXJ0KHNyYyAhPSBkc3QpOworCW1lbWNweShkc3QsIHNyYywgc2l6ZW9mKHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCkpOworCURJRkZfUVVFVUVfQ0xFQVIoc3JjKTsKK30KKworc3RhdGljIHZvaWQgZmlsdGVyX2RpZmZzX2Zvcl9wYXRocyhzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UsIGludCBrZWVwX2RlbGV0aW9ucykKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZGlmZl9xdWV1ZV9zdHJ1Y3Qgb3V0cTsKKwlESUZGX1FVRVVFX0NMRUFSKCZvdXRxKTsKKworCWZvciAoaSA9IDA7IGkgPCBkaWZmX3F1ZXVlZF9kaWZmLm5yOyBpKyspIHsKKwkJc3RydWN0IGRpZmZfZmlsZXBhaXIgKnAgPSBkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldOworCQlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmcgPSBOVUxMOworCisJCWlmICghRElGRl9GSUxFX1ZBTElEKHAtPnR3bykpIHsKKwkJCWlmIChrZWVwX2RlbGV0aW9ucykKKwkJCQlkaWZmX3EoJm91dHEsIHApOworCQkJZWxzZQorCQkJCWRpZmZfZnJlZV9maWxlcGFpcihwKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWZvciAocmcgPSByYW5nZTsgcmc7IHJnID0gcmctPm5leHQpIHsKKwkJCWlmICghc3RyY21wKHJnLT5wYXRoLCBwLT50d28tPnBhdGgpKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChyZykKKwkJCWRpZmZfcSgmb3V0cSwgcCk7CisJCWVsc2UKKwkJCWRpZmZfZnJlZV9maWxlcGFpcihwKTsKKwl9CisJZnJlZShkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlKTsKKwlkaWZmX3F1ZXVlZF9kaWZmID0gb3V0cTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZGlmZl9taWdodF9iZV9yZW5hbWUodm9pZCkKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgZGlmZl9xdWV1ZWRfZGlmZi5ucjsgaSsrKQorCQlpZiAoIURJRkZfRklMRV9WQUxJRChkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldLT5vbmUpKSB7CisJCQkvKiBmcHJpbnRmKHN0ZGVyciwgImRpZmZfbWlnaHRfYmVfcmVuYW1lIGZvdW5kIGNyZWF0aW9uIG9mOiAlc1xuIiwgKi8KKwkJCS8qIAlkaWZmX3F1ZXVlZF9kaWZmLnF1ZXVlW2ldLT50d28tPnBhdGgpOyAqLworCQkJcmV0dXJuIDE7CisJCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcXVldWVfZGlmZnMoc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlLAorCQkJc3RydWN0IGRpZmZfb3B0aW9ucyAqb3B0LAorCQkJc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpxdWV1ZSwKKwkJCXN0cnVjdCBjb21taXQgKmNvbW1pdCwgc3RydWN0IGNvbW1pdCAqcGFyZW50KQoreworCXZvaWQgKnRyZWUxID0gTlVMTCwgKnRyZWUyID0gTlVMTDsKKwlzdHJ1Y3QgdHJlZV9kZXNjIGRlc2MxLCBkZXNjMjsKKworCWFzc2VydChjb21taXQpOworCWxvYWRfdHJlZV9kZXNjKCZkZXNjMiwgJnRyZWUyLCBjb21taXQtPnRyZWUtPm9iamVjdC5zaGExKTsKKwlpZiAocGFyZW50KQorCQlsb2FkX3RyZWVfZGVzYygmZGVzYzEsICZ0cmVlMSwgcGFyZW50LT50cmVlLT5vYmplY3Quc2hhMSk7CisJZWxzZQorCQlpbml0X3RyZWVfZGVzYygmZGVzYzEsICIiLCAwKTsKKworCURJRkZfUVVFVUVfQ0xFQVIoJmRpZmZfcXVldWVkX2RpZmYpOworCWRpZmZfdHJlZSgmZGVzYzEsICZkZXNjMiwgIiIsIG9wdCk7CisJaWYgKG9wdC0+ZGV0ZWN0X3JlbmFtZSkgeworCQlmaWx0ZXJfZGlmZnNfZm9yX3BhdGhzKHJhbmdlLCAxKTsKKwkJaWYgKGRpZmZfbWlnaHRfYmVfcmVuYW1lKCkpCisJCQlkaWZmY29yZV9zdGQob3B0KTsKKwkJZmlsdGVyX2RpZmZzX2Zvcl9wYXRocyhyYW5nZSwgMCk7CisJfQorCW1vdmVfZGlmZl9xdWV1ZShxdWV1ZSwgJmRpZmZfcXVldWVkX2RpZmYpOworCisJaWYgKHRyZWUxKQorCQlmcmVlKHRyZWUxKTsKKwlpZiAodHJlZTIpCisJCWZyZWUodHJlZTIpOworfQorCitzdGF0aWMgY2hhciAqZ2V0X250aF9saW5lKGxvbmcgbGluZSwgdW5zaWduZWQgbG9uZyAqZW5kcywgdm9pZCAqZGF0YSkKK3sKKwlpZiAobGluZSA9PSAwKQorCQlyZXR1cm4gKGNoYXIgKilkYXRhOworCWVsc2UKKwkJcmV0dXJuIChjaGFyICopZGF0YSArIGVuZHNbbGluZV0gKyAxOworfQorCitzdGF0aWMgdm9pZCBwcmludF9saW5lKGNvbnN0IGNoYXIgKnByZWZpeCwgY2hhciBmaXJzdCwKKwkJICAgICAgIGxvbmcgbGluZSwgdW5zaWduZWQgbG9uZyAqZW5kcywgdm9pZCAqZGF0YSwKKwkJICAgICAgIGNvbnN0IGNoYXIgKmNvbG9yLCBjb25zdCBjaGFyICpyZXNldCkKK3sKKwljaGFyICpiZWdpbiA9IGdldF9udGhfbGluZShsaW5lLCBlbmRzLCBkYXRhKTsKKwljaGFyICplbmQgPSBnZXRfbnRoX2xpbmUobGluZSsxLCBlbmRzLCBkYXRhKTsKKwlpbnQgaGFkX25sID0gMDsKKworCWlmIChlbmQgPiBiZWdpbiAmJiBlbmRbLTFdID09ICdcbicpIHsKKwkJZW5kLS07CisJCWhhZF9ubCA9IDE7CisJfQorCisJZnB1dHMocHJlZml4LCBzdGRvdXQpOworCWZwdXRzKGNvbG9yLCBzdGRvdXQpOworCXB1dGNoYXIoZmlyc3QpOworCWZ3cml0ZShiZWdpbiwgMSwgZW5kLWJlZ2luLCBzdGRvdXQpOworCWZwdXRzKHJlc2V0LCBzdGRvdXQpOworCXB1dGNoYXIoJ1xuJyk7CisJaWYgKCFoYWRfbmwpCisJCWZwdXRzKCJcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlXG4iLCBzdGRvdXQpOworfQorCitzdGF0aWMgY2hhciAqb3V0cHV0X3ByZWZpeChzdHJ1Y3QgZGlmZl9vcHRpb25zICpvcHQpCit7CisJY2hhciAqcHJlZml4ID0gIiI7CisKKwlpZiAob3B0LT5vdXRwdXRfcHJlZml4KSB7CisJCXN0cnVjdCBzdHJidWYgKnNiID0gb3B0LT5vdXRwdXRfcHJlZml4KG9wdCwgb3B0LT5vdXRwdXRfcHJlZml4X2RhdGEpOworCQlwcmVmaXggPSBzYi0+YnVmOworCX0KKworCXJldHVybiBwcmVmaXg7Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBfZGlmZl9oYWNreV9vbmUoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSkKK3sKKwlpbnQgaSwgaiA9IDA7CisJbG9uZyBwX2xpbmVzLCB0X2xpbmVzOworCXVuc2lnbmVkIGxvbmcgKnBfZW5kcyA9IE5VTEwsICp0X2VuZHMgPSBOVUxMOworCXN0cnVjdCBkaWZmX2ZpbGVwYWlyICpwYWlyID0gcmFuZ2UtPnBhaXI7CisJc3RydWN0IGRpZmZfcmFuZ2VzICpkaWZmID0gJnJhbmdlLT5kaWZmOworCisJc3RydWN0IGRpZmZfb3B0aW9ucyAqb3B0ID0gJnJldi0+ZGlmZm9wdDsKKwljaGFyICpwcmVmaXggPSBvdXRwdXRfcHJlZml4KG9wdCk7CisJY29uc3QgY2hhciAqY19yZXNldCA9IGRpZmZfZ2V0X2NvbG9yKG9wdC0+dXNlX2NvbG9yLCBESUZGX1JFU0VUKTsKKwljb25zdCBjaGFyICpjX2ZyYWcgPSBkaWZmX2dldF9jb2xvcihvcHQtPnVzZV9jb2xvciwgRElGRl9GUkFHSU5GTyk7CisJY29uc3QgY2hhciAqY19tZXRhID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfTUVUQUlORk8pOworCWNvbnN0IGNoYXIgKmNfb2xkID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfRklMRV9PTEQpOworCWNvbnN0IGNoYXIgKmNfbmV3ID0gZGlmZl9nZXRfY29sb3Iob3B0LT51c2VfY29sb3IsIERJRkZfRklMRV9ORVcpOworCWNvbnN0IGNoYXIgKmNfcGxhaW4gPSBkaWZmX2dldF9jb2xvcihvcHQtPnVzZV9jb2xvciwgRElGRl9QTEFJTik7CisKKwlpZiAoIXBhaXIgfHwgIWRpZmYpCisJCXJldHVybjsKKworCWlmIChwYWlyLT5vbmUtPnNoYTFfdmFsaWQpCisJCWZpbGxfbGluZV9lbmRzKHBhaXItPm9uZSwgJnBfbGluZXMsICZwX2VuZHMpOworCWZpbGxfbGluZV9lbmRzKHBhaXItPnR3bywgJnRfbGluZXMsICZ0X2VuZHMpOworCisJcHJpbnRmKCIlcyVzZGlmZiAtLWdpdCBhLyVzIGIvJXMlc1xuIiwgcHJlZml4LCBjX21ldGEsIHBhaXItPm9uZS0+cGF0aCwgcGFpci0+dHdvLT5wYXRoLCBjX3Jlc2V0KTsKKwlwcmludGYoIiVzJXMtLS0gJXMlcyVzXG4iLCBwcmVmaXgsIGNfbWV0YSwKKwkgICAgICAgcGFpci0+b25lLT5zaGExX3ZhbGlkID8gImEvIiA6ICIiLAorCSAgICAgICBwYWlyLT5vbmUtPnNoYTFfdmFsaWQgPyBwYWlyLT5vbmUtPnBhdGggOiAiL2Rldi9udWxsIiwKKwkgICAgICAgY19yZXNldCk7CisJcHJpbnRmKCIlcyVzKysrIGIvJXMlc1xuIiwgcHJlZml4LCBjX21ldGEsIHBhaXItPnR3by0+cGF0aCwgY19yZXNldCk7CisJZm9yIChpID0gMDsgaSA8IHJhbmdlLT5yYW5nZXMubnI7IGkrKykgeworCQlsb25nIHBfc3RhcnQsIHBfZW5kOworCQlsb25nIHRfc3RhcnQgPSByYW5nZS0+cmFuZ2VzLnJhbmdlc1tpXS5zdGFydDsKKwkJbG9uZyB0X2VuZCA9IHJhbmdlLT5yYW5nZXMucmFuZ2VzW2ldLmVuZDsKKwkJbG9uZyB0X2N1ciA9IHRfc3RhcnQ7CisJCWludCBqX2xhc3Q7CisKKwkJd2hpbGUgKGogPCBkaWZmLT50YXJnZXQubnIgJiYgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5lbmQgPCB0X3N0YXJ0KQorCQkJaisrOworCQlpZiAoaiA9PSBkaWZmLT50YXJnZXQubnIgfHwgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydCA+IHRfZW5kKQorCQkJY29udGludWU7CisKKwkJLyogU2NhbiBhaGVhZCB0byBkZXRlcm1pbmUgdGhlIGxhc3QgZGlmZiB0aGF0IGZhbGxzIGluIHRoaXMgcmFuZ2UgKi8KKwkJal9sYXN0ID0gajsKKwkJd2hpbGUgKGpfbGFzdCA8IGRpZmYtPnRhcmdldC5uciAmJiBkaWZmLT50YXJnZXQucmFuZ2VzW2pfbGFzdF0uc3RhcnQgPCB0X2VuZCkKKwkJCWpfbGFzdCsrOworCQlpZiAoal9sYXN0ID4gaikKKwkJCWpfbGFzdC0tOworCisJCS8qCisJCSAqIENvbXB1dGUgcGFyZW50IGh1bmsgaGVhZGVyczogd2Uga25vdyB0aGF0IHRoZSBkaWZmCisJCSAqIGhhcyB0aGUgY29ycmVjdCBsaW5lIG51bWJlcnMgKGJ1dCBub3QgYWxsIGh1bmtzKS4KKwkJICogU28gaXQgc3VmZmljZXMgdG8gc2hpZnQgdGhlIHN0YXJ0L2VuZCBhY2NvcmRpbmcgdG8KKwkJICogdGhlIGxpbmUgbnVtYmVycyBvZiB0aGUgZmlyc3QvbGFzdCBodW5rKHMpIHRoYXQKKwkJICogZmFsbCBpbiB0aGlzIHJhbmdlLgorCQkgKi8KKwkJaWYgKHRfc3RhcnQgPCBkaWZmLT50YXJnZXQucmFuZ2VzW2pdLnN0YXJ0KQorCQkJcF9zdGFydCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uc3RhcnQgLSAoZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydC10X3N0YXJ0KTsKKwkJZWxzZQorCQkJcF9zdGFydCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uc3RhcnQ7CisJCWlmICh0X2VuZCA+IGRpZmYtPnRhcmdldC5yYW5nZXNbal9sYXN0XS5lbmQpCisJCQlwX2VuZCA9IGRpZmYtPnBhcmVudC5yYW5nZXNbal9sYXN0XS5lbmQgKyAodF9lbmQtZGlmZi0+dGFyZ2V0LnJhbmdlc1tqX2xhc3RdLmVuZCk7CisJCWVsc2UKKwkJCXBfZW5kID0gZGlmZi0+cGFyZW50LnJhbmdlc1tqX2xhc3RdLmVuZDsKKworCQlpZiAoIXBfc3RhcnQgJiYgIXBfZW5kKSB7CisJCQlwX3N0YXJ0ID0gLTE7CisJCQlwX2VuZCA9IC0xOworCQl9CisKKwkJLyogTm93IG91dHB1dCBhIGRpZmYgaHVuayBmb3IgdGhpcyByYW5nZSAqLworCQlwcmludGYoIiVzJXNAQCAtJWxkLCVsZCArJWxkLCVsZCBAQCVzXG4iLAorCQkgICAgICAgcHJlZml4LCBjX2ZyYWcsCisJCSAgICAgICBwX3N0YXJ0KzEsIHBfZW5kLXBfc3RhcnQsIHRfc3RhcnQrMSwgdF9lbmQtdF9zdGFydCwKKwkJICAgICAgIGNfcmVzZXQpOworCQl3aGlsZSAoaiA8IGRpZmYtPnRhcmdldC5uciAmJiBkaWZmLT50YXJnZXQucmFuZ2VzW2pdLnN0YXJ0IDwgdF9lbmQpIHsKKwkJCWludCBrOworCQkJZm9yICg7IHRfY3VyIDwgZGlmZi0+dGFyZ2V0LnJhbmdlc1tqXS5zdGFydDsgdF9jdXIrKykKKwkJCQlwcmludF9saW5lKHByZWZpeCwgJyAnLCB0X2N1ciwgdF9lbmRzLCBwYWlyLT50d28tPmRhdGEsCisJCQkJCSAgIGNfcGxhaW4sIGNfcmVzZXQpOworCQkJZm9yIChrID0gZGlmZi0+cGFyZW50LnJhbmdlc1tqXS5zdGFydDsgayA8IGRpZmYtPnBhcmVudC5yYW5nZXNbal0uZW5kOyBrKyspCisJCQkJcHJpbnRfbGluZShwcmVmaXgsICctJywgaywgcF9lbmRzLCBwYWlyLT5vbmUtPmRhdGEsCisJCQkJCSAgIGNfb2xkLCBjX3Jlc2V0KTsKKwkJCWZvciAoOyB0X2N1ciA8IGRpZmYtPnRhcmdldC5yYW5nZXNbal0uZW5kICYmIHRfY3VyIDwgdF9lbmQ7IHRfY3VyKyspCisJCQkJcHJpbnRfbGluZShwcmVmaXgsICcrJywgdF9jdXIsIHRfZW5kcywgcGFpci0+dHdvLT5kYXRhLAorCQkJCQkgICBjX25ldywgY19yZXNldCk7CisJCQlqKys7CisJCX0KKwkJZm9yICg7IHRfY3VyIDwgdF9lbmQ7IHRfY3VyKyspCisJCQlwcmludF9saW5lKHByZWZpeCwgJyAnLCB0X2N1ciwgdF9lbmRzLCBwYWlyLT50d28tPmRhdGEsCisJCQkJICAgY19wbGFpbiwgY19yZXNldCk7CisJfQorCisJZnJlZShwX2VuZHMpOworCWZyZWUodF9lbmRzKTsKK30KKworLyoKKyAqIE5FRURTV09SSzogbWFudWFsbHkgYnVpbGRpbmcgYSBkaWZmIGhlcmUgaXMgbm90IHRoZSBSaWdodAorICogVGhpbmcodG0pLiAgbG9nIC1MIHNob3VsZCBiZSBidWlsdCBpbnRvIHRoZSBkaWZmIHBpcGVsaW5lLgorICovCitzdGF0aWMgdm9pZCBkdW1wX2RpZmZfaGFja3koc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSkKK3sKKwlwdXRzKG91dHB1dF9wcmVmaXgoJnJldi0+ZGlmZm9wdCkpOworCXdoaWxlIChyYW5nZSkgeworCQlkdW1wX2RpZmZfaGFja3lfb25lKHJldiwgcmFuZ2UpOworCQlyYW5nZSA9IHJhbmdlLT5uZXh0OworCX0KK30KKworLyoKKyAqIFVubGlrZSBtb3N0IG90aGVyIGZ1bmN0aW9ucywgdGhpcyBkZXN0cnVjdGl2ZWx5IG9wZXJhdGVzIG9uCisgKiAncmFuZ2UnLgorICovCitzdGF0aWMgaW50IHByb2Nlc3NfZGlmZl9maWxlcGFpcihzdHJ1Y3QgcmV2X2luZm8gKnJldiwKKwkJCQkgc3RydWN0IGRpZmZfZmlsZXBhaXIgKnBhaXIsCisJCQkJIHN0cnVjdCBsaW5lX2xvZ19kYXRhICpyYW5nZSwKKwkJCQkgc3RydWN0IGRpZmZfcmFuZ2VzICoqZGlmZl9vdXQpCit7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJnID0gcmFuZ2U7CisJc3RydWN0IHJhbmdlX3NldCB0bXA7CisJc3RydWN0IGRpZmZfcmFuZ2VzIGRpZmY7CisJbW1maWxlX3QgZmlsZV9wYXJlbnQsIGZpbGVfdGFyZ2V0OworCisJYXNzZXJ0KHBhaXItPnR3by0+cGF0aCk7CisJd2hpbGUgKHJnKSB7CisJCWFzc2VydChyZy0+cGF0aCk7CisJCWlmICghc3RyY21wKHJnLT5wYXRoLCBwYWlyLT50d28tPnBhdGgpKQorCQkJYnJlYWs7CisJCXJnID0gcmctPm5leHQ7CisJfQorCisJaWYgKCFyZykKKwkJcmV0dXJuIDA7CisJaWYgKHJnLT5yYW5nZXMubnIgPT0gMCkKKwkJcmV0dXJuIDA7CisKKwlhc3NlcnQocGFpci0+dHdvLT5zaGExX3ZhbGlkKTsKKwlkaWZmX3BvcHVsYXRlX2ZpbGVzcGVjKHBhaXItPnR3bywgMCk7CisJZmlsZV90YXJnZXQucHRyID0gcGFpci0+dHdvLT5kYXRhOworCWZpbGVfdGFyZ2V0LnNpemUgPSBwYWlyLT50d28tPnNpemU7CisKKwlpZiAocGFpci0+b25lLT5zaGExX3ZhbGlkKSB7CisJCWRpZmZfcG9wdWxhdGVfZmlsZXNwZWMocGFpci0+b25lLCAwKTsKKwkJZmlsZV9wYXJlbnQucHRyID0gcGFpci0+b25lLT5kYXRhOworCQlmaWxlX3BhcmVudC5zaXplID0gcGFpci0+b25lLT5zaXplOworCX0gZWxzZSB7CisJCWZpbGVfcGFyZW50LnB0ciA9ICIiOworCQlmaWxlX3BhcmVudC5zaXplID0gMDsKKwl9CisKKwlkaWZmX3Jhbmdlc19pbml0KCZkaWZmKTsKKwljb2xsZWN0X2RpZmYoJmZpbGVfcGFyZW50LCAmZmlsZV90YXJnZXQsICZkaWZmKTsKKworCS8qIE5FRURTV09SSyBzaG91bGQgYXBwbHkgc29tZSBoZXVyaXN0aWNzIHRvIHByZXZlbnQgbWlzbWF0Y2hlcyAqLworCWZyZWUocmctPnBhdGgpOworCXJnLT5wYXRoID0geHN0cmR1cChwYWlyLT5vbmUtPnBhdGgpOworCisJcmFuZ2Vfc2V0X2luaXQoJnRtcCwgMCk7CisJcmFuZ2Vfc2V0X21hcF9hY3Jvc3NfZGlmZigmdG1wLCAmcmctPnJhbmdlcywgJmRpZmYsIGRpZmZfb3V0KTsKKwlyYW5nZV9zZXRfcmVsZWFzZSgmcmctPnJhbmdlcyk7CisJcmFuZ2Vfc2V0X21vdmUoJnJnLT5yYW5nZXMsICZ0bXApOworCisJZGlmZl9yYW5nZXNfcmVsZWFzZSgmZGlmZik7CisKKwlyZXR1cm4gKCgqZGlmZl9vdXQpLT5wYXJlbnQubnIgPiAwKTsKK30KKworc3RhdGljIHN0cnVjdCBkaWZmX2ZpbGVwYWlyICpkaWZmX2ZpbGVwYWlyX2R1cChzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpcikKK3sKKwlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqbmV3ID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IGRpZmZfZmlsZXBhaXIpKTsKKwluZXctPm9uZSA9IHBhaXItPm9uZTsKKwluZXctPnR3byA9IHBhaXItPnR3bzsKKwluZXctPm9uZS0+Y291bnQrKzsKKwluZXctPnR3by0+Y291bnQrKzsKKwlyZXR1cm4gbmV3OworfQorCitzdGF0aWMgdm9pZCBmcmVlX2RpZmZxdWV1ZXMoaW50IG4sIHN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqZHEpCit7CisJaW50IGksIGo7CisJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJZm9yIChqID0gMDsgaiA8IGRxW2ldLm5yOyBqKyspCisJCQlkaWZmX2ZyZWVfZmlsZXBhaXIoZHFbaV0ucXVldWVbal0pOworCWZyZWUoZHEpOworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfYWxsX2ZpbGVzKHN0cnVjdCBsaW5lX2xvZ19kYXRhICoqcmFuZ2Vfb3V0LAorCQkJICAgICBzdHJ1Y3QgcmV2X2luZm8gKnJldiwKKwkJCSAgICAgc3RydWN0IGRpZmZfcXVldWVfc3RydWN0ICpxdWV1ZSwKKwkJCSAgICAgc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlKQoreworCWludCBpLCBjaGFuZ2VkID0gMDsKKworCSpyYW5nZV9vdXQgPSBsaW5lX2xvZ19kYXRhX2NvcHkocmFuZ2UpOworCisJZm9yIChpID0gMDsgaSA8IHF1ZXVlLT5ucjsgaSsrKSB7CisJCXN0cnVjdCBkaWZmX3JhbmdlcyAqcGFpcmRpZmYgPSBOVUxMOworCQlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpciA9IHF1ZXVlLT5xdWV1ZVtpXTsKKwkJaWYgKHByb2Nlc3NfZGlmZl9maWxlcGFpcihyZXYsIHBhaXIsICpyYW5nZV9vdXQsICZwYWlyZGlmZikpIHsKKwkJCS8qCisJCQkgKiBTdG9yZSBhd2F5IHRoZSBkaWZmIGZvciBsYXRlciBvdXRwdXQuICBXZQorCQkJICogdHVjayBpdCBpbiB0aGUgcmFuZ2VzIHdlIGdvdCBhcyBfaW5wdXRfLAorCQkJICogc2luY2UgdGhhdCdzIHRoZSBjb21taXQgdGhhdCBjYXVzZWQgdGhlCisJCQkgKiBkaWZmLgorCQkJICoKKwkJCSAqIE5FRURTV09SSyBub3QgZW5vdWdoIHdoZW4gd2UgZ2V0IGFyb3VuZCB0bworCQkJICogZG9pbmcgc29tZXRoaW5nIGludGVyZXN0aW5nIHdpdGggbWVyZ2VzOworCQkJICogY3VycmVudGx5IGVhY2ggaW52b2NhdGlvbiBvbiBhIG1lcmdlIHBhcmVudAorCQkJICogdHJhc2hlcyB0aGUgcHJldmlvdXMgb25lJ3MgZGlmZi4KKwkJCSAqCisJCQkgKiBORUVEU1dPUksgdHJhbXBsZXMgb3ZlciBkYXRhIHN0cnVjdHVyZXMgbm90IG93bmVkIGhlcmUKKwkJCSAqLworCQkJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJnID0gcmFuZ2U7CisJCQljaGFuZ2VkKys7CisJCQl3aGlsZSAocmcgJiYgc3RyY21wKHJnLT5wYXRoLCBwYWlyLT50d28tPnBhdGgpKQorCQkJCXJnID0gcmctPm5leHQ7CisJCQlhc3NlcnQocmcpOworCQkJcmctPnBhaXIgPSBkaWZmX2ZpbGVwYWlyX2R1cChxdWV1ZS0+cXVldWVbaV0pOworCQkJbWVtY3B5KCZyZy0+ZGlmZiwgcGFpcmRpZmYsIHNpemVvZihzdHJ1Y3QgZGlmZl9yYW5nZXMpKTsKKwkJfQorCX0KKworCXJldHVybiBjaGFuZ2VkOworfQorCitpbnQgbGluZV9sb2dfcHJpbnQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UgPSBsb29rdXBfbGluZV9yYW5nZShyZXYsIGNvbW1pdCk7CisKKwlzaG93X2xvZyhyZXYpOworCWR1bXBfZGlmZl9oYWNreShyZXYsIHJhbmdlKTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBwcm9jZXNzX3Jhbmdlc19vcmRpbmFyeV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwKKwkJCQkJICBzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UpCit7CisJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGlmZl9xdWV1ZV9zdHJ1Y3QgcXVldWU7CisJc3RydWN0IGxpbmVfbG9nX2RhdGEgKnBhcmVudF9yYW5nZTsKKwlpbnQgY2hhbmdlZDsKKworCWlmIChjb21taXQtPnBhcmVudHMpCisJCXBhcmVudCA9IGNvbW1pdC0+cGFyZW50cy0+aXRlbTsKKworCXF1ZXVlX2RpZmZzKHJhbmdlLCAmcmV2LT5kaWZmb3B0LCAmcXVldWUsIGNvbW1pdCwgcGFyZW50KTsKKwljaGFuZ2VkID0gcHJvY2Vzc19hbGxfZmlsZXMoJnBhcmVudF9yYW5nZSwgcmV2LCAmcXVldWUsIHJhbmdlKTsKKwlpZiAocGFyZW50KQorCQlhZGRfbGluZV9yYW5nZShyZXYsIHBhcmVudCwgcGFyZW50X3JhbmdlKTsKKwlyZXR1cm4gY2hhbmdlZDsKK30KKworc3RhdGljIGludCBwcm9jZXNzX3Jhbmdlc19tZXJnZV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwKKwkJCQkgICAgICAgc3RydWN0IGxpbmVfbG9nX2RhdGEgKnJhbmdlKQoreworCXN0cnVjdCBkaWZmX3F1ZXVlX3N0cnVjdCAqZGlmZnF1ZXVlczsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqKmNhbmQ7CisJc3RydWN0IGNvbW1pdCAqKnBhcmVudHM7CisJc3RydWN0IGNvbW1pdF9saXN0ICpwOworCWludCBpOworCWludCBucGFyZW50cyA9IGNvdW50X3BhcmVudHMoY29tbWl0KTsKKworCWRpZmZxdWV1ZXMgPSB4bWFsbG9jKG5wYXJlbnRzICogc2l6ZW9mKCpkaWZmcXVldWVzKSk7CisJY2FuZCA9IHhtYWxsb2MobnBhcmVudHMgKiBzaXplb2YoKmNhbmQpKTsKKwlwYXJlbnRzID0geG1hbGxvYyhucGFyZW50cyAqIHNpemVvZigqcGFyZW50cykpOworCisJcCA9IGNvbW1pdC0+cGFyZW50czsKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlwYXJlbnRzW2ldID0gcC0+aXRlbTsKKwkJcCA9IHAtPm5leHQ7CisJCXF1ZXVlX2RpZmZzKHJhbmdlLCAmcmV2LT5kaWZmb3B0LCAmZGlmZnF1ZXVlc1tpXSwgY29tbWl0LCBwYXJlbnRzW2ldKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlpbnQgY2hhbmdlZDsKKwkJY2FuZFtpXSA9IE5VTEw7CisJCWNoYW5nZWQgPSBwcm9jZXNzX2FsbF9maWxlcygmY2FuZFtpXSwgcmV2LCAmZGlmZnF1ZXVlc1tpXSwgcmFuZ2UpOworCQlpZiAoIWNoYW5nZWQpIHsKKwkJCS8qCisJCQkgKiBUaGlzIHBhcmVudCBjYW4gdGFrZSBhbGwgdGhlIGJsYW1lLCBzbyB3ZQorCQkJICogZG9uJ3QgZm9sbG93IGFueSBvdGhlciBwYXRoIGluIGhpc3RvcnkKKwkJCSAqLworCQkJYWRkX2xpbmVfcmFuZ2UocmV2LCBwYXJlbnRzW2ldLCBjYW5kW2ldKTsKKwkJCWNsZWFyX2NvbW1pdF9saW5lX3JhbmdlKHJldiwgY29tbWl0KTsKKwkJCWNvbW1pdC0+cGFyZW50cyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBjb21taXRfbGlzdCkpOworCQkJY29tbWl0LT5wYXJlbnRzLT5pdGVtID0gcGFyZW50c1tpXTsKKwkJCWNvbW1pdC0+cGFyZW50cy0+bmV4dCA9IE5VTEw7CisJCQlmcmVlKHBhcmVudHMpOworCQkJZnJlZShjYW5kKTsKKwkJCWZyZWVfZGlmZnF1ZXVlcyhucGFyZW50cywgZGlmZnF1ZXVlcyk7CisJCQkvKiBORUVEU1dPUksgbGVha2luZyBsaWtlIGEgc2lldmUgKi8KKwkJCXJldHVybiAwOworCQl9CisJfQorCisJLyoKKwkgKiBObyBzaW5nbGUgcGFyZW50IHRvb2sgdGhlIGJsYW1lLiAgV2UgYWRkIHRoZSBjYW5kaWRhdGVzCisJICogZnJvbSB0aGUgYWJvdmUgbG9vcCB0byB0aGUgcGFyZW50cy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmVudHM7IGkrKykgeworCQlhZGRfbGluZV9yYW5nZShyZXYsIHBhcmVudHNbaV0sIGNhbmRbaV0pOworCX0KKworCWNsZWFyX2NvbW1pdF9saW5lX3JhbmdlKHJldiwgY29tbWl0KTsKKwlmcmVlKHBhcmVudHMpOworCWZyZWUoY2FuZCk7CisJZnJlZV9kaWZmcXVldWVzKG5wYXJlbnRzLCBkaWZmcXVldWVzKTsKKwlyZXR1cm4gMTsKKworCS8qIE5FRURTV09SSyBldmlsIG1lcmdlIGRldGVjdGlvbiBzdHVmZiAqLworCS8qIE5FRURTV09SSyBsZWFraW5nIGxpa2UgYSBzaWV2ZSAqLworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfcmFuZ2VzX2FyYml0cmFyeV9jb21taXQoc3RydWN0IHJldl9pbmZvICpyZXYsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcmFuZ2UgPSBsb29rdXBfbGluZV9yYW5nZShyZXYsIGNvbW1pdCk7CisJaW50IGNoYW5nZWQgPSAwOworCisJaWYgKHJhbmdlKSB7CisJCWlmICghY29tbWl0LT5wYXJlbnRzIHx8ICFjb21taXQtPnBhcmVudHMtPm5leHQpCisJCQljaGFuZ2VkID0gcHJvY2Vzc19yYW5nZXNfb3JkaW5hcnlfY29tbWl0KHJldiwgY29tbWl0LCByYW5nZSk7CisJCWVsc2UKKwkJCWNoYW5nZWQgPSBwcm9jZXNzX3Jhbmdlc19tZXJnZV9jb21taXQocmV2LCBjb21taXQsIHJhbmdlKTsKKwl9CisKKwlpZiAoIWNoYW5nZWQpCisJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOworCisJcmV0dXJuIGNoYW5nZWQ7Cit9CisKK3N0YXRpYyBlbnVtIHJld3JpdGVfcmVzdWx0IGxpbmVfbG9nX3Jld3JpdGVfb25lKHN0cnVjdCByZXZfaW5mbyAqcmV2LCBzdHJ1Y3QgY29tbWl0ICoqcHApCit7CisJZm9yICg7OykgeworCQlzdHJ1Y3QgY29tbWl0ICpwID0gKnBwOworCQlpZiAocC0+cGFyZW50cyAmJiBwLT5wYXJlbnRzLT5uZXh0KQorCQkJcmV0dXJuIHJld3JpdGVfb25lX29rOworCQlpZiAocC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykKKwkJCXJldHVybiByZXdyaXRlX29uZV9vazsKKwkJaWYgKCEocC0+b2JqZWN0LmZsYWdzICYgVFJFRVNBTUUpKQorCQkJcmV0dXJuIHJld3JpdGVfb25lX29rOworCQlpZiAoIXAtPnBhcmVudHMpCisJCQlyZXR1cm4gcmV3cml0ZV9vbmVfbm9wYXJlbnRzOworCQkqcHAgPSBwLT5wYXJlbnRzLT5pdGVtOworCX0KK30KKworaW50IGxpbmVfbG9nX2ZpbHRlcihzdHJ1Y3QgcmV2X2luZm8gKnJldikKK3sKKwlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CisJc3RydWN0IGNvbW1pdF9saXN0ICpsaXN0ID0gcmV2LT5jb21taXRzOworCXN0cnVjdCBjb21taXRfbGlzdCAqb3V0ID0gTlVMTCwgKipwcCA9ICZvdXQ7CisKKwl3aGlsZSAobGlzdCkgeworCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnRvX2ZyZWUgPSBOVUxMOworCQljb21taXQgPSBsaXN0LT5pdGVtOworCQlpZiAocHJvY2Vzc19yYW5nZXNfYXJiaXRyYXJ5X2NvbW1pdChyZXYsIGNvbW1pdCkpIHsKKwkJCSpwcCA9IGxpc3Q7CisJCQlwcCA9ICZsaXN0LT5uZXh0OworCQl9IGVsc2UKKwkJCXRvX2ZyZWUgPSBsaXN0OworCQlsaXN0ID0gbGlzdC0+bmV4dDsKKwkJZnJlZSh0b19mcmVlKTsKKwl9CisJKnBwID0gTlVMTDsKKworCWZvciAobGlzdCA9IG91dDsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQpCisJCXJld3JpdGVfcGFyZW50cyhyZXYsIGxpc3QtPml0ZW0sIGxpbmVfbG9nX3Jld3JpdGVfb25lKTsKKworCXJldi0+Y29tbWl0cyA9IG91dDsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGluZS1sb2cuaCBiL2xpbmUtbG9nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJlYTQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtbG9nLmgKQEAgLTAsMCArMSw1MyBAQAorI2lmbmRlZiBMSU5FX0xPR19ICisjZGVmaW5lIExJTkVfTE9HX0gKKworI2luY2x1ZGUgImRpZmZjb3JlLmgiCisKK3N0cnVjdCByZXZfaW5mbzsKK3N0cnVjdCBjb21taXQ7CisKKy8qIEEgcmFuZ2UgW3N0YXJ0LGVuZF0uICBMaW5lcyBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgYXQgMCwgYW5kIHRoZQorICogcmFuZ2VzIGluY2x1ZGUgc3RhcnQgYnV0IGV4Y2x1ZGUgZW5kLiAqLworc3RydWN0IHJhbmdlIHsKKwlsb25nIHN0YXJ0LCBlbmQ7Cit9OworCisvKiBBIHNldCBvZiByYW5nZXMuICBUaGUgcmFuZ2VzIG11c3QgYWx3YXlzIGJlIGRpc2pvaW50IGFuZCBzb3J0ZWQuICovCitzdHJ1Y3QgcmFuZ2Vfc2V0IHsKKwlpbnQgYWxsb2MsIG5yOworCXN0cnVjdCByYW5nZSAqcmFuZ2VzOworfTsKKworLyogQSBkaWZmLCBlbmNvZGVkIGFzIHRoZSBzZXQgb2YgcHJlLSBhbmQgcG9zdC1pbWFnZSByYW5nZXMgd2hlcmUgdGhlCisgKiBmaWxlcyBkaWZmZXIuIEEgcGFpciBvZiByYW5nZXMgY29ycmVzcG9uZHMgdG8gYSBodW5rLiAqLworc3RydWN0IGRpZmZfcmFuZ2VzIHsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHBhcmVudDsKKwlzdHJ1Y3QgcmFuZ2Vfc2V0IHRhcmdldDsKK307CisKKy8qIExpbmtlZCBsaXN0IG9mIGludGVyZXN0aW5nIGZpbGVzIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJhbmdlcy4gIFRoZQorICogbGlzdCBtdXN0IGJlIGtlcHQgc29ydGVkIGJ5IHBhdGguCisgKgorICogRm9yIHNpbXBsaWNpdHksIGV2ZW4gdGhvdWdoIHRoaXMgaXMgaGlnaGx5IHJlZHVuZGFudCwgZWFjaAorICogbGluZV9sb2dfZGF0YSBvd25zIGl0cyAncGF0aCcuCisgKi8KK3N0cnVjdCBsaW5lX2xvZ19kYXRhIHsKKwlzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqbmV4dDsKKwljaGFyICpwYXRoOworCWNoYXIgc3RhdHVzOworCXN0cnVjdCByYW5nZV9zZXQgcmFuZ2VzOworCWludCBhcmdfYWxsb2MsIGFyZ19ucjsKKwljb25zdCBjaGFyICoqYXJnczsKKwlzdHJ1Y3QgZGlmZl9maWxlcGFpciAqcGFpcjsKKwlzdHJ1Y3QgZGlmZl9yYW5nZXMgZGlmZjsKK307CisKK2V4dGVybiB2b2lkIGxpbmVfbG9nX2RhdGFfaW5pdChzdHJ1Y3QgbGluZV9sb2dfZGF0YSAqcik7CisKK2V4dGVybiB2b2lkIGxpbmVfbG9nX2luaXQoc3RydWN0IHJldl9pbmZvICpyZXYsIGNvbnN0IGNoYXIgKnByZWZpeCwgc3RydWN0IHN0cmluZ19saXN0ICphcmdzKTsKKworZXh0ZXJuIGludCBsaW5lX2xvZ19maWx0ZXIoc3RydWN0IHJldl9pbmZvICpyZXYpOworCitleHRlcm4gaW50IGxpbmVfbG9nX3ByaW50KHN0cnVjdCByZXZfaW5mbyAqcmV2LCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOworCisjZW5kaWYgLyogTElORV9MT0dfSCAqLwpkaWZmIC0tZ2l0IGEvbGluZS1yYW5nZS5jIGIvbGluZS1yYW5nZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDI0NzUKLS0tIC9kZXYvbnVsbAorKysgYi9saW5lLXJhbmdlLmMKQEAgLTAsMCArMSwyNTAgQEAKKyNpbmNsdWRlICJnaXQtY29tcGF0LXV0aWwuaCIKKyNpbmNsdWRlICJsaW5lLXJhbmdlLmgiCisjaW5jbHVkZSAieGRpZmYtaW50ZXJmYWNlLmgiCisjaW5jbHVkZSAic3RyYnVmLmgiCisjaW5jbHVkZSAidXNlcmRpZmYuaCIKKworLyoKKyAqIFBhcnNlIG9uZSBpdGVtIGluIHRoZSAtTCBvcHRpb24KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKnBhcnNlX2xvYyhjb25zdCBjaGFyICpzcGVjLCBudGhfbGluZV9mbl90IG50aF9saW5lLAorCQkJICAgICB2b2lkICpkYXRhLCBsb25nIGxpbmVzLCBsb25nIGJlZ2luLCBsb25nICpyZXQpCit7CisJY2hhciAqdGVybTsKKwljb25zdCBjaGFyICpsaW5lOworCWxvbmcgbnVtOworCWludCByZWdfZXJyb3I7CisJcmVnZXhfdCByZWdleHA7CisJcmVnbWF0Y2hfdCBtYXRjaFsxXTsKKworCS8qIEFsbG93ICItTCA8c29tZXRoaW5nPiwrMjAiIHRvIG1lYW4gc3RhcnRpbmcgYXQgPHNvbWV0aGluZz4KKwkgKiBmb3IgMjAgbGluZXMsIG9yICItTCA8c29tZXRoaW5nPiwtNSIgZm9yIDUgbGluZXMgZW5kaW5nIGF0CisJICogPHNvbWV0aGluZz4uCisJICovCisJaWYgKDEgPCBiZWdpbiAmJiAoc3BlY1swXSA9PSAnKycgfHwgc3BlY1swXSA9PSAnLScpKSB7CisJCW51bSA9IHN0cnRvbChzcGVjICsgMSwgJnRlcm0sIDEwKTsKKwkJaWYgKHRlcm0gIT0gc3BlYyArIDEpIHsKKwkJCWlmICghcmV0KQorCQkJCXJldHVybiB0ZXJtOworCQkJaWYgKHNwZWNbMF0gPT0gJy0nKQorCQkJCW51bSA9IDAgLSBudW07CisJCQlpZiAoMCA8IG51bSkKKwkJCQkqcmV0ID0gYmVnaW4gKyBudW0gLSAyOworCQkJZWxzZSBpZiAoIW51bSkKKwkJCQkqcmV0ID0gYmVnaW47CisJCQllbHNlCisJCQkJKnJldCA9IGJlZ2luICsgbnVtOworCQkJcmV0dXJuIHRlcm07CisJCX0KKwkJcmV0dXJuIHNwZWM7CisJfQorCW51bSA9IHN0cnRvbChzcGVjLCAmdGVybSwgMTApOworCWlmICh0ZXJtICE9IHNwZWMpIHsKKwkJaWYgKHJldCkKKwkJCSpyZXQgPSBudW07CisJCXJldHVybiB0ZXJtOworCX0KKwlpZiAoc3BlY1swXSAhPSAnLycpCisJCXJldHVybiBzcGVjOworCisJLyogaXQgY291bGQgYmUgYSByZWdleHAgb2YgZm9ybSAvLi4uLyAqLworCWZvciAodGVybSA9IChjaGFyICopIHNwZWMgKyAxOyAqdGVybSAmJiAqdGVybSAhPSAnLyc7IHRlcm0rKykgeworCQlpZiAoKnRlcm0gPT0gJ1xcJykKKwkJCXRlcm0rKzsKKwl9CisJaWYgKCp0ZXJtICE9ICcvJykKKwkJcmV0dXJuIHNwZWM7CisKKwkvKiBpbiB0aGUgc2Nhbi1vbmx5IGNhc2Ugd2UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIHRoZSByZWdleCAqLworCWlmICghcmV0KQorCQlyZXR1cm4gdGVybSsxOworCisJLyogdHJ5IFtzcGVjKzEgLi4gdGVybS0xXSBhcyByZWdleHAgKi8KKwkqdGVybSA9IDA7CisJYmVnaW4tLTsgLyogaW5wdXQgaXMgaW4gaHVtYW4gdGVybXMgKi8KKwlsaW5lID0gbnRoX2xpbmUoZGF0YSwgYmVnaW4pOworCisJaWYgKCEocmVnX2Vycm9yID0gcmVnY29tcCgmcmVnZXhwLCBzcGVjICsgMSwgUkVHX05FV0xJTkUpKSAmJgorCSAgICAhKHJlZ19lcnJvciA9IHJlZ2V4ZWMoJnJlZ2V4cCwgbGluZSwgMSwgbWF0Y2gsIDApKSkgeworCQljb25zdCBjaGFyICpjcCA9IGxpbmUgKyBtYXRjaFswXS5ybV9zbzsKKwkJY29uc3QgY2hhciAqbmxpbmU7CisKKwkJd2hpbGUgKGJlZ2luKysgPCBsaW5lcykgeworCQkJbmxpbmUgPSBudGhfbGluZShkYXRhLCBiZWdpbik7CisJCQlpZiAobGluZSA8PSBjcCAmJiBjcCA8IG5saW5lKQorCQkJCWJyZWFrOworCQkJbGluZSA9IG5saW5lOworCQl9CisJCSpyZXQgPSBiZWdpbjsKKwkJcmVnZnJlZSgmcmVnZXhwKTsKKwkJKnRlcm0rKyA9ICcvJzsKKwkJcmV0dXJuIHRlcm07CisJfQorCWVsc2UgeworCQljaGFyIGVycmJ1ZlsxMDI0XTsKKwkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHNwZWMgKyAxLCBlcnJidWYpOworCX0KK30KKworc3RhdGljIGludCBtYXRjaF9mdW5jbmFtZSh4ZGVtaXRjb25mX3QgKnhlY2ZnLCBjb25zdCBjaGFyICpib2wsIGNvbnN0IGNoYXIgKmVvbCkKK3sKKwlpZiAoeGVjZmcpIHsKKwkJY2hhciBidWZbMV07CisJCXJldHVybiB4ZWNmZy0+ZmluZF9mdW5jKGJvbCwgZW9sIC0gYm9sLCBidWYsIDEsCisJCQkJCXhlY2ZnLT5maW5kX2Z1bmNfcHJpdikgPj0gMDsKKwl9CisKKwlpZiAoYm9sID09IGVvbCkKKwkJcmV0dXJuIDA7CisJaWYgKGlzYWxwaGEoKmJvbCkgfHwgKmJvbCA9PSAnXycgfHwgKmJvbCA9PSAnJCcpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqZmluZF9mdW5jbmFtZV9tYXRjaGluZ19yZWdleHAoeGRlbWl0Y29uZl90ICp4ZWNmZywgY29uc3QgY2hhciAqc3RhcnQsCisJCQkJCQkgcmVnZXhfdCAqcmVnZXhwKQoreworCWludCByZWdfZXJyb3I7CisJcmVnbWF0Y2hfdCBtYXRjaFsxXTsKKwl3aGlsZSAoMSkgeworCQljb25zdCBjaGFyICpib2wsICplb2w7CisJCXJlZ19lcnJvciA9IHJlZ2V4ZWMocmVnZXhwLCBzdGFydCwgMSwgbWF0Y2gsIDApOworCQlpZiAocmVnX2Vycm9yID09IFJFR19OT01BVENIKQorCQkJcmV0dXJuIE5VTEw7CisJCWVsc2UgaWYgKHJlZ19lcnJvcikgeworCQkJY2hhciBlcnJidWZbMTAyNF07CisJCQlyZWdlcnJvcihyZWdfZXJyb3IsIHJlZ2V4cCwgZXJyYnVmLCAxMDI0KTsKKwkJCWRpZSgiLUwgcGFyYW1ldGVyOiByZWdleGVjKCkgZmFpbGVkOiAlcyIsIGVycmJ1Zik7CisJCX0KKwkJLyogZGV0ZXJtaW5lIGV4dGVudCBvZiBsaW5lIG1hdGNoZWQgKi8KKwkJYm9sID0gc3RhcnQrbWF0Y2hbMF0ucm1fc287CisJCWVvbCA9IHN0YXJ0K21hdGNoWzBdLnJtX2VvOworCQl3aGlsZSAoYm9sID4gc3RhcnQgJiYgKmJvbCAhPSAnXG4nKQorCQkJYm9sLS07CisJCWlmICgqYm9sID09ICdcbicpCisJCQlib2wrKzsKKwkJd2hpbGUgKCplb2wgJiYgKmVvbCAhPSAnXG4nKQorCQkJZW9sKys7CisJCWlmICgqZW9sID09ICdcbicpCisJCQllb2wrKzsKKwkJLyogaXMgaXQgYSBmdW5jbmFtZSBsaW5lPyAqLworCQlpZiAobWF0Y2hfZnVuY25hbWUoeGVjZmcsIChjaGFyKikgYm9sLCAoY2hhciopIGVvbCkpCisJCQlyZXR1cm4gYm9sOworCQlzdGFydCA9IGVvbDsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpwYXJzZV9yYW5nZV9mdW5jbmFtZShjb25zdCBjaGFyICphcmcsIG50aF9saW5lX2ZuX3QgbnRoX2xpbmVfY2IsCisJCQkJCXZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsIGxvbmcgKmJlZ2luLCBsb25nICplbmQsCisJCQkJCWNvbnN0IGNoYXIgKnBhdGgpCit7CisJY2hhciAqcGF0dGVybjsKKwljb25zdCBjaGFyICp0ZXJtOworCXN0cnVjdCB1c2VyZGlmZl9kcml2ZXIgKmRydjsKKwl4ZGVtaXRjb25mX3QgKnhlY2ZnID0gTlVMTDsKKwljb25zdCBjaGFyICpzdGFydDsKKwljb25zdCBjaGFyICpwOworCWludCByZWdfZXJyb3I7CisJcmVnZXhfdCByZWdleHA7CisKKwlhc3NlcnQoKmFyZyA9PSAnOicpOworCXRlcm0gPSBhcmcrMTsKKwl3aGlsZSAoKnRlcm0gJiYgKnRlcm0gIT0gJzonKSB7CisJCWlmICgqdGVybSA9PSAnXFwnICYmICoodGVybSsxKSkKKwkJCXRlcm0rKzsKKwkJdGVybSsrOworCX0KKwlpZiAodGVybSA9PSBhcmcrMSkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKCFiZWdpbikgLyogc2tpcF9yYW5nZV9hcmcgY2FzZSAqLworCQlyZXR1cm4gdGVybTsKKworCXBhdHRlcm4gPSB4c3RybmR1cChhcmcrMSwgdGVybS0oYXJnKzEpKTsKKworCXN0YXJ0ID0gbnRoX2xpbmVfY2IoY2JfZGF0YSwgMCk7CisKKwlkcnYgPSB1c2VyZGlmZl9maW5kX2J5X3BhdGgocGF0aCk7CisJaWYgKGRydiAmJiBkcnYtPmZ1bmNuYW1lLnBhdHRlcm4pIHsKKwkJY29uc3Qgc3RydWN0IHVzZXJkaWZmX2Z1bmNuYW1lICpwZSA9ICZkcnYtPmZ1bmNuYW1lOworCQl4ZWNmZyA9IHhjYWxsb2MoMSwgc2l6ZW9mKCp4ZWNmZykpOworCQl4ZGlmZl9zZXRfZmluZF9mdW5jKHhlY2ZnLCBwZS0+cGF0dGVybiwgcGUtPmNmbGFncyk7CisJfQorCisJcmVnX2Vycm9yID0gcmVnY29tcCgmcmVnZXhwLCBwYXR0ZXJuLCBSRUdfTkVXTElORSk7CisJaWYgKHJlZ19lcnJvcikgeworCQljaGFyIGVycmJ1ZlsxMDI0XTsKKwkJcmVnZXJyb3IocmVnX2Vycm9yLCAmcmVnZXhwLCBlcnJidWYsIDEwMjQpOworCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnOiAlcyIsIHBhdHRlcm4sIGVycmJ1Zik7CisJfQorCisJcCA9IGZpbmRfZnVuY25hbWVfbWF0Y2hpbmdfcmVnZXhwKHhlY2ZnLCAoY2hhciopIHN0YXJ0LCAmcmVnZXhwKTsKKwlpZiAoIXApCisJCWRpZSgiLUwgcGFyYW1ldGVyICclcyc6IG5vIG1hdGNoIiwgcGF0dGVybik7CisJKmJlZ2luID0gMDsKKwl3aGlsZSAocCA+IG50aF9saW5lX2NiKGNiX2RhdGEsICpiZWdpbikpCisJCSgqYmVnaW4pKys7CisKKwlpZiAoKmJlZ2luID49IGxpbmVzKQorCQlkaWUoIi1MIHBhcmFtZXRlciAnJXMnIG1hdGNoZXMgYXQgRU9GIiwgcGF0dGVybik7CisKKwkqZW5kID0gKmJlZ2luKzE7CisJd2hpbGUgKCplbmQgPCBsaW5lcykgeworCQljb25zdCBjaGFyICpib2wgPSBudGhfbGluZV9jYihjYl9kYXRhLCAqZW5kKTsKKwkJY29uc3QgY2hhciAqZW9sID0gbnRoX2xpbmVfY2IoY2JfZGF0YSwgKmVuZCsxKTsKKwkJaWYgKG1hdGNoX2Z1bmNuYW1lKHhlY2ZnLCBib2wsIGVvbCkpCisJCQlicmVhazsKKwkJKCplbmQpKys7CisJfQorCisJcmVnZnJlZSgmcmVnZXhwKTsKKwlmcmVlKHhlY2ZnKTsKKwlmcmVlKHBhdHRlcm4pOworCisJLyogY29tcGVuc2F0ZSBmb3IgMS1iYXNlZCBudW1iZXJpbmcgKi8KKwkoKmJlZ2luKSsrOworCisJcmV0dXJuIHRlcm07Cit9CisKK2ludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLCBudGhfbGluZV9mbl90IG50aF9saW5lX2NiLAorCQkgICAgdm9pZCAqY2JfZGF0YSwgbG9uZyBsaW5lcywgbG9uZyAqYmVnaW4sIGxvbmcgKmVuZCwKKwkJICAgIGNvbnN0IGNoYXIgKnBhdGgpCit7CisJKmJlZ2luID0gKmVuZCA9IDA7CisKKwlpZiAoKmFyZyA9PSAnOicpIHsKKwkJYXJnID0gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIGJlZ2luLCBlbmQsIHBhdGgpOworCQlpZiAoIWFyZyB8fCAqYXJnKQorCQkJcmV0dXJuIC0xOworCQlyZXR1cm4gMDsKKwl9CisKKwlhcmcgPSBwYXJzZV9sb2MoYXJnLCBudGhfbGluZV9jYiwgY2JfZGF0YSwgbGluZXMsIDEsIGJlZ2luKTsKKworCWlmICgqYXJnID09ICcsJykKKwkJYXJnID0gcGFyc2VfbG9jKGFyZyArIDEsIG50aF9saW5lX2NiLCBjYl9kYXRhLCBsaW5lcywgKmJlZ2luICsgMSwgZW5kKTsKKworCWlmICgqYXJnKQorCQlyZXR1cm4gLTE7CisKKwlpZiAoKmJlZ2luICYmICplbmQgJiYgKmVuZCA8ICpiZWdpbikgeworCQlsb25nIHRtcDsKKwkJdG1wID0gKmVuZDsgKmVuZCA9ICpiZWdpbjsgKmJlZ2luID0gdG1wOworCX0KKworCXJldHVybiAwOworfQorCitjb25zdCBjaGFyICpza2lwX3JhbmdlX2FyZyhjb25zdCBjaGFyICphcmcpCit7CisJaWYgKCphcmcgPT0gJzonKQorCQlyZXR1cm4gcGFyc2VfcmFuZ2VfZnVuY25hbWUoYXJnLCBOVUxMLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMKTsKKworCWFyZyA9IHBhcnNlX2xvYyhhcmcsIE5VTEwsIE5VTEwsIDAsIC0xLCBOVUxMKTsKKworCWlmICgqYXJnID09ICcsJykKKwkJYXJnID0gcGFyc2VfbG9jKGFyZysxLCBOVUxMLCBOVUxMLCAwLCAwLCBOVUxMKTsKKworCXJldHVybiBhcmc7Cit9CmRpZmYgLS1naXQgYS9saW5lLXJhbmdlLmggYi9saW5lLXJhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUzZDAxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpbmUtcmFuZ2UuaApAQCAtMCwwICsxLDM2IEBACisjaWZuZGVmIExJTkVfUkFOR0VfSAorI2RlZmluZSBMSU5FX1JBTkdFX0gKKworLyoKKyAqIFBhcnNlIG9uZSBpdGVtIGluIGFuIC1MIGJlZ2luLGVuZCBvcHRpb24gdy5yLnQuIHRoZSBub3Rpb25hbCBmaWxlCisgKiBvYmplY3QgJ2NiX2RhdGEnIGNvbnNpc3Rpbmcgb2YgJ2xpbmVzJyBsaW5lcy4KKyAqCisgKiBUaGUgJ250aF9saW5lX2NiJyBjYWxsYmFjayBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgc3RhcnQgb2YgdGhlCisgKiBsaW5lICdsbm8nIGluc2lkZSB0aGUgJ2NiX2RhdGEnLiAgVGhlIGNhbGxlciBpcyBleHBlY3RlZCB0byBhbHJlYWR5CisgKiBoYXZlIGEgc3VpdGFibGUgbWFwIGF0IGhhbmQgdG8gbWFrZSB0aGlzIGEgY29uc3RhbnQtdGltZSBsb29rdXAuCisgKgorICogUmV0dXJucyAwIGluIGNhc2Ugb2Ygc3VjY2VzcyBhbmQgLTEgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiAgVGhlCisgKiBhY3R1YWwgcmFuZ2UgaXMgc3RvcmVkIGluICpiZWdpbiBhbmQgKmVuZC4gIFRoZSBjb3VudGluZyBzdGFydHMKKyAqIGF0IDEhICBJbiBjYXNlIG9mIGVycm9yLCB0aGUgY2FsbGVyIHNob3VsZCBzaG93IHVzYWdlIG1lc3NhZ2UuCisgKi8KKwordHlwZWRlZiBjb25zdCBjaGFyICooKm50aF9saW5lX2ZuX3QpKHZvaWQgKmRhdGEsIGxvbmcgbG5vKTsKKworZXh0ZXJuIGludCBwYXJzZV9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnLAorCQkJICAgbnRoX2xpbmVfZm5fdCBudGhfbGluZV9jYiwKKwkJCSAgIHZvaWQgKmNiX2RhdGEsIGxvbmcgbGluZXMsCisJCQkgICBsb25nICpiZWdpbiwgbG9uZyAqZW5kLAorCQkJICAgY29uc3QgY2hhciAqcGF0aCk7CisKKy8qCisgKiBTY2FuIHBhc3QgYSByYW5nZSBhcmd1bWVudCB0aGF0IGNvdWxkIGJlIHBhcnNlZCBieQorICogJ3BhcnNlX3JhbmdlX2FyZycsIHRvIGhlbHAgdGhlIGNhbGxlciBkZXRlcm1pbmUgdGhlIHN0YXJ0IG9mIHRoZQorICogZmlsZW5hbWUgaW4gJy1MIG4sbTpmaWxlJyBzeW50YXguCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgJ24sbScgcGFydCwgb3IKKyAqIE5VTEwgaW4gY2FzZSB0aGUgYXJndW1lbnQgaXMgb2J2aW91c2x5IG1hbGZvcm1lZC4KKyAqLworCitleHRlcm4gY29uc3QgY2hhciAqc2tpcF9yYW5nZV9hcmcoY29uc3QgY2hhciAqYXJnKTsKKworI2VuZGlmIC8qIExJTkVfUkFOR0VfSCAqLwpkaWZmIC0tZ2l0IGEvbG9ja2ZpbGUuYyBiL2xvY2tmaWxlLmMKaW5kZXggYzZmYjc3Yi4uOGZiY2I2YSAxMDA2NDQKLS0tIGEvbG9ja2ZpbGUuYworKysgYi9sb2NrZmlsZS5jCkBAIC0xMjQsMTUgKzEyNCwxNyBAQAogCiBzdGF0aWMgaW50IGxvY2tfZmlsZShzdHJ1Y3QgbG9ja19maWxlICpsaywgY29uc3QgY2hhciAqcGF0aCwgaW50IGZsYWdzKQogewotCWlmIChzdHJsZW4ocGF0aCkgPj0gc2l6ZW9mKGxrLT5maWxlbmFtZSkpCi0JCXJldHVybiAtMTsKLQlzdHJjcHkobGstPmZpbGVuYW1lLCBwYXRoKTsKIAkvKgogCSAqIHN1YnRyYWN0IDUgZnJvbSBzaXplIHRvIG1ha2Ugc3VyZSB0aGVyZSdzIHJvb20gZm9yIGFkZGluZwogCSAqICIubG9jayIgZm9yIHRoZSBsb2NrIGZpbGUgbmFtZQogCSAqLworCXN0YXRpYyBjb25zdCBzaXplX3QgbWF4X3BhdGhfbGVuID0gc2l6ZW9mKGxrLT5maWxlbmFtZSkgLSA1OworCisJaWYgKHN0cmxlbihwYXRoKSA+PSBtYXhfcGF0aF9sZW4pCisJCXJldHVybiAtMTsKKwlzdHJjcHkobGstPmZpbGVuYW1lLCBwYXRoKTsKIAlpZiAoIShmbGFncyAmIExPQ0tfTk9ERVJFRikpCi0JCXJlc29sdmVfc3ltbGluayhsay0+ZmlsZW5hbWUsIHNpemVvZihsay0+ZmlsZW5hbWUpLTUpOworCQlyZXNvbHZlX3N5bWxpbmsobGstPmZpbGVuYW1lLCBtYXhfcGF0aF9sZW4pOwogCXN0cmNhdChsay0+ZmlsZW5hbWUsICIubG9jayIpOwogCWxrLT5mZCA9IG9wZW4obGstPmZpbGVuYW1lLCBPX1JEV1IgfCBPX0NSRUFUIHwgT19FWENMLCAwNjY2KTsKIAlpZiAoMCA8PSBsay0+ZmQpIHsKZGlmZiAtLWdpdCBhL2xvZy10cmVlLmMgYi9sb2ctdHJlZS5jCmluZGV4IDE5NDZlOWMuLjg1MzRkOTEgMTAwNjQ0Ci0tLSBhL2xvZy10cmVlLmMKKysrIGIvbG9nLXRyZWUuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgImNvbG9yLmgiCiAjaW5jbHVkZSAiZ3BnLWludGVyZmFjZS5oIgogI2luY2x1ZGUgInNlcXVlbmNlci5oIgorI2luY2x1ZGUgImxpbmUtbG9nLmgiCiAKIHN0cnVjdCBkZWNvcmF0aW9uIG5hbWVfZGVjb3JhdGlvbiA9IHsgIm9iamVjdCBuYW1lcyIgfTsKIApAQCAtNjE2LDYgKzYxNyw5IEBACiAJY3R4LmZtdCA9IG9wdC0+Y29tbWl0X2Zvcm1hdDsKIAljdHgubWFpbG1hcCA9IG9wdC0+bWFpbG1hcDsKIAljdHguY29sb3IgPSBvcHQtPmRpZmZvcHQudXNlX2NvbG9yOworCWN0eC5vdXRwdXRfZW5jb2RpbmcgPSBnZXRfbG9nX291dHB1dF9lbmNvZGluZygpOworCWlmIChvcHQtPmZyb21faWRlbnQubWFpbF9iZWdpbiAmJiBvcHQtPmZyb21faWRlbnQubmFtZV9iZWdpbikKKwkJY3R4LmZyb21faWRlbnQgPSAmb3B0LT5mcm9tX2lkZW50OwogCXByZXR0eV9wcmludF9jb21taXQoJmN0eCwgY29tbWl0LCAmbXNnYnVmKTsKIAogCWlmIChvcHQtPmFkZF9zaWdub2ZmKQpAQCAtNzM0LDcgKzczOCw3IEBACiAJc2hhMSA9IGNvbW1pdC0+dHJlZS0+b2JqZWN0LnNoYTE7CiAKIAkvKiBSb290IGNvbW1pdD8gKi8KLQlwYXJlbnRzID0gY29tbWl0LT5wYXJlbnRzOworCXBhcmVudHMgPSBnZXRfc2F2ZWRfcGFyZW50cyhvcHQsIGNvbW1pdCk7CiAJaWYgKCFwYXJlbnRzKSB7CiAJCWlmIChvcHQtPnNob3dfcm9vdF9kaWZmKSB7CiAJCQlkaWZmX3Jvb3RfdHJlZV9zaGExKHNoYTEsICIiLCAmb3B0LT5kaWZmb3B0KTsKQEAgLTc5Niw2ICs4MDAsOSBAQAogCWxvZy5wYXJlbnQgPSBOVUxMOwogCW9wdC0+bG9naW5mbyA9ICZsb2c7CiAKKwlpZiAob3B0LT5saW5lX2xldmVsX3RyYXZlcnNlKQorCQlyZXR1cm4gbGluZV9sb2dfcHJpbnQob3B0LCBjb21taXQpOworCiAJc2hvd24gPSBsb2dfdHJlZV9kaWZmKG9wdCwgY29tbWl0LCAmbG9nKTsKIAlpZiAoIXNob3duICYmIG9wdC0+bG9naW5mbyAmJiBvcHQtPmFsd2F5c19zaG93X2hlYWRlcikgewogCQlsb2cucGFyZW50ID0gTlVMTDsKZGlmZiAtLWdpdCBhL21haWxtYXAuYyBiL21haWxtYXAuYwppbmRleCAyYTdiMzY2Li4zMDYxNDM0IDEwMDY0NAotLS0gYS9tYWlsbWFwLmMKKysrIGIvbWFpbG1hcC5jCkBAIC01LDggKzUsMTAgQEAKICNkZWZpbmUgREVCVUdfTUFJTE1BUCAwCiAjaWYgREVCVUdfTUFJTE1BUAogI2RlZmluZSBkZWJ1Z19tbSguLi4pIGZwcmludGYoc3RkZXJyLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgZGVidWdfc3RyKFgpICgoWCkgPyAoWCkgOiAiKG5vbmUpIikKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgZGVidWdfbW0oY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pIHt9CitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmRlYnVnX3N0cihjb25zdCBjaGFyICpzKSB7IHJldHVybiBzOyB9CiAjZW5kaWYKIAogY29uc3QgY2hhciAqZ2l0X21haWxtYXBfZmlsZTsKQEAgLTI5LDcgKzMxLDggQEAKIHN0YXRpYyB2b2lkIGZyZWVfbWFpbG1hcF9pbmZvKHZvaWQgKnAsIGNvbnN0IGNoYXIgKnMpCiB7CiAJc3RydWN0IG1haWxtYXBfaW5mbyAqbWkgPSAoc3RydWN0IG1haWxtYXBfaW5mbyAqKXA7Ci0JZGVidWdfbW0oIm1haWxtYXA6IC0tIGNvbXBsZXg6ICclcycgLT4gJyVzJyA8JXM+XG4iLCBzLCBtaS0+bmFtZSwgbWktPmVtYWlsKTsKKwlkZWJ1Z19tbSgibWFpbG1hcDogLS0gY29tcGxleDogJyVzJyAtPiAnJXMnIDwlcz5cbiIsCisJCSBzLCBkZWJ1Z19zdHIobWktPm5hbWUpLCBkZWJ1Z19zdHIobWktPmVtYWlsKSk7CiAJZnJlZShtaS0+bmFtZSk7CiAJZnJlZShtaS0+ZW1haWwpOwogfQpAQCAtMzcsOCArNDAsMTEgQEAKIHN0YXRpYyB2b2lkIGZyZWVfbWFpbG1hcF9lbnRyeSh2b2lkICpwLCBjb25zdCBjaGFyICpzKQogewogCXN0cnVjdCBtYWlsbWFwX2VudHJ5ICptZSA9IChzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqKXA7Ci0JZGVidWdfbW0oIm1haWxtYXA6IHJlbW92aW5nIGVudHJpZXMgZm9yIDwlcz4sIHdpdGggJWQgc3ViLWVudHJpZXNcbiIsIHMsIG1lLT5uYW1lbWFwLm5yKTsKLQlkZWJ1Z19tbSgibWFpbG1hcDogLSBzaW1wbGU6ICclcycgPCVzPlxuIiwgbWUtPm5hbWUsIG1lLT5lbWFpbCk7CisJZGVidWdfbW0oIm1haWxtYXA6IHJlbW92aW5nIGVudHJpZXMgZm9yIDwlcz4sIHdpdGggJWQgc3ViLWVudHJpZXNcbiIsCisJCSBzLCBtZS0+bmFtZW1hcC5ucik7CisJZGVidWdfbW0oIm1haWxtYXA6IC0gc2ltcGxlOiAnJXMnIDwlcz5cbiIsCisJCSBkZWJ1Z19zdHIobWUtPm5hbWUpLCBkZWJ1Z19zdHIobWUtPmVtYWlsKSk7CisKIAlmcmVlKG1lLT5uYW1lKTsKIAlmcmVlKG1lLT5lbWFpbCk7CiAKQEAgLTQ3LDE4ICs1MywxMSBAQAogfQogCiBzdGF0aWMgdm9pZCBhZGRfbWFwcGluZyhzdHJ1Y3Qgc3RyaW5nX2xpc3QgKm1hcCwKLQkJCWNoYXIgKm5ld19uYW1lLCBjaGFyICpuZXdfZW1haWwsIGNoYXIgKm9sZF9uYW1lLCBjaGFyICpvbGRfZW1haWwpCisJCQljaGFyICpuZXdfbmFtZSwgY2hhciAqbmV3X2VtYWlsLAorCQkJY2hhciAqb2xkX25hbWUsIGNoYXIgKm9sZF9lbWFpbCkKIHsKIAlzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqbWU7CiAJaW50IGluZGV4OwotCWNoYXIgKnA7Ci0KLQlpZiAob2xkX2VtYWlsKQotCQlmb3IgKHAgPSBvbGRfZW1haWw7ICpwOyBwKyspCi0JCQkqcCA9IHRvbG93ZXIoKnApOwotCWlmIChuZXdfZW1haWwpCi0JCWZvciAocCA9IG5ld19lbWFpbDsgKnA7IHArKykKLQkJCSpwID0gdG9sb3dlcigqcCk7CiAKIAlpZiAob2xkX2VtYWlsID09IE5VTEwpIHsKIAkJb2xkX2VtYWlsID0gbmV3X2VtYWlsOwpAQCAtNjgsMTYgKzY3LDIxIEBACiAJaWYgKChpbmRleCA9IHN0cmluZ19saXN0X2ZpbmRfaW5zZXJ0X2luZGV4KG1hcCwgb2xkX2VtYWlsLCAxKSkgPCAwKSB7CiAJCS8qIG1haWxtYXAgZW50cnkgZXhpc3RzLCBpbnZlcnQgaW5kZXggdmFsdWUgKi8KIAkJaW5kZXggPSAtMSAtIGluZGV4OworCQltZSA9IChzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqKW1hcC0+aXRlbXNbaW5kZXhdLnV0aWw7CiAJfSBlbHNlIHsKIAkJLyogY3JlYXRlIG1haWxtYXAgZW50cnkgKi8KLQkJc3RydWN0IHN0cmluZ19saXN0X2l0ZW0gKml0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnRfYXRfaW5kZXgobWFwLCBpbmRleCwgb2xkX2VtYWlsKTsKLQkJaXRlbS0+dXRpbCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBtYWlsbWFwX2VudHJ5KSk7Ci0JCSgoc3RydWN0IG1haWxtYXBfZW50cnkgKilpdGVtLT51dGlsKS0+bmFtZW1hcC5zdHJkdXBfc3RyaW5ncyA9IDE7CisJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOworCisJCWl0ZW0gPSBzdHJpbmdfbGlzdF9pbnNlcnRfYXRfaW5kZXgobWFwLCBpbmRleCwgb2xkX2VtYWlsKTsKKwkJbWUgPSB4Y2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgbWFpbG1hcF9lbnRyeSkpOworCQltZS0+bmFtZW1hcC5zdHJkdXBfc3RyaW5ncyA9IDE7CisJCW1lLT5uYW1lbWFwLmNtcCA9IHN0cmNhc2VjbXA7CisJCWl0ZW0tPnV0aWwgPSBtZTsKIAl9Ci0JbWUgPSAoc3RydWN0IG1haWxtYXBfZW50cnkgKiltYXAtPml0ZW1zW2luZGV4XS51dGlsOwogCiAJaWYgKG9sZF9uYW1lID09IE5VTEwpIHsKLQkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoc2ltcGxlKSBlbnRyeSBmb3IgJXMgYXQgaW5kZXggJWRcbiIsIG9sZF9lbWFpbCwgaW5kZXgpOworCQlkZWJ1Z19tbSgibWFpbG1hcDogYWRkaW5nIChzaW1wbGUpIGVudHJ5IGZvciAlcyBhdCBpbmRleCAlZFxuIiwKKwkJCSBvbGRfZW1haWwsIGluZGV4KTsKIAkJLyogUmVwbGFjZSBjdXJyZW50IG5hbWUgYW5kIG5ldyBlbWFpbCBmb3Igc2ltcGxlIGVudHJ5ICovCiAJCWlmIChuZXdfbmFtZSkgewogCQkJZnJlZShtZS0+bmFtZSk7CkBAIC04OSw3ICs5Myw4IEBACiAJCX0KIAl9IGVsc2UgewogCQlzdHJ1Y3QgbWFpbG1hcF9pbmZvICptaSA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBtYWlsbWFwX2luZm8pKTsKLQkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoY29tcGxleCkgZW50cnkgZm9yICVzIGF0IGluZGV4ICVkXG4iLCBvbGRfZW1haWwsIGluZGV4KTsKKwkJZGVidWdfbW0oIm1haWxtYXA6IGFkZGluZyAoY29tcGxleCkgZW50cnkgZm9yICVzIGF0IGluZGV4ICVkXG4iLAorCQkJIG9sZF9lbWFpbCwgaW5kZXgpOwogCQlpZiAobmV3X25hbWUpCiAJCQltaS0+bmFtZSA9IHhzdHJkdXAobmV3X25hbWUpOwogCQlpZiAobmV3X2VtYWlsKQpAQCAtOTgsMTEgKzEwMywxMiBAQAogCX0KIAogCWRlYnVnX21tKCJtYWlsbWFwOiAgJyVzJyA8JXM+IC0+ICclcycgPCVzPlxuIiwKLQkJIG9sZF9uYW1lLCBvbGRfZW1haWwsIG5ld19uYW1lLCBuZXdfZW1haWwpOworCQkgZGVidWdfc3RyKG9sZF9uYW1lKSwgb2xkX2VtYWlsLAorCQkgZGVidWdfc3RyKG5ld19uYW1lKSwgZGVidWdfc3RyKG5ld19lbWFpbCkpOwogfQogCiBzdGF0aWMgY2hhciAqcGFyc2VfbmFtZV9hbmRfZW1haWwoY2hhciAqYnVmZmVyLCBjaGFyICoqbmFtZSwKLQkJY2hhciAqKmVtYWlsLCBpbnQgYWxsb3dfZW1wdHlfZW1haWwpCisJCQkJICBjaGFyICoqZW1haWwsIGludCBhbGxvd19lbXB0eV9lbWFpbCkKIHsKIAljaGFyICpsZWZ0LCAqcmlnaHQsICpuc3RhcnQsICpuZW5kOwogCSpuYW1lID0gKmVtYWlsID0gTlVMTDsKQEAgLTEyMiw3ICsxMjgsNyBAQAogCXdoaWxlIChuZW5kID4gbnN0YXJ0ICYmIGlzc3BhY2UoKm5lbmQpKQogCQktLW5lbmQ7CiAKLQkqbmFtZSA9IChuc3RhcnQgPCBuZW5kID8gbnN0YXJ0IDogTlVMTCk7CisJKm5hbWUgPSAobnN0YXJ0IDw9IG5lbmQgPyBuc3RhcnQgOiBOVUxMKTsKIAkqZW1haWwgPSBsZWZ0KzE7CiAJKihuZW5kKzEpID0gJ1wwJzsKIAkqcmlnaHQrKyA9ICdcMCc7CkBAIC0xODcsMjAgKzE5MywxNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCByZWFkX21haWxtYXBfYnVmKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLAotCQkJICAgICBjb25zdCBjaGFyICpidWYsIHVuc2lnbmVkIGxvbmcgbGVuLAotCQkJICAgICBjaGFyICoqcmVwb19hYmJyZXYpCitzdGF0aWMgdm9pZCByZWFkX21haWxtYXBfc3RyaW5nKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLCBjaGFyICpidWYsCisJCQkJY2hhciAqKnJlcG9fYWJicmV2KQogewotCXdoaWxlIChsZW4pIHsKLQkJY29uc3QgY2hhciAqZW5kID0gc3RyY2hybnVsKGJ1ZiwgJ1xuJyk7Ci0JCXVuc2lnbmVkIGxvbmcgbGluZWxlbiA9IGVuZCAtIGJ1ZiArIDE7Ci0JCWNoYXIgKmxpbmUgPSB4bWVtZHVweihidWYsIGxpbmVsZW4pOworCXdoaWxlICgqYnVmKSB7CisJCWNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICdcbicpOwogCi0JCXJlYWRfbWFpbG1hcF9saW5lKG1hcCwgbGluZSwgcmVwb19hYmJyZXYpOworCQlpZiAoKmVuZCkKKwkJCSplbmQrKyA9ICdcMCc7CiAKLQkJZnJlZShsaW5lKTsKLQkJYnVmICs9IGxpbmVsZW47Ci0JCWxlbiAtPSBsaW5lbGVuOworCQlyZWFkX21haWxtYXBfbGluZShtYXAsIGJ1ZiwgcmVwb19hYmJyZXYpOworCQlidWYgPSBlbmQ7CiAJfQogfQogCkBAIC0yMjQsNyArMjI3LDcgQEAKIAlpZiAodHlwZSAhPSBPQkpfQkxPQikKIAkJcmV0dXJuIGVycm9yKCJtYWlsbWFwIGlzIG5vdCBhIGJsb2I6ICVzIiwgbmFtZSk7CiAKLQlyZWFkX21haWxtYXBfYnVmKG1hcCwgYnVmLCBzaXplLCByZXBvX2FiYnJldik7CisJcmVhZF9tYWlsbWFwX3N0cmluZyhtYXAsIGJ1ZiwgcmVwb19hYmJyZXYpOwogCiAJZnJlZShidWYpOwogCXJldHVybiAwOwpAQCAtMzA2LDIxICszMDksMjUgQEAKIH0KIAogaW50IG1hcF91c2VyKHN0cnVjdCBzdHJpbmdfbGlzdCAqbWFwLAotCQkJIGNvbnN0IGNoYXIgKiplbWFpbCwgc2l6ZV90ICplbWFpbGxlbiwKLQkJCSBjb25zdCBjaGFyICoqbmFtZSwgc2l6ZV90ICpuYW1lbGVuKQorCSAgICAgY29uc3QgY2hhciAqKmVtYWlsLCBzaXplX3QgKmVtYWlsbGVuLAorCSAgICAgY29uc3QgY2hhciAqKm5hbWUsIHNpemVfdCAqbmFtZWxlbikKIHsKIAlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXRlbTsKIAlzdHJ1Y3QgbWFpbG1hcF9lbnRyeSAqbWU7CiAKIAlkZWJ1Z19tbSgibWFwX3VzZXI6IG1hcCAnJS4qcycgPCUuKnM+XG4iLAotCQkgKm5hbWUsICpuYW1lbGVuLCAqZW1haWxsZW4sICplbWFpbCk7CisJCSAoaW50KSpuYW1lbGVuLCBkZWJ1Z19zdHIoKm5hbWUpLAorCQkgKGludCkqZW1haWxsZW4sIGRlYnVnX3N0cigqZW1haWwpKTsKIAogCWl0ZW0gPSBsb29rdXBfcHJlZml4KG1hcCwgKmVtYWlsLCAqZW1haWxsZW4pOwogCWlmIChpdGVtICE9IE5VTEwpIHsKIAkJbWUgPSAoc3RydWN0IG1haWxtYXBfZW50cnkgKilpdGVtLT51dGlsOwogCQlpZiAobWUtPm5hbWVtYXAubnIpIHsKLQkJCS8qIFRoZSBpdGVtIGhhcyBtdWx0aXBsZSBpdGVtcywgc28gd2UnbGwgbG9vayB1cCBvbiBuYW1lIHRvbyAqLwotCQkJLyogSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLCB3ZSBjaG9vc2UgdGhlIHNpbXBsZSBlbnRyeSAgICAgICovCisJCQkvKgorCQkJICogVGhlIGl0ZW0gaGFzIG11bHRpcGxlIGl0ZW1zLCBzbyB3ZSdsbCBsb29rIHVwIG9uCisJCQkgKiBuYW1lIHRvby4gSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLCB3ZSBjaG9vc2UgdGhlCisJCQkgKiBzaW1wbGUgZW50cnkuCisJCQkgKi8KIAkJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICpzdWJpdGVtOwogCQkJc3ViaXRlbSA9IGxvb2t1cF9wcmVmaXgoJm1lLT5uYW1lbWFwLCAqbmFtZSwgKm5hbWVsZW4pOwogCQkJaWYgKHN1Yml0ZW0pCkBAIC0zNDEsOCArMzQ4LDkgQEAKIAkJCQkqbmFtZSA9IG1pLT5uYW1lOwogCQkJCSpuYW1lbGVuID0gc3RybGVuKCpuYW1lKTsKIAkJfQotCQlkZWJ1Z19tbSgibWFwX3VzZXI6ICB0byAnJS4qcycgPC4qJXM+XG4iLCAqbmFtZWxlbiwgKm5hbWUsCi0JCQkJICplbWFpbGxlbiwgKmVtYWlsKTsKKwkJZGVidWdfbW0oIm1hcF91c2VyOiAgdG8gJyUuKnMnIDwlLipzPlxuIiwKKwkJCSAoaW50KSpuYW1lbGVuLCBkZWJ1Z19zdHIoKm5hbWUpLAorCQkJIChpbnQpKmVtYWlsbGVuLCBkZWJ1Z19zdHIoKmVtYWlsKSk7CiAJCXJldHVybiAxOwogCX0KIAlkZWJ1Z19tbSgibWFwX3VzZXI6ICAtLVxuIik7CmRpZmYgLS1naXQgYS9tYXRjaC10cmVlcy5jIGIvbWF0Y2gtdHJlZXMuYwppbmRleCAyYmI3MzRkLi43ODczY2RlIDEwMDY0NAotLS0gYS9tYXRjaC10cmVlcy5jCisrKyBiL21hdGNoLXRyZWVzLmMKQEAgLTQ3LDYgKzQ3LDIyIEBACiAJcmV0dXJuIHNjb3JlOwogfQogCitzdGF0aWMgdm9pZCAqZmlsbF90cmVlX2Rlc2Nfc3RyaWN0KHN0cnVjdCB0cmVlX2Rlc2MgKmRlc2MsCisJCQkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqaGFzaCkKK3sKKwl2b2lkICpidWZmZXI7CisJZW51bSBvYmplY3RfdHlwZSB0eXBlOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKworCWJ1ZmZlciA9IHJlYWRfc2hhMV9maWxlKGhhc2gsICZ0eXBlLCAmc2l6ZSk7CisJaWYgKCFidWZmZXIpCisJCWRpZSgidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoaGFzaCkpOworCWlmICh0eXBlICE9IE9CSl9UUkVFKQorCQlkaWUoIiVzIGlzIG5vdCBhIHRyZWUiLCBzaGExX3RvX2hleChoYXNoKSk7CisJaW5pdF90cmVlX2Rlc2MoZGVzYywgYnVmZmVyLCBzaXplKTsKKwlyZXR1cm4gYnVmZmVyOworfQorCiBzdGF0aWMgaW50IGJhc2VfbmFtZV9lbnRyaWVzX2NvbXBhcmUoY29uc3Qgc3RydWN0IG5hbWVfZW50cnkgKmEsCiAJCQkJICAgICBjb25zdCBzdHJ1Y3QgbmFtZV9lbnRyeSAqYikKIHsKQEAgLTYxLDIzICs3NywxMCBAQAogewogCXN0cnVjdCB0cmVlX2Rlc2Mgb25lOwogCXN0cnVjdCB0cmVlX2Rlc2MgdHdvOwotCXZvaWQgKm9uZV9idWYsICp0d29fYnVmOworCXZvaWQgKm9uZV9idWYgPSBmaWxsX3RyZWVfZGVzY19zdHJpY3QoJm9uZSwgaGFzaDEpOworCXZvaWQgKnR3b19idWYgPSBmaWxsX3RyZWVfZGVzY19zdHJpY3QoJnR3bywgaGFzaDIpOwogCWludCBzY29yZSA9IDA7Ci0JZW51bSBvYmplY3RfdHlwZSB0eXBlOwotCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAotCW9uZV9idWYgPSByZWFkX3NoYTFfZmlsZShoYXNoMSwgJnR5cGUsICZzaXplKTsKLQlpZiAoIW9uZV9idWYpCi0JCWRpZSgidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIiwgc2hhMV90b19oZXgoaGFzaDEpKTsKLQlpZiAodHlwZSAhPSBPQkpfVFJFRSkKLQkJZGllKCIlcyBpcyBub3QgYSB0cmVlIiwgc2hhMV90b19oZXgoaGFzaDEpKTsKLQlpbml0X3RyZWVfZGVzYygmb25lLCBvbmVfYnVmLCBzaXplKTsKLQl0d29fYnVmID0gcmVhZF9zaGExX2ZpbGUoaGFzaDIsICZ0eXBlLCAmc2l6ZSk7Ci0JaWYgKCF0d29fYnVmKQotCQlkaWUoInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIsIHNoYTFfdG9faGV4KGhhc2gyKSk7Ci0JaWYgKHR5cGUgIT0gT0JKX1RSRUUpCi0JCWRpZSgiJXMgaXMgbm90IGEgdHJlZSIsIHNoYTFfdG9faGV4KGhhc2gyKSk7Ci0JaW5pdF90cmVlX2Rlc2MoJnR3bywgdHdvX2J1Ziwgc2l6ZSk7CiAJZm9yICg7OykgewogCQlzdHJ1Y3QgbmFtZV9lbnRyeSBlMSwgZTI7CiAJCWludCBnb3RfZW50cnlfZnJvbV9vbmUgPSB0cmVlX2VudHJ5KCZvbmUsICZlMSk7CkBAIC0xMjQsMTYgKzEyNyw3IEBACiAJCQlpbnQgcmVjdXJzZV9saW1pdCkKIHsKIAlzdHJ1Y3QgdHJlZV9kZXNjIG9uZTsKLQl2b2lkICpvbmVfYnVmOwotCWVudW0gb2JqZWN0X3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBsb25nIHNpemU7Ci0KLQlvbmVfYnVmID0gcmVhZF9zaGExX2ZpbGUoaGFzaDEsICZ0eXBlLCAmc2l6ZSk7Ci0JaWYgKCFvbmVfYnVmKQotCQlkaWUoInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIsIHNoYTFfdG9faGV4KGhhc2gxKSk7Ci0JaWYgKHR5cGUgIT0gT0JKX1RSRUUpCi0JCWRpZSgiJXMgaXMgbm90IGEgdHJlZSIsIHNoYTFfdG9faGV4KGhhc2gxKSk7Ci0JaW5pdF90cmVlX2Rlc2MoJm9uZSwgb25lX2J1Ziwgc2l6ZSk7CisJdm9pZCAqb25lX2J1ZiA9IGZpbGxfdHJlZV9kZXNjX3N0cmljdCgmb25lLCBoYXNoMSk7CiAKIAl3aGlsZSAob25lLnNpemUpIHsKIAkJY29uc3QgY2hhciAqcGF0aDsKZGlmZiAtLWdpdCBhL21lcmdlLXJlY3Vyc2l2ZS5jIGIvbWVyZ2UtcmVjdXJzaXZlLmMKaW5kZXggZWE5ZGJkMy4uZjk1OTMzYiAxMDA2NDQKLS0tIGEvbWVyZ2UtcmVjdXJzaXZlLmMKKysrIGIvbWVyZ2UtcmVjdXJzaXZlLmMKQEAgLTI1MSw3ICsyNTEsNyBAQAogCQlpbnQgaTsKIAkJZnByaW50ZihzdGRlcnIsICJCVUc6IFRoZXJlIGFyZSB1bm1lcmdlZCBpbmRleCBlbnRyaWVzOlxuIik7CiAJCWZvciAoaSA9IDA7IGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCQlpZiAoY2Vfc3RhZ2UoY2UpKQogCQkJCWZwcmludGYoc3RkZXJyLCAiQlVHOiAlZCAlLipzXG4iLCBjZV9zdGFnZShjZSksCiAJCQkJCShpbnQpY2VfbmFtZWxlbihjZSksIGNlLT5uYW1lKTsKQEAgLTI2NCw3ICsyNjQsOCBAQAogCiAJaWYgKCFjYWNoZV90cmVlX2Z1bGx5X3ZhbGlkKGFjdGl2ZV9jYWNoZV90cmVlKSAmJgogCSAgICBjYWNoZV90cmVlX3VwZGF0ZShhY3RpdmVfY2FjaGVfdHJlZSwKLQkJCSAgICAgIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yLCAwKSA8IDApCisJCQkgICAgICAoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKilhY3RpdmVfY2FjaGUsCisJCQkgICAgICBhY3RpdmVfbnIsIDApIDwgMCkKIAkJZGllKF8oImVycm9yIGJ1aWxkaW5nIHRyZWVzIikpOwogCiAJcmVzdWx0ID0gbG9va3VwX3RyZWUoYWN0aXZlX2NhY2hlX3RyZWUtPnNoYTEpOwpAQCAtMzM5LDcgKzM0MCw3IEBACiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOwogCQlzdHJ1Y3Qgc3RhZ2VfZGF0YSAqZTsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKCFjZV9zdGFnZShjZSkpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvbWVyZ2V0b29scy9rZGlmZjMgYi9tZXJnZXRvb2xzL2tkaWZmMwppbmRleCAyOGZlYWQ0Li5hMzAwMzRmIDEwMDY0NAotLS0gYS9tZXJnZXRvb2xzL2tkaWZmMworKysgYi9tZXJnZXRvb2xzL2tkaWZmMwpAQCAtMSw1ICsxLDUgQEAKIGRpZmZfY21kICgpIHsKLQkiJG1lcmdlX3Rvb2xfcGF0aCIgLS1hdXRvIFwKKwkiJG1lcmdlX3Rvb2xfcGF0aCIgXAogCQktLUwxICIkTUVSR0VEIChBKSIgLS1MMiAiJE1FUkdFRCAoQikiIFwKIAkJIiRMT0NBTCIgIiRSRU1PVEUiID4vZGV2L251bGwgMj4mMQogfQpkaWZmIC0tZ2l0IGEvbm90ZXMtbWVyZ2UuYyBiL25vdGVzLW1lcmdlLmMKaW5kZXggMGY2N2JkMy4uYWIxODg1NyAxMDA2NDQKLS0tIGEvbm90ZXMtbWVyZ2UuYworKysgYi9ub3Rlcy1tZXJnZS5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgIm5vdGVzLmgiCiAjaW5jbHVkZSAibm90ZXMtbWVyZ2UuaCIKICNpbmNsdWRlICJzdHJidWYuaCIKKyNpbmNsdWRlICJub3Rlcy11dGlscy5oIgogCiBzdHJ1Y3Qgbm90ZXNfbWVyZ2VfcGFpciB7CiAJdW5zaWduZWQgY2hhciBvYmpbMjBdLCBiYXNlWzIwXSwgbG9jYWxbMjBdLCByZW1vdGVbMjBdOwpAQCAtNTMwLDMyICs1MzEsNiBAQAogCXJldHVybiBjb25mbGljdHMgPyAtMSA6IDE7CiB9CiAKLXZvaWQgY3JlYXRlX25vdGVzX2NvbW1pdChzdHJ1Y3Qgbm90ZXNfdHJlZSAqdCwgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLAotCQkJIGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqcmVzdWx0X3NoYTEpCi17Ci0JdW5zaWduZWQgY2hhciB0cmVlX3NoYTFbMjBdOwotCi0JYXNzZXJ0KHQtPmluaXRpYWxpemVkKTsKLQotCWlmICh3cml0ZV9ub3Rlc190cmVlKHQsIHRyZWVfc2hhMSkpCi0JCWRpZSgiRmFpbGVkIHRvIHdyaXRlIG5vdGVzIHRyZWUgdG8gZGF0YWJhc2UiKTsKLQotCWlmICghcGFyZW50cykgewotCQkvKiBEZWR1Y2UgcGFyZW50IGNvbW1pdCBmcm9tIHQtPnJlZiAqLwotCQl1bnNpZ25lZCBjaGFyIHBhcmVudF9zaGExWzIwXTsKLQkJaWYgKCFyZWFkX3JlZih0LT5yZWYsIHBhcmVudF9zaGExKSkgewotCQkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gbG9va3VwX2NvbW1pdChwYXJlbnRfc2hhMSk7Ci0JCQlpZiAoIXBhcmVudCB8fCBwYXJzZV9jb21taXQocGFyZW50KSkKLQkJCQlkaWUoIkZhaWxlZCB0byBmaW5kL3BhcnNlIGNvbW1pdCAlcyIsIHQtPnJlZik7Ci0JCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmcGFyZW50cyk7Ci0JCX0KLQkJLyogZWxzZTogdC0+cmVmIHBvaW50cyB0byBub3RoaW5nLCBhc3N1bWUgcm9vdC9vcnBoYW4gY29tbWl0ICovCi0JfQotCi0JaWYgKGNvbW1pdF90cmVlKG1zZywgdHJlZV9zaGExLCBwYXJlbnRzLCByZXN1bHRfc2hhMSwgTlVMTCwgTlVMTCkpCi0JCWRpZSgiRmFpbGVkIHRvIGNvbW1pdCBub3RlcyB0cmVlIHRvIGRhdGFiYXNlIik7Ci19Ci0KIGludCBub3Rlc19tZXJnZShzdHJ1Y3Qgbm90ZXNfbWVyZ2Vfb3B0aW9ucyAqbywKIAkJc3RydWN0IG5vdGVzX3RyZWUgKmxvY2FsX3RyZWUsCiAJCXVuc2lnbmVkIGNoYXIgKnJlc3VsdF9zaGExKQpkaWZmIC0tZ2l0IGEvbm90ZXMtbWVyZ2UuaCBiL25vdGVzLW1lcmdlLmgKaW5kZXggMGMxMWIxNy4uMWQwMWY2YSAxMDA2NDQKLS0tIGEvbm90ZXMtbWVyZ2UuaAorKysgYi9ub3Rlcy1tZXJnZS5oCkBAIC0yNiwyMCArMjYsNiBAQAogdm9pZCBpbml0X25vdGVzX21lcmdlX29wdGlvbnMoc3RydWN0IG5vdGVzX21lcmdlX29wdGlvbnMgKm8pOwogCiAvKgotICogQ3JlYXRlIG5ldyBub3RlcyBjb21taXQgZnJvbSB0aGUgZ2l2ZW4gbm90ZXMgdHJlZQotICoKLSAqIFByb3BlcnRpZXMgb2YgdGhlIGNyZWF0ZWQgY29tbWl0OgotICogLSB0cmVlOiB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdCB0byBhIHRyZWUgb2JqZWN0IHdpdGggd3JpdGVfbm90ZXNfdHJlZSgpLgotICogLSBwYXJlbnRzOiB0aGUgZ2l2ZW4gcGFyZW50cyBPUiAoaWYgTlVMTCkgdGhlIGNvbW1pdCByZWZlcmVuY2VkIGJ5IHQtPnJlZi4KLSAqIC0gYXV0aG9yL2NvbW1pdHRlcjogdGhlIGRlZmF1bHQgZGV0ZXJtaW5lZCBieSBjb21tbWl0X3RyZWUoKS4KLSAqIC0gY29tbWl0IG1lc3NhZ2U6IG1zZwotICoKLSAqIFRoZSByZXN1bHRpbmcgY29tbWl0IFNIQTEgaXMgc3RvcmVkIGluIHJlc3VsdF9zaGExLgotICovCi12b2lkIGNyZWF0ZV9ub3Rlc19jb21taXQoc3RydWN0IG5vdGVzX3RyZWUgKnQsIHN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50cywKLQkJCSBjb25zdCBzdHJ1Y3Qgc3RyYnVmICptc2csIHVuc2lnbmVkIGNoYXIgKnJlc3VsdF9zaGExKTsKLQotLyoKICAqIE1lcmdlIG5vdGVzIGZyb20gby0+cmVtb3RlX3JlZiBpbnRvIG8tPmxvY2FsX3JlZgogICoKICAqIFRoZSBnaXZlbiBub3Rlc190cmVlICdsb2NhbF90cmVlJyBtdXN0IGJlIHRoZSBub3Rlc190cmVlIHJlZmVyZW5jZWQgYnkgdGhlCmRpZmYgLS1naXQgYS9ub3Rlcy11dGlscy5jIGIvbm90ZXMtdXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTA3YzM3Ci0tLSAvZGV2L251bGwKKysrIGIvbm90ZXMtdXRpbHMuYwpAQCAtMCwwICsxLDE1NyBAQAorI2luY2x1ZGUgImNhY2hlLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCisjaW5jbHVkZSAicmVmcy5oIgorI2luY2x1ZGUgIm5vdGVzLXV0aWxzLmgiCisKK3ZvaWQgY3JlYXRlX25vdGVzX2NvbW1pdChzdHJ1Y3Qgbm90ZXNfdHJlZSAqdCwgc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzLAorCQkJIGNvbnN0IHN0cnVjdCBzdHJidWYgKm1zZywgdW5zaWduZWQgY2hhciAqcmVzdWx0X3NoYTEpCit7CisJdW5zaWduZWQgY2hhciB0cmVlX3NoYTFbMjBdOworCisJYXNzZXJ0KHQtPmluaXRpYWxpemVkKTsKKworCWlmICh3cml0ZV9ub3Rlc190cmVlKHQsIHRyZWVfc2hhMSkpCisJCWRpZSgiRmFpbGVkIHRvIHdyaXRlIG5vdGVzIHRyZWUgdG8gZGF0YWJhc2UiKTsKKworCWlmICghcGFyZW50cykgeworCQkvKiBEZWR1Y2UgcGFyZW50IGNvbW1pdCBmcm9tIHQtPnJlZiAqLworCQl1bnNpZ25lZCBjaGFyIHBhcmVudF9zaGExWzIwXTsKKwkJaWYgKCFyZWFkX3JlZih0LT5yZWYsIHBhcmVudF9zaGExKSkgeworCQkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gbG9va3VwX2NvbW1pdChwYXJlbnRfc2hhMSk7CisJCQlpZiAoIXBhcmVudCB8fCBwYXJzZV9jb21taXQocGFyZW50KSkKKwkJCQlkaWUoIkZhaWxlZCB0byBmaW5kL3BhcnNlIGNvbW1pdCAlcyIsIHQtPnJlZik7CisJCQljb21taXRfbGlzdF9pbnNlcnQocGFyZW50LCAmcGFyZW50cyk7CisJCX0KKwkJLyogZWxzZTogdC0+cmVmIHBvaW50cyB0byBub3RoaW5nLCBhc3N1bWUgcm9vdC9vcnBoYW4gY29tbWl0ICovCisJfQorCisJaWYgKGNvbW1pdF90cmVlKG1zZywgdHJlZV9zaGExLCBwYXJlbnRzLCByZXN1bHRfc2hhMSwgTlVMTCwgTlVMTCkpCisJCWRpZSgiRmFpbGVkIHRvIGNvbW1pdCBub3RlcyB0cmVlIHRvIGRhdGFiYXNlIik7Cit9CisKK3ZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpCit7CisJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKwl1bnNpZ25lZCBjaGFyIGNvbW1pdF9zaGExWzIwXTsKKworCWlmICghdCkKKwkJdCA9ICZkZWZhdWx0X25vdGVzX3RyZWU7CisJaWYgKCF0LT5pbml0aWFsaXplZCB8fCAhdC0+cmVmIHx8ICEqdC0+cmVmKQorCQlkaWUoXygiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIikpOworCWlmICghdC0+ZGlydHkpCisJCXJldHVybjsgLyogZG9uJ3QgaGF2ZSB0byBjb21taXQgYW4gdW5jaGFuZ2VkIHRyZWUgKi8KKworCS8qIFByZXBhcmUgY29tbWl0IG1lc3NhZ2UgYW5kIHJlZmxvZyBtZXNzYWdlICovCisJc3RyYnVmX2FkZHN0cigmYnVmLCBtc2cpOworCWlmIChidWYuYnVmW2J1Zi5sZW4gLSAxXSAhPSAnXG4nKQorCQlzdHJidWZfYWRkY2goJmJ1ZiwgJ1xuJyk7IC8qIE1ha2Ugc3VyZSBtc2cgZW5kcyB3aXRoIG5ld2xpbmUgKi8KKworCWNyZWF0ZV9ub3Rlc19jb21taXQodCwgTlVMTCwgJmJ1ZiwgY29tbWl0X3NoYTEpOworCXN0cmJ1Zl9pbnNlcnQoJmJ1ZiwgMCwgIm5vdGVzOiAiLCA3KTsgLyogY29tbWl0IG1lc3NhZ2Ugc3RhcnRzIGF0IGluZGV4IDcgKi8KKwl1cGRhdGVfcmVmKGJ1Zi5idWYsIHQtPnJlZiwgY29tbWl0X3NoYTEsIE5VTEwsIDAsIERJRV9PTl9FUlIpOworCisJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7Cit9CisKK3N0YXRpYyBjb21iaW5lX25vdGVzX2ZuIHBhcnNlX2NvbWJpbmVfbm90ZXNfZm4oY29uc3QgY2hhciAqdikKK3sKKwlpZiAoIXN0cmNhc2VjbXAodiwgIm92ZXJ3cml0ZSIpKQorCQlyZXR1cm4gY29tYmluZV9ub3Rlc19vdmVyd3JpdGU7CisJZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImlnbm9yZSIpKQorCQlyZXR1cm4gY29tYmluZV9ub3Rlc19pZ25vcmU7CisJZWxzZSBpZiAoIXN0cmNhc2VjbXAodiwgImNvbmNhdGVuYXRlIikpCisJCXJldHVybiBjb21iaW5lX25vdGVzX2NvbmNhdGVuYXRlOworCWVsc2UgaWYgKCFzdHJjYXNlY21wKHYsICJjYXRfc29ydF91bmlxIikpCisJCXJldHVybiBjb21iaW5lX25vdGVzX2NhdF9zb3J0X3VuaXE7CisJZWxzZQorCQlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGludCBub3Rlc19yZXdyaXRlX2NvbmZpZyhjb25zdCBjaGFyICprLCBjb25zdCBjaGFyICp2LCB2b2lkICpjYikKK3sKKwlzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMgPSBjYjsKKwlpZiAoIXByZWZpeGNtcChrLCAibm90ZXMucmV3cml0ZS4iKSAmJiAhc3RyY21wKGsrMTQsIGMtPmNtZCkpIHsKKwkJYy0+ZW5hYmxlZCA9IGdpdF9jb25maWdfYm9vbChrLCB2KTsKKwkJcmV0dXJuIDA7CisJfSBlbHNlIGlmICghYy0+bW9kZV9mcm9tX2VudiAmJiAhc3RyY21wKGssICJub3Rlcy5yZXdyaXRlbW9kZSIpKSB7CisJCWlmICghdikKKwkJCWNvbmZpZ19lcnJvcl9ub25ib29sKGspOworCQljLT5jb21iaW5lID0gcGFyc2VfY29tYmluZV9ub3Rlc19mbih2KTsKKwkJaWYgKCFjLT5jb21iaW5lKSB7CisJCQllcnJvcihfKCJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciKSwgdik7CisJCQlyZXR1cm4gMTsKKwkJfQorCQlyZXR1cm4gMDsKKwl9IGVsc2UgaWYgKCFjLT5yZWZzX2Zyb21fZW52ICYmICFzdHJjbXAoaywgIm5vdGVzLnJld3JpdGVyZWYiKSkgeworCQkvKiBub3RlIHRoYXQgYSByZWZzLyBwcmVmaXggaXMgaW1wbGllZCBpbiB0aGUKKwkJICogdW5kZXJseWluZyBmb3JfZWFjaF9nbG9iX3JlZiAqLworCQlpZiAoIXByZWZpeGNtcCh2LCAicmVmcy9ub3Rlcy8iKSkKKwkJCXN0cmluZ19saXN0X2FkZF9yZWZzX2J5X2dsb2IoYy0+cmVmcywgdik7CisJCWVsc2UKKwkJCXdhcm5pbmcoXygiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyIKKwkJCQkiIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIpLCB2KTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworc3RydWN0IG5vdGVzX3Jld3JpdGVfY2ZnICppbml0X2NvcHlfbm90ZXNfZm9yX3Jld3JpdGUoY29uc3QgY2hhciAqY21kKQoreworCXN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZyAqYyA9IHhtYWxsb2Moc2l6ZW9mKHN0cnVjdCBub3Rlc19yZXdyaXRlX2NmZykpOworCWNvbnN0IGNoYXIgKnJld3JpdGVfbW9kZV9lbnYgPSBnZXRlbnYoR0lUX05PVEVTX1JFV1JJVEVfTU9ERV9FTlZJUk9OTUVOVCk7CisJY29uc3QgY2hhciAqcmV3cml0ZV9yZWZzX2VudiA9IGdldGVudihHSVRfTk9URVNfUkVXUklURV9SRUZfRU5WSVJPTk1FTlQpOworCWMtPmNtZCA9IGNtZDsKKwljLT5lbmFibGVkID0gMTsKKwljLT5jb21iaW5lID0gY29tYmluZV9ub3Rlc19jb25jYXRlbmF0ZTsKKwljLT5yZWZzID0geGNhbGxvYygxLCBzaXplb2Yoc3RydWN0IHN0cmluZ19saXN0KSk7CisJYy0+cmVmcy0+c3RyZHVwX3N0cmluZ3MgPSAxOworCWMtPnJlZnNfZnJvbV9lbnYgPSAwOworCWMtPm1vZGVfZnJvbV9lbnYgPSAwOworCWlmIChyZXdyaXRlX21vZGVfZW52KSB7CisJCWMtPm1vZGVfZnJvbV9lbnYgPSAxOworCQljLT5jb21iaW5lID0gcGFyc2VfY29tYmluZV9ub3Rlc19mbihyZXdyaXRlX21vZGVfZW52KTsKKwkJaWYgKCFjLT5jb21iaW5lKQorCQkJLyogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKwkJCSAgIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZSAqLworCQkJZXJyb3IoXygiQmFkICVzIHZhbHVlOiAnJXMnIiksIEdJVF9OT1RFU19SRVdSSVRFX01PREVfRU5WSVJPTk1FTlQsCisJCQkJCXJld3JpdGVfbW9kZV9lbnYpOworCX0KKwlpZiAocmV3cml0ZV9yZWZzX2VudikgeworCQljLT5yZWZzX2Zyb21fZW52ID0gMTsKKwkJc3RyaW5nX2xpc3RfYWRkX3JlZnNfZnJvbV9jb2xvbl9zZXAoYy0+cmVmcywgcmV3cml0ZV9yZWZzX2Vudik7CisJfQorCWdpdF9jb25maWcobm90ZXNfcmV3cml0ZV9jb25maWcsIGMpOworCWlmICghYy0+ZW5hYmxlZCB8fCAhYy0+cmVmcy0+bnIpIHsKKwkJc3RyaW5nX2xpc3RfY2xlYXIoYy0+cmVmcywgMCk7CisJCWZyZWUoYy0+cmVmcyk7CisJCWZyZWUoYyk7CisJCXJldHVybiBOVUxMOworCX0KKwljLT50cmVlcyA9IGxvYWRfbm90ZXNfdHJlZXMoYy0+cmVmcyk7CisJc3RyaW5nX2xpc3RfY2xlYXIoYy0+cmVmcywgMCk7CisJZnJlZShjLT5yZWZzKTsKKwlyZXR1cm4gYzsKK30KKworaW50IGNvcHlfbm90ZV9mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsCisJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb21fb2JqLCBjb25zdCB1bnNpZ25lZCBjaGFyICp0b19vYmopCit7CisJaW50IHJldCA9IDA7CisJaW50IGk7CisJZm9yIChpID0gMDsgYy0+dHJlZXNbaV07IGkrKykKKwkJcmV0ID0gY29weV9ub3RlKGMtPnRyZWVzW2ldLCBmcm9tX29iaiwgdG9fb2JqLCAxLCBjLT5jb21iaW5lKSB8fCByZXQ7CisJcmV0dXJuIHJldDsKK30KKwordm9pZCBmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsIGNvbnN0IGNoYXIgKm1zZykKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBjLT50cmVlc1tpXTsgaSsrKSB7CisJCWNvbW1pdF9ub3RlcyhjLT50cmVlc1tpXSwgbXNnKTsKKwkJZnJlZV9ub3RlcyhjLT50cmVlc1tpXSk7CisJfQorCWZyZWUoYy0+dHJlZXMpOworCWZyZWUoYyk7Cit9CmRpZmYgLS1naXQgYS9ub3Rlcy11dGlscy5oIGIvbm90ZXMtdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGNiMWJmCi0tLSAvZGV2L251bGwKKysrIGIvbm90ZXMtdXRpbHMuaApAQCAtMCwwICsxLDM3IEBACisjaWZuZGVmIE5PVEVTX1VUSUxTX0gKKyNkZWZpbmUgTk9URVNfVVRJTFNfSAorCisjaW5jbHVkZSAibm90ZXMuaCIKKworLyoKKyAqIENyZWF0ZSBuZXcgbm90ZXMgY29tbWl0IGZyb20gdGhlIGdpdmVuIG5vdGVzIHRyZWUKKyAqCisgKiBQcm9wZXJ0aWVzIG9mIHRoZSBjcmVhdGVkIGNvbW1pdDoKKyAqIC0gdHJlZTogdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHQgdG8gYSB0cmVlIG9iamVjdCB3aXRoIHdyaXRlX25vdGVzX3RyZWUoKS4KKyAqIC0gcGFyZW50czogdGhlIGdpdmVuIHBhcmVudHMgT1IgKGlmIE5VTEwpIHRoZSBjb21taXQgcmVmZXJlbmNlZCBieSB0LT5yZWYuCisgKiAtIGF1dGhvci9jb21taXR0ZXI6IHRoZSBkZWZhdWx0IGRldGVybWluZWQgYnkgY29tbW1pdF90cmVlKCkuCisgKiAtIGNvbW1pdCBtZXNzYWdlOiBtc2cKKyAqCisgKiBUaGUgcmVzdWx0aW5nIGNvbW1pdCBTSEExIGlzIHN0b3JlZCBpbiByZXN1bHRfc2hhMS4KKyAqLwordm9pZCBjcmVhdGVfbm90ZXNfY29tbWl0KHN0cnVjdCBub3Rlc190cmVlICp0LCBzdHJ1Y3QgY29tbWl0X2xpc3QgKnBhcmVudHMsCisJCQkgY29uc3Qgc3RydWN0IHN0cmJ1ZiAqbXNnLCB1bnNpZ25lZCBjaGFyICpyZXN1bHRfc2hhMSk7CisKK3ZvaWQgY29tbWl0X25vdGVzKHN0cnVjdCBub3Rlc190cmVlICp0LCBjb25zdCBjaGFyICptc2cpOworCitzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgeworCXN0cnVjdCBub3Rlc190cmVlICoqdHJlZXM7CisJY29uc3QgY2hhciAqY21kOworCWludCBlbmFibGVkOworCWNvbWJpbmVfbm90ZXNfZm4gY29tYmluZTsKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZnM7CisJaW50IHJlZnNfZnJvbV9lbnY7CisJaW50IG1vZGVfZnJvbV9lbnY7Cit9OworCitzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmluaXRfY29weV9ub3Rlc19mb3JfcmV3cml0ZShjb25zdCBjaGFyICpjbWQpOworaW50IGNvcHlfbm90ZV9mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsCisJCQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb21fb2JqLCBjb25zdCB1bnNpZ25lZCBjaGFyICp0b19vYmopOwordm9pZCBmaW5pc2hfY29weV9ub3Rlc19mb3JfcmV3cml0ZShzdHJ1Y3Qgbm90ZXNfcmV3cml0ZV9jZmcgKmMsIGNvbnN0IGNoYXIgKm1zZyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbm90ZXMuYyBiL25vdGVzLmMKaW5kZXggZjYzZmQ1Ny4uYjY5YzBiOCAxMDA2NDQKLS0tIGEvbm90ZXMuYworKysgYi9ub3Rlcy5jCkBAIC05MTgsMTcgKzkxOCwyMSBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgc3RyaW5nX2xpc3RfYWRkX29uZV9yZWYoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKK3N0YXRpYyBpbnQgc3RyaW5nX2xpc3RfYWRkX29uZV9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKIAkJCQkgICBpbnQgZmxhZywgdm9pZCAqY2IpCiB7CiAJc3RydWN0IHN0cmluZ19saXN0ICpyZWZzID0gY2I7Ci0JaWYgKCF1bnNvcnRlZF9zdHJpbmdfbGlzdF9oYXNfc3RyaW5nKHJlZnMsIHBhdGgpKQotCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmcywgcGF0aCk7CisJaWYgKCF1bnNvcnRlZF9zdHJpbmdfbGlzdF9oYXNfc3RyaW5nKHJlZnMsIHJlZm5hbWUpKQorCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmcywgcmVmbmFtZSk7CiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBUaGUgbGlzdCBhcmd1bWVudCBtdXN0IGhhdmUgc3RyZHVwX3N0cmluZ3Mgc2V0IG9uIGl0LgorICovCiB2b2lkIHN0cmluZ19saXN0X2FkZF9yZWZzX2J5X2dsb2Ioc3RydWN0IHN0cmluZ19saXN0ICpsaXN0LCBjb25zdCBjaGFyICpnbG9iKQogeworCWFzc2VydChsaXN0LT5zdHJkdXBfc3RyaW5ncyk7CiAJaWYgKGhhc19nbG9iX3NwZWNpYWxzKGdsb2IpKSB7CiAJCWZvcl9lYWNoX2dsb2JfcmVmKHN0cmluZ19saXN0X2FkZF9vbmVfcmVmLCBnbG9iLCBsaXN0KTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvbm90ZXMuaCBiL25vdGVzLmgKaW5kZXggMzMyNGM0OC4uMmEzZjkyMyAxMDA2NDQKLS0tIGEvbm90ZXMuaAorKysgYi9ub3Rlcy5oCkBAIC03Nyw3ICs3Nyw3IEBACiAgKiB2YXJpYWJsZSBpcyB1c2VkLCBhbmQgaWYgdGhhdCBpcyBtaXNzaW5nLCB0aGUgZGVmYXVsdCBub3RlcyByZWYgaXMgdXNlZAogICogKCJyZWZzL25vdGVzL2NvbW1pdHMiKS4KICAqCi0gKiBJZiB5b3UgbmVlZCB0byByZS1pbnRpYWxpemUgYSBub3Rlc190cmVlIHN0cnVjdHVyZSAoZS5nLiB3aGVuIHN3aXRjaGluZyBmcm9tCisgKiBJZiB5b3UgbmVlZCB0byByZS1pbml0aWFsaXplIGEgbm90ZXNfdHJlZSBzdHJ1Y3R1cmUgKGUuZy4gd2hlbiBzd2l0Y2hpbmcgZnJvbQogICogb25lIG5vdGVzIHJlZiB0byBhbm90aGVyKSwgeW91IG11c3QgZmlyc3QgZGUtaW5pdGlhbGl6ZSB0aGUgbm90ZXNfdHJlZQogICogc3RydWN0dXJlIGJ5IGNhbGxpbmcgZnJlZV9ub3RlcyhzdHJ1Y3Qgbm90ZXNfdHJlZSAqKS4KICAqCmRpZmYgLS1naXQgYS9vYmplY3QuYyBiL29iamVjdC5jCmluZGV4IDIwNzAzZjUuLmQ4YTRiMWYgMTAwNjQ0Ci0tLSBhL29iamVjdC5jCisrKyBiL29iamVjdC5jCkBAIC03MSwxMyArNzEsMTMgQEAKIAogc3RydWN0IG9iamVjdCAqbG9va3VwX29iamVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewotCXVuc2lnbmVkIGludCBpOworCXVuc2lnbmVkIGludCBpLCBmaXJzdDsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmo7CiAKIAlpZiAoIW9ial9oYXNoKQogCQlyZXR1cm4gTlVMTDsKIAotCWkgPSBoYXNodGFibGVfaW5kZXgoc2hhMSk7CisJZmlyc3QgPSBpID0gaGFzaHRhYmxlX2luZGV4KHNoYTEpOwogCXdoaWxlICgob2JqID0gb2JqX2hhc2hbaV0pICE9IE5VTEwpIHsKIAkJaWYgKCFoYXNoY21wKHNoYTEsIG9iai0+c2hhMSkpCiAJCQlicmVhazsKQEAgLTg1LDYgKzg1LDE2IEBACiAJCWlmIChpID09IG9ial9oYXNoX3NpemUpCiAJCQlpID0gMDsKIAl9CisJaWYgKG9iaiAmJiBpICE9IGZpcnN0KSB7CisJCS8qCisJCSAqIE1vdmUgb2JqZWN0IHRvIHdoZXJlIHdlIHN0YXJ0ZWQgdG8gbG9vayBmb3IgaXQgc28KKwkJICogdGhhdCB3ZSBkbyBub3QgbmVlZCB0byB3YWxrIHRoZSBoYXNoIHRhYmxlIHRoZSBuZXh0CisJCSAqIHRpbWUgd2UgbG9vayBmb3IgaXQuCisJCSAqLworCQlzdHJ1Y3Qgb2JqZWN0ICp0bXAgPSBvYmpfaGFzaFtpXTsKKwkJb2JqX2hhc2hbaV0gPSBvYmpfaGFzaFtmaXJzdF07CisJCW9ial9oYXNoW2ZpcnN0XSA9IHRtcDsKKwl9CiAJcmV0dXJuIG9iajsKIH0KIApAQCAtMTM1LDcgKzE0NSw3IEBACiBzdHJ1Y3Qgb2JqZWN0ICpwYXJzZV9vYmplY3RfYnVmZmVyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGVudW0gb2JqZWN0X3R5cGUgdHlwZSwgdW5zaWduZWQgbG9uZyBzaXplLCB2b2lkICpidWZmZXIsIGludCAqZWF0ZW5fcCkKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmo7Ci0JaW50IGVhdGVuID0gMDsKKwkqZWF0ZW5fcCA9IDA7CiAKIAlvYmogPSBOVUxMOwogCWlmICh0eXBlID09IE9CSl9CTE9CKSB7CkBAIC0xNTQsNyArMTY0LDcgQEAKIAkJCWlmICghdHJlZS0+b2JqZWN0LnBhcnNlZCkgewogCQkJCWlmIChwYXJzZV90cmVlX2J1ZmZlcih0cmVlLCBidWZmZXIsIHNpemUpKQogCQkJCQlyZXR1cm4gTlVMTDsKLQkJCQllYXRlbiA9IDE7CisJCQkJKmVhdGVuX3AgPSAxOwogCQkJfQogCQl9CiAJfSBlbHNlIGlmICh0eXBlID09IE9CSl9DT01NSVQpIHsKQEAgLTE2NCw3ICsxNzQsNyBAQAogCQkJCXJldHVybiBOVUxMOwogCQkJaWYgKCFjb21taXQtPmJ1ZmZlcikgewogCQkJCWNvbW1pdC0+YnVmZmVyID0gYnVmZmVyOwotCQkJCWVhdGVuID0gMTsKKwkJCQkqZWF0ZW5fcCA9IDE7CiAJCQl9CiAJCQlvYmogPSAmY29tbWl0LT5vYmplY3Q7CiAJCX0KQEAgLTE4MSw3ICsxOTEsNiBAQAogCX0KIAlpZiAob2JqICYmIG9iai0+dHlwZSA9PSBPQkpfTk9ORSkKIAkJb2JqLT50eXBlID0gdHlwZTsKLQkqZWF0ZW5fcCA9IGVhdGVuOwogCXJldHVybiBvYmo7CiB9CiAKQEAgLTI2MCwxMSArMjY5LDE4IEBACiAJYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUob2JqLCBuYW1lLCBhcnJheSwgU19JRklOVkFMSUQpOwogfQogCisvKgorICogQSB6ZXJvLWxlbmd0aCBzdHJpbmcgdG8gd2hpY2ggb2JqZWN0X2FycmF5X2VudHJ5OjpuYW1lIGNhbiBiZQorICogaW5pdGlhbGl6ZWQgd2l0aG91dCByZXF1aXJpbmcgYSBtYWxsb2MvZnJlZS4KKyAqLworc3RhdGljIGNoYXIgb2JqZWN0X2FycmF5X3Nsb3BidWZbMV07CisKIHZvaWQgYWRkX29iamVjdF9hcnJheV93aXRoX21vZGUoc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgdW5zaWduZWQgbW9kZSkKIHsKIAl1bnNpZ25lZCBuciA9IGFycmF5LT5ucjsKIAl1bnNpZ25lZCBhbGxvYyA9IGFycmF5LT5hbGxvYzsKIAlzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICpvYmplY3RzID0gYXJyYXktPm9iamVjdHM7CisJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqZW50cnk7CiAKIAlpZiAobnIgPj0gYWxsb2MpIHsKIAkJYWxsb2MgPSAoYWxsb2MgKyAzMikgKiAyOwpAQCAtMjcyLDI4ICsyODgsNjcgQEAKIAkJYXJyYXktPmFsbG9jID0gYWxsb2M7CiAJCWFycmF5LT5vYmplY3RzID0gb2JqZWN0czsKIAl9Ci0Jb2JqZWN0c1tucl0uaXRlbSA9IG9iajsKLQlvYmplY3RzW25yXS5uYW1lID0gbmFtZTsKLQlvYmplY3RzW25yXS5tb2RlID0gbW9kZTsKKwllbnRyeSA9ICZvYmplY3RzW25yXTsKKwllbnRyeS0+aXRlbSA9IG9iajsKKwlpZiAoIW5hbWUpCisJCWVudHJ5LT5uYW1lID0gTlVMTDsKKwllbHNlIGlmICghKm5hbWUpCisJCS8qIFVzZSBvdXIgb3duIGVtcHR5IHN0cmluZyBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgb25lOiAqLworCQllbnRyeS0+bmFtZSA9IG9iamVjdF9hcnJheV9zbG9wYnVmOworCWVsc2UKKwkJZW50cnktPm5hbWUgPSB4c3RyZHVwKG5hbWUpOworCWVudHJ5LT5tb2RlID0gbW9kZTsKIAlhcnJheS0+bnIgPSArK25yOwogfQogCit2b2lkIG9iamVjdF9hcnJheV9maWx0ZXIoc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXksCisJCQkgb2JqZWN0X2FycmF5X2VhY2hfZnVuY190IHdhbnQsIHZvaWQgKmNiX2RhdGEpCit7CisJdW5zaWduZWQgbnIgPSBhcnJheS0+bnIsIHNyYywgZHN0OworCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKm9iamVjdHMgPSBhcnJheS0+b2JqZWN0czsKKworCWZvciAoc3JjID0gZHN0ID0gMDsgc3JjIDwgbnI7IHNyYysrKSB7CisJCWlmICh3YW50KCZvYmplY3RzW3NyY10sIGNiX2RhdGEpKSB7CisJCQlpZiAoc3JjICE9IGRzdCkKKwkJCQlvYmplY3RzW2RzdF0gPSBvYmplY3RzW3NyY107CisJCQlkc3QrKzsKKwkJfSBlbHNlIHsKKwkJCWlmIChvYmplY3RzW3NyY10ubmFtZSAhPSBvYmplY3RfYXJyYXlfc2xvcGJ1ZikKKwkJCQlmcmVlKG9iamVjdHNbc3JjXS5uYW1lKTsKKwkJfQorCX0KKwlhcnJheS0+bnIgPSBkc3Q7Cit9CisKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZmYgYXJyYXkgYWxyZWFkeSBjb250YWlucyBhbiBlbnRyeSB3aXRoIG5hbWUuCisgKi8KK3N0YXRpYyBpbnQgY29udGFpbnNfbmFtZShzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKwl1bnNpZ25lZCBuciA9IGFycmF5LT5uciwgaTsKKwlzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICpvYmplY3QgPSBhcnJheS0+b2JqZWN0czsKKworCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrLCBvYmplY3QrKykKKwkJaWYgKCFzdHJjbXAob2JqZWN0LT5uYW1lLCBuYW1lKSkKKwkJCXJldHVybiAxOworCXJldHVybiAwOworfQorCiB2b2lkIG9iamVjdF9hcnJheV9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSkKIHsKLQl1bnNpZ25lZCBpbnQgcmVmLCBzcmMsIGRzdDsKKwl1bnNpZ25lZCBuciA9IGFycmF5LT5uciwgc3JjOwogCXN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKm9iamVjdHMgPSBhcnJheS0+b2JqZWN0czsKIAotCWZvciAocmVmID0gMDsgcmVmICsgMSA8IGFycmF5LT5ucjsgcmVmKyspIHsKLQkJZm9yIChzcmMgPSByZWYgKyAxLCBkc3QgPSBzcmM7Ci0JCSAgICAgc3JjIDwgYXJyYXktPm5yOwotCQkgICAgIHNyYysrKSB7Ci0JCQlpZiAoIXN0cmNtcChvYmplY3RzW3JlZl0ubmFtZSwgb2JqZWN0c1tzcmNdLm5hbWUpKQotCQkJCWNvbnRpbnVlOwotCQkJaWYgKHNyYyAhPSBkc3QpCi0JCQkJb2JqZWN0c1tkc3RdID0gb2JqZWN0c1tzcmNdOwotCQkJZHN0Kys7CisJYXJyYXktPm5yID0gMDsKKwlmb3IgKHNyYyA9IDA7IHNyYyA8IG5yOyBzcmMrKykgeworCQlpZiAoIWNvbnRhaW5zX25hbWUoYXJyYXksIG9iamVjdHNbc3JjXS5uYW1lKSkgeworCQkJaWYgKHNyYyAhPSBhcnJheS0+bnIpCisJCQkJb2JqZWN0c1thcnJheS0+bnJdID0gb2JqZWN0c1tzcmNdOworCQkJYXJyYXktPm5yKys7CisJCX0gZWxzZSB7CisJCQlpZiAob2JqZWN0c1tzcmNdLm5hbWUgIT0gb2JqZWN0X2FycmF5X3Nsb3BidWYpCisJCQkJZnJlZShvYmplY3RzW3NyY10ubmFtZSk7CiAJCX0KLQkJYXJyYXktPm5yID0gZHN0OwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvb2JqZWN0LmggYi9vYmplY3QuaAppbmRleCA5N2QzODRiLi4yZmY2OGM1IDEwMDY0NAotLS0gYS9vYmplY3QuaAorKysgYi9vYmplY3QuaApAQCAtMTEsNyArMTEsMTMgQEAKIAl1bnNpZ25lZCBpbnQgYWxsb2M7CiAJc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSB7CiAJCXN0cnVjdCBvYmplY3QgKml0ZW07Ci0JCWNvbnN0IGNoYXIgKm5hbWU7CisJCS8qCisJCSAqIG5hbWUgb3IgTlVMTC4gIElmIG5vbi1OVUxMLCB0aGUgbWVtb3J5IHBvaW50ZWQgdG8KKwkJICogaXMgb3duZWQgYnkgdGhpcyBvYmplY3QgKmV4Y2VwdCogaWYgaXQgcG9pbnRzIGF0CisJCSAqIG9iamVjdF9hcnJheV9zbG9wYnVmLCB3aGljaCBpcyBhIHN0YXRpYyBjb3B5IG9mIHRoZQorCQkgKiBlbXB0eSBzdHJpbmcuCisJCSAqLworCQljaGFyICpuYW1lOwogCQl1bnNpZ25lZCBtb2RlOwogCX0gKm9iamVjdHM7CiB9OwpAQCAtODUsNyArOTEsMjIgQEAKIC8qIE9iamVjdCBhcnJheSBoYW5kbGluZyAuLiAqLwogdm9pZCBhZGRfb2JqZWN0X2FycmF5KHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXkpOwogdm9pZCBhZGRfb2JqZWN0X2FycmF5X3dpdGhfbW9kZShzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBvYmplY3RfYXJyYXkgKmFycmF5LCB1bnNpZ25lZCBtb2RlKTsKLXZvaWQgb2JqZWN0X2FycmF5X3JlbW92ZV9kdXBsaWNhdGVzKHN0cnVjdCBvYmplY3RfYXJyYXkgKik7CisKK3R5cGVkZWYgaW50ICgqb2JqZWN0X2FycmF5X2VhY2hfZnVuY190KShzdHJ1Y3Qgb2JqZWN0X2FycmF5X2VudHJ5ICosIHZvaWQgKik7CisKKy8qCisgKiBBcHBseSB3YW50IHRvIGVhY2ggZW50cnkgaW4gYXJyYXksIHJldGFpbmluZyBvbmx5IHRoZSBlbnRyaWVzIGZvcgorICogd2hpY2ggdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZS4gIFByZXNlcnZlIHRoZSBvcmRlciBvZiB0aGUgZW50cmllcworICogdGhhdCBhcmUgcmV0YWluZWQuCisgKi8KK3ZvaWQgb2JqZWN0X2FycmF5X2ZpbHRlcihzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSwKKwkJCSBvYmplY3RfYXJyYXlfZWFjaF9mdW5jX3Qgd2FudCwgdm9pZCAqY2JfZGF0YSk7CisKKy8qCisgKiBSZW1vdmUgZnJvbSBhcnJheSBhbGwgYnV0IHRoZSBmaXJzdCBlbnRyeSB3aXRoIGEgZ2l2ZW4gbmFtZS4KKyAqIFdhcm5pbmc6IHRoaXMgZnVuY3Rpb24gdXNlcyBhbiBPKE5eMikgYWxnb3JpdGhtLgorICovCit2b2lkIG9iamVjdF9hcnJheV9yZW1vdmVfZHVwbGljYXRlcyhzdHJ1Y3Qgb2JqZWN0X2FycmF5ICphcnJheSk7CiAKIHZvaWQgY2xlYXJfb2JqZWN0X2ZsYWdzKHVuc2lnbmVkIGZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvcGFjay1yZWZzLmMgYi9wYWNrLXJlZnMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ2MWY3MS4uMDAwMDAwMAotLS0gYS9wYWNrLXJlZnMuYworKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0jaW5jbHVkZSAiY2FjaGUuaCIKLSNpbmNsdWRlICJyZWZzLmgiCi0jaW5jbHVkZSAidGFnLmgiCi0jaW5jbHVkZSAicGFjay1yZWZzLmgiCi0KLXN0cnVjdCByZWZfdG9fcHJ1bmUgewotCXN0cnVjdCByZWZfdG9fcHJ1bmUgKm5leHQ7Ci0JdW5zaWduZWQgY2hhciBzaGExWzIwXTsKLQljaGFyIG5hbWVbRkxFWF9BUlJBWV07Ci19OwotCi1zdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgewotCXVuc2lnbmVkIGludCBmbGFnczsKLQlzdHJ1Y3QgcmVmX3RvX3BydW5lICpyZWZfdG9fcHJ1bmU7Ci0JRklMRSAqcmVmc19maWxlOwotfTsKLQotc3RhdGljIGludCBkb19ub3RfcHJ1bmUoaW50IGZsYWdzKQotewotCS8qIElmIGl0IGlzIGFscmVhZHkgcGFja2VkIG9yIGlmIGl0IGlzIGEgc3ltcmVmLAotCSAqIGRvIG5vdCBwcnVuZSBpdC4KLQkgKi8KLQlyZXR1cm4gKGZsYWdzICYgKFJFRl9JU1NZTVJFRnxSRUZfSVNQQUNLRUQpKTsKLX0KLQotc3RhdGljIGludCBoYW5kbGVfb25lX3JlZihjb25zdCBjaGFyICpwYXRoLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJICBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCi17Ci0Jc3RydWN0IHBhY2tfcmVmc19jYl9kYXRhICpjYiA9IGNiX2RhdGE7Ci0Jc3RydWN0IG9iamVjdCAqbzsKLQlpbnQgaXNfdGFnX3JlZjsKLQotCS8qIERvIG5vdCBwYWNrIHRoZSBzeW1ib2xpYyByZWZzICovCi0JaWYgKChmbGFncyAmIFJFRl9JU1NZTVJFRikpCi0JCXJldHVybiAwOwotCWlzX3RhZ19yZWYgPSAhcHJlZml4Y21wKHBhdGgsICJyZWZzL3RhZ3MvIik7Ci0KLQkvKiBBTFdBWVMgcGFjayByZWZzIHRoYXQgd2VyZSBhbHJlYWR5IHBhY2tlZCBvciBhcmUgdGFncyAqLwotCWlmICghKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19BTEwpICYmICFpc190YWdfcmVmICYmICEoZmxhZ3MgJiBSRUZfSVNQQUNLRUQpKQotCQlyZXR1cm4gMDsKLQotCWZwcmludGYoY2ItPnJlZnNfZmlsZSwgIiVzICVzXG4iLCBzaGExX3RvX2hleChzaGExKSwgcGF0aCk7Ci0KLQlvID0gcGFyc2Vfb2JqZWN0X29yX2RpZShzaGExLCBwYXRoKTsKLQlpZiAoby0+dHlwZSA9PSBPQkpfVEFHKSB7Ci0JCW8gPSBkZXJlZl90YWcobywgcGF0aCwgMCk7Ci0JCWlmIChvKQotCQkJZnByaW50ZihjYi0+cmVmc19maWxlLCAiXiVzXG4iLAotCQkJCXNoYTFfdG9faGV4KG8tPnNoYTEpKTsKLQl9Ci0KLQlpZiAoKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19QUlVORSkgJiYgIWRvX25vdF9wcnVuZShmbGFncykpIHsKLQkJaW50IG5hbWVsZW4gPSBzdHJsZW4ocGF0aCkgKyAxOwotCQlzdHJ1Y3QgcmVmX3RvX3BydW5lICpuID0geGNhbGxvYygxLCBzaXplb2YoKm4pICsgbmFtZWxlbik7Ci0JCWhhc2hjcHkobi0+c2hhMSwgc2hhMSk7Ci0JCXN0cmNweShuLT5uYW1lLCBwYXRoKTsKLQkJbi0+bmV4dCA9IGNiLT5yZWZfdG9fcHJ1bmU7Ci0JCWNiLT5yZWZfdG9fcHJ1bmUgPSBuOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIFJlbW92ZSBlbXB0eSBwYXJlbnRzLCBidXQgc3BhcmUgcmVmcy8gYW5kIGltbWVkaWF0ZSBzdWJkaXJzLgotICogTm90ZTogbXVuZ2VzICpuYW1lLgotICovCi1zdGF0aWMgdm9pZCB0cnlfcmVtb3ZlX2VtcHR5X3BhcmVudHMoY2hhciAqbmFtZSkKLXsKLQljaGFyICpwLCAqcTsKLQlpbnQgaTsKLQlwID0gbmFtZTsKLQlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7IC8qIHJlZnMve2hlYWRzLHRhZ3MsLi4ufS8gKi8KLQkJd2hpbGUgKCpwICYmICpwICE9ICcvJykKLQkJCXArKzsKLQkJLyogdG9sZXJhdGUgZHVwbGljYXRlIHNsYXNoZXM7IHNlZSBjaGVja19yZWZuYW1lX2Zvcm1hdCgpICovCi0JCXdoaWxlICgqcCA9PSAnLycpCi0JCQlwKys7Ci0JfQotCWZvciAocSA9IHA7ICpxOyBxKyspCi0JCTsKLQl3aGlsZSAoMSkgewotCQl3aGlsZSAocSA+IHAgJiYgKnEgIT0gJy8nKQotCQkJcS0tOwotCQl3aGlsZSAocSA+IHAgJiYgKihxLTEpID09ICcvJykKLQkJCXEtLTsKLQkJaWYgKHEgPT0gcCkKLQkJCWJyZWFrOwotCQkqcSA9ICdcMCc7Ci0JCWlmIChybWRpcihnaXRfcGF0aCgiJXMiLCBuYW1lKSkpCi0JCQlicmVhazsKLQl9Ci19Ci0KLS8qIG1ha2Ugc3VyZSBub2JvZHkgdG91Y2hlZCB0aGUgcmVmLCBhbmQgdW5saW5rICovCi1zdGF0aWMgdm9pZCBwcnVuZV9yZWYoc3RydWN0IHJlZl90b19wcnVuZSAqcikKLXsKLQlzdHJ1Y3QgcmVmX2xvY2sgKmxvY2sgPSBsb2NrX3JlZl9zaGExKHItPm5hbWUgKyA1LCByLT5zaGExKTsKLQotCWlmIChsb2NrKSB7Ci0JCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCIlcyIsIHItPm5hbWUpKTsKLQkJdW5sb2NrX3JlZihsb2NrKTsKLQkJdHJ5X3JlbW92ZV9lbXB0eV9wYXJlbnRzKHItPm5hbWUpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgcHJ1bmVfcmVmcyhzdHJ1Y3QgcmVmX3RvX3BydW5lICpyKQotewotCXdoaWxlIChyKSB7Ci0JCXBydW5lX3JlZihyKTsKLQkJciA9IHItPm5leHQ7Ci0JfQotfQotCi1zdGF0aWMgc3RydWN0IGxvY2tfZmlsZSBwYWNrZWQ7Ci0KLWludCBwYWNrX3JlZnModW5zaWduZWQgaW50IGZsYWdzKQotewotCWludCBmZDsKLQlzdHJ1Y3QgcGFja19yZWZzX2NiX2RhdGEgY2JkYXRhOwotCi0JbWVtc2V0KCZjYmRhdGEsIDAsIHNpemVvZihjYmRhdGEpKTsKLQljYmRhdGEuZmxhZ3MgPSBmbGFnczsKLQotCWZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmcGFja2VkLCBnaXRfcGF0aCgicGFja2VkLXJlZnMiKSwKLQkJCQkgICAgICAgTE9DS19ESUVfT05fRVJST1IpOwotCWNiZGF0YS5yZWZzX2ZpbGUgPSBmZG9wZW4oZmQsICJ3Iik7Ci0JaWYgKCFjYmRhdGEucmVmc19maWxlKQotCQlkaWVfZXJybm8oInVuYWJsZSB0byBjcmVhdGUgcmVmLXBhY2sgZmlsZSBzdHJ1Y3R1cmUiKTsKLQotCS8qIHBlcmhhcHMgb3RoZXIgdHJhaXRzIGxhdGVyIGFzIHdlbGwgKi8KLQlmcHJpbnRmKGNiZGF0YS5yZWZzX2ZpbGUsICIjIHBhY2stcmVmcyB3aXRoOiBwZWVsZWQgZnVsbHktcGVlbGVkIFxuIik7Ci0KLQlmb3JfZWFjaF9yZWYoaGFuZGxlX29uZV9yZWYsICZjYmRhdGEpOwotCWlmIChmZXJyb3IoY2JkYXRhLnJlZnNfZmlsZSkpCi0JCWRpZSgiZmFpbGVkIHRvIHdyaXRlIHJlZi1wYWNrIGZpbGUiKTsKLQlpZiAoZmZsdXNoKGNiZGF0YS5yZWZzX2ZpbGUpIHx8IGZzeW5jKGZkKSB8fCBmY2xvc2UoY2JkYXRhLnJlZnNfZmlsZSkpCi0JCWRpZV9lcnJubygiZmFpbGVkIHRvIHdyaXRlIHJlZi1wYWNrIGZpbGUiKTsKLQkvKgotCSAqIFNpbmNlIHRoZSBsb2NrIGZpbGUgd2FzIGZkb3BlbigpJ2VkIGFuZCB0aGVuIGZjbG9zZSgpJ2VkIGFib3ZlLAotCSAqIGFzc2lnbiAtMSB0byB0aGUgbG9jayBmaWxlIGRlc2NyaXB0b3Igc28gdGhhdCBjb21taXRfbG9ja19maWxlKCkKLQkgKiB3b24ndCB0cnkgdG8gY2xvc2UoKSBpdC4KLQkgKi8KLQlwYWNrZWQuZmQgPSAtMTsKLQlpZiAoY29tbWl0X2xvY2tfZmlsZSgmcGFja2VkKSA8IDApCi0JCWRpZV9lcnJubygidW5hYmxlIHRvIG92ZXJ3cml0ZSBvbGQgcmVmLXBhY2sgZmlsZSIpOwotCXBydW5lX3JlZnMoY2JkYXRhLnJlZl90b19wcnVuZSk7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9wYWNrLXJlZnMuaCBiL3BhY2stcmVmcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MThhY2ZiLi4wMDAwMDAwCi0tLSBhL3BhY2stcmVmcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotI2lmbmRlZiBQQUNLX1JFRlNfSAotI2RlZmluZSBQQUNLX1JFRlNfSAotCi0vKgotICogRmxhZ3MgZm9yIGNvbnRyb2xsaW5nIGJlaGF2aW91ciBvZiBwYWNrX3JlZnMoKQotICogUEFDS19SRUZTX1BSVU5FOiBQcnVuZSBsb29zZSByZWZzIGFmdGVyIHBhY2tpbmcKLSAqIFBBQ0tfUkVGU19BTEw6ICAgUGFjayBfYWxsXyByZWZzLCBub3QganVzdCB0YWdzIGFuZCBhbHJlYWR5IHBhY2tlZCByZWZzCi0gKi8KLSNkZWZpbmUgUEFDS19SRUZTX1BSVU5FIDB4MDAwMQotI2RlZmluZSBQQUNLX1JFRlNfQUxMICAgMHgwMDAyCi0KLS8qCi0gKiBXcml0ZSBhIHBhY2tlZC1yZWZzIGZpbGUgZm9yIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkuCi0gKiBmbGFnczogQ29tYmluYXRpb24gb2YgdGhlIGFib3ZlIFBBQ0tfUkVGU18qIGZsYWdzLgotICovCi1pbnQgcGFja19yZWZzKHVuc2lnbmVkIGludCBmbGFncyk7Ci0KLSNlbmRpZiAvKiBQQUNLX1JFRlNfSCAqLwpkaWZmIC0tZ2l0IGEvcGFjay1yZXZpbmRleC5jIGIvcGFjay1yZXZpbmRleC5jCmluZGV4IDc3YTA0NjUuLmI0ZDJiMzUgMTAwNjQ0Ci0tLSBhL3BhY2stcmV2aW5kZXguYworKysgYi9wYWNrLXJldmluZGV4LmMKQEAgLTU5LDExICs1OSwxMDEgQEAKIAkvKiByZXZpbmRleCBlbGVtZW50cyBhcmUgbGF6aWx5IGluaXRpYWxpemVkICovCiB9CiAKLXN0YXRpYyBpbnQgY21wX29mZnNldChjb25zdCB2b2lkICphXywgY29uc3Qgdm9pZCAqYl8pCisvKgorICogVGhpcyBpcyBhIGxlYXN0LXNpZ25pZmljYW50LWRpZ2l0IHJhZGl4IHNvcnQuCisgKgorICogSXQgc29ydHMgZWFjaCBvZiB0aGUgIm4iIGl0ZW1zIGluICJlbnRyaWVzIiBieSBpdHMgb2Zmc2V0IGZpZWxkLiBUaGUgIm1heCIKKyAqIHBhcmFtZXRlciBtdXN0IGJlIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHRoZSBsYXJnZXN0IG9mZnNldCBpbiB0aGUgYXJyYXksCisgKiBhbmQgbGV0cyB1cyBxdWl0IHRoZSBzb3J0IGVhcmx5LgorICovCitzdGF0aWMgdm9pZCBzb3J0X3JldmluZGV4KHN0cnVjdCByZXZpbmRleF9lbnRyeSAqZW50cmllcywgdW5zaWduZWQgbiwgb2ZmX3QgbWF4KQogewotCWNvbnN0IHN0cnVjdCByZXZpbmRleF9lbnRyeSAqYSA9IGFfOwotCWNvbnN0IHN0cnVjdCByZXZpbmRleF9lbnRyeSAqYiA9IGJfOwotCXJldHVybiAoYS0+b2Zmc2V0IDwgYi0+b2Zmc2V0KSA/IC0xIDogKGEtPm9mZnNldCA+IGItPm9mZnNldCkgPyAxIDogMDsKKwkvKgorCSAqIFdlIHVzZSBhICJkaWdpdCIgc2l6ZSBvZiAxNiBiaXRzLiBUaGF0IGtlZXBzIG91ciBtZW1vcnkKKwkgKiB1c2FnZSByZWFzb25hYmxlLCBhbmQgd2UgY2FuIGdlbmVyYWxseSAoZm9yIGEgNEcgb3Igc21hbGxlcgorCSAqIHBhY2tmaWxlKSBxdWl0IGFmdGVyIHR3byByb3VuZHMgb2YgcmFkaXgtc29ydGluZy4KKwkgKi8KKyNkZWZpbmUgRElHSVRfU0laRSAoMTYpCisjZGVmaW5lIEJVQ0tFVFMgKDEgPDwgRElHSVRfU0laRSkKKwkvKgorCSAqIFdlIHdhbnQgdG8ga25vdyB0aGUgYnVja2V0IHRoYXQgYVtpXSB3aWxsIGdvIGludG8gd2hlbiB3ZSBhcmUgdXNpbmcKKwkgKiB0aGUgZGlnaXQgdGhhdCBpcyBOIGJpdHMgZnJvbSB0aGUgKGxlYXN0IHNpZ25pZmljYW50KSBlbmQuCisJICovCisjZGVmaW5lIEJVQ0tFVF9GT1IoYSwgaSwgYml0cykgKCgoYSlbKGkpXS5vZmZzZXQgPj4gKGJpdHMpKSAmIChCVUNLRVRTLTEpKQorCisJLyoKKwkgKiBXZSBuZWVkIE8obikgdGVtcG9yYXJ5IHN0b3JhZ2UuIFJhdGhlciB0aGFuIGRvIGFuIGV4dHJhIGNvcHkgb2YgdGhlCisJICogcGFydGlhbCByZXN1bHRzIGludG8gImVudHJpZXMiLCB3ZSBzb3J0IGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlCisJICogcmVhbCBhcnJheSBhbmQgdGVtcG9yYXJ5IHN0b3JhZ2UuIEluIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wLCB3ZQorCSAqIGtlZXAgdHJhY2sgb2YgdGhlbSB3aXRoIGFsaWFzIHBvaW50ZXJzLCBhbHdheXMgc29ydGluZyBmcm9tICJmcm9tIgorCSAqIHRvICJ0byIuCisJICovCisJc3RydWN0IHJldmluZGV4X2VudHJ5ICp0bXAgPSB4bWFsbG9jKG4gKiBzaXplb2YoKnRtcCkpOworCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqZnJvbSA9IGVudHJpZXMsICp0byA9IHRtcDsKKwlpbnQgYml0czsKKwl1bnNpZ25lZCAqcG9zID0geG1hbGxvYyhCVUNLRVRTICogc2l6ZW9mKCpwb3MpKTsKKworCS8qCisJICogSWYgKG1heCA+PiBiaXRzKSBpcyB6ZXJvLCB0aGVuIHdlIGtub3cgdGhhdCB0aGUgcmFkaXggZGlnaXQgd2UgYXJlCisJICogb24gKGFuZCBhbnkgaGlnaGVyKSB3aWxsIGJlIHplcm8gZm9yIGFsbCBlbnRyaWVzLCBhbmQgb3VyIGxvb3Agd2lsbAorCSAqIGJlIGEgbm8tb3AsIGFzIGV2ZXJ5Ym9keSBsYW5kcyBpbiB0aGUgc2FtZSB6ZXJvLXRoIGJ1Y2tldC4KKwkgKi8KKwlmb3IgKGJpdHMgPSAwOyBtYXggPj4gYml0czsgYml0cyArPSBESUdJVF9TSVpFKSB7CisJCXN0cnVjdCByZXZpbmRleF9lbnRyeSAqc3dhcDsKKwkJdW5zaWduZWQgaTsKKworCQltZW1zZXQocG9zLCAwLCBCVUNLRVRTICogc2l6ZW9mKCpwb3MpKTsKKworCQkvKgorCQkgKiBXZSB3YW50IHBvc1tpXSB0byBzdG9yZSB0aGUgaW5kZXggb2YgdGhlIGxhc3QgZWxlbWVudCB0aGF0CisJCSAqIHdpbGwgZ28gaW4gYnVja2V0ICJpIiAoYWN0dWFsbHkgb25lIHBhc3QgdGhlIGxhc3QgZWxlbWVudCkuCisJCSAqIFRvIGRvIHRoaXMsIHdlIGZpcnN0IGNvdW50IHRoZSBpdGVtcyB0aGF0IHdpbGwgZ28gaW4gZWFjaAorCQkgKiBidWNrZXQsIHdoaWNoIGdpdmVzIHVzIGEgcmVsYXRpdmUgb2Zmc2V0IGZyb20gdGhlIGxhc3QKKwkJICogYnVja2V0LiBXZSBjYW4gdGhlbiBjdW11bGF0aXZlbHkgYWRkIHRoZSBpbmRleCBmcm9tIHRoZQorCQkgKiBwcmV2aW91cyBidWNrZXQgdG8gZ2V0IHRoZSB0cnVlIGluZGV4LgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKKwkJCXBvc1tCVUNLRVRfRk9SKGZyb20sIGksIGJpdHMpXSsrOworCQlmb3IgKGkgPSAxOyBpIDwgQlVDS0VUUzsgaSsrKQorCQkJcG9zW2ldICs9IHBvc1tpLTFdOworCisJCS8qCisJCSAqIE5vdyB3ZSBjYW4gZHJvcCB0aGUgZWxlbWVudHMgaW50byB0aGVpciBjb3JyZWN0IGJ1Y2tldHMgKGluCisJCSAqIG91ciB0ZW1wb3JhcnkgYXJyYXkpLiAgV2UgaXRlcmF0ZSB0aGUgcG9zIGNvdW50ZXIgYmFja3dhcmRzCisJCSAqIHRvIGF2b2lkIHVzaW5nIGFuIGV4dHJhIGluZGV4IHRvIGNvdW50IHVwLiBBbmQgc2luY2Ugd2UgYXJlCisJCSAqIGdvaW5nIGJhY2t3YXJkcyB0aGVyZSwgd2UgbXVzdCBhbHNvIGdvIGJhY2t3YXJkcyB0aHJvdWdoIHRoZQorCQkgKiBhcnJheSBpdHNlbGYsIHRvIGtlZXAgdGhlIHNvcnQgc3RhYmxlLgorCQkgKgorCQkgKiBOb3RlIHRoYXQgd2UgdXNlIGFuIHVuc2lnbmVkIGl0ZXJhdG9yIHRvIG1ha2Ugc3VyZSB3ZSBjYW4KKwkJICogaGFuZGxlIDJeMzItMSBvYmplY3RzLCBldmVuIG9uIGEgMzItYml0IHN5c3RlbS4gQnV0IHRoaXMKKwkJICogbWVhbnMgd2UgY2Fubm90IHVzZSB0aGUgbW9yZSBvYnZpb3VzICJpID49IDAiIGxvb3AgY29uZGl0aW9uCisJCSAqIGZvciBjb3VudGluZyBiYWNrd2FyZHMsIGFuZCBtdXN0IGluc3RlYWQgY2hlY2sgZm9yCisJCSAqIHdyYXAtYXJvdW5kIHdpdGggVUlOVF9NQVguCisJCSAqLworCQlmb3IgKGkgPSBuIC0gMTsgaSAhPSBVSU5UX01BWDsgaS0tKQorCQkJdG9bLS1wb3NbQlVDS0VUX0ZPUihmcm9tLCBpLCBiaXRzKV1dID0gZnJvbVtpXTsKKworCQkvKgorCQkgKiBOb3cgInRvIiBjb250YWlucyB0aGUgbW9zdCBzb3J0ZWQgbGlzdCwgc28gd2Ugc3dhcCAiZnJvbSIgYW5kCisJCSAqICJ0byIgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbi4KKwkJICovCisJCXN3YXAgPSBmcm9tOworCQlmcm9tID0gdG87CisJCXRvID0gc3dhcDsKKwl9CisKKwkvKgorCSAqIElmIHdlIGVuZGVkIHdpdGggb3VyIGRhdGEgaW4gdGhlIG9yaWdpbmFsIGFycmF5LCBncmVhdC4gSWYgbm90LAorCSAqIHdlIGhhdmUgdG8gbW92ZSBpdCBiYWNrIGZyb20gdGhlIHRlbXBvcmFyeSBzdG9yYWdlLgorCSAqLworCWlmIChmcm9tICE9IGVudHJpZXMpCisJCW1lbWNweShlbnRyaWVzLCB0bXAsIG4gKiBzaXplb2YoKmVudHJpZXMpKTsKKwlmcmVlKHRtcCk7CisJZnJlZShwb3MpOworCisjdW5kZWYgQlVDS0VUX0ZPUgorI3VuZGVmIEJVQ0tFVFMKKyN1bmRlZiBESUdJVF9TSVpFCiB9CiAKIC8qCkBAIC03Miw4ICsxNjIsOCBAQAogc3RhdGljIHZvaWQgY3JlYXRlX3BhY2tfcmV2aW5kZXgoc3RydWN0IHBhY2tfcmV2aW5kZXggKnJpeCkKIHsKIAlzdHJ1Y3QgcGFja2VkX2dpdCAqcCA9IHJpeC0+cDsKLQlpbnQgbnVtX2VudCA9IHAtPm51bV9vYmplY3RzOwotCWludCBpOworCXVuc2lnbmVkIG51bV9lbnQgPSBwLT5udW1fb2JqZWN0czsKKwl1bnNpZ25lZCBpOwogCWNvbnN0IGNoYXIgKmluZGV4ID0gcC0+aW5kZXhfZGF0YTsKIAogCXJpeC0+cmV2aW5kZXggPSB4bWFsbG9jKHNpemVvZigqcml4LT5yZXZpbmRleCkgKiAobnVtX2VudCArIDEpKTsKQEAgLTEwOCwxMyArMTk4LDEzIEBACiAJICovCiAJcml4LT5yZXZpbmRleFtudW1fZW50XS5vZmZzZXQgPSBwLT5wYWNrX3NpemUgLSAyMDsKIAlyaXgtPnJldmluZGV4W251bV9lbnRdLm5yID0gLTE7Ci0JcXNvcnQocml4LT5yZXZpbmRleCwgbnVtX2VudCwgc2l6ZW9mKCpyaXgtPnJldmluZGV4KSwgY21wX29mZnNldCk7CisJc29ydF9yZXZpbmRleChyaXgtPnJldmluZGV4LCBudW1fZW50LCBwLT5wYWNrX3NpemUpOwogfQogCiBzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKmZpbmRfcGFja19yZXZpbmRleChzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgb2ZmX3Qgb2ZzKQogewogCWludCBudW07Ci0JaW50IGxvLCBoaTsKKwl1bnNpZ25lZCBsbywgaGk7CiAJc3RydWN0IHBhY2tfcmV2aW5kZXggKnJpeDsKIAlzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKnJldmluZGV4OwogCkBAIC0xMzIsNyArMjIyLDcgQEAKIAlsbyA9IDA7CiAJaGkgPSBwLT5udW1fb2JqZWN0cyArIDE7CiAJZG8gewotCQlpbnQgbWkgPSAobG8gKyBoaSkgLyAyOworCQl1bnNpZ25lZCBtaSA9IGxvICsgKGhpIC0gbG8pIC8gMjsKIAkJaWYgKHJldmluZGV4W21pXS5vZmZzZXQgPT0gb2ZzKSB7CiAJCQlyZXR1cm4gcmV2aW5kZXggKyBtaTsKIAkJfSBlbHNlIGlmIChvZnMgPCByZXZpbmRleFttaV0ub2Zmc2V0KQpkaWZmIC0tZ2l0IGEvcGFyc2Utb3B0aW9ucy1jYi5jIGIvcGFyc2Utb3B0aW9ucy1jYi5jCmluZGV4IDBkZTVmYjEuLmJlOGM0MTMgMTAwNjQ0Ci0tLSBhL3BhcnNlLW9wdGlvbnMtY2IuYworKysgYi9wYXJzZS1vcHRpb25zLWNiLmMKQEAgLTMzLDYgKzMzLDEyIEBACiAJcmV0dXJuIDA7CiB9CiAKK2ludCBwYXJzZV9vcHRfZXhwaXJ5X2RhdGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsCisJCQkgICAgIGludCB1bnNldCkKK3sKKwlyZXR1cm4gcGFyc2VfZXhwaXJ5X2RhdGUoYXJnLCAodW5zaWduZWQgbG9uZyAqKW9wdC0+dmFsdWUpOworfQorCiBpbnQgcGFyc2Vfb3B0X2NvbG9yX2ZsYWdfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICphcmcsCiAJCQkgICAgaW50IHVuc2V0KQogewpkaWZmIC0tZ2l0IGEvcGFyc2Utb3B0aW9ucy5oIGIvcGFyc2Utb3B0aW9ucy5oCmluZGV4IDFjOGJkOGQuLjliOTQ1OTYgMTAwNjQ0Ci0tLSBhL3BhcnNlLW9wdGlvbnMuaAorKysgYi9wYXJzZS1vcHRpb25zLmgKQEAgLTE0MCw2ICsxNDAsOSBAQAogI2RlZmluZSBPUFRfREFURShzLCBsLCB2LCBoKSBcCiAJeyBPUFRJT05fQ0FMTEJBQ0ssIChzKSwgKGwpLCAodiksIE5fKCJ0aW1lIiksKGgpLCAwLAlcCiAJICBwYXJzZV9vcHRfYXBwcm94aWRhdGVfY2IgfQorI2RlZmluZSBPUFRfRVhQSVJZX0RBVEUocywgbCwgdiwgaCkgXAorCXsgT1BUSU9OX0NBTExCQUNLLCAocyksIChsKSwgKHYpLCBOXygiZXhwaXJ5IGRhdGUiKSwoaCksIDAsCVwKKwkgIHBhcnNlX29wdF9leHBpcnlfZGF0ZV9jYiB9CiAjZGVmaW5lIE9QVF9DQUxMQkFDSyhzLCBsLCB2LCBhLCBoLCBmKSBcCiAJeyBPUFRJT05fQ0FMTEJBQ0ssIChzKSwgKGwpLCAodiksIChhKSwgKGgpLCAwLCAoZikgfQogI2RlZmluZSBPUFRfTlVNQkVSX0NBTExCQUNLKHYsIGgsIGYpIFwKQEAgLTE3Nyw3ICsxODAsNyBAQAogCiBleHRlcm4gaW50IG9wdGJ1Zyhjb25zdCBzdHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnJlYXNvbik7CiBleHRlcm4gaW50IG9wdGVycm9yKGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqcmVhc29uLCBpbnQgZmxhZ3MpOwotI2lmIGRlZmluZWQoX19HTlVDX18pICYmICEgZGVmaW5lZChjbGFuZykKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhIGRlZmluZWQoX19jbGFuZ19fKQogI2RlZmluZSBvcHRlcnJvcihvLHIsZikgKG9wdGVycm9yKChvKSwociksKGYpKSwgLTEpCiAjZW5kaWYKIApAQCAtMjE5LDYgKzIyMiw3IEBACiAvKi0tLS0tIHNvbWUgb2Z0ZW4gdXNlZCBvcHRpb25zIC0tLS0tKi8KIGV4dGVybiBpbnQgcGFyc2Vfb3B0X2FiYnJldl9jYihjb25zdCBzdHJ1Y3Qgb3B0aW9uICosIGNvbnN0IGNoYXIgKiwgaW50KTsKIGV4dGVybiBpbnQgcGFyc2Vfb3B0X2FwcHJveGlkYXRlX2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOworZXh0ZXJuIGludCBwYXJzZV9vcHRfZXhwaXJ5X2RhdGVfY2IoY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICosIGludCk7CiBleHRlcm4gaW50IHBhcnNlX29wdF9jb2xvcl9mbGFnX2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIGludCBwYXJzZV9vcHRfdmVyYm9zaXR5X2NiKGNvbnN0IHN0cnVjdCBvcHRpb24gKiwgY29uc3QgY2hhciAqLCBpbnQpOwogZXh0ZXJuIGludCBwYXJzZV9vcHRfd2l0aF9jb21taXQoY29uc3Qgc3RydWN0IG9wdGlvbiAqLCBjb25zdCBjaGFyICosIGludCk7CmRpZmYgLS1naXQgYS9wYXRoLmMgYi9wYXRoLmMKaW5kZXggMDRmZjE0OC4uM2QyNDRkMyAxMDA2NDQKLS0tIGEvcGF0aC5jCisrKyBiL3BhdGguYwpAQCAtNSwxMyArNSw3IEBACiAjaW5jbHVkZSAic3RyYnVmLmgiCiAjaW5jbHVkZSAic3RyaW5nLWxpc3QuaCIKIAotI2lmbmRlZiBnZXRfc3RfbW9kZV9iaXRzCi0vKgotICogVGhlIHJlcGxhY2VtZW50IGxzdGF0KDIpIHdlIHVzZSBvbiBDeWd3aW4gaXMgaW5jb21wbGV0ZSBhbmQKLSAqIG1heSByZXR1cm4gd3JvbmcgcGVybWlzc2lvbiBiaXRzLiBNb3N0IG9mIHRoZSB0aW1lIHdlIGRvIG5vdCBjYXJlLAotICogYnV0IHRoZSBjYWxsc2l0ZXMgb2YgdGhpcyB3cmFwcGVyIGRvIGNhcmUuCi0gKi8KLWludCBnZXRfc3RfbW9kZV9iaXRzKGNvbnN0IGNoYXIgKnBhdGgsIGludCAqbW9kZSkKK3N0YXRpYyBpbnQgZ2V0X3N0X21vZGVfYml0cyhjb25zdCBjaGFyICpwYXRoLCBpbnQgKm1vZGUpCiB7CiAJc3RydWN0IHN0YXQgc3Q7CiAJaWYgKGxzdGF0KHBhdGgsICZzdCkgPCAwKQpAQCAtMTksNyArMTMsNiBAQAogCSptb2RlID0gc3Quc3RfbW9kZTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgogCiBzdGF0aWMgY2hhciBiYWRfcGF0aFtdID0gIi9iYWQtcGF0aC8iOwogCkBAIC00NDEsNDIgKzQzNCwxMDAgQEAKIAlyZXR1cm4gMDsKIH0KIAotY29uc3QgY2hhciAqcmVsYXRpdmVfcGF0aChjb25zdCBjaGFyICphYnMsIGNvbnN0IGNoYXIgKmJhc2UpCisvKgorICogR2l2ZSBwYXRoIGFzIHJlbGF0aXZlIHRvIHByZWZpeC4KKyAqCisgKiBUaGUgc3RyYnVmIG1heSBvciBtYXkgbm90IGJlIHVzZWQsIHNvIGRvIG5vdCBhc3N1bWUgaXQgY29udGFpbnMgdGhlCisgKiByZXR1cm5lZCBwYXRoLgorICovCitjb25zdCBjaGFyICpyZWxhdGl2ZV9wYXRoKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpwcmVmaXgsCisJCQkgIHN0cnVjdCBzdHJidWYgKnNiKQogewotCXN0YXRpYyBjaGFyIGJ1ZltQQVRIX01BWCArIDFdOworCWludCBpbl9sZW4gPSBpbiA/IHN0cmxlbihpbikgOiAwOworCWludCBwcmVmaXhfbGVuID0gcHJlZml4ID8gc3RybGVuKHByZWZpeCkgOiAwOworCWludCBpbl9vZmYgPSAwOworCWludCBwcmVmaXhfb2ZmID0gMDsKIAlpbnQgaSA9IDAsIGogPSAwOwogCi0JaWYgKCFiYXNlIHx8ICFiYXNlWzBdKQotCQlyZXR1cm4gYWJzOwotCXdoaWxlIChiYXNlW2ldKSB7Ci0JCWlmIChpc19kaXJfc2VwKGJhc2VbaV0pKSB7Ci0JCQlpZiAoIWlzX2Rpcl9zZXAoYWJzW2pdKSkKLQkJCQlyZXR1cm4gYWJzOwotCQkJd2hpbGUgKGlzX2Rpcl9zZXAoYmFzZVtpXSkpCisJaWYgKCFpbl9sZW4pCisJCXJldHVybiAiLi8iOworCWVsc2UgaWYgKCFwcmVmaXhfbGVuKQorCQlyZXR1cm4gaW47CisKKwl3aGlsZSAoaSA8IHByZWZpeF9sZW4gJiYgaiA8IGluX2xlbiAmJiBwcmVmaXhbaV0gPT0gaW5bal0pIHsKKwkJaWYgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkgeworCQkJd2hpbGUgKGlzX2Rpcl9zZXAocHJlZml4W2ldKSkKIAkJCQlpKys7Ci0JCQl3aGlsZSAoaXNfZGlyX3NlcChhYnNbal0pKQorCQkJd2hpbGUgKGlzX2Rpcl9zZXAoaW5bal0pKQogCQkJCWorKzsKKwkJCXByZWZpeF9vZmYgPSBpOworCQkJaW5fb2ZmID0gajsKKwkJfSBlbHNlIHsKKwkJCWkrKzsKKwkJCWorKzsKKwkJfQorCX0KKworCWlmICgKKwkgICAgLyogInByZWZpeCIgc2VlbXMgbGlrZSBwcmVmaXggb2YgImluIiAqLworCSAgICBpID49IHByZWZpeF9sZW4gJiYKKwkgICAgLyoKKwkgICAgICogYnV0ICIvZm9vIiBpcyBub3QgYSBwcmVmaXggb2YgIi9mb29iYXIiCisJICAgICAqIChpLmUuIHByZWZpeCBub3QgZW5kIHdpdGggJy8nKQorCSAgICAgKi8KKwkgICAgcHJlZml4X29mZiA8IHByZWZpeF9sZW4pIHsKKwkJaWYgKGogPj0gaW5fbGVuKSB7CisJCQkvKiBpbj0iL2EvYiIsIHByZWZpeD0iL2EvYiIgKi8KKwkJCWluX29mZiA9IGluX2xlbjsKKwkJfSBlbHNlIGlmIChpc19kaXJfc2VwKGluW2pdKSkgeworCQkJLyogaW49Ii9hL2IvYyIsIHByZWZpeD0iL2EvYiIgKi8KKwkJCXdoaWxlIChpc19kaXJfc2VwKGluW2pdKSkKKwkJCQlqKys7CisJCQlpbl9vZmYgPSBqOworCQl9IGVsc2UgeworCQkJLyogaW49Ii9hL2JiYi9jIiwgcHJlZml4PSIvYS9iIiAqLworCQkJaSA9IHByZWZpeF9vZmY7CisJCX0KKwl9IGVsc2UgaWYgKAorCQkgICAvKiAiaW4iIGlzIHNob3J0IHRoYW4gInByZWZpeCIgKi8KKwkJICAgaiA+PSBpbl9sZW4gJiYKKwkJICAgLyogImluIiBub3QgZW5kIHdpdGggJy8nICovCisJCSAgIGluX29mZiA8IGluX2xlbikgeworCQlpZiAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKSB7CisJCQkvKiBpbj0iL2EvYiIsIHByZWZpeD0iL2EvYi9jLyIgKi8KKwkJCXdoaWxlIChpc19kaXJfc2VwKHByZWZpeFtpXSkpCisJCQkJaSsrOworCQkJaW5fb2ZmID0gaW5fbGVuOworCQl9CisJfQorCWluICs9IGluX29mZjsKKwlpbl9sZW4gLT0gaW5fb2ZmOworCisJaWYgKGkgPj0gcHJlZml4X2xlbikgeworCQlpZiAoIWluX2xlbikKKwkJCXJldHVybiAiLi8iOworCQllbHNlCisJCQlyZXR1cm4gaW47CisJfQorCisJc3RyYnVmX3Jlc2V0KHNiKTsKKwlzdHJidWZfZ3JvdyhzYiwgaW5fbGVuKTsKKworCXdoaWxlIChpIDwgcHJlZml4X2xlbikgeworCQlpZiAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKSB7CisJCQlzdHJidWZfYWRkc3RyKHNiLCAiLi4vIik7CisJCQl3aGlsZSAoaXNfZGlyX3NlcChwcmVmaXhbaV0pKQorCQkJCWkrKzsKIAkJCWNvbnRpbnVlOwotCQl9IGVsc2UgaWYgKGFic1tqXSAhPSBiYXNlW2ldKSB7Ci0JCQlyZXR1cm4gYWJzOwogCQl9CiAJCWkrKzsKLQkJaisrOwogCX0KLQlpZiAoCi0JICAgIC8qICIvZm9vIiBpcyBhIHByZWZpeCBvZiAiL2ZvbyIgKi8KLQkgICAgYWJzW2pdICYmCi0JICAgIC8qICIvZm9vIiBpcyBub3QgYSBwcmVmaXggb2YgIi9mb29iYXIiICovCi0JICAgICFpc19kaXJfc2VwKGJhc2VbaS0xXSkgJiYgIWlzX2Rpcl9zZXAoYWJzW2pdKQotCSAgICkKLQkJcmV0dXJuIGFiczsKLQl3aGlsZSAoaXNfZGlyX3NlcChhYnNbal0pKQotCQlqKys7Ci0JaWYgKCFhYnNbal0pCi0JCXN0cmNweShidWYsICIuIik7Ci0JZWxzZQotCQlzdHJjcHkoYnVmLCBhYnMgKyBqKTsKLQlyZXR1cm4gYnVmOworCWlmICghaXNfZGlyX3NlcChwcmVmaXhbcHJlZml4X2xlbiAtIDFdKSkKKwkJc3RyYnVmX2FkZHN0cihzYiwgIi4uLyIpOworCisJc3RyYnVmX2FkZHN0cihzYiwgaW4pOworCisJcmV0dXJuIHNiLT5idWY7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9wYXRoc3BlYy5jIGIvcGF0aHNwZWMuYwppbmRleCAyODRmMzk3Li42ZWEwODY3IDEwMDY0NAotLS0gYS9wYXRoc3BlYy5jCisrKyBiL3BhdGhzcGVjLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAlpZiAoIW51bV91bm1hdGNoZWQpCiAJCXJldHVybjsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgc2Vlbik7CiAJfQogfQpAQCAtNjcsNyArNjcsNyBAQAogewogCWludCBpLCBwYXRoX2xlbiA9IHN0cmxlbihwYXRoKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSkgewogCQkJaW50IGNlX2xlbiA9IGNlX25hbWVsZW4oY2UpOwogCQkJaWYgKHBhdGhfbGVuIDw9IGNlX2xlbiB8fCBwYXRoW2NlX2xlbl0gIT0gJy8nIHx8CmRpZmYgLS1naXQgYS9wZXJsL0dpdC5wbSBiL3BlcmwvR2l0LnBtCmluZGV4IDdhMjUyZWYuLjIwNGZkYzYgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0LnBtCisrKyBiL3BlcmwvR2l0LnBtCkBAIC02MSw3ICs2MSw3IEBACiAgICAgICAgICAgICAgICAgcmVtb3RlX3JlZnMgcHJvbXB0CiAgICAgICAgICAgICAgICAgZ2V0X3R6X29mZnNldAogICAgICAgICAgICAgICAgIGNyZWRlbnRpYWwgY3JlZGVudGlhbF9yZWFkIGNyZWRlbnRpYWxfd3JpdGUKLSAgICAgICAgICAgICAgICB0ZW1wX2FjcXVpcmUgdGVtcF9yZWxlYXNlIHRlbXBfcmVzZXQgdGVtcF9wYXRoKTsKKyAgICAgICAgICAgICAgICB0ZW1wX2FjcXVpcmUgdGVtcF9pc19sb2NrZWQgdGVtcF9yZWxlYXNlIHRlbXBfcmVzZXQgdGVtcF9wYXRoKTsKIAogCiA9aGVhZDEgREVTQ1JJUFRJT04KQEAgLTEyMDYsNiArMTIwNiwzNSBAQAogCSR0ZW1wX2ZkOwogfQogCis9aXRlbSB0ZW1wX2lzX2xvY2tlZCAoIE5BTUUgKQorCitSZXR1cm5zIHRydWUgaWYgdGhlIGludGVybmFsIGxvY2sgY3JlYXRlZCBieSBhIHByZXZpb3VzIEM8dGVtcF9hY3F1aXJlKCk+CitjYWxsIHdpdGggQzxOQU1FPiBpcyBzdGlsbCBpbiBlZmZlY3QuCisKK1doZW4gdGVtcF9hY3F1aXJlIGlzIGNhbGxlZCBvbiBhIEM8TkFNRT4sIGl0IGludGVybmFsbHkgbG9ja3MgdGhlIHRlbXBvcmFyeQorZmlsZSBtYXBwZWQgdG8gQzxOQU1FPi4gIFRoYXQgbG9jayB3aWxsIG5vdCBiZSByZWxlYXNlZCB1bnRpbCBDPHRlbXBfcmVsZWFzZSgpPgoraXMgY2FsbGVkIHdpdGggZWl0aGVyIHRoZSBvcmlnaW5hbCBDPE5BTUU+IG9yIHRoZSBMPEZpbGU6OkhhbmRsZT4gdGhhdCB3YXMKK3JldHVybmVkIGZyb20gdGhlIG9yaWdpbmFsIGNhbGwgdG8gdGVtcF9hY3F1aXJlLgorCitTdWJzZXF1ZW50IGF0dGVtcHRzIHRvIGNhbGwgQzx0ZW1wX2FjcXVpcmUoKT4gd2l0aCB0aGUgc2FtZSBDPE5BTUU+IHdpbGwgZmFpbAordW5sZXNzIHRoZXJlIGhhcyBiZWVuIGFuIGludGVydmVuaW5nIEM8dGVtcF9yZWxlYXNlKCk+IGNhbGwgZm9yIHRoYXQgQzxOQU1FPgorKG9yIGl0cyBjb3JyZXNwb25kaW5nIEw8RmlsZTo6SGFuZGxlPiB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGUgb3JpZ2luYWwKK0M8dGVtcF9hY3F1aXJlKCk+IGNhbGwpLgorCitJZiB0cnVlIGlzIHJldHVybmVkIGJ5IEM8dGVtcF9pc19sb2NrZWQoKT4gZm9yIGEgQzxOQU1FPiwgYW4gYXR0ZW1wdCB0bworQzx0ZW1wX2FjcXVpcmUoKT4gdGhlIHNhbWUgQzxOQU1FPiB3aWxsIGNhdXNlIGFuIGVycm9yIHVubGVzcworQzx0ZW1wX3JlbGVhc2U+IGlzIGZpcnN0IGNhbGxlZCBvbiB0aGF0IEM8TkFNRT4gKG9yIGl0cyBjb3JyZXNwb25kaW5nCitMPEZpbGU6OkhhbmRsZT4gdGhhdCB3YXMgcmV0dXJuZWQgYnkgdGhlIG9yaWdpbmFsIEM8dGVtcF9hY3F1aXJlKCk+IGNhbGwpLgorCis9Y3V0CisKK3N1YiB0ZW1wX2lzX2xvY2tlZCB7CisJbXkgKCRzZWxmLCAkbmFtZSkgPSBfbWF5YmVfc2VsZihAXyk7CisJbXkgJHRlbXBfZmQgPSBcJFRFTVBfRklMRU1BUHskbmFtZX07CisKKwlkZWZpbmVkICQkdGVtcF9mZCAmJiAkJHRlbXBfZmQtPm9wZW5lZCAmJiAkVEVNUF9GSUxFU3skJHRlbXBfZmR9e2xvY2tlZH07Cit9CisKID1pdGVtIHRlbXBfcmVsZWFzZSAoIE5BTUUgKQogCiA9aXRlbSB0ZW1wX3JlbGVhc2UgKCBGSUxFSEFORExFICkKZGlmZiAtLWdpdCBhL3BlcmwvR2l0L1NWTi9FZGl0b3IucG0gYi9wZXJsL0dpdC9TVk4vRWRpdG9yLnBtCmluZGV4IGZhMGQzYzYuLmIzYmNkNDcgMTAwNjQ0Ci0tLSBhL3BlcmwvR2l0L1NWTi9FZGl0b3IucG0KKysrIGIvcGVybC9HaXQvU1ZOL0VkaXRvci5wbQpAQCAtNDk5LDYgKzQ5OSw4IEBACiAxOwogX19FTkRfXwogCis9aGVhZDEgTkFNRQorCiBHaXQ6OlNWTjo6RWRpdG9yIC0gY29tbWl0IGRyaXZlciBmb3IgImdpdCBzdm4gc2V0LXRyZWUiIGFuZCBkY29tbWl0CiAKID1oZWFkMSBTWU5PUFNJUwpkaWZmIC0tZ2l0IGEvcGVybC9HaXQvU1ZOL0ZldGNoZXIucG0gYi9wZXJsL0dpdC9TVk4vRmV0Y2hlci5wbQppbmRleCAwNDZhN2EyLi4xMGVkYjI3IDEwMDY0NAotLS0gYS9wZXJsL0dpdC9TVk4vRmV0Y2hlci5wbQorKysgYi9wZXJsL0dpdC9TVk4vRmV0Y2hlci5wbQpAQCAtMSw2ICsxLDcgQEAKIHBhY2thZ2UgR2l0OjpTVk46OkZldGNoZXI7Ci11c2UgdmFycyBxdy9ASVNBICRfaWdub3JlX3JlZ2V4ICRfcHJlc2VydmVfZW1wdHlfZGlycyAkX3BsYWNlaG9sZGVyX2ZpbGVuYW1lCi0gICAgICAgICAgICBAZGVsZXRlZF9ncGF0aCAlYWRkZWRfcGxhY2Vob2xkZXIgJHJlcG9faWQvOwordXNlIHZhcnMgcXcvQElTQSAkX2lnbm9yZV9yZWdleCAkX2luY2x1ZGVfcmVnZXggJF9wcmVzZXJ2ZV9lbXB0eV9kaXJzCisgICAgICAgICAgICAkX3BsYWNlaG9sZGVyX2ZpbGVuYW1lIEBkZWxldGVkX2dwYXRoICVhZGRlZF9wbGFjZWhvbGRlcgorICAgICAgICAgICAgJHJlcG9faWQvOwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIHVzZSBTVk46OkRlbHRhOwpAQCAtMzMsNiArMzQsMTAgQEAKIAlteSAkdiA9IGV2YWwgeyBjb21tYW5kX29uZWxpbmUoJ2NvbmZpZycsICctLWdldCcsICRrKSB9OwogCSRzZWxmLT57aWdub3JlX3JlZ2V4fSA9ICR2OwogCisJJGsgPSAic3ZuLXJlbW90ZS4kcmVwb19pZC5pbmNsdWRlLXBhdGhzIjsKKwkkdiA9IGV2YWwgeyBjb21tYW5kX29uZWxpbmUoJ2NvbmZpZycsICctLWdldCcsICRrKSB9OworCSRzZWxmLT57aW5jbHVkZV9yZWdleH0gPSAkdjsKKwogCSRrID0gInN2bi1yZW1vdGUuJHJlcG9faWQucHJlc2VydmUtZW1wdHktZGlycyI7CiAJJHYgPSBldmFsIHsgY29tbWFuZF9vbmVsaW5lKCdjb25maWcnLCAnLS1nZXQnLCAnLS1ib29sJywgJGspIH07CiAJaWYgKCR2ICYmICR2IGVxICd0cnVlJykgewpAQCAtMTE3LDExICsxMjIsMTggQEAKIH0KIAogIyByZXR1cm4gdmFsdWU6IDAgLS0gZG9uJ3QgaWdub3JlLCAxIC0tIGlnbm9yZQorIyBUaGlzIHdpbGwgYWxzbyBjaGVjayB3aGV0aGVyIHRoZSBwYXRoIGlzIGV4cGxpY2l0bHkgaW5jbHVkZWQKIHN1YiBpc19wYXRoX2lnbm9yZWQgewogCW15ICgkc2VsZiwgJHBhdGgpID0gQF87CiAJcmV0dXJuIDEgaWYgaW5fZG90X2dpdCgkcGF0aCk7CiAJcmV0dXJuIDEgaWYgZGVmaW5lZCgkc2VsZi0+e2lnbm9yZV9yZWdleH0pICYmCiAJICAgICAgICAgICAgJHBhdGggPX4gbSEkc2VsZi0+e2lnbm9yZV9yZWdleH0hOworCXJldHVybiAwIGlmIGRlZmluZWQoJHNlbGYtPntpbmNsdWRlX3JlZ2V4fSkgJiYKKwkgICAgICAgICAgICAkcGF0aCA9fiBtISRzZWxmLT57aW5jbHVkZV9yZWdleH0hOworCXJldHVybiAwIGlmIGRlZmluZWQoJF9pbmNsdWRlX3JlZ2V4KSAmJgorCSAgICAgICAgICAgICRwYXRoID1+IG0hJF9pbmNsdWRlX3JlZ2V4ITsKKwlyZXR1cm4gMSBpZiBkZWZpbmVkKCRzZWxmLT57aW5jbHVkZV9yZWdleH0pOworCXJldHVybiAxIGlmIGRlZmluZWQoJF9pbmNsdWRlX3JlZ2V4KTsKIAlyZXR1cm4gMCB1bmxlc3MgZGVmaW5lZCgkX2lnbm9yZV9yZWdleCk7CiAJcmV0dXJuIDEgaWYgJHBhdGggPX4gbSEkX2lnbm9yZV9yZWdleCFvOwogCXJldHVybiAwOwpAQCAtMzAzLDExICszMTUsMTMgQEAKIHN1YiBhcHBseV90ZXh0ZGVsdGEgewogCW15ICgkc2VsZiwgJGZiLCAkZXhwKSA9IEBfOwogCXJldHVybiB1bmRlZiBpZiAkc2VsZi0+aXNfcGF0aF9pZ25vcmVkKCRmYi0+e3BhdGh9KTsKLQlteSAkZmggPSAkOjpfcmVwb3NpdG9yeS0+dGVtcF9hY3F1aXJlKCdzdm5fZGVsdGEnKTsKKwlteSAkc3VmZml4ID0gMDsKKwkrKyRzdWZmaXggd2hpbGUgJDo6X3JlcG9zaXRvcnktPnRlbXBfaXNfbG9ja2VkKCJzdm5fZGVsdGFfJHskfV8kc3VmZml4Iik7CisJbXkgJGZoID0gJDo6X3JlcG9zaXRvcnktPnRlbXBfYWNxdWlyZSgic3ZuX2RlbHRhXyR7JH1fJHN1ZmZpeCIpOwogCSMgJGZoIGdldHMgYXV0by1jbG9zZWQoKSBieSBTVk46OlR4RGVsdGE6OmFwcGx5KCksCiAJIyAoYnV0ICRiYXNlIGRvZXMgbm90LCkgc28gZHVwKCkgaXQgZm9yIHJlYWRpbmcgaW4gY2xvc2VfZmlsZQogCW9wZW4gbXkgJGR1cCwgJzwmJywgJGZoIG9yIGNyb2FrICQhOwotCW15ICRiYXNlID0gJDo6X3JlcG9zaXRvcnktPnRlbXBfYWNxdWlyZSgnZ2l0X2Jsb2InKTsKKwlteSAkYmFzZSA9ICQ6Ol9yZXBvc2l0b3J5LT50ZW1wX2FjcXVpcmUoImdpdF9ibG9iXyR7JH1fJHN1ZmZpeCIpOwogCiAJaWYgKCRmYi0+e2Jsb2J9KSB7CiAJCW15ICgkYmFzZV9pc19saW5rLCAkc2l6ZSk7CkBAIC01MTIsNiArNTI2LDggQEAKIDE7CiBfX0VORF9fCiAKKz1oZWFkMSBOQU1FCisKIEdpdDo6U1ZOOjpGZXRjaGVyIC0gdHJlZSBkZWx0YSBjb25zdW1lciBmb3IgImdpdCBzdm4gZmV0Y2giCiAKID1oZWFkMSBTWU5PUFNJUwpkaWZmIC0tZ2l0IGEvcGVybC9HaXQvU1ZOL1Byb21wdC5wbSBiL3BlcmwvR2l0L1NWTi9Qcm9tcHQucG0KaW5kZXggNzRkYWE3YS4uZTk0MGIwOCAxMDA2NDQKLS0tIGEvcGVybC9HaXQvU1ZOL1Byb21wdC5wbQorKysgYi9wZXJsL0dpdC9TVk4vUHJvbXB0LnBtCkBAIC0xMjUsNiArMTI1LDggQEAKIDE7CiBfX0VORF9fCiAKKz1oZWFkMSBOQU1FCisKIEdpdDo6U1ZOOjpQcm9tcHQgLSBhdXRoZW50aWNhdGlvbiBjYWxsYmFja3MgZm9yIGdpdC1zdm4KIAogPWhlYWQxIFNZTk9QU0lTCmRpZmYgLS1naXQgYS9wZXJsL0dpdC9TVk4vUmEucG0gYi9wZXJsL0dpdC9TVk4vUmEucG0KaW5kZXggNmEyMTJlYi4uNzVlY2M0MiAxMDA2NDQKLS0tIGEvcGVybC9HaXQvU1ZOL1JhLnBtCisrKyBiL3BlcmwvR2l0L1NWTi9SYS5wbQpAQCAtNjI3LDYgKzYyNyw4IEBACiAxOwogX19FTkRfXwogCis9aGVhZDEgTkFNRQorCiBHaXQ6OlNWTjo6UmEgLSBTdWJ2ZXJzaW9uIHJlbW90ZSBhY2Nlc3MgZnVuY3Rpb25zIGZvciBnaXQtc3ZuCiAKID1oZWFkMSBTWU5PUFNJUwpkaWZmIC0tZ2l0IGEvcG8vVEVBTVMgYi9wby9URUFNUwppbmRleCA1ZWI1YWFkLi4xMDdhYTU5IDEwMDY0NAotLS0gYS9wby9URUFNUworKysgYi9wby9URUFNUwpAQCAtMTIsNiArMTIsMTEgQEAKIAkJSmFuIEtyw7xnZXIgPGprQGprLmdzPgogCQlDaHJpc3RpYW4gU3RpbW1pbmcgPHN0aW1taW5nQHR1aGguZGU+CiAKK0xhbmd1YWdlOglmciAoRnJlbmNoKQorUmVwb3NpdG9yeToJaHR0cHM6Ly9naXRodWIuY29tL2puYXZpbGEvZ2l0CitMZWFkZXI6CQlKZWFuLU5vw6tsIEF2aWxhIDxqbi5hdmlsYUBmcmVlLmZyPgorTWVtYmVyczoJU8OpYmFzdGllbiBIZWxsZXUgPGZsYXNoY29kZUBmbGFzaHR1eC5vcmc+CisKIExhbmd1YWdlOglpcyAoSWNlbGFuZGljKQogTGVhZGVyOgkJw4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24gPGF2YXJhYkBnbWFpbC5jb20+CiAKZGlmZiAtLWdpdCBhL3BvL2RlLnBvIGIvcG8vZGUucG8KaW5kZXggODhkNzkxOS4uZjQwNzZmYiAxMDA2NDQKLS0tIGEvcG8vZGUucG8KKysrIGIvcG8vZGUucG8KQEAgLTUsMTAgKzUsMTAgQEAKICMKIG1zZ2lkICIiCiBtc2dzdHIgIiIKLSJQcm9qZWN0LUlkLVZlcnNpb246IGdpdCAxLjguMlxuIgorIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0IDEuOC40XG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEdpdCBNYWlsaW5nIExpc3QgPGdpdEB2Z2VyLmtlcm5lbC5vcmc+XG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDQtMTAgMTU6MTYrMDgwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTItMTAtMDIgMTk6MzUrMDIwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjEwKzA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA3LTI4IDE4OjQyKzAyMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFJhbGYgVGhpZWxvdyA8cmFsZi50aGllbG93QGdtYWlsLmNvbT5cbiIKICJMYW5ndWFnZS1UZWFtOiBHZXJtYW4gPD5cbiIKICJMYW5ndWFnZTogZGVcbiIKQEAgLTE3LDcgKzE3LDcgQEAKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4hPTEpO1xuIgogCi0jOiBhZHZpY2UuYzo1MworIzogYWR2aWNlLmM6NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaGludDogJS4qc1xuIgogbXNnc3RyICJIaW53ZWlzOiAlLipzXG4iCkBAIC0yNiwyMSArMjYsMjEgQEAKICMuICogTWVzc2FnZSB1c2VkIGJvdGggd2hlbiAnZ2l0IGNvbW1pdCcgZmFpbHMgYW5kIHdoZW4KICMuICogb3RoZXIgY29tbWFuZHMgZG9pbmcgYSBtZXJnZSBkby4KICMuCi0jOiBhZHZpY2UuYzo4MworIzogYWR2aWNlLmM6ODcKIG1zZ2lkICIiCiAiRml4IHRoZW0gdXAgaW4gdGhlIHdvcmsgdHJlZSxcbiIKICJhbmQgdGhlbiB1c2UgJ2dpdCBhZGQvcm0gPGZpbGU+JyBhc1xuIgogImFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbiBhbmQgbWFrZSBhIGNvbW1pdCxcbiIKICJvciB1c2UgJ2dpdCBjb21taXQgLWEnLiIKIG1zZ3N0ciAiIgotIktvcnJpZ2llcmVuIFNpZSBkaWVzIGltIEFyYmVpdHNiYXVtLFxuIgorIktvcnJpZ2llcmVuIFNpZSBkaWVzIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyxcbiIKICJ1bmQgYmVudXR6ZW4gU2llIGRhbm4gJ2dpdCBhZGQvcm0gPERhdGVpPidcbiIKLSJ1bSBkaWUgQXVmbMO2c3VuZyBlbnRzcHJlY2hlbmQgenUgbWFya2llcmVuIHVuZCBlaW56dXRyYWdlbixcbiIKKyJ1bSBkaWUgQXVmbMO2c3VuZyBlbnRzcHJlY2hlbmQgenUgbWFya2llcmVuIHVuZCB6dSBjb21taXR0ZW4sXG4iCiAib2RlciBiZW51dHplbiBTaWUgJ2dpdCBjb21taXQgLWEnLiIKIAogIzogYXJjaGl2ZS5jOjEwCiBtc2dpZCAiZ2l0IGFyY2hpdmUgW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCi1tc2dzdHIgImdpdCBhcmNoaXZlIFtPcHRpb25lbl0gPFZlcnNpb25zcmVmZXJlbno+IFs8UGZhZD4uLi5dIgorbXNnc3RyICJnaXQgYXJjaGl2ZSBbT3B0aW9uZW5dIDxDb21taXQtUmVmZXJlbno+IFs8UGZhZD4uLi5dIgogCiAjOiBhcmNoaXZlLmM6MTEKIG1zZ2lkICJnaXQgYXJjaGl2ZSAtLWxpc3QiCkBAIC01MCwxMiArNTAsMTIgQEAKIG1zZ2lkICIiCiAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPHJlcG8+IFstLWV4ZWMgPGNtZD5dIFtvcHRpb25zXSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgogbXNnc3RyICIiCi0iZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPFByb2pla3RhcmNoaXY+IFstLWV4ZWMgPFByb2dyYW1tPl0gW09wdGlvbmVuXSAiCi0iPFZlcnNpb25zcmVmZXJlbno+IFtQZmFkLi4uXSIKKyJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8UmVwb3NpdG9yeT4gWy0tZXhlYyA8UHJvZ3JhbW0+XSBbT3B0aW9uZW5dIDxDb21taXQtIgorIlJlZmVyZW56PiBbUGZhZC4uLl0iCiAKICM6IGFyY2hpdmUuYzoxMwogbXNnaWQgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxyZXBvPiBbLS1leGVjIDxjbWQ+XSAtLWxpc3QiCi1tc2dzdHIgImdpdCBhcmNoaXZlIC0tcmVtb3RlIDxQcm9qZWt0YXJjaGl2PiBbLS1leGVjIDxQcm9ncmFtbT5dIC0tbGlzdCIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPFJlcG9zaXRvcnk+IFstLWV4ZWMgPFByb2dyYW1tPl0gLS1saXN0IgogCiAjOiBhcmNoaXZlLmM6MzIzCiBtc2dpZCAiZm10IgpAQCAtNjMsMjcgKzYzLDI3IEBACiAKICM6IGFyY2hpdmUuYzozMjMKIG1zZ2lkICJhcmNoaXZlIGZvcm1hdCIKLW1zZ3N0ciAiQXVzZ2FiZWZvcm1hdCIKK21zZ3N0ciAiQXJjaGl2Zm9ybWF0IgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTExNworIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExNzMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgIlByZWZpeCIKIAogIzogYXJjaGl2ZS5jOjMyNQogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCi1tc2dzdHIgInN0ZWxsdCBlaW5lbiBQcsOkZml4IHZvciBqZWRlbiBQZmFkbmFtZW4gaW4gZGVyIEF1c2dhYmUiCittc2dzdHIgInN0ZWxsdCBlaW5lbiBQcsOkZml4IHZvciBqZWRlbiBQZmFkbmFtZW4gaW4gZGVtIEFyY2hpdiIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjM2NgotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcgYnVpbHRpbi9jb25maWcuYzo1NSBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU5Ci0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYxIGJ1aWx0aW4vZ3JlcC5jOjcxNSBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcgYnVpbHRpbi9scy1maWxlcy5jOjUwMCBidWlsdGluL25vdGVzLmM6NTM2Ci0jOiBidWlsdGluL25vdGVzLmM6NjkzIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA3IHBhcnNlLW9wdGlvbnMuaDoxNDkKKyM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyOTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzIGJ1aWx0aW4vY29uZmlnLmM6NTYgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NSBidWlsdGluL2dyZXAuYzo3MTQgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTUyCiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAiRGF0ZWkiCiAKICM6IGFyY2hpdmUuYzozMjcgYnVpbHRpbi9hcmNoaXZlLmM6ODkKIG1zZ2lkICJ3cml0ZSB0aGUgYXJjaGl2ZSB0byB0aGlzIGZpbGUiCi1tc2dzdHIgInNjaHJlaWJ0IGRpZSBBdXNnYWJlIGluIGRpZXNlIERhdGVpIgorbXNnc3RyICJzY2hyZWlidCBkYXMgQXJjaGl2IGluIGRpZXNlIERhdGVpIgogCiAjOiBhcmNoaXZlLmM6MzI5CiBtc2dpZCAicmVhZCAuZ2l0YXR0cmlidXRlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKQEAgLTEwNywxNyArMTA3LDE3IEBACiAKICM6IGFyY2hpdmUuYzozNDMKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCi1tc2dzdHIgImxpc3RldCB1bnRlcnN0w7x0enRlIEF1c2dhYmVmb3JtYXRlIGF1ZiIKK21zZ3N0ciAibGlzdGV0IHVudGVyc3TDvHR6dGUgQXJjaGl2Zm9ybWF0ZSBhdWYiCiAKLSM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg2CisjOiBhcmNoaXZlLmM6MzQ1IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NQogbXNnaWQgInJlcG8iCi1tc2dzdHIgIlByb2pla3RhcmNoaXYiCittc2dzdHIgIlJlcG9zaXRvcnkiCiAKICM6IGFyY2hpdmUuYzozNDYgYnVpbHRpbi9hcmNoaXZlLmM6OTEKIG1zZ2lkICJyZXRyaWV2ZSB0aGUgYXJjaGl2ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IDxyZXBvPiIKLW1zZ3N0ciAicnVmdCBkYXMgQXJjaGl2IHZvbiBleHRlcm5lbSBQcm9qZWt0YXJjaGl2IDxQcm9qZWt0YXJjaGl2PiBhYiIKK21zZ3N0ciAicnVmdCBkYXMgQXJjaGl2IHZvbiBSZW1vdGUtUmVwb3NpdG9yeSA8UmVwb3NpdG9yeT4gYWIiCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAiUHJvZ3JhbW0iCiAKQEAgLTEzMywxOCArMTMzLDkzIEBACiAiVmVybmVpbmVuZGUgTXVzdGVyIHdlcmRlbiBpbiBHaXQtQXR0cmlidXRlbiBpZ25vcmllcnQuXG4iCiAiQmVudXR6ZW4gU2llICdcXCEnIGbDvHIgZsO8aHJlbmRlIEF1c3J1ZmV6ZWljaGVuLiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBicmFuY2ggJXMgYXMgaXRzIG93biB1cHN0cmVhbS4iCittc2dzdHIgIkJyYW5jaCAlcyBrYW5uIG5pY2h0IHNlaW4gZWlnZW5lciBVcHN0cmVhbS1CcmFuY2ggc2Vpbi4iCisKKyM6IGJyYW5jaC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiIgorIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLUJyYW5jaCAlcyB2b24gJXMgZHVyY2ggUmViYXNlLiIKKworIzogYnJhbmNoLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMuIgorbXNnc3RyICJCcmFuY2ggJXMga29uZmlndXJpZXJ0IHp1bSBGb2xnZW4gdm9uIFJlbW90ZS1CcmFuY2ggJXMgdm9uICVzLiIKKworIzogYnJhbmNoLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJCcmFuY2ggJXMga29uZmlndXJpZXJ0IHp1bSBGb2xnZW4gdm9uIGxva2FsZW0gQnJhbmNoICVzIGR1cmNoIFJlYmFzZS4iCisKKyM6IGJyYW5jaC5jOjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgYnJhbmNoICVzLiIKK21zZ3N0ciAiQnJhbmNoICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVtIEJyYW5jaCAlcy4iCisKKyM6IGJyYW5jaC5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLVJlZmVyZW56ICVzIGR1cmNoIFJlYmFzZS4iCisKKyM6IGJyYW5jaC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcy4iCittc2dzdHIgIkJyYW5jaCAlcyBrb25maWd1cmllcnQgenVtIEZvbGdlbiB2b24gUmVtb3RlLVJlZmVyZW56ICVzLiIKKworIzogYnJhbmNoLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCByZWYgJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICIiCisiQnJhbmNoICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVyIFJlZmVyZW56ICVzIGR1cmNoIFJlYmFzZS4iCisKKyM6IGJyYW5jaC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzLiIKK21zZ3N0ciAiQnJhbmNoICVzIGtvbmZpZ3VyaWVydCB6dW0gRm9sZ2VuIHZvbiBsb2thbGVyIFJlZmVyZW56ICVzLiIKKworIzogYnJhbmNoLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRyYWNraW5nIG5vdCBzZXQgdXA6IG5hbWUgdG9vIGxvbmc6ICVzIgorbXNnc3RyICIiCisiS29uZmlndXJhdGlvbiB6dW0gRm9sZ2VuIHZvbiBCcmFuY2ggbmljaHQgZWluZ2VyaWNodGV0LiBOYW1lIHp1IGxhbmc6ICVzIgorCisjOiBicmFuY2guYzoxMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHRyYWNraW5nOiBhbWJpZ3VvdXMgaW5mb3JtYXRpb24gZm9yIHJlZiAlcyIKK21zZ3N0ciAiIgorIktvbmZpZ3VyYXRpb24genVtIEZvbGdlbiB2b24gQnJhbmNoIG5pY2h0IGVpbmdlcmljaHRldC4gUmVmZXJlbnogJXMgaXN0ICIKKyJtZWhyZGV1dGlnLiIKKworIzogYnJhbmNoLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgYnJhbmNoIG5hbWUuIgorbXNnc3RyICInJXMnIGlzdCBrZWluIGfDvGx0aWdlciBCcmFuY2huYW1lLiIKKworIzogYnJhbmNoLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkEgYnJhbmNoIG5hbWVkICclcycgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICJCcmFuY2ggJyVzJyBleGlzdGllcnQgYmVyZWl0cy4iCisKKyM6IGJyYW5jaC5jOjE5NQorbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiS2FubiBBa3R1YWxpc2llcnVuZyBkZXMgYWt0dWVsbGVuIEJyYW5jaGVzIG5pY2h0IGVyendpbmdlbi4iCisKKyM6IGJyYW5jaC5jOjIxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKLW1zZ3N0ciAiS2FubiBJbmZvcm1hdGlvbmVuIHp1bSDDnGJlcm5haG1lendlaWcgbmljaHQgZWlucmljaHRlbjsgIgotIlN0YXJ0cHVua3QgJyVzJyBpc3Qga2VpbiBad2VpZy4iCittc2dzdHIgIiIKKyJLYW5uIFRyYWNraW5nLUluZm9ybWF0aW9uZW4gbmljaHQgZWlucmljaHRlbjsgU3RhcnRwdW5rdCAnJXMnIGlzdCBrZWluICIKKyJCcmFuY2guIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgotbXNnc3RyICJkZXIgYW5nZWZvcmRlcnRlIGV4dGVybmUgw5xiZXJuYWhtZXp3ZWlnICclcycgZXhpc3RpZXJ0IG5pY2h0IgorbXNnc3RyICJkZXIgYW5nZWZvcmRlcnRlIFVwc3RyZWFtLUJyYW5jaCAnJXMnIGV4aXN0aWVydCBuaWNodCIKIAotIzogYnJhbmNoLmM6MjA1CisjOiBicmFuY2guYzoyMjAKIG1zZ2lkICIiCiAiXG4iCiAiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCkBAIC0xNTYsMTQgKzIzMSwzNyBAQAogIlwiZ2l0IHB1c2ggLXVcIiB0byBzZXQgdGhlIHVwc3RyZWFtIGNvbmZpZyBhcyB5b3UgcHVzaC4iCiBtc2dzdHIgIiIKICJcbiIKLSJGYWxscyBTaWUgdm9yaGFiZW4sIElocmUgQXJiZWl0IGF1ZiBlaW5lbSBiZXJlaXRzIGV4aXN0aWVyZW5kZW4sXG4iCi0iZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnIGF1Znp1YmF1ZW4sIHNvbGx0ZW4gU2llIFwiZ2l0IGZldGNoXCJcbiIKKyJGYWxscyBTaWUgdm9yaGFiZW4sIElocmUgQXJiZWl0IGF1ZiBlaW5lbSBiZXJlaXRzIGV4aXN0aWVyZW5kZW5cbiIKKyJVcHN0cmVhbS1CcmFuY2ggYXVmenViYXVlbiwgc29sbHRlbiBTaWUgXCJnaXQgZmV0Y2hcIlxuIgogImF1c2bDvGhyZW4sIHVtIGRpZXNlbiBhYnp1cnVmZW4uXG4iCiAiXG4iCi0iRmFsbHMgU2llIHZvcmhhYmVuLCBlaW5lbiBuZXVlbiBsb2thbGVuIFp3ZWlnIHp1IHZlcnNlbmRlblxuIgorIkZhbGxzIFNpZSB2b3JoYWJlbiwgZWluZW4gbmV1ZW4gbG9rYWxlbiBCcmFuY2ggenUgdmVyc2VuZGVuXG4iCiAiZGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayBmb2xnZW4gc29sbCwga8O2bm5lbiBTaWVcbiIKLSJcImdpdCBwdXNoIC11XCIgdmVyd2VuZGVuLCB1bSBkZW4gZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnXG4iCi0iYmVpbSBWZXJzYW5kIHp1IGtvbmZpZ3VyaWVyZW4uIgorIlwiZ2l0IHB1c2ggLXVcIiB2ZXJ3ZW5kZW4sIHVtIGRlbiBVcHN0cmVhbS1CcmFuY2ggYmVpbSBcInB1c2hcIlxuIgorInp1IGtvbmZpZ3VyaWVyZW4uIgorCisjOiBicmFuY2guYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgorbXNnc3RyICJVbmfDvGx0aWdlciBPYmpla3QtTmFtZTogJyVzJyIKKworIzogYnJhbmNoLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIm1laHJkZXV0aWdlciBPYmpla3QtTmFtZTogJyVzJyIKKworIzogYnJhbmNoLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCittc2dzdHIgIlVuZ8O8bHRpZ2VyIEJyYW5jaHB1bmt0OiAnJXMnIgorCisjOiBicmFuY2guYzoyOTYKK21zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU3BlcnJlbiBkZXIgUmVmZXJlbnogenVyIEFrdHVhbGlzaWVydW5nLiIKKworIzogYnJhbmNoLmM6MzE0Cittc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlciBSZWZlcmVuei4iCiAKICM6IGJ1bmRsZS5jOjM2CiAjLCBjLWZvcm1hdApAQCAtMTc1LDE4ICsyNzMsMTggQEAKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaGVhZGVyOiAlcyVzICglZCkiCiBtc2dzdHIgIm5pY2h0IGVya2FubnRlciBLb3BmYmVyZWljaDogJXMlcyAoJWQpIgogCi0jOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY3NgorIzogYnVuZGxlLmM6ODkgYnVpbHRpbi9jb21taXQuYzo2OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgw7ZmZm5lbiIKIAogIzogYnVuZGxlLmM6MTQwCiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCi1tc2dzdHIgIkRlbSBQcm9qZWt0YXJjaGl2IGZlaGxlbiBmb2xnZW5kZSB2b3JhdXNnZXNldHp0ZSBWZXJzaW9uZW46IgorbXNnc3RyICJEZW0gUmVwb3NpdG9yeSBmZWhsZW4gZm9sZ2VuZGUgdm9yYXVzZ2VzZXR6dGUgQ29tbWl0czoiCiAKLSM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTA4MyBidWlsdGluL2xvZy5jOjMwMAotIzogYnVpbHRpbi9sb2cuYzo3NTQgYnVpbHRpbi9sb2cuYzoxMzUwIGJ1aWx0aW4vbG9nLmM6MTU2NiBidWlsdGluL21lcmdlLmM6MzQ5Ci0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTU3CisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgogbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgogbXNnc3RyICJFaW5yaWNodHVuZyBkZXMgUmV2aXNpb25zZ2FuZ3MgZmVobGdlc2NobGFnZW4iCiAKQEAgLTIxMiw3ICszMTAsNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgIlwicmV2LWxpc3RcIiBhYmdlYnJvY2hlbiIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTI0NiBidWlsdGluL3Nob3J0bG9nLmM6MjYwCisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAibmljaHQgZXJrYW5udGVzIEFyZ3VtZW50OiAlcyIKQEAgLTI0MywzMCArMzQxLDMwIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICJFcnN0ZWxsdW5nIGRlciBQYWtldGluZGV4ZGF0ZWkgYWJnZWJyb2NoZW4iCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCiBtc2dzdHIgImtvbm50ZSAlcyBuaWNodCBwYXJzZW4iCiAKLSM6IGNvbW1pdC5jOjUyCisjOiBjb21taXQuYzo1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyAlcyBpcyBub3QgYSBjb21taXQhIgotbXNnc3RyICIlcyAlcyBpc3Qga2VpbmUgVmVyc2lvbiEiCittc2dzdHIgIiVzICVzIGlzdCBrZWluIENvbW1pdCEiCiAKICM6IGNvbXBhdC9vYnN0YWNrLmM6NDA2IGNvbXBhdC9vYnN0YWNrLmM6NDA4CiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAiU3BlaWNoZXIgdmVyYnJhdWNodCIKIAotIzogY29ubmVjdGVkLmM6MzkKKyM6IGNvbm5lY3RlZC5jOjYwCiBtc2dpZCAiQ291bGQgbm90IHJ1biAnZ2l0IHJldi1saXN0JyIKIG1zZ3N0ciAiS29ubnRlICdnaXQgcmV2LWxpc3QnIG5pY2h0IGF1c2bDvGhyZW4iCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hyZWliZW4gbmFjaCByZXYtbGlzdDogJXMiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgIkZlaGxlciBiZWltIFNjaGxpZcOfZW4gdm9uIHJldi1saXN0J3MgU3RhbmRhcmQtRWluZ2FiZTogJXMiCkBAIC0zNjMsNyArNDYxLDcgQEAKICJGZWhsZXIgaW4gJ2RpZmYuZGlyc3RhdCcgS29uZmlndXJhdGlvbnN2YXJpYWJsZSBnZWZ1bmRlbjpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODAKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC0zNzIsNyArNDcwLDcgQEAKICJGZWhsZXIgYmVpbSBQYXJzZW4gZGVzIC0tZGlyc3RhdC8tWCBPcHRpb25zcGFyYW1ldGVyczpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0OTQKKyM6IGRpZmYuYzozNTAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICJGZWhsZXIgYmVpbSBQYXJzZW4gZGVzIC0tc3VibW9kdWxlIE9wdGlvbnNwYXJhbWV0ZXJzOiAnJXMnIgpAQCAtNDE0LDIwICs1MTIsMjAgQEAKIG1zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgogbXNnc3RyICInJXMnOiByZWFkKCkgenUga3VyeiAlcyIKIAotIzogaGVscC5jOjIxMgorIzogaGVscC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJhdmFpbGFibGUgZ2l0IGNvbW1hbmRzIGluICclcyciCiBtc2dzdHIgIlZvcmhhbmRlbmUgR2l0LUtvbW1hbmRvcyBpbiAnJXMnIgogCi0jOiBoZWxwLmM6MjE5CisjOiBoZWxwLmM6MjE3CiBtc2dpZCAiZ2l0IGNvbW1hbmRzIGF2YWlsYWJsZSBmcm9tIGVsc2V3aGVyZSBvbiB5b3VyICRQQVRIIgogbXNnc3RyICJWb3JoYW5kZW5lIEdpdC1Lb21tYW5kb3MgaXJnZW5kd28gaW4gSWhyZW0gJFBBVEgiCiAKLSM6IGhlbHAuYzoyMzUKKyM6IGhlbHAuYzoyMzMKIG1zZ2lkICJUaGUgbW9zdCBjb21tb25seSB1c2VkIGdpdCBjb21tYW5kcyBhcmU6IgogbXNnc3RyICJEaWUgYWxsZ2VtZWluIHZlcndlbmRldGVuIEdpdC1Lb21tYW5kb3Mgc2luZDoiCiAKLSM6IGhlbHAuYzoyOTIKKyM6IGhlbHAuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiclcycgYXBwZWFycyB0byBiZSBhIGdpdCBjb21tYW5kLCBidXQgd2Ugd2VyZSBub3RcbiIKQEAgLTQzNiwxMSArNTM0LDExIEBACiAiJyVzJyBzY2hlaW50IGVpbiBnaXQtS29tbWFuZG8genUgc2Vpbiwga29ubnRlIGFiZXJcbiIKICJuaWNodCBhdXNnZWbDvGhydCB3ZXJkZW4uIFZpZWxsZWljaHQgaXN0IGdpdC0lcyBmZWhsZXJoYWZ0PyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICJVaCBvaC4gS2VpbmUgR2l0LUtvbW1hbmRvcyBhdWYgSWhyZW0gU3lzdGVtIHZvcmhhbmRlbi4iCiAKLSM6IGhlbHAuYzozNzEKKyM6IGhlbHAuYzozNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldBUk5JTkc6IFlvdSBjYWxsZWQgYSBHaXQgY29tbWFuZCBuYW1lZCAnJXMnLCB3aGljaCBkb2VzIG5vdCBleGlzdC5cbiIKQEAgLTQ0OSwxNyArNTQ3LDE3IEBACiAiV2FybnVuZzogU2llIGhhYmVuIGRhcyBuaWNodCBleGlzdGllcmVuZGUgR2l0LUtvbW1hbmRvICclcycgYXVzZ2Vmw7xocnQuXG4iCiAiU2V0emUgZm9ydCB1bnRlciBkZXIgQW5uYWhtZSwgZGFzcyBTaWUgJyVzJyBnZW1laW50IGhhYmVuIgogCi0jOiBoZWxwLmM6Mzc2CisjOiBoZWxwLmM6Mzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgImluICUwLjFmIHNlY29uZHMgYXV0b21hdGljYWxseS4uLiIKIG1zZ3N0ciAiYXV0b21hdGlzY2ggaW4gJTAuMWYgU2VrdW5kZW4uLi4iCiAKLSM6IGhlbHAuYzozODMKKyM6IGhlbHAuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0OiAnJXMnIGlzIG5vdCBhIGdpdCBjb21tYW5kLiBTZWUgJ2dpdCAtLWhlbHAnLiIKIG1zZ3N0ciAiZ2l0OiAnJXMnIGlzdCBrZWluIEdpdC1Lb21tYW5kby4gU2llaGUgJ2dpdCAtLWhlbHAnLiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTQ3Myw4OSArNTcxLDk0IEBACiAiXG4iCiAiSGFiZW4gU2llIGVpbmVzIHZvbiBkaWVzZW4gZ2VtZWludD8iCiAKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVzOiAlcyAtICVzIgorCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICJMZXNlbiBkZXMgWndpc2NoZW5zcGVpY2hlcnMgZmVobGdlc2NobGFnZW4iCiAKLSM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjIgYnVpbHRpbi9jaGVja291dC5jOjU2MwotIzogYnVpbHRpbi9jbG9uZS5jOjYzNQorIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2CisjOiBidWlsdGluL2Nsb25lLmM6NjU2CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgotbXNnc3RyICJLb25udGUgbmV1ZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBuaWNodCBzY2hyZWliZW4uIgorbXNnc3RyICJLb25udGUgbmV1ZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKIAogIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIihiYWQgY29tbWl0KVxuIgotbXNnc3RyICIodW5nw7xsdGlnZSBWZXJzaW9uKVxuIgorbXNnc3RyICIodW5nw7xsdGlnZXIgQ29tbWl0KVxuIgogCiAjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYWRkaW5mb19jYWNoZSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKIG1zZ3N0ciAiYWRkaW5mb19jYWNoZSBmw7xyIFBmYWQgJyVzJyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjkKIG1zZ2lkICJlcnJvciBidWlsZGluZyB0cmVlcyIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRXJzdGVsbGVuIGRlciBCw6R1bWUiCittc2dzdHIgIkZlaGxlciBiZWltIEVyc3RlbGxlbiBkZXIgXCJUcmVlXCItT2JqZWt0ZSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjcyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBwYXRoICclcyclcyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gRXJzdGVsbGVuIGRlcyBQZmFkZXMgJyVzJyVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyB0byBtYWtlIHJvb20gZm9yIHN1YmRpcmVjdG9yeVxuIgogbXNnc3RyICJFbnRmZXJuZSAlcyB1bSBQbGF0eiBmw7xyIFVudGVydmVyemVpY2huaXMgenUgc2NoYWZmZW5cbiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAiOiB2aWVsbGVpY2h0IGVpbiBWZXJ6ZWljaG5pcy9EYXRlaS1Lb25mbGlrdD8iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZnVzaW5nIHRvIGxvc2UgdW50cmFja2VkIGZpbGUgYXQgJyVzJyIKIG1zZ3N0ciAidmVyd2VpZ2VyZSwgZGEgdW5iZW9iYWNodGV0ZSBEYXRlaWVuIGluICclcycgdmVybG9yZW4gZ2VoZW4gd8O8cmRlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzICclcyciCiBtc2dzdHIgImthbm4gT2JqZWt0ICVzICclcycgbmljaHQgbGVzZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJsb2IgZXhwZWN0ZWQgZm9yICVzICclcyciCiBtc2dzdHIgIkJsb2IgZXJ3YXJ0ZXQgZsO8ciAlcyAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gw5ZmZm5lbiB2b24gJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN5bWxpbmsgJyVzJyIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRXJzdGVsbGVuIGVpbmVyIHN5bWJvbGlzY2hlbiBWZXJrbsO8cGZ1bmcgZsO8ciAnJXMnIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFcnN0ZWxsZW4gZWluZXMgc3ltYm9saXNjaGVuIFZlcndlaXNlcyBmw7xyICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImRvIG5vdCBrbm93IHdoYXQgdG8gZG8gd2l0aCAlMDZvICVzICclcyciCiBtc2dzdHIgIndlacOfIG5pY2h0IHdhcyBtaXQgJTA2byAlcyAnJXMnIHp1IG1hY2hlbiBpc3QiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIzCiBtc2dpZCAiRmFpbGVkIHRvIGV4ZWN1dGUgaW50ZXJuYWwgbWVyZ2UiCi1tc2dzdHIgIkZlaGxlciBiZWkgQXVzZsO8aHJ1bmcgZGVyIGludGVybmVuIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgIkZlaGxlciBiZWkgQXVzZsO8aHJ1bmcgZGVzIGludGVybmVuIE1lcmdlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCAlcyB0byBkYXRhYmFzZSIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IHp1ciBEYXRlbmJhbmsgaGluenVmw7xnZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQzCiBtc2dpZCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgaW4gdGhlIHRyZWUiCi1tc2dzdHIgIm5pY2h0IHVudGVyc3TDvHR6dGVyIE9iamVrdHR5cCBpbSBCYXVtIgorbXNnc3RyICJuaWNodCB1bnRlcnN0w7x0enRlciBPYmpla3R0eXAgaW0gVmVyemVpY2huaXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjEgbWVyZ2UtcmVjdXJzaXZlLmM6MTAzNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMiBtZXJnZS1yZWN1cnNpdmUuYzoxMDM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAoJXMvZGVsZXRlKTogJXMgZGVsZXRlZCBpbiAlcyBhbmQgJXMgaW4gJXMuIFZlcnNpb24gJXMgb2YgJXMgbGVmdCAiCkBAIC01NjQsNyArNjY3LDcgQEAKICJLT05GTElLVCAoJXMvbMO2c2NoZW4pOiAlcyBnZWzDtnNjaHQgaW4gJXMgdW5kICVzIGluICVzLiBTdGFuZCAlcyB2b24gJXMgd3VyZGUgIgogImltIEFyYmVpdHNiZXJlaWNoIGdlbGFzc2VuLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyNyBtZXJnZS1yZWN1cnNpdmUuYzoxMDQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI4IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU3MywxNzQgKzY3NiwxOTcgQEAKICJLT05GTElLVCAoJXMvbMO2c2NoZW4pOiAlcyBnZWzDtnNjaHQgaW4gJXMgdW5kICVzIGluICVzLiBTdGFuZCAlcyB2b24gJXMgd3VyZGUgIgogImltIEFyYmVpdHNiZXJlaWNoIGJlaSAlcyBnZWxhc3Nlbi4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWUiCiBtc2dzdHIgInVtYmVuZW5uZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWVkIgogbXNnc3RyICJ1bWJlbmFubnQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiVzIGlzdCBlaW4gVmVyemVpY2huaXMgaW4gJXMsIGbDvGdlIGVzIHN0YXR0ZGVzc2VuIGFscyAlcyBoaW56dSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE1OQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgXCIlc1wiLT5cIiVzXCIgaW4gYnJhbmNoIFwiJXNcIiByZW5hbWUgXCIlcyIKICJcIi0+XCIlc1wiIGluIFwiJXNcIiVzIgogbXNnc3RyICIiCi0iS09ORkxJS1QgKHVtYmVuZW5uZW4vdW1iZW5lbm5lbik6IEJlbmVubmUgdW0gXCIlc1wiLT5cIiVzXCIgaW4gWndlaWcgXCIlc1wiICIKLSJ1bmQgXCIlc1wiLT5cIiVzXCIgaW4gWndlaWcgXCIlc1wiJXMiCisiS09ORkxJS1QgKHVtYmVuZW5uZW4vdW1iZW5lbm5lbik6IEJlbmVubmUgdW0gXCIlc1wiLT5cIiVzXCIgaW4gQnJhbmNoIFwiJXNcIiAiCisidW5kIFwiJXNcIi0+XCIlc1wiIGluIEJyYW5jaCBcIiVzXCIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NQogbXNnaWQgIiAobGVmdCB1bnJlc29sdmVkKSIKIG1zZ3N0ciAiIChibGVpYnQgdW5hdWZnZWzDtnN0KSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuIFJlbmFtZSAlcy0+JXMgaW4gJXMiCiBtc2dzdHIgIiIKICJLT05GTElLVCAodW1iZW5lbm5lbi91bWJlbmVubmVuKTogQmVuZW5uZSB1bSAlcy0+JXMgaW4gJXMuIEJlbmVubmUgdW0gJXMtPiVzICIKICJpbiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlcyBhbmQgJXMgdG8gJXMgaW5zdGVhZCIKIG1zZ3N0ciAiQmVuZW5uZSBzdGF0dGRlc3NlbiAlcyBuYWNoICVzIHVuZCAlcyBuYWNoICVzIHVtIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCiBtc2dzdHIgIiIKICJLT05GTElLVCAodW1iZW5lbm5lbi9oaW56dWbDvGdlbik6IEJlbmVubmUgdW0gJXMtPiVzIGluICVzLiAlcyBoaW56dWdlZsO8Z3QgaW4gIgogIiVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCiBtc2dzdHIgIkbDvGdlIHp1c2FtbWVuZ2Vmw7xocnRlIERhdGVpICVzIGhpbnp1IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYyIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjMgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgYXMgJXMgaW5zdGVhZCIKIG1zZ3N0ciAiRsO8Z2Ugc3RhdHRkZXNzZW4gYWxzICVzIGhpbnp1IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTEzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAia2FubiBPYmpla3QgJXMgbmljaHQgbGVzZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgIk9iamVrdCAlcyBpc3Qga2VpbiBCbG9iIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICLDpG5kZXJuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZpZWQiCiBtc2dzdHIgImdlw6RuZGVydCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NQogbXNnaWQgImNvbnRlbnQiCiBtc2dzdHIgIkluaGFsdCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU4MgogbXNnaWQgImFkZC9hZGQiCiBtc2dzdHIgImhpbnp1ZsO8Z2VuL2hpbnp1ZsO8Z2VuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwZWQgJXMgKG1lcmdlZCBzYW1lIGFzIGV4aXN0aW5nKSIKLW1zZ3N0ciAiJXMgYXVzZ2VsYXNzZW4gKEVyZ2VibmlzIGRlciBadXNhbW1lbmbDvGhydW5nIGV4aXN0aWVydCBiZXJlaXRzKSIKK21zZ3N0ciAiJXMgYXVzZ2VsYXNzZW4gKEVyZ2VibmlzIGRlcyBNZXJnZXMgZXhpc3RpZXJ0IGJlcmVpdHMpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG8tbWVyZ2luZyAlcyIKLW1zZ3N0ciAiYXV0b21hdGlzY2hlIFp1c2FtbWVuZsO8aHJ1bmcgdm9uICVzIgorbXNnc3RyICJhdXRvbWF0aXNjaGVyIE1lcmdlIHZvbiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTE4CiBtc2dpZCAic3VibW9kdWxlIgotbXNnc3RyICJVbnRlcnByb2pla3QiCittc2dzdHIgIlN1Ym1vZHVsIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IE1lcmdlIGNvbmZsaWN0IGluICVzIgotbXNnc3RyICJLT05GTElLVCAoJXMpOiBadXNhbW1lbmbDvGhydW5nc2tvbmZsaWt0IGluICVzIgorbXNnc3RyICJLT05GTElLVCAoJXMpOiBNZXJnZS1Lb25mbGlrdCBpbiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyIKIG1zZ3N0ciAiRW50ZmVybmUgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAiRGF0ZWkvVmVyemVpY2huaXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTYKIG1zZ2lkICJkaXJlY3RvcnkvZmlsZSIKIG1zZ3N0ciAiVmVyemVpY2huaXMvRGF0ZWkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogVGhlcmUgaXMgYSBkaXJlY3Rvcnkgd2l0aCBuYW1lICVzIGluICVzLiBBZGRpbmcgJXMgYXMgJXMiCiBtc2dzdHIgIiIKICJLT05GTElLVCAoJXMpOiBFcyBleGlzdGllcnQgYmVyZWl0cyBlaW4gVmVyemVpY2huaXMgJXMgaW4gJXMuIEbDvGdlICVzIGFscyAlcyAiCiAiaGluenUuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyAlcyIKIG1zZ3N0ciAiRsO8Z2UgJXMgaGluenUiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODgKIG1zZ2lkICJGYXRhbCBtZXJnZSBmYWlsdXJlLCBzaG91bGRuJ3QgaGFwcGVuLiIKLW1zZ3N0ciAiRmF0YWxlciBGZWhsZXIgYmVpIGRlciBadXNhbW1lbmbDvGhydW5nLiBTb2xsdGUgbmljaHQgcGFzc2llcmVuLiIKK21zZ3N0ciAiRmF0YWxlciBNZXJnZS1GZWhsZXIuIFNvbGx0ZSBuaWNodCBwYXNzaWVyZW4uIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA3CiBtc2dpZCAiQWxyZWFkeSB1cC10by1kYXRlISIKIG1zZ3N0ciAiQmVyZWl0cyBha3R1ZWxsISIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJtZXJnaW5nIG9mIHRyZWVzICVzIGFuZCAlcyBmYWlsZWQiCi1tc2dzdHIgIlp1c2FtbWVuZsO8aHJlbiBkZXIgQsOkdW1lICVzIHVuZCAlcyBmZWhsZ2VzY2hsYWdlbiIKK21zZ3N0ciAiWnVzYW1tZW5mw7xocmVuIGRlciBcIlRyZWVcIi1PYmpla3RlICVzIHVuZCAlcyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgogbXNnc3RyICJ1bnZlcmFyYmVpdGV0ZXIgUGZhZD8/PyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MQogbXNnaWQgIk1lcmdpbmc6IgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nOiIKK21zZ3N0ciAiTWVyZ2U6IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgotbXNnc3RyWzBdICIldSBnZW1laW5zYW1lbiBWb3JmYWhyZW4gZ2VmdW5kZW4iCi1tc2dzdHJbMV0gIiV1IGdlbWVpbnNhbWUgVm9yZmFocmVuIGdlZnVuZGVuIgorbXNnc3RyWzBdICIldSBnZW1laW5zYW1lbiBWb3Jnw6RuZ2VyLUNvbW1pdCBnZWZ1bmRlbiIKK21zZ3N0clsxXSAiJXUgZ2VtZWluc2FtZSBWb3Jnw6RuZ2VyLUNvbW1pdHMgZ2VmdW5kZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDEKIG1zZ2lkICJtZXJnZSByZXR1cm5lZCBubyBjb21taXQiCi1tc2dzdHIgIlp1c2FtbWVuZsO8aHJ1bmcgaGF0IGtlaW5lIFZlcnNpb24genVyw7xja2dlZ2ViZW4iCittc2dzdHIgIk1lcmdlIGhhdCBrZWluZW4gQ29tbWl0IHp1csO8Y2tnZWdlYmVuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiS29ubnRlIE9iamVrdCAnJXMnIG5pY2h0IHBhcnNlbi4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMDkgYnVpbHRpbi9tZXJnZS5jOjY1OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAxMCBidWlsdGluL21lcmdlLmM6NjcyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGluZGV4LiIKLW1zZ3N0ciAiS29ubnRlIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IHNjaHJlaWJlbi4iCittc2dzdHIgIktvbm50ZSBTdGFnaW5nLUFyZWEgbmljaHQgc2NocmVpYmVuLiIKIAotIzogb2JqZWN0LmM6MTk1CisjOiBub3Rlcy11dGlscy5jOjQwCittc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgorbXNnc3RyICIiCisiS2FubiB1bmluaXRpYWxpc2llcnRlcy91bnJlZmVyZW56aWVydGUgTm90aXotVmVyemVpY2huaXMgbmljaHQgY29tbWl0dGVuLiIKKworIzogbm90ZXMtdXRpbHMuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIlVuZ8O8bHRpZ2VyIG5vdGVzLnJld3JpdGVNb2RlIFdlcnQ6ICclcyciCisKKyM6IG5vdGVzLXV0aWxzLmM6OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCittc2dzdHIgIiIKKyJVbXNjaHJlaWJlbiBkZXIgTm90aXplbiBpbiAlcyB6dXLDvGNrZ2V3aWVzZW4gKGF1w59lcmhhbGIgdm9uIHJlZnMvbm90ZXMvKSIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogbm90ZXMtdXRpbHMuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgorbXNnc3RyICJVbmfDvGx0aWdlciAlcyBXZXJ0OiAnJXMnIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgIktvbm50ZSBPYmpla3QgJyVzJyBuaWNodCBwYXJzZW4uIgpAQCAtNzczLDQxICs4OTksNDAgQEAKICM6IHBhdGhzcGVjLmM6ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiUGF0aCAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciCi1tc2dzdHIgIlBmYWQgJyVzJyBiZWZpbmRldCBzaWNoIGluIFVudGVycHJvamVrdCAnJS4qcyciCittc2dzdHIgIlBmYWQgJyVzJyBiZWZpbmRldCBzaWNoIGluIFN1Ym1vZHVsICclLipzJyIKIAogIzogcGF0aHNwZWMuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCi1tc2dzdHIgIiclcycgaXN0IMO8YmVyIGVpbmVtIHN5bWJvbGlzY2hlbiBMaW5rIgorbXNnc3RyICInJXMnIGlzdCBoaW50ZXIgZWluZW0gc3ltYm9saXNjaGVuIFZlcndlaXMiCiAKLSM6IHJlbW90ZS5jOjE3ODEKKyM6IHJlbW90ZS5jOjE3ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXQuXG4iCiBtc2dpZF9wbHVyYWwgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0cy5cbiIKLW1zZ3N0clswXSAiSWhyIFp3ZWlnIGlzdCB2b3IgJyVzJyB1bSAlZCBWZXJzaW9uLlxuIgotbXNnc3RyWzFdICJJaHIgWndlaWcgaXN0IHZvciAnJXMnIHVtICVkIFZlcnNpb25lbi5cbiIKK21zZ3N0clswXSAiSWhyIEJyYW5jaCBpc3Qgdm9yICclcycgdW0gJWQgQ29tbWl0LlxuIgorbXNnc3RyWzFdICJJaHIgQnJhbmNoIGlzdCB2b3IgJyVzJyB1bSAlZCBDb21taXRzLlxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxNzk0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKLW1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IHB1c2hcIiB1bSBsb2thbGVuIFZlcnNpb25lbiBoZXJhdXN6dWJyaW5nZW4pXG4iCittc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdXNoXCIgdW0gbG9rYWxlIENvbW1pdHMgenUgcHVibGl6aWVyZW4pXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTAKKyM6IHJlbW90ZS5jOjE3OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCiAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0cywgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ3N0clswXSAiIgotIklociBad2VpZyBpc3QgenUgJyVzJyB1bSAlZCBWZXJzaW9uIGhpbnRlcmhlciwgdW5kIGthbm4gdm9yZ2VzcHVsdCB3ZXJkZW4uXG4iCisiSWhyIEJyYW5jaCBpc3QgenUgJyVzJyB1bSAlZCBDb21taXQgaGludGVyaGVyLCB1bmQga2FubiB2b3JnZXNwdWx0IHdlcmRlbi5cbiIKIG1zZ3N0clsxXSAiIgotIklociBad2VpZyBpc3QgenUgJyVzJyB1bSAlZCBWZXJzaW9uZW4gaGludGVyaGVyLCB1bmQga2FubiB2b3JnZXNwdWx0ICIKLSJ3ZXJkZW4uXG4iCisiSWhyIEJyYW5jaCBpc3QgenUgJyVzJyB1bSAlZCBDb21taXRzIGhpbnRlcmhlciwgdW5kIGthbm4gdm9yZ2VzcHVsdCB3ZXJkZW4uXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTgKKyM6IHJlbW90ZS5jOjE4MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiIgotIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdWxsXCIgdW0gSWhyZW4gbG9rYWxlbiBad2VpZyB6dSBha3R1YWxpc2llcmVuKVxuIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdWxsXCIgdW0gSWhyZW4gbG9rYWxlbiBCcmFuY2ggenUgYWt0dWFsaXNpZXJlbilcbiIKIAotIzogcmVtb3RlLmM6MTgwMQorIzogcmVtb3RlLmM6MTgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTgxNiwyNiArOTQxLDM1IEBACiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKICJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdHMgZWFjaCwgcmVzcGVjdGl2ZWx5LlxuIgogbXNnc3RyWzBdICIiCi0iSWhyIFp3ZWlnIHVuZCAnJXMnIHNpbmQgZGl2ZXJnaWVydCxcbiIKLSJ1bmQgaGFiZW4gamV3ZWlscyAlZCB1bmQgJWQgdW50ZXJzY2hpZWRsaWNoZSBWZXJzaW9uZW4uXG4iCisiSWhyIEJyYW5jaCB1bmQgJyVzJyBzaW5kIGRpdmVyZ2llcnQsXG4iCisidW5kIGhhYmVuIGpld2VpbHMgJWQgdW5kICVkIHVudGVyc2NoaWVkbGljaGUgQ29tbWl0cy5cbiIKIG1zZ3N0clsxXSAiIgotIklociBad2VpZyB1bmQgJyVzJyBzaW5kIGRpdmVyZ2llcnQsXG4iCi0idW5kIGhhYmVuIGpld2VpbHMgJWQgdW5kICVkIHVudGVyc2NoaWVkbGljaGUgVmVyc2lvbmVuLlxuIgorIklociBCcmFuY2ggdW5kICclcycgc2luZCBkaXZlcmdpZXJ0LFxuIgorInVuZCBoYWJlbiBqZXdlaWxzICVkIHVuZCAlZCB1bnRlcnNjaGllZGxpY2hlIENvbW1pdHMuXG4iCiAKLSM6IHJlbW90ZS5jOjE4MTEKKyM6IHJlbW90ZS5jOjE4MTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcHVsbFwiIHVtIElocmVuIFp3ZWlnIG1pdCBkZW0gZXh0ZXJuZW4gIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBwdWxsXCIgdW0gSWhyZW4gQnJhbmNoIG1pdCBkZW0gUmVtb3RlLUJyYW5jaCAiCiAienVzYW1tZW56dWbDvGhyZW4pXG4iCiAKLSM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6Nzc2IGJ1aWx0aW4vbWVyZ2UuYzo4ODkgYnVpbHRpbi9tZXJnZS5jOjk5OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDkKKyM6IHJ1bi1jb21tYW5kLmM6ODAKK21zZ2lkICJvcGVuIC9kZXYvbnVsbCBmYWlsZWQiCittc2dzdHIgIsOWZmZuZW4gdm9uIC9kZXYvbnVsbCBmZWhsZ2VzY2hsYWdlbiIKKworIzogcnVuLWNvbW1hbmQuYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkdXAyKCVkLCVkKSBmYWlsZWQiCittc2dzdHIgImR1cDIoJWQsJWQpIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc5MCBidWlsdGluL21lcmdlLmM6OTAzCisjOiBidWlsdGluL21lcmdlLmM6MTAxMyBidWlsdGluL21lcmdlLmM6MTAyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCB6dW0gU2NocmVpYmVuIMO2ZmZuZW4uIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjMzNSBidWlsdGluL21lcmdlLmM6Nzc5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwMSBidWlsdGluL21lcmdlLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozNTAgYnVpbHRpbi9tZXJnZS5jOjc5MworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTUgYnVpbHRpbi9tZXJnZS5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICclcyciCiBtc2dzdHIgIktvbm50ZSBuaWNodCBuYWNoICclcycgc2NocmVpYmVuLiIKQEAgLTg1OCw3ICs5OTIsNyBAQAogIm1pdCAnZ2l0IGFkZCA8UGZhZGU+JyBvZGVyICdnaXQgcm0gPFBmYWRlPid1bmQgdHJhZ2VuIFNpZSBkYXMgRXJnZWJuaXMgbWl0XG4iCiAiJ2dpdCBjb21taXQnIGVpbiIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAiS29ubnRlIG5pY2h0IG5hY2ggJXMgc2NocmVpYmVuIgpAQCAtODgzLDUxMiArMTAxNyw1NTkgQEAKICJUcmFnZW4gU2llIElocmUgw4RuZGVydW5nZW4gZWluIG9kZXIgYmVudXR6ZW4gU2llIFwic3Rhc2hcIiB1bSBmb3J0enVmYWhyZW4uIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMTkKKyM6IHNlcXVlbmNlci5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgotbXNnc3RyICIlczogS29ubnRlIG5ldWUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgc2NocmVpYmVuIgorbXNnc3RyICIlczogS29ubnRlIG5ldWUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgotbXNnc3RyICJLb25udGUgVmVyc2lvbiBkZXIgWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGF1ZmzDtnNlblxuIgorbXNnc3RyICJLb25udGUgQ29tbWl0IHZvbiBIRUFEIG5pY2h0IGF1ZmzDtnNlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzEKKyM6IHNlcXVlbmNlci5jOjM3NwogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgotbXNnc3RyICJLb25udGUgendpc2NoZW5nZXNwZWljaGVydGVuIEJhdW0gbmljaHQgYWt0dWFsaXNpZXJlblxuIgorbXNnc3RyICJLb25udGUgQ2FjaGUtVmVyemVpY2huaXMgbmljaHQgYWt0dWFsaXNpZXJlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MTYKKyM6IHNlcXVlbmNlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgY29tbWl0ICVzXG4iCi1tc2dzdHIgIktvbm50ZSBWZXJzaW9uICVzIG5pY2h0IHBhcnNlblxuIgorbXNnc3RyICJLb25udGUgQ29tbWl0ICVzIG5pY2h0IHBhcnNlblxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjEKKyM6IHNlcXVlbmNlci5jOjQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgotbXNnc3RyICJLb25udGUgRWx0ZXJudmVyc2lvbiAlcyBuaWNodCBwYXJzZW5cbiIKK21zZ3N0ciAiS29ubnRlIEVsdGVybi1Db21taXQgJXMgbmljaHQgcGFyc2VuXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQ4NworIzogc2VxdWVuY2VyLmM6NDkzCiBtc2dpZCAiWW91ciBpbmRleCBmaWxlIGlzIHVubWVyZ2VkLiIKLW1zZ3N0ciAiSWhyZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBpc3QgbmljaHQgenVzYW1tZW5nZWbDvGhydC4iCittc2dzdHIgIklocmUgU3RhZ2luZy1BcmVhLURhdGVpIGlzdCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0LiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgotbXNnc3RyICIiCi0iVmVyc2lvbiAlcyBpc3QgZWluZSBadXNhbW1lbmbDvGhydW5nLCBhYmVyIGRpZSBPcHRpb24gLW0gd3VyZGUgbmljaHQgIgotImFuZ2VnZWJlbi4iCittc2dzdHIgIkNvbW1pdCAlcyBpc3QgZWluIE1lcmdlLCBhYmVyIGRpZSBPcHRpb24gLW0gd3VyZGUgbmljaHQgYW5nZWdlYmVuLiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgotbXNnc3RyICJWZXJzaW9uICVzIGhhdCBrZWluZW4gRWx0ZXJudGVpbCAlZCIKK21zZ3N0ciAiQ29tbWl0ICVzIGhhdCBrZWluZW4gRWx0ZXJudGVpbCAlZCIKIAotIzogc2VxdWVuY2VyLmM6NTE4CisjOiBzZXF1ZW5jZXIuYzo1MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFpbmxpbmUgd2FzIHNwZWNpZmllZCBidXQgY29tbWl0ICVzIGlzIG5vdCBhIG1lcmdlLiIKLW1zZ3N0ciAiIgotIkhhdXB0bGluaWUgd3VyZGUgc3BlemlmaXppZXJ0LCBhYmVyIFZlcnNpb24gJXMgaXN0IGtlaW5lIFp1c2FtbWVuZsO8aHJ1bmcuIgorbXNnc3RyICJIYXVwdGxpbmllIHd1cmRlIHNwZXppZml6aWVydCwgYWJlciBDb21taXQgJXMgaXN0IGtlaW4gTWVyZ2UuIgogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCi1tc2dzdHIgIiVzOiBrYW5uIEVsdGVybnZlcnNpb24gJXMgbmljaHQgcGFyc2VuIgorbXNnc3RyICIlczoga2FubiBFbHRlcm4tQ29tbWl0ICVzIG5pY2h0IHBhcnNlbiIKIAotIzogc2VxdWVuY2VyLmM6NTM1CisjOiBzZXF1ZW5jZXIuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCi1tc2dzdHIgIkthbm4ga2VpbmUgVmVyc2lvbnNiZXNjaHJlaWJ1bmcgZsO8ciAlcyBiZWtvbW1lbiIKK21zZ3N0ciAiS2FubiBrZWluZSBDb21taXQtQmVzY2hyZWlidW5nIGbDvHIgJXMgYmVrb21tZW4iCiAKLSM6IHNlcXVlbmNlci5jOjYyMQorIzogc2VxdWVuY2VyLmM6NjI3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZXZlcnQgJXMuLi4gJXMiCi1tc2dzdHIgIktvbm50ZSAlcyBuaWNodCB6dXLDvGNrbmVobWVuLi4uICVzIgorbXNnc3RyICJLb25udGUgXCJyZXZlcnRcIiBuaWNodCBhdWYgJXMgYXVzZsO8aHJlbi4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjIyCisjOiBzZXF1ZW5jZXIuYzo2MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgogbXNnc3RyICJLb25udGUgJXMgbmljaHQgYW53ZW5kZW4uLi4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjY1NAorIzogc2VxdWVuY2VyLmM6NjY0CiBtc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCi1tc2dzdHIgImxlZXJlIE1lbmdlIHZvbiBWZXJzaW9uZW4gw7xiZXJnZWJlbiIKK21zZ3N0ciAibGVlcmUgTWVuZ2Ugdm9uIENvbW1pdHMgw7xiZXJnZWJlbiIKIAotIzogc2VxdWVuY2VyLmM6NjYyCisjOiBzZXF1ZW5jZXIuYzo2NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0ICVzOiBmYWlsZWQgdG8gcmVhZCB0aGUgaW5kZXgiCi1tc2dzdHIgImdpdCAlczogRmVobGVyIGJlaW0gTGVzZW4gZGVyIEJlcmVpdHN0ZWxsdW5nIgorbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIExlc2VuIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IHNlcXVlbmNlci5jOjY2NworIzogc2VxdWVuY2VyLmM6Njc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgotbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIEFrdHVhbGlzaWVyZW4gZGVyIEJlcmVpdHN0ZWxsdW5nIgorbXNnc3RyICJnaXQgJXM6IEZlaGxlciBiZWltIEFrdHVhbGlzaWVyZW4gZGVyIFN0YWdpbmctQXJlYSIKIAotIzogc2VxdWVuY2VyLmM6NzI1CisjOiBzZXF1ZW5jZXIuYzo3MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90ICVzIGR1cmluZyBhICVzIgogbXNnc3RyICJLYW5uICVzIG5pY2h0IHfDpGhyZW5kIGVpbmVzICVzIGR1cmNoZsO8aHJlbiIKIAotIzogc2VxdWVuY2VyLmM6NzQ3CisjOiBzZXF1ZW5jZXIuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGxpbmUgJWQuIgogbXNnc3RyICJLb25udGUgWmVpbGUgJWQgbmljaHQgcGFyc2VuLiIKIAotIzogc2VxdWVuY2VyLmM6NzUyCisjOiBzZXF1ZW5jZXIuYzo3NjIKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCi1tc2dzdHIgIktlaW5lIFZlcnNpb25lbiBnZXBhcnN0LiIKK21zZ3N0ciAiS2VpbmUgQ29tbWl0cyBnZXBhcnN0LiIKIAotIzogc2VxdWVuY2VyLmM6NzY1CisjOiBzZXF1ZW5jZXIuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCDDtmZmbmVuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjkKKyM6IHNlcXVlbmNlci5jOjc3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCBsZXNlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjc3NgorIzogc2VxdWVuY2VyLmM6Nzg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAiVW5iZW51dHpiYXJlcyBJbnN0cnVrdGlvbnNibGF0dDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgwNAorIzogc2VxdWVuY2VyLmM6ODE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQga2V5OiAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgU2NobMO8c3NlbDogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgwNworIzogc2VxdWVuY2VyLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdmFsdWUgZm9yICVzOiAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgV2VydCBmw7xyICVzOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODE5CisjOiBzZXF1ZW5jZXIuYzo4MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIG9wdGlvbnMgc2hlZXQ6ICVzIgogbXNnc3RyICJGZWhsZXJoYWZ0ZXMgT3B0aW9uc2JsYXR0OiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODQwCisjOiBzZXF1ZW5jZXIuYzo4NTAKIG1zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgogbXNnc3RyICJcImNoZXJyeS1waWNrXCIgb2RlciBcInJldmVydFwiIGlzdCBiZXJlaXRzIGltIEdhbmciCiAKLSM6IHNlcXVlbmNlci5jOjg0MQorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAidHJ5IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlIHwgLS1xdWl0IHwgLS1hYm9ydClcIiIKIG1zZ3N0ciAidmVyc3VjaGVuIFNpZSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiAKLSM6IHNlcXVlbmNlci5jOjg0NQorIzogc2VxdWVuY2VyLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAiS29ubnRlIFwic2VxdWVuY2VyXCItVmVyemVpY2huaXMgJXMgbmljaHQgZXJzdGVsbGVuIgogCi0jOiBzZXF1ZW5jZXIuYzo4NjEgc2VxdWVuY2VyLmM6OTQ2CisjOiBzZXF1ZW5jZXIuYzo4NzEgc2VxdWVuY2VyLmM6OTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIHdyYXBwaW5nIHVwICVzLiIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gRWlucGFja2VuIHZvbiAlcy4iCiAKLSM6IHNlcXVlbmNlci5jOjg4MCBzZXF1ZW5jZXIuYzoxMDE0CisjOiBzZXF1ZW5jZXIuYzo4OTAgc2VxdWVuY2VyLmM6MTAyNAogbXNnaWQgIm5vIGNoZXJyeS1waWNrIG9yIHJldmVydCBpbiBwcm9ncmVzcyIKIG1zZ3N0ciAia2VpbiBcImNoZXJyeS1waWNrXCIgb2RlciBcInJldmVydFwiIGltIEdhbmciCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKLW1zZ3N0ciAia2FubiBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgYXVmbMO2c2VuIgorbXNnc3RyICJrYW5uIEhFQUQgbmljaHQgYXVmbMO2c2VuIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODQKKyM6IHNlcXVlbmNlci5jOjg5NAogbXNnaWQgImNhbm5vdCBhYm9ydCBmcm9tIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgotbXNnc3RyICJrYW5uIG5pY2h0IGFiYnJlY2hlbjogYmluIGF1ZiBlaW5lbSBad2VpZywgZGVyIG5vY2ggZ2Vib3JlbiB3aXJkIgorbXNnc3RyICJrYW5uIG5pY2h0IGFiYnJlY2hlbjogYmluIGF1ZiBlaW5lbSBCcmFuY2gsIGRlciBub2NoIGdlYm9yZW4gd2lyZCIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJLYW5uICVzIG5pY2h0IMO2ZmZuZW46ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MDkKKyM6IHNlcXVlbmNlci5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgIkthbm4gJXMgbmljaHQgbGVzZW46ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTAKKyM6IHNlcXVlbmNlci5jOjkyMAogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIlVuZXJ3YXJ0ZXRlcyBEYXRlaWVuZGUiCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKLW1zZ3N0ciAiIgotImdlc3BlaWNoZXJ0ZSBcInByZS1jaGVycnktcGlja1wiIERhdGVpIGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgJyVzJyBpc3QgIgotImJlc2Now6RkaWd0IgorbXNnc3RyICJnZXNwZWljaGVydGUgXCJwcmUtY2hlcnJ5LXBpY2tcIiBIRUFEIERhdGVpICclcycgaXN0IGJlc2Now6RkaWd0IgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAiS29ubnRlICVzIG5pY2h0IGZvcm1hdGllcmVuLiIKIAotIzogc2VxdWVuY2VyLmM6MTEwMQorIzogc2VxdWVuY2VyLmM6MTA5MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2FuJ3QgY2hlcnJ5LXBpY2sgYSAlcyIKK21zZ3N0ciAiJXM6ICVzIGthbm4gbmljaHQgaW4gXCJjaGVycnktcGlja1wiIGJlbnV0enQgd2VyZGVuIgorCisjOiBzZXF1ZW5jZXIuYzoxMDk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCittc2dzdHIgIiVzOiB1bmfDvGx0aWdlciBDb21taXQiCisKKyM6IHNlcXVlbmNlci5jOjExMjkKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCi1tc2dzdHIgIlLDvGNrbmFobWUtVmVyc2lvbiBrYW5uIG5pY2h0IGluaXRpYWwgc2Vpbi4iCittc2dzdHIgIkthbm4gbmljaHQgYWxzIGFsbGVyZXJzdGVuIENvbW1pdCBlaW5lbiBSZXZlcnQgYXVzZsO8aHJlbi4iCiAKLSM6IHNlcXVlbmNlci5jOjExMDIKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCi1tc2dzdHIgIkthbm4gXCJjaGVycnktcGlja1wiIG5pY2h0IGluIGVpbmVtIGxlZXJlbiBad2VpZyBhdXNmw7xocmVuLiIKK21zZ3N0ciAiS2FubiBuaWNodCBhbHMgYWxsZXJlcnN0ZW4gQ29tbWl0IGVpbmVuIENoZXJyeS1QaWNrIGF1c2bDvGhyZW4uIgogCi0jOiBzaGExX25hbWUuYzoxMDM2CisjOiBzaGExX25hbWUuYzo0NDAKK21zZ2lkICIiCisiR2l0IG5vcm1hbGx5IG5ldmVyIGNyZWF0ZXMgYSByZWYgdGhhdCBlbmRzIHdpdGggNDAgaGV4IGNoYXJhY3RlcnNcbiIKKyJiZWNhdXNlIGl0IHdpbGwgYmUgaWdub3JlZCB3aGVuIHlvdSBqdXN0IHNwZWNpZnkgNDAtaGV4LiBUaGVzZSByZWZzXG4iCisibWF5IGJlIGNyZWF0ZWQgYnkgbWlzdGFrZS4gRm9yIGV4YW1wbGUsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisid2hlcmUgXCIkYnJcIiBpcyBzb21laG93IGVtcHR5IGFuZCBhIDQwLWhleCByZWYgaXMgY3JlYXRlZC4gUGxlYXNlXG4iCisiZXhhbWluZSB0aGVzZSByZWZzIGFuZCBtYXliZSBkZWxldGUgdGhlbS4gVHVybiB0aGlzIG1lc3NhZ2Ugb2ZmIGJ5XG4iCisicnVubmluZyBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCIiCittc2dzdHIgIiIKKyJHaXQgZXJ6ZXVndCBub3JtYWxlcndlaXNlIGtlaW5lIFJlZmVyZW56ZW4gZGllIG1pdFxuIgorIjQwIEhleC1aZWljaGVuIGVuZGVuLCBkYSBkaWVzZSBpZ25vcmllcnQgd2VyZGVuIHdlbm5cbiIKKyJTaWUgZGllc2UgYW5nZWJlbi4gRGllc2UgUmVmZXJlbnplbiBrw7ZubnRlbiBhdXMgVmVyc2VoZW5cbiIKKyJlcnpldWd0IHdvcmRlbiBzZWluLiBadW0gQmVpc3BpZWwsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisid29iZWkgXCIkYnJcIiBsZWVyIGlzdCB1bmQgZWluZSA0MC1IZXgtUmVmZXJlbnogZXJ6ZXVndFxuIgorInd1cmRlLiBCaXR0ZSBwcsO8ZmVuIFNpZSBkaWVzZSBSZWZlcmVuemVuIHVuZCBsw7ZzY2hlblxuIgorIlNpZSBzaWUgZ2VnZWJlbmVuZmFsbHMuIFVudGVyZHLDvGNrZW4gU2llIGRpZXNlIE1lbGR1bmdcbiIKKyJpbmRlbSBTaWUgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiXG4iCisiYXVzZsO8aHJlbi4iCisKKyM6IHNoYTFfbmFtZS5jOjEwOTcKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgemVpZ3QgYXVmIGtlaW5lbiBad2VpZyIKK21zZ3N0ciAiSEVBRCB6ZWlndCBhdWYga2VpbmVuIEJyYW5jaCIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKLW1zZ3N0ciAiS2VpbiBzb2xjaGVyIFp3ZWlnICclcyciCittc2dzdHIgIktlaW4gc29sY2hlciBCcmFuY2ggJyVzJyIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKLW1zZ3N0ciAiS2VpbiBlbnRmZXJudGVzIFByb2pla3RhcmNoaXYgZsO8ciBad2VpZyAnJXMnIGtvbmZpZ3VyaWVydC4iCittc2dzdHIgIktlaW4gVXBzdHJlYW0tQnJhbmNoIGbDvHIgQnJhbmNoICclcycga29uZmlndXJpZXJ0LiIKIAotIzogc2hhMV9uYW1lLmM6MTA0NAorIzogc2hhMV9uYW1lLmM6MTEwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKLW1zZ3N0ciAiIgotIlp3ZWlnICclcycgZGVzIGVudGZlcm50ZW4gUHJvamVrdGFyY2hpdnMgaXN0IGtlaW4gZ2Vmb2xndGVyIMOcYmVybmFobWV6d2VpZyIKK21zZ3N0ciAiVXBzdHJlYW0tQnJhbmNoICclcycgaXN0IG5pY2h0IGFscyBSZW1vdGUtVHJhY2tpbmctQnJhbmNoIGdlc3BlaWNoZXJ0IgogCiAjOiB3cmFwcGVyLmM6NDA4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgImtvbm50ZSBuaWNodCBhdWYgJyVzJyB6dWdyZWlmZW46ICVzIgogCi0jOiB3cmFwcGVyLmM6NDIzCisjOiB3cmFwcGVyLmM6NDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAia29ubnRlIG5pY2h0IGF1ZiAnJXMnIHp1Z3JlaWZlbiIKIAotIzogd3JhcHBlci5jOjQzNAorIzogd3JhcHBlci5jOjQ0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKIG1zZ3N0ciAia29ubnRlIGFrdHVlbGxlbiBCZW51dHplciBuaWNodCBpbiBQYXNzd29ydC1EYXRlaSBmaW5kZW46ICVzIgogCi0jOiB3cmFwcGVyLmM6NDM1CisjOiB3cmFwcGVyLmM6NDQxCiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICJrZWluIHNvbGNoZXIgQmVudXR6ZXIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICJOaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBQZmFkZToiCiAKLSM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCi0iICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJlc2V0ICVzIDxEYXRlaT4uLi5cIiB6dW0gSGVyYXVzbmVobWVuIGF1cyBkZXIgIgotIkJlcmVpdHN0ZWxsdW5nKSIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcmVzZXQgJXMgPERhdGVpPi4uLlwiIHp1bSBFbnRmZXJuZW4gYXVzIGRlciBTdGFnaW5nLSIKKyJBcmVhKSIKIAotIzogd3Qtc3RhdHVzLmM6MTY5IHd0LXN0YXR1cy5jOjE5NgorIzogd3Qtc3RhdHVzLmM6MTcwIHd0LXN0YXR1cy5jOjE5NwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiIgotIiAgKGJlbnV0emVuIFNpZSBcImdpdCBybSAtLWNhY2hlZCA8RGF0ZWk+Li4uXCIgenVtIEhlcmF1c25laG1lbiBhdXMgZGVyICIKLSJCZXJlaXRzdGVsbHVuZykiCisiICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJtIC0tY2FjaGVkIDxEYXRlaT4uLi5cIiB6dW0gRW50ZmVybmVuIGF1cyBkZXIgU3RhZ2luZy0iCisiQXJlYSkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3MworIzogd3Qtc3RhdHVzLmM6MTc0CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZC9ybSA8RGF0ZWk+Li4uXCIgdW0gZGllIEF1ZmzDtnN1bmcgenUgbWFya2llcmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSBBdWZsw7ZzdW5nIGVudHNwcmVjaGVuZCB6dSAiCiAibWFya2llcmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc3CisjOiB3dC1zdGF0dXMuYzoxNzgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhZGQvcm0gPERhdGVpPi4uLlwiIHVtIGRpZSBBdWZsw7ZzdW5nIHp1IG1hcmtpZXJlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgotbXNnc3RyICJ6dW0gRWludHJhZ2VuIGJlcmVpdGdlc3RlbGx0ZSDDhG5kZXJ1bmdlbjoiCittc2dzdHIgInp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW46IgogCi0jOiB3dC1zdGF0dXMuYzoyMDYKKyM6IHd0LXN0YXR1cy5jOjIwNwogbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKLW1zZ3N0ciAiw4RuZGVydW5nZW4sIGRpZSBuaWNodCB6dW0gRWludHJhZ2VuIGJlcmVpdGdlc3RlbGx0IHNpbmQ6IgorbXNnc3RyICLDhG5kZXJ1bmdlbiwgZGllIG5pY2h0IHp1bSBDb21taXQgdm9yZ2VtZXJrdCBzaW5kOiIKIAotIzogd3Qtc3RhdHVzLmM6MjEwCisjOiB3dC1zdGF0dXMuYzoyMTEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKLW1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZCA8RGF0ZWk+Li4uXCIgenVtIEJlcmVpdHN0ZWxsZW4pIgotCi0jOiB3dC1zdGF0dXMuYzoyMTIKLW1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKLW1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZC9ybSA8RGF0ZWk+Li4uXCIgenVtIEJlcmVpdHN0ZWxsZW4pIgorbXNnc3RyICIiCisiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFkZCA8RGF0ZWk+Li4uXCIgdW0gZGllIMOEbmRlcnVuZ2VuIHp1bSBDb21taXQgIgorInZvcnp1bWVya2VuKSIKIAogIzogd3Qtc3RhdHVzLmM6MjEzCittc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCittc2dzdHIgIiIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgYWRkL3JtIDxEYXRlaT4uLi5cIiB1bSBkaWUgw4RuZGVydW5nZW4genVtIENvbW1pdCAiCisidm9yenVtZXJrZW4pIgorCisjOiB3dC1zdGF0dXMuYzoyMTQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLlwiIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkiCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgY2hlY2tvdXQgLS0gPERhdGVpPi4uLlwiIHVtIGRpZSDDhG5kZXJ1bmdlbiBpbSAiCiAiQXJiZWl0c3ZlcnplaWNobmlzIHp1IHZlcndlcmZlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNQorIzogd3Qtc3RhdHVzLmM6MjE2CiBtc2dpZCAiICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpIgogbXNnc3RyICIiCi0iICAodHJhZ2VuIFNpZSBlaW4gb2RlciB2ZXJ3ZXJmZW4gU2llIGRlbiB1bmJlb2JhY2h0ZXRlbiBvZGVyIGdlw6RuZGVydGVuICIKLSJJbmhhbHQgaW4gZGVuIFVudGVycHJvamVrdGVuKSIKKyIgIChjb21taXR0ZW4gb2RlciB2ZXJ3ZXJmZW4gU2llIGRlbiB1bmJlb2JhY2h0ZXRlbiBvZGVyIGdlw6RuZGVydGVuIEluaGFsdCBpbiAiCisiZGVuIFN1Ym1vZHVsZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMjcKKyM6IHd0LXN0YXR1cy5jOjIyOAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKLW1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0ICVzIDxEYXRlaT4uLi5cIiB6dW0gRWluZsO8Z2VuIGluIGRpZSBFaW50cmFndW5nKSIKK21zZ3N0ciAiIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCAlcyA8RGF0ZWk+Li4uXCIgdW0gZGllIMOEbmRlcnVuZ2VuIHp1bSBDb21taXQgIgorInZvcnp1bWVya2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6MjQ0CisjOiB3dC1zdGF0dXMuYzoyNDUKIG1zZ2lkICJidWciCiBtc2dzdHIgIkZlaGxlciIKIAotIzogd3Qtc3RhdHVzLmM6MjQ5CisjOiB3dC1zdGF0dXMuYzoyNTAKIG1zZ2lkICJib3RoIGRlbGV0ZWQ6IgogbXNnc3RyICJiZWlkZSBnZWzDtnNjaHQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1MQogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAidm9uIHVucyBoaW56dWdlZsO8Z3Q6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1MgogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgInZvbiBkZW5lbiBnZWzDtnNjaHQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTIKKyM6IHd0LXN0YXR1cy5jOjI1MwogbXNnaWQgImFkZGVkIGJ5IHRoZW06IgogbXNnc3RyICJ2b24gZGVuZW4gaGluenVnZWbDvGd0OiIKIAotIzogd3Qtc3RhdHVzLmM6MjUzCisjOiB3dC1zdGF0dXMuYzoyNTQKIG1zZ2lkICJkZWxldGVkIGJ5IHVzOiIKIG1zZ3N0ciAidm9uIHVucyBnZWzDtnNjaHQ6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICJ2b24gYmVpZGVuIGhpbnp1Z2Vmw7xndDoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgInZvbiBiZWlkZW4gZ2XDpG5kZXJ0OiIKIAotIzogd3Qtc3RhdHVzLmM6Mjg1CisjOiB3dC1zdGF0dXMuYzoyODYKIG1zZ2lkICJuZXcgY29tbWl0cywgIgotbXNnc3RyICJuZXVlIFZlcnNpb25lbiwgIgorbXNnc3RyICJuZXVlIENvbW1pdHMsICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg3CisjOiB3dC1zdGF0dXMuYzoyODgKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgImdlw6RuZGVydGVyIEluaGFsdCwgIgogCi0jOiB3dC1zdGF0dXMuYzoyODkKKyM6IHd0LXN0YXR1cy5jOjI5MAogbXNnaWQgInVudHJhY2tlZCBjb250ZW50LCAiCiBtc2dzdHIgInVuYmVvYmFjaHRldGVyIEluaGFsdCwgIgogCi0jOiB3dC1zdGF0dXMuYzozMDYKKyM6IHd0LXN0YXR1cy5jOjMwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgZmlsZTogICAlcyIKIG1zZ3N0ciAibmV1ZSBEYXRlaTogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzA5CisjOiB3dC1zdGF0dXMuYzozMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCiBtc2dzdHIgImtvcGllcnQ6ICAgICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgImdlbMO2c2NodDogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxNQorIzogd3Qtc3RhdHVzLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICJnZcOkbmRlcnQ6ICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxOAorIzogd3Qtc3RhdHVzLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbmFtZWQ6ICAgICVzIC0+ICVzIgogbXNnc3RyICJ1bWJlbmFubnQ6ICAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjEKKyM6IHd0LXN0YXR1cy5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ0eXBlY2hhbmdlOiAlcyIKIG1zZ3N0ciAiVHlww6RuZGVydW5nOiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzI0CisjOiB3dC1zdGF0dXMuYzozMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93bjogICAgJXMiCiBtc2dzdHIgInVuYmVrYW5udDogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyNworIzogd3Qtc3RhdHVzLmM6MzI4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVubWVyZ2VkOiAgICVzIgogbXNnc3RyICJuaWNodCB6dXNhbW1lbmdlZsO8aHJ0OiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzAKKyM6IHd0LXN0YXR1cy5jOjMzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiRmVobGVyOiB1bmJlaGFuZGVsdGVyIERpZmZlcmVuei1TdGF0dXMgJWMiCiAKLSM6IHd0LXN0YXR1cy5jOjgwNQorIzogd3Qtc3RhdHVzLmM6ODAzCiBtc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgogbXNnc3RyICJTaWUgaGFiZW4gbmljaHQgenVzYW1tZW5nZWbDvGhydGUgUGZhZGUuIgogCi0jOiB3dC1zdGF0dXMuYzo4MDggd3Qtc3RhdHVzLmM6OTYwCisjOiB3dC1zdGF0dXMuYzo4MDYKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgogbXNnc3RyICIgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIFwiZ2l0IGNvbW1pdFwiIGF1cykiCiAKLSM6IHd0LXN0YXR1cy5jOjgxMQorIzogd3Qtc3RhdHVzLmM6ODA5CiBtc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKLW1zZ3N0ciAiIgotIkFsbGUgS29uZmxpa3RlIHNpbmQgYmVob2JlbiwgYWJlciBTaWUgc2luZCBpbW1lciBub2NoIGJlaW0gWnVzYW1tZW5mw7xocmVuLiIKK21zZ3N0ciAiQWxsZSBLb25mbGlrdGUgc2luZCBiZWhvYmVuLCBhYmVyIFNpZSBzaW5kIGltbWVyIG5vY2ggYmVpbSBNZXJnZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjgxNAorIzogd3Qtc3RhdHVzLmM6ODEyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdFwiIHRvIGNvbmNsdWRlIG1lcmdlKSIKLW1zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGNvbW1pdFwiIHVtIGRpZSBadXNhbW1lbmbDvGhydW5nIGFienVzY2hsaWXDn2VuKSIKK21zZ3N0ciAiICAoYmVudXR6ZW4gU2llIFwiZ2l0IGNvbW1pdFwiIHVtIGRlbiBNZXJnZSBhYnp1c2NobGllw59lbikiCiAKLSM6IHd0LXN0YXR1cy5jOjgyNAorIzogd3Qtc3RhdHVzLmM6ODIyCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uIgogbXNnc3RyICJFaW5lIFwiYW1cIi1TaXR6dW5nIGlzdCBpbSBHYW5nZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjgyNworIzogd3Qtc3RhdHVzLmM6ODI1CiBtc2dpZCAiVGhlIGN1cnJlbnQgcGF0Y2ggaXMgZW1wdHkuIgogbXNnc3RyICJEZXIgYWt0dWVsbGUgUGF0Y2ggaXN0IGxlZXIuIgogCi0jOiB3dC1zdGF0dXMuYzo4MzEKLW1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorIzogd3Qtc3RhdHVzLmM6ODI5Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgotIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiIGF1cykiCisiICAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgZGFubiBcImdpdCBhbSAtLWNvbnRpbnVlXCIgYXVzKSIKKworIzogd3Qtc3RhdHVzLmM6ODMxCittc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCittc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCBhbSAtLXNraXBcIiB1bSBkaWVzZW4gUGF0Y2ggYXVzenVsYXNzZW4pIgogCiAjOiB3dC1zdGF0dXMuYzo4MzMKLW1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKLW1zZ3N0ciAiIChiZW51dHplbiBTaWUgXCJnaXQgYW0gLS1za2lwXCIgdW0gZGllc2VuIFBhdGNoIGF1c3p1bGFzc2VuKSIKLQotIzogd3Qtc3RhdHVzLmM6ODM1CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIiCi0iICAoYmVudXR6ZW4gU2llIFwiZ2l0IGFtIC0tYWJvcnRcIiB1bSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgYW0gLS1hYm9ydFwiIHVtIGRlbiB1cnNwcsO8bmdsaWNoZW4gQnJhbmNoICIKICJ3aWVkZXJoZXJ6dXN0ZWxsZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo4OTUgd3Qtc3RhdHVzLmM6OTEyCisjOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgotbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpbSBOZXVhdWZiYXUgdm9uIFp3ZWlnICclcycgYXVmICclcycuIgorbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpbSBSZWJhc2Ugdm9uIEJyYW5jaCAnJXMnIGF1ZiAnJXMnLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAwIHd0LXN0YXR1cy5jOjkxNworIzogd3Qtc3RhdHVzLmM6ODk4IHd0LXN0YXR1cy5jOjkxNQogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIKLW1zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGJlaW0gTmV1YXVmYmF1LiIKK21zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGJlaW0gUmViYXNlLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAzCisjOiB3dC1zdGF0dXMuYzo5MDEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGbDvGhyZW4gU2llIGRhbm4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIiAiCiAiYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6OTA1CisjOiB3dC1zdGF0dXMuYzo5MDMKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCiBtc2dzdHIgIiAgKGJlbnV0emVuIFNpZSBcImdpdCByZWJhc2UgLS1za2lwXCIgdW0gZGllc2VuIFBhdGNoIGF1c3p1bGFzc2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTA3CisjOiB3dC1zdGF0dXMuYzo5MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB1bSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB1bSBkZW4gdXJzcHLDvG5nbGljaGVuIEJyYW5jaCAiCiAiYXVzenVjaGVja2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTIwCisjOiB3dC1zdGF0dXMuYzo5MTgKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKGFsbGUgS29uZmxpa3RlIGJlaG9iZW46IGbDvGhyZW4gU2llIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgYXVzKSIKIAotIzogd3Qtc3RhdHVzLmM6OTI0CisjOiB3dC1zdGF0dXMuYzo5MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAiIgotIlNpZSB0ZWlsZW4gZ2VyYWRlIGVpbmUgVmVyc2lvbiBhdWYsIHfDpGhyZW5kIGVpbiBOZXVhdWZiYXUgdm9uIFp3ZWlnICclcycgYXVmICIKKyJTaWUgdGVpbGVuIGdlcmFkZSBlaW5lbiBDb21taXQgYXVmLCB3w6RocmVuZCBlaW4gUmViYXNlIHZvbiBCcmFuY2ggJyVzJyBhdWYgIgogIiclcycgaW0gR2FuZ2UgaXN0LiIKIAotIzogd3Qtc3RhdHVzLmM6OTI5CisjOiB3dC1zdGF0dXMuYzo5MjcKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKLW1zZ3N0ciAiU2llIHRlaWxlbiBnZXJhZGUgZWluZSBWZXJzaW9uIHfDpGhyZW5kIGVpbmVzIE5ldWF1ZmJhdXMgYXVmLiIKK21zZ3N0ciAiU2llIHRlaWxlbiBnZXJhZGUgZWluZW4gQ29tbWl0IHfDpGhyZW5kIGVpbmVzIFJlYmFzZSBhdWYuIgogCi0jOiB3dC1zdGF0dXMuYzo5MzIKKyM6IHd0LXN0YXR1cy5jOjkzMAogbXNnaWQgIiAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIiCi0iICAoU29iYWxkIElociBBcmJlaXRzdmVyemVpY2huaXMgc2F1YmVyIGlzdCwgZsO8aHJlbiBTaWUgXCJnaXQgcmViYXNlIC0tIgorIiAgKFNvYmFsZCBJaHIgQXJiZWl0c3ZlcnplaWNobmlzIHVudmVyw6RuZGVydCBpc3QsIGbDvGhyZW4gU2llIFwiZ2l0IHJlYmFzZSAtLSIKICJjb250aW51ZVwiIGF1cykiCiAKLSM6IHd0LXN0YXR1cy5jOjkzNgorIzogd3Qtc3RhdHVzLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKLSJTaWUgZWRpdGllcmVuIGdlcmFkZSBlaW5lIFZlcnNpb24gd8OkaHJlbmQgZWluZXMgTmV1YXVmYmF1cyB2b24gWndlaWcgJyVzJyAiCi0iYXVmICclcycuIgorIlNpZSBlZGl0aWVyZW4gZ2VyYWRlIGVpbmVuIENvbW1pdCB3w6RocmVuZCBlaW5lcyBSZWJhc2Ugdm9uIEJyYW5jaCAnJXMnIGF1ZiAiCisiJyVzJy4iCiAKLSM6IHd0LXN0YXR1cy5jOjk0MQorIzogd3Qtc3RhdHVzLmM6OTM5CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgotbXNnc3RyICJTaWUgZWRpdGllcmVuIGdlcmFkZSBlaW5lIFZlcnNpb24gd8OkaHJlbmQgZWluZXMgTmV1YXVmYmF1cy4iCittc2dzdHIgIlNpZSBlZGl0aWVyZW4gZ2VyYWRlIGVpbmVuIENvbW1pdCB3w6RocmVuZCBlaW5lcyBSZWJhc2UuIgogCi0jOiB3dC1zdGF0dXMuYzo5NDQKKyM6IHd0LXN0YXR1cy5jOjk0MgogbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXQgLS1hbWVuZFwiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkiCiBtc2dzdHIgIiIKLSIgIChiZW51dHplbiBTaWUgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB1bSBkaWUgYWt0dWVsbGUgVmVyc2lvbiBuYWNoenViZXNzZXJuKSIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB1bSBkZW4gYWt0dWVsbGVuIENvbW1pdCBuYWNoenViZXNzZXJuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTQ2CisjOiB3dC1zdGF0dXMuYzo5NDQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiIKICIgIChiZW51dHplbiBTaWUgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBzb2JhbGQgSWhyZSDDhG5kZXJ1bmdlbiAiCiAiYWJnZXNjaGxvc3NlbiBzaW5kKSIKIAotIzogd3Qtc3RhdHVzLmM6OTU2CisjOiB3dC1zdGF0dXMuYzo5NTQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCiBtc2dzdHIgIlNpZSBmw7xocmVuIGdlcmFkZSBcImNoZXJyeS1waWNrXCIgYXVzLiIKIAorIzogd3Qtc3RhdHVzLmM6OTU4Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCittc2dzdHIgIiIKKyIgIChiZWhlYmVuIFNpZSBkaWUgS29uZmxpa3RlIHVuZCBmw7xocmVuIFNpZSBkYW5uIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWUiCisiXCIgYXVzKSIKKworIzogd3Qtc3RhdHVzLmM6OTYxCittc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCittc2dzdHIgIiIKKyIgIChhbGxlIEtvbmZsaWt0ZSBiZWhvYmVuOiBmw7xocmVuIFNpZSBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgYXVzKSIKKwogIzogd3Qtc3RhdHVzLmM6OTYzCi1tc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNvbW1pdFwiKSIKLW1zZ3N0ciAiICAoYWxsZSBLb25mbGlrdGUgYmVob2JlbjogZsO8aHJlbiBTaWUgXCJnaXQgY29tbWl0XCIgYXVzKSIKK21zZ2lkICIgICh1c2UgXCJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKSIKK21zZ3N0ciAiIgorIiAgKGJlbnV0emVuIFNpZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdW0gZGllIENoZXJyeS1QaWNrLU9wZXJhdGlvbiAiCisiYWJ6dWJyZWNoZW4pIgogCiAjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iCi1tc2dzdHIgIlNpZSBuZWhtZW4gZ2VyYWRlIFZlcnNpb24gJyVzJyB6dXLDvGNrLiIKK21zZ3N0ciAiU2llIHNpbmQgZ2VyYWRlIGFuIGVpbmVtIFJldmVydCB2b24gQ29tbWl0ICclcycuIgogCiAjOiB3dC1zdGF0dXMuYzo5NzcKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCkBAIC0xNDAzLDEyICsxNTg0LDEyIEBACiAjOiB3dC1zdGF0dXMuYzo5ODIKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmV2ZXJ0IC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIHJldmVydCBvcGVyYXRpb24pIgogbXNnc3RyICIiCi0iICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJldmVydCAtLWFib3J0XCIgdW0gZGllIFVta2Vocm9wZXJhdGlvbiBhYnp1YnJlY2hlbikiCisiICAoYmVudXR6ZW4gU2llIFwiZ2l0IHJldmVydCAtLWFib3J0XCIgdW0gZGllIFJldmVydC1PcGVyYXRpb24gYWJ6dWJyZWNoZW4pIgogCiAjOiB3dC1zdGF0dXMuYzo5OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLCBzdGFydGVkIGZyb20gYnJhbmNoICclcycuIgotbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpIGVpbmVyIGJpbsOkcmVuIFN1Y2hlLCBnZXN0YXJ0ZXQgdm9uIFp3ZWlnICclcycuIgorbXNnc3RyICJTaWUgc2luZCBnZXJhZGUgYmVpIGVpbmVyIGJpbsOkcmVuIFN1Y2hlLCBnZXN0YXJ0ZXQgdm9uIEJyYW5jaCAnJXMnLiIKIAogIzogd3Qtc3RhdHVzLmM6OTk3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgYmlzZWN0aW5nLiIKQEAgLTE0MTcsMTM1ICsxNTk4LDEzNiBAQAogIzogd3Qtc3RhdHVzLmM6MTAwMAogbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgotIiAgKGJlbnV0emVuIFNpZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB1bSB6dW0gdXJzcHLDvG5nbGljaGVuIFp3ZWlnICIKKyIgIChiZW51dHplbiBTaWUgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdW0genVtIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggIgogInp1csO8Y2t6dWtlaHJlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzUKKyM6IHd0LXN0YXR1cy5jOjExNzMKIG1zZ2lkICJPbiBicmFuY2ggIgotbXNnc3RyICJBdWYgWndlaWcgIgorbXNnc3RyICJBdWYgQnJhbmNoICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4NgorIzogd3Qtc3RhdHVzLmM6MTE4MAorbXNnaWQgInJlYmFzZSBpbiBwcm9ncmVzczsgb250byAiCittc2dzdHIgIlJlYmFzZSBpbSBHYW5nZTsgYXVmICIKKworIzogd3Qtc3RhdHVzLmM6MTE4NwogbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgbG9zZ2Vsw7ZzdCBiZWkgIgorbXNnc3RyICJIRUFEIGxvc2dlbMO2c3QgYmVpICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4OAorIzogd3Qtc3RhdHVzLmM6MTE4OQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCi1tc2dzdHIgIlp3ZWlnc3BpdHplIChIRUFEKSBsb3NnZWzDtnN0IHZvbiAiCittc2dzdHIgIkhFQUQgbG9zZ2Vsw7ZzdCB2b24gIgogCi0jOiB3dC1zdGF0dXMuYzoxMTkxCisjOiB3dC1zdGF0dXMuYzoxMTkyCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKLW1zZ3N0ciAiSW0gTW9tZW50IGF1ZiBrZWluZW0gWndlaWcuIgorbXNnc3RyICJJbSBNb21lbnQgYXVmIGtlaW5lbSBCcmFuY2guIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA4CisjOiB3dC1zdGF0dXMuYzoxMjA5CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCi1tc2dzdHIgIkluaXRpYWxlIFZlcnNpb24iCittc2dzdHIgIkluaXRpYWxlciBDb21taXQiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjMKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIlVuYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNAorIzogd3Qtc3RhdHVzLmM6MTIyNQogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIklnbm9yaWVydGUgRGF0ZWllbiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyOAorIzogd3Qtc3RhdHVzLmM6MTIyOQogIywgYy1mb3JtYXQKLW1zZ2lkICJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAgJ3N0YXR1cyAtdW5vJyIKLW1zZ3N0ciAiRXMgZGF1ZXJ0ZSAlLjJmIFNla3VuZGVuIGRpZSB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIHp1IGJlc3RpbW1lbi4iCi0iJ3N0YXR1cyAtdW5vJyIKLQotIzogd3Qtc3RhdHVzLmM6MTIzMgotbXNnaWQgIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGQiCi1tc2dzdHIgImvDtm5udGUgZGFzIGJlc2NobGV1bmlnZW4sIGFiZXIgU2llIG3DvHNzZW4gZGFyYXVmIGFjaHRlbiwgbmV1ZSIKK21zZ2lkICIiCisiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGRcbiIKKyJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgorbXNnc3RyICIiCisiRXMgZGF1ZXJ0ZSAlLjJmIFNla3VuZGVuIGRpZSB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIHp1IGJlc3RpbW1lbi5cbiIKKyInc3RhdHVzIC11bm8nIGvDtm5udGUgZGFzIGJlc2NobGV1bmlnZW4sIGFiZXIgU2llIG3DvHNzZW4gZGFyYXVmIGFjaHRlbixcbiIKKyJuZXVlIERhdGVpZW4gc2VsYnN0c3TDpG5kaWcgaGluenV6dWbDvGdlbiAoc2llaGUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKIAogIzogd3Qtc3RhdHVzLmM6MTIzNQotbXNnaWQgIm5ldyBmaWxlcyB5b3Vyc2VsZiAoc2VlICdnaXQgaGVscCBzdGF0dXMnKS4iCi1tc2dzdHIgIkRhdGVpZW4gc2VsYnN0c3TDpG5kaWcgaGluenV6dWbDvGdlbiAoc2llaGUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKLQotIzogd3Qtc3RhdHVzLmM6MTIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJVbmJlb2JhY2h0ZXRlIERhdGVpZW4gbmljaHQgYXVmZ2VsaXN0ZXQlcyIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAoYmVudXR6ZW4gU2llIGRpZSBPcHRpb24gLXUgdW0gdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiBhbnp1emVpZ2VuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0NgorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIktlaW5lIMOEbmRlcnVuZ2VuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjUxCisjOiB3dC1zdGF0dXMuYzoxMjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgogbXNnc3RyICIiCi0ia2VpbmUgw4RuZGVydW5nZW4genVtIEVpbnRyYWdlbiBoaW56dWdlZsO8Z3QgKGJlbnV0emVuIFNpZSBcImdpdCBhZGRcIiB1bmQvIgotIm9kZXIgXCJnaXQgY29tbWl0IC1hXCIpXG4iCisia2VpbmUgw4RuZGVydW5nZW4genVtIENvbW1pdCB2b3JnZW1lcmt0IChiZW51dHplbiBTaWUgXCJnaXQgYWRkXCIgdW5kL29kZXIgIgorIlwiZ2l0IGNvbW1pdCAtYVwiKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU0CisjOiB3dC1zdGF0dXMuYzoxMjUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0XG4iCi1tc2dzdHIgImtlaW5lIMOEbmRlcnVuZ2VuIHp1bSBFaW50cmFnZW4gaGluenVnZWbDvGd0XG4iCittc2dzdHIgImtlaW5lIMOEbmRlcnVuZ2VuIHp1bSBDb21taXQgdm9yZ2VtZXJrdFxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMjU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnQgKHVzZSBcImdpdCBhZGRcIiB0byAiCiAidHJhY2spXG4iCiBtc2dzdHIgIiIKLSJuaWNodHMgenVtIEVpbnRyYWdlbiBoaW56dWdlZsO8Z3QsIGFiZXIgZXMgZ2lidCB1bmJlb2JhY2h0ZXRlIERhdGVpZW4gIgotIihiZW51dHplbiBTaWUgXCJnaXQgYWRkXCIgenVtIEJlb2JhY2h0ZW4pXG4iCisibmljaHRzIHp1bSBDb21taXQgdm9yZ2VtZXJrdCwgYWJlciBlcyBnaWJ0IHVuYmVvYmFjaHRldGUgRGF0ZWllbiAoYmVudXR6ZW4gIgorIlNpZSBcImdpdCBhZGRcIiB6dW0gQmVvYmFjaHRlbilcbiIKKworIzogd3Qtc3RhdHVzLmM6MTI1NworIywgYy1mb3JtYXQKK21zZ2lkICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnRcbiIKK21zZ3N0ciAibmljaHRzIHp1bSBDb21taXQgdm9yZ2VtZXJrdCwgYWJlciBlcyBnaWJ0IHVuYmVvYmFjaHRldGUgRGF0ZWllblxuIgogCiAjOiB3dC1zdGF0dXMuYzoxMjYwCiAjLCBjLWZvcm1hdAotbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgotbXNnc3RyICJuaWNodHMgenVtIEVpbnRyYWdlbiBoaW56dWdlZsO8Z3QsIGFiZXIgZXMgZ2lidCB1bmJlb2JhY2h0ZXRlIERhdGVpZW5cbiIKLQotIzogd3Qtc3RhdHVzLmM6MTI2MwotIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgYW5kIHVzZSBcImdpdCBhZGRcIiB0byB0cmFjaylcbiIKIG1zZ3N0ciAiIgotIm5pY2h0cyBlaW56dXRyYWdlbiAoRXJzdGVsbGVuL0tvcGllcmVuIFNpZSBEYXRlaWVuIHVuZCBiZW51dHplbiBTaWUgXCJnaXQgYWRkIgotIlwiIHp1bSBCZW9iYWNodGVuKVxuIgorIm5pY2h0cyB6dSBjb21taXR0ZW4gKEVyc3RlbGxlbi9Lb3BpZXJlbiBTaWUgRGF0ZWllbiB1bmQgYmVudXR6ZW4gU2llIFwiZ2l0ICIKKyJhZGRcIiB6dW0gQmVvYmFjaHRlbilcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NiB3dC1zdGF0dXMuYzoxMjcxCisjOiB3dC1zdGF0dXMuYzoxMjYzIHd0LXN0YXR1cy5jOjEyNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXRcbiIKLW1zZ3N0ciAibmljaHRzIGVpbnp1dHJhZ2VuXG4iCittc2dzdHIgIm5pY2h0cyB6dSBjb21taXR0ZW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2OQorIzogd3Qtc3RhdHVzLmM6MTI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICIiCi0ibmljaHRzIGVpbnp1dHJhZ2VuIChiZW51dHplbiBTaWUgZGllIE9wdGlvbiAtdSwgdW0gdW5iZW9iYWNodGV0ZSBEYXRlaWVuICIKKyJuaWNodHMgenUgY29tbWl0dGVuIChiZW51dHplbiBTaWUgZGllIE9wdGlvbiAtdSwgdW0gdW5iZW9iYWNodGV0ZSBEYXRlaWVuICIKICJhbnp1emVpZ2VuKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjczCisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgotbXNnc3RyICJuaWNodHMgZWluenV0cmFnZW4sIEFyYmVpdHN2ZXJ6ZWljaG5pcyBzYXViZXJcbiIKK21zZ3N0ciAibmljaHRzIHp1IGNvbW1pdHRlbiwgQXJiZWl0c3ZlcnplaWNobmlzIHVudmVyw6RuZGVydFxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMzgxCisjOiB3dC1zdGF0dXMuYzoxMzc4CiBtc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKLW1zZ3N0ciAiSEVBRCAoa2VpbiBad2VpZykiCittc2dzdHIgIkhFQUQgKGtlaW4gQnJhbmNoKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NworIzogd3Qtc3RhdHVzLmM6MTM4NAogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKLW1zZ3N0ciAiSW5pdGlhbGUgVmVyc2lvbiBhdWYgIgorbXNnc3RyICJJbml0aWFsZXIgQ29tbWl0IGF1ZiAiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDIKKyM6IHd0LXN0YXR1cy5jOjEzOTkKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICJoaW50ZXJoZXIgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA1IHd0LXN0YXR1cy5jOjE0MDgKKyM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAidm9yYXVzICIKIAotIzogd3Qtc3RhdHVzLmM6MTQxMAorIzogd3Qtc3RhdHVzLmM6MTQwNwogbXNnaWQgIiwgYmVoaW5kICIKIG1zZ3N0ciAiLCBoaW50ZXJoZXIgIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM0MgorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBlbnRmZXJuZW4uIgpAQCAtMTU1NCwxMzEgKzE3MzYsNiBAQAogbXNnaWQgImdpdCBhZGQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGFkZCBbT3B0aW9uZW5dIFstLV0gWzxQZmFkc3BlemlmaWthdGlvbj4uLi5dIgogCi0jOiBidWlsdGluL2FkZC5jOjYzCi0jLCBjLWZvcm1hdAotbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCi1tc2dzdHIgInVuZXJ3YXJ0ZXRlciBEaWZmZXJlbnotU3RhdHVzICVjIgotCi0jOiBidWlsdGluL2FkZC5jOjY4IGJ1aWx0aW4vY29tbWl0LmM6MjMzCi1tc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgotbXNnc3RyICJBa3R1YWxpc2llcnVuZyBkZXIgRGF0ZWllbiBmZWhsZ2VzY2hsYWdlbiIKLQotIzogYnVpbHRpbi9hZGQuYzo3OAotIywgYy1mb3JtYXQKLW1zZ2lkICJyZW1vdmUgJyVzJ1xuIgotbXNnc3RyICJsw7ZzY2hlICclcydcbiIKLQotIzogYnVpbHRpbi9hZGQuYzoxNDgKLW1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKLW1zZ3N0ciAiIgotIk5pY2h0IGJlcmVpdGdlc3RlbGx0ZSDDhG5kZXJ1bmdlbiBuYWNoIEFrdHVhbGlzaWVydW5nIGRlciBCZXJlaXRzdGVsbHVuZzoiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MTUxIGJ1aWx0aW4vYWRkLmM6NDYwIGJ1aWx0aW4vcm0uYzoyNzUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKLW1zZ3N0ciAiUGZhZHNwZXppZmlrYXRpb24gJyVzJyBzdGltbXQgbWl0IGtlaW5lbiBEYXRlaWVuIMO8YmVyZWluIgotCi0jOiBidWlsdGluL2FkZC5jOjIzNAotbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKLW1zZ3N0ciAiS29ubnRlIGRpZSBCZXJlaXRzdGVsbHVuZyBuaWNodCBsZXNlbiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNDQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCi1tc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IHp1bSBTY2hyZWliZW4gw7ZmZm5lbi4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjQ4Ci1tc2dpZCAiQ291bGQgbm90IHdyaXRlIHBhdGNoIgotbXNnc3RyICJLb25udGUgUGF0Y2ggbmljaHQgc2NocmVpYmVuIgotCi0jOiBidWlsdGluL2FkZC5jOjI1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgotbXNnc3RyICJLb25udGUgVmVyemVpY2huaXMgJyVzJyBuaWNodCBsZXNlbiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNTUKLW1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCi1tc2dzdHIgIkxlZXJlciBQYXRjaC4gQWJnZWJyb2NoZW4uIgotCi0jOiBidWlsdGluL2FkZC5jOjI2MQotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKLW1zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYW53ZW5kZW4uIgotCi0jOiBidWlsdGluL2FkZC5jOjI3MQotbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKLW1zZ3N0ciAiIgotIkRpZSBmb2xnZW5kZW4gUGZhZGUgd2VyZGVuIGR1cmNoIGVpbmUgSWhyZXIgXCIuZ2l0aWdub3JlXCIgRGF0ZWllbiAiCi0iaWdub3JpZXJ0OlxuIgotCi0jOiBidWlsdGluL2FkZC5jOjI3NyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjIwNgotbXNnaWQgImRyeSBydW4iCi1tc2dzdHIgIlByb2JlbGF1ZiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNzggYnVpbHRpbi9hcHBseS5jOjQ0MDkgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQotIzogYnVpbHRpbi9jb21taXQuYzoxMTUyIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMwotIzogYnVpbHRpbi9sb2cuYzoxNTE0IGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgotbXNnaWQgImJlIHZlcmJvc2UiCi1tc2dzdHIgImVyd2VpdGVydGUgQXVzZ2FiZW4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgwCi1tc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKLW1zZ3N0ciAiaW50ZXJha3RpdmVzIEF1c3fDpGhsZW4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgxIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwIGJ1aWx0aW4vcmVzZXQuYzoyNTgKLW1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKLW1zZ3N0ciAiaW50ZXJha3RpdiBCZXJlaWNoZSBhdXN3w6RobGVuIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MgotbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKLW1zZ3N0ciAiYWt0dWVsbGUgVW50ZXJzY2hpZWRlIGVkaXRpZXJlbiB1bmQgYW53ZW5kZW4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgzCi1tc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgotbXNnc3RyICJlcmxhdWJ0IGRhcyBIaW56dWbDvGdlbiBhbmRlcm5mYWxscyBpZ25vcmllcnRlciBEYXRlaWVuIgotCi0jOiBidWlsdGluL2FkZC5jOjI4NAotbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgotbXNnc3RyICJha3R1YWxpc2llcnQgYmVvYmFjaHRldGUgRGF0ZWllbiIKLQotIzogYnVpbHRpbi9hZGQuYzoyODUKLW1zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCi1tc2dzdHIgInNwZWljaGVydCBudXIsIGRhc3MgZGVyIFBmYWQgc3DDpHRlciBoaW56dWdlZsO8Z3Qgd2VyZGVuIHNvbGwiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg2Ci1tc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgotbXNnc3RyICIiCi0iZsO8Z3Qgw4RuZGVydW5nZW4gdm9uIGFsbGVuIGJlb2JhY2h0ZXRlbiB1bmQgdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiBoaW56dSIKLQotIzogYnVpbHRpbi9hZGQuYzoyODcKLW1zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCi1tc2dzdHIgImbDvGd0IG5pY2h0cyBoaW56dSwgYWt0dWFsaXNpZXJ0IG51ciBkaWUgQmVyZWl0c3RlbGx1bmciCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg4Ci1tc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKLW1zZ3N0ciAiIgotIsO8YmVyc3ByaW5ndCBEYXRlaWVuLCBkaWUgYXVmZ3J1bmQgdm9uIEZlaGxlcm4gbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbiAiCi0ia29ubnRlbiIKLQotIzogYnVpbHRpbi9hZGQuYzoyODkKLW1zZ2lkICJjaGVjayBpZiAtIGV2ZW4gbWlzc2luZyAtIGZpbGVzIGFyZSBpZ25vcmVkIGluIGRyeSBydW4iCi1tc2dzdHIgInByw7xmdCBvYiAtIGF1Y2ggZmVobGVuZGUgLSBEYXRlaWVuIGltIFByb2JlbGF1ZiBpZ25vcmllcnQgd2VyZGVuIgotCi0jOiBidWlsdGluL2FkZC5jOjMxMQotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgotbXNnc3RyICJWZXJ3ZW5kZW4gU2llIC1mIHdlbm4gU2llIGRpZXNlIHdpcmtsaWNoIGhpbnp1ZsO8Z2VuIG3DtmNodGVuLlxuIgotCi0jOiBidWlsdGluL2FkZC5jOjMxMgotbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgotbXNnc3RyICJrZWluZSBEYXRlaWVuIGhpbnp1Z2Vmw7xndCIKLQotIzogYnVpbHRpbi9hZGQuYzozMTgKLW1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgotbXNnc3RyICJIaW56dWbDvGdlbiB2b24gRGF0ZWllbiBmZWhsZ2VzY2hsYWdlbiIKLQogIy4KICMuICogVG8gYmUgY29uc2lzdGVudCB3aXRoICJnaXQgYWRkIC1wIiBhbmQgbW9zdCBHaXQKICMuICogY29tbWFuZHMsIHdlIHNob3VsZCBkZWZhdWx0IHRvIGJlaW5nIHRyZWUtd2lkZSwgYnV0CkBAIC0xNjg5LDcgKzE3NDYsNyBAQAogIy4gKiB0byB0cmVlLXdpZGUsIGtlZXBpbmcgdGhlIHdhcm5pbmcgZm9yIGEgd2hpbGUsIGFuZAogIy4gKiBldmVudHVhbGx5IHdlIGNhbiBkcm9wIHRoZSB3YXJuaW5nLgogIy4KLSM6IGJ1aWx0aW4vYWRkLmM6MzM1CisjOiBidWlsdGluL2FkZC5jOjU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgYmVoYXZpb3Igb2YgJ2dpdCBhZGQgJXMgKG9yICVzKScgd2l0aCBubyBwYXRoIGFyZ3VtZW50IGZyb20gYVxuIgpAQCAtMTcwNiw3ICsxNzYzLDcgQEAKICIgIChvciBnaXQgYWRkICVzIC4pXG4iCiAiXG4iCiAiV2l0aCB0aGUgY3VycmVudCBHaXQgdmVyc2lvbiwgdGhlIGNvbW1hbmQgaXMgcmVzdHJpY3RlZCB0byB0aGUgY3VycmVudCAiCi0iZGlyZWN0b3J5LiIKKyJkaXJlY3RvcnkuXG4iCiBtc2dzdHIgIiIKICJEYXMgVmVyaGFsdGVuIHZvbiAnZ2l0IGFkZCAlcyAob2RlciAlcyknIG9obmUgZWluIFBmYWQtQXJndW1lbnQgdm9uXG4iCiAiZWluZW0gVW50ZXJ2ZXJ6ZWljaG5pcyBhdXMgd2lyZCBpbiBHaXQgMi4wIGdlw6RuZGVydCB1bmQgc29sbHRlIG5pY2h0XG4iCkBAIC0xNzIyLDM1ICsxNzc5LDE5MiBAQAogIiAgKG9kZXIgZ2l0IGFkZCAlcyAuKVxuIgogIlxuIgogIk1pdCBkZXIgYWt0dWVsbGVuIFZlcnNpb24gdm9uIEdpdCBpc3QgZGFzIEtvbW1hbmRvIGF1ZiBkYXMgYWt0dWVsbGVcbiIKLSJWZXJ6ZWljaG5pcyBiZXNjaHLDpG5rdC4iCisiVmVyemVpY2huaXMgYmVzY2hyw6Rua3QuXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzgxCisjOiBidWlsdGluL2FkZC5jOjEwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IHJhbiAnZ2l0IGFkZCcgd2l0aCBuZWl0aGVyICctQSAoLS1hbGwpJyBvciAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCisid2hvc2UgYmVoYXZpb3VyIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAgd2l0aCByZXNwZWN0IHRvIHBhdGhzIHlvdSByZW1vdmVkLlxuIgorIlBhdGhzIGxpa2UgJyVzJyB0aGF0IGFyZVxuIgorInJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZSBhcmUgaWdub3JlZCB3aXRoIHRoaXMgdmVyc2lvbiBvZiBHaXQuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoc3BlYz4nLCB3aGljaCBpcyB0aGUgY3VycmVudCBkZWZhdWx0LFxuIgorIiAgaWdub3JlcyBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPHBhdGhzcGVjPicgd2lsbCBsZXQgeW91IGFsc28gcmVjb3JkIHRoZSByZW1vdmFscy5cbiIKKyJcbiIKKyJSdW4gJ2dpdCBzdGF0dXMnIHRvIGNoZWNrIHRoZSBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorbXNnc3RyICIiCisiU2llIGhhYmVuICdnaXQgYWRkJyB3ZWRlciBtaXQgJy1BICgtLWFsbCknIG5vY2ggbWl0ICctLWlnbm9yZS1yZW1vdmFsJ1xuIgorImF1c2dlZsO8aHJ0LiBEYXMgVmVyaGFsdGVuIGRlcyBLb21tYW5kb3Mgw6RuZGVydCBzaWNoIGluIEdpdCAyLjAgZHVyY2hcbiIKKyJCZXLDvGNrc2ljaHRpZ3VuZyBkZXIgZ2Vsw7ZzY2h0ZW4gUGZhZGUuXG4iCisiUGZhZGUgd2llICclcycsIGRpZSBpbSBBcmJlaXRzdmVyemVpY2huaXMgZ2Vsw7ZzY2h0IHd1cmRlbiwgd2VyZGVuIGluXG4iCisiZGllc2VyIFZlcnNpb24gdm9uIEdpdCBpZ25vcmllcnQuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxQZmFkc3BlemlmaWthdGlvbj4nLCB3YXMgZGVyIGFrdHVlbGxlXG4iCisiICBTdGFuZGFyZHdlcnQgaXN0LCBpZ25vcmllcnQgZ2Vsw7ZzY2h0ZSBQZmFkZSBpbSBBcmJlaXRzdmVyemVpY2huaXMuXG4iCisiKiAnZ2l0IGFkZCAtLWFsbCA8UGZhZHNwZXppZmlrYXRpb24+JyBiZXLDvGNrc2ljaHRpZ3QgZWJlbmZhbGxzIGdlbMO2c2NodGVcbiIKKyIgIFBmYWRlLlxuIgorIkbDvGhyZW4gU2llICdnaXQgc3RhdHVzJyBhdXMsIHVtIGRpZSBnZWzDtnNjaHRlbiBQZmFkZSB6dSDDvGJlcnByw7xmZW4uXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCittc2dzdHIgInVuZXJ3YXJ0ZXRlciBEaWZmZXJlbnotU3RhdHVzICVjIgorCisjOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjI1MgorbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKK21zZ3N0ciAiQWt0dWFsaXNpZXJ1bmcgZGVyIERhdGVpZW4gZmVobGdlc2NobGFnZW4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAnJXMnXG4iCittc2dzdHIgImzDtnNjaGUgJyVzJ1xuIgorCisjOiBidWlsdGluL2FkZC5jOjI1MworbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgorbXNnc3RyICIiCisiTmljaHQgenVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbiBuYWNoIEFrdHVhbGlzaWVydW5nIGRlciBTdGFnaW5nLUFyZWE6IgorCisjOiBidWlsdGluL2FkZC5jOjI1NiBidWlsdGluL2FkZC5jOjU3MyBidWlsdGluL3JtLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCittc2dzdHIgIlBmYWRzcGV6aWZpa2F0aW9uICclcycgc3RpbW10IG1pdCBrZWluZW4gRGF0ZWllbiDDvGJlcmVpbiIKKworIzogYnVpbHRpbi9hZGQuYzozMzkKK21zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCittc2dzdHIgIktvbm50ZSBkaWUgU3RhZ2luZy1BcmVhIG5pY2h0IGxlc2VuIgorCisjOiBidWlsdGluL2FkZC5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKK21zZ3N0ciAiS29ubnRlICclcycgbmljaHQgenVtIFNjaHJlaWJlbiDDtmZmbmVuLiIKKworIzogYnVpbHRpbi9hZGQuYzozNTQKK21zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCittc2dzdHIgIktvbm50ZSBQYXRjaCBuaWNodCBzY2hyZWliZW4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIktvbm50ZSBWZXJ6ZWljaG5pcyAnJXMnIG5pY2h0IGxlc2VuIgorCisjOiBidWlsdGluL2FkZC5jOjM2MQorbXNnaWQgIkVtcHR5IHBhdGNoLiBBYm9ydGVkLiIKK21zZ3N0ciAiTGVlcmVyIFBhdGNoLiBBYmdlYnJvY2hlbi4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgorbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbndlbmRlbi4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzc3Cittc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgorbXNnc3RyICIiCisiRGllIGZvbGdlbmRlbiBQZmFkZSB3ZXJkZW4gZHVyY2ggZWluZSBJaHJlciBcIi5naXRpZ25vcmVcIiBEYXRlaWVuICIKKyJpZ25vcmllcnQ6XG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY4Cittc2dpZCAiZHJ5IHJ1biIKK21zZ3N0ciAiUHJvYmVsYXVmIgorCisjOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCisjOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCittc2dpZCAiYmUgdmVyYm9zZSIKK21zZ3N0ciAiZXJ3ZWl0ZXJ0ZSBBdXNnYWJlbiIKKworIzogYnVpbHRpbi9hZGQuYzozOTcKK21zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgorbXNnc3RyICJpbnRlcmFrdGl2ZXMgQXVzd8OkaGxlbiIKKworIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQorbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgorbXNnc3RyICJCbMO2Y2tlIGludGVyYWt0aXYgYXVzd8OkaGxlbiIKKworIzogYnVpbHRpbi9hZGQuYzozOTkKK21zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCittc2dzdHIgImFrdHVlbGxlIFVudGVyc2NoaWVkZSBlZGl0aWVyZW4gdW5kIGFud2VuZGVuIgorCisjOiBidWlsdGluL2FkZC5jOjQwMAorbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAiZXJsYXVidCBkYXMgSGluenVmw7xnZW4gYW5kZXJuZmFsbHMgaWdub3JpZXJ0ZXIgRGF0ZWllbiIKKworIzogYnVpbHRpbi9hZGQuYzo0MDEKK21zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKK21zZ3N0ciAiYWt0dWFsaXNpZXJ0IGJlb2JhY2h0ZXRlIERhdGVpZW4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAyCittc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgorbXNnc3RyICJzcGVpY2hlcnQgbnVyLCBkYXNzIGRlciBQZmFkIHNww6R0ZXIgaGluenVnZWbDvGd0IHdlcmRlbiBzb2xsIgorCisjOiBidWlsdGluL2FkZC5jOjQwMworbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKK21zZ3N0ciAiIgorImbDvGd0IMOEbmRlcnVuZ2VuIHZvbiBhbGxlbiBiZW9iYWNodGV0ZW4gdW5kIHVuYmVvYmFjaHRldGVuIERhdGVpZW4gaGluenUiCisKKyMuIHRha2VzIG5vIGFyZ3VtZW50cworIzogYnVpbHRpbi9hZGQuYzo0MDYKK21zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKK21zZ3N0ciAiaWdub3JpZXJ0IGdlbMO2c2NodGUgUGZhZGUgaW0gQXJiZWl0c3ZlcnplaWNobmlzIChnZW5hdSB3aWUgLS1uby1hbGwpIgorCisjOiBidWlsdGluL2FkZC5jOjQwOAorbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKK21zZ3N0ciAiZsO8Z3QgbmljaHRzIGhpbnp1LCBha3R1YWxpc2llcnQgbnVyIGRpZSBTdGFnaW5nLUFyZWEiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA5Cittc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKK21zZ3N0ciAiIgorIsO8YmVyc3ByaW5ndCBEYXRlaWVuLCBkaWUgYXVmZ3J1bmQgdm9uIEZlaGxlcm4gbmljaHQgaGluenVnZWbDvGd0IHdlcmRlbiAiCisia29ubnRlbiIKKworIzogYnVpbHRpbi9hZGQuYzo0MTAKK21zZ2lkICJjaGVjayBpZiAtIGV2ZW4gbWlzc2luZyAtIGZpbGVzIGFyZSBpZ25vcmVkIGluIGRyeSBydW4iCittc2dzdHIgInByw7xmdCBvYiAtIGF1Y2ggZmVobGVuZGUgLSBEYXRlaWVuIGltIFByb2JlbGF1ZiBpZ25vcmllcnQgd2VyZGVuIgorCisjOiBidWlsdGluL2FkZC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgorbXNnc3RyICJWZXJ3ZW5kZW4gU2llIC1mIHdlbm4gU2llIGRpZXNlIHdpcmtsaWNoIGhpbnp1ZsO8Z2VuIG3DtmNodGVuLlxuIgorCisjOiBidWlsdGluL2FkZC5jOjQzMworbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgorbXNnc3RyICJrZWluZSBEYXRlaWVuIGhpbnp1Z2Vmw7xndCIKKworIzogYnVpbHRpbi9hZGQuYzo0MzkKK21zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICJIaW56dWbDvGdlbiB2b24gRGF0ZWllbiBmZWhsZ2VzY2hsYWdlbiIKKworIzogYnVpbHRpbi9hZGQuYzo0NzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC1BIHVuZCAtdSBzaW5kIHp1ZWluYW5kZXIgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9hZGQuYzozODMKKyM6IGJ1aWx0aW4vYWRkLmM6NDk2CiBtc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBrYW5uIG51ciB6dXNhbW1lbiBtaXQgLS1kcnktcnVuIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2FkZC5jOjQxNAorIzogYnVpbHRpbi9hZGQuYzo1MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCiBtc2dzdHIgIk5pY2h0cyBzcGV6aWZpemllcnQsIG5pY2h0cyBoaW56dWdlZsO8Z3QuXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDE1CisjOiBidWlsdGluL2FkZC5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAiV29sbHRlbiBTaWUgdmllbGxlaWNodCAnZ2l0IGFkZCAuJyBzYWdlbj9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MjEgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzo2NyBidWlsdGluL2NsZWFuLmM6MjA0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjI5MyBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjIzNQorIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQorIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCi1tc2dzdHIgIkJlcmVpdHN0ZWxsdW5nc2RhdGVpIGJlc2Now6RkaWd0IgorbXNnc3RyICJTdGFnaW5nLUFyZWEtRGF0ZWkgYmVzY2jDpGRpZ3QiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDgxIGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgotbXNnc3RyICJLb25udGUgbmV1ZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBuaWNodCBzY2hyZWliZW4uIgorbXNnc3RyICJLb25udGUgbmV1ZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKIAogIzogYnVpbHRpbi9hcHBseS5jOjU3CiBtc2dpZCAiZ2l0IGFwcGx5IFtvcHRpb25zXSBbPHBhdGNoPi4uLl0iCkBAIC0xNzU5LDEyICsxOTczLDEyIEBACiAjOiBidWlsdGluL2FwcGx5LmM6MTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCB3aGl0ZXNwYWNlIG9wdGlvbiAnJXMnIgotbXNnc3RyICJuaWNodCBlcmthbm50ZSBPcHRpb24gZsO8ciBMZWVyemVpY2hlbjogJyVzJyIKK21zZ3N0ciAibmljaHQgZXJrYW5udGUgV2hpdGVzcGFjZS1PcHRpb246ICclcyciCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzoxMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIHdoaXRlc3BhY2UgaWdub3JlIG9wdGlvbiAnJXMnIgotbXNnc3RyICJuaWNodCBlcmthbm50ZSBPcHRpb24genVtIElnbm9yaWVyZW4gdm9uIExlZXJ6ZWljaGVuOiAnJXMnIgorbXNnc3RyICJuaWNodCBlcmthbm50ZSBPcHRpb24genVtIElnbm9yaWVyZW4gdm9uIFdoaXRlc3BhY2U6ICclcyciCiAKICM6IGJ1aWx0aW4vYXBwbHkuYzo4MjMKICMsIGMtZm9ybWF0CkBAIC0xODc3LDcgKzIwOTEsNyBAQAogIzogYnVpbHRpbi9hcHBseS5jOjIwNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgc3ltbGluayAlcyIKLW1zZ3N0ciAia29ubnRlIHN5bWJvbGlzY2hlIFZlcmtuw7xwZnVuZyAlcyBuaWNodCBsZXNlbiIKK21zZ3N0ciAia29ubnRlIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzICVzIG5pY2h0IGxlc2VuIgogCiAjOiBidWlsdGluL2FwcGx5LmM6MjA4MAogIywgYy1mb3JtYXQKQEAgLTE5MzcsMzE5ICsyMTUxLDMxNSBAQAogbXNnaWQgImNhbm5vdCBjaGVja291dCAlcyIKIG1zZ3N0ciAia2FubiAlcyBuaWNodCBhdXNjaGVja2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5MworIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCBvZiAlcyBmYWlsZWQiCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNzMgYnVpbHRpbi9hcHBseS5jOjMzOTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTc0IGJ1aWx0aW4vYXBwbHkuYzozMzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJXMgaGFzIGJlZW4gcmVuYW1lZC9kZWxldGVkIgogbXNnc3RyICJQZmFkICVzIHd1cmRlIHVtYmVuYW5udC9nZWzDtnNjaHQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU0IGJ1aWx0aW4vYXBwbHkuYzozNDA5CisjOiBidWlsdGluL2FwcGx5LmM6MzI1NSBidWlsdGluL2FwcGx5LmM6MzQxMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgiCi1tc2dzdHIgIiVzIGlzdCBuaWNodCBiZXJlaXRnZXN0ZWxsdCIKK21zZ3N0ciAiJXMgaXN0IG5pY2h0IGluIGRlciBTdGFnaW5nLUFyZWEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU4IGJ1aWx0aW4vYXBwbHkuYzozNDAxIGJ1aWx0aW4vYXBwbHkuYzozNDIzCisjOiBidWlsdGluL2FwcGx5LmM6MzI1OSBidWlsdGluL2FwcGx5LmM6MzQwMiBidWlsdGluL2FwcGx5LmM6MzQyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogJXMiCiBtc2dzdHIgIiVzOiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNjMgYnVpbHRpbi9hcHBseS5jOjM0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjY0IGJ1aWx0aW4vYXBwbHkuYzozNDE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBtYXRjaCBpbmRleCIKLW1zZ3N0ciAiJXMgZW50c3ByaWNodCBuaWNodCBkZXIgQmVyZWl0c3RlbGx1bmciCittc2dzdHIgIiVzIGVudHNwcmljaHQgbmljaHQgZGVyIFZlcnNpb24gaW4gZGVyIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY2CiBtc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKIG1zZ3N0ciAiTMO2c2NoLVBhdGNoIGhpbnRlcmzDpHNzdCBEYXRlaWluaGFsdGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM0CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogd3JvbmcgdHlwZSIKIG1zZ3N0ciAiJXM6IGZhbHNjaGVyIFR5cCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKIG1zZ3N0ciAiJXMgaXN0IHZvbSBUeXAgJW8sIGVyd2FydGV0ZSAlbyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1MzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiBpbmRleCIKIG1zZ3N0ciAiJXMgaXN0IGJlcmVpdHMgYmVyZWl0Z2VzdGVsbHQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTQwCisjOiBidWlsdGluL2FwcGx5LmM6MzU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gd29ya2luZyBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzIGV4aXN0aWVydCBiZXJlaXRzIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKIG1zZ3N0ciAibmV1ZXIgTW9kdXMgKCVvKSB2b24gJXMgZW50c3ByaWNodCBuaWNodCBkZW0gYWx0ZW4gTW9kdXMgKCVvKSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKIG1zZ3N0ciAibmV1ZXIgTW9kdXMgKCVvKSB2b24gJXMgZW50c3ByaWNodCBuaWNodCBkZW0gYWx0ZW4gTW9kdXMgKCVvKSB2b24gJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTczCisjOiBidWlsdGluL2FwcGx5LmM6MzU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIiVzOiBQYXRjaCBrb25udGUgbmljaHQgYW5nZXdlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjOiBidWlsdGluL2FwcGx5LmM6MzU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAiUHLDvGZlIFBhdGNoICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE1IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICJtYWtlX2NhY2hlX2VudHJ5IGbDvHIgUGZhZCAnJXMnIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzgyMgorIzogYnVpbHRpbi9hcHBseS5jOjM4MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAlcyBmcm9tIGluZGV4IgotbXNnc3RyICJrb25udGUgJXMgbmljaHQgYXVzIGRlciBCZXJlaXRzdGVsbHVuZyBlbnRmZXJuZW4iCittc2dzdHIgImtvbm50ZSAlcyBuaWNodCBhdXMgZGVyIFN0YWdpbmctQXJlYSBlbnRmZXJuZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODUwCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1MQogIywgYy1mb3JtYXQKLW1zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIgotbXNnc3RyICJmZWhsZXJoYWZ0ZXIgUGF0Y2ggZsO8ciBVbnRlcnByb2pla3QgJXMiCittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VibW9kdWxlICVzIgorbXNnc3RyICJmZWhsZXJoYWZ0ZXIgUGF0Y2ggZsO8ciBTdWJtb2R1bCAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGF0IG5ld2x5IGNyZWF0ZWQgZmlsZSAnJXMnIgogbXNnc3RyICJrb25udGUgbmV1IGVyc3RlbGx0ZSBEYXRlaSAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1OQorIzogYnVpbHRpbi9hcHBseS5jOjM4NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBiYWNraW5nIHN0b3JlIGZvciBuZXdseSBjcmVhdGVkIGZpbGUgJXMiCiBtc2dzdHIgImthbm4gaW50ZXJuZW4gU3BlaWNoZXIgZsO8ciBlYmVuIGVyc3RlbGx0ZSBEYXRlaSAlcyBuaWNodCBlcnpldWdlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYzIGJ1aWx0aW4vYXBwbHkuYzozOTcxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgogbXNnc3RyICJrYW5uIGbDvHIgJXMga2VpbmVuIEVpbnRyYWcgaW4gZGVuIFp3aXNjaGVuc3BlaWNoZXIgaGluenVmw7xnZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODk1CisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKIG1zZ3N0ciAic2NobGllw59lIERhdGVpICclcyciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ0CisjOiBidWlsdGluL2FwcGx5LmM6Mzk0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgZmlsZSAnJXMnIG1vZGUgJW8iCiBtc2dzdHIgImtvbm50ZSBEYXRlaSAnJXMnIG1pdCBNb2R1cyAlbyBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjOiBidWlsdGluL2FwcGx5LmM6NDAzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBsaWVkIHBhdGNoICVzIGNsZWFubHkuIgogbXNnc3RyICJQYXRjaCAlcyBzYXViZXIgYW5nZXdlbmRldCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgImludGVybmVyIEZlaGxlciIKIAogIy4gU2F5IHRoaXMgZXZlbiB3aXRob3V0IC0tdmVyYm9zZQotIzogYnVpbHRpbi9hcHBseS5jOjQwNDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdC4uLiIKIG1zZ2lkX3BsdXJhbCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0cy4uLiIKIG1zZ3N0clswXSAiV2VuZGUgUGF0Y2ggJSVzIG1pdCAlZCBadXLDvGNrd2Vpc3VuZyBhbi4uLiIKIG1zZ3N0clsxXSAiV2VuZGUgUGF0Y2ggJSVzIG1pdCAlZCBadXLDvGNrd2Vpc3VuZ2VuIGFuLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICJWZXJrw7xyemUgTmFtZSB2b24gLnJlaiBEYXRlaSB6dSAlLipzLnJlaiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCiBtc2dzdHIgIlBhdGNoLUJlcmVpY2ggIyVkIHNhdWJlciBhbmdld2VuZGV0LiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlamVjdGVkIGh1bmsgIyVkLiIKLW1zZ3N0ciAiUGF0Y2gtQmVyZWljaCAjJWQgenVyw7xja2dld2llc2VuLiIKK21zZ3N0ciAiUGF0Y2gtQmxvY2sgIyVkIHp1csO8Y2tnZXdpZXNlbi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI2CisjOiBidWlsdGluL2FwcGx5LmM6NDIyNwogbXNnaWQgInVucmVjb2duaXplZCBpbnB1dCIKIG1zZ3N0ciAibmljaHQgZXJrYW5udGUgRWluZ2FiZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM4CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIKLW1zZ3N0ciAiS29ubnRlIEJlcmVpdHN0ZWxsdW5nc2RhdGVpIG5pY2h0IGxlc2VuIgorbXNnc3RyICJLb25udGUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NiBidWlsdGluL2FwcGx5LmM6NDM1OSBidWlsdGluL2Nsb25lLmM6OTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU3IGJ1aWx0aW4vYXBwbHkuYzo0MzYwIGJ1aWx0aW4vY2xvbmUuYzo5MQogIzogYnVpbHRpbi9mZXRjaC5jOjYzCiBtc2dpZCAicGF0aCIKIG1zZ3N0ciAiUGZhZCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU4CiBtc2dpZCAiZG9uJ3QgYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAid2VuZGV0IGtlaW5lIMOEbmRlcnVuZ2VuIGltIGFuZ2VnZWJlbmVuIFBmYWQgYW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYwCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MQogbXNnaWQgImFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgIndlbmRldCDDhG5kZXJ1bmdlbiBudXIgaW0gYW5nZWdlYmVuZW4gUGZhZCBhbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCiBtc2dpZCAibnVtIgogbXNnc3RyICJBbnphaGwiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM2NAogbXNnaWQgInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIgogbXNnc3RyICIiCiAiZW50ZmVybnQgPEFuemFobD4gdm9yYW5nZXN0ZWxsdGUgU2NocsOkZ3N0cmljaGUgdm9uIGhlcmvDtm1tbGljaGVuICIKICJEaWZmZXJlbnpwZmFkZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2CisjOiBidWlsdGluL2FwcGx5LmM6NDM2NwogbXNnaWQgImlnbm9yZSBhZGRpdGlvbnMgbWFkZSBieSB0aGUgcGF0Y2giCiBtc2dzdHIgImlnbm9yaWVydCBoaW56dWdlZsO8Z3RlIFplaWxlbiBkZXMgUGF0Y2hlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjgKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY5CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBkaWZmc3RhdCBmb3IgdGhlIGlucHV0IgogbXNnc3RyICIiCiAiYW5zdGF0dCBkZXIgQW53ZW5kdW5nIGRlcyBQYXRjaGVzLCB3aXJkIGRlciBcImRpZmZzdGF0XCIgZsO8ciBkaWUgRWluZ2FiZSAiCiAiYXVzZ2VnZWJlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzczCiBtc2dpZCAic2hvdyBudW1iZXIgb2YgYWRkZWQgYW5kIGRlbGV0ZWQgbGluZXMgaW4gZGVjaW1hbCBub3RhdGlvbiIKIG1zZ3N0ciAiIgogInplaWd0IGRpZSBBbnphaGwgdm9uIGhpbnp1Z2Vmw7xndGVuL2VudGZlcm50ZW4gWmVpbGVuIGluIERlemltYWxub3RhdGlvbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc1CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBhIHN1bW1hcnkgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiIgogImFuc3RhdHQgZGVyIEFud2VuZHVuZyBkZXMgUGF0Y2hlcywgd2lyZCBlaW5lIFp1c2FtbWVuZmFzc3VuZyBmw7xyIGRpZSBFaW5nYWJlICIKICJhdXNnZWdlYmVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzcKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIgogbXNnc3RyICIiCiAiYW5zdGF0dCBkZXIgQW53ZW5kdW5nIGRlcyBQYXRjaGVzLCB6ZWlnZSBvYiBQYXRjaCBhbmdld2VuZGV0IHdlcmRlbiBrYW5uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzkKIG1zZ2lkICJtYWtlIHN1cmUgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5kZXgiCiBtc2dzdHIgIiIKLSJzdGVsbHQgc2ljaGVyLCBkYXNzIGRlciBQYXRjaCBpbiBkZXIgYWt0dWVsbGVuIEJlcmVpdHN0ZWxsdW5nIGFuZ2V3ZW5kZXQgIgorInN0ZWxsdCBzaWNoZXIsIGRhc3MgZGVyIFBhdGNoIGluIGRlciBha3R1ZWxsZW4gU3RhZ2luZy1BcmVhIGFuZ2V3ZW5kZXQgIgogIndlcmRlbiBrYW5uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MAorIzogYnVpbHRpbi9hcHBseS5jOjQzODEKIG1zZ2lkICJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAid2VuZGV0IGVpbmVuIFBhdGNoIGFuLCBvaG5lIMOEbmRlcnVuZ2VuIGltIEFyYmVpdHN6d2VpZyB2b3J6dW5laG1lbiIKK21zZ3N0ciAiIgorIndlbmRldCBlaW5lbiBQYXRjaCBhbiwgb2huZSDDhG5kZXJ1bmdlbiBpbSBBcmJlaXRzdmVyemVpY2huaXMgdm9yenVuZWhtZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgyCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MwogbXNnaWQgImFsc28gYXBwbHkgdGhlIHBhdGNoICh1c2Ugd2l0aCAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgogbXNnc3RyICJ3ZW5kZXQgZGVuIFBhdGNoIGFuIChCZW51dHp1bmcgbWl0IC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NQogbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCi1tc2dzdHIgIiIKLSJ2ZXJzdWNodCAzLVdlZ2UtWnVzYW1tZW5mw7xocnVuZywgd2VubiBkZXIgUGF0Y2ggbmljaHQgYW5nZXdlbmRldCB3ZXJkZW4gIgotImtvbm50ZSIKK21zZ3N0ciAidmVyc3VjaHQgMy1XZWdlLU1lcmdlLCB3ZW5uIGRlciBQYXRjaCBuaWNodCBhbmdld2VuZGV0IHdlcmRlbiBrb25udGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NwogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCi0iZXJzdGVsbHQgZWluZSB0ZW1wb3LDpHJlIEJlcmVpdHN0ZWxsdW5nIGJhc2llcmVuZCBhdWYgZGVuIGludGVncmllcnRlbiAiCi0iQmVyZWl0c3RlbGx1bmdzaW5mb3JtYXRpb25lbiIKKyJlcnN0ZWxsdCBlaW5lIHRlbXBvcsOkcmUgU3RhZ2luZy1BcmVhIGJhc2llcmVuZCBhdWYgZGVuIGludGVncmllcnRlbiBTdGFnaW5nLSIKKyJBcmVhLUluZm9ybWF0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MworIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgIlBmYWRlIHNpbmQgZ2V0cmVubnQgZHVyY2ggTlVMIFplaWNoZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkxCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MgogbXNnaWQgImVuc3VyZSBhdCBsZWFzdCA8bj4gbGluZXMgb2YgY29udGV4dCBtYXRjaCIKIG1zZ3N0ciAic3RlbGx0IHNpY2hlciwgZGFzcyBtaW5kZXN0ZW5zIDxuPiBaZWlsZW4gZGVzIEtvbnRleHRlcyDDvGJlcmVpbnN0aW1tZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MwogbXNnaWQgImFjdGlvbiIKIG1zZ3N0ciAiQWt0aW9uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MworIzogYnVpbHRpbi9hcHBseS5jOjQzOTQKIG1zZ2lkICJkZXRlY3QgbmV3IG9yIG1vZGlmaWVkIGxpbmVzIHRoYXQgaGF2ZSB3aGl0ZXNwYWNlIGVycm9ycyIKLW1zZ3N0ciAiZXJtaXR0ZWx0IG5ldWUgb2RlciBnZcOkbmRlcnRlIFplaWxlbiBkaWUgRmVobGVyIGluIExlZXJ6ZWljaGVuIGhhYmVuIgorbXNnc3RyICJlcm1pdHRlbHQgbmV1ZSBvZGVyIGdlw6RuZGVydGUgWmVpbGVuIGRpZSBXaGl0ZXNwYWNlLUZlaGxlciBoYWJlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKLW1zZ3N0ciAiaWdub3JpZXJ0IMOEbmRlcnVuZ2VuIGluIExlZXJ6ZWljaGVuIGJlaSBkZXIgU3VjaGUgZGVzIEtvbnRleHRlcyIKK21zZ3N0ciAiaWdub3JpZXJ0IMOEbmRlcnVuZ2VuIGltIFdoaXRlc3BhY2UgYmVpIGRlciBTdWNoZSBkZXMgS29udGV4dGVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwMgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDMKIG1zZ2lkICJhcHBseSB0aGUgcGF0Y2ggaW4gcmV2ZXJzZSIKIG1zZ3N0ciAid2VuZGV0IGRlbiBQYXRjaCBpbiB1bWdla2VocnRlciBSZWloZW5mb2xnZSBhbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA1CiBtc2dpZCAiZG9uJ3QgZXhwZWN0IGF0IGxlYXN0IG9uZSBsaW5lIG9mIGNvbnRleHQiCiBtc2dzdHIgImVyd2FydGV0IGtlaW5lbiBLb250ZXh0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDcKIG1zZ2lkICJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIKIG1zZ3N0ciAiIgotImhpbnRlcmzDpHNzdCB6dXLDvGNrZ2V3aWVzZW5lIFBhdGNoLUJlcmVpY2hlIGluIGRlbiBlbnRzcHJlY2hlbmRlbiAqLnJlaiAiCi0iRGF0ZWllbiIKKyJoaW50ZXJsw6Rzc3QgenVyw7xja2dld2llc2VuZSBQYXRjaC1CbMO2Y2tlIGluIGVudHNwcmVjaGVuZGVuICoucmVqIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4CisjOiBidWlsdGluL2FwcGx5LmM6NDQwOQogbXNnaWQgImFsbG93IG92ZXJsYXBwaW5nIGh1bmtzIgotbXNnc3RyICJlcmxhdWJ0IHNpY2ggw7xiZXJsYXBwZW5kZSBQYXRjaC1CZXJlaWNoZSIKK21zZ3N0ciAiZXJsYXVidCBzaWNoIMO8YmVybGFwcGVuZGUgUGF0Y2gtQmzDtmNrZSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDEyCiBtc2dpZCAidG9sZXJhdGUgaW5jb3JyZWN0bHkgZGV0ZWN0ZWQgbWlzc2luZyBuZXctbGluZSBhdCB0aGUgZW5kIG9mIGZpbGUiCiBtc2dzdHIgInRvbGVyaWVydCBmZWhsZXJoYWZ0IGVya2FubnRlbiBmZWhsZW5kZW4gWmVpbGVudW1icnVjaCBhbSBEYXRlaWVuZGUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE0CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNQogbXNnaWQgImRvIG5vdCB0cnVzdCB0aGUgbGluZSBjb3VudHMgaW4gdGhlIGh1bmsgaGVhZGVycyIKLW1zZ3N0ciAidmVydHJhdXQgbmljaHQgZGVuIFplaWxlbm51bW1lcm4gaW0gS29wZiBkZXMgUGF0Y2gtQmVyZWljaGVzIgorbXNnc3RyICJ2ZXJ0cmF1dCBuaWNodCBkZW4gWmVpbGVubnVtbWVybiBpbSBLb3BmIGRlcyBQYXRjaC1CbG9ja3MiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE2CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNwogbXNnaWQgInJvb3QiCiBtc2dzdHIgIld1cnplbHZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTgKIG1zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgogbXNnc3RyICJzdGVsbHQgPFd1cnplbHZlcnplaWNobmlzPiB2b3IgYWxsZSBEYXRlaW5hbWVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQzOQorIzogYnVpbHRpbi9hcHBseS5jOjQ0NDAKIG1zZ2lkICItLTN3YXkgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKLSJEaWUgT3B0aW9uIC0tM3dheSBrYW5uIG5pY2h0IGF1w59lcmhhbGIgZWluZXMgUHJvamVrdGFyY2hpdnMgdmVyd2VuZGV0IHdlcmRlbi4iCisiRGllIE9wdGlvbiAtLTN3YXkga2FubiBuaWNodCBhdcOfZXJoYWxiIGVpbmVzIFJlcG9zaXRvcmllcyB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NDcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ4CiBtc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS1pbmRleCBrYW5uIG5pY2h0IGF1w59lcmhhbGIgZWluZXMgUHJvamVrdGFyY2hpdnMgdmVyd2VuZGV0ICIKLSJ3ZXJkZW4uIgorIkRpZSBPcHRpb24gLS1pbmRleCBrYW5uIG5pY2h0IGF1w59lcmhhbGIgZWluZXMgUmVwb3NpdG9yaWVzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ1MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0NTEKIG1zZ2lkICItLWNhY2hlZCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS1jYWNoZWQga2FubiBuaWNodCBhdcOfZXJoYWxiIGVpbmVzIFByb2pla3RhcmNoaXZzIHZlcndlbmRldCAiCi0id2VyZGVuLiIKKyJEaWUgT3B0aW9uIC0tY2FjaGVkIGthbm4gbmljaHQgYXXDn2VyaGFsYiBlaW5lcyBSZXBvc2l0b3JpZXMgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW4ndCBvcGVuIHBhdGNoICclcyciCiBtc2dzdHIgImthbm4gUGF0Y2ggJyVzJyBuaWNodCDDtmZmbmVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKLW1zZ3N0clswXSAidW50ZXJkcsO8Y2t0ZSAlZCBGZWhsZXIgaW4gTGVlcnplaWNoZW4iCi1tc2dzdHJbMV0gInVudGVyZHLDvGNrdGUgJWQgRmVobGVyIGluIExlZXJ6ZWljaGVuIgorbXNnc3RyWzBdICJ1bnRlcmRyw7xja3RlICVkIFdoaXRlc3BhY2UtRmVobGVyIgorbXNnc3RyWzFdICJ1bnRlcmRyw7xja3RlICVkIFdoaXRlc3BhY2UtRmVobGVyIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4NiBidWlsdGluL2FwcGx5LmM6NDQ5NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODcgYnVpbHRpbi9hcHBseS5jOjQ0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgbGluZSBhZGRzIHdoaXRlc3BhY2UgZXJyb3JzLiIKIG1zZ2lkX3BsdXJhbCAiJWQgbGluZXMgYWRkIHdoaXRlc3BhY2UgZXJyb3JzLiIKLW1zZ3N0clswXSAiJWQgWmVpbGUgZsO8Z3QgRmVobGVyIGluIExlZXJ6ZWljaGVuIGhpbnp1LiIKLW1zZ3N0clsxXSAiJWQgWmVpbGVuIGbDvGdlbiBGZWhsZXIgaW4gTGVlcnplaWNoZW4gaGluenUuIgorbXNnc3RyWzBdICIlZCBaZWlsZSBmw7xndCBXaGl0ZXNwYWNlLUZlaGxlciBoaW56dS4iCittc2dzdHJbMV0gIiVkIFplaWxlbiBmw7xnZW4gV2hpdGVzcGFjZS1GZWhsZXIgaGluenUuIgogCiAjOiBidWlsdGluL2FyY2hpdmUuYzoxNwogIywgYy1mb3JtYXQKQEAgLTIyOTYsMTA2ICsyNTA2LDEwNiBAQAogCiAjOiBidWlsdGluL2Jpc2VjdC0taGVscGVyLmM6MTkKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgotbXNnc3RyICJha3R1YWxpc2llcnQgQklTRUNUX0hFQUQsIGFuc3RhdHQgZGllIGFrdHVlbGxlIFZlcnNpb24gYXVzenVjaGVja2VuIgorbXNnc3RyICJha3R1YWxpc2llcnQgQklTRUNUX0hFQUQsIGFuc3RhdHQgZGVuIGFrdHVlbGxlbiBDb21taXQgYXVzenVjaGVja2VuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNgogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBbT3B0aW9uZW5dIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBEYXRlaSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMwIGJ1aWx0aW4vc2hvcnRsb2cuYzoxNQorIzogYnVpbHRpbi9ibGFtZS5jOjMxCiBtc2dpZCAiW3Jldi1vcHRzXSBhcmUgZG9jdW1lbnRlZCBpbiBnaXQtcmV2LWxpc3QoMSkiCiBtc2dzdHIgIltyZXYtb3B0c10gc2luZCBkb2t1bWVudGllcnQgaW4gZ2l0LXJldi1saXN0KDEpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICJaZWlndCBcImJsYW1lXCItRWludHLDpGdlIHNjaHJpdHR3ZWlzZSwgd8OkaHJlbmQgd2lyIHNpZSBnZW5lcmllcmVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzcKIG1zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgotbXNnc3RyICJaZWlndCBsZWVyZSBTSEEtMSBmw7xyIEdyZW56dmVyc2lvbmVuIChTdGFuZGFyZDogYXVzKSIKK21zZ3N0ciAiWmVpZ3QgbGVlcmUgU0hBLTEgZsO8ciBHcmVuei1Db21taXRzIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc4CiBtc2dpZCAiRG8gbm90IHRyZWF0IHJvb3QgY29tbWl0cyBhcyBib3VuZGFyaWVzIChEZWZhdWx0OiBvZmYpIgotbXNnc3RyICJCZWhhbmRlbHQgVXJzcHJ1bmdzdmVyc2lvbmVuIG5pY2h0IGFscyBHcmVuemVuIChTdGFuZGFyZDogYXVzKSIKK21zZ3N0ciAiQmVoYW5kZWx0IFVyc3BydW5ncy1Db21taXQgbmljaHQgYWxzIEdyZW56ZW4gKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNzkKIG1zZ2lkICJTaG93IHdvcmsgY29zdCBzdGF0aXN0aWNzIgogbXNnc3RyICJaZWlndCBTdGF0aXN0aWtlbiB6dW0gQXJiZWl0c2F1ZndhbmQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU0CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MAogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgogbXNnc3RyICJaZWlndCBBdXNnYWJlYmV3ZXJ0dW5nIGbDvHIgXCJibGFtZVwiLUVpbnRyw6RnZSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgxCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIlplaWd0IHVyc3Byw7xuZ2xpY2hlbiBEYXRlaW5hbWVuIChTdGFuZGFyZDogYXV0bykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU2CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MgogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiWmVpZ3QgdXJzcHLDvG5nbGljaGUgWmVpbGVubnVtbWVyIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiQW56ZWlnZSBpbiBlaW5lbSBGb3JtYXQgZsO8ciBtYXNjaGluZWxsZSBBdXN3ZXJ0dW5nIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKLSJBbnplaWdlIGluIEZvcm1hdCBmw7xyIEZyZW1kcHJvZ3JhbW1lIG1pdCBWZXJzaW9uc2luZm9ybWF0aW9uZW4gcHJvIFplaWxlIgorIkFuemVpZ2UgaW4gRm9ybWF0IGbDvHIgRnJlbWRwcm9ncmFtbWUgbWl0IENvbW1pdC1JbmZvcm1hdGlvbmVuIHBybyBaZWlsZSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQmVudXR6dCBkZW4gZ2xlaWNoZW4gQXVzZ2FiZW1vZHVzIHdpZSBcImdpdC1hbm5vdGF0ZVwiIChTdGFuZGFyZDogYXVzKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg2CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJaZWlndCB1bmJlYXJiZWl0ZXRlbiBaZWl0c3RlbXBlbCAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYxCisjOiBidWlsdGluL2JsYW1lLmM6MjI4NwogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKLW1zZ3N0ciAiWmVpZ3QgbGFuZ2VuIFZlcnNpb25zLVNIQTEgKFN0YW5kYXJkOiBhdXMpIgorbXNnc3RyICJaZWlndCBsYW5nZW4gQ29tbWl0LVNIQTEgKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODgKIG1zZ2lkICJTdXBwcmVzcyBhdXRob3IgbmFtZSBhbmQgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJVbnRlcmRyw7xja3QgZGVuIE5hbWVuIGRlcyBBdXRvcnMgdW5kIGRlbiBaZWl0c3RlbXBlbCAoU3RhbmRhcmQ6IGF1cykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYzCisjOiBidWlsdGluL2JsYW1lLmM6MjI4OQogbXNnaWQgIlNob3cgYXV0aG9yIGVtYWlsIGluc3RlYWQgb2YgbmFtZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiWmVpZ3QgYW5zdGF0dCBkZXMgTmFtZW5zIGRpZSBFbWFpbC1BZHJlc3NlIGRlcyBBdXRvcnMgKFN0YW5kYXJkOiBhdXMpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTAKIG1zZ2lkICJJZ25vcmUgd2hpdGVzcGFjZSBkaWZmZXJlbmNlcyIKLW1zZ3N0ciAiSWdub3JpZXJ0IFVudGVyc2NoaWVkZSBpbiBMZWVyemVpY2hlbiIKK21zZ3N0ciAiSWdub3JpZXJ0IFVudGVyc2NoaWVkZSBpbSBXaGl0ZXNwYWNlIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTEKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgImFyYmVpdGUgbMOkbmdlciwgdW0gYmVzc2VyZSDDnGJlcmVpbnN0aW1tdW5nZW4genUgZmluZGVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCi1tc2dzdHIgIkJlbnV0enQgUmV2aXNpb25lbiB2b24gPERhdGVpPiBhbnN0YXR0IFwiZ2l0LXJldi1saXN0XCIgYXVmenVydWZlbiIKK21zZ3N0ciAiQmVudXR6dCBDb21taXRzIHZvbiA8RGF0ZWk+IGFuc3RhdHQgXCJnaXQtcmV2LWxpc3RcIiBhdWZ6dXJ1ZmVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NworIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMKIG1zZ2lkICJVc2UgPGZpbGU+J3MgY29udGVudHMgYXMgdGhlIGZpbmFsIGltYWdlIgogbXNnc3RyICJCZW51dHp0IEluaGFsdGUgZGVyIDxEYXRlaT5lbiBhbHMgZW50Z8O8bHRpZ2VzIEFiYmlsZCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjggYnVpbHRpbi9ibGFtZS5jOjIzNjkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAic2NvcmUiCiBtc2dzdHIgIkJld2VydHVuZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk0CiBtc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAiRmluZGV0IGtvcGllcnRlIFplaWxlbiBpbm5lcmhhbGIgb2RlciB6d2lzY2hlbiBEYXRlaWVuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJGaW5kZXQgdmVyc2Nob2JlbmUgWmVpbGVuIGlubmVyaGFsYiBvZGVyIHp3aXNjaGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIm4sbSIKIG1zZ3N0ciAibixtIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJQcm9jZXNzIG9ubHkgbGluZSByYW5nZSBuLG0sIGNvdW50aW5nIGZyb20gMSIKIG1zZ3N0ciAiVmVyYXJiZWl0ZXQgbnVyIFplaWxlbiBpbSBCZXJlaWNoIG4sbSwgZ2V6w6RobHQgdm9uIDEiCiAKQEAgLTI0MDUsMzgyICsyNjE1LDM4MiBAQAogCiAjOiBidWlsdGluL2JyYW5jaC5jOjI1CiBtc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1sXSBbLWZdIDxicmFuY2huYW1lPiBbPHN0YXJ0LXBvaW50Pl0iCi1tc2dzdHIgImdpdCBicmFuY2ggW09wdGlvbmVuXSBbLWxdIFstZl0gPFp3ZWlnbmFtZT4gWzxTdGFydHB1bmt0Pl0iCittc2dzdHIgImdpdCBicmFuY2ggW09wdGlvbmVuXSBbLWxdIFstZl0gPEJyYW5jaG5hbWU+IFs8U3RhcnRwdW5rdD5dIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjI2CiBtc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1yXSAoLWQgfCAtRCkgPGJyYW5jaG5hbWU+Li4uIgotbXNnc3RyICJnaXQgYnJhbmNoIFtPcHRpb25lbl0gWy1yXSAoLWQgfCAtRCkgPFp3ZWlnbmFtZT4uLi4iCittc2dzdHIgImdpdCBicmFuY2ggW09wdGlvbmVuXSBbLXJdICgtZCB8IC1EKSA8QnJhbmNobmFtZT4uLi4iCiAKICM6IGJ1aWx0aW4vYnJhbmNoLmM6MjcKIG1zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSAoLW0gfCAtTSkgWzxvbGRicmFuY2g+XSA8bmV3YnJhbmNoPiIKLW1zZ3N0ciAiZ2l0IGJyYW5jaCBbT3B0aW9uZW5dICgtbSB8IC1NKSBbPGFsdGVyWndlaWc+XSA8bmV1ZXJad2VpZz4iCittc2dzdHIgImdpdCBicmFuY2ggW09wdGlvbmVuXSAoLW0gfCAtTSkgWzxhbHRlckJyYW5jaD5dIDxuZXVlckJyYW5jaD4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTQ2CisjOiBidWlsdGluL2JyYW5jaC5jOjE1MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBoYXMgYmVlbiBtZXJnZWQgdG9cbiIKICIgICAgICAgICAnJXMnLCBidXQgbm90IHlldCBtZXJnZWQgdG8gSEVBRC4iCiBtc2dzdHIgIiIKLSJlbnRmZXJuZSBad2VpZyAnJXMnLCBkZXIgenVzYW1tZW5nZWbDvGhydCB3dXJkZSBtaXRcbiIKLSIgICAgICAgICAnJXMnLCBhYmVyIG5vY2ggbmljaHQgbWl0IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgenVzYW1tZW5nZWbDvGhydCAiCi0id3VyZGUuIgorImVudGZlcm5lIEJyYW5jaCAnJXMnLCBkZXIgenVzYW1tZW5nZWbDvGhydCB3dXJkZSBtaXRcbiIKKyIgICAgICAgICAnJXMnLCBhYmVyIG5vY2ggbmljaHQgbWl0IEhFQUQgenVzYW1tZW5nZWbDvGhydCB3dXJkZS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTUwCisjOiBidWlsdGluL2JyYW5jaC5jOjE1NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGRlbGV0aW5nIGJyYW5jaCAnJXMnIHRoYXQgaXMgbm90IHlldCBtZXJnZWQgdG9cbiIKICIgICAgICAgICAnJXMnLCBldmVuIHRob3VnaCBpdCBpcyBtZXJnZWQgdG8gSEVBRC4iCiBtc2dzdHIgIiIKLSJlbnRmZXJuZSBad2VpZyAnJXMnIG5pY2h0LCBkZXIgbm9jaCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0IHd1cmRlIG1pdFxuIgotIiAgICAgICAgICclcycsIG9id29obCBlciBtaXQgZGVyIFp3ZWlnc3BpdHplIChIRUFEKSB6dXNhbW1lbmdlZsO8aHJ0IHd1cmRlLiIKLQotIzogYnVpbHRpbi9icmFuY2guYzoxNjQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciAnJXMnIgotbXNnc3RyICJLb25udGUgVmVyc2lvbnNvYmpla3QgZsO8ciAnJXMnIG5pY2h0IG5hY2hzY2hsYWdlbi4iCisiZW50ZmVybmUgQnJhbmNoICclcycgbmljaHQsIGRlciBub2NoIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUgbWl0XG4iCisiICAgICAgICAgJyVzJywgb2J3b2hsIGVyIG1pdCBIRUFEIHp1c2FtbWVuZ2Vmw7xocnQgd3VyZGUuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjE2OAogIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZG4ndCBsb29rIHVwIGNvbW1pdCBvYmplY3QgZm9yICclcyciCittc2dzdHIgIktvbm50ZSBDb21taXQtT2JqZWt0IGbDvHIgJyVzJyBuaWNodCBuYWNoc2NobGFnZW4uIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjE3MgorIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGJyYW5jaCAnJXMnIGlzIG5vdCBmdWxseSBtZXJnZWQuXG4iCiAiSWYgeW91IGFyZSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdCwgcnVuICdnaXQgYnJhbmNoIC1EICVzJy4iCiBtc2dzdHIgIiIKLSJEZXIgWndlaWcgJyVzJyBpc3QgbmljaHQgdm9sbHN0w6RuZGlnIHp1c2FtbWVuZ2Vmw7xocnQuXG4iCi0iV2VubiBTaWUgc2ljaGVyIHNpbmQgZGllc2VuIFp3ZWlnIHp1IGVudGZlcm5lbiwgZsO8aHJlbiBTaWUgJ2dpdCBicmFuY2ggLUQgIgorIkRlciBCcmFuY2ggJyVzJyBpc3QgbmljaHQgdm9sbHN0w6RuZGlnIHp1c2FtbWVuZ2Vmw7xocnQuXG4iCisiV2VubiBTaWUgc2ljaGVyIHNpbmQgZGllc2VuIEJyYW5jaCB6dSBlbnRmZXJuZW4sIGbDvGhyZW4gU2llICdnaXQgYnJhbmNoIC1EICIKICIlcycgYXVzLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTg1CiBtc2dpZCAiVXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiQWt0dWFsaXNpZXJ1bmcgZGVyIEtvbmZpZ3VyYXRpb25zZGF0ZWkgZmVobGdlc2NobGFnZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIwOQorIzogYnVpbHRpbi9icmFuY2guYzoyMTMKIG1zZ2lkICJjYW5ub3QgdXNlIC1hIHdpdGggLWQiCiBtc2dzdHIgImthbm4gLWEgbmljaHQgbWl0IC1kIGJlbnV0emVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIxNQorIzogYnVpbHRpbi9icmFuY2guYzoyMTkKIG1zZ2lkICJDb3VsZG4ndCBsb29rIHVwIGNvbW1pdCBvYmplY3QgZm9yIEhFQUQiCi1tc2dzdHIgIktvbm50ZSBWZXJzaW9uc29iamVrdCBmw7xyIFp3ZWlnc3BpdHplIChIRUFEKSBuaWNodCBuYWNoc2NobGFnZW4uIgorbXNnc3RyICJLb25udGUgQ29tbWl0LU9iamVrdCBmw7xyIEhFQUQgbmljaHQgbmFjaHNjaGxhZ2VuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMjMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkZWxldGUgdGhlIGJyYW5jaCAnJXMnIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG9uLiIKIG1zZ3N0ciAiIgotIkthbm4gWndlaWcgJyVzJyBuaWNodCBlbnRmZXJuZW4sIGRhIFNpZSBzaWNoIGdlcmFkZSBhdWYgZGllc2VtIGJlZmluZGVuLiIKKyJLYW5uIEJyYW5jaCAnJXMnIG5pY2h0IGVudGZlcm5lbiwgZGEgU2llIHNpY2ggZ2VyYWRlIGF1ZiBkaWVzZW0gYmVmaW5kZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIzNgorIzogYnVpbHRpbi9icmFuY2guYzoyNDAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVtb3RlIGJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCi1tc2dzdHIgImV4dGVybmVyIFp3ZWlnICclcycgbmljaHQgZ2VmdW5kZW4iCittc2dzdHIgIlJlbW90ZS1CcmFuY2ggJyVzJyBuaWNodCBnZWZ1bmRlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCi1tc2dzdHIgIlp3ZWlnICclcycgbmljaHQgZ2VmdW5kZW4uIgorbXNnc3RyICJCcmFuY2ggJyVzJyBuaWNodCBnZWZ1bmRlbi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUxCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciBkZWxldGluZyByZW1vdGUgYnJhbmNoICclcyciCi1tc2dzdHIgIkZlaGxlciBiZWltIEVudGZlcm5lbiBkZXMgZXh0ZXJuZW4gWndlaWdlcyAnJXMnIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRmZXJuZW4gZGVzIFJlbW90ZS1CcmFuY2hlcyAnJXMnIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjI1MgorIzogYnVpbHRpbi9icmFuY2guYzoyNTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3IgZGVsZXRpbmcgYnJhbmNoICclcyciCi1tc2dzdHIgIkZlaGxlciBiZWltIEVudGZlcm5lbiBkZXMgWndlaWdlcyAnJXMnIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRmZXJuZW4gZGVzIEJyYW5jaGVzICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU5CisjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCi1tc2dzdHIgIkV4dGVybmVyIFp3ZWlnICVzIGVudGZlcm50ICh3YXIgJXMpLlxuIgorbXNnc3RyICJSZW1vdGUtQnJhbmNoICVzIGVudGZlcm50ICh3YXIgJXMpLlxuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjI2MAorIzogYnVpbHRpbi9icmFuY2guYzoyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRGVsZXRlZCBicmFuY2ggJXMgKHdhcyAlcykuXG4iCi1tc2dzdHIgIlp3ZWlnICVzIGVudGZlcm50ICh3YXIgJXMpLlxuIgorbXNnc3RyICJCcmFuY2ggJXMgZW50ZmVybnQgKHdhciAlcykuXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MzYyCisjOiBidWlsdGluL2JyYW5jaC5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBwb2ludCBhdCBhIGNvbW1pdCIKLW1zZ3N0ciAiWndlaWcgJyVzJyB6ZWlndCBhdWYga2VpbmUgVmVyc2lvbiIKK21zZ3N0ciAiQnJhbmNoICclcycgemVpZ3QgYXVmIGtlaW5lbiBDb21taXQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDM0CisjOiBidWlsdGluL2JyYW5jaC5jOjQ1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGJlaGluZCAlZF0iCiBtc2dzdHIgIlslczogJWQgaGludGVyaGVyXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0MzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIltiZWhpbmQgJWRdIgogbXNnc3RyICJbJWQgaGludGVyaGVyXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWRdIgogbXNnc3RyICJbJXM6ICVkIHZvcmF1c10iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDQyCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJbYWhlYWQgJWRdIgogbXNnc3RyICJbJWQgdm9yYXVzXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWQsIGJlaGluZCAlZF0iCiBtc2dzdHIgIlslczogJWQgdm9yYXVzLCAlZCBoaW50ZXJoZXJdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0OAorIzogYnVpbHRpbi9icmFuY2guYzo0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2FoZWFkICVkLCBiZWhpbmQgJWRdIgogbXNnc3RyICJbJWQgdm9yYXVzLCAlZCBoaW50ZXJoZXJdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ3MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTAKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIgKioqKiB1bmfDvGx0aWdlIFJlZmVyZW56ICoqKioiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTYyCisjOiBidWlsdGluL2JyYW5jaC5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCByZWJhc2luZyAlcykiCi1tc2dzdHIgIihrZWluIFp3ZWlnLCBOZXVhdWZiYXUgdm9uIFp3ZWlnICVzIGltIEdhbmdlKSIKK21zZ3N0ciAiKGtlaW4gQnJhbmNoLCBSZWJhc2Ugdm9uIEJyYW5jaCAlcyBpbSBHYW5nZSkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTY1CisjOiBidWlsdGluL2JyYW5jaC5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCBiaXNlY3Qgc3RhcnRlZCBvbiAlcykiCi1tc2dzdHIgIihrZWluIFp3ZWlnLCBOZXVhdWZiYXUgYmVnb25uZW4gYmVpICVzKSIKK21zZ3N0ciAiKGtlaW4gQnJhbmNoLCBiaW7DpHJlIFN1Y2hlIGJlZ29ubmVuIGJlaSAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTY4CisjOiBidWlsdGluL2JyYW5jaC5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIoZGV0YWNoZWQgZnJvbSAlcykiCiBtc2dzdHIgIihsb3NnZWzDtnN0IHZvbiAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTcxCisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogbXNnaWQgIihubyBicmFuY2gpIgotbXNnc3RyICIoa2VpbiBad2VpZykiCittc2dzdHIgIihrZWluIEJyYW5jaCkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjE3CisjOiBidWlsdGluL2JyYW5jaC5jOjYzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKLW1zZ3N0ciAiT2JqZWt0ICclcycgemVpZ3QgYXVmIGtlaW5lIFZlcnNpb24iCittc2dzdHIgIk9iamVrdCAnJXMnIHplaWd0IGF1ZiBrZWluZW4gQ29tbWl0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY0OQorIzogYnVpbHRpbi9icmFuY2guYzo2NjkKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgIktvbm50ZSBlaW5pZ2UgUmVmZXJlbnplbiBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCiBtc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCiBtc2dzdHIgIiIKLSJLYW5uIGFrdHVlbGxlbiBad2VpZyBuaWNodCB1bWJlbmVubmVuLCBzb2xhbmdlIFNpZSBzaWNoIGF1ZiBrZWluZW0gYmVmaW5kZW4uIgorIkthbm4gYWt0dWVsbGVuIEJyYW5jaCBuaWNodCB1bWJlbmVubmVuLCBzb2xhbmdlIFNpZSBzaWNoIGF1ZiBrZWluZW0gYmVmaW5kZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY3MgorIzogYnVpbHRpbi9icmFuY2guYzo2OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKLW1zZ3N0ciAiVW5nw7xsdGlnZXIgWndlaWctTmFtZTogJyVzJyIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgQnJhbmNobmFtZTogJyVzJyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2ODcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3CiBtc2dpZCAiQnJhbmNoIHJlbmFtZSBmYWlsZWQiCi1tc2dzdHIgIlVtYmVuZW5udW5nIGRlcyBad2VpZ2VzIGZlaGxnZXNjaGxhZ2VuIgorbXNnc3RyICJVbWJlbmVubnVuZyBkZXMgQnJhbmNoZXMgZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkxCisjOiBidWlsdGluL2JyYW5jaC5jOjcxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKLW1zZ3N0ciAiZmFsc2NoIGJlbmFubnRlbiBad2VpZyAnJXMnIHVtYmVuYW5udCIKK21zZ3N0ciAiZmFsc2NoIGJlbmFubnRlbiBCcmFuY2ggJyVzJyB1bWJlbmFubnQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njk1CisjOiBidWlsdGluL2JyYW5jaC5jOjcxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgotbXNnc3RyICJad2VpZyB1bWJlbmFubnQgenUgJXMsIGFiZXIgWndlaWdzcGl0emUgKEhFQUQpIGlzdCBuaWNodCBha3R1YWxpc2llcnQhIgorbXNnc3RyICJCcmFuY2ggdW1iZW5hbm50IHp1ICVzLCBhYmVyIEhFQUQgaXN0IG5pY2h0IGFrdHVhbGlzaWVydCEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzAyCisjOiBidWlsdGluL2JyYW5jaC5jOjcyMgogbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiIgotIlp3ZWlnIGlzdCB1bWJlbmFubnQsIGFiZXIgZGllIEFrdHVhbGlzaWVydW5nIGRlciBLb25maWd1cmF0aW9uc2RhdGVpIGlzdCAiCisiQnJhbmNoIGlzdCB1bWJlbmFubnQsIGFiZXIgZGllIEFrdHVhbGlzaWVydW5nIGRlciBLb25maWd1cmF0aW9uc2RhdGVpIGlzdCAiCiAiZmVobGdlc2NobGFnZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxNworIzogYnVpbHRpbi9icmFuY2guYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFsZm9ybWVkIG9iamVjdCBuYW1lICVzIgogbXNnc3RyICJNaXNzZ2ViaWxkZXRlciBPYmpla3RuYW1lICVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc0MQorIzogYnVpbHRpbi9icmFuY2guYzo3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGJyYW5jaCBkZXNjcmlwdGlvbiB0ZW1wbGF0ZTogJXMiCi1tc2dzdHIgIktvbm50ZSBCZXNjaHJlaWJ1bmdzdm9ybGFnZSBmw7xyIFp3ZWlnIG5pY2h0IHNjaHJlaWJlbjogJXMiCittc2dzdHIgIktvbm50ZSBCZXNjaHJlaWJ1bmdzdm9ybGFnZSBmw7xyIEJyYW5jaCBuaWNodCBzY2hyZWliZW46ICVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3MQorIzogYnVpbHRpbi9icmFuY2guYzo3OTEKIG1zZ2lkICJHZW5lcmljIG9wdGlvbnMiCiBtc2dzdHIgIkFsbGdlbWVpbmUgT3B0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzczCisjOiBidWlsdGluL2JyYW5jaC5jOjc5MwogbXNnaWQgInNob3cgaGFzaCBhbmQgc3ViamVjdCwgZ2l2ZSB0d2ljZSBmb3IgdXBzdHJlYW0gYnJhbmNoIgotbXNnc3RyICJaZWlndCBIYXNoIHVuZCBCZXRyZWZmOyAtdnY6IHp1c8OkdHpsaWNoIGV4dGVybmVuIMOcYmVybmFobWV6d2VpZyIKK21zZ3N0ciAiWmVpZ3QgSGFzaCB1bmQgQmV0cmVmZjsgLXZ2OiB6dXPDpHR6bGljaCBVcHN0cmVhbS1CcmFuY2giCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzc0CisjOiBidWlsdGluL2JyYW5jaC5jOjc5NAogbXNnaWQgInN1cHByZXNzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMiCiBtc2dzdHIgInVudGVyZHLDvGNrdCBJbmZvcm1hdGlvbnNtZWxkdW5nZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzc1CisjOiBidWlsdGluL2JyYW5jaC5jOjc5NQogbXNnaWQgInNldCB1cCB0cmFja2luZyBtb2RlIChzZWUgZ2l0LXB1bGwoMSkpIgogbXNnc3RyICJzdGVsbHQgZGVuIMOcYmVybmFobWVtb2R1cyBlaW4gKHNpZWhlIGdpdC1wdWxsKDEpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCi1tc2dzdHIgIsOkbmRlcnQgSW5mb3JtYXRpb25lbiB6dW0gZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnIgorbXNnc3RyICLDpG5kZXJ0IEluZm9ybWF0aW9uZW4genVtIFVwc3RyZWFtLUJyYW5jaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgogbXNnc3RyICJ2ZXJ3ZW5kZXQgZmFyYmxpY2hlIEF1c2dhYmVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4MgorIzogYnVpbHRpbi9icmFuY2guYzo4MDIKIG1zZ2lkICJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgotbXNnc3RyICJ3aXJrdCBhdWYgZXh0ZXJuZSDDnGJlcm5haG1lendlaWdlIgorbXNnc3RyICJ3aXJrdCBhdWYgUmVtb3RlLVRyYWNraW5nLUJyYW5jaGVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4NSBidWlsdGluL2JyYW5jaC5jOjc5MSBidWlsdGluL2JyYW5jaC5jOjgxMgotIzogYnVpbHRpbi9icmFuY2guYzo4MTggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MDUgYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4IGJ1aWx0aW4vY29tbWl0LmM6MTQzMyBidWlsdGluL2NvbW1pdC5jOjE0MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNSBidWlsdGluL2NvbW1pdC5jOjE0MzYgYnVpbHRpbi90YWcuYzo0NjgKIG1zZ2lkICJjb21taXQiCi1tc2dzdHIgIlZlcnNpb24iCittc2dzdHIgIkNvbW1pdCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODYgYnVpbHRpbi9icmFuY2guYzo3OTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA2IGJ1aWx0aW4vYnJhbmNoLmM6ODEyCiBtc2dpZCAicHJpbnQgb25seSBicmFuY2hlcyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKLW1zZ3N0ciAiZ2lidCBudXIgWndlaWdlIGF1cywgd2VsY2hlIGRpZXNlIFZlcnNpb24gYmVpbmhhbHRlbiIKK21zZ3N0ciAiZ2lidCBudXIgQnJhbmNoZXMgYXVzLCB3ZWxjaGUgZGllc2VuIENvbW1pdCBiZWluaGFsdGVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OAorIzogYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJTcGVjaWZpYyBnaXQtYnJhbmNoIGFjdGlvbnM6IgogbXNnc3RyICJzcGV6aWZpc2NoZSBBa3Rpb25lbiBmw7xyIFwiZ2l0LWJyYW5jaFwiOiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE5CiBtc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCi1tc2dzdHIgImxpc3RldCBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UgdW5kIGxva2FsZSBad2VpZ2UgYXVmIgorbXNnc3RyICJsaXN0ZXQgUmVtb3RlLVRyYWNraW5nIHVuZCBsb2thbGUgQnJhbmNoZXMgYXVmIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMQorIzogYnVpbHRpbi9icmFuY2guYzo4MjEKIG1zZ2lkICJkZWxldGUgZnVsbHkgbWVyZ2VkIGJyYW5jaCIKLW1zZ3N0ciAiZW50ZmVybnQgdm9sbHN0w6RuZGlnIHp1c2FtbWVuZ2Vmw7xocnRlbiBad2VpZyIKLQotIzogYnVpbHRpbi9icmFuY2guYzo4MDIKLW1zZ2lkICJkZWxldGUgYnJhbmNoIChldmVuIGlmIG5vdCBtZXJnZWQpIgotbXNnc3RyICJsw7ZzY2h0IFp3ZWlnIChhdWNoIHdlbm4gbmljaHQgenVzYW1tZW5nZWbDvGhydCkiCi0KLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAzCi1tc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCi1tc2dzdHIgInZlcnNjaGllYnQvYmVuZW5udCBlaW5lbiBad2VpZyB1bmQgZGVzc2VuIFJlZmVyZW56cHJvdG9rb2xsIHVtIgotCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNAotbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCi1tc2dzdHIgIiIKLSJ2ZXJzY2hpZWJ0L2JlbmVubnQgZWluZW4gWndlaWcgdW0sIGF1Y2ggd2VubiBkYXMgWmllbCBiZXJlaXRzIGV4aXN0aWVydCIKLQotIzogYnVpbHRpbi9icmFuY2guYzo4MDUKLW1zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKLW1zZ3N0ciAibGlzdGV0IFp3ZWlnbmFtZW4gYXVmIgotCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNgotbXNnaWQgImNyZWF0ZSB0aGUgYnJhbmNoJ3MgcmVmbG9nIgotbXNnc3RyICJlcnpldWd0IGRhcyBSZWZlcmVuenByb3Rva29sbCBkZXMgWndlaWdlcyIKLQotIzogYnVpbHRpbi9icmFuY2guYzo4MDgKLW1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKLW1zZ3N0ciAiYmVhcmJlaXRldCBkaWUgQmVzY2hyZWlidW5nIGbDvHIgZGVuIFp3ZWlnIgotCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOQotbXNnaWQgImZvcmNlIGNyZWF0aW9uICh3aGVuIGFscmVhZHkgZXhpc3RzKSIKLW1zZ3N0ciAiZXJ6ZXVnZSBhdWNoLCB3ZW5uIGRlciBad2VpZyBiZXJlaXRzIGV4aXN0aWVydCIKLQotIzogYnVpbHRpbi9icmFuY2guYzo4MTIKLW1zZ2lkICJwcmludCBvbmx5IG5vdCBtZXJnZWQgYnJhbmNoZXMiCi1tc2dzdHIgImdpYnQgbnVyIFp3ZWlnZSBhdXMsIGRpZSBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCi0KLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4Ci1tc2dpZCAicHJpbnQgb25seSBtZXJnZWQgYnJhbmNoZXMiCi1tc2dzdHIgImdpYnQgbnVyIFp3ZWlnZSBhdXMsIGRpZSB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCittc2dzdHIgImVudGZlcm50IHZvbGxzdMOkbmRpZyB6dXNhbW1lbmdlZsO8aHJ0ZW4gQnJhbmNoIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjgyMgorbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCittc2dzdHIgImzDtnNjaHQgQnJhbmNoIChhdWNoIHdlbm4gbmljaHQgenVzYW1tZW5nZWbDvGhydCkiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCittc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCittc2dzdHIgInZlcnNjaGllYnQvYmVuZW5udCBlaW5lbiBCcmFuY2ggdW5kIGRlc3NlbiBSZWZsb2cgdW0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI0Cittc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2gsIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKK21zZ3N0ciAiIgorInZlcnNjaGllYnQvYmVuZW5udCBlaW5lbiBCcmFuY2ggdW0sIGF1Y2ggd2VubiBkYXMgWmllbCBiZXJlaXRzIGV4aXN0aWVydCIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjUKK21zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKK21zZ3N0ciAibGlzdGV0IEJyYW5jaG5hbWVuIGF1ZiIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjYKK21zZ2lkICJjcmVhdGUgdGhlIGJyYW5jaCdzIHJlZmxvZyIKK21zZ3N0ciAiZXJ6ZXVndCBkYXMgUmVmbG9nIGRlcyBCcmFuY2hlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjgKK21zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKK21zZ3N0ciAiYmVhcmJlaXRldCBkaWUgQmVzY2hyZWlidW5nIGbDvHIgZGVuIEJyYW5jaCIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKK21zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCittc2dzdHIgImVyemV1Z2UgYXVjaCwgd2VubiBkZXIgQnJhbmNoIGJlcmVpdHMgZXhpc3RpZXJ0IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgzMgorbXNnaWQgInByaW50IG9ubHkgbm90IG1lcmdlZCBicmFuY2hlcyIKK21zZ3N0ciAiZ2lidCBudXIgQnJhbmNoZXMgYXVzLCBkaWUgbmljaHQgenVzYW1tZW5nZWbDvGhydCBzaW5kIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAorbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgorbXNnc3RyICJnaWJ0IG51ciBCcmFuY2hlcyBhdXMsIGRpZSB6dXNhbW1lbmdlZsO8aHJ0IHNpbmQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQyCiBtc2dpZCAibGlzdCBicmFuY2hlcyBpbiBjb2x1bW5zIgotbXNnc3RyICJsaXN0ZXQgWndlaWdlIGluIFNwYWx0ZW4gYXVmIgorbXNnc3RyICJsaXN0ZXQgQnJhbmNoZXMgaW4gU3BhbHRlbiBhdWYiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM1CisjOiBidWlsdGluL2JyYW5jaC5jOjg1NQogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlIEhFQUQgYXMgYSB2YWxpZCByZWYuIgotbXNnc3RyICJLb25udGUgWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGFscyBnw7xsdGlnZSBSZWZlcmVueiBhdWZsw7ZzZW4uIgorbXNnc3RyICJLb25udGUgSEVBRCBuaWNodCBhbHMgZ8O8bHRpZ2UgUmVmZXJlbnogYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NDAgYnVpbHRpbi9jbG9uZS5jOjYwOQorIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYzMAogbXNnaWQgIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgd3VyZGUgbmljaHQgdW50ZXIgXCJyZWZzL2hlYWRzXCIgZ2VmdW5kZW4hIgorbXNnc3RyICJIRUFEIHd1cmRlIG5pY2h0IHVudGVyIFwicmVmcy9oZWFkc1wiIGdlZnVuZGVuISIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCiBtc2dpZCAiLS1jb2x1bW4gYW5kIC0tdmVyYm9zZSBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1jb2x1bW4gdW5kIC0tdmVyYm9zZSBzaW5kIGlua29tcGF0aWJlbC4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY5IGJ1aWx0aW4vYnJhbmNoLmM6OTA4CisjOiBidWlsdGluL2JyYW5jaC5jOjg4OSBidWlsdGluL2JyYW5jaC5jOjkyOAogbXNnaWQgImJyYW5jaCBuYW1lIHJlcXVpcmVkIgotbXNnc3RyICJad2VpZ25hbWUgZXJmb3JkZXJsaWNoIgorbXNnc3RyICJCcmFuY2huYW1lIGVyZm9yZGVybGljaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKLW1zZ3N0ciAiIgotInp1IGxvc2dlbMO2c3RlciBad2VpZ3NwaXR6ZSAoSEVBRCkga2FubiBrZWluZSBCZXNjaHJlaWJ1bmcgaGludGVybGVndCB3ZXJkZW4iCittc2dzdHIgInp1IGxvc2dlbMO2c3RlbSBIRUFEIGthbm4ga2VpbmUgQmVzY2hyZWlidW5nIGhpbnRlcmxlZ3Qgd2VyZGVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4OQorIzogYnVpbHRpbi9icmFuY2guYzo5MDkKIG1zZ2lkICJjYW5ub3QgZWRpdCBkZXNjcmlwdGlvbiBvZiBtb3JlIHRoYW4gb25lIGJyYW5jaCIKLW1zZ3N0ciAiQmVzY2hyZWlidW5nIHZvbiBtZWhyIGFscyBlaW5lbSBad2VpZyBrYW5uIG5pY2h0IGJlYXJiZWl0ZXQgd2VyZGVuIgorbXNnc3RyICJCZXNjaHJlaWJ1bmcgdm9uIG1laHIgYWxzIGVpbmVtIEJyYW5jaCBrYW5uIG5pY2h0IGJlYXJiZWl0ZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg5NgorIzogYnVpbHRpbi9icmFuY2guYzo5MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gY29tbWl0IG9uIGJyYW5jaCAnJXMnIHlldC4iCi1tc2dzdHIgIk5vY2gga2VpbmUgVmVyc2lvbiBpbiBad2VpZyAnJXMnLiIKLQotIzogYnVpbHRpbi9icmFuY2guYzo4OTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gYnJhbmNoIG5hbWVkICclcycuIgotbXNnc3RyICJad2VpZyAnJXMnIG5pY2h0IHZvcmhhbmRlbi4iCi0KLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE0Ci1tc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgZm9yIGEgcmVuYW1lIG9wZXJhdGlvbiIKLW1zZ3N0ciAienUgdmllbGUgWndlaWdlIGbDvHIgZWluZSBVbWJlbmVubmVuLU9wZXJhdGlvbiBhbmdlZ2ViZW4iCittc2dzdHIgIk5vY2gga2VpbiBDb21taXQgaW4gQnJhbmNoICclcycuIgogCiAjOiBidWlsdGluL2JyYW5jaC5jOjkxOQotbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCi1tc2dzdHIgInp1IHZpZWxlIFp3ZWlnZSBhbmdlZ2ViZW4gdW0gbmV1ZW4gw5xiZXJuYWhtZXp3ZWlnIHp1IHNldHplbiIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gYnJhbmNoIG5hbWVkICclcycuIgorbXNnc3RyICJCcmFuY2ggJyVzJyBuaWNodCB2b3JoYW5kZW4uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkyMworIzogYnVpbHRpbi9icmFuY2guYzo5MzQKK21zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgorbXNnc3RyICJ6dSB2aWVsZSBCcmFuY2hlcyBmw7xyIGVpbmUgVW1iZW5lbm5lbi1PcGVyYXRpb24gYW5nZWdlYmVuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjkzOQorbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCittc2dzdHIgInp1IHZpZWxlIEJyYW5jaGVzIGFuZ2VnZWJlbiB1bSBVcHN0cmVhbS1CcmFuY2ggenUgc2V0emVuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJLb25udGUga2VpbmVuIG5ldWVuIMOcYmVybmFobWV6d2VpZyB2b24gWndlaWdzcGl0emUgKEhFQUQpIHp1ICVzIHNldHplbixcbiIKLSJkYSBkaWVzZSBhdWYga2VpbmVuIFp3ZWlnIHplaWd0LiIKKyJLb25udGUga2VpbmVuIG5ldWVuIFVwc3RyZWFtLUJyYW5jaCB2b24gSEVBRCB6dSAlcyBzZXR6ZW4sIGRhIGRpZXNlciBhdWZcbiIKKyJrZWluZW4gQnJhbmNoIHplaWd0LiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MjYgYnVpbHRpbi9icmFuY2guYzo5NDggYnVpbHRpbi9icmFuY2guYzo5NzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCi1tc2dzdHIgIktlaW4gc29sY2hlciBad2VpZyAnJXMnIgorbXNnc3RyICJLZWluIHNvbGNoZXIgQnJhbmNoICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTMwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKLW1zZ3N0ciAiWndlaWcgJyVzJyBleGlzdGllcnQgbmljaHQiCittc2dzdHIgIkJyYW5jaCAnJXMnIGV4aXN0aWVydCBuaWNodCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gdW5zZXQgdXBzdHJlYW0iCi1tc2dzdHIgInp1IHZpZWxlIFp3ZWlnZSBhbmdlZ2ViZW4gdW0gS29uZmlndXJhdGlvbiB6dSDDnGJlcm5haG1lendlaWcgenUgZW50ZmVybmVuIgorbXNnc3RyICIiCisienUgdmllbGUgQnJhbmNoZXMgYW5nZWdlYmVuIHVtIEtvbmZpZ3VyYXRpb24genUgVXBzdHJlYW0tQnJhbmNoIHp1IGVudGZlcm5lbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2CiBtc2dpZCAiY291bGQgbm90IHVuc2V0IHVwc3RyZWFtIG9mIEhFQUQgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKLW1zZ3N0ciAiS29ubnRlIEtvbmZpZ3VyYXRpb24genVtIMOcYmVybmFobWV6d2VpZyB2b24gWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0XG4iCi0iZW50ZmVybmVuLCBkYSBkaWVzZSBhdWYga2VpbmVuIFp3ZWlnIHplaWd0LiIKK21zZ3N0ciAiIgorIktvbm50ZSBLb25maWd1cmF0aW9uIHp1IFVwc3RyZWFtLUJyYW5jaCB2b24gSEVBRCBuaWNodCBlbnRmZXJuZW4sIGRhIGRpZXNlclxuIgorImF1ZiBrZWluZW4gQnJhbmNoIHplaWd0LiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIKLW1zZ3N0ciAiWndlaWcgJyVzJyBoYXQga2VpbmVuIGV4dGVybmVuIMOcYmVybmFobWV6d2VpZyBnZXNldHp0IgorbXNnc3RyICJCcmFuY2ggJyVzJyBoYXQga2VpbmVuIFVwc3RyZWFtLUJyYW5jaCBnZXNldHp0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2NworIzogYnVpbHRpbi9icmFuY2guYzo5ODcKIG1zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCiBtc2dzdHIgIidIRUFEJyBkYXJmIG5pY2h0IG1hbnVlbGwgZXJzdGVsbHQgd2VyZGVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3MworIzogYnVpbHRpbi9icmFuY2guYzo5OTMKIG1zZ2lkICItYSBhbmQgLXIgb3B0aW9ucyB0byAnZ2l0IGJyYW5jaCcgZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aCBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC1hIHVuZCAtciBiZWkgJ2dpdCBicmFuY2gnIGvDtm5uZW4gbmljaHQgZ2VtZWltc2FtIG1pdCBlaW5lbSAiCi0iWndlaWduYW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJCcmFuY2huYW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLS1zZXQtdXBzdHJlYW0gZmxhZyBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIENvbnNpZGVyIHVzaW5nIC0tIgpAQCAtMjc4OSw3ICsyOTk5LDcgQEAKICJEaWUgLS1zZXQtdXBzdHJlYW0gT3B0aW9uIGlzdCB2ZXJhbHRldCB1bmQgd2lyZCBlbnRmZXJudC4gQmVudXR6ZW4gU2llIC0tIgogInRyYWNrIG9kZXIgLS1zZXQtdXBzdHJlYW0tdG9cbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0yNzk3LDE1ICszMDA3LDE1IEBACiAiXG4iCiBtc2dzdHIgIiIKICJcbiIKLSJXZW5uIFNpZSB3b2xsdGVuLCBkYXNzICclcycgZGVuIFp3ZWlnICclcycgYWxzIGV4dGVybmVuIMOcYmVybmFobWV6d2VpZyBoYXQsICIKLSJmw7xocmVuIFNpZSBhdXM6XG4iCisiV2VubiBTaWUgd29sbHRlbiwgZGFzcyAnJXMnIGRlbiBCcmFuY2ggJyVzJyBhbHMgVXBzdHJlYW0tQnJhbmNoIGhhdCwgZsO8aHJlbiAiCisiU2llIGF1czpcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NQorIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCiBtc2dzdHIgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCkBAIC0yODE3LDUxICszMDI3LDUxIEBACiAKICM6IGJ1aWx0aW4vYnVuZGxlLmM6NTYKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byBjcmVhdGUgYSBidW5kbGUuIgotbXNnc3RyICJVbSBlaW4gUGFrZXQgenUgZXJzdGVsbGVuIHdpcmQgZWluIFByb2pla3RhcmNoaXYgYmVuw7Z0aWd0LiIKK21zZ3N0ciAiVW0gZWluIFBha2V0IHp1IGVyc3RlbGxlbiB3aXJkIGVpbiBSZXBvc2l0b3J5IGJlbsO2dGlndC4iCiAKICM6IGJ1aWx0aW4vYnVuZGxlLmM6NjAKIG1zZ2lkICJOZWVkIGEgcmVwb3NpdG9yeSB0byB1bmJ1bmRsZS4iCi1tc2dzdHIgIlp1bSBFbnRwYWNrZW4gd2lyZCBlaW4gUHJvamVrdGFyY2hpdiBiZW7DtnRpZ3QuIgorbXNnc3RyICJadW0gRW50cGFja2VuIHdpcmQgZWluIFJlcG9zaXRvcnkgYmVuw7Z0aWd0LiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI0NworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NQogbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDxBcnQ+fC0tdGV4dGNvbnYpIDxPYmpla3Q+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjQ4CisjOiBidWlsdGluL2NhdC1maWxlLmM6Mjg2CiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxMaXN0ZV92b25fT2JqZWt0ZW4+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY2CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzIzCiBtc2dpZCAiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogbXNnc3RyICI8QXJ0PiBrYW5uIHNlaW46IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI0CiBtc2dpZCAic2hvdyBvYmplY3QgdHlwZSIKIG1zZ3N0ciAiemVpZ3QgT2JqZWt0YXJ0IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI1CiBtc2dpZCAic2hvdyBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAiemVpZ3QgT2JqZWt0Z3LDtsOfZSIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3MAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNwogbXNnaWQgImV4aXQgd2l0aCB6ZXJvIHdoZW4gdGhlcmUncyBubyBlcnJvciIKIG1zZ3N0ciAiYmVlbmRldCBtaXQgUsO8Y2tnYWJld2VydCAwLCB3ZW5uIGtlaW4gRmVobGVyIGF1ZmdldHJldGVuIGlzdCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3MQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJhbnNwcmVjaGVuZGUgQW56ZWlnZSBkZXMgT2JqZWt0aW5oYWx0ZXMiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiZsO8aHJ0IGVpbmUgVGV4dGtvbnZlcnRpZXJ1bmcgYXVmIGRlbiBJbmhhbHQgdm9uIEJsb2ItT2JqZWt0ZW4gYXVzIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjc1CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzMyCiBtc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAiQW56ZWlnZSB2b24gSW5mb3JtYXRpb25lbiB1bmQgSW5oYWx0IHZvbiBPYmpla3RlbiwgZ2VsZXNlbiB2b24gZGVyIFN0YW5kYXJkLSIKICJFaW5nYWJlIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjc4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAiQW56ZWlnZSB2b24gSW5mb3JtYXRpb25lbiDDvGJlciBPYmpla3RlLCBnZWxlc2VuIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKQEAgLTI4ODEsNyArMzA5MSw3IEBACiAKICM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjIwCiBtc2dpZCAidXNlIC5naXRhdHRyaWJ1dGVzIG9ubHkgZnJvbSB0aGUgaW5kZXgiCi1tc2dzdHIgInZlcndlbmRldCAuZ2l0YXR0cmlidXRlcyBudXIgdm9uIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAidmVyd2VuZGV0IC5naXRhdHRyaWJ1dGVzIG51ciB2b24gZGVyIFN0YWdpbmctQXJlYSIKIAogIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjEgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyMiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzUKIG1zZ2lkICJyZWFkIGZpbGUgbmFtZXMgZnJvbSBzdGRpbiIKQEAgLTI4OTEsMzggKzMxMDEsNjMgQEAKIG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgogbXNnc3RyICJFaW5nYWJlcGZhZGUgc2luZCBkdXJjaCBlaW4gTlVMIFplaWNoZW4gYWJnZXNjaGxvc3NlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0MSBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInVudGVyZHLDvGNrdCBGb3J0c2Nocml0dHNhbnplaWdlIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICJ6ZWlndCBFaW5nYWJlLVBmYWRlIG9obmUgw5xiZXJlaW5zdGltbXVuZ2VuIgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0MwogbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCiBtc2dzdHIgIkFuZ2FiZSB2b24gUGZhZG5hbWVuIGthbm4gbmljaHQgZ2VtZWluc2FtIG1pdCAtLXN0ZGluIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU0CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgogbXNnaWQgIi16IG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCAtLXN0ZGluIgogbXNnc3RyICJEaWUgT3B0aW9uIC16IGthbm4gbnVyIG1pdCAtLXN0ZGluIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDgKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAia2VpbiBQZmFkIGFuZ2VnZWJlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUyCiBtc2dpZCAiLS1xdWlldCBpcyBvbmx5IHZhbGlkIHdpdGggYSBzaW5nbGUgcGF0aG5hbWUiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1xdWlldCBpc3QgbnVyIG1pdCBlaW5lbSBlaW56ZWxuZW4gUGZhZG5hbWVuIGfDvGx0aWcuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLXF1aWV0IHVuZCAtLXZlcmJvc2Uga8O2bm5lbiBuaWNodCBnZW1laW5zYW0gdmVyd2VuZGV0IHdlcmRlbi4iCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiLS1ub24tbWF0Y2hpbmcgaXN0IG51ciBtaXQgLS12ZXJib3NlIHp1bMOkc3NpZyIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6OAorbXNnaWQgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCittc2dzdHIgImdpdCBjaGVjay1tYWlsbWFwIFtPcHRpb25lbl0gPEtvbnRha3Q+Li4uIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoxMworbXNnaWQgImFsc28gcmVhZCBjb250YWN0cyBmcm9tIHN0ZGluIgorbXNnc3RyICJsaWVzdCBlYmVuZmFsbHMgS29udGFrdGUgdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiCittc2dzdHIgIktvbm50ZSBLb250YWt0ICclcycgbmljaHQgcGFyc2VuLiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6NDcKK21zZ2lkICJubyBjb250YWN0cyBzcGVjaWZpZWQiCittc2dzdHIgImtlaW5lIEtvbnRha3RlIGFuZ2VnZWJlbiIKKwogIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjEyNgogbXNnaWQgImdpdCBjaGVja291dC1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0LWluZGV4IFtPcHRpb25lbl0gWy0tXSBbPERhdGVpPi4uLl0iCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxODcKIG1zZ2lkICJjaGVjayBvdXQgYWxsIGZpbGVzIGluIHRoZSBpbmRleCIKLW1zZ3N0ciAiY2hlY2t0IGFsbGUgRGF0ZWllbiBpbiBkZXIgQmVyZWl0c3RlbGx1bmcgYXVzIgorbXNnc3RyICJjaGVja3QgYWxsZSBEYXRlaWVuIGluIGRlciBTdGFnaW5nLUFyZWEgYXVzIgogCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTg4CiBtc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGV4aXN0aW5nIGZpbGVzIgpAQCAtMjkzMiw3ICszMTY3LDcgQEAKIG1zZ2lkICJubyB3YXJuaW5nIGZvciBleGlzdGluZyBmaWxlcyBhbmQgZmlsZXMgbm90IGluIGluZGV4IgogbXNnc3RyICIiCiAia2VpbmUgV2FybnVuZyBmw7xyIGV4aXN0aWVyZW5kZSBEYXRlaWVuLCB1bmQgRGF0ZWllbiwgZGllIHNpY2ggbmljaHQgaW4gZGVyICIKLSJCZXJlaXRzdGVsbHVuZyBiZWZpbmRlbiIKKyJTdGFnaW5nLUFyZWEgYmVmaW5kZW4iCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTIKIG1zZ2lkICJkb24ndCBjaGVja291dCBuZXcgZmlsZXMiCkBAIC0yOTQwLDcgKzMxNzUsNyBAQAogCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk0CiBtc2dpZCAidXBkYXRlIHN0YXQgaW5mb3JtYXRpb24gaW4gdGhlIGluZGV4IGZpbGUiCi1tc2dzdHIgImFrdHVhbGlzaWVydCBEYXRlaWluZm9ybWF0aW9uZW4gaW4gZGVyIEJlcmVpdHN0ZWxsdW5nc2RhdGVpIgorbXNnc3RyICJha3R1YWxpc2llcnQgRGF0ZWlpbmZvcm1hdGlvbmVuIGluIGRlciBTdGFnaW5nLUFyZWEtRGF0ZWkiCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoyMDAKIG1zZ2lkICJyZWFkIGxpc3Qgb2YgcGF0aHMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCkBAIC0yOTY1LDExMiArMzIwMCwxMTMgQEAKIAogIzogYnVpbHRpbi9jaGVja291dC5jOjI1CiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSA8YnJhbmNoPiIKLW1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtPcHRpb25lbl0gPFp3ZWlnPiIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtPcHRpb25lbl0gPEJyYW5jaD4iCiAKICM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNgogbXNnaWQgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2g+XSAtLSA8ZmlsZT4uLi4iCi1tc2dzdHIgImdpdCBjaGVja291dCBbT3B0aW9uZW5dIFtad2VpZz5dIC0tIDxEYXRlaT4uLi4iCittc2dzdHIgImdpdCBjaGVja291dCBbT3B0aW9uZW5dIFs8QnJhbmNoPl0gLS0gPERhdGVpPi4uLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNiBidWlsdGluL2NoZWNrb3V0LmM6MTQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgb3VyIHZlcnNpb24iCiBtc2dzdHIgIlBmYWQgJyVzJyBoYXQgbmljaHQgdW5zZXJlIFZlcnNpb24uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTkgYnVpbHRpbi9jaGVja291dC5jOjE1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICJQZmFkICclcycgaGF0IG5pY2h0IGRlcmVuIFZlcnNpb24uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTM0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTM1CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIGFsbCBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgIlBmYWQgJyVzJyBoYXQgbmljaHQgYWxsZSBub3R3ZW5kaWdlbiBWZXJzaW9uZW4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTc4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAiUGZhZCAnJXMnIGhhdCBuaWNodCBkaWUgbm90d2VuZGlnZW4gVmVyc2lvbmVuLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE5NQorIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKIG1zZ3N0ciAiUGZhZCAnJXMnOiBrYW5uIG5pY2h0IHp1c2FtbWVuZsO8aHJlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIxMgorIzogYnVpbHRpbi9jaGVja291dC5jOjIxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkIG1lcmdlIHJlc3VsdCBmb3IgJyVzJyIKLW1zZ3N0ciAiS29ubnRlIEVyZ2VibmlzIGRlciBadXNhbW1lbmbDvGhydW5nIHZvbiAnJXMnIG5pY2h0IGhpbnp1ZsO8Z2VuLiIKK21zZ3N0ciAiS29ubnRlIE1lcmdlLUVyZ2VibmlzIHZvbiAnJXMnIG5pY2h0IGhpbnp1ZsO8Z2VuLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIzNiBidWlsdGluL2NoZWNrb3V0LmM6MjM5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDIKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCB1cGRhdGluZyBwYXRocyIKIG1zZ3N0ciAiJyVzJyBrYW5uIG5pY2h0IG1pdCBQZmFkZW4gdmVyd2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI0OCBidWlsdGluL2NoZWNrb3V0LmM6MjUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICInJXMnIGthbm4gbmljaHQgbWl0ICclcycgdmVyd2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS4iCi1tc2dzdHIgIkthbm4gbmljaHQgZ2xlaWNoemVpdGlnIFBmYWRlIGFrdHVhbGlzaWVyZW4gdW5kIHp1IFp3ZWlnICclcycgd2VjaHNlbG4iCittc2dzdHIgIiIKKyJLYW5uIG5pY2h0IGdsZWljaHplaXRpZyBQZmFkZSBha3R1YWxpc2llcmVuIHVuZCB6dSBCcmFuY2ggJyVzJyB3ZWNoc2VsbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI2NSBidWlsdGluL2NoZWNrb3V0LmM6NDU1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjY2IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTgKIG1zZ2lkICJjb3JydXB0IGluZGV4IGZpbGUiCi1tc2dzdHIgImJlc2Now6RkaWd0ZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSIKK21zZ3N0ciAiYmVzY2jDpGRpZ3RlIFN0YWdpbmctQXJlYS1EYXRlaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjMyNiBidWlsdGluL2NoZWNrb3V0LmM6MzMzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MzI5IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGlzIHVubWVyZ2VkIgogbXNnc3RyICJQZmFkICclcycgaXN0IG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnQuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NDc3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCiBtc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCi1tc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBJaHJlIGFrdHVlbGxlIEJlcmVpdHN0ZWxsdW5nIGF1ZmzDtnNlbi4iCittc2dzdHIgIlNpZSBtw7xzc2VuIHp1ZXJzdCBJaHJlIGFrdHVlbGxlIFN0YWdpbmctQXJlYSBhdWZsw7ZzZW4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NTk4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIktvbm50ZSBcInJlZmxvZ1wiIGbDvHIgJyVzJyBuaWNodCBkdXJjaGbDvGhyZW5cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzMQorIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQogbXNnaWQgIkhFQUQgaXMgbm93IGF0IgotbXNnc3RyICJad2VpZ3NwaXR6ZSAoSEVBRCkgaXN0IGpldHp0IGJlaSIKK21zZ3N0ciAiSEVBRCBpc3QgamV0enQgYmVpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjM4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlc2V0IGJyYW5jaCAnJXMnXG4iCi1tc2dzdHIgIlNldHplIFp3ZWlnICclcycgbmV1XG4iCittc2dzdHIgIlNldHplIEJyYW5jaCAnJXMnIG5ldVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICJCZXJlaXRzIGF1ZiAnJXMnXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCi1tc2dzdHIgIkdld2VjaHNlbHQgenUgbmV1IGdlc2V0enRlbSBad2VpZyAnJXMnXG4iCittc2dzdHIgIkdld2VjaHNlbHQgenUgdW1nZXNldHp0ZW4gQnJhbmNoICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NyBidWlsdGluL2NoZWNrb3V0LmM6OTg0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU1IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYSBuZXcgYnJhbmNoICclcydcbiIKLW1zZ3N0ciAiR2V3ZWNoc2VsdCB6dSBlaW5lbSBuZXVlbiBad2VpZyAnJXMnXG4iCittc2dzdHIgIkdld2VjaHNlbHQgenUgZWluZW0gbmV1ZW0gQnJhbmNoICclcydcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgotbXNnc3RyICJHZXdlY2hzZWx0IHp1IFp3ZWlnICclcydcbiIKK21zZ3N0ciAiR2V3ZWNoc2VsdCB6dSBCcmFuY2ggJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzA1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gdW5kICVkIHdlaXRlcmUuXG4iCiAKICMuIFRoZSBzaW5ndWxhciB2ZXJzaW9uCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzExCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXYXJuaW5nOiB5b3UgYXJlIGxlYXZpbmcgJWQgY29tbWl0IGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgpAQCAtMzA4MywxNyArMzMxOSwxNyBAQAogIlxuIgogIiVzXG4iCiBtc2dzdHJbMF0gIiIKLSJXYXJudW5nOiBTaWUgc2luZCB1bSAlZCBWZXJzaW9uIGhpbnRlcmhlciwgbmljaHQgdmVyYnVuZGVuIHp1XG4iCi0iZWluZW0gSWhyZXIgWndlaWdlOlxuIgorIldhcm51bmc6IFNpZSBzaW5kIHVtICVkIENvbW1pdCBoaW50ZXJoZXIsIG5pY2h0IHZlcmJ1bmRlbiB6dVxuIgorImVpbmVtIElocmVyIEJyYW5jaGVzOlxuIgogIlxuIgogIiVzXG4iCiBtc2dzdHJbMV0gIiIKLSJXYXJudW5nOiBTaWUgc2luZCB1bSAlZCBWZXJzaW9uZW4gaGludGVyaGVyLCBuaWNodCB2ZXJidW5kZW4genVcbiIKLSJlaW5lbSBJaHJlciBad2VpZ2U6XG4iCisiV2FybnVuZzogU2llIHNpbmQgdW0gJWQgQ29tbWl0cyBoaW50ZXJoZXIsIG5pY2h0IHZlcmJ1bmRlbiB6dVxuIgorImVpbmVtIElocmVyIEJyYW5jaGVzOlxuIgogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMTAyLDM3MiArMzMzOCw0NzggQEAKICIgZ2l0IGJyYW5jaCBuZXdfYnJhbmNoX25hbWUgJXNcbiIKICJcbiIKIG1zZ3N0ciAiIgotIldlbm4gU2llIGRpZXNlIGR1cmNoIGVpbmVuIG5ldWVuIFp3ZWlnIGJlaGFsdGVuIG3DtmNodGVuLCBkYW5uIGvDtm5udGUgamV0enRcbiIKKyJXZW5uIFNpZSBkaWVzZSBkdXJjaCBlaW5lbiBuZXVlbiBCcmFuY2ggYmVoYWx0ZW4gbcO2Y2h0ZW4sIGRhbm4ga8O2bm50ZSBqZXR6dFxuIgogImVpbiBndXRlciBaZWl0cHVua3Qgc2VpbiBkaWVzIHp1IHR1biBtaXQ6XG4iCiAiXG4iCi0iIGdpdCBicmFuY2ggbmV1ZXJfendlaWdfbmFtZSAlc1xuIgorIiBnaXQgYnJhbmNoIG5ldWVyX2JyYW5jaF9uYW1lICVzXG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjcKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgogbXNnc3RyICJpbnRlcm5lciBGZWhsZXIgaW0gUmV2aXNpb25zZ2FuZyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2MworIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgotbXNnc3RyICJWb3JoZXJpZ2UgUG9zaXRpb24gZGVyIFp3ZWlnc3BpdHplIChIRUFEKSB3YXIiCittc2dzdHIgIlZvcmhlcmlnZSBQb3NpdGlvbiB2b24gSEVBRCB3YXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTAgYnVpbHRpbi9jaGVja291dC5jOjk3OQorIzogYnVpbHRpbi9jaGVja291dC5jOjc5OCBidWlsdGluL2NoZWNrb3V0LmM6OTkyCiBtc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKLW1zZ3N0ciAiU2llIHNpbmQgYXVmIGVpbmVtIFp3ZWlnLCBkZXIgbm9jaCBnZWJvcmVuIHdpcmQiCittc2dzdHIgIlNpZSBzaW5kIGF1ZiBlaW5lbSBCcmFuY2gsIGRlciBub2NoIGdlYm9yZW4gd2lyZCIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJVbmfDvGx0aWdlIFJlZmVyZW56OiAlcyIKIAogIy4gY2FzZSAoMSk6IHdhbnQgYSB0cmVlCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTU0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZmVyZW5jZSBpcyBub3QgYSB0cmVlOiAlcyIKLW1zZ3N0ciAiUmVmZXJlbnogaXN0IGtlaW4gQmF1bTogJXMiCittc2dzdHIgIlJlZmVyZW56IGlzdCBrZWluIFwiVHJlZVwiLU9iamVrdDogJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA2CiBtc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCi1tc2dzdHIgIlBmYWRlIGvDtm5uZW4gbmljaHQgYmVpbSBXZWNoc2VsbiB2b24gWndlaWdlbiB2ZXJ3ZW5kZXQgd2VyZGVuIgorbXNnc3RyICJQZmFkZSBrw7ZubmVuIG5pY2h0IGJlaW0gV2VjaHNlbG4gdm9uIEJyYW5jaGVzIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTYgYnVpbHRpbi9jaGVja291dC5jOjEwMDAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCi1tc2dzdHIgIiclcycga2FubiBuaWNodCBiZWltIFdlY2hzZWxuIHZvbiBad2VpZ2VuIHZlcndlbmRldCB3ZXJkZW4iCittc2dzdHIgIiclcycga2FubiBuaWNodCBiZWltIFdlY2hzZWxuIHZvbiBCcmFuY2hlcyB2ZXJ3ZW5kZXQgd2VyZGVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNCBidWlsdGluL2NoZWNrb3V0LmM6MTAwNyBidWlsdGluL2NoZWNrb3V0LmM6MTAxMgotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAiJyVzJyBrYW5uIG5pY2h0IG1pdCAnJXMnIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKLW1zZ3N0ciAiS2FubiBad2VpZyBuaWNodCB6dSBOaWNodC1WZXJzaW9uICclcycgd2VjaHNlbG4iCittc2dzdHIgIkthbm4gQnJhbmNoIG5pY2h0IHp1IE5pY2h0LUNvbW1pdCAnJXMnIHdlY2hzZWxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0MiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCi1tc2dzdHIgIlp3ZWlnIgorbXNnc3RyICJCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgotbXNnc3RyICJlcnpldWd0IHVuZCBjaGVja3QgZWluZW4gbmV1ZW4gWndlaWcgYXVzIgorbXNnc3RyICJlcnpldWd0IHVuZCBjaGVja3QgZWluZW4gbmV1ZW4gQnJhbmNoIGF1cyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CiBtc2dpZCAiY3JlYXRlL3Jlc2V0IGFuZCBjaGVja291dCBhIGJyYW5jaCIKLW1zZ3N0ciAiZXJ6ZXVndC9zZXR6dCBuZXUgdW5kIGNoZWNrdCBlaW5lbiBad2VpZyBhdXMiCittc2dzdHIgImVyemV1Z3Qvc2V0enQgdW0gdW5kIGNoZWNrdCBlaW5lbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgotbXNnc3RyICJlcnpldWd0IFJlZmVyZW56cHJvdG9rb2xsIGbDvHIgZGVuIG5ldWVuIFp3ZWlnIgorbXNnc3RyICJlcnpldWd0IGRhcyBSZWZsb2cgZsO8ciBkZW4gbmV1ZW4gQnJhbmNoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAKIG1zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgotbXNnc3RyICJzZXR6dCBkaWUgWndlaWdzcGl0emUgKEhFQUQpIHp1IGJlbmFubnRlciBWZXJzaW9uIgorbXNnc3RyICJzZXR6dCBIRUFEIHp1IGJlbmFubnRlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgotbXNnc3RyICJzZXR6dCBJbmZvcm1hdGlvbmVuIHp1bSBleHRlcm5lbiDDnGJlcm5haG1lendlaWcgZsO8ciBkZW4gbmV1ZW4gWndlaWciCittc2dzdHIgInNldHp0IEluZm9ybWF0aW9uZW4genVtIFVwc3RyZWFtLUJyYW5jaCBmw7xyIGRlbiBuZXVlbiBCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyBicmFuY2giCi1tc2dzdHIgIm5ldWVyIFp3ZWlnIgorbXNnc3RyICJuZXVlciBCcmFuY2giCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKLW1zZ3N0ciAibmV1ZXIgWndlaWcgb2huZSBFbHRlcm52ZXJzaW9uIgorbXNnc3RyICJuZXVlciBCcmFuY2ggb2huZSBFbHRlcm4tQ29tbWl0IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrdCB1bnNlcmUgVmFyaWFudGUgZsO8ciBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBEYXRlaWVuIGF1cyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrdCBpaHJlIFZhcmlhbnRlIGbDvHIgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBhdXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAogbXNnaWQgImZvcmNlIGNoZWNrb3V0ICh0aHJvdyBhd2F5IGxvY2FsIG1vZGlmaWNhdGlvbnMpIgogbXNnc3RyICJlcnp3aW5ndCBBdXNjaGVja2VuICh2ZXJ3aXJmdCBsb2thbGUgw4RuZGVydW5nZW4pIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKIG1zZ2lkICJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIKLW1zZ3N0ciAiZsO8aHJ0IGVpbmUgMy1XZWdlLVp1c2FtbWVuZsO8aHJ1bmcgbWl0IGRlbSBuZXVlbiBad2VpZyBhdXMiCittc2dzdHIgImbDvGhydCBlaW5lbiAzLVdlZ2UtTWVyZ2UgbWl0IGRlbSBuZXVlbiBCcmFuY2ggYXVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NyBidWlsdGluL21lcmdlLmM6MjE3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MCBidWlsdGluL21lcmdlLmM6MjMyCiBtc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgogbXNnc3RyICJha3R1YWxpc2llcnQgaWdub3JpZXJ0ZSBEYXRlaWVuIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4IGJ1aWx0aW4vbG9nLmM6MTE0OSBwYXJzZS1vcHRpb25zLmg6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJTdGlsIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJLb25mbGlrdHN0aWwgKG1lcmdlIG9kZXIgZGlmZjMpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKK21zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCittc2dzdHIgIlBmYWRzcGV6aWZpa2F0aW9uZW4gaWdub3JpZXJlbiBFaW5zdGVsbHVuZ2VuIHp1bSBwYXJ0aWVsbGVuIEF1c2NoZWNrZW4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc3CiBtc2dpZCAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogbXNnc3RyICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDg2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMQogbXNnaWQgIi1iLCAtQiBhbmQgLS1vcnBoYW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC1iLCAtQiB1bmQgLS1vcnBoYW4gc2NobGllw59lbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKLW1zZ3N0ciAiQmVpIGRlciBPcHRpb24gLS10cmFjayBtdXNzIGVpbiBad2VpZ25hbWUgYW5nZWdlYmVuIHdlcmRlbi4iCittc2dzdHIgIkJlaSBkZXIgT3B0aW9uIC0tdHJhY2sgbXVzcyBlaW4gQnJhbmNobmFtZSBhbmdlZ2ViZW4gd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTI1CiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgotbXNnc3RyICJWZXJtaXNzZSBad2VpZ25hbWVuOyB2ZXJzdWNoZW4gU2llIC1iIgorbXNnc3RyICJWZXJtaXNzZSBCcmFuY2huYW1lbjsgdmVyc3VjaGVuIFNpZSAtYiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgInVuZ8O8bHRpZ2UgUGZhZHNwZXppZmlrYXRpb24iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUyCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuXG4iCiAiRGlkIHlvdSBpbnRlbmQgdG8gY2hlY2tvdXQgJyVzJyB3aGljaCBjYW4gbm90IGJlIHJlc29sdmVkIGFzIGNvbW1pdD8iCiBtc2dzdHIgIiIKLSJLYW5uIG5pY2h0IGdsZWljaHplaXRpZyBQZmFkZSBha3R1YWxpc2llcmVuIHVuZCB6dSBad2VpZyAnJXMnIHdlY2hzZWxuLlxuIgotIkhhYmVuIFNpZSBiZWFic2ljaHRpZ3QgJyVzJyBhdXN6dWNoZWNrZW4sIHdlbGNoZXIgbmljaHQgYWxzIFZlcnNpb24gIgotImF1ZmdlbMO2c3Qgd2VyZGVuIGthbm4/IgorIkthbm4gbmljaHQgZ2xlaWNoemVpdGlnIFBmYWRlIGFrdHVhbGlzaWVyZW4gdW5kIHp1IEJyYW5jaCAnJXMnIHdlY2hzZWxuLlxuIgorIkhhYmVuIFNpZSBiZWFic2ljaHRpZ3QgJyVzJyBhdXN6dWNoZWNrZW4sIHdlbGNoZXIgbmljaHQgYWxzIENvbW1pdCBhdWZnZWzDtnN0ICIKKyJ3ZXJkZW4ga2Fubj8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIGRvZXMgbm90IHRha2UgYSBwYXRoIGFyZ3VtZW50ICclcyciCiBtc2dzdHIgImdpdCBjaGVja291dDogLS1kZXRhY2ggbmltbXQga2VpbiBQZmFkLUFyZ3VtZW50ICclcyciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIHVuZCAtLW1lcmdlIHNpbmQgaW5rb21wYXRpYmVsIHdlbm5cbiIKLSJTaWUgYXVzIGRlciBCZXJlaXRzdGVsbHVuZyBhdXNjaGVja2VuLiIKKyJTaWUgYXVzIGRlciBTdGFnaW5nLUFyZWEgYXVzY2hlY2tlbi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyMAotbXNnaWQgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCi1tc2dzdHIgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8TXVzdGVyPl0gWy14IHwgLVhdIFstLV0gPFBmYWRlPi4uLiIKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorbXNnaWQgIiIKKyJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCittc2dzdHIgIiIKKyJnaXQgY2xlYW4gWy1kXSBbLWZdIFstaV0gWy1uXSBbLXFdIFstZSA8TXVzdGVyPl0gWy14IHwgLVhdIFstLV0gPFBmYWRlPi4uLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI0CisjOiBidWlsdGluL2NsZWFuLmM6MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAiTMO2c2NoZSAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjUKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMAogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCByZW1vdmUgJXNcbiIKIG1zZ3N0ciAiV8O8cmRlICVzIGzDtnNjaGVuXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKLW1zZ3N0ciAiw5xiZXJzcHJpbmdlIFByb2pla3RhcmNoaXYgJXNcbiIKK21zZ3N0ciAiw5xiZXJzcHJpbmdlIFJlcG9zaXRvcnkgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI3CisjOiBidWlsdGluL2NsZWFuLmM6MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCi1tc2dzdHIgIlfDvHJkZSBQcm9qZWt0YXJjaGl2ICVzIMO8YmVyc3ByaW5nZW5cbiIKK21zZ3N0ciAiV8O8cmRlIFJlcG9zaXRvcnkgJXMgw7xiZXJzcHJpbmdlblxuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjgKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBMw7ZzY2hlbiB2b24gJXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgorbXNnc3RyICIiCisiRWluZ2FiZWhpbGZlOlxuIgorIjEgICAgICAgICAgLSBudW1tZXJpZXJ0ZXMgRWxlbWVudCBhdXN3w6RobGVuXG4iCisiZm9vICAgICAgICAtIEVsZW1lbnQgYW5oYW5kIGVpbmVzIGVpbmRldXRpZ2VuIFByZWZpeCBhdXN3w6RobGVuXG4iCisiICAgICAgICAgICAtIChsZWVyKSBuaWNodHMgYXVzd8OkaGxlbiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjI5NworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgc2luZ2xlIGl0ZW1cbiIKKyIzLTUgICAgICAgIC0gc2VsZWN0IGEgcmFuZ2Ugb2YgaXRlbXNcbiIKKyIyLTMsNi05ICAgIC0gc2VsZWN0IG11bHRpcGxlIHJhbmdlc1xuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiLS4uLiAgICAgICAtIHVuc2VsZWN0IHNwZWNpZmllZCBpdGVtc1xuIgorIiogICAgICAgICAgLSBjaG9vc2UgYWxsIGl0ZW1zXG4iCisiICAgICAgICAgICAtIChlbXB0eSkgZmluaXNoIHNlbGVjdGluZyIKK21zZ3N0ciAiIgorIkVpbmdhYmVoaWxmZTpcbiIKKyIxICAgICAgICAgIC0gZWluemVsbmVzIEVsZW1lbnQgYXVzd8OkaGxlblxuIgorIjMtNSAgICAgICAgLSBCZXJlaWNoIHZvbiBFbGVtZW50ZW4gYXVzd8OkaGxlblxuIgorIjItMyw2LTkgICAgLSBtZWhyZXJlIEJlcmVpY2hlIGF1c3fDpGhsZW5cbiIKKyJmb28gICAgICAgIC0gRWxlbWVudCBhbmhhbmQgZWluZXMgZWluZGV1dGlnZW4gUHJlZml4IGF1c3fDpGhsZW5cbiIKKyItLi4uICAgICAgIC0gYW5nZWdlYmVuZXMgRWxlbWVudCBhYnfDpGhsZW5cbiIKKyIqICAgICAgICAgIC0gYWxsZSBFbGVtZW50ZSBhdXN3w6RobGVuXG4iCisiICAgICAgICAgICAtIChsZWVyKSBBdXN3YWhsIGJlZW5kZW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoICglcyk/IgorbXNnc3RyICJXaWUgYml0dGUgKCVzKT8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgorbXNnc3RyICJJZ25vcmllci1NdXN0ZXIgZWluZ2ViZW4+PiAiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV0FSTklORzogQ2Fubm90IGZpbmQgaXRlbXMgbWF0Y2hlZCBieTogJXMiCittc2dzdHIgIldBUk5VTkc6IEthbm4ga2VpbmUgRWludHLDpGdlIGZpbmRlbiBkaWUgTXVzdGVyIGVudHNwcmVjaGVuOiAlcyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjcxNgorbXNnaWQgIlNlbGVjdCBpdGVtcyB0byBkZWxldGUiCittc2dzdHIgIlfDpGhsZW4gU2llIEVpbnRyw6RnZSB6dW0gTMO2c2NoZW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICVzPyAiCittc2dzdHIgIiclcycgbMO2c2NoZW4/ICIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorbXNnaWQgIkJ5ZS4iCittc2dzdHIgIlRzY2jDvHNzLiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4OQorbXNnaWQgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gc3RhcnQgY2xlYW5pbmdcbiIKKyJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gZXhjbHVkZSBpdGVtcyBmcm9tIGRlbGV0aW9uXG4iCisic2VsZWN0IGJ5IG51bWJlcnMgICAtIHNlbGVjdCBpdGVtcyB0byBiZSBkZWxldGVkIGJ5IG51bWJlcnNcbiIKKyJhc2sgZWFjaCAgICAgICAgICAgIC0gY29uZmlybSBlYWNoIGRlbGV0aW9uIChsaWtlIFwicm0gLWlcIilcbiIKKyJxdWl0ICAgICAgICAgICAgICAgIC0gc3RvcCBjbGVhbmluZ1xuIgorImhlbHAgICAgICAgICAgICAgICAgLSB0aGlzIHNjcmVlblxuIgorIj8gICAgICAgICAgICAgICAgICAgLSBoZWxwIGZvciBwcm9tcHQgc2VsZWN0aW9uIgorbXNnc3RyICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIENsZWFuIHN0YXJ0ZW5cbiIKKyJmaWx0ZXIgYnkgcGF0dGVybiAgIC0gRWludHLDpGdlIHZvbiBMw7ZzY2h1bmcgYXVzc2NobGllw59lblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBBdXN3YWhsIHZvbiBFaW50csOkZ2VuIMO8YmVyIE51bW1lcm5cbiIKKyJhc2sgZWFjaCAgICAgICAgICAgIC0gamVkZSBMw7ZzY2h1bmcgYmVzdMOkdGlnZW4gKHdpZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIENsZWFuIGJlZW5kZW5cbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gZGllc2UgTWVsZHVuZyBhbnplaWdlblxuIgorIj8gICAgICAgICAgICAgICAgICAgLSBIaWxmZSB6dXIgQXVzd2FobCBtaXR0ZWxzIEVpbmdhYmUgYW56ZWlnZW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTYKK21zZ2lkICIqKiogQ29tbWFuZHMgKioqIgorbXNnc3RyICIqKiogS29tbWFuZG9zICoqKiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNworbXNnaWQgIldoYXQgbm93IgorbXNnc3RyICJXYXMgbnVuIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODI1Cittc2dpZCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbToiCittc2dpZF9wbHVyYWwgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW1zOiIKK21zZ3N0clswXSAiV8O8cmRlIGRhcyBmb2xnZW5kZSBFbGVtZW50IGVudGZlcm5lbjoiCittc2dzdHJbMV0gIlfDvHJkZSBkaWUgZm9sZ2VuZGVuIEVsZW1lbnRlIGVudGZlcm5lbjoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiS2VpbmUgRGF0ZWllbiBtZWhyIHp1bSBMw7ZzY2hlbiwgYmVlbmRlLiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3NAogbXNnaWQgImRvIG5vdCBwcmludCBuYW1lcyBvZiBmaWxlcyByZW1vdmVkIgogbXNnc3RyICJnaWJ0IGtlaW5lIE5hbWVuIHZvbiBnZWzDtnNjaHRlbiBEYXRlaWVuIGF1cyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorIzogYnVpbHRpbi9jbGVhbi5jOjg3NgogbXNnaWQgImZvcmNlIgogbXNnc3RyICJlcnp3aW5ndCBBa3Rpb24iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAiaW50ZXJha3RpdmVzIENsZWFuIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc5CiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICJsw7ZzY2h0IGdhbnplIFZlcnplaWNobmlzc2UiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjUgYnVpbHRpbi9kZXNjcmliZS5jOjQxMiBidWlsdGluL2dyZXAuYzo3MTcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQgYnVpbHRpbi9uYW1lLXJldi5jOjIzMSBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIk11c3RlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MQogbXNnaWQgImFkZCA8cGF0dGVybj4gdG8gaWdub3JlIHJ1bGVzIgogbXNnc3RyICJmw7xndCA8TXVzdGVyPiB6dSBkZW4gUmVnZWxuIGbDvHIgaWdub3JpZXJ0ZSBQZmFkZSBoaW56dSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgImzDtnNjaHQgYXVjaCBpZ25vcmllcnRlIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjkKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODQKIG1zZ2lkICJyZW1vdmUgb25seSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJsw7ZzY2h0IG51ciBpZ25vcmllcnRlIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxODcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDIKIG1zZ2lkICIteCBhbmQgLVggY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAteCB1bmQgLVgga8O2bm5lbiBuaWNodCBnZW1laW5zYW0gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgYXVmIFwidHJ1ZVwiIGdlc2V0enQgdW5kIHdlZGVyIC1uIG5vY2ggLWYgZ2VnZWJlbjsgIgotIlPDpHViZXJ1bmcgdmVyd2VpZ2VydCIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHN0YW5kYXJkbcOkw59pZyBhdWYgXCJ0cnVlXCIgZ2VzZXR6dCB1bmQgd2VkZXIgLW4gbm9jaCAtZiAiCi0iZ2VnZWJlbjsgU8OkdWJlcnVuZyB2ZXJ3ZWlnZXJ0IgorImNsZWFuLnJlcXVpcmVGb3JjZSBhdWYgXCJ0cnVlXCIgZ2VzZXR6dCB1bmQgd2VkZXIgLWksIC1uIG5vY2ggLWYgZ2VnZWJlbjsgIgorIlwiY2xlYW5cIiB2ZXJ3ZWlnZXJ0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDkKK21zZ2lkICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgIgorInJlZnVzaW5nIHRvIGNsZWFuIgorbXNnc3RyICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIHN0YW5kYXJkbcOkw59pZyBhdWYgXCJ0cnVlXCIgZ2VzZXR6dCB1bmQgd2VkZXIgLWksIC1uIG5vY2ggLSIKKyJmIGdlZ2ViZW47IFwiY2xlYW5cIiB2ZXJ3ZWlnZXJ0IgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCi1tc2dzdHIgImdpdCBjbG9uZSBbT3B0aW9uZW5dIFstLV0gPFByb2pla3RhcmNoaXY+IFs8VmVyemVpY2huaXM+XSIKK21zZ3N0ciAiZ2l0IGNsb25lIFtPcHRpb25lbl0gWy0tXSA8UmVwb3NpdG9yeT4gWzxWZXJ6ZWljaG5pcz5dIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjUgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMTQKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNgorIzogYnVpbHRpbi9jbG9uZS5jOjY0IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjI5CisjOiBidWlsdGluL3B1c2guYzo0NjIKIG1zZ2lkICJmb3JjZSBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgImVyendpbmd0IEZvcnRzY2hyaXR0c2FuemVpZ2UiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NworIzogYnVpbHRpbi9jbG9uZS5jOjY2CiBtc2dpZCAiZG9uJ3QgY3JlYXRlIGEgY2hlY2tvdXQiCiBtc2dzdHIgImtlaW4gQXVzY2hlY2tlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY4IGJ1aWx0aW4vY2xvbmUuYzo3MCBidWlsdGluL2luaXQtZGIuYzo0ODgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NyBidWlsdGluL2Nsb25lLmM6NjkgYnVpbHRpbi9pbml0LWRiLmM6NDg4CiBtc2dpZCAiY3JlYXRlIGEgYmFyZSByZXBvc2l0b3J5IgotbXNnc3RyICJlcnN0ZWxsdCBlaW4gYmxvw59lcyBQcm9qZWt0YXJjaGl2IgorbXNnc3RyICJlcnN0ZWxsdCBlaW4gQmFyZS1SZXBvc2l0b3J5IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MgogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgotbXNnc3RyICJlcnN0ZWxsdCBlaW4gU3BpZWdlbGFyY2hpdiAoaW1wbGl6aWVydCBibG/Dn2VzIFByb2pla3RhcmNoaXYpIgorbXNnc3RyICJlcnN0ZWxsdCBlaW4gU3BpZWdlbGFyY2hpdiAoaW1wbGl6aWVydCAtLWJhcmUpIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NAogbXNnaWQgInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IgotbXNnc3RyICJ1bSB2b24gZWluZW0gbG9rYWxlbiBQcm9qZWt0YXJjaGl2IHp1IGtsb25lbiIKK21zZ3N0ciAidW0gdm9uIGVpbmVtIGxva2FsZW4gUmVwb3NpdG9yeSB6dSBrbG9uZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCi1tc2dzdHIgInZlcndlbmRldCBsb2thbCBrZWluZSBoYXJ0ZW4gTGlua3MsIGltbWVyIEtvcGllbiIKK21zZ3N0ciAidmVyd2VuZGV0IGxva2FsIGtlaW5lIGhhcnRlbiBWZXJ3ZWlzZSwgaW1tZXIgS29waWVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OAogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgotbXNnc3RyICJFaW5yaWNodHVuZyBhbHMgdmVydGVpbHRlcyBQcm9qZWt0YXJjaGl2IgorbXNnc3RyICJFaW5yaWNodHVuZyBhbHMgdmVydGVpbHRlcyBSZXBvc2l0b3J5IgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODEgYnVpbHRpbi9jbG9uZS5jOjgzCisjOiBidWlsdGluL2Nsb25lLmM6ODAgYnVpbHRpbi9jbG9uZS5jOjgyCiBtc2dpZCAiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIKLW1zZ3N0ciAiaW5pdGlhbGlzaWVydCBVbnRlcnByb2pla3RlIGltIEtsb24iCittc2dzdHIgImluaXRpYWxpc2llcnQgU3VibW9kdWxlIGltIEtsb24iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgIlZvcmxhZ2VudmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICJWZXJ6ZWljaG5pcywgdm9uIHdlbGNoZW0gZGllIFZvcmxhZ2VuIHZlcndlbmRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCi1tc2dzdHIgInJlZmVyZW56aWVydCBQcm9qZWt0YXJjaGl2IgorbXNnc3RyICJyZWZlcmVuemllcnQgUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg4IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NyBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CiBtc2dpZCAibmFtZSIKIG1zZ3N0ciAiTmFtZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg5CisjOiBidWlsdGluL2Nsb25lLmM6ODgKIG1zZ2lkICJ1c2UgPG5hbWU+IGluc3RlYWQgb2YgJ29yaWdpbicgdG8gdHJhY2sgdXBzdHJlYW0iCi1tc2dzdHIgInZlcndlbmRldCA8TmFtZT4gc3RhdHQgJ29yaWdpbicgZsO8ciBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IgorbXNnc3RyICJ2ZXJ3ZW5kZXQgPE5hbWU+IHN0YXR0ICdvcmlnaW4nIGbDvHIgVXBzdHJlYW0tUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkxCisjOiBidWlsdGluL2Nsb25lLmM6OTAKIG1zZ2lkICJjaGVja291dCA8YnJhbmNoPiBpbnN0ZWFkIG9mIHRoZSByZW1vdGUncyBIRUFEIgotbXNnc3RyICIiCi0iY2hlY2t0IDxad2VpZz4gYXVzLCBhbnN0YXR0IFp3ZWlnc3BpdHplIChIRUFEKSBkZXMgZXh0ZXJuZW4gUHJvamVrdGFyY2hpdnMiCittc2dzdHIgImNoZWNrdCA8QnJhbmNoPiBhdXMsIGFuc3RhdHQgSEVBRCBkZXMgUmVtb3RlLVJlcG9zaXRvcmllcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkzCisjOiBidWlsdGluL2Nsb25lLmM6OTIKIG1zZ2lkICJwYXRoIHRvIGdpdC11cGxvYWQtcGFjayBvbiB0aGUgcmVtb3RlIgogbXNnc3RyICJQZmFkIHp1IFwiZ2l0LXVwbG9hZC1wYWNrXCIgYXVmIGRlciBHZWdlbnNlaXRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MgorIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKIG1zZ2lkICJkZXB0aCIKIG1zZ3N0ciAiVGllZmUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk0CiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICJlcnN0ZWxsdCBlaW5lbiBmbGFjaGVuIEtsb24gbWl0IGRpZXNlciBUaWVmZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3CisjOiBidWlsdGluL2Nsb25lLmM6OTYKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCi1tc2dzdHIgImtsb250IG51ciBlaW5lbiBad2VpZywgWndlaWdzcGl0emUgKEhFQUQpIG9kZXIgLS1icmFuY2giCittc2dzdHIgImtsb250IG51ciBlaW5lbiBCcmFuY2gsIEhFQUQgb2RlciAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiLmdpdC1WZXJ6ZWljaG5pcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCi1tc2dzdHIgInNlcGFyaWVydCBHaXQtVmVyemVpY2huaXMgdm9tIEFyYmVpdHNiYXVtIgorbXNnc3RyICJzZXBhcmllcnQgR2l0LVZlcnplaWNobmlzIHZvbSBBcmJlaXRzdmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5OQogbXNnaWQgImtleT12YWx1ZSIKIG1zZ3N0ciAiU2NobMO8c3NlbD1XZXJ0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAxCisjOiBidWlsdGluL2Nsb25lLmM6MTAwCiBtc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgotbXNnc3RyICJzZXR6dCBLb25maWd1cmF0aW9uIGlubmVyaGFsYiBkZXMgbmV1ZW4gUHJvamVrdGFyY2hpdnMiCittc2dzdHIgInNldHp0IEtvbmZpZ3VyYXRpb24gaW5uZXJoYWxiIGRlcyBuZXVlbiBSZXBvc2l0b3JpZXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoyNDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTMKICMsIGMtZm9ybWF0Ci1tc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCBkaXJlY3RvcnkuIgotbXNnc3RyICJSZWZlcmVuemllcnRlcyBQcm9qZWt0YXJjaGl2ICclcycgaXN0IGtlaW4gbG9rYWxlcyBWZXJ6ZWljaG5pcy4iCittc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKK21zZ3N0ciAiUmVmZXJlbnppZXJ0ZXMgUmVwb3NpdG9yeSAnJXMnIGlzdCBrZWluIGxva2FsZXMgUmVwb3NpdG9yeS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMDcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gRXJzdGVsbGVuIHZvbiBWZXJ6ZWljaG5pcyAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzA5IGJ1aWx0aW4vZGlmZi5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6MzE4IGJ1aWx0aW4vZGlmZi5jOjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICclcyciCiBtc2dzdHIgIktvbm50ZSAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzExCisjOiBidWlsdGluL2Nsb25lLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGV4aXN0cyBhbmQgaXMgbm90IGEgZGlyZWN0b3J5IgogbXNnc3RyICIlcyBleGlzdGllcnQgdW5kIGlzdCBrZWluIFZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzI1CisjOiBidWlsdGluL2Nsb25lLmM6MzM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIktvbm50ZSAlcyBuaWNodCBsZXNlblxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzQ3CisjOiBidWlsdGluL2Nsb25lLmM6MzU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgotbXNnc3RyICJLb25udGUgVmVya27DvHBmdW5nICclcycgbmljaHQgZXJzdGVsbGVuIgorbXNnc3RyICJLb25udGUgVmVyd2VpcyAnJXMnIG5pY2h0IGVyc3RlbGxlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM1MQorIzogYnVpbHRpbi9jbG9uZS5jOjM2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY29weSBmaWxlIHRvICclcyciCiBtc2dzdHIgIktvbm50ZSBEYXRlaSBuaWNodCBuYWNoICclcycga29waWVyZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAiRmVydGlnLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzg3CisjOiBidWlsdGluL2Nsb25lLmM6Mzk2CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKQEAgLTM0NzcsOTYgKzM4MTksMTEwIEBACiAiU2llIGvDtm5uZW4gbWl0ICdnaXQgc3RhdHVzJyBwcsO8ZmVuLCB3YXMgYXVzZ2VjaGVja3Qgd29yZGVuIGlzdFxuIgogInVuZCBkYXMgQXVzY2hlY2tlbiBtaXQgJ2dpdCBjaGVja291dCAtZiBIRUFEJyBlcm5ldXQgdmVyc3VjaGVuLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NDY2CisjOiBidWlsdGluL2Nsb25lLmM6NDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHJlbW90ZSBicmFuY2ggJXMgdG8gY2xvbmUuIgotbXNnc3RyICJLb25udGUgenUga2xvbmVuZGVuIGV4dGVybmVyIFp3ZWlnICVzIG5pY2h0IGZpbmRlbi4iCittc2dzdHIgIktvbm50ZSB6dSBrbG9uZW5kZW4gUmVtb3RlLUJyYW5jaCAlcyBuaWNodCBmaW5kZW4uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTQwCisjOiBidWlsdGluL2Nsb25lLmM6NTU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCittc2dzdHIgIlByw7xmZSBLb25uZWt0aXZpdMOkdC4uLiAiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKLW1zZ3N0ciAiRmVybmFyY2hpdiBoYXQgbmljaHQgYWxsZSBlcmZvcmRlcmxpY2hlbiBPYmpla3RlIGdlc2VuZGV0LiIKK21zZ3N0ciAiUmVtb3RlLVJlcG9zaXRvcnkgaGF0IG5pY2h0IGFsbGUgZXJmb3JkZXJsaWNoZW4gT2JqZWt0ZSBnZXNlbmRldC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJGZXJ0aWdcbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjYyMQogbXNnaWQgInJlbW90ZSBIRUFEIHJlZmVycyB0byBub25leGlzdGVudCByZWYsIHVuYWJsZSB0byBjaGVja291dC5cbiIKIG1zZ3N0ciAiIgotIkV4dGVybmUgWndlaWdzcGl0emUgKEhFQUQpIGJlemllaHQgc2ljaCBhdWYgZWluZSBuaWNodCBleGlzdGllcmVuZGUgUmVmZXJlbnogIgotInVuZCBrYW5uIG5pY2h0IGF1c2dlY2hlY2t0IHdlcmRlbi5cbiIKKyJFeHRlcm5lciBIRUFEIGJlemllaHQgc2ljaCBhdWYgZWluZSBuaWNodCBleGlzdGllcmVuZGUgUmVmZXJlbnogdW5kIGthbm4gIgorIm5pY2h0IGF1c2dlY2hlY2t0IHdlcmRlbi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjYzMQorIzogYnVpbHRpbi9jbG9uZS5jOjY1MgogbXNnaWQgInVuYWJsZSB0byBjaGVja291dCB3b3JraW5nIHRyZWUiCi1tc2dzdHIgIkFyYmVpdHNiYXVtIGtvbm50ZSBuaWNodCBhdXNnZWNoZWNrdCB3ZXJkZW4iCittc2dzdHIgIkFyYmVpdHN2ZXJ6ZWljaG5pcyBrb25udGUgbmljaHQgYXVzZ2VjaGVja3Qgd2VyZGVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzM5CisjOiBidWlsdGluL2Nsb25lLmM6NzYwCiBtc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKIG1zZ3N0ciAiWnUgdmllbGUgQXJndW1lbnRlLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc0MworIzogYnVpbHRpbi9jbG9uZS5jOjc2NAogbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKLW1zZ3N0ciAiU2llIG3DvHNzZW4gZWluIFByb2pla3RhcmNoaXYgenVtIEtsb25lbiBhbmdlYmVuLiIKK21zZ3N0ciAiU2llIG3DvHNzZW4gZWluIFJlcG9zaXRvcnkgenVtIEtsb25lbiBhbmdlYmVuLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1NAorIzogYnVpbHRpbi9jbG9uZS5jOjc3NQogIywgYy1mb3JtYXQKIG1zZ2lkICItLWJhcmUgYW5kIC0tb3JpZ2luICVzIG9wdGlvbnMgYXJlIGluY29tcGF0aWJsZS4iCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWJhcmUgdW5kIC0tb3JpZ2luICVzIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1NworIzogYnVpbHRpbi9jbG9uZS5jOjc3OAogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1iYXJlIHVuZCAtLXNlcGFyYXRlLWdpdC1kaXIgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcwCisjOiBidWlsdGluL2Nsb25lLmM6NzkxCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlcG9zaXRvcnkgJyVzJyBkb2VzIG5vdCBleGlzdCIKLW1zZ3N0ciAiUHJvamVrdGFyY2hpdiAnJXMnIGV4aXN0aWVydCBuaWNodC4iCittc2dzdHIgIlJlcG9zaXRvcnkgJyVzJyBleGlzdGllcnQgbmljaHQuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzc1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk2CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uIC0tZGVwdGggd2lyZCBpbiBsb2thbGVuIEtsb25lbiBpZ25vcmllcnQ7IGJlbnV0emVuIFNpZSAiCiAic3RhdHRkZXNzZW4gZmlsZTovLyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc4NQorIzogYnVpbHRpbi9jbG9uZS5jOjc5OAorbXNnaWQgIi0tbG9jYWwgaXMgaWdub3JlZCIKK21zZ3N0ciAiLS1sb2NhbCB3aXJkIGlnbm9yaWVydCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICJaaWVscGZhZCAnJXMnIGV4aXN0aWVydCBiZXJlaXRzIHVuZCBpc3Qga2VpbiBsZWVyZXMgVmVyemVpY2huaXMuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzk1CisjOiBidWlsdGluL2Nsb25lLmM6ODE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKLW1zZ3N0ciAiQXJiZWl0c2JhdW0gJyVzJyBleGlzdGllcnQgYmVyZWl0cy4iCittc2dzdHIgIkFyYmVpdHN2ZXJ6ZWljaG5pcyAnJXMnIGV4aXN0aWVydCBiZXJlaXRzLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwOCBidWlsdGluL2Nsb25lLmM6ODIwCisjOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCiBtc2dzdHIgIktvbm50ZSBmw7xocmVuZGUgVmVyemVpY2huaXNzZSB2b24gJyVzJyBuaWNodCBlcnN0ZWxsZW4uIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODExCisjOiBidWlsdGluL2Nsb25lLmM6ODM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgd29yayB0cmVlIGRpciAnJXMnLiIKIG1zZ3N0ciAiS29ubnRlIEFyYmVpdHN2ZXJ6ZWljaG5pcyAnJXMnIG5pY2h0IGVyc3RlbGxlbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvIGJhcmUgcmVwb3NpdG9yeSAnJXMnLi4uXG4iCi1tc2dzdHIgIktsb25lIGluIGJsb8OfZXMgUHJvamVrdGFyY2hpdiAnJXMnLi4uXG4iCittc2dzdHIgIktsb25lIGluIEJhcmUtUmVwb3NpdG9yeSAnJXMnLi4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKIG1zZ3N0ciAiS2xvbmUgbmFjaCAnJXMnLi4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4OTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gY2xvbmUgJXMiCiBtc2dzdHIgIldlacOfIG5pY2h0IHdpZSAlcyB6dSBrbG9uZW4gaXN0LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkxNgorIzogYnVpbHRpbi9jbG9uZS5jOjk0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKLW1zZ3N0ciAiZXh0ZXJuZXIgWndlaWcgJXMgbmljaHQgaW0gYW5kZXJlbiBQcm9qZWt0YXJjaGl2ICVzIGdlZnVuZGVuIgorbXNnc3RyICJSZW1vdGUtQnJhbmNoICVzIG5pY2h0IGltIFVwc3RyZWFtLVJlcG9zaXRvcnkgJXMgZ2VmdW5kZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgotbXNnc3RyICJTaWUgc2NoZWluZW4gZWluIGxlZXJlcyBQcm9qZWt0YXJjaGl2IGdla2xvbnQgenUgaGFiZW4uIgorbXNnc3RyICJTaWUgc2NoZWluZW4gZWluIGxlZXJlcyBSZXBvc2l0b3J5IGdla2xvbnQgenUgaGFiZW4uIgogCiAjOiBidWlsdGluL2NvbHVtbi5jOjkKIG1zZ2lkICJnaXQgY29sdW1uIFtvcHRpb25zXSIKQEAgLTM2MDAsMTUgKzM5NTYsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1jb21tYW5kIG11c3MgYW4gZXJzdGVyIFN0ZWxsZSBzdGVoZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0CisjOiBidWlsdGluL2NvbW1pdC5jOjM1CiBtc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgY29tbWl0IFtPcHRpb25lbl0gWy0tXSA8UGZhZHNwZXppZmlrYXRpb24+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjQwCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFtPcHRpb25lbl0gWy0tXSA8UGZhZHNwZXppZmlrYXRpb24+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjQ1CiBtc2dpZCAiIgogIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgogIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKQEAgLTM2MjksMTI5ICszOTg1LDE0NCBAQAogIiAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSBcIklociBOYW1lXCJcbiIKICIgICAgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsIGlocmVAZW1haWxhZHJlc3NlLmRlXG4iCiAiXG4iCi0iTmFjaGRlbSBTaWUgZGFzIGdldGFuIGhhc3QsIGvDtm5uZW4gU2llIElocmUgSWRlbnRpdMOkdCBmw7xyIGRpZXNlIFZlcnNpb24gIgorIk5hY2hkZW0gU2llIGRhcyBnZXRhbiBoYXN0LCBrw7ZubmVuIFNpZSBJaHJlIElkZW50aXTDpHQgZsO8ciBkaWVzZW4gQ29tbWl0ICIKICLDpG5kZXJuIG1pdDpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcKIG1zZ2lkICIiCiAiWW91IGFza2VkIHRvIGFtZW5kIHRoZSBtb3N0IHJlY2VudCBjb21taXQsIGJ1dCBkb2luZyBzbyB3b3VsZCBtYWtlXG4iCiAiaXQgZW1wdHkuIFlvdSBjYW4gcmVwZWF0IHlvdXIgY29tbWFuZCB3aXRoIC0tYWxsb3ctZW1wdHksIG9yIHlvdSBjYW5cbiIKICJyZW1vdmUgdGhlIGNvbW1pdCBlbnRpcmVseSB3aXRoIFwiZ2l0IHJlc2V0IEhFQUReXCIuXG4iCiBtc2dzdHIgIiIKLSJTaWUgZnJhZ3RlbiBkaWUgasO8bmdzdGUgVmVyc2lvbiBuYWNoenViZXNzZXJuLCBhYmVyIGRhcyB3w7xyZGUgZGllc2UgbGVlclxuIgotIm1hY2hlbi4gU2llIGvDtm5uZW4gSWhyIEtvbW1hbmRvIG1pdCAtLWFsbG93LWVtcHR5IHdpZWRlcmhvbGVuLCBvZGVyIGRpZVxuIgotIlZlcnNpb24gbWl0IFwiZ2l0IHJlc2V0IEhFQUReXCIgdm9sbHN0w6RuZGlnIGVudGZlcm5lbi5cbiIKKyJTaWUgZnJhZ3RlbiBkZW4gasO8bmdzdGVuIENvbW1pdCBuYWNoenViZXNzZXJuLCBhYmVyIGRhcyB3w7xyZGUgZGllc2VuIGxlZXJcbiIKKyJtYWNoZW4uIFNpZSBrw7ZubmVuIElociBLb21tYW5kbyBtaXQgLS1hbGxvdy1lbXB0eSB3aWVkZXJob2xlbiwgb2RlciBkaWVzZW5cbiIKKyJDb21taXQgbWl0IFwiZ2l0IHJlc2V0IEhFQUReXCIgdm9sbHN0w6RuZGlnIGVudGZlcm5lbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MgogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCiAiRGVyIGxldHp0ZSBcImNoZXJyeS1waWNrXCIgaXN0IGpldHp0IGxlZXIsIG3DtmdsaWNoZXJ3ZWlzZSBkdXJjaCBlaW5lICIKICJLb25mbGlrdGF1ZmzDtnN1bmcuXG4iCi0iV2VubiBTaWUgZGllcyB0cm90emRlbSBlaW50cmFnZW4gd29sbGVuLCBiZW51dHplbiBTaWU6XG4iCisiV2VubiBTaWUgZGllcyB0cm90emRlbSBjb21taXR0ZW4gd29sbGVuLCBiZW51dHplbiBTaWU6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIkFuZGVybmZhbGxzIGJlbnV0emVuIFNpZSBiaXR0ZSAnZ2l0IHJlc2V0J1xuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjI2MAorIzogYnVpbHRpbi9jb21taXQuYzo2OQorbXNnaWQgIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgorbXNnc3RyICJBbmRlcm5mYWxscyBiZW51dHplbiBTaWUgYml0dGUgJ2dpdCByZXNldCdcbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MgorbXNnaWQgIiIKKyJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlRoZW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIHdpbGwgcmVzdW1lIGNoZXJyeS1waWNraW5nXG4iCisidGhlIHJlbWFpbmluZyBjb21taXRzLlxuIgorbXNnc3RyICIiCisiV2VubiBTaWUgZGllc2VuIENvbW1pdCBhdXNsYXNzZW4gbcO2Y2h0ZW4sIGJlbnV0emVuIFNpZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiQmVudXR6ZW4gU2llIGFuc2NobGllw59lbmQgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiLCB1bSBkaWVcbiIKKyJDaGVycnktUGljay1PcGVyYXRpb24gbWl0IGRlbiB2ZXJibGVpYmVuZGVuIENvbW1pdHMgZm9ydHp1c2V0emVuLlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjI3OQogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRW50cGFja2VuIGRlcyBCYXVtLU9iamVrdGVzIGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkuIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFbnRwYWNrZW4gZGVzIFwiVHJlZVwiLU9iamVrdGVzIHZvbiBIRUFELiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIxCiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCi1tc2dzdHIgIktvbm50ZSB0ZW1wb3LDpHJlIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IGVyc3RlbGxlbi4iCittc2dzdHIgIktvbm50ZSB0ZW1wb3LDpHJlIFN0YWdpbmctQXJlYSBuaWNodCBlcnN0ZWxsZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwOAorIzogYnVpbHRpbi9jb21taXQuYzozMjcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICJpbnRlcmFrdGl2ZXMgSGluenVmw7xnZW4gZmVobGdlc2NobGFnZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzQxIGJ1aWx0aW4vY29tbWl0LmM6MzYyIGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjM2MCBidWlsdGluL2NvbW1pdC5jOjM4MSBidWlsdGluL2NvbW1pdC5jOjQzMQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAiS29ubnRlIG5ld19pbmRleCBEYXRlaSBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkzCisjOiBidWlsdGluL2NvbW1pdC5jOjQxMgogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKLW1zZ3N0ciAiIgotIkthbm4ga2VpbmUgcGFydGllbGxlIEVpbnRyYWd1bmcgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgaW0gIgotIkdhbmdlIGlzdC4iCittc2dzdHIgIkthbm4ga2VpbmVuIFRlaWwtQ29tbWl0IGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluIE1lcmdlIGltIEdhbmdlIGlzdC4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6Mzk1CisjOiBidWlsdGluL2NvbW1pdC5jOjQxNAogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIGNoZXJyeS1waWNrLiIKIG1zZ3N0ciAiIgotIkthbm4ga2VpbmUgcGFydGllbGxlIEVpbnRyYWd1bmcgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBcImNoZXJyeS1waWNrXCIgaW0gIgotIkdhbmdlIGlzdC4iCisiS2FubiBrZWluZW4gVGVpbC1Db21taXQgZHVyY2hmw7xocmVuLCB3w6RocmVuZCBcImNoZXJyeS1waWNrXCIgaW0gR2FuZ2UgaXN0LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgotbXNnc3RyICJLYW5uIEJlcmVpdHN0ZWxsdW5nIG5pY2h0IGxlc2VuIgorbXNnc3RyICJLYW5uIFN0YWdpbmctQXJlYSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgotbXNnc3RyICJLb25udGUgdGVtcG9yw6RyZSBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBuaWNodCBzY2hyZWliZW4uIgorbXNnc3RyICJLb25udGUgdGVtcG9yw6RyZSBTdGFnaW5nLUFyZWEtRGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1MTMgYnVpbHRpbi9jb21taXQuYzo1MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTM1IGJ1aWx0aW4vY29tbWl0LmM6NTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgY29tbWl0OiAlcyIKLW1zZ3N0ciAiVW5nw7xsdGlnZSBWZXJzaW9uOiAlcyIKK21zZ3N0ciAiVW5nw7xsdGlnZXIgQ29tbWl0OiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTYzCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAiRmVobGVyaGFmdGVyIC0tYXV0aG9yIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCi1tc2dzdHIgIkZlaGxlcmhhZnRlIElkZW50aWZpa2F0aW9ucy1TdHJpbmc6ICclcyciCittc2dzdHIgIkZlaGxlcmhhZnRlciBJZGVudC1TdHJpbmc6ICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjAwIGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vY29tbWl0LmM6OTU2CisjOiBidWlsdGluL2NvbW1pdC5jOjYyMSBidWlsdGluL2NvbW1pdC5jOjY1NCBidWlsdGluL2NvbW1pdC5jOjk4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgbG9va3VwIGNvbW1pdCAlcyIKLW1zZ3N0ciAiS29ubnRlIFZlcnNpb24gJXMgbmljaHQgbmFjaHNjaGxhZ2VuIgorbXNnc3RyICJLb25udGUgQ29tbWl0ICVzIG5pY2h0IG5hY2hzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MgorIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICIobGVzZSBMb2ctTmFjaHJpY2h0IHZvbiBTdGFuZGFyZC1FaW5nYWJlKVxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxNAorIzogYnVpbHRpbi9jb21taXQuYzo2MzUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZnJvbSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiS29ubnRlIExvZyBuaWNodCB2b24gU3RhbmRhcmQtRWluZ2FiZSBsZXNlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjE4CisjOiBidWlsdGluL2NvbW1pdC5jOjYzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgogbXNnc3RyICJLb25udGUgTG9nLURhdGVpICclcycgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjI0CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NQogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKLW1zZ3N0ciAiVmVyc2lvbiBoYXQgZWluZSBsZWVyZSBCZXNjaHJlaWJ1bmciCittc2dzdHIgIkNvbW1pdCBoYXQgZWluZSBsZWVyZSBCZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQwCisjOiBidWlsdGluL2NvbW1pdC5jOjY2MQogbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01TRyIKIG1zZ3N0ciAiS29ubnRlIE1FUkdFX01TRyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKIG1zZ3N0ciAiS29ubnRlIFNRVUFTSF9NU0cgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjY2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnJXMnIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMwCiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGNvbW1pdCB0ZW1wbGF0ZSIKLW1zZ3N0ciAiS29ubnRlIFZlcnNpb25zdm9ybGFnZSBuaWNodCBzY2hyZWliZW4iCittc2dzdHIgIktvbm50ZSBDb21taXQtVm9ybGFnZSBuaWNodCBzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzIwCisjOiBidWlsdGluL2NvbW1pdC5jOjc0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zNzYxLDEyICs0MTMyLDEyIEBACiAiYW5kIHRyeSBhZ2Fpbi5cbiIKIG1zZ3N0ciAiIgogIlxuIgotIkVzIHNpZWh0IHNvIGF1cywgYWxzIHRyYWdlbiBTaWUgZWluZSBadXNhbW1lbmbDvGhydW5nIGVpbi5cbiIKKyJFcyBzaWVodCBzbyBhdXMsIGFscyBjb21taXR0ZW4gU2llIGVpbmVuIE1lcmdlLlxuIgogIkZhbGxzIGRhcyBuaWNodCBrb3JyZWt0IGlzdCwgbMO2c2NoZW4gU2llIGJpdHRlIGRpZSBEYXRlaVxuIgogIlx0JXNcbiIKICJ1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzI1CisjOiBidWlsdGluL2NvbW1pdC5jOjc0NgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zNzc2LDQwNiArNDE0Nyw0MDYgQEAKICJhbmQgdHJ5IGFnYWluLlxuIgogbXNnc3RyICIiCiAiXG4iCi0iRXMgc2llaHQgc28gYXVzLCBhbHMgdHJhZ2VuIFNpZSBlaW4gXCJjaGVycnktcGlja1wiIGVpbi5cbiIKKyJFcyBzaWVodCBzbyBhdXMsIGFscyBjb21taXR0ZW4gU2llIGVpbmVuIFwiY2hlcnJ5LXBpY2tcIi5cbiIKICJGYWxscyBkYXMgbmljaHQga29ycmVrdCBpc3QsIGzDtnNjaGVuIFNpZSBiaXR0ZSBkaWUgRGF0ZWlcbiIKICJcdCVzXG4iCiAidW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczNworIzogYnVpbHRpbi9jb21taXQuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKICJ3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLCBhbmQgYW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgotIkJpdHRlIGdlYmVuIFNpZSBlaW5lIFZlcnNpb25zYmVzY2hyZWlidW5nIGbDvHIgSWhyZSDDhG5kZXJ1bmdlbiBlaW4uIFplaWxlbixcbiIKLSJkaWUgbWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBpZ25vcmllcnQsIHVuZCBlaW5lIGxlZXJlICIKLSJWZXJzaW9uc2Jlc2NocmVpYnVuZ1xuIgotImJyaWNodCBkaWUgRWludHJhZ3VuZyBhYi5cbiIKKyJCaXR0ZSBnZWJlbiBTaWUgZWluZSBDb21taXQtQmVzY2hyZWlidW5nIGbDvHIgSWhyZSDDhG5kZXJ1bmdlbiBlaW4uIFplaWxlbixcbiIKKyJkaWUgbWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBpZ25vcmllcnQsIHVuZCBlaW5lIGxlZXJlIEJlc2NocmVpYnVuZ1xuIgorImJyaWNodCBkZW4gQ29tbWl0IGFiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIzogYnVpbHRpbi9jb21taXQuYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKICJ3aXRoICclYycgd2lsbCBiZSBrZXB0OyB5b3UgbWF5IHJlbW92ZSB0aGVtIHlvdXJzZWxmIGlmIHlvdSB3YW50IHRvLlxuIgogIkFuIGVtcHR5IG1lc3NhZ2UgYWJvcnRzIHRoZSBjb21taXQuXG4iCiBtc2dzdHIgIiIKLSJCaXR0ZSBnZWJlbiBTaWUgZWluZSBWZXJzaW9uc2Jlc2NocmVpYnVuZyBmw7xyIElocmUgw4RuZGVydW5nZW4gZWluLiBaZWlsZW4sICIKKyJCaXR0ZSBnZWJlbiBTaWUgZWluZSBDb21taXQtQmVzY2hyZWlidW5nIGbDvHIgSWhyZSDDhG5kZXJ1bmdlbiBlaW4uIFplaWxlbiwgIgogImRpZVxuIgogIm1pdCAnJWMnIGJlZ2lubmVuLCB3ZXJkZW4gYmVpYmVoYWx0ZW47IHdlbm4gU2llIG3DtmNodGVuLCBrw7ZubmVuIFNpZSBkaWVzZSAiCiAiZW50ZmVybmVuLlxuIgotIkVpbmUgbGVlcmUgVmVyc2lvbnNiZXNjaHJlaWJ1bmcgYnJpY2h0IGRpZSBFaW50cmFndW5nIGFiLlxuIgorIkVpbmUgbGVlcmUgQmVzY2hyZWlidW5nIGJyaWNodCBkZW4gQ29tbWl0IGFiLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1NQorIzogYnVpbHRpbi9jb21taXQuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNBdXRob3I6ICAgICVzIgogbXNnc3RyICIlc0F1dG9yOiAgICAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQ29tbWl0dGVyOiAlcyIKLW1zZ3N0ciAiJXNFaW50cmFnZW5kZXI6ICVzIgorbXNnc3RyICIlc0NvbW1pdC1FcnN0ZWxsZXI6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MgorIzogYnVpbHRpbi9jb21taXQuYzo4MDMKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKLW1zZ3N0ciAiS2FubiBCZXJlaXRzdGVsbHVuZyBuaWNodCBsZXNlbiIKK21zZ3N0ciAiS2FubiBTdGFnaW5nLUFyZWEgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODE5CisjOiBidWlsdGluL2NvbW1pdC5jOjg0NQogbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgotbXNnc3RyICJGZWhsZXIgYmVpbSBFcnpldWdlbiBkZXIgWndlaWdlIgorbXNnc3RyICJGZWhsZXIgYmVpbSBFcnpldWdlbiBkZXIgXCJUcmVlXCItT2JqZWt0ZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKLW1zZ3N0ciAiQml0dGUgbGllZmVyZSBlaW5lIEJlc2NocmVpYnVuZyBlbnR3ZWRlciBtaXQgZGVyIE9wdGlvbiAtbSBvZGVyIC1GLlxuIgorbXNnc3RyICIiCisiQml0dGUgbGllZmVybiBTaWUgZWluZSBCZXNjaHJlaWJ1bmcgZW50d2VkZXIgbWl0IGRlciBPcHRpb24gLW0gb2RlciAtRi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIktlaW4gZXhpc3RpZXJlbmRlciBBdXRvciBtaXQgJyVzJyBnZWZ1bmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTQ2IGJ1aWx0aW4vY29tbWl0LmM6MTE0MAorIzogYnVpbHRpbi9jb21taXQuYzo5NzIgYnVpbHRpbi9jb21taXQuYzoxMjA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdW50cmFja2VkIGZpbGVzIG1vZGUgJyVzJyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgTW9kdXMgJyVzJyBmw7xyIHVuYmVvYmFjaHRldGUgRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwOQorbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiRGllIE9wdGlvbmVuIC0tbG9uZyB1bmQgLXogc2luZCBpbmtvbXBhdGliZWwuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzkKIG1zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAiRGllIE9wdGlvbmVuIC0tcmVzZXQtYXV0aG9yIHVuZCAtLWF1dGhvciBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTg3CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTAKIG1zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKLW1zZ3N0ciAiU2llIGhhYmVuIG5pY2h0cyB6dW0gbmFjaGJlc3Nlcm4uIgorbXNnc3RyICJTaWUgaGFiZW4gbmljaHRzIGbDvHIgXCItLWFtZW5kXCIuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKLW1zZ3N0ciAiRWluZSBadXNhbW1lbmbDvGhydW5nIGlzdCBpbSBHYW5nZSAtLSBrYW5uIG5pY2h0IG5hY2hiZXNzZXJuLiIKK21zZ3N0ciAiRWluIE1lcmdlIGlzdCBpbSBHYW5nZSAtLSBrYW5uIFwiLS1hbWVuZFwiIG5pY2h0IGF1c2bDvGhyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMDU1CiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKLW1zZ3N0ciAiXCJjaGVycnktcGlja1wiIGlzdCBpbSBHYW5nZSAtLSBrYW5uIG5pY2h0IG5hY2hiZXNzZXJuLiIKK21zZ3N0ciAiXCJjaGVycnktcGlja1wiIGlzdCBpbSBHYW5nZSAtLSBrYW5uIFwiLS1hbWVuZFwiIG5pY2h0IGF1c2bDvGhyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CiBtc2dpZCAiT3B0aW9ucyAtLXNxdWFzaCBhbmQgLS1maXh1cCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLXNxdWFzaCB1bmQgLS1maXh1cCBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKIG1zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiRXMga2FubiBudXIgZWluZSBPcHRpb24gdm9uIC1jLy1DLy1GLy0tZml4dXAgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworIzogYnVpbHRpbi9jb21taXQuYzoxMDcwCiBtc2dpZCAiT3B0aW9uIC1tIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIC1jLy1DLy1GLy0tZml4dXAuIgogbXNnc3RyICJEaWUgT3B0aW9uIC1tIGthbm4gbmljaHQgbWl0IC1jLy1DLy1GLy0tZml4dXAga29tYmluaWVydCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uIC0tcmVzZXQtLWF1dGhvciBrYW5uIG51ciBtaXQgLUMsIC1jIG9kZXIgLS1hbWVuZCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKICJFcyBrYW5uIG51ciBlaW5lIE9wdGlvbiB2b24gLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2ggIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NwogbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLWluY2x1ZGUgdW5kIC0tb25seSBrw7ZubmVuIG51ciBtaXQgZGVyIEFuZ2FiZSB2b24gUGZhZGVuICIKICJ2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTkKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgogbXNnc3RyICIiCi0iS2x1Zy4uLiBkaWUgbGV0enRlIFZlcnNpb24gbWl0IGVpbmVyIHVuc2F1YmVyZW4gQmVyZWl0c3RlbGx1bmcgbmFjaGJlc3Nlcm4uIgorIktsdWcuLi4gZGVuIGxldHp0ZW4gQ29tbWl0IG1pdCBlaW5lciBnZcOkbmRlcnRlbiBTdGFnaW5nLUFyZWEgbmFjaGJlc3Nlcm4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMQogbXNnaWQgIkV4cGxpY2l0IHBhdGhzIHNwZWNpZmllZCB3aXRob3V0IC1pIG5vciAtbzsgYXNzdW1pbmcgLS1vbmx5IHBhdGhzLi4uIgogbXNnc3RyICIiCiAiRXhwbGl6aXRlIFBmYWRlIG9obmUgLWkgb2RlciAtbyBhbmdlZ2ViZW47IHVudGVyIGRlciBBbm5haG1lIHZvbiAtLW9ubHkgIgogIlBmYWRlbi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDQ4IGJ1aWx0aW4vdGFnLmM6NTc1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2VyIFwiY2xlYW51cFwiIE1vZHVzICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExNgogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLWEga2FubiBudXIgbWl0IGRlciBBbmdhYmUgdm9uIFBmYWRlbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDU5IGJ1aWx0aW4vY29tbWl0LmM6MTE5NAotbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKLW1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tbG9uZyB1bmQgLXogc2luZCBpbmtvbXBhdGliZWwuIgotCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTQgYnVpbHRpbi9jb21taXQuYzoxMzkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjIgYnVpbHRpbi9jb21taXQuYzoxNDU1CiBtc2dpZCAic2hvdyBzdGF0dXMgY29uY2lzZWx5IgogbXNnc3RyICJ6ZWlndCBTdGF0dXMgaW0gS3VyemZvcm1hdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU2IGJ1aWx0aW4vY29tbWl0LmM6MTM5MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI0IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NwogbXNnaWQgInNob3cgYnJhbmNoIGluZm9ybWF0aW9uIgotbXNnc3RyICJ6ZWlndCBad2VpZ2luZm9ybWF0aW9uZW4iCittc2dzdHIgInplaWd0IEJyYW5jaGluZm9ybWF0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1OCBidWlsdGluL2NvbW1pdC5jOjEzOTQgYnVpbHRpbi9wdXNoLmM6NDI2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjYgYnVpbHRpbi9jb21taXQuYzoxNDU5IGJ1aWx0aW4vcHVzaC5jOjQ1MgogbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgogbXNnc3RyICJtYXNjaGluZW5sZXNiYXJlIEF1c2dhYmUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2MSBidWlsdGluL2NvbW1pdC5jOjEzOTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyOSBidWlsdGluL2NvbW1pdC5jOjE0NjEKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCiBtc2dzdHIgInplaWd0IFN0YXR1cyBpbSBMYW5nZm9ybWF0IChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAic2NobGllw590IEVpbnRyw6RnZSBtaXQgTlVMLVplaWNoZW4gYWIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NiBidWlsdGluL2NvbW1pdC5jOjE0MDIgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1MwotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1NiBidWlsdGluL3RhZy5jOjQ1OQorIzogYnVpbHRpbi9jb21taXQuYzoxMjM0IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NyBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY3CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcwIGJ1aWx0aW4vdGFnLmM6NDU5CiBtc2dpZCAibW9kZSIKIG1zZ3N0ciAiTW9kdXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NyBidWlsdGluL2NvbW1pdC5jOjE0MDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKICJ6ZWlndCBuaWNodCBiZW9iYWNodGV0ZSBEYXRlaWVuLCBvcHRpb25hbGUgTW9kaTogYWxsLCBub3JtYWwsIG5vLiAoU3RhbmRhcmQ6ICIKICJhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOAogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiemVpZ3QgaWdub3JpZXJ0ZSBEYXRlaWVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzEgcGFyc2Utb3B0aW9ucy5oOjE1MQorIzogYnVpbHRpbi9jb21taXQuYzoxMjM5IHBhcnNlLW9wdGlvbnMuaDoxNTQKIG1zZ2lkICJ3aGVuIgogbXNnc3RyICJ3YW5uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MAogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgotImlnbm9yaWVydCDDhG5kZXJ1bmdlbiBpbiBVbnRlcnByb2pla3Rlbiwgb3B0aW9uYWwgd2VubjogYWxsLCBkaXJ0eSwgIgotInVudHJhY2tlZC4gKFN0YW5kYXJkOiBhbGwpIgorImlnbm9yaWVydCDDhG5kZXJ1bmdlbiBpbiBTdWJtb2R1bGVuLCBvcHRpb25hbCB3ZW5uOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKKyIoU3RhbmRhcmQ6IGFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCiBtc2dpZCAibGlzdCB1bnRyYWNrZWQgZmlsZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAibGlzdGV0IHVuYmVvYmFjaHRldGUgRGF0ZWllbiBpbiBTcGFsdGVuIGF1ZiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTMKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgotbXNnc3RyICJLb25udGUgbmV1IGVyc3RlbGx0ZSBWZXJzaW9uIG5pY2h0IG5hY2hzY2hsYWdlbi4iCittc2dzdHIgIktvbm50ZSBuZXUgZXJzdGVsbHRlbiBDb21taXQgbmljaHQgbmFjaHNjaGxhZ2VuLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCi1tc2dzdHIgIktvbm50ZSBuZXVsaWNoIGVyc3RlbGx0ZSBWZXJzaW9uIG5pY2h0IGFuYWx5c2llcmVuLiIKK21zZ3N0ciAiS29ubnRlIG5ldWxpY2ggZXJzdGVsbHRlbiBDb21taXQgbmljaHQgYW5hbHlzaWVyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1NgogbXNnaWQgImRldGFjaGVkIEhFQUQiCi1tc2dzdHIgImxvc2dlbMO2c3RlIFp3ZWlnc3BpdHplIChIRUFEKSIKK21zZ3N0ciAibG9zZ2Vsw7ZzdGVyIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MworIzogYnVpbHRpbi9jb21taXQuYzoxMzU4CiBtc2dpZCAiIChyb290LWNvbW1pdCkiCi1tc2dzdHIgIiAoQmFzaXMtVmVyc2lvbikiCittc2dzdHIgIiAoQmFzaXMtQ29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgotbXNnc3RyICJ1bnRlcmRyw7xja3QgWnVzYW1tZW5mYXNzdW5nIG5hY2ggZXJmb2xncmVpY2hlciBFaW50cmFndW5nIgorbXNnc3RyICJ1bnRlcmRyw7xja3QgWnVzYW1tZW5mYXNzdW5nIG5hY2ggZXJmb2xncmVpY2hlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDI2CiBtc2dpZCAic2hvdyBkaWZmIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgotbXNnc3RyICJ6ZWlndCBVbnRlcnNjaGllZGUgaW4gVmVyc2lvbnNiZXNjaHJlaWJ1bmdzdm9ybGFnZSBhbiIKK21zZ3N0ciAiemVpZ3QgVW50ZXJzY2hpZWRlIGluIENvbW1pdC1CZXNjaHJlaWJ1bmdzdm9ybGFnZSBhbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKIG1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIFZlcnNpb25zYmVzY2hyZWlidW5nIgorbXNnc3RyICJPcHRpb25lbiBmw7xyIENvbW1pdC1CZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDI5IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAibGllc3QgQmVzY2hyZWlidW5nIHZvbiBEYXRlaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKIG1zZ2lkICJhdXRob3IiCiBtc2dzdHIgIkF1dG9yIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgotbXNnc3RyICLDvGJlcnNjaHJlaWJ0IEF1dG9yIHZvbiBWZXJzaW9uIgorbXNnc3RyICLDvGJlcnNjaHJlaWJ0IEF1dG9yIGVpbmVzIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAogbXNnaWQgImRhdGUiCiBtc2dzdHIgIkRhdHVtIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQogbXNnaWQgIm92ZXJyaWRlIGRhdGUgZm9yIGNvbW1pdCIKLW1zZ3N0ciAiw7xiZXJzY2hyZWlidCBEYXR1bSB2b24gVmVyc2lvbiIKK21zZ3N0ciAiw7xiZXJzY2hyZWlidCBEYXR1bSBlaW5lcyBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcgYnVpbHRpbi9tZXJnZS5jOjIwOCBidWlsdGluL25vdGVzLmM6NTMzCi0jOiBidWlsdGluL25vdGVzLmM6NjkwIGJ1aWx0aW4vdGFnLmM6NDU1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzIgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CisjOiBidWlsdGluL25vdGVzLmM6NTYyIGJ1aWx0aW4vdGFnLmM6NDU1CiBtc2dpZCAibWVzc2FnZSIKIG1zZ3N0ciAiQmVzY2hyZWlidW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgotbXNnc3RyICJWZXJzaW9uc2Jlc2NocmVpYnVuZyIKK21zZ3N0ciAiQ29tbWl0LUJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzMKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKLW1zZ3N0ciAidmVyd2VuZGV0IHdpZWRlciB1bmQgZWRpdGllcnQgQmVzY2hyZWlidW5nIHZvbiBkZXIgYW5nZWdlYmVuZW4gVmVyc2lvbiIKK21zZ3N0ciAidmVyd2VuZGV0IHdpZWRlciB1bmQgZWRpdGllcnQgQmVzY2hyZWlidW5nIGRlcyBhbmdlZ2ViZW5lbiBDb21taXRzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNAogbXNnaWQgInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgotbXNnc3RyICJ2ZXJ3ZW5kZXQgQmVzY2hyZWlidW5nIGRlciBhbmdlZ2ViZW5lbiBWZXJzaW9uIHdpZWRlciIKK21zZ3N0ciAidmVyd2VuZGV0IEJlc2NocmVpYnVuZyBkZXMgYW5nZWdlYmVuZW4gQ29tbWl0cyB3aWVkZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgotInZlcndlbmRldCBlaW5lIGF1dG9tYXRpc2NoIHp1c2FtbWVuZ2VzZXR6dGUgQmVzY2hyZWlidW5nIHp1bSBOYWNoYmVzc2VybiBkZXIgIgotImFuZ2VnZWJlbmVuIFZlcnNpb24iCisidmVyd2VuZGV0IGVpbmUgYXV0b21hdGlzY2ggenVzYW1tZW5nZXNldHp0ZSBCZXNjaHJlaWJ1bmcgenVtIE5hY2hiZXNzZXJuIGRlcyAiCisiYW5nZWdlYmVuZW4gQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgotInZlcndlbmRldCBlaW5lIGF1dG9tYXRpc2NoIHp1c2FtbWVuZ2VzZXR6dGUgQmVzY2hyZWlidW5nIHp1bSBadXNhbW1lbmbDvGhyZW4gIgotImRlciBhbmdlZ2ViZW5lbiBWZXJzaW9uIgorInZlcndlbmRldCBlaW5lIGF1dG9tYXRpc2NoIHp1c2FtbWVuZ2VzZXR6dGUgQmVzY2hyZWlidW5nIGJlaW0gXCJzcXVhc2hcIiBkZXMgIgorImFuZ2VnZWJlbmVuIENvbW1pdHMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDM3CiBtc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKLW1zZ3N0ciAiU2V0enQgU2llIGFscyBBdXRvciBkZXIgVmVyc2lvbiAodmVyd2VuZGV0IG1pdCAtQy8tYy8tLWFtZW5kKSIKK21zZ3N0ciAiU2V0enQgU2llIGFscyBBdXRvciBkZXMgQ29tbWl0cyAodmVyd2VuZGV0IG1pdCAtQy8tYy8tLWFtZW5kKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzczIGJ1aWx0aW4vbG9nLmM6MTEwNCBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM4IGJ1aWx0aW4vbG9nLmM6MTE2MCBidWlsdGluL3JldmVydC5jOjExMQogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAiZsO8Z3QgJ1NpZ25lZC1vZmYtYnk6Jy1aZWlsZSBoaW56dSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzkKIG1zZ2lkICJ1c2Ugc3BlY2lmaWVkIHRlbXBsYXRlIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBhbmdlZ2ViZW5lIFZvcmxhZ2VuZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQwCiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCi1tc2dzdHIgImVyendpbmd0IEJlYXJiZWl0dW5nIGRlciBWZXJzaW9uIgorbXNnc3RyICJlcnp3aW5ndCBCZWFyYmVpdHVuZyBkZXMgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICJTdGFuZGFyZCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2IGJ1aWx0aW4vdGFnLmM6NDYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEgYnVpbHRpbi90YWcuYzo0NjAKIG1zZ2lkICJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIgogbXNnc3RyICIiCiAid2llIExlZXJ6ZWljaGVuIHVuZCAjS29tbWVudGFyZSB2b24gZGVyIEJlc2NocmVpYnVuZyBnZXRyZW5udCB3ZXJkZW4gc29sbGVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgotbXNnc3RyICJmw7xndCBTdGF0dXMgaW4gZGllIFZlcnNpb25zYmVzY2hyZWlidW5nc3ZvcmxhZ2UgZWluIgorbXNnc3RyICJmw7xndCBTdGF0dXMgaW4gZGllIENvbW1pdC1CZXNjaHJlaWJ1bmdzdm9ybGFnZSBlaW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3OCBidWlsdGluL21lcmdlLmM6MjE1IGJ1aWx0aW4vdGFnLmM6NDYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDMgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQogbXNnaWQgImtleSBpZCIKIG1zZ3N0ciAiU2NobMO8c3NlbC1JRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc5IGJ1aWx0aW4vbWVyZ2UuYzoyMTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NCBidWlsdGluL21lcmdlLmM6MjMxCiBtc2dpZCAiR1BHIHNpZ24gY29tbWl0IgotbXNnc3RyICJzaWduaWVydCBWZXJzaW9uIG1pdCBHUEciCittc2dzdHIgInNpZ25pZXJ0IENvbW1pdCBtaXQgR1BHIgogCiAjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucwotIzogYnVpbHRpbi9jb21taXQuYzoxMzgyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDcKIG1zZ2lkICJDb21taXQgY29udGVudHMgb3B0aW9ucyIKLW1zZ3N0ciAiT3B0aW9uZW4gZsO8ciBWZXJzaW9uc2luaGFsdCIKK21zZ3N0ciAiT3B0aW9uZW4gZsO8ciBDb21taXQtSW5oYWx0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OAogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKLW1zZ3N0ciAidHLDpGd0IGFsbGUgZ2XDpG5kZXJ0ZW4gRGF0ZWllbiBlaW4iCittc2dzdHIgImNvbW1pdHRldCBhbGxlIGdlw6RuZGVydGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgotbXNnc3RyICJ0csOkZ3QgZGllIGFuZ2VnZWJlbmVuIERhdGVpZW4genVzw6R0emxpY2ggenVyIEJlcmVpdHN0ZWxsdW5nIGVpbiIKK21zZ3N0ciAibWVya3QgZGllIGFuZ2VnZWJlbmVuIERhdGVpZW4genVzw6R0emxpY2ggenVtIENvbW1pdCB2b3IiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgImludGVyYWt0aXZlcyBIaW56dWbDvGdlbiB2b24gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTEKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICJpbnRlcmFrdGl2ZXMgSGluenVmw7xnZW4gdm9uIMOEbmRlcnVuZ2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgogbXNnaWQgImNvbW1pdCBvbmx5IHNwZWNpZmllZCBmaWxlcyIKLW1zZ3N0ciAidHLDpGd0IG51ciBkaWUgYW5nZWdlYmVuZW4gRGF0ZWllbiBlaW4iCittc2dzdHIgImNvbW1pdHRldCBudXIgZGllIGFuZ2VnZWJlbmVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAidW1nZWh0IFwicHJlLWNvbW1pdCBob29rXCIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU0CiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKLW1zZ3N0ciAiemVpZ3QgYW4sIHdhcyBlaW5nZXRyYWdlbiB3ZXJkZW4gd8O8cmRlIgorbXNnc3RyICJ6ZWlndCBhbiwgd2FzIGNvbW1pdHRldCB3ZXJkZW4gd8O8cmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NQogbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKLW1zZ3N0ciAiw6RuZGVydCB2b3JoZXJpZ2UgVmVyc2lvbiIKK21zZ3N0ciAiw6RuZGVydCB2b3JoZXJpZ2VuIENvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjYKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgInVtZ2VodCBcInBvc3QtcmV3cml0ZSBob29rXCIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxCiBtc2dpZCAib2sgdG8gcmVjb3JkIGFuIGVtcHR5IGNoYW5nZSIKIG1zZ3N0ciAiZXJsYXVidCBBdWZ6ZWljaG51bmcgZWluZXIgbGVlcmVuIMOEbmRlcnVuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJlcmxhdWJ0IEF1ZnplaWNobnVuZyBlaW5lciDDhG5kZXJ1bmcgbWl0IGVpbmVyIGxlZXJlbiBCZXNjaHJlaWJ1bmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNTA3CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgotbXNnc3RyICJLb25udGUgVmVyc2lvbiBkZXIgWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGFuYWx5c2llcmVuLiIKK21zZ3N0ciAiS29ubnRlIENvbW1pdCB2b24gSEVBRCBuaWNodCBhbmFseXNpZXJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3OSBidWlsdGluL21lcmdlLmM6NTEwCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NDUgYnVpbHRpbi9tZXJnZS5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCB6dW0gTGVzZW4gw7ZmZm5lbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvcnJ1cHQgTUVSR0VfSEVBRCBmaWxlICglcykiCiBtc2dzdHIgIkJlc2Now6RkaWd0ZSBNRVJHRV9IRUFELURhdGVpICglcykiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MworIzogYnVpbHRpbi9jb21taXQuYzoxNTU5CiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAiS29ubnRlIE1FUkdFX01PREUgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUxMgorIzogYnVpbHRpbi9jb21taXQuYzoxNTc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKLW1zZ3N0ciAiS29ubnRlIFZlcnNpb25zYmVzY2hyZWlidW5nIG5pY2h0IGxlc2VuOiAlcyIKK21zZ3N0ciAiS29ubnRlIENvbW1pdC1CZXNjaHJlaWJ1bmcgbmljaHQgbGVzZW46ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCi1tc2dzdHIgIkVpbnRyYWd1bmcgYWJnZWJyb2NoZW47IFNpZSBoYWJlbiBkaWUgQmVzY2hyZWlidW5nIG5pY2h0IGVkaXRpZXJ0LlxuIgorbXNnc3RyICJDb21taXQgYWJnZWJyb2NoZW47IFNpZSBoYWJlbiBkaWUgQmVzY2hyZWlidW5nIG5pY2h0IGVkaXRpZXJ0LlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQgZHVlIHRvIGVtcHR5IGNvbW1pdCBtZXNzYWdlLlxuIgotbXNnc3RyICJFaW50cmFndW5nIGF1ZmdydW5kIGxlZXJlciBWZXJzaW9uc2Jlc2NocmVpYnVuZyBhYmdlYnJvY2hlbi5cbiIKK21zZ3N0ciAiQ29tbWl0IGF1ZmdydW5kIGxlZXJlciBCZXNjaHJlaWJ1bmcgYWJnZWJyb2NoZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlcyBWZXJzaW9uc29iamVrdGVzLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gU2NocmVpYmVuIGRlcyBDb21taXQtT2JqZWt0ZXMuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzMwogbXNnaWQgImNhbm5vdCBsb2NrIEhFQUQgcmVmIgotbXNnc3RyICJLYW5uIFJlZmVyZW56IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgc3BlcnJlbi4iCittc2dzdHIgIkthbm4gUmVmZXJlbnogdm9uIEhFQUQgbmljaHQgc3BlcnJlbi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNjM3CiBtc2dpZCAiY2Fubm90IHVwZGF0ZSBIRUFEIHJlZiIKLW1zZ3N0ciAiS2FubiBSZWZlcmVueiBkZXIgWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGFrdHVhbGlzaWVyZW4uIgorbXNnc3RyICJLYW5uIFJlZmVyZW56IHZvbiBIRUFEIG5pY2h0IGFrdHVhbGlzaWVyZW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTY0OAogbXNnaWQgIiIKICJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKICJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCiAibm90IGV4Y2VlZGVkLCBhbmQgdGhlbiBcImdpdCByZXNldCBIRUFEXCIgdG8gcmVjb3Zlci4iCiBtc2dzdHIgIiIKLSJEYXMgUHJvamVrdGFyY2hpdiB3dXJkZSBha3R1YWxpc2llcnQsIGFiZXIgZGllIFwibmV3X2luZGV4XCItRGF0ZWlcbiIKKyJEYXMgUmVwb3NpdG9yeSB3dXJkZSBha3R1YWxpc2llcnQsIGFiZXIgZGllIFwibmV3X2luZGV4XCItRGF0ZWlcbiIKICJrb25udGUgbmljaHQgZ2VzY2hyaWViZW4gd2VyZGVuLiBQcsO8ZmVuIFNpZSwgZGFzcyBJaHJlIEZlc3RwbGF0dGUgbmljaHRcbiIKICJ2b2xsIHVuZCBJaHIgS29udGluZ2VudCBuaWNodCBhdWZnZWJyYXVjaHQgaXN0IHVuZCBmw7xocmVuIFNpZVxuIgogImFuc2NobGllw59lbmQgXCJnaXQgcmVzZXQgSEVBRFwiIHp1IFdpZWRlcmhlcnN0ZWxsdW5nIGF1cy4iCkBAIC00MTg0LDI4OSArNDU1NSwzMDEgQEAKIG1zZ2lkICJnaXQgY29uZmlnIFtvcHRpb25zXSIKIG1zZ3N0ciAiZ2l0IGNvbmZpZyBbT3B0aW9uZW5dIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUxCisjOiBidWlsdGluL2NvbmZpZy5jOjUyCiBtc2dpZCAiQ29uZmlnIGZpbGUgbG9jYXRpb24iCiBtc2dzdHIgIk9ydCBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MgorIzogYnVpbHRpbi9jb25maWcuYzo1MwogbXNnaWQgInVzZSBnbG9iYWwgY29uZmlnIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBnbG9iYWxlIEtvbmZpZ3VyYXRpb25zZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgc3lzdGVtd2VpdGUgS29uZmlndXJhdGlvbnNkYXRlaSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NAotbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgotbXNnc3RyICJ2ZXJ3ZW5kZXQgS29uZmlndXJhdGlvbnNkYXRlaSBkZXMgUHJvamVrdGFyY2hpdnMiCi0KICM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKK21zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKK21zZ3N0ciAidmVyd2VuZGV0IEtvbmZpZ3VyYXRpb25zZGF0ZWkgZGVzIFJlcG9zaXRvcmllcyIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NgogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAidmVyd2VuZGV0IGRpZSBhbmdlZ2ViZW5lIEtvbmZpZ3VyYXRpb25zZGF0ZWkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJibG9iLWlkIgorbXNnc3RyICJCbG9iLUlkIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAicmVhZCBjb25maWcgZnJvbSBnaXZlbiBibG9iIG9iamVjdCIKK21zZ3N0ciAibGllc3QgS29uZmlndXJhdGlvbiB2b24gYW5nZWdlYmVuZW0gQmxvYi1PYmpla3QiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKIG1zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIkFrdGlvbiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NworIzogYnVpbHRpbi9jb25maWcuYzo1OQogbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJnaWJ0IFdlcnQgenVyw7xjazogTmFtZSBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKIG1zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImdpYnQgYWxsZSBXZXJ0ZSB6dXLDvGNrOiBTY2hsw7xzc2VsIFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OQorIzogYnVpbHRpbi9jb25maWcuYzo2MQogbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJnaWJ0IFdlcnRlIGbDvHIgZGVuIHJlZ3Vsw6RyZW4gQXVzZHJ1Y2sgenVyw7xjazogTmFtZS1yZWdleCBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKIG1zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKIG1zZ3N0ciAiZXJzZXR6dCBhbGxlIHBhc3NlbmRlbiBWYXJpYWJsZW46IE5hbWUgV2VydCBbV2VydC1yZWdleF0gIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYxCisjOiBidWlsdGluL2NvbmZpZy5jOjYzCiBtc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgogbXNnc3RyICJmw7xndCBuZXVlIFZhcmlhYmxlIGhpbnp1OiBOYW1lIFdlcnQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKIG1zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJlbnRmZXJudCBlaW5lIFZhcmlhYmxlOiBOYW1lIFtXZXJ0LXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MworIzogYnVpbHRpbi9jb25maWcuYzo2NQogbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJlbnRmZXJudCBhbGxlIMOcYmVyZWluc3RpbW11bmdlbjogTmFtZSBbV2VydC1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKIG1zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCiBtc2dzdHIgImJlbmVubnQgZWluZSBTZWt0aW9uIHVtOiBhbHRlci1OYW1lIG5ldWVyLU5hbWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKIG1zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgogbXNnc3RyICJlbnRmZXJudCBlaW5lIFNla3Rpb246IE5hbWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAibGlzdGV0IGFsbGVzIGF1ZiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NworIzogYnVpbHRpbi9jb25maWcuYzo2OQogbXNnaWQgIm9wZW4gYW4gZWRpdG9yIgogbXNnc3RyICLDtmZmbmV0IGVpbmVuIEVkaXRvciIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OCBidWlsdGluL2NvbmZpZy5jOjY5CisjOiBidWlsdGluL2NvbmZpZy5jOjcwIGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJzbG90IgogbXNnc3RyICJTbG90IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4CisjOiBidWlsdGluL2NvbmZpZy5jOjcwCiBtc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICJmaW5kZXQgZGllIGtvbmZpZ3VyaWVydGUgRmFyYmU6IFtTdGFuZGFyZF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCiBtc2dzdHIgImZpbmRldCBkaWUgRmFyYmVpbnN0ZWxsdW5nOiBbU3RhbmRhcmQtQXVzZ2FiZS1pc3QtVGVybWluYWxdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcwCisjOiBidWlsdGluL2NvbmZpZy5jOjcyCiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAiVHlwIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjczCiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICJXZXJ0IGlzdCBcInRydWVcIiBvZGVyIFwiZmFsc2VcIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MgorIzogYnVpbHRpbi9jb25maWcuYzo3NAogbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICJXZXJ0IGlzdCBlaW5lIERlemltYWx6YWhsIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjczCisjOiBidWlsdGluL2NvbmZpZy5jOjc1CiBtc2dpZCAidmFsdWUgaXMgLS1ib29sIG9yIC0taW50IgogbXNnc3RyICJXZXJ0IGlzdCAtLWJvb2wgb2RlciAtLWludCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NAorIzogYnVpbHRpbi9jb25maWcuYzo3NgogbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCiBtc2dzdHIgIldlcnQgaXN0IGVpbiBQZmFkIChEYXRlaSBvZGVyIFZlcnplaWNobmlzbmFtZSkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKIG1zZ2lkICJPdGhlciIKIG1zZ3N0ciAiU29uc3RpZ2VzIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc2CisjOiBidWlsdGluL2NvbmZpZy5jOjc4CiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICJzY2hsaWXDn3QgV2VydGUgbWl0IE5VTC1CeXRlIGFiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjc5CiBtc2dpZCAicmVzcGVjdCBpbmNsdWRlIGRpcmVjdGl2ZXMgb24gbG9va3VwIgogbXNnc3RyICJiZWFjaHRldCBcImluY2x1ZGVcIi1EaXJla3RpdmVuIGJlaW0gTmFjaHNjaGxhZ2VuIgogCiAjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo4MgotbXNnaWQgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCi1tc2dzdHIgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCittc2dpZCAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKK21zZ3N0ciAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1CisjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NworbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKK21zZ3N0ciAiZ2lidCBHcsO2w59lbmFuZ2FiZW4gaW4gbWVuc2NoZW5sZXNiYXJlbiBGb3JtYXQgYXVzIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbT3B0aW9uZW5dIDxjb21taXR0aXNoPioiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjE3CiBtc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSAtLWRpcnR5IgogbXNnc3RyICJnaXQgZGVzY3JpYmUgW09wdGlvbmVuXSAtLWRpcnR5IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjMzCi0jLCBjLWZvcm1hdAotbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKLW1zZ3N0ciAiYW5ub3RpZXJ0ZSBNYXJraWVydW5nICVzIGlzdCBuaWNodCB2ZXJmw7xnYmFyIgotCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CiAjLCBjLWZvcm1hdAotbXNnaWQgImFubm90YXRlZCB0YWcgJXMgaGFzIG5vIGVtYmVkZGVkIG5hbWUiCi1tc2dzdHIgImFubm90aWVydGUgTWFya2llcnVuZyAlcyBoYXQga2VpbmVuIGVpbmdlYmV0dGV0ZW4gTmFtZW4iCittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgorbXNnc3RyICJhbm5vdGllcnRlcyBUYWcgJXMgaXN0IG5pY2h0IHZlcmbDvGdiYXIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBoYXMgbm8gZW1iZWRkZWQgbmFtZSIKK21zZ3N0ciAiYW5ub3RpZXJ0ZXMgVGFnICVzIGhhdCBrZWluZW4gZWluZ2ViZXR0ZXRlbiBOYW1lbiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgotbXNnc3RyICJNYXJraWVydW5nICclcycgaXN0IGVpZ2VudGxpY2ggJyVzJyBoaWVyIgorbXNnc3RyICJUYWcgJyVzJyBpc3QgZWlnZW50bGljaCAnJXMnIGhpZXIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIiVzIGlzdCBrZWluIGfDvGx0aWdlciBPYmpla3QtTmFtZSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiJXMgaXN0IGtlaW4gZ8O8bHRpZ2VzICclcycgT2JqZWt0IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRhZyBleGFjdGx5IG1hdGNoZXMgJyVzJyIKLW1zZ3N0ciAia2VpbiBNYXJraWVydW5nIGVudHNwcmljaHQgZXhha3QgJyVzJyIKK21zZ3N0ciAia2VpbiBUYWcgZW50c3ByaWNodCBleGFrdCAnJXMnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgogbXNnc3RyICJzdWNoZSB6dXIgQmVzY2hyZWlidW5nIHZvbiAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzI4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbmlzaGVkIHNlYXJjaCBhdCAlc1xuIgogbXNnc3RyICJiZWVuZGV0ZSBTdWNoZSBiZWkgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1MgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gYW5ub3RhdGVkIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCiAiSG93ZXZlciwgdGhlcmUgd2VyZSB1bmFubm90YXRlZCB0YWdzOiB0cnkgLS10YWdzLiIKIG1zZ3N0ciAiIgotIktlaW5lIGFubm90aWVydGVuIE1hcmtpZXJ1bmdlbiBrw7ZubmVuICclcycgYmVzY2hyZWliZW4uXG4iCi0iSmVkb2NoIGdhYiBlcyBuaWNodCBhbm5vdGllcnRlIE1hcmtpZXJ1bmdlbjogdmVyc3VjaGVuIFNpZSAtLXRhZ3MuIgorIktlaW5lIGFubm90aWVydGVuIFRhZ3Mga8O2bm5lbiAnJXMnIGJlc2NocmVpYmVuLlxuIgorIkplZG9jaCBnYWIgZXMgbmljaHQtYW5ub3RpZXJ0ZSBUYWdzOiB2ZXJzdWNoZW4gU2llIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCiAiVHJ5IC0tYWx3YXlzLCBvciBjcmVhdGUgc29tZSB0YWdzLiIKIG1zZ3N0ciAiIgotIktlaW5lIE1hcmtpZXJ1bmdlbiBrw7ZubmVuICclcycgYmVzY2hyZWliZW4uXG4iCi0iVmVyc3VjaGVuIFNpZSAtLWFsd2F5cyBvZGVyIGVyc3RlbGxlbiBTaWUgZWluaWdlIE1hcmtpZXJ1bmdlbi4iCisiS2VpbmUgVGFncyBrw7ZubmVuICclcycgYmVzY2hyZWliZW4uXG4iCisiVmVyc3VjaGVuIFNpZSAtLWFsd2F5cyBvZGVyIGVyc3RlbGxlbiBTaWUgZWluaWdlIFRhZ3MuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzc3CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg0CiAjLCBjLWZvcm1hdAogbXNnaWQgInRyYXZlcnNlZCAlbHUgY29tbWl0c1xuIgotbXNnc3RyICIlbHUgVmVyc2lvbmVuIGR1cmNobGF1ZmVuXG4iCittc2dzdHIgIiVsdSBDb21taXRzIGR1cmNobGF1ZmVuXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODAKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm1vcmUgdGhhbiAlaSB0YWdzIGZvdW5kOyBsaXN0ZWQgJWkgbW9zdCByZWNlbnRcbiIKICJnYXZlIHVwIHNlYXJjaCBhdCAlc1xuIgogbXNnc3RyICIiCi0ibWVociBhbHMgJWkgTWFya2llcnVuZ2VuIGdlZnVuZGVuOyBGw7xocmUgZGllIGVyc3RlbiAlaSBhdWZcbiIKKyJtZWhyIGFscyAlaSBUYWdzIGdlZnVuZGVuOyBGw7xocmUgZGllIGVyc3RlbiAlaSBhdWZcbiIKICJTdWNoZSBiZWkgJXMgYXVmZ2VnZWJlblxuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CiBtc2dpZCAiZmluZCB0aGUgdGFnIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGNvbW1pdCIKLW1zZ3N0ciAiZmluZGV0IGRpZSBNYXJraWVydW5nLCBkaWUgbmFjaCBkZXIgVmVyc2lvbiBrb21tdCIKK21zZ3N0ciAiZmluZGV0IGRhcyBUYWcsIGRhcyBuYWNoIENvbW1pdCBrb21tdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMAogbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCiBtc2dzdHIgInByb3Rva29sbGllcnQgZGllIFN1Y2hzdHJhdGVnaWUgaW4gZGVyIFN0YW5kYXJkLUZlaGxlcmF1c2dhYmUiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDQKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKIG1zZ2lkICJ1c2UgYW55IHJlZiIKIG1zZ3N0ciAidmVyd2VuZGV0IGFsbGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMgogbXNnaWQgInVzZSBhbnkgdGFnLCBldmVuIHVuYW5ub3RhdGVkIgotbXNnc3RyICJ2ZXJ3ZW5kZXQgamVkZSBNYXJraWVydW5nLCBhdWNoIG5pY2h0LWFubm90aWVydGUiCittc2dzdHIgInZlcndlbmRldCBqZWRlcyBUYWcsIGF1Y2ggbmljaHQtYW5ub3RpZXJ0ZSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMwogbXNnaWQgImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiCiBtc2dzdHIgInZlcndlbmRldCBpbW1lciBsYW5nZXMgRm9ybWF0IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE0Cittc2dpZCAib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IgorbXNnc3RyICJmb2xndCBudXIgZXJzdGVtIEVsdGVybnRlaWwiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKIG1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgogbXNnc3RyICJnaWJ0IG51ciBleGFrdGUgw5xiZXJlaW5zdGltbXVuZ2VuIGF1cyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxOQogbXNnaWQgImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiCi1tc2dzdHIgImJldHJhY2h0ZXQgZGllIGrDvG5nc3RlbiA8bj4gTWFya2llcnVuZ2VuIChTdGFuZGFyZDogMTApIgorbXNnc3RyICJiZXRyYWNodGV0IGRpZSBqw7xuZ3N0ZW4gPG4+IFRhZ3MgKFN0YW5kYXJkOiAxMCkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgotbXNnc3RyICJiZXRyYWNodGV0IG51ciBNYXJraWVydW5nZW4gZGllIDxNdXN0ZXI+IGVudHNwcmVjaGVuIgorbXNnc3RyICJiZXRyYWNodGV0IG51ciBUYWdzIGRpZSA8TXVzdGVyPiBlbnRzcHJlY2hlbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNSBidWlsdGluL25hbWUtcmV2LmM6MjM4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDIzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMjIKIG1zZ2lkICJzaG93IGFiYnJldmlhdGVkIGNvbW1pdCBvYmplY3QgYXMgZmFsbGJhY2siCi1tc2dzdHIgInplaWd0IGdla8O8cnp0ZXMgVmVyc2lvbnNvYmpla3QsIHdlbm4gc29uc3QgbmljaHRzIHp1dHJpZmZ0IgorbXNnc3RyICJ6ZWlndCBnZWvDvHJ6dGVzIENvbW1pdC1PYmpla3QsIHdlbm4gc29uc3QgbmljaHRzIHp1dHJpZmZ0IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDI0CiBtc2dpZCAibWFyayIKIG1zZ3N0ciAiS2VubnplaWNoZW4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgIiIKLSJmw7xndCA8S2VubnplaWNoZW4+IGJlaSBnZcOkbmRlcnRlbSBBcmJlaXRzYmF1bSBoaW56dSAoU3RhbmRhcmQ6IFwiLWRpcnR5XCIpIgorImbDvGd0IDxLZW5uemVpY2hlbj4gYmVpIGdlw6RuZGVydGVtIEFyYmVpdHN2ZXJ6ZWljaG5pcyBoaW56dSAoU3RhbmRhcmQ6IFwiLSIKKyJkaXJ0eVwiKSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ0MwogbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1sb25nIHVuZCAtLWFiYnJldj0wIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICJLZWluZSBOYW1lbiBnZWZ1bmRlbiwga2FubiBuaWNodHMgYmVzY2hyZWliZW4uIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDgxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5CiBtc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCi1tc2dzdHIgIkRpZSBPcHRpb24gLS1kaXJ0eSBrYW5uIG5pY2h0IG1pdCBWZXJzaW9uZW4gdmVyd2VuZGV0IHdlcmRlbi4iCittc2dzdHIgIkRpZSBPcHRpb24gLS1kaXJ0eSBrYW5uIG5pY2h0IG1pdCBDb21taXRzIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjOiBidWlsdGluL2RpZmYuYzo3OQogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKLW1zZ3N0ciAiJyVzJzoga2VpbmUgcmVndWzDpHJlIERhdGVpIG9kZXIgc3ltYm9saXNjaGVyIExpbmsiCittc2dzdHIgIiclcyc6IGtlaW5lIHJlZ3Vsw6RyZSBEYXRlaSBvZGVyIHN5bWJvbGlzY2hlciBWZXJ3ZWlzIgogCi0jOiBidWlsdGluL2RpZmYuYzoyMjgKKyM6IGJ1aWx0aW4vZGlmZi5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9wdGlvbjogJXMiCiBtc2dzdHIgIlVuZ8O8bHRpZ2UgT3B0aW9uOiAlcyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzA1CisjOiBidWlsdGluL2RpZmYuYzozMDcKIG1zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiS2VpbiBHaXQtUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAiS2VpbiBHaXQtUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzQ4CisjOiBidWlsdGluL2RpZmYuYzozNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvYmplY3QgJyVzJyBnaXZlbi4iCiBtc2dzdHIgIk9iamVrdCAnJXMnIGlzdCB1bmfDvGx0aWcuIgogCi0jOiBidWlsdGluL2RpZmYuYzozNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgotbXNnc3RyICJNZWhyIGFscyAlZCBad2VpZ2UgYW5nZWdlYmVuOiAnJXMnIgotCi0jOiBidWlsdGluL2RpZmYuYzozNjMKKyM6IGJ1aWx0aW4vZGlmZi5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJtb3JlIHRoYW4gdHdvIGJsb2JzIGdpdmVuOiAnJXMnIgogbXNnc3RyICJNZWhyIGFscyB6d2VpIEJsb2JzIGFuZ2VnZWJlbjogJyVzJyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzcxCisjOiBidWlsdGluL2RpZmYuYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5oYW5kbGVkIG9iamVjdCAnJXMnIGdpdmVuLiIKIG1zZ3N0ciAidW5iZWhhbmRlbHRlcyBPYmpla3QgJyVzJyBhbmdlZ2ViZW4iCkBAIC00NDc1LDQ2ICs0ODU4LDQ1IEBACiBtc2dpZCAiZ2l0IGZhc3QtZXhwb3J0IFtyZXYtbGlzdC1vcHRzXSIKIG1zZ3N0ciAiZ2l0IGZhc3QtZXhwb3J0IFtyZXYtbGlzdC1vcHRzXSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1MgorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NgogbXNnaWQgInNob3cgcHJvZ3Jlc3MgYWZ0ZXIgPG4+IG9iamVjdHMiCiBtc2dzdHIgInplaWd0IEZvcnRzY2hyaXR0IG5hY2ggPG4+IE9iamVrdGVuIGFuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgotbXNnc3RyICJ3w6RobHQgQmVoYW5kbHVuZyB2b24gc2lnbmllcnRlbiBNYXJraWVydW5nZW4iCittc2dzdHIgInfDpGhsdCBCZWhhbmRsdW5nIHZvbiBzaWduaWVydGVuIFRhZ3MiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzEKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2YgdGFncyB0aGF0IHRhZyBmaWx0ZXJlZCBvYmplY3RzIgotbXNnc3RyICJ3w6RobHQgQmVoYW5kbHVuZyB2b24gTWFya2llcnVuZ2VuLCBkaWUgZ2VmaWx0ZXJ0ZSBPYmpla3RlIG1hcmtpZXJlbiIKK21zZ3N0ciAid8OkaGx0IEJlaGFuZGx1bmcgdm9uIFRhZ3MsIGRpZSBnZWZpbHRlcnRlIE9iamVrdGUgbWFya2llcmVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CiBtc2dpZCAiRHVtcCBtYXJrcyB0byB0aGlzIGZpbGUiCiBtc2dzdHIgIlNjaHJlaWJ0IEtlbm56ZWljaGVuIGluIGRpZXNlIERhdGVpIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc2CiBtc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgogbXNnc3RyICJJbXBvcnRpZXJ0IEtlbm56ZWljaGVuIHZvbiBkaWVzZXIgRGF0ZWkiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKLW1zZ3N0ciAiIgotImVyemV1Z3Qga8O8bnN0bGljaCBlaW5lbiBNYXJraWVydW5nc2Vyc3RlbGxlciwgd2VubiBkaWUgTWFya2llcnVuZyBrZWluZW4gaGF0IgorbXNnc3RyICJlcnpldWd0IGvDvG5zdGxpY2ggZWluZW4gVGFnLUVyc3RlbGxlciwgd2VubiBkYXMgVGFnIGtlaW5lbiBoYXQiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODAKIG1zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKLW1zZ3N0ciAiZ2lidCBmw7xyIGplZGUgVmVyc2lvbiBkZW4gZ2VzYW10ZW4gQmF1bSBhdXMiCittc2dzdHIgImdpYnQgZsO8ciBqZWRlbiBDb21taXQgZGFzIGdlc2FtdGUgVmVyemVpY2huaXMgYXVzIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIkJlbnV0enQgZGllIFwiZG9uZVwiLUZ1bmt0aW9uIHVtIGRlbiBTdHJvbSBhYnp1c2NobGllw59lbiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OQorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MwogbXNnaWQgIlNraXAgb3V0cHV0IG9mIGJsb2IgZGF0YSIKIG1zZ3N0ciAiw5xiZXJzcHJpbmd0IEF1c2dhYmUgdm9uIEJsb2ItRGF0ZW4iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzoyMAogbXNnaWQgImdpdCBmZXRjaCBbPG9wdGlvbnM+XSBbPHJlcG9zaXRvcnk+IFs8cmVmc3BlYz4uLi5dXSIKLW1zZ3N0ciAiZ2l0IGZldGNoIFs8T3B0aW9uZW4+XSBbPFByb2pla3RhcmNoaXY+IFs8UmVmZXJlbnpzcGV6aWZpa2F0aW9uPi4uLl1dIgorbXNnc3RyICJnaXQgZmV0Y2ggWzxPcHRpb25lbj5dIFs8UmVwb3NpdG9yeT4gWzxSZWZzcGVjPi4uLl1dIgogCiAjOiBidWlsdGluL2ZldGNoLmM6MjEKIG1zZ2lkICJnaXQgZmV0Y2ggWzxvcHRpb25zPl0gPGdyb3VwPiIKQEAgLTQ1MjIsNyArNDkwNCw3IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzoyMgogbXNnaWQgImdpdCBmZXRjaCAtLW11bHRpcGxlIFs8b3B0aW9ucz5dIFsoPHJlcG9zaXRvcnk+IHwgPGdyb3VwPikuLi5dIgotbXNnc3RyICJnaXQgZmV0Y2ggLS1tdWx0aXBsZSBbPE9wdGlvbmVuPl0gWyg8UHJvamVrdGFyY2hpdj4gfCA8R3J1cHBlPikuLi5dIgorbXNnc3RyICJnaXQgZmV0Y2ggLS1tdWx0aXBsZSBbPE9wdGlvbmVuPl0gWyg8UmVwb3NpdG9yeT4gfCA8R3J1cHBlPikuLi5dIgogCiAjOiBidWlsdGluL2ZldGNoLmM6MjMKIG1zZ2lkICJnaXQgZmV0Y2ggLS1hbGwgWzxvcHRpb25zPl0iCkBAIC00NTMwLDcgKzQ5MTIsNyBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6NjAKIG1zZ2lkICJmZXRjaCBmcm9tIGFsbCByZW1vdGVzIgotbXNnc3RyICJmb3JkZXJ0IHZvbiBhbGxlbiBleHRlcm5lbiBQcm9qZWt0YXJjaGl2ZW4gYW4iCittc2dzdHIgImZvcmRlcnQgdm9uIGFsbGVuIFJlbW90ZS1SZXBvc2l0b3JpZXMgYW4iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MgogbXNnaWQgImFwcGVuZCB0byAuZ2l0L0ZFVENIX0hFQUQgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyIKQEAgLTQ1NDIsMjQgKzQ5MjQsMjUgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjY1CiBtc2dpZCAiZm9yY2Ugb3ZlcndyaXRlIG9mIGxvY2FsIGJyYW5jaCIKLW1zZ3N0ciAiZXJ6d2luZ3QgZGFzIMOcYmVyc2NocmVpYmVuIHZvbiBsb2thbGVuIFp3ZWlnZW4iCittc2dzdHIgImVyendpbmd0IGRhcyDDnGJlcnNjaHJlaWJlbiB2b24gbG9rYWxlbiBCcmFuY2hlcyIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjY3CiBtc2dpZCAiZmV0Y2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIgotbXNnc3RyICJmb3JkZXJ0IHZvbiBtZWhyZXJlbiBleHRlcm5lbiBQcm9qZWt0YXJjaGl2ZW4gYW4iCittc2dzdHIgImZvcmRlcnQgdm9uIG1laHJlcmVuIFJlbW90ZS1SZXBvc2l0b3JpZXMgYW4iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo2OQogbXNnaWQgImZldGNoIGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMiCi1tc2dzdHIgImZvcmRlcnQgYWxsZSBNYXJraWVydW5nZW4gdW5kIHZlcmJ1bmRlbmUgT2JqZWt0ZSBhbiIKK21zZ3N0ciAiZm9yZGVydCBhbGxlIFRhZ3MgdW5kIHZlcmJ1bmRlbmUgT2JqZWt0ZSBhbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjcxCiBtc2dpZCAiZG8gbm90IGZldGNoIGFsbCB0YWdzICgtLW5vLXRhZ3MpIgotbXNnc3RyICJmb3JkZXJ0IG5pY2h0IGFsbGUgTWFya2llcnVuZ2VuIGFuICgtLW5vLXRhZ3MpIgorbXNnc3RyICJmb3JkZXJ0IG5pY2h0IGFsbGUgVGFncyBhbiAoLS1uby10YWdzKSIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjczCiBtc2dpZCAicHJ1bmUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIG5vIGxvbmdlciBvbiByZW1vdGUiCiBtc2dzdHIgIiIKLSJlbnRmZXJudCBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UsIGRpZSBzaWNoIG5pY2h0IG1laHIgaW0gRmVybmFyY2hpdiBiZWZpbmRlbiIKKyJlbnRmZXJudCBSZW1vdGUtVHJhY2tpbmctQnJhbmNoZXMsIGRpZSBzaWNoIG5pY2h0IG1laHIgaW0gUmVtb3RlLVJlcG9zaXRvcnkgIgorImJlZmluZGVuIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzQKIG1zZ2lkICJvbi1kZW1hbmQiCkBAIC00NTY3LDcgKzQ5NTAsNyBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6NzUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIgotbXNnc3RyICJrb250cm9sbGllcnQgcmVrdXJzaXZlIEFuZm9yZGVydW5nZW4gdm9uIFVudGVycHJvamVrdGVuIgorbXNnc3RyICJrb250cm9sbGllcnQgcmVrdXJzaXZlIEFuZm9yZGVydW5nZW4gdm9uIFN1Ym1vZHVsZW4iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3OQogbXNnaWQgImtlZXAgZG93bmxvYWRlZCBwYWNrIgpAQCAtNDU3OSwyMjMgKzQ5NjIsMjI0IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo4NAogbXNnaWQgImRlZXBlbiBoaXN0b3J5IG9mIHNoYWxsb3cgY2xvbmUiCi1tc2dzdHIgInZlcnRpZWZ0IGRpZSBIaXN0b3JpZSBlaW5lcyBmbGFjaGVuIEtsb24iCittc2dzdHIgInZlcnRpZWZ0IGRpZSBIaXN0b3JpZSBlaW5lcyBmbGFjaGVuIEtsb25zIgogCiAjOiBidWlsdGluL2ZldGNoLmM6ODYKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAia29udmVydGllcnQgenUgZWluZW0gdm9sbHN0w6RuZGlnZW4gUHJvamVrdGFyY2hpdiIKK21zZ3N0ciAia29udmVydGllcnQgenUgZWluZW0gdm9sbHN0w6RuZGlnZW4gUmVwb3NpdG9yeSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTEyMQorIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgImRpciIKIG1zZ3N0ciAiVmVyemVpY2huaXMiCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo4OQogbXNnaWQgInByZXBlbmQgdGhpcyB0byBzdWJtb2R1bGUgcGF0aCBvdXRwdXQiCi1tc2dzdHIgInN0ZWxsdCBkaWVzIGFuIGRpZSBBdXNnYWJlIGRlciBVbnRlcnByb2pla3QtUGZhZGUgdm9yYW4iCittc2dzdHIgInN0ZWxsdCBkaWVzIGFuIGRpZSBBdXNnYWJlIGRlciBTdWJtb2R1bC1QZmFkZSB2b3JhbiIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjkyCiBtc2dpZCAiZGVmYXVsdCBtb2RlIGZvciByZWN1cnNpb24iCiBtc2dzdHIgIlN0YW5kYXJkLU1vZHVzIGbDvHIgUmVrdXJzaW9uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCi1tc2dzdHIgIktvbm50ZSBleHRlcm5lIFJlZmVyZW56IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkgbmljaHQgZmluZGVuLiIKK21zZ3N0ciAiS29ubnRlIFJlbW90ZS1SZWZlcmVueiB2b24gSEVBRCBuaWNodCBmaW5kZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjU3CisjOiBidWlsdGluL2ZldGNoLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCiBtc2dzdHIgIk9iamVrdCAlcyBuaWNodCBnZWZ1bmRlbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI2MgorIzogYnVpbHRpbi9mZXRjaC5jOjI3OAogbXNnaWQgIlt1cCB0byBkYXRlXSIKIG1zZ3N0ciAiW2FrdHVlbGxdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc2CisjOiBidWlsdGluL2ZldGNoLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgotbXNnc3RyICIhICUtKnMgJS0qcyAtPiAlcyAgKGthbm4gbmljaHQgaW0gYWt0dWVsbGVuIFp3ZWlnIGFuZm9yZGVybikiCittc2dzdHIgIiIKKyIhICUtKnMgJS0qcyAtPiAlcyAgKGthbm4gXCJmZXRjaFwiIGltIGFrdHVlbGxlbiBCcmFuY2ggbmljaHQgYXVzZsO8aHJlbikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzcgYnVpbHRpbi9mZXRjaC5jOjM2MworIzogYnVpbHRpbi9mZXRjaC5jOjI5MyBidWlsdGluL2ZldGNoLmM6Mzc5CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiW3p1csO8Y2tnZXdpZXNlbl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyODgKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDQKIG1zZ2lkICJbdGFnIHVwZGF0ZV0iCi1tc2dzdHIgIltNYXJraWVydW5nc2FrdHVhbGlzaWVydW5nXSIKK21zZ3N0ciAiW1RhZyBBa3R1YWxpc2llcnVuZ10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTAgYnVpbHRpbi9mZXRjaC5jOjMyNSBidWlsdGluL2ZldGNoLmM6MzQzCisjOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQogbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKIG1zZ3N0ciAiICAoa2FubiBsb2thbGUgUmVmZXJlbnogbmljaHQgYWt0dWFsaXNpZXJlbikiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDgKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjQKIG1zZ2lkICJbbmV3IHRhZ10iCi1tc2dzdHIgIltuZXVlIE1hcmtpZXJ1bmddIgorbXNnc3RyICJbbmV1ZXMgVGFnXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxMQorIzogYnVpbHRpbi9mZXRjaC5jOjMyNwogbXNnaWQgIltuZXcgYnJhbmNoXSIKLW1zZ3N0ciAiW25ldWVyIFp3ZWlnXSIKK21zZ3N0ciAiW25ldWVyIEJyYW5jaF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMzAKIG1zZ2lkICJbbmV3IHJlZl0iCiBtc2dzdHIgIltuZXVlIFJlZmVyZW56XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICJrYW5uIGxva2FsZSBSZWZlcmVueiBuaWNodCBha3R1YWxpc2llcmVuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAiQWt0dWFsaXNpZXJ1bmcgZXJ6d3VuZ2VuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzY1CisjOiBidWlsdGluL2ZldGNoLmM6MzgxCiBtc2dpZCAiKG5vbi1mYXN0LWZvcndhcmQpIgogbXNnc3RyICIoa2VpbiBWb3JzcHVsZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mzk2IGJ1aWx0aW4vZmV0Y2guYzo2ODgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MTIgYnVpbHRpbi9mZXRjaC5jOjcxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAia2FubiAlcyBuaWNodCDDtmZmbmVuOiAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDA1CisjOiBidWlsdGluL2ZldGNoLmM6NDIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiJXMgaGF0IG5pY2h0IGFsbGUgZXJmb3JkZXJsaWNoZW4gT2JqZWt0ZSBnZXNlbmRldFxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDkxCisjOiBidWlsdGluL2ZldGNoLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICJWb24gJS4qc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTAyCisjOiBidWlsdGluL2ZldGNoLmM6NTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJzb21lIGxvY2FsIHJlZnMgY291bGQgbm90IGJlIHVwZGF0ZWQ7IHRyeSBydW5uaW5nXG4iCiAiICdnaXQgcmVtb3RlIHBydW5lICVzJyB0byByZW1vdmUgYW55IG9sZCwgY29uZmxpY3RpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIiIKICJFaW5pZ2UgbG9rYWxlIFJlZmVyZW56ZW4ga29ubnRlbiBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuOyB2ZXJzdWNoZW4gU2llXG4iCi0iJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHVtIGplZGVuIMOkbHRlcmVuLCB3aWRlcnNwcsO8Y2hsaWNoZW4gWndlaWcgenUgbMO2c2NoZW4uIgorIidnaXQgcmVtb3RlIHBydW5lICVzJyB1bSBqZWRlbiDDpGx0ZXJlbiwgd2lkZXJzcHLDvGNobGljaGVuIEJyYW5jaCB6dSBsw7ZzY2hlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIHdpcmQgdW5yZWZlcmVuemllcnQpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUzCisjOiBidWlsdGluL2ZldGNoLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIHd1cmRlIHVucmVmZXJlbnppZXJ0KSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MAorIzogYnVpbHRpbi9mZXRjaC5jOjU4OQogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiW2dlbMO2c2NodF0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjEgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CisjOiBidWlsdGluL2ZldGNoLmM6NTkwIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQogbXNnaWQgIihub25lKSIKIG1zZ3N0ciAiKG5pY2h0cykiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo2NzgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCi0iRGFzIEFuZm9yZGVybiBpbiBkZW4gYWt0dWVsbGVuIFp3ZWlnICVzIHZvbiBlaW5lbSBuaWNodC1ibG/Dn2VuIFByb2pla3RhcmNoaXYgIgorIkRlciBcImZldGNoXCIgaW4gZGVuIGFrdHVlbGxlbiBCcmFuY2ggJXMgdm9uIGVpbmVtIG5pY2h0LUJhcmUtUmVwb3NpdG9yeSAiCiAid3VyZGUgdmVyd2VpZ2VydC4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKIG1zZ3N0ciAiV2Vpw58gbmljaHQgd2llIHZvbiAlcyBhbmdlZm9yZGVydCB3aXJkLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc4OQorIzogYnVpbHRpbi9mZXRjaC5jOjgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIHZhbHVlIFwiJXNcIiBpcyBub3QgdmFsaWQgZm9yICVzIgogbXNnc3RyICJPcHRpb24gXCIlc1wiIFdlcnQgXCIlc1wiIGlzdCBuaWNodCBnw7xsdGlnIGbDvHIgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIgogbXNnc3RyICJPcHRpb24gXCIlc1wiIHdpcmQgaWdub3JpZXJ0IGbDvHIgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NAorIzogYnVpbHRpbi9mZXRjaC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJGZXRjaGluZyAlc1xuIgogbXNnc3RyICJGb3JkZXJlIGFuIHZvbiAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk2IGJ1aWx0aW4vcmVtb3RlLmM6MTAwCisjOiBidWlsdGluL2ZldGNoLmM6OTMwIGJ1aWx0aW4vcmVtb3RlLmM6MTAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmZXRjaCAlcyIKIG1zZ3N0ciAiS29ubnRlIG5pY2h0IHZvbiAlcyBhbmZvcmRlcm4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAiIgotIktlaW4gZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiBhbmdlZ2ViZW4uIEJpdHRlIGdlYmVuIFNpZSBlbnR3ZWRlciBlaW5lIFVSTFxuIgotIm9kZXIgZGVuIE5hbWVuIGRlcyBleHRlcm5lbiBBcmNoaXZzIGFuLCB2b24gd2VsY2hlbSBuZXVlXG4iCi0iUmV2aXNpb25lbiBhbmdlZm9yZGVydCB3ZXJkZW4gc29sbGVuLiIKKyJLZWluIFJlbW90ZS1SZXBvc2l0b3J5IGFuZ2VnZWJlbi4gQml0dGUgZ2ViZW4gU2llIGVudHdlZGVyIGVpbmUgVVJMXG4iCisib2RlciBkZW4gTmFtZW4gZGVzIFJlbW90ZS1SZXBvc2l0b3JpZXMgYW4sIHZvbiB3ZWxjaGVtIG5ldWVcbiIKKyJDb21taXRzIGFuZ2Vmb3JkZXJ0IHdlcmRlbiBzb2xsZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTM1CisjOiBidWlsdGluL2ZldGNoLmM6OTY5CiBtc2dpZCAiWW91IG5lZWQgdG8gc3BlY2lmeSBhIHRhZyBuYW1lLiIKLW1zZ3N0ciAiU2llIG3DvHNzZW4gZGVuIE5hbWVuIGRlciBNYXJraWVydW5nIGFuZ2ViZW4uIgorbXNnc3RyICJTaWUgbcO8c3NlbiBkZW4gTmFtZW4gZGVzIFRhZ3MgYW5nZWJlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uZW4gLS1kZXB0aCB1bmQgLS11bnNoYWxsb3cga8O2bm5lbiBuaWNodCBnZW1laW5zYW0gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKLSJEaWUgT3B0aW9uIC0tdW5zaGFsbG93IGthbm4gbmljaHQgaW4gZWluZW0gdm9sbHN0w6RuZGlnZW4gUHJvamVrdGFyY2hpdiAiCisiRGllIE9wdGlvbiAtLXVuc2hhbGxvdyBrYW5uIG5pY2h0IGluIGVpbmVtIHZvbGxzdMOkbmRpZ2VuIFJlcG9zaXRvcnkgIgogInZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwMgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKLW1zZ3N0ciAiZmV0Y2ggLS1hbGwgYWt6ZXB0aWVydCBrZWluIFByb2pla3RhcmNoaXYgYWxzIEFyZ3VtZW50IgorbXNnc3RyICJmZXRjaCAtLWFsbCBha3plcHRpZXJ0IGtlaW4gUmVwb3NpdG9yeSBhbHMgQXJndW1lbnQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDA0CisjOiBidWlsdGluL2ZldGNoLmM6MTAzOAogbXNnaWQgImZldGNoIC0tYWxsIGRvZXMgbm90IG1ha2Ugc2Vuc2Ugd2l0aCByZWZzcGVjcyIKLW1zZ3N0ciAiZmV0Y2ggLS1hbGwga2FubiBuaWNodCBtaXQgUmVmZXJlbnpzcGV6aWZpa2F0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbi4iCittc2dzdHIgImZldGNoIC0tYWxsIGthbm4gbmljaHQgbWl0IFJlZnNwZWNzIHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAxNQorIzogYnVpbHRpbi9mZXRjaC5jOjEwNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gc3VjaCByZW1vdGUgb3IgcmVtb3RlIGdyb3VwOiAlcyIKLW1zZ3N0ciAiS2VpbiBleHRlcm5lcyBBcmNoaXYgKGVpbnplbG4gb2RlciBHcnVwcGUpOiAlcyIKK21zZ3N0ciAiS2VpbiBSZW1vdGUtUmVwb3NpdG9yeSAoZWluemVsbiBvZGVyIEdydXBwZSk6ICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAyMworIzogYnVpbHRpbi9mZXRjaC5jOjEwNTcKIG1zZ2lkICJGZXRjaGluZyBhIGdyb3VwIGFuZCBzcGVjaWZ5aW5nIHJlZnNwZWNzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKLSJEYXMgQWJob2xlbiBlaW5lciBHcnVwcGUgdm9uIGV4dGVybmVuIEFyY2hpdmVuIGthbm4gbmljaHQgbWl0IGRlciBBbmdhYmVcbiIKLSJ2b24gUmVmZXJlbnpzcGV6aWZpa2F0aW9uZW4gdmVyd2VuZGV0IHdlcmRlbi4iCisiRGFzIEFiaG9sZW4gZWluZXIgR3J1cHBlIHZvbiBSZW1vdGUtUmVwb3NpdG9yaWVzIGthbm4gbmljaHQgbWl0IGRlciBBbmdhYmVcbiIKKyJ2b24gUmVmc3BlY3MgdmVyd2VuZGV0IHdlcmRlbi4iCiAKICM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjEzCiBtc2dpZCAiZ2l0IGZtdC1tZXJnZS1tc2cgWy1tIDxtZXNzYWdlPl0gWy0tbG9nWz08bj5dfC0tbm8tbG9nXSBbLS1maWxlIDxmaWxlPl0iCiBtc2dzdHIgIiIKICJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPEJlc2NocmVpYnVuZz5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8RGF0ZWk+XSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjU5IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MiBidWlsdGluL2dyZXAuYzo3MDEKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODggYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NiBidWlsdGluL3Nob3ctcmVmLmM6MTc1Ci0jOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyMzkKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAwCisjOiBidWlsdGluL21lcmdlLmM6MjAzIGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3OQorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjQzCiBtc2dpZCAibiIKIG1zZ3N0ciAiQW56YWhsIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjAKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NAogbXNnaWQgInBvcHVsYXRlIGxvZyB3aXRoIGF0IG1vc3QgPG4+IGVudHJpZXMgZnJvbSBzaG9ydGxvZyIKIG1zZ3N0ciAiZsO8Z3QgSGlzdG9yaWUgbWl0IGjDtmNoc3RlbnMgPG4+IEVpbnRyw6RnZW4gdm9uIFwic2hvcnRsb2dcIiBoaW56dSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKIG1zZ2lkICJhbGlhcyBmb3IgLS1sb2cgKGRlcHJlY2F0ZWQpIgogbXNnc3RyICJBbGlhcyBmw7xyIC0tbG9nICh2ZXJhbHRldCkiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NgorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcwCiBtc2dpZCAidGV4dCIKIG1zZ3N0ciAiVGV4dCIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzEKIG1zZ2lkICJ1c2UgPHRleHQ+IGFzIHN0YXJ0IG9mIG1lc3NhZ2UiCiBtc2dzdHIgInZlcndlbmRldCA8VGV4dD4gYWxzIEJlc2NocmVpYnVuZ3NhbmZhbmciCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2OAorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcyCiBtc2dpZCAiZmlsZSB0byByZWFkIGZyb20iCiBtc2dzdHIgIkRhdGVpIHp1bSBFaW5sZXNlbiIKIApAQCAtNDg1Myw3ICs1MjM3LDcgQEAKIAogIzogYnVpbHRpbi9mc2NrLmM6NjE2CiBtc2dpZCAicmVwb3J0IHRhZ3MiCi1tc2dzdHIgIm1lbGRldCBNYXJraWVydW5nZW4iCittc2dzdHIgIm1lbGRldCBUYWdzIgogCiAjOiBidWlsdGluL2ZzY2suYzo2MTcKIG1zZ2lkICJyZXBvcnQgcm9vdCBub2RlcyIKQEAgLTQ4NjEsMTEgKzUyNDUsMTEgQEAKIAogIzogYnVpbHRpbi9mc2NrLmM6NjE4CiBtc2dpZCAibWFrZSBpbmRleCBvYmplY3RzIGhlYWQgbm9kZXMiCi1tc2dzdHIgImVyemV1Z3QgS29wZmtub3RlbiBkZXIgQmVyZWl0c3RlbGx1bmdzb2JqZWt0ZSIKK21zZ3N0ciAicHLDvGZ0IE9iamVrdGUgaW4gZGVyIFN0YWdpbmctQXJlYSIKIAogIzogYnVpbHRpbi9mc2NrLmM6NjE5CiBtc2dpZCAibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIgotbXNnc3RyICJlcnpldWd0IEtvcGZrbm90ZW4gZGVzIFJlZmVyZW56cHJvdG9rb2xscyAoU3RhbmRhcmQpIgorbXNnc3RyICJwcsO8ZnQgZGllIFJlZmxvZ3MgKFN0YW5kYXJkKSIKIAogIzogYnVpbHRpbi9mc2NrLmM6NjIwCiBtc2dpZCAiYWxzbyBjb25zaWRlciBwYWNrcyBhbmQgYWx0ZXJuYXRlIG9iamVjdHMiCkBAIC00OTE1LDcgKzUyOTksNyBAQAogIkF1dG8gcGFja2luZyB0aGUgcmVwb3NpdG9yeSBmb3Igb3B0aW11bSBwZXJmb3JtYW5jZS4gWW91IG1heSBhbHNvXG4iCiAicnVuIFwiZ2l0IGdjXCIgbWFudWFsbHkuIFNlZSBcImdpdCBoZWxwIGdjXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iCiBtc2dzdHIgIiIKLSJEaWUgRGF0ZW5iYW5rIGRlcyBQcm9qZWt0YXJjaGl2cyB3aXJkIGbDvHIgZWluZSBvcHRpbWFsZSBQZXJmb3JtYW5jZVxuIgorIkRpZSBEYXRlbmJhbmsgZGVzIFJlcG9zaXRvcmllcyB3aXJkIGbDvHIgZWluZSBvcHRpbWFsZSBQZXJmb3JtYW5jZVxuIgogImtvbXByaW1pZXJ0LiBTaWUga8O2bm5lbiBhdWNoIFwiZ2l0IGdjXCIgbWFudWVsbCBhdXNmw7xocmVuLlxuIgogIlNpZWhlIFwiZ2l0IGhlbHAgZ2NcIiBmw7xyIHdlaXRlcmUgSW5mb3JtYXRpb25lbi5cbiIKIApAQCAtNDkyOCwyNDAgKzUzMTIsMjQwIEBACiAKICM6IGJ1aWx0aW4vZ3JlcC5jOjIyCiBtc2dpZCAiZ2l0IGdyZXAgW29wdGlvbnNdIFstZV0gPHBhdHRlcm4+IFs8cmV2Pi4uLl0gW1stLV0gPHBhdGg+Li4uXSIKLW1zZ3N0ciAiZ2l0IGdyZXAgW09wdGlvbmVuXSBbLWVdIDxNdXN0ZXI+IFs8UmV2aXNpb24+Li4uXSBbWy0tXSA8UGZhZD4uLi5dIgorbXNnc3RyICJnaXQgZ3JlcCBbT3B0aW9uZW5dIFstZV0gPE11c3Rlcj4gWzxDb21taXQ+Li4uXSBbWy0tXSA8UGZhZD4uLi5dIgogCiAjOiBidWlsdGluL2dyZXAuYzoyMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJncmVwOiBGZWhsZXIgYmVpbSBFcnpldWdlbiBlaW5lcyBUaHJlYWQ6ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzozNjUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBWZXJ6ZWljaG5pc3dlY2hzZWw6ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CisjOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKLW1zZ3N0ciAia29ubnRlIFp3ZWlnICglcykgbmljaHQgbGVzZW4iCittc2dzdHIgImtvbm50ZSBcIlRyZWVcIi1PYmpla3QgKCVzKSBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkzCisjOiBidWlsdGluL2dyZXAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAia2FubiBcImdyZXBcIiBuaWNodCBtaXQgT2JqZWt0ZW4gZGVzIFR5cHMgJXMgZHVyY2hmw7xocmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJzd2l0Y2ggYCVjJyBleHBlY3RzIGEgbnVtZXJpY2FsIHZhbHVlIgogbXNnc3RyICJTY2hhbHRlciAnJWMnIGVyd2FydGV0IGVpbmVuIG51bWVyaXNjaGVuIFdlcnQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAorIzogYnVpbHRpbi9ncmVwLmM6NTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICclcyciCiBtc2dzdHIgImthbm4gJyVzJyBuaWNodCDDtmZmbmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0MgogbXNnaWQgInNlYXJjaCBpbiBpbmRleCBpbnN0ZWFkIG9mIGluIHRoZSB3b3JrIHRyZWUiCi1tc2dzdHIgInN1Y2h0IGluIGRlciBCZXJlaXRzdGVsbHVuZyBhbnN0YXR0IGltIEFyYmVpdHNiYXVtIgorbXNnc3RyICJzdWNodCBpbiBkZXIgU3RhZ2luZy1BcmVhIGFuc3RhdHQgaW0gQXJiZWl0c3ZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NAogbXNnaWQgImZpbmQgaW4gY29udGVudHMgbm90IG1hbmFnZWQgYnkgZ2l0IgogbXNnc3RyICJmaW5kZXQgYXVjaCBpbiBJbmhhbHRlbiwgZGllIG5pY2h0IHZvbiBHaXQgdmVyd2FsdGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ3CisjOiBidWlsdGluL2dyZXAuYzo2NDYKIG1zZ2lkICJzZWFyY2ggaW4gYm90aCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgInN1Y2h0IGluIGJlb2JhY2h0ZXRlbiB1bmQgdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ5CisjOiBidWlsdGluL2dyZXAuYzo2NDgKIG1zZ2lkICJzZWFyY2ggYWxzbyBpbiBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJzdWNodCBhdWNoIGluIGlnbm9yaWVydGVuIERhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1MgorIzogYnVpbHRpbi9ncmVwLmM6NjUxCiBtc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInplaWd0IFplaWxlbiBvaG5lIMOcYmVyZWluc3RpbW11bmdlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU0CisjOiBidWlsdGluL2dyZXAuYzo2NTMKIG1zZ2lkICJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIgogbXNnc3RyICJmaW5kZXQgw5xiZXJlaW5zdGltbXVuZ2VuIHVuYWJow6RuZ2lnIHZvbiBHcm/Dny0gdW5kIEtsZWluc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKIG1zZ3N0ciAic3VjaHQgbnVyIGdhbnplIFfDtnJ0ZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1OAorIzogYnVpbHRpbi9ncmVwLmM6NjU3CiBtc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgYXMgdGV4dCIKIG1zZ3N0ciAidmVyYXJiZWl0ZXQgYmluw6RyZSBEYXRlaWVuIGFscyBUZXh0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1OQogbXNnaWQgImRvbid0IG1hdGNoIHBhdHRlcm5zIGluIGJpbmFyeSBmaWxlcyIKIG1zZ3N0ciAiZmluZGV0IGtlaW5lIE11c3RlciBpbiBCaW7DpHJkYXRlaWVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAiZHVyY2hsw6R1ZnQgaMO2Y2hzdGVucyA8VGllZmU+IEViZW5lbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY3CisjOiBidWlsdGluL2dyZXAuYzo2NjYKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAidmVyd2VuZGV0IGVyd2VpdGVydGUgcmVndWzDpHJlIEF1c2Ryw7xja2UgYXVzIFBPU0lYIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQogbXNnaWQgInVzZSBiYXNpYyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIChkZWZhdWx0KSIKIG1zZ3N0ciAidmVyd2VuZGV0IGdydW5kbGVnZW5kZSByZWd1bMOkcmUgQXVzZHLDvGNrZSBhdXMgUE9TSVggKFN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjczCisjOiBidWlsdGluL2dyZXAuYzo2NzIKIG1zZ2lkICJpbnRlcnByZXQgcGF0dGVybnMgYXMgZml4ZWQgc3RyaW5ncyIKIG1zZ3N0ciAiaW50ZXJwcmV0aWVydCBNdXN0ZXIgYWxzIGZlc3RlIFplaWNoZW5rZXR0ZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorIzogYnVpbHRpbi9ncmVwLmM6Njc1CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJ2ZXJ3ZW5kZXQgUGVybC1rb21wYXRpYmxlIHJlZ3Vsw6RyZSBBdXNkcsO8Y2tlIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OAogbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgogbXNnc3RyICJ6ZWlndCBaZWlsZW5udW1tZXJuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJ6ZWlndCBrZWluZSBEYXRlaW5hbWVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJ6ZWlndCBEYXRlaW5hbWVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgInplaWd0IERhdGVpbmFtZW4gcmVsYXRpdiB6dW0gUHJvamVrdHZlcnplaWNobmlzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAogbXNnaWQgInNob3cgb25seSBmaWxlbmFtZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiemVpZ3QgbnVyIERhdGVpbmFtZW4gYW5zdGF0dCDDvGJlcmVpbnN0aW1tZW5kZSBaZWlsZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4NworIzogYnVpbHRpbi9ncmVwLmM6Njg2CiBtc2dpZCAic3lub255bSBmb3IgLS1maWxlcy13aXRoLW1hdGNoZXMiCiBtc2dzdHIgIlN5bm9ueW0gZsO8ciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkwCisjOiBidWlsdGluL2dyZXAuYzo2ODkKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCiBtc2dzdHIgInplaWd0IG51ciBkaWUgRGF0ZWluYW1lbiBvaG5lIMOcYmVyZWluc3RpbW11bmdlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkyCisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJwcmludCBOVUwgYWZ0ZXIgZmlsZW5hbWVzIgogbXNnc3RyICJnaWJ0IE5VTC1aZWljaGVuIG5hY2ggRGF0ZWluYW1lbiBhdXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAorIzogYnVpbHRpbi9ncmVwLmM6NjkzCiBtc2dpZCAic2hvdyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiemVpZ3QsIGFuc3RhdHQgZGVyIFplaWxlbiwgZGllIEFuemFobCBkZXIgw7xiZXJlaW5zdGltbWVuZGVuIFplaWxlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk1CisjOiBidWlsdGluL2dyZXAuYzo2OTQKIG1zZ2lkICJoaWdobGlnaHQgbWF0Y2hlcyIKIG1zZ3N0ciAiaGVidCDDnGJlcmVpbnN0aW1tdW5nZW4gaGVydm9yIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgInByaW50IGVtcHR5IGxpbmUgYmV0d2VlbiBtYXRjaGVzIGZyb20gZGlmZmVyZW50IGZpbGVzIgogbXNnc3RyICIiCiAiZ2lidCBlaW5lIExlZXJ6ZWlsZSB6d2lzY2hlbiDDnGJlcmVpbnN0aW1tdW5nZW4gaW4gdmVyc2NoaWVkZW5lbiBEYXRlaWVuIGF1cyIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk5CisjOiBidWlsdGluL2dyZXAuYzo2OTgKIG1zZ2lkICJzaG93IGZpbGVuYW1lIG9ubHkgb25jZSBhYm92ZSBtYXRjaGVzIGZyb20gc2FtZSBmaWxlIgogbXNnc3RyICIiCiAiemVpZ3QgZGVuIERhdGVpbmFtZW4gbnVyIGVpbm1hbCBvYmVyaGFsYiBkZXIgw5xiZXJlaW5zdGltbXVuZ2VuIGF1cyBkaWVzZXIgIgogIkRhdGVpIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIGFuZCBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIHZvciB1bmQgbmFjaCBkZW4gw5xiZXJlaW5zdGltbXVuZ2VuIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgInplaWd0IDxuPiBaZWlsZW4gdm9yIGRlbiDDnGJlcmVpbnN0aW1tdW5nZW4gYW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworIzogYnVpbHRpbi9ncmVwLmM6NzA2CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIG5hY2ggZGVuIMOcYmVyZWluc3RpbW11bmdlbiBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA4CisjOiBidWlsdGluL2dyZXAuYzo3MDcKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICJLdXJ6Zm9ybSBmw7xyIC1DIE5VTSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MTAKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJ6ZWlndCBlaW5lIFplaWxlIG1pdCBkZW0gRnVua3Rpb25zbmFtZW4gdm9yIMOcYmVyZWluc3RpbW11bmdlbiBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzEzCisjOiBidWlsdGluL2dyZXAuYzo3MTIKIG1zZ2lkICJzaG93IHRoZSBzdXJyb3VuZGluZyBmdW5jdGlvbiIKIG1zZ3N0ciAiemVpZ3QgZGllIHVtZ2ViZW5kZSBGdW5rdGlvbiBhbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2dyZXAuYzo3MTUKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAibGllc3QgTXVzdGVyIHZvbiBlaW5lciBEYXRlaSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2dyZXAuYzo3MTcKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgImZpbmRldCA8TXVzdGVyPiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzIwCisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgogbXNnc3RyICJrb21iaW5pZXJ0IE11c3RlciwgZGllIG1pdCAtZSBhbmdlZ2ViZW4gd3VyZGVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMQogbXNnaWQgImluZGljYXRlIGhpdCB3aXRoIGV4aXQgc3RhdHVzIHdpdGhvdXQgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCDDnGJlcmVpbnN0aW1tdW5nZW4gbnVyIGR1cmNoIEJlZW5kaWd1bmdzc3RhdHVzIGFuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgInplaWd0IG51ciDDnGJlcmVpbnN0aW1tdW5nZW4gdm9uIERhdGVpZW4sIGRpZSBhbGxlbiBNdXN0ZXJuIGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNQogbXNnaWQgInNob3cgcGFyc2UgdHJlZSBmb3IgZ3JlcCBleHByZXNzaW9uIgotbXNnc3RyICJ6ZWlndCBnZXBhcnN0ZW4gQmF1bSBmw7xyIFwiZ3JlcFwiLUF1c2RydWNrIgorbXNnc3RyICJ6ZWlndCBnZXBhcnN0ZXMgVmVyemVpY2huaXMgZsO8ciBcImdyZXBcIi1BdXNkcnVjayIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQwCisjOiBidWlsdGluL2dyZXAuYzo3MzkKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAiQW56ZWlnZXByb2dyYW1tIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICJ6ZWlndCBEYXRlaWVuIG1pdCDDnGJlcmVpbnN0aW1tdW5nZW4gaW0gQW56ZWlnZXByb2dyYW1tIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MgogbXNnaWQgImFsbG93IGNhbGxpbmcgb2YgZ3JlcCgxKSAoaWdub3JlZCBieSB0aGlzIGJ1aWxkKSIKIG1zZ3N0ciAiZXJsYXVidCBkZW4gQXVmcnVmIHZvbiBncmVwKDEpICh2b24gZGllc2VyIFByb2dyYW1tdmVyc2lvbiBpZ25vcmllcnQpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDQgYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICJ6ZWlndCBWZXJ3ZW5kdW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICJrZWluZSBNdXN0ZXIgYW5nZWdlYmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo4NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQogbXNnaWQgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBvbmx5IHdvcmtzIG9uIHRoZSB3b3JrdHJlZSIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS1vcGVuLWZpbGVzLWluLXBhZ2VyIGthbm4gbnVyIGlubmVyaGFsYiBkZXMgQXJiZWl0c2JhdW1zICIKLSJ2ZXJ3ZW5kZXQgd2VyZGVuLiIKKyJEaWUgT3B0aW9uIC0tb3Blbi1maWxlcy1pbi1wYWdlciBrYW5uIG51ciBpbm5lcmhhbGIgZGVzICIKKyJBcmJlaXRzdmVyemVpY2huaXNzZXMgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg4OQorIzogYnVpbHRpbi9ncmVwLmM6ODg4CiBtc2dpZCAiLS1jYWNoZWQgb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCAtLW5vLWluZGV4LiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLWNhY2hlZCB1bmQgLS11bnRyYWNrZWQga8O2bm5lbiBuaWNodCBtaXQgLS1uby1pbmRleCB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NAorIzogYnVpbHRpbi9ncmVwLmM6ODkzCiBtc2dpZCAiLS1uby1pbmRleCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIHJldnMuIgogbXNnc3RyICIiCi0iRGllIE9wdGlvbmVuIC0tbm8taW5kZXggdW5kIC0tdW50cmFja2VkIGvDtm5uZW4gbmljaHQgbWl0IFZlcnNpb25lbiB2ZXJ3ZW5kZXQgIgorIkRpZSBPcHRpb25lbiAtLW5vLWluZGV4IHVuZCAtLXVudHJhY2tlZCBrw7ZubmVuIG5pY2h0IG1pdCBDb21taXRzIHZlcndlbmRldCAiCiAid2VyZGVuLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk3CisjOiBidWlsdGluL2dyZXAuYzo4OTYKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIiIKICJEaWUgT3B0aW9uIC0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGthbm4gbmljaHQgbWl0IGJlb2JhY2h0ZXRlbiBJbmhhbHRlbiAiCiAidmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNQorIzogYnVpbHRpbi9ncmVwLmM6OTA0CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKLW1zZ3N0ciAiRGllIE9wdGlvbiAtLWNhY2hlZCBrYW5uIG5pY2h0IG1pdCBad2VpZ2VuIHZlcndlbmRldCB3ZXJkZW4uIgorbXNnc3RyICJEaWUgT3B0aW9uIC0tY2FjaGVkIGthbm4gbmljaHQgbWl0IFwiVHJlZVwiLU9iamVrdGVuIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NjAKIG1zZ2lkICIiCkBAIC01MTk5LDEwICs1NTgzLDE0IEBACiBtc2dpZCAicHJvY2VzcyBmaWxlIGFzIGl0IHdlcmUgZnJvbSB0aGlzIHBhdGgiCiBtc2dzdHIgInZlcmFyYmVpdGV0IERhdGVpLCBhbHMgb2Igc2llIHZvbiBkaWVzZW0gUGZhZCB3w6RyZSIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIKKyM6IGJ1aWx0aW4vaGVscC5jOjQxCiBtc2dpZCAicHJpbnQgYWxsIGF2YWlsYWJsZSBjb21tYW5kcyIKIG1zZ3N0ciAiQW56ZWlnZSBhbGxlciB2b3JoYW5kZW5lbiBLb21tYW5kb3MiCiAKKyM6IGJ1aWx0aW4vaGVscC5jOjQyCittc2dpZCAicHJpbnQgbGlzdCBvZiB1c2VmdWwgZ3VpZGVzIgorbXNnc3RyICJ6ZWlndCBMaXN0ZSB2b24gYWxsZ2VtZWluIHZlcndlbmRldGVuIEFubGVpdHVuZ2VuIgorCiAjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgInplaWd0IEhhbmRidWNoIgpAQCAtNTIxNiw4ICs1NjA0LDggQEAKIG1zZ3N0ciAiemVpZ3QgSW5mby1TZWl0ZSIKIAogIzogYnVpbHRpbi9oZWxwLmM6NTIKLW1zZ2lkICJnaXQgaGVscCBbLS1hbGxdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKLW1zZ3N0ciAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbS29tbWFuZG9dIgorbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCittc2dzdHIgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbS29tbWFuZG9dIgogCiAjOiBidWlsdGluL2hlbHAuYzo2NAogIywgYy1mb3JtYXQKQEAgLTUyNzMsMjkxICs1NjYxLDMyMyBAQAogbXNnaWQgIm5vIGluZm8gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCiBtc2dzdHIgImtlaW4gSW5mb3JtYXRpb25zLUJldHJhY2h0ZXIga29ubnRlIG1pdCBkaWVzZXIgQW5mcmFnZSB1bWdlaGVuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjkgYnVpbHRpbi9oZWxwLmM6NDM2CisjOiBidWlsdGluL2hlbHAuYzo0MjAKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICJEZWZpbml0aW9uIHZvbiBBdHRyaWJ1dGVuIHBybyBQZmFkIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjEKK21zZ2lkICJBIEdpdCBnbG9zc2FyeSIKK21zZ3N0ciAiRWluIEdpdC1HbG9zc2FyIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjIKK21zZ2lkICJTcGVjaWZpZXMgaW50ZW50aW9uYWxseSB1bnRyYWNrZWQgZmlsZXMgdG8gaWdub3JlIgorbXNnc3RyICJTcGV6aWZpa2F0aW9uIHZvbiBiZXd1c3N0IGlnbm9yaWVydGVuLCB1bmJlb2JhY2h0ZXRlbiBEYXRlaWVuIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjMKK21zZ2lkICJEZWZpbmluZyBzdWJtb2R1bGUgcHJvcGVydGllcyIKK21zZ3N0ciAiRGVmaW5pdGlvbiB2b24gU3VibW9kdWwtRWlnZW5zY2hhZnRlbiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI0Cittc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgorbXNnc3RyICJTcGV6aWZpa2F0aW9uIHZvbiBDb21taXRzIHVuZCBCZXJlaWNoZW4gZsO8ciBHaXQiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQorbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgorbXNnc3RyICJFaW5lIGVpbmbDvGhyZW5kZSBBbmxlaXR1bmcgenUgR2l0IChmw7xyIFZlcnNpb24gMS41LjEgb2RlciBuZXVlcikiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNgorbXNnaWQgIkFuIG92ZXJ2aWV3IG9mIHJlY29tbWVuZGVkIHdvcmtmbG93cyB3aXRoIEdpdCIKK21zZ3N0ciAiRWluZSDDnGJlcnNpY2h0IMO8YmVyIGVtcGZvaGxlbmUgQXJiZWl0c2FibMOkdWZlIG1pdCBHaXQiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQzOAorbXNnaWQgIlRoZSBjb21tb24gR2l0IGd1aWRlcyBhcmU6XG4iCittc2dzdHIgIkRpZSBhbGxnZW1laW4gdmVyd2VuZGV0ZW4gR2l0LUFubGVpdHVuZ2VuIHNpbmQ6XG4iCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MCBidWlsdGluL2hlbHAuYzo0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzJXMiCiBtc2dzdHIgIlZlcndlbmR1bmc6ICVzJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1MgorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKIG1zZ3N0ciAiZsO8ciBgZ2l0ICVzJyB3dXJkZSBkZXIgQWxpYXMgYCVzJyBhbmdlbGVndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODQKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCiBtc2dzdHIgIk9iamVrdC1UeXBlbiBwYXNzZW4gYmVpICVzIG5pY2h0IHp1c2FtbWVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwNAogbXNnaWQgIm9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUiCiBtc2dzdHIgIk9iamVrdCBoYXQgdW5lcndhcnRldGVuIFR5cCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gImthbm4gJWQgQnl0ZSBuaWNodCBsZXNlbiIKIG1zZ3N0clsxXSAia2FubiAlZCBCeXRlcyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTQKIG1zZ2lkICJlYXJseSBFT0YiCiBtc2dzdHIgInp1IGZyw7xoZXMgRGF0ZWllbmRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIGRlciBFaW5nYWJlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICJ2ZXJ3ZW5kZXRlIG1laHIgQnl0ZXMgYWxzIHZlcmbDvGdiYXIgd2FyZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAiUGFrZXQgaXN0IHp1IGdyb8OfIGbDvHIgZGllIGFrdHVlbGxlIERlZmluaXRpb24gdm9uIG9mZl90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCiBtc2dzdHIgImtvbm50ZSAnJXMnIG5pY2h0IGVyc3RlbGxlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gcGFja2ZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBQYWtldGRhdGVpICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMDkKIG1zZ2lkICJwYWNrIHNpZ25hdHVyZSBtaXNtYXRjaCIKIG1zZ3N0ciAiUGFrZXRzaWduYXR1ciBzdGltbXQgbmljaHQgw7xiZXJlaW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgdmVyc2lvbiAlPFBSSXUzMj4gdW5zdXBwb3J0ZWQiCiBtc2dzdHIgIlBha2V0dmVyc2lvbiAlPFBSSXUzMj4gbmljaHQgdW50ZXJzdMO8dHp0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMjQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyBiYWQgb2JqZWN0IGF0IG9mZnNldCAlbHU6ICVzIgogbXNnc3RyICJQYWtldCBoYXQgZWluIHVuZ8O8bHRpZ2VzIE9iamVrdCBiZWkgVmVyc2F0eiAlbHU6ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0NDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbmZsYXRlIHJldHVybmVkICVkIgogbXNnc3RyICJEZWtvbXByaW1pZXJ1bmcgZ2FiICVkIHp1csO8Y2siCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAwCiBtc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKIG1zZ3N0ciAiV2VydCBmw7xyIFZlcnNhdHogYmVpIERpZmZlcmVuem9iamVrdCDDvGJlcmdlbGF1ZmVuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwOAogbXNnaWQgImRlbHRhIGJhc2Ugb2Zmc2V0IGlzIG91dCBvZiBib3VuZCIKIG1zZ3N0ciAiIgogIldlcnQgZsO8ciBWZXJzYXR6IGJlaSBEaWZmZXJlbnpvYmpla3QgbGllZ3QgYXXDn2VyaGFsYiBkZXMgZ8O8bHRpZ2VuIEJlcmVpY2hzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIG9iamVjdCB0eXBlICVkIgogbXNnc3RyICJVbmJla2FubnRlciBPYmpla3QtVHlwICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgIkthbm4gUGFrZXRkYXRlaSAlcyBuaWNodCBsZXNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKIG1zZ3N0clswXSAiZnLDvGh6ZWl0aWdlcyBFbmRlIGRlciBQYWtldGRhdGVpLCB2ZXJtaXNzZSAlbHUgQnl0ZSIKIG1zZ3N0clsxXSAiZnLDvGh6ZWl0aWdlcyBFbmRlIGRlciBQYWtldGRhdGVpLCB2ZXJtaXNzZSAlbHUgQnl0ZXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTc1CiBtc2dpZCAic2VyaW91cyBpbmZsYXRlIGluY29uc2lzdGVuY3kiCiBtc2dzdHIgImVybnN0aGFmdGUgSW5rb25zaXN0ZW56IG5hY2ggRGVrb21wcmltaWVydW5nIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY2IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY3MiBidWlsdGluL2luZGV4LXBhY2suYzo2OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyOSBidWlsdGluL2luZGV4LXBhY2suYzo3MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICJTSEExIEtPTExJU0lPTiBNSVQgJXMgR0VGVU5ERU4gISIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJrYW5uICVzIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCiBtc2dzdHIgIkthbm4gZXhpc3RpZXJlbmRlcyBPYmpla3QgJXMgbmljaHQgbGVzZW4uIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGJsb2Igb2JqZWN0ICVzIgogbXNnc3RyICJ1bmfDvGx0aWdlcyBCbG9iLU9iamVrdCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgT2JqZWt0LVR5cCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIkZlaGxlciBpbiBPYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhbGwgY2hpbGQgb2JqZWN0cyBvZiAlcyBhcmUgcmVhY2hhYmxlIgogbXNnc3RyICJOaWNodCBhbGxlIEtpbmQtT2JqZWt0ZSB2b24gJXMgc2luZCBlcnJlaWNoYmFyIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICJLb25udGUgRGF0ZWl1bnRlcnNjaGllZCBuaWNodCBhbndlbmRlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIlJlY2VpdmluZyBvYmplY3RzIgogbXNnc3RyICJFbXBmYW5nZSBPYmpla3RlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiSW5kaXppZXJlIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgIlBha2V0IGlzdCBiZXNjaMOkZGlndCAoU0hBMSB1bnRlcnNjaGllZGxpY2gpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICJrYW5uIFBha2V0ZGF0ZWkgbmljaHQgbGVzZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgIlBha2V0ZW5kZSBlbnRow6RsdCBuaWNodCB2ZXJ3ZW5kYmFyZW4gSW5oYWx0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gQXVzZsO8aHJlbiB2b24gXCJwYXJzZV9wYWNrX29iamVjdHMoKVwiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAiTMO2c2UgVW50ZXJzY2hpZWRlIGF1ZiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImthbm4gVGhyZWFkIG5pY2h0IGVyemV1Z2VuOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgIkZlaGxlciBiZWltIEF1ZmzDtnNlbiBkZXIgVW50ZXJzY2hpZWRlIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgInZlcnZvbGxzdMOkbmRpZ3QgbWl0ICVkIGxva2FsZW4gT2JqZWt0ZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIlVuZXJ3YXJ0ZXRlIFByw7xmc3VtbWUgZsO8ciAlcyAoRmVzdHBsYXR0ZW5mZWhsZXI/KSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAiUGFrZXQgaGF0ICVkIHVuYXVmZ2Vsw7ZzdGUgVW50ZXJzY2hpZWQiCiBtc2dzdHJbMV0gIlBha2V0IGhhdCAlZCB1bmF1ZmdlbMO2c3RlIFVudGVyc2NoaWVkZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAiS29ubnRlIGFuZ2Vow6RuZ3RlcyBPYmpla3QgKCVkKSBuaWNodCBrb21wcmltaWVyZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9jYWwgb2JqZWN0ICVzIGlzIGNvcnJ1cHQiCiBtc2dzdHIgImxva2FsZXMgT2JqZWt0ICVzIGlzdCBiZXNjaMOkZGlndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3OQogbXNnaWQgImVycm9yIHdoaWxlIGNsb3NpbmcgcGFjayBmaWxlIgogbXNnc3RyICJGZWhsZXIgYmVpbSBTY2hsaWXDn2VuIGRlciBQYWtldGRhdGVpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBQYWtldGJlc2NocmVpYnVuZ3NkYXRlaSAnJXMnIG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBlYmVuIGVyc3RlbGx0ZSBQYWtldGJlc2NocmVpYnVuZ3NkYXRlaSAnJXMnIG5pY2h0IHNjaGxpZcOfZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICJLYW5uIFBha2V0ZGF0ZWkgbmljaHQgc3BlaWNoZXJuIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgIkthbm4gSW5kZXhkYXRlaSBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIG1zZ3N0ciAiXCJwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj5cIiBpc3QgdW5nw7xsdGlnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgbnVtYmVyIG9mIHRocmVhZHMgc3BlY2lmaWVkICglZCkiCiBtc2dzdHIgInVuZ8O8bHRpZ2UgQW56YWhsIHZvbiBUaHJlYWRzIGFuZ2VnZWJlbiAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICJrZWluZSBVbnRlcnN0w7x0enVuZyB2b24gVGhyZWFkcywgJyVzJyB3aXJkIGlnbm9yaWVydCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiS2FubiBleGlzdGllcmVuZGUgUGFrZXRkYXRlaSAnJXMnIG5pY2h0IMO2ZmZuZW4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKIG1zZ3N0ciAiS2FubiBleGlzdGllcmVuZGUgSW5kZXhkYXRlaSBmw7xyIFBha2V0ICclcycgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICJrZWluIFVudGVyc2NoaWVkOiAlZCBPYmpla3QiCiBtc2dzdHJbMV0gImtlaW4gVW50ZXJzY2hpZWQ6ICVkIE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0NzYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3QiCiBtc2dpZF9wbHVyYWwgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0cyIKIG1zZ3N0clswXSAiTMOkbmdlIGRlciBPYmpla3QtTGlzdGUgPSAlZDogJWx1IE9iamVrdCIKIG1zZ3N0clsxXSAiTMOkbmdlIGRlciBPYmpla3QtTGlzdGUgPSAlZDogJWx1IE9iamVrdGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAiS2FubiBuaWNodCB6dXLDvGNrIHp1IEFyYmVpdHN2ZXJ6ZWljaG5pcyB3ZWNoc2VsbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTUwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCAlcyIKIG1zZ3N0ciAiJXMgaXN0IHVuZ8O8bHRpZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tZml4LXRoaW4ga2FubiBuaWNodCBvaG5lIC0tc3RkaW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NCBidWlsdGluL2luZGV4LXBhY2suYzoxNjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICJOYW1lIGRlciBQYWtldGRhdGVpICclcycgZW5kZXQgbmljaHQgbWl0ICcucGFjayciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIkRpZSBPcHRpb24gLS12ZXJpZnkgd3VyZGUgb2huZSBOYW1lbiBkZXIgUGFrZXRkYXRlaSBhbmdlZ2ViZW4uIgogCkBAIC01NTg5LDE3ICs2MDA5LDE3IEBACiAjOiBidWlsdGluL2luaXQtZGIuYzo5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZGxpbmsgJyVzJyIKLW1zZ3N0ciAia2FubiBWZXJrbsO8cGZ1bmcgJyVzJyBuaWNodCBsZXNlbiIKK21zZ3N0ciAia2FubiBWZXJ3ZWlzICclcycgbmljaHQgbGVzZW4iCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgImluc2FuZWx5IGxvbmcgc3ltbGluayAlcyIKLW1zZ3N0ciAienUgbGFuZ2Ugc3ltYm9saXNjaGUgVmVya27DvHBmdW5nICVzIgorbXNnc3RyICJ6dSBsYW5nZXIgc3ltYm9saXNjaGVyIFZlcndlaXMgJXMiCiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc3ltbGluayAnJXMnICclcyciCi1tc2dzdHIgImthbm4gJyVzJyBuaWNodCBtaXQgJyVzJyBzeW1ib2xpc2NoIHZlcmtuw7xwZmVuIgorbXNnc3RyICJrYW5uIHN5bWJvbGlzY2hlbiBWZXJ3ZWlzICclcycgYXVmICclcycgbmljaHQgZXJzdGVsbGVuIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzoxMDYKICMsIGMtZm9ybWF0CkBAIC01NjQ5LDcgKzYwNjksNyBAQAogIzogYnVpbHRpbi9pbml0LWRiLmM6MzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZ2l0IGxpbmsgJXMiCi1tc2dzdHIgIktvbm50ZSBnaXQtVmVya27DvHBmdW5nICVzIG5pY2h0IGVyc3RlbGxlbiIKK21zZ3N0ciAiS29ubnRlIGdpdC1WZXJ3ZWlzICVzIG5pY2h0IGVyc3RlbGxlbiIKIAogIy4KICMuICogVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAnJXMnIGlzIGVpdGhlciAiUmVpbml0aWFsaXplZApAQCAtNTY1OSw3ICs2MDc5LDcgQEAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyVzIEdpdCByZXBvc2l0b3J5IGluICVzJXNcbiIKLW1zZ3N0ciAiJXMlcyBHaXQtUHJvamVrdGFyY2hpdiBpbiAlcyVzXG4iCittc2dzdHIgIiVzJXMgR2l0LVJlcG9zaXRvcnkgaW4gJXMlc1xuIgogCiAjOiBidWlsdGluL2luaXQtZGIuYzo0MjEKIG1zZ2lkICJSZWluaXRpYWxpemVkIGV4aXN0aW5nIgpAQCAtNTY5MSwxMCArNjExMSw5IEBACiAKICM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MQogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKLW1zZ3N0ciAiIgotImdpYnQgYW4sIGRhc3MgZGFzIEdpdC1Qcm9qZWt0YXJjaGl2IG1pdCBtZWhyZXJlbiBCZW51dHplcm4gZ2V0ZWlsdCB3aXJkIgorbXNnc3RyICJnaWJ0IGFuLCBkYXNzIGRhcyBHaXQtUmVwb3NpdG9yeSBtaXQgbWVocmVyZW4gQmVudXR6ZXJuIGdldGVpbHQgd2lyZCIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CiBtc2dpZCAiYmUgcXVpZXQiCiBtc2dzdHIgIndlbmlnZXIgQXVzZ2FiZW4iCiAKQEAgLTU3MjQsMzY4ICs2MTQzLDM4NSBAQAogIzogYnVpbHRpbi9pbml0LWRiLmM6NTg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCi1tc2dzdHIgIkthbm4gbmljaHQgYXVmIEFyYmVpdHNiYXVtICclcycgenVncmVpZmVuLiIKLQotIzogYnVpbHRpbi9sb2cuYzo0MAotbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxzaW5jZT4uLjx1bnRpbD5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKLW1zZ3N0ciAiZ2l0IGxvZyBbPE9wdGlvbmVuPl0gWzxzZWl0Pi4uPGJpcz5dIFtbLS1dIDxQZmFkPi4uLl1cbiIKK21zZ3N0ciAiS2FubiBuaWNodCBhdWYgQXJiZWl0c3ZlcnplaWNobmlzICclcycgenVncmVpZmVuLiIKIAogIzogYnVpbHRpbi9sb2cuYzo0MQorbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKK21zZ3N0ciAiZ2l0IGxvZyBbPE9wdGlvbmVuPl0gW0NvbW1pdGJlcmVpY2g+XSBbWy0tXSA8UGZhZD4uLi5dXG4iCisKKyM6IGJ1aWx0aW4vbG9nLmM6NDIKIG1zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgogbXNnc3RyICIgICBvZGVyOiBnaXQgc2hvdyBbT3B0aW9uZW5dIDxPYmpla3Q+Li4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEwMworIzogYnVpbHRpbi9sb2cuYzoxMjQKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAidW50ZXJkcsO8Y2t0IEF1c2dhYmUgZGVyIFVudGVyc2NoaWVkZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgInplaWd0IFF1ZWxsZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgInZlcndlbmRldCBcIm1haWxtYXBcIi1EYXRlaSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI3CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiZGVjb3JhdGUtT3B0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTk5CisjOiBidWlsdGluL2xvZy5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgImxldHp0ZSBBdXNnYWJlOiAlZCAlc1xuIgogCi0jOiBidWlsdGluL2xvZy5jOjQyMiBidWlsdGluL2xvZy5jOjUxNAorIzogYnVpbHRpbi9sb2cuYzo0NTMgYnVpbHRpbi9sb2cuYzo1NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJLYW5uIE9iamVrdCAlcyBuaWNodCBsZXNlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NTM4CisjOiBidWlsdGluL2xvZy5jOjU2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHR5cGU6ICVkIgogbXNnc3RyICJVbmJla2FubnRlciBUeXA6ICVkIgogCi0jOiBidWlsdGluL2xvZy5jOjYzMAorIzogYnVpbHRpbi9sb2cuYzo2NjkKIG1zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgogbXNnc3RyICJmb3JtYXQuaGVhZGVycyBvaG5lIFdlcnQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzA0CisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAiTmFtZSBkZXMgQXVzZ2FiZXZlcnplaWNobmlzc2VzIGlzdCB6dSBsYW5nLiIKIAotIzogYnVpbHRpbi9sb2cuYzo3MjAKKyM6IGJ1aWx0aW4vbG9nLmM6NzY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIHBhdGNoIGZpbGUgJXMiCiBtc2dzdHIgIkthbm4gUGF0Y2gtRGF0ZWkgJXMgbmljaHQgw7ZmZm5lbiIKIAotIzogYnVpbHRpbi9sb2cuYzo3MzQKKyM6IGJ1aWx0aW4vbG9nLmM6NzgxCiBtc2dpZCAiTmVlZCBleGFjdGx5IG9uZSByYW5nZS4iCi1tc2dzdHIgIkJyYXVjaGUgZ2VuYXUgZWluZW4gVmVyc2lvbnNiZXJlaWNoLiIKK21zZ3N0ciAiQnJhdWNoZSBnZW5hdSBlaW5lbiBDb21taXQtQmVyZWljaC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzQyCisjOiBidWlsdGluL2xvZy5jOjc4OQogbXNnaWQgIk5vdCBhIHJhbmdlLiIKLW1zZ3N0ciAiS2VpbiBWZXJzaW9uc2JlcmVpY2guIgorbXNnc3RyICJLZWluIENvbW1pdC1CZXJlaWNoLiIKIAotIzogYnVpbHRpbi9sb2cuYzo4MTUKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAiQW5zY2hyZWliZW4gYmVuw7Z0aWd0IEUtTWFpbC1Gb3JtYXQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODg4CisjOiBidWlsdGluL2xvZy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmUgaW4tcmVwbHktdG86ICVzIgogbXNnc3RyICJ1bmfDvGx0aWdlcyBpbi1yZXBseS10bzogJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTE2CisjOiBidWlsdGluL2xvZy5jOjk5NQogbXNnaWQgImdpdCBmb3JtYXQtcGF0Y2ggW29wdGlvbnNdIFs8c2luY2U+IHwgPHJldmlzaW9uIHJhbmdlPl0iCi1tc2dzdHIgImdpdCBmb3JtYXQtcGF0Y2ggW09wdGlvbmVuXSBbPHNlaXQ+IHwgPFJldmlzaW9uc2JlcmVpY2g+XSIKK21zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBbT3B0aW9uZW5dIFs8c2VpdD4gfCA8Q29tbWl0YmVyZWljaD5dIgogCi0jOiBidWlsdGluL2xvZy5jOjk2MQorIzogYnVpbHRpbi9sb2cuYzoxMDQwCiBtc2dpZCAiVHdvIG91dHB1dCBkaXJlY3Rvcmllcz8iCiBtc2dzdHIgIlp3ZWkgQXVzZ2FiZXZlcnplaWNobmlzc2U/IgogCi0jOiBidWlsdGluL2xvZy5jOjEwOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgInZlcndlbmRldCBbUEFUQ0ggbi9tXSBhdWNoIG1pdCBlaW56ZWxuZW0gUGF0Y2giCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwMgorIzogYnVpbHRpbi9sb2cuYzoxMTU4CiBtc2dpZCAidXNlIFtQQVRDSF0gZXZlbiB3aXRoIG11bHRpcGxlIHBhdGNoZXMiCiBtc2dzdHIgInZlcndlbmRldCBbUEFUQ0hdIGF1Y2ggbWl0IG1laHJlcmVuIFBhdGNoZXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwNgorIzogYnVpbHRpbi9sb2cuYzoxMTYyCiBtc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCiBtc2dzdHIgIkF1c2dhYmUgZGVyIFBhdGNoZXMgaW4gU3RhbmRhcmQtQXVzZ2FiZSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTA4CisjOiBidWlsdGluL2xvZy5jOjExNjQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAiZXJ6ZXVndCBlaW4gRGVja2JsYXR0IgogCi0jOiBidWlsdGluL2xvZy5jOjExMTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NgogbXNnaWQgInVzZSBzaW1wbGUgbnVtYmVyIHNlcXVlbmNlIGZvciBvdXRwdXQgZmlsZSBuYW1lcyIKIG1zZ3N0ciAidmVyd2VuZGV0IGVpbmZhY2hlIE51bW1lcm5mb2xnZSBmw7xyIGRpZSBOYW1lbiBkZXIgQXVzZ2FiZWRhdGVpZW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMQorIzogYnVpbHRpbi9sb2cuYzoxMTY3CiBtc2dpZCAic2Z4IgogbXNnc3RyICJEYXRlaWVuZHVuZyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTEyCisjOiBidWlsdGluL2xvZy5jOjExNjgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAidmVyd2VuZGV0IDxEYXRlaWVuZHVuZz4gYW5zdGF0dCAnLnBhdGNoJyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE0CisjOiBidWlsdGluL2xvZy5jOjExNzAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICJiZWdpbm50IGRpZSBOdW1tZXJpZXJ1bmcgZGVyIFBhdGNoZXMgYmVpIDxuPiBhbnN0YXR0IGJlaSAxIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MgogbXNnaWQgIm1hcmsgdGhlIHNlcmllcyBhcyBOdGggcmUtcm9sbCIKIG1zZ3N0ciAia2VubnplaWNobmV0IGRpZSBTZXJpZSBhbHMgbi10ZSBGYXNzdW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NAogbXNnaWQgIlVzZSBbPHByZWZpeD5dIGluc3RlYWQgb2YgW1BBVENIXSIKIG1zZ3N0ciAidmVyd2VuZGV0IFs8UHJlZml4Pl0gYW5zdGF0dCBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgInN0b3JlIHJlc3VsdGluZyBmaWxlcyBpbiA8ZGlyPiIKIG1zZ3N0ciAic3BlaWNoZXJ0IGVyemV1Z3RlIERhdGVpZW4gaW4gPFZlcnplaWNobmlzPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI0CisjOiBidWlsdGluL2xvZy5jOjExODAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAiW1BBVENIXSB3aXJkIG5pY2h0IGVudGZlcm50L2hpbnp1Z2Vmw7xndCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI3CisjOiBidWlsdGluL2xvZy5jOjExODMKIG1zZ2lkICJkb24ndCBvdXRwdXQgYmluYXJ5IGRpZmZzIgogbXNnc3RyICJnaWJ0IGtlaW5lIGJpbsOkcmVuIFVudGVyc2NoaWVkZSBhdXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyOQorIzogYnVpbHRpbi9sb2cuYzoxMTg1CiBtc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgogbXNnc3RyICIiCi0ic2NobGllw590IGtlaW5lIFBhdGNoZXMgZWluLCBkaWUgZWluZXIgVmVyc2lvbiBpbSDDnGJlcm5haG1lendlaWcgZW50c3ByZWNoZW4iCisic2NobGllw590IGtlaW5lIFBhdGNoZXMgZWluLCBkaWUgZWluZW0gQ29tbWl0IGltIFVwc3RyZWFtLUJyYW5jaCBlbnRzcHJlY2hlbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMxCisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzaG93IHBhdGNoIGZvcm1hdCBpbnN0ZWFkIG9mIGRlZmF1bHQgKHBhdGNoICsgc3RhdCkiCiBtc2dzdHIgInplaWd0IFBhdGNoZm9ybWF0IGFuc3RhdHQgZGVzIFN0YW5kYXJkcyAoUGF0Y2ggKyBadXNhbW1lbmZhc3N1bmcpIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4OQogbXNnaWQgIk1lc3NhZ2luZyIKIG1zZ3N0ciAiRW1haWwtRWluc3RlbGx1bmdlbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM0CisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgIkhlYWRlciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM1CisjOiBidWlsdGluL2xvZy5jOjExOTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICJmw7xndCBFbWFpbC1IZWFkZXIgaGluenUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAiRW1haWwiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNgorIzogYnVpbHRpbi9sb2cuYzoxMTkyCiBtc2dpZCAiYWRkIFRvOiBoZWFkZXIiCiBtc2dzdHIgImbDvGd0ICBcIlRvOlwiLUhlYWRlciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJhZGQgQ2M6IGhlYWRlciIKIG1zZ3N0ciAiZsO8Z3QgXCJDYzpcIi1IZWFkZXIgaGluenUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorIzogYnVpbHRpbi9sb2cuYzoxMTk2Cittc2dpZCAiaWRlbnQiCittc2dzdHIgIklkZW50IgorCisjOiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJzZXQgRnJvbSBhZGRyZXNzIHRvIDxpZGVudD4gKG9yIGNvbW1pdHRlciBpZGVudCBpZiBhYnNlbnQpIgorbXNnc3RyICIiCisic2V0enQgXCJGcm9tXCItQWRyZXNzZSBhdWYgPElkZW50PiAob2RlciBJZGVudCBkZXMgQ29tbWl0LUVyc3RlbGxlcnMsd2VubiAiCisiZmVobGVuZCkiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5OQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIm1lc3NhZ2UtaWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MQorIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICJtYWNodCBhdXMgZXJzdGVyIEVtYWlsIGVpbmUgQW50d29ydCB6dSA8bWVzc2FnZS1pZD4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MiBidWlsdGluL2xvZy5jOjExNDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMSBidWlsdGluL2xvZy5jOjEyMDQKIG1zZ2lkICJib3VuZGFyeSIKIG1zZ3N0ciAiR3JlbnplIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgImjDpG5ndCBlaW5lbiBQYXRjaCBhbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQ2CisjOiBidWlsdGluL2xvZy5jOjEyMDUKIG1zZ2lkICJpbmxpbmUgdGhlIHBhdGNoIgogbXNnc3RyICJmw7xndCBkZW4gUGF0Y2ggZGlyZWt0IGluIGRpZSBOYWNocmljaHQgZWluIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwOQogbXNnaWQgImVuYWJsZSBtZXNzYWdlIHRocmVhZGluZywgc3R5bGVzOiBzaGFsbG93LCBkZWVwIgogbXNnc3RyICJha3RpdmllcnQgTmFjaHJpY2h0ZW52ZXJrZXR0dW5nLCBTdGlsZTogc2hhbGxvdywgZGVlcCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUyCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgIlNpZ25hdHVyIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAiZsO8Z3QgZWluZSBTaWduYXR1ciBoaW56dSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU1CisjOiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICJ6ZWlndCBrZWluZSBEYXRlaW5hbWVuIGRlciBQYXRjaGVzIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMzkKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIgorbXNnc3RyICJVbmfDvGx0aWdlIElkZW50aWZpa2F0aW9uc3plaWxlOiAlcyIKKworIzogYnVpbHRpbi9sb2cuYzoxMzAzCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLW4gdW5kIC1rIHNjaGxpZcOfZW4gc2ljaCBnZWdlbnNlaXRpZyBhdXMuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNDEKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwNQogbXNnaWQgIi0tc3ViamVjdC1wcmVmaXggYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICJEaWUgT3B0aW9uZW4gLS1zdWJqZWN0LXByZWZpeCB1bmQgLWsgc2NobGllw59lbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OQorIzogYnVpbHRpbi9sb2cuYzoxMzEzCiBtc2dpZCAiLS1uYW1lLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLW5hbWUtb25seSBrYW5uIG5pY2h0IHZlcndlbmRldCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxNQogbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLW5hbWUtc3RhdHVzIGthbm4gbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI1MworIzogYnVpbHRpbi9sb2cuYzoxMzE3CiBtc2dpZCAiLS1jaGVjayBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJEaWUgT3B0aW9uIC0tY2hlY2sga2FubiBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjc2CisjOiBidWlsdGluL2xvZy5jOjEzNDAKIG1zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKIG1zZ3N0ciAiU3RhbmRhcmQtQXVzZ2FiZSBvZGVyIFZlcnplaWNobmlzLCB3ZWxjaGVzIHZvbiBiZWlkZW0/IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJLb25udGUgVmVyemVpY2huaXMgJyVzJyBuaWNodCBlcnN0ZWxsZW4uIgogCi0jOiBidWlsdGluL2xvZy5jOjE0MzEKKyM6IGJ1aWx0aW4vbG9nLmM6MTQ5MAogbXNnaWQgIkZhaWxlZCB0byBjcmVhdGUgb3V0cHV0IGZpbGVzIgogbXNnc3RyICJGZWhsZXIgYmVpbSBFcnN0ZWxsZW4gZGVyIEF1c2dhYmVkYXRlaWVuLiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDgwCisjOiBidWlsdGluL2xvZy5jOjE1MzkKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKLW1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8w5xiZXJuYWhtZXp3ZWlnPiBbPEFyYmVpdHN6d2VpZz4gWzxMaW1pdD5dXV0iCittc2dzdHIgImdpdCBjaGVycnkgWy12XSBbPFVwc3RyZWFtPiBbPEJyYW5jaD4gWzxMaW1pdD5dXV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTUzNQorIzogYnVpbHRpbi9sb2cuYzoxNTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb3VsZCBub3QgZmluZCBhIHRyYWNrZWQgcmVtb3RlIGJyYW5jaCwgcGxlYXNlIHNwZWNpZnkgPHVwc3RyZWFtPiBtYW51YWxseS5cbiIKIG1zZ3N0ciAiIgotIktvbm50ZSBnZWZvbGd0ZW4sIGV4dGVybmVuIFp3ZWlnIG5pY2h0IGZpbmRlbiwgYml0dGUgZ2ViZW4gU2llIDx1cHN0cmVhbT4gIgorIktvbm50ZSBnZWZvbGd0ZW4gUmVtb3RlLUJyYW5jaCBuaWNodCBmaW5kZW4sIGJpdHRlIGdlYmVuIFNpZSA8VXBzdHJlYW0+ICIKICJtYW51ZWxsIGFuLlxuIgogCi0jOiBidWlsdGluL2xvZy5jOjE1NDggYnVpbHRpbi9sb2cuYzoxNTUwIGJ1aWx0aW4vbG9nLmM6MTU2MgorIzogYnVpbHRpbi9sb2cuYzoxNjA3IGJ1aWx0aW4vbG9nLmM6MTYwOSBidWlsdGluL2xvZy5jOjE2MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBjb21taXQgJXMiCi1tc2dzdHIgIlVuYmVrYW5udGUgVmVyc2lvbiAlcyIKK21zZ3N0ciAiVW5iZWthbm50ZXIgQ29tbWl0ICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtPcHRpb25lbl0gWzxEYXRlaT4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKLW1zZ3N0ciAiemVpZ3QgZGVuIERhdGVpc3RhdHVzIG1pdCBNYXJraWVydW5nZW4iCittc2dzdHIgInplaWd0IGRlbiBEYXRlaXN0YXR1cyBtaXQgVGFncyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2NwogbXNnaWQgInVzZSBsb3dlcmNhc2UgbGV0dGVycyBmb3IgJ2Fzc3VtZSB1bmNoYW5nZWQnIGZpbGVzIgogbXNnc3RyICIiCiAidmVyd2VuZGV0IEtsZWluYnVjaHN0YWJlbiBmw7xyIERhdGVpZW4gbWl0ICdhc3N1bWUgdW5jaGFuZ2VkJyBNYXJraWVydW5nIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CiBtc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCiBtc2dzdHIgInplaWd0IHp3aXNjaGVuZ2VzcGVpY2hlcnRlbiBEYXRlaWVuIGluIGRlciBBdXNnYWJlIGFuIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKIG1zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiemVpZ3QgZW50ZmVybnRlIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzMKIG1zZ2lkICJzaG93IG1vZGlmaWVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInplaWd0IGdlw6RuZGVydGUgRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NQogbXNnaWQgInNob3cgb3RoZXIgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiemVpZ3Qgc29uc3RpZ2UgRGF0ZWllbiBpbiBkZXIgQXVzZ2FiZSBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ6ZWlndCBpZ25vcmllcnRlIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKIG1zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKLW1zZ3N0ciAiemVpZ3QgT2JqZWt0bmFtZW4gdm9uIEluaGFsdGVuIGluIGRlciBCZXJlaXRzdGVsbHVuZyBpbiBkZXIgQXVzZ2FiZSBhbiIKK21zZ3N0ciAiIgorInplaWd0IE9iamVrdG5hbWVuIHZvbiBJbmhhbHRlbiwgZGllIHp1bSBDb21taXQgdm9yZ2VtZXJrdCBzaW5kLCBpbiBkZXIgIgorIkF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKIG1zZ2lkICJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIgogbXNnc3RyICJ6ZWlndCBEYXRlaWVuIGltIERhdGVpc3lzdGVtLCBkaWUgZ2Vsw7ZzY2h0IHdlcmRlbiBtw7xzc2VuLCBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAogbXNnaWQgInNob3cgJ290aGVyJyBkaXJlY3RvcmllcycgbmFtZSBvbmx5IgogbXNnc3RyICJ6ZWlndCBudXIgTmFtZW4gdm9uICdzb25zdGlnZW4nIFZlcnplaWNobmlzc2VuIGFuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3CiBtc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiemVpZ3Qga2VpbmUgbGVlcmVuIFZlcnplaWNobmlzc2UgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKIG1zZ2lkICJzaG93IHVubWVyZ2VkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInplaWd0IG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIERhdGVpZW4gaW4gZGVyIEF1c2dhYmUgYW4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiemVpZ3QgJ3Jlc29sdmUtdW5kbycgSW5mb3JtYXRpb25lbiBhbiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NAogbXNnaWQgInNraXAgZmlsZXMgbWF0Y2hpbmcgcGF0dGVybiIKIG1zZ3N0ciAibMOkc3N0IERhdGVpZW4gYXVzLCBkaWUgZWluZW0gTXVzdGVyIGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3CiBtc2dpZCAiZXhjbHVkZSBwYXR0ZXJucyBhcmUgcmVhZCBmcm9tIDxmaWxlPiIKIG1zZ3N0ciAic2NobGllw590IE11c3RlciwgZ2VsZXNlbiB2b24gPERhdGVpPiwgYXVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAwCiBtc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCiBtc2dzdHIgImxpZXN0IHp1c8OkdHpsaWNoZSBwcm8tVmVyemVpY2huaXMgQXVzY2hsdXNzbXVzdGVyIGF1cyA8RGF0ZWk+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAiZsO8Z3QgZGllIHN0YW5kYXJkbcOkw59pZ2VuIEdpdC1BdXNzY2hsw7xzc2UgaGluenUiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDUKIG1zZ2lkICJtYWtlIHRoZSBvdXRwdXQgcmVsYXRpdmUgdG8gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAiQXVzZ2FiZSByZWxhdGl2IHp1bSBQcm9qZWt0dmVyemVpY2huaXMiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIiIKLSJiZWhhbmRsZSBlcyBhbHMgRmVobGVyLCB3ZW5uIHNpY2ggZWluZSA8RGF0ZWk+IG5pY2h0IGluIGRlciBCZXJlaXRzdGVsbHVuZyAiCisiYmVoYW5kbGUgZXMgYWxzIEZlaGxlciwgd2VubiBzaWNoIGVpbmUgPERhdGVpPiBuaWNodCBpbiBkZXIgU3RhZ2luZy1BcmVhICIKICJiZWZpbmRldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQogbXNnaWQgInRyZWUtaXNoIgotbXNnc3RyICJWZXJzaW9uc3JlZmVyZW56IgorbXNnc3RyICJDb21taXQtUmVmZXJlbnoiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKIG1zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgogbXNnc3RyICIiCi0iZ2lidCB2b3IsIGRhc3MgUGZhZGUsIGRpZSBzZWl0IDxWZXJzaW9uc3JlZmVyZW56PiBnZWzDtnNjaHQgd3VyZGVuLCBpbW1lciAiCi0ibm9jaCB2b3JoYW5kZW4gc2luZCIKKyJnaWJ0IHZvciwgZGFzcyBQZmFkZSwgZGllIHNlaXQgPENvbW1pdC1SZWZlcmVuej4gZ2Vsw7ZzY2h0IHd1cmRlbiwgaW1tZXIgbm9jaCAiCisidm9yaGFuZGVuIHNpbmQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTIKIG1zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgogbXNnc3RyICJ6ZWlndCBBdXNnYWJlbiB6dXIgRmVobGVyc3VjaGUgYW4iCiAKICM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI3CiBtc2dpZCAiZ2l0IGxzLXRyZWUgWzxvcHRpb25zPl0gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKLW1zZ3N0ciAiZ2l0IGxzLXRyZWUgWzxPcHRpb25lbj5dIDxWZXJzaW9uc3JlZmVyZW56PiBbPFBmYWQ+Li4uXSIKK21zZ3N0ciAiZ2l0IGxzLXRyZWUgWzxPcHRpb25lbj5dIDxDb21taXQtUmVmZXJlbno+IFs8UGZhZD4uLi5dIgogCiAjOiBidWlsdGluL2xzLXRyZWUuYzoxMjUKIG1zZ2lkICJvbmx5IHNob3cgdHJlZXMiCi1tc2dzdHIgInplaWd0IG51ciBCw6R1bWUgYW4iCittc2dzdHIgInplaWd0IG51ciBWZXJ6ZWljaG5pc3NlIGFuIgogCiAjOiBidWlsdGluL2xzLXRyZWUuYzoxMjcKIG1zZ2lkICJyZWN1cnNlIGludG8gc3VidHJlZXMiCi1tc2dzdHIgImbDvGhydCBSZWt1cnNpb24gaW4gVGVpbGLDpHVtZW4gZHVyY2giCittc2dzdHIgImbDvGhydCBSZWt1cnNpb24gaW4gVW50ZXJ2ZXJ6ZWljaG5pc3NlbiBkdXJjaCIKIAogIzogYnVpbHRpbi9scy10cmVlLmM6MTI5CiBtc2dpZCAic2hvdyB0cmVlcyB3aGVuIHJlY3Vyc2luZyIKLW1zZ3N0ciAiemVpZ3QgQsOkdW1lIGJlaSBSZWt1cnNpb24gYW4iCittc2dzdHIgInplaWd0IFZlcnplaWNobmlzc2UgYmVpIFJla3Vyc2lvbiBhbiIKIAogIzogYnVpbHRpbi9scy10cmVlLmM6MTMyCiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwgYnl0ZSIKQEAgLTYxMDYsMTk1ICs2NTQyLDE4NyBAQAogIzogYnVpbHRpbi9scy10cmVlLmM6MTQyCiBtc2dpZCAibGlzdCBlbnRpcmUgdHJlZTsgbm90IGp1c3QgY3VycmVudCBkaXJlY3RvcnkgKGltcGxpZXMgLS1mdWxsLW5hbWUpIgogbXNnc3RyICIiCi0ibGlzdGV0IGRlbiBnZXNhbXRlbiBCYXVtIGF1ZjsgbmljaHQgbnVyIGRhcyBha3R1ZWxsZSBWZXJ6ZWljaG5pcyAoaW1wbGl6aWVydCAiCi0iLS1mdWxsLW5hbWUpIgorImxpc3RldCBkYXMgZ2VzYW10ZSBWZXJ6ZWljaG5pcyBhdWY7IG5pY2h0IG51ciBkYXMgYWt0dWVsbGUgVmVyemVpY2huaXMgIgorIihpbXBsaXppZXJ0IC0tZnVsbC1uYW1lKSIKIAogIzogYnVpbHRpbi9tZXJnZS5jOjQzCiBtc2dpZCAiZ2l0IG1lcmdlIFtvcHRpb25zXSBbPGNvbW1pdD4uLi5dIgotbXNnc3RyICJnaXQgbWVyZ2UgW09wdGlvbmVuXSBbPFZlcnNpb24+Li4uXSIKK21zZ3N0ciAiZ2l0IG1lcmdlIFtPcHRpb25lbl0gWzxDb21taXQ+Li4uXSIKIAogIzogYnVpbHRpbi9tZXJnZS5jOjQ0CiBtc2dpZCAiZ2l0IG1lcmdlIFtvcHRpb25zXSA8bXNnPiBIRUFEIDxjb21taXQ+IgotbXNnc3RyICJnaXQgbWVyZ2UgW09wdGlvbmVuXSA8QmVzY2hyZWlidW5nPiBIRUFEIDxWZXJzaW9uPiIKK21zZ3N0ciAiZ2l0IG1lcmdlIFtPcHRpb25lbl0gPEJlc2NocmVpYnVuZz4gSEVBRCA8Q29tbWl0PiIKIAogIzogYnVpbHRpbi9tZXJnZS5jOjQ1CiBtc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCiBtc2dzdHIgImdpdCBtZXJnZSAtLWFib3J0IgogCi0jOiBidWlsdGluL21lcmdlLmM6OTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5OAogbXNnaWQgInN3aXRjaCBgbScgcmVxdWlyZXMgYSB2YWx1ZSIKIG1zZ3N0ciAiU2NoYWx0ZXIgJ20nIGVyZm9yZGVydCBlaW5lbiBXZXJ0LiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNworIzogYnVpbHRpbi9tZXJnZS5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCBtZXJnZSBzdHJhdGVneSAnJXMnLlxuIgotbXNnc3RyICJLb25udGUgWnVzYW1tZW5mw7xocnVuZ3NzdHJhdGVnaWUgJyVzJyBuaWNodCBmaW5kZW4uXG4iCittc2dzdHIgIktvbm50ZSBNZXJnZS1TdHJhdGVnaWUgJyVzJyBuaWNodCBmaW5kZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiVmVyZsO8Z2JhcmUgU3RyYXRlZ2llbiBzaW5kOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIzogYnVpbHRpbi9tZXJnZS5jOjE0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiVmVyZsO8Z2JhcmUgYmVudXR6ZXJkZWZpbmllcnRlIFN0cmF0ZWdpZW4gc2luZDoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKIG1zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgotbXNnc3RyICIiCi0iemVpZ3Qga2VpbmUgWnVzYW1tZW5mYXNzdW5nIGRlciBVbnRlcnNjaGllZGUgYW0gU2NobHVzcyBkZXIgWnVzYW1tZW5mw7xocnVuZyAiCi0iYW4iCittc2dzdHIgInplaWd0IGtlaW5lIFp1c2FtbWVuZmFzc3VuZyBkZXIgVW50ZXJzY2hpZWRlIGFtIFNjaGx1c3MgZGVzIE1lcmdlcyBhbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NgorIzogYnVpbHRpbi9tZXJnZS5jOjIwMQogbXNnaWQgInNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKLW1zZ3N0ciAiIgotInplaWd0IGVpbmUgWnVzYW1tZW5mYXNzdW5nIGRlciBVbnRlcnNjaGllZGUgYW0gU2NobHVzcyBkZXIgWnVzYW1tZW5mw7xocnVuZyBhbiIKK21zZ3N0ciAiemVpZ3QgZWluZSBadXNhbW1lbmZhc3N1bmcgZGVyIFVudGVyc2NoaWVkZSBhbSBTY2hsdXNzIGRlcyBNZXJnZXMgYW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDIKIG1zZ2lkICIoc3lub255bSB0byAtLXN0YXQpIgogbXNnc3RyICIoU3lub255bSBmw7xyIC0tc3RhdCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQKIG1zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIiIKLSJmw7xndCAoaMO2Y2hzdGVucyA8bj4pIEVpbnRyw6RnZSB2b24gXCJzaG9ydGxvZ1wiIHp1ciBCZXNjaHJlaWJ1bmcgZGVyICIKLSJadXNhbW1lbmbDvGhydW5nIGhpbnp1IgorImbDvGd0IChow7ZjaHN0ZW5zIDxuPikgRWludHLDpGdlIHZvbiBcInNob3J0bG9nXCIgenVyIEJlc2NocmVpYnVuZyBkZXMgTWVyZ2UtIgorIkNvbW1pdHMgaGluenUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKIG1zZ2lkICJjcmVhdGUgYSBzaW5nbGUgY29tbWl0IGluc3RlYWQgb2YgZG9pbmcgYSBtZXJnZSIKLW1zZ3N0ciAiZXJ6ZXVndCBlaW5lIGVpbnplbG5lIFZlcnNpb24gYW5zdGF0dCBlaW5lciBadXNhbW1lbmbDvGhydW5nIgorbXNnc3RyICJlcnpldWd0IGVpbmVuIGVpbnplbG5lbiBDb21taXQgYW5zdGF0dCBlaW5lcyBNZXJnZXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKIG1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCi1tc2dzdHIgIiIKLSJmw7xocnQgZWluZSBFaW50cmFndW5nIGR1cmNoLCB3ZW5uIGRpZSBadXNhbW1lbmbDvGhydW5nIGVyZm9sZ3JlaWNoIHdhciAiCi0iKFN0YW5kYXJkKSIKK21zZ3N0ciAiZsO8aHJ0IGVpbmVuIENvbW1pdCBkdXJjaCwgd2VubiBkZXIgTWVyZ2UgZXJmb2xncmVpY2ggd2FyIChTdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTEKIG1zZ2lkICJlZGl0IG1lc3NhZ2UgYmVmb3JlIGNvbW1pdHRpbmciCi1tc2dzdHIgIkJlYXJiZWl0dW5nIGRlciBWZXJzaW9uc2Jlc2NocmVpYnVuZyB2b3IgZGVyIEVpbnRyYWd1bmciCittc2dzdHIgIkJlYXJiZWl0dW5nIGRlciBCZXNjaHJlaWJ1bmcgdm9yIGRlbSBDb21taXQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTIKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgogbXNnc3RyICJlcmxhdWJ0IFZvcnNwdWxlbiAoU3RhbmRhcmQpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAwCisjOiBidWlsdGluL21lcmdlLmM6MjE0CiBtc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKIG1zZ3N0ciAiYnJpY2h0IGFiLCB3ZW5uIGtlaW4gVm9yc3B1bGVuIG3DtmdsaWNoIGlzdCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMworIzogYnVpbHRpbi9tZXJnZS5jOjIxOAogbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKLW1zZ3N0ciAiw7xiZXJwcsO8ZnQgZGllIGdlbmFubnRlIFZlcnNpb24gYXVmIGVpbmUgZ8O8bHRpZ2UgR1BHLVNpZ25hdHVyIgorbXNnc3RyICLDvGJlcnByw7xmdCBkZW4gZ2VuYW5udGVuIENvbW1pdCBhdWYgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQgYnVpbHRpbi9ub3Rlcy5jOjg2NiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9tZXJnZS5jOjIxOSBidWlsdGluL25vdGVzLmM6NzM4IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgIlN0cmF0ZWdpZSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNQorIzogYnVpbHRpbi9tZXJnZS5jOjIyMAogbXNnaWQgIm1lcmdlIHN0cmF0ZWd5IHRvIHVzZSIKLW1zZ3N0ciAienUgdmVyd2VuZGVuZGUgWnVzYW1tZW5mw7xocnVuZ3NzdHJhdGVnaWUiCittc2dzdHIgInp1IHZlcndlbmRlbmRlIE1lcmdlLVN0cmF0ZWdpZSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNgorIzogYnVpbHRpbi9tZXJnZS5jOjIyMQogbXNnaWQgIm9wdGlvbj12YWx1ZSIKIG1zZ3N0ciAiT3B0aW9uPVdlcnQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjIKIG1zZ2lkICJvcHRpb24gZm9yIHNlbGVjdGVkIG1lcmdlIHN0cmF0ZWd5IgotbXNnc3RyICJPcHRpb24gZsO8ciBhdXNnZXfDpGhsdGUgWnVzYW1tZW5mw7xocnVuZ3NzdHJhdGVnaWUiCittc2dzdHIgIk9wdGlvbiBmw7xyIGF1c2dld8OkaGx0ZSBNZXJnZS1TdHJhdGVnaWUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjQKIG1zZ2lkICJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiCiBtc2dzdHIgIiIKLSJmw7xocnQgVmVyc2lvbnNiZXNjaHJlaWJ1bmcgenVzYW1tZW4gKGbDvHIgZWluZSBadXNhbW1lbmbDvGhydW5nLCBkaWUga2VpbiAiCi0iVm9yc3B1bGVuIHdhcikiCisiZsO8aHJ0IENvbW1pdC1CZXNjaHJlaWJ1bmcgenVzYW1tZW4gKGbDvHIgZWluZW4gTWVyZ2UsIGRlciBrZWluIFZvcnNwdWxlbiB3YXIpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjEzCisjOiBidWlsdGluL21lcmdlLmM6MjI4CiBtc2dpZCAiYWJvcnQgdGhlIGN1cnJlbnQgaW4tcHJvZ3Jlc3MgbWVyZ2UiCi1tc2dzdHIgImJyaWNodCBkaWUgc2ljaCBpbSBHYW5nZSBiZWZpbmRsaWNoZSBadXNhbW1lbmbDvGhydW5nIGFiIgorbXNnc3RyICJicmljaHQgZGVuIHNpY2ggaW0gR2FuZ2UgYmVmaW5kbGljaGVuIE1lcmdlIGFiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQyCisjOiBidWlsdGluL21lcmdlLmM6MjU3CiBtc2dpZCAiY291bGQgbm90IHJ1biBzdGFzaC4iCiBtc2dzdHIgIktvbm50ZSBcInN0YXNoXCIgbmljaHQgYXVzZsO8aHJlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjIKIG1zZ2lkICJzdGFzaCBmYWlsZWQiCiBtc2dzdHIgIlwic3Rhc2hcIiBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI1MgorIzogYnVpbHRpbi9tZXJnZS5jOjI2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgYSB2YWxpZCBvYmplY3Q6ICVzIgogbXNnc3RyICJrZWluIGfDvGx0aWdlcyBPYmpla3Q6ICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjcxIGJ1aWx0aW4vbWVyZ2UuYzoyODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyODYgYnVpbHRpbi9tZXJnZS5jOjMwMwogbXNnaWQgInJlYWQtdHJlZSBmYWlsZWQiCiBtc2dzdHIgInJlYWQtdHJlZSBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMxOAorIzogYnVpbHRpbi9tZXJnZS5jOjMzMwogbXNnaWQgIiAobm90aGluZyB0byBzcXVhc2gpIgogbXNnc3RyICIgKG5pY2h0cyB6dSBxdWV0c2NoZW4pIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzMxCisjOiBidWlsdGluL21lcmdlLmM6MzQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNxdWFzaCBjb21taXQgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKLW1zZ3N0ciAiUXVldHNjaGUgVmVyc2lvbiAtLSBad2VpZ3NwaXR6ZSAoSEVBRCkgd2lyZCBuaWNodCBha3R1YWxpc2llcnRcbiIKK21zZ3N0ciAiUXVldHNjaGUgQ29tbWl0IC0tIEhFQUQgd2lyZCBuaWNodCBha3R1YWxpc2llcnRcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2MworIzogYnVpbHRpbi9tZXJnZS5jOjM3OAogbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAiU2NocmVpYmUgU1FVQVNIX01TRyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2NQorIzogYnVpbHRpbi9tZXJnZS5jOjM4MAogbXNnaWQgIkZpbmlzaGluZyBTUVVBU0hfTVNHIgogbXNnc3RyICJTY2hsaWXDn2UgU1FVQVNIX01TRyBhYiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM4OAorIzogYnVpbHRpbi9tZXJnZS5jOjQwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBtZXJnZSBtZXNzYWdlIC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCi1tc2dzdHIgIiIKLSJLZWluZSBadXNhbW1lbmbDvGhydW5nc2Jlc2NocmVpYnVuZyAtLSBad2VpZ3NwaXR6ZSAoSEVBRCkgd2lyZCBuaWNodCAiCi0iYWt0dWFsaXNpZXJ0XG4iCittc2dzdHIgIktlaW5lIE1lcmdlLUNvbW1pdC1CZXNjaHJlaWJ1bmcgLS0gSEVBRCB3aXJkIG5pY2h0IGFrdHVhbGlzaWVydFxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6NDM4CisjOiBidWlsdGluL21lcmdlLmM6NDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCi1tc2dzdHIgIiclcycgemVpZ3QgYXVmIGtlaW5lIFZlcnNpb24iCittc2dzdHIgIiclcycgemVpZ3QgYXVmIGtlaW5lbiBDb21taXQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo1NTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQmFkIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc3RyaW5nOiAlcyIKIG1zZ3N0ciAiVW5nw7xsdGlnZXIgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBTdHJpbmc6ICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6NjQzCisjOiBidWlsdGluL21lcmdlLmM6NjU3CiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgZmFpbGVkIHRvIHdyaXRlIGEgdHJlZSIKLW1zZ3N0ciAiXCJnaXQgd3JpdGUtdHJlZVwiIHNjaGx1ZyBiZWltIFNjaHJlaWJlbiBlaW5lcyBCYXVtZXMgZmVobCIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjY3MQotbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCi1tc2dzdHIgIkVzIHdpcmQgbnVyIGRpZSBadXNhbW1lbmbDvGhydW5nIHZvbiB6d2VpIFp3ZWlnZW4gYmVoYW5kZWx0LiIKK21zZ3N0ciAiXCJnaXQgd3JpdGUtdHJlZVwiIHNjaGx1ZyBiZWltIFNjaHJlaWJlbiBlaW5lcyBcIlRyZWVcIi1PYmpla3RlcyBmZWhsIgogCiAjOiBidWlsdGluL21lcmdlLmM6Njg1Cittc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKK21zZ3N0ciAiRXMgd2lyZCBudXIgZGVyIE1lcmdlIHZvbiB6d2VpIEJyYW5jaGVzIGJlaGFuZGVsdC4iCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBvcHRpb24gZm9yIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKIG1zZ3N0ciAiVW5iZWthbm50ZSBPcHRpb24gZsO8ciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo3MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlICVzIgogbXNnc3RyICJrb25udGUgJXMgbmljaHQgc2NocmVpYmVuIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzg4CisjOiBidWlsdGluL21lcmdlLmM6ODAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIGZyb20gJyVzJyIKIG1zZ3N0ciAia29ubnRlIG5pY2h0IHZvbiAnJXMnIGxlc2VuIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzk3CisjOiBidWlsdGluL21lcmdlLmM6ODExCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBjb21taXR0aW5nIG1lcmdlOyB1c2UgJ2dpdCBjb21taXQnIHRvIGNvbXBsZXRlIHRoZSBtZXJnZS5cbiIKIG1zZ3N0ciAiIgotIlp1c2FtbWVuZsO8aHJ1bmcgd3VyZGUgbmljaHQgZWluZ2V0cmFnZW47IGJlbnV0emVuIFNpZSAnZ2l0IGNvbW1pdCcgdW0gZGllICIKLSJadXNhbW1lbmbDvGhydW5nIGFienVzY2hsaWXDn2VuLlxuIgorIk1lcmdlIHd1cmRlIG5pY2h0IGNvbW1pdHRldDsgYmVudXR6ZW4gU2llICdnaXQgY29tbWl0JyB1bSBkZW4gTWVyZ2UgIgorImFienVzY2hsaWXDn2VuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODAzCisjOiBidWlsdGluL21lcmdlLmM6ODE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgYSBjb21taXQgbWVzc2FnZSB0byBleHBsYWluIHdoeSB0aGlzIG1lcmdlIGlzIG5lY2Vzc2FyeSxcbiIKQEAgLTYzMDMsMjE5ICs2NzMxLDIxMiBAQAogIkxpbmVzIHN0YXJ0aW5nIHdpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0c1xuIgogInRoZSBjb21taXQuXG4iCiBtc2dzdHIgIiIKLSJCaXR0ZSBnZWJlbiBTaWUgZWluZSBWZXJzaW9uc2Jlc2NocmVpYnVuZyBlaW4gdW0genUgZXJrbMOkcmVuLCB3YXJ1bSBkaWVzZSAiCi0iWnVzYW1tZW5mw7xocnVuZyBlcmZvcmRlcmxpY2ggaXN0LFxuIgotImluc2Jlc29uZGVyZSB3ZW5uIGVzIGVpbmVuIGFrdHVhbGlzaWVydGVuLCBleHRlcm5lbiBad2VpZyBtaXQgZWluZW0gVGhlbWEtIgotIlp3ZWlnIHp1c2FtbWVuZsO8aHJ0LlxuIgorIkJpdHRlIGdlYmVuIFNpZSBlaW5lIENvbW1pdC1CZXNjaHJlaWJ1bmcgZWluIHVtIHp1IGVya2zDpHJlbiwgd2FydW0gZGllc2VyXG4iCisiTWVyZ2UgZXJmb3JkZXJsaWNoIGlzdCwgaW5zYmVzb25kZXJlIHdlbm4gZXMgZWluZW4gYWt0dWFsaXNpZXJ0ZW5cbiIKKyJVcHN0cmVhbS1CcmFuY2ggbWl0IGVpbmVtIFRoZW1hLUJyYW5jaCB6dXNhbW1lbmbDvGhydC5cbiIKICJcbiIKLSJaZWlsZW4gYmVnaW5uZW5kIG1pdCAnJWMnIHdlcmRlbiBpZ25vcmllcnQsIHVuZCBlaW5lIGxlZXJlIEJlc2NocmVpYnVuZyAiCi0iYnJpY2h0IGRpZSBFaW50cmFndW5nIGFiLlxuIgorIlplaWxlbiBiZWdpbm5lbmQgbWl0ICclYycgd2VyZGVuIGlnbm9yaWVydCwgdW5kIGVpbmUgbGVlcmUgQmVzY2hyZWlidW5nXG4iCisiYnJpY2h0IGRlbiBDb21taXQgYWIuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NDEKIG1zZ2lkICJFbXB0eSBjb21taXQgbWVzc2FnZS4iCi1tc2dzdHIgIkxlZXJlIFZlcnNpb25zYmVzY2hyZWlidW5nIgorbXNnc3RyICJMZWVyZSBDb21taXQtQmVzY2hyZWlidW5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODM5CisjOiBidWlsdGluL21lcmdlLmM6ODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvbmRlcmZ1bC5cbiIKIG1zZ3N0ciAiV3VuZGVyYmFyLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTA0CisjOiBidWlsdGluL21lcmdlLmM6OTE4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG9tYXRpYyBtZXJnZSBmYWlsZWQ7IGZpeCBjb25mbGljdHMgYW5kIHRoZW4gY29tbWl0IHRoZSByZXN1bHQuXG4iCiBtc2dzdHIgIiIKLSJBdXRvbWF0aXNjaGUgWnVzYW1tZW5mw7xocnVuZyBmZWhsZ2VzY2hsYWdlbjsgYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgIgotInRyYWdlbiBTaWUgZGFubiBkYXMgRXJnZWJuaXMgZWluLlxuIgorIkF1dG9tYXRpc2NoZXIgTWVyZ2UgZmVobGdlc2NobGFnZW47IGJlaGViZW4gU2llIGRpZSBLb25mbGlrdGUgdW5kIGNvbW1pdHRlbiAiCisiU2llIGRhbm4gZGFzIEVyZ2VibmlzLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTIwCisjOiBidWlsdGluL21lcmdlLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgotbXNnc3RyICInJXMnIGlzdCBrZWluZSBWZXJzaW9uIgorbXNnc3RyICInJXMnIGlzdCBrZWluIENvbW1pdCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MQorIzogYnVpbHRpbi9tZXJnZS5jOjk3NQogbXNnaWQgIk5vIGN1cnJlbnQgYnJhbmNoLiIKLW1zZ3N0ciAiU2llIGJlZmluZGVuIHNpY2ggYXVmIGtlaW5lbSBad2VpZy4iCittc2dzdHIgIlNpZSBiZWZpbmRlbiBzaWNoIGF1ZiBrZWluZW0gQnJhbmNoLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MworIzogYnVpbHRpbi9tZXJnZS5jOjk3NwogbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKLW1zZ3N0ciAiS2VpbiBleHRlcm5lcyBBcmNoaXYgZsO8ciBkZW4gYWt0dWVsbGVuIFp3ZWlnLiIKK21zZ3N0ciAiS2VpbiBSZW1vdGUtUmVwb3NpdG9yeSBmw7xyIGRlbiBha3R1ZWxsZW4gQnJhbmNoLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2NQorIzogYnVpbHRpbi9tZXJnZS5jOjk3OQogbXNnaWQgIk5vIGRlZmF1bHQgdXBzdHJlYW0gZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiIgotIkVzIGlzdCBrZWluIGV4dGVybmVzIFN0YW5kYXJkLVByb2pla3RhcmNoaXYgZsO8ciBkZW4gYWt0dWVsbGVuIFp3ZWlnICIKLSJkZWZpbmllcnQuIgorIkVzIGlzdCBrZWluIFN0YW5kYXJkLVVwc3RyZWFtLUJyYW5jaCBmw7xyIGRlbiBha3R1ZWxsZW4gQnJhbmNoIGRlZmluaWVydC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKLW1zZ3N0ciAiS2VpbiBleHRlcm5lciDDnGJlcm5haG1lendlaWcgZsO8ciAlcyB2b24gJXMiCittc2dpZCAiTm8gcmVtb3RlLXRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ3N0ciAiS2VpbiBSZW1vdGUtVHJhY2tpbmctQnJhbmNoIGbDvHIgJXMgdm9uICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTA1NyBidWlsdGluL21lcmdlLmM6MTIxNAotIywgYy1mb3JtYXQKLW1zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgotbXNnc3RyICIlcyAtIG5pY2h0cyB3YXMgd2lyIHp1c2FtbWVuZsO8aHJlbiBrw7ZubmVuIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTEyNQorIzogYnVpbHRpbi9tZXJnZS5jOjExNDAKIG1zZ2lkICJUaGVyZSBpcyBubyBtZXJnZSB0byBhYm9ydCAoTUVSR0VfSEVBRCBtaXNzaW5nKS4iCi1tc2dzdHIgIkVzIGdpYnQga2VpbmUgWnVzYW1tZW5mw7xocnVuZyB6dW0gQWJicmVjaGVuICh2ZXJtaXNzZSBNRVJHRV9IRUFEKSIKK21zZ3N0ciAiRXMgZ2lidCBrZWluZW4gTWVyZ2UgenVtIEFiYnJlY2hlbiAodmVybWlzc2UgTUVSR0VfSEVBRCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQxIGdpdC1wdWxsLnNoOjMxCisjOiBidWlsdGluL21lcmdlLmM6MTE1NiBnaXQtcHVsbC5zaDozMQogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgogbXNnc3RyICIiCi0iU2llIGhhYmVuIElocmUgWnVzYW1tZW5mw7xocnVuZyBuaWNodCBhYmdlc2NobG9zc2VuIChNRVJHRV9IRUFEIGV4aXN0aWVydCkuXG4iCi0iQml0dGUgdHJhZ2VuIFNpZSBJaHJlIMOEbmRlcnVuZ2VuIGVpbiwgYmV2b3IgU2llIHp1c2FtbWVuZsO8aHJlbiBrw7ZubmVuLiIKKyJTaWUgaGFiZW4gSWhyZW4gTWVyZ2UgbmljaHQgYWJnZXNjaGxvc3NlbiAoTUVSR0VfSEVBRCBleGlzdGllcnQpLlxuIgorIkJpdHRlIGNvbW1pdHRlbiBTaWUgSWhyZSDDhG5kZXJ1bmdlbiwgYmV2b3IgU2llIFwibWVyZ2VcIiBhdXNmw7xocmVuIGvDtm5uZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0NCBnaXQtcHVsbC5zaDozNAorIzogYnVpbHRpbi9tZXJnZS5jOjExNTkgZ2l0LXB1bGwuc2g6MzQKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCi1tc2dzdHIgIiIKLSJTaWUgaGFiZW4gSWhyZSBadXNhbW1lbmbDvGhydW5nIG5pY2h0IGFiZ2VzY2hsb3NzZW4gKE1FUkdFX0hFQUQgZXhpc3RpZXJ0KS4iCittc2dzdHIgIlNpZSBoYWJlbiBJaHJlbiBNZXJnZSBuaWNodCBhYmdlc2NobG9zc2VuIChNRVJHRV9IRUFEIGV4aXN0aWVydCkuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0OAorIzogYnVpbHRpbi9tZXJnZS5jOjExNjMKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKIG1zZ3N0ciAiIgogIlNpZSBoYWJlbiBcImNoZXJyeS1waWNrXCIgbmljaHQgYWJnZXNjaGxvc3NlbiAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdGllcnQpLlxuIgotIkJpdHRlIHRyYWdlbiBTaWUgSWhyZSDDhG5kZXJ1bmdlbiBlaW4sIGJldm9yIFNpZSB6dXNhbW1lbmbDvGhyZW4ga8O2bm5lbi4iCisiQml0dGUgY29tbWl0dGVuIFNpZSBJaHJlIMOEbmRlcnVuZ2VuLCBiZXZvciBTaWUgXCJtZXJnZVwiIGF1c2bDvGhyZW4ga8O2bm5lbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTUxCisjOiBidWlsdGluL21lcmdlLmM6MTE2NgogbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLiIKIG1zZ3N0ciAiIgogIlNpZSBoYWJlbiBcImNoZXJyeS1waWNrXCIgbmljaHQgYWJnZXNjaGxvc3NlbiAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdGllcnQpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTc1CiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tc3F1YXNoIHdpdGggLS1uby1mZi4iCiBtc2dzdHIgIlNpZSBrw7ZubmVuIC0tc3F1YXNoIG5pY2h0IG1pdCAtLW5vLWZmIGtvbWJpbmllcmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjUKLW1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCi1tc2dzdHIgIlNpZSBrw7ZubmVuIC0tbm8tZmYgbmljaHQgbWl0IC0tZmYtLW9ubHkga29tYmluaWVyZW4uIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTE3MgorIzogYnVpbHRpbi9tZXJnZS5jOjExODQKIG1zZ2lkICJObyBjb21taXQgc3BlY2lmaWVkIGFuZCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSBub3Qgc2V0LiIKLW1zZ3N0ciAiS2VpbmUgVmVyc2lvbiBhbmdlZ2ViZW4gdW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIGlzdCBuaWNodCBnZXNldHp0LiIKK21zZ3N0ciAiS2VpbiBDb21taXQgYW5nZWdlYmVuIHVuZCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSBpc3QgbmljaHQgZ2VzZXR6dC4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA0CisjOiBidWlsdGluL21lcmdlLmM6MTIxNgogbXNnaWQgIkNhbiBtZXJnZSBvbmx5IGV4YWN0bHkgb25lIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQiCi1tc2dzdHIgIkthbm4gbnVyIGV4YWt0IGVpbmUgVmVyc2lvbiBpbiBlaW5lbSBsZWVyZW4gWndlaWcgenVzYW1tZW5mw7xocmVuLiIKK21zZ3N0ciAiS2FubiBudXIgZXhha3QgZWluZW4gQ29tbWl0IGluIGVpbmVtIGxlZXJlbiBCcmFuY2ggenVzYW1tZW5mw7xocmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE5CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiCi1tc2dzdHIgIkJpbiBhdWYgZWluZW0gWndlaWcsIGRlciBub2NoIGdlYm9yZW4gd2lyZDsga2FubiBuaWNodCBxdWV0c2NoZW4uIgorbXNnc3RyICIiCisiQmluIGF1ZiBlaW5lbSBDb21taXQsIGRlciBub2NoIGdlYm9yZW4gd2lyZDsga2FubiBcInNxdWFzaFwiIG5pY2h0IGF1c2bDvGhyZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjEKIG1zZ2lkICJOb24tZmFzdC1mb3J3YXJkIGNvbW1pdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGludG8gYW4gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiIgotIk5pY2h0IHZvcnp1c3B1bGVuZGUgVmVyc2lvbiBrYW5uIG5pY2h0IGluIGVpbmVtIGxlZXJlbiBad2VpZyB2ZXJ3ZW5kZXQgIgorIk5pY2h0IHZvcnp1c3B1bGVuZGVyIENvbW1pdCBrYW5uIG5pY2h0IGluIGVpbmVtIGxlZXJlbiBCcmFuY2ggdmVyd2VuZGV0ICIKICJ3ZXJkZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2NQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKK21zZ3N0ciAiJXMgLSBuaWNodHMgd2FzIHdpciB6dXNhbW1lbmbDvGhyZW4ga8O2bm5lbiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhbiB1bnRydXN0ZWQgR1BHIHNpZ25hdHVyZSwgYWxsZWdlZGx5IGJ5ICVzLiIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQgZWluZSBuaWNodCB2ZXJ0cmF1ZW5zd8O8cmRpZ2UgR1BHLVNpZ25hdHVyLCAiCi0iYW5nZWJsaWNoIHZvbiAlcy4iCittc2dzdHIgIiIKKyJDb21taXQgJXMgaGF0IGVpbmUgbmljaHQgdmVydHJhdWVuc3fDvHJkaWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQgZWluZSB1bmfDvGx0aWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQgZWluZSB1bmfDvGx0aWdlIEdQRy1TaWduYXR1ciwgYW5nZWJsaWNoIHZvbiAlcy4iCiAKICMuICdOJwotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCi1tc2dzdHIgIlZlcnNpb24gJXMgaGF0IGtlaW5lIEdQRy1TaWduYXR1ci4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQga2VpbmUgR1BHLVNpZ25hdHVyLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKLW1zZ3N0ciAiVmVyc2lvbiAlcyBoYXQgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIgdm9uICVzXG4iCittc2dzdHIgIkNvbW1pdCAlcyBoYXQgZWluZSBnw7xsdGlnZSBHUEctU2lnbmF0dXIgdm9uICVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjOiBidWlsdGluL21lcmdlLmM6MTM3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGluZyAlcy4uJXNcbiIKIG1zZ3N0ciAiQWt0dWFsaXNpZXJlICVzLi4lc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM5NworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCi1tc2dzdHIgIlByb2JpZXJlIHdpcmtsaWNoIHRyaXZpYWxlIFwiaW4taW5kZXhcIi1adXNhbW1lbmbDvGhydW5nLi4uXG4iCittc2dzdHIgIlByb2JpZXJlIHdpcmtsaWNoIHRyaXZpYWxlbiBcImluLWluZGV4XCItTWVyZ2UuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vcGUuXG4iCiBtc2dzdHIgIk5laW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDM2CisjOiBidWlsdGluL21lcmdlLmM6MTQ0OAogbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKIG1zZ3N0ciAiVm9yc3B1bGVuIG5pY2h0IG3DtmdsaWNoLCBicmVjaGUgYWIuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIzogYnVpbHRpbi9tZXJnZS5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjE1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCi1tc2dzdHIgIlLDvGNrbGF1ZiBkZXMgWndlaWdlcyBiaXMgenVtIFVyc3BydW5nLi4uXG4iCittc2dzdHIgIlLDvGNrbGF1ZiBkZXMgVmVyemVpY2huaXNzZXMgYmlzIHp1bSBVcnNwcnVuZy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ2MworIzogYnVpbHRpbi9tZXJnZS5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCi1tc2dzdHIgIlByb2JpZXJlIFp1c2FtbWVuZsO8aHJ1bmdzc3RyYXRlZ2llICVzLi4uXG4iCittc2dzdHIgIlByb2JpZXJlIE1lcmdlLVN0cmF0ZWdpZSAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCi1tc2dzdHIgIktlaW5lIFp1c2FtbWVuZsO8aHJ1bmdzc3RyYXRlZ2llIGJlaGFuZGVsdCBkaWVzZSBadXNhbW1lbmbDvGhydW5nLlxuIgorbXNnc3RyICJLZWluZSBNZXJnZS1TdHJhdGVnaWUgYmVoYW5kZWx0IGRpZXNlbiBNZXJnZS5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1lcmdlIHdpdGggc3RyYXRlZ3kgJXMgZmFpbGVkLlxuIgotbXNnc3RyICJadXNhbW1lbmbDvGhydW5nIG1pdCBTdHJhdGVnaWUgJXMgZmVobGdlc2NobGFnZW4uXG4iCittc2dzdHIgIk1lcmdlIG1pdCBTdHJhdGVnaWUgJXMgZmVobGdlc2NobGFnZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQwCisjOiBidWlsdGluL21lcmdlLmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2luZyB0aGUgJXMgdG8gcHJlcGFyZSByZXNvbHZpbmcgYnkgaGFuZC5cbiIKIG1zZ3N0ciAiQmVudXR6ZW4gU2llIFwiJXNcIiB1bSBkaWUgQXVmbMO2c3VuZyBwZXIgSGFuZCB2b3J6dWJlcmVpdGVuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU1MgorIzogYnVpbHRpbi9tZXJnZS5jOjE1NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKIG1zZ3N0ciAiIgotIkF1dG9tYXRpc2NoZSBadXNhbW1lbmbDvGhydW5nIGFiZ2VzY2hsb3NzZW47IGhhbHRlLCB3aWUgZ2V3w7xuc2NodCwgdm9yIGRlciAiCi0iRWludHJhZ3VuZyBhblxuIgorIkF1dG9tYXRpc2NoZXIgTWVyZ2UgYWJnZXNjaGxvc3NlbjsgaGFsdGUsIHdpZSBnZXfDvG5zY2h0LCB2b3IgZGVtIENvbW1pdCBhblxuIgogCiAjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyNgogbXNnaWQgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPGNvbW1pdD4gPGNvbW1pdD4uLi4iCi1tc2dzdHIgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPFZlcnNpb24+IDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSA8Q29tbWl0PiA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjcKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Y29tbWl0Pi4uLiIKLW1zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgWy1hfC0tYWxsXSAtLW9jdG9wdXMgPFZlcnNpb24+Li4uIgorbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjgKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWluZGVwZW5kZW50IDxjb21taXQ+Li4uIgotbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSAtLWluZGVwZW5kZW50IDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG1lcmdlLWJhc2UgLS1pbmRlcGVuZGVudCA8Q29tbWl0Pi4uLiIKIAogIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjkKIG1zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxjb21taXQ+IDxjb21taXQ+IgotbXNnc3RyICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxWZXJzaW9uPiA8VmVyc2lvbj4iCittc2dzdHIgImdpdCBtZXJnZS1iYXNlIC0taXMtYW5jZXN0b3IgPENvbW1pdD4gPENvbW1pdD4iCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk4CiBtc2dpZCAib3V0cHV0IGFsbCBjb21tb24gYW5jZXN0b3JzIgotbXNnc3RyICJBdXNnYWJlIGFsbGVyIGdlbWVpbnNhbWVuIFZvcmZhaHJlbiIKK21zZ3N0ciAiQXVzZ2FiZSBhbGxlciBnZW1laW5zYW1lbiBWb3Jnw6RuZ2VyLUNvbW1pdHMiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk5CiBtc2dpZCAiZmluZCBhbmNlc3RvcnMgZm9yIGEgc2luZ2xlIG4td2F5IG1lcmdlIgotbXNnc3RyICJmaW5kZXQgVm9yZmFocmVuIGbDvHIgZWluZSBlaW56ZWxuZSBuLVdlZ2UtWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiZmluZGV0IFZvcmfDpG5nZXItQ29tbWl0cyBmw7xyIGVpbmVuIGVpbnplbG5lbiBuLVdlZ2UtTWVyZ2UiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMAogbXNnaWQgImxpc3QgcmV2cyBub3QgcmVhY2hhYmxlIGZyb20gb3RoZXJzIgotbXNnc3RyICJsaXN0ZXQgVmVyc2lvbmVuIGF1ZiwgZGllIG5pY2h0IGR1cmNoIEFuZGVyZSBlcnJlaWNoYmFyIHNpbmQiCittc2dzdHIgImxpc3RldCBDb21taXRzIGF1ZiwgZGllIG5pY2h0IGR1cmNoIEFuZGVyZSBlcnJlaWNoYmFyIHNpbmQiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMgogbXNnaWQgImlzIHRoZSBmaXJzdCBvbmUgYW5jZXN0b3Igb2YgdGhlIG90aGVyPyIKLW1zZ3N0ciAiaXN0IGRlciBFcnN0ZSBlaW4gVm9yZmFocmUgdm9uIGRlbSBBbmRlcmVuPyIKK21zZ3N0ciAiaXN0IGRlciBFcnN0ZSBlaW4gVm9yZ8Okbmdlci1Db21taXQgdm9uIGRlbSBBbmRlcmVuPyIKIAogIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6OAogbXNnaWQgIiIKQEAgLTY1MzEsNyArNjk1Miw3IEBACiAKICM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM0CiBtc2dpZCAidXNlIGEgZGlmZjMgYmFzZWQgbWVyZ2UiCi1tc2dzdHIgInZlcndlbmRldCBlaW5lIGRpZmYzIGJhc2llcnRlIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgInZlcndlbmRldCBlaW5lbiBkaWZmMyBiYXNpZXJ0ZW4gTWVyZ2UiCiAKICM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM1CiBtc2dpZCAiZm9yIGNvbmZsaWN0cywgdXNlIG91ciB2ZXJzaW9uIgpAQCAtNjU3MSw3ICs2OTkyLDcgQEAKIAogIzogYnVpbHRpbi9ta3RyZWUuYzoxNTUKIG1zZ2lkICJhbGxvdyBjcmVhdGlvbiBvZiBtb3JlIHRoYW4gb25lIHRyZWUiCi1tc2dzdHIgImVybGF1YnQgZGllIEVyc3RlbGx1bmcgdm9uIG1laHIgYWxzIGVpbmVtIEJhdW0iCittc2dzdHIgImVybGF1YnQgZGllIEVyc3RlbGx1bmcgdm9uIG1laHIgYWxzIGVpbmVtIFwiVHJlZVwiLU9iamVrdCIKIAogIzogYnVpbHRpbi9tdi5jOjE0CiBtc2dpZCAiZ2l0IG12IFtvcHRpb25zXSA8c291cmNlPi4uLiA8ZGVzdGluYXRpb24+IgpAQCAtNjYwNSw3ICs3MDI2LDcgQEAKICM6IGJ1aWx0aW4vbXYuYzoxMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSHVoPyAlLipzIGlzIGluIGluZGV4PyIKLW1zZ3N0ciAiSHVoPyAlLipzIGlzdCBpbiBkZXIgQmVyZWl0c3RlbGx1bmc/IgorbXNnc3RyICJIdWg/ICUuKnMgaXN0IHp1bSBDb21taXQgdm9yZ2VtZXJrdD8iCiAKICM6IGJ1aWx0aW4vbXYuYzoxNDAKIG1zZ2lkICJzb3VyY2UgZGlyZWN0b3J5IGlzIGVtcHR5IgpAQCAtNjY0Nyw0NyArNzA2OCw1MSBAQAogbXNnaWQgInJlbmFtaW5nICclcycgZmFpbGVkIgogbXNnc3RyICJVbWJlbmVubnVuZyB2b24gJyVzJyBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCi1tc2dzdHIgImdpdCBuYW1lLXJldiBbT3B0aW9uZW5dIDxWZXJzaW9uPi4uLiIKK21zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtPcHRpb25lbl0gPENvbW1pdD4uLi4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyNjAKIG1zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tYWxsIgogbXNnc3RyICJnaXQgbmFtZS1yZXYgW09wdGlvbmVuXSAtLWFsbCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtPcHRpb25lbl0gLS1zdGRpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxMwogbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKIG1zZ3N0ciAiemVpZ3QgbnVyIE5hbWVuIGFuIChrZWluZSBTSEEtMSkiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzAKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTQKIG1zZ2lkICJvbmx5IHVzZSB0YWdzIHRvIG5hbWUgdGhlIGNvbW1pdHMiCi1tc2dzdHIgInZlcndlbmRldCBudXIgTWFya2llcnVuZ2VuIHVtIGRpZSBWZXJzaW9uZW4genUgYmVuZW5uZW4iCittc2dzdHIgInZlcndlbmRldCBudXIgVGFncyB1bSBkaWUgQ29tbWl0cyB6dSBiZW5lbm5lbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNgogbXNnaWQgIm9ubHkgdXNlIHJlZnMgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICJ2ZXJ3ZW5kZXQgbnVyIFJlZmVyZW56ZW4gZGllIDxNdXN0ZXI+IGVudHNwcmVjaGVuIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM0CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE4CiBtc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKLW1zZ3N0ciAibGlzdGV0IGFsbGUgVmVyc2lvbmVuIGF1ZiwgZGllIHZvbiBhbGxlbiBSZWZlcmVuemVuIGVycmVpY2hiYXIgc2luZCIKK21zZ3N0ciAibGlzdGV0IGFsbGUgQ29tbWl0cyBhdWYsIGRpZSB2b24gYWxsZW4gUmVmZXJlbnplbiBlcnJlaWNoYmFyIHNpbmQiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgImxpZXN0IHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICJlcmxhdWJ0IEF1c2dhYmUgdm9uIGB1bmRlZmluaWVydGVuYCBOYW1lbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgImRlcmVmZXJlbnppZXJ0IFRhZ3MgaW4gZGVyIEVpbmdhYmUgKGludGVybmUgVmVyd2VuZHVuZykiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNAogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIFtsaXN0IFs8b2JqZWN0Pl1dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIFtsaXN0IFs8T2JqZWt0Pl1dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNQogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgpAQCAtNjY5NSwxMiArNzEyMCwxMiBAQAogImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gYWRkIFstZl0gWy1tIDxOYWNocmljaHQ+IHwgLUYgPERhdGVpPiB8ICgtIgogImMgfCAtQykgPE9iamVrdD5dIFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorIzogYnVpbHRpbi9ub3Rlcy5jOjI2CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gY29weSBbLWZdIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIGNvcHkgWy1mXSA8dm9uLU9iamVrdD4gPG5hY2gtT2JqZWt0PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5CisjOiBidWlsdGluL25vdGVzLmM6MjcKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02NzA4LDIyMyArNzEzMywyMDEgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxOb3Rpei1SZWZlcmVuej5dIGFwcGVuZCBbLW0gPE5hY2hyaWNodD4gfCAtRiA8RGF0ZWk+IHwgKC1jICIKICJ8IC1DKSA8T2JqZWt0Pl0gWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMwCisjOiBidWlsdGluL25vdGVzLmM6MjgKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gZWRpdCBbPE9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyOQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSBzaG93IFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMgorIzogYnVpbHRpbi9ub3Rlcy5jOjMwCiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0ZWd5PiBdIDxub3Rlc19yZWY+IgogbXNnc3RyICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxTdHJhdGVnaWU+IF0gPE5vdGl6LSIKICJSZWZlcmVuej4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8Tm90aXotUmVmZXJlbno+XSByZW1vdmUgWzxPYmpla3Q+Li4uXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM2CisjOiBidWlsdGluL25vdGVzLmM6MzQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gcHJ1bmUgWy1uIHwgLXZdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPE5vdGl6LVJlZmVyZW56Pl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbbGlzdCBbPE9iamVrdD5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhZGQgWzxPcHRpb25lbj5dIFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MgorIzogYnVpbHRpbi9ub3Rlcy5jOjUwCiBtc2dpZCAiZ2l0IG5vdGVzIGNvcHkgWzxvcHRpb25zPl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgWzxPcHRpb25lbj5dIDx2b24tT2JqZWt0PiA8bmFjaC1PYmpla3Q+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgogbXNnc3RyICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8dm9uLU9iamVrdD4gPG5hY2gtT2JqZWt0Pl0uLi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2CiBtc2dpZCAiZ2l0IG5vdGVzIGFwcGVuZCBbPG9wdGlvbnM+XSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgYXBwZW5kIFs8T3B0aW9uZW4+XSBbPE9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBlZGl0IFs8T2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjY2CiBtc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHNob3cgWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjczCisjOiBidWlsdGluL25vdGVzLmM6NzEKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSBbPE9wdGlvbmVuPl0gPE5vdGl6LVJlZmVyZW56PiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc0CisjOiBidWlsdGluL25vdGVzLmM6NzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPE9wdGlvbmVuPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs8T3B0aW9uZW4+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjgwCisjOiBidWlsdGluL25vdGVzLmM6NzgKIG1zZ2lkICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyByZW1vdmUgWzxPYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg1CisjOiBidWlsdGluL25vdGVzLmM6ODMKIG1zZ2lkICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBwcnVuZSBbPE9wdGlvbmVuPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICJrb25udGUgJ3Nob3cnIGbDvHIgT2JqZWt0ICclcycgbmljaHQgc3RhcnRlbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE0MworIzogYnVpbHRpbi9ub3Rlcy5jOjE0MQogbXNnaWQgImNvdWxkIG5vdCByZWFkICdzaG93JyBvdXRwdXQiCiBtc2dzdHIgIktvbm50ZSBBdXNnYWJlIHZvbiAnc2hvdycgbmljaHQgbGVzZW4uIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTUxCisjOiBidWlsdGluL25vdGVzLmM6MTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAia29ubnRlICdzaG93JyBmw7xyIE9iamVrdCAnJXMnIG5pY2h0IGFic2NobGllw59lbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE2OSBidWlsdGluL3RhZy5jOjM0MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE2NyBidWlsdGluL3RhZy5jOjM0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGZpbGUgJyVzJyIKIG1zZ3N0ciAia29ubnRlIERhdGVpICclcycgbmljaHQgZXJzdGVsbGVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTg4CisjOiBidWlsdGluL25vdGVzLmM6MTg2CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbm90ZSBjb250ZW50cyB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uIgogbXNnc3RyICIiCiAiQml0dGUgbGllZmVybiBTaWUgZGVuIE5vdGl6LUluaGFsdCB1bnRlciBWZXJ3ZW5kdW5nIGRlciBPcHRpb24gLW0gb2RlciAtRi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMDkgYnVpbHRpbi9ub3Rlcy5jOjk3MgorIzogYnVpbHRpbi9ub3Rlcy5jOjIwNyBidWlsdGluL25vdGVzLmM6ODQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nIG5vdGUgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICJFbnRmZXJuZSBOb3RpeiBmw7xyIE9iamVrdCAlc1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE0CisjOiBidWlsdGluL25vdGVzLmM6MjEyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgogbXNnc3RyICJLb25udGUgTm90aXotT2JqZWt0IG5pY2h0IHNjaHJlaWJlbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgogbXNnc3RyICJEaWUgTm90aXotSW5oYWx0ZSB3dXJkZW4gaW4gJXMgYmVsYXNzZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAia2FubiAnJXMnIG5pY2h0IGxlc2VuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUyIGJ1aWx0aW4vdGFnLmM6NTQzCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuIG9yIHJlYWQgJyVzJyIKIG1zZ3N0ciAia29ubnRlICclcycgbmljaHQgw7ZmZm5lbiBvZGVyIGxlc2VuIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcxIGJ1aWx0aW4vbm90ZXMuYzo0NDQgYnVpbHRpbi9ub3Rlcy5jOjQ0NgotIzogYnVpbHRpbi9ub3Rlcy5jOjUwNiBidWlsdGluL25vdGVzLmM6NTYwIGJ1aWx0aW4vbm90ZXMuYzo2NDMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NDggYnVpbHRpbi9ub3Rlcy5jOjcyMyBidWlsdGluL25vdGVzLmM6NzY1Ci0jOiBidWlsdGluL25vdGVzLmM6OTY3IGJ1aWx0aW4vdGFnLmM6NTU2CisjOiBidWlsdGluL25vdGVzLmM6MjY5IGJ1aWx0aW4vbm90ZXMuYzozMTYgYnVpbHRpbi9ub3Rlcy5jOjMxOAorIzogYnVpbHRpbi9ub3Rlcy5jOjM3OCBidWlsdGluL25vdGVzLmM6NDMyIGJ1aWx0aW4vbm90ZXMuYzo1MTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjAgYnVpbHRpbi9ub3Rlcy5jOjU5NSBidWlsdGluL25vdGVzLmM6NjM3CisjOiBidWlsdGluL25vdGVzLmM6ODM5IGJ1aWx0aW4vdGFnLmM6NTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZWYuIgogbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2UgUmVmZXJlbnogYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVhZCBvYmplY3QgJyVzJy4iCiBtc2dzdHIgIkZlaGxlciBiZWltIExlc2VuIGRlcyBPYmpla3RlcyAnJXMnLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI5OAotbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKLW1zZ3N0ciAiS2FubiB1bmluaXRpYWxpc2llcnRlbi91bnJlZmVyZW56aWVydGVuIE5vdGl6LUJhdW0gbmljaHQgZWludHJhZ2VuLiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjMzOQotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCi1tc2dzdHIgIlVuZ8O8bHRpZ2VyIG5vdGVzLnJld3JpdGVNb2RlIFdlcnQ6ICclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIiIKLSJVbXNjaHJlaWJlbiBkZXIgTm90aXplbiBpbiAlcyB6dXLDvGNrZ2V3aWVzZW4gKGF1w59lcmhhbGIgdm9uIHJlZnMvbm90ZXMvKSIKLQotIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKLSMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQotIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCi1tc2dzdHIgIlVuZ8O8bHRpZ2VyICVzIFdlcnQ6ICclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzo0NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFsZm9ybWVkIGlucHV0IGxpbmU6ICclcycuIgogbXNnc3RyICJGZWhsZXJoYWZ0ZSBFaW5nYWJlemVpbGU6ICclcycuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDU1CisjOiBidWlsdGluL25vdGVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgogbXNnc3RyICJGZWhsZXIgYmVpbSBLb3BpZXJlbiBkZXIgTm90aXplbiB2b24gJyVzJyBuYWNoICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjU1MyBidWlsdGluL25vdGVzLmM6NjI2Ci0jOiBidWlsdGluL25vdGVzLmM6NjM4IGJ1aWx0aW4vbm90ZXMuYzo3MTEgYnVpbHRpbi9ub3Rlcy5jOjc1OAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwMzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzEgYnVpbHRpbi9ub3Rlcy5jOjQyNSBidWlsdGluL25vdGVzLmM6NDk4CisjOiBidWlsdGluL25vdGVzLmM6NTEwIGJ1aWx0aW4vbm90ZXMuYzo1ODMgYnVpbHRpbi9ub3Rlcy5jOjYzMAorIzogYnVpbHRpbi9ub3Rlcy5jOjkwNAogbXNnaWQgInRvbyBtYW55IHBhcmFtZXRlcnMiCiBtc2dzdHIgInp1IHZpZWxlIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUxMiBidWlsdGluL25vdGVzLmM6NzcxCisjOiBidWlsdGluL25vdGVzLmM6Mzg0IGJ1aWx0aW4vbm90ZXMuYzo2NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbm90ZSBmb3VuZCBmb3Igb2JqZWN0ICVzLiIKIG1zZ3N0ciAiS2VpbiBOb3RpeiBmw7xyIE9iamVrdCAlcyBnZWZ1bmRlbi4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAiTm90aXppbmhhbHRlIGFscyBaZWljaGVua2V0dGUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzcgYnVpbHRpbi9ub3Rlcy5jOjY5NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQwOSBidWlsdGluL25vdGVzLmM6NTY2CiBtc2dpZCAibm90ZSBjb250ZW50cyBpbiBhIGZpbGUiCiBtc2dzdHIgIk5vdGl6aW5oYWx0ZSBpbiBlaW5lciBEYXRlaSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzOSBidWlsdGluL25vdGVzLmM6NTQyIGJ1aWx0aW4vbm90ZXMuYzo2OTYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTkgYnVpbHRpbi90YWcuYzo0NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTEgYnVpbHRpbi9ub3Rlcy5jOjQxNCBidWlsdGluL25vdGVzLmM6NTY4CisjOiBidWlsdGluL25vdGVzLmM6NTcxIGJ1aWx0aW4vdGFnLmM6NDc0CiBtc2dpZCAib2JqZWN0IgogbXNnc3RyICJPYmpla3QiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDAgYnVpbHRpbi9ub3Rlcy5jOjY5NworIzogYnVpbHRpbi9ub3Rlcy5jOjQxMiBidWlsdGluL25vdGVzLmM6NTY5CiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICJXaWVkZXJ2ZXJ3ZW5kdW5nIHVuZCBCZWFyYmVpdHVuZyBkZXMgYW5nZWdlYmVuZW4gTm90aXotT2JqZWt0ZXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDMgYnVpbHRpbi9ub3Rlcy5jOjcwMAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxNSBidWlsdGluL25vdGVzLmM6NTcyCiBtc2dpZCAicmV1c2Ugc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICJXaWVkZXJ2ZXJ3ZW5kdW5nIGRlcyBhbmdlZ2ViZW5lbiBOb3Rpei1PYmpla3RlcyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0NSBidWlsdGluL25vdGVzLmM6NjEzCisjOiBidWlsdGluL25vdGVzLmM6NDE3IGJ1aWx0aW4vbm90ZXMuYzo0ODUKIG1zZ2lkICJyZXBsYWNlIGV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICJlcnNldHp0IGV4aXN0aWVyZW5kZSBOb3RpemVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTc5CisjOiBidWlsdGluL25vdGVzLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgYWRkIG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgpAQCAtNjkzMywyNiArNzMzNiwyNiBAQAogIktvbm50ZSBOb3RpemVuIG5pY2h0IGhpbnp1ZsO8Z2VuLiBFeGlzdGllcmVuZGUgTm90aXplbiBmw7xyIE9iamVrdCAlcyAiCiAiZ2VmdW5kZW4uIFZlcndlbmRlbiBTaWUgJy1mJyB1bSBkaWUgZXhpc3RpZXJlbmRlbiBOb3RpemVuIHp1IMO8YmVyc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjOiBidWlsdGluL25vdGVzLmM6NDU2IGJ1aWx0aW4vbm90ZXMuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3ZlcndyaXRpbmcgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICLDnGJlcnNjaHJlaWJlIGV4aXN0aWVyZW5kZSBOb3RpemVuIGbDvHIgT2JqZWt0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODYKIG1zZ2lkICJyZWFkIG9iamVjdHMgZnJvbSBzdGRpbiIKIG1zZ3N0ciAibGllc3QgT2JqZWt0ZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODgKIG1zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKIG1zZ3N0ciAiIgogImzDpGR0IEtvbmZpZ3VyYXRpb24gZsO8ciA8S29tbWFuZG8+IGJlaW0gVW1zY2hyZWliZW4gdm9uIFZlcnNpb25lbiAoaW1wbGl6aWVydCAiCiAiLS1zdGRpbikiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgInp1IHdlbmlnIFBhcmFtZXRlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCkBAIC02OTYxLDEyICs3MzY0LDEyIEBACiAiS2FubiBOb3RpemVuIG5pY2h0IGtvcGllcmVuLiBFeGlzdGllcmVuZGUgTm90aXplbiBmw7xyIE9iamVrdCAlcyBnZWZ1bmRlbi4gIgogIlZlcndlbmRlbiBTaWUgJy1mJyB1bSBkaWUgZXhpc3RpZXJlbmRlbiBOb3RpemVuIHp1IMO8YmVyc2NocmVpYmVuLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKIG1zZ3N0ciAiS2VpbmUgTm90aXplbiBmw7xyIFF1ZWxsLU9iamVrdCAlcy4gS29waWUgbmljaHQgbcO2Z2xpY2guIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzE2CisjOiBidWlsdGluL25vdGVzLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgpAQCAtNjk3NSwxNSArNzM3OCwxNSBAQAogIkRpZSBPcHRpb25lbiAtbS8tRi8tYy8tQyBzaW5kIGbDvHIgZGFzIFVudGVya29tbWFuZG8gJ2VkaXQnIHZlcmFsdGV0LlxuIgogIkJpdHRlIGJlbnV0emVuIFNpZSBzdGF0dGRlc3NlbiAnZ2l0IG5vdGVzIGFkZCAtZiAtbS8tRi8tYy8tQycuXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIkFsbGdlbWVpbmUgT3B0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzcKIG1zZ2lkICJNZXJnZSBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIFp1c2FtbWVuZsO8aHJ1bmciCittc2dzdHIgIk1lcmdlLU9wdGlvbmVuIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY3CisjOiBidWlsdGluL25vdGVzLmM6NzM5CiBtc2dpZCAiIgogInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKQEAgLTY5OTEsNDYgKzczOTQsNDYgQEAKICJsw7ZzdCBLb25mbGlrdGUgYmVpIE5vdGl6ZW4gbWl0IGRlciBhbmdlZ2ViZW5lbiBTdHJhdGVnaWUgYXVmIChtYW51YWwvb3Vycy8iCiAidGhlaXJzL3VuaW9uL2NhdF9zb3J0X3VuaXEpIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY5CisjOiBidWlsdGluL25vdGVzLmM6NzQxCiBtc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAidHLDpGd0IG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIE5vdGl6ZW4gZWluIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODcxCisjOiBidWlsdGluL25vdGVzLmM6NzQzCiBtc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAiIgotInNjaGxpZcOfdCBadXNhbW1lbmbDvGhydW5nIHZvbiBOb3RpemVuIGFiLCBpbiBkZW0gbmljaHQgenVzYW1tZW5nZWbDvGhydGUgIgotIk5vdGl6ZW4gZWluZ2V0cmFnZW4gd2VyZGVuIgorInNjaGxpZcOfdCBNZXJnZSB2b24gTm90aXplbiBhYiwgaW4gZGVtIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIE5vdGl6ZW4gIgorImNvbW1pdHRldCB3ZXJkZW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDUKIG1zZ2lkICJBYm9ydGluZyBub3RlcyBtZXJnZSByZXNvbHV0aW9uIgotbXNnc3RyICJicmljaHQgS29uZmxpa3RhdWZsw7ZzdW5nIGJlaSBadXNhbW1lbmbDvGhydW5nIHZvbiBOb3RpemVuIGFiIgorbXNnc3RyICJicmljaHQgS29uZmxpa3RhdWZsw7ZzdW5nIGJlaW0gTWVyZ2Ugdm9uIE5vdGl6ZW4gYWIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDcKIG1zZ2lkICJhYm9ydCBub3RlcyBtZXJnZSIKLW1zZ3N0ciAiYnJpY2h0IFp1c2FtbWVuZsO8aHJ1bmcgdm9uIE5vdGl6ZW4gYWIiCittc2dzdHIgImJyaWNodCBNZXJnZSB2b24gTm90aXplbiBhYiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAiT2JqZWt0ICVzIGhhdCBrZWluZSBOb3RpelxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICJkZXIgVmVyc3VjaCwgZWluZSBuaWNodCBleGlzdGllcmVuZGUgTm90aXogenUgbMO2c2NoZW4sIGlzdCBrZWluIEZlaGxlciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjg1NwogbXNnaWQgInJlYWQgb2JqZWN0IG5hbWVzIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJsaWVzdCBPYmpla3RuYW1lbiB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY2CisjOiBidWlsdGluL25vdGVzLmM6OTM4CiBtc2dpZCAibm90ZXNfcmVmIgogbXNnc3RyICJOb3Rpei1SZWZlcmVueiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzkKIG1zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAidmVyd2VuZGV0IE5vdGl6ZW4gdm9uIDxOb3Rpei1SZWZlcmVuej4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjk3NCBidWlsdGluL3JlbW90ZS5jOjE1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKIG1zZ3N0ciAiVW5iZWthbm50ZXMgVW50ZXJrb21tYW5kbzogJXMiCkBAIC03MDUzLDEyICs3NDU2LDEyIEBACiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgaW5kZXggdmVyc2lvbiAlcyIKLW1zZ3N0ciAiTmljaHQgdW50ZXJzdMO8dHp0ZSBCZXJlaXRzdGVsbHVuZ3N2ZXJzaW9uICVzIgorbXNnc3RyICJOaWNodCB1bnRlcnN0w7x0enRlIFN0YWdpbmctQXJlYS1WZXJzaW9uICVzIgogCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGluZGV4IHZlcnNpb24gJyVzJyIKLW1zZ3N0ciAiVW5nw7xsdGlnZSBCZXJlaXRzdGVsbHVuZ3N2ZXJzaW9uICclcyciCittc2dzdHIgIlVuZ8O8bHRpZ2UgU3RhZ2luZy1BcmVhLVZlcnNpb24gJyVzJyIKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI0CiAjLCBjLWZvcm1hdApAQCAtNzE0NCw3ICs3NTQ3LDcgQEAKIAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDgxCiBtc2dpZCAicmVhZCByZXZpc2lvbiBhcmd1bWVudHMgZnJvbSBzdGFuZGFyZCBpbnB1dCIKLW1zZ3N0ciAibGllc3QgQXJndW1lbnRlIGJlesO8Z2xpY2ggUmV2aXNpb25lbiB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUiCittc2dzdHIgImxpZXN0IEFyZ3VtZW50ZSBiZXrDvGdsaWNoIENvbW1pdHMgdm9uIGRlciBTdGFuZGFyZC1FaW5nYWJlIgogCiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODMKIG1zZ2lkICJsaW1pdCB0aGUgb2JqZWN0cyB0byB0aG9zZSB0aGF0IGFyZSBub3QgeWV0IHBhY2tlZCIKQEAgLTcxNTcsOCArNzU2MCw3IEBACiAjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODkKIG1zZ2lkICJpbmNsdWRlIG9iamVjdHMgcmVmZXJyZWQgYnkgcmVmbG9nIGVudHJpZXMiCiBtc2dzdHIgIiIKLSJzY2hsaWXDn3QgT2JqZWt0ZSBlaW4sIGRpZSB2b24gRWludHLDpGdlbiBkZXMgUmVmZXJlbnpwcm90b2tvbGxzIHJlZmVyZW56aWVydCAiCi0id2VyZGVuIgorInNjaGxpZcOfdCBPYmpla3RlIGVpbiwgZGllIHZvbiBFaW50csOkZ2VuIGRlcyBSZWZsb2dzIHJlZmVyZW56aWVydCB3ZXJkZW4iCiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5MgogbXNnaWQgIm91dHB1dCBwYWNrIHRvIHN0ZG91dCIKQEAgLTcxNjYsOCArNzU2OCw3IEBACiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NAogbXNnaWQgImluY2x1ZGUgdGFnIG9iamVjdHMgdGhhdCByZWZlciB0byBvYmplY3RzIHRvIGJlIHBhY2tlZCIKLW1zZ3N0ciAiIgotInNjaGxpZcOfdCBNYXJraWVydW5nc29iamVrdGUgZWluLCBkaWUgYXVmIGdlcGFja3RlIE9iamVrdGUgcmVmZXJlbnppZXJlbiIKK21zZ3N0ciAic2NobGllw590IFRhZy1PYmpla3RlIGVpbiwgZGllIGF1ZiBnZXBhY2t0ZSBPYmpla3RlIHJlZmVyZW56aWVyZW4iCiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgogbXNnaWQgImtlZXAgdW5yZWFjaGFibGUgb2JqZWN0cyIKQEAgLTcxOTUsNyArNzU5Niw3IEBACiAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNwogbXNnaWQgImRvIG5vdCBoaWRlIGNvbW1pdHMgYnkgZ3JhZnRzIgotbXNnc3RyICJ2ZXJiaXJndCBrZWluZSBWZXJzaW9uZW4gbWl0IGvDvG5zdGxpY2hlbiBWb3Jnw6RuZ2VybiAoXCJncmFmdHNcIikiCittc2dzdHIgInZlcmJpcmd0IGtlaW5lIENvbW1pdHMgbWl0IGvDvG5zdGxpY2hlbiBWb3Jnw6RuZ2VybiAoXCJncmFmdHNcIikiCiAKICM6IGJ1aWx0aW4vcGFjay1yZWZzLmM6NgogbXNnaWQgImdpdCBwYWNrLXJlZnMgW29wdGlvbnNdIgpAQCAtNzIxNSw3ICs3NjE2LDcgQEAKIAogIzogYnVpbHRpbi9wcnVuZS5jOjEyCiBtc2dpZCAiZ2l0IHBydW5lIFstbl0gWy12XSBbLS1leHBpcmUgPHRpbWU+XSBbLS1dIFs8aGVhZD4uLi5dIgotbXNnc3RyICJnaXQgcHJ1bmUgWy1uXSBbLXZdIFstLWV4cGlyZSA8WmVpdD5dIFstLV0gWzxad2VpZ3NwaXR6ZT4uLi5dIgorbXNnc3RyICJnaXQgcHJ1bmUgWy1uXSBbLXZdIFstLWV4cGlyZSA8WmVpdD5dIFstLV0gWzxoZWFkPi4uLl0iCiAKICM6IGJ1aWx0aW4vcHJ1bmUuYzoxMzIKIG1zZ2lkICJkbyBub3QgcmVtb3ZlLCBzaG93IG9ubHkiCkBAIC03MjMxLDExICs3NjMyLDExIEBACiAKICM6IGJ1aWx0aW4vcHVzaC5jOjE0CiBtc2dpZCAiZ2l0IHB1c2ggWzxvcHRpb25zPl0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0iCi1tc2dzdHIgImdpdCBwdXNoIFs8T3B0aW9uZW4+XSBbPFByb2pla3RhcmNoaXY+IFs8UmVmZXJlbnpzcGV6aWZpa2F0aW9uPi4uLl1dIgorbXNnc3RyICJnaXQgcHVzaCBbPE9wdGlvbmVuPl0gWzxSZXBvc2l0b3J5PiBbPFJlZnNwZWM+Li4uXV0iCiAKICM6IGJ1aWx0aW4vcHVzaC5jOjQ1CiBtc2dpZCAidGFnIHNob3J0aGFuZCB3aXRob3V0IDx0YWc+IgotbXNnc3RyICJLdXJ6c2NocmlmdCBmw7xyIE1hcmtpZXJ1bmcgb2huZSA8TWFya2llcnVuZz4iCittc2dzdHIgIkt1cnpzY2hyaWZ0IGbDvHIgVGFnIG9obmUgPFRhZz4iCiAKICM6IGJ1aWx0aW4vcHVzaC5jOjY0CiBtc2dpZCAiLS1kZWxldGUgb25seSBhY2NlcHRzIHBsYWluIHRhcmdldCByZWYgbmFtZXMiCkBAIC03MjY0LDE5ICs3NjY1LDE5IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiBtc2dzdHIgIiIKLSJEZXIgTmFtZSBkZXMgZXh0ZXJuZW4gw5xiZXJuYWhtZXp3ZWlnZXMgc3RpbW10IG5pY2h0IG1pdCBkZW0gTmFtZW4gSWhyZXNcbiIKLSJha3R1ZWxsZW4gWndlaWdlcyDDvGJlcmVpbi4gVW0gYXVmIGRlbiDDnGJlcm5haG1lendlaWcgaW4gZGVtIGV4dGVybmVuXG4iCi0iUHJvamVrdGFyY2hpdiB6dSB2ZXJzZW5kZW4sIGJlbnV0emVuIFNpZTpcbiIKKyJEZXIgTmFtZSBkZXMgVXBzdHJlYW0tQnJhbmNoZXMgc3RpbW10IG5pY2h0IG1pdCBkZW0gTmFtZW4gSWhyZXNcbiIKKyJha3R1ZWxsZW4gQnJhbmNoZXMgw7xiZXJlaW4uIFVtIGF1ZiBkZW4gVXBzdHJlYW0tQnJhbmNoIGluIGRlbSBSZW1vdGUtXG4iCisiUmVwb3NpdG9yeSB6dSB2ZXJzZW5kZW4sIGJlbnV0emVuIFNpZTpcbiIKICJcbiIKICIgICAgZ2l0IHB1c2ggJXMgSEVBRDolc1xuIgogIlxuIgotIlVtIGF1ZiBkZW4gWndlaWcgbWl0IGRlbSBzZWxiZW4gTmFtZW4gaW4gZGVtIGV4dGVybmVuIFByb2pla2FyY2hpdlxuIgotInp1IHZlcnNlbmRlbiwgYmVudXR6ZW4gU2llOlxuIgorIlVtIGF1ZiBkZW4gQnJhbmNoIG1pdCBkZW0gc2VsYmVuIE5hbWVuIGltIFJlbW90ZS1SZXBvc2l0b3J5IHp1IHZlcnNlbmRlbixcbiIKKyJiZW51dHplbiBTaWU6XG4iCiAiXG4iCiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIzogYnVpbHRpbi9wdXNoLmM6MTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03Mjg1LDEzICs3Njg2LDEzIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIG1zZ3N0ciAiIgotIlNpZSBiZWZpbmRlbiBzaWNoIGltIE1vbWVudCBhdWYga2VpbmVtIFp3ZWlnLlxuIgotIlVtIGRpZSBIaXN0b3JpZSwgZsO8aHJlbmQgenVtIGFrdHVlbGxlbiAoZnJlaXN0ZWhlbmRlIFp3ZWlnc3BpdHplIChIRUFEKSlcbiIKKyJTaWUgYmVmaW5kZW4gc2ljaCBpbSBNb21lbnQgYXVmIGtlaW5lbSBCcmFuY2guXG4iCisiVW0gZGllIEhpc3RvcmllLCBmw7xocmVuZCB6dW0gYWt0dWVsbGVuIChsb3NnZWzDtnN0ZXIgSEVBRClcbiIKICJTdGF0dXMgenUgdmVyc2VuZGVuLCBiZW51dHplbiBTaWVcbiIKICJcbiIKLSIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8TmFtZS1kZXMtZXh0ZXJuZW4tWndlaWdlcz5cbiIKKyIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8TmFtZS1kZXMtUmVtb3RlLUJyYW5jaGVzPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03Mjk5LDI5ICs3NzAwLDMwIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiBtc2dzdHIgIiIKLSJEZXIgYWt0dWVsbGUgWndlaWcgJXMgaGF0IGtlaW5lbiBad2VpZyBpbSBleHRlcm5lbiBQcm9qZWt0YXJjaGl2LlxuIgotIlVtIGRlbiBha3R1ZWxsZW4gWndlaWcgenUgdmVyc2VuZGVuIHVuZCBkYXMgRmVybmFyY2hpdiBhbHMgZXh0ZXJuZXNcbiIKLSJQcm9qZWt0YXJjaGl2IHp1IHZlcndlbmRlbiwgYmVudXR6ZW4gU2llXG4iCisiRGVyIGFrdHVlbGxlIEJyYW5jaCAlcyBoYXQga2VpbmVuIFVwc3RyZWFtLUJyYW5jaC5cbiIKKyJVbSBkZW4gYWt0dWVsbGVuIEJyYW5jaCB6dSB2ZXJzZW5kZW4gdW5kIGRlbiBSZW1vdGUtQnJhbmNoXG4iCisiYWxzIFVwc3RyZWFtLUJyYW5jaCB6dSBzZXR6ZW4sIGJlbnV0emVuIFNpZVxuIgogIlxuIgogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzYKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKLW1zZ3N0ciAiRGVyIGFrdHVlbGxlIFp3ZWlnICVzIGhhdCBtZWhyZXJlIGV4dGVybmUgWndlaWdlLCBWZXJzYW5kIHZlcndlaWdlcnQuIgorbXNnc3RyICIiCisiRGVyIGFrdHVlbGxlIEJyYW5jaCAlcyBoYXQgbWVocmVyZSBVcHN0cmVhbS1CcmFuY2hlcywgXCJwdXNoXCIgdmVyd2VpZ2VydC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzOQorIzogYnVpbHRpbi9wdXNoLmM6MTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKICJ5b3VyIGN1cnJlbnQgYnJhbmNoICclcycsIHdpdGhvdXQgdGVsbGluZyBtZSB3aGF0IHRvIHB1c2hcbiIKICJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJTaWUgdmVyc2VuZGVuIG5hY2ggJyVzJywgd2VsY2hlcyBrZWluIGV4dGVybmVzIFByb2pla3RhcmNoaXYgSWhyZXNcbiIKLSJha3R1ZWxsZW4gWndlaWdlcyAnJXMnIGlzdCwgb2huZSBtaXIgbWl0enV0ZWlsZW4sIHdhcyBpY2ggdmVyc2VuZGVuXG4iCi0ic29sbCwgdW0gd2VsY2hlbiBleHRlcm5lbiBad2VpZyB6dSBha3R1YWxpc2llcmVuLiIKKyJTaWUgdmVyc2VuZGVuIG5hY2ggJyVzJywgd2VsY2hlcyBrZWluIFVwc3RyZWFtLVJlcG9zaXRvcnkgSWhyZXMgYWt0dWVsbGVuXG4iCisiQnJhbmNoZXMgJyVzJyBpc3QsIG9obmUgbWlyIG1pdHp1dGVpbGVuLCB3YXMgaWNoIHZlcnNlbmRlbiBzb2xsLCB1bSB3ZWxjaGVuXG4iCisiUmVtb3RlLUJyYW5jaCB6dSBha3R1YWxpc2llcmVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTczNDIsNiArNzc0NCw3IEBACiAid2lyZCBpbiBHaXQgMi4wIHZvbiAnbWF0Y2hpbmcnIG5hY2ggJ3NpbXBsZScgZ2XDpG5kZXJ0LiBVbSBkaWVzZSBNZWxkdW5nIHp1XG4iCiAidW50ZXJkcsO8Y2tlbiB1bmQgZGFzIGFrdHVlbGxlIFZlcmhhbHRlbiBuYWNoIMOEbmRlcnVuZyBkZXMgU3RhbmRhcmR3ZXJ0ZXNcbiIKICJiZWl6dWJlaGFsdGVuLCBiZW51dHplbiBTaWU6XG4iCisiXG4iCiAiICBnaXQgY29uZmlnIC0tZ2xvYmFsIHB1c2guZGVmYXVsdCBtYXRjaGluZ1xuIgogIlxuIgogIlVtIGRpZXNlIE1lbGR1bmcgenUgdW50ZXJkcsO8Y2tlbiB1bmQgZGFzIG5ldWUgVmVyaGFsdGVuIGpldHp0IHp1IMO8YmVybmVobWVuLCAiCkBAIC03MzU1LDI4ICs3NzU4LDI4IEBACiAiTW9kdXMgJ2N1cnJlbnQnIGFuc3RhdHQgJ3NpbXBsZScsIGZhbGxzIFNpZSBnZWxlZ2VudGxpY2ggw6RsdGVyZSBWZXJzaW9uZW4gIgogInZvbiBHaXQgYmVudXR6ZW4uKSIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTk5CisjOiBidWlsdGluL3B1c2guYzoyMjUKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAiIgotIlNpZSBoYWJlbiBrZWluZSBSZWZlcmVuenNwZXppZmlrYXRpb25lbiB6dW0gVmVyc2VuZGVuIGFuZ2VnZWJlbiwgdW5kIHB1c2guIgotImRlZmF1bHQgaXN0IFwibm90aGluZ1wiLiIKKyJTaWUgaGFiZW4ga2VpbmUgUmVmc3BlYyBmw7xyIFwicHVzaFwiIGFuZ2VnZWJlbiwgdW5kIHB1c2guZGVmYXVsdCBpc3QgIgorIlwibm90aGluZ1wiLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBJaHJlcyBha3R1ZWxsZW5cbiIKLSJad2VpZ2VzIGhpbnRlciBzZWluZW0gZXh0ZXJuZW4gR2VnZW5zdMO8Y2sgenVyw7xja2dlZmFsbGVuIGlzdC4gRsO8aHJlbiBTaWVcbiIKLSJkaWUgZXh0ZXJuZW4gw4RuZGVydW5nZW4genVzYW1tZW4gKHouQi4gJ2dpdCBwdWxsJykgYmV2b3IgU2llIGVybmV1dFxuIgotInZlcnNlbmRlbi5cbiIKKyJCcmFuY2hlcyBoaW50ZXIgc2VpbmVtIGV4dGVybmVuIEdlZ2Vuc3TDvGNrIHp1csO8Y2tnZWZhbGxlbiBpc3QuIEbDvGhyZW4gU2llXG4iCisiZGllIGV4dGVybmVuIMOEbmRlcnVuZ2VuIHp1c2FtbWVuICh6LkIuICdnaXQgcHVsbCAuLi4nKSBiZXZvciBTaWUgXCJwdXNoXCJcbiIKKyJlcm5ldXQgYXVzZsO8aHJlbi5cbiIKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTczODQsODAgKzc3ODcsNzkgQEAKICJ0byAnc2ltcGxlJywgJ2N1cnJlbnQnIG9yICd1cHN0cmVhbScgdG8gcHVzaCBvbmx5IHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBlaW5lcyB2ZXJzZW5kZXRlblxuIgotIlp3ZWlnZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBXZW5uIFNpZSAiCisiQnJhbmNoZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBXZW5uIFNpZSAiCiAibmljaHRcbiIKLSJiZWFic2ljaHRpZ3QgaGFiZW4sIGRpZXNlbiBad2VpZyB6dSB2ZXJzZW5kZW4sIGvDtm5uZW4gU2llIGF1Y2ggZGVuIHp1ICIKKyJiZWFic2ljaHRpZ3QgaGFiZW4sIGRpZXNlbiBCcmFuY2ggenUgdmVyc2VuZGVuLCBrw7ZubmVuIFNpZSBhdWNoIGRlbiB6dSAiCiAidmVyc2VuZGVuZGVuXG4iCi0iWndlaWcgc3BlemlmaXppZXJlbiBvZGVyIGRpZSBLb25maWd1cmF0aW9uc3ZhcmlhYmxlICdwdXNoLmRlZmF1bHQnIHp1ICIKKyJCcmFuY2ggc3BlemlmaXppZXJlbiBvZGVyIGRpZSBLb25maWd1cmF0aW9uc3ZhcmlhYmxlICdwdXNoLmRlZmF1bHQnIHp1ICIKICInc2ltcGxlJywgJ2N1cnJlbnQnXG4iCi0ib2RlciAndXBzdHJlYW0nIHNldHplbiwgdW0gbnVyIGRlbiBha3R1ZWxsZW4gWndlaWcgenUgdmVyc2VuZGVuLiIKKyJvZGVyICd1cHN0cmVhbScgc2V0emVuLCB1bSBudXIgZGVuIGFrdHVlbGxlbiBCcmFuY2ggenUgdmVyc2VuZGVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjE4CisjOiBidWlsdGluL3B1c2guYzoyNDQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgotImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJBa3R1YWxpc2llcnVuZ2VuIHd1cmRlbiB6dXLDvGNrZ2V3aWVzZW4sIHdlaWwgZGllIFNwaXR6ZSBlaW5lcyB2ZXJzZW5kZXRlblxuIgotIlp3ZWlnZXMgaGludGVyIHNlaW5lbSBleHRlcm5lbiBHZWdlbnN0w7xjayB6dXLDvGNrZ2VmYWxsZW4gaXN0LiBDaGVja2VuIFNpZVxuIgotImRpZXNlbiBad2VpZyBhdXMgdW5kIGbDvGhyZW4gU2llIGRpZSBleHRlcm5lbiDDhG5kZXJ1bmdlbiB6dXNhbW1lblxuIgotIih6LkIuICdnaXQgcHVsbCcpIGJldm9yIFNpZSBlcm5ldXQgdmVyc2VuZGVuLlxuIgorIkJyYW5jaGVzIGhpbnRlciBzZWluZW0gZXh0ZXJuZW4gR2VnZW5zdMO8Y2sgenVyw7xja2dlZmFsbGVuIGlzdC4gQ2hlY2tlbiBTaWVcbiIKKyJkaWVzZW4gQnJhbmNoIGF1cyB1bmQgZsO8aHJlbiBTaWUgZGllIGV4dGVybmVuIMOEbmRlcnVuZ2VuIHp1c2FtbWVuXG4iCisiKHouQi4gJ2dpdCBwdWxsIC4uLicpIGJldm9yIFNpZSBlcm5ldXQgXCJwdXNoXCIgYXVzZsO8aHJlbi5cbiIKICJTaWVoZSBhdWNoIGRpZSBTZWt0aW9uICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnXG4iCiAiZsO8ciB3ZWl0ZXJlIERldGFpbHMuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1MAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKICJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCi0idG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotIidnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCi0iQWt0dWFsaXNpZXJ1bmdlbiB3dXJkZW4genVyw7xja2dld2llc2VuLCB3ZWlsIGRhcyBGZXJuYXJjaGl2IFZlcnNpb25lbiAiCisiQWt0dWFsaXNpZXJ1bmdlbiB3dXJkZW4genVyw7xja2dld2llc2VuLCB3ZWlsIGRhcyBSZW1vdGUtUmVwb3NpdG9yeSBDb21taXRzICIKICJlbnRow6RsdCxcbiIKLSJkaWUgbG9rYWwgbmljaHQgdm9yaGFuZGVuIHNpbmQuIERhcyB3aXJkIMO8YmxpY2hlcndlaXNlIGR1cmNoIGRhcyBWZXJzZW5kZW4gIgorImRpZSBsb2thbCBuaWNodCB2b3JoYW5kZW4gc2luZC4gRGFzIHdpcmQgw7xibGljaGVyd2Vpc2UgZHVyY2ggZWluZW4gXCJwdXNoXCIgIgogInZvblxuIgotIlZlcnNpb25lbiBhdWYgZGllc2VsYmUgUmVmZXJlbnogdm9uIGVpbmVtIGFuZGVyZW4gUHJvamVrdGFyY2hpdiBhdXMgIgotInZlcnVyc2FjaHQuXG4iCisiQ29tbWl0cyBhdWYgZGllc2VsYmUgUmVmZXJlbnogdm9uIGVpbmVtIGFuZGVyZW4gUmVwb3NpdG9yeSBhdXMgdmVydXJzYWNodC5cbiIKICJWaWVsbGVpY2h0IG3DvHNzZW4gU2llIGRpZSBleHRlcm5lbiDDhG5kZXJ1bmdlbiB6dXNhbW1lbnp1ZsO8aHJlbiAoei5CLiAnZ2l0ICIKLSJwdWxsJylcbiIKLSJiZXZvciBTaWUgZXJuZXV0IHZlcnNlbmRlbi5cbiIKKyJwdWxsIC4uLicpXG4iCisiYmV2b3IgU2llIGVybmV1dCBcInB1c2hcIiBhdXNmw7xocmVuLlxuIgogIlNpZWhlIGF1Y2ggZGllIFNla3Rpb24gJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCdcbiIKICJmw7xyIHdlaXRlcmUgRGV0YWlscy4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorIzogYnVpbHRpbi9wdXNoLmM6MjU3CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAiIgotIkFrdHVhbGlzaWVydW5nZW4gd3VyZGVuIHp1csO8Y2tnZXdpZXNlbiwgd2VpbCBkaWUgTWFya2llcnVuZyBiZXJlaXRzXG4iCi0iaW0gRmVybmFyY2hpdiBleGlzdGllcnQuIgorIkFrdHVhbGlzaWVydW5nZW4gd3VyZGVuIHp1csO8Y2tnZXdpZXNlbiwgd2VpbCBkYXMgVGFnIGJlcmVpdHNcbiIKKyJpbSBSZW1vdGUtUmVwb3NpdG9yeSBleGlzdGllcnQuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI2MAogbXNnaWQgIiIKICJZb3UgY2Fubm90IHVwZGF0ZSBhIHJlbW90ZSByZWYgdGhhdCBwb2ludHMgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJvciB1cGRhdGUgYSByZW1vdGUgcmVmIHRvIG1ha2UgaXQgcG9pbnQgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJ3aXRob3V0IHVzaW5nIHRoZSAnLS1mb3JjZScgb3B0aW9uLlxuIgogbXNnc3RyICIiCi0iU2llIGvDtm5uZW4ga2VpbmUgZXh0ZXJuZSBSZWZlcmVueiBha3R1YWxpc2llcmVuLCBkaWUgYXVmIGVpbiBPYmpla3QgemVpZ3QsXG4iCi0iZGFzIGtlaW5lIFZlcnNpb24gaXN0LCBvZGVyIGVzIGF1ZiBlaW4gc29sY2hlcyBPYmpla3QgemVpZ2VuIGxhc3Nlbiwgb2huZVxuIgorIlNpZSBrw7ZubmVuIGtlaW5lIFJlbW90ZS1SZWZlcmVueiBha3R1YWxpc2llcmVuLCBkaWUgYXVmIGVpbiBPYmpla3QgemVpZ3QsXG4iCisiZGFzIGtlaW4gQ29tbWl0IGlzdCwgb2RlciBlcyBhdWYgZWluIHNvbGNoZXMgT2JqZWt0IHplaWdlbiBsYXNzZW4sIG9obmVcbiIKICJkaWUgT3B0aW9uICctLWZvcmNlJyB6dSB2ZXJ3ZW5kZW4uXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjI5NAorIzogYnVpbHRpbi9wdXNoLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKIG1zZ3N0ciAiVmVyc2VuZGUgbmFjaCAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTgKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8gJyVzJyIKIG1zZ3N0ciAiRmVobGVyIGJlaW0gVmVyc2VuZGVuIGVpbmlnZXIgUmVmZXJlbnplbiBuYWNoICclcyciCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQorIzogYnVpbHRpbi9wdXNoLmM6MzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCi1tc2dzdHIgInVuZ8O8bHRpZ2VzIFByb2pla3RhcmNoaXYgJyVzJyIKK21zZ3N0ciAidW5nw7xsdGlnZXMgUmVwb3NpdG9yeSAnJXMnIgogCi0jOiBidWlsdGluL3B1c2guYzozMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1OAogbXNnaWQgIiIKICJObyBjb25maWd1cmVkIHB1c2ggZGVzdGluYXRpb24uXG4iCiAiRWl0aGVyIHNwZWNpZnkgdGhlIFVSTCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgb3IgY29uZmlndXJlIGEgcmVtb3RlICIKQEAgLTc0NjksMTAwICs3ODcxLDk3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIDxuYW1lPlxuIgogbXNnc3RyICIiCi0iS2VpbiBaaWVsIHp1bSBWZXJzZW5kZW4ga29uZmlndXJpZXJ0LlxuIgorIktlaW4gWmllbCBmw7xyIFwicHVzaFwiIGtvbmZpZ3VyaWVydC5cbiIKICJFbnR3ZWRlciBzcGV6aWZpemllcmVuIFNpZSBkaWUgVVJMIHZvbiBkZXIgS29tbWFuZG96ZWlsZSBvZGVyIGtvbmZpZ3VyaWVyZW4gIgotImVpbiBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IHVudGVyIEJlbnV0enVuZyB2b25cbiIKKyJlaW4gUmVtb3RlLVJlcG9zaXRvcnkgdW50ZXIgQmVudXR6dW5nIHZvblxuIgogIlxuIgogIiAgICBnaXQgcmVtb3RlIGFkZCA8TmFtZT4gPFVSTD5cbiIKICJcbiIKLSJ1bmQgdmVyc2VuZGVuIGRhbm4gdW50ZXIgQmVudXR6dW5nIGRpZXNlcyBOYW1lbnNcbiIKKyJ1bmQgZsO8aHJlbiBcInB1c2hcIiBkYW5uIHVudGVyIEJlbnV0enVuZyBkaWVzZXMgTmFtZW5zIGF1c1xuIgogIlxuIgogIiAgICBnaXQgcHVzaCA8TmFtZT5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWFsbCB1bmQgLS10YWdzIHNpbmQgaW5rb21wYXRpYmVsLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ4CisjOiBidWlsdGluL3B1c2guYzozNzQKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgotbXNnc3RyICIiCi0iRGllIE9wdGlvbiAtLWFsbCBrYW5uIG5pY2h0IG1pdCBSZWZlcmVuenNwZXppZmlrYXRpb25lbiBrb21iaW5pZXJ0IHdlcmRlbi4iCittc2dzdHIgIkRpZSBPcHRpb24gLS1hbGwga2FubiBuaWNodCBtaXQgUmVmc3BlY3Mga29tYmluaWVydCB3ZXJkZW4uIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3OQogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiRGllIE9wdGlvbmVuIC0tbWlycm9yIHVuZCAtLXRhZ3Mgc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCi1tc2dzdHIgIiIKLSJEaWUgT3B0aW9uIC0tbWlycm9yIGthbm4gbmljaHQgbWl0IFJlZmVyZW56c3BlemlmaWthdGlvbmVuIGtvbWJpbmllcnQgd2VyZGVuLiIKK21zZ3N0ciAiRGllIE9wdGlvbiAtLW1pcnJvciBrYW5uIG5pY2h0IG1pdCBSZWZzcGVjcyBrb21iaW5pZXJ0IHdlcmRlbi4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OQorIzogYnVpbHRpbi9wdXNoLmM6Mzg1CiBtc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIkRpZSBPcHRpb25lbiAtLWFsbCB1bmQgLS1taXJyb3Igc2luZCBpbmtvbXBhdGliZWwuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQogbXNnaWQgInJlcG9zaXRvcnkiCi1tc2dzdHIgIlByb2pla3RhcmNoaXYiCittc2dzdHIgIlJlcG9zaXRvcnkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMAorIzogYnVpbHRpbi9wdXNoLmM6NDQ2CiBtc2dpZCAicHVzaCBhbGwgcmVmcyIKIG1zZ3N0ciAidmVyc2VuZGV0IGFsbGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIxCisjOiBidWlsdGluL3B1c2guYzo0NDcKIG1zZ2lkICJtaXJyb3IgYWxsIHJlZnMiCiBtc2dzdHIgInNwaWVnZWx0IGFsbGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIzCisjOiBidWlsdGluL3B1c2guYzo0NDkKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAibMO2c2NodCBSZWZlcmVuemVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKLW1zZ3N0ciAiIgotInZlcnNlbmRldCBNYXJraWVydW5nZW4gKGthbm4gbmljaHQgbWl0IC0tYWxsIG9kZXIgLS1taXJyb3IgdmVyd2VuZGV0IHdlcmRlbikiCittc2dzdHIgInZlcnNlbmRldCBUYWdzIChrYW5uIG5pY2h0IG1pdCAtLWFsbCBvZGVyIC0tbWlycm9yIHZlcndlbmRldCB3ZXJkZW4pIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgImVyendpbmd0IEFrdHVhbGlzaWVydW5nIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NAogbXNnaWQgImNoZWNrIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOQorIzogYnVpbHRpbi9wdXNoLmM6NDU1CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgotbXNnc3RyICJzdGV1ZXJ0IHJla3Vyc2l2ZXMgVmVyc2VuZGVuIHZvbiBVbnRlcnByb2pla3RlbiIKK21zZ3N0ciAic3RldWVydCByZWt1cnNpdmVuIFwicHVzaFwiIHZvbiBTdWJtb2R1bGVuIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgInZlcndlbmRldCBrbGVpbmVyZSBQYWtldGUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAiJ3JlY2VpdmUgcGFjaycgUHJvZ3JhbW0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNAorIzogYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCi1tc2dzdHIgInNldHp0IGV4dGVybmVzIFByb2pla3RhcmNoaXYgZsO8ciBcImdpdCBwdWxsL3N0YXR1c1wiIgorbXNnc3RyICJzZXR6dCBVcHN0cmVhbSBmw7xyIFwiZ2l0IHB1bGwvc3RhdHVzXCIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNworIzogYnVpbHRpbi9wdXNoLmM6NDYzCiBtc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCiBtc2dzdHIgImVudGZlcm50IGxva2FsIGdlbMO2c2NodGUgUmVmZXJlbnplbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM5CisjOiBidWlsdGluL3B1c2guYzo0NjUKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAidW1nZWh0IFwicHJlLXB1c2ggaG9va1wiIgogCi0jOiBidWlsdGluL3B1c2guYzo0NDAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NgogbXNnaWQgInB1c2ggbWlzc2luZyBidXQgcmVsZXZhbnQgdGFncyIKLW1zZ3N0ciAidmVyc2VuZGV0IGZlaGxlbmRlLCBhYmVyIHJlbGV2YW50ZSBNYXJraWVydW5nZW4iCittc2dzdHIgInZlcnNlbmRldCBmZWhsZW5kZSwgYWJlciByZWxldmFudGUgVGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUwCisjOiBidWlsdGluL3B1c2guYzo0NzYKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWRlbGV0ZSBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLWFsbCwgLS1taXJyb3IgdW5kIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIkRpZSBPcHRpb24gLS1kZWxldGUga2FubiBudXIgbWl0IFJlZmVyZW56ZW4gdmVyd2VuZGV0IHdlcmRlbi4iCiAKQEAgLTc1NzQsNzYgKzc5NzMsODMgQEAKIG1zZ3N0ciAiIgogImdpdCByZWFkLXRyZWUgW1stbSBbLS10cml2aWFsXSBbLS1hZ2dyZXNzaXZlXSB8IC0tcmVzZXQgfCAtLXByZWZpeD08UHJlZml4Pl0gIgogIlstdSBbLS1leGNsdWRlLXBlci1kaXJlY3Rvcnk9PGdpdGlnbm9yZT5dIHwgLWldXSBbLS1uby1zcGFyc2UtY2hlY2tvdXRdIFstLSIKLSJpbmRleC1vdXRwdXQ9PERhdGVpPl0gKC0tZW1wdHkgfCA8VmVyc2lvbnNyZWZlcmVuejE+IFs8VmVyc2lvbnNyZWZlcmVuejI+ICIKLSJbPFZlcnNpb25zcmVmZXJlbnozPl1dKSIKKyJpbmRleC1vdXRwdXQ9PERhdGVpPl0gKC0tZW1wdHkgfCA8Q29tbWl0LVJlZmVyZW56MT4gWzxDb21taXQtUmVmZXJlbnoyPiAiCisiWzxDb21taXQtUmVmZXJlbnozPl1dKSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA5CiBtc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKLW1zZ3N0ciAic2NocmVpYnQgcmVzdWx0aWVyZW5kZSBCZXJlaXRzdGVsbHVuZyBuYWNoIDxEYXRlaT4iCittc2dzdHIgInNjaHJlaWJ0IHJlc3VsdGllcmVuZGUgU3RhZ2luZy1BcmVhIG5hY2ggPERhdGVpPiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCiBtc2dpZCAib25seSBlbXB0eSB0aGUgaW5kZXgiCi1tc2dzdHIgImxlZXJ0IGRpZSBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAibGVlcnQgZGllIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE0CiBtc2dpZCAiTWVyZ2luZyIKLW1zZ3N0ciAiWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiTWVyZ2UiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNgogbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCi1tc2dzdHIgImbDvGhydCBlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgenVzw6R0emxpY2ggenVtIExlc2VuIGF1cyIKK21zZ3N0ciAiZsO8aHJ0IGVpbmVuIE1lcmdlIHp1c8OkdHpsaWNoIHp1bSBMZXNlbiBhdXMiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOAogbXNnaWQgIjMtd2F5IG1lcmdlIGlmIG5vIGZpbGUgbGV2ZWwgbWVyZ2luZyByZXF1aXJlZCIKLW1zZ3N0ciAiIgotIjMtV2VnZS1adXNhbW1lbmbDvGhydW5nLCB3ZW5uIGtlaW5lIFp1c2FtbWVuZsO8aHJ1bmcgYXVmIERhdGVpZWJlbmUgIgotImVyZm9yZGVybGljaCBpc3QiCittc2dzdHIgIjMtV2VnZS1NZXJnZSwgd2VubiBrZWluIE1lcmdlIGF1ZiBEYXRlaWViZW5lIGVyZm9yZGVybGljaCBpc3QiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMAogbXNnaWQgIjMtd2F5IG1lcmdlIGluIHByZXNlbmNlIG9mIGFkZHMgYW5kIHJlbW92ZXMiCi1tc2dzdHIgIiIKLSIzLVdlZ2UtWnVzYW1tZW5mw7xocnVuZyBiZWkgVm9yaGFuZGVuc2VpbiB2b24gaGluenVnZWbDvGd0ZW4vZW50ZmVybnRlbiBaZWlsZW4iCittc2dzdHIgIjMtV2VnZS1NZXJnZSBiZWkgVm9yaGFuZGVuc2VpbiB2b24gaGluenVnZWbDvGd0ZW4vZW50ZmVybnRlbiBaZWlsZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIxCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgogbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgImdlbmF1IHdpZSAtbSwgdmVyd2lyZnQgYWJlciBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBFaW50csOkZ2UiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMwogbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiPFVudGVydmVyemVpY2huaXM+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI0CiBtc2dpZCAicmVhZCB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB1bmRlciA8c3ViZGlyZWN0b3J5Pi8iCi1tc2dzdHIgImxpZXN0IGRlbiBCYXVtIGluIGRpZSBCZXJlaXRzdGVsbHVuZyB1bnRlciA8VW50ZXJ2ZXJ6ZWljaG5pcz4vIgorbXNnc3RyICJsaWVzdCBkYXMgVmVyemVpY2huaXMgaW4gZGllIFN0YWdpbmctQXJlYSB1bnRlciA8VW50ZXJ2ZXJ6ZWljaG5pcz4vIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgotbXNnc3RyICJha3R1YWxpc2llcnQgQXJiZWl0c2JhdW0gbWl0IEVyZ2VibmlzIGRlciBadXNhbW1lbmbDvGhydW5nIgorbXNnc3RyICJha3R1YWxpc2llcnQgQXJiZWl0c3ZlcnplaWNobmlzIG1pdCBkZW0gRXJnZWJuaXMgZGVzIE1lcmdlcyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CiBtc2dpZCAiZ2l0aWdub3JlIgogbXNnc3RyICJnaXRpZ25vcmUiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMAogbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKIG1zZ3N0ciAiZXJsYXVidCBleHBsaXppdCBpZ25vcmllcnRlIERhdGVpZW4genUgw7xiZXJzY2hyZWliZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMyCi1tc2dpZCAiZG9uJ3QgY2hlY2sgdGhlIHdvcmtpbmcgdHJlZSBhZnRlciBtZXJnaW5nIgotbXNnc3RyICJwcsO8ZnQgbmljaHQgZGVuIEFyYmVpdHNiYXVtIG5hY2ggZGVyIFp1c2FtbWVuZsO8aHJ1bmciCi0KICM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCi1tc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgotbXNnc3RyICJha3R1YWxpc2llcnQgd2VkZXIgZGllIEJlcmVpdHN0ZWxsdW5nLCBub2NoIGRlbiBBcmJlaXRzYmF1bSIKK21zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCittc2dzdHIgInByw7xmdCBuaWNodCBkYXMgQXJiZWl0c3ZlcnplaWNobmlzIG5hY2ggZGVtIE1lcmdlIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzQKK21zZ2lkICJkb24ndCB1cGRhdGUgdGhlIGluZGV4IG9yIHRoZSB3b3JrIHRyZWUiCittc2dzdHIgImFrdHVhbGlzaWVydCB3ZWRlciBkaWUgU3RhZ2luZy1BcmVhLCBub2NoIGRhcyBBcmJlaXRzdmVyemVpY2huaXMiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM2CiBtc2dpZCAic2tpcCBhcHBseWluZyBzcGFyc2UgY2hlY2tvdXQgZmlsdGVyIgogbXNnc3RyICLDvGJlcnNwcmluZ3QgQW53ZW5kdW5nIGRlcyBGaWx0ZXJzIGbDvHIgc3DDpHJsaWNoZXMgQXVzY2hlY2tlbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICJwcm90b2tvbGxpZXJ0IEVudHBhY2tlbiBkZXIgQsOkdW1lIgogCisjOiBidWlsdGluL3JlZmxvZy5jOjUwMAorIywgYy1mb3JtYXQKK21zZ2lkICIlcycgZm9yICclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJXMnIGbDvHIgJyVzJyBpc3Qga2VpbiBnw7xsdGlnZXIgWmVpdHN0ZW1wZWwiCisKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE2IGJ1aWx0aW4vcmVmbG9nLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICInJXMnIGlzdCBrZWluIGfDvGx0aWdlciBaZWl0c3RlbXBlbCIKKwogIzogYnVpbHRpbi9yZW1vdGUuYzoxMQogbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKIG1zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgpAQCAtNzY1Myw3ICs4MDU5LDcgQEAKICJnaXQgcmVtb3RlIGFkZCBbLXQgPGJyYW5jaD5dIFstbSA8bWFzdGVyPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tIgogIm1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxuYW1lPiA8dXJsPiIKIG1zZ3N0ciAiIgotImdpdCByZW1vdGUgYWRkIFstdCA8WndlaWc+XSBbLW0gPG1hc3Rlcj5dIFstZl0gWy0tdGFnc3wtLW5vLXRhZ3NdIFstLSIKKyJnaXQgcmVtb3RlIGFkZCBbLXQgPEJyYW5jaD5dIFstbSA8bWFzdGVyPl0gWy1mXSBbLS10YWdzfC0tbm8tdGFnc10gWy0tIgogIm1pcnJvcj08ZmV0Y2h8cHVzaD5dIDxOYW1lPiA8VVJMPiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMyBidWlsdGluL3JlbW90ZS5jOjMyCkBAIC03NjY2LDcgKzgwNzIsNyBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE1IGJ1aWx0aW4vcmVtb3RlLmM6NDIKIG1zZ2lkICJnaXQgcmVtb3RlIHNldC1oZWFkIDxuYW1lPiAoLWEgfCAtZCB8IDxicmFuY2g+KSIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLWQgfCA8WndlaWc+KSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8TmFtZT4gKC1hIHwgLWQgfCA8QnJhbmNoPikiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gc2hvdyBbLW5dIDxuYW1lPiIKQEAgLTc2ODAsMTIgKzgwODYsMTEgQEAKIG1zZ2lkICIiCiAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cD4gfCA8cmVtb3RlPikuLi5dIgogbXNnc3RyICIiCi0iZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxHcnVwcGU+IHwgIgotIjxleHRlcm5lc1Byb2pla3RhcmNoaXY+KS4uLl0iCisiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxHcnVwcGU+IHwgPFJlbW90ZT4pLi4uXSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxOQogbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIFstLWFkZF0gPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxOYW1lPiA8WndlaWc+Li4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxOYW1lPiA8QnJhbmNoPi4uLiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoyMCBidWlsdGluL3JlbW90ZS5jOjY4CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtdXJsIFstLXB1c2hdIDxuYW1lPiA8bmV3dXJsPiBbPG9sZHVybD5dIgpAQCAtNzcwNSwxMSArODExMCwxMSBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ3CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyA8TmFtZT4gPFp3ZWlnPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPE5hbWU+IDxCcmFuY2g+Li4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjQ4CiBtc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgLS1hZGQgPG5hbWU+IDxicmFuY2g+Li4uIgotbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyAtLWFkZCA8TmFtZT4gPFp3ZWlnPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgLS1hZGQgPE5hbWU+IDxCcmFuY2g+Li4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjUzCiBtc2dpZCAiZ2l0IHJlbW90ZSBzaG93IFs8b3B0aW9ucz5dIDxuYW1lPiIKQEAgLTc3MjEsNyArODEyNiw3IEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NjMKIG1zZ2lkICJnaXQgcmVtb3RlIHVwZGF0ZSBbPG9wdGlvbnM+XSBbPGdyb3VwPiB8IDxyZW1vdGU+XS4uLiIKLW1zZ3N0ciAiZ2l0IHJlbW90ZSB1cGRhdGUgWzxPcHRpb25lbj5dIFs8R3J1cHBlPiB8IDxleHRlcm5lc1Byb2pla3RhcmNoaXY+XS4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSB1cGRhdGUgWzxPcHRpb25lbj5dIFs8R3J1cHBlPiB8IDxleHRlcm5lc1JlcG9zaXRvcnk+XS4uLiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5OAogIywgYy1mb3JtYXQKQEAgLTc3NDMsMTEgKzgxNDgsMTEgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjMKIG1zZ2lkICJmZXRjaCB0aGUgcmVtb3RlIGJyYW5jaGVzIgotbXNnc3RyICJmb3JkZXJ0IGRpZSBleHRlcm5lbiBad2VpZ2UgYW4iCittc2dzdHIgImZvcmRlcnQgZGllIFJlbW90ZS1CcmFuY2hlcyBhbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjUKIG1zZ2lkICJpbXBvcnQgYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyB3aGVuIGZldGNoaW5nIgotbXNnc3RyICJpbXBvcnRpZXJ0IGFsbGUgTWFya2llcnVuZ2VuIHVuZCB2ZXJidW5kZW5lIE9iamVrdGUgYmVpbSBBbmZvcmRlcm4iCittc2dzdHIgImltcG9ydGllcnQgYWxsZSBUYWdzIHVuZCB2ZXJidW5kZW5lIE9iamVrdGUgYmVpbSBBbmZvcmRlcm4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY4CiBtc2dpZCAib3IgZG8gbm90IGZldGNoIGFueSB0YWcgYXQgYWxsICgtLW5vLXRhZ3MpIgpAQCAtNzc1NSwxMSArODE2MCwxMSBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE3MAogbXNnaWQgImJyYW5jaChlcykgdG8gdHJhY2siCi1tc2dzdHIgIlp3ZWlnZSB6dXIgw5xiZXJuYWhtZSIKK21zZ3N0ciAiQnJhbmNoKGVzKSB6dXIgw5xiZXJuYWhtZSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJtYXN0ZXIgYnJhbmNoIgotbXNnc3RyICJIYXVwdHp3ZWlnIgorbXNnc3RyICJIYXVwdGJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzIKIG1zZ2lkICJwdXNofGZldGNoIgpAQCAtNzc2OCwzNCArODE3MywzNSBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNzMKIG1zZ2lkICJzZXQgdXAgcmVtb3RlIGFzIGEgbWlycm9yIHRvIHB1c2ggdG8gb3IgZmV0Y2ggZnJvbSIKIG1zZ3N0ciAiIgotIkF1ZnNldHplbiBkZXMgRmVybmFyY2hpdnMgYWxzIFNwaWVnZWxhcmNoaXYgenVtIFZlcnNlbmRlbiB1bmQgQW5mb3JkZXJuIgorIkF1ZnNldHplbiBkZXMgUmVtb3RlLVJlcG9zaXRvcmllcyBhbHMgU3BpZWdlbC1SZXBvc2l0b3J5IGbDvHIgXCJwdXNoXCIgdW5kICIKKyJcImZldGNoXCIiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg1CiBtc2dpZCAic3BlY2lmeWluZyBhIG1hc3RlciBicmFuY2ggbWFrZXMgbm8gc2Vuc2Ugd2l0aCAtLW1pcnJvciIKIG1zZ3N0ciAiIgotIkRpZSBPcHRpb24gLS1taXJyb3Iga2FubiBuaWNodCBtaXQgZGVyIEFuZ2FiZSBlaW5lcyBIYXVwdHp3ZWlnZXMgdmVyd2VuZGV0ICIKKyJEaWUgT3B0aW9uIC0tbWlycm9yIGthbm4gbmljaHQgbWl0IGRlciBBbmdhYmUgZWluZXMgSGF1cHRicmFuY2hlcyB2ZXJ3ZW5kZXQgIgogIndlcmRlbi4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg3CiBtc2dpZCAic3BlY2lmeWluZyBicmFuY2hlcyB0byB0cmFjayBtYWtlcyBzZW5zZSBvbmx5IHdpdGggZmV0Y2ggbWlycm9ycyIKIG1zZ3N0ciAiIgotIkRpZSBBbmdhYmUgdm9uIHp1IGZvbGdlbmRlbiBad2VpZ2VuIGthbm4gbnVyIG1pdCBkZW0gQW5mb3JkZXJuIHZvbiAiCisiRGllIEFuZ2FiZSB2b24genUgZm9sZ2VuZGVuIEJyYW5jaGVzIGthbm4gbnVyIG1pdCBkZW0gQW5mb3JkZXJuIHZvbiAiCiAiU3BpZWdlbGFyY2hpdmVuIHZlcndlbmRldCB3ZXJkZW4uIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE5NSBidWlsdGluL3JlbW90ZS5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW1vdGUgJXMgYWxyZWFkeSBleGlzdHMuIgotbXNnc3RyICJleHRlcm5lcyBQcm9qZWt0YXJjaGl2ICVzIGV4aXN0aWVydCBiZXJlaXRzIgorbXNnc3RyICJleHRlcm5lcyBSZXBvc2l0b3J5ICVzIGV4aXN0aWVydCBiZXJlaXRzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE5OSBidWlsdGluL3JlbW90ZS5jOjY1MAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHJlbW90ZSBuYW1lIgotbXNnc3RyICInJXMnIGlzdCBrZWluIGfDvGx0aWdlciBOYW1lIGbDvHIgZWluIGV4dGVybmVzIFByb2pla3RhcmNoaXYiCittc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIE5hbWUgZsO8ciBlaW4gUmVtb3RlLVJlcG9zaXRvcnkiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBzZXR1cCBtYXN0ZXIgJyVzJyIKLW1zZ3N0ciAiS29ubnRlIHN5bWJvbGlzY2hlIFJlZmVyZW56IGbDvHIgSGF1cHR6d2VpZyB2b24gJyVzJyBuaWNodCBlaW5yaWNodGVuIgorbXNnc3RyICJLb25udGUgc3ltYm9saXNjaGUgUmVmZXJlbnogZsO8ciBIYXVwdGJyYW5jaCB2b24gJyVzJyBuaWNodCBlaW5yaWNodGVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjI5OQogIywgYy1mb3JtYXQKQEAgLTc4MDUsNyArODIxMSw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjMzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZ2V0IGZldGNoIG1hcCBmb3IgcmVmc3BlYyAlcyIKLW1zZ3N0ciAiS29ubnRlIEFiaG9sdW5nc3p1b3JkbnVuZyBmw7xyIFJlZmVyZW56c3BlemlmaWthdGlvbiAlcyBuaWNodCBiZWtvbW1lbiIKK21zZ3N0ciAiS29ubnRlIEZldGNoLU1hcCBmw7xyIFJlZnNwZWMgJXMgbmljaHQgYmVrb21tZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6NDQwIGJ1aWx0aW4vcmVtb3RlLmM6NDQ4CiBtc2dpZCAiKG1hdGNoaW5nKSIKQEAgLTc4MjMsNyArODIyOSw3IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjYzOSBidWlsdGluL3JlbW90ZS5jOjc5MiBidWlsdGluL3JlbW90ZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZTogJXMiCi1tc2dzdHIgIktlaW4gc29sY2hlcyBleHRlcm5lcyBBcmNoaXY6ICVzIgorbXNnc3RyICJLZWluIHNvbGNoZXMgUmVtb3RlLVJlcG9zaXRvcnk6ICVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjY1NgogIywgYy1mb3JtYXQKQEAgLTc4NDIsOCArODI0OCw3IEBACiAiXHQlc1xuIgogIlx0UGxlYXNlIHVwZGF0ZSB0aGUgY29uZmlndXJhdGlvbiBtYW51YWxseSBpZiBuZWNlc3NhcnkuIgogbXNnc3RyICIiCi0iS2VpbmUgQWt0dWFsaXNpZXJ1bmcgZGVyIG5pY2h0IHN0YW5kYXJkbcOkw59pZ2VuIFJlZmVyZW56c3BlemlmaWthdGlvbiB6dW0gIgotIkFiaG9sZW5cbiIKKyJLZWluZSBBa3R1YWxpc2llcnVuZyBkZXIgbmljaHQgc3RhbmRhcmRtw6TDn2lnZW4gUmVmc3BlYyBmw7xyIFwiZmV0Y2hcIlxuIgogIlx0JXNcbiIKICJcdEJpdHRlIGFrdHVhbGlzaWVyZW4gU2llLCBmYWxscyBub3R3ZW5kaWcsIGRpZSBLb25maWd1cmF0aW9uIG1hbnVlbGwuIgogCkBAIC03ODcwLDcgKzgyNzUsNyBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzo3NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlbW92ZSBicmFuY2ggJXMiCi1tc2dzdHIgIktvbm50ZSBad2VpZyAlcyBuaWNodCBsw7ZzY2hlbiIKK21zZ3N0ciAiS29ubnRlIEJyYW5jaCAlcyBuaWNodCBsw7ZzY2hlbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo4MzQKIG1zZ2lkICIiCkBAIC03ODgwLDE4ICs4Mjg1LDE4IEBACiAiTm90ZTogU29tZSBicmFuY2hlcyBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3ZXJlIG5vdCByZW1vdmVkO1xuIgogInRvIGRlbGV0ZSB0aGVtLCB1c2U6IgogbXNnc3RyWzBdICIiCi0iSGlud2VpczogRWluIFp3ZWlnIGF1w59lcmhhbGIgZGVyIC9yZWZzL3JlbW90ZXMvIEhpZXJhY2hpZSB3dXJkZSBuaWNodCAiCisiSGlud2VpczogRWluIEJyYW5jaCBhdcOfZXJoYWxiIGRlciByZWZzL3JlbW90ZXMvIEhpZXJhY2hpZSB3dXJkZSBuaWNodCAiCiAiZ2Vsw7ZzY2h0O1xuIgogInVtIGRpZXNlbiB6dSBsw7ZzY2hlbiwgYmVudXR6ZW4gU2llOiIKIG1zZ3N0clsxXSAiIgotIkhpbndlaXM6IEVpbmlnZSBad2VpZ2UgYXXDn2VyIGRlciAvcmVmcy9yZW1vdGVzLyBIaWVyYXJjaGllIHd1cmRlbiBuaWNodCAiCisiSGlud2VpczogRWluaWdlIEJyYW5jaGVzIGF1w59lciBkZXIgcmVmcy9yZW1vdGVzLyBIaWVyYXJjaGllIHd1cmRlbiBuaWNodCAiCiAiZW50ZmVybnQ7XG4iCiAidW0gZGllc2UgenUgZW50ZmVybmVuLCBiZW51dHplbiBTaWU6IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIgbmV3IChuZXh0IGZldGNoIHdpbGwgc3RvcmUgaW4gcmVtb3Rlcy8lcykiCi1tc2dzdHIgIiBuZXUgKHdpcmQgYmVpIG7DpGNoc3RlciBBYmhvbHVuZyBpbiByZW1vdGVzLyVzIGdlc3BlaWNoZXJ0KSIKK21zZ3N0ciAiIG5ldSAod2lyZCBiZWkgbsOkY2hzdGVtIFwiZmV0Y2hcIiBpbiByZW1vdGVzLyVzIGdlc3BlaWNoZXJ0KSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzo5NDYKIG1zZ2lkICIgdHJhY2tlZCIKQEAgLTc5MDgsMzAgKzgzMTMsMzAgQEAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6OTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYnJhbmNoLiVzLm1lcmdlOyBjYW5ub3QgcmViYXNlIG9udG8gPiAxIGJyYW5jaCIKLW1zZ3N0ciAidW5nw7xsdGlnZXMgYnJhbmNoLiVzLm1lcmdlOyBrYW5uIG5pY2h0IGF1ZiA+IDEgWndlaWcgbmV1IGF1ZmJhdWVuIgorbXNnc3RyICJ1bmfDvGx0aWdlcyBicmFuY2guJXMubWVyZ2U7IGthbm4gUmViYXNlIG5pY2h0IGF1ZiA+IDEgQnJhbmNoIGF1c2bDvGhyZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6OTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYmFzZXMgb250byByZW1vdGUgJXMiCi1tc2dzdHIgImJhdXQgbmV1IGF1ZiBleHRlcm5lbiBad2VpZyAlcyBhdWYiCittc2dzdHIgIlJlYmFzZSBhdWYgUmVtb3RlLUJyYW5jaCAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiBtZXJnZXMgd2l0aCByZW1vdGUgJXMiCi1tc2dzdHIgIiBmw7xocnQgbWl0IGV4dGVybmVtIFp3ZWlnICVzIHp1c2FtbWVuIgorbXNnc3RyICIgZsO8aHJ0IG1pdCBSZW1vdGUtQnJhbmNoICVzIHp1c2FtbWVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwMDIKIG1zZ2lkICIgICAgYW5kIHdpdGggcmVtb3RlIgotbXNnc3RyICIgICAgdW5kIG1pdCBleHRlcm5lbSBad2VpZyIKK21zZ3N0ciAiICAgIHVuZCBtaXQgUmVtb3RlLUJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDA0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdlcyB3aXRoIHJlbW90ZSAlcyIKLW1zZ3N0ciAiZsO8aHJ0IG1pdCBleHRlcm5lbSBad2VpZyAlcyB6dXNhbW1lbiIKK21zZ3N0ciAiZsO8aHJ0IG1pdCBSZW1vdGUtQnJhbmNoICVzIHp1c2FtbWVuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwMDUKIG1zZ2lkICIgICBhbmQgd2l0aCByZW1vdGUiCi1tc2dzdHIgIiAgIHVuZCBtaXQgZXh0ZXJuZW0gWndlaWciCittc2dzdHIgIiAgIHVuZCBtaXQgUmVtb3RlLUJyYW5jaCIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMDUxCiBtc2dpZCAiY3JlYXRlIgpAQCAtNzk3NSwxMiArODM4MCwxMiBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEwOTEKIG1zZ2lkICJkbyBub3QgcXVlcnkgcmVtb3RlcyIKLW1zZ3N0ciAia2VpbmUgQWJmcmFnZSB2b24gRmVybmFyY2hpdmVuIgorbXNnc3RyICJrZWluZSBBYmZyYWdlIHZvbiBSZW1vdGUtUmVwb3NpdG9yaWVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKiByZW1vdGUgJXMiCi1tc2dzdHIgIiogZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiAlcyIKK21zZ3N0ciAiKiBSZW1vdGUtUmVwb3NpdG9yeSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTE5CiAjLCBjLWZvcm1hdApAQCAtNzk5OSwyMiArODQwNCwyMiBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTMzIGJ1aWx0aW4vcmVtb3RlLmM6MTEzNSBidWlsdGluL3JlbW90ZS5jOjExMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiICBIRUFEIGJyYW5jaDogJXMiCi1tc2dzdHIgIiAgSGF1cHR6d2VpZzogJXMiCittc2dzdHIgIiAgSGF1cHRicmFuY2g6ICVzIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIiAgSEVBRCBicmFuY2ggKHJlbW90ZSBIRUFEIGlzIGFtYmlndW91cywgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nKTpcbiIKIG1zZ3N0ciAiIgotIiAgSGF1cHR6d2VpZyAoZXh0ZXJuZXIgSGF1cHR6d2VpZyBpc3QgbWVocmRldXRpZywga8O2bm50ZSBlaW5lciBkZXIgZm9sZ2VuZGVuICIKKyIgIEhhdXB0YnJhbmNoIChleHRlcm5lciBIRUFEIGlzdCBtZWhyZGV1dGlnLCBrw7ZubnRlIGVpbmVyIGRlciBmb2xnZW5kZW4gIgogInNlaW4pOlxuIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICBSZW1vdGUgYnJhbmNoOiVzIgogbXNnaWRfcGx1cmFsICIgIFJlbW90ZSBicmFuY2hlczolcyIKLW1zZ3N0clswXSAiICBleHRlcm5lciBad2VpZzolcyIKLW1zZ3N0clsxXSAiICBleHRlcm5lIFp3ZWlnZTolcyIKK21zZ3N0clswXSAiICBSZW1vdGUtQnJhbmNoOiVzIgorbXNnc3RyWzFdICIgIFJlbW90ZS1CcmFuY2hlczolcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTU0IGJ1aWx0aW4vcmVtb3RlLmM6MTE4MQogbXNnaWQgIiAoc3RhdHVzIG5vdCBxdWVyaWVkKSIKQEAgLTgwMjMsOCArODQyOCw4IEBACiAjOiBidWlsdGluL3JlbW90ZS5jOjExNjMKIG1zZ2lkICIgIExvY2FsIGJyYW5jaCBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKIG1zZ2lkX3BsdXJhbCAiICBMb2NhbCBicmFuY2hlcyBjb25maWd1cmVkIGZvciAnZ2l0IHB1bGwnOiIKLW1zZ3N0clswXSAiICBMb2thbGVyIFp3ZWlnIGtvbmZpZ3VyaWVydCBmw7xyICdnaXQgcHVsbCc6IgotbXNnc3RyWzFdICIgIExva2FsZSBad2VpZ2Uga29uZmlndXJpZXJ0IGbDvHIgJ2dpdCBwdWxsJzoiCittc2dzdHJbMF0gIiAgTG9rYWxlciBCcmFuY2gga29uZmlndXJpZXJ0IGbDvHIgJ2dpdCBwdWxsJzoiCittc2dzdHJbMV0gIiAgTG9rYWxlIEJyYW5jaGVzIGtvbmZpZ3VyaWVydCBmw7xyICdnaXQgcHVsbCc6IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjExNzEKIG1zZ2lkICIgIExvY2FsIHJlZnMgd2lsbCBiZSBtaXJyb3JlZCBieSAnZ2l0IHB1c2gnIgpAQCAtODAzOSw3ICs4NDQ0LDcgQEAKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMTk5CiBtc2dpZCAic2V0IHJlZnMvcmVtb3Rlcy88bmFtZT4vSEVBRCBhY2NvcmRpbmcgdG8gcmVtb3RlIgotbXNnc3RyICJzZXR6dCByZWZzL3JlbW90ZXMvPE5hbWU+L0hFQUQgZ2Vtw6TDnyBkZW0gRmVybmFyY2hpdiIKK21zZ3N0ciAic2V0enQgcmVmcy9yZW1vdGVzLzxOYW1lPi9IRUFEIGdlbcOkw58gZGVtIFJlbW90ZS1SZXBvc2l0b3J5IgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEyMDEKIG1zZ2lkICJkZWxldGUgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEIgpAQCAtODA0NywxMyArODQ1MiwxMyBAQAogCiAjOiBidWlsdGluL3JlbW90ZS5jOjEyMTYKIG1zZ2lkICJDYW5ub3QgZGV0ZXJtaW5lIHJlbW90ZSBIRUFEIgotbXNnc3RyICJLYW5uIEhhdXB0endlaWcgZGVzIGV4dGVybmVuIFByb2pla3RhcmNoaXZzIG5pY2h0IGJlc3RpbW1lbiIKK21zZ3N0ciAiS2FubiBIRUFEIGRlcyBSZW1vdGUtUmVwb3NpdG9yaWVzIG5pY2h0IGJlc3RpbW1lbiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjE4CiBtc2dpZCAiTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoiCiBtc2dzdHIgIiIKLSJNZWhyZXJlIEhhdXB0endlaWdlIGltIGV4dGVybmVuIFByb2pla3RhcmNoaXYuIEJpdHRlIHfDpGhsZW4gU2llIGV4cGxpeml0ICIKLSJlaW5lbiBhdXMgbWl0OiIKKyJNZWhyZXJlIEhhdXB0YnJhbmNoZXMgaW0gUmVtb3RlLVJlcG9zaXRvcnkuIEJpdHRlIHfDpGhsZW4gU2llIGV4cGxpeml0IGVpbmVuICIKKyJhdXMgbWl0OiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjI4CiAjLCBjLWZvcm1hdApAQCAtODA4Myw3ICs4NDg4LDcgQEAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJQcnVuaW5nICVzIgotbXNnc3RyICJlbnRmZXJuZSB2ZXJhbHRldGUgWndlaWdlIHZvbiAlcyIKK21zZ3N0ciAiZW50ZmVybmUgdmVyYWx0ZXRlIEJyYW5jaGVzIHZvbiAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjgyCiAjLCBjLWZvcm1hdApAQCAtODA5MywzMyArODQ5OCwzMyBAQAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAqIFt3b3VsZCBwcnVuZV0gJXMiCi1tc2dzdHIgIiAqIFt3w7xyZGUgdmVyYWx0ZXRlbiBad2VpZyBlbnRmZXJuZW5dICVzIgorbXNnc3RyICIgKiBbd8O8cmRlIHZlcmFsdGV0ZW4gQnJhbmNoIGVudGZlcm5lbl0gJXMiCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI5OAogIywgYy1mb3JtYXQKIG1zZ2lkICIgKiBbcHJ1bmVkXSAlcyIKLW1zZ3N0ciAiKiBbdmVyYWx0ZXRlbiBad2VpZyBlbnRmZXJudF0gJXMiCittc2dzdHIgIiogW3ZlcmFsdGV0ZW4gQnJhbmNoIGVudGZlcm50XSAlcyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMzIxCiBtc2dpZCAicHJ1bmUgcmVtb3RlcyBhZnRlciBmZXRjaGluZyIKLW1zZ3N0ciAiZW50ZmVybnQgdmVyYWx0ZXRlIFp3ZWlnZSBpbSBGZXJuYXJjaGl2IG5hY2ggZGVtIEFiaG9sZW4iCittc2dzdHIgImVudGZlcm50IHZlcmFsdGV0ZSBCcmFuY2hlcyBpbSBSZW1vdGUtUmVwb3NpdG9yeSBuYWNoIFwiZmV0Y2hcIiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxMzg3IGJ1aWx0aW4vcmVtb3RlLmM6MTQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSAnJXMnIgotbXNnc3RyICJLZWluIHNvbGNoZXMgZXh0ZXJuZXMgUHJvamVrdGFyY2hpdiAnJXMnIgorbXNnc3RyICJLZWluIHNvbGNoZXMgUmVtb3RlLVJlcG9zaXRvcnkgJyVzJyIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDA3CiBtc2dpZCAiYWRkIGJyYW5jaCIKLW1zZ3N0ciAiZsO8Z3QgWndlaWcgaGluenUiCittc2dzdHIgImbDvGd0IEJyYW5jaCBoaW56dSIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDE0CiBtc2dpZCAibm8gcmVtb3RlIHNwZWNpZmllZCIKLW1zZ3N0ciAia2VpbiBleHRlcm5lcyBQcm9qZWt0YXJjaGl2IGFuZ2VnZWJlbiIKK21zZ3N0ciAia2VpbiBSZW1vdGUtUmVwb3NpdG9yeSBhbmdlZ2ViZW4iCiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQzNgogbXNnaWQgIm1hbmlwdWxhdGUgcHVzaCBVUkxzIgotbXNnc3RyICJtYW5pcHVsaWVydCBVUkxzIHp1bSBWZXJzZW5kZW4iCittc2dzdHIgIm1hbmlwdWxpZXJ0IFVSTHMgZsO8ciBcInB1c2hcIiIKIAogIzogYnVpbHRpbi9yZW1vdGUuYzoxNDM4CiBtc2dpZCAiYWRkIFVSTCIKQEAgLTgxNDYsNyArODU1MSw3IEBACiAKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ5NwogbXNnaWQgIldpbGwgbm90IGRlbGV0ZSBhbGwgbm9uLXB1c2ggVVJMcyIKLW1zZ3N0ciAiV2VyZGUga2VpbmUgVVJMcyBlbnRmZXJuZW4sIGRpZSBuaWNodCBmw7xyIGRlbiBWZXJzYW5kIGJlc3RpbW10IHNpbmQiCittc2dzdHIgIldlcmRlIGtlaW5lIFVSTHMgZW50ZmVybmVuLCBkaWUgbmljaHQgZsO8ciBcInB1c2hcIiBiZXN0aW1tdCBzaW5kIgogCiAjOiBidWlsdGluL3JlbW90ZS5jOjE1NjkKIG1zZ2lkICJiZSB2ZXJib3NlOyBtdXN0IGJlIHBsYWNlZCBiZWZvcmUgYSBzdWJjb21tYW5kIgpAQCAtODE4MiwyMSArODU4NywyMSBAQAogCiAjOiBidWlsdGluL3JlcmVyZS5jOjU2CiBtc2dpZCAicmVnaXN0ZXIgY2xlYW4gcmVzb2x1dGlvbnMgaW4gaW5kZXgiCi1tc2dzdHIgInJlZ2lzdHJpZXJ0IHNhdWJlcmUgQXVmbMO2c3VuZ2VuIGluIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAicmVnaXN0cmllcnQgc2F1YmVyZSBBdWZsw7ZzdW5nZW4gaW4gZGVyIFN0YWdpbmctQXJlYSIKIAogIzogYnVpbHRpbi9yZXNldC5jOjI1CiBtc2dpZCAiIgogImdpdCByZXNldCBbLS1taXhlZCB8IC0tc29mdCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxjb21taXQ+XSIKIG1zZ3N0ciAiIgotImdpdCByZXNldCBbLS1taXhlZCB8IC0tc29mdCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxWZXJzaW9uPl0iCisiZ2l0IHJlc2V0IFstLW1peGVkIHwgLS1zb2Z0IHwgLS1oYXJkIHwgLS1tZXJnZSB8IC0ta2VlcF0gWy1xXSBbPENvbW1pdD5dIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MjYKIG1zZ2lkICJnaXQgcmVzZXQgWy1xXSA8dHJlZS1pc2g+IFstLV0gPHBhdGhzPi4uLiIKLW1zZ3N0ciAiZ2l0IHJlc2V0IFstcV0gPFZlcnNpb25zcmVmZXJlbno+IFstLV0gPFBmYWRlPi4uLiIKK21zZ3N0ciAiZ2l0IHJlc2V0IFstcV0gPENvbW1pdC1SZWZlcmVuej4gWy0tXSA8UGZhZGU+Li4uIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MjcKIG1zZ2lkICJnaXQgcmVzZXQgLS1wYXRjaCBbPHRyZWUtaXNoPl0gWy0tXSBbPHBhdGhzPi4uLl0iCi1tc2dzdHIgImdpdCByZXNldCAtLXBhdGNoIFs8VmVyc2lvbnNyZWZlcmVuej5dIFstLV0gWzxQZmFkZT4uLi5dIgorbXNnc3RyICJnaXQgcmVzZXQgLS1wYXRjaCBbPENvbW1pdC1SZWZlcmVuej5dIFstLV0gWzxQZmFkZT4uLi5dIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6MzMKIG1zZ2lkICJtaXhlZCIKQEAgLTgyMjAsMTEwICs4NjI1LDEwOCBAQAogCiAjOiBidWlsdGluL3Jlc2V0LmM6NzMKIG1zZ2lkICJZb3UgZG8gbm90IGhhdmUgYSB2YWxpZCBIRUFELiIKLW1zZ3N0ciAiU2llIGhhYmVuIGtlaW5lIGfDvGx0aWdlIFp3ZWlnc3BpdHplIChIRUFEKS4iCittc2dzdHIgIlNpZSBoYWJlbiBrZWluZW4gZ8O8bHRpZ2VuIEhFQUQuIgogCiAjOiBidWlsdGluL3Jlc2V0LmM6NzUKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mIEhFQUQuIgotbXNnc3RyICJGZWhsZXIgYmVpbSBGaW5kZW4gZGVzIEJhdW1lcyBkZXIgWndlaWdzcGl0emUgKEhFQUQpLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBcIlRyZWVcIi1PYmpla3RlcyB2b24gSEVBRC4iCiAKICM6IGJ1aWx0aW4vcmVzZXQuYzo4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mICVzLiIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBCYXVtZXMgdm9uICVzLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRmluZGVuIGRlcyBcIlRyZWVcIi1PYmpla3RlcyB2b24gJXMuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6OTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCAlcyIKLW1zZ3N0ciAiWndlaWdzcGl0emUgKEhFQUQpIGlzdCBqZXR6dCBiZWkgJXMiCittc2dzdHIgIkhFQUQgaXN0IGpldHp0IGJlaSAlcyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjE2OQorIzogYnVpbHRpbi9yZXNldC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgotbXNnc3RyICIiCi0iS2FubiBrZWluZSAnJXMnIFp1csO8Y2tzZXR6dW5nIGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluZSBadXNhbW1lbmbDvGhydW5nIGltICIKLSJHYW5nZSBpc3QuIgorbXNnc3RyICJLYW5uIGtlaW5lbiAnJXMnLVJlc2V0IGR1cmNoZsO8aHJlbiwgd8OkaHJlbmQgZWluIE1lcmdlIGltIEdhbmdlIGlzdC4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICJ3ZW5pZ2VyIEF1c2dhYmVuLCBtZWxkZXQgbnVyIEZlaGxlciIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MAorIzogYnVpbHRpbi9yZXNldC5jOjI1MwogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgotbXNnc3RyICJzZXR6dCBad2VpZ3NwaXR6ZSAoSEVBRCkgdW5kIEJlcmVpdHN0ZWxsdW5nIG5ldSIKK21zZ3N0ciAic2V0enQgSEVBRCB1bmQgU3RhZ2luZy1BcmVhIHVtIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjU0CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgotbXNnc3RyICJzZXR6dCBudXIgWndlaWdzcGl0emUgKEhFQUQpIG5ldSIKK21zZ3N0ciAic2V0enQgbnVyIEhFQUQgdW0iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAic2V0enQgWndlaWdzcGl0emUgKEhFQUQpLCBCZXJlaXRzdGVsbHVuZyB1bmQgQXJiZWl0c2JhdW0gbmV1IgorbXNnc3RyICJzZXR6dCBIRUFELCBTdGFnaW5nLUFyZWEgdW5kIEFyYmVpdHN2ZXJ6ZWljaG5pcyB1bSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKLW1zZ3N0ciAic2V0enQgWndlaWdzcGl0emUgKEhFQUQpIG5ldSwgYmVow6RsdCBhYmVyIGxva2FsZSDDhG5kZXJ1bmdlbiIKK21zZ3N0ciAic2V0enQgSEVBRCB1bSwgYmVow6RsdCBhYmVyIGxva2FsZSDDhG5kZXJ1bmdlbiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgotbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2UgUmV2aXNpb24gYXVmbMO2c2VuLiIKK21zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYWxzIGfDvGx0aWdlbiBDb21taXQgYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiS29ubnRlIE9iamVrdCAnJXMnIG5pY2h0IHBhcnNlbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgotbXNnc3RyICJLb25udGUgJyVzJyBuaWNodCBhbHMgZ8O8bHRpZ2VuIEJhdW0gYXVmbMO2c2VuLiIKK21zZ3N0ciAiS29ubnRlICclcycgbmljaHQgYWxzIGfDvGx0aWdlcyBcIlRyZWVcIi1PYmpla3QgYXVmbMO2c2VuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5MgorIzogYnVpbHRpbi9yZXNldC5jOjI5NQogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCBpc3QgaW5rb21wYXRpYmVsIG1pdCAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAxCisjOiBidWlsdGluL3Jlc2V0LmM6MzA0CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCBtaXQgUGZhZGVuIGlzdCB2ZXJhbHRldDsgYmVudXR6ZW4gU2llIHN0YXR0ZGVzc2VuICdnaXQgcmVzZXQgLS0gIgogIjxQZmFkZT4nLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMworIzogYnVpbHRpbi9yZXNldC5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCi1tc2dzdHIgIkVpbmUgJyVzJyBadXLDvGNrc2V0enVuZyBtaXQgUGZhZGVuIGlzdCBuaWNodCBtw7ZnbGljaC4iCittc2dzdHIgIkVpbiAnJXMnLVJlc2V0IG1pdCBQZmFkZW4gaXN0IG5pY2h0IG3DtmdsaWNoLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxMworIzogYnVpbHRpbi9yZXNldC5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKLW1zZ3N0ciAiJyVzJyBadXLDvGNrc2V0enVuZyBpc3QgaW4gZWluZW0gYmxvw59lbiBQcm9qZWt0YXJjaGl2IG5pY2h0IGVybGF1YnQiCittc2dzdHIgIiclcyctUmVzZXQgaXN0IGluIGVpbmVtIEJhcmUtUmVwb3NpdG9yeSBuaWNodCBlcmxhdWJ0IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgotbXNnc3RyICJLb25udGUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgenUgUmV2aXNpb24gJyVzJyBzZXR6ZW4uIgorbXNnc3RyICJLb25udGUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHp1IENvbW1pdCAnJXMnIHNldHplbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzkKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDIKIG1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlc2V0OiIKLW1zZ3N0ciAiTmljaHQgYmVyZWl0Z2VzdGVsbHRlIMOEbmRlcnVuZ2VuIG5hY2ggWnVyw7xja3NldHp1bmc6IgorbXNnc3RyICJOaWNodCB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuIG5hY2ggWnVyw7xja3NldHp1bmc6IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzQ0CisjOiBidWlsdGluL3Jlc2V0LmM6MzQ3CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIG5ldyBpbmRleCBmaWxlLiIKLW1zZ3N0ciAiS29ubnRlIG5ldWUgQmVyZWl0c3RlbGx1bmdzZGF0ZWkgbmljaHQgc2NocmVpYmVuLiIKK21zZ3N0ciAiS29ubnRlIG5ldWUgU3RhZ2luZy1BcmVhLURhdGVpIG5pY2h0IHNjaHJlaWJlbi4iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbT3B0aW9uZW5dIC0tIFs8QXJndW1lbnRlPi4uLl0iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MAogbXNnaWQgImtlZXAgdGhlIGAtLWAgcGFzc2VkIGFzIGFuIGFyZyIKIG1zZ3N0ciAibMOkc3N0IGAtLWAgYWxzIEFyZ3VtZW50IgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NgorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTIKIG1zZ2lkICJzdG9wIHBhcnNpbmcgYWZ0ZXIgdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQiCiBtc2dzdHIgInN0b3BwdCBkYXMgUGFyc2VuIG5hY2ggZGVtIGVyc3RlbiBBcmd1bWVudCB3YXMga2VpbmUgT3B0aW9uIGlzdCIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDcwCiBtc2dpZCAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKICIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKQEAgLTgzMzksMTk2ICs4NzQyLDIyMSBAQAogImVyc3RlciBWZXJ3ZW5kdW5nIGF1cy4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKLW1zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCi1tc2dzdHIgImdpdCByZXZlcnQgW29wdGlvbnNdIDxWZXJzaW9uc2FuZ2FiZT4iCittc2dpZCAiZ2l0IHJldmVydCBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgcmV2ZXJ0IFtPcHRpb25lbl0gPENvbW1pdC1BbmdhYmU+Li4uIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCiBtc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCByZXZlcnQgPFVudGVya29tbWFuZG8+IgogCiAjOiBidWlsdGluL3JldmVydC5jOjI4Ci1tc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCi1tc2dzdHIgImdpdCBjaGVycnktcGljayBbT3B0aW9uZW5dIDxWZXJzaW9uc2FuZ2FiZT4iCittc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCittc2dzdHIgImdpdCBjaGVycnktcGljayBbT3B0aW9uZW5dIDxDb21taXQtQW5nYWJlPi4uLiIKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOQogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCBjaGVycnktcGljayA8VW50ZXJrb21tYW5kbz4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzAgYnVpbHRpbi9yZXZlcnQuYzo5MgorIzogYnVpbHRpbi9yZXZlcnQuYzo3MSBidWlsdGluL3JldmVydC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICIlczogJXMga2FubiBuaWNodCBtaXQgJXMgdmVyd2VuZGV0IHdlcmRlbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CiBtc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiYmVlbmRldCBcInJldmVydFwiIG9kZXIgXCJjaGVycnktcGlja1wiIEFibGF1ZiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CiBtc2dpZCAicmVzdW1lIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAic2V0enQgXCJyZXZlcnRcIiBvZGVyIFwiY2hlcnJ5LXBpY2tcIiBBYmxhdWYgZm9ydCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CiBtc2dpZCAiY2FuY2VsIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiYnJpY2h0IFwicmV2ZXJ0XCIgb2RlciBcImNoZXJyeS1waWNrXCIgQWJsYXVmIGFiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDgKIG1zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKLW1zZ3N0ciAidHLDpGd0IG5pY2h0IGF1dG9tYXRpc2NoIGVpbiIKK21zZ3N0ciAiY29tbWl0dGV0IG5pY2h0IGF1dG9tYXRpc2NoIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDkKIG1zZ2lkICJlZGl0IHRoZSBjb21taXQgbWVzc2FnZSIKLW1zZ3N0ciAiQmVhcmJlaXR1bmcgZGVyIFZlcnNpb25zYmVzY2hyZWlidW5nIgorbXNnc3RyICJCZWFyYmVpdHVuZyBkZXIgQ29tbWl0LUJlc2NocmVpYnVuZyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAiTnVtbWVyIGRlcyBFbHRlcm50ZWlscyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kiCi1tc2dzdHIgIlp1c2FtbWVuZsO8aHJ1bmdzc3RyYXRlZ2llIgorbXNnc3RyICJNZXJnZS1TdHJhdGVnaWUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEzCisjOiBidWlsdGluL3JldmVydC5jOjExNQogbXNnaWQgIm9wdGlvbiIKIG1zZ3N0ciAiT3B0aW9uIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgotbXNnc3RyICJPcHRpb24gZsO8ciBadXNhbW1lbmbDvGhydW5nc3N0cmF0ZWdpZSIKK21zZ3N0ciAiT3B0aW9uIGbDvHIgTWVyZ2UtU3RyYXRlZ2llIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCi1tc2dzdHIgImjDpG5ndCBWZXJzaW9uc25hbWVuIGFuIgorbXNnc3RyICJow6RuZ3QgQ29tbWl0LU5hbWVuIGFuIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjgKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQiCiBtc2dzdHIgImVybGF1YnQgVm9yc3B1bGVuIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNwotbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgotbXNnc3RyICJlcmjDpGx0IHVyc3Byw7xuZ2xpY2hlLCBsZWVyZSBWZXJzaW9uZW4iCi0KLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4Ci1tc2dpZCAiYWxsb3cgY29tbWl0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIgotbXNnc3RyICJlcmxhdWJ0IFZlcnNpb24gbWl0IGxlZXJlciBCZXNjaHJlaWJ1bmciCi0KICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI5Ci1tc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCi1tc2dzdHIgImJlaMOkbHQgcmVkdW5kYW50ZSwgbGVlcmUgVmVyc2lvbmVuIgorbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgorbXNnc3RyICJlcmjDpGx0IHVyc3Byw7xuZ2xpY2hlLCBsZWVyZSBDb21taXRzIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzAKK21zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCittc2dzdHIgImVybGF1YnQgQ29tbWl0cyBtaXQgbGVlcmVyIEJlc2NocmVpYnVuZyIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKK21zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKK21zZ3N0ciAiYmVow6RsdCByZWR1bmRhbnRlLCBsZWVyZSBDb21taXRzIgorCisjOiBidWlsdGluL3JldmVydC5jOjEzNQogbXNnaWQgInByb2dyYW0gZXJyb3IiCiBtc2dzdHIgIlByb2dyYW1tZmVobGVyIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyMworIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICJcInJldmVydFwiIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIzOAorIzogYnVpbHRpbi9yZXZlcnQuYzoyNDAKIG1zZ2lkICJjaGVycnktcGljayBmYWlsZWQiCiBtc2dzdHIgIlwiY2hlcnJ5LXBpY2tcIiBmZWhsZ2VzY2hsYWdlbiIKIAotIzogYnVpbHRpbi9ybS5jOjE1CisjOiBidWlsdGluL3JtLmM6MTYKIG1zZ2lkICJnaXQgcm0gW29wdGlvbnNdIFstLV0gPGZpbGU+Li4uIgogbXNnc3RyICJnaXQgcm0gW09wdGlvbmVuXSBbLS1dIFs8RGF0ZWk+Li4uXSIKIAotIzogYnVpbHRpbi9ybS5jOjY0IGJ1aWx0aW4vcm0uYzoxODYKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6NjQKIG1zZ2lkICIiCi0ic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZXMgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnc3RyWzBdICIiCisiZGFzIGZvbGdlbmRlIFN1Ym1vZHVsIChvZGVyIGVpbiBnZXNjaGFjaHRlbHRlcyBTdWJtb2R1bCBoaWVydm9uKVxuIgorImJlbnV0enQgZWluIC5naXQtVmVyemVpY2huaXM6IgorbXNnc3RyWzFdICIiCisiZGllIGZvbGdlbmRlbiBTdWJtb2R1bGUgKG9kZXIgZWluIGdlc2NoYWNodGVsdGVzIFN1Ym1vZHVsIGhpZXJ2b24pXG4iCisiYmVudXR6ZW4gZWluIC5naXQtVmVyemVpY2huaXM6IgorCisjOiBidWlsdGluL3JtLmM6NzAKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCi0iVW50ZXJwcm9qZWt0ICclcycgKG9kZXIgZWluIGdlc2NoYWNodGVsdGVzIFVudGVycHJvamVrdCBoaWVydm9uKSB2ZXJ3ZW5kZXRcbiIKLSJlaW4gLmdpdC1WZXJ6ZWljaG5pcyAoYmVudXR6ZW4gU2llICdybSAtcmYnIHdlbm4gU2llIGRpZXNlcyB3aXJrbGljaCAiCi0ibWl0c2FtdFxuIgorIlxuIgorIihiZW51dHplbiBTaWUgJ3JtIC1yZicgd2VubiBTaWUgZGllc2VzIFN1Ym1vZHVsIHdpcmtsaWNoIG1pdHNhbXRcbiIKICJzZWluZXIgSGlzdG9yaWUgbMO2c2NoZW4gbcO2Y2h0ZW4pIgogCi0jOiBidWlsdGluL3JtLmM6MTc0Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzMAogbXNnaWQgIiIKLSInJXMnIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgorInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dzdHJbMF0gIiIKKyJkaWUgZm9sZ2VuZGUgRGF0ZWkgaGF0IHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW4gdW50ZXJzY2hpZWRsaWNoXG4iCisienUgZGVyIERhdGVpIHVuZCBIRUFEOiIKK21zZ3N0clsxXSAiIgorImRpZSBmb2xnZW5kZW4gRGF0ZWllbiBoYWJlbiB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuICIKKyJ1bnRlcnNjaGllZGxpY2hcbiIKKyJ6dSBkZXIgRGF0ZWkgdW5kIEhFQUQ6IgorCisjOiBidWlsdGluL3JtLmM6MjM1Cittc2dpZCAiIgorIlxuIgogIih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSInJXMnIGhhdCBiZXJlaXRnZXN0ZWxsdGVuIEluaGFsdCB1bnRlcnNjaGllZGxpY2ggenUgZGVyIERhdGVpIHVuZCBkZXJcbiIKLSJad2VpZ3NwaXR6ZSAoSEVBRCkgKGJlbnV0emVuIFNpZSAtZiB1bSBkaWUgRW50ZmVybnVuZyB6dSBlcnp3aW5nZW4pIgorIlxuIgorIihiZW51dHplbiBTaWUgLWYgdW0gZGllIEzDtnNjaHVuZyB6dSBlcnp3aW5nZW4pIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gImRpZSBmb2xnZW5kZSBEYXRlaSBoYXQgenVtIENvbW1pdCB2b3JnZW1lcmt0ZSDDhG5kZXJ1bmdlbjoiCittc2dzdHJbMV0gImRpZSBmb2xnZW5kZW4gRGF0ZWllbiBoYWJlbiB6dW0gQ29tbWl0IHZvcmdlbWVya3RlIMOEbmRlcnVuZ2VuOiIKKworIzogYnVpbHRpbi9ybS5jOjI0MyBidWlsdGluL3JtLmM6MjU0CiBtc2dpZCAiIgotIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorIlxuIgogIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSInJXMnIGhhdCDDhG5kZXJ1bmdlbiBpbiBkZXIgQmVyZWl0c3RlbGx1bmdcbiIKKyJcbiIKICIoYmVudXR6ZW4gU2llIC0tY2FjaGVkIHVtIGRpZSBEYXRlaSB6dSBiZWhhbHRlbiwgb2RlciAtZiB1bSBkaWUgRW50ZmVybnVuZyAiCiAienUgZXJ6d2luZ2VuKSIKIAotIzogYnVpbHRpbi9ybS5jOjE5MQotIywgYy1mb3JtYXQKLW1zZ2lkICIiCi0iJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCi1tc2dzdHIgIiIKLSInJXMnIGhhdCBsb2thbGUgTW9kaWZpa2F0aW9uZW5cbiIKLSIoYmVudXR6ZW4gU2llIC0tY2FjaGVkIHVtIGRpZSBEYXRlaSB6dSBiZWhhbHRlbiwgb2RlciAtZiB1bSBkaWUgRW50ZmVybnVuZyAiCi0ienUgZXJ6d2luZ2VuKSIKKyM6IGJ1aWx0aW4vcm0uYzoyNTEKK21zZ2lkICJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dzdHJbMF0gImRpZSBmb2xnZW5kZSBEYXRlaSBoYXQgbG9rYWxlIMOEbmRlcnVuZ2VuOiIKK21zZ3N0clsxXSAiZGllIGZvbGdlbmRlbiBEYXRlaWVuIGhhYmVuIGxva2FsZSDDhG5kZXJ1bmdlbjoiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICJsaXN0ZXQga2VpbmUgZ2Vsw7ZzY2h0ZW4gRGF0ZWllbiBhdWYiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDgKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKLW1zZ3N0ciAiZW50ZmVybnQgbnVyIGF1cyBkZXIgQmVyZWl0c3RlbGx1bmciCittc2dzdHIgImVudGZlcm50IG51ciBhdXMgZGVyIFN0YWdpbmctQXJlYSIKIAotIzogYnVpbHRpbi9ybS5jOjIwOQorIzogYnVpbHRpbi9ybS5jOjI3MQogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICLDvGJlcnNjaHJlaWJ0IGRpZSBcInVwLXRvLWRhdGVcIiBQcsO8ZnVuZyIKIAotIzogYnVpbHRpbi9ybS5jOjIxMAorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICJlcmxhdWJ0IHJla3Vyc2l2ZSBFbnRmZXJudW5nIgogCi0jOiBidWlsdGluL3JtLmM6MjEyCisjOiBidWlsdGluL3JtLmM6Mjc0CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgImJlZW5kZXQgbWl0IFLDvGNrZ2FiZXdlcnQgMCwgd2VubiBrZWluZSDDnGJlcmVpbnN0aW1tdW5nIGdlZnVuZGVuIHd1cmRlIgogCi0jOiBidWlsdGluL3JtLmM6MjgzCisjOiBidWlsdGluL3JtLmM6MzQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIiclcycgd2lyZCBuaWNodCBvaG5lIC1yIHJla3Vyc2l2IGVudGZlcm50IgogCi0jOiBidWlsdGluL3JtLmM6MzIyCisjOiBidWlsdGluL3JtLmM6Mzg0CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBybTogdW5hYmxlIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ2l0IHJtOiBrb25udGUgJXMgbmljaHQgbMO2c2NoZW4iCiAKICM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMwotbXNnaWQgImdpdCBzaG9ydGxvZyBbLW5dIFstc10gWy1lXSBbLXddIFtyZXYtb3B0c10gWy0tXSBbPGNvbW1pdC1pZD4uLi4gXSIKLW1zZ3N0ciAiIgotImdpdCBzaG9ydGxvZyBbLW5dIFstc10gWy1lXSBbLXddIFtyZXYtb3B0c10gWy0tXSAiCi0iWzxWZXJzaW9uc2lkZW50aWZpa2F0aW9uPi4uLiBdIgorbXNnaWQgImdpdCBzaG9ydGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gWzxwYXRoPi4uLl1dIgorbXNnc3RyICJnaXQgc2hvcnRsb2cgWzxPcHRpb25lbj5dIFtDb21taXRiZXJlaWNoXSBbWy0tXSA8UGZhZD4uLi5dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTMzCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1pc3NpbmcgYXV0aG9yOiAlcyIKIG1zZ3N0ciAiZmVobGVuZGVyIEF1dG9yOiAlcyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOAogbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKLW1zZ3N0ciAic29ydGllcnQgZGllIEF1c2dhYmUgZW50c3ByZWNoZW5kIGRlciBBbnphaGwgdm9uIFZlcnNpb25lbiBwcm8gQXV0b3IiCittc2dzdHIgInNvcnRpZXJ0IGRpZSBBdXNnYWJlIGVudHNwcmVjaGVuZCBkZXIgQW56YWhsIHZvbiBDb21taXRzIHBybyBBdXRvciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgotbXNnc3RyICJVbnRlcmRyw7xja3QgVmVyc2lvbnNiZXNjaHJlaWJ1bmdlbiwgbGllZmVydCBudXIgQW56YWhsIGRlciBWZXJzaW9uZW4iCittc2dzdHIgIlVudGVyZHLDvGNrdCBDb21taXQtQmVzY2hyZWlidW5nZW4sIGxpZWZlcnQgbnVyIEFuemFobCBkZXIgQ29tbWl0cyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIlplaWd0IGRpZSBFbWFpbC1BZHJlc3NlIHZvbiBqZWRlbSBBdXRvciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMwogbXNnaWQgIndbLGkxWyxpMl1dIgogbXNnc3RyICJ3WyxpMVssaTJdXSIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzNAogbXNnaWQgIkxpbmV3cmFwIG91dHB1dCIKIG1zZ3N0ciAiQXVzZ2FiZSBtaXQgWmVpbGVudW1icsO8Y2hlbiIKIApAQCAtODU0MSw3OCArODk2OSw3NiBAQAogbXNnc3RyICIiCiAiZ2l0IHNob3ctYnJhbmNoIFstYXwtLWFsbF0gWy1yfC0tcmVtb3Rlc10gWy0tdG9wby1vcmRlciB8IC0tZGF0ZS1vcmRlcl0gWy0tIgogImN1cnJlbnRdIFstLWNvbG9yWz08V2Fubj5dIHwgLS1uby1jb2xvcl0gWy0tc3BhcnNlXSBbLS1tb3JlPTxuPiB8IC0tbGlzdCB8IC0tIgotImluZGVwZW5kZW50IHwgLS1tZXJnZS1iYXNlXSBbLS1uby1uYW1lIHwgLS1zaGExLW5hbWVdIFstLXRvcGljc10gIgotIlsoPFJldmlzaW9uPiB8IDxnbG9iPikuLi5dIgorImluZGVwZW5kZW50IHwgLS1tZXJnZS1iYXNlXSBbLS1uby1uYW1lIHwgLS1zaGExLW5hbWVdIFstLXRvcGljc10gWyg8Q29tbWl0PiAiCisifCA8Z2xvYj4pLi4uXSIKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjEwCiBtc2dpZCAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPGJhc2U+XV0gWy0tbGlzdF0gWzxyZWY+XSIKIG1zZ3N0ciAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPEJhc2lzPl1dIFstLWxpc3RdIFs8UmVmZXJlbno+XSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MQorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MAogbXNnaWQgInNob3cgcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKLW1zZ3N0ciAiemVpZ3QgZXh0ZXJuZSDDnGJlcm5haG1lendlaWdlIHVuZCBsb2thbGUgWndlaWdlIGFuIgorbXNnc3RyICJ6ZWlndCBSZW1vdGUtVHJhY2tpbmcgdW5kIGxva2FsZSBCcmFuY2hlcyBhbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MgogbXNnaWQgInNob3cgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgotbXNnc3RyICJ6ZWlndCBleHRlcm5lIMOcYmVybmFobWV6d2VpZ2UgYW4iCittc2dzdHIgInplaWd0IFJlbW90ZS1UcmFja2luZy1CcmFuY2hlcyBhbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NQorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NAogbXNnaWQgImNvbG9yICcqISstJyBjb3JyZXNwb25kaW5nIHRvIHRoZSBicmFuY2giCi1tc2dzdHIgImbDpHJidCAnKiErLScgZW50c3ByZWNoZW5kIGRlcyBad2VpZ2VzIGVpbiIKK21zZ3N0ciAiZsOkcmJ0ICcqISstJyBlbnRzcHJlY2hlbmQgZGVzIEJyYW5jaGVzIGVpbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NgogbXNnaWQgInNob3cgPG4+IG1vcmUgY29tbWl0cyBhZnRlciB0aGUgY29tbW9uIGFuY2VzdG9yIgotbXNnc3RyICJ6ZWlndCA8bj4gd2VpdGVyZSBWZXJzaW9uZW4gbmFjaCBkZW0gZ2VtZWluc2FtZW4gVm9yZmFocmVuIgorbXNnc3RyICJ6ZWlndCA8bj4gd2VpdGVyZSBDb21taXRzIG5hY2ggZGVtIGdlbWVpbnNhbWVuIFZvcmfDpG5nZXItQ29tbWl0IgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU5CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU4CiBtc2dpZCAic3lub255bSB0byBtb3JlPS0xIgogbXNnc3RyICJTeW5vbnltIGbDvHIgbW9yZT0tMSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OQogbXNnaWQgInN1cHByZXNzIG5hbWluZyBzdHJpbmdzIgogbXNnc3RyICJ1bnRlcmRyw7xja3QgTmFtZW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjIKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjEKIG1zZ2lkICJpbmNsdWRlIHRoZSBjdXJyZW50IGJyYW5jaCIKLW1zZ3N0ciAiYmV6aWVodCBkZW4gYWt0dWVsbGVuIFp3ZWlnIGVpbiIKK21zZ3N0ciAiYmV6aWVodCBkZW4gYWt0dWVsbGVuIEJyYW5jaCBlaW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjQKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjMKIG1zZ2lkICJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiCi1tc2dzdHIgImJlbmVubnQgVmVyc2lvbmVuIG5hY2ggaWhyZW4gT2JqZWt0bmFtZW4iCittc2dzdHIgImJlbmVubnQgQ29tbWl0cyBuYWNoIGlocmVuIE9iamVrdG5hbWVuIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY2CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY1CiBtc2dpZCAic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIKLW1zZ3N0ciAiemVpZ3QgbcO2Z2xpY2hlIEJhc2VuIGbDvHIgWnVzYW1tZW5mw7xocnVuZyIKK21zZ3N0ciAiemVpZ3QgbcO2Z2xpY2hlIE1lcmdlLUJhc2VuIGFuIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3CiBtc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKIG1zZ3N0ciAiemVpZ3QgUmVmZXJlbnplbiBkaWUgdW5lcnJlaWNoYmFyIHZvbiBhbGxlbiBhbmRlcmVuIFJlZmVyZW56ZW4gc2luZCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OQogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKLW1zZ3N0ciAiemVpZ3QgVmVyc2lvbmVuIGluIHRvcG9sb2dpc2NoZXIgT3JkbnVuZyIKK21zZ3N0ciAiemVpZ3QgQ29tbWl0cyBpbiB0b3BvbG9naXNjaGVyIE9yZG51bmciCiAKICM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzIKIG1zZ2lkICJzaG93IG9ubHkgY29tbWl0cyBub3Qgb24gdGhlIGZpcnN0IGJyYW5jaCIKLW1zZ3N0ciAiemVpZ3QgbnVyIFZlcnNpb25lbiwgZGllIHNpY2ggbmljaHQgaW0gZXJzdGVuIFp3ZWlnIGJlZmluZGVuIgorbXNnc3RyICJ6ZWlndCBudXIgQ29tbWl0cywgZGllIHNpY2ggbmljaHQgaW0gZXJzdGVuIEJyYW5jaCBiZWZpbmRlbiIKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NAogbXNnaWQgInNob3cgbWVyZ2VzIHJlYWNoYWJsZSBmcm9tIG9ubHkgb25lIHRpcCIKLW1zZ3N0ciAiIgotInplaWd0IFp1c2FtbWVuZsO8aHJ1bmdlbiwgZGllIG51ciB2b24gZWluZXIgWndlaWdzcGl0emUgYXVzIGVycmVpY2hiYXIgc2luZCIKK21zZ3N0ciAiemVpZ3QgTWVyZ2VzLCBkaWUgbnVyIHZvbiBlaW5lbSBCcmFuY2ggYXVzIGVycmVpY2hiYXIgc2luZCIKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NgotbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKLW1zZ3N0ciAiemVpZ3QgVmVyc2lvbmVuLCB3byBrZWluIEVsdGVybnRlaWwgdm9yIHNlaW5lbSBLaW5kIGtvbW10IgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKK21zZ3N0ciAidG9wb2xvZ2lzY2hlIFNvcnRpZXJ1bmcsIEJlaWJlaGFsdHVuZyBEYXR1bXNvcmRudW5nIHdvIG3DtmdsaWNoIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxCYXNpcz5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjgwCiBtc2dpZCAic2hvdyA8bj4gbW9zdCByZWNlbnQgcmVmLWxvZyBlbnRyaWVzIHN0YXJ0aW5nIGF0IGJhc2UiCi1tc2dzdHIgIiIKLSJ6ZWlndCBkaWUgPG4+IGrDvG5nc3RlbiBFaW50csOkZ2UgaW0gUmVmZXJlbnpwcm90b2tvbGwgYmVnaW5uZW5kIGFuIGRlciBCYXNpcyIKK21zZ3N0ciAiemVpZ3QgZGllIDxuPiBqw7xuZ3N0ZW4gRWludHLDpGdlIGltIFJlZmxvZyBiZWdpbm5lbmQgYW4gZGVyIEJhc2lzIgogCiAjOiBidWlsdGluL3Nob3ctcmVmLmM6MTAKIG1zZ2lkICIiCkBAIC04NjI2LDQwICs5MDUyLDQwIEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9TXVzdGVyXSA8IHJlZi1saXN0IgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY4CiBtc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKLW1zZ3N0ciAiemVpZ3QgbnVyIE1hcmtpZXJ1bmdlbiAoa2FubiBtaXQgXCJoZWFkc1wiIGtvbWJpbmllcnQgd2VyZGVuKSIKK21zZ3N0ciAiemVpZ3QgbnVyIFRhZ3MgKGthbm4gbWl0IFwiaGVhZHNcIiBrb21iaW5pZXJ0IHdlcmRlbikiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjkKIG1zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgotbXNnc3RyICJ6ZWlndCBudXIgWndlaWdzcGl0emVuIChrYW5uIG1pdCBcInRhZ3NcIiBrb21iaW5pZXJ0IHdlcmRlbikiCittc2dzdHIgInplaWd0IG51ciBCcmFuY2hlcyAoa2FubiBtaXQgXCJ0YWdzXCIga29tYmluaWVydCB3ZXJkZW4pIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyZW5nZXJlIFJlZmVyZW56cHLDvGZ1bmcsIGVyZm9yZGVydCBleGFrdGVuIFJlZmVyZW56cGZhZCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCi1tc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCi1tc2dzdHIgInplaWd0IFJlZmVyZW56IGRlciBad2VpZ3NwaXR6ZSAoSEVBRCkiCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKK21zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCittc2dzdHIgInplaWd0IGRpZSBIRUFELVJlZmVyZW56LCBzZWxic3Qgd2VubiBkaWVzZSBhdXNnZWZpbHRlcnQgd2VyZGVuIHfDvHJkZSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgotbXNnc3RyICJkZXJlZmVyZW56aWVydCBNYXJraWVydW5nZW4gaW4gT2JqZWt0LUlkZW50aWZpa2F0aW9uZW4iCittc2dzdHIgImRlcmVmZXJlbnppZXJ0IFRhZ3MgaW4gT2JqZWt0LUlkZW50aWZpa2F0aW9uZW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKIG1zZ2lkICJvbmx5IHNob3cgU0hBMSBoYXNoIHVzaW5nIDxuPiBkaWdpdHMiCiBtc2dzdHIgInplaWd0IG51ciBTSEExIEhhc2ggbWl0IDxuPiBaaWZmZXJuIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg0CiBtc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCiBtc2dzdHIgIiIKICJrZWluZSBBdXNnYWJlIGRlciBFcmdlYm5pc3NlIGluIGRpZSBTdGFuZGFyZC1BdXNnYWJlIChuw7x0emxpY2ggbWl0IC0tdmVyaWZ5KSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKICJ6ZWlndCBSZWZlcmVuemVuIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSwgZGllIHNpY2ggbmljaHQgaW0gbG9rYWxlbiAiCi0iUHJvamVrdGFyY2hpdiBiZWZpbmRlbiwgYW4iCisiUmVwb3NpdG9yeSBiZWZpbmRlbiwgYW4iCiAKICM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NwogbXNnaWQgImdpdCBzeW1ib2xpYy1yZWYgW29wdGlvbnNdIG5hbWUgW3JlZl0iCkBAIC04Njk0LDI0ICs5MTIwLDI0IEBACiBtc2dpZCAiIgogImdpdCB0YWcgWy1hfC1zfC11IDxrZXktaWQ+XSBbLWZdIFstbSA8bXNnPnwtRiA8ZmlsZT5dIDx0YWduYW1lPiBbPGhlYWQ+XSIKIG1zZ3N0ciAiIgotImdpdCB0YWcgWy1hfC1zfC11IDxTY2hsw7xzc2VsLWlkPl0gWy1mXSBbLW0gPE5hY2hyaWNodD58LUYgPERhdGVpPl0gIgotIjxNYXJraWVydW5nc25hbWU+IFs8WndlaWc+XSIKKyJnaXQgdGFnIFstYXwtc3wtdSA8U2NobMO8c3NlbC1pZD5dIFstZl0gWy1tIDxOYWNocmljaHQ+fC1GIDxEYXRlaT5dIDxUYWduYW1lPiAiCisiWzxDb21taXQ+XSIKIAogIzogYnVpbHRpbi90YWcuYzoyMwogbXNnaWQgImdpdCB0YWcgLWQgPHRhZ25hbWU+Li4uIgotbXNnc3RyICJnaXQgdGFnIC1kIDxNYXJraWVydW5nc25hbWU+Li4uIgorbXNnc3RyICJnaXQgdGFnIC1kIDxUYWduYW1lPi4uLiIKIAogIzogYnVpbHRpbi90YWcuYzoyNAogbXNnaWQgIiIKICJnaXQgdGFnIC1sIFstbls8bnVtPl1dIFstLWNvbnRhaW5zIDxjb21taXQ+XSBbLS1wb2ludHMtYXQgPG9iamVjdD5dIFxuIgogIlx0XHRbPHBhdHRlcm4+Li4uXSIKIG1zZ3N0ciAiIgotImdpdCB0YWcgLWwgWy1uWzxOdW1tZXI+XV0gWy0tY29udGFpbnMgPFZlcnNpb24+XSBbLS1wb2ludHMtYXQgPE9iamVrdD5dIFxuIgorImdpdCB0YWcgLWwgWy1uWzxOdW1tZXI+XV0gWy0tY29udGFpbnMgPENvbW1pdD5dIFstLXBvaW50cy1hdCA8T2JqZWt0Pl0gXG4iCiAiXHRcdFs8TXVzdGVyPi4uLl0iCiAKICM6IGJ1aWx0aW4vdGFnLmM6MjYKIG1zZ2lkICJnaXQgdGFnIC12IDx0YWduYW1lPi4uLiIKLW1zZ3N0ciAiZ2l0IHRhZyAtdiA8TWFya2llcnVuZ3NuYW1lPi4uLiIKK21zZ3N0ciAiZ2l0IHRhZyAtdiA8VGFnbmFtZT4uLi4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NjAKICMsIGMtZm9ybWF0CkBAIC04NzIxLDIyICs5MTQ3LDIyIEBACiAjOiBidWlsdGluL3RhZy5jOjIwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgbmFtZSB0b28gbG9uZzogJS4qcy4uLiIKLW1zZ3N0ciAiTWFya2llcnVuZ3NuYW1lIHp1IGxhbmc6ICUuKnMuLi4iCittc2dzdHIgIlRhZ25hbWUgenUgbGFuZzogJS4qcy4uLiIKIAogIzogYnVpbHRpbi90YWcuYzoyMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgbm90IGZvdW5kLiIKLW1zZ3N0ciAiTWFya2llcnVuZyAnJXMnIG5pY2h0IGdlZnVuZGVuLiIKK21zZ3N0ciAiVGFnICclcycgbmljaHQgZ2VmdW5kZW4uIgogCiAjOiBidWlsdGluL3RhZy5jOjIyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHRhZyAnJXMnICh3YXMgJXMpXG4iCi1tc2dzdHIgIkdlbMO2c2NodGUgTWFya2llcnVuZyAnJXMnICh3YXIgJXMpXG4iCittc2dzdHIgIlRhZyAnJXMnIGdlbMO2c2NodCAod2FyICVzKVxuIgogCiAjOiBidWlsdGluL3RhZy5jOjIzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgdmVyaWZ5IHRoZSB0YWcgJyVzJyIKLW1zZ3N0ciAiS29ubnRlIE1hcmtpZXJ1bmcgJyVzJyBuaWNodCB2ZXJpZml6aWVyZW4iCittc2dzdHIgIktvbm50ZSBUYWcgJyVzJyBuaWNodCB2ZXJpZml6aWVyZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6MjQ5CiAjLCBjLWZvcm1hdApAQCAtODc0Niw3ICs5MTcyLDcgQEAKICJMaW5lcyBzdGFydGluZyB3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLlxuIgogbXNnc3RyICIiCiAiXG4iCi0iR2ViZW4gU2llIGVpbmUgTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmcgZWluLlxuIgorIkdlYmVuIFNpZSBlaW5lIFRhZy1CZXNjaHJlaWJ1bmcgZWluLlxuIgogIlplaWxlbiwgZGllIG1pdCAnJWMnIGJlZ2lubmVuLCB3ZXJkZW4gaWdub3JpZXJ0LlxuIgogCiAjOiBidWlsdGluL3RhZy5jOjI1MwpAQCAtODc1OCwxNyArOTE4NCwxNyBAQAogIndhbnQgdG8uXG4iCiBtc2dzdHIgIiIKICJcbiIKLSJHZWJlbiBTaWUgZWluZSBNYXJraWVydW5nc2Jlc2NocmVpYnVuZyBlaW4uXG4iCisiR2ViZW4gU2llIGVpbmUgVGFnLUJlc2NocmVpYnVuZyBlaW4uXG4iCiAiWmVpbGVuLCBkaWUgbWl0ICclYycgYmVnaW5uZW4sIHdlcmRlbiBiZWhhbHRlbjsgU2llIGTDvHJmZW4gZGllc2VcbiIKICJzZWxic3QgZW50ZmVybmVuIHdlbm4gU2llIG3DtmNodGVuLlxuIgogCiAjOiBidWlsdGluL3RhZy5jOjI5MgogbXNnaWQgInVuYWJsZSB0byBzaWduIHRoZSB0YWciCi1tc2dzdHIgImtvbm50ZSBNYXJraWVydW5nIG5pY2h0IHNpZ25pZXJlbiIKK21zZ3N0ciAia29ubnRlIFRhZyBuaWNodCBzaWduaWVyZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6Mjk0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRhZyBmaWxlIgotbXNnc3RyICJrb25udGUgTWFya2llcnVuZ3NkYXRlaSBuaWNodCBzY2hyZWliZW4iCittc2dzdHIgImtvbm50ZSBUYWctRGF0ZWkgbmljaHQgc2NocmVpYmVuIgogCiAjOiBidWlsdGluL3RhZy5jOjMxOQogbXNnaWQgImJhZCBvYmplY3QgdHlwZS4iCkBAIC04Nzc2LDE2ICs5MjAyLDE2IEBACiAKICM6IGJ1aWx0aW4vdGFnLmM6MzMyCiBtc2dpZCAidGFnIGhlYWRlciB0b28gYmlnLiIKLW1zZ3N0ciAiTWFya2llcnVuZ3Nrb3BmIHp1IGdyb8OfLiIKK21zZ3N0ciAiVGFnLUtvcGYgenUgZ3Jvw58uIgogCiAjOiBidWlsdGluL3RhZy5jOjM2OAogbXNnaWQgIm5vIHRhZyBtZXNzYWdlPyIKLW1zZ3N0ciAia2VpbmUgTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmc/IgorbXNnc3RyICJrZWluZSBUYWctQmVzY2hyZWlidW5nPyIKIAogIzogYnVpbHRpbi90YWcuYzozNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIHRhZyBtZXNzYWdlIGhhcyBiZWVuIGxlZnQgaW4gJXNcbiIKLW1zZ3N0ciAiRGllIE1hcmtpZXJ1bmdzYmVzY2hyZWlidW5nIHd1cmRlIGdlbGFzc2VuIGluICVzXG4iCittc2dzdHIgIkRpZSBUYWctQmVzY2hyZWlidW5nIHd1cmRlIGdlbGFzc2VuIGluICVzXG4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDIzCiBtc2dpZCAic3dpdGNoICdwb2ludHMtYXQnIHJlcXVpcmVzIGFuIG9iamVjdCIKQEAgLTg3OTgsNTkgKzkyMjQsNTkgQEAKIAogIzogYnVpbHRpbi90YWcuYzo0NDUKIG1zZ2lkICJsaXN0IHRhZyBuYW1lcyIKLW1zZ3N0ciAibGlzdGV0IE1hcmtpZXJ1bmdzbmFtZW4gYXVmIgorbXNnc3RyICJsaXN0ZXQgVGFnbmFtZW4gYXVmIgogCiAjOiBidWlsdGluL3RhZy5jOjQ0NwogbXNnaWQgInByaW50IDxuPiBsaW5lcyBvZiBlYWNoIHRhZyBtZXNzYWdlIgotbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIGplZGVyIE1hcmtpZXJ1bmdzYmVzY2hyZWlidW5nIgorbXNnc3RyICJ6ZWlndCA8bj4gWmVpbGVuIGplZGVyIFRhZy1CZXNjaHJlaWJ1bmciCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDQ5CiBtc2dpZCAiZGVsZXRlIHRhZ3MiCi1tc2dzdHIgImzDtnNjaHQgTWFya2llcnVuZ2VuIgorbXNnc3RyICJsw7ZzY2h0IFRhZ3MiCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDUwCiBtc2dpZCAidmVyaWZ5IHRhZ3MiCi1tc2dzdHIgIsO8YmVycHLDvGZ0IE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAiw7xiZXJwcsO8ZnQgVGFncyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTIKIG1zZ2lkICJUYWcgY3JlYXRpb24gb3B0aW9ucyIKLW1zZ3N0ciAiT3B0aW9uZW4gZsO8ciBFcnN0ZWxsdW5nIHZvbiBNYXJraWVydW5nZW4iCittc2dzdHIgIk9wdGlvbmVuIGbDvHIgRXJzdGVsbHVuZyB2b24gVGFncyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnLCBuZWVkcyBhIG1lc3NhZ2UiCi1tc2dzdHIgImFubm90aWVydGUgTWFya2llcnVuZywgYmVuw7Z0aWd0IGVpbmUgQmVzY2hyZWlidW5nIgorbXNnc3RyICJhbm5vdGllcnRlcyBUYWcsIGJlbsO2dGlndCBlaW5lIEJlc2NocmVpYnVuZyIKIAogIzogYnVpbHRpbi90YWcuYzo0NTYKIG1zZ2lkICJ0YWcgbWVzc2FnZSIKLW1zZ3N0ciAiTWFya2llcnVuZ3NiZXNjaHJlaWJ1bmciCittc2dzdHIgIlRhZy1CZXNjaHJlaWJ1bmciCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDU4CiBtc2dpZCAiYW5ub3RhdGVkIGFuZCBHUEctc2lnbmVkIHRhZyIKLW1zZ3N0ciAiYW5ub3RpZXJ0ZSB1bmQgR1BHLXNpZ25pZXJ0ZSBNYXJraWVydW5nIgorbXNnc3RyICJhbm5vdGllcnRlcyB1bmQgR1BHLXNpZ25pZXJ0ZXMgVGFnIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2MgogbXNnaWQgInVzZSBhbm90aGVyIGtleSB0byBzaWduIHRoZSB0YWciCi1tc2dzdHIgInZlcndlbmRldCBlaW5lbiBhbmRlcmVuIFNjaGzDvHNzZWwgdW0gZGllIE1hcmtpZXJ1bmcgenUgc2lnbmllcmVuIgorbXNnc3RyICJ2ZXJ3ZW5kZXQgZWluZW4gYW5kZXJlbiBTY2hsw7xzc2VsIHVtIGRhcyBUYWcgenUgc2lnbmllcmVuIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2MwogbXNnaWQgInJlcGxhY2UgdGhlIHRhZyBpZiBleGlzdHMiCi1tc2dzdHIgImVyc2V0enQgZGllIE1hcmtpZXJ1bmcsIHdlbm4gc2llIGV4aXN0aWVydCIKK21zZ3N0ciAiZXJzZXR6dCBkYXMgVGFnLCB3ZW5uIGVzIGV4aXN0aWVydCIKIAogIzogYnVpbHRpbi90YWcuYzo0NjQKIG1zZ2lkICJzaG93IHRhZyBsaXN0IGluIGNvbHVtbnMiCi1tc2dzdHIgInplaWd0IExpc3RlIGRlciBNYXJraWVydW5nZW4gaW4gU3BhbHRlbiIKK21zZ3N0ciAiemVpZ3QgTGlzdGUgZGVyIFRhZ3MgaW4gU3BhbHRlbiIKIAogIzogYnVpbHRpbi90YWcuYzo0NjYKIG1zZ2lkICJUYWcgbGlzdGluZyBvcHRpb25zIgotbXNnc3RyICJPcHRpb25lbiBmw7xyIEF1Zmxpc3R1bmcgZGVyIE1hcmtpZXJ1bmdlbiIKK21zZ3N0ciAiT3B0aW9uZW4gZsO8ciBBdWZsaXN0dW5nIGRlciBUYWdzIgogCiAjOiBidWlsdGluL3RhZy5jOjQ2OQogbXNnaWQgInByaW50IG9ubHkgdGFncyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKLW1zZ3N0ciAiZ2lidCBudXIgTWFya2llcnVuZ2VuIGF1cywgZGllIGRpZXNlIFZlcnNpb24gYmVpbmhhbHRlbiIKK21zZ3N0ciAiZ2lidCBudXIgVGFncyBhdXMsIGRpZSBkaWVzZW4gQ29tbWl0IGJlaW5oYWx0ZW4iCiAKICM6IGJ1aWx0aW4vdGFnLmM6NDc1CiBtc2dpZCAicHJpbnQgb25seSB0YWdzIG9mIHRoZSBvYmplY3QiCi1tc2dzdHIgImdpYnQgbnVyIE1hcmtpZXJ1bmdlbiB2b24gZGVtIE9iamVrdCBhdXMiCittc2dzdHIgImdpYnQgbnVyIFRhZ3Mgdm9uIGRlbSBPYmpla3QgYXVzIgogCiAjOiBidWlsdGluL3RhZy5jOjUwNAogbXNnaWQgIi0tY29sdW1uIGFuZCAtbiBhcmUgaW5jb21wYXRpYmxlIgpAQCAtODg3OSwxMiArOTMwNSwxMiBAQAogIzogYnVpbHRpbi90YWcuYzo1NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0YWcgbmFtZS4iCi1tc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIE1hcmtpZXJ1bmdzbmFtZS4iCittc2dzdHIgIiclcycgaXN0IGtlaW4gZ8O8bHRpZ2VyIFRhZ25hbWUuIgogCiAjOiBidWlsdGluL3RhZy5jOjU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBhbHJlYWR5IGV4aXN0cyIKLW1zZ3N0ciAiTWFya2llcnVuZyAnJXMnIGV4aXN0aWVydCBiZXJlaXRzIgorbXNnc3RyICJUYWcgJyVzJyBleGlzdGllcnQgYmVyZWl0cyIKIAogIzogYnVpbHRpbi90YWcuYzo1ODIKICMsIGMtZm9ybWF0CkBAIC04ODk5LDcgKzkzMjUsNyBAQAogIzogYnVpbHRpbi90YWcuYzo1ODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgotbXNnc3RyICJBa3R1YWxpc2llcnRlIE1hcmtpZXJ1bmcgJyVzJyAod2FyICVzKVxuIgorbXNnc3RyICJUYWcgJyVzJyBha3R1YWxpc2llcnQgKHdhciAlcylcbiIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo0MDEKIG1zZ2lkICJnaXQgdXBkYXRlLWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgpAQCAtODkwOCwxMiArOTMzNCwxMiBAQAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MTgKIG1zZ2lkICJjb250aW51ZSByZWZyZXNoIGV2ZW4gd2hlbiBpbmRleCBuZWVkcyB1cGRhdGUiCiBtc2dzdHIgIiIKLSJBa3R1YWxpc2llcnVuZyBmb3J0c2V0emVuLCBhdWNoIHdlbm4gZGllIEJlcmVpdHN0ZWxsdW5nIGFrdHVhbGlzaWVydCB3ZXJkZW4gIgorIkFrdHVhbGlzaWVydW5nIGZvcnRzZXR6ZW4sIGF1Y2ggd2VubiBkaWUgU3RhZ2luZy1BcmVhIGFrdHVhbGlzaWVydCB3ZXJkZW4gIgogIm11c3MiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzIxCiBtc2dpZCAicmVmcmVzaDogaWdub3JlIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIkFrdHVhbGlzaWVydW5nOiBpZ25vcmllcnQgVW50ZXJwcm9qZWt0ZSIKK21zZ3N0ciAiQWt0dWFsaXNpZXJ1bmc6IGlnbm9yaWVydCBTdWJtb2R1bGUiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI0CiBtc2dpZCAiZG8gbm90IGlnbm9yZSBuZXcgZmlsZXMiCkBAIC04OTI1LDEyICs5MzUxLDEyIEBACiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI4CiBtc2dpZCAibm90aWNlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKLW1zZ3N0ciAiYmVhY2h0ZXQgZmVobGVuZGUgRGF0ZWllbiBpbSBBcmJlaXRzYmF1bSIKK21zZ3N0ciAiYmVhY2h0ZXQgZmVobGVuZGUgRGF0ZWllbiBpbSBBcmJlaXRzdmVyemVpY2huaXMiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCiBtc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgIiIKLSJha3R1YWxpc2llcnQsIGF1Y2ggd2VubiBkaWUgQmVyZWl0c3RlbGx1bmcgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRWludHLDpGdlICIKKyJha3R1YWxpc2llcnQsIGF1Y2ggd2VubiBkaWUgU3RhZ2luZy1BcmVhIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIEVpbnRyw6RnZSAiCiAiYmVpbmhhbHRldCIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKQEAgLTg5NDcsNyArOTM3Myw3IEBACiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzQyCiBtc2dpZCAiYWRkIHRoZSBzcGVjaWZpZWQgZW50cnkgdG8gdGhlIGluZGV4IgotbXNnc3RyICJzdGVsbHQgZGVuIGFuZ2VnZWJlbmVuIEVpbnRyYWcgenVyIEVpbnRyYWd1bmcgYmVyZWl0IgorbXNnc3RyICJtZXJrdCBkZW4gYW5nZWdlYmVuZW4gRWludHJhZyB6dW0gQ29tbWl0IHZvciIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NDYKIG1zZ2lkICIoKy8tKXgiCkBAIC04OTc2LDEyICs5NDAyLDEzIEBACiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MwogbXNnaWQgImFkZCB0byBpbmRleCBvbmx5OyBkbyBub3QgYWRkIGNvbnRlbnQgdG8gb2JqZWN0IGRhdGFiYXNlIgogbXNnc3RyICIiCi0iZsO8Z3QgbnVyIGRlciBCZXJlaXRzdGVsbHVuZyBoaW56dTsgSW5oYWx0IHdpcmQgbmljaHQgZGVyIE9iamVrdC1EYXRlbmJhbmsgIgotImhpbnp1Z2Vmw7xndCIKKyJtZXJrdCBkaWUgw4RuZGVydW5nZW4gbnVyIHp1bSBDb21taXQgdm9yOyBJbmhhbHQgd2lyZCBuaWNodCBkZXIgT2JqZWt0LSIKKyJEYXRlbmJhbmsgaGluenVnZWbDvGd0IgogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQogbXNnaWQgInJlbW92ZSBuYW1lZCBwYXRocyBldmVuIGlmIHByZXNlbnQgaW4gd29ya3RyZWUiCi1tc2dzdHIgImzDtnNjaHQgYmVuYW5udGUgUGZhZGUsIGF1Y2ggd2VubiBzaWUgc2ljaCBpbSBBcmJlaXRzYmF1bSBiZWZpbmRlbiIKK21zZ3N0ciAiIgorImzDtnNjaHQgYmVuYW5udGUgUGZhZGUsIGF1Y2ggd2VubiBzaWUgc2ljaCBpbSBBcmJlaXRzdmVyemVpY2huaXMgYmVmaW5kZW4iCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzY3CiBtc2dpZCAid2l0aCAtLXN0ZGluOiBpbnB1dCBsaW5lcyBhcmUgdGVybWluYXRlZCBieSBudWxsIGJ5dGVzIgpAQCAtODk5Myw3ICs5NDIwLDcgQEAKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzMKIG1zZ2lkICJhZGQgZW50cmllcyBmcm9tIHN0YW5kYXJkIGlucHV0IHRvIHRoZSBpbmRleCIKLW1zZ3N0ciAiZsO8Z3QgRWludHLDpGdlIHZvbiBkZXIgU3RhbmRhcmQtRWluZ2FiZSBkZXIgQmVyZWl0c3RlbGx1bmcgaGluenUiCittc2dzdHIgIm1lcmt0IEVpbnRyw6RnZSB2b24gZGVyIFN0YW5kYXJkLUVpbmdhYmUgenVtIENvbW1pdCB2b3IiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzc3CiBtc2dpZCAicmVwb3B1bGF0ZSBzdGFnZXMgIzIgYW5kICMzIGZvciB0aGUgbGlzdGVkIHBhdGhzIgpAQCAtOTAwMiwxMiArOTQyOSwxMSBAQAogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQogbXNnaWQgIm9ubHkgdXBkYXRlIGVudHJpZXMgdGhhdCBkaWZmZXIgZnJvbSBIRUFEIgotbXNnc3RyICIiCi0iYWt0dWFsaXNpZXJ0IG51ciBFaW50csOkZ2UsIGRpZSB1bnRlcnNjaGllZGxpY2ggenVyIFp3ZWlnc3BpdHplIChIRUFEKSBzaW5kIgorbXNnc3RyICJha3R1YWxpc2llcnQgbnVyIEVpbnRyw6RnZSwgZGllIHVudGVyc2NoaWVkbGljaCB6dSBIRUFEIHNpbmQiCiAKICM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg1CiBtc2dpZCAiaWdub3JlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKLW1zZ3N0ciAiaWdub3JpZXJ0IGZlaGxlbmRlIERhdGVpZW4gaW0gQXJiZWl0c2JhdW0iCittc2dzdHIgImlnbm9yaWVydCBmZWhsZW5kZSBEYXRlaWVuIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyIKIAogIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODgKIG1zZ2lkICJyZXBvcnQgYWN0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQiCkBAIC05MDE5LDcgKzk0NDUsNyBAQAogCiAjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc5NAogbXNnaWQgIndyaXRlIGluZGV4IGluIHRoaXMgZm9ybWF0IgotbXNnc3RyICJzY2hyZWlidCBCZXJlaXRzdGVsbHVuZ3NkYXRlaSBpbiBkaWVzZW0gRm9ybWF0IgorbXNnc3RyICJzY2hyZWlidCBTdGFnaW5nLUFyZWEtRGF0ZWkgaW4gZGllc2VtIEZvcm1hdCIKIAogIzogYnVpbHRpbi91cGRhdGUtcmVmLmM6NwogbXNnaWQgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAtZCA8cmVmbmFtZT4gWzxvbGR2YWw+XSIKQEAgLTkwNTksMTEgKzk0ODUsMTEgQEAKIAogIzogYnVpbHRpbi92ZXJpZnktdGFnLmM6MTcKIG1zZ2lkICJnaXQgdmVyaWZ5LXRhZyBbLXZ8LS12ZXJib3NlXSA8dGFnPi4uLiIKLW1zZ3N0ciAiZ2l0IHZlcmlmeS10YWcgWy12fC0tdmVyYm9zZV0gPE1hcmtpZXJ1bmc+Li4uIgorbXNnc3RyICJnaXQgdmVyaWZ5LXRhZyBbLXZ8LS12ZXJib3NlXSA8VGFnPi4uLiIKIAogIzogYnVpbHRpbi92ZXJpZnktdGFnLmM6NzMKIG1zZ2lkICJwcmludCB0YWcgY29udGVudHMiCi1tc2dzdHIgImdpYnQgTWFya2llcnVuZ3NpbmhhbHRlIGF1cyIKK21zZ3N0ciAiZ2lidCBUYWctSW5oYWx0ZSBhdXMiCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjEzCiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgWy0tbWlzc2luZy1va10gWy0tcHJlZml4PTxwcmVmaXg+L10iCkBAIC05MDc1LDM3ICs5NTAxLDQ2IEBACiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI3CiBtc2dpZCAid3JpdGUgdHJlZSBvYmplY3QgZm9yIGEgc3ViZGlyZWN0b3J5IDxwcmVmaXg+IgotbXNnc3RyICJzY2hyZWlidCBkYXMgQmF1bW9iamVrdCBmw7xyIGVpbiBVbnRlcnZlcnplaWNobmlzIDxQcmVmaXg+IgorbXNnc3RyICJzY2hyZWlidCBkYXMgXCJUcmVlXCItT2JqZWt0IGbDvHIgZWluIFVudGVydmVyemVpY2huaXMgPFByZWZpeD4iCiAKICM6IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjMwCiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAibnVyIG7DvHR6bGljaCBmw7xyIEZlaGxlcnN1Y2hlIgogCi0jOiBnaXQuYzoxNgotbXNnaWQgIlNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhIHNwZWNpZmljIGNvbW1hbmQuIgorIzogZ2l0LmM6MTcKK21zZ2lkICIiCisiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKKyJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCisidG8gcmVhZCBhYm91dCBhIHNwZWNpZmljIHN1YmNvbW1hbmQgb3IgY29uY2VwdC4iCiBtc2dzdHIgIiIKLSJTaWVoZSAnZ2l0IGhlbHAgPEtvbW1hbmRvPicgZsO8ciB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4genUgZWluZW0gc3BlemlmaXNjaGVuICIKLSJLb21tYW5kbyIKKyInZ2l0IGhlbHAgLWEnIHVuZCAnZ2l0IGhlbHAgLWcnIGxpc3RldCB2ZXJmw7xnYmFyZSBVbnRlcmtvbW1hbmRvcyB1bmRcbiIKKyJlaW5pZ2UgQW5sZWl0dW5nZW4genUgR2l0LUtvbnplcHRlbiBhdWYuIEJlbnV0emVuIFNpZSAnZ2l0IGhlbHAgPEtvbW1hbmRvPidcbiIKKyJvZGVyICdnaXQgaGVscCA8S29uemVwdD4nIHVtIG1laHIgw7xiZXIgZWluIHNwZXppZmlzY2hlcyBLb21tYW5kbyBvZGVyXG4iCisiS29uemVwdCB6dSBlcmZhaHJlbi4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKK21zZ2lkICJleHBpcnkgZGF0ZSIKK21zZ3N0ciAiVmVyZmFsbHNkYXR1bSIKKworIzogcGFyc2Utb3B0aW9ucy5oOjE1OQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAiS2VpbiBFZmZla3QgKFLDvGNrd8OkcnRza29tcGF0aWJpbGl0w6R0KSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzMgorIzogcGFyc2Utb3B0aW9ucy5oOjIzNgogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAiZXJ3ZWl0ZXJ0ZSBBdXNnYWJlbiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgIndlbmlnZXIgQXVzZ2FiZW4iCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyNDAKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDQKIG1zZ2lkICJ1c2UgPG4+IGRpZ2l0cyB0byBkaXNwbGF5IFNIQS0xcyIKIG1zZ3N0ciAiYmVudXR6ZSA8bj4gWmlmZmVybiB6dXIgQW56ZWlnZSB2b24gU0hBLTFzIgogCiAjOiBjb21tb24tY21kcy5oOjgKIG1zZ2lkICJBZGQgZmlsZSBjb250ZW50cyB0byB0aGUgaW5kZXgiCi1tc2dzdHIgInN0ZWxsdCBEYXRlaWluaGFsdGUgenVyIEVpbnRyYWd1bmcgYmVyZWl0IgorbXNnc3RyICJtZXJrdCBEYXRlaWluaGFsdGUgenVtIENvbW1pdCB2b3IiCiAKICM6IGNvbW1vbi1jbWRzLmg6OQogbXNnaWQgIkZpbmQgYnkgYmluYXJ5IHNlYXJjaCB0aGUgY2hhbmdlIHRoYXQgaW50cm9kdWNlZCBhIGJ1ZyIKQEAgLTkxMTQsMjcgKzk1NDksMjggQEAKIAogIzogY29tbW9uLWNtZHMuaDoxMAogbXNnaWQgIkxpc3QsIGNyZWF0ZSwgb3IgZGVsZXRlIGJyYW5jaGVzIgotbXNnc3RyICJaZWlndCBhbiwgZXJzdGVsbHQgb2RlciBlbnRmZXJudCBad2VpZ2UiCittc2dzdHIgIlplaWd0IGFuLCBlcnN0ZWxsdCBvZGVyIGVudGZlcm50IEJyYW5jaGVzIgogCiAjOiBjb21tb24tY21kcy5oOjExCiBtc2dpZCAiQ2hlY2tvdXQgYSBicmFuY2ggb3IgcGF0aHMgdG8gdGhlIHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAiQ2hlY2t0IFp3ZWlnZSBvZGVyIFBmYWRlIGltIEFyYmVpdHN6d2VpZyBhdXMiCittc2dzdHIgIkNoZWNrdCBCcmFuY2hlcyBvZGVyIFBmYWRlIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyBhdXMiCiAKICM6IGNvbW1vbi1jbWRzLmg6MTIKIG1zZ2lkICJDbG9uZSBhIHJlcG9zaXRvcnkgaW50byBhIG5ldyBkaXJlY3RvcnkiCi1tc2dzdHIgIktsb250IGVpbiBQcm9qZWt0YXJjaGl2IGluIGVpbmVtIG5ldWVuIFZlcnplaWNobmlzIgorbXNnc3RyICJLbG9udCBlaW4gUmVwb3NpdG9yeSBpbiBlaW5lbSBuZXVlbiBWZXJ6ZWljaG5pcyIKIAogIzogY29tbW9uLWNtZHMuaDoxMwogbXNnaWQgIlJlY29yZCBjaGFuZ2VzIHRvIHRoZSByZXBvc2l0b3J5IgotbXNnc3RyICJUcsOkZ3Qgw4RuZGVydW5nZW4gaW4gZGFzIFByb2pla3RhcmNoaXYgZWluIgorbXNnc3RyICJUcsOkZ3Qgw4RuZGVydW5nZW4gaW4gZGFzIFJlcG9zaXRvcnkgZWluIgogCiAjOiBjb21tb24tY21kcy5oOjE0CiBtc2dpZCAiU2hvdyBjaGFuZ2VzIGJldHdlZW4gY29tbWl0cywgY29tbWl0IGFuZCB3b3JraW5nIHRyZWUsIGV0YyIKLW1zZ3N0ciAiWmVpZ3Qgw4RuZGVydW5nZW4gendpc2NoZW4gVmVyc2lvbmVuLCBWZXJzaW9uIHVuZCBBcmJlaXRzendlaWcsIGV0Yy4gYW4iCittc2dzdHIgIiIKKyJaZWlndCDDhG5kZXJ1bmdlbiB6d2lzY2hlbiBDb21taXRzLCBDb21taXQgdW5kIEFyYmVpdHN2ZXJ6ZWljaG5pcywgZXRjLiBhbiIKIAogIzogY29tbW9uLWNtZHMuaDoxNQogbXNnaWQgIkRvd25sb2FkIG9iamVjdHMgYW5kIHJlZnMgZnJvbSBhbm90aGVyIHJlcG9zaXRvcnkiCi1tc2dzdHIgIkzDpGR0IE9iamVrdGUgdW5kIFJlZmVyZW56ZW4gdm9uIGVpbmVtIGFuZGVyZW4gUHJvamVrdGFyY2hpdiBoZXJ1bnRlciIKK21zZ3N0ciAiTMOkZHQgT2JqZWt0ZSB1bmQgUmVmZXJlbnplbiB2b24gZWluZW0gYW5kZXJlbiBSZXBvc2l0b3J5IGhlcnVudGVyIgogCiAjOiBjb21tb24tY21kcy5oOjE2CiBtc2dpZCAiUHJpbnQgbGluZXMgbWF0Y2hpbmcgYSBwYXR0ZXJuIgpAQCAtOTE0MywxMSArOTU3OSwxMSBAQAogIzogY29tbW9uLWNtZHMuaDoxNwogbXNnaWQgIkNyZWF0ZSBhbiBlbXB0eSBHaXQgcmVwb3NpdG9yeSBvciByZWluaXRpYWxpemUgYW4gZXhpc3Rpbmcgb25lIgogbXNnc3RyICIiCi0iRXJzdGVsbHQgZWluIGxlZXJlcyBHaXQtUHJvamVrdGFyY2hpdiBvZGVyIGluaXRpYWxpc2llcnQgZWluIGJlc3RlaGVuZGVzIG5ldSIKKyJFcnN0ZWxsdCBlaW4gbGVlcmVzIEdpdC1SZXBvc2l0b3J5IG9kZXIgaW5pdGlhbGlzaWVydCBlaW4gYmVzdGVoZW5kZXMgbmV1IgogCiAjOiBjb21tb24tY21kcy5oOjE4CiBtc2dpZCAiU2hvdyBjb21taXQgbG9ncyIKLW1zZ3N0ciAiWmVpZ3QgVmVyc2lvbnNoaXN0b3JpZSBhbiIKK21zZ3N0ciAiWmVpZ3QgQ29tbWl0LUhpc3RvcmllIGFuIgogCiAjOiBjb21tb24tY21kcy5oOjE5CiBtc2dpZCAiSm9pbiB0d28gb3IgbW9yZSBkZXZlbG9wbWVudCBoaXN0b3JpZXMgdG9nZXRoZXIiCkBAIC05MTU2LDMwICs5NTkyLDMwIEBACiAjOiBjb21tb24tY21kcy5oOjIwCiBtc2dpZCAiTW92ZSBvciByZW5hbWUgYSBmaWxlLCBhIGRpcmVjdG9yeSwgb3IgYSBzeW1saW5rIgogbXNnc3RyICIiCi0iVmVyc2NoaWVidCBvZGVyIGJlbmVubnQgZWluZSBEYXRlaSwgZWluIFZlcnplaWNobmlzLCBvZGVyIGVpbmUgc3ltYm9saXNjaGUgIgotIlZlcmtuw7xwZnVuZyB1bSIKKyJWZXJzY2hpZWJ0IG9kZXIgYmVuZW5udCBlaW5lIERhdGVpLCBlaW4gVmVyemVpY2huaXMsIG9kZXIgZWluZW4gc3ltYm9saXNjaGVuICIKKyJWZXJ3ZWlzIHVtIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCittc2dpZCAiRmV0Y2ggZnJvbSBhbmQgaW50ZWdyYXRlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgogbXNnc3RyICIiCi0iRm9yZGVydCBPYmpla3RlIHZvbiBlaW5lbSBleHRlcm5lbiBQcm9qZWt0YXJjaGl2IGFuIHVuZCBmw7xocnQgc2llIG1pdCBlaW5lbSAiCi0iYW5kZXJlbiBQcm9qZWt0YXJjaGl2IG9kZXIgZWluZW0gbG9rYWxlbiBad2VpZyB6dXNhbW1lbiIKKyJGb3JkZXJ0IE9iamVrdGUgdm9uIGVpbmVtIGV4dGVybmVuIFJlcG9zaXRvcnkgYW4gdW5kIGbDvGhydCBzaWUgbWl0IGVpbmVtICIKKyJhbmRlcmVuIFJlcG9zaXRvcnkgb2RlciBlaW5lbSBsb2thbGVuIEJyYW5jaCB6dXNhbW1lbiIKIAogIzogY29tbW9uLWNtZHMuaDoyMgogbXNnaWQgIlVwZGF0ZSByZW1vdGUgcmVmcyBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgb2JqZWN0cyIKLW1zZ3N0ciAiQWt0dWFsaXNpZXJ0IGV4dGVybmUgUmVmZXJlbnplbiBtaXRzYW10IGRlbiB2ZXJidW5kZW5lbiBPYmpla3RlbiIKK21zZ3N0ciAiQWt0dWFsaXNpZXJ0IFJlbW90ZS1SZWZlcmVuemVuIG1pdHNhbXQgZGVuIHZlcmJ1bmRlbmVuIE9iamVrdGVuIgogCiAjOiBjb21tb24tY21kcy5oOjIzCiBtc2dpZCAiRm9yd2FyZC1wb3J0IGxvY2FsIGNvbW1pdHMgdG8gdGhlIHVwZGF0ZWQgdXBzdHJlYW0gaGVhZCIKLW1zZ3N0ciAiQmF1dCBsb2thbGUgVmVyc2lvbmVuIGF1ZiBlaW5lbSBha3R1ZWxsZXJlbSBleHRlcm5lbiBad2VpZyBuZXUgYXVmIgorbXNnc3RyICJCYXV0IGxva2FsZSBDb21taXRzIGF1ZiBlaW5lbSBha3R1ZWxsZXJlbSBVcHN0cmVhbS1CcmFuY2ggbmV1IGF1ZiIKIAogIzogY29tbW9uLWNtZHMuaDoyNAogbXNnaWQgIlJlc2V0IGN1cnJlbnQgSEVBRCB0byB0aGUgc3BlY2lmaWVkIHN0YXRlIgotbXNnc3RyICJTZXR6dCBkaWUgYWt0dWVsbGUgWndlaWdzcGl0emUgKEhFQUQpIHp1IGVpbmVtIHNwZXppZml6aWVydGVuIFp1c3RhbmQiCittc2dzdHIgIlNldHp0IGFrdHVlbGxlbiBIRUFEIHp1IGVpbmVtIHNwZXppZml6aWVydGVuIFp1c3RhbmQiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjUKIG1zZ2lkICJSZW1vdmUgZmlsZXMgZnJvbSB0aGUgd29ya2luZyB0cmVlIGFuZCBmcm9tIHRoZSBpbmRleCIKLW1zZ3N0ciAiTMO2c2NodCBEYXRlaWVuIGltIEFyYmVpdHN6d2VpZyB1bmQgdm9uIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiTMO2c2NodCBEYXRlaWVuIGltIEFyYmVpdHN2ZXJ6ZWljaG5pcyB1bmQgdm9uIGRlciBTdGFnaW5nLUFyZWEiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjYKIG1zZ2lkICJTaG93IHZhcmlvdXMgdHlwZXMgb2Ygb2JqZWN0cyIKQEAgLTkxODcsNTQgKzk2MjMsNTMgQEAKIAogIzogY29tbW9uLWNtZHMuaDoyNwogbXNnaWQgIlNob3cgdGhlIHdvcmtpbmcgdHJlZSBzdGF0dXMiCi1tc2dzdHIgIlplaWd0IGRlbiBadXN0YW5kIGRlcyBBcmJlaXRzendlaWdlcyBhbiIKK21zZ3N0ciAiWmVpZ3QgZGVuIFp1c3RhbmQgZGVzIEFyYmVpdHN2ZXJ6ZWljaG5pc3NlcyBhbiIKIAogIzogY29tbW9uLWNtZHMuaDoyOAogbXNnaWQgIkNyZWF0ZSwgbGlzdCwgZGVsZXRlIG9yIHZlcmlmeSBhIHRhZyBvYmplY3Qgc2lnbmVkIHdpdGggR1BHIgogbXNnc3RyICIiCi0iRXJ6ZXVndCwgbGlzdGV0IGF1ZiwgbMO2c2NodCBvZGVyIHZlcmlmaXppZXJ0IGVpbiBtaXQgR1BHIHNpZ25pZXJ0ZXMgIgotIk1hcmtpZXJ1bmdzb2JqZWt0IgorIkVyemV1Z3QsIGxpc3RldCBhdWYsIGzDtnNjaHQgb2RlciB2ZXJpZml6aWVydCBlaW4gbWl0IEdQRyBzaWduaWVydGVzIFRhZy0iCisiT2JqZWt0IgogCiAjOiBnaXQtYW0uc2g6NTAKIG1zZ2lkICJZb3UgbmVlZCB0byBzZXQgeW91ciBjb21taXR0ZXIgaW5mbyBmaXJzdCIKLW1zZ3N0ciAiU2llIG3DvHNzZW4genVlcnN0IGRpZSBJbmZvcm1hdGlvbmVuIGRlcyBFaW50cmFnZW5kZW4gc2V0emVuLiIKK21zZ3N0ciAiU2llIG3DvHNzZW4genVlcnN0IGRpZSBJbmZvcm1hdGlvbmVuIHp1bSBDb21taXQtRXJzdGVsbGVyIHNldHplbi4iCiAKICM6IGdpdC1hbS5zaDo5NQogbXNnaWQgIiIKICJZb3Ugc2VlbSB0byBoYXZlIG1vdmVkIEhFQUQgc2luY2UgdGhlIGxhc3QgJ2FtJyBmYWlsdXJlLlxuIgogIk5vdCByZXdpbmRpbmcgdG8gT1JJR19IRUFEIgogbXNnc3RyICIiCi0iU2llIHNjaGVpbmVuIHNlaXQgZGVtIGxldHp0ZW4gZ2VzY2hlaXRlcnRlbiAnYW0nIGRpZSBad2VpZ3NwaXR6ZSAoSEVBRClcbiIKLSJnZcOkbmRlcnQgenUgaGFiZW4uXG4iCisiU2llIHNjaGVpbmVuIHNlaXQgZGVtIGxldHp0ZW4gZ2VzY2hlaXRlcnRlbiAnYW0nIEhFQUQgZ2XDpG5kZXJ0IHp1IGhhYmVuLlxuIgogIktlaW5lIFp1csO8Y2tzZXR6dW5nIHp1IE9SSUdfSEVBRC4iCiAKICM6IGdpdC1hbS5zaDoxMDUKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKLSJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCIkY21kbGluZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcIiRjbWRsaW5lIC0tc2tpcFwiIGluc3RlYWQuXG4iCiAiVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nLCBydW4gXCIkY21kbGluZSAtLWFib3J0XCIuIgogbXNnc3RyICIiCi0iV2VubiBTaWUgZGFzIFByb2JsZW0gZ2Vsw7ZzdCBoYWJlbiwgZsO8aHJlbiBTaWUgXCIkY21kbGluZSAtLXJlc29sdmVkXCIgYXVzLlxuIgorIldlbm4gU2llIGRhcyBQcm9ibGVtIGdlbMO2c3QgaGFiZW4sIGbDvGhyZW4gU2llIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiIGF1cy5cbiIKICJGYWxscyBTaWUgZGllc2VuIFBhdGNoIGF1c2xhc3NlbiBtw7ZjaHRlbiwgZsO8aHJlbiBTaWUgc3RhdHRkZXNzZW5cbiIKICJcIiRjbWRsaW5lIC0tc2tpcFwiIGF1cy5cbiIKLSJVbSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnIHdpZWRlcmhlcnp1c3RlbGxlbiB1bmQgZGllIEFud2VuZHVuZyBkZXJcbiIKKyJVbSBkZW4gdXJzcHLDvG5nbGljaGVuIEJyYW5jaCB3aWVkZXJoZXJ6dXN0ZWxsZW4gdW5kIGRpZSBBbndlbmR1bmcgZGVyXG4iCiAiUGF0Y2hlcyBhYnp1YnJlY2hlbiwgZsO8aHJlbiBTaWUgXCIkY21kbGluZSAtLWFib3J0XCIgYXVzLiIKIAogIzogZ2l0LWFtLnNoOjEyMQogbXNnaWQgIkNhbm5vdCBmYWxsIGJhY2sgdG8gdGhyZWUtd2F5IG1lcmdlLiIKLW1zZ3N0ciAiS2FubiBuaWNodCB6dSAzLVdlZ2UtWnVzYW1tZW5mw7xocnVuZyB6dXLDvGNrZmFsbGVuLiIKK21zZ3N0ciAiS2FubiBuaWNodCB6dSAzLVdlZ2UtTWVyZ2UgenVyw7xja2ZhbGxlbi4iCiAKICM6IGdpdC1hbS5zaDoxMzcKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIG5lY2Vzc2FyeSBibG9icyB0byBmYWxsIGJhY2sgb24gMy13YXkgbWVyZ2UuIgogbXNnc3RyICIiCi0iRGVtIFByb2pla3RhcmNoaXYgZmVobGVuIG5vdHdlbmRpZ2UgQmxvYnMgdW0gYXVmIGVpbmUgMy1XZWdlLVp1c2FtbWVuZsO8aHJ1bmcgIgorIkRlbSBSZXBvc2l0b3J5IGZlaGxlbiBub3R3ZW5kaWdlIEJsb2JzIHVtIGF1ZiBlaW5lbiAzLVdlZ2UtTWVyZ2UgIgogInp1csO8Y2t6dWZhbGxlbi4iCiAKICM6IGdpdC1hbS5zaDoxMzkKIG1zZ2lkICJVc2luZyBpbmRleCBpbmZvIHRvIHJlY29uc3RydWN0IGEgYmFzZSB0cmVlLi4uIgogbXNnc3RyICIiCi0iVmVyd2VuZGUgSW5mb3JtYXRpb25lbiBhdXMgZGVyIEJlcmVpdHN0ZWxsdW5nIHVtIGVpbmVuIEJhc2lzYmF1bSAiCisiVmVyd2VuZGUgSW5mb3JtYXRpb25lbiBhdXMgZGVyIFN0YWdpbmctQXJlYSB1bSBlaW5lbiBCYXNpc3ZlcnplaWNobmlzICIKICJuYWNoenVzdGVsbGVuIgogCiAjOiBnaXQtYW0uc2g6MTU0CkBAIC05MjQ3LDExICs5NjgyLDExIEBACiAKICM6IGdpdC1hbS5zaDoxNjMKIG1zZ2lkICJGYWxsaW5nIGJhY2sgdG8gcGF0Y2hpbmcgYmFzZSBhbmQgMy13YXkgbWVyZ2UuLi4iCi1tc2dzdHIgIkZhbGxlIHp1csO8Y2sgenVtIFBhdGNoZW4gZGVyIEJhc2lzIHVuZCBkZXIgMy1XZWdlLVp1c2FtbWVuZsO8aHJ1bmcuLi4iCittc2dzdHIgIkZhbGxlIHp1csO8Y2sgenVtIFBhdGNoZW4gZGVyIEJhc2lzIHVuZCBkZXMgMy1XZWdlLU1lcmdlcy4uLiIKIAogIzogZ2l0LWFtLnNoOjE3OQogbXNnaWQgIkZhaWxlZCB0byBtZXJnZSBpbiB0aGUgY2hhbmdlcy4iCi1tc2dzdHIgIlp1c2FtbWVuZsO8aHJ1bmcgZGVyIMOEbmRlcnVuZ2VuIGZlaGxnZXNjaGxhZ2VuIgorbXNnc3RyICJNZXJnZSBkZXIgw4RuZGVydW5nZW4gZmVobGdlc2NobGFnZW4iCiAKICM6IGdpdC1hbS5zaDoyNzQKIG1zZ2lkICJPbmx5IG9uZSBTdEdJVCBwYXRjaCBzZXJpZXMgY2FuIGJlIGFwcGxpZWQgYXQgb25jZSIKQEAgLTkyNzQsMjggKzk3MDksMzUgQEAKICJEaWUgLWIvLS1iaW5hcnkgT3B0aW9uIGhhdCBzZWl0IExhbmdlbSBrZWluZW4gRWZmZWt0IHVuZCB3aXJkXG4iCiAiZW50ZmVybnQuIEJpdHRlIG5pY2h0IG1laHIgdmVyd2VuZGVuLiIKIAotIzogZ2l0LWFtLnNoOjQ3NworIzogZ2l0LWFtLnNoOjQ3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCiBtc2dzdHIgIiIKLSJWb3JoZXJpZ2VzIFZlcnplaWNobmlzIGRlcyBOZXVhdWZiYXVzICRkb3Rlc3QgZXhpc3RpZXJ0IG5vY2gsIGFiZXIgbWJveCAiCi0iZ2VnZWJlbi4iCisiVm9yaGVyaWdlcyBSZWJhc2UtVmVyemVpY2huaXMgJGRvdGVzdCBleGlzdGllcnQgbm9jaCwgYWJlciBtYm94IGdlZ2ViZW4uIgogCi0jOiBnaXQtYW0uc2g6NDgyCisjOiBnaXQtYW0uc2g6NDg0CiBtc2dpZCAiUGxlYXNlIG1ha2UgdXAgeW91ciBtaW5kLiAtLXNraXAgb3IgLS1hYm9ydD8iCiBtc2dzdHIgIkJpdHRlIHdlcmRlbiBTaWUgc2ljaCBrbGFyLiAtLXNraXAgb2RlciAtLWFib3J0PyIKIAotIzogZ2l0LWFtLnNoOjUwOQorIzogZ2l0LWFtLnNoOjUyMAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlN0cmF5ICRkb3Rlc3QgZGlyZWN0b3J5IGZvdW5kLlxuIgorIlVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVtb3ZlIGl0LiIKK21zZ3N0ciAiIgorIlN0cmF5ICRkb3Rlc3QgVmVyemVpY2huaXMgZ2VmdW5kZW4uXG4iCisiQmVudXR6ZW4gU2llIFwiZ2l0IGFtIC0tYWJvcnRcIiB1bSBlcyB6dSBlbnRmZXJuZW4uIgorCisjOiBnaXQtYW0uc2g6NTI4CiBtc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKIG1zZ3N0ciAiRXMgaXN0IGtlaW5lIEF1ZmzDtnN1bmcgaW0gR2FuZ2UsIGVzIHdpcmQgbmljaHQgZm9ydGdlc2V0enQuIgogCi0jOiBnaXQtYW0uc2g6NTc1CisjOiBnaXQtYW0uc2g6NTk0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEaXJ0eSBpbmRleDogY2Fubm90IGFwcGx5IHBhdGNoZXMgKGRpcnR5OiAkZmlsZXMpIgotbXNnc3RyICIiCi0iVW5zYXViZXJlIEJlcmVpdHN0ZWxsdW5nOiBrYW5uIFBhdGNoZXMgbmljaHQgYW53ZW5kZW4gKHVuc2F1YmVyOiAkZmlsZXMpIgorbXNnc3RyICJHZcOkbmRlcnRlIFN0YWdpbmctQXJlYToga2FubiBQYXRjaGVzIG5pY2h0IGFud2VuZGVuIChnZcOkbmRlcnQ6ICRmaWxlcykiCiAKLSM6IGdpdC1hbS5zaDo2NzkKKyM6IGdpdC1hbS5zaDo2OTgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJQYXRjaCBpcyBlbXB0eS4gIFdhcyBpdCBzcGxpdCB3cm9uZz9cbiIKQEAgLTkzMDUsNjUgKzk3NDcsNjUgQEAKICJQYXRjaCBpc3QgbGVlci4gV3VyZGUgZXIgZmFsc2NoIGF1ZmdldGVpbHQ/XG4iCiAiV2VubiBTaWUgZGllc2VuIFBhdGNoIGF1c2xhc3NlbiBtw7ZjaHRlbiwgZsO8aHJlbiBTaWUgc3RhdHRkZXNzZW5cbiIKICJcIiRjbWRsaW5lIC0tc2tpcFwiIGF1cy5cbiIKLSJVbSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnIHdpZWRlcmhlcnp1c3RlbGxlbiB1bmQgZGllIEFud2VuZHVuZyBkZXIgIgorIlVtIGRlbiB1cnNwcsO8bmdsaWNoZW4gQnJhbmNoIHdpZWRlcmhlcnp1c3RlbGxlbiB1bmQgZGllIEFud2VuZHVuZyBkZXIgIgogIlBhdGNoZXNcbiIKICJhYnp1YnJlY2hlbiwgZsO8aHJlbiBTaWUgXCIkY21kbGluZSAtLWFib3J0XCIgYXVzLiIKIAotIzogZ2l0LWFtLnNoOjcwNgorIzogZ2l0LWFtLnNoOjcyNQogbXNnaWQgIlBhdGNoIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy4iCiBtc2dzdHIgIlBhdGNoIGVudGjDpGx0IGtlaW5lIGfDvGx0aWdlIEVtYWlsLUFkcmVzc2UuIgogCi0jOiBnaXQtYW0uc2g6NzUzCisjOiBnaXQtYW0uc2g6NzcyCiBtc2dpZCAiY2Fubm90IGJlIGludGVyYWN0aXZlIHdpdGhvdXQgc3RkaW4gY29ubmVjdGVkIHRvIGEgdGVybWluYWwuIgogbXNnc3RyICIiCiAiS2FubiBuaWNodCBpbnRlcmFrdGl2IHNlaW4sIG9obmUgZGFzcyBkaWUgU3RhbmRhcmQtRWluZ2FiZSBtaXQgZWluZW0gIgogIlRlcm1pbmFsIHZlcmJ1bmRlbiBpc3QuIgogCi0jOiBnaXQtYW0uc2g6NzU3CisjOiBnaXQtYW0uc2g6Nzc2CiBtc2dpZCAiQ29tbWl0IEJvZHkgaXM6IgotbXNnc3RyICJCZXNjaHJlaWJ1bmcgZGVyIEVpbnRyYWd1bmcgaXN0OiIKK21zZ3N0ciAiQ29tbWl0LUJlc2NocmVpYnVuZyBpc3Q6IgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIkFud2VuZGVuPyBbeV1lcy9bbl1vL1tlXWRpdC9bdl1pZXcgcGF0Y2gvW2FdY2NlcHQgYWxsICIKIAotIzogZ2l0LWFtLnNoOjgwMAorIzogZ2l0LWFtLnNoOjgxOQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmc6ICRGSVJTVExJTkUiCiBtc2dzdHIgIldlbmRlIGFuOiAkRklSU1RMSU5FIgogCi0jOiBnaXQtYW0uc2g6ODIxCisjOiBnaXQtYW0uc2g6ODQwCiBtc2dpZCAiIgogIk5vIGNoYW5nZXMgLSBkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnP1xuIgogIklmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0byBzdGFnZSwgY2hhbmNlcyBhcmUgdGhhdCBzb21ldGhpbmcgZWxzZVxuIgogImFscmVhZHkgaW50cm9kdWNlZCB0aGUgc2FtZSBjaGFuZ2VzOyB5b3UgbWlnaHQgd2FudCB0byBza2lwIHRoaXMgcGF0Y2guIgogbXNnc3RyICIiCiAiS2VpbmUgw4RuZGVydW5nZW4gLSBoYWJlbiBTaWUgdmVyZ2Vzc2VuICdnaXQgYWRkJyB6dSBiZW51dHplbj9cbiIKLSJXZW5uIGtlaW5lIMOEbmRlcnVuZ2VuIG1laHIgenVtIEJlcmVpdHN0ZWxsZW4gdm9yaGFuZGVuIHNpbmQsIGvDtm5udGVuXG4iCisiV2VubiBrZWluZSDDhG5kZXJ1bmdlbiBtZWhyIHp1bSBDb21taXQgdm9yenVtZXJrZW4gc2luZCwga8O2bm50ZW5cbiIKICJkaWVzZSBiZXJlaXRzIGFuZGVyd2VpdGlnIGVpbmdlZsO8Z3Qgd29yZGVuIHNlaW47IFNpZSBrw7ZubnRlbiBkaWVzZW4gUGF0Y2hcbiIKICJhdXNsYXNzZW4uIgogCi0jOiBnaXQtYW0uc2g6ODI5CisjOiBnaXQtYW0uc2g6ODQ4CiBtc2dpZCAiIgogIllvdSBzdGlsbCBoYXZlIHVubWVyZ2VkIHBhdGhzIGluIHlvdXIgaW5kZXhcbiIKICJkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnPyIKIG1zZ3N0ciAiIgotIlNpZSBoYWJlbiBpbW1lciBub2NoIG5pY2h0IHp1c2FtbWVuZ2Vmw7xocnRlIFBmYWRlIGluIGRlciBCZXJlaXRzdGVsbHVuZy5cbiIKKyJTaWUgaGFiZW4gaW1tZXIgbm9jaCBuaWNodCB6dXNhbW1lbmdlZsO8aHJ0ZSBQZmFkZSBpbiBkZXIgU3RhZ2luZy1BcmVhLlxuIgogIkhhYmVuIFNpZSB2ZXJnZXNzZW4gJ2dpdCBhZGQnIHp1IGJlbnV0emVuPyIKIAotIzogZ2l0LWFtLnNoOjg0NQorIzogZ2l0LWFtLnNoOjg2NAogbXNnaWQgIk5vIGNoYW5nZXMgLS0gUGF0Y2ggYWxyZWFkeSBhcHBsaWVkLiIKIG1zZ3N0ciAiS2VpbmUgw4RuZGVydW5nZW4gLS0gUGF0Y2hlcyBiZXJlaXRzIGFuZ2V3ZW5kZXQuIgogCi0jOiBnaXQtYW0uc2g6ODU1CisjOiBnaXQtYW0uc2g6ODc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJQYXRjaCBmYWlsZWQgYXQgJG1zZ251bSAkRklSU1RMSU5FIgogbXNnc3RyICJBbndlbmR1bmcgZGVzIFBhdGNoZXMgZmVobGdlc2NobGFnZW4gYmVpICRtc2dudW0gJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjg1OAorIzogZ2l0LWFtLnNoOjg3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjb3B5IG9mIHRoZSBwYXRjaCB0aGF0IGZhaWxlZCBpcyBmb3VuZCBpbjpcbiIKQEAgLTkzNzIsNyArOTgxNCw3IEBACiAiRGllIEtvcGllIGRlcyBmZWhsZ2VzY2hsYWdlbmVuIFBhdGNoZXMgYmVmaW5kZXQgc2ljaCBpbjpcbiIKICIgICAkZG90ZXN0L3BhdGNoIgogCi0jOiBnaXQtYW0uc2g6ODc2CisjOiBnaXQtYW0uc2g6ODk1CiBtc2dpZCAiYXBwbHlpbmcgdG8gYW4gZW1wdHkgaGlzdG9yeSIKIG1zZ3N0ciAid2VuZGUgenUgbGVlcmVyIEhpc3RvcmllIGFuIgogCkBAIC05Mzk1LDExICs5ODM3LDExIEBACiAjOiBnaXQtYmlzZWN0LnNoOjk5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgcmV2aXNpb24iCi1tc2dzdHIgIickYXJnJyBzY2hlaW50IGtlaW5lIGfDvGx0aWdlIFJldmlzaW9uIHp1IHNlaW4iCittc2dzdHIgIickYXJnJyBzY2hlaW50IGtlaW4gZ8O8bHRpZ2VyIENvbW1pdCB6dSBzZWluIgogCiAjOiBnaXQtYmlzZWN0LnNoOjExNwogbXNnaWQgIkJhZCBIRUFEIC0gSSBuZWVkIGEgSEVBRCIKLW1zZ3N0ciAiVW5nw7xsdGlnZSBad2VpZ3NwaXR6ZSAoSEVBRCkgLSBad2VpZ3NwaXR6ZSAoSEVBRCkgd2lyZCBiZW7DtnRpZ3QiCittc2dzdHIgIlVuZ8O8bHRpZ2VyIEhFQUQgLSBIRUFEIHdpcmQgYmVuw7Z0aWd0IgogCiAjOiBnaXQtYmlzZWN0LnNoOjEzMAogIywgc2gtZm9ybWF0CkBAIC05NDA3LDE1ICs5ODQ5LDE1IEBACiAiQ2hlY2tpbmcgb3V0ICckc3RhcnRfaGVhZCcgZmFpbGVkLiBUcnkgJ2dpdCBiaXNlY3QgcmVzZXQgPHZhbGlkYnJhbmNoPicuIgogbXNnc3RyICIiCiAiQXVzY2hlY2tlbiB2b24gJyRzdGFydF9oZWFkJyBmZWhsZ2VzY2hsYWdlbi4gVmVyc3VjaGVuIFNpZSAnZ2l0IGJpc2VjdCByZXNldCAiCi0iPGd1ZWx0aWdlcnp3ZWlnPicuIgorIjxndWVsdGlnZXJicmFuY2g+Jy4iCiAKICM6IGdpdC1iaXNlY3Quc2g6MTQwCiBtc2dpZCAid29uJ3QgYmlzZWN0IG9uIHNlZWtlZCB0cmVlIgotbXNnc3RyICJiaW7DpHJlIFN1Y2hlIGF1ZiBnZXN1Y2h0ZW0gWndlaWcgbmljaHQgbcO2Z2xpY2giCittc2dzdHIgImJpbsOkcmUgU3VjaGUgYXVmIGdlc3VjaHRlbSBCcmFuY2ggbmljaHQgbcO2Z2xpY2giCiAKICM6IGdpdC1iaXNlY3Quc2g6MTQ0CiBtc2dpZCAiQmFkIEhFQUQgLSBzdHJhbmdlIHN5bWJvbGljIHJlZiIKLW1zZ3N0ciAiVW5nw7xsdGlnZSBad2VpZ3NwaXR6ZSAoSEVBRCkgLSBtZXJrd8O8cmRpZ2Ugc3ltYm9saXNjaGUgUmVmZXJlbnoiCittc2dzdHIgIlVuZ8O8bHRpZ2VyIEhFQUQgLSBtZXJrd8O8cmRpZ2Ugc3ltYm9saXNjaGUgUmVmZXJlbnoiCiAKICM6IGdpdC1iaXNlY3Quc2g6MTg5CiAjLCBzaC1mb3JtYXQKQEAgLTk0NDQsNyArOTg4Niw3IEBACiAjLiB0aGlzIGlzIGxlc3Mgb3B0aW11bS4KICM6IGdpdC1iaXNlY3Quc2g6MjczCiBtc2dpZCAiV2FybmluZzogYmlzZWN0aW5nIG9ubHkgd2l0aCBhIGJhZCBjb21taXQuIgotbXNnc3RyICJXYXJudW5nOiBiaW7DpHJlIFN1Y2hlIG51ciBtaXQgZWluZXIgZmVobGVyaGFmdGVuIFZlcnNpb24iCittc2dzdHIgIldhcm51bmc6IGJpbsOkcmUgU3VjaGUgbnVyIG1pdCBlaW5lbSBmZWhsZXJoYWZ0ZW4gQ29tbWl0IgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW1ldIGFuZCBbbl0gaW4geW91cgogIy4gdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaCBpbnB1dApAQCAtOTQ1OCw3ICs5OTAwLDggQEAKICJZb3UgbmVlZCB0byBnaXZlIG1lIGF0IGxlYXN0IG9uZSBnb29kIGFuZCBvbmUgYmFkIHJldmlzaW9ucy5cbiIKICIoWW91IGNhbiB1c2UgXCJnaXQgYmlzZWN0IGJhZFwiIGFuZCBcImdpdCBiaXNlY3QgZ29vZFwiIGZvciB0aGF0LikiCiBtc2dzdHIgIiIKLSJTaWUgbcO8c3NlbiBtaW5kZXN0ZW5zIGVpbmUga29ycmVrdGUgdW5kIGVpbmUgZmVobGVyaGFmdGUgUmV2aXNpb24gYW5nZWJlbi5cbiIKKyJTaWUgbcO8c3NlbiBtaW5kZXN0ZW5zIGVpbmVuIGtvcnJla3RlbiB1bmQgZWluZW4gZmVobGVyaGFmdGVuIENvbW1pdCAiCisiYW5nZWJlbi5cbiIKICIoU2llIGvDtm5uZW4gZGFmw7xyIFwiZ2l0IGJpc2VjdCBiYWRcIiB1bmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBiZW51dHplbi4pIgogCiAjOiBnaXQtYmlzZWN0LnNoOjI5MgpAQCAtOTQ2OCw0NyArOTkxMSw0NyBAQAogIihZb3UgY2FuIHVzZSBcImdpdCBiaXNlY3QgYmFkXCIgYW5kIFwiZ2l0IGJpc2VjdCBnb29kXCIgZm9yIHRoYXQuKSIKIG1zZ3N0ciAiIgogIlNpZSBtw7xzc2VuIG1pdCBcImdpdCBiaXNlY3Qgc3RhcnRcIiBiZWdpbm5lbi5cbiIKLSJEYW5hY2ggbcO8c3NlbiBTaWUgbWluZGVzdGVucyBlaW5lIGtvcnJla3RlIHVuZCBlaW5lIGZlaGxlcmhhZnRlIFJldmlzaW9uICIKKyJEYW5hY2ggbcO8c3NlbiBTaWUgbWluZGVzdGVucyBlaW5lbiBrb3JyZWt0ZW4gdW5kIGVpbmVuIGZlaGxlcmhhZnRlbiBDb21taXQgIgogImFuZ2ViZW4uXG4iCiAiKFNpZSBrw7ZubmVuIGRhZsO8ciBcImdpdCBiaXNlY3QgYmFkXCIgdW5kIFwiZ2l0IGJpc2VjdCBnb29kXCIgYmVudXR6ZW4uKSIKIAotIzogZ2l0LWJpc2VjdC5zaDozNDcgZ2l0LWJpc2VjdC5zaDo0NzQKKyM6IGdpdC1iaXNlY3Quc2g6MzYzIGdpdC1iaXNlY3Quc2g6NDkwCiBtc2dpZCAiV2UgYXJlIG5vdCBiaXNlY3RpbmcuIgogbXNnc3RyICJrZWluZSBiaW7DpHJlIFN1Y2hlIGltIEdhbmdlIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM1NAorIzogZ2l0LWJpc2VjdC5zaDozNzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickaW52YWxpZCcgaXMgbm90IGEgdmFsaWQgY29tbWl0IgotbXNnc3RyICInJGludmFsaWQnIGlzdCBrZWluZSBnw7xsdGlnZSBWZXJzaW9uIgorbXNnc3RyICInJGludmFsaWQnIGlzdCBrZWluIGfDvGx0aWdlciBDb21taXQiCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzYzCisjOiBnaXQtYmlzZWN0LnNoOjM3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBjaGVjayBvdXQgb3JpZ2luYWwgSEVBRCAnJGJyYW5jaCcuXG4iCiAiVHJ5ICdnaXQgYmlzZWN0IHJlc2V0IDxjb21taXQ+Jy4iCiBtc2dzdHIgIiIKLSJLb25udGUgZGllIHVyc3Byw7xuZ2xpY2hlIFp3ZWlnc3BpdHplIChIRUFEKSAnJGJyYW5jaCcgbmljaHQgYXVzY2hlY2tlbi5cbiIKLSJWZXJzdWNoZW4gU2llICdnaXQgYmlzZWN0IHJlc2V0IDxWZXJzaW9uPicuIgorIktvbm50ZSBkZW4gdXJzcHLDvG5nbGljaGVuIEhFQUQgJyRicmFuY2gnIG5pY2h0IGF1c2NoZWNrZW4uXG4iCisiVmVyc3VjaGVuIFNpZSAnZ2l0IGJpc2VjdCByZXNldCA8Q29tbWl0PicuIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM5MAorIzogZ2l0LWJpc2VjdC5zaDo0MDYKIG1zZ2lkICJObyBsb2dmaWxlIGdpdmVuIgogbXNnc3RyICJLZWluZSBMb2ctRGF0ZWkgZ2VnZWJlbiIKIAotIzogZ2l0LWJpc2VjdC5zaDozOTEKKyM6IGdpdC1iaXNlY3Quc2g6NDA3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAkZmlsZSBmb3IgcmVwbGF5aW5nIgogbXNnc3RyICJrYW5uICRmaWxlIG5pY2h0IGbDvHIgZGFzIEFic3BpZWxlbiBsZXNlbiIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MDgKKyM6IGdpdC1iaXNlY3Quc2g6NDI0CiBtc2dpZCAiPz8gd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IgogbXNnc3RyICI/PyBXYXMgcmVkZW4gU2llIGRhPyIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MjAKKyM6IGdpdC1iaXNlY3Quc2g6NDM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJydW5uaW5nICRjb21tYW5kIgogbXNnc3RyICJmw7xocmUgJGNvbW1hbmQgYXVzIgogCi0jOiBnaXQtYmlzZWN0LnNoOjQyNworIzogZ2l0LWJpc2VjdC5zaDo0NDMKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJiaXNlY3QgcnVuIGZhaWxlZDpcbiIKQEAgLTk1MTcsMTEgKzk5NjAsMTEgQEAKICInYmlzZWN0IHJ1bicgZmVobGdlc2NobGFnZW46XG4iCiAiUsO8Y2trZWhyd2VydCAkcmVzIHZvbiAnJGNvbW1hbmQnIGlzdCA8IDAgb2RlciA+PSAxMjgiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDUzCisjOiBnaXQtYmlzZWN0LnNoOjQ2OQogbXNnaWQgImJpc2VjdCBydW4gY2Fubm90IGNvbnRpbnVlIGFueSBtb3JlIgogbXNnc3RyICInYmlzZWN0IHJ1bicga2FubiBuaWNodCBtZWhyIGZvcnRnZXNldHp0IHdlcmRlbiIKIAotIzogZ2l0LWJpc2VjdC5zaDo0NTkKKyM6IGdpdC1iaXNlY3Quc2g6NDc1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCkBAIC05NTMwLDcgKzk5NzMsNyBAQAogIidiaXNlY3QgcnVuJyBmZWhsZ2VzY2hsYWdlbjpcbiIKICInYmlzZWN0X3N0YXRlICRzdGF0ZScgd3VyZGUgbWl0IEZlaGxlcndlcnQgJHJlcyBiZWVuZGV0IgogCi0jOiBnaXQtYmlzZWN0LnNoOjQ2NgorIzogZ2l0LWJpc2VjdC5zaDo0ODIKIG1zZ2lkICJiaXNlY3QgcnVuIHN1Y2Nlc3MiCiBtc2dzdHIgIidiaXNlY3QgcnVuJyBlcmZvbGdyZWljaCBhdXNnZWbDvGhydCIKIApAQCAtOTU0MSwxMCArOTk4NCw5IEBACiAiYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uLCBvciB1c2UgJ2dpdCBjb21taXQgLWEnLiIKIG1zZ3N0ciAiIgogIlwicHVsbFwiIGlzdCBuaWNodCBtw7ZnbGljaCwgd2VpbCBTaWUgbmljaHQgenVzYW1tZW5nZWbDvGhydGUgRGF0ZWllbiBoYWJlbi5cbiIKLSJCaXR0ZSBrb3JyaWdpZXJlbiBTaWUgZGllcyBpbSBBcmJlaXRzYmF1bSB1bmQgYmVudXR6ZW4gU2llIGRhbm4gJ2dpdCBhZGQvcm0gIgotIjxEYXRlaT4nXG4iCi0idW0gZGllIEF1ZmzDtnN1bmcgZW50c3ByZWNoZW5kIHp1IG1hcmtpZXJlbiwgb2RlciBiZW51dHplbiBTaWUgJ2dpdCBjb21taXQgLSIKLSJhJy4iCisiQml0dGUga29ycmlnaWVyZW4gU2llIGRpZXMgaW0gQXJiZWl0c3ZlcnplaWNobmlzIHVuZCBiZW51dHplbiBTaWUgZGFubiBcbiIKKyInZ2l0IGFkZC9ybSA8RGF0ZWk+JyB1bSBkaWUgQXVmbMO2c3VuZyBlbnRzcHJlY2hlbmQgenUgbWFya2llcmVuLCBvZGVyXG4iCisiYmVudXR6ZW4gU2llICdnaXQgY29tbWl0IC1hJy4iCiAKICM6IGdpdC1wdWxsLnNoOjI1CiBtc2dpZCAiUHVsbCBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB5b3UgaGF2ZSB1bm1lcmdlZCBmaWxlcy4iCkBAIC05NTU0LDggKzk5OTYsOCBAQAogIzogZ2l0LXB1bGwuc2g6MjAzCiBtc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgogbXNnc3RyICIiCi0iQWt0dWFsaXNpZXJlIGVpbmUgdW5nZWJvcmVuZW4gWndlaWcgbWl0IMOEbmRlcnVuZ2VuLCBkaWUgenVyIEJlcmVpdHN0ZWxsdW5nICIKLSJoaW56dWdlZsO8Z3Qgd3VyZGVuIgorIkFrdHVhbGlzaWVyZSBlaW5lbiB1bmdlYm9yZW5lbiBCcmFuY2ggbWl0IMOEbmRlcnVuZ2VuLCBkaWUgenVtIENvbW1pdCAiCisidm9yZ2VtZXJrdCBzaW5kIgogCiAjLiBUaGUgZmV0Y2ggaW52b2x2ZWQgdXBkYXRpbmcgdGhlIGN1cnJlbnQgYnJhbmNoLgogIy4gVGhlIHdvcmtpbmcgdHJlZSBhbmQgdGhlIGluZGV4IGZpbGUgaXMgc3RpbGwgYmFzZWQgb24gdGhlCkBAIC05NTY4LDE4ICsxMDAxMCwxOCBAQAogIldhcm5pbmc6IGZhc3QtZm9yd2FyZGluZyB5b3VyIHdvcmtpbmcgdHJlZSBmcm9tXG4iCiAiV2FybmluZzogY29tbWl0ICRvcmlnX2hlYWQuIgogbXNnc3RyICIiCi0iV2FybnVuZzogRGllIEFuZm9yZGVydW5nIGFrdHVhbGlzaWVydGUgZGllIFNwaXR6ZSBkZXMgYWt0dWVsbGVuIFp3ZWlnZXMuXG4iCi0iV2FybnVuZzogU3B1bGUgSWhyZW4gQXJiZWl0c3p3ZWlnIHZvbiBWZXJzaW9uICRvcmlnX2hlYWQgdm9yLiIKKyJXYXJudW5nOiBcImZldGNoXCIgYWt0dWFsaXNpZXJ0ZSBkaWUgU3BpdHplIGRlcyBha3R1ZWxsZW4gQnJhbmNoZXMuXG4iCisiV2FybnVuZzogU3B1bGUgSWhyIEFyYmVpdHN2ZXJ6ZWljaG5pcyB2b24gQ29tbWl0ICRvcmlnX2hlYWQgdm9yLiIKIAogIzogZ2l0LXB1bGwuc2g6MjYwCiBtc2dpZCAiQ2Fubm90IG1lcmdlIG11bHRpcGxlIGJyYW5jaGVzIGludG8gZW1wdHkgaGVhZCIKLW1zZ3N0ciAiS2FubiBuaWNodCBtZWhyZXJlIFp3ZWlnZSBpbiBlaW5lbiB1bmdlYm9yZW5lbiBad2VpZyB6dXNhbW1lbmbDvGhyZW4iCittc2dzdHIgIkthbm4gbmljaHQgbWVocmVyZSBCcmFuY2hlcyBpbiBlaW5lbiB1bmdlYm9yZW5lbiBCcmFuY2ggenVzYW1tZW5mw7xocmVuIgogCiAjOiBnaXQtcHVsbC5zaDoyNjQKIG1zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCi1tc2dzdHIgImthbm4gbmljaHQgYXVmIG1laHJlcmUgWndlaWdlIG5ldSBhdWZiYXVlbiIKK21zZ3N0ciAia2FubiBSZWJhc2UgbmljaHQgYXVmIG1laHJlcmUgQnJhbmNoZXMgYXVzZsO8aHJlbiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MworIzogZ2l0LXJlYmFzZS5zaDo1NAogbXNnaWQgIiIKICJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcImdpdCByZWJhc2UgLS1za2lwXCIgaW5zdGVhZC5cbiIKQEAgLTk1OTAsNTAgKzEwMDMyLDY4IEBACiAiYXVzLlxuIgogIkZhbGxzIFNpZSBkaWVzZW4gUGF0Y2ggYXVzbGFzc2VuIG3DtmNodGVuLCBmw7xocmVuIFNpZSBzdGF0dGRlc3NlbiBcImdpdCAiCiAicmViYXNlIC0tc2tpcFwiIGF1cy5cbiIKLSJVbSBkZW4gdXJzcHLDvG5nbGljaGVuIFp3ZWlnIHdpZWRlcmhlcnp1c3RlbGxlbiB1bmQgZGVuIE5ldWF1ZmJhdSAiCi0iYWJ6dWJyZWNoZW4sXG4iCisiVW0gZGVuIHVyc3Byw7xuZ2xpY2hlbiBCcmFuY2ggd2llZGVyaGVyenVzdGVsbGVuIHVuZCBkZW4gUmViYXNlIGFienVicmVjaGVuLFxuIgogImbDvGhyZW4gU2llIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgYXVzLiIKIAorIzogZ2l0LXJlYmFzZS5zaDoxNTYKK21zZ2lkICJBcHBsaWVkIGF1dG9zdGFzaC4iCittc2dzdHIgIlwiYXV0b3N0YXNoXCIgYW5nZXdlbmRldC4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3RvcmUgJHN0YXNoX3NoYTEiCittc2dzdHIgIkthbm4gJHN0YXNoX3NoYTEgbmljaHQgc3BlaWNoZXJuLiIKKwogIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorIkFud2VuZHVuZyB2b24gXCJhdXRvc3Rhc2hcIiByZXN1bHRpZXJ0ZSBpbiBLb25mbGlrdGVuLlxuIgorIklocmUgw4RuZGVydW5nZW4gc2luZCBpbSBTdGFzaCBzaWNoZXIuXG4iCisiU2llIGvDtm5uZW4gamVkZXJ6ZWl0IFwiZ2l0IHN0YXNoIHBvcFwiIG9kZXIgXCJnaXQgc3Rhc2ggZHJvcFwiIGF1c2bDvGhyZW4uXG4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTkwCiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCi1tc2dzdHIgIkRlciBcInByZS1yZWJhc2UgaG9va1wiIGhhdCBkZW4gTmV1YXVmYmF1IHp1csO8Y2tnZXdpZXNlbi4iCittc2dzdHIgIkRlciBcInByZS1yZWJhc2UgaG9va1wiIGhhdCBkZW4gUmViYXNlIHp1csO8Y2tnZXdpZXNlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MTY1CisjOiBnaXQtcmViYXNlLnNoOjE5NQogbXNnaWQgIkl0IGxvb2tzIGxpa2UgZ2l0LWFtIGlzIGluIHByb2dyZXNzLiBDYW5ub3QgcmViYXNlLiIKLW1zZ3N0ciAiXCJnaXQtYW1cIiBzY2hlaW50IGltIEdhbmdlIHp1IHNlaW4uIEthbm4gbmljaHQgbmV1IGF1ZmJhdWVuLiIKK21zZ3N0ciAiXCJnaXQtYW1cIiBzY2hlaW50IGltIEdhbmdlIHp1IHNlaW4uIEthbm4gUmViYXNlIG5pY2h0IGR1cmNoZsO8aHJlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6Mjk2CisjOiBnaXQtcmViYXNlLnNoOjMyOQogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiRGllIE9wdGlvbiAtLWV4ZWMgbXVzcyBtaXQgLS1pbnRlcmFjdGl2ZSB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDozMDEKKyM6IGdpdC1yZWJhc2Uuc2g6MzM0CiBtc2dpZCAiTm8gcmViYXNlIGluIHByb2dyZXNzPyIKLW1zZ3N0ciAiS2VpbiBOZXVhdWZiYXUgaW0gR2FuZ2U/IgorbXNnc3RyICJLZWluIFJlYmFzZSBpbSBHYW5nZT8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzEyCisjOiBnaXQtcmViYXNlLnNoOjM0NQogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgotIkRpZSAtLWVkaXQtdG9kbyBBa3Rpb24ga2FubiBudXIgd8OkaHJlbmQgZWluZXMgaW50ZXJha3RpdmVuIE5ldWF1ZmJhdXMgIgotInZlcndlbmRldCB3ZXJkZW4uIgorIkRpZSAtLWVkaXQtdG9kbyBBa3Rpb24ga2FubiBudXIgd8OkaHJlbmQgZWluZXMgaW50ZXJha3RpdmVuIFJlYmFzZSB2ZXJ3ZW5kZXQgIgorIndlcmRlbi4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzE5CisjOiBnaXQtcmViYXNlLnNoOjM1MgogbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCi1tc2dzdHIgIkthbm4gWndlaWdzcGl0emUgKEhFQUQpIG5pY2h0IGxlc2VuIgorbXNnc3RyICJLYW5uIEhFQUQgbmljaHQgbGVzZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzIyCisjOiBnaXQtcmViYXNlLnNoOjM1NQogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKIG1zZ3N0ciAiIgotIlNpZSBtw7xzc2VuIGFsbGUgWnVzYW1tZW5mw7xocnVuZ3Nrb25mbGlrdGUgZWRpdGllcmVuIHVuZCBkaWVzZSBkYW5uXG4iCisiU2llIG3DvHNzZW4gYWxsZSBNZXJnZS1Lb25mbGlrdGUgZWRpdGllcmVuIHVuZCBkaWVzZSBkYW5uXG4iCiAibWl0dGVscyBcImdpdCBhZGRcIiBhbHMgYXVmZ2Vsw7ZzdCBtYXJraWVyZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQwCisjOiBnaXQtcmViYXNlLnNoOjM3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICJLb25udGUgbmljaHQgenUgJGhlYWRfbmFtZSB6dXLDvGNrZ2VoZW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU5CisjOiBnaXQtcmViYXNlLnNoOjM5MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgpAQCAtOTY0Niw3ICsxMDEwNiw3IEBACiAidmFsdWFibGUgdGhlcmUuIgogbXNnc3RyICIiCiAiRXMgc2llaHQgc28gYXVzLCBhbHMgb2IgZXMgZGFzIFZlcnplaWNobmlzICRzdGF0ZV9kaXJfYmFzZSBiZXJlaXRzIGdpYnRcbiIKLSJ1bmQgZXMga8O2bm50ZSBlaW4gYW5kZXJlciBOZXVhdWZiYXUgaW0gR2FuZ2Ugc2Vpbi4gV2VubiBkYXMgZGVyIEZhbGwgaXN0LFxuIgorInVuZCBlcyBrw7ZubnRlIGVpbiBhbmRlcmVyIFJlYmFzZSBpbSBHYW5nZSBzZWluLiBXZW5uIGRhcyBkZXIgRmFsbCBpc3QsXG4iCiAicHJvYmllcmVuIFNpZSBiaXR0ZVxuIgogIlx0JGNtZF9saXZlX3JlYmFzZVxuIgogIldlbm4gZGFzIG5pY2h0IGRlciBGYWxsIGlzdCwgcHJvYmllcmVuIFNpZSBiaXR0ZVxuIgpAQCAtOTY1NCw1OSArMTAxMTQsNjggQEAKICJ1bmQgZsO8aHJlbiBTaWUgZGllc2VzIEtvbW1hbmRvIG5vY2htYWwgYXVzLiBFcyB3aXJkIGFuZ2VoYWx0ZW4sIGZhbGxzIG5vY2hcbiIKICJldHdhcyBTY2jDvHR6ZW5zd2VydGVzIHZvcmhhbmRlbiBpc3QuIgogCi0jOiBnaXQtcmViYXNlLnNoOjQwNAorIzogZ2l0LXJlYmFzZS5zaDo0MzcKICMsIHNoLWZvcm1hdAogbXNnaWQgImludmFsaWQgdXBzdHJlYW0gJHVwc3RyZWFtX25hbWUiCi1tc2dzdHIgInVuZ8O8bHRpZ2VyIMOcYmVybmFobWV6d2VpZyAkdXBzdHJlYW1fbmFtZSIKK21zZ3N0ciAidW5nw7xsdGlnZXIgVXBzdHJlYW0tQnJhbmNoICR1cHN0cmVhbV9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQyOAorIzogZ2l0LXJlYmFzZS5zaDo0NjEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgotbXNnc3RyICIkb250b19uYW1lOiBlcyBnaWJ0IG1laHIgYWxzIGVpbmUgWnVzYW1tZW5mw7xocnVuZ3NiYXNpcyIKK21zZ3N0ciAiJG9udG9fbmFtZTogZXMgZ2lidCBtZWhyIGFscyBlaW5lIE1lcmdlLUJhc2lzIgogCi0jOiBnaXQtcmViYXNlLnNoOjQzMSBnaXQtcmViYXNlLnNoOjQzNQorIzogZ2l0LXJlYmFzZS5zaDo0NjQgZ2l0LXJlYmFzZS5zaDo0NjgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGlzIG5vIG1lcmdlIGJhc2UiCi1tc2dzdHIgIiRvbnRvX25hbWU6IGVzIGdpYnQga2VpbmUgWnVzYW1tZW5mw7xocnVuZ3NiYXNpcyIKK21zZ3N0ciAiJG9udG9fbmFtZTogZXMgZ2lidCBrZWluZSBNZXJnZS1CYXNpcyIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NDAKKyM6IGdpdC1yZWJhc2Uuc2g6NDczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIGNvbW1pdDogJG9udG9fbmFtZSIKLW1zZ3N0ciAiJG9udG9fbmFtZSB6ZWlndCBhdWYga2VpbmUgZ8O8bHRpZ2UgVmVyc2lvbiIKK21zZ3N0ciAiJG9udG9fbmFtZSB6ZWlndCBhdWYga2VpbmVuIGfDvGx0aWdlbiBDb21taXQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjQ5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCi1tc2dzdHIgImZhdGFsOiBad2VpZyAkYnJhbmNoX25hbWUgbmljaHQgZ2VmdW5kZW4iCittc2dzdHIgImZhdGFsOiBCcmFuY2ggJGJyYW5jaF9uYW1lIG5pY2h0IGdlZnVuZGVuIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ4MworIzogZ2l0LXJlYmFzZS5zaDo1MTkKK21zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgorbXNnc3RyICJLYW5uIFwiYXV0b3N0YXNoXCIgbmljaHQgYXVzZsO8aHJlbi4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKK21zZ3N0ciAiXCJhdXRvc3Rhc2hcIiBlcnpldWd0OiAkc3Rhc2hfYWJicmV2IgorCisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCi1tc2dzdHIgIkJpdHRlIHRyYWdlbiBTaWUgZGllIMOEbmRlcnVuZ2VuIGVpbiBvZGVyIGJlbnV0emVuIFNpZSBcInN0YXNoXCIuIgorbXNnc3RyICJCaXR0ZSBjb21taXR0ZW4gU2llIGRpZSDDhG5kZXJ1bmdlbiBvZGVyIGJlbnV0emVuIFNpZSBcInN0YXNoXCIuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwMQorIzogZ2l0LXJlYmFzZS5zaDo1NDgKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKLW1zZ3N0ciAiQWt0dWVsbGVyIFp3ZWlnICRicmFuY2hfbmFtZSBpc3QgYXVmIGRlbSBuZXVzdGVuIFN0YW5kLiIKK21zZ3N0ciAiQWt0dWVsbGVyIEJyYW5jaCAkYnJhbmNoX25hbWUgaXN0IGF1ZiBkZW0gbmV1c3RlbiBTdGFuZC4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTA0CisjOiBnaXQtcmViYXNlLnNoOjU1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICIiCi0iQWt0dWVsbGVyIFp3ZWlnICRicmFuY2hfbmFtZSBpc3QgYXVmIGRlbSBuZXVzdGVuIFN0YW5kLCBOZXVhdWZiYXUgZXJ6d3VuZ2VuLiIKKyJBa3R1ZWxsZXIgQnJhbmNoICRicmFuY2hfbmFtZSBpc3QgYXVmIGRlbSBuZXVzdGVuIFN0YW5kLCBSZWJhc2UgZXJ6d3VuZ2VuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MTUKKyM6IGdpdC1yZWJhc2Uuc2g6NTYzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKIG1zZ3N0ciAiw4RuZGVydW5nZW4gdm9uICRtYiB6dSAkb250bzoiCiAKICMuIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQotIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyM6IGdpdC1yZWJhc2Uuc2g6NTcyCiBtc2dpZCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIgogbXNnc3RyICIiCi0iWnVuw6RjaHN0IHdpcmQgZGllIFp3ZWlnc3BpdHplIHp1csO8Y2tnZXNwdWx0LCB1bSBJaHJlIMOEbmRlcnVuZ2VuXG4iCisiWnVuw6RjaHN0IHdpcmQgZGVyIEJyYW5jaCB6dXLDvGNrZ2VzcHVsdCwgdW0gSWhyZSDDhG5kZXJ1bmdlblxuIgogImRhcmF1ZiBuZXUgYW56dXdlbmRlbi4uLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIiRicmFuY2hfbmFtZSB6dSAkb250b19uYW1lIHZvcmdlc3B1bHQuIgpAQCAtOTcxNywxNSArMTAxODYsMTUgQEAKIAogIzogZ2l0LXN0YXNoLnNoOjc0CiBtc2dpZCAiWW91IGRvIG5vdCBoYXZlIHRoZSBpbml0aWFsIGNvbW1pdCB5ZXQiCi1tc2dzdHIgIlNpZSBoYWJlbiBiaXNoZXIgbm9jaCBrZWluZSBpbml0aWFsZSBWZXJzaW9uIgorbXNnc3RyICJTaWUgaGFiZW4gYmlzaGVyIG5vY2gga2VpbmVuIGluaXRpYWxlbiBDb21taXQiCiAKICM6IGdpdC1zdGFzaC5zaDo4OQogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IGluZGV4IHN0YXRlIgotbXNnc3RyICJLYW5uIGRlbiBha3R1ZWxsZW4gWnVzdGFuZCBkZXIgQmVyZWl0c3RlbGx1bmcgbmljaHQgc3BlaWNoZXJuIgorbXNnc3RyICJLYW5uIGRlbiBha3R1ZWxsZW4gWnVzdGFuZCBkZXIgU3RhZ2luZy1BcmVhIG5pY2h0IHNwZWljaGVybiIKIAogIzogZ2l0LXN0YXNoLnNoOjEyMyBnaXQtc3Rhc2guc2g6MTM2CiBtc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgd29ya3RyZWUgc3RhdGUiCi1tc2dzdHIgIkthbm4gZGVuIGFrdHVlbGxlbiBadXN0YW5kIGRlcyBBcmJlaXRzYmF1bWVzIG5pY2h0IHNwZWljaGVybiIKK21zZ3N0ciAiS2FubiBkZW4gYWt0dWVsbGVuIFp1c3RhbmQgZGVzIEFyYmVpdHN2ZXJ6ZWljaG5pc3NlcyBuaWNodCBzcGVpY2hlcm4iCiAKICM6IGdpdC1zdGFzaC5zaDoxNDAKIG1zZ2lkICJObyBjaGFuZ2VzIHNlbGVjdGVkIgpAQCAtOTczMywxMSArMTAyMDIsMTYgQEAKIAogIzogZ2l0LXN0YXNoLnNoOjE0MwogbXNnaWQgIkNhbm5vdCByZW1vdmUgdGVtcG9yYXJ5IGluZGV4IChjYW4ndCBoYXBwZW4pIgotbXNnc3RyICJLYW5uIHRlbXBvcsOkcmUgQmVyZWl0c3RlbGx1bmcgbmljaHQgbMO2c2NoZW4gKGthbm4gbmljaHQgcGFzc2llcmVuKSIKK21zZ3N0ciAiS2FubiB0ZW1wb3LDpHJlIFN0YWdpbmctQXJlYSBuaWNodCBsw7ZzY2hlbiAoa2FubiBuaWNodCBwYXNzaWVyZW4pIgogCiAjOiBnaXQtc3Rhc2guc2g6MTU2CiBtc2dpZCAiQ2Fubm90IHJlY29yZCB3b3JraW5nIHRyZWUgc3RhdGUiCi1tc2dzdHIgIkthbm4gWnVzdGFuZCBkZXMgQXJiZWl0c2JhdW1lcyBuaWNodCBhdWZ6ZWljaG5lbiIKK21zZ3N0ciAiS2FubiBadXN0YW5kIGRlcyBBcmJlaXRzdmVyemVpY2huaXNzZXMgbmljaHQgYXVmemVpY2huZW4iCisKKyM6IGdpdC1zdGFzaC5zaDoxOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgJHJlZl9zdGFzaCB3aXRoICR3X2NvbW1pdCIKK21zZ3N0ciAiS2FubiAkcmVmX3N0YXNoIG5pY2h0IG1pdCAkd19jb21taXQgYWt0dWFsaXNpZXJlbi4iCiAKICMuIFRSQU5TTEFUT1JTOiAkb3B0aW9uIGlzIGFuIGludmFsaWQgb3B0aW9uLCBsaWtlCiAjLiBgLS1ibGFoLWJsYWgnLiBUaGUgNyBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKQEAgLTk3NDksNyArMTAyMjMsNyBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjIwMgorIzogZ2l0LXN0YXNoLnNoOjI0MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCkBAIC05NzU5LDEyMiArMTAyMzMsMTQwIEBACiAiICAgICAgICBVbSBlaW5lIEJlc2NocmVpYnVuZyBhbnp1Z2ViZW4sIGJlbnV0emVuIFNpZSBcImdpdCBzdGFzaCBzYXZlIC0tICIKICInJG9wdGlvbidcIiIKIAotIzogZ2l0LXN0YXNoLnNoOjIyMworIzogZ2l0LXN0YXNoLnNoOjI2MgogbXNnaWQgIk5vIGxvY2FsIGNoYW5nZXMgdG8gc2F2ZSIKIG1zZ3N0ciAiS2VpbmUgbG9rYWxlbiDDhG5kZXJ1bmdlbiB6dW0gU3BlaWNoZXJuIgogCi0jOiBnaXQtc3Rhc2guc2g6MjI3CisjOiBnaXQtc3Rhc2guc2g6MjY4Cittc2dpZCAiIgorIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKKyJzdGFzaCBzYXZlOiIKK21zZ3N0ciAiIgorIkRpZSBmb2xnZW5kZW4gdW5iZW9iYWNodGV0ZW4gRGF0ZWllbiB3w7xyZGVuIE5JQ0hUIGdlc3BlaWNoZXJ0IHdlcmRlbixcbiIKKyJtw7xzc2VuIGFiZXIgZHVyY2ggXCJzdGFzaCBzYXZlXCIgZW50ZmVybnQgd2VyZGVuOiIKKworIzogZ2l0LXN0YXNoLnNoOjI3MAorbXNnaWQgIiIKKyJBYm9ydGluZy4gQ29uc2lkZXIgdXNpbmcgZWl0aGVyIHRoZSAtLWZvcmNlIG9yIC0taW5jbHVkZS11bnRyYWNrZWQgb3B0aW9uLiIKK21zZ3N0ciAiIgorIkFiZ2Vicm9jaGVuLiBCZW51dHplbiBTaWUgZW50d2VkZXIgZGllIE9wdGlvbiAtLWZvcmNlIG9kZXIgLS1pbmNsdWRlLSIKKyJ1bnRyYWNrZWQuIgorCisjOiBnaXQtc3Rhc2guc2g6Mjc0CiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIkthbm4gXCJzdGFzaFwiIG5pY2h0IGluaXRpYWxpc2llcmVuIgogCi0jOiBnaXQtc3Rhc2guc2g6MjM1CisjOiBnaXQtc3Rhc2guc2g6Mjc4CiBtc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIgogbXNnc3RyICJLYW5uIGRlbiBha3R1ZWxsZW4gU3RhdHVzIG5pY2h0IHNwZWljaGVybiIKIAotIzogZ2l0LXN0YXNoLnNoOjI1MworIzogZ2l0LXN0YXNoLnNoOjI5NgogbXNnaWQgIkNhbm5vdCByZW1vdmUgd29ya3RyZWUgY2hhbmdlcyIKLW1zZ3N0ciAiS2FubiDDhG5kZXJ1bmdlbiBhbSBBcmJlaXRzYmF1bSBuaWNodCBsw7ZzY2hlbiIKK21zZ3N0ciAiS2FubiDDhG5kZXJ1bmdlbiBpbSBBcmJlaXRzdmVyemVpY2huaXMgbmljaHQgbMO2c2NoZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDozNTIKKyM6IGdpdC1zdGFzaC5zaDozOTUKIG1zZ2lkICJObyBzdGFzaCBmb3VuZC4iCiBtc2dzdHIgIktlaW4gXCJzdGFzaFwiIGdlZnVuZGVuLiIKIAotIzogZ2l0LXN0YXNoLnNoOjM1OQorIzogZ2l0LXN0YXNoLnNoOjQwMgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKLW1zZ3N0ciAiWnUgdmllbGUgUmV2aXNpb25lbiBhbmdlZ2ViZW46ICRSRVYiCittc2dzdHIgIlp1IHZpZWxlIENvbW1pdHMgYW5nZWdlYmVuOiAkUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6MzY1CisjOiBnaXQtc3Rhc2guc2g6NDA4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2UgaXN0IGtlaW5lIGfDvGx0aWdlIFJlZmVyZW56IgogCi0jOiBnaXQtc3Rhc2guc2g6MzkzCisjOiBnaXQtc3Rhc2guc2g6NDM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoLWxpa2UgY29tbWl0IgotbXNnc3RyICInJGFyZ3MnIGlzdCBrZWluZSBcInN0YXNoXCItYXJ0aWdlIFZlcnNpb24iCittc2dzdHIgIickYXJncycgaXN0IGtlaW4gXCJzdGFzaFwiLWFydGlnZXIgQ29tbWl0IgogCi0jOiBnaXQtc3Rhc2guc2g6NDA0CisjOiBnaXQtc3Rhc2guc2g6NDQ3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAiJyRhcmdzJyBpc3Qga2VpbmUgXCJzdGFzaFwiLVJlZmVyZW56IgogCi0jOiBnaXQtc3Rhc2guc2g6NDEyCisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCi1tc2dzdHIgInVuZsOkaGlnIGRpZSBCZXJlaXRzdGVsbHVuZyB6dSBha3R1YWxpc2llcmVuIgorbXNnc3RyICJ1bmbDpGhpZyBkaWUgU3RhZ2luZy1BcmVhIHp1IGFrdHVhbGlzaWVyZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTYKKyM6IGdpdC1zdGFzaC5zaDo0NTkKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCi1tc2dzdHIgIiIKLSJLYW5uIFwic3Rhc2hcIiBuaWNodCBhbndlbmRlbiwgc29sYW5nIGVpbmUgWnVzYW1tZW5mw7xocnVuZyBpbSBHYW5nZSBpc3QiCittc2dzdHIgIkthbm4gXCJzdGFzaFwiIG5pY2h0IGFud2VuZGVuLCBzb2xhbmcgZWluIE1lcmdlIGltIEdhbmdlIGlzdCIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNAorIzogZ2l0LXN0YXNoLnNoOjQ2NwogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCi1tc2dzdHIgIktvbmZsaWt0ZSBpbiBkZXIgQmVyZWl0c3RlbGx1bmcuIFZlcnN1Y2hlbiBTaWUgZXMgb2huZSAtLWluZGV4LiIKK21zZ3N0ciAiS29uZmxpa3RlIGluIGRlciBTdGFnaW5nLUFyZWEuIFZlcnN1Y2hlbiBTaWUgZXMgb2huZSAtLWluZGV4LiIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNgorIzogZ2l0LXN0YXNoLnNoOjQ2OQogbXNnaWQgIkNvdWxkIG5vdCBzYXZlIGluZGV4IHRyZWUiCi1tc2dzdHIgIktvbm50ZSBCZXJlaXRzdGVsbHVuZ3NiYXVtIG5pY2h0IHNwZWljaGVybiIKK21zZ3N0ciAiS29ubnRlIFN0YWdpbmctQXJlYS1WZXJ6ZWljaG5pcyBuaWNodCBzcGVpY2hlcm4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjAKKyM6IGdpdC1zdGFzaC5zaDo1MDMKIG1zZ2lkICJDYW5ub3QgdW5zdGFnZSBtb2RpZmllZCBmaWxlcyIKLW1zZ3N0ciAiS2FubiBnZcOkbmRlcnRlIERhdGVpZW4gbmljaHQgYXVzIGRlciBCZXJlaXRzdGVsbHVuZyBoZXJhdXNuZWhtZW4iCittc2dzdHIgIkthbm4gZ2XDpG5kZXJ0ZSBEYXRlaWVuIG5pY2h0IGF1cyBkZXIgU3RhZ2luZy1BcmVhIGVudGZlcm5lbiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUxOAogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKLW1zZ3N0ciAiQmVyZWl0c3RlbGx1bmcgd3VyZGUgbmljaHQgYXVzZ2VsYWdlcnQuIgorbXNnc3RyICJTdGFnaW5nLUFyZWEgd3VyZGUgbmljaHQgYXVzIGRlbSBTdGFzaCB6dXLDvGNrZ2VsYWRlbi4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTIKKyM6IGdpdC1zdGFzaC5zaDo1MzUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRyb3BwZWQgJHtSRVZ9ICgkcykiCiBtc2dzdHIgIkdlbMO2c2NodCAke1JFVn0gKCRzKSIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MworIzogZ2l0LXN0YXNoLnNoOjUzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHtSRVZ9OiBDb3VsZCBub3QgZHJvcCBzdGFzaCBlbnRyeSIKIG1zZ3N0ciAiJHtSRVZ9OiBLb25udGUgXCJzdGFzaFwiLUVpbnRyYWcgbmljaHQgbMO2c2NoZW4iCiAKLSM6IGdpdC1zdGFzaC5zaDo1MDAKKyM6IGdpdC1zdGFzaC5zaDo1NDMKIG1zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCi1tc2dzdHIgIktlaW4gWndlaWduYW1lIHNwZXppZml6aWVydCIKK21zZ3N0ciAiS2VpbiBCcmFuY2huYW1lIHNwZXppZml6aWVydCIKIAotIzogZ2l0LXN0YXNoLnNoOjU3MQorIzogZ2l0LXN0YXNoLnNoOjYxNQogbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIG1zZ3N0ciAiKFp1ciBXaWVkZXJoZXJzdGVsbHVuZyBnZWJlbiBTaWUgXCJnaXQgc3Rhc2ggYXBwbHlcIiBlaW4pIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjk1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc3RyaXAgb25lIGNvbXBvbmVudCBvZmYgdXJsICckcmVtb3RldXJsJyIKIG1zZ3N0ciAiS2FubiBlaW5lIEtvbXBvbmVudGUgdm9uIFVSTCAnJHJlbW90ZXVybCcgbmljaHQgZXh0cmFoaWVyZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjOiBnaXQtc3VibW9kdWxlLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiTm8gc3VibW9kdWxlIG1hcHBpbmcgZm91bmQgaW4gLmdpdG1vZHVsZXMgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIktlaW5lIFVudGVycHJvamVrdC1adW9yZG51bmcgaW4gLmdpdG1vZHVsZXMgZsO8ciBQZmFkICckc21fcGF0aCcgZ2VmdW5kZW4iCittc2dzdHIgIktlaW5lIFN1Ym1vZHVsLVp1b3JkbnVuZyBpbiAuZ2l0bW9kdWxlcyBmw7xyIFBmYWQgJyRzbV9wYXRoJyBnZWZ1bmRlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDbG9uZSBvZiAnJHVybCcgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGZhaWxlZCIKLW1zZ3N0ciAiS2xvbmVuIHZvbiAnJHVybCcgaW4gVW50ZXJwcm9qZWt0LVBmYWQgJyRzbV9wYXRoJyBmZWhsZ2VzY2hsYWdlbiIKK21zZ3N0ciAiS2xvbmVuIHZvbiAnJHVybCcgaW4gU3VibW9kdWwtUGZhZCAnJHNtX3BhdGgnIGZlaGxnZXNjaGxhZ2VuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjI1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKLW1zZ3N0ciAiIgotIkdpdC1WZXJ6ZWljaG5pcyAnJGEnIGlzdCBUZWlsIGRlcyBVbnRlcnByb2pla3QtUGZhZGVzICckYicsIG9kZXIgdW1nZWtlaHJ0IgorbXNnc3RyICJHaXQtVmVyemVpY2huaXMgJyRhJyBpc3QgVGVpbCBkZXMgU3VibW9kdWwtUGZhZGVzICckYicsIG9kZXIgdW1nZWtlaHJ0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM0OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKK21zZ2lkICJSZWxhdGl2ZSBwYXRoIGNhbiBvbmx5IGJlIHVzZWQgZnJvbSB0aGUgdG9wbGV2ZWwgb2YgdGhlIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAiIgorIlJlbGF0aXZlIFBmYWRlIGvDtm5uZW4gbnVyIHZvbiBkZXIgb2JlcnN0ZW4gRWJlbmUgZGVzIEFyYmVpdHN2ZXJ6ZWljaG5pc3NlcyAiCisiYmVudXR6dCB3ZXJkZW4uIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQxMwogIywgc2gtZm9ybWF0CiBtc2dpZCAicmVwbyBVUkw6ICckcmVwbycgbXVzdCBiZSBhYnNvbHV0ZSBvciBiZWdpbiB3aXRoIC4vfC4uLyIKIG1zZ3N0ciAicmVwbyBVUkw6ICckcmVwbycgbXVzcyBhYnNvbHV0IHNlaW4gb2RlciBtaXQgLi98Li4vIGJlZ2lubmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGluZGV4IgotbXNnc3RyICInJHNtX3BhdGgnIGV4aXN0aWVydCBiZXJlaXRzIGluIGRlciBCZXJlaXRzdGVsbHVuZyIKK21zZ3N0ciAiJyRzbV9wYXRoJyBpc3QgYmVyZWl0cyB6dW0gQ29tbWl0IHZvcmdlbWVya3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzcwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQzNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBmb2xsb3dpbmcgcGF0aCBpcyBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCkBAIC05ODg1LDI1ICsxMDM3NywyNCBAQAogIiRzbV9wYXRoXG4iCiAiQmVudXR6ZW4gU2llIC1mIHdlbm4gU2llIGRpZXNlbiB3aXJrbGljaCBoaW56dWbDvGdlbiBtw7ZjaHRlbi4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGV4aXN0aW5nIHJlcG8gYXQgJyRzbV9wYXRoJyB0byB0aGUgaW5kZXgiCi1tc2dzdHIgIiIKLSJGw7xnZSBleGlzdGllcmVuZGVzIFByb2pla3RhcmNoaXYgaW4gJyRzbV9wYXRoJyBkZXIgQmVyZWl0c3RlbGx1bmcgaGluenUuIgorbXNnc3RyICJGw7xnZSBleGlzdGllcmVuZGVzIFJlcG9zaXRvcnkgaW4gJyRzbV9wYXRoJyBkZXIgU3RhZ2luZy1BcmVhIGhpbnp1LiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDU0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYSB2YWxpZCBnaXQgcmVwbyIKLW1zZ3N0ciAiJyRzbV9wYXRoJyBleGlzdGllcnQgYmVyZWl0cyB1bmQgaXN0IGtlaW4gZ8O8bHRpZ2VzIEdpdC1Qcm9qZWt0YXJjaGl2IgorbXNnc3RyICInJHNtX3BhdGgnIGV4aXN0aWVydCBiZXJlaXRzIHVuZCBpc3Qga2VpbiBnw7xsdGlnZXMgR2l0LVJlcG9zaXRvcnkiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQSBnaXQgZGlyZWN0b3J5IGZvciAnJHNtX25hbWUnIGlzIGZvdW5kIGxvY2FsbHkgd2l0aCByZW1vdGUocyk6IgogbXNnc3RyICIiCi0iRWluIEdpdC1WZXJ6ZWljaG5pcyBmw7xyICckc21fbmFtZScgd3VyZGUgbG9rYWwgZ2VmdW5kZW4gbWl0IGRlbiBGZXJuYXJjaGl2IgotIihlbik6IgorIkVpbiBHaXQtVmVyemVpY2huaXMgZsO8ciAnJHNtX25hbWUnIHd1cmRlIGxva2FsIGdlZnVuZGVuIG1pdCBkZW4gUmVtb3RlLSIKKyJSZXBvc2l0b3JpZXM6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJZiB5b3Ugd2FudCB0byByZXVzZSB0aGlzIGxvY2FsIGdpdCBkaXJlY3RvcnkgaW5zdGVhZCBvZiBjbG9uaW5nIGFnYWluIGZyb20iCkBAIC05OTExLDE1ICsxMDQwMiwxNSBAQAogIldlbm4gU2llIGRpZXNlcyBsb2thbGUgR2l0LVZlcnplaWNobmlzIHdpZWRlcnZlcndlbmRlbiBtw7ZjaHRlc3QsIGFuc3RhdHQgIgogImVybmV1dCB6dSBrbG9uZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCiBtc2dzdHIgIiIKICJiZW51dHplbiBTaWUgZGllIE9wdGlvbiAnLS1mb3JjZScuIFdlbm4gZGFzIGxva2FsZSBHaXQtVmVyemVpY2huaXMgbmljaHQgZGFzICIKLSJrb3JyZWt0ZSBQcm9qZWt0YXJjaGl2IGlzdCIKKyJrb3JyZWt0ZSBSZXBvc2l0b3J5IGlzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgpAQCAtOTkyOCwyMTYgKzEwNDE5LDMwMyBAQAogIm9kZXIgU2llIHNpY2ggdW5zaWNoZXIgc2luZCwgd2FzIGRhcyBiZWRldXRldCwgd8OkaGxlbiBTaWUgZWluZW4gYW5kZXJlbiAiCiAiTmFtZW5taXQgZGVyIE9wdGlvbiAnLS1uYW1lJy4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDA1CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiUmVhY3RpdmF0aW5nIGxvY2FsIGdpdCBkaXJlY3RvcnkgZm9yIHN1Ym1vZHVsZSAnJHNtX25hbWUnLiIKLW1zZ3N0ciAiUmVha3RpdmllcmUgbG9rYWxlcyBHaXQtVmVyemVpY2huaXMgZsO8ciBVbnRlcnByb2pla3QgJyRzbV9uYW1lJy4iCittc2dzdHIgIlJlYWt0aXZpZXJlIGxva2FsZXMgR2l0LVZlcnplaWNobmlzIGbDvHIgU3VibW9kdWwgJyRzbV9uYW1lJy4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDE3CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0IHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgotbXNnc3RyICJVbmbDpGhpZyBVbnRlcnByb2pla3QgJyRzbV9wYXRoJyBhdXN6dWNoZWNrZW4iCittc2dzdHIgIlVuZsOkaGlnIFN1Ym1vZHVsICckc21fcGF0aCcgYXVzenVjaGVja2VuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQyMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODYKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBhZGQgc3VibW9kdWxlICckc21fcGF0aCciCi1tc2dzdHIgIkhpbnp1ZsO8Z2VuIHZvbiBVbnRlcnByb2pla3QgJyRzbV9wYXRoJyBmZWhsZ2VzY2hsYWdlbiIKK21zZ3N0ciAiSGluenVmw7xnZW4gdm9uIFN1Ym1vZHVsICckc21fcGF0aCcgZmVobGdlc2NobGFnZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgotbXNnc3RyICJGZWhsZXIgYmVpbSBFaW50cmFnZW4gdm9uIFVudGVycHJvamVrdCAnJHNtX3BhdGgnIGluIGRpZSBLb25maWd1cmF0aW9uLiIKK21zZ3N0ciAiRmVobGVyIGJlaW0gRWludHJhZ2VuIHZvbiBTdWJtb2R1bCAnJHNtX3BhdGgnIGluIGRpZSBLb25maWd1cmF0aW9uLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NzQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTM5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiQmV0cmV0ZSAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIkJldHJldGUgJyRwcmVmaXgkZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN0b3BwaW5nIGF0ICckc21fcGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgotbXNnc3RyICJTdG9wcGUgYmVpICckc21fcGF0aCc7IFNrcmlwdCBnYWIgbmljaHQtTnVsbCBTdGF0dXMgenVyw7xjay4iCittc2dpZCAiU3RvcHBpbmcgYXQgJyRwcmVmaXgkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKK21zZ3N0ciAiU3RvcHBlIGJlaSAnJHByZWZpeCRkaXNwbGF5cGF0aCc7IFNrcmlwdCBnYWIgbmljaHQtTnVsbCBTdGF0dXMgenVyw7xjay4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwMAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgotbXNnc3RyICJLZWluZSBVUkwgZsO8ciBVbnRlcnByb2pla3QtUGZhZCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIGdlZnVuZGVuIgorbXNnaWQgIk5vIHVybCBmb3VuZCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dzdHIgIktlaW5lIFVSTCBmw7xyIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgaW4gLmdpdG1vZHVsZXMgZ2VmdW5kZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQxCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiRmVobGVyIGJlaW0gRWludHJhZ2VuIGRlciBVUkwgZsO8ciBVbnRlcnByb2pla3QtUGZhZCAnJHNtX3BhdGgnIGluIGRpZSIKLSIgS29uZmlndXJhdGlvbi4iCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJGZWhsZXIgYmVpbSBFaW50cmFnZW4gZGVyIFVSTCBmw7xyIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgaW4gZGllICIKKyJLb25maWd1cmF0aW9uLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjExCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJVbnRlcnByb2pla3QgJyRuYW1lJyAoJHVybCkgZsO8ciBQZmFkICckc21fcGF0aCcgaW4gZGllIEtvbmZpZ3VyYXRpb24gIgotImVpbmdldHJhZ2VuIgorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICIiCisiU3VibW9kdWwgJyRuYW1lJyAoJHVybCkgZsO8ciBQZmFkICckZGlzcGxheXBhdGgnIGluIGRpZSBLb25maWd1cmF0aW9uICIKKyJlaW5nZXRyYWdlbi4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJGZWhsZXIgYmVpIMOEbmRlcnVuZyBkZXMgQWt0dWFsaXNpZXJ1bmdzbW9kdXMgZsO8ciBVbnRlcnByb2pla3QtUGZhZCAiCi0iJyRzbV9wYXRoJyBpbiBkZXIgS29uZmlndXJhdGlvbi4iCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIkZlaGxlciBiZWkgw4RuZGVydW5nIGRlcyBBa3R1YWxpc2llcnVuZ3Ntb2R1cyBmw7xyIFN1Ym1vZHVsLVBmYWQgIgorIickZGlzcGxheXBhdGgnIGluIGRlciBLb25maWd1cmF0aW9uLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCi1tc2dzdHIgIlZlcndlbmRlbiBTaWUgJy4nIHdlbm4gU2llIHdpcmtsaWNoIGFsbGUgVW50ZXJwcm9qZWt0ZVxuIgorbXNnc3RyICIiCisiVmVyd2VuZGVuIFNpZSAnLicgd2VubiBTaWUgd2lya2xpY2ggYWxsZSBTdWJtb2R1bGVcbiIKICJkZWluaXRpYWxpc2llcmVuIG3DtmNodGVuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjczCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKLW1zZ3N0ciAiQXJiZWl0c2JhdW0gZGVzIFVudGVycHJvamVrdHMgaW4gJyRzbV9wYXRoJyBlbnRow6RsdCBlaW4gLmdpdC1WZXJ6ZWljaG5pcyIKK21zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCittc2dzdHIgIiIKKyJBcmJlaXRzdmVyemVpY2huaXMgZGVzIFN1Ym1vZHVscyBpbiAnJGRpc3BsYXlwYXRoJyBlbnRow6RsdCBlaW4gLmdpdC0iCisiVmVyemVpY2huaXMiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKIG1zZ3N0ciAiIgotIihiZW51dHplbiBTaWUgJ3JtIC1yZicgd2VubiBTaWUgZGllc2VzIFVudGVycHJvamVrdCB3aXJrbGljaCBtaXRzYW10XG4iCisiKGJlbnV0emVuIFNpZSAncm0gLXJmJyB3ZW5uIFNpZSBkaWVzZXMgU3VibW9kdWwgd2lya2xpY2ggbWl0c2FtdFxuIgogInNlaW5lciBIaXN0b3JpZSBsw7ZzY2hlbiBtw7ZjaHRlbikiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgogbXNnc3RyICIiCi0iQXJiZWl0c2JhdW0gdm9uIFVudGVycHJvamVrdCBpbiAnJHNtX3BhdGgnIGVudGjDpGx0IGxva2FsZSDDhG5kZXJ1bmdlbjsgIgorIkFyYmVpdHN2ZXJ6ZWljaG5pcyB2b24gU3VibW9kdWwgaW4gJyRkaXNwbGF5cGF0aCcgZW50aMOkbHQgbG9rYWxlIMOEbmRlcnVuZ2VuOyAiCiAidmVyd2VuZGVuIFNpZSAnLWYnIHVtIGRpZXNlIHp1IHZlcndlcmZlbiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgotbXNnc3RyICJWZXJ6ZWljaG5pcyAnJHNtX3BhdGgnIGJlcmVpbmlndC4iCittc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIlZlcnplaWNobmlzICckZGlzcGxheXBhdGgnIGJlcmVpbmlndC4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCciCi1tc2dzdHIgIktvbm50ZSBBcmJlaXRzYmF1bSBkZXMgVW50ZXJwcm9qZWt0ZXMgaW4gJyRzbV9wYXRoJyBuaWNodCBsw7ZzY2hlbi4iCittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIgorbXNnc3RyICIiCisiS29ubnRlIEFyYmVpdHN2ZXJ6ZWljaG5pcyBkZXMgU3VibW9kdWxzIGluICckZGlzcGxheXBhdGgnIG5pY2h0IGzDtnNjaGVuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS29ubnRlIGtlaW4gbGVlcmVzIFZlcnplaWNobmlzIGbDvHIgVW50ZXJwcm9qZWt0IGluICckc21fcGF0aCcgZXJzdGVsbGVuLiIKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJLb25udGUga2VpbiBsZWVyZXMgVmVyemVpY2huaXMgZsO8ciBTdWJtb2R1bCBpbiAnJGRpc3BsYXlwYXRoJyBlcnN0ZWxsZW4uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVW50ZXJwcm9qZWt0ICckbmFtZScgKCR1cmwpIGbDvHIgUGZhZCAnJHNtX3BhdGgnIHd1cmRlIGF1cyBkZXIgIgotIktvbmZpZ3VyYXRpb24gZW50ZmVybnQuIgorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJTdWJtb2R1bCAnJG5hbWUnICgkdXJsKSBmw7xyIFBmYWQgJyRkaXNwbGF5cGF0aCcgd3VyZGUgYXVzIGRlciBLb25maWd1cmF0aW9uICIKKyJlbnRmZXJudC4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCi0iVW50ZXJwcm9qZWt0LVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgaXN0IG5pY2h0IGluaXRpYWxpc2llcnQuXG4iCisiU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBpc3QgbmljaHQgaW5pdGlhbGlzaWVydC5cbiIKICJWaWVsbGVpY2h0IG3DtmNodGVuIFNpZSAndXBkYXRlIC0taW5pdCcgYmVudXR6ZW4/IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MjQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIktvbm50ZSBha3R1ZWxsZSBSZXZpc2lvbiBpbiBVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyBuaWNodCBmaW5kZW4uIgorbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktvbm50ZSBha3R1ZWxsZW4gQ29tbWl0IGluIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgbmljaHQgZmluZGVuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODMzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS29ubnRlIGluIFVudGVycHJvamVrdC1QZmFkICckc21fcGF0aCcgbmljaHQgYW5mb3JkZXJuIgorbXNnc3RyICJLb25udGUgXCJmZXRjaFwiIGluIFN1Ym1vZHVsLVBmYWQgJyRzbV9wYXRoJyBuaWNodCBhdXNmw7xocmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiS29ubnRlIGluIFVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnIG5pY2h0IGFuZm9yZGVybiIKK21zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIktvbm50ZSBcImZldGNoXCIgaW4gU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBuaWNodCBhdXNmw7xocmVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzEKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiTmV1YXVmYmF1IHZvbiAnJHNoYTEnIGluIFVudGVycHJvamVrdC1QZmFkICckcHJlZml4JHNtX3BhdGgnIG5pY2h0IG3DtmdsaWNoIgorbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiUmViYXNlIGF1ZiAnJHNoYTEnIGluIFN1Ym1vZHVsLVBmYWQgJyRkaXNwbGF5cGF0aCcgbmljaHQgbcO2Z2xpY2giCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkyCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IHJlYmFzZWQgaW50byAnJHNoYTEnIgotbXNnc3RyICJVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJzogbmV1IGF1ZmdlYmF1dCBpbiAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKK21zZ3N0ciAiU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJzogUmViYXNlIGF1ZiAnJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJNZXJnZSB2b24gJyRzaGExJyBpbiBTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnIGZlaGxnZXNjaGxhZ2VuIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3OAorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgorbXNnc3RyICJTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnOiB6dXNhbW1lbmdlZsO8aHJ0IGluICckc2hhMSciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiRXhlY3V0aW9uIG9mICckY29tbWFuZCAkc2hhMScgZmFpbGVkIGluIHN1Ym1vZHVsZSAgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKIG1zZ3N0ciAiIgotIlp1c2FtbWVuZsO8aHJ1bmcgdm9uICckc2hhMScgaW4gVW50ZXJwcm9qZWt0LVBmYWQgJyRwcmVmaXgkc21fcGF0aCcgZmVobGdlc2NobGFnZW4iCisiQXVzZsO8aHJ1bmcgdm9uICckY29tbWFuZCAkc2hhMScgaW4gU3VibW9kdWwtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyAiCisiZmVobGdlc2NobGFnZW4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjg4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgotbXNnc3RyICJVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJzogenVzYW1tZW5nZWbDvGhydCBpbiAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgorbXNnc3RyICJTdWJtb2R1bC1QZmFkICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJLb25udGUgJyRzaGExJyBpbiBVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyBuaWNodCBhdXNjaGVja2VuLiIKK21zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS29ubnRlICckc2hhMScgaW4gU3VibW9kdWwtUGZhZCAnJGRpc3BsYXlwYXRoJyBuaWNodCBhdXNjaGVja2VuLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODkwCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKLW1zZ3N0ciAiVW50ZXJwcm9qZWt0LVBmYWQ6ICckcHJlZml4JHNtX3BhdGgnOiAnJHNoYTEnIGF1c2dlY2hlY2t0IgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICJTdWJtb2R1bC1QZmFkOiAnJGRpc3BsYXlwYXRoJzogJyRzaGExJyBhdXNnZWNoZWNrdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTE3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJGZWhsZXIgYmVpIFJla3Vyc2lvbiBpbiBVbnRlcnByb2pla3QtUGZhZCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJGZWhsZXIgYmVpIFJla3Vyc2lvbiBpbiBTdWJtb2R1bC1QZmFkICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI1CiBtc2dpZCAiVGhlIC0tY2FjaGVkIG9wdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoZSAtLWZpbGVzIG9wdGlvbiIKIG1zZ3N0ciAiIgogIkRpZSBPcHRpb25lbiAtLWNhY2hlZCB1bmQgLS1maWxlcyBrw7ZubmVuIG5pY2h0IGdlbWVpbnNhbSB2ZXJ3ZW5kZXQgd2VyZGVuLiIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgInVuZXJ3YXJ0ZXRlciBNb2R1cyAkbW9kX2RzdCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKLW1zZ3N0ciAiICBXYXJudW5nOiAkbmFtZSBiZWluaGFsdGV0IG5pY2h0IFZlcnNpb24gJHNoYTFfc3JjIgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKK21zZ3N0ciAiICBXYXJudW5nOiAkZGlzcGxheV9uYW1lIGJlaW5oYWx0ZXQgbmljaHQgQ29tbWl0ICRzaGExX3NyYyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCi1tc2dzdHIgIiAgV2FybnVuZzogJG5hbWUgYmVpbmhhbHRldCBuaWNodCBWZXJzaW9uICRzaGExX2RzdCIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCittc2dzdHIgIiAgV2FybnVuZzogJGRpc3BsYXlfbmFtZSBiZWluaGFsdGV0IG5pY2h0IENvbW1pdCAkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKIG1zZ3N0ciAiIgotIiAgV2FybnVuZzogJG5hbWUgYmVpbmhhbHRldCBuaWNodCBkaWUgVmVyc2lvbmVuICRzaGExX3NyYyB1bmQgJHNoYTFfZHN0IgorIiAgV2FybnVuZzogJGRpc3BsYXlfbmFtZSBiZWluaGFsdGV0IG5pY2h0IGRpZSBDb21taXRzICRzaGExX3NyYyB1bmQgJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNwogbXNnaWQgImJsb2IiCiBtc2dzdHIgIkJsb2IiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1CiBtc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCi1tc2dzdHIgIlVudGVycHJvamVrdGUgZ2XDpG5kZXJ0LCBhYmVyIG5pY2h0IGFrdHVhbGlzaWVydDoiCittc2dzdHIgIlN1Ym1vZHVsZSBnZcOkbmRlcnQsIGFiZXIgbmljaHQgYWt0dWFsaXNpZXJ0OiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTcKIG1zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgotbXNnc3RyICLDhG5kZXJ1bmdlbiBpbiBVbnRlcnByb2pla3QgenVtIEVpbnRyYWdlbjoiCittc2dzdHIgIsOEbmRlcnVuZ2VuIGluIFN1Ym1vZHVsIHp1bSBDb21taXR0ZW46IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJGZWhsZXIgYmVpIFJla3Vyc2lvbiBpbiBVbnRlcnByb2pla3QtUGZhZCAnJHNtX3BhdGgnIgorbXNnc3RyICJGZWhsZXIgYmVpIFJla3Vyc2lvbiBpbiBTdWJtb2R1bC1QZmFkICckc21fcGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTIxNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJTeW5jaHJvbmlzaWVyZSBVbnRlcnByb2pla3QtVVJMIGbDvHIgJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiU3luY2hyb25pc2llcmUgU3VibW9kdWwtVVJMIGbDvHIgJyRkaXNwbGF5cGF0aCciCisKKyN+IG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorI34gbXNnc3RyICIiCisjfiAiICAoYmVoZWJlbiBTaWUgZGllIEtvbmZsaWt0ZSB1bmQgZsO8aHJlbiBTaWUgZGFubiBcImdpdCBhbSAtLXJlc29sdmVkXCIgIgorI34gImF1cykiCisKKyN+IG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgorI34gbXNnc3RyICIgIChhbGxlIEtvbmZsaWt0ZSBiZWhvYmVuOiBmw7xocmVuIFNpZSBcImdpdCBjb21taXRcIiBhdXMpIgorCisjfiBtc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgorI34gbXNnc3RyICJNZWhyIGFscyAlZCBcIlRyZWVcIi1PYmpla3RlIGFuZ2VnZWJlbjogJyVzJyIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKKyN+IG1zZ3N0ciAiU2llIGvDtm5uZW4gLS1uby1mZiBuaWNodCBtaXQgLS1mZi0tb25seSBrb21iaW5pZXJlbi4iCisKKyN+IG1zZ2lkICIiCisjfiAic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorI34gIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyAiCisjfiAiaGlzdG9yeSkiCisjfiBtc2dzdHIgIiIKKyN+ICJTdWJtb2R1bCAnJXMnIChvZGVyIGVpbiBnZXNjaGFjaHRlbHRlcyBTdWJtb2R1bCBoaWVydm9uKSB2ZXJ3ZW5kZXRcbiIKKyN+ICJlaW4gLmdpdC1WZXJ6ZWljaG5pcyAoYmVudXR6ZW4gU2llICdybSAtcmYnIHdlbm4gU2llIGRpZXNlcyB3aXJrbGljaCAiCisjfiAibWl0c2FtdFxuIgorI34gInNlaW5lciBIaXN0b3JpZSBsw7ZzY2hlbiBtw7ZjaHRlbikiCisKKyN+IG1zZ2lkICIiCisjfiAiJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisjfiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKKyN+IG1zZ3N0ciAiIgorI34gIiclcycgaGF0IHp1bSBDb21taXQgdm9yZ2VtZXJrdGUgw4RuZGVydW5nZW5cbiIKKyN+ICIoYmVudXR6ZW4gU2llIC0tY2FjaGVkIHVtIGRpZSBEYXRlaSB6dSBiZWhhbHRlbiwgb2RlciAtZiB1bSBkaWUgIgorI34gIkVudGZlcm51bmcgenUgZXJ6d2luZ2VuKSIKKworI34gbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKKyN+IG1zZ3N0ciAiIgorI34gInplaWd0IENvbW1pdHMsIGJlaSBkZW5lbiBrZWluIEVsdGVybi1Db21taXQgdm9yIHNlaW5lbSBLaW5kLUNvbW1pdCBrb21tdCIKKworI34gbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgorI34gbXNnc3RyICJ6ZWlndCBSZWZlcmVueiB2b24gSEVBRCIKKworI34gbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKKyN+IG1zZ3N0ciAiS29ubnRlIFwiZmV0Y2hcIiBpbiBTdWJtb2R1bC1QZmFkICckcHJlZml4JHNtX3BhdGgnIG5pY2h0IGF1c2bDvGhyZW4iCisKKyN+IG1zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorI34gbXNnc3RyICJGZWhsZXIgYmVpIFJla3Vyc2lvbiBpbiBTdWJtb2R1bC1QZmFkICckcHJlZml4JHNtX3BhdGgnIgorCisjfiBtc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCisjfiBtc2dzdHIgIiIKKyN+ICJFcyBkYXVlcnRlICUuMmYgU2VrdW5kZW4gZGllIHVuYmVvYmFjaHRldGVuIERhdGVpZW4genUgYmVzdGltbWVuLidzdGF0dXMgLSIKKyN+ICJ1bm8nIgorCisjfiBtc2dpZCAibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZCIKKyN+IG1zZ3N0ciAia8O2bm50ZSBkYXMgYmVzY2hsZXVuaWdlbiwgYWJlciBTaWUgbcO8c3NlbiBkYXJhdWYgYWNodGVuLCBuZXVlIgorCisjfiBtc2dpZCAibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKKyN+IG1zZ3N0ciAiRGF0ZWllbiBzZWxic3RzdMOkbmRpZyBoaW56dXp1ZsO8Z2VuIChzaWVoZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgorCisjfiBtc2dpZCAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgorI34gbXNnc3RyICIiCisjfiAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dICIKKyN+ICJbPFZlcnNpb25zaWRlbnRpZmlrYXRpb24+Li4uIF0iCisKKyN+IG1zZ2lkICJTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYSBzcGVjaWZpYyBjb21tYW5kLiIKKyN+IG1zZ3N0ciAiIgorI34gIlNpZWhlICdnaXQgaGVscCA8S29tbWFuZG8+JyBmw7xyIHdlaXRlcmUgSW5mb3JtYXRpb25lbiB6dSBlaW5lbSAiCisjfiAic3BlemlmaXNjaGVuIEtvbW1hbmRvIgogCiAjfiBtc2dpZCAidXNlIGFueSByZWYgaW4gLmdpdC9yZWZzIgogI34gbXNnc3RyICJ2ZXJ3ZW5kZXQgYWxsZSBSZWZlcmVuemVuIGluIC5naXQvcmVmcyIKZGlmZiAtLWdpdCBhL3BvL2ZyLnBvIGIvcG8vZnIucG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNkYjZmOQotLS0gL2Rldi9udWxsCisrKyBiL3BvL2ZyLnBvCkBAIC0wLDAgKzEsOTgyMyBAQAorIyBGcmVuY2ggdHJhbnNsYXRpb25zIGZvciBHaXQuCisjIENvcHlyaWdodCAoQykgMjAxMyBKZWFuLU5vw6tsIEF2aWxhIDxqbi5hdmlsYUBmcmVlLmZyPgorIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgR2l0IHBhY2thZ2UuCisjIEplYW4tTm/Dq2wgQXZpbGEgPGpuLmF2aWxhQGZyZWUuZnI+LCAyMDEzLgorIyBTw6liYXN0aWVuIEhlbGxldSA8Zmxhc2hjb2RlQGZsYXNodHV4Lm9yZz4sIDIwMTMuCisjCisjIEZyZW5jaCB0cmFuc2xhdGlvbnMgb2YgY29tbW9uIEdpdCB3b3JkcyB1c2VkIGluIHRoaXMgZmlsZToKKyMKKyMgICBFbmdsaXNoICAgICAgICAgIHwgIEZyZW5jaAorIyAgIC0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAgICNOTiAgICAgICAgICAgICAgfCAgbsKwTk4KKyMgICBhIGNvbW1pdCAgICAgICAgIHwgIHVuIGNvbW1pdAorIyAgIGJhY2t3YXJkICAgICAgICAgfAorIyAgICAgY29tcGF0aWJpbGl0eSAgfCAgcsOpdHJvY29tcGF0aWJpbGl0w6kKKyMgICBiYXJlIHJlcG9zaXRvcnkgIHwgIGTDqXDDtHQgbnUKKyMgICBiaXNlY3QgICAgICAgICAgIHwgIGJpc3NlY3Rpb24KKyMgICBibG9iICAgICAgICAgICAgIHwgIGJsb2IKKyMgICBidWcgICAgICAgICAgICAgIHwgIGJvZ3VlCisjICAgYnVuZGxlICAgICAgICAgICB8ICBjb2xpcworIyAgIGNoZXJyeS1waWNrICAgICAgfCAgcGljb3JlcgorIyAgIGRhbmdsaW5nICAgICAgICAgfCAgZW4gc3VzcGVucworIyAgIGRlYnVnZ2luZyAgICAgICAgfCAgZMOpYm9nYWdlCisjICAgZmFzdC1mb3J3YXJkICAgICB8ICBhdmFuY2UgcmFwaWRlCisjICAgZmFzdC1mb3J3YXJkZWQgICB8ICBtaXMgw6Agam91ciBlbiBhdmFuY2UgcmFwaWRlCisjICAgZ2xvYiAgICAgICAgICAgICB8ICBnbG9iCisjICAgaGFzaCAgICAgICAgICAgICB8ICBoYWNoYWdlCisjICAgSEVBRCAgICAgICAgICAgICB8ICBIRUFEIChnZW5yZSBmw6ltaW5pbikKKyMgICBob29rICAgICAgICAgICAgIHwgIGhvb2sKKyMgICBodW5rICAgICAgICAgICAgIHwgIHNlY3Rpb24KKyMgICBtZXJnZSAgICAgICAgICAgIHwgIGZ1c2lvbgorIyAgIHBhdHRlcm4gICAgICAgICAgfCAgbW90aWYKKyMgICByZXBvc2l0b3J5ICAgICAgIHwgIGTDqXDDtHQKKyMgICByZW1vdGUgICAgICAgICAgIHwgIGRpc3RhbnRlIChvdSBzZXJ2ZXVyIGRpc3RhbnQpCisjICAgcmV2aXNpb24gICAgICAgICB8ICByw6l2aXNpb24KKyMgICBzdGFzaCAgICAgICAgICAgIHwgIHJlbWlzYWdlCisjICAgdGFnICAgICAgICAgICAgICB8ICDDqXRpcXVldHRlCisjICAgdGVtcGxhdGUgICAgICAgICB8ICBtb2TDqGxlCisjICAgdG8gY2hlY2tvdXQgICAgICB8ICBleHRyYWlyZQorIyAgIHRvIGNvbW1pdCAgICAgICAgfCAgdmFsaWRlcgorIyAgIHRvIGZldGNoICAgICAgICAgfCAgcmFwYXRyaWVyCisjICAgdG8gcHJ1bmUgICAgICAgICB8ICDDqWxhZ3VlcgorIyAgIHRvIHB1c2ggICAgICAgICAgfCAgcG91c3NlcgorIyAgIHRvIHJlYmFzZSAgICAgICAgfCAgcmViYXNlcgorIyAgIHRvIHN0YXNoICAgICAgICAgfCAgcmVtaXNlcgorIyAgIHRvIHRyYWNrICAgICAgICAgfCAgc3VpdnJlCisjICAgdG8gdW5zdGFnZSAgICAgICB8ICBkw6lzaW5kZXhlcgorIyAgIHRyZWUtaXNoICAgICAgICAgfCAgYXJicmUKKyMgICB1cHN0cmVhbSAgICAgICAgIHwgIGFtb250CisjICAgd29ya3RyZWUgLyAgICAgICB8CisjICAgd29yayhpbmcpIHRyZWUgICB8ICBjb3BpZSBkZSB0cmF2YWlsCisjCittc2dpZCAiIgorbXNnc3RyICIiCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXRcbiIKKyJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNC0zMCAwODoyNSswODAwXG4iCisiUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wOC0yNyAxOTo0MyswMjAwXG4iCisiTGFzdC1UcmFuc2xhdG9yOiBTw6liYXN0aWVuIEhlbGxldSA8Zmxhc2hjb2RlQGZsYXNodHV4Lm9yZz5cbiIKKyJMYW5ndWFnZS1UZWFtOiBKZWFuLU5vw6tsIEF2aWxhIDxqbi5hdmlsYUBmcmVlLmZyPlxuIgorIkxhbmd1YWdlOiBmclxuIgorIk1JTUUtVmVyc2lvbjogMS4wXG4iCisiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4iCisiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgorIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPW48PTEgPzAgOiAxO1xuIgorIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjRcbiIKKworIzogYWR2aWNlLmM6NTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiaGludDogJS4qc1xuIgorbXNnc3RyICJhc3R1Y2U6ICUuKnNcbiIKKworIy4KKyMuICogTWVzc2FnZSB1c2VkIGJvdGggd2hlbiAnZ2l0IGNvbW1pdCcgZmFpbHMgYW5kIHdoZW4KKyMuICogb3RoZXIgY29tbWFuZHMgZG9pbmcgYSBtZXJnZSBkby4KKyMuCisjOiBhZHZpY2UuYzo4MworbXNnaWQgIiIKKyJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgorImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCisiYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uIGFuZCBtYWtlIGEgY29tbWl0LFxuIgorIm9yIHVzZSAnZ2l0IGNvbW1pdCAtYScuIgorbXNnc3RyICIiCisiQ29ycmlnZXotbGVzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCxcbiIKKyJldCB1dGlsaXNleiAnZ2l0IGFkZC9ybSA8ZmljaGllcj4nIHNpXG4iCisibsOpY2Vzc2FpcmUgcG91ciBtYXJxdWVyIGxhIHLDqXNvbHV0aW9uIGV0IHZhbGlkZXIsXG4iCisib3UgdXRpbGlzZXogJ2dpdCBjb21taXQgLWEnLiIKKworIzogYXJjaGl2ZS5jOjEwCittc2dpZCAiZ2l0IGFyY2hpdmUgW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCittc2dzdHIgImdpdCBhcmNoaXZlIFtvcHRpb25zXSA8YXJicmU+IFs8Y2hlbWluPi4uLl0iCisKKyM6IGFyY2hpdmUuYzoxMQorbXNnaWQgImdpdCBhcmNoaXZlIC0tbGlzdCIKK21zZ3N0ciAiZ2l0IGFyY2hpdmUgLS1saXN0IgorCisjOiBhcmNoaXZlLmM6MTIKK21zZ2lkICIiCisiZ2l0IGFyY2hpdmUgLS1yZW1vdGUgPHJlcG8+IFstLWV4ZWMgPGNtZD5dIFtvcHRpb25zXSA8dHJlZS1pc2g+IFs8cGF0aD4uLi5dIgorbXNnc3RyICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8ZMOpcMO0dD4gWy0tZXhlYyA8Y29tbWFuZGU+XSBbb3B0aW9uc10gPGFyYnJlPiBbPGNoZW1pbj4uLi5dIgorCisjOiBhcmNoaXZlLmM6MTMKK21zZ2lkICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8cmVwbz4gWy0tZXhlYyA8Y21kPl0gLS1saXN0IgorbXNnc3RyICJnaXQgYXJjaGl2ZSAtLXJlbW90ZSA8ZMOpcMO0dD4gWy0tZXhlYyA8Y29tbWFuZGU+XSAtLWxpc3QiCisKKyM6IGFyY2hpdmUuYzozMjMKK21zZ2lkICJmbXQiCittc2dzdHIgImZtdCIKKworIzogYXJjaGl2ZS5jOjMyMworbXNnaWQgImFyY2hpdmUgZm9ybWF0IgorbXNnc3RyICJmb3JtYXQgZCdhcmNoaXZlIgorCisjOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTEyNgorbXNnaWQgInByZWZpeCIKK21zZ3N0ciAicHLDqWZpeGUiCisKKyM6IGFyY2hpdmUuYzozMjUKK21zZ2lkICJwcmVwZW5kIHByZWZpeCB0byBlYWNoIHBhdGhuYW1lIGluIHRoZSBhcmNoaXZlIgorbXNnc3RyICJwcsOpZml4ZXIgY2hhcXVlIGNoZW1pbiBkZSBmaWNoaWVyIGRhbnMgbCdhcmNoaXZlIgorCisjOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMzcxCisjOiBidWlsdGluL2JsYW1lLmM6MjM3MiBidWlsdGluL2NvbmZpZy5jOjU1IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjUKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcgYnVpbHRpbi9ncmVwLmM6NzE1IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MCBidWlsdGluL2xzLWZpbGVzLmM6NDkzIGJ1aWx0aW4vbm90ZXMuYzo1MzYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2OTMgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDcgcGFyc2Utb3B0aW9ucy5oOjE0OQorbXNnaWQgImZpbGUiCittc2dzdHIgImZpY2hpZXIiCisKKyM6IGFyY2hpdmUuYzozMjcgYnVpbHRpbi9hcmNoaXZlLmM6ODkKK21zZ2lkICJ3cml0ZSB0aGUgYXJjaGl2ZSB0byB0aGlzIGZpbGUiCittc2dzdHIgIsOpY3JpcmUgbCdhcmNoaXZlIGRhbnMgY2UgZmljaGllciIKKworIzogYXJjaGl2ZS5jOjMyOQorbXNnaWQgInJlYWQgLmdpdGF0dHJpYnV0ZXMgaW4gd29ya2luZyBkaXJlY3RvcnkiCittc2dzdHIgImxpcmUgLmdpdGF0dHJpYnV0ZXMgZGFucyBsZSByw6lwZXJ0b2lyZSBkZSB0cmF2YWlsIgorCisjOiBhcmNoaXZlLmM6MzMwCittc2dpZCAicmVwb3J0IGFyY2hpdmVkIGZpbGVzIG9uIHN0ZGVyciIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIGZpY2hpZXJzIGFyY2hpdsOpcyBzdXIgc3RkZXJyIgorCisjOiBhcmNoaXZlLmM6MzMxCittc2dpZCAic3RvcmUgb25seSIKK21zZ3N0ciAic3RvY2thZ2Ugc2V1bGVtZW50IgorCisjOiBhcmNoaXZlLmM6MzMyCittc2dpZCAiY29tcHJlc3MgZmFzdGVyIgorbXNnc3RyICJjb21wcmVzc2lvbiByYXBpZGUiCisKKyM6IGFyY2hpdmUuYzozNDAKK21zZ2lkICJjb21wcmVzcyBiZXR0ZXIiCittc2dzdHIgImNvbXByZXNzaW9uIGVmZmljYWNlIgorCisjOiBhcmNoaXZlLmM6MzQzCittc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgorbXNnc3RyICJsaXN0ZXIgbGVzIGZvcm1hdHMgZCdhcmNoaXZlIHN1cHBvcnTDqXMiCisKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg2Cittc2dpZCAicmVwbyIKK21zZ3N0ciAiZMOpcMO0dCIKKworIzogYXJjaGl2ZS5jOjM0NiBidWlsdGluL2FyY2hpdmUuYzo5MQorbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgorbXNnc3RyICJyw6ljdXDDqXJlciBsJ2FyY2hpdmUgZGVwdWlzIGxlIGTDqXDDtHQgZGlzdGFudCA8ZMOpcMO0dD4iCisKKyM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorbXNnaWQgImNvbW1hbmQiCittc2dzdHIgImNvbW1hbmRlIgorCisjOiBhcmNoaXZlLmM6MzQ4IGJ1aWx0aW4vYXJjaGl2ZS5jOjkzCittc2dpZCAicGF0aCB0byB0aGUgcmVtb3RlIGdpdC11cGxvYWQtYXJjaGl2ZSBjb21tYW5kIgorbXNnc3RyICJjaGVtaW4gdmVycyBsYSBjb21tYW5kZSBkaXN0YW50ZSBnaXQtdXBsb2FkLWFyY2hpdmUiCisKKyM6IGF0dHIuYzoyNTkKK21zZ2lkICIiCisiTmVnYXRpdmUgcGF0dGVybnMgYXJlIGlnbm9yZWQgaW4gZ2l0IGF0dHJpYnV0ZXNcbiIKKyJVc2UgJ1xcIScgZm9yIGxpdGVyYWwgbGVhZGluZyBleGNsYW1hdGlvbi4iCittc2dzdHIgIiIKKyJMZXMgbW90aWZzIGRlIG7DqWdhdGlvbiBzb250IGlnbm9yw6lzIGRhbnMgbGVzIGF0dHJpYnV0cyBnaXRcbiIKKyJVdGlsaXNleiAnXFwhJyBwb3VyIHVuIHBvaW50IGQnZXhjbGFtYXRpb24gbGl0dMOpcmFsLiIKKworIzogYnJhbmNoLmM6NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHNldHRpbmcgYnJhbmNoICVzIGFzIGl0cyBvd24gdXBzdHJlYW0uIgorbXNnc3RyICJMYSBicmFuY2hlICVzIG5lIHBldXQgcGFzIMOqdHJlIHNhIHByb3ByZSBicmFuY2hlIGFtb250LiIKKworIzogYnJhbmNoLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgYnJhbmNoZSBkaXN0YW50ZSAlcyBkZSAlcyBlbiByZWJhc2FudC4iCisKKyM6IGJyYW5jaC5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIGJyYW5jaGUgZGlzdGFudGUgJXMgZGVwdWlzICVzLiIKKworIzogYnJhbmNoLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJMYSBicmFuY2hlICVzIGVzdCBwYXJhbcOpdHLDqWUgcG91ciBzdWl2cmUgbGEgYnJhbmNoZSBsb2NhbGUgJXMgZW4gcmViYXNhbnQuIgorCisjOiBicmFuY2guYzo4OAorIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIGJyYW5jaCAlcy4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSBicmFuY2hlIGxvY2FsZSAlcy4iCisKKyM6IGJyYW5jaC5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSByw6lmw6lyZW5jZSBkaXN0YW50ZSAlcyBlbiByZWJhc2FudC4iCisKKyM6IGJyYW5jaC5jOjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcy4iCittc2dzdHIgIkxhIGJyYW5jaGUgJXMgZXN0IHBhcmFtw6l0csOpZSBwb3VyIHN1aXZyZSBsYSByw6lmw6lyZW5jZSBkaXN0YW50ZSAlcy4iCisKKyM6IGJyYW5jaC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGxvY2FsZSAlcyBlbiByZWJhc2FudC4iCisKKyM6IGJyYW5jaC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAlcyBlc3QgcGFyYW3DqXRyw6llIHBvdXIgc3VpdnJlIGxhIHLDqWbDqXJlbmNlIGxvY2FsZSAlcy4iCisKKyM6IGJyYW5jaC5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJUcmFja2luZyBub3Qgc2V0IHVwOiBuYW1lIHRvbyBsb25nOiAlcyIKK21zZ3N0ciAiU3VpdmkgZGUgYnJhbmNoZSBub24gcGFyYW3DqXRyw6kgOiBsZSBub20gZXN0IHRyb3AgbG9uZyA6ICVzIgorCisjOiBicmFuY2guYzoxMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHRyYWNraW5nOiBhbWJpZ3VvdXMgaW5mb3JtYXRpb24gZm9yIHJlZiAlcyIKK21zZ3N0ciAiUGFzIGRlIHN1aXZpIDogaW5mb3JtYXRpb24gYW1iaWd1w6sgcG91ciBsYSByw6lmw6lyZW5jZSAlcyIKKworIzogYnJhbmNoLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgYnJhbmNoIG5hbWUuIgorbXNnc3RyICInJXMnIG4nZXN0IHBhcyB1biBub20gZGUgYnJhbmNoZSB2YWxpZGUuIgorCisjOiBicmFuY2guYzoxODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQSBicmFuY2ggbmFtZWQgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCittc2dzdHIgIlVuZSBicmFuY2hlIG5vbW3DqWUgJyVzJyBleGlzdGUgZMOpasOgLiIKKworIzogYnJhbmNoLmM6MTk1Cittc2dpZCAiQ2Fubm90IGZvcmNlIHVwZGF0ZSB0aGUgY3VycmVudCBicmFuY2guIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGZvcmNlciBsYSBtaXNlIMOgIGpvdXIgZGUgbGEgYnJhbmNoZSBjb3VyYW50ZS4iCisKKyM6IGJyYW5jaC5jOjIwMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc2V0dXAgdHJhY2tpbmcgaW5mb3JtYXRpb247IHN0YXJ0aW5nIHBvaW50ICclcycgaXMgbm90IGEgYnJhbmNoLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwYXJhbcOpdHJlciBsZSBzdWl2aSBkZSBicmFuY2hlIDsgbGUgcG9pbnQgZGUgZMOpcGFydCAnJXMnIG4nZXN0IHBhcyB1bmUgYnJhbmNoZS4iCisKKyM6IGJyYW5jaC5jOjIwMworIywgYy1mb3JtYXQKK21zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJsYSBicmFuY2hlIGFtb250IGRlbWFuZMOpZSAnJXMnIG4nZXhpc3RlIHBhcyIKKworIzogYnJhbmNoLmM6MjA1Cittc2dpZCAiIgorIlxuIgorIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgorImJyYW5jaCB0aGF0IGFscmVhZHkgZXhpc3RzIGF0IHRoZSByZW1vdGUsIHlvdSBtYXkgbmVlZCB0b1xuIgorInJ1biBcImdpdCBmZXRjaFwiIHRvIHJldHJpZXZlIGl0LlxuIgorIlxuIgorIklmIHlvdSBhcmUgcGxhbm5pbmcgdG8gcHVzaCBvdXQgYSBuZXcgbG9jYWwgYnJhbmNoIHRoYXRcbiIKKyJ3aWxsIHRyYWNrIGl0cyByZW1vdGUgY291bnRlcnBhcnQsIHlvdSBtYXkgd2FudCB0byB1c2VcbiIKKyJcImdpdCBwdXNoIC11XCIgdG8gc2V0IHRoZSB1cHN0cmVhbSBjb25maWcgYXMgeW91IHB1c2guIgorbXNnc3RyICIiCisiXG4iCisiU2kgdm91cyBjb21wdGV6IGJhc2VyIHZvdHJlIHRyYXZhaWwgc3VyIHVuZSBicmFuY2hlXG4iCisiYW1vbnQgcXVpIGV4aXN0ZSBkw6lqw6Agc3VyIGxlIHNlcnZldXIgZGlzdGFudCwgdm91cyBwb3VycmllelxuIgorImRldm9pciBsYW5jZXIgXCJnaXQgZmV0Y2hcIiBwb3VyIGxhIHLDqWN1cMOpcmVyLlxuIgorIlxuIgorIlNpIHZvdXMgY29tcHRleiBwb3Vzc2VyIHVuZSBub3V2ZWxsZSBicmFuY2hlIGxvY2FsZSBxdWkgc3VpdnJhXG4iCisic2EganVtZWxsZSBkaXN0YW50ZSwgdm91cyBzb3VoYWl0ZXJleiB1dGlsaXNlciBcImdpdCBwdXNoIC11XCJcbiIKKyJwb3VyIHBhcmFtw6l0cmVyIGxlIHN1aXZpIGRpc3RhbnQgZW4gbcOqbWUgdGVtcHMgcXVlIHZvdXMgcG91c3Nlei4iCisKKyM6IGJyYW5jaC5jOjI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIk5vbSBkJ29iamV0IGludmFsaWRlIDogJyVzJy4iCisKKyM6IGJyYW5jaC5jOjI3MAorIywgYy1mb3JtYXQKK21zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgorbXNnc3RyICJOb20gZCdvYmpldCBhbWJpZ3UgOiAnJXMnLiIKKworIzogYnJhbmNoLmM6Mjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCittc2dzdHIgIlBvaW50IGQnZW1icmFuY2hlbWVudCBpbnZhbGlkZSA6ICclcycuIgorCisjOiBicmFuY2guYzoyODEKK21zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKK21zZ3N0ciAiw4ljaGVjIGR1IHZlcnJvdWlsbGFnZSBkZSBsYSByw6lmw6lyZW5jZSBwb3VyIG1pc2Ugw6Agam91ciIKKworIzogYnJhbmNoLmM6Mjk5Cittc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKK21zZ3N0ciAiw4ljaGVjIGRlIGwnw6ljcml0dXJlIGRlIGxhIHLDqWbDqXJlbmNlIgorCisjOiBidW5kbGUuYzozNgorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGRvZXMgbm90IGxvb2sgbGlrZSBhIHYyIGJ1bmRsZSBmaWxlIgorbXNnc3RyICInJXMnIG5lIHNlbWJsZSBwYXMgw6p0cmUgdW4gZmljaGllciBidW5kbGUgdjIiCisKKyM6IGJ1bmRsZS5jOjYzCisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKK21zZ3N0ciAiZW4tdMOqdGUgbm9uIHJlY29ubnUgOiAlcyVzICglZCkiCisKKyM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcyciCittc2dzdHIgImltcG9zc2libGUgZCdvdXZyaXIgJyVzJyIKKworIzogYnVuZGxlLmM6MTQwCittc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCittc2dzdHIgIkxlIGTDqXDDtHQgbmUgZGlzcG9zZSBwYXMgZGVzIGNvbW1pdHMgcHLDqXJlcXVpcyA6IgorCisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjUxIHNlcXVlbmNlci5jOjExMDEgYnVpbHRpbi9sb2cuYzozMDAKKyM6IGJ1aWx0aW4vbG9nLmM6NzcwIGJ1aWx0aW4vbG9nLmM6MTM0NCBidWlsdGluL2xvZy5jOjE1NzAgYnVpbHRpbi9tZXJnZS5jOjM0OQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NQorbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgbGEgcHLDqXBhcmF0aW9uIGR1IHBhcmNvdXJzIGRlcyByw6l2aXNpb25zIgorCisjOiBidW5kbGUuYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGJ1bmRsZSBjb250YWlucyB0aGlzIHJlZjoiCittc2dpZF9wbHVyYWwgIlRoZSBidW5kbGUgY29udGFpbnMgdGhlc2UgJWQgcmVmczoiCittc2dzdHJbMF0gIkxlIGNvbGlzIGNvbnRpZW50IGNldHRlIHLDqWbDqXJlbmNlIDoiCittc2dzdHJbMV0gIkxlIGNvbGlzIGNvbnRpZW50IGNlcyAlZCByw6lmw6lyZW5jZXMgOiIKKworIzogYnVuZGxlLmM6MTkzCittc2dpZCAiVGhlIGJ1bmRsZSByZWNvcmRzIGEgY29tcGxldGUgaGlzdG9yeS4iCittc2dzdHIgIkxlIGNvbGlzIGVucmVnaXN0cmUgbCdoaXN0b3JpcXVlIGNvbXBsZXQuIgorCisjOiBidW5kbGUuYzoxOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGJ1bmRsZSByZXF1aXJlcyB0aGlzIHJlZjoiCittc2dpZF9wbHVyYWwgIlRoZSBidW5kbGUgcmVxdWlyZXMgdGhlc2UgJWQgcmVmczoiCittc2dzdHJbMF0gIkxlIGNvbGlzIGV4aWdlIGNldHRlIHLDqWbDqXJlbmNlIDoiCittc2dzdHJbMV0gIkxlIGNvbGlzIGV4aWdlIGNlcyAlZCByw6lmw6lyZW5jZXMgOiIKKworIzogYnVuZGxlLmM6Mjk0Cittc2dpZCAicmV2LWxpc3QgZGllZCIKK21zZ3N0ciAicmV2LWxpc3QgYSBkaXNwYXJ1IgorCisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMjU1IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKK21zZ3N0ciAiYXJndW1lbnQgbm9uIHJlY29ubnUgOiAlcyIKKworIzogYnVuZGxlLmM6MzM1CisjLCBjLWZvcm1hdAorbXNnaWQgInJlZiAnJXMnIGlzIGV4Y2x1ZGVkIGJ5IHRoZSByZXYtbGlzdCBvcHRpb25zIgorbXNnc3RyICJsYSByw6lmw6lyZW5jZSAnJXMnIGVzdCBleGNsdWUgcGFyIGxlcyBvcHRpb25zIGRlIHJldi1saXN0IgorCisjOiBidW5kbGUuYzozODAKK21zZ2lkICJSZWZ1c2luZyB0byBjcmVhdGUgZW1wdHkgYnVuZGxlLiIKK21zZ3N0ciAiUmVmdXMgZGUgY3LDqWVyIHVuIGNvbGlzIHZpZGUuIgorCisjOiBidW5kbGUuYzozOTgKK21zZ2lkICJDb3VsZCBub3Qgc3Bhd24gcGFjay1vYmplY3RzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBkZXMgb2JqZXRzIGdyb3Vww6lzIgorCisjOiBidW5kbGUuYzo0MTYKK21zZ2lkICJwYWNrLW9iamVjdHMgZGllZCIKK21zZ3N0ciAibGVzIG9iamV0cyBncm91cMOpcyBvbnQgZGlzcGFydSIKKworIzogYnVuZGxlLmM6NDE5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjcmVhdGUgJyVzJyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgJyVzJyIKKworIzogYnVuZGxlLmM6NDQxCittc2dpZCAiaW5kZXgtcGFjayBkaWVkIgorbXNnc3RyICJsJ2luZGV4IGRlIGdyb3VwZSBhIGRpc3BhcnUiCisKKyM6IGNvbW1pdC5jOjUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBwYXJzZSAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyICVzIgorCisjOiBjb21taXQuYzo1MgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAlcyBpcyBub3QgYSBjb21taXQhIgorbXNnc3RyICIlcyAlcyBuJ2VzdCBwYXMgdW4gY29tbWl0ICEiCisKKyM6IGNvbXBhdC9vYnN0YWNrLmM6NDA2IGNvbXBhdC9vYnN0YWNrLmM6NDA4Cittc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKK21zZ3N0ciAicGx1cyBkZSBtw6ltb2lyZSIKKworIzogY29ubmVjdGVkLmM6MzkKK21zZ2lkICJDb3VsZCBub3QgcnVuICdnaXQgcmV2LWxpc3QnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxhbmNlciAnZ2l0IHJldi1saXN0JyIKKworIzogY29ubmVjdGVkLmM6NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHdyaXRlIHRvIHJldi1saXN0OiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgZGFucyBsYSByZXYtbGlzdCA6ICVzIgorCisjOiBjb25uZWN0ZWQuYzo1NgorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCittc2dzdHIgImltcG9zc2libGUgZGUgZmVybWVyIGxlIHN0ZGluIGR1IHJldi1saXN0IDogJXMiCisKKyM6IGRhdGUuYzo5NQorbXNnaWQgImluIHRoZSBmdXR1cmUiCittc2dzdHIgImRhbnMgbGUgZnV0dXIiCisKKyM6IGRhdGUuYzoxMDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IHNlY29uZCBhZ28iCittc2dpZF9wbHVyYWwgIiVsdSBzZWNvbmRzIGFnbyIKK21zZ3N0clswXSAiaWwgeSBhICVsdSBzZWNvbmRlIgorbXNnc3RyWzFdICJpbCB5IGEgJWx1IHNlY29uZGVzIgorCisjOiBkYXRlLmM6MTA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSBtaW51dGUgYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgbWludXRlcyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlbHUgbWludXRlIgorbXNnc3RyWzFdICJpbCB5IGEgJWx1IG1pbnV0ZXMiCisKKyM6IGRhdGUuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IGhvdXIgYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgaG91cnMgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJWx1IGhldXJlIgorbXNnc3RyWzFdICJpbCB5IGEgJWx1IGhldXJlcyIKKworIzogZGF0ZS5jOjEyMgorIywgYy1mb3JtYXQKK21zZ2lkICIlbHUgZGF5IGFnbyIKK21zZ2lkX3BsdXJhbCAiJWx1IGRheXMgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJWx1IGpvdXIiCittc2dzdHJbMV0gImlsIHkgYSAlbHUgam91cnMiCisKKyM6IGRhdGUuYzoxMjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IHdlZWsgYWdvIgorbXNnaWRfcGx1cmFsICIlbHUgd2Vla3MgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJWx1IHNlbWFpbmUiCittc2dzdHJbMV0gImlsIHkgYSAlbHUgc2VtYWluZXMiCisKKyM6IGRhdGUuYzoxMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJWx1IG1vbnRoIGFnbyIKK21zZ2lkX3BsdXJhbCAiJWx1IG1vbnRocyBhZ28iCittc2dzdHJbMF0gImlsIHkgYSAlbHUgbW9pcyIKK21zZ3N0clsxXSAiaWwgeSBhICVsdSBtb2lzIgorCisjOiBkYXRlLmM6MTQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSB5ZWFyIgorbXNnaWRfcGx1cmFsICIlbHUgeWVhcnMiCittc2dzdHJbMF0gIiVsdSBhbiIKK21zZ3N0clsxXSAiJWx1IGFucyIKKworIzogZGF0ZS5jOjE0OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcywgJWx1IG1vbnRoIGFnbyIKK21zZ2lkX3BsdXJhbCAiJXMsICVsdSBtb250aHMgYWdvIgorbXNnc3RyWzBdICJpbCB5IGEgJXMgZXQgJWx1IG1vaXMiCittc2dzdHJbMV0gImlsIHkgYSAlcyBldCAlbHUgbW9pcyIKKworIzogZGF0ZS5jOjE1NCBkYXRlLmM6MTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVsdSB5ZWFyIGFnbyIKK21zZ2lkX3BsdXJhbCAiJWx1IHllYXJzIGFnbyIKK21zZ3N0clswXSAiaWwgeSBhICVsdSBhbiIKK21zZ3N0clsxXSAiaWwgeSBhICVsdSBhbnMiCisKKyM6IGRpZmYuYzoxMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBGYWlsZWQgdG8gcGFyc2UgZGlyc3RhdCBjdXQtb2ZmIHBlcmNlbnRhZ2UgJyVzJ1xuIgorbXNnc3RyICIgIEltcG9zc2libGUgZCdhbmFseXNlciBsZSBwb3VyY2VudGFnZSBkZSBtb2RpZmljYXRpb24gZGUgZGlyc3RhdCAnJXMnXG4iCisKKyM6IGRpZmYuYzoxMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBVbmtub3duIGRpcnN0YXQgcGFyYW1ldGVyICclcydcbiIKK21zZ3N0ciAiICBQYXJhbcOodHJlIGRpcnN0YXQgaW5jb25udSAnJXMnXG4iCisKKyM6IGRpZmYuYzoyMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biB2YWx1ZSBmb3IgJ2RpZmYuc3VibW9kdWxlJyBjb25maWcgdmFyaWFibGU6ICclcyciCittc2dzdHIgIlZhbGV1ciBpbmNvbm51ZSBwb3VyIGxhIHZhcmlhYmxlIGRlIGNvbmZpZ3VyYXRpb24gJ2RpZmYuc3VibW9kdWxlJyA6ICclcyciCisKKyM6IGRpZmYuYzoyNjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZvdW5kIGVycm9ycyBpbiAnZGlmZi5kaXJzdGF0JyBjb25maWcgdmFyaWFibGU6XG4iCisiJXMiCittc2dzdHIgIkVycmV1cnMgZGFucyBsYSB2YXJpYWJsZSBkZSBjb25maWd1cmF0aW9uICdkaWZmLmRpcnN0YXQnIDpcbiIKKyIlcyIKKworIzogZGlmZi5jOjM0ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKKyIlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIHBhcmFtw6h0cmUgZGUgbCdvcHRpb24gLS1kaXJzdGF0Ly1YIDpcbiIKKyIlcyIKKworIzogZGlmZi5jOjM0OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHBhcnNlIC0tc3VibW9kdWxlIG9wdGlvbiBwYXJhbWV0ZXI6ICclcyciCittc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsZSBwYXJhbcOodHJlIGRlIGwnb3B0aW9uIC0tc3VibW9kdWxlIDogJyVzJyIKKworIzogZ3BnLWludGVyZmFjZS5jOjU5IGdwZy1pbnRlcmZhY2UuYzoxMzEKK21zZ2lkICJjb3VsZCBub3QgcnVuIGdwZy4iCittc2dzdHIgImltcG9zc2libGUgZGUgbGFuY2VyIGdwZy4iCisKKyM6IGdwZy1pbnRlcmZhY2UuYzo3MQorbXNnaWQgImdwZyBkaWQgbm90IGFjY2VwdCB0aGUgZGF0YSIKK21zZ3N0ciAiZ3BnIG4nYSBwYXMgYWNjZXB0w6kgbGVzIGRvbm7DqWVzIgorCisjOiBncGctaW50ZXJmYWNlLmM6ODIKK21zZ2lkICJncGcgZmFpbGVkIHRvIHNpZ24gdGhlIGRhdGEiCittc2dzdHIgImdwZyBuJ2EgcGFzIHB1IHNpZ25lciBsZXMgZG9ubsOpZXMiCisKKyM6IGdwZy1pbnRlcmZhY2UuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZSAnJXMnOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgdW4gZmljaGllciB0ZW1wb3JhaXJlICclcycgOiAlcyIKKworIzogZ3BnLWludGVyZmFjZS5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgd3JpdGluZyBkZXRhY2hlZCBzaWduYXR1cmUgdG8gJyVzJzogJXMiCittc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxhIHNpZ25hdHVyZSBkw6l0YWNow6llIGRhbnMgJyVzJyA6ICVzIgorCisjOiBncmVwLmM6MTYyMworIywgYy1mb3JtYXQKK21zZ2lkICInJXMnOiB1bmFibGUgdG8gcmVhZCAlcyIKK21zZ3N0ciAiJyVzJyA6IGxlY3R1cmUgZGUgJXMgaW1wb3NzaWJsZSIKKworIzogZ3JlcC5jOjE2NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJzogJXMiCittc2dzdHIgIiclcycgOiAlcyIKKworIzogZ3JlcC5jOjE2NTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJzogc2hvcnQgcmVhZCAlcyIKK21zZ3N0ciAiJyVzJyA6IGxlY3R1cmUgdHJvbnF1w6llICVzIgorCisjOiBoZWxwLmM6MjEyCisjLCBjLWZvcm1hdAorbXNnaWQgImF2YWlsYWJsZSBnaXQgY29tbWFuZHMgaW4gJyVzJyIKK21zZ3N0ciAiY29tbWFuZGVzIGdpdCBkaXNwb25pYmxlcyBkYW5zICclcyciCisKKyM6IGhlbHAuYzoyMTkKK21zZ2lkICJnaXQgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gZWxzZXdoZXJlIG9uIHlvdXIgJFBBVEgiCittc2dzdHIgImNvbW1hbmRlcyBnaXQgZGlzcG9uaWJsZXMgZGVwdWlzIHVuIGF1dHJlIGVuZHJvaXQgZGUgdm90cmUgJFBBVEgiCisKKyM6IGhlbHAuYzoyMzUKK21zZ2lkICJUaGUgbW9zdCBjb21tb25seSB1c2VkIGdpdCBjb21tYW5kcyBhcmU6IgorbXNnc3RyICJMZXMgY29tbWFuZGVzIGdpdCBsZXMgcGx1cyB1dGlsaXPDqWVzIHNvbnQgOiIKKworIzogaGVscC5jOjI5MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJyVzJyBhcHBlYXJzIHRvIGJlIGEgZ2l0IGNvbW1hbmQsIGJ1dCB3ZSB3ZXJlIG5vdFxuIgorImFibGUgdG8gZXhlY3V0ZSBpdC4gTWF5YmUgZ2l0LSVzIGlzIGJyb2tlbj8iCittc2dzdHIgIiIKKyInJXMnIHNlbWJsZSDDqnRyZSB1bmUgY29tbWFuZGUgZ2l0LCBtYWlzIGVsbGUgbidhIHBhcyBwdVxuIgorIsOqdHJlIGV4w6ljdXTDqWUuIFBldXQtw6p0cmUgZ2l0LSVzIGVzdC1lbGxlIGNhc3PDqWUgPyIKKworIzogaGVscC5jOjM0OQorbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgorbXNnc3RyICJBaGVtLiBWb3RyZSBzeXN0w6htZSBuJ2luZGlxdWUgYXVjdW5lIGNvbW1hbmRlIEdpdC4iCisKKyM6IGhlbHAuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldBUk5JTkc6IFlvdSBjYWxsZWQgYSBHaXQgY29tbWFuZCBuYW1lZCAnJXMnLCB3aGljaCBkb2VzIG5vdCBleGlzdC5cbiIKKyJDb250aW51aW5nIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgeW91IG1lYW50ICclcyciCittc2dzdHIgIkFUVEVOVElPTiA6IHZvdXMgYXZleiBpbnZvcXXDqSB1bmUgY29tbWFuZGUgR2l0IG5vbW3DqWUgJyVzJyBxdWkgbidleGlzdGUgcGFzLlxuIgorIlBvdXJzdWl0ZSBlbiBzdXBwb3NhbnQgcXVlIHZvdXMgYXZleiB2b3VsdSBkaXJlICclcyciCisKKyM6IGhlbHAuYzozNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW4gJTAuMWYgc2Vjb25kcyBhdXRvbWF0aWNhbGx5Li4uIgorbXNnc3RyICJkYW5zICUwLjFmIHNlY29uZGVzIGF1dG9tYXRpcXVlbWVudC4uLiIKKworIzogaGVscC5jOjM4MworIywgYy1mb3JtYXQKK21zZ2lkICJnaXQ6ICclcycgaXMgbm90IGEgZ2l0IGNvbW1hbmQuIFNlZSAnZ2l0IC0taGVscCcuIgorbXNnc3RyICJnaXQgOiAnJXMnIG4nZXN0IHBhcyB1bmUgY29tbWFuZGUgZ2l0LiBWb2lyICdnaXQgLS1oZWxwJy4iCisKKyM6IGhlbHAuYzozODcKK21zZ2lkICIiCisiXG4iCisiRGlkIHlvdSBtZWFuIHRoaXM/IgorbXNnaWRfcGx1cmFsICIiCisiXG4iCisiRGlkIHlvdSBtZWFuIG9uZSBvZiB0aGVzZT8iCittc2dzdHJbMF0gIlxuIgorIlZvdWxpZXotdm91cyBkaXJlIGNlbGEgPyIKK21zZ3N0clsxXSAiXG5Wb3VsaWV6LXZvdXMgZGlyZSB1biBkZSBjZXV4LWzDoCA/IgorCisjOiBtZXJnZS5jOjU2Cittc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgY2FjaGUiCisKKyM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgorIzogYnVpbHRpbi9jbG9uZS5jOjY0NQorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgbm91dmVhdSBmaWNoaWVyIGQnaW5kZXgiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5MAorIywgYy1mb3JtYXQKK21zZ2lkICIoYmFkIGNvbW1pdClcbiIKK21zZ3N0ciAiKG1hdXZhaXMgY29tbWl0KVxuIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYWRkaW5mb19jYWNoZSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKK21zZ3N0ciAiw6ljaGVjIGRlIGFkZGluZm9fY2FjaGUgcG91ciBsZSBjaGVtaW4gJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY4Cittc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCittc2dzdHIgImVycmV1ciBkZSBjb25zdHJ1Y3Rpb24gZGVzIGFyYnJlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjcyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCittc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIGxlIGNoZW1pbiAnJXMnICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVtb3ZpbmcgJXMgdG8gbWFrZSByb29tIGZvciBzdWJkaXJlY3RvcnlcbiIKK21zZ3N0ciAiU3VwcHJlc3Npb24gZGUgJXMgcG91ciBmYWlyZSBkZSBsYSBwbGFjZSBwb3VyIGxlIHNvdXMtcsOpcGVydG9pcmVcbiIKKworIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCisjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4Cittc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKK21zZ3N0ciAiOiBwZXV0LcOqdHJlIHVuIGNvbmZsaXQgRC9GID8iCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOAorIywgYy1mb3JtYXQKK21zZ2lkICJyZWZ1c2luZyB0byBsb3NlIHVudHJhY2tlZCBmaWxlIGF0ICclcyciCittc2dzdHIgInJlZnVzIGRlIHBlcmRyZSBsZSBmaWNoaWVyIG5vbiBzdWl2aSAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzICclcyciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBsJ29iamV0ICVzICclcyciCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MAorIywgYy1mb3JtYXQKK21zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgorbXNnc3RyICJibG9iIGF0dGVuZHUgcG91ciAlcyAnJXMnIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMxMworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gb3BlbiAnJXMnIgorbXNnc3RyICLDqWNoZWMgw6AgbCdvdXZlcnR1cmUgZGUgJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgxCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCittc2dzdHIgIsOpY2hlYyDDoCBsYSBjcsOpYXRpb24gZHUgbGllbiBzeW1ib2xpcXVlICclcyciCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NAorIywgYy1mb3JtYXQKK21zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgorbXNnc3RyICJuZSBzYWl0IHBhcyB0cmFpdGVyICUwNm8gJXMgJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIyCittc2dpZCAiRmFpbGVkIHRvIGV4ZWN1dGUgaW50ZXJuYWwgbWVyZ2UiCittc2dzdHIgIsOJY2hlYyDDoCBsJ2V4w6ljdXRpb24gZGUgbGEgZnVzaW9uIGludGVybmUiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWRkICVzIHRvIGRhdGFiYXNlIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYWpvdXRlciAlcyDDoCBsYSBiYXNlIGRlIGRvbm7DqWVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDIKK21zZ2lkICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSBpbiB0aGUgdHJlZSIKK21zZ3N0ciAidHlwZSBkJ29iamV0IG5vbiBzdXBwb3J0w6kgZGFucyBsJ2FyYnJlIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIxIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKKyJpbiB0cmVlLiIKK21zZ3N0ciAiQ09ORkxJVCAoJXMvc3VwcHJlc3Npb24pIDogJXMgc3VwcHJpbcOpIGRhbnMgJXMgZXQgJXMgZGFucyAlcy4gVmVyc2lvbiAlcyBkZSAlcyBsYWlzc8OpZSBkYW5zIGwnYXJicmUuIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI3IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKKyJpbiB0cmVlIGF0ICVzLiIKK21zZ3N0ciAiQ09ORkxJVCAoJXMvc3VwcHJlc3Npb24pIDogJXMgc3VwcHJpbcOpIGRhbnMgJXMgZXQgJXMgZGFucyAlcy4gVmVyc2lvbiAlcyBkZSAlcyBsYWlzc8OpZSBkYW5zIGwnYXJicmUgZGFucyBsZSBmaWNoaWVyICVzLiIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MQorbXNnaWQgInJlbmFtZSIKK21zZ3N0ciAicmVub21tYWdlIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCittc2dpZCAicmVuYW1lZCIKK21zZ3N0ciAicmVub21tw6kiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCittc2dzdHIgIiVzIGVzdCB1biByw6lwZXJ0b2lyZSBkYW5zICVzIGFqb3V0w6kgcGx1dMO0dCBjb21tZSAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE1OQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQ09ORkxJQ1QgKHJlbmFtZS9yZW5hbWUpOiBSZW5hbWUgXCIlc1wiLT5cIiVzXCIgaW4gYnJhbmNoIFwiJXNcIiByZW5hbWUgXCIlcyIKKyJcIi0+XCIlc1wiIGluIFwiJXNcIiVzIgorbXNnc3RyICJDT05GTElUIChyZW5vbW1hZ2UvcmVub21tYWdlKSA6IFJlbm9tbWFnZSBkZSBcIiVzXCItPlwiJXNcIiBkYW5zIGxhIGJyYW5jaGUgXCIlc1wiIGV0IHJlbm9tbWFnZSBcIiVzXCItPlwiJXNcIiBkYW5zIFwiJXNcIiVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTY0Cittc2dpZCAiIChsZWZ0IHVucmVzb2x2ZWQpIgorbXNnc3RyICIgKGxhaXNzw6kgbm9uIHLDqXNvbHUpIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gUmVuYW1lICVzLT4lcyBpbiAlcyIKK21zZ3N0ciAiQ09ORkxJVCAocmVub21tYWdlL3Jlbm9tbWFnZSkgOiByZW5vbW1hZ2UgJyVzJy0+JyVzJyBkYW5zICVzLiBSZW5vbW1hZ2UgJyVzJy0+JyVzJyBkYW5zICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlbmFtaW5nICVzIHRvICVzIGFuZCAlcyB0byAlcyBpbnN0ZWFkIgorbXNnc3RyICJSZW5vbW1hZ2UgZGUgJXMgZW4gJXMgZXQgZGUgJXMgZW4gJXMgw6AgbGEgcGxhY2UiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9hZGQpOiBSZW5hbWUgJXMtPiVzIGluICVzLiAlcyBhZGRlZCBpbiAlcyIKK21zZ3N0ciAiQ09ORkxJVCAocmVub21tYWdlL2Fqb3V0KSA6IFJlbm9tbWFnZSBkZSAlcy0+JXMgZGFucyAlcy4gJXMgYWpvdXTDqSBkYW5zICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCittc2dzdHIgIkFqb3V0IGRlICVzIGZ1c2lvbm7DqSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyBhcyAlcyBpbnN0ZWFkIgorbXNnc3RyICJBam91dCBwbHV0w7R0IGNvbW1lICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTEzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlIGwnb2JqZXQgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyMsIGMtZm9ybWF0Cittc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCittc2dzdHIgImwnb2JqZXQgJXMgbidlc3QgcGFzIHVuIGJsb2IiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKK21zZ2lkICJtb2RpZnkiCittc2dzdHIgIm1vZGlmaWNhdGlvbiIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorbXNnaWQgIm1vZGlmaWVkIgorbXNnc3RyICJtb2RpZmnDqSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorbXNnaWQgImNvbnRlbnQiCittc2dzdHIgImNvbnRlbnUiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODEKK21zZ2lkICJhZGQvYWRkIgorbXNnc3RyICJham91dC9ham91dCIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIywgYy1mb3JtYXQKK21zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCittc2dzdHIgIiVzIGlnbm9yw6kgKGZ1c2lvbiBpZGVudGlxdWUgw6AgbCdleGlzdGFudCkiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXV0by1tZXJnaW5nICVzIgorbXNnc3RyICJGdXNpb24gYXV0b21hdGlxdWUgZGUgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzMgZ2l0LXN1Ym1vZHVsZS5zaDoxMDI5Cittc2dpZCAic3VibW9kdWxlIgorbXNnc3RyICJzb3VzLW1vZHVsZSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIywgYy1mb3JtYXQKK21zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKK21zZ3N0ciAiQ09ORkxJVCAoJXMpIDogQ29uZmxpdCBkZSBmdXNpb24gZGFucyAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZW1vdmluZyAlcyIKK21zZ3N0ciAiU3VwcHJlc3Npb24gZGUgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKK21zZ2lkICJmaWxlL2RpcmVjdG9yeSIKK21zZ3N0ciAiZmljaGllci9yw6lwZXJ0b2lyZSIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorbXNnaWQgImRpcmVjdG9yeS9maWxlIgorbXNnc3RyICJyw6lwZXJ0b2lyZS9maWNoaWVyIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNPTkZMSUNUICglcyk6IFRoZXJlIGlzIGEgZGlyZWN0b3J5IHdpdGggbmFtZSAlcyBpbiAlcy4gQWRkaW5nICVzIGFzICVzIgorbXNnc3RyICJDT05GTElUICglcykgOiBJbCB5IGEgdW4gcsOpcGVydG9pcmUgbm9tbcOpICVzIGRhbnMgJXMuIEFqb3V0IGRlICVzIGNvbW1lICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcwCisjLCBjLWZvcm1hdAorbXNnaWQgIkFkZGluZyAlcyIKK21zZ3N0ciAiQWpvdXQgZGUgJXMiCisKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODcKK21zZ2lkICJGYXRhbCBtZXJnZSBmYWlsdXJlLCBzaG91bGRuJ3QgaGFwcGVuLiIKK21zZ3N0ciAiw4ljaGVjIGZhdGFsIGRlIGZ1c2lvbiwgcXVpIG5lIGRldnJhaXQgamFtYWlzIGFycml2ZXIuIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA2Cittc2dpZCAiQWxyZWFkeSB1cC10by1kYXRlISIKK21zZ3N0ciAiRMOpasOgIMOgIGpvdXIgISIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNQorIywgYy1mb3JtYXQKK21zZ2lkICJtZXJnaW5nIG9mIHRyZWVzICVzIGFuZCAlcyBmYWlsZWQiCittc2dzdHIgIsOpY2hlYyBkZSBmdXNpb24gZGVzIGFyYnJlcyAlcyBldCAlcyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIywgYy1mb3JtYXQKK21zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgorbXNnc3RyICJDaGVtaW4gbm9uIHRyYWl0w6kgPz8/ICVzIgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkwCittc2dpZCAiTWVyZ2luZzoiCittc2dzdHIgIkZ1c2lvbiA6IgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjLCBjLWZvcm1hdAorbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCittc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgorbXNnc3RyWzBdICIldSBhbmPDqnRyZSBjb21tdW4gdHJvdXbDqSA6IgorbXNnc3RyWzFdICIldSBhbmPDqnRyZXMgY29tbXVucyB0cm91dsOpcyA6IgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQwCittc2dpZCAibWVyZ2UgcmV0dXJuZWQgbm8gY29tbWl0IgorbXNnc3RyICJsYSBmdXNpb24gbidhIHBhcyByZXRvdXJuw6kgZGUgY29tbWl0IgorCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGwnb2JqZXQgJyVzJyIKKworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAwOSBidWlsdGluL21lcmdlLmM6NjU4Cittc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGluZGV4LiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbCdpbmRleC4iCisKKyM6IG9iamVjdC5jOjE5NQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2Ugb2JqZWN0OiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGwnb2JqZXQgOiAlcyIKKworIzogcGFyc2Utb3B0aW9ucy5jOjQ4OQorbXNnaWQgIi4uLiIKK21zZ3N0ciAiLi4uIgorCisjOiBwYXJzZS1vcHRpb25zLmM6NTA3CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyIKK21zZ3N0ciAidXNhZ2UgOiAlcyIKKworIy4gVFJBTlNMQVRPUlM6IHRoZSBjb2xvbiBoZXJlIHNob3VsZCBhbGlnbiB3aXRoIHRoZQorIy4gb25lIGluICJ1c2FnZTogJXMiIHRyYW5zbGF0aW9uCisjOiBwYXJzZS1vcHRpb25zLmM6NTExCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgIG9yOiAlcyIKK21zZ3N0ciAiICAgb3UgOiAlcyIKKworIzogcGFyc2Utb3B0aW9ucy5jOjUxNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgJXMiCittc2dzdHIgIiAgICAlcyIKKworIzogcGFyc2Utb3B0aW9ucy5jOjU0OAorbXNnaWQgIi1OVU0iCittc2dzdHIgIi1OVU0iCisKKyM6IHBhdGhzcGVjLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGF0aCAnJXMnIGlzIGluIHN1Ym1vZHVsZSAnJS4qcyciCittc2dzdHIgIkxlIGNoZW1pbiAnJXMnIGVzdCBkYW5zIGxlIHNvdXMtbW9kdWxlICclLipzJyIKKworIzogcGF0aHNwZWMuYzo5OQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCittc2dzdHIgIiclcycgZXN0IGF1IGRlbMOgIGQndW4gbGllbiBzeW1ib2xpcXVlIgorCisjOiByZW1vdGUuYzoxNzgxCisjLCBjLWZvcm1hdAorbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgorbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCittc2dzdHJbMF0gIlZvdHJlIGJyYW5jaGUgZXN0IGVuIGF2YW5jZSBzdXIgJyVzJyBkZSAlZCBjb21taXQuXG4iCittc2dzdHJbMV0gIlZvdHJlIGJyYW5jaGUgZXN0IGVuIGF2YW5jZSBzdXIgJyVzJyBkZSAlZCBjb21taXRzLlxuIgorCisjOiByZW1vdGUuYzoxNzg3Cittc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcHVzaFwiIHBvdXIgcHVibGllciB2b3MgY29tbWl0cyBsb2NhdXgpXG4iCisKKyM6IHJlbW90ZS5jOjE3OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgorbXNnaWRfcGx1cmFsICIiCisiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0cywgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKK21zZ3N0clswXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gcmV0YXJkIHN1ciAnJXMnIGRlICVkIGNvbW1pdCwgZXQgcGV1dCDDqnRyZSBtaXNlIMOgIGpvdXIgZW4gYXZhbmNlIHJhcGlkZS5cbiIKK21zZ3N0clsxXSAiVm90cmUgYnJhbmNoZSBlc3QgZW4gcmV0YXJkIHN1ciAnJXMnIGRlICVkIGNvbW1pdHMsIGV0IHBldXQgw6p0cmUgbWlzZSDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUuXG4iCisKKyM6IHJlbW90ZS5jOjE3OTgKK21zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcHVsbFwiIHBvdXIgbWV0dHJlIMOgIGpvdXIgdm90cmUgYnJhbmNoZSBsb2NhbGUpXG4iCisKKyM6IHJlbW90ZS5jOjE4MDEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdXIgYnJhbmNoIGFuZCAnJXMnIGhhdmUgZGl2ZXJnZWQsXG4iCisiYW5kIGhhdmUgJWQgYW5kICVkIGRpZmZlcmVudCBjb21taXQgZWFjaCwgcmVzcGVjdGl2ZWx5LlxuIgorbXNnaWRfcGx1cmFsICIiCisiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKKyJhbmQgaGF2ZSAlZCBhbmQgJWQgZGlmZmVyZW50IGNvbW1pdHMgZWFjaCwgcmVzcGVjdGl2ZWx5LlxuIgorbXNnc3RyWzBdICJWb3RyZSBicmFuY2hlIGV0ICclcycgb250IGRpdmVyZ8OpLFxuIgorImV0IG9udCAlZCBldCAlZCBjb21taXQgZGlmZsOpcmVudCBjaGFjdW5lIHJlc3BlY3RpdmVtZW50LlxuIgorbXNnc3RyWzFdICJWb3RyZSBicmFuY2hlIGV0ICclcycgb250IGRpdmVyZ8OpLFxuIgorImV0IG9udCAlZCBldCAlZCBjb21taXRzIGRpZmbDqXJlbnRzIGNoYWN1bmUgcmVzcGVjdGl2ZW1lbnQuXG4iCisKKyM6IHJlbW90ZS5jOjE4MTEKK21zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHB1bGxcIiBwb3VyIGZ1c2lvbm5lciBsYSBicmFuY2hlIGRpc3RhbnRlIGRhbnMgbGEgdsO0dHJlKVxuIgorCisjOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc3NiBidWlsdGluL21lcmdlLmM6ODg5IGJ1aWx0aW4vbWVyZ2UuYzo5OTkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDA5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmciCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgJyVzJyBlbiDDqWNyaXR1cmUiCisKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzM1IGJ1aWx0aW4vbWVyZ2UuYzo3NzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDAxIGJ1aWx0aW4vbWVyZ2UuYzoxMDE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBkYW5zICclcyciCisKKyM6IHNlcXVlbmNlci5jOjIyOQorbXNnaWQgIiIKKyJhZnRlciByZXNvbHZpbmcgdGhlIGNvbmZsaWN0cywgbWFyayB0aGUgY29ycmVjdGVkIHBhdGhzXG4iCisid2l0aCAnZ2l0IGFkZCA8cGF0aHM+JyBvciAnZ2l0IHJtIDxwYXRocz4nIgorbXNnc3RyICJhcHLDqHMgcsOpc29sdXRpb24gZGVzIGNvbmZsaXRzLCBtYXJxdWV6IGxlcyBjaGVtaW5zIGNvcnJpZ8Opc1xuIgorImF2ZWMgJ2dpdCBhZGQgPGNoZW1pbnM+JyBvdSAnZ2l0IHJtIDxjaGVtaW5zPiciCisKKyM6IHNlcXVlbmNlci5jOjIzMgorbXNnaWQgIiIKKyJhZnRlciByZXNvbHZpbmcgdGhlIGNvbmZsaWN0cywgbWFyayB0aGUgY29ycmVjdGVkIHBhdGhzXG4iCisid2l0aCAnZ2l0IGFkZCA8cGF0aHM+JyBvciAnZ2l0IHJtIDxwYXRocz4nXG4iCisiYW5kIGNvbW1pdCB0aGUgcmVzdWx0IHdpdGggJ2dpdCBjb21taXQnIgorbXNnc3RyICIiCisiYXByw6hzIHLDqXNvbHV0aW9uIGRlcyBjb25mbGl0cywgbWFycXVleiBsZXMgY2hlbWlucyBjb3JyaWfDqXNcbiIKKyJhdmVjICdnaXQgYWRkIDxjaGVtaW5zPicgb3UgJ2dpdCBybSA8Y2hlbWlucz4nXG4iCisicHVpcyB2YWxpZGV6IGxlIHLDqXN1bHRhdCBhdmVjICdnaXQgY29tbWl0JyIKKworIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBkYW5zICVzIgorCisjOiBzZXF1ZW5jZXIuYzoyNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMiCittc2dzdHIgIkVycmV1ciDDoCBsJ2VtYmFsbGFnZSBkZSAlcyIKKworIzogc2VxdWVuY2VyLmM6MjYzCittc2dpZCAiWW91ciBsb2NhbCBjaGFuZ2VzIHdvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IGNoZXJyeS1waWNrLiIKK21zZ3N0ciAiVm9zIG1vZGlmaWNhdGlvbnMgbG9jYWxlcyBzZXJhaWVudCDDqWNyYXPDqWVzIHBhciBjaGVycnktcGljay4iCisKKyM6IHNlcXVlbmNlci5jOjI2NQorbXNnaWQgIllvdXIgbG9jYWwgY2hhbmdlcyB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSByZXZlcnQuIgorbXNnc3RyICJWb3MgbW9kaWZpY2F0aW9ucyBsb2NhbGVzIHNlcmFpZW50IMOpY3Jhc8OpZXMgcGFyIHJldmVydC4iCisKKyM6IHNlcXVlbmNlci5jOjI2OAorbXNnaWQgIkNvbW1pdCB5b3VyIGNoYW5nZXMgb3Igc3Rhc2ggdGhlbSB0byBwcm9jZWVkLiIKK21zZ3N0ciAiVmFsaWRleiB2b3MgbW9kaWZpY2F0aW9ucyBvdSByZW1pc2V6LWxlcyBwb3VyIGNvbnRpbnVlci4iCisKKyMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKKyM6IHNlcXVlbmNlci5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgorbXNnc3RyICIlczogSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgbm91dmVhdSBmaWNoaWVyIGluZGV4IgorCisjOiBzZXF1ZW5jZXIuYzozNTAKK21zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHLDqXNvdWRyZSBsZSBjb21taXQgSEVBRFxuIgorCisjOiBzZXF1ZW5jZXIuYzozNzEKK21zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsJ2FyYnJlIGRlIGNhY2hlXG4iCisKKyM6IHNlcXVlbmNlci5jOjQxNgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgcGFyc2UgY29tbWl0ICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsZSBjb21taXQgJXNcbiIKKworIzogc2VxdWVuY2VyLmM6NDIxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCittc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsZSBjb21taXQgcGFyZW50ICVzXG4iCisKKyM6IHNlcXVlbmNlci5jOjQ4NworbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCittc2dzdHIgIlZvdHJlIGZpY2hpZXIgZCdpbmRleCBuJ2VzdCBwYXMgZnVzaW9ubsOpLiIKKworIzogc2VxdWVuY2VyLmM6NTA2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKK21zZ3N0ciAiTGUgY29tbWl0ICVzIGVzdCB1bmUgZnVzaW9uIG1haXMgbCdvcHRpb24gLW0gbidhIHBhcyDDqXTDqSBzcMOpY2lmacOpZS4iCisKKyM6IHNlcXVlbmNlci5jOjUxNAorIywgYy1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgZG9lcyBub3QgaGF2ZSBwYXJlbnQgJWQiCittc2dzdHIgIkxlIGNvbW1pdCAlcyBuJ2EgcGFzIGxlIHBhcmVudCAlZCIKKworIzogc2VxdWVuY2VyLmM6NTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCittc2dzdHIgIlVuZSBicmFuY2hlIHByaW5jaXBhbGUgYSDDqXTDqSBzcMOpY2lmacOpZSBtYWlzIGxlIGNvbW1pdCAlcyBuJ2VzdCBwYXMgdW5lIGZ1c2lvbi4iCisKKyMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgorIy4gImNoZXJyeS1waWNrIiwgdGhlIHNlY29uZCAlcyBhIFNIQTEKKyM6IHNlcXVlbmNlci5jOjUzMQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCittc2dzdHIgIiVzIDogaW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxlIGNvbW1pdCBwYXJlbnQgJXMiCisKKyM6IHNlcXVlbmNlci5jOjUzNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ29idGVuaXIgdW4gbWVzc2FnZSBkZSB2YWxpZGF0aW9uIHBvdXIgJXMiCisKKyM6IHNlcXVlbmNlci5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYW5udWxlciAlcy4uLiAlcyIKKworIzogc2VxdWVuY2VyLmM6NjIyCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ2FwcGxpcXVlciAlcy4uLiAlcyIKKworIzogc2VxdWVuY2VyLmM6NjU0Cittc2dpZCAiZW1wdHkgY29tbWl0IHNldCBwYXNzZWQiCittc2dzdHIgImwnZW5zZW1ibGUgZGUgY29tbWl0cyBzcMOpZmljaWZpw6kgZXN0IHZpZGUiCisKKyM6IHNlcXVlbmNlci5jOjY2MgorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKK21zZ3N0ciAiZ2l0ICVzIDogw6ljaGVjIMOgIGxhIGxlY3R1cmUgZGUgbCdpbmRleCIKKworIzogc2VxdWVuY2VyLmM6NjY3CisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgorbXNnc3RyICJnaXQgJXMgOiDDqWNoZWMgZHUgcmFmZnJhw65jaGlzc2VtZW50IGRlIGwnaW5kZXgiCisKKyM6IHNlcXVlbmNlci5jOjcyNQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgJXMgcGVuZGFudCB1biAlcyIKKworIzogc2VxdWVuY2VyLmM6NzQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FuYWx5c2VyIGxhIGxpZ25lICVkLiIKKworIzogc2VxdWVuY2VyLmM6NzUyCittc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgorbXNnc3RyICJBdWN1biBjb21taXQgYW5hbHlzw6kuIgorCisjOiBzZXF1ZW5jZXIuYzo3NjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCittc2dzdHIgIkltcG9zc2libGUgZCdvdXZyaXIgJXMiCisKKyM6IHNlcXVlbmNlci5jOjc2OQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSAlcy4iCisKKyM6IHNlcXVlbmNlci5jOjc3NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCittc2dzdHIgIkZldWlsbGUgZCdpbnN0cnVjdGlvbiBpbnV0aWxpc2FibGUgOiAlcyIKKworIzogc2VxdWVuY2VyLmM6ODA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQga2V5OiAlcyIKK21zZ3N0ciAiQ2zDqSBpbnZhbGlkZTogJXMiCisKKyM6IHNlcXVlbmNlci5jOjgwNworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCittc2dzdHIgIlZhbGV1ciBpbnZhbGlkZSBwb3VyICVzIDogJXMiCisKKyM6IHNlcXVlbmNlci5jOjgxOQorIywgYy1mb3JtYXQKK21zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCittc2dzdHIgIkZldWlsbGUgZCdvcHRpb25zIG1hbGZvcm3DqWUgOiAlcyIKKworIzogc2VxdWVuY2VyLmM6ODQwCittc2dpZCAiYSBjaGVycnktcGljayBvciByZXZlcnQgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyIKK21zZ3N0ciAidW4gcGljb3JhZ2Ugb3UgdW4gcmV0b3VyIGVzdCBkw6lqw6AgZW4gY291cnMiCisKKyM6IHNlcXVlbmNlci5jOjg0MQorbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCittc2dzdHIgImVzc2F5ZXogXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWV8LS1xdWl0fC0tIGFib3J0KVwiIgorCisjOiBzZXF1ZW5jZXIuYzo4NDUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBzZXF1ZW5jZXIgZGlyZWN0b3J5ICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGNyw6llciBsZSByw6lwZXJ0b2lyZSBkZSBzw6lxdWVuY2V1ciAlcyIKKworIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCittc2dzdHIgIkVycmV1ciBsb3JzIGRlIGwnZW1iYWxsYWdlIGRlICVzLiIKKworIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKK21zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCittc2dzdHIgImF1Y3VuIHBpY29yYWdlIG91IHJldG91ciBlbiBjb3VycyIKKworIzogc2VxdWVuY2VyLmM6ODgyCittc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSByw6lzb3VkcmUgSEVBRCIKKworIzogc2VxdWVuY2VyLmM6ODg0Cittc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCittc2dzdHIgImltcG9zc2libGUgZCdhYmFuZG9ubmVyIGRlcHVpcyB1bmUgYnJhbmNoZSBub24gZW5jb3JlIGNyw6nDqWUiCisKKyM6IHNlcXVlbmNlci5jOjkwNiBidWlsdGluL2FwcGx5LmM6NDA2MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCittc2dzdHIgImltcG9zc2libGUgZCdvdXZyaXIgJXMgOiAlcyIKKworIzogc2VxdWVuY2VyLmM6OTA5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICVzIDogJXMiCisKKyM6IHNlcXVlbmNlci5jOjkxMAorbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCittc2dzdHIgImZpbiBkZSBmaWNoaWVyIGluYXR0ZW5kdWUiCisKKyM6IHNlcXVlbmNlci5jOjkxNgorIywgYy1mb3JtYXQKK21zZ2lkICJzdG9yZWQgcHJlLWNoZXJyeS1waWNrIEhFQUQgZmlsZSAnJXMnIGlzIGNvcnJ1cHQiCittc2dzdHIgImxlIGZpY2hpZXIgSEVBRCBkZSBwcsOpcGFyYXRpb24gZGUgcGljb3JhZ2UgJyVzJyBlc3QgY29ycm9tcHUiCisKKyM6IHNlcXVlbmNlci5jOjkzOQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmb3JtYXRlciAlcy4iCisKKyM6IHNlcXVlbmNlci5jOjEwODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCittc2dzdHIgIiVzIDogaW1wb3NzaWJsZSBkZSBwaWNvcmVyIHVuICVzIgorCisjOiBzZXF1ZW5jZXIuYzoxMDg1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCittc2dzdHIgIiVzIDogbWF1dmFpc2UgcsOpdmlzaW9uIgorCisjOiBzZXF1ZW5jZXIuYzoxMTE5Cittc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgorbXNnc3RyICJJbXBvc3NpYmxlIGQnYW5udWxlciBlbiB0YW50IHF1ZSBjb21taXQgaW5pdGlhbCIKKworIzogc2VxdWVuY2VyLmM6MTEyMAorbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwaWNvcmVyIHZlcnMgdW5lIEhFQUQgdmlkZSIKKworIzogc2hhMV9uYW1lLmM6MTAzNgorbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCittc2dzdHIgIkhFQUQgbmUgcG9pbnRlIHBhcyBzdXIgdW5lIGJyYW5jaGUiCisKKyM6IHNoYTFfbmFtZS5jOjEwMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gc3VjaCBicmFuY2g6ICclcyciCittc2dzdHIgIkJyYW5jaGUgaW5jb25udWUgOiAnJXMnIgorCisjOiBzaGExX25hbWUuYzoxMDQxCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgorbXNnc3RyICJBdWN1bmUgYnJhbmNoZSBhbW9udCBjb25maWd1csOpZSBwb3VyIGxhIGJyYW5jaGUgJyVzJyIKKworIzogc2hhMV9uYW1lLmM6MTA0NAorIywgYy1mb3JtYXQKK21zZ2lkICJVcHN0cmVhbSBicmFuY2ggJyVzJyBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCIKK21zZ3N0ciAiTGEgYnJhbmNoZSBhbW9udCAnJXMnIG4nZXN0IHBhcyBzdG9ja8OpZSBjb21tZSBicmFuY2hlIGRlIHN1aXZpIgorCisjOiB3cmFwcGVyLmM6NDA4CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCittc2dzdHIgImltcG9zc2libGUgZCdhY2PDqWRlciDDoCAnJXMnIDogJXMiCisKKyM6IHdyYXBwZXIuYzo0MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGFjY2VzcyAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnYWNjw6lkZXIgw6AgJyVzJyIKKworIzogd3JhcHBlci5jOjQzNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSByZWNoZXJjaGVyIGwndXRpbGlzYXRldXIgYWN0dWVsIGRhbnMgbGUgZmljaGllciBkZSBtb3RzIGRlIHBhc3NlIDogJXMiCisKKyM6IHdyYXBwZXIuYzo0MzUKK21zZ2lkICJubyBzdWNoIHVzZXIiCittc2dzdHIgInV0aWxpc2F0ZXVyIGluY29ubnUiCisKKyM6IHd0LXN0YXR1cy5jOjE0MAorbXNnaWQgIlVubWVyZ2VkIHBhdGhzOiIKK21zZ3N0ciAiQ2hlbWlucyBub24gZnVzaW9ubsOpcyA6IgorCisjOiB3dC1zdGF0dXMuYzoxNjcgd3Qtc3RhdHVzLmM6MTk0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgKHVzZSBcImdpdCByZXNldCAlcyA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmVzZXQgJXMgPGZpY2hpZXI+Li4uXCIgcG91ciBkw6lzaW5kZXhlcikiCisKKyM6IHd0LXN0YXR1cy5jOjE2OSB3dC1zdGF0dXMuYzoxOTYKK21zZ2lkICIgICh1c2UgXCJnaXQgcm0gLS1jYWNoZWQgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWNoaWVyPi4uLlwiIHBvdXIgZMOpc2luZGV4ZXIpIgorCisjOiB3dC1zdGF0dXMuYzoxNzMKK21zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZCA8ZmljaGllcj4uLi5cIiBwb3VyIG1hcnF1ZXIgY29tbWUgcsOpc29sdSkiCisKKyM6IHd0LXN0YXR1cy5jOjE3NSB3dC1zdGF0dXMuYzoxNzkKK21zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZC9ybSA8ZmljaGllcj4uLi5cIiBzaSBuw6ljZXNzYWlyZSBwb3VyIG1hcnF1ZXIgY29tbWUgcsOpc29sdSkiCisKKyM6IHd0LXN0YXR1cy5jOjE3NworbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBybSA8ZmljaGllcj4uLi5cIiBwb3VyIG1hcnF1ZXIgY29tbWUgcsOpc29sdSkiCisKKyM6IHd0LXN0YXR1cy5jOjE4OAorbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKK21zZ3N0ciAiTW9kaWZpY2F0aW9ucyBxdWkgc2Vyb250IHZhbGlkw6llcyA6IgorCisjOiB3dC1zdGF0dXMuYzoyMDYKK21zZ2lkICJDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoiCittc2dzdHIgIk1vZGlmaWNhdGlvbnMgcXVpIG5lIHNlcm9udCBwYXMgdmFsaWTDqWVzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjIxMAorbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhZGQgPGZpY2hpZXI+Li4uXCIgcG91ciBtZXR0cmUgw6Agam91ciBjZSBxdWkgc2VyYSB2YWxpZMOpKSIKKworIzogd3Qtc3RhdHVzLmM6MjEyCittc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGFkZC9ybSA8ZmljaGllcj4uLi5cIiBwb3VyIG1ldHRyZSDDoCBqb3VyIGNlIHF1aSBzZXJhIHZhbGlkw6kpIgorCisjOiB3dC1zdGF0dXMuYzoyMTMKK21zZ2lkICIiCisiICAodXNlIFwiZ2l0IGNoZWNrb3V0IC0tIDxmaWxlPi4uLlwiIHRvIGRpc2NhcmQgY2hhbmdlcyBpbiB3b3JraW5nIGRpcmVjdG9yeSkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IGNoZWNrb3V0IC0tIDxmaWNoaWVyPi4uLlwiIHBvdXIgYW5udWxlciBsZXMgbW9kaWZpY2F0aW9ucyBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwpIgorCisjOiB3dC1zdGF0dXMuYzoyMTUKK21zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCittc2dzdHIgIiAgKHZhbGlkZXIgb3UgYW5udWxlciBsZSBjb250ZW51IG5vbiBzdWl2aSBvdSBtb2RpZmnDqSBkYW5zIGxlcyBzb3VzLW1vZHVsZXMpIgorCisjOiB3dC1zdGF0dXMuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAodXNlIFwiZ2l0ICVzIDxmaWxlPi4uLlwiIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0ICVzIDxmaWNoaWVyPi4uLlwiIHBvdXIgaW5jbHVyZSBkYW5zIGNlIHF1aSBzZXJhIHZhbGlkw6kpIgorCisjOiB3dC1zdGF0dXMuYzoyNDQKK21zZ2lkICJidWciCittc2dzdHIgImJvZ3VlIgorCisjOiB3dC1zdGF0dXMuYzoyNDkKK21zZ2lkICJib3RoIGRlbGV0ZWQ6IgorbXNnc3RyICJzdXBwcmltw6kgZGVzIGRldXggY8O0dMOpcyA6IgorCisjOiB3dC1zdGF0dXMuYzoyNTAKK21zZ2lkICJhZGRlZCBieSB1czoiCittc2dzdHIgImFqb3V0w6kgcGFyIG5vdXMgOiIKKworIzogd3Qtc3RhdHVzLmM6MjUxCittc2dpZCAiZGVsZXRlZCBieSB0aGVtOiIKK21zZ3N0ciAic3VwcHJpbcOpIHBhciBldXggOiIKKworIzogd3Qtc3RhdHVzLmM6MjUyCittc2dpZCAiYWRkZWQgYnkgdGhlbToiCittc2dzdHIgImFqb3V0w6kgcGFyIGV1eCA6IgorCisjOiB3dC1zdGF0dXMuYzoyNTMKK21zZ2lkICJkZWxldGVkIGJ5IHVzOiIKK21zZ3N0ciAic3VwcHJpbcOpIHBhciBub3VzIDoiCisKKyM6IHd0LXN0YXR1cy5jOjI1NAorbXNnaWQgImJvdGggYWRkZWQ6IgorbXNnc3RyICJham91dMOpIGRlIGRldXggY8O0dMOpcyA6IgorCisjOiB3dC1zdGF0dXMuYzoyNTUKK21zZ2lkICJib3RoIG1vZGlmaWVkOiIKK21zZ3N0ciAibW9kaWZpw6kgZGVzIGRldXggY8O0dMOpcyA6IgorCisjOiB3dC1zdGF0dXMuYzoyODUKK21zZ2lkICJuZXcgY29tbWl0cywgIgorbXNnc3RyICJub3V2ZWF1eCBjb21taXRzLCAiCisKKyM6IHd0LXN0YXR1cy5jOjI4NworbXNnaWQgIm1vZGlmaWVkIGNvbnRlbnQsICIKK21zZ3N0ciAiY29udGVudSBtb2RpZmnDqSwgIgorCisjOiB3dC1zdGF0dXMuYzoyODkKK21zZ2lkICJ1bnRyYWNrZWQgY29udGVudCwgIgorbXNnc3RyICJjb250ZW51IG5vbiBzdWl2aSwgIgorCisjOiB3dC1zdGF0dXMuYzozMDYKKyMsIGMtZm9ybWF0Cittc2dpZCAibmV3IGZpbGU6ICAgJXMiCittc2dzdHIgIm5vdXZlYXUgOiAgICVzIgorCisjOiB3dC1zdGF0dXMuYzozMDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCittc2dzdHIgImNvcGnDqSA6ICAgICAlcyAtPiAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzEyCisjLCBjLWZvcm1hdAorbXNnaWQgImRlbGV0ZWQ6ICAgICVzIgorbXNnc3RyICJzdXBwcmltw6kgOiAgJXMiCisKKyM6IHd0LXN0YXR1cy5jOjMxNQorIywgYy1mb3JtYXQKK21zZ2lkICJtb2RpZmllZDogICAlcyIKK21zZ3N0ciAibW9kaWZpw6kgOiAgICVzIgorCisjOiB3dC1zdGF0dXMuYzozMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCittc2dzdHIgInJlbm9tbcOpIDogICAlcyAtPiAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzIxCisjLCBjLWZvcm1hdAorbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgorbXNnc3RyICJudiB0eXBlIDogICAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVua25vd246ICAgICVzIgorbXNnc3RyICJpbmNvbm51IDogICAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzI3CisjLCBjLWZvcm1hdAorbXNnaWQgInVubWVyZ2VkOiAgICVzIgorbXNnc3RyICJub24gZnVzLiA6ICAlcyIKKworIzogd3Qtc3RhdHVzLmM6MzMwCisjLCBjLWZvcm1hdAorbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgorbXNnc3RyICJib2d1ZSA6IMOpdGF0IGRlIGRpZmYgbm9uIGfDqXLDqSAlYyIKKworIzogd3Qtc3RhdHVzLmM6ODAzCittc2dpZCAiWW91IGhhdmUgdW5tZXJnZWQgcGF0aHMuIgorbXNnc3RyICJWb3VzIGF2ZXogZGVzIGNoZW1pbnMgbm9uIGZ1c2lvbm7DqXMuIgorCisjOiB3dC1zdGF0dXMuYzo4MDYgd3Qtc3RhdHVzLmM6OTU4Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIKK21zZ3N0ciAiICAocsOpZ2xleiBsZXMgY29uZmxpdHMgZXQgbGFuY2V6IFwiZ2l0IGNvbW1pdFwiKSIKKworIzogd3Qtc3RhdHVzLmM6ODA5Cittc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKK21zZ3N0ciAiVG91cyBsZXMgY29uZmxpdHMgc29udCByw6lnbMOpcyBtYWlzIGxhIGZ1c2lvbiBuJ2VzdCBwYXMgdGVybWluw6llLiIKKworIzogd3Qtc3RhdHVzLmM6ODEyCittc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdFwiIHRvIGNvbmNsdWRlIG1lcmdlKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgY29tbWl0XCIgcG91ciB0ZXJtaW5lciBsYSBmdXNpb24pIgorCisjOiB3dC1zdGF0dXMuYzo4MjIKK21zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCittc2dzdHIgIlZvdXMgw6p0ZXMgYXUgbWlsaWV1IGQndW5lIHNlc3Npb24gYW0uIgorCisjOiB3dC1zdGF0dXMuYzo4MjUKK21zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCittc2dzdHIgIkxlIHBhdGNoIGFjdHVlbCBlc3QgdmlkZS4iCisKKyM6IHd0LXN0YXR1cy5jOjgyOQorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCittc2dzdHIgIiAgKHLDqWdsZXogbGVzIGNvbmZsaXRzIHB1aXMgbGFuY2V6IFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCisKKyM6IHd0LXN0YXR1cy5jOjgzMQorbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBhbSAtLXNraXBcIiBwb3VyIHNhdXRlciBjZSBwYXRjaCkiCisKKyM6IHd0LXN0YXR1cy5jOjgzMworbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYW0gLS1hYm9ydFwiIHBvdXIgcmVzdGF1cmVyIGxhIGJyYW5jaGUgZCdvcmlnaW5lKSIKKworIzogd3Qtc3RhdHVzLmM6ODkzIHd0LXN0YXR1cy5jOjkxMAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiB0cmFpbiBkZSByZWJhc2VyIGxhIGJyYW5jaGUgJyVzJyBzdXIgJyVzJy4iCisKKyM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCittc2dzdHIgIlZvdXMgw6p0ZXMgZW4gdHJhaW4gZGUgcmViYXNlci4iCisKKyM6IHd0LXN0YXR1cy5jOjkwMQorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgIChyw6lzb2x2ZXogbGVzIGNvbmZsaXRzIHB1aXMgbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgorCisjOiB3dC1zdGF0dXMuYzo5MDMKK21zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBwb3VyIHNhdXRlciBjZSBwYXRjaCkiCisKKyM6IHd0LXN0YXR1cy5jOjkwNQorbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmViYXNlIC0tYWJvcnRcIiBwb3VyIGV4dHJhaXJlIGxhIGJyYW5jaGUgZCdvcmlnaW5lKSIKKworIzogd3Qtc3RhdHVzLmM6OTE4Cittc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgorbXNnc3RyICIgICh0b3VzIGxlcyBjb25mbGl0cyBzb250IHLDqXNvbHVzIDogbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgorCisjOiB3dC1zdGF0dXMuYzo5MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgZnJhY3Rpb25uZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UgZGUgbGEgYnJhbmNoZSAnJXMnIHN1ciAnJXMnLiIKKworIzogd3Qtc3RhdHVzLmM6OTI3Cittc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCittc2dzdHIgIlZvdXMgw6p0ZXMgYWN0dWVsbGVtZW50IGVuIHRyYWluIGRlIGZyYWN0aW9ubmVyIHVuIGNvbW1pdCBwZW5kYW50IHVuIHJlYmFzYWdlLiIKKworIzogd3Qtc3RhdHVzLmM6OTMwCittc2dpZCAiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCittc2dzdHIgIiAgKFVuZSBmb2lzIGxhIGNvcGllIGRlIHRyYXZhaWwgbmV0dG95w6llLCBsYW5jZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjkzNAorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgorbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkJ8OpZGl0ZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UgZGUgbGEgYnJhbmNoZSAnJXMnIHN1ciAnJXMnLiIKKworIzogd3Qtc3RhdHVzLmM6OTM5Cittc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgorbXNnc3RyICJWb3VzIMOqdGVzIGFjdHVlbGxlbWVudCBlbiB0cmFpbiBkJ8OpZGl0ZXIgdW4gY29tbWl0IHBlbmRhbnQgdW4gcmViYXNhZ2UuIgorCisjOiB3dC1zdGF0dXMuYzo5NDIKK21zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgorbXNnc3RyICIgICh1dGlsaXNleiBcImdpdCBjb21taXQgLS1hbWVuZFwiIHBvdXIgY29ycmlnZXIgbGUgY29tbWl0IGFjdHVlbCkiCisKKyM6IHd0LXN0YXR1cy5jOjk0NAorbXNnaWQgIiIKKyIgICh1c2UgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBxdWFuZCB2b3VzIMOqdGVzIHNhdGlzZmFpdCBkZSB2b3MgbW9kaWZpY2F0aW9ucykiCisKKyM6IHd0LXN0YXR1cy5jOjk1NAorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBhY3R1ZWxsZW1lbnQgZW4gdHJhaW4gZGUgcGljb3Jlci4iCisKKyM6IHd0LXN0YXR1cy5jOjk2MQorbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCittc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgY29tbWl0XCIpIgorCisjOiB3dC1zdGF0dXMuYzo5NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgcmV2ZXJ0aW5nIGNvbW1pdCAlcy4iCittc2dzdHIgIlZvdXMgw6p0ZXMgYWN0dWVsbGVtZW50IGVuIHRyYWluIGRlIHLDqXRhYmxpciBsZSBjb21taXQgJXMuIgorCisjOiB3dC1zdGF0dXMuYzo5NzUKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHLDqXNvbHZleiBsZXMgY29uZmxpdHMgZXQgbGFuY2V6IFwiZ2l0IHJldmVydCAtLWNvbnRpbnVlXCIpIgorCisjOiB3dC1zdGF0dXMuYzo5NzgKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCittc2dzdHIgIiAgKHRvdXMgbGVzIGNvbmZsaXRzIHNvbnQgcsOpc29sdXMgOiBsYW5jZXogXCJnaXQgcmV2ZXJ0IC0tY29udGludWVcIikiCisKKyM6IHd0LXN0YXR1cy5jOjk4MAorbXNnaWQgIiAgKHVzZSBcImdpdCByZXZlcnQgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgcmV2ZXJ0IG9wZXJhdGlvbikiCittc2dzdHIgIiAgKHV0aWxpc2V6IFwiZ2l0IHJldmVydCAtLWFib3J0XCIgcG91ciBhbm51bGVyIGxlIHLDqXRhYmxpc3NlbWVudCkiCisKKyM6IHd0LXN0YXR1cy5jOjk5MQorIywgYy1mb3JtYXQKK21zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBiaXNlY3RpbmcsIHN0YXJ0ZWQgZnJvbSBicmFuY2ggJyVzJy4iCittc2dzdHIgIlZvdXMgw6p0ZXMgZW4gY291cnMgZGUgYmlzc2VjdGlvbiwgZGVwdWlzIGxhIGJyYW5jaGUgJyVzJy4iCisKKyM6IHd0LXN0YXR1cy5jOjk5NQorbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGJpc2VjdGluZy4iCittc2dzdHIgIlZvdXMgw6p0ZXMgZW4gY291cnMgZGUgYmlzc2VjdGlvbi4iCisKKyM6IHd0LXN0YXR1cy5jOjk5OAorbXNnaWQgIiAgKHVzZSBcImdpdCBiaXNlY3QgcmVzZXRcIiB0byBnZXQgYmFjayB0byB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKK21zZ3N0ciAiICAodXRpbGlzZXogXCJnaXQgYmlzZWN0IHJlc2V0XCIgcG91ciByZXZlbmlyIMOgIGxhIGJyYW5jaGUgZCdvcmlnaW5lKSIKKworIzogd3Qtc3RhdHVzLmM6MTE3MworbXNnaWQgIk9uIGJyYW5jaCAiCittc2dzdHIgIlN1ciBsYSBicmFuY2hlICIKKworIzogd3Qtc3RhdHVzLmM6MTE4NAorbXNnaWQgIkhFQUQgZGV0YWNoZWQgYXQgIgorbXNnc3RyICJIRUFEIGTDqXRhY2jDqWUgc3VyICIKKworIzogd3Qtc3RhdHVzLmM6MTE4NgorbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCittc2dzdHIgIkhFQUQgZMOpdGFjaMOpZSBkZXB1aXMgIgorCisjOiB3dC1zdGF0dXMuYzoxMTg5Cittc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKK21zZ3N0ciAiQWN0dWVsbGVtZW50IHN1ciBhdWN1biBicmFuY2hlLiIKKworIzogd3Qtc3RhdHVzLmM6MTIwNgorbXNnaWQgIkluaXRpYWwgY29tbWl0IgorbXNnc3RyICJWYWxpZGF0aW9uIGluaXRpYWxlIgorCisjOiB3dC1zdGF0dXMuYzoxMjIwCittc2dpZCAiVW50cmFja2VkIGZpbGVzIgorbXNnc3RyICJGaWNoaWVycyBub24gc3VpdmlzIgorCisjOiB3dC1zdGF0dXMuYzoxMjIyCittc2dpZCAiSWdub3JlZCBmaWxlcyIKK21zZ3N0ciAiRmljaGllcnMgaWdub3LDqXMiCisKKyM6IHd0LXN0YXR1cy5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICdzdGF0dXMgLXVubydcbiIKKyJtYXkgc3BlZWQgaXQgdXAsIGJ1dCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBmb3JnZXQgdG8gYWRkXG4iCisibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKK21zZ3N0ciAiTCfDqW51bcOpcmF0aW9uIGRlcyBmaWNoaWVycyBub24gc3VpdmlzIGEgZHVyw6kgJS4yZiBzZWNvbmRlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorInBldXQgbCdhY2PDqWxlcmVyLCBtYWlzIHZvdXMgZGV2ZXogYWxvcnMgZmFpcmUgYXR0ZW50aW9uIMOgIG5lIHBhc1xuIgorIm91YmxpZXIgZCdham91dGVyIGxlcyBub3V2ZWF1eCBmaWNoaWVycyBwYXIgdm91cy1tw6ptZSAodm9pciAnZ2l0IGhlbHAgc3RhdHVzJykuIgorCisjOiB3dC1zdGF0dXMuYzoxMjMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVudHJhY2tlZCBmaWxlcyBub3QgbGlzdGVkJXMiCittc2dzdHIgIkZpY2hpZXJzIG5vbiBzdWl2aXMgbm9uIGxpc3TDqXMlcyIKKworIzogd3Qtc3RhdHVzLmM6MTIzNAorbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCittc2dzdHIgIiAodXRpbGlzZXogLXUgcG91ciBhZmZpY2hlciBsZXMgZmljaGllcnMgbm9uIHN1aXZpcykiCisKKyM6IHd0LXN0YXR1cy5jOjEyNDAKK21zZ2lkICJObyBjaGFuZ2VzIgorbXNnc3RyICJBdWN1bmUgbW9kaWZpY2F0aW9uIgorCisjOiB3dC1zdGF0dXMuYzoxMjQ1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIGNoYW5nZXMgYWRkZWQgdG8gY29tbWl0ICh1c2UgXCJnaXQgYWRkXCIgYW5kL29yIFwiZ2l0IGNvbW1pdCAtYVwiKVxuIgorbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIG4nYSDDqXTDqSBham91dMOpZSDDoCBsYSB2YWxpZGF0aW9uICh1dGlsaXNleiBcImdpdCBhZGRcIiBvdSBcImdpdCBjb21taXQgLWFcIilcbiIKKworIzogd3Qtc3RhdHVzLmM6MTI0OAorIywgYy1mb3JtYXQKK21zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgorbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb25cbiIKKworIzogd3Qtc3RhdHVzLmM6MTI1MQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgorInRyYWNrKVxuIgorbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gbWFpcyBkZXMgZmljaGllcnMgbm9uIHN1aXZpcyBzb250IHByw6lzZW50cyAodXRpbGlzZXogXCJnaXQgYWRkXCIgcG91ciBsZXMgc3VpdnJlKVxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjU0CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgorbXNnc3RyICJhdWN1bmUgbW9kaWZpY2F0aW9uIGFqb3V0w6llIMOgIGxhIHZhbGlkYXRpb24gbWFpcyBkZXMgZmljaGllcnMgbm9uIHN1aXZpcyBzb250IHByw6lzZW50c1xuIgorCisjOiB3dC1zdGF0dXMuYzoxMjU3CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0IChjcmVhdGUvY29weSBmaWxlcyBhbmQgdXNlIFwiZ2l0IGFkZFwiIHRvIHRyYWNrKVxuIgorbXNnc3RyICJyaWVuIMOgIHZhbGlkZXIgKGNyw6llei9jb3BpZXogZGVzIGZpY2hpZXJzIGV0IHV0aWxpc2V6IFwiZ2l0IGFkZFwiIHBvdXIgbGVzIHN1aXZyZSlcbiIKKworIzogd3Qtc3RhdHVzLmM6MTI2MCB3dC1zdGF0dXMuYzoxMjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCittc2dzdHIgInJpZW4gw6AgdmFsaWRlclxuIgorCisjOiB3dC1zdGF0dXMuYzoxMjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCittc2dzdHIgInJpZW4gw6AgdmFsaWRlciAodXRpbGlzZXogLXUgcG91ciBhZmZpY2hlciBsZXMgZmljaGllcnMgbm9uIHN1aXZpcylcbiIKKworIzogd3Qtc3RhdHVzLmM6MTI2NworIywgYy1mb3JtYXQKK21zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyBkaXJlY3RvcnkgY2xlYW5cbiIKK21zZ3N0ciAicmllbiDDoCB2YWxpZGVyLCBsYSBjb3BpZSBkZSB0cmF2YWlsIGVzdCBwcm9wcmVcbiIKKworIzogd3Qtc3RhdHVzLmM6MTM3NQorbXNnaWQgIkhFQUQgKG5vIGJyYW5jaCkiCittc2dzdHIgIkhFQUQgKGF1Y3VuZSBicmFuY2hlKSIKKworIzogd3Qtc3RhdHVzLmM6MTM4MQorbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKK21zZ3N0ciAiVmFsaWRhdGlvbiBpbml0aWFsZSBzdXIgIgorCisjOiB3dC1zdGF0dXMuYzoxMzk2Cittc2dpZCAiYmVoaW5kICIKK21zZ3N0ciAiZGVycmnDqHJlICIKKworIzogd3Qtc3RhdHVzLmM6MTM5OSB3dC1zdGF0dXMuYzoxNDAyCittc2dpZCAiYWhlYWQgIgorbXNnc3RyICJkZXZhbnQgIgorCisjOiB3dC1zdGF0dXMuYzoxNDA0Cittc2dpZCAiLCBiZWhpbmQgIgorbXNnc3RyICIsIGRlcnJpw6hyZSAiCisKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKK21zZ3N0ciAiZWNoZWMgbG9ycyBkZSBsJ3VubGluayBkZSAnJXMnIgorCisjOiBidWlsdGluL2FkZC5jOjIwCittc2dpZCAiZ2l0IGFkZCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgorbXNnc3RyICJnaXQgYWRkIFtvcHRpb25zXSBbLS1dIDxjaGVtaW4+Li4uIgorCisjLgorIy4gKiBUbyBiZSBjb25zaXN0ZW50IHdpdGggImdpdCBhZGQgLXAiIGFuZCBtb3N0IEdpdAorIy4gKiBjb21tYW5kcywgd2Ugc2hvdWxkIGRlZmF1bHQgdG8gYmVpbmcgdHJlZS13aWRlLCBidXQKKyMuICogdGhpcyBpcyBub3QgdGhlIG9yaWdpbmFsIGJlaGF2aW9yIGFuZCBjYW4ndCBiZQorIy4gKiBjaGFuZ2VkIHVudGlsIHVzZXJzIHRyYWluZWQgdGhlbXNlbHZlcyBub3QgdG8gdHlwZQorIy4gKiAiZ2l0IGFkZCAtdSIgb3IgImdpdCBhZGQgLUEiLiBGb3Igbm93LCB3ZSB3YXJuIGFuZAorIy4gKiBrZWVwIHRoZSBvbGQgYmVoYXZpb3IuIExhdGVyLCB0aGUgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQKKyMuICogdG8gdHJlZS13aWRlLCBrZWVwaW5nIHRoZSB3YXJuaW5nIGZvciBhIHdoaWxlLCBhbmQKKyMuICogZXZlbnR1YWxseSB3ZSBjYW4gZHJvcCB0aGUgd2FybmluZy4KKyMuCisjOiBidWlsdGluL2FkZC5jOjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgYmVoYXZpb3Igb2YgJ2dpdCBhZGQgJXMgKG9yICVzKScgd2l0aCBubyBwYXRoIGFyZ3VtZW50IGZyb20gYVxuIgorInN1YmRpcmVjdG9yeSBvZiB0aGUgdHJlZSB3aWxsIGNoYW5nZSBpbiBHaXQgMi4wIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgIgorImFueW1vcmUuXG4iCisiVG8gYWRkIGNvbnRlbnQgZm9yIHRoZSB3aG9sZSB0cmVlLCBydW46XG4iCisiXG4iCisiICBnaXQgYWRkICVzIDovXG4iCisiICAob3IgZ2l0IGFkZCAlcyA6LylcbiIKKyJcbiIKKyJUbyByZXN0cmljdCB0aGUgY29tbWFuZCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnksIHJ1bjpcbiIKKyJcbiIKKyIgIGdpdCBhZGQgJXMgLlxuIgorIiAgKG9yIGdpdCBhZGQgJXMgLilcbiIKKyJcbiIKKyJXaXRoIHRoZSBjdXJyZW50IEdpdCB2ZXJzaW9uLCB0aGUgY29tbWFuZCBpcyByZXN0cmljdGVkIHRvIHRoZSBjdXJyZW50ICIKKyJkaXJlY3RvcnkuXG4iCittc2dzdHIgIiIKKyJMZSBjb21wb3J0ZW1lbnQgZGUgJ2dpdCBhZGQgJXMgKG91ICVzKScgc2FucyBhcmd1bWVudCBkZSBjaGVtaW4gZGVwdWlzIHVuXG4iCisic291cy1yw6lwZXJ0b2lyZSBkdSBwcm9qZXQgdmEgY2hhbmdlciBkYW5zIEdpdCAyLjAgZXQgbmUgZG9pdCBwbHVzIMOqdHJlIHV0aWxpc8OpLlxuIgorIlBvdXIgYWpvdXRlciBsZSBjb250ZW51IGRlIHRvdXRlIGwnYXJib3Jlc2NlbmNlLCBsYW5jZXogOlxuIgorIlxuIgorIiAgZ2l0IGFkZCAlcyA6L1xuIgorIiAgKG91IGdpdCBhZGQgJXMgOi8pXG4iCisiXG4iCisiUG91ciByZXN0cmVpbmRyZSBsYSBjb21tYW5kZSBhdSByw6lwZXJ0b2lyZSBjb3VyYW50LCBsYW5jZXogOlxuIgorIlxuIgorIiAgZ2l0IGFkZCAlcyAuXG4iCisiICAob3UgZ2l0IGFkZCAlcyAuKVxuIgorIlxuIgorIkF2ZWMgbGEgdmVyc2lvbiBhY3R1ZWxsZSBkZSBHaXQsIGxhIGNvbW1hbmRlIGVzdCByZXN0cmVpbnRlIGF1IHLDqXBlcnRvaXJlIGNvdXJhbnQuXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgcmFuICdnaXQgYWRkJyB3aXRoIG5laXRoZXIgJy1BICgtLWFsbCknIG9yICctLWlnbm9yZS1yZW1vdmFsJyxcbiIKKyJ3aG9zZSBiZWhhdmlvdXIgd2lsbCBjaGFuZ2UgaW4gR2l0IDIuMCB3aXRoIHJlc3BlY3QgdG8gcGF0aHMgeW91IHJlbW92ZWQuXG4iCisiUGF0aHMgbGlrZSAnJXMnIHRoYXQgYXJlXG4iCisicmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlIGFyZSBpZ25vcmVkIHdpdGggdGhpcyB2ZXJzaW9uIG9mIEdpdC5cbiIKKyJcbiIKKyIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPHBhdGhzcGVjPicsIHdoaWNoIGlzIHRoZSBjdXJyZW50IGRlZmF1bHQsXG4iCisiICBpZ25vcmVzIHBhdGhzIHlvdSByZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWFsbCA8cGF0aHNwZWM+JyB3aWxsIGxldCB5b3UgYWxzbyByZWNvcmQgdGhlIHJlbW92YWxzLlxuIgorIlxuIgorIlJ1biAnZ2l0IHN0YXR1cycgdG8gY2hlY2sgdGhlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUuXG4iCittc2dzdHIgIiIKKyJWb3VzIGF2ZXogbGFuY8OpICdnaXQgYWRkJyBzYW5zICctQSAoLS1hbGwpJyBuaSAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCisiZG9udCBsZSBjb21wb3J0ZW1lbnQgdmEgY2hhbmdlciBkYW5zIEdpdCAyLjAgYXZlYyBsZSByZXNwZWN0IGRlcyBjaGVtaW5zIHF1ZSB2b3VzIHN1cHByaW1lei5cbiIKKyJMZXMgY2hlbWlucyB0ZWxzIHF1ZSAnJXMnIHF1aSBvbnQgw6l0w6lcbiIKKyJyZXRpcsOpcyBkZSB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsIHNvbnQgaWdub3LDqXMgYXZlYyBjZXR0ZSB2ZXJzaW9uIGRlIEdpdC5cbiIKKyJcbiIKKyIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPGNoZW1pbj4nLCBxdWkgZXN0IGwnb3B0aW9uIHBhciBkw6lmYXV0IGFjdHVlbGxlLFxuIgorIiAgaWdub3JlIGxlcyBjaGVtaW5zIHF1ZSB2b3VzIGF2ZXogc3VwcHJpbcOpcyBkZSB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsLlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPGNoZW1pbj4nIHBlcm1ldCBkJ2VucmVnaXN0cmVyIGF1c3NpIGxlcyBzdXBwcmVzc2lvbnMuXG4iCisiXG4iCisiTGFuY2V6ICdnaXQgc3RhdHVzJyBwb3VyIHbDqXJpZmllciBsZXMgY2hlbWlucyBxdWUgdm91cyBhdmV6IHN1cHByaW3DqXMgZGUgdm90cmUgY29waWUgZGUgdHJhdmFpbC5cbiIKKworIzogYnVpbHRpbi9hZGQuYzoxNDQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKK21zZ3N0ciAic3RhdHVzIGRlIGRpZmYgaW5hdHRlbmR1ICVjIgorCisjOiBidWlsdGluL2FkZC5jOjE0OSBidWlsdGluL2NvbW1pdC5jOjIzMworbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIGxhIG1pc2Ugw6Agam91ciBkZXMgZmljaGllcnMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTYzCisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAnJXMnXG4iCittc2dzdHIgInN1cHByZXNzaW9uIGRlICclcydcbiIKKworIzogYnVpbHRpbi9hZGQuYzoyNTMKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKK21zZ3N0ciAiTW9kaWZpY2F0aW9ucyBub24gaW5kZXjDqWVzIGFwcsOocyByYWZyYcOuY2hpc3NlbWVudCBkZSBsJ2luZGV4IDoiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTcyIGJ1aWx0aW4vcm0uYzoyNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKK21zZ3N0ciAibGUgY2hlbWluICclcycgbmUgY29ycmVzcG9uZCDDoCBhdWN1biBmaWNoaWVyIgorCisjOiBidWlsdGluL2FkZC5jOjMzOQorbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBsaXJlIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzQ5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnb3V2cmlyICclcycgZW4gw6ljcml0dXJlLiIKKworIzogYnVpbHRpbi9hZGQuYzozNTMKK21zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCittc2dzdHIgIkltcG9zc2libGUgZCfDqWNyaXJlIGxlIHBhdGNoIgorCisjOiBidWlsdGluL2FkZC5jOjM1OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICJTdGF0IGRlICclcycgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hZGQuYzozNjAKK21zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCittc2dzdHIgIlBhdGNoIHZpZGUuIEFiYW5kb24uIgorCisjOiBidWlsdGluL2FkZC5jOjM2NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2FwcGxpcXVlciAnJXMnIgorCisjOiBidWlsdGluL2FkZC5jOjM3NgorbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKK21zZ3N0ciAiTGVzIGNoZW1pbnMgc3VpdmFudHMgc29udCBpZ25vcsOpcyBwYXIgdW4gZGUgdm9zIGZpY2hpZXJzIC5naXRpZ25vcmUgOlxuIgorCisjOiBidWlsdGluL2FkZC5jOjM5MyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjIwNgorbXNnaWQgImRyeSBydW4iCittc2dzdHIgIsOgIHZpZGUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vYXBwbHkuYzo0NDA5IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1MiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTUxOCBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKK21zZ2lkICJiZSB2ZXJib3NlIgorbXNnc3RyICJtb2RlIHZlcmJldXgiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk2Cittc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKK21zZ3N0ciAic8OpbGVjdGlvbiBpbnRlcmFjdGl2ZSIKKworIzogYnVpbHRpbi9hZGQuYzozOTcgYnVpbHRpbi9jaGVja291dC5jOjEwNjMgYnVpbHRpbi9yZXNldC5jOjI1OAorbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgorbXNnc3RyICJzw6lsZWN0aW9uIGludGVyYWN0aXZlIGRlcyBzZWN0aW9ucyIKKworIzogYnVpbHRpbi9hZGQuYzozOTgKK21zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCittc2dzdHIgIsOpZGl0aW9uIGR1IGRpZmYgYWN0dWVsIGV0IGFwcGxpY2F0aW9uIgorCisjOiBidWlsdGluL2FkZC5jOjM5OQorbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAicGVybWV0dHJlIGwnYWpvdXQgZGUgZmljaGllcnMgaWdub3LDqXMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAwCittc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCittc2dzdHIgIm1ldHRyZSDDoCBqb3VyIGxlcyBmaWNoaWVycyBzdWl2aXMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAxCittc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgorbXNnc3RyICJlbnJlZ2lzdHJlciBzZXVsZW1lbnQgbGUgZmFpdCBxdWUgbGUgY2hlbWluIHNlcmEgYWpvdXTDqSBwbHVzIHRhcmQiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAyCittc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgorbXNnc3RyICJham91dGVyIGxlcyBtb2RpZmljYXRpb25zIGRlIHRvdXMgbGVzIGZpY2hpZXJzIHN1aXZpcyBldCBub24gc3VpdmlzIgorCisjLiB0YWtlcyBubyBhcmd1bWVudHMKKyM6IGJ1aWx0aW4vYWRkLmM6NDA1Cittc2dpZCAiaWdub3JlIHBhdGhzIHJlbW92ZWQgaW4gdGhlIHdvcmtpbmcgdHJlZSAoc2FtZSBhcyAtLW5vLWFsbCkiCittc2dzdHIgImlnbm9yZXIgbGVzIGNoZW1pbnMgZWZmYWPDqXMgZGFucyBsYSBjb3BpZSBkZSB0cmF2YWlsIChpZGVudGlxdWUgw6AgLS1uby1hbGwpIgorCisjOiBidWlsdGluL2FkZC5jOjQwNworbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKK21zZ3N0ciAibmUgcGFzIGFqb3V0ZXIsIGp1c3RlIHJhZnJhw65jaGlyIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA4Cittc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKK21zZ3N0ciAic2F1dGVyIHNldWxlbWVudCBsZXMgZmljaGllcnMgcXVpIG5lIHBldXZlbnQgcGFzIMOqdHJlIGFqb3V0w6lzIGR1IGZhaXQgZCdlcnJldXJzIgorCisjOiBidWlsdGluL2FkZC5jOjQwOQorbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKK21zZ3N0ciAidsOpcmlmaWVyIHNpIGRlcyBmaWNoaWVycyAtIG3Dqm1lIG1hbnF1YW50cyAtIHNvbnQgaWdub3LDqXMsIMOgIHZpZGUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDMxCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCittc2dzdHIgIlV0aWxpc2V6IC1mIHNpIHZvdXMgdm91bGV6IHLDqWVsbGVtZW50IGxlcyBham91dGVyLlxuIgorCisjOiBidWlsdGluL2FkZC5jOjQzMgorbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgorbXNnc3RyICJhdWN1biBmaWNoaWVyIGFqb3V0w6kiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDM4Cittc2dpZCAiYWRkaW5nIGZpbGVzIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIGwnYWpvdXQgZGUgZmljaGllcnMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDc3Cittc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCittc2dzdHIgIi1BIGV0IC11IHNvbnQgbXV0dWVsbGVtZW50IGluY29tcGF0aWJsZXMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDk1Cittc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKK21zZ3N0ciAiTCdvcHRpb24gLS1pZ25vcmUtbWlzc2luZyBuZSBwZXV0IMOqdHJlIHV0aWxpc8OpZSBxdSdlbiBjb21wbMOpbWVudCBkZSAtLWRyeS1ydW4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6NTI1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdGhpbmcgc3BlY2lmaWVkLCBub3RoaW5nIGFkZGVkLlxuIgorbXNnc3RyICJSaWVuIGRlIHNww6ljaWZpw6ksIHJpZW4gbidhIMOpdMOpIGFqb3V0w6kuXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6NTI2CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgorbXNnc3RyICJWb3VzIHZvdWxpZXogc8O7cmVtZW50IGRpcmUgJ2dpdCBhZGQgLicgP1xuIgorCisjOiBidWlsdGluL2FkZC5jOjUzMiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjY2IGJ1aWx0aW4vY2xlYW4uYzoyMDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MjkzIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6MjM1Cittc2dpZCAiaW5kZXggZmlsZSBjb3JydXB0IgorbXNnc3RyICJmaWNoaWVyIGQnaW5kZXggY29ycm9tcHUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NjA0IGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgbm91dmVhdSBmaWNoaWVyIGQnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo1NworbXNnaWQgImdpdCBhcHBseSBbb3B0aW9uc10gWzxwYXRjaD4uLi5dIgorbXNnc3RyICJnaXQgYXBwbHkgW29wdGlvbnNdIFs8cGF0Y2g+Li4uXSIKKworIzogYnVpbHRpbi9hcHBseS5jOjExMAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bnJlY29nbml6ZWQgd2hpdGVzcGFjZSBvcHRpb24gJyVzJyIKK21zZ3N0ciAib3B0aW9uIGQnZXNwYWNlIG5vbiByZWNvbm51ZSAnJXMnIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTI1CisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCB3aGl0ZXNwYWNlIGlnbm9yZSBvcHRpb24gJyVzJyIKK21zZ3N0ciAib3B0aW9uIGQnaWdub3JhbmNlIGQnZXNwY2Ugbm9uIHJlY29ubnVlICclcyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo4MjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHByZXBhcmUgdGltZXN0YW1wIHJlZ2V4cCAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwcsOpcGFyZXIgbGEgcmVnZXhwIGQnaG9yb2RhdGFnZSAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjgzMgorIywgYy1mb3JtYXQKK21zZ2lkICJyZWdleGVjIHJldHVybmVkICVkIGZvciBpbnB1dDogJXMiCittc2dzdHIgInJlZ2V4ZWMgYSByZXRvdXJuw6kgJWQgcG91ciBsJ2VudHLDqWUgOiAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjkxMworIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gZmluZCBmaWxlbmFtZSBpbiBwYXRjaCBhdCBsaW5lICVkIgorbXNnc3RyICJub20gZGUgZmljaGllciBkdSBwYXRjaCBpbnRyb3V2YWJsZSDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjk0NQorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgYXBwbHk6IGJhZCBnaXQtZGlmZiAtIGV4cGVjdGVkIC9kZXYvbnVsbCwgZ290ICVzIG9uIGxpbmUgJWQiCittc2dzdHIgImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gL2Rldi9udWxsIGF0dGVuZHUsICVzIHRyb3V2w6kgw6AgbGEgbGlnbmUgJWQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo5NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2l0IGFwcGx5OiBiYWQgZ2l0LWRpZmYgLSBpbmNvbnNpc3RlbnQgbmV3IGZpbGVuYW1lIG9uIGxpbmUgJWQiCittc2dzdHIgImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gbm91dmVhdSBub20gZGUgZmljaGllciBpbmNvbnNpc3RhbnQgw6AgbGEgbGlnbmUgJWQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo5NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2l0IGFwcGx5OiBiYWQgZ2l0LWRpZmYgLSBpbmNvbnNpc3RlbnQgb2xkIGZpbGVuYW1lIG9uIGxpbmUgJWQiCittc2dzdHIgImdpdCBhcHBseSA6IG1hdXZhaXMgZm9ybWF0IGRlIGdpdC1kaWZmIC0gYW5jaWVuIG5vbSBkZSBmaWNoaWVyIGluY29uc2lzdGFudCDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgYXBwbHk6IGJhZCBnaXQtZGlmZiAtIGV4cGVjdGVkIC9kZXYvbnVsbCBvbiBsaW5lICVkIgorbXNnc3RyICJnaXQgYXBwbHkgOiBtYXV2YWlzIGZvcm1hdCBkZSBnaXQtZGlmZiAtIC9kZXYvbnVsbCBhdHRlbmR1IMOgIGxhIGxpZ25lICVkIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTQyMgorIywgYy1mb3JtYXQKK21zZ2lkICJyZWNvdW50OiB1bmV4cGVjdGVkIGxpbmU6ICUuKnMiCittc2dzdHIgInJlY291bnQgOiBsaWduZSBpbmF0dGVuZHVlIDogJS4qcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjE0NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0Y2ggZnJhZ21lbnQgd2l0aG91dCBoZWFkZXIgYXQgbGluZSAlZDogJS4qcyIKK21zZ3N0ciAiZnJhZ21lbnQgZGUgcGF0Y2ggc2FucyBlbi10w6p0ZSDDoCBsYSBsaWduZSAlZCA6ICUuKnMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNDk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJnaXQgZGlmZiBoZWFkZXIgbGFja3MgZmlsZW5hbWUgaW5mb3JtYXRpb24gd2hlbiByZW1vdmluZyAlZCBsZWFkaW5nIHBhdGhuYW1lICIKKyJjb21wb25lbnQgKGxpbmUgJWQpIgorbXNnaWRfcGx1cmFsICIiCisiZ2l0IGRpZmYgaGVhZGVyIGxhY2tzIGZpbGVuYW1lIGluZm9ybWF0aW9uIHdoZW4gcmVtb3ZpbmcgJWQgbGVhZGluZyBwYXRobmFtZSAiCisiY29tcG9uZW50cyAobGluZSAlZCkiCittc2dzdHJbMF0gImluZm9ybWF0aW9uIGRlIG5vbSBkZSBmaWNoaWVyIG1hbnF1YW50ZSBkYW5zIGwnZW4tdMOqdGUgZGUgZ2l0IGRpZmYgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZSAlZCBjb21wb3NhbnQgZGUgcHLDqWZpeGUgZGUgY2hlbWluIChsaWduZSAlZCkiCittc2dzdHJbMV0gImluZm9ybWF0aW9uIGRlIG5vbSBkZSBmaWNoaWVyIG1hbnF1YW50ZSBkYW5zIGwnZW4tdMOqdGUgZGUgZ2l0IGRpZmYgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZSAlZCBjb21wb3NhbnRzIGRlIHByw6lmaXhlIGRlIGNoZW1pbiAobGlnbmUgJWQpIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTY1NgorbXNnaWQgIm5ldyBmaWxlIGRlcGVuZHMgb24gb2xkIGNvbnRlbnRzIgorbXNnc3RyICJsZSBub3V2ZWF1IGZpY2hpZXIgZMOpcGVuZCBkZSBjb250ZW51cyBhbmNpZW5zIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTY1OAorbXNnaWQgImRlbGV0ZWQgZmlsZSBzdGlsbCBoYXMgY29udGVudHMiCittc2dzdHIgImxlIGZpY2hpZXIgc3VwcHJpbcOpIGEgZW5jb3JlIGR1IGNvbnRlbnUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNjg0CisjLCBjLWZvcm1hdAorbXNnaWQgImNvcnJ1cHQgcGF0Y2ggYXQgbGluZSAlZCIKK21zZ3N0ciAicGF0Y2ggY29ycm9tcHUgw6AgbGEgbGlnbmUgJWQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxNzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5ldyBmaWxlICVzIGRlcGVuZHMgb24gb2xkIGNvbnRlbnRzIgorbXNnc3RyICJsZSBub3V2ZWF1IGZpY2hpZXIgJXMgZMOpcGVuZCBkZSBjb250ZW51cyBhbmNpZW5zIgorCisjOiBidWlsdGluL2FwcGx5LmM6MTcyMgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxldGVkIGZpbGUgJXMgc3RpbGwgaGFzIGNvbnRlbnRzIgorbXNnc3RyICJsZSBmaWNoaWVyIHN1cHByaW3DqSAlcyBhIGVuY29yZSBkdSBjb250ZW51IgorCisjOiBidWlsdGluL2FwcGx5LmM6MTcyNQorIywgYy1mb3JtYXQKK21zZ2lkICIqKiB3YXJuaW5nOiBmaWxlICVzIGJlY29tZXMgZW1wdHkgYnV0IGlzIG5vdCBkZWxldGVkIgorbXNnc3RyICIqKiBhdHRlbnRpb24gOiBsZSBmaWNoaWVyICVzIGRldmllbnQgdmlkZSBtYWlzIG4nZXN0IHBhcyBzdXBwcmltw6kiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxODcxCisjLCBjLWZvcm1hdAorbXNnaWQgImNvcnJ1cHQgYmluYXJ5IHBhdGNoIGF0IGxpbmUgJWQ6ICUuKnMiCittc2dzdHIgInBhdGNoIGJpbmFpcmUgY29ycm9tcHUgw6AgbGEgbGlnbmUgJWQgOiAlLipzIgorCisjLiB0aGVyZSBoYXMgdG8gYmUgb25lIGh1bmsgKGZvcndhcmQgaHVuaykKKyM6IGJ1aWx0aW4vYXBwbHkuYzoxOTAwCisjLCBjLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXplZCBiaW5hcnkgcGF0Y2ggYXQgbGluZSAlZCIKK21zZ3N0ciAicGF0Y2ggYmluYWlyZSBub24gcmVjb25udSDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjE5ODYKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0Y2ggd2l0aCBvbmx5IGdhcmJhZ2UgYXQgbGluZSAlZCIKK21zZ3N0ciAicGF0Y2ggdG90YWxlbWVudCBpbmNvbXByw6loZW5zaWJsZSDDoCBsYSBsaWduZSAlZCIKKworIzogYnVpbHRpbi9hcHBseS5jOjIwNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgc3ltbGluayAlcyIKK21zZ3N0ciAibGVjdHVyZSBkdSBsaWVuIHN5bWJvbGlxdWUgJXMgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjIwODAKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIG9wZW4gb3IgcmVhZCAlcyIKK21zZ3N0ciAib3V2ZXJ0dXJlIG91IGxlY3R1cmUgZGUgJXMgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjI2ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBzdGFydCBvZiBsaW5lOiAnJWMnIgorbXNnc3RyICJkw6lidXQgZGUgbGlnbmUgaW52YWxpZGUgOiAnJWMnIgorCisjOiBidWlsdGluL2FwcGx5LmM6MjgwNgorIywgYy1mb3JtYXQKK21zZ2lkICJIdW5rICMlZCBzdWNjZWVkZWQgYXQgJWQgKG9mZnNldCAlZCBsaW5lKS4iCittc2dpZF9wbHVyYWwgIkh1bmsgIyVkIHN1Y2NlZWRlZCBhdCAlZCAob2Zmc2V0ICVkIGxpbmVzKS4iCittc2dzdHJbMF0gIkxhIHNlY3Rpb24gbsKwJWQgYSByw6l1c3NpIMOgIGxhIGxpZ25lICVkIChvZmZzZXQgJWQgbGlnbmUpLiIKK21zZ3N0clsxXSAiTGEgc2VjdGlvbiBuwrAlZCBhIHLDqXVzc2kgw6AgbGEgbGlnbmUgJWQgKG9mZnNldCAlZCBsaWduZXMpLiIKKworIzogYnVpbHRpbi9hcHBseS5jOjI4MTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udGV4dCByZWR1Y2VkIHRvICglbGQvJWxkKSB0byBhcHBseSBmcmFnbWVudCBhdCAlZCIKK21zZ3N0ciAiQ29udGV4dGUgcsOpZHVpdCDDoCAoJWxkLyVsZCkgcG91ciBhcHBsaXF1ZXIgbGUgZnJhZ21lbnQgw6AgbGEgbGlnbmUgJWQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzoyODI0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJ3aGlsZSBzZWFyY2hpbmcgZm9yOlxuIgorIiUuKnMiCittc2dzdHIgInBlbmRhbnQgbGEgcmVjaGVyY2hlIGRlIDpcbiIKKyIlLipzIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mjg0MworIywgYy1mb3JtYXQKK21zZ2lkICJtaXNzaW5nIGJpbmFyeSBwYXRjaCBkYXRhIGZvciAnJXMnIgorbXNnc3RyICJkb25uw6llcyBkZSBwYXRjaCBiaW5haXJlIG1hbnF1YW50ZXMgcG91ciAnJXMnIgorCisjOiBidWlsdGluL2FwcGx5LmM6Mjk0NgorIywgYy1mb3JtYXQKK21zZ2lkICJiaW5hcnkgcGF0Y2ggZG9lcyBub3QgYXBwbHkgdG8gJyVzJyIKK21zZ3N0ciAibGUgcGF0Y2ggYmluYWlyZSBuZSBzJ2FwcGxpcXVlIHBhciBjb3JyZWN0ZW1lbnQgw6AgJyVzJyIKKworIzogYnVpbHRpbi9hcHBseS5jOjI5NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmluYXJ5IHBhdGNoIHRvICclcycgY3JlYXRlcyBpbmNvcnJlY3QgcmVzdWx0IChleHBlY3RpbmcgJXMsIGdvdCAlcykiCittc2dzdHIgImxlIHBhdGNoIGJpbmFpcmUgc3VyICclcycgY3LDqWUgdW4gcsOpc3VsdGF0IGluY29ycmVjdCAoJXMgYXR0ZW5kdSwgbWFpcyAlcyB0cm91dsOpKSIKKworIzogYnVpbHRpbi9hcHBseS5jOjI5NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0Y2ggZmFpbGVkOiAlczolbGQiCittc2dzdHIgImxlIHBhdGNoIGEgw6ljaG91w6kgOiAlczolbGQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMDk1CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGVja291dCAlcyIKK21zZ3N0ciAiZXh0cmFjdGlvbiBkZSAlcyBpbXBvc3NpYmxlIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5MworIywgYy1mb3JtYXQKK21zZ2lkICJyZWFkIG9mICVzIGZhaWxlZCIKK21zZ3N0ciAiZWNoZWMgZGUgbGEgbGVjdHVyZSBkZSAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjMxNzMgYnVpbHRpbi9hcHBseS5jOjMzOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aCAlcyBoYXMgYmVlbiByZW5hbWVkL2RlbGV0ZWQiCittc2dzdHIgImxlIGNoZW1pbiAlcyBhIMOpdMOpIHJlbm9tbcOpL3N1cHByaW3DqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjMyNTQgYnVpbHRpbi9hcHBseS5jOjM0MDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4IgorbXNnc3RyICIlcyA6IG4nZXhpc3RlIHBhcyBkYW5zIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU4IGJ1aWx0aW4vYXBwbHkuYzozNDAxIGJ1aWx0aW4vYXBwbHkuYzozNDIzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyIKK21zZ3N0ciAiJXMgOiAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjMyNjMgYnVpbHRpbi9hcHBseS5jOjM0MTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGRvZXMgbm90IG1hdGNoIGluZGV4IgorbXNnc3RyICIlcyA6IG5lIGNvcnJlc3BvbmQgcGFzIMOgIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY1Cittc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKK21zZ3N0ciAibGUgcGF0Y2ggZGUgc3VwcHJlc3Npb24gbGFpc3NlIHVuIGNvbnRlbnUgZGFucyBsZSBmaWNoaWVyIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzQzNAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogd3JvbmcgdHlwZSIKK21zZ3N0ciAiJXMgOiB0eXBlIGVycm9uw6kiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGhhcyB0eXBlICVvLCBleHBlY3RlZCAlbyIKK21zZ3N0ciAiJXMgZXN0IGRlIHR5cGUgJW8sIG1haXMgJW8gYXR0ZW5kdSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM1MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgorbXNnc3RyICIlcyA6IGV4aXN0ZSBkw6lqw6AgZGFucyBsJ2luZGV4IgorCisjOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gd29ya2luZyBkaXJlY3RvcnkiCittc2dzdHIgIiVzIDogZXhpc3RlIGTDqWrDoCBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKK21zZ3N0ciAibGUgbm91dmVhdSBtb2RlICglbykgZGUgJXMgbmUgY29ycmVzcG9uZCBwYXMgw6AgbCdhbmNpZW4gbW9kZSAoJW8pIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzU2NQorIywgYy1mb3JtYXQKK21zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykgb2YgJXMiCittc2dzdHIgImxlIG5vdXZlYXUgbW9kZSAoJW8pIGRlICVzIG5lIGNvcnJlc3BvbmQgcGFzIMOgIGwnYW5jaWVuIG1vZGUgKCVvKSBkZSAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjM1NzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IHBhdGNoIGRvZXMgbm90IGFwcGx5IgorbXNnc3RyICIlcyA6IGxlIHBhdGNoIG5lIHMnYXBwbGlxdWUgcGFzIgorCisjOiBidWlsdGluL2FwcGx5LmM6MzU4NgorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKK21zZ3N0ciAiVsOpcmlmaWNhdGlvbiBkdSBwYXRjaCAlcy4uLiIKKworIzogYnVpbHRpbi9hcHBseS5jOjM2NzkgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI0CisjLCBjLWZvcm1hdAorbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCittc2dzdHIgImVjaGVjIGRlIG1ha2VfY2FjaGVfZW50cnkgcG91ciBsZSBjaGVtaW4gJyVzJyIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAlcyBmcm9tIGluZGV4IgorbXNnc3RyICJzdXBwcmVzc2lvbiBkZSAlcyBkYW5zIGwnaW5kZXggaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VicHJvamVjdCAlcyIKK21zZ3N0ciAicGF0Y2ggY29ycm9tcHUgcG91ciBsZSBzb3VzLXByb2pldCAlcyIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4NTQKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXQgbmV3bHkgY3JlYXRlZCBmaWxlICclcyciCittc2dzdHIgInN0YXQgZHUgZmljaGllciBub3V2ZWxsZW1lbnQgY3LDqcOpICclcycgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4NTkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBiYWNraW5nIHN0b3JlIGZvciBuZXdseSBjcmVhdGVkIGZpbGUgJXMiCittc2dzdHIgImNyw6lhdGlvbiBkdSBtYWdhc2luIGRlIHN0b2NrYWdlIHBvdXIgbGUgZmljaGllciBub3V2ZWxsZW1lbnQgY3LDqcOpICVzIGltcG9zc2libGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYyIGJ1aWx0aW4vYXBwbHkuYzozOTcwCisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgorbXNnc3RyICJham91dCBkZSBsJ2VudHLDqWUgZGUgY2FjaGUgJXMgaW1wb3NzaWJsZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjM4OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2xvc2luZyBmaWxlICclcyciCittc2dzdHIgImZlcm1ldHVyZSBkdSBmaWNoaWVyICclcyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBmaWxlICclcycgbW9kZSAlbyIKK21zZ3N0ciAiw6ljcml0dXJlIGR1IGZpY2hpZXIgJyVzJyBtb2RlICVvIGltcG9zc2libGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjLCBjLWZvcm1hdAorbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCittc2dzdHIgIlBhdGNoICVzIGFwcGxpcXXDqSBwcm9wcmVtZW50LiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKK21zZ2lkICJpbnRlcm5hbCBlcnJvciIKK21zZ3N0ciAiZXJyZXVyIGludGVybmUiCisKKyMuIFNheSB0aGlzIGV2ZW4gd2l0aG91dCAtLXZlcmJvc2UKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdC4uLiIKK21zZ2lkX3BsdXJhbCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0cy4uLiIKK21zZ3N0clswXSAiQXBwbGljYXRpb24gZHUgcGF0Y2ggJSVzIGF2ZWMgJWQgcmVqZXQuLi4iCittc2dzdHJbMV0gIkFwcGxpY2F0aW9uIGR1IHBhdGNoICUlcyBhdmVjICVkIHJlamV0cy4uLiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQwNTIKKyMsIGMtZm9ybWF0Cittc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgorbXNnc3RyICJ0cm9uY2F0dXJlIGR1IG5vbSBkZSBmaWNoaWVyIC5yZWogZW4gJS4qcy5yZWoiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDczCisjLCBjLWZvcm1hdAorbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCittc2dzdHIgIlNlY3Rpb24gbsKwJWQgYXBwbGlxdcOpZSBwcm9wcmVtZW50LiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQwNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVqZWN0ZWQgaHVuayAjJWQuIgorbXNnc3RyICJTZWN0aW9uIG7CsCVkIHJlamV0w6llLiIKKworIzogYnVpbHRpbi9hcHBseS5jOjQyMjYKK21zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQiCittc2dzdHIgImVudHLDqWUgbm9uIHJlY29ubnVlIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDIzNworbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCittc2dzdHIgImxlY3R1cmUgZHUgZmljaGllciBkJ2luZGV4IGltcG9zc2libGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU2IGJ1aWx0aW4vYXBwbHkuYzo0MzU5IGJ1aWx0aW4vY2xvbmUuYzo5MgorIzogYnVpbHRpbi9mZXRjaC5jOjYzCittc2dpZCAicGF0aCIKK21zZ3N0ciAiY2hlbWluIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NworbXNnaWQgImRvbid0IGFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCittc2dzdHIgIm5lIHBhcyBhcHBsaXF1ZXIgbGVzIG1vZGlmaWNhdGlvbnMgcXVpIGNvcnJlc3BvbmRlbnQgYXUgY2hlbWluIGRvbm7DqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNjAKK21zZ2lkICJhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgorbXNnc3RyICJhcHBsaXF1ZXIgbGVzIG1vZGlmaWNhdGlvbnMgcXVpIGNvcnJlc3BvbmRlbnQgYXUgY2hlbWluIGRvbm7DqSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNjIKK21zZ2lkICJudW0iCittc2dzdHIgIm51bSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNjMKK21zZ2lkICJyZW1vdmUgPG51bT4gbGVhZGluZyBzbGFzaGVzIGZyb20gdHJhZGl0aW9uYWwgZGlmZiBwYXRocyIKK21zZ3N0ciAic3VwcHJpbWVyIDxudW0+IGJhcnJlcyBvYmxpcXVlcyBkZXMgY2hlbWlucyB0cmFkaXRpb25uZWxzIGRlIGRpZmYiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2Cittc2dpZCAiaWdub3JlIGFkZGl0aW9ucyBtYWRlIGJ5IHRoZSBwYXRjaCIKK21zZ3N0ciAiaWdub3JlciBsZXMgYWRkaXRpb25zIHLDqWFsaXPDqWVzIHBhciBsZSBwYXRjaCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNjgKK21zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGRpZmZzdGF0IGZvciB0aGUgaW5wdXQiCittc2dzdHIgImF1IGxpZXUgZCdhcHBsaXF1ZXIgbGUgcGF0Y2gsIGFmZmljaGVyIGxlIGRpZmZzdGF0IGRlIGwnZW50csOpZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzNzIKK21zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgorbXNnc3RyICJhZmZpY2hlciBsZSBub21icmUgZGUgbGlnbmVzIGFqb3V0w6llcyBldCBzdXBwcmltw6llcyBlbiBub3RhdGlvbiBkw6ljaW1hbGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc0Cittc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBhIHN1bW1hcnkgZm9yIHRoZSBpbnB1dCIKK21zZ3N0ciAiYXUgbGlldSBkJ2FwcGxpcXVlciBsZSBwYXRjaCwgYWZmaWNoZXIgdW4gcsOpc3VtZXIgZGUgbCdlbnRyw6llIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM3NgorbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBzZWUgaWYgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUiCittc2dzdHIgImF1IGxpZXUgZCdhcHBsaXF1ZXIgbGUgcGF0Y2gsIHZvaXIgc2kgbGUgcGF0Y2ggZXN0IGFwcGxpY2FibGUiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4Cittc2dpZCAibWFrZSBzdXJlIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIHRvIHRoZSBjdXJyZW50IGluZGV4IgorbXNnc3RyICJzJ2Fzc3VyZXIgcXVlIGxlIHBhdGNoIGVzdCBhcHBsaWNhYmxlIHN1ciBsJ2luZGV4IGFjdHVlbCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzODAKK21zZ2lkICJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAiYXBwbGlxdWVyIGxlcyBwYXRjaCBzYW5zIHRvdWNoZXIgw6AgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi9hcHBseS5jOjQzODIKK21zZ2lkICJhbHNvIGFwcGx5IHRoZSBwYXRjaCAodXNlIHdpdGggLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKK21zZ3N0ciAiYXBwbGlxdWVyIGF1c3NpIGxlIHBhdGNoICjDoCB1dGlsaXNlciBhdmVjIC0tLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM4NAorbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCittc2dzdHIgInRlbnRlciB1bmUgZnVzaW9uIMOgIDMgcG9pbnRzIHNpIGxlIHBhdGNoIG5lIHMnYXBwbGlxdWUgcGFzIHByb3ByZW1lbnQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2Cittc2dpZCAiYnVpbGQgYSB0ZW1wb3JhcnkgaW5kZXggYmFzZWQgb24gZW1iZWRkZWQgaW5kZXggaW5mb3JtYXRpb24iCittc2dzdHIgImNvbnN0cnVpcmUgdW4gaW5kZXggdGVtcG9yYWlyZSBmb25kw6kgc3VyIGwnaW5mb3JtYXRpb24gZGUgbCdpbmRleCBlbWJhcnF1w6kiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ1NgorbXNnaWQgInBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBOVUwgY2hhcmFjdGVyIgorbXNnc3RyICJsZXMgY2hlbWlucyBzb250IHPDqXBhcsOpcyBwYXIgdW4gY2FyYWN0w6hyZSBOVUwiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkxCittc2dpZCAiZW5zdXJlIGF0IGxlYXN0IDxuPiBsaW5lcyBvZiBjb250ZXh0IG1hdGNoIgorbXNnc3RyICJzJ2Fzc3VyZXIgZCdhdSBtb2lucyA8bj4gbGlnbmVzIGRlIGNvcnJlc3BvbmRhbmNlIGRlIGNvbnRleHRlIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MgorbXNnaWQgImFjdGlvbiIKK21zZ3N0ciAiYWN0aW9uIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MworbXNnaWQgImRldGVjdCBuZXcgb3IgbW9kaWZpZWQgbGluZXMgdGhhdCBoYXZlIHdoaXRlc3BhY2UgZXJyb3JzIgorbXNnc3RyICJkw6l0ZWN0ZXIgZGVzIGxpZ25lcyBub3V2ZWxsZXMgb3UgbW9kaWZpw6llcyBxdWkgY29udGllbm5lbnQgZGVzIGVycmV1cnMgZCdlc3BhY2UiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk2IGJ1aWx0aW4vYXBwbHkuYzo0Mzk5Cittc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKK21zZ3N0ciAiaWdub3JlciBkZXMgbW9kaWZpY2F0aW9ucyBkJ2VzcGFjZSBsb3JzIGRlIGxhIHJlY2hlcmNoZSBkZSBjb250ZXh0ZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0MDIKK21zZ2lkICJhcHBseSB0aGUgcGF0Y2ggaW4gcmV2ZXJzZSIKK21zZ3N0ciAiYXBwbGlxdWVyIGxlIHBhdGNoIGVuIHNlbnMgaW52ZXJzZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0MDQKK21zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKK21zZ3N0ciAibmUgcGFzIHMnYXR0ZW5kcmUgw6AgYXUgbW9pbnMgdW5lIGxpZ25lIGRlIGNvbnRleHRlIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQwNgorbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgorbXNnc3RyICJsYWlzc2VyIGxlcyBzZWN0aW9ucyByZWpldMOpZXMgZGFucyBsZXMgZmljaGllcnMgKi5yZWogY29ycmVzcG9uZGFudHMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4Cittc2dpZCAiYWxsb3cgb3ZlcmxhcHBpbmcgaHVua3MiCittc2dzdHIgImFjY2VwdGVyIGxlcyByZWNvdXZyZW1lbnRzIGRlIHNlY3Rpb25zIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQxMQorbXNnaWQgInRvbGVyYXRlIGluY29ycmVjdGx5IGRldGVjdGVkIG1pc3NpbmcgbmV3LWxpbmUgYXQgdGhlIGVuZCBvZiBmaWxlIgorbXNnc3RyICJ0b2zDqXJlciBkZXMgZXJyZXVycyBkZSBkw6l0ZWN0aW9uIGRlIHJldG91cnMgY2hhcmlvdCBtYW5xdWFudHMgZW4gZmluIGRlIGZpY2hpZXIiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE0Cittc2dpZCAiZG8gbm90IHRydXN0IHRoZSBsaW5lIGNvdW50cyBpbiB0aGUgaHVuayBoZWFkZXJzIgorbXNnc3RyICJuZSBwYXMgc2UgZmllciBhdSBjb21wdGUgZGUgbGlnbmVzIGRhbnMgbGVzIGVuLXTDqnRlcyBkZSBzZWN0aW9uIgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQxNgorbXNnaWQgInJvb3QiCittc2dzdHIgInJhY2luZSIKKworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTcKK21zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgorbXNnc3RyICJwcsOpZml4ZXIgdG91cyBsZXMgbm9tcyBkZSBmaWNoaWVyIGF2ZWMgPHJvb3Q+IgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQzOQorbXNnaWQgIi0tM3dheSBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKK21zZ3N0ciAiLS0zd2F5IGhvcnMgZCd1biBkw6lww7R0IgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQ0NworbXNnaWQgIi0taW5kZXggb3V0c2lkZSBhIHJlcG9zaXRvcnkiCittc2dzdHIgIi0taW5kZXggaG9ycyBkJ3VuIGTDqXDDtHQiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCittc2dpZCAiLS1jYWNoZWQgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCittc2dzdHIgIi0tY2FjaGVkIGhvcnMgZCd1biBkw6lww7R0IgorCisjOiBidWlsdGluL2FwcGx5LmM6NDQ2NgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW4ndCBvcGVuIHBhdGNoICclcyciCittc2dzdHIgIm91dmVydHVyZSBpbXBvc3NpYmxlIGR1IHBhdGNoICclcyciCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgwCisjLCBjLWZvcm1hdAorbXNnaWQgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9yIgorbXNnaWRfcGx1cmFsICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvcnMiCittc2dzdHJbMF0gIiVkIGVycmV1ciBkJ2VzcGFjZSBpZ25vcsOpZSIKK21zZ3N0clsxXSAiJWQgZXJyZXVycyBkJ2VzcGFjZSBpZ25vcsOpZXMiCisKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg2IGJ1aWx0aW4vYXBwbHkuYzo0NDk2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGxpbmUgYWRkcyB3aGl0ZXNwYWNlIGVycm9ycy4iCittc2dpZF9wbHVyYWwgIiVkIGxpbmVzIGFkZCB3aGl0ZXNwYWNlIGVycm9ycy4iCittc2dzdHJbMF0gIiVkIGxpZ25lIGEgYWpvdXTDqSBkZXMgZXJyZXVycyBkJ2VzcGFjZS4iCittc2dzdHJbMV0gIiVkIGxpZ25lcyBvbnQgYWpvdXTDqSBkZXMgZXJyZXVycyBkJ2VzcGFjZS4iCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjE3CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgYXJjaGl2ZSBmaWxlICclcyciCittc2dzdHIgImNyw6lhdGlvbiBpbXBvc3NpYmxlIGR1IGZpY2hpZXIgZCdhcmNoaXZlICclcyciCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjIwCittc2dpZCAiY291bGQgbm90IHJlZGlyZWN0IG91dHB1dCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSByZWRpcmlnZXIgbGEgc29ydGllIgorCisjOiBidWlsdGluL2FyY2hpdmUuYzozNworbXNnaWQgImdpdCBhcmNoaXZlOiBSZW1vdGUgd2l0aCBubyBVUkwiCittc2dzdHIgImdpdCBhcmNoaXZlIDogRMOpcMO0dCBkaXN0YW50IHNhbnMgVVJMIgorCisjOiBidWlsdGluL2FyY2hpdmUuYzo1OAorbXNnaWQgImdpdCBhcmNoaXZlOiBleHBlY3RlZCBBQ0svTkFLLCBnb3QgRU9GIgorbXNnc3RyICJnaXQgYXJjaGl2ZSA6IEFDSy9OQUNLIGF0dGVuZHUsIEVPRiByZcOndSIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ2l0IGFyY2hpdmU6IE5BQ0sgJXMiCittc2dzdHIgImdpdCBhcmNoaXZlIDogTkFDSyAlcyIKKworIzogYnVpbHRpbi9hcmNoaXZlLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3RlIGVycm9yOiAlcyIKK21zZ3N0ciAiZXJyZXVyIGRpc3RhbnRlIDogJXMiCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjY0Cittc2dpZCAiZ2l0IGFyY2hpdmU6IHByb3RvY29sIGVycm9yIgorbXNnc3RyICJnaXQgYXJjaGl2ZSA6IGVycmV1ciBkZSBwcm90b2NvbGUiCisKKyM6IGJ1aWx0aW4vYXJjaGl2ZS5jOjY4Cittc2dpZCAiZ2l0IGFyY2hpdmU6IGV4cGVjdGVkIGEgZmx1c2giCittc2dzdHIgImdpdCBhcmNoaXZlIDogdmlkYWdlIGF0dGVuZHUiCisKKyM6IGJ1aWx0aW4vYmlzZWN0LS1oZWxwZXIuYzo3Cittc2dpZCAiZ2l0IGJpc2VjdC0taGVscGVyIC0tbmV4dC1hbGwgWy0tbm8tY2hlY2tvdXRdIgorbXNnc3RyICJnaXQgYmlzZWN0IC0taGVscGVyIC0tbmV4dC1hbGwgWy0tbm8tY2hlY2tvdXRdIgorCisjOiBidWlsdGluL2Jpc2VjdC0taGVscGVyLmM6MTcKK21zZ2lkICJwZXJmb3JtICdnaXQgYmlzZWN0IG5leHQnIgorbXNnc3RyICJlZmZlY3R1ZXIgJ2dpdCBiaXNlY3QgbmV4dCciCisKKyM6IGJ1aWx0aW4vYmlzZWN0LS1oZWxwZXIuYzoxOQorbXNnaWQgInVwZGF0ZSBCSVNFQ1RfSEVBRCBpbnN0ZWFkIG9mIGNoZWNraW5nIG91dCB0aGUgY3VycmVudCBjb21taXQiCittc2dzdHIgIm1ldHRyZSDDoCBqb3VyIEJJU0VDVF9IRUFEIGF1IGxpZXUgZCdleHRyYWlyZSBsZSBjb21taXQgYWN0dWVsIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjUKK21zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgorbXNnc3RyICJnaXQgYmxhbWUgW29wdGlvbnNdIFtvcHRpb25zLWRlLXLDqXZpc2lvbl0gW3Jldl0gWy0tXSBmaWNoaWVyIgorCisjOiBidWlsdGluL2JsYW1lLmM6MzAKK21zZ2lkICJbcmV2LW9wdHNdIGFyZSBkb2N1bWVudGVkIGluIGdpdC1yZXYtbGlzdCgxKSIKK21zZ3N0ciAiW29wdGlvbnMtZGUtcsOpdmlzaW9uXSBzb250IGRvY3VtZW50w6lzIGRhbnMgZ2l0LXJldi1saXN0KDEpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM1NQorbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCittc2dzdHIgIk1vbnRyZXIgbGVzIGVudHLDqWUgZGUgYmzDom1lIGF1IGZ1ciBldCDDoCBtZXN1cmUgZGUgbGV1ciBkw6ljb3V2ZXJ0ZSwgZGUgbWFuacOocmUgaW5jcsOpbWVudGFsZSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNTYKK21zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJNb250cmVyIHVuIFNIQS0xIGJsYW5jIHBvdXIgbGVzIGNvbW1pdHMgZGUgbGltaXRlIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM1NworbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKK21zZ3N0ciAiTmUgcGFzIHRyYWl0ZXIgbGVzIGNvbW1pdHMgcmFjaW5lIGNvbW1lIGRlcyBsaW1pdGVzIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM1OAorbXNnaWQgIlNob3cgd29yayBjb3N0IHN0YXRpc3RpY3MiCittc2dzdHIgIk1vbnRyZXIgbGVzIHN0YXRpc3RpcXVlcyBkZSBjb8O7dCBkJ2FjdGl2aXTDqSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKK21zZ2lkICJTaG93IG91dHB1dCBzY29yZSBmb3IgYmxhbWUgZW50cmllcyIKK21zZ3N0ciAiTW9udHJlciBsZSBzY29yZSBkZSBzb3J0aWUgcG91ciBsZXMgZW50csOpZXMgZGUgYmzDom1lIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2MAorbXNnaWQgIlNob3cgb3JpZ2luYWwgZmlsZW5hbWUgKERlZmF1bHQ6IGF1dG8pIgorbXNnc3RyICJNb250cmVyIGxlcyBub21zIGRlIGZpY2hpZXIgb3JpZ2luYXV4IChEw6lmYXV0IDogYXV0bykiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYxCittc2dpZCAiU2hvdyBvcmlnaW5hbCBsaW5lbnVtYmVyIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJNb250cmVyIGxlcyBudW3DqXJvcyBkZSBsaWduZXMgb3JpZ2luYXV4IChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2MgorbXNnaWQgIlNob3cgaW4gYSBmb3JtYXQgZGVzaWduZWQgZm9yIG1hY2hpbmUgY29uc3VtcHRpb24iCittc2dzdHIgIkFmZmljaGVyIGRhbnMgdW4gZm9ybWF0IHByb3BpY2Ugw6AgbGEgY29uc29tbWF0aW9uIHBhciBtYWNoaW5lIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2MworbXNnaWQgIlNob3cgcG9yY2VsYWluIGZvcm1hdCB3aXRoIHBlci1saW5lIGNvbW1pdCBpbmZvcm1hdGlvbiIKK21zZ3N0ciAiQWZmaWNoZXIgZW4gZm9ybWF0IHBvcmNlbGFpbmUgYXZlYyBsJ2luZm9ybWF0aW9uIGRlIGNvbW1pdCBwYXIgbGlnbmUiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0Cittc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKK21zZ3N0ciAiVXRpbGlzZXIgbGUgbcOqbWUgbW9kZSBkZSBzb3J0aWUgcXVlIGdpdC1hbm5vdGF0ZSAoRMOpZmF1dCA6IGTDqXNhY3RpdsOpKSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNjUKK21zZ2lkICJTaG93IHJhdyB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCittc2dzdHIgIkFmZmljaGVyIGxlcyBob3JvZGF0YWdlcyBicnV0cyAoRMOpZmF1dDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2NgorbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKK21zZ3N0ciAiQWZmaWNoZXIgbGVzIGxvbmdzIFNIQTEgZGUgY29tbWl0cyAoRMOpZmF1dCA6IGTDqXNhY3RpdsOpKSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKK21zZ2lkICJTdXBwcmVzcyBhdXRob3IgbmFtZSBhbmQgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgorbXNnc3RyICJTdXBwcmltZXIgbGUgbm9tIGRlIGwnYXV0ZXVyIGV0IGwnaG9yb2RhdGFnZSAoRMOpZmF1dCA6IGTDqXNhY3RpdsOpKSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNjgKK21zZ2lkICJTaG93IGF1dGhvciBlbWFpbCBpbnN0ZWFkIG9mIG5hbWUgKERlZmF1bHQ6IG9mZikiCittc2dzdHIgIkFmZmljaGVyIGwnZS1tYWlsIGRlIGwnYXV0ZXVyIGF1IGxpZXUgZHUgbm9tIChEw6lmYXV0IDogZMOpc2FjdGl2w6kpIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM2OQorbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgorbXNnc3RyICJJZ25vcmVyIGxlcyBkaWZmw6lyZW5jZXMgZCdlc3BhY2UiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCittc2dpZCAiU3BlbmQgZXh0cmEgY3ljbGVzIHRvIGZpbmQgYmV0dGVyIG1hdGNoIgorbXNnc3RyICJEw6lwZW5zZXIgZGVzIGN5Y2xlcyBzdXBwbMOpbWVudGFpcmVzIHBvdXIgdHJvdXZlciB1bmUgbWVpbGxldXJlIGNvcnJlc3BvbmRhbmNlIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM3MQorbXNnaWQgIlVzZSByZXZpc2lvbnMgZnJvbSA8ZmlsZT4gaW5zdGVhZCBvZiBjYWxsaW5nIGdpdC1yZXYtbGlzdCIKK21zZ3N0ciAiVXRpbGlzZXIgbGVzIHLDqXZpc2lvbnMgZHUgZmljaGllciA8ZmljaGllcj4gYXUgbGlldSBkJ2FwcGVsZXIgZ2l0LXJldi1saXN0IgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM3MgorbXNnaWQgIlVzZSA8ZmlsZT4ncyBjb250ZW50cyBhcyB0aGUgZmluYWwgaW1hZ2UiCittc2dzdHIgIlV0aWxpc2VyIGxlIGNvbnRlbnUgZGUgPGZpY2hpZXI+IGNvbW1lIGltYWdlIGZpbmFsZSIKKworIzogYnVpbHRpbi9ibGFtZS5jOjIzNzMgYnVpbHRpbi9ibGFtZS5jOjIzNzQKK21zZ2lkICJzY29yZSIKK21zZ3N0ciAic2NvcmUiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzczCittc2dpZCAiRmluZCBsaW5lIGNvcGllcyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKK21zZ3N0ciAiVHJvdXZlciBsZXMgY29waWVzIGRlIGxpZ25lIGRhbnMgZXQgZW50cmUgbGVzIGZpY2hpZXJzIgorCisjOiBidWlsdGluL2JsYW1lLmM6MjM3NAorbXNnaWQgIkZpbmQgbGluZSBtb3ZlbWVudHMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCittc2dzdHIgIlRyb3V2ZXIgbGVzIG1vdXZlbWVudHMgZGUgbGlnbmUgZGFucyBldCBlbnRyZSBsZXMgZmljaGllcnMiCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc1Cittc2dpZCAibixtIgorbXNnc3RyICJuLG0iCisKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMzc1Cittc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCittc2dzdHIgIlRyYWl0ZXIgc2V1bGVtZW50IGwnaW50ZXJ2YWxsZSBkZSBsaWduZSBuLG0gZW4gY29tbWVuw6dhbnQgbGUgY29tcHRlIMOgIDEiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQKK21zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLXIgfCAtYV0gWy0tbWVyZ2VkIHwgLS1uby1tZXJnZWRdIgorbXNnc3RyICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLXIgfCAtYV0gWy0tbWVyZ2VkIHwgLS1uby1tZXJnZWRdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjI1Cittc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1sXSBbLWZdIDxicmFuY2huYW1lPiBbPHN0YXJ0LXBvaW50Pl0iCittc2dzdHIgImdpdCBicmFuY2ggW29wdGlvbnNdIFstbF0gWy1mXSA8bm9tZGVicmFuY2g+IFs8cG9pbnQtZGUtZMOpcGFydD5dIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjI2Cittc2dpZCAiZ2l0IGJyYW5jaCBbb3B0aW9uc10gWy1yXSAoLWQgfCAtRCkgPGJyYW5jaG5hbWU+Li4uIgorbXNnc3RyICJnaXQgYnJhbmNoIFtvcHRpb25zXSBbLXJdICgtZCB8IC1EKSA8bm9tZGVicmFuY2hlPi4uLiIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNworbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdICgtbSB8IC1NKSBbPG9sZGJyYW5jaD5dIDxuZXdicmFuY2g+IgorbXNnc3RyICJnaXQgYnJhbmNoIFtvcHRpb25zXSAoLW0gfCAtTSkgWzxhbmNpZW5uZWJyYW5jaGU+XSA8bm91dmVsbGVicmFuY2hlPiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorImRlbGV0aW5nIGJyYW5jaCAnJXMnIHRoYXQgaGFzIGJlZW4gbWVyZ2VkIHRvXG4iCisiICAgICAgICAgJyVzJywgYnV0IG5vdCB5ZXQgbWVyZ2VkIHRvIEhFQUQuIgorbXNnc3RyICIiCisic3VwcHJlc3Npb24gZGUgbGEgYnJhbmNoZSAnJXMnIHF1aSBhIMOpdMOpIGZ1c2lvbm7DqWUgZGFuc1xuIgorIiAgICAgICAgICclcycsIG1haXMgcGFzIGRhbnMgSEVBRC4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTU0CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJub3QgZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBpcyBub3QgeWV0IG1lcmdlZCB0b1xuIgorIiAgICAgICAgICclcycsIGV2ZW4gdGhvdWdoIGl0IGlzIG1lcmdlZCB0byBIRUFELiIKK21zZ3N0ciAiIgorImJyYW5jaGUgJyVzJyBub24gc3VwcHJpbcOpZSBjYXIgZWxsZSBuJ2EgcGFzIMOpdMOpIGZ1c2lvbm7DqWUgZGFuc1xuIgorIiAgICAgICAgICclcycsIG3Dqm1lIHNpIGVsbGUgZXN0IGZ1c2lvbm7DqWUgZGFucyBIRUFELiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxNjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlY2hlcmNoZXIgbCdvYmpldCBjb21taXQgcG91ciAnJXMnIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjE3MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGJyYW5jaCAnJXMnIGlzIG5vdCBmdWxseSBtZXJnZWQuXG4iCisiSWYgeW91IGFyZSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdCwgcnVuICdnaXQgYnJhbmNoIC1EICVzJy4iCittc2dzdHIgIiIKKyJMYSBicmFuY2hlICclcycgbidlc3QgcGFzIHRvdGFsZW1lbnQgZnVzaW9ubsOpZS5cbiIKKyJTaSB2b3VzIMOqdGVzIHN1ciBxdWUgdm91cyB2b3VsZXogbGEgc3VwcHJpbWVyLCBsYW5jZXogJ2dpdCBicmFuY2ggLUQgJXMnLiIKKworIzogYnVpbHRpbi9icmFuY2guYzoxODUKK21zZ2lkICJVcGRhdGUgb2YgY29uZmlnLWZpbGUgZmFpbGVkIgorbXNnc3RyICLDiWNoZWMgZGUgbGEgbWlzZSDDoCBqb3VyIGR1IGZpY2hpZXIgZGUgY29uZmlnIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjIxMworbXNnaWQgImNhbm5vdCB1c2UgLWEgd2l0aCAtZCIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ3V0aWxpc2VyIC1hIGF2ZWMgLWQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjE5Cittc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciBIRUFEIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlY2hlcmNoZXIgbCdvYmpldCBjb21taXQgcG91ciBIRUFEIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjIyNworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZGVsZXRlIHRoZSBicmFuY2ggJyVzJyB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBvbi4iCittc2dzdHIgIkltcG9zc2libGUgZGUgc3VwcHJpbWVyIGxhIGJyYW5jaGUgJyVzJyBzdXIgbGFxdWVsbGUgdm91cyDDqnRlcy4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQwCisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW90ZSBicmFuY2ggJyVzJyBub3QgZm91bmQuIgorbXNnc3RyICJicmFuY2hlIGRpc3RhbnRlICVzJyBub24gdHJvdXbDqWUuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjI0MQorIywgYy1mb3JtYXQKK21zZ2lkICJicmFuY2ggJyVzJyBub3QgZm91bmQuIgorbXNnc3RyICJicmFuY2hlICclcycgbm9uIHRyb3V2w6llLiIKKworIzogYnVpbHRpbi9icmFuY2guYzoyNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXJyb3IgZGVsZXRpbmcgcmVtb3RlIGJyYW5jaCAnJXMnIgorbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZSBsYSBicmFuY2hlIGRpc3RhbnRlICclcyciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgorbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsYSBzdXBwcmVzc2lvbiBkZSBsYSBicmFuY2hlICclcyciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjYzCisjLCBjLWZvcm1hdAorbXNnaWQgIkRlbGV0ZWQgcmVtb3RlIGJyYW5jaCAlcyAod2FzICVzKS5cbiIKK21zZ3N0ciAiQnJhbmNoZSBkaXN0YW50ZSAlcyBzdXBwcmltw6llIChwcsOpY8OpZGVtbWVudCAlcykuXG4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkRlbGV0ZWQgYnJhbmNoICVzICh3YXMgJXMpLlxuIgorbXNnc3RyICJCcmFuY2hlICVzIHN1cHByaW3DqWUgKHByw6ljw6lkZW1tZW50ICVzKS5cbiIKKworIzogYnVpbHRpbi9icmFuY2guYzozNjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgcG9pbnQgYXQgYSBjb21taXQiCittc2dzdHIgImxhIGJyYW5jaGUgJyVzJyBuZSBwb2ludGUgcGFzIHN1ciB1biBjb21taXQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDUzCisjLCBjLWZvcm1hdAorbXNnaWQgIlslczogYmVoaW5kICVkXSIKK21zZ3N0ciAiWyVzOiBlbiByZXRhcmQgZGUgJWRdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICJbYmVoaW5kICVkXSIKK21zZ3N0ciAiW2VuIHJldGFyZCBkZSAlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CisjLCBjLWZvcm1hdAorbXNnaWQgIlslczogYWhlYWQgJWRdIgorbXNnc3RyICJbJXMgOiBlbiBhdmFuY2UgZGUgJWRdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2MQorIywgYy1mb3JtYXQKK21zZ2lkICJbYWhlYWQgJWRdIgorbXNnc3RyICJbZW4gYXZhbmNlIGRlICVkXSIKKworIzogYnVpbHRpbi9icmFuY2guYzo0NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiWyVzOiBhaGVhZCAlZCwgYmVoaW5kICVkXSIKK21zZ3N0ciAiWyVzIDogZW4gYXZhbmNlIGRlICVkLCBlbiByZXRhcmQgZGUgJWRdIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NworIywgYy1mb3JtYXQKK21zZ2lkICJbYWhlYWQgJWQsIGJlaGluZCAlZF0iCittc2dzdHIgIltlbiBhdmFuY2UgZGUgJWQsIGVuIHJldGFyZCBkZSAlZF0iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDkwCittc2dpZCAiICoqKiogaW52YWxpZCByZWYgKioqKiIKK21zZ3N0ciAiICoqKiogcsOpZsOpcmVuY2UgaW52YWxpZGUgKioqKiIKKworIzogYnVpbHRpbi9icmFuY2guYzo1ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgorbXNnc3RyICIoYXVjdW5lIGJyYW5jaGUsIHJlYmFzYWdlIGRlICVzKSIKKworIzogYnVpbHRpbi9icmFuY2guYzo1ODUKKyMsIGMtZm9ybWF0Cittc2dpZCAiKG5vIGJyYW5jaCwgYmlzZWN0IHN0YXJ0ZWQgb24gJXMpIgorbXNnc3RyICIoYXVjdW5lIGJyYW5jaGUsIGJpc2VjdCBhIGTDqW1hcnLDqSBzdXIgJXMpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjU4OAorIywgYy1mb3JtYXQKK21zZ2lkICIoZGV0YWNoZWQgZnJvbSAlcykiCittc2dzdHIgIihkw6l0YWNow6kgZGUgJXMpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQorbXNnaWQgIihubyBicmFuY2gpIgorbXNnc3RyICIoYXVjdW5lIGJyYW5jaGUpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjYzNworIywgYy1mb3JtYXQKK21zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKK21zZ3N0ciAibCdvYmpldCAnJXMnIG5lIHBvaW50ZSBwYXMgc3VyIHVuIGNvbW1pdCIKKworIzogYnVpbHRpbi9icmFuY2guYzo2NjkKK21zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCittc2dzdHIgImRlcyByw6lmw6lyZW5jZXMgbidvbnQgcGFzIHB1IMOqdHJlIGx1ZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCittc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCittc2dzdHIgImltcG9zc2libGUgZGUgcmVub21tZXIgbGEgYnJhbmNoZSBhY3R1ZWxsZSwgaWwgbid5IGVuIGEgcGFzLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo2OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKK21zZ3N0ciAiTm9tIGRlIGJyYW5jaGUgaW52YWxpZGUgOiAnJXMnIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjcwNworbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgorbXNnc3RyICJFY2hlYyBkZSByZW5vbW1hZ2UgZGUgbGEgYnJhbmNoZSIKKworIzogYnVpbHRpbi9icmFuY2guYzo3MTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVuYW1lZCBhIG1pc25hbWVkIGJyYW5jaCAnJXMnIGF3YXkiCittc2dzdHIgIlJlbm9tbWFnZSBkJ3VuIGJyYW5jaGUgbWFsIG5vbW3DqWUgJyVzJyIKKworIzogYnVpbHRpbi9icmFuY2guYzo3MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoIHJlbmFtZWQgdG8gJXMsIGJ1dCBIRUFEIGlzIG5vdCB1cGRhdGVkISIKK21zZ3N0ciAiTGEgYnJhbmNoZSBhIMOpdMOpIHJlbm9tbcOpZSBlbiAlcywgbWFpcyBIRUFEIG4nZXN0IHBhcyBtaXNlIMOgIGpvdXIgISIKKworIzogYnVpbHRpbi9icmFuY2guYzo3MjIKK21zZ2lkICJCcmFuY2ggaXMgcmVuYW1lZCwgYnV0IHVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCittc2dzdHIgIkxhIGJyYW5jaGUgZXN0IHJlbm9tbcOpZSwgbWFpcyBsYSBtaXNlIMOgIGpvdXIgZHUgZmljaGllciBkZSBjb25maWcgYSDDqWNob3XDqSIKKworIzogYnVpbHRpbi9icmFuY2guYzo3MzcKKyMsIGMtZm9ybWF0Cittc2dpZCAibWFsZm9ybWVkIG9iamVjdCBuYW1lICVzIgorbXNnc3RyICJub20gZCdvYmpldCBtYWxmb3Jtw6kgJXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzYxCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBtb2TDqGxlIGRlIGRlc2NyaXB0aW9uIGRlIGJyYW5jaGUgOiAlcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo3OTEKK21zZ2lkICJHZW5lcmljIG9wdGlvbnMiCittc2dzdHIgIk9wdGlvbnMgZ8OpbsOpcmlxdWVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjc5MworbXNnaWQgInNob3cgaGFzaCBhbmQgc3ViamVjdCwgZ2l2ZSB0d2ljZSBmb3IgdXBzdHJlYW0gYnJhbmNoIgorbXNnc3RyICJhZmZpY2hlciBsZSBoYWNoYWdlIGV0IGxlIHN1amV0LCBkb3VibMOpIHBvdXIgbGEgYnJhbmNoZSBhbW9udCIKKworIzogYnVpbHRpbi9icmFuY2guYzo3OTQKK21zZ2lkICJzdXBwcmVzcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIgorbXNnc3RyICJzdXBwcmltZXIgbGVzIG1lc3NhZ2VzIGQnaW5mb3JtYXRpb24iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1Cittc2dpZCAic2V0IHVwIHRyYWNraW5nIG1vZGUgKHNlZSBnaXQtcHVsbCgxKSkiCittc2dzdHIgInLDqWdsZXIgbGUgbW9kZSBkZSBzdWl2aSAodm9pciBnaXQtcHVsbCgxKSkiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3Cittc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCittc2dzdHIgIm1vZGlmaWVyIGwnaW5mb3JtYXRpb24gYW1vbnQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCittc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgorbXNnc3RyICJ1dGlsaXNlciBsYSBjb2xvcmF0aW9uIGRhbnMgbGEgc29ydGllIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgwMgorbXNnaWQgImFjdCBvbiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCittc2dzdHIgImFnaXIgc3VyIGxlcyBicmFuY2hlcyBkZSBzdWl2aSBkaXN0YW50ZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjEzNjggYnVpbHRpbi9jb21taXQuYzoxMzY5CisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzAgYnVpbHRpbi9jb21taXQuYzoxMzcxIGJ1aWx0aW4vdGFnLmM6NDY4Cittc2dpZCAiY29tbWl0IgorbXNnc3RyICJ2YWxpZGVyIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgorbXNnaWQgInByaW50IG9ubHkgYnJhbmNoZXMgdGhhdCBjb250YWluIHRoZSBjb21taXQiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgYnJhbmNoZXMgcXVpIGNvbnRpZW5uZW50IGxlIGNvbW1pdCIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MTgKK21zZ2lkICJTcGVjaWZpYyBnaXQtYnJhbmNoIGFjdGlvbnM6IgorbXNnc3RyICJBY3Rpb25zIHNww6ljaWZpcXVlcyDDoCBnaXQtYnJhbmNoIDoiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE5Cittc2dpZCAibGlzdCBib3RoIHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCittc2dzdHIgImFmZmljaGVyIMOgIGxhIGZvaXMgbGVzIGJyYW5jaGVzIGRlIHN1aXZpIGV0IGxlcyBicmFuY2hlcyBsb2NhbGVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMQorbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgorbXNnc3RyICJzdXBwcmltZXIgdW5lIGJyYW5jaGUgdG90YWxlbWVudCBmdXNpb25uw6llIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMgorbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCittc2dzdHIgInN1cHByaW1lciB1bmUgYnJhbmNoZSAobcOqbWUgbm9uIGZ1c2lvbm7DqWUpIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMworbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoIGFuZCBpdHMgcmVmbG9nIgorbXNnc3RyICJkw6lwbGFjZXIvcmVub21tZXIgdW5lIGJyYW5jaGUgZXQgc29uIHJlZmxvZyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjQKK21zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCwgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIgorbXNnc3RyICJkw6lwbGFjZXIvcmVub21tZXIgdW5lIGJyYW5jaGUsIG3Dqm1lIHNpIGxhIGNpYmxlIGV4aXN0ZSIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjUKK21zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIG5vbXMgZGVzIGJyYW5jaGVzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjgyNgorbXNnaWQgImNyZWF0ZSB0aGUgYnJhbmNoJ3MgcmVmbG9nIgorbXNnc3RyICJjcsOpZXIgbGUgcmVmbG9nIGRlIGxhIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4Cittc2dpZCAiZWRpdCB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBicmFuY2giCittc2dzdHIgIsOpZGl0ZXIgbGEgZGVzY3JpcHRpb24gZGUgbGEgYnJhbmNoZSIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MjkKK21zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCittc2dzdHIgImZvcmNlciBsYSBjcsOpYXRpb24gKG3Dqm1lIHNpIGxhIGNpYmxlIGV4aXN0ZSkiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCittc2dpZCAicHJpbnQgb25seSBub3QgbWVyZ2VkIGJyYW5jaGVzIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGJyYW5jaGVzIG5vbiBmdXNpb25uw6llcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4MzgKK21zZ2lkICJwcmludCBvbmx5IG1lcmdlZCBicmFuY2hlcyIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBicmFuY2hlcyBmdXNpb25uw6llcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4NDIKK21zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCittc2dzdHIgImFmZmljaGVyIGxlcyBicmFuY2hlcyBlbiBjb2xvbm5lcyIKKworIzogYnVpbHRpbi9icmFuY2guYzo4NTUKK21zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSBIRUFEIGFzIGEgdmFsaWQgcmVmLiIKK21zZ3N0ciAiw4ljaGVjIGRlIHLDqXNvbHV0aW9uIGRlIEhFQUQgY29tbWUgcsOpZsOpcmVuY2UgdmFsaWRlLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYxOQorbXNnaWQgIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIgorbXNnc3RyICJIRUFEIG5vbiB0cm91dsOpZSBzb3VzIHJlZnMvaGVhZHMgISIKKworIzogYnVpbHRpbi9icmFuY2guYzo4ODMKK21zZ2lkICItLWNvbHVtbiBhbmQgLS12ZXJib3NlIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIi0tY29sdW1uIGV0IC0tdmVyYm9zZSBzb250IGluY29tcGF0aWJsZXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg5IGJ1aWx0aW4vYnJhbmNoLmM6OTI4Cittc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCittc2dzdHIgImxlIG5vbSBkZSBicmFuY2hlIGVzdCByZXF1aXMiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0Cittc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBkw6ljcmlyZSB1bmUgSEVBRCBkw6l0YWNow6llIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjkwOQorbXNnaWQgImNhbm5vdCBlZGl0IGRlc2NyaXB0aW9uIG9mIG1vcmUgdGhhbiBvbmUgYnJhbmNoIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6lkaXRlciBsYSBkZXNjcmlwdGlvbiBkZSBwbHVzIGQndW5lIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgorbXNnc3RyICJBdWN1biBjb21taXQgc3VyIGxhIGJyYW5jaGUgJyVzJy4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIGJyYW5jaCBuYW1lZCAnJXMnLiIKK21zZ3N0ciAiQXVjdW5lIGJyYW5jaGUgbm9tbcOpZSAnJXMnLiIKKworIzogYnVpbHRpbi9icmFuY2guYzo5MzQKK21zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgorbXNnc3RyICJ0cm9wIGRlIGJyYW5jaGVzIHBvdXIgdW5lIG9ww6lyYXRpb24gZGUgcmVub21tYWdlIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjkzOQorbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCittc2dzdHIgInRyb3AgZGUgYnJhbmNoZXMgcG91ciBzcMOpY2lmaWVyIHVuZSBicmFuY2hlIGFtb250IgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCittc2dzdHIgImltcG9zc2libGUgZGUgc3DDqWNpZmllciB1bmUgYnJhbmNoZSBhbW9udCBkZSBIRUFEIHBhciAlcyBxdWkgbmUgcG9pbnRlIHN1ciBhdWN1bmUgYnJhbmNoZS4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCittc2dzdHIgInBhcyBkZSBicmFuY2hlICclcyciCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCisjLCBjLWZvcm1hdAorbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJsYSBicmFuY2hlICclcycgbidleGlzdGUgcGFzIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk2MgorbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgorbXNnc3RyICJ0cm9wIGRlIGJyYW5jaGVzIHBvdXIgZMOpc2FjdGl2ZXIgdW4gYW1vbnQiCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2Cittc2dpZCAiY291bGQgbm90IHVuc2V0IHVwc3RyZWFtIG9mIEhFQUQgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBkw6lzYWN0aXZlciB1bmUgYnJhbmNoZSBhbW9udCBkZSBIRUFEIHF1YW5kIGVsbGUgbmUgcG9pbnRlIHN1ciBhdWN1bmUgYnJhbmNoZS4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIKK21zZ3N0ciAiTGEgYnJhbmNoZSAnJXMnIG4nYSBhdWN1bmUgaW5mb3JtYXRpb24gZGUgYnJhbmNoZSBhbW9udCIKKworIzogYnVpbHRpbi9icmFuY2guYzo5ODcKK21zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCittc2dzdHIgImNyw6llciBtYW51ZWxsZW1lbnQgJ0hFQUQnIG4nYSBhdWN1biBzZW5zIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk5MworbXNnaWQgIi1hIGFuZCAtciBvcHRpb25zIHRvICdnaXQgYnJhbmNoJyBkbyBub3QgbWFrZSBzZW5zZSB3aXRoIGEgYnJhbmNoIG5hbWUiCittc2dzdHIgImxlcyBvcHRpb25zIC1hIGV0IC1yIGRlICdnaXQgYnJhbmNoJyBuJ29udCBwYXMgZGUgc2VucyBhdmVjIHVuIG5vbSBkZSBicmFuY2hlIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjk5NgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIC0tc2V0LXVwc3RyZWFtIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBDb25zaWRlciB1c2luZyAtLSIKKyJ0cmFjayBvciAtLXNldC11cHN0cmVhbS10b1xuIgorbXNnc3RyICJsJ29wdGlvbiAtLXNldC11cHN0cmVhbSBlc3Qgb2Jzb2zDqHRlIGV0IHZhIGRpc3BhcmHDrnRyZS4gVXRpbGlzZXogcGx1dMO0dCAtLXRyYWNrIG91IC0tc2V0LXVwc3RyZWFtLXRvXG4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSWYgeW91IHdhbnRlZCB0byBtYWtlICclcycgdHJhY2sgJyVzJywgZG8gdGhpczpcbiIKKyJcbiIKK21zZ3N0ciAiXG4iCisiU2kgdm91cyB2b3VsaWV6IHF1ZSAnJXMnIHN1aXZlICclcycsIGZhw650ZXMgY2VjaSA6XG4iCisiXG4iCisKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAorIywgYy1mb3JtYXQKK21zZ2lkICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgorbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgorCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgIGdpdCBicmFuY2ggLS1zZXQtdXBzdHJlYW0tdG8gJXNcbiIKK21zZ3N0ciAiICAgIGdpdCBicmFuY2ggLXNldC11cHN0cmVhbS10byAlc1xuIgorCisjOiBidWlsdGluL2J1bmRsZS5jOjQ3CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG9rYXlcbiIKK21zZ3N0ciAiJXMgZXN0IGNvcnJlY3RcbiIKKworIzogYnVpbHRpbi9idW5kbGUuYzo1NgorbXNnaWQgIk5lZWQgYSByZXBvc2l0b3J5IHRvIGNyZWF0ZSBhIGJ1bmRsZS4iCittc2dzdHIgIkxhIGNyw6lhdGlvbiBkJ3VuIGNvbGlzIHJlcXVpZXJ0IHVuIGTDqXDDtHQuIgorCisjOiBidWlsdGluL2J1bmRsZS5jOjYwCittc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgorbXNnc3RyICJMZSBkw6lwYXF1ZXRhZ2UgZCd1biBjb2xpcyByZXF1aWVydCB1biBkw6lww7R0LiIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE3NgorbXNnaWQgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PHR5cGU+fC0tdGV4dGNvbnYpIDxvYmplY3Q+IgorbXNnc3RyICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZXQ+IgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MTc3Cittc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCittc2dzdHIgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0ZV9kX29iamV0cz4iCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoxOTUKK21zZ2lkICI8dHlwZT4gY2FuIGJlIG9uZSBvZjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCittc2dzdHIgIjx0eXBlPiBwZXV0IMOqdHJlIDogYmxvYiwgdHJlZSwgY29tbWl0IG91IHRhZyIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NgorbXNnaWQgInNob3cgb2JqZWN0IHR5cGUiCittc2dzdHIgImFmZmljaGVyIGxlIHR5cGUgZGUgbCdvYmpldCIKKworIzogYnVpbHRpbi9jYXQtZmlsZS5jOjE5NworbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCittc2dzdHIgImFmZmljaGVyIGxhIHRhaWxsZSBkZSBsJ29iamV0IgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MTk5Cittc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgorbXNnc3RyICJzb3J0aXIgYXZlYyB1biBjb2RlIGQnZXJyZXVyIG51bCBxdWFuZCBpbCBuJ3kgYSBhdWN1bmUgZXJyZXVyIgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MjAwCittc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCittc2dzdHIgImFmZmljaGVyIGF2ZWMgbWlzZSBlbiBmb3JtZSBsZSBjb250ZW51IGRlIGwnb2JqZXQiCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDIKK21zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKK21zZ3N0ciAicG91ciBsZXMgb2JqZXRzIGJsb2IsIGxhbmNlciB0ZXh0Y29udiBzdXIgbGUgY29udGVudSBkZSBsJ29iamV0IgorCisjOiBidWlsdGluL2NhdC1maWxlLmM6MjA0Cittc2dpZCAic2hvdyBpbmZvIGFuZCBjb250ZW50IG9mIG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgorbXNnc3RyICJhZmZpY2hlciBsJ2luZm9ybWF0aW9uIGV0IGxlIGNvbnRlbnUgZGVzIG9iamV0cyBwYXNzw6lzIGVuIGVudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyMDcKK21zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgImFmZmljaGVyIGwnaW5mb3JtYXRpb24gZGVzIG9iamV0cyBwYXNzw6lzIGVuIGVudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vY2hlY2stYXR0ci5jOjExCittc2dpZCAiZ2l0IGNoZWNrLWF0dHIgWy1hIHwgLS1hbGwgfCBhdHRyLi4uXSBbLS1dIHBhdGhuYW1lLi4uIgorbXNnc3RyICJnaXQgY2hlY2stYXR0ciBbLWEgfCAtLWFsbCB8IGF0dHIuLi5dIFstLV0gY2hlbWluLi4uIgorCisjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoxMgorbXNnaWQgImdpdCBjaGVjay1hdHRyIC0tc3RkaW4gWy16XSBbLWEgfCAtLWFsbCB8IGF0dHIuLi5dIDwgPGxpc3Qtb2YtcGF0aHM+IgorbXNnc3RyICJnaXQgY2hlY2stYXR0ciAtLXN0ZGluIFstel0gWy1hIHwgLS1hbGwgfCBhdHRyLi4uXSA8IDxsaXN0ZS1kZS1jaGVtaW5zPiIKKworIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MTkKK21zZ2lkICJyZXBvcnQgYWxsIGF0dHJpYnV0ZXMgc2V0IG9uIGZpbGUiCittc2dzdHIgImFmZmljaGVyIHRvdXMgbGVzIGF0dHJpYnV0cyBhc3NvY2nDqXMgYXUgZmljaGllciIKKworIzogYnVpbHRpbi9jaGVjay1hdHRyLmM6MjAKK21zZ2lkICJ1c2UgLmdpdGF0dHJpYnV0ZXMgb25seSBmcm9tIHRoZSBpbmRleCIKK21zZ3N0ciAidXRpbGlzZXIgLmdpdGF0dHJpYnV0ZXMgc2V1bGVtZW50IGRlcHVpcyBsJ2luZGV4IgorCisjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjIyIGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NQorbXNnaWQgInJlYWQgZmlsZSBuYW1lcyBmcm9tIHN0ZGluIgorbXNnc3RyICJsaXJlIGxlcyBub21zIGRlIGZpY2hpZXIgZGVwdWlzIHN0ZGluIgorCisjOiBidWlsdGluL2NoZWNrLWF0dHIuYzoyMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI0Cittc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKK21zZ3N0ciAibGVzIGNoZW1pbnMgZW4gZW50csOpZSBzb250IHRlcm1pbsOpcyBwYXIgbGUgY2FyYWN0w6hyZSBudWwiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNDQgYnVpbHRpbi9nYy5jOjE3NworbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKK21zZ3N0ciAic3VwcHJpbWVyIGwnw6l0YXQgZCdhdmFuY2VtZW50IgorCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgorbXNnaWQgImNhbm5vdCBzcGVjaWZ5IHBhdGhuYW1lcyB3aXRoIC0tc3RkaW4iCittc2dzdHIgImltcG9zc2libGUgZGUgc3DDqWNpZmllciBsZXMgY2hlbWlucyBhdmVjIC0tc3RkaW4iCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ5Cittc2dpZCAiLXogb25seSBtYWtlcyBzZW5zZSB3aXRoIC0tc3RkaW4iCittc2dzdHIgIi16IG4nYSBkZSBzZW5zIHF1J2F2ZWMgbCdvcHRpb24gLS1zdGRpbiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTEKK21zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKK21zZ3N0ciAiYXVjdW4gY2hlbWluIHNww6ljaWZpw6kiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU1Cittc2dpZCAiLS1xdWlldCBpcyBvbmx5IHZhbGlkIHdpdGggYSBzaW5nbGUgcGF0aG5hbWUiCittc2dzdHIgIi0tcXVpZXQgbidlc3QgdmFsaWRlIHF1J2F2ZWMgdW4gc2V1bCBjaGVtaW4iCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiY2Fubm90IGhhdmUgYm90aCAtLXF1aWV0IGFuZCAtLXZlcmJvc2UiCittc2dzdHIgImltcG9zc2libGUgZCdhdm9pciAtLXF1aWV0IGV0IC0tdmVyYm9zZSIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjEyNgorbXNnaWQgImdpdCBjaGVja291dC1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmljaGllcj4uLi5dIgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTg3Cittc2dpZCAiY2hlY2sgb3V0IGFsbCBmaWxlcyBpbiB0aGUgaW5kZXgiCittc2dzdHIgImV4dHJhaXJlIHRvdXMgbGVzIGZpY2hpZXJzIHByw6lzZW50cyBkYW5zIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxODgKK21zZ2lkICJmb3JjZSBvdmVyd3JpdGUgb2YgZXhpc3RpbmcgZmlsZXMiCittc2dzdHIgImZvcmNlciBsJ8OpY3Jhc2VtZW50IGRlcyBmaWNoaWVycyBleGlzdGFudHMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTAKK21zZ2lkICJubyB3YXJuaW5nIGZvciBleGlzdGluZyBmaWxlcyBhbmQgZmlsZXMgbm90IGluIGluZGV4IgorbXNnc3RyICJwYXMgZCdhdmVydGlzc2VtZW50IHBvdXIgbGVzIGZpY2hpZXJzIGV4aXN0YW50cyBldCBsZXMgZmljaGllcnMgYWJzZW50cyBkZSBsJ2luZGV4IgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTkyCittc2dpZCAiZG9uJ3QgY2hlY2tvdXQgbmV3IGZpbGVzIgorbXNnc3RyICJuZSBwYXMgZXh0cmFpcmUgbGVzIG5vdXZlYXV4IGZpY2hpZXJzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk0Cittc2dpZCAidXBkYXRlIHN0YXQgaW5mb3JtYXRpb24gaW4gdGhlIGluZGV4IGZpbGUiCittc2dzdHIgIm1ldHRyZSDDoCBqb3VyIGwnaW5mb3JtYXRpb24gZGUgc3RhdCBkYW5zIGxlIGZpY2hpZXIgZCdpbmRleCIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjIwMAorbXNnaWQgInJlYWQgbGlzdCBvZiBwYXRocyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKK21zZ3N0ciAibGlyZSBsYSBsaXN0ZSBkZXMgY2hlbWlucyBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIgorCisjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MjAyCittc2dpZCAid3JpdGUgdGhlIGNvbnRlbnQgdG8gdGVtcG9yYXJ5IGZpbGVzIgorbXNnc3RyICLDqWNyaXJlIGxlIGNvbnRlbnUgZGFucyBkZXMgZmljaGllcnMgdGVtcG9yYWlyZXMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoyMDMgYnVpbHRpbi9jb2x1bW4uYzozMAorbXNnaWQgInN0cmluZyIKK21zZ3N0ciAiY2hhw65uZSIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjIwNAorbXNnaWQgIndoZW4gY3JlYXRpbmcgZmlsZXMsIHByZXBlbmQgPHN0cmluZz4iCittc2dzdHIgImxvcnMgZGUgbGEgY3LDqWF0aW9uIGRlIGZpY2hpZXJzLCBwcsOpZml4ZXIgcGFyIDxjaGHDrm5lPiIKKworIzogYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjIwNworbXNnaWQgImNvcHkgb3V0IHRoZSBmaWxlcyBmcm9tIG5hbWVkIHN0YWdlIgorbXNnc3RyICJjb3BpZXIgbGVzIGZpY2hpZXJzIGRlcHVpcyBsJ2luZGV4IG5vbW3DqSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjI1Cittc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSA8YnJhbmNoPiIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSA8YnJhbmNoZT4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNgorbXNnaWQgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2g+XSAtLSA8ZmlsZT4uLi4iCittc2dzdHIgImdpdCBjaGVja291dCBbb3B0aW9uc10gWzxicmFuY2hlPl0gLS0gPGZpY2hpZXI+Li4uIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgb3VyIHZlcnNpb24iCittc2dzdHIgImxlIGNoZW1pbiAnJXMnIG4nYSBwYXMgbm90cmUgdmVyc2lvbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExOSBidWlsdGluL2NoZWNrb3V0LmM6MTUyCisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIHRoZWlyIHZlcnNpb24iCittc2dzdHIgImxlIGNoZW1pbiAnJXMnIG4nYSBwYXMgbGV1ciB2ZXJzaW9uIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTM1CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIGFsbCBuZWNlc3NhcnkgdmVyc2lvbnMiCittc2dzdHIgImxlIGNoZW1pbiAnJXMnIG4nYSBhdWN1bmUgZGVzIHZlcnNpb25zIG7DqWNlc3NhaXJlcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjE3OQorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBuZWNlc3NhcnkgdmVyc2lvbnMiCittc2dzdHIgImxlIGNoZW1pbiAnJXMnIG4nYSBwYXMgbGVzIHZlcnNpb25zIG7DqWNlc3NhaXJlcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgorIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKK21zZ3N0ciAiY2hlbWluICclcycgOiBpbXBvc3NpYmxlIGRlIGZ1c2lvbm5lciIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjIxMworIywgYy1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gYWRkIG1lcmdlIHJlc3VsdCBmb3IgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2Fqb3V0ZXIgbGUgcsOpc3VsdGF0IGRlIGZ1c2lvbiBwb3VyICclcyciCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzcgYnVpbHRpbi9jaGVja291dC5jOjI0MCBidWlsdGluL2NoZWNrb3V0LmM6MjQzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ2CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCB1cGRhdGluZyBwYXRocyIKK21zZ3N0ciAiJyVzJyBuZSBwZXV0IHBhcyDDqnRyZSB1dGlsaXPDqSBhdmVjIGRlcyBtaXNlcyDDoCBqb3VyIGRlIGNoZW1pbnMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDkgYnVpbHRpbi9jaGVja291dC5jOjI1MgorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCittc2dzdHIgIiclcycgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyAlcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjI1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgbWV0dHJlIMOgIGpvdXIgbGVzIGNoZW1pbnMgZXQgYmFzY3VsZXIgc3VyIGxhIGJyYW5jaGUgJyVzJyBlbiBtw6ptZSB0ZW1wcy4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAorbXNnaWQgImNvcnJ1cHQgaW5kZXggZmlsZSIKK21zZ3N0ciAiZmljaGllciBkJ2luZGV4IGNvcnJvbXB1IgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MzI5IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aCAnJXMnIGlzIHVubWVyZ2VkIgorbXNnc3RyICJsZSBjaGVtaW4gJyVzJyBuJ2VzdCBwYXMgZnVzaW9ubsOpIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCittc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCittc2dzdHIgInZvdXMgZGV2ZXogZCdhYm9yZCByw6lzb3VkcmUgdm90cmUgaW5kZXggY291cmFudCIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjYwMQorIywgYy1mb3JtYXQKK21zZ2lkICJDYW4gbm90IGRvIHJlZmxvZyBmb3IgJyVzJ1xuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGZhaXJlIHVuIHJlZmxvZyBwb3VyICclcydcbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjYzNAorbXNnaWQgIkhFQUQgaXMgbm93IGF0IgorbXNnc3RyICJIRUFEIGVzdCBtYWludGVuYW50IHN1ciIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjY0MQorIywgYy1mb3JtYXQKK21zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgorbXNnc3RyICJSZW1pc2Ugw6AgesOpcm8gZGUgbGEgYnJhbmNoZSAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCittc2dzdHIgIkTDqWrDoCBzdXIgJyVzJ1xuIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ4CisjLCBjLWZvcm1hdAorbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgorbXNnc3RyICJCYXNjdWxlbWVudCBldCByZW1pc2Ugw6AgesOpcm8gZGUgbGEgYnJhbmNoZSAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTAgYnVpbHRpbi9jaGVja291dC5jOjk4NworIywgYy1mb3JtYXQKK21zZ2lkICJTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJyVzJ1xuIgorbXNnc3RyICJCYXNjdWxlbWVudCBzdXIgbGEgbm91dmVsbGUgYnJhbmNoZSAnJXMnXG4iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dpdGNoZWQgdG8gYnJhbmNoICclcydcbiIKK21zZ3N0ciAiQmFzY3VsZW1lbnQgc3VyIGxhIGJyYW5jaGUgJyVzJ1xuIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzA4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCittc2dzdHIgIiAuLi4gZXQgJWQgZW4gcGx1cy5cbiIKKworIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCisiYW55IG9mIHlvdXIgYnJhbmNoZXM6XG4iCisiXG4iCisiJXNcbiIKK21zZ2lkX3BsdXJhbCAiIgorIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXRzIGJlaGluZCwgbm90IGNvbm5lY3RlZCB0b1xuIgorImFueSBvZiB5b3VyIGJyYW5jaGVzOlxuIgorIlxuIgorIiVzXG4iCittc2dzdHJbMF0gIiIKKyJBdHRlbnRpb24gOiB2b3VzIGxhaXNzZXogJWQgY29tbWl0IGVuIHJldGFyZCwgbm9uIGNvbm5lY3TDqXMgw6BcbiIKKyJ1bmUgYnJhbmNoZSA6XG4iCisiXG4iCisiJXNcbiIKK21zZ3N0clsxXSAiIgorIkF0dGVudGlvbiA6IHZvdXMgbGFpc3NleiAlZCBjb21taXRzIGVuIHJldGFyZCwgbm9uIGNvbm5lY3TDqXMgw6BcbiIKKyJ1bmUgYnJhbmNoZSA6XG4iCisiXG4iCisiJXNcbiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjczMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiSWYgeW91IHdhbnQgdG8ga2VlcCB0aGVtIGJ5IGNyZWF0aW5nIGEgbmV3IGJyYW5jaCwgdGhpcyBtYXkgYmUgYSBnb29kIHRpbWVcbiIKKyJ0byBkbyBzbyB3aXRoOlxuIgorIlxuIgorIiBnaXQgYnJhbmNoIG5ld19icmFuY2hfbmFtZSAlc1xuIgorIlxuIgorbXNnc3RyICIiCisiU2kgdm91cyBzb3VoYWl0ZXogbGVzIGdhcmRlciBlbiBjcsOpYW50IHVuZSBub3V2ZWxsZSBicmFuY2hlLCBjJ2VzdCBsZSBib24gbW9tZW50XG4iCisiZGUgbGUgZmFpcmUgYXZlYyA6XG4iCisiXG4iCisiZ2l0IGJyYW5jaGUgbm91dmVsbGVfYnJhbmNoZSAlc1xuIgorIlxuIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzYyCittc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gcmV2aXNpb24gd2FsayIKK21zZ3N0ciAiZXJyZXVyIGludGVybmUgbG9ycyBkdSBwYXJjb3VycyBkZXMgcsOpdmlzaW9ucyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjc2NgorbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgorbXNnc3RyICJMYSBwb3NpdGlvbiBwcsOpY8OpZGVudGUgZGUgSEVBRCDDqXRhaXQiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTMgYnVpbHRpbi9jaGVja291dC5jOjk4MgorbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCittc2dzdHIgIlZvdXMgw6p0ZXMgc3VyIHVuZSBicmFuY2hlIHF1aSBkb2l0IGVuY29yZSBuYcOudHJlIgorCisjLiBjYXNlICgxKQorIzogYnVpbHRpbi9jaGVja291dC5jOjkxOAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCittc2dzdHIgInLDqWbDqXJlbmNlIGludmFsaWRlIDogJXMiCisKKyMuIGNhc2UgKDEpOiB3YW50IGEgdHJlZQorIzogYnVpbHRpbi9jaGVja291dC5jOjk1NworIywgYy1mb3JtYXQKK21zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCittc2dzdHIgImxhIHLDqWbDqXJlbmNlIG4nZXN0IHBhcyB1biBhcmJyZSA6ICVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2Cittc2dpZCAicGF0aHMgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCittc2dzdHIgImltcG9zc2libGUgZCd1dGlsaXNlciBkZXMgY2hlbWlucyBhdmVjIHVuIGJhc2N1bGVtZW50IGRlIGJyYW5jaGVzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTk5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAzCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCBzd2l0Y2hpbmcgYnJhbmNoZXMiCittc2dzdHIgIiclcycgbmUgcGV1dCBwYXMgw6p0cmUgdXRpbGlzw6kgYXZlYyB1biBiYXNjdWxlbWVudCBkZSBicmFuY2hlcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDcgYnVpbHRpbi9jaGVja291dC5jOjEwMTAgYnVpbHRpbi9jaGVja291dC5jOjEwMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgorbXNnc3RyICInJXMnIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgJyVzJyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHN3aXRjaCBicmFuY2ggdG8gYSBub24tY29tbWl0ICclcyciCittc2dzdHIgIkltcG9zc2libGUgZGUgYmFzY3VsZXIgZGUgYnJhbmNoZSB2ZXJzICclcycgcXVpIG4nZXN0IHBhcyB1biBjb21taXQiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ3IGJ1aWx0aW4vY2xvbmUuYzo5MAorIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKK21zZ2lkICJicmFuY2giCittc2dzdHIgImJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ2Cittc2dpZCAiY3JlYXRlIGFuZCBjaGVja291dCBhIG5ldyBicmFuY2giCittc2dzdHIgImNyw6llciBldCBleHRyYWlyZSB1bmUgbm91dmVsbGUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDgKK21zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgorbXNnc3RyICJjcsOpZXIvcsOpaW5pdGlhbGlzZXIgZXQgZXh0cmFpcmUgdW5lIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ5Cittc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKK21zZ3N0ciAiY3LDqWVyIHVuIHJlZm9nIHBvdXIgdW5lIG5vdXZlbGxlIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUwCittc2dpZCAiZGV0YWNoIHRoZSBIRUFEIGF0IG5hbWVkIGNvbW1pdCIKK21zZ3N0ciAiZMOpdGFjaGVyIGxhIEhFQUQgw6AgbGEgdmFsaWRhdGlvbiBub21tw6llIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgorbXNnc3RyICJwYXJhbcOpdHJlciBsJ2luZm9ybWF0aW9uIGRlIGJyYW5jaGUgYW1vbnQgcG91ciB1bmUgbm91dmVsbGUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMKK21zZ2lkICJuZXcgYnJhbmNoIgorbXNnc3RyICJub3V2ZWxsZSBicmFuY2hlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MworbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKK21zZ3N0ciAibm91dmVsbGUgYnJhbmNoZSBzYW5zIHBhcmVudCIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTQKK21zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCittc2dzdHIgImV4dHJhaXJlIG5vdHJlIHZlcnNpb24gcG91ciBsZXMgZmljaGllcnMgbm9uIGZ1c2lvbm7DqXMiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2Cittc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCittc2dzdHIgImV4dHJhaXJlIGxldXIgdmVyc2lvbiBwb3VyIGxlcyBmaWNoaWVycyBub24gZnVzaW9ubsOpcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKK21zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKK21zZ3N0ciAiZm9yY2VyIGwnZXh0cmFjdGlvbiAobGFpc3NlciB0b21iZXIgbGVzIG1vZGlmaWNhdGlvbnMgbG9jYWxlcykiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5Cittc2dpZCAicGVyZm9ybSBhIDMtd2F5IG1lcmdlIHdpdGggdGhlIG5ldyBicmFuY2giCittc2dzdHIgInLDqWFsaXNlciB1bmUgZnVzaW9uIMOgIDMgcG9pbnRzIGF2ZWMgbGEgbm91dmVsbGUgYnJhbmNoZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9tZXJnZS5jOjIxNworbXNnaWQgInVwZGF0ZSBpZ25vcmVkIGZpbGVzIChkZWZhdWx0KSIKK21zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbGVzIGZpY2hpZXJzIGlnbm9yw6lzIChwYXIgZMOpZmF1dCkiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxIGJ1aWx0aW4vbG9nLmM6MTE1OCBwYXJzZS1vcHRpb25zLmg6MjQ1Cittc2dpZCAic3R5bGUiCittc2dzdHIgInN0eWxlIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorbXNnaWQgImNvbmZsaWN0IHN0eWxlIChtZXJnZSBvciBkaWZmMykiCittc2dzdHIgInN0eWxlIGRlIGNvbmZsaXQgKGZ1c2lvbiBvdSBkaWZmMykiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY1Cittc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgorbXNnc3RyICJuZSBwYXMgbGltaXRlciBsZXMgc3DDqWNpZmljYXRldXJzIGRlIGNoZW1pbnMgYXV4IHNldWxlcyBlbnRyw6llcyBjcmV1c2VzIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NworbXNnaWQgInNlY29uZCBndWVzcyAnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKK21zZ3N0ciAiZGV1eGnDqG1lIGNoYW5jZSAnZ2l0IGNoZWNrb3V0IGJyYW5jaGUtaW5leGlzdGFudGUnIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA5MQorbXNnaWQgIi1iLCAtQiBhbmQgLS1vcnBoYW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKK21zZ3N0ciAiLWIsIC1CIGV0IC0tb3JwaGFuIHNvbnQgbXV0dWVsbGVtZW50IGV4Y2x1c2lmcyIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExMDgKK21zZ2lkICItLXRyYWNrIG5lZWRzIGEgYnJhbmNoIG5hbWUiCittc2dzdHIgIi0tdHJhY2sgcmVxdWllcnQgdW4gbm9tIGRlIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE1Cittc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgorbXNnc3RyICJOb20gZGUgYnJhbmNoZSBtYW5xdWFudCA7IGVzc2F5ZXogLWIiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTUwCittc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCittc2dzdHIgInNww6ljaWZpY2F0aW9uIGRlIGNoZW1pbiBpbnZhbGlkZSIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjExNTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgorIkRpZCB5b3UgaW50ZW5kIHRvIGNoZWNrb3V0ICclcycgd2hpY2ggY2FuIG5vdCBiZSByZXNvbHZlZCBhcyBjb21taXQ/IgorbXNnc3RyICIiCisiSW1wb3NzaWJsZSBkZSBtZXR0cmUgw6Agam91ciBsZXMgY2hlbWlucyBldCBkZSBiYXNjdWxlciBzdXIgbGEgYnJhbmNoZSAnJXMnIGVuIG3Dqm1lIHRlbXBzLlxuIgorIlNvdWhhaXRpZXotdm91cyBleHRyYWlyZSAnJXMnIHF1aSBuZSBwZXV0IMOqdHJlIHLDqXNvbHUgY29tbWUgY29tbWl0ID8iCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYyCisjLCBjLWZvcm1hdAorbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKK21zZ3N0ciAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBuJ2FjY2VwdGUgcGFzIHVuIGFyZ3VtZW50IGRlIGNoZW1pbiAnJXMnIgorCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2NgorbXNnaWQgIiIKKyJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKKyJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKK21zZ3N0ciAiIgorImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIGV0IC0tbWVyZ2Ugc29udCBpbmNvbXBhdGlibGVzIGxvcnNcbiIKKyJkZSBsJ2V4dHJhY3Rpb24gZGUgbCdpbmRleC4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyMAorbXNnaWQgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8cGF0dGVybj5dIFsteCB8IC1YXSBbLS1dIDxwYXRocz4uLi4iCittc2dzdHIgImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8bW90aWY+XSBbLXggfCAtWF0gWy0tXSA8Y2hlbWlucz4uLi4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJSZW1vdmluZyAlc1xuIgorbXNnc3RyICJTdXBwcmVzc2lvbiBkZSAlc1xuIgorCisjOiBidWlsdGluL2NsZWFuLmM6MjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCittc2dzdHIgIlN1cHByaW1lcmFpdCAlc1xuIgorCisjOiBidWlsdGluL2NsZWFuLmM6MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU2tpcHBpbmcgcmVwb3NpdG9yeSAlc1xuIgorbXNnc3RyICJJZ25vcmUgbGUgZMOpcMO0dCAlc1xuIgorCisjOiBidWlsdGluL2NsZWFuLmM6MjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCittc2dzdHIgIklnbm9yZXJhaXQgbGUgZMOpcMO0dCAlc1xuIgorCisjOiBidWlsdGluL2NsZWFuLmM6MjgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKK21zZ3N0ciAiw6ljaGVjIGRlIGxhIHN1cHByZXNzaW9uIGRlICVzIgorCisjOiBidWlsdGluL2NsZWFuLmM6MTYwCittc2dpZCAiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiCittc2dzdHIgIm5lIHBhcyBhZmZpY2hlciBsZXMgbm9tcyBkZXMgZmljaGllcnMgc3VwcHJpbcOpcyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorbXNnaWQgImZvcmNlIgorbXNnc3RyICJmb3JjZXIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKK21zZ2lkICJyZW1vdmUgd2hvbGUgZGlyZWN0b3JpZXMiCittc2dzdHIgInN1cHByaW1lciBsZXMgcsOpcGVydG9pcmVzIGVudGllcnMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxNjUgYnVpbHRpbi9kZXNjcmliZS5jOjQxMiBidWlsdGluL2dyZXAuYzo3MTcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcgYnVpbHRpbi9uYW1lLXJldi5jOjIzMSBidWlsdGluL3Nob3ctcmVmLmM6MTgyCittc2dpZCAicGF0dGVybiIKK21zZ3N0ciAibW90aWYiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKK21zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKK21zZ3N0ciAiYWpvdXRlciA8bW90aWY+IGF1eCByw6hnbGVzIGlnbm9yZSIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE2NworbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCittc2dzdHIgInN1cHByaW1lciBsZXMgZmljaGllcnMgaWdub3LDqXMsIGF1c3NpIgorCisjOiBidWlsdGluL2NsZWFuLmM6MTY5Cittc2dpZCAicmVtb3ZlIG9ubHkgaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAic3VwcHJpbWVyIHNldWxlbWVudCBsZXMgZmljaGllcnMgaWdub3LDqXMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxODcKK21zZ2lkICIteCBhbmQgLVggY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCittc2dzdHIgIi14IGV0IC1YIG5lIHBldXZlbnQgcGFzIMOqdHJlIHV0aWxpc8OpcyBlbnNlbWJsZSIKKworIzogYnVpbHRpbi9jbGVhbi5jOjE5MQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byBjbGVhbiIKK21zZ3N0ciAiY2xlYW4ucmVxdWlyZUZvcmNlIHBvc2l0aW9ubsOpIMOgIHRydWUgZXQgbmkgLW4gbmkgLWYgZm91cm5pIDsgcmVmdXMgZGUgbmV0dG95ZXIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoxOTQKK21zZ2lkICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCisiY2xlYW4iCittc2dzdHIgImNsZWFuLnJlcXVpcmVGb3JjZSDDoCB0cnVlIHBhciBkw6lmYXV0IGV0IG5pIC1uIG5pIC1mIGZvdXJuaSA7IHJlZnVzIGRlIG5ldHRveWVyIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzcKK21zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCittc2dzdHIgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8ZMOpcMO0dD4gWzxyw6lwZXJ0b2lyZT5dIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjUgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQzNgorbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKK21zZ3N0ciAiZm9yY2VyIGwnw6l0YXQgZCdhdmFuY2VtZW50IgorCisjOiBidWlsdGluL2Nsb25lLmM6NjcKK21zZ2lkICJkb24ndCBjcmVhdGUgYSBjaGVja291dCIKK21zZ3N0ciAibmUgcGFzIGNyw6llciBkJ2V4dHJhY3Rpb24iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4Cittc2dpZCAiY3JlYXRlIGEgYmFyZSByZXBvc2l0b3J5IgorbXNnc3RyICJjcsOpZXIgdW4gZMOpcMO0dCBudSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjczCittc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCittc2dzdHIgImNyw6llciB1biBkw6lww7R0IG1pcm9pciAoaW1wbGlxdWUgZMOpcMO0dCBudSkiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorbXNnaWQgInRvIGNsb25lIGZyb20gYSBsb2NhbCByZXBvc2l0b3J5IgorbXNnc3RyICJwb3VyIGNsb25lciBkZXB1aXMgdW4gZMOpcMO0dCBsb2NhbCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc3Cittc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCittc2dzdHIgIm5lIHBhcyB1dGlsaXNlciBkZSBsaWVucyBkdXJzIGxvY2F1eCwgdG91am91cnMgY29waWVyIgorCisjOiBidWlsdGluL2Nsb25lLmM6NzkKK21zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKK21zZ3N0ciAicsOpZ2xlciBjb21tZSBkw6lww7R0IHBhcnRhZ8OpIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODEgYnVpbHRpbi9jbG9uZS5jOjgzCittc2dpZCAiaW5pdGlhbGl6ZSBzdWJtb2R1bGVzIGluIHRoZSBjbG9uZSIKK21zZ3N0ciAiaW5pdGlhbGlzZXIgbGVzIHNvdXMtbW9kdWxlcyBkYW5zIGxlIGNsb25lIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg1Cittc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgorbXNnc3RyICJyw6lwZXJ0b2lyZS1tb2TDqGxlIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODUgYnVpbHRpbi9pbml0LWRiLmM6NDg2Cittc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKK21zZ3N0ciAicsOpcGVydG9pcmUgZGVwdWlzIGxlcXVlbCBsZXMgbW9kw6hsZXMgdm9udCDDqnRyZSB1dGlsaXPDqXMiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NworbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5IgorbXNnc3RyICJkw6lww7R0IGRlIHLDqWbDqXJlbmNlIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODggYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAorbXNnaWQgIm5hbWUiCittc2dzdHIgIm5vbSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjg5Cittc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgorbXNnc3RyICJ1dGlsaXNlciA8bm9tPiBhdSBsaWV1IGRlICdvcmlnaW4nIHBvdXIgc3VpdnJlIGxhIGJyYW5jaGUgYW1vbnQiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCittc2dzdHIgImV4dHJhaXJlIDxicmFuY2hlPiBhdSBsaWV1IGRlIGxhIEhFQUQgZHUgcsOpcGVydG9pcmUgZGlzdGFudCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjkzCittc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKK21zZ3N0ciAiY2hlbWluIHZlcnMgZ2l0LXVwbG9hZC1wYWNrIHN1ciBsZSBzZXJ2ZXVyIGRpc3RhbnQiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NCBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYyCittc2dpZCAiZGVwdGgiCittc2dzdHIgInByb2ZvbmRldXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NQorbXNnaWQgImNyZWF0ZSBhIHNoYWxsb3cgY2xvbmUgb2YgdGhhdCBkZXB0aCIKK21zZ3N0ciAiY3LDqWVyIHVuIGNsb25lIHN1cGVyZmljaWVsIGRlIGNldHRlIHByb2ZvbmRldXIiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NworbXNnaWQgImNsb25lIG9ubHkgb25lIGJyYW5jaCwgSEVBRCBvciAtLWJyYW5jaCIKK21zZ3N0ciAiY2xvbmVyIHNldWxlbWVudCB1bmUgYnJhbmNoZSwgSEVBRCBvdSAtLWJyYW5jaCIKKworIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorbXNnaWQgImdpdGRpciIKK21zZ3N0ciAiZ2l0ZGlyIgorCisjOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1Cittc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAic8OpcGFyZXIgbGUgcsOpcGVydG9pcmUgZ2l0IGRlIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKK21zZ2lkICJrZXk9dmFsdWUiCittc2dzdHIgImNsw6k9dmFsZXVyIgorCisjOiBidWlsdGluL2Nsb25lLmM6MTAxCittc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgorbXNnc3RyICJyw6lnbGVyIGxhIGNvbmZpZ3VyYXRpb24gZGFucyBsZSBub3V2ZWF1IGTDqXDDtHQiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKK21zZ3N0ciAibGUgZMOpcMO0dCBkZSByw6lmw6lyZW5jZSAnJXMnIG4nZXN0IHBhcyB1biBkw6lww7R0IGxvY2FsLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjMxNworIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgorbXNnc3RyICLDqWNoZWMgZGUgbGEgY3LDqWF0aW9uIGR1IHLDqXBlcnRvaXJlICclcyciCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTkgYnVpbHRpbi9kaWZmLmM6NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKK21zZ3N0ciAiw6ljaGVjIGR1IHN0YXQgZGUgJyVzJyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjMyMQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKK21zZ3N0ciAiJXMgZXhpc3RlIGV0IG4nZXN0IHBhcyB1biByw6lwZXJ0b2lyZSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjMzNQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gc3RhdCAlc1xuIgorbXNnc3RyICLDqWNoZWMgZHUgc3RhdCBkZSAlc1xuIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzU3CisjLCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgorbXNnc3RyICLDqWNoZWMgZGUgbGEgY3LDqWF0aW9uIGR1IGxpZW4gJyVzJyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM2MQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gY29weSBmaWxlIHRvICclcyciCittc2dzdHIgIsOpY2hlYyBkZSBsYSBjb3BpZSB2ZXJzICclcyciCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODQKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZS5cbiIKK21zZ3N0ciAiZmFpdC5cbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM5NworbXNnaWQgIiIKKyJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCisiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCisiYW5kIHJldHJ5IHRoZSBjaGVja291dCB3aXRoICdnaXQgY2hlY2tvdXQgLWYgSEVBRCdcbiIKK21zZ3N0ciAiTGUgY2xvbmUgYSByw6l1c3NpLCBtYWlzIGwnZXh0cmFjdGlvbiBhIMOpY2hvdcOpLlxuIgorIlZvdXMgcG91dmV6IGluc3BlY3RlciBjZSBxdWkgYSDDqXTDqSBleHRyYWl0IGF2ZWMgJ2dpdCBzdGF0dXMnXG4iCisiZXQgcsOpZXNzYXllciBsJ2V4dHJhY3Rpb24gYXZlYyAnZ2l0IGNoZWNrb3V0IC1mIEhFQUQnXG4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgdHJvdXZlciBsYSBicmFuY2hlIGRpc3RhbnRlICclcycgw6AgY2xvbmVyLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjU1MAorbXNnaWQgInJlbW90ZSBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzIgorbXNnc3RyICJsZSBzZXJ2ZXVyIGRpc3RhbnQgbidhIHBhcyBlbnZvecOpIHRvdXMgbGVzIG9iamV0cyBuw6ljZXNzYWlyZXMiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2MTAKK21zZ2lkICJyZW1vdGUgSEVBRCByZWZlcnMgdG8gbm9uZXhpc3RlbnQgcmVmLCB1bmFibGUgdG8gY2hlY2tvdXQuXG4iCittc2dzdHIgImxhIEhFQUQgZGlzdGFudGUgcsOpZsOocmUgw6AgdW5lIHLDqWbDqXJlbmNlIG5vbiBleGlzdGFudGUsIGltcG9zc2libGUgZGUgbCdleHRyYWlyZS5cbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjY0MQorbXNnaWQgInVuYWJsZSB0byBjaGVja291dCB3b3JraW5nIHRyZWUiCittc2dzdHIgImlucG9zc2libGUgZCdleHRyYWlyZSBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjOiBidWlsdGluL2Nsb25lLmM6NzQ5Cittc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKK21zZ3N0ciAiVHJvcCBkJ2FyZ3VtZW50cy4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NTMKK21zZ2lkICJZb3UgbXVzdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSB0byBjbG9uZS4iCittc2dzdHIgIlZvdXMgZGV2ZXogc3DDqWNpZmllciB1biBkw6lww7R0IMOgIGNsb25lci4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKKyMsIGMtZm9ybWF0Cittc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgorbXNnc3RyICJsZXMgb3B0aW9ucyAtLWJhcmUgZXQgLS1vcmlnaW4gJXMgc29udCBpbmNvbXBhdGlibGVzLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjc2NworbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgorbXNnc3RyICItLWJhcmUgZXQgLS1zZXBhcmF0ZS1naXQtZGlyIHNvbnQgaW5jb21wYXRpYmxlcy4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVwb3NpdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0IgorbXNnc3RyICJsZSBkw6lww7R0ICclcycgbidleGlzdGUgcGFzIgorCisjOiBidWlsdGluL2Nsb25lLmM6Nzg1Cittc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCittc2dzdHIgIi0tZGVwdGggZXN0IGlnbm9yw6kgZGFucyBsZXMgY2xvbmVzIGxvY2F1eCA6IHV0aWxpc2V6IHBsdXTDtHQgXCJmaWxlOi8vXCIuIgorCisjOiBidWlsdGluL2Nsb25lLmM6Nzk1CisjLCBjLWZvcm1hdAorbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCittc2dzdHIgImxlIGNoZW1pbiBkZSBkZXN0aW5hdGlvbiAnJXMnIGV4aXN0ZSBkw6lqw6AgZXQgbidlc3QgcGFzIHVuIHLDqXBlcnRvaXJlIHZpZGUuIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA1CisjLCBjLWZvcm1hdAorbXNnaWQgIndvcmtpbmcgdHJlZSAnJXMnIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAibGEgY29waWUgZGUgdHJhdmFpbCAnJXMnIGV4aXN0ZSBkw6lqw6AuIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODE4IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCittc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIGxlcyByw6lwZXJ0b2lyZXMgZGUgcHJlbWllciBuaXZlYXUgZGFucyAnJXMnIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODIxCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgd29yayB0cmVlIGRpciAnJXMnLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgZGUgbGEgY29waWUgZGUgdHJhdmFpbCAnJXMnLiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjg0MAorIywgYy1mb3JtYXQKK21zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKK21zZ3N0ciAiQ2xvbmFnZSBkYW5zIGxlIGTDqXDDtHQgbnUgJyVzJ1xuIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODQyCisjLCBjLWZvcm1hdAorbXNnaWQgIkNsb25pbmcgaW50byAnJXMnLi4uXG4iCittc2dzdHIgIkNsb25hZ2UgZGFucyAnJXMnLi4uXG4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gY2xvbmUgJXMiCittc2dzdHIgIkplIG5lIHNhaXMgcGFzIGNsb25lciAlcyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjkyNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZW1vdGUgYnJhbmNoICVzIG5vdCBmb3VuZCBpbiB1cHN0cmVhbSAlcyIKK21zZ3N0ciAiTGEgYnJhbmNoZSBkaXN0YW50ZSAlcyBuJ2EgcGFzIMOpdMOpIHRyb3V2w6llIGRhbnMgbGUgZMOpcMO0dCBhbW9udCAlcyIKKworIzogYnVpbHRpbi9jbG9uZS5jOjkzMworbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCittc2dzdHIgIlZvdXMgc2VtYmxleiBhdm9pciBjbG9uw6kgdW4gZMOpcMO0dCB2aWRlLiIKKworIzogYnVpbHRpbi9jb2x1bW4uYzo5Cittc2dpZCAiZ2l0IGNvbHVtbiBbb3B0aW9uc10iCittc2dzdHIgImdpdCBjb2x1bW4gW29wdGlvbnNdIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjI2Cittc2dpZCAibG9va3VwIGNvbmZpZyB2YXJzIgorbXNnc3RyICJyZWNoZXJjaGVyIGxlcyB2YXJpYWJsZXMgZGUgY29uZmlndXJhdGlvbiIKKworIzogYnVpbHRpbi9jb2x1bW4uYzoyNyBidWlsdGluL2NvbHVtbi5jOjI4Cittc2dpZCAibGF5b3V0IHRvIHVzZSIKK21zZ3N0ciAibWlzZSBlbiBwYWdlIMOgIHV0aWxpc2VyIgorCisjOiBidWlsdGluL2NvbHVtbi5jOjI5Cittc2dpZCAiTWF4aW11bSB3aWR0aCIKK21zZ3N0ciAiTGFyZ2V1ciBtYXhpbWFsZSIKKworIzogYnVpbHRpbi9jb2x1bW4uYzozMAorbXNnaWQgIlBhZGRpbmcgc3BhY2Ugb24gbGVmdCBib3JkZXIiCittc2dzdHIgIlJlbXBsaXNzYWdlIGQnZXNwYWNlIHN1ciBsYSBib3JkdXJlIGdhdWNoZSIKKworIzogYnVpbHRpbi9jb2x1bW4uYzozMQorbXNnaWQgIlBhZGRpbmcgc3BhY2Ugb24gcmlnaHQgYm9yZGVyIgorbXNnc3RyICJSZW1wbGlzc2FnZSBkJ2VzcGFjZSBzdXIgbGUgY8O0dMOpIGRyb2l0IgorCisjOiBidWlsdGluL2NvbHVtbi5jOjMyCittc2dpZCAiUGFkZGluZyBzcGFjZSBiZXR3ZWVuIGNvbHVtbnMiCittc2dzdHIgIlJlbXBsaXNzYWdlIGQnZXNwYWNlIGVudHJlIGxlcyBjb2xvbm5lcyIKKworIzogYnVpbHRpbi9jb2x1bW4uYzo1MQorbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKK21zZ3N0ciAiLS1jb21tYW5kIGRvaXQgw6p0cmUgbGUgcHJlbWllciBhcmd1bWVudCIKKworIzogYnVpbHRpbi9jb21taXQuYzozNAorbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKK21zZ3N0ciAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8c3DDqWNpZmljYXRpb24tZGUtY2hlbWluPi4uLiIKKworIzogYnVpbHRpbi9jb21taXQuYzozOQorbXNnaWQgImdpdCBzdGF0dXMgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKK21zZ3N0ciAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8c3DDqWNpZmljYXRpb24tZGUtY2hlbWluPi4uLiIKKworIzogYnVpbHRpbi9jb21taXQuYzo0NAorbXNnaWQgIiIKKyJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKKyJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCisiWW91IGNhbiBzdXBwcmVzcyB0aGlzIG1lc3NhZ2UgYnkgc2V0dGluZyB0aGVtIGV4cGxpY2l0bHk6XG4iCisiXG4iCisiICAgIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiWW91ciBOYW1lXCJcbiIKKyIgICAgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsIHlvdUBleGFtcGxlLmNvbVxuIgorIlxuIgorIkFmdGVyIGRvaW5nIHRoaXMsIHlvdSBtYXkgZml4IHRoZSBpZGVudGl0eSB1c2VkIGZvciB0aGlzIGNvbW1pdCB3aXRoOlxuIgorIlxuIgorIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKK21zZ3N0ciAiIgorIlZvdHJlIG5vbSBldCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvbnQgw6l0w6kgY29uZmlndXLDqXMgYXV0b21hdGlxdWVtZW50IGVuIHNlIGZvbmRhbnRcbiIKKyJzdXIgdm90cmUgbm9tIGQndXRpbGlzYXRldXIgZXQgdm90cmUgbm9tIGQnb3JkaW5hdGV1ci4gVmV1aWxsZXogdsOpcmlmaWVyIHF1J2lscyBzb250IGNvcnJlY3RzLlxuIgorIlZvdXMgcG91dmV6IHN1cHByaW1lciBjZSBtZXNzYWdlIGVuIGxlcyBwYXJhbcOpdHJhbnQgZXhwbGljaXRlbWVudCA6XG4iCisiXG4iCisiICAgIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiVm90cmUgTm9tXCJcbiIKKyIgICAgZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsIHZvdXNAZXhlbXBsZS5jb21cbiIKKyJcbiIKKyJBcHLDqHMgY2VjaSwgdm91cyBwb3V2ZXogY29ycmlnZXIgbCdpZGVudGl0w6kgdXRpbGlzw6llIHBvdXIgY2UgY29tbWl0IGF2ZWMgOlxuIgorIlxuIgorIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKKworIzogYnVpbHRpbi9jb21taXQuYzo1NgorbXNnaWQgIiIKKyJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKKyJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgorInJlbW92ZSB0aGUgY29tbWl0IGVudGlyZWx5IHdpdGggXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKK21zZ3N0ciAiVm91cyBhdmV6IGRlbWFuZMOpIGRlIGNvcnJpZ2VyIGxlIGNvbW1pdCBsZSBwbHVzIHLDqWNlbnQsIG1haXMgbGUgZmFpcmUgbGUgcmVuZHJhaXRcbiIKKyJ2aWRlLiBWb3VzIHBvdXZleiByw6lww6l0ZXIgdm90cmUgY29tbWFuZGUgYXZlYyAtLWFsbG93LWVtcHR5LCBvdSB2b3VzIHBvdXZlelxuIgorInN1cHByaW1lciBjb21wbMOodGVtZW50IGxlIGNvbW1pdCBhdmVjIFwiZ2l0IHJlc2V0IEhFQUReXCIuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjEKK21zZ2lkICIiCisiVGhlIHByZXZpb3VzIGNoZXJyeS1waWNrIGlzIG5vdyBlbXB0eSwgcG9zc2libHkgZHVlIHRvIGNvbmZsaWN0IHJlc29sdXRpb24uXG4iCisiSWYgeW91IHdpc2ggdG8gY29tbWl0IGl0IGFueXdheSwgdXNlOlxuIgorIlxuIgorIiAgICBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHlcbiIKKyJcbiIKKyJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKK21zZ3N0ciAiIgorIkxlIHBpY29yYWdlIHByw6ljw6lkZW50IGVzdCDDoCBwcsOpc2VudCB2aWRlLCB2cmFpc2VtYmxhYmxlbWVudCBkw7sgw6AgdW5lIHLDqXNvbHV0aW9uIGRlIGNvbmZsaXQuXG4iCisiU2kgdm91cyBzb3VoYWl0ZXogdG91dCBkZSBtw6ptZSBsZSB2YWxpZGVyLCB1dGlsaXNleiA6XG4iCisiXG4iCisiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgorIlxuIgorIlNpbm9uLCB1dGlsaXNleiAnZ2l0IHJlc2V0J1xuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjI2MAorbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKK21zZ3N0ciAiw6ljaGVjIGR1IGTDqXBhcXVldGFnZSBkZSBsJ29iamV0IGFyYnJlIEhFQUQiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzAyCittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCittc2dzdHIgImltcG9zc2libGUgZGUgY3LDqWVyIGwnaW5kZXggdGVtcG9yYWlyZSIKKworIzogYnVpbHRpbi9jb21taXQuYzozMDgKK21zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgbCdham91dCBpbnRlcmFjdGlmIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjM0MSBidWlsdGluL2NvbW1pdC5jOjM2MiBidWlsdGluL2NvbW1pdC5jOjQxMgorbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkJ8OpY3JpcmUgbGUgZmljaGllciBuZXdfaW5kZXgiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzkzCittc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgbWVyZ2UuIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGZhaXJlIHVuZSB2YWxpZGF0aW9uIHBhcnRpZWxsZSBwZW5kYW50IHVuZSBmdXNpb24uIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjM5NQorbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIGNoZXJyeS1waWNrLiIKK21zZ3N0ciAiaW1wb3NzaWJsZSBkZSBmYWlyZSB1bmUgdmFsaWRhdGlvbiBwYXJ0aWVsbGUgcGVuZGFudCB1biBwaWNvcmFnZS4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDA1Cittc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbCdpbmRleCIKKworIzogYnVpbHRpbi9jb21taXQuYzo0MjUKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGVtcG9yYXJ5IGluZGV4IGZpbGUiCittc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxlIGZpY2hpZXIgZCdpbmRleCB0ZW1wb3JhaXJlIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCittc2dzdHIgImNvbW1pdCBpbnZhbGlkZSA6ICVzIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjU0MgorbXNnaWQgIm1hbGZvcm1lZCAtLWF1dGhvciBwYXJhbWV0ZXIiCittc2dzdHIgInBhcmFtw6h0cmUgLS1hdXRob3IgbWFsIGZvcm3DqSIKKworIzogYnVpbHRpbi9jb21taXQuYzo1NjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWFsZm9ybWVkIGlkZW50IHN0cmluZzogJyVzJyIKK21zZ3N0ciAiQ2hhw65uZSBpZGVudCBtYWwgZm9ybcOpZSA6ICclcyciCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjAwIGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vY29tbWl0LmM6OTU2CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJlY2hlcmNoZXIgbGUgY29tbWl0ICVzIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjYxMiBidWlsdGluL3Nob3J0bG9nLmM6MjcwCisjLCBjLWZvcm1hdAorbXNnaWQgIihyZWFkaW5nIGxvZyBtZXNzYWdlIGZyb20gc3RhbmRhcmQgaW5wdXQpXG4iCittc2dzdHIgIihsZWN0dXJlIGR1IG1lc3NhZ2UgZGUgam91cm5hbCBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkKVxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjYxNAorbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmcm9tIHN0YW5kYXJkIGlucHV0IgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgam91cm5hbCBkZXB1aXMgbCdlbnRyw6llIHN0YW5kYXJkIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZmlsZSAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgbGUgZmljaGllciBkZSBqb3VybmFsICclcyciCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjI0Cittc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgorbXNnc3RyICJsZSBjb21taXQgYSB1biBtZXNzYWdlIHZpZGUiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQwCittc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgTUVSR0VfTVNHIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjY0NAorbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBTUVVBU0hfTVNHIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjY0OAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgcmVhZCAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgJyVzJyIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MDkKK21zZ2lkICJjb3VsZCBub3Qgd3JpdGUgY29tbWl0IHRlbXBsYXRlIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBtb2TDqGxlIGRlIGNvbW1pdCIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIkl0IGxvb2tzIGxpa2UgeW91IG1heSBiZSBjb21taXR0aW5nIGEgbWVyZ2UuXG4iCisiSWYgdGhpcyBpcyBub3QgY29ycmVjdCwgcGxlYXNlIHJlbW92ZSB0aGUgZmlsZVxuIgorIlx0JXNcbiIKKyJhbmQgdHJ5IGFnYWluLlxuIgorbXNnc3RyICIiCisiXG4iCisiSWwgc2VtYmxlIHF1ZSB2b3VzIHZhbGlkaWV6IHVuZSBmdXNpb24uXG4iCisiU2kgY2Ugbidlc3QgcGFzIGxlIGNhcywgdmV1aWxsZXogc3VwcHJpbWVyIGxlIGZpY2hpZXJcbiIKKyJcdCVzXG4iCisiZXQgZXNzYXlleiDDoCBub3V2ZWF1LlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyNQorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiSXQgbG9va3MgbGlrZSB5b3UgbWF5IGJlIGNvbW1pdHRpbmcgYSBjaGVycnktcGljay5cbiIKKyJJZiB0aGlzIGlzIG5vdCBjb3JyZWN0LCBwbGVhc2UgcmVtb3ZlIHRoZSBmaWxlXG4iCisiXHQlc1xuIgorImFuZCB0cnkgYWdhaW4uXG4iCittc2dzdHIgIiIKKyJcbiIKKyJJbCBzZW1ibGUgcXVlIHZvdXMgdmFsaWRpZXogdW4gcGljb3JhZ2UuXG4iCisiU2kgY2Ugbidlc3QgcGFzIGxlIGNhcywgdmV1aWxsZXogc3VwcHJpbWVyIGxlIGZpY2hpZXJcbiIKKyJcdCVzXG4iCisiZXQgZXNzYXlleiDDoCBub3V2ZWF1LlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjczNworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgorIndpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0cyB0aGUgY29tbWl0LlxuIgorbXNnc3RyICIiCisiVmV1aWxsZXogc2Fpc2lyIGxlIG1lc3NhZ2UgZGUgdmFsaWRhdGlvbiBwb3VyIHZvcyBtb2RpZmljYXRpb25zLiBMZXMgbGlnbmVzXG4iCisiY29tbWVuw6dhbnQgcGFyICclYycgc2Vyb250IGlnbm9yw6llcywgZXQgdW4gbWVzc2FnZSB2aWRlIGFiYW5kb25uZSBsYSB2YWxpZGF0aW9uLlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgorIndpdGggJyVjJyB3aWxsIGJlIGtlcHQ7IHlvdSBtYXkgcmVtb3ZlIHRoZW0geW91cnNlbGYgaWYgeW91IHdhbnQgdG8uXG4iCisiQW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKK21zZ3N0ciAiIgorIlZldWlsbGV6IHNhaXNpciBsZSBtZXNzYWdlIGRlIHZhbGlkYXRpb24gcG91ciB2b3MgbW9kaWZpY2F0aW9ucy4gTGVzIGxpZ25lc1xuIgorImNvbW1lbsOnYW50IHBhciAnJWMnIHNlcm9udCBjb25zZXJ2w6llcyA7IHZvdXMgcG91dmV6IGxlcyBzdXBwcmltZXIgdm91cy1tw6ptZVxuIgorInNpIHZvdXMgbGUgc291aGFpdGV6LiBVbiBtZXNzYWdlIHZpZGUgYWJhbmRvbm5lIGxhIHZhbGlkYXRpb24uXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzU1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKK21zZ3N0ciAiJXNBdXRldXIgOiAgICAgJXMiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzQ29tbWl0dGVyOiAlcyIKK21zZ3N0ciAiJXNWYWxpZGF0ZXVyIDogJXMiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzgyCittc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCittc2dzdHIgIkltcG9zc2libGUgZGUgbGlyZSBsJ2luZGV4IgorCisjOiBidWlsdGluL2NvbW1pdC5jOjgxOQorbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgorbXNnc3RyICJFcnJldXIgbG9ycyBkZSBsYSBjb25zdHJ1Y3Rpb24gZGVzIGFyYnJlcyIKKworIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbWVzc2FnZSB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uLlxuIgorbXNnc3RyICJWZXVpbGxleiBmb3VybmlyIGxlIG1lc3NhZ2UgZW4gdXRpbGlzYW50IGwnb3B0aW9uIC1tIG91IC1GLlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIywgYy1mb3JtYXQKK21zZ2lkICJObyBleGlzdGluZyBhdXRob3IgZm91bmQgd2l0aCAnJXMnIgorbXNnc3RyICJBdWN1biBhdXRldXIgZXhpc3RhbnQgdHJvdXbDqSBhdmVjICclcyciCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTQ2IGJ1aWx0aW4vY29tbWl0LmM6MTE0MAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHVudHJhY2tlZCBmaWxlcyBtb2RlICclcyciCittc2dzdHIgIk1vZGUgZGUgZmljaGllciBub24gc3VpdmkgaW52YWxpZGUgJyVzJyIKKworIzogYnVpbHRpbi9jb21taXQuYzo5NzYKK21zZ2lkICJVc2luZyBib3RoIC0tcmVzZXQtYXV0aG9yIGFuZCAtLWF1dGhvciBkb2VzIG5vdCBtYWtlIHNlbnNlIgorbXNnc3RyICJMJ3V0aWxpc2F0aW9uIHNpbXVsdGFuw6llIGRlIC0tcmVzZXQtYXV0aG9yIGV0IC0tYXV0aG9yIG4nYSBwYXMgZGUgc2VucyIKKworIzogYnVpbHRpbi9jb21taXQuYzo5ODcKK21zZ2lkICJZb3UgaGF2ZSBub3RoaW5nIHRvIGFtZW5kLiIKK21zZ3N0ciAiSWwgbid5IGEgcmllbiDDoCBjb3JyaWdlci4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTkwCittc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UgLS0gY2Fubm90IGFtZW5kLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiBwbGVpbmUgZnVzaW9uIC0tIGltcG9zc2libGUgZGUgY29ycmlnZXIgKGFtZW5kKS4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTkyCittc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGEgY2hlcnJ5LXBpY2sgLS0gY2Fubm90IGFtZW5kLiIKK21zZ3N0ciAiVm91cyDDqnRlcyBlbiBwbGVpbiBwaWNvcmFnZSAtLSBpbXBvc3NpYmxlIGRlIGNvcnJpZ2VyIChhbWVuZCkuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjk5NQorbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCittc2dzdHIgIkxlcyBvcHRpb25zIC0tc3F1YXNoIGV0IC0tZml4dXAgbmUgcGV1dmVudCBwYXMgw6p0cmUgdXRpbGlzw6llcyBlbnNlbWJsZSIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDA1Cittc2dpZCAiT25seSBvbmUgb2YgLWMvLUMvLUYvLS1maXh1cCBjYW4gYmUgdXNlZC4iCittc2dzdHIgIlVuZSBzZXVsZSBvcHRpb24gcGFybWkgLWMvLUMvLUYvLS1maXh1cCBwZXV0IMOqdHJlIHV0aWxpc8OpZS4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNworbXNnaWQgIk9wdGlvbiAtbSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtYy8tQy8tRi8tLWZpeHVwLiIKK21zZ3N0ciAiTCdvcHRpb24gLW0gbmUgcGV1dCBwYXMgw6p0cmUgY29tYmluw6llIGF2ZWMgLWMvLUMvLUYvLS1maXh1cC4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAxNQorbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCittc2dzdHIgIi0tcmVzZXQtYXV0aG9yIG5lIHBldXQgw6p0cmUgdXRpbGlzw6kgcXUnYXZlYyAtQywgLWMgb3UgLS1hbWVuZC4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzMgorbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKK21zZ3N0ciAiVW5lIHNldWxlIG9wdGlvbiBwYXJtaSAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBwZXV0IMOqdHJlIHV0aWxpc8OpZS4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAorbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKK21zZ3N0ciAiQXVjdW4gY2hlbWluIGF2ZWMgbGVzIG9wdGlvbnMgLS1pbmNsdWRlLy0tb25seSBuJ2EgcGFzIGRlIHNlbnMuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEwMzYKK21zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgorbXNnc3RyICJNYWxpbi4uLiBjb3JyZWN0aW9uIGR1IGRlcm5pZXIgYXZlYyB1biBpbmRleCBzYWxlLiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDM4Cittc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDQ4IGJ1aWx0aW4vdGFnLmM6NTc1CisjLCBjLWZvcm1hdAorbXNnaWQgIkludmFsaWQgY2xlYW51cCBtb2RlICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MworbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDU5IGJ1aWx0aW4vY29tbWl0LmM6MTE5NAorbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNTQgYnVpbHRpbi9jb21taXQuYzoxMzkwCittc2dpZCAic2hvdyBzdGF0dXMgY29uY2lzZWx5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NiBidWlsdGluL2NvbW1pdC5jOjEzOTIKK21zZ2lkICJzaG93IGJyYW5jaCBpbmZvcm1hdGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNTggYnVpbHRpbi9jb21taXQuYzoxMzk0IGJ1aWx0aW4vcHVzaC5jOjQyNgorbXNnaWQgIm1hY2hpbmUtcmVhZGFibGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2MSBidWlsdGluL2NvbW1pdC5jOjEzOTYKK21zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTY0IGJ1aWx0aW4vY29tbWl0LmM6MTM5OQorbXNnaWQgInRlcm1pbmF0ZSBlbnRyaWVzIHdpdGggTlVMIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NiBidWlsdGluL2NvbW1pdC5jOjE0MDIgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OQorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MiBidWlsdGluL3RhZy5jOjQ1OQorbXNnaWQgIm1vZGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNzAKK21zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMTcxIHBhcnNlLW9wdGlvbnMuaDoxNTEKK21zZ2lkICJ3aGVuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MgorbXNnaWQgIiIKKyJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKKyIoRGVmYXVsdDogYWxsKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjExNzQKK21zZ2lkICJsaXN0IHVudHJhY2tlZCBmaWxlcyBpbiBjb2x1bW5zIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0OAorbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCittc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MQorbXNnaWQgImRldGFjaGVkIEhFQUQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMjkzCittc2dpZCAiIChyb290LWNvbW1pdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzYwCittc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjEKK21zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzYzCittc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjQgYnVpbHRpbi90YWcuYzo0NTcKK21zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorbXNnaWQgImF1dGhvciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKK21zZ2lkICJvdmVycmlkZSBhdXRob3IgZm9yIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNjYgYnVpbHRpbi9nYy5jOjE3OAorbXNnaWQgImRhdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzY2Cittc2dpZCAib3ZlcnJpZGUgZGF0ZSBmb3IgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NyBidWlsdGluL21lcmdlLmM6MjA4IGJ1aWx0aW4vbm90ZXMuYzo1MzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2OTAgYnVpbHRpbi90YWcuYzo0NTUKK21zZ2lkICJtZXNzYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NworbXNnaWQgImNvbW1pdCBtZXNzYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OAorbXNnaWQgInJldXNlIGFuZCBlZGl0IG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQorbXNnaWQgInJldXNlIG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MAorbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzcxCittc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzcyCittc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzMgYnVpbHRpbi9sb2cuYzoxMTEzIGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5Cittc2dpZCAiYWRkIFNpZ25lZC1vZmYtYnk6IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NAorbXNnaWQgInVzZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzUKK21zZ2lkICJmb3JjZSBlZGl0IG9mIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNzYKK21zZ2lkICJkZWZhdWx0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NiBidWlsdGluL3RhZy5jOjQ2MAorbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzc3Cittc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzc4IGJ1aWx0aW4vbWVyZ2UuYzoyMTUgYnVpbHRpbi90YWcuYzo0NjEKK21zZ2lkICJrZXkgaWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzc5IGJ1aWx0aW4vbWVyZ2UuYzoyMTYKK21zZ2lkICJHUEcgc2lnbiBjb21taXQiCittc2dzdHIgIiIKKworIy4gZW5kIGNvbW1pdCBtZXNzYWdlIG9wdGlvbnMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MgorbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MworbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODQKK21zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzg1Cittc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzg2Cittc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODcKK21zZ2lkICJjb21taXQgb25seSBzcGVjaWZpZWQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMzg4Cittc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjEzODkKK21zZ2lkICJzaG93IHdoYXQgd291bGQgYmUgY29tbWl0dGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMAorbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MDEKK21zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNDA2Cittc2dpZCAib2sgdG8gcmVjb3JkIGFuIGVtcHR5IGNoYW5nZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MDkKK21zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzkgYnVpbHRpbi9tZXJnZS5jOjUxMAorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ4NgorIywgYy1mb3JtYXQKK21zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MworbXNnaWQgImNvdWxkIG5vdCByZWFkIE1FUkdFX01PREUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxNTEyCisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1MjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIywgYy1mb3JtYXQKK21zZ2lkICJBYm9ydGluZyBjb21taXQgZHVlIHRvIGVtcHR5IGNvbW1pdCBtZXNzYWdlLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKK21zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NjcKK21zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NzEKK21zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU4MgorbXNnaWQgIiIKKyJSZXBvc2l0b3J5IGhhcyBiZWVuIHVwZGF0ZWQsIGJ1dCB1bmFibGUgdG8gd3JpdGVcbiIKKyJuZXdfaW5kZXggZmlsZS4gQ2hlY2sgdGhhdCBkaXNrIGlzIG5vdCBmdWxsIG9yIHF1b3RhIGlzXG4iCisibm90IGV4Y2VlZGVkLCBhbmQgdGhlbiBcImdpdCByZXNldCBIRUFEXCIgdG8gcmVjb3Zlci4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3Cittc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1MQorbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKK21zZ2lkICJ1c2UgZ2xvYmFsIGNvbmZpZyBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKK21zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKK21zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU1Cittc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTYKK21zZ2lkICJBY3Rpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKK21zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo1OQorbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKK21zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjYxCittc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKK21zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKK21zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY0Cittc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKK21zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKK21zZ2lkICJsaXN0IGFsbCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY3Cittc2dpZCAib3BlbiBhbiBlZGl0b3IiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo2OCBidWlsdGluL2NvbmZpZy5jOjY5Cittc2dpZCAic2xvdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjY4Cittc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKK21zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MAorbXNnaWQgIlR5cGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MQorbXNnaWQgInZhbHVlIGlzIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjcyCittc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3MworbXNnaWQgInZhbHVlIGlzIC0tYm9vbCBvciAtLWludCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjc0Cittc2dpZCAidmFsdWUgaXMgYSBwYXRoIChmaWxlIG9yIGRpcmVjdG9yeSBuYW1lKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjc1Cittc2dpZCAiT3RoZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb25maWcuYzo3NgorbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjc3Cittc2dpZCAicmVzcGVjdCBpbmNsdWRlIGRpcmVjdGl2ZXMgb24gbG9va3VwIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjgyCittc2dpZCAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NworbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTUKK21zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2Cittc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSAtLWRpcnR5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBoYXMgbm8gZW1iZWRkZWQgbmFtZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgInRhZyAnJXMnIGlzIHJlYWxseSAnJXMnIGhlcmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2NgorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGlzIG5vdCBhIHZhbGlkICclcycgb2JqZWN0IgorbXNnc3RyICIlcyBuJ2VzdCBwYXMgdW4gb2JqZXQgJyVzJyB2YWxpZGUiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdGFnIGV4YWN0bHkgbWF0Y2hlcyAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VhcmNoaW5nIHRvIGRlc2NyaWJlICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjMyOAorIywgYy1mb3JtYXQKK21zZ2lkICJmaW5pc2hlZCBzZWFyY2ggYXQgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzUyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJObyBhbm5vdGF0ZWQgdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKKyJIb3dldmVyLCB0aGVyZSB3ZXJlIHVuYW5ub3RhdGVkIHRhZ3M6IHRyeSAtLXRhZ3MuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCisiVHJ5IC0tYWx3YXlzLCBvciBjcmVhdGUgc29tZSB0YWdzLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzc3CisjLCBjLWZvcm1hdAorbXNnaWQgInRyYXZlcnNlZCAlbHUgY29tbWl0c1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIm1vcmUgdGhhbiAlaSB0YWdzIGZvdW5kOyBsaXN0ZWQgJWkgbW9zdCByZWNlbnRcbiIKKyJnYXZlIHVwIHNlYXJjaCBhdCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKK21zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDMKK21zZ2lkICJkZWJ1ZyBzZWFyY2ggc3RyYXRlZ3kgb24gc3RkZXJyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDQKK21zZ2lkICJ1c2UgYW55IHJlZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA1Cittc2dpZCAidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNgorbXNnaWQgImFsd2F5cyB1c2UgbG9uZyBmb3JtYXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwOQorbXNnaWQgIm9ubHkgb3V0cHV0IGV4YWN0IG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMQorbXNnaWQgImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMworbXNnaWQgIm9ubHkgY29uc2lkZXIgdGFncyBtYXRjaGluZyA8cGF0dGVybj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNSBidWlsdGluL25hbWUtcmV2LmM6MjM4Cittc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKK21zZ2lkICJtYXJrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKK21zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NjEKK21zZ2lkICJObyBuYW1lcyBmb3VuZCwgY2Fubm90IGRlc2NyaWJlIGFueXRoaW5nLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDgxCittc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kaWZmLmM6NzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJzogbm90IGEgcmVndWxhciBmaWxlIG9yIHN5bWxpbmsiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kaWZmLmM6MjI4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzozMDUKK21zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzozNDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBvYmplY3QgJyVzJyBnaXZlbi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kaWZmLmM6MzUzCisjLCBjLWZvcm1hdAorbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzozNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAibW9yZSB0aGFuIHR3byBibG9icyBnaXZlbjogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2RpZmYuYzozNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5oYW5kbGVkIG9iamVjdCAnJXMnIGdpdmVuLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6MjIKK21zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTgKK21zZ2lkICJzaG93IHByb2dyZXNzIGFmdGVyIDxuPiBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKK21zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MworbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2NgorbXNnaWQgIkR1bXAgbWFya3MgdG8gdGhpcyBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKK21zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MAorbXNnaWQgIkZha2UgYSB0YWdnZXIgd2hlbiB0YWdzIGxhY2sgb25lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzIKK21zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0Cittc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NQorbXNnaWQgIlNraXAgb3V0cHV0IG9mIGJsb2IgZGF0YSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjAKK21zZ2lkICJnaXQgZmV0Y2ggWzxvcHRpb25zPl0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjIxCittc2dpZCAiZ2l0IGZldGNoIFs8b3B0aW9ucz5dIDxncm91cD4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjIyCittc2dpZCAiZ2l0IGZldGNoIC0tbXVsdGlwbGUgWzxvcHRpb25zPl0gWyg8cmVwb3NpdG9yeT4gfCA8Z3JvdXA+KS4uLl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjIzCittc2dpZCAiZ2l0IGZldGNoIC0tYWxsIFs8b3B0aW9ucz5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2MAorbXNnaWQgImZldGNoIGZyb20gYWxsIHJlbW90ZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjYyCittc2dpZCAiYXBwZW5kIHRvIC5naXQvRkVUQ0hfSEVBRCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2NAorbXNnaWQgInBhdGggdG8gdXBsb2FkIHBhY2sgb24gcmVtb3RlIGVuZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NjUKK21zZ2lkICJmb3JjZSBvdmVyd3JpdGUgb2YgbG9jYWwgYnJhbmNoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2NworbXNnaWQgImZldGNoIGZyb20gbXVsdGlwbGUgcmVtb3RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NjkKK21zZ2lkICJmZXRjaCBhbGwgdGFncyBhbmQgYXNzb2NpYXRlZCBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MQorbXNnaWQgImRvIG5vdCBmZXRjaCBhbGwgdGFncyAoLS1uby10YWdzKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NzMKK21zZ2lkICJwcnVuZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMgbm8gbG9uZ2VyIG9uIHJlbW90ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NzQKK21zZ2lkICJvbi1kZW1hbmQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjc1Cittc2dpZCAiY29udHJvbCByZWN1cnNpdmUgZmV0Y2hpbmcgb2Ygc3VibW9kdWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NzkKK21zZ2lkICJrZWVwIGRvd25sb2FkZWQgcGFjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6ODEKK21zZ2lkICJhbGxvdyB1cGRhdGluZyBvZiBIRUFEIHJlZiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6ODQKK21zZ2lkICJkZWVwZW4gaGlzdG9yeSBvZiBzaGFsbG93IGNsb25lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4NgorbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExMzAKK21zZ2lkICJkaXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjg5Cittc2dpZCAicHJlcGVuZCB0aGlzIHRvIHN1Ym1vZHVsZSBwYXRoIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTIKK21zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MjA0Cittc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIywgYy1mb3JtYXQKK21zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyNjIKK21zZ2lkICJbdXAgdG8gZGF0ZV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6Mjc3IGJ1aWx0aW4vZmV0Y2guYzozNjMKK21zZ2lkICJbcmVqZWN0ZWRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyODgKK21zZ2lkICJbdGFnIHVwZGF0ZV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKK21zZ2lkICIgICh1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZikiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorbXNnaWQgIltuZXcgdGFnXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MzExCittc2dpZCAiW25ldyBicmFuY2hdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMTQKK21zZ2lkICJbbmV3IHJlZl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKK21zZ2lkICJmb3JjZWQgdXBkYXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKK21zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlc1xuIgorbXNnc3RyICJpbXBvc3NpYmxlIGQnb3V2cmlyICVzIDogJXNcbiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCittc2dzdHIgIiVzIG4nYSBwYXMgZW52b3nDqSB0b3VzIGxlcyBvYmpldHMgbsOpY2Vzc2FpcmVzXG4iCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiRnJvbSAlLipzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjUwMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgorIiAnZ2l0IHJlbW90ZSBwcnVuZSAlcycgdG8gcmVtb3ZlIGFueSBvbGQsIGNvbmZsaWN0aW5nIGJyYW5jaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NTUzCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6NTYwCittc2dpZCAiW2RlbGV0ZWRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1NjEgYnVpbHRpbi9yZW1vdGUuYzoxMDU1Cittc2dpZCAiKG5vbmUpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo2NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVmdXNpbmcgdG8gZmV0Y2ggaW50byBjdXJyZW50IGJyYW5jaCAlcyBvZiBub24tYmFyZSByZXBvc2l0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjLCBjLWZvcm1hdAorbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjc5MgorIywgYy1mb3JtYXQKK21zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjg5NAorIywgYy1mb3JtYXQKK21zZ2lkICJGZXRjaGluZyAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKK21zZ2lkICIiCisiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCisicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTM1Cittc2dpZCAiWW91IG5lZWQgdG8gc3BlY2lmeSBhIHRhZyBuYW1lLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6OTgxCittc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjk4MworbXNnaWQgIi0tdW5zaGFsbG93IG9uIGEgY29tcGxldGUgcmVwb3NpdG9yeSBkb2VzIG5vdCBtYWtlIHNlbnNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDAyCittc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKK21zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gc3VjaCByZW1vdGUgb3IgcmVtb3RlIGdyb3VwOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZldGNoLmM6MTAyMworbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzoxMworbXNnaWQgImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8bWVzc2FnZT5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8ZmlsZT5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MyBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYgYnVpbHRpbi9ncmVwLmM6NzAxCisjOiBidWlsdGluL21lcmdlLmM6MTg4IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUgYnVpbHRpbi9zaG93LXJlZi5jOjE3NQorIzogYnVpbHRpbi90YWcuYzo0NDYgcGFyc2Utb3B0aW9ucy5oOjEzMyBwYXJzZS1vcHRpb25zLmg6MjM5Cittc2dpZCAibiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjQKK21zZ2lkICJwb3B1bGF0ZSBsb2cgd2l0aCBhdCBtb3N0IDxuPiBlbnRyaWVzIGZyb20gc2hvcnRsb2ciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3Cittc2dpZCAiYWxpYXMgZm9yIC0tbG9nIChkZXByZWNhdGVkKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzAKK21zZ2lkICJ0ZXh0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MQorbXNnaWQgInVzZSA8dGV4dD4gYXMgc3RhcnQgb2YgbWVzc2FnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzIKK21zZ2lkICJmaWxlIHRvIHJlYWQgZnJvbSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjk3OQorbXNnaWQgImdpdCBmb3ItZWFjaC1yZWYgW29wdGlvbnNdIFs8cGF0dGVybj5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZm9yLWVhY2gtcmVmLmM6OTk0Cittc2dpZCAicXVvdGUgcGxhY2Vob2xkZXJzIHN1aXRhYmx5IGZvciBzaGVsbHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTYKK21zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHBlcmwiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzo5OTgKK21zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHB5dGhvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDAKK21zZ2lkICJxdW90ZSBwbGFjZWhvbGRlcnMgc3VpdGFibHkgZm9yIHRjbCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDMKK21zZ2lkICJzaG93IG9ubHkgPG4+IG1hdGNoZWQgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDQKK21zZ2lkICJmb3JtYXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA0Cittc2dpZCAiZm9ybWF0IHRvIHVzZSBmb3IgdGhlIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Zvci1lYWNoLXJlZi5jOjEwMDUKK21zZ2lkICJrZXkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mb3ItZWFjaC1yZWYuYzoxMDA2Cittc2dpZCAiZmllbGQgbmFtZSB0byBzb3J0IG9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYwOAorbXNnaWQgImdpdCBmc2NrIFtvcHRpb25zXSBbPG9iamVjdD4uLi5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYxNAorbXNnaWQgInNob3cgdW5yZWFjaGFibGUgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MTUKK21zZ2lkICJzaG93IGRhbmdsaW5nIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjE2Cittc2dpZCAicmVwb3J0IHRhZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjE3Cittc2dpZCAicmVwb3J0IHJvb3Qgbm9kZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjE4Cittc2dpZCAibWFrZSBpbmRleCBvYmplY3RzIGhlYWQgbm9kZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9mc2NrLmM6NjE5Cittc2dpZCAibWFrZSByZWZsb2dzIGhlYWQgbm9kZXMgKGRlZmF1bHQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMAorbXNnaWQgImFsc28gY29uc2lkZXIgcGFja3MgYW5kIGFsdGVybmF0ZSBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZnNjay5jOjYyMQorbXNnaWQgImVuYWJsZSBtb3JlIHN0cmljdCBjaGVja2luZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MjMKK21zZ2lkICJ3cml0ZSBkYW5nbGluZyBvYmplY3RzIGluIC5naXQvbG9zdC1mb3VuZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2ZzY2suYzo2MjQgYnVpbHRpbi9wcnVuZS5jOjEzNAorbXNnaWQgInNob3cgcHJvZ3Jlc3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9nYy5jOjIyCittc2dpZCAiZ2l0IGdjIFtvcHRpb25zXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW52YWxpZCAlczogJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6OTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5zYW5lbHkgbG9uZyBvYmplY3QgZGlyZWN0b3J5ICUuKnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9nYy5jOjE3OQorbXNnaWQgInBydW5lIHVucmVmZXJlbmNlZCBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ2MuYzoxODEKK21zZ2lkICJiZSBtb3JlIHRob3JvdWdoIChpbmNyZWFzZWQgcnVudGltZSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9nYy5jOjE4MgorbXNnaWQgImVuYWJsZSBhdXRvLWdjIG1vZGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9nYy5jOjIyMgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiQXV0byBwYWNraW5nIHRoZSByZXBvc2l0b3J5IGZvciBvcHRpbXVtIHBlcmZvcm1hbmNlLiBZb3UgbWF5IGFsc29cbiIKKyJydW4gXCJnaXQgZ2NcIiBtYW51YWxseS4gU2VlIFwiZ2l0IGhlbHAgZ2NcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2djLmM6MjQ5Cittc2dpZCAiIgorIlRoZXJlIGFyZSB0b28gbWFueSB1bnJlYWNoYWJsZSBsb29zZSBvYmplY3RzOyBydW4gJ2dpdCBwcnVuZScgdG8gcmVtb3ZlIHRoZW0uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjIyCittc2dpZCAiZ2l0IGdyZXAgW29wdGlvbnNdIFstZV0gPHBhdHRlcm4+IFs8cmV2Pi4uLl0gW1stLV0gPHBhdGg+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzoyMTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gY2hkaXI6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MyBidWlsdGluL2dyZXAuYzo0NzgKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MworIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQorIywgYy1mb3JtYXQKK21zZ2lkICJzd2l0Y2ggYCVjJyBleHBlY3RzIGEgbnVtZXJpY2FsIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0MworbXNnaWQgInNlYXJjaCBpbiBpbmRleCBpbnN0ZWFkIG9mIGluIHRoZSB3b3JrIHRyZWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjQ1Cittc2dpZCAiZmluZCBpbiBjb250ZW50cyBub3QgbWFuYWdlZCBieSBnaXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjQ3Cittc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0OQorbXNnaWQgInNlYXJjaCBhbHNvIGluIGlnbm9yZWQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjUyCittc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgbGluZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjU0Cittc2dpZCAiY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NTYKK21zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NTgKK21zZ2lkICJwcm9jZXNzIGJpbmFyeSBmaWxlcyBhcyB0ZXh0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MAorbXNnaWQgImRvbid0IG1hdGNoIHBhdHRlcm5zIGluIGJpbmFyeSBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NjMKK21zZ2lkICJkZXNjZW5kIGF0IG1vc3QgPGRlcHRoPiBsZXZlbHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjY3Cittc2dpZCAidXNlIGV4dGVuZGVkIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjcwCittc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3MworbXNnaWQgImludGVycHJldCBwYXR0ZXJucyBhcyBmaXhlZCBzdHJpbmdzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2NzkKK21zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2ODAKK21zZ2lkICJkb24ndCBzaG93IGZpbGVuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2ODEKK21zZ2lkICJzaG93IGZpbGVuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2ODMKK21zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NQorbXNnaWQgInNob3cgb25seSBmaWxlbmFtZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2ODcKK21zZ2lkICJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2OTAKK21zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NjkyCittc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo2OTQKK21zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQorbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NworbXNnaWQgInByaW50IGVtcHR5IGxpbmUgYmV0d2VlbiBtYXRjaGVzIGZyb20gZGlmZmVyZW50IGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5OQorbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzAyCittc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzA1Cittc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MDcKK21zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGFmdGVyIG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzA4Cittc2dpZCAic2hvcnRjdXQgZm9yIC1DIE5VTSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MTEKK21zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNgorbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxOAorbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo3MjAKK21zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMgorbXNnaWQgImluZGljYXRlIGhpdCB3aXRoIGV4aXQgc3RhdHVzIHdpdGhvdXQgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczNAorbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzM2Cittc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzQwCittc2dpZCAicGFnZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzQwCittc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6NzQzCittc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0NCBidWlsdGluL3Nob3ctcmVmLmM6MTg0Cittc2dpZCAic2hvdyB1c2FnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo4MTEKK21zZ2lkICJubyBwYXR0ZXJuIGdpdmVuLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo4NjYKK21zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6ODg5Cittc2dpZCAiLS1jYWNoZWQgb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCAtLW5vLWluZGV4LiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2dyZXAuYzo4OTQKK21zZ2lkICItLW5vLWluZGV4IG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggcmV2cy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ncmVwLmM6ODk3Cittc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZ3JlcC5jOjkwNQorbXNnaWQgImJvdGggLS1jYWNoZWQgYW5kIHRyZWVzIGFyZSBnaXZlbi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjYwCittc2dpZCAiIgorImdpdCBoYXNoLW9iamVjdCBbLXQgPHR5cGU+XSBbLXddIFstLXBhdGg9PGZpbGU+fC0tbm8tZmlsdGVyc10gWy0tc3RkaW5dIFstLV0gIgorIjxmaWxlPi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NjEKK21zZ2lkICJnaXQgaGFzaC1vYmplY3QgIC0tc3RkaW4tcGF0aHMgPCA8bGlzdC1vZi1wYXRocz4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oYXNoLW9iamVjdC5jOjcyCittc2dpZCAidHlwZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzIKK21zZ2lkICJvYmplY3QgdHlwZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzMKK21zZ2lkICJ3cml0ZSB0aGUgb2JqZWN0IGludG8gdGhlIG9iamVjdCBkYXRhYmFzZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzQKK21zZ2lkICJyZWFkIHRoZSBvYmplY3QgZnJvbSBzdGRpbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzYKK21zZ2lkICJzdG9yZSBmaWxlIGFzIGlzIHdpdGhvdXQgZmlsdGVycyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKK21zZ2lkICJwcm9jZXNzIGZpbGUgYXMgaXQgd2VyZSBmcm9tIHRoaXMgcGF0aCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MworbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDQKK21zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDUKK21zZ2lkICJzaG93IG1hbiBwYWdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2Cittc2dpZCAic2hvdyBtYW51YWwgaW4gd2ViIGJyb3dzZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDgKK21zZ2lkICJzaG93IGluZm8gcGFnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo1NAorbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5yZWNvZ25pemVkIGhlbHAgZm9ybWF0ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6OTQKK21zZ2lkICJGYWlsZWQgdG8gc3RhcnQgZW1hY3NjbGllbnQuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjEwNworbXNnaWQgIkZhaWxlZCB0byBwYXJzZSBlbWFjc2NsaWVudCB2ZXJzaW9uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzoxMTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiZW1hY3NjbGllbnQgdmVyc2lvbiAnJWQnIHRvbyBvbGQgKDwgMjIpLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzoxMzMgYnVpbHRpbi9oZWxwLmM6MTYxIGJ1aWx0aW4vaGVscC5jOjE3MCBidWlsdGluL2hlbHAuYzoxNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGV4ZWMgJyVzJzogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6MjE4CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyInJXMnOiBwYXRoIGZvciB1bnN1cHBvcnRlZCBtYW4gdmlld2VyLlxuIgorIlBsZWFzZSBjb25zaWRlciB1c2luZyAnbWFuLjx0b29sPi5jbWQnIGluc3RlYWQuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjIzMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiJyVzJzogY21kIGZvciBzdXBwb3J0ZWQgbWFuIHZpZXdlci5cbiIKKyJQbGVhc2UgY29uc2lkZXIgdXNpbmcgJ21hbi48dG9vbD4ucGF0aCcgaW5zdGVhZC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6MzUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcyc6IHVua25vd24gbWFuIHZpZXdlci4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6MzY4Cittc2dpZCAibm8gbWFuIHZpZXdlciBoYW5kbGVkIHRoZSByZXF1ZXN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjM3NgorbXNnaWQgIm5vIGluZm8gdmlld2VyIGhhbmRsZWQgdGhlIHJlcXVlc3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIyCittc2dpZCAiRGVmaW5pbmcgYXR0cmlidXRlcyBwZXIgcGF0aCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjMKK21zZ2lkICJBIEdpdCBnbG9zc2FyeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjQKK21zZ2lkICJTcGVjaWZpZXMgaW50ZW50aW9uYWxseSB1bnRyYWNrZWQgZmlsZXMgdG8gaWdub3JlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQorbXNnaWQgIkRlZmluaW5nIHN1Ym1vZHVsZSBwcm9wZXJ0aWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNgorbXNnaWQgIlNwZWNpZnlpbmcgcmV2aXNpb25zIGFuZCByYW5nZXMgZm9yIEdpdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjcKK21zZ2lkICJBIHR1dG9yaWFsIGludHJvZHVjdGlvbiB0byBHaXQgKGZvciB2ZXJzaW9uIDEuNS4xIG9yIG5ld2VyKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjgKK21zZ2lkICJBbiBvdmVydmlldyBvZiByZWNvbW1lbmRlZCB3b3JrZmxvd3Mgd2l0aCBHaXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDQwCittc2dpZCAiVGhlIGNvbW1vbiBHaXQgZ3VpZGVzIGFyZTpcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0NjIgYnVpbHRpbi9oZWxwLmM6NDc4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzYWdlOiAlcyVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQ5NAorIywgYy1mb3JtYXQKK21zZ2lkICJgZ2l0ICVzJyBpcyBhbGlhc2VkIHRvIGAlcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjLCBjLWZvcm1hdAorbXNnaWQgIm9iamVjdCB0eXBlIG1pc21hdGNoIGF0ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwMgorbXNnaWQgIm9iamVjdCBvZiB1bmV4cGVjdGVkIHR5cGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBmaWxsICVkIGJ5dGUiCittc2dpZF9wbHVyYWwgImNhbm5vdCBmaWxsICVkIGJ5dGVzIgorbXNnc3RyWzBdICIiCittc2dzdHJbMV0gIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5Cittc2dpZCAiZWFybHkgRU9GIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1MAorbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjYyCittc2dpZCAidXNlZCBtb3JlIGJ5dGVzIHRoYW4gd2VyZSBhdmFpbGFibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjY5Cittc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgb3BlbiBwYWNrZmlsZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorbXNnaWQgInBhY2sgc2lnbmF0dXJlIG1pc21hdGNoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICJwYWNrIHZlcnNpb24gJTxQUkl1MzI+IHVuc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIywgYy1mb3JtYXQKK21zZ2lkICJwYWNrIGhhcyBiYWQgb2JqZWN0IGF0IG9mZnNldCAlbHU6ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ0NgorIywgYy1mb3JtYXQKK21zZ2lkICJpbmZsYXRlIHJldHVybmVkICVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorbXNnaWQgIm9mZnNldCB2YWx1ZSBvdmVyZmxvdyBmb3IgZGVsdGEgYmFzZSBvYmplY3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAzCittc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxMQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIG9iamVjdCB0eXBlICVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0MgorbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZSBtaXNzaW5nIgorbXNnaWRfcGx1cmFsICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGVzIG1pc3NpbmciCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzAKK21zZ2lkICJzZXJpb3VzIGluZmxhdGUgaW5jb25zaXN0ZW5jeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIywgYy1mb3JtYXQKK21zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI2MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcmVhZCAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWQgZXhpc3Rpbmcgb2JqZWN0ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0NAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGJsb2Igb2JqZWN0ICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc1OQorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MQorbXNnaWQgIkVycm9yIGluIG9iamVjdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODMzIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2MworbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0Cittc2dpZCAiUmVjZWl2aW5nIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorbXNnaWQgIkluZGV4aW5nIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzMAorbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1Cittc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKK21zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0OQorbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA3MgorbXNnaWQgIlJlc29sdmluZyBkZWx0YXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMgorIywgYy1mb3JtYXQKK21zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIywgYy1mb3JtYXQKK21zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgorbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1MAorIywgYy1mb3JtYXQKK21zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc0Cittc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5NQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzA4Cittc2dpZCAiY2Fubm90IHN0b3JlIHBhY2sgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5Cittc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyMsIGMtZm9ybWF0Cittc2dpZCAibm8gdGhyZWFkcyBzdXBwb3J0LCBpZ25vcmluZyAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE0MjIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2Fubm90IG9wZW4gZXhpc3RpbmcgcGFjayBpZHggZmlsZSBmb3IgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDY5CisjLCBjLWZvcm1hdAorbXNnaWQgIm5vbiBkZWx0YTogJWQgb2JqZWN0IgorbXNnaWRfcGx1cmFsICJub24gZGVsdGE6ICVkIG9iamVjdHMiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc2CisjLCBjLWZvcm1hdAorbXNnaWQgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0IgorbXNnaWRfcGx1cmFsICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdHMiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTAzCittc2dpZCAiQ2Fubm90IGNvbWUgYmFjayB0byBjd2QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiYmFkICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODAKK21zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTg0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTQKKyMsIGMtZm9ybWF0Cittc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwMworbXNnaWQgIi0tdmVyaWZ5IHdpdGggbm8gcGFja2ZpbGUgbmFtZSBnaXZlbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzozNQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgbWFrZSAlcyB3cml0YWJsZSBieSBncm91cCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo2MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnNhbmVseSBsb25nIHRlbXBsYXRlIG5hbWUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0YXQgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo3MworIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3RhdCB0ZW1wbGF0ZSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjgwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBvcGVuZGlyICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6OTcKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IHJlYWRsaW5rICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW5zYW5lbHkgbG9uZyBzeW1saW5rICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjEwMgorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3Qgc3ltbGluayAnJXMnICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MTA2CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjb3B5ICclcycgdG8gJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzoxMTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWdub3JpbmcgdGVtcGxhdGUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MTMzCisjLCBjLWZvcm1hdAorbXNnaWQgImluc2FuZWx5IGxvbmcgdGVtcGxhdGUgcGF0aCAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzoxNDEKKyMsIGMtZm9ybWF0Cittc2dpZCAidGVtcGxhdGVzIG5vdCBmb3VuZCAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzoxNTQKKyMsIGMtZm9ybWF0Cittc2dpZCAibm90IGNvcHlpbmcgdGVtcGxhdGVzIG9mIGEgd3JvbmcgZm9ybWF0IHZlcnNpb24gJWQgZnJvbSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjE5MgorIywgYy1mb3JtYXQKK21zZ2lkICJpbnNhbmUgZ2l0IGRpcmVjdG9yeSAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzozMjMgYnVpbHRpbi9pbml0LWRiLmM6MzI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGFscmVhZHkgZXhpc3RzIgorbXNnc3RyICIlcyBleGlzdGUgZMOpasOgIgorCisjOiBidWlsdGluL2luaXQtZGIuYzozNTUKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIGhhbmRsZSBmaWxlIHR5cGUgJWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6MzU4CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBtb3ZlICVzIHRvICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjM2MworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGdpdCBsaW5rICVzIgorbXNnc3RyICIiCisKKyMuCisjLiAqIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJyVzJyBpcyBlaXRoZXIgIlJlaW5pdGlhbGl6ZWQKKyMuICogZXhpc3RpbmciIG9yICJJbml0aWFsaXplZCBlbXB0eSIsIHRoZSBzZWNvbmQgIiBzaGFyZWQiIG9yCisjLiAqICIiLCBhbmQgdGhlIGxhc3QgJyVzJXMnIGlzIHRoZSB2ZXJiYXRpbSBkaXJlY3RvcnkgbmFtZS4KKyMuCisjOiBidWlsdGluL2luaXQtZGIuYzo0MjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMlcyBHaXQgcmVwb3NpdG9yeSBpbiAlcyVzXG4iCittc2dzdHIgIiVzJXMgRMOpcMO0dCBnaXQgZGFucyAlcyVzXG4iCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQyMQorbXNnaWQgIlJlaW5pdGlhbGl6ZWQgZXhpc3RpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDIxCittc2dpZCAiSW5pdGlhbGl6ZWQgZW1wdHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDIyCittc2dpZCAiIHNoYXJlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo0NDEKK21zZ2lkICJjYW5ub3QgdGVsbCBjd2QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDY3Cittc2dpZCAiIgorImdpdCBpbml0IFstcSB8IC0tcXVpZXRdIFstLWJhcmVdIFstLXRlbXBsYXRlPTx0ZW1wbGF0ZS1kaXJlY3Rvcnk+XSBbLS0iCisic2hhcmVkWz08cGVybWlzc2lvbnM+XV0gW2RpcmVjdG9yeV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkwCittc2dpZCAicGVybWlzc2lvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkxCittc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc3Cittc2dpZCAiYmUgcXVpZXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NTIyIGJ1aWx0aW4vaW5pdC1kYi5jOjUyOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgbWtkaXIgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NTMzCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGRpciB0byAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo1NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiVzIChvciAtLXdvcmstdHJlZT08ZGlyZWN0b3J5Pikgbm90IGFsbG93ZWQgd2l0aG91dCBzcGVjaWZ5aW5nICVzIChvciAtLWdpdC0iCisiZGlyPTxkaXJlY3Rvcnk+KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2luaXQtZGIuYzo1NzkKK21zZ2lkICJDYW5ub3QgYWNjZXNzIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbml0LWRiLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo0MAorbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjQxCittc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEwMworbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTA0Cittc2dpZCAic2hvdyBzb3VyY2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMDUKK21zZ2lkICJVc2UgbWFpbCBtYXAgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEwNgorbXNnaWQgImRlY29yYXRlIG9wdGlvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxOTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NDIyIGJ1aWx0aW4vbG9nLmM6NTE0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjUzOAorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIHR5cGU6ICVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NjM4Cittc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjcyMAorbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjczNgorIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6NzUwCittc2dpZCAiTmVlZCBleGFjdGx5IG9uZSByYW5nZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo3NTgKK21zZ2lkICJOb3QgYSByYW5nZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo4NjAKK21zZ2lkICJDb3ZlciBsZXR0ZXIgbmVlZHMgZW1haWwgZm9ybWF0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6OTM2CisjLCBjLWZvcm1hdAorbXNnaWQgImluc2FuZSBpbi1yZXBseS10bzogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzo5NjQKK21zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTAwOQorbXNnaWQgIlR3byBvdXRwdXQgZGlyZWN0b3JpZXM/IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEwOAorbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTExCittc2dpZCAidXNlIFtQQVRDSF0gZXZlbiB3aXRoIG11bHRpcGxlIHBhdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTE1Cittc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTE3Cittc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTE5Cittc2dpZCAidXNlIHNpbXBsZSBudW1iZXIgc2VxdWVuY2UgZm9yIG91dHB1dCBmaWxlIG5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEyMAorbXNnaWQgInNmeCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMjEKK21zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMjMKK21zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEyNQorbXNnaWQgIm1hcmsgdGhlIHNlcmllcyBhcyBOdGggcmUtcm9sbCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExMjcKK21zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTMwCittc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEzMworbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTEzNgorbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTM4Cittc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNDIKK21zZ2lkICJNZXNzYWdpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQzCittc2dpZCAiaGVhZGVyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0NAorbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTQ1IGJ1aWx0aW4vbG9nLmM6MTE0NworbXNnaWQgImVtYWlsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0NQorbXNnaWQgImFkZCBUbzogaGVhZGVyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0NworbXNnaWQgImFkZCBDYzogaGVhZGVyIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE0OQorbXNnaWQgIm1lc3NhZ2UtaWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTUwCittc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1MSBidWlsdGluL2xvZy5jOjExNTQKK21zZ2lkICJib3VuZGFyeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNTIKK21zZ2lkICJhdHRhY2ggdGhlIHBhdGNoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTU5Cittc2dpZCAiZW5hYmxlIG1lc3NhZ2UgdGhyZWFkaW5nLCBzdHlsZXM6IHNoYWxsb3csIGRlZXAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMTYxCittc2dpZCAic2lnbmF0dXJlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2MgorbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExNjQKK21zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTI0OAorbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEyNTAKK21zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEyNTgKK21zZ2lkICItLW5hbWUtb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2MAorbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEyNjIKK21zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMjg1Cittc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxMjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxNDM1Cittc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxNDg0Cittc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9sb2cuYzoxNTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDb3VsZCBub3QgZmluZCBhIHRyYWNrZWQgcmVtb3RlIGJyYW5jaCwgcGxlYXNlIHNwZWNpZnkgPHVwc3RyZWFtPiBtYW51YWxseS5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjE1NTIgYnVpbHRpbi9sb2cuYzoxNTU0IGJ1aWx0aW4vbG9nLmM6MTU2NgorIywgYy1mb3JtYXQKK21zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDAyCittc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDU5Cittc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDYxCittc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2MworbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKK21zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3Cittc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKK21zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQorbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKK21zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc2Cittc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4Cittc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NAorbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg2Cittc2dpZCAic2hvdyByZXNvbHZlLXVuZG8gaW5mb3JtYXRpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4OAorbXNnaWQgInNraXAgZmlsZXMgbWF0Y2hpbmcgcGF0dGVybiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCittc2dpZCAiZXhjbHVkZSBwYXR0ZXJucyBhcmUgcmVhZCBmcm9tIDxmaWxlPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0Cittc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NgorbXNnaWQgImFkZCB0aGUgc3RhbmRhcmQgZ2l0IGV4Y2x1c2lvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5OQorbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKK21zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMworbXNnaWQgInRyZWUtaXNoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDQKK21zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKK21zZ2lkICJzaG93IGRlYnVnZ2luZyBkYXRhIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjI3Cittc2dpZCAiZ2l0IGxzLXRyZWUgWzxvcHRpb25zPl0gPHRyZWUtaXNoPiBbPHBhdGg+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMjUKK21zZ2lkICJvbmx5IHNob3cgdHJlZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTI3Cittc2dpZCAicmVjdXJzZSBpbnRvIHN1YnRyZWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEyOQorbXNnaWQgInNob3cgdHJlZXMgd2hlbiByZWN1cnNpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTMyCittc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwgYnl0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xzLXRyZWUuYzoxMzMKK21zZ2lkICJpbmNsdWRlIG9iamVjdCBzaXplIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjEzNSBidWlsdGluL2xzLXRyZWUuYzoxMzcKK21zZ2lkICJsaXN0IG9ubHkgZmlsZW5hbWVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbHMtdHJlZS5jOjE0MAorbXNnaWQgInVzZSBmdWxsIHBhdGggbmFtZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9scy10cmVlLmM6MTQyCittc2dpZCAibGlzdCBlbnRpcmUgdHJlZTsgbm90IGp1c3QgY3VycmVudCBkaXJlY3RvcnkgKGltcGxpZXMgLS1mdWxsLW5hbWUpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0MworbXNnaWQgImdpdCBtZXJnZSBbb3B0aW9uc10gWzxjb21taXQ+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6NDQKK21zZ2lkICJnaXQgbWVyZ2UgW29wdGlvbnNdIDxtc2c+IEhFQUQgPGNvbW1pdD4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjQ1Cittc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjkwCittc2dpZCAic3dpdGNoIGBtJyByZXF1aXJlcyBhIHZhbHVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGZpbmQgbWVyZ2Ugc3RyYXRlZ3kgJyVzJy5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI4CisjLCBjLWZvcm1hdAorbXNnaWQgIkF2YWlsYWJsZSBzdHJhdGVnaWVzIGFyZToiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEzMworIywgYy1mb3JtYXQKK21zZ2lkICJBdmFpbGFibGUgY3VzdG9tIHN0cmF0ZWdpZXMgYXJlOiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTgzCittc2dpZCAiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTg2Cittc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxODcKK21zZ2lkICIoc3lub255bSB0byAtLXN0YXQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKK21zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKK21zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE5NgorbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTk4Cittc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIChkZWZhdWx0KSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjAwCittc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjAzCittc2dpZCAiVmVyaWZ5IHRoYXQgdGhlIG5hbWVkIGNvbW1pdCBoYXMgYSB2YWxpZCBHUEcgc2lnbmF0dXJlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQgYnVpbHRpbi9ub3Rlcy5jOjg2NiBidWlsdGluL3JldmVydC5jOjExMgorbXNnaWQgInN0cmF0ZWd5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDUKK21zZ2lkICJtZXJnZSBzdHJhdGVneSB0byB1c2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjIwNgorbXNnaWQgIm9wdGlvbj12YWx1ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjA3Cittc2dpZCAib3B0aW9uIGZvciBzZWxlY3RlZCBtZXJnZSBzdHJhdGVneSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjA5Cittc2dpZCAibWVyZ2UgY29tbWl0IG1lc3NhZ2UgKGZvciBhIG5vbi1mYXN0LWZvcndhcmQgbWVyZ2UpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTMKK21zZ2lkICJhYm9ydCB0aGUgY3VycmVudCBpbi1wcm9ncmVzcyBtZXJnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjQyCittc2dpZCAiY291bGQgbm90IHJ1biBzdGFzaC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjI0NworbXNnaWQgInN0YXNoIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MjUyCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCBhIHZhbGlkIG9iamVjdDogJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjI3MSBidWlsdGluL21lcmdlLmM6Mjg4Cittc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MzE4Cittc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCittc2dzdHIgIiAocmllbiDDoCBjb21wcmVzc2VyKSIKKworIzogYnVpbHRpbi9tZXJnZS5jOjMzMQorIywgYy1mb3JtYXQKK21zZ2lkICJTcXVhc2ggY29tbWl0IC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjM2MworbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MzY1Cittc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjM4OAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBtZXJnZSBtZXNzYWdlIC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjQzOAorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo1NTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc3RyaW5nOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6NjQzCittc2dpZCAiZ2l0IHdyaXRlLXRyZWUgZmFpbGVkIHRvIHdyaXRlIGEgdHJlZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6NjcxCittc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6Njg1CisjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gb3B0aW9uIGZvciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjY5OQorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjc4OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgcmVhZCBmcm9tICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjc5NworIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgY29tbWl0dGluZyBtZXJnZTsgdXNlICdnaXQgY29tbWl0JyB0byBjb21wbGV0ZSB0aGUgbWVyZ2UuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjgwMworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiUGxlYXNlIGVudGVyIGEgY29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB3aHkgdGhpcyBtZXJnZSBpcyBuZWNlc3NhcnksXG4iCisiZXNwZWNpYWxseSBpZiBpdCBtZXJnZXMgYW4gdXBkYXRlZCB1cHN0cmVhbSBpbnRvIGEgdG9waWMgYnJhbmNoLlxuIgorIlxuIgorIkxpbmVzIHN0YXJ0aW5nIHdpdGggJyVjJyB3aWxsIGJlIGlnbm9yZWQsIGFuZCBhbiBlbXB0eSBtZXNzYWdlIGFib3J0c1xuIgorInRoZSBjb21taXQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjgyNworbXNnaWQgIkVtcHR5IGNvbW1pdCBtZXNzYWdlLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6ODM5CisjLCBjLWZvcm1hdAorbXNnaWQgIldvbmRlcmZ1bC5cbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTA0CisjLCBjLWZvcm1hdAorbXNnaWQgIkF1dG9tYXRpYyBtZXJnZSBmYWlsZWQ7IGZpeCBjb25mbGljdHMgYW5kIHRoZW4gY29tbWl0IHRoZSByZXN1bHQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjkyMAorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIGNvbW1pdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTYxCittc2dpZCAiTm8gY3VycmVudCBicmFuY2guIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjMKK21zZ2lkICJObyByZW1vdGUgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjk2NQorbXNnaWQgIk5vIGRlZmF1bHQgdXBzdHJlYW0gZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6OTcwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEwNTcgYnVpbHRpbi9tZXJnZS5jOjEyMTQKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTEyNQorbXNnaWQgIlRoZXJlIGlzIG5vIG1lcmdlIHRvIGFib3J0IChNRVJHRV9IRUFEIG1pc3NpbmcpLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTE0MSBnaXQtcHVsbC5zaDozMQorbXNnaWQgIiIKKyJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS5cbiIKKyJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ0IGdpdC1wdWxsLnNoOjM0Cittc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ4Cittc2dpZCAiIgorIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLlxuIgorIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjExNTEKK21zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKK21zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTE2NQorbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTE3MgorbXNnaWQgIk5vIGNvbW1pdCBzcGVjaWZpZWQgYW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIG5vdCBzZXQuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA0Cittc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTIwNworbXNnaWQgIlNxdWFzaCBjb21taXQgaW50byBlbXB0eSBoZWFkIG5vdCBzdXBwb3J0ZWQgeWV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5Cittc2dpZCAiTm9uLWZhc3QtZm9yd2FyZCBjb21taXQgZG9lcyBub3QgbWFrZSBzZW5zZSBpbnRvIGFuIGVtcHR5IGhlYWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29tbWl0ICVzIGhhcyBhbiB1bnRydXN0ZWQgR1BHIHNpZ25hdHVyZSwgYWxsZWdlZGx5IGJ5ICVzLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLmM6MTI2OAorIywgYy1mb3JtYXQKK21zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKK21zZ3N0ciAiIgorCisjLiAnTicKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcxCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGdvb2QgR1BHIHNpZ25hdHVyZSBieSAlc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVwZGF0aW5nICVzLi4lc1xuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzk3CisjLCBjLWZvcm1hdAorbXNnaWQgIlRyeWluZyByZWFsbHkgdHJpdmlhbCBpbi1pbmRleCBtZXJnZS4uLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA0CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vcGUuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE0MzYKK21zZ2lkICJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjE1MzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE0NjMKKyMsIGMtZm9ybWF0Cittc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE1MjkKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE1MzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWVyZ2Ugd2l0aCBzdHJhdGVneSAlcyBmYWlsZWQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE1NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNpbmcgdGhlICVzIHRvIHByZXBhcmUgcmVzb2x2aW5nIGJ5IGhhbmQuXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjE1NTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyNgorbXNnaWQgImdpdCBtZXJnZS1iYXNlIFstYXwtLWFsbF0gPGNvbW1pdD4gPGNvbW1pdD4uLi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjcKK21zZ2lkICJnaXQgbWVyZ2UtYmFzZSBbLWF8LS1hbGxdIC0tb2N0b3B1cyA8Y29tbWl0Pi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWJhc2UuYzoyOAorbXNnaWQgImdpdCBtZXJnZS1iYXNlIC0taW5kZXBlbmRlbnQgPGNvbW1pdD4uLi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1iYXNlLmM6MjkKK21zZ2lkICJnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDxjb21taXQ+IDxjb21taXQ+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk4Cittc2dpZCAib3V0cHV0IGFsbCBjb21tb24gYW5jZXN0b3JzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjk5Cittc2dpZCAiZmluZCBhbmNlc3RvcnMgZm9yIGEgc2luZ2xlIG4td2F5IG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMAorbXNnaWQgImxpc3QgcmV2cyBub3QgcmVhY2hhYmxlIGZyb20gb3RoZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtYmFzZS5jOjEwMgorbXNnaWQgImlzIHRoZSBmaXJzdCBvbmUgYW5jZXN0b3Igb2YgdGhlIG90aGVyPyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzo4Cittc2dpZCAiIgorImdpdCBtZXJnZS1maWxlIFtvcHRpb25zXSBbLUwgbmFtZTEgWy1MIG9yaWcgWy1MIG5hbWUyXV1dIGZpbGUxIG9yaWdfZmlsZSAiCisiZmlsZTIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzMKK21zZ2lkICJzZW5kIHJlc3VsdHMgdG8gc3RhbmRhcmQgb3V0cHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjM0Cittc2dpZCAidXNlIGEgZGlmZjMgYmFzZWQgbWVyZ2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzUKK21zZ2lkICJmb3IgY29uZmxpY3RzLCB1c2Ugb3VyIHZlcnNpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6MzcKK21zZ2lkICJmb3IgY29uZmxpY3RzLCB1c2UgdGhlaXIgdmVyc2lvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzozOQorbXNnaWQgImZvciBjb25mbGljdHMsIHVzZSBhIHVuaW9uIHZlcnNpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS1maWxlLmM6NDIKK21zZ2lkICJmb3IgY29uZmxpY3RzLCB1c2UgdGhpcyBtYXJrZXIgc2l6ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzo0MworbXNnaWQgImRvIG5vdCB3YXJuIGFib3V0IGNvbmZsaWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21lcmdlLWZpbGUuYzo0NQorbXNnaWQgInNldCBsYWJlbHMgZm9yIGZpbGUxL29yaWdfZmlsZS9maWxlMiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21rdHJlZS5jOjY3Cittc2dpZCAiZ2l0IG1rdHJlZSBbLXpdIFstLW1pc3NpbmddIFstLWJhdGNoXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL21rdHJlZS5jOjE1MworbXNnaWQgImlucHV0IGlzIE5VTCB0ZXJtaW5hdGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWt0cmVlLmM6MTU0IGJ1aWx0aW4vd3JpdGUtdHJlZS5jOjI0Cittc2dpZCAiYWxsb3cgbWlzc2luZyBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWt0cmVlLmM6MTU1Cittc2dpZCAiYWxsb3cgY3JlYXRpb24gb2YgbW9yZSB0aGFuIG9uZSB0cmVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxNAorbXNnaWQgImdpdCBtdiBbb3B0aW9uc10gPHNvdXJjZT4uLi4gPGRlc3RpbmF0aW9uPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6NjQKK21zZ2lkICJmb3JjZSBtb3ZlL3JlbmFtZSBldmVuIGlmIHRhcmdldCBleGlzdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjY1Cittc2dpZCAic2tpcCBtb3ZlL3JlbmFtZSBlcnJvcnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjEwOAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyByZW5hbWUgb2YgJyVzJyB0byAnJXMnXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjExMgorbXNnaWQgImJhZCBzb3VyY2UiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjExNQorbXNnaWQgImNhbiBub3QgbW92ZSBkaXJlY3RvcnkgaW50byBpdHNlbGYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjExOAorbXNnaWQgImNhbm5vdCBtb3ZlIGRpcmVjdG9yeSBvdmVyIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICJIdWg/ICUuKnMgaXMgaW4gaW5kZXg/IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxNDAKK21zZ2lkICJzb3VyY2UgZGlyZWN0b3J5IGlzIGVtcHR5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxNzEKK21zZ2lkICJub3QgdW5kZXIgdmVyc2lvbiBjb250cm9sIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxNzMKK21zZ2lkICJkZXN0aW5hdGlvbiBleGlzdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjE4MQorIywgYy1mb3JtYXQKK21zZ2lkICJvdmVyd3JpdGluZyAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxODQKK21zZ2lkICJDYW5ub3Qgb3ZlcndyaXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbXYuYzoxODcKK21zZ2lkICJtdWx0aXBsZSBzb3VyY2VzIGZvciB0aGUgc2FtZSB0YXJnZXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tdi5jOjIwMgorIywgYy1mb3JtYXQKK21zZ2lkICIlcywgc291cmNlPSVzLCBkZXN0aW5hdGlvbj0lcyIKK21zZ3N0ciAiJXMsIHNvdXJjZT0lcywgZGVzdGluYXRpb249JXMiCisKKyM6IGJ1aWx0aW4vbXYuYzoyMTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL212LmM6MjE1IGJ1aWx0aW4vcmVtb3RlLmM6NzMxCisjLCBjLWZvcm1hdAorbXNnaWQgInJlbmFtaW5nICclcycgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzUKK21zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIDxjb21taXQ+Li4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzYKK21zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tYWxsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzcKK21zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tc3RkaW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25hbWUtcmV2LmM6MjMwCittc2dpZCAib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzIKK21zZ2lkICJvbmx5IHVzZSByZWZzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25hbWUtcmV2LmM6MjM0Cittc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25hbWUtcmV2LmM6MjM1Cittc2dpZCAicmVhZCBmcm9tIHN0ZGluIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzYKK21zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjYKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPG9iamVjdD5dXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjcKK21zZ2lkICIiCisiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKKyI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjgKK21zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBjb3B5IFstZl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjkKK21zZ2lkICIiCisiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCisiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjMwCittc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZWRpdCBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMQorbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzIKK21zZ2lkICIiCisiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gbWVyZ2UgWy12IHwgLXFdIFstcyA8c3RyYXRlZ3k+IF0gPG5vdGVzX3JlZj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjMzCittc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MzQKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjM1Cittc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcmVtb3ZlIFs8b2JqZWN0Pi4uLl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjM2Cittc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNworbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjQyCittc2dpZCAiZ2l0IG5vdGVzIFtsaXN0IFs8b2JqZWN0Pl1dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NworbXNnaWQgImdpdCBub3RlcyBhZGQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTIKK21zZ2lkICJnaXQgbm90ZXMgY29weSBbPG9wdGlvbnM+XSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MworbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1OAorbXNnaWQgImdpdCBub3RlcyBhcHBlbmQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NjMKK21zZ2lkICJnaXQgbm90ZXMgZWRpdCBbPG9iamVjdD5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorbXNnaWQgImdpdCBub3RlcyBzaG93IFs8b2JqZWN0Pl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjczCittc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIFs8b3B0aW9ucz5dIDxub3Rlc19yZWY+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NAorbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPG9wdGlvbnM+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NzUKK21zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbPG9wdGlvbnM+XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6ODAKK21zZ2lkICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWN0Pl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg1Cittc2dpZCAiZ2l0IG5vdGVzIHBydW5lIFs8b3B0aW9ucz5dIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorbXNnaWQgImdpdCBub3RlcyBnZXQtcmVmIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAidW5hYmxlIHRvIHN0YXJ0ICdzaG93JyBmb3Igb2JqZWN0ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjE0MworbXNnaWQgImNvdWxkIG5vdCByZWFkICdzaG93JyBvdXRwdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjE1MQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gZmluaXNoICdzaG93JyBmb3Igb2JqZWN0ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjE2OSBidWlsdGluL3RhZy5jOjM0MQorIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3QgY3JlYXRlIGZpbGUgJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTg4Cittc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbm90ZSBjb250ZW50cyB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMDkgYnVpbHRpbi9ub3Rlcy5jOjk3MgorIywgYy1mb3JtYXQKK21zZ2lkICJSZW1vdmluZyBub3RlIGZvciBvYmplY3QgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjE0Cittc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQwCisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZWFkICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjI1MiBidWlsdGluL3RhZy5jOjU0MworIywgYy1mb3JtYXQKK21zZ2lkICJjb3VsZCBub3Qgb3BlbiBvciByZWFkICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjI3MSBidWlsdGluL25vdGVzLmM6NDQ0IGJ1aWx0aW4vbm90ZXMuYzo0NDYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MCBidWlsdGluL25vdGVzLmM6NjQzCisjOiBidWlsdGluL25vdGVzLmM6NjQ4IGJ1aWx0aW4vbm90ZXMuYzo3MjMgYnVpbHRpbi9ub3Rlcy5jOjc2NQorIzogYnVpbHRpbi9ub3Rlcy5jOjk2NyBidWlsdGluL3RhZy5jOjU1NgorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6Mjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6Mjk4Cittc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCittc2dzdHIgIiIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjQ0MAorIywgYy1mb3JtYXQKK21zZ2lkICJNYWxmb3JtZWQgaW5wdXQgbGluZTogJyVzJy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NQorIywgYy1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gY29weSBub3RlcyBmcm9tICclcycgdG8gJyVzJyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo1NTMgYnVpbHRpbi9ub3Rlcy5jOjYyNgorIzogYnVpbHRpbi9ub3Rlcy5jOjYzOCBidWlsdGluL25vdGVzLmM6NzExIGJ1aWx0aW4vbm90ZXMuYzo3NTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMDMyCittc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gbm90ZSBmb3VuZCBmb3Igb2JqZWN0ICVzLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTM0IGJ1aWx0aW4vbm90ZXMuYzo2OTEKK21zZ2lkICJub3RlIGNvbnRlbnRzIGFzIGEgc3RyaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzcgYnVpbHRpbi9ub3Rlcy5jOjY5NAorbXNnaWQgIm5vdGUgY29udGVudHMgaW4gYSBmaWxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2CisjOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0Cittc2dpZCAib2JqZWN0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NDAgYnVpbHRpbi9ub3Rlcy5jOjY5NworbXNnaWQgInJldXNlIGFuZCBlZGl0IHNwZWNpZmllZCBub3RlIG9iamVjdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTQzIGJ1aWx0aW4vbm90ZXMuYzo3MDAKK21zZ2lkICJyZXVzZSBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjU0NSBidWlsdGluL25vdGVzLmM6NjEzCittc2dpZCAicmVwbGFjZSBleGlzdGluZyBub3RlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NTc5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJDYW5ub3QgYWRkIG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgorImV4aXN0aW5nIG5vdGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1ODQgYnVpbHRpbi9ub3Rlcy5jOjY2MQorIywgYy1mb3JtYXQKK21zZ2lkICJPdmVyd3JpdGluZyBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjYxNAorbXNnaWQgInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MTYKK21zZ2lkICJsb2FkIHJld3JpdGluZyBjb25maWcgZm9yIDxjb21tYW5kPiAoaW1wbGllcyAtLXN0ZGluKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6NjM0Cittc2dpZCAidG9vIGZldyBwYXJhbWV0ZXJzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIkNhbm5vdCBjb3B5IG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgorImV4aXN0aW5nIG5vdGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjcxNgorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIC1tLy1GLy1jLy1DIG9wdGlvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZSAnZWRpdCcgc3ViY29tbWFuZC5cbiIKKyJQbGVhc2UgdXNlICdnaXQgbm90ZXMgYWRkIC1mIC1tLy1GLy1jLy1DJyBpbnN0ZWFkLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKK21zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg2NQorbXNnaWQgIk1lcmdlIG9wdGlvbnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg2NworbXNnaWQgIiIKKyJyZXNvbHZlIG5vdGVzIGNvbmZsaWN0cyB1c2luZyB0aGUgZ2l2ZW4gc3RyYXRlZ3kgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi8iCisiY2F0X3NvcnRfdW5pcSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg2OQorbXNnaWQgIkNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg3MQorbXNnaWQgImZpbmFsaXplIG5vdGVzIG1lcmdlIGJ5IGNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg3MworbXNnaWQgIkFib3J0aW5nIG5vdGVzIG1lcmdlIHJlc29sdXRpb24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzAKKyMsIGMtZm9ybWF0Cittc2dpZCAiT2JqZWN0ICVzIGhhcyBubyBub3RlXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjk4MgorbXNnaWQgImF0dGVtcHQgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBub3RlIGlzIG5vdCBhbiBlcnJvciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6OTg1Cittc2dpZCAicmVhZCBvYmplY3QgbmFtZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjYKK21zZ2lkICJub3Rlc19yZWYiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjcKK21zZ2lkICJ1c2Ugbm90ZXMgZnJvbSA8bm90ZXNfcmVmPiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjIzCittc2dpZCAiZ2l0IHBhY2stb2JqZWN0cyAtLXN0ZG91dCBbb3B0aW9ucy4uLl0gWzwgcmVmLWxpc3QgfCA8IG9iamVjdC1saXN0XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0Cittc2dpZCAiZ2l0IHBhY2stb2JqZWN0cyBbb3B0aW9ucy4uLl0gYmFzZS1uYW1lIFs8IHJlZi1saXN0IHwgPCBvYmplY3QtbGlzdF0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODMgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiZGVmbGF0ZSBlcnJvciAoJWQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjM5NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bnN1cHBvcnRlZCBpbmRleCB2ZXJzaW9uICVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQwMQorIywgYy1mb3JtYXQKK21zZ2lkICJiYWQgaW5kZXggdmVyc2lvbiAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQyNAorIywgYy1mb3JtYXQKK21zZ2lkICJvcHRpb24gJXMgZG9lcyBub3QgYWNjZXB0IG5lZ2F0aXZlIGZvcm0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDI4CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSB2YWx1ZSAnJXMnIGZvciBvcHRpb24gJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ3Cittc2dpZCAiZG8gbm90IHNob3cgcHJvZ3Jlc3MgbWV0ZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDQ5Cittc2dpZCAic2hvdyBwcm9ncmVzcyBtZXRlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTEKK21zZ2lkICJzaG93IHByb2dyZXNzIG1ldGVyIGR1cmluZyBvYmplY3Qgd3JpdGluZyBwaGFzZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTQKK21zZ2lkICJzaW1pbGFyIHRvIC0tYWxsLXByb2dyZXNzIHdoZW4gcHJvZ3Jlc3MgbWV0ZXIgaXMgc2hvd24iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDU1Cittc2dpZCAidmVyc2lvblssb2Zmc2V0XSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NTYKK21zZ2lkICJ3cml0ZSB0aGUgcGFjayBpbmRleCBmaWxlIGluIHRoZSBzcGVjaWZpZWQgaWR4IGZvcm1hdCB2ZXJzaW9uIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ1OQorbXNnaWQgIm1heGltdW0gc2l6ZSBvZiBlYWNoIG91dHB1dCBwYWNrIGZpbGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDYxCittc2dpZCAiaWdub3JlIGJvcnJvd2VkIG9iamVjdHMgZnJvbSBhbHRlcm5hdGUgb2JqZWN0IHN0b3JlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2MworbXNnaWQgImlnbm9yZSBwYWNrZWQgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0NjUKK21zZ2lkICJsaW1pdCBwYWNrIHdpbmRvdyBieSBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ2NworbXNnaWQgImxpbWl0IHBhY2sgd2luZG93IGJ5IG1lbW9yeSBpbiBhZGRpdGlvbiB0byBvYmplY3QgbGltaXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDY5Cittc2dpZCAibWF4aW11bSBsZW5ndGggb2YgZGVsdGEgY2hhaW4gYWxsb3dlZCBpbiB0aGUgcmVzdWx0aW5nIHBhY2siCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDcxCittc2dpZCAicmV1c2UgZXhpc3RpbmcgZGVsdGFzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3MworbXNnaWQgInJldXNlIGV4aXN0aW5nIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc1Cittc2dpZCAidXNlIE9GU19ERUxUQSBvYmplY3RzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ3NworbXNnaWQgInVzZSB0aHJlYWRzIHdoZW4gc2VhcmNoaW5nIGZvciBiZXN0IGRlbHRhIG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDc5Cittc2dpZCAiZG8gbm90IGNyZWF0ZSBhbiBlbXB0eSBwYWNrIG91dHB1dCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0ODEKK21zZ2lkICJyZWFkIHJldmlzaW9uIGFyZ3VtZW50cyBmcm9tIHN0YW5kYXJkIGlucHV0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4MworbXNnaWQgImxpbWl0IHRoZSBvYmplY3RzIHRvIHRob3NlIHRoYXQgYXJlIG5vdCB5ZXQgcGFja2VkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4NgorbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWFjaGFibGUgZnJvbSBhbnkgcmVmZXJlbmNlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ4OQorbXNnaWQgImluY2x1ZGUgb2JqZWN0cyByZWZlcnJlZCBieSByZWZsb2cgZW50cmllcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTIKK21zZ2lkICJvdXRwdXQgcGFjayB0byBzdGRvdXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk0Cittc2dpZCAiaW5jbHVkZSB0YWcgb2JqZWN0cyB0aGF0IHJlZmVyIHRvIG9iamVjdHMgdG8gYmUgcGFja2VkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjQ5NgorbXNnaWQgImtlZXAgdW5yZWFjaGFibGUgb2JqZWN0cyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI0OTcgcGFyc2Utb3B0aW9ucy5oOjE0MQorbXNnaWQgInRpbWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNDk4Cittc2dpZCAidW5wYWNrIHVucmVhY2hhYmxlIG9iamVjdHMgbmV3ZXIgdGhhbiA8dGltZT4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAxCittc2dpZCAiY3JlYXRlIHRoaW4gcGFja3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNTAzCittc2dpZCAiaWdub3JlIHBhY2tzIHRoYXQgaGF2ZSBjb21wYW5pb24gLmtlZXAgZmlsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BhY2stb2JqZWN0cy5jOjI1MDUKK21zZ2lkICJwYWNrIGNvbXByZXNzaW9uIGxldmVsIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjUwNworbXNnaWQgImRvIG5vdCBoaWRlIGNvbW1pdHMgYnkgZ3JhZnRzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1yZWZzLmM6NgorbXNnaWQgImdpdCBwYWNrLXJlZnMgW29wdGlvbnNdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcGFjay1yZWZzLmM6MTQKK21zZ2lkICJwYWNrIGV2ZXJ5dGhpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wYWNrLXJlZnMuYzoxNQorbXNnaWQgInBydW5lIGxvb3NlIHJlZnMgKGRlZmF1bHQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NworbXNnaWQgImdpdCBwcnVuZS1wYWNrZWQgWy1ufC0tZHJ5LXJ1bl0gWy1xfC0tcXVpZXRdIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHJ1bmUuYzoxMgorbXNnaWQgImdpdCBwcnVuZSBbLW5dIFstdl0gWy0tZXhwaXJlIDx0aW1lPl0gWy0tXSBbPGhlYWQ+Li4uXSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3BydW5lLmM6MTMyCittc2dpZCAiZG8gbm90IHJlbW92ZSwgc2hvdyBvbmx5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHJ1bmUuYzoxMzMKK21zZ2lkICJyZXBvcnQgcHJ1bmVkIG9iamVjdHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wcnVuZS5jOjEzNgorbXNnaWQgImV4cGlyZSBvYmplY3RzIG9sZGVyIHRoYW4gPHRpbWU+IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0Cittc2dpZCAiZ2l0IHB1c2ggWzxvcHRpb25zPl0gWzxyZXBvc2l0b3J5PiBbPHJlZnNwZWM+Li4uXV0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDUKK21zZ2lkICJ0YWcgc2hvcnRoYW5kIHdpdGhvdXQgPHRhZz4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NjQKK21zZ2lkICItLWRlbGV0ZSBvbmx5IGFjY2VwdHMgcGxhaW4gdGFyZ2V0IHJlZiBuYW1lcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo5OQorbXNnaWQgIiIKKyJcbiIKKyJUbyBjaG9vc2UgZWl0aGVyIG9wdGlvbiBwZXJtYW5lbnRseSwgc2VlIHB1c2guZGVmYXVsdCBpbiAnZ2l0IGhlbHAgY29uZmlnJy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTAyCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgdXBzdHJlYW0gYnJhbmNoIG9mIHlvdXIgY3VycmVudCBicmFuY2ggZG9lcyBub3QgbWF0Y2hcbiIKKyJ0aGUgbmFtZSBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoLiAgVG8gcHVzaCB0byB0aGUgdXBzdHJlYW0gYnJhbmNoXG4iCisib24gdGhlIHJlbW90ZSwgdXNlXG4iCisiXG4iCisiICAgIGdpdCBwdXNoICVzIEhFQUQ6JXNcbiIKKyJcbiIKKyJUbyBwdXNoIHRvIHRoZSBicmFuY2ggb2YgdGhlIHNhbWUgbmFtZSBvbiB0aGUgcmVtb3RlLCB1c2VcbiIKKyJcbiIKKyIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKKyIlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxMjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKKyJUbyBwdXNoIHRoZSBoaXN0b3J5IGxlYWRpbmcgdG8gdGhlIGN1cnJlbnQgKGRldGFjaGVkIEhFQUQpXG4iCisic3RhdGUgbm93LCB1c2VcbiIKKyJcbiIKKyIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8bmFtZS1vZi1yZW1vdGUtYnJhbmNoPlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjEyOAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCisiVG8gcHVzaCB0aGUgY3VycmVudCBicmFuY2ggYW5kIHNldCB0aGUgcmVtb3RlIGFzIHVwc3RyZWFtLCB1c2VcbiIKKyJcbiIKKyIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoxMzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgYXJlIHB1c2hpbmcgdG8gcmVtb3RlICclcycsIHdoaWNoIGlzIG5vdCB0aGUgdXBzdHJlYW0gb2ZcbiIKKyJ5b3VyIGN1cnJlbnQgYnJhbmNoICclcycsIHdpdGhvdXQgdGVsbGluZyBtZSB3aGF0IHRvIHB1c2hcbiIKKyJ0byB1cGRhdGUgd2hpY2ggcmVtb3RlIGJyYW5jaC4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTUxCittc2dpZCAiIgorInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCisiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCisiYW5kIG1haW50YWluIHRoZSBjdXJyZW50IGJlaGF2aW9yIGFmdGVyIHRoZSBkZWZhdWx0IGNoYW5nZXMsIHVzZTpcbiIKKyJcbiIKKyIgIGdpdCBjb25maWcgLS1nbG9iYWwgcHVzaC5kZWZhdWx0IG1hdGNoaW5nXG4iCisiXG4iCisiVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2UgYW5kIGFkb3B0IHRoZSBuZXcgYmVoYXZpb3Igbm93LCB1c2U6XG4iCisiXG4iCisiICBnaXQgY29uZmlnIC0tZ2xvYmFsIHB1c2guZGVmYXVsdCBzaW1wbGVcbiIKKyJcbiIKKyJTZWUgJ2dpdCBoZWxwIGNvbmZpZycgYW5kIHNlYXJjaCBmb3IgJ3B1c2guZGVmYXVsdCcgZm9yIGZ1cnRoZXIgIgorImluZm9ybWF0aW9uLlxuIgorIih0aGUgJ3NpbXBsZScgbW9kZSB3YXMgaW50cm9kdWNlZCBpbiBHaXQgMS43LjExLiBVc2UgdGhlIHNpbWlsYXIgbW9kZVxuIgorIidjdXJyZW50JyBpbnN0ZWFkIG9mICdzaW1wbGUnIGlmIHlvdSBzb21ldGltZXMgdXNlIG9sZGVyIHZlcnNpb25zIG9mIEdpdCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MTk5Cittc2dpZCAiIgorIllvdSBkaWRuJ3Qgc3BlY2lmeSBhbnkgcmVmc3BlY3MgdG8gcHVzaCwgYW5kIHB1c2guZGVmYXVsdCBpcyBcIm5vdGhpbmdcIi4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MjA2Cittc2dpZCAiIgorIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0aXAgb2YgeW91ciBjdXJyZW50IGJyYW5jaCBpcyBiZWhpbmRcbiIKKyJpdHMgcmVtb3RlIGNvdW50ZXJwYXJ0LiBNZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4gJ2dpdCBwdWxsJylcbiIKKyJiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyMTIKK21zZ2lkICIiCisiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgorImNvdW50ZXJwYXJ0LiBJZiB5b3UgZGlkIG5vdCBpbnRlbmQgdG8gcHVzaCB0aGF0IGJyYW5jaCwgeW91IG1heSB3YW50IHRvXG4iCisic3BlY2lmeSBicmFuY2hlcyB0byBwdXNoIG9yIHNldCB0aGUgJ3B1c2guZGVmYXVsdCcgY29uZmlndXJhdGlvbiB2YXJpYWJsZVxuIgorInRvICdzaW1wbGUnLCAnY3VycmVudCcgb3IgJ3Vwc3RyZWFtJyB0byBwdXNoIG9ubHkgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyMTgKK21zZ2lkICIiCisiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNAorbXNnaWQgIiIKKyJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKKyJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCisidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgorIidnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorbXNnaWQgIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0YWcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlbW90ZS4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MjM0Cittc2dpZCAiIgorIllvdSBjYW5ub3QgdXBkYXRlIGEgcmVtb3RlIHJlZiB0aGF0IHBvaW50cyBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgorIm9yIHVwZGF0ZSBhIHJlbW90ZSByZWYgdG8gbWFrZSBpdCBwb2ludCBhdCBhIG5vbi1jb21taXQgb2JqZWN0LFxuIgorIndpdGhvdXQgdXNpbmcgdGhlICctLWZvcmNlJyBvcHRpb24uXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6Mjk0CisjLCBjLWZvcm1hdAorbXNnaWQgIlB1c2hpbmcgdG8gJXNcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzoyOTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzMxCisjLCBjLWZvcm1hdAorbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzMyCittc2dpZCAiIgorIk5vIGNvbmZpZ3VyZWQgcHVzaCBkZXN0aW5hdGlvbi5cbiIKKyJFaXRoZXIgc3BlY2lmeSB0aGUgVVJMIGZyb20gdGhlIGNvbW1hbmQtbGluZSBvciBjb25maWd1cmUgYSByZW1vdGUgIgorInJlcG9zaXRvcnkgdXNpbmdcbiIKKyJcbiIKKyIgICAgZ2l0IHJlbW90ZSBhZGQgPG5hbWU+IDx1cmw+XG4iCisiXG4iCisiYW5kIHRoZW4gcHVzaCB1c2luZyB0aGUgcmVtb3RlIG5hbWVcbiIKKyJcbiIKKyIgICAgZ2l0IHB1c2ggPG5hbWU+XG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzQ3Cittc2dpZCAiLS1hbGwgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjM0OAorbXNnaWQgIi0tYWxsIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzUzCittc2dpZCAiLS1taXJyb3IgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1NAorbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6MzU5Cittc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDE5Cittc2dpZCAicmVwb3NpdG9yeSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjAKK21zZ2lkICJwdXNoIGFsbCByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQyMQorbXNnaWQgIm1pcnJvciBhbGwgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjMKK21zZ2lkICJkZWxldGUgcmVmcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjQKK21zZ2lkICJwdXNoIHRhZ3MgKGNhbid0IGJlIHVzZWQgd2l0aCAtLWFsbCBvciAtLW1pcnJvcikiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDI3Cittc2dpZCAiZm9yY2UgdXBkYXRlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjgKK21zZ2lkICJjaGVjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MjkKK21zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDMxCittc2dpZCAidXNlIHRoaW4gcGFjayIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3B1c2guYzo0MzIgYnVpbHRpbi9wdXNoLmM6NDMzCittc2dpZCAicmVjZWl2ZSBwYWNrIHByb2dyYW0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDM0Cittc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDM3Cittc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDM5Cittc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9wdXNoLmM6NDQwCittc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorbXNnaWQgIi0tZGVsZXRlIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWxsLCAtLW1pcnJvciBhbmQgLS10YWdzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorbXNnaWQgIi0tZGVsZXRlIGRvZXNuJ3QgbWFrZSBzZW5zZSB3aXRob3V0IGFueSByZWZzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MzYKK21zZ2lkICIiCisiZ2l0IHJlYWQtdHJlZSBbWy1tIFstLXRyaXZpYWxdIFstLWFnZ3Jlc3NpdmVdIHwgLS1yZXNldCB8IC0tcHJlZml4PTxwcmVmaXg+XSAiCisiWy11IFstLWV4Y2x1ZGUtcGVyLWRpcmVjdG9yeT08Z2l0aWdub3JlPl0gfCAtaV1dIFstLW5vLXNwYXJzZS1jaGVja291dF0gWy0tIgorImluZGV4LW91dHB1dD08ZmlsZT5dICgtLWVtcHR5IHwgPHRyZWUtaXNoMT4gWzx0cmVlLWlzaDI+IFs8dHJlZS1pc2gzPl1dKSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOAorbXNnaWQgIndyaXRlIHJlc3VsdGluZyBpbmRleCB0byA8ZmlsZT4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTEKK21zZ2lkICJvbmx5IGVtcHR5IHRoZSBpbmRleCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworbXNnaWQgIk1lcmdpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTUKK21zZ2lkICJwZXJmb3JtIGEgbWVyZ2UgaW4gYWRkaXRpb24gdG8gYSByZWFkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3Cittc2dpZCAiMy13YXkgbWVyZ2UgaWYgbm8gZmlsZSBsZXZlbCBtZXJnaW5nIHJlcXVpcmVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5Cittc2dpZCAiMy13YXkgbWVyZ2UgaW4gcHJlc2VuY2Ugb2YgYWRkcyBhbmQgcmVtb3ZlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMQorbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKK21zZ2lkICI8c3ViZGlyZWN0b3J5Pi8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKK21zZ2lkICJyZWFkIHRoZSB0cmVlIGludG8gdGhlIGluZGV4IHVuZGVyIDxzdWJkaXJlY3Rvcnk+LyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorbXNnaWQgInVwZGF0ZSB3b3JraW5nIHRyZWUgd2l0aCBtZXJnZSByZXN1bHQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKK21zZ2lkICJnaXRpZ25vcmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjkKK21zZ2lkICJhbGxvdyBleHBsaWNpdGx5IGlnbm9yZWQgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzIKK21zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKK21zZ2lkICJkb24ndCB1cGRhdGUgdGhlIGluZGV4IG9yIHRoZSB3b3JrIHRyZWUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzUKK21zZ2lkICJza2lwIGFwcGx5aW5nIHNwYXJzZSBjaGVja291dCBmaWx0ZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKK21zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMQorbXNnaWQgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyCittc2dpZCAiIgorImdpdCByZW1vdGUgYWRkIFstdCA8YnJhbmNoPl0gWy1tIDxtYXN0ZXI+XSBbLWZdIFstLXRhZ3N8LS1uby10YWdzXSBbLS0iCisibWlycm9yPTxmZXRjaHxwdXNoPl0gPG5hbWU+IDx1cmw+IgorbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbLXQgPGJyYW5jaGU+XSBbLW0gPG1hw650cmVzc2U+XSBbLWZdIFstLXRhZ3N8LS1uby10YWdzXSBbLS1taXJyb3I9PGZldGNofHB1c2g+XSA8bm9tPiA8VVJMPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMyBidWlsdGluL3JlbW90ZS5jOjMyCittc2dpZCAiZ2l0IHJlbW90ZSByZW5hbWUgPG9sZD4gPG5ldz4iCittc2dzdHIgImdpdCByZW1vdGUgcmVuYW1lIDxhbmNpZW5uZT4gPG5vdXZlbGxlPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNCBidWlsdGluL3JlbW90ZS5jOjM3Cittc2dpZCAiZ2l0IHJlbW90ZSByZW1vdmUgPG5hbWU+IgorbXNnc3RyICJnaXQgcmVtb3RlIHJlbW92ZSA8bm9tPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNSBidWlsdGluL3JlbW90ZS5jOjQyCittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtaGVhZCA8bmFtZT4gKC1hIHwgLWQgfCA8YnJhbmNoPikiCittc2dzdHIgImdpdCByZW1vdGUgc2V0LWhlYWQgPG5vbT4gKC1hIHwgLWQgfCA8YnJhbmNoZT4pIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE2Cittc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHNob3cgWy1uXSA8bmFtZT4iCittc2dzdHIgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSBzaG93IFstbl0gPG5vbT4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTcKK21zZ2lkICJnaXQgcmVtb3RlIHBydW5lIFstbiB8IC0tZHJ5LXJ1bl0gPG5hbWU+IgorbXNnc3RyICJnaXQgcmVtb3RlIHBydW5lIFstbiB8IC0tZHJ5LXJ1bl0gPG5vbT4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTgKK21zZ2lkICIiCisiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIHVwZGF0ZSBbLXAgfCAtLXBydW5lXSBbKDxncm91cD4gfCA8cmVtb3RlPikuLi5dIgorbXNnc3RyICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0gdXBkYXRlIFstcCB8IC0tcHJ1bmVdIFsoPGdyb3VwZT4gfCA8ZGlzdGFudGU+KS4uLl0iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTkKK21zZ2lkICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyBbLS1hZGRdIDxuYW1lPiA8YnJhbmNoPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgWy0tYWRkXSA8bm9tPiA8YnJhbmNoZT4uLi4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MjAgYnVpbHRpbi9yZW1vdGUuYzo2OAorbXNnaWQgImdpdCByZW1vdGUgc2V0LXVybCBbLS1wdXNoXSA8bmFtZT4gPG5ld3VybD4gWzxvbGR1cmw+XSIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtdXJsIFstLXB1c2hdIDxub20+IDxub3V2ZWxsZS1VUkw+IFs8YW5jaWVubmUtVVJMPl0iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MjEgYnVpbHRpbi9yZW1vdGUuYzo2OQorbXNnaWQgImdpdCByZW1vdGUgc2V0LXVybCAtLWFkZCA8bmFtZT4gPG5ld3VybD4iCittc2dzdHIgImdpdCByZW1vdGUgc2V0LXVybCAtLWFkZCA8bm9tPiA8bm91dmVsbGUtVVJMPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoyMiBidWlsdGluL3JlbW90ZS5jOjcwCittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtdXJsIC0tZGVsZXRlIDxuYW1lPiA8dXJsPiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtdXJsIC0tZGVsZXRlIDxub20+IDxVUkw+IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjI3Cittc2dpZCAiZ2l0IHJlbW90ZSBhZGQgWzxvcHRpb25zPl0gPG5hbWU+IDx1cmw+IgorbXNnc3RyICJnaXQgcmVtb3RlIGFkZCBbPG9wdGlvbnM+XSA8bm9tPiA8VVJMPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo0NworbXNnaWQgImdpdCByZW1vdGUgc2V0LWJyYW5jaGVzIDxuYW1lPiA8YnJhbmNoPi4uLiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgPG5vbT4gPGJyYW5jaGU+Li4uIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjQ4Cittc2dpZCAiZ2l0IHJlbW90ZSBzZXQtYnJhbmNoZXMgLS1hZGQgPG5hbWU+IDxicmFuY2g+Li4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHNldC1icmFuY2hlcyAtLWFkZCA8bm9tPiA8YnJhbmNoZT4uLi4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NTMKK21zZ2lkICJnaXQgcmVtb3RlIHNob3cgWzxvcHRpb25zPl0gPG5hbWU+IgorbXNnc3RyICJnaXQgcmVtb3RlIHNob3cgWzxvcHRpb25zPl0gPG5vbT4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NTgKK21zZ2lkICJnaXQgcmVtb3RlIHBydW5lIFs8b3B0aW9ucz5dIDxuYW1lPiIKK21zZ3N0ciAiZ2l0IHJlbW90ZSBwcnVuZSBbPG9wdGlvbnM+XSA8bm9tPiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo2MworbXNnaWQgImdpdCByZW1vdGUgdXBkYXRlIFs8b3B0aW9ucz5dIFs8Z3JvdXA+IHwgPHJlbW90ZT5dLi4uIgorbXNnc3RyICJnaXQgcmVtb3RlIHVwZGF0ZSBbPG9wdGlvbnM+XSBbPGdyb3VwZT4gfCA8ZGlzdGFudGU+XS4uLiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo5OAorIywgYy1mb3JtYXQKK21zZ2lkICJVcGRhdGluZyAlcyIKK21zZ3N0ciAiTWlzZSDDoCBqb3VyIGRlICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEzMAorbXNnaWQgIiIKKyItLW1pcnJvciBpcyBkYW5nZXJvdXMgYW5kIGRlcHJlY2F0ZWQ7IHBsZWFzZVxuIgorIlx0IHVzZSAtLW1pcnJvcj1mZXRjaCBvciAtLW1pcnJvcj1wdXNoIGluc3RlYWQiCittc2dzdHIgIiIKKyItLW1pcnJvciBlc3QgZGFuZ2VyZXV4IGV0IG9ic29sw6h0ZSA7IG1lcmNpXG4iCisiXHQgZCd1dGlsaXNlciAtLW1pcnJvcj1mZXRjaCBvdSAtLW1pcnJvcj1wdXNoIMOgIGxhIHBsYWNlIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0NworIywgYy1mb3JtYXQKK21zZ2lkICJ1bmtub3duIG1pcnJvciBhcmd1bWVudDogJXMiCittc2dzdHIgImFyZ3VtZW50IG1pcm9pciBpbmNvbm51IDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTYzCittc2dpZCAiZmV0Y2ggdGhlIHJlbW90ZSBicmFuY2hlcyIKK21zZ3N0ciAicmFwYXRyaWVyIGxlcyBicmFuY2hlcyBkaXN0YW50ZXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY1Cittc2dpZCAiaW1wb3J0IGFsbCB0YWdzIGFuZCBhc3NvY2lhdGVkIG9iamVjdHMgd2hlbiBmZXRjaGluZyIKK21zZ3N0ciAiaW1wb3J0ZXIgdG91dGVzIGxlcyDDqXRpcXVldHRlcyBldCBsZXMgb2JqZXRzIGFzc29jacOpcyBsb3JzIGR1IHJhcGF0cmllbWVudCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNjgKK21zZ2lkICJvciBkbyBub3QgZmV0Y2ggYW55IHRhZyBhdCBhbGwgKC0tbm8tdGFncykiCittc2dzdHIgIm91IG5lIHJhcGF0cmllciBhdWN1bmUgw6l0aXF1ZXR0ZSAoLS1uby10YWdzKSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNzAKK21zZ2lkICJicmFuY2goZXMpIHRvIHRyYWNrIgorbXNnc3RyICJicmFuY2hlKHMpIMOgIHN1aXZyZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNzEKK21zZ2lkICJtYXN0ZXIgYnJhbmNoIgorbXNnc3RyICJicmFuY2hlIG1hw650cmVzc2UiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTcyCittc2dpZCAicHVzaHxmZXRjaCIKK21zZ3N0ciAicHVzaHxmZXRjaCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNzMKK21zZ2lkICJzZXQgdXAgcmVtb3RlIGFzIGEgbWlycm9yIHRvIHB1c2ggdG8gb3IgZmV0Y2ggZnJvbSIKK21zZ3N0ciAicGFyYW3DqXRyZXIgbGEgZGlzdGFudGUgY29tbWUgbWlyb2lyIHBvdXIgcG91c3NlciBvdSBwb3VyIHJhcGF0cmllciBkZXB1aXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTg1Cittc2dpZCAic3BlY2lmeWluZyBhIG1hc3RlciBicmFuY2ggbWFrZXMgbm8gc2Vuc2Ugd2l0aCAtLW1pcnJvciIKK21zZ3N0ciAic3DDqWNpZmllciB1bmUgYnJhbmNoZSBtYcOudHJlc3NlIG4nYSBwYXMgZGUgc2VucyBhdmVjIC0tbWlycm9yIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE4NworbXNnaWQgInNwZWNpZnlpbmcgYnJhbmNoZXMgdG8gdHJhY2sgbWFrZXMgc2Vuc2Ugb25seSB3aXRoIGZldGNoIG1pcnJvcnMiCittc2dzdHIgInNww6ljaWZpZXIgbGVzIGJyYW5jaGVzIMOgIHN1aXZyZSBuJ2EgZGUgc2VucyBxdSdhdmVjIGRlcyBtaXJvaXJzIGRlIHJhcGF0cmllbWVudCIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxOTUgYnVpbHRpbi9yZW1vdGUuYzo2NDYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3RlICVzIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAibGEgZGlzdGFudGUgJXMgZXhpc3RlIGTDqWrDoC4iCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTk5IGJ1aWx0aW4vcmVtb3RlLmM6NjUwCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgcmVtb3RlIG5hbWUiCittc2dzdHIgIiclcycgbidlc3QgcGFzIHVuIG5vbSB2YWxpZGUgZGUgZGlzdGFudGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MjQzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzZXR1cCBtYXN0ZXIgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwYXJhbcOpdHJlciBsYSBtYcOudHJlc3NlICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIm1vcmUgdGhhbiBvbmUgJXMiCittc2dzdHIgInBsdXMgZCd1biAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzozMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGdldCBmZXRjaCBtYXAgZm9yIHJlZnNwZWMgJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo0NDAgYnVpbHRpbi9yZW1vdGUuYzo0NDgKK21zZ2lkICIobWF0Y2hpbmcpIgorbXNnc3RyICIoY29ycmVzcG9uZCkiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NDUyCittc2dpZCAiKGRlbGV0ZSkiCittc2dzdHIgIihzdXBwcmltZXIpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjU5NSBidWlsdGluL3JlbW90ZS5jOjYwMSBidWlsdGluL3JlbW90ZS5jOjYwNworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgYXBwZW5kICclcycgdG8gJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2Fqb3V0ZXIgJyVzJyDDoCAnJXMnIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjYzOSBidWlsdGluL3JlbW90ZS5jOjc5MiBidWlsdGluL3JlbW90ZS5jOjg5MAorIywgYy1mb3JtYXQKK21zZ2lkICJObyBzdWNoIHJlbW90ZTogJXMiCittc2dzdHIgIkRpc3RhbnRlIGluY29ubnVlIDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NjU2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW5hbWUgY29uZmlnIHNlY3Rpb24gJyVzJyB0byAnJXMnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlbm9tbWVyIGxhIHNlY3Rpb24gZGUgY29uZmlndXJhdGlvbiAnJXMnIGVuICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NjYyIGJ1aWx0aW4vcmVtb3RlLmM6Nzk5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgY29uZmlnIHNlY3Rpb24gJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgbGEgc2VjdGlvbiBkZSBjb25maWd1cmF0aW9uICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6Njc3CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJOb3QgdXBkYXRpbmcgbm9uLWRlZmF1bHQgZmV0Y2ggcmVmc3BlY1xuIgorIlx0JXNcbiIKKyJcdFBsZWFzZSB1cGRhdGUgdGhlIGNvbmZpZ3VyYXRpb24gbWFudWFsbHkgaWYgbmVjZXNzYXJ5LiIKK21zZ3N0ciAiIgorIlBhcyBkZSBtaXNlIMOgIGpvdXIgZHUgcmVmc3BlYyBkZSByYXBhdHJpZW1lbnQgcXVpIG4nZXN0IHBhcyBwYXIgZMOpZmF1dFxuIgorIlx0JXNcbiIKKyJcdE1lcmNpIGRlIG1ldHRyZSDDoCBqb3VyIGxhIGNvbmZpZ3VyYXRpb24gc2kgbsOpY2Vzc2FpcmUuIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjY4MworIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgYXBwZW5kICclcyciCittc2dzdHIgIkltcG9zc2libGUgZCdham91dGVyICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6Njk0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzZXQgJyVzJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBkw6lmaW5pciAnJXMnIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjcxNgorIywgYy1mb3JtYXQKK21zZ2lkICJkZWxldGluZyAnJXMnIGZhaWxlZCIKK21zZ3N0ciAiw6ljaGVjIGRlIHN1cHByZXNzaW9uIGRlICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NzUwCisjLCBjLWZvcm1hdAorbXNnaWQgImNyZWF0aW5nICclcycgZmFpbGVkIgorbXNnc3RyICLDqWNoZWMgZGUgY3LDqWF0aW9uIGRlICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6NzY0CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgYnJhbmNoICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBicmFuY2hlICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjgzNAorbXNnaWQgIiIKKyJOb3RlOiBBIGJyYW5jaCBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3YXMgbm90IHJlbW92ZWQ7XG4iCisidG8gZGVsZXRlIGl0LCB1c2U6IgorbXNnaWRfcGx1cmFsICIiCisiTm90ZTogU29tZSBicmFuY2hlcyBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3ZXJlIG5vdCByZW1vdmVkO1xuIgorInRvIGRlbGV0ZSB0aGVtLCB1c2U6IgorbXNnc3RyWzBdICIiCisiTm90ZSA6IFVuZSBicmFuY2hlIGVuIGRlaG9ycyBkZSByZWZzL3JlbW90ZXMvIG4nYSBwYXMgw6l0w6kgc3VwcHJpbcOpZSA7XG4iCisicG91ciBsYSBzdXBwcmltZXIsIHV0aWxpc2V6IDoiCittc2dzdHJbMV0gIiIKKyJOb3RlIDogUGx1c2lldXJzIGJyYW5jaGVzIGVuIGRlaG9ycyBkZSByZWZzL3JlbW90ZXMvIG4nb250IHBhcyDDqXTDqSBzdXBwcmltw6llcyA7XG4iCisicG91ciBsZXMgc3VwcHJpbWVyLCB1dGlsaXNleiA6IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjk0MworIywgYy1mb3JtYXQKK21zZ2lkICIgbmV3IChuZXh0IGZldGNoIHdpbGwgc3RvcmUgaW4gcmVtb3Rlcy8lcykiCittc2dzdHIgIiBub3V2ZWF1IChsZSBwcm9jaGFpbiByYXBhdHJpZW1lbnQgKGZldGNoKSBzdG9ja2VyYSBkYW5zIHJlbW90ZXMvJXMpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjk0NgorbXNnaWQgIiB0cmFja2VkIgorbXNnc3RyICIgc3VpdmkiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6OTQ4Cittc2dpZCAiIHN0YWxlICh1c2UgJ2dpdCByZW1vdGUgcHJ1bmUnIHRvIHJlbW92ZSkiCittc2dzdHIgIiBkw6lwYXNzw6kgKHV0aWxpc2V6ICdnaXQgcmVtb3RlIHBydW5lJyBwb3VyIHN1cHByaW1lcikiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6OTUwCittc2dpZCAiID8/PyIKK21zZ3N0ciAiID8/PyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzo5OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBicmFuY2guJXMubWVyZ2U7IGNhbm5vdCByZWJhc2Ugb250byA+IDEgYnJhbmNoIgorbXNnc3RyICJicmFuY2guJXMubWVyZ2UgaW52YWxpZGUgOyBuZSBwZXV0IHBhcyByZWJhc2VyIHN1ciBwbHVzIGQndW5lIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6OTk4CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYmFzZXMgb250byByZW1vdGUgJXMiCittc2dzdHIgInJlYmFzZSBzdXIgbGEgZGlzdGFudGUgJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTAwMQorIywgYy1mb3JtYXQKK21zZ2lkICIgbWVyZ2VzIHdpdGggcmVtb3RlICVzIgorbXNnc3RyICIgZnVzaW9ubmUgYXZlYyBsYSBkaXN0YW50ZSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDAyCittc2dpZCAiICAgIGFuZCB3aXRoIHJlbW90ZSIKK21zZ3N0ciAiICAgIGV0IGF2ZWMgbGEgZGlzdGFudGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTAwNAorIywgYy1mb3JtYXQKK21zZ2lkICJtZXJnZXMgd2l0aCByZW1vdGUgJXMiCittc2dzdHIgImZ1c2lvbm5lIGF2ZWMgbGEgZGlzdGFudGUgJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTAwNQorbXNnaWQgIiAgIGFuZCB3aXRoIHJlbW90ZSIKK21zZ3N0ciAiICAgZXQgYXZlYyBsYSBkaXN0YW50ZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDUxCittc2dpZCAiY3JlYXRlIgorbXNnc3RyICJjcsOpZXIiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA1NAorbXNnaWQgImRlbGV0ZSIKK21zZ3N0ciAic3VwcHJpbWVyIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNTgKK21zZ2lkICJ1cCB0byBkYXRlIgorbXNnc3RyICLDoCBqb3VyIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNjEKK21zZ2lkICJmYXN0LWZvcndhcmRhYmxlIgorbXNnc3RyICJwZXV0IMOqdHJlIG1pcyDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTA2NAorbXNnaWQgImxvY2FsIG91dCBvZiBkYXRlIgorbXNnc3RyICJsZSBsb2NhbCBuJ2VzdCBwYXMgw6Agam91ciIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDcxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgICAlLSpzIGZvcmNlcyB0byAlLSpzICglcykiCittc2dzdHIgIiAgICAlLSpzIGZvcmNlIHZlcnMgJS0qcyAoJXMpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICUtKnMgcHVzaGVzIHRvICUtKnMgKCVzKSIKK21zZ3N0ciAiICAgICUtKnMgcG91c3NlIHZlcnMgJS0qcyAoJXMpIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICUtKnMgZm9yY2VzIHRvICVzIgorbXNnc3RyICIgICAgJS0qcyBmb3JjZSB2ZXJzICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEwODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICAgICUtKnMgcHVzaGVzIHRvICVzIgorbXNnc3RyICIgICAgJS0qcyBwb3Vzc2UgdmVycyAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMDkxCittc2dpZCAiZG8gbm90IHF1ZXJ5IHJlbW90ZXMiCittc2dzdHIgIm5lIHBhcyBpbnRlcnJvZ2VyIGxlcyBkaXN0YW50ZXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTExOAorIywgYy1mb3JtYXQKK21zZ2lkICIqIHJlbW90ZSAlcyIKK21zZ3N0ciAiKiBkaXN0YW50ZSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTE5CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgRmV0Y2ggVVJMOiAlcyIKK21zZ3N0ciAiICBVUkwgZGUgcmFwYXRyaWVtZW50IDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEyMCBidWlsdGluL3JlbW90ZS5jOjEyODUKK21zZ2lkICIobm8gVVJMKSIKK21zZ3N0ciAiKHBhcyBkJ1VSTCkiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEyOSBidWlsdGluL3JlbW90ZS5jOjExMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiICBQdXNoICBVUkw6ICVzIgorbXNnc3RyICIgIFVSTCBwdXNoIDogJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEzMyBidWlsdGluL3JlbW90ZS5jOjExMzUgYnVpbHRpbi9yZW1vdGUuYzoxMTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgSEVBRCBicmFuY2g6ICVzIgorbXNnc3RyICIgIEJyYW5jaGUgSEVBRCA6ICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiAgSEVBRCBicmFuY2ggKHJlbW90ZSBIRUFEIGlzIGFtYmlndW91cywgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nKTpcbiIKK21zZ3N0ciAiICBCcmFuY2hlIEhFQUQgKGxhIEhFQUQgZGlzdGFudGUgZXN0IGFtYmlndcOrLCBwZXV0IMOqdHJlIGwndW5lIGRlcyBzdWl2YW50ZXMpIDpcbiIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTUxCisjLCBjLWZvcm1hdAorbXNnaWQgIiAgUmVtb3RlIGJyYW5jaDolcyIKK21zZ2lkX3BsdXJhbCAiICBSZW1vdGUgYnJhbmNoZXM6JXMiCittc2dzdHJbMF0gIiAgQnJhbmNoZSBkaXN0YW50ZSA6JXMiCittc2dzdHJbMV0gIiAgQnJhbmNoZXMgZGlzdGFudGVzIDolcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTU0IGJ1aWx0aW4vcmVtb3RlLmM6MTE4MQorbXNnaWQgIiAoc3RhdHVzIG5vdCBxdWVyaWVkKSIKK21zZ3N0ciAiIChzdGF0dXQgbm9uIGRlbWFuZMOpKSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTYzCittc2dpZCAiICBMb2NhbCBicmFuY2ggY29uZmlndXJlZCBmb3IgJ2dpdCBwdWxsJzoiCittc2dpZF9wbHVyYWwgIiAgTG9jYWwgYnJhbmNoZXMgY29uZmlndXJlZCBmb3IgJ2dpdCBwdWxsJzoiCittc2dzdHJbMF0gIiAgQnJhbmNoZSBsb2NhbGUgY29uZmlndXLDqWUgcG91ciAnZ2l0IHB1bGwnIDoiCittc2dzdHJbMV0gIiAgQnJhbmNoZXMgbG9jYWxlcyBjb25maWd1csOpZXMgcG91ciAnZ2l0IHB1bGwnIDoiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTE3MQorbXNnaWQgIiAgTG9jYWwgcmVmcyB3aWxsIGJlIG1pcnJvcmVkIGJ5ICdnaXQgcHVzaCciCittc2dzdHIgIiAgTGVzIHLDqWbDqXJlbmNlcyBsb2NhbGVzIHNlcm9udCByZWZsw6l0w6llcyBwYXIgJ2dpdCBwdXNoJyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMTc4CisjLCBjLWZvcm1hdAorbXNnaWQgIiAgTG9jYWwgcmVmIGNvbmZpZ3VyZWQgZm9yICdnaXQgcHVzaCclczoiCittc2dpZF9wbHVyYWwgIiAgTG9jYWwgcmVmcyBjb25maWd1cmVkIGZvciAnZ2l0IHB1c2gnJXM6IgorbXNnc3RyWzBdICIgIFLDqWbDqXJlbmNlIGxvY2FsZSBjb25maWd1csOpZSBwb3VyICdnaXQgcHVzaCclcyA6IgorbXNnc3RyWzFdICIgIFLDqWbDqXJlbmNlcyBsb2NhbGVzIGNvbmZpZ3Vyw6llcyBwb3VyICdnaXQgcHVzaCclcyA6IgorCisjOiBidWlsdGluL3JlbW90ZS5jOjExOTkKK21zZ2lkICJzZXQgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEIGFjY29yZGluZyB0byByZW1vdGUiCittc2dzdHIgImTDqWZpbmlyIHJlZnMvcmVtb3Rlcy88bm9tPi9IRUFEIHNlbG9uIGxhIGRpc3RhbnRlIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyMDEKK21zZ2lkICJkZWxldGUgcmVmcy9yZW1vdGVzLzxuYW1lPi9IRUFEIgorbXNnc3RyICJzdXBwcmltZXIgcmVmcy9yZW1vdGVzLzxub20+L0hFQUQiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTIxNgorbXNnaWQgIkNhbm5vdCBkZXRlcm1pbmUgcmVtb3RlIEhFQUQiCittc2dzdHIgIkltcG9zc2libGUgZGUgZMOpdGVybWluZXIgbGEgSEVBRCBkaXN0YW50ZSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjE4Cittc2dpZCAiTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoiCittc2dzdHIgIklsIHkgYSBkZSBtdWx0aXBsZXMgYnJhbmNoZXMgSEVBRCBkaXN0YW50ZXMuIE1lcmNpIGQnZW4gY2hvaXNpciB1bmUgZXhwbGljaXRlbWVudCBhdmVjIDoiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTIyOAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgZGVsZXRlICVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjM2CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIHJlZjogJXMiCittc2dzdHIgIlLDqWbDqXJlbmNlIG5vbiB2YWxpZGUgOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjM4CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzZXR1cCAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBwYXJhbcOpdHJlciAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjc0CisjLCBjLWZvcm1hdAorbXNnaWQgIiAlcyB3aWxsIGJlY29tZSBkYW5nbGluZyEiCittc2dzdHIgIiAlcyBkZXZpZW5kcmEgZW4gc3VzcGVucyAhIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyNzUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICVzIGhhcyBiZWNvbWUgZGFuZ2xpbmchIgorbXNnc3RyICIgJXMgZXN0IGRldmVudSBlbiBzdXNwZW5zICEiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI4MQorIywgYy1mb3JtYXQKK21zZ2lkICJQcnVuaW5nICVzIgorbXNnc3RyICLDiWxhZ2FnZSBkZSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMjgyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVSTDogJXMiCittc2dzdHIgIlVSTCA6ICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjEyOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiICogW3dvdWxkIHBydW5lXSAlcyIKK21zZ3N0ciAiICogW3NlcmFpdCDDqWxhZ3XDqV0gJXMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTI5OAorIywgYy1mb3JtYXQKK21zZ2lkICIgKiBbcHJ1bmVkXSAlcyIKK21zZ3N0ciAiICogW8OpbGFndcOpXSAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxMzIxCittc2dpZCAicHJ1bmUgcmVtb3RlcyBhZnRlciBmZXRjaGluZyIKK21zZ3N0ciAiw6lsYWd1ZXIgbGVzIGRpc3RhbnRzIGFwcsOocyBsZSByYXBhdHJpZW1lbnQiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTM4NyBidWlsdGluL3JlbW90ZS5jOjE0NjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gc3VjaCByZW1vdGUgJyVzJyIKK21zZ3N0ciAiUGFzIGRlIHNlcnZldXIgcmVtb3RlICclcyciCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQwNworbXNnaWQgImFkZCBicmFuY2giCittc2dzdHIgImFqb3V0ZXIgdW5lIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQxNAorbXNnaWQgIm5vIHJlbW90ZSBzcGVjaWZpZWQiCittc2dzdHIgInBhcyBkZSBzZXJ2ZXVyIGRpc3RhbnQgc3DDqWNpZmnDqSIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDM2Cittc2dpZCAibWFuaXB1bGF0ZSBwdXNoIFVSTHMiCittc2dzdHIgIm1hbmlwdWxlciBsZXMgVVJMcyBwdXNoIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0MzgKK21zZ2lkICJhZGQgVVJMIgorbXNnc3RyICJham91dGVyIHVuZSBVUkwiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ0MAorbXNnaWQgImRlbGV0ZSBVUkxzIgorbXNnc3RyICJzdXBwcmltZXIgZGVzIFVSTHMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ0NworbXNnaWQgIi0tYWRkIC0tZGVsZXRlIGRvZXNuJ3QgbWFrZSBzZW5zZSIKK21zZ3N0ciAiLS1hZGQgLS1kZWxldGUgbidhIGF1Y3VuIHNlbnMiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTQ4NworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIG9sZCBVUkwgcGF0dGVybjogJXMiCittc2dzdHIgIk1vdGlmIGQnVVJMIGFuY2llbiBpbnZhbGlkZSA6ICVzIgorCisjOiBidWlsdGluL3JlbW90ZS5jOjE0OTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm8gc3VjaCBVUkwgZm91bmQ6ICVzIgorbXNnc3RyICJQYXMgZCdVUkwgdHJvdXbDqWUgOiAlcyIKKworIzogYnVpbHRpbi9yZW1vdGUuYzoxNDk3Cittc2dpZCAiV2lsbCBub3QgZGVsZXRlIGFsbCBub24tcHVzaCBVUkxzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vcmVtb3RlLmM6MTU2OQorbXNnaWQgImJlIHZlcmJvc2U7IG11c3QgYmUgcGxhY2VkIGJlZm9yZSBhIHN1YmNvbW1hbmQiCittc2dzdHIgIsOqdHJlIHZlcmJldXggOiBkb2l0IMOqdHJlIHBsYWPDqSBhdmFudCB1bmUgc291cy1jb21tYW5kZSIKKworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTcKK21zZ2lkICJnaXQgcmVwbGFjZSBbLWZdIDxvYmplY3Q+IDxyZXBsYWNlbWVudD4iCittc2dzdHIgImdpdCByZXBsYWNlIFstZl0gPG9iamV0PiA8cmVtcGxhY2VtZW50PiIKKworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTgKK21zZ2lkICJnaXQgcmVwbGFjZSAtZCA8b2JqZWN0Pi4uLiIKK21zZ3N0ciAiZ2l0IHJlcGxhY2UgLWQgPG9iamV0Pi4uLiIKKworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTkKK21zZ2lkICJnaXQgcmVwbGFjZSAtbCBbPHBhdHRlcm4+XSIKK21zZ3N0ciAiZ2l0IHJlcGxhY2UgLWwgWzxtb3RpZj5dIgorCisjOiBidWlsdGluL3JlcGxhY2UuYzoxMjEKK21zZ2lkICJsaXN0IHJlcGxhY2UgcmVmcyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIHLDqWbDqXJlbmNlcyBkZSByZW1wbGFjZW1lbnQiCisKKyM6IGJ1aWx0aW4vcmVwbGFjZS5jOjEyMgorbXNnaWQgImRlbGV0ZSByZXBsYWNlIHJlZnMiCittc2dzdHIgInN1cHByaW1lciBsZXMgcsOpZsOpcmVuY2VzIGRlIHJlbXBsYWNlbWVudCIKKworIzogYnVpbHRpbi9yZXBsYWNlLmM6MTIzCittc2dpZCAicmVwbGFjZSB0aGUgcmVmIGlmIGl0IGV4aXN0cyIKK21zZ3N0ciAicmVtcGxhY2VyIGxhIHLDqWbDqXJlbmNlIHNpIGVsbGUgZXhpc3RlIgorCisjOiBidWlsdGluL3JlcmVyZS5jOjExCittc2dpZCAiZ2l0IHJlcmVyZSBbY2xlYXIgfCBmb3JnZXQgcGF0aC4uLiB8IHN0YXR1cyB8IHJlbWFpbmluZyB8IGRpZmYgfCBnY10iCittc2dzdHIgImdpdCByZXJlcmUgW2NsZWFyIHwgZm9yZ2V0IGNoZW1pbi4uLiB8IHN0YXR1cyB8IHJlbWFpbmluZyB8IGRpZmYgfCBnY10iCisKKyM6IGJ1aWx0aW4vcmVyZXJlLmM6NTYKK21zZ2lkICJyZWdpc3RlciBjbGVhbiByZXNvbHV0aW9ucyBpbiBpbmRleCIKK21zZ3N0ciAiZW5yZWdpc3RyZXIgZGVzIHLDqXNvbHV0aW9ucyBwcm9wcmVzIGRhbnMgbCdpbmRleCIKKworIzogYnVpbHRpbi9yZXNldC5jOjI1Cittc2dpZCAiIgorImdpdCByZXNldCBbLS1taXhlZCB8IC0tc29mdCB8IC0taGFyZCB8IC0tbWVyZ2UgfCAtLWtlZXBdIFstcV0gWzxjb21taXQ+XSIKK21zZ3N0ciAiZ2l0IHJlc2V0IFstLW1peGVkIHwgLS1zb2Z0IHwgLS1oYXJkIHwgLS1tZXJnZSB8IC0ta2VlcF0gWy1xXSBbPGNvbW1pdD5dIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjYKK21zZ2lkICJnaXQgcmVzZXQgWy1xXSA8dHJlZS1pc2g+IFstLV0gPHBhdGhzPi4uLiIKK21zZ3N0ciAiZ2l0IHJlc2V0IFstcV0gPGFyYnJlPiBbLS1dIDxjaGVtaW5zPi4uLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjI3Cittc2dpZCAiZ2l0IHJlc2V0IC0tcGF0Y2ggWzx0cmVlLWlzaD5dIFstLV0gWzxwYXRocz4uLi5dIgorbXNnc3RyICJnaXQgcmVzZXQgLS1wYXRjaCBbPGFyYnJlPl0gWy0tXSBbPGNoZW1pbnM+Li4uXSIKKworIzogYnVpbHRpbi9yZXNldC5jOjMzCittc2dpZCAibWl4ZWQiCittc2dzdHIgIm1peGVkIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzMKK21zZ2lkICJzb2Z0IgorbXNnc3RyICJzb2Z0IgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzMKK21zZ2lkICJoYXJkIgorbXNnc3RyICJoYXJkIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzMKK21zZ2lkICJtZXJnZSIKK21zZ3N0ciAibWVyZ2UiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMworbXNnaWQgImtlZXAiCittc2dzdHIgImtlZXAiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzo3MworbXNnaWQgIllvdSBkbyBub3QgaGF2ZSBhIHZhbGlkIEhFQUQuIgorbXNnc3RyICJWb3VzIG4nYXZleiBwYXMgdW5lIEhFQUQgdmFsaWRlLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjc1Cittc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiBIRUFELiIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSB0cm91dmVyIGwnYXJicmUgcG91ciBIRUFELiIKKworIzogYnVpbHRpbi9yZXNldC5jOjgxCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byBmaW5kIHRyZWUgb2YgJXMuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHRyb3V2ZXIgbCdhcmJyZSBwb3VyICVzLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkhFQUQgaXMgbm93IGF0ICVzIgorbXNnc3RyICJIRUFEIGVzdCBtYWludGVuYW50IMOgICVzIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MTY5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBkbyBhICVzIHJlc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZS4iCittc2dzdHIgIkltcG9zc2libGUgZGUgZmFpcmUgdW4gXCJyZXNldCAlc1wiIGF1IG1pbGlldSBkJ3VuZSBmdXNpb24uIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjQ4Cittc2dpZCAiYmUgcXVpZXQsIG9ubHkgcmVwb3J0IGVycm9ycyIKK21zZ3N0ciAiw6p0cmUgc2lsZW5jaWV1eCwgYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBlcnJldXJzIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjUwCittc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCittc2dzdHIgInLDqWluaXRpYWxpc2VyIEhFQUQgZXQgbCdpbmRleCIKKworIzogYnVpbHRpbi9yZXNldC5jOjI1MQorbXNnaWQgInJlc2V0IG9ubHkgSEVBRCIKK21zZ3N0ciAicsOpaW5pdGlhbGlzZXIgc2V1bGVtZW50IEhFQUQiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorbXNnaWQgInJlc2V0IEhFQUQsIGluZGV4IGFuZCB3b3JraW5nIHRyZWUiCittc2dzdHIgInLDqWluaXRpYWxpc2VyIEhFQUQsIGwnaW5kZXggZXQgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi9yZXNldC5jOjI1NworbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKK21zZ3N0ciAicsOpaW5pdGlhbGlzZXIgSEVBRCBtYWlzIGdhcmRlciBsZXMgY2hhbmdlbWVudHMgbG9jYXV4IgorCisjOiBidWlsdGluL3Jlc2V0LmM6Mjc1CisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCittc2dzdHIgIsOJY2hlYyBkZSByw6lzb2x1dGlvbiBkZSAnJXMnIGNvbW1lIHVuZSByw6l2aXNpb24gdmFsaWRlLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJy4iCittc2dzdHIgIkltcG9zc2libGUgZCdhbmFseXNlciBsJ29iamV0ICclcycuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKK21zZ3N0ciAiw4ljaGVjIGRlIHLDqXNvbHV0aW9uIGRlICclcycgY29tbWUgdW4gYXJicmUgdmFsaWRlLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjI5MgorbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKK21zZ3N0ciAiLS1wYXRjaCBlc3QgaW5jb21wYXRpYmxlIGF2ZWMgLS17aGFyZCxtaXhlZCxzb2Z0fSIKKworIzogYnVpbHRpbi9yZXNldC5jOjMwMQorbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKK21zZ3N0ciAiLS1taXhlZCBhdmVjIGRlcyBjaGVtaW5zIGVzdCBvYnNvbMOodGUgOyB1dGlsaXNleiAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIMOgIGxhIHBsYWNlLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjMwMworIywgYy1mb3JtYXQKK21zZ2lkICJDYW5ub3QgZG8gJXMgcmVzZXQgd2l0aCBwYXRocy4iCittc2dzdHIgIkltcG9zc2libGUgZGUgZmFpcmUgdW4gXCIlcyByZXNldFwiIGF2ZWMgZGVzIGNoZW1pbnMuIgorCisjOiBidWlsdGluL3Jlc2V0LmM6MzEzCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgorbXNnc3RyICJMZSBcIiVzIHJlc2V0XCIgbidlc3QgcGFzIHBlcm1pcyBkYW5zIHVuIGTDqXDDtHQgbnUiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMzMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHJlc2V0IGluZGV4IGZpbGUgdG8gcmV2aXNpb24gJyVzJy4iCittc2dzdHIgIkltcG9zc2libGUgZGUgcsOpaW5pdGlhbGlzZXIgbGUgZmljaGllciBkJ2luZGV4IMOgIGxhIHLDqXZpc2lvbiAnJXMnLiIKKworIzogYnVpbHRpbi9yZXNldC5jOjMzOQorbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgorbXNnc3RyICJNb2RpZmljYXRpb25zIG5vbiBpbmRleMOpZXMgYXByw6hzIHJlc2V0IDoiCisKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKK21zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnw6ljcmlyZSBsZSBub3V2ZWF1IGZpY2hpZXIgZCdpbmRleC4iCisKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5Cittc2dpZCAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXSIKK21zZ3N0ciAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3VtZW50cz4uLi5dIgorCisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NAorbXNnaWQgImtlZXAgdGhlIGAtLWAgcGFzc2VkIGFzIGFuIGFyZyIKK21zZ3N0ciAiZ2FyZGVyIGxlIGAtLWAgcGFzc8OpIGVuIGFyZ3VtZW50IgorCisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NgorbXNnaWQgInN0b3AgcGFyc2luZyBhZnRlciB0aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCIKK21zZ3N0ciAiYXJyw6p0IGRlIGwnYW5hbHlzZSBhcHLDqHMgbGUgcHJlbWllciBhcmd1bWVudCBxdWkgbidlc3QgcGFzIHVuZSBvcHRpb24iCisKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDY0Cittc2dpZCAiIgorImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKKyIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKKyIgICBvcjogZ2l0IHJldi1wYXJzZSBbb3B0aW9uc10gWzxhcmc+Li4uXVxuIgorIlxuIgorIlJ1biBcImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCAtaFwiIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBmaXJzdCB1c2FnZS4iCittc2dzdHIgIiIKKyJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJndW1lbnRzPi4uLl1cbiIKKyIgICBvdSA6IGdpdCByZXYtcGFyc2UgLS1zcS1xdW90ZSBbPGFyZ3VtZW50Pi4uLl1cbiIKKyIgICBvdSA6IGdpdCByZXYtcGFyc2UgW29wdGlvbnNdIFs8YXJndW1lbnQ+Li4uXVxuIgorIlxuIgorIkxhbmNleiBcImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCAtaFwiIHBvdXIgcGx1cyBkJ2luZm9ybWF0aW9uIHN1ciBsJ3V0aWxpc2F0aW9uIHByaW5jaXBhbGUuIgorCisjOiBidWlsdGluL3JldmVydC5jOjIyCittc2dpZCAiZ2l0IHJldmVydCBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoyMworbXNnaWQgImdpdCByZXZlcnQgPHN1YmNvbW1hbmQ+IgorbXNnc3RyICJnaXQgcmV2ZXJ0IDxzb3VzLWNvbW1hbmRlPiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoyOAorbXNnaWQgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQ+Li4uIgorCisjOiBidWlsdGluL3JldmVydC5jOjI5Cittc2dpZCAiZ2l0IGNoZXJyeS1waWNrIDxzdWJjb21tYW5kPiIKK21zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIDxzb3VzLWNvbW1hbmRlPiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzo3MCBidWlsdGluL3JldmVydC5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgorbXNnc3RyICIlcyA6ICVzIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpIGF2ZWMgJXMiCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCittc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKK21zZ3N0ciAibWV0dHJlIGZpbiBhdSByZXRvdXIgb3UgcGljb3JhZ2UiCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0Cittc2dpZCAicmVzdW1lIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKK21zZ3N0ciAicmVwcmVuZHJlIGxlIHJldG91ciBvdSBwaWNvcmFnZSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKK21zZ2lkICJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgorbXNnc3RyICJhbm51bGVyIGxlIHJldG91ciBvdSBwaWNvcmFnZSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKK21zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKK21zZ3N0ciAibmUgcGFzIHZhbGlkZXIgYXV0b21hdGlxdWVtZW50IgorCisjOiBidWlsdGluL3JldmVydC5jOjEwNworbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgorbXNnc3RyICLDqWRpdGVyIGxlIG1lc3NhZ2UgZGUgdmFsaWRhdGlvbiIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKK21zZ2lkICJwYXJlbnQgbnVtYmVyIgorbXNnc3RyICJudW3DqXJvIGRlIHBhcmVudCIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKK21zZ2lkICJtZXJnZSBzdHJhdGVneSIKK21zZ3N0ciAic3RyYXTDqWdpZSBkZSBmdXNpb24iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEzCittc2dpZCAib3B0aW9uIgorbXNnc3RyICJvcHRpb24iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0Cittc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKK21zZ3N0ciAib3B0aW9uIHBvdXIgbGEgc3RyYXTDqWdpZSBkZSBmdXNpb24iCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI1Cittc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgorbXNnc3RyICJham91dGVyIGxlIG5vbSBkZSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL3JldmVydC5jOjEyNgorbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCIKK21zZ3N0ciAiYXV0b3Jpc2VyIGwnYXZhbmNlIHJhcGlkZSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKK21zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKK21zZ3N0ciAicHLDqXNlcnZlciBsZXMgdmFsaWRhdGlvbnMgdmlkZXMgaW5pdGlhbGVtZW50IgorCisjOiBidWlsdGluL3JldmVydC5jOjEyOAorbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKK21zZ3N0ciAiYXV0b3Jpc2VyIGxlcyB2YWxpZGF0aW9ucyBhdmVjIGRlcyBtZXNzYWdlcyB2aWRlcyIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKK21zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKK21zZ3N0ciAiZ2FyZGVyIGxlcyB2YWxpZGF0aW9ucyByZWRvbmRhbnRlcywgdmlkZXMiCisKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMzCittc2dpZCAicHJvZ3JhbSBlcnJvciIKK21zZ3N0ciAiZXJyZXVyIGR1IHByb2dyYW1tZSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoyMjMKK21zZ2lkICJyZXZlcnQgZmFpbGVkIgorbXNnc3RyICJyZXZlcnQgYSDDqWNob3XDqSIKKworIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKK21zZ2lkICJjaGVycnktcGljayBmYWlsZWQiCittc2dzdHIgImxlIHBpY29yYWdlIGEgw6ljaG91w6kiCisKKyM6IGJ1aWx0aW4vcm0uYzoxNQorbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCittc2dzdHIgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmljaGllcj4uLi4iCisKKyM6IGJ1aWx0aW4vcm0uYzo2NCBidWlsdGluL3JtLmM6MTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgorbXNnc3RyICIiCisibGUgc291cy1tb2R1bGUgJyVzJyAob3UgdW4gZGVzIHNvdXMtbW9kdWxlcyBpbWJyaXF1w6lzKSB1dGlsaXNlIHVuIHLDqXBlcnRvaXJlIC5naXRcbiIKKyIodXRpbGlzZXogJ3JtIC1yZicgc2kgdm91cyBzb3VoYWl0ZXogdnJhaW1lbnQgbGUgc3VwcHJpbWVyIGF2ZWMgdG91dCBzb24gaGlzdG9yaXF1ZSkiCisKKyM6IGJ1aWx0aW4vcm0uYzoxNzQKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIiclcycgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlIGZpbGUgYW5kIHRoZSBIRUFEXG4iCisiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKK21zZ3N0ciAiIgorIiclcycgYSBkdSBjb250ZW51IGluZGV4w6kgZGlmZsOpcmVudCBkdSBmaWNoaWVyIGV0IGRlIEhFQURcbiIKKyIodXRpbGlzZXogLWYgcG91ciBmb3JjZXIgbGEgc3VwcHJlc3Npb24pIgorCisjOiBidWlsdGluL3JtLmM6MTgwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorbXNnc3RyICIiCisiJyVzJyBhIGRlcyBjaGFuZ2VtZW50cyBkYW5zIGwnaW5kZXhcbiIKKyIodXRpbGlzZXogLS1jYWNoZWQgcG91ciBnYXJkZXIgbGUgZmljaGllciwgb3UgLWYgcG91ciBmb3JjZXIgbGEgc3VwcHJlc3Npb24pIgorCisjOiBidWlsdGluL3JtLmM6MTkxCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyInJXMnIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zXG4iCisiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKK21zZ3N0ciAiIgorIiclcycgYSBkZXMgbW9kaWZpY2F0aW9ucyBsb2NhbGVzXG4iCisiKHV0aWxpc2V6IC0tY2FjaGVkIHBvdXIgZ2FyZGVyIGxlIGZpY2hpZXIsIG91IC1mIHBvdXIgZm9yY2VyIGxhIHN1cHByZXNzaW9uKSIKKworIzogYnVpbHRpbi9ybS5jOjIwNworbXNnaWQgImRvIG5vdCBsaXN0IHJlbW92ZWQgZmlsZXMiCittc2dzdHIgIm5lIHBhcyBhZmZpY2hlciBsZXMgZmljaGllcnMgc3VwcHJpbcOpcyIKKworIzogYnVpbHRpbi9ybS5jOjIwOAorbXNnaWQgIm9ubHkgcmVtb3ZlIGZyb20gdGhlIGluZGV4IgorbXNnc3RyICJzdXBwcmltZXIgc2V1bGVtZW50IGRlIGwnaW5kZXgiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMDkKK21zZ2lkICJvdmVycmlkZSB0aGUgdXAtdG8tZGF0ZSBjaGVjayIKK21zZ3N0ciAib3V0cmVwYXNzZXIgbGEgdsOpcmlmaWNhdGlvbiBkZXMgZmljaGllcnMgw6Agam91ciIKKworIzogYnVpbHRpbi9ybS5jOjIxMAorbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgorbXNnc3RyICJhdXRvcmlzZXIgbGEgc3VwcHJlc3Npb24gcsOpY3Vyc2l2ZSIKKworIzogYnVpbHRpbi9ybS5jOjIxMgorbXNnaWQgImV4aXQgd2l0aCBhIHplcm8gc3RhdHVzIGV2ZW4gaWYgbm90aGluZyBtYXRjaGVkIgorbXNnc3RyICJzb3J0aXIgYXZlYyB1biBzdGF0dXQgesOpcm8gbcOqbWUgc2kgcmllbiBuZSBjb3JyZXNwb25kYWl0IgorCisjOiBidWlsdGluL3JtLmM6MjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCittc2dzdHIgInBhcyBkZSBzdXBwcmVzc2lvbiByw6ljdXJzaXZlIGRlICclcycgc2FucyAtciIKKworIzogYnVpbHRpbi9ybS5jOjMyMgorIywgYy1mb3JtYXQKK21zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCittc2dzdHIgImdpdCBybSA6IGltcG9zc2libGUgZGUgc3VwcHJpbWVyICVzIgorCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTMKK21zZ2lkICJnaXQgc2hvcnRsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIFs8cGF0aD4uLi5dXSIKK21zZ3N0ciAiZ2l0IHNob3J0bG9nIFs8b3B0aW9ucz5dIFs8aW50ZXJ2YWxsZSByw6l2aXNpb25zPl0gW1stLV0gWzxjaGVtaW4+Li4uXV0iCisKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzEKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgorbXNnc3RyICJBdXRldXIgbWFucXVhbnQgOiAlcyIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyNworbXNnaWQgInNvcnQgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgcGVyIGF1dGhvciIKK21zZ3N0ciAidHJpZXIgbGEgc29ydGllIHN1ciBsZSBub21icmUgZGUgdmFsaWRhdGlvbnMgcGFyIGF1dGV1ciIKKworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIyOQorbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgorbXNnc3RyICJTdXBwcmltZXIgbGVzIGRlc2NyaXB0aW9ucyBkZSB2YWxpZGF0aW9uLCBmb3Vybml0IHNldWxlbWVudCBsZSBub21icmUgZGUgdmFsaWRhdGlvbnMiCisKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzEKK21zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgorbXNnc3RyICJBZmZpY2hlciBsJ2FkcmVzc2UgZS1tYWlsIGRlIGNoYXF1ZSBhdXRldXIiCisKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKK21zZ2lkICJ3WyxpMVssaTJdXSIKK21zZ3N0ciAid1ssaTFbLGkyXV0iCisKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKK21zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCittc2dzdHIgIkNvdXBlciBsZXMgbGlnbmVzIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6OQorbXNnaWQgIiIKKyJnaXQgc2hvdy1icmFuY2ggWy1hfC0tYWxsXSBbLXJ8LS1yZW1vdGVzXSBbLS10b3BvLW9yZGVyIHwgLS1kYXRlLW9yZGVyXSBbLS0iCisiY3VycmVudF0gWy0tY29sb3JbPTx3aGVuPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgLS0iCisiaW5kZXBlbmRlbnQgfCAtLW1lcmdlLWJhc2VdIFstLW5vLW5hbWUgfCAtLXNoYTEtbmFtZV0gWy0tdG9waWNzXSBbKDxyZXY+IHwgIgorIjxnbG9iPikuLi5dIgorbXNnc3RyICJnaXQgc2hvdy1icmFuY2ggWy1hfC0tYWxsXSBbLXJ8LS1yZW1vdGVzXSBbLS10b3BvLW9yZGVyIHwgLS1kYXRlLW9yZGVyXSBbLS1jdXJyZW50XSBbLS1jb2xvcls9PHF1YW5kPl0gfCAtLW5vLWNvbG9yXSBbLS1zcGFyc2VdIFstLW1vcmU9PG4+IHwgLS1saXN0IHwgLS1pbmRlcGVuZGVudCB8IC0tbWVyZ2UtYmFzZV0gWy0tbm8tbmFtZSB8IC0tc2hhMS1uYW1lXSBbLS10b3BpY3NdIFsoPHLDqXZpc2lvbj4gfCA8Z2xvYj4pLi4uXSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjEwCittc2dpZCAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPGJhc2U+XV0gWy0tbGlzdF0gWzxyZWY+XSIKK21zZ3N0ciAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPGJhc2U+XV0gWy0tbGlzdF0gWzxyw6lmw6lyZW5jZT5dIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUwCittc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgYnJhbmNoZXMgZGUgc3VpdmkgZGlzdGFudGVzIGV0IGxlcyBicmFuY2hlcyBsb2NhbGVzIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUyCittc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCittc2dzdHIgImFmZmljaGVyIGxlcyBicmFuY2hlcyBkZSBzdWl2aSBkaXN0YW50ZXMiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTQKK21zZ2lkICJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIgorbXNnc3RyICJjb3VsZXVyICcqISstJyBjb3JyZXNwb25kYW50IMOgIGxhIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTYKK21zZ2lkICJzaG93IDxuPiBtb3JlIGNvbW1pdHMgYWZ0ZXIgdGhlIGNvbW1vbiBhbmNlc3RvciIKK21zZ3N0ciAiYWZmaWNoZXIgPG4+IHZhbGlkYXRpb25zIGRlIHBsdXMgYXByw6hzIGwnYW5jw6p0cmUgY29tbXVuIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU4Cittc2dpZCAic3lub255bSB0byBtb3JlPS0xIgorbXNnc3RyICJzeW5vbnltZSBkZSBtb3JlPS0xIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU5Cittc2dpZCAic3VwcHJlc3MgbmFtaW5nIHN0cmluZ3MiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MQorbXNnaWQgImluY2x1ZGUgdGhlIGN1cnJlbnQgYnJhbmNoIgorbXNnc3RyICJpbmNsdXJlIGxhIGJyYW5jaGUgY291cmFudGUiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjMKK21zZ2lkICJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiCittc2dzdHIgIm5vbW1lciBsZXMgdmFsaWRhdGlvbnMgYXZlYyBsZXVycyBub21zIGQnb2JqZXQiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjUKK21zZ2lkICJzaG93IHBvc3NpYmxlIG1lcmdlIGJhc2VzIgorbXNnc3RyICJhZmZpY2hlciBsZXMgYmFzZXMgcG9zc2libGVzIGRlIGZ1c2lvbiIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NworbXNnaWQgInNob3cgcmVmcyB1bnJlYWNoYWJsZSBmcm9tIGFueSBvdGhlciByZWYiCittc2dzdHIgImFmZmljaGVyIGxlcyByw6lmw6lyZW5jZXMgbm9uIGFjY2Vzc2libGVzIGRlcHVpcyB0b3V0ZSBhdXRyZSByw6lmw6lyZW5jZSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OQorbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIHZhbGlkYXRpb25zIGRhbnMgbCdvcmRyZSB0b3BvbG9naXF1ZSIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MQorbXNnaWQgInNob3cgb25seSBjb21taXRzIG5vdCBvbiB0aGUgZmlyc3QgYnJhbmNoIgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIHZhbGlkYXRpb25zIHF1aSBuZSBzb250IHBhcyBzdXIgbGEgcHJlbWnDqHJlIGJyYW5jaGUiCisKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzMKK21zZ2lkICJzaG93IG1lcmdlcyByZWFjaGFibGUgZnJvbSBvbmx5IG9uZSB0aXAiCittc2dzdHIgImFmZmljaGVyIGxlcyBmdXNpb25zIGFjY2Vzc2libGVzIGRlcHVpcyB1bmUgc2V1bGUgcG9pbnRlIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc1Cittc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgorbXNnc3RyICJhZmZpY2hlciBsZXMgdmFsaWRhdGlvbnMgb8O5IGF1Y3VuIHBhcmVudCBuZSB2aWVudCBhdmFudCBzZXMgZW5mYW50cyIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NworbXNnaWQgIjxuPlssPGJhc2U+XSIKK21zZ3N0ciAiPG4+Wyw8YmFzZT5dIgorCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4Cittc2dpZCAic2hvdyA8bj4gbW9zdCByZWNlbnQgcmVmLWxvZyBlbnRyaWVzIHN0YXJ0aW5nIGF0IGJhc2UiCittc2dzdHIgImFmZmljaGVyIGxlcyA8bj4gcGx1cyByw6ljZW50ZXMgZW50csOpZXMgZGUgcmVmLWxvZyBlbiBjb21tZW7Dp2FudCDDoCBsYSBiYXNlIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTAKK21zZ2lkICIiCisiZ2l0IHNob3ctcmVmIFstcXwtLXF1aWV0XSBbLS12ZXJpZnldIFstLWhlYWRdIFstZHwtLWRlcmVmZXJlbmNlXSBbLXN8LS0iCisiaGFzaFs9PG4+XV0gWy0tYWJicmV2Wz08bj5dXSBbLS10YWdzXSBbLS1oZWFkc10gWy0tXSBbcGF0dGVybipdICIKK21zZ3N0ciAiZ2l0IHNob3ctcmVmIFstcXwtLXF1aWV0XSBbLS12ZXJpZnldIFstLWhlYWRdIFstZHwtLWRlcmVmZXJlbmNlXSBbLXN8LS1oYXNoWz08bj5dXSBbLS1hYmJyZXZbPTxuPl1dIFstLXRhZ3NdIFstLWhlYWRzXSBbLS1dIFttb3RpZipdICIKKworIzogYnVpbHRpbi9zaG93LXJlZi5jOjExCittc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKK21zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9bW90aWZdIDwgbGlzdGUtcsOpZsOpcmVuY2VzIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1Cittc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyDDqXRpcXVldHRlcyAocGV1dCDDqnRyZSBjb21iaW7DqSBhdmVjIGRlcyB0w6p0ZXMpIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY2Cittc2dpZCAib25seSBzaG93IGhlYWRzIChjYW4gYmUgY29tYmluZWQgd2l0aCB0YWdzKSIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlcyB0w6p0ZXMgKHBldXQgw6p0cmUgY29tYmluw6kgYXZlYyBkZXMgw6l0aXF1ZXR0ZXMpIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3Cittc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKK21zZ3N0ciAidsOpcmlmaWNhdGlvbiBkZSByw6lmw6lyZW5jZSBwbHVzIHN0cmljdGUsIHJlcXVpZXJ0IHVuIGNoZW1pbiBkZSByw6lmw6lyZW5jZSBleGFjdCIKKworIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCittc2dzdHIgImFmZmljaGVyIGxhIHLDqWbDqXJlbmNlIEhFQUQiCisKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzQKK21zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGludG8gb2JqZWN0IElEcyIKK21zZ3N0ciAiZMOpcsOpZsOpcmVuY2VyIGxlcyDDqXRpcXVldHRlcyBlbiBJRHMgZCdvYmpldCIKKworIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKK21zZ3N0ciAiYWZmaWNoZXIgc2V1bGVtZW50IGxlIGhhY2hhZ2UgU0hBMSBlbiB1dGlsaXNhbnQgPG4+IGNoaWZmcmVzIgorCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCittc2dpZCAiZG8gbm90IHByaW50IHJlc3VsdHMgdG8gc3Rkb3V0ICh1c2VmdWwgd2l0aCAtLXZlcmlmeSkiCittc2dzdHIgIm5lIHBhcyBhZmZpY2hlciBsZXMgcsOpc3VsdGF0cyBzdXIgbGEgc29ydGllIHN0YW5kYXJkIChwcmF0aXF1ZSBhdmVjIC0tdmVyaWZ5KSIKKworIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCittc2dzdHIgImFmZmljaGVyIGxlcyByw6lmw6lyZW5jZXMgZGUgbCdlbnRyw6llIHN0YW5kYXJkIHF1aSBuZSBzb250IHBhcyBkYW5zIGxlIGTDqXDDtHQgbG9jYWwiCisKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NworbXNnaWQgImdpdCBzeW1ib2xpYy1yZWYgW29wdGlvbnNdIG5hbWUgW3JlZl0iCittc2dzdHIgImdpdCBzeW1ib2xpYy1yZWYgW29wdGlvbnNdIG5vbSBbcsOpZsOpcmVuY2VdIgorCisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjgKK21zZ2lkICJnaXQgc3ltYm9saWMtcmVmIC1kIFstcV0gbmFtZSIKK21zZ3N0ciAiZ2l0IHN5bWJvbGljLXJlZiAtZCBbLXFdIG5vbSIKKworIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MAorbXNnaWQgInN1cHByZXNzIGVycm9yIG1lc3NhZ2UgZm9yIG5vbi1zeW1ib2xpYyAoZGV0YWNoZWQpIHJlZnMiCittc2dzdHIgInN1cHByaW1lciBsZSBtZXNzYWdlIGQnZXJyZXVyIHBvdXIgdW5lIHLDqWbDqXJlbmNlIG5vbiBzeW1ib2xpcXVlIChkw6l0YWNow6llKSIKKworIzogYnVpbHRpbi9zeW1ib2xpYy1yZWYuYzo0MQorbXNnaWQgImRlbGV0ZSBzeW1ib2xpYyByZWYiCittc2dzdHIgInN1cHByaW1lciBsYSByw6lmw6lyZW5jZSBzeW1ib2xpcXVlIgorCisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQyCittc2dpZCAic2hvcnRlbiByZWYgb3V0cHV0IgorbXNnc3RyICJyYWNjb3VyY2lyIGwnYWZmaWNoYWdlIGRlIGxhIHLDqWbDqXJlbmNlIgorCisjOiBidWlsdGluL3N5bWJvbGljLXJlZi5jOjQzIGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjE4Cittc2dpZCAicmVhc29uIgorbXNnc3RyICJyYWlzb24iCisKKyM6IGJ1aWx0aW4vc3ltYm9saWMtcmVmLmM6NDMgYnVpbHRpbi91cGRhdGUtcmVmLmM6MTgKK21zZ2lkICJyZWFzb24gb2YgdGhlIHVwZGF0ZSIKK21zZ3N0ciAicmFpc29uIGRlIGxhIG1pc2Ugw6Agam91ciIKKworIzogYnVpbHRpbi90YWcuYzoyMgorbXNnaWQgIiIKKyJnaXQgdGFnIFstYXwtc3wtdSA8a2V5LWlkPl0gWy1mXSBbLW0gPG1zZz58LUYgPGZpbGU+XSA8dGFnbmFtZT4gWzxoZWFkPl0iCittc2dzdHIgImdpdCB0YWcgWy1hfC1zfC11IDxpZC1jbMOpPl0gWy1mXSBbLW0gPG1zZz58LUYgPGZpbGU+XSA8bm9tw6l0aXF1ZXR0ZT4gWzxoZWFkPl0iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjMKK21zZ2lkICJnaXQgdGFnIC1kIDx0YWduYW1lPi4uLiIKK21zZ3N0ciAiZ2l0IHRhZyAtZCA8bm9tw6l0aXF1ZXR0ZT4uLi4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjQKK21zZ2lkICIiCisiZ2l0IHRhZyAtbCBbLW5bPG51bT5dXSBbLS1jb250YWlucyA8Y29tbWl0Pl0gWy0tcG9pbnRzLWF0IDxvYmplY3Q+XSBcbiIKKyJcdFx0WzxwYXR0ZXJuPi4uLl0iCittc2dzdHIgIiIKKyJnaXQgdGFnIC1sIFstbls8bnVtPl1dIFstLWNvbnRhaW5zIDxjb21taXQ+XSBbLS1wb2ludHMtYXQgPG9iamV0Pl0gXG4iCisiXHRcdFs8bW90aWY+Li4uXSIKKworIzogYnVpbHRpbi90YWcuYzoyNgorbXNnaWQgImdpdCB0YWcgLXYgPHRhZ25hbWU+Li4uIgorbXNnc3RyICJnaXQgdGFnIC12IDxub23DqXRpcXVldHRlPi4uLiIKKworIzogYnVpbHRpbi90YWcuYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IGF0ICclcyciCittc2dzdHIgIm9iamV0IG1hbGZvcm3DqSDDoCAnJXMnIgorCisjOiBidWlsdGluL3RhZy5jOjIwNworIywgYy1mb3JtYXQKK21zZ2lkICJ0YWcgbmFtZSB0b28gbG9uZzogJS4qcy4uLiIKK21zZ3N0ciAibm9tIGQnw6l0aXF1ZXR0ZSB0cm9wIGxvbmcgOiAlLipzLi4uIgorCisjOiBidWlsdGluL3RhZy5jOjIxMgorIywgYy1mb3JtYXQKK21zZ2lkICJ0YWcgJyVzJyBub3QgZm91bmQuIgorbXNnc3RyICLDqXRpcXVldHRlICclcycgbm9uIHRyb3V2w6llLiIKKworIzogYnVpbHRpbi90YWcuYzoyMjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiRGVsZXRlZCB0YWcgJyVzJyAod2FzICVzKVxuIgorbXNnc3RyICLDiXRpcXVldHRlICclcycgc3VwcHJpbcOpZSAoZWxsZSDDqXRhaXQgJXMpXG4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNvdWxkIG5vdCB2ZXJpZnkgdGhlIHRhZyAnJXMnIgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHbDqXJpZmllciBsJ8OpdGlxdWV0dGUgJyVzJyIKKworIzogYnVpbHRpbi90YWcuYzoyNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiIgorIlxuIgorIldyaXRlIGEgdGFnIG1lc3NhZ2VcbiIKKyJMaW5lcyBzdGFydGluZyB3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLlxuIgorbXNnc3RyICIiCisiXG4iCisiw4ljcmlyZSB1biBtZXNzYWdlIHBvdXIgbCfDqXRpcXVldHRlXG4iCisiTGVzIGxpZ25lcyBjb21tZW7Dp2FudCBwYXIgJyVjJyBzZXJvbnQgaWdub3LDqWVzLlxuIgorCisjOiBidWlsdGluL3RhZy5jOjI1MworIywgYy1mb3JtYXQKK21zZ2lkICIiCisiXG4iCisiV3JpdGUgYSB0YWcgbWVzc2FnZVxuIgorIkxpbmVzIHN0YXJ0aW5nIHdpdGggJyVjJyB3aWxsIGJlIGtlcHQ7IHlvdSBtYXkgcmVtb3ZlIHRoZW0geW91cnNlbGYgaWYgeW91ICIKKyJ3YW50IHRvLlxuIgorbXNnc3RyICIiCisiXG4iCisiw4ljcmlyZSB1biBtZXNzYWdlIHBvdXIgbCfDqXRpcXVldHRlXG4iCisiTGVzIGxpZ25lcyBjb21tZW7Dp2FudCBwYXIgJyVjJyBzZXJvbnQgZ2FyZMOpZXMgOyB2b3VzIHBvdXZleiBsZXMgcmV0aXJlciB2b3VzLW3Dqm1lIHNpIHZvdXMgbGUgc291aGFpdGV6LlxuIgorCisjOiBidWlsdGluL3RhZy5jOjI5MgorbXNnaWQgInVuYWJsZSB0byBzaWduIHRoZSB0YWciCittc2dzdHIgImltcG9zc2libGUgZGUgc2lnbmVyIGwnw6l0aXF1ZXR0ZSIKKworIzogYnVpbHRpbi90YWcuYzoyOTQKK21zZ2lkICJ1bmFibGUgdG8gd3JpdGUgdGFnIGZpbGUiCittc2dzdHIgImltcG9zc2libGUgZCfDqWNyaXJlIGxlIGZpY2hpZXIgZCfDqXRpcXVldHRlcyIKKworIzogYnVpbHRpbi90YWcuYzozMTkKK21zZ2lkICJiYWQgb2JqZWN0IHR5cGUuIgorbXNnc3RyICJtYXV2YWlzIHR5cGUgZCdvYmpldC4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MzMyCittc2dpZCAidGFnIGhlYWRlciB0b28gYmlnLiIKK21zZ3N0ciAiZW4tdMOqdGUgZCfDqXRpcXVldHRlIHRyb3AgZ3Jvcy4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6MzY4Cittc2dpZCAibm8gdGFnIG1lc3NhZ2U/IgorbXNnc3RyICJwYXMgZGUgbWVzc2FnZSBwb3VyIGwnw6l0aXF1ZXR0ZSA/IgorCisjOiBidWlsdGluL3RhZy5jOjM3NAorIywgYy1mb3JtYXQKK21zZ2lkICJUaGUgdGFnIG1lc3NhZ2UgaGFzIGJlZW4gbGVmdCBpbiAlc1xuIgorbXNnc3RyICJMZSBtZXNzYWdlIHBvdXIgbCfDqXRpcXVldHRlIGEgw6l0w6kgbGFpc3PDqSBkYW5zICVzXG4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDIzCittc2dpZCAic3dpdGNoICdwb2ludHMtYXQnIHJlcXVpcmVzIGFuIG9iamVjdCIKK21zZ3N0ciAibGUgY29tbXV0YXRldXIgJ3BvaW50cy1hdCcgcmVxdWllcnQgdW4gb2JqZXQiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDI1CisjLCBjLWZvcm1hdAorbXNnaWQgIm1hbGZvcm1lZCBvYmplY3QgbmFtZSAnJXMnIgorbXNnc3RyICJub20gZCdvYmpldCBtYWxmb3Jtw6kgJyVzJyIKKworIzogYnVpbHRpbi90YWcuYzo0NDUKK21zZ2lkICJsaXN0IHRhZyBuYW1lcyIKK21zZ3N0ciAiYWZmaWNoZXIgbGVzIG5vbXMgZGVzIMOpdGlxdWV0dGVzIgorCisjOiBidWlsdGluL3RhZy5jOjQ0NworbXNnaWQgInByaW50IDxuPiBsaW5lcyBvZiBlYWNoIHRhZyBtZXNzYWdlIgorbXNnc3RyICJhZmZpY2hlIDxuPiBsaWduZXMgZGUgY2hhcXVlIG1lc3NhZ2UgZCfDqXRpcXVldHRlIgorCisjOiBidWlsdGluL3RhZy5jOjQ0OQorbXNnaWQgImRlbGV0ZSB0YWdzIgorbXNnc3RyICJzdXBwcmltZXIgZGVzIMOpdGlxdWV0dGVzIgorCisjOiBidWlsdGluL3RhZy5jOjQ1MAorbXNnaWQgInZlcmlmeSB0YWdzIgorbXNnc3RyICJ2w6lyaWZpZXIgZGVzIMOpdGlxdWV0dGVzIgorCisjOiBidWlsdGluL3RhZy5jOjQ1MgorbXNnaWQgIlRhZyBjcmVhdGlvbiBvcHRpb25zIgorbXNnc3RyICJPcHRpb25zIGRlIGNyw6lhdGlvbiBkZSBsJ8OpdGlxdWV0dGUiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDU0Cittc2dpZCAiYW5ub3RhdGVkIHRhZywgbmVlZHMgYSBtZXNzYWdlIgorbXNnc3RyICLDqXRpcXVldHRlIGFubm90w6llLCBuw6ljZXNzaXRlIHVuIG1lc3NhZ2UiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDU2Cittc2dpZCAidGFnIG1lc3NhZ2UiCittc2dzdHIgIm1lc3NhZ2UgcG91ciBsJ8OpdGlxdWV0dGUiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDU4Cittc2dpZCAiYW5ub3RhdGVkIGFuZCBHUEctc2lnbmVkIHRhZyIKK21zZ3N0ciAiw6l0aXF1ZXR0ZSBhbm5vdMOpZSBldCBzaWduw6llIGF2ZWMgR1BHIgorCisjOiBidWlsdGluL3RhZy5jOjQ2MgorbXNnaWQgInVzZSBhbm90aGVyIGtleSB0byBzaWduIHRoZSB0YWciCittc2dzdHIgInV0aWxpc2VyIHVuZSBhdXRyZSBjbMOpIHBvdXIgc2lnbmVyIGwnw6l0aXF1ZXR0ZSIKKworIzogYnVpbHRpbi90YWcuYzo0NjMKK21zZ2lkICJyZXBsYWNlIHRoZSB0YWcgaWYgZXhpc3RzIgorbXNnc3RyICJyZW1wbGFjZXIgbCfDqXRpcXVldHRlIHNpIGVsbGUgZXhpc3RlIgorCisjOiBidWlsdGluL3RhZy5jOjQ2NAorbXNnaWQgInNob3cgdGFnIGxpc3QgaW4gY29sdW1ucyIKK21zZ3N0ciAiYWZmaWNoZXIgbGEgbGlzdGUgZGVzIMOpdGlxdWV0dGVzIHNvdXMgZm9ybWUgZGUgY29sb25uZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDY2Cittc2dpZCAiVGFnIGxpc3Rpbmcgb3B0aW9ucyIKK21zZ3N0ciAiT3B0aW9ucyBkJ2FmZmljaGFnZSBkZXMgw6l0aXF1ZXR0ZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NDY5Cittc2dpZCAicHJpbnQgb25seSB0YWdzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIMOpdGlxdWV0dGVzIHF1aSBjb250aWVubmVudCBsYSB2YWxpZGF0aW9uIgorCisjOiBidWlsdGluL3RhZy5jOjQ3NQorbXNnaWQgInByaW50IG9ubHkgdGFncyBvZiB0aGUgb2JqZWN0IgorbXNnc3RyICJhZmZpY2hlciBzZXVsZW1lbnQgbGVzIMOpdGlxdWV0dGVzIGRlIGwnb2JqZXQiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTA0Cittc2dpZCAiLS1jb2x1bW4gYW5kIC1uIGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIi0tY29sdW1uIGV0IC1uIHNvbnQgaW5jb21wYXRpYmxlcyIKKworIzogYnVpbHRpbi90YWcuYzo1MjEKK21zZ2lkICItbiBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgorbXNnc3RyICJsJ29wdGlvbiAtbiBlc3QgYXV0b3Jpc8OpZSBzZXVsZW1lbnQgYXZlYyAtbC4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTIzCittc2dpZCAiLS1jb250YWlucyBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgorbXNnc3RyICJsJ29wdGlvbiAtLWNvbnRhaW5zIGVzdCBhdXRvcmlzw6llIHNldWxlbWVudCBhdmVjIC1sLiIKKworIzogYnVpbHRpbi90YWcuYzo1MjUKK21zZ2lkICItLXBvaW50cy1hdCBvcHRpb24gaXMgb25seSBhbGxvd2VkIHdpdGggLWwuIgorbXNnc3RyICJsJ29wdGlvbiAtLXBvaW50cy1hdCBlc3QgYXV0b3Jpc8OpZSBzZXVsZW1lbnQgYXZlYyAtbC4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTMzCittc2dpZCAib25seSBvbmUgLUYgb3IgLW0gb3B0aW9uIGlzIGFsbG93ZWQuIgorbXNnc3RyICJ1bmUgc2V1bGUgb3B0aW9uIC1GIG91IC1tIGVzdCBhdXRvcmlzw6llLiIKKworIzogYnVpbHRpbi90YWcuYzo1NTMKK21zZ2lkICJ0b28gbWFueSBwYXJhbXMiCittc2dzdHIgInRyb3AgZGUgcGFyYW3DqHRyZXMiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTU5CisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGFnIG5hbWUuIgorbXNnc3RyICInJXMnIG4nZXN0IHBhcyB1biBub20gZCfDqXRpcXVldHRlIHZhbGlkZS4iCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTY0CisjLCBjLWZvcm1hdAorbXNnaWQgInRhZyAnJXMnIGFscmVhZHkgZXhpc3RzIgorbXNnc3RyICJsJ8OpdGlxdWV0dGUgJyVzJyBleGlzdGUgZMOpasOgIgorCisjOiBidWlsdGluL3RhZy5jOjU4MgorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IGxvY2sgdGhlIHJlZiIKK21zZ3N0ciAiJXMgOiBpbXBvc3NpYmxlIGRlIHZlcnJvdWlsbGVyIGxhIHLDqWbDqXJlbmNlIgorCisjOiBidWlsdGluL3RhZy5jOjU4NAorIywgYy1mb3JtYXQKK21zZ2lkICIlczogY2Fubm90IHVwZGF0ZSB0aGUgcmVmIgorbXNnc3RyICIlcyA6IGltcG9zc2libGUgZGUgbWV0dHJlIMOgIGpvdXIgbGEgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vdGFnLmM6NTg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlVwZGF0ZWQgdGFnICclcycgKHdhcyAlcylcbiIKK21zZ3N0ciAiw4l0aXF1ZXR0ZSAnJXMnIG1pc2Ugw6Agam91ciAoZWxsZSDDqXRhaXQgJXMpXG4iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NDAxCittc2dpZCAiZ2l0IHVwZGF0ZS1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpbGU+Li4uXSIKK21zZ3N0ciAiZ2l0IHVwZGF0ZS1pbmRleCBbb3B0aW9uc10gWy0tXSBbPGZpY2hpZXI+Li4uXSIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MTgKK21zZ2lkICJjb250aW51ZSByZWZyZXNoIGV2ZW4gd2hlbiBpbmRleCBuZWVkcyB1cGRhdGUiCittc2dzdHIgImNvbnRpbnVlciBkZSByYWZyYcOuY2hpciBtw6ptZSBzaSBsJ2luZGV4IGEgYmVzb2luIGQndW5lIG1pc2Ugw6Agam91ciIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjEKK21zZ2lkICJyZWZyZXNoOiBpZ25vcmUgc3VibW9kdWxlcyIKK21zZ3N0ciAicmFmcmHDrmNoaXIgOiBpZ25vcmVyIGxlcyBzb3VzLW1vZHVsZXMiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzI0Cittc2dpZCAiZG8gbm90IGlnbm9yZSBuZXcgZmlsZXMiCittc2dzdHIgIm5lIHBhcyBpZ25vcmVyIGxlcyBub3V2ZWF1eCBmaWNoaWVycyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjYKK21zZ2lkICJsZXQgZmlsZXMgcmVwbGFjZSBkaXJlY3RvcmllcyBhbmQgdmljZS12ZXJzYSIKK21zZ3N0ciAibGFpc3NlciBsZXMgZmljaGllcnMgcmVtcGxhY2VyIGRlcyByw6lwZXJ0b2lyZXMgZXQgdmljZS12ZXJzYSIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MjgKK21zZ2lkICJub3RpY2UgZmlsZXMgbWlzc2luZyBmcm9tIHdvcmt0cmVlIgorbXNnc3RyICJhdmlzZXIgZGVzIGZpY2hpZXJzIG1hbnF1YW50cyBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzMwCittc2dpZCAicmVmcmVzaCBldmVuIGlmIGluZGV4IGNvbnRhaW5zIHVubWVyZ2VkIGVudHJpZXMiCittc2dzdHIgInJhZnJhw65jaGlyIG3Dqm1lIHNpIGwnaW5kZXggY29udGllbnQgZGVzIGVudHLDqWVzIG5vbiBmdXNpb25uw6llcyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzMKK21zZ2lkICJyZWZyZXNoIHN0YXQgaW5mb3JtYXRpb24iCittc2dzdHIgInJhZnJhw65jaGlyIGwnaW5mb3JtYXRpb24gZGUgc3RhdCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3MzcKK21zZ2lkICJsaWtlIC0tcmVmcmVzaCwgYnV0IGlnbm9yZSBhc3N1bWUtdW5jaGFuZ2VkIHNldHRpbmciCittc2dzdHIgImNvbW1lIC0tcmVmcmVzaCwgbWFpcyBlbiBpZ25vcmFudCBsJ29wdGlvbiBhc3N1bWUtdW5jaGFuZ2VkIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MQorbXNnaWQgIjxtb2RlPiA8b2JqZWN0PiA8cGF0aD4iCittc2dzdHIgIjxtb2RlPiA8b2JqZXQ+IDxjaGVtaW4+IgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0MgorbXNnaWQgImFkZCB0aGUgc3BlY2lmaWVkIGVudHJ5IHRvIHRoZSBpbmRleCIKK21zZ3N0ciAiYWpvdXRlciBsJ2VudHLDqWUgc3DDqWNpZmnDqWUgZGFucyBsJ2luZGV4IgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NgorbXNnaWQgIigrLy0peCIKK21zZ3N0ciAiKCsvLSl4IgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc0NworbXNnaWQgIm92ZXJyaWRlIHRoZSBleGVjdXRhYmxlIGJpdCBvZiB0aGUgbGlzdGVkIGZpbGVzIgorbXNnc3RyICJvdXRyZXBhc3NlciBsZSBiaXQgZXjDqWN1dGFibGUgcG91ciBsZXMgZmljaGllcnMgbGlzdMOpcyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTEKK21zZ2lkICJtYXJrIGZpbGVzIGFzIFwibm90IGNoYW5naW5nXCIiCittc2dzdHIgIm1hcnF1ZXIgbGVzIGZpY2hpZXJzIGNvbW1lIFwibm9uIGNoYW5nZWFudHNcIiIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTQKK21zZ2lkICJjbGVhciBhc3N1bWVkLXVuY2hhbmdlZCBiaXQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NTcKK21zZ2lkICJtYXJrIGZpbGVzIGFzIFwiaW5kZXgtb25seVwiIgorbXNnc3RyICJtYXJxdWVyIGxlcyBmaWNoaWVycyBjb21tZSBcImluZGV4IHNldWxlbWVudFwiIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2MAorbXNnaWQgImNsZWFyIHNraXAtd29ya3RyZWUgYml0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzYzCittc2dpZCAiYWRkIHRvIGluZGV4IG9ubHk7IGRvIG5vdCBhZGQgY29udGVudCB0byBvYmplY3QgZGF0YWJhc2UiCittc2dzdHIgImFqb3V0ZXIgc2V1bGVtZW50IMOgIGwnaW5kZXggOyBuZSBwYXMgYWpvdXRlciBsZSBjb250ZW51IGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcyBkZXMgb2JqZXRzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc2NQorbXNnaWQgInJlbW92ZSBuYW1lZCBwYXRocyBldmVuIGlmIHByZXNlbnQgaW4gd29ya3RyZWUiCittc2dzdHIgInN1cHByaW1lciBsZXMgY2hlbWlucyBub21tw6lzIG3Dqm1lIHMnaWxzIHNvbnQgcHLDqXNlbnRzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjcKK21zZ2lkICJ3aXRoIC0tc3RkaW46IGlucHV0IGxpbmVzIGFyZSB0ZXJtaW5hdGVkIGJ5IG51bGwgYnl0ZXMiCittc2dzdHIgImF2ZWMgLS1zdGRpbiA6IGxlcyBsaWduZXMgZW4gZW50csOpZSBzb250IHRlcm1pbsOpZXMgcGFyIGRlcyBvY3RldHMgbnVscyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NjkKK21zZ2lkICJyZWFkIGxpc3Qgb2YgcGF0aHMgdG8gYmUgdXBkYXRlZCBmcm9tIHN0YW5kYXJkIGlucHV0IgorbXNnc3RyICJsaXJlIGxhIGxpc3RlIGRlcyBjaGVtaW5zIMOgIG1ldHRyZSDDoCBqb3VyIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzczCittc2dpZCAiYWRkIGVudHJpZXMgZnJvbSBzdGFuZGFyZCBpbnB1dCB0byB0aGUgaW5kZXgiCittc2dzdHIgImFqb3V0ZXIgbGVzIGVudHLDqWVzIGRlcHVpcyBsJ2VudHLDqWUgc3RhbmRhcmQgw6AgbCdpbmRleCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3NzcKK21zZ2lkICJyZXBvcHVsYXRlIHN0YWdlcyAjMiBhbmQgIzMgZm9yIHRoZSBsaXN0ZWQgcGF0aHMiCittc2dzdHIgInJlcGV1cGxlciBsZXMgw6l0YXBlcyBuwrAyIGV0IG7CsDMgcG91ciBsZXMgY2hlbWlucyBsaXN0w6lzIgorCisjOiBidWlsdGluL3VwZGF0ZS1pbmRleC5jOjc4MQorbXNnaWQgIm9ubHkgdXBkYXRlIGVudHJpZXMgdGhhdCBkaWZmZXIgZnJvbSBIRUFEIgorbXNnc3RyICJtZXR0cmUgw6Agam91ciBzZXVsZW1lbnQgbGVzIGVudHLDqWVzIHF1aSBkaWZmw6hyZW50IGRlIEhFQUQiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6Nzg1Cittc2dpZCAiaWdub3JlIGZpbGVzIG1pc3NpbmcgZnJvbSB3b3JrdHJlZSIKK21zZ3N0ciAiaWdub3JlciBsZXMgZmljaGllcnMgbWFucXVhbnRzIGRhbnMgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3ODgKK21zZ2lkICJyZXBvcnQgYWN0aW9ucyB0byBzdGFuZGFyZCBvdXRwdXQiCittc2dzdHIgImFmZmljaGVyIGxlcyBhY3Rpb25zIHN1ciBsYSBzb3J0aWUgc3RhbmRhcmQiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLWluZGV4LmM6NzkwCittc2dpZCAiKGZvciBwb3JjZWxhaW5zKSBmb3JnZXQgc2F2ZWQgdW5yZXNvbHZlZCBjb25mbGljdHMiCittc2dzdHIgIihwb3VyIHBvcmNlbGFpbmVzKSBvdWJsaWVyIGxlcyBjb25mbGl0cyBzYXV2w6lzIGV0IG5vbiByw6lzb2x1cyIKKworIzogYnVpbHRpbi91cGRhdGUtaW5kZXguYzo3OTQKK21zZ2lkICJ3cml0ZSBpbmRleCBpbiB0aGlzIGZvcm1hdCIKK21zZ3N0ciAiw6ljcmlyZSBsJ2luZGV4IGRhbnMgY2UgZm9ybWF0IgorCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzo3Cittc2dpZCAiZ2l0IHVwZGF0ZS1yZWYgW29wdGlvbnNdIC1kIDxyZWZuYW1lPiBbPG9sZHZhbD5dIgorbXNnc3RyICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gLWQgPG5vbXLDqWbDqXJlbmNlPiBbPGFuY2llbm5ldmFsZXVyPl0iCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjgKK21zZ2lkICJnaXQgdXBkYXRlLXJlZiBbb3B0aW9uc10gICAgPHJlZm5hbWU+IDxuZXd2YWw+IFs8b2xkdmFsPl0iCittc2dzdHIgImdpdCB1cGRhdGUtcmVmIFtvcHRpb25zXSAgICA8bm9tcsOpZsOpcmVuY2U+IDxub3V2ZWxsZXZhbGV1cj4gWzxhbmNpZW5uZXZhbGV1cj5dIgorCisjOiBidWlsdGluL3VwZGF0ZS1yZWYuYzoxOQorbXNnaWQgImRlbGV0ZSB0aGUgcmVmZXJlbmNlIgorbXNnc3RyICJzdXBwcmltZXIgbGEgcsOpZsOpcmVuY2UiCisKKyM6IGJ1aWx0aW4vdXBkYXRlLXJlZi5jOjIxCittc2dpZCAidXBkYXRlIDxyZWZuYW1lPiBub3QgdGhlIG9uZSBpdCBwb2ludHMgdG8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi91cGRhdGUtc2VydmVyLWluZm8uYzo2Cittc2dpZCAiZ2l0IHVwZGF0ZS1zZXJ2ZXItaW5mbyBbLS1mb3JjZV0iCittc2dzdHIgImdpdCB1cGRhdGUtc2VydmVyLWluZm8gWy0tZm9yY2VdIgorCisjOiBidWlsdGluL3VwZGF0ZS1zZXJ2ZXItaW5mby5jOjE0Cittc2dpZCAidXBkYXRlIHRoZSBpbmZvIGZpbGVzIGZyb20gc2NyYXRjaCIKK21zZ3N0ciAibWV0dHJlIMOgIGpvdXIgbGVzIGZpY2hpZXJzIGQnaW5mb3JtYXRpb24gw6AgcGFydGlyIGRlIHrDqXJvIgorCisjOiBidWlsdGluL3ZlcmlmeS1wYWNrLmM6NTYKK21zZ2lkICJnaXQgdmVyaWZ5LXBhY2sgWy12fC0tdmVyYm9zZV0gWy1zfC0tc3RhdC1vbmx5XSA8cGFjaz4uLi4iCittc2dzdHIgImdpdCB2ZXJpZnktcGFjayBbLXZ8LS12ZXJib3NlXSBbLXN8LS1zdGF0LW9ubHldIDxwYWNrPi4uLiIKKworIzogYnVpbHRpbi92ZXJpZnktcGFjay5jOjY2Cittc2dpZCAidmVyYm9zZSIKK21zZ3N0ciAidmVyYmV1eCIKKworIzogYnVpbHRpbi92ZXJpZnktcGFjay5jOjY4Cittc2dpZCAic2hvdyBzdGF0aXN0aWNzIG9ubHkiCittc2dzdHIgImFmZmljaGVyIHNldWxlbWVudCBsZXMgc3RhdGlzdGlxdWVzIgorCisjOiBidWlsdGluL3ZlcmlmeS10YWcuYzoxNworbXNnaWQgImdpdCB2ZXJpZnktdGFnIFstdnwtLXZlcmJvc2VdIDx0YWc+Li4uIgorbXNnc3RyICJnaXQgdmVyaWZ5LXRhZyBbLXZ8LS12ZXJib3NlXSA8w6l0aXF1ZXR0ZT4uLi4iCisKKyM6IGJ1aWx0aW4vdmVyaWZ5LXRhZy5jOjczCittc2dpZCAicHJpbnQgdGFnIGNvbnRlbnRzIgorbXNnc3RyICJhZmZpY2hlciBsZSBjb250ZW51IGRlIGwnw6l0aXF1ZXR0ZSIKKworIzogYnVpbHRpbi93cml0ZS10cmVlLmM6MTMKK21zZ2lkICJnaXQgd3JpdGUtdHJlZSBbLS1taXNzaW5nLW9rXSBbLS1wcmVmaXg9PHByZWZpeD4vXSIKK21zZ3N0ciAiZ2l0IHdyaXRlLXRyZWUgWy0tbWlzc2luZy1va10gWy0tcHJlZml4PTxwcsOpZml4ZT4vXSIKKworIzogYnVpbHRpbi93cml0ZS10cmVlLmM6MjYKK21zZ2lkICI8cHJlZml4Pi8iCittc2dzdHIgIjxwcsOpZml4ZT4vIgorCisjOiBidWlsdGluL3dyaXRlLXRyZWUuYzoyNworbXNnaWQgIndyaXRlIHRyZWUgb2JqZWN0IGZvciBhIHN1YmRpcmVjdG9yeSA8cHJlZml4PiIKK21zZ3N0ciAiw6ljcmlyZSBsJ29iamV0IGFyYnJlIHBvdXIgdW4gc291cy1yw6lwZXJ0b2lyZSA8cHLDqWZpeGU+IgorCisjOiBidWlsdGluL3dyaXRlLXRyZWUuYzozMAorbXNnaWQgIm9ubHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmciCittc2dzdHIgInNldWxlbWVudCB1dGlsZSBwb3VyIGxlIGTDqWJvZ2FnZSIKKworIzogZ2l0LmM6MTYKK21zZ2lkICIiCisiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKKyJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCisidG8gcmVhZCBhYm91dCBhIHNwZWNpZmljIHN1YmNvbW1hbmQgb3IgY29uY2VwdC4iCittc2dzdHIgIiIKKyInZ2l0IGhlbHAgLWEnIGV0ICdnaXQgaGVscCAtZycgbGlzdGVudCBsZXMgc291cy1jb21tYW5kZXMgZGlzcG9uaWJsZXMgZXRcbiIKKyJxdWVscXVlcyBjb25jZXB0cy4gVm9pciAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBvdSAnZ2l0IGhlbHAgPGNvbmNlcHQ+J1xuIgorInBvdXIgZW4gbGlyZSBwbHVzIMOgIHByb3BvcyBkJ3VuZSBjb21tYW5kZSBzcMOpY2lmaXF1ZSBvdSBkJ3VuIGNvbmNlcHQuIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MTU2Cittc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgorbXNnc3RyICJzYW5zIGFjdGlvbiAocsOpdHJvY29tcGF0aWJpbGl0w6kpIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MjMyCittc2dpZCAiYmUgbW9yZSB2ZXJib3NlIgorbXNnc3RyICLDqnRyZSBwbHVzIHZlcmJldXgiCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzQKK21zZ2lkICJiZSBtb3JlIHF1aWV0IgorbXNnc3RyICLDqnRyZSBwbHVzIHNpbGVuY2lldXgiCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoyNDAKK21zZ2lkICJ1c2UgPG4+IGRpZ2l0cyB0byBkaXNwbGF5IFNIQS0xcyIKK21zZ3N0ciAidXRpbGlzZXIgPG4+IGNoaWZmcmVzIHBvdXIgYWZmaWNoZXIgbGVzIFNIQS0xcyIKKworIzogY29tbW9uLWNtZHMuaDo4Cittc2dpZCAiQWRkIGZpbGUgY29udGVudHMgdG8gdGhlIGluZGV4IgorbXNnc3RyICJBam91dGVyIGxlIGNvbnRlbnUgZHUgZmljaGllciBkYW5zIGwnaW5kZXgiCisKKyM6IGNvbW1vbi1jbWRzLmg6OQorbXNnaWQgIkZpbmQgYnkgYmluYXJ5IHNlYXJjaCB0aGUgY2hhbmdlIHRoYXQgaW50cm9kdWNlZCBhIGJ1ZyIKK21zZ3N0ciAiUmVjaGVyY2hlciBkZSBtYW5pw6hyZSBiaW5haXJlIGxlIGNoYW5nZW1lbnQgcXVpIGEgaW50cm9kdWl0IHVuIGJvZ3VlIgorCisjOiBjb21tb24tY21kcy5oOjEwCittc2dpZCAiTGlzdCwgY3JlYXRlLCBvciBkZWxldGUgYnJhbmNoZXMiCittc2dzdHIgIkxpc3RlciwgY3LDqWVyIG91IHN1cHByaW1lciBkZXMgYnJhbmNoZXMiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTEKK21zZ2lkICJDaGVja291dCBhIGJyYW5jaCBvciBwYXRocyB0byB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICJFeHRyYWlyZSB1bmUgYnJhbmNoZSBvdSBkZXMgY2hlbWlucyBkYW5zIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTIKK21zZ2lkICJDbG9uZSBhIHJlcG9zaXRvcnkgaW50byBhIG5ldyBkaXJlY3RvcnkiCittc2dzdHIgIkNsb25lciB1biBkw6lww7R0IGRhbnMgdW4gbm91dmVhdSByw6lwZXJ0b2lyZSIKKworIzogY29tbW9uLWNtZHMuaDoxMworbXNnaWQgIlJlY29yZCBjaGFuZ2VzIHRvIHRoZSByZXBvc2l0b3J5IgorbXNnc3RyICJFbnJlZ2lzdHJlciBsZXMgY2hhbmdlbWVudHMgZGFucyBsZSBkw6lww7R0IgorCisjOiBjb21tb24tY21kcy5oOjE0Cittc2dpZCAiU2hvdyBjaGFuZ2VzIGJldHdlZW4gY29tbWl0cywgY29tbWl0IGFuZCB3b3JraW5nIHRyZWUsIGV0YyIKK21zZ3N0ciAiQWZmaWNoZXIgbGVzIGNoYW5nZW1lbnRzIGVudHJlIGxlcyB2YWxpZGF0aW9ucywgZW50cmUgdmFsaWRhdGlvbiBldCBjb3BpZSBkZSB0cmF2YWlsLCBldGMiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTUKK21zZ2lkICJEb3dubG9hZCBvYmplY3RzIGFuZCByZWZzIGZyb20gYW5vdGhlciByZXBvc2l0b3J5IgorbXNnc3RyICJUw6lsw6ljaGFyZ2VyIGxlcyBvYmpldHMgZXQgcsOpZsOpcmVuY2VzIGRlcHVpcyB1biBhdXRyZSBkw6lww7R0IgorCisjOiBjb21tb24tY21kcy5oOjE2Cittc2dpZCAiUHJpbnQgbGluZXMgbWF0Y2hpbmcgYSBwYXR0ZXJuIgorbXNnc3RyICJBZmZpY2hlciBsZXMgbGlnbmVzIGNvcnJlc3BvbmRhbnQgw6AgdW4gbW90aWYiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTcKK21zZ2lkICJDcmVhdGUgYW4gZW1wdHkgR2l0IHJlcG9zaXRvcnkgb3IgcmVpbml0aWFsaXplIGFuIGV4aXN0aW5nIG9uZSIKK21zZ3N0ciAiQ3LDqWVyIHVuIGTDqXDDtHQgR2l0IHZpZGUgb3UgcsOpaW5pdGlhbGlzZXIgdW4gZXhpc3RhbnQiCisKKyM6IGNvbW1vbi1jbWRzLmg6MTgKK21zZ2lkICJTaG93IGNvbW1pdCBsb2dzIgorbXNnc3RyICJBZmZpY2hlciBsJ2hpc3RvcmlxdWUgZGVzIHZhbGlkYXRpb25zIgorCisjOiBjb21tb24tY21kcy5oOjE5Cittc2dpZCAiSm9pbiB0d28gb3IgbW9yZSBkZXZlbG9wbWVudCBoaXN0b3JpZXMgdG9nZXRoZXIiCittc2dzdHIgIkpvaW5kcmUgZGV1eCBvdSBwbHVzaWV1cnMgaGlzdG9yaXF1ZXMgZGUgZMOpdmVsb3BwZW1lbnQgZW5zZW1ibGUiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjAKK21zZ2lkICJNb3ZlIG9yIHJlbmFtZSBhIGZpbGUsIGEgZGlyZWN0b3J5LCBvciBhIHN5bWxpbmsiCittc2dzdHIgIkTDqXBsYWNlciBvdSByZW5vbW1lciB1biBmaWNoaWVyLCB1biByw6lwZXJ0b2lyZSwgb3UgdW4gbGllbiBzeW1ib2xpcXVlIgorCisjOiBjb21tb24tY21kcy5oOjIxCittc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCittc2dzdHIgIlJhcGF0cmllciBldCBmdXNpb25uZXIgYXZlYyB1biBhdXRyZSBkw6lww7R0IG91IHVuZSBicmFuY2hlIGxvY2FsZSIKKworIzogY29tbW9uLWNtZHMuaDoyMgorbXNnaWQgIlVwZGF0ZSByZW1vdGUgcmVmcyBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgb2JqZWN0cyIKK21zZ3N0ciAiTWV0dHJlIMOgIGpvdXIgbGVzIHLDqWbDqXJlbmNlcyBkaXN0YW50ZXMgYWluc2kgcXVlIGxlcyBvYmpldHMgYXNzb2Npw6lzIgorCisjOiBjb21tb24tY21kcy5oOjIzCittc2dpZCAiRm9yd2FyZC1wb3J0IGxvY2FsIGNvbW1pdHMgdG8gdGhlIHVwZGF0ZWQgdXBzdHJlYW0gaGVhZCIKK21zZ3N0ciAiUmVwb3J0ZXIgZW4gYXZhbnQgbGVzIHZhbGlkYXRpb25zIGxvY2FsZXMgZGFucyBsYSB0w6p0ZSBlbiBhbW9udCBtaXNlIMOgIGpvdXIiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjQKK21zZ2lkICJSZXNldCBjdXJyZW50IEhFQUQgdG8gdGhlIHNwZWNpZmllZCBzdGF0ZSIKK21zZ3N0ciAiUsOpaW5pdGlhbGlzZXIgbGEgSEVBRCBjb3VyYW50ZSDDoCBsJ8OpdGF0IHNww6ljaWZpw6kiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjUKK21zZ2lkICJSZW1vdmUgZmlsZXMgZnJvbSB0aGUgd29ya2luZyB0cmVlIGFuZCBmcm9tIHRoZSBpbmRleCIKK21zZ3N0ciAiU3VwcHJpbWVyIGxlcyBmaWNoaWVycyBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsIGV0IGRlIGwnaW5kZXgiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjYKK21zZ2lkICJTaG93IHZhcmlvdXMgdHlwZXMgb2Ygb2JqZWN0cyIKK21zZ3N0ciAiQWZmaWNoZXIgZGlmZsOpcmVudHMgdHlwZXMgZCdvYmplY3RzIgorCisjOiBjb21tb24tY21kcy5oOjI3Cittc2dpZCAiU2hvdyB0aGUgd29ya2luZyB0cmVlIHN0YXR1cyIKK21zZ3N0ciAiQWZmaWNoZXIgbGUgc3RhdHV0IGRlIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGNvbW1vbi1jbWRzLmg6MjgKK21zZ2lkICJDcmVhdGUsIGxpc3QsIGRlbGV0ZSBvciB2ZXJpZnkgYSB0YWcgb2JqZWN0IHNpZ25lZCB3aXRoIEdQRyIKK21zZ3N0ciAiQ3LDqWVyLCBsaXN0ZXIsIHN1cHByaW1lciBvdSB2w6lyaWZpZXIgdW4gb2JqZXQgZCfDqXRpcXVldHRlIHNpZ27DqSBhdmVjIEdQRyIKKworIzogZ2l0LWFtLnNoOjUwCittc2dpZCAiWW91IG5lZWQgdG8gc2V0IHlvdXIgY29tbWl0dGVyIGluZm8gZmlyc3QiCittc2dzdHIgIlZvdXMgZGV2ZXogZCdhYm9yZCBkw6lmaW5pciB2b3MgaW5mb3JtYXRpb25zIGRlIHZhbGlkYXRldXIiCisKKyM6IGdpdC1hbS5zaDo5NQorbXNnaWQgIiIKKyJZb3Ugc2VlbSB0byBoYXZlIG1vdmVkIEhFQUQgc2luY2UgdGhlIGxhc3QgJ2FtJyBmYWlsdXJlLlxuIgorIk5vdCByZXdpbmRpbmcgdG8gT1JJR19IRUFEIgorbXNnc3RyICIiCisiVm91cyBzZW1ibGV6IGF2b2lyIGTDqXBsYWPDqSBsYSBIRUFEIGRlcHVpcyBsZSBkZXJuaWVyIMOpY2hlYyBkZSAnYW0nLlxuIgorIlBhcyBkZSByZXRvdXIgw6AgT1JJR19IRUFEIgorCisjOiBnaXQtYW0uc2g6MTA1CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiJGNtZGxpbmUgLS1za2lwXCIgaW5zdGVhZC5cbiIKKyJUbyByZXN0b3JlIHRoZSBvcmlnaW5hbCBicmFuY2ggYW5kIHN0b3AgcGF0Y2hpbmcsIHJ1biBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCittc2dzdHIgIiIKKyJMb3JzcXVlIHZvdXMgYXVyZXogcsOpc29sdSBjZSBwcm9ibMOobWUsIGxhbmNleiBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJTaSB2b3VzIHByw6lmw6lyZXogc2F1dGVyIGNlIHBhdGNoLCBsYW5jZXogXCIkY21kbGluZSAtLXNraXBcIiDDoCBsYSBwbGFjZS5cbiIKKyJQb3VyIHJlc3RhdXJlciBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHBhdGNoYWdlLCBsYW5jZXogXCIkY21kbGluZSAtLWFib3J0XCIuIgorCisjOiBnaXQtYW0uc2g6MTIxCittc2dpZCAiQ2Fubm90IGZhbGwgYmFjayB0byB0aHJlZS13YXkgbWVyZ2UuIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJldG91cm5lciDDoCB1bmUgZnVzaW9uIDMtd2F5LiIKKworIzogZ2l0LWFtLnNoOjEzNworbXNnaWQgIlJlcG9zaXRvcnkgbGFja3MgbmVjZXNzYXJ5IGJsb2JzIHRvIGZhbGwgYmFjayBvbiAzLXdheSBtZXJnZS4iCittc2dzdHIgIkxlIGTDqXDDtHQgbidhIHBhcyBsZXMgYmxvYnMgbsOpY2Vzc2FpcmVzIHBvdXIgdW4gcmV0b3VyIMOgIHVuZSBmdXNpb24gMy13YXkuIgorCisjOiBnaXQtYW0uc2g6MTM5Cittc2dpZCAiVXNpbmcgaW5kZXggaW5mbyB0byByZWNvbnN0cnVjdCBhIGJhc2UgdHJlZS4uLiIKK21zZ3N0ciAiVXRpbGlzYXRpb24gZGUgbCdpbmZvcm1hdGlvbiBkZSBsJ2luZGV4IHBvdXIgcmVjb25zdHJ1aXJlIHVuIGFyYnJlIGRlIGJhc2UuLi4iCisKKyM6IGdpdC1hbS5zaDoxNTQKK21zZ2lkICIiCisiRGlkIHlvdSBoYW5kIGVkaXQgeW91ciBwYXRjaD9cbiIKKyJJdCBkb2VzIG5vdCBhcHBseSB0byBibG9icyByZWNvcmRlZCBpbiBpdHMgaW5kZXguIgorbXNnc3RyICIiCisiQXZlei12b3VzIMOpZGl0w6kgbGUgcGF0Y2ggw6AgbGEgbWFpbiA/XG4iCisiSWwgbmUgcydhcHBsaXF1ZSBwYXMgYXV4IGJsb2JzIGVucmVnaXN0csOpcyBkYW5zIHNvbiBpbmRleC4iCisKKyM6IGdpdC1hbS5zaDoxNjMKK21zZ2lkICJGYWxsaW5nIGJhY2sgdG8gcGF0Y2hpbmcgYmFzZSBhbmQgMy13YXkgbWVyZ2UuLi4iCittc2dzdHIgIlJldG91ciDDoCB1biBwYXRjaCBkZSBsYSBiYXNlIGV0IGZ1c2lvbiAzLXdheS4uLiIKKworIzogZ2l0LWFtLnNoOjE3OQorbXNnaWQgIkZhaWxlZCB0byBtZXJnZSBpbiB0aGUgY2hhbmdlcy4iCittc2dzdHIgIsOJY2hlYyBkZSBmdXNpb24gZGFucyBsZXMgY2hhbmdlbWVudHMuIgorCisjOiBnaXQtYW0uc2g6Mjc0Cittc2dpZCAiT25seSBvbmUgU3RHSVQgcGF0Y2ggc2VyaWVzIGNhbiBiZSBhcHBsaWVkIGF0IG9uY2UiCittc2dzdHIgIlNldWxlbWVudCB1bmUgc8OpcmllIGRlIHBhdGNoZXMgU3RHSVQgcGV1dCDDqnRyZSBhcHBsaXF1w6llIMOgIGxhIGZvaXMiCisKKyM6IGdpdC1hbS5zaDozNjEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlBhdGNoIGZvcm1hdCAkcGF0Y2hfZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuIgorbXNnc3RyICJMZSBmb3JtYXQgZGUgcGF0Y2ggJHBhdGNoX2Zvcm1hdCBuJ2VzdCBwYXMgc3VwcG9ydMOpLiIKKworIzogZ2l0LWFtLnNoOjM2MworbXNnaWQgIlBhdGNoIGZvcm1hdCBkZXRlY3Rpb24gZmFpbGVkLiIKK21zZ3N0ciAiw4ljaGVjIGRlIGTDqXRlY3Rpb24gZHUgZm9ybWF0IGR1IHBhdGNoLiIKKworIzogZ2l0LWFtLnNoOjM4OQorbXNnaWQgIiIKKyJUaGUgLWIvLS1iaW5hcnkgb3B0aW9uIGhhcyBiZWVuIGEgbm8tb3AgZm9yIGxvbmcgdGltZSwgYW5kXG4iCisiaXQgd2lsbCBiZSByZW1vdmVkLiBQbGVhc2UgZG8gbm90IHVzZSBpdCBhbnltb3JlLiIKK21zZ3N0ciAiIgorIkwnb3B0aW9uIC1iLy0tYmluYXJ5IG5lIGZhaXQgcGx1cyByaWVuIGRlcHVpcyBsb25ndGVtcHMsXG4iCisiZXQgZWxsZSBzZXJhIHN1cHByaW3DqWUuIE1lcmNpIGRlIG5lIHBsdXMgbCd1dGlsaXNlci4iCisKKyM6IGdpdC1hbS5zaDo0NzcKKyMsIHNoLWZvcm1hdAorbXNnaWQgInByZXZpb3VzIHJlYmFzZSBkaXJlY3RvcnkgJGRvdGVzdCBzdGlsbCBleGlzdHMgYnV0IG1ib3ggZ2l2ZW4uIgorbXNnc3RyICJsZSByw6lwZXJ0b2lyZSBwcsOpY8OpZGVudCBkZSByZWJhc2FnZSAkZG90ZXN0IGV4aXN0ZSB0b3Vqb3VycyBtYWlzIG1ib3ggZG9ubsOpZS4iCisKKyM6IGdpdC1hbS5zaDo0ODIKK21zZ2lkICJQbGVhc2UgbWFrZSB1cCB5b3VyIG1pbmQuIC0tc2tpcCBvciAtLWFib3J0PyIKK21zZ3N0ciAiRMOpY2lkZXotdm91cy4gLS1za2lwIG91IC0tYWJvcnQgPyIKKworIzogZ2l0LWFtLnNoOjUwOQorbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCittc2dzdHIgIlBhcyBkZSByw6lzb2x1dGlvbiBkZSBsJ29ww6lyYXRpb24gZW4gY291cnMsIG5vdXMgbmUgc29tbWVzIHBhcyBkYW5zIHVuZSByZXByaXNlLiIKKworIzogZ2l0LWFtLnNoOjU3NQorIywgc2gtZm9ybWF0Cittc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKK21zZ3N0ciAiSW5kZXggc2FsZSA6IGltcG9zc2libGUgZCdhcHBsaXF1ZXIgZGVzIHBhdGNoZXMgKHNhbGVzIDogJGZpbGVzKSIKKworIzogZ2l0LWFtLnNoOjY3OQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlBhdGNoIGlzIGVtcHR5LiAgV2FzIGl0IHNwbGl0IHdyb25nP1xuIgorIklmIHlvdSB3b3VsZCBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBpbnN0ZWFkIHJ1biBcIiRjbWRsaW5lIC0tc2tpcFwiLlxuIgorIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZyBydW4gXCIkY21kbGluZSAtLWFib3J0XCIuIgorbXNnc3RyICIiCisiTGUgcGF0Y2ggZXN0IHZpZGUuICDDiXRhaXQtaWwgbWFsIGTDqWNvdXDDqSA/XG4iCisiU2kgdm91cyBwcsOpZsOpcmV6IHNhdXRlciBjZSBwYXRjaCwgbGFuY2V6IHBsdXTDtHQgXCIkY21kbGluZSAtLXNraXBcIi5cbiIKKyJQb3VyIHJlc3RhdXJlciBsYSBicmFuY2hlIGQnb3JpZ2luZSBldCBzdG9wcGVyIGxlIHBhdGNoYWdlLCBsYW5jZXogXCIkY21kbGluZSAtLWFib3J0XCIuIgorCisjOiBnaXQtYW0uc2g6NzA2Cittc2dpZCAiUGF0Y2ggZG9lcyBub3QgaGF2ZSBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzLiIKK21zZ3N0ciAiTGUgcGF0Y2ggbidhIHBhcyBkJ2FkcmVzc2UgZS1tYWlsIHZhbGlkZS4iCisKKyM6IGdpdC1hbS5zaDo3NTMKK21zZ2lkICJjYW5ub3QgYmUgaW50ZXJhY3RpdmUgd2l0aG91dCBzdGRpbiBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbC4iCittc2dzdHIgImltcG9zc2libGUgZCfDqnRyZSBpbnRlcmFjdGlmIHNhbnMgZW50csOpZSBzdGFuZGFyZCBjb25uZWN0w6llIMOgIHVuIHRlcm1pbmFsLiIKKworIzogZ2l0LWFtLnNoOjc1NworbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKK21zZ3N0ciAiTGUgY29ycHMgZGUgbGEgdmFsaWRhdGlvbiBlc3QgOiIKKworIy4gVFJBTlNMQVRPUlM6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIFt5XSwgW25dLCBbZV0sIFt2XSBhbmQgW2FdCisjLiBpbiB5b3VyIHRyYW5zbGF0aW9uLiBUaGUgcHJvZ3JhbSB3aWxsIG9ubHkgYWNjZXB0IEVuZ2xpc2gKKyMuIGlucHV0IGF0IHRoaXMgcG9pbnQuCisjOiBnaXQtYW0uc2g6NzY0Cittc2dpZCAiQXBwbHk/IFt5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgorbXNnc3RyICJBcHBsaXF1ZXIgPyBbeV1lcy9bbl1vL1tlXWRpdC9bdl1pZXcgcGF0Y2gvW2FdY2NlcHQgYWxsICIKKworIzogZ2l0LWFtLnNoOjgwMAorIywgc2gtZm9ybWF0Cittc2dpZCAiQXBwbHlpbmc6ICRGSVJTVExJTkUiCittc2dzdHIgIkFwcGxpY2F0aW9uIDogJEZJUlNUTElORSIKKworIzogZ2l0LWFtLnNoOjgyMQorbXNnaWQgIiIKKyJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKKyJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKKyJhbHJlYWR5IGludHJvZHVjZWQgdGhlIHNhbWUgY2hhbmdlczsgeW91IG1pZ2h0IHdhbnQgdG8gc2tpcCB0aGlzIHBhdGNoLiIKK21zZ3N0ciAiIgorCisjOiBnaXQtYW0uc2g6ODI5Cittc2dpZCAiIgorIllvdSBzdGlsbCBoYXZlIHVubWVyZ2VkIHBhdGhzIGluIHlvdXIgaW5kZXhcbiIKKyJkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnPyIKK21zZ3N0ciAiIgorIlZvdXMgYXZleiB0b3Vqb3VycyBkZXMgY2hlbWlucyBub24gZnVzaW9ubsOpcyBkYW5zIHZvdHJlIGluZGV4XG4iCisiYXVyaWV6LXZvdXMgb3VibGnDqSBkZSBmYWlyZSAnZ2l0IGFkZCcgPyIKKworIzogZ2l0LWFtLnNoOjg0NQorbXNnaWQgIk5vIGNoYW5nZXMgLS0gUGF0Y2ggYWxyZWFkeSBhcHBsaWVkLiIKK21zZ3N0ciAiUGFzIGRlIGNoYW5nZW1lbnQgLS0gUGF0Y2ggZMOpasOgIGFwcGxpcXXDqS4iCisKKyM6IGdpdC1hbS5zaDo4NTUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlBhdGNoIGZhaWxlZCBhdCAkbXNnbnVtICRGSVJTVExJTkUiCittc2dzdHIgIkxlIHBhdGNoIGEgw6ljaG91w6kgw6AgJG1zZ251bSAkRklSU1RMSU5FIgorCisjOiBnaXQtYW0uc2g6ODU4CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgorIiAgICRkb3Rlc3QvcGF0Y2giCittc2dzdHIgIiIKKyJMYSBjb3BpZSBkdSBwYXRjaCBxdWkgYSDDqWNob3XDqSBzZSB0cm91dmUgZGFucyA6XG4iCisiICAgJGRvdGVzdC9wYXRjaCIKKworIzogZ2l0LWFtLnNoOjg3NgorbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCittc2dzdHIgImFwcGxpY2F0aW9uIMOgIHVuIGhpc3RvcmlxdWUgdmlkZSIKKworIzogZ2l0LWJpc2VjdC5zaDo0OAorbXNnaWQgIllvdSBuZWVkIHRvIHN0YXJ0IGJ5IFwiZ2l0IGJpc2VjdCBzdGFydFwiIgorbXNnc3RyICJWb3VzIGRldmV6IGTDqW1hcnJlciBhdmVjIFwiZ2l0IGJpc2VjdCBzdGFydFwiIgorCisjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW1ldIGFuZCBbbl0gaW4geW91cgorIy4gdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaCBpbnB1dAorIy4gYXQgdGhpcyBwb2ludC4KKyM6IGdpdC1iaXNlY3Quc2g6NTQKK21zZ2lkICJEbyB5b3Ugd2FudCBtZSB0byBkbyBpdCBmb3IgeW91IFtZL25dPyAiCittc2dzdHIgIlNvdWhhaXRlei12b3VzIHF1ZSBqZSBsZSBmYXNzZSBwb3VyIHZvdXMgW1kvbl0gPyAiCisKKyM6IGdpdC1iaXNlY3Quc2g6OTUKKyMsIHNoLWZvcm1hdAorbXNnaWQgInVucmVjb2duaXNlZCBvcHRpb246ICckYXJnJyIKK21zZ3N0ciAib3B0aW9uIGluY29ubnVlIDogJyRhcmcnIgorCisjOiBnaXQtYmlzZWN0LnNoOjk5CisjLCBzaC1mb3JtYXQKK21zZ2lkICInJGFyZycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgcmV2aXNpb24iCittc2dzdHIgIickYXJnJyBuZSBzZW1ibGUgw6p0cmUgdW5lIHLDqXZpc2lvbiB2YWxpZGUiCisKKyM6IGdpdC1iaXNlY3Quc2g6MTE3Cittc2dpZCAiQmFkIEhFQUQgLSBJIG5lZWQgYSBIRUFEIgorbXNnc3RyICJNYXV2YWlzZSBIRUFEIC0gaidhaSBiZXNvaW4gZCd1bmUgSEVBRCIKKworIzogZ2l0LWJpc2VjdC5zaDoxMzAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJDaGVja2luZyBvdXQgJyRzdGFydF9oZWFkJyBmYWlsZWQuIFRyeSAnZ2l0IGJpc2VjdCByZXNldCA8dmFsaWRicmFuY2g+Jy4iCittc2dzdHIgIkwnZXh0cmFjdGlvbiBkZSAnJHN0YXJ0X2hlYWQnIGEgw6ljaG91w6kuIEVzc2F5ZXogJ2dpdCBiaXNlY3QgcmVzZXQgPGJyYW5jaGV2YWxpZGU+Jy4iCisKKyM6IGdpdC1iaXNlY3Quc2g6MTQwCittc2dpZCAid29uJ3QgYmlzZWN0IG9uIHNlZWtlZCB0cmVlIgorbXNnc3RyICIiCisKKyM6IGdpdC1iaXNlY3Quc2g6MTQ0Cittc2dpZCAiQmFkIEhFQUQgLSBzdHJhbmdlIHN5bWJvbGljIHJlZiIKK21zZ3N0ciAiTWF1dmFpc2UgSEVBRCAtIHLDqWbDqXJlbmNlIHN5bWJvbGlxdWUgZG91dGV1c2UiCisKKyM6IGdpdC1iaXNlY3Quc2g6MTg5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJCYWQgYmlzZWN0X3dyaXRlIGFyZ3VtZW50OiAkc3RhdGUiCittc2dzdHIgIk1hdXZhaXMgYXJndW1lbnQgcG91ciBiaXNlY3Rfd3JpdGUgOiAkc3RhdGUiCisKKyM6IGdpdC1iaXNlY3Quc2g6MjE4CisjLCBzaC1mb3JtYXQKK21zZ2lkICJCYWQgcmV2IGlucHV0OiAkYXJnIgorbXNnc3RyICJNYXV2YWlzZSByw6l2aXNpb24gZW4gZW50csOpZSA6ICRhcmciCisKKyM6IGdpdC1iaXNlY3Quc2g6MjMyCittc2dpZCAiUGxlYXNlIGNhbGwgJ2Jpc2VjdF9zdGF0ZScgd2l0aCBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIgorbXNnc3RyICJNZXJjaSBkJ2FwcGVsZXIgJ2Jpc2VjdF9zdGF0ZScgYXZlYyBhdSBtb2lucyB1biBhcmd1bWVudC4iCisKKyM6IGdpdC1iaXNlY3Quc2g6MjQ0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJCYWQgcmV2IGlucHV0OiAkcmV2IgorbXNnc3RyICJNYXV2YWlzZSByw6l2aXNpb24gZW4gZW50csOpZSA6ICRyZXYiCisKKyM6IGdpdC1iaXNlY3Quc2g6MjUwCittc2dpZCAiJ2dpdCBiaXNlY3QgYmFkJyBjYW4gdGFrZSBvbmx5IG9uZSBhcmd1bWVudC4iCittc2dzdHIgIidnaXQgYmlzZWN0IGJhZCcgbidhY2NlcHRlIHF1J3VuIHNldWwgYXJndW1lbnQuIgorCisjLiBoYXZlIGJhZCBidXQgbm90IGdvb2QuICB3ZSBjb3VsZCBiaXNlY3QgYWx0aG91Z2gKKyMuIHRoaXMgaXMgbGVzcyBvcHRpbXVtLgorIzogZ2l0LWJpc2VjdC5zaDoyNzMKK21zZ2lkICJXYXJuaW5nOiBiaXNlY3Rpbmcgb25seSB3aXRoIGEgYmFkIGNvbW1pdC4iCittc2dzdHIgIkF0dGVudGlvbiA6IGJpc3NlY3Rpb24gYXZlYyBzZXVsZW1lbnQgdW5lIG1hdXZhaXNlIHZhbGlkYXRpb24uIgorCisjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW1ldIGFuZCBbbl0gaW4geW91cgorIy4gdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaCBpbnB1dAorIy4gYXQgdGhpcyBwb2ludC4KKyM6IGdpdC1iaXNlY3Quc2g6Mjc5Cittc2dpZCAiQXJlIHlvdSBzdXJlIFtZL25dPyAiCittc2dzdHIgIsOKdGVzLXZvdXMgc8O7ciBbWS9uXSA/ICIKKworIzogZ2l0LWJpc2VjdC5zaDoyODkKK21zZ2lkICIiCisiWW91IG5lZWQgdG8gZ2l2ZSBtZSBhdCBsZWFzdCBvbmUgZ29vZCBhbmQgb25lIGJhZCByZXZpc2lvbnMuXG4iCisiKFlvdSBjYW4gdXNlIFwiZ2l0IGJpc2VjdCBiYWRcIiBhbmQgXCJnaXQgYmlzZWN0IGdvb2RcIiBmb3IgdGhhdC4pIgorbXNnc3RyICIiCisiVm91cyBkZXZleiBtZSBkb25uZXIgYXUgbW9pbnMgdW5lIGJvbm5lIGV0IHVuZSBtYXV2YWlzZSByw6l2aXNpb24uXG4iCisiKFZvdXMgcG91dmV6IHV0aWxpc2VyIFwiZ2l0IGJpc2VjdCBiYWRcIiBldCBcImdpdCBiaXNlY3QgZ29vZFwiIHBvdXIgY2VsYS4pIgorCisjOiBnaXQtYmlzZWN0LnNoOjI5MgorbXNnaWQgIiIKKyJZb3UgbmVlZCB0byBzdGFydCBieSBcImdpdCBiaXNlY3Qgc3RhcnRcIi5cbiIKKyJZb3UgdGhlbiBuZWVkIHRvIGdpdmUgbWUgYXQgbGVhc3Qgb25lIGdvb2QgYW5kIG9uZSBiYWQgcmV2aXNpb25zLlxuIgorIihZb3UgY2FuIHVzZSBcImdpdCBiaXNlY3QgYmFkXCIgYW5kIFwiZ2l0IGJpc2VjdCBnb29kXCIgZm9yIHRoYXQuKSIKK21zZ3N0ciAiIgorIlZvdXMgZGV2ZXogZMOpbWFycmVyIGF2ZWMgXCJnaXQgYmlzZWN0IHN0YXJ0XCIuXG4iCisiUHVpcyB2b3VzIGRldmV6IG1lIGRvbm5lciBhdSBtb2lucyB1bmUgYm9ubmUgZXQgdW5lIG1hdXZhaXNlIHLDqXZpc2lvbi5cbiIKKyIoVm91cyBwb3V2ZXogdXRpbGlzZXIgXCJnaXQgYmlzZWN0IGJhZFwiIGV0IFwiZ2l0IGJpc2VjdCBnb29kXCIgcG91ciBjZWxhLikiCisKKyM6IGdpdC1iaXNlY3Quc2g6MzYzIGdpdC1iaXNlY3Quc2g6NDkwCittc2dpZCAiV2UgYXJlIG5vdCBiaXNlY3RpbmcuIgorbXNnc3RyICJQYXMgZGUgYmlzc2VjdGlvbiBlbiBjb3Vycy4iCisKKyM6IGdpdC1iaXNlY3Quc2g6MzcwCisjLCBzaC1mb3JtYXQKK21zZ2lkICInJGludmFsaWQnIGlzIG5vdCBhIHZhbGlkIGNvbW1pdCIKK21zZ3N0ciAiJyRpbnZhbGlkJyBuJ2VzdCBwYXMgdW5lIHZhbGlkYXRpb24gdmFsaWRlIgorCisjOiBnaXQtYmlzZWN0LnNoOjM3OQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIkNvdWxkIG5vdCBjaGVjayBvdXQgb3JpZ2luYWwgSEVBRCAnJGJyYW5jaCcuXG4iCisiVHJ5ICdnaXQgYmlzZWN0IHJlc2V0IDxjb21taXQ+Jy4iCittc2dzdHIgIiIKKyLDiWNoZWMgZCdleHRyYWN0aW9uIGRlIGxhIEhFQUQgZCdvcmlnaW5lICckYnJhbmNoJy5cbiIKKyJFc3NheWV6ICdnaXQgYmlzZWN0IHJlc2V0IDxjb21taXQ+Jy4iCisKKyM6IGdpdC1iaXNlY3Quc2g6NDA2Cittc2dpZCAiTm8gbG9nZmlsZSBnaXZlbiIKK21zZ3N0ciAiUGFzIGRlIGZpY2hpZXIgZGUgbG9nIGRvbm7DqSIKKworIzogZ2l0LWJpc2VjdC5zaDo0MDcKKyMsIHNoLWZvcm1hdAorbXNnaWQgImNhbm5vdCByZWFkICRmaWxlIGZvciByZXBsYXlpbmciCittc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSAkZmlsZSBwb3VyIHJlam91ZXIiCisKKyM6IGdpdC1iaXNlY3Quc2g6NDI0Cittc2dpZCAiPz8gd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IgorbXNnc3RyICI/PyBkZSBxdW9pIHBhcmxlei12b3VzID8iCisKKyM6IGdpdC1iaXNlY3Quc2g6NDM2CisjLCBzaC1mb3JtYXQKK21zZ2lkICJydW5uaW5nICRjb21tYW5kIgorbXNnc3RyICJsYW5jZW1lbnQgZGUgJGNvbW1hbmQiCisKKyM6IGdpdC1iaXNlY3Quc2g6NDQzCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCisiZXhpdCBjb2RlICRyZXMgZnJvbSAnJGNvbW1hbmQnIGlzIDwgMCBvciA+PSAxMjgiCittc2dzdHIgIiIKKyJsYSBiaXNzZWN0aW9uIGEgw6ljaG91w6kgOlxuIgorImxlIGNvZGUgcmV0b3VyICRyZXMgZGUgJyRjb21tYW5kJyBlc3QgPCAwIG91ID49IDEyOCIKKworIzogZ2l0LWJpc2VjdC5zaDo0NjkKK21zZ2lkICJiaXNlY3QgcnVuIGNhbm5vdCBjb250aW51ZSBhbnkgbW9yZSIKK21zZ3N0ciAibGEgYmlzc2VjdGlvbiBuZSBwZXV0IHBsdXMgY29udGludWVyIgorCisjOiBnaXQtYmlzZWN0LnNoOjQ3NQorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorImJpc2VjdCBydW4gZmFpbGVkOlxuIgorIidiaXNlY3Rfc3RhdGUgJHN0YXRlJyBleGl0ZWQgd2l0aCBlcnJvciBjb2RlICRyZXMiCittc2dzdHIgIiIKKyJsYSBiaXNzZWN0aW9uIGEgw6ljaG91w6kgOlxuIgorIidiaXNlY3Rfc3RhdGUgJHN0YXRlJyBhIHJldG91cm7DqSBsZSBjb2RlIGVycmV1ciAkcmVzIgorCisjOiBnaXQtYmlzZWN0LnNoOjQ4MgorbXNnaWQgImJpc2VjdCBydW4gc3VjY2VzcyIKK21zZ3N0ciAic3VjY8OocyBkZSBsYSBiaXNzZWN0aW9uIgorCisjOiBnaXQtcHVsbC5zaDoyMQorbXNnaWQgIiIKKyJQdWxsIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHlvdSBoYXZlIHVubWVyZ2VkIGZpbGVzLlxuIgorIlBsZWFzZSwgZml4IHRoZW0gdXAgaW4gdGhlIHdvcmsgdHJlZSwgYW5kIHRoZW4gdXNlICdnaXQgYWRkL3JtIDxmaWxlPidcbiIKKyJhcyBhcHByb3ByaWF0ZSB0byBtYXJrIHJlc29sdXRpb24sIG9yIHVzZSAnZ2l0IGNvbW1pdCAtYScuIgorbXNnc3RyICIiCisiTGUgcHVsbCBuJ2VzdCBwYXMgcG9zc2libGUgY2FyIHZvdXMgYXZleiBkZXMgZmljaGllcnMgbm9uIGZ1c2lvbm7DqXMuXG4iCisiTWVyY2kgZGUgY29ycmlnZXIgZGFucyB2b3RyZSBjb3BpZSBkZSB0cmF2YWlsLCBldCB1dGlsaXNleiBhbG9ycyAnZ2l0IGFkZC9ybSA8ZmlsZT4nXG4iCisic2kgbsOpY2Vzc2FpcmUgcG91ciBtYXJxdWVyIGNvbW1lIHLDqXNvbHUsIG91IHV0aWxpc2V6ICdnaXQgY29tbWl0IC1hJy4iCisKKyM6IGdpdC1wdWxsLnNoOjI1Cittc2dpZCAiUHVsbCBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB5b3UgaGF2ZSB1bm1lcmdlZCBmaWxlcy4iCittc2dzdHIgIkxlIHB1bGwgbidlc3QgcGFzIHBvc3NpYmxlIGNhciB2b3VzIGF2ZXogZGVzIGZpY2hpZXJzIG5vbiBmdXNpb25uw6lzLiIKKworIzogZ2l0LXB1bGwuc2g6MjAzCittc2dpZCAidXBkYXRpbmcgYW4gdW5ib3JuIGJyYW5jaCB3aXRoIGNoYW5nZXMgYWRkZWQgdG8gdGhlIGluZGV4IgorbXNnc3RyICJtaXNlIMOgIGpvdXIgZCd1bmUgYnJhbmNoZSBub24gZW5jb3JlIGNyw6nDqWUgYXZlYyBsZXMgY2hhbmdlbWVudHMgYWpvdXTDqXMgZGFucyBsJ2luZGV4IgorCisjLiBUaGUgZmV0Y2ggaW52b2x2ZWQgdXBkYXRpbmcgdGhlIGN1cnJlbnQgYnJhbmNoLgorIy4gVGhlIHdvcmtpbmcgdHJlZSBhbmQgdGhlIGluZGV4IGZpbGUgaXMgc3RpbGwgYmFzZWQgb24gdGhlCisjLiAkb3JpZ19oZWFkIGNvbW1pdCwgYnV0IHdlIGFyZSBtZXJnaW5nIGludG8gJGN1cnJfaGVhZC4KKyMuIEZpcnN0IHVwZGF0ZSB0aGUgd29ya2luZyB0cmVlIHRvIG1hdGNoICRjdXJyX2hlYWQuCisjOiBnaXQtcHVsbC5zaDoyMzUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJXYXJuaW5nOiBmZXRjaCB1cGRhdGVkIHRoZSBjdXJyZW50IGJyYW5jaCBoZWFkLlxuIgorIldhcm5pbmc6IGZhc3QtZm9yd2FyZGluZyB5b3VyIHdvcmtpbmcgdHJlZSBmcm9tXG4iCisiV2FybmluZzogY29tbWl0ICRvcmlnX2hlYWQuIgorbXNnc3RyICIiCisiQXR0ZW50aW9uIDogZmV0Y2ggYSBtaXMgw6Agam91ciBsYSB0w6p0ZSBkZSBsYSBicmFuY2hlIGNvdXJhbnRlLlxuIgorIkF0dGVudGlvbiA6IG1pc2Ugw6Agam91ciBlbiBhdmFuY2UgcmFwaWRlIGRlIHZvdHJlIGNvcGllIGRlIHRyYXZhaWxcbiIKKyJBdHRlbnRpb24gOiBkZXB1aXMgbGEgdmFsaWRhdGlvbiAkb3JpZ19oZWFkLiIKKworIzogZ2l0LXB1bGwuc2g6MjYwCittc2dpZCAiQ2Fubm90IG1lcmdlIG11bHRpcGxlIGJyYW5jaGVzIGludG8gZW1wdHkgaGVhZCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBmdXNpb25uZXIgZGUgbXVsdGlwbGVzIGJyYW5jaGVzIHN1ciB1bmUgdMOqdGUgdmlkZSIKKworIzogZ2l0LXB1bGwuc2g6MjY0Cittc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJlYmFzZXIgc3VyIGRlIG11bHRpcGxlcyBicmFuY2hlcyIKKworIzogZ2l0LXJlYmFzZS5zaDo1MworbXNnaWQgIiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCisiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcImdpdCByZWJhc2UgLS1za2lwXCIgaW5zdGVhZC5cbiIKKyJUbyBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCByZWJhc2luZywgcnVuIFwiZ2l0IHJlYmFzZSAtLWFib3J0IgorIlwiLiIKK21zZ3N0ciAiIgorIkxvcnNxdWUgdm91cyBhdXJleiByw6lzb2x1IGNlIHByb2Jsw6htZSwgbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCisiU2kgdm91cyBwcsOpZsOpcmV6IHNhdXRlciBjZSBwYXRjaCwgbGFuY2V6IFwiZ2l0IHJlYmFzZSAtLXNraXBcIiDDoCBsYSBwbGFjZS5cbiIKKyJQb3VyIGV4dHJhaXJlIGxhIGJyYW5jaGUgZCdvcmlnaW5lIGV0IHN0b3BwZXIgbGUgcmViYXNhZ2UsIGxhbmNleiBcImdpdCByZWJhc2UgLS1hYm9ydFwiLiIKKworIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKK21zZ3N0ciAiTGUgaG9vayBwcmUtcmViYXNlIGEgcmVmdXPDqSBkZSByZWJhc2VyLiIKKworIzogZ2l0LXJlYmFzZS5zaDoxNjUKK21zZ2lkICJJdCBsb29rcyBsaWtlIGdpdC1hbSBpcyBpbiBwcm9ncmVzcy4gQ2Fubm90IHJlYmFzZS4iCittc2dzdHIgIklsIHNlbWJsZSBxdWUgZ2l0LWFtIHNvaXQgZW4gY291cnMuIEltcG9zc2libGUgZGUgcmViYXNlci4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6Mjk2Cittc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgorbXNnc3RyICJMJ29wdGlvbiAtLWV4ZWMgZG9pdCDDqnRyZSB1dGlsaXPDqWUgYXZlYyBsJ29wdGlvbiAtLWludGVyYWN0aXZlIgorCisjOiBnaXQtcmViYXNlLnNoOjMwMQorbXNnaWQgIk5vIHJlYmFzZSBpbiBwcm9ncmVzcz8iCittc2dzdHIgIlBhcyBkZSByZWJhc2FnZSBlbiBjb3VycyA/IgorCisjOiBnaXQtcmViYXNlLnNoOjMxMgorbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKK21zZ3N0ciAiTCdhY3Rpb24gLS1lZGl0LXRvZG8gcGV1dCBzZXVsZW1lbnQgw6p0cmUgdXRpbGlzw6llIGxvcnMgZCd1biByZWJhc2FnZSBpbnRlcmFjdGlmLiIKKworIzogZ2l0LXJlYmFzZS5zaDozMTkKK21zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIGxpcmUgSEVBRCIKKworIzogZ2l0LXJlYmFzZS5zaDozMjIKK21zZ2lkICIiCisiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCisibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCittc2dzdHIgIiIKKyJWb3VzIGRldmV6IMOpZGl0ZXIgdG91cyBsZXMgY29uZmxpdHMgZGUgZnVzaW9uIGV0XG4iCisibGVzIG1hcnF1ZXIgY29tbWUgcsOpc29sdXMgYXZlYyBnaXQgYWRkIgorCisjOiBnaXQtcmViYXNlLnNoOjM0MAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJldmVuaXIgw6AgJGhlYWRfbmFtZSIKKworIzogZ2l0LXJlYmFzZS5zaDozNTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKKyJJIHdvbmRlciBpZiB5b3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW5vdGhlciByZWJhc2UuICBJZiB0aGF0IGlzIHRoZVxuIgorImNhc2UsIHBsZWFzZSB0cnlcbiIKKyJcdCRjbWRfbGl2ZV9yZWJhc2VcbiIKKyJJZiB0aGF0IGlzIG5vdCB0aGUgY2FzZSwgcGxlYXNlXG4iCisiXHQkY21kX2NsZWFyX3N0YWxlX3JlYmFzZVxuIgorImFuZCBydW4gbWUgYWdhaW4uICBJIGFtIHN0b3BwaW5nIGluIGNhc2UgeW91IHN0aWxsIGhhdmUgc29tZXRoaW5nXG4iCisidmFsdWFibGUgdGhlcmUuIgorbXNnc3RyICIiCisiSWwgc2VtYmxlIHF1J2lsIHkgYWl0IGTDqWrDoCB1biByw6lwZXJ0b2lyZSAkc3RhdGVfZGlyX2Jhc2UsIGV0IGplIG1lIGRlbWFuZGVcbiIKKyJzaSB2b3VzIG4nw6p0ZXMgcGFzIGF1IG1pbGlldSBkJ3VuIGF1dHJlIHJlYmFzYWdlLiAgU2kgYydlc3QgbGUgY2FzLFxuIgorIm1lcmNpIGQnZXNzYXllclxuIgorIlx0JGNtZF9saXZlX3JlYmFzZVxuIgorIlNpIMOnYSBuJ2VzdCBwYXMgbGUgY2FzLCBtZXJjaSBkZVxuIgorIlx0JGNtZF9jbGVhcl9zdGFsZV9yZWJhc2VcbiIKKyJldCByZWxhbmNlciDDoCBub3V2ZWF1LiAgSmUgbSdhcnLDqnRlIGF1IGNhcyBvw7kgdm91cyBhdXJpZXogcXVlbHF1ZSBjaG9zZVxuIgorImQnaW1wb3J0YW50IGljaS4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NDA0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgorbXNnc3RyICJpbnZhbGlkZSAkdXBzdHJlYW1fbmFtZSBlbiBhbW9udCIKKworIzogZ2l0LXJlYmFzZS5zaDo0MjgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiRvbnRvX25hbWU6IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIG1lcmdlIGJhc2VzIgorbXNnc3RyICIkb250b19uYW1lIDogaWwgeSBhIHBsdXMgZCd1bmUgYmFzZSBkZSBmdXNpb24iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NDMxIGdpdC1yZWJhc2Uuc2g6NDM1CisjLCBzaC1mb3JtYXQKK21zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgorbXNnc3RyICIkb250b19uYW1lIDogaWwgbid5IGEgcGFzIGRlIGJhc2UgZGUgZnVzaW9uIgorCisjOiBnaXQtcmViYXNlLnNoOjQ0MAorIywgc2gtZm9ybWF0Cittc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCittc2dzdHIgIk5lIHBvaW50ZSBwYXMgc3VyIHVuZSB2YWxpZGF0aW9uIHZhbGlkZSA6ICRvbnRvX25hbWUiCisKKyM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjLCBzaC1mb3JtYXQKK21zZ2lkICJmYXRhbDogbm8gc3VjaCBicmFuY2g6ICRicmFuY2hfbmFtZSIKK21zZ3N0ciAiZmF0YWwgOiBwYXMgZGUgYnJhbmNoZSA6ICRicmFuY2hfbmFtZSIKKworIzogZ2l0LXJlYmFzZS5zaDo0ODMKK21zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgorbXNnc3RyICJNZXJjaSBkZSBsZXMgdmFsaWRlciBvdSBkZSBsZXMgcmVtaXNlci4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTAxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCittc2dzdHIgIkxhIGJyYW5jaGUgY291cmFudGUgJGJyYW5jaF9uYW1lIGVzdCDDoCBqb3VyLiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MDQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKK21zZ3N0ciAiTGEgYnJhbmNoZSBjb3VyYW50ZSAkYnJhbmNoX25hbWUgZXN0IMOgIGpvdXIsIHJlYmFzYWdlIGZvcmPDqS4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKK21zZ3N0ciAiQ2hhbmdlbWVudHMgZGUgJG1iIHN1ciAkb250byA6IgorCisjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKKyM6IGdpdC1yZWJhc2Uuc2g6NTI0Cittc2dpZCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIgorbXNnc3RyICJQcmVtacOocmVtZW50LCByZXRvdXIgZGUgaGVhZCBwb3VyIHJlam91ZXIgdm90cmUgdHJhdmFpbCBwYXItZGVzc3VzLi4uIgorCisjOiBnaXQtcmViYXNlLnNoOjUzMgorIywgc2gtZm9ybWF0Cittc2dpZCAiRmFzdC1mb3J3YXJkZWQgJGJyYW5jaF9uYW1lIHRvICRvbnRvX25hbWUuIgorbXNnc3RyICIkYnJhbmNoX25hbWUgbWlzZSDDoCBqb3VyIGVuIGF2YW5jZSByYXBpZGUgc3VyICRvbnRvX25hbWUuIgorCisjOiBnaXQtc3Rhc2guc2g6NTEKK21zZ2lkICJnaXQgc3Rhc2ggY2xlYXIgd2l0aCBwYXJhbWV0ZXJzIGlzIHVuaW1wbGVtZW50ZWQiCittc2dzdHIgImdpdCBzdGFzaCBjbGVhciBhdmVjIGRlcyBwYXJhbcOodHJlcyBuJ2VzdCBwYXMgaW1wbMOpbWVudMOpIgorCisjOiBnaXQtc3Rhc2guc2g6NzQKK21zZ2lkICJZb3UgZG8gbm90IGhhdmUgdGhlIGluaXRpYWwgY29tbWl0IHlldCIKK21zZ3N0ciAiVm91cyBuJ2F2ZXogcGFzIGVuY29yZSBsYSB2YWxpZGF0aW9uIGluaXRpYWxlIgorCisjOiBnaXQtc3Rhc2guc2g6ODkKK21zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBpbmRleCBzdGF0ZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzYXV2ZXIgbCfDqXRhdCBjb3VyYW50IGRlIGwnaW5kZXgiCisKKyM6IGdpdC1zdGFzaC5zaDoxMjMgZ2l0LXN0YXNoLnNoOjEzNgorbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHdvcmt0cmVlIHN0YXRlIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHNhdXZlciBsJ8OpdGF0IGNvdXJhbnQgZGUgbGEgY29waWUgZGUgdHJhdmFpbCIKKworIzogZ2l0LXN0YXNoLnNoOjE0MAorbXNnaWQgIk5vIGNoYW5nZXMgc2VsZWN0ZWQiCittc2dzdHIgIkF1Y3VuIGNoYW5nZW1lbnQgc8OpbGVjdGlvbm7DqSIKKworIzogZ2l0LXN0YXNoLnNoOjE0MworbXNnaWQgIkNhbm5vdCByZW1vdmUgdGVtcG9yYXJ5IGluZGV4IChjYW4ndCBoYXBwZW4pIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsJ2luZGV4IHRlbXBvcmFpcmUgKG5lIHBldXQgcGFzIHNlIHByb2R1aXJlKSIKKworIzogZ2l0LXN0YXNoLnNoOjE1NgorbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgorbXNnc3RyICJJbXBvc3NpYmxlIGQnZW5yZWdpc3RyZXIgbCfDqXRhdCBkZSBsYSBjb3BpZSBkZSB0cmF2YWlsIgorCisjLiBUUkFOU0xBVE9SUzogJG9wdGlvbiBpcyBhbiBpbnZhbGlkIG9wdGlvbiwgbGlrZQorIy4gYC0tYmxhaC1ibGFoJy4gVGhlIDcgc3BhY2VzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisjLiBzZWNvbmQgbGluZSBjb3JyZXNwb25kIHRvICJlcnJvcjogIi4gU28geW91IHNob3VsZCBsaW5lCisjLiB1cCB0aGUgc2Vjb25kIGxpbmUgd2l0aCBob3dldmVyIG1hbnkgY2hhcmFjdGVycyB0aGUKKyMuIHRyYW5zbGF0aW9uIG9mICJlcnJvcjogIiB0YWtlcyBpbiB5b3VyIGxhbmd1YWdlLiBFLmcuIGluCisjLiBFbmdsaXNoIHRoaXMgaXM6CisjLgorIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCisjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKKyMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJworIzogZ2l0LXN0YXNoLnNoOjIwMgorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCisiICAgICAgIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgorbXNnc3RyICIiCisiZXJyZXVyOiBvcHRpb24gaW5jb25udWUgcG91ciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKKyIgICAgICAgIFBvdXIgZm91cm5pciB1biBtZXNzYWdlLCB1dGlsaXNleiBnaXQgc3Rhc2ggc2F2ZSAtLSAnJG9wdGlvbiciCisKKyM6IGdpdC1zdGFzaC5zaDoyMjMKK21zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCittc2dzdHIgIlBhcyBkZSBjaGFuZ2VtZW50cyBlbiBsb2NhbCDDoCBzYXV2ZXIiCisKKyM6IGdpdC1zdGFzaC5zaDoyMjcKK21zZ2lkICJDYW5ub3QgaW5pdGlhbGl6ZSBzdGFzaCIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2luaXRpYWxpc2VyIGxlIHJlbWlzYWdlIgorCisjOiBnaXQtc3Rhc2guc2g6MjM1Cittc2dpZCAiQ2Fubm90IHNhdmUgdGhlIGN1cnJlbnQgc3RhdHVzIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHNhdXZlciBsZSBzdGF0dXQgY291cmFudCIKKworIzogZ2l0LXN0YXNoLnNoOjI1MworbXNnaWQgIkNhbm5vdCByZW1vdmUgd29ya3RyZWUgY2hhbmdlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgbGVzIGNoYW5nZW1lbnRzIGRlIGxhIGNvcGllIGRlIHRyYXZhaWwiCisKKyM6IGdpdC1zdGFzaC5zaDozNTIKK21zZ2lkICJObyBzdGFzaCBmb3VuZC4iCittc2dzdHIgIlBhcyBkZSByZW1pc2FnZSB0cm91dsOpLiIKKworIzogZ2l0LXN0YXNoLnNoOjM1OQorIywgc2gtZm9ybWF0Cittc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKK21zZ3N0ciAiVHJvcCBkZSByw6l2aXNpb25zIHNww6ljaWZpw6llcyA6ICRSRVYiCisKKyM6IGdpdC1zdGFzaC5zaDozNjUKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiRyZWZlcmVuY2UgaXMgbm90IHZhbGlkIHJlZmVyZW5jZSIKK21zZ3N0ciAiJHJlZmVyZW5jZSBuJ2VzdCBwYXMgdW5lIHLDqWbDqXJlbmNlIHZhbGlkZSIKKworIzogZ2l0LXN0YXNoLnNoOjM5MworIywgc2gtZm9ybWF0Cittc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKK21zZ3N0ciAiJyRhcmdzJyBuJ2VzdCBwYXMgdW5lIHZhbGlkYXRpb24gZGUgdHlwZSByZW1pc2FnZSIKKworIzogZ2l0LXN0YXNoLnNoOjQwNAorIywgc2gtZm9ybWF0Cittc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCittc2dzdHIgIickYXJncycgbidlc3QgcGFzIHVuZSByw6lmw6lyZW5jZSBkZSByZW1pc2FnZSIKKworIzogZ2l0LXN0YXNoLnNoOjQxMgorbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgorbXNnc3RyICJpbXBvc3NpYmxlIGRlIHJhZnJhw65jaGlyIGwnaW5kZXgiCisKKyM6IGdpdC1zdGFzaC5zaDo0MTYKK21zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCittc2dzdHIgIkltcG9zc2libGUgZCdhcHBsaXF1ZXIgdW4gcmVtaXNhZ2UgYXUgbWlsaWV1IGQndW5lIGZ1c2lvbiIKKworIzogZ2l0LXN0YXNoLnNoOjQyNAorbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCittc2dzdHIgIkNvbmZsaXRzIGRhbnMgbCdpbmRleC4gRXNzYXlleiBzYW5zIC0taW5kZXguIgorCisjOiBnaXQtc3Rhc2guc2g6NDI2Cittc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBzYXV2ZXIgbCdhcmJyZSBkJ2luZGV4IgorCisjOiBnaXQtc3Rhc2guc2g6NDYwCittc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCittc2dzdHIgIkltcG9zc2libGUgZGUgZMOpc2luZGV4ZXIgbGVzIGZpY2hpZXJzIG1vZGlmacOpcyIKKworIzogZ2l0LXN0YXNoLnNoOjQ3NQorbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKK21zZ3N0ciAiIgorCisjOiBnaXQtc3Rhc2guc2g6NDkyCisjLCBzaC1mb3JtYXQKK21zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgorbXNnc3RyICIke1JFVn0gc3VwcHJpbcOpICgkcykiCisKKyM6IGdpdC1zdGFzaC5zaDo0OTMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCittc2dzdHIgIiR7UkVWfTogSW1wb3NzaWJsZSBkZSBzdXBwcmltZXIgbCdlbnRyw6llIGRlIHN0YXNoIgorCisjOiBnaXQtc3Rhc2guc2g6NTAwCittc2dpZCAiTm8gYnJhbmNoIG5hbWUgc3BlY2lmaWVkIgorbXNnc3RyICJBdWN1bmUgYnJhbmNoZSBzcMOpY2lmacOpZSIKKworIzogZ2l0LXN0YXNoLnNoOjU3MQorbXNnaWQgIihUbyByZXN0b3JlIHRoZW0gdHlwZSBcImdpdCBzdGFzaCBhcHBseVwiKSIKK21zZ3N0ciAiKFBvdXIgbGVzIHJlc3RhdXJlciB0YXBleiBcImdpdCBzdGFzaCBhcHBseVwiKSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MQorIywgc2gtZm9ybWF0Cittc2dpZCAiY2Fubm90IHN0cmlwIG9uZSBjb21wb25lbnQgb2ZmIHVybCAnJHJlbW90ZXVybCciCittc2dzdHIgImltcG9zc2libGUgZGUgc3VwcHJpbWVyIHVuIGNvbXBvc2FudCBkZSBsJ1VSTCAnJHJlbW90ZXVybCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjLCBzaC1mb3JtYXQKK21zZ2lkICJObyBzdWJtb2R1bGUgbWFwcGluZyBmb3VuZCBpbiAuZ2l0bW9kdWxlcyBmb3IgcGF0aCAnJHNtX3BhdGgnIgorbXNnc3RyICJQYXMgZGUgbWFwcGFnZSBkdSBzb3VzLW1vZHVsZSB0cm91dsOpIGRhbnMgLmdpdG1vZHVsZXMgcG91ciBsZSBjaGVtaW4gJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNsb25lIG9mICckdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgZmFpbGVkIgorbXNnc3RyICJMZSBjbG9uYWdlIGRlICckdXJsJyBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGEgw6ljaG91w6kiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjUxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJHaXRkaXIgJyRhJyBpcyBwYXJ0IG9mIHRoZSBzdWJtb2R1bGUgcGF0aCAnJGInIG9yIHZpY2UgdmVyc2EiCittc2dzdHIgIkxlIHLDqXBlcnRvaXJlIEdpdCAnJGEnIGZhaXQgcGFydGllIGR1IGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJGInIG91IHZpY2UtdmVyc2EiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MzQ5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJyZXBvIFVSTDogJyRyZXBvJyBtdXN0IGJlIGFic29sdXRlIG9yIGJlZ2luIHdpdGggLi98Li4vIgorbXNnc3RyICJMJ1VSTCBkZSBkw6lww7R0ICckcmVwbycgZG9pdCDDqnRyZSBhYnNvbHUgb3UgY29tbWVuY2VyIHBhciAuL3wuLi8iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MzY2CisjLCBzaC1mb3JtYXQKK21zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKK21zZ3N0ciAiJyRzbV9wYXRoJyBleGlzdGUgZMOpasOgIGRhbnMgbCdpbmRleCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozNzAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJUaGUgZm9sbG93aW5nIHBhdGggaXMgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgorIiRzbV9wYXRoXG4iCisiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgaXQuIgorbXNnc3RyICIiCisiTGUgY2hlbWluIHN1aXZhbnQgZXN0IGlnbm9yw6kgcGFyIHVuIGRlIHZvcyBmaWNoaWVycyAuZ2l0aWdub3JlIDpcbiIKKyIkc21fcGF0aFxuIgorIlV0aWxpc2V6IC1mIHNpIHZvdXMgdm91bGV6IHZyYWltZW50IGwnYWpvdXRlci4iCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Mzg4CisjLCBzaC1mb3JtYXQKK21zZ2lkICJBZGRpbmcgZXhpc3RpbmcgcmVwbyBhdCAnJHNtX3BhdGgnIHRvIHRoZSBpbmRleCIKK21zZ3N0ciAiQWpvdXQgZHUgZMOpcMO0dCBleGlzdGFudCDDoCAnJHNtX3BhdGgnIGRhbnMgbCdpbmRleCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvIgorbXNnc3RyICInJHNtX3BhdGgnIGV4aXN0ZSBkw6lqw6AgZXQgbidlc3QgcGFzIHVuIGTDqXDDtHQgZ2l0IHZhbGlkZSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkEgZ2l0IGRpcmVjdG9yeSBmb3IgJyRzbV9uYW1lJyBpcyBmb3VuZCBsb2NhbGx5IHdpdGggcmVtb3RlKHMpOiIKK21zZ3N0ciAiVW4gcsOpcGVydG9pcmUgZ2l0IHBvdXIgJyRzbV9uYW1lJyBlc3QgdHJvdXbDqSBlbiBsb2NhbCBhdmVjIGxlKHMpIHNlcnZldXIocykgZGlzdGFudChzKSA6IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIklmIHlvdSB3YW50IHRvIHJldXNlIHRoaXMgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIGNsb25pbmcgYWdhaW4gZnJvbSIKK21zZ3N0ciAiU2kgdm91cyB2b3VsZXogcsOpdXRpbGlzZXIgY2UgcsOpcGVydG9pcmUgZ2l0IGxvY2FsIGF1IGxpZXUgZGUgY2xvbmVyIMOgIG5vdXZlYXUgZGVwdWlzIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMgorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCittc2dzdHIgInV0aWxpc2V6IGwnb3B0aW9uICctLWZvcmNlJy4gU2kgbGUgcsOpcGVydG9pcmUgbG9jYWwgZ2l0IG4nZXN0IHBhcyBsZSBkw6lww7R0IGNvcnJlY3QiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgorIm9wdGlvbi4iCittc2dzdHIgIm91IHZvdXMgbmUgc2F2ZXogcGFzIGNlIHF1ZSBjZWxhIHNpZ25pZmllIGRlIGNob2lzaXIgdW4gYXV0cmUgbm9tIGF2ZWMgbCdvcHRpb24gJy0tbmFtZScuIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIywgc2gtZm9ybWF0Cittc2dpZCAiUmVhY3RpdmF0aW5nIGxvY2FsIGdpdCBkaXJlY3RvcnkgZm9yIHN1Ym1vZHVsZSAnJHNtX25hbWUnLiIKK21zZ3N0ciAiUsOpYWN0aXZhdGlvbiBkdSByw6lwZXJ0b2lyZSBnaXQgbG9jYWwgcG91ciBsZSBzb3VzLW1vZHVsZSAnJHNtX25hbWUnLiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTcKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2V4dHJhaXJlIGxlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDIyCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gYWRkIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgorbXNnc3RyICLDiWNoZWMgZCdham91dCBkdSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgorbXNnc3RyICLDiWNoZWMgZCdlbnJlZ2lzdHJlbWVudCBkdSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ3NAorIywgc2gtZm9ybWF0Cittc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIkVudHLDqWUgZGFucyAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODgKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN0b3BwaW5nIGF0ICckc21fcGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgorbXNnc3RyICJBcnLDqnQgc3VyICckc21fcGF0aCcgOyBsZSBzY3JpcHQgYSByZXRvdXJuw6kgdW4gc3RhdHV0IG5vbiBudWwuIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjUzMgorIywgc2gtZm9ybWF0Cittc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgorbXNnc3RyICJVUkwgbm9uIHRyb3V2w6kgcG91ciBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyBkYW5zIC5naXRtb2R1bGVzIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjU0MQorIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ3N0ciAiw4ljaGVjIGQnZW5yZWdpc3RyZW1lbnQgZGUgbCdVUkwgcG91ciBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCittc2dzdHIgIlNvdXMtbW9kdWxlICckbmFtZScgKCR1cmwpIGVucmVnaXN0csOpIHBvdXIgbGUgY2hlbWluICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTUxCisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCittc2dzdHIgIsOJY2hlYyBkJ2VucmVnaXN0cmVtZW50IGR1IG1vZGUgZGUgbWlzZSDDoCBqb3VyIHBvdXIgbGUgY2hlbWluIGRlIHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTg4CisjLCBzaC1mb3JtYXQKK21zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCittc2dzdHIgIlV0aWxpc2V6ICcuJyBzaSB2b3VzIHZvdWxleiB2cmFpbWVudCByw6lpbml0aWFsaXNlciB0b3VzIGxlcyBzb3VzLW1vZHVsZXMiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjAzCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKK21zZ3N0ciAiTGEgY29waWUgZGUgdHJhdmFpbCBkdSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIGNvbnRpZW50IHVuIHLDqXBlcnRvaXJlIC5naXQiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjA0CisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgorbXNnc3RyICIodXRpbGlzZXogJ3JtIC1yZicgc2kgdm91cyB2b3VsZXogdnJhaW1lbnQgbGUgc3VwcHJpbWVyIGVuIGluY2x1YW50IHRvdXQgc29uIGhpc3RvcmlxdWUpIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMAorIywgc2gtZm9ybWF0Cittc2dpZCAiIgorIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiZGlzY2FyZCB0aGVtIgorbXNnc3RyICJMYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCcgY29udGllbnQgZGVzIG1vZGlmaWNhdGlvbnMgbG9jYWxlczsgdXRpbGlzZXogJy1mJyBwb3VyIGxlcyBhbm51bGVyIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMworIywgc2gtZm9ybWF0Cittc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKK21zZ3N0ciAiUsOpcGVydG9pcmUgJyRzbV9wYXRoJyBuZXR0b3nDqSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHN1cHByaW1lciBsYSBjb3BpZSBkZSB0cmF2YWlsIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjE3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGVtcHR5IHN1Ym1vZHVsZSBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgdmlkZSBkdSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgorbXNnc3RyICJMZSBzb3VzLW1vZHVsZSAnJG5hbWUnICgkdXJsKSBuJ2VzdCBwYXMgZW5yZWdpc3Ryw6kgcG91ciBsZSBjaGVtaW4gJyRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo3MzEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyBub3QgaW5pdGlhbGl6ZWRcbiIKKyJNYXliZSB5b3Ugd2FudCB0byB1c2UgJ3VwZGF0ZSAtLWluaXQnPyIKK21zZ3N0ciAiIgorIkNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyBub24gaW5pdGlhbGlzw6lcbiIKKyJQZXV0LcOqdHJlIHNvdWhhaXRlei12b3VzIHV0aWxpc2VyICd1cGRhdGUgLS1pbml0JyA/IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjc0NAorIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSB0cm91dmVyIGxhIHLDqXZpc2lvbiBjb3VyYW50ZSBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NTMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJhcGF0cmllciBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnc3RyICJJbXBvc3NpYmxlIGRlIHJhcGF0cmllciBkYW5zIGxlIGNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSByZWJhc2VyICckc2hhMScgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NzkyCisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCittc2dzdHIgIkNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyA6IHJlYmFzw6kgZGFucyAnJHNoYTEnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjc5NworIywgc2gtZm9ybWF0Cittc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIkltcG9zc2libGUgZGUgZnVzaW9ubmVyICckc2hhMScgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogbWVyZ2VkIGluICckc2hhMSciCittc2dzdHIgIkNoZW1pbiBkZSBzb3VzLW1vZHVsZSAnJHByZWZpeCRzbV9wYXRoJyA6IGZ1c2lvbm7DqSBkYW5zICckc2hhMSciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODAzCisjLCBzaC1mb3JtYXQKK21zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkJ2V4dHJhaXJlICckc2hhMScgZGFucyBsZSBjaGVtaW4gZGUgc291cy1tb2R1bGUgJyRwcmVmaXgkc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODA0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKK21zZ3N0ciAiQ2hlbWluIGRlIHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIDogJyRzaGExJyBleHRyYWl0IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjgzMQorIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiw4ljaGVjIGRlIHBhcmNvdXJzIGRhbnMgbGUgY2hlbWluIGR1IHNvdXMtbW9kdWxlICckcHJlZml4JHNtX3BhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorbXNnaWQgIlRoZSAtLWNhY2hlZCBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgLS1maWxlcyBvcHRpb24iCittc2dzdHIgIkwnb3B0aW9uIC0tY2FjaGVkIG5lIHBldXQgcGFzIMOqdHJlIHV0aWxpc8OpZSBhdmVjIGwnb3B0aW9uIC0tZmlsZXMiCisKKyMuIHVuZXhwZWN0ZWQgdHlwZQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NzkKKyMsIHNoLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKK21zZ3N0ciAibW9kZSAkbW9kX2RzdCBpbmF0dGVuZHUiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTk3CisjLCBzaC1mb3JtYXQKK21zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgorbXNnc3RyICIgIEF0dGVudGlvbiA6ICRuYW1lIG5lIGNvbnRpZW50IHBhcyBsYSB2YWxpZGF0aW9uICRzaGExX3NyYyIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgorbXNnc3RyICIgIEF0dGVudGlvbiA6ICRuYW1lIG5lIGNvbnRpZW50IHBhcyBsYSB2YWxpZGF0aW9uICRzaGExX2RzdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAzCisjLCBzaC1mb3JtYXQKK21zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnc3RyICIgIEF0dGVudGlvbiA6ICRuYW1lIG5lIGNvbnRpZW50IHBhcyBsZXMgdmFsaWRhdGlvbnMgJHNoYTFfc3JjIGV0ICRzaGExX2RzdCIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI4Cittc2dpZCAiYmxvYiIKK21zZ3N0ciAiYmxvYiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2Cittc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCittc2dzdHIgIlNvdXMtbW9kdWxlcyBtb2RpZmnDqXMgbWFpcyBub24gbWlzIMOgIGpvdXIgOiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4Cittc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKK21zZ3N0ciAiQ2hhbmdlbWVudHMgZHUgc291cy1tb2R1bGUgw6AgdmFsaWRlciA6IgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTMKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ3N0ciAiw4ljaGVjIGRlIHBhcmNvdXJzIGRhbnMgbGUgY2hlbWluIGR1IHNvdXMtbW9kdWxlICckc21fcGF0aCciCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTIxNgorIywgc2gtZm9ybWF0Cittc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ3N0ciAiU3luY2hyb25pc2F0aW9uIGRlIGwnVVJMIHNvdXMtbW9kdWxlIHBvdXIgJyRwcmVmaXgkc21fcGF0aCciCmRpZmYgLS1naXQgYS9wby9naXQucG90IGIvcG8vZ2l0LnBvdAppbmRleCA5YTNlMGE4Li5jZjFlNDQ2IDEwMDY0NAotLS0gYS9wby9naXQucG90CisrKyBiL3BvL2dpdC5wb3QKQEAgLTgsNyArOCw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IFBBQ0tBR0UgVkVSU0lPTlxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBHaXQgTWFpbGluZyBMaXN0IDxnaXRAdmdlci5rZXJuZWwub3JnPlxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA0LTEwIDE1OjE2KzA4MDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wOC0wNiAxNDoxMCswODAwXG4iCiAiUE8tUmV2aXNpb24tRGF0ZTogWUVBUi1NTy1EQSBITzpNSStaT05FXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBGVUxMIE5BTUUgPEVNQUlMQEFERFJFU1M+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogTEFOR1VBR0UgPExMQGxpLm9yZz5cbiIKQEAgLTE4LDcgKzE4LDcgQEAKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAiUGx1cmFsLUZvcm1zOiBucGx1cmFscz1JTlRFR0VSOyBwbHVyYWw9RVhQUkVTU0lPTjtcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAiIgpAQCAtMjcsNyArMjcsNyBAQAogIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgogIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgogIy4KLSM6IGFkdmljZS5jOjgzCisjOiBhZHZpY2UuYzo4NwogbXNnaWQgIiIKICJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgogImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCkBAIC02MCw3ICs2MCw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExMTcKKyM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTczCiBtc2dpZCAicHJlZml4IgogbXNnc3RyICIiCiAKQEAgLTY4LDExICs2OCwxMSBAQAogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjM2NgotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcgYnVpbHRpbi9jb25maWcuYzo1NSBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU5Ci0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYxIGJ1aWx0aW4vZ3JlcC5jOjcxNSBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcgYnVpbHRpbi9scy1maWxlcy5jOjUwMCBidWlsdGluL25vdGVzLmM6NTM2Ci0jOiBidWlsdGluL25vdGVzLmM6NjkzIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA3IHBhcnNlLW9wdGlvbnMuaDoxNDkKKyM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIyOTIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzIGJ1aWx0aW4vY29uZmlnLmM6NTYgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3NSBidWlsdGluL2dyZXAuYzo3MTQgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk2IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTkgYnVpbHRpbi9ub3Rlcy5jOjQwOAorIzogYnVpbHRpbi9ub3Rlcy5jOjU2NSBidWlsdGluL3JlYWQtdHJlZS5jOjEwOCBwYXJzZS1vcHRpb25zLmg6MTUyCiBtc2dpZCAiZmlsZSIKIG1zZ3N0ciAiIgogCkBAIC0xMDQsNyArMTA0LDcgQEAKIG1zZ2lkICJsaXN0IHN1cHBvcnRlZCBhcmNoaXZlIGZvcm1hdHMiCiBtc2dzdHIgIiIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAiIgogCkBAIC0xMTIsNyArMTEyLDcgQEAKIG1zZ2lkICJyZXRyaWV2ZSB0aGUgYXJjaGl2ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IDxyZXBvPiIKIG1zZ3N0ciAiIgogCi0jOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo2MTUKKyM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjQ4NwogbXNnaWQgImNvbW1hbmQiCiBtc2dzdHIgIiIKIApAQCAtMTI2LDE3ICsxMjYsODYgQEAKICJVc2UgJ1xcIScgZm9yIGxpdGVyYWwgbGVhZGluZyBleGNsYW1hdGlvbi4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBicmFuY2ggJXMgYXMgaXRzIG93biB1cHN0cmVhbS4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICIiCisKKyM6IGJyYW5jaC5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzLiIKK21zZ3N0ciAiIgorCisjOiBicmFuY2guYzo4NworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIGJyYW5jaCAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMuIgorbXNnc3RyICIiCisKKyM6IGJyYW5jaC5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgcmVmICVzLiIKK21zZ3N0ciAiIgorCisjOiBicmFuY2guYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6OTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCByZWYgJXMuIgorbXNnc3RyICIiCisKKyM6IGJyYW5jaC5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJUcmFja2luZyBub3Qgc2V0IHVwOiBuYW1lIHRvbyBsb25nOiAlcyIKK21zZ3N0ciAiIgorCisjOiBicmFuY2guYzoxMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHRyYWNraW5nOiBhbWJpZ3VvdXMgaW5mb3JtYXRpb24gZm9yIHJlZiAlcyIKK21zZ3N0ciAiIgorCisjOiBicmFuY2guYzoxODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCBicmFuY2ggbmFtZS4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkEgYnJhbmNoIG5hbWVkICclcycgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICIiCisKKyM6IGJyYW5jaC5jOjE5NQorbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiIgorCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnJhbmNoLmM6MjAzCisjOiBicmFuY2guYzoyMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidGhlIHJlcXVlc3RlZCB1cHN0cmVhbSBicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAiIgogCi0jOiBicmFuY2guYzoyMDUKKyM6IGJyYW5jaC5jOjIyMAogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTE0OCw2ICsyMTcsMjkgQEAKICJcImdpdCBwdXNoIC11XCIgdG8gc2V0IHRoZSB1cHN0cmVhbSBjb25maWcgYXMgeW91IHB1c2guIgogbXNnc3RyICIiCiAKKyM6IGJyYW5jaC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6Mjk2Cittc2dpZCAiRmFpbGVkIHRvIGxvY2sgcmVmIGZvciB1cGRhdGUiCittc2dzdHIgIiIKKworIzogYnJhbmNoLmM6MzE0Cittc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKK21zZ3N0ciAiIgorCiAjOiBidW5kbGUuYzozNgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGRvZXMgbm90IGxvb2sgbGlrZSBhIHYyIGJ1bmRsZSBmaWxlIgpAQCAtMTU4LDcgKzI1MCw3IEBACiBtc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgogbXNnc3RyICIiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICIiCkBAIC0xNjcsOSArMjU5LDkgQEAKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKIG1zZ3N0ciAiIgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjUxIHNlcXVlbmNlci5jOjEwODMgYnVpbHRpbi9sb2cuYzozMDAKLSM6IGJ1aWx0aW4vbG9nLmM6NzU0IGJ1aWx0aW4vbG9nLmM6MTM1MCBidWlsdGluL2xvZy5jOjE1NjYgYnVpbHRpbi9tZXJnZS5jOjM0OQotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NworIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCisjOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKIG1zZ3N0ciAiIgogCkBAIC0xOTUsNyArMjg3LDcgQEAKIG1zZ2lkICJyZXYtbGlzdCBkaWVkIgogbXNnc3RyICIiCiAKLSM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEyNDYgYnVpbHRpbi9zaG9ydGxvZy5jOjI2MAorIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTMxMCBidWlsdGluL3Nob3J0bG9nLmM6MjU5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVucmVjb2duaXplZCBhcmd1bWVudDogJXMiCiBtc2dzdHIgIiIKQEAgLTIyNiwxMiArMzE4LDEyIEBACiBtc2dpZCAiaW5kZXgtcGFjayBkaWVkIgogbXNnc3RyICIiCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCiBtc2dzdHIgIiIKIAotIzogY29tbWl0LmM6NTIKKyM6IGNvbW1pdC5jOjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCiBtc2dzdHIgIiIKQEAgLTI0MCwxNiArMzMyLDE2IEBACiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAiIgogCi0jOiBjb25uZWN0ZWQuYzozOQorIzogY29ubmVjdGVkLmM6NjAKIG1zZ2lkICJDb3VsZCBub3QgcnVuICdnaXQgcmV2LWxpc3QnIgogbXNnc3RyICIiCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICIiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgIiIKQEAgLTM0MywxNCArNDM1LDE0IEBACiAiJXMiCiBtc2dzdHIgIiIKIAotIzogZGlmZi5jOjM0ODAKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCiAiJXMiCiBtc2dzdHIgIiIKIAotIzogZGlmZi5jOjM0OTQKKyM6IGRpZmYuYzozNTAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICIiCkBAIC0zOTIsNDggKzQ4NCw0OCBAQAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjIxMgorIzogaGVscC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJhdmFpbGFibGUgZ2l0IGNvbW1hbmRzIGluICclcyciCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjIxOQorIzogaGVscC5jOjIxNwogbXNnaWQgImdpdCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSBlbHNld2hlcmUgb24geW91ciAkUEFUSCIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MjM1CisjOiBoZWxwLmM6MjMzCiBtc2dpZCAiVGhlIG1vc3QgY29tbW9ubHkgdXNlZCBnaXQgY29tbWFuZHMgYXJlOiIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MjkyCisjOiBoZWxwLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCiAiYWJsZSB0byBleGVjdXRlIGl0LiBNYXliZSBnaXQtJXMgaXMgYnJva2VuPyIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MzQ5CisjOiBoZWxwLmM6MzQ3CiBtc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjM3MQorIzogaGVscC5jOjM2OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgogIkNvbnRpbnVpbmcgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgbWVhbnQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6Mzc2CisjOiBoZWxwLmM6Mzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgImluICUwLjFmIHNlY29uZHMgYXV0b21hdGljYWxseS4uLiIKIG1zZ3N0ciAiIgogCi0jOiBoZWxwLmM6MzgzCisjOiBoZWxwLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCiBtc2dzdHIgIiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTQ0MywxMiArNTM1LDE3IEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCisjOiBoZWxwLmM6NDQwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiAlcyAtICVzIgorbXNnc3RyICIiCisKICM6IG1lcmdlLmM6NTYKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCB0aGUgY2FjaGUiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2MiBidWlsdGluL2NoZWNrb3V0LmM6NTYzCi0jOiBidWlsdGluL2Nsb25lLmM6NjM1CisjOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo1NjYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTYKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIApAQCAtNDYyLDI0MyArNTU5LDI2NCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjkKIG1zZ2lkICJlcnJvciBidWlsZGluZyB0cmVlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIHBhdGggJyVzJyVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIHRvIG1ha2Ugcm9vbSBmb3Igc3ViZGlyZWN0b3J5XG4iCiBtc2dzdHIgIiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZ1c2luZyB0byBsb3NlIHVudHJhY2tlZCBmaWxlIGF0ICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3ltbGluayAnJXMnIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImRvIG5vdCBrbm93IHdoYXQgdG8gZG8gd2l0aCAlMDZvICVzICclcyciCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjMKIG1zZ2lkICJGYWlsZWQgdG8gZXhlY3V0ZSBpbnRlcm5hbCBtZXJnZSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkICVzIHRvIGRhdGFiYXNlIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQzCiBtc2dpZCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgaW4gdGhlIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMSBtZXJnZS1yZWN1cnNpdmUuYzoxMDM1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIyIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKICJpbiB0cmVlLiIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI3IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjggbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgogImluIHRyZWUgYXQgJXMuIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWUiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MgogbXNnaWQgInJlbmFtZWQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzNworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTEzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBhIGRpcmVjdG9yeSBpbiAlcyBhZGRpbmcgYXMgJXMgaW5zdGVhZCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTU5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSBcIiVzXCItPlwiJXNcIiBpbiBicmFuY2ggXCIlc1wiIHJlbmFtZSBcIiVzIgogIlwiLT5cIiVzXCIgaW4gXCIlc1wiJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTE2NQogbXNnaWQgIiAobGVmdCB1bnJlc29sdmVkKSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gUmVuYW1lICVzLT4lcyBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbmFtaW5nICVzIHRvICVzIGFuZCAlcyB0byAlcyBpbnN0ZWFkIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9hZGQpOiBSZW5hbWUgJXMtPiVzIGluICVzLiAlcyBhZGRlZCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYzIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgaXMgbm90IGEgYmxvYiIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZmllZCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc1CiBtc2dpZCAiY29udGVudCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgyCiBtc2dpZCAiYWRkL2FkZCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwZWQgJXMgKG1lcmdlZCBzYW1lIGFzIGV4aXN0aW5nKSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG8tbWVyZ2luZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMzIGdpdC1zdWJtb2R1bGUuc2g6MTAyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMTgKIG1zZ2lkICJzdWJtb2R1bGUiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzU1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzU2CiBtc2dpZCAiZGlyZWN0b3J5L2ZpbGUiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBUaGVyZSBpcyBhIGRpcmVjdG9yeSB3aXRoIG5hbWUgJXMgaW4gJXMuIEFkZGluZyAlcyBhcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzg4CiBtc2dpZCAiRmF0YWwgbWVyZ2UgZmFpbHVyZSwgc2hvdWxkbid0IGhhcHBlbi4iCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgwNwogbXNnaWQgIkFscmVhZHkgdXAtdG8tZGF0ZSEiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJtZXJnaW5nIG9mIHRyZWVzICVzIGFuZCAlcyBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgogbXNnc3RyICIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTEKIG1zZ2lkICJNZXJnaW5nOiIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MQogbXNnaWQgIm1lcmdlIHJldHVybmVkIG5vIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDA5IGJ1aWx0aW4vbWVyZ2UuYzo2NTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMTAgYnVpbHRpbi9tZXJnZS5jOjY3MgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbmRleC4iCiBtc2dzdHIgIiIKIAotIzogb2JqZWN0LmM6MTk1CisjOiBub3Rlcy11dGlscy5jOjQwCittc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgorbXNnc3RyICIiCisKKyM6IG5vdGVzLXV0aWxzLmM6ODEKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IG5vdGVzLXV0aWxzLmM6OTEKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCittc2dzdHIgIiIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogbm90ZXMtdXRpbHMuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgorbXNnc3RyICIiCisKKyM6IG9iamVjdC5jOjIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcGFyc2Ugb2JqZWN0OiAlcyIKIG1zZ3N0ciAiIgpAQCAtNzM4LDE4ICs4NTYsMTggQEAKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiBtc2dzdHIgIiIKIAotIzogcmVtb3RlLmM6MTc4MQorIzogcmVtb3RlLmM6MTc4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIKIG1zZ2lkX3BsdXJhbCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogcmVtb3RlLmM6MTc4NworIzogcmVtb3RlLmM6MTc5NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCiBtc2dzdHIgIiIKIAotIzogcmVtb3RlLmM6MTc5MAorIzogcmVtb3RlLmM6MTc5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBiZWhpbmQgJyVzJyBieSAlZCBjb21taXQsIGFuZCBjYW4gYmUgZmFzdC1mb3J3YXJkZWQuXG4iCiBtc2dpZF9wbHVyYWwgIiIKQEAgLTc1NywxMSArODc1LDExIEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiByZW1vdGUuYzoxNzk4CisjOiByZW1vdGUuYzoxODA1CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byB1cGRhdGUgeW91ciBsb2NhbCBicmFuY2gpXG4iCiBtc2dzdHIgIiIKIAotIzogcmVtb3RlLmM6MTgwMQorIzogcmVtb3RlLmM6MTgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTc3MiwxOCArODkwLDI3IEBACiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiByZW1vdGUuYzoxODExCisjOiByZW1vdGUuYzoxODE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byBtZXJnZSB0aGUgcmVtb3RlIGJyYW5jaCBpbnRvIHlvdXJzKVxuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6Nzc2IGJ1aWx0aW4vbWVyZ2UuYzo4ODkgYnVpbHRpbi9tZXJnZS5jOjk5OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDkKKyM6IHJ1bi1jb21tYW5kLmM6ODAKK21zZ2lkICJvcGVuIC9kZXYvbnVsbCBmYWlsZWQiCittc2dzdHIgIiIKKworIzogcnVuLWNvbW1hbmQuYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkdXAyKCVkLCVkKSBmYWlsZWQiCittc2dzdHIgIiIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjMzNSBidWlsdGluL21lcmdlLmM6Nzc5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwMSBidWlsdGluL21lcmdlLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozNTAgYnVpbHRpbi9tZXJnZS5jOjc5MworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTUgYnVpbHRpbi9tZXJnZS5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICclcyciCiBtc2dzdHIgIiIKQEAgLTgwMSw3ICs5MjgsNyBAQAogImFuZCBjb21taXQgdGhlIHJlc3VsdCB3aXRoICdnaXQgY29tbWl0JyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODU5IHNlcXVlbmNlci5jOjk0MgorIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg2OSBzZXF1ZW5jZXIuYzo5NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgogbXNnc3RyICIiCkBAIC04MjQsMjA1ICs5NTEsMjI4IEBACiBtc2dzdHIgIiIKIAogIy4gVFJBTlNMQVRPUlM6ICVzIHdpbGwgYmUgInJldmVydCIgb3IgImNoZXJyeS1waWNrIgotIzogc2VxdWVuY2VyLmM6MzE5CisjOiBzZXF1ZW5jZXIuYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IFVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzozNTAKKyM6IHNlcXVlbmNlci5jOjM1NQogbXNnaWQgIkNvdWxkIG5vdCByZXNvbHZlIEhFQUQgY29tbWl0XG4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MzcxCisjOiBzZXF1ZW5jZXIuYzozNzcKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo0MTYKKyM6IHNlcXVlbmNlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgY29tbWl0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NDIxCisjOiBzZXF1ZW5jZXIuYzo0MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIHBhcmVudCBjb21taXQgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjUxNAorIzogc2VxdWVuY2VyLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTgKKyM6IHNlcXVlbmNlci5jOjUyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICIiCiAKICMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgogIy4gImNoZXJyeS1waWNrIiwgdGhlIHNlY29uZCAlcyBhIFNIQTEKLSM6IHNlcXVlbmNlci5jOjUzMQorIzogc2VxdWVuY2VyLmM6NTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBjYW5ub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjEKKyM6IHNlcXVlbmNlci5jOjYyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmV2ZXJ0ICVzLi4uICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjYyMgorIzogc2VxdWVuY2VyLmM6NjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBhcHBseSAlcy4uLiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo2NTQKKyM6IHNlcXVlbmNlci5jOjY2NAogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjY2MgorIzogc2VxdWVuY2VyLmM6NjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjY2NworIzogc2VxdWVuY2VyLmM6Njc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlZnJlc2ggdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjcyNQorIzogc2VxdWVuY2VyLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo3NDcKKyM6IHNlcXVlbmNlci5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgbGluZSAlZC4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NzUyCisjOiBzZXF1ZW5jZXIuYzo3NjIKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NzY1CisjOiBzZXF1ZW5jZXIuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6NzY5CisjOiBzZXF1ZW5jZXIuYzo3NzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgJXMuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjc3NgorIzogc2VxdWVuY2VyLmM6Nzg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVudXNhYmxlIGluc3RydWN0aW9uIHNoZWV0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDQKKyM6IHNlcXVlbmNlci5jOjgxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODA3CisjOiBzZXF1ZW5jZXIuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB2YWx1ZSBmb3IgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjgxOQorIzogc2VxdWVuY2VyLmM6ODI5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBvcHRpb25zIHNoZWV0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDAKKyM6IHNlcXVlbmNlci5jOjg1MAogbXNnaWQgImEgY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODQxCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg0NQorIzogc2VxdWVuY2VyLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgc2VxdWVuY2VyIGRpcmVjdG9yeSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NjEgc2VxdWVuY2VyLmM6OTQ2CisjOiBzZXF1ZW5jZXIuYzo4NzEgc2VxdWVuY2VyLmM6OTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIHdyYXBwaW5nIHVwICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODAgc2VxdWVuY2VyLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6ODkwIHNlcXVlbmNlci5jOjEwMjQKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6ODgyCisjOiBzZXF1ZW5jZXIuYzo4OTIKIG1zZ2lkICJjYW5ub3QgcmVzb2x2ZSBIRUFEIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjg4NAorIzogc2VxdWVuY2VyLmM6ODk0CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjkwOQorIzogc2VxdWVuY2VyLmM6OTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTAKKyM6IHNlcXVlbmNlci5jOjkyMAogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6OTE2CisjOiBzZXF1ZW5jZXIuYzo5MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RvcmVkIHByZS1jaGVycnktcGljayBIRUFEIGZpbGUgJyVzJyBpcyBjb3JydXB0IgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjkzOQorIzogc2VxdWVuY2VyLmM6OTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICIiCiAKLSM6IHNlcXVlbmNlci5jOjExMDEKKyM6IHNlcXVlbmNlci5jOjEwOTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiCittc2dzdHIgIiIKKworIzogc2VxdWVuY2VyLmM6MTA5NQorIywgYy1mb3JtYXQKK21zZ2lkICIlczogYmFkIHJldmlzaW9uIgorbXNnc3RyICIiCisKKyM6IHNlcXVlbmNlci5jOjExMjkKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogc2VxdWVuY2VyLmM6MTEwMgorIzogc2VxdWVuY2VyLmM6MTEzMAogbXNnaWQgIkNhbid0IGNoZXJyeS1waWNrIGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiIgogCi0jOiBzaGExX25hbWUuYzoxMDM2CisjOiBzaGExX25hbWUuYzo0NDAKK21zZ2lkICIiCisiR2l0IG5vcm1hbGx5IG5ldmVyIGNyZWF0ZXMgYSByZWYgdGhhdCBlbmRzIHdpdGggNDAgaGV4IGNoYXJhY3RlcnNcbiIKKyJiZWNhdXNlIGl0IHdpbGwgYmUgaWdub3JlZCB3aGVuIHlvdSBqdXN0IHNwZWNpZnkgNDAtaGV4LiBUaGVzZSByZWZzXG4iCisibWF5IGJlIGNyZWF0ZWQgYnkgbWlzdGFrZS4gRm9yIGV4YW1wbGUsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisid2hlcmUgXCIkYnJcIiBpcyBzb21laG93IGVtcHR5IGFuZCBhIDQwLWhleCByZWYgaXMgY3JlYXRlZC4gUGxlYXNlXG4iCisiZXhhbWluZSB0aGVzZSByZWZzIGFuZCBtYXliZSBkZWxldGUgdGhlbS4gVHVybiB0aGlzIG1lc3NhZ2Ugb2ZmIGJ5XG4iCisicnVubmluZyBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCIiCittc2dzdHIgIiIKKworIzogc2hhMV9uYW1lLmM6MTA5NwogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBzaGExX25hbWUuYzoxMDQxCisjOiBzaGExX25hbWUuYzoxMTAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IHNoYTFfbmFtZS5jOjEwNDQKKyM6IHNoYTFfbmFtZS5jOjExMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIiIKQEAgLTEwMzIsMjYzICsxMTgyLDI3MSBAQAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgIiIKIAotIzogd3JhcHBlci5jOjQyMworIzogd3JhcHBlci5jOjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgIiIKIAotIzogd3JhcHBlci5jOjQzNAorIzogd3JhcHBlci5jOjQ0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gbG9vayB1cCBjdXJyZW50IHVzZXIgaW4gdGhlIHBhc3N3ZCBmaWxlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3cmFwcGVyLmM6NDM1CisjOiB3cmFwcGVyLmM6NDQxCiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE2OSB3dC1zdGF0dXMuYzoxOTYKKyM6IHd0LXN0YXR1cy5jOjE3MCB3dC1zdGF0dXMuYzoxOTcKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gLS1jYWNoZWQgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNgorIzogd3Qtc3RhdHVzLmM6MjA3CiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMAorIzogd3Qtc3RhdHVzLmM6MjExCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjEyCisjOiB3dC1zdGF0dXMuYzoyMTMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMTMKKyM6IHd0LXN0YXR1cy5jOjIxNAogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMTUKKyM6IHd0LXN0YXR1cy5jOjIxNgogbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyMjcKKyM6IHd0LXN0YXR1cy5jOjIyOAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNDQKKyM6IHd0LXN0YXR1cy5jOjI0NQogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNDkKKyM6IHd0LXN0YXR1cy5jOjI1MAogbXNnaWQgImJvdGggZGVsZXRlZDoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjUwCisjOiB3dC1zdGF0dXMuYzoyNTEKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTIKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1MgorIzogd3Qtc3RhdHVzLmM6MjUzCiBtc2dpZCAiYWRkZWQgYnkgdGhlbToiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MjUzCisjOiB3dC1zdGF0dXMuYzoyNTQKIG1zZ2lkICJkZWxldGVkIGJ5IHVzOiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoyNTQKKyM6IHd0LXN0YXR1cy5jOjI1NQogbXNnaWQgImJvdGggYWRkZWQ6IgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6Mjg1CisjOiB3dC1zdGF0dXMuYzoyODYKIG1zZ2lkICJuZXcgY29tbWl0cywgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NworIzogd3Qtc3RhdHVzLmM6Mjg4CiBtc2dpZCAibW9kaWZpZWQgY29udGVudCwgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjI4OQorIzogd3Qtc3RhdHVzLmM6MjkwCiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMDYKKyM6IHd0LXN0YXR1cy5jOjMwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgZmlsZTogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTIKKyM6IHd0LXN0YXR1cy5jOjMxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTUKKyM6IHd0LXN0YXR1cy5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJtb2RpZmllZDogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMTgKKyM6IHd0LXN0YXR1cy5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjEKKyM6IHd0LXN0YXR1cy5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ0eXBlY2hhbmdlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjQKKyM6IHd0LXN0YXR1cy5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMjcKKyM6IHd0LXN0YXR1cy5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzozMzAKKyM6IHd0LXN0YXR1cy5jOjMzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MDUKKyM6IHd0LXN0YXR1cy5jOjgwMwogbXNnaWQgIllvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MDggd3Qtc3RhdHVzLmM6OTYwCisjOiB3dC1zdGF0dXMuYzo4MDYKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY29tbWl0XCIpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjgxMQorIzogd3Qtc3RhdHVzLmM6ODA5CiBtc2dpZCAiQWxsIGNvbmZsaWN0cyBmaXhlZCBidXQgeW91IGFyZSBzdGlsbCBtZXJnaW5nLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MTQKKyM6IHd0LXN0YXR1cy5jOjgxMgogbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXRcIiB0byBjb25jbHVkZSBtZXJnZSkiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODI0CisjOiB3dC1zdGF0dXMuYzo4MjIKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODI3CisjOiB3dC1zdGF0dXMuYzo4MjUKIG1zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODMxCi1tc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKyM6IHd0LXN0YXR1cy5jOjgyOQorbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6ODMzCisjOiB3dC1zdGF0dXMuYzo4MzEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4MzUKKyM6IHd0LXN0YXR1cy5jOjgzMwogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo4OTUgd3Qtc3RhdHVzLmM6OTEyCisjOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMCB3dC1zdGF0dXMuYzo5MTcKKyM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTAzCisjOiB3dC1zdGF0dXMuYzo5MDEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MDUKKyM6IHd0LXN0YXR1cy5jOjkwMwogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MDcKKyM6IHd0LXN0YXR1cy5jOjkwNQogbXNnaWQgIiAgKHVzZSBcImdpdCByZWJhc2UgLS1hYm9ydFwiIHRvIGNoZWNrIG91dCB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MjAKKyM6IHd0LXN0YXR1cy5jOjkxOAogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MjQKKyM6IHd0LXN0YXR1cy5jOjkyMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjkyOQorIzogd3Qtc3RhdHVzLmM6OTI3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6OTMyCisjOiB3dC1zdGF0dXMuYzo5MzAKIG1zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5MzYKKyM6IHd0LXN0YXR1cy5jOjkzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk0MQorIzogd3Qtc3RhdHVzLmM6OTM5CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjk0NAorIzogd3Qtc3RhdHVzLmM6OTQyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NDYKKyM6IHd0LXN0YXR1cy5jOjk0NAogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzo5NTYKKyM6IHd0LXN0YXR1cy5jOjk1NAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLiIKIG1zZ3N0ciAiIgogCisjOiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiIgorCisjOiB3dC1zdGF0dXMuYzo5NjEKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiIgorCiAjOiB3dC1zdGF0dXMuYzo5NjMKLW1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgorbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgogbXNnc3RyICIiCiAKICM6IHd0LXN0YXR1cy5jOjk3MgpAQCAtMTMyMSwxMjMgKzE0NzksMTIyIEBACiBtc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzUKKyM6IHd0LXN0YXR1cy5jOjExNzMKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjExODYKKyM6IHd0LXN0YXR1cy5jOjExODAKK21zZ2lkICJyZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gIgorbXNnc3RyICIiCisKKyM6IHd0LXN0YXR1cy5jOjExODcKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGF0ICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg4CisjOiB3dC1zdGF0dXMuYzoxMTg5CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBmcm9tICIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMTkxCisjOiB3dC1zdGF0dXMuYzoxMTkyCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA4CisjOiB3dC1zdGF0dXMuYzoxMjA5CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTIyMgorIzogd3Qtc3RhdHVzLmM6MTIyMwogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjI0CisjOiB3dC1zdGF0dXMuYzoxMjI1CiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjI4CisjOiB3dC1zdGF0dXMuYzoxMjI5CiAjLCBjLWZvcm1hdAotbXNnaWQgIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICAnc3RhdHVzIC11bm8nIgotbXNnc3RyICIiCi0KLSM6IHd0LXN0YXR1cy5jOjEyMzIKLW1zZ2lkICJtYXkgc3BlZWQgaXQgdXAsIGJ1dCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBmb3JnZXQgdG8gYWRkIgorbXNnaWQgIiIKKyJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAnc3RhdHVzIC11bm8nXG4iCisibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZFxuIgorIm5ldyBmaWxlcyB5b3Vyc2VsZiAoc2VlICdnaXQgaGVscCBzdGF0dXMnKS4iCiBtc2dzdHIgIiIKIAogIzogd3Qtc3RhdHVzLmM6MTIzNQotbXNnaWQgIm5ldyBmaWxlcyB5b3Vyc2VsZiAoc2VlICdnaXQgaGVscCBzdGF0dXMnKS4iCi1tc2dzdHIgIiIKLQotIzogd3Qtc3RhdHVzLmM6MTIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDAKKyM6IHd0LXN0YXR1cy5jOjEyMzcKIG1zZ2lkICIgKHVzZSAtdSBvcHRpb24gdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDYKKyM6IHd0LXN0YXR1cy5jOjEyNDMKIG1zZ2lkICJObyBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSBcImdpdCBhZGRcIiBhbmQvb3IgXCJnaXQgY29tbWl0IC1hXCIpXG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NAorIzogd3Qtc3RhdHVzLmM6MTI1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdFxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTcKKyM6IHd0LXN0YXR1cy5jOjEyNTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudCAodXNlIFwiZ2l0IGFkZFwiIHRvICIKICJ0cmFjaylcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwCisjOiB3dC1zdGF0dXMuYzoxMjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMKKyM6IHd0LXN0YXR1cy5jOjEyNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NiB3dC1zdGF0dXMuYzoxMjcxCisjOiB3dC1zdGF0dXMuYzoxMjYzIHd0LXN0YXR1cy5jOjEyNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXRcbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY5CisjOiB3dC1zdGF0dXMuYzoxMjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgIiIKIAotIzogd3Qtc3RhdHVzLmM6MTI3MworIzogd3Qtc3RhdHVzLmM6MTI3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyBkaXJlY3RvcnkgY2xlYW5cbiIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMzgxCisjOiB3dC1zdGF0dXMuYzoxMzc4CiBtc2dpZCAiSEVBRCAobm8gYnJhbmNoKSIKIG1zZ3N0ciAiIgogCi0jOiB3dC1zdGF0dXMuYzoxMzg3CisjOiB3dC1zdGF0dXMuYzoxMzg0CiBtc2dpZCAiSW5pdGlhbCBjb21taXQgb24gIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDIKKyM6IHd0LXN0YXR1cy5jOjEzOTkKIG1zZ2lkICJiZWhpbmQgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MDUgd3Qtc3RhdHVzLmM6MTQwOAorIzogd3Qtc3RhdHVzLmM6MTQwMiB3dC1zdGF0dXMuYzoxNDA1CiBtc2dpZCAiYWhlYWQgIgogbXNnc3RyICIiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MTAKKyM6IHd0LXN0YXR1cy5jOjE0MDcKIG1zZ2lkICIsIGJlaGluZCAiCiBtc2dzdHIgIiIKIAotIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNDIKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKIG1zZ3N0ciAiIgpAQCAtMTQ0NiwxMjUgKzE2MDMsNiBAQAogbXNnaWQgImdpdCBhZGQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjYzCi0jLCBjLWZvcm1hdAotbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzo2OCBidWlsdGluL2NvbW1pdC5jOjIzMwotbXNnaWQgInVwZGF0aW5nIGZpbGVzIGZhaWxlZCIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjc4Ci0jLCBjLWZvcm1hdAotbXNnaWQgInJlbW92ZSAnJXMnXG4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoxNDgKLW1zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjE1MSBidWlsdGluL2FkZC5jOjQ2MCBidWlsdGluL3JtLmM6Mjc1Ci0jLCBjLWZvcm1hdAotbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyMzQKLW1zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNDQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNDgKLW1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI1NQotbXNnaWQgIkVtcHR5IHBhdGNoLiBBYm9ydGVkLiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI2MQotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI3MQotbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI3NyBidWlsdGluL2NsZWFuLmM6MTYxIGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKLSM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzYgYnVpbHRpbi9wdXNoLmM6NDI1IGJ1aWx0aW4vcmVtb3RlLmM6MTI1MwotIzogYnVpbHRpbi9ybS5jOjIwNgotbXNnaWQgImRyeSBydW4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNzggYnVpbHRpbi9hcHBseS5jOjQ0MDkgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQotIzogYnVpbHRpbi9jb21taXQuYzoxMTUyIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMwotIzogYnVpbHRpbi9sb2cuYzoxNTE0IGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgotbXNnaWQgImJlIHZlcmJvc2UiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyODAKLW1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgxIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwIGJ1aWx0aW4vcmVzZXQuYzoyNTgKLW1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MgotbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MwotbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI4NAotbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg1Ci1tc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg2Ci1tc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg3Ci1tc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg4Ci1tc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjI4OQotbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2FkZC5jOjMxMQotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzEyCi1tc2dpZCAibm8gZmlsZXMgYWRkZWQiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9hZGQuYzozMTgKLW1zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgotbXNnc3RyICIiCi0KICMuCiAjLiAqIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCAiZ2l0IGFkZCAtcCIgYW5kIG1vc3QgR2l0CiAjLiAqIGNvbW1hbmRzLCB3ZSBzaG91bGQgZGVmYXVsdCB0byBiZWluZyB0cmVlLXdpZGUsIGJ1dApAQCAtMTU3NSw3ICsxNjEzLDcgQEAKICMuICogdG8gdHJlZS13aWRlLCBrZWVwaW5nIHRoZSB3YXJuaW5nIGZvciBhIHdoaWxlLCBhbmQKICMuICogZXZlbnR1YWxseSB3ZSBjYW4gZHJvcCB0aGUgd2FybmluZy4KICMuCi0jOiBidWlsdGluL2FkZC5jOjMzNQorIzogYnVpbHRpbi9hZGQuYzo1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGJlaGF2aW9yIG9mICdnaXQgYWRkICVzIChvciAlcyknIHdpdGggbm8gcGF0aCBhcmd1bWVudCBmcm9tIGFcbiIKQEAgLTE1OTIsMzMgKzE2MzAsMTczIEBACiAiICAob3IgZ2l0IGFkZCAlcyAuKVxuIgogIlxuIgogIldpdGggdGhlIGN1cnJlbnQgR2l0IHZlcnNpb24sIHRoZSBjb21tYW5kIGlzIHJlc3RyaWN0ZWQgdG8gdGhlIGN1cnJlbnQgIgotImRpcmVjdG9yeS4iCisiZGlyZWN0b3J5LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzgxCisjOiBidWlsdGluL2FkZC5jOjEwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IHJhbiAnZ2l0IGFkZCcgd2l0aCBuZWl0aGVyICctQSAoLS1hbGwpJyBvciAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCisid2hvc2UgYmVoYXZpb3VyIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAgd2l0aCByZXNwZWN0IHRvIHBhdGhzIHlvdSByZW1vdmVkLlxuIgorIlBhdGhzIGxpa2UgJyVzJyB0aGF0IGFyZVxuIgorInJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZSBhcmUgaWdub3JlZCB3aXRoIHRoaXMgdmVyc2lvbiBvZiBHaXQuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoc3BlYz4nLCB3aGljaCBpcyB0aGUgY3VycmVudCBkZWZhdWx0LFxuIgorIiAgaWdub3JlcyBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPHBhdGhzcGVjPicgd2lsbCBsZXQgeW91IGFsc28gcmVjb3JkIHRoZSByZW1vdmFscy5cbiIKKyJcbiIKKyJSdW4gJ2dpdCBzdGF0dXMnIHRvIGNoZWNrIHRoZSBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNTIKK21zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICclcydcbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjI1MworbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTczIGJ1aWx0aW4vcm0uYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjMzOQorbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjM1NAorbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjM1OQorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCittc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzc3Cittc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY4Cittc2dpZCAiZHJ5IHJ1biIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCisjOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCittc2dpZCAiYmUgdmVyYm9zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjM5NworbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQorbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk5Cittc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAwCittc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAxCittc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzo0MDIKK21zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzo0MDMKK21zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCittc2dzdHIgIiIKKworIy4gdGFrZXMgbm8gYXJndW1lbnRzCisjOiBidWlsdGluL2FkZC5jOjQwNgorbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA4Cittc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA5Cittc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjQxMAorbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2FkZC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDMzCittc2dpZCAibm8gZmlsZXMgYWRkZWQiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9hZGQuYzo0MzkKK21zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDc4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzozODMKKyM6IGJ1aWx0aW4vYWRkLmM6NDk2CiBtc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FkZC5jOjQxNAorIzogYnVpbHRpbi9hZGQuYzo1MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90aGluZyBzcGVjaWZpZWQsIG5vdGhpbmcgYWRkZWQuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MTUKKyM6IGJ1aWx0aW4vYWRkLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heWJlIHlvdSB3YW50ZWQgdG8gc2F5ICdnaXQgYWRkIC4nP1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDIxIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6NjcgYnVpbHRpbi9jbGVhbi5jOjIwNAotIzogYnVpbHRpbi9jb21taXQuYzoyOTMgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyMzUKKyM6IGJ1aWx0aW4vYWRkLmM6NTMzIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYxIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzEyIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6Mjk3CiBtc2dpZCAiaW5kZXggZmlsZSBjb3JydXB0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDgxIGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIiCiAKQEAgLTE3OTUsMjkzICsxOTczLDI5MyBAQAogbXNnaWQgImNhbm5vdCBjaGVja291dCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5MworIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCBvZiAlcyBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNzMgYnVpbHRpbi9hcHBseS5jOjMzOTUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTc0IGJ1aWx0aW4vYXBwbHkuYzozMzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJXMgaGFzIGJlZW4gcmVuYW1lZC9kZWxldGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU0IGJ1aWx0aW4vYXBwbHkuYzozNDA5CisjOiBidWlsdGluL2FwcGx5LmM6MzI1NSBidWlsdGluL2FwcGx5LmM6MzQxMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTggYnVpbHRpbi9hcHBseS5jOjM0MDEgYnVpbHRpbi9hcHBseS5jOjM0MjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU5IGJ1aWx0aW4vYXBwbHkuYzozNDAyIGJ1aWx0aW4vYXBwbHkuYzozNDI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI2MyBidWlsdGluL2FwcGx5LmM6MzQxNworIzogYnVpbHRpbi9hcHBseS5jOjMyNjQgYnVpbHRpbi9hcHBseS5jOjM0MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IG1hdGNoIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMzY1CisjOiBidWlsdGluL2FwcGx5LmM6MzM2NgogbXNnaWQgInJlbW92YWwgcGF0Y2ggbGVhdmVzIGZpbGUgY29udGVudHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM0MzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNDM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiB3cm9uZyB0eXBlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM2CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBoYXMgdHlwZSAlbywgZXhwZWN0ZWQgJW8iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1MzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTYwCisjOiBidWlsdGluL2FwcGx5LmM6MzU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU3MworIzogYnVpbHRpbi9hcHBseS5jOjM1NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjOiBidWlsdGluL2FwcGx5LmM6MzU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE1IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODUxCiAjLCBjLWZvcm1hdAotbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1YnByb2plY3QgJXMiCittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VibW9kdWxlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU0CisjOiBidWlsdGluL2FwcGx5LmM6Mzg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gc3RhdCBuZXdseSBjcmVhdGVkIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1OQorIzogYnVpbHRpbi9hcHBseS5jOjM4NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSBiYWNraW5nIHN0b3JlIGZvciBuZXdseSBjcmVhdGVkIGZpbGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NjIgYnVpbHRpbi9hcHBseS5jOjM5NzAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYzIGJ1aWx0aW4vYXBwbHkuYzozOTcxCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhZGQgY2FjaGUgZW50cnkgZm9yICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODk1CisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzk0NAorIzogYnVpbHRpbi9hcHBseS5jOjM5NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjOiBidWlsdGluL2FwcGx5LmM6NDAzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBsaWVkIHBhdGNoICVzIGNsZWFubHkuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDA0MAogbXNnaWQgImludGVybmFsIGVycm9yIgogbXNnc3RyICIiCiAKICMuIFNheSB0aGlzIGV2ZW4gd2l0aG91dCAtLXZlcmJvc2UKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQyCisjOiBidWlsdGluL2FwcGx5LmM6NDA0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3QuLi4iCiBtc2dpZF9wbHVyYWwgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdHMuLi4iCiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDczCisjOiBidWlsdGluL2FwcGx5LmM6NDA3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJIdW5rICMlZCBhcHBsaWVkIGNsZWFubHkuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc2CisjOiBidWlsdGluL2FwcGx5LmM6NDA3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWplY3RlZCBodW5rICMlZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI3CiBtc2dpZCAidW5yZWNvZ25pemVkIGlucHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM3CisjOiBidWlsdGluL2FwcGx5LmM6NDIzOAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTYgYnVpbHRpbi9hcHBseS5jOjQzNTkgYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MwogbXNnaWQgInBhdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU4CiBtc2dpZCAiZG9uJ3QgYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjEKIG1zZ2lkICJhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYyCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MwogbXNnaWQgIm51bSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNjQKIG1zZ2lkICJyZW1vdmUgPG51bT4gbGVhZGluZyBzbGFzaGVzIGZyb20gdHJhZGl0aW9uYWwgZGlmZiBwYXRocyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjcKIG1zZ2lkICJpZ25vcmUgYWRkaXRpb25zIG1hZGUgYnkgdGhlIHBhdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY4CisjOiBidWlsdGluL2FwcGx5LmM6NDM2OQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzMKIG1zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc0CisjOiBidWlsdGluL2FwcGx5LmM6NDM3NQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgYSBzdW1tYXJ5IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc3CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIHNlZSBpZiB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzkKIG1zZ2lkICJtYWtlIHN1cmUgdGhlIHBhdGNoIGlzIGFwcGxpY2FibGUgdG8gdGhlIGN1cnJlbnQgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgxCiBtc2dpZCAiYXBwbHkgYSBwYXRjaCB3aXRob3V0IHRvdWNoaW5nIHRoZSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgzCiBtc2dpZCAiYWxzbyBhcHBseSB0aGUgcGF0Y2ggKHVzZSB3aXRoIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg1CiBtc2dpZCAiYXR0ZW1wdCB0aHJlZS13YXkgbWVyZ2UgaWYgYSBwYXRjaCBkb2VzIG5vdCBhcHBseSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NgorIzogYnVpbHRpbi9hcHBseS5jOjQzODcKIG1zZ2lkICJidWlsZCBhIHRlbXBvcmFyeSBpbmRleCBiYXNlZCBvbiBlbWJlZGRlZCBpbmRleCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4OCBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MgogbXNnaWQgInBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBOVUwgY2hhcmFjdGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkxCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MgogbXNnaWQgImVuc3VyZSBhdCBsZWFzdCA8bj4gbGluZXMgb2YgY29udGV4dCBtYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MgorIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKIG1zZ2lkICJhY3Rpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk0CiBtc2dpZCAiZGV0ZWN0IG5ldyBvciBtb2RpZmllZCBsaW5lcyB0aGF0IGhhdmUgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTYgYnVpbHRpbi9hcHBseS5jOjQzOTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk3IGJ1aWx0aW4vYXBwbHkuYzo0NDAwCiBtc2dpZCAiaWdub3JlIGNoYW5nZXMgaW4gd2hpdGVzcGFjZSB3aGVuIGZpbmRpbmcgY29udGV4dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwMgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDMKIG1zZ2lkICJhcHBseSB0aGUgcGF0Y2ggaW4gcmV2ZXJzZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDUKIG1zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDcKIG1zZ2lkICJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwOAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDkKIG1zZ2lkICJhbGxvdyBvdmVybGFwcGluZyBodW5rcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxMQorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTIKIG1zZ2lkICJ0b2xlcmF0ZSBpbmNvcnJlY3RseSBkZXRlY3RlZCBtaXNzaW5nIG5ldy1saW5lIGF0IHRoZSBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTUKIG1zZ2lkICJkbyBub3QgdHJ1c3QgdGhlIGxpbmUgY291bnRzIGluIHRoZSBodW5rIGhlYWRlcnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTgKIG1zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0MAogbXNnaWQgIi0tM3dheSBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ0NworIzogYnVpbHRpbi9hcHBseS5jOjQ0NDgKIG1zZ2lkICItLWluZGV4IG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ1MQogbXNnaWQgIi0tY2FjaGVkIG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW4ndCBvcGVuIHBhdGNoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9yIgogbXNnaWRfcGx1cmFsICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHJbMF0gIiIKIG1zZ3N0clsxXSAiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4NiBidWlsdGluL2FwcGx5LmM6NDQ5NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODcgYnVpbHRpbi9hcHBseS5jOjQ0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJWQgbGluZSBhZGRzIHdoaXRlc3BhY2UgZXJyb3JzLiIKIG1zZ2lkX3BsdXJhbCAiJWQgbGluZXMgYWRkIHdoaXRlc3BhY2UgZXJyb3JzLiIKQEAgLTIxMzUsMTAzICsyMzEzLDEwMyBAQAogbXNnaWQgInVwZGF0ZSBCSVNFQ1RfSEVBRCBpbnN0ZWFkIG9mIGNoZWNraW5nIG91dCB0aGUgY3VycmVudCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjI1CisjOiBidWlsdGluL2JsYW1lLmM6MjYKIG1zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzozMCBidWlsdGluL3Nob3J0bG9nLmM6MTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMQogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzUwCisjOiBidWlsdGluL2JsYW1lLmM6MjI3NgogbXNnaWQgIlNob3cgYmxhbWUgZW50cmllcyBhcyB3ZSBmaW5kIHRoZW0sIGluY3JlbWVudGFsbHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CiBtc2dpZCAiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzgKIG1zZ2lkICJEbyBub3QgdHJlYXQgcm9vdCBjb21taXRzIGFzIGJvdW5kYXJpZXMgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKIG1zZ2lkICJTaG93IG91dHB1dCBzY29yZSBmb3IgYmxhbWUgZW50cmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODYKIG1zZ2lkICJTaG93IHJhdyB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg3CiBtc2dpZCAiU2hvdyBsb25nIGNvbW1pdCBTSEExIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4OAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MAogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MQogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OCBidWlsdGluL2JsYW1lLmM6MjM2OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQgYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJzY29yZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTQKIG1zZ2lkICJGaW5kIGxpbmUgY29waWVzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgIkZpbmQgbGluZSBtb3ZlbWVudHMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAibixtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIlByb2Nlc3Mgb25seSBsaW5lIHJhbmdlIG4sbSwgY291bnRpbmcgZnJvbSAxIgogbXNnc3RyICIiCiAKQEAgLTIyNTEsMzYwICsyNDI5LDM2MCBAQAogbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdICgtbSB8IC1NKSBbPG9sZGJyYW5jaD5dIDxuZXdicmFuY2g+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTQ2CisjOiBidWlsdGluL2JyYW5jaC5jOjE1MAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBoYXMgYmVlbiBtZXJnZWQgdG9cbiIKICIgICAgICAgICAnJXMnLCBidXQgbm90IHlldCBtZXJnZWQgdG8gSEVBRC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBpcyBub3QgeWV0IG1lcmdlZCB0b1xuIgogIiAgICAgICAgICclcycsIGV2ZW4gdGhvdWdoIGl0IGlzIG1lcmdlZCB0byBIRUFELiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjE2NAorIzogYnVpbHRpbi9icmFuY2guYzoxNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTY4CisjOiBidWlsdGluL2JyYW5jaC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGJyYW5jaCAnJXMnIGlzIG5vdCBmdWxseSBtZXJnZWQuXG4iCiAiSWYgeW91IGFyZSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdCwgcnVuICdnaXQgYnJhbmNoIC1EICVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTg1CiBtc2dpZCAiVXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIwOQorIzogYnVpbHRpbi9icmFuY2guYzoyMTMKIG1zZ2lkICJjYW5ub3QgdXNlIC1hIHdpdGggLWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjE5CiBtc2dpZCAiQ291bGRuJ3QgbG9vayB1cCBjb21taXQgb2JqZWN0IGZvciBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjIzCisjOiBidWlsdGluL2JyYW5jaC5jOjIyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZGVsZXRlIHRoZSBicmFuY2ggJyVzJyB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBvbi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbW90ZSBicmFuY2ggJyVzJyBub3QgZm91bmQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjM3CisjOiBidWlsdGluL2JyYW5jaC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBub3QgZm91bmQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUxCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciBkZWxldGluZyByZW1vdGUgYnJhbmNoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU5CisjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNjAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRlbGV0ZWQgYnJhbmNoICVzICh3YXMgJXMpLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MzYyCisjOiBidWlsdGluL2JyYW5jaC5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBwb2ludCBhdCBhIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQzNAorIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDM2CisjOiBidWlsdGluL2JyYW5jaC5jOjQ1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJbYmVoaW5kICVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0MAorIzogYnVpbHRpbi9icmFuY2guYzo0NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWQsIGJlaGluZCAlZF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ3MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTAKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTYyCisjOiBidWlsdGluL2JyYW5jaC5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCByZWJhc2luZyAlcykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1NjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2OAorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTcxCisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogbXNnaWQgIihubyBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjE3CisjOiBidWlsdGluL2JyYW5jaC5jOjYzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY0OQorIzogYnVpbHRpbi9icmFuY2guYzo2NjkKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCiBtc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgYnJhbmNoIG5hbWU6ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2ODcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3CiBtc2dpZCAiQnJhbmNoIHJlbmFtZSBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2OTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzExCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbmFtZWQgYSBtaXNuYW1lZCBicmFuY2ggJyVzJyBhd2F5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njk1CisjOiBidWlsdGluL2JyYW5jaC5jOjcxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzAyCisjOiBidWlsdGluL2JyYW5jaC5jOjcyMgogbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcxNworIzogYnVpbHRpbi9icmFuY2guYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFsZm9ybWVkIG9iamVjdCBuYW1lICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzQxCisjOiBidWlsdGluL2JyYW5jaC5jOjc2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgd3JpdGUgYnJhbmNoIGRlc2NyaXB0aW9uIHRlbXBsYXRlOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3MQorIzogYnVpbHRpbi9icmFuY2guYzo3OTEKIG1zZ2lkICJHZW5lcmljIG9wdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkzCiBtc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk0CiBtc2dpZCAic3VwcHJlc3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3NQorIzogYnVpbHRpbi9icmFuY2guYzo3OTUKIG1zZ2lkICJzZXQgdXAgdHJhY2tpbmcgbW9kZSAoc2VlIGdpdC1wdWxsKDEpKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3NworIzogYnVpbHRpbi9icmFuY2guYzo3OTcKIG1zZ2lkICJjaGFuZ2UgdXBzdHJlYW0gaW5mbyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4MQorIzogYnVpbHRpbi9icmFuY2guYzo4MDEKIG1zZ2lkICJ1c2UgY29sb3JlZCBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCiBtc2dpZCAiYWN0IG9uIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4NSBidWlsdGluL2JyYW5jaC5jOjc5MSBidWlsdGluL2JyYW5jaC5jOjgxMgotIzogYnVpbHRpbi9icmFuY2guYzo4MTggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MDUgYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4IGJ1aWx0aW4vY29tbWl0LmM6MTQzMyBidWlsdGluL2NvbW1pdC5jOjE0MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNSBidWlsdGluL2NvbW1pdC5jOjE0MzYgYnVpbHRpbi90YWcuYzo0NjgKIG1zZ2lkICJjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODYgYnVpbHRpbi9icmFuY2guYzo3OTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA2IGJ1aWx0aW4vYnJhbmNoLmM6ODEyCiBtc2dpZCAicHJpbnQgb25seSBicmFuY2hlcyB0aGF0IGNvbnRhaW4gdGhlIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OAorIzogYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJTcGVjaWZpYyBnaXQtYnJhbmNoIGFjdGlvbnM6IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk5CisjOiBidWlsdGluL2JyYW5jaC5jOjgxOQogbXNnaWQgImxpc3QgYm90aCByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMQogbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMgogbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI0CiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2gsIGV2ZW4gaWYgdGFyZ2V0IGV4aXN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNQorIzogYnVpbHRpbi9icmFuY2guYzo4MjUKIG1zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNgorIzogYnVpbHRpbi9icmFuY2guYzo4MjYKIG1zZ2lkICJjcmVhdGUgdGhlIGJyYW5jaCdzIHJlZmxvZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOAorIzogYnVpbHRpbi9icmFuY2guYzo4MjgKIG1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCiBtc2dpZCAicHJpbnQgb25seSBub3QgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjg0MgogbXNnaWQgImxpc3QgYnJhbmNoZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzNQorIzogYnVpbHRpbi9icmFuY2guYzo4NTUKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSBIRUFEIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MCBidWlsdGluL2Nsb25lLmM6NjA5CisjOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjMwCiBtc2dpZCAiSEVBRCBub3QgZm91bmQgYmVsb3cgcmVmcy9oZWFkcyEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCiBtc2dpZCAiLS1jb2x1bW4gYW5kIC0tdmVyYm9zZSBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY5IGJ1aWx0aW4vYnJhbmNoLmM6OTA4CisjOiBidWlsdGluL2JyYW5jaC5jOjg4OSBidWlsdGluL2JyYW5jaC5jOjkyOAogbXNnaWQgImJyYW5jaCBuYW1lIHJlcXVpcmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg0CisjOiBidWlsdGluL2JyYW5jaC5jOjkwNAogbXNnaWQgIkNhbm5vdCBnaXZlIGRlc2NyaXB0aW9uIHRvIGRldGFjaGVkIEhFQUQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA5CiBtc2dpZCAiY2Fubm90IGVkaXQgZGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4OTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk5CisjOiBidWlsdGluL2JyYW5jaC5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM0CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgZm9yIGEgcmVuYW1lIG9wZXJhdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkxOQorIzogYnVpbHRpbi9icmFuY2guYzo5MzkKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyB0byBzZXQgbmV3IHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTIzCisjOiBidWlsdGluL2JyYW5jaC5jOjk0MwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiY291bGQgbm90IHNldCB1cHN0cmVhbSBvZiBIRUFEIHRvICVzIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MjYgYnVpbHRpbi9icmFuY2guYzo5NDggYnVpbHRpbi9icmFuY2guYzo5NzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQyCisjOiBidWlsdGluL2JyYW5jaC5jOjk2MgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2CisjOiBidWlsdGluL2JyYW5jaC5jOjk2NgogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2NworIzogYnVpbHRpbi9icmFuY2guYzo5ODcKIG1zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCiBtc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3NgorIzogYnVpbHRpbi9icmFuY2guYzo5OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtLXNldC11cHN0cmVhbSBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gQ29uc2lkZXIgdXNpbmcgLS0iCiAidHJhY2sgb3IgLS1zZXQtdXBzdHJlYW0tdG9cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5MworIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTI2MTIsMTIgKzI3OTAsMTIgQEAKICJcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NAorIzogYnVpbHRpbi9icmFuY2guYzoxMDE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC1kICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byAlc1xuIgogbXNnc3RyICIiCkBAIC0yNjM1LDQzICsyODEzLDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjQ4CisjOiBidWlsdGluL2NhdC1maWxlLmM6Mjg2CiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGxpc3Rfb2Zfb2JqZWN0cz4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI2NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyMwogbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI0CiBtc2dpZCAic2hvdyBvYmplY3QgdHlwZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI1CiBtc2dpZCAic2hvdyBvYmplY3Qgc2l6ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjcwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI3CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzEKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjgKIG1zZ2lkICJwcmV0dHktcHJpbnQgb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjczCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzMwCiBtc2dpZCAiZm9yIGJsb2Igb2JqZWN0cywgcnVuIHRleHRjb252IG9uIG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjc4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICIiCiAKQEAgLTI2OTksMzAgKzI4NzcsNTUgQEAKIG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNDEgYnVpbHRpbi9nYy5jOjE3NworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA1NCBidWlsdGluL2djLmM6MTc3CiBtc2dpZCAic3VwcHJlc3MgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTUxCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjI2Cittc2dpZCAic2hvdyBub24tbWF0Y2hpbmcgaW5wdXQgcGF0aHMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDMKIG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBwYXRobmFtZXMgd2l0aCAtLXN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU0CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgogbXNnaWQgIi16IG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCAtLXN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU2CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAogbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYwCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYyCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgogbXNnc3RyICIiCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo4Cittc2dpZCAiZ2l0IGNoZWNrLW1haWxtYXAgW29wdGlvbnNdIDxjb250YWN0Pi4uLiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoxMworbXNnaWQgImFsc28gcmVhZCBjb250YWN0cyBmcm9tIHN0ZGluIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSBjb250YWN0OiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo0NworbXNnaWQgIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIKK21zZ3N0ciAiIgorCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTI2CiBtc2dpZCAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICIiCkBAIC0yNzc1LDEwNiArMjk3OCwxMDYgQEAKIG1zZ2lkICJnaXQgY2hlY2tvdXQgW29wdGlvbnNdIFs8YnJhbmNoPl0gLS0gPGZpbGU+Li4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNyBidWlsdGluL2NoZWNrb3V0LmM6MTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG91ciB2ZXJzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTggYnVpbHRpbi9jaGVja291dC5jOjE1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExOSBidWlsdGluL2NoZWNrb3V0LmM6MTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIHRoZWlyIHZlcnNpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEzNAorIzogYnVpbHRpbi9jaGVja291dC5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnOiBjYW5ub3QgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIxMgorIzogYnVpbHRpbi9jaGVja291dC5jOjIxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkIG1lcmdlIHJlc3VsdCBmb3IgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjM2IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzkgYnVpbHRpbi9jaGVja291dC5jOjI0MgotIzogYnVpbHRpbi9jaGVja291dC5jOjI0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjIzNyBidWlsdGluL2NoZWNrb3V0LmM6MjQwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHVwZGF0aW5nIHBhdGhzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDggYnVpbHRpbi9jaGVja291dC5jOjI1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjU0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAogbXNnaWQgImNvcnJ1cHQgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MzI2IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjQ3NworIzogYnVpbHRpbi9jaGVja291dC5jOjQ4MAogbXNnaWQgInlvdSBuZWVkIHRvIHJlc29sdmUgeW91ciBjdXJyZW50IGluZGV4IGZpcnN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo1OTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjMxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjY1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ3IGJ1aWx0aW4vY2hlY2tvdXQuYzo5ODQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTUgYnVpbHRpbi9jaGVja291dC5jOjk5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYnJhbmNoICclcydcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzA1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiIKIAogIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCkBAIC0yODg5LDcgKzMwOTIsNyBAQAogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjcyOQorIzogYnVpbHRpbi9jaGVja291dC5jOjczNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8ga2VlcCB0aGVtIGJ5IGNyZWF0aW5nIGEgbmV3IGJyYW5jaCwgdGhpcyBtYXkgYmUgYSBnb29kIHRpbWVcbiIKQEAgLTI4OTksNDQ2ICszMTAyLDU0NyBAQAogIlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjcKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciBpbiByZXZpc2lvbiB3YWxrIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NjMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3NzEKIG1zZ2lkICJQcmV2aW91cyBIRUFEIHBvc2l0aW9uIHdhcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzkwIGJ1aWx0aW4vY2hlY2tvdXQuYzo5NzkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTggYnVpbHRpbi9jaGVja291dC5jOjk5MgogbXNnaWQgIllvdSBhcmUgb24gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIiIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICIiCiAKICMuIGNhc2UgKDEpOiB3YW50IGEgdHJlZQotIzogYnVpbHRpbi9jaGVja291dC5jOjk1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA0IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEyCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTcgYnVpbHRpbi9jaGVja291dC5jOjEwMjAgYnVpbHRpbi9jaGVja291dC5jOjEwMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0MiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CiBtc2dpZCAiY3JlYXRlIGFuZCBjaGVja291dCBhIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CiBtc2dpZCAiY3JlYXRlL3Jlc2V0IGFuZCBjaGVja291dCBhIGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKIG1zZ2lkICJjcmVhdGUgcmVmbG9nIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MAogbXNnaWQgImRldGFjaCB0aGUgSEVBRCBhdCBuYW1lZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYxCiBtc2dpZCAic2V0IHVwc3RyZWFtIGluZm8gZm9yIG5ldyBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCiBtc2dpZCAibmV3IGJyYW5jaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgdW5wYXJlbnRlZCBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY0CiBtc2dpZCAiY2hlY2tvdXQgb3VyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NgogbXNnaWQgImNoZWNrb3V0IHRoZWlyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAogbXNnaWQgImZvcmNlIGNoZWNrb3V0ICh0aHJvdyBhd2F5IGxvY2FsIG1vZGlmaWNhdGlvbnMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OQogbXNnaWQgInBlcmZvcm0gYSAzLXdheSBtZXJnZSB3aXRoIHRoZSBuZXcgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoyMTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzIKIG1zZ2lkICJ1cGRhdGUgaWdub3JlZCBmaWxlcyAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTggYnVpbHRpbi9sb2cuYzoxMTQ5IHBhcnNlLW9wdGlvbnMuaDoyNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CiBtc2dpZCAic3R5bGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcyCiBtc2dpZCAiY29uZmxpY3Qgc3R5bGUgKG1lcmdlIG9yIGRpZmYzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKK21zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwODYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKIG1zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYwCiBtc2dpZCAiaW52YWxpZCBwYXRoIHNwZWNpZmljYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgdXBkYXRlIHBhdGhzIGFuZCBzd2l0Y2ggdG8gYnJhbmNoICclcycgYXQgdGhlIHNhbWUgdGltZS5cbiIKICJEaWQgeW91IGludGVuZCB0byBjaGVja291dCAnJXMnIHdoaWNoIGNhbiBub3QgYmUgcmVzb2x2ZWQgYXMgY29tbWl0PyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1NworIzogYnVpbHRpbi9jaGVja291dC5jOjExNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCBkb2VzIG5vdCB0YWtlIGEgcGF0aCBhcmd1bWVudCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIzogYnVpbHRpbi9jbGVhbi5jOjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjcKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMgogIywgYy1mb3JtYXQKIG1zZ2lkICJXb3VsZCBza2lwIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjgKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJIdWggKCVzKT8iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY1OAorIywgYy1mb3JtYXQKK21zZ2lkICJJbnB1dCBpZ25vcmUgcGF0dGVybnM+PiAiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE2Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODkKK21zZ2lkICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBzZWxlY3QgaXRlbXMgdG8gYmUgZGVsZXRlZCBieSBudW1iZXJzXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGNvbmZpcm0gZWFjaCBkZWxldGlvbiAobGlrZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIHN0b3AgY2xlYW5pbmdcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gdGhpcyBzY3JlZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gaGVscCBmb3IgcHJvbXB0IHNlbGVjdGlvbiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE2Cittc2dpZCAiKioqIENvbW1hbmRzICoqKiIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgorbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODQyCittc2dpZCAiTm8gbW9yZSBmaWxlcyB0byBjbGVhbiwgZXhpdGluZy4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3NAogbXNnaWQgImRvIG5vdCBwcmludCBuYW1lcyBvZiBmaWxlcyByZW1vdmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzYKIG1zZ2lkICJmb3JjZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY0CisjOiBidWlsdGluL2NsZWFuLmM6ODc3Cittc2dpZCAiaW50ZXJhY3RpdmUgY2xlYW5pbmciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3OQogbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY1IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIgYnVpbHRpbi9ncmVwLmM6NzE3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzEgYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MCBidWlsdGluL2Rlc2NyaWJlLmM6NDIwIGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25hbWUtcmV2LmM6MzE1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJwYXR0ZXJuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODEKIG1zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY3CisjOiBidWlsdGluL2NsZWFuLmM6ODgyCiBtc2dpZCAicmVtb3ZlIGlnbm9yZWQgZmlsZXMsIHRvbyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY5CisjOiBidWlsdGluL2NsZWFuLmM6ODg0CiBtc2dpZCAicmVtb3ZlIG9ubHkgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTg3CisjOiBidWlsdGluL2NsZWFuLmM6OTAyCiBtc2dpZCAiLXggYW5kIC1YIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNworIzogYnVpbHRpbi9jbGVhbi5jOjkwOQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyAiCisicmVmdXNpbmcgdG8gY2xlYW4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjM2CiBtc2dpZCAiZ2l0IGNsb25lIFtvcHRpb25zXSBbLS1dIDxyZXBvPiBbPGRpcj5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAotIzogYnVpbHRpbi9wdXNoLmM6NDM2CisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MgogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MgogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6NzYKIG1zZ2lkICJkb24ndCB1c2UgbG9jYWwgaGFyZGxpbmtzLCBhbHdheXMgY29weSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OAogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MSBidWlsdGluL2Nsb25lLmM6ODMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MCBidWlsdGluL2Nsb25lLmM6ODIKIG1zZ2lkICJpbml0aWFsaXplIHN1Ym1vZHVsZXMgaW4gdGhlIGNsb25lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MyBidWlsdGluL2luaXQtZGIuYzo0ODUKIG1zZ2lkICJ0ZW1wbGF0ZS1kaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg1IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgorIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NgogbXNnaWQgImRpcmVjdG9yeSBmcm9tIHdoaWNoIHRlbXBsYXRlcyB3aWxsIGJlIHVzZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg3CisjOiBidWlsdGluL2Nsb25lLmM6ODYKIG1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODggYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAorIzogYnVpbHRpbi9jbG9uZS5jOjg3IGJ1aWx0aW4vY29sdW1uLmM6MjYgYnVpbHRpbi9tZXJnZS1maWxlLmM6NDQKIG1zZ2lkICJuYW1lIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorIzogYnVpbHRpbi9jbG9uZS5jOjkwCiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MgogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk0IGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MyBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYxCiBtc2dpZCAiZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk1CisjOiBidWlsdGluL2Nsb25lLmM6OTQKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk3CisjOiBidWlsdGluL2Nsb25lLmM6OTYKIG1zZ2lkICJjbG9uZSBvbmx5IG9uZSBicmFuY2gsIEhFQUQgb3IgLS1icmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMQorIzogYnVpbHRpbi9jbG9uZS5jOjEwMAogbXNnaWQgInNldCBjb25maWcgaW5zaWRlIHRoZSBuZXcgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjQ0CisjOiBidWlsdGluL2Nsb25lLmM6MjUzCiAjLCBjLWZvcm1hdAotbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgZGlyZWN0b3J5LiIKK21zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIHJlcG9zaXRvcnkuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMDcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzA5IGJ1aWx0aW4vZGlmZi5jOjc3CisjOiBidWlsdGluL2Nsb25lLmM6MzE4IGJ1aWx0aW4vZGlmZi5jOjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxMQorIzogYnVpbHRpbi9jbG9uZS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzI1CisjOiBidWlsdGluL2Nsb25lLmM6MzM0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzdGF0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM0NworIzogYnVpbHRpbi9jbG9uZS5jOjM1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpbmsgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzUxCisjOiBidWlsdGluL2Nsb25lLmM6MzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzc0CisjOiBidWlsdGluL2Nsb25lLmM6MzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImRvbmUuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM4NworIzogYnVpbHRpbi9jbG9uZS5jOjM5NgogbXNnaWQgIiIKICJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCiAiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCiAiYW5kIHJldHJ5IHRoZSBjaGVja291dCB3aXRoICdnaXQgY2hlY2tvdXQgLWYgSEVBRCdcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NDY2CisjOiBidWlsdGluL2Nsb25lLmM6NDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHJlbW90ZSBicmFuY2ggJXMgdG8gY2xvbmUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hlY2tpbmcgY29ubmVjdGl2aXR5Li4uICIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Nsb25lLmM6NTU4CiBtc2dpZCAicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjYwMAorIzogYnVpbHRpbi9jbG9uZS5jOjU2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjYyMQogbXNnaWQgInJlbW90ZSBIRUFEIHJlZmVycyB0byBub25leGlzdGVudCByZWYsIHVuYWJsZSB0byBjaGVja291dC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjMxCisjOiBidWlsdGluL2Nsb25lLmM6NjUyCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzM5CisjOiBidWlsdGluL2Nsb25lLmM6NzYwCiBtc2dpZCAiVG9vIG1hbnkgYXJndW1lbnRzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzQzCisjOiBidWlsdGluL2Nsb25lLmM6NzY0CiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiLS1iYXJlIGFuZCAtLW9yaWdpbiAlcyBvcHRpb25zIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzgKIG1zZ2lkICItLWJhcmUgYW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcwCisjOiBidWlsdGluL2Nsb25lLmM6NzkxCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlcG9zaXRvcnkgJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzc1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk2CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc4NQorIzogYnVpbHRpbi9jbG9uZS5jOjc5OAorbXNnaWQgIi0tbG9jYWwgaXMgaWdub3JlZCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5NQorIzogYnVpbHRpbi9jbG9uZS5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgwOCBidWlsdGluL2Nsb25lLmM6ODIwCisjOiBidWlsdGluL2Nsb25lLmM6ODMxIGJ1aWx0aW4vY2xvbmUuYzo4NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBsZWFkaW5nIGRpcmVjdG9yaWVzIG9mICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxMQorIzogYnVpbHRpbi9jbG9uZS5jOjgzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzMAorIzogYnVpbHRpbi9jbG9uZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMyCisjOiBidWlsdGluL2Nsb25lLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byAnJXMnLi4uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg2NworIzogYnVpbHRpbi9jbG9uZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTE2CisjOiBidWlsdGluL2Nsb25lLmM6OTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW90ZSBicmFuY2ggJXMgbm90IGZvdW5kIGluIHVwc3RyZWFtICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgogbXNnc3RyICIiCiAKQEAgLTMzNzQsMTUgKzM2NzgsMTUgQEAKIG1zZ2lkICItLWNvbW1hbmQgbXVzdCBiZSB0aGUgZmlyc3QgYXJndW1lbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNAorIzogYnVpbHRpbi9jb21taXQuYzozNQogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjQwCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzM5NiwxMTAgKzM3MDAsMTIzIEBACiAiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcKIG1zZ2lkICIiCiAiWW91IGFza2VkIHRvIGFtZW5kIHRoZSBtb3N0IHJlY2VudCBjb21taXQsIGJ1dCBkb2luZyBzbyB3b3VsZCBtYWtlXG4iCiAiaXQgZW1wdHkuIFlvdSBjYW4gcmVwZWF0IHlvdXIgY29tbWFuZCB3aXRoIC0tYWxsb3ctZW1wdHksIG9yIHlvdSBjYW5cbiIKICJyZW1vdmUgdGhlIGNvbW1pdCBlbnRpcmVseSB3aXRoIFwiZ2l0IHJlc2V0IEhFQUReXCIuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MgogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjYwCisjOiBidWlsdGluL2NvbW1pdC5jOjY5Cittc2dpZCAiT3RoZXJ3aXNlLCBwbGVhc2UgdXNlICdnaXQgcmVzZXQnXG4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzo3MgorbXNnaWQgIiIKKyJJZiB5b3Ugd2lzaCB0byBza2lwIHRoaXMgY29tbWl0LCB1c2U6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlRoZW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIHdpbGwgcmVzdW1lIGNoZXJyeS1waWNraW5nXG4iCisidGhlIHJlbWFpbmluZyBjb21taXRzLlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzAyCisjOiBidWlsdGluL2NvbW1pdC5jOjMyMQogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzA4CisjOiBidWlsdGluL2NvbW1pdC5jOjMyNwogbXNnaWQgImludGVyYWN0aXZlIGFkZCBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNDEgYnVpbHRpbi9jb21taXQuYzozNjIgYnVpbHRpbi9jb21taXQuYzo0MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzYwIGJ1aWx0aW4vY29tbWl0LmM6MzgxIGJ1aWx0aW4vY29tbWl0LmM6NDMxCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ld19pbmRleCBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkzCisjOiBidWlsdGluL2NvbW1pdC5jOjQxMgogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5NQorIzogYnVpbHRpbi9jb21taXQuYzo0MTQKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDI1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ0NAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0ZW1wb3JhcnkgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTQyCisjOiBidWlsdGluL2NvbW1pdC5jOjU2MwogbXNnaWQgIm1hbGZvcm1lZCAtLWF1dGhvciBwYXJhbWV0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxNAorIzogYnVpbHRpbi9jb21taXQuYzo2MzUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZnJvbSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxOAorIzogYnVpbHRpbi9jb21taXQuYzo2MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYyNAorIzogYnVpbHRpbi9jb21taXQuYzo2NDUKIG1zZ2lkICJjb21taXQgaGFzIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjYxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjY2NQogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMwCiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGNvbW1pdCB0ZW1wbGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzUwOSw3ICszODI2LDcgQEAKICJhbmQgdHJ5IGFnYWluLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzI1CisjOiBidWlsdGluL2NvbW1pdC5jOjc0NgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zNTE5LDE0ICszODM2LDE0IEBACiAiYW5kIHRyeSBhZ2Fpbi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczNworIzogYnVpbHRpbi9jb21taXQuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKICJ3aXRoICclYycgd2lsbCBiZSBpZ25vcmVkLCBhbmQgYW4gZW1wdHkgbWVzc2FnZSBhYm9ydHMgdGhlIGNvbW1pdC5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc0MgorIzogYnVpbHRpbi9jb21taXQuYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM1MzQsMzUxICszODUxLDM1MSBAQAogIkFuIGVtcHR5IG1lc3NhZ2UgYWJvcnRzIHRoZSBjb21taXQuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Nzc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQXV0aG9yOiAgICAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzgyCisjOiBidWlsdGluL2NvbW1pdC5jOjgwMwogbXNnaWQgIkNhbm5vdCByZWFkIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODE5CisjOiBidWlsdGluL2NvbW1pdC5jOjg0NQogbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODM0IGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg2MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjOiBidWlsdGluL2NvbW1pdC5jOjk3MiBidWlsdGluL2NvbW1pdC5jOjEyMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTc2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMDkKK21zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9jb21taXQuYzoxMDM5CiBtc2dpZCAiVXNpbmcgYm90aCAtLXJlc2V0LWF1dGhvciBhbmQgLS1hdXRob3IgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk4NworIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MwogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1NQogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OAogbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKIG1zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3MAogbXNnaWQgIk9wdGlvbiAtbSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtYy8tQy8tRi8tLWZpeHVwLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTcKIG1zZ2lkICJObyBwYXRocyB3aXRoIC0taW5jbHVkZS8tLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTkKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDQ4IGJ1aWx0aW4vdGFnLmM6NTc1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCisjOiBidWlsdGluL2NvbW1pdC5jOjExMTYKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OSBidWlsdGluL2NvbW1pdC5jOjExOTQKLW1zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMTU0IGJ1aWx0aW4vY29tbWl0LmM6MTM5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjIyIGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTYgYnVpbHRpbi9jb21taXQuYzoxMzkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU4IGJ1aWx0aW4vY29tbWl0LmM6MTM5NCBidWlsdGluL3B1c2guYzo0MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCiBtc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjQgYnVpbHRpbi9jb21taXQuYzoxMzk5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzIgYnVpbHRpbi9jb21taXQuYzoxNDY0CiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUzCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU2IGJ1aWx0aW4vdGFnLmM6NDU5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzQgYnVpbHRpbi9jb21taXQuYzoxNDY3IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAgYnVpbHRpbi90YWcuYzo0NTkKIG1zZ2lkICJtb2RlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NyBidWlsdGluL2NvbW1pdC5jOjE0MDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcwCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzgKIG1zZ2lkICJzaG93IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcxIHBhcnNlLW9wdGlvbnMuaDoxNTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOSBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAid2hlbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MAogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MgogbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTMKIG1zZ2lkICJjb3VsZG4ndCBsb29rIHVwIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI1MAorIzogYnVpbHRpbi9jb21taXQuYzoxMzE1CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIG5ld2x5IGNyZWF0ZWQgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTI5MQorIzogYnVpbHRpbi9jb21taXQuYzoxMzU2CiBtc2dpZCAiZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAogbXNnaWQgIiAocm9vdC1jb21taXQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CiBtc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgogbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyOAogbXNnaWQgIkNvbW1pdCBtZXNzYWdlIG9wdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY0IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAiYXV0aG9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAib3ZlcnJpZGUgYXV0aG9yIGZvciBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2IGJ1aWx0aW4vZ2MuYzoxNzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMSBidWlsdGluL2djLmM6MTc4CiBtc2dpZCAiZGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMQogbXNnaWQgIm92ZXJyaWRlIGRhdGUgZm9yIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcgYnVpbHRpbi9tZXJnZS5jOjIwOCBidWlsdGluL25vdGVzLmM6NTMzCi0jOiBidWlsdGluL25vdGVzLmM6NjkwIGJ1aWx0aW4vdGFnLmM6NDU1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzIgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CisjOiBidWlsdGluL25vdGVzLmM6NTYyIGJ1aWx0aW4vdGFnLmM6NDU1CiBtc2dpZCAibWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMzCiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzQKIG1zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNQogbXNnaWQgInVzZSBhdXRvc3F1YXNoIGZvcm1hdHRlZCBtZXNzYWdlIHRvIGZpeHVwIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzYKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBzcXVhc2ggc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNwogbXNnaWQgInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzczIGJ1aWx0aW4vbG9nLmM6MTEwNCBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM4IGJ1aWx0aW4vbG9nLmM6MTE2MCBidWlsdGluL3JldmVydC5jOjExMQogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOQogbXNnaWQgInVzZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MAogbXNnaWQgImZvcmNlIGVkaXQgb2YgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYgYnVpbHRpbi90YWcuYzo0NjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MSBidWlsdGluL3RhZy5jOjQ2MAogbXNnaWQgImhvdyB0byBzdHJpcCBzcGFjZXMgYW5kICNjb21tZW50cyBmcm9tIG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDIKIG1zZ2lkICJpbmNsdWRlIHN0YXR1cyBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzggYnVpbHRpbi9tZXJnZS5jOjIxNSBidWlsdGluL3RhZy5jOjQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQzIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKIG1zZ2lkICJrZXkgaWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc5IGJ1aWx0aW4vbWVyZ2UuYzoyMTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NCBidWlsdGluL21lcmdlLmM6MjMxCiBtc2dpZCAiR1BHIHNpZ24gY29tbWl0IgogbXNnc3RyICIiCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NwogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MworIzogYnVpbHRpbi9jb21taXQuYzoxNDQ4CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTEKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAogbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjUKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjYKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzEKIG1zZ2lkICJvayB0byByZWNvcmQgYW4gZW1wdHkgY2hhbmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDc0CiBtc2dpZCAib2sgdG8gcmVjb3JkIGEgY2hhbmdlIHdpdGggYW4gZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NDEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTUwNwogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSBIRUFEIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzkgYnVpbHRpbi9tZXJnZS5jOjUxMAorIzogYnVpbHRpbi9jb21taXQuYzoxNTQ1IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MworIzogYnVpbHRpbi9jb21taXQuYzoxNTU5CiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBjb21taXQgbWVzc2FnZTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTQ2IGJ1aWx0aW4vbWVyZ2UuYzo4NDcgYnVpbHRpbi9tZXJnZS5jOjg3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjEyIGJ1aWx0aW4vbWVyZ2UuYzo4NjEgYnVpbHRpbi9tZXJnZS5jOjg4NgogbXNnaWQgImZhaWxlZCB0byB3cml0ZSBjb21taXQgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU2NworIzogYnVpbHRpbi9jb21taXQuYzoxNjMzCiBtc2dpZCAiY2Fubm90IGxvY2sgSEVBRCByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTcxCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzcKIG1zZ2lkICJjYW5ub3QgdXBkYXRlIEhFQUQgcmVmIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjQ4CiBtc2dpZCAiIgogIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgogIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKQEAgLTM4ODksMjQ5ICs0MjA2LDI2NSBAQAogbXNnaWQgImdpdCBjb25maWcgW29wdGlvbnNdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjUzCiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUzCisjOiBidWlsdGluL2NvbmZpZy5jOjU0CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU1CiBtc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NQorIzogYnVpbHRpbi9jb25maWcuYzo1NgogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2Ci1tc2dpZCAiQWN0aW9uIgorIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgImJsb2ItaWQiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo1NwotbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgorbXNnaWQgInJlYWQgY29uZmlnIGZyb20gZ2l2ZW4gYmxvYiBvYmplY3QiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo1OAotbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKK21zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo1OQotbXNnaWQgImdldCB2YWx1ZXMgZm9yIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgorbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKLW1zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKK21zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2MQotbXNnaWQgImFkZCBhIG5ldyB2YXJpYWJsZTogbmFtZSB2YWx1ZSIKK21zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjYyCi1tc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKK21zZ2lkICJyZXBsYWNlIGFsbCBtYXRjaGluZyB2YXJpYWJsZXM6IG5hbWUgdmFsdWUgW3ZhbHVlX3JlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjYzCi1tc2dpZCAicmVtb3ZlIGFsbCBtYXRjaGVzOiBuYW1lIFt2YWx1ZS1yZWdleF0iCittc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKLW1zZ2lkICJyZW5hbWUgc2VjdGlvbjogb2xkLW5hbWUgbmV3LW5hbWUiCittc2dpZCAicmVtb3ZlIGEgdmFyaWFibGU6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY1Ci1tc2dpZCAicmVtb3ZlIGEgc2VjdGlvbjogbmFtZSIKK21zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY2Ci1tc2dpZCAibGlzdCBhbGwiCittc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKLW1zZ2lkICJvcGVuIGFuIGVkaXRvciIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKLW1zZ2lkICJzbG90IgorbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo2OAotbXNnaWQgImZpbmQgdGhlIGNvbG9yIGNvbmZpZ3VyZWQ6IFtkZWZhdWx0XSIKK21zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2NvbmZpZy5jOjY5Ci1tc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgorbXNnaWQgIm9wZW4gYW4gZWRpdG9yIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQorbXNnaWQgInNsb3QiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3MAotbXNnaWQgIlR5cGUiCittc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKLW1zZ2lkICJ2YWx1ZSBpcyBcInRydWVcIiBvciBcImZhbHNlXCIiCittc2dpZCAiZmluZCB0aGUgY29sb3Igc2V0dGluZzogW3N0ZG91dC1pcy10dHldIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzIKLW1zZ2lkICJ2YWx1ZSBpcyBkZWNpbWFsIG51bWJlciIKK21zZ2lkICJUeXBlIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKLW1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCittc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKLW1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgorbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKLW1zZ2lkICJPdGhlciIKK21zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb25maWcuYzo3NgotbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKK21zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKK21zZ2lkICJPdGhlciIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjc4Cittc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6ODIKLW1zZ2lkICJnaXQgY291bnQtb2JqZWN0cyBbLXZdIgorbXNnaWQgImdpdCBjb3VudC1vYmplY3RzIFstdl0gWy1IIHwgLS1odW1hbi1yZWFkYWJsZV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1Ci1tc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0dGlzaD4qIgorIzogYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTcKK21zZ2lkICJwcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2Ci1tc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSAtLWRpcnR5IgorbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gPGNvbW1pdHRpc2g+KiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjMzCi0jLCBjLWZvcm1hdAotbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNworbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CiAjLCBjLWZvcm1hdAorbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjQxCisjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgaGFzIG5vIGVtYmVkZGVkIG5hbWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRhZyBleGFjdGx5IG1hdGNoZXMgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMjgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1MgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gYW5ub3RhdGVkIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCiAiSG93ZXZlciwgdGhlcmUgd2VyZSB1bmFubm90YXRlZCB0YWdzOiB0cnkgLS10YWdzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzU2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJObyB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgogIlRyeSAtLWFsd2F5cywgb3IgY3JlYXRlIHNvbWUgdGFncy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM3NworIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0cmF2ZXJzZWQgJWx1IGNvbW1pdHNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzgwCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJtb3JlIHRoYW4gJWkgdGFncyBmb3VuZDsgbGlzdGVkICVpIG1vc3QgcmVjZW50XG4iCiAiZ2F2ZSB1cCBzZWFyY2ggYXQgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CiBtc2dpZCAiZmluZCB0aGUgdGFnIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCiBtc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA0CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCiBtc2dpZCAidXNlIGFueSByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMgogbXNnaWQgInVzZSBhbnkgdGFnLCBldmVuIHVuYW5ub3RhdGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKIG1zZ2lkICJhbHdheXMgdXNlIGxvbmcgZm9ybWF0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKLW1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKLW1zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKLW1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAotbXNnaWQgInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE2Ci1tc2dpZCAibWFyayIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTQKK21zZ2lkICJvbmx5IGZvbGxvdyBmaXJzdCBwYXJlbnQiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNworbXNnaWQgIm9ubHkgb3V0cHV0IGV4YWN0IG1hdGNoZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxOQorbXNnaWQgImNvbnNpZGVyIDxuPiBtb3N0IHJlY2VudCB0YWdzIChkZWZhdWx0OiAxMCkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMQorbXNnaWQgIm9ubHkgY29uc2lkZXIgdGFncyBtYXRjaGluZyA8cGF0dGVybj4iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCittc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKK21zZ2lkICJtYXJrIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ0MwogbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NjEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NjkKIG1zZ2lkICJObyBuYW1lcyBmb3VuZCwgY2Fubm90IGRlc2NyaWJlIGFueXRoaW5nLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDgxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5CiBtc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCiBtc2dzdHIgIiIKIApAQCAtNDE0MCwzMSArNDQ3MywyNiBAQAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjIyOAorIzogYnVpbHRpbi9kaWZmLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2RpZmYuYzozMDUKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9kaWZmLmM6MzYzCisjOiBidWlsdGluL2RpZmYuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9yZSB0aGFuIHR3byBibG9icyBnaXZlbjogJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2RpZmYuYzozNzEKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICIiCkBAIC00MTczLDM5ICs0NTAxLDM5IEBACiBtc2dpZCAiZ2l0IGZhc3QtZXhwb3J0IFtyZXYtbGlzdC1vcHRzXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzEKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2YgdGFncyB0aGF0IHRhZyBmaWx0ZXJlZCBvYmplY3RzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc2CiBtc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjkKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIiIKIApAQCAtNDI4MSw3ICs0NjA5LDcgQEAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTIxCisjOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAiZGlyIgogbXNnc3RyICIiCiAKQEAgLTQyOTMsMTYyICs0NjIxLDE2MiBAQAogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyMjAKIG1zZ2lkICJDb3VsZG4ndCBmaW5kIHJlbW90ZSByZWYgSEVBRCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjU3CisjOiBidWlsdGluL2ZldGNoLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAlcyBub3QgZm91bmQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI2MgorIzogYnVpbHRpbi9mZXRjaC5jOjI3OAogbXNnaWQgIlt1cCB0byBkYXRlXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc2CisjOiBidWlsdGluL2ZldGNoLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiEgJS0qcyAlLSpzIC0+ICVzICAoY2FuJ3QgZmV0Y2ggaW4gY3VycmVudCBicmFuY2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNzcgYnVpbHRpbi9mZXRjaC5jOjM2MworIzogYnVpbHRpbi9mZXRjaC5jOjI5MyBidWlsdGluL2ZldGNoLmM6Mzc5CiBtc2dpZCAiW3JlamVjdGVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjg4CisjOiBidWlsdGluL2ZldGNoLmM6MzA0CiBtc2dpZCAiW3RhZyB1cGRhdGVdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTAgYnVpbHRpbi9mZXRjaC5jOjMyNSBidWlsdGluL2ZldGNoLmM6MzQzCisjOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQogbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA4CisjOiBidWlsdGluL2ZldGNoLmM6MzI0CiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxNAorIzogYnVpbHRpbi9mZXRjaC5jOjMzMAogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAidW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgImZvcmNlZCB1cGRhdGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM2NQorIzogYnVpbHRpbi9mZXRjaC5jOjM4MQogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mzk2IGJ1aWx0aW4vZmV0Y2guYzo2ODgKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MTIgYnVpbHRpbi9mZXRjaC5jOjcxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDA1CisjOiBidWlsdGluL2ZldGNoLmM6NDIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDkxCisjOiBidWlsdGluL2ZldGNoLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKICIgJ2dpdCByZW1vdGUgcHJ1bmUgJXMnIHRvIHJlbW92ZSBhbnkgb2xkLCBjb25mbGljdGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUyCisjOiBidWlsdGluL2ZldGNoLmM6NTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyB3aWxsIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MworIzogYnVpbHRpbi9mZXRjaC5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgaGFzIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MAorIzogYnVpbHRpbi9mZXRjaC5jOjU4OQogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYxIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQorIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKIG1zZ2lkICIobm9uZSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIzogYnVpbHRpbi9mZXRjaC5jOjc0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3ODkKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiB2YWx1ZSBcIiVzXCIgaXMgbm90IHZhbGlkIGZvciAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzkyCisjOiBidWlsdGluL2ZldGNoLmM6ODI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk0CisjOiBidWlsdGluL2ZldGNoLmM6OTI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NiBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkxNQorIzogYnVpbHRpbi9mZXRjaC5jOjk0OQogbXNnaWQgIiIKICJObyByZW1vdGUgcmVwb3NpdG9yeSBzcGVjaWZpZWQuICBQbGVhc2UsIHNwZWNpZnkgZWl0aGVyIGEgVVJMIG9yIGFcbiIKICJyZW1vdGUgbmFtZSBmcm9tIHdoaWNoIG5ldyByZXZpc2lvbnMgc2hvdWxkIGJlIGZldGNoZWQuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NjkKIG1zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MworIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwMgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwNAorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CiBtc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICIiCiAKQEAgLTQ0NTYsMjkgKzQ3ODQsMjkgQEAKIG1zZ2lkICJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPG1lc3NhZ2U+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPGZpbGU+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NTkgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYyIGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU2IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MAorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY0CiBtc2dpZCAicG9wdWxhdGUgbG9nIHdpdGggYXQgbW9zdCA8bj4gZW50cmllcyBmcm9tIHNob3J0bG9nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2MworIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3CiBtc2dpZCAiYWxpYXMgZm9yIC0tbG9nIChkZXByZWNhdGVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjYKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MAogbXNnaWQgInRleHQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzEKIG1zZ2lkICJ1c2UgPHRleHQ+IGFzIHN0YXJ0IG9mIG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY4CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzIKIG1zZ2lkICJmaWxlIHRvIHJlYWQgZnJvbSIKIG1zZ3N0ciAiIgogCkBAIC00NjEzLDIyMCArNDk0MSwyMjAgQEAKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6MzY1CisjOiBidWlsdGluL2dyZXAuYzozNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNoZGlyOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CisjOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo0OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQorIzogYnVpbHRpbi9ncmVwLmM6NTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTY4CisjOiBidWlsdGluL2dyZXAuYzo1NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0MgogbXNnaWQgInNlYXJjaCBpbiBpbmRleCBpbnN0ZWFkIG9mIGluIHRoZSB3b3JrIHRyZWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ1CisjOiBidWlsdGluL2dyZXAuYzo2NDQKIG1zZ2lkICJmaW5kIGluIGNvbnRlbnRzIG5vdCBtYW5hZ2VkIGJ5IGdpdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NgogbXNnaWQgInNlYXJjaCBpbiBib3RoIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0OAogbXNnaWQgInNlYXJjaCBhbHNvIGluIGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjUyCisjOiBidWlsdGluL2dyZXAuYzo2NTEKIG1zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MwogbXNnaWQgImNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NwogbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYwCisjOiBidWlsdGluL2dyZXAuYzo2NTkKIG1zZ2lkICJkb24ndCBtYXRjaCBwYXR0ZXJucyBpbiBiaW5hcnkgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjYzCisjOiBidWlsdGluL2dyZXAuYzo2NjIKIG1zZ2lkICJkZXNjZW5kIGF0IG1vc3QgPGRlcHRoPiBsZXZlbHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjY3CisjOiBidWlsdGluL2dyZXAuYzo2NjYKIG1zZ2lkICJ1c2UgZXh0ZW5kZWQgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQogbXNnaWQgInVzZSBiYXNpYyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3MgogbXNnaWQgImludGVycHJldCBwYXR0ZXJucyBhcyBmaXhlZCBzdHJpbmdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorIzogYnVpbHRpbi9ncmVwLmM6Njc1CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorIzogYnVpbHRpbi9ncmVwLmM6Njc4CiBtc2dpZCAic2hvdyBsaW5lIG51bWJlcnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgwCisjOiBidWlsdGluL2dyZXAuYzo2NzkKIG1zZ2lkICJkb24ndCBzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MworIzogYnVpbHRpbi9ncmVwLmM6NjgyCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMgcmVsYXRpdmUgdG8gdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAogbXNnaWQgInNob3cgb25seSBmaWxlbmFtZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MAorIzogYnVpbHRpbi9ncmVwLmM6Njg5CiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MgorIzogYnVpbHRpbi9ncmVwLmM6NjkxCiBtc2dpZCAicHJpbnQgTlVMIGFmdGVyIGZpbGVuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk1CisjOiBidWlsdGluL2dyZXAuYzo2OTQKIG1zZ2lkICJoaWdobGlnaHQgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NgogbXNnaWQgInByaW50IGVtcHR5IGxpbmUgYmV0d2VlbiBtYXRjaGVzIGZyb20gZGlmZmVyZW50IGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5OQorIzogYnVpbHRpbi9ncmVwLmM6Njk4CiBtc2dpZCAic2hvdyBmaWxlbmFtZSBvbmx5IG9uY2UgYWJvdmUgbWF0Y2hlcyBmcm9tIHNhbWUgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIGFuZCBhZnRlciBtYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNQorIzogYnVpbHRpbi9ncmVwLmM6NzA0CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNwogbXNnaWQgInNob3J0Y3V0IGZvciAtQyBOVU0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzExCisjOiBidWlsdGluL2dyZXAuYzo3MTAKIG1zZ2lkICJzaG93IGEgbGluZSB3aXRoIHRoZSBmdW5jdGlvbiBuYW1lIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2dyZXAuYzo3MTUKIG1zZ2lkICJyZWFkIHBhdHRlcm5zIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNwogbXNnaWQgIm1hdGNoIDxwYXR0ZXJuPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxOQogbXNnaWQgImNvbWJpbmUgcGF0dGVybnMgc3BlY2lmaWVkIHdpdGggLWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMyCisjOiBidWlsdGluL2dyZXAuYzo3MzEKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM2CisjOiBidWlsdGluL2dyZXAuYzo3MzUKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInBhZ2VyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzCisjOiBidWlsdGluL2dyZXAuYzo3NDIKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NgorIzogYnVpbHRpbi9ncmVwLmM6ODY1CiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg4OQorIzogYnVpbHRpbi9ncmVwLmM6ODg4CiBtc2dpZCAiLS1jYWNoZWQgb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCAtLW5vLWluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5NgogbXNnaWQgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGNhbm5vdCBiZSB1c2VkIGZvciB0cmFja2VkIGNvbnRlbnRzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2dyZXAuYzo5MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjkwNAogbXNnaWQgImJvdGggLS1jYWNoZWQgYW5kIHRyZWVzIGFyZSBnaXZlbi4iCiBtc2dzdHIgIiIKIApAQCAtNDg2NCwxMCArNTE5MiwxNCBAQAogbXNnaWQgInByb2Nlc3MgZmlsZSBhcyBpdCB3ZXJlIGZyb20gdGhpcyBwYXRoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyCisjOiBidWlsdGluL2hlbHAuYzo0MQogbXNnaWQgInByaW50IGFsbCBhdmFpbGFibGUgY29tbWFuZHMiCiBtc2dzdHIgIiIKIAorIzogYnVpbHRpbi9oZWxwLmM6NDIKK21zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCittc2dzdHIgIiIKKwogIzogYnVpbHRpbi9oZWxwLmM6NDMKIG1zZ2lkICJzaG93IG1hbiBwYWdlIgogbXNnc3RyICIiCkBAIC00ODgxLDcgKzUyMTMsNyBAQAogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vaGVscC5jOjUyCi1tc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCittc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL2hlbHAuYzo2NApAQCAtNDkzNCwyOTAgKzUyNjYsMzIyIEBACiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjkgYnVpbHRpbi9oZWxwLmM6NDM2CisjOiBidWlsdGluL2hlbHAuYzo0MjAKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMQorbXNnaWQgIkEgR2l0IGdsb3NzYXJ5IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgorbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIzCittc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI0Cittc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQorbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNgorbXNnaWQgIkFuIG92ZXJ2aWV3IG9mIHJlY29tbWVuZGVkIHdvcmtmbG93cyB3aXRoIEdpdCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2hlbHAuYzo0MzgKK21zZ2lkICJUaGUgY29tbW9uIEdpdCBndWlkZXMgYXJlOlxuIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQ2MCBidWlsdGluL2hlbHAuYzo0NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNhZ2U6ICVzJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDUyCisjOiBidWlsdGluL2hlbHAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiYGdpdCAlcycgaXMgYWxpYXNlZCB0byBgJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCB0eXBlIG1pc21hdGNoIGF0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjA0CiBtc2dpZCAib2JqZWN0IG9mIHVuZXhwZWN0ZWQgdHlwZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyMzkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZmlsbCAlZCBieXRlIgogbXNnaWRfcGx1cmFsICJjYW5ub3QgZmlsbCAlZCBieXRlcyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjU0CiBtc2dpZCAiZWFybHkgRU9GIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjU1CiBtc2dpZCAicmVhZCBlcnJvciBvbiBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSAnJXMnIgotbXNnc3RyICIiCi0KICM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAogIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjk1CisjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuIHBhY2tmaWxlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMDkKIG1zZ2lkICJwYWNrIHNpZ25hdHVyZSBtaXNtYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIHZlcnNpb24gJTxQUkl1MzI+IHVuc3VwcG9ydGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5mbGF0ZSByZXR1cm5lZCAlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMAogbXNnaWQgIm9mZnNldCB2YWx1ZSBvdmVyZmxvdyBmb3IgZGVsdGEgYmFzZSBvYmplY3QiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDgKIG1zZ2lkICJkZWx0YSBiYXNlIG9mZnNldCBpcyBvdXQgb2YgYm91bmQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTExCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBvYmplY3QgdHlwZSAlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NwogbXNnaWQgImNhbm5vdCBwcmVhZCBwYWNrIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlIG1pc3NpbmciCiBtc2dpZF9wbHVyYWwgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZXMgbWlzc2luZyIKIG1zZ3N0clswXSAiIgogbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTc1CiBtc2dpZCAic2VyaW91cyBpbmZsYXRlIGluY29uc2lzdGVuY3kiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjYxIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NyBidWlsdGluL2luZGV4LXBhY2suYzo2OTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyNCBidWlsdGluL2luZGV4LXBhY2suYzo3MzMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NiBidWlsdGluL2luZGV4LXBhY2suYzo2NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6Njk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjkgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNIQTEgQ09MTElTSU9OIEZPVU5EIFdJVEggJXMgISIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgZXhpc3Rpbmcgb2JqZWN0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYmxvYiBvYmplY3QgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2NgogbXNnaWQgIkVycm9yIGluIG9iamVjdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYWxsIGNoaWxkIG9iamVjdHMgb2YgJXMgYXJlIHJlYWNoYWJsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiSW5kZXhpbmcgb2JqZWN0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDMwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CiBtc2dpZCAicGFjayBpcyBjb3JydXB0ZWQgKFNIQTEgbWlzbWF0Y2gpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MwogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgdGhyZWFkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGEiCiBtc2dpZF9wbHVyYWwgInBhY2sgaGFzICVkIHVucmVzb2x2ZWQgZGVsdGFzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZGVmbGF0ZSBhcHBlbmRlZCBvYmplY3QgKCVkKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjg3CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCB3cml0ZSBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMjQKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgaW5kZXggZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzUyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUzNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHRocmVhZHMgc3VwcG9ydCwgaWdub3JpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGZpbGUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgaWR4IGZpbGUgZm9yICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJub24gZGVsdGE6ICVkIG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAibm9uIGRlbHRhOiAlZCBvYmplY3RzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICIiCiBtc2dzdHJbMV0gIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTY2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODQgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5NCBidWlsdGluL2luZGV4LXBhY2suYzoxNjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2tmaWxlIG5hbWUgJyVzJyBkb2VzIG5vdCBlbmQgd2l0aCAnLnBhY2snIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MTMKIG1zZ2lkICItLXZlcmlmeSB3aXRoIG5vIHBhY2tmaWxlIG5hbWUgZ2l2ZW4iCiBtc2dzdHIgIiIKIApAQCAtNTM1MSw3ICs1NzE1LDcgQEAKIG1zZ2lkICJzcGVjaWZ5IHRoYXQgdGhlIGdpdCByZXBvc2l0b3J5IGlzIHRvIGJlIHNoYXJlZCBhbW9uZ3N0IHNldmVyYWwgdXNlcnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CiBtc2dpZCAiYmUgcXVpZXQiCiBtc2dzdHIgIiIKIApAQCAtNTM4MSwzNDAgKzU3NDUsMzUzIEBACiBtc2dpZCAiQ2Fubm90IGFjY2VzcyB3b3JrIHRyZWUgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjQwCi1tc2dpZCAiZ2l0IGxvZyBbPG9wdGlvbnM+XSBbPHNpbmNlPi4uPHVudGlsPl0gW1stLV0gPHBhdGg+Li4uXVxuIgorIzogYnVpbHRpbi9sb2cuYzo0MQorbXNnaWQgImdpdCBsb2cgWzxvcHRpb25zPl0gWzxyZXZpc2lvbiByYW5nZT5dIFtbLS1dIDxwYXRoPi4uLl1cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjQxCisjOiBidWlsdGluL2xvZy5jOjQyCiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwMworIzogYnVpbHRpbi9sb2cuYzoxMjQKIG1zZ2lkICJzdXBwcmVzcyBkaWZmIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzaG93IHNvdXJjZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNQorIzogYnVpbHRpbi9sb2cuYzoxMjYKIG1zZ2lkICJVc2UgbWFpbCBtYXAgZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNgorIzogYnVpbHRpbi9sb2cuYzoxMjcKIG1zZ2lkICJkZWNvcmF0ZSBvcHRpb25zIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTk5CisjOiBidWlsdGluL2xvZy5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjUzOAorIzogYnVpbHRpbi9sb2cuYzo1NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjYzMAorIzogYnVpbHRpbi9sb2cuYzo2NjkKIG1zZ2lkICJmb3JtYXQuaGVhZGVycyB3aXRob3V0IHZhbHVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzA0CisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjcyMAorIzogYnVpbHRpbi9sb2cuYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjczNAorIzogYnVpbHRpbi9sb2cuYzo3ODEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjc0MgorIzogYnVpbHRpbi9sb2cuYzo3ODkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzo4MTUKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjg4OAorIzogYnVpbHRpbi9sb2cuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjkxNgorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTYxCisjOiBidWlsdGluL2xvZy5jOjEwNDAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEwOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTAyCisjOiBidWlsdGluL2xvZy5jOjExNTgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwOAorIzogYnVpbHRpbi9sb2cuYzoxMTY0CiBtc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTEwCisjOiBidWlsdGluL2xvZy5jOjExNjYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTExCisjOiBidWlsdGluL2xvZy5jOjExNjcKIG1zZ2lkICJzZngiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTEyCisjOiBidWlsdGluL2xvZy5jOjExNjgKIG1zZ2lkICJ1c2UgPHNmeD4gaW5zdGVhZCBvZiAnLnBhdGNoJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE2CisjOiBidWlsdGluL2xvZy5jOjExNzIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE4CisjOiBidWlsdGluL2xvZy5jOjExNzQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTIxCisjOiBidWlsdGluL2xvZy5jOjExNzcKIG1zZ2lkICJzdG9yZSByZXN1bHRpbmcgZmlsZXMgaW4gPGRpcj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI0CisjOiBidWlsdGluL2xvZy5jOjExODAKIG1zZ2lkICJkb24ndCBzdHJpcC9hZGQgW1BBVENIXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTI5CisjOiBidWlsdGluL2xvZy5jOjExODUKIG1zZ2lkICJkb24ndCBpbmNsdWRlIGEgcGF0Y2ggbWF0Y2hpbmcgYSBjb21taXQgdXBzdHJlYW0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMxCisjOiBidWlsdGluL2xvZy5jOjExODcKIG1zZ2lkICJzaG93IHBhdGNoIGZvcm1hdCBpbnN0ZWFkIG9mIGRlZmF1bHQgKHBhdGNoICsgc3RhdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM0CisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM1CisjOiBidWlsdGluL2xvZy5jOjExOTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzOAorIzogYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQwCisjOiBidWlsdGluL2xvZy5jOjExOTYKK21zZ2lkICJpZGVudCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJzZXQgRnJvbSBhZGRyZXNzIHRvIDxpZGVudD4gKG9yIGNvbW1pdHRlciBpZGVudCBpZiBhYnNlbnQpIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5OQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQxCisjOiBidWlsdGluL2xvZy5jOjEyMDAKIG1zZ2lkICJtYWtlIGZpcnN0IG1haWwgYSByZXBseSB0byA8bWVzc2FnZS1pZD4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQyIGJ1aWx0aW4vbG9nLmM6MTE0NQorIzogYnVpbHRpbi9sb2cuYzoxMjAxIGJ1aWx0aW4vbG9nLmM6MTIwNAogbXNnaWQgImJvdW5kYXJ5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMjAyCiBtc2dpZCAiYXR0YWNoIHRoZSBwYXRjaCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUwCisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgInNpZ25hdHVyZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjM5CisjOiBidWlsdGluL2xvZy5jOjEyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZGVudCBsaW5lOiAlcyIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL2xvZy5jOjEzMDMKIG1zZ2lkICItbiBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjQxCisjOiBidWlsdGluL2xvZy5jOjEzMDUKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxMwogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUxCisjOiBidWlsdGluL2xvZy5jOjEzMTUKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUzCisjOiBidWlsdGluL2xvZy5jOjEzMTcKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjc2CisjOiBidWlsdGluL2xvZy5jOjEzNDAKIG1zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQzMQorIzogYnVpbHRpbi9sb2cuYzoxNDkwCiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDgwCisjOiBidWlsdGluL2xvZy5jOjE1MzkKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xvZy5jOjE1MzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTQ4IGJ1aWx0aW4vbG9nLmM6MTU1MCBidWlsdGluL2xvZy5jOjE1NjIKKyM6IGJ1aWx0aW4vbG9nLmM6MTYwNyBidWlsdGluL2xvZy5jOjE2MDkgYnVpbHRpbi9sb2cuYzoxNjIxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gY29tbWl0ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0MDgKIG1zZ2lkICJnaXQgbHMtZmlsZXMgW29wdGlvbnNdIFs8ZmlsZT4uLi5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CiBtc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzQKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzMKIG1zZ2lkICJzaG93IG1vZGlmaWVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NQogbXNnaWQgInNob3cgb3RoZXIgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODIKIG1zZ2lkICJzaG93IGZpbGVzIG9uIHRoZSBmaWxlc3lzdGVtIHRoYXQgbmVlZCB0byBiZSByZW1vdmVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg3CiBtc2dpZCAiZG9uJ3Qgc2hvdyBlbXB0eSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCiBtc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA1CiBtc2dpZCAibWFrZSB0aGUgb3V0cHV0IHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOAogbXNnaWQgImlmIGFueSA8ZmlsZT4gaXMgbm90IGluIHRoZSBpbmRleCwgdHJlYXQgdGhpcyBhcyBhbiBlcnJvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTEwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CiBtc2dpZCAidHJlZS1pc2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMworIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgIiIKIApAQCAtNTc2NiwxNjcgKzYxNDMsMTY3IEBACiBtc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwCisjOiBidWlsdGluL21lcmdlLmM6OTgKIG1zZ2lkICJzd2l0Y2ggYG0nIHJlcXVpcmVzIGEgdmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNworIzogYnVpbHRpbi9tZXJnZS5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCBtZXJnZSBzdHJhdGVneSAnJXMnLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIHN0cmF0ZWdpZXMgYXJlOiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTMzCisjOiBidWlsdGluL21lcmdlLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBjdXN0b20gc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKIG1zZ2lkICJkbyBub3Qgc2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDEKIG1zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NworIzogYnVpbHRpbi9tZXJnZS5jOjIwMgogbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4OQorIzogYnVpbHRpbi9tZXJnZS5jOjIwNAogbXNnaWQgImFkZCAoYXQgbW9zdCA8bj4pIGVudHJpZXMgZnJvbSBzaG9ydGxvZyB0byBtZXJnZSBjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTkyCisjOiBidWlsdGluL21lcmdlLmM6MjA3CiBtc2dpZCAiY3JlYXRlIGEgc2luZ2xlIGNvbW1pdCBpbnN0ZWFkIG9mIGRvaW5nIGEgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorIzogYnVpbHRpbi9tZXJnZS5jOjIwOQogbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk2CisjOiBidWlsdGluL21lcmdlLmM6MjExCiBtc2dpZCAiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTIKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTQKIG1zZ2lkICJhYm9ydCBpZiBmYXN0LWZvcndhcmQgaXMgbm90IHBvc3NpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTgKIG1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA1CisjOiBidWlsdGluL21lcmdlLmM6MjIwCiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjEKIG1zZ2lkICJvcHRpb249dmFsdWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNworIzogYnVpbHRpbi9tZXJnZS5jOjIyMgogbXNnaWQgIm9wdGlvbiBmb3Igc2VsZWN0ZWQgbWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjIyNAogbXNnaWQgIm1lcmdlIGNvbW1pdCBtZXNzYWdlIChmb3IgYSBub24tZmFzdC1mb3J3YXJkIG1lcmdlKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjEzCisjOiBidWlsdGluL21lcmdlLmM6MjI4CiBtc2dpZCAiYWJvcnQgdGhlIGN1cnJlbnQgaW4tcHJvZ3Jlc3MgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0MgorIzogYnVpbHRpbi9tZXJnZS5jOjI1NwogbXNnaWQgImNvdWxkIG5vdCBydW4gc3Rhc2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyNjIKIG1zZ2lkICJzdGFzaCBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI1MgorIzogYnVpbHRpbi9tZXJnZS5jOjI2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgYSB2YWxpZCBvYmplY3Q6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNzEgYnVpbHRpbi9tZXJnZS5jOjI4OAorIzogYnVpbHRpbi9tZXJnZS5jOjI4NiBidWlsdGluL21lcmdlLmM6MzAzCiBtc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzE4CisjOiBidWlsdGluL21lcmdlLmM6MzMzCiBtc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMzMQorIzogYnVpbHRpbi9tZXJnZS5jOjM0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcXVhc2ggY29tbWl0IC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2MworIzogYnVpbHRpbi9tZXJnZS5jOjM3OAogbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzY1CisjOiBidWlsdGluL21lcmdlLmM6MzgwCiBtc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM4OAorIzogYnVpbHRpbi9tZXJnZS5jOjQwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBtZXJnZSBtZXNzYWdlIC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjQzOAorIzogYnVpbHRpbi9tZXJnZS5jOjQ1MwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo1NTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQmFkIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc3RyaW5nOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6NjQzCisjOiBidWlsdGluL21lcmdlLmM6NjU3CiBtc2dpZCAiZ2l0IHdyaXRlLXRyZWUgZmFpbGVkIHRvIHdyaXRlIGEgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6NjcxCi1tc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKLW1zZ3N0ciAiIgotCiAjOiBidWlsdGluL21lcmdlLmM6Njg1Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlVua25vd24gb3B0aW9uIGZvciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCittc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL21lcmdlLmM6Njk5CiAjLCBjLWZvcm1hdAorbXNnaWQgIlVua25vd24gb3B0aW9uIGZvciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjcxMworIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc4OAorIzogYnVpbHRpbi9tZXJnZS5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBmcm9tICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc5NworIzogYnVpbHRpbi9tZXJnZS5jOjgxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgY29tbWl0dGluZyBtZXJnZTsgdXNlICdnaXQgY29tbWl0JyB0byBjb21wbGV0ZSB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgwMworIzogYnVpbHRpbi9tZXJnZS5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIGEgY29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB3aHkgdGhpcyBtZXJnZSBpcyBuZWNlc3NhcnksXG4iCkBAIC01OTM2LDE2MSArNjMxMywxNTcgQEAKICJ0aGUgY29tbWl0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NDEKIG1zZ2lkICJFbXB0eSBjb21taXQgbWVzc2FnZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjgzOQorIzogYnVpbHRpbi9tZXJnZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJXb25kZXJmdWwuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwNAorIzogYnVpbHRpbi9tZXJnZS5jOjkxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2UgZmFpbGVkOyBmaXggY29uZmxpY3RzIGFuZCB0aGVuIGNvbW1pdCB0aGUgcmVzdWx0LlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBpcyBub3QgYSBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MQorIzogYnVpbHRpbi9tZXJnZS5jOjk3NQogbXNnaWQgIk5vIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYzCisjOiBidWlsdGluL21lcmdlLmM6OTc3CiBtc2dpZCAiTm8gcmVtb3RlIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzkKIG1zZ2lkICJObyBkZWZhdWx0IHVwc3RyZWFtIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk3MAorIzogYnVpbHRpbi9tZXJnZS5jOjk4NAogIywgYy1mb3JtYXQKLW1zZ2lkICJObyByZW1vdGUgdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgorbXNnaWQgIk5vIHJlbW90ZS10cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEwNTcgYnVpbHRpbi9tZXJnZS5jOjEyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTEyNQorIzogYnVpbHRpbi9tZXJnZS5jOjExNDAKIG1zZ2lkICJUaGVyZSBpcyBubyBtZXJnZSB0byBhYm9ydCAoTUVSR0VfSEVBRCBtaXNzaW5nKS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDEgZ2l0LXB1bGwuc2g6MzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU2IGdpdC1wdWxsLnNoOjMxCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBtZXJnZSAoTUVSR0VfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDQgZ2l0LXB1bGwuc2g6MzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU5IGdpdC1wdWxsLnNoOjM0CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ4CisjOiBidWlsdGluL21lcmdlLmM6MTE2MwogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTUxCisjOiBidWlsdGluL21lcmdlLmM6MTE2NgogbXNnaWQgIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2MAorIzogYnVpbHRpbi9tZXJnZS5jOjExNzUKIG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2NQotbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKLW1zZ3N0ciAiIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTE3MgorIzogYnVpbHRpbi9tZXJnZS5jOjExODQKIG1zZ2lkICJObyBjb21taXQgc3BlY2lmaWVkIGFuZCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSBub3Qgc2V0LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNAorIzogYnVpbHRpbi9tZXJnZS5jOjEyMTYKIG1zZ2lkICJDYW4gbWVyZ2Ugb25seSBleGFjdGx5IG9uZSBjb21taXQgaW50byBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA3CisjOiBidWlsdGluL21lcmdlLmM6MTIxOQogbXNnaWQgIlNxdWFzaCBjb21taXQgaW50byBlbXB0eSBoZWFkIG5vdCBzdXBwb3J0ZWQgeWV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5CisjOiBidWlsdGluL21lcmdlLmM6MTIyMQogbXNnaWQgIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byBhbiBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY1CisjOiBidWlsdGluL21lcmdlLmM6MTIyNgorIywgYy1mb3JtYXQKK21zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgorbXNnc3RyICIiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYW4gdW50cnVzdGVkIEdQRyBzaWduYXR1cmUsIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNjgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBiYWQgR1BHIHNpZ25hdHVyZSBhbGxlZ2VkbHkgYnkgJXMuIgogbXNnc3RyICIiCiAKICMuICdOJwotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYSBnb29kIEdQRyBzaWduYXR1cmUgYnkgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM1OAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRpbmcgJXMuLiVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEzOTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyeWluZyByZWFsbHkgdHJpdmlhbCBpbi1pbmRleCBtZXJnZS4uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA0CisjOiBidWlsdGluL21lcmdlLmM6MTQxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3BlLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDM2CisjOiBidWlsdGluL21lcmdlLmM6MTQ0OAogbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIzogYnVpbHRpbi9tZXJnZS5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjE1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyeWluZyBtZXJnZSBzdHJhdGVneSAlcy4uLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTI5CisjOiBidWlsdGluL21lcmdlLmM6MTU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBtZXJnZSBzdHJhdGVneSBoYW5kbGVkIHRoZSBtZXJnZS5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUzMQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWVyZ2Ugd2l0aCBzdHJhdGVneSAlcyBmYWlsZWQuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1NDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzaW5nIHRoZSAlcyB0byBwcmVwYXJlIHJlc29sdmluZyBieSBoYW5kLlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCisjOiBidWlsdGluL21lcmdlLmM6MTU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgogbXNnc3RyICIiCkBAIC02MjU1LDM2OSArNjYyOCwzNTIgQEAKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjU5CiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYwCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLWFsbCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc3CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYxCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLXN0ZGluIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMjkKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTMKIG1zZ2lkICJwcmludCBvbmx5IG5hbWVzIChubyBTSEEtMSkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzMAorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxNAogbXNnaWQgIm9ubHkgdXNlIHRhZ3MgdG8gbmFtZSB0aGUgY29tbWl0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMyCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE2CiBtc2dpZCAib25seSB1c2UgcmVmcyBtYXRjaGluZyA8cGF0dGVybj4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNAorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOAogbXNnaWQgImxpc3QgYWxsIGNvbW1pdHMgcmVhY2hhYmxlIGZyb20gYWxsIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOQogbXNnaWQgInJlYWQgZnJvbSBzdGRpbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzIwCiBtc2dpZCAiYWxsb3cgdG8gcHJpbnQgYHVuZGVmaW5lZGAgbmFtZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzI2Cittc2dpZCAiZGVyZWZlcmVuY2UgdGFncyBpbiB0aGUgaW5wdXQgKGludGVybmFsIHVzZSkiCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjI0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3CisjOiBidWlsdGluL25vdGVzLmM6MjUKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNgogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOQorIzogYnVpbHRpbi9ub3Rlcy5jOjI3CiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGFwcGVuZCBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMAorIzogYnVpbHRpbi9ub3Rlcy5jOjI4CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMQorIzogYnVpbHRpbi9ub3Rlcy5jOjI5CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMgorIzogYnVpbHRpbi9ub3Rlcy5jOjMwCiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0ZWd5PiBdIDxub3Rlc19yZWY+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMgogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMwogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHJlbW92ZSBbPG9iamVjdD4uLi5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNgorIzogYnVpbHRpbi9ub3Rlcy5jOjM0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNworIzogYnVpbHRpbi9ub3Rlcy5jOjM1CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZ2V0LXJlZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MAogbXNnaWQgImdpdCBub3RlcyBbbGlzdCBbPG9iamVjdD5dXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NQogbXNnaWQgImdpdCBub3RlcyBhZGQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MAogbXNnaWQgImdpdCBub3RlcyBjb3B5IFs8b3B0aW9ucz5dIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzCisjOiBidWlsdGluL25vdGVzLmM6NTEKIG1zZ2lkICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+XS4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NgogbXNnaWQgImdpdCBub3RlcyBhcHBlbmQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY4CisjOiBidWlsdGluL25vdGVzLmM6NjYKIG1zZ2lkICJnaXQgbm90ZXMgc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3MworIzogYnVpbHRpbi9ub3Rlcy5jOjcxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIFs8b3B0aW9ucz5dIDxub3Rlc19yZWY+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjcyCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs8b3B0aW9ucz5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjgwCisjOiBidWlsdGluL25vdGVzLmM6NzgKIG1zZ2lkICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWN0Pl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg1CisjOiBidWlsdGluL25vdGVzLmM6ODMKIG1zZ2lkICJnaXQgbm90ZXMgcHJ1bmUgWzxvcHRpb25zPl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjkwCisjOiBidWlsdGluL25vdGVzLmM6ODgKIG1zZ2lkICJnaXQgbm90ZXMgZ2V0LXJlZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnc2hvdycgb3V0cHV0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNTEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmlzaCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNjkgYnVpbHRpbi90YWcuYzozNDEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNjcgYnVpbHRpbi90YWcuYzozNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBmaWxlICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE4OAorIzogYnVpbHRpbi9ub3Rlcy5jOjE4NgogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG5vdGUgY29udGVudHMgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjA5IGJ1aWx0aW4vbm90ZXMuYzo5NzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMDcgYnVpbHRpbi9ub3Rlcy5jOjg0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyBub3RlIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE0CisjOiBidWlsdGluL25vdGVzLmM6MjEyCiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5vdGUgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIG5vdGUgY29udGVudHMgaGFzIGJlZW4gbGVmdCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjUwIGJ1aWx0aW4vdGFnLmM6NTQwCisjOiBidWlsdGluL25vdGVzLmM6MjQ4IGJ1aWx0aW4vdGFnLmM6NTQwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MiBidWlsdGluL3RhZy5jOjU0MworIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiBvciByZWFkICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3MSBidWlsdGluL25vdGVzLmM6NDQ0IGJ1aWx0aW4vbm90ZXMuYzo0NDYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MCBidWlsdGluL25vdGVzLmM6NjQzCi0jOiBidWlsdGluL25vdGVzLmM6NjQ4IGJ1aWx0aW4vbm90ZXMuYzo3MjMgYnVpbHRpbi9ub3Rlcy5jOjc2NQotIzogYnVpbHRpbi9ub3Rlcy5jOjk2NyBidWlsdGluL3RhZy5jOjU1NgorIzogYnVpbHRpbi9ub3Rlcy5jOjI2OSBidWlsdGluL25vdGVzLmM6MzE2IGJ1aWx0aW4vbm90ZXMuYzozMTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzggYnVpbHRpbi9ub3Rlcy5jOjQzMiBidWlsdGluL25vdGVzLmM6NTE1CisjOiBidWlsdGluL25vdGVzLmM6NTIwIGJ1aWx0aW4vbm90ZXMuYzo1OTUgYnVpbHRpbi9ub3Rlcy5jOjYzNworIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjc0CisjOiBidWlsdGluL25vdGVzLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjk4Ci1tc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozMzkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIiIKLQotIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKLSMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQotIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCi1tc2dzdHIgIiIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjQ0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaW5wdXQgbGluZTogJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY29weSBub3RlcyBmcm9tICclcycgdG8gJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo1NTMgYnVpbHRpbi9ub3Rlcy5jOjYyNgotIzogYnVpbHRpbi9ub3Rlcy5jOjYzOCBidWlsdGluL25vdGVzLmM6NzExIGJ1aWx0aW4vbm90ZXMuYzo3NTgKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDMyCisjOiBidWlsdGluL25vdGVzLmM6MzcxIGJ1aWx0aW4vbm90ZXMuYzo0MjUgYnVpbHRpbi9ub3Rlcy5jOjQ5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjUxMCBidWlsdGluL25vdGVzLmM6NTgzIGJ1aWx0aW4vbm90ZXMuYzo2MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MDQKIG1zZ2lkICJ0b28gbWFueSBwYXJhbWV0ZXJzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MTIgYnVpbHRpbi9ub3Rlcy5jOjc3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjM4NCBidWlsdGluL25vdGVzLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG5vdGUgZm91bmQgZm9yIG9iamVjdCAlcy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNCBidWlsdGluL25vdGVzLmM6NjkxCisjOiBidWlsdGluL25vdGVzLmM6NDA2IGJ1aWx0aW4vbm90ZXMuYzo1NjMKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGFzIGEgc3RyaW5nIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzcgYnVpbHRpbi9ub3Rlcy5jOjY5NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQwOSBidWlsdGluL25vdGVzLmM6NTY2CiBtc2dpZCAibm90ZSBjb250ZW50cyBpbiBhIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzOSBidWlsdGluL25vdGVzLmM6NTQyIGJ1aWx0aW4vbm90ZXMuYzo2OTYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTkgYnVpbHRpbi90YWcuYzo0NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTEgYnVpbHRpbi9ub3Rlcy5jOjQxNCBidWlsdGluL25vdGVzLmM6NTY4CisjOiBidWlsdGluL25vdGVzLmM6NTcxIGJ1aWx0aW4vdGFnLmM6NDc0CiBtc2dpZCAib2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDAgYnVpbHRpbi9ub3Rlcy5jOjY5NworIzogYnVpbHRpbi9ub3Rlcy5jOjQxMiBidWlsdGluL25vdGVzLmM6NTY5CiBtc2dpZCAicmV1c2UgYW5kIGVkaXQgc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDMgYnVpbHRpbi9ub3Rlcy5jOjcwMAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxNSBidWlsdGluL25vdGVzLmM6NTcyCiBtc2dpZCAicmV1c2Ugc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDUgYnVpbHRpbi9ub3Rlcy5jOjYxMworIzogYnVpbHRpbi9ub3Rlcy5jOjQxNyBidWlsdGluL25vdGVzLmM6NDg1CiBtc2dpZCAicmVwbGFjZSBleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTc5CisjOiBidWlsdGluL25vdGVzLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgYWRkIG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgogImV4aXN0aW5nIG5vdGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1ODQgYnVpbHRpbi9ub3Rlcy5jOjY2MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NiBidWlsdGluL25vdGVzLmM6NTMzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk92ZXJ3cml0aW5nIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE0CisjOiBidWlsdGluL25vdGVzLmM6NDg2CiBtc2dpZCAicmVhZCBvYmplY3RzIGZyb20gc3RkaW4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4OAogbXNnaWQgImxvYWQgcmV3cml0aW5nIGNvbmZpZyBmb3IgPGNvbW1hbmQ+IChpbXBsaWVzIC0tc3RkaW4pIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCiAiZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzE2CisjOiBidWlsdGluL25vdGVzLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgogIlBsZWFzZSB1c2UgJ2dpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUMnIGluc3RlYWQuXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2MworIzogYnVpbHRpbi9ub3Rlcy5jOjczNQogbXNnaWQgIkdlbmVyYWwgb3B0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY1CisjOiBidWlsdGluL25vdGVzLmM6NzM3CiBtc2dpZCAiTWVyZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY3CisjOiBidWlsdGluL25vdGVzLmM6NzM5CiBtc2dpZCAiIgogInJlc29sdmUgbm90ZXMgY29uZmxpY3RzIHVzaW5nIHRoZSBnaXZlbiBzdHJhdGVneSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY5CisjOiBidWlsdGluL25vdGVzLmM6NzQxCiBtc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODcxCisjOiBidWlsdGluL25vdGVzLmM6NzQzCiBtc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODczCisjOiBidWlsdGluL25vdGVzLmM6NzQ1CiBtc2dpZCAiQWJvcnRpbmcgbm90ZXMgbWVyZ2UgcmVzb2x1dGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODc1CisjOiBidWlsdGluL25vdGVzLmM6NzQ3CiBtc2dpZCAiYWJvcnQgbm90ZXMgbWVyZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NTcKIG1zZ2lkICJyZWFkIG9iamVjdCBuYW1lcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NgorIzogYnVpbHRpbi9ub3Rlcy5jOjkzOAogbXNnaWQgIm5vdGVzX3JlZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NworIzogYnVpbHRpbi9ub3Rlcy5jOjkzOQogbXNnaWQgInVzZSBub3RlcyBmcm9tIDxub3Rlc19yZWY+IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjk3NCBidWlsdGluL3JlbW90ZS5jOjE1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKIG1zZ3N0ciAiIgpAQCAtNjg0MCw3ICs3MTk2LDcgQEAKICIlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjEKKyM6IGJ1aWx0aW4vcHVzaC5jOjExNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBub3QgY3VycmVudGx5IG9uIGEgYnJhbmNoLlxuIgpAQCAtNjg1MCw3ICs3MjA2LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgSEVBRDo8bmFtZS1vZi1yZW1vdGUtYnJhbmNoPlxuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyOAorIzogYnVpbHRpbi9wdXNoLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKQEAgLTY4NTksMTIgKzcyMTUsMTIgQEAKICIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzYKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBwdXNoaW5nIHRvIHJlbW90ZSAnJXMnLCB3aGljaCBpcyBub3QgdGhlIHVwc3RyZWFtIG9mXG4iCkBAIC02ODcyLDcgKzcyMjgsNyBAQAogInRvIHVwZGF0ZSB3aGljaCByZW1vdGUgYnJhbmNoLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoxNTEKKyM6IGJ1aWx0aW4vcHVzaC5jOjE2NQogbXNnaWQgIiIKICJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtNjg5MCwyMCArNzI0NiwyMCBAQAogIidjdXJyZW50JyBpbnN0ZWFkIG9mICdzaW1wbGUnIGlmIHlvdSBzb21ldGltZXMgdXNlIG9sZGVyIHZlcnNpb25zIG9mIEdpdCkiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTk5CisjOiBidWlsdGluL3B1c2guYzoyMjUKIG1zZ2lkICIiCiAiWW91IGRpZG4ndCBzcGVjaWZ5IGFueSByZWZzcGVjcyB0byBwdXNoLCBhbmQgcHVzaC5kZWZhdWx0IGlzIFwibm90aGluZ1wiLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyMDYKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzMgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCi0iaXRzIHJlbW90ZSBjb3VudGVycGFydC4gTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpXG4iCi0iYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgorIidnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTY5MTEsNTAgKzcyNjcsNTAgQEAKICJ0byAnc2ltcGxlJywgJ2N1cnJlbnQnIG9yICd1cHN0cmVhbScgdG8gcHVzaCBvbmx5IHRoZSBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjE4CisjOiBidWlsdGluL3B1c2guYzoyNDQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgotImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjI0CisjOiBidWlsdGluL3B1c2guYzoyNTAKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgotInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLixcbiIKLSInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4sICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1NwogbXNnaWQgIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSB0YWcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlbW90ZS4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjM0CisjOiBidWlsdGluL3B1c2guYzoyNjAKIG1zZ2lkICIiCiAiWW91IGNhbm5vdCB1cGRhdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCiAib3IgdXBkYXRlIGEgcmVtb3RlIHJlZiB0byBtYWtlIGl0IHBvaW50IGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCiAid2l0aG91dCB1c2luZyB0aGUgJy0tZm9yY2UnIG9wdGlvbi5cbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJQdXNoaW5nIHRvICVzXG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk4CisjOiBidWlsdGluL3B1c2guYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMxCisjOiBidWlsdGluL3B1c2guYzozNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1OAogbXNnaWQgIiIKICJObyBjb25maWd1cmVkIHB1c2ggZGVzdGluYXRpb24uXG4iCiAiRWl0aGVyIHNwZWNpZnkgdGhlIFVSTCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgb3IgY29uZmlndXJlIGEgcmVtb3RlICIKQEAgLTY5NjcsODcgKzczMjMsODcgQEAKICIgICAgZ2l0IHB1c2ggPG5hbWU+XG4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ3CisjOiBidWlsdGluL3B1c2guYzozNzMKIG1zZ2lkICItLWFsbCBhbmQgLS10YWdzIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzQ4CisjOiBidWlsdGluL3B1c2guYzozNzQKIG1zZ2lkICItLWFsbCBjYW4ndCBiZSBjb21iaW5lZCB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1MworIzogYnVpbHRpbi9wdXNoLmM6Mzc5CiBtc2dpZCAiLS1taXJyb3IgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1NAorIzogYnVpbHRpbi9wdXNoLmM6MzgwCiBtc2dpZCAiLS1taXJyb3IgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzozNTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4NQogbXNnaWQgIi0tYWxsIGFuZCAtLW1pcnJvciBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQxOQorIzogYnVpbHRpbi9wdXNoLmM6NDQ1CiBtc2dpZCAicmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NgogbXNnaWQgInB1c2ggYWxsIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIxCisjOiBidWlsdGluL3B1c2guYzo0NDcKIG1zZ2lkICJtaXJyb3IgYWxsIHJlZnMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIzCisjOiBidWlsdGluL3B1c2guYzo0NDkKIG1zZ2lkICJkZWxldGUgcmVmcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAogbXNnaWQgInB1c2ggdGFncyAoY2FuJ3QgYmUgdXNlZCB3aXRoIC0tYWxsIG9yIC0tbWlycm9yKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI4CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMyIGJ1aWx0aW4vcHVzaC5jOjQzMworIzogYnVpbHRpbi9wdXNoLmM6NDU4IGJ1aWx0aW4vcHVzaC5jOjQ1OQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNAorIzogYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM3CisjOiBidWlsdGluL3B1c2guYzo0NjMKIG1zZ2lkICJwcnVuZSBsb2NhbGx5IHJlbW92ZWQgcmVmcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQogbXNnaWQgImJ5cGFzcyBwcmUtcHVzaCBob29rIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0MAorIzogYnVpbHRpbi9wdXNoLmM6NDY2CiBtc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDc2CiBtc2dpZCAiLS1kZWxldGUgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hbGwsIC0tbWlycm9yIGFuZCAtLXRhZ3MiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL3B1c2guYzo0NzgKIG1zZ2lkICItLWRlbGV0ZSBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCBhbnkgcmVmcyIKIG1zZ3N0ciAiIgogCkBAIC03MDU4LDcwICs3NDE0LDgwIEBACiAiaW5kZXgtb3V0cHV0PTxmaWxlPl0gKC0tZW1wdHkgfCA8dHJlZS1pc2gxPiBbPHRyZWUtaXNoMj4gWzx0cmVlLWlzaDM+XV0pIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOQogbXNnaWQgIndyaXRlIHJlc3VsdGluZyBpbmRleCB0byA8ZmlsZT4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCiBtc2dpZCAib25seSBlbXB0eSB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE0CiBtc2dpZCAiTWVyZ2luZyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTYKIG1zZ2lkICJwZXJmb3JtIGEgbWVyZ2UgaW4gYWRkaXRpb24gdG8gYSByZWFkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOAogbXNnaWQgIjMtd2F5IG1lcmdlIGlmIG5vIGZpbGUgbGV2ZWwgbWVyZ2luZyByZXF1aXJlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjAKIG1zZ2lkICIzLXdheSBtZXJnZSBpbiBwcmVzZW5jZSBvZiBhZGRzIGFuZCByZW1vdmVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIxCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgogbXNnaWQgInNhbWUgYXMgLW0sIGJ1dCBkaXNjYXJkIHVubWVyZ2VkIGVudHJpZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCiBtc2dpZCAiPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNAogbXNnaWQgInJlYWQgdGhlIHRyZWUgaW50byB0aGUgaW5kZXggdW5kZXIgPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI2CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNwogbXNnaWQgInVwZGF0ZSB3b3JraW5nIHRyZWUgd2l0aCBtZXJnZSByZXN1bHQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CiBtc2dpZCAiZ2l0aWdub3JlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMAogbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKIG1zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM0CiBtc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNgogbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzgKIG1zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCiBtc2dzdHIgIiIKIAorIzogYnVpbHRpbi9yZWZsb2cuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKK21zZ3N0ciAiIgorCisjOiBidWlsdGluL3JlZmxvZy5jOjYxNiBidWlsdGluL3JlZmxvZy5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKK21zZ3N0ciAiIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjExCiBtc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgogbXNnc3RyICIiCkBAIC03NjgyLDk1ICs4MDQ4LDk1IEBACiBtc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiAlcy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjk4CisjOiBidWlsdGluL3Jlc2V0LmM6OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQgJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjE2OQorIzogYnVpbHRpbi9yZXNldC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZG8gYSAlcyByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTAKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMKIG1zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjU0CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjU3CisjOiBidWlsdGluL3Jlc2V0LmM6MjYwCiBtc2dpZCAicmVzZXQgSEVBRCBidXQga2VlcCBsb2NhbCBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNzUKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJldmlzaW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc4IGJ1aWx0aW4vcmVzZXQuYzoyODYKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODEgYnVpbHRpbi9yZXNldC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcycuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTUKIG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIC0te2hhcmQsbWl4ZWQsc29mdH0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMQorIzogYnVpbHRpbi9yZXNldC5jOjMwNAogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjOiBidWlsdGluL3Jlc2V0LmM6MzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzEzCisjOiBidWlsdGluL3Jlc2V0LmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIHJlc2V0IGlzIG5vdCBhbGxvd2VkIGluIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlc2V0IGluZGV4IGZpbGUgdG8gcmV2aXNpb24gJyVzJy4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzOQorIzogYnVpbHRpbi9yZXNldC5jOjM0MgogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDcKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUwCiBtc2dpZCAia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ2CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MgogbXNnaWQgInN0b3AgcGFyc2luZyBhZnRlciB0aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ2NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NzAKIG1zZ2lkICIiCiAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXVxuIgogIiAgIG9yOiBnaXQgcmV2LXBhcnNlIC0tc3EtcXVvdGUgWzxhcmc+Li4uXVxuIgpAQCAtNzc4MCw3ICs4MTQ2LDcgQEAKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIyCi1tc2dpZCAiZ2l0IHJldmVydCBbb3B0aW9uc10gPGNvbW1pdC1pc2g+IgorbXNnaWQgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQtaXNoPi4uLiIKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCkBAIC03Nzg4LDE3NCArODE1NCwxOTYgQEAKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3JldmVydC5jOjI4Ci1tc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCittc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4uLi4iCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOQogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzo3MCBidWlsdGluL3JldmVydC5jOjkyCisjOiBidWlsdGluL3JldmVydC5jOjcxIGJ1aWx0aW4vcmV2ZXJ0LmM6OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIGNhbm5vdCBiZSB1c2VkIHdpdGggJXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CiBtc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CisjOiBidWlsdGluL3JldmVydC5jOjEwNwogbXNnaWQgImNhbmNlbCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA4CiBtc2dpZCAiZG9uJ3QgYXV0b21hdGljYWxseSBjb21taXQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA5CiBtc2dpZCAiZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTUKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE2CiBtc2dpZCAib3B0aW9uIGZvciBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEyOQogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEzMAogbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIzCisjOiBidWlsdGluL3JldmVydC5jOjIyNQogbXNnaWQgInJldmVydCBmYWlsZWQiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNQorIzogYnVpbHRpbi9ybS5jOjE2CiBtc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6NjQgYnVpbHRpbi9ybS5jOjE4NgotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzo2NAogbXNnaWQgIiIKLSJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlcyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2UgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL3JtLmM6NzAKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNzQKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjMwCiBtc2dpZCAiIgotIiclcycgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlIGZpbGUgYW5kIHRoZSBIRUFEXG4iCisidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCisKKyM6IGJ1aWx0aW4vcm0uYzoyMzUKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gIiIKK21zZ3N0clsxXSAiIgorCisjOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKIG1zZ2lkICIiCi0iJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MTkxCi0jLCBjLWZvcm1hdAotbXNnaWQgIiIKLSInJXMnIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zXG4iCi0iKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKLW1zZ3N0ciAiIgorIzogYnVpbHRpbi9ybS5jOjI1MQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ3N0clswXSAiIgorbXNnc3RyWzFdICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDgKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjA5CisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjIxMAorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTIKKyM6IGJ1aWx0aW4vcm0uYzoyNzQKIG1zZ2lkICJleGl0IHdpdGggYSB6ZXJvIHN0YXR1cyBldmVuIGlmIG5vdGhpbmcgbWF0Y2hlZCIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3JtLmM6MjgzCisjOiBidWlsdGluL3JtLmM6MzQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgIiIKIAogIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzCi1tc2dpZCAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgorbXNnaWQgImdpdCBzaG9ydGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gWzxwYXRoPi4uLl1dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjkKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjM1CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiTGluZXdyYXAgb3V0cHV0IgogbXNnc3RyICIiCiAKQEAgLTc5NzEsNDcgKzgzNTksNDcgQEAKIG1zZ2lkICJnaXQgc2hvdy1icmFuY2ggKC1nfC0tcmVmbG9nKVs9PG4+Wyw8YmFzZT5dXSBbLS1saXN0XSBbPHJlZj5dIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTEKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTAKIG1zZ2lkICJzaG93IHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MgogbXNnaWQgInNob3cgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTQKIG1zZ2lkICJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTcKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTYKIG1zZ2lkICJzaG93IDxuPiBtb3JlIGNvbW1pdHMgYWZ0ZXIgdGhlIGNvbW1vbiBhbmNlc3RvciIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU5CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU4CiBtc2dpZCAic3lub255bSB0byBtb3JlPS0xIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjAKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTkKIG1zZ2lkICJzdXBwcmVzcyBuYW1pbmcgc3RyaW5ncyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYyCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYxCiBtc2dpZCAiaW5jbHVkZSB0aGUgY3VycmVudCBicmFuY2giCiBtc2dzdHIgIiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MwogbXNnaWQgIm5hbWUgY29tbWl0cyB3aXRoIHRoZWlyIG9iamVjdCBuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY2CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY1CiBtc2dpZCAic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3CiBtc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcwCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY5CiBtc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgogbXNnc3RyICIiCiAKQEAgLTgwMjQsMTQgKzg0MTIsMTQgQEAKIG1zZ3N0ciAiIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc2Ci1tc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgotbXNnc3RyICIiCi0KLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzgKLW1zZ2lkICI8bj5bLDxiYXNlPl0iCittc2dpZCAidG9wb2xvZ2ljYWxseSBzb3J0LCBtYWludGFpbmluZyBkYXRlIG9yZGVyIHdoZXJlIHBvc3NpYmxlIgogbXNnc3RyICIiCiAKICM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzkKK21zZ2lkICI8bj5bLDxiYXNlPl0iCittc2dzdHIgIiIKKworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY4MAogbXNnaWQgInNob3cgPG4+IG1vc3QgcmVjZW50IHJlZi1sb2cgZW50cmllcyBzdGFydGluZyBhdCBiYXNlIgogbXNnc3RyICIiCiAKQEAgLTgwNDUsMzUgKzg0MzMsMzUgQEAKIG1zZ2lkICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1wYXR0ZXJuXSA8IHJlZi1saXN0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjUKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjgKIG1zZ2lkICJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjkKIG1zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjcKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAKIG1zZ2lkICJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsIHJlcXVpcmVzIGV4YWN0IHJlZiBwYXRoIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAgYnVpbHRpbi9zaG93LXJlZi5jOjE3MgotbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzQKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKIG1zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGludG8gb2JqZWN0IElEcyIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTc2CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTgwCiBtc2dpZCAib25seSBzaG93IFNIQTEgaGFzaCB1c2luZyA8bj4gZGlnaXRzIgogbXNnc3RyICIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKIG1zZ3N0ciAiIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiIgogCkBAIC04NDc3LDIzICs4ODY1LDMwIEBACiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQuYzoxNgotbXNnaWQgIlNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhIHNwZWNpZmljIGNvbW1hbmQuIgorIzogZ2l0LmM6MTcKK21zZ2lkICIiCisiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKKyJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCisidG8gcmVhZCBhYm91dCBhIHNwZWNpZmljIHN1YmNvbW1hbmQgb3IgY29uY2VwdC4iCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1NgorIzogcGFyc2Utb3B0aW9ucy5oOjE0NAorbXNnaWQgImV4cGlyeSBkYXRlIgorbXNnc3RyICIiCisKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNTkKIG1zZ2lkICJuby1vcCAoYmFja3dhcmQgY29tcGF0aWJpbGl0eSkiCiBtc2dzdHIgIiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzMgorIzogcGFyc2Utb3B0aW9ucy5oOjIzNgogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM0CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSBxdWlldCIKIG1zZ3N0ciAiIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ0CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgIiIKIApAQCAtODU1MCw3ICs4OTQ1LDcgQEAKIG1zZ3N0ciAiIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCittc2dpZCAiRmV0Y2ggZnJvbSBhbmQgaW50ZWdyYXRlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgogbXNnc3RyICIiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKQEAgLTg1OTQsNyArODk4OSw3IEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgpAQCAtODY0NCwyNSArOTAzOSwzMiBAQAogIml0IHdpbGwgYmUgcmVtb3ZlZC4gUGxlYXNlIGRvIG5vdCB1c2UgaXQgYW55bW9yZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjQ3NworIzogZ2l0LWFtLnNoOjQ3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjQ4MgorIzogZ2l0LWFtLnNoOjQ4NAogbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo1MDkKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKworIzogZ2l0LWFtLnNoOjUyOAogbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjU3NQorIzogZ2l0LWFtLnNoOjU5NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6Njc5CisjOiBnaXQtYW0uc2g6Njk4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCkBAIC04NjcwLDYwICs5MDcyLDYwIEBACiAiVG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoIGFuZCBzdG9wIHBhdGNoaW5nIHJ1biBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjcwNgorIzogZ2l0LWFtLnNoOjcyNQogbXNnaWQgIlBhdGNoIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjc1MworIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6NzU3CisjOiBnaXQtYW0uc2g6Nzc2CiBtc2dpZCAiQ29tbWl0IEJvZHkgaXM6IgogbXNnc3RyICIiCiAKICMuIFRSQU5TTEFUT1JTOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBbeV0sIFtuXSwgW2VdLCBbdl0gYW5kIFthXQogIy4gaW4geW91ciB0cmFuc2xhdGlvbi4gVGhlIHByb2dyYW0gd2lsbCBvbmx5IGFjY2VwdCBFbmdsaXNoCiAjLiBpbnB1dCBhdCB0aGlzIHBvaW50LgotIzogZ2l0LWFtLnNoOjc2NAorIzogZ2l0LWFtLnNoOjc4MwogbXNnaWQgIkFwcGx5PyBbeV1lcy9bbl1vL1tlXWRpdC9bdl1pZXcgcGF0Y2gvW2FdY2NlcHQgYWxsICIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6ODAwCisjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6ODIxCisjOiBnaXQtYW0uc2g6ODQwCiBtc2dpZCAiIgogIk5vIGNoYW5nZXMgLSBkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnP1xuIgogIklmIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0byBzdGFnZSwgY2hhbmNlcyBhcmUgdGhhdCBzb21ldGhpbmcgZWxzZVxuIgogImFscmVhZHkgaW50cm9kdWNlZCB0aGUgc2FtZSBjaGFuZ2VzOyB5b3UgbWlnaHQgd2FudCB0byBza2lwIHRoaXMgcGF0Y2guIgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgogbXNnc3RyICIiCiAKLSM6IGdpdC1hbS5zaDo4NDUKKyM6IGdpdC1hbS5zaDo4NjQKIG1zZ2lkICJObyBjaGFuZ2VzIC0tIFBhdGNoIGFscmVhZHkgYXBwbGllZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjg1NQorIzogZ2l0LWFtLnNoOjg3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYW0uc2g6ODU4CisjOiBnaXQtYW0uc2g6ODc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgogIiAgICRkb3Rlc3QvcGF0Y2giCiBtc2dzdHIgIiIKIAotIzogZ2l0LWFtLnNoOjg3NgorIzogZ2l0LWFtLnNoOjg5NQogbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCiBtc2dzdHIgIiIKIApAQCAtODgxNSw1OSArOTIxNyw1OSBAQAogIihZb3UgY2FuIHVzZSBcImdpdCBiaXNlY3QgYmFkXCIgYW5kIFwiZ2l0IGJpc2VjdCBnb29kXCIgZm9yIHRoYXQuKSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM0NyBnaXQtYmlzZWN0LnNoOjQ3NAorIzogZ2l0LWJpc2VjdC5zaDozNjMgZ2l0LWJpc2VjdC5zaDo0OTAKIG1zZ2lkICJXZSBhcmUgbm90IGJpc2VjdGluZy4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWJpc2VjdC5zaDozNTQKKyM6IGdpdC1iaXNlY3Quc2g6MzcwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGludmFsaWQnIGlzIG5vdCBhIHZhbGlkIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM2MworIzogZ2l0LWJpc2VjdC5zaDozNzkKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJDb3VsZCBub3QgY2hlY2sgb3V0IG9yaWdpbmFsIEhFQUQgJyRicmFuY2gnLlxuIgogIlRyeSAnZ2l0IGJpc2VjdCByZXNldCA8Y29tbWl0PicuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzkwCisjOiBnaXQtYmlzZWN0LnNoOjQwNgogbXNnaWQgIk5vIGxvZ2ZpbGUgZ2l2ZW4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LWJpc2VjdC5zaDozOTEKKyM6IGdpdC1iaXNlY3Quc2g6NDA3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAkZmlsZSBmb3IgcmVwbGF5aW5nIgogbXNnc3RyICIiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDA4CisjOiBnaXQtYmlzZWN0LnNoOjQyNAogbXNnaWQgIj8/IHdoYXQgYXJlIHlvdSB0YWxraW5nIGFib3V0PyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYmlzZWN0LnNoOjQyMAorIzogZ2l0LWJpc2VjdC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgInJ1bm5pbmcgJGNvbW1hbmQiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MjcKKyM6IGdpdC1iaXNlY3Quc2g6NDQzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCiAiZXhpdCBjb2RlICRyZXMgZnJvbSAnJGNvbW1hbmQnIGlzIDwgMCBvciA+PSAxMjgiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWJpc2VjdC5zaDo0NTMKKyM6IGdpdC1iaXNlY3Quc2g6NDY5CiBtc2dpZCAiYmlzZWN0IHJ1biBjYW5ub3QgY29udGludWUgYW55IG1vcmUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LWJpc2VjdC5zaDo0NTkKKyM6IGdpdC1iaXNlY3Quc2g6NDc1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCiAiJ2Jpc2VjdF9zdGF0ZSAkc3RhdGUnIGV4aXRlZCB3aXRoIGVycm9yIGNvZGUgJHJlcyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtYmlzZWN0LnNoOjQ2NgorIzogZ2l0LWJpc2VjdC5zaDo0ODIKIG1zZ2lkICJiaXNlY3QgcnVuIHN1Y2Nlc3MiCiBtc2dzdHIgIiIKIApAQCAtODkwNiw3ICs5MzA4LDcgQEAKIG1zZ2lkICJDYW5ub3QgcmViYXNlIG9udG8gbXVsdGlwbGUgYnJhbmNoZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MworIzogZ2l0LXJlYmFzZS5zaDo1NAogbXNnaWQgIiIKICJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIuXG4iCiAiSWYgeW91IHByZWZlciB0byBza2lwIHRoaXMgcGF0Y2gsIHJ1biBcImdpdCByZWJhc2UgLS1za2lwXCIgaW5zdGVhZC5cbiIKQEAgLTg5MTQsNDIgKzkzMTYsNTggQEAKICJcIi4iCiBtc2dzdHIgIiIKIAorIzogZ2l0LXJlYmFzZS5zaDoxNTYKK21zZ2lkICJBcHBsaWVkIGF1dG9zdGFzaC4iCittc2dzdHIgIiIKKworIzogZ2l0LXJlYmFzZS5zaDoxNTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBzdG9yZSAkc3Rhc2hfc2hhMSIKK21zZ3N0ciAiIgorCiAjOiBnaXQtcmViYXNlLnNoOjE2MAorbXNnaWQgIiIKKyJBcHBseWluZyBhdXRvc3Rhc2ggcmVzdWx0ZWQgaW4gY29uZmxpY3RzLlxuIgorIllvdXIgY2hhbmdlcyBhcmUgc2FmZSBpbiB0aGUgc3Rhc2guXG4iCisiWW91IGNhbiBydW4gXCJnaXQgc3Rhc2ggcG9wXCIgb3IgXCJnaXQgc3Rhc2ggZHJvcFwiIGF0IGFueSB0aW1lLlxuIgorbXNnc3RyICIiCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTkwCiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxNjUKKyM6IGdpdC1yZWJhc2Uuc2g6MTk1CiBtc2dpZCAiSXQgbG9va3MgbGlrZSBnaXQtYW0gaXMgaW4gcHJvZ3Jlc3MuIENhbm5vdCByZWJhc2UuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6Mjk2CisjOiBnaXQtcmViYXNlLnNoOjMyOQogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjMwMQorIzogZ2l0LXJlYmFzZS5zaDozMzQKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzEyCisjOiBnaXQtcmViYXNlLnNoOjM0NQogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxOQorIzogZ2l0LXJlYmFzZS5zaDozNTIKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzIyCisjOiBnaXQtcmViYXNlLnNoOjM1NQogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjM0MAorIzogZ2l0LXJlYmFzZS5zaDozNzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBtb3ZlIGJhY2sgdG8gJGhlYWRfbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjM1OQorIzogZ2l0LXJlYmFzZS5zaDozOTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJJdCBzZWVtcyB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSAkc3RhdGVfZGlyX2Jhc2UgZGlyZWN0b3J5LCBhbmRcbiIKQEAgLTg5NjIsNTYgKzkzODAsNjUgQEAKICJ2YWx1YWJsZSB0aGVyZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDI4CisjOiBnaXQtcmViYXNlLnNoOjQ2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzEgZ2l0LXJlYmFzZS5zaDo0MzUKKyM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDQwCisjOiBnaXQtcmViYXNlLnNoOjQ3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NjMKKyM6IGdpdC1yZWJhc2Uuc2g6NDk2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJmYXRhbDogbm8gc3VjaCBicmFuY2g6ICRicmFuY2hfbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ4MworIzogZ2l0LXJlYmFzZS5zaDo1MTkKK21zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgorbXNnc3RyICIiCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKK21zZ3N0ciAiIgorCisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTQ4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NTUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MTUKKyM6IGdpdC1yZWJhc2Uuc2g6NTYzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKIG1zZ3N0ciAiIgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU3MgogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzMgorIzogZ2l0LXJlYmFzZS5zaDo1ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhc3QtZm9yd2FyZGVkICRicmFuY2hfbmFtZSB0byAkb250b19uYW1lLiIKIG1zZ3N0ciAiIgpAQCAtOTA0NCw2ICs5NDcxLDExIEBACiBtc2dpZCAiQ2Fubm90IHJlY29yZCB3b3JraW5nIHRyZWUgc3RhdGUiCiBtc2dzdHIgIiIKIAorIzogZ2l0LXN0YXNoLnNoOjE5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiQ2Fubm90IHVwZGF0ZSAkcmVmX3N0YXNoIHdpdGggJHdfY29tbWl0IgorbXNnc3RyICIiCisKICMuIFRSQU5TTEFUT1JTOiAkb3B0aW9uIGlzIGFuIGludmFsaWQgb3B0aW9uLCBsaWtlCiAjLiBgLS1ibGFoLWJsYWgnLiBUaGUgNyBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKICMuIHNlY29uZCBsaW5lIGNvcnJlc3BvbmQgdG8gImVycm9yOiAiLiBTbyB5b3Ugc2hvdWxkIGxpbmUKQEAgLTkwNTQsMTI2ICs5NDg2LDE0MSBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjIwMgorIzogZ2l0LXN0YXNoLnNoOjI0MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCiAiICAgICAgIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjMKKyM6IGdpdC1zdGFzaC5zaDoyNjIKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjIyNworIzogZ2l0LXN0YXNoLnNoOjI2OAorbXNnaWQgIiIKKyJUaGUgZm9sbG93aW5nIHVudHJhY2tlZCBmaWxlcyB3b3VsZCBOT1QgYmUgc2F2ZWQgYnV0IG5lZWQgdG8gYmUgcmVtb3ZlZCBieSAiCisic3Rhc2ggc2F2ZToiCittc2dzdHIgIiIKKworIzogZ2l0LXN0YXNoLnNoOjI3MAorbXNnaWQgIiIKKyJBYm9ydGluZy4gQ29uc2lkZXIgdXNpbmcgZWl0aGVyIHRoZSAtLWZvcmNlIG9yIC0taW5jbHVkZS11bnRyYWNrZWQgb3B0aW9uLiIKK21zZ3N0ciAiIgorCisjOiBnaXQtc3Rhc2guc2g6Mjc0CiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjIzNQorIzogZ2l0LXN0YXNoLnNoOjI3OAogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6MjUzCisjOiBnaXQtc3Rhc2guc2g6Mjk2CiBtc2dpZCAiQ2Fubm90IHJlbW92ZSB3b3JrdHJlZSBjaGFuZ2VzIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDozNTIKKyM6IGdpdC1zdGFzaC5zaDozOTUKIG1zZ2lkICJObyBzdGFzaCBmb3VuZC4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjM1OQorIzogZ2l0LXN0YXNoLnNoOjQwMgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6MzY1CisjOiBnaXQtc3Rhc2guc2g6NDA4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjM5MworIzogZ2l0LXN0YXNoLnNoOjQzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDA0CisjOiBnaXQtc3Rhc2guc2g6NDQ3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZ3MnIGlzIG5vdCBhIHN0YXNoIHJlZmVyZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDEyCisjOiBnaXQtc3Rhc2guc2g6NDU1CiBtc2dpZCAidW5hYmxlIHRvIHJlZnJlc2ggaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQxNgorIzogZ2l0LXN0YXNoLnNoOjQ1OQogbXNnaWQgIkNhbm5vdCBhcHBseSBhIHN0YXNoIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI0CisjOiBnaXQtc3Rhc2guc2g6NDY3CiBtc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI2CisjOiBnaXQtc3Rhc2guc2g6NDY5CiBtc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDYwCisjOiBnaXQtc3Rhc2guc2g6NTAzCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUxOAogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkyCisjOiBnaXQtc3Rhc2guc2g6NTM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTMKKyM6IGdpdC1zdGFzaC5zaDo1MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMAorIzogZ2l0LXN0YXNoLnNoOjU0MwogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3Rhc2guc2g6NTcxCisjOiBnaXQtc3Rhc2guc2g6NjE1CiBtc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzdHJpcCBvbmUgY29tcG9uZW50IG9mZiB1cmwgJyRyZW1vdGV1cmwnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTk2CisjOiBnaXQtc3VibW9kdWxlLnNoOjIzNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiTm8gc3VibW9kdWxlIG1hcHBpbmcgZm91bmQgaW4gLmdpdG1vZHVsZXMgZm9yIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjIzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNsb25lIG9mICckdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgZmFpbGVkIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjI5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiR2l0ZGlyICckYScgaXMgcGFydCBvZiB0aGUgc3VibW9kdWxlIHBhdGggJyRiJyBvciB2aWNlIHZlcnNhIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzQ5CisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMworbXNnaWQgIlJlbGF0aXZlIHBhdGggY2FuIG9ubHkgYmUgdXNlZCBmcm9tIHRoZSB0b3BsZXZlbCBvZiB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDEzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJyZXBvIFVSTDogJyRyZXBvJyBtdXN0IGJlIGFic29sdXRlIG9yIGJlZ2luIHdpdGggLi98Li4vIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjQzMAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgaW5kZXgiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNzAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDM0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGZvbGxvd2luZyBwYXRoIGlzIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKQEAgLTkxODEsMjMzICs5NjI4LDI0NCBAQAogIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIGl0LiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFkZGluZyBleGlzdGluZyByZXBvIGF0ICckc21fcGF0aCcgdG8gdGhlIGluZGV4IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzkwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGEgdmFsaWQgZ2l0IHJlcG8iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDYyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBIGdpdCBkaXJlY3RvcnkgZm9yICckc21fbmFtZScgaXMgZm91bmQgbG9jYWxseSB3aXRoIHJlbW90ZShzKToiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDAyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogInVzZSB0aGUgJy0tZm9yY2UnIG9wdGlvbi4gSWYgdGhlIGxvY2FsIGdpdCBkaXJlY3RvcnkgaXMgbm90IHRoZSBjb3JyZWN0IHJlcG8iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgogIm9wdGlvbi4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDUKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJSZWFjdGl2YXRpbmcgbG9jYWwgZ2l0IGRpcmVjdG9yeSBmb3Igc3VibW9kdWxlICckc21fbmFtZScuIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDE3CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0IHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDIyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGFkZCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ3NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkVudGVyaW5nICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIkVudGVyaW5nICckcHJlZml4JGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN0b3BwaW5nIGF0ICckc21fcGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgorbXNnaWQgIlN0b3BwaW5nIGF0ICckcHJlZml4JGRpc3BsYXlwYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjAwCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyBpbiAuZ2l0bW9kdWxlcyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjExCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjczCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKK21zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKK21zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIgorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODcKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjOiBnaXQtc3VibW9kdWxlLnNoOjgyNAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzUzCisjOiBnaXQtc3VibW9kdWxlLnNoOjgzMwogIywgc2gtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3NzcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODU3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzkxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg3MQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byByZWJhc2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzIKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODc3CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gbWVyZ2UgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzgKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogbWVyZ2VkIGluICckc2hhMSciCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICIiCisiRXhlY3V0aW9uIG9mICckY29tbWFuZCAkc2hhMScgZmFpbGVkIGluIHN1Ym1vZHVsZSAgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4OTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTE3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyNQogbXNnaWQgIlRoZSAtLWNhY2hlZCBvcHRpb24gY2Fubm90IGJlIHVzZWQgd2l0aCB0aGUgLS1maWxlcyBvcHRpb24iCiBtc2dzdHIgIiIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5OTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA4NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAwCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODkKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgogbXNnc3RyICIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNwogbXNnaWQgImJsb2IiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTUKIG1zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwogbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCiBtc2dzdHIgIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTUzCisjOiBnaXQtc3VibW9kdWxlLnNoOjEyNDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEyMTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTMwNgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCmRpZmYgLS1naXQgYS9wby9zdi5wbyBiL3BvL3N2LnBvCmluZGV4IDFkNGVhMmUzLi4xMmRmY2E5IDEwMDY0NAotLS0gYS9wby9zdi5wbworKysgYi9wby9zdi5wbwpAQCAtNSwxMCArNSwxMCBAQAogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0IDEuOC4zXG4iCisiUHJvamVjdC1JZC1WZXJzaW9uOiBnaXQgMS44LjRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNC0xMCAxNToxNiswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wNC0xMSAxMTo1NiswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDgtMDYgMTQ6MTArMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDgtMDYgMTI6MzcrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogUGV0ZXIgS3JlZnRpbmcgPHBldGVyQHNvZnR3b2x2ZXMucHAuc2U+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogU3dlZGlzaCA8dHAtc3ZAbGlzdG9yLnRwLXN2LnNlPlxuIgogIkxhbmd1YWdlOiBzdlxuIgpAQCAtMTcsNyArMTcsNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAidGlwczogJS4qc1xuIgpAQCAtMjYsNyArMjYsNyBAQAogIy4gKiBNZXNzYWdlIHVzZWQgYm90aCB3aGVuICdnaXQgY29tbWl0JyBmYWlscyBhbmQgd2hlbgogIy4gKiBvdGhlciBjb21tYW5kcyBkb2luZyBhIG1lcmdlIGRvLgogIy4KLSM6IGFkdmljZS5jOjgzCisjOiBhZHZpY2UuYzo4NwogbXNnaWQgIiIKICJGaXggdGhlbSB1cCBpbiB0aGUgd29yayB0cmVlLFxuIgogImFuZCB0aGVuIHVzZSAnZ2l0IGFkZC9ybSA8ZmlsZT4nIGFzXG4iCkBAIC02NSw3ICs2NSw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgImFya2l2Zm9ybWF0IgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTExNworIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExNzMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgInByZWZpeCIKIApAQCAtNzMsMTEgKzczLDExIEBACiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBwcmVmaXggdGlsbCB2YXJqZSBzw7ZrdsOkZyBpIGFya2l2ZXQiCiAKLSM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIzNjYKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY3IGJ1aWx0aW4vY29uZmlnLmM6NTUgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MSBidWlsdGluL2dyZXAuYzo3MTUgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAgYnVpbHRpbi9ub3Rlcy5jOjUzNgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MyBidWlsdGluL3JlYWQtdHJlZS5jOjEwNyBwYXJzZS1vcHRpb25zLmg6MTQ5CisjOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgogbXNnaWQgImZpbGUiCiBtc2dzdHIgImZpbCIKIApAQCAtMTA5LDcgKzEwOSw3IEBACiBtc2dpZCAibGlzdCBzdXBwb3J0ZWQgYXJjaGl2ZSBmb3JtYXRzIgogbXNnc3RyICJ2aXNhIHVuZGVyc3TDtmRkYSBhcmtpdmZvcm1hdCIKIAotIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODYKKyM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg1CiBtc2dpZCAicmVwbyIKIG1zZ3N0ciAiYXJraXYiCiAKQEAgLTExNyw3ICsxMTcsNyBAQAogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICJow6RtdGEgYXJraXZldCBmcsOlbiBmasOkcnJhcmtpdmV0IDxhcmtpdj4iCiAKLSM6IGFyY2hpdmUuYzozNDcgYnVpbHRpbi9hcmNoaXZlLmM6OTIgYnVpbHRpbi9ub3Rlcy5jOjYxNQorIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NDg3CiBtc2dpZCAiY29tbWFuZCIKIG1zZ3N0ciAia29tbWFuZG8iCiAKQEAgLTEzMywxNyArMTMzLDg4IEBACiAiTmVnYXRpdmEgbcO2bnN0ZXIgaWdub3JlcmFzIGkgZ2l0LWF0dHJpYnV0XG4iCiAiQW52w6RuZCAnXFwhJyBmw7ZyIGF0dCBpbmxlZGEgbWVkIGV0dCB1dHJvcHN0ZWNrZW4uIgogCi0jOiBicmFuY2guYzoyMDEKKyM6IGJyYW5jaC5jOjYwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBzZXR0aW5nIGJyYW5jaCAlcyBhcyBpdHMgb3duIHVwc3RyZWFtLiIKK21zZ3N0ciAiU3TDpGxsZXIgaW50ZSBpbiBncmVuZW4gJXMgc29tIHNpbiBlZ2VuIHVwcHN0csO2bXNncmVuLiIKKworIzogYnJhbmNoLmM6ODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICIiCisiR3JlbmVuICVzIHN0w6RsbGRlcyBpbiBhdHQgc3DDpXJhIGZqw6RycmdyZW5lbiAlcyBmcsOlbiAlcyBnZW5vbSBvbWJhc2VyaW5nLiIKKworIzogYnJhbmNoLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMuIgorbXNnc3RyICJHcmVuZW4gJXMgc3TDpGxsZGVzIGluIGF0dCBzcMOlcmEgZmrDpHJyZ3JlbmVuICVzIGZyw6VuICVzLiIKKworIzogYnJhbmNoLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJHcmVuZW4gJXMgc3TDpGxsZGVzIGluIGF0dCBzcMOlcmEgZGVuIGxva2FsYSBncmVuZW4gJXMgZ2Vub20gb21iYXNlcmluZy4iCisKKyM6IGJyYW5jaC5jOjg4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgYnJhbmNoICVzLiIKK21zZ3N0ciAiR3JlbmVuICVzIHN0w6RsbGRlcyBpbiBhdHQgc3DDpXJhIGRlbiBsb2thbGEgZ3JlbmVuICVzLiIKKworIzogYnJhbmNoLmM6OTIKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgcmVmICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiR3JlbmVuICVzIHN0w6RsbGRlcyBpbiBhdHQgc3DDpXJhIGZqw6RycmVmZXJlbnNlbiAlcyBnZW5vbSBvbWJhc2VyaW5nLiIKKworIzogYnJhbmNoLmM6OTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgcmVmICVzLiIKK21zZ3N0ciAiR3JlbmVuICVzIHN0w6RsbGRlcyBpbiBhdHQgc3DDpXJhIGZqw6RycmVmZXJlbnNlbiAlcy4iCisKKyM6IGJyYW5jaC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiIgorIkdyZW5lbiAlcyBzdMOkbGxkZXMgaW4gYXR0IHNww6VyYSBkZW4gbG9rYWxhIHJlZmVyZW5zZW4gJXMgZ2Vub20gb21iYXNlcmluZy4iCisKKyM6IGJyYW5jaC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzLiIKK21zZ3N0ciAiR3JlbmVuICVzIHN0w6RsbGRlcyBpbiBhdHQgc3DDpXJhIGRlbiBsb2thbGEgcmVmZXJlbnNlbiAlcy4iCisKKyM6IGJyYW5jaC5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJUcmFja2luZyBub3Qgc2V0IHVwOiBuYW1lIHRvbyBsb25nOiAlcyIKK21zZ3N0ciAiU3DDpXJuaW5nIGhhciBpbnRlIHN0w6RsbHRzIGluOiBuYW1uZXQgZsO2ciBsw6VuZ3Q6ICVzIgorCisjOiBicmFuY2guYzoxMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHRyYWNraW5nOiBhbWJpZ3VvdXMgaW5mb3JtYXRpb24gZm9yIHJlZiAlcyIKK21zZ3N0ciAiU3DDpXJhciBpbnRlOiB0dmV0eWRpZyBpbmZvcm1hdGlvbiBmw7ZyIHJlZmVyZW5zZW4gJXMiCisKKyM6IGJyYW5jaC5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIGJyYW5jaCBuYW1lLiIKK21zZ3N0ciAiXCIlc1wiIMOkciBpbnRlIGV0dCBnaWx0aWd0IGdyZW5uYW1uLiIKKworIzogYnJhbmNoLmM6MTg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkEgYnJhbmNoIG5hbWVkICclcycgYWxyZWFkeSBleGlzdHMuIgorbXNnc3RyICJEZXQgZmlubnMgcmVkYW4gZW4gZ3JlbiBzb20gaGV0ZXIgXCIlc1wiIgorCisjOiBicmFuY2guYzoxOTUKK21zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCittc2dzdHIgIkthbiBpbnRlIHR2aW5nYSB1cHBkYXRlcmluZyBhdiBha3R1ZWxsIGdyZW4uIgorCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIkthbiBpbnRlIHN0w6RsbGEgaW4gc3DDpXJuaW5nOyBzdGFydHB1bmt0ZW4gXCIlc1wiIMOkciBpbnRlIGVuIGdyZW4uIgogCi0jOiBicmFuY2guYzoyMDMKKyM6IGJyYW5jaC5jOjIxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ0aGUgcmVxdWVzdGVkIHVwc3RyZWFtIGJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJkZW4gZWZ0ZXJmcsOlZ2FkZSB1cHBzdHLDtm1zZ3JlbmVuIFwiJXNcIiBmaW5ucyBpbnRlIgogCi0jOiBicmFuY2guYzoyMDUKKyM6IGJyYW5jaC5jOjIyMAogbXNnaWQgIiIKICJcbiIKICJJZiB5b3UgYXJlIHBsYW5uaW5nIG9uIGJhc2luZyB5b3VyIHdvcmsgb24gYW4gdXBzdHJlYW1cbiIKQEAgLTE2Myw2ICsyMzQsMjkgQEAKICJzcMOlcmEgZGVzcyBmasOkcnJtb3RzdmFyaWdoZXQga2FuIGR1IGFudsOkbmRhIFwiZ2l0IHB1c2ggLXVcIlxuIgogImbDtnIgYXR0IHN0w6RsbGEgaW4gdXBwc3Ryw7Ztc2tvbmZpZ3VyYXRpb25lbiBuw6RyIGR1IHPDpG5kZXIgaW4uIgogCisjOiBicmFuY2guYzoyNjUKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWU6ICclcycuIgorbXNnc3RyICJPYmpla3RuYW1uZXQgw6RyIGludGUgZ2lsdGlndDogXCIlc1wiLiIKKworIzogYnJhbmNoLmM6Mjg1CisjLCBjLWZvcm1hdAorbXNnaWQgIkFtYmlndW91cyBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIk9iamVrdG5hbW5ldCDDpHIgdHZldHlkaWd0OiBcIiVzXCIuIgorCisjOiBicmFuY2guYzoyOTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgYnJhbmNoIHBvaW50OiAnJXMnLiIKK21zZ3N0ciAiQXZncmVuaW5nc3B1bmt0ZW4gw6RyIGludGUgZ2lsdGlnOiBcIiVzXCIiCisKKyM6IGJyYW5jaC5jOjI5NgorbXNnaWQgIkZhaWxlZCB0byBsb2NrIHJlZiBmb3IgdXBkYXRlIgorbXNnc3RyICJNaXNzbHlja2FkZXMgbMOlc2EgcmVmZXJlbnMgZsO2ciB1cHBkYXRlcmluZyIKKworIzogYnJhbmNoLmM6MzE0Cittc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKK21zZ3N0ciAiTWlzc2x5Y2thZGVzIHNrcml2YSByZWZlcmVucyIKKwogIzogYnVuZGxlLmM6MzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBsb29rIGxpa2UgYSB2MiBidW5kbGUgZmlsZSIKQEAgLTE3Myw3ICsyNjcsNyBAQAogbXNnaWQgInVucmVjb2duaXplZCBoZWFkZXI6ICVzJXMgKCVkKSIKIG1zZ3N0ciAib2vDpG50IGh1dnVkOiAlcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIMO2cHBuYSBcIiVzXCIiCkBAIC0xODIsOSArMjc2LDkgQEAKIG1zZ2lkICJSZXBvc2l0b3J5IGxhY2tzIHRoZXNlIHByZXJlcXVpc2l0ZSBjb21taXRzOiIKIG1zZ3N0ciAiQXJraXZldCBzYWtuYXIgZGVzc2EgbsO2ZHbDpG5kaWdhIGluY2hlY2tuaW5nYXI6IgogCi0jOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjUxIHNlcXVlbmNlci5jOjEwODMgYnVpbHRpbi9sb2cuYzozMDAKLSM6IGJ1aWx0aW4vbG9nLmM6NzU0IGJ1aWx0aW4vbG9nLmM6MTM1MCBidWlsdGluL2xvZy5jOjE1NjYgYnVpbHRpbi9tZXJnZS5jOjM0OQotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NworIzogYnVuZGxlLmM6MTY0IHNlcXVlbmNlci5jOjY2MSBzZXF1ZW5jZXIuYzoxMTExIGJ1aWx0aW4vbG9nLmM6MzMxCisjOiBidWlsdGluL2xvZy5jOjgwMSBidWlsdGluL2xvZy5jOjEzOTkgYnVpbHRpbi9sb2cuYzoxNjI1IGJ1aWx0aW4vbWVyZ2UuYzozNjQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxNTYKIG1zZ2lkICJyZXZpc2lvbiB3YWxrIHNldHVwIGZhaWxlZCIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHNrYXBhIHJldmlzaW9uc3RyYXZlcnNlcmluZyIKIApAQCAtMjEwLDcgKzMwNCw3IEBACiBtc2dpZCAicmV2LWxpc3QgZGllZCIKIG1zZ3N0ciAicmV2LWxpc3QgZG9nIgogCi0jOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMjQ2IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNjAKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMTAgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgogbXNnc3RyICJva8OkbnQgYXJndW1lbnQ6ICVzIgpAQCAtMjQxLDEyICszMzUsMTIgQEAKIG1zZ2lkICJpbmRleC1wYWNrIGRpZWQiCiBtc2dzdHIgImluZGV4LXBhY2sgZG9nIgogCi0jOiBjb21taXQuYzo1MAorIzogY29tbWl0LmM6NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHBhcnNlICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHRvbGthICVzIgogCi0jOiBjb21taXQuYzo1MgorIzogY29tbWl0LmM6NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgJXMgaXMgbm90IGEgY29tbWl0ISIKIG1zZ3N0ciAiJXMgJXMgw6RyIGludGUgZW4gaW5jaGVja25pbmchIgpAQCAtMjU1LDE2ICszNDksMTYgQEAKIG1zZ2lkICJtZW1vcnkgZXhoYXVzdGVkIgogbXNnc3RyICJtaW5uZXQgc2x1dCIKIAotIzogY29ubmVjdGVkLmM6MzkKKyM6IGNvbm5lY3RlZC5jOjYwCiBtc2dpZCAiQ291bGQgbm90IHJ1biAnZ2l0IHJldi1saXN0JyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBrw7ZyYSBcImdpdCByZXYtbGlzdFwiIgogCi0jOiBjb25uZWN0ZWQuYzo0OAorIzogY29ubmVjdGVkLmM6ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHdyaXRlIHRvIHJldi1saXN0OiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgdGlsbCByZXYtbGlzdDogJXMiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc3TDpG5nYSByZXYtbGlzdDpzIHN0YW5kYXJkIGluOiAlcyIKQEAgLTM2MCw3ICs0NTQsNyBAQAogIkhpdHRhZGUgZmVsIGkga29uZmlndXJhdGlvbnN2YXJpYWJlbG4gXCJkaWZmLmRpcnN0YXRcIjpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODAKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC0zNjksNyArNDYzLDcgQEAKICJNaXNzbHlja2FkZXMgdG9sa2EgYXJndW1lbnQgdGlsbCBmbGFnZ2FuIC0tZGlyc3RhdC8tWDtcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0OTQKKyM6IGRpZmYuYzozNTAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBwYXJzZSAtLXN1Ym1vZHVsZSBvcHRpb24gcGFyYW1ldGVyOiAnJXMnIgogbXNnc3RyICJNaXNzbHlja2FkZXMgdG9sa2EgYXJndW1lbnQgdGlsbCBmbGFnZ2FuIC0tc3VibW9kdWxlOiBcIiVzXCIiCkBAIC00MTEsMjAgKzUwNSwyMCBAQAogbXNnaWQgIiclcyc6IHNob3J0IHJlYWQgJXMiCiBtc2dzdHIgIlwiJXNcIjoga29ydCBsw6RzbmluZyAlcyIKIAotIzogaGVscC5jOjIxMgorIzogaGVscC5jOjIxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJhdmFpbGFibGUgZ2l0IGNvbW1hbmRzIGluICclcyciCiBtc2dzdHIgImdpdC1rb21tYW5kb24gdGlsbGfDpG5nbGlnYSBpIFwiJXNcIiIKIAotIzogaGVscC5jOjIxOQorIzogaGVscC5jOjIxNwogbXNnaWQgImdpdCBjb21tYW5kcyBhdmFpbGFibGUgZnJvbSBlbHNld2hlcmUgb24geW91ciAkUEFUSCIKIG1zZ3N0ciAiZ2l0LWtvbW1hbmRvbiBmcsOlbiBhbmRyYSBwbGF0c2VyIGkgZGluICRQQVRIIgogCi0jOiBoZWxwLmM6MjM1CisjOiBoZWxwLmM6MjMzCiBtc2dpZCAiVGhlIG1vc3QgY29tbW9ubHkgdXNlZCBnaXQgY29tbWFuZHMgYXJlOiIKIG1zZ3N0ciAiRGUgbWVzdCBhbnbDpG5kYSBnaXQta29tbWFuZG9uYSDDpHI6IgogCi0jOiBoZWxwLmM6MjkyCisjOiBoZWxwLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCkBAIC00MzMsMTEgKzUyNywxMSBAQAogIlwiJXNcIiB2ZXJrYXIgdmFyYSBldHQgZ2l0LWtvbW1hbmRvLCBtZW4gdmkga2FuIGludGVcbiIKICJrw7ZyYSBkZXQuIEthbnNrZSBnaXQtJXMgw6RyIHRyYXNpZ3Q/IgogCi0jOiBoZWxwLmM6MzQ5CisjOiBoZWxwLmM6MzQ3CiBtc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCiBtc2dzdHIgIk9qIGTDpS4gRGl0dCBzeXN0ZW0gcmFwcG9ydGVyYXIgaW5nYSBHaXQta29tbWFuZG9uIGFsbHMuIgogCi0jOiBoZWxwLmM6MzcxCisjOiBoZWxwLmM6MzY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJXQVJOSU5HOiBZb3UgY2FsbGVkIGEgR2l0IGNvbW1hbmQgbmFtZWQgJyVzJywgd2hpY2ggZG9lcyBub3QgZXhpc3QuXG4iCkBAIC00NDYsMTcgKzU0MCwxNyBAQAogIlZBUk5JTkc6IER1IGFucm9wYWRlIGV0dCBHaXQta29tbWFuZG8gdmlkIG5hbW4gXCIlc1wiLCBzb20gaW50ZSBmaW5ucy5cbiIKICJGb3J0c8OkdHRlciB1bmRlciBmw7ZydXRzw6R0dG5pbmdlbiBhdHQgZHUgbWVuYWRlIFwiJXNcIiIKIAotIzogaGVscC5jOjM3NgorIzogaGVscC5jOjM3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbiAlMC4xZiBzZWNvbmRzIGF1dG9tYXRpY2FsbHkuLi4iCiBtc2dzdHIgImF1dG9tYXRpc2t0IG9tICUwLjFmIHNla3VuZGVyLi4uIgogCi0jOiBoZWxwLmM6MzgzCisjOiBoZWxwLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCiBtc2dzdHIgImdpdDogXCIlc1wiIMOkciBpbnRlIGV0dCBnaXQta29tbWFuZG8uIFNlIFwiZ2l0IC0taGVscFwiLiIKIAotIzogaGVscC5jOjM4NworIzogaGVscC5jOjM4NSBoZWxwLmM6NDQ0CiBtc2dpZCAiIgogIlxuIgogIkRpZCB5b3UgbWVhbiB0aGlzPyIKQEAgLTQ3MCwxMiArNTY0LDE3IEBACiAiXG4iCiAiTWVuYWRlIGR1IGV0dCBhdiBkZXNzYT8iCiAKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVzOiAlcyAtICVzIgorCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICJtaXNzbHlja2FkcyBsw6RzYSBjYWNoZW4iCiAKLSM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjIgYnVpbHRpbi9jaGVja291dC5jOjU2MwotIzogYnVpbHRpbi9jbG9uZS5jOjYzNQorIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2CisjOiBidWlsdGluL2Nsb25lLmM6NjU2CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSBueSBpbmRleGZpbCIKIApAQCAtNDg5LDcwICs1ODgsNzAgQEAKIG1zZ2lkICJhZGRpbmZvX2NhY2hlIGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICJhZGRpbmZvX2NhY2hlIG1pc3NseWNrYWRlcyBmw7ZyIHPDtmt2w6RnZW4gXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OQogbXNnaWQgImVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICJmZWwgdmlkIGJ5Z2dhbmRlIGF2IHRyw6RkIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIHBhdGggJyVzJyVzIgogbXNnc3RyICJtaXNzbHlja2FkZXMgc2thcGEgc8O2a3bDpGdlbiBcIiVzXCIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjgzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2ODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXMgdG8gbWFrZSByb29tIGZvciBzdWJkaXJlY3RvcnlcbiIKIG1zZ3N0ciAiVGFyIGJvcnQgJXMgZsO2ciBhdHQgZ8O2cmEgcGxhdHMgZsO2ciB1bmRlcmthdGFsb2dcbiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAiOiBrYW5za2UgZW4gSy9GLWtvbmZsaWt0PyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmdXNpbmcgdG8gbG9zZSB1bnRyYWNrZWQgZmlsZSBhdCAnJXMnIgogbXNnc3RyICJ2w6RncmFyIGbDtnJsb3JhIG9zcMOlcmFkIGZpbCB2aWQgXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBvYmplY3QgJXMgJyVzJyIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2Egb2JqZWt0ZXQgJXM6IFwiJXNcIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiYmxvYiBmw7ZydsOkbnRhZGVzIGbDtnIgJXMgXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIMO2cHBuYSBcIiVzXCIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBza2FwYSBzeW1ib2xpc2thIGzDpG5rZW4gXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICJ2ZXQgaW50ZSBodXIgJTA2byAlcyBcIiVzXCIgc2thbGwgaGFudGVyYXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIzCiBtc2dpZCAiRmFpbGVkIHRvIGV4ZWN1dGUgaW50ZXJuYWwgbWVyZ2UiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBleGVrdmVyYSBpbnRlcm4gc2FtbWFuc2xhZ25pbmciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkZ2dhIHRpbGwgJXMgdGlsbCBkYXRhYmFzZW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQzCiBtc2dpZCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgaW4gdGhlIHRyZWUiCiBtc2dzdHIgIm9iamVrdHR5cCBzb20gZWogc3TDtmRzIHVwcHTDpGNrdGVzIGkgdHLDpGRldCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMSBtZXJnZS1yZWN1cnNpdmUuYzoxMDM1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIyIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU2MSw3ICs2NjAsNyBAQAogIktPTkZMSUtUICglcy9yYWRlcmEpOiAlcyByYWRlcmFkIGkgJXMgb2NoICVzIGkgJXMuIFZlcnNpb25lbiAlcyBhdiAlcyBsw6RtbmFkICIKICJpIHRyw6RkZXQuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI3IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMjggbWVyZ2UtcmVjdXJzaXZlLmM6MTA0MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ09ORkxJQ1QgKCVzL2RlbGV0ZSk6ICVzIGRlbGV0ZWQgaW4gJXMgYW5kICVzIGluICVzLiBWZXJzaW9uICVzIG9mICVzIGxlZnQgIgpAQCAtNTcwLDIwICs2NjksMjAgQEAKICJLT05GTElLVCAoJXMvcmFkZXJhKTogJXMgcmFkZXJhZCBpICVzIG9jaCAlcyBpICVzLiBWZXJzaW9uZW4gJXMgYXYgJXMgbMOkbW5hZCAiCiAiaSB0csOkZGV0IHZpZCAlcy4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWUiCiBtc2dzdHIgIm5hbW5ieXRlIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lZCIKIG1zZ3N0ciAibmFtbmJ5dHQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiVzIMOkciBlbiBrYXRhbG9nIGkgJXMgbMOkZ2dlciB0aWxsIHNvbSAlcyBpc3TDpGxsZXQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNTkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lIFwiJXNcIi0+XCIlc1wiIGluIGJyYW5jaCBcIiVzXCIgcmVuYW1lIFwiJXMiCkBAIC01OTIsMTQ4ICs2OTEsMTY5IEBACiAiS09ORkxJS1QgKG5hbW5ieXRlL25hbW5ieXRlKTogTmFtbmJ5dGUgXCIlc1wiLT5cIiVzXCIgcMOlIGdyZW5lbiBcIiVzXCIgIgogIm5hbW5ieXRlIFwiJXNcIi0+XCIlc1wiIGkgXCIlc1wiJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIiAobMOkbW5hZCBvbMO2c3QpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gUmVuYW1lICVzLT4lcyBpbiAlcyIKIG1zZ3N0ciAiIgogIktPTkZMSUtUIChuYW1uYnl0ZS9uYW1uYnl0ZSk6IE5hbW5ieXRlICVzLT4lcyBpICVzLiBOYW1uYnl0ZSAlcy0+JXMgaSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTI0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWluZyAlcyB0byAlcyBhbmQgJXMgdG8gJXMgaW5zdGVhZCIKIG1zZ3N0ciAiQnl0ZXIgbmFtbiBww6UgJXMgdGlsbCAlcyBvY2ggJXMgdGlsbCAlcyBpc3TDpGxsZXQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKHJlbmFtZS9hZGQpOiBSZW5hbWUgJXMtPiVzIGluICVzLiAlcyBhZGRlZCBpbiAlcyIKIG1zZ3N0ciAiS09ORkxJS1QgKG5hbW5ieXRlL3RpbGzDpGdnKTogTmFtbmJ5dGUgJXMtPiVzIGkgJXMuICVzIHRpbGxhZ2QgaSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgbWVyZ2VkICVzIgogbXNnc3RyICJMw6RnZ2VyIHRpbGwgc2FtbWFuc2xhZ2VuICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYyIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjMgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgYXMgJXMgaW5zdGVhZCIKIG1zZ3N0ciAiTMOkZ2dlciB0aWxsIHNvbSAlcyBpc3TDpGxsZXIiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJrYW4gaW50ZSBsw6RzYSBvYmpla3RldCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTUxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgaXMgbm90IGEgYmxvYiIKIG1zZ3N0ciAib2JqZWt0ZXQgJXMgw6RyIGludGUgZW4gYmxvYiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU2NQogbXNnaWQgIm1vZGlmeSIKIG1zZ3N0ciAiw6RuZHJhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZpZWQiCiBtc2dzdHIgIsOkbmRyYWQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NzQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NzUKIG1zZ2lkICJjb250ZW50IgogbXNnc3RyICJpbm5laMOlbGwiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODIKIG1zZ2lkICJhZGQvYWRkIgogbXNnc3RyICJ0aWxsw6RnZy90aWxsw6RnZyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCiBtc2dzdHIgIkhvcHBhZGUgw7Z2ZXIgJXMgKHNhbW1hbnNsYWdlbiBzYW1tYSBzb20gYmVmaW50bGlnKSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIlNsw6VyIGlob3AgJXMgYXV0b21hdGlza3QiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzMgZ2l0LXN1Ym1vZHVsZS5zaDoxMDI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjM0IGdpdC1zdWJtb2R1bGUuc2g6MTExOAogbXNnaWQgInN1Ym1vZHVsZSIKIG1zZ3N0ciAidW5kZXJtb2R1bCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKIG1zZ3N0ciAiS09ORkxJS1QgKCVzKTogU2FtbWFuc2xhZ25pbmdza29uZmxpa3QgaSAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTcyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlcyIKIG1zZ3N0ciAiVGFyIGJvcnQgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAiZmlsL2thdGFsb2ciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTYKIG1zZ2lkICJkaXJlY3RvcnkvZmlsZSIKIG1zZ3N0ciAia2F0YWxvZy9maWwiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogVGhlcmUgaXMgYSBkaXJlY3Rvcnkgd2l0aCBuYW1lICVzIGluICVzLiBBZGRpbmcgJXMgYXMgJXMiCiBtc2dzdHIgIiIKICJLT05GTElLVCAoJXMpOiBEZXQgZmlubnMgZW4ga2F0YWxvZyBtZWQgbmFtbmV0ICVzIGkgJXMuIEzDpGdnZXIgdGlsbCAlcyBzb20gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nICVzIgogbXNnc3RyICJMw6RnZ2VyIHRpbGwgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODgKIG1zZ2lkICJGYXRhbCBtZXJnZSBmYWlsdXJlLCBzaG91bGRuJ3QgaGFwcGVuLiIKIG1zZ3N0ciAiw5ZkZXNkaWdlcnQgc2FtbWFuc2xhZ25pbmdzZmVsLCBib3JkZSBpbnRlIGludHLDpGZmYS4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4MDcKIG1zZ2lkICJBbHJlYWR5IHVwLXRvLWRhdGUhIgogbXNnc3RyICJSZWRhbiDDoCBqb3VyISIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTgxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJtZXJnaW5nIG9mIHRyZWVzICVzIGFuZCAlcyBmYWlsZWQiCiBtc2dzdHIgInNhbW1hbnNsYWduaW5nIGF2IHRyw6RkZW4gJXMgb2NoICVzIG1pc3NseWNrYWRlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgogbXNnc3RyICJPYmVoYW5kbGFkIHPDtmt2w6RnPz8/ICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODkxCiBtc2dpZCAiTWVyZ2luZzoiCiBtc2dzdHIgIlNsw6VyIGlob3A6IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgogbXNnc3RyWzBdICJoaXR0YWRlICV1IGdlbWVuc2FtIGbDtnJmYWRlcjoiCiBtc2dzdHJbMV0gImhpdHRhZGUgJXUgZ2VtZW5zYW1tYSBmw7ZyZsOkZGVyOiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk0MQogbXNnaWQgIm1lcmdlIHJldHVybmVkIG5vIGNvbW1pdCIKIG1zZ3N0ciAic2FtbWFuc2xhZ25pbmdlbiByZXR1cm5lcmFkZSBpbmdlbiBpbmNoZWNrbmluZyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcyciCiBtc2dzdHIgIkt1bmRlIGludGUgdG9sa2Egb2JqZWt0ZXQgXCIlc1wiIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDA5IGJ1aWx0aW4vbWVyZ2UuYzo2NTgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMTAgYnVpbHRpbi9tZXJnZS5jOjY3MgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBpbmRleC4iCiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIGluZGV4ZXQuIgogCi0jOiBvYmplY3QuYzoxOTUKKyM6IG5vdGVzLXV0aWxzLmM6NDAKK21zZ2lkICJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiCittc2dzdHIgIkthbiBpbnRlIGNoZWNrYSBpbiBvaW5pdGllcmF0L29yZWZlcmVyYXQgYW50ZWNrbmluZ3N0csOkZCIKKworIzogbm90ZXMtdXRpbHMuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIkZlbGFrdGlndCB2w6RyZGUgZsO2ciBub3Rlcy5yZXdyaXRlTW9kZTogJyVzJyIKKworIzogbm90ZXMtdXRpbHMuYzo5MQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIKK21zZ3N0ciAiVsOkZ3JhciBza3JpdmEgw7Z2ZXIgYW50ZWNrbmluZ2FyIGkgJXMgKHV0YW5mw7ZyIHJlZnMvbm90ZXMvKSIKKworIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKKyMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQorIzogbm90ZXMtdXRpbHMuYzoxMTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgorbXNnc3RyICJGZWxha3RpZ3QgdsOkcmRlIHDDpSAlczogXCIlc1wiIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgdG9sa2Egb2JqZWt0ZXQ6ICVzIgpAQCAtNzczLDE4ICs4OTMsMTggQEAKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiBtc2dzdHIgIlwiJXNcIiDDpHIgcMOlIGFuZHJhIHNpZGFuIGF2IGVuIHN5bWJvbGlzayBsw6RuayIKIAotIzogcmVtb3RlLmM6MTc4MQorIzogcmVtb3RlLmM6MTc4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdC5cbiIKIG1zZ2lkX3BsdXJhbCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXRzLlxuIgogbXNnc3RyWzBdICJEaW4gZ3JlbiBsaWdnZXIgZsO2cmUgXCIlc1wiIG1lZCAlZCBpbmNoZWNrbmluZy5cbiIKIG1zZ3N0clsxXSAiRGluIGdyZW4gbGlnZ2VyIGbDtnJlIFwiJXNcIiBtZWQgJWQgaW5jaGVja25pbmdhci5cbiIKIAotIzogcmVtb3RlLmM6MTc4NworIzogcmVtb3RlLmM6MTc5NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcHVzaFwiIGbDtnIgYXR0IHB1YmxpY2VyYSBkaW5hIGxva2FsYSBpbmNoZWNrbmluZ2FyKVxuIgogCi0jOiByZW1vdGUuYzoxNzkwCisjOiByZW1vdGUuYzoxNzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgpAQCAtNzk0LDExICs5MTQsMTEgQEAKIG1zZ3N0clsxXSAiIgogIkRpbiBncmVuIGxpZ2dlciBlZnRlciBcIiVzXCIgbWVkICVkIGluY2hlY2tuaW5nYXIsIG9jaCBrYW4gc25hYmJzcG9sYXMuXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTgKKyM6IHJlbW90ZS5jOjE4MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBwdWxsXCIgZsO2ciBhdHQgdXBwZGF0ZXJhIGRpbiBsb2thbGEgZ3JlbilcbiIKIAotIzogcmVtb3RlLmM6MTgwMQorIzogcmVtb3RlLmM6MTgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTgxMywxOCArOTMzLDI3IEBACiAiRGluIGdyZW4gb2NoIFwiJXNcIiBoYXIgZGl2ZXJnZXJhdCxcbiIKICJvY2ggaGFyICVkIHJlc3Bla3RpdmUgJWQgb2xpa2EgaW5jaGVja25pbmdhci5cbiIKIAotIzogcmVtb3RlLmM6MTgxMQorIzogcmVtb3RlLmM6MTgxOAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdWxsXCIgdG8gbWVyZ2UgdGhlIHJlbW90ZSBicmFuY2ggaW50byB5b3VycylcbiIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBwdWxsXCIgZsO2ciBhdHQgc2zDpSBpaG9wIGZqw6RycmdyZW5lbiBtZWQgZGluIGVnZW4pXG4iCiAKLSM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6Nzc2IGJ1aWx0aW4vbWVyZ2UuYzo4ODkgYnVpbHRpbi9tZXJnZS5jOjk5OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDkKKyM6IHJ1bi1jb21tYW5kLmM6ODAKK21zZ2lkICJvcGVuIC9kZXYvbnVsbCBmYWlsZWQiCittc2dzdHIgIm1pc3NseWNrYWRlcyDDtnBwbmEgL2Rldi9udWxsIgorCisjOiBydW4tY29tbWFuZC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImR1cDIoJWQsJWQpIGZhaWxlZCIKK21zZ3N0ciAiZHVwMiglZCwlZCkgbWlzc2x5Y2thZGVzIgorCisjOiBzZXF1ZW5jZXIuYzoyMDYgYnVpbHRpbi9tZXJnZS5jOjc5MCBidWlsdGluL21lcmdlLmM6OTAzCisjOiBidWlsdGluL21lcmdlLmM6MTAxMyBidWlsdGluL21lcmdlLmM6MTAyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nIgogbXNnc3RyICJLdW5kZSBpbnRlIMO2cHBuYSBcIiVzXCIgZsO2ciBza3Jpdm5pbmciCiAKLSM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzM1IGJ1aWx0aW4vbWVyZ2UuYzo3NzkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDAxIGJ1aWx0aW4vbWVyZ2UuYzoxMDE0CisjOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjM1MCBidWlsdGluL21lcmdlLmM6NzkzCisjOiBidWlsdGluL21lcmdlLmM6MTAxNSBidWlsdGluL21lcmdlLmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgdGlsbCBcIiVzXCIiCkBAIC04NDcsNyArOTc2LDcgQEAKICJtZWQgXCJnaXQgYWRkIDxzw7ZrdsOkZ2FyPlwiIGVsbGVyIFwiZ2l0IHJtIDxzw7ZrdsOkZ2FyPlwiXG4iCiAib2NoIGNoZWNrYSBpbiByZXN1bHRhdGV0IG1lZCBcImdpdCBjb21taXRcIiIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgdGlsbCAlcyIKQEAgLTg3MCwyMDUgKzk5OSwyMzcgQEAKIG1zZ3N0ciAiQ2hlY2thIGluIGRpbmEgw6RuZHJpbmdhciBlbGxlciBhbnbDpG5kIFwic3Rhc2hcIiBmw7ZyIGF0dCBmb3J0c8OkdHRhLiIKIAogIy4gVFJBTlNMQVRPUlM6ICVzIHdpbGwgYmUgInJldmVydCIgb3IgImNoZXJyeS1waWNrIgotIzogc2VxdWVuY2VyLmM6MzE5CisjOiBzZXF1ZW5jZXIuYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IFVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAiJXM6IEt1bmRlIGludGUgc2tyaXZhIG55IGluZGV4ZmlsIgogCi0jOiBzZXF1ZW5jZXIuYzozNTAKKyM6IHNlcXVlbmNlci5jOjM1NQogbXNnaWQgIkNvdWxkIG5vdCByZXNvbHZlIEhFQUQgY29tbWl0XG4iCiBtc2dzdHIgIkt1bmRlIGludGUgYmVzdMOkbW1hIEhFQUQ6cyBpbmNoZWNrbmluZ1xuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzEKKyM6IHNlcXVlbmNlci5jOjM3NwogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICJLYW4gaW50ZSB1cHBkYXRlcmEgY2FjaGV0csOkZFxuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MTYKKyM6IHNlcXVlbmNlci5jOjQyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgY29tbWl0ICVzXG4iCiBtc2dzdHIgIkt1bmRlIGludGUgdG9sa2EgaW5jaGVja25pbmdlbiAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjEKKyM6IHNlcXVlbmNlci5jOjQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgogbXNnc3RyICJLdW5kZSBpbnRlIHRvbGthIGbDtnLDpGxkcmFpbmNoZWNrbmluZ2VuICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQ4NworIzogc2VxdWVuY2VyLmM6NDkzCiBtc2dpZCAiWW91ciBpbmRleCBmaWxlIGlzIHVubWVyZ2VkLiIKIG1zZ3N0ciAiRGluIGluZGV4ZmlsIGhhciBpbnRlIHNsYWdpdHMgaWhvcC4iCiAKLSM6IHNlcXVlbmNlci5jOjUwNgorIzogc2VxdWVuY2VyLmM6NTEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKIG1zZ3N0ciAiSW5jaGVja25pbmcgJXMgw6RyIGVuIHNhbW1hbnNsYWduaW5nLCBtZW4gZmxhZ2dhbiAtbSBhbmdhdnMgaW50ZS4iCiAKLSM6IHNlcXVlbmNlci5jOjUxNAorIzogc2VxdWVuY2VyLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIHBhcmVudCAlZCIKIG1zZ3N0ciAiSW5jaGVja25pbmcgJXMgaGFyIGludGUgZsO2csOkbGRlciAlZCIKIAotIzogc2VxdWVuY2VyLmM6NTE4CisjOiBzZXF1ZW5jZXIuYzo1MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWFpbmxpbmUgd2FzIHNwZWNpZmllZCBidXQgY29tbWl0ICVzIGlzIG5vdCBhIG1lcmdlLiIKIG1zZ3N0ciAiSHV2dWRsaW5qZSBhbmdhdnMsIG1lbiBpbmNoZWNrbmluZ2VuICVzIMOkciBpbnRlIGVuIHNhbW1hbnNsYWduaW5nIgogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCiBtc2dzdHIgIiVzOiBrYW4gaW50ZSB0b2xrYSBmw7Zyw6RsZHJhaW5jaGVja25pbmdlbiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NTM1CisjOiBzZXF1ZW5jZXIuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCiBtc2dzdHIgIkthbiBpbnRlIGjDpG10YSBpbmNoZWNrbmluZ3NtZWRkZWxhbmRlIGbDtnIgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjYyMQorIzogc2VxdWVuY2VyLmM6NjI3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZXZlcnQgJXMuLi4gJXMiCiBtc2dzdHIgImt1bmRlIGludGUgw6VuZ3JhICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgImt1bmRlIGludGUgdGlsbMOkbXBhICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2NTQKKyM6IHNlcXVlbmNlci5jOjY2NAogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgogbXNnc3RyICJkZW4gYW5naXZuYSB1cHBzw6R0dG5pbmdlbiBpbmNoZWNrbmluZ2FyIMOkciB0b20iCiAKLSM6IHNlcXVlbmNlci5jOjY2MgorIzogc2VxdWVuY2VyLmM6NjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCAlczogZmFpbGVkIHRvIHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJnaXQgJXM6IG1pc3NseWNrYWRlcyBsw6RzYSBpbmRleGV0IgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzOiBtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGluZGV4ZXQiCiAKLSM6IHNlcXVlbmNlci5jOjcyNQorIzogc2VxdWVuY2VyLmM6NzM1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCAlcyBkdXJpbmcgYSAlcyIKIG1zZ3N0ciAia2FuIGludGUgJXMgdW5kZXIgZW4gJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc0NworIzogc2VxdWVuY2VyLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAiS2FuIGludGUgdG9sa2EgcmFkICVkLiIKIAotIzogc2VxdWVuY2VyLmM6NzUyCisjOiBzZXF1ZW5jZXIuYzo3NjIKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIkluZ2EgaW5jaGVja25pbmdhciBsw6RzdGVzLiIKIAotIzogc2VxdWVuY2VyLmM6NzY1CisjOiBzZXF1ZW5jZXIuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgw7ZwcG5hICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjkKKyM6IHNlcXVlbmNlci5jOjc3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIk9hbnbDpG5kYmFydCBtYW51czogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjgwNAorIzogc2VxdWVuY2VyLmM6ODE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQga2V5OiAlcyIKIG1zZ3N0ciAiRmVsYWt0aWcgbnlja2VsOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODA3CisjOiBzZXF1ZW5jZXIuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB2YWx1ZSBmb3IgJXM6ICVzIgogbXNnc3RyICJGZWxha3RpZ3QgdsOkcmRlIGbDtnIgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIlRyYXNpZ3QgbWFudXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDAKKyM6IHNlcXVlbmNlci5jOjg1MAogbXNnaWQgImEgY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImVuIFwiY2hlcnJ5LXBpY2tcIiBlbGxlciBcInJldmVydFwiIHDDpWfDpXIgcmVkYW4iCiAKLSM6IHNlcXVlbmNlci5jOjg0MQorIzogc2VxdWVuY2VyLmM6ODUxCiBtc2dpZCAidHJ5IFwiZ2l0IGNoZXJyeS1waWNrICgtLWNvbnRpbnVlIHwgLS1xdWl0IHwgLS1hYm9ydClcIiIKIG1zZ3N0ciAidGVzdGEgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgc2thcGEgXCJzZXF1ZW5jZXJcIi1rYXRhbG9nZW4gXCIlc1wiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NjEgc2VxdWVuY2VyLmM6OTQ2CisjOiBzZXF1ZW5jZXIuYzo4NzEgc2VxdWVuY2VyLmM6OTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIHdyYXBwaW5nIHVwICVzLiIKIG1zZ3N0ciAiRmVsIHZpZCBvbWJyeXRuaW5nIGF2ICVzLiIKIAotIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjg5MCBzZXF1ZW5jZXIuYzoxMDI0CiBtc2dpZCAibm8gY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGluIHByb2dyZXNzIgogbXNnc3RyICJpbmdlbiBcImNoZXJyeS1waWNrXCIgZWxsZXIgXCJyZXZlcnRcIiBww6Vnw6VyIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODIKKyM6IHNlcXVlbmNlci5jOjg5MgogbXNnaWQgImNhbm5vdCByZXNvbHZlIEhFQUQiCiBtc2dzdHIgImthbiBpbnRlIGJlc3TDpG1tYSBIRUFEIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODQKKyM6IHNlcXVlbmNlci5jOjg5NAogbXNnaWQgImNhbm5vdCBhYm9ydCBmcm9tIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICJrYW4gaW50ZSBhdmJyeXRhIGZyw6VuIGVuIGdyZW4gc29tIMOkbm51IGludGUgw6RyIGbDtmRkIgogCi0jOiBzZXF1ZW5jZXIuYzo5MDYgYnVpbHRpbi9hcHBseS5jOjQwNjAKKyM6IHNlcXVlbmNlci5jOjkxNiBidWlsdGluL2FwcGx5LmM6NDA2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCiBtc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlczogJXMiCiAKLSM6IHNlcXVlbmNlci5jOjkwOQorIzogc2VxdWVuY2VyLmM6OTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2EgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTAKKyM6IHNlcXVlbmNlci5jOjkyMAogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgIm92w6RudGF0IGZpbHNsdXQiCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKIG1zZ3N0ciAic3BhcmFkIEhFQUQtZmlsIGZyw6VuIGbDtnJlIFwiY2hlcnJ5LXBpY2tcIiwgXCIlc1wiLCDDpHIgdHJhc2lnIgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBmb3JtYXRlcmEgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTAxCisjOiBzZXF1ZW5jZXIuYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgorbXNnc3RyICIlczoga2FuIGludGUgZ8O2cmEgXCJjaGVycnktcGlja1wiIHDDpSB0eXBlbiBcIiVzXCIiCisKKyM6IHNlcXVlbmNlci5jOjEwOTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6IGJhZCByZXZpc2lvbiIKK21zZ3N0ciAiJXM6IGZlbGFrdGlnIHJldmlzaW9uIgorCisjOiBzZXF1ZW5jZXIuYzoxMTI5CiBtc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgogbXNnc3RyICJLYW4gaW50ZSDDpW5ncmEgc29tIGbDtnJzdGEgaW5jaGVja25pbmciCiAKLSM6IHNlcXVlbmNlci5jOjExMDIKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIkthbiBpbnRlIGfDtnJhIFwiY2hlcnJ5LXBpY2tcIiBpIGV0dCB0b210IGh1dnVkIgogCi0jOiBzaGExX25hbWUuYzoxMDM2CisjOiBzaGExX25hbWUuYzo0NDAKK21zZ2lkICIiCisiR2l0IG5vcm1hbGx5IG5ldmVyIGNyZWF0ZXMgYSByZWYgdGhhdCBlbmRzIHdpdGggNDAgaGV4IGNoYXJhY3RlcnNcbiIKKyJiZWNhdXNlIGl0IHdpbGwgYmUgaWdub3JlZCB3aGVuIHlvdSBqdXN0IHNwZWNpZnkgNDAtaGV4LiBUaGVzZSByZWZzXG4iCisibWF5IGJlIGNyZWF0ZWQgYnkgbWlzdGFrZS4gRm9yIGV4YW1wbGUsXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisid2hlcmUgXCIkYnJcIiBpcyBzb21laG93IGVtcHR5IGFuZCBhIDQwLWhleCByZWYgaXMgY3JlYXRlZC4gUGxlYXNlXG4iCisiZXhhbWluZSB0aGVzZSByZWZzIGFuZCBtYXliZSBkZWxldGUgdGhlbS4gVHVybiB0aGlzIG1lc3NhZ2Ugb2ZmIGJ5XG4iCisicnVubmluZyBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCIiCittc2dzdHIgIiIKKyJHaXQgc2thcGFyIG5vcm1hbHQgYWxkcmlnIHJlZmVyZW5zZXIgc29tIHNsdXRhciBtZWQgNDAgaGV4YWRlY2ltYWxhXG4iCisidGVja2VuLCBkw6UgZGV0dGEgaWdub3JlcmFzIG7DpHIgZHUgYW5nZXIgNDAtaGV4IGVuYmFydC4gRGVzc2FcbiIKKyJyZWZlcmVuc2VyIGthbiBza2FwYXMgYXYgbWlzc3RhZy4gVGlsbCBleGVtcGVsLCBmw7ZyXG4iCisiXG4iCisiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisiXG4iCisiZMOkciBcIiRiclwiIHDDpSBuw6Vnb3Qgc8OkdHQgYmxpdml0IHRvbXQgb2NoIGVuIDQwLWhleC1yZWZlcmVucyBza2FwYXRzLlxuIgorIlVuZGVyc8O2ayByZWZlcmVuc2VybmEgb2NoIHRhIGthbnNrZSBib3J0IGRlbS4gU3TDpG5nIGF2IG1lZGRlbGFuZGV0XG4iCisiZ2Vub20gYXR0IGvDtnJhIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKKworIzogc2hhMV9uYW1lLmM6MTA5NwogbXNnaWQgIkhFQUQgZG9lcyBub3QgcG9pbnQgdG8gYSBicmFuY2giCiBtc2dzdHIgIkhFQUQgcGVrYXIgaW50ZSBww6UgZW4gZ3JlbiIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiT2vDpG5kIGdyZW46IFwiJXNcIiIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiSW5nZW4gc3RhbmRhcmR1cHBzdHLDtm0gYW5naXZlbiBmw7ZyIGdyZW5lbiBcIiVzXCIiCiAKLSM6IHNoYTFfbmFtZS5jOjEwNDQKKyM6IHNoYTFfbmFtZS5jOjExMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIlVwcHN0csO2bXNncmVuZW4gXCIlc1wiIMOkciBpbnRlIGxhZ3JhZCBzb20gZW4gZmrDpHJyc3DDpXJhbmRlIGdyZW4iCkBAIC0xMDc4LDIzMiArMTIzOSwyMzIgQEAKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICJrYW4gaW50ZSBrb21tYSDDpXQgXCIlc1wiOiAlcyIKIAotIzogd3JhcHBlci5jOjQyMworIzogd3JhcHBlci5jOjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgImthbiBpbnRlIGtvbW1hIMOldCBcIiVzXCIiCiAKLSM6IHdyYXBwZXIuYzo0MzQKKyM6IHdyYXBwZXIuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgImthbiBpbnRlIHNsw6UgdXBwIGFrdHVlbGwgYW52w6RuZGFyZSBpIHBhc3N3ZC1maWxlbjogJXMiCiAKLSM6IHdyYXBwZXIuYzo0MzUKKyM6IHdyYXBwZXIuYzo0NDEKIG1zZ2lkICJubyBzdWNoIHVzZXIiCiBtc2dzdHIgIm9rw6RuZCBhbnbDpG5kYXJlIgogCi0jOiB3dC1zdGF0dXMuYzoxNDAKKyM6IHd0LXN0YXR1cy5jOjE0MQogbXNnaWQgIlVubWVyZ2VkIHBhdGhzOiIKIG1zZ3N0ciAiRWogc2FtbWFuc2xhZ25hIHPDtmt2w6RnYXI6IgogCi0jOiB3dC1zdGF0dXMuYzoxNjcgd3Qtc3RhdHVzLmM6MTk0CisjOiB3dC1zdGF0dXMuYzoxNjggd3Qtc3RhdHVzLmM6MTk1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCByZXNldCAlcyA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCByZXNldCAlcyA8ZmlsPi4uLlwiIGbDtnIgYXR0IHRhIGJvcnQgZnLDpW4ga8O2KSIKIAotIzogd3Qtc3RhdHVzLmM6MTY5IHd0LXN0YXR1cy5jOjE5NgorIzogd3Qtc3RhdHVzLmM6MTcwIHd0LXN0YXR1cy5jOjE5NwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBybSAtLWNhY2hlZCA8ZmlsPi4uLlwiIGbDtnIgYXR0IHRhIGJvcnQgZnLDpW4ga8O2KSIKIAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYWRkIDxmaWw+Li4uXCIgZsO2ciBhdHQgYW5nZSBsw7ZzbmluZykiCiAKLSM6IHd0LXN0YXR1cy5jOjE3NSB3dC1zdGF0dXMuYzoxNzkKKyM6IHd0LXN0YXR1cy5jOjE3NiB3dC1zdGF0dXMuYzoxODAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIGFzIGFwcHJvcHJpYXRlIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYWRkL3JtIDxmaWw+Li4uXCIgc29tIGzDpG1wbGlndCBmw7ZyIGF0dCBhbmdlIGzDtnNuaW5nKSIKIAotIzogd3Qtc3RhdHVzLmM6MTc3CisjOiB3dC1zdGF0dXMuYzoxNzgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcm0gPGZpbGU+Li4uXCIgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBybSA8ZmlsPi4uLlwiIGbDtnIgYXR0IGFuZ2UgbMO2c25pbmcpIgogCi0jOiB3dC1zdGF0dXMuYzoxODgKKyM6IHd0LXN0YXR1cy5jOjE4OQogbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiw4RuZHJpbmdhciBhdHQgY2hlY2thIGluOiIKIAotIzogd3Qtc3RhdHVzLmM6MjA2CisjOiB3dC1zdGF0dXMuYzoyMDcKIG1zZ2lkICJDaGFuZ2VzIG5vdCBzdGFnZWQgZm9yIGNvbW1pdDoiCiBtc2dzdHIgIsOEbmRyaW5nYXIgZWogaSBpbmNoZWNrbmluZ3Nrw7ZuOiIKIAotIzogd3Qtc3RhdHVzLmM6MjEwCisjOiB3dC1zdGF0dXMuYzoyMTEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgYWRkIDxmaWw+Li4uXCIgZsO2ciBhdHQgdXBwZGF0ZXJhIHZhZCBzb20gc2thbGwgY2hlY2thcyBpbikiCiAKLSM6IHd0LXN0YXR1cy5jOjIxMgorIzogd3Qtc3RhdHVzLmM6MjEzCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZC9ybSA8ZmlsZT4uLi5cIiB0byB1cGRhdGUgd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKICIgIChhbnbDpG5kIFwiZ2l0IGFkZC9ybSA8ZmlsPi4uLlwiIGbDtnIgYXR0IHVwcGRhdGVyYSB2YWQgc29tIHNrYWxsIGNoZWNrYXMgaW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTMKKyM6IHd0LXN0YXR1cy5jOjIxNAogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbD4uLi5cIiBmw7ZyIGF0dCBmw7Zya2FzdGEgw6RuZHJpbmdhciBpICIKICJhcmJldHNrYXRhbG9nZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTUKKyM6IHd0LXN0YXR1cy5jOjIxNgogbXNnaWQgIiAgKGNvbW1pdCBvciBkaXNjYXJkIHRoZSB1bnRyYWNrZWQgb3IgbW9kaWZpZWQgY29udGVudCBpbiBzdWJtb2R1bGVzKSIKIG1zZ3N0ciAiIgogIiAgKGNoZWNrYSBpbiBlbGxlciBmw7Zya2FzdGEgb3Nww6VyYXQgZWxsZXIgw6RuZHJhdCBpbm5laMOlbGwgaSB1bmRlcm1vZHVsZXIpIgogCi0jOiB3dC1zdGF0dXMuYzoyMjcKKyM6IHd0LXN0YXR1cy5jOjIyOAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgJXMgPGZpbGU+Li4uXCIgdG8gaW5jbHVkZSBpbiB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgJXMgPGZpbD4uLi5cIiBmw7ZyIGF0dCB0YSBtZWQgaSBkZXQgc29tIHNrYWxsIGNoZWNrYXMgaW4pIgogCi0jOiB3dC1zdGF0dXMuYzoyNDQKKyM6IHd0LXN0YXR1cy5jOjI0NQogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAicHJvZ3JhbWZlbCIKIAotIzogd3Qtc3RhdHVzLmM6MjQ5CisjOiB3dC1zdGF0dXMuYzoyNTAKIG1zZ2lkICJib3RoIGRlbGV0ZWQ6IgogbXNnc3RyICJib3J0dGFnZXQgYXYgYsOkZ2dlOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUwCisjOiB3dC1zdGF0dXMuYzoyNTEKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgInRpbGxhZ3QgYXYgb3NzOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTIKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICJib3J0dGFnZXQgYXYgZGVtOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTMKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAidGlsbGFndCBhdiBkZW06IgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1NAogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJib3J0dGFnZXQgYXYgb3NzOiIKIAotIzogd3Qtc3RhdHVzLmM6MjU0CisjOiB3dC1zdGF0dXMuYzoyNTUKIG1zZ2lkICJib3RoIGFkZGVkOiIKIG1zZ3N0ciAidGlsbGFndCBhdiBiw6RnZ2U6IgogCi0jOiB3dC1zdGF0dXMuYzoyNTUKKyM6IHd0LXN0YXR1cy5jOjI1NgogbXNnaWQgImJvdGggbW9kaWZpZWQ6IgogbXNnc3RyICLDpG5kcmF0IGF2IGLDpGdnZToiCiAKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6Mjg2CiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAibnlhIGluY2hlY2tuaW5nYXIsICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg3CisjOiB3dC1zdGF0dXMuYzoyODgKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIsOkbmRyYXQgaW5uZWjDpWxsLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjI4OQorIzogd3Qtc3RhdHVzLmM6MjkwCiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAib3Nww6VyYXQgaW5uZWjDpWxsLCAiCiAKLSM6IHd0LXN0YXR1cy5jOjMwNgorIzogd3Qtc3RhdHVzLmM6MzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBmaWxlOiAgICVzIgogbXNnc3RyICJueSBmaWw6ICAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzA5CisjOiB3dC1zdGF0dXMuYzozMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29waWVkOiAgICAgJXMgLT4gJXMiCiBtc2dzdHIgImtvcGllcmFkOiAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMTIKKyM6IHd0LXN0YXR1cy5jOjMxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJkZWxldGVkOiAgICAlcyIKIG1zZ3N0ciAiYm9ydHRhZ2VuOiAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxNQorIzogd3Qtc3RhdHVzLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLDpG5kcmFkOiAgICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxOAorIzogd3Qtc3RhdHVzLmM6MzE5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbmFtZWQ6ICAgICVzIC0+ICVzIgogbXNnc3RyICJuYW1uYnl0ZTogICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzIxCisjOiB3dC1zdGF0dXMuYzozMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidHlwZWNoYW5nZTogJXMiCiBtc2dzdHIgInR5cGJ5dGU6ICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjQKKyM6IHd0LXN0YXR1cy5jOjMyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duOiAgICAlcyIKIG1zZ3N0ciAib2vDpG5kOiAgICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjcKKyM6IHd0LXN0YXR1cy5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAib3NhbW1hbnNsLjogJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMzMAorIzogd3Qtc3RhdHVzLmM6MzMxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJ1ZzogdW5oYW5kbGVkIGRpZmYgc3RhdHVzICVjIgogbXNnc3RyICJwcm9ncmFtZmVsOiBkaWZmLXN0YXR1cyAlYyBlaiBoYW50ZXJhZCIKIAotIzogd3Qtc3RhdHVzLmM6ODA1CisjOiB3dC1zdGF0dXMuYzo4MDMKIG1zZ2lkICJZb3UgaGF2ZSB1bm1lcmdlZCBwYXRocy4iCiBtc2dzdHIgIkR1IGhhciBlaiBzYW1tYW5zbGFnbmEgc8O2a3bDpGdhci4iCiAKLSM6IHd0LXN0YXR1cy5jOjgwOCB3dC1zdGF0dXMuYzo5NjAKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAgKHLDpHR0YSBrb25mbGlrdGVyIG9jaCBrw7ZyIFwiZ2l0IGNvbW1pdFwiKSIKIAotIzogd3Qtc3RhdHVzLmM6ODExCisjOiB3dC1zdGF0dXMuYzo4MDkKIG1zZ2lkICJBbGwgY29uZmxpY3RzIGZpeGVkIGJ1dCB5b3UgYXJlIHN0aWxsIG1lcmdpbmcuIgogbXNnc3RyICJBbGxhIGtvbmZsaWt0ZXIgaGFyIHLDpHR0YXRzIG1lbiBkdSDDpHIgZm9ydGZhcmFuZGUgaSBlbiBzYW1tYW5zbGFnbmluZy4iCiAKLSM6IHd0LXN0YXR1cy5jOjgxNAorIzogd3Qtc3RhdHVzLmM6ODEyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdFwiIHRvIGNvbmNsdWRlIG1lcmdlKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBjb21taXRcIiBmw7ZyIGF0dCBzbHV0ZsO2cmEgc2FtbWFuc2xhZ25pbmdlbikiCiAKLSM6IHd0LXN0YXR1cy5jOjgyNAorIzogd3Qtc3RhdHVzLmM6ODIyCiBtc2dpZCAiWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uIgogbXNnc3RyICJEdSDDpHIgaSBtaXR0ZW4gYXYgZW4ga8O2cm5pbmcgYXYgXCJnaXQgYW1cIi4iCiAKLSM6IHd0LXN0YXR1cy5jOjgyNworIzogd3Qtc3RhdHVzLmM6ODI1CiBtc2dpZCAiVGhlIGN1cnJlbnQgcGF0Y2ggaXMgZW1wdHkuIgogbXNnc3RyICJBa3R1ZWxsIHBhdGNoIMOkciB0b20uIgogCi0jOiB3dC1zdGF0dXMuYzo4MzEKLW1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgotbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorIzogd3Qtc3RhdHVzLmM6ODI5Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6ODMzCisjOiB3dC1zdGF0dXMuYzo4MzEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIKIG1zZ3N0ciAiICAoYW52w6RuZCBcImdpdCBhbSAtLXNraXBcIiBmw7ZyIGF0dCBob3BwYSDDtnZlciBwYXRjaGVuKSIKIAotIzogd3Qtc3RhdHVzLmM6ODM1CisjOiB3dC1zdGF0dXMuYzo4MzMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgYW0gLS1hYm9ydFwiIGbDtnIgYXR0IMOldGVyc3TDpGxsYSB1cnNwcnVuZ3NncmVuZW4pIgogCi0jOiB3dC1zdGF0dXMuYzo4OTUgd3Qtc3RhdHVzLmM6OTEyCisjOiB3dC1zdGF0dXMuYzo4OTMgd3Qtc3RhdHVzLmM6OTEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICJEdSBow6VsbGVyIHDDpSBhdHQgb21iYXNlcmEgZ3JlbmVuIFwiJXNcIiBvdmFucMOlIFwiJXNcIi4iCiAKLSM6IHd0LXN0YXR1cy5jOjkwMCB3dC1zdGF0dXMuYzo5MTcKKyM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBvbWJhc2VyaW5nLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAzCisjOiB3dC1zdGF0dXMuYzo5MDEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkwNQorIzogd3Qtc3RhdHVzLmM6OTAzCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIChhbnbDpG5kIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBmw7ZyIGF0dCBob3BwYSDDtnZlciBwYXRjaGVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTA3CisjOiB3dC1zdGF0dXMuYzo5MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiB0byBjaGVjayBvdXQgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcmViYXNlIC0tYWJvcnRcIiBmw7ZyIGF0dCBjaGVja2EgdXQgdXJzcHJ1bmdzZ3JlbmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6OTIwCisjOiB3dC1zdGF0dXMuYzo5MTgKIG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKGFsbGEga29uZmxpa3RlciByw6R0dGFkZToga8O2ciBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTI0CisjOiB3dC1zdGF0dXMuYzo5MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKQEAgLTEzMTEsNDIgKzE0NzIsNTIgQEAKICJEdSBow6VsbGVyIHDDpSBhdHQgZGVsYSB1cHAgZW4gaW5jaGVja25pbmcgbWVkYW4gZHUgb21iYXNlcmFyIGdyZW5lbiBcIiVzXCIgIgogIm92YW5ww6UgXCIlc1wiLiIKIAotIzogd3Qtc3RhdHVzLmM6OTI5CisjOiB3dC1zdGF0dXMuYzo5MjcKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiRHUgaMOlbGxlciBww6UgYXR0IGRlbGEgdXBwIGVuIGluY2hlY2tuaW5nIGkgZW4gb21iYXNlcmluZy4iCiAKLSM6IHd0LXN0YXR1cy5jOjkzMgorIzogd3Qtc3RhdHVzLmM6OTMwCiBtc2dpZCAiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiAgKFPDpSBmb3J0IGRpbiBhcmJldHNrYXRhbG9nIMOkciByZW4sIGvDtnIgXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiAKLSM6IHd0LXN0YXR1cy5jOjkzNgorIzogd3Qtc3RhdHVzLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICclcycgb24gJyVzJy4iCiBtc2dzdHIgIiIKICJEdSBow6VsbGVyIHDDpSBhdHQgcmVkaWdlcmEgZW4gaW5jaGVja25pbmcgbWVkYW4gZHUgb21iYXNlcmFyIGdyZW5lbiBcIiVzXCIgIgogIm92YW5ww6UgXCIlc1wiLiIKIAotIzogd3Qtc3RhdHVzLmM6OTQxCisjOiB3dC1zdGF0dXMuYzo5MzkKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIGF0dCByZWRpZ2VyYSBlbiBpbmNoZWNrbmluZyB1bmRlciBlbiBvbWJhc2VyaW5nLiIKIAotIzogd3Qtc3RhdHVzLmM6OTQ0CisjOiB3dC1zdGF0dXMuYzo5NDIKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgogbXNnc3RyICIiCiAiICAoYW52w6RuZCBcImdpdCBjb21taXQgLS1hbWVuZFwiIGbDtnIgYXR0IGzDpGdnYSB0aWxsIHDDpSBha3R1ZWxsIGluY2hlY2tuaW5nKSIKIAotIzogd3Qtc3RhdHVzLmM6OTQ2CisjOiB3dC1zdGF0dXMuYzo5NDQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiAgKGFudsOkbmQgXCJnaXQgcmViYXNlIC0tY29udGludWVcIiBuw6RyIGR1IMOkciBuw7ZqZCBtZWQgZGluYSDDpG5kcmluZ2FyKSIKIAotIzogd3Qtc3RhdHVzLmM6OTU2CisjOiB3dC1zdGF0dXMuYzo5NTQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCiBtc2dzdHIgIkR1IGjDpWxsZXIgcMOlIG1lZCBlbiBcImNoZXJyeS1waWNrXCIuIgogCisjOiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAocsOkdHRhIGtvbmZsaWt0ZXIgb2NoIGvDtnIgc2VkYW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6OTYxCittc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCittc2dzdHIgIiAgKGFsbGEga29uZmxpa3RlciByw6R0dGFkZToga8O2ciBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIgorCiAjOiB3dC1zdGF0dXMuYzo5NjMKLW1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgotbXNnc3RyICIgIChhbGxhIGtvbmZsaWt0ZXIgaGFyIHLDpHR0YXRzOiBrw7ZyIFwiZ2l0IGNvbW1pdFwiKSIKK21zZ2lkICIgICh1c2UgXCJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydFwiIHRvIGNhbmNlbCB0aGUgY2hlcnJ5LXBpY2sgb3BlcmF0aW9uKSIKK21zZ3N0ciAiIgorIiAgKGFudsOkbmQgXCJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydFwiIGbDtnIgYXR0IGF2YnJ5dGEgXCJjaGVycnktcGlja1wiLSIKKyJvcGVyYXRpb25lbikiCiAKICM6IHd0LXN0YXR1cy5jOjk3MgogIywgYy1mb3JtYXQKQEAgLTEzNzksNzQgKzE1NTAsNzYgQEAKIG1zZ3N0ciAiIgogIiAgKGFudsOkbmQgXCJnaXQgYmlzZWN0IHJlc2V0XCIgZsO2ciBhdHQga29tbWEgdGlsbGJha2EgdGlsbCB1cnNwcnVuZ3NncmVuZW4pIgogCi0jOiB3dC1zdGF0dXMuYzoxMTc1CisjOiB3dC1zdGF0dXMuYzoxMTczCiBtc2dpZCAiT24gYnJhbmNoICIKIG1zZ3N0ciAiUMOlIGdyZW5lbiAiCiAKLSM6IHd0LXN0YXR1cy5jOjExODYKKyM6IHd0LXN0YXR1cy5jOjExODAKK21zZ2lkICJyZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gIgorbXNnc3RyICJvbWJhc2VyaW5nIHDDpWfDpXI7IG92YW5ww6UiCisKKyM6IHd0LXN0YXR1cy5jOjExODcKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGF0ICIKIG1zZ3N0ciAiSEVBRCBmcsOlbmtvcHBsYWQgdmlkICIKIAotIzogd3Qtc3RhdHVzLmM6MTE4OAorIzogd3Qtc3RhdHVzLmM6MTE4OQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCiBtc2dzdHIgIkhFQUQgZnLDpW5rb3BwbGFkIGZyw6VuICIKIAotIzogd3Qtc3RhdHVzLmM6MTE5MQorIzogd3Qtc3RhdHVzLmM6MTE5MgogbXNnaWQgIk5vdCBjdXJyZW50bHkgb24gYW55IGJyYW5jaC4iCiBtc2dzdHIgIkludGUgcMOlIG7DpWdvbiBncmVuIGbDtnIgbsOkcnZhcmFuZGUuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA4CisjOiB3dC1zdGF0dXMuYzoxMjA5CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIkbDtnJzdGEgaW5jaGVja25pbmciCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjMKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIk9zcMOlcmFkZSBmaWxlciIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNAorIzogd3Qtc3RhdHVzLmM6MTIyNQogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIklnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjgKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCi1tc2dzdHIgIkRldCB0b2cgJS4yZiBzZWt1bmRlciBhdHQgcsOka25hIG9zcMOlcmFkZSBmaWxlci4gXCJzdGF0dXMgLXVub1wiIgotCi0jOiB3dC1zdGF0dXMuYzoxMjMyCi1tc2dpZCAibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZCIKLW1zZ3N0ciAia2Fuc2tlIGfDtnIgZGV0IHNuYWJiYXJlLCBtZW4gZHUgbcOlc3RlIHZhcmEgZsO2cnNpa3RpZyBzw6UgYXR0IGR1IgotCi0jOiB3dC1zdGF0dXMuYzoxMjM1Ci1tc2dpZCAibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKLW1zZ3N0ciAiaW50ZSBnbMO2bW1lciBsw6RnZ2EgdGlsbCBmaWxlciBzasOkbHYgKHNlIFwiZ2l0IGhlbHAgc3RhdHVzXCIpIgorbXNnaWQgIiIKKyJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAnc3RhdHVzIC11bm8nXG4iCisibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZFxuIgorIm5ldyBmaWxlcyB5b3Vyc2VsZiAoc2VlICdnaXQgaGVscCBzdGF0dXMnKS4iCittc2dzdHIgIiIKKyJEZXQgdG9nICUuMmYgc2VrdW5kZXIgYXR0IHLDpGtuYSB1cHAgb3Nww6VyYWRlIGZpbGVyLiBcInN0YXR1cyAtdW5vXCJcbiIKKyJrYW4gZ8OlIHNuYWJiYXJlLCBtZW4gZHUgbcOlc3RlIHZhcmEgZsO2cnNpa3RpZyBzw6UgZHUgaW50ZSBnbMO2bW1lclxuIgorImzDpGdnYSB0aWxsIG55YSBmaWxlciBzasOkbHYgKHNlIFwiZ2l0IGhlbHAgc3RhdHVzXCIpLiIKIAogIyAlcyDDpHIgbsOkc3RhIHN0csOkbmcgZWxsZXIgdG9tLgotIzogd3Qtc3RhdHVzLmM6MTIzOAorIzogd3Qtc3RhdHVzLmM6MTIzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJPc3DDpXJhZGUgZmlsZXIgdmlzYXMgZWolcyIKIAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIiAoYW52w6RuZCBmbGFnZ2FuIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0NgorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIkluZ2Egw6RuZHJpbmdhciIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogImluZ2Egw6RuZHJpbmdhciBhdHQgY2hlY2thIGluIChhbnbDpG5kIFwiZ2l0IGFkZFwiIG9jaC9lbGxlciBcImdpdCBjb21taXQgLWEiCiAiXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAiaW5nYSDDpG5kcmluZ2FyIGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI1NworIzogd3Qtc3RhdHVzLmM6MTI1NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90aGluZyBhZGRlZCB0byBjb21taXQgYnV0IHVudHJhY2tlZCBmaWxlcyBwcmVzZW50ICh1c2UgXCJnaXQgYWRkXCIgdG8gIgpAQCAtMTQ1NSw1MiArMTYyOCw1MiBAQAogImluZ2V0IGvDtmF0IGbDtnIgaW5jaGVja25pbmcsIG1lbiBvc3DDpXJhZGUgZmlsZXIgZmlubnMgKHNww6VyYSBtZWQgXCJnaXQgYWRkIgogIlwiKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwCisjOiB3dC1zdGF0dXMuYzoxMjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICJpbmdldCBrw7ZhdCBmw7ZyIGluY2hlY2tuaW5nLCBtZW4gb3Nww6VyYWRlIGZpbGVyIGZpbm5zXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjMKKyM6IHd0LXN0YXR1cy5jOjEyNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXQgKGNyZWF0ZS9jb3B5IGZpbGVzIGFuZCB1c2UgXCJnaXQgYWRkXCIgdG8gdHJhY2spXG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW4gKHNrYXBhL2tvcGllcmEgZmlsZXIgb2NoIHNww6VyYSBtZWQgXCJnaXQgYWRkXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNjYgd3Qtc3RhdHVzLmM6MTI3MQorIzogd3Qtc3RhdHVzLmM6MTI2MyB3dC1zdGF0dXMuYzoxMjY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0XG4iCiBtc2dzdHIgImluZ2V0IGF0dCBjaGVja2EgaW5cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2OQorIzogd3Qtc3RhdHVzLmM6MTI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAodXNlIC11IHRvIHNob3cgdW50cmFja2VkIGZpbGVzKVxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluIChhbnbDpG5kIC11IGbDtnIgYXR0IHZpc2Egb3Nww6VyYWRlIGZpbGVyKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjczCisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICJpbmdldCBhdHQgY2hlY2thIGluLCBhcmJldHNrYXRhbG9nZW4gcmVuXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzODEKKyM6IHd0LXN0YXR1cy5jOjEzNzgKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICJIRUFEIChpbmdlbiBncmVuKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NworIzogd3Qtc3RhdHVzLmM6MTM4NAogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiRsO2cnN0YSBpbmNoZWNrbmluZyBww6UgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDAyCisjOiB3dC1zdGF0dXMuYzoxMzk5CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAiZWZ0ZXIgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA1IHd0LXN0YXR1cy5jOjE0MDgKKyM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAiZsO2cmUgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDEwCisjOiB3dC1zdGF0dXMuYzoxNDA3CiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIsIGVmdGVyICIKIAotIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNDIKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIHRhIGJvcnQgbMOkbmtlbiBcIiVzXCIiCkBAIC0xNTA5LDEyNSArMTY4Miw2IEBACiBtc2dpZCAiZ2l0IGFkZCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgYWRkIFtmbGFnZ29yXSBbLS1dIDxzw7ZrdsOkZz4uLi4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NjMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5leHBlY3RlZCBkaWZmIHN0YXR1cyAlYyIKLW1zZ3N0ciAiZGlmZi1zdGF0dXMgJWMgZsO2cnbDpG50YWRlcyBpbnRlIgotCi0jOiBidWlsdGluL2FkZC5jOjY4IGJ1aWx0aW4vY29tbWl0LmM6MjMzCi1tc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgotbXNnc3RyICJtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGZpbGVyIgotCi0jOiBidWlsdGluL2FkZC5jOjc4Ci0jLCBjLWZvcm1hdAotbXNnaWQgInJlbW92ZSAnJXMnXG4iCi1tc2dzdHIgInRhIGJvcnQgXCIlc1wiXG4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MTQ4Ci1tc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZWZyZXNoaW5nIHRoZSBpbmRleDoiCi1tc2dzdHIgIk9zcMOlcmFkZSDDpG5kcmluZ2FyIGVmdGVyIGF0dCBoYSB1cHBkYXRlcmF0IGluZGV4ZXQ6IgotCi0jOiBidWlsdGluL2FkZC5jOjE1MSBidWlsdGluL2FkZC5jOjQ2MCBidWlsdGluL3JtLmM6Mjc1Ci0jLCBjLWZvcm1hdAotbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCi1tc2dzdHIgInPDtmt2w6Rnc2FuZ2l2ZWxzZW4gXCIlc1wiIG1vdHN2YXJhZGUgaW50ZSBuw6VncmEgZmlsZXIiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjM0Ci1tc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgotbXNnc3RyICJLdW5kZSBpbnRlIGzDpHNhIGluZGV4ZXQiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjQ0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgotbXNnc3RyICJLdW5kZSBpbnRlIMO2cHBuYSBcIiVzXCIgZsO2ciBza3Jpdm5pbmciCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjQ4Ci1tc2dpZCAiQ291bGQgbm90IHdyaXRlIHBhdGNoIgotbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSBwYXRjaCIKLQotIzogYnVpbHRpbi9hZGQuYzoyNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKLW1zZ3N0ciAiS3VuZGUgaW50ZSB0YSBzdGF0dXMgcMOlIFwiJXNcIiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNTUKLW1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCi1tc2dzdHIgIlRvbSBwYXRjaC4gQXZicnl0ZXIuIgotCi0jOiBidWlsdGluL2FkZC5jOjI2MQotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKLW1zZ3N0ciAiS3VuZGUgaW50ZSB0aWxsw6RtcGEgXCIlc1wiIgotCi0jOiBidWlsdGluL2FkZC5jOjI3MQotbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKLW1zZ3N0ciAiRsO2bGphbmRlIHPDtmt2w6RnYXIgaWdub3JlcmFzIGF2IGVuIGF2IGRpbmEgLmdpdGlnbm9yZS1maWxlcjpcbiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNzcgYnVpbHRpbi9jbGVhbi5jOjE2MSBidWlsdGluL2ZldGNoLmM6NzggYnVpbHRpbi9tdi5jOjYzCi0jOiBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc2IGJ1aWx0aW4vcHVzaC5jOjQyNSBidWlsdGluL3JlbW90ZS5jOjEyNTMKLSM6IGJ1aWx0aW4vcm0uYzoyMDYKLW1zZ2lkICJkcnkgcnVuIgotbXNnc3RyICJ0ZXN0a8O2cm5pbmciCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjc4IGJ1aWx0aW4vYXBwbHkuYzo0NDA5IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1MiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NSBidWlsdGluL2ZzY2suYzo2MTMKLSM6IGJ1aWx0aW4vbG9nLmM6MTUxNCBidWlsdGluL212LmM6NjIgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKLW1zZ2lkICJiZSB2ZXJib3NlIgotbXNnc3RyICJ2YXIgcHJhdHNhbSIKLQotIzogYnVpbHRpbi9hZGQuYzoyODAKLW1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgotbXNnc3RyICJwbG9ja2EgaW50ZXJha3RpdnQiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgxIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYwIGJ1aWx0aW4vcmVzZXQuYzoyNTgKLW1zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKLW1zZ3N0ciAidsOkbGogc3R5Y2tlbiBpbnRlcmFrdGl2dCIKLQotIzogYnVpbHRpbi9hZGQuYzoyODIKLW1zZ2lkICJlZGl0IGN1cnJlbnQgZGlmZiBhbmQgYXBwbHkiCi1tc2dzdHIgInJlZGlnZXJhIGFrdHVlbGwgZGlmZiBvY2ggYXBwbGljZXJhIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MwotbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKLW1zZ3N0ciAidGlsbMOldCBsw6RnZ2EgdGlsbCBhbm5hcnMgaWdub3JlcmFkZSBmaWxlciIKLQotIzogYnVpbHRpbi9hZGQuYzoyODQKLW1zZ2lkICJ1cGRhdGUgdHJhY2tlZCBmaWxlcyIKLW1zZ3N0ciAidXBwZGF0ZXJhIHNww6VyYWRlIGZpbGVyIgotCi0jOiBidWlsdGluL2FkZC5jOjI4NQotbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKLW1zZ3N0ciAicmVnaXN0cmVyYSBlbmRhc3QgYXR0IHPDtmt2w6RnZW4ga29tbWVyIGzDpGdnYXMgdGlsbCBzZW5hcmUiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg2Ci1tc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgotbXNnc3RyICJsw6RnZyB0aWxsIMOkbmRyaW5nYXIgZnLDpW4gYWxsYSBzcMOlcmFkZSBvY2ggb3Nww6VyYWRlIGZpbGVyIgotCi0jOiBidWlsdGluL2FkZC5jOjI4NwotbXNnaWQgImRvbid0IGFkZCwgb25seSByZWZyZXNoIHRoZSBpbmRleCIKLW1zZ3N0ciAibMOkZ2cgaW50ZSB0aWxsLCB1cHBkYXRlcmEgZW5kYXN0IGluZGV4ZXQiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg4Ci1tc2dpZCAianVzdCBza2lwIGZpbGVzIHdoaWNoIGNhbm5vdCBiZSBhZGRlZCBiZWNhdXNlIG9mIGVycm9ycyIKLW1zZ3N0ciAiaG9wcGEgYmFyYSDDtnZlciBmaWxlciBzb20gaW50ZSBrYW4gbMOkZ2dhcyB0aWxsIHDDpSBncnVuZCBhdiBmZWwiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg5Ci1tc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgotbXNnc3RyICJzZSBvbSAtIMOkdmVuIHNha25hZGUgLSBmaWxlciBpZ25vcmVyYXMgaSB0ZXN0a8O2cm5pbmciCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzExCi0jLCBjLWZvcm1hdAotbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCi1tc2dzdHIgIkFudsOkbmQgLWYgb20gZHUgdmVya2xpZ2VuIHZpbGwgbMOkZ2dhIHRpbGwgZGVtLlxuIgotCi0jOiBidWlsdGluL2FkZC5jOjMxMgotbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgotbXNnc3RyICJpbmdhIGZpbGVyIGhhciBsYWd0cyB0aWxsIgotCi0jOiBidWlsdGluL2FkZC5jOjMxOAotbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCi1tc2dzdHIgIm1pc3NseWNrYWRlcyBsw6RnZ2EgdGlsbCBmaWxlciIKLQogIy4KICMuICogVG8gYmUgY29uc2lzdGVudCB3aXRoICJnaXQgYWRkIC1wIiBhbmQgbW9zdCBHaXQKICMuICogY29tbWFuZHMsIHdlIHNob3VsZCBkZWZhdWx0IHRvIGJlaW5nIHRyZWUtd2lkZSwgYnV0CkBAIC0xNjM4LDcgKzE2OTIsNyBAQAogIy4gKiB0byB0cmVlLXdpZGUsIGtlZXBpbmcgdGhlIHdhcm5pbmcgZm9yIGEgd2hpbGUsIGFuZAogIy4gKiBldmVudHVhbGx5IHdlIGNhbiBkcm9wIHRoZSB3YXJuaW5nLgogIy4KLSM6IGJ1aWx0aW4vYWRkLmM6MzM1CisjOiBidWlsdGluL2FkZC5jOjU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgYmVoYXZpb3Igb2YgJ2dpdCBhZGQgJXMgKG9yICVzKScgd2l0aCBubyBwYXRoIGFyZ3VtZW50IGZyb20gYVxuIgpAQCAtMTY1NSw3ICsxNzA5LDcgQEAKICIgIChvciBnaXQgYWRkICVzIC4pXG4iCiAiXG4iCiAiV2l0aCB0aGUgY3VycmVudCBHaXQgdmVyc2lvbiwgdGhlIGNvbW1hbmQgaXMgcmVzdHJpY3RlZCB0byB0aGUgY3VycmVudCAiCi0iZGlyZWN0b3J5LiIKKyJkaXJlY3RvcnkuXG4iCiBtc2dzdHIgIiIKICJCZXRlZW5kZXQgZsO2ciBcImdpdCBhZGQgJXMgKGVsbGVyICVzKVwiIHV0YW4gc8O2a3bDpGdzYXJndW1lbnQgZnLDpW4gZW5cbiIKICJ1bmRlcmthdGFsb2cgaSBldHQgdHLDpGQga29tbWVyIMOkbmRyYXMgaSBHaXQgMi4wIG9jaCBiw7ZyIGludGUgbMOkbmdyZSAiCkBAIC0xNjcwLDMyICsxNzI0LDE4NCBAQAogIiAgZ2l0IGFkZCAlcyAuXG4iCiAiICAoZWxsZXIgZ2l0IGFkZCAlcyAuKVxuIgogIlxuIgotIkkgbnV2YXJhbmRlIHZlcnNpb24gYXYgR2l0IGJlZ3LDpG5zYXMga29tbWFuZG90IHRpbGwgYWt0dWVsbCBrYXRhbG9nLiIKKyJJIG51dmFyYW5kZSB2ZXJzaW9uIGF2IEdpdCBiZWdyw6Ruc2FzIGtvbW1hbmRvdCB0aWxsIGFrdHVlbGwga2F0YWxvZy5cbiIKIAotIzogYnVpbHRpbi9hZGQuYzozODEKKyM6IGJ1aWx0aW4vYWRkLmM6MTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJZb3UgcmFuICdnaXQgYWRkJyB3aXRoIG5laXRoZXIgJy1BICgtLWFsbCknIG9yICctLWlnbm9yZS1yZW1vdmFsJyxcbiIKKyJ3aG9zZSBiZWhhdmlvdXIgd2lsbCBjaGFuZ2UgaW4gR2l0IDIuMCB3aXRoIHJlc3BlY3QgdG8gcGF0aHMgeW91IHJlbW92ZWQuXG4iCisiUGF0aHMgbGlrZSAnJXMnIHRoYXQgYXJlXG4iCisicmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlIGFyZSBpZ25vcmVkIHdpdGggdGhpcyB2ZXJzaW9uIG9mIEdpdC5cbiIKKyJcbiIKKyIqICdnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPHBhdGhzcGVjPicsIHdoaWNoIGlzIHRoZSBjdXJyZW50IGRlZmF1bHQsXG4iCisiICBpZ25vcmVzIHBhdGhzIHlvdSByZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWFsbCA8cGF0aHNwZWM+JyB3aWxsIGxldCB5b3UgYWxzbyByZWNvcmQgdGhlIHJlbW92YWxzLlxuIgorIlxuIgorIlJ1biAnZ2l0IHN0YXR1cycgdG8gY2hlY2sgdGhlIHBhdGhzIHlvdSByZW1vdmVkIGZyb20geW91ciB3b3JraW5nIHRyZWUuXG4iCittc2dzdHIgIiIKKyJEdSBrw7ZyZGUgXCJnaXQgYWRkXCIgdXRhbiB2YXJrZW4gXCItQSAoLS1hbGwpXCIgZWxsZXIgXCItLWlnbm9yZS1yZW1vdmFsXCIuXG4iCisiQmV0ZWVuZGV0IGtvbW1lciDDpG5kcmFzIGkgR2l0IDIuMCB2YWQgZ8OkbGxlciBzw7ZrdsOkZ2FyIGR1IHRhZ2l0IGJvcnQuXG4iCisiU8O2a3bDpGdhciBzb20gXCIlc1wiLCBzb20gaGFyXG4iCisidGFnaXRzIGJvcnQgZnLDpW4gZGluIGFyYmV0c2thdGFsb2cgaWdub3JlcmFzIGkgZGVuIGjDpHIgdmVyc2lvbmVuIGF2IEdpdC5cbiIKKyJcbiIKKyIqIFwiZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxzw7ZrdsOkZz5cIiwgc29tIMOkciBmw7ZydmFsZXQganVzdCBudSxcbiIKKyIgIGlnbm9yZXJhciBzw7ZrdsOkZ2FyIGR1IGhhciB0YWdpdCBib3J0IGZyw6VuIGFyYmV0c2thdGFsb2dlbi5cbiIKKyJcbiIKKyIqIFwiZ2l0IGFkZCAtLWFsbCA8c8O2a3bDpGc+XCIgbMOldGVyIGRpZyDDpHZlbiByZWdpc3RyZXJhIGJvcnR0YWduaW5nYXJuYS5cbiIKKyJcbiIKKyJLw7ZyIFwiZ2l0IHN0YXR1c1wiIGbDtnIgYXR0IGtvbnRyb2xsZXJhIHPDtmt2w6RnYXJuYSBkdSB0YWdpdCBib3J0IGZyw6VuXG4iCisiYXJiZXRza2F0YWxvZ2VuLlxuIgorCisjOiBidWlsdGluL2FkZC5jOjE0NAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmV4cGVjdGVkIGRpZmYgc3RhdHVzICVjIgorbXNnc3RyICJkaWZmLXN0YXR1cyAlYyBmw7ZydsOkbnRhZGVzIGludGUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjUyCittc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICJtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGZpbGVyIgorCisjOiBidWlsdGluL2FkZC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdmUgJyVzJ1xuIgorbXNnc3RyICJ0YSBib3J0IFwiJXNcIlxuIgorCisjOiBidWlsdGluL2FkZC5jOjI1MworbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgorbXNnc3RyICJPc3DDpXJhZGUgw6RuZHJpbmdhciBlZnRlciBhdHQgaGEgdXBwZGF0ZXJhdCBpbmRleGV0OiIKKworIzogYnVpbHRpbi9hZGQuYzoyNTYgYnVpbHRpbi9hZGQuYzo1NzMgYnVpbHRpbi9ybS5jOjMzNworIywgYy1mb3JtYXQKK21zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgorbXNnc3RyICJzw7ZrdsOkZ3NhbmdpdmVsc2VuIFwiJXNcIiBtb3RzdmFyYWRlIGludGUgbsOlZ3JhIGZpbGVyIgorCisjOiBidWlsdGluL2FkZC5jOjMzOQorbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKK21zZ3N0ciAiS3VuZGUgaW50ZSBsw6RzYSBpbmRleGV0IgorCisjOiBidWlsdGluL2FkZC5jOjM1MAorIywgYy1mb3JtYXQKK21zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKK21zZ3N0ciAiS3VuZGUgaW50ZSDDtnBwbmEgXCIlc1wiIGbDtnIgc2tyaXZuaW5nIgorCisjOiBidWlsdGluL2FkZC5jOjM1NAorbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKK21zZ3N0ciAiS3VuZGUgaW50ZSBza3JpdmEgcGF0Y2giCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzU5CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBzdGF0ICclcyciCittc2dzdHIgIkt1bmRlIGludGUgdGEgc3RhdHVzIHDDpSBcIiVzXCIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCittc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgorbXNnc3RyICJUb20gcGF0Y2guIEF2YnJ5dGVyLiIKKworIzogYnVpbHRpbi9hZGQuYzozNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGFwcGx5ICclcyciCittc2dzdHIgIkt1bmRlIGludGUgdGlsbMOkbXBhIFwiJXNcIiIKKworIzogYnVpbHRpbi9hZGQuYzozNzcKK21zZ2lkICJUaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCittc2dzdHIgIkbDtmxqYW5kZSBzw7ZrdsOkZ2FyIGlnbm9yZXJhcyBhdiBlbiBhdiBkaW5hIC5naXRpZ25vcmUtZmlsZXI6XG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk0IGJ1aWx0aW4vY2xlYW4uYzo4NzUgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MworIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3MyBidWlsdGluL3B1c2guYzo0NTEgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCisjOiBidWlsdGluL3JtLmM6MjY4Cittc2dpZCAiZHJ5IHJ1biIKK21zZ3N0ciAidGVzdGvDtnJuaW5nIgorCisjOiBidWlsdGluL2FkZC5jOjM5NSBidWlsdGluL2FwcGx5LmM6NDQxMCBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjAgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCisjOiBidWlsdGluL2xvZy5jOjE1NzMgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCittc2dpZCAiYmUgdmVyYm9zZSIKK21zZ3N0ciAidmFyIHByYXRzYW0iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk3Cittc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKK21zZ3N0ciAicGxvY2thIGludGVyYWt0aXZ0IgorCisjOiBidWlsdGluL2FkZC5jOjM5OCBidWlsdGluL2NoZWNrb3V0LmM6MTA3MyBidWlsdGluL3Jlc2V0LmM6MjYxCittc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCittc2dzdHIgInbDpGxqIHN0eWNrZW4gaW50ZXJha3RpdnQiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk5Cittc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgorbXNnc3RyICJyZWRpZ2VyYSBha3R1ZWxsIGRpZmYgb2NoIGFwcGxpY2VyYSIKKworIzogYnVpbHRpbi9hZGQuYzo0MDAKK21zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCittc2dzdHIgInRpbGzDpXQgbMOkZ2dhIHRpbGwgYW5uYXJzIGlnbm9yZXJhZGUgZmlsZXIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAxCittc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCittc2dzdHIgInVwcGRhdGVyYSBzcMOlcmFkZSBmaWxlciIKKworIzogYnVpbHRpbi9hZGQuYzo0MDIKK21zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCittc2dzdHIgInJlZ2lzdHJlcmEgZW5kYXN0IGF0dCBzw7ZrdsOkZ2VuIGtvbW1lciBsw6RnZ2FzIHRpbGwgc2VuYXJlIgorCisjOiBidWlsdGluL2FkZC5jOjQwMworbXNnaWQgImFkZCBjaGFuZ2VzIGZyb20gYWxsIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKK21zZ3N0ciAibMOkZ2cgdGlsbCDDpG5kcmluZ2FyIGZyw6VuIGFsbGEgc3DDpXJhZGUgb2NoIG9zcMOlcmFkZSBmaWxlciIKKworIy4gdGFrZXMgbm8gYXJndW1lbnRzCisjOiBidWlsdGluL2FkZC5jOjQwNgorbXNnaWQgImlnbm9yZSBwYXRocyByZW1vdmVkIGluIHRoZSB3b3JraW5nIHRyZWUgKHNhbWUgYXMgLS1uby1hbGwpIgorbXNnc3RyICJpZ25vcmVyYSBzw7ZrdsOkZ2FyIGJvcnR0YWduYSBpIGFyYmV0c2thdGFsb2dlbiAoc2FtbWEgc29tIC0tbm8tYWxsKSIKKworIzogYnVpbHRpbi9hZGQuYzo0MDgKK21zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCittc2dzdHIgImzDpGdnIGludGUgdGlsbCwgdXBwZGF0ZXJhIGVuZGFzdCBpbmRleGV0IgorCisjOiBidWlsdGluL2FkZC5jOjQwOQorbXNnaWQgImp1c3Qgc2tpcCBmaWxlcyB3aGljaCBjYW5ub3QgYmUgYWRkZWQgYmVjYXVzZSBvZiBlcnJvcnMiCittc2dzdHIgImhvcHBhIGJhcmEgw7Z2ZXIgZmlsZXIgc29tIGludGUga2FuIGzDpGdnYXMgdGlsbCBww6UgZ3J1bmQgYXYgZmVsIgorCisjOiBidWlsdGluL2FkZC5jOjQxMAorbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKK21zZ3N0ciAic2Ugb20gLSDDpHZlbiBzYWtuYWRlIC0gZmlsZXIgaWdub3JlcmFzIGkgdGVzdGvDtnJuaW5nIgorCisjOiBidWlsdGluL2FkZC5jOjQzMgorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgorbXNnc3RyICJBbnbDpG5kIC1mIG9tIGR1IHZlcmtsaWdlbiB2aWxsIGzDpGdnYSB0aWxsIGRlbS5cbiIKKworIzogYnVpbHRpbi9hZGQuYzo0MzMKK21zZ2lkICJubyBmaWxlcyBhZGRlZCIKK21zZ3N0ciAiaW5nYSBmaWxlciBoYXIgbGFndHMgdGlsbCIKKworIzogYnVpbHRpbi9hZGQuYzo0MzkKK21zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICJtaXNzbHlja2FkZXMgbMOkZ2dhIHRpbGwgZmlsZXIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDc4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi1BIG9jaCAtdSDDpHIgw7Ztc2VzaWRpZ3QgaW5rb21wYXRpYmxhIgogCi0jOiBidWlsdGluL2FkZC5jOjM4MworIzogYnVpbHRpbi9hZGQuYzo0OTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICJGbGFnZ2FuIC0taWdub3JlLW1pc3Npbmcga2FuIGVuZGFzdCBhbnbDpG5kYXMgdGlsbHNhbW1hbnMgbWVkIC0tZHJ5LXJ1biIKIAotIzogYnVpbHRpbi9hZGQuYzo0MTQKKyM6IGJ1aWx0aW4vYWRkLmM6NTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdGhpbmcgc3BlY2lmaWVkLCBub3RoaW5nIGFkZGVkLlxuIgogbXNnc3RyICJJbmdldCBhbmdpdmV0LCBpbmdldCB0aWxsYWd0LlxuIgogCi0jOiBidWlsdGluL2FkZC5jOjQxNQorIzogYnVpbHRpbi9hZGQuYzo1MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWF5YmUgeW91IHdhbnRlZCB0byBzYXkgJ2dpdCBhZGQgLic/XG4iCiBtc2dzdHIgIkthbnNrZSBtZW5hZGUgZHUgYXR0IHNrcml2YSBcImdpdCBhZGQgLlwiP1xuIgogCi0jOiBidWlsdGluL2FkZC5jOjQyMSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjY3IGJ1aWx0aW4vY2xlYW4uYzoyMDQKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MjkzIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6MjM1CisjOiBidWlsdGluL2FkZC5jOjUzMyBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MSBidWlsdGluL2NsZWFuLmM6OTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjMxMiBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjI5NwogbXNnaWQgImluZGV4IGZpbGUgY29ycnVwdCIKIG1zZ3N0ciAiaW5kZXhmaWxlbiB0cmFzaWciCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDgxIGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSBueSBpbmRleGZpbCIKIApAQCAtMTg3OSwyOTMgKzIwODUsMjkzIEBACiBtc2dpZCAiY2Fubm90IGNoZWNrb3V0ICVzIgogbXNnc3RyICJrYW4gaW50ZSBjaGVja2EgdXQgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTkzCisjOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkIG9mICVzIGZhaWxlZCIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIGzDpHNhICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE3MyBidWlsdGluL2FwcGx5LmM6MzM5NQorIzogYnVpbHRpbi9hcHBseS5jOjMxNzQgYnVpbHRpbi9hcHBseS5jOjMzOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAlcyBoYXMgYmVlbiByZW5hbWVkL2RlbGV0ZWQiCiBtc2dzdHIgInPDtmt2w6RnZW4gJXMgaGFyIMOkbmRyYXQgbmFtbi90YWdpdHMgYm9ydCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTQgYnVpbHRpbi9hcHBseS5jOjM0MDkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU1IGJ1aWx0aW4vYXBwbHkuYzozNDEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleCIKIG1zZ3N0ciAiJXM6IGZpbm5zIGludGUgaSBpbmRleGV0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1OCBidWlsdGluL2FwcGx5LmM6MzQwMSBidWlsdGluL2FwcGx5LmM6MzQyMworIzogYnVpbHRpbi9hcHBseS5jOjMyNTkgYnVpbHRpbi9hcHBseS5jOjM0MDIgYnVpbHRpbi9hcHBseS5jOjM0MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIgogbXNnc3RyICIlczogJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjYzIGJ1aWx0aW4vYXBwbHkuYzozNDE3CisjOiBidWlsdGluL2FwcGx5LmM6MzI2NCBidWlsdGluL2FwcGx5LmM6MzQxOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgbWF0Y2ggaW5kZXgiCiBtc2dzdHIgIiVzOiBtb3RzdmFyYXIgaW50ZSBpbmRleGV0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzM2NQorIzogYnVpbHRpbi9hcHBseS5jOjMzNjYKIG1zZ2lkICJyZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzIgogbXNnc3RyICJwYXRjaCBmw7ZyIGJvcnR0YWduaW5nIGzDpG1uYXIga3ZhciBmaWxpbm5laMOlbGwiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM0CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogd3JvbmcgdHlwZSIKIG1zZ3N0ciAiJXM6IGZlbCB0eXAiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM2CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBoYXMgdHlwZSAlbywgZXhwZWN0ZWQgJW8iCiBtc2dzdHIgIiVzIGhhciB0eXBlbiAlbywgZsO2cnbDpG50YWRlICVvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzUzNworIzogYnVpbHRpbi9hcHBseS5jOjM1MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIGluZGV4IgogbXNnc3RyICIlczogZmlubnMgcmVkYW4gaSBpbmRleGV0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICIlczogZmlubnMgcmVkYW4gaSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTYwCisjOiBidWlsdGluL2FwcGx5LmM6MzU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykiCiBtc2dzdHIgIm55dHQgbMOkZ2UgKCVvKSBmw7ZyICVzIG1vdHN2YXJhciBpbnRlIGdhbW1hbHQgbMOkZ2UgKCVvKSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKIG1zZ3N0ciAibnl0dCBsw6RnZSAoJW8pIGbDtnIgJXMgbW90c3ZhcmFyIGludGUgZ2FtbWFsdCBsw6RnZSAoJW8pIGbDtnIgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTczCisjOiBidWlsdGluL2FwcGx5LmM6MzU3NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIiVzOiBwYXRjaGVuIGthbiBpbnRlIHRpbGzDpG1wYXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjOiBidWlsdGluL2FwcGx5LmM6MzU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAiS29udHJvbGxlcmFyIHBhdGNoZW4gJXMuLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNjc5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTUgYnVpbHRpbi9yZXNldC5jOjEyNAorIzogYnVpbHRpbi9hcHBseS5jOjM2ODAgYnVpbHRpbi9jaGVja291dC5jOjIxNiBidWlsdGluL3Jlc2V0LmM6MTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1ha2VfY2FjaGVfZW50cnkgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIm1ha2VfY2FjaGVfZW50cnkgbWlzc2x5Y2thZGVzIGbDtnIgc8O2a3bDpGdlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCiBtc2dzdHIgImthbiBpbnRlIHRhIGJvcnQgJXMgZnLDpW4gaW5kZXhldCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODUxCiAjLCBjLWZvcm1hdAotbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1YnByb2plY3QgJXMiCi1tc2dzdHIgInRyYXNpZyBwYXRjaCBmw7ZyIHVuZGVycHJvamVrdGV0ICVzIgorbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1Ym1vZHVsZSAlcyIKK21zZ3N0ciAidHJhc2lnIHBhdGNoIGbDtnIgdW5kZXJtb2R1bGVuICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1NAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXQgbmV3bHkgY3JlYXRlZCBmaWxlICclcyciCiBtc2dzdHIgImthbiBpbnRlIHRhIHN0YXR1cyBww6UgbnlsaWdlbiBza2FwYWRlIGZpbGVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgYmFja2luZyBzdG9yZSBmb3IgbmV3bHkgY3JlYXRlZCBmaWxlICVzIgogbXNnc3RyICJrYW4gaW50ZSBza2FwYSBzw6RrZXJoZXRzbWlubmUgZsO2ciBueWxpZ2VuIHNrYXBhZGUgZmlsZW4gJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODYyIGJ1aWx0aW4vYXBwbHkuYzozOTcwCisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MyBidWlsdGluL2FwcGx5LmM6Mzk3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWRkIGNhY2hlIGVudHJ5IGZvciAlcyIKIG1zZ3N0ciAia2FuIGludGUgbMOkZ2dhIHRpbGwgY2FjaGVwb3N0IGbDtnIgJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODk1CisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKIG1zZ3N0ciAic3TDpG5nZXIgZmlsZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzk0NAorIzogYnVpbHRpbi9hcHBseS5jOjM5NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIGZpbGUgJyVzJyBtb2RlICVvIgogbXNnc3RyICJrYW4gaW50ZSBza3JpdmEgZmlsZW4gXCIlc1wiIGzDpGdlICVvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDAzMQorIzogYnVpbHRpbi9hcHBseS5jOjQwMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXBwbGllZCBwYXRjaCAlcyBjbGVhbmx5LiIKIG1zZ3N0ciAiVGlsbMOkbXBhZGUgcGF0Y2hlbiAlcyByZW50LiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgImludGVybnQgZmVsIgogCiAjLiBTYXkgdGhpcyBldmVuIHdpdGhvdXQgLS12ZXJib3NlCi0jOiBidWlsdGluL2FwcGx5LmM6NDA0MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0Li4uIgogbXNnaWRfcGx1cmFsICJBcHBseWluZyBwYXRjaCAlJXMgd2l0aCAlZCByZWplY3RzLi4uIgogbXNnc3RyWzBdICJUaWxsw6RtcGFkZSBwYXRjaGVuICUlcyBtZWQgJWQgcmVmdXNlcmFkLi4uIgogbXNnc3RyWzFdICJUaWxsw6RtcGFkZSBwYXRjaGVuICUlcyBtZWQgJWQgcmVmdXNlcmFkZS4uLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInRydW5jYXRpbmcgLnJlaiBmaWxlbmFtZSB0byAlLipzLnJlaiIKIG1zZ3N0ciAidHJ1bmtlcmFyIC5yZWotZmlsbmFtbmV0IHRpbGwgJS4qcy5yZWoiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDczCisjOiBidWlsdGluL2FwcGx5LmM6NDA3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJIdW5rICMlZCBhcHBsaWVkIGNsZWFubHkuIgogbXNnc3RyICJTdHlja2UgJWQgdGlsbMOkbXBhZGVzIHJlbnQuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA3NgorIzogYnVpbHRpbi9hcHBseS5jOjQwNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVqZWN0ZWQgaHVuayAjJWQuIgogbXNnc3RyICJSZWZ1c2VyYXIgc3R5Y2tlICVkLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI3CiBtc2dpZCAidW5yZWNvZ25pemVkIGlucHV0IgogbXNnc3RyICJpbmRhdGEga8Okbm5zIGludGUgaWdlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMzcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM4CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2EgaW5kZXhmaWxlbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTYgYnVpbHRpbi9hcHBseS5jOjQzNTkgYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MwogbXNnaWQgInBhdGgiCiBtc2dzdHIgInPDtmt2w6RnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM1NworIzogYnVpbHRpbi9hcHBseS5jOjQzNTgKIG1zZ2lkICJkb24ndCBhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICJ0aWxsw6RtcGEgaW50ZSDDpG5kcmluZ2FyIHNvbSBtb3RzdmFyYXIgZ2l2ZW4gc8O2a3bDpGciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYwCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MQogbXNnaWQgImFwcGx5IGNoYW5nZXMgbWF0Y2hpbmcgdGhlIGdpdmVuIHBhdGgiCiBtc2dzdHIgInRpbGzDpG1wYSDDpG5kcmluZ2FyIHNvbSBtb3RzdmFyYXIgZ2l2ZW4gc8O2a3bDpGciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYyCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MwogbXNnaWQgIm51bSIKIG1zZ3N0ciAiYW50YWwiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM2NAogbXNnaWQgInJlbW92ZSA8bnVtPiBsZWFkaW5nIHNsYXNoZXMgZnJvbSB0cmFkaXRpb25hbCBkaWZmIHBhdGhzIgogbXNnc3RyICJ0YSBib3J0IDxhbnRhbD4gaW5sZWRhbmRlIHNuZWRzdHJlY2sgZnLDpW4gdHJhZGl0aW9uZWxsYSBkaWZmLXPDtmt2w6RnYXIiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY2CisjOiBidWlsdGluL2FwcGx5LmM6NDM2NwogbXNnaWQgImlnbm9yZSBhZGRpdGlvbnMgbWFkZSBieSB0aGUgcGF0Y2giCiBtc2dzdHIgImlnbm9yZXJhIHRpbGzDpGdnIGdqb3JkYSBhdiBwYXRjaGVuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2OAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjkKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGRpZmZzdGF0IGZvciB0aGUgaW5wdXQiCiBtc2dzdHIgImlzdMOkbGxldCBmw7ZyIGF0dCB0aWxsw6RtcGEgcGF0Y2hlbiwgc2tyaXYgdXQgZGlmZnN0YXQgZsO2ciBpbmRhdGEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzcyCisjOiBidWlsdGluL2FwcGx5LmM6NDM3MwogbXNnaWQgInNob3cgbnVtYmVyIG9mIGFkZGVkIGFuZCBkZWxldGVkIGxpbmVzIGluIGRlY2ltYWwgbm90YXRpb24iCiBtc2dzdHIgInZpc2EgYW50YWwgdGlsbGFnZGEgb2NoIGJvcnR0YWduYSByYWRlciBkZWNpbWFsdCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc1CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBhIHN1bW1hcnkgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiaXN0w6RsbGV0IGbDtnIgYXR0IHRpbGzDpG1wYSBwYXRjaGVuLCBza3JpdiB1dCBlbiBzdW1tZXJpbmcgYXYgaW5kYXRhIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzcKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIgogbXNnc3RyICJpc3TDpGxsZXQgZsO2ciBhdHQgdGlsbMOkbXBhIHBhdGNoZW4sIHNlIG9tIHBhdGNoZW4ga2FuIHRpbGzDpG1wYXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4CisjOiBidWlsdGluL2FwcGx5LmM6NDM3OQogbXNnaWQgIm1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCBpbmRleCIKIG1zZ3N0ciAic2UgdGlsbCBhdHQgcGF0Y2hlbiBrYW4gdGlsbMOkbXBhcyBww6UgYWt0dWVsbHQgaW5kZXgiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgwCisjOiBidWlsdGluL2FwcGx5LmM6NDM4MQogbXNnaWQgImFwcGx5IGEgcGF0Y2ggd2l0aG91dCB0b3VjaGluZyB0aGUgd29ya2luZyB0cmVlIgogbXNnc3RyICJ0aWxsw6RtcGEgZW4gcGF0Y2ggdXRhbiBhdHQgcsO2cmEgYXJiZXRza2F0YWxvZ2VuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODMKIG1zZ2lkICJhbHNvIGFwcGx5IHRoZSBwYXRjaCAodXNlIHdpdGggLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKIG1zZ3N0ciAidGlsbMOkbXBhIG9ja3PDpSBwYXRjaGVuIChhbnbDpG5kIG1lZCAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NAorIzogYnVpbHRpbi9hcHBseS5jOjQzODUKIG1zZ2lkICJhdHRlbXB0IHRocmVlLXdheSBtZXJnZSBpZiBhIHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICJmw7Zyc8O2ayBlbiB0cmV2w6Rnc3NhbW1hbnNsYWduaW5nIG9tIHBhdGNoZW4gaW50ZSBrYW4gdGlsbMOkbXBhcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg3CiBtc2dpZCAiYnVpbGQgYSB0ZW1wb3JhcnkgaW5kZXggYmFzZWQgb24gZW1iZWRkZWQgaW5kZXggaW5mb3JtYXRpb24iCiBtc2dzdHIgImJ5Z2cgZXR0IHRlbXBvcsOkcnQgaW5kZXggYmFzZXJhdCBww6UgaW5ieWdnZCBpbmRleGluZm9ybWF0aW9uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4OCBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg5IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MgogbXNnaWQgInBhdGhzIGFyZSBzZXBhcmF0ZWQgd2l0aCBOVUwgY2hhcmFjdGVyIgogbXNnc3RyICJzw7ZrdsOkZ2FyIGF2ZGVsYXMgbWVkIE5VTC10ZWNrZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkxCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MgogbXNnaWQgImVuc3VyZSBhdCBsZWFzdCA8bj4gbGluZXMgb2YgY29udGV4dCBtYXRjaCIKIG1zZ3N0ciAic2UgdGlsbCBhdHQgw6V0bWluc3RvbmUgPG4+IHJhZGVyIHNhbW1hbmhhbmcgw6RyIGxpa2EiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MwogbXNnaWQgImFjdGlvbiIKIG1zZ3N0ciAiw6V0Z8OkcmQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCisjOiBidWlsdGluL2FwcGx5LmM6NDM5NAogbXNnaWQgImRldGVjdCBuZXcgb3IgbW9kaWZpZWQgbGluZXMgdGhhdCBoYXZlIHdoaXRlc3BhY2UgZXJyb3JzIgogbXNnc3RyICJkZXRla3RlcmEgbnlhIGVsbGVyIMOkbmRyYWRlIHJhZGVyIHNvbSBoYXIgZmVsIGkgYmxhbmt0ZWNrZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk2IGJ1aWx0aW4vYXBwbHkuYzo0Mzk5CisjOiBidWlsdGluL2FwcGx5LmM6NDM5NyBidWlsdGluL2FwcGx5LmM6NDQwMAogbXNnaWQgImlnbm9yZSBjaGFuZ2VzIGluIHdoaXRlc3BhY2Ugd2hlbiBmaW5kaW5nIGNvbnRleHQiCiBtc2dzdHIgImlnbm9yZXJhIMOkbmRyaW5nYXIgaSBibGFua3RlY2tlbiBmw7ZyIHNhbW1hbmhhbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAyCisjOiBidWlsdGluL2FwcGx5LmM6NDQwMwogbXNnaWQgImFwcGx5IHRoZSBwYXRjaCBpbiByZXZlcnNlIgogbXNnc3RyICJ0aWxsw6RtcGEgcGF0Y2hlbiBiYWtsw6RuZ2VzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDUKIG1zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKIG1zZ3N0ciAiZsO2cnbDpG50YSBpbnRlIG1pbnN0IGVuIHJhZCBzYW1tYW5oYW5nIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNgorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDcKIG1zZ2lkICJsZWF2ZSB0aGUgcmVqZWN0ZWQgaHVua3MgaW4gY29ycmVzcG9uZGluZyAqLnJlaiBmaWxlcyIKIG1zZ3N0ciAibMOkbW5hIHJlZnVzZXJhZGUgc3R5Y2tlbiBpIG1vdHN2YXJhbmRlICoucmVqLWZpbGVyIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwOAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDkKIG1zZ2lkICJhbGxvdyBvdmVybGFwcGluZyBodW5rcyIKIG1zZ3N0ciAidGlsbMOldCDDtnZlcmxhcHBhbmRlIHN0eWNrZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDExCisjOiBidWlsdGluL2FwcGx5LmM6NDQxMgogbXNnaWQgInRvbGVyYXRlIGluY29ycmVjdGx5IGRldGVjdGVkIG1pc3NpbmcgbmV3LWxpbmUgYXQgdGhlIGVuZCBvZiBmaWxlIgogbXNnc3RyICJ0b2xlcmVyYSBmZWxha3RpZ3QgZGV0ZWt0ZXJhZGUgc2FrbmFkZSBueXJhZHN0ZWNrZW4gdmlkIGZpbHNsdXQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE0CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNQogbXNnaWQgImRvIG5vdCB0cnVzdCB0aGUgbGluZSBjb3VudHMgaW4gdGhlIGh1bmsgaGVhZGVycyIKIG1zZ3N0ciAibGl0ZSBpbnRlIHDDpSBhbnRhbGV0IGxpbmplciBpIHN0eWNrZWh1dnVkZW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE2CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNwogbXNnaWQgInJvb3QiCiBtc2dzdHIgInJvdCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE4CiBtc2dpZCAicHJlcGVuZCA8cm9vdD4gdG8gYWxsIGZpbGVuYW1lcyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCA8cm90PiBpIGFsbGEgZmlsbmFtbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQwCiBtc2dpZCAiLS0zd2F5IG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICItLTN3YXkgdXRhbmbDtnIgYXJraXYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ3CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0OAogbXNnaWQgIi0taW5kZXggb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0taW5kZXggdXRhbmbDtnIgYXJraXYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ1MQogbXNnaWQgIi0tY2FjaGVkIG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICItLWNhY2hlZCB1dGFuZsO2ciBhcmtpdiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbid0IG9wZW4gcGF0Y2ggJyVzJyIKIG1zZ3N0ciAia2FuIGludGUgw7ZwcG5hIHBhdGNoZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0clswXSAidW5kZXJ0cnlja3RlICVkIGZlbCBpIGJsYW5rc3RlZyIKIG1zZ3N0clsxXSAidW5kZXJ0cnlja3RlICVkIGZlbCBpIGJsYW5rc3RlZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODYgYnVpbHRpbi9hcHBseS5jOjQ0OTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg3IGJ1aWx0aW4vYXBwbHkuYzo0NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGxpbmUgYWRkcyB3aGl0ZXNwYWNlIGVycm9ycy4iCiBtc2dpZF9wbHVyYWwgIiVkIGxpbmVzIGFkZCB3aGl0ZXNwYWNlIGVycm9ycy4iCkBAIC0yMjE5LDEwMyArMjQyNSwxMDMgQEAKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgogbXNnc3RyICJ1cHBkYXRlcmEgQklTRUNUX0hFQUQgaXN0w6RsbGV0IGbDtnIgYXR0IGNoZWNrYSB1dCBha3R1ZWxsIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNgogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBbZmxhZ2dvcl0gW3Jldi1mbGFnZ29yXSBbcmV2XSBbLS1dIGZpbCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMwIGJ1aWx0aW4vc2hvcnRsb2cuYzoxNQorIzogYnVpbHRpbi9ibGFtZS5jOjMxCiBtc2dpZCAiW3Jldi1vcHRzXSBhcmUgZG9jdW1lbnRlZCBpbiBnaXQtcmV2LWxpc3QoMSkiCiBtc2dzdHIgIltyZXYtZmxhZ2dvcl0gZG9rdW1lbnRlcmFzIGkgZ2l0LXJldi1saXN0KDEpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICJWaXNhIGtsYW5kcmluZ3Nwb3N0ZXIgbsOkciB2aSBoaXR0YXIgZGVtLCBpbnRlcmFrdGl2dCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTEKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc3CiBtc2dpZCAiU2hvdyBibGFuayBTSEEtMSBmb3IgYm91bmRhcnkgY29tbWl0cyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSBibGFuayBTSEEtMSBmw7ZyIGdyw6Ruc2luY2hlY2tuaW5nYXIgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzUyCisjOiBidWlsdGluL2JsYW1lLmM6MjI3OAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiQmVoYW5kbGEgaW50ZSByb3RpbmNoZWNrbmluZ2FyIHNvbSBncsOkbnNlciAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiVmlzYSBzdGF0aXN0aWsgw7Z2ZXIgYXJiZXRza29zdG5hZCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgwCiBtc2dpZCAiU2hvdyBvdXRwdXQgc2NvcmUgZm9yIGJsYW1lIGVudHJpZXMiCiBtc2dzdHIgIlZpc2EgdXRkYXRhcG/DpG5nIGbDtnIga2xhbmRyaW5nc3Bvc3RlciIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgxCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBmaWxlbmFtZSAoRGVmYXVsdDogYXV0bykiCiBtc2dzdHIgIlZpc2Egb3JpZ2luYWxmaWxuYW1uIChTdGFuZGFyZDogYXV0bykiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU2CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MgogbXNnaWQgIlNob3cgb3JpZ2luYWwgbGluZW51bWJlciAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSB1cnNwcnVuZ2xpZ3QgcmFkbnVtbWVyIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NworIzogYnVpbHRpbi9ibGFtZS5jOjIyODMKIG1zZ2lkICJTaG93IGluIGEgZm9ybWF0IGRlc2lnbmVkIGZvciBtYWNoaW5lIGNvbnN1bXB0aW9uIgogbXNnc3RyICJWaXNhIGkgZXR0IGZvcm1hdCBhdnNldHQgZsO2ciBtYXNraW5rb25zdW10aW9uIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIlZpc2EgcG9yc2xpbnNmb3JtYXQgbWVkIHBlci1yYWQtaW5jaGVja25pbmdzaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU5CisjOiBidWlsdGluL2JsYW1lLmM6MjI4NQogbXNnaWQgIlVzZSB0aGUgc2FtZSBvdXRwdXQgbW9kZSBhcyBnaXQtYW5ub3RhdGUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkFudsOkbmQgc2FtbWEgdXRkYXRhbMOkZ2Ugc29tIGdpdC1hbm5vdGF0ZSAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg2CiBtc2dpZCAiU2hvdyByYXcgdGltZXN0YW1wIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJWaXNhIHLDpSB0aWRzc3TDpG1wZWwgKFN0YW5kYXJkOiBhdikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYxCisjOiBidWlsdGluL2JsYW1lLmM6MjI4NwogbXNnaWQgIlNob3cgbG9uZyBjb21taXQgU0hBMSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVmlzYSBsw6VuZyBpbmNoZWNrbmluZ3MtU0hBMSAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjIKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg4CiBtc2dpZCAiU3VwcHJlc3MgYXV0aG9yIG5hbWUgYW5kIHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiVW5kZXJ0cnljayBmw7ZyZmF0dGFybmFtbiBvY2ggdGlkc3N0w6RtcGVsIChTdGFuZGFyZDogYXYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MworIzogYnVpbHRpbi9ibGFtZS5jOjIyODkKIG1zZ2lkICJTaG93IGF1dGhvciBlbWFpbCBpbnN0ZWFkIG9mIG5hbWUgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIlZpc2EgZsO2cmZhdHRhcmVucyBlLXBvc3QgaXN0w6RsbGV0IGbDtnIgbmFtbiAoU3RhbmRhcmQ6IGF2KSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjQKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkwCiBtc2dpZCAiSWdub3JlIHdoaXRlc3BhY2UgZGlmZmVyZW5jZXMiCiBtc2dzdHIgIklnbm9yZXJhIMOkbmRyaW5nYXIgaSBibGFua3N0ZWciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MQogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAiU2zDtnNhIGV4dHJhIGN5a2xlciBtZWQgYXR0IGhpdHRhIGLDpHR0cmUgdHLDpGZmIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCiBtc2dzdHIgIkFudsOkbmQgcmV2aXNpb25lciBmcsOlbiA8ZmlsPiBpc3TDpGxsZXQgZsO2ciBhdHQgYW5yb3BhIGdpdC1yZXYtbGlzdCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiQW52w6RuZCA8ZmlsPnMgaW5uZWjDpWxsIHNvbSBzbHV0Z2lsdGlnIGJpbGQiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NCBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgInNjb3JlIgogbXNnc3RyICJwb8OkbmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NAogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIkhpdHRhIGtvcGllcmFkZSByYWRlciBpbnV0aSBvY2ggbWVsbGFuIGZpbGVyIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2OQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTUKIG1zZ2lkICJGaW5kIGxpbmUgbW92ZW1lbnRzIHdpdGhpbiBhbmQgYWNyb3NzIGZpbGVzIgogbXNnc3RyICJIaXR0YSBmbHl0dGFkZSByYWRlciBpbnV0aSBvY2ggbWVsbGFuIGZpbGVyIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCiBtc2dzdHIgIkJlaGFuZGxhIGVuZGFzdCByYWRpbnRlcnZhbGxldCBuLG0sIG1lZCBiw7ZyamFuIHDDpSAxIgogCkBAIC0yMzM1LDcgKzI1NDEsNyBAQAogbXNnaWQgImdpdCBicmFuY2ggW29wdGlvbnNdICgtbSB8IC1NKSBbPG9sZGJyYW5jaD5dIDxuZXdicmFuY2g+IgogbXNnc3RyICJnaXQgYnJhbmNoIFtmbGFnZ29yXSAoLW0gfCAtTSkgWzxnYW1tYWxfZ3Jlbj5dIDxueV9ncmVuPiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJkZWxldGluZyBicmFuY2ggJyVzJyB0aGF0IGhhcyBiZWVuIG1lcmdlZCB0b1xuIgpAQCAtMjM0NCw3ICsyNTUwLDcgQEAKICJ0YXIgYm9ydCBncmVuZW4gXCIlc1wiIHNvbSBoYXIgc2xhZ2l0cyBpaG9wIG1lZFxuIgogIiAgICAgICAgIFwiJXNcIiwgbWVuIMOkbm51IGludGUgc2xhZ2l0cyBpaG9wIG1lZCBIRUFELiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNTAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgZGVsZXRpbmcgYnJhbmNoICclcycgdGhhdCBpcyBub3QgeWV0IG1lcmdlZCB0b1xuIgpAQCAtMjM1MywxMiArMjU1OSwxMiBAQAogInRhciBpbnRlIGJvcnQgZ3JlbmVuIFwiJXNcIiBzb20gaW50ZSBoYXIgc2xhZ2l0cyBpaG9wIG1lZFxuIgogIiAgICAgICAgIFwiJXNcIiwgdHJvdHMgYXR0IGRlbiBoYXIgc2xhZ2l0cyBpaG9wIG1lZCBIRUFELiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBzbMOlIHVwcCBpbmNoZWNrbmluZ3NvYmpla3QgZsO2ciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTY4CisjOiBidWlsdGluL2JyYW5jaC5jOjE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGJyYW5jaCAnJXMnIGlzIG5vdCBmdWxseSBtZXJnZWQuXG4iCkBAIC0yMzY3LDMzMiArMjU3MywzMzIgQEAKICJHcmVuZW4gXCIlc1wiIGhhciBpbnRlIHNsYWdpdHMgc2FtbWFuIGkgc2luIGhlbGhldC5cbiIKICJPbSBkdSDDpHIgc8Oka2VyIHDDpSBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbiwga8O2ciBcImdpdCBicmFuY2ggLUQgJXNcIi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTgxCisjOiBidWlsdGluL2JyYW5jaC5jOjE4NQogbXNnaWQgIlVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyB1cHBkYXRlcmEga29uZmlndXJhdGlvbnNmaWwiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjA5CisjOiBidWlsdGluL2JyYW5jaC5jOjIxMwogbXNnaWQgImNhbm5vdCB1c2UgLWEgd2l0aCAtZCIKIG1zZ3N0ciAia2FuIGludGUgYW5nZSAtYSBtZWQgLWQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjE1CisjOiBidWlsdGluL2JyYW5jaC5jOjIxOQogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgSEVBRCIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBzbMOlIHVwcCBpbmNoZWNrbmluZ3NvYmpla3QgZsO2ciBIRUFEIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIyMworIzogYnVpbHRpbi9icmFuY2guYzoyMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRlbGV0ZSB0aGUgYnJhbmNoICclcycgd2hpY2ggeW91IGFyZSBjdXJyZW50bHkgb24uIgogbXNnc3RyICJLYW4gaW50ZSB0YSBib3J0IGdyZW5lbiBcIiVzXCIgc29tIGR1IGJlZmlubmVyIGRpZyBww6UgZsO2ciBuw6RydmFyYW5kZS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjM2CisjOiBidWlsdGluL2JyYW5jaC5jOjI0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW1vdGUgYnJhbmNoICclcycgbm90IGZvdW5kLiIKIG1zZ3N0ciAiZmrDpHJyZ3JlbmVuIFwiJXNcIiBoaXR0YWRlcyBpbnRlLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCiBtc2dzdHIgImdyZW5lbiBcIiVzXCIgaGl0dGFkZXMgaW50ZS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUxCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciBkZWxldGluZyByZW1vdGUgYnJhbmNoICclcyciCiBtc2dzdHIgIkZlbCB2aWQgYm9ydHRhZ25pbmcgYXYgZmrDpHJyZ3JlbmVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgogbXNnc3RyICJGZWwgdmlkIGJvcnR0YWduaW5nIGF2IGdyZW5lbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU5CisjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCiBtc2dzdHIgIlRvZyBib3J0IGZqw6RycmdyZW5lbiAlcyAodmFyICVzKS5cbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNjAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRlbGV0ZWQgYnJhbmNoICVzICh3YXMgJXMpLlxuIgogbXNnc3RyICJUb2cgYm9ydCBncmVuZW4gJXMgKHZhciAlcykuXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MzYyCisjOiBidWlsdGluL2JyYW5jaC5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBwb2ludCBhdCBhIGNvbW1pdCIKIG1zZ3N0ciAiZ3JlbmVuIFwiJXNcIiBwZWthciBpbnRlIHDDpSBlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0MzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiBiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQzNgorIzogYnVpbHRpbi9icmFuY2guYzo0NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2JlaGluZCAlZF0iCiBtc2dzdHIgIltiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0MAorIzogYnVpbHRpbi9icmFuY2guYzo0NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIlslczogZsO2cmUgJWRdICIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZF0iCiBtc2dzdHIgIltmw7ZyZSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0NQorIzogYnVpbHRpbi9icmFuY2guYzo0NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVzOiBmw7ZyZSAlZCwgYmFrb20gJWRdICIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlthaGVhZCAlZCwgYmVoaW5kICVkXSIKIG1zZ3N0ciAiW2bDtnJlICVkLCBiYWtvbSAlZF0gIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ3MAorIzogYnVpbHRpbi9icmFuY2guYzo0OTAKIG1zZ2lkICIgKioqKiBpbnZhbGlkIHJlZiAqKioqIgogbXNnc3RyICIgKioqKiBvZ2lsdGlnIHJlZiAqKioqIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2MgorIzogYnVpbHRpbi9icmFuY2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgogbXNnc3RyICIoaW5nZW4gZ3Jlbiwgb21iYXNlcmFyICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1NjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAiKGluZ2VuIGdyZW4sIFwiYmlzZWN0XCIgc3RhcnRhZCBww6UgJXMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2OAorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgogbXNnc3RyICIoZnLDpW5rb3BwbGFkIGZyw6VuICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1NzEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTkxCiBtc2dpZCAiKG5vIGJyYW5jaCkiCiBtc2dzdHIgIihpbmdlbiBncmVuKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2MTcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCAnJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICJvYmpla3RldCBcIiVzXCIgcGVrYXIgcMOlIGVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY0OQorIzogYnVpbHRpbi9icmFuY2guYzo2NjkKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgInZpc3NhIHJlZmVyZW5zZXIga3VuZGUgaW50ZSBsw6RzYXMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjYyCisjOiBidWlsdGluL2JyYW5jaC5jOjY4MgogbXNnaWQgImNhbm5vdCByZW5hbWUgdGhlIGN1cnJlbnQgYnJhbmNoIHdoaWxlIG5vdCBvbiBhbnkuIgogbXNnc3RyICIiCiAia3VuZGUgaW50ZSBieXRhIG5hbW4gcMOlIGFrdHVlbGwgZ3JlbiBuw6RyIGR1IGludGUgYmVmaW5uZXIgZGlnIHDDpSBuw6Vnb24uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY3MgorIzogYnVpbHRpbi9icmFuY2guYzo2OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBicmFuY2ggbmFtZTogJyVzJyIKIG1zZ3N0ciAiRmVsYWt0aWd0IG5hbW4gcMOlIGdyZW46IFwiJXNcIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2ODcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzA3CiBtc2dpZCAiQnJhbmNoIHJlbmFtZSBmYWlsZWQiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBieXRhIG5hbW4gcMOlIGdyZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkxCisjOiBidWlsdGluL2JyYW5jaC5jOjcxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKIG1zZ3N0ciAiQnl0dGUgYm9ydCBuYW1uIHDDpSBlbiBmZWxha3RpZ3QgbmFtbmdpdmVuIGdyZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY5NQorIzogYnVpbHRpbi9icmFuY2guYzo3MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQnJhbmNoIHJlbmFtZWQgdG8gJXMsIGJ1dCBIRUFEIGlzIG5vdCB1cGRhdGVkISIKIG1zZ3N0ciAiR3JlbmVuIG5hbW5ieXR0IHRpbGwgJXMsIG1lbiBIRUFEIGhhciBpbnRlIHVwcGRhdGVyYXRzISIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzIyCiBtc2dpZCAiQnJhbmNoIGlzIHJlbmFtZWQsIGJ1dCB1cGRhdGUgb2YgY29uZmlnLWZpbGUgZmFpbGVkIgogbXNnc3RyICJHcmVuZW4gbmFtbmJ5dHQsIG1lbiBtaXNzbHlja2FkZXMgdXBwZGF0ZXJhIGtvbmZpZ3VyYXRpb25zZmlsZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzE3CisjOiBidWlsdGluL2JyYW5jaC5jOjczNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgImZlbGZvcm1hdCBvYmpla3RuYW1uICVzIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc0MQorIzogYnVpbHRpbi9icmFuY2guYzo3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGJyYW5jaCBkZXNjcmlwdGlvbiB0ZW1wbGF0ZTogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIGdyZW5iZXNrcml2bmluZ3NtYWxsOiAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICJBbGxtw6RubmEgZmxhZ2dvciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkzCiBtc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCiBtc2dzdHIgInZpc2EgaGFzaCBvY2ggw6RyZW5kZXJhZCwgYW5nZSB0dsOlIGfDpW5nZXIgZsO2ciB1cHBzdHLDtm1zZ3JlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk0CiBtc2dpZCAic3VwcHJlc3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyIKIG1zZ3N0ciAidW5kZXJ0cnljayBpbmZvcm1hdGlvbnNtZWRkZWxhbmRlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CiBtc2dpZCAic2V0IHVwIHRyYWNraW5nIG1vZGUgKHNlZSBnaXQtcHVsbCgxKSkiCiBtc2dzdHIgInN0w6RsbCBpbiBzcMOlcm5pbmdzbMOkZ2UgKHNlIGdpdC1wdWxsKDEpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCiBtc2dzdHIgIsOkbmRyYSB1cHBzdHLDtm1zaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzgxCisjOiBidWlsdGluL2JyYW5jaC5jOjgwMQogbXNnaWQgInVzZSBjb2xvcmVkIG91dHB1dCIKIG1zZ3N0ciAiYW52w6RuZCBmw6RyZ2FkIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCiBtc2dpZCAiYWN0IG9uIHJlbW90ZS10cmFja2luZyBicmFuY2hlcyIKIG1zZ3N0ciAiYXJiZXRhIHDDpSBmasOkcnJzcMOlcmFuZGUgZ3JlbmFyIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4NSBidWlsdGluL2JyYW5jaC5jOjc5MSBidWlsdGluL2JyYW5jaC5jOjgxMgotIzogYnVpbHRpbi9icmFuY2guYzo4MTggYnVpbHRpbi9jb21taXQuYzoxMzY4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwIGJ1aWx0aW4vY29tbWl0LmM6MTM3MSBidWlsdGluL3RhZy5jOjQ2OAorIzogYnVpbHRpbi9icmFuY2guYzo4MDUgYnVpbHRpbi9icmFuY2guYzo4MTEgYnVpbHRpbi9icmFuY2guYzo4MzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODM4IGJ1aWx0aW4vY29tbWl0LmM6MTQzMyBidWlsdGluL2NvbW1pdC5jOjE0MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNSBidWlsdGluL2NvbW1pdC5jOjE0MzYgYnVpbHRpbi90YWcuYzo0NjgKIG1zZ2lkICJjb21taXQiCiBtc2dzdHIgImluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4NiBidWlsdGluL2JyYW5jaC5jOjc5MgorIzogYnVpbHRpbi9icmFuY2guYzo4MDYgYnVpbHRpbi9icmFuY2guYzo4MTIKIG1zZ2lkICJwcmludCBvbmx5IGJyYW5jaGVzIHRoYXQgY29udGFpbiB0aGUgY29tbWl0IgogbXNnc3RyICJ2aXNhIGVuZGFzdCBncmVuYXIgc29tIGlubmVow6VsbGVyIGluY2hlY2tuaW5nZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk4CisjOiBidWlsdGluL2JyYW5jaC5jOjgxOAogbXNnaWQgIlNwZWNpZmljIGdpdC1icmFuY2ggYWN0aW9uczoiCiBtc2dzdHIgIlNwZWNpZmlrYSBnaXQtYnJhbmNoLcOldGfDpHJkZXI6IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OQorIzogYnVpbHRpbi9icmFuY2guYzo4MTkKIG1zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKIG1zZ3N0ciAidmlzYSBiw6VkZSBmasOkcnJzcMOlcmFuZGUgb2NoIGxva2FsYSBncmVuYXIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMQogbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgogbXNnc3RyICJ0YSBib3J0IGhlbHQgc2FtbWFuc2xhZ2VuIGdyZW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAyCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMgogbXNnaWQgImRlbGV0ZSBicmFuY2ggKGV2ZW4gaWYgbm90IG1lcmdlZCkiCiBtc2dzdHIgInRhIGJvcnQgZ3JlbiAow6R2ZW4gb20gaW50ZSBoZWx0IHNhbW1hbnNsYWdlbikiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAzCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMwogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoIGFuZCBpdHMgcmVmbG9nIgogbXNnc3RyICJmbHl0dGEvdGEgYm9ydCBlbiBncmVuIG9jaCBkZXNzIHJlZmxvZ2ciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA0CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgImZseXR0YS90YSBib3J0IGVuIGdyZW4sIMOkdmVuIG9tIG3DpWxldCBmaW5ucyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCiBtc2dzdHIgImxpc3RhIG5hbW4gcMOlIGdyZW5hciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2CiBtc2dpZCAiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciCiBtc2dzdHIgInNrYXBhIGdyZW5lbnMgcmVmbG9nZyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI4CiBtc2dpZCAiZWRpdCB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBicmFuY2giCiBtc2dzdHIgInJlZGlnZXJhIGJlc2tyaXZuaW5nIGbDtnIgZ3JlbmVuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgInR2aW5nYSBza2FwYW5kZSAobsOkciBkZW4gcmVkYW4gZmlubnMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgxMgorIzogYnVpbHRpbi9icmFuY2guYzo4MzIKIG1zZ2lkICJwcmludCBvbmx5IG5vdCBtZXJnZWQgYnJhbmNoZXMiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGVqIHNhbW1hbnNsYWduYSBncmVuYXIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBzYW1tYW5zbGFnbmEgZ3JlbmFyIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgyMgorIzogYnVpbHRpbi9icmFuY2guYzo4NDIKIG1zZ2lkICJsaXN0IGJyYW5jaGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgInZpc2EgZ3JlbmFyIGkgc3BhbHRlciIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MzUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODU1CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgSEVBRCBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBzbMOlIHVwcCBIRUFEIHNvbSBnaWx0aWcgcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODQwIGJ1aWx0aW4vY2xvbmUuYzo2MDkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODYwIGJ1aWx0aW4vY2xvbmUuYzo2MzAKIG1zZ2lkICJIRUFEIG5vdCBmb3VuZCBiZWxvdyByZWZzL2hlYWRzISIKIG1zZ3N0ciAiSEVBRCBoaXR0YWRlcyBpbnRlIHVuZGVyIHJlZnMvaGVhZHMhIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg2MworIzogYnVpbHRpbi9icmFuY2guYzo4ODMKIG1zZ2lkICItLWNvbHVtbiBhbmQgLS12ZXJib3NlIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tY29sdW1uIG9jaCAtLXZlcmJvc2Ugw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjkgYnVpbHRpbi9icmFuY2guYzo5MDgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg5IGJ1aWx0aW4vYnJhbmNoLmM6OTI4CiBtc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgImdyZW5uYW1uIGtyw6R2cyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiS2FuIGludGUgYmVza3JpdmEgZnLDpW5rb3BwbGFkIEhFQUQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg5CisjOiBidWlsdGluL2JyYW5jaC5jOjkwOQogbXNnaWQgImNhbm5vdCBlZGl0IGRlc2NyaXB0aW9uIG9mIG1vcmUgdGhhbiBvbmUgYnJhbmNoIgogbXNnc3RyICJrYW4gaW50ZSByZWRpZ2VyYSBiZXNrcml2bmluZyBmw7ZyIG1lciDDpG4gZW4gZ3JlbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4OTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICJJbmdhIGluY2hlY2tuaW5nYXIgcMOlIGdyZW5lbiBcIiVzXCIgw6RubnUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk5CisjOiBidWlsdGluL2JyYW5jaC5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIkluZ2VuIGdyZW4gdmlkIG5hbW5ldCBcIiVzXCIuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkxNAorIzogYnVpbHRpbi9icmFuY2guYzo5MzQKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgogbXNnc3RyICJmw7ZyIG3DpW5nYSBncmVuYXIgZsO2ciBuYW1uYnl0ZSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gc2V0IG5ldyB1cHN0cmVhbSIKIG1zZ3N0ciAiZsO2ciBtw6VuZ2EgZ3JlbmFyIGbDtnIgYXR0IGJ5dGEgdXBwc3Ryw7ZtIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkyMworIzogYnVpbHRpbi9icmFuY2guYzo5NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImNvdWxkIG5vdCBzZXQgdXBzdHJlYW0gb2YgSEVBRCB0byAlcyB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgogbXNnc3RyICIiCiAia3VuZGUgaW50ZSBzw6R0dGEgdXBwc3Ryw7ZtIGbDtnIgSEVBRCB0aWxsICVzIG7DpHIgZGV0IGludGUgcGVrYXIgbW90IG7DpWdvbiBncmVuLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MjYgYnVpbHRpbi9icmFuY2guYzo5NDggYnVpbHRpbi9icmFuY2guYzo5NzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2IGJ1aWx0aW4vYnJhbmNoLmM6OTY4IGJ1aWx0aW4vYnJhbmNoLmM6OTkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHN1Y2ggYnJhbmNoICclcyciCiBtc2dzdHIgIm9rw6RuZCBncmVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICJncmVuZW4gXCIlc1wiIGZpbm5zIGludGUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQyCisjOiBidWlsdGluL2JyYW5jaC5jOjk2MgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgogbXNnc3RyICJmw7ZyIG3DpW5nYSBncmVuYXIgZsO2ciBhdHQgdGEgYm9ydCB1cHBzdHLDtm0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2CisjOiBidWlsdGluL2JyYW5jaC5jOjk2NgogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIiIKICJrdW5kZSBpbnRlIHRhIGJvcnQgdXBwc3Ryw7ZtIGbDtnIgSEVBRCBuw6RyIGRldCBpbnRlIHBla2FyIG1vdCBuw6Vnb24gZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUyCisjOiBidWlsdGluL2JyYW5jaC5jOjk3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJyVzJyBoYXMgbm8gdXBzdHJlYW0gaW5mb3JtYXRpb24iCiBtc2dzdHIgIkdyZW5lbiBcIiVzXCIgaGFyIGluZ2VuIHVwcHN0csO2bXNpbmZvcm1hdGlvbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTg3CiBtc2dpZCAiaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgJ0hFQUQnIG1hbnVhbGx5IgogbXNnc3RyICJrYW4gaW50ZSBza2FwYSBcIkhFQURcIiBtYW51ZWxsdCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCiBtc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogImZsYWdnb3JuYSAtYSBvY2ggLXIgcMOlIFwiZ2l0IGJyYW5jaFwiIGthbiBpbnRlIGFuZ2VzIHRpbGxzYW1tYW5zIG1lZCBldHQgIgogImdyZW5uYW1uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3NgorIzogYnVpbHRpbi9icmFuY2guYzo5OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtLXNldC11cHN0cmVhbSBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gQ29uc2lkZXIgdXNpbmcgLS0iCkBAIC0yNzAxLDcgKzI5MDcsNyBAQAogIkZsYWdnYW4gLS1zZXQtdXBzdHJlYW0gcmVrb21tZW5kZXJhcyBlaiBvY2gga29tbWVyIHRhcyBib3J0LiBBbnbDpG5kIC0tdHJhY2sgIgogImVsbGVyIC0tc2V0LXVwc3RyZWFtLXRvXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMjcxMiwxMiArMjkxOCwxMiBAQAogIk9tIGR1IHZpbGwgZ8O2cmEgc8OlIGF0dCBcIiVzXCIgc3DDpXJhciBcIiVzXCIgZ8O2ciBkdSBzw6UgaMOkcjpcbiIKICJcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NQorIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCiBtc2dzdHIgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCkBAIC0yNzM1LDQzICsyOTQxLDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICJCZWjDtnZlciBldHQgYXJraXYgZsO2ciBhdHQgcGFja2EgdXBwIGV0dCBwYWtldCAoYnVuZGxlKS4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwPnwtLXRleHRjb252KSA8b2JqZWt0PiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI0OAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8b2JqZWt0bGlzdGE+IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY2CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzIzCiBtc2dpZCAiPHR5cGU+IGNhbiBiZSBvbmUgb2Y6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogbXNnc3RyICI8dHlwPiBrYW4gdmFyYSBlbiBhdjogYmxvYiwgdHJlZSwgY29tbWl0LCB0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNjcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICJ2aXNhIG9iamVrdHR5cCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI2OAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNQogbXNnaWQgInNob3cgb2JqZWN0IHNpemUiCiBtc2dzdHIgInZpc2Egb2JqZWt0c3RvcmxlayIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3MAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyNwogbXNnaWQgImV4aXQgd2l0aCB6ZXJvIHdoZW4gdGhlcmUncyBubyBlcnJvciIKIG1zZ3N0ciAiYXZzbHV0YSBtZWQgbm9sbCBuw6RyIGRldCBpbnRlIHVwcHN0w6V0dCBuw6Vnb3QgZmVsIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjcxCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI4CiBtc2dpZCAicHJldHR5LXByaW50IG9iamVjdCdzIGNvbnRlbnQiCiBtc2dzdHIgInZpc2Egb2JqZWt0ZXRzIGlubmVow6VsbCBzbnlnZ3QiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiZsO2ciBibG9iLW9iamVrdCwga8O2ciB0ZXh0Y29udiBww6Ugb2JqZWt0ZXRzIGlubmVow6VsbCIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAidmlzYSBpbmZvcm1hdGlvbiBvY2ggaW5uZWjDpWxsIGbDtnIgb2JqZWt0IHNvbSBsaXN0YXMgcMOlIHN0YW5kYXJkIGluIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjc4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICJ2aXNhIGluZm9ybWF0aW9uIGbDtnIgb2JqZWt0IHNvbSBsaXN0YXMgcMOlIHN0YW5kYXJkIGluIgogCkBAIC0yNzk5LDMwICszMDA1LDU1IEBACiBtc2dpZCAiaW5wdXQgcGF0aHMgYXJlIHRlcm1pbmF0ZWQgYnkgYSBudWxsIGNoYXJhY3RlciIKIG1zZ3N0ciAic8O2a3bDpGdhciBhdmRlbGFzIG1lZCBudWxsLXRlY2tlbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0MSBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgInVuZGVydHJ5Y2sgZsO2cmxvcHBzcmFwcG9ydGVyaW5nIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICJ2aXNhIGluZGF0YXPDtmt2w6RnYXIgc29tIGludGUgdHLDpGZmYXMiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAia2FuIGludGUgYW5nZSBzw7ZrdsOkZ3NuYW1uIG1lZCAtLXN0ZGluIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXoga2FuIGVuZGFzdCBhbnbDpG5kYXMgdGlsbHNhbW1hbnMgbWVkIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU2CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0OAogbXNnaWQgIm5vIHBhdGggc3BlY2lmaWVkIgogbXNnc3RyICJpbmdlbiBzw7ZrdsOkZyBhbmdhdnMiCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYwCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MgogbXNnaWQgIi0tcXVpZXQgaXMgb25seSB2YWxpZCB3aXRoIGEgc2luZ2xlIHBhdGhuYW1lIgogbXNnc3RyICItLXF1aWV0IGthbiBlbmRhc3QgYW52w6RuZGFzIG1lZCBldHQgZW5rZWx0IHPDtmt2w6Rnc25hbW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYyCisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAogbXNnaWQgImNhbm5vdCBoYXZlIGJvdGggLS1xdWlldCBhbmQgLS12ZXJib3NlIgogbXNnc3RyICJrYW4gaW50ZSBhbnbDpG5kYSBiw6VkZSAtLXF1aWV0IG9jaCAtLXZlcmJvc2UiCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiLS1ub24tbWF0Y2hpbmcgw6RyIGVuZGFzdCBnaWx0aWcgbWVkIC0tdmVyYm9zZSIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6OAorbXNnaWQgImdpdCBjaGVjay1tYWlsbWFwIFtvcHRpb25zXSA8Y29udGFjdD4uLi4iCittc2dzdHIgImdpdCBjaGVjay1tYWlsbWFwIFtmbGFnZ29yXSA8a29udGFrdD4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgImzDpHMgw6R2ZW4ga29udGFrdGVyIGZyw6VuIHN0YW5kYXJkIGluIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiCittc2dzdHIgImt1bmRlIGludGUgdG9sa2Ega29udGFrdDogJXMiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjQ3Cittc2dpZCAibm8gY29udGFjdHMgc3BlY2lmaWVkIgorbXNnc3RyICJpbmdhIGtvbnRha3RlciBhbmdhdnMiCisKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxMjYKIG1zZ2lkICJnaXQgY2hlY2tvdXQtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCBjaGVja291dC1pbmRleCBbZmxhZ2dvcl0gWy0tXSBbPGZpbD4uLi5dIgpAQCAtMjg3NSwxMDYgKzMxMDYsMTA2IEBACiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtmbGFnZ29yXSBbPGdyZW4+XSAtLSA8ZmlsPi4uLiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNiBidWlsdGluL2NoZWNrb3V0LmM6MTQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgb3VyIHZlcnNpb24iCiBtc2dzdHIgInPDtmt2w6RnZW4gXCIlc1wiIGhhciBpbnRlIHbDpXIgdmVyc2lvbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExOCBidWlsdGluL2NoZWNrb3V0LmM6MTUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE5IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgdGhlaXIgdmVyc2lvbiIKIG1zZ3N0ciAic8O2a3bDpGdlbiBcIiVzXCIgaGFyIGludGUgZGVyYXMgdmVyc2lvbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEzNAorIzogYnVpbHRpbi9jaGVja291dC5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICJzw7ZrdsOkZ2VuIFwiJXNcIiBpbm5laMOlbGxlciBpbnRlIGFsbGEgbsO2ZHbDpG5kaWdhIHZlcnNpb25lciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE3OAorIzogYnVpbHRpbi9jaGVja291dC5jOjE3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBuZWNlc3NhcnkgdmVyc2lvbnMiCiBtc2dzdHIgInPDtmt2w6RnZW4gXCIlc1wiIGlubmVow6VsbGVyIGludGUgbsO2ZHbDpG5kaWdhIHZlcnNpb25lciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE5NQorIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKIG1zZ3N0ciAic8O2a3bDpGcgXCIlc1wiOiBrYW4gaW50ZSBzbMOlIGlob3AiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkZ2dhIHRpbGwgc2FtbWFuc2xhZ25pbmdzcmVzdWx0YXQgZsO2ciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzYgYnVpbHRpbi9jaGVja291dC5jOjIzOSBidWlsdGluL2NoZWNrb3V0LmM6MjQyCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjM3IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDAgYnVpbHRpbi9jaGVja291dC5jOjI0MworIzogYnVpbHRpbi9jaGVja291dC5jOjI0NgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggdXBkYXRpbmcgcGF0aHMiCiBtc2dzdHIgIlwiJXNcIiBrYW4gaW50ZSBhbnbDpG5kYXMgdmlkIHVwcGRhdGVyaW5nIGF2IHPDtmt2w6RnYXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDggYnVpbHRpbi9jaGVja291dC5jOjI1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgJXMiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuIgogbXNnc3RyICJLYW4gaW50ZSB1cHBkYXRlcmEgc8O2a3bDpGdhciBvY2ggdsOkeGxhIHRpbGwgZ3JlbmVuIFwiJXNcIiBzYW10aWRpZ3QuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAogbXNnaWQgImNvcnJ1cHQgaW5kZXggZmlsZSIKIG1zZ3N0ciAiaW5kZXhmaWxlbiDDpHIgdHJhc2lnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MzI2IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCiBtc2dzdHIgInPDtmt2w6RnZW4gXCIlc1wiIGhhciBpbnRlIHNsYWdpdHMgaWhvcCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjQ3NworIzogYnVpbHRpbi9jaGVja291dC5jOjQ4MAogbXNnaWQgInlvdSBuZWVkIHRvIHJlc29sdmUgeW91ciBjdXJyZW50IGluZGV4IGZpcnN0IgogbXNnc3RyICJkdSBtw6VzdGUgbMO2c2EgZGl0dCBiZWZpbnRsaWdhIGluZGV4IGbDtnJzdCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjU5OAorIzogYnVpbHRpbi9jaGVja291dC5jOjYwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW4gbm90IGRvIHJlZmxvZyBmb3IgJyVzJ1xuIgogbXNnc3RyICJLYW4gaW50ZSBza2FwYSByZWZlcmVuc2xvZyBmw7ZyIFwiJXNcIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjMxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjM5CiBtc2dpZCAiSEVBRCBpcyBub3cgYXQiCiBtc2dzdHIgIkhFQUQgw6RyIG51IHDDpSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLDhXRlcnN0w6RsbCBncmVuIFwiJXNcIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICJSZWRhbiBww6UgXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3dpdGNoZWQgdG8gYW5kIHJlc2V0IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIlbDpHhsYWRlIHRpbGwgb2NoIG5vbGxzdMOkbGxkZSBncmVuZW4gXCIlc1wiXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDcgYnVpbHRpbi9jaGVja291dC5jOjk4NAorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIlbDpHhsYWRlIHRpbGwgZW4gbnkgZ3JlbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICJWw6R4bGFkZSB0aWxsIGdyZW5lbiBcIiVzXCJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjcwNQorIzogYnVpbHRpbi9jaGVja291dC5jOjcxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIgLi4uIGFuZCAlZCBtb3JlLlxuIgogbXNnc3RyICIgLi4uIG9jaCAlZCB0aWxsLlxuIgogCiAjLiBUaGUgc2luZ3VsYXIgdmVyc2lvbgotIzogYnVpbHRpbi9jaGVja291dC5jOjcxMQorIzogYnVpbHRpbi9jaGVja291dC5jOjcxOQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV2FybmluZzogeW91IGFyZSBsZWF2aW5nICVkIGNvbW1pdCBiZWhpbmQsIG5vdCBjb25uZWN0ZWQgdG9cbiIKQEAgLTI5OTcsNyArMzIyOCw3IEBACiAiXG4iCiAiJXNcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjcyOQorIzogYnVpbHRpbi9jaGVja291dC5jOjczNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8ga2VlcCB0aGVtIGJ5IGNyZWF0aW5nIGEgbmV3IGJyYW5jaCwgdGhpcyBtYXkgYmUgYSBnb29kIHRpbWVcbiIKQEAgLTMwMTIsMTMyICszMjQzLDEzNiBAQAogIiBnaXQgYnJhbmNoIG55dHRfZ3Jlbm5hbW4gJXNcbiIKICJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NwogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgImludGVybnQgZmVsIHZpZCBnZW5vbWfDpW5nIGF2IHJldmlzaW9uZXIgKHJldmlzaW9uIHdhbGspIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzYzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzcxCiBtc2dpZCAiUHJldmlvdXMgSEVBRCBwb3NpdGlvbiB3YXMiCiBtc2dzdHIgIlRpZGlnYXJlIHBvc2l0aW9uIGbDtnIgSEVBRCB2YXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTAgYnVpbHRpbi9jaGVja291dC5jOjk3OQorIzogYnVpbHRpbi9jaGVja291dC5jOjc5OCBidWlsdGluL2NoZWNrb3V0LmM6OTkyCiBtc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAiRHUgw6RyIHDDpSBlbiBncmVuIHNvbSDDpG5udSBpbnRlIMOkciBmw7ZkZCIKIAogIy4gY2FzZSAoMSkKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCByZWZlcmVuY2U6ICVzIgogbXNnc3RyICJmZWxha3RpZyByZWZlcmVuczogJXMiCiAKICMuIGNhc2UgKDEpOiB3YW50IGEgdHJlZQotIzogYnVpbHRpbi9jaGVja291dC5jOjk1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCiBtc2dzdHIgInJlZmVyZW5zZW4gw6RyIGludGUgZXR0IHRyw6RkOiAlcyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAic8O2a3bDpGdhciBrYW4gaW50ZSBhbnbDpG5kYXMgdmlkIGJ5dGUgYXYgZ3JlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5NiBidWlsdGluL2NoZWNrb3V0LmM6MTAwMAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDkgYnVpbHRpbi9jaGVja291dC5jOjEwMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyB2aWQgYnl0ZSBhdiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwNCBidWlsdGluL2NoZWNrb3V0LmM6MTAwNyBidWlsdGluL2NoZWNrb3V0LmM6MTAxMgotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwIGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggJyVzJyIKIG1zZ3N0ciAiXCIlc1wiIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgXCIlc1wiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyMAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHN3aXRjaCBicmFuY2ggdG8gYSBub24tY29tbWl0ICclcyciCiBtc2dzdHIgIkthbiBpbnRlIHbDpHhsYSBncmVuIHRpbGwgaWNrZS1pbmNoZWNrbmluZ2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDIgYnVpbHRpbi9jaGVja291dC5jOjEwNDQgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NSBidWlsdGluL2NoZWNrb3V0LmM6MTA1NyBidWlsdGluL2Nsb25lLmM6ODkKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY5IGJ1aWx0aW4vcmVtb3RlLmM6MTcxCiBtc2dpZCAiYnJhbmNoIgogbXNnc3RyICJncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTYKIG1zZ2lkICJjcmVhdGUgYW5kIGNoZWNrb3V0IGEgbmV3IGJyYW5jaCIKIG1zZ3N0ciAic2thcGEgb2NoIGNoZWNrYSB1dCBlbiBueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKIG1zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgogbXNnc3RyICJza2FwYS9ub2xsc3TDpGxsIG9jaCBjaGVja2EgdXQgZW4gZ3JlbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CiBtc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAic2thcGEgcmVmbG9nZyBmw7ZyIG55IGdyZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MAogbXNnaWQgImRldGFjaCB0aGUgSEVBRCBhdCBuYW1lZCBjb21taXQiCiBtc2dzdHIgImtvcHBsYSBmcsOlbiBIRUFEIHZpZCBuYW1uZ2l2ZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICJzw6R0dCB1cHBzdHLDtm1zaW5mb3JtYXRpb24gZsO2ciBueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICJueSBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgdW5wYXJlbnRlZCBicmFuY2giCiBtc2dzdHIgIm55IGdyZW4gdXRhbiBmw7Zyw6RsZGVyIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjQKIG1zZ2lkICJjaGVja291dCBvdXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgImNoZWNrYSB1dCB2w6VyIHZlcnNpb24gZsO2ciBlaiBzYW1tYW5zbGFnbmEgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NgogbXNnaWQgImNoZWNrb3V0IHRoZWlyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICJjaGVja2EgdXQgZGVyYXMgdmVyc2lvbiBmw7ZyIGVqIHNhbW1hbnNsYWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY4CiBtc2dpZCAiZm9yY2UgY2hlY2tvdXQgKHRocm93IGF3YXkgbG9jYWwgbW9kaWZpY2F0aW9ucykiCiBtc2dzdHIgInR2aW5nYSB1dGNoZWNrbmluZyAoa2FzdGEgYm9ydCBsb2thbGEgw6RuZHJpbmdhcikiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OQogbXNnaWQgInBlcmZvcm0gYSAzLXdheSBtZXJnZSB3aXRoIHRoZSBuZXcgYnJhbmNoIgogbXNnc3RyICJ1dGbDtnIgZW4gMy12w6Rnc3NhbW1hbnNsYWduaW5nIGbDtnIgZGVuIG55YSBncmVuZW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoyMTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzIKIG1zZ2lkICJ1cGRhdGUgaWdub3JlZCBmaWxlcyAoZGVmYXVsdCkiCiBtc2dzdHIgInVwcGRhdGVyYSBpZ25vcmVyYWRlIGZpbGVyIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4IGJ1aWx0aW4vbG9nLmM6MTE0OSBwYXJzZS1vcHRpb25zLmg6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQogbXNnaWQgInN0eWxlIgogbXNnc3RyICJzdGlsIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzIKIG1zZ2lkICJjb25mbGljdCBzdHlsZSAobWVyZ2Ugb3IgZGlmZjMpIgogbXNnc3RyICJrb25mbGlrdHN0aWwgKG1lcmdlIGVsbGVyIGRpZmYzKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc1Cittc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgorbXNnc3RyICJiZWdyw6Ruc2EgaW50ZSBzw7ZrdsOkZ2FyIHRpbGwgZW5kYXN0IGdsZXNhIHBvc3RlciIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgImbDtnJ1dHNww6UgXCJnaXQgY2hlY2tvdXQgZ3Jlbi1zYWtuYXNcIiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwODYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICItYiwgLUIgb2NoIC0tb3JwaGFuIMOkciDDtm1zZXNpZGlndCB1dGVzbHV0YW5kZSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTE4CiBtc2dpZCAiLS10cmFjayBuZWVkcyBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICItLXRyYWNrIGJlaMO2dmVyIGV0dCBuYW1uIHDDpSBlbiBncmVuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTExMAorIzogYnVpbHRpbi9jaGVja291dC5jOjExMjUKIG1zZ2lkICJNaXNzaW5nIGJyYW5jaCBuYW1lOyB0cnkgLWIiCiBtc2dzdHIgIkdyZW5uYW1uIHNha25hczsgZsO2cnPDtmsgbWVkIC1iIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKIG1zZ3N0ciAiZmVsYWt0aWcgc8O2a3bDpGdzYW5naXZlbHNlIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgpAQCAtMzE0NiwxMiArMzM4MSwxMiBAQAogIkthbiBpbnRlIHVwcGRhdGVyYSBzw7ZrdsOkZ2FyIG9jaCB2w6R4bGEgdGlsbCBncmVuZW4gXCIlc1wiIHNhbXRpZGlndC5cbiIKICJWaWxsZSBkdSBjaGVja2EgdXQgXCIlc1wiIHNvbSBpbnRlIGthbiBsw7ZzYXMgc29tIGVuIHV0Y2hlY2tuaW5nPyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0OiAtLWRldGFjaCB0YXIgaW50ZSBlbiBzw7ZrdsOkZyBzb20gYXJndW1lbnQgXCIlc1wiIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNzYKIG1zZ2lkICIiCiAiZ2l0IGNoZWNrb3V0OiAtLW91cnMvLS10aGVpcnMsIC0tZm9yY2UgYW5kIC0tbWVyZ2UgYXJlIGluY29tcGF0aWJsZSB3aGVuXG4iCiAiY2hlY2tpbmcgb3V0IG9mIHRoZSBpbmRleC4iCkBAIC0zMTU5LDIxOCArMzM5NCwzMjEgQEAKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBvY2ggLS1tZXJnZSDDpHIgaW5rb21wYXRpYmxhIG7DpHJcbiIKICJkdSBjaGVja2FyIHV0IGZyw6VuIGluZGV4ZXQuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKIG1zZ3N0ciAiIgotImdpdCBjbGVhbiBbLWRdIFstZl0gWy1uXSBbLXFdIFstZSA8bcO2bnN0ZXI+XSBbLXggfCAtWF0gWy0tXSA8c8O2a3bDpGdhcj4uLi4iCisiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLWldIFstbl0gWy1xXSBbLWUgPG3Dtm5zdGVyPl0gWy14IHwgLVhdIFstLV0gIgorIjxzw7ZrdsOkZ2FyPi4uLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI0CisjOiBidWlsdGluL2NsZWFuLmM6MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAiVGFyIGJvcnQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIlNrdWxsZSB0YSBib3J0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNgorIzogYnVpbHRpbi9jbGVhbi5jOjMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNraXBwaW5nIHJlcG9zaXRvcnkgJXNcbiIKIG1zZ3N0ciAiSG9wcGFyIMO2dmVyIGFya2l2ZXQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI3CisjOiBidWlsdGluL2NsZWFuLmM6MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIlNrdWxsZSBob3BwYSDDtnZlciBhcmtpdmV0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyOAorIzogYnVpbHRpbi9jbGVhbi5jOjMzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZW1vdmUgJXMiCiBtc2dzdHIgIm1pc3NseWNrYWRlcyB0YSBib3J0ICVzIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYwCisjOiBidWlsdGluL2NsZWFuLmM6MjkzCittc2dpZCAiIgorIlByb21wdCBoZWxwOlxuIgorIjEgICAgICAgICAgLSBzZWxlY3QgYSBudW1iZXJlZCBpdGVtXG4iCisiZm9vICAgICAgICAtIHNlbGVjdCBpdGVtIGJhc2VkIG9uIHVuaXF1ZSBwcmVmaXhcbiIKKyIgICAgICAgICAgIC0gKGVtcHR5KSBzZWxlY3Qgbm90aGluZyIKK21zZ3N0ciAiIgorIktvbW1hbmRvaGrDpGxwOlxuIgorIjEgICAgICAgICAgLSBtYXJrZXJhIGVuIG51bXJlcmFkIHBvc3RcbiIKKyJmb28gICAgICAgIC0gbWFya2VyYSBwb3N0IGJhc2VyYWQgcMOlIHVuaWt0IHByZWZpeFxuIgorIiAgICAgICAgICAgLSAodG9tdCkgbWFya2VyYSBpbmdlbnRpbmciCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTcKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIHNpbmdsZSBpdGVtXG4iCisiMy01ICAgICAgICAtIHNlbGVjdCBhIHJhbmdlIG9mIGl0ZW1zXG4iCisiMi0zLDYtOSAgICAtIHNlbGVjdCBtdWx0aXBsZSByYW5nZXNcbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIi0uLi4gICAgICAgLSB1bnNlbGVjdCBzcGVjaWZpZWQgaXRlbXNcbiIKKyIqICAgICAgICAgIC0gY2hvb3NlIGFsbCBpdGVtc1xuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIGZpbmlzaCBzZWxlY3RpbmciCittc2dzdHIgIiIKKyJLb21tYW5kb2hqw6RscDpcbiIKKyIxICAgICAgICAgIC0gbWFya2VyYSBlbiBlbnNhbSBwb3N0XG4iCisiMy01ICAgICAgICAtIG1hcmtlcmEgZXR0IGludGVydmFsbCBtZWQgcG9zdGVyXG4iCisiMi0zLDYtOSAgICAtIG1hcmtlcmEgZmxlcmEgaW50ZXJ2YWxsXG4iCisiZm9vICAgICAgICAtIG1hcmtlcmEgcG9zdCBiYXNlcmFkIHDDpSB1bmlrdCBwcmVmaXhcbiIKKyItLi4uICAgICAgIC0gYXZtYXJrZXJhIHNwZWNpZmlrYSBwb3N0ZXJcbiIKKyIqICAgICAgICAgIC0gdsOkbGogYWxsYSBwb3N0ZXJcbiIKKyIgICAgICAgICAgIC0gKHRvbXQpIGF2c2x1dGEgbWFya2VyaW5nIgorCisjOiBidWlsdGluL2NsZWFuLmM6NTE1CisjLCBjLWZvcm1hdAorbXNnaWQgIkh1aCAoJXMpPyIKK21zZ3N0ciAiVmFkw6UgKCVzKT8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo2NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiSW5wdXQgaWdub3JlIHBhdHRlcm5zPj4gIgorbXNnc3RyICJBbmdlIGlnbm9yZXJpbmdzbcO2bnN0ZXI+PiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiVkFSTklORzogSGl0dGFyIGludGUgcG9zdGVyIHNvbSBtb3RzdmFyYXI6ICVzIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE2Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAiVsOkbGogcG9zdGVyIGF0dCB0YSBib3J0IgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICJ0YSBib3J0ICVzPyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjc4MQorbXNnaWQgIkJ5ZS4iCittc2dzdHIgIkhlaiBkw6UuIgorCisjOiBidWlsdGluL2NsZWFuLmM6Nzg5Cittc2dpZCAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCittc2dzdHIgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gYsO2cmphIHN0w6RkYVxuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSB1dGVzbHV0IHBvc3RlciBmcsOlbiBib3J0dGFnbmluZ1xuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBtYXJrZXJhIHBvc3RlciBzb20gc2thIHRhcyBib3J0IG1lZCBzaWZmcm9yXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGJla3LDpGZ0YSB2YXJqZSBib3J0dGFnbmluZyAoc29tIFwicm0gLWlcIilcbiIKKyJxdWl0ICAgICAgICAgICAgICAgIC0gc2x1dGEgc3TDpGRhXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIGRlbm5hIHNrw6RybVxuIgorIj8gICAgICAgICAgICAgICAgICAgLSBoasOkbHAgZsO2ciBrb21tYW5kb3ZhbCIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCittc2dzdHIgIioqKiBLb21tYW5kb24gKioqIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIlZhZCBudSIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgyNQorbXNnaWQgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW06IgorbXNnaWRfcGx1cmFsICJXb3VsZCByZW1vdmUgdGhlIGZvbGxvd2luZyBpdGVtczoiCittc2dzdHJbMF0gIlNrdWxsZSB0YSBib3J0IGbDtmxqYW5kZSBwb3N0OiIKK21zZ3N0clsxXSAiU2t1bGxlIHRhIGJvcnQgZsO2bGphbmRlIHBvc3RlcjoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiSW5nYSBmbGVyIGZpbGVyIGF0dCBzdMOkZGEsIGF2c2x1dGFyLiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3NAogbXNnaWQgImRvIG5vdCBwcmludCBuYW1lcyBvZiBmaWxlcyByZW1vdmVkIgogbXNnc3RyICJza3JpdiBpbnRlIHV0IG5hbW4gcMOlIGJvcnR0YWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorIzogYnVpbHRpbi9jbGVhbi5jOjg3NgogbXNnaWQgImZvcmNlIgogbXNnc3RyICJ0dmluZ2EiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAic3TDpGRhIGludGVyYWt0aXZ0IgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc5CiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICJ0YSBib3J0IGhlbGEga2F0YWxvZ2VyIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTY1IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIgYnVpbHRpbi9ncmVwLmM6NzE3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzEgYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MCBidWlsdGluL2Rlc2NyaWJlLmM6NDIwIGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MyBidWlsdGluL25hbWUtcmV2LmM6MzE1IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJwYXR0ZXJuIgogbXNnc3RyICJtw7Zuc3RlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MQogbXNnaWQgImFkZCA8cGF0dGVybj4gdG8gaWdub3JlIHJ1bGVzIgogbXNnc3RyICJsw6RnZyB0aWxsIDxtw7Zuc3Rlcj4gdGlsbCBpZ25vcmVyaW5nc3JlZ2xlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgInRhIMOkdmVuIGJvcnQgaWdub3JlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2OQorIzogYnVpbHRpbi9jbGVhbi5jOjg4NAogbXNnaWQgInJlbW92ZSBvbmx5IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgInRhIGVuZGFzdCBib3J0IGlnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxODcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDIKIG1zZ2lkICIteCBhbmQgLVggY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi14IG9jaCAtWCBrYW4gaW50ZSBhbnbDpG5kYXMgc2FtdGlkaWd0IgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTkxCisjOiBidWlsdGluL2NsZWFuLmM6OTA2CiBtc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvIGNsZWFuIgotbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNhdHQgdGlsbCB0cnVlLCBtZW4gdmFya2VuIC1uIGVsbGVyIC1mIGFuZ2F2czsgdsOkZ3JhciAiCi0ic3TDpGRhIgotCi0jOiBidWlsdGluL2NsZWFuLmM6MTk0Ci1tc2dpZCAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSBkZWZhdWx0cyB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzZXQgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byAiCiAiY2xlYW4iCiBtc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgaGFyIHN0YW5kYXJkdsOkcmRldCB0cnVlLCBtZW4gdmFya2VuIC1uIGVsbGVyIC1mIGFuZ2F2czsgIgotInbDpGdyYXIgc3TDpGRhIgorImNsZWFuLnJlcXVpcmVGb3JjZSBzYXR0IHRpbGwgdHJ1ZSwgbWVuIHZhcmtlbiAtaSwgLW4gZWxsZXIgLWYgYW5nYXZzOyB2w6RncmFyICIKKyJzdMOkZGEiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNworIzogYnVpbHRpbi9jbGVhbi5jOjkwOQorbXNnaWQgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtaSwgLW4gbm9yIC1mIGdpdmVuOyAiCisicmVmdXNpbmcgdG8gY2xlYW4iCittc2dzdHIgIiIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgaGFyIHN0YW5kYXJkdsOkcmRldCB0cnVlIG9jaCB2YXJrZW4gLWksIC1uIGVsbGVyIC1mICIKKyJhbmdhdnM7IHbDpGdyYXIgc3TDpGRhIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBbZmxhZ2dvcl0gWy0tXSA8YXJraXY+IFs8a2F0Pl0iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NSBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIxNAotIzogYnVpbHRpbi9wdXNoLmM6NDM2CisjOiBidWlsdGluL2Nsb25lLmM6NjQgYnVpbHRpbi9mZXRjaC5jOjgyIGJ1aWx0aW4vbWVyZ2UuYzoyMjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MgogbXNnaWQgImZvcmNlIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAidHZpbmdhIGbDtnJsb3Bwc3JhcHBvcnRlcmluZyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY3CisjOiBidWlsdGluL2Nsb25lLmM6NjYKIG1zZ2lkICJkb24ndCBjcmVhdGUgYSBjaGVja291dCIKIG1zZ3N0ciAic2thcGEgaW50ZSBuw6Vnb24gdXRjaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAic2thcGEgZXR0IG5ha2V0IChcImJhcmVcIikgYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MworIzogYnVpbHRpbi9jbG9uZS5jOjcyCiBtc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCiBtc2dzdHIgInNrYXBhIGV0dCBzcGVnZWxhcmtpdiAoaW1wbGljZXJhciBcImJhcmVcIikiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgImbDtnIgYXR0IGtsb25hIGZyw6VuIGV0dCBsb2thbHQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgInNrYXBhIGludGUgbG9rYWxhIGjDpXJkYSBsw6Rua2FyLCBrb3BpZXJhIGFsbHRpZCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5CisjOiBidWlsdGluL2Nsb25lLmM6NzgKIG1zZ2lkICJzZXR1cCBhcyBzaGFyZWQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAic2thcGEgc29tIGV0dCBkZWxhdCBhcmtpdiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCiBtc2dzdHIgImluaXRpZXJhIHVuZGVybW9kdWxlciBpIGtsb25lbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQorIzogYnVpbHRpbi9jbG9uZS5jOjgzIGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQogbXNnaWQgInRlbXBsYXRlLWRpcmVjdG9yeSIKIG1zZ3N0ciAibWFsbGthdGFsb2ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NSBidWlsdGluL2luaXQtZGIuYzo0ODYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NCBidWlsdGluL2luaXQtZGIuYzo0ODYKIG1zZ2lkICJkaXJlY3RvcnkgZnJvbSB3aGljaCB0ZW1wbGF0ZXMgd2lsbCBiZSB1c2VkIgogbXNnc3RyICJrYXRhbG9nIGF0dCBhbnbDpG5kYSBtYWxsYXIgZnLDpW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgInJlZmVyZW5zYXJraXYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgIm5hbW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICJhbnbDpG5kIDxuYW1uPiBpc3TDpGxsZXQgZsO2ciBcIm9yaWdpblwiIGbDtnIgYXR0IHNww6VyYSB1cHBzdHLDtm1zIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MAogbXNnaWQgImNoZWNrb3V0IDxicmFuY2g+IGluc3RlYWQgb2YgdGhlIHJlbW90ZSdzIEhFQUQiCiBtc2dzdHIgImNoZWNrYSB1dCA8Z3Jlbj4gaXN0w6RsbGV0IGbDtnIgZmrDpHJyZW5zIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MworIzogYnVpbHRpbi9jbG9uZS5jOjkyCiBtc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKIG1zZ3N0ciAic8O2a3bDpGcgdGlsbCBnaXQtdXBsb2FkLXBhY2sgcMOlIGZqw6RycmVuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTQgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MgorIzogYnVpbHRpbi9jbG9uZS5jOjkzIGJ1aWx0aW4vZmV0Y2guYzo4MyBidWlsdGluL2dyZXAuYzo2NjEKIG1zZ2lkICJkZXB0aCIKIG1zZ3N0ciAiZGp1cCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk1CisjOiBidWlsdGluL2Nsb25lLmM6OTQKIG1zZ2lkICJjcmVhdGUgYSBzaGFsbG93IGNsb25lIG9mIHRoYXQgZGVwdGgiCiBtc2dzdHIgInNrYXBhIGVuIGdydW5kIGtsb24gcMOlIGRldHRhIGRqdXAiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgogbXNnc3RyICJrbG9uYSBlbmRhc3QgZW4gZ3JlbiwgSEVBRCBlbGxlciAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiZ2l0a2F0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAic2VwYXJlcmEgZ2l0a2F0YWxvZ2VuIGZyw6VuIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMAorIzogYnVpbHRpbi9jbG9uZS5jOjk5CiBtc2dpZCAia2V5PXZhbHVlIgogbXNnc3RyICJueWNrZWw9dsOkcmRlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAxCisjOiBidWlsdGluL2Nsb25lLmM6MTAwCiBtc2dpZCAic2V0IGNvbmZpZyBpbnNpZGUgdGhlIG5ldyByZXBvc2l0b3J5IgogbXNnc3RyICJzdMOkbGwgaW4ga29uZmlndXJhdGlvbiBpIGRldCBueWEgYXJraXZldCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjI0NAorIzogYnVpbHRpbi9jbG9uZS5jOjI1MwogIywgYy1mb3JtYXQKLW1zZ2lkICJyZWZlcmVuY2UgcmVwb3NpdG9yeSAnJXMnIGlzIG5vdCBhIGxvY2FsIGRpcmVjdG9yeS4iCi1tc2dzdHIgInJlZmVyZW5zYXJraXZldCBcIiVzXCIgw6RyIGludGUgZW4gbG9rYWwga2F0YWxvZy4iCittc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKK21zZ3N0ciAicmVmZXJlbnNhcmtpdmV0IFwiJXNcIiDDpHIgaW50ZSBldHQgbG9rYWx0IGFya2l2LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMwNworIzogYnVpbHRpbi9jbG9uZS5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgc2thcGEga2F0YWxvZ2VuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMwOSBidWlsdGluL2RpZmYuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjMxOCBidWlsdGluL2RpZmYuYzo3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdGEgc3RhdHVzIHDDpSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZXhpc3RzIGFuZCBpcyBub3QgYSBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzIGZpbm5zIG9jaCDDpHIgaW5nZW4ga2F0YWxvZyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyNQorIzogYnVpbHRpbi9jbG9uZS5jOjMzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAlc1xuIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdGEgc3RhdHVzIHDDpSAlc1xuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzQ3CisjOiBidWlsdGluL2Nsb25lLmM6MzU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMgc2thcGEgbMOkbmtlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICJtaXNzbHlja2FkZXMga29waWVyYSBmaWxlbiB0aWxsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM3NAorIzogYnVpbHRpbi9jbG9uZS5jOjM4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJkb25lLlxuIgogbXNnc3RyICJrbGFydC5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjM4NworIzogYnVpbHRpbi9jbG9uZS5jOjM5NgogbXNnaWQgIiIKICJDbG9uZSBzdWNjZWVkZWQsIGJ1dCBjaGVja291dCBmYWlsZWQuXG4iCiAiWW91IGNhbiBpbnNwZWN0IHdoYXQgd2FzIGNoZWNrZWQgb3V0IHdpdGggJ2dpdCBzdGF0dXMnXG4iCkBAIC0zMzgwLDkxICszNzE4LDEwNSBAQAogIkR1IGthbiBpbnNwZWt0ZXJhIGRldCBzb20gY2hlY2thZGVzIHV0IG1lZCBcImdpdCBzdGF0dXNcIlxuIgogIm9jaCBmw7Zyc8O2a2EgY2hlY2thIHV0IGlnZW4gbWVkIFwiZ2l0IGNoZWNrb3V0IC1mIEhFQURcIlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NDY2CisjOiBidWlsdGluL2Nsb25lLmM6NDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmaW5kIHJlbW90ZSBicmFuY2ggJXMgdG8gY2xvbmUuIgogbXNnc3RyICJLdW5kZSBpbnRlIGhpdHRhIGZqw6RycmdyZW5lbiAlcyBmw7ZyIGF0dCBrbG9uYS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo1NDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hlY2tpbmcgY29ubmVjdGl2aXR5Li4uICIKK21zZ3N0ciAiS29udHJvbGxlcmFyIGFuc2x1dG5pbmcuLi4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAiZmrDpHJyZW4gc8OkbmRlIGludGUgYWxsYSBuw7ZkdsOkbmRpZ2Egb2JqZWt0IgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjAwCisjOiBidWlsdGluL2Nsb25lLmM6NTYwCisjLCBjLWZvcm1hdAorbXNnaWQgImRvbmVcbiIKK21zZ3N0ciAia2xhcnRcbiIKKworIzogYnVpbHRpbi9jbG9uZS5jOjYyMQogbXNnaWQgInJlbW90ZSBIRUFEIHJlZmVycyB0byBub25leGlzdGVudCByZWYsIHVuYWJsZSB0byBjaGVja291dC5cbiIKIG1zZ3N0ciAiIgogIkhFQUQgaG9zIGZqw6RycmVuIHBla2FyIHDDpSBlbiBvYmVmaW50bGlnIHJlZmVyZW5zLCBrYW4gaW50ZSBjaGVja2EgdXQuXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MzEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NTIKIG1zZ2lkICJ1bmFibGUgdG8gY2hlY2tvdXQgd29ya2luZyB0cmVlIgogbXNnc3RyICJrdW5kZSBpbnRlIGNoZWNrYSB1dCBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjAKIG1zZ2lkICJUb28gbWFueSBhcmd1bWVudHMuIgogbXNnc3RyICJGw7ZyIG3DpW5nYSBhcmd1bWVudC4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NDMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NjQKIG1zZ2lkICJZb3UgbXVzdCBzcGVjaWZ5IGEgcmVwb3NpdG9yeSB0byBjbG9uZS4iCiBtc2dzdHIgIkR1IG3DpXN0ZSBhbmdlIGV0dCBhcmtpdiBhdHQga2xvbmEuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzU0CisjOiBidWlsdGluL2Nsb25lLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIi0tYmFyZSBhbmQgLS1vcmlnaW4gJXMgb3B0aW9ucyBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiZmxhZ2dvcm5hIC0tYmFyZSBvY2ggLS1vcmlnaW4gJXMgw6RyIGlua29tcGF0aWJsYS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzgKIG1zZ2lkICItLWJhcmUgYW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiZmxhZ2dvcm5hIC0tYmFyZSBvY2ggLS1zZXBhcmF0ZS1naXQtZGlyIMOkciBpbmtvbXBhdGlibGEuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcwCisjOiBidWlsdGluL2Nsb25lLmM6NzkxCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlcG9zaXRvcnkgJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAiYXJraXZldCBcIiVzXCIgZmlubnMgaW50ZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc5NgogbXNnaWQgIi0tZGVwdGggaXMgaWdub3JlZCBpbiBsb2NhbCBjbG9uZXM7IHVzZSBmaWxlOi8vIGluc3RlYWQuIgogbXNnc3RyICItLWRlcHRoIGlnbm9yZXJhcyBpIGxva2FsYSBrbG9uaW5nYXI7IGFudsOkbmQgZmlsZTovLyBpc3TDpGxsZXQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTgKK21zZ2lkICItLWxvY2FsIGlzIGlnbm9yZWQiCittc2dzdHIgIi0tbG9jYWwgaWdub3JlcmFzIgorCisjOiBidWlsdGluL2Nsb25lLmM6ODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgImRlc3RpbmF0aW9uIHBhdGggJyVzJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeS4iCiBtc2dzdHIgImRlc3RpbmF0aW9uc3PDtmt2w6RnZW4gXCIlc1wiIGZpbm5zIHJlZGFuIG9jaCDDpHIgaW50ZSBlbiB0b20ga2F0YWxvZy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgogbXNnc3RyICJhcmJldHN0csOkZGV0IFwiJXNcIiBmaW5ucyByZWRhbi4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDggYnVpbHRpbi9jbG9uZS5jOjgyMAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMSBidWlsdGluL2Nsb25lLmM6ODQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBvZiAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrYXBhIGlubGVkYW5kZSBrYXRhbG9nZXIgZsO2ciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrYXBhIGFyYmV0c2thdGFsb2dlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvIGJhcmUgcmVwb3NpdG9yeSAnJXMnLi4uXG4iCiBtc2dzdHIgIktsb25hciB0aWxsIGV0dCBuYWtldCBhcmtpdiBcIiVzXCIuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzMgorIzogYnVpbHRpbi9jbG9uZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gJyVzJy4uLlxuIgogbXNnc3RyICJLbG9uYXIgdGlsbCBcIiVzXCIuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg2NworIzogYnVpbHRpbi9jbG9uZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAiVmV0IGludGUgaHVyIG1hbiBrbG9uYXIgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MTYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3RlIGJyYW5jaCAlcyBub3QgZm91bmQgaW4gdXBzdHJlYW0gJXMiCiBtc2dzdHIgIkZqw6RycmdyZW5lbiAlcyBoaXR0YWRlcyBpbnRlIGkgdXBwc3Ryw7Ztc2Fya2l2ZXQgJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MjMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NDkKIG1zZ2lkICJZb3UgYXBwZWFyIHRvIGhhdmUgY2xvbmVkIGFuIGVtcHR5IHJlcG9zaXRvcnkuIgogbXNnc3RyICJEdSB2ZXJrYXIgaGEga2xvbmF0IGV0dCB0b210IGFya2l2LiIKIApAQCAtMzUwMCwxNSArMzg1MiwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiLS1jb21tYW5kIG3DpXN0ZSB2YXJhIGbDtnJzdGEgYXJndW1lbnQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzUKIG1zZ2lkICJnaXQgY29tbWl0IFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBjb21taXQgW2ZsYWdnb3JdIFstLV0gPHPDtmt2w6RnPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOQorIzogYnVpbHRpbi9jb21taXQuYzo0MAogbXNnaWQgImdpdCBzdGF0dXMgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IHN0YXR1cyBbZmxhZ2dvcl0gWy0tXSA8c8O2a3bDpGc+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjQ1CiBtc2dpZCAiIgogIllvdXIgbmFtZSBhbmQgZW1haWwgYWRkcmVzcyB3ZXJlIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSBiYXNlZFxuIgogIm9uIHlvdXIgdXNlcm5hbWUgYW5kIGhvc3RuYW1lLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGV5IGFyZSBhY2N1cmF0ZS5cbiIKQEAgLTM1MzMsNyArMzg4NSw3IEBACiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbWVuZCAtLXJlc2V0LWF1dGhvclxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU2CisjOiBidWlsdGluL2NvbW1pdC5jOjU3CiBtc2dpZCAiIgogIllvdSBhc2tlZCB0byBhbWVuZCB0aGUgbW9zdCByZWNlbnQgY29tbWl0LCBidXQgZG9pbmcgc28gd291bGQgbWFrZVxuIgogIml0IGVtcHR5LiBZb3UgY2FuIHJlcGVhdCB5b3VyIGNvbW1hbmQgd2l0aCAtLWFsbG93LWVtcHR5LCBvciB5b3UgY2FuXG4iCkBAIC0zNTQzLDEwOSArMzg5NSwxMjcgQEAKICJibGlyIGRlbiB0b20uIER1IGthbiBrw7ZyYSBrb21tYW5kb3QgcMOlIG55dHQgbWVkIC0tYWxsb3ctZW1wdHksIGVsbGVyXG4iCiAic8OlIGthbiBkdSB0YSBib3J0IGluY2hlY2tuaW5nZW4gaGVsdCBtZWQgXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MgogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCiAiRGVuIHRpZGlnYXJlIFwiY2hlcnJ5LXBpY2tcIjplbiDDpHIgbnUgdG9tLCBrYW5za2UgcMOlIGdydW5kIGF2IGVuIGzDtnN0XG4iCiAia29uZmxpa3QuIE9tIGR1IHZpbGwgY2hlY2thIGluIGRlbiDDpG5kw6UgYW52w6RuZGVyIGR1OlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHlcbiIKICJcbiIKLSJBbm5hcnMgYW52w6RuZGVyIGR1IFwiZ2l0IHJlc2V0XCJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoyNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKK21zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKK21zZ3N0ciAiQW52w6RuZCBhbm5hcnMgXCJnaXQgcmVzZXRcIlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyCittc2dpZCAiIgorIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiVGhlbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgd2lsbCByZXN1bWUgY2hlcnJ5LXBpY2tpbmdcbiIKKyJ0aGUgcmVtYWluaW5nIGNvbW1pdHMuXG4iCittc2dzdHIgIiIKKyJPbSBkdSB2aWxsIGhvcHBhIMO2dmVyIGluY2hlY2tuaW5nZW4sIGFudsOkbmQ6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiBrb21tZXIgZMOkcmVmdGVyIGF0dCDDpXRlcnVwcHRhXG4iCisiY2hlcnJ5LXBpY2sgZsO2ciDDpXRlcnN0w6VlbmRlIGluY2hlY2tuaW5nYXIuXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6Mjc5CiBtc2dpZCAiZmFpbGVkIHRvIHVucGFjayBIRUFEIHRyZWUgb2JqZWN0IgogbXNnc3RyICJtaXNzbHlja2FkZXMgcGFja2EgdXBwIEhFQUQ6cyB0csOkZG9iamVrdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIxCiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgImt1bmRlIGludGUgc2thcGEgdGVtcG9yw6RyIGluZGV4ZmlsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwOAorIzogYnVpbHRpbi9jb21taXQuYzozMjcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICJpbnRlcmFrdGl2IHRpbGzDpGdnbmluZyBtaXNzbHlja2FkZXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzQxIGJ1aWx0aW4vY29tbWl0LmM6MzYyIGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjM2MCBidWlsdGluL2NvbW1pdC5jOjM4MSBidWlsdGluL2NvbW1pdC5jOjQzMQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgZmlsZW4gbmV3X2luZGV4IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5MworIzogYnVpbHRpbi9jb21taXQuYzo0MTIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBtZXJnZS4iCiBtc2dzdHIgImthbiBpbnRlIHV0ZsO2cmEgZW4gZGVsdmlzIGluY2hlY2tuaW5nIHVuZGVyIGVuIHNhbW1hbnNsYWduaW5nLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzozOTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDE0CiBtc2dpZCAiY2Fubm90IGRvIGEgcGFydGlhbCBjb21taXQgZHVyaW5nIGEgY2hlcnJ5LXBpY2suIgogbXNnc3RyICJrYW4gaW50ZSB1dGbDtnJhIGVuIGRlbHZpcyBpbmNoZWNrbmluZyB1bmRlciBlbiBjaGVycnktcGljay4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjQyNAogbXNnaWQgImNhbm5vdCByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2EgaW5kZXhldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrcml2YSB0ZW1wb3LDpHIgaW5kZXhmaWwiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTEzIGJ1aWx0aW4vY29tbWl0LmM6NTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjUzNSBidWlsdGluL2NvbW1pdC5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCiBtc2dzdHIgImZlbGFrdGlnIGluY2hlY2tuaW5nOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTYzCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAiZmVsZm9ybWFkIFwiLS1hdXRob3JcIi1mbGFnZ2EiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYyCisjOiBidWlsdGluL2NvbW1pdC5jOjU4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaWRlbnQgc3RyaW5nOiAnJXMnIgogbXNnc3RyICJGZWxha3RpZyBpbmRyYWduaW5nc3N0csOkbmc6IFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIHNsw6UgdXBwIGluY2hlY2tuaW5nZW4gJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEyIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiKHJlYWRpbmcgbG9nIG1lc3NhZ2UgZnJvbSBzdGFuZGFyZCBpbnB1dClcbiIKIG1zZ3N0ciAiKGzDpHNlciBsb2dnbWVkZGVsYW5kZSBmcsOlbiBzdGFuZGFyZCBpbilcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjM1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZyb20gc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgbG9nZyBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgbG9nZ2ZpbGVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJpbmNoZWNrbmluZ2VuIGhhciBldHQgdG9tdCBtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0MAorIzogYnVpbHRpbi9jb21taXQuYzo2NjEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgTUVSR0VfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0NAorIzogYnVpbHRpbi9jb21taXQuYzo2NjUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBTUVVBU0hfTVNHIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ4CisjOiBidWlsdGluL2NvbW1pdC5jOjY2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzMwCiBtc2dpZCAiY291bGQgbm90IHdyaXRlIGNvbW1pdCB0ZW1wbGF0ZSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgaW5jaGVja25pbmdzbWFsbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM2NjAsNyArNDAzMCw3IEBACiAiXHQlc1xuIgogIm9jaCBmw7Zyc8O2a2VyIGlnZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzI1CisjOiBidWlsdGluL2NvbW1pdC5jOjc0NgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiXG4iCkBAIC0zNjc1LDcgKzQwNDUsNyBAQAogIlx0JXNcbiIKICJvY2ggZsO2cnPDtmtlciBpZ2VuLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczNworIzogYnVpbHRpbi9jb21taXQuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM2ODUsNyArNDA1NSw3IEBACiAibWVkIFwiJWNcIiBrb21tZXIgaWdub3JlcmFzLCBvY2ggZXR0IHRvbXQgbWVkZGVsYW5kZSBhdmJyeXRlciAiCiAiaW5jaGVja25pbmdlbi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC0zNjk2LDEzOSArNDA2NiwxMzkgQEAKICJtZWQgXCIlY1wiIGtvbW1lciBiZWjDpWxsYXM7IGR1IGthbiBzasOkbHYgdGEgYm9ydCBkZW0gb20gZHUgdmlsbC5cbiIKICJFdHQgdG9tdCBtZWRkZWxhbmRlIGF2YnJ5dGVyIGluY2hlY2tuaW5nZW4uXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzU1CisjOiBidWlsdGluL2NvbW1pdC5jOjc3NgogIywgYy1mb3JtYXQKIG1zZ2lkICIlc0F1dGhvcjogICAgJXMiCiBtc2dzdHIgIiVzRsO2cmZhdHRhcmU6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgogbXNnc3RyICIlc0luY2hlY2thcmU6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MgorIzogYnVpbHRpbi9jb21taXQuYzo4MDMKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKIG1zZ3N0ciAiS2FuIGludGUgbMOkc2EgaW5kZXhldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODQ1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIkZlbCB2aWQgYnlnZ2FuZGUgYXYgdHLDpGQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODM0IGJ1aWx0aW4vdGFnLmM6MzU5CisjOiBidWlsdGluL2NvbW1pdC5jOjg2MCBidWlsdGluL3RhZy5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBtZXNzYWdlIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24uXG4iCiBtc2dzdHIgIkFuZ2UgbWVkZGVsYW5kZXQgZW4gYXYgZmxhZ2dvcm5hIC1tIGVsbGVyIC1GLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjkzMQorIzogYnVpbHRpbi9jb21taXQuYzo5NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gZXhpc3RpbmcgYXV0aG9yIGZvdW5kIHdpdGggJyVzJyIKIG1zZ3N0ciAiSGl0dGFkZSBpbmdlbiBiZWZpbnRsaWcgZsO2cmZhdHRhcmUgbWVkIFwiJXNcIiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjOiBidWlsdGluL2NvbW1pdC5jOjk3MiBidWlsdGluL2NvbW1pdC5jOjEyMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICJPZ2lsdGlndCBsw6RnZSBmw7ZyIG9zcMOlcmFkZSBmaWxlcjogXCIlc1wiIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk3NgorIzogYnVpbHRpbi9jb21taXQuYzoxMDA5Cittc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgorbXNnc3RyICItLWxvbmcgb2NoIC16IMOkciBpbmtvbXBhdGlibGEiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOQogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIkthbiBpbnRlIGFudsOkbmRhIGLDpWRlIC0tcmVzZXQtYXV0aG9yIG9jaCAtLWF1dGhvciIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5ODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MAogbXNnaWQgIllvdSBoYXZlIG5vdGhpbmcgdG8gYW1lbmQuIgogbXNnc3RyICJEdSBoYXIgaW5nZXQgYXR0IHV0w7ZrYS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkwCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZSAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICJEdSDDpHIgaSBtaXR0ZW4gYXYgZW4gc2FtbWFuc2xhZ25pbmcgLS0ga2FuIGludGUgdXTDtmthLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1NQogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNoZXJyeS1waWNrIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIkR1IMOkciBpIG1pdHRlbiBhdiBlbiBjaGVycnktcGljayAtLSBrYW4gaW50ZSB1dMO2a2EuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CiBtc2dpZCAiT3B0aW9ucyAtLXNxdWFzaCBhbmQgLS1maXh1cCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiRmxhZ2dvcm5hIC0tc3F1YXNoIG9jaCAtLWZpeHVwIGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNQorIzogYnVpbHRpbi9jb21taXQuYzoxMDY4CiBtc2dpZCAiT25seSBvbmUgb2YgLWMvLUMvLUYvLS1maXh1cCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIkVuZGFzdCBlbiBhdiAtYy8tQy8tRi8tLWZpeHVwIGthbiBhbnbDpG5kYXMuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3MAogbXNnaWQgIk9wdGlvbiAtbSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtYy8tQy8tRi8tLWZpeHVwLiIKIG1zZ3N0ciAiRmxhZ2dhbiAtbSBrYW4gaW50ZSBrb21iaW5lcmFzIG1lZCAtYy8tQy8tRi8tLWZpeHVwLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDE1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKIG1zZ2lkICItLXJlc2V0LWF1dGhvciBjYW4gYmUgdXNlZCBvbmx5IHdpdGggLUMsIC1jIG9yIC0tYW1lbmQuIgogbXNnc3RyICItLXJlc2V0LWF1dGhvciBrYW4gZW5kYXN0IGFudsOkbmRhcyBtZWQgLUMsIC1jIGVsbGVyIC0tYW1lbmQuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NQogbXNnaWQgIk9ubHkgb25lIG9mIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAiIgogIkVuZGFzdCBlbiBhdiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBrYW4gYW52w6RuZGFzLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTcKIG1zZ2lkICJObyBwYXRocyB3aXRoIC0taW5jbHVkZS8tLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIkR1IG3DpXN0ZSBhbmdlIHPDtmt2w6RnYXIgdGlsbHNhbW1hbnMgbWVkIC0taW5jbHVkZS8tLW9ubHkuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5OQogbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCiBtc2dzdHIgIlNtYXJ0Li4uIHV0w7ZrYSBkZW4gc2VuYXN0ZSBtZWQgc211dHNpZ3QgaW5kZXguIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMQogbXNnaWQgIkV4cGxpY2l0IHBhdGhzIHNwZWNpZmllZCB3aXRob3V0IC1pIG5vciAtbzsgYXNzdW1pbmcgLS1vbmx5IHBhdGhzLi4uIgogbXNnc3RyICJFeHBsaWNpdGEgc8O2a3bDpGdhciBhbmdhdnMgdXRhbiAtaSBlbGxlciAtbzsgYW50YXIgLS1vbmx5IHPDtmt2w6RnYXIuLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA0OCBidWlsdGluL3RhZy5jOjU3NQorIzogYnVpbHRpbi9jb21taXQuYzoxMTExIGJ1aWx0aW4vdGFnLmM6NTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgY2xlYW51cCBtb2RlICVzIgogbXNnc3RyICJGZWxha3RpZ3Qgc3TDpGRuaW5nc2zDpGdlICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTExNgogbXNnaWQgIlBhdGhzIHdpdGggLWEgZG9lcyBub3QgbWFrZSBzZW5zZS4iCiBtc2dzdHIgIkthbiBpbnRlIGFuZ2Ugc8O2a3bDpGdhciBtZWQgLWEuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTkgYnVpbHRpbi9jb21taXQuYzoxMTk0Ci1tc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgotbXNnc3RyICItLWxvbmcgb2NoIC16IMOkciBpbmtvbXBhdGlibGEiCi0KLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NCBidWlsdGluL2NvbW1pdC5jOjEzOTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyMiBidWlsdGluL2NvbW1pdC5jOjE0NTUKIG1zZ2lkICJzaG93IHN0YXR1cyBjb25jaXNlbHkiCi1tc2dzdHIgInZpcyBrb25jaXMgc3RhdHVzIgorbXNnc3RyICJ2aXNhIGtvbmNpcyBzdGF0dXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE1NiBidWlsdGluL2NvbW1pdC5jOjEzOTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNCBidWlsdGluL2NvbW1pdC5jOjE0NTcKIG1zZ2lkICJzaG93IGJyYW5jaCBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAidmlzYSBpbmZvcm1hdGlvbiBvbSBncmVuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTggYnVpbHRpbi9jb21taXQuYzoxMzk0IGJ1aWx0aW4vcHVzaC5jOjQyNgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI2IGJ1aWx0aW4vY29tbWl0LmM6MTQ1OSBidWlsdGluL3B1c2guYzo0NTIKIG1zZ2lkICJtYWNoaW5lLXJlYWRhYmxlIG91dHB1dCIKIG1zZ3N0ciAibWFza2lubMOkc2JhciB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2MSBidWlsdGluL2NvbW1pdC5jOjEzOTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyOSBidWlsdGluL2NvbW1pdC5jOjE0NjEKIG1zZ2lkICJzaG93IHN0YXR1cyBpbiBsb25nIGZvcm1hdCAoZGVmYXVsdCkiCiBtc2dzdHIgInZpc2Egc3RhdHVzIGkgbMOlbmd0IGZvcm1hdCAoc3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjQgYnVpbHRpbi9jb21taXQuYzoxMzk5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzIgYnVpbHRpbi9jb21taXQuYzoxNDY0CiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCiBtc2dzdHIgInRlcm1pbmVyYSBwb3N0ZXIgbWVkIE5VTCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUzCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU2IGJ1aWx0aW4vdGFnLmM6NDU5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzQgYnVpbHRpbi9jb21taXQuYzoxNDY3IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAgYnVpbHRpbi90YWcuYzo0NTkKIG1zZ2lkICJtb2RlIgogbXNnc3RyICJsw6RnZSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjM1IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAidmlzYSBvc3DDpXJhZGUgZmlsZXIsIHZhbGZyaWEgbMOkZ2VuOiBhbGxhLCBub3JtYWwsIG5vLiAoU3RhbmRhcmQ6IGFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjM4CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJ2aXNhIGlnbm9yZXJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MSBwYXJzZS1vcHRpb25zLmg6MTUxCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzkgcGFyc2Utb3B0aW9ucy5oOjE1NAogbXNnaWQgIndoZW4iCiBtc2dzdHIgIm7DpHIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCiBtc2dpZCAiIgogImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihEZWZhdWx0OiBhbGwpIgpAQCAtMzgzNiwyMTcgKzQyMDYsMjE3IEBACiAiaWdub3JlcmEgw6RuZHJpbmdhciBpIHVuZGVybW9kdWxlciwgdmFsZnJpdHQgbsOkcjogYWxsLCBkaXJ0eSwgdW50cmFja2VkLiAiCiAiKERlZmF1bHQ6IGFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCiBtc2dpZCAibGlzdCB1bnRyYWNrZWQgZmlsZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAidmlzYSBvc3DDpXJhZGUgZmlsZXIgaSBzcGFsdGVyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMwogbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgImt1bmRlIGludGUgc2zDpSB1cHAgZW4gcHJlY2lzIHNrYXBhZCBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgImt1bmRlIGludGUgdG9sa2EgZW4gcHJlY2lzIHNrYXBhZCBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTYKIG1zZ2lkICJkZXRhY2hlZCBIRUFEIgogbXNnc3RyICJmcsOlbmtvcHBsYWQgSEVBRCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTgKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKIG1zZ3N0ciAiIChyb3RpbmNoZWNrbmluZykiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDI1CiBtc2dpZCAic3VwcHJlc3Mgc3VtbWFyeSBhZnRlciBzdWNjZXNzZnVsIGNvbW1pdCIKIG1zZ3N0ciAidW5kZXJ0cnljayBzYW1tYW5mYXR0bmluZyBlZnRlciBmcmFtZ8OlbmdzcmlrIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgogbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAidmlzYSBkaWZmIGkgbWFsbGVuIGbDtnIgaW5jaGVja25pbmdzbWVkZGVsYW5kZXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2MworIzogYnVpbHRpbi9jb21taXQuYzoxNDI4CiBtc2dpZCAiQ29tbWl0IG1lc3NhZ2Ugb3B0aW9ucyIKIG1zZ3N0ciAiQWx0ZXJuYXRpdiBmw7ZyIGluY2hlY2tuaW5nc21lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDI5IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAibMOkcyBtZWRkZWxhbmRlIGZyw6VuIGZpbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzAKIG1zZ2lkICJhdXRob3IiCiBtc2dzdHIgImbDtnJmYXR0YXJlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgogbXNnc3RyICLDtnZlcnN0eXIgZsO2cmZhdHRhcmUgZsO2ciBpbmNoZWNrbmluZ2VuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjYgYnVpbHRpbi9nYy5jOjE3OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDMxIGJ1aWx0aW4vZ2MuYzoxNzgKIG1zZ2lkICJkYXRlIgogbXNnc3RyICJkYXR1bSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEKIG1zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCiBtc2dzdHIgIsO2dmVyc3R5ciBkYXR1bSBmw7ZyIGluY2hlY2tuaWduZW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NyBidWlsdGluL21lcmdlLmM6MjA4IGJ1aWx0aW4vbm90ZXMuYzo1MzMKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTAgYnVpbHRpbi90YWcuYzo0NTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMiBidWlsdGluL21lcmdlLmM6MjIzIGJ1aWx0aW4vbm90ZXMuYzo0MDUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjIgYnVpbHRpbi90YWcuYzo0NTUKIG1zZ2lkICJtZXNzYWdlIgogbXNnc3RyICJtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMgogbXNnaWQgImNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJpbmNoZWNrbmluZ3NtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMwogbXNnaWQgInJldXNlIGFuZCBlZGl0IG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLDpXRlcmFudsOkbmQgb2NoIHJlZGlnZXJhIG1lZGRlbGFuZGUgZnLDpW4gYW5naXZlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzQKIG1zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiw6V0ZXJhbnbDpG5kIG1lZGRlbGFuZGUgZnLDpW4gYW5naXZlbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBmaXh1cCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICIiCiAiYW52w6RuZCBhdXRvc3F1YXNoLWZvcm1hdGVyYXQgbWVkZGVsYW5kZSBmw7ZyIGF0dCBmaXhhIGFuZ2l2ZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM2CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJhbnbDpG5kIGF1dG9zcXVhc2gtZm9ybWF0ZXJhdCBtZWRkZWxhbmRlIGbDtnIgYXR0IHNsw6UgaWhvcCBtZWQgYW5naXZlbiAiCiAiaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MgorIzogYnVpbHRpbi9jb21taXQuYzoxNDM3CiBtc2dpZCAidGhlIGNvbW1pdCBpcyBhdXRob3JlZCBieSBtZSBub3cgKHVzZWQgd2l0aCAtQy8tYy8tLWFtZW5kKSIKIG1zZ3N0ciAiamFnIMOkciBudSBmw7ZyZmF0dGFyZSBhdiBpbmNoZWNrbmluZ2VuIChhbnbDpG5kcyBtZWQgLUMvLWMvLS1hbWVuZCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MyBidWlsdGluL2xvZy5jOjExMDQgYnVpbHRpbi9yZXZlcnQuYzoxMDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKIG1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCiBtc2dzdHIgImzDpGdnIHRpbGwgU2lnbmVkLW9mZi1ieToiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM5CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICJhbnbDpG5kIGFuZ2l2ZW4gbWFsbGZpbCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDAKIG1zZ2lkICJmb3JjZSBlZGl0IG9mIGNvbW1pdCIKIG1zZ3N0ciAidHZpbmdhIHJlZGlnZXJpbmcgYXYgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAic3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NiBidWlsdGluL3RhZy5jOjQ2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxIGJ1aWx0aW4vdGFnLmM6NDYwCiBtc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKIG1zZ3N0ciAiaHVyIGJsYW5rc3RlZyBvY2ggI2tvbW1lbnRhcmVyIHNrYWxsIHRhcyBib3J0IGZyw6VuIG1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NworIzogYnVpbHRpbi9jb21taXQuYzoxNDQyCiBtc2dpZCAiaW5jbHVkZSBzdGF0dXMgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgImlua2x1ZGVyYSBzdGF0dXMgaSBtYWxsZW4gZsO2ciBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc4IGJ1aWx0aW4vbWVyZ2UuYzoyMTUgYnVpbHRpbi90YWcuYzo0NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MyBidWlsdGluL21lcmdlLmM6MjMwIGJ1aWx0aW4vdGFnLmM6NDYxCiBtc2dpZCAia2V5IGlkIgogbXNnc3RyICJueWNrZWwtaWQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3OSBidWlsdGluL21lcmdlLmM6MjE2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDQgYnVpbHRpbi9tZXJnZS5jOjIzMQogbXNnaWQgIkdQRyBzaWduIGNvbW1pdCIKIG1zZ3N0ciAiR1BHLXNpZ25lcmEgaW5jaGVja25pbmciCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NwogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICJBbHRlcm5hdGl2IGbDtnIgaW5jaGVja25pbmdlbnMgaW5uZWjDpWxsIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OAogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKIG1zZ3N0ciAiY2hlY2thIGluIGFsbGEgw6RuZHJhZGUgZmlsZXIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICJsw6RnZyB0aWxsIGFuZ2l2bmEgZmlsZXIgdGlsbCBpbmRleGV0IGbDtnIgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgImzDpGdnIHRpbGwgZmlsZXIgaW50ZXJha3RpdnQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDUxCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgY2hhbmdlcyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCDDpG5kcmluZ2FyIGludGVyYWt0aXZ0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MgogbXNnaWQgImNvbW1pdCBvbmx5IHNwZWNpZmllZCBmaWxlcyIKIG1zZ3N0ciAiY2hlY2thIGVuZGFzdCBpbiBhbmdpdm5hIGZpbGVyIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1MwogbXNnaWQgImJ5cGFzcyBwcmUtY29tbWl0IGhvb2siCiBtc2dzdHIgImbDtnJiaWfDpSBwcmUtY29tbWl0LWtyb2siCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU0CiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAidmlzYSB2YWQgc29tIHNrdWxsZSBjaGVja2FzIGluIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NQogbXNnaWQgImFtZW5kIHByZXZpb3VzIGNvbW1pdCIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBmw7ZyZWfDpWVuZGUgaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CiBtc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgogbXNnc3RyICJmw7ZyYmlnw6UgcG9zdC1yZXdyaXRlLWtyb2siCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDcxCiBtc2dpZCAib2sgdG8gcmVjb3JkIGFuIGVtcHR5IGNoYW5nZSIKIG1zZ3N0ciAib2sgYXR0IHJlZ2lzdHJlcmEgZW4gdG9tIMOkbmRyaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3NAogbXNnaWQgIm9rIHRvIHJlY29yZCBhIGNoYW5nZSB3aXRoIGFuIGVtcHR5IG1lc3NhZ2UiCiBtc2dzdHIgIm9rIGF0dCByZWdpc3RyZXJhIGVuIMOkbmRyaW5nIG1lZCB0b210IG1lZGRlbGFuZGUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNTA3CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICJrdW5kZSBpbnRlIHRvbGthIEhFQUQ6cyBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDc5IGJ1aWx0aW4vbWVyZ2UuYzo1MTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NSBidWlsdGluL21lcmdlLmM6NTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBvcGVuICclcycgZm9yIHJlYWRpbmciCiBtc2dzdHIgImt1bmRlIGludGUgw7ZwcG5hIFwiJXNcIiBmw7ZyIGzDpHNuaW5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICJUcmFzaWcgTUVSR0VfSEVBRC1maWwgKCVzKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDkzCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTkKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NT0RFIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhIE1FUkdFX01PREUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUxMgorIzogYnVpbHRpbi9jb21taXQuYzoxNTc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBpbmNoZWNrbmluZ3NtZWRkZWxhbmRlOiAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTI2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWJvcnRpbmcgY29tbWl0OyB5b3UgZGlkIG5vdCBlZGl0IHRoZSBtZXNzYWdlLlxuIgogbXNnc3RyICJBdmJyeXRlciBpbmNoZWNrbmluZzsgbWVkZGVsYW5kZXQgaW50ZSByZWRpZ2VyYXQuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIkF2YnJ5dGVyIHDDpSBncnVuZCBhdiB0b210IGluY2hlY2tuaW5nc21lZGRlbGFuZGUuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKIG1zZ3N0ciAia3VuZGUgaW50ZSBza3JpdmEgaW5jaGVja25pbmdzb2JqZWt0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NjcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzMwogbXNnaWQgImNhbm5vdCBsb2NrIEhFQUQgcmVmIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpXNhIEhFQUQtcmVmZXJlbnMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNjM3CiBtc2dpZCAiY2Fubm90IHVwZGF0ZSBIRUFEIHJlZiIKIG1zZ3N0ciAia3VuZGUgaW50ZSB1cHBkYXRlcmEgSEVBRC1yZWZlcmVucyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NDgKIG1zZ2lkICIiCiAiUmVwb3NpdG9yeSBoYXMgYmVlbiB1cGRhdGVkLCBidXQgdW5hYmxlIHRvIHdyaXRlXG4iCiAibmV3X2luZGV4IGZpbGUuIENoZWNrIHRoYXQgZGlzayBpcyBub3QgZnVsbCBvciBxdW90YSBpc1xuIgpAQCAtNDA2MSwxNzEgKzQ0MzEsMTgzIEBACiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCiBtc2dzdHIgImdpdCBjb25maWcgW2ZsYWdnb3JdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUxCisjOiBidWlsdGluL2NvbmZpZy5jOjUyCiBtc2dpZCAiQ29uZmlnIGZpbGUgbG9jYXRpb24iCiBtc2dzdHIgIktvbmZpZ3VyYXRpb25zZmlsZW5zIHBsYXRzIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjUzCiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAiYW52w6RuZCBnbG9iYWwga29uZmlndXJhdGlvbnNmaWwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKIG1zZ2lkICJ1c2Ugc3lzdGVtIGNvbmZpZyBmaWxlIgogbXNnc3RyICJhbnbDpG5kIHN5c3RlbWV0cyBrb25maWd1cmF0aW9uc2ZpbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NAorIzogYnVpbHRpbi9jb25maWcuYzo1NQogbXNnaWQgInVzZSByZXBvc2l0b3J5IGNvbmZpZyBmaWxlIgogbXNnc3RyICJhbnbDpG5kIGFya2l2ZXRzIGtvbmZpZ3VyYXRpb25zZmlsIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU1CisjOiBidWlsdGluL2NvbmZpZy5jOjU2CiBtc2dpZCAidXNlIGdpdmVuIGNvbmZpZyBmaWxlIgogbXNnc3RyICJhbnbDpG5kIGFuZ2l2ZW4ga29uZmlndXJhdGlvbnNpbCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NgorIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgImJsb2ItaWQiCittc2dzdHIgImJsb2ItaWQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IgorbXNnc3RyICJsw6RzIGtvbmZpZ3VyYXRpb24gZnLDpW4gZ2l2ZXQgYmxvYi1vYmpla3QiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKIG1zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIsOFdGfDpHJkIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImjDpG10YSB2w6RyZGU6IG5hbW4gW3bDpHJkZS1yZWd1dHRyXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OAorIzogYnVpbHRpbi9jb25maWcuYzo2MAogbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiaMOkbXRhIGFsbGEgdsOkcmRlbjogbnlja2VsIFt2w6RyZGUtcmVndXR0cl0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKIG1zZ2lkICJnZXQgdmFsdWVzIGZvciByZWdleHA6IG5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAiaMOkbXRhIHbDpHJkZW4gZsO2ciByZWd1dHRyOiBuYW1uLXJlZ3V0dHIgW3bDpHJkZS1yZWd1dHRyXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MAorIzogYnVpbHRpbi9jb25maWcuYzo2MgogbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICJlcnPDpHR0IGFsbGEgbW90c3ZhcmFuZGUgdmFyaWFibGVyOiBuYW1uIHbDpHJkZSBbdsOkcmRlLXJlZ3V0dHJdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYxCisjOiBidWlsdGluL2NvbmZpZy5jOjYzCiBtc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgogbXNnc3RyICJsw6RnZyB0aWxsIGVuIG55IHZhcmlhYmVsOiBuYW1uIHbDpHJkZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MgorIzogYnVpbHRpbi9jb25maWcuYzo2NAogbXNnaWQgInJlbW92ZSBhIHZhcmlhYmxlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgInRhIGJvcnQgZW4gdmFyaWFiZWw6IG5hbW4gW3bDpHJkZS1yZWd1dHRyXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MworIzogYnVpbHRpbi9jb25maWcuYzo2NQogbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJ0YSBib3J0IGFsbGEgdHLDpGZmYXI6IG5hbW4gW3bDpHJkZS1yZWd1dHRyXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NAorIzogYnVpbHRpbi9jb25maWcuYzo2NgogbXNnaWQgInJlbmFtZSBzZWN0aW9uOiBvbGQtbmFtZSBuZXctbmFtZSIKIG1zZ3N0ciAiYnl0IG5hbW4gcMOlIHNla3Rpb246IGdhbW1hbHQtbmFtbiBueXR0LW5hbW4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKIG1zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgogbXNnc3RyICJ0YSBib3J0IGVuIHNla3Rpb246IG5hbW4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAidmlzYSBhbGxhIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY3CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAib3BlbiBhbiBlZGl0b3IiCiBtc2dzdHIgIsO2cHBuYSB0ZXh0cmVkaWdlcmluZ3Nwcm9ncmFtIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzAgYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgInNsb3QiCiBtc2dzdHIgInBsYXRzIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4CisjOiBidWlsdGluL2NvbmZpZy5jOjcwCiBtc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICJoaXR0YSBkZW4gaW5zdMOkbGxkYSBmw6RyZ2VuOiBbZGVmYXVsdF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjkKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJmaW5kIHRoZSBjb2xvciBzZXR0aW5nOiBbc3Rkb3V0LWlzLXR0eV0iCiBtc2dzdHIgImhpdHRhIGbDpHJnaW5zdMOkbGxuaW5nZW46IFtzdGRvdXQtaXMtdHR5XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MAorIzogYnVpbHRpbi9jb25maWcuYzo3MgogbXNnaWQgIlR5cGUiCiBtc2dzdHIgIlR5cCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3MwogbXNnaWQgInZhbHVlIGlzIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiIKIG1zZ3N0ciAidsOkcmRldCDDpHIgXCJ0cnVlXCIgZWxsZXIgXCJmYWxzZVwiIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcyCisjOiBidWlsdGluL2NvbmZpZy5jOjc0CiBtc2dpZCAidmFsdWUgaXMgZGVjaW1hbCBudW1iZXIiCiBtc2dzdHIgInbDpHJkZXQgw6RyIGV0dCBkZWNpbWFsdCB0YWwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKIG1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgInbDpHJkZXQgw6RyIC0tYm9vbCBlbGxlciAtLWludCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NAorIzogYnVpbHRpbi9jb25maWcuYzo3NgogbXNnaWQgInZhbHVlIGlzIGEgcGF0aCAoZmlsZSBvciBkaXJlY3RvcnkgbmFtZSkiCiBtc2dzdHIgInbDpHJkZXQgw6RyIGVuIHPDtmt2w6RnIChmaWwtIGVsbGVyIGthdGFsb2duYW1uKSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3NwogbXNnaWQgIk90aGVyIgogbXNnc3RyICJBbmRyYSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NgorIzogYnVpbHRpbi9jb25maWcuYzo3OAogbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAidGVybWluZXJhIHbDpHJkZW4gbWVkIE5VTC1ieXRlIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc3CisjOiBidWlsdGluL2NvbmZpZy5jOjc5CiBtc2dpZCAicmVzcGVjdCBpbmNsdWRlIGRpcmVjdGl2ZXMgb24gbG9va3VwIgogbXNnc3RyICJyZXNwZWt0ZXJhIGlua2x1ZGVyaW5nc2RpcmVrdGl2IHZpZCB1cHBzbGFnIgogCiAjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo4MgotbXNnaWQgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCi1tc2dzdHIgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCittc2dpZCAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKK21zZ3N0ciAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1CisjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NworbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKK21zZ3N0ciAic2tyaXYgc3Rvcmxla2FyIGkgbcOkbm5pc2tvbMOkc2JhcnQgZm9ybWF0IgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbZmxhZ2dvcl0gPGluY2hlY2tuaW5nLWlndD4qIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFtmbGFnZ29yXSAtLWRpcnR5IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjMzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgbm90IGF2YWlsYWJsZSIKIG1zZ3N0ciAiZGVuIGFubm90ZXJhZGUgdGFnZ2VuICVzIGludGUgdGlsbGfDpG5nbGlnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgaGFzIG5vIGVtYmVkZGVkIG5hbWUiCiBtc2dzdHIgImRlbiBhbm5vdGVyYWRlIHRhZ2dlbiAlcyBoYXIgaW5nZXQgaW5iw6RkZGF0IG5hbW4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgaXMgcmVhbGx5ICclcycgaGVyZSIKIG1zZ3N0ciAidGFnZ2VuIFwiJXNcIiDDpHIgaSB2ZXJrbGlnaGV0ZW4gXCIlc1wiIGjDpHIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIk9iamVrdG5hbW5ldCDDpHIgaW50ZSBnaWx0aWd0OiAlcyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiJXMgw6RyIGludGUgZXR0IGdpbHRpZ3QgXCIlc1wiLW9iamVrdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0YWcgZXhhY3RseSBtYXRjaGVzICclcyciCiBtc2dzdHIgImluZ2VuIHRhZ2cgbW90c3ZhcmFyIFwiJXNcIiBleGFrdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI4OAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJzZWFyY2hpbmcgdG8gZGVzY3JpYmUgJXNcbiIKIG1zZ3N0ciAic8O2a2VyIGbDtnIgYXR0IGJlc2tyaXZhICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMjgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozMzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmluaXNoZWQgc2VhcmNoIGF0ICVzXG4iCiBtc2dzdHIgImF2c2x1dGFkZSBzw7ZrbmluZyBww6UgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1MgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM1OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiTm8gYW5ub3RhdGVkIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00MjM0LDcgKzQ2MTYsNyBAQAogIkluZ2EgYW5ub3RlcmFkZSB0YWdnYXIga2FuIGJlc2tyaXZhIFwiJXNcIi5cbiIKICJEZXQgZmlubnMgZG9jayBvYW5ub3RlcmFkZSB0YWdnYXI6IHRlc3RhIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00MjQzLDEyICs0NjI1LDEyIEBACiAiSW5nYSB0YWdnYXIga2FuIGJlc2tyaXZhIFwiJXNcIi5cbiIKICJUZXN0YSAtLWFsd2F5cywgZWxsZXIgc2thcGEgbsOlZ3JhIHRhZ2dhci4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgInRyYXZlcnNlcmFkZSAlbHUgaW5jaGVja25pbmdhclxuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzgwCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJtb3JlIHRoYW4gJWkgdGFncyBmb3VuZDsgbGlzdGVkICVpIG1vc3QgcmVjZW50XG4iCkBAIC00MjU3LDU5ICs0NjM5LDYzIEBACiAibWVyIMOkbiAlaSB0YWdnYXIgaGl0dGFkZXM7IGxpc3RhciBkZSAlaSBzZW5hc3RlXG4iCiAiZ2F2IHVwcCBzw7ZrbmluZ2VuIHZpZCAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CiBtc2dpZCAiZmluZCB0aGUgdGFnIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGNvbW1pdCIKIG1zZ3N0ciAiaGl0dGEgdGFnZ2VuIHNvbSBrb21tZXIgZWZ0ZXIgaW5jaGVja25pbmdlbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMAogbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCiBtc2dzdHIgImZlbHPDtmsgc8O2a3N0cmF0ZWdpbiBww6Ugc3RhbmRhcmQgZmVsIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA0CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCiBtc2dpZCAidXNlIGFueSByZWYiCiBtc2dzdHIgImFudsOkbmQgYWxsYSByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEyCiBtc2dpZCAidXNlIGFueSB0YWcsIGV2ZW4gdW5hbm5vdGF0ZWQiCiBtc2dzdHIgImFudsOkbmQgYWxsYSB0YWdnYXIsIMOkdmVuIG9hbm5vdGVyYWRlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAiYW52w6RuZCBhbGx0aWQgbMOlbmd0IGZvcm1hdCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNAorbXNnaWQgIm9ubHkgZm9sbG93IGZpcnN0IHBhcmVudCIKK21zZ3N0ciAiZsO2bGogZW5kYXN0IGbDtnJzdGEgZsO2csOkbGRlcm4iCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKIG1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgogbXNnc3RyICJza3JpdiBlbmRhc3QgdXQgZXhha3RhIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE5CiBtc2dpZCAiY29uc2lkZXIgPG4+IG1vc3QgcmVjZW50IHRhZ3MgKGRlZmF1bHQ6IDEwKSIKIG1zZ3N0ciAiw7Z2ZXJ2w6RnIGRlIDxuPiBueWFzdGUgdGFnZ2FybmEgKHN0YW5kYXJkOiAxMCkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICLDtnZlcnbDpGcgZW5kYXN0IHRhZ2dhciBzb20gbW90c3ZhcmFyIDxtw7Zuc3Rlcj4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCiBtc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgogbXNnc3RyICJ2aXNhIGbDtnJrb3J0YWRlIGluY2hlY2tuaW5nc29iamVrdCBzb20gc3RhbmRhcmQiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICJtw6Rya2UiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgImzDpGdnIHRpbGwgPG3DpHJrZT4gcMOlIGxvcnRpZ3QgYXJiZXRzdHLDpGQgKHN0YW5kYXJkOiBcIi1kaXJ0eVwiKSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQzNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ0MwogbXNnaWQgIi0tbG9uZyBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFiYnJldj0wIgogbXNnc3RyICItLWxvbmcgw6RyIGlua29tcGF0aWJlbCBtZWQgLS1hYmJyZXY9MCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICJJbmdhIG5hbW4gaGl0dGFkZXMsIGthbiBpbnRlIGJlc2tyaXZhIG7DpWdvdC4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKIG1zZ3N0ciAiLS1kaXJ0eSDDpHIgaW5rb21wYXRpYmVsdCBtZWQgXCJjb21taXR0aXNoXCItdsOkcmRlbiIKIApAQCAtNDMxOCwzMSArNDcwNCwyNiBAQAogbXNnaWQgIiclcyc6IG5vdCBhIHJlZ3VsYXIgZmlsZSBvciBzeW1saW5rIgogbXNnc3RyICJcIiVzXCI6IGludGUgZW4gbm9ybWFsIGZpbCBlbGxlciBzeW1ib2xpc2sgbMOkbmsiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjIyOAorIzogYnVpbHRpbi9kaWZmLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb3B0aW9uOiAlcyIKIG1zZ3N0ciAib2dpbHRpZyBmbGFnZ2E6ICVzIgogCi0jOiBidWlsdGluL2RpZmYuYzozMDUKKyM6IGJ1aWx0aW4vZGlmZi5jOjMwNwogbXNnaWQgIk5vdCBhIGdpdCByZXBvc2l0b3J5IgogbXNnc3RyICJJbnRlIGV0dCBnaXQtYXJraXYiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICJvYmpla3RldCBcIiVzXCIgc29tIGFuZ2F2cyDDpHIgZmVsYWt0aWd0LiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzUzCi0jLCBjLWZvcm1hdAotbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKLW1zZ3N0ciAibWVyIMOkbiAlZCB0csOkZCBhbmdhdnM6IFwiJXNcIiIKLQotIzogYnVpbHRpbi9kaWZmLmM6MzYzCisjOiBidWlsdGluL2RpZmYuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAibW9yZSB0aGFuIHR3byBibG9icyBnaXZlbjogJyVzJyIKIG1zZ3N0ciAibWVyIMOkbiB0dsOlIGJsb2JiYXIgYW5nYXZzOiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM3MQorIzogYnVpbHRpbi9kaWZmLmM6MzY2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuaGFuZGxlZCBvYmplY3QgJyVzJyBnaXZlbi4iCiBtc2dzdHIgImVqIGhhbnRlcmF0IG9iamVrdCBcIiVzXCIgYW5nYXZzLiIKQEAgLTQzNTEsMzkgKzQ3MzIsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LWZsYWdnb3JdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAidmlzYSBmw7ZybG9wcCBlZnRlciA8bj4gb2JqZWt0IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgogbXNnc3RyICJ2w6RsaiBoYW50ZXJpbmcgYXYgc2lnbmVyYWRlIHRhZ2dhciIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1NworIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY3MQogbXNnaWQgInNlbGVjdCBoYW5kbGluZyBvZiB0YWdzIHRoYXQgdGFnIGZpbHRlcmVkIG9iamVjdHMiCiBtc2dzdHIgInbDpGxqIGhhbnRlcmluZyBhdiB0YWdnYXIgc29tIGhhciB0YWdnZmlsdHJlcmFkZSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAiRHVtcCBtw6Rya2VuIHRpbGwgZmlsZW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzYKIG1zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCiBtc2dzdHIgIkltcG9ydGVyYSBtw6Rya2VuIGZyw6VuIGZpbGVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCiBtc2dzdHIgIkZlamthIHRhZ2dhcmUgbsOkciB0YWdnZW4gc2FrbmFyIGVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIlNrcml2IHV0IGhlbGEgdHLDpGRldCBmw7ZyIHZhcmplIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgyCiBtc2dpZCAiVXNlIHRoZSBkb25lIGZlYXR1cmUgdG8gdGVybWluYXRlIHRoZSBzdHJlYW0iCiBtc2dzdHIgIkFudsOkbmQgZG9uZS1mdW5rdGlvbmVuIGbDtnIgYXR0IGF2c2x1dGEgc3Ryw7ZtbWVuIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY5CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgogbXNnc3RyICJIb3BwYSDDtnZlciBza3Jpdm5pbmcgYXYgYmxvYi1kYXRhIgogCkBAIC00NDU5LDcgKzQ4NDAsNyBAQAogbXNnaWQgImNvbnZlcnQgdG8gYSBjb21wbGV0ZSByZXBvc2l0b3J5IgogbXNnc3RyICJrb252ZXJ0ZXJhIHRpbGwga29tcGxldHQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4OCBidWlsdGluL2xvZy5jOjExNzcKIG1zZ2lkICJkaXIiCiBtc2dzdHIgImthdCIKIApAQCAtNDQ3MSw3NiArNDg1Miw3NiBAQAogbXNnaWQgImRlZmF1bHQgbW9kZSBmb3IgcmVjdXJzaW9uIgogbXNnc3RyICJzdGFuZGFyZGzDpGdlIGbDtnIgcmVrdXJzaW9uIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIkt1bmRlIGludGUgaGl0dGEgZmrDpHJyLXJlZmVyZW5zZW4gSEVBRCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICJvYmpla3RldCAlcyBoaXR0YWRlcyBpbnRlIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJbw6Bqb3VyXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiISAlLSpzICUtKnMgLT4gJXMgIChrYW4gaW50ZSBow6RtdGEgaSBha3R1ZWxsIGdyZW4pIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc3IGJ1aWx0aW4vZmV0Y2guYzozNjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQogbXNnaWQgIltyZWplY3RlZF0iCiBtc2dzdHIgIltyZWZ1c2VyYWRdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjg4CisjOiBidWlsdGluL2ZldGNoLmM6MzA0CiBtc2dpZCAiW3RhZyB1cGRhdGVdIgogbXNnc3RyICJbdXBwZGF0ZXJhZCB0YWdnXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIChrdW5kZSBpbnRlIHVwcGRhdGVyYSBsb2thbCByZWYpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzA4CisjOiBidWlsdGluL2ZldGNoLmM6MzI0CiBtc2dpZCAiW25ldyB0YWddIgogbXNnc3RyICJbbnkgdGFnZ10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIltueSBncmVuXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMxNAorIzogYnVpbHRpbi9mZXRjaC5jOjMzMAogbXNnaWQgIltuZXcgcmVmXSIKIG1zZ3N0ciAiW255IHJlZl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJ1bmFibGUgdG8gdXBkYXRlIGxvY2FsIHJlZiIKIG1zZ3N0ciAia3VuZGUgaW50ZSB1cHBkYXRlcmEgbG9rYWwgcmVmIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAidHZpbmdhZCB1cHBkYXRlcmluZyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM2NQorIzogYnVpbHRpbi9mZXRjaC5jOjM4MQogbXNnaWQgIihub24tZmFzdC1mb3J3YXJkKSIKIG1zZ3N0ciAiKGVqIHNuYWJic3BvbGFkKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgImthbiBpbnRlIMO2cHBuYSAlczogJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIzogYnVpbHRpbi9mZXRjaC5jOjQyMQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCiBtc2dzdHIgIiVzIHPDpG5kZSBpbnRlIGFsbGEgbsO2ZHbDpG5kaWdhIG9iamVrdFxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDkxCisjOiBidWlsdGluL2ZldGNoLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICJGcsOlbiAlLipzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1MDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogInNvbWUgbG9jYWwgcmVmcyBjb3VsZCBub3QgYmUgdXBkYXRlZDsgdHJ5IHJ1bm5pbmdcbiIKQEAgLTQ1NDksNTUgKzQ5MzAsNTUgQEAKICJ2aXNzYSBsb2thbGEgcmVmZXJlbnNlciBrdW5kZSBpbnRlIHVwcGRhdGVyYXM7IHRlc3RhIGF0dCBrw7ZyYVxuIgogIiBcImdpdCByZW1vdGUgcHJ1bmUgJXNcIiBmw7ZyIGF0dCB0YSBib3J0IGdhbWxhIGdyZW5hciBzb20gc3TDpXIgaSBrb25mbGlrdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMga29tbWVyIGJsaSBkaW5nbGFuZGUpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTUzCisjOiBidWlsdGluL2ZldGNoLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICglcyBoYXMgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAgKCVzIGhhciBibGl2aXQgZGluZ2xhbmRlKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MAorIzogYnVpbHRpbi9mZXRjaC5jOjU4OQogbXNnaWQgIltkZWxldGVkXSIKIG1zZ3N0ciAiW2JvcnR0YWdlbl0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjEgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CisjOiBidWlsdGluL2ZldGNoLmM6NTkwIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQogbXNnaWQgIihub25lKSIKIG1zZ3N0ciAiKGluZ2VuKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIlbDpGdyYXIgaMOkbXRhIHRpbGwgYWt0dWVsbCBncmVuICVzIGkgZXR0IGlja2UtbmFrZXQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3MTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo3NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG9uJ3Qga25vdyBob3cgdG8gZmV0Y2ggZnJvbSAlcyIKIG1zZ3N0ciAiVmV0IGludGUgaHVyIG1hbiBow6RtdGFyIGZyw6VuICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIkZsYWdnYW4gXCIlc1wiIG9jaCB2w6RyZGV0IFwiJXNcIiDDpHIgaW50ZSBnaWx0aWd0IGbDtnIgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo3OTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo4MjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3B0aW9uIFwiJXNcIiBpcyBpZ25vcmVkIGZvciAlc1xuIgogbXNnc3RyICJGbGFnZ2FuIFwiJXNcIiBpZ25vcmVyYXMgZsO2ciAlc1xuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODk0CisjOiBidWlsdGluL2ZldGNoLmM6OTI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZldGNoaW5nICVzXG4iCiBtc2dzdHIgIkjDpG10YXIgJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg5NiBidWlsdGluL3JlbW90ZS5jOjEwMAorIzogYnVpbHRpbi9mZXRjaC5jOjkzMCBidWlsdGluL3JlbW90ZS5jOjEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmV0Y2ggJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgaMOkbXRhICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTE1CisjOiBidWlsdGluL2ZldGNoLmM6OTQ5CiBtc2dpZCAiIgogIk5vIHJlbW90ZSByZXBvc2l0b3J5IHNwZWNpZmllZC4gIFBsZWFzZSwgc3BlY2lmeSBlaXRoZXIgYSBVUkwgb3IgYVxuIgogInJlbW90ZSBuYW1lIGZyb20gd2hpY2ggbmV3IHJldmlzaW9ucyBzaG91bGQgYmUgZmV0Y2hlZC4iCkBAIC00NjA1LDMyICs0OTg2LDMyIEBACiAiSW5nZXQgZmrDpHJyYXJraXYgYW5nYXZzLiBBbmdlIGFudGluZ2VuIGVuIFVSTCBlbGxlciBuYW1uZXQgcMOlIGV0dFxuIgogImZqw6RycmFya2l2IHNvbSBueWEgaW5jaGVja25pbmdhciBza2FsbCBow6RtdGFzIGZyw6VuLiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjkzNQorIzogYnVpbHRpbi9mZXRjaC5jOjk2OQogbXNnaWQgIllvdSBuZWVkIHRvIHNwZWNpZnkgYSB0YWcgbmFtZS4iCiBtc2dzdHIgIkR1IG3DpXN0ZSBhbmdlIG5hbW5ldCBww6UgZW4gdGFnZy4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi0tZGVwdGggb2NoIC0tdW5zaGFsbG93IGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE3CiBtc2dpZCAiLS11bnNoYWxsb3cgb24gYSBjb21wbGV0ZSByZXBvc2l0b3J5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tdW5zaGFsbG93IGthbiBpbnRlIGFudsOkbmRhcyBww6UgZXR0IGtvbXBsZXR0IGFya2l2IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwMgorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzYKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCB0YWtlIGEgcmVwb3NpdG9yeSBhcmd1bWVudCIKIG1zZ3N0ciAiZmV0Y2ggLS1hbGwgdGFyIGludGUgbmFtbmV0IHDDpSBldHQgYXJraXYgc29tIGFyZ3VtZW50IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MTAwNAorIzogYnVpbHRpbi9mZXRjaC5jOjEwMzgKIG1zZ2lkICJmZXRjaCAtLWFsbCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgImZldGNoIC0tYWxsIGthbiBpbnRlIGFuZ2VzIG1lZCByZWZlcmVuc3NwZWNpZmlrYXRpb25lciIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgIkZqw6RycmVuIGVsbGVyIGZqw6RycmdydXBwZW4gZmlubnMgaW50ZTogJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDIzCisjOiBidWlsdGluL2ZldGNoLmM6MTA1NwogbXNnaWQgIkZldGNoaW5nIGEgZ3JvdXAgYW5kIHNwZWNpZnlpbmcgcmVmc3BlY3MgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGZyw6VuIGdydXBwIG9jaCBhbmdlIHJlZmVyZW5zc3BlY2lmaWthdGlvbmVyIgogCkBAIC00NjM5LDI5ICs1MDIwLDI5IEBACiBtc2dzdHIgIiIKICJnaXQgZm10LW1lcmdlLW1zZyBbLW0gPG1lZGRlbGFuZGU+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPGZpbD5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NTkgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYyIGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU2IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICJuIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjAKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NAogbXNnaWQgInBvcHVsYXRlIGxvZyB3aXRoIGF0IG1vc3QgPG4+IGVudHJpZXMgZnJvbSBzaG9ydGxvZyIKIG1zZ3N0ciAiZnlsbCBpIGxvZ2dlbiBtZWQgc29tIG1lc3QgPG4+IHBvc3RlciBmcsOlbiBzaG9ydGxvZyIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKIG1zZ2lkICJhbGlhcyBmb3IgLS1sb2cgKGRlcHJlY2F0ZWQpIgogbXNnc3RyICJhbGlhcyBmw7ZyIC0tbG9nIChhdnLDpWRzKSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY2CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzAKIG1zZ2lkICJ0ZXh0IgogbXNnc3RyICJ0ZXh0IgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MQogbXNnaWQgInVzZSA8dGV4dD4gYXMgc3RhcnQgb2YgbWVzc2FnZSIKIG1zZ3N0ciAiaW5sZWQgbWVkZGVsYW5kZSBtZWQgPHRleHQ+IgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjgKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MgogbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgogbXNnc3RyICJmaWwgYXR0IGzDpHNhIGZyw6VuIgogCkBAIC00ODAwLDIyMCArNTE4MSwyMjAgQEAKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImdyZXA6IG1pc3NseWNrYWRlcyBza2FwYSB0csOlZC4gJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjM2NQorIzogYnVpbHRpbi9ncmVwLmM6MzY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjaGRpcjogJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgYnl0YSBrYXRhbG9nIChjaGRpcik6ICVzIgogCi0jOiBidWlsdGluL2dyZXAuYzo0NDMgYnVpbHRpbi9ncmVwLmM6NDc4CisjOiBidWlsdGluL2dyZXAuYzo0NDIgYnVpbHRpbi9ncmVwLmM6NDc3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkIHRyZWUgKCVzKSIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSB0csOkZCAoJXMpIgogCi0jOiBidWlsdGluL2dyZXAuYzo0OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgogbXNnc3RyICJLdW5kZSBpbnRlIFwiZ3JlcFwiIGZyw6VuIG9iamVrdCBhdiB0eXBlbiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTUxCisjOiBidWlsdGluL2dyZXAuYzo1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAic3dpdGNoIGAlYycgZXhwZWN0cyBhIG51bWVyaWNhbCB2YWx1ZSIKIG1zZ3N0ciAiZmxhZ2dhbiBcIiVjXCIgYW50YXIgZXR0IG51bWVyaXNrdCB2w6RyZGUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU2OAorIzogYnVpbHRpbi9ncmVwLmM6NTY3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICclcyciCiBtc2dzdHIgImthbiBpbnRlIMO2cHBuYSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0MworIzogYnVpbHRpbi9ncmVwLmM6NjQyCiBtc2dpZCAic2VhcmNoIGluIGluZGV4IGluc3RlYWQgb2YgaW4gdGhlIHdvcmsgdHJlZSIKIG1zZ3N0ciAic8O2ayBpIGluZGV4ZXQgaXN0w6RsbGV0IGbDtnIgaSBhcmJldHNrYXRhbG9nZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NQorIzogYnVpbHRpbi9ncmVwLmM6NjQ0CiBtc2dpZCAiZmluZCBpbiBjb250ZW50cyBub3QgbWFuYWdlZCBieSBnaXQiCiBtc2dzdHIgInPDtmsgaSBpbm5laMOlbCBzb20gaW50ZSBoYW50ZXJhcyBhdiBnaXQiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NworIzogYnVpbHRpbi9ncmVwLmM6NjQ2CiBtc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICJzw7ZrIGkgYsOlZGUgc3DDpXJhZGUgb2NoIG9zcMOlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ5CisjOiBidWlsdGluL2dyZXAuYzo2NDgKIG1zZ2lkICJzZWFyY2ggYWxzbyBpbiBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJzw7ZrIMOkdmVuIGkgaWdub3JlcmFkZSBmaWxlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjUyCisjOiBidWlsdGluL2dyZXAuYzo2NTEKIG1zZ2lkICJzaG93IG5vbi1tYXRjaGluZyBsaW5lcyIKLW1zZ3N0ciAidmlzIHJhZGVyIHNvbSBpbnRlIHRyw6RmZmFzIgorbXNnc3RyICJ2aXNhIHJhZGVyIHNvbSBpbnRlIHRyw6RmZmFzIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MwogbXNnaWQgImNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmciCiBtc2dzdHIgInNraWZ0bMOkZ2Vzb2vDpG5zbGlnIHPDtmtuaW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NQogbXNnaWQgIm1hdGNoIHBhdHRlcm5zIG9ubHkgYXQgd29yZCBib3VuZGFyaWVzIgogbXNnc3RyICJtYXRjaGEgZW5kYXN0IG3Dtm5zdGVyIHZpZCBvcmRncsOkbnNlciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU4CisjOiBidWlsdGluL2dyZXAuYzo2NTcKIG1zZ2lkICJwcm9jZXNzIGJpbmFyeSBmaWxlcyBhcyB0ZXh0IgogbXNnc3RyICJoYW50ZXJhIGJpbsOkcmZpbGVyIHNvbSB0ZXh0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1OQogbXNnaWQgImRvbid0IG1hdGNoIHBhdHRlcm5zIGluIGJpbmFyeSBmaWxlcyIKIG1zZ3N0ciAidHLDpGZmYSBpbnRlIG3Dtm5zdGVyIGkgYmluw6RyZmlsZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MworIzogYnVpbHRpbi9ncmVwLmM6NjYyCiBtc2dpZCAiZGVzY2VuZCBhdCBtb3N0IDxkZXB0aD4gbGV2ZWxzIgogbXNnc3RyICJnw6Ugc29tIG1lc3QgbmVkIDxkanVwPiBuaXbDpWVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2NgogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJhbnbDpG5kIHV0w7ZrYWRlIFBPU0lYLXJlZ3VsasOkcmEgdXR0cnljayIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjcwCisjOiBidWlsdGluL2dyZXAuYzo2NjkKIG1zZ2lkICJ1c2UgYmFzaWMgUE9TSVggcmVndWxhciBleHByZXNzaW9ucyAoZGVmYXVsdCkiCiBtc2dzdHIgImFudsOkbmQgZ3J1bmRsw6RnZ2FuZGUgUE9TSVgtcmVndWxqw6RyYSB1dHRyeWNrIChzdGFuZGFyZCkiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MworIzogYnVpbHRpbi9ncmVwLmM6NjcyCiBtc2dpZCAiaW50ZXJwcmV0IHBhdHRlcm5zIGFzIGZpeGVkIHN0cmluZ3MiCiBtc2dzdHIgInRvbGthIG3Dtm5zdGVyIHNvbSBmaXhlcmFkZSBzdHLDpG5nYXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3NgorIzogYnVpbHRpbi9ncmVwLmM6Njc1CiBtc2dpZCAidXNlIFBlcmwtY29tcGF0aWJsZSByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICJhbnbDpG5kIFBlcmxrb21wYXRpYmxhIHJlZ3VsasOkcmEgdXR0cnljayIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njc5CisjOiBidWlsdGluL2dyZXAuYzo2NzgKIG1zZ2lkICJzaG93IGxpbmUgbnVtYmVycyIKIG1zZ3N0ciAidmlzYSByYWRudW1tZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6Njc5CiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgInZpc2EgaW50ZSBmaWxuYW1uIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJ2aXNhIGZpbG5hbW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MworIzogYnVpbHRpbi9ncmVwLmM6NjgyCiBtc2dpZCAic2hvdyBmaWxlbmFtZXMgcmVsYXRpdmUgdG8gdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAidmlzYSBmaWxuYW1uIHJlbGF0aXZhIHRpbGwgdG9wcGthdGFsb2dlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg1CisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGZpbG5hbW4gaXN0w6RsbGV0IGbDtnIgdHLDpGZmYWRlIHJhZGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICJzeW5vbnltIGbDtnIgLS1maWxlcy13aXRoLW1hdGNoZXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5MAorIzogYnVpbHRpbi9ncmVwLmM6Njg5CiBtc2dpZCAic2hvdyBvbmx5IHRoZSBuYW1lcyBvZiBmaWxlcyB3aXRob3V0IG1hdGNoIgogbXNnc3RyICJ2aXNhIGVuZGFzdCBuYW1uIHDDpSBmaWxlciB1dGFuIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MQogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgInNrcml2IE5VTCBlZnRlciBmaWxuYW1uIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MwogbXNnaWQgInNob3cgdGhlIG51bWJlciBvZiBtYXRjaGVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgInZpc2EgYW50YWwgdHLDpGZmYXIgaXN0w6RsbGV0IGbDtnIgdHLDpGZmYWRlIHJhZGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5NAogbXNnaWQgImhpZ2hsaWdodCBtYXRjaGVzIgogbXNnc3RyICJsanVzbWFya2VyYSB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk3CisjOiBidWlsdGluL2dyZXAuYzo2OTYKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAic2tyaXYgdG9tbWEgcmFkZXIgbWVsbGFuIHRyw6RmZmFyIGZyw6VuIG9saWthIGZpbGVyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5OAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgInZpc2EgZmlsbmFtbiBlbmRhc3QgZW4gZ8Olbmcgb3ZhbmbDtnIgdHLDpGZmYXIgZnLDpW4gc2FtbWEgZmlsIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwMQogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIGFuZCBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJ2aXNhIDxuPiByYWRlciBzYW1tYW5oYW5nIGbDtnJlIG9jaCBlZnRlciB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA1CisjOiBidWlsdGluL2dyZXAuYzo3MDQKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBtYXRjaGVzIgogbXNnc3RyICJ2aXNhIDxuPiByYWRlciBzYW1tYW5oYW5nIGbDtnJlIHRyw6RmZmFyIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNgogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAidmlzYSA8bj4gcmFkZXIgc2FtbWFuaGFuZyBlZnRlciB0csOkZmZhciIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA4CisjOiBidWlsdGluL2dyZXAuYzo3MDcKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICJnZW52w6RnIGbDtnIgLUMgTlVNIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMAogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgInZpc2EgZW4gcmFkIG1lZCBmdW5rdGlvbnNuYW1uZXQgZsO2cmUgdHLDpGZmZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMworIzogYnVpbHRpbi9ncmVwLmM6NzEyCiBtc2dpZCAic2hvdyB0aGUgc3Vycm91bmRpbmcgZnVuY3Rpb24iCiBtc2dzdHIgInZpc2EgZGVuIG9ta3JpbmdsaWdnYW5kZSBmdW5rdGlvbmVuIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNQogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgogbXNnc3RyICJsw6RzIG3Dtm5zdGVyIGZyw6VuIGZpbCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2dyZXAuYzo3MTcKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgInRyw6RmZmEgPG3Dtm5zdGVyPiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzIwCisjOiBidWlsdGluL2dyZXAuYzo3MTkKIG1zZ2lkICJjb21iaW5lIHBhdHRlcm5zIHNwZWNpZmllZCB3aXRoIC1lIgogbXNnc3RyICJrb21iaW5lcmEgbcO2bnN0ZXIgc29tIGFuZ2VzIG1lZCAtZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMyCisjOiBidWlsdGluL2dyZXAuYzo3MzEKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAiYW5nZSB0csOkZmYgbWVkIHNsdXRzdGF0dXNrb2QgdXRhbiB1dGRhdGEiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNAorIzogYnVpbHRpbi9ncmVwLmM6NzMzCiBtc2dpZCAic2hvdyBvbmx5IG1hdGNoZXMgZnJvbSBmaWxlcyB0aGF0IG1hdGNoIGFsbCBwYXR0ZXJucyIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgdHLDpGZmYXIgZnLDpW4gZmlsZXIgc29tIHRyw6RmZmFyIGFsbGEgbcO2bnN0ZXIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjczNgorIzogYnVpbHRpbi9ncmVwLmM6NzM1CiBtc2dpZCAic2hvdyBwYXJzZSB0cmVlIGZvciBncmVwIGV4cHJlc3Npb24iCiBtc2dzdHIgInZpc2EgYW5hbHlzdHLDpGQgZsO2ciBncmVwLXV0dHJ5Y2siCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAicGFnZXIiCiBtc2dzdHIgImJsw6RkZHJhcmUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgInZpc2EgdHLDpGZmYWRlIGZpbGVyIGkgZmlsYmzDpGRkcmFyZW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MworIzogYnVpbHRpbi9ncmVwLmM6NzQyCiBtc2dpZCAiYWxsb3cgY2FsbGluZyBvZiBncmVwKDEpIChpZ25vcmVkIGJ5IHRoaXMgYnVpbGQpIgogbXNnc3RyICJ0aWxsw6V0IGFucm9wYSBncmVwKDEpIChpZ25vcmVyYXMgYXYgZGV0dGEgYnlnZ2UpIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDQgYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICJ2aXNhIGFudsOkbmRuaW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICJpbmdldCBtw7Zuc3RlciBhbmdhdnMuIgogCi0jOiBidWlsdGluL2dyZXAuYzo4NjYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg2NQogbXNnaWQgIi0tb3Blbi1maWxlcy1pbi1wYWdlciBvbmx5IHdvcmtzIG9uIHRoZSB3b3JrdHJlZSIKIG1zZ3N0ciAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIGZ1bmdlcmFyIGVuZGFzdCBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODg5CisjOiBidWlsdGluL2dyZXAuYzo4ODgKIG1zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgogbXNnc3RyICItLWNhY2hlZCBvY2ggLS11bnRyYWNrZWQga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLW5vLWluZGV4LiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk0CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLW5vLWluZGV4IG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggcmV2cy4iCiBtc2dzdHIgIi0tbm8taW5kZXggb2NoIC0tdW50cmFja2VkIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgcmV2aXNpb25lci4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg5NworIzogYnVpbHRpbi9ncmVwLmM6ODk2CiBtc2dpZCAiLS1bbm8tXWV4Y2x1ZGUtc3RhbmRhcmQgY2Fubm90IGJlIHVzZWQgZm9yIHRyYWNrZWQgY29udGVudHMuIgogbXNnc3RyICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBrYW4gaW50ZSBhbnbDpG5kYXMgZsO2ciBzcMOlcmF0IGlubmVow6VsbC4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjkwNQorIzogYnVpbHRpbi9ncmVwLmM6OTA0CiBtc2dpZCAiYm90aCAtLWNhY2hlZCBhbmQgdHJlZXMgYXJlIGdpdmVuLiIKIG1zZ3N0ciAiYsOlZGUgLS1jYWNoZWQgb2NoIHRyw6RkIGFuZ2F2cy4iCiAKQEAgLTUwNTMsMTAgKzU0MzQsMTQgQEAKIG1zZ2lkICJwcm9jZXNzIGZpbGUgYXMgaXQgd2VyZSBmcm9tIHRoaXMgcGF0aCIKIG1zZ3N0ciAiaGFudGVyYSBmaWxlbiBzb20gb20gZGVuIGtvbSBmcsOlbiBzw7ZrdsOkZ2VuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MgorIzogYnVpbHRpbi9oZWxwLmM6NDEKIG1zZ2lkICJwcmludCBhbGwgYXZhaWxhYmxlIGNvbW1hbmRzIgogbXNnc3RyICJ2aXNhIGFsbGEgdGlsbGfDpG5nbGlnYSBrb21tYW5kb24iCiAKKyM6IGJ1aWx0aW4vaGVscC5jOjQyCittc2dpZCAicHJpbnQgbGlzdCBvZiB1c2VmdWwgZ3VpZGVzIgorbXNnc3RyICJsaXN0YSBhbnbDpG5kYmFyYSB2w6RnbGVkbmluZ2FyIgorCiAjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgInZpc2EgbWFudWFsc2lkYSIKQEAgLTUwNzAsOCArNTQ1NSw4IEBACiBtc2dzdHIgInZpc2EgaW5mby1zaWRhIgogCiAjOiBidWlsdGluL2hlbHAuYzo1MgotbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tbWFufC0td2VifC0taW5mb10gW2NvbW1hbmRdIgotbXNnc3RyICJnaXQgaGVscCBbLS1hbGxdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtrb21tYW5kb10iCittc2dpZCAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKK21zZ3N0ciAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1ndWlkZXNdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtrb21tYW5kb10iCiAKICM6IGJ1aWx0aW4vaGVscC5jOjY0CiAjLCBjLWZvcm1hdApAQCAtNTEyNywyOTAgKzU1MTIsMzIyIEBACiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAiaW5nZW4gaW5mby12aXNhcmUgaGFudGVyYWRlIGbDtnJmcsOlZ2FuIgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjkgYnVpbHRpbi9oZWxwLmM6NDM2CisjOiBidWlsdGluL2hlbHAuYzo0MjAKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICJEZWZpbmllcmFyIGF0dHJpYnV0IHBlciBzw7ZrdsOkZyIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIxCittc2dpZCAiQSBHaXQgZ2xvc3NhcnkiCittc2dzdHIgIkVuIEdpdC1vcmRsaXN0YSIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIyCittc2dpZCAiU3BlY2lmaWVzIGludGVudGlvbmFsbHkgdW50cmFja2VkIGZpbGVzIHRvIGlnbm9yZSIKK21zZ3N0ciAiQW5nZSBhdnNpa3RsaWdlbiBvc3DDpXJhZGUgZmlsZXIgYXR0IGlnbm9yZXJhIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjMKK21zZ2lkICJEZWZpbmluZyBzdWJtb2R1bGUgcHJvcGVydGllcyIKK21zZ3N0ciAiQW5nZSBlZ2Vuc2thcGVyIGbDtnIgdW5kZXJtb2R1bGVyIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjQKK21zZ2lkICJTcGVjaWZ5aW5nIHJldmlzaW9ucyBhbmQgcmFuZ2VzIGZvciBHaXQiCittc2dzdHIgIkFuZ2UgdmVyc2lvbmVyIG9jaCBpbnRlcnZhbGwgaSBHaXQiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNQorbXNnaWQgIkEgdHV0b3JpYWwgaW50cm9kdWN0aW9uIHRvIEdpdCAoZm9yIHZlcnNpb24gMS41LjEgb3IgbmV3ZXIpIgorbXNnc3RyICJJbnRyb2R1a3Rpb24gdGlsbCBHaXQgKGbDtnIgdmVyc2lvbiAxLjUuMSBvY2ggc2VuYXJlKSIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI2Cittc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgorbXNnc3RyICLDlnZlcnNpa3Qgw7Z2ZXIgcmVrb21tZW5kZXJhZGUgYXJiZXRzZmzDtmRlbiBtZWQgR2l0IgorCisjOiBidWlsdGluL2hlbHAuYzo0MzgKK21zZ2lkICJUaGUgY29tbW9uIEdpdCBndWlkZXMgYXJlOlxuIgorbXNnc3RyICJEZSB2YW5saWdhIEdpdC12w6RnbGVkbmluZ2FybmEgw6RyOlxuIgorCisjOiBidWlsdGluL2hlbHAuYzo0NjAgYnVpbHRpbi9oZWxwLmM6NDc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyVzIgogbXNnc3RyICJhbnbDpG5kbmluZzogJXMlcyIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDUyCisjOiBidWlsdGluL2hlbHAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiYGdpdCAlcycgaXMgYWxpYXNlZCB0byBgJXMnIgogbXNnc3RyICJcImdpdCAlc1wiIMOkciBldHQgYWxpYXMgZsO2ciBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCB0eXBlIG1pc21hdGNoIGF0ICVzIgogbXNnc3RyICJvYmpla3R0eXAgc3TDpG1tZXIgaW50ZSDDtnZlcmVucyB2aWQgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjA0CiBtc2dpZCAib2JqZWN0IG9mIHVuZXhwZWN0ZWQgdHlwZSIKIG1zZ3N0ciAib2JqZWt0IGF2IG92w6RudGFkIHR5cCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjM5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZpbGwgJWQgYnl0ZSIKIG1zZ2lkX3BsdXJhbCAiY2Fubm90IGZpbGwgJWQgYnl0ZXMiCiBtc2dzdHJbMF0gImthbiBpbnRlIGZ5bGxhICVkIGJ5dGUiCiBtc2dzdHJbMV0gImthbiBpbnRlIGZ5bGxhICVkIGJ5dGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI0OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjU0CiBtc2dpZCAiZWFybHkgRU9GIgogbXNnc3RyICJ0aWRpZ3QgZmlsc2x1dCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTUKIG1zZ2lkICJyZWFkIGVycm9yIG9uIGlucHV0IgogbXNnc3RyICJpbmRhdGFsw6RzZmVsIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICJhbnbDpG5kZSBmbGVyIGJ5dGUgw6RuIHRpbGxnw6RuZ2xpZ3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjc0CiBtc2dpZCAicGFjayB0b28gbGFyZ2UgZm9yIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiBvZmZfdCIKIG1zZ3N0ciAicGFrZXQgZsO2ciBzdG9ydCBmw7ZyIG51dmFyYW5kZSBkZWZpbml0aW9uIGF2IG9mZl90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCiBtc2dzdHIgImt1bmRlIGludGUgc2thcGEgXCIlc1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBwYWNrZmlsZSAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSDDtnBwbmEgcGFrZXRmaWxlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA5CiBtc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCiBtc2dzdHIgInBha2V0c2lnbmF0dXIgc3TDpG1tZXIgaW50ZSDDtnZlcmVucyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzozMTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayB2ZXJzaW9uICU8UFJJdTMyPiB1bnN1cHBvcnRlZCIKIG1zZ3N0ciAicGFrZXR2ZXJzaW9uICU8UFJJdTMyPiBzdMO2ZHMgZWoiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCiBtc2dzdHIgInBha2V0ZXQgaGFyIGZlbGFrdGlndCBvYmpla3QgdmlkIGluZGV4ICVsdTogJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImluZmxhdGUgcmV0dXJuZWQgJWQiCiBtc2dzdHIgImluZmxhdGUgcmV0dXJuZXJhZGUgJWQiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTAwCiBtc2dpZCAib2Zmc2V0IHZhbHVlIG92ZXJmbG93IGZvciBkZWx0YSBiYXNlIG9iamVjdCIKIG1zZ3N0ciAiaW5kZXh2w6RyZGVzcGlsbCBmw7ZyIGRlbHRhYmFzb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwOAogbXNnaWQgImRlbHRhIGJhc2Ugb2Zmc2V0IGlzIG91dCBvZiBib3VuZCIKIG1zZ3N0ciAiZGVsdGFiYXNpbmRleCB1dGFuZsO2ciBncsOkbnNlbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTExCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBvYmplY3QgdHlwZSAlZCIKIG1zZ3N0ciAib2vDpG5kIG9iamVrdHR5cCAlZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDcKIG1zZ2lkICJjYW5ub3QgcHJlYWQgcGFjayBmaWxlIgogbXNnc3RyICJrYW4gaW50ZSB1dGbDtnJhIFwicHJlYWRcIiBww6UgcGFrZXRmaWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZSBtaXNzaW5nIgogbXNnaWRfcGx1cmFsICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGVzIG1pc3NpbmciCiBtc2dzdHJbMF0gImbDtnIgdGlkaWd0IHNsdXQgcMOlIHBha2V0ZmlsZW4sICVsdSBieXRlIHNha25hcyIKIG1zZ3N0clsxXSAiZsO2ciB0aWRpZ3Qgc2x1dCBww6UgcGFrZXRmaWxlbiwgJWx1IGJ5dGUgc2FrbmFzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU3NQogbXNnaWQgInNlcmlvdXMgaW5mbGF0ZSBpbmNvbnNpc3RlbmN5IgogbXNnc3RyICJhbGx2YXJsaWcgaW5mbGF0ZS1pbmtvbnNla3ZlbnMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2MSBidWlsdGluL2luZGV4LXBhY2suYzo2NjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjkwCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjQgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjYgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI5IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczOAogIywgYy1mb3JtYXQKIG1zZ2lkICJTSEExIENPTExJU0lPTiBGT1VORCBXSVRIICVzICEiCiBtc2dzdHIgIlNIQTEtS09MTElTSU9OIFVQUFTDhENLVCBWSUQgJXMgISIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJrdW5kZSBpbnRlIGzDpHNhICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCiBtc2dzdHIgImthbiBpbnRlIGzDpHNhIGJlZmludGxpZ3Qgb2JqZWt0ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGJsb2Igb2JqZWN0ICVzIgogbXNnc3RyICJvZ2lsdGlndCBibG9iLW9iamVrdCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzU5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCAlcyIKIG1zZ3N0ciAib2dpbHRpZ3QgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzY2CiBtc2dpZCAiRXJyb3IgaW4gb2JqZWN0IgogbXNnc3RyICJGZWwgaSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vdCBhbGwgY2hpbGQgb2JqZWN0cyBvZiAlcyBhcmUgcmVhY2hhYmxlIgogbXNnc3RyICJJbnRlIGFsbGEgYmFybm9iamVrdCBmw7ZyICVzIGthbiBuw6VzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzMgYnVpbHRpbi9pbmRleC1wYWNrLmM6ODYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo4MzggYnVpbHRpbi9pbmRleC1wYWNrLmM6ODY4CiBtc2dpZCAiZmFpbGVkIHRvIGFwcGx5IGRlbHRhIgogbXNnc3RyICJtaXNzbHlja2FkZXMgdGlsbMOkbXBhIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiUmVjZWl2aW5nIG9iamVjdHMiCiBtc2dzdHIgIlRhciBlbW90IG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIkluZGV4aW5nIG9iamVjdHMiCiBtc2dzdHIgIlNrYXBhciBpbmRleCBmw7ZyIG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQogbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKIG1zZ3N0ciAicGFrZXRldCDDpHIgdHJhc2lndCAoU0hBMSBzdMOkbW1lciBpbnRlKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MAogbXNnaWQgImNhbm5vdCBmc3RhdCBwYWNrZmlsZSIKIG1zZ3N0ciAia2FuIGludGUgdXRmw7ZyYSBcImZzdGF0XCIgcMOlIHBha2V0ZmlsIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM4CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQzCiBtc2dpZCAicGFjayBoYXMganVuayBhdCB0aGUgZW5kIgogbXNnc3RyICJwYWtldCBoYXIgc2tyw6RwIGkgc2x1dGV0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAiZsO2cnZpcnJhZCBib3J0b20gdmFudmV0dCBpIHBhcnNlX3BhY2tfb2JqZWN0cygpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAiQW5hbHlzZXJhciBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2thcGEgdHLDpWQ6ICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAiZsO2cnZpcnJhZCBib3J0b20gdmFudmV0dCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgogbXNnc3RyICJzbHV0ZsO2cmRlcyBtZWQgJWQgbG9rYWxhIG9iamVrdCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmV4cGVjdGVkIHRhaWwgY2hlY2tzdW0gZm9yICVzIChkaXNrIGNvcnJ1cHRpb24/KSIKIG1zZ3N0ciAiT3bDpG50YWQgc3ZhbnNjaGVja3N1bW1hIGbDtnIgJXMgKHRyYXNpZyBkaXNrPykiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayBoYXMgJWQgdW5yZXNvbHZlZCBkZWx0YSIKIG1zZ2lkX3BsdXJhbCAicGFjayBoYXMgJWQgdW5yZXNvbHZlZCBkZWx0YXMiCiBtc2dzdHJbMF0gInBha2V0ZXQgaGFyICVkIG9hbmFseXNlcmF0IGRlbHRhIgogbXNnc3RyWzFdICJwYWtldGV0IGhhciAlZCBvYW5hbHlzZXJhZGUgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCiBtc2dzdHIgImt1bmRlIGludGUgdXRmw7ZyYSBcImRlZmxhdGVcIiBww6UgdGlsbGFndCBvYmpla3QgKCVkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAibG9rYWx0IG9iamVrdCAlcyDDpHIgdHJhc2lndCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI3OQogbXNnaWQgImVycm9yIHdoaWxlIGNsb3NpbmcgcGFjayBmaWxlIgogbXNnc3RyICJmZWwgdmlkIHN0w6RuZ25pbmcgYXYgcGFrZXRmaWwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyODcKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyOTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHdyaXRlIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJrYW4gaW50ZSB0YSBza3JpdmEgXCJrZWVwXCItZmlsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY2xvc2Ugd3JpdHRlbiBrZWVwIGZpbGUgJyVzJyIKIG1zZ3N0ciAiYWtuIGludGUgc3TDpG5nYSBza3JpdmVuIFwia2VlcFwiLWZpbCBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMDgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzMTMKIG1zZ2lkICJjYW5ub3Qgc3RvcmUgcGFjayBmaWxlIgogbXNnc3RyICJrYW4gaW50ZSBzcGFyYSBwYWtldGZpbCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMyNAogbXNnaWQgImNhbm5vdCBzdG9yZSBpbmRleCBmaWxlIgogbXNnc3RyICJrYW4gaW50ZSBzcGFyYSBpbmRleGZpbCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcGFjay5pbmRleHZlcnNpb249JTxQUkl1MzI+IgogbXNnc3RyICJmZWxha3RpZyBwYWNrLmluZGV4dmVyc2lvbj0lPFBSSXUzMj4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBudW1iZXIgb2YgdGhyZWFkcyBzcGVjaWZpZWQgKCVkKSIKIG1zZ3N0ciAiZmVsYWt0aWd0IGFudGFsIHRyw6VkYXIgYW5naXZldCAoJWQpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzYyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNjcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyB0aHJlYWRzIHN1cHBvcnQsIGlnbm9yaW5nICVzIgogbXNnc3RyICJ0csOlZHN0w7ZkIHNha25hcywgaWdub3JlcmFyICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgogbXNnc3RyICJLYW4gaW50ZSDDtnBwbmEgYmVmaW50bGlnIHBha2V0ZmlsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgogbXNnc3RyICJLYW4gaW50ZSDDtnBwbmEgYmVmaW50bGlndCBwYWtldC1pZHgtZmlsIGbDtnIgXCIlc1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDY5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vbiBkZWx0YTogJWQgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJub24gZGVsdGE6ICVkIG9iamVjdHMiCiBtc2dzdHJbMF0gImlja2UtZGVsdGE6ICVkIG9iamVrdCIKIG1zZ3N0clsxXSAiaWNrZS1kZWx0YTogJWQgb2JqZWt0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdHMiCiBtc2dzdHJbMF0gImtlZGplbMOkbmdkID0gJWQ6ICVsdSBvYmpla3QiCiBtc2dzdHJbMV0gImtlZGplbMOkbmdkID0gJWQ6ICVsdSBvYmpla3QiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAiS2FuIGludGUgZ8OlIHRpbGxiYWthIHRpbGwgYXJiZXRza2F0YWxvZ2VuIChjd2QpIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTYwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgogbXNnc3RyICJmZWxha3RpZyAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICItLWZpeC10aGluIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4NCBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCiBtc2dzdHIgInBha2V0ZmlsbmFtbmV0IFwiJXNcIiBzbHV0YXIgaW50ZSBtZWQgXCIucGFja1wiIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjEzCiBtc2dpZCAiLS12ZXJpZnkgd2l0aCBubyBwYWNrZmlsZSBuYW1lIGdpdmVuIgogbXNnc3RyICItLXZlcmlmeSBhbmdhdnMgdXRhbiBwYWtldGZpbG5hbW4iCiAKQEAgLTU1NDYsNyArNTk2Myw3IEBACiBtc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgogbXNnc3RyICJhbmdlIGF0dCBnaXQtYXJraXZldCBza2FsbCBkZWxhcyBibGFuZCBmbGVyYSBhbnbDpG5kYXJlIgogCi0jOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NworIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzUKIG1zZ2lkICJiZSBxdWlldCIKIG1zZ3N0ciAidmFyIHR5c3QiCiAKQEAgLTU1NzgsMzQwICs1OTk1LDM1MyBAQAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCiBtc2dzdHIgIkthbiBpbnRlIGtvbW1hIMOldCBhcmJldHNrYXRhbG9nZW4gXCIlc1wiIgogCi0jOiBidWlsdGluL2xvZy5jOjQwCi1tc2dpZCAiZ2l0IGxvZyBbPG9wdGlvbnM+XSBbPHNpbmNlPi4uPHVudGlsPl0gW1stLV0gPHBhdGg+Li4uXVxuIgotbXNnc3RyICJnaXQgbG9nIFs8ZmxhZ2dvcj5dIFs8c2VkYW4+Li48dGlsbD5dIFtbLS1dIDxzw7ZrdsOkZz4uLi5dXG4iCi0KICM6IGJ1aWx0aW4vbG9nLmM6NDEKK21zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCittc2dzdHIgImdpdCBsb2cgWzxmbGFnZ29yPl0gWzx2ZXJzaW9uc2ludGVydmFsbD5dIFtbLS1dIDxzw7ZrdsOkZz4uLi5dXG4iCisKKyM6IGJ1aWx0aW4vbG9nLmM6NDIKIG1zZ2lkICIgICBvcjogZ2l0IHNob3cgW29wdGlvbnNdIDxvYmplY3Q+Li4uIgogbXNnc3RyICIgICAgIGVsbGVyOiBnaXQgc2hvdyBbZmxhZ2dvcl0gPG9iamVrdD4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAzCisjOiBidWlsdGluL2xvZy5jOjEyNAogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICJ1bmRlcnRyeWNrIGRpZmYtdXRkYXRhIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNAorIzogYnVpbHRpbi9sb2cuYzoxMjUKIG1zZ2lkICJzaG93IHNvdXJjZSIKIG1zZ3N0ciAidmlzYSBrw6RsbGtvZCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgIkFudsOkbmQgZS1wb3N0bWFwcG5pbmdzZmlsIgogCi0jOiBidWlsdGluL2xvZy5jOjEwNgorIzogYnVpbHRpbi9sb2cuYzoxMjcKIG1zZ2lkICJkZWNvcmF0ZSBvcHRpb25zIgogbXNnc3RyICJkZWtvcmVyaW5nc2ZsYWdnb3IiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTk5CisjOiBidWlsdGluL2xvZy5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGaW5hbCBvdXRwdXQ6ICVkICVzXG4iCiBtc2dzdHIgIlNsdXR1dGRhdGE6ICVkICVzXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDIyIGJ1aWx0aW4vbG9nLmM6NTE0CisjOiBidWlsdGluL2xvZy5jOjQ1MyBidWlsdGluL2xvZy5jOjU0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBvYmplY3QgJXMiCiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2Egb2JqZWt0ZXQgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NTM4CisjOiBidWlsdGluL2xvZy5jOjU2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIHR5cGU6ICVkIgogbXNnc3RyICJPa8OkbmQgdHlwOiAlZCIKIAotIzogYnVpbHRpbi9sb2cuYzo2MzAKKyM6IGJ1aWx0aW4vbG9nLmM6NjY5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiZm9ybWF0LmhlYWRlcnMgdXRhbiB2w6RyZGUiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzA0CisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAibmFtbmV0IHDDpSB1dGRhdGFrYXRhbG9nZW4gw6RyIGbDtnIgbMOlbmd0IgogCi0jOiBidWlsdGluL2xvZy5jOjcyMAorIzogYnVpbHRpbi9sb2cuYzo3NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IG9wZW4gcGF0Y2ggZmlsZSAlcyIKIG1zZ3N0ciAiS2FuIGludGUgw7ZwcG5hIHBhdGNoZmlsZW4gJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzM0CisjOiBidWlsdGluL2xvZy5jOjc4MQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgogbXNnc3RyICJCZWjDtnZlciBwcmVjaXMgZXR0IGludGVydmFsbC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzQyCisjOiBidWlsdGluL2xvZy5jOjc4OQogbXNnaWQgIk5vdCBhIHJhbmdlLiIKIG1zZ3N0ciAiSW50ZSBldHQgaW50ZXJ2YWxsLiIKIAotIzogYnVpbHRpbi9sb2cuYzo4MTUKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAiT21zbGFnc2JyZXZldCBiZWjDtnZlciBlLXBvc3Rmb3JtYXQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODg4CisjOiBidWlsdGluL2xvZy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmUgaW4tcmVwbHktdG86ICVzIgogbXNnc3RyICJ0b2tpZ3QgaW4tcmVwbHktdG86ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjkxNgorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICJnaXQgZm9ybWF0LXBhdGNoIFtmbGFnZ29yXSBbPHNlZGFuPiB8IDxyZXZpc2lvbnNpbnRlcnZhbGw+XSIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTA0MAogbXNnaWQgIlR3byBvdXRwdXQgZGlyZWN0b3JpZXM/IgogbXNnc3RyICJUdsOlIHV0ZGF0YWthdGFsb2dlcj8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA5OQorIzogYnVpbHRpbi9sb2cuYzoxMTU1CiBtc2dpZCAidXNlIFtQQVRDSCBuL21dIGV2ZW4gd2l0aCBhIHNpbmdsZSBwYXRjaCIKIG1zZ3N0ciAiYW52w6RuZCBbUEFUQ0ggbi9tXSDDpHZlbiBmw7ZyIGVuIGVuc2FtIHBhdGNoIgogCi0jOiBidWlsdGluL2xvZy5jOjExMDIKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1OAogbXNnaWQgInVzZSBbUEFUQ0hdIGV2ZW4gd2l0aCBtdWx0aXBsZSBwYXRjaGVzIgogbXNnc3RyICJhbnbDpG5kIFtQQVRDSF0gw6R2ZW4gZsO2ciBmbGVyYSBwYXRjaGFyIgogCi0jOiBidWlsdGluL2xvZy5jOjExMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICJza3JpdiBwYXRjaGFybmEgcMOlIHN0bmFkYXJkIHV0IgogCi0jOiBidWlsdGluL2xvZy5jOjExMDgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NAogbXNnaWQgImdlbmVyYXRlIGEgY292ZXIgbGV0dGVyIgogbXNnc3RyICJnZW5lcmVyYSBldHQgZsO2bGplYnJldiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTEwCisjOiBidWlsdGluL2xvZy5jOjExNjYKIG1zZ2lkICJ1c2Ugc2ltcGxlIG51bWJlciBzZXF1ZW5jZSBmb3Igb3V0cHV0IGZpbGUgbmFtZXMiCiBtc2dzdHIgImFudsOkbmQgZW5rZWwgbnVtbWVyc2VrdmVucyBmw7ZyIHV0ZGF0YWZpbG5hbW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMQorIzogYnVpbHRpbi9sb2cuYzoxMTY3CiBtc2dpZCAic2Z4IgogbXNnc3RyICJzZngiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMgorIzogYnVpbHRpbi9sb2cuYzoxMTY4CiBtc2dpZCAidXNlIDxzZng+IGluc3RlYWQgb2YgJy5wYXRjaCciCiBtc2dzdHIgImFudsOkbmQgPHNmeD4gaXN0w6RsbGV0IGbDtnIgXCIucGF0Y2hcIiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE0CisjOiBidWlsdGluL2xvZy5jOjExNzAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICJiw7ZyamEgbnVtcmVyYSBwYXRjaGFyIHDDpSA8bj4gaXN0w6RsbGV0IGbDtnIgMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE2CisjOiBidWlsdGluL2xvZy5jOjExNzIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIm1hcmtlcmEgc2VyaWVuIHNvbSBOOnRlIGbDtnJzw7ZrIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NAogbXNnaWQgIlVzZSBbPHByZWZpeD5dIGluc3RlYWQgb2YgW1BBVENIXSIKIG1zZ3N0ciAiQW52w6RuZCBbPHByZWZpeD5dIGlzdMOkbGxldCBmw7ZyIFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyMQorIzogYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAic3RvcmUgcmVzdWx0aW5nIGZpbGVzIGluIDxkaXI+IgogbXNnc3RyICJzcGFyYSBmaWxlcm5hIGkgPGthdGFsb2c+IgogCi0jOiBidWlsdGluL2xvZy5jOjExMjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICJ0YSBpbnRlIGJvcnQgZWxsZXIgbMOkZ2cgdGlsbCBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjcKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MwogbXNnaWQgImRvbid0IG91dHB1dCBiaW5hcnkgZGlmZnMiCiBtc2dzdHIgInNrcml2IGludGUgYmluw6RyYSBkaWZmYXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyOQorIzogYnVpbHRpbi9sb2cuYzoxMTg1CiBtc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgogbXNnc3RyICJ0YSBpbnRlIG1lZCBwYXRjaGFyIHNvbSBtb3RzdmFyYXIgZW4gdXBwc3Ryw7Ztc2luY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAidmlzYSBwYXRjaGZvcm1hdCBpc3TDpGxsZXQgZsO2ciBzdGFuZGFyZCAocGF0Y2ggKyBzdGF0KSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIkUtcG9zdCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM0CisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgImh1dnVkIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MQogbXNnaWQgImFkZCBlbWFpbCBoZWFkZXIiCiBtc2dzdHIgImzDpGdnIHRpbGwgZS1wb3N0aHV2dWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAiZXBvc3QiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNgorIzogYnVpbHRpbi9sb2cuYzoxMTkyCiBtc2dpZCAiYWRkIFRvOiBoZWFkZXIiCiBtc2dzdHIgIkzDpGdnIHRpbGwgbW90dGFnYXJodXZ1ZCAoXCJUbzpcIikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzOAorIzogYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIkzDpGdnIHRpbGwga29waWVodXZ1ZCAoXCJDYzpcIikiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MAorIzogYnVpbHRpbi9sb2cuYzoxMTk2Cittc2dpZCAiaWRlbnQiCittc2dzdHIgImlkZW50IgorCisjOiBidWlsdGluL2xvZy5jOjExOTcKK21zZ2lkICJzZXQgRnJvbSBhZGRyZXNzIHRvIDxpZGVudD4gKG9yIGNvbW1pdHRlciBpZGVudCBpZiBhYnNlbnQpIgorbXNnc3RyICJzw6R0dCBGcsOlbi1hZHJlc3MgdGlsbCA8aWRlbnQ+IChlbGxlciBpbmNoZWNrYXJlIG9tIGlkZW50IHNha25hcykiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5OQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIm1lZGRlbGFuZGUtaWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MQorIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICJHw7ZyIGRldCBmw7Zyc3RhIGJyZXZldCBldHQgc3ZhciB0aWxsIDxtZWRkZWxhbmRlLWlkPiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQyIGJ1aWx0aW4vbG9nLmM6MTE0NQorIzogYnVpbHRpbi9sb2cuYzoxMjAxIGJ1aWx0aW4vbG9nLmM6MTIwNAogbXNnaWQgImJvdW5kYXJ5IgogbXNnc3RyICJncsOkbnMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMjAyCiBtc2dpZCAiYXR0YWNoIHRoZSBwYXRjaCIKIG1zZ3N0ciAiYmlmb2dhIHBhdGNoZW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0NgorIzogYnVpbHRpbi9sb2cuYzoxMjA1CiBtc2dpZCAiaW5saW5lIHRoZSBwYXRjaCIKIG1zZ3N0ciAiZ8O2ciBwYXRjaGVuIGV0dCBpbmxpbmUtb2JqZWt0IgogCi0jOiBidWlsdGluL2xvZy5jOjExNTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwOQogbXNnaWQgImVuYWJsZSBtZXNzYWdlIHRocmVhZGluZywgc3R5bGVzOiBzaGFsbG93LCBkZWVwIgogbXNnc3RyICJha3RpdmVyYSBicmV2dHLDpWRuaW5nLCB0eXBlcjogc2hhbGxvdywgZGVlcCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUyCisjOiBidWlsdGluL2xvZy5jOjEyMTEKIG1zZ2lkICJzaWduYXR1cmUiCiBtc2dzdHIgInNpZ25hdHVyIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBzaWduYXR1ciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTU1CisjOiBidWlsdGluL2xvZy5jOjEyMTQKIG1zZ2lkICJkb24ndCBwcmludCB0aGUgcGF0Y2ggZmlsZW5hbWVzIgogbXNnc3RyICJ2aXNhIGludGUgZmlsbmFtbiBmw7ZyIHBhdGNoYXIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTIzOQorIzogYnVpbHRpbi9sb2cuYzoxMjg4CisjLCBjLWZvcm1hdAorbXNnaWQgImludmFsaWQgaWRlbnQgbGluZTogJXMiCittc2dzdHIgIm9naWx0aWcgaWRlbnQtcmFkOiAlcyIKKworIzogYnVpbHRpbi9sb2cuYzoxMzAzCiBtc2dpZCAiLW4gYW5kIC1rIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIgogbXNnc3RyICItbiBvY2ggLWsga2FuIGludGUgYW52w6RuZGFzIHNhbXRpZGlndC4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0MQorIzogYnVpbHRpbi9sb2cuYzoxMzA1CiBtc2dpZCAiLS1zdWJqZWN0LXByZWZpeCBhbmQgLWsgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCiBtc2dzdHIgIi0tc3ViamVjdC1wcmVmaXggb2NoIC1rIGthbiBpbnRlIGFudsOkbmRhcyBzYW10aWRpZ3QuIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxMwogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgImthbiBpbnRlIGFudsOkbmRhIC0tbmFtZS1vbmx5IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxNQogbXNnaWQgIi0tbmFtZS1zdGF0dXMgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAia2FuIGludGUgYW52w6RuZGEgLS1uYW1lLXN0YXR1cyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUzCisjOiBidWlsdGluL2xvZy5jOjEzMTcKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgImthbiBpbnRlIGFudsOkbmRhIC0tY2hlY2siCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI3NgorIzogYnVpbHRpbi9sb2cuYzoxMzQwCiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCiBtc2dzdHIgInN0YW5kYXJkIHV0LCBlbGxlciBrYXRhbG9nLCB2aWxrZW4gc2thbGwgZGV0IHZhcmE/IgogCi0jOiBidWlsdGluL2xvZy5jOjEyNzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTM0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICJLdW5kZSBpbnRlIHNrYXBhIGthdGFsb2dlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQzMQorIzogYnVpbHRpbi9sb2cuYzoxNDkwCiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIk1pc3NseWNrYWRlcyBza2FwYSB1dGRhdGFmaWxlciIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDgwCisjOiBidWlsdGluL2xvZy5jOjE1MzkKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBwc3Ryw7ZtPiBbPGh1dnVkPiBbPGdyw6Rucz5dXV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTUzNQorIzogYnVpbHRpbi9sb2cuYzoxNTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb3VsZCBub3QgZmluZCBhIHRyYWNrZWQgcmVtb3RlIGJyYW5jaCwgcGxlYXNlIHNwZWNpZnkgPHVwc3RyZWFtPiBtYW51YWxseS5cbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSBlbiBzcMOlcmFkIGZqw6RycmdyZW4sIGFuZ2UgPHVwcHN0csO2bT4gbWFudWVsbHQuXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU0OCBidWlsdGluL2xvZy5jOjE1NTAgYnVpbHRpbi9sb2cuYzoxNTYyCisjOiBidWlsdGluL2xvZy5jOjE2MDcgYnVpbHRpbi9sb2cuYzoxNjA5IGJ1aWx0aW4vbG9nLmM6MTYyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAiT2vDpG5kIGluY2hlY2tuaW5nICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtmbGFnZ29yXSBbPGZpbD4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAiaWRlbnRpZmllcmEgZmlsc3RhdHVzIG1lZCB0YWdnYXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAiYW52w6RuZCBzbcOlIGJva3N0w6R2ZXIgZsO2ciBcImFudGEgb2bDtnLDpG5kcmFkZVwiLWZpbGVyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcwCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY5CiBtc2dpZCAic2hvdyBjYWNoZWQgZmlsZXMgaW4gdGhlIG91dHB1dCAoZGVmYXVsdCkiCiBtc2dzdHIgInZpc2EgY2FjaGFkZSBmaWxlciBpIHV0ZGF0YSAoc3RhbmRhcmQpIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDcyCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDcxCiBtc2dpZCAic2hvdyBkZWxldGVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInZpc2EgYm9ydHRhZ25hIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIG1vZGlmaWVyYWRlIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGFuZHJhIGZpbGVyIGkgdXRkYXRhIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgInZpc2EgaWdub3JlcmFkZSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGvDtmF0IGlubmVow6VsbHMgb2JqZWt0bmFtbiBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgInZpc2EgZmlsZXIgaSBmaWxzeXN0ZW1ldCBzb20gYmVow7Z2ZXIgdGFzIGJvcnQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODQKIG1zZ2lkICJzaG93ICdvdGhlcicgZGlyZWN0b3JpZXMnIG5hbWUgb25seSIKIG1zZ3N0ciAidmlzYSBlbmRhc3QgbmFtbiBmw7ZyIFwiYW5kcmFcIiBrYXRhbG9nZXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODcKIG1zZ2lkICJkb24ndCBzaG93IGVtcHR5IGRpcmVjdG9yaWVzIgogbXNnc3RyICJ2aXNhIGludGUgdG9tbWEga2F0YWxvZ2VyIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkwCiBtc2dpZCAic2hvdyB1bm1lcmdlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJ2aXNhIGVqIHNhbW1hbnNsYWduYSBmaWxlciBpIHV0ZGF0YSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MgogbXNnaWQgInNob3cgcmVzb2x2ZS11bmRvIGluZm9ybWF0aW9uIgogbXNnc3RyICJ2aXNhIFwicmVzb2x2ZS11bmRvXCItaW5mb3JtYXRpb24iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTUKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQKIG1zZ2lkICJza2lwIGZpbGVzIG1hdGNoaW5nIHBhdHRlcm4iCiBtc2dzdHIgImhvcHBhIMO2dmVyIGZpbGVyIHNvbSBtb3RzdmFyYXIgbcO2bnN0ZXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICJleGtsdWRlcmEgbcO2bnN0ZXIgc29tIGzDpHNlcyBmcsOlbiA8ZmlsPiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwMAogbXNnaWQgInJlYWQgYWRkaXRpb25hbCBwZXItZGlyZWN0b3J5IGV4Y2x1ZGUgcGF0dGVybnMgaW4gPGZpbGU+IgogbXNnc3RyICJsw6RzIHl0dGVybGlnYXJlIHBlci1rYXRhbG9nLWV4a2x1ZGVyaW5nc23Dtm5zdGVyIGZyw6VuIDxmaWw+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAibMOkZ2cgdGlsbCBnaXQ6cyBzdGFuZGFyZGV4a2x1ZGVyaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDUKIG1zZ2lkICJtYWtlIHRoZSBvdXRwdXQgcmVsYXRpdmUgdG8gdGhlIHByb2plY3QgdG9wIGRpcmVjdG9yeSIKIG1zZ3N0ciAiZ8O2ciB1dGRhdGEgcmVsYXRpdiB0aWxsIHByb2pla3RldHMgdG9wcGthdGFsb2ciCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIm9tIGVuIDxmaWw+IGludGUgw6RyIGluZGV4ZXQsIGJldHJha3RhIGRldCBzb20gZXR0IGZlbCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICJ0csOkZC1pZ3QiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKIG1zZ2lkICJwcmV0ZW5kIHRoYXQgcGF0aHMgcmVtb3ZlZCBzaW5jZSA8dHJlZS1pc2g+IGFyZSBzdGlsbCBwcmVzZW50IgogbXNnc3RyICJsw6V0c2FzIGF0dCBzw7ZrdsOkZ2FyIGJvcnR0YWduYSBzZWRhbiA8dHLDpGQtaWd0PiBmb3J0ZmFyYW5kZSBmaW5ucyIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMworIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgInZpc2EgZmVsc8O2a25pbmdzdXRkYXRhIgogCkBAIC01OTYzLDE3MCArNjM5MywxNzAgQEAKIG1zZ2lkICJnaXQgbWVyZ2UgLS1hYm9ydCIKIG1zZ3N0ciAiZ2l0IG1lcmdlIC0tYWJvcnQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MAorIzogYnVpbHRpbi9tZXJnZS5jOjk4CiBtc2dpZCAic3dpdGNoIGBtJyByZXF1aXJlcyBhIHZhbHVlIgogbXNnc3RyICJmbGFnZ2FuIFwibVwiIGJlaMO2dmVyIGV0dCB2w6RyZGUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgbWVyZ2Ugc3RyYXRlZ3kgJyVzJy5cbiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSBzYW1tYW5zbGFnbmluZ3NzdHJhdGVnaW4gXCIlc1wiLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI4CisjOiBidWlsdGluL21lcmdlLmM6MTM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBzdHJhdGVnaWVzIGFyZToiCiBtc2dzdHIgIlRpbGxnw6RuZ2xpZ2Egc3RyYXRlZ2llciDDpHI6IgogCi0jOiBidWlsdGluL21lcmdlLmM6MTMzCisjOiBidWlsdGluL21lcmdlLmM6MTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBjdXN0b20gc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICJUaWxsZ8OkbmdsaWdhIHNrcsOkZGRhcnN5ZGRhIHN0cmF0ZWdpZXIgw6RyOiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4MworIzogYnVpbHRpbi9tZXJnZS5jOjE5OAogbXNnaWQgImRvIG5vdCBzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgInZpc2EgaW50ZSBlbiBkaWZmc3RhdCBuw6RyIHNhbW1hbnNsYWduaW5nZW4gw6RyIGbDpHJkaWciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODYKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDEKIG1zZ2lkICJzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgInZpc2EgZW4gZGlmZnN0YXQgbsOkciBzYW1tYW5zbGFnbmluZ2VuIMOkciBmw6RyZGlnIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg3CisjOiBidWlsdGluL21lcmdlLmM6MjAyCiBtc2dpZCAiKHN5bm9ueW0gdG8gLS1zdGF0KSIKIG1zZ3N0ciAiKHN5bm9ueW0gdGlsbCAtLXN0YXQpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg5CisjOiBidWlsdGluL21lcmdlLmM6MjA0CiBtc2dpZCAiYWRkIChhdCBtb3N0IDxuPikgZW50cmllcyBmcm9tIHNob3J0bG9nIHRvIG1lcmdlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICIiCiAibMOkZ2cgdGlsbCAoc29tIG1lc3QgPG4+KSBwb3N0ZXIgZnLDpW4gc2hvcnRsb2cgdGlsbCBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5MgorIzogYnVpbHRpbi9tZXJnZS5jOjIwNwogbXNnaWQgImNyZWF0ZSBhIHNpbmdsZSBjb21taXQgaW5zdGVhZCBvZiBkb2luZyBhIG1lcmdlIgogbXNnc3RyICJza2FwYSBlbiBlbnNhbSBpbmNoZWNrbmluZyBpc3TDpGxsZXQgZsO2ciBlbiBzYW1tYW5zbGFnbmluZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorIzogYnVpbHRpbi9tZXJnZS5jOjIwOQogbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKIG1zZ3N0ciAidXRmw7ZyIGVuIGluY2hlY2tuaW5nIG9tIHNhbW1hbnNsYWduaW5nZW4gbHlja2FkZXMgKHN0YW5kYXJkKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NgorIzogYnVpbHRpbi9tZXJnZS5jOjIxMQogbXNnaWQgImVkaXQgbWVzc2FnZSBiZWZvcmUgY29tbWl0dGluZyIKIG1zZ3N0ciAicmVkaWdlcmEgbWVkZGVsYW5kZSBpbm5hbiBpbmNoZWNrbmluZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5OAorIzogYnVpbHRpbi9tZXJnZS5jOjIxMgogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCAoZGVmYXVsdCkiCiBtc2dzdHIgInRpbGzDpXQgc25hYmJzcG9sbmluZyAoc3RhbmRhcmQpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAwCisjOiBidWlsdGluL21lcmdlLmM6MjE0CiBtc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKIG1zZ3N0ciAiYXZicnl0IG9tIHNuYWJic3BvbG5pbmcgaW50ZSDDpHIgbcO2amxpZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMworIzogYnVpbHRpbi9tZXJnZS5jOjIxOAogbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKIG1zZ3N0ciAiQmVrcsOkZnRhIGF0dCBkZW4gbmFtbmdpdm5hIGluY2hlY2tuaW5nZW4gaGFyIGVuIGdpbHRpZyBHUEctc2lnbmF0dXIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQgYnVpbHRpbi9ub3Rlcy5jOjg2NiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9tZXJnZS5jOjIxOSBidWlsdGluL25vdGVzLmM6NzM4IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAic3RyYXRlZ3kiCiBtc2dzdHIgInN0cmF0ZWdpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA1CisjOiBidWlsdGluL21lcmdlLmM6MjIwCiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgogbXNnc3RyICJzYW1tYW5zbGFnbmluc3N0cmF0ZWdpIGF0dCBhbnbDpG5kYSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNgorIzogYnVpbHRpbi9tZXJnZS5jOjIyMQogbXNnaWQgIm9wdGlvbj12YWx1ZSIKIG1zZ3N0ciAiYWx0ZXJuYXRpdj12w6RyZGUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjIKIG1zZ2lkICJvcHRpb24gZm9yIHNlbGVjdGVkIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJhbHRlcm5hdGl2IGbDtnIgdmFsZCBzYW1tYW5zbGFnbmluZ3NzdHJhdGVnaSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjIyNAogbXNnaWQgIm1lcmdlIGNvbW1pdCBtZXNzYWdlIChmb3IgYSBub24tZmFzdC1mb3J3YXJkIG1lcmdlKSIKIG1zZ3N0ciAiaW5jaGVja25pbmdzbWVkZGVsYW5kZSBmw7ZyIChpY2tlIHNuYWJic3BvbGFuZGUpIHNhbW1hbnNsYWduaW5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjEzCisjOiBidWlsdGluL21lcmdlLmM6MjI4CiBtc2dpZCAiYWJvcnQgdGhlIGN1cnJlbnQgaW4tcHJvZ3Jlc3MgbWVyZ2UiCiBtc2dzdHIgImF2YnJ5dCBkZW4gcMOlZ8OlZW5kZSBzYW1tYW5zbGFnbmluZ2VuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQyCisjOiBidWlsdGluL21lcmdlLmM6MjU3CiBtc2dpZCAiY291bGQgbm90IHJ1biBzdGFzaC4iCiBtc2dzdHIgImt1bmRlIGvDtnJhIHN0YXNoLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0NworIzogYnVpbHRpbi9tZXJnZS5jOjI2MgogbXNnaWQgInN0YXNoIGZhaWxlZCIKIG1zZ3N0ciAic3Rhc2ggbWlzc2x5Y2thZGVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjUyCisjOiBidWlsdGluL21lcmdlLmM6MjY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCBhIHZhbGlkIG9iamVjdDogJXMiCiBtc2dzdHIgImludGUgZXR0IGdpbHRpZ3Qgb2JqZWt0OiAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI3MSBidWlsdGluL21lcmdlLmM6Mjg4CisjOiBidWlsdGluL21lcmdlLmM6Mjg2IGJ1aWx0aW4vbWVyZ2UuYzozMDMKIG1zZ2lkICJyZWFkLXRyZWUgZmFpbGVkIgogbXNnc3RyICJyZWFkLXRyZWUgbWlzc2x5Y2thZGVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzE4CisjOiBidWlsdGluL21lcmdlLmM6MzMzCiBtc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCiBtc2dzdHIgIiAoaW5nZXQgYXR0IHBsYXR0YSB0aWxsKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMzMQorIzogYnVpbHRpbi9tZXJnZS5jOjM0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcXVhc2ggY29tbWl0IC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCiBtc2dzdHIgIlRpbGxwbGF0dG5pbmdzaW5jaGVja25pbmcgLS0gdXBwZGF0ZXJhciBpbnRlIEhFQURcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2MworIzogYnVpbHRpbi9tZXJnZS5jOjM3OAogbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAiU2tyaXZlciBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzY1CisjOiBidWlsdGluL21lcmdlLmM6MzgwCiBtc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIkF2c2x1dGFyIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2UgbWVzc2FnZSAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICJJbmdldCBzYW1tYW5zbGFnbmluZ3NtZWRkZWxhbmRlIC0tIHVwcGRhdGVyYXIgaW50ZSBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo0MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAiXCIlc1wiIHZlcmthciBpbnRlIHBla2EgcMOlIGVuIGluY2hlY2tuaW5nIgogCi0jOiBidWlsdGluL21lcmdlLmM6NTUwCisjOiBidWlsdGluL21lcmdlLmM6NTY1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkJhZCBicmFuY2guJXMubWVyZ2VvcHRpb25zIHN0cmluZzogJXMiCiBtc2dzdHIgIkZlbGFrdGlnIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMtc3Ryw6RuZzogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NTcKIG1zZ2lkICJnaXQgd3JpdGUtdHJlZSBmYWlsZWQgdG8gd3JpdGUgYSB0cmVlIgogbXNnc3RyICJnaXQgd3JpdGUtdHJlZSBtaXNzbHlja2FkZXMgc2tyaXZhIGV0dCB0csOkZCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY3MQorIzogYnVpbHRpbi9tZXJnZS5jOjY4NQogbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCiBtc2dzdHIgIkhhbnRlcmFyIGludGUgbsOlZ290IGFubmF0IMOkbiBlbiBzYW1tYW5zbGFnbmluZyBhdiB0dsOlIGh1dnVkZW4uIgogCi0jOiBidWlsdGluL21lcmdlLmM6Njg1CisjOiBidWlsdGluL21lcmdlLmM6Njk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gb3B0aW9uIGZvciBtZXJnZS1yZWN1cnNpdmU6IC1YJXMiCiBtc2dzdHIgIkZlbGFrdGlnIGZsYWdnYSBmw7ZyIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY5OQorIzogYnVpbHRpbi9tZXJnZS5jOjcxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgJXMiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6Nzg4CisjOiBidWlsdGluL21lcmdlLmM6ODAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIGZyb20gJyVzJyIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RzYSBmcsOlbiBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo3OTcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGNvbW1pdHRpbmcgbWVyZ2U7IHVzZSAnZ2l0IGNvbW1pdCcgdG8gY29tcGxldGUgdGhlIG1lcmdlLlxuIgogbXNnc3RyICIiCiAiQ2hlY2thciBpbnRlIGluIHNhbW1hbnNsYWduaW5nZW47IGFudsOkbmQgXCJnaXQgY29tbWl0XCIgZsO2ciBhdHQgc2x1dGbDtnJhICIKICJkZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciBhIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gd2h5IHRoaXMgbWVyZ2UgaXMgbmVjZXNzYXJ5LFxuIgpAQCAtNjE0Miw1MyArNjU3Miw0OCBAQAogIlJhZGVyIHNvbSBpbmxlZHMgbWVkIFwiJWNcIiBrb21tZXIgaWdub3JlcmFzLCBvY2ggZXR0IHRvbXQgbWVkZGVsYW5kZVxuIgogImF2YnJ5dGVyIGluY2hlY2tuaW5nZW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NDEKIG1zZ2lkICJFbXB0eSBjb21taXQgbWVzc2FnZS4iCiBtc2dzdHIgIlRvbXQgaW5jaGVja25pbmdzbWVkZGVsYW5kZS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV29uZGVyZnVsLlxuIgogbXNnc3RyICJVbmRlcmJhcnQuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAiIgogIkt1bmRlIGludGUgc2zDpSBpaG9wIGF1dG9tYXRpc2t0OyBmaXhhIGtvbmZsaWt0ZXIgb2NoIGNoZWNrYSBpbiByZXN1bHRhdGV0LlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTIwCisjOiBidWlsdGluL21lcmdlLmM6OTM0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgaXMgbm90IGEgY29tbWl0IgogbXNnc3RyICJcIiVzXCIgw6RyIGludGUgZW4gaW5jaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzUKIG1zZ2lkICJObyBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIkludGUgcMOlIG7DpWdvbiBncmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MworIzogYnVpbHRpbi9tZXJnZS5jOjk3NwogbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiSW5nZW4gZmrDpHJyIGbDtnIgYWt0dWVsbCBncmVuLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2NQorIzogYnVpbHRpbi9tZXJnZS5jOjk3OQogbXNnaWQgIk5vIGRlZmF1bHQgdXBzdHJlYW0gZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAiSW5nZW4gc3RhbmRhcmR1cHBzdHLDtm0gYW5naXZlbiBmw7ZyIGFrdHVlbGwgZ3Jlbi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKK21zZ2lkICJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgogbXNnc3RyICJJbmdlbiBmasOkcnJzcMOlcmFuZGUgZ3JlbiBmw7ZyICVzIGZyw6VuICVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTA1NyBidWlsdGluL21lcmdlLmM6MTIxNAotIywgYy1mb3JtYXQKLW1zZ2lkICIlcyAtIG5vdCBzb21ldGhpbmcgd2UgY2FuIG1lcmdlIgotbXNnc3RyICIlcyAtIGludGUgbsOlZ290IHZpIGthbiBzbMOlIGlob3AiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTI1CisjOiBidWlsdGluL21lcmdlLmM6MTE0MAogbXNnaWQgIlRoZXJlIGlzIG5vIG1lcmdlIHRvIGFib3J0IChNRVJHRV9IRUFEIG1pc3NpbmcpLiIKIG1zZ3N0ciAiRGV0IGZpbm5zIGluZ2VuIHNhbW1hbnNsYWduaW5nIGF0dCBhdmJyeXRhIChNRVJHRV9IRUFEIHNha25hcykuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0MSBnaXQtcHVsbC5zaDozMQorIzogYnVpbHRpbi9tZXJnZS5jOjExNTYgZ2l0LXB1bGwuc2g6MzEKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKQEAgLTYxOTYsMTEgKzY2MjEsMTEgQEAKICJEdSBoYXIgaW50ZSBhdnNsdXRhdCBzYW1tYW5zbGFnbmluZ2VuIChNRVJHRV9IRUFEIGZpbm5zKS5cbiIKICJDaGVja2EgaW4gZGluYSDDpG5kcmluZ2FyIGlubmFuIGR1IGthbiBzbMOlIGlob3AuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0NCBnaXQtcHVsbC5zaDozNAorIzogYnVpbHRpbi9tZXJnZS5jOjExNTkgZ2l0LXB1bGwuc2g6MzQKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIkR1IGhhciBpbnRlIGF2c2x1dGF0IHNhbW1hbnNsYWduaW5nZW4gKE1FUkdFX0hFQUQgZmlubnMpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTYzCiBtc2dpZCAiIgogIllvdSBoYXZlIG5vdCBjb25jbHVkZWQgeW91ciBjaGVycnktcGljayAoQ0hFUlJZX1BJQ0tfSEVBRCBleGlzdHMpLlxuIgogIlBsZWFzZSwgY29tbWl0IHlvdXIgY2hhbmdlcyBiZWZvcmUgeW91IGNhbiBtZXJnZS4iCkBAIC02MjA4LDEwMiArNjYzMywxMDMgQEAKICJEdSBoYXIgaW50ZSBhdnNsdXRhdCBkaW4gXCJjaGVycnktcGlja1wiIChDSEVSUllfUElDS19IRUFEIGZpbm5zKS5cbiIKICJDaGVja2EgaW4gZGluYSDDpG5kcmluZ2FyIGlubmFuIGR1IGthbiBzbMOlIGlob3AuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE1MQorIzogYnVpbHRpbi9tZXJnZS5jOjExNjYKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIkR1IGhhciBpbnRlIGF2c2x1dGF0IGRpbiBcImNoZXJyeS1waWNrXCIgKENIRVJSWV9QSUNLX0hFQUQgZmlubnMpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTc1CiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tc3F1YXNoIHdpdGggLS1uby1mZi4iCiBtc2dzdHIgIkR1IGthbiBpbnRlIGtvbWJpbmVyYSAtLXNxdWFzaCBtZWQgLS1uby1mZi4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY1Ci1tc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tbm8tZmYgd2l0aCAtLWZmLW9ubHkuIgotbXNnc3RyICJEdSBrYW4gaW50ZSBrb21iaW5lcmEgLS1uby1mZiBtZWQgLS1mZi1vbmx5LiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExNzIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTg0CiBtc2dpZCAiTm8gY29tbWl0IHNwZWNpZmllZCBhbmQgbWVyZ2UuZGVmYXVsdFRvVXBzdHJlYW0gbm90IHNldC4iCiBtc2dzdHIgIkluZ2VuIGluY2hlY2tuaW5nIGFuZ2l2ZW4gb2NoIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIMOkciBlaiBzYXR0LiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE2CiBtc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAiS2FuIGVuZGFzdCBzbMOlIGlob3AgZW4gZW5kYSBpbmNoZWNrbmluZyBpIGV0dCB0b210IGh1dnVkLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE5CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiCiBtc2dzdHIgIlN0w7ZkZXIgaW50ZSBlbiB0aWxscGxhdHRuaW5nc2luY2hlY2tuaW5nIHDDpSBldHQgdG9tdCBodXZ1ZCDDpG5udSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjIxCiBtc2dpZCAiTm9uLWZhc3QtZm9yd2FyZCBjb21taXQgZG9lcyBub3QgbWFrZSBzZW5zZSBpbnRvIGFuIGVtcHR5IGhlYWQiCiBtc2dzdHIgIklja2Utc25hYmJzcG9sYWQgaW5jaGVja25pbmcga2FuIGludGUgYW52w6RuZGFzIG1lZCBldHQgdG9tdCBodXZ1ZCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjI2CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIC0gbm90IHNvbWV0aGluZyB3ZSBjYW4gbWVyZ2UiCittc2dzdHIgIiVzIC0gaW50ZSBuw6Vnb3Qgdmkga2FuIHNsw6UgaWhvcCIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhbiB1bnRydXN0ZWQgR1BHIHNpZ25hdHVyZSwgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAiIgogIkluY2hlY2tuaW5nZW4gJXMgaGFyIGVuIG9iZXRyb2RkIEdQRy1zaWduYXR1ciBzb20gcMOlc3TDpXMgdmFyYSBnam9yZCBhdiAlcy4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAiIgogIkluY2hlY2tuaW5nZW4gJXMgaGFyIGVuIGZlbGFrdGlnIEdQRy1zaWduYXR1ciBzb20gcMOlc3TDpXMgdmFyYSBnam9yZCBhdiAlcy4iCiAKICMuICdOJwotIzogYnVpbHRpbi9tZXJnZS5jOjEyNzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBkb2VzIG5vdCBoYXZlIGEgR1BHIHNpZ25hdHVyZS4iCiBtc2dzdHIgIkluY2hlY2tuaW5nICVzIGhhciBpbnRlIG7DpWdvbiBHUEctc2lnbmF0dXIuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3NAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGdvb2QgR1BHIHNpZ25hdHVyZSBieSAlc1xuIgogbXNnc3RyICJJbmNoZWNrbmluZ2VuICVzIGhhciBlbiBrb3JyZWt0IEdQRy1zaWduYXR1ciBhdiAlc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM1OAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBkYXRpbmcgJXMuLiVzXG4iCiBtc2dzdHIgIlVwcGRhdGVyYXIgJXMuLiVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzk3CisjOiBidWlsdGluL21lcmdlLmM6MTQwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgcmVhbGx5IHRyaXZpYWwgaW4taW5kZXggbWVyZ2UuLi5cbiIKIG1zZ3N0ciAiRsO2cnPDtmtlciByaWt0aWd0IGVua2VsIHNhbW1hbnNsYWduaW5nIGkgaW5kZXhldC4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQwNAorIzogYnVpbHRpbi9tZXJnZS5jOjE0MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm9wZS5cbiIKIG1zZ3N0ciAiTmVqLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQzNgorIzogYnVpbHRpbi9tZXJnZS5jOjE0NDgKIG1zZ2lkICJOb3QgcG9zc2libGUgdG8gZmFzdC1mb3J3YXJkLCBhYm9ydGluZy4iCiBtc2dzdHIgIkthbiBpbnRlIHNuYWJic3BvbGEsIGF2YnJ5dGVyLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjE1MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoxNTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJld2luZGluZyB0aGUgdHJlZSB0byBwcmlzdGluZS4uLlxuIgogbXNnc3RyICLDhXRlcnNwb2xhciB0csOkZGV0IHRpbGwgb3LDtnJ0Li4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDYzCisjOiBidWlsdGluL21lcmdlLmM6MTQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJUcnlpbmcgbWVyZ2Ugc3RyYXRlZ3kgJXMuLi5cbiIKIG1zZ3N0ciAiRsO2cnPDtmtlciBzYW1tYW5zbGFnbmluc3N0cmF0ZWdpbiAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIkluZ2VuIHNhbW1hbnNsYWduaW5nc3N0cmF0ZWdpIGhhbnRlcmFkZSBzYW1tYW5zbGFnbmluZ2VuLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUzMQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWVyZ2Ugd2l0aCBzdHJhdGVneSAlcyBmYWlsZWQuXG4iCiBtc2dzdHIgIlNhbW1hbnNsYWduaW5nIG1lZCBzdHJhdGVnaW4gJXMgbWlzc2x5Y2thZGVzLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU0MAorIzogYnVpbHRpbi9tZXJnZS5jOjE1NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNpbmcgdGhlICVzIHRvIHByZXBhcmUgcmVzb2x2aW5nIGJ5IGhhbmQuXG4iCiBtc2dzdHIgIkFudsOkbmRlciAlcyBmw7ZyIGF0dCBmw7ZyYmVyZWRhIGzDtnNuaW5nIGbDtnIgaGFuZC5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1NTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG9tYXRpYyBtZXJnZSB3ZW50IHdlbGw7IHN0b3BwZWQgYmVmb3JlIGNvbW1pdHRpbmcgYXMgcmVxdWVzdGVkXG4iCiBtc2dzdHIgIiIKQEAgLTY0NzAsNDcgKzY4OTYsNTEgQEAKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKIG1zZ3N0ciAibWlzc2x5Y2thZGVzIGJ5dGEgbmFtbiBww6UgXCIlc1wiIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjU5CiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtmbGFnZ29yXSA8aW5jaGVja25pbmc+Li4uIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYwCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLWFsbCIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtmbGFnZ29yXSAtLWFsbCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NworIzogYnVpbHRpbi9uYW1lLXJldi5jOjI2MQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gLS1zdGRpbiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFtmbGFnZ29yXSAtLXN0ZGluIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjI5CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzEzCiBtc2dpZCAicHJpbnQgb25seSBuYW1lcyAobm8gU0hBLTEpIgogbXNnc3RyICJza3JpdiBlbmRhc3QgbmFtbiAoaW5nZW4gU0hBLTEpIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMwCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE0CiBtc2dpZCAib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIgogbXNnc3RyICJhbnbDpG5kIGVuZGFzdCB0YWdnYXIgZsO2ciBhdHQgbmFtbmdlIGluY2hlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzIKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTYKIG1zZ2lkICJvbmx5IHVzZSByZWZzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKIG1zZ3N0ciAiYW52w6RuZCBlbmRhc3QgcmVmZXJlbnNlciBzb20gbW90c3ZhcmFyIDxtw7Zuc3Rlcj4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzQKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTgKIG1zZ2lkICJsaXN0IGFsbCBjb21taXRzIHJlYWNoYWJsZSBmcm9tIGFsbCByZWZzIgogbXNnc3RyICJsaXN0YSBhbGxhIGluY2hlY2tuaW5nYXIgc29tIGthbiBuw6VzIGFsbGEgcmVmZXJlbnNlciIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOQogbXNnaWQgInJlYWQgZnJvbSBzdGRpbiIKIG1zZ3N0ciAibMOkcyBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyMAogbXNnaWQgImFsbG93IHRvIHByaW50IGB1bmRlZmluZWRgIG5hbWVzIgogbXNnc3RyICJ0aWxsw6V0IGF0dCBza3JpdmEgXCJvZGVmaW5pZXJhZGVcIiBuYW1uIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjYKK21zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGluIHRoZSBpbnB1dCAoaW50ZXJuYWwgdXNlKSIKK21zZ3N0ciAiYXZyZWZlcmVyYSB0YWdnYXIgaSBpbmRhdGEgKGFudsOkbmRzIGludGVybnQpIgorCisjOiBidWlsdGluL25vdGVzLmM6MjQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPG9iamVjdD5dXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8YW50ZWNrbmluZ3NyZWY+XSBbbGlzdCBbPG9iamVrdD5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3CisjOiBidWlsdGluL25vdGVzLmM6MjUKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKQEAgLTY1MTgsMTIgKzY5NDgsMTIgQEAKICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIGFkZCBbLWZdIFstbSA8bWVkZD4gfCAtRiA8ZmlsPiB8ICgtYyB8IC0iCiAiQykgPG9iamVrdD5dIFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOAorIzogYnVpbHRpbi9ub3Rlcy5jOjI2CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gY29weSBbLWZdIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIGNvcHkgWy1mXSA8ZnLDpW4tb2JqZWt0PiA8dGlsbC1vYmpla3Q+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MjkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNwogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhcHBlbmQgWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKQEAgLTY1MzEsMjIxICs2OTYxLDIwMCBAQAogImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gYXBwZW5kIFstbSA8bWVkZD4gfCAtRiA8ZmlsPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVrdD5dIFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMAorIzogYnVpbHRpbi9ub3Rlcy5jOjI4CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxhbnRlY2tuaW5nc3JlZj5dIGVkaXQgWzxvYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMxCisjOiBidWlsdGluL25vdGVzLmM6MjkKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBzaG93IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gc2hvdyBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzozMAogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxzdHJhdGVneT4gXSA8bm90ZXNfcmVmPiIKIG1zZ3N0ciAiIgogImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gbWVyZ2UgWy12IHwgLXFdIFstcyA8c3RyYXRlZ2k+IF0gIgogIjxhbnRlY2tuaW5nc3JlZj4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8YW50ZWNrbmluZ3NyZWY+XSByZW1vdmUgWzxvYmpla3Q+Li4uXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM2CisjOiBidWlsdGluL25vdGVzLmM6MzQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNQogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPGFudGVja25pbmdzcmVmPl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbbGlzdCBbPG9iamVrdD5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhZGQgWzxmbGFnZ29yPl0gWzxvYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUyCisjOiBidWlsdGluL25vdGVzLmM6NTAKIG1zZ2lkICJnaXQgbm90ZXMgY29weSBbPG9wdGlvbnM+XSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICJnaXQgbm90ZXMgY29weSBbPGZsYWdnb3I+XSA8ZnLDpW4tb2JqZWt0PiA8dGlsbC1vYmpla3Q+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MQogbXNnaWQgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD5dLi4uIgogbXNnc3RyICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8ZnLDpW4tb2JqZWt0PiA8dGlsbC1vYmpla3Q+XS4uLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4CisjOiBidWlsdGluL25vdGVzLmM6NTYKIG1zZ2lkICJnaXQgbm90ZXMgYXBwZW5kIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhcHBlbmQgWzxmbGFnZ29yPl0gWzxvYmpla3Q+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYzCisjOiBidWlsdGluL25vdGVzLmM6NjEKIG1zZ2lkICJnaXQgbm90ZXMgZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgZWRpdCBbPG9iamVrdD5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2NgogbXNnaWQgImdpdCBub3RlcyBzaG93IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBzaG93IFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3MworIzogYnVpbHRpbi9ub3Rlcy5jOjcxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIFs8b3B0aW9ucz5dIDxub3Rlc19yZWY+IgogbXNnc3RyICJnaXQgbm90ZXMgbWVyZ2UgWzxmbGFnZ29yPl0gPGFudGVja25pbmdzcmVmPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc0CisjOiBidWlsdGluL25vdGVzLmM6NzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPGZsYWdnb3I+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc1CisjOiBidWlsdGluL25vdGVzLmM6NzMKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxmbGFnZ29yPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorIzogYnVpbHRpbi9ub3Rlcy5jOjc4CiBtc2dpZCAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgcmVtb3ZlIFs8b2JqZWt0Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjgzCiBtc2dpZCAiZ2l0IG5vdGVzIHBydW5lIFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgcHJ1bmUgWzxmbGFnZ29yPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIHN0YXJ0YSBcInNob3dcIiBmw7ZyIG9iamVrdGV0IFwiJXNcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE0MworIzogYnVpbHRpbi9ub3Rlcy5jOjE0MQogbXNnaWQgImNvdWxkIG5vdCByZWFkICdzaG93JyBvdXRwdXQiCiBtc2dzdHIgImt1bmRlIGludGUgbMOkc2EgdXRkYXRhIGZyw6VuIFwic2hvd1wiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTUxCisjOiBidWlsdGluL25vdGVzLmM6MTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBhdnNsdXRhIFwic2hvd1wiIGbDtnIgb2JqZWt0ZXQgXCIlc1wiIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTY5IGJ1aWx0aW4vdGFnLmM6MzQxCisjOiBidWlsdGluL25vdGVzLmM6MTY3IGJ1aWx0aW4vdGFnLmM6MzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgZmlsZSAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIHNrYXBhIGZpbGVuIFwiJXNcIiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE4OAorIzogYnVpbHRpbi9ub3Rlcy5jOjE4NgogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG5vdGUgY29udGVudHMgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbiIKIG1zZ3N0ciAiQW5nZSBpbm5laMOlbGwgZsO2ciBhbnRlY2tuaW5nZW4gbWVkIGFudGluZ2VuIC1tIGVsbGVyIC1GIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjA5IGJ1aWx0aW4vbm90ZXMuYzo5NzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMDcgYnVpbHRpbi9ub3Rlcy5jOjg0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyBub3RlIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAiVGFyIGJvcnQgYW50ZWNrbmluZyBmw7ZyIG9iamVrdGV0ICVzXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbm90ZSBvYmplY3QiCiBtc2dzdHIgImt1bmRlIGludGUgc2tyaXZhIGFudGVja25pbmdzb2JqZWt0IgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE2CisjOiBidWlsdGluL25vdGVzLmM6MjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIkFudGVja25pbmdlbnMgaW5uZWjDpWxsIGhhciBsw6RtbmF0cyBrdmFyIGkgJXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAia3VuZGUgaW50ZSBsw6RzYSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTIgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICJrdW5kZSBpbnRlIMO2cHBuYSBlbGxlciBsw6RzYSBcIiVzXCIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNzEgYnVpbHRpbi9ub3Rlcy5jOjQ0NCBidWlsdGluL25vdGVzLmM6NDQ2Ci0jOiBidWlsdGluL25vdGVzLmM6NTA2IGJ1aWx0aW4vbm90ZXMuYzo1NjAgYnVpbHRpbi9ub3Rlcy5jOjY0MwotIzogYnVpbHRpbi9ub3Rlcy5jOjY0OCBidWlsdGluL25vdGVzLmM6NzIzIGJ1aWx0aW4vbm90ZXMuYzo3NjUKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NjcgYnVpbHRpbi90YWcuYzo1NTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNjkgYnVpbHRpbi9ub3Rlcy5jOjMxNiBidWlsdGluL25vdGVzLmM6MzE4CisjOiBidWlsdGluL25vdGVzLmM6Mzc4IGJ1aWx0aW4vbm90ZXMuYzo0MzIgYnVpbHRpbi9ub3Rlcy5jOjUxNQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyMCBidWlsdGluL25vdGVzLmM6NTk1IGJ1aWx0aW4vbm90ZXMuYzo2MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIkt1bmRlIGludGUgc2zDpSB1cHAgXCIlc1wiIHNvbSBlbiBnaWx0aWcgcmVmZXJlbnMuIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjc0CisjOiBidWlsdGluL25vdGVzLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBsw6RzYSBvYmpla3RldCBcIiVzXCIuIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjk4Ci1tc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgotbXNnc3RyICJLYW4gaW50ZSBjaGVja2EgaW4gb2luaXRpZXJhdC9vcmVmZXJlcmF0IGFudGVja25pbmdzdHLDpGQiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozMzkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgotbXNnc3RyICJGZWxha3RpZ3QgdsOkcmRlIGbDtnIgbm90ZXMucmV3cml0ZU1vZGU6ICclcyciCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozNDkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVmdXNpbmcgdG8gcmV3cml0ZSBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi1tc2dzdHIgIlbDpGdyYXIgc2tyaXZhIMO2dmVyIGFudGVja25pbmdhciBpICVzICh1dGFuZsO2ciByZWZzL25vdGVzLykiCi0KLSMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCi0jLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNzYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkICVzIHZhbHVlOiAnJXMnIgotbXNnc3RyICJGZWxha3RpZ3QgdsOkcmRlIHDDpSAlczogXCIlc1wiIgotCi0jOiBidWlsdGluL25vdGVzLmM6NDQwCisjOiBidWlsdGluL25vdGVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpbnB1dCBsaW5lOiAnJXMnLiIKIG1zZ3N0ciAiRmVsYWt0aWcgaW5kYXRhcmFkOiBcIiVzXCIuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDU1CisjOiBidWlsdGluL25vdGVzLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBjb3B5IG5vdGVzIGZyb20gJyVzJyB0byAnJXMnIgogbXNnc3RyICJNaXNzbHlja2FkZXMga29waWVyYSBhbnRlY2tuaW5nYXIgZnLDpW4gXCIlc1wiIHRpbGwgXCIlc1wiIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo1NTMgYnVpbHRpbi9ub3Rlcy5jOjYyNgotIzogYnVpbHRpbi9ub3Rlcy5jOjYzOCBidWlsdGluL25vdGVzLmM6NzExIGJ1aWx0aW4vbm90ZXMuYzo3NTgKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDMyCisjOiBidWlsdGluL25vdGVzLmM6MzcxIGJ1aWx0aW4vbm90ZXMuYzo0MjUgYnVpbHRpbi9ub3Rlcy5jOjQ5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjUxMCBidWlsdGluL25vdGVzLmM6NTgzIGJ1aWx0aW4vbm90ZXMuYzo2MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MDQKIG1zZ2lkICJ0b28gbWFueSBwYXJhbWV0ZXJzIgogbXNnc3RyICJmw7ZyIG3DpW5nYSBwYXJhbWV0cmFyIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzozODQgYnVpbHRpbi9ub3Rlcy5jOjY0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgogbXNnc3RyICJJbmdhIGFudGVja25pbmdhciBoaXR0YWRlcyBmw7ZyIG9iamVrdGV0ICVzLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNCBidWlsdGluL25vdGVzLmM6NjkxCisjOiBidWlsdGluL25vdGVzLmM6NDA2IGJ1aWx0aW4vbm90ZXMuYzo1NjMKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGFzIGEgc3RyaW5nIgogbXNnc3RyICJhbnRlY2tuaW5nc2lubmVow6VsbCBzb20gc3Ryw6RuZyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNyBidWlsdGluL25vdGVzLmM6Njk0CisjOiBidWlsdGluL25vdGVzLmM6NDA5IGJ1aWx0aW4vbm90ZXMuYzo1NjYKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGluIGEgZmlsZSIKIG1zZ3N0ciAiYW50ZWNrbmluZ3Npbm5laMOlbGwgaSBlbiBmaWwiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2Ci0jOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0CisjOiBidWlsdGluL25vdGVzLmM6NDExIGJ1aWx0aW4vbm90ZXMuYzo0MTQgYnVpbHRpbi9ub3Rlcy5jOjU2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU3MSBidWlsdGluL3RhZy5jOjQ3NAogbXNnaWQgIm9iamVjdCIKIG1zZ3N0ciAib2JqZWt0IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQwIGJ1aWx0aW4vbm90ZXMuYzo2OTcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTIgYnVpbHRpbi9ub3Rlcy5jOjU2OQogbXNnaWQgInJldXNlIGFuZCBlZGl0IHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAiw6V0ZXJhbnbDpG5kIG9jaCByZWRpZ2VyYSBhbmdpdmV0IGFudGVja25pbmdzb2JqZWt0IgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQzIGJ1aWx0aW4vbm90ZXMuYzo3MDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTUgYnVpbHRpbi9ub3Rlcy5jOjU3MgogbXNnaWQgInJldXNlIHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAiw6V0ZXJhbnbDpG5kIGFuZ2l2ZXQgYW50ZWNrbmluZ3NvYmpla3QiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDUgYnVpbHRpbi9ub3Rlcy5jOjYxMworIzogYnVpbHRpbi9ub3Rlcy5jOjQxNyBidWlsdGluL25vdGVzLmM6NDg1CiBtc2dpZCAicmVwbGFjZSBleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAiZXJzw6R0dCBiZWZpbnRsaWdhIGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU3OQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGFkZCBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKQEAgLTY3NTQsMjQgKzcxNjMsMjQgQEAKICJLYW4gaW50ZSBsw6RnZ2EgdGlsbCBhbnRlY2tuaW5nYXIuIEhpdHRhZGUgYmVmaW50bGlnYSBhbnRlY2tuaW5nYXIgZsO2ciAiCiAib2JqZWt0ZXQgJXMuIEFudsOkbmQgXCItZlwiIGbDtnIgYXR0IHNrcml2YSDDtnZlciBiZWZpbnRsaWdhIGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjOiBidWlsdGluL25vdGVzLmM6NDU2IGJ1aWx0aW4vbm90ZXMuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3ZlcndyaXRpbmcgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICJTa3JpdmVyIMO2dmVyIGJlZmludGxpZ2EgYW50ZWNrbmluZ2FyIGbDtnIgb2JqZWt0ZXQgJXNcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4NgogbXNnaWQgInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIgogbXNnc3RyICJsw6RzIG9iamVrdCBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4OAogbXNnaWQgImxvYWQgcmV3cml0aW5nIGNvbmZpZyBmb3IgPGNvbW1hbmQ+IChpbXBsaWVzIC0tc3RkaW4pIgogbXNnc3RyICJsw6RzIG9tc2tyaXZuaW5nc2luc3TDpGxsbmluZyBmw7ZyIDxrb21tYW5kbz4gKGltcGxpY2VyYXIgLS1zdGRpbikiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYKIG1zZ2lkICJ0b28gZmV3IHBhcmFtZXRlcnMiCiBtc2dzdHIgImbDtnIgZsOlIHBhcmFtZXRyYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NTUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCBjb3B5IG5vdGVzLiBGb3VuZCBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzLiBVc2UgJy1mJyB0byBvdmVyd3JpdGUgIgpAQCAtNjc4MCwxMiArNzE4OSwxMiBAQAogIkthbiBpbnRlIGtvcGllcmEgYW50ZWNrbmluZ2FyLiBIaXR0YWRlIGJlZmludGxpZ2EgYW50ZWNrbmluZ2FyIGbDtnIgb2JqZWt0ZXQgIgogIiVzLiBBbnbDpG5kIFwiLWZcIiBmw7ZyIGF0dCBza3JpdmEgw7Z2ZXIgYmVmaW50bGlnYSBhbnRlY2tuaW5nYXIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCiBtc2dzdHIgIkFudGVja25pbmdhciBww6Uga8OkbGxvYmpla3RldCAlcyBzYWtuYXMuIEthbiBpbnRlIGtvcGllcmEuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzE2CisjOiBidWlsdGluL25vdGVzLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgpAQCAtNjc5NCwxNSArNzIwMywxNSBAQAogIkZsYWdnb3JuYSAtbS8tRi8tYy8tQyByZWtvbW1lbmRlcmFzIGludGUgZsO2ciB1bmRlcmtvbW1hbmRvdCBcImVkaXRcIi5cbiIKICJBbnbDpG5kIFwiZ2l0IG5vdGVzIGFkZCAtZiAtbS8tRi8tYy8tQ1wiIGlzdMOkbGxldC5cbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2MworIzogYnVpbHRpbi9ub3Rlcy5jOjczNQogbXNnaWQgIkdlbmVyYWwgb3B0aW9ucyIKIG1zZ3N0ciAiQWxsbcOkbm5hIGZsYWdnb3IiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzcKIG1zZ2lkICJNZXJnZSBvcHRpb25zIgogbXNnc3RyICJGbGFnZ29yIGbDtnIgc2FtbWFuc2xhZ25pbmciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzkKIG1zZ2lkICIiCiAicmVzb2x2ZSBub3RlcyBjb25mbGljdHMgdXNpbmcgdGhlIGdpdmVuIHN0cmF0ZWd5IChtYW51YWwvb3Vycy90aGVpcnMvdW5pb24vIgogImNhdF9zb3J0X3VuaXEpIgpAQCAtNjgxMCw0NiArNzIxOSw0NiBAQAogImzDpHMga29uZmxpa3RlciBpIGFudGVja25pbmdhciBtZWQgYW5naXZlbiBzdHJhdGVnaSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uLyIKICJjYXRfc29ydF91bmlxKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2OQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MQogbXNnaWQgIkNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIkNoZWNrYXIgaW4gZWogc2FtbWFuc2xhZ25hIGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0MwogbXNnaWQgImZpbmFsaXplIG5vdGVzIG1lcmdlIGJ5IGNvbW1pdHRpbmcgdW5tZXJnZWQgbm90ZXMiCiBtc2dzdHIgIiIKICJmw6RyZGlnc3TDpGxsIHNhbW1hbnNsYWduaW5nIGF2IGFudGVja25pbmdhciBnZW5vbSBhdHQgY2hlY2thIGluIGVqICIKICJzYW1tYW5zbGFnbmEgYW50ZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODczCisjOiBidWlsdGluL25vdGVzLmM6NzQ1CiBtc2dpZCAiQWJvcnRpbmcgbm90ZXMgbWVyZ2UgcmVzb2x1dGlvbiIKIG1zZ3N0ciAiQXZicnl0IGzDtnNuaW5nIGF2IHNhbW1hbnNsYWduaW5nIGF2IGFudGVja25pbmdhciIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjc0NwogbXNnaWQgImFib3J0IG5vdGVzIG1lcmdlIgogbXNnc3RyICJhdmJyeXQgc2FtbWFuc2xhZ25pbmcgYXYgYW50ZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTcwCisjOiBidWlsdGluL25vdGVzLmM6ODQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9iamVjdCAlcyBoYXMgbm8gbm90ZVxuIgogbXNnc3RyICJPYmpla3RldCAlcyBoYXIgaW5nZW4gYW50ZWNrbmluZ1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICJmw7Zyc8O2ayBhdHQgdGEgYm9ydCBpY2tlLWV4aXN0ZXJhbmRlIGFudGVja25pbmdhciDDpHIgaW50ZSBldHQgZmVsIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTg1CisjOiBidWlsdGluL25vdGVzLmM6ODU3CiBtc2dpZCAicmVhZCBvYmplY3QgbmFtZXMgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImzDpHMgb2JqZWt0bmFtbiBmcsOlbiBzdGFuZGFyZCBpbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjEwNjYKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MzgKIG1zZ2lkICJub3Rlc19yZWYiCiBtc2dzdHIgImFudGVja25pbmdhci1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDY3CisjOiBidWlsdGluL25vdGVzLmM6OTM5CiBtc2dpZCAidXNlIG5vdGVzIGZyb20gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImFudsOkbmQgYW50ZWNrbmluZ2FyIGZyw6VuIDxhbnRlY2tuaW5nc3JlZj4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMTAyIGJ1aWx0aW4vcmVtb3RlLmM6MTU5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjk3NCBidWlsdGluL3JlbW90ZS5jOjE1OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBzdWJjb21tYW5kOiAlcyIKIG1zZ3N0ciAiT2vDpG50IHVuZGVya29tbWFuZG86ICVzIgpAQCAtNzA4NSw3ICs3NDk0LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTIxCisjOiBidWlsdGluL3B1c2guYzoxMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTcxMDAsNyArNzUwOSw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbW4tcMOlLWZqw6RycmdyZW4+XG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyOAorIzogYnVpbHRpbi9wdXNoLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG5vIHVwc3RyZWFtIGJyYW5jaC5cbiIKQEAgLTcxMTMsMTIgKzc1MjIsMTIgQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggLS1zZXQtdXBzdHJlYW0gJXMgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM2CisjOiBidWlsdGluL3B1c2guYzoxMzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBtdWx0aXBsZSB1cHN0cmVhbSBicmFuY2hlcywgcmVmdXNpbmcgdG8gcHVzaC4iCiBtc2dzdHIgIkRlbiBha3R1ZWxsYSBncmVuZW4gJXMgaGFyIGZsZXJhIHVwcHN0csO2bXNncmVuYXIsIHbDpGdyYXIgc8OkbmRhLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjOiBidWlsdGluL3B1c2guYzoxNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgpAQCAtNzEyOSw3ICs3NTM4LDcgQEAKICJha3R1ZWxsYSBncmVuZW4gXCIlc1wiLCB1dGFuIGF0dCB0YWxhIG9tIGbDtnIgbWlnIHZhZCBzb21cbiIKICJza2FsbCBzw6RuZGFzIGbDtnIgYXR0IHVwcGRhdGVyYSBmasOkcnJncmVuZW4uIgogCi0jOiBidWlsdGluL3B1c2guYzoxNTEKKyM6IGJ1aWx0aW4vcHVzaC5jOjE2NQogbXNnaWQgIiIKICJwdXNoLmRlZmF1bHQgaXMgdW5zZXQ7IGl0cyBpbXBsaWNpdCB2YWx1ZSBpcyBjaGFuZ2luZyBpblxuIgogIkdpdCAyLjAgZnJvbSAnbWF0Y2hpbmcnIHRvICdzaW1wbGUnLiBUbyBzcXVlbGNoIHRoaXMgbWVzc2FnZVxuIgpAQCAtNzE2MywyNiArNzU3MiwyNiBAQAogImxpa25hbmRlIGzDpGdldCBcImN1cnJlbnRcIiBpc3TDpGxsZXQgZsO2ciBcInNpbXBsZVwiIG9tIGR1IGlibGFuZCBhbnbDpG5kZXJcbiIKICLDpGxkcmUgdmVyc2lvbmVyIGF2IEdpdC4pIgogCi0jOiBidWlsdGluL3B1c2guYzoxOTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNQogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCiAiRHUgYW5nYXYgaW5nYSByZWZlcmVuc3NwZWNpZmlrYXRpb25lciBhdHQgc8OkbmRhLCBvY2ggcHVzaC5kZWZhdWx0IMOkciAiCiAiXCJub3RoaW5nXCIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMDYKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzMgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCi0iaXRzIHJlbW90ZSBjb3VudGVycGFydC4gTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpXG4iCi0iYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgorIidnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIlVwcGRhdGVyaW5nYXIgYXZ2aXNhZGVzIGTDpSDDpG5kZW4gcMOlIGRpbiBiZWZpbnRsaWdhIGdyZW4gw6RyIGJha29tXG4iCi0iZGVzcyBmasOkcnJtb3RzdmFyaWdoZXQuIFNsw6UgaWhvcCBmasOkcnLDpG5kcmluZ2FybmEgKHQuZXguIFwiZ2l0IHB1bGxcIilcbiIKLSJpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCisiZGVzcyBmasOkcnJtb3RzdmFyaWdoZXQuIEludGVncmVyYSBmasOkcnLDpG5kcmluZ2FybmEgKHQuZXhcbiIKKyJcImdpdCBwdWxsIC4uLi5cIikgaW5uYW4gZHUgc8OkbmRlciBpZ2VuLlxuIgogIlNlIGF2c25pdHRldCBcIk5vdGUgYWJvdXQgZmFzdC1mb3J3YXJkXCIgaSBcImdpdCBwdXNoIC0taGVscFwiIGbDtnIgZGV0YWxqZXIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTcxOTYsMzcgKzc2MDUsMzcgQEAKICJlbmRhc3RcbiIKICJzw6RuZGEgYWt0dWVsbCBncmVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjE4CisjOiBidWlsdGluL3B1c2guYzoyNDQKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgYSBwdXNoZWQgYnJhbmNoIHRpcCBpcyBiZWhpbmQgaXRzIHJlbW90ZVxuIgotImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgotIihlLmcuICdnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorImNvdW50ZXJwYXJ0LiBDaGVjayBvdXQgdGhpcyBicmFuY2ggYW5kIGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJVcHBkYXRlcmluZ2FyIGF2dmlzYWRlcyBkw6Ugw6RuZGVuIHDDpSBlbiBncmVuIHNvbSBzw6RuZHMgaW4gw6RyIGJha29tIGRlc3NcbiIKLSJmasOkcnJtb3RzdmFyaWdoZXQuIENoZWNrYSB1dCBncmVuZW4gb2NoIHNsw6UgaWhvcCBmasOkcnLDpG5kcmluZ2FybmEgKHQuZXguXG4iCi0iXCJnaXQgcHVsbFwiKSBpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCisiZmrDpHJybW90c3ZhcmlnaGV0LiBDaGVja2EgdXQgZ3JlbmVuIG9jaCBpbnRlZ3JlcmEgZmrDpHJyw6RuZHJpbmdhcm5hICh0LmV4LlxuIgorIlwiZ2l0IHB1bGwgLi4uXCIpIGlubmFuIGR1IHPDpG5kZXIgaWdlbi5cbiIKICJTZSBhdnNuaXR0ZXQgXCJOb3RlIGFib3V0IGZhc3QtZm9yd2FyZFwiIGkgXCJnaXQgcHVzaCAtLWhlbHBcIiBmw7ZyIGRldGFsamVyLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjI0CisjOiBidWlsdGluL3B1c2guYzoyNTAKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHJlbW90ZSBjb250YWlucyB3b3JrIHRoYXQgeW91IGRvXG4iCiAibm90IGhhdmUgbG9jYWxseS4gVGhpcyBpcyB1c3VhbGx5IGNhdXNlZCBieSBhbm90aGVyIHJlcG9zaXRvcnkgcHVzaGluZ1xuIgotInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IG1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLixcbiIKLSInZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4sICdnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIlVwcGRhdGVyaW5nYXIgYXZ2aXNhZGVzIGTDpSBmasOkcnJlbiBpbm5laMOlbGxlciDDpG5kcmluZ2FyIHNvbSBkdSBpbnRlXG4iCiAiaGFyIGxva2FsdC4gRGV0IGJlcm9yIG9mdGFzdCBww6UgYXR0IGV0dCBhbm5hdCBhcmtpdiBoYXIgc8OkbnQgaW4gc2FtbWFcbiIKLSJyZWZlcmVuc2VyLiBEZXQga2FuIHZhcmEgZW4gaWTDqSBhdHQgZsO2cnN0IHNsw6UgaWhvcCBmasOkcnLDpG5kcmluZ2FybmFcbiIKLSIodC5leC4gXCJnaXQgcHVsbFwiKSBpbm5hbiBkdSBzw6RuZGVyIGlnZW4uXG4iCisicmVmZXJlbnNlci4gRGV0IGthbiB2YXJhIGVuIGlkw6kgYXR0IGbDtnJzdCBpbnRlZ3JlcmEgZmrDpHJyw6RuZHJpbmdhcm5hXG4iCisiKHQuZXguIFwiZ2l0IHB1bGwgLi4uXCIpIGlubmFuIGR1IHPDpG5kZXIgaWdlbi5cbiIKICJTZSBhdnNuaXR0ZXQgXCJOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHNcIiBpIFwiZ2l0IHB1c2ggLS1oZWxwXCIgZsO2ciBkZXRhbGplci4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorIzogYnVpbHRpbi9wdXNoLmM6MjU3CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAiVXBwZGF0ZXJpbmdhcm5hIGF2dmlzYWRlcyBlZnRlcnNvbSB0YWdnZW4gcmVkYW4gZmlubnMgcMOlIGZqw6RycmVuLiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjM0CisjOiBidWlsdGluL3B1c2guYzoyNjAKIG1zZ2lkICIiCiAiWW91IGNhbm5vdCB1cGRhdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCiAib3IgdXBkYXRlIGEgcmVtb3RlIHJlZiB0byBtYWtlIGl0IHBvaW50IGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCkBAIC03MjM3LDIyICs3NjQ2LDIyIEBACiAicGVrYXIgcMOlIG7DpWdvdCBzb20gaW50ZSDDpHIgZW4gaW5jaGVja25pbmcsIHV0YW4gYXR0IGFudsOkbmRhIGZsYWdnYW5cbiIKICJcIi0tZm9yY2VcIi5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk0CisjOiBidWlsdGluL3B1c2guYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHVzaGluZyB0byAlc1xuIgogbXNnc3RyICJTw6RuZGVyIHRpbGwgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk4CisjOiBidWlsdGluL3B1c2guYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCiBtc2dzdHIgIm1pc3NseWNrYWRlcyBzw6RuZGEgdmlzc2EgcmVmZXJlbnNlciB0aWxsIFwiJXNcIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMxCisjOiBidWlsdGluL3B1c2guYzozNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHJlcG9zaXRvcnkgJyVzJyIKIG1zZ3N0ciAiZmVsYWt0aWd0IGFya2l2IFwiJXNcIiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMyCisjOiBidWlsdGluL3B1c2guYzozNTgKIG1zZ2lkICIiCiAiTm8gY29uZmlndXJlZCBwdXNoIGRlc3RpbmF0aW9uLlxuIgogIkVpdGhlciBzcGVjaWZ5IHRoZSBVUkwgZnJvbSB0aGUgY29tbWFuZC1saW5lIG9yIGNvbmZpZ3VyZSBhIHJlbW90ZSAiCkBAIC03MjczLDg3ICs3NjgyLDg3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIDxuYW1uPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzozNDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3MwogbXNnaWQgIi0tYWxsIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwgb2NoIC0tdGFncyDDpHIgaW5rb21wYXRpYmxhIgogCi0jOiBidWlsdGluL3B1c2guYzozNDgKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3NAogbXNnaWQgIi0tYWxsIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIi0tYWxsIGthbiBpbnRlIGtvbWJpbmVyYXMgbWVkIHJlZmVyZW5zc3BlY2lmaWthdGlvbmVyIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3OQogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1taXJyb3Igb2NoIC0tdGFncyDDpHIgaW5rb21wYXRpYmxhIgogCi0jOiBidWlsdGluL3B1c2guYzozNTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4MAogbXNnaWQgIi0tbWlycm9yIGNhbid0IGJlIGNvbWJpbmVkIHdpdGggcmVmc3BlY3MiCiBtc2dzdHIgIi0tbWlycm9yIGthbiBpbnRlIGtvbWJpbmVyYXMgbWVkIHJlZmVyZW5zc3BlY2lmaWthdGlvbmVyIgogCi0jOiBidWlsdGluL3B1c2guYzozNTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4NQogbXNnaWQgIi0tYWxsIGFuZCAtLW1pcnJvciBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWFsbCBvY2ggLS1taXJyb3Igw6RyIGlua29tcGF0aWJsYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDE5CisjOiBidWlsdGluL3B1c2guYzo0NDUKIG1zZ2lkICJyZXBvc2l0b3J5IgogbXNnc3RyICJhcmtpdiIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIwCisjOiBidWlsdGluL3B1c2guYzo0NDYKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICJzw6RuZCBhbGxhIHJlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMQorIzogYnVpbHRpbi9wdXNoLmM6NDQ3CiBtc2dpZCAibWlycm9yIGFsbCByZWZzIgogbXNnc3RyICJzcGVnbGEgYWxsYSByZWZlcmVuc2VyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0OQogbXNnaWQgImRlbGV0ZSByZWZzIgogbXNnc3RyICJ0YSBib3J0IHJlZmVyZW5zZXIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyNAorIzogYnVpbHRpbi9wdXNoLmM6NDUwCiBtc2dpZCAicHVzaCB0YWdzIChjYW4ndCBiZSB1c2VkIHdpdGggLS1hbGwgb3IgLS1taXJyb3IpIgogbXNnc3RyICJzw6RuZCB0YWdnYXIgKGthbiBpbnRlIGFudsOkbmRhcyBtZWQgLS1hbGwgZWxsZXIgLS1taXJyb3IpIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgInR2aW5nYSB1cHBkYXRlcmluZ2FyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NAogbXNnaWQgImNoZWNrIgogbXNnc3RyICJrb250cm9sbGVyYSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI5CisjOiBidWlsdGluL3B1c2guYzo0NTUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBwdXNoaW5nIG9mIHN1Ym1vZHVsZXMiCiBtc2dzdHIgInN0eXIgcmVrdXJzaXYgaW5zw6RuZG5pbmcgYXYgdW5kZXJtb2R1bGVyIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgImFudsOkbmQgdHVubmEgcGFrZXQiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAicHJvZ3JhbSBmw7ZyIGF0dCB0YSBlbW90IHBha2V0IgogCi0jOiBidWlsdGluL3B1c2guYzo0MzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MAogbXNnaWQgInNldCB1cHN0cmVhbSBmb3IgZ2l0IHB1bGwvc3RhdHVzIgogbXNnc3RyICJzdMOkbGwgaW4gdXBwc3Ryw7ZtIGbDtnIgZ2l0IHB1bGwvc3RhdHVzIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MwogbXNnaWQgInBydW5lIGxvY2FsbHkgcmVtb3ZlZCByZWZzIgogbXNnc3RyICJ0YSBib3J0IGxva2FsdCBib3J0dGFnbmEgcmVmZXJlbnNlciIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDM5CisjOiBidWlsdGluL3B1c2guYzo0NjUKIG1zZ2lkICJieXBhc3MgcHJlLXB1c2ggaG9vayIKIG1zZ3N0ciAiZsO2cmJpZ8OlIHByZS1wdXNoLWtyb2siCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0MAorIzogYnVpbHRpbi9wdXNoLmM6NDY2CiBtc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgogbXNnc3RyICJzw6RuZCBpbiBzYWtuYWRlIG1lbiByZWxldmFudGEgdGFnZ2FyIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTAKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3NgogbXNnaWQgIi0tZGVsZXRlIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWxsLCAtLW1pcnJvciBhbmQgLS10YWdzIgogbXNnc3RyICItLWRlbGV0ZSDDpHIgaW1rb21wYXRpYmVsIG1lZCAtLWFsbCwgLS1taXJyb3Igb2NoIC0tdGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUyCisjOiBidWlsdGluL3B1c2guYzo0NzgKIG1zZ2lkICItLWRlbGV0ZSBkb2Vzbid0IG1ha2Ugc2Vuc2Ugd2l0aG91dCBhbnkgcmVmcyIKIG1zZ3N0ciAiLS1kZWxldGUga2FuIGludGUgYW52w6RuZGFzIHV0YW4gcmVmZXJlbnNlciIKIApAQCAtNzM2Nyw3MCArNzc3Niw4MCBAQAogIlstdSBbLS1leGNsdWRlLXBlci1kaXJlY3Rvcnk9PGdpdGlnbm9yZT5dIHwgLWldXSBbLS1uby1zcGFyc2UtY2hlY2tvdXRdIFstLSIKICJpbmRleC1vdXRwdXQ9PGZpbD5dICgtLWVtcHR5IHwgPHRyw6RkLWlndDE+IFs8dHLDpGQtaWd0Mj4gWzx0csOkZC1pZ3QzPl1dKSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA5CiBtc2dpZCAid3JpdGUgcmVzdWx0aW5nIGluZGV4IHRvIDxmaWxlPiIKIG1zZ3N0ciAic2tyaXYgcmVzdWx0ZXJhbmRlIGluZGV4IHRpbGwgPGZpbD4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTExCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgogbXNnaWQgIm9ubHkgZW1wdHkgdGhlIGluZGV4IgogbXNnc3RyICJ0w7ZtIGJhcmEgaW5kZXhldCIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE0CiBtc2dpZCAiTWVyZ2luZyIKIG1zZ3N0ciAiU2FtbWFuc2xhZ25pbmciCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNgogbXNnaWQgInBlcmZvcm0gYSBtZXJnZSBpbiBhZGRpdGlvbiB0byBhIHJlYWQiCiBtc2dzdHIgInV0ZsO2ciBlbiBzYW1tYW5zbGFnbmluZyBpIHRpbGzDpGdnIHRpbGwgZW4gbMOkc25pbmciCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOAogbXNnaWQgIjMtd2F5IG1lcmdlIGlmIG5vIGZpbGUgbGV2ZWwgbWVyZ2luZyByZXF1aXJlZCIKIG1zZ3N0ciAiMy12w6Rnc3NhbW1hbnNsYWduaW5nIG9tIHNhbW1hbnNsYWduaW5nIHDDpSBmaWxuaXbDpSBlaiBrcsOkdnMiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMAogbXNnaWQgIjMtd2F5IG1lcmdlIGluIHByZXNlbmNlIG9mIGFkZHMgYW5kIHJlbW92ZXMiCiBtc2dzdHIgIjMtdsOkZ3NzYW1tYW5zbGFnbmluZyBuw6RyIGRldCBmaW5ucyB0aWxsw6RnZyBvY2ggYm9ydHRhZ25pbmdhciIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCiBtc2dpZCAic2FtZSBhcyAtbSwgYnV0IGRpc2NhcmQgdW5tZXJnZWQgZW50cmllcyIKIG1zZ3N0ciAic29tIC1tLCBtZW4ga2FzdGEgYm9ydCBlaiBzYW1tYW5zbGFnbmEgcG9zdGVyIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKIG1zZ2lkICI8c3ViZGlyZWN0b3J5Pi8iCiBtc2dzdHIgIjx1bmRlcmthdGFsb2c+LyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI0CiBtc2dpZCAicmVhZCB0aGUgdHJlZSBpbnRvIHRoZSBpbmRleCB1bmRlciA8c3ViZGlyZWN0b3J5Pi8iCiBtc2dzdHIgImzDpHMgaW4gdHLDpGRldCBpIGluZGV4ZXQgdW5kZXIgPHVuZGVya2F0YWxvZz4vIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgogbXNnc3RyICJ1cHBkYXRlcmEgYXJiZXRza2F0YWxvZ2VuIG1lZCByZXN1bHRhdGV0IGZyw6VuIHNhbW1hbnNsYWduaW5nZW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQogbXNnaWQgImdpdGlnbm9yZSIKIG1zZ3N0ciAiZ2l0aWdub3JlIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzAKIG1zZ2lkICJhbGxvdyBleHBsaWNpdGx5IGlnbm9yZWQgZmlsZXMgdG8gYmUgb3ZlcndyaXR0ZW4iCiBtc2dzdHIgInRpbGzDpXQgZXhwbGljaXQgaWdub3JlcmFkZSBmaWxlciBhdHQgc2tyaXZhcyDDtnZlciIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzIKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTMzCiBtc2dpZCAiZG9uJ3QgY2hlY2sgdGhlIHdvcmtpbmcgdHJlZSBhZnRlciBtZXJnaW5nIgogbXNnc3RyICJrb250cm9sbGVyYSBpbnRlIGFyYmV0c2thdGFsb2dlbiBlZnRlciBzYW1tYW5zbGFnbmluZyIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM0CiBtc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgogbXNnc3RyICJ1cHBkYXRlcmEgaW50ZSBpbmRleGV0IGVsbGVyIGFyYmV0c2thdGFsb2dlbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzUKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM2CiBtc2dpZCAic2tpcCBhcHBseWluZyBzcGFyc2UgY2hlY2tvdXQgZmlsdGVyIgogbXNnc3RyICJob3BwYSDDtnZlciBhdHQgYXBwbGljZXJhIGZpbHRlciBmw7ZyIGdsZXMgdXRjaGVja25pbmciCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzOAogbXNnaWQgImRlYnVnIHVucGFjay10cmVlcyIKIG1zZ3N0ciAiZmVsc8O2ayB1bnBhY2stdHJlZXMiCiAKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzJyBmb3IgJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIlwiJXNcIiBmw7ZyIFwiJXNcIiDDpHIgaW50ZSBlbiBnaWx0aWcgdGlkc3N0w6RtcGVsIgorCisjOiBidWlsdGluL3JlZmxvZy5jOjYxNiBidWlsdGluL3JlZmxvZy5jOjYyMQorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKK21zZ3N0ciAiXCIlc1wiIMOkciBpbnRlIGVuIGdpbHRpZyB0aWRzc3TDpG1wZWwiCisKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTEKIG1zZ2lkICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCiBtc2dzdHIgImdpdCByZW1vdGUgWy12IHwgLS12ZXJib3NlXSIKQEAgLTgwMDQsOTYgKzg0MjMsOTYgQEAKIG1zZ2lkICJGYWlsZWQgdG8gZmluZCB0cmVlIG9mICVzLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBoaXR0YSB0csOkZGVyIGbDtnIgJXMuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6OTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCAlcyIKIG1zZ3N0ciAiSEVBRCDDpHIgbnUgcMOlICVzIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MTY5CisjOiBidWlsdGluL3Jlc2V0LmM6MTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyBhICVzIHJlc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBtZXJnZS4iCiBtc2dzdHIgIkthbiBpbnRlIHV0ZsO2cmEgZW4gJXMgw6V0ZXJzdMOkbGxuaW5nIG1pdHQgaSBlbiBzYW1tYW5zbGFnbmluZy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICJ2YXIgdHlzdCwgcmFwcG9ydGVyYSBlbmRhc3QgZmVsIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUwCisjOiBidWlsdGluL3Jlc2V0LmM6MjUzCiBtc2dpZCAicmVzZXQgSEVBRCBhbmQgaW5kZXgiCiBtc2dzdHIgIsOldGVyc3TDpGxsIEhFQUQgb2NoIGluZGV4IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjU0CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgogbXNnc3RyICLDpXRlcnN0w6RsbCBlbmRhc3QgSEVBRCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MyBidWlsdGluL3Jlc2V0LmM6MjU1CisjOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKIG1zZ2lkICJyZXNldCBIRUFELCBpbmRleCBhbmQgd29ya2luZyB0cmVlIgogbXNnc3RyICLDpXRlcnN0w6RsbCBIRUFELCBpbmRleCBvY2ggYXJiZXRza2F0YWxvZyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKIG1zZ3N0ciAiw6V0ZXJzdMOkbGwgSEVBRCBtZW4gYmVow6VsbCBsb2thbGEgw6RuZHJpbmdhciIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgogbXNnc3RyICJLdW5kZSBpbnRlIHNsw6UgdXBwIFwiJXNcIiBzb20gZW4gZ2lsdGlnIHJldmlzaW9uLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiS2FuIGludGUgdG9sa2Egb2JqZWt0ZXQgXCIlc1wiIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjgzCisjOiBidWlsdGluL3Jlc2V0LmM6Mjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCB0cmVlLiIKIG1zZ3N0ciAiS3VuZGUgaW50ZSBzbMOlIHVwcCBcIiVzXCIgc29tIGV0dCBnaWx0aWd0IHRyw6RkLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI5MgorIzogYnVpbHRpbi9yZXNldC5jOjI5NQogbXNnaWQgIi0tcGF0Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggLS17aGFyZCxtaXhlZCxzb2Z0fSIKIG1zZ3N0ciAiLS1wYXRjaCDDpHIgaW5rb21wYXRpYmVsIG1lZCAtLXtoYXJkLG1peGVkLHNvZnR9IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAxCisjOiBidWlsdGluL3Jlc2V0LmM6MzA0CiBtc2dpZCAiLS1taXhlZCB3aXRoIHBhdGhzIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnZ2l0IHJlc2V0IC0tIDxwYXRocz4nIGluc3RlYWQuIgogbXNnc3RyICIiCiAiLS1taXhlZCByZWtvbW1lbmRlcmFzIGludGUgbWVkIHPDtmt2w6RnYXI7IGFudsOkbmQgXCJnaXQgcmVzZXQgLS0gPHPDtmt2w6RnYXI+XCIuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjOiBidWlsdGluL3Jlc2V0LmM6MzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAiS2FuIGludGUgZ8O2cmEgJXMgw6V0ZXJzdMOkbGxuaW5nIG1lZCBzw7ZrdsOkZ2FyLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxMworIzogYnVpbHRpbi9yZXNldC5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiJXMgw6V0ZXJzdMOkbGxuaW5nIHRpbGzDpXRzIGludGUgaSBldHQgbmFrZXQgYXJraXYiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMzMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlc2V0IGluZGV4IGZpbGUgdG8gcmV2aXNpb24gJyVzJy4iCiBtc2dzdHIgIkt1bmRlIGludGUgw6V0ZXJzdMOkbGxhIGluZGV4ZmlsZW4gdGlsbCB2ZXJzaW9uZW4gXCIlc1wiLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzOQorIzogYnVpbHRpbi9yZXNldC5jOjM0MgogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgogbXNnc3RyICJPa8O2YWRlIMOkbmRyaW5nYXIgZWZ0ZXIgw6V0ZXJzdMOkbGxuaW5nOiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjM0NAorIzogYnVpbHRpbi9yZXNldC5jOjM0NwogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBuZXcgaW5kZXggZmlsZS4iCiBtc2dzdHIgIkt1bmRlIGludGUgc2tyaXZhIG55IGluZGV4ZmlsLiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozMzkKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ1CiBtc2dpZCAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXSIKIG1zZ3N0ciAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3VtZW50Pi4uLl0iCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MAogbXNnaWQgImtlZXAgdGhlIGAtLWAgcGFzc2VkIGFzIGFuIGFyZyIKIG1zZ3N0ciAiYmVow6VsbCBcIi0tXCIgc8OkbnQgc29tIGFyZ3VtZW50IgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NgorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTIKIG1zZ2lkICJzdG9wIHBhcnNpbmcgYWZ0ZXIgdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQiCiBtc2dzdHIgInNsdXRhIHRvbGthIGVmdGVyIGbDtnJzdGEgYXJndW1lbnQgc29tIGludGUgw6RyIGZsYWdnYSIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDcwCiBtc2dpZCAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKICIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKQEAgLTgxMDksMTkyICs4NTI4LDIxNiBAQAogInZhcmlhbnRlbi4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKLW1zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCi1tc2dzdHIgImdpdCByZXZlcnQgW2ZsYWdnb3JdIDxpbmNoZWNrbmluZy1pZ3Q+IgorbXNnaWQgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQtaXNoPi4uLiIKK21zZ3N0ciAiZ2l0IHJldmVydCBbZmxhZ2dvcl0gPGluY2hlY2tuaW5nLWlndD4uLi4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjMKIG1zZ2lkICJnaXQgcmV2ZXJ0IDxzdWJjb21tYW5kPiIKIG1zZ3N0ciAiZ2l0IHJldmVydCA8dW5kZXJrb21tYW5kbz4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjgKLW1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQtaXNoPiIKLW1zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIFtmbGFnZ29yXSA8aW5jaGVja25pbmctaWd0PiIKK21zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQtaXNoPi4uLiIKK21zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIFtmbGFnZ29yXSA8aW5jaGVja25pbmctaWd0Pi4uLiIKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOQogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCBjaGVycnktcGljayA8dW5kZXJrb21tYW5kbz4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzAgYnVpbHRpbi9yZXZlcnQuYzo5MgorIzogYnVpbHRpbi9yZXZlcnQuYzo3MSBidWlsdGluL3JldmVydC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICIlczogJXMga2FuIGludGUgYW52w6RuZGFzIG1lZCAlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA1CiBtc2dpZCAiZW5kIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAiYXZzbHV0YSByZXZlcnQtIGVsbGVyIGNoZXJyeS1waWNrLXNla3ZlbnMiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA0CisjOiBidWlsdGluL3JldmVydC5jOjEwNgogbXNnaWQgInJlc3VtZSByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIsOldGVydXBwdGEgcmV2ZXJ0LSBlbGxlciBjaGVycnktcGljay1zZWt2ZW5zIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKIG1zZ2lkICJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJhdmJyeXQgcmV2ZXJ0LSBlbGxlciBjaGVycnktcGljay1zZWt2ZW5zIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDgKIG1zZ2lkICJkb24ndCBhdXRvbWF0aWNhbGx5IGNvbW1pdCIKIG1zZ3N0ciAiY2hlY2thIGludGUgaW4gYXV0b21hdGlza3QiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CisjOiBidWlsdGluL3JldmVydC5jOjEwOQogbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJyZWRpZ2VyYSBpbmNoZWNrbmluZ3NtZWRkZWxhbmRldCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTAKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCiBtc2dpZCAicGFyZW50IG51bWJlciIKIG1zZ3N0ciAibnVtbWVyIHDDpSBmw7Zyw6RsZGVyIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAic2FtbWFuc2xhZ25pbnNzdHJhdGVnaSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE1CiBtc2dpZCAib3B0aW9uIgogbXNnc3RyICJhbHRlcm5hdGl2IgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJhbHRlcm5hdGl2IGZvzIhyIHNhbW1hbnNsYWduaW5nc3N0cmF0ZWdpIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgImzDpGdnIHRpbGwgaW5jaGVja25pbmdzbmFtbiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICJ0aWxsw6V0IHNuYWJic3BvbG5pbmciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CisjOiBidWlsdGluL3JldmVydC5jOjEyOQogbXNnaWQgInByZXNlcnZlIGluaXRpYWxseSBlbXB0eSBjb21taXRzIgogbXNnc3RyICJiZWjDpWxsIGluY2hlY2tuaW5nYXIgc29tIGLDtnJqYXIgc29tIHRvbW1hIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzAKIG1zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCiBtc2dzdHIgInRpbGzDpXQgaW5jaGVja25pbmdhciBtZWQgdG9tdCBtZWRkZWxhbmRlIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiYmVow6VsbCByZWR1bmRhbnRhLCB0b21tYSBpbmNoZWNrbmluZ2FyIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEzMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMzUKIG1zZ2lkICJwcm9ncmFtIGVycm9yIgogbXNnc3RyICJwcm9ncmFtZmVsIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyMworIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICJcInJldmVydFwiIG1pc3NseWNrYWRlcyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoyMzgKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjQwCiBtc2dpZCAiY2hlcnJ5LXBpY2sgZmFpbGVkIgogbXNnc3RyICJcImNoZXJyeS1waWNrXCIgbWlzc2x5Y2thZGVzIgogCi0jOiBidWlsdGluL3JtLmM6MTUKKyM6IGJ1aWx0aW4vcm0uYzoxNgogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBbZmxhZ2dvcl0gWy0tXSA8ZmlsPi4uLiIKIAotIzogYnVpbHRpbi9ybS5jOjY0IGJ1aWx0aW4vcm0uYzoxODYKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6NjQKIG1zZ2lkICIiCi0ic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKVxuIgorInVzZXMgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIHN1Ym1vZHVsZXMgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IgorbXNnc3RyWzBdICIiCisiZsO2bGphbmRlIHVuZGVybW9kdWwgKGVsbGVyIGVuIGF2IGRlc3MgbsOkc3RsYWRlIHVuZGVybW9kdWxlcilcbiIKKyJhbnbDpG5kZXIgZW4gLmdpdC1rYXRhbG9nOiIKK21zZ3N0clsxXSAiIgorImbDtmxqYW5kZSB1bmRlcm1vZHVsZXIgKGVsbGVyIGVuIGF2IGRlcmFzIG7DpHN0bGFkZSB1bmRlcm1vZHVsZXIpXG4iCisiYW52w6RuZGVyIGVuIC5naXQta2F0YWxvZzoiCisKKyM6IGJ1aWx0aW4vcm0uYzo3MAorbXNnaWQgIiIKKyJcbiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCiBtc2dzdHIgIiIKLSJ1bmRlcm1vZHVsZW4gXCIlc1wiIChlbGxlciBlbiBhdiBkZXNzIHVuZGVybW9kdWxlcikgYW52w6RuZGVyIGVuIC5naXQtIgotImthdGFsb2dcbiIKKyJcbiIKICIoYW52w6RuZCBcInJtIC1yZlwiIG9tIGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIG9jaCBhbGwgZGVzcyBoaXN0b3JpaykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNzQKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjMwCiBtc2dpZCAiIgotIiclcycgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlIGZpbGUgYW5kIHRoZSBIRUFEXG4iCisidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZVxuIgorImZpbGUgYW5kIHRoZSBIRUFEOiIKK21zZ3N0clswXSAiIgorImbDtmxqYW5kZSBmaWwgaGFyIGvDtmF0IGlubmVow6VsbCBzb20gc2tpbGplciBzaWcgYsOlZGUgZnLDpW4gZmlsZW4gb2NoIEhFQUQ6IgorbXNnc3RyWzFdICIiCisiZsO2bGphbmRlIGZpbGVyIGhhciBrw7ZhdCBpbm5laMOlbGwgc29tIHNraWxqZXIgc2lnIGLDpWRlIGZyw6VuIGZpbGVuIG9jaCBIRUFEOiIKKworIzogYnVpbHRpbi9ybS5jOjIzNQorbXNnaWQgIiIKKyJcbiIKICIodXNlIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0iXCIlc1wiIGhhciBrw7ZhdCDDpG5kcmluZ2FyIHNvbSBza2lsamVyIHNpZyBiw6VkZSBmcsOlbiBmaWxlbiBvY2ggSEVBRFxuIgorIlxuIgogIihhbnbDpG5kIC1mIGbDtnIgYXR0IHR2aW5nYSBib3J0dGFnbmluZykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxODAKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjM5Cittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ3N0clswXSAiZsO2bGphbmRlIGZpbCBoYXIgw6RuZHJpbmdhciBrw7ZhZGUgaSBpbmRleGV0OiIKK21zZ3N0clsxXSAiZsO2bGphbmRlIGZpbGVyIGhhciDDpG5kcmluZ2FyIGvDtmFkZSBpIGluZGV4ZXQ6IgorCisjOiBidWlsdGluL3JtLmM6MjQzIGJ1aWx0aW4vcm0uYzoyNTQKIG1zZ2lkICIiCi0iJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisiXG4iCiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKIG1zZ3N0ciAiIgotIlwiJXNcIiBoYXIga8O2YWRlIMOkbmRyaW5nYXIgaSBpbmRleGV0XG4iCisiXG4iCiAiKGFudsOkbmQgLS1jYWNoZWQgZsO2ciBhdHQgYmVow6VsbGEgZmlsZW4gZWxsZXIgLWYgZsO2ciBhdHQgdHZpbmdhIGJvcnR0YWduaW5nKSIKIAotIzogYnVpbHRpbi9ybS5jOjE5MQotIywgYy1mb3JtYXQKLW1zZ2lkICIiCi0iJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCi1tc2dzdHIgIiIKLSJcIiVzXCIgaGFyIGxva2FsYSDDpG5kcmluZ2FyXG4iCi0iKGFudsOkbmQgLS1jYWNoZWQgZsO2ciBhdHQgYmVow6VsbGEgZmlsZW4gZWxsZXIgLWYgZsO2ciBhdHQgdHZpbmdhIGJvcnR0YWduaW5nKSIKKyM6IGJ1aWx0aW4vcm0uYzoyNTEKK21zZ2lkICJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dzdHJbMF0gImbDtmxqYW5kZSBmaWwgaGFyIGxva2FsYSDDpG5kcmluZ2FyOiIKK21zZ3N0clsxXSAiZsO2bGphbmRlIGZpbGVyIGhhciBsb2thbGEgw6RuZHJpbmdhcjoiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICJsaXN0YSBpbnRlIGJvcnR0YWduYSBmaWxlciIKIAotIzogYnVpbHRpbi9ybS5jOjIwOAorIzogYnVpbHRpbi9ybS5jOjI3MAogbXNnaWQgIm9ubHkgcmVtb3ZlIGZyb20gdGhlIGluZGV4IgogbXNnc3RyICJ0YSBiYXJhIGJvcnQgZnLDpW4gaW5kZXhldCIKIAotIzogYnVpbHRpbi9ybS5jOjIwOQorIzogYnVpbHRpbi9ybS5jOjI3MQogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICLDtnZlcnN0eXIgw6Bqb3VyLXRlc3RldCIKIAotIzogYnVpbHRpbi9ybS5jOjIxMAorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICJ0aWxsw6V0IHJla3Vyc2l2IGJvcnR0YWduaW5nIgogCi0jOiBidWlsdGluL3JtLmM6MjEyCisjOiBidWlsdGluL3JtLmM6Mjc0CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgImF2c2x1dGEgbWVkIG5vbGxzdGF0dXMgw6R2ZW4gb20gaW5nZXQgdHLDpGZmYWRlcyIKIAotIzogYnVpbHRpbi9ybS5jOjI4MworIzogYnVpbHRpbi9ybS5jOjM0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgcmVtb3ZpbmcgJyVzJyByZWN1cnNpdmVseSB3aXRob3V0IC1yIgogbXNnc3RyICJ0YXIgaW50ZSBib3J0IFwiJXNcIiByZWt1cnNpdnQgdXRhbiAtciIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgImdpdCBybToga2FuIGludGUgdGEgYm9ydCAlcyIKIAogIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzCi1tc2dpZCAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgotbXNnc3RyICIiCi0iZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1mbGFnZ29yXSBbLS1dIFs8aW5jaGVja25pbmctaWQ+Li4uIF0iCittc2dpZCAiZ2l0IHNob3J0bG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSBbPHBhdGg+Li4uXV0iCittc2dzdHIgImdpdCBzaG9ydGxvZyBbPGZsYWdnb3I+XSBbPHZlcnNpb25zaW50ZXJ2YWxsPl0gW1stLV0gPHPDtmt2w6RnPi4uLl0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJGw7ZyZmF0dGFyZSBzYWtuYXM6ICVzIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjI5CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjI4CiBtc2dpZCAic29ydCBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBudW1iZXIgb2YgY29tbWl0cyBwZXIgYXV0aG9yIgogbXNnc3RyICJzb3J0ZXJhIHV0ZGF0YSBlbmxpZ3QgYW50YWwgaW5jaGVja25pbmdhciBwZXIgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzEKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzAKIG1zZ2lkICJTdXBwcmVzcyBjb21taXQgZGVzY3JpcHRpb25zLCBvbmx5IHByb3ZpZGVzIGNvbW1pdCBjb3VudCIKIG1zZ3N0ciAiVW5kZXJ0cnljayBiZXNrcml2bmluZ2FyLCB2aXNhIGJhcmEgYW50YWwgaW5jaGVja25pbmdhciIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMworIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMgogbXNnaWQgIlNob3cgdGhlIGVtYWlsIGFkZHJlc3Mgb2YgZWFjaCBhdXRob3IiCiBtc2dzdHIgIlZpc2EgZS1wb3N0YWRyZXNzIGbDtnIgdmFyamUgZsO2cmZhdHRhcmUiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzUKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIlJhZGJyeXQgdXRkYXRhIgogCkBAIC04MzE0LDQ3ICs4NzU3LDQ3IEBACiBtc2dpZCAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPGJhc2U+XV0gWy0tbGlzdF0gWzxyZWY+XSIKIG1zZ3N0ciAiZ2l0IHNob3ctYnJhbmNoICgtZ3wtLXJlZmxvZylbPTxuPlssPGJhcz5dXSBbLS1saXN0XSBbPHJlZj5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUxCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUwCiBtc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgogbXNnc3RyICJ2aXNhIGZqw6RycnNww6VyYW5kZSBvY2ggbG9rYWxhIGdyZW5hciIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MgogbXNnaWQgInNob3cgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICJ2aXNhIGZqw6RycnNww6VyYW5kZSBncmVuYXIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTQKIG1zZ2lkICJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIgogbXNnc3RyICJmw6RyZ2EgXCIqISstXCIgZW5saWd0IGdyZW5lbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NgogbXNnaWQgInNob3cgPG4+IG1vcmUgY29tbWl0cyBhZnRlciB0aGUgY29tbW9uIGFuY2VzdG9yIgogbXNnc3RyICJ2aXNhIDxuPiB5dHRlcmxpZ2FyZSBpbmNoZWNrbmluZ2FyIGVmdGVyIGdlbWVuc2FtIGFuZmFkZXIiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTkKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTgKIG1zZ2lkICJzeW5vbnltIHRvIG1vcmU9LTEiCiBtc2dzdHIgInN5bm9ueW0gdGlsbCBtb3JlPS0xIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYwCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU5CiBtc2dpZCAic3VwcHJlc3MgbmFtaW5nIHN0cmluZ3MiCiBtc2dzdHIgInVuZGVydHljayBuYW1uc3Ryw6RuZ2FyIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYyCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYxCiBtc2dpZCAiaW5jbHVkZSB0aGUgY3VycmVudCBicmFuY2giCiBtc2dzdHIgImlua2x1ZGVyYSBha3R1ZWxsIGdyZW4iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjQKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjMKIG1zZ2lkICJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiCiBtc2dzdHIgIm5hbW5nZSBpbmNoZWNrbmluZ2FyIG1lZCBkZXJhcyBvYmpla3RuYW1uIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY2CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY1CiBtc2dpZCAic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAidmlzYSBtw7ZqbGlnYSBzYW1tYW5zbGFuaW5nc2Jhc2VyIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY3CiBtc2dpZCAic2hvdyByZWZzIHVucmVhY2hhYmxlIGZyb20gYW55IG90aGVyIHJlZiIKIG1zZ3N0ciAidmlzYSByZWZlcmVuc2VyIHNvbSBpbnRlIGthbiBuw6VzIGZyw6VuIG7DpWdvbiBhbm5hbiByZWZlcmVucyIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OQogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKIG1zZ3N0ciAidmlzYSBpbmNoZWNrbmluZ2FyIGkgdG9wb2xvZ2lzayBvcmRuaW5nIgogCkBAIC04MzY3LDE0ICs4ODEwLDE0IEBACiBtc2dzdHIgInZpc2Egc2FtbWFuc2xhZ25pbmdhciBzb20gZW5kYXN0IGthbiBuw6VzIGZyw6VuIGVuIHNwZXRzIgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc2Ci1tc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgotbXNnc3RyICJ2aXNhIGluY2hlY2tuaW5nYXIgZMOkciBpbmdlbiBmw7Zyw6RsZGVyIGtvbW1lciBmw7ZyZSBkZXNzIGJhcm4iCittc2dpZCAidG9wb2xvZ2ljYWxseSBzb3J0LCBtYWludGFpbmluZyBkYXRlIG9yZGVyIHdoZXJlIHBvc3NpYmxlIgorbXNnc3RyICJzb3J0ZXJhIHRvcG9sb2dpc2t0LCBiZWjDpWxsIGRhdHVtb3JkbmluZyBuw6RyIG3DtmpsaWd0IgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxiYXM+XSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3OQorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY4MAogbXNnaWQgInNob3cgPG4+IG1vc3QgcmVjZW50IHJlZi1sb2cgZW50cmllcyBzdGFydGluZyBhdCBiYXNlIgogbXNnc3RyICJ2aXNhIDxuPiBueWFzdGUgcmVmbG9nZ3Bvc3RlciBtZWQgYsO2cmphbiBww6UgYmFzIgogCkBAIC04MzkwLDM1ICs4ODMzLDM1IEBACiBtc2dpZCAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9cGF0dGVybl0gPCByZWYtbGlzdCIKIG1zZ3N0ciAiZ2l0IHNob3ctcmVmIC0tZXhjbHVkZS1leGlzdGluZ1s9bcO2bnN0ZXJdIDwgcmVmbGlzdGEiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjUKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjgKIG1zZ2lkICJvbmx5IHNob3cgdGFncyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggaGVhZHMpIgogbXNnc3RyICJ2aXNhIGVuZGFzdCB0YWdnYXIgKGthbiBrb21iaW5lcmFzIG1lZCBodXZ1ZGVuKSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2OQogbXNnaWQgIm9ubHkgc2hvdyBoZWFkcyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggdGFncykiCiBtc2dzdHIgInZpc2EgZW5kYXN0IGh1dnVkZW4gKGthbiBrb21iaW5lcmFzIG1lZCB0YWdnYXIpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY3CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwCiBtc2dpZCAic3RyaWN0ZXIgcmVmZXJlbmNlIGNoZWNraW5nLCByZXF1aXJlcyBleGFjdCByZWYgcGF0aCIKIG1zZ3N0ciAic3RyaWt0YXJlIHJlZmVyZW5za29udHJvbGwsIGtyw6R2ZXIgZXhha3QgcmVmZXJlbnNzw7ZrdsOkZyIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MCBidWlsdGluL3Nob3ctcmVmLmM6MTcyCi1tc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UiCi1tc2dzdHIgInZpc2EgSEVBRC1yZWZlcmVuc2VuIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgorbXNnc3RyICJ2aXNhIEhFQUQtcmVmcmVucywgw6R2ZW4gbsOkciBkZW4gc2t1bGxlIGZpbHRyZXJhcyB1dCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICJhdnJlZmVyZXJhIHRhZ2dhciB0aWxsIG9iamVrdC1pZCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAidmlzYSBTSEExLWhhc2ggZW5kYXN0IG1lZCA8bj4gc2lmZnJvciIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NAogbXNnaWQgImRvIG5vdCBwcmludCByZXN1bHRzIHRvIHN0ZG91dCAodXNlZnVsIHdpdGggLS12ZXJpZnkpIgogbXNnc3RyICJ2aXNhIGludGUgcmVzdWx0YXQgcMOlIHN0YW5kYXJkIHV0IChhbnbDpG5kYmFydCBtZWQgLS12ZXJpZnkpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAic2hvdyByZWZzIGZyb20gc3RkaW4gdGhhdCBhcmVuJ3QgaW4gbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAidmlzYSByZWZlcmVuc2VyIGZyw6VuIHN0YW5kYXJkIGluIHNvbSBpbnRlIGZpbm5zIGkgbG9rYWx0IGFya2l2IgogCkBAIC04ODMzLDI0ICs5Mjc2LDMzIEBACiBtc2dpZCAib25seSB1c2VmdWwgZm9yIGRlYnVnZ2luZyIKIG1zZ3N0ciAiZW5kYXN0IGFudsOkbmRiYXJ0IHZpZCBmZWxzw7ZrbmluZyIKIAotIzogZ2l0LmM6MTYKLW1zZ2lkICJTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYSBzcGVjaWZpYyBjb21tYW5kLiIKKyM6IGdpdC5jOjE3Cittc2dpZCAiIgorIidnaXQgaGVscCAtYScgYW5kICdnaXQgaGVscCAtZycgbGlzdHMgYXZhaWxhYmxlIHN1YmNvbW1hbmRzIGFuZCBzb21lXG4iCisiY29uY2VwdCBndWlkZXMuIFNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBvciAnZ2l0IGhlbHAgPGNvbmNlcHQ+J1xuIgorInRvIHJlYWQgYWJvdXQgYSBzcGVjaWZpYyBzdWJjb21tYW5kIG9yIGNvbmNlcHQuIgogbXNnc3RyICIiCi0iU2UgXCJnaXQgaGVscCA8a29tbWFuZG8+XCIgZsO2ciBtZXIgaW5mb3JtYXRpb24gb20gZXR0IHNwZWNpZmlrdCBrb21tYW5kby4iCisiXCJnaXQgaGVscCAtYVwiIG9jaCBcImdpdCBoZWxwIC1nXCIgdmlzYXIgdGlsbGfDpG5nbGlnYSB1bmRlcmtvbW1hbmRvbiBvY2hcbiIKKyJuw6VncmEga29uY2VwdHbDpGdsZWRuaW5nYXIuIFNlIFwiZ2l0IGhlbHAgPGtvbW1hbmRvPlwiIGVsbGVyIFwiZ2l0IGhlbHBcbiIKKyI8a29uY2VwdD5cIiBmw7ZyIGF0dCBsw6RzYSBtZXIgb20gc3BlY2lmaWthIHVuZGVya29tbWFuZG9uIG9jaCBrb25jZXB0LiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjE1NgorIzogcGFyc2Utb3B0aW9ucy5oOjE0NAorbXNnaWQgImV4cGlyeSBkYXRlIgorbXNnc3RyICJnaWx0aWcgdGlsbCIKKworIzogcGFyc2Utb3B0aW9ucy5oOjE1OQogbXNnaWQgIm5vLW9wIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSIKIG1zZ3N0ciAiaW5nZW4gZnVua3Rpb24gKGJha8OldGtvbXBhdGliaWxpdGV0KSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzMgorIzogcGFyc2Utb3B0aW9ucy5oOjIzNgogbXNnaWQgImJlIG1vcmUgdmVyYm9zZSIKIG1zZ3N0ciAidmFyIG1lciBwcmF0c2FtIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjM0CisjOiBwYXJzZS1vcHRpb25zLmg6MjM4CiBtc2dpZCAiYmUgbW9yZSBxdWlldCIKIG1zZ3N0ciAidmFyIG1lciB0eXN0IgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjQwCisjOiBwYXJzZS1vcHRpb25zLmg6MjQ0CiBtc2dpZCAidXNlIDxuPiBkaWdpdHMgdG8gZGlzcGxheSBTSEEtMXMiCiBtc2dzdHIgImFudsOkbmQgPG4+IHNpZmZyb3IgZsO2ciBhdHQgdmlzYSBTSEEtMTpvciIKIApAQCAtODkwNyw4ICs5MzU5LDggQEAKIG1zZ3N0ciAiRmx5dHRhIGVsbGVyIGJ5dCBuYW1uIHDDpSBlbiBmaWwsIGthdGFsb2cgZWxsZXIgc3ltYm9saXNrIGzDpG5rIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCi1tc2dzdHIgIkjDpG10YSBmcsOlbiBvY2ggc2zDpSBpaG9wIG1lZCBhbm5hdCBhcmtpdiBlbGxlciBlbiBsb2thbCBncmVuIgorbXNnaWQgIkZldGNoIGZyb20gYW5kIGludGVncmF0ZSB3aXRoIGFub3RoZXIgcmVwb3NpdG9yeSBvciBhIGxvY2FsIGJyYW5jaCIKK21zZ3N0ciAiSMOkbXRhIGZyw6VuIG9jaCBpbnRlZ3JlcmEgbWVkIGFubmF0IGFya2l2IGVsbGVyIGVuIGxva2FsIGdyZW4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCkBAIC04OTUzLDExICs5NDA1LDExIEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIk7DpHIgZHUgaGFyIGzDtnN0IHByb2JsZW1ldCBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1yZXNvbHZlZFwiLlxuIgorIk7DpHIgZHUgaGFyIGzDtnN0IHByb2JsZW1ldCBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIk9tIGR1IHZpbGwgaG9wcGEgw7Z2ZXIgcGF0Y2hlbiBrw7ZyIGR1IGlzdMOkbGxldCBcIiRjbWRsaW5lIC0tc2tpcFwiLlxuIgogIkbDtnIgYXR0IMOldGVyc3TDpGxsYSBvcmlnaW5hbGdyZW5lbiBvY2ggYXZicnl0YSBrw7ZyIGR1IFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIApAQCAtOTAxMywyNSArOTQ2NSwzNCBAQAogIkZsYWdnYW4gLWIvLS1iaW5hcnkgaGFyIHZhcml0IHV0YW4gZnVua3Rpb24gbMOkbmdlLCBvY2hcbiIKICJrb21tZXIgdGFzIGJvcnQuIFZpIGJlciBkaWcgYXR0IGludGUgYW52w6RuZGEgZGVuIGzDpG5ncmUuIgogCi0jOiBnaXQtYW0uc2g6NDc3CisjOiBnaXQtYW0uc2g6NDc5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJwcmV2aW91cyByZWJhc2UgZGlyZWN0b3J5ICRkb3Rlc3Qgc3RpbGwgZXhpc3RzIGJ1dCBtYm94IGdpdmVuLiIKIG1zZ3N0ciAidGlkaWdhcmUgcmViYXNlLWthdGFsb2cgJGRvdGVzdCBmaW5ucyBmb3J0ZmFyYW5kZSwgbWVuIG1ib3ggYW5nYXZzLiIKIAotIzogZ2l0LWFtLnNoOjQ4MgorIzogZ2l0LWFtLnNoOjQ4NAogbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgogbXNnc3RyICJCZXN0w6RtIGRpZy4gLS1za2lwIGVsbGVyIC0tYWJvcnQ/IgogCi0jOiBnaXQtYW0uc2g6NTA5CisjOiBnaXQtYW0uc2g6NTIwCisjLCBzaC1mb3JtYXQKK21zZ2lkICIiCisiU3RyYXkgJGRvdGVzdCBkaXJlY3RvcnkgZm91bmQuXG4iCisiVXNlIFwiZ2l0IGFtIC0tYWJvcnRcIiB0byByZW1vdmUgaXQuIgorbXNnc3RyICIiCisiS3ZhcmJsaXZlbiBrYXRhbG9nICRkb3Rlc3QgaGl0dGFkZXMuXG4iCisiQW52w6RuZCBcImdpdCBhbSAtLWFib3J0XCIgZsO2ciBhdHQgdGEgYm9ydCBkZW4uIgorCisjOiBnaXQtYW0uc2g6NTI4CiBtc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKIG1zZ3N0ciAiTMO2c25pbmdzb3BlcmF0aW9uIHDDpWfDpXIgaW50ZSwgdmkgw6V0ZXJ1cHB0YXIgaW50ZS4iCiAKLSM6IGdpdC1hbS5zaDo1NzUKKyM6IGdpdC1hbS5zaDo1OTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRpcnR5IGluZGV4OiBjYW5ub3QgYXBwbHkgcGF0Y2hlcyAoZGlydHk6ICRmaWxlcykiCiBtc2dzdHIgIlNtdXRzaWd0IGluZGV4OiBrYW4gaW50ZSB0aWxsw6RtcGEgcGF0Y2hhciAoc211dHNpZ2E6ICRmaWxlcykiCiAKLSM6IGdpdC1hbS5zaDo2NzkKKyM6IGdpdC1hbS5zaDo2OTgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJQYXRjaCBpcyBlbXB0eS4gIFdhcyBpdCBzcGxpdCB3cm9uZz9cbiIKQEAgLTkwNDIsMzIgKzk1MDMsMzIgQEAKICJPbSBkdSB2aWxsIGhvcHBhIMO2dmVyIHBhdGNoZW4ga8O2ciBkdSBpc3TDpGxsZXQgXCIkY21kbGluZSAtLXNraXBcIi5cbiIKICJGw7ZyIGF0dCDDpXRlcnN0w6RsbGEgb3JpZ2luYWxncmVuZW4gb2NoIGF2YnJ5dGEga8O2ciBkdSBcIiRjbWRsaW5lIC0tYWJvcnRcIi4iCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICJQYXRjaGVuIGhhciBpbnRlIG7DpWdvbiBnaWx0aWcgZS1wb3N0YWRyZXNzLiIKIAotIzogZ2l0LWFtLnNoOjc1MworIzogZ2l0LWFtLnNoOjc3MgogbXNnaWQgImNhbm5vdCBiZSBpbnRlcmFjdGl2ZSB3aXRob3V0IHN0ZGluIGNvbm5lY3RlZCB0byBhIHRlcm1pbmFsLiIKIG1zZ3N0ciAiIgogImthbiBpbnRlIHZhcmEgaW50ZXJha3RpdiBvbSBzdGFuZGFyZCBpbiBpbnRlIMOkciBhbnNsdXRlbiB0aWxsIGVuIHRlcm1pbmFsLiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAiSW5jaGVja25pbmdza3JvcHBlbiDDpHI6IgogCiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIlRpbGzDpG1wYT8gWT1qYS9OPW5lai9FPXJlZGlnZXJhL1Y9dmlzYSBwYXRjaC9BPWdvZHRhIGFsbGEgIgogCi0jOiBnaXQtYW0uc2g6ODAwCisjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKIG1zZ3N0ciAiVGlsbMOkbXBhcjogJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKQEAgLTkwNzcsNyArOTUzOCw3IEBACiAiT20gZGV0IGludGUgw6RyIG7DpWdvdCBrdmFyIGF0dCBrw7ZhIGthbiBkZXQgaMOkbmRhIGF0dCBuw6Vnb3QgYW5uYXQgcmVkYW5cbiIKICJpbnRyb2R1Y2VyYXQgc2FtbWEgw6RuZHJpbmdhcjsga2Fuc2tlIGR1IGLDtnIgaG9wcGEgw7Z2ZXIgcGF0Y2hlbi4iCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgpAQCAtOTA4NSwxNiArOTU0NiwxNiBAQAogIkR1IGhhciBmb3J0ZmFyYW5kZSBzw7ZrdsOkZ2FyIHNvbSBpbnRlIHNsYWdpdHMgc2FtbWFuIGkgZGl0dCBpbmRleFxuIgogImdsw7ZtZGUgZHUgYW52w6RuZGEgXCJnaXQgYWRkXCI/IgogCi0jOiBnaXQtYW0uc2g6ODQ1CisjOiBnaXQtYW0uc2g6ODY0CiBtc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgogbXNnc3RyICJJbmdhIMOkbmRyaW5nYXIgLS0gUGF0Y2hlbiBoYXIgcmVkYW4gdGlsbMOkbXBhdHMuIgogCi0jOiBnaXQtYW0uc2g6ODU1CisjOiBnaXQtYW0uc2g6ODc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJQYXRjaCBmYWlsZWQgYXQgJG1zZ251bSAkRklSU1RMSU5FIgogbXNnc3RyICJQYXRjaGVuIG1pc3NseWNrYWRlcyB2aWQgJG1zZ251bSAkRklSU1RMSU5FIgogCi0jOiBnaXQtYW0uc2g6ODU4CisjOiBnaXQtYW0uc2g6ODc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgpAQCAtOTEwMyw3ICs5NTY0LDcgQEAKICJFbiBrb3BpYSBhdiBwYXRjaGVuIHNvbSBtaXNzbHlja2FkZXMgZmlubnMgaTpcbiIKICIgICAkZG90ZXN0L3BhdGNoIgogCi0jOiBnaXQtYW0uc2g6ODc2CisjOiBnaXQtYW0uc2g6ODk1CiBtc2dpZCAiYXBwbHlpbmcgdG8gYW4gZW1wdHkgaGlzdG9yeSIKIG1zZ3N0ciAidGlsbMOkbXBhciBww6UgZW4gdG9tIGhpc3RvcmlrIgogCkBAIC05MjAzLDE2ICs5NjY0LDE2IEBACiAiRHUgbcOlc3RlIHNlZGFuIGFuZ2Ugw6V0bWluc3RvbmUgZW4gYnJhIG9jaCBlbiBkw6VsaWcgdmVyc2lvbi5cbiIKICIoRHUga2FuIGFudsOkbmRhIFwiZ2l0IGJpc2VjdCBiYWRcIiBvY2ggXCJnaXQgYmlzZWN0IGdvb2RcIiBmw7ZyIGRldHRhLikiCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzQ3IGdpdC1iaXNlY3Quc2g6NDc0CisjOiBnaXQtYmlzZWN0LnNoOjM2MyBnaXQtYmlzZWN0LnNoOjQ5MAogbXNnaWQgIldlIGFyZSBub3QgYmlzZWN0aW5nLiIKIG1zZ3N0ciAiVmkgdXRmw7ZyIGluZ2VuIGJpc2VjdCBmw7ZyIHRpbGxmw6RsbGV0LiIKIAotIzogZ2l0LWJpc2VjdC5zaDozNTQKKyM6IGdpdC1iaXNlY3Quc2g6MzcwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGludmFsaWQnIGlzIG5vdCBhIHZhbGlkIGNvbW1pdCIKIG1zZ3N0ciAiXCIkaW52YWxpZFwiIMOkciBpbnRlIGVuIGdpbHRpZyBpbmNoZWNrbmluZyIKIAotIzogZ2l0LWJpc2VjdC5zaDozNjMKKyM6IGdpdC1iaXNlY3Quc2g6Mzc5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGNoZWNrIG91dCBvcmlnaW5hbCBIRUFEICckYnJhbmNoJy5cbiIKQEAgLTkyMjEsMjUgKzk2ODIsMjUgQEAKICJLdW5kZSBpbnRlIGNoZWNrYSB1dCBvcmlnaW5hbC1IRUFEIFwiJGJyYW5jaFwiLlxuIgogIkbDtnJzw7ZrIFwiZ2l0IGJpc2VjdCByZXNldCA8aW5jaGVja25pbmc+XCIuIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM5MAorIzogZ2l0LWJpc2VjdC5zaDo0MDYKIG1zZ2lkICJObyBsb2dmaWxlIGdpdmVuIgogbXNnc3RyICJJbmdlbiBsb2dnZmlsIGFuZ2l2ZW4iCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzkxCisjOiBnaXQtYmlzZWN0LnNoOjQwNwogIywgc2gtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJGZpbGUgZm9yIHJlcGxheWluZyIKIG1zZ3N0ciAia2FuIGludGUgbMOkc2EgJGZpbGUgZsO2ciB1cHBzcGVsbmluZyIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MDgKKyM6IGdpdC1iaXNlY3Quc2g6NDI0CiBtc2dpZCAiPz8gd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IgogbXNnc3RyICI/PyB2YWQgbWVuYXIgZHU/IgogCi0jOiBnaXQtYmlzZWN0LnNoOjQyMAorIzogZ2l0LWJpc2VjdC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgInJ1bm5pbmcgJGNvbW1hbmQiCiBtc2dzdHIgImvDtnIgJGNvbW1hbmQiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDI3CisjOiBnaXQtYmlzZWN0LnNoOjQ0MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImJpc2VjdCBydW4gZmFpbGVkOlxuIgpAQCAtOTI0OCwxMSArOTcwOSwxMSBAQAogIlwiYmlzZWN0XCIta8O2cm5pbmdlbiBtaXNzbHlja2FkZXM6XG4iCiAiZmVsa29kICRyZXMgZnLDpW4gXCIkY29tbWFuZFwiIMOkciA8IDAgZWxsZXIgPj0gMTI4IgogCi0jOiBnaXQtYmlzZWN0LnNoOjQ1MworIzogZ2l0LWJpc2VjdC5zaDo0NjkKIG1zZ2lkICJiaXNlY3QgcnVuIGNhbm5vdCBjb250aW51ZSBhbnkgbW9yZSIKIG1zZ3N0ciAiXCJiaXNlY3RcIi1rw7ZybmluZ2VuIGthbiBpbnRlIGZvcnRzw6R0dGEgbMOkbmdyZSIKIAotIzogZ2l0LWJpc2VjdC5zaDo0NTkKKyM6IGdpdC1iaXNlY3Quc2g6NDc1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiYmlzZWN0IHJ1biBmYWlsZWQ6XG4iCkBAIC05MjYxLDcgKzk3MjIsNyBAQAogIlwiYmlzZWN0XCIta8O2cm5pbmdlbiBtaXNzbHlja2FkZXM6XG4iCiAiXCJiaXNlY3Rfc3RhdGUgJHN0YXRlXCIgYXZzbHV0YWRlcyBtZWQgZmVsa29kZW4gJHJlcyIKIAotIzogZ2l0LWJpc2VjdC5zaDo0NjYKKyM6IGdpdC1iaXNlY3Quc2g6NDgyCiBtc2dpZCAiYmlzZWN0IHJ1biBzdWNjZXNzIgogbXNnc3RyICJcImJpc2VjdFwiLWvDtnJuaW5nZW4gbHlja2FkZXMiCiAKQEAgLTkzMDYsNyArOTc2Nyw3IEBACiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICJLYW4gaW50ZSB1dGbDtnJhIGVuIFwicmViYXNlXCIgb3ZhbnDDpSBmbGVyYSBncmVuYXIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTMKKyM6IGdpdC1yZWJhc2Uuc2g6NTQKIG1zZ2lkICIiCiAiV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCJnaXQgcmViYXNlIC0tc2tpcFwiIGluc3RlYWQuXG4iCkBAIC05MzE3LDMxICs5Nzc4LDUwIEBACiAiT20gZHUgdmlsbCBob3BwYSDDtnZlciBwYXRjaGVuIGvDtnIgZHUgaXN0w6RsbGV0IFwiZ2l0IHJlYmFzZSAtLXNraXBcIi5cbiIKICJGw7ZyIGF0dCDDpXRlcnN0w6RsbGEgb3JpZ2luYWxncmVuZW4gb2NoIGF2YnJ5dGEga8O2ciBkdSBcImdpdCByZWJhc2UgLS1hYm9ydFwiLiIKIAorIzogZ2l0LXJlYmFzZS5zaDoxNTYKK21zZ2lkICJBcHBsaWVkIGF1dG9zdGFzaC4iCittc2dzdHIgIlRpbGzDpG1wYWRlIGF1dG9zdGFzaC4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3RvcmUgJHN0YXNoX3NoYTEiCittc2dzdHIgIkthbiBpbnRlIHNwYXJhICRzdGFzaF9zaGExIgorCiAjOiBnaXQtcmViYXNlLnNoOjE2MAorbXNnaWQgIiIKKyJBcHBseWluZyBhdXRvc3Rhc2ggcmVzdWx0ZWQgaW4gY29uZmxpY3RzLlxuIgorIllvdXIgY2hhbmdlcyBhcmUgc2FmZSBpbiB0aGUgc3Rhc2guXG4iCisiWW91IGNhbiBydW4gXCJnaXQgc3Rhc2ggcG9wXCIgb3IgXCJnaXQgc3Rhc2ggZHJvcFwiIGF0IGFueSB0aW1lLlxuIgorbXNnc3RyICIiCisiVGlsbMOkbXBuaW5nIGF2IGF1dG9zdGFzaCBnYXYga29uZmxpa3Rlci5cbiIKKyJEaW5hIMOkbmRyaW5nYXIgw6RyIHPDpGtyYSBpIHN0YXNoZW4uXG4iCisiRHUga2FuIG7DpHIgc29tIGhlbHN0IGFudsOkbmRhIFwiZ2l0IHN0YXNoIHBvcFwiIGVsbGVyIFwiZ2l0IHN0YXNoIGRyb3BcIi5cbiIKKworIzogZ2l0LXJlYmFzZS5zaDoxOTAKIG1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKIG1zZ3N0ciAiS3Jva2VuIHByZS1yZWJhc2UgdsOkZ3JhZGUgb21iYXNlcmluZ2VuLiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxNjUKKyM6IGdpdC1yZWJhc2Uuc2g6MTk1CiBtc2dpZCAiSXQgbG9va3MgbGlrZSBnaXQtYW0gaXMgaW4gcHJvZ3Jlc3MuIENhbm5vdCByZWJhc2UuIgogbXNnc3RyICJEZXQgdmVya2FyIHNvbSBlbiBnaXQtYW0ga8O2cnMuIEthbiBpbnRlIG9tYmFzZXJhLiIKIAotIzogZ2l0LXJlYmFzZS5zaDoyOTYKKyM6IGdpdC1yZWJhc2Uuc2g6MzI5CiBtc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgogbXNnc3RyICJGbGFnZ2FuIC0tZXhlYyBtw6VzdGUgYW52w6RuZGFzIHRpbGxzYW1tYW5zIG1lZCBmbGFnZ2FuIC0taW50ZXJhY3RpdmUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzAxCisjOiBnaXQtcmViYXNlLnNoOjMzNAogbXNnaWQgIk5vIHJlYmFzZSBpbiBwcm9ncmVzcz8iCiBtc2dzdHIgIkluZ2VuIG9tYmFzZXJpbmcgcMOlZ8Olcj8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzEyCisjOiBnaXQtcmViYXNlLnNoOjM0NQogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiw4V0Z8OkcmRlbiAtLWVkaXQtdG9kbyBrYW4gZW5kYXN0IGFudsOkbmRhcyB1bmRlciBpbnRlcmFrdGl2IG9tYmFzZXJpbmcuIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxOQorIzogZ2l0LXJlYmFzZS5zaDozNTIKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICJLYW4gaW50ZSBsw6RzYSBIRUFEIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyMgorIzogZ2l0LXJlYmFzZS5zaDozNTUKIG1zZ2lkICIiCiAiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCiAibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCkBAIC05MzQ5LDEyICs5ODI5LDEyIEBACiAiRHUgbcOlc3RlIHJlZGlnZXJhIGFsbGEgc2FtbWFuc2xhZ25pbmdza29uZmxpa3RlciBvY2hcbiIKICJkw6RyZWZ0ZXIgbWFya2VyYSBkZW0gc29tIGzDtnN0YSBtZWQgZ2l0IGFkZCIKIAotIzogZ2l0LXJlYmFzZS5zaDozNDAKKyM6IGdpdC1yZWJhc2Uuc2g6MzczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgbW92ZSBiYWNrIHRvICRoZWFkX25hbWUiCiBtc2dzdHIgIkt1bmRlIGludGUgZmx5dHRhIHRpbGxiYWthIHRpbGwgJGhlYWRfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzkyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05Mzc1LDU3ICs5ODU1LDY2IEBACiAib2NoIGvDtnIgcHJvZ3JhbW1ldCBpZ2VuLiBKYWcgYXZzbHV0YXIgaWZhbGwgZHUgZm9ydGZhcmFuZGUgaGFyXG4iCiAibsOlZ290IGF2IHbDpHJkZSBkw6RyLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICJvZ2lsdGlnIHVwcHN0csO2bSAkdXBzdHJlYW1fbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDYxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiJG9udG9fbmFtZTogbWVyIMOkbiBlbiBzYW1tYW5zbGFnbmluZ3NiYXMgZmlubnMiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDMxIGdpdC1yZWJhc2Uuc2g6NDM1CisjOiBnaXQtcmViYXNlLnNoOjQ2NCBnaXQtcmViYXNlLnNoOjQ2OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiJG9udG9fbmFtZTogaW5nZW4gc2FtbWFuc2xhZ25pbmdzYmFzIGZpbm5zIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ0MAorIzogZ2l0LXJlYmFzZS5zaDo0NzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgY29tbWl0OiAkb250b19uYW1lIgogbXNnc3RyICJQZWthIHDDpSBlbiBnaWx0aWcgaW5jaGVja25pbmc6ICRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjQ5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIsO2ZGVzZGlnZXJ0OiBpbmdlbiBzw6VkYW4gZ3JlbjogJGJyYW5jaF9uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ4MworIzogZ2l0LXJlYmFzZS5zaDo1MTkKK21zZ2lkICJDYW5ub3QgYXV0b3N0YXNoIgorbXNnc3RyICJLYW4gaW50ZSB1dGbDtnJhIFwiYXV0b3N0YXNoXCIiCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDcmVhdGVkIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKK21zZ3N0ciAiU2thcGFkZSBhdXRvc3Rhc2g6ICRzdGFzaF9hYmJyZXYiCisKKyM6IGdpdC1yZWJhc2Uuc2g6NTI4CiBtc2dpZCAiUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB0aGVtLiIKIG1zZ3N0ciAiQ2hlY2thIGluIGVsbGVyIGFudsOkbmQgXCJzdGFzaFwiIHDDpSBkZW0uIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwMQorIzogZ2l0LXJlYmFzZS5zaDo1NDgKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLiIKIG1zZ3N0ciAiQWt0dWVsbCBncmVuICRicmFuY2hfbmFtZSDDpHIgw6Agam91ci4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTA0CisjOiBnaXQtcmViYXNlLnNoOjU1MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ3VycmVudCBicmFuY2ggJGJyYW5jaF9uYW1lIGlzIHVwIHRvIGRhdGUsIHJlYmFzZSBmb3JjZWQuIgogbXNnc3RyICJBa3R1ZWxsIGdyZW4gJGJyYW5jaF9uYW1lIMOkciDDoCBqb3VyLCBvbWJhc2VyaW5nIGZyYW10dmluZ2FkLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MTUKKyM6IGdpdC1yZWJhc2Uuc2g6NTYzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDaGFuZ2VzIGZyb20gJG1iIHRvICRvbnRvOiIKIG1zZ3N0ciAiw4RuZHJpbmdhciBmcsOlbiAkbWIgdGlsbCAkb250bzoiCiAKICMuIERldGFjaCBIRUFEIGFuZCByZXNldCB0aGUgdHJlZQotIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyM6IGdpdC1yZWJhc2Uuc2g6NTcyCiBtc2dpZCAiRmlyc3QsIHJld2luZGluZyBoZWFkIHRvIHJlcGxheSB5b3VyIHdvcmsgb24gdG9wIG9mIGl0Li4uIgogbXNnc3RyICIiCiAiRsO2cnN0LCBzcG9sYXIgdGlsbGJha2EgaHV2dWRldCBmw7ZyIGF0dCBzcGVsYSBhdiBkaXR0IGFyYmV0ZSBvdmFucMOlIGRldC4uLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIlNuYWJic3BvbGFkZSAkYnJhbmNoX25hbWUgdGlsbCAkb250b19uYW1lLiIKQEAgLTk0NTgsNiArOTk0NywxMSBAQAogbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgogbXNnc3RyICJLYW4gaW50ZSByZWdpc3RyZXJhIHRpbGxzdMOlbmQgZsO2ciBhcmJldHNrYXRhbG9nIgogCisjOiBnaXQtc3Rhc2guc2g6MTkwCisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3QgdXBkYXRlICRyZWZfc3Rhc2ggd2l0aCAkd19jb21taXQiCittc2dzdHIgIkthbiBpbnRlIHVwcGRhdGVyYSAkcmVmX3N0YXNoIG1lZCAkd19jb21taXQiCisKICMuIFRSQU5TTEFUT1JTOiAkb3B0aW9uIGlzIGFuIGludmFsaWQgb3B0aW9uLCBsaWtlCiAjLiBgLS1ibGFoLWJsYWgnLiBUaGUgNyBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKICMuIHNlY29uZCBsaW5lIGNvcnJlc3BvbmQgdG8gImVycm9yOiAiLiBTbyB5b3Ugc2hvdWxkIGxpbmUKQEAgLTk0NjgsNyArOTk2Miw3IEBACiAjLiAkIGdpdCBzdGFzaCBzYXZlIC0tYmxhaC1ibGFoIDI+JjEgfCBoZWFkIC1uIDIKICMuIGVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAtLWJsYWgtYmxhaAogIy4gVG8gcHJvdmlkZSBhIG1lc3NhZ2UsIHVzZSBnaXQgc3Rhc2ggc2F2ZSAtLSAnLS1ibGFoLWJsYWgnCi0jOiBnaXQtc3Rhc2guc2g6MjAyCisjOiBnaXQtc3Rhc2guc2g6MjQxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6ICRvcHRpb25cbiIKQEAgLTk0NzcsMTIwICs5OTcxLDEzOSBAQAogImZlbDogZmVsYWt0aWcgZmxhZ2dhIGbDtnIgXCJzdGFzaCBzYXZlXCI6ICRvcHRpb25cbiIKICIgICAgIEbDtnIgYXR0IGFuZ2UgZXR0IG1lZGRlbGFuZGUsIGFudsOkbmQgZ2l0IHN0YXNoIHNhdmUgLS0gXCIkb3B0aW9uXCIiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjMKKyM6IGdpdC1zdGFzaC5zaDoyNjIKIG1zZ2lkICJObyBsb2NhbCBjaGFuZ2VzIHRvIHNhdmUiCiBtc2dzdHIgIkluZ2EgbG9rYWxhIMOkbmRyaW5nYXIgYXR0IHNwYXJhIgogCi0jOiBnaXQtc3Rhc2guc2g6MjI3CisjOiBnaXQtc3Rhc2guc2g6MjY4Cittc2dpZCAiIgorIlRoZSBmb2xsb3dpbmcgdW50cmFja2VkIGZpbGVzIHdvdWxkIE5PVCBiZSBzYXZlZCBidXQgbmVlZCB0byBiZSByZW1vdmVkIGJ5ICIKKyJzdGFzaCBzYXZlOiIKK21zZ3N0ciAiIgorIkbDtmxqYW5kZSBvc3DDpXJhZGUgw6RuZHJpbmdhciBza3VsbGUgSU5URSBzcGFyYXMgdXRhbiBtw6VzdGUgdGFzIGJvcnQgbWVkICIKKyJcInN0YXNoIHNhdmVcIjoiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzAKK21zZ2lkICIiCisiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCittc2dzdHIgIiIKKyJBdmJyeXRlci4gw5Z2ZXJ2w6RnIGF0dCBhbnbDpG5kYSBhbnRpbmdlbiBmbGFnZ2FuIC0tZm9yY2UgZWxsZXIgLS1pbmNsdWRlLSIKKyJ1bnRyYWNrZWQuIgorCisjOiBnaXQtc3Rhc2guc2g6Mjc0CiBtc2dpZCAiQ2Fubm90IGluaXRpYWxpemUgc3Rhc2giCiBtc2dzdHIgIkthbiBpbnRlIGluaXRpZXJhIFwic3Rhc2hcIiIKIAotIzogZ2l0LXN0YXNoLnNoOjIzNQorIzogZ2l0LXN0YXNoLnNoOjI3OAogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiS2FuIGludGUgc3BhcmEgYWt0dWVsbCBzdGF0dXMiCiAKLSM6IGdpdC1zdGFzaC5zaDoyNTMKKyM6IGdpdC1zdGFzaC5zaDoyOTYKIG1zZ2lkICJDYW5ub3QgcmVtb3ZlIHdvcmt0cmVlIGNoYW5nZXMiCiBtc2dzdHIgIkthbiBpbnRlIHRhIGJvcnQgw6RuZHJpbmdhciBpIGFyYmV0c2thdGFsb2dlbiIKIAotIzogZ2l0LXN0YXNoLnNoOjM1MgorIzogZ2l0LXN0YXNoLnNoOjM5NQogbXNnaWQgIk5vIHN0YXNoIGZvdW5kLiIKIG1zZ3N0ciAiSW5nZW4gXCJzdGFzaFwiIGhpdHRhZGVzLiIKIAotIzogZ2l0LXN0YXNoLnNoOjM1OQorIzogZ2l0LXN0YXNoLnNoOjQwMgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKIG1zZ3N0ciAiRsO2ciBtw6VuZ2EgcmV2aXNpb25lciBhbmdpdm5hOiAkUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6MzY1CisjOiBnaXQtc3Rhc2guc2g6NDA4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2Ugw6RyIGludGUgZW4gZ2lsdGlnIHJlZmVyZW5zLiIKIAotIzogZ2l0LXN0YXNoLnNoOjM5MworIzogZ2l0LXN0YXNoLnNoOjQzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaC1saWtlIGNvbW1pdCIKIG1zZ3N0ciAiXCIkYXJnc1wiIMOkciBpbnRlIGVuIFwic3Rhc2hcIi1saWtuYW5kZSBpbmNoZWNrbmluZyIKIAotIzogZ2l0LXN0YXNoLnNoOjQwNAorIzogZ2l0LXN0YXNoLnNoOjQ0NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIlwiJGFyZ3NcIiDDpHIgaW50ZSBlbiBcInN0YXNoXCItcmVmZXJlbnMiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTIKKyM6IGdpdC1zdGFzaC5zaDo0NTUKIG1zZ2lkICJ1bmFibGUgdG8gcmVmcmVzaCBpbmRleCIKIG1zZ3N0ciAia2FuIGludGUgdXBwZGF0ZXJhIGluZGV4ZXQiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTYKKyM6IGdpdC1zdGFzaC5zaDo0NTkKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIkthbiBpbnRlIHRpbGzDpG1wYSBlbiBcInN0YXNoXCIgbWl0dCBpIGVuIHNhbW1hbnNsYWduaW5nIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI0CisjOiBnaXQtc3Rhc2guc2g6NDY3CiBtc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKIG1zZ3N0ciAiS29uZmxpa3RlciBpIGluZGV4ZXQuIFRlc3RhIHV0YW4gLS1pbmRleC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjYKKyM6IGdpdC1zdGFzaC5zaDo0NjkKIG1zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgogbXNnc3RyICJLdW5kZSBpbnRlIHNwYXJhIGluZGV4dHLDpGQiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjAKKyM6IGdpdC1zdGFzaC5zaDo1MDMKIG1zZ2lkICJDYW5ub3QgdW5zdGFnZSBtb2RpZmllZCBmaWxlcyIKIG1zZ3N0ciAiS2FuIGludGUgdGEgYm9ydCDDpG5kcmFkZSBmaWxlciB1ciBrw7ZuIgogCi0jOiBnaXQtc3Rhc2guc2g6NDc1CisjOiBnaXQtc3Rhc2guc2g6NTE4CiBtc2dpZCAiSW5kZXggd2FzIG5vdCB1bnN0YXNoZWQuIgogbXNnc3RyICJJbmRleGV0IGhhciBpbnRlIHRhZ2l0cyB1ciBrw7ZuLiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MgorIzogZ2l0LXN0YXNoLnNoOjUzNQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRHJvcHBlZCAke1JFVn0gKCRzKSIKIG1zZ3N0ciAiS2FzdGFkZSAke1JFVn0gKCRzKSIKIAotIzogZ2l0LXN0YXNoLnNoOjQ5MworIzogZ2l0LXN0YXNoLnNoOjUzNgogIywgc2gtZm9ybWF0CiBtc2dpZCAiJHtSRVZ9OiBDb3VsZCBub3QgZHJvcCBzdGFzaCBlbnRyeSIKIG1zZ3N0ciAiJHtSRVZ9OiBLdW5kZSBpbnRlIGthc3RhIFwic3Rhc2hcIi1wb3N0IgogCi0jOiBnaXQtc3Rhc2guc2g6NTAwCisjOiBnaXQtc3Rhc2guc2g6NTQzCiBtc2dpZCAiTm8gYnJhbmNoIG5hbWUgc3BlY2lmaWVkIgogbXNnc3RyICJJbmdldCBncmVubmFtbiBhbmdhdnMiCiAKLSM6IGdpdC1zdGFzaC5zaDo1NzEKKyM6IGdpdC1zdGFzaC5zaDo2MTUKIG1zZ2lkICIoVG8gcmVzdG9yZSB0aGVtIHR5cGUgXCJnaXQgc3Rhc2ggYXBwbHlcIikiCiBtc2dzdHIgIihGw7ZyIGF0dCDDpXRlcnN0w6RsbGEgZGVtLCBza3JpdiBcImdpdCBzdGFzaCBhcHBseVwiKSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHN0cmlwIG9uZSBjb21wb25lbnQgb2ZmIHVybCAnJHJlbW90ZXVybCciCiBtc2dzdHIgImthbiBpbnRlIHRhIGJvcnQgZW4ga29tcG9uZW50IGZyw6VuIHVybDplbiBcIiRyZW1vdGV1cmxcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxOTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJObyBzdWJtb2R1bGUgbWFwcGluZyBmb3VuZCBpbiAuZ2l0bW9kdWxlcyBmb3IgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICIiCiAiSGl0dGFkZSBpbmdlbiB1bmRlcm1vZHVsbWFwcG5pbmcgaSAuZ2l0bW9kdWxlcyBmw7ZyIHPDtmt2w6RnZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjIzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNsb25lIG9mICckdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgZmFpbGVkIgogbXNnc3RyICJNaXNzbHlja2FkZXMga2xvbmEgXCIkdXJsXCIgdGlsbCB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRzbV9wYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjI5MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiR2l0ZGlyICckYScgaXMgcGFydCBvZiB0aGUgc3VibW9kdWxlIHBhdGggJyRiJyBvciB2aWNlIHZlcnNhIgotbXNnc3RyICJHaXRrYXRhbG9nIFwiJGFcIiBpbmfDpXIgaSB1bmRlcmthdGFsb2dzw7ZrdsOkZ2VuIFwiJGJcIiBlbGxlciBvbXbDpG50IgorbXNnc3RyICJHaXRrYXRhbG9nIFwiJGFcIiBpbmfDpXIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRiXCIgZWxsZXIgb212w6RudCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNDkKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDAzCittc2dpZCAiUmVsYXRpdmUgcGF0aCBjYW4gb25seSBiZSB1c2VkIGZyb20gdGhlIHRvcGxldmVsIG9mIHRoZSB3b3JraW5nIHRyZWUiCittc2dzdHIgIlJlbGF0aXYgc8O2a3bDpGcga2FuIGVuZmFzdCBhbnbDpG5kYXMgZnLDpW4gYXJiZXRza2F0YWxvZ2VucyB0b3Bwbml2w6UiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDEzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJyZXBvIFVSTDogJyRyZXBvJyBtdXN0IGJlIGFic29sdXRlIG9yIGJlZ2luIHdpdGggLi98Li4vIgogbXNnc3RyICJhcmtpdi1VUkw6IFwiJHJlcG9cIiBtw6VzdGUgdmFyYSBhYnNvbHV0IGVsbGVyIGLDtnJqYSBtZWQgLi98Li4vIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickc21fcGF0aCcgYWxyZWFkeSBleGlzdHMgaW4gdGhlIGluZGV4IgogbXNnc3RyICJcIiRzbV9wYXRoXCIgZmlubnMgcmVkYW4gaSBpbmRleGV0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM3MAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgZm9sbG93aW5nIHBhdGggaXMgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgpAQCAtOTYwMSwyMiArMTAxMTQsMjIgQEAKICIkc21fcGF0aFxuIgogIkFudsOkbmQgLWYgb20gZHUgdmVya2xpZ2VuIHZpbGwgbMOkZ2dhIHRpbGwgZGVuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFkZGluZyBleGlzdGluZyByZXBvIGF0ICckc21fcGF0aCcgdG8gdGhlIGluZGV4IgogbXNnc3RyICJMw6RnZ2VyIHRpbGwgYmVmaW50bGlndCBhcmtpdiBpIFwiJHNtX3BhdGhcIiBpIGluZGV4ZXQiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzkwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGEgdmFsaWQgZ2l0IHJlcG8iCiBtc2dzdHIgIlwiJHNtX3BhdGhcIiBmaW5ucyByZWRhbiBvY2ggw6RyIGludGUgZXR0IGdpbHRpZ3QgZ2l0LWFya2l2IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkEgZ2l0IGRpcmVjdG9yeSBmb3IgJyRzbV9uYW1lJyBpcyBmb3VuZCBsb2NhbGx5IHdpdGggcmVtb3RlKHMpOiIKIG1zZ3N0ciAiRW4gZ2l0LWthdGFsb2cgZsO2ciBcIiRzbV9uYW1lXCIgaGl0dGFkZXMgbG9rYWx0IG1lZCBmasOkcnIoYXIpOiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgpAQCAtOTYyNCwxNCArMTAxMzcsMTQgQEAKICJGw7ZyIGF0dCDDpXRlcmFudsOkbmRhIGRlbiBsb2thbGEgZ2l0LWthdGFsb2dlbiBpc3TDpGxsZXQgZsO2ciBhdHQgcMOlIG55dHQga2xvbmEgIgogImZyw6VuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJ1c2UgdGhlICctLWZvcmNlJyBvcHRpb24uIElmIHRoZSBsb2NhbCBnaXQgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY29ycmVjdCByZXBvIgogbXNnc3RyICIiCiAiYW52w6RuZCBmbGFnZ2FuIFwiLS1mb3JjZVwiLiBPbSBkZW4gbG9rYWxhIGdpdC1rYXRhbG9nZW4gaW50ZSDDpHIgcmlrdGlndCBhcmtpdiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgpAQCAtOTY0MCwyMTAgKzEwMTUzLDI4NyBAQAogImVsbGVyIG9tIGR1IMOkciBvc8Oka2VyIHDDpSB2YWQgZGV0IGlubmViw6RyLCB2w6RsaiBueXR0IG5hbW4gbWVkIGZsYWdnYW4gXCItLW5hbWUiCiAiXCIuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjkKICMsIHNoLWZvcm1hdAogbXNnaWQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJyRzbV9uYW1lJy4iCiBtc2dzdHIgIkFrdGl2ZXJhciBsb2thbCBnaXQta2F0YWxvZyBmw7ZyIHVuZGVybW9kdWxlbiBcIiRzbV9uYW1lXCIgcMOlIG55dHQuIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiS2FuIGludGUgY2hlY2thIHV0IHVuZGVybW9kdWxlbiBcIiRzbV9wYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDIyCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ4NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGFkZCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAiTWlzc2x5Y2thZGVzIGzDpGdnYSB0aWxsIHVuZGVybW9kdWxlbiBcIiRzbV9wYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgogbXNnc3RyICJNaXNzbHlja2FkZXMgcmVnaXN0cmVyYSB1bmRlcm1vZHVsZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQ3NAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo1MzkKICMsIHNoLWZvcm1hdAotbXNnaWQgIkVudGVyaW5nICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJHw6VyIGluIGkgXCIkcHJlZml4JHNtX3BhdGhcIiIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIkfDpXIgaW4gaSBcIiRwcmVmaXgkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTU0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdG9wcGluZyBhdCAnJHNtX3BhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKK21zZ2lkICJTdG9wcGluZyBhdCAnJHByZWZpeCRkaXNwbGF5cGF0aCc7IHNjcmlwdCByZXR1cm5lZCBub24temVybyBzdGF0dXMuIgogbXNnc3RyICIiCi0iU3RvcHBhciBww6UgXCIkc21fcGF0aFwiOyBza3JpcHRldCByZXR1cm5lcmFkZSBlbiBzdGF0dXMgc2tpbGQgZnLDpW4gbm9sbC4iCisiU3RvcHBhciBww6UgXCIkcHJlZml4JGRpc3BsYXlwYXRoXCI7IHNrcmlwdGV0IHJldHVybmVyYWRlIGVuIHN0YXR1cyBza2lsZCAiCisiZnLDpW4gbm9sbC4iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwMAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgotbXNnc3RyICJIaXR0YWRlIGluZ2VuIHVybCBmw7ZyIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHNtX3BhdGhcIiBpIC5naXRtb2R1bGVzIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MQotIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJlZ2lzdHJlcmEgdXJsIGbDtnIgdW5kZXJrYXRhbG9nc8O2a3bDpGcgXCIkc21fcGF0aFwiIgotCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU0MwotIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVW5kZXJtb2R1bGVuIFwiJG5hbWVcIiAoJHVybCkgcmVnaXN0cmVyYWQgZsO2ciBzw7ZrdsOkZ2VuIFwiJHNtX3BhdGhcIiIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTEKLSMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIGluIC5naXRtb2R1bGVzIgogbXNnc3RyICIiCi0iTWlzc2x5Y2thZGVzIHJlZ2lzdHJlcmEgdXBwZGF0ZXJpbmdzbMOkZ2UgZsO2ciB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkc21fcGF0aFwiIgorIkhpdHRhZGUgaW5nZW4gdXJsIGbDtnIgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiBpIC5naXRtb2R1bGVzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJNaXNzbHlja2FkZXMgcmVnaXN0cmVyYSB1cmwgZsO2ciB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkZGlzcGxheXBhdGhcIiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTEKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSByZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICIiCisiVW5kZXJtb2R1bGVuIFwiJG5hbWVcIiAoJHVybCkgcmVnaXN0cmVyYWQgZsO2ciBzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjE5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXBkYXRlIG1vZGUgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICIiCisiTWlzc2x5Y2thZGVzIHJlZ2lzdHJlcmEgdXBwZGF0ZXJpbmdzbMOkZ2UgZsO2ciB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkZGlzcGxheXBhdGgiCisiXCIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIkFudsOkbmQgXCIuXCIgb20gZHUgdmVya2xpZ2VuIHZpbGwgYXZpbml0aWVyYSBhbGxhIHVuZGVybW9kdWxlciIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjczCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgd29yayB0cmVlICckc21fcGF0aCcgY29udGFpbnMgYSAuZ2l0IGRpcmVjdG9yeSIKLW1zZ3N0ciAiVW5kZXJtb2R1bGVucyBhcmJldHNrYXRhbG9nIFwiJHNtX3BhdGhcIiBpbm5laMOlbGxlciBrYXRhbG9nZW4gXCIuZ2l0XCIiCittc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgorbXNnc3RyICIiCisiVW5kZXJtb2R1bGVucyBhcmJldHNrYXRhbG9nIFwiJGRpc3BsYXlwYXRoXCIgaW5uZWjDpWxsZXIga2F0YWxvZ2VuIFwiLmdpdFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCiBtc2dzdHIgIiIKICIoYW52w6RuZCBcInJtIC1yZlwiIG9tIGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIG9jaCBhbGwgZGVzcyBoaXN0b3JpaykiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgogbXNnc3RyICIiCi0iVW5kZXJtb2R1bGVucyBhcmJldHNrYXRhbG9nIFwiJHNtX3BhdGhcIiBoYXIgbG9rYWxhIMOkbmRyaW5nYXI7IFwiLWZcIiBrYXN0YXIgIgotImJvcnQgZGVtIgorIlVuZGVybW9kdWxlbnMgYXJiZXRza2F0YWxvZyBcIiRkaXNwbGF5cGF0aFwiIGhhciBsb2thbGEgw6RuZHJpbmdhcjsgXCItZlwiICIKKyJrYXN0YXIgYm9ydCBkZW0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiUmVuc2FkZSBrYXRhbG9nZW4gXCIkc21fcGF0aFwiIgorbXNnaWQgIkNsZWFyZWQgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJSZW5zYWRlIGthdGFsb2dlbiBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIgotbXNnc3RyICJLdW5kZSBpbnRlIHRhIGJvcnQgdW5kZXJrYXRhbG9nZW5zIGFyYmV0c2thdGFsb2cgXCIkc21fcGF0aFwiIgorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS3VuZGUgaW50ZSB0YSBib3J0IHVuZGVybW9kdWxlbnMgYXJiZXRza2F0YWxvZyBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODcKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJHNtX3BhdGgnIgotbXNnc3RyICJLdW5kZSBpbnRlIHNrYXBhIHRvbSB1bmRlcm1vZHVsc2thdGFsb2cgXCIkc21fcGF0aFwiIgorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS3VuZGUgaW50ZSBza2FwYSB0b20gdW5kZXJtb2R1bHNrYXRhbG9nIFwiJGRpc3BsYXlwYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjI2CisjOiBnaXQtc3VibW9kdWxlLnNoOjY5NgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJVbmRlcm1vZHVsZW4gXCIkbmFtZVwiICgkdXJsKSBhdnJlZ2lzdHJlcmFkIGbDtnIgc8O2a3bDpGdlbiBcIiRzbV9wYXRoXCIiCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiIgorIlVuZGVybW9kdWxlbiBcIiRuYW1lXCIgKCR1cmwpIGF2cmVnaXN0cmVyYWQgZsO2ciBzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCi0iVW5kZXJtb2R1bGVuIFwiJHByZWZpeCRzbV9wYXRoXCIgaGFyIGludGUgaW5pdGllcmF0c1xuIgorIlVuZGVybW9kdWxlbiBcIiRkaXNwbGF5cGF0aFwiIGhhciBpbnRlIGluaXRpZXJhdHNcbiIKICJLYW5za2UgZHUgdmlsbCBrw7ZyYSBcInVwZGF0ZSAtLWluaXRcIj8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjOiBnaXQtc3VibW9kdWxlLnNoOjgyNAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiIgotIkthbiBpbnRlIGhpdHRhIGFrdHVlbGwgcmV2aXNpb24gaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlVuYWJsZSB0byBmaW5kIGN1cnJlbnQgcmV2aXNpb24gaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIkthbiBpbnRlIGhpdHRhIGFrdHVlbGwgcmV2aXNpb24gaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICJLYW4gaW50ZSBow6RtdGEgaSB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc3NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NTcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiS2FuIGludGUgaMOkbXRhIGkgdW5kZXJtb2R1bHPDtmt2w6RnIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLYW4gaW50ZSBow6RtdGEgaSB1bmRlcm1vZHVsc8O2a3bDpGcgXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcxCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkthbiBpbnRlIG9tYmFzZXJhIFwiJHNoYTFcIiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLYW4gaW50ZSBvbWJhc2VyYSBcIiRzaGExXCIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzIKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKLW1zZ3N0ciAiVW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIjogb21iYXNlcmFkZSBpbiBpIFwiJHNoYTFcIiIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCittc2dzdHIgIlVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCI6IG9tYmFzZXJhZGUgaW4gaSBcIiRzaGExXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIkthbiBpbnRlIHNsw6UgaWhvcCBcIiRzaGExXCIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiIgorbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLYW4gaW50ZSBzbMOlIGlob3AgXCIkc2hhMVwiIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODc4CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogbWVyZ2VkIGluICckc2hhMSciCi1tc2dzdHIgIlVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCI6IHNhbW1hbnNsYWdlbiBpIFwiJHNoYTFcIiIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogbWVyZ2VkIGluICckc2hhMSciCittc2dzdHIgIlVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJGRpc3BsYXlwYXRoXCI6IHNhbW1hbnNsYWdlbiBpIFwiJHNoYTFcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiS2FuIGludGUgY2hlY2thIHV0IFwiJHNoYTFcIiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiIgorIkV4ZWN1dGlvbiBvZiAnJGNvbW1hbmQgJHNoYTEnIGZhaWxlZCBpbiBzdWJtb2R1bGUgIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIiIKKyJNaXNzbHlja2FkZXMga8O2cmEgXCIkY29tbWFuZCAkc2hhMVwiIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKLW1zZ3N0ciAiVW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkcHJlZml4JHNtX3BhdGhcIjogY2hlY2thZGUgdXQgXCIkc2hhMVwiIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgorbXNnc3RyICJVbmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRwcmVmaXgkc21fcGF0aFwiOiBcIiRjb21tYW5kICRzaGExXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJla3Vyc2VyYSBpbiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiVW5hYmxlIHRvIGNoZWNrb3V0ICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIkthbiBpbnRlIGNoZWNrYSB1dCBcIiRzaGExXCIgaSB1bmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjkzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4OTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiBjaGVja2VkIG91dCAnJHNoYTEnIgorbXNnc3RyICJVbmRlcm1vZHVsc8O2a3bDpGdlbiBcIiRkaXNwbGF5cGF0aFwiOiBjaGVja2FkZSB1dCBcIiRzaGExXCIiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6OTE3CisjLCBzaC1mb3JtYXQKK21zZ2lkICJGYWlsZWQgdG8gcmVjdXJzZSBpbnRvIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJNaXNzbHlja2FkZXMgcmVrdXJzZXJhIGluIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkZGlzcGxheXBhdGhcIiIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDI1CiBtc2dpZCAiVGhlIC0tY2FjaGVkIG9wdGlvbiBjYW5ub3QgYmUgdXNlZCB3aXRoIHRoZSAtLWZpbGVzIG9wdGlvbiIKIG1zZ3N0ciAiRmxhZ2dhbiAtLWNhY2hlZCBrYW4gaW50ZSBhbnbDpG5kYXMgbWVkIGZsYWdnYW4gLS1maWxlcyIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgIm92w6RudGF0IGzDpGdlICRtb2RfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfc3JjIgotbXNnc3RyICIgIFZhcm5pbmc6ICRuYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmcgJHNoYTFfc3JjIgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKK21zZ3N0ciAiICBWYXJuaW5nOiAkZGlzcGxheV9uYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmdlbiAkc2hhMV9zcmMiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgotbXNnc3RyICIgIFZhcm5pbmc6ICRuYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmcgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKK21zZ3N0ciAiICBWYXJuaW5nOiAkZGlzcGxheV9uYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmdlbiAkc2hhMV9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDkyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgotbXNnc3RyICIgIFZhcm5pbmc6ICRuYW1lIGlubmVow6VsbGVyIGludGUgaW5jaGVja25pbmdhciAkc2hhMV9zcmMgb2NoICRzaGExX2RzdCIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdHMgJHNoYTFfc3JjIGFuZCAkc2hhMV9kc3QiCittc2dzdHIgIiIKKyIgIFZhcm5pbmc6ICRkaXNwbGF5X25hbWUgaW5uZWjDpWxsZXIgaW50ZSBpbmNoZWNrbmluZ2FybmEgJHNoYTFfc3JjIG9jaCAiCisiJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNwogbXNnaWQgImJsb2IiCiBtc2dzdHIgImJsb2IiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1CiBtc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCiBtc2dzdHIgIlVuZGVybW9kdWxlciDDpG5kcmFkZSBtZW4gaW50ZSB1cHBkYXRlcmFkZToiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU3CiBtc2dpZCAiU3VibW9kdWxlIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiVW5kZXJtb2R1bGVycyDDpG5kcmluZ2FyIGF0dCBjaGVja2EgaW46IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICJNaXNzbHlja2FkZXMgcmVrdXJzZXJhIGluIGkgdW5kZXJtb2R1bHPDtmt2w6RnZW4gXCIkc21fcGF0aFwiIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEyMTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTMwNgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiU3lua3JvbmlzZXJhciB1bmRlcm1vZHVsLXVybCBmw7ZyIFwiJHByZWZpeCRzbV9wYXRoXCIiCittc2dpZCAiU3luY2hyb25pemluZyBzdWJtb2R1bGUgdXJsIGZvciAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiU3lua3JvbmlzZXJhciB1bmRlcm1vZHVsLXVybCBmw7ZyIFwiJGRpc3BsYXlwYXRoXCIiCisKKyN+IG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorI34gbXNnc3RyICIgIChyw6R0dGEga29uZmxpa3RlciBvY2gga8O2ciBzZWRhbiBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorCisjfiBtc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNvbW1pdFwiKSIKKyN+IG1zZ3N0ciAiICAoYWxsYSBrb25mbGlrdGVyIGhhciByw6R0dGF0czoga8O2ciBcImdpdCBjb21taXRcIikiCisKKyN+IG1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCisjfiBtc2dzdHIgIm1lciDDpG4gJWQgdHLDpGQgYW5nYXZzOiBcIiVzXCIiCisKKyN+IG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCisjfiBtc2dzdHIgIkR1IGthbiBpbnRlIGtvbWJpbmVyYSAtLW5vLWZmIG1lZCAtLWZmLW9ubHkuIgorCisjfiBtc2dpZCAiIgorI34gInN1Ym1vZHVsZSAnJXMnIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGVzKSB1c2VzIGEgLmdpdCBkaXJlY3RvcnlcbiIKKyN+ICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgIgorI34gImhpc3RvcnkpIgorI34gbXNnc3RyICIiCisjfiAidW5kZXJtb2R1bGVuIFwiJXNcIiAoZWxsZXIgZW4gYXYgZGVzcyB1bmRlcm1vZHVsZXIpIGFudsOkbmRlciBlbiAuZ2l0LSIKKyN+ICJrYXRhbG9nXG4iCisjfiAiKGFudsOkbmQgXCJybSAtcmZcIiBvbSBkdSB2ZXJrbGlnZW4gdmlsbCB0YSBib3J0IGRlbiBvY2ggYWxsIGRlc3MgaGlzdG9yaWspIgorCisjfiBtc2dpZCAiIgorI34gIiclcycgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleFxuIgorI34gIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCisjfiBtc2dzdHIgIiIKKyN+ICJcIiVzXCIgaGFyIGvDtmFkZSDDpG5kcmluZ2FyIGkgaW5kZXhldFxuIgorI34gIihhbnbDpG5kIC0tY2FjaGVkIGbDtnIgYXR0IGJlaMOlbGxhIGZpbGVuIGVsbGVyIC1mIGbDtnIgYXR0IHR2aW5nYSAiCisjfiAiYm9ydHRhZ25pbmcpIgorCisjfiBtc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgorI34gbXNnc3RyICJ2aXNhIGluY2hlY2tuaW5nYXIgZMOkciBpbmdlbiBmw7Zyw6RsZGVyIGtvbW1lciBmw7ZyZSBkZXNzIGJhcm4iCisKKyN+IG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKKyN+IG1zZ3N0ciAidmlzYSBIRUFELXJlZmVyZW5zZW4iCisKKyN+IG1zZ2lkICJVbmFibGUgdG8gZmV0Y2ggaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIkthbiBpbnRlIGjDpG10YSBpIHVuZGVybW9kdWxzw7ZrdsOkZyBcIiRwcmVmaXgkc21fcGF0aFwiIgorCisjfiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKKyN+IG1zZ3N0ciAiTWlzc2x5Y2thZGVzIHJla3Vyc2VyYSBpbiBpIHVuZGVybW9kdWxzw7ZrdsOkZ2VuIFwiJHByZWZpeCRzbV9wYXRoXCIiCisKKyN+IG1zZ2lkICJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAgJ3N0YXR1cyAtdW5vJyIKKyN+IG1zZ3N0ciAiRGV0IHRvZyAlLjJmIHNla3VuZGVyIGF0dCByw6RrbmEgb3Nww6VyYWRlIGZpbGVyLiBcInN0YXR1cyAtdW5vXCIiCisKKyN+IG1zZ2lkICJtYXkgc3BlZWQgaXQgdXAsIGJ1dCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBmb3JnZXQgdG8gYWRkIgorI34gbXNnc3RyICJrYW5za2UgZ8O2ciBkZXQgc25hYmJhcmUsIG1lbiBkdSBtw6VzdGUgdmFyYSBmw7Zyc2lrdGlnIHPDpSBhdHQgZHUiCisKKyN+IG1zZ2lkICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgorI34gbXNnc3RyICJpbnRlIGdsw7ZtbWVyIGzDpGdnYSB0aWxsIGZpbGVyIHNqw6RsdiAoc2UgXCJnaXQgaGVscCBzdGF0dXNcIikiCisKKyN+IG1zZ2lkICJnaXQgc2hvcnRsb2cgWy1uXSBbLXNdIFstZV0gWy13XSBbcmV2LW9wdHNdIFstLV0gWzxjb21taXQtaWQ+Li4uIF0iCisjfiBtc2dzdHIgIiIKKyN+ICJnaXQgc2hvcnRsb2cgWy1uXSBbLXNdIFstZV0gWy13XSBbcmV2LWZsYWdnb3JdIFstLV0gWzxpbmNoZWNrbmluZy1pZD4uLi4gXSIKKworI34gbXNnaWQgIlNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhIHNwZWNpZmljIGNvbW1hbmQuIgorI34gbXNnc3RyICIiCisjfiAiU2UgXCJnaXQgaGVscCA8a29tbWFuZG8+XCIgZsO2ciBtZXIgaW5mb3JtYXRpb24gb20gZXR0IHNwZWNpZmlrdCBrb21tYW5kby4iCiAKICN+IG1zZ2lkICJ1c2UgYW55IHJlZiBpbiAuZ2l0L3JlZnMiCiAjfiBtc2dzdHIgImFudsOkbmQgYWxsYSByZWZlcmVuc2VyIGkgLmdpdC9yZWZzIgpAQCAtOTk2NCw5ICsxMDU1NCw2IEBACiAjfiBtc2dpZCAiIyBDaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCiAjfiBtc2dzdHIgIiMgw4RuZHJhZGUgbWVuIGludGUgdXBwZGF0ZXJhZGU6IgogCi0jfiBtc2dpZCAiQSBicmFuY2ggbmFtZWQgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCi0jfiBtc2dzdHIgIkRldCBmaW5ucyByZWRhbiBlbiBncmVuIHNvbSBoZXRlciBcIiVzXCIiCi0KICN+IG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgMyB2ZXJzaW9ucyIKICN+IG1zZ3N0ciAic8O2a3bDpGdlbiBcIiVzXCIgaGFyIGludGUgYWxsYSAzIHZlcnNpb25lcm5hIgogCkBAIC05OTkwLDczICsxMDU3NywzIEBACiAKICN+IG1zZ2lkICJGYWlsZWQgdG8gd3JpdGUgY3VycmVudCBub3RlcyB0cmVlIHRvIGRhdGFiYXNlIgogI34gbXNnc3RyICJLdW5kZSBpbnRlIHNrcml2YSBha3R1ZWxsdCBhbnRlY2tuaW5nc3Ryw6RkIHRpbGwgZGF0YWJhc2VuIgotCi0jIEZJWE1FOiBVbnRyYW5zbGF0YWJsZSEKLSMKLSN+IG1zZ2lkICJSZWZ1c2luZyB0byAlcyBub3RlcyBpbiAlcyAob3V0c2lkZSBvZiByZWZzL25vdGVzLykiCi0jfiBtc2dzdHIgIlbDpGdyYXIgJXMgYW50ZWNrbmluZ2FyIGkgJXMgKHV0YW5mw7ZyIHJlZnMvbm90ZXMvKSIKLQotI34gbXNnaWQgImFkZCIKLSN+IG1zZ3N0ciAiYWRkIgotCi0jfiBtc2dpZCAiY29weSIKLSN+IG1zZ3N0ciAiY29weSIKLQotI34gbXNnaWQgInNob3ciCi0jfiBtc2dzdHIgInNob3ciCi0KLSN+IG1zZ2lkICJyZW1vdmUiCi0jfiBtc2dzdHIgInJlbW92ZSIKLQotI34gbXNnaWQgInBydW5lIgotI34gbXNnc3RyICJwcnVuZSIKLQotI34gbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBpcyBub3QgdHJhY2tpbmcgYW55dGhpbmcuIgotI34gbXNnc3RyICJEZW4gYWt0dWVsbGEgZ3JlbmVuICVzIHNww6VyYXIgaW5nZW50aW5nLiIKLQotI34gbXNnaWQgIk5vIGRlc3RpbmF0aW9uIGNvbmZpZ3VyZWQgdG8gcHVzaCB0by4iCi0jfiBtc2dzdHIgIkhhciBpbnRlIHN0w6RsbHQgaW4gbsOlZ29uIGRlc3RpbmF0aW9uIGF0dCBzw6RuZGEgdGlsbC4iCi0KLSN+IG1zZ2lkICJSZWZsb2cgYWN0aW9uIG1lc3NhZ2UgdG9vIGxvbmc6ICUuKnMuLi4iCi0jfiBtc2dzdHIgIlJlZmxvZy1ow6RuZGVsc2VtZWRkZWxhbmRlIGbDtnIgbMOlbmd0OiAlLipzLi4uIgotCi0jfiBtc2dpZCAiQ291bGQgbm90IHJlYWQgY29tbWl0IG1lc3NhZ2Ugb2YgJXMiCi0jfiBtc2dzdHIgIkt1bmRlIGludGUgbMOkc2EgaW5jaGVja25pbmdzbWVkZGVsYW5kZXQgZsO2ciAlcyIKLQotI34gbXNnaWQgIkNvdWxkIG5vdCBleHRyYWN0IGF1dGhvciBlbWFpbCBmcm9tICVzIgotI34gbXNnc3RyICJLdW5kZSBpbnRlIGjDpG10YSBmw7ZyZmF0dGFyZW5zIGUtcG9zdGFkcmVzcyBmcsOlbiAlcyIKLQotI34gbXNnaWQgIkNvdWxkIG5vdCBleHRyYWN0IGF1dGhvciB0aW1lIGZyb20gJXMiCi0jfiBtc2dzdHIgIkt1bmRlIGludGUgaMOkbXRhIGbDtnJmYXR0YXJ0aWQgZnLDpW4gJXMiCi0KLSN+IG1zZ2lkICJObyBhdXRob3IgaW5mb3JtYXRpb24gZm91bmQgaW4gJXMiCi0jfiBtc2dzdHIgIkhpdHRhZGUgaW5nZW4gZsO2cmZhdHRhcmluZm9ybWF0aW9uIGkgJXMiCi0KLSN+IG1zZ2lkICJjaGVycnktcGljayAtLWZmIGNhbm5vdCBiZSB1c2VkIHdpdGggLS1zaWdub2ZmIgotI34gbXNnc3RyICJjaGVycnktcGljayAtLWZmIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgLS1zaWdub2ZmIgotCi0jfiBtc2dpZCAiY2hlcnJ5LXBpY2sgLS1mZiBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8tY29tbWl0IgotI34gbXNnc3RyICJjaGVycnktcGljayAtLWZmIGthbiBpbnRlIGFudsOkbmRhcyBtZWQgLS1uby1jb21taXQiCi0KLSN+IG1zZ2lkICJjaGVycnktcGljayAtLWZmIGNhbm5vdCBiZSB1c2VkIHdpdGggLXgiCi0jfiBtc2dzdHIgImNoZXJyeS1waWNrIC0tZmYga2FuIGludGUgYW52w6RuZGFzIG1lZCAteCIKLQotI34gbXNnaWQgImNoZXJyeS1waWNrIC0tZmYgY2Fubm90IGJlIHVzZWQgd2l0aCAtLWVkaXQiCi0jfiBtc2dzdHIgImNoZXJyeS1waWNrIC0tZmYga2FuIGludGUgYW52w6RuZGFzIG1lZCAtLWVkaXQiCi0KLSN+IG1zZ2lkICJjb21taXR0ZXIgaW5mbyB0b28gbG9uZy4iCi0jfiBtc2dzdHIgImluY2hlY2thcmluZm9ybWF0aW9uIGbDtnIgbMOlbmcuIgotCi0jfiBtc2dpZCAiIgotI34gIlxuIgotI34gIiNcbiIKLSN+ICIjIFdyaXRlIGEgdGFnIG1lc3NhZ2VcbiIKLSN+ICIjXG4iCi0jfiBtc2dzdHIgIiIKLSN+ICJcbiIKLSN+ICIjXG4iCi0jfiAiIyBTa3JpdiBldHQgdGFnZ21lZGRlbGFuZGVcbiIKLSN+ICIjXG4iCi0KLSN+IG1zZ2lkICJzaWduaW5nIGtleSB2YWx1ZSB0b28gbG9uZyAoJS4xMHMuLi4pIgotI34gbXNnc3RyICJzaWduZXJpbmdzbnlja2VsdsOkcmRldCBmw7ZyIGzDpW5ndCAoJS4xMHMuLi4pIgpkaWZmIC0tZ2l0IGEvcG8vdmkucG8gYi9wby92aS5wbwppbmRleCA5NzIwODgwLi5kZDJkMmE3IDEwMDY0NAotLS0gYS9wby92aS5wbworKysgYi9wby92aS5wbwpAQCAtMSwxNSArMSwxNCBAQAogIyBWaWV0bmFtZXNlIHRyYW5zbGF0aW9uIGZvciBHSVQtQ09SRS4KLSMgQ29weXJpZ2h0IChDKSAyMDEyLTIwMTMgVHLhuqduIE5n4buNYyBRdcOibi4KICMgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2UgYXMgdGhlIGdpdC1jb3JlIHBhY2thZ2UuCiAjIEZpcnN0IHRyYW5zbGF0ZWQgYnkgVHLhuqduIE5n4buNYyBRdcOibiA8dm53aWxkbWFuQGdtYWlsLmNvbT4sIDIwMTItMjAxMy4KICMgTmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eSA8cGNsb3Vkc0BnbWFpbC5jb20+LCAyMDEyLgogIwogbXNnaWQgIiIKIG1zZ3N0ciAiIgotIlByb2plY3QtSWQtVmVyc2lvbjogZ2l0LXYxLjguMi4xLTM0Mi1nZmE3MjhcbiIKKyJQcm9qZWN0LUlkLVZlcnNpb246IGdpdC12MS44LjQtcmMxLTIyLWdiOGVjZjIzXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IEdpdCBNYWlsaW5nIExpc3QgPGdpdEB2Z2VyLmtlcm5lbC5vcmc+XG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDQtMTAgMTU6MTYrMDgwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDQtMTEgMTQ6MjErMDcwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjEwKzA4MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDEzLTA4LTA2IDE0OjI4KzA3MDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFRy4bqnbiBOZ+G7jWMgUXXDom4gPHZud2lsZG1hbkBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogVmlldG5hbWVzZSA8dHJhbnNsYXRpb24tdGVhbS12aUBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiAiTGFuZ3VhZ2U6IHZpXG4iCkBAIC0yMiw3ICsyMSw3IEBACiAiWC1Qb2VkaXQtQmFzZXBhdGg6IC4uL1xuIgogIlgtR2VuZXJhdG9yOiBQb2VkaXQgMS41LjVcbiIKIAotIzogYWR2aWNlLmM6NTMKKyM6IGFkdmljZS5jOjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImhpbnQ6ICUuKnNcbiIKIG1zZ3N0ciAiZ+G7o2kgw706ICUuKnNcbiIKQEAgLTMxLDcgKzMwLDcgQEAKICMuICogTWVzc2FnZSB1c2VkIGJvdGggd2hlbiAnZ2l0IGNvbW1pdCcgZmFpbHMgYW5kIHdoZW4KICMuICogb3RoZXIgY29tbWFuZHMgZG9pbmcgYSBtZXJnZSBkby4KICMuCi0jOiBhZHZpY2UuYzo4MworIzogYWR2aWNlLmM6ODcKIG1zZ2lkICIiCiAiRml4IHRoZW0gdXAgaW4gdGhlIHdvcmsgdHJlZSxcbiIKICJhbmQgdGhlbiB1c2UgJ2dpdCBhZGQvcm0gPGZpbGU+JyBhc1xuIgpAQCAtMzksOSArMzgsOSBAQAogIm9yIHVzZSAnZ2l0IGNvbW1pdCAtYScuIgogbXNnc3RyICIiCiAiU+G7rWEgY2jDum5nIHRyb25nIGPDonkgbMOgbSB2aeG7h2MsXG4iCi0idsOgIHNhdSDEkcOzIGTDuW5nIGzhu4duaCDigJxnaXQgYWRkL3JtIDx04bqtcC10aW4+4oCdIGTDoG5oIHJpw6puZ1xuIgorInbDoCBzYXUgxJHDsyBkw7luZyBs4buHbmggXCJnaXQgYWRkL3JtIDx04bqtcC10aW4+XCIgZMOgbmggcmnDqm5nXG4iCiAiY2hvIHZp4buHYyDEkcOhbmggZOG6pXUgdOG6rXAgdGluIGPhuqduIGdp4bqjaSBxdXnhur90IHbDoCB04bqhbyBs4bqnbiBjaHV54buDbiBnaWFvLFxuIgotImhv4bq3YyBsw6AgZMO5bmcgbOG7h25oIOKAnGdpdCBjb21taXQgLWHigJ0uIgorImhv4bq3YyBsw6AgZMO5bmcgbOG7h25oIFwiZ2l0IGNvbW1pdCAtYVwiLiIKIAogIzogYXJjaGl2ZS5jOjEwCiBtc2dpZCAiZ2l0IGFyY2hpdmUgW29wdGlvbnNdIDx0cmVlLWlzaD4gWzxwYXRoPi4uLl0iCkBAIC03MCw3ICs2OSw3IEBACiBtc2dpZCAiYXJjaGl2ZSBmb3JtYXQiCiBtc2dzdHIgIsSR4buLbmggZOG6oW5nIGzGsHUgdHLhu68iCiAKLSM6IGFyY2hpdmUuYzozMjQgYnVpbHRpbi9sb2cuYzoxMTE3CisjOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTE3MwogbXNnaWQgInByZWZpeCIKIG1zZ3N0ciAidGnhu4FuIHThu5EiCiAKQEAgLTc4LDExICs3NywxMSBAQAogbXNnaWQgInByZXBlbmQgcHJlZml4IHRvIGVhY2ggcGF0aG5hbWUgaW4gdGhlIGFyY2hpdmUiCiBtc2dzdHIgIm7hu5FpIHRow6ptIHRp4buBbiB04buRIHbDoG8gdOG7q25nIMSRxrDhu51uZyBk4bqrbiB04bqtcCB0aW4gdHJvbmcga2hvIGzGsHUiCiAKLSM6IGFyY2hpdmUuYzozMjYgYnVpbHRpbi9hcmNoaXZlLmM6ODggYnVpbHRpbi9ibGFtZS5jOjIzNjYKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY3IGJ1aWx0aW4vY29uZmlnLmM6NTUgYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY1OQotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2MSBidWlsdGluL2dyZXAuYzo3MTUgYnVpbHRpbi9oYXNoLW9iamVjdC5jOjc3Ci0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAgYnVpbHRpbi9ub3Rlcy5jOjUzNgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MyBidWlsdGluL3JlYWQtdHJlZS5jOjEwNyBwYXJzZS1vcHRpb25zLmg6MTQ5CisjOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCisjOiBidWlsdGluL2JsYW1lLmM6MjI5MyBidWlsdGluL2NvbmZpZy5jOjU2IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzMKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzUgYnVpbHRpbi9ncmVwLmM6NzE0IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NiBidWlsdGluL2xzLWZpbGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo0MDgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NjUgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDggcGFyc2Utb3B0aW9ucy5oOjE1MgogbXNnaWQgImZpbGUiCiBtc2dzdHIgInThuq1wLXRpbiIKIApAQCAtOTYsNyArOTUsNyBAQAogCiAjOiBhcmNoaXZlLmM6MzMwCiBtc2dpZCAicmVwb3J0IGFyY2hpdmVkIGZpbGVzIG9uIHN0ZGVyciIKLW1zZ3N0ciAibGnhu4d0IGvDqiBjw6FjIHThuq1wIHRpbiDEkcaw4bujYyBsxrB1IHRy4buvIHbDoG8gc3RkZXJyICjEkeG6p3UgcmEgbOG7l2kgY2h14bqpbikiCittc2dzdHIgImxp4buHdCBrw6ogY8OhYyB04bqtcCB0aW4gxJHGsOG7o2MgbMawdSB0cuG7ryB2w6BvIHN0ZGVyciAoxJHhuqd1IHJhIGzhu5dpIHRpw6p1IGNodeG6qW4pIgogCiAjOiBhcmNoaXZlLmM6MzMxCiBtc2dpZCAic3RvcmUgb25seSIKQEAgLTExNCw3ICsxMTMsNyBAQAogbXNnaWQgImxpc3Qgc3VwcG9ydGVkIGFyY2hpdmUgZm9ybWF0cyIKIG1zZ3N0ciAibGnhu4d0IGvDqiBjw6FjIGtp4buDdSBuw6luIMSRxrDhu6NjIGjhu5cgdHLhu6MiCiAKLSM6IGFyY2hpdmUuYzozNDUgYnVpbHRpbi9hcmNoaXZlLmM6OTAgYnVpbHRpbi9jbG9uZS5jOjg2CisjOiBhcmNoaXZlLmM6MzQ1IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NQogbXNnaWQgInJlcG8iCiBtc2dzdHIgImtobyIKIApAQCAtMTIyLDcgKzEyMSw3IEBACiBtc2dpZCAicmV0cmlldmUgdGhlIGFyY2hpdmUgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSA8cmVwbz4iCiBtc2dzdHIgIm5o4bqtbiBraG8gbMawdSB04burIGtobyBjaOG7qWEgPGtobz4gdHLDqm4gbcOheSBjaOG7pyIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NjE1CisjOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICJs4buHbmgiCiAKQEAgLTEzOCwxOSArMTM3LDkwIEBACiAiQ8OhYyBt4bqrdSBk4bqhbmcgcGjhu6cgxJHhu4tuaCBi4buLIGPhuqVtIGTDuW5nIGNobyBjw6FjIHRodeG7mWMgdMOtbmggY+G7p2EgZ2l0XG4iCiAiRMO5bmcg4oCcXFwh4oCdIGNobyBjw6FjIGNodeG7l2kgdsSDbiBi4bqjbiBjw7MgZOG6pXUgY2jhuqVtIHRoYW4gZOG6q24gxJHhuqd1LiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBicmFuY2ggJXMgYXMgaXRzIG93biB1cHN0cmVhbS4iCittc2dzdHIgIkNoxrBhIGPDoGkgxJHhurd0IG5ow6FuaCAlcyBuaMawIGzDoCB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIGPhu6dhIG7Dsy4iCisKKyM6IGJyYW5jaC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiIgorIk5ow6FuaCAlcyBjw6BpIMSR4bq3dCDEkeG7gyB0aGVvIGTDtWkgduG6v3QgbmjDoW5oIG3DoXkgY2jhu6cgJXMgdOG7qyAlcyBi4bqxbmcgY8OhY2ggcmViYXNlLiIKKworIzogYnJhbmNoLmM6ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayByZW1vdGUgYnJhbmNoICVzIGZyb20gJXMuIgorbXNnc3RyICJOaMOhbmggJXMgY8OgaSDEkeG6t3QgxJHhu4MgdGhlbyB24bq/dCBuaMOhbmggbcOheSBjaOG7pyAlcyB04burICVzLiIKKworIzogYnJhbmNoLmM6ODcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICJOaMOhbmggJXMgY8OgaSDEkeG6t3QgxJHhu4MgdGhlbyB24bq/dCBuaMOhbmggbuG7mWkgYuG7mSAlcyBi4bqxbmcgY8OhY2ggcmViYXNlLiIKKworIzogYnJhbmNoLmM6ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMuIgorbXNnc3RyICJOaMOhbmggJXMgY8OgaSDEkeG6t3QgxJHhu4MgdGhlbyB24bq/dCBuaMOhbmggbuG7mWkgYuG7mSAlcy4iCisKKyM6IGJyYW5jaC5jOjkyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIk5ow6FuaCAlcyBjw6BpIMSR4bq3dCDEkeG7gyB0aGVvIHbhur90IG5ow6FuaCBtw6F5IGNo4bunICVzIGLhurFuZyBjw6FjaCByZWJhc2UuIgorCisjOiBicmFuY2guYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSByZWYgJXMuIgorbXNnc3RyICJOaMOhbmggJXMgY8OgaSDEkeG6t3QgxJHhu4MgdGhlbyB24bq/dCB0aGFtIGNoaeG6v3UgbcOheSBjaOG7pyAlcy4iCisKKyM6IGJyYW5jaC5jOjk3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAiIgorIk5ow6FuaCAlcyBjw6BpIMSR4bq3dCDEkeG7gyB0aGVvIGTDtWkgduG6v3QgdGhhbSBjaGnhur91IG7hu5lpIGLhu5kgJXMgYuG6sW5nIGPDoWNoIHJlYmFzZS4iCisKKyM6IGJyYW5jaC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzLiIKK21zZ3N0ciAiTmjDoW5oICVzIGPDoGkgxJHhurd0IMSR4buDIHRoZW8gZMO1aSB0aGFtIGNoaeG6v3UgbuG7mWkgYuG7mSAlcy4iCisKKyM6IGJyYW5jaC5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJUcmFja2luZyBub3Qgc2V0IHVwOiBuYW1lIHRvbyBsb25nOiAlcyIKK21zZ3N0ciAiVGhlbyB24bq/dCBjaMawYSDEkcaw4bujYyBjw6BpIMSR4bq3dDogdMOqbiBxdcOhIGTDoGk6ICVzIgorCisjOiBicmFuY2guYzoxMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IHRyYWNraW5nOiBhbWJpZ3VvdXMgaW5mb3JtYXRpb24gZm9yIHJlZiAlcyIKK21zZ3N0ciAiS2jDtG5nIHRoZW8gduG6v3Q6IHRow7RuZyB0aW4gY2jGsGEgcsO1IHLDoG5nIGNobyB0aGFtIGNoaeG6v3UgJXMiCisKKyM6IGJyYW5jaC5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIGJyYW5jaCBuYW1lLiIKK21zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgdMOqbiBuaMOhbmggaOG7o3AgbOG7hy4iCisKKyM6IGJyYW5jaC5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJBIGJyYW5jaCBuYW1lZCAnJXMnIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAixJDDoyBjw7MgbmjDoW5oIG1hbmcgdMOqbiDigJwlc+KAnS4iCisKKyM6IGJyYW5jaC5jOjE5NQorbXNnaWQgIkNhbm5vdCBmb3JjZSB1cGRhdGUgdGhlIGN1cnJlbnQgYnJhbmNoLiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIMOpcCBideG7mWMgY+G6rXAgbmjhuq10IG5ow6FuaCBoaeG7h24gaMOgbmguIgorCisjOiBicmFuY2guYzoyMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHNldHVwIHRyYWNraW5nIGluZm9ybWF0aW9uOyBzdGFydGluZyBwb2ludCAnJXMnIGlzIG5vdCBhIGJyYW5jaC4iCiBtc2dzdHIgIiIKLSJLaMO0bmcgdGjhu4MgY8OgaSDEkeG6t3QgdGjDtG5nIHRpbiB0aGVvIHbhur90OyDEkWnhu4NtIGLhuq90IMSR4bqndSAnJXMnIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0ICIKKyJLaMO0bmcgdGjhu4MgY8OgaSDEkeG6t3QgdGjDtG5nIHRpbiB0aGVvIHbhur90OyDEkWnhu4NtIGLhuq90IMSR4bqndSDigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCAiCiAibmjDoW5oLiIKIAotIzogYnJhbmNoLmM6MjAzCisjOiBicmFuY2guYzoyMTgKICMsIGMtZm9ybWF0CiBtc2dpZCAidGhlIHJlcXVlc3RlZCB1cHN0cmVhbSBicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAibmjDoW5oIGTDsm5nIG5nxrDhu6NjIMSRw6MgecOqdSBj4bqndSDigJwlc+KAnSBjaMawYSBz4bq1biBjw7MiCiAKLSM6IGJyYW5jaC5jOjIwNQorIzogYnJhbmNoLmM6MjIwCiBtc2dpZCAiIgogIlxuIgogIklmIHlvdSBhcmUgcGxhbm5pbmcgb24gYmFzaW5nIHlvdXIgd29yayBvbiBhbiB1cHN0cmVhbVxuIgpAQCAtMTcwLDYgKzI0MCwyOSBAQAogInPhur0gdGhlbyBkw7VpIGLhuqNuIMSR4buRaSBjaGnhur91IG3DoXkgY2jhu6cgY+G7p2EgbsOzLCBi4bqhbiBj4bqnbiBkw7luZyBs4buHbmhcbiIKICJcImdpdCBwdXNoIC11XCIgxJHhu4MgxJHhurd0IGPhuqV1IGjDrG5oIGTDsm5nIG5nxrDhu6NjIGLhuqFuIG114buRbiBwdXNoLiIKIAorIzogYnJhbmNoLmM6MjY1CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIG9iamVjdCBuYW1lOiAnJXMnLiIKK21zZ3N0ciAiS2jDtG5nIHBo4bqjaSB0w6puIMSR4buRaSB0xrDhu6NuZyBo4bujcCBs4buHOiDigJwlc+KAnS4iCisKKyM6IGJyYW5jaC5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgorbXNnc3RyICJUw6puIMSR4buRaSB0xrDhu6NuZyBjaMawYSByw7UgcsOgbmc6IOKAnCVz4oCdLiIKKworIzogYnJhbmNoLmM6MjkwCisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCBhIHZhbGlkIGJyYW5jaCBwb2ludDogJyVzJy4iCittc2dzdHIgIk5ow6FuaCBraMO0bmcgaOG7o3AgbOG7hzog4oCcJXPigJ0uIgorCisjOiBicmFuY2guYzoyOTYKK21zZ2lkICJGYWlsZWQgdG8gbG9jayByZWYgZm9yIHVwZGF0ZSIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIGtow7NhIHRoYW0gY2hp4bq/dSAocmVmKSDEkeG7gyBj4bqtcCBuaOG6rXQiCisKKyM6IGJyYW5jaC5jOjMxNAorbXNnaWQgIkZhaWxlZCB0byB3cml0ZSByZWYiCittc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBnaGkgdGhhbSBjaGnhur91IChyZWYpIgorCiAjOiBidW5kbGUuYzozNgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGRvZXMgbm90IGxvb2sgbGlrZSBhIHYyIGJ1bmRsZSBmaWxlIgpAQCAtMTgwLDcgKzI3Myw3IEBACiBtc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgogbXNnc3RyICJwaOG6p24gxJHhuqd1IChoZWFkZXIpIGtow7RuZyDEkcaw4bujYyB0aOG7q2Egbmjhuq1uOiAlcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyDigJwlc+KAnSIKQEAgLTE4OSwxMSArMjgyLDExIEBACiBtc2dpZCAiUmVwb3NpdG9yeSBsYWNrcyB0aGVzZSBwcmVyZXF1aXNpdGUgY29tbWl0czoiCiBtc2dzdHIgIktobyBjaOG7qWEgdGhp4bq/dSBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY+G6p24gdHLGsOG7m2MgaOG6v3QgbsOgeToiCiAKLSM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTA4MyBidWlsdGluL2xvZy5jOjMwMAotIzogYnVpbHRpbi9sb2cuYzo3NTQgYnVpbHRpbi9sb2cuYzoxMzUwIGJ1aWx0aW4vbG9nLmM6MTU2NiBidWlsdGluL21lcmdlLmM6MzQ5Ci0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTU3CisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgogbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgotbXNnc3RyICJjw6BpIMSR4bq3dCB2aeG7h2MgZGkgY2h1eeG7g24gcXVhIGPDoWMgxJFp4buDbSB4w6l0IGzhuqFpIGfhurdwIGzhu5dpIgorbXNnc3RyICJjw6BpIMSR4bq3dCB2aeG7h2MgZGkgY2h1eeG7g24gcXVhIGPDoWMgxJFp4buDbSB4w6l0IGR1eeG7h3QgZ+G6t3AgbOG7l2kiCiAKICM6IGJ1bmRsZS5jOjE4NgogIywgYy1mb3JtYXQKQEAgLTIxNyw3ICszMTAsNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgInJldi1saXN0IMSRw6MgY2jhur90IgogCi0jOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMjQ2IGJ1aWx0aW4vc2hvcnRsb2cuYzoyNjAKKyM6IGJ1bmRsZS5jOjMwMCBidWlsdGluL2xvZy5jOjEzMTAgYnVpbHRpbi9zaG9ydGxvZy5jOjI1OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICVzIgogbXNnc3RyICLEkeG7kWkgc+G7kSBraMO0bmcgxJHGsOG7o2MgdGjhu6thIG5o4bqtbjogJXMiCkBAIC0yNDgsMTIgKzM0MSwxMiBAQAogbXNnaWQgImluZGV4LXBhY2sgZGllZCIKIG1zZ3N0ciAiaW5kZXgtcGFjayDEkcOjIGNo4bq/dCIKIAotIzogY29tbWl0LmM6NTAKKyM6IGNvbW1pdC5jOjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBwYXJzZSAlcyIKLW1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoICVzIgorbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY8O6IHBow6FwICVzIgogCi0jOiBjb21taXQuYzo1MgorIzogY29tbWl0LmM6NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgJXMgaXMgbm90IGEgY29tbWl0ISIKIG1zZ3N0ciAiJXMgJXMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgbOG6p24gY29tbWl0ISIKQEAgLTI2MiwxNiArMzU1LDE2IEBACiBtc2dpZCAibWVtb3J5IGV4aGF1c3RlZCIKIG1zZ3N0ciAiaOG6v3QgYuG7mSBuaOG7myIKIAotIzogY29ubmVjdGVkLmM6MzkKKyM6IGNvbm5lY3RlZC5jOjYwCiBtc2dpZCAiQ291bGQgbm90IHJ1biAnZ2l0IHJldi1saXN0JyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGNo4bqheSDigJxnaXQgcmV2LWxpc3TigJ0iCiAKLSM6IGNvbm5lY3RlZC5jOjQ4CisjOiBjb25uZWN0ZWQuYzo4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgd3JpdGUgdG8gcmV2LWxpc3Q6ICVzIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgZ2hpIHbDoG8gcmV2LWxpc3Q6ICVzIgogCi0jOiBjb25uZWN0ZWQuYzo1NgorIzogY29ubmVjdGVkLmM6ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNsb3NlIHJldi1saXN0J3Mgc3RkaW46ICVzIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgxJHDs25nIMSR4bqndSB2w6BvIGNodeG6qW4gc3RkaW4gY+G7p2EgcmV2LWxpc3Q6ICVzIgpAQCAtMzY3LDcgKzQ2MCw3IEBACiAiVMOsbSB0aOG6pXkgY8OhYyBs4buXaSB0cm9uZyBiaeG6v24gY+G6pXUgaMOsbmgg4oCcZGlmZi5kaXJzdGF04oCdOlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ4MAorIzogZGlmZi5jOjM0ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkZhaWxlZCB0byBwYXJzZSAtLWRpcnN0YXQvLVggb3B0aW9uIHBhcmFtZXRlcjpcbiIKQEAgLTM3Niw3ICs0NjksNyBAQAogIkfhurdwIGzhu5dpIGtoaSBwaMOibiB0w61jaCDEkeG7kWkgc+G7kSB0w7l5IGNo4buNbiAtLWRpcnN0YXQvLVg6XG4iCiAiJXMiCiAKLSM6IGRpZmYuYzozNDk0CisjOiBkaWZmLmM6MzUwMQogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcGFyc2UgLS1zdWJtb2R1bGUgb3B0aW9uIHBhcmFtZXRlcjogJyVzJyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIHTDrWNoIMSR4buRaSBz4buRIHTDuXkgY2jhu41uIC0tc3VibW9kdWxlOiDigJwlc+KAnSIKQEAgLTQxOCwyMCArNTExLDIwIEBACiBtc2dpZCAiJyVzJzogc2hvcnQgcmVhZCAlcyIKIG1zZ3N0ciAi4oCcJXPigJ06IMSR4buNYyBuZ+G6r24gJXMiCiAKLSM6IGhlbHAuYzoyMTIKKyM6IGhlbHAuYzoyMTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXZhaWxhYmxlIGdpdCBjb21tYW5kcyBpbiAnJXMnIgotbXNnc3RyICJjw6FjIGzhu4duaCBnaXQgc+G6tW4gc8OgbmcgxJHhu4MgZMO5bmcgdHJvbmcg4oCcJXPigJ0iCittc2dzdHIgImPDoWMgbOG7h25oIGdpdCBz4bq1biBjw7MgdHJvbmcgdGjGsCBt4bulYyDigJwlc+KAnToiCiAKLSM6IGhlbHAuYzoyMTkKKyM6IGhlbHAuYzoyMTcKIG1zZ2lkICJnaXQgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gZWxzZXdoZXJlIG9uIHlvdXIgJFBBVEgiCiBtc2dzdHIgImPDoWMgbOG7h25oIGdpdCBz4bq1biBzw6BuZyDEkeG7gyBkw7luZyB04burIG3hu5l0IG7GoWkga2jDoWMgdHJvbmcgJFBBVEggY+G7p2EgYuG6oW4iCiAKLSM6IGhlbHAuYzoyMzUKKyM6IGhlbHAuYzoyMzMKIG1zZ2lkICJUaGUgbW9zdCBjb21tb25seSB1c2VkIGdpdCBjb21tYW5kcyBhcmU6IgogbXNnc3RyICJOaOG7r25nIGzhu4duaCBnaXQgaGF5IMSRxrDhu6NjIHPhu60gZOG7pW5nIG5o4bqldCBsw6A6IgogCi0jOiBoZWxwLmM6MjkyCisjOiBoZWxwLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCkBAIC00NDAsMTEgKzUzMywxMSBAQAogIuKAnCVz4oCdIHRyw7RuZyBuaMawIGzDoCBt4buZdCBs4buHbmggZ2l0LCBuaMawbmcgY2jDum5nIHTDtGkga2jDtG5nXG4iCiAidGjhu4MgdGjhu7FjIHRoaSBuw7MuIEPDsyBs4bq9IGzDoCBs4buHbmggZ2l0LSVzIMSRw6MgYuG7iyBo4buPbmc/IgogCi0jOiBoZWxwLmM6MzQ5CisjOiBoZWxwLmM6MzQ3CiBtc2dpZCAiVWggb2guIFlvdXIgc3lzdGVtIHJlcG9ydHMgbm8gR2l0IGNvbW1hbmRzIGF0IGFsbC4iCiBtc2dzdHIgIuG7kGkgY2jDoC4gSOG7hyB0aOG7kW5nIGPhu6dhIGLhuqFuIGLDoW8gcuG6sW5nIGNo4bqzbmcgY8OzIGzhu4duaCBHaXQgbsOgbyBj4bqjLiIKIAotIzogaGVscC5jOjM3MQorIzogaGVscC5jOjM2OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgpAQCAtNDUzLDE3ICs1NDYsMTcgQEAKICJD4bqiTkggQsOBTzogQuG6oW4gxJHDoyBn4buNaSBs4buHbmggR2l0IGPDsyB0w6puIOKAnCVz4oCdLCBtw6AgbsOzIGzhuqFpIGtow7RuZyBjw7Mgc+G6tW4uXG4iCiAiR2nhuqMgxJHhu4tuaCBy4bqxbmcgw70gYuG6oW4gbMOgIOKAnCVz4oCdIgogCi0jOiBoZWxwLmM6Mzc2CisjOiBoZWxwLmM6Mzc0CiAjLCBjLWZvcm1hdAogbXNnaWQgImluICUwLjFmIHNlY29uZHMgYXV0b21hdGljYWxseS4uLiIKIG1zZ3N0ciAidHJvbmcgJTAuMWYgZ2nDonkgbeG7mXQgY8OhY2ggdOG7sSDEkeG7mW5nLi4uIgogCi0jOiBoZWxwLmM6MzgzCisjOiBoZWxwLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCiBtc2dzdHIgImdpdDog4oCcJXPigJ0ga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgbOG7h25oIGPhu6dhIGdpdC4gWGVtIOKAnGdpdCAtLWhlbHDigJ0uIgogCi0jOiBoZWxwLmM6Mzg3CisjOiBoZWxwLmM6Mzg1IGhlbHAuYzo0NDQKIG1zZ2lkICIiCiAiXG4iCiAiRGlkIHlvdSBtZWFuIHRoaXM/IgpAQCAtNDc3LDEyICs1NzAsMTcgQEAKICJcbiIKICJDw7MgcGjhuqNpIMO9IGLhuqFuIGzDoCBt4buZdCB0cm9uZyBz4buRIG5o4buvbmcgY8OhaSBuw6B5IGtow7RuZz8iCiAKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVzOiAlcyAtICVzIgorCiAjOiBtZXJnZS5jOjU2CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgdGhlIGNhY2hlIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgxJHhu41jIGLhu5kgbmjhu5sgdOG6oW0iCiAKLSM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjIgYnVpbHRpbi9jaGVja291dC5jOjU2MwotIzogYnVpbHRpbi9jbG9uZS5jOjYzNQorIzogbWVyZ2UuYzoxMTAgYnVpbHRpbi9jaGVja291dC5jOjM2NSBidWlsdGluL2NoZWNrb3V0LmM6NTY2CisjOiBidWlsdGluL2Nsb25lLmM6NjU2CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyBt4bubaSIKIApAQCAtNDk2LDcwICs1OTQsNzAgQEAKIG1zZ2lkICJhZGRpbmZvX2NhY2hlIGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICJhZGRpbmZvX2NhY2hlIGfhurdwIGzhu5dpIMSR4buRaSB24bubaSDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjY5CiBtc2dpZCAiZXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgImfhurdwIGzhu5dpIGtoaSB4w6J5IGThu7FuZyBjw6J5IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2NzIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIHBhdGggJyVzJyVzIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gxJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIHRvIG1ha2Ugcm9vbSBmb3Igc3ViZGlyZWN0b3J5XG4iCiBtc2dzdHIgIkfhu6EgYuG7jyAlcyDEkeG7gyB04bqhbyBjaOG7lyAocm9vbSkgY2hvIHRoxrAgbeG7pWMgY29uXG4iCiAKICMuIHNvbWV0aGluZyBlbHNlIGV4aXN0cwogIy4gLi4gYnV0IG5vdCBzb21lIG90aGVyIGVycm9yICh3aG8gcmVhbGx5IGNhcmVzIHdoYXQ/KQotIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk3IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njk4IG1lcmdlLXJlY3Vyc2l2ZS5jOjcxOQogbXNnaWQgIjogcGVyaGFwcyBhIEQvRiBjb25mbGljdD8iCiBtc2dzdHIgIjogY8OzIGzhur0gbMOgIG3hu5l0IHh1bmcgxJHhu5l0IEQvRj8iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjcwOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlZnVzaW5nIHRvIGxvc2UgdW50cmFja2VkIGZpbGUgYXQgJyVzJyIKIG1zZ3N0ciAidOG7qyBjaOG7kWkgxJHDs25nIHThuq1wIHRpbiBraMO0bmcgxJHGsOG7o2MgdGhlbyB24bq/dCB04bqhaSDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgxJHhu5FpIHTGsOG7o25nICVzIOKAnCVz4oCdIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJibG9iIGV4cGVjdGVkIGZvciAlcyAnJXMnIgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcgYmxvYiDEkcaw4bujYyBtb25nIMSR4bujaSBjaG8gJXMg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc3MyBidWlsdGluL2Nsb25lLmM6MzAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzQgYnVpbHRpbi9jbG9uZS5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gb3BlbiAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgbeG7nyDigJwlc+KAnSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN5bWxpbmsgJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHThuqFvIGxpw6puIGvhur90IHTGsOG7o25nIHRyxrBuZyAoc3ltbGluaykg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImRvIG5vdCBrbm93IHdoYXQgdG8gZG8gd2l0aCAlMDZvICVzICclcyciCiBtc2dzdHIgImtow7RuZyBoaeG7g3UgcGjhuqNpIGzDoG0gZ8OsIHbhu5tpICUwNm8gJXMg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTIzCiBtc2dpZCAiRmFpbGVkIHRvIGV4ZWN1dGUgaW50ZXJuYWwgbWVyZ2UiCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSB0aOG7sWMgaGnhu4duIHRy4buZbiBu4buZaSBi4buZIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkICVzIHRvIGRhdGFiYXNlIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjDqm0gJXMgdsOgbyBjxqEgc+G7nyBk4buvIGxp4buHdSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQyCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo5NDMKIG1zZ2lkICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSBpbiB0aGUgdHJlZSIKIG1zZ3N0ciAia2nhu4N1IMSR4buRaSB0xrDhu6NuZyBraMO0bmcgxJHGsOG7o2MgaOG7lyB0cuG7oyB0cm9uZyBjw6J5ICh0cmVlKSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMSBtZXJnZS1yZWN1cnNpdmUuYzoxMDM1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIyIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU2OCw3ICs2NjYsNyBAQAogIlhVTkcgxJDhu5hUICglcy94w7NhKTogJXMgYuG7iyB4w7NhIHRyb25nICVzIHbDoCAlcyB0cm9uZyAlcy4gUGhpw6puIGLhuqNuICVzIGPhu6dhICVzICIKICJjw7JuIGzhuqFpIHRyb25nIGPDonkgKHRyZWUpLiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyNyBtZXJnZS1yZWN1cnNpdmUuYzoxMDQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI4IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU3NywyMCArNjc1LDIwIEBACiAiWFVORyDEkOG7mFQgKCVzL3jDs2EpOiAlcyBi4buLIHjDs2EgdHJvbmcgJXMgdsOgICVzIHRyb25nICVzLiBQaGnDqm4gYuG6o24gJXMgY+G7p2EgJXMgIgogImPDsm4gbOG6oWkgdHJvbmcgY8OieSAodHJlZSkgdOG6oWkgJXMuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lIgogbXNnc3RyICLEkeG7lWkgdMOqbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTA4MgogbXNnaWQgInJlbmFtZWQiCiBtc2dzdHIgIsSRw6MgxJHhu5VpIHTDqm4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiVzIGzDoCBt4buZdCB0aMawIG3hu6VjIHRyb25nICVzIHRoYXkgdsOgbyDEkcOzIHRow6ptIHbDoG8gbmjGsCBsw6AgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNTkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lIFwiJXNcIi0+XCIlc1wiIGluIGJyYW5jaCBcIiVzXCIgcmVuYW1lIFwiJXMiCkBAIC01OTksMTUwICs2OTcsMTczIEBACiAiWFVORyDEkOG7mFQgKMSR4buVaS10w6puL8SR4buVaS10w6puKTogxJDhu5VpIHTDqm4gXCIlc1wiLT5cIiVzXCIgdHJvbmcgbmjDoW5oIFwiJXNcIiDEkeG7lWkgIgogInTDqm4gXCIlc1wiLT5cIiVzXCIgdHJvbmcgXCIlc1wiJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIiAoY+G6p24gZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvcmVuYW1lKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gUmVuYW1lICVzLT4lcyBpbiAlcyIKIG1zZ3N0ciAiIgogIlhVTkcgxJDhu5hUICjEkeG7lWktdMOqbi/EkeG7lWktdMOqbik6IMSQ4buVaSB0w6puICVzLT4lcyB0cm9uZyAlcy4gxJDhu5VpIHTDqm4gJXMtPiVzIHRyb25nICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbmFtaW5nICVzIHRvICVzIGFuZCAlcyB0byAlcyBpbnN0ZWFkIgogbXNnc3RyICLEkGFuZyDEkeG7lWkgdMOqbiAlcyB0aMOgbmggJXMgdGhheSB2w6wgJXMgdGjDoG5oICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCiBtc2dzdHIgIiIKICJYVU5HIMSQ4buYVCAoxJHhu5VpLXTDqm4vdGjDqm0pOiDEkOG7lWkgdMOqbiAlcy0+JXMgdHJvbmcgJXMuICVzIMSRxrDhu6NjIHRow6ptIHbDoG8gdHJvbmcgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NTcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIG1lcmdlZCAlcyIKIG1zZ3N0ciAiVGjDqm0gaMOyYSB0cuG7mW4gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE0NjIgbWVyZ2UtcmVjdXJzaXZlLmM6MTY2MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MyBtZXJnZS1yZWN1cnNpdmUuYzoxNjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBhcyAlcyBpbnN0ZWFkIgogbXNnc3RyICJUaGF5IHbDoG8gxJHDsyB0aMOqbSB2w6BvICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTEzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTE0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyDEkeG7kWkgdMaw4bujbmcgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgIsSR4buRaSB0xrDhu6NuZyAlcyBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBibG9iIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICJz4butYSDEkeG7lWkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZmllZCIKIG1zZ3N0ciAixJHDoyBz4butYSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTU3NQogbXNnaWQgImNvbnRlbnQiCiBtc2dzdHIgIm7hu5lpIGR1bmciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1ODIKIG1zZ2lkICJhZGQvYWRkIgogbXNnc3RyICJ0aMOqbS90aMOqbSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCiBtc2dzdHIgIsSQw6MgYuG7jyBxdWEgJXMgKMSRw6MgY8OzIHPhurVuIGzhuqduIGjDsmEgdHLhu5luIG7DoHkpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjI5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF1dG8tbWVyZ2luZyAlcyIKIG1zZ3N0ciAiVOG7sS3EkeG7mW5nLWjDsmEtdHLhu5luICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNjMzIGdpdC1zdWJtb2R1bGUuc2g6MTAyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNCBnaXQtc3VibW9kdWxlLnNoOjExMTgKIG1zZ2lkICJzdWJtb2R1bGUiCiBtc2dzdHIgIm3DtC3EkXVuLWNvbiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAoJXMpOiBNZXJnZSBjb25mbGljdCBpbiAlcyIKIG1zZ3N0ciAiWFVORyDEkOG7mFQgKCVzKTogWHVuZyDEkeG7mXQgaMOyYSB0cuG7mW4gdHJvbmcgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3MjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXMiCiBtc2dzdHIgIsSQYW5nIHjDs2EgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAidOG6rXAtdGluL3RoxrAtbeG7pWMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTUKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTYKIG1zZ2lkICJkaXJlY3RvcnkvZmlsZSIKIG1zZ3N0ciAidGjGsC1t4bulYy904bqtcCB0aW4iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogVGhlcmUgaXMgYSBkaXJlY3Rvcnkgd2l0aCBuYW1lICVzIGluICVzLiBBZGRpbmcgJXMgYXMgJXMiCiBtc2dzdHIgIiIKICJYVU5HIMSQ4buYVCAoJXMpOiDhu54gxJHDonkga2jDtG5nIGPDsyB0aMawIG3hu6VjIG7DoG8gY8OzIHTDqm4gJXMgdHJvbmcgJXMuIFRow6ptICVzIG5oxrAgbMOgICIKICIlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJBZGRpbmcgJXMiCiBtc2dzdHIgIlRow6ptIFwiJXNcIiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc4OAogbXNnaWQgIkZhdGFsIG1lcmdlIGZhaWx1cmUsIHNob3VsZG4ndCBoYXBwZW4uIgogbXNnc3RyICJWaeG7h2MgaMOyYSB0cuG7mW4gaOG7j25nIG5naGnDqm0gdHLhu41uZywga2jDtG5nIG7Dqm4gxJHhu4MgeOG6o3kgcmEuIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA3CiBtc2dpZCAiQWxyZWFkeSB1cC10by1kYXRlISIKIG1zZ3N0ciAixJDDoyBj4bqtcCBuaOG6rXQgcuG7k2khIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdpbmcgb2YgdHJlZXMgJXMgYW5kICVzIGZhaWxlZCIKIG1zZ3N0ciAiaMOyYSB0cuG7mW4gY8OieSAodHJlZSkgJXMgdsOgICVzIGfhurdwIGzhu5dpIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODQ1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVucHJvY2Vzc2VkIHBhdGg/Pz8gJXMiCiBtc2dzdHIgIsSQxrDhu51uZyBk4bqrbiBjaMawYSDEkcaw4bujYyB44butIGzDvT8/PyAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg5MQogbXNnaWQgIk1lcmdpbmc6IgogbXNnc3RyICLEkGFuZyB0cuG7mW46IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgogbXNnc3RyWzBdICJ0w6xtIHRo4bqleSAldSB04buVIHRpw6puIGNodW5nOiIKIG1zZ3N0clsxXSAidMOsbSB0aOG6pXkgJXUgdOG7lSB0acOqbiBjaHVuZzoiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5NDEKIG1zZ2lkICJtZXJnZSByZXR1cm5lZCBubyBjb21taXQiCiBtc2dzdHIgImjDsmEgdHLhu5luIGtow7RuZyB0cuG6oyB24buBIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbsOgbyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5NworIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTk5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBwaMOibiB0w61jaCDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjIwMDkgYnVpbHRpbi9tZXJnZS5jOjY1OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAxMCBidWlsdGluL21lcmdlLmM6NjcyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIGluZGV4LiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAiIgorIktow7RuZyB0aOG7gyBjaHV54buDbiBnaWFvIChjb21taXQpIGNoxrBhIMSRxrDhu6NjIGto4bufaSB04bqhbyBob+G6t2Mga2jDtG5nIMSRxrDhu6NjIHRoYW0gY2hp4bq/dSAiCisiY8OieSBnaGkgY2jDuiIKKworIzogbm90ZXMtdXRpbHMuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIkdpw6EgdHLhu4sgbm90ZXMucmV3cml0ZU1vZGUgc2FpOiDigJwlc+KAnSIKKworIzogbm90ZXMtdXRpbHMuYzo5MQorIywgYy1mb3JtYXQKK21zZ2lkICJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIKK21zZ3N0ciAiVOG7qyBjaOG7kWkgZ2hpIMSRw6ggZ2hpIGNow7ogdHJvbmcgJXMgKG7hurFtIG5nb8OgaSBj4bunYSByZWZzL25vdGVzLykiCisKKyMuIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgaXMgdGhlIG5hbWUgb2YgdGhlCisjLiBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHNlY29uZCAlcyBpcyBpdHMgdmFsdWUKKyM6IG5vdGVzLXV0aWxzLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJhZCAlcyB2YWx1ZTogJyVzJyIKK21zZ3N0ciAiR2nDoSB0cuG7iyAlcyBzYWk6IOKAnCVz4oCdIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBwaMOibiB0w61jaCDEkeG7kWkgdMaw4bujbmc6IOKAnCVz4oCdIgpAQCAtNzgyLDE4ICs5MDMsMTggQEAKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiBtc2dzdHIgIuKAnCVz4oCdIG7hurFtIG5nb8OgaSBt4buZdCBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmciCiAKLSM6IHJlbW90ZS5jOjE3ODEKKyM6IHJlbW90ZS5jOjE3ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYWhlYWQgb2YgJyVzJyBieSAlZCBjb21taXQuXG4iCiBtc2dpZF9wbHVyYWwgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0cy5cbiIKIG1zZ3N0clswXSAiTmjDoW5oIGPhu6dhIGLhuqFuIGzDoCDEkeG6p3UgY+G7p2Eg4oCcJXPigJ0gYuG7n2kgJWQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIG1zZ3N0clsxXSAiTmjDoW5oIGPhu6dhIGLhuqFuIGzDoCDEkeG6p3UgY+G7p2Eg4oCcJXPigJ0gYuG7n2kgJWQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIAotIzogcmVtb3RlLmM6MTc4NworIzogcmVtb3RlLmM6MTc5NAogbXNnaWQgIiAgKHVzZSBcImdpdCBwdXNoXCIgdG8gcHVibGlzaCB5b3VyIGxvY2FsIGNvbW1pdHMpXG4iCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHB1c2hcIiDEkeG7gyB4deG6pXQgYuG6o24gY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIG7hu5lpIGLhu5kgY+G7p2EgYuG6oW4pXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTAKKyM6IHJlbW90ZS5jOjE3OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91ciBicmFuY2ggaXMgYmVoaW5kICclcycgYnkgJWQgY29tbWl0LCBhbmQgY2FuIGJlIGZhc3QtZm9yd2FyZGVkLlxuIgogbXNnaWRfcGx1cmFsICIiCkBAIC04MDUsMTEgKzkyNiwxMSBAQAogIk5ow6FuaCBj4bunYSBi4bqhbiB0aMOsIOG7nyDEkeG6sW5nIHNhdSDigJwlc+KAnSBi4bufaSAlZCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLCB2w6AgY8OzIHRo4buDICIKICLEkcaw4bujYyBmYXN0LWZvcndhcmQuXG4iCiAKLSM6IHJlbW90ZS5jOjE3OTgKKyM6IHJlbW90ZS5jOjE4MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcHVsbFwiIMSR4buDIGPhuq1wIG5o4bqtdCBuaMOhbmggbuG7mWkgYuG7mSBj4bunYSBi4bqhbilcbiIKIAotIzogcmVtb3RlLmM6MTgwMQorIzogcmVtb3RlLmM6MTgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91ciBicmFuY2ggYW5kICclcycgaGF2ZSBkaXZlcmdlZCxcbiIKQEAgLTgyNSwyMCArOTQ2LDI5IEBACiAiWW91ciBicmFuY2ggYW5kIOKAnCVz4oCdIGhhdmUgZGl2ZXJnZWQsXG4iCiAiYW5kIGhhdmUgJWQgYW5kICVkIGRpZmZlcmVudCBjb21taXQgZWFjaCwgcmVzcGVjdGl2ZWx5LlxuIgogCi0jOiByZW1vdGUuYzoxODExCisjOiByZW1vdGUuYzoxODE4CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1bGxcIiB0byBtZXJnZSB0aGUgcmVtb3RlIGJyYW5jaCBpbnRvIHlvdXJzKVxuIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgcHVsbFwiIMSR4buDIGjDsmEgdHLhu5luIG5ow6FuaCB0csOqbiBtw6F5IGNo4bunIHbDoG8gdHJvbmcgbmjDoW5oIGPhu6dhICIKICJi4bqhbilcbiIKIAotIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3NzYgYnVpbHRpbi9tZXJnZS5jOjg4OSBidWlsdGluL21lcmdlLmM6OTk5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwOQorIzogcnVuLWNvbW1hbmQuYzo4MAorbXNnaWQgIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIKK21zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIG3hu58gL2Rldi9udWxsIgorCisjOiBydW4tY29tbWFuZC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgImR1cDIoJWQsJWQpIGZhaWxlZCIKK21zZ3N0ciAiZHVwMiglZCwlZCkgZ+G6t3AgbOG7l2kiCisKKyM6IHNlcXVlbmNlci5jOjIwNiBidWlsdGluL21lcmdlLmM6NzkwIGJ1aWx0aW4vbWVyZ2UuYzo5MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDEzIGJ1aWx0aW4vbWVyZ2UuYzoxMDIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmciCiBtc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIOKAnCVz4oCdIMSR4buDIGdoaSIKIAotIzogc2VxdWVuY2VyLmM6MjA4IGJ1aWx0aW4vbWVyZ2UuYzozMzUgYnVpbHRpbi9tZXJnZS5jOjc3OQotIzogYnVpbHRpbi9tZXJnZS5jOjEwMDEgYnVpbHRpbi9tZXJnZS5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzUwIGJ1aWx0aW4vbWVyZ2UuYzo3OTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDE1IGJ1aWx0aW4vbWVyZ2UuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIHbDoG8g4oCcJXPigJ0iCkBAIC04NjEsNyArOTkxLDcgQEAKICJ24bubaSBs4buHbmgg4oCcZ2l0IGFkZCA8xJHGsOG7nW5nX2ThuqtuPuKAnSBob+G6t2Mg4oCcZ2l0IHJtIDzEkcaw4budbmdfZOG6q24+4oCdXG4iCiAidsOgIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga+G6v3QgcXXhuqMgYuG6sW5nIGzhu4duaCDigJxnaXQgY29tbWl04oCdIgogCi0jOiBzZXF1ZW5jZXIuYzoyNDUgc2VxdWVuY2VyLmM6ODU5IHNlcXVlbmNlci5jOjk0MgorIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg2OSBzZXF1ZW5jZXIuYzo5NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHdyaXRlIHRvICVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIHbDoG8gJXMiCkBAIC04ODQsMjA5ICsxMDE0LDI0MyBAQAogbXNnc3RyICJDaHV54buDbiBnaWFvIChjb21taXQpIGPDoWMgdGhheSDEkeG7lWkgY+G7p2EgYuG6oW4gaGF5IHN0YXNoIGNow7puZyDEkeG7gyB44butIGzDvS4iCiAKICMuIFRSQU5TTEFUT1JTOiAlcyB3aWxsIGJlICJyZXZlcnQiIG9yICJjaGVycnktcGljayIKLSM6IHNlcXVlbmNlci5jOjMxOQorIzogc2VxdWVuY2VyLmM6MzI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBVbmFibGUgdG8gd3JpdGUgbmV3IGluZGV4IGZpbGUiCiBtc2dzdHIgIiVzOiBLaMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyBt4bubaSIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gZ2nhuqNpIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbykgSEVBRFxuIgogCi0jOiBzZXF1ZW5jZXIuYzozNzEKKyM6IHNlcXVlbmNlci5jOjM3NwogbXNnaWQgIlVuYWJsZSB0byB1cGRhdGUgY2FjaGUgdHJlZVxuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10IGPDonkgYuG7mSBuaOG7myDEkeG7h21cbiIKIAotIzogc2VxdWVuY2VyLmM6NDE2CisjOiBzZXF1ZW5jZXIuYzo0MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIGNvbW1pdCAlc1xuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0MjEKKyM6IHNlcXVlbmNlci5jOjQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgcGFyZW50IGNvbW1pdCAlc1xuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSBjaGEgbeG6uSAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIlThuq1wIHRpbiBsxrB1IG3hu6VjIGzhu6VjIGPhu6dhIGLhuqFuIGtow7RuZyDEkcaw4bujYyBow7JhIHRy4buZbi4iCiAKLSM6IHNlcXVlbmNlci5jOjUwNgorIzogc2VxdWVuY2VyLmM6NTEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBpcyBhIG1lcmdlIGJ1dCBubyAtbSBvcHRpb24gd2FzIGdpdmVuLiIKIG1zZ3N0ciAiIgogIkzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJXMgbMOgIG3hu5l0IGzhuqduIGjDsmEgdHLhu5luIG5oxrBuZyBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLSIKICJtLiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIGtow7RuZyBjw7MgY2hhIG3hurkgJWQiCiAKLSM6IHNlcXVlbmNlci5jOjUxOAorIzogc2VxdWVuY2VyLmM6NTI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1haW5saW5lIHdhcyBzcGVjaWZpZWQgYnV0IGNvbW1pdCAlcyBpcyBub3QgYSBtZXJnZS4iCiBtc2dzdHIgIiIKLSJMdeG7k25nIGNow61uaCDEkcaw4bujYyBjaOG7iSByYSBuaMawbmcgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAlcyBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCAiCi0ibOG6p24gaMOyYSB0cuG7mW4uIgorIkx14buTbmcgY2jDrW5oIMSRw6MgxJHGsOG7o2MgY2jhu4kgcmEgbmjGsG5nIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgJXMga2jDtG5nIHBo4bqjaSBsw6AgIgorIm3hu5l0IGzhuqduIGjDsmEgdHLhu5luLiIKIAogIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyB3aWxsIGJlICJyZXZlcnQiIG9yCiAjLiAiY2hlcnJ5LXBpY2siLCB0aGUgc2Vjb25kICVzIGEgU0hBMQotIzogc2VxdWVuY2VyLmM6NTMxCisjOiBzZXF1ZW5jZXIuYzo1MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGNhbm5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzIgogbXNnc3RyICIlczoga2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGzhuqduIGNodXnhu4NuIGdpYW8gbeG6uSBj4bunYSAlcyIKIAotIzogc2VxdWVuY2VyLmM6NTM1CisjOiBzZXF1ZW5jZXIuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGdldCBjb21taXQgbWVzc2FnZSBmb3IgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBs4bqleSB0aMO0bmcgxJFp4buHcCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGNobyAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjIxCisjOiBzZXF1ZW5jZXIuYzo2MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHJldmVydCAlcy4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjIyCisjOiBzZXF1ZW5jZXIuYzo2MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGFwcGx5ICVzLi4uICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgYXBwbHkgKMOhcCBk4bulbmcgbWnhur9uZyB2w6EpICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2NTQKKyM6IHNlcXVlbmNlci5jOjY2NAogbXNnaWQgImVtcHR5IGNvbW1pdCBzZXQgcGFzc2VkIgogbXNnc3RyICJs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIHRy4buRbmcgcuG7l25nIMSR4bq3dCBsw6AgaOG7o3AgcXV5IGPDoWNoIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjIKKyM6IHNlcXVlbmNlci5jOjY3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzOiBn4bq3cCBs4buXaSDEkeG7jWMgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVzOiBn4bq3cCBs4buXaSBraGkgbMOgbSB0xrDGoWkgbeG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBzZXF1ZW5jZXIuYzo3MjUKKyM6IHNlcXVlbmNlci5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyAlcyB0cm9uZyBraGkgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc0NworIzogc2VxdWVuY2VyLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBsaW5lICVkLiIKIG1zZ3N0ciAiS2jDtG5nIHBow6JuIHTDrWNoIMSRxrDhu6NjIGTDsm5nICVkLiIKIAotIzogc2VxdWVuY2VyLmM6NzUyCisjOiBzZXF1ZW5jZXIuYzo3NjIKIG1zZ2lkICJObyBjb21taXRzIHBhcnNlZC4iCiBtc2dzdHIgIktow7RuZyBjw7MgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6BvIMSRxrDhu6NjIHBow6JuIHTDrWNoLiIKIAotIzogc2VxdWVuY2VyLmM6NzY1CisjOiBzZXF1ZW5jZXIuYzo3NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBt4bufICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo3NjkKKyM6IHNlcXVlbmNlci5jOjc3OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCAlcy4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIkLhuqNuZyBjaOG7iSB0aOG7iyBraMO0bmcgdGjhu4MgZMO5bmcgxJHGsOG7o2M6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDQKKyM6IHNlcXVlbmNlci5jOjgxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIktow7NhIGtow7RuZyDEkcO6bmc6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDcKKyM6IHNlcXVlbmNlci5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIkdpw6EgdHLhu4sga2jDtG5nIGjhu6NwIGzhu4cgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIkLhuqNuZyB0w7l5IGNo4buNbiBk4buLIGjDrG5oOiAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODQwCisjOiBzZXF1ZW5jZXIuYzo4NTAKIG1zZ2lkICJhIGNoZXJyeS1waWNrIG9yIHJldmVydCBpcyBhbHJlYWR5IGluIHByb2dyZXNzIgogbXNnc3RyICJt4buZdCB0aGFvIHTDoWMgY2hlcnJ5LXBpY2sgaG/hurdjIHJldmVydCDEkWFuZyDEkcaw4bujYyB0aOG7sWMgaGnhu4duIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDEKKyM6IHNlcXVlbmNlci5jOjg1MQogbXNnaWQgInRyeSBcImdpdCBjaGVycnktcGljayAoLS1jb250aW51ZSB8IC0tcXVpdCB8IC0tYWJvcnQpXCIiCiBtc2dzdHIgImjDo3kgdGjhu60gXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyB0aMawIG3hu6VjIHjhur9wIGTDo3kgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjg2MSBzZXF1ZW5jZXIuYzo5NDYKKyM6IHNlcXVlbmNlci5jOjg3MSBzZXF1ZW5jZXIuYzo5NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXJyb3Igd3JhcHBpbmcgdXAgJXMuIgogbXNnc3RyICJM4buXaSBiYW8gYuG7jWMgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODAgc2VxdWVuY2VyLmM6MTAxNAorIzogc2VxdWVuY2VyLmM6ODkwIHNlcXVlbmNlci5jOjEwMjQKIG1zZ2lkICJubyBjaGVycnktcGljayBvciByZXZlcnQgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgImtow7RuZyBjaGVycnktcGljayBoYXkgcmV2ZXJ0IHRyb25nIHRp4bq/biB0csOsbmgiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIGdp4bqjaSBIRUFEIgogCi0jOiBzZXF1ZW5jZXIuYzo4ODQKKyM6IHNlcXVlbmNlci5jOjg5NAogbXNnaWQgImNhbm5vdCBhYm9ydCBmcm9tIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgaOG7p3kgYuG7jyB04burIG3hu5l0IG5ow6FuaCBtw6AgbsOzIGPDsm4gY2jGsGEgxJHGsOG7o2MgdOG6oW8gcmEiCiAKLSM6IHNlcXVlbmNlci5jOjkwNiBidWlsdGluL2FwcGx5LmM6NDA2MAorIzogc2VxdWVuY2VyLmM6OTE2IGJ1aWx0aW4vYXBwbHkuYzo0MDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MDkKKyM6IHNlcXVlbmNlci5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgJXM6ICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo5MTAKKyM6IHNlcXVlbmNlci5jOjkyMAogbXNnaWQgInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUiCiBtc2dzdHIgImvhur90IHRow7pjIHThuq1wIHRpbiDEkeG7mXQgeHXhuqV0IgogCi0jOiBzZXF1ZW5jZXIuYzo5MTYKKyM6IHNlcXVlbmNlci5jOjkyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJzdG9yZWQgcHJlLWNoZXJyeS1waWNrIEhFQUQgZmlsZSAnJXMnIGlzIGNvcnJ1cHQiCiBtc2dzdHIgInThuq1wIHRpbiBIRUFEIOKAnHByZS1jaGVycnktcGlja+KAnSDEkcOjIGzGsHUg4oCcJXPigJ0gYuG7iyBo4buPbmciCiAKLSM6IHNlcXVlbmNlci5jOjkzOQorIzogc2VxdWVuY2VyLmM6OTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBmb3JtYXQgJXMuIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu4tuaCBk4bqhbmcgJXMuIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTAxCisjOiBzZXF1ZW5jZXIuYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgorbXNnc3RyICIlczoga2jDtG5nIHRo4buDIGNoZXJyeS1waWNrIG3hu5l0ICVzIgorCisjOiBzZXF1ZW5jZXIuYzoxMDk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCittc2dzdHIgIiVzOiDEkWnhu4NtIHjDqXQgZHV54buHdCBzYWkiCisKKyM6IHNlcXVlbmNlci5jOjExMjkKIG1zZ2lkICJDYW4ndCByZXZlcnQgYXMgaW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyByZXZlcnQgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBraOG7n2kgdOG6oW8iCiAKLSM6IHNlcXVlbmNlci5jOjExMDIKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBjaGVycnktcGljayB2w6BvIG3hu5l0IMSR4bqndSAoaGVhZCkgdHLhu5FuZyBy4buXbmciCiAKLSM6IHNoYTFfbmFtZS5jOjEwMzYKKyM6IHNoYTFfbmFtZS5jOjQ0MAorbXNnaWQgIiIKKyJHaXQgbm9ybWFsbHkgbmV2ZXIgY3JlYXRlcyBhIHJlZiB0aGF0IGVuZHMgd2l0aCA0MCBoZXggY2hhcmFjdGVyc1xuIgorImJlY2F1c2UgaXQgd2lsbCBiZSBpZ25vcmVkIHdoZW4geW91IGp1c3Qgc3BlY2lmeSA0MC1oZXguIFRoZXNlIHJlZnNcbiIKKyJtYXkgYmUgY3JlYXRlZCBieSBtaXN0YWtlLiBGb3IgZXhhbXBsZSxcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyJ3aGVyZSBcIiRiclwiIGlzIHNvbWVob3cgZW1wdHkgYW5kIGEgNDAtaGV4IHJlZiBpcyBjcmVhdGVkLiBQbGVhc2VcbiIKKyJleGFtaW5lIHRoZXNlIHJlZnMgYW5kIG1heWJlIGRlbGV0ZSB0aGVtLiBUdXJuIHRoaXMgbWVzc2FnZSBvZmYgYnlcbiIKKyJydW5uaW5nIFwiZ2l0IGNvbmZpZyBhZHZpY2Uub2JqZWN0TmFtZVdhcm5pbmcgZmFsc2VcIiIKK21zZ3N0ciAiIgorIkdpdCB0aMaw4budbmcga2jDtG5nIGJhbyBnaeG7nSB04bqhbyB0aGFtIGNoaeG6v3UgbcOgIG7DsyBr4bq/dCB0aMO6YyB24bubaSA0MCBrw70gdOG7sSBoZXhcbiIKKyJi4bufaSB2w6wgbsOzIHPhur0gYuG7iyBi4buPIHF1YSBraGkgYuG6oW4gY2jhu4kgxJHhu4tuaCA0MC1oZXguIE5o4buvbmcgdGhhbSBjaGnhur91IG7DoHlcbiIKKyJjw7MgbOG6vSDEkcaw4bujYyB04bqhbyByYSBi4bufaSBt4buZdCBzYWkgc8OzdCBuw6BvIMSRw7MuIFbDrSBk4bulLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorInbhu5tpIFwiJGJyXCIga2jDtG5nIGhp4buDdSBsw70gZG8gdsOsIHNhbyB0cuG7kW5nIHLhu5duZyB2w6AgbeG7mXQgdGhhbSBjaGnhur91IDQwLWhleCDEkcaw4bujYyAiCisidOG6oW8gcmEuXG4iCisiWGluIGjDo3kga2nhu4NtIHRyYSBuaOG7r25nIHRoYW0gY2hp4bq/dSBuw6B5IHbDoCBjw7MgdGjhu4MgeMOzYSBjaMO6bmcgxJFpLiBU4bqvdCBs4budaSBuaOG6r24gIgorIm7DoHlcbiIKKyJi4bqxbmcgY8OhY2ggY2jhuqF5IGzhu4duaCBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCIiCisKKyM6IHNoYTFfbmFtZS5jOjEwOTcKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICJIRUFEIGtow7RuZyBjaOG7iSDEkeG6v24gbeG7mXQgbmjDoW5oIG7DoG8gY+G6oyIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIGPDsyBuaMOhbmggbsOgbyBuaMawIHRo4bq/OiDigJwlc+KAnSIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIGPDsyB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIMSRxrDhu6NjIGPhuqV1IGjDrG5oIGNobyBuaMOhbmgg4oCcJXPigJ0iCiAKLSM6IHNoYTFfbmFtZS5jOjEwNDQKKyM6IHNoYTFfbmFtZS5jOjExMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giCiBtc2dzdHIgIiIKQEAgLTEwOTgsMjM5ICsxMjYyLDIzOSBAQAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJzogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0cnV5IGPhuq1wIOKAnCVz4oCdOiAlcyIKIAotIzogd3JhcHBlci5jOjQyMworIzogd3JhcHBlci5jOjQyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0cnV5IGPhuq1wIOKAnCVz4oCdIgogCi0jOiB3cmFwcGVyLmM6NDM0CisjOiB3cmFwcGVyLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBsb29rIHVwIGN1cnJlbnQgdXNlciBpbiB0aGUgcGFzc3dkIGZpbGU6ICVzIgogbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgbmfGsOG7nWkgZMO5bmcgaGnhu4duIHThuqFpIHRyb25nIHThuq1wIHRpbiBwYXNzd2Q6ICVzIgogCi0jOiB3cmFwcGVyLmM6NDM1CisjOiB3cmFwcGVyLmM6NDQxCiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICJraMO0bmcgY8OzIG5nxrDhu51pIGTDuW5nIG5oxrAgduG6rXkiCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICJOaOG7r25nIMSRxrDhu51uZyBk4bqrbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbjoiCiAKLSM6IHd0LXN0YXR1cy5jOjE2NyB3dC1zdGF0dXMuYzoxOTQKKyM6IHd0LXN0YXR1cy5jOjE2OCB3dC1zdGF0dXMuYzoxOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCByZXNldCAlcyA8dOG6rXAtdGluPi4uLlwiIMSR4buDIGLhu48gbeG7mXQgc3RhZ2UgKHRy4bqhbmcgdGjDoWkpKSIKIAotIzogd3Qtc3RhdHVzLmM6MTY5IHd0LXN0YXR1cy5jOjE5NgorIzogd3Qtc3RhdHVzLmM6MTcwIHd0LXN0YXR1cy5jOjE5NwogbXNnaWQgIiAgKHVzZSBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiB0byB1bnN0YWdlKSIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgcm0gLS1jYWNoZWQgPHThuq1wLXRpbj4uLi5cIiDEkeG7gyBi4buPIHRy4bqhbmcgdGjDoWkgKHN0YWdlKSkiCiAKLSM6IHd0LXN0YXR1cy5jOjE3MworIzogd3Qtc3RhdHVzLmM6MTc0CiBtc2dpZCAiICAodXNlIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBhZGQgPHThuq1wLXRpbj4uLi5cIiDEkeG7gyDEkcOhbmggZOG6pXUgbMOgIGPhuqduIGdp4bqjaSBxdXnhur90KSIKIAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGFkZC9ybSA8dOG6rXAtdGluPi4uLlwiIG5oxrAgbMOgIG3hu5l0IGPDoWNoICB0aMOtY2ggaOG7o3AgxJHhu4MgxJHDoW5oIGThuqV1ICIKICJsw6AgY+G6p24gxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBybSA8dOG6rXAtdGluPi4uLlwiIMSR4buDIMSRw6FuaCBk4bqldSBsw6AgY+G6p24gZ2nhuqNpIHF1eeG6v3QpIgogCi0jOiB3dC1zdGF0dXMuYzoxODgKKyM6IHd0LXN0YXR1cy5jOjE4OQogbXNnaWQgIkNoYW5nZXMgdG8gYmUgY29tbWl0dGVkOiIKIG1zZ3N0ciAiTmjhu69uZyB0aGF5IMSR4buVaSBz4bq9IMSRxrDhu6NjIGNodXnhu4NuIGdpYW86IgogCi0jOiB3dC1zdGF0dXMuYzoyMDYKKyM6IHd0LXN0YXR1cy5jOjIwNwogbXNnaWQgIkNoYW5nZXMgbm90IHN0YWdlZCBmb3IgY29tbWl0OiIKIG1zZ3N0ciAiIgogIkPDoWMgdGhheSDEkeG7lWkga2jDtG5nIMSRxrDhu6NjIMSR4bq3dCB0cuG6oW5nIHRow6FpIChzdGFnZSkgY2hvIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk6IgogCi0jOiB3dC1zdGF0dXMuYzoyMTAKKyM6IHd0LXN0YXR1cy5jOjIxMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQgPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgYWRkIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgY+G6rXAgbmjhuq10IG5o4buvbmcgZ8OsIGPhuqduIGNodXnhu4NuIGdpYW8gIgogIihjb21taXQpKSIKIAotIzogd3Qtc3RhdHVzLmM6MjEyCisjOiB3dC1zdGF0dXMuYzoyMTMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGFkZC9ybSA8dOG6rXAtdGluPi4uLlwiIMSR4buDIGPhuq1wIG5o4bqtdCBuaOG7r25nIGfDrCBz4bq9IMSRxrDhu6NjIGNodXnhu4NuIGdpYW8pIgogCi0jOiB3dC1zdGF0dXMuYzoyMTMKKyM6IHd0LXN0YXR1cy5jOjIxNAogbXNnaWQgIiIKICIgICh1c2UgXCJnaXQgY2hlY2tvdXQgLS0gPGZpbGU+Li4uXCIgdG8gZGlzY2FyZCBjaGFuZ2VzIGluIHdvcmtpbmcgZGlyZWN0b3J5KSIKIG1zZ3N0ciAiIgogIiAgKGTDuW5nIFwiZ2l0IGNoZWNrb3V0IC0tIDx04bqtcC10aW4+Li4uXCIgxJHhu4MgYuG7jyB0aGF5IMSR4buVaSB0cm9uZyB0aMawIG3hu6VjIGzDoG0gIgogInZp4buHYykiCiAKLSM6IHd0LXN0YXR1cy5jOjIxNQorIzogd3Qtc3RhdHVzLmM6MjE2CiBtc2dpZCAiICAoY29tbWl0IG9yIGRpc2NhcmQgdGhlIHVudHJhY2tlZCBvciBtb2RpZmllZCBjb250ZW50IGluIHN1Ym1vZHVsZXMpIgogbXNnc3RyICIiCiAiICAoY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBob+G6t2MgbMOgIGxv4bqhaSBi4buPIGPDoWMgbuG7mWkgZHVuZyBraMO0bmctYuG7iy10aGVvLXbhur90IGhheSAiCiAixJHDoyBi4buLIGNo4buJbmggc+G7rWEgdHJvbmcgbcO0LcSRdW4tY29uKSIKIAotIzogd3Qtc3RhdHVzLmM6MjI3CisjOiB3dC1zdGF0dXMuYzoyMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAodXNlIFwiZ2l0ICVzIDxmaWxlPi4uLlwiIHRvIGluY2x1ZGUgaW4gd2hhdCB3aWxsIGJlIGNvbW1pdHRlZCkiCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCAlcyA8dOG6rXAtdGluPi4uLlwiIMSR4buDIHRow6ptIHbDoG8gbmjhu69uZyBnw6wgY+G6p24gY2h1eeG7g24gZ2lhbyAiCiAiKGNvbW1pdCkpIgogCi0jOiB3dC1zdGF0dXMuYzoyNDQKKyM6IHd0LXN0YXR1cy5jOjI0NQogbXNnaWQgImJ1ZyIKIG1zZ3N0ciAibOG7l2kiCiAKLSM6IHd0LXN0YXR1cy5jOjI0OQorIzogd3Qtc3RhdHVzLmM6MjUwCiBtc2dpZCAiYm90aCBkZWxldGVkOiIKIG1zZ3N0ciAiYuG7iyB4w7NhIGLhu59pIGPhuqMgaGFpOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUwCisjOiB3dC1zdGF0dXMuYzoyNTEKIG1zZ2lkICJhZGRlZCBieSB1czoiCiBtc2dzdHIgIsSRxrDhu6NjIHRow6ptIHbDoG8gYuG7n2kgY2jDum5nIHRhOiIKIAotIzogd3Qtc3RhdHVzLmM6MjUxCisjOiB3dC1zdGF0dXMuYzoyNTIKIG1zZ2lkICJkZWxldGVkIGJ5IHRoZW06IgogbXNnc3RyICJi4buLIHjDs2EgxJFpIGLhu59pIGjhu406IgogCi0jOiB3dC1zdGF0dXMuYzoyNTIKKyM6IHd0LXN0YXR1cy5jOjI1MwogbXNnaWQgImFkZGVkIGJ5IHRoZW06IgogbXNnc3RyICLEkcaw4bujYyB0aMOqbSB2w6BvIGLhu59pIGjhu406IgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1NAogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICJi4buLIHjDs2EgYuG7n2kgY2jDum5nIHRhOiIKIAotIzogd3Qtc3RhdHVzLmM6MjU0CisjOiB3dC1zdGF0dXMuYzoyNTUKIG1zZ2lkICJib3RoIGFkZGVkOiIKIG1zZ3N0ciAixJHGsOG7o2MgdGjDqm0gdsOgbyBi4bufaSBj4bqjIGhhaToiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NQorIzogd3Qtc3RhdHVzLmM6MjU2CiBtc2dpZCAiYm90aCBtb2RpZmllZDoiCiBtc2dzdHIgImLhu4sgc+G7rWEgYuG7n2kgY+G6oyBoYWk6IgogCi0jOiB3dC1zdGF0dXMuYzoyODUKKyM6IHd0LXN0YXR1cy5jOjI4NgogbXNnaWQgIm5ldyBjb21taXRzLCAiCiBtc2dzdHIgImzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbeG7m2ksICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg3CisjOiB3dC1zdGF0dXMuYzoyODgKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIm7hu5lpIGR1bmcgYuG7iyBz4butYSDEkeG7lWksICIKIAotIzogd3Qtc3RhdHVzLmM6Mjg5CisjOiB3dC1zdGF0dXMuYzoyOTAKIG1zZ2lkICJ1bnRyYWNrZWQgY29udGVudCwgIgogbXNnc3RyICJu4buZaSBkdW5nIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSwgIgogCi0jOiB3dC1zdGF0dXMuYzozMDYKKyM6IHd0LXN0YXR1cy5jOjMwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgZmlsZTogICAlcyIKIG1zZ3N0ciAidOG6rXAgdGluIG3hu5tpOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAixJHDoyBzYW8gY2jDqXA6ICAgICAlcyAtPiAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgIsSRw6MgeMOzYTogICAgJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMxNQorIzogd3Qtc3RhdHVzLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLEkcOjIHPhu61hIMSR4buVaTogICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzE4CisjOiB3dC1zdGF0dXMuYzozMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVuYW1lZDogICAgJXMgLT4gJXMiCiBtc2dzdHIgIsSRw6MgxJHhu5VpIHTDqm46ICAgICVzIC0+ICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMjEKKyM6IHd0LXN0YXR1cy5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJ0eXBlY2hhbmdlOiAlcyIKIG1zZ3N0ciAixJHhu5VpLWtp4buDdTogJXMiCiAKLSM6IHd0LXN0YXR1cy5jOjMyNAorIzogd3Qtc3RhdHVzLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd246ICAgICVzIgogbXNnc3RyICJraMO0bmcgaGnhu4N1OiAgICAlcyIKIAotIzogd3Qtc3RhdHVzLmM6MzI3CisjOiB3dC1zdGF0dXMuYzozMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5tZXJnZWQ6ICAgJXMiCiBtc2dzdHIgImNoxrBhIGjDsmEgdHLhu5luOiAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzAKKyM6IHd0LXN0YXR1cy5jOjMzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAibOG7l2k6IGtow7RuZyBs4bqleSDEkcaw4bujYyB0cuG6oW5nIHRow6FpIGzhu4duaCBkaWZmICVjIgogCi0jOiB3dC1zdGF0dXMuYzo4MDUKKyM6IHd0LXN0YXR1cy5jOjgwMwogbXNnaWQgIllvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLiIKIG1zZ3N0ciAiQuG6oW4gY8OzIG5o4buvbmcgxJHGsOG7nW5nIGThuqtuIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luLiIKIAotIzogd3Qtc3RhdHVzLmM6ODA4IHd0LXN0YXR1cy5jOjk2MAorIzogd3Qtc3RhdHVzLmM6ODA2CiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIKIG1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCBzYXUgxJHDsyBjaOG6oXkgXCJnaXQgY29tbWl0XCIpIgogCi0jOiB3dC1zdGF0dXMuYzo4MTEKKyM6IHd0LXN0YXR1cy5jOjgwOQogbXNnaWQgIkFsbCBjb25mbGljdHMgZml4ZWQgYnV0IHlvdSBhcmUgc3RpbGwgbWVyZ2luZy4iCiBtc2dzdHIgIlThuqV0IGPhuqMgY8OhYyB4dW5nIMSR4buZdCDEkcOjIMSRxrDhu6NjIGdp4bqjaSBxdXnhur90IG5oxrBuZyBi4bqhbiB24bqrbiDEkWFuZyBow7JhIHRy4buZbi4iCiAKLSM6IHd0LXN0YXR1cy5jOjgxNAorIzogd3Qtc3RhdHVzLmM6ODEyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdFwiIHRvIGNvbmNsdWRlIG1lcmdlKSIKIG1zZ3N0ciAiICAoZMO5bmcgXCJnaXQgY29tbWl0XCIgxJHhu4MgaG/DoG4gdOG6pXQgdmnhu4djIGjDsmEgdHLhu5luKSIKIAotIzogd3Qtc3RhdHVzLmM6ODI0CisjOiB3dC1zdGF0dXMuYzo4MjIKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCiBtc2dzdHIgIkLhuqFuIMSRYW5nIOG7nyBnaeG7r2EgY+G7p2EgbeG7mXQgcGhpw6puIOKAnGFt4oCdLiIKIAotIzogd3Qtc3RhdHVzLmM6ODI3CisjOiB3dC1zdGF0dXMuYzo4MjUKIG1zZ2lkICJUaGUgY3VycmVudCBwYXRjaCBpcyBlbXB0eS4iCiBtc2dzdHIgIk1p4bq/bmcgdsOhIGhp4buHbiB04bqhaSBi4buLIHRy4buRbmcgcuG7l25nLiIKIAotIzogd3Qtc3RhdHVzLmM6ODMxCi1tc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKLW1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorIzogd3Qtc3RhdHVzLmM6ODI5Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCBhbSAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo4MzMKKyM6IHd0LXN0YXR1cy5jOjgzMQogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBhbSAtLXNraXBcIiDEkeG7gyBi4buPIHF1YSBtaeG6v25nIHbDoSBuw6B5KSIKIAotIzogd3Qtc3RhdHVzLmM6ODM1CisjOiB3dC1zdGF0dXMuYzo4MzMKIG1zZ2lkICIgICh1c2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IGFtIC0tYWJvcnRcIiDEkeG7gyBwaOG7pWMgaOG7k2kgbOG6oWkgbmjDoW5oIG5ndXnDqm4gdGjhu6d5KSIKIAotIzogd3Qtc3RhdHVzLmM6ODk1IHd0LXN0YXR1cy5jOjkxMgorIzogd3Qtc3RhdHVzLmM6ODkzIHd0LXN0YXR1cy5jOjkxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyByZWJhc2UgbmjDoW5oIOKAnCVz4oCdIHRyw6puIOKAnCVz4oCdLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAwIHd0LXN0YXR1cy5jOjkxNworIzogd3Qtc3RhdHVzLmM6ODk4IHd0LXN0YXR1cy5jOjkxNQogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyByZWJhc2UgKHTDoWkgY+G6pXUgdHLDumMpLiIKIAotIzogd3Qtc3RhdHVzLmM6OTAzCisjOiB3dC1zdGF0dXMuYzo5MDEKIG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICAoc+G7rWEgY8OhYyB4dW5nIMSR4buZdCB2w6Agc2F1IMSRw7MgY2jhuqF5IGzhu4duaCBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIAotIzogd3Qtc3RhdHVzLmM6OTA1CisjOiB3dC1zdGF0dXMuYzo5MDMKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmViYXNlIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCiBtc2dzdHIgIiAgKGTDuW5nIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiDEkeG7gyBi4buPIHF1YSBs4bqnbiB2w6EgbsOgeSkiCiAKLSM6IHd0LXN0YXR1cy5jOjkwNworIzogd3Qtc3RhdHVzLmM6OTA1CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCByZWJhc2UgLS1hYm9ydFwiIMSR4buDIGNoZWNrLW91dCBuaMOhbmggbmd1ecOqbiB0aOG7p3kpIgogCi0jOiB3dC1zdGF0dXMuYzo5MjAKKyM6IHd0LXN0YXR1cy5jOjkxOAogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiIgogIiAgKGtoaSB04bqldCBj4bqjIGPDoWMgeHVuZyDEkeG7mXQgxJHDoyBz4butYSB4b25nOiBjaOG6oXkgbOG7h25oIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5MjQKKyM6IHd0LXN0YXR1cy5jOjkyMgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgpAQCAtMTMzOCw0OCArMTUwMiw1OSBAQAogIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2hpYSB0w6FjaCBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICIKICJ0cm9uZyBraGkgxJFhbmcgcmViYXNlIG5ow6FuaCDigJwlc+KAnSB0csOqbiDigJwlc+KAnS4iCiAKLSM6IHd0LXN0YXR1cy5jOjkyOQorIzogd3Qtc3RhdHVzLmM6OTI3CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IGR1cmluZyBhIHJlYmFzZS4iCiBtc2dzdHIgIiIKICJC4bqhbiBoaeG7h24gdOG6oWkgxJFhbmcgY+G6r3QgxJHDtGkgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyB0cm9uZyBraGkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgIgogInJlYmFzZS4iCiAKLSM6IHd0LXN0YXR1cy5jOjkzMgorIzogd3Qtc3RhdHVzLmM6OTMwCiBtc2dpZCAiICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIikiCiBtc2dzdHIgIiIKICIgIChN4buZdCBraGkgdGjGsCBt4bulYyBsw6BtIHZp4buHYyBj4bunYSBi4bqhbiDEkcOjIGfhu41uIGfDoG5nLCBjaOG6oXkgXCJnaXQgcmViYXNlIC0tY29udGludWUiCiAiXCIpIgogCi0jOiB3dC1zdGF0dXMuYzo5MzYKKyM6IHd0LXN0YXR1cy5jOjkzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnJXMnIG9uICclcycuIgogbXNnc3RyICIiCiAiQuG6oW4gaGnhu4duIG5heSDEkWFuZyB0aOG7sWMgaGnhu4duIHZp4buHYyBz4butYSBjaOG7r2EgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSB0cm9uZyAiCiAia2hpIMSRYW5nIHJlYmFzZSBuaMOhbmgg4oCcJXPigJ0gdHLDqm4g4oCcJXPigJ0uIgogCi0jOiB3dC1zdGF0dXMuYzo5NDEKKyM6IHd0LXN0YXR1cy5jOjkzOQogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAiQuG6oW4gaGnhu4duIMSRYW5nIHPhu61hIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gdHJvbmcga2hpIGLhuqFuIHRo4buxYyBoaeG7h24gcmViYXNlLiIKIAotIzogd3Qtc3RhdHVzLmM6OTQ0CisjOiB3dC1zdGF0dXMuYzo5NDIKIG1zZ2lkICIgICh1c2UgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpIgogbXNnc3RyICIiCiAiICAoZMO5bmcgXCJnaXQgY29tbWl0IC0tYW1lbmRcIiDEkeG7gyB0dSBi4buVIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgaGnhu4duIHThuqFpKSIKIAotIzogd3Qtc3RhdHVzLmM6OTQ2CisjOiB3dC1zdGF0dXMuYzo5NDQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiIKICIgIChkw7luZyBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiIG3hu5l0IGtoaSBi4bqhbiBj4bqjbSB0aOG6pXkgaMOgaSBsw7JuZyB24buBIG5o4buvbmcgIgogInRoYXkgxJHhu5VpIGPhu6dhIG3DrG5oKSIKIAotIzogd3Qtc3RhdHVzLmM6OTU2CisjOiB3dC1zdGF0dXMuYzo5NTQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSBjaGVycnktcGlja2luZy4iCiBtc2dzdHIgIkLhuqFuIGhp4buHbiBuYXkgxJFhbmcgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2hlcnJ5LXBpY2suIgogCisjOiB3dC1zdGF0dXMuYzo5NTgKK21zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiIgorIiAgKHPhu61hIGPDoWMgeHVuZyDEkeG7mXQgdsOgIHNhdSDEkcOzIGNo4bqheSBs4buHbmggXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKKworIzogd3Qtc3RhdHVzLmM6OTYxCittc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCittc2dzdHIgIiIKKyIgIChraGkgdOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6Mgc+G7rWEgeG9uZzogY2jhuqF5IGzhu4duaCBcImdpdCBjaGVycnktcGljayAtLSIKKyJjb250aW51ZVwiKSIKKwogIzogd3Qtc3RhdHVzLmM6OTYzCi1tc2dpZCAiICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuIFwiZ2l0IGNvbW1pdFwiKSIKLW1zZ3N0ciAiICAoa2hpIHThuqV0IGPhuqMgY8OhYyB4dW5nIMSR4buZdCDEkcOjIHPhu61hIHhvbmc6IGNo4bqheSBs4buHbmggXCJnaXQgY29tbWl0XCIpIgorbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIgIChkw7luZyBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgxJHhu4MgaOG7p3kgYuG7jyB0aGFvIHTDoWMgY2hlcnJ5LXBpY2spIgogCiAjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CkBAIC0xNDE0LDc0ICsxNTg5LDc2IEBACiBtc2dpZCAiICAodXNlIFwiZ2l0IGJpc2VjdCByZXNldFwiIHRvIGdldCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIChkw7luZyBcImdpdCBiaXNlY3QgcmVzZXRcIiDEkeG7gyBxdWF5IHRy4bufIGzhuqFpIG5ow6FuaCBuZ3V5w6puIHRo4buneSkiCiAKLSM6IHd0LXN0YXR1cy5jOjExNzUKKyM6IHd0LXN0YXR1cy5jOjExNzMKIG1zZ2lkICJPbiBicmFuY2ggIgogbXNnc3RyICJUcsOqbiBuaMOhbmggIgogCi0jOiB3dC1zdGF0dXMuYzoxMTg2CisjOiB3dC1zdGF0dXMuYzoxMTgwCittc2dpZCAicmViYXNlIGluIHByb2dyZXNzOyBvbnRvICIKK21zZ3N0ciAicmViYXNlIMSRYW5nIMSRxrDhu6NjIHRo4buxYyBoaeG7h246IGzDqm4gdHLDqm4iCisKKyM6IHd0LXN0YXR1cy5jOjExODcKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGF0ICIKIG1zZ3N0ciAiSEVBRCDEkcaw4bujYyB0w6FjaCBy4budaSB04bqhaSIKIAotIzogd3Qtc3RhdHVzLmM6MTE4OAorIzogd3Qtc3RhdHVzLmM6MTE4OQogbXNnaWQgIkhFQUQgZGV0YWNoZWQgZnJvbSAiCiBtc2dzdHIgIkhFQUQgxJHGsOG7o2MgdMOhY2ggcuG7nWkgdOG7qyIKIAotIzogd3Qtc3RhdHVzLmM6MTE5MQorIzogd3Qtc3RhdHVzLmM6MTE5MgogbXNnaWQgIk5vdCBjdXJyZW50bHkgb24gYW55IGJyYW5jaC4iCiBtc2dzdHIgIkhp4buHbiB04bqhaSBjaOG6s25nIOG7nyBuaMOhbmggbsOgbyBj4bqjLiIKIAotIzogd3Qtc3RhdHVzLmM6MTIwOAorIzogd3Qtc3RhdHVzLmM6MTIwOQogbXNnaWQgIkluaXRpYWwgY29tbWl0IgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGto4bufaSDEkeG6p3UiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjIKKyM6IHd0LXN0YXR1cy5jOjEyMjMKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMiCiBtc2dzdHIgIk5o4buvbmcgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSIKIAotIzogd3Qtc3RhdHVzLmM6MTIyNAorIzogd3Qtc3RhdHVzLmM6MTIyNQogbXNnaWQgIklnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIk5o4buvbmcgdOG6rXAgdGluIGLhu4sgbOG7nSDEkWkiCiAKLSM6IHd0LXN0YXR1cy5jOjEyMjgKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCi1tc2dzdHIgIkPhuqduICUuMmYgZ2nDonkgxJHhu4MgxJHhur9tIGPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gduG6v3QuICAnc3RhdHVzIC11bm8nIgotCi0jOiB3dC1zdGF0dXMuYzoxMjMyCi1tc2dpZCAibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZCIKK21zZ2lkICIiCisiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGRcbiIKKyJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgogbXNnc3RyICIiCi0iY8OzIHRo4buDIGzDoG0gbsOzIG5oYW5oIGzDqm4sIG5oxrBuZyBi4bqhbiBwaOG6o2kgY+G6qW4gdHLhu41uZyDEkeG7q25nIHF1w6puIHRow6ptIG7DsyB2w6BvIgorIkPhuqduICUuMmYgZ2nDonkgxJHhu4MgbGnhu4d0IGvDqiB04bqldCBj4bqjIGPDoWMgdOG6rXAgdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aS4g4oCcc3RhdHVzIC0iCisidW5v4oCdXG4iCisiY8OzIGzhur0gbMOgbSBuw7MgbmhhbmggaMahbiwgbmjGsG5nIGLhuqFuIHBo4bqjaSBj4bqpbiB0aOG6rW4gxJHhu6tuZyBxdcOqbiBtw6xuaCBwaOG6o2lcbiIKKyJ04buxIHRow6ptIGPDoWMgdOG6rXAgdGluIG3hu5tpICh4ZW0g4oCcZ2l0IGhlbHAgc3RhdHVz4oCdLi4iCiAKICM6IHd0LXN0YXR1cy5jOjEyMzUKLW1zZ2lkICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgotbXNnc3RyICJ04bqtcCB0aW4gbeG7m2kgY+G7p2EgY2jDrW5oIGLhuqFuICh4ZW0gJ2dpdCBoZWxwIHN0YXR1cycpLiIKLQotIzogd3Qtc3RhdHVzLmM6MTIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnRyYWNrZWQgZmlsZXMgbm90IGxpc3RlZCVzIgogbXNnc3RyICJOaOG7r25nIHThuq1wIHRpbiBraMO0bmcgYuG7iyB0aGVvIHbhur90IGtow7RuZyDEkcaw4bujYyBsaeG7h3Qga8OqIHJhICVzIgogCi0jOiB3dC1zdGF0dXMuYzoxMjQwCisjOiB3dC1zdGF0dXMuYzoxMjM3CiBtc2dpZCAiICh1c2UgLXUgb3B0aW9uIHRvIHNob3cgdW50cmFja2VkIGZpbGVzKSIKIG1zZ3N0ciAiIChkw7luZyB0w7l5IGNo4buNbiAtdSDEkeG7gyBoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpKSIKIAotIzogd3Qtc3RhdHVzLmM6MTI0NgorIzogd3Qtc3RhdHVzLmM6MTI0MwogbXNnaWQgIk5vIGNoYW5nZXMiCiBtc2dzdHIgIktow7RuZyBjw7MgdGhheSDEkeG7lWkgbsOgbyIKIAotIzogd3Qtc3RhdHVzLmM6MTI1MQorIzogd3Qtc3RhdHVzLmM6MTI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlIFwiZ2l0IGFkZFwiIGFuZC9vciBcImdpdCBjb21taXQgLWFcIilcbiIKIG1zZ3N0ciAiIgogImtow7RuZyBjw7MgdGhheSDEkeG7lWkgbsOgbyDEkcaw4bujYyB0aMOqbSB2w6BvIGNvbW1pdCAoZMO5bmcgXCJnaXQgYWRkXCIgdsOgL2hv4bq3YyBcImdpdCAiCiAiY29tbWl0IC1hXCIpXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAia2jDtG5nIGPDsyB0aGF5IMSR4buVaSBuw6BvIMSRxrDhu6NjIHRow6ptIHbDoG8gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjU3CisjOiB3dC1zdGF0dXMuYzoxMjU0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3RoaW5nIGFkZGVkIHRvIGNvbW1pdCBidXQgdW50cmFja2VkIGZpbGVzIHByZXNlbnQgKHVzZSBcImdpdCBhZGRcIiB0byAiCkBAIC0xNDkwLDU4ICsxNjY3LDU4IEBACiAia2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgdGjDqm0gdsOgbyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG5oxrBuZyBjw7Mgbmjhu69uZyB04bqtcCB0aW4gIgogImtow7RuZyDEkcaw4bujYyB0aGVvIGThuqV1IHbhur90IGhp4buHbiBkaeG7h24gKGTDuW5nIFwiZ2l0IGFkZFwiIMSR4buDIMSRxrBhIHbDoG8gdGhlbyBkw7VpKVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwCisjOiB3dC1zdGF0dXMuYzoxMjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICIiCiAia2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgdGjDqm0gdsOgbyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG5oxrBuZyBjw7Mgbmjhu69uZyB04bqtcCB0aW4gIgogImtow7RuZyDEkcaw4bujYyB0aGVvIGThuqV1IHbhur90IGhp4buHbiBkaeG7h25cbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2MworIzogd3Qtc3RhdHVzLmM6MTI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdCAoY3JlYXRlL2NvcHkgZmlsZXMgYW5kIHVzZSBcImdpdCBhZGRcIiB0byB0cmFjaylcbiIKIG1zZ3N0ciAiIgogIiBraMO0bmcgY8OzIGfDrCDEkeG7gyBjb21taXQgKHThuqFvL3Nhby1jaMOpcCBjw6FjIHThuq1wIHRpbiB2w6AgZMO5bmcgXCJnaXQgYWRkXCIgxJHhu4MgdGhlbyAiCiAiZMO1aSBk4bqldSB24bq/dClcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTI2NiB3dC1zdGF0dXMuYzoxMjcxCisjOiB3dC1zdGF0dXMuYzoxMjYzIHd0LXN0YXR1cy5jOjEyNjgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90aGluZyB0byBjb21taXRcbiIKIG1zZ3N0ciAia2jDtG5nIGPDsyBnw6wgxJHhu4MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY5CisjOiB3dC1zdGF0dXMuYzoxMjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgIiIKICJraMO0bmcgY8OzIGfDrCDEkeG7gyBjaHV54buDbiBnaWFvIChjb21taXQpIChkw7luZyAtdSDEkeG7gyBi4buPIGPDoWMgdOG6rXAgdGluIGPhuqduIHRoZW8gZOG6pXUgIgogInbhur90KVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjczCisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICJraMO0bmcgY8OzIGfDrCDEkeG7gyBjaHV54buDbiBnaWFvIChjb21taXQpLCB0aMawIG3hu6VjIGzDoG0gdmnhu4djIHPhuqFjaCBz4bq9XG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEzODEKKyM6IHd0LXN0YXR1cy5jOjEzNzgKIG1zZ2lkICJIRUFEIChubyBicmFuY2gpIgogbXNnc3RyICJIRUFEIChraMO0bmcgbmjDoW5oKSIKIAotIzogd3Qtc3RhdHVzLmM6MTM4NworIzogd3Qtc3RhdHVzLmM6MTM4NAogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAiTOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBraOG7n2kgdOG6oW8gdHLDqm4gIgogCi0jOiB3dC1zdGF0dXMuYzoxNDAyCisjOiB3dC1zdGF0dXMuYzoxMzk5CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAixJHhurFuZyBzYXUgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDA1IHd0LXN0YXR1cy5jOjE0MDgKKyM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAicGjDrWEgdHLGsOG7m2MgIgogCi0jOiB3dC1zdGF0dXMuYzoxNDEwCisjOiB3dC1zdGF0dXMuYzoxNDA3CiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICIsIMSR4bqxbmcgc2F1ICIKIAotIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNDIKKyM6IGNvbXBhdC9wcmVjb21wb3NlX3V0ZjguYzo1OCBidWlsdGluL2Nsb25lLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB1bmxpbmsgJyVzJyIKIG1zZ3N0ciAiYuG7jyBsacOqbiBr4bq/dCAodW5saW5rKSAlcyBraMO0bmcgdGjDoG5oIGPDtG5nIgpAQCAtMTU1MCwxMzEgKzE3MjcsNiBAQAogbXNnaWQgImdpdCBhZGQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGFkZCBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSAgPHBhdGhzcGVjPi4uLiIKIAotIzogYnVpbHRpbi9hZGQuYzo2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJ1bmV4cGVjdGVkIGRpZmYgc3RhdHVzICVjIgotbXNnc3RyICJ0cuG6oW5nIHRow6FpIGzhu4duaCBkaWZmIGtow7RuZyBuaMawIG1vbmcgxJHhu6NpICVjIgotCi0jOiBidWlsdGluL2FkZC5jOjY4IGJ1aWx0aW4vY29tbWl0LmM6MjMzCi1tc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgotbXNnc3RyICJD4bqtcCBuaOG6rXQgdOG6rXAgdGluIGfhurdwIGzhu5dpIgotCi0jOiBidWlsdGluL2FkZC5jOjc4Ci0jLCBjLWZvcm1hdAotbXNnaWQgInJlbW92ZSAnJXMnXG4iCi1tc2dzdHIgImfhu6EgYuG7jyDigJwlc+KAnVxuIgotCi0jOiBidWlsdGluL2FkZC5jOjE0OAotbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgotbXNnc3RyICIiCi0iQ8OhYyB0aGF5IMSR4buVaSBraMO0bmcgxJHGsOG7o2MgbMawdSB0cuG6oW5nIHRow6FpIHNhdSBraGkgbMOgbSB0xrDGoWkgbeG7m2kgbOG6oWkgYuG6o25nIG3hu6VjIGzhu6VjOiIKLQotIzogYnVpbHRpbi9hZGQuYzoxNTEgYnVpbHRpbi9hZGQuYzo0NjAgYnVpbHRpbi9ybS5jOjI3NQotIywgYy1mb3JtYXQKLW1zZ2lkICJwYXRoc3BlYyAnJXMnIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzIgotbXNnc3RyICJwYXRoc3BlYyDigJwlc+KAnSBraMO0bmcga2jhu5twIHbhu5tpIGLhuqV0IGvhu7MgdOG6rXAgdGluIG7DoG8iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjM0Ci1tc2dpZCAiQ291bGQgbm90IHJlYWQgdGhlIGluZGV4IgotbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIGLhuqNuZyBt4bulYyBs4bulYyIKLQotIzogYnVpbHRpbi9hZGQuYzoyNDQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCi1tc2dzdHIgIktow7RuZyB0aOG7gyBt4bufIOKAnCVz4oCdIMSR4buDIGdoaS4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjQ4Ci1tc2dpZCAiQ291bGQgbm90IHdyaXRlIHBhdGNoIgotbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIHJhIG1p4bq/bmcgdsOhIgotCi0jOiBidWlsdGluL2FkZC5jOjI1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgotbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgdHLhuqFuZyB0aMOhaSB24buBIOKAnCVz4oCdIgotCi0jOiBidWlsdGluL2FkZC5jOjI1NQotbXNnaWQgIkVtcHR5IHBhdGNoLiBBYm9ydGVkLiIKLW1zZ3N0ciAiTWnhur9uZyB2w6EgdHLhu5FuZyBy4buXbmcuIMSQw6MgYuG7jyBxdWEuIgotCi0jOiBidWlsdGluL2FkZC5jOjI2MQotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgYXBwbHkgJyVzJyIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIGFwcGx5ICjDoXAgZOG7pW5nIG1p4bq/bmcgdsOhKSDigJwlc+KAnSIKLQotIzogYnVpbHRpbi9hZGQuYzoyNzEKLW1zZ2lkICJUaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCi1tc2dzdHIgIiIKLSJDw6FjIMSRxrDhu51uZyBk4bqrbiB0aGVvIHNhdSDEkcOieSBz4bq9IGLhu4sgbOG7nSDEkWkgYuG7n2kgbeG7mXQgdHJvbmcgY8OhYyB04bqtcCB0aW4gLmdpdGlnbm9yZSAiCi0iY+G7p2EgYuG6oW46XG4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjc3IGJ1aWx0aW4vY2xlYW4uYzoxNjEgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MwotIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NiBidWlsdGluL3B1c2guYzo0MjUgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCi0jOiBidWlsdGluL3JtLmM6MjA2Ci1tc2dpZCAiZHJ5IHJ1biIKLW1zZ3N0ciAiY2jhuqF5IHRo4butIgotCi0jOiBidWlsdGluL2FkZC5jOjI3OCBidWlsdGluL2FwcGx5LmM6NDQwOSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjExNTIgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1MTQgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCi1tc2dpZCAiYmUgdmVyYm9zZSIKLW1zZ3N0ciAiY2hpIHRp4bq/dCIKLQotIzogYnVpbHRpbi9hZGQuYzoyODAKLW1zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgotbXNnc3RyICJz4butYSBi4bqxbmcgY8OhY2ggdMawxqFuZyB0w6FjIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MSBidWlsdGluL2NoZWNrb3V0LmM6MTA2MCBidWlsdGluL3Jlc2V0LmM6MjU4Ci1tc2dpZCAic2VsZWN0IGh1bmtzIGludGVyYWN0aXZlbHkiCi1tc2dzdHIgImNo4buNbiDigJxodW5rc+KAnSBt4buZdCBjw6FjaCB0xrDGoW5nIHTDoWMiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgyCi1tc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgotbXNnc3RyICJz4butYSBkaWZmIGhp4buHbiBuYXkgdsOgIMOhcCBk4bulbmcgbsOzIgotCi0jOiBidWlsdGluL2FkZC5jOjI4MwotbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKLW1zZ3N0ciAiY2hvIHBow6lwIHRow6ptIGPDoWMgdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEga2jDoWMiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg0Ci1tc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCi1tc2dzdHIgImPhuq1wIG5o4bqtdCBjw6FjIHThuq1wIHRpbiDEkcaw4bujYyB0aGVvIHbhur90IgotCi0jOiBidWlsdGluL2FkZC5jOjI4NQotbXNnaWQgInJlY29yZCBvbmx5IHRoZSBmYWN0IHRoYXQgdGhlIHBhdGggd2lsbCBiZSBhZGRlZCBsYXRlciIKLW1zZ3N0ciAiY2jhu4kgZ2hpIGzhuqFpIHPhu7Egdmnhu4djIG3DoCDEkcaw4budbmcgZOG6q24gc+G6vSDEkcaw4bujYyB0aMOqbSB2w6BvIHNhdSIKLQotIzogYnVpbHRpbi9hZGQuYzoyODYKLW1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCi1tc2dzdHIgIiIKLSJ0aMOqbSBjw6FjIHRoYXkgxJHhu5VpIHThu6sgdOG6pXQgY+G6oyBjw6FjIHThuq1wIHRpbiBjw7MgY8WpbmcgbmjGsCBraMO0bmcgxJHGsOG7o2MgdGhlbyBkw7VpIGThuqV1ICIKLSJ24bq/dCIKLQotIzogYnVpbHRpbi9hZGQuYzoyODcKLW1zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCi1tc2dzdHIgImtow7RuZyB0aMOqbSwgY2jhu4kgbMOgbSB0xrDGoWkgbeG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIgotCi0jOiBidWlsdGluL2FkZC5jOjI4OAotbXNnaWQgImp1c3Qgc2tpcCBmaWxlcyB3aGljaCBjYW5ub3QgYmUgYWRkZWQgYmVjYXVzZSBvZiBlcnJvcnMiCi1tc2dzdHIgImNoaWUgYuG7jyBxdWEgbmjhu69uZyB04bqtcCB0aW4gbcOgIG7DsyBraMO0bmcgdGjhu4MgxJHGsOG7o2MgdGjDqm0gdsOgbyBi4bufaSB2w6wgZ+G6t3AgbOG7l2kiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg5Ci1tc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgotbXNnc3RyICIiCi0ia2nhu4NtIHRyYSB4ZW0gLSB0aOG6rW0gY2jDrSB0aGnhur91IC0gdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEgdHJvbmcgcXXDoSB0csOsbmggY2jhuqF5IHRo4butIgotCi0jOiBidWlsdGluL2FkZC5jOjMxMQotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2UgLWYgaWYgeW91IHJlYWxseSB3YW50IHRvIGFkZCB0aGVtLlxuIgotbXNnc3RyICJT4butIGThu6VuZyB0w7l5IGNo4buNbiAtZiBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4gdGjDqm0gY2jDum5nIHbDoG8uXG4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzEyCi1tc2dpZCAibm8gZmlsZXMgYWRkZWQiCi1tc2dzdHIgImNoxrBhIGPDsyB04bqtcCB0aW4gbsOgbyDEkcaw4bujYyB0aMOqbSB2w6BvIgotCi0jOiBidWlsdGluL2FkZC5jOjMxOAotbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCi1tc2dzdHIgInRow6ptIHThuq1wIHRpbiBn4bq3cCBs4buXaSIKLQogIy4KICMuICogVG8gYmUgY29uc2lzdGVudCB3aXRoICJnaXQgYWRkIC1wIiBhbmQgbW9zdCBHaXQKICMuICogY29tbWFuZHMsIHdlIHNob3VsZCBkZWZhdWx0IHRvIGJlaW5nIHRyZWUtd2lkZSwgYnV0CkBAIC0xNjg1LDcgKzE3MzcsNyBAQAogIy4gKiB0byB0cmVlLXdpZGUsIGtlZXBpbmcgdGhlIHdhcm5pbmcgZm9yIGEgd2hpbGUsIGFuZAogIy4gKiBldmVudHVhbGx5IHdlIGNhbiBkcm9wIHRoZSB3YXJuaW5nLgogIy4KLSM6IGJ1aWx0aW4vYWRkLmM6MzM1CisjOiBidWlsdGluL2FkZC5jOjU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgYmVoYXZpb3Igb2YgJ2dpdCBhZGQgJXMgKG9yICVzKScgd2l0aCBubyBwYXRoIGFyZ3VtZW50IGZyb20gYVxuIgpAQCAtMTcwMiw3ICsxNzU0LDcgQEAKICIgIChvciBnaXQgYWRkICVzIC4pXG4iCiAiXG4iCiAiV2l0aCB0aGUgY3VycmVudCBHaXQgdmVyc2lvbiwgdGhlIGNvbW1hbmQgaXMgcmVzdHJpY3RlZCB0byB0aGUgY3VycmVudCAiCi0iZGlyZWN0b3J5LiIKKyJkaXJlY3RvcnkuXG4iCiBtc2dzdHIgIiIKICJDw6FjaCDhu6luZyB44butIGPhu6dhIGzhu4duaCDigJxnaXQgYWRkICVzIChoYXkgJXMp4oCdIGtoaSBraMO0bmcgY8OzIHRoYW0gc+G7kSDEkcaw4budbmcgZOG6q24gIgogInThu6tcbiIKQEAgLTE3MTgsMzIgKzE3NzAsMTkyIEBACiAiICBnaXQgYWRkICVzIC5cbiIKICIgIChoYXkgZ2l0IGFkZCAlcyAuKVxuIgogIlxuIgotIlbhu5tpIHBoacOqbiBi4bqjbiBoaeG7h24gdOG6oWkgY+G7p2EgR2l0LCBs4buHbmggYuG7iyBo4bqhbiBjaOG6vyBjaG8gdGjGsC1t4bulYyBoaeG7h24gdOG6oWkuIgorIlbhu5tpIHBoacOqbiBi4bqjbiBoaeG7h24gdOG6oWkgY+G7p2EgR2l0LCBs4buHbmggYuG7iyBo4bqhbiBjaOG6vyBjaG8gdGjGsC1t4bulYyBoaeG7h24gdOG6oWkuXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzgxCisjOiBidWlsdGluL2FkZC5jOjEwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IHJhbiAnZ2l0IGFkZCcgd2l0aCBuZWl0aGVyICctQSAoLS1hbGwpJyBvciAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCisid2hvc2UgYmVoYXZpb3VyIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAgd2l0aCByZXNwZWN0IHRvIHBhdGhzIHlvdSByZW1vdmVkLlxuIgorIlBhdGhzIGxpa2UgJyVzJyB0aGF0IGFyZVxuIgorInJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZSBhcmUgaWdub3JlZCB3aXRoIHRoaXMgdmVyc2lvbiBvZiBHaXQuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoc3BlYz4nLCB3aGljaCBpcyB0aGUgY3VycmVudCBkZWZhdWx0LFxuIgorIiAgaWdub3JlcyBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPHBhdGhzcGVjPicgd2lsbCBsZXQgeW91IGFsc28gcmVjb3JkIHRoZSByZW1vdmFscy5cbiIKKyJcbiIKKyJSdW4gJ2dpdCBzdGF0dXMnIHRvIGNoZWNrIHRoZSBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorbXNnc3RyICIiCisiQuG6oW4gY2jhuqF5IOKAnGdpdCBhZGTigJ0gbcOgIGtow7RuZyBjw7Mg4oCcLUEgKC0tYWxsKeKAnSBjxaluZyBraMO0bmcg4oCcLS1pZ25vcmUtcmVtb3ZhbOKAnSxcbiIKKyJjw6FjaCDhu6luZyB44butIGPhu6dhIG7DsyBz4bq9IHRoYXkgxJHhu5VpIGvhu4MgdOG7qyBHaXQgMi4wOiBuw7MgcXVhbiB0w6JtIMSR4bq/biBjw6FjIMSRxrDhu51uZyBk4bqrbiAiCisibcOgXG4iCisiYuG6oW4gxJHDoyBn4buhIGLhu48uIEPDoWMgxJHGsOG7nW5nIGThuqtuIG5oxrAgbMOgIOKAnCVz4oCdIGPDoWkgbcOgXG4iCisiYuG7iyBn4buhIGLhu48gdOG7qyBjw6J5IGzDoG0gdmnhu4djIGPhu6dhIGLhuqFuIHRow6wgYuG7iyBi4buPIHF1YSB24bubaSBwaGnDqm4gYuG6o24gbsOgeSBj4bunYSBHaXQuXG4iCisiXG4iCisiKiDigJxnaXQgYWRkIC0taWdub3JlLXJlbW92YWwgPHBhdGhzcGVjPuKAnSwgY8OhaSBoaeG7h24gdOG6oWkgbMOgIG3hurdjIMSR4buLbmgsXG4iCisiICBi4buPIHF1YSBjw6FjIMSRxrDhu51uZyBk4bqrbiBi4bqhbiDEkcOjIGfhu6EgYuG7jyB04burIGPDonkgbMOgbSB2aeG7h2MgY+G7p2EgYuG6oW4uXG4iCisiXG4iCisiKiDigJxnaXQgYWRkIC0tYWxsIDxwYXRoc3BlYz7igJ0gc+G6vSDEkeG7k25nIHRo4budaSBnacO6cCBi4bqhbiBnaGkgbOG6oWkgdmnhu4djIGThu51pIMSRaS5cbiIKKyJcbiIKKyJDaOG6oXkg4oCcZ2l0IHN0YXR1c+KAnSDEkeG7gyBraeG7g20gdHJhIGPDoWMgxJHGsOG7nW5nIGThuqtuIGLhuqFuIMSRw6MgZ+G7oSBi4buPIHThu6sgY8OieSBsw6BtIHZp4buHYyBj4bunYSAiCisiYuG6oW4uXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCittc2dzdHIgInRy4bqhbmcgdGjDoWkgbOG7h25oIGRpZmYga2jDtG5nIG5oxrAgbW9uZyDEkeG7o2kgJWMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ5IGJ1aWx0aW4vY29tbWl0LmM6MjUyCittc2dpZCAidXBkYXRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICJD4bqtcCBuaOG6rXQgdOG6rXAgdGluIGfhurdwIGzhu5dpIgorCisjOiBidWlsdGluL2FkZC5jOjE2MworIywgYy1mb3JtYXQKK21zZ2lkICJyZW1vdmUgJyVzJ1xuIgorbXNnc3RyICJn4buhIGLhu48g4oCcJXPigJ1cbiIKKworIzogYnVpbHRpbi9hZGQuYzoyNTMKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKK21zZ3N0ciAiIgorIkPDoWMgdGhheSDEkeG7lWkga2jDtG5nIMSRxrDhu6NjIGzGsHUgdHLhuqFuZyB0aMOhaSBzYXUga2hpIGzDoG0gdMawxqFpIG3hu5tpIGzhuqFpIGLhuqNuZyBt4bulYyBs4bulYzoiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MjU2IGJ1aWx0aW4vYWRkLmM6NTczIGJ1aWx0aW4vcm0uYzozMzcKKyMsIGMtZm9ybWF0Cittc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKK21zZ3N0ciAicGF0aHNwZWMg4oCcJXPigJ0ga2jDtG5nIGto4bubcCB24bubaSBi4bqldCBr4buzIHThuq1wIHRpbiBuw6BvIgorCisjOiBidWlsdGluL2FkZC5jOjMzOQorbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyBi4bqjbmcgbeG7pWMgbOG7pWMiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzUwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBvcGVuICclcycgZm9yIHdyaXRpbmcuIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyDigJwlc+KAnSDEkeG7gyBnaGkuIgorCisjOiBidWlsdGluL2FkZC5jOjM1NAorbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSByYSBtaeG6v25nIHbDoSIKKworIzogYnVpbHRpbi9hZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHRy4bqhbmcgdGjDoWkgduG7gSDigJwlc+KAnSIKKworIzogYnVpbHRpbi9hZGQuYzozNjEKK21zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCittc2dzdHIgIk1p4bq/bmcgdsOhIHRy4buRbmcgcuG7l25nLiDEkMOjIGLhu48gcXVhLiIKKworIzogYnVpbHRpbi9hZGQuYzozNjcKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IGFwcGx5ICclcyciCittc2dzdHIgIktow7RuZyB0aOG7gyBhcHBseSAow6FwIGThu6VuZyBtaeG6v25nIHbDoSkg4oCcJXPigJ0iCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzc3Cittc2dpZCAiVGhlIGZvbGxvd2luZyBwYXRocyBhcmUgaWdub3JlZCBieSBvbmUgb2YgeW91ciAuZ2l0aWdub3JlIGZpbGVzOlxuIgorbXNnc3RyICIiCisiQ8OhYyDEkcaw4budbmcgZOG6q24gdGhlbyBzYXUgxJHDonkgc+G6vSBi4buLIGzhu50gxJFpIGLhu59pIG3hu5l0IHRyb25nIGPDoWMgdOG6rXAgdGluIC5naXRpZ25vcmUgIgorImPhu6dhIGLhuqFuOlxuIgorCisjOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDUxIGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjI2OAorbXNnaWQgImRyeSBydW4iCittc2dzdHIgImNo4bqheSB0aOG7rSIKKworIzogYnVpbHRpbi9hZGQuYzozOTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMjIwIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMworIzogYnVpbHRpbi9sb2cuYzoxNTczIGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworbXNnaWQgImJlIHZlcmJvc2UiCittc2dzdHIgImNoaSB0aeG6v3QiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk3Cittc2dpZCAiaW50ZXJhY3RpdmUgcGlja2luZyIKK21zZ3N0ciAic+G7rWEgYuG6sW5nIGPDoWNoIHTGsMahbmcgdMOhYyIKKworIzogYnVpbHRpbi9hZGQuYzozOTggYnVpbHRpbi9jaGVja291dC5jOjEwNzMgYnVpbHRpbi9yZXNldC5jOjI2MQorbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgorbXNnc3RyICJjaOG7jW4g4oCcaHVua3PigJ0gbeG7mXQgY8OhY2ggdMawxqFuZyB0w6FjIgorCisjOiBidWlsdGluL2FkZC5jOjM5OQorbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKK21zZ3N0ciAic+G7rWEgZGlmZiBoaeG7h24gbmF5IHbDoCDDoXAgZOG7pW5nIG7DsyIKKworIzogYnVpbHRpbi9hZGQuYzo0MDAKK21zZ2lkICJhbGxvdyBhZGRpbmcgb3RoZXJ3aXNlIGlnbm9yZWQgZmlsZXMiCittc2dzdHIgImNobyBwaMOpcCB0aMOqbSBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIGtow6FjIgorCisjOiBidWlsdGluL2FkZC5jOjQwMQorbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgorbXNnc3RyICJj4bqtcCBuaOG6rXQgY8OhYyB04bqtcCB0aW4gxJHGsOG7o2MgdGhlbyB24bq/dCIKKworIzogYnVpbHRpbi9hZGQuYzo0MDIKK21zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCittc2dzdHIgImNo4buJIGdoaSBs4bqhaSBz4buxIHZp4buHYyBtw6AgxJHGsOG7nW5nIGThuqtuIHPhur0gxJHGsOG7o2MgdGjDqm0gdsOgbyBzYXUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAzCittc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgorbXNnc3RyICIiCisidGjDqm0gY8OhYyB0aGF5IMSR4buVaSB04burIHThuqV0IGPhuqMgY8OhYyB04bqtcCB0aW4gY8OzIGPFqW5nIG5oxrAga2jDtG5nIMSRxrDhu6NjIHRoZW8gZMO1aSBk4bqldSAiCisiduG6v3QiCisKKyMuIHRha2VzIG5vIGFyZ3VtZW50cworIzogYnVpbHRpbi9hZGQuYzo0MDYKK21zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKK21zZ3N0ciAiIgorImzhu50gxJFpIGPDoWMgxJHGsOG7nW5nIGThuqtuIGLhu4sgZ+G7oSBi4buPIHRyb25nIGPDonkgdGjGsCBt4bulYyBsw6BtIHZp4buHYyAoZ2nhu5FuZyB24bubaSAtLW5vLWFsbCkiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDA4Cittc2dpZCAiZG9uJ3QgYWRkLCBvbmx5IHJlZnJlc2ggdGhlIGluZGV4IgorbXNnc3RyICJraMO0bmcgdGjDqm0sIGNo4buJIGzDoG0gdMawxqFpIG3hu5tpIGLhuqNuZyBt4bulYyBs4bulYyIKKworIzogYnVpbHRpbi9hZGQuYzo0MDkKK21zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgorbXNnc3RyICJjaGllIGLhu48gcXVhIG5o4buvbmcgdOG6rXAgdGluIG3DoCBuw7Mga2jDtG5nIHRo4buDIMSRxrDhu6NjIHRow6ptIHbDoG8gYuG7n2kgdsOsIGfhurdwIGzhu5dpIgorCisjOiBidWlsdGluL2FkZC5jOjQxMAorbXNnaWQgImNoZWNrIGlmIC0gZXZlbiBtaXNzaW5nIC0gZmlsZXMgYXJlIGlnbm9yZWQgaW4gZHJ5IHJ1biIKK21zZ3N0ciAiIgorImtp4buDbSB0cmEgeGVtIC0gdGjhuq1tIGNow60gdGhp4bq/dSAtIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIHRyb25nIHF1w6EgdHLDrG5oIGNo4bqheSB0aOG7rSIKKworIzogYnVpbHRpbi9hZGQuYzo0MzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlIC1mIGlmIHlvdSByZWFsbHkgd2FudCB0byBhZGQgdGhlbS5cbiIKK21zZ3N0ciAiU+G7rSBk4bulbmcgdMO5eSBjaOG7jW4gLWYgbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIHRow6ptIGNow7puZyB2w6BvLlxuIgorCisjOiBidWlsdGluL2FkZC5jOjQzMworbXNnaWQgIm5vIGZpbGVzIGFkZGVkIgorbXNnc3RyICJjaMawYSBjw7MgdOG6rXAgdGluIG7DoG8gxJHGsOG7o2MgdGjDqm0gdsOgbyIKKworIzogYnVpbHRpbi9hZGQuYzo0MzkKK21zZ2lkICJhZGRpbmcgZmlsZXMgZmFpbGVkIgorbXNnc3RyICJ0aMOqbSB04bqtcCB0aW4gZ+G6t3AgbOG7l2kiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDc4CiBtc2dpZCAiLUEgYW5kIC11IGFyZSBtdXR1YWxseSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi1BIHbDoCAtdSB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL2FkZC5jOjM4MworIzogYnVpbHRpbi9hZGQuYzo0OTYKIG1zZ2lkICJPcHRpb24gLS1pZ25vcmUtbWlzc2luZyBjYW4gb25seSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggLS1kcnktcnVuIgogbXNnc3RyICJUw7l5IGNo4buNbiAtLWlnbm9yZS1taXNzaW5nIGNo4buJIGPDsyB0aOG7gyDEkcaw4bujYyBkw7luZyBjw7luZyB24bubaSAtLWRyeS1ydW4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDE0CisjOiBidWlsdGluL2FkZC5jOjUyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAiS2jDtG5nIGPDsyBnw6wgxJHGsOG7o2MgY2jhu4kgcmEsIGtow7RuZyBjw7MgZ8OsIMSRxrDhu6NjIHRow6ptIHbDoG8uXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDE1CisjOiBidWlsdGluL2FkZC5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAiQ8OzIGzhur0gYuG6oW4gbXXhu5FuIGzDoCDigJxnaXQgYWRkIC7igJ0gcGjhuqNpIGtow7RuZz9cbiIKIAotIzogYnVpbHRpbi9hZGQuYzo0MjEgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzo2NyBidWlsdGluL2NsZWFuLmM6MjA0Ci0jOiBidWlsdGluL2NvbW1pdC5jOjI5MyBidWlsdGluL212LmM6ODIgYnVpbHRpbi9ybS5jOjIzNQorIzogYnVpbHRpbi9hZGQuYzo1MzMgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNjEgYnVpbHRpbi9jbGVhbi5jOjkxOQorIzogYnVpbHRpbi9jb21taXQuYzozMTIgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyOTcKIG1zZ2lkICJpbmRleCBmaWxlIGNvcnJ1cHQiCiBtc2dzdHIgInThuq1wIHRpbiBnaGkgYuG6o25nIG3hu6VjIGzhu6VjIGLhu4sgaOG7j25nIgogCi0jOiBidWlsdGluL2FkZC5jOjQ4MSBidWlsdGluL2FwcGx5LmM6NDUwNSBidWlsdGluL212LmM6MjI5IGJ1aWx0aW4vcm0uYzozNzAKKyM6IGJ1aWx0aW4vYWRkLmM6NjA1IGJ1aWx0aW4vYXBwbHkuYzo0NTA2IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjQzMgogbXNnaWQgIlVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSB04bqtcCB0aW4gbMawdSBi4bqjbmcgbeG7pWMgbOG7pWMgbeG7m2kiCiAKQEAgLTE5MzAsMjk4ICsyMTQyLDI5OCBAQAogbXNnaWQgImNhbm5vdCBjaGVja291dCAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIFwiY2hlY2tvdXRcIiAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMTQwIGJ1aWx0aW4vYXBwbHkuYzozMTQ5IGJ1aWx0aW4vYXBwbHkuYzozMTk0CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWQgb2YgJXMgZmFpbGVkIgogbXNnc3RyICLEkeG7jWMgJXMgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTczIGJ1aWx0aW4vYXBwbHkuYzozMzk1CisjOiBidWlsdGluL2FwcGx5LmM6MzE3NCBidWlsdGluL2FwcGx5LmM6MzM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICVzIGhhcyBiZWVuIHJlbmFtZWQvZGVsZXRlZCIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuICVzIMSRw6MgYuG7iyB4w7NhL8SR4buVaSB0w6puIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1NCBidWlsdGluL2FwcGx5LmM6MzQwOQorIzogYnVpbHRpbi9hcHBseS5jOjMyNTUgYnVpbHRpbi9hcHBseS5jOjM0MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4IgogbXNnc3RyICIlczoga2jDtG5nIHThu5NuIHThuqFpIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMyNTggYnVpbHRpbi9hcHBseS5jOjM0MDEgYnVpbHRpbi9hcHBseS5jOjM0MjMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMjU5IGJ1aWx0aW4vYXBwbHkuYzozNDAyIGJ1aWx0aW4vYXBwbHkuYzozNDI0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyIKIG1zZ3N0ciAiJXM6ICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI2MyBidWlsdGluL2FwcGx5LmM6MzQxNworIzogYnVpbHRpbi9hcHBseS5jOjMyNjQgYnVpbHRpbi9hcHBseS5jOjM0MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IG1hdGNoIGluZGV4IgogbXNnc3RyICIlczoga2jDtG5nIGto4bubcCB0cm9uZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY2CiBtc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKIG1zZ3N0ciAibG/huqFpIGLhu48gbWnhur9uZyB2w6EgxJHhu4MgbOG6oWkgbuG7mWkgZHVuZyB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM0CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNQogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogd3JvbmcgdHlwZSIKIG1zZ3N0ciAiJXM6IHNhaSBraeG7g3UiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNDM2CisjOiBidWlsdGluL2FwcGx5LmM6MzQzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBoYXMgdHlwZSAlbywgZXhwZWN0ZWQgJW8iCiBtc2dzdHIgIiVzIGPDsyBraeG7g3UgJW8sIG1vbmcgY2jhu50gJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTM3CisjOiBidWlsdGluL2FwcGx5LmM6MzUzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gaW5kZXgiCiBtc2dzdHIgIiVzOiDEkcOjIGPDsyB04burIHRyxrDhu5tjIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NDAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBhbHJlYWR5IGV4aXN0cyBpbiB3b3JraW5nIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXM6IMSRw6Mgc+G6tW4gY8OzIHRyb25nIHRoxrAgbeG7pWMgxJFhbmcgbMOgbSB2aeG7h2MiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTYwCisjOiBidWlsdGluL2FwcGx5LmM6MzU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXcgbW9kZSAoJW8pIG9mICVzIGRvZXMgbm90IG1hdGNoIG9sZCBtb2RlICglbykiCiBtc2dzdHIgImNo4bq/IMSR4buZIG3hu5tpICglbykgY+G7p2EgJXMga2jDtG5nIGto4bubcCB24bubaSBjaOG6vyDEkeG7mSBjxakgKCVvKSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKIG1zZ3N0ciAiY2jhur8gxJHhu5kgbeG7m2kgKCVvKSBj4bunYSAlcyBraMO0bmcga2jhu5twIHbhu5tpIGNo4bq/IMSR4buZIGPFqSAoJW8pIGPhu6dhICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU3MworIzogYnVpbHRpbi9hcHBseS5jOjM1NzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICIlczogbWnhur9uZyB2w6Ega2jDtG5nIMSRxrDhu6NjIMOhcCBk4bulbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjOiBidWlsdGluL2FwcGx5LmM6MzU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAixJBhbmcga2nhu4NtIHRyYSBtaeG6v25nIHbDoSAlcy4uLiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM2NzkgYnVpbHRpbi9jaGVja291dC5jOjIxNSBidWlsdGluL3Jlc2V0LmM6MTI0CisjOiBidWlsdGluL2FwcGx5LmM6MzY4MCBidWlsdGluL2NoZWNrb3V0LmM6MjE2IGJ1aWx0aW4vcmVzZXQuYzoxMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAibWFrZV9jYWNoZV9lbnRyeSBmYWlsZWQgZm9yIHBhdGggJyVzJyIKIG1zZ3N0ciAibWFrZV9jYWNoZV9lbnRyeSBn4bq3cCBs4buXaSDEkeG7kWkgduG7m2kgxJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzgyMgorIzogYnVpbHRpbi9hcHBseS5jOjM4MjMKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlbW92ZSAlcyBmcm9tIGluZGV4IgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ+G7oSBi4buPICVzIHThu6sgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODUwCisjOiBidWlsdGluL2FwcGx5LmM6Mzg1MQogIywgYy1mb3JtYXQKLW1zZ2lkICJjb3JydXB0IHBhdGNoIGZvciBzdWJwcm9qZWN0ICVzIgotbXNnc3RyICJtaeG6v25nIHbDoSBzYWkgaOG7j25nIGNobyBk4buxIMOhbiBjb24gKHN1YnByb2plY3QpICVzIgorbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1Ym1vZHVsZSAlcyIKK21zZ3N0ciAibWnhur9uZyB2w6Egc2FpIGjhu49uZyBjaG8gbcO0LcSRdW4tY29uIChzdWJwcm9qZWN0KSAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGF0IG5ld2x5IGNyZWF0ZWQgZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbOG6pXkgdHLhuqFuZyB0aMOhaSB24buBIHThuq1wIHRpbiAlcyBt4bubaSBoxqFuIMSRw6MgxJHGsOG7o2MgdOG6oW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODU5CisjOiBidWlsdGluL2FwcGx5LmM6Mzg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIGJhY2tpbmcgc3RvcmUgZm9yIG5ld2x5IGNyZWF0ZWQgZmlsZSAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHThuqFvIOKAnGJhY2tpbmcgc3RvcmXigJ0gY2hvIHThuq1wIHRpbiDEkcaw4bujYyB04bqhbyBt4bubaSBoxqFuICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg2MiBidWlsdGluL2FwcGx5LmM6Mzk3MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NjMgYnVpbHRpbi9hcHBseS5jOjM5NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFkZCBjYWNoZSBlbnRyeSBmb3IgJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0aMOqbSBt4bulYyBuaOG7myB04bqhbSBjaG8gJXMiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODk1CisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKIG1zZ3N0ciAixJFhbmcgxJHDs25nIHThuq1wIHRpbiDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM5NDQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBmaWxlICclcycgbW9kZSAlbyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSB2w6BvIHThuq1wIHRpbiDigJwlc+KAnSBjaOG6vyDEkeG7mSAobW9kZSkgJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMxCisjOiBidWlsdGluL2FwcGx5LmM6NDAzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBcHBsaWVkIHBhdGNoICVzIGNsZWFubHkuIgogbXNnc3RyICLEkMOjIMOhcCBk4bulbmcgbWnhur9uZyB2w6AgJXMgbeG7mXQgY8OhY2ggc+G6oWNoIHPhur0uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDAzOQorIzogYnVpbHRpbi9hcHBseS5jOjQwNDAKIG1zZ2lkICJpbnRlcm5hbCBlcnJvciIKIG1zZ3N0ciAibOG7l2kgbuG7mWkgYuG7mSIKIAogIy4gU2F5IHRoaXMgZXZlbiB3aXRob3V0IC0tdmVyYm9zZQotIzogYnVpbHRpbi9hcHBseS5jOjQwNDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdC4uLiIKIG1zZ2lkX3BsdXJhbCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0cy4uLiIKIG1zZ3N0clswXSAixJBhbmcgw6FwIGThu6VuZyBtaeG6v25nIHbDoSAlJXMgduG7m2kgJWQgbOG6p24gdOG7qyBjaOG7kWkuLi4iCiBtc2dzdHJbMV0gIsSQYW5nIMOhcCBk4bulbmcgbWnhur9uZyB2w6EgJSVzIHbhu5tpICVkIGzhuqduIHThu6sgY2jhu5FpLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA1MgorIzogYnVpbHRpbi9hcHBseS5jOjQwNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJ1bmNhdGluZyAucmVqIGZpbGVuYW1lIHRvICUuKnMucmVqIgogbXNnc3RyICLEkWFuZyBj4bqvdCBj4buldCB0w6puIHThuq1wIHRpbiAucmVqIHRow6BuaCAlLipzLnJlaiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCiBtc2dzdHIgIkto4buRaSBuaOG7myAjJWQgxJHGsOG7o2Mgw6FwIGThu6VuZyBn4buNbiBnw6BuZy4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc2CisjOiBidWlsdGluL2FwcGx5LmM6NDA3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWplY3RlZCBodW5rICMlZC4iCiBtc2dzdHIgImh1bmsgIyVkIGLhu4sgdOG7qyBjaOG7kWkuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIyNgorIzogYnVpbHRpbi9hcHBseS5jOjQyMjcKIG1zZ2lkICJ1bnJlY29nbml6ZWQgaW5wdXQiCiBtc2dzdHIgImtow7RuZyB0aOG7q2Egbmjhuq1uIMSR4bqndSB2w6BvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDIzNworIzogYnVpbHRpbi9hcHBseS5jOjQyMzgKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCBpbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTYgYnVpbHRpbi9hcHBseS5jOjQzNTkgYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MwogbXNnaWQgInBhdGgiCiBtc2dzdHIgIsSRxrDhu51uZy1k4bqrbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU4CiBtc2dpZCAiZG9uJ3QgYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAia2jDtG5nIMOhcCBk4bulbmcgY8OhYyB0aGF5IMSR4buVaSBraOG7m3AgduG7m2kgxJHGsOG7nW5nIGThuqtuIMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjEKIG1zZ2lkICJhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICLDoXAgZOG7pW5nIGPDoWMgdGhheSDEkeG7lWkga2jhu5twIHbhu5tpIMSRxrDhu51uZyBk4bqrbiDEkcOjIGNobyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNjIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYzCiBtc2dpZCAibnVtIgogbXNnc3RyICJz4buRIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNjQKIG1zZ2lkICJyZW1vdmUgPG51bT4gbGVhZGluZyBzbGFzaGVzIGZyb20gdHJhZGl0aW9uYWwgZGlmZiBwYXRocyIKIG1zZ3N0ciAiZ+G7oSBi4buPIDxz4buRPiBwaOG6p24gZOG6q24gxJHhuqd1IChzbGFzaGUpIHThu6sgxJHGsOG7nW5nIGThuqtuIGRpZmYgY+G7lSDEkWnhu4NuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjcKIG1zZ2lkICJpZ25vcmUgYWRkaXRpb25zIG1hZGUgYnkgdGhlIHBhdGNoIgogbXNnc3RyICJs4budIMSRaSBwaOG6p24gcGjhu6UgdGjDqm0gdOG6oW8gcmEgYuG7n2kgbWnhur9uZyB2w6EiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY4CisjOiBidWlsdGluL2FwcGx5LmM6NDM2OQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAiIgogInRoYXkgdsOsIMOhcCBk4bulbmcgbeG7mXQgbWnhur9uZyB2w6EsIGvhur90IHh14bqldCBr4bq/dCBxdeG6oyB04burIGzhu4duaCBkaWZmc3RhdCBjaG8gxJHhuqd1IHJhIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3MgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzMKIG1zZ2lkICJzaG93IG51bWJlciBvZiBhZGRlZCBhbmQgZGVsZXRlZCBsaW5lcyBpbiBkZWNpbWFsIG5vdGF0aW9uIgogbXNnc3RyICIiCiAiaGnhu4NuIHRo4buLIHPhu5EgbMaw4bujbmcgY8OhYyBkw7JuZyDEkcaw4bujYyB0aMOqbSB2w6BvIHbDoCB4w7NhIMSRaSB0aGVvIGvDvSBoaeG7h3UgdGjhuq1wIHBow6JuIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NAorIzogYnVpbHRpbi9hcHBseS5jOjQzNzUKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgb3V0cHV0IGEgc3VtbWFyeSBmb3IgdGhlIGlucHV0IgogbXNnc3RyICJ0aGF5IHbDrCDDoXAgZOG7pW5nIG3hu5l0IG1p4bq/bmcgdsOhLCBr4bq/dCB4deG6pXQga+G6v3QgcXXhuqMgY2hvIMSR4bqndSB2w6BvIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzcKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIgogbXNnc3RyICJ0aGF5IHbDrCDDoXAgZOG7pW5nIG1p4bq/bmcgdsOhLCBow6N5IHhlbSB4ZW0gbWnhur9uZyB2w6EgY8OzIHRow61jaCBo4bujcCBraMO0bmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4CisjOiBidWlsdGluL2FwcGx5LmM6NDM3OQogbXNnaWQgIm1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCBpbmRleCIKIG1zZ3N0ciAiaMOjeSBjaOG6r2MgY2jhuq9uIGzDoCBtaeG6v25nIHbDoSB0aMOtY2ggaOG7o3AgduG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIGhp4buHbiBow6BuaCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgxCiBtc2dpZCAiYXBwbHkgYSBwYXRjaCB3aXRob3V0IHRvdWNoaW5nIHRoZSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIsOhcCBk4bulbmcgbeG7mXQgbWnhur9uZyB2w6EgbcOgIGtow7RuZyDEkeG7mW5nIGNo4bqhbSDEkeG6v24gY8OieSBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzgzCiBtc2dpZCAiYWxzbyBhcHBseSB0aGUgcGF0Y2ggKHVzZSB3aXRoIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjaykiCiBtc2dzdHIgIiIKICLEkeG7k25nIHRo4budaSDDoXAgZOG7pW5nIG1p4bq/bmcgdsOhIChkw7luZyB24bubaSB0w7l5IGNo4buNbiAtLXN0YXQvLS1zdW1tYXJ5Ly0tY2hlY2spIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4NAorIzogYnVpbHRpbi9hcHBseS5jOjQzODUKIG1zZ2lkICJhdHRlbXB0IHRocmVlLXdheSBtZXJnZSBpZiBhIHBhdGNoIGRvZXMgbm90IGFwcGx5IgogbXNnc3RyICJ0aOG7rSBow7JhIHRy4buZbiBraeG7g3UgdGhyZWUtd2F5IG7hur91IHZp4buHYyB2w6Ega2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gxJHGsOG7o2MiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg2CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NwogbXNnaWQgImJ1aWxkIGEgdGVtcG9yYXJ5IGluZGV4IGJhc2VkIG9uIGVtYmVkZGVkIGluZGV4IGluZm9ybWF0aW9uIgogbXNnc3RyICIiCiAieMOieSBk4buxbmcgYuG6o25nIG3hu6VjIGzhu6VjIHThuqFtIHRo4budaSB0csOqbiBjxqEgc+G7nyB0aMO0bmcgdGluIGLhuqNuZyBt4bulYyBs4bulYyDEkcaw4bujYyBuaMO6bmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg4IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxOTcgYnVpbHRpbi9scy1maWxlcy5jOjQ2MworIzogYnVpbHRpbi9hcHBseS5jOjQzODkgYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYyCiBtc2dpZCAicGF0aHMgYXJlIHNlcGFyYXRlZCB3aXRoIE5VTCBjaGFyYWN0ZXIiCiBtc2dzdHIgImPDoWMgxJHGsOG7nW5nIGThuqtuIGLhu4sgbmfEg24gY8OhY2ggYuG7n2kga8O9IHThu7EgTlVMTCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCiBtc2dpZCAiZW5zdXJlIGF0IGxlYXN0IDxuPiBsaW5lcyBvZiBjb250ZXh0IG1hdGNoIgogbXNnc3RyICLEkeG6o20gYuG6o28gcuG6sW5nIGPDsyDDrXQgbmjhuqV0IDxuPiBkw7JuZyBu4buZaSBkdW5nIGto4bubcCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzOTIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkzCiBtc2dpZCAiYWN0aW9uIgogbXNnc3RyICJow6BuaCDEkeG7mW5nIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MworIzogYnVpbHRpbi9hcHBseS5jOjQzOTQKIG1zZ2lkICJkZXRlY3QgbmV3IG9yIG1vZGlmaWVkIGxpbmVzIHRoYXQgaGF2ZSB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0ciAidMOsbSB0aOG6pXkgbeG7mXQgZMOybmcgbeG7m2kgaG/hurdjIGLhu4sgc+G7rWEgxJHhu5VpIG3DoCBuw7MgY8OzIGzhu5dpIGRvIGtob+G6o25nIHRy4bqvbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzk2IGJ1aWx0aW4vYXBwbHkuYzo0Mzk5CisjOiBidWlsdGluL2FwcGx5LmM6NDM5NyBidWlsdGluL2FwcGx5LmM6NDQwMAogbXNnaWQgImlnbm9yZSBjaGFuZ2VzIGluIHdoaXRlc3BhY2Ugd2hlbiBmaW5kaW5nIGNvbnRleHQiCiBtc2dzdHIgImzhu50gxJFpIHPhu7EgdGhheSDEkeG7lWkgZG8ga2hv4bqjbmcgdHLhuq9uZyBraGkgcXXDqXQgbuG7mWkgZHVuZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAzCiBtc2dpZCAiYXBwbHkgdGhlIHBhdGNoIGluIHJldmVyc2UiCiBtc2dzdHIgIsOhcCBk4bulbmcgbWnhur9uZyB2w6EgdGhlbyBjaGnhu4F1IG5nxrDhu6NjIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDUKIG1zZ2lkICJkb24ndCBleHBlY3QgYXQgbGVhc3Qgb25lIGxpbmUgb2YgY29udGV4dCIKIG1zZ3N0ciAixJHhu6tuZyBoeSB24buNbmcgY8OzIMOtdCBuaOG6pXQgbeG7mXQgZMOybmcgbuG7mWkgZHVuZyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MDYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA3CiBtc2dpZCAibGVhdmUgdGhlIHJlamVjdGVkIGh1bmtzIGluIGNvcnJlc3BvbmRpbmcgKi5yZWogZmlsZXMiCiBtc2dzdHIgIsSR4buDIGzhuqFpIGto4buRaSBk4buvIGxp4buHdSBi4buLIHThu6sgY2jhu5FpIHRyb25nIGPDoWMgdOG6rXAgdGluICoucmVqIHTGsMahbmcg4bupbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA4CisjOiBidWlsdGluL2FwcGx5LmM6NDQwOQogbXNnaWQgImFsbG93IG92ZXJsYXBwaW5nIGh1bmtzIgogbXNnc3RyICJjaG8gcGjDqXAgY2jhu5NuZyBraOG7kWkgbmjhu5siCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDExCisjOiBidWlsdGluL2FwcGx5LmM6NDQxMgogbXNnaWQgInRvbGVyYXRlIGluY29ycmVjdGx5IGRldGVjdGVkIG1pc3NpbmcgbmV3LWxpbmUgYXQgdGhlIGVuZCBvZiBmaWxlIgogbXNnc3RyICIiCiAixJHDoyBkw7IgdMOsbSB0aOG6pXkgZHVuZyBzYWkga2jDtG5nIGNow61uaCB4w6FjIHRoaeG6v3UgZMOybmcgbeG7m2kgdOG6oWkgY3Xhu5FpIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE1CiBtc2dpZCAiZG8gbm90IHRydXN0IHRoZSBsaW5lIGNvdW50cyBpbiB0aGUgaHVuayBoZWFkZXJzIgogbXNnc3RyICJraMO0bmcgdGluIHPhu5EgbMaw4bujbmcgZMOybmcgdHJvbmcgcGjhuqduIMSR4bqndSBraOG7kWkgZOG7ryBsaeG7h3UiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE2CisjOiBidWlsdGluL2FwcGx5LmM6NDQxNwogbXNnaWQgInJvb3QiCiBtc2dzdHIgInJvb3QiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CisjOiBidWlsdGluL2FwcGx5LmM6NDQxOAogbXNnaWQgInByZXBlbmQgPHJvb3Q+IHRvIGFsbCBmaWxlbmFtZXMiCiBtc2dzdHIgInRyZW8gdGjDqm0gPHJvb3Q+IHbDoG8gdOG6pXQgY+G6oyBjw6FjIHTDqm4gdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQzOQorIzogYnVpbHRpbi9hcHBseS5jOjQ0NDAKIG1zZ2lkICItLTN3YXkgb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0tM3dheSDhu58gbmdvw6BpIG3hu5l0IGtobyBjaOG7qWEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ3CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0OAogbXNnaWQgIi0taW5kZXggb3V0c2lkZSBhIHJlcG9zaXRvcnkiCiBtc2dzdHIgIi0taW5kZXgg4bufIG5nb8OgaSBt4buZdCBraG8gY2jhu6lhIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ1MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0NTEKIG1zZ2lkICItLWNhY2hlZCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1jYWNoZWQg4bufIG5nb8OgaSBt4buZdCBraG8gY2jhu6lhIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ2NgorIzogYnVpbHRpbi9hcHBseS5jOjQ0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2FuJ3Qgb3BlbiBwYXRjaCAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyBtaeG6v25nIHbDoSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODAKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9yIgogbXNnaWRfcGx1cmFsICJzcXVlbGNoZWQgJWQgd2hpdGVzcGFjZSBlcnJvcnMiCiBtc2dzdHJbMF0gIsSRw6MgY2jhuqVtIGThu6l0ICVkIGzhu5dpIGtob+G6o25nIHRy4bqvbmciCiBtc2dzdHJbMV0gIsSRw6MgY2jhuqVtIGThu6l0ICVkIGzhu5dpIGtob+G6o25nIHRy4bqvbmciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg2IGJ1aWx0aW4vYXBwbHkuYzo0NDk2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ4NyBidWlsdGluL2FwcGx5LmM6NDQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICIlZCBsaW5lIGFkZHMgd2hpdGVzcGFjZSBlcnJvcnMuIgogbXNnaWRfcGx1cmFsICIlZCBsaW5lcyBhZGQgd2hpdGVzcGFjZSBlcnJvcnMuIgpAQCAtMjI3NywxMDUgKzI0ODksMTA1IEBACiAiY+G6rXAgbmjhuq10IEJJU0VDVF9IRUFEIHRoYXkgdsOsIGzhuqV5IHJhIChjaGVja2luZyBvdXQpIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgIgogImhp4buHbiBow6BuaCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjI1CisjOiBidWlsdGluL2JsYW1lLmM6MjYKIG1zZ2lkICJnaXQgYmxhbWUgW29wdGlvbnNdIFtyZXYtb3B0c10gW3Jldl0gWy0tXSBmaWxlIgogbXNnc3RyICJnaXQgYmxhbWUgW2PDoWMtdMO5eS1jaOG7jW5dIFtyZXYtb3B0c10gW3Jldl0gWy0tXSB04bqtcC10aW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzozMCBidWlsdGluL3Nob3J0bG9nLmM6MTUKKyM6IGJ1aWx0aW4vYmxhbWUuYzozMQogbXNnaWQgIltyZXYtb3B0c10gYXJlIGRvY3VtZW50ZWQgaW4gZ2l0LXJldi1saXN0KDEpIgogbXNnc3RyICJbcmV2LW9wdHNdIMSRxrDhu6NjIG3DtCB04bqjIHRyb25nIGdpdC1yZXYtbGlzdCgxKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc2CiBtc2dpZCAiU2hvdyBibGFtZSBlbnRyaWVzIGFzIHdlIGZpbmQgdGhlbSwgaW5jcmVtZW50YWxseSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGPDoWMgbeG7pWMg4oCcYmxhbWXigJ0gbmjGsCBsw6AgY2jDum5nIHRhIHRo4bqleSBjaMO6bmcsIHTEg25nIGThuqduIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzcKIG1zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICIiCiAiSGnhu4NuIHRo4buLIFNIQS0xIHRy4bqvbmcgY2hvIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyBiacOqbiBnaeG7m2kgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzUyCisjOiBidWlsdGluL2JsYW1lLmM6MjI3OAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiS2jDtG5nIGNvaSBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gZ+G7kWMgbMOgIGdp4bubaSBo4bqhbiAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjc5CiBtc2dpZCAiU2hvdyB3b3JrIGNvc3Qgc3RhdGlzdGljcyIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHRo4buRbmcga8OqIGPDtG5nIHPhu6ljIGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODAKIG1zZ2lkICJTaG93IG91dHB1dCBzY29yZSBmb3IgYmxhbWUgZW50cmllcyIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGvhur90IHh14bqldCDEkWnhu4NtIHPhu5EgY8OzIGPDoWMgbeG7pWMgdGluIOKAnGJsYW1l4oCdIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIGfhu5FjIChN4bq3YyDEkeG7i25oOiBhdXRvKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgyCiBtc2dpZCAiU2hvdyBvcmlnaW5hbCBsaW5lbnVtYmVyIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJIaeG7g24gdGjhu4sgc+G7kSBkw7JuZyBn4buRYyAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIOG7nyDEkeG7i25oIGThuqFuZyDEkcOjIHRoaeG6v3Qga+G6vyBjaG8gc+G7sSB0acOqdSBkw7luZyBi4bqxbmcgbcOheSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTgKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg0CiBtc2dpZCAiU2hvdyBwb3JjZWxhaW4gZm9ybWF0IHdpdGggcGVyLWxpbmUgY29tbWl0IGluZm9ybWF0aW9uIgogbXNnc3RyICJIaeG7g24gdGjhu4sgxJHhu4tuaCBk4bqhbmcg4oCccG9yY2VsYWlu4oCdIHbhu5tpIHRow7RuZyB0aW4gY2h1eeG7g24gZ2lhbyBt4buXaSBkw7JuZyIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiRMO5bmcgY8O5bmcgY2jhur8gxJHhu5kgeHXhuqV0IHJhIHbDs2lnaXQtYW5ub3RhdGUgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYwCisjOiBidWlsdGluL2JsYW1lLmM6MjI4NgogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAiSGnhu4NuIHRo4buLIGThuqV1IHbhur90IHRo4budaSBnaWFuIGThuqFuZyB0aMO0IChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODcKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIkhp4buDbiB0aOG7iyBTSEExIGPhu6dhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgZOG6oW5nIGTDoGkgKE3hurdjIMSR4buLbmg6IG9mZikiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4OAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIktow7RuZyBoaeG7g24gdGjhu4sgdMOqbiB0w6FjIGdp4bqjIHbDoCBk4bqldSB24bq/dCB0aOG7nWkgZ2lhbiAoTeG6t2MgxJHhu4tuaDogb2ZmKSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICJIaeG7g24gdGjhu4sgdGjGsCDEkWnhu4duIHThu60gY+G7p2EgdMOhYyBnaeG6oyB0aGF5IHbDrCB0w6puIChN4bq3YyDEkeG7i25oOiBvZmYpIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTAKIG1zZ2lkICJJZ25vcmUgd2hpdGVzcGFjZSBkaWZmZXJlbmNlcyIKIG1zZ3N0ciAiQuG7jyBxdWEgY8OhYyBraMOhYyBiaeG7h3QgZG8ga2hv4bqjbmcgdHLhuq9uZyBnw6J5IHJhIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTEKIG1zZ2lkICJTcGVuZCBleHRyYSBjeWNsZXMgdG8gZmluZCBiZXR0ZXIgbWF0Y2giCiBtc2dzdHIgIlRpw6p1IHRo4bulIHRow6ptIG7Eg25nIHTDoGkgbmd1ecOqbiBtw6F5IG3Ds2MgxJHhu4MgdMOsbSBraeG6v20gdOG7kXQgaMahbiBu4buvYSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjYKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkyCiBtc2dpZCAiVXNlIHJldmlzaW9ucyBmcm9tIDxmaWxlPiBpbnN0ZWFkIG9mIGNhbGxpbmcgZ2l0LXJldi1saXN0IgogbXNnc3RyICIiCiAiU+G7rSBk4bulbmcgxJFp4buDbSB4w6l0IGR1eeG7h3QgKHJldmlzaW9uKSB04burIDx04bqtcCB0aW4+IHRoYXkgdsOsIGfhu41pIOKAnGdpdC1yZXYtbGlzdOKAnSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAiU+G7rSBk4bulbmcgbuG7mWkgZHVuZyBj4bunYSA8dOG6rXAgdGluPiBuaMawIGzDoCDhuqNuaCBjdeG7kWkgY8O5bmciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NCBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgInNjb3JlIgogbXNnc3RyICLEkWnhu4NtIHPhu5EiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NAogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIlTDrG0gY8OhYyBi4bqjbiBzYW8gY2jDqXAgZMOybmcgdHJvbmcgdsOgIG5nYW5nIHF1YSB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgIkZpbmQgbGluZSBtb3ZlbWVudHMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIlTDrG0gY8OhYyBkaSBjaHV54buDbiBkw7JuZyB0cm9uZyB2w6AgbmdhbmcgcXVhIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAibixtIgogbXNnc3RyICJuLG0iCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzcwCisjOiBidWlsdGluL2JsYW1lLmM6MjI5NgogbXNnaWQgIlByb2Nlc3Mgb25seSBsaW5lIHJhbmdlIG4sbSwgY291bnRpbmcgZnJvbSAxIgogbXNnc3RyICJY4butIGzDvSBjaOG7iSBkw7JuZyB2w7luZyBuLG0sIHTDrW5oIHThu6sgMSIKIApAQCAtMjM5NSw3ICsyNjA3LDcgQEAKIG1zZ2lkICJnaXQgYnJhbmNoIFtvcHRpb25zXSAoLW0gfCAtTSkgWzxvbGRicmFuY2g+XSA8bmV3YnJhbmNoPiIKIG1zZ3N0ciAiZ2l0IGJyYW5jaCBbY8OhYy10w7l5LWNo4buNbl0gKC1tIHwgLU0pIFs8bmjDoW5oLWPFqT5dIDxuaMOhbmgtbeG7m2k+IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjE0NgorIzogYnVpbHRpbi9icmFuY2guYzoxNTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImRlbGV0aW5nIGJyYW5jaCAnJXMnIHRoYXQgaGFzIGJlZW4gbWVyZ2VkIHRvXG4iCkBAIC0yNDA0LDcgKzI2MTYsNyBAQAogIsSRYW5nIHjDs2EgbmjDoW5oIOKAnCVz4oCdIG3DoCBuw7MgbOG6oWkgxJHDoyDEkcaw4bujYyBow7JhIHRy4buZbiB2w6BvXG4iCiAiICAgICAgICAg4oCcJXPigJ0sIG5oxrBuZyB24bqrbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiB2w6BvIEhFQUQuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjE1MAorIzogYnVpbHRpbi9icmFuY2guYzoxNTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCBkZWxldGluZyBicmFuY2ggJyVzJyB0aGF0IGlzIG5vdCB5ZXQgbWVyZ2VkIHRvXG4iCkBAIC0yNDEzLDEyICsyNjI1LDEyIEBACiAia2jDtG5nIHjDs2EgbmjDoW5oIOKAnCVz4oCdIGPDoWkgbcOgIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luIHbDoG9cbiIKICIgICAgICAgICDigJwlc+KAnSwgY2hvIGTDuSBsw6AgbsOzIMSRw6MgxJHGsOG7o2MgaMOyYSB0cuG7mW4gdsOgbyBIRUFELiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHTDrG0ga2nhur9tIMSR4buRaSB0xrDhu6NuZyBjaHV54buDbiBnaWFvIChjb21taXQpIGNobyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgYnJhbmNoICclcycgaXMgbm90IGZ1bGx5IG1lcmdlZC5cbiIKQEAgLTI0MjcsMjkwICsyNjM5LDI5MCBAQAogIk5ow6FuaCDigJwlc+KAnSBraMO0bmcgxJHGsOG7o2MgdHLhu5luIG3hu5l0IGPDoWNoIMSR4bqneSDEkeG7py5cbiIKICJO4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4geMOzYSBuw7MsIHRow6wgY2jhuqF5IGzhu4duaCDigJxnaXQgYnJhbmNoIC1EICVz4oCdLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTg1CiBtc2dpZCAiVXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAiQ+G6rXAgbmjhuq10IHThuq1wIHRpbiBj4bqldSBow6xuaCBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMDkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjEzCiBtc2dpZCAiY2Fubm90IHVzZSAtYSB3aXRoIC1kIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZMO5bmcgdMO5eSBjaOG7jW4gLWEgduG7m2kgLWQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjE1CisjOiBidWlsdGluL2JyYW5jaC5jOjIxOQogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgSEVBRCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHTDrG0ga2nhur9tIMSR4buRaSB0xrDhu6NuZyBjaHV54buDbiBnaWFvIChjb21taXQpIGNobyBIRUFEIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIyMworIzogYnVpbHRpbi9icmFuY2guYzoyMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRlbGV0ZSB0aGUgYnJhbmNoICclcycgd2hpY2ggeW91IGFyZSBjdXJyZW50bHkgb24uIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgeMOzYSBuaMOhbmgg4oCcJXPigJ0gY8OhaSBtw6AgYuG6oW4gaGnhu4duIG5heSDEkWFuZyDhu58uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIzNgorIzogYnVpbHRpbi9icmFuY2guYzoyNDAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVtb3RlIGJyYW5jaCAnJXMnIG5vdCBmb3VuZC4iCiBtc2dzdHIgImtow7RuZyB0w6xtIHRo4bqleSBuaMOhbmggbcOheSBjaOG7pyDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjM3CisjOiBidWlsdGluL2JyYW5jaC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBub3QgZm91bmQuIgogbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgbmjDoW5oIOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNTEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIHJlbW90ZSBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSRYW5nIHjDs2EgbmjDoW5oIHRyw6puIG3DoXkgY2jhu6cg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUyCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciBkZWxldGluZyBicmFuY2ggJyVzJyIKIG1zZ3N0ciAiTOG7l2kga2hpIHhvw6EgYuG7jyBuaMOhbmgg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU5CisjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCiBtc2dzdHIgIk5ow6FuaCB0csOqbiBtw6F5IGNo4bunIFwiJXNcIiDEkcOjIGLhu4sgeMOzYSAodOG7q25nIGzDoCAlcykuXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjYwCisjOiBidWlsdGluL2JyYW5jaC5jOjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIGJyYW5jaCAlcyAod2FzICVzKS5cbiIKIG1zZ3N0ciAiTmjDoW5oIOKAnCVz4oCdIMSRw6MgYuG7iyB4w7NhICh04burbmcgbMOgICVzKVxuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjM2MgorIzogYnVpbHRpbi9icmFuY2guYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgcG9pbnQgYXQgYSBjb21taXQiCiBtc2dzdHIgIm5ow6FuaCDigJwlc+KAnSBraMO0bmcgY2jhu4kgxJHhur9uIG3hu5l0IGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbsOgbyBj4bqjIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQzNAorIzogYnVpbHRpbi9icmFuY2guYzo0NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBiZWhpbmQgJWRdIgogbXNnc3RyICJbJXM6IMSR4bqxbmcgc2F1ICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0MzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIltiZWhpbmQgJWRdIgogbXNnc3RyICJbxJHhurFuZyBzYXUgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0MAorIzogYnVpbHRpbi9icmFuY2guYzo0NTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiWyVzOiBhaGVhZCAlZF0iCiBtc2dzdHIgIlslczogcGjDrWEgdHLGsOG7m2MgJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0MgorIzogYnVpbHRpbi9icmFuY2guYzo0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2FoZWFkICVkXSIKIG1zZ3N0ciAiW3Bow61hIHRyxrDhu5tjICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWQsIGJlaGluZCAlZF0iCiBtc2dzdHIgIlslczogdHLGsOG7m2MgJWQsIHNhdSAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDQ4CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJbYWhlYWQgJWQsIGJlaGluZCAlZF0iCiBtc2dzdHIgIlt0csaw4bubYyAlZCwgc2F1ICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDkwCiBtc2dpZCAiICoqKiogaW52YWxpZCByZWYgKioqKiIKIG1zZ3N0ciAiICoqKiogdGhhbSBjaGnhur91IHNhaSAqKioqIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2MgorIzogYnVpbHRpbi9icmFuY2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiKG5vIGJyYW5jaCwgcmViYXNpbmcgJXMpIgogbXNnc3RyICIoa2jDtG5nIG5ow6FuaCwgxJFhbmcgcmViYXNlICVzKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1NjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAiKGtow7RuZyBuaMOhbmgsIGJpc2VjdCDEkcaw4bujYyBi4bqvdCDEkeG6p3UgdOG6oWkgJXMpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2OAorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgogbXNnc3RyICIoxJHGsOG7o2MgdMOhY2ggcuG7nWkgdOG7qyAlcykiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTcxCisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogbXNnaWQgIihubyBicmFuY2gpIgogbXNnc3RyICIoa2jDtG5nIG5ow6FuaCkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjE3CisjOiBidWlsdGluL2JyYW5jaC5jOjYzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIOKAnCVz4oCdIGtow7RuZyBjaOG7iSDEkeG6v24gbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6BvIGPhuqMiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjQ5CisjOiBidWlsdGluL2JyYW5jaC5jOjY2OQogbXNnaWQgInNvbWUgcmVmcyBjb3VsZCBub3QgYmUgcmVhZCIKIG1zZ3N0ciAibeG7mXQgc+G7kSB0aGFtIGNoaeG6v3UgxJHDoyBraMO0bmcgdGjhu4MgxJHhu41jIMSRxrDhu6NjIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY2MgorIzogYnVpbHRpbi9icmFuY2guYzo2ODIKIG1zZ2lkICJjYW5ub3QgcmVuYW1lIHRoZSBjdXJyZW50IGJyYW5jaCB3aGlsZSBub3Qgb24gYW55LiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buVaSB0w6puIG5ow6FuaCBoaeG7h24gaMOgbmggdHJvbmcga2hpIG7DsyBjaOG6s25nIOG7nyDEkcOidSBj4bqjLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgYnJhbmNoIG5hbWU6ICclcyciCiBtc2dzdHIgIlNhaSB0w6puIG5ow6FuaDog4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njg3CisjOiBidWlsdGluL2JyYW5jaC5jOjcwNwogbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgogbXNnc3RyICLEkOG7lWkgdMOqbiBuaMOhbmggZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkxCisjOiBidWlsdGluL2JyYW5jaC5jOjcxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKIG1zZ3N0ciAixJDDoyDEkeG7lWkgdMOqbiBuaMOhbmgga2h1eeG6v3QgZGFuaCDigJwlc+KAnSDEkWkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njk1CisjOiBidWlsdGluL2JyYW5jaC5jOjcxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgogbXNnc3RyICJOaMOhbmggYuG7iyDEkeG7lWkgdMOqbiB0aMOgbmggJXMsIG5oxrBuZyBIRUFEIGzhuqFpIGtow7RuZyDEkcaw4bujYyBj4bqtcCBuaOG6rXQhIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjcwMgorIzogYnVpbHRpbi9icmFuY2guYzo3MjIKIG1zZ2lkICJCcmFuY2ggaXMgcmVuYW1lZCwgYnV0IHVwZGF0ZSBvZiBjb25maWctZmlsZSBmYWlsZWQiCiBtc2dzdHIgIk5ow6FuaCBi4buLIMSR4buVaSB0w6puLCBuaMawbmcgY+G6rXAgbmjhuq10IHThuq1wIHRpbiBj4bqldSBow6xuaCBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3MTcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzM3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1hbGZvcm1lZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAidMOqbiDEkeG7kWkgdMaw4bujbmcgZOG7iyBow6xuaCAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NDEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHbDoG8gbeG6q3UgbcO0IHThuqMgbmjDoW5oOiAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICJUw7l5IGNo4buNbiBjaHVuZyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkzCiBtc2dpZCAic2hvdyBoYXNoIGFuZCBzdWJqZWN0LCBnaXZlIHR3aWNlIGZvciB1cHN0cmVhbSBicmFuY2giCiBtc2dzdHIgImhp4buDbiB0aOG7iyBtw6MgYsSDbSB2w6AgY2jhu6cgxJHhu4EsIMSRxrBhIHJhIGhhaSBs4bqnbiBjaG8gbmjDoW5oIHRoxrDhu6NuZyBuZ3Xhu5NuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3NAorIzogYnVpbHRpbi9icmFuY2guYzo3OTQKIG1zZ2lkICJzdXBwcmVzcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIgogbXNnc3RyICJUaHUgaOG7k2kgY8OhYyB0aMO0bmcgxJFp4buHcCB0aMO0bmcgdGluIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc3NQorIzogYnVpbHRpbi9icmFuY2guYzo3OTUKIG1zZ2lkICJzZXQgdXAgdHJhY2tpbmcgbW9kZSAoc2VlIGdpdC1wdWxsKDEpKSIKIG1zZ3N0ciAiY8OgaSDEkeG6t3QgY2jhur8gxJHhu5kgdGhlbyB24bq/dCAoeGVtIGdpdC1wdWxsKDEpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCiBtc2dzdHIgInRoYXkgxJHhu5VpIHRow7RuZyB0aW4gdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgogbXNnc3RyICJz4butIGThu6VuZyBr4bq/dCB4deG6pXQgY8OzIHTDtCBtw6B1IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc4MgorIzogYnVpbHRpbi9icmFuY2guYzo4MDIKIG1zZ2lkICJhY3Qgb24gcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICJ0aGFvIHTDoWMgdHLDqm4gbmjDoW5oIOKAnHJlbW90ZS10cmFja2luZ+KAnSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODUgYnVpbHRpbi9icmFuY2guYzo3OTEgYnVpbHRpbi9icmFuY2guYzo4MTIKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OCBidWlsdGluL2NvbW1pdC5jOjEzNjkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MCBidWlsdGluL2NvbW1pdC5jOjEzNzEgYnVpbHRpbi90YWcuYzo0NjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CiBtc2dpZCAiY29tbWl0IgogbXNnc3RyICJjb21taXQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzg2IGJ1aWx0aW4vYnJhbmNoLmM6NzkyCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgogbXNnaWQgInByaW50IG9ubHkgYnJhbmNoZXMgdGhhdCBjb250YWluIHRoZSBjb21taXQiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBuaOG7r25nIG5ow6FuaCBtw6AgbsOzIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OAorIzogYnVpbHRpbi9icmFuY2guYzo4MTgKIG1zZ2lkICJTcGVjaWZpYyBnaXQtYnJhbmNoIGFjdGlvbnM6IgogbXNnc3RyICJIw6BuaCDEkeG7mW5nIGdpdC1icmFuY2g6IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OQorIzogYnVpbHRpbi9icmFuY2guYzo4MTkKIG1zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKIG1zZ3N0ciAibGnhu4d0IGvDqiBj4bqjIG5ow6FuaCDigJxyZW1vdGUtdHJhY2tpbmfigJ0gdsOgIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMQogbXNnaWQgImRlbGV0ZSBmdWxseSBtZXJnZWQgYnJhbmNoIgogbXNnc3RyICJ4w7NhIG3hu5l0IGPDoWNoIMSR4bqneSDEkeG7pyBuaMOhbmggxJHDoyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCiBtc2dpZCAiZGVsZXRlIGJyYW5jaCAoZXZlbiBpZiBub3QgbWVyZ2VkKSIKIG1zZ3N0ciAieG/DoSBuaMOhbmggKGNobyBkw7kgbMOgIGNoxrBhIMSRxrDhu6NjIGjDsmEgdHLhu5luKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIzCiBtc2dpZCAibW92ZS9yZW5hbWUgYSBicmFuY2ggYW5kIGl0cyByZWZsb2ciCiBtc2dzdHIgImRpIGNodXnhu4NuIGhheSDEkeG7lWkgdMOqbiBt4buZdCBuaMOhbmggdsOgIHJlZmxvZyBj4bunYSBuw7MiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA0CisjOiBidWlsdGluL2JyYW5jaC5jOjgyNAogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoLCBldmVuIGlmIHRhcmdldCBleGlzdHMiCiBtc2dzdHIgImRpIGNodXnhu4NuIGhv4bq3YyDEkeG7lWkgdMOqbiBt4buZdCBuaMOhbmgsIHRo4bqtbSBjaMOtIGPhuqMga2hpIMSRw61jaCDEkcOjIGPDsyBz4bq1biIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI1CiBtc2dpZCAibGlzdCBicmFuY2ggbmFtZXMiCiBtc2dzdHIgImxp4buHdCBrw6ogY8OhYyB0w6puIG5ow6FuaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODI2CiBtc2dpZCAiY3JlYXRlIHRoZSBicmFuY2gncyByZWZsb2ciCiBtc2dzdHIgInThuqFvIHJlZmxvZyBj4bunYSBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA4CisjOiBidWlsdGluL2JyYW5jaC5jOjgyOAogbXNnaWQgImVkaXQgdGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgYnJhbmNoIgogbXNnc3RyICJz4butYSBtw7QgdOG6oyBjaG8gbmjDoW5oIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgIsOpcCBideG7mWMgdOG6oW8gKGtoaSDEkcOjIHPhurVuIHThu5NuIHThuqFpIHLhu5NpKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCiBtc2dpZCAicHJpbnQgb25seSBub3QgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgY8OhYyBuaMOhbmggY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICJjaOG7iSBoaeG7g24gdGjhu4sgY8OhYyBuaMOhbmggxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjg0MgogbXNnaWQgImxpc3QgYnJhbmNoZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAibGnhu4d0IGvDqiBjw6FjIG5ow6FuaCB0cm9uZyBjw6FjIGPhu5l0IgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzNQorIzogYnVpbHRpbi9icmFuY2guYzo4NTUKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSBIRUFEIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHBow6JuIGdp4bqjaSBIRUFEIG5oxrAgbMOgIG3hu5l0IHRoYW0gY2hp4bq/dSAocmVmKSBo4bujcCBs4buHLiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NDAgYnVpbHRpbi9jbG9uZS5jOjYwOQorIzogYnVpbHRpbi9icmFuY2guYzo4NjAgYnVpbHRpbi9jbG9uZS5jOjYzMAogbXNnaWQgIkhFQUQgbm90IGZvdW5kIGJlbG93IHJlZnMvaGVhZHMhIgogbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgSEVBRCDhu58gZMaw4bubaSByZWZzL2hlYWRzISIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCiBtc2dpZCAiLS1jb2x1bW4gYW5kIC0tdmVyYm9zZSBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWNvbHVtbiB2w6AgLS12ZXJib3NlIHh1bmcga2jhuq9jIG5oYXUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODY5IGJ1aWx0aW4vYnJhbmNoLmM6OTA4CisjOiBidWlsdGluL2JyYW5jaC5jOjg4OSBidWlsdGluL2JyYW5jaC5jOjkyOAogbXNnaWQgImJyYW5jaCBuYW1lIHJlcXVpcmVkIgogbXNnc3RyICJj4bqnbiB0w6puIG5ow6FuaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSRxrBhIHJhIG3DtCB04bqjIEhFQUQgxJHDoyB0w6FjaCBy4budaSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA5CiBtc2dpZCAiY2Fubm90IGVkaXQgZGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBicmFuY2giCiBtc2dzdHIgImtow7RuZyB0aOG7gyBz4butYSBtw7QgdOG6oyBjaG8gbmhp4buBdSBoxqFuIG3hu5l0IG5ow6FuaCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4OTYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGNvbW1pdCBvbiBicmFuY2ggJyVzJyB5ZXQuIgogbXNnc3RyICJW4bqrbiBjaMawYSBjaHV54buDbiBnaWFvIHRyw6puIG5ow6FuaCDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODk5CisjOiBidWlsdGluL2JyYW5jaC5jOjkxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBicmFuY2ggbmFtZWQgJyVzJy4iCiBtc2dzdHIgIktow7RuZyBjw7MgbmjDoW5oIG7DoG8gY8OzIHTDqm4g4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkxNAorIzogYnVpbHRpbi9icmFuY2guYzo5MzQKIG1zZ2lkICJ0b28gbWFueSBicmFuY2hlcyBmb3IgYSByZW5hbWUgb3BlcmF0aW9uIgogbXNnc3RyICJxdcOhIG5oaeG7gXUgbmjDoW5oIGTDoG5oIGNobyB0aGFvIHTDoWMgxJHhu5VpIHTDqm4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CisjOiBidWlsdGluL2JyYW5jaC5jOjkzOQogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHNldCBuZXcgdXBzdHJlYW0iCiBtc2dzdHIgInF1w6Egbmhp4buBdSBuaMOhbmggxJHGsOG7o2MgxJHhurd0IGNobyBkw7JuZyBuZ8aw4bujYyAodXBzdHJlYW0pIG3hu5tpIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkyMworIzogYnVpbHRpbi9icmFuY2guYzo5NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImNvdWxkIG5vdCBzZXQgdXBzdHJlYW0gb2YgSEVBRCB0byAlcyB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgpAQCAtMjcxOCw0MiArMjkzMCw0MiBAQAogImtow7RuZyB0aOG7gyDEkeG6t3QgZMOybmcgbmfGsOG7o2MgKHVwc3RyZWFtKSBj4bunYSBIRUFEIHRow6BuaCAlcyBraGkgbcOgIG7DsyBjaOG6s25nIGNo4buJICIKICLEkeG6v24gbmjDoW5oIG7DoG8gY+G6oy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTI2IGJ1aWx0aW4vYnJhbmNoLmM6OTQ4IGJ1aWx0aW4vYnJhbmNoLmM6OTcwCisjOiBidWlsdGluL2JyYW5jaC5jOjk0NiBidWlsdGluL2JyYW5jaC5jOjk2OCBidWlsdGluL2JyYW5jaC5jOjk5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzdWNoIGJyYW5jaCAnJXMnIgogbXNnc3RyICJraMO0bmcgY8OzIG5ow6FuaCBuw6BvIG5oxrAgdGjhur8g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTMwCisjOiBidWlsdGluL2JyYW5jaC5jOjk1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAibmjDoW5oIOKAnCVz4oCdIGNoxrBhIHPhurVuIGPDsyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTYyCiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gdW5zZXQgdXBzdHJlYW0iCiBtc2dzdHIgInF1w6Egbmhp4buBdSBuaMOhbmggxJHhu4MgYuG7jyDEkeG6t3QgbmfGsOG7o2MgZMOybmcgKHVwc3RyZWFtKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTY2CiBtc2dpZCAiY291bGQgbm90IHVuc2V0IHVwc3RyZWFtIG9mIEhFQUQgd2hlbiBpdCBkb2VzIG5vdCBwb2ludCB0byBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAiIgogImtow7RuZyB0aOG7gyBi4buPIMSR4bq3dCBuZ8aw4bujYyBkw7JuZyAodXBzdHJlYW0pIGPhu6dhIEhFQUQga2jDtG5nIGNo4buJIMSR4bq/biBt4buZdCBuaMOhbmggbsOgbyAiCiAiY+G6oy4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUyCisjOiBidWlsdGluL2JyYW5jaC5jOjk3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggJyVzJyBoYXMgbm8gdXBzdHJlYW0gaW5mb3JtYXRpb24iCiBtc2dzdHIgIk5ow6FuaCDigJwlc+KAnSBraMO0bmcgY8OzIHRow7RuZyB0aW4gdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NjcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTg3CiBtc2dpZCAiaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjcmVhdGUgJ0hFQUQnIG1hbnVhbGx5IgotbXNnc3RyICJraMO0bmcgaOG7o3AgbMO9IGtoaSB04bqhbyAnSEVBRCcgdGjhu6cgY8O0bmcgIgorbXNnc3RyICJraMO0bmcgaOG7o3AgbMO9IGtoaSB04bqhbyDigJxIRUFE4oCdIHRo4bunIGPDtG5nICIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NzMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCiBtc2dpZCAiLWEgYW5kIC1yIG9wdGlvbnMgdG8gJ2dpdCBicmFuY2gnIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGggYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiIgogImhhaSB0w7l5IGNo4buNbiAtYSB2w6AgLXIgw6FwIGThu6VuZyBjaG8gbOG7h25oIOKAnGdpdCBicmFuY2jigJ0ga2jDtG5nIGjhu6NwIGzDvSDEkeG7kWkgduG7m2kgdMOqbiAiCiAibmjDoW5oIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3NgorIzogYnVpbHRpbi9icmFuY2guYzo5OTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSAtLXNldC11cHN0cmVhbSBmbGFnIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gQ29uc2lkZXIgdXNpbmcgLS0iCkBAIC0yNzYyLDcgKzI5NzQsNyBAQAogIkPhu50gLS1zZXQtdXBzdHJlYW0gYuG7iyBwaOG6o24gxJHhu5FpIHbDoCBz4bq9IGLhu4sgeMOzYSBi4buPLiBOw6puIGTDuW5nIC0tdHJhY2sgaG/hurdjIC0tc2V0LSIKICJ1cHN0cmVhbS10b1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5MworIzogYnVpbHRpbi9icmFuY2guYzoxMDEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTI3NzMsMTIgKzI5ODUsMTIgQEAKICJO4bq/dSBi4bqhbiBtdeG7kW4g4oCcJXPigJ0gdGhlbyBkw7VpIOKAnCVz4oCdLCB0aOG7sWMgaGnhu4duIGzhu4duaCBzYXU6XG4iCiAiXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTk0CisjOiBidWlsdGluL2JyYW5jaC5jOjEwMTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIG1zZ3N0ciAiICAgIGdpdCBicmFuY2ggLWQgJXNcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtLXNldC11cHN0cmVhbS10byAlc1xuIgpAQCAtMjc5Niw0NCArMzAwOCw0NCBAQAogbXNnaWQgIk5lZWQgYSByZXBvc2l0b3J5IHRvIHVuYnVuZGxlLiIKIG1zZ3N0ciAiQ+G6p24gbeG7mXQga2hvIGNo4bupYSDEkeG7gyBtw6AgYnVuZyBt4buZdCBidW5kbGUuIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjQ3CisjOiBidWlsdGluL2NhdC1maWxlLmM6Mjg1CiBtc2dpZCAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw8dHlwZT58LS10ZXh0Y29udikgPG9iamVjdD4iCiBtc2dzdHIgImdpdCBjYXQtZmlsZSAoLXR8LXN8LWV8LXB8PGtp4buDdT58LS10ZXh0Y29udikgPMSR4buRaSB0xrDhu6NuZz4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNDgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODYKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA8bGlzdF9vZl9vYmplY3RzPiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtLWJhdGNofC0tYmF0Y2gtY2hlY2spIDwgPGRhbmgtc8OhY2gtxJHhu5FpLXTGsOG7o25nPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI2NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyMwogbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIG1zZ3N0ciAiPGtp4buDdT4gbMOgIG3hu5l0IHRyb25nIHPhu5E6IGJsb2IsIHRyZWUsIGNvbW1pdCwgdGFnIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjY3CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI0CiBtc2dpZCAic2hvdyBvYmplY3QgdHlwZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGtp4buDdSDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNjgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICJoaeG7g24gdGjhu4sga8OtY2ggdGjGsOG7m2MgxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6MjcwCisjOiBidWlsdGluL2NhdC1maWxlLmM6MzI3CiBtc2dpZCAiZXhpdCB3aXRoIHplcm8gd2hlbiB0aGVyZSdzIG5vIGVycm9yIgogbXNnc3RyICJ0aG/DoXQgduG7m2kgMCBraGkga2jDtG5nIGPDsyBs4buXaSIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3MQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICJpbiBu4buZaSBkdW5nIMSR4buRaSB0xrDhu6NuZyBk4bqhbmcgZOG7hSDEkeG7jWMiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAiduG7m2kgxJHhu5FpIHTGsOG7o25nIGJsb2IsIGNo4bqheSBs4buHbmggdGV4dGNvbnYgdHLDqm4gbuG7mWkgZHVuZyBj4bunYSDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzUKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzIKIG1zZ2lkICJzaG93IGluZm8gYW5kIGNvbnRlbnQgb2Ygb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiB2w6AgbuG7mWkgZHVuZyBj4bunYSBjw6FjIMSR4buRaSB0xrDhu6NuZyBs4bqleSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzUKIG1zZ2lkICJzaG93IGluZm8gYWJvdXQgb2JqZWN0cyBmZWQgZnJvbSB0aGUgc3RhbmRhcmQgaW5wdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHRow7RuZyB0aW4gduG7gSDEkeG7kWkgdMaw4bujbmcgZmVkICB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKQEAgLTI4NjIsMzAgKzMwNzQsNTUgQEAKIG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgogbXNnc3RyICJjw6FjIMSRxrDhu51uZyBk4bqrbiDEkcaw4bujYyAgbmfEg24gY8OhY2ggYuG7n2kga8O9IHThu7EgbnVsbCIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOCBidWlsdGluL2NoZWNrb3V0LmM6MTA0MSBidWlsdGluL2djLmM6MTc3CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU0IGJ1aWx0aW4vZ2MuYzoxNzcKIG1zZ2lkICJzdXBwcmVzcyBwcm9ncmVzcyByZXBvcnRpbmciCiBtc2dzdHIgImNo4bq3biBjw6FjIGLDoW8gY8OhbyB0aeG6v24gdHLDrG5oIGhv4bqhdCDEkeG7mW5nIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICJoaeG7g24gdGjhu4sgbmjhu69uZyDEkcaw4budbmcgZOG6q24gxJHhuqd1IHbDoG8ga2jDtG5nIGto4bubcCB24bubaSBt4bqrdSIKKworIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDMKIG1zZ2lkICJjYW5ub3Qgc3BlY2lmeSBwYXRobmFtZXMgd2l0aCAtLXN0ZGluIgogbXNnc3RyICJraMO0bmcgdGjhu4MgY2jhu4kgxJHhu4tuaCBjw6FjIHTDqm4gxJHGsOG7nW5nIGThuqtuIHbhu5tpIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU0CisjOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE0NgogbXNnaWQgIi16IG9ubHkgbWFrZXMgc2Vuc2Ugd2l0aCAtLXN0ZGluIgogbXNnc3RyICIteiBjaOG7iSBo4bujcCBsw70gduG7m2kgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTYKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQ4CiBtc2dpZCAibm8gcGF0aCBzcGVjaWZpZWQiCiBtc2dzdHIgImNoxrBhIGdoaSByw7UgxJHGsOG7nW5nIGThuqtuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAiLS1xdWlldCBjaOG7iSBo4bujcCBs4buHIHbhu5tpIHTDqm4gxJHGsOG7nW5nIGThuqtuIMSRxqFuIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGTDuW5nIGPhuqMgaGFpIHTDuXkgY2jhu41uIC0tcXVpZXQgdsOgIC0tdmVyYm9zZSIKIAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTcKK21zZ2lkICItLW5vbi1tYXRjaGluZyBpcyBvbmx5IHZhbGlkIHdpdGggLS12ZXJib3NlIgorbXNnc3RyICJ0w7l5LWNo4buNbiAtLW5vbi1tYXRjaGluZyBjaOG7iSBo4bujcCBs4buHIGtoaSBkw7luZyB24bubaSAtLXZlcmJvc2UiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjgKK21zZ2lkICJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIgorbXNnc3RyICJnaXQgY2hlY2stbWFpbG1hcCBbY8OhYy10w7l5LWNo4buNbl0gPGRhbmgtYuG6oT4uLi4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjEzCittc2dpZCAiYWxzbyByZWFkIGNvbnRhY3RzIGZyb20gc3RkaW4iCittc2dzdHIgIsSR4buTbmcgdGjhu51pIMSR4buNYyBjw6FjIGRhbmggYuG6oSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjI0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuYWJsZSB0byBwYXJzZSBjb250YWN0OiAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIHBow6JuIHTDrWNoIGRhbmggYuG6oTog4oCcJXPigJ0iCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjQ3Cittc2dpZCAibm8gY29udGFjdHMgc3BlY2lmaWVkIgorbXNnc3RyICJjaMawYSBjaOG7iSByYSBkYW5oIGLhuqEiCisKICM6IGJ1aWx0aW4vY2hlY2tvdXQtaW5kZXguYzoxMjYKIG1zZ2lkICJnaXQgY2hlY2tvdXQtaW5kZXggW29wdGlvbnNdIFstLV0gWzxmaWxlPi4uLl0iCiBtc2dzdHIgImdpdCBjaGVja291dC1pbmRleCBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSBbPHThuq1wLXRpbj4uLi5dIgpAQCAtMjkzOSwxMDcgKzMxNzYsMTA3IEBACiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFtjw6FjLXTDuXktY2jhu41uXSBbPG5ow6FuaD5dIC0tIDx04bqtcC10aW4+Li4uIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNDkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcgYnVpbHRpbi9jaGVja291dC5jOjE1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBvdXIgdmVyc2lvbiIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgY8OhYyBwaGnDqm4gYuG6o24gY+G7p2EgY2jDum5nIHRhIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTkgYnVpbHRpbi9jaGVja291dC5jOjE1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSB0aGVpciB2ZXJzaW9uIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24g4oCcJXPigJ0ga2jDtG5nIGPDsyBjw6FjIHBoacOqbiBi4bqjbiBj4bunYSBjaMO6bmciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgYWxsIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgdOG6pXQgY+G6oyBjw6FjIHBoacOqbiBi4bqjbiBj4bqnbiB0aGnhur90IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTc4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTc5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG5lY2Vzc2FyeSB2ZXJzaW9ucyIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdIGtow7RuZyBjw7MgY8OhYyBwaGnDqm4gYuG6o24gY+G6p24gdGhp4bq/dCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjE5NQorIzogYnVpbHRpbi9jaGVja291dC5jOjE5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcyc6IGNhbm5vdCBtZXJnZSIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIOKAnCVz4oCdOiBraMO0bmcgdGjhu4MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5hYmxlIHRvIGFkZCBtZXJnZSByZXN1bHQgZm9yICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0aMOqbSBr4bq/dCBxdeG6oyBow7JhIHRy4buZbiBjaG8g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzYgYnVpbHRpbi9jaGVja291dC5jOjIzOSBidWlsdGluL2NoZWNrb3V0LmM6MjQyCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjM3IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDAgYnVpbHRpbi9jaGVja291dC5jOjI0MworIzogYnVpbHRpbi9jaGVja291dC5jOjI0NgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggdXBkYXRpbmcgcGF0aHMiCiBtc2dzdHIgIuKAnCVz4oCdIGtow7RuZyB0aOG7gyDEkcaw4bujYyBz4butIGThu6VuZyB24bubaSBjw6FjIMSRxrDhu51uZyBk4bqrbiBj4bqtcCBuaOG6rXQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDggYnVpbHRpbi9jaGVja291dC5jOjI1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjI0OSBidWlsdGluL2NoZWNrb3V0LmM6MjUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAlcyIKIG1zZ3N0ciAi4oCcJXPigJ0ga2jDtG5nIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpICVzIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjU0CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLiIKIG1zZ3N0ciAiIgogIktow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgY8OhYyDEkcaw4budbmcgZOG6q24gdsOgIGNodXnhu4NuIMSR4bq/biBuaMOhbmgg4oCcJXPigJ0gY8O5bmcgbeG7mXQgbMO6Yy4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjUgYnVpbHRpbi9jaGVja291dC5jOjQ1NQorIzogYnVpbHRpbi9jaGVja291dC5jOjI2NiBidWlsdGluL2NoZWNrb3V0LmM6NDU4CiBtc2dpZCAiY29ycnVwdCBpbmRleCBmaWxlIgogbXNnc3RyICJ04bqtcCB0aW4gZ2hpIGLhuqNuZyBt4bulYyBs4bulYyBi4buLIGjhu49uZyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjMyNiBidWlsdGluL2NoZWNrb3V0LmM6MzMzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MzI5IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGlzIHVubWVyZ2VkIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24g4oCcJXPigJ0ga2jDtG5nIMSRxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NDc3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NDgwCiBtc2dpZCAieW91IG5lZWQgdG8gcmVzb2x2ZSB5b3VyIGN1cnJlbnQgaW5kZXggZmlyc3QiCiBtc2dzdHIgImLhuqFuIGPhuqduIHBo4bqjaSBwaMOibiBnaeG6o2kgYuG6o25nIG3hu6VjIGzhu6VjIGhp4buHbiB04bqhaSBj4bunYSBi4bqhbiB0csaw4bubYyDEkcOjIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NTk4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbiBub3QgZG8gcmVmbG9nIGZvciAnJXMnXG4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duIHJlZmxvZyBjaG8g4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzMQorIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQogbXNnaWQgIkhFQUQgaXMgbm93IGF0IgogbXNnc3RyICJIRUFEIGhp4buHbiBnaeG7nSB04bqhaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLEkOG6t3QgbOG6oWkgbmjDoW5oIOKAnCVz4oCdXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWxyZWFkeSBvbiAnJXMnXG4iCiBtc2dzdHIgIsSQw6Mgc+G6tW4gc8OgbmcgdHLDqm4g4oCcJXPigJ1cbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjY0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjY1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhbmQgcmVzZXQgYnJhbmNoICclcydcbiIKIG1zZ3N0ciAixJDDoyBjaHV54buDbiB04bubaSB2w6AgcmVzZXQgbmjDoW5oIOKAnCVz4oCdXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NDcgYnVpbHRpbi9jaGVja291dC5jOjk4NAorIzogYnVpbHRpbi9jaGVja291dC5jOjY1NSBidWlsdGluL2NoZWNrb3V0LmM6OTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGEgbmV3IGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQw6MgY2h1eeG7g24gxJHhur9uIG5ow6FuaCBt4bubaSDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIsSQw6MgY2h1eeG7g24gxJHhur9uIG5ow6FuaCDigJwlc+KAnVxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzA1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiAuLi4gYW5kICVkIG1vcmUuXG4iCiBtc2dzdHIgIiAuLi4gdsOgIG5oaeG7gXUgaMahbiAlZC5cbiIKIAogIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCkBAIC0zMDY0LDcgKzMzMDEsNyBAQAogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMDgwLDEzNCArMzMxNywxMzggQEAKICIgZ2l0IGJyYW5jaCB0w6puX25ow6FuaF9t4bubaSAlc1xuIgogIlxuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NzU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NzY3CiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IgaW4gcmV2aXNpb24gd2FsayIKLW1zZ3N0ciAibOG7l2kgbuG7mWkgYuG7mSB0cm9uZyBraGkgZGkgY2h1eeG7g24gcXVhIGPDoWMgxJFp4buDbSB4w6l0IGzhuqFpIgorbXNnc3RyICJs4buXaSBu4buZaSBi4buZIHRyb25nIGtoaSBkaSBjaHV54buDbiBxdWEgY8OhYyDEkWnhu4NtIHjDqXQgZHV54buHdCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2MworIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICJW4buLIHRyw60ga+G6vyB0csaw4bubYyBj4bunYSBIRUFEIGzDoCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc5MCBidWlsdGluL2NoZWNrb3V0LmM6OTc5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6Nzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzo5OTIKIG1zZ2lkICJZb3UgYXJlIG9uIGEgYnJhbmNoIHlldCB0byBiZSBib3JuIgogbXNnc3RyICJC4bqhbiB04bqhaSBuaMOhbmggbcOgIG7DsyBjaMawYSBo4buBIMSRxrDhu6NjIHNpbmggcmEiCiAKICMuIGNhc2UgKDEpCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTE1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6OTI4CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgcmVmZXJlbmNlOiAlcyIKIG1zZ3N0ciAidGhhbSBjaGnhur91IHNhaTogJXMiCiAKICMuIGNhc2UgKDEpOiB3YW50IGEgdHJlZQotIzogYnVpbHRpbi9jaGVja291dC5jOjk1NAorIzogYnVpbHRpbi9jaGVja291dC5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWZlcmVuY2UgaXMgbm90IGEgdHJlZTogJXMiCiBtc2dzdHIgInRoYW0gY2hp4bq/dSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBjw6J5ICh0cmVlKTolcyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAiY8OhYyDEkcaw4budbmcgZOG6q24ga2jDtG5nIHRo4buDIGTDuW5nIGPDuW5nIHbhu5tpIGPDoWMgbmjDoW5oIGNodXnhu4NuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICLigJwlc+KAnSBraMO0bmcgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kgY8OhYyBuaMOhbmggY2h1eeG7g24iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA0IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDA3IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDEyCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMTcgYnVpbHRpbi9jaGVja291dC5jOjEwMjAgYnVpbHRpbi9jaGVja291dC5jOjEwMjUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgY2Fubm90IGJlIHVzZWQgd2l0aCAnJXMnIgogbXNnc3RyICLigJwlc+KAnSBraMO0bmcgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDIwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgc3dpdGNoIGJyYW5jaCB0byBhIG5vbi1jb21taXQgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGNodXnhu4NuIG5ow6FuaCDEkeG6v24gbeG7mXQgbm9uLWNvbW1pdCDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDIgYnVpbHRpbi9jaGVja291dC5jOjEwNDQgYnVpbHRpbi9jbG9uZS5jOjkwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NSBidWlsdGluL2NoZWNrb3V0LmM6MTA1NyBidWlsdGluL2Nsb25lLmM6ODkKICM6IGJ1aWx0aW4vcmVtb3RlLmM6MTY5IGJ1aWx0aW4vcmVtb3RlLmM6MTcxCiBtc2dpZCAiYnJhbmNoIgogbXNnc3RyICJuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgogbXNnaWQgImNyZWF0ZSBhbmQgY2hlY2tvdXQgYSBuZXcgYnJhbmNoIgogbXNnc3RyICJ04bqhbyB2w6AgY2hlY2tvdXQgbeG7mXQgbmjDoW5oIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTgKIG1zZ2lkICJjcmVhdGUvcmVzZXQgYW5kIGNoZWNrb3V0IGEgYnJhbmNoIgogbXNnc3RyICJjcmVhdGUvcmVzZXQgdsOgIGNoZWNrb3V0IG3hu5l0IG5ow6FuaCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CiBtc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAidOG6oW8gcmVmbG9nIGNobyBuaMOhbmggbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MAogbXNnaWQgImRldGFjaCB0aGUgSEVBRCBhdCBuYW1lZCBjb21taXQiCiBtc2dzdHIgInLhu51pIGLhu48gSEVBRCB04bqhaSBs4bqnbiBjaHV54buDbiBnaWFvIGRhbmggbmdoxKlhIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0OAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjEKIG1zZ2lkICJzZXQgdXBzdHJlYW0gaW5mbyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAixJHhurd0IHRow7RuZyB0aW4gdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSBjaG8gbmjDoW5oIG3hu5tpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjMKIG1zZ2lkICJuZXcgYnJhbmNoIgogbXNnc3RyICJuaMOhbmggbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyB1bnBhcmVudGVkIGJyYW5jaCIKIG1zZ3N0ciAibmjDoW5oIG3hu5MgY8O0aSBt4bubaSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY0CiBtc2dpZCAiY2hlY2tvdXQgb3VyIHZlcnNpb24gZm9yIHVubWVyZ2VkIGZpbGVzIgogbXNnc3RyICIiCiAibOG6pXkgcmEgKGNoZWNrb3V0KSBwaGnDqm4gYuG6o24gY+G7p2EgY2jDum5nIHRhIGNobyBjw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDY2CiBtc2dpZCAiY2hlY2tvdXQgdGhlaXIgdmVyc2lvbiBmb3IgdW5tZXJnZWQgZmlsZXMiCiBtc2dzdHIgIiIKICJs4bqleSByYSAoY2hlY2tvdXQpIHBoacOqbiBi4bqjbiBj4bunYSBjaMO6bmcgaOG7jSBjaG8gY8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OAogbXNnaWQgImZvcmNlIGNoZWNrb3V0ICh0aHJvdyBhd2F5IGxvY2FsIG1vZGlmaWNhdGlvbnMpIgogbXNnc3RyICLDqXAgYnXhu5ljIGzhuqV5IHJhIChjaGVja291dCkgKGLhu48gxJFpIG5o4buvbmcgdGhheSDEkeG7lWkgbuG7mWkgYuG7mSkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2OQogbXNnaWQgInBlcmZvcm0gYSAzLXdheSBtZXJnZSB3aXRoIHRoZSBuZXcgYnJhbmNoIgogbXNnc3RyICJ0aOG7sWMgaGnhu4duIGjDsmEgdHLhu5luIGtp4buDdSAzLXdheSB24bubaSBuaMOhbmggbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vbWVyZ2UuYzoyMTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcwIGJ1aWx0aW4vbWVyZ2UuYzoyMzIKIG1zZ2lkICJ1cGRhdGUgaWdub3JlZCBmaWxlcyAoZGVmYXVsdCkiCiBtc2dzdHIgImPhuq1wIG5o4bqtdCBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhICht4bq3YyDEkeG7i25oKSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTggYnVpbHRpbi9sb2cuYzoxMTQ5IHBhcnNlLW9wdGlvbnMuaDoyNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcxIGJ1aWx0aW4vbG9nLmM6MTIwOCBwYXJzZS1vcHRpb25zLmg6MjQ5CiBtc2dpZCAic3R5bGUiCiBtc2dzdHIgImtp4buDdSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDcyCiBtc2dpZCAiY29uZmxpY3Qgc3R5bGUgKG1lcmdlIG9yIGRpZmYzKSIKIG1zZ3N0ciAieHVuZyDEkeG7mXQga2nhu4N1IChow7JhIHRy4buZbiBoYXkgZGlmZjMpIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzUKK21zZ2lkICJkbyBub3QgbGltaXQgcGF0aHNwZWNzIHRvIHNwYXJzZSBlbnRyaWVzIG9ubHkiCittc2dzdHIgImtow7RuZyBnaeG7m2kgaOG6oW4gcGF0aHNwZWNzIGNo4buJIHRow6BuaCBjw6FjIG3hu6VjIHRoxrBhIHRo4bubdCIKKworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNzcKIG1zZ2lkICJzZWNvbmQgZ3Vlc3MgJ2dpdCBjaGVja291dCBuby1zdWNoLWJyYW5jaCciCiBtc2dzdHIgImfhu6NpIMO9IHRo4bupIGhhaSDigJxnaXQgY2hlY2tvdXQga2jDtG5nLW5ow6FuaC1uw6BvLW5oxrAtduG6rXnigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDg2CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEwMQogbXNnaWQgIi1iLCAtQiBhbmQgLS1vcnBoYW4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gLWJ8LUIgdsOgIC0tb3JwaGFuIGxv4bqhaSB04burIGzhuqtuIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiLS10cmFjayBj4bqnbiB0w6puIG3hu5l0IG5ow6FuaCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExMTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTI1CiBtc2dpZCAiTWlzc2luZyBicmFuY2ggbmFtZTsgdHJ5IC1iIgogbXNnc3RyICJUaGnhur91IHTDqm4gbmjDoW5oOyBow6N5IHRo4butIC1iIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKIG1zZ3N0ciAixJHGsOG7nW5nIGThuqtuIMSRw6MgY2hvIGtow7RuZyBo4bujcCBs4buHIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgpAQCAtMzIxNywxMiArMzQ1OCwxMiBAQAogIkLhuqFuIMSRw6MgY8OzIMO9IMSR4buLbmggY2hlY2tvdXQg4oCcJXPigJ0gY8OhaSBtw6Aga2jDtG5nIHRo4buDIMSRxrDhu6NjIHBow6JuIGdp4bqjaSBuaMawIGzDoCBs4bqnbiAiCiAiY2h1eeG7g24gZ2lhbyAoY29tbWl0KT8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTU3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgY2hlY2tvdXQ6IC0tZGV0YWNoIGRvZXMgbm90IHRha2UgYSBwYXRoIGFyZ3VtZW50ICclcyciCiBtc2dzdHIgImdpdCBjaGVja291dDogLS1kZXRhY2gga2jDtG5nIG5o4bqtbiBt4buZdCDEkeG7kWkgc+G7kSDEkcaw4budbmcgZOG6q24g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKQEAgLTMyMzAsMzEwICszNDcxLDQyNyBAQAogImdpdCBjaGVja291dDogLS1vdXJzLy0tdGhlaXJzLCAtLWZvcmNlIHbDoCAtLW1lcmdlIGzDoCB4dW5nIGto4bqvYyB24bubaSBuaGF1IGtoaVxuIgogImNoZWNrb3V0IGLhuqNuZyBt4bulYyBs4bulYyAoaW5kZXgpLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjIwCi1tc2dpZCAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKLW1zZ3N0ciAiZ2l0IGNsZWFuIFstZF0gWy1mXSBbLW5dIFstcV0gWy1lIDxt4bqrdT5dIFsteCB8IC1YXSBbLS1dIDzEkcaw4budbmctZOG6q24+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKK21zZ3N0ciAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxt4bqrdT5dIFsteCB8IC1YXSBbLS1dIDzEkcaw4budbmctZOG6q24+Li4uIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyAlc1xuIgogbXNnc3RyICLEkGFuZyBn4buhIGLhu48gJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI1CisjOiBidWlsdGluL2NsZWFuLmM6MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgcmVtb3ZlICVzXG4iCiBtc2dzdHIgIkPDsyB0aOG7gyBn4buhIGLhu48gJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI2CisjOiBidWlsdGluL2NsZWFuLmM6MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2tpcHBpbmcgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICLEkGFuZyBi4buPIHF1YSBraG8gY2jhu6lhICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNworIzogYnVpbHRpbi9jbGVhbi5jOjMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHNraXAgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICJOw6puIGLhu48gcXVhIGtobyBjaOG7qWEgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI4CisjOiBidWlsdGluL2NsZWFuLmM6MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlbW92ZSAlcyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGfhu6EgYuG7jyAlcyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MAorIzogYnVpbHRpbi9jbGVhbi5jOjI5MworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgbnVtYmVyZWQgaXRlbVxuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiICAgICAgICAgICAtIChlbXB0eSkgc2VsZWN0IG5vdGhpbmciCittc2dzdHIgIiIKKyJUcuG7oyBnacO6cCB24buBIG5o4bqvYzpcbiIKKyIxICAgICAgICAgIC0gY2jhu41uIG3hu5l0IG3hu6VjIMSRxrDhu6NjIMSRw6FuaCBz4buRXG4iCisiZm9vICAgICAgICAtIGNo4buNbiBt4bulYyB0csOqbiBjxqEgc+G7nyB0aeG7gW4gdOG7kSBkdXkgbmjhuqV0XG4iCisiICAgICAgICAgICAtICh0cuG7kW5nIHLhu5duZykga2jDtG5nIGNo4buNbiBnw6wgY+G6oyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjI5NworbXNnaWQgIiIKKyJQcm9tcHQgaGVscDpcbiIKKyIxICAgICAgICAgIC0gc2VsZWN0IGEgc2luZ2xlIGl0ZW1cbiIKKyIzLTUgICAgICAgIC0gc2VsZWN0IGEgcmFuZ2Ugb2YgaXRlbXNcbiIKKyIyLTMsNi05ICAgIC0gc2VsZWN0IG11bHRpcGxlIHJhbmdlc1xuIgorImZvbyAgICAgICAgLSBzZWxlY3QgaXRlbSBiYXNlZCBvbiB1bmlxdWUgcHJlZml4XG4iCisiLS4uLiAgICAgICAtIHVuc2VsZWN0IHNwZWNpZmllZCBpdGVtc1xuIgorIiogICAgICAgICAgLSBjaG9vc2UgYWxsIGl0ZW1zXG4iCisiICAgICAgICAgICAtIChlbXB0eSkgZmluaXNoIHNlbGVjdGluZyIKK21zZ3N0ciAiIgorIlRy4bujIGdpw7pwIHbhu4Egbmjhuq9jOlxuIgorIjEgICAgICAgICAgLSBjaOG7jW4gbeG7mXQgbeG7pWMgxJHGoW5cbiIKKyIzLTUgICAgICAgIC0gY2jhu41uIG3hu5l0IHbDuW5nXG4iCisiMi0zLDYtOSAgICAtIGNo4buNbiBuaGnhu4F1IHbDuW5nXG4iCisiZm9vICAgICAgICAtIGNo4buNbiBt4bulYyBk4buxYSB0csOqbiB0aeG7gW4gdOG7kSBkdXkgbmjhuqV0XG4iCisiLS4uLiAgICAgICAtIGtow7RuZyBjaOG7jW4gY8OhYyBt4bulYyDEkcOjIGNo4buJIHJhXG4iCisiKiAgICAgICAgICAtIGNo4buNbiB04bqldFxuIgorIiAgICAgICAgICAgLSAodHLhu5FuZyBy4buXbmcpIGvhur90IHRow7pjIHZp4buHYyBjaOG7jW4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo1MTUKKyMsIGMtZm9ybWF0Cittc2dpZCAiSHVoICglcyk/IgorbXNnc3RyICJI4bqjICglcyk/IgorCisjOiBidWlsdGluL2NsZWFuLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKK21zZ3N0ciAiTeG6q3UgxJHhu4MgbOG7jWMgY8OhYyB04bqtcCB0aW4gY+G6p24gbOG7nSDEkWkgxJHhuqd1IHbDoG8+PiIKKworIzogYnVpbHRpbi9jbGVhbi5jOjY5NQorIywgYy1mb3JtYXQKK21zZ2lkICJXQVJOSU5HOiBDYW5ub3QgZmluZCBpdGVtcyBtYXRjaGVkIGJ5OiAlcyIKK21zZ3N0ciAiQ+G6ok5IIELDgU86IEtow7RuZyB0w6xtIHRo4bqleSBjw6FjIG3hu6VjIMSRxrDhu6NjIGto4bubcCBi4bufaTogJXMiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3MTYKK21zZ2lkICJTZWxlY3QgaXRlbXMgdG8gZGVsZXRlIgorbXNnc3RyICJDaOG7jW4gbeG7pWMgbXXhu5FuIHjDs2EiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3NTYKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICVzPyAiCittc2dzdHIgImfhu6EgYuG7jyDigJwlc+KAnT8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICJU4bqhbSBiaeG7h3QuIgorCisjOiBidWlsdGluL2NsZWFuLmM6Nzg5Cittc2dpZCAiIgorImNsZWFuICAgICAgICAgICAgICAgLSBzdGFydCBjbGVhbmluZ1xuIgorImZpbHRlciBieSBwYXR0ZXJuICAgLSBleGNsdWRlIGl0ZW1zIGZyb20gZGVsZXRpb25cbiIKKyJzZWxlY3QgYnkgbnVtYmVycyAgIC0gc2VsZWN0IGl0ZW1zIHRvIGJlIGRlbGV0ZWQgYnkgbnVtYmVyc1xuIgorImFzayBlYWNoICAgICAgICAgICAgLSBjb25maXJtIGVhY2ggZGVsZXRpb24gKGxpa2UgXCJybSAtaVwiKVxuIgorInF1aXQgICAgICAgICAgICAgICAgLSBzdG9wIGNsZWFuaW5nXG4iCisiaGVscCAgICAgICAgICAgICAgICAtIHRoaXMgc2NyZWVuXG4iCisiPyAgICAgICAgICAgICAgICAgICAtIGhlbHAgZm9yIHByb21wdCBzZWxlY3Rpb24iCittc2dzdHIgIiIKKyJjbGVhbiAgICAgICAgICAgICAgIC0gYuG6r3QgxJHhuqd1IGThu41uIGThurlwXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGxv4bqhaSB0cuG7qyBjw6FjIG3hu6VjIGto4buPaSB2aeG7h2MgeMOzYVxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBjaOG7jW4gY8OhYyBt4bulYyBj4bqnbiB4w7NhIGLhurFuZyBz4buRXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIHjDoWMgbmjhuq1uIHRyxrDhu5tjIG3hu5dpIGzhuqduIHjDs2EgKGdp4buRbmcgbmjGsCBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIGThu6tuZyB2aeG7h2MgZOG7jW4gZOG6uXAgbOG6oWlcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gaGnhu4NuIHRo4buLIGNow61uaCB0cuG7oyBnacO6cCBuw6B5XG4iCisiPyAgICAgICAgICAgICAgICAgICAtIHRy4bujIGdpw7pwIGTDoG5oIGNobyBjaOG7jW4gYuG6sW5nIGPDoWNoIG5o4bqvYyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjgxNgorbXNnaWQgIioqKiBDb21tYW5kcyAqKioiCittc2dzdHIgIioqKiBM4buHbmggKioqIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE3Cittc2dpZCAiV2hhdCBub3ciCittc2dzdHIgIkdp4budIHRow6wgc2FvIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODI1Cittc2dpZCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbToiCittc2dpZF9wbHVyYWwgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW1zOiIKK21zZ3N0clswXSAiQ8OzIG114buRbiBn4buhIGLhu48gbeG7pWMgc2F1IMSRw6J5IGtow7RuZzoiCittc2dzdHJbMV0gIkPDsyBtdeG7kW4gZ+G7oSBi4buPIGPDoWMgbeG7pWMgc2F1IMSRw6J5IGtow7RuZzoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAiS2jDtG5nIGPDsm4gdOG6rXAtdGluIG7DoG8gxJHhu4MgZOG7jW4gZOG6uXAsIMSRYW5nIHRob8OhdCByYS4iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzQKIG1zZ2lkICJkbyBub3QgcHJpbnQgbmFtZXMgb2YgZmlsZXMgcmVtb3ZlZCIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB0w6puIGPhu6dhIGPDoWMgdOG6rXAgdGluIMSRw6MgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MTYyCisjOiBidWlsdGluL2NsZWFuLmM6ODc2CiBtc2dpZCAiZm9yY2UiCiBtc2dzdHIgIsOpcCBideG7mWMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAic+G7rWEgYuG6sW5nIGPDoWNoIHTGsMahbmcgdMOhYyIKKworIzogYnVpbHRpbi9jbGVhbi5jOjg3OQogbXNnaWQgInJlbW92ZSB3aG9sZSBkaXJlY3RvcmllcyIKIG1zZ3N0ciAiZ+G7oSBi4buPIHRvw6BuIGLhu5kgdGjGsCBt4bulYyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NSBidWlsdGluL2Rlc2NyaWJlLmM6NDEyIGJ1aWx0aW4vZ3JlcC5jOjcxNwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NCBidWlsdGluL25hbWUtcmV2LmM6MjMxIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODAgYnVpbHRpbi9kZXNjcmliZS5jOjQyMCBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMgYnVpbHRpbi9uYW1lLXJldi5jOjMxNSBidWlsdGluL3Nob3ctcmVmLmM6MTg2CiBtc2dpZCAicGF0dGVybiIKIG1zZ3N0ciAibeG6q3UiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjYKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODEKIG1zZ2lkICJhZGQgPHBhdHRlcm4+IHRvIGlnbm9yZSBydWxlcyIKIG1zZ3N0ciAidGjDqm0gPG3huqt1PiB2w6BvIHRyb25nIHF1aSB04bqvYyBi4buPIHF1YSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgIsSR4buTbmcgdGjhu51pIGfhu6EgYuG7jyBj4bqjIGPDoWMgdOG6rXAgdGluIGLhu4sgYuG7jyBxdWEiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjkKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4ODQKIG1zZ2lkICJyZW1vdmUgb25seSBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJjaOG7iSBn4buhIGLhu48gbmjhu69uZyB04bqtcCB0aW4gYuG7iyBi4buPIHF1YSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE4NworIzogYnVpbHRpbi9jbGVhbi5jOjkwMgogbXNnaWQgIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiLXggdsOgIC1YIGtow7RuZyB0aOG7gyBkw7luZyBjw7luZyBt4buZdCBsw7pjIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxOTEKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDYKIG1zZ2lkICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIHNldCB0byB0cnVlIGFuZCBuZWl0aGVyIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gY2xlYW4iCi1tc2dzdHIgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gIC1uIG3DoCBjxaluZyAiCi0ia2jDtG5nIC1mOyB04burIGNo4buRaSBs4buHbmggZOG7jW4gZOG6uXAgKGNsZWFuKSIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIG3hurdjIMSR4buLbmggxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gIC1uICIKLSJtw6AgY8Wpbmcga2jDtG5nIC1mOyB04burIGNo4buRaSBs4buHbmggZOG7jW4gZOG6uXAgKGNsZWFuKSIKKyJjbGVhbi5yZXF1aXJlRm9yY2UgxJHGsOG7o2MgxJHhurd0IHRow6BuaCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLW4gbcOgIGPFqW5nICIKKyJraMO0bmcgLWY7IHThu6sgY2jhu5FpIGzhu4duaCBk4buNbiBk4bq5cCAoY2xlYW4pIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDkKK21zZ2lkICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgIgorInJlZnVzaW5nIHRvIGNsZWFuIgorbXNnc3RyICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIG3hurdjIMSR4buLbmggxJHGsOG7o2MgxJHhurd0IGzDoCB0cnVlIHbDoCBraMO0bmcgxJHGsGEgcmEgdMO5eSBjaOG7jW4gLW4gbcOgICIKKyJjxaluZyBraMO0bmcgLWY7IHThu6sgY2jhu5FpIGzhu4duaCBk4buNbiBk4bq5cCAoY2xlYW4pIgorCisjOiBidWlsdGluL2Nsb25lLmM6MzYKIG1zZ2lkICJnaXQgY2xvbmUgW29wdGlvbnNdIFstLV0gPHJlcG8+IFs8ZGlyPl0iCiBtc2dzdHIgImdpdCBjbG9uZSBbY8OhYy10w7l5LWNo4buNbl0gWy0tXSA8a2hvPiBbPHQubeG7pWM+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY1IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjE0Ci0jOiBidWlsdGluL3B1c2guYzo0MzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDYyCiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICLDqXAgYnXhu5ljIGLDoW8gY8OhbyB0aeG6v24gdHLDrG5oIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NgogbXNnaWQgImRvbid0IGNyZWF0ZSBhIGNoZWNrb3V0IgogbXNnc3RyICJraMO0bmcgdOG6oW8gbeG7mXQgY2hlY2tvdXQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2OCBidWlsdGluL2Nsb25lLmM6NzAgYnVpbHRpbi9pbml0LWRiLmM6NDg4CisjOiBidWlsdGluL2Nsb25lLmM6NjcgYnVpbHRpbi9jbG9uZS5jOjY5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4OAogbXNnaWQgImNyZWF0ZSBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAidOG6oW8ga2hvIGNo4bupYSBiYXJlIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3MgogbXNnaWQgImNyZWF0ZSBhIG1pcnJvciByZXBvc2l0b3J5IChpbXBsaWVzIGJhcmUpIgogbXNnc3RyICJ04bqhbyBraG8gYuG6o24gc2FvIChtaXJyb3IpIChuZ+G7pSDDvSBsw6AgYmFyZSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NQorIzogYnVpbHRpbi9jbG9uZS5jOjc0CiBtc2dpZCAidG8gY2xvbmUgZnJvbSBhIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIsSR4buDIG5ow6JuIGLhuqNuIHThu6sga2hvIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjc2CiBtc2dpZCAiZG9uJ3QgdXNlIGxvY2FsIGhhcmRsaW5rcywgYWx3YXlzIGNvcHkiCiBtc2dzdHIgImtow7RuZyBz4butIGThu6VuZyBsacOqbiBr4bq/dCBj4bupbmcgbuG7mWkgYuG7mSwgbHXDtG4gc2FvIGNow6lwIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzkKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OAogbXNnaWQgInNldHVwIGFzIHNoYXJlZCByZXBvc2l0b3J5IgogbXNnc3RyICJjw6BpIMSR4bq3dCDEkcOieSBsw6Aga2hvIGNoaWEgc+G6uyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCiBtc2dzdHIgImto4bufaSB04bqhbyBtw7QtxJF1bi1jb24gdHJvbmcgYuG6o24gc2FvIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg1CisjOiBidWlsdGluL2Nsb25lLmM6ODMgYnVpbHRpbi9pbml0LWRiLmM6NDg1CiBtc2dpZCAidGVtcGxhdGUtZGlyZWN0b3J5IgogbXNnc3RyICJ0aMawLW3hu6VjLXThuqFtIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAidGjGsCBt4bulYyBtw6AgdOG6oWkgxJHDsyBjw6FjIG3huqt1IHPhur0gxJHGsOG7o2MgZMO5bmciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4NworIzogYnVpbHRpbi9jbG9uZS5jOjg2CiBtc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkiCiBtc2dzdHIgImtobyB0aGFtIGNoaeG6v3UiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgInTDqm4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OQorIzogYnVpbHRpbi9jbG9uZS5jOjg4CiBtc2dpZCAidXNlIDxuYW1lPiBpbnN0ZWFkIG9mICdvcmlnaW4nIHRvIHRyYWNrIHVwc3RyZWFtIgogbXNnc3RyICJkw7luZyA8dMOqbj4gdGhheSB2w6wg4oCcb3JpZ2lu4oCdIMSR4buDIHRoZW8gZMO1aSB0aMaw4bujbmcgbmd14buTbiAodXB0cmVhbSkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MQorIzogYnVpbHRpbi9jbG9uZS5jOjkwCiBtc2dpZCAiY2hlY2tvdXQgPGJyYW5jaD4gaW5zdGVhZCBvZiB0aGUgcmVtb3RlJ3MgSEVBRCIKIG1zZ3N0ciAibOG6pXkgcmEgbmjDoW5oIChjaGVja291dCA8bmjDoW5oPikgdGhheSB2w6wgSEVBRCBj4bunYSBtw6F5IGNo4bunIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTMKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5MgogbXNnaWQgInBhdGggdG8gZ2l0LXVwbG9hZC1wYWNrIG9uIHRoZSByZW1vdGUiCiBtc2dzdHIgIsSRxrDhu51uZyBk4bqrbiDEkeG6v24gZ2l0LXVwbG9hZC1wYWNrIHRyw6puIG3DoXkgY2jhu6ciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NCBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYyCisjOiBidWlsdGluL2Nsb25lLmM6OTMgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MQogbXNnaWQgImRlcHRoIgogbXNnc3RyICLEkeG7mSBzw6J1IgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NAogbXNnaWQgImNyZWF0ZSBhIHNoYWxsb3cgY2xvbmUgb2YgdGhhdCBkZXB0aCIKIG1zZ3N0ciAidOG6oW8gYuG6o24gc2FvIGtow7RuZyDEkeG6p3kgxJHhu6cgY2hvIG3hu6ljIHPDonUgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgogbXNnc3RyICJuaMOibiBi4bqjbiAoY2xvbmUpIGNo4buJIG3hu5l0IG5ow6FuaCwgSEVBRCBob+G6t2MgLS1icmFuY2giCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5OCBidWlsdGluL2luaXQtZGIuYzo0OTQKKyM6IGJ1aWx0aW4vY2xvbmUuYzo5NyBidWlsdGluL2luaXQtZGIuYzo0OTQKIG1zZ2lkICJnaXRkaXIiCiBtc2dzdHIgImdpdGRpciIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk5IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NQogbXNnaWQgInNlcGFyYXRlIGdpdCBkaXIgZnJvbSB3b3JraW5nIHRyZWUiCiBtc2dzdHIgImtow7RuZyBkw7luZyBjaHVuZyB0aMawIG3hu6VjIGTDoG5oIHJpw6puZyBjaG8gZ2l0IHbDoCB0aMawIG3hu6VjIGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgImtow7NhPWdpw6EgdHLhu4siCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoxMDEKKyM6IGJ1aWx0aW4vY2xvbmUuYzoxMDAKIG1zZ2lkICJzZXQgY29uZmlnIGluc2lkZSB0aGUgbmV3IHJlcG9zaXRvcnkiCiBtc2dzdHIgIsSR4bq3dCBj4bqldSBow6xuaCBiw6puIHRyb25nIG3hu5l0IGtobyBjaOG7qWEgbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzoyNDQKKyM6IGJ1aWx0aW4vY2xvbmUuYzoyNTMKICMsIGMtZm9ybWF0Ci1tc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCBkaXJlY3RvcnkuIgotbXNnc3RyICJraG8gdGhhbSBjaGnhur91IOKAnCVz4oCdIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMgbuG7mWkgYuG7mS4iCittc2dpZCAicmVmZXJlbmNlIHJlcG9zaXRvcnkgJyVzJyBpcyBub3QgYSBsb2NhbCByZXBvc2l0b3J5LiIKK21zZ3N0ciAia2hvIHRoYW0gY2hp4bq/dSDigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBraG8gbuG7mWkgYuG7mS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMDcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAidOG6oW8gdGjGsCBt4bulYyBcIiVzXCIgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMDkgYnVpbHRpbi9kaWZmLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMTggYnVpbHRpbi9kaWZmLmM6NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMxMQorIzogYnVpbHRpbi9jbG9uZS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBleGlzdHMgYW5kIGlzIG5vdCBhIGRpcmVjdG9yeSIKIG1zZ3N0ciAiJXMgdOG7k24gdOG6oWkgbmjGsG5nIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMjUKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHN0YXQgJXNcbiIKIG1zZ3N0ciAibOG7l2kgc3RhdCAobOG6pXkgdHLhuqFuZyB0aMOhaSB24buBKSAlc1xuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzQ3CisjOiBidWlsdGluL2Nsb25lLmM6MzU2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGluayAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgdOG6oW8gxJHGsOG7o2MgbGnDqm4ga+G6v3QgbeG7gW0gJXMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNvcHkgZmlsZSB0byAnJXMnIgogbXNnc3RyICJn4bq3cCBs4buXaSBraGkgY2jDqXAgdOG6rXAgdGluIHThu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzc0CisjOiBidWlsdGluL2Nsb25lLmM6MzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImRvbmUuXG4iCiBtc2dzdHIgImhvw6BuIHThuqV0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Mzg3CisjOiBidWlsdGluL2Nsb25lLmM6Mzk2CiBtc2dpZCAiIgogIkNsb25lIHN1Y2NlZWRlZCwgYnV0IGNoZWNrb3V0IGZhaWxlZC5cbiIKICJZb3UgY2FuIGluc3BlY3Qgd2hhdCB3YXMgY2hlY2tlZCBvdXQgd2l0aCAnZ2l0IHN0YXR1cydcbiIKICJhbmQgcmV0cnkgdGhlIGNoZWNrb3V0IHdpdGggJ2dpdCBjaGVja291dCAtZiBIRUFEJ1xuIgogbXNnc3RyICIiCiAiVmnhu4djIG5ow6JuIGLhuqNuIHRow6BuaCBjw7RuZywgbmjGsG5nIGNoZWNrb3V0IGfhurdwIGzhu5dpLlxuIgotIkLhuqFuIGtp4buDbSB0cmEga+G7uSB4ZW0gY8OhaSBnw6wgxJHGsOG7o2MgbOG6pXkgcmEgYuG6sW5nIGzhu4duaCAnZ2l0IHN0YXR1cydcbiIKLSJ2w6AgdGjhu60gY2hlY2tvdXQgduG7m2kgbOG7h25oICdnaXQgY2hlY2tvdXQgLWYgSEVBRCdcbiIKKyJC4bqhbiBraeG7g20gdHJhIGvhu7kgeGVtIGPDoWkgZ8OsIMSRxrDhu6NjIGzhuqV5IHJhIGLhurFuZyBs4buHbmgg4oCcZ2l0IHN0YXR1c+KAnVxuIgorInbDoCB0aOG7rSBjaGVja291dCB24bubaSBs4buHbmgg4oCcZ2l0IGNoZWNrb3V0IC1mIEhFQUTigJ1cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjQ2NgorIzogYnVpbHRpbi9jbG9uZS5jOjQ3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCByZW1vdGUgYnJhbmNoICVzIHRvIGNsb25lLiIKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IG5ow6FuaCBtw6F5IGNo4bunICVzIMSR4buDIG5ow6JuIGLhuqNuIChjbG9uZSkuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NTQwCisjOiBidWlsdGluL2Nsb25lLmM6NTU1CisjLCBjLWZvcm1hdAorbXNnaWQgIkNoZWNraW5nIGNvbm5lY3Rpdml0eS4uLiAiCittc2dzdHIgIsSQYW5nIGtp4buDbSB0cmEga+G6v3QgbuG7kWkuLi4iCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NTgKIG1zZ2lkICJyZW1vdGUgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0cyIKIG1zZ3N0ciAibcOheSBjaOG7pyDEkcOjIGtow7RuZyBn4butaSB04bqldCBj4bqjIGPDoWMgxJHhu5FpIHTGsOG7o25nIGPhuqduIHRoaeG6v3QiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MDAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo1NjAKKyMsIGMtZm9ybWF0Cittc2dpZCAiZG9uZVxuIgorbXNnc3RyICJ4b25nLlxuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjIxCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICJyZWZlcnMgSEVBRCBtw6F5IGNo4bunICBjaOG7iSDEkeG6v24gcmVmIGtow7RuZyB04buTbiB04bqhaSwga2jDtG5nIHRo4buDIGNoZWNrb3V0LlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NjMxCisjOiBidWlsdGluL2Nsb25lLmM6NjUyCiBtc2dpZCAidW5hYmxlIHRvIGNoZWNrb3V0IHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHJhIChjaGVja291dCkgY8OieSBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjczOQorIzogYnVpbHRpbi9jbG9uZS5jOjc2MAogbXNnaWQgIlRvbyBtYW55IGFyZ3VtZW50cy4iCiBtc2dzdHIgIkPDsyBxdcOhIG5oaeG7gXUgxJHhu5FpIHPhu5EuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzQzCisjOiBidWlsdGluL2Nsb25lLmM6NzY0CiBtc2dpZCAiWW91IG11c3Qgc3BlY2lmeSBhIHJlcG9zaXRvcnkgdG8gY2xvbmUuIgogbXNnc3RyICJC4bqhbiBwaOG6o2kgY2jhu4kgxJHhu4tuaCBt4buZdCBraG8gxJHhu4MgbcOgIG5ow6JuIGLhuqNuIChjbG9uZSkuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzU0CisjOiBidWlsdGluL2Nsb25lLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIi0tYmFyZSBhbmQgLS1vcmlnaW4gJXMgb3B0aW9ucyBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAidMO5eSBjaOG7jW4gLS1iYXJlIHbDoCAtLW9yaWdpbiAlcyB4dW5nIGto4bqvYyBuaGF1LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1NworIzogYnVpbHRpbi9jbG9uZS5jOjc3OAogbXNnaWQgIi0tYmFyZSBhbmQgLS1zZXBhcmF0ZS1naXQtZGlyIGFyZSBpbmNvbXBhdGlibGUuIgogbXNnc3RyICJ0w7l5IGNo4buNbiAtLWJhcmUgdsOgIC0tc2VwYXJhdGUtZ2l0LWRpciB4dW5nIGto4bqvYyBuaGF1LiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc3MAorIzogYnVpbHRpbi9jbG9uZS5jOjc5MQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXBvc2l0b3J5ICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgImtobyBjaOG7qWEg4oCcJXPigJ0gY2jGsGEgdOG7k24gdOG6oWkiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NzUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTYKIG1zZ2lkICItLWRlcHRoIGlzIGlnbm9yZWQgaW4gbG9jYWwgY2xvbmVzOyB1c2UgZmlsZTovLyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1kZXB0aCBi4buLIGzhu50gxJFpIGtoaSBuaMOibiBi4bqjbiBu4buZaSBi4buZOyBow6N5IHPhu60gZOG7pW5nIGZpbGU6Ly8gxJHhu4MgdGhheSB0aOG6vy4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3ODUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3OTgKK21zZ2lkICItLWxvY2FsIGlzIGlnbm9yZWQiCittc2dzdHIgIi0tbG9jYWwgYuG7iyBs4budIMSRaSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICLEkcaw4budbmcgZOG6q24gxJHDrWNoIOKAnCVz4oCdIMSRw6MgY8OzIHThu6sgdHLGsOG7m2MgdsOgIGtow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHRoxrAgbeG7pWMgcuG7l25nLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc5NQorIzogYnVpbHRpbi9jbG9uZS5jOjgxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ3b3JraW5nIHRyZWUgJyVzJyBhbHJlYWR5IGV4aXN0cy4iCiBtc2dzdHIgImPDonkgbMOgbSB2aeG7h2Mg4oCcJXPigJ0gxJHDoyBz4bq1biB04buTbiB04bqhaSBy4buTaS4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDggYnVpbHRpbi9jbG9uZS5jOjgyMAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMSBidWlsdGluL2Nsb25lLmM6ODQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBvZiAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdOG6oW8gY8OhYyB0aMawIG3hu6VjIGThuqtuIMSR4bqndSBj4bunYSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxMQorIzogYnVpbHRpbi9jbG9uZS5jOjgzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgY3JlYXRlIHdvcmsgdHJlZSBkaXIgJyVzJy4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyBjw6J5IHRoxrAgbeG7pWMgbMOgbSB2aeG7h2MgZGlyIOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgzMAorIzogYnVpbHRpbi9jbG9uZS5jOjg1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDbG9uaW5nIGludG8gYmFyZSByZXBvc2l0b3J5ICclcycuLi5cbiIKIG1zZ3N0ciAixJBhbmcgbmjDom4gYuG6o24gdGjDoG5oIGtobyBjaOG7qWEgYmFyZSDigJwlc+KAnS4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODMyCisjOiBidWlsdGluL2Nsb25lLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsb25pbmcgaW50byAnJXMnLi4uXG4iCiBtc2dzdHIgIsSQYW5nIG5ow6JuIGLhuqNuIHRow6BuaCDigJwlc+KAnS4uLlxuIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODY3CisjOiBidWlsdGluL2Nsb25lLmM6ODkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvbid0IGtub3cgaG93IHRvIGNsb25lICVzIgogbXNnc3RyICJLaMO0bmcgYmnhur90IGzDoG0gY8OhY2ggbsOgbyDEkeG7gyBuaMOibiBi4bqjbiAoY2xvbmUpICVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTE2CisjOiBidWlsdGluL2Nsb25lLmM6OTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW90ZSBicmFuY2ggJXMgbm90IGZvdW5kIGluIHVwc3RyZWFtICVzIgogbXNnc3RyICJOaMOhbmggbcOheSBjaOG7pyAlcyBraMO0bmcgdMOsbSB0aOG6pXkgdHJvbmcgdGjGsOG7o25nIG5ndeG7k24gKHVwc3RyZWFtKSAlcyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyMworIzogYnVpbHRpbi9jbG9uZS5jOjk0OQogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIkLhuqFuIGjDrG5oIG5oxrAgbMOgIMSRw6MgbmjDom4gYuG6o24gbeG7mXQga2hvIHRy4buRbmcgcuG7l25nLiIKIApAQCAtMzU2OSwxNSArMzkyNywxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiLS1jb21tYW5kIHBo4bqjaSBsw6AgxJHhu5FpIHPhu5EgxJHhuqd1IHRpw6puIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0CisjOiBidWlsdGluL2NvbW1pdC5jOjM1CiBtc2dpZCAiZ2l0IGNvbW1pdCBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgY29tbWl0IFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDAKIG1zZ2lkICJnaXQgc3RhdHVzIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBzdGF0dXMgW2PDoWMtdMO5eS1jaOG7jW5dIFstLV0gPHBhdGhzcGVjPi4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0NAorIzogYnVpbHRpbi9jb21taXQuYzo0NQogbXNnaWQgIiIKICJZb3VyIG5hbWUgYW5kIGVtYWlsIGFkZHJlc3Mgd2VyZSBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWRcbiIKICJvbiB5b3VyIHVzZXJuYW1lIGFuZCBob3N0bmFtZS4gUGxlYXNlIGNoZWNrIHRoYXQgdGhleSBhcmUgYWNjdXJhdGUuXG4iCkBAIC0zNjA1LDcgKzM5NjMsNyBAQAogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYW1lbmQgLS1yZXNldC1hdXRob3JcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NgorIzogYnVpbHRpbi9jb21taXQuYzo1NwogbXNnaWQgIiIKICJZb3UgYXNrZWQgdG8gYW1lbmQgdGhlIG1vc3QgcmVjZW50IGNvbW1pdCwgYnV0IGRvaW5nIHNvIHdvdWxkIG1ha2VcbiIKICJpdCBlbXB0eS4gWW91IGNhbiByZXBlYXQgeW91ciBjb21tYW5kIHdpdGggLS1hbGxvdy1lbXB0eSwgb3IgeW91IGNhblxuIgpAQCAtMzYxOCwxMTQgKzM5NzYsMTMyIEBACiAiaG/hurdjIGzDoCBi4bqhbiBn4buhIGLhu48gY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIG3hu5l0IGPDoWNoIGhvw6BuIHRvw6BuIGLhurFuZyBs4buHbmg6XG4iCiAiXCJnaXQgcmVzZXQgSEVBRF5cIi5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MQorIzogYnVpbHRpbi9jb21taXQuYzo2MgogbXNnaWQgIiIKICJUaGUgcHJldmlvdXMgY2hlcnJ5LXBpY2sgaXMgbm93IGVtcHR5LCBwb3NzaWJseSBkdWUgdG8gY29uZmxpY3QgcmVzb2x1dGlvbi5cbiIKICJJZiB5b3Ugd2lzaCB0byBjb21taXQgaXQgYW55d2F5LCB1c2U6XG4iCiAiXG4iCiAiICAgIGdpdCBjb21taXQgLS1hbGxvdy1lbXB0eVxuIgogIlxuIgotIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgogbXNnc3RyICIiCiAiTOG6p24gY2hlcnJ5LXBpY2sgdHLGsOG7m2MgaGnhu4duIG5heSB0cuG7kW5nIHLhu5duZywgY8OzIGzhur0gbMOgIGLhu59pIHbDrCBz4buxIHBow6JuIGdp4bqjaSB4dW5nICIKICLEkeG7mXQuXG4iCi0iTuG6v3UgYuG6oW4gbXXhu5FuIGNodXnhu4NuIGdpYW8gbsOzIGNobyBkw7kgdGjhur8gbsOgbyDEkWkgbuG7r2EsIHPhu60gZOG7pW5nOlxuIgorIk7hur91IGLhuqFuIHbhuqtuIG114buRbiBjaHV54buDbiBnaWFvIG7DsyBjaG8gZMO5IHRo4bq/IG7DoG8gxJFpIG7hu69hLCBz4butIGThu6VuZzpcbiIKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5XG4iCiAiXG4iCi0iTuG6v3Uga2jDtG5nLCBow6N5IHRo4butIGTDuW5nIOKAnGdpdCByZXNldOKAnVxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjI2MAorIzogYnVpbHRpbi9jb21taXQuYzo2OQorbXNnaWQgIk90aGVyd2lzZSwgcGxlYXNlIHVzZSAnZ2l0IHJlc2V0J1xuIgorbXNnc3RyICJO4bq/dSBraMO0bmcgxJHGsOG7o2MgdGjDrCBkw7luZyBs4buHbmggXCJnaXQgcmVzZXRcIlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjcyCittc2dpZCAiIgorIklmIHlvdSB3aXNoIHRvIHNraXAgdGhpcyBjb21taXQsIHVzZTpcbiIKKyJcbiIKKyIgICAgZ2l0IHJlc2V0XG4iCisiXG4iCisiVGhlbiBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIgd2lsbCByZXN1bWUgY2hlcnJ5LXBpY2tpbmdcbiIKKyJ0aGUgcmVtYWluaW5nIGNvbW1pdHMuXG4iCittc2dzdHIgIiIKKyJO4bq/dSBi4bqhbiBtdeG7kW4gYuG7jyBxdWEgbOG6p24gY2h1eeG7g24gZ2lhbyBuw6B5IHRow6wgZMO5bmc6XG4iCisiXG4iCisiICAgIGdpdCByZXNldFxuIgorIlxuIgorIlRo4bq/IHRow6wgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIHPhur0gcGjhu6VjIGjhu5NpIGzhuqFpIHZp4buHYyBjaGVycnktcGlja1xuIgorIm5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyBjw7JuIGzhuqFpLlxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjI3OQogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHRow6FvIGThu6EgSEVBRCDEkeG7kWkgdMaw4bujbmcgY8OieSIKIAotIzogYnVpbHRpbi9jb21taXQuYzozMDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzIxCiBtc2dpZCAidW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgaW5kZXgiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyBi4bqjbmcgbeG7pWMgbOG7pWMgdOG6oW0gdGjhu51pIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwOAorIzogYnVpbHRpbi9jb21taXQuYzozMjcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICJ2aeG7h2MgdGjDqm0gdMawxqFuZyB0w6FjIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM0MSBidWlsdGluL2NvbW1pdC5jOjM2MiBidWlsdGluL2NvbW1pdC5jOjQxMgorIzogYnVpbHRpbi9jb21taXQuYzozNjAgYnVpbHRpbi9jb21taXQuYzozODEgYnVpbHRpbi9jb21taXQuYzo0MzEKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbmV3X2luZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpIChuZXdfaW5kZXgpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5MworIzogYnVpbHRpbi9jb21taXQuYzo0MTIKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBtZXJnZS4iCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBj4bulYyBi4buZIHRyb25nIGtoaSDEkWFuZyDEkcaw4bujYyBow7JhICIKICJ0cuG7mW4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5NQorIzogYnVpbHRpbi9jb21taXQuYzo0MTQKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBi4buZIHBo4bqtbiB0cm9uZyBraGkgxJFhbmcgY2hlcnJ5LSIKICJwaWNrLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICJraMO0bmcgxJHhu41jIMSRxrDhu6NjIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDQ0CiBtc2dpZCAidW5hYmxlIHRvIHdyaXRlIHRlbXBvcmFyeSBpbmRleCBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZ2hpIHThuq1wIHRpbiBsxrB1IGLhuqNuZyBt4bulYyBs4bulYyB04bqhbSB0aOG7nWkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTEzIGJ1aWx0aW4vY29tbWl0LmM6NTE5CisjOiBidWlsdGluL2NvbW1pdC5jOjUzNSBidWlsdGluL2NvbW1pdC5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIGNvbW1pdDogJXMiCiBtc2dzdHIgImzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkga2jDtG5nIGjhu6NwIGzhu4c6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjU0MgorIzogYnVpbHRpbi9jb21taXQuYzo1NjMKIG1zZ2lkICJtYWxmb3JtZWQgLS1hdXRob3IgcGFyYW1ldGVyIgogbXNnc3RyICLEkeG7kWkgc+G7kSAtLWF1dGhvciBi4buLIGThu4sgaMOsbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYyCisjOiBidWlsdGluL2NvbW1pdC5jOjU4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaWRlbnQgc3RyaW5nOiAnJXMnIgogbXNnc3RyICJDaHXhu5dpIHRo4buldCBs4buBIMSR4bqndSBkw7JuZyBk4buLIGjDrG5oOiDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MDAgYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9jb21taXQuYzo5NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIxIGJ1aWx0aW4vY29tbWl0LmM6NjU0IGJ1aWx0aW4vY29tbWl0LmM6OTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBsb29rdXAgY29tbWl0ICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdMOsbSBraeG6v20gY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTIgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MgorIzogYnVpbHRpbi9jb21taXQuYzo2MzMgYnVpbHRpbi9zaG9ydGxvZy5jOjI3MQogIywgYy1mb3JtYXQKIG1zZ2lkICIocmVhZGluZyBsb2cgbWVzc2FnZSBmcm9tIHN0YW5kYXJkIGlucHV0KVxuIgogbXNnc3RyICIoxJFhbmcgxJHhu41jIHRow7RuZyDEkWnhu4dwIG5o4bqtdCBrw70gdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluKVxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxNAorIzogYnVpbHRpbi9jb21taXQuYzo2MzUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZnJvbSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBuaOG6rXQga8O9IHThu6sgxJHhuqd1IHbDoG8gdGnDqnUgY2h14bqpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MTgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjM5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGxvZyBmaWxlICclcyciCiBtc2dzdHIgImtow7RuZyDEkeG7jWMgxJHGsOG7o2MgdOG7h3Agbmjhuq10IGvDvSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2MjQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ1CiBtc2dpZCAiY29tbWl0IGhhcyBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGPDsyBnaGkgY2jDuiB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjYxCiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTVNHIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIE1FUkdFX01TRyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo2NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjY1CiBtc2dpZCAiY291bGQgbm90IHJlYWQgU1FVQVNIX01TRyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0OAorIzogYnVpbHRpbi9jb21taXQuYzo2NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4buNYyDigJwlc+KAnS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzA5CisjOiBidWlsdGluL2NvbW1pdC5jOjczMAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBjb21taXQgdGVtcGxhdGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgbeG6q3UgY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyMAorIzogYnVpbHRpbi9jb21taXQuYzo3NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzc0MCw3ICs0MTE2LDcgQEAKICJcdCVzXG4iCiAidsOgIHRo4butIGzhuqFpLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyNQorIzogYnVpbHRpbi9jb21taXQuYzo3NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzc1NSw3ICs0MTMxLDcgQEAKICJcdCVzXG4iCiAidsOgIHRo4butIGzhuqFpLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjczNworIzogYnVpbHRpbi9jb21taXQuYzo3NTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmdcbiIKQEAgLTM3NjYsNyArNDE0Miw3IEBACiAiYuG6r3QgxJHhuqd1IGLhurFuZyDigJwlY+KAnSBz4bq9IMSRxrDhu6NjIGLhu48gcXVhLCBu4bq/dSBwaOG6p24gY2jDuiB0aMOtY2ggcuG7l25nIHPhur0gaOG7p3kgYuG7jyBs4bqnbiAiCiAiY2h1eeG7g24gZ2lhbyAoY29tbWl0KS5cbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC0zNzc4LDM3MiArNDE1NCwzNzIgQEAKICJi4bqvdCDEkeG6p3UgYuG6sW5nIOKAnCVj4oCdIHPhur0gxJHGsOG7o2MgYuG7jyBxdWE7IGLhuqFuIGPDsyB0aOG7gyB4w7NhIGNow7puZyDEkWkgbuG6v3UgbXXhu5FuIHRo4bq/LlxuIgogIlBo4bqnbiBjaMO6IHRow61jaCBuw6B5IG7hur91IHRy4buRbmcgcuG7l25nIHPhur0gaOG7p3kgYuG7jyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLlxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1NQorIzogYnVpbHRpbi9jb21taXQuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNBdXRob3I6ICAgICVzIgogbXNnc3RyICIlc1TDoWMgZ2nhuqM6ICAgICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc2MgorIzogYnVpbHRpbi9jb21taXQuYzo3ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNDb21taXR0ZXI6ICVzIgogbXNnc3RyICIlc05nxrDhu51pIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjc4MgorIzogYnVpbHRpbi9jb21taXQuYzo4MDMKIG1zZ2lkICJDYW5ub3QgcmVhZCBpbmRleCIKIG1zZ3N0ciAia2jDtG5nIMSR4buNYyDEkcaw4bujYyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6ODE5CisjOiBidWlsdGluL2NvbW1pdC5jOjg0NQogbXNnaWQgIkVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgeMOieSBk4buxbmcgY8OieSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAiWGluIGjDo3kgw6FwIGThu6VuZyB0aMO0bmcgxJFp4buHcCBz4butIGThu6VuZyBob+G6t2MgbMOgIHTDuXkgY2jhu41uIC1tIGhv4bq3YyBsw6AgLUYuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTMxCisjOiBidWlsdGluL2NvbW1pdC5jOjk1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBleGlzdGluZyBhdXRob3IgZm91bmQgd2l0aCAnJXMnIgogbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgdMOhYyBnaeG6oyBjw7Mgc+G6tW4gduG7m2kg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTQ2IGJ1aWx0aW4vY29tbWl0LmM6MTE0MAorIzogYnVpbHRpbi9jb21taXQuYzo5NzIgYnVpbHRpbi9jb21taXQuYzoxMjA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgdW50cmFja2VkIGZpbGVzIG1vZGUgJyVzJyIKIG1zZ3N0ciAiQ2jhur8gxJHhu5kgY2hvIGPDoWMgdOG6rXAgdGluIGtow7RuZyBi4buLIHRoZW8gduG6v3Qga2jDtG5nIGjhu6NwIGzhu4cg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTc2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwMDkKK21zZ2lkICItLWxvbmcgYW5kIC16IGFyZSBpbmNvbXBhdGlibGUiCittc2dzdHIgImhhaSB0w7l5IGNo4buNbiAtbG9uZyB2w6AgLXoga2jDtG5nIHTGsMahbmcgdGjDrWNoIHbhu5tpIG5oYXUiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOQogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIlPhu60gZOG7pW5nIGPhuqMgaGFpIHTDuXkgY2jhu41uIC0tcmVzZXQtYXV0aG9yIHbDoCAtLWF1dGhvciBraMO0bmcgaOG7o3AgbMO9IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk4NworIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIktow7RuZyBjw7MgZ8OsIMSR4buDIGFtZW5kICh0dSBi4buVKSBj4bqjLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MwogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIiIKICJC4bqhbiDEkWFuZyDhu58gZ2nhu69hIGPhu6dhIHF1w6EgdHLDrG5oIGjDsmEgdHLhu5luIC0tIGtow7RuZyB0aOG7gyB0aOG7sWMgaGnhu4duIGFtZW5kICh0dSBi4buVKS4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBjaGVycnktcGljayAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICIiCiAiQuG6oW4gxJFhbmcg4bufIGdp4buvYSBj4bunYSBxdcOhIHRyw6xuaCBjaGVycnktcGljayAtLSBraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBhbWVuZCAodHUgIgogImLhu5UpLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1OAogbXNnaWQgIk9wdGlvbnMgLS1zcXVhc2ggYW5kIC0tZml4dXAgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIkPDoWMgdMO5eSBjaOG7jW4gLS1zcXVhc2ggdsOgIC0tZml4dXAga2jDtG5nIHRo4buDIHPhu60gZOG7pW5nIGPDuW5nIHbhu5tpIG5oYXUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwNQorIzogYnVpbHRpbi9jb21taXQuYzoxMDY4CiBtc2dpZCAiT25seSBvbmUgb2YgLWMvLUMvLUYvLS1maXh1cCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIkNo4buJIG3hu5l0IHTDuXkgY2jhu41uIHRyb25nIHPhu5EgLWMvLUMvLUYvLS1maXh1cCDEkcaw4bujYyBz4butIGThu6VuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA3CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzAKIG1zZ2lkICJPcHRpb24gLW0gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLWMvLUMvLUYvLS1maXh1cC4iCiBtc2dzdHIgIlTDuXkgY2jhu41uIC1tIGtow7RuZyB0aOG7gyDEkcaw4bujYyB04buVIGjhu6NwIGPDuW5nIHbhu5tpIC1jLy1DLy1GLy0tZml4dXAuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMTUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3OAogbXNnaWQgIi0tcmVzZXQtYXV0aG9yIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCAtQywgLWMgb3IgLS1hbWVuZC4iCiBtc2dzdHIgIiIKICItLXJlc2V0LWF1dGhvciBjaOG7iSBjw7MgdGjhu4MgxJHGsOG7o2Mgc+G7rSBk4bulbmcgduG7m2kgdMO5eSBjaOG7jW4gLUMsIC1jIGhheSAtLWFtZW5kLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDMyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTUKIG1zZ2lkICJPbmx5IG9uZSBvZiAtLWluY2x1ZGUvLS1vbmx5Ly0tYWxsLy0taW50ZXJhY3RpdmUvLS1wYXRjaCBjYW4gYmUgdXNlZC4iCiBtc2dzdHIgIiIKICJDaOG7iSBt4buZdCB0cm9uZyBjw6FjIHTDuXkgY2jhu41uIC0taW5jbHVkZS8tLW9ubHkvLS1hbGwvLS1pbnRlcmFjdGl2ZS8tLXBhdGNoIMSRxrDhu6NjICIKICJz4butIGThu6VuZy4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzNAorIzogYnVpbHRpbi9jb21taXQuYzoxMDk3CiBtc2dpZCAiTm8gcGF0aHMgd2l0aCAtLWluY2x1ZGUvLS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJLaMO0bmcgxJHGsOG7nW5nIGThuqtuIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gLS1pbmNsdWRlLy0tb25seSBraMO0bmcgaOG7o3AgbMO9LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDM2CisjOiBidWlsdGluL2NvbW1pdC5jOjEwOTkKIG1zZ2lkICJDbGV2ZXIuLi4gYW1lbmRpbmcgdGhlIGxhc3Qgb25lIHdpdGggZGlydHkgaW5kZXguIgogbXNnc3RyICJHaeG7j2kuLi4gIHR1IGLhu5UgY8OhaSBjdeG7kWkgduG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIHBoaSBuZ2jEqWEuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTEwMQogbXNnaWQgIkV4cGxpY2l0IHBhdGhzIHNwZWNpZmllZCB3aXRob3V0IC1pIG5vciAtbzsgYXNzdW1pbmcgLS1vbmx5IHBhdGhzLi4uIgogbXNnc3RyICIiCiAiTmjhu69uZyDEkcaw4budbmcgZOG6q24gcsO1IHLDoG5nIMSRxrDhu6NjIGNo4buJIHJhIGtow7RuZyBjw7MgdMO5eSBjaOG7jW4gLWkgY8Wpbmcga2jDtG5nIC1vOyDEkWFuZyAiCiAiZ2nhuqMgxJHhu4tuaCAtLW9ubHkgbmjhu69uZy3Ekcaw4budbmctZOG6q24uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTA0OCBidWlsdGluL3RhZy5jOjU3NQorIzogYnVpbHRpbi9jb21taXQuYzoxMTExIGJ1aWx0aW4vdGFnLmM6NTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgY2xlYW51cCBtb2RlICVzIgogbXNnc3RyICJDaOG6vyDEkeG7mSBk4buNbiBk4bq5cCBraMO0bmcgaOG7o3AgbOG7hyAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCisjOiBidWlsdGluL2NvbW1pdC5jOjExMTYKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICJDw6FjIMSRxrDhu51uZyBk4bqrbiB24bubaSB0w7l5IGNo4buNbiAtYSBraMO0bmcgaOG7o3AgbMO9LiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDU5IGJ1aWx0aW4vY29tbWl0LmM6MTE5NAotbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKLW1zZ3N0ciAiaGFpIHTDuXkgY2jhu41uIC1sb25nIHbDoCAteiBraMO0bmcgdMawxqFuZyB0aMOtY2ggduG7m2kgbmhhdSIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMTU0IGJ1aWx0aW4vY29tbWl0LmM6MTM5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjIyIGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRy4bqhbmcgdGjDoWkg4bufIGThuqFuZyBzw7pjIHTDrWNoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTYgYnVpbHRpbi9jb21taXQuYzoxMzkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0aMO0bmcgdGluIG5ow6FuaCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU4IGJ1aWx0aW4vY29tbWl0LmM6MTM5NCBidWlsdGluL3B1c2guYzo0MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCiBtc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCiBtc2dzdHIgImvhur90IHh14bqldCBk4bqhbmcgbcOheS1jw7MtdGjhu4MtxJHhu41jIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjEgYnVpbHRpbi9jb21taXQuYzoxMzk2CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjkgYnVpbHRpbi9jb21taXQuYzoxNDYxCiBtc2dpZCAic2hvdyBzdGF0dXMgaW4gbG9uZyBmb3JtYXQgKGRlZmF1bHQpIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdHLhuqFuZyB0aMOhaSDhu58gxJHhu4tuaCBk4bqhbmcgZMOgaSAobeG6t2MgxJHhu4tuaCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NCBidWlsdGluL2NvbW1pdC5jOjEzOTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzMiBidWlsdGluL2NvbW1pdC5jOjE0NjQKIG1zZ2lkICJ0ZXJtaW5hdGUgZW50cmllcyB3aXRoIE5VTCIKIG1zZ3N0ciAiY2jhuqVtIGThu6l0IGPDoWMgbeG7pWMgYuG6sW5nIE5VTCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUzCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU2IGJ1aWx0aW4vdGFnLmM6NDU5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzQgYnVpbHRpbi9jb21taXQuYzoxNDY3IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAgYnVpbHRpbi90YWcuYzo0NTkKIG1zZ2lkICJtb2RlIgogbXNnc3RyICJjaOG6vyDEkeG7mSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY3IGJ1aWx0aW4vY29tbWl0LmM6MTQwMgorIzogYnVpbHRpbi9jb21taXQuYzoxMjM1IGJ1aWx0aW4vY29tbWl0LmM6MTQ2NwogbXNnaWQgInNob3cgdW50cmFja2VkIGZpbGVzLCBvcHRpb25hbCBtb2RlczogYWxsLCBub3JtYWwsIG5vLiAoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgogImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyB0aGVvIGTDtWkgIGThuqV1IHbhur90LCBjw6FjIGNo4bq/IMSR4buZIHTDuXkgY2jhu41uOiAgYWxsLCAiCiAibm9ybWFsLCBuby4gKE3hurdjIMSR4buLbmg6IGFsbCkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjM4CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4g4bqpbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTcxIHBhcnNlLW9wdGlvbnMuaDoxNTEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOSBwYXJzZS1vcHRpb25zLmg6MTU0CiBtc2dpZCAid2hlbiIKIG1zZ3N0ciAia2hpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MAogbXNnaWQgIiIKICJpZ25vcmUgY2hhbmdlcyB0byBzdWJtb2R1bGVzLCBvcHRpb25hbCB3aGVuOiBhbGwsIGRpcnR5LCB1bnRyYWNrZWQuICIKICIoRGVmYXVsdDogYWxsKSIKIG1zZ3N0ciAiIgotImLhu48gcXVhIGPDoWMgdGhheSDEkeG7lWkgdHJvbmcgbcO0LcSRdW4gY29uLCB0w7l5IGNo4buNbiBraGk6IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgorImLhu48gcXVhIGPDoWMgdGhheSDEkeG7lWkgdHJvbmcgbcO0LcSRdW4tY29uLCB0w7l5IGNo4buNbiBraGk6IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihN4bq3YyDEkeG7i25oOiBhbGwpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTI0MgogbXNnaWQgImxpc3QgdW50cmFja2VkIGZpbGVzIGluIGNvbHVtbnMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBkYW5oIHPDoWNoIGPDoWMgdOG6rXAtdGluIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSB0cm9uZyBjw6FjIGPhu5l0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMwogbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0w6xtIHRo4bqleSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIG3hu5tpIGjGoW4gxJHDoyDEkcaw4bujYyB04bqhbyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY8O6IHBow6FwIGPhu6dhIMSR4buRaSB0xrDhu6NuZyBjaHV54buDbiBnaWFvIG3hu5tpIGjGoW4gxJHDoyDEkcaw4bujYyB04bqhbyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTYKIG1zZ2lkICJkZXRhY2hlZCBIRUFEIgogbXNnc3RyICLEkcOjIHLhu51pIGto4buPaSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyOTMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTM1OAogbXNnaWQgIiAocm9vdC1jb21taXQpIgogbXNnc3RyICIgKHJvb3QtY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjUKIG1zZ2lkICJzdXBwcmVzcyBzdW1tYXJ5IGFmdGVyIHN1Y2Nlc3NmdWwgY29tbWl0IgogbXNnc3RyICJraMO0bmcgaGnhu4NuIHRo4buLIHThu5VuZyBr4bq/dCBzYXUga2hpIGNodXnhu4NuIGdpYW8gdGjDoG5oIGPDtG5nIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNgogbXNnaWQgInNob3cgZGlmZiBpbiBjb21taXQgbWVzc2FnZSB0ZW1wbGF0ZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHPhu7Ega2jDoWMgYmnhu4d0IHRyb25nIG3huqt1IHRpbiBuaOG6r24gY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKIG1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgogbXNnc3RyICJDw6FjIHTDuXkgY2jhu41uIGdoaSBjaMO6IGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY0IGJ1aWx0aW4vdGFnLmM6NDU3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjkgYnVpbHRpbi90YWcuYzo0NTcKIG1zZ2lkICJyZWFkIG1lc3NhZ2UgZnJvbSBmaWxlIgogbXNnc3RyICLEkeG7jWMgY2jDuiB0aMOtY2ggdOG7qyB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMwCiBtc2dpZCAiYXV0aG9yIgogbXNnc3RyICJ0w6FjIGdp4bqjIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgogbXNnc3RyICJnaGkgxJHDqCB0w6FjIGdp4bqjIGNobyBjb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAogbXNnaWQgImRhdGUiCiBtc2dzdHIgIm5nw6B5IHRow6FuZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEKIG1zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCiBtc2dzdHIgImdoaSDEkcOoIG5nw6B5IHRow6FuZyBjaG8gY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjcgYnVpbHRpbi9tZXJnZS5jOjIwOCBidWlsdGluL25vdGVzLmM6NTMzCi0jOiBidWlsdGluL25vdGVzLmM6NjkwIGJ1aWx0aW4vdGFnLmM6NDU1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzIgYnVpbHRpbi9tZXJnZS5jOjIyMyBidWlsdGluL25vdGVzLmM6NDA1CisjOiBidWlsdGluL25vdGVzLmM6NTYyIGJ1aWx0aW4vdGFnLmM6NDU1CiBtc2dpZCAibWVzc2FnZSIKIG1zZ3N0ciAidGjDtG5nIMSRaeG7h3AiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NworIzogYnVpbHRpbi9jb21taXQuYzoxNDMyCiBtc2dpZCAiY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgImNow7ogdGjDrWNoIGPhu6dhIGzhuqduIGNvbW1pdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzMKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogImTDuW5nIGzhuqFpIGPDoWMgZ2hpIGNow7ogdOG7qyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIMSRw6MgY2hvIG5oxrBuZyBjw7MgY2hvIHPhu61hIGNo4buvYSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzQKIG1zZ2lkICJyZXVzZSBtZXNzYWdlIGZyb20gc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiZMO5bmcgbOG6oWkgY8OhYyBnaGkgY2jDuiB04burIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM1CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gZml4dXAgc3BlY2lmaWVkIGNvbW1pdCIKIG1zZ3N0ciAiIgogImTDuW5nIGdoaSBjaMO6IGPDsyDEkeG7i25oIGThuqFuZyBhdXRvc3F1YXNoIMSR4buDIHPhu61hIGNo4buvYSBs4bqnbiBjaHV54buDbiBnaWFvIMSRw6MgY2jhu4kgcmEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM2CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIiIKICJkw7luZyBs4budaSBuaOG6r24gY8OzIMSR4buLbmggZOG6oW5nIHThu7EgxJHhu5luZyBuw6luIMSR4buDIG7DqW4gbOG6oWkgY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIMSRw6MgY2jhu4kgIgogInJhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzNwogbXNnaWQgInRoZSBjb21taXQgaXMgYXV0aG9yZWQgYnkgbWUgbm93ICh1c2VkIHdpdGggLUMvLWMvLS1hbWVuZCkiCiBtc2dzdHIgIiIKICJs4bqnbiBjaHV54buDbiBnaWFvIG5o4bqtbiB0w7RpIGzDoCB0w6FjIGdp4bqjICjEkcaw4bujYyBkw7luZyB24bubaSB0w7l5IGNo4buNbiAtQy8tYy8tLWFtZW5kKSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzczIGJ1aWx0aW4vbG9nLmM6MTEwNCBidWlsdGluL3JldmVydC5jOjEwOQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM4IGJ1aWx0aW4vbG9nLmM6MTE2MCBidWlsdGluL3JldmVydC5jOjExMQogbXNnaWQgImFkZCBTaWduZWQtb2ZmLWJ5OiIKIG1zZ3N0ciAidGjDqm0gZMOybmcgU2lnbmVkLW9mZi1ieToiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM5CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICJz4butIGThu6VuZyB04bqtcCB0aW4gbeG6q3UgxJHDoyBjaG8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQwCiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgIsOpcCBideG7mWMgc+G7rWEgbOG6p24gY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQogbXNnaWQgImRlZmF1bHQiCiBtc2dzdHIgIm3hurdjIMSR4buLbmgiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NiBidWlsdGluL3RhZy5jOjQ2MAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxIGJ1aWx0aW4vdGFnLmM6NDYwCiBtc2dpZCAiaG93IHRvIHN0cmlwIHNwYWNlcyBhbmQgI2NvbW1lbnRzIGZyb20gbWVzc2FnZSIKIG1zZ3N0ciAibMOgbSB0aOG6vyBuw6BvIMSR4buDIGPhuq90IGLhu48ga2hv4bqjbmcgdHLhuq9uZyB2w6AgI2doaWNow7ogdOG7qyBt4bqpdSB0aW4gbmjhuq9uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICJiYW8gZ+G7k20gY8OhYyB0cuG6oW5nIHRow6FpIGdoaSBt4bqrdSBnaGkgY2jDuiBjaHV54buDbiBnaWFvIChjb21taXQpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzggYnVpbHRpbi9tZXJnZS5jOjIxNSBidWlsdGluL3RhZy5jOjQ2MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQzIGJ1aWx0aW4vbWVyZ2UuYzoyMzAgYnVpbHRpbi90YWcuYzo0NjEKIG1zZ2lkICJrZXkgaWQiCiBtc2dzdHIgImlkIGtow7NhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ0IGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgImvDvSBs4bqnbiBjb21taXQgZMO5bmcgR1BHIgogCiAjLiBlbmQgY29tbWl0IG1lc3NhZ2Ugb3B0aW9ucwotIzogYnVpbHRpbi9jb21taXQuYzoxMzgyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDcKIG1zZ2lkICJDb21taXQgY29udGVudHMgb3B0aW9ucyIKIG1zZ3N0ciAiQ8OhYyB0w7l5IG7hu5lpIGR1bmcgZ2hpIGNow7ogY29tbWl0IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODMKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0OAogbXNnaWQgImNvbW1pdCBhbGwgY2hhbmdlZCBmaWxlcyIKIG1zZ3N0ciAiY2h1eeG7g24gZ2lhbyB04bqldCBj4bqjIGPDoWMgdOG6rXAgdGluIGPDsyB0aGF5IMSR4buVaSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDkKIG1zZ2lkICJhZGQgc3BlY2lmaWVkIGZpbGVzIHRvIGluZGV4IGZvciBjb21taXQiCiBtc2dzdHIgInRow6ptIGPDoWMgdOG6rXAgdGluIMSRw6MgY2jhu4kgcmEgdsOgbyBi4bqjbmcgbeG7pWMgbOG7pWMgxJHhu4MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg1CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTAKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBmaWxlcyIKIG1zZ3N0ciAidGjDqm0gY8OhYyB04bqtcC10aW4gYuG6sW5nIHTGsMahbmcgdMOhYyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTEKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICJ0aMOqbSBjw6FjIHRoYXkgxJHhu5VpIGLhurFuZyB0xrDGoW5nIHTDoWMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICJjaOG7iSBjaHV54buDbiBnaWFvIGPDoWMgdOG6rXAgdGluIMSRw6MgY2jhu4kgcmEiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAidsOybmcgcXVhIG3Ds2MgKGhvb2spIHByZS1jb21taXQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDU0CiBtc2dpZCAic2hvdyB3aGF0IHdvdWxkIGJlIGNvbW1pdHRlZCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHhlbSBjw6FpIGfDrCBjw7MgdGjhu4MgxJHGsOG7o2MgY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjUKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgInR1IGLhu5UgKGFtZW5kKSBs4bqnbiBjb21taXQgdHLGsOG7m2MiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQwMQorIzogYnVpbHRpbi9jb21taXQuYzoxNDY2CiBtc2dpZCAiYnlwYXNzIHBvc3QtcmV3cml0ZSBob29rIgogbXNnc3RyICJ2w7JuZyBxdWEgbcOzYyAoaG9vaykgcG9zdC1yZXdyaXRlIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MQogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgIm9rIMSR4buDIGdoaSBs4bqhaSBt4buZdCB0aGF5IMSR4buVaSB0cuG7kW5nIHLhu5duZyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICJvayDEkeG7gyBnaGkgY8OhYyB0aGF5IMSR4buVaSB24bubaSBs4budaSBuaOG6r24gdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNTA3CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggY29tbWl0IChs4bqnbiBjaHV54buDbiBnaWFvKSBIRUFEIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0NzkgYnVpbHRpbi9tZXJnZS5jOjUxMAorIzogYnVpbHRpbi9jb21taXQuYzoxNTQ1IGJ1aWx0aW4vbWVyZ2UuYzo1MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58g4oCcJXPigJ0gxJHhu4MgxJHhu41jIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0ODYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3JydXB0IE1FUkdFX0hFQUQgZmlsZSAoJXMpIgogbXNnc3RyICJU4bqtcCB0aW4gTUVSR0VfSEVBRCBzYWkgaOG7j25nICglcykiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MworIzogYnVpbHRpbi9jb21taXQuYzoxNTU5CiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyBNRVJHRV9NT0RFIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MTIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBjb21taXQgbWVzc2FnZTogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgdGjDtG5nIMSRaeG7h3AgKG1lc3NhZ2UpIGNvbW1pdCAobOG6p24gY2h1eeG7g24gZ2lhbyk6ICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTU5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJBYm9ydGluZyBjb21taXQ7IHlvdSBkaWQgbm90IGVkaXQgdGhlIG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKICLEkGFuZyBi4buPIHF1YSB2aeG7h2MgY2h1eeG7g24gZ2lhbyAoY29tbWl0KTsgYuG6oW4gxJHDoyBraMO0bmcgYmnDqm4gc2/huqFuIHRow7RuZyDEkWnhu4dwICIKICIobWVzc2FnZSkuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIiIKICLEkGFuZyBi4buPIHF1YSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGLhu59pIHbDrCB0aMO0bmcgxJFp4buHcCBj4bunYSBuw7MgdHLhu5FuZyBy4buXbmcuXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU0NiBidWlsdGluL21lcmdlLmM6ODQ3IGJ1aWx0aW4vbWVyZ2UuYzo4NzIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYxMiBidWlsdGluL21lcmdlLmM6ODYxIGJ1aWx0aW4vbWVyZ2UuYzo4ODYKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgY29tbWl0IG9iamVjdCIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGdoaSDEkeG7kWkgdMaw4bujbmcgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTY3CisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzMKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGtow7NhIEhFQUQgcmVmICh0aGFtIGNoaeG6v3UpIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNwogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBj4bqtcCBuaOG6rXQgcmVmICh0aGFtIGNoaeG6v3UpIEhFQUQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTU4MgorIzogYnVpbHRpbi9jb21taXQuYzoxNjQ4CiBtc2dpZCAiIgogIlJlcG9zaXRvcnkgaGFzIGJlZW4gdXBkYXRlZCwgYnV0IHVuYWJsZSB0byB3cml0ZVxuIgogIm5ld19pbmRleCBmaWxlLiBDaGVjayB0aGF0IGRpc2sgaXMgbm90IGZ1bGwgb3IgcXVvdGEgaXNcbiIKQEAgLTQxNTgsMTcxICs0NTM0LDE4MyBAQAogbXNnaWQgImdpdCBjb25maWcgW29wdGlvbnNdIgogbXNnc3RyICJnaXQgY29uZmlnIFtjw6FjLXTDuXktY2jhu41uXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MQorIzogYnVpbHRpbi9jb25maWcuYzo1MgogbXNnaWQgIkNvbmZpZyBmaWxlIGxvY2F0aW9uIgogbXNnc3RyICJW4buLIHRyw60gdOG6rXAgdGluIGPhuqV1IGjDrG5oIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjUzCiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAixJHhurd0IHThuq1wIHRpbiBj4bqldSBow6xuaCBj4bqnbiB0b8OgbiBj4bulYyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1MworIzogYnVpbHRpbi9jb25maWcuYzo1NAogbXNnaWQgInVzZSBzeXN0ZW0gY29uZmlnIGZpbGUiCiBtc2dzdHIgInPhu60gZOG7pW5nIHThuq1wIHRpbiBj4bqldSBow6xuaCBo4buHIHRo4buRbmciCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTUKIG1zZ2lkICJ1c2UgcmVwb3NpdG9yeSBjb25maWcgZmlsZSIKIG1zZ3N0ciAiZMO5bmcgdOG6rXAgdGluIGPhuqV1IGjDrG5oIGPhu6dhIGtobyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NQorIzogYnVpbHRpbi9jb25maWcuYzo1NgogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAic+G7rSBk4bulbmcgdOG6rXAgdGluIGPhuqV1IGjDrG5oIMSRw6MgY2hvIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2CisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAiYmxvYi1pZCIKK21zZ3N0ciAiYmxvYi1pZCIKKworIzogYnVpbHRpbi9jb25maWcuYzo1NworbXNnaWQgInJlYWQgY29uZmlnIGZyb20gZ2l2ZW4gYmxvYiBvYmplY3QiCittc2dzdHIgIsSR4buNYyBj4bqldSBow6xuaCB04burIMSR4buRaSB0xrDhu6NuZyBibG9iIMSRw6MgY2hvIgorCisjOiBidWlsdGluL2NvbmZpZy5jOjU4CiBtc2dpZCAiQWN0aW9uIgogbXNnc3RyICJIw6BuaCDEkeG7mW5nIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU3CisjOiBidWlsdGluL2NvbmZpZy5jOjU5CiBtc2dpZCAiZ2V0IHZhbHVlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImzhuqV5IGdpw6EtdHLhu4s6IHTDqm4gW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1OAorIzogYnVpbHRpbi9jb25maWcuYzo2MAogbXNnaWQgImdldCBhbGwgdmFsdWVzOiBrZXkgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAibOG6pXkgdOG6pXQgY+G6oyBnacOhLXRy4buLOiBraMOzYSBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU5CisjOiBidWlsdGluL2NvbmZpZy5jOjYxCiBtc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImzhuqV5IGdpw6EgdHLhu4sgY2hvIHJlZ2V4cDogbmFtZS1yZWdleCBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYwCisjOiBidWlsdGluL2NvbmZpZy5jOjYyCiBtc2dpZCAicmVwbGFjZSBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzOiBuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiBtc2dzdHIgInRoYXkgdGjhur8gdOG6pXQgY+G6oyBjw6FjIGJp4bq/biBraOG7m3AgbeG6q3U6IHTDqm4gZ2nDoS10cuG7iyBbdmFsdWVfcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjYxCisjOiBidWlsdGluL2NvbmZpZy5jOjYzCiBtc2dpZCAiYWRkIGEgbmV3IHZhcmlhYmxlOiBuYW1lIHZhbHVlIgogbXNnc3RyICJ0aMOqbSBiaeG6v24gbeG7m2k6IHTDqm4gZ2nDoS10cuG7iyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MgorIzogYnVpbHRpbi9jb25maWcuYzo2NAogbXNnaWQgInJlbW92ZSBhIHZhcmlhYmxlOiBuYW1lIFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgImfhu6EgYuG7jyBiaeG6v246IHTDqm4gW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MworIzogYnVpbHRpbi9jb25maWcuYzo2NQogbXNnaWQgInJlbW92ZSBhbGwgbWF0Y2hlczogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICJn4buhIGLhu48gbeG7jWkgY8OhaSBraOG7m3A6IHTDqm4gW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NAorIzogYnVpbHRpbi9jb25maWcuYzo2NgogbXNnaWQgInJlbmFtZSBzZWN0aW9uOiBvbGQtbmFtZSBuZXctbmFtZSIKIG1zZ3N0ciAixJHhu5VpIHTDqm4gY2jGsMahbmc6IHTDqm4tY8WpIHTDqm4tbeG7m2kiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjcKIG1zZ2lkICJyZW1vdmUgYSBzZWN0aW9uOiBuYW1lIgogbXNnc3RyICJn4buhIGLhu48gY2jGsMahbmc6IHTDqm4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAibGnhu4d0IGvDqiB04bqldCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NworIzogYnVpbHRpbi9jb25maWcuYzo2OQogbXNnaWQgIm9wZW4gYW4gZWRpdG9yIgogbXNnc3RyICJt4bufIG3hu5l0IHRyw6xuaCBiacOqbiBzb+G6oW4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjggYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MCBidWlsdGluL2NvbmZpZy5jOjcxCiBtc2dpZCAic2xvdCIKIG1zZ3N0ciAia2hlIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4CisjOiBidWlsdGluL2NvbmZpZy5jOjcwCiBtc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICJ0w6xtIGPhuqV1IGjDrG5oIG3DoHUgc+G6r2M6IFtt4bq3YyDEkeG7i25oXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAidMOsbSBjw6FjIGPDoGkgxJHhurd0IHbhu4EgbcOgdSBz4bqvYzogW3N0ZG91dC1sw6AtdHR5XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MAorIzogYnVpbHRpbi9jb25maWcuYzo3MgogbXNnaWQgIlR5cGUiCiBtc2dzdHIgIktp4buDdSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MQorIzogYnVpbHRpbi9jb25maWcuYzo3MwogbXNnaWQgInZhbHVlIGlzIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiIKIG1zZ3N0ciAiZ2nDoSB0cuG7iyBsw6AgXCJ0cnVlXCIgaG/hurdjIFwiZmFsc2VcIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MgorIzogYnVpbHRpbi9jb25maWcuYzo3NAogbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICJnacOhIHRy4buLIOG7nyBk4bqhbmcgc+G7kSB0aOG6rXAgcGjDom4iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKIG1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgImdpw6EgdHLhu4sgbMOgIC0tYm9vbCBob+G6t2MgLS1pbnQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKIG1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgogbXNnc3RyICJnacOhIHRy4buLIGzDoCDEkcaw4budbmcgZOG6q24gKHTDqm4gdOG6rXAgdGluIGhheSB0aMawIG3hu6VjKSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NQorIzogYnVpbHRpbi9jb25maWcuYzo3NwogbXNnaWQgIk90aGVyIgogbXNnc3RyICJLaMOhYyIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3NgorIzogYnVpbHRpbi9jb25maWcuYzo3OAogbXNnaWQgInRlcm1pbmF0ZSB2YWx1ZXMgd2l0aCBOVUwgYnl0ZSIKIG1zZ3N0ciAiY2jhuqVtIGThu6l0IGdpw6EgdHLhu4sgduG7m2kgYnl0ZSBOVUwiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgInTDtG4gdHLhu41uZyBr4buDIGPDoCBjw6FjIGjGsOG7m25nIHRyb25nIHTDrG0ga2nhur9tIgogCiAjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo4MgotbXNnaWQgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCi1tc2dzdHIgImdpdCBjb3VudC1vYmplY3RzIFstdl0iCittc2dpZCAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKK21zZ3N0ciAiZ2l0IGNvdW50LW9iamVjdHMgWy12XSBbLUggfCAtLWh1bWFuLXJlYWRhYmxlXSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE1CisjOiBidWlsdGluL2NvdW50LW9iamVjdHMuYzo5NworbXNnaWQgInByaW50IHNpemVzIGluIGh1bWFuIHJlYWRhYmxlIGZvcm1hdCIKK21zZ3N0ciAiaGnhu4NuIHRo4buLIGvDrWNoIGPhu6EgdGhlbyDEkeG7i25oIGThuqFuZyBkw6BuaCBjaG8gbmfGsOG7nWkgxJHhu41jIgorCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIDxjb21taXR0aXNoPioiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbY8OhYy10w7l5LWNo4buNbl0gPGNvbW1pdHRpc2g+KiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MTcKIG1zZ2lkICJnaXQgZGVzY3JpYmUgW29wdGlvbnNdIC0tZGlydHkiCiBtc2dzdHIgImdpdCBkZXNjcmliZSBbY8OhYy10w7l5LWNo4buNbl0gLS1kaXJ0eSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIG5vdCBhdmFpbGFibGUiCiBtc2dzdHIgInRo4bq7IMSRw6MgxJHGsOG7o2MgZ2hpIGNow7ogJXMga2jDtG5nIHPhurVuIMSR4buDIGTDuW5nIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjM3CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjQxCiAjLCBjLWZvcm1hdAogbXNnaWQgImFubm90YXRlZCB0YWcgJXMgaGFzIG5vIGVtYmVkZGVkIG5hbWUiCiBtc2dzdHIgInRo4bq7IMSRxrDhu6NjIGNow7ogZ2nhuqNpICVzIGtow7RuZyBjw7MgdMOqbiBuaMO6bmciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzkKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnICclcycgaXMgcmVhbGx5ICclcycgaGVyZSIKIG1zZ3N0ciAidGjhursg4oCcJXPigJ0gxJHDoyB0aOG7sWMgc+G7sSDhu58gxJHDonkg4oCcJXPigJ0gcuG7k2kiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNjYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGEgdmFsaWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgdMOqbiDEkeG7kWkgdMaw4bujbmcgJXMgaOG7o3AgbOG7hyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2OQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBpcyBub3QgYSB2YWxpZCAnJXMnIG9iamVjdCIKIG1zZ3N0ciAiJXMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgxJHhu5FpIHTGsOG7o25nIOKAnCVz4oCdIGjhu6NwIGzhu4ciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGFnIGV4YWN0bHkgbWF0Y2hlcyAnJXMnIgogbXNnc3RyICJraMO0bmcgY8OzIHRo4bq7IG7DoG8ga2jhu5twIGNow61uaCB4w6FjIHbhu5tpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgogbXNnc3RyICLEkGFuZyB0w6xtIGtp4bq/bSDEkeG7gyBtw7QgdOG6oyAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzI4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbmlzaGVkIHNlYXJjaCBhdCAlc1xuIgogbXNnc3RyICJ2aeG7h2MgdMOsbSBraeG6v20gxJHDoyBr4bq/dCB0aMO6YyB04bqhaSAlc1xuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MzUyCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJObyBhbm5vdGF0ZWQgdGFncyBjYW4gZGVzY3JpYmUgJyVzJy5cbiIKQEAgLTQzMzEsNyArNDcxOSw3IEBACiAiS2jDtG5nIGPDsyB0aOG6uyDEkcaw4bujYyBjaMO6IGdp4bqjaSBuw6BvIMSRxrDhu6NjIG3DtCB04bqjIGzDoCDigJwlc+KAnS5cbiIKICJUdXkgbmhpw6puLCDhu58gxJHDonkgY8OzIG5o4buvbmcgdGjhursga2jDtG5nIMSRxrDhu6NjIGNow7ogZ2nhuqNpOiBow6N5IHRo4butIC0tdGFncy4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00MzQwLDEyICs0NzI4LDEyIEBACiAiS2jDtG5nIGPDsyB0aOG6uyAodGFnKSBjw7MgdGjhu4MgbcO0IHThuqMg4oCcJXPigJ0uXG4iCiAiSMOjeSB0aOG7rSAtLWFsd2F5cywgaG/hurd0IHThuqFvIG3hu5l0IHPhu5EgdGjhursuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzc3CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6Mzg0CiAjLCBjLWZvcm1hdAogbXNnaWQgInRyYXZlcnNlZCAlbHUgY29tbWl0c1xuIgogbXNnc3RyICLEkcOjIHh1ecOqbiAlbHUgcXVhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdClcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4MAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjM4NwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibW9yZSB0aGFuICVpIHRhZ3MgZm91bmQ7IGxpc3RlZCAlaSBtb3N0IHJlY2VudFxuIgpAQCAtNDM1NCw1OSArNDc0Miw2MyBAQAogInTDrG0gdGjhuqV5IG5oaeG7gXUgaMahbiAlaSB0aOG6uyAodGFnKTsgxJHDoyBsaeG7h3Qga8OqICVpIGfhuqduIMSRw6J5IG5o4bqldFxuIgogImLhu48gxJFpIHTDrG0ga2nhur9tIHThuqFpICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKIG1zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgogbXNnc3RyICJ0w6xtIGPDoWMgdGjhursgbcOgIG7DsyDEkeG6v24gdHLGsOG7m2MgbOG6p24gY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwMworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMAogbXNnaWQgImRlYnVnIHNlYXJjaCBzdHJhdGVneSBvbiBzdGRlcnIiCiBtc2dzdHIgImNoaeG6v24gbMaw4bujYyB0w6xtIGtp4bq/bSB0csOqbiDEkeG6p3UgcmEgbOG7l2kgY2h14bqpbiBzdGRlcnIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDQKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKIG1zZ2lkICJ1c2UgYW55IHJlZiIKIG1zZ3N0ciAiZMO5bmcgcmVmIGLhuqV0IGvhu7MiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTIKIG1zZ2lkICJ1c2UgYW55IHRhZywgZXZlbiB1bmFubm90YXRlZCIKLW1zZ3N0ciAiZMO5bmcgdGjhursgYuG6pXQga+G7sywgY+G6oyBraGkgYHVuYW5ub3RhdGVkJyIKK21zZ3N0ciAiZMO5bmcgdGjhursgYuG6pXQga+G7sywgY+G6oyBraGkg4oCcdW5hbm5vdGF0ZWTigJ0iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKIG1zZ2lkICJhbHdheXMgdXNlIGxvbmcgZm9ybWF0IgogbXNnc3RyICJsdcO0biBkw7luZyDEkeG7i25oIGThuqFuZyBkw6BpIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE0Cittc2dpZCAib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IgorbXNnc3RyICJjaOG7iSB0aGVvIGNoYSBt4bq5IMSR4bqndSB0acOqbiIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxNwogbXNnaWQgIm9ubHkgb3V0cHV0IGV4YWN0IG1hdGNoZXMiCiBtc2dzdHIgImNo4buJIHh14bqldCBuaOG7r25nIGfDrCBraOG7m3AgY2jDrW5oIHjDoWMiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTkKIG1zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgogbXNnc3RyICJjb2kgbmjGsCAgPG4+IHRo4bq7IGfhuqduIMSRw6J5IG5o4bqldCAobeG6t2MgxJHhu4tuaDogMTApIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDIxCiBtc2dpZCAib25seSBjb25zaWRlciB0YWdzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKIG1zZ3N0ciAiY2jhu4kgY8OibiBuaOG6r2MgxJHhur9uIG5o4buvbmcgdGjhursga2jhu5twIHbhu5tpICA8beG6q3U+IgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE1IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzgKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjMgYnVpbHRpbi9uYW1lLXJldi5jOjMyMgogbXNnaWQgInNob3cgYWJicmV2aWF0ZWQgY29tbWl0IG9iamVjdCBhcyBmYWxsYmFjayIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIMSR4buRaSB0xrDhu6NuZyBjaHV54buDbiBnaWFvIHbhuq9uIHThuq90IG5oxrAgbMOgIGZhbGxiYWNrIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDI0CiBtc2dpZCAibWFyayIKIG1zZ3N0ciAiZOG6pXUiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgInRow6ptIDxk4bqldT4gdHLDqm4gY8OieSB0aMawIG3hu6VjIGzDoG0gdmnhu4djIGLhuqluICht4bq3YyDEkeG7i25oIFwiLWRpcnR5XCIpIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDM1CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDQzCiBtc2dpZCAiLS1sb25nIGlzIGluY29tcGF0aWJsZSB3aXRoIC0tYWJicmV2PTAiCiBtc2dzdHIgIi0tbG9uZyBsw6AgeHVuZyBraOG6r2MgduG7m2kgdMO5eSBjaOG7jW4gLS1hYmJyZXY9MCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgY8OhYyB0w6puLCBraMO0bmcgdGjhu4MgbcO0IHThuqMgZ8OsIGPhuqMuIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDgxCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDg5CiBtc2dpZCAiLS1kaXJ0eSBpcyBpbmNvbXBhdGlibGUgd2l0aCBjb21taXR0aXNoZXMiCiBtc2dzdHIgIi0tZGlydHkgbMOgIHh1bmcga2jhuq9jIHbhu5tpIGPDoWMgdMO5eSBjaOG7jW4gZMOgbmggY2hvIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkiCiAKQEAgLTQ0MTUsMzEgKzQ4MDcsMjYgQEAKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKIG1zZ3N0ciAi4oCcJXPigJ06IGtow7RuZyBwaOG6o2kgdOG6rXAgdGluIGLDrG5oIHRoxrDhu51uZyBoYXkgbGnDqm4ga+G6v3QgdMaw4bujbmcgdHLGsG5nIgogCi0jOiBidWlsdGluL2RpZmYuYzoyMjgKKyM6IGJ1aWx0aW4vZGlmZi5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG9wdGlvbjogJXMiCiBtc2dzdHIgInTDuXkgY2jhu41uIHNhaTogJXMiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjMwNQorIzogYnVpbHRpbi9kaWZmLmM6MzA3CiBtc2dpZCAiTm90IGEgZ2l0IHJlcG9zaXRvcnkiCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgbMOgIGtobyBnaXQiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLEkeG7kWkgdMaw4bujbmcgxJHDoyBjaG8g4oCcJXPigJ0ga2jDtG5nIGjhu6NwIGzhu4cuIgogCi0jOiBidWlsdGluL2RpZmYuYzozNTMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAibW9yZSB0aGFuICVkIHRyZWVzIGdpdmVuOiAnJXMnIgotbXNnc3RyICLEkcOjIGNo4buJIHJhIG5oaeG7gXUgaMahbiAlZCBjw6J5ICh0cmVlKTog4oCcJXPigJ0iCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCiBtc2dzdHIgIsSRw6MgY2hvIG5oaeG7gXUgaMahbiBoYWkgxJHhu5FpIHTGsOG7o25nIGJsb2I6IOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2RpZmYuYzozNzEKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLEkcOjIGNobyDEkeG7kWkgdMaw4bujbmcga2jDtG5nIHRo4buDIG7huq9tIGdp4buvIOKAnCVz4oCdLiIKQEAgLTQ0NDgsMzkgKzQ4MzUsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRp4bq/biB0cmnhu4NuIHNhdSA8bj4gxJHhu5FpIHTGsOG7o25nIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY4CiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHNpZ25lZCB0YWdzIgogbXNnc3RyICJjaOG7jW4gxJFp4buBdSBraGnhu4NuIGPhu6dhIHRo4bq7IMSRw6Mga8O9IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU3CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAiY2jhu41uIHPhu7EgeOG7rSBsw70gY+G7p2EgY8OhYyB0aOG6uywgY8OhaSBtw6AgxJHDoW5oIHRo4bq7IGPDoWMgxJHhu5FpIHTGsOG7o25nIMSRxrDhu6NjIGzhu41jIHJhIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYwCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc0CiBtc2dpZCAiRHVtcCBtYXJrcyB0byB0aGlzIGZpbGUiCiBtc2dzdHIgIsSQ4buVIGPDoWMgxJHDoW5oIGThuqV1IG7DoHkgdsOgbyB04bqtcC10aW4iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjIKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzYKIG1zZ2lkICJJbXBvcnQgbWFya3MgZnJvbSB0aGlzIGZpbGUiCiBtc2dzdHIgIm5o4bqtcCB2w6BvIMSRw6FuaCBk4bqldSB04burIHThuq1wIHRpbiBuw6B5IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY0CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc4CiBtc2dpZCAiRmFrZSBhIHRhZ2dlciB3aGVuIHRhZ3MgbGFjayBvbmUiCiBtc2dzdHIgIkzDoG0gZ2nhuqMgbeG7mXQgY8OhaSB0aOG6uyBraGkgdGjhursgYuG7iyB0aGnhur91IG3hu5l0IGPDoWkiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjYKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODAKIG1zZ2lkICJPdXRwdXQgZnVsbCB0cmVlIGZvciBlYWNoIGNvbW1pdCIKIG1zZ3N0ciAiWHXhuqV0IHJhIHRvw6BuIGLhu5kgY8OieSBjaG8gbeG7l2kgbOG6p24gY2h1eeG7g24gZ2lhbyIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICJT4butIGThu6VuZyB0w61uaCBuxINuZyBkb25lIMSR4buDIGNo4bqlbSBk4bupdCBsdeG7k25nIGThu68gbGnhu4d1IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY5CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgzCiBtc2dpZCAiU2tpcCBvdXRwdXQgb2YgYmxvYiBkYXRhIgogbXNnc3RyICJC4buPIHF1YSBr4bq/dCB4deG6pXQgY+G7p2EgZOG7ryBsaeG7h3UgYmxvYiIKIApAQCAtNDUwMiw3ICs0ODg5LDcgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjYwCiBtc2dpZCAiZmV0Y2ggZnJvbSBhbGwgcmVtb3RlcyIKLW1zZ3N0ciAiZmV0Y2ggdOG7qyB04bqldCBj4bqjIGPDoWMgbcOheSBjaOG7pyIKK21zZ3N0ciAibOG6pXkgduG7gSB04burIHThuqV0IGPhuqMgY8OhYyBtw6F5IGNo4bunIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NjIKIG1zZ2lkICJhcHBlbmQgdG8gLmdpdC9GRVRDSF9IRUFEIGluc3RlYWQgb2Ygb3ZlcndyaXRpbmciCkBAIC00NTE4LDE1ICs0OTA1LDE1IEBACiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo2NwogbXNnaWQgImZldGNoIGZyb20gbXVsdGlwbGUgcmVtb3RlcyIKLW1zZ3N0ciAiZmV0Y2ggdOG7qyBuaGnhu4F1IG3DoXkgY2jhu6cgY8O5bmcgbMO6YyIKK21zZ3N0ciAibOG6pXkgdOG7qyBuaGnhu4F1IG3DoXkgY2jhu6cgY8O5bmcgbMO6YyIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjY5CiBtc2dpZCAiZmV0Y2ggYWxsIHRhZ3MgYW5kIGFzc29jaWF0ZWQgb2JqZWN0cyIKLW1zZ3N0ciAibOG6pXkgKGZldGNoKSB04bqldCBj4bqjIGPDoWMgdGjhursgY8O5bmcgduG7m2kgY8OhYyDEkeG7kWkgdMaw4bujbmcgbGnDqm4gcXVhbiDEkeG6v24gbsOzIgorbXNnc3RyICJs4bqleSB04bqldCBj4bqjIGPDoWMgdGjhursgY8O5bmcgduG7m2kgY8OhYyDEkeG7kWkgdMaw4bujbmcgbGnDqm4gcXVhbiDEkeG6v24gbsOzIgogCiAjOiBidWlsdGluL2ZldGNoLmM6NzEKIG1zZ2lkICJkbyBub3QgZmV0Y2ggYWxsIHRhZ3MgKC0tbm8tdGFncykiCi1tc2dzdHIgImtow7RuZyBs4bqleSAoZmV0Y2gpIHThuqV0IGPhuqMgY8OhYyB0aOG6uyAoLS1uby10YWdzKSIKK21zZ3N0ciAia2jDtG5nIGzhuqV5IHThuqV0IGPhuqMgY8OhYyB0aOG6uyAoLS1uby10YWdzKSIKIAogIzogYnVpbHRpbi9mZXRjaC5jOjczCiBtc2dpZCAicHJ1bmUgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIG5vIGxvbmdlciBvbiByZW1vdGUiCkBAIC00NTQwLDcgKzQ5MjcsNyBAQAogCiAjOiBidWlsdGluL2ZldGNoLmM6NzUKIG1zZ2lkICJjb250cm9sIHJlY3Vyc2l2ZSBmZXRjaGluZyBvZiBzdWJtb2R1bGVzIgotbXNnc3RyICLEkWnhu4F1IGtoaeG7g24gdmnhu4djIGzhuqV5IHbhu4EgKGZldGNoKSDEkeG7hyBxdXkgdHJvbmcgY8OhYyBtw7QtxJF1bi1jb24iCittc2dzdHIgIsSRaeG7gXUga2hp4buDbiB2aeG7h2MgbOG6pXkgduG7gSDEkeG7hyBxdXkgdHJvbmcgY8OhYyBtw7QtxJF1bi1jb24iCiAKICM6IGJ1aWx0aW4vZmV0Y2guYzo3OQogbXNnaWQgImtlZXAgZG93bmxvYWRlZCBwYWNrIgpAQCAtNDU0OCw3ICs0OTM1LDcgQEAKIAogIzogYnVpbHRpbi9mZXRjaC5jOjgxCiBtc2dpZCAiYWxsb3cgdXBkYXRpbmcgb2YgSEVBRCByZWYiCi1tc2dzdHIgImNobyBwaMOpcCBj4bqtcCBuaOG6rXQgcmVmICh0aGFtIGNoaeG6v3UpIEhFQUQiCittc2dzdHIgImNobyBwaMOpcCBj4bqtcCBuaOG6rXQgdGguY2hp4bq/dSBIRUFEIgogCiAjOiBidWlsdGluL2ZldGNoLmM6ODQKIG1zZ2lkICJkZWVwZW4gaGlzdG9yeSBvZiBzaGFsbG93IGNsb25lIgpAQCAtNDU1OCw3ICs0OTQ1LDcgQEAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiY2h1eeG7g24gxJHhu5VpIGhvw6BuIHRvw6BuIHNhbmcga2hvIGdpdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTEyMQorIzogYnVpbHRpbi9mZXRjaC5jOjg4IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgImRpciIKIG1zZ3N0ciAidG3hu6VjIgogCkBAIC00NTcwLDc2ICs0OTU3LDc2IEBACiBtc2dpZCAiZGVmYXVsdCBtb2RlIGZvciByZWN1cnNpb24iCiBtc2dzdHIgImNo4bq/IMSR4buZIG3hurdjIMSR4buLbmggY2hvIMSR4buHIHF1aSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjIwNAorIzogYnVpbHRpbi9mZXRjaC5jOjIyMAogbXNnaWQgIkNvdWxkbid0IGZpbmQgcmVtb3RlIHJlZiBIRUFEIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdMOsbSB0aOG6pXkgbcOheSBjaOG7pyBjaG8gdGhhbSBjaGnhur91IEhFQUQiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyNTcKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiS2jDtG5nIHTDrG0gdGjhuqV5IMSR4buRaSB0xrDhu6NuZyAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI2MgorIzogYnVpbHRpbi9mZXRjaC5jOjI3OAogbXNnaWQgIlt1cCB0byBkYXRlXSIKIG1zZ3N0ciAiW8SRw6MgY+G6rXAgbmjhuq10XSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiISAlLSpzICUtKnMgLT4gJXMgIChraMO0bmcgdGjhu4MgZmV0Y2ggKGzhuqV5KSB24buBIG5ow6FuaCBoaeG7h24gaMOgbmgpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Mjc3IGJ1aWx0aW4vZmV0Y2guYzozNjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoyOTMgYnVpbHRpbi9mZXRjaC5jOjM3OQogbXNnaWQgIltyZWplY3RlZF0iCiBtc2dzdHIgIltC4buLIHThu6sgY2jhu5FpXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorIzogYnVpbHRpbi9mZXRjaC5jOjMwNAogbXNnaWQgIlt0YWcgdXBkYXRlXSIKIG1zZ3N0ciAiW2Phuq1wIG5o4bqtdCB0aOG6u10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoyOTAgYnVpbHRpbi9mZXRjaC5jOjMyNSBidWlsdGluL2ZldGNoLmM6MzQzCisjOiBidWlsdGluL2ZldGNoLmM6MzA2IGJ1aWx0aW4vZmV0Y2guYzozNDEgYnVpbHRpbi9mZXRjaC5jOjM1OQogbXNnaWQgIiAgKHVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmKSIKIG1zZ3N0ciAiICAoa2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCB0aGFtIGNoaeG6v3UgKHJlZikgbuG7mWkgYuG7mSkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMDgKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjQKIG1zZ2lkICJbbmV3IHRhZ10iCiBtc2dzdHIgIlt0aOG6uyBt4bubaV0iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIltuaMOhbmggbeG7m2ldIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzE0CisjOiBidWlsdGluL2ZldGNoLmM6MzMwCiBtc2dpZCAiW25ldyByZWZdIgogbXNnc3RyICJbcmVmICh0aGFtIGNoaeG6v3UpIG3hu5tpXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICJraMO0bmcgdGjhu4MgY+G6rXAgbmjhuq10IHRoYW0gY2hp4bq/dSAocmVmKSBu4buZaSBi4buZIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzU5CisjOiBidWlsdGluL2ZldGNoLmM6Mzc1CiBtc2dpZCAiZm9yY2VkIHVwZGF0ZSIKIG1zZ3N0ciAiY8aw4buhbmcgYuG7qWMgY+G6rXAgbmjhuq10IgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzY1CisjOiBidWlsdGluL2ZldGNoLmM6MzgxCiBtc2dpZCAiKG5vbi1mYXN0LWZvcndhcmQpIgogbXNnc3RyICIobm9uLWZhc3QtZm9yd2FyZCkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozOTYgYnVpbHRpbi9mZXRjaC5jOjY4OAorIzogYnVpbHRpbi9mZXRjaC5jOjQxMiBidWlsdGluL2ZldGNoLmM6NzE4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlc1xuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgbeG7nyAlczogJXNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQwNQorIzogYnVpbHRpbi9mZXRjaC5jOjQyMQogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBkaWQgbm90IHNlbmQgYWxsIG5lY2Vzc2FyeSBvYmplY3RzXG4iCiBtc2dzdHIgIiVzIMSRw6Mga2jDtG5nIGfhu61pIHThuqV0IGPhuqMgY8OhYyDEkeG7kWkgdMaw4bujbmcgY+G6p24gdGhp4bq/dFxuIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NDkxCisjOiBidWlsdGluL2ZldGNoLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZyb20gJS4qc1xuIgogbXNnc3RyICJU4burICUuKnNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUwMgorIzogYnVpbHRpbi9mZXRjaC5jOjUzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgpAQCAtNDY0OCw1NyArNTAzNSw1NyBAQAogIm3hu5l0IHPhu5EgdGhhbSBjaGnhur91IChyZWZzKSBu4buZaSBi4buZIGtow7RuZyB0aOG7gyDEkcaw4bujYyBj4bqtcCBuaOG6rXQ7IGjDo3kgdGjhu60gY2jhuqF5XG4iCiAiIOKAnGdpdCByZW1vdGUgcHJ1bmUgJXPigJ0gxJHhu4MgYuG7jyDEkWkgbmjhu69uZyBuaMOhbmggY8WpLCBoYXkgYuG7iyB4dW5nIMSR4buZdCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MgorIzogYnVpbHRpbi9mZXRjaC5jOjU4MQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgd2lsbCBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICAoJXMgc+G6vSB0cuG7nyB0aMOgbmgga2jDtG5nIMSR4bqndSAoa2jDtG5nIMSRxrDhu6NjIHF14bqjbiBsw70pKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU1MworIzogYnVpbHRpbi9mZXRjaC5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAoJXMgaGFzIGJlY29tZSBkYW5nbGluZykiCiBtc2dzdHIgIiAgICglcyDEkcOjIHRy4bufIHRow6BuaCBraMO0bmcgxJHhuqd1IChraMO0bmcgxJHGsOG7o2MgcXXhuqNuIGzDvSkpIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYwCisjOiBidWlsdGluL2ZldGNoLmM6NTg5CiBtc2dpZCAiW2RlbGV0ZWRdIgogbXNnc3RyICJbxJHDoyB4w7NhXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjU2MSBidWlsdGluL3JlbW90ZS5jOjEwNTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1OTAgYnVpbHRpbi9yZW1vdGUuYzoxMDU1CiBtc2dpZCAiKG5vbmUpIgogbXNnc3RyICIoa2jDtG5nKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIiIKICJU4burIGNo4buRaSB2aeG7h2MgbOG6pXkgKGZldGNoKSB2w6BvIHRyb25nIG5ow6FuaCBoaeG7h24gdOG6oWkgJXMgY+G7p2EgbeG7mXQga2hvIGNo4bupYSBraMO0bmcgIgogInBo4bqjaSBraG8gdHLhuqduIChiYXJlKSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIzogYnVpbHRpbi9mZXRjaC5jOjc0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgotbXNnc3RyICJLaMO0bmcgYmnhur90IGzDoG0gY8OhY2ggbsOgbyDEkeG7gyBs4bqleSB24buBIChmZXRjaCkgdOG7qyAlcyIKK21zZ3N0ciAiS2jDtG5nIGJp4bq/dCBsw6BtIGPDoWNoIG7DoG8gxJHhu4MgbOG6pXkgduG7gSB04burICVzIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIlTDuXkgY2jhu41uIFwiJXNcIiBjw7MgZ2nDoSB0cuG7iyBcIiVzXCIgbMOgIGtow7RuZyBo4bujcCBs4buHIGNobyAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjc5MgorIzogYnVpbHRpbi9mZXRjaC5jOjgyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJPcHRpb24gXCIlc1wiIGlzIGlnbm9yZWQgZm9yICVzXG4iCiBtc2dzdHIgIlTDuXkgY2jhu41uIFwiJXNcIiBi4buLIGLhu48gcXVhIHbhu5tpICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmV0Y2hpbmcgJXNcbiIKLW1zZ3N0ciAixJBhbmcgbOG6pXkgKGZldGNoKSAlc1xuIgorbXNnc3RyICLEkGFuZyBs4bqleSB24buBICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgotbXNnc3RyICJraMO0bmcgdGjhu4MgZmV0Y2ggKGzhuqV5KSAlcyIKK21zZ3N0ciAia2jDtG5nIHRo4buDIGzhuqV5IHbhu4EgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKQEAgLTQ3MDYsMzIgKzUwOTMsMzIgQEAKICJDaMawYSBjaOG7iSByYSBraG8gY2jhu6lhIG3DoXkgY2jhu6cuICBYaW4gaMOjeSBjaOG7iSDEkeG7i25oIGhv4bq3YyBsw6AgVVJMIGhv4bq3Y1xuIgogInTDqm4gbcOheSBjaOG7pyB04burIGPDoWkgbcOgIG5o4buvbmcgxJFp4buDbSB4w6l0IGR1eeG7h3QgbeG7m2kgY8OzIHRo4buDIMSRxrDhu6NjIGZldGNoIChs4bqleSB24buBKS4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MzUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NjkKIG1zZ2lkICJZb3UgbmVlZCB0byBzcGVjaWZ5IGEgdGFnIG5hbWUuIgogbXNnc3RyICJC4bqhbiBwaOG6o2kgxJHhu4tuaCByw7UgdMOqbiB0aOG6uy4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgInTDuXkgY2jhu41uIC0tZGVwdGggdsOgIC0tdW5zaGFsbG93IGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjw7luZyB24bubaSBuaGF1IgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTgzCisjOiBidWlsdGluL2ZldGNoLmM6MTAxNwogbXNnaWQgIi0tdW5zaGFsbG93IG9uIGEgY29tcGxldGUgcmVwb3NpdG9yeSBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICItLXVuc2hhbGxvdyB0csOqbiBraG8gaG/DoG4gY2jhu4luaCBsw6Aga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM2CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgImzhu4duaCBs4bqleSB24buBIFwiZmV0Y2ggLS1hbGxcIiBraMO0bmcgbOG6pXkgxJHhu5FpIHPhu5Ega2hvIGNo4bupYSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICJs4buHbmggbOG6pXkgduG7gSBcImZldGNoIC0tYWxsXCIga2jDtG5nIGjhu6NwIGzDvSB24bubaSByZWZzcGVjcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIHN1Y2ggcmVtb3RlIG9yIHJlbW90ZSBncm91cDogJXMiCiBtc2dzdHIgImtow7RuZyBjw7MgbmjDs20gbcOheSBjaOG7pyBoYXkgbcOheSBjaOG7pyBuaMawIHRo4bq/OiAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CiBtc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICJWaeG7h2MgbOG6pXkgduG7gSBj4bqjIG3hu5l0IG5ow7NtIHbDoCBjaOG7iSDEkeG7i25oIHJlZnNwZWNzIGtow7RuZyBo4bujcCBsw70iCiAKQEAgLTQ3NDAsMjkgKzUxMjcsMjkgQEAKIG1zZ3N0ciAiIgogImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8dGjDtG5nIMSRaeG7h3A+XSBbLS1sb2dbPTxuPl18LS1uby1sb2ddIFstLWZpbGUgPHThuq1wLXRpbj5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NTkgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYyIGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU2IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICJuIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjAKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NAogbXNnaWQgInBvcHVsYXRlIGxvZyB3aXRoIGF0IG1vc3QgPG4+IGVudHJpZXMgZnJvbSBzaG9ydGxvZyIKIG1zZ3N0ciAiZ+G6r24gbmjhuq10IGvDvSB24bubaSDDrXQgbmjhuqV0IDxuPiBt4bulYyB04burIGzhu4duaCDigJxzaG9ydGxvZ+KAnSIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzCisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKIG1zZ2lkICJhbGlhcyBmb3IgLS1sb2cgKGRlcHJlY2F0ZWQpIgogbXNnc3RyICJiw60gZGFuaCBjaG8gLS1sb2cgKGtow7RuZyDEkcaw4bujYyBkw7luZykiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NgorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcwCiBtc2dpZCAidGV4dCIKIG1zZ3N0ciAidsSDbiBi4bqjbiIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY3CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzEKIG1zZ2lkICJ1c2UgPHRleHQ+IGFzIHN0YXJ0IG9mIG1lc3NhZ2UiCiBtc2dzdHIgImTDuW5nIDx2xINuIGLhuqNuIHRoxrDhu51uZz4gxJHhu4MgYuG6r3QgxJHhuqd1IGdoaSBjaMO6IgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjgKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MgogbXNnaWQgImZpbGUgdG8gcmVhZCBmcm9tIgogbXNnc3RyICJ04bqtcCB0aW4gxJHhu4MgxJHhu41jIGThu68gbGnhu4d1IHThu6sgxJHDsyIKIApAQCAtNDkwMiwyMjMgKzUyODksMjIzIEBACiBtc2dpZCAiZ3JlcDogZmFpbGVkIHRvIGNyZWF0ZSB0aHJlYWQ6ICVzIgogbXNnc3RyICJncmVwOiBn4bq3cCBs4buXaSB04bqhbyB0dXnhur9uICh0aHJlYWQpOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6MzY1CisjOiBidWlsdGluL2dyZXAuYzozNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNoZGlyOiAlcyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kgduG7m2kgbOG7h25oIGNoZGlyOiAlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDQzIGJ1aWx0aW4vZ3JlcC5jOjQ3OAorIzogYnVpbHRpbi9ncmVwLmM6NDQyIGJ1aWx0aW4vZ3JlcC5jOjQ3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVhZCB0cmVlICglcykiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgY8OieSAoJXMpIgogCi0jOiBidWlsdGluL2dyZXAuYzo0OTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gZ3JlcCBmcm9tIG9iamVjdCBvZiB0eXBlICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBs4buHbmggZ3JlcCAobOG7jWMgdMOsbSkgdOG7qyDEkeG7kWkgdMaw4bujbmcgdGh14buZYyBraeG7g3UgJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjU1MQorIzogYnVpbHRpbi9ncmVwLmM6NTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInN3aXRjaCBgJWMnIGV4cGVjdHMgYSBudW1lcmljYWwgdmFsdWUiCiBtc2dzdHIgImNodXnhu4NuIMSR4bq/biDigJwlY+KAnSBj4bqnbiBt4buZdCBnacOhIHRy4buLIGLhurFuZyBz4buRIgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICJraMO0bmcgbeG7nyDEkcaw4bujYyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQzCisjOiBidWlsdGluL2dyZXAuYzo2NDIKIG1zZ2lkICJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIgogbXNnc3RyICJ0w6xtIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYyB0aGF5IHbDrCB0cm9uZyBjw6J5IGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NAogbXNnaWQgImZpbmQgaW4gY29udGVudHMgbm90IG1hbmFnZWQgYnkgZ2l0IgogbXNnc3RyICJ0w6xtIHRyb25nIG7hu5lpIGR1bmcga2jDtG5nIMSRxrDhu6NjIHF14bqjbiBsw70gYuG7n2kgZ2l0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NDcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY0NgogbXNnaWQgInNlYXJjaCBpbiBib3RoIHRyYWNrZWQgYW5kIHVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAidMOsbSBraeG6v20gY8OhYyB04bqtcCB0aW4gxJHGsOG7o2MgdsOgIGNoxrBhIMSRxrDhu6NjIHRoZW8gZMO1aSBk4bqldSB24bq/dCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQ5CisjOiBidWlsdGluL2dyZXAuYzo2NDgKIG1zZ2lkICJzZWFyY2ggYWxzbyBpbiBpZ25vcmVkIGZpbGVzIgogbXNnc3RyICJ0w6xtIGPhuqMgdHJvbmcgY8OhYyB04bqtcCB0aW4gxJHDoyBi4buLIGzhu50gxJFpIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MQogbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgIG5o4buvbmcgZMOybmcga2jDtG5nIGto4bubcCB24bubaSBt4bqrdSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU0CisjOiBidWlsdGluL2dyZXAuYzo2NTMKIG1zZ2lkICJjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nIgogbXNnc3RyICJwaMOibiBiaeG7h3QgY2jhu68gaG9hL3RoxrDhu51uZyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjU2CisjOiBidWlsdGluL2dyZXAuYzo2NTUKIG1zZ2lkICJtYXRjaCBwYXR0ZXJucyBvbmx5IGF0IHdvcmQgYm91bmRhcmllcyIKIG1zZ3N0ciAiY2jhu4kga2jhu5twIG3huqt1IHThuqFpIMSRxrDhu51uZyByYW5oIGdp4bubaSB04burIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NwogbXNnaWQgInByb2Nlc3MgYmluYXJ5IGZpbGVzIGFzIHRleHQiCiBtc2dzdHIgInjhu60gbMO9IHThuq1wIHRpbiBuaOG7iyBwaMOibiBuaMawIGzDoCBk4bqhbmcgdsSDbiBi4bqjbiB0aMaw4budbmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2MAorIzogYnVpbHRpbi9ncmVwLmM6NjU5CiBtc2dpZCAiZG9uJ3QgbWF0Y2ggcGF0dGVybnMgaW4gYmluYXJ5IGZpbGVzIgogbXNnc3RyICJraMO0bmcga2jhu5twIG3huqt1IHRyb25nIGPDoWMgdOG6rXAgdGluIG5o4buLIHBow6JuIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAiZ2nhuqNtIHh14buRbmcgw610IG5o4bqldCBt4bupYyA8c8OidT4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY2NworIzogYnVpbHRpbi9ncmVwLmM6NjY2CiBtc2dpZCAidXNlIGV4dGVuZGVkIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMiCiBtc2dzdHIgImTDuW5nIGJp4buDdSB0aOG7qWMgY2jDrW5oIHF1aSBQT1NJWCBjw7MgbeG7nyBy4buZbmciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3MAorIzogYnVpbHRpbi9ncmVwLmM6NjY5CiBtc2dpZCAidXNlIGJhc2ljIFBPU0lYIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGRlZmF1bHQpIgogbXNnc3RyICJz4butIGThu6VuZyBiaeG7g3UgdGjhu6ljIGNow61uaCBxdXkga2nhu4N1IFBPU0lYICht4bq3YyDEkeG7i25oKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjczCisjOiBidWlsdGluL2dyZXAuYzo2NzIKIG1zZ2lkICJpbnRlcnByZXQgcGF0dGVybnMgYXMgZml4ZWQgc3RyaW5ncyIKIG1zZ3N0ciAiZGnhu4VuIGThu4tjaCBjw6FjIG3huqt1IG5oxrAgbMOgIGNodeG7l2kgY+G7kSDEkeG7i25oIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAic+G7rSBk4bulbmcgYmnhu4N1IHRo4bupYyBjaMOtbmggcXV5IHTGsMahbmcgdGjDrWNoIFBlcmwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQorIzogYnVpbHRpbi9ncmVwLmM6Njc4CiBtc2dpZCAic2hvdyBsaW5lIG51bWJlcnMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBz4buRIGPhu6dhIGTDsm5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OQogbXNnaWQgImRvbid0IHNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJraMO0bmcgaGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAogbXNnaWQgInNob3cgZmlsZW5hbWVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB0w6puIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgzCisjOiBidWlsdGluL2dyZXAuYzo2ODIKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyByZWxhdGl2ZSB0byB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gdMawxqFuZyDEkeG7kWkgduG7m2kgdGjGsCBt4bulYyDEkeG7iW5oICh0b3ApIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NAogbXNnaWQgInNob3cgb25seSBmaWxlbmFtZXMgaW5zdGVhZCBvZiBtYXRjaGluZyBsaW5lcyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIHTDqm4gdOG6rXAgdGluIHRoYXkgdsOsIG5o4buvbmcgZMOybmcga2jhu5twIHbhu5tpIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4NgogbXNnaWQgInN5bm9ueW0gZm9yIC0tZmlsZXMtd2l0aC1tYXRjaGVzIgogbXNnc3RyICLEkeG7k25nIG5naMSpYSB24bubaSAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkwCisjOiBidWlsdGluL2dyZXAuYzo2ODkKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0w6puIGNobyBuaOG7r25nIHThuq1wIHRpbiBraMO0bmcga2jhu5twIHbhu5tpIG3huqt1IgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5MQogbXNnaWQgInByaW50IE5VTCBhZnRlciBmaWxlbmFtZXMiCiBtc2dzdHIgInRow6ptIE5VTCB2w6BvIHNhdSB0w6puIHThuq1wIHRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk0CisjOiBidWlsdGluL2dyZXAuYzo2OTMKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgc+G7kSBsxrDhu6NuZyBraOG7m3AgdGhheSB2w6wgbmjhu69uZyBkw7JuZyBraOG7m3AgduG7m2kgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQorIzogYnVpbHRpbi9ncmVwLmM6Njk0CiBtc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCiBtc2dzdHIgInTDtCBzw6FuZyBjw6FpIGto4bubcCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk3CisjOiBidWlsdGluL2dyZXAuYzo2OTYKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGTDsm5nIHRy4buRbmcgZ2nhu69hIGPDoWMgbOG6p24ga2jhu5twIHThu6sgY8OhYyB04bqtcCB0aW4ga2jDoWMgYmnhu4d0IgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5OAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIiIKICJoaeG7g24gdGjhu4sgdMOqbiB04bqtcCB0aW4gbeG7mXQgbOG6p24gcGjDrWEgdHLDqm4gY8OhYyBs4bqnbiBraOG7m3AgdOG7qyBjw7luZyBt4buZdCB04bqtcCB0aW4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwMgorIzogYnVpbHRpbi9ncmVwLmM6NzAxCiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgYW5kIGFmdGVyIG1hdGNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gZMOybmcgbuG7mWkgZHVuZyBwaMOtYSB0csaw4bubYyB2w6Agc2F1IGPDoWMgbOG6p24ga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MDUKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcwNAogbXNnaWQgInNob3cgPG4+IGNvbnRleHQgbGluZXMgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyA8bj4gZMOybmcgbuG7mWkgZHVuZyB0csaw4bubYyBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworIzogYnVpbHRpbi9ncmVwLmM6NzA2CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgPG4+IGTDsm5nIG7hu5lpIGR1bmcgc2F1IGto4bubcCIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA4CisjOiBidWlsdGluL2dyZXAuYzo3MDcKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICJE4bqhbmcgdOG6r3QgY2hvIC1DIFPhu5AiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxMQorIzogYnVpbHRpbi9ncmVwLmM6NzEwCiBtc2dpZCAic2hvdyBhIGxpbmUgd2l0aCB0aGUgZnVuY3Rpb24gbmFtZSBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGTDsm5nIHbDs2kgdMOqbiBow6BtIHRyxrDhu5tjIGPDoWMgbOG6p24ga2jhu5twIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMgogbXNnaWQgInNob3cgdGhlIHN1cnJvdW5kaW5nIGZ1bmN0aW9uIgogbXNnc3RyICJoaeG7g24gdGjhu4sgaMOgbSBiYW8gcXVhbmgiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxNgorIzogYnVpbHRpbi9ncmVwLmM6NzE1CiBtc2dpZCAicmVhZCBwYXR0ZXJucyBmcm9tIGZpbGUiCiBtc2dzdHIgIsSR4buNYyBt4bqrdSB04burIHThuq1wLXRpbiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzE4CisjOiBidWlsdGluL2dyZXAuYzo3MTcKIG1zZ2lkICJtYXRjaCA8cGF0dGVybj4iCiBtc2dzdHIgIm1hdGNoIDxt4bqrdT4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcyMAorIzogYnVpbHRpbi9ncmVwLmM6NzE5CiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAidOG7lSBo4bujcCBt4bqrdSDEkcaw4bujYyBjaOG7iSByYSB24bubaSB0w7l5IGNo4buNbiAtZSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMyCisjOiBidWlsdGluL2dyZXAuYzo3MzEKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAixJHGsGEgcmEgZ+G7o2kgw70gduG7m2kgdHLhuqFuZyB0aMOhaSB0aG/DoXQgbcOgIGtow7RuZyBjw7Mga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyBuaOG7r25nIGPDoWkga2jhu5twIHThu6sgdOG6rXAgdGluIG3DoCBuw7Mga2jhu5twIHRvw6BuIGLhu5kgY8OhYyBt4bqrdSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM2CisjOiBidWlsdGluL2dyZXAuYzo3MzUKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDonkgcGjDom4gdMOtY2ggY8O6IHBow6FwIGNobyBiaeG7g3UgdGjhu6ljIOKAnGdyZXDigJ0gKHTDrG0ga2nhur9tKSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQwCisjOiBidWlsdGluL2dyZXAuYzo3MzkKIG1zZ2lkICJwYWdlciIKIG1zZ3N0ciAidHJhbmcgZ2nhuqV5IgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInNob3cgbWF0Y2hpbmcgZmlsZXMgaW4gdGhlIHBhZ2VyIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4ga2jhu5twIHRyb25nIHRyYW5nIGdp4bqleSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzCisjOiBidWlsdGluL2dyZXAuYzo3NDIKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCiBtc2dzdHIgImNobyBwaMOpcCBn4buNaSBncmVwKDEpIChi4buLIGLhu48gcXVhIGLhu59pIGzhuqduIGThu4tjaCBuw6B5KSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQ0IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjc0MyBidWlsdGluL3Nob3ctcmVmLmM6MTg4CiBtc2dpZCAic2hvdyB1c2FnZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWNoIGTDuW5nIgogCi0jOiBidWlsdGluL2dyZXAuYzo4MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjgxMAogbXNnaWQgIm5vIHBhdHRlcm4gZ2l2ZW4uIgogbXNnc3RyICJjaMawYSBjaOG7iSByYSBt4bqrdS4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg2NgorIzogYnVpbHRpbi9ncmVwLmM6ODY1CiBtc2dpZCAiLS1vcGVuLWZpbGVzLWluLXBhZ2VyIG9ubHkgd29ya3Mgb24gdGhlIHdvcmt0cmVlIgogbXNnc3RyICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgY2jhu4kgbMOgbSB2aeG7h2MgdHLDqm4gY8OieS1sw6BtLXZp4buHYyIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODg5CisjOiBidWlsdGluL2dyZXAuYzo4ODgKIG1zZ2lkICItLWNhY2hlZCBvciAtLXVudHJhY2tlZCBjYW5ub3QgYmUgdXNlZCB3aXRoIC0tbm8taW5kZXguIgogbXNnc3RyICItLWNhY2hlZCBoYXkgLS11bnRyYWNrZWQga2jDtG5nIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpIC0tbm8taW5kZXguIgogCi0jOiBidWlsdGluL2dyZXAuYzo4OTQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjg5MwogbXNnaWQgIi0tbm8taW5kZXggb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCByZXZzLiIKIG1zZ3N0ciAiIgogIi0tbm8taW5kZXggaGF5IC0tdW50cmFja2VkIGtow7RuZyDEkcaw4bujYyBz4butIGThu6VuZyBjw7luZyB24bubaSBjw6FjIHTDuXkgY2jhu41uIGxpw6puICIKICJxdWFuIMSR4bq/biByZXZzLiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk3CisjOiBidWlsdGluL2dyZXAuYzo4OTYKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjaG8gbuG7mWkgZHVuZyBsxrB1IGThuqV1IHbhur90LiIKIAotIzogYnVpbHRpbi9ncmVwLmM6OTA1CisjOiBidWlsdGluL2dyZXAuYzo5MDQKIG1zZ2lkICJib3RoIC0tY2FjaGVkIGFuZCB0cmVlcyBhcmUgZ2l2ZW4uIgogbXNnc3RyICJj4bqjIGhhaSAtLWNhY2hlZCB2w6AgY8OhYyBjw6J5IHBo4bqjaSDEkcaw4bujYyBjaOG7iSByYS4iCiAKQEAgLTUxNTgsMTAgKzU1NDUsMTQgQEAKIG1zZ2lkICJwcm9jZXNzIGZpbGUgYXMgaXQgd2VyZSBmcm9tIHRoaXMgcGF0aCIKIG1zZ3N0ciAieOG7rSBsw70gdOG6rXAgdGluIG5oxrAgbMOgIG7DsyDEkWFuZyDhu58gdGjGsCBt4bulYyBuw6B5IgogCi0jOiBidWlsdGluL2hlbHAuYzo0MgorIzogYnVpbHRpbi9oZWxwLmM6NDEKIG1zZ2lkICJwcmludCBhbGwgYXZhaWxhYmxlIGNvbW1hbmRzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgZGFuaCBzw6FjaCBjw6FjIGPDonUgbOG7h25oIG5nxrDhu51pIGTDuW5nIGPDsyB0aOG7gyBz4butIGThu6VuZyIKIAorIzogYnVpbHRpbi9oZWxwLmM6NDIKK21zZ2lkICJwcmludCBsaXN0IG9mIHVzZWZ1bCBndWlkZXMiCittc2dzdHIgImhp4buDbiB0aOG7iyBkYW5oIHPDoWNoIGPDoWMgaMaw4bubbmcgZOG6q24gaOG7r3UgZOG7pW5nIgorCiAjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgImhp4buDbiB0aOG7iyB0cmFuZyBtYW4iCkBAIC01MTc1LDggKzU1NjYsOCBAQAogbXNnc3RyICJoaeG7h24gdHJhbmcgaW5mbyIKIAogIzogYnVpbHRpbi9oZWxwLmM6NTIKLW1zZ2lkICJnaXQgaGVscCBbLS1hbGxdIFstLW1hbnwtLXdlYnwtLWluZm9dIFtjb21tYW5kXSIKLW1zZ3N0ciAiZ2l0IGhlbHAgWy0tYWxsXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbbOG7h25oXSIKK21zZ2lkICJnaXQgaGVscCBbLS1hbGxdIFstLWd1aWRlc10gWy0tbWFufC0td2VifC0taW5mb10gW2NvbW1hbmRdIgorbXNnc3RyICJnaXQgaGVscCBbLS1hbGxdIFstLWd1aWRlc10gWy0tbWFufC0td2VifC0taW5mb10gW2zhu4duaF0iCiAKICM6IGJ1aWx0aW4vaGVscC5jOjY0CiAjLCBjLWZvcm1hdApAQCAtNTIzMiwyOTAgKzU2MjMsMzIyIEBACiBtc2dpZCAibm8gaW5mbyB2aWV3ZXIgaGFuZGxlZCB0aGUgcmVxdWVzdCIKIG1zZ3N0ciAia2jDtG5nIGPDsyB0csOsbmggeGVtIHRy4bujIGdpw7pwIGThuqFuZyBpbmZvIHRp4bq/cCBo4bujcCB24bubaSB5w6p1IGPhuqd1IgogCi0jOiBidWlsdGluL2hlbHAuYzo0MjkgYnVpbHRpbi9oZWxwLmM6NDM2CisjOiBidWlsdGluL2hlbHAuYzo0MjAKK21zZ2lkICJEZWZpbmluZyBhdHRyaWJ1dGVzIHBlciBwYXRoIgorbXNnc3RyICLEkOG7i25oIG5naMSpYSBjw6FjIHRodeG7mWMgdMOtbmggY2hvIG3hu5dpIMSRxrDhu51uZyBk4bqrbiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIxCittc2dpZCAiQSBHaXQgZ2xvc3NhcnkiCittc2dzdHIgIlRodeG6rXQgbmfhu68gY2h1ecOqbiBtw7RuIEdpdCIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIyCittc2dpZCAiU3BlY2lmaWVzIGludGVudGlvbmFsbHkgdW50cmFja2VkIGZpbGVzIHRvIGlnbm9yZSIKK21zZ3N0ciAiQ2jhu4kgxJHhu4tuaCBjw6FjIHThuq1wIHRpbiBraMO0bmcgY+G6p24gdGhlbyBkw7VpIgorCisjOiBidWlsdGluL2hlbHAuYzo0MjMKK21zZ2lkICJEZWZpbmluZyBzdWJtb2R1bGUgcHJvcGVydGllcyIKK21zZ3N0ciAixJDhu4tuaCBuZ2jEqWEgdGh14buZYyB0w61uaCBtw7QtxJF1bi1jb24iCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNAorbXNnaWQgIlNwZWNpZnlpbmcgcmV2aXNpb25zIGFuZCByYW5nZXMgZm9yIEdpdCIKK21zZ3N0ciAiQ2jhu4kgxJHhu4tuaCDEkWnhu4NtIHjDqXQgZHV54buHdCB2w6AgdsO5bmcgY2hvIEdpdCIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI1Cittc2dpZCAiQSB0dXRvcmlhbCBpbnRyb2R1Y3Rpb24gdG8gR2l0IChmb3IgdmVyc2lvbiAxLjUuMSBvciBuZXdlcikiCittc2dzdHIgIkjGsOG7m25nIGThuqtuIGPDoWNoIGTDuW5nIEdpdCDhu58gbeG7qWMgY8ahIGLhuqNuIChi4bqjbiAxLjUuMSBoYXkgbeG7m2kgaMahbikiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyNgorbXNnaWQgIkFuIG92ZXJ2aWV3IG9mIHJlY29tbWVuZGVkIHdvcmtmbG93cyB3aXRoIEdpdCIKK21zZ3N0ciAiVOG7lW5nIHF1YW4gduG7gSBsdeG7k25nIGPDtG5nIHZp4buHYyBraHV54bq/biBuZ2jhu4sgbsOqbiBkw7luZyB24bubaSBHaXQuIgorCisjOiBidWlsdGluL2hlbHAuYzo0MzgKK21zZ2lkICJUaGUgY29tbW9uIEdpdCBndWlkZXMgYXJlOlxuIgorbXNnc3RyICJDw6FjIGNo4buJIGThuqtuIGNodW5nIHbhu4EgY8OhY2ggZMO5bmcgR2l0IGzDoDpcbiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDYwIGJ1aWx0aW4vaGVscC5jOjQ3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2FnZTogJXMlcyIKIG1zZ3N0ciAiY8OhY2ggc+G7rSBk4bulbmc6ICVzJXMiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQ1MgorIzogYnVpbHRpbi9oZWxwLmM6NDkyCiAjLCBjLWZvcm1hdAogbXNnaWQgImBnaXQgJXMnIGlzIGFsaWFzZWQgdG8gYCVzJyIKIG1zZ3N0ciAi4oCcZ2l0ICVz4oCdIMSRxrDhu6NjIMSR4bq3dCBiw60gZGFuaCB0aMOgbmgg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm9iamVjdCB0eXBlIG1pc21hdGNoIGF0ICVzIgogbXNnc3RyICJraeG7g3UgxJHhu5FpIHTGsOG7o25nIGtow7RuZyBraOG7m3AgdOG6oWkgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIwMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjA0CiBtc2dpZCAib2JqZWN0IG9mIHVuZXhwZWN0ZWQgdHlwZSIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIGPhu6dhIGtp4buDdSBraMO0bmcgbW9uZyDEkeG7o2kiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIzOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBmaWxsICVkIGJ5dGUiCiBtc2dpZF9wbHVyYWwgImNhbm5vdCBmaWxsICVkIGJ5dGVzIgogbXNnc3RyWzBdICJraMO0bmcgdGjhu4MgxJFp4buBbiB2w6BvICVkIGJ5dGUiCiBtc2dzdHJbMV0gImtow7RuZyB0aOG7gyDEkWnhu4FuIHbDoG8gJWQgYnl0ZSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTQKIG1zZ2lkICJlYXJseSBFT0YiCiBtc2dzdHIgInbhu6thIMSRw7puZyBsw7pjIEVPRiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTUKIG1zZ2lkICJyZWFkIGVycm9yIG9uIGlucHV0IgogbXNnc3RyICJs4buXaSDEkeG7jWMg4bufIMSR4bqndSB2w6BvIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI2NwogbXNnaWQgInVzZWQgbW9yZSBieXRlcyB0aGFuIHdlcmUgYXZhaWxhYmxlIgogbXNnc3RyICJz4butIGThu6VuZyBuaGnhu4F1IGjGoW4gc+G7kSBsxrDhu6NuZyBieXRlIG3DoCBuw7Mgc+G6tW4gY8OzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI3NAogbXNnaWQgInBhY2sgdG9vIGxhcmdlIGZvciBjdXJyZW50IGRlZmluaXRpb24gb2Ygb2ZmX3QiCiBtc2dzdHIgInBhY2sgcXXDoSBs4bubbiBzbyB24bubaSDEkeG7i25oIG5naMSpYSBoaeG7h24gdOG6oWkgY+G7p2Ega2nhu4N1IG9mZl90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyODUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyOTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gcGFja2ZpbGUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIG3hu58gcGFja2ZpbGUg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzA5CiBtc2dpZCAicGFjayBzaWduYXR1cmUgbWlzbWF0Y2giCiBtc2dzdHIgImNo4buvIGvDvSBjaG8gcGFjayBraMO0bmcga2jhu5twIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIHZlcnNpb24gJTxQUkl1MzI+IHVuc3VwcG9ydGVkIgogbXNnc3RyICJraMO0bmcgaOG7lyB0cuG7oyBwaGnDqm4gYuG6o24gcGFjayAlPFBSSXUzMj4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCiBtc2dzdHIgInBhY2sgY8OzIMSR4buRaSB0xrDhu6NuZyBzYWkga2hv4bqjbmcgYsO5IChvZmZzZXQpICVsdTogJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjQ0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDUxCiAjLCBjLWZvcm1hdAogbXNnaWQgImluZmxhdGUgcmV0dXJuZWQgJWQiCiBtc2dzdHIgInjhuqMgbsOpbiB0cuG6oyB24buBICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMAogbXNnaWQgIm9mZnNldCB2YWx1ZSBvdmVyZmxvdyBmb3IgZGVsdGEgYmFzZSBvYmplY3QiCiBtc2dzdHIgInRyw6BuIGdpw6EgdHLhu4sga2hv4bqjbmcgYsO5IGNobyDEkeG7kWkgdMaw4bujbmcgZGVsdGEgY8ahIHPhu58iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTA4CiBtc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgogbXNnc3RyICJraG/huqNuZyBiw7kgY8ahIHPhu58gY2hvIGRlbHRhIG7hurFtIG5nb8OgaSBwaOG6oW0gdmkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxMQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gb2JqZWN0IHR5cGUgJWQiCiBtc2dzdHIgImtow7RuZyBoaeG7g3Uga2nhu4N1IMSR4buRaSB0xrDhu6NuZyAlZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDcKIG1zZ2lkICJjYW5ub3QgcHJlYWQgcGFjayBmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgY2jhuqF5IGjDoG0gcHJlYWQgY2hvIHThuq1wIHRpbiBwYWNrIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGUgbWlzc2luZyIKIG1zZ2lkX3BsdXJhbCAicHJlbWF0dXJlIGVuZCBvZiBwYWNrIGZpbGUsICVsdSBieXRlcyBtaXNzaW5nIgogbXNnc3RyWzBdICJ04bqtcCB0aW4gcGFjayBi4buLIGvhur90IHRow7pjIHPhu5ttLCAlbHUgYnl0ZSBi4buLIHRoaeG6v3UiCiBtc2dzdHJbMV0gInThuq1wIHRpbiBwYWNrIGLhu4sga+G6v3QgdGjDumMgc+G7m20sICVsdSBieXRlIGLhu4sgdGhp4bq/dSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzUKIG1zZ2lkICJzZXJpb3VzIGluZmxhdGUgaW5jb25zaXN0ZW5jeSIKIG1zZ3N0ciAic+G7sSBtw6J1IHRodeG6q24geOG6oyBuw6luIG5naGnDqm0gdHLhu41uZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjYxIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NyBidWlsdGluL2luZGV4LXBhY2suYzo2OTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyNCBidWlsdGluL2luZGV4LXBhY2suYzo3MzMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2NiBidWlsdGluL2luZGV4LXBhY2suYzo2NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6Njk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MjkgYnVpbHRpbi9pbmRleC1wYWNrLmM6NzM4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNIQTEgQ09MTElTSU9OIEZPVU5EIFdJVEggJXMgISIKIG1zZ3N0ciAiU+G7sCBWQSBDSOG6oE0gU0hBMSDEkMODIFjhuqJZIFJBIFbhu5pJICVzISIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY0IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjkgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKICM6IGJ1aWx0aW4vcGFjay1vYmplY3RzLmM6MjYyCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byByZWFkICVzIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCBleGlzdGluZyBvYmplY3QgJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyDEkeG7jWMgxJHhu5FpIHTGsOG7o25nIMSRw6MgdOG7k24gdOG6oWkgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYmxvYiBvYmplY3QgJXMiCiBtc2dzdHIgIsSR4buRaSB0xrDhu6NuZyBibG9iIGtow7RuZyBo4bujcCBs4buHICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo3NTkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkICVzIgogbXNnc3RyICIlcyBraMO0bmcgaOG7o3AgbOG7hyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIkzhu5dpIHRyb25nIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgdOG6pXQgY+G6oyBjw6FjIMSR4buRaSB0xrDhu6NuZyBjb24gY+G7p2EgJXMgbMOgIGPDsyB0aOG7gyB24bubaSB04bubaSDEkcaw4bujYyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODMzIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OAogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIMOhcCBk4bulbmcgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKIG1zZ2lkICJSZWNlaXZpbmcgb2JqZWN0cyIKIG1zZ3N0ciAixJBhbmcgbmjhuq1uIHbhu4EgY8OhYyDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMDkKIG1zZ2lkICJJbmRleGluZyBvYmplY3RzIgogbXNnc3RyICJDw6FjIMSR4buRaSB0xrDhu6NuZyBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKIG1zZ2lkICJwYWNrIGlzIGNvcnJ1cHRlZCAoU0hBMSBtaXNtYXRjaCkiCiBtc2dzdHIgInBhY2sgYuG7iyBzYWkgaOG7j25nIChTSEExIGtow7RuZyBraOG7m3ApIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQwCiBtc2dpZCAiY2Fubm90IGZzdGF0IHBhY2tmaWxlIgogbXNnc3RyICJraMO0bmcgdGjhu4MgZnN0YXQgcGFja2ZpbGUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzgKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDMKIG1zZ2lkICJwYWNrIGhhcyBqdW5rIGF0IHRoZSBlbmQiCiBtc2dzdHIgInBhY2sgY8OzIHBo4bqnbiB0aOG7q2Eg4bufIGN14buRaSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA1NAogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkgaW4gcGFyc2VfcGFja19vYmplY3RzKCkiCiBtc2dzdHIgImzhu5luIHjhu5luIGjGoW4gY+G6oyDEkWnDqm4gcuG7kyBraGkgY2jhuqF5IGjDoG0gcGFyc2VfcGFja19vYmplY3RzKCkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNzcKIG1zZ2lkICJSZXNvbHZpbmcgZGVsdGFzIgogbXNnc3RyICLEkGFuZyBwaMOibiBnaeG6o2kgY8OhYyBkZWx0YSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyB0dXnhur9uOiAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEyOQogbXNnaWQgImNvbmZ1c2lvbiBiZXlvbmQgaW5zYW5pdHkiCiBtc2dzdHIgImzhu5luIHjhu5luIGjGoW4gY+G6oyDEkWnDqm4gcuG7kyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTEzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21wbGV0ZWQgd2l0aCAlZCBsb2NhbCBvYmplY3RzIgogbXNnc3RyICLEkeG6p3kgxJHhu6cgduG7m2kgJWQgxJHhu5FpIHTGsOG7o25nIG7hu5lpIGLhu5kiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIlThu5VuZyBraeG7g20gdHJhIHRhaWwga2jDtG5nIG5oxrAgbW9uZyDEkeG7o2kgY2hvICVzICjEkcSpYSBo4buPbmc/KSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE0NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTE1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhIgogbXNnaWRfcGx1cmFsICJwYWNrIGhhcyAlZCB1bnJlc29sdmVkIGRlbHRhcyIKIG1zZ3N0clswXSAicGFjayBjw7MgJWQgZGVsdGEgY2jGsGEgxJHGsOG7o2MgZ2nhuqNpIHF1eeG6v3QiCiBtc2dzdHJbMV0gInBhY2sgY8OzICVkIGRlbHRhIGNoxrBhIMSRxrDhu6NjIGdp4bqjaSBxdXnhur90IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTcxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBkZWZsYXRlIGFwcGVuZGVkIG9iamVjdCAoJWQpIgogbXNnc3RyICJraMO0bmcgdGjhu4MgeOG6oyDEkeG7kWkgdMaw4bujbmcgbuG7kWkgdGjDqm0gKCVkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2NhbCBvYmplY3QgJXMgaXMgY29ycnVwdCIKIG1zZ3N0ciAixJHhu5FpIHTGsOG7o25nIG7hu5lpIGLhu5kgJXMgYuG7iyBo4buPbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEyNzkKIG1zZ2lkICJlcnJvciB3aGlsZSBjbG9zaW5nIHBhY2sgZmlsZSIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kgdHJvbmcga2hpIMSRw7NuZyB04bqtcCB0aW4gcGFjayIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGdp4buvIGzhuqFpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHDs25nIHThuq1wIHRpbiBnaeG7ryBs4bqhaSDEkcOjIMSRxrDhu6NjIGdoaSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxMwogbXNnaWQgImNhbm5vdCBzdG9yZSBwYWNrIGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBsxrB1IHThuq1wIHRpbiBwYWNrIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzE5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzI0CiBtc2dpZCAiY2Fubm90IHN0b3JlIGluZGV4IGZpbGUiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBsxrB1IHRy4buvIHThuq1wIHRpbiBnaGkgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIG1zZ3N0ciAic2FpIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgogbXNnc3RyICJz4buRIHR1eeG6v24gY2jhu4kgcmEga2jDtG5nIGjhu6NwIGzhu4cgKCVkKSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGhyZWFkcyBzdXBwb3J0LCBpZ25vcmluZyAlcyIKIG1zZ3N0ciAia2jDtG5nIGjhu5cgdHLhu6MgxJFhIHR1eeG6v24sIGLhu48gcXVhICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gcGFjayDEkcOjIHPhurVuIGPDsyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4g4oCccGFjayBpZHjigJ0gY2hvIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDY5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vbiBkZWx0YTogJWQgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJub24gZGVsdGE6ICVkIG9iamVjdHMiCiBtc2dzdHJbMF0gImtow7RuZyBkZWx0YTogJWQgxJHhu5FpIHTGsOG7o25nIgogbXNnc3RyWzFdICJraMO0bmcgZGVsdGE6ICVkIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ3NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQ4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdCIKIG1zZ2lkX3BsdXJhbCAiY2hhaW4gbGVuZ3RoID0gJWQ6ICVsdSBvYmplY3RzIgogbXNnc3RyWzBdICJjaGnhu4F1IGTDoGkgeMOtY2ggPSAlZDogJWx1IMSR4buRaSB0xrDhu6NuZyIKIG1zZ3N0clsxXSAiY2hp4buBdSBkw6BpIHjDrWNoID0gJWQ6ICVsdSDEkeG7kWkgdMaw4bujbmciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDMKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1MDkKIG1zZ2lkICJDYW5ub3QgY29tZSBiYWNrIHRvIGN3ZCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHF1YXkgbOG6oWkgY3dkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTQ3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NTAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2NgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1NyBidWlsdGluL2luZGV4LXBhY2suYzoxNTYwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTcyIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkICVzIgogbXNnc3RyICIlcyBzYWkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1ODAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1OTAKIG1zZ2lkICItLWZpeC10aGluIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgLS1zdGRpbiIKIG1zZ3N0ciAiLS1maXgtdGhpbiBraMO0bmcgdGjhu4MgxJHGsOG7o2MgZMO5bmcgbcOgIGtow7RuZyBjw7MgLS1zdGRpbiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4NCBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCiBtc2dzdHIgInTDqm4gdOG6rXAgdGluIHBhY2tmaWxlIOKAnCVz4oCdIGtow7RuZyDEkcaw4bujYyBr4bq/dCB0aMO6YyBi4bqxbmcgxJF1w7RpIOKAnC5wYWNr4oCdIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjAzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNjEzCiBtc2dpZCAiLS12ZXJpZnkgd2l0aCBubyBwYWNrZmlsZSBuYW1lIGdpdmVuIgogbXNnc3RyICJkw7luZyB0w7l5IGNo4buNbiAtLXZlcmlmeSBtw6Aga2jDtG5nIMSRxrBhIHJhIHTDqm4gcGFja2ZpbGUiCiAKQEAgLTU2NTEsNyArNjA3NCw3IEBACiBtc2dpZCAic3BlY2lmeSB0aGF0IHRoZSBnaXQgcmVwb3NpdG9yeSBpcyB0byBiZSBzaGFyZWQgYW1vbmdzdCBzZXZlcmFsIHVzZXJzIgogbXNnc3RyICJjaOG7iSByYSBjw6FpIG3DoCBraG8gZ2l0IMSRxrDhu6NjIGNoaWEgc+G6uyBnaeG7r2Egbmhp4buBdSBuZ8aw4budaSBkw7luZyIKIAotIzogYnVpbHRpbi9pbml0LWRiLmM6NDkzIGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzcKKyM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc1CiBtc2dpZCAiYmUgcXVpZXQiCiBtc2dzdHIgImltIGzhurduZyIKIApAQCAtNTY4MywyNDEgKzYxMDYsMjU1IEBACiBtc2dpZCAiQ2Fubm90IGFjY2VzcyB3b3JrIHRyZWUgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIHRydXkgY+G6rXAgY8OieSAodHJlZSkgbMOgbSB2aeG7h2Mg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NDAKLW1zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8c2luY2U+Li48dW50aWw+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCi1tc2dzdHIgImdpdCBsb2cgWzxjw6FjLXTDuXktY2jhu41uPl0gWzxr4buDLXThu6s+Li48Y2hvLcSR4bq/bj5dIFtbLS1dIDzEkcaw4budbmctZOG6q24+Li4uXVxuIgotCiAjOiBidWlsdGluL2xvZy5jOjQxCittc2dpZCAiZ2l0IGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gPHBhdGg+Li4uXVxuIgorbXNnc3RyICJnaXQgbG9nIFs8Y8OhYy10w7l5LWNo4buNbj5dIFs8dsO5bmcgeGVtIHjDqXQ+XSBbWy0tXSA8xJHGsOG7nW5nLWThuqtuPi4uLl1cbiIKKworIzogYnVpbHRpbi9sb2cuYzo0MgogbXNnaWQgIiAgIG9yOiBnaXQgc2hvdyBbb3B0aW9uc10gPG9iamVjdD4uLi4iCiBtc2dzdHIgIiAgaGF5OiBnaXQgc2hvdyBbY8OhYy10w7l5LWNo4buNbl0gPMSR4buRaS10xrDhu6NuZz4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAzCisjOiBidWlsdGluL2xvZy5jOjEyNAogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICJjaOG6t24gbeG7jWkga+G6v3QgeHXhuqV0IHThu6sgZGlmZiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDQKKyM6IGJ1aWx0aW4vbG9nLmM6MTI1CiBtc2dpZCAic2hvdyBzb3VyY2UiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBtw6Mgbmd14buTbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDUKKyM6IGJ1aWx0aW4vbG9nLmM6MTI2CiBtc2dpZCAiVXNlIG1haWwgbWFwIGZpbGUiCiBtc2dzdHIgIlPhu60gZOG7pW5nIHThuq1wIHRpbiDDoW5oIHjhuqEgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTI3CiBtc2dpZCAiZGVjb3JhdGUgb3B0aW9ucyIKIG1zZ3N0ciAiY8OhYyB0w7l5IGNo4buNbiB0cmFuZyB0csOtIgogCi0jOiBidWlsdGluL2xvZy5jOjE5OQorIzogYnVpbHRpbi9sb2cuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmluYWwgb3V0cHV0OiAlZCAlc1xuIgogbXNnc3RyICJL4bq/dCB4deG6pXQgY3Xhu5FpIGPDuW5nOiAlZCAlc1xuIgogCi0jOiBidWlsdGluL2xvZy5jOjQyMiBidWlsdGluL2xvZy5jOjUxNAorIzogYnVpbHRpbi9sb2cuYzo0NTMgYnVpbHRpbi9sb2cuYzo1NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIMSR4buRaSB0xrDhu6NuZyAlcyIKIAotIzogYnVpbHRpbi9sb2cuYzo1MzgKKyM6IGJ1aWx0aW4vbG9nLmM6NTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gdHlwZTogJWQiCiBtc2dzdHIgIktow7RuZyBuaOG6rW4gcmEga2nhu4N1OiAlZCIKIAotIzogYnVpbHRpbi9sb2cuYzo2MzAKKyM6IGJ1aWx0aW4vbG9nLmM6NjY5CiBtc2dpZCAiZm9ybWF0LmhlYWRlcnMgd2l0aG91dCB2YWx1ZSIKIG1zZ3N0ciAiZm9ybWF0LmhlYWRlcnMga2jDtG5nIGPDsyBnacOhIHRy4buLIGPhu6UgdGjhu4MiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzA0CisjOiBidWlsdGluL2xvZy5jOjc1MQogbXNnaWQgIm5hbWUgb2Ygb3V0cHV0IGRpcmVjdG9yeSBpcyB0b28gbG9uZyIKIG1zZ3N0ciAidMOqbiBj4bunYSB0aMawIG3hu6VjIGvhur90IHh14bqldCBxdcOhIGTDoGkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzIwCisjOiBidWlsdGluL2xvZy5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbeG7nyB04bqtcCB0aW4gbWnhur9uZyB2w6E6ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjczNAorIzogYnVpbHRpbi9sb2cuYzo3ODEKIG1zZ2lkICJOZWVkIGV4YWN0bHkgb25lIHJhbmdlLiIKIG1zZ3N0ciAiQ+G6p24gY2jDrW5oIHjDoWMgbeG7mXQgdsO5bmcuIgogCi0jOiBidWlsdGluL2xvZy5jOjc0MgorIzogYnVpbHRpbi9sb2cuYzo3ODkKIG1zZ2lkICJOb3QgYSByYW5nZS4iCiBtc2dzdHIgIktow7RuZyBwaOG6o2kgbMOgIG3hu5l0IHbDuW5nLiIKIAotIzogYnVpbHRpbi9sb2cuYzo4MTUKKyM6IGJ1aWx0aW4vbG9nLmM6ODkxCiBtc2dpZCAiQ292ZXIgbGV0dGVyIG5lZWRzIGVtYWlsIGZvcm1hdCIKIG1zZ3N0ciAi4oCdQ292ZXIgbGV0dGVy4oCdIGPhuqduIGNobyDEkeG7i25oIGThuqFuZyB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjg4OAorIzogYnVpbHRpbi9sb2cuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5zYW5lIGluLXJlcGx5LXRvOiAlcyIKIG1zZ3N0ciAiaW4tcmVwbHktdG8gxJFpw6puIHLhu5M6ICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjkxNgorIzogYnVpbHRpbi9sb2cuYzo5OTUKIG1zZ2lkICJnaXQgZm9ybWF0LXBhdGNoIFtvcHRpb25zXSBbPHNpbmNlPiB8IDxyZXZpc2lvbiByYW5nZT5dIgogbXNnc3RyICJnaXQgZm9ybWF0LXBhdGNoIFtjw6FjLXTDuXktY2jhu41uXSBbPGvhu4MtdOG7qz4gfCA8dsO5bmcteGVtLXjDqXQ+XSIKIAotIzogYnVpbHRpbi9sb2cuYzo5NjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTA0MAogbXNnaWQgIlR3byBvdXRwdXQgZGlyZWN0b3JpZXM/IgogbXNnc3RyICJIYWkgdGjGsCBt4bulYyBr4bq/dCB4deG6pXQ/IgogCi0jOiBidWlsdGluL2xvZy5jOjEwOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgImTDuW5nIFtQQVRDSCBuL21dIG5nYXkgY+G6oyB24bubaSBtaeG6v25nIHbDoSDEkcahbiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTAyCisjOiBidWlsdGluL2xvZy5jOjExNTgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAiZMO5bmcgW1bDgV0gbmdheSBj4bqjIHbhu5tpIGPDoWMgbWnhur9uZyB2w6EgcGjhu6ljIHThuqFwIgogCi0jOiBidWlsdGluL2xvZy5jOjExMDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2MgogbXNnaWQgInByaW50IHBhdGNoZXMgdG8gc3RhbmRhcmQgb3V0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgbWnhur9uZyB2w6EgcmEgxJHhuqd1IHJhIGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwOAorIzogYnVpbHRpbi9sb2cuYzoxMTY0CiBtc2dpZCAiZ2VuZXJhdGUgYSBjb3ZlciBsZXR0ZXIiCiBtc2dzdHIgInThuqFvIGLDrCB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NgogbXNnaWQgInVzZSBzaW1wbGUgbnVtYmVyIHNlcXVlbmNlIGZvciBvdXRwdXQgZmlsZSBuYW1lcyIKIG1zZ3N0ciAic+G7rSBk4bulbmcgY2jhu5dpIGTDo3kgc+G7kSBk4bqhbmcgxJHGoW4gZ2nhuqNuIGNobyB0w6puIHThuq1wLXRpbiB4deG6pXQgcmEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMQorIzogYnVpbHRpbi9sb2cuYzoxMTY3CiBtc2dpZCAic2Z4IgogbXNnc3RyICJzZngiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTExMgorIzogYnVpbHRpbi9sb2cuYzoxMTY4CiBtc2dpZCAidXNlIDxzZng+IGluc3RlYWQgb2YgJy5wYXRjaCciCiBtc2dzdHIgInPhu60gZOG7pW5nIDxzZng+IHRoYXkgY2hvIOKAnC5wYXRjaOKAnSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE0CisjOiBidWlsdGluL2xvZy5jOjExNzAKIG1zZ2lkICJzdGFydCBudW1iZXJpbmcgcGF0Y2hlcyBhdCA8bj4gaW5zdGVhZCBvZiAxIgogbXNnc3RyICJi4bqvdCDEkeG6p3UgxJHDoW5oIHPhu5EgbWnhur9uZyB2w6EgdOG7qyA8bj4gdGhheSB2w6wgMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE2CisjOiBidWlsdGluL2xvZy5jOjExNzIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIsSRw6FuaCBk4bqldSBjaHXhu5dpIG7hu5FpIHRp4bq/cCBk4bqhbmcgdGjhu6ktTiByZS1yb2xsIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NAogbXNnaWQgIlVzZSBbPHByZWZpeD5dIGluc3RlYWQgb2YgW1BBVENIXSIKIG1zZ3N0ciAiRMO5bmcgWzx0aeG7gW4tdOG7kT5dIHRoYXkgY2hvIFtWw4FdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgInN0b3JlIHJlc3VsdGluZyBmaWxlcyBpbiA8ZGlyPiIKIG1zZ3N0ciAibMawdSBjw6FjIHThuq1wIHRpbiBr4bq/dCBxdeG6oyB0cm9uZyA8dC5t4bulYz4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNAorIzogYnVpbHRpbi9sb2cuYzoxMTgwCiBtc2dpZCAiZG9uJ3Qgc3RyaXAvYWRkIFtQQVRDSF0iCiBtc2dzdHIgImtow7RuZyBzdHJpcC9hZGQgW1bDgV0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTgzCiBtc2dpZCAiZG9uJ3Qgb3V0cHV0IGJpbmFyeSBkaWZmcyIKIG1zZ3N0ciAia2jDtG5nIGvhur90IHh14bqldCBkaWZmIChuaOG7r25nIGtow6FjIGJp4buHdCkgbmjhu4sgcGjDom4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyOQorIzogYnVpbHRpbi9sb2cuYzoxMTg1CiBtc2dpZCAiZG9uJ3QgaW5jbHVkZSBhIHBhdGNoIG1hdGNoaW5nIGEgY29tbWl0IHVwc3RyZWFtIgogbXNnc3RyICJraMO0bmcgYmFvIGfhu5NtIG1p4bq/bmcgdsOhIGto4bubcCB24bubaSBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIHRoxrDhu6NuZyBuZ3Xhu5NuIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIMSR4buLbmggZOG6oW5nIG1p4bq/bmcgdsOhIHRoYXkgdsOsIG3hurdjIMSR4buLbmggKG1p4bq/bmcgdsOhICsgdGjhu5FuZyBrw6opIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzMKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4OQogbXNnaWQgIk1lc3NhZ2luZyIKIG1zZ3N0ciAiTOG7nWkgbmjhuq9uIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MAogbXNnaWQgImhlYWRlciIKIG1zZ3N0ciAixJHhuqd1IMSR4buBIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNQorIzogYnVpbHRpbi9sb2cuYzoxMTkxCiBtc2dpZCAiYWRkIGVtYWlsIGhlYWRlciIKIG1zZ3N0ciAidGjDqm0gxJHhuqd1IMSR4buBIHRoxrAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAidGjGsCDEkWnhu4duIHThu60iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNgorIzogYnVpbHRpbi9sb2cuYzoxMTkyCiBtc2dpZCAiYWRkIFRvOiBoZWFkZXIiCiBtc2dzdHIgInRow6ptIFRvOiDEkeG6p3UgxJHhu4EgdGjGsCIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM4CisjOiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJhZGQgQ2M6IGhlYWRlciIKIG1zZ3N0ciAidGjDqm0gQ2M6IMSR4bqndSDEkeG7gSB0aMawIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NgorbXNnaWQgImlkZW50IgorbXNnc3RyICJ0aOG7pXQgbOG7gSIKKworIzogYnVpbHRpbi9sb2cuYzoxMTk3Cittc2dpZCAic2V0IEZyb20gYWRkcmVzcyB0byA8aWRlbnQ+IChvciBjb21taXR0ZXIgaWRlbnQgaWYgYWJzZW50KSIKK21zZ3N0ciAiIgorIsSR4bq3dCBgxJDhu4thIGNo4buJIGfhu61pJyB0aMOgbmggPHRo4bulIGzhu4E+IChob+G6t2MgdGjhu6V0IGzhu4EgbmfGsOG7nWkgY29tbWl0IG7hur91IGLhu48gcXXDqm4pIgorCisjOiBidWlsdGluL2xvZy5jOjExOTkKIG1zZ2lkICJtZXNzYWdlLWlkIgogbXNnc3RyICJtZXNzYWdlLWlkIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDEKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMAogbXNnaWQgIm1ha2UgZmlyc3QgbWFpbCBhIHJlcGx5IHRvIDxtZXNzYWdlLWlkPiIKIG1zZ3N0ciAiZMO5bmcgdGjGsCDEkeG6p3UgdGnDqm4gxJHhu4MgdHLhuqMgbOG7nWkgPG1lc3NhZ2UtaWQ+IgogCi0jOiBidWlsdGluL2xvZy5jOjExNDIgYnVpbHRpbi9sb2cuYzoxMTQ1CisjOiBidWlsdGluL2xvZy5jOjEyMDEgYnVpbHRpbi9sb2cuYzoxMjA0CiBtc2dpZCAiYm91bmRhcnkiCiBtc2dzdHIgInJhbmggZ2nhu5tpIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwMgogbXNnaWQgImF0dGFjaCB0aGUgcGF0Y2giCiBtc2dzdHIgIsSRw61uaCBrw6htIG1p4bq/bmcgdsOhIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgImTDuW5nIG1p4bq/bmcgdsOhIGzDoG0gbuG7mWkgZHVuZyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUwCisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKIG1zZ3N0ciAiY2hvIHBow6lwIGx14buTbmcgbOG7nWkgbmjhuq9uLCBraeG7g3U6IOKAnHNoYWxsb3figJ0sIOKAnGRlZXDigJ0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MgorIzogYnVpbHRpbi9sb2cuYzoxMjExCiBtc2dpZCAic2lnbmF0dXJlIgogbXNnc3RyICJjaOG7ryBrw70iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1MworIzogYnVpbHRpbi9sb2cuYzoxMjEyCiBtc2dpZCAiYWRkIGEgc2lnbmF0dXJlIgogbXNnc3RyICJ0aMOqbSBjaOG7ryBrw70iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE1NQorIzogYnVpbHRpbi9sb2cuYzoxMjE0CiBtc2dpZCAiZG9uJ3QgcHJpbnQgdGhlIHBhdGNoIGZpbGVuYW1lcyIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyBjw6FjIHTDqm4gdOG6rXAgdGluIGPhu6dhIG1p4bq/bmcgdsOhIgogCi0jOiBidWlsdGluL2xvZy5jOjEyMzkKKyM6IGJ1aWx0aW4vbG9nLmM6MTI4OAorIywgYy1mb3JtYXQKK21zZ2lkICJpbnZhbGlkIGlkZW50IGxpbmU6ICVzIgorbXNnc3RyICJkw7JuZyB0aOG7pXQgbOG7gSBraMO0bmcgaOG7o3AgbOG7hzogJXMiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwMwogbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLW4gdsOgICAtayBsb+G6oWkgdOG7qyBs4bqrbiBuaGF1LiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjQxCisjOiBidWlsdGluL2xvZy5jOjEzMDUKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLS1zdWJqZWN0LXByZWZpeCB2w6AgLWsgeHVuZyBraOG6r2MgbmhhdS4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI0OQorIzogYnVpbHRpbi9sb2cuYzoxMzEzCiBtc2dpZCAiLS1uYW1lLW9ubHkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1uYW1lLW9ubHkga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUxCisjOiBidWlsdGluL2xvZy5jOjEzMTUKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1zdGF0dXMga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUzCisjOiBidWlsdGluL2xvZy5jOjEzMTcKIG1zZ2lkICItLWNoZWNrIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tY2hlY2sga2jDtG5nIGjhu6NwIGzDvSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjc2CisjOiBidWlsdGluL2xvZy5jOjEzNDAKIG1zZ2lkICJzdGFuZGFyZCBvdXRwdXQsIG9yIGRpcmVjdG9yeSwgd2hpY2ggb25lPyIKIG1zZ3N0ciAixJHhuqd1IHJhIGNodeG6qW4sIGhheSB0aMawIG3hu6VjLCBjaOG7jW4gY8OhaSBuw6BvPyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjc4CisjOiBidWlsdGluL2xvZy5jOjEzNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHThuqFvIHRoxrAgbeG7pWMg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQzMQorIzogYnVpbHRpbi9sb2cuYzoxNDkwCiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSB04bqhbyBjw6FjIHThuq1wIHRpbiBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQ4MAorIzogYnVpbHRpbi9sb2cuYzoxNTM5CiBtc2dpZCAiZ2l0IGNoZXJyeSBbLXZdIFs8dXBzdHJlYW0+IFs8aGVhZD4gWzxsaW1pdD5dXV0iCiBtc2dzdHIgImdpdCBjaGVycnkgWy12XSBbPHRoxrDhu6NuZy1uZ3Xhu5NuPiBbPGhlYWQ+IFs8Z2nhu5tpLWjhuqFuPl1dXSIKIAotIzogYnVpbHRpbi9sb2cuYzoxNTM1CisjOiBidWlsdGluL2xvZy5jOjE1OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBmaW5kIGEgdHJhY2tlZCByZW1vdGUgYnJhbmNoLCBwbGVhc2Ugc3BlY2lmeSA8dXBzdHJlYW0+IG1hbnVhbGx5LlxuIgpAQCAtNTkyNSwxMDMgKzYzNjIsMTAzIEBACiAiS2jDtG5nIHTDrG0gdGjhuqV5IG5ow6FuaCBt4bqhbmcgYuG7iyB0aGVvIHbhur90LCBow6N5IGNo4buJIMSR4buLbmggPHRoxrDhu6NuZy1uZ3Xhu5NuPiBt4buZdCBjw6FjaCAiCiAidGjhu6cgY8O0bmcuXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU0OCBidWlsdGluL2xvZy5jOjE1NTAgYnVpbHRpbi9sb2cuYzoxNTYyCisjOiBidWlsdGluL2xvZy5jOjE2MDcgYnVpbHRpbi9sb2cuYzoxNjA5IGJ1aWx0aW4vbG9nLmM6MTYyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAiS2jDtG5nIGhp4buDdSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFtjw6FjLXTDuXktY2jhu41uXSBbPHThuq1wLXRpbj4uLi5dIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY1CiBtc2dpZCAiaWRlbnRpZnkgdGhlIGZpbGUgc3RhdHVzIHdpdGggdGFncyIKIG1zZ3N0ciAibmjhuq1uIGThuqFuZyBjw6FjIHRy4bqhbmcgdGjDoWkgdOG6rXAgdGluIHbhu5tpIHRo4bq7IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDY4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDY3CiBtc2dpZCAidXNlIGxvd2VyY2FzZSBsZXR0ZXJzIGZvciAnYXNzdW1lIHVuY2hhbmdlZCcgZmlsZXMiCiBtc2dzdHIgIiIKICJkw7luZyBjaOG7ryBjw6FpIHZp4bq/dCB0aMaw4budbmcgY2hvIGPDoWMgdOG6rXAgdGluIOKAnGFzc3VtZSB1bmNoYW5nZWTigJ0gKGdp4bqjIMSR4buLbmgga2jDtG5nICIKICJ0aGF5IMSR4buVaSkiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjkKIG1zZ2lkICJzaG93IGNhY2hlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IChkZWZhdWx0KSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIMSRxrDhu6NjIG5o4bubIHThuqFtIHbDoG8gxJHhuqd1IHJhICht4bq3YyDEkeG7i25oKSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MgorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MQogbXNnaWQgInNob3cgZGVsZXRlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4gxJHDoyB4w7NhIHRyb25nIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MwogbXNnaWQgInNob3cgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgdOG6rXAgdGluIMSRw6MgYuG7iyBz4butYSDEkeG7lWkgcmEga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc1CiBtc2dpZCAic2hvdyBvdGhlciBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyB04bqtcCB0aW4ga2jDoWMgdHJvbmcga+G6v3QgeHXhuqV0IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc4CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDc3CiBtc2dpZCAic2hvdyBpZ25vcmVkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBi4buLIGLhu48gcXVhIHRyb25nIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MAogbXNnaWQgInNob3cgc3RhZ2VkIGNvbnRlbnRzJyBvYmplY3QgbmFtZSBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICJoaeG7g24gdGjhu4sgdMOqbiDEkeG7kWkgdMaw4bujbmcgY+G7p2EgbuG7mWkgZHVuZyDEkcaw4bujYyBsxrB1IHRy4bqhbmcgdGjDoWkg4bufIGvhur90IHh14bqldCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MworIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4MgogbXNnaWQgInNob3cgZmlsZXMgb24gdGhlIGZpbGVzeXN0ZW0gdGhhdCBuZWVkIHRvIGJlIHJlbW92ZWQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiB0csOqbiBo4buHIHRo4buRbmcgdOG6rXAgdGluIG3DoCBuw7MgY+G6p24gxJHGsOG7o2MgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0w6puIGPhu6dhIGPDoWMgdGjGsCBt4bulYyDigJxraMOhY+KAnSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgImtow7RuZyBoaeG7g24gdGjhu4sgdGjGsCBt4bulYyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTAKIG1zZ2lkICJzaG93IHVubWVyZ2VkIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHThuq1wIHRpbiBjaMawYSBow7JhIHRy4buZbiB0cm9uZyBr4bq/dCB4deG6pXQiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTIKIG1zZ2lkICJzaG93IHJlc29sdmUtdW5kbyBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRow7RuZyB0aW4gcmVzb2x2ZS11bmRvIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICJi4buPIHF1YSBuaOG7r25nIHThuq1wIHRpbiBraOG7m3AgduG7m2kgbeG7mXQgbeG6q3UiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICJt4bqrdSBsb+G6oWkgdHLhu6sgxJHGsOG7o2MgxJHhu41jIHThu6sgPHThuq1wIHRpbj4iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDAKIG1zZ2lkICJyZWFkIGFkZGl0aW9uYWwgcGVyLWRpcmVjdG9yeSBleGNsdWRlIHBhdHRlcm5zIGluIDxmaWxlPiIKIG1zZ3N0ciAixJHhu41jIHRow6ptIGPDoWMgbeG6q3Ugbmdv4bqhaSB0cuG7qyBt4buXaSB0aMawIG3hu6VjIHRyb25nIDx04bqtcCB0aW4+IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAyCiBtc2dpZCAiYWRkIHRoZSBzdGFuZGFyZCBnaXQgZXhjbHVzaW9ucyIKIG1zZ3N0ciAidGjDqm0gbG/huqFpIHRy4burIHRpw6p1IGNodeG6qW4ga2nhu4N1IGdpdCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICJsw6BtIGNobyBr4bq/dCB4deG6pXQgbGnDqm4gcXVhbiDEkeG6v24gdGjGsCBt4bulYyDhu58gbeG7qWMgY2FvIG5o4bqldCAoZ+G7kWMpIGPhu6dhIGThu7Egw6FuIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTA4CiBtc2dpZCAiaWYgYW55IDxmaWxlPiBpcyBub3QgaW4gdGhlIGluZGV4LCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yIgogbXNnc3RyICJu4bq/dSA8dOG6rXAgdGluPiBi4bqldCBr4buzIGtow7RuZyDhu58gdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjLCB44butIGzDvSBuw7MgbmjGsCBt4buZdCBs4buXaSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwOQogbXNnaWQgInRyZWUtaXNoIgogbXNnc3RyICJ0cmVlLWlzaCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMQorIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMAogbXNnaWQgInByZXRlbmQgdGhhdCBwYXRocyByZW1vdmVkIHNpbmNlIDx0cmVlLWlzaD4gYXJlIHN0aWxsIHByZXNlbnQiCiBtc2dzdHIgIiIKICJnaeG6oyDEkeG7i25oIHLhurFuZyBjw6FjIMSRxrDhu51uZyBk4bqrbiDEkcOjIGLhu4sgZ+G7oSBi4buPIGvhu4MgdOG7qyA8dHJlZS1pc2g+IG5heSB24bqrbiBoaeG7h24gZGnhu4duIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTEzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTEyCiBtc2dpZCAic2hvdyBkZWJ1Z2dpbmcgZGF0YSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGThu68gbGnhu4d1IGfhu6EgbOG7l2kiCiAKQEAgLTYwNzMsMTcwICs2NTEwLDE3MCBAQAogbXNnaWQgImdpdCBtZXJnZSAtLWFib3J0IgogbXNnc3RyICJnaXQgbWVyZ2UgLS1hYm9ydCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwCisjOiBidWlsdGluL21lcmdlLmM6OTgKIG1zZ2lkICJzd2l0Y2ggYG0nIHJlcXVpcmVzIGEgdmFsdWUiCiBtc2dzdHIgInN3aXRjaCDigJxt4oCdIHnDqnUgY+G6p3UgbeG7mXQgZ2nDoSB0cuG7iyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyNworIzogYnVpbHRpbi9tZXJnZS5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZmluZCBtZXJnZSBzdHJhdGVneSAnJXMnLlxuIgogbXNnc3RyICJLaMO0bmcgdMOsbSB0aOG6pXkgY2hp4bq/biBsxrDhu6NjIGjDsmEgdHLhu5luIOKAnCVz4oCdLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI4CisjOiBidWlsdGluL21lcmdlLmM6MTM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBzdHJhdGVnaWVzIGFyZToiCiBtc2dzdHIgIkPDoWMgY2hp4bq/biBsxrDhu6NjIHPhurVuIHPDoG5nIGzDoDoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIGN1c3RvbSBzdHJhdGVnaWVzIGFyZToiCiBtc2dzdHIgIkPDoWMgY2hp4bq/biBsxrDhu6NjIHTDuXkgY2jhu4luaCBz4bq1biBzw6BuZyBsw6A6IgogCi0jOiBidWlsdGluL21lcmdlLmM6MTgzCisjOiBidWlsdGluL21lcmdlLmM6MTk4CiBtc2dpZCAiZG8gbm90IHNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKIG1zZ3N0ciAia2jDtG5nIGhp4buDbiB0aOG7iyB0aOG7kW5nIGvDqiBraMOhYyBiaeG7h3QgdOG6oWkgY3Xhu5FpIGPhu6dhIGzhuqduIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg2CisjOiBidWlsdGluL21lcmdlLmM6MjAxCiBtc2dpZCAic2hvdyBhIGRpZmZzdGF0IGF0IHRoZSBlbmQgb2YgdGhlIG1lcmdlIgogbXNnc3RyICJoaeG7g24gdGjhu4sgdGjhu5FuZyBrw6oga2jDoWMgYmnhu4d0IHThuqFpIGN14buRaSBj4bunYSBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NworIzogYnVpbHRpbi9tZXJnZS5jOjIwMgogbXNnaWQgIihzeW5vbnltIHRvIC0tc3RhdCkiCiBtc2dzdHIgIijEkeG7k25nIG5naMSpYSB24bubaSAtLXN0YXQpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg5CisjOiBidWlsdGluL21lcmdlLmM6MjA0CiBtc2dpZCAiYWRkIChhdCBtb3N0IDxuPikgZW50cmllcyBmcm9tIHNob3J0bG9nIHRvIG1lcmdlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJ0aMOqbSAow610IG5o4bqldCA8bj4pIG3hu6VjIHThu6sgc2hvcnRsb2cgY2hvIGdoaSBjaMO6IGNodXnhu4NuIGdpYW8gaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDcKIG1zZ2lkICJjcmVhdGUgYSBzaW5nbGUgY29tbWl0IGluc3RlYWQgb2YgZG9pbmcgYSBtZXJnZSIKIG1zZ3N0ciAidOG6oW8gbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSDEkcawb24gdGhheSB2w6wgdGjhu7FjIGhp4buHbiB2aeG7h2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKIG1zZ2lkICJwZXJmb3JtIGEgY29tbWl0IGlmIHRoZSBtZXJnZSBzdWNjZWVkcyAoZGVmYXVsdCkiCiBtc2dzdHIgInRo4buxYyBoaeG7h24gY2h1eeG7g24gZ2lhbyBu4bq/dSBow7JhIHRy4buZbiB0aMOgbmggY8O0bmcgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk2CisjOiBidWlsdGluL21lcmdlLmM6MjExCiBtc2dpZCAiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIgogbXNnc3RyICJz4butYSBjaMO6IHRow61jaCB0csaw4bubYyBraGkgY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5OAorIzogYnVpbHRpbi9tZXJnZS5jOjIxMgogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCAoZGVmYXVsdCkiCiBtc2dzdHIgImNobyBwaMOpcCBmYXN0LWZvcndhcmQgKG3hurdjIMSR4buLbmgpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjAwCisjOiBidWlsdGluL21lcmdlLmM6MjE0CiBtc2dpZCAiYWJvcnQgaWYgZmFzdC1mb3J3YXJkIGlzIG5vdCBwb3NzaWJsZSIKIG1zZ3N0ciAiYuG7jyBxdWEgbuG6v3UgZmFzdC1mb3J3YXJkIGtow7RuZyB0aOG7gyDEkcaw4bujYyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwMworIzogYnVpbHRpbi9tZXJnZS5jOjIxOAogbXNnaWQgIlZlcmlmeSB0aGF0IHRoZSBuYW1lZCBjb21taXQgaGFzIGEgdmFsaWQgR1BHIHNpZ25hdHVyZSIKIG1zZ3N0ciAiVGjhuqltIHRyYSB4ZW0gbOG6p24gY2h1eeG7g24gZ2lhbyBjw7MgdMOqbiDEkcOzIGPDsyBjaOG7ryBrw70gR1BHIGjhu6NwIGzhu4cgaGF5IGtow7RuZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNCBidWlsdGluL25vdGVzLmM6ODY2IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEyCisjOiBidWlsdGluL21lcmdlLmM6MjE5IGJ1aWx0aW4vbm90ZXMuYzo3MzggYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJzdHJhdGVneSIKIG1zZ3N0ciAiY2hp4bq/biBsxrDhu6NjIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA1CisjOiBidWlsdGluL21lcmdlLmM6MjIwCiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kgdG8gdXNlIgogbXNnc3RyICJjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4gc+G6vSBkw7luZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNgorIzogYnVpbHRpbi9tZXJnZS5jOjIyMQogbXNnaWQgIm9wdGlvbj12YWx1ZSIKIG1zZ3N0ciAidMO5eV9jaOG7jW49Z2nDoV90cuG7iyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNworIzogYnVpbHRpbi9tZXJnZS5jOjIyMgogbXNnaWQgIm9wdGlvbiBmb3Igc2VsZWN0ZWQgbWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgInTDuXkgY2jhu41uIGNobyBjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4gxJHDoyBjaOG7jW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjQKIG1zZ2lkICJtZXJnZSBjb21taXQgbWVzc2FnZSAoZm9yIGEgbm9uLWZhc3QtZm9yd2FyZCBtZXJnZSkiCiBtc2dzdHIgIiIKICJow7JhIHRy4buZbiBnaGkgY2jDuiBj4bunYSBs4bqnbiBjaHV54buDbiBnaWFvIChkw6BuaCBjaG8gaMOyYSB0cuG7mW4gbm9uLWZhc3QtZm9yd2FyZCkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjgKIG1zZ2lkICJhYm9ydCB0aGUgY3VycmVudCBpbi1wcm9ncmVzcyBtZXJnZSIKIG1zZ3N0ciAiYsOjaSBi4buPIHF1w6EgdHLDrG5oIGjDsmEgdHLhu5luIGhp4buHbiB04bqhaSDEkWFuZyB0aOG7sWMgaGnhu4duIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQyCisjOiBidWlsdGluL21lcmdlLmM6MjU3CiBtc2dpZCAiY291bGQgbm90IHJ1biBzdGFzaC4iCiBtc2dzdHIgImtow7RuZyB0aOG7gyBjaOG6oXkgc3Rhc2guIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQ3CisjOiBidWlsdGluL21lcmdlLmM6MjYyCiBtc2dpZCAic3Rhc2ggZmFpbGVkIgogbXNnc3RyICJzdGFzaCBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI1MgorIzogYnVpbHRpbi9tZXJnZS5jOjI2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgYSB2YWxpZCBvYmplY3Q6ICVzIgogbXNnc3RyICJraMO0bmcgcGjhuqNpIGzDoCBt4buZdCDEkeG7kWkgdMaw4bujbmcgaOG7o3AgbOG7hzogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyNzEgYnVpbHRpbi9tZXJnZS5jOjI4OAorIzogYnVpbHRpbi9tZXJnZS5jOjI4NiBidWlsdGluL21lcmdlLmM6MzAzCiBtc2dpZCAicmVhZC10cmVlIGZhaWxlZCIKIG1zZ3N0ciAicmVhZC10cmVlIGfhurdwIGzhu5dpIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzE4CisjOiBidWlsdGluL21lcmdlLmM6MzMzCiBtc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCiBtc2dzdHIgIiAoa2jDtG5nIGPDsyBnw6wgxJHhu4Mgc3F1YXNoKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjMzMQorIzogYnVpbHRpbi9tZXJnZS5jOjM0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcXVhc2ggY29tbWl0IC0tIG5vdCB1cGRhdGluZyBIRUFEXG4iCiBtc2dzdHIgIlNxdWFzaCBjb21taXQgLS0ga2jDtG5nIGPhuq1wIG5o4bqtdCBIRUFEXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNzgKIG1zZ2lkICJXcml0aW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIsSQYW5nIGdoaSBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6MzY1CisjOiBidWlsdGluL21lcmdlLmM6MzgwCiBtc2dpZCAiRmluaXNoaW5nIFNRVUFTSF9NU0ciCiBtc2dzdHIgIkhvw6BuIHRow6BuaCBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL21lcmdlLmM6Mzg4CisjOiBidWlsdGluL21lcmdlLmM6NDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIG1lc3NhZ2UgLS0gbm90IHVwZGF0aW5nIEhFQURcbiIKIG1zZ3N0ciAiS2jDtG5nIHRow7RuZyDEkWnhu4dwIGjDsmEgdHLhu5luIC0tIGtow7RuZyBj4bqtcCBuaOG6rXQgSEVBRFxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6NDM4CisjOiBidWlsdGluL21lcmdlLmM6NDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiclcycgZG9lcyBub3QgcG9pbnQgdG8gYSBjb21taXQiCiBtc2dzdHIgIuKAnCVz4oCdIGtow7RuZyBjaOG7iSDEkeG6v24gbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSBuw6BvIGPhuqMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo1NTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo1NjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQmFkIGJyYW5jaC4lcy5tZXJnZW9wdGlvbnMgc3RyaW5nOiAlcyIKIG1zZ3N0ciAiQ2h14buXaSBicmFuY2guJXMubWVyZ2VvcHRpb25zIHNhaTogJXMiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2NDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2NTcKIG1zZ2lkICJnaXQgd3JpdGUtdHJlZSBmYWlsZWQgdG8gd3JpdGUgYSB0cmVlIgogbXNnc3RyICJs4buHbmggZ2l0IHdyaXRlLXRyZWUgZ+G6t3AgbOG7l2kga2hpIGdoaSBt4buZdCBjw6J5IgogCi0jOiBidWlsdGluL21lcmdlLmM6NjcxCisjOiBidWlsdGluL21lcmdlLmM6Njg1CiBtc2dpZCAiTm90IGhhbmRsaW5nIGFueXRoaW5nIG90aGVyIHRoYW4gdHdvIGhlYWRzIG1lcmdlLiIKIG1zZ3N0ciAiS2jDtG5nIGPhuqdtIG7huq9tIGfDrCBuZ2/DoGkgaGFpIGhlYWQgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo2ODUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo2OTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biBvcHRpb24gZm9yIG1lcmdlLXJlY3Vyc2l2ZTogLVglcyIKIG1zZ3N0ciAiS2jDtG5nIGhp4buDdSB0w7l5IGNo4buNbiBjaG8gbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6Njk5CisjOiBidWlsdGluL21lcmdlLmM6NzEzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSAlcyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGdoaSAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc4OAorIzogYnVpbHRpbi9tZXJnZS5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBmcm9tICclcyciCiBtc2dzdHIgIktow7RuZyB0aOG7gyDEkeG7jWMgdOG7qyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc5NworIzogYnVpbHRpbi9tZXJnZS5jOjgxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgY29tbWl0dGluZyBtZXJnZTsgdXNlICdnaXQgY29tbWl0JyB0byBjb21wbGV0ZSB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIiIKICJW4bqrbiBjaMawYSBow7JhIHRy4buZbiBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk7IHPhu60gZOG7pW5nIGzhu4duaCDigJxnaXQgY29tbWl04oCdIMSR4buDICIKICJob8OgbiB04bqldCB2aeG7h2MgaMOyYSB0cuG7mW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciBhIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gd2h5IHRoaXMgbWVyZ2UgaXMgbmVjZXNzYXJ5LFxuIgpAQCAtNjI1NCw1NSArNjY5MSw1MCBAQAogInLhu5duZ1xuIgogInPhur0gaOG7p3kgYuG7jyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODI3CisjOiBidWlsdGluL21lcmdlLmM6ODQxCiBtc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgogbXNnc3RyICJDaMO6IHRow61jaCBj4bunYSBs4bqnbiBjb21taXQgKGNodXnhu4NuIGdpYW8pIGLhu4sgdHLhu5FuZyBy4buXbmcuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODM5CisjOiBidWlsdGluL21lcmdlLmM6ODUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvbmRlcmZ1bC5cbiIKIG1zZ3N0ciAiVGjhuqduIGvhu7MuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5MDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIGZhaWxlZDsgZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBjb21taXQgdGhlIHJlc3VsdC5cbiIKIG1zZ3N0ciAiIgogIlZp4buHYyB04buxIMSR4buZbmcgaMOyYSB0cuG7mW4gZ+G6t3AgbOG7l2k7IGjDo3kgc+G7rWEgY8OhYyB4dW5nIMSR4buZdCBzYXUgxJHDsyBjaHV54buDbiBnaWFvICIKICIoY29tbWl0KSBr4bq/dCBxdeG6oy5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkyMAorIzogYnVpbHRpbi9tZXJnZS5jOjkzNAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIGNvbW1pdCIKIG1zZ3N0ciAiJXMga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgbOG6p24gY29tbWl0IChjaHV54buDbiBnaWFvKSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MQorIzogYnVpbHRpbi9tZXJnZS5jOjk3NQogbXNnaWQgIk5vIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAia2jDtG5nIHBo4bqjaSBuaMOhbmggaGnhu4duIGjDoG5oIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTYzCisjOiBidWlsdGluL21lcmdlLmM6OTc3CiBtc2dpZCAiTm8gcmVtb3RlIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICJLaMO0bmcgY8OzIG3DoXkgY2jhu6cgY2hvIG5ow6FuaCBoaeG7h24gaMOgbmguIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTY1CisjOiBidWlsdGluL21lcmdlLmM6OTc5CiBtc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICJLaMO0bmcgY8OzIHRoxrDhu6NuZyBuZ3Xhu5NuIG3hurdjIMSR4buLbmggxJHGsOG7o2MgxJHhu4tuaCBuZ2jEqWEgY2hvIG5ow6FuaCBoaeG7h24gaMOgbmguIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTcwCisjOiBidWlsdGluL21lcmdlLmM6OTg0CiAjLCBjLWZvcm1hdAotbXNnaWQgIk5vIHJlbW90ZSB0cmFja2luZyBicmFuY2ggZm9yICVzIGZyb20gJXMiCittc2dpZCAiTm8gcmVtb3RlLXRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKIG1zZ3N0ciAiS2jDtG5nIG5ow6FuaCBt4bqhbmcgdGhlbyB24bq/dCBjaG8gJXMgdOG7qyAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEwNTcgYnVpbHRpbi9tZXJnZS5jOjEyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKLW1zZ3N0ciAiJXMgLSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBz4buRIHRo4bupIGNow7puZyB0w7RpIGPDsyB0aOG7gyBow7JhIHRy4buZbiIKLQotIzogYnVpbHRpbi9tZXJnZS5jOjExMjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQwCiBtc2dpZCAiVGhlcmUgaXMgbm8gbWVyZ2UgdG8gYWJvcnQgKE1FUkdFX0hFQUQgbWlzc2luZykuIgogbXNnc3RyICIiCiAi4bueIMSRw6J5IGtow7RuZyBjw7MgbOG6p24gaMOyYSB0cuG7mW4gbsOgbyDEkcaw4bujYyBo4buneSBi4buPIGdp4buvYSBjaOG7q25nIGPhuqMgKHRoaeG6v3UgTUVSR0VfSEVBRCkuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0MSBnaXQtcHVsbC5zaDozMQorIzogYnVpbHRpbi9tZXJnZS5jOjExNTYgZ2l0LXB1bGwuc2g6MzEKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKQEAgLTYzMTAsMTEgKzY3NDIsMTEgQEAKICJC4bqhbiBjaMawYSBr4bq/dCB0aMO6YyB2aeG7h2MgaMOyYSB0cuG7mW5nIChNRVJHRV9IRUFEIHbhuqtuIHThu5NuIHThuqFpKS5cbiIKICJIw6N5IGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY8OhYyB0aGF5IMSR4buVaSB0csaw4bubYyBraGkgYuG6oW4gY8OzIHRo4buDIGjDsmEgdHLhu5luLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNDQgZ2l0LXB1bGwuc2g6MzQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTU5IGdpdC1wdWxsLnNoOjM0CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIG1lcmdlIChNRVJHRV9IRUFEIGV4aXN0cykuIgogbXNnc3RyICJC4bqhbiBjaMawYSBr4bq/dCB0aMO6YyB2aeG7h2MgaMOyYSB0cuG7mW5nIChNRVJHRV9IRUFEIHbhuqtuIHThu5NuIHThuqFpKS4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQ4CisjOiBidWlsdGluL21lcmdlLmM6MTE2MwogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgpAQCAtNjMyMiwxMDcgKzY3NTQsMTA4IEBACiAiQuG6oW4gY2jGsGEga+G6v3QgdGjDumMgdmnhu4djIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIHbhuqtuIHThu5NuIHThuqFpKS5cbiIKICJIw6N5IGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY8OhYyB0aGF5IMSR4buVaSB0csaw4bubYyBraGkgYuG6oW4gY8OzIHRo4buDIGjDsmEgdHLhu5luLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNTEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTY2CiBtc2dpZCAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuIgogbXNnc3RyICJC4bqhbiBjaMawYSBr4bq/dCB0aMO6YyB2aeG7h2MgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgduG6q24gdOG7k24gdOG6oWkpLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTc1CiBtc2dpZCAiWW91IGNhbm5vdCBjb21iaW5lIC0tc3F1YXNoIHdpdGggLS1uby1mZi4iCiBtc2dzdHIgIkLhuqFuIGtow7RuZyB0aOG7gyBr4bq/dCBo4bujcCAtLXNxdWFzaCB24bubaSAtLW5vLWZmLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjUKLW1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCi1tc2dzdHIgIkLhuqFuIGtow7RuZyB0aOG7gyBr4bq/dCBo4bujcCAtLW5vLWZmIHbhu5tpIC0tZmYtb25seS4iCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTcyCisjOiBidWlsdGluL21lcmdlLmM6MTE4NAogbXNnaWQgIk5vIGNvbW1pdCBzcGVjaWZpZWQgYW5kIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIG5vdCBzZXQuIgogbXNnc3RyICIiCiAiS2jDtG5nIGNo4buJIHJhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgdsOgIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIGNoxrBhIMSRxrDhu6NjICIKICLEkeG6t3QuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNAorIzogYnVpbHRpbi9tZXJnZS5jOjEyMTYKIG1zZ2lkICJDYW4gbWVyZ2Ugb25seSBleGFjdGx5IG9uZSBjb21taXQgaW50byBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAiS2jDtG5nIHRo4buDIGjDsmEgdHLhu5luIG3hu5l0IGPDoWNoIMSRw7puZyDEkeG6r24gbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSB2w6BvIG3hu5l0ICIKICJoZWFkIHLhu5duZyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE5CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCBpbnRvIGVtcHR5IGhlYWQgbm90IHN1cHBvcnRlZCB5ZXQiCiBtc2dzdHIgIlNxdWFzaCBjb21taXQgdsOgbyBt4buZdCBoZWFkIHRy4buRbmcgcuG7l25nIHbhuqtuIGNoxrBhIMSRxrDhu6NjIGjhu5cgdHLhu6MiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjA5CisjOiBidWlsdGluL21lcmdlLmM6MTIyMQogbXNnaWQgIk5vbi1mYXN0LWZvcndhcmQgY29tbWl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgaW50byBhbiBlbXB0eSBoZWFkIgogbXNnc3RyICIiCiAiQ2h1eeG7g24gZ2lhbyAoY29tbWl0KSBraMO0bmctZmFzdC1mb3J3YXJkIGtow7RuZyBo4bujcCBsw70g4bufIHRyb25nIG3hu5l0IGhlYWQgdHLhu5FuZyAiCiAicuG7l25nIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2NQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKK21zZ3N0ciAiJXMgLSBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBz4buRIHRo4bupIGNow7puZyB0w7RpIGPDsyB0aOG7gyBow7JhIHRy4buZbiIKKworIzogYnVpbHRpbi9tZXJnZS5jOjEyNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhbiB1bnRydXN0ZWQgR1BHIHNpZ25hdHVyZSwgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAiIgogIkzhuqduIGNodXnhu4NuIGdpYW8gJXMgY8OzIG3hu5l0IGNo4buvIGvDvSBHUEcga2jDtG5nIMSRw6FuZyB0aW4sIMSRxrDhu6NjIGNobyBsw6AgYuG7n2kgJXMuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2OAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGJhZCBHUEcgc2lnbmF0dXJlIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIkzhuqduIGNodXnhu4NuIGdpYW8gJXMgY8OzIG3hu5l0IGNo4buvIGvDvSBHUEcgc2FpLCDEkcaw4bujYyBjaG8gbMOgIGLhu59pICVzLiIKIAogIy4gJ04nCi0jOiBidWlsdGluL21lcmdlLmM6MTI3MQorIzogYnVpbHRpbi9tZXJnZS5jOjEyODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgYSBHUEcgc2lnbmF0dXJlLiIKIG1zZ3N0ciAiTOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAlcyBraMO0bmcgY8OzIGNo4buvIGvDvSBHUEcuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3NAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGdvb2QgR1BHIHNpZ25hdHVyZSBieSAlc1xuIgogbXNnc3RyICJM4bqnbiBjaHV54buDbiBnaWFvICVzIGPDsyBt4buZdCBjaOG7ryBrw70gR1BHIHThu5F0IGLhu59pICVzXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjOiBidWlsdGluL21lcmdlLmM6MTM3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGluZyAlcy4uJXNcbiIKIG1zZ3N0ciAixJBhbmcgY+G6rXAgbmjhuq10ICVzLi4lc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM5NworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCiBtc2dzdHIgIsSQYW5nIHRo4butIGjDsmEgdHLhu5luIGtp4buDdSDigJx0cml2aWFsIGluLWluZGV44oCdLi4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDA0CisjOiBidWlsdGluL21lcmdlLmM6MTQxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3BlLlxuIgogbXNnc3RyICJLaMO0bmcuXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDM2CisjOiBidWlsdGluL21lcmdlLmM6MTQ0OAogbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKIG1zZ3N0ciAiVGjhu7FjIGhp4buHbiBs4buHbmggZmFzdC1mb3J3YXJkIGzDoCBraMO0bmcgdGjhu4MgxJHGsOG7o2MsIMSRYW5nIGLhu48gcXVhLiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NTkgYnVpbHRpbi9tZXJnZS5jOjE1MzgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDcxIGJ1aWx0aW4vbWVyZ2UuYzoxNTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJld2luZGluZyB0aGUgdHJlZSB0byBwcmlzdGluZS4uLlxuIgogbXNnc3RyICLEkGFuZyB0dWEgbOG6oWkgY8OieSB0aMOgbmggdGjhu51pIHhhIHjGsGEuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE0NjMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRyeWluZyBtZXJnZSBzdHJhdGVneSAlcy4uLlxuIgogbXNnc3RyICLEkGFuZyB0aOG7rSBjaGnhur9uIGzGsOG7o2MgaMOyYSB0cuG7mW4gJXMuLi5cbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1MjkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG1lcmdlIHN0cmF0ZWd5IGhhbmRsZWQgdGhlIG1lcmdlLlxuIgogbXNnc3RyICJLaMO0bmcgY8OzIGNoaeG6v24gbMaw4bujYyBow7JhIHRy4buZbiBuw6BvIMSRxrDhu6NjIG7huq9tIGdp4buvIChoYW5kbGUpIHPhu7EgaMOyYSB0cuG7mW4uXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTMxCisjOiBidWlsdGluL21lcmdlLmM6MTU0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJNZXJnZSB3aXRoIHN0cmF0ZWd5ICVzIGZhaWxlZC5cbiIKIG1zZ3N0ciAiSMOyYSB0cuG7mW4gduG7m2kgY2hp4bq/biBsxrDhu6NjICVzIGfhurdwIGzhu5dpLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU0MAorIzogYnVpbHRpbi9tZXJnZS5jOjE1NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNpbmcgdGhlICVzIHRvIHByZXBhcmUgcmVzb2x2aW5nIGJ5IGhhbmQuXG4iCiBtc2dzdHIgIlPhu60gZOG7pW5nICVzIMSR4buDIGNodeG6qW4gYuG7iyBnaeG6o2kgcXV54bq/dCBi4bqxbmcgdGF5LlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTU1MgorIzogYnVpbHRpbi9tZXJnZS5jOjE1NjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXV0b21hdGljIG1lcmdlIHdlbnQgd2VsbDsgc3RvcHBlZCBiZWZvcmUgY29tbWl0dGluZyBhcyByZXF1ZXN0ZWRcbiIKIG1zZ3N0ciAiIgpAQCAtNjU5MSw0OCArNzAyNCw1MiBAQAogbXNnaWQgInJlbmFtaW5nICclcycgZmFpbGVkIgogbXNnc3RyICLEkeG7lWkgdMOqbiAlcyBn4bq3cCBs4buXaSIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjE3NQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjI1OQogbXNnaWQgImdpdCBuYW1lLXJldiBbb3B0aW9uc10gPGNvbW1pdD4uLi4iCiBtc2dzdHIgImdpdCBuYW1lLXJldiBbY8OhYy10w7l5LWNo4buNbl0gPGNvbW1pdD4uLi4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoxNzYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyNjAKIG1zZ2lkICJnaXQgbmFtZS1yZXYgW29wdGlvbnNdIC0tYWxsIgogbXNnc3RyICJnaXQgbmFtZS1yZXYgW2PDoWMtdMO5eS1jaOG7jW5dIC0tYWxsIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc3CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYxCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLXN0ZGluIgogbXNnc3RyICJnaXQgbmFtZS1yZXYgW2PDoWMtdMO5eS1jaOG7jW5dIC0tc3RkaW4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMjkKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTMKIG1zZ2lkICJwcmludCBvbmx5IG5hbWVzIChubyBTSEEtMSkiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0w6puIChraMO0bmcgU0hBLTEpIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMwCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE0CiBtc2dpZCAib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIgogbXNnc3RyICJjaOG7iSBkw7luZyBjw6FjIHRo4bq7IMSR4buDIMSR4bq3dCB0w6puIGNobyBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzIKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTYKIG1zZ2lkICJvbmx5IHVzZSByZWZzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKIG1zZ3N0ciAiY2jhu4kgc+G7rSBk4bulbmcgY8OhYyB0aGFtIGNoaeG6v3UgKHJlZnMpIGto4bubcCB24bubaSA8beG6q3U+IgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM0CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE4CiBtc2dpZCAibGlzdCBhbGwgY29tbWl0cyByZWFjaGFibGUgZnJvbSBhbGwgcmVmcyIKIG1zZ3N0ciAiIgogImxp4buHdCBrw6ogdOG6pXQgY+G6oyBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gY8OzIHRo4buDIMSR4buNYyDEkcaw4bujYyB04burIHThuqV0IGPhuqMgY8OhYyB0aGFtIGNoaeG6v3UiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzUKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTkKIG1zZ2lkICJyZWFkIGZyb20gc3RkaW4iCiBtc2dzdHIgIsSR4buNYyB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4iCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzYKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMjAKIG1zZ2lkICJhbGxvdyB0byBwcmludCBgdW5kZWZpbmVkYCBuYW1lcyIKIG1zZ3N0ciAiY2hvIHBow6lwIGhp4buDbiB0aOG7iyBjw6FjIHTDqm4g4oCcY2jGsGEgxJHhu4tuaCBuZ2jEqWHigJwiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyNgorbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW4gdGhlIGlucHV0IChpbnRlcm5hbCB1c2UpIgorbXNnc3RyICJiw6NpIGLhu48gdGhhbSBjaGnhur91IGPDoWMgdGjhursgdHJvbmcgxJHhuqd1IHbDoG8gKGTDuW5nIG7hu5lpIGLhu5kpIgorCisjOiBidWlsdGluL25vdGVzLmM6MjQKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBbbGlzdCBbPG9iamVjdD5dXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gW2xpc3QgWzzEkeG7kWktdMaw4bujbmc+XV0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNworIzogYnVpbHRpbi9ub3Rlcy5jOjI1CiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGFkZCBbLWZdIFstbSA8bXNnPiB8IC1GIDxmaWxlPiB8ICgtYyB8IC1DKSAiCiAiPG9iamVjdD5dIFs8b2JqZWN0Pl0iCkBAIC02NjQwLDExICs3MDc3LDExIEBACiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYWRkIFstZl0gWy1tIDxs4budaS1uaOG6r24+IHwgLUYgPHThuq1wLXRpbj4gfCAoLWMgfCAiCiAiLUMpIDzEkeG7kWktdMaw4bujbmc+XSBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNgogbXNnaWQgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGNvcHkgWy1mXSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBjb3B5IFstZl0gPHThu6stxJHhu5FpLXTGsOG7o25nPiA8xJHhur9uLcSR4buRaS10xrDhu6NuZz4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOQorIzogYnVpbHRpbi9ub3Rlcy5jOjI3CiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGFwcGVuZCBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgpAQCAtNjY1MiwyMjMgKzcwODksMjAwIEBACiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gYXBwZW5kIFstbSA8bOG7nWktbmjhuq9uPiB8IC1GIDx04bqtcC10aW4+IHwgKC1jIHwgLSIKICJDKSA8xJHhu5FpLXTGsOG7o25nPl0gWzzEkeG7kWktdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMwCisjOiBidWlsdGluL25vdGVzLmM6MjgKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIGVkaXQgWzzEkeG7kWktdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMxCisjOiBidWlsdGluL25vdGVzLmM6MjkKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBzaG93IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIHNob3cgWzzEkeG7kWktdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjMyCisjOiBidWlsdGluL25vdGVzLmM6MzAKIG1zZ2lkICIiCiAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gbWVyZ2UgWy12IHwgLXFdIFstcyA8c3RyYXRlZ3k+IF0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDxjaGnhur9uLWzGsOG7o2M+IF0gPG5vdGVzX3JlZj4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcmVtb3ZlIFs8xJHhu5FpLXTGsOG7o25nPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNgorIzogYnVpbHRpbi9ub3Rlcy5jOjM0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBwcnVuZSBbLW4gfCAtdl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNworIzogYnVpbHRpbi9ub3Rlcy5jOjM1CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZ2V0LXJlZiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbbGlzdCBbPMSR4buRaSB0xrDhu6NuZz5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhZGQgWzxjw6FjLXTDuXktY2jhu41uPl0gWzzEkeG7kWktdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUyCisjOiBidWlsdGluL25vdGVzLmM6NTAKIG1zZ2lkICJnaXQgbm90ZXMgY29weSBbPG9wdGlvbnM+XSA8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+IgogbXNnc3RyICJnaXQgbm90ZXMgY29weSBbPGPDoWMtdMO5eS1jaOG7jW4+XSA8dOG7qy3EkeG7kWktdMaw4bujbmc+IDzEkeG6v24txJHhu5FpLXTGsOG7o25nPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzCisjOiBidWlsdGluL25vdGVzLmM6NTEKIG1zZ2lkICJnaXQgbm90ZXMgY29weSAtLXN0ZGluIFs8ZnJvbS1vYmplY3Q+IDx0by1vYmplY3Q+XS4uLiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGNvcHkgLS1zdGRpbiBbPHThu6stxJHhu5FpLXTGsOG7o25nPiA8xJHhur9uLcSR4buRaS10xrDhu6NuZz5dLi4uIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NgogbXNnaWQgImdpdCBub3RlcyBhcHBlbmQgWzxvcHRpb25zPl0gWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGFwcGVuZCBbPGPDoWMtdMO5eS1jaOG7jW4+XSBbPMSR4buRaS10xrDhu6NuZz5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBlZGl0IFs8xJHhu5FpIHTGsOG7o25nPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjY2CiBtc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHNob3cgWzzEkeG7kWkgdMaw4bujbmc+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjczCisjOiBidWlsdGluL25vdGVzLmM6NzEKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSBbPGPDoWMtdMO5eS1jaOG7jW4+XSA8bm90ZXNfcmVmPiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc0CisjOiBidWlsdGluL25vdGVzLmM6NzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1jb21taXQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPGPDoWMtdMO5eS1jaOG7jW4+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjc1CisjOiBidWlsdGluL25vdGVzLmM6NzMKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxjw6FjLXTDuXktY2jhu41uPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorIzogYnVpbHRpbi9ub3Rlcy5jOjc4CiBtc2dpZCAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgcmVtb3ZlIFs8xJHhu5FpIHTGsOG7o25nPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjgzCiBtc2dpZCAiZ2l0IG5vdGVzIHBydW5lIFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgcHJ1bmUgWzxjw6FjLXTDuXktY2jhu41uPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg4CiBtc2dpZCAiZ2l0IG5vdGVzIGdldC1yZWYiCiBtc2dzdHIgImdpdCBub3RlcyBnZXQtcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTM5CisjOiBidWlsdGluL25vdGVzLmM6MTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBzdGFydCAnc2hvdycgZm9yIG9iamVjdCAnJXMnIgogbXNnc3RyICJraMO0bmcgdGjhu4Mga2jhu59pIGNo4bqheSDigJxzaG934oCdIGNobyDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnc2hvdycgb3V0cHV0IgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jIGvhur90IHh14bqldCDigJxzaG934oCdIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTUxCisjOiBidWlsdGluL25vdGVzLmM6MTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5pc2ggJ3Nob3cnIGZvciBvYmplY3QgJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIGhvw6BuIHRow6BuaCDigJxzaG934oCdIGNobyDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNjkgYnVpbHRpbi90YWcuYzozNDEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNjcgYnVpbHRpbi90YWcuYzozNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBmaWxlICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyB04bqhbyB04bqtcCB0aW4g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxODgKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxODYKIG1zZ2lkICJQbGVhc2Ugc3VwcGx5IHRoZSBub3RlIGNvbnRlbnRzIHVzaW5nIGVpdGhlciAtbSBvciAtRiBvcHRpb24iCiBtc2dzdHIgIiIKICJYaW4gaMOjeSDDoXAgZOG7pW5nIG7hu5lpIGR1bmcgY+G7p2EgZ2hpIGNow7ogc+G7rSBk4bulbmcgaG/hurdjIGzDoCB0w7l5IGNo4buNbiAtbSBob+G6t2MgbMOgIC1GIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjA5IGJ1aWx0aW4vbm90ZXMuYzo5NzIKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMDcgYnVpbHRpbi9ub3Rlcy5jOjg0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW1vdmluZyBub3RlIGZvciBvYmplY3QgJXNcbiIKIG1zZ3N0ciAixJBhbmcgZ+G7oSBi4buPIGdoaSBjaMO6IChub3RlKSBjaG8gxJHhu5FpIHTGsOG7o25nICVzXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyMTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyMTIKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgbm90ZSBvYmplY3QiCiBtc2dzdHIgImtow7RuZyB0aOG7gyBnaGkgxJHhu5FpIHTGsOG7o25nIGdoaSBjaMO6IChub3RlKSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgbm90ZSBjb250ZW50cyBoYXMgYmVlbiBsZWZ0IGluICVzIgogbXNnc3RyICJO4buZaSBkdW5nIGdoaSBjaMO6IGPDsm4gbOG6oWkgJXMiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIMSR4buNYyDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI1MiBidWlsdGluL3RhZy5jOjU0MworIzogYnVpbHRpbi9ub3Rlcy5jOjI1MCBidWlsdGluL3RhZy5jOjU0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiBvciByZWFkICclcyciCiBtc2dzdHIgImtow7RuZyB0aOG7gyBt4bufIGhheSDEkeG7jWMg4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNzEgYnVpbHRpbi9ub3Rlcy5jOjQ0NCBidWlsdGluL25vdGVzLmM6NDQ2Ci0jOiBidWlsdGluL25vdGVzLmM6NTA2IGJ1aWx0aW4vbm90ZXMuYzo1NjAgYnVpbHRpbi9ub3Rlcy5jOjY0MwotIzogYnVpbHRpbi9ub3Rlcy5jOjY0OCBidWlsdGluL25vdGVzLmM6NzIzIGJ1aWx0aW4vbm90ZXMuYzo3NjUKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NjcgYnVpbHRpbi90YWcuYzo1NTYKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNjkgYnVpbHRpbi9ub3Rlcy5jOjMxNiBidWlsdGluL25vdGVzLmM6MzE4CisjOiBidWlsdGluL25vdGVzLmM6Mzc4IGJ1aWx0aW4vbm90ZXMuYzo0MzIgYnVpbHRpbi9ub3Rlcy5jOjUxNQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyMCBidWlsdGluL25vdGVzLmM6NTk1IGJ1aWx0aW4vbm90ZXMuYzo2MzcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4MzkgYnVpbHRpbi90YWcuYzo1NTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHJlZi4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kg4oCcJXPigJ0gbmjGsCBsw6AgbeG7mXQgdGhhbSBjaGnhur91IChyZWYpIGjhu6NwIGzhu4cuIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjc0CisjOiBidWlsdGluL25vdGVzLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSR4buNYyDEkeG7kWkgdMaw4bujbmcg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjk4Ci1tc2dpZCAiQ2Fubm90IGNvbW1pdCB1bmluaXRpYWxpemVkL3VucmVmZXJlbmNlZCBub3RlcyB0cmVlIgotbXNnc3RyICIiCi0iS2jDtG5nIHRo4buDIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgY2jGsGEgxJHGsOG7o2Mga2jhu59pIHThuqFvIGhv4bq3YyBraMO0bmcgxJHGsOG7o2MgdGhhbSBjaGnhur91ICIKLSJjw6J5IGdoaSBjaMO6IgotCi0jOiBidWlsdGluL25vdGVzLmM6MzM5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkJhZCBub3Rlcy5yZXdyaXRlTW9kZSB2YWx1ZTogJyVzJyIKLW1zZ3N0ciAiR2nDoSB0cuG7iyBub3Rlcy5yZXdyaXRlTW9kZSBzYWk6IOKAnCVz4oCdIgotCi0jOiBidWlsdGluL25vdGVzLmM6MzQ5Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgotbXNnc3RyICJU4burIGNo4buRaSBnaGkgxJHDqCBnaGkgY2jDuiB0cm9uZyAlcyAobuG6sW0gbmdvw6BpIGPhu6dhIHJlZnMvbm90ZXMvKSIKLQotIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKLSMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQotIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCi1tc2dzdHIgIkdpw6EgdHLhu4sgJXMgc2FpOiDigJwlc+KAnSIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjQ0MAorIzogYnVpbHRpbi9ub3Rlcy5jOjMxMgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgaW5wdXQgbGluZTogJyVzJy4iCiBtc2dzdHIgIkTDsm5nIG5o4bqtcCB2w6BvIGThu4sgaMOsbmg6IOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY29weSBub3RlcyBmcm9tICclcycgdG8gJyVzJyIKIG1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIHNhbyBjaMOpcCBnaGkgY2jDuiAobm90ZSkgdOG7qyDigJwlc+KAnSB04bubaSDigJwlc+KAnSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NTUzIGJ1aWx0aW4vbm90ZXMuYzo2MjYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MzggYnVpbHRpbi9ub3Rlcy5jOjcxMSBidWlsdGluL25vdGVzLmM6NzU4Ci0jOiBidWlsdGluL25vdGVzLmM6MTAzMgorIzogYnVpbHRpbi9ub3Rlcy5jOjM3MSBidWlsdGluL25vdGVzLmM6NDI1IGJ1aWx0aW4vbm90ZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MTAgYnVpbHRpbi9ub3Rlcy5jOjU4MyBidWlsdGluL25vdGVzLmM6NjMwCisjOiBidWlsdGluL25vdGVzLmM6OTA0CiBtc2dpZCAidG9vIG1hbnkgcGFyYW1ldGVycyIKIG1zZ3N0ciAicXXDoSBuaGnhu4F1IMSR4buRaSBz4buRIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTEyIGJ1aWx0aW4vbm90ZXMuYzo3NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzozODQgYnVpbHRpbi9ub3Rlcy5jOjY0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBub3RlIGZvdW5kIGZvciBvYmplY3QgJXMuIgogbXNnc3RyICJraMO0bmcgdMOsbSB0aOG6pXkgZ2hpIGNow7ogY2hvIMSR4buRaSB0xrDhu6NuZyAlcy4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAibuG7mWkgZHVuZyBnaGkgY2jDuiAobm90ZSkgbuG6sW0gdHJvbmcgbeG7mXQgY2h14buXaSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjUzNyBidWlsdGluL25vdGVzLmM6Njk0CisjOiBidWlsdGluL25vdGVzLmM6NDA5IGJ1aWx0aW4vbm90ZXMuYzo1NjYKIG1zZ2lkICJub3RlIGNvbnRlbnRzIGluIGEgZmlsZSIKIG1zZ3N0ciAibuG7mWkgZHVuZyBnaGkgY2jDuiAobm90ZSkgbuG6sW0gdHJvbmcgbeG7mXQgdOG6rXAgdGluIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM5IGJ1aWx0aW4vbm90ZXMuYzo1NDIgYnVpbHRpbi9ub3Rlcy5jOjY5NgotIzogYnVpbHRpbi9ub3Rlcy5jOjY5OSBidWlsdGluL3RhZy5jOjQ3NAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxMSBidWlsdGluL25vdGVzLmM6NDE0IGJ1aWx0aW4vbm90ZXMuYzo1NjgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1NzEgYnVpbHRpbi90YWcuYzo0NzQKIG1zZ2lkICJvYmplY3QiCiBtc2dzdHIgIsSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU0MCBidWlsdGluL25vdGVzLmM6Njk3CisjOiBidWlsdGluL25vdGVzLmM6NDEyIGJ1aWx0aW4vbm90ZXMuYzo1NjkKIG1zZ2lkICJyZXVzZSBhbmQgZWRpdCBzcGVjaWZpZWQgbm90ZSBvYmplY3QiCiBtc2dzdHIgImTDuW5nIGzhuqFpIG5oxrBuZyBjw7Mgc+G7rWEgY2jhu69hIMSR4buRaSB0xrDhu6NuZyBub3RlIMSRw6MgY2jhu4kgcmEiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDMgYnVpbHRpbi9ub3Rlcy5jOjcwMAorIzogYnVpbHRpbi9ub3Rlcy5jOjQxNSBidWlsdGluL25vdGVzLmM6NTcyCiBtc2dpZCAicmV1c2Ugc3BlY2lmaWVkIG5vdGUgb2JqZWN0IgogbXNnc3RyICJkw7luZyBs4bqhaSDEkeG7kWkgdMaw4bujbmcgZ2hpIGNow7ogKG5vdGUpIMSRw6MgY2jhu4kgcmEiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1NDUgYnVpbHRpbi9ub3Rlcy5jOjYxMworIzogYnVpbHRpbi9ub3Rlcy5jOjQxNyBidWlsdGluL25vdGVzLmM6NDg1CiBtc2dpZCAicmVwbGFjZSBleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAidGhheSB0aOG6vyBnaGkgY2jDuiB0csaw4bubYyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU3OQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGFkZCBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKQEAgLTY4NzcsMjQgKzcyOTEsMjQgQEAKICJLaMO0bmcgdGjhu4MgdGjDqm0gY8OhYyBnaGkgY2jDui4gxJDDoyB0w6xtIHRo4bqleSBjw6FjIGdoaSBjaMO6IMSRw6MgY8OzIHPhurVuIGNobyDEkeG7kWkgdMaw4bujbmcgIgogIiVzLiBT4butIGThu6VuZyB0w7l5IGNo4buNbiDigJwtZuKAnSDEkeG7gyBnaGkgxJHDqCBsw6puIGPDoWMgZ2hpIGNow7ogY8WpIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTg0IGJ1aWx0aW4vbm90ZXMuYzo2NjEKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0NTYgYnVpbHRpbi9ub3Rlcy5jOjUzMwogIywgYy1mb3JtYXQKIG1zZ2lkICJPdmVyd3JpdGluZyBleGlzdGluZyBub3RlcyBmb3Igb2JqZWN0ICVzXG4iCiBtc2dzdHIgIsSQYW5nIGdoaSDEkcOoIGzDqm4gZ2hpIGNow7ogY8WpIGNobyDEkeG7kWkgdMaw4bujbmcgJXNcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjQ4NgogbXNnaWQgInJlYWQgb2JqZWN0cyBmcm9tIHN0ZGluIgogbXNnc3RyICLEkeG7jWMgY8OhYyDEkeG7kWkgdMaw4bujbmcgdOG7qyDEkeG6p3UgdsOgbyB0acOqdSBjaHXhuqluIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE2CisjOiBidWlsdGluL25vdGVzLmM6NDg4CiBtc2dpZCAibG9hZCByZXdyaXRpbmcgY29uZmlnIGZvciA8Y29tbWFuZD4gKGltcGxpZXMgLS1zdGRpbikiCiBtc2dzdHIgInThuqNpIGPhuqV1IGjDrG5oIGNow6lwIGzhuqFpIGNobyA8bOG7h25oPiAobmfhuqdtIMSR4buLbmggbMOgIC0tc3RkaW4pIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjM0CisjOiBidWlsdGluL25vdGVzLmM6NTA2CiBtc2dpZCAidG9vIGZldyBwYXJhbWV0ZXJzIgogbXNnc3RyICJxdcOhIMOtdCDEkeG7kWkgc+G7kSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGNvcHkgbm90ZXMuIEZvdW5kIGV4aXN0aW5nIG5vdGVzIGZvciBvYmplY3QgJXMuIFVzZSAnLWYnIHRvIG92ZXJ3cml0ZSAiCkBAIC02OTAzLDEyICs3MzE3LDEyIEBACiAiS2jDtG5nIHRo4buDIHNhbyBjaMOpcCBjw6FjIGdoaSBjaMO6LiDEkMOjIHTDrG0gdGjhuqV5IGPDoWMgZ2hpIGNow7ogxJHDoyBjw7Mgc+G6tW4gY2hvIMSR4buRaSAiCiAidMaw4bujbmcgJXMuIFPhu60gZOG7pW5nIHTDuXkgY2jhu41uIOKAnC1m4oCdIMSR4buDIGdoaSDEkcOoIGzDqm4gY8OhYyBnaGkgY2jDuiBjxakiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBub3RlcyBvbiBzb3VyY2Ugb2JqZWN0ICVzLiBDYW5ub3QgY29weS4iCiBtc2dzdHIgIlRoaeG6v3UgZ2hpIGNow7ogdHLDqm4gxJHhu5FpIHTGsOG7o25nIG5ndeG7kW4gJXMuIEtow7RuZyB0aOG7gyBzYW8gY2jDqXAuIgogCi0jOiBidWlsdGluL25vdGVzLmM6NzE2CisjOiBidWlsdGluL25vdGVzLmM6NTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJUaGUgLW0vLUYvLWMvLUMgb3B0aW9ucyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBmb3IgdGhlICdlZGl0JyBzdWJjb21tYW5kLlxuIgpAQCAtNjkxNywxNSArNzMzMSwxNSBAQAogIkPDoWMgdMO5eSBjaOG7jW4gLW0vLUYvLWMvLUMgxJHDoyBj4buVIGtow7RuZyBjw7JuIGTDuW5nIG7hu69hIGNobyBs4buHbmggY29uIOKAnGVkaXTigJ0uXG4iCiAiWGluIGjDo3kgc+G7rSBk4bulbmcgbOG7h25oIHNhdSDEkeG7gyB0aGF5IHRo4bq/OiDigJxnaXQgbm90ZXMgYWRkIC1mIC1tLy1GLy1jLy1D4oCdLlxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODYzCisjOiBidWlsdGluL25vdGVzLmM6NzM1CiBtc2dpZCAiR2VuZXJhbCBvcHRpb25zIgogbXNnc3RyICJUw7l5IGNo4buNbiBjaHVuZyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczNwogbXNnaWQgIk1lcmdlIG9wdGlvbnMiCiBtc2dzdHIgIlTDuXkgY2jhu41uIHbhu4EgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzkKIG1zZ2lkICIiCiAicmVzb2x2ZSBub3RlcyBjb25mbGljdHMgdXNpbmcgdGhlIGdpdmVuIHN0cmF0ZWd5IChtYW51YWwvb3Vycy90aGVpcnMvdW5pb24vIgogImNhdF9zb3J0X3VuaXEpIgpAQCAtNjkzMyw0NiArNzM0Nyw0NiBAQAogInBow6JuIGdp4bqjaSBjw6FjIHh1bmcgxJHhu5l0IOKAnG5vdGVz4oCdIHPhu60gZOG7pW5nIGNoaeG6v24gbMaw4bujYyDEkcOjIMSRxrBhIHJhIChtYW51YWwvb3Vycy8iCiAidGhlaXJzL3VuaW9uL2NhdF9zb3J0X3VuaXEpIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY5CisjOiBidWlsdGluL25vdGVzLmM6NzQxCiBtc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAiQ2h1eeG7g24gZ2lhbyBjw6FjIG5vdGUgY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzEKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDMKIG1zZ2lkICJmaW5hbGl6ZSBub3RlcyBtZXJnZSBieSBjb21taXR0aW5nIHVubWVyZ2VkIG5vdGVzIgogbXNnc3RyICIiCiAiY8OhYyBub3RlIGN14buRaSBjw7luZyDEkcaw4bujYyBow7JhIHRy4buZbiBi4bufaSBjw6FjIG5vdGUgY2jGsGEgaMOyYSB0cuG7mW4gY+G7p2EgbOG6p24gY2h1eeG7g24gIgogImdpYW8iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDUKIG1zZ2lkICJBYm9ydGluZyBub3RlcyBtZXJnZSByZXNvbHV0aW9uIgogbXNnc3RyICJI4buneSBi4buPIHBow6JuIGdp4bqjaSBnaGkgY2jDuiAobm90ZSkgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NzUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3NDcKIG1zZ2lkICJhYm9ydCBub3RlcyBtZXJnZSIKIG1zZ3N0ciAiYuG7jyBxdWEgaMOyYSB0cuG7mW4gY8OhYyBnaGkgY2jDuiAobm90ZSkiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5NzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiT2JqZWN0ICVzIGhhcyBubyBub3RlXG4iCiBtc2dzdHIgIsSQ4buRaSB0xrDhu6NuZyAlcyBraMO0bmcgY8OzIGdoaSBjaMO6IChub3RlKVxuIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICJj4buRIGfhuq9uZyBn4buhIGLhu48gbeG7mXQgbm90ZSBjaMawYSB04burbmcgdOG7k24gdOG6oWkga2jDtG5nIHBo4bqjaSBsw6AgbeG7mXQgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NTcKIG1zZ2lkICJyZWFkIG9iamVjdCBuYW1lcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAixJHhu41jIHTDqm4gxJHhu5FpIHTGsOG7o25nIHThu6sgdGhp4bq/dCBi4buLIG5o4bqtcCBjaHXhuqluIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NgorIzogYnVpbHRpbi9ub3Rlcy5jOjkzOAogbXNnaWQgIm5vdGVzX3JlZiIKIG1zZ3N0ciAibm90ZXNfcmVmIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NworIzogYnVpbHRpbi9ub3Rlcy5jOjkzOQogbXNnaWQgInVzZSBub3RlcyBmcm9tIDxub3Rlc19yZWY+IgogbXNnc3RyICJkw7luZyDigJxub3Rlc+KAnSB04burIDxub3Rlc19yZWY+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzQgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gc3ViY29tbWFuZDogJXMiCiBtc2dzdHIgIktow7RuZyBoaeG7g3UgY8OidSBs4buHbmggY29uOiAlcyIKQEAgLTcyMTMsNyArNzYyNyw3IEBACiAiICAgIGdpdCBwdXNoICVzICVzXG4iCiAiJXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEyMQorIzogYnVpbHRpbi9wdXNoLmM6MTE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3UgYXJlIG5vdCBjdXJyZW50bHkgb24gYSBicmFuY2guXG4iCkBAIC03MjI4LDcgKzc2NDIsNyBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAlcyBIRUFEOjx0w6puLWPhu6dhLW5ow6FuaC1tw6F5LWNo4bunPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMjgKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGN1cnJlbnQgYnJhbmNoICVzIGhhcyBubyB1cHN0cmVhbSBicmFuY2guXG4iCkBAIC03MjQyLDEyICs3NjU2LDEyIEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIC0tc2V0LXVwc3RyZWFtICVzICVzXG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjEzNgorIzogYnVpbHRpbi9wdXNoLmM6MTM5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbXVsdGlwbGUgdXBzdHJlYW0gYnJhbmNoZXMsIHJlZnVzaW5nIHRvIHB1c2guIgogbXNnc3RyICJOaMOhbmggaGnhu4duIHThuqFpICVzIGPDsyDEkWEgbmjDoW5oIHRoxrDhu6NuZyBuZ3Xhu5NuICh1cHN0cmVhbSksIHThu6sgY2jhu5FpIHB1c2guIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjE0MgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiWW91IGFyZSBwdXNoaW5nIHRvIHJlbW90ZSAnJXMnLCB3aGljaCBpcyBub3QgdGhlIHVwc3RyZWFtIG9mXG4iCkBAIC03MjU5LDcgKzc2NzMsNyBAQAogIm5ow6FuaCBoaeG7h24gdOG6oWkg4oCcJXPigJ0gY+G7p2EgYuG6oW4sIG3DoCBraMO0bmcgYsOhbyBjaG8gdMO0aSBiaeG6v3QgbMOgIGPDoWkgZ8OsIMSRxrDhu6NjIHB1c2hcbiIKICLEkeG7gyBj4bqtcCBuaOG6rXQgbmjDoW5oIG3DoXkgY2jhu6cgbsOgby4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjE1MQorIzogYnVpbHRpbi9wdXNoLmM6MTY1CiBtc2dpZCAiIgogInB1c2guZGVmYXVsdCBpcyB1bnNldDsgaXRzIGltcGxpY2l0IHZhbHVlIGlzIGNoYW5naW5nIGluXG4iCiAiR2l0IDIuMCBmcm9tICdtYXRjaGluZycgdG8gJ3NpbXBsZScuIFRvIHNxdWVsY2ggdGhpcyBtZXNzYWdlXG4iCkBAIC03MjkyLDI4ICs3NzA2LDI4IEBACiAidOG7sVxuIgogIuKAnGN1cnJlbnTigJ0gdGhheSB2w6wg4oCcc2ltcGxl4oCdIG7hur91IGLhuqFuIHRo4buJbmggdGhv4bqjbmcgcGjhuqNpIHPhu60gZOG7pW5nIGLhuqNuIEdpdCBjxakpIgogCi0jOiBidWlsdGluL3B1c2guYzoxOTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNQogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICIiCiAiQuG6oW4gxJHDoyBraMO0bmcgY2jhu4kgcmEgbeG7mXQgcmVmc3BlY3MgbsOgbyDEkeG7gyBwdXNoLCB2w6AgcHVzaC5kZWZhdWx0IGzDoCBcImtow7RuZyBsw6AgIgogImfDrCBj4bqjXCIuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMDYKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzMgogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGlwIG9mIHlvdXIgY3VycmVudCBicmFuY2ggaXMgYmVoaW5kXG4iCi0iaXRzIHJlbW90ZSBjb3VudGVycGFydC4gTWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuICdnaXQgcHVsbCcpXG4iCi0iYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisiaXRzIHJlbW90ZSBjb3VudGVycGFydC4gSW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLlxuIgorIidnaXQgcHVsbCAuLi4nKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKICJTZWUgdGhlICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIGluICdnaXQgcHVzaCAtLWhlbHAnIGZvciBkZXRhaWxzLiIKIG1zZ3N0ciAiIgogIlZp4buHYyBj4bqtcCBuaOG6rXQgYuG7iyB04burIGNo4buRaSBi4bufaSB2w6wgxJHhuqd1IG3DunQgY+G7p2EgbmjDoW5oIMSRxrDhu6NjIHB1c2ggbuG6sW0gxJHhurFuZyBzYXUgYuG7mVxuIgogInBo4bqtbiB0xrDGoW5nIOG7qW5nIGPhu6dhIG3DoXkgY2jhu6cuIEjDsmEgdHLhu5luIHbhu5tpIGPDoWMgdGhheSDEkeG7lWkgdOG7qyBtw6F5IGNo4bunICh2LmQuIOKAnGdpdCAiCi0icHVsbOKAnSlcbiIKKyJwdWxsLi4u4oCdKVxuIgogInRyxrDhu5tjIGtoaSBs4bqhaSBwdXNoIGzhuqduIG7hu69hLlxuIgotIlhlbSB0cm9uZyBwaOG6p24g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgIgotInRow7RuZyB0aW4gY2hpIHRp4bq/dC4iCisiWGVtIOKAnE5vdGUgYWJvdXQgZmFzdC1mb3J3YXJkc+KAnSB04burIGzhu4duaCDigJxnaXQgcHVzaCAtLWhlbHDigJ0gxJHhu4MgY8OzIHRow7RuZyB0aW4gY2hpICIKKyJ0aeG6v3QuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjIzOAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSBhIHB1c2hlZCBicmFuY2ggdGlwIGlzIGJlaGluZCBpdHMgcmVtb3RlXG4iCiAiY291bnRlcnBhcnQuIElmIHlvdSBkaWQgbm90IGludGVuZCB0byBwdXNoIHRoYXQgYnJhbmNoLCB5b3UgbWF5IHdhbnQgdG9cbiIKQEAgLTczMjgsNDEgKzc3NDIsNDAgQEAKICJ0aMOgbmgg4oCcc2ltcGxl4oCdLCDigJxjdXJyZW504oCdIGhv4bq3YyDigJx1cHN0cmVhbeKAnSDEkeG7gyBjaOG7iSBwdXNoIG5ow6FuaCBoaeG7h24gaMOgbmggbcOgICIKICJ0aMO0aS4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxOAorIzogYnVpbHRpbi9wdXNoLmM6MjQ0CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKLSJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKLSIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4gJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAiVmnhu4djIGPhuq1wIG5o4bqtdCBi4buLIHThu6sgY2jhu5FpIGLhu59pIHbDrCDEkeG6p3UgbcO6dCBj4bunYSBuaMOhbmggxJHGsOG7o2MgcHVzaCBu4bqxbSDEkeG6sW5nIHNhdSBi4buZXG4iCiAicGjhuq1uIHTGsMahbmcg4bupbmcgY+G7p2EgbcOheSBjaOG7py4gQ2hlY2tvdSBuaMOhbmggbsOgeSB2w6AgaMOyYSB0cuG7mW4gduG7m2kgY8OhYyB0aGF5IMSR4buVaSAiCiAidOG7qyBtw6F5IGNo4bunXG4iCi0iKHYuZC4g4oCcZ2l0IHB1bGzigJ0pIHRyxrDhu5tjIGtoaSBs4bqhaSBwdXNoIGzhuqduIG7hu69hLlxuIgotIlhlbSB0cm9uZyBwaOG6p24g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgIgotInRow7RuZyB0aW4gY2hpIHRp4bq/dC4iCisiKHYuZC4g4oCcZ2l0IHB1bGwgLi4u4oCdKSB0csaw4bubYyBraGkgbOG6oWkgcHVzaCBs4bqnbiBu4buvYS5cbiIKKyJYZW0g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgdGjDtG5nIHRpbiBjaGkgIgorInRp4bq/dC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIyNAorIzogYnVpbHRpbi9wdXNoLmM6MjUwCiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIHRoZSByZW1vdGUgY29udGFpbnMgd29yayB0aGF0IHlvdSBkb1xuIgogIm5vdCBoYXZlIGxvY2FsbHkuIFRoaXMgaXMgdXN1YWxseSBjYXVzZWQgYnkgYW5vdGhlciByZXBvc2l0b3J5IHB1c2hpbmdcbiIKLSJ0byB0aGUgc2FtZSByZWYuIFlvdSBtYXkgd2FudCB0byBmaXJzdCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy4sXG4iCi0iJ2dpdCBwdWxsJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCisidG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgaW50ZWdyYXRlIHRoZSByZW1vdGUgY2hhbmdlc1xuIgorIihlLmcuLCAnZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICJWaeG7h2MgY+G6rXAgbmjhuq10IGLhu4sgdOG7qyBjaOG7kWkgYuG7n2kgdsOsIG3DoXkgY2jhu6cgY8OzIGNo4bupYSBjw7RuZyB2aeG7h2MgbcOgIGLhuqFuIGtow7RuZ1xuIgotImPDsyDhu58gbcOheSBu4buZaSBi4buZIGPhu6dhIG3DrG5oLiBM4buXaSBuw6B5IHRoxrDhu51uZyBjw7Mgbmd1ecOqbiBuaMOibiBi4bufaSBraG8ga2jDoWMgxJHhuql5IGThu68gIgotImxp4buHdSBsw6puXG4iCi0iY8O5bmcgbeG7mXQgdGhhbSBjaGnhur91LiBC4bqhbiBjw7MgbOG6vSBtdeG7kW4gaMOyYSB0cuG7mW4gduG7m2kgY8OhYyB0aGF5IMSR4buVaSB04burIG3DoXkgY2jhu6dcbiIKLSIodi5kLiDigJxnaXQgcHVsbOKAnSkgdHLGsOG7m2Mga2hpIGzhuqFpIHB1c2ggbOG6p24gbuG7r2EuXG4iCi0iWGVtIHRyb25nIHBo4bqnbiDigJxOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHPigJ0gdOG7qyBs4buHbmgg4oCcZ2l0IHB1c2ggLS1oZWxw4oCdIMSR4buDIGPDsyAiCi0idGjDtG5nIHRpbiBjaGkgdGnhur90LiIKKyJjw7Mg4bufIG3DoXkgbuG7mWkgYuG7mSBj4bunYSBtw6xuaC4gTOG7l2kgbsOgeSB0aMaw4budbmcgY8OzIG5ndXnDqm4gbmjDom4gYuG7n2kga2hvIGtow6FjIMSR4bqpeVxuIgorImThu68gbGnhu4d1IGzDqm4gY8O5bmcgbeG7mXQgdGhhbSBjaGnhur91LiBC4bqhbiBjw7MgbOG6vSBtdeG7kW4gaMOyYSB0cuG7mW4gduG7m2kgY8OhYyB0aGF5IMSR4buVaVxuIgorInThu6sgbcOheSBjaOG7pyh2LmQuIOKAnGdpdCBwdWxsLi4u4oCdKSB0csaw4bubYyBraGkgbOG6oWkgcHVzaCBs4bqnbiBu4buvYS5cbiIKKyJYZW0g4oCcTm90ZSBhYm91dCBmYXN0LWZvcndhcmRz4oCdIHThu6sgbOG7h25oIOKAnGdpdCBwdXNoIC0taGVscOKAnSDEkeG7gyBjw7MgdGjDtG5nIHRpbiBjaGkgIgorInRp4bq/dC4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIzMQorIzogYnVpbHRpbi9wdXNoLmM6MjU3CiBtc2dpZCAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRhZyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgcmVtb3RlLiIKIG1zZ3N0ciAiVmnhu4djIGPhuq1wIG5o4bqtdCBi4buLIHThu6sgY2jhu5FpIGLhu59pIHbDrCB0aOG6uyDEkcOjIHPhurVuIGPDsyB04burIHRyxrDhu5tjIHRyw6puIG3DoXkgY2jhu6cuIgogCi0jOiBidWlsdGluL3B1c2guYzoyMzQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI2MAogbXNnaWQgIiIKICJZb3UgY2Fubm90IHVwZGF0ZSBhIHJlbW90ZSByZWYgdGhhdCBwb2ludHMgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKICJvciB1cGRhdGUgYSByZW1vdGUgcmVmIHRvIG1ha2UgaXQgcG9pbnQgYXQgYSBub24tY29tbWl0IG9iamVjdCxcbiIKQEAgLTczNzQsMjIgKzc3ODcsMjIgQEAKICJ0xrDhu6NuZ1xuIgogImtow7RuZyBwaOG6o2kgY2h1eeG7g24gZ2lhbywgbcOgIGtow7RuZyBz4butIGThu6VuZyB0w7l5IGNo4buNbiDigJwtLWZvcmNl4oCdLlxuIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTQKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJQdXNoaW5nIHRvICVzXG4iCiBtc2dzdHIgIsSQYW5nIHB1c2ggKMSR4bqpeSkgbMOqbiAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoyOTgKKyM6IGJ1aWx0aW4vcHVzaC5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcHVzaCBzb21lIHJlZnMgdG8gJyVzJyIKIG1zZ3N0ciAiZ+G6t3AgbOG7l2kga2hpIHB1c2ggKMSR4bqpeSBsw6puKSBt4buZdCBz4buRIHRoYW0gY2hp4bq/dSAocmVmKSDEkeG6v24g4oCcJXPigJ0iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjMzMQorIzogYnVpbHRpbi9wdXNoLmM6MzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCByZXBvc2l0b3J5ICclcyciCiBtc2dzdHIgInJlcG9zaXRvcnkgKGtobykgc2FpIOKAnCVz4oCdIgogCi0jOiBidWlsdGluL3B1c2guYzozMzIKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1OAogbXNnaWQgIiIKICJObyBjb25maWd1cmVkIHB1c2ggZGVzdGluYXRpb24uXG4iCiAiRWl0aGVyIHNwZWNpZnkgdGhlIFVSTCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgb3IgY29uZmlndXJlIGEgcmVtb3RlICIKQEAgLTc0MTAsODggKzc4MjMsODggQEAKICJcbiIKICIgICAgZ2l0IHB1c2ggPHTDqm4+XG4iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM0NworIzogYnVpbHRpbi9wdXNoLmM6MzczCiBtc2dpZCAiLS1hbGwgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWFsbCB2w6AgLS10YWdzIHh1bmcga2jhuq9jIG5oYXUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM0OAorIzogYnVpbHRpbi9wdXNoLmM6Mzc0CiBtc2dpZCAiLS1hbGwgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiLS1hbGwga2jDtG5nIHRo4buDIMSRxrDhu6NjIHThu5UgaOG7o3AgY8O5bmcgduG7m2kgcmVmc3BlY3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1MworIzogYnVpbHRpbi9wdXNoLmM6Mzc5CiBtc2dpZCAiLS1taXJyb3IgYW5kIC0tdGFncyBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLW1pcnJvciB2w6AgLS10YWdzIHh1bmcga2jhuq9jIG5oYXUiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1NAorIzogYnVpbHRpbi9wdXNoLmM6MzgwCiBtc2dpZCAiLS1taXJyb3IgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiLS1taXJyb3Iga2jDtG5nIHRo4buDIMSRxrDhu6NjIHThu5UgaOG7o3AgY8O5bmcgduG7m2kgcmVmc3BlY3MiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1OQorIzogYnVpbHRpbi9wdXNoLmM6Mzg1CiBtc2dpZCAiLS1hbGwgYW5kIC0tbWlycm9yIGFyZSBpbmNvbXBhdGlibGUiCiBtc2dzdHIgIi0tYWxsIHbDoCAtLW1pcnJvciB4dW5nIGto4bqvYyBuaGF1IgogCi0jOiBidWlsdGluL3B1c2guYzo0MTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQogbXNnaWQgInJlcG9zaXRvcnkiCiBtc2dzdHIgImtobyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIwCisjOiBidWlsdGluL3B1c2guYzo0NDYKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICJwdXNoIHThuqV0IGPhuqMgcmVmcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIxCisjOiBidWlsdGluL3B1c2guYzo0NDcKIG1zZ2lkICJtaXJyb3IgYWxsIHJlZnMiCiBtc2dzdHIgIm1pcnJvciB04bqldCBj4bqjIHJlZnMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMworIzogYnVpbHRpbi9wdXNoLmM6NDQ5CiBtc2dpZCAiZGVsZXRlIHJlZnMiCiBtc2dzdHIgInjDs2EgcmVmcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI0CisjOiBidWlsdGluL3B1c2guYzo0NTAKIG1zZ2lkICJwdXNoIHRhZ3MgKGNhbid0IGJlIHVzZWQgd2l0aCAtLWFsbCBvciAtLW1pcnJvcikiCiBtc2dzdHIgIiIKICJjw6FjIHRo4bq7IHB1c2ggKGtow7RuZyB0aOG7gyBz4butIGThu6VuZyBjw7luZyB24bubaSBjw6FjIHTDuXkgY2jhu41uIC0tYWxsIGhheSAtLW1pcnJvcikiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyNworIzogYnVpbHRpbi9wdXNoLmM6NDUzCiBtc2dpZCAiZm9yY2UgdXBkYXRlcyIKIG1zZ3N0ciAiw6lwIGJ14buZYyBj4bqtcCBuaOG6rXQiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOAorIzogYnVpbHRpbi9wdXNoLmM6NDU0CiBtc2dpZCAiY2hlY2siCiBtc2dzdHIgImtp4buDbSB0cmEiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyOQorIzogYnVpbHRpbi9wdXNoLmM6NDU1CiBtc2dpZCAiY29udHJvbCByZWN1cnNpdmUgcHVzaGluZyBvZiBzdWJtb2R1bGVzIgogbXNnc3RyICLEkWnhu4F1IGtoaeG7g24gdmnhu4djIMSR4bqpeSBsw6puIChwdXNoKSDEkeG7hyBxdWkgY+G7p2EgbcO0LcSRdW4tY29uIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgInThuqFvIGfDs2kgbmjhurkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzMiBidWlsdGluL3B1c2guYzo0MzMKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1OCBidWlsdGluL3B1c2guYzo0NTkKIG1zZ2lkICJyZWNlaXZlIHBhY2sgcHJvZ3JhbSIKIG1zZ3N0ciAibmjhuq1uIHbhu4EgY2jGsMahbmcgdHLDrG5oIHBhY2siCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNAorIzogYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCiBtc2dzdHIgIsSR4bq3dCB0aMaw4bujbmcgbmd14buTbiAodXBzdHJlYW0pIGNobyBnaXQgcHVsbC9zdGF0dXMiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNworIzogYnVpbHRpbi9wdXNoLmM6NDYzCiBtc2dpZCAicHJ1bmUgbG9jYWxseSByZW1vdmVkIHJlZnMiCiBtc2dzdHIgInBydW5lIChj4bqvdCBj4buldCkgbmjhu69uZyB0aGFtIGNoaeG6v3UgKHJlZnMpIGLhu4sgZ+G7oSBi4buPIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2NQogbXNnaWQgImJ5cGFzcyBwcmUtcHVzaCBob29rIgogbXNnc3RyICJ2w7JuZyBxdWEg4oCccHJlLXB1c2ggaG9va+KAnSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDQwCisjOiBidWlsdGluL3B1c2guYzo0NjYKIG1zZ2lkICJwdXNoIG1pc3NpbmcgYnV0IHJlbGV2YW50IHRhZ3MiCiBtc2dzdHIgInB1c2ggYuG7iyB0csaw4bujdCBuaMawbmcgY8OhYyB0aOG6uyB0aMOtY2ggaOG7o3AiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MAorIzogYnVpbHRpbi9wdXNoLmM6NDc2CiBtc2dpZCAiLS1kZWxldGUgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hbGwsIC0tbWlycm9yIGFuZCAtLXRhZ3MiCiBtc2dzdHIgIi0tZGVsZXRlIGzDoCB4dW5nIGto4bqvYyB24bubaSBjw6FjIHTDuXkgY2jhu41uIC0tYWxsLCAtLW1pcnJvciB2w6AgLS10YWdzIgogCi0jOiBidWlsdGluL3B1c2guYzo0NTIKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ3OAogbXNnaWQgIi0tZGVsZXRlIGRvZXNuJ3QgbWFrZSBzZW5zZSB3aXRob3V0IGFueSByZWZzIgogbXNnc3RyICItLWRlbGV0ZSBraMO0bmcgaOG7o3AgbMO9IG7hur91IGtow7RuZyBjw7MgYuG6pXQga+G7syB0aGFtIGNoaeG6v3UgKHJlZnMpIG7DoG8iCiAKQEAgLTc1MDYsNzEgKzc5MTksODEgQEAKICJbLS1pbmRleC1vdXRwdXQ9PHThuq1wLXRpbj5dICgtLWVtcHR5IHwgPHRyZWUtaXNoMT4gWzx0cmVlLWlzaDI+IFs8dHJlZS0iCiAiaXNoMz5dXSkiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOQogbXNnaWQgIndyaXRlIHJlc3VsdGluZyBpbmRleCB0byA8ZmlsZT4iCiBtc2dzdHIgImdoaSBt4bulYyBs4bulYyBr4bq/dCBxdeG6oyB2w6BvIDx04bqtcC10aW4+IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTIKIG1zZ2lkICJvbmx5IGVtcHR5IHRoZSBpbmRleCIKIG1zZ3N0ciAiY2jhu4kgduG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIHRy4buRbmcgcuG7l25nIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTQKIG1zZ2lkICJNZXJnaW5nIgogbXNnc3RyICJIw7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTUKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE2CiBtc2dpZCAicGVyZm9ybSBhIG1lcmdlIGluIGFkZGl0aW9uIHRvIGEgcmVhZCIKIG1zZ3N0ciAidGjhu7FjIGhp4buHbiBt4buZdCBow7JhIHRy4buZbiB0aMOqbSB2w6BvIHZp4buHYyDEkeG7jWMiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE3CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOAogbXNnaWQgIjMtd2F5IG1lcmdlIGlmIG5vIGZpbGUgbGV2ZWwgbWVyZ2luZyByZXF1aXJlZCIKIG1zZ3N0ciAiIgogImjDsmEgdHLhu5luIGtp4buDdSDigJwzLXdheeKAnSBu4bq/dSBraMO0bmcgY8OzIHThuq1wIHRpbiBt4bupYyBow7JhIHRy4buZbiBuw6BvIMSRxrDhu6NjIHnDqnUgY+G6p3UgIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExOQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjAKIG1zZ2lkICIzLXdheSBtZXJnZSBpbiBwcmVzZW5jZSBvZiBhZGRzIGFuZCByZW1vdmVzIgogbXNnc3RyICJow7JhIHRy4buZbiAzLXdheSB0cm9uZyBz4buxIGhp4buHbiBkaeG7h24gY+G7p2Eg4oCcYWRkc+KAnSB2w6Ag4oCccmVtb3Zlc+KAnSIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjEKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCiBtc2dpZCAic2FtZSBhcyAtbSwgYnV0IGRpc2NhcmQgdW5tZXJnZWQgZW50cmllcyIKIG1zZ3N0ciAiZ2nhu5FuZyB24bubaSAtbSwgbmjGsG5nIGLhu48gcXVhIGPDoWMgbeG7pWMgY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMwogbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiPHRoxrAtbeG7pWMtY29uPi8iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNAogbXNnaWQgInJlYWQgdGhlIHRyZWUgaW50byB0aGUgaW5kZXggdW5kZXIgPHN1YmRpcmVjdG9yeT4vIgogbXNnc3RyICLEkeG7jWMgY8OieSB2w6BvIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYyBkxrDhu5tpIDx0aMawX23hu6VjX2Nvbj4vIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjcKIG1zZ2lkICJ1cGRhdGUgd29ya2luZyB0cmVlIHdpdGggbWVyZ2UgcmVzdWx0IgogbXNnc3RyICJj4bqtcCBuaOG6rXQgY8OieSBsw6BtIHZp4buHYyB24bubaSBr4bq/dCBxdeG6oyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CiBtc2dpZCAiZ2l0aWdub3JlIgogbXNnc3RyICJnaXRpZ25vcmUiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMAogbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKIG1zZ3N0ciAiY2hvIHBow6lwIGPDoWMgdOG6rXAgdGluIHLDtSByw6BuZyBi4buLIGzhu50gxJFpIMSRxrDhu6NjIGdoaSDEkcOoIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKIG1zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCiBtc2dzdHIgImtow7RuZyBraeG7g20gdHJhIGPDonkgbMOgbSB2aeG7h2Mgc2F1IGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzQKIG1zZ2lkICJkb24ndCB1cGRhdGUgdGhlIGluZGV4IG9yIHRoZSB3b3JrIHRyZWUiCiBtc2dzdHIgImtow7RuZyBj4bqtcCBuaOG6rXQgYuG6o25nIG3hu6VjIGzhu6VjIGhheSBjw6J5IGzDoG0gdmnhu4djIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzYKIG1zZ2lkICJza2lwIGFwcGx5aW5nIHNwYXJzZSBjaGVja291dCBmaWx0ZXIiCiBtc2dzdHIgImLhu48gcXVhIMOhcCBk4bulbmcgYuG7mSBs4buNYyBs4bqleSByYSAoY2hlY2tvdXQpIHRoxrBhIHRo4bubdCIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzcKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM4CiBtc2dpZCAiZGVidWcgdW5wYWNrLXRyZWVzIgogbXNnc3RyICJn4buhIGzhu5dpIHVucGFjay10cmVlcyIKIAorIzogYnVpbHRpbi9yZWZsb2cuYzo1MDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMnIGZvciAnJXMnIGlzIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCIKK21zZ3N0ciAiJXMnIGNobyAnJXMnIGtow7RuZyBwaOG6o2kgbMOgIGThuqV1IHRo4budaSBnaWFuIGjhu6NwIGzhu4ciCisKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NjE2IGJ1aWx0aW4vcmVmbG9nLmM6NjIxCisjLCBjLWZvcm1hdAorbXNnaWQgIiclcycgaXMgbm90IGEgdmFsaWQgdGltZXN0YW1wIgorbXNnc3RyICLigJwlc+KAnSBraMO0bmcgcGjhuqNpIGzDoCBk4bqldSB0aOG7nWkgZ2lhbiBo4bujcCBs4buHIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjExCiBtc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgogbXNnc3RyICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCkBAIC04MTQ2LDk3ICs4NTY5LDk3IEBACiBtc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiAlcy4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSB0w6xtIGPDonkgY+G7p2EgJXMuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6OTgKKyM6IGJ1aWx0aW4vcmVzZXQuYzo5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJIRUFEIGlzIG5vdyBhdCAlcyIKIG1zZ3N0ciAiSEVBRCBoaeG7h24gZ2nhu50gdOG6oWkgJXMiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoxNjkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoxNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gbeG7mXQgJXMgcmVzZXQg4bufIGdp4buvYSBj4bunYSBxdcOhIHRyw6xuaCBow7JhIHRy4buZbi4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICJsw6BtIHZp4buHYyDhu58gY2jhur8gxJHhu5kgaW0gbOG6t25nLCBjaOG7iSBoaeG7g24gdGjhu4sga2hpIGPDsyBs4buXaSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MAorIzogYnVpbHRpbi9yZXNldC5jOjI1MwogbXNnaWQgInJlc2V0IEhFQUQgYW5kIGluZGV4IgogbXNnc3RyICLEkeG6t3QgbOG6oWkgKHJlc2V0KSBIRUFEIHbDoCBi4bqjbmcgbeG7pWMgbOG7pWMiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTQKIG1zZ2lkICJyZXNldCBvbmx5IEhFQUQiCiBtc2dzdHIgImNo4buJIMSR4bq3dCBs4bqhaSAocmVzZXQpIEhFQUQiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMgYnVpbHRpbi9yZXNldC5jOjI1NQorIzogYnVpbHRpbi9yZXNldC5jOjI1NiBidWlsdGluL3Jlc2V0LmM6MjU4CiBtc2dpZCAicmVzZXQgSEVBRCwgaW5kZXggYW5kIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAixJHhurd0IGzhuqFpIEhFQUQsIGLhuqNuZyBt4bulYyBs4bulYyB2w6AgY8OieSBsw6BtIHZp4buHYyIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKIG1zZ3N0ciAixJHhurd0IGzhuqFpIEhFQUQgbmjGsG5nIGdp4buvIGzhuqFpIGPDoWMgdGhheSDEkeG7lWkgbuG7mWkgYuG7mSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3NQorIzogYnVpbHRpbi9yZXNldC5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmV2aXNpb24uIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgcGjDom4gZ2nhuqNpIOKAnCVz4oCdIG5oxrAgbMOgIMSRaeG7g20geMOpdCBkdXnhu4d0IGjhu6NwIGzhu4cuIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc4IGJ1aWx0aW4vcmVzZXQuYzoyODYKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODEgYnVpbHRpbi9yZXNldC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2Ugb2JqZWN0ICclcycuIgogbXNnc3RyICJraMO0bmcgdGjhu4MgcGjDom4gdMOtY2ggxJHhu5FpIHTGsOG7o25nIOKAnCVz4oCdLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI4MworIzogYnVpbHRpbi9yZXNldC5jOjI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgdHJlZS4iCiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSBwaMOibiBnaeG6o2kg4oCcJXPigJ0gbmjGsCBsw6AgbeG7mXQgY8OieSAodHJlZSkgaOG7o3AgbOG7hy4iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTUKIG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIC0te2hhcmQsbWl4ZWQsc29mdH0iCiBtc2dzdHIgIi0tcGF0Y2ggeHVuZyBraOG6r2MgduG7m2kgLS17aGFyZCxtaXhlZCxzb2Z0fSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMQorIzogYnVpbHRpbi9yZXNldC5jOjMwNAogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKIG1zZ3N0ciAiIgogIi0tbWl4ZWQgduG7m2kgY8OhYyDEkcaw4budbmcgZOG6q24ga2jDtG5nIGPDsm4gZMO5bmcgbuG7r2E7IGjDo3kgdGhheSB0aOG6vyBi4bqxbmcgbOG7h25oIOKAnGdpdCAiCiAicmVzZXQgLS0gPMSRxrDhu51uZ19k4bqrbj7igJ0uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzAzCisjOiBidWlsdGluL3Jlc2V0LmM6MzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBkbyAlcyByZXNldCB3aXRoIHBhdGhzLiIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIHRo4buxYyBoaeG7h24gbOG7h25oICVzIHJlc2V0IHbhu5tpIGPDoWMgxJHGsOG7nW5nIGThuqtuLiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMxMworIzogYnVpbHRpbi9yZXNldC5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyByZXNldCBpcyBub3QgYWxsb3dlZCBpbiBhIGJhcmUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiJXMgcmVzZXQga2jDtG5nIMSRxrDhu6NjIHBow6lwIHRyw6puIGtobyBiYXJlICh0csOqbiBtw6F5IGNo4bunKSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzMworIzogYnVpbHRpbi9yZXNldC5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVzZXQgaW5kZXggZmlsZSB0byByZXZpc2lvbiAnJXMnLiIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4bq3dCBs4bqhaSAocmVzZXQpIGLhuqNuZyBt4bulYyBs4bulYyB0aMOgbmggxJFp4buDbSB4w6l0IGzhuqFpIOKAnCVz4oCdLiIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIMSR4bq3dCBs4bqhaSAocmVzZXQpIGLhuqNuZyBt4bulYyBs4bulYyB0aMOgbmggxJFp4buDbSB4w6l0IGR1eeG7h3Qg4oCcJXPigJ0uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzM5CisjOiBidWlsdGluL3Jlc2V0LmM6MzQyCiBtc2dpZCAiVW5zdGFnZWQgY2hhbmdlcyBhZnRlciByZXNldDoiCiBtc2dzdHIgIk5o4buvbmcgdGhheSDEkeG7lWkgYuG7iyBi4buPIHRy4bqhbmcgdGjDoWkgKHN0YWdlKSBzYXUga2hpIHJlc2V0OiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjM0NAorIzogYnVpbHRpbi9yZXNldC5jOjM0NwogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBuZXcgaW5kZXggZmlsZS4iCiBtc2dzdHIgIktow7RuZyB0aOG7gyBnaGkgdOG6rXAgdGluIGzGsHUgYuG6o25nIG3hu6VjIGzhu6VjIG3hu5tpLiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozMzkKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ1CiBtc2dpZCAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtvcHRpb25zXSAtLSBbPGFyZ3M+Li4uXSIKIG1zZ3N0ciAiZ2l0IHJldi1wYXJzZSAtLXBhcnNlb3B0IFtjw6FjLXTDuXktY2jhu41uXSAtLSBbPHRoLnPhu5E+Li4uXSIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUwCiBtc2dpZCAia2VlcCB0aGUgYC0tYCBwYXNzZWQgYXMgYW4gYXJnIgogbXNnc3RyICJnaeG7ryDigJwtLeKAnCBjaHV54buDbiBxdWEgbMOgbSB0aGFtIHPhu5EiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzQ2CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM1MgogbXNnaWQgInN0b3AgcGFyc2luZyBhZnRlciB0aGUgZmlyc3Qgbm9uLW9wdGlvbiBhcmd1bWVudCIKIG1zZ3N0ciAiZOG7q25nIHBow6JuIHTDrWNoIHNhdSDEkeG7kWkgc+G7kSDEkeG6p3UgdGnDqm4ga2jDtG5nIGPDsyB0w7l5IGNo4buNbiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzo0NjQKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDcwCiBtc2dpZCAiIgogImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl1cbiIKICIgICBvcjogZ2l0IHJldi1wYXJzZSAtLXNxLXF1b3RlIFs8YXJnPi4uLl1cbiIKQEAgLTgyNTEsMTkxICs4Njc0LDIxOSBAQAogIkNo4bqheSBs4buHbmggXCJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLWhcIiDEkeG7gyBjw7MgdGjDqm0gdGjDtG5nIHRpbiB24buBIGPDoWNoIGTDuW5nLiIKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyMgotbXNnaWQgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQtaXNoPiIKLW1zZ3N0ciAiZ2l0IHJldmVydCBbY8OhYy10w7l5LWNo4buNbl0gPGNvbW1pdC1pc2g+IgorbXNnaWQgImdpdCByZXZlcnQgW29wdGlvbnNdIDxjb21taXQtaXNoPi4uLiIKK21zZ3N0ciAiZ2l0IHJldmVydCBbY8OhYy10w7l5LWNo4buNbl0gPGNvbW1pdC1pc2g+Li4uIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCiBtc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCByZXZlcnQgPGzhu4duaC1jb24+IgogCiAjOiBidWlsdGluL3JldmVydC5jOjI4Ci1tc2dpZCAiZ2l0IGNoZXJyeS1waWNrIFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCi1tc2dzdHIgImdpdCBjaGVycnktcGljayBbY8OhYy10w7l5LWNo4buNbl0gPGNvbW1pdC1pc2g+IgorbXNnaWQgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW2PDoWMtdMO5eS1jaOG7jW5dIDxjb21taXQtaXNoPi4uLiIKIAogIzogYnVpbHRpbi9yZXZlcnQuYzoyOQogbXNnaWQgImdpdCBjaGVycnktcGljayA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCBjaGVycnktcGljayA8bOG7h25oLWNvbj4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzAgYnVpbHRpbi9yZXZlcnQuYzo5MgorIzogYnVpbHRpbi9yZXZlcnQuYzo3MSBidWlsdGluL3JldmVydC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICIlczogJXMga2jDtG5nIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIHbhu5tpICVzIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKIG1zZ2lkICJlbmQgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJr4bq/dCB0aMO6YyBjaGVycnktcGljayBoYXkgcmV2ZXJ0IGxpw6puIHRp4bq/cCBuaGF1IgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDYKIG1zZ2lkICJyZXN1bWUgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICJwaOG7pWMgaOG7k2kgbOG6oWkgY2hlcnJ5LXBpY2sgaGF5IHJldmVydCBsacOqbiB0aeG6v3AgbmhhdSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CiBtc2dpZCAiY2FuY2VsIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAia2jDtG5nIGNoZXJyeS1waWNrIGhheSByZXZlcnQgbGnDqm4gdGnhur9wIG5oYXUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CisjOiBidWlsdGluL3JldmVydC5jOjEwOAogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICJraMO0bmcgY29tbWl0IG3hu5l0IGPDoWNoIHThu7EgxJHhu5luZy4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CisjOiBidWlsdGluL3JldmVydC5jOjEwOQogbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICJz4butYSBs4bqhaSBjaMO6IHRow61jaCBjaG8gY29tbWl0IgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKIG1zZ2lkICJwYXJlbnQgbnVtYmVyIgogbXNnc3RyICJz4buRIGPhu6dhIGNoYSBt4bq5IgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMgorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTQKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAiY2hp4bq/biBsxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExMworIzogYnVpbHRpbi9yZXZlcnQuYzoxMTUKIG1zZ2lkICJvcHRpb24iCiBtc2dzdHIgInTDuXkgY2jhu41uIgogCi0jOiBidWlsdGluL3JldmVydC5jOjExNAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMTYKIG1zZ2lkICJvcHRpb24gZm9yIG1lcmdlIHN0cmF0ZWd5IgogbXNnc3RyICJ0w7l5IGNo4buNbiBjaG8gY2hp4bq/biBsxrDhu6NjIGjDsmEgdHLhu5luIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMjcKIG1zZ2lkICJhcHBlbmQgY29tbWl0IG5hbWUiCiBtc2dzdHIgIm7hu5FpIHRow6ptIHTDqm4gbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjYKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CiBtc2dpZCAiYWxsb3cgZmFzdC1mb3J3YXJkIgogbXNnc3RyICJjaG8gcGjDqXAgZmFzdC1mb3J3YXJkIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKIG1zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiY+G6pW0ga2jhu59pIHThuqFvIGzhuqduIGNodXnhu4NuIGdpYW8gdHLhu5FuZyBy4buXbmciCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI4CisjOiBidWlsdGluL3JldmVydC5jOjEzMAogbXNnaWQgImFsbG93IGNvbW1pdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyIKIG1zZ3N0ciAiY2jhuqVwIG5o4bqtbiBjaHV54buDbiBnaWFvIChjb21taXQpIG3DoCBraMO0bmcgZ2hpIGNow7ogZ8OsIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzEKIG1zZ2lkICJrZWVwIHJlZHVuZGFudCwgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAiZ2nhu68gbOG6oWkgY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIGTGsCB0aOG7q2EsIHLhu5duZyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTM1CiBtc2dpZCAicHJvZ3JhbSBlcnJvciIKIG1zZ3N0ciAibOG7l2kgY2jGsMahbmcgdHLDrG5oIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyMworIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICJyZXZlcnQgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjM4CisjOiBidWlsdGluL3JldmVydC5jOjI0MAogbXNnaWQgImNoZXJyeS1waWNrIGZhaWxlZCIKIG1zZ3N0ciAiY2hlcnJ5LXBpY2sgZ+G6t3AgbOG7l2kiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxNQorIzogYnVpbHRpbi9ybS5jOjE2CiBtc2dpZCAiZ2l0IHJtIFtvcHRpb25zXSBbLS1dIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IHJtIFtjw6FjLXTDuXktY2jhu41uXSBbLS1dIDx04bqtcC10aW4+Li4uIgogCi0jOiBidWlsdGluL3JtLmM6NjQgYnVpbHRpbi9ybS5jOjE4NgotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzo2NAogbXNnaWQgIiIKLSJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlcyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2UgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dzdHJbMF0gIiIKKyJtw7QtxJF1bi1jb24gc2F1IMSRw6J5IChoYXkgbeG7mXQgdHJvbmcgc+G7kSBtw7QtxJF1bi1jb24gYsOqbiB0cm9uZyBj4bunYSBuw7MpXG4iCisiZMO5bmcgbeG7mXQgdGjGsCBt4bulYyAuZ2l0OiIKK21zZ3N0clsxXSAiIgorImPDoWMgbcO0LcSRdW4tY29uIHNhdSDEkcOieSAoaGF5IG3hu5l0IHRyb25nIHPhu5EgbcO0LcSRdW4tY29uIGLDqm4gdHJvbmcgY+G7p2EgbsOzKVxuIgorImTDuW5nIG3hu5l0IHRoxrAgbeG7pWMgLmdpdDoiCisKKyM6IGJ1aWx0aW4vcm0uYzo3MAorbXNnaWQgIiIKKyJcbiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCiBtc2dzdHIgIiIKLSJtw7QtxJF1bi1jb24g4oCcJXPigJ0gKGhv4bq3YyBjw6FpIG7hurFtIHRyb25nIGPDoWMgbcO0LcSRdW4tY29uKSBkw7luZyB0aMawIG3hu6VjIC5naXRcbiIKLSIoZMO5bmcg4oCccm0gLXJm4oCdIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiBn4buhIGLhu48gbsOzIGPDuW5nIHbhu5tpIHThuqV0IGPhuqMgbOG7i2NoIHPhu60gY+G7p2EgIgorIlxuIgorIihkw7luZyAvXCJybSAtcmYvXCIgbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIGfhu6EgYuG7jyBuw7MgY8O5bmcgduG7m2kgdOG6pXQgY+G6oyBs4buLY2ggc+G7rSBj4bunYSAiCiAiY2jDum5nKSIKIAotIzogYnVpbHRpbi9ybS5jOjE3NAotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzoyMzAKIG1zZ2lkICIiCi0iJyVzJyBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUgZmlsZSBhbmQgdGhlIEhFQURcbiIKKyJ0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnaWRfcGx1cmFsICIiCisidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlXG4iCisiZmlsZSBhbmQgdGhlIEhFQUQ6IgorbXNnc3RyWzBdICIiCisidOG6rXAgdGluIHNhdSDEkcOieSBjw7MgdHLhuqFuZyB0aMOhaSBraMOhYyBiaeG7h3QgbuG7mWkgZHVuZyB04burIGPhuqMgdOG6rXAgdGluXG4iCisidsOgIGPhuqMgSEVBRDoiCittc2dzdHJbMV0gIiIKKyJjw6FjIHThuq1wIHRpbiBzYXUgxJHDonkgY8OzIHRy4bqhbmcgdGjDoWkga2jDoWMgYmnhu4d0IG7hu5lpIGR1bmcgdOG7qyBj4bqjIHThuq1wIHRpblxuIgorInbDoCBj4bqjIEhFQUQ6IgorCisjOiBidWlsdGluL3JtLmM6MjM1Cittc2dpZCAiIgorIlxuIgogIih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSLigJwlc+KAnSBjw7MgbuG7mWkgZHVuZyDEkcaw4bujYyBsxrB1IHRy4bqhbmcgdGjDoWkga2jDoWMgYmnhu4d0IHThu6sgY+G6oyB04bqtcCB0aW4gdsOgIGPhuqMgSEVBRFxuIgotIihkw7luZyB0w7l5IGNo4buNbiAtZiDEkeG7gyDDqXAgYnXhu5ljIGfhu6EgYuG7jykiCisiXG4iCisiKGTDuW5nIC1mIMSR4buDIGJ14buZYyBn4buhIGLhu48pIgogCi0jOiBidWlsdGluL3JtLmM6MTgwCi0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzOQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoiCittc2dzdHJbMF0gInThuq1wIHRpbiBzYXUgxJHDonkgY8OzIHRoYXkgxJHhu5VpIHRy4bqhbmcgdGjDoWkgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjOiIKK21zZ3N0clsxXSAiY8OhYyB04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyB0aGF5IMSR4buVaSB0cuG6oW5nIHRow6FpIHRyb25nIGLhuqNuZyBt4bulYyBs4bulYzoiCisKKyM6IGJ1aWx0aW4vcm0uYzoyNDMgYnVpbHRpbi9ybS5jOjI1NAogbXNnaWQgIiIKLSInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyJcbiIKICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0i4oCcJXPigJ0gY8OzIGPDoWMgdGhheSDEkeG7lWkgxJHGsOG7o2MgbMawdSB0cuG6oW5nIHRow6FpIHRyb25nIGLhuqNuZyBt4bulYyBs4bulY1xuIgorIlxuIgogIihkw7luZyB0w7l5IGNo4buNbiAtLWNhY2hlZCDEkeG7gyBnaeG7ryB04bqtcCB0aW4sIGhv4bq3YyAtZiDEkeG7gyDDqXAgYnXhu5ljIGfhu6EgYuG7jykiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxOTEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotIiclcycgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnNcbiIKLSIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgotbXNnc3RyICIiCi0i4oCcJXPigJ0gY8OzIGPDoWMgdGhheSDEkeG7lWkgbuG7mWkgYuG7mVxuIgotIihkw7luZyB0w7l5IGNo4buNbiAtLWNhY2hlZCDEkeG7gyBnaeG7ryB04bqtcCB0aW4sIGhv4bq3YyAtZiDEkeG7gyDDqXAgYnXhu5ljIGfhu6EgYuG7jykiCisjOiBidWlsdGluL3JtLmM6MjUxCittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ2lkX3BsdXJhbCAidGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGxvY2FsIG1vZGlmaWNhdGlvbnM6IgorbXNnc3RyWzBdICJ04bqtcCB0aW4gc2F1IMSRw6J5IGPDsyBuaOG7r25nIHRoYXkgxJHhu5VpIG7hu5lpIGLhu5k6IgorbXNnc3RyWzFdICJuaOG7r25nIHThuq1wIHRpbiBzYXUgxJHDonkgY8OzIG5o4buvbmcgdGhheSDEkeG7lWkgbuG7mWkgYuG7mToiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICJraMO0bmcgbGnhu4d0IGvDqiBjw6FjIHThuq1wIHRpbiDEkcOjIGfhu6EgYuG7jyIKIAotIzogYnVpbHRpbi9ybS5jOjIwOAorIzogYnVpbHRpbi9ybS5jOjI3MAogbXNnaWQgIm9ubHkgcmVtb3ZlIGZyb20gdGhlIGluZGV4IgogbXNnc3RyICJjaOG7iSBn4buhIGLhu48gdOG7qyBt4bulYyBs4bulYyIKIAotIzogYnVpbHRpbi9ybS5jOjIwOQorIzogYnVpbHRpbi9ybS5jOjI3MQogbXNnaWQgIm92ZXJyaWRlIHRoZSB1cC10by1kYXRlIGNoZWNrIgogbXNnc3RyICJnaGkgxJHDqCBsw6puIGtp4buDbSB0cmEgY+G6rXAgbmjhuq10IgogCi0jOiBidWlsdGluL3JtLmM6MjEwCisjOiBidWlsdGluL3JtLmM6MjcyCiBtc2dpZCAiYWxsb3cgcmVjdXJzaXZlIHJlbW92YWwiCiBtc2dzdHIgImNobyBwaMOpcCBn4buhIGLhu48gxJHhu4cgcXVpIgogCi0jOiBidWlsdGluL3JtLmM6MjEyCisjOiBidWlsdGluL3JtLmM6Mjc0CiBtc2dpZCAiZXhpdCB3aXRoIGEgemVybyBzdGF0dXMgZXZlbiBpZiBub3RoaW5nIG1hdGNoZWQiCiBtc2dzdHIgInRob8OhdCByYSB24bubaSB0cuG6oW5nIHRow6FpIGtow6FjIGtow7RuZyB0aOG6rW0gY2jDrSBu4bq/dSBraMO0bmcgY8OzIGfDrCBraOG7m3AiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyODMKKyM6IGJ1aWx0aW4vcm0uYzozNDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHJlbW92aW5nICclcycgcmVjdXJzaXZlbHkgd2l0aG91dCAtciIKIG1zZ3N0ciAia2jDtG5nIHRo4buDIGfhu6EgYuG7jyDigJwlc+KAnSBt4buZdCBjw6FjaCDEkeG7hyBxdWkgbcOgIGtow7RuZyBjw7MgdMO5eSBjaOG7jW4gLXIiCiAKLSM6IGJ1aWx0aW4vcm0uYzozMjIKKyM6IGJ1aWx0aW4vcm0uYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZ2l0IHJtOiB1bmFibGUgdG8gcmVtb3ZlICVzIgogbXNnc3RyICJnaXQgcm06IGtow7RuZyB0aOG7gyBn4buhIGLhu48gJXMiCiAKICM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMwotbXNnaWQgImdpdCBzaG9ydGxvZyBbLW5dIFstc10gWy1lXSBbLXddIFtyZXYtb3B0c10gWy0tXSBbPGNvbW1pdC1pZD4uLi4gXSIKLW1zZ3N0ciAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgorbXNnaWQgImdpdCBzaG9ydGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gWzxwYXRoPi4uLl1dIgorbXNnc3RyICJnaXQgc2hvcnRsb2cgW2PDoWMtdMO5eS1jaOG7jW5dIFs8dsO5bmcteMOpdC1kdXnhu4d0Pl0gW1stLV0gWzzEkcaw4budbmctZOG6q24+Li4uXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWlzc2luZyBhdXRob3I6ICVzIgogbXNnc3RyICJUaGnhur91IHTDqm4gdMOhYyBnaeG6ozogJXMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjkKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCiBtc2dzdHIgInPhuq9wIHjhur9wIGvhur90IHh14bqldCB0dcOibiB0aGVvIHPhu5EgbMaw4bujbmcgY2h1eeG7g24gZ2lhbyB0csOqbiBt4buXaSB0w6FjIGdp4bqjIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjMxCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMwCiBtc2dpZCAiU3VwcHJlc3MgY29tbWl0IGRlc2NyaXB0aW9ucywgb25seSBwcm92aWRlcyBjb21taXQgY291bnQiCiBtc2dzdHIgIkNo4bq3biBt4buNaSBtw7QgdOG6oyBs4bqnbiBjaHV54buDbiBnaWFvLCBjaOG7iSDEkcawYSByYSBz4buRIGzGsOG7o25nIGzhuqduIGNodXnhu4NuIGdpYW8iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICJIaeG7g24gdGjhu4sgdGjGsCDEkWnhu4duIHThu60gY2hvIHThu6tuZyB0w6FjIGdp4bqjIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjMzCiBtc2dpZCAid1ssaTFbLGkyXV0iCiBtc2dzdHIgIndbLGkxWyxpMl1dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MjM1CisjOiBidWlsdGluL3Nob3J0bG9nLmM6MjM0CiBtc2dpZCAiTGluZXdyYXAgb3V0cHV0IgogbXNnc3RyICJOZ+G6r3QgZMOybmcga2hpIHF1w6EgZMOgaSIKIApAQCAtODQ1NSw0NyArODkwNiw0NyBAQAogbXNnaWQgImdpdCBzaG93LWJyYW5jaCAoLWd8LS1yZWZsb2cpWz08bj5bLDxiYXNlPl1dIFstLWxpc3RdIFs8cmVmPl0iCiBtc2dzdHIgImdpdCBzaG93LWJyYW5jaCAoLWd8LS1yZWZsb2cpWz08bj5bLDxu4buBbj5dXSBbLS1saXN0XSBbPHJlZj5dIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUxCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUwCiBtc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYW5kIGxvY2FsIGJyYW5jaGVzIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyBuaMOhbmggcmVtb3RlLXRyYWNraW5nIHbDoCBu4buZaSBi4buZIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUzCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjUyCiBtc2dpZCAic2hvdyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIG5ow6FuaCByZW1vdGUtdHJhY2tpbmciCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTQKIG1zZ2lkICJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIgogbXNnc3RyICJtw6B1IOKAnCohKy3igJ0gdMawxqFuZyDhu6luZyB24bubaSBuaMOhbmgiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTcKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTYKIG1zZ2lkICJzaG93IDxuPiBtb3JlIGNvbW1pdHMgYWZ0ZXIgdGhlIGNvbW1vbiBhbmNlc3RvciIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRow6ptIDxuPiBs4bqnbiBjaHV54buDbiBnaWFvIHNhdSBjaGEgbeG6uSBjaHVuZyIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OQorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OAogbXNnaWQgInN5bm9ueW0gdG8gbW9yZT0tMSIKIG1zZ3N0ciAixJHhu5NuZyBuZ2jEqWEgduG7m2kgbW9yZT0tMSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OQogbXNnaWQgInN1cHByZXNzIG5hbWluZyBzdHJpbmdzIgogbXNnc3RyICJjaOG6t24gY8OhYyBjaHXhu5dpIMSR4bq3dCB0w6puIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYyCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYxCiBtc2dpZCAiaW5jbHVkZSB0aGUgY3VycmVudCBicmFuY2giCiBtc2dzdHIgImJhbyBn4buTbSBuaMOhbmggaGnhu4duIGjDoG5oIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY0CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYzCiBtc2dpZCAibmFtZSBjb21taXRzIHdpdGggdGhlaXIgb2JqZWN0IG5hbWVzIgogbXNnc3RyICLEkeG6t3QgdMOqbiBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gYuG6sW5nIGPDoWMgdMOqbiBj4bunYSDEkeG7kWkgdMaw4bujbmcgY+G7p2EgY2jDum5nIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY2CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY1CiBtc2dpZCAic2hvdyBwb3NzaWJsZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIG3hu41pIGPGoSBz4bufIGPDsyB0aOG7gyBkw7luZyDEkeG7gyBow7JhIHRy4buZbiIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NwogbXNnaWQgInNob3cgcmVmcyB1bnJlYWNoYWJsZSBmcm9tIGFueSBvdGhlciByZWYiCiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIHRoYW0gY2hp4bq/dSBraMO0bmcgdGjhu4MgxJHGsOG7o2MgxJHhu41jIGLhu59pIGLhuqV0IGvhu7MgdGhhbSBjaGnhur91IGtow6FjIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjcwCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjY5CiBtc2dpZCAic2hvdyBjb21taXRzIGluIHRvcG9sb2dpY2FsIG9yZGVyIgogbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIHRoZW8gdGjhu6kgdOG7sSB0w7Rww7QiCiAKQEAgLTg1MDgsMTQgKzg5NTksMTQgQEAKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIGPDoWMgbOG6p24gaMOyYSB0cuG7mW4gY8OzIHRo4buDIMSR4buNYyDEkcaw4bujYyBjaOG7iSB04burIG3hu5l0IMSR4bqndSBtw7p0IgogCiAjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc2Ci1tc2dpZCAic2hvdyBjb21taXRzIHdoZXJlIG5vIHBhcmVudCBjb21lcyBiZWZvcmUgaXRzIGNoaWxkcmVuIgotbXNnc3RyICJoaeG7g24gdGjhu4sgY8OhYyBs4bqnbiBjaHV54buDbiBnaWFvIG7GoWkgbcOgIGNoYSBt4bq5IMSR4bq/biB0csaw4bubYyBjb24gY+G7p2EgbsOzIgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKK21zZ3N0ciAic+G6r3AgeOG6v3AgaMOsbmggdGjDoWkgaOG7jWMsIGLhuqNvIHRyw6wgdGjhu6kgdOG7sSBuZ8OgeSBu4bq/dSBjw7MgdGjhu4MiCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzgKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzkKIG1zZ2lkICI8bj5bLDxiYXNlPl0iCiBtc2dzdHIgIjxuPlssPGPGoSBz4bufPl0iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzkKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2ODAKIG1zZ2lkICJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgYmFzZSIKIG1zZ3N0ciAiaGnhu4NuIHRo4buLIDxuPiBjw6FjIG3hu6VjIOKAnHJlZi1sb2figJ0gZ+G6p24gbmjhuqV0IGvhu4MgdOG7qyBu4buBbiAoYmFzZSkiCiAKQEAgLTg1MzEsMzggKzg5ODIsMzggQEAKIG1zZ2lkICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1wYXR0ZXJuXSA8IHJlZi1saXN0IgogbXNnc3RyICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1t4bqrdV0gPCByZWYtbGlzdCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NQorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2OAogbXNnaWQgIm9ubHkgc2hvdyB0YWdzIChjYW4gYmUgY29tYmluZWQgd2l0aCBoZWFkcykiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyB0aOG6uyAoY8OzIHRo4buDIHThu5UgaOG7o3AgY8O5bmcgduG7m2kgxJHhuqd1KSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2OQogbXNnaWQgIm9ubHkgc2hvdyBoZWFkcyAoY2FuIGJlIGNvbWJpbmVkIHdpdGggdGFncykiCiBtc2dzdHIgImNo4buJIGhp4buDbiB0aOG7iyDEkeG6p3UgKGPDsyB0aOG7gyB04buVIGjhu6NwIGPDuW5nIHbhu5tpIHRo4bq7KSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE2NworIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MAogbXNnaWQgInN0cmljdGVyIHJlZmVyZW5jZSBjaGVja2luZywgcmVxdWlyZXMgZXhhY3QgcmVmIHBhdGgiCiBtc2dzdHIgIiIKICJ2aeG7h2Mga2nhu4NtIHRyYSB0aGFtIGNoaeG6v3UgY2jDrW5oIHjDoWMsIMSRw7JpIGjhu49pIGNow61uaCB4w6FjIMSRxrDhu51uZyBk4bqrbiB0aGFtIGNoaeG6v3UgIgogIihyZWYpIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTcwIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzIKLW1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKLW1zZ3N0ciAiaGnhu4NuIHRo4buLIHRoYW0gY2hp4bq/dSBj4bunYSBIRUFEIgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3MyBidWlsdGluL3Nob3ctcmVmLmM6MTc2Cittc2dpZCAic2hvdyB0aGUgSEVBRCByZWZlcmVuY2UsIGV2ZW4gaWYgaXQgd291bGQgYmUgZmlsdGVyZWQgb3V0IgorbXNnc3RyICJoaeG7g24gdGjhu4sgdGhhbSBjaGnhur91IEhFQUQsIG5nYXkgY+G6oyBraGkgbsOzIMSRw6MgxJHGsOG7o2MgbOG7jWMgcmEiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzQKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzgKIG1zZ2lkICJkZXJlZmVyZW5jZSB0YWdzIGludG8gb2JqZWN0IElEcyIKIG1zZ3N0ciAiYsOjaSBi4buPIHRoYW0gY2hp4bq/dSBjw6FjIHRo4bq7IHRow6BuaCByYSBjw6FjIElEIMSR4buRaSB0xrDhu6NuZyIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAiY2jhu4kgaGnhu4NuIHRo4buLIG3DoyBixINtIFNIQTEgc+G7rSBk4bulbmcgPG4+IGNo4buvIHPhu5EiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKIG1zZ3N0ciAiIgogImtow7RuZyBoaeG7g24gdGjhu4sga+G6v3QgcXXhuqMgcmEgxJHhuqd1IHJhIGNodeG6qW4gKHN0ZG91dCkgKGNo4buJIGjhu691IGThu6VuZyB24bubaSAtLXZlcmlmeSkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODIKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODYKIG1zZ2lkICJzaG93IHJlZnMgZnJvbSBzdGRpbiB0aGF0IGFyZW4ndCBpbiBsb2NhbCByZXBvc2l0b3J5IgogbXNnc3RyICIiCiAiaGnhu4NuIHRo4buLIGPDoWMgdGhhbSBjaGnhur91IChyZWZzKSB04burIMSR4bqndSB2w6BvIHRpw6p1IGNodeG6qW4gKHN0ZGluKSBjw6FpIG3DoCBraMO0bmcg4bufICIKQEAgLTg5ODMsMjQgKzk0MzQsMzMgQEAKIG1zZ2lkICJvbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nIgogbXNnc3RyICJjaOG7iSBo4buvdSDDrWNoIGtoaSBj4bqnbiBn4buhIGzhu5dpIgogCi0jOiBnaXQuYzoxNgotbXNnaWQgIlNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhIHNwZWNpZmljIGNvbW1hbmQuIgorIzogZ2l0LmM6MTcKK21zZ2lkICIiCisiJ2dpdCBoZWxwIC1hJyBhbmQgJ2dpdCBoZWxwIC1nJyBsaXN0cyBhdmFpbGFibGUgc3ViY29tbWFuZHMgYW5kIHNvbWVcbiIKKyJjb25jZXB0IGd1aWRlcy4gU2VlICdnaXQgaGVscCA8Y29tbWFuZD4nIG9yICdnaXQgaGVscCA8Y29uY2VwdD4nXG4iCisidG8gcmVhZCBhYm91dCBhIHNwZWNpZmljIHN1YmNvbW1hbmQgb3IgY29uY2VwdC4iCiBtc2dzdHIgIiIKLSJDaOG6oXkgbOG7h25oIOKAnGdpdCBoZWxwIDx0w6puLWzhu4duaD7igJ0gxJHhu4MgY8OzIHRow6ptIHRow7RuZyB0aW4gduG7gSBs4buHbmggxJHGsOG7o2MgY2jhu4kgcmEuIgorIuKAnGdpdCBoZWxwIC1h4oCdIHbDoCDigJxnaXQgaGVscCAtZ+KAnSBsaeG7h3Qga8OqIGPDoWMgY8OidSBs4buHbmggY29uIHPhurVuIGPDsyB2w6AgbeG7mXQgc+G7kVxuIgorImjGsOG7m25nIGThuqtuIHbhu4Ega2jDoWkgbmnhu4dtLiBYZW0g4oCcZ2l0IGhlbHAgPGzhu4duaD7igJ0gaGF5IOKAnGdpdCBoZWxwIDxraMOhaS1uaeG7h20+4oCdXG4iCisixJHhu4MgeGVtIGPDoWMgxJHhurdjIHThuqMgY2hvIGzhu4duaCBoYXkga2jDoWkgbmnhu4dtIGPhu6UgdGjhu4MuIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MTU2CisjOiBwYXJzZS1vcHRpb25zLmg6MTQ0Cittc2dpZCAiZXhwaXJ5IGRhdGUiCittc2dzdHIgIm5nw6B5IGjhur90IGjhuqFuIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MTU5CiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICJuby1vcCAodMawxqFuZyB0aMOtY2ggbmfGsOG7o2MpIgogCi0jOiBwYXJzZS1vcHRpb25zLmg6MjMyCisjOiBwYXJzZS1vcHRpb25zLmg6MjM2CiBtc2dpZCAiYmUgbW9yZSB2ZXJib3NlIgogbXNnc3RyICJjaGkgdGnhur90IGjGoW4gbuG7r2EiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzQKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzgKIG1zZ2lkICJiZSBtb3JlIHF1aWV0IgogbXNnc3RyICJpbSBs4bq3bmcgaMahbiBu4buvYSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjI0MAorIzogcGFyc2Utb3B0aW9ucy5oOjI0NAogbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgogbXNnc3RyICJz4butIGThu6VuZyA8bj4gY2jhu68gc+G7kSDEkeG7gyBoaeG7g24gdGjhu4sgU0hBLTFzIgogCkBAIC05MDE4LDcgKzk0NzgsNyBAQAogCiAjOiBjb21tb24tY21kcy5oOjExCiBtc2dpZCAiQ2hlY2tvdXQgYSBicmFuY2ggb3IgcGF0aHMgdG8gdGhlIHdvcmtpbmcgdHJlZSIKLW1zZ3N0ciAiTOG6pXkgcmEgKGNoZWNrb3V0KSBt4buZdCBuaMOhbmggaGF5IGPDoWMgxJHGsOG7nW5nIGThuqtuIHThu5tpIGPDonkgbMOgbSB2aeG7h2MiCittc2dzdHIgIkzhuqV5IHJhIG3hu5l0IG5ow6FuaCBoYXkgY8OhYyDEkcaw4budbmcgZOG6q24gdOG7m2kgY8OieSBsw6BtIHZp4buHYyIKIAogIzogY29tbW9uLWNtZHMuaDoxMgogbXNnaWQgIkNsb25lIGEgcmVwb3NpdG9yeSBpbnRvIGEgbmV3IGRpcmVjdG9yeSIKQEAgLTkwMzEsMTIgKzk0OTEsMTIgQEAKICM6IGNvbW1vbi1jbWRzLmg6MTQKIG1zZ2lkICJTaG93IGNoYW5nZXMgYmV0d2VlbiBjb21taXRzLCBjb21taXQgYW5kIHdvcmtpbmcgdHJlZSwgZXRjIgogbXNnc3RyICIiCi0iSGnhu4NuIHRo4buLIGPDoWMgdGhheSDEkeG7lWkgZ2nhu69hIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSwgY29tbWl0IHbDoCBjw6J5IGzDoG0gIgotInZp4buHYywgdi52Li4iCisiWGVtIGPDoWMgdGhheSDEkeG7lWkgZ2nhu69hIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyxcbiIKKyIgICAgICAgICAgICAgICBnaeG7r2EgbeG7mXQgbOG6p24gY2h1eeG7g24gZ2lhbyB2w6AgY8OieSBsw6BtIHZp4buHYywgdi52Li4iCiAKICM6IGNvbW1vbi1jbWRzLmg6MTUKIG1zZ2lkICJEb3dubG9hZCBvYmplY3RzIGFuZCByZWZzIGZyb20gYW5vdGhlciByZXBvc2l0b3J5IgotbXNnc3RyICJDw6FjIMSR4buRaSB0xrDhu6NuZyB2w6AgdGhhbSBjaGnhur91IMSRxrDhu6NjIHThuqNpIHbhu4EgdOG7qyBraG8gY2jhu6lhIGtow6FjIgorbXNnc3RyICJU4bqjaSB24buBIGPDoWMgxJHhu5FpIHTGsOG7o25nIHbDoCB0aGFtIGNoaeG6v3UgdOG7qyBraG8gY2jhu6lhIGtow6FjIgogCiAjOiBjb21tb24tY21kcy5oOjE2CiBtc2dpZCAiUHJpbnQgbGluZXMgbWF0Y2hpbmcgYSBwYXR0ZXJuIgpAQCAtOTA0NCw0MCArOTUwNCwzNyBAQAogCiAjOiBjb21tb24tY21kcy5oOjE3CiBtc2dpZCAiQ3JlYXRlIGFuIGVtcHR5IEdpdCByZXBvc2l0b3J5IG9yIHJlaW5pdGlhbGl6ZSBhbiBleGlzdGluZyBvbmUiCi1tc2dzdHIgIiIKLSJU4bqhbyBt4buZdCBraG8gZ2l0IHRy4buRbmcgcuG7l25nIGhheSBraOG7n2kgdOG6oW8gbOG6oWkgbeG7mXQga2hvIMSRw6MgdOG7k24gdOG6oWkgdOG7qyB0csaw4bubYyIKK21zZ3N0ciAiVOG6oW8gbeG7mXQga2hvIGdpdCBt4bubaSBoYXkga2jhu59pIHThuqFvIGzhuqFpIG3hu5l0IGtobyDEkcOjIHThu5NuIHThuqFpIHThu6sgdHLGsOG7m2MiCiAKICM6IGNvbW1vbi1jbWRzLmg6MTgKIG1zZ2lkICJTaG93IGNvbW1pdCBsb2dzIgotbXNnc3RyICJIaeG7g24gdGjhu4sgbmjhuq10IGvDvSBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkiCittc2dzdHIgIkhp4buDbiB0aOG7iyBuaOG6rXQga8O9IGPDoWMgbOG6p24gY2h1eeG7g24gZ2lhbyIKIAogIzogY29tbW9uLWNtZHMuaDoxOQogbXNnaWQgIkpvaW4gdHdvIG9yIG1vcmUgZGV2ZWxvcG1lbnQgaGlzdG9yaWVzIHRvZ2V0aGVyIgotbXNnc3RyICIiCi0iSOG7o3AgbmjhuqV0IGhhaSBoYXkgbmhp4buBdSBoxqFuIGzhu4tjaCBz4butIGPhu6dhIGPDoWMgbmjDoCBwaMOhdCB0cmnhu4NuIHBo4bqnbiBt4buBbSBs4bqhaSB24bubaSAiCi0ibmhhdSIKK21zZ3N0ciAiSOG7o3AgbmjhuqV0IGhhaSBoYXkgbmhp4buBdSBoxqFuIGzhu4tjaCBz4butIGPhu6dhIGPDoWMgbmjDoCBwaMOhdCB0cmnhu4NuIgogCiAjOiBjb21tb24tY21kcy5oOjIwCiBtc2dpZCAiTW92ZSBvciByZW5hbWUgYSBmaWxlLCBhIGRpcmVjdG9yeSwgb3IgYSBzeW1saW5rIgotbXNnc3RyICJEaSBjaHV54buDbiwgxJHhu5VpIHTDqm4gbeG7mXQgdOG6rXAgdGluLCB0aMawIG3hu6VjIGhheSBsacOqbiBr4bq/dCB0xrDhu6NuZyB0csawbmciCittc2dzdHIgIkRpIGNodXnhu4NuIGhheSDEkeG7lWkgdMOqbiBt4buZdCB04bqtcCB0aW4sIHRoxrAgbeG7pWMgaG/hurdjIGxpw6puIGvhur90IG3hu4FtIgogCiAjOiBjb21tb24tY21kcy5oOjIxCi1tc2dpZCAiRmV0Y2ggZnJvbSBhbmQgbWVyZ2Ugd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCi1tc2dzdHIgIkzhuqV5IHbhu4EgKGZldGNoKSB2w6AgaMOyYSB0cuG7mW4gduG7m2kga2hvIGtow6FjIGhheSBuaMOhbmggbuG7mWkgYuG7mSIKK21zZ2lkICJGZXRjaCBmcm9tIGFuZCBpbnRlZ3JhdGUgd2l0aCBhbm90aGVyIHJlcG9zaXRvcnkgb3IgYSBsb2NhbCBicmFuY2giCittc2dzdHIgIkzhuqV5IHbhu4EgdsOgIGjhu6NwIG5o4bqldCB24bubaSBraG8ga2jDoWMgaGF5IG3hu5l0IG5ow6FuaCBu4buZaSBi4buZIgogCiAjOiBjb21tb24tY21kcy5oOjIyCiBtc2dpZCAiVXBkYXRlIHJlbW90ZSByZWZzIGFsb25nIHdpdGggYXNzb2NpYXRlZCBvYmplY3RzIgotbXNnc3RyICIiCi0iQ+G6rXAgbmjhuq10IHRoYW0gY2hp4bq/dSAocmVmcykgbcOheSBjaOG7pyBjw7luZyB24bubaSBjw6FjIMSR4buRaSB0xrDhu6NuZyBsacOqbiBxdWFuIMSR4bq/biBuw7MiCittc2dzdHIgIkPhuq1wIG5o4bqtdCB0aC5jaGnhur91IG3DoXkgY2jhu6cgY8O5bmcgduG7m2kgY8OhYyDEkeG7kWkgdMaw4bujbmcgbGnDqm4gcXVhbiDEkeG6v24gbsOzIgogCiAjOiBjb21tb24tY21kcy5oOjIzCiBtc2dpZCAiRm9yd2FyZC1wb3J0IGxvY2FsIGNvbW1pdHMgdG8gdGhlIHVwZGF0ZWQgdXBzdHJlYW0gaGVhZCIKIG1zZ3N0ciAiIgotIkZvcndhcmQtcG9ydCBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gbuG7mWkgYuG7mSB04bubaSBoZWFkIHRoxrDhu6NuZyBuZ3Xhu5NuIMSRw6MgY+G6rXAgbmjhuq10IgorIkNodXnhu4NuIHRp4bq/cCBuaOG7r25nIGzhuqduIGNodXnhu4NuIGdpYW8gbuG7mWkgYuG7mVxuIgorIiAgICAgICAgICAgICAgIHThu5tpIGhlYWQgdGjGsOG7o25nIG5ndeG7k24gxJHDoyBj4bqtcCBuaOG6rXQiCiAKICM6IGNvbW1vbi1jbWRzLmg6MjQKIG1zZ2lkICJSZXNldCBjdXJyZW50IEhFQUQgdG8gdGhlIHNwZWNpZmllZCBzdGF0ZSIKLW1zZ3N0ciAixJDhurd0IGzhuqFpIEhFQUQgaGnhu4duIGjDoG5oIHRow6BuaCBt4buZdCB0cuG6oW5nIHRow6FpIMSRxrDhu6NjIGNo4buJIHJhIgorbXNnc3RyICLEkOG6t3QgbOG6oWkgSEVBRCBoaeG7h24gaMOgbmggdGjDoG5oIHRy4bqhbmcgdGjDoWkgxJHDoyBjaG8iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjUKIG1zZ2lkICJSZW1vdmUgZmlsZXMgZnJvbSB0aGUgd29ya2luZyB0cmVlIGFuZCBmcm9tIHRoZSBpbmRleCIKQEAgLTkwOTMsOSArOTU1MCw3IEBACiAKICM6IGNvbW1vbi1jbWRzLmg6MjgKIG1zZ2lkICJDcmVhdGUsIGxpc3QsIGRlbGV0ZSBvciB2ZXJpZnkgYSB0YWcgb2JqZWN0IHNpZ25lZCB3aXRoIEdQRyIKLW1zZ3N0ciAiIgotIlThuqFvLCBsaeG7h3Qga8OqLCB4w7NhIGhheSB4w6FjIHRo4buxYyBt4buZdCDEkeG7kWkgdMaw4bujbmcgdGjhursgKHRhZykgbcOgIG7DsyDEkcaw4bujYyBrw70gc+G7rSBk4bulbmcgIgotIkdQRyIKK21zZ3N0ciAiVOG6oW8sIGxp4buHdCBrw6osIHjDs2EgaGF5IHjDoWMgdGjhu7FjIG3hu5l0IMSR4buRaSB0xrDhu6NuZyB0aOG6uyDEkcaw4bujYyBrw70gYuG6sW5nIEdQRyIKIAogIzogZ2l0LWFtLnNoOjUwCiBtc2dpZCAiWW91IG5lZWQgdG8gc2V0IHlvdXIgY29tbWl0dGVyIGluZm8gZmlyc3QiCkBAIC05MTEyLDExICs5NTY3LDExIEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIktoaSBi4bqhbiBj4bqnbiBnaeG6o2kgcXV54bq/dCB24bqlbiDEkeG7gSBuw6B5IGjDo3kgY2jhuqF5IGzhu4duaCBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJLaGkgYuG6oW4gY+G6p24gZ2nhuqNpIHF1eeG6v3QgduG6pW4gxJHhu4EgbsOgeSBow6N5IGNo4bqheSBs4buHbmggXCIkY21kbGluZSAtLWNvbnRpbnVlXCIuXG4iCiAiTuG6v3UgYuG6oW4gY8OzIMO9IMSR4buLbmggYuG7jyBxdWEgbWnhur9uZyB2w6EsIHRoYXkgdsOgbyDEkcOzIGLhuqFuIGNo4bqheSBcIiRjbWRsaW5lIC0tc2tpcCIKICJcIi5cbiIKICLEkOG7gyBwaOG7pWMgaOG7k2kgbOG6oWkgdGjDoG5oIG5ow6FuaCBuZ3V5w6puIHRo4buneSB2w6AgZOG7q25nIHZp4buHYyB2w6EgbOG6oWkgdGjDrCBjaOG6oXkgIgpAQCAtOTE3MiwyNSArOTYyNywzNCBAQAogIlTDuXkgY2jhu41uIC1iLy0tYmluYXJ5IMSRw6Mga2jDtG5nIGTDuW5nIHThu6sgbMOidSBy4buTaSwgdsOgXG4iCiAibsOzIHPhur0gxJHGsOG7o2MgYuG7jyDEkWkuIFhpbiDEkeG7q25nIHPhu60gZOG7pW5nIG7DsyB0aMOqbSBu4buvYS4iCiAKLSM6IGdpdC1hbS5zaDo0NzcKKyM6IGdpdC1hbS5zaDo0NzkKICMsIHNoLWZvcm1hdAogbXNnaWQgInByZXZpb3VzIHJlYmFzZSBkaXJlY3RvcnkgJGRvdGVzdCBzdGlsbCBleGlzdHMgYnV0IG1ib3ggZ2l2ZW4uIgogbXNnc3RyICJ0aMawIG3hu6VjIHJlYmFzZSB0csaw4bubYyAkZG90ZXN0IHbhuqtuIGNoxrBhIHPhurVuIHPDoG5nIG5oxrBuZyBtYm94IMSRxrDhu6NjIMSRxrBhIHJhLiIKIAotIzogZ2l0LWFtLnNoOjQ4MgorIzogZ2l0LWFtLnNoOjQ4NAogbXNnaWQgIlBsZWFzZSBtYWtlIHVwIHlvdXIgbWluZC4gLS1za2lwIG9yIC0tYWJvcnQ/IgogbXNnc3RyICJYaW4gaMOjeSByw7UgcsOgbmcuIC0tc2tpcCBoYXkgLS1hYm9ydD8iCiAKLSM6IGdpdC1hbS5zaDo1MDkKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKyJUw6xtIHRo4bqleSB0aMawIG3hu6VjIGzhuqFjICRkb3Rlc3QuXG4iCisiRMO5bmcgXCJnaXQgYW0gLS1hYm9ydFwiIMSR4buDIGxv4bqhaSBi4buPIG7DsyDEkWkuIgorCisjOiBnaXQtYW0uc2g6NTI4CiBtc2dpZCAiUmVzb2x2ZSBvcGVyYXRpb24gbm90IGluIHByb2dyZXNzLCB3ZSBhcmUgbm90IHJlc3VtaW5nLiIKIG1zZ3N0ciAiVGhhbyB0w6FjIHBow6JuIGdp4bqjaSBraMO0bmcgxJHGsOG7o2MgdGnhur9uIGjDoG5oLCBjaMO6bmcgdGEga2jDtG5nIHBo4bulYyBo4buTaSBs4bqhaS4iCiAKLSM6IGdpdC1hbS5zaDo1NzUKKyM6IGdpdC1hbS5zaDo1OTQKICMsIHNoLWZvcm1hdAogbXNnaWQgIkRpcnR5IGluZGV4OiBjYW5ub3QgYXBwbHkgcGF0Y2hlcyAoZGlydHk6ICRmaWxlcykiCiBtc2dzdHIgIkLhuqNuZyBt4bulYyBs4bulYyBzYWk6IGtow7RuZyB0aOG7gyDDoXAgZOG7pW5nIGPDoWMgbWnhur9uZyB2w6EgKHNhaTogJGZpbGVzKSIKIAotIzogZ2l0LWFtLnNoOjY3OQorIzogZ2l0LWFtLnNoOjY5OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlBhdGNoIGlzIGVtcHR5LiAgV2FzIGl0IHNwbGl0IHdyb25nP1xuIgpAQCAtOTIwMywzNCArOTY2NywzNCBAQAogIsSQ4buDIHBo4bulYyBo4buTaSBs4bqhaSBuaMOhbmggbmd1ecOqbiB0aOG7p3kgdsOgIGThu6tuZyB2w6EgbOG6oWkgaMOjeSBjaOG6oXkgbOG7h25oIFwiJGNtZGxpbmUgLS0iCiAiYWJvcnRcIi4iCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICJNaeG6v25nIHbDoSBraMO0bmcgY8OzIMSR4buLYSBjaOG7iSBlLW1haWwgaOG7o3AgbOG7hy4iCiAKLSM6IGdpdC1hbS5zaDo3NTMKKyM6IGdpdC1hbS5zaDo3NzIKIG1zZ2lkICJjYW5ub3QgYmUgaW50ZXJhY3RpdmUgd2l0aG91dCBzdGRpbiBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbC4iCiBtc2dzdHIgIiIKICJraMO0bmcgdGjhu4MgxJHGsOG7o2MgdMawxqFuZyB0w6FjIG3DoCBraMO0bmcgY8OzIHN0ZGluIGvhur90IG7hu5FpIHbhu5tpIG3hu5l0IHRoaeG6v3QgYuG7iyBjdeG7kWkiCiAKLSM6IGdpdC1hbS5zaDo3NTcKKyM6IGdpdC1hbS5zaDo3NzYKIG1zZ2lkICJDb21taXQgQm9keSBpczoiCiBtc2dzdHIgIlRow6JuIGPhu6dhIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgbMOgOiIKIAogIy4gVFJBTlNMQVRPUlM6IE1ha2Ugc3VyZSB0byBpbmNsdWRlIFt5XSwgW25dLCBbZV0sIFt2XSBhbmQgW2FdCiAjLiBpbiB5b3VyIHRyYW5zbGF0aW9uLiBUaGUgcHJvZ3JhbSB3aWxsIG9ubHkgYWNjZXB0IEVuZ2xpc2gKICMuIGlucHV0IGF0IHRoaXMgcG9pbnQuCi0jOiBnaXQtYW0uc2g6NzY0CisjOiBnaXQtYW0uc2g6NzgzCiBtc2dpZCAiQXBwbHk/IFt5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgogbXNnc3RyICIiCiAiw4FwIGThu6VuZz8gxJHhu5NuZyDDvSBbeV0va2jDtG5nIFtuXS9jaOG7iW5oIHPhu61hIFtlXS9oaeG7g24gdGjhu4sgbWnhur9uZyBbdl3DoS/EkeG7k25nIMO9IHThuqV0ICIKICJj4bqjIFthXSAiCiAKLSM6IGdpdC1hbS5zaDo4MDAKKyM6IGdpdC1hbS5zaDo4MTkKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nOiAkRklSU1RMSU5FIgogbXNnc3RyICLEkGFuZyDDoXAgZOG7pW5nIChtaeG6v25nIHbDoSk6ICRGSVJTVExJTkUiCiAKLSM6IGdpdC1hbS5zaDo4MjEKKyM6IGdpdC1hbS5zaDo4NDAKIG1zZ2lkICIiCiAiTm8gY2hhbmdlcyAtIGRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/XG4iCiAiSWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IHRvIHN0YWdlLCBjaGFuY2VzIGFyZSB0aGF0IHNvbWV0aGluZyBlbHNlXG4iCkBAIC05MjQxLDcgKzk3MDUsNyBAQAogIsSRw6Mgc+G6tW4gxJHGsOG7o2MgxJHGsGEgdsOgbyB24bubaSBjw7luZyBu4buZaSBkdW5nIHRoYXkgxJHhu5VpOyBi4bqhbiBjw7MgbOG6vSBtdeG7kW4gYuG7jyBxdWEgbWnhur9uZyAiCiAidsOhIG7DoHkuIgogCi0jOiBnaXQtYW0uc2g6ODI5CisjOiBnaXQtYW0uc2g6ODQ4CiBtc2dpZCAiIgogIllvdSBzdGlsbCBoYXZlIHVubWVyZ2VkIHBhdGhzIGluIHlvdXIgaW5kZXhcbiIKICJkaWQgeW91IGZvcmdldCB0byB1c2UgJ2dpdCBhZGQnPyIKQEAgLTkyNDksMTYgKzk3MTMsMTYgQEAKICJC4bqhbiB24bqrbiBjw7Mgbmjhu69uZyDEkcaw4budbmcgZOG6q24gY2jGsGEgxJHGsOG7o2MgaMOyYSB0cuG7mW4gdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjIGPhu6dhIG3DrG5oXG4iCiAiYuG6oW4gxJHDoyBxdcOqbiBz4butIGThu6VuZyBs4buHbmgg4oCcZ2l0IGFkZOKAnSDDoD8iCiAKLSM6IGdpdC1hbS5zaDo4NDUKKyM6IGdpdC1hbS5zaDo4NjQKIG1zZ2lkICJObyBjaGFuZ2VzIC0tIFBhdGNoIGFscmVhZHkgYXBwbGllZC4iCiBtc2dzdHIgIktow7RuZyB0aGF5IMSR4buVaSBnw6wgY+G6oyAtLSBNaeG6v25nIHbDoSDEkcOjIMSRxrDhu6NjIMOhcCBk4bulbmcgcuG7k2kuIgogCi0jOiBnaXQtYW0uc2g6ODU1CisjOiBnaXQtYW0uc2g6ODc0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJQYXRjaCBmYWlsZWQgYXQgJG1zZ251bSAkRklSU1RMSU5FIgogbXNnc3RyICJWw6EgZ+G6t3AgbOG7l2kgdOG6oWkgJG1zZ251bSAkRklSU1RMSU5FIgogCi0jOiBnaXQtYW0uc2g6ODU4CisjOiBnaXQtYW0uc2g6ODc3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGNvcHkgb2YgdGhlIHBhdGNoIHRoYXQgZmFpbGVkIGlzIGZvdW5kIGluOlxuIgpAQCAtOTI2Nyw3ICs5NzMxLDcgQEAKICJC4bqjbiBzYW8gY2jDqXAgY+G7p2EgbWnhur9uZyB2w6EgbcOgIG7DsyBn4bq3cCBs4buXaSB0aMOsIMSRxrDhu6NjIHTDrG0gdGjhuqV5IHRyb25nOlxuIgogIiAgICRkb3Rlc3QvcGF0Y2giCiAKLSM6IGdpdC1hbS5zaDo4NzYKKyM6IGdpdC1hbS5zaDo4OTUKIG1zZ2lkICJhcHBseWluZyB0byBhbiBlbXB0eSBoaXN0b3J5IgogbXNnc3RyICLDoXAgZOG7pW5nIHbDoG8gbeG7mXQgbOG7i2NoIHPhu60gdHLhu5FuZyBy4buXbmciCiAKQEAgLTkyOTAsNyArOTc1NCw3IEBACiAjOiBnaXQtYmlzZWN0LnNoOjk5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGFyZycgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgcmV2aXNpb24iCi1tc2dzdHIgIuKAnSRhcmfigJ0ga2jDtG5nIGPDsyB24bq7IG5oxrAgbMOgIG3hu5l0IHPhu7EgeMOpdCBs4bqhaSBo4bujcCBs4buHIgorbXNnc3RyICLigJ0kYXJn4oCdIGtow7RuZyBjw7MgduG6uyBuaMawIGzDoCBt4buZdCDEkWnhu4NtIHjDqXQgZHV54buHdCBo4bujcCBs4buHIgogCiAjOiBnaXQtYmlzZWN0LnNoOjExNwogbXNnaWQgIkJhZCBIRUFEIC0gSSBuZWVkIGEgSEVBRCIKQEAgLTkzNjgsMTYgKzk4MzIsMTYgQEAKICJzYWkuXG4iCiAiKELhuqFuIGPDsyB0aOG7gyBz4butIGThu6VuZyBcImdpdCBiaXNlY3QgYmFkXCIgdsOgIFwiZ2l0IGJpc2VjdCBnb29kXCIgY2hvIGNow7puZy4pIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM0NyBnaXQtYmlzZWN0LnNoOjQ3NAorIzogZ2l0LWJpc2VjdC5zaDozNjMgZ2l0LWJpc2VjdC5zaDo0OTAKIG1zZ2lkICJXZSBhcmUgbm90IGJpc2VjdGluZy4iCiBtc2dzdHIgIkNow7puZyB0w7RpIGtow7RuZyBiaXNlY3QuIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM1NAorIzogZ2l0LWJpc2VjdC5zaDozNzAKICMsIHNoLWZvcm1hdAogbXNnaWQgIickaW52YWxpZCcgaXMgbm90IGEgdmFsaWQgY29tbWl0IgogbXNnc3RyICLigJ0kaW52YWxpZOKAnSBraMO0bmcgcGjhuqNpIGzDoCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGjhu6NwIGzhu4ciCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzYzCisjOiBnaXQtYmlzZWN0LnNoOjM3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBjaGVjayBvdXQgb3JpZ2luYWwgSEVBRCAnJGJyYW5jaCcuXG4iCkBAIC05Mzg2LDI1ICs5ODUwLDI1IEBACiAiS2jDtG5nIHRo4buDIGNoZWNrLW91dCBIRUFEIG5ndXnDqm4gdGjhu6d5IGPhu6dhIOKAnCRicmFuY2jigJ0uXG4iCiAiSMOjeSB0aOG7rSDigJxnaXQgYmlzZWN0IHJlc2V0IDxs4bqnbi1jaHV54buDbi1naWFvPuKAnS4iCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzkwCisjOiBnaXQtYmlzZWN0LnNoOjQwNgogbXNnaWQgIk5vIGxvZ2ZpbGUgZ2l2ZW4iCiBtc2dzdHIgIkNoxrBhIGNo4buJIHJhIHThuq1wIHRpbiBnaGkgbmjhuq10IGvDvSIKIAotIzogZ2l0LWJpc2VjdC5zaDozOTEKKyM6IGdpdC1iaXNlY3Quc2g6NDA3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAkZmlsZSBmb3IgcmVwbGF5aW5nIgogbXNnc3RyICJraMO0bmcgdGjhu4MgxJHhu41jICRmaWxlIMSR4buDIHRoYW8gZGnhu4VuIGzhuqFpIgogCi0jOiBnaXQtYmlzZWN0LnNoOjQwOAorIzogZ2l0LWJpc2VjdC5zaDo0MjQKIG1zZ2lkICI/PyB3aGF0IGFyZSB5b3UgdGFsa2luZyBhYm91dD8iCiBtc2dzdHIgIj8/IGLhuqFuIMSRYW5nIG7Ds2kgZ8OsIHRo4bq/PyIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MjAKKyM6IGdpdC1iaXNlY3Quc2g6NDM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJydW5uaW5nICRjb21tYW5kIgogbXNnc3RyICLEkWFuZyBjaOG6oXkgbOG7h25oICRjb21tYW5kIgogCi0jOiBnaXQtYmlzZWN0LnNoOjQyNworIzogZ2l0LWJpc2VjdC5zaDo0NDMKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJiaXNlY3QgcnVuIGZhaWxlZDpcbiIKQEAgLTk0MTMsMTEgKzk4NzcsMTEgQEAKICJjaOG6oXkgYmlzZWN0IGfhurdwIGzhu5dpOlxuIgogIm3DoyB0cuG6oyB24buBICRyZXMgdOG7qyBs4buHbmgg4oCcJGNvbW1hbmTigJ0gbMOgIDwgMCBob+G6t2MgPj0gMTI4IgogCi0jOiBnaXQtYmlzZWN0LnNoOjQ1MworIzogZ2l0LWJpc2VjdC5zaDo0NjkKIG1zZ2lkICJiaXNlY3QgcnVuIGNhbm5vdCBjb250aW51ZSBhbnkgbW9yZSIKIG1zZ3N0ciAiYmlzZWN0IGtow7RuZyB0aOG7gyB0aeG6v3AgdOG7pWMgdGjDqm0gxJHGsOG7o2MgbuG7r2EiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDU5CisjOiBnaXQtYmlzZWN0LnNoOjQ3NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImJpc2VjdCBydW4gZmFpbGVkOlxuIgpAQCAtOTQyNiw3ICs5ODkwLDcgQEAKICJjaOG6oXkgYmlzZWN0IGfhurdwIGzhu5dpOlxuIgogIuKAnWJpc2VjdF9zdGF0ZSAkc3RhdGXigJ0gxJHDoyB0aG/DoXQgcmEgduG7m2kgbcOjIGzhu5dpICRyZXMiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDY2CisjOiBnaXQtYmlzZWN0LnNoOjQ4MgogbXNnaWQgImJpc2VjdCBydW4gc3VjY2VzcyIKIG1zZ3N0ciAiYmlzZWN0IGNo4bqheSB0aMOgbmggY8O0bmciCiAKQEAgLTk0NzUsNyArOTkzOSw3IEBACiBtc2dpZCAiQ2Fubm90IHJlYmFzZSBvbnRvIG11bHRpcGxlIGJyYW5jaGVzIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgdGjhu7FjIGhp4buHbiBs4buHbmggcmViYXNlIChjxqEgY+G6pXUgbOG6oWkpIHRyw6puIG5oaeG7gXUgbmjDoW5oIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzCisjOiBnaXQtcmViYXNlLnNoOjU0CiBtc2dpZCAiIgogIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIi5cbiIKICJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgpAQCAtOTQ4OCwzNSArOTk1Miw1NSBAQAogIsSQ4buDIHBo4bulYyBo4buTaSBs4bqhaSB0aMOgbmggbmjDoW5oIG5ndXnDqm4gdGjhu6d5IHbDoCBk4burbmcgdmnhu4djIHbDoSBs4bqhaSB0aMOsIGNo4bqheSBcImdpdCAiCiAicmViYXNlIC0tYWJvcnRcIi4iCiAKKyM6IGdpdC1yZWJhc2Uuc2g6MTU2Cittc2dpZCAiQXBwbGllZCBhdXRvc3Rhc2guIgorbXNnc3RyICLEkMOjIMOhcCBk4bulbmcgYXV0b3N0YXNoLiIKKworIzogZ2l0LXJlYmFzZS5zaDoxNTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCBzdG9yZSAkc3Rhc2hfc2hhMSIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGzGsHUgJHN0YXNoX3NoYTEiCisKICM6IGdpdC1yZWJhc2Uuc2g6MTYwCittc2dpZCAiIgorIkFwcGx5aW5nIGF1dG9zdGFzaCByZXN1bHRlZCBpbiBjb25mbGljdHMuXG4iCisiWW91ciBjaGFuZ2VzIGFyZSBzYWZlIGluIHRoZSBzdGFzaC5cbiIKKyJZb3UgY2FuIHJ1biBcImdpdCBzdGFzaCBwb3BcIiBvciBcImdpdCBzdGFzaCBkcm9wXCIgYXQgYW55IHRpbWUuXG4iCittc2dzdHIgIiIKKyLDgXAgZOG7pW5nIGF1dG9zdGFzaCBjw7MgaGnhu4d1IHF14bqjIHRyb25nIGPDoWMgeHVuZyDEkeG7mXQuXG4iCisiQ8OhYyB0aGF5IMSR4buVaSBj4bunYSBi4bqhbiBhbiB0b8OgbiB0cm9uZyBzdGFzaCAodOG6oW0gY+G6pXQgxJFpKS5cbiIKKyJC4bqhbiBjw7MgdGjhu4MgY2jhuqF5IGzhu4duaCBcImdpdCBzdGFzaCBwb3BcIiBoYXkgXCJnaXQgc3Rhc2ggZHJvcFwiIGLhuqV0IGvhu7MgbMO6YyAiCisibsOgby5cbiIKKworIzogZ2l0LXJlYmFzZS5zaDoxOTAKIG1zZ2lkICJUaGUgcHJlLXJlYmFzZSBob29rIHJlZnVzZWQgdG8gcmViYXNlLiIKIG1zZ3N0ciAiTcOzYyAoaG9vaykgcHJlLXJlYmFzZSB04burIGNo4buRaSByZWJhc2UuIgogCi0jOiBnaXQtcmViYXNlLnNoOjE2NQorIzogZ2l0LXJlYmFzZS5zaDoxOTUKIG1zZ2lkICJJdCBsb29rcyBsaWtlIGdpdC1hbSBpcyBpbiBwcm9ncmVzcy4gQ2Fubm90IHJlYmFzZS4iCiBtc2dzdHIgIiIKICJIw6xuaCBuaMawIMSRYW5nIHRyb25nIHF1w6EgdHLDrG5oIHRo4buxYyBoaeG7h24gbOG7h25oIGdpdC1hbS4gS2jDtG5nIHRo4buDIGNo4bqheSBs4buHbmggIgogInJlYmFzZS4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6Mjk2CisjOiBnaXQtcmViYXNlLnNoOjMyOQogbXNnaWQgIlRoZSAtLWV4ZWMgb3B0aW9uIG11c3QgYmUgdXNlZCB3aXRoIHRoZSAtLWludGVyYWN0aXZlIG9wdGlvbiIKIG1zZ3N0ciAiVMO5eSBjaOG7jW4gLS1leGVjIHBo4bqjaSDEkcaw4bujYyBz4butIGThu6VuZyBjw7luZyB24bubaSB0w7l5IGNo4buNbiAtLWludGVyYWN0aXZlIgogCi0jOiBnaXQtcmViYXNlLnNoOjMwMQorIzogZ2l0LXJlYmFzZS5zaDozMzQKIG1zZ2lkICJObyByZWJhc2UgaW4gcHJvZ3Jlc3M/IgogbXNnc3RyICJLaMO0bmcgY8OzIHRp4bq/biB0csOsbmggcmViYXNlIG7DoG8gcGjhuqNpIGtow7RuZz8iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzEyCisjOiBnaXQtcmViYXNlLnNoOjM0NQogbXNnaWQgIlRoZSAtLWVkaXQtdG9kbyBhY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCBkdXJpbmcgaW50ZXJhY3RpdmUgcmViYXNlLiIKIG1zZ3N0ciAiIgogIkjDoG5oIMSR4buZbmcg4oCcLS1lZGl0LXRvZG/igJ0gY2jhu4kgY8OzIHRo4buDIGTDuW5nIHRyb25nIHF1w6EgdHLDrG5oIOKAnHJlYmFzZeKAnSAoc+G7rWEgbOG7i2NoICIKICJz4butKSB0xrDGoW5nIHTDoWMuIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxOQorIzogZ2l0LXJlYmFzZS5zaDozNTIKIG1zZ2lkICJDYW5ub3QgcmVhZCBIRUFEIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgxJHhu41jIEhFQUQiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzIyCisjOiBnaXQtcmViYXNlLnNoOjM1NQogbXNnaWQgIiIKICJZb3UgbXVzdCBlZGl0IGFsbCBtZXJnZSBjb25mbGljdHMgYW5kIHRoZW5cbiIKICJtYXJrIHRoZW0gYXMgcmVzb2x2ZWQgdXNpbmcgZ2l0IGFkZCIKQEAgLTk1MjQsMTIgKzEwMDA4LDEyIEBACiAiQuG6oW4gcGjhuqNpIHPhu61hIHThuqV0IGPhuqMgY8OhYyBs4bqnbiBow7JhIHRy4buZbiB4dW5nIMSR4buZdCB2w6Agc2F1XG4iCiAixJHDsyDEkcOhbmggZOG6pXUgY2jDum5nIGzDoCBj4bqnbiB44butIGzDvSBz4butIGThu6VuZyBs4buHbmggZ2l0IGFkZCIKIAotIzogZ2l0LXJlYmFzZS5zaDozNDAKKyM6IGdpdC1yZWJhc2Uuc2g6MzczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgbW92ZSBiYWNrIHRvICRoZWFkX25hbWUiCiBtc2dzdHIgIktow7RuZyB0aOG7gyBxdWF5IHRy4bufIGzhuqFpICRoZWFkX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzU5CisjOiBnaXQtcmViYXNlLnNoOjM5MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkl0IHNlZW1zIHRoYXQgdGhlcmUgaXMgYWxyZWFkeSBhICRzdGF0ZV9kaXJfYmFzZSBkaXJlY3RvcnksIGFuZFxuIgpAQCAtOTU1Miw1NyArMTAwMzYsNjYgQEAKICJcbiIKICJUw5RJOiBsw6AgbOG7h25oIGLhuqFuIHbhu6thIGfhu41pISIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICJ0aMaw4bujbmcgbmd14buTbiBraMO0bmcgaOG7o3AgbOG7hyAkdXBzdHJlYW1fbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MjgKKyM6IGdpdC1yZWJhc2Uuc2g6NDYxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBtZXJnZSBiYXNlcyIKIG1zZ3N0ciAiJG9udG9fbmFtZTog4bufIMSRw6J5IGPDsyBuaGnhu4F1IGjGoW4gbeG7mXQgbuG7gW4gbcOzbmcgaMOyYSB0cuG7mW4iCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDMxIGdpdC1yZWJhc2Uuc2g6NDM1CisjOiBnaXQtcmViYXNlLnNoOjQ2NCBnaXQtcmViYXNlLnNoOjQ2OAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgaXMgbm8gbWVyZ2UgYmFzZSIKIG1zZ3N0ciAiJG9udG9fbmFtZTog4bufIMSRw6J5IGtow7RuZyBjw7MgbuG7gW4gbcOzbmcgaMOyYSB0cuG7mW4gbsOgbyIKIAotIzogZ2l0LXJlYmFzZS5zaDo0NDAKKyM6IGdpdC1yZWJhc2Uuc2g6NDczCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEb2VzIG5vdCBwb2ludCB0byBhIHZhbGlkIGNvbW1pdDogJG9udG9fbmFtZSIKIG1zZ3N0ciAiS2jDtG5nIGNo4buJIMSR4bq/biBt4buZdCBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpIGtow7RuZyBo4bujcCBs4buHOiAkb250b19uYW1lIgogCi0jOiBnaXQtcmViYXNlLnNoOjQ2MworIzogZ2l0LXJlYmFzZS5zaDo0OTYKICMsIHNoLWZvcm1hdAogbXNnaWQgImZhdGFsOiBubyBzdWNoIGJyYW5jaDogJGJyYW5jaF9uYW1lIgogbXNnc3RyICJuZ2hpw6ptIHRy4buNbmc6IGtow7RuZyBjw7MgbmjDoW5oIG5oxrAgdGjhur86ICRicmFuY2hfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0ODMKKyM6IGdpdC1yZWJhc2Uuc2g6NTE5Cittc2dpZCAiQ2Fubm90IGF1dG9zdGFzaCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGF1dG9zdGFzaCIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNyZWF0ZWQgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgorbXNnc3RyICLEkMOjIHThuqFvIGF1dG9zdGFzaDogJHN0YXNoX2FiYnJldiIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjgKIG1zZ2lkICJQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHRoZW0uIgogbXNnc3RyICJYaW4gaMOjeSBjb21taXQgaG/hurdjIHThuqFtIGPhuqV0IChzdGFzaCkgY2jDum5nLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTQ4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCiBtc2dzdHIgIk5ow6FuaCBoaeG7h24gdOG6oWkgJGJyYW5jaF9uYW1lIMSRw6MgxJHGsOG7o2MgY+G6rXAgbmjhuq10IHLhu5NpLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NTUyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZC4iCiBtc2dzdHIgIk5ow6FuaCBoaeG7h24gdOG6oWkgJGJyYW5jaF9uYW1lIMSRw6MgxJHGsOG7o2MgY+G6rXAgbmjhuq10IHLhu5NpLCBs4buHbmggcmViYXNlIMOpcCBideG7mWMuIgogCi0jOiBnaXQtcmViYXNlLnNoOjUxNQorIzogZ2l0LXJlYmFzZS5zaDo1NjMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNoYW5nZXMgZnJvbSAkbWIgdG8gJG9udG86IgogbXNnc3RyICJUaGF5IMSR4buVaSB04burICRtYiB0aMOgbmggJG9udG86IgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU3MgogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAiIgogIlRyxrDhu5tjIHRpw6puLCBkaSBjaHV54buDbiBoZWFkIMSR4buDIHhlbSBs4bqhaSBjw6FjIGPDtG5nIHZp4buHYyB0csOqbiDEkeG7iW5oIGPhu6dhIG7Dsy4uLiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MzIKKyM6IGdpdC1yZWJhc2Uuc2g6NTgyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYXN0LWZvcndhcmRlZCAkYnJhbmNoX25hbWUgdG8gJG9udG9fbmFtZS4iCiBtc2dzdHIgIkZhc3QtZm9yd2FyZCAkYnJhbmNoX25hbWUgdGjDoG5oICRvbnRvX25hbWUuIgpAQCAtOTYzNiw2ICsxMDEyOSwxMSBAQAogbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIGzhuqFpIHRy4bqhbmcgdGjDoWkgY8OieSBsw6BtIHZp4buHYyBoaeG7h24gaMOgbmgiCiAKKyM6IGdpdC1zdGFzaC5zaDoxOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgJHJlZl9zdGFzaCB3aXRoICR3X2NvbW1pdCIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGPhuq1wIG5o4bqtdCAkcmVmX3N0YXNoIHbhu5tpICR3X2NvbW1pdCIKKwogIy4gVFJBTlNMQVRPUlM6ICRvcHRpb24gaXMgYW4gaW52YWxpZCBvcHRpb24sIGxpa2UKICMuIGAtLWJsYWgtYmxhaCcuIFRoZSA3IHNwYWNlcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQogIy4gc2Vjb25kIGxpbmUgY29ycmVzcG9uZCB0byAiZXJyb3I6ICIuIFNvIHlvdSBzaG91bGQgbGluZQpAQCAtOTY0NiwxMzIgKzEwMTQ0LDE1MyBAQAogIy4gJCBnaXQgc3Rhc2ggc2F2ZSAtLWJsYWgtYmxhaCAyPiYxIHwgaGVhZCAtbiAyCiAjLiBlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogLS1ibGFoLWJsYWgKICMuIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJy0tYmxhaC1ibGFoJwotIzogZ2l0LXN0YXNoLnNoOjIwMgorIzogZ2l0LXN0YXNoLnNoOjI0MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImVycm9yOiB1bmtub3duIG9wdGlvbiBmb3IgJ3N0YXNoIHNhdmUnOiAkb3B0aW9uXG4iCiAiICAgICAgIFRvIHByb3ZpZGUgYSBtZXNzYWdlLCB1c2UgZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgogbXNnc3RyICIiCiAibOG7l2k6IGtow7RuZyBoaeG7g3UgdMO5eSBjaOG7jW4gY2hvIOKAnHN0YXNoIHNhdmXigJ06ICRvcHRpb25cbiIKLSIgICAgICAgxJDhu4MgY3VuZyBj4bqlcCBt4buZdCB0aMO0bmcgxJFp4buHcCwgc+G7rSBk4bulbmcgZ2l0IHN0YXNoIHNhdmUgLS0g4oCcJG9wdGlvbuKAnSIKKyIgICAgIMSQ4buDIGTDuW5nIHRow7RuZyDEkWnhu4dwIGPDsyBjaOG7qWEgLS0g4bufIMSR4bqndSwgc+G7rSBk4bulbmcgZ2l0IHN0YXNoIHNhdmUgLS0gXCIkb3B0aW9uIgorIlwiIgogCi0jOiBnaXQtc3Rhc2guc2g6MjIzCisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiTm8gbG9jYWwgY2hhbmdlcyB0byBzYXZlIgogbXNnc3RyICJLaMO0bmcgY8OzIHRoYXkgxJHhu5VpIG7hu5lpIGLhu5kgbsOgbyDEkcaw4bujYyBnaGkgbOG6oWkiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjcKKyM6IGdpdC1zdGFzaC5zaDoyNjgKK21zZ2lkICIiCisiVGhlIGZvbGxvd2luZyB1bnRyYWNrZWQgZmlsZXMgd291bGQgTk9UIGJlIHNhdmVkIGJ1dCBuZWVkIHRvIGJlIHJlbW92ZWQgYnkgIgorInN0YXNoIHNhdmU6IgorbXNnc3RyICIiCisiQ8OhYyB04bqtcCB0aW4gY2jGsGEgxJHGsOG7o2MgdGhlbyBkw7VpIHNhdSDEkcOieSBLSMOUTkcgxJHGsOG7o2MgZ2hpIGzhuqFpIG5oxrBuZyBj4bqnbiDEkcaw4bujYyBn4buhICIKKyJi4buPIGLhu59pIHZp4buHYyBnaGkgbOG6oWkgc3Rhc2g6IgorCisjOiBnaXQtc3Rhc2guc2g6MjcwCittc2dpZCAiIgorIkFib3J0aW5nLiBDb25zaWRlciB1c2luZyBlaXRoZXIgdGhlIC0tZm9yY2Ugb3IgLS1pbmNsdWRlLXVudHJhY2tlZCBvcHRpb24uIgorbXNnc3RyICIiCisiQsOjaSBi4buPLiBDw6JuIG5o4bqvYyBkw7luZyBt4buZdCB0cm9uZyBoYWkgdMO5eSBjaOG7jW4gLS1mb3JjZSB2w6AgLS1pbmNsdWRlLXVudHJhY2tlZC4iCisKKyM6IGdpdC1zdGFzaC5zaDoyNzQKIG1zZ2lkICJDYW5ub3QgaW5pdGlhbGl6ZSBzdGFzaCIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGto4bufaSB04bqhbyBzdGFzaCIKIAotIzogZ2l0LXN0YXNoLnNoOjIzNQorIzogZ2l0LXN0YXNoLnNoOjI3OAogbXNnaWQgIkNhbm5vdCBzYXZlIHRoZSBjdXJyZW50IHN0YXR1cyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGdoaSBs4bqhaSB0cuG6oW5nIHRow6FpIGhp4buHbiBow6BuaCIKIAotIzogZ2l0LXN0YXNoLnNoOjI1MworIzogZ2l0LXN0YXNoLnNoOjI5NgogbXNnaWQgIkNhbm5vdCByZW1vdmUgd29ya3RyZWUgY2hhbmdlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGfhu6EgYuG7jyBjw6FjIHRoYXkgxJHhu5VpIGPDonktbMOgbS12aeG7h2MiCiAKLSM6IGdpdC1zdGFzaC5zaDozNTIKKyM6IGdpdC1zdGFzaC5zaDozOTUKIG1zZ2lkICJObyBzdGFzaCBmb3VuZC4iCiBtc2dzdHIgIktow7RuZyB0w6xtIHRo4bqleSBzdGFzaCBuw6BvLiIKIAotIzogZ2l0LXN0YXNoLnNoOjM1OQorIzogZ2l0LXN0YXNoLnNoOjQwMgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVG9vIG1hbnkgcmV2aXNpb25zIHNwZWNpZmllZDogJFJFViIKLW1zZ3N0ciAiQ2jhu4kgcmEgcXXDoSBuaGnhu4F1IMSRaeG7g20geMOpdCBs4bqhaTogJFJFViIKK21zZ3N0ciAiQ2jhu4kgcmEgcXXDoSBuaGnhu4F1IMSRaeG7g20geMOpdCBkdXnhu4d0OiAkUkVWIgogCi0jOiBnaXQtc3Rhc2guc2g6MzY1CisjOiBnaXQtc3Rhc2guc2g6NDA4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkcmVmZXJlbmNlIGlzIG5vdCB2YWxpZCByZWZlcmVuY2UiCiBtc2dzdHIgIiRyZWZlcmVuY2Uga2jDtG5nIHBo4bqjaSBsw6AgdGhhbSBjaGnhur91IGjhu6NwIGzhu4ciCiAKLSM6IGdpdC1zdGFzaC5zaDozOTMKKyM6IGdpdC1zdGFzaC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2gtbGlrZSBjb21taXQiCiBtc2dzdHIgIuKAnSRhcmdz4oCdIGtow7RuZyBwaOG6o2kgbMOgIGzhuqduIGNodXnhu4NuIGdpYW8gKGNvbW1pdCkgZ2nhu5FuZy1zdGFzaCIKIAotIzogZ2l0LXN0YXNoLnNoOjQwNAorIzogZ2l0LXN0YXNoLnNoOjQ0NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIuKAnSRhcmdz4oCdIGtow7RuZyBwaOG6o2kgdGhhbSBjaGnhur91IMSR4bq/biBzdGFzaCIKIAotIzogZ2l0LXN0YXNoLnNoOjQxMgorIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgogbXNnc3RyICJraMO0bmcgdGjhu4MgbMOgbSB0xrDGoWkgbeG7m2kgYuG6o25nIG3hu6VjIGzhu6VjIgogCi0jOiBnaXQtc3Rhc2guc2g6NDE2CisjOiBnaXQtc3Rhc2guc2g6NDU5CiBtc2dpZCAiQ2Fubm90IGFwcGx5IGEgc3Rhc2ggaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIgogbXNnc3RyICJLaMO0bmcgdGjhu4Mgw6FwIGThu6VuZyBt4buZdCBzdGFzaCDhu58gZ2nhu69hIGPhu6dhIHF1w6EgdHLDrG5oIGjDsmEgdHLhu5luIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI0CisjOiBnaXQtc3Rhc2guc2g6NDY3CiBtc2dpZCAiQ29uZmxpY3RzIGluIGluZGV4LiBUcnkgd2l0aG91dCAtLWluZGV4LiIKIG1zZ3N0ciAiWHVuZyDEkeG7mXQgdHJvbmcgYuG6o25nIG3hu6VjIGzhu6VjLiBIw6N5IHRo4butIG3DoCBraMO0bmcgZMO5bmcgdMO5eSBjaOG7jW4gLS1pbmRleC4iCiAKLSM6IGdpdC1zdGFzaC5zaDo0MjYKKyM6IGdpdC1zdGFzaC5zaDo0NjkKIG1zZ2lkICJDb3VsZCBub3Qgc2F2ZSBpbmRleCB0cmVlIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgZ2hpIGzhuqFpIGPDonkgY2jhu4kgbeG7pWMiCiAKLSM6IGdpdC1zdGFzaC5zaDo0NjAKKyM6IGdpdC1zdGFzaC5zaDo1MDMKIG1zZ2lkICJDYW5ub3QgdW5zdGFnZSBtb2RpZmllZCBmaWxlcyIKIG1zZ3N0ciAiS2jDtG5nIHRo4buDIGLhu48gdHLhuqFuZyB0aMOtYSBj4bunYSBjw6FjIHThuq1wIHRpbiDEkcOjIMSRxrDhu6NjIHPhu61hIGNo4buvYSIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUxOAogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKIG1zZ3N0ciAiQuG6o25nIG3hu6VjIGzhu6VjIMSRw6Mga2jDtG5nIMSRxrDhu6NjIGLhu48gc3Rhc2guIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkyCisjOiBnaXQtc3Rhc2guc2g6NTM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgotbXNnc3RyICLEkMOjIGjhuqEgeHXhu5FuZyAke1JFVn0gKCRzKSIKK21zZ3N0ciAixJDDoyB4w7NhICR7UkVWfSAoJHMpIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkzCisjOiBnaXQtc3Rhc2guc2g6NTM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIke1JFVn06IENvdWxkIG5vdCBkcm9wIHN0YXNoIGVudHJ5IgogbXNnc3RyICIke1JFVn06IEtow7RuZyB0aOG7gyB4w7NhIGLhu48gbeG7pWMgc3Rhc2giCiAKLSM6IGdpdC1zdGFzaC5zaDo1MDAKKyM6IGdpdC1zdGFzaC5zaDo1NDMKIG1zZ2lkICJObyBicmFuY2ggbmFtZSBzcGVjaWZpZWQiCiBtc2dzdHIgIkNoxrBhIGNo4buJIHJhIHTDqm4gY+G7p2EgbmjDoW5oIgogCi0jOiBnaXQtc3Rhc2guc2g6NTcxCisjOiBnaXQtc3Rhc2guc2g6NjE1CiBtc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogbXNnc3RyICIoxJDhu4MgcGjhu6VjIGjhu5NpIGzhuqFpIGNow7puZyBow6N5IGfDtSBcImdpdCBzdGFzaCBhcHBseVwiKSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHN0cmlwIG9uZSBjb21wb25lbnQgb2ZmIHVybCAnJHJlbW90ZXVybCciCiBtc2dzdHIgImtow7RuZyB0aOG7gyB0aMOhbyBi4buPIG3hu5l0IHRow6BuaCBwaOG6p24gcmEga2jhu49pIOKAnCRyZW1vdGV1cmzigJ0gdXJsIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjE5NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyMzcKICMsIHNoLWZvcm1hdAogbXNnaWQgIk5vIHN1Ym1vZHVsZSBtYXBwaW5nIGZvdW5kIGluIC5naXRtb2R1bGVzIGZvciBwYXRoICckc21fcGF0aCciCiBtc2dzdHIgIiIKICJLaMO0bmcgdMOsbSB0aOG6pXkgw6FuaCB44bqhIChtYXBwaW5nKSBtw7QtxJF1bi1jb24gdHJvbmcgLmdpdG1vZHVsZXMgY2hvIMSRxrDhu51uZyBk4bqrbiAiCiAi4oCcJHNtX3BhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MjM5CisjOiBnaXQtc3VibW9kdWxlLnNoOjI4MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2xvbmUgb2YgJyR1cmwnIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyBmYWlsZWQiCiBtc2dzdHIgIk5ow6JuIGLhuqNuIOKAnCR1cmzigJ0gdsOgbyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIGfhurdwIGzhu5dpIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjI1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKIG1zZ3N0ciAiIgogIkdpdGRpciDigJwkYeKAnSBsw6AgYuG7mSBwaOG6rW4gY+G7p2EgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkYuKAnSBob+G6t2MgXCJ2aWNlIHZlcnNhXCIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzQ5CisjOiBnaXQtc3VibW9kdWxlLnNoOjQwMworbXNnaWQgIlJlbGF0aXZlIHBhdGggY2FuIG9ubHkgYmUgdXNlZCBmcm9tIHRoZSB0b3BsZXZlbCBvZiB0aGUgd29ya2luZyB0cmVlIgorbXNnc3RyICIiCisixJDGsOG7nW5nIGThuqtuIHTGsMahbmcgxJHhu5FpIGNo4buJIGPDsyB0aOG7gyBkw7luZyB04burIHRoxrAgbeG7pWMg4bufIG3hu6ljIGNhbyBuaOG6pXQgY+G7p2EgY8OieSBsw6BtICIKKyJ2aeG7h2MiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDEzCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJyZXBvIFVSTDogJyRyZXBvJyBtdXN0IGJlIGFic29sdXRlIG9yIGJlZ2luIHdpdGggLi98Li4vIgogbXNnc3RyICIiCiAicmVwbyBVUkw6IOKAnCRyZXBv4oCdIHBo4bqjaSBsw6AgxJHGsOG7nW5nIGThuqtuIHR1eeG7h3QgxJHhu5FpIGhv4bq3YyBsw6AgYuG6r3QgxJHhuqd1IGLhurFuZyAuL3wuLi8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjQzMAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgaW5kZXgiCiBtc2dzdHIgIuKAnSRzbV9wYXRo4oCdIHRo4buxYyBz4buxIMSRw6MgdOG7k24gdOG6oWkg4bufIGLhuqNuZyBt4bulYyBs4bulYyBy4buTaSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNzAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDM0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGZvbGxvd2luZyBwYXRoIGlzIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKQEAgLTk3ODMsMzYgKzEwMzAyLDM2IEBACiAiJHNtX3BhdGhcbiIKICJT4butIGThu6VuZyAtZiBu4bq/dSBi4bqhbiB0aOG7sWMgc+G7sSBtdeG7kW4gdGjDqm0gbsOzIHbDoG8uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFkZGluZyBleGlzdGluZyByZXBvIGF0ICckc21fcGF0aCcgdG8gdGhlIGluZGV4IgogbXNnc3RyICLEkGFuZyB0aMOqbSByZXBvIGPDsyBz4bq1biB04bqhaSDigJwkc21fcGF0aOKAnSB2w6BvIGLhuqNuZyBt4bulYyBs4bulYyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozOTAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDU0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub3QgYSB2YWxpZCBnaXQgcmVwbyIKIG1zZ3N0ciAi4oCdJHNtX3BhdGjigJ0gxJHDoyB04buTbiB04bqhaSB04burIHRyxrDhu5tjIHbDoCBraMO0bmcgcGjhuqNpIGzDoCBt4buZdCBraG8gZ2l0IGjhu6NwIGzhu4ciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQSBnaXQgZGlyZWN0b3J5IGZvciAnJHNtX25hbWUnIGlzIGZvdW5kIGxvY2FsbHkgd2l0aCByZW1vdGUocyk6IgogbXNnc3RyICIiCiAiVGjGsCBt4bulYyBnaXQgY2hvIOKAnCRzbV9uYW1l4oCdIMSRxrDhu6NjIHTDrG0gdGjhuqV5IG3hu5l0IGPDoWNoIGPhu6VjIGLhu5kgduG7m2kgY8OhYyBtw6F5IGNo4bunOiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgogbXNnc3RyICJO4bq/dSBi4bqhbiBtdeG7kW4gZMO5bmcgbOG6oWkgdGjGsCBt4bulYyBnaXQgbuG7mWkgYuG7mSBuw6B5IHRoYXkgdsOsIG5ow6JuIGLhuqNuIHThu6sgbsOzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJ1c2UgdGhlICctLWZvcmNlJyBvcHRpb24uIElmIHRoZSBsb2NhbCBnaXQgZGlyZWN0b3J5IGlzIG5vdCB0aGUgY29ycmVjdCByZXBvIgogbXNnc3RyICIiCiAiZMO5bmcgdMO5eSBjaOG7jW4g4oCcLS1mb3JjZeKAnS4gTuG6v3UgdGjGsCBt4bulYyBnaXQgbuG7mWkgYuG7mSBraMO0bmcgcGjhuqNpIGzDoCByZXBvIChraG8pIMSRw7puZyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgpAQCAtOTgyMSw3MCArMTAzNDAsNzEgQEAKICJoYXkgYuG6oW4ga2jDtG5nIGNo4bqvYyBjaOG6r24gxJFp4buBdSDEkcOzIGPDsyBuZ2jEqWEgZ8OsIGNo4buNbiB0w6puIGtow6FjIHbhu5tpIHTDuXkgY2jhu41uIOKAnC0tIgogIm5hbWXigJ0uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQwNQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NjkKICMsIHNoLWZvcm1hdAogbXNnaWQgIlJlYWN0aXZhdGluZyBsb2NhbCBnaXQgZGlyZWN0b3J5IGZvciBzdWJtb2R1bGUgJyRzbV9uYW1lJy4iCiBtc2dzdHIgIiIKICJQaOG7pWMgaOG7k2kgc+G7sSBob+G6oXQgxJHhu5luZyBj4bunYSB0aMawIG3hu6VjIGdpdCBu4buZaSBi4buZIGNobyBtw7QtxJF1bi1jb24g4oCcJHNtX25hbWXigJ0uIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQxNworIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiS2jDtG5nIHRo4buDIGNoZWNrb3V0IG3DtC3EkXVuIGNvbiDigJwkc21fcGF0aOKAnSIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGNoZWNrb3V0IG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MjIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDg2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gYWRkIHN1Ym1vZHVsZSAnJHNtX3BhdGgnIgotbXNnc3RyICJH4bq3cCBs4buXaSBraGkgdGjDqm0gbcO0LcSRdW4gY29uIOKAnCRzbV9wYXRo4oCdIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgdGjDqm0gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gduG7m2kgaOG7hyB0aOG7kW5nIG3DtC3EkXVuIGNvbiDigJwkc21fcGF0aOKAnSIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gduG7m2kgaOG7hyB0aOG7kW5nIG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NzQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTM5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAixJBhbmcgbmjhuq1wIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIsSQYW5nIHbDoG8g4oCcJHByZWZpeCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NTU0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdG9wcGluZyBhdCAnJHNtX3BhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKLW1zZ3N0ciAiROG7q25nIGzhuqFpIHThuqFpIOKAnCRzbV9wYXRo4oCdOyBzY3JpcHQgdHLhuqMgduG7gSB0cuG6oW5nIHRow6FpIGtow6FjIGtow7RuZy4iCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgaW4gLmdpdG1vZHVsZXMiCittc2dpZCAiU3RvcHBpbmcgYXQgJyRwcmVmaXgkZGlzcGxheXBhdGgnOyBzY3JpcHQgcmV0dXJuZWQgbm9uLXplcm8gc3RhdHVzLiIKIG1zZ3N0ciAiIgotIktow7RuZyB0w6xtIHRo4bqleSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0gdHJvbmcgLmdpdG1vZHVsZXMiCisiROG7q25nIGzhuqFpIHThuqFpIOKAnCRwcmVmaXgkZGlzcGxheXBhdGjigJ07IHNjcmlwdCB0cuG6oyB24buBIHRy4bqhbmcgdGjDoWkga2jDoWMga2jDtG5nLiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NDEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjAwCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0iCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQzCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICJNw7QtxJF1bi1jb24g4oCcJG5hbWXigJ0gKCR1cmwpIMSRxrDhu6NjIMSRxINuZyBrw70gY2hvIMSRxrDhu51uZyBk4bqrbiDigJwkc21fcGF0aOKAnSIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1NTEKLSMsIHNoLWZvcm1hdAotbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKK21zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIGluIC5naXRtb2R1bGVzIgogbXNnc3RyICIiCi0iR+G6t3AgbOG7l2kga2hpIMSRxINuZyBrw70gY2jhur8gxJHhu5kgY+G6rXAgbmjhuq10IGNobyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRzbV9wYXRo4oCdIgorIktow7RuZyB0w6xtIHRo4bqleSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIHRyb25nIC5naXRtb2R1bGVzIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjU4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MDkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cmwgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSB1cmwgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMQorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIk3DtC3EkXVuLWNvbiDigJwkbmFtZeKAnSAoJHVybCkgxJHGsOG7o2MgxJHEg25nIGvDvSBjaG8gxJHGsOG7nW5nIGThuqtuIOKAnCRkaXNwbGF5cGF0aOKAnSIKKworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTkKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciB1cGRhdGUgbW9kZSBmb3Igc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIiIKKyJH4bq3cCBs4buXaSBraGkgxJHEg25nIGvDvSBjaOG6vyDEkeG7mSBj4bqtcCBuaOG6rXQgY2hvIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjY1NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiVXNlICcuJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gZGVpbml0aWFsaXplIGFsbCBzdWJtb2R1bGVzIgotbXNnc3RyICJEw7luZyAnLicgbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIGfhu6EgYuG7jyBt4buNaSBtw7QtxJF1bi1jb24iCittc2dzdHIgIkTDuW5nIOKAnC7igJ0gbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIGfhu6EgYuG7jyBt4buNaSBtw7QtxJF1bi1jb24iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjAzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY3MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIGNvbnRhaW5zIGEgLmdpdCBkaXJlY3RvcnkiCi1tc2dzdHIgIkPDonkgbMOgbSB2aeG7h2MgbcO0LcSRdW4tY29uICckc21fcGF0aCcgY8OzIGNo4bupYSB0aMawIG3hu6VjIC5naXQiCittc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgorbXNnc3RyICJDw6J5IGzDoG0gdmnhu4djIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0gY8OzIGNo4bupYSB0aMawIG3hu6VjIC5naXQiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjY3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyBoaXN0b3J5KSIKQEAgLTk4OTIsMTQ3ICsxMDQxMiwyMTggQEAKICIoZMO5bmcg4oCccm0gLXJm4oCdIG7hur91IGLhuqFuIHRo4buxYyBz4buxIG114buRbiBn4buhIGLhu48gbsOzIGPDuW5nIHbhu5tpIHThuqV0IGPhuqMgbOG7i2NoIHPhu60gY+G7p2EgIgogImNow7puZykiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgogbXNnc3RyICIiCi0iQ8OieSBsw6BtIHZp4buHYyBtw7QtxJF1bi1jb24gJyRzbV9wYXRoJyBjaOG7qWEgY8OhYyB0aGF5IMSR4buVaSBu4buZaSBi4buZOyBow6N5IGTDuW5nICctZicgIgotIsSR4buDIGxv4bqhaSBi4buPIGNow7puZyDEkWkiCisiQ8OieSBsw6BtIHZp4buHYyBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIGNo4bupYSBjw6FjIHRoYXkgxJHhu5VpIG7hu5lpIGLhu5k7IGjDo3kgZMO5bmcg4oCcLSIKKyJm4oCdIMSR4buDIGxv4bqhaSBi4buPIGNow7puZyDEkWkiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAiVGjGsCBt4bulYyDEkcaw4bujYyBk4buNbiDigJwkc21fcGF0aOKAnSIKK21zZ2lkICJDbGVhcmVkIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAixJDDoyB04bqhbyB0aMawIG3hu6VjICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYxNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2ODQKICMsIHNoLWZvcm1hdAotbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJHNtX3BhdGgnIgotbXNnc3RyICJLaMO0bmcgdGjhu4MgZ+G7oSBi4buPIGPDonkgbMOgbSB2aeG7h2MgbcO0LcSRdW4gY29uIOKAnCRzbV9wYXRo4oCdIgorbXNnaWQgIkNvdWxkIG5vdCByZW1vdmUgc3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGfhu6EgYuG7jyBjw6J5IGzDoG0gdmnhu4djIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE3CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICckc21fcGF0aCciCi1tc2dzdHIgIktow7RuZyB0aOG7gyB04bqhbyB0aMawIG3hu6VjIG3DtC3EkXVuLWNvbiBy4buXbmcg4oCcJHNtX3BhdGjigJ0iCittc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgdOG6oW8gdGjGsCBt4bulYyBtw7QtxJF1bi1jb24gcuG7l25nIOKAnCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njk2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckc21fcGF0aCciCi1tc2dzdHIgIk3DtC3EkXVuLWNvbiDigJwkbmFtZeKAnSAoJHVybCkgxJHGsOG7o2MgYuG7jyDEkcSDbmcga8O9IGNobyDEkcaw4budbmcgZOG6q24g4oCcJHNtX3BhdGjigJ0iCittc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHVucmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiTcO0LcSRdW4tY29uIOKAnCRuYW1l4oCdICgkdXJsKSDEkcaw4bujYyBi4buPIMSRxINuZyBrw70gY2hvIMSRxrDhu51uZyBk4bqrbiDigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjgxMQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIG5vdCBpbml0aWFsaXplZFxuIgorIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIG5vdCBpbml0aWFsaXplZFxuIgogIk1heWJlIHlvdSB3YW50IHRvIHVzZSAndXBkYXRlIC0taW5pdCc/IgogbXNnc3RyICIiCi0ixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ0gY2jGsGEgxJHGsOG7o2Mga2jhu59pIHThuqFvXG4iCisixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0gY2jGsGEgxJHGsOG7o2Mga2jhu59pIHThuqFvLlxuIgogIkPDsyBs4bq9IGLhuqFuIG114buRbiBz4butIGThu6VuZyBs4buHbmgg4oCcdXBkYXRlIC0taW5pdOKAnT8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjOiBnaXQtc3VibW9kdWxlLnNoOjgyNAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCi0iS2jDtG5nIHTDrG0gdGjhuqV5IMSRaeG7g20geMOpdCBs4bqhaSBoaeG7h24gaMOgbmggdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4IgotIiRzbV9wYXRo4oCdIgorIktow7RuZyB0w6xtIHRo4bqleSDEkWnhu4NtIHjDqXQgZHV54buHdCBoaeG7h24gaMOgbmggdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiAiCisi4oCcJGRpc3BsYXlwYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICJLaMO0bmcgdGjhu4MgbOG6pXkgduG7gSAoZmV0Y2gpIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHNtX3BhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzc3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg1NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICJLaMO0bmcgdGjhu4MgbOG6pXkgduG7gSAoZmV0Y2gpIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgorbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiS2jDtG5nIHRo4buDIGzhuqV5IHbhu4EgKGZldGNoKSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcxCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIktow7RuZyB0aOG7gyByZWJhc2Ug4oCcJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ0iCittc2dpZCAiVW5hYmxlIHRvIHJlYmFzZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgcmViYXNlIOKAnCRzaGEx4oCdIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5MgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzIKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKLW1zZ3N0ciAixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ06IMSRxrDhu6NjIHJlYmFzZSB2w6BvIHRyb25nIOKAnCRzaGEx4oCdIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKK21zZ3N0ciAixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ06IMSRxrDhu6NjIHJlYmFzZSB2w6BvIHRyb25nIOKAnCRzaGEx4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5NworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzcKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byBtZXJnZSAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgogbXNnc3RyICIiCi0iS2jDtG5nIHRo4buDIGjDsmEgdHLhu5luIChtZXJnZSkg4oCcJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4IgotIiRzbV9wYXRo4oCdIgorIktow7RuZyB0aOG7gyBow7JhIHRy4buZbiAobWVyZ2UpIOKAnCRzaGEx4oCdIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc5OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo4NzgKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiBtZXJnZWQgaW4gJyRzaGExJyIKLW1zZ3N0ciAixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ06IMSRxrDhu6NjIGjDsmEgdHLhu5luIHbDoG8g4oCcJHNoYTHigJ0iCittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgorbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRkaXNwbGF5cGF0aOKAnTogxJHGsOG7o2MgaMOyYSB0cuG7mW4gdsOgbyDigJwkc2hhMeKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODgzCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgJyRzaGExJyBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICIiCisiRXhlY3V0aW9uIG9mICckY29tbWFuZCAkc2hhMScgZmFpbGVkIGluIHN1Ym1vZHVsZSAgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKIG1zZ3N0ciAiIgotIktow7RuZyB0aOG7gyBjaGVja291dCDigJwkc2hhMeKAnSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKKyJUaOG7sWMgaGnhu4duIGtow7RuZyB0aMOgbmggY8O0bmcgbOG7h25oIOKAnCRjb21tYW5kICRzaGEx4oCdIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24gIgorIuKAnCRwcmVmaXgkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MDQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogY2hlY2tlZCBvdXQgJyRzaGExJyIKLW1zZ3N0ciAixJDGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkcHJlZml4JHNtX3BhdGjigJ06IMSRxrDhu6NjIGNoZWNrb3V0IOKAnCRzaGEx4oCdIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgorbXNnc3RyICLEkMaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnTog4oCcJGNvbW1hbmQgJHNoYTHigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSR4buHIHF1eSB2w6BvIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJHByZWZpeCRzbV9wYXRo4oCdIgorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJLaMO0bmcgdGjhu4MgY2hlY2tvdXQg4oCcJHNoYTHigJ0gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkZGlzcGxheXBhdGjigJ0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTM5CisjOiBnaXQtc3VibW9kdWxlLnNoOjg5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IGNoZWNrZWQgb3V0ICckc2hhMSciCittc2dzdHIgIsSQxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdOiDEkcOjIGNoZWNrb3V0IOKAnCRzaGEx4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkxNworIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAiR+G6t3AgbOG7l2kga2hpIMSR4buHIHF1eSB2w6BvIHRyb25nIMSRxrDhu51uZyBk4bqrbiBtw7QtxJF1bi1jb24g4oCcJGRpc3BsYXlwYXRo4oCdIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMjUKIG1zZ2lkICJUaGUgLS1jYWNoZWQgb3B0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIC0tZmlsZXMgb3B0aW9uIgogbXNnc3RyICJUw7l5IGNo4buNbiAtLWNhY2hlZCBraMO0bmcgdGjhu4MgZMO5bmcgY8O5bmcgduG7m2kgdMO5eSBjaOG7jW4gLS1maWxlcyIKIAogIy4gdW5leHBlY3RlZCB0eXBlCi0jOiBnaXQtc3VibW9kdWxlLnNoOjk3OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJ1bmV4cGVjdGVkIG1vZGUgJG1vZF9kc3QiCiBtc2dzdHIgImNo4bq/IMSR4buZIGtow7RuZyBuaMawIG1vbmcgY2jhu50gJG1vZF9kc3QiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODYKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCi1tc2dzdHIgIiAgQ+G6o25oIGLDoW86ICRuYW1lIGtow7RuZyBjaOG7qWEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAkc2hhMV9zcmMiCi0KLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMAotIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX2RzdCIKLW1zZ3N0ciAiICBD4bqjbmggYsOhbzogJG5hbWUga2jDtG5nIGNo4bupYSBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX2RzdCIKLQotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDAzCi0jLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnaWQgIiAgV2FybjogJGRpc3BsYXlfbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0ICRzaGExX3NyYyIKIG1zZ3N0ciAiIgotIiAgQ+G6o25oIGLDoW86ICRuYW1lIGtow7RuZyBjaOG7qWEgbmjhu69uZyBs4bqnbiBjaHV54buDbiBnaWFvIChjb21taXQpICRzaGExX3NyYyB2w6AgIgotIiRzaGExX2RzdCIKKyIgIEPhuqNuaCBiw6FvOiAkZGlzcGxheV9uYW1lIGtow7RuZyBjaOG7qWEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAkc2hhMV9zcmMiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAyOAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CisjLCBzaC1mb3JtYXQKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9kc3QiCittc2dzdHIgIiIKKyIgIEPhuqNuaCBiw6FvOiAkZGlzcGxheV9uYW1lIGtow7RuZyBjaOG7qWEgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAkc2hhMV9kc3QiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MgorIywgc2gtZm9ybWF0Cittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnc3RyICIiCisiICBD4bqjbmggYsOhbzogJGRpc3BsYXlfbmFtZSBraMO0bmcgY2jhu6lhIG5o4buvbmcgbOG6p24gY2h1eeG7g24gZ2lhbyAoY29tbWl0KSAiCisiJHNoYTFfc3JjIHbDoCAkc2hhMV9kc3QiCisKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNwogbXNnaWQgImJsb2IiCiBtc2dzdHIgImJsb2IiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTA2NgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTU1CiBtc2dpZCAiU3VibW9kdWxlcyBjaGFuZ2VkIGJ1dCBub3QgdXBkYXRlZDoiCiBtc2dzdHIgIk5o4buvbmcgbcO0LcSRdW4tY29uIMSRw6MgYuG7iyB0aGF5IMSR4buVaSBuaMawbmcgY2jGsGEgxJHGsOG7o2MgY+G6rXAgbmjhuq10OiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY4CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTcKIG1zZ2lkICJTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICJOaOG7r25nIG3DtC3EkXVuLWNvbiB0aGF5IMSR4buVaSDEkcOjIMSRxrDhu6NjIGNodXnhu4NuIGdpYW8gKGNvbW1pdCk6IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjExNTMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTI0MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICJH4bq3cCBs4buXaSBraGkgxJHhu4cgcXV5IHbDoG8gdHJvbmcgxJHGsOG7nW5nIGThuqtuIG3DtC3EkXVuLWNvbiDigJwkc21fcGF0aOKAnSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMjE2CisjOiBnaXQtc3VibW9kdWxlLnNoOjEzMDYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN5bmNocm9uaXppbmcgc3VibW9kdWxlIHVybCBmb3IgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIlVybCBNw7QtxJF1bi1jb24gxJHhu5NuZyBi4buZIGjDs2EgY2hvIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKK21zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckZGlzcGxheXBhdGgnIgorbXNnc3RyICJVcmwgTcO0LcSRdW4tY29uIMSR4buTbmcgYuG7mSBow7NhIGNobyDigJwkZGlzcGxheXBhdGjigJ0iCisKKyN+IG1zZ2lkICIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIgorI34gbXNnc3RyICIgIChz4butYSBjw6FjIHh1bmcgxJHhu5l0IHbDoCBzYXUgxJHDsyBjaOG6oXkgbOG7h25oIFwiZ2l0IGFtIC0tcmVzb2x2ZWRcIikiCisKKyN+IG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgorI34gbXNnc3RyICIgIChraGkgdOG6pXQgY+G6oyBjw6FjIHh1bmcgxJHhu5l0IMSRw6Mgc+G7rWEgeG9uZzogY2jhuqF5IGzhu4duaCBcImdpdCBjb21taXRcIikiCisKKyN+IG1zZ2lkICJtb3JlIHRoYW4gJWQgdHJlZXMgZ2l2ZW46ICclcyciCisjfiBtc2dzdHIgIsSRw6MgY2jhu4kgcmEgbmhp4buBdSBoxqFuICVkIGPDonkgKHRyZWUpOiDigJwlc+KAnSIKKworI34gbXNnaWQgIllvdSBjYW5ub3QgY29tYmluZSAtLW5vLWZmIHdpdGggLS1mZi1vbmx5LiIKKyN+IG1zZ3N0ciAiQuG6oW4ga2jDtG5nIHRo4buDIGvhur90IGjhu6NwIC0tbm8tZmYgduG7m2kgLS1mZi1vbmx5LiIKKworI34gbXNnaWQgIiIKKyN+ICJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisjfiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzICIKKyN+ICJoaXN0b3J5KSIKKyN+IG1zZ3N0ciAiIgorI34gIm3DtC3EkXVuLWNvbiDigJwlc+KAnSAoaG/hurdjIGPDoWkgbuG6sW0gdHJvbmcgY8OhYyBtw7QtxJF1bi1jb24pIGTDuW5nIHRoxrAgbeG7pWMgLmdpdFxuIgorI34gIihkw7luZyDigJxybSAtcmbigJ0gbuG6v3UgYuG6oW4gdGjhu7FjIHPhu7EgbXXhu5FuIGfhu6EgYuG7jyBuw7MgY8O5bmcgduG7m2kgdOG6pXQgY+G6oyBs4buLY2ggc+G7rSBj4bunYSAiCisjfiAiY2jDum5nKSIKKworI34gbXNnaWQgIiIKKyN+ICInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyN+ICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgorI34gbXNnc3RyICIiCisjfiAi4oCcJXPigJ0gY8OzIGPDoWMgdGhheSDEkeG7lWkgxJHGsOG7o2MgbMawdSB0cuG6oW5nIHRow6FpIHRyb25nIGLhuqNuZyBt4bulYyBs4bulY1xuIgorI34gIihkw7luZyB0w7l5IGNo4buNbiAtLWNhY2hlZCDEkeG7gyBnaeG7ryB04bqtcCB0aW4sIGhv4bq3YyAtZiDEkeG7gyDDqXAgYnXhu5ljIGfhu6EgYuG7jykiCisKKyN+IG1zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCisjfiBtc2dzdHIgImhp4buDbiB0aOG7iyBjw6FjIGzhuqduIGNodXnhu4NuIGdpYW8gbsahaSBtw6AgY2hhIG3hurkgxJHhur9uIHRyxrDhu5tjIGNvbiBj4bunYSBuw7MiCisKKyN+IG1zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSIKKyN+IG1zZ3N0ciAiaGnhu4NuIHRo4buLIHRoYW0gY2hp4bq/dSBj4bunYSBIRUFEIgorCisjfiBtc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgorI34gbXNnc3RyICIiCisjfiAiS2jDtG5nIHRo4buDIGzhuqV5IHbhu4EgKGZldGNoKSB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKKworI34gbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIkfhurdwIGzhu5dpIGtoaSDEkeG7hyBxdXkgdsOgbyB0cm9uZyDEkcaw4budbmcgZOG6q24gbcO0LcSRdW4tY29uIOKAnCRwcmVmaXgkc21fcGF0aOKAnSIKKworI34gbXNnaWQgIkl0IHRvb2sgJS4yZiBzZWNvbmRzIHRvIGVudW1lcmF0ZSB1bnRyYWNrZWQgZmlsZXMuICAnc3RhdHVzIC11bm8nIgorI34gbXNnc3RyICJD4bqnbiAlLjJmIGdpw6J5IMSR4buDIMSR4bq/bSBjw6FjIHThuq1wIHRpbiBjaMawYSDEkcaw4bujYyB0aGVvIHbhur90LiAg4oCcc3RhdHVzIC11bm/igJ0iCisKKyN+IG1zZ2lkICJtYXkgc3BlZWQgaXQgdXAsIGJ1dCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byBmb3JnZXQgdG8gYWRkIgorI34gbXNnc3RyICIiCisjfiAiY8OzIHRo4buDIGzDoG0gbsOzIG5oYW5oIGzDqm4sIG5oxrBuZyBi4bqhbiBwaOG6o2kgY+G6qW4gdHLhu41uZyDEkeG7q25nIHF1w6puIHRow6ptIG7DsyB2w6BvIgorCisjfiBtc2dpZCAibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKKyN+IG1zZ3N0ciAidOG6rXAgdGluIG3hu5tpIGPhu6dhIGNow61uaCBi4bqhbiAoeGVtIOKAnGdpdCBoZWxwIHN0YXR1c+KAnS4uIgorCisjfiBtc2dpZCAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgorI34gbXNnc3RyICJnaXQgc2hvcnRsb2cgWy1uXSBbLXNdIFstZV0gWy13XSBbcmV2LW9wdHNdIFstLV0gWzxjb21taXQtaWQ+Li4uIF0iCisKKyN+IG1zZ2lkICJTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYSBzcGVjaWZpYyBjb21tYW5kLiIKKyN+IG1zZ3N0ciAiIgorI34gIkNo4bqheSBs4buHbmgg4oCcZ2l0IGhlbHAgPHTDqm4tbOG7h25oPuKAnSDEkeG7gyBjw7MgdGjDqm0gdGjDtG5nIHRpbiB24buBIGzhu4duaCDEkcaw4bujYyBjaOG7iSByYS4iCiAKICN+IG1zZ2lkICJ1c2UgYW55IHJlZiBpbiAuZ2l0L3JlZnMiCiAjfiBtc2dzdHIgInPhu60gZOG7pW5nIGLhuqV0IGvhu7MgcmVmIG7DoG8gdHJvbmcgLmdpdC9yZWZzIgpkaWZmIC0tZ2l0IGEvcG8vemhfQ04ucG8gYi9wby96aF9DTi5wbwppbmRleCA5YTEzZGVmLi5iN2I0NmYxIDEwMDY0NAotLS0gYS9wby96aF9DTi5wbworKysgYi9wby96aF9DTi5wbwpAQCAtMTIsOCArMTIsOCBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBHaXRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogR2l0IE1haWxpbmcgTGlzdCA8Z2l0QHZnZXIua2VybmVsLm9yZz5cbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMy0wNC0xMCAxNToxNiswODAwXG4iCi0iUE8tUmV2aXNpb24tRGF0ZTogMjAxMy0wNC0xMiAwOToyMyswODAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMTMtMDgtMDYgMTQ6MTArMDgwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6IDIwMTMtMDgtMDYgMTQ6NDUrMDgwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogSmlhbmcgWGluIDx3b3JsZGhlbGxvLm5ldEBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogR2l0SHViIDxodHRwczovL2dpdGh1Yi5jb20vZ290Z2l0L2dpdC8+XG4iCiAiTGFuZ3VhZ2U6IHpoX0NOXG4iCkBAIC0yMiw3ICsyMiw3IEBACiAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgogCi0jOiBhZHZpY2UuYzo1MworIzogYWR2aWNlLmM6NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiaGludDogJS4qc1xuIgogbXNnc3RyICLmj5DnpLrvvJolLipzXG4iCkBAIC0zMSw3ICszMSw3IEBACiAjLiAqIE1lc3NhZ2UgdXNlZCBib3RoIHdoZW4gJ2dpdCBjb21taXQnIGZhaWxzIGFuZCB3aGVuCiAjLiAqIG90aGVyIGNvbW1hbmRzIGRvaW5nIGEgbWVyZ2UgZG8uCiAjLgotIzogYWR2aWNlLmM6ODMKKyM6IGFkdmljZS5jOjg3CiBtc2dpZCAiIgogIkZpeCB0aGVtIHVwIGluIHRoZSB3b3JrIHRyZWUsXG4iCiAiYW5kIHRoZW4gdXNlICdnaXQgYWRkL3JtIDxmaWxlPicgYXNcbiIKQEAgLTY4LDcgKzY4LDcgQEAKIG1zZ2lkICJhcmNoaXZlIGZvcm1hdCIKIG1zZ3N0ciAi5b2S5qGj5qC85byPIgogCi0jOiBhcmNoaXZlLmM6MzI0IGJ1aWx0aW4vbG9nLmM6MTExNworIzogYXJjaGl2ZS5jOjMyNCBidWlsdGluL2xvZy5jOjExNzMKIG1zZ2lkICJwcmVmaXgiCiBtc2dzdHIgIuWJjee8gCIKIApAQCAtNzYsMTEgKzc2LDExIEBACiBtc2dpZCAicHJlcGVuZCBwcmVmaXggdG8gZWFjaCBwYXRobmFtZSBpbiB0aGUgYXJjaGl2ZSIKIG1zZ3N0ciAi5Li65b2S5qGj5Lit5q+P5Liq6Lev5b6E5ZCN5Yqg5LiK5YmN57yAIgogCi0jOiBhcmNoaXZlLmM6MzI2IGJ1aWx0aW4vYXJjaGl2ZS5jOjg4IGJ1aWx0aW4vYmxhbWUuYzoyMzY2Ci0jOiBidWlsdGluL2JsYW1lLmM6MjM2NyBidWlsdGluL2NvbmZpZy5jOjU1IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTkKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjEgYnVpbHRpbi9ncmVwLmM6NzE1IGJ1aWx0aW4vaGFzaC1vYmplY3QuYzo3NwotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5NyBidWlsdGluL2xzLWZpbGVzLmM6NTAwIGJ1aWx0aW4vbm90ZXMuYzo1MzYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OTMgYnVpbHRpbi9yZWFkLXRyZWUuYzoxMDcgcGFyc2Utb3B0aW9ucy5oOjE0OQorIzogYXJjaGl2ZS5jOjMyNiBidWlsdGluL2FyY2hpdmUuYzo4OCBidWlsdGluL2JsYW1lLmM6MjI5MgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTMgYnVpbHRpbi9jb25maWcuYzo1NiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjczCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc1IGJ1aWx0aW4vZ3JlcC5jOjcxNCBidWlsdGluL2hhc2gtb2JqZWN0LmM6NzcKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTYgYnVpbHRpbi9scy1maWxlcy5jOjQ5OSBidWlsdGluL25vdGVzLmM6NDA4CisjOiBidWlsdGluL25vdGVzLmM6NTY1IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4IHBhcnNlLW9wdGlvbnMuaDoxNTIKIG1zZ2lkICJmaWxlIgogbXNnc3RyICLmlofku7YiCiAKQEAgLTExMiw3ICsxMTIsNyBAQAogbXNnaWQgImxpc3Qgc3VwcG9ydGVkIGFyY2hpdmUgZm9ybWF0cyIKIG1zZ3N0ciAi5YiX5Ye65pSv5oyB55qE5b2S5qGj5qC85byPIgogCi0jOiBhcmNoaXZlLmM6MzQ1IGJ1aWx0aW4vYXJjaGl2ZS5jOjkwIGJ1aWx0aW4vY2xvbmUuYzo4NgorIzogYXJjaGl2ZS5jOjM0NSBidWlsdGluL2FyY2hpdmUuYzo5MCBidWlsdGluL2Nsb25lLmM6ODUKIG1zZ2lkICJyZXBvIgogbXNnc3RyICLniYjmnKzlupMiCiAKQEAgLTEyMCw3ICsxMjAsNyBAQAogbXNnaWQgInJldHJpZXZlIHRoZSBhcmNoaXZlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgPHJlcG8+IgogbXNnc3RyICLku47ov5znqIvniYjmnKzlupPvvIg854mI5pys5bqTPu+8ieaPkOWPluW9kuaho+aWh+S7tiIKIAotIzogYXJjaGl2ZS5jOjM0NyBidWlsdGluL2FyY2hpdmUuYzo5MiBidWlsdGluL25vdGVzLmM6NjE1CisjOiBhcmNoaXZlLmM6MzQ3IGJ1aWx0aW4vYXJjaGl2ZS5jOjkyIGJ1aWx0aW4vbm90ZXMuYzo0ODcKIG1zZ2lkICJjb21tYW5kIgogbXNnc3RyICLlkb3ku6QiCiAKQEAgLTEzNiwxNyArMTM2LDg2IEBACiAi6LSf5YC85qih54mI5ZyoIGdpdCBhdHRyaWJ1dGVzIOS4reiiq+W/veeVpVxuIgogIuW9k+Wtl+espuS4suehruWunuimgeS7peaEn+WPueWPt+W8gOWni+aXtu+8jOS9v+eUqCAnXFwhJ+OAgiIKIAotIzogYnJhbmNoLmM6MjAxCisjOiBicmFuY2guYzo2MAorIywgYy1mb3JtYXQKK21zZ2lkICJOb3Qgc2V0dGluZyBicmFuY2ggJXMgYXMgaXRzIG93biB1cHN0cmVhbS4iCittc2dzdHIgIuacquiuvue9ruWIhuaUryAlcyDkvZzkuLrlroPoh6rlt7HnmoTkuIrmuLjjgIIiCisKKyM6IGJyYW5jaC5jOjgyCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAi5YiG5pSvICUxJHMg6K6+572u5Li65L2/55So5Y+Y5Z+65p2l6Lef6Liq5p2l6IeqICUzJHMg55qE6L+c56iL5YiG5pSvICUyJHPjgIIiCisKKyM6IGJyYW5jaC5jOjgzCisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgcmVtb3RlIGJyYW5jaCAlcyBmcm9tICVzLiIKK21zZ3N0ciAi5YiG5pSvICUxJHMg6K6+572u5Li66Lef6Liq5p2l6IeqICUzJHMg55qE6L+c56iL5YiG5pSvICUyJHPjgIIiCisKKyM6IGJyYW5jaC5jOjg3CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgYnJhbmNoICVzIGJ5IHJlYmFzaW5nLiIKK21zZ3N0ciAi5YiG5pSvICVzIOiuvue9ruS4uuS9v+eUqOWPmOWfuuadpei3n+i4quacrOWcsOWIhuaUryAlc+OAgiIKKworIzogYnJhbmNoLmM6ODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJhbmNoICVzIHNldCB1cCB0byB0cmFjayBsb2NhbCBicmFuY2ggJXMuIgorbXNnc3RyICLliIbmlK8gJXMg6K6+572u5Li66Lef6Liq5pys5Zyw5YiG5pSvICVz44CCIgorCisjOiBicmFuY2guYzo5MgorIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSByZWYgJXMgYnkgcmViYXNpbmcuIgorbXNnc3RyICLliIbmlK8gJXMg6K6+572u5Li65L2/55So5Y+Y5Z+65p2l6Lef6Liq6L+c56iL5byV55SoICVz44CCIgorCisjOiBicmFuY2guYzo5MworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIHJlbW90ZSByZWYgJXMuIgorbXNnc3RyICLliIbmlK8gJXMg6K6+572u5Li66Lef6Liq6L+c56iL5byV55SoICVz44CCIgorCisjOiBicmFuY2guYzo5NworIywgYy1mb3JtYXQKK21zZ2lkICJCcmFuY2ggJXMgc2V0IHVwIHRvIHRyYWNrIGxvY2FsIHJlZiAlcyBieSByZWJhc2luZy4iCittc2dzdHIgIuWIhuaUryAlcyDorr7nva7kuLrkvb/nlKjlj5jln7rmnaXot5/ouKrmnKzlnLDlvJXnlKggJXPjgIIiCisKKyM6IGJyYW5jaC5jOjk4CisjLCBjLWZvcm1hdAorbXNnaWQgIkJyYW5jaCAlcyBzZXQgdXAgdG8gdHJhY2sgbG9jYWwgcmVmICVzLiIKK21zZ3N0ciAi5YiG5pSvICVzIOiuvue9ruS4uui3n+i4quacrOWcsOW8leeUqCAlc+OAgiIKKworIzogYnJhbmNoLmM6MTE4CisjLCBjLWZvcm1hdAorbXNnaWQgIlRyYWNraW5nIG5vdCBzZXQgdXA6IG5hbWUgdG9vIGxvbmc6ICVzIgorbXNnc3RyICLot5/ouKrmnKrorr7nva7vvJrlkI3lrZflpKrplb/vvJolcyIKKworIzogYnJhbmNoLmM6MTM3CisjLCBjLWZvcm1hdAorbXNnaWQgIk5vdCB0cmFja2luZzogYW1iaWd1b3VzIGluZm9ybWF0aW9uIGZvciByZWYgJXMiCittc2dzdHIgIuacqui3n+i4qu+8muW8leeUqCAlcyDmnInmrafkuYkiCisKKyM6IGJyYW5jaC5jOjE4MgorIywgYy1mb3JtYXQKK21zZ2lkICInJXMnIGlzIG5vdCBhIHZhbGlkIGJyYW5jaCBuYW1lLiIKK21zZ3N0ciAiJyVzJyDkuI3mmK/kuIDkuKrmnInmlYjnmoTliIbmlK/lkI3np7DjgIIiCisKKyM6IGJyYW5jaC5jOjE4NworIywgYy1mb3JtYXQKK21zZ2lkICJBIGJyYW5jaCBuYW1lZCAnJXMnIGFscmVhZHkgZXhpc3RzLiIKK21zZ3N0ciAi5LiA5Liq5YiG5pSv5ZCNICclcycg5bey57uP5a2Y5Zyo44CCIgorCisjOiBicmFuY2guYzoxOTUKK21zZ2lkICJDYW5ub3QgZm9yY2UgdXBkYXRlIHRoZSBjdXJyZW50IGJyYW5jaC4iCittc2dzdHIgIuaXoOazleW8uuWItuabtOaWsOW9k+WJjeWIhuaUr+OAgiIKKworIzogYnJhbmNoLmM6MjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBzZXR1cCB0cmFja2luZyBpbmZvcm1hdGlvbjsgc3RhcnRpbmcgcG9pbnQgJyVzJyBpcyBub3QgYSBicmFuY2guIgogbXNnc3RyICLml6Dms5Xorr7nva7ot5/ouKrkv6Hmga/vvJvotbflp4vngrkgJyVzJyDkuI3mmK/kuIDkuKrliIbmlK/jgIIiCiAKLSM6IGJyYW5jaC5jOjIwMworIzogYnJhbmNoLmM6MjE4CiAjLCBjLWZvcm1hdAogbXNnaWQgInRoZSByZXF1ZXN0ZWQgdXBzdHJlYW0gYnJhbmNoICclcycgZG9lcyBub3QgZXhpc3QiCiBtc2dzdHIgIuivt+axgueahOS4iua4uOWIhuaUryAnJXMnIOS4jeWtmOWcqCIKIAotIzogYnJhbmNoLmM6MjA1CisjOiBicmFuY2guYzoyMjAKIG1zZ2lkICIiCiAiXG4iCiAiSWYgeW91IGFyZSBwbGFubmluZyBvbiBiYXNpbmcgeW91ciB3b3JrIG9uIGFuIHVwc3RyZWFtXG4iCkBAIC0xNjQsNiArMjMzLDI5IEBACiAi5aaC5p6c5oKo5q2j6K6h5YiS5o6o6YCB5LiA5Liq6IO95LiO5a+55bqU6L+c56iL5YiG5pSv5bu656uL6Lef6Liq55qE5paw55qE5pys5Zyw5YiG5pSv77yMXG4iCiAi5oKo5Y+v6IO96ZyA6KaB5L2/55SoIFwiZ2l0IHB1c2ggLXVcIiDmjqjpgIHliIbmlK/lubbphY3nva7lkozkuIrmuLjnmoTlhbPogZTjgIIiCiAKKyM6IGJyYW5jaC5jOjI2NQorIywgYy1mb3JtYXQKK21zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZTogJyVzJy4iCittc2dzdHIgIuS4jeaYr+S4gOS4quacieaViOeahOWvueixoeWQje+8miclcyfjgIIiCisKKyM6IGJyYW5jaC5jOjI4NQorIywgYy1mb3JtYXQKK21zZ2lkICJBbWJpZ3VvdXMgb2JqZWN0IG5hbWU6ICclcycuIgorbXNnc3RyICLmrafkuYnnmoTlr7nosaHlkI3vvJonJXMn44CCIgorCisjOiBicmFuY2guYzoyOTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiTm90IGEgdmFsaWQgYnJhbmNoIHBvaW50OiAnJXMnLiIKK21zZ3N0ciAi5peg5pWI55qE5YiG5pSv54K577yaJyVzJ+OAgiIKKworIzogYnJhbmNoLmM6Mjk2Cittc2dpZCAiRmFpbGVkIHRvIGxvY2sgcmVmIGZvciB1cGRhdGUiCittc2dzdHIgIuaXoOazleS4uuabtOaWsOmUgeWumuW8leeUqCIKKworIzogYnJhbmNoLmM6MzE0Cittc2dpZCAiRmFpbGVkIHRvIHdyaXRlIHJlZiIKK21zZ3N0ciAi5LiN6IO95YaZ5byV55SoIgorCiAjOiBidW5kbGUuYzozNgogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGRvZXMgbm90IGxvb2sgbGlrZSBhIHYyIGJ1bmRsZSBmaWxlIgpAQCAtMTc0LDcgKzI2Niw3IEBACiBtc2dpZCAidW5yZWNvZ25pemVkIGhlYWRlcjogJXMlcyAoJWQpIgogbXNnc3RyICLmnKrog73or4bliKvnmoTljIXlpLTvvJolcyVzICglZCkiCiAKLSM6IGJ1bmRsZS5jOjg5IGJ1aWx0aW4vY29tbWl0LmM6Njc2CisjOiBidW5kbGUuYzo4OSBidWlsdGluL2NvbW1pdC5jOjY5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIgogbXNnc3RyICLkuI3og73miZPlvIAgJyVzJyIKQEAgLTE4Myw5ICsyNzUsOSBAQAogbXNnaWQgIlJlcG9zaXRvcnkgbGFja3MgdGhlc2UgcHJlcmVxdWlzaXRlIGNvbW1pdHM6IgogbXNnc3RyICLniYjmnKzlupPnvLrlsJHov5nkupvlv4XlpIfnmoTmj5DkuqTvvJoiCiAKLSM6IGJ1bmRsZS5jOjE2NCBzZXF1ZW5jZXIuYzo2NTEgc2VxdWVuY2VyLmM6MTA4MyBidWlsdGluL2xvZy5jOjMwMAotIzogYnVpbHRpbi9sb2cuYzo3NTQgYnVpbHRpbi9sb2cuYzoxMzUwIGJ1aWx0aW4vbG9nLmM6MTU2NiBidWlsdGluL21lcmdlLmM6MzQ5Ci0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTU3CisjOiBidW5kbGUuYzoxNjQgc2VxdWVuY2VyLmM6NjYxIHNlcXVlbmNlci5jOjExMTEgYnVpbHRpbi9sb2cuYzozMzEKKyM6IGJ1aWx0aW4vbG9nLmM6ODAxIGJ1aWx0aW4vbG9nLmM6MTM5OSBidWlsdGluL2xvZy5jOjE2MjUgYnVpbHRpbi9tZXJnZS5jOjM2NAorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjE1NgogbXNnaWQgInJldmlzaW9uIHdhbGsgc2V0dXAgZmFpbGVkIgogbXNnc3RyICLniYjmnKzpgY3ljoborr7nva7lpLHotKUiCiAKQEAgLTIxMSw3ICszMDMsNyBAQAogbXNnaWQgInJldi1saXN0IGRpZWQiCiBtc2dzdHIgInJldi1saXN0IOe7iOatoiIKIAotIzogYnVuZGxlLmM6MzAwIGJ1aWx0aW4vbG9nLmM6MTI0NiBidWlsdGluL3Nob3J0bG9nLmM6MjYwCisjOiBidW5kbGUuYzozMDAgYnVpbHRpbi9sb2cuYzoxMzEwIGJ1aWx0aW4vc2hvcnRsb2cuYzoyNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50OiAlcyIKIG1zZ3N0ciAi5pyq6IO96K+G5Yir55qE5Y+C5pWw77yaJXMiCkBAIC0yNDIsMTIgKzMzNCwxMiBAQAogbXNnaWQgImluZGV4LXBhY2sgZGllZCIKIG1zZ3N0ciAiaW5kZXgtcGFjayDnu4jmraIiCiAKLSM6IGNvbW1pdC5jOjUwCisjOiBjb21taXQuYzo1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgJXMiCiBtc2dzdHIgIuS4jeiDveino+aekCAlcyIKIAotIzogY29tbWl0LmM6NTIKKyM6IGNvbW1pdC5jOjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzICVzIGlzIG5vdCBhIGNvbW1pdCEiCiBtc2dzdHIgIiVzICVzIOS4jeaYr+S4gOS4quaPkOS6pCEiCkBAIC0yNTYsMTYgKzM0OCwxNiBAQAogbXNnaWQgIm1lbW9yeSBleGhhdXN0ZWQiCiBtc2dzdHIgIuWGheWtmOiAl+WwvSIKIAotIzogY29ubmVjdGVkLmM6MzkKKyM6IGNvbm5lY3RlZC5jOjYwCiBtc2dpZCAiQ291bGQgbm90IHJ1biAnZ2l0IHJldi1saXN0JyIKIG1zZ3N0ciAi5LiN6IO95omn6KGMICdnaXQgcmV2LWxpc3QnIgogCi0jOiBjb25uZWN0ZWQuYzo0OAorIzogY29ubmVjdGVkLmM6ODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHdyaXRlIHRvIHJldi1saXN0OiAlcyIKIG1zZ3N0ciAi5peg5rOV5YaZ5YWlIHJldi1saXN077yaJXMiCiAKLSM6IGNvbm5lY3RlZC5jOjU2CisjOiBjb25uZWN0ZWQuYzo4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY2xvc2UgcmV2LWxpc3QncyBzdGRpbjogJXMiCiBtc2dzdHIgIuaXoOazleWFs+mXrSByZXYtbGlzdCDnmoTmoIflh4bovpPlhaXvvJolcyIKQEAgLTM2Myw3ICs0NTUsNyBAQAogIuWPkeeOsOmFjee9ruWPmOmHjyAnZGlmZi5kaXJzdGF0JyDkuK3nmoTplJnor6/vvJpcbiIKICIlcyIKIAotIzogZGlmZi5jOjM0ODAKKyM6IGRpZmYuYzozNDg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJGYWlsZWQgdG8gcGFyc2UgLS1kaXJzdGF0Ly1YIG9wdGlvbiBwYXJhbWV0ZXI6XG4iCkBAIC0zNzIsNyArNDY0LDcgQEAKICLml6Dms5Xop6PmnpAgLS1kaXJzdGF0Ly1YIOmAiemhueeahOWPguaVsO+8mlxuIgogIiVzIgogCi0jOiBkaWZmLmM6MzQ5NAorIzogZGlmZi5jOjM1MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHBhcnNlIC0tc3VibW9kdWxlIG9wdGlvbiBwYXJhbWV0ZXI6ICclcyciCiBtc2dzdHIgIuaXoOazleino+aekCAtLXN1Ym1vZHVsZSDpgInpobnnmoTlj4LmlbDvvJonJXMnIgpAQCAtNDE0LDIwICs1MDYsMjAgQEAKIG1zZ2lkICInJXMnOiBzaG9ydCByZWFkICVzIgogbXNnc3RyICInJXMn77ya6K+75Y+W5LiN5a6M5pW0ICVzIgogCi0jOiBoZWxwLmM6MjEyCisjOiBoZWxwLmM6MjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgImF2YWlsYWJsZSBnaXQgY29tbWFuZHMgaW4gJyVzJyIKIG1zZ3N0ciAi5ZyoICclcycg5LiL5Y+v55So55qEIGdpdCDlkb3ku6QiCiAKLSM6IGhlbHAuYzoyMTkKKyM6IGhlbHAuYzoyMTcKIG1zZ2lkICJnaXQgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gZWxzZXdoZXJlIG9uIHlvdXIgJFBBVEgiCiBtc2dzdHIgIuWcqCAkUEFUSCDot6/lvoTkuK3nmoTlhbbku5blnLDmlrnlj6/nlKjnmoQgZ2l0IOWRveS7pCIKIAotIzogaGVscC5jOjIzNQorIzogaGVscC5jOjIzMwogbXNnaWQgIlRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgZ2l0IGNvbW1hbmRzIGFyZToiCiBtc2dzdHIgIuacgOW4uOeUqOeahCBnaXQg5ZG95Luk5pyJ77yaIgogCi0jOiBoZWxwLmM6MjkyCisjOiBoZWxwLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICInJXMnIGFwcGVhcnMgdG8gYmUgYSBnaXQgY29tbWFuZCwgYnV0IHdlIHdlcmUgbm90XG4iCkBAIC00MzYsMTEgKzUyOCwxMSBAQAogIiclcycg5YOP5piv5LiA5LiqIGdpdCDlkb3ku6TvvIzkvYbljbTml6Dms5Xov5DooYzjgIJcbiIKICLlj6/og73mmK8gZ2l0LSVzIOWPl+aNn++8nyIKIAotIzogaGVscC5jOjM0OQorIzogaGVscC5jOjM0NwogbXNnaWQgIlVoIG9oLiBZb3VyIHN5c3RlbSByZXBvcnRzIG5vIEdpdCBjb21tYW5kcyBhdCBhbGwuIgogbXNnc3RyICLllInlkYDvvIzmgqjnmoTns7vnu5/kuK3mnKrlj5HnjrAgR2l0IOWRveS7pOOAgiIKIAotIzogaGVscC5jOjM3MQorIzogaGVscC5jOjM2OQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiV0FSTklORzogWW91IGNhbGxlZCBhIEdpdCBjb21tYW5kIG5hbWVkICclcycsIHdoaWNoIGRvZXMgbm90IGV4aXN0LlxuIgpAQCAtNDQ5LDE3ICs1NDEsMTcgQEAKICLorablkYrvvJrmgqjov5DooYzkuIDkuKrkuI3lrZjlnKjnmoQgR2l0IOWRveS7pCAnJXMn44CC57un57ut5omn6KGM5YGH5a6a5oKo6KaB6KaB6L+Q6KGM55qEXG4iCiAi5pivICclcyciCiAKLSM6IGhlbHAuYzozNzYKKyM6IGhlbHAuYzozNzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW4gJTAuMWYgc2Vjb25kcyBhdXRvbWF0aWNhbGx5Li4uIgogbXNnc3RyICLlnKggJTAuMWYg56eS6ZKf5ZCO6Ieq5Yqo6L+Q6KGMLi4uIgogCi0jOiBoZWxwLmM6MzgzCisjOiBoZWxwLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdDogJyVzJyBpcyBub3QgYSBnaXQgY29tbWFuZC4gU2VlICdnaXQgLS1oZWxwJy4iCiBtc2dzdHIgImdpdO+8miclcycg5LiN5piv5LiA5LiqIGdpdCDlkb3ku6TjgILlj4Lop4EgJ2dpdCAtLWhlbHAn44CCIgogCi0jOiBoZWxwLmM6Mzg3CisjOiBoZWxwLmM6Mzg1IGhlbHAuYzo0NDQKIG1zZ2lkICIiCiAiXG4iCiAiRGlkIHlvdSBtZWFuIHRoaXM/IgpAQCAtNDczLDEyICs1NjUsMTcgQEAKICJcbiIKICLmgqjmjIfnmoTmmK/ov5nlhbbkuK3nmoTmn5DkuIDkuKrkuYjvvJ8iCiAKKyM6IGhlbHAuYzo0NDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXM6ICVzIC0gJXMiCittc2dzdHIgIiVz77yaJXMgLSAlcyIKKwogIzogbWVyZ2UuYzo1NgogbXNnaWQgImZhaWxlZCB0byByZWFkIHRoZSBjYWNoZSIKIG1zZ3N0ciAi5peg5rOV6K+75Y+W57yT5a2YIgogCi0jOiBtZXJnZS5jOjExMCBidWlsdGluL2NoZWNrb3V0LmM6MzYyIGJ1aWx0aW4vY2hlY2tvdXQuYzo1NjMKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2MzUKKyM6IG1lcmdlLmM6MTEwIGJ1aWx0aW4vY2hlY2tvdXQuYzozNjUgYnVpbHRpbi9jaGVja291dC5jOjU2NgorIzogYnVpbHRpbi9jbG9uZS5jOjY1NgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXcgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZ5paw55qE57Si5byV5paH5Lu2IgogCkBAIC00OTIsNzAgKzU4OSw3MCBAQAogbXNnaWQgImFkZGluZm9fY2FjaGUgZmFpbGVkIGZvciBwYXRoICclcyciCiBtc2dzdHIgIuS4uui3r+W+hCAnJXMnIGFkZGluZm9fY2FjaGUg5aSx6LSlIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoyNjgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjI2OQogbXNnaWQgImVycm9yIGJ1aWxkaW5nIHRyZWVzIgogbXNnc3RyICLml6Dms5XliJvlu7rmoJEiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY3MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgcGF0aCAnJXMnJXMiCiBtc2dzdHIgIuaXoOazleWIm+W7uui3r+W+hCAnJXMnJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjY4MworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Njg0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIHRvIG1ha2Ugcm9vbSBmb3Igc3ViZGlyZWN0b3J5XG4iCiBtc2dzdHIgIuWIoOmZpCAlcyDku6Xkvr/kuLrlrZDnm67lvZXnlZnlh7rnqbrpl7RcbiIKIAogIy4gc29tZXRoaW5nIGVsc2UgZXhpc3RzCiAjLiAuLiBidXQgbm90IHNvbWUgb3RoZXIgZXJyb3IgKHdobyByZWFsbHkgY2FyZXMgd2hhdD8pCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTcgbWVyZ2UtcmVjdXJzaXZlLmM6NzE4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo2OTggbWVyZ2UtcmVjdXJzaXZlLmM6NzE5CiBtc2dpZCAiOiBwZXJoYXBzIGEgRC9GIGNvbmZsaWN0PyIKIG1zZ3N0ciAi77ya5Y+v6IO95piv5LiA5Liq55uu5b2VL+aWh+S7tuWGsueqge+8nyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzA4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmdXNpbmcgdG8gbG9zZSB1bnRyYWNrZWQgZmlsZSBhdCAnJXMnIgogbXNnc3RyICLmi5Lnu53kuKLlvIMgJyVzJyDkuK3nmoTmnKrot5/ouKrmlofku7YiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc0OAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkIG9iamVjdCAlcyAnJXMnIgogbXNnc3RyICLkuI3og73or7vlj5blr7nosaEgJXMgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzUwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzo3NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmxvYiBleHBlY3RlZCBmb3IgJXMgJyVzJyIKIG1zZ3N0ciAiJXMgJyVzJyDlupTkuLrmlbDmja7vvIhibG9i77yJ5a+56LGhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3NzMgYnVpbHRpbi9jbG9uZS5jOjMwMworIzogbWVyZ2UtcmVjdXJzaXZlLmM6Nzc0IGJ1aWx0aW4vY2xvbmUuYzozMTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIG9wZW4gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5omT5byAICclcyciCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4MQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6NzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzeW1saW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIm+W7uuespuWPt+mTvuaOpSAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo3ODQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjc4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJkbyBub3Qga25vdyB3aGF0IHRvIGRvIHdpdGggJTA2byAlcyAnJXMnIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXlpITnkIYgJTA2byAlcyAnJXMnIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzo5MjIKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyMwogbXNnaWQgIkZhaWxlZCB0byBleGVjdXRlIGludGVybmFsIG1lcmdlIgogbXNnc3RyICLml6Dms5XmiafooYzlhoXpg6jlkIjlubYiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjkyNgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBhZGQgJXMgdG8gZGF0YWJhc2UiCiBtc2dzdHIgIuS4jeiDvea3u+WKoCAlcyDoh7Plr7nosaHlupMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjk0MgorIzogbWVyZ2UtcmVjdXJzaXZlLmM6OTQzCiBtc2dpZCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgaW4gdGhlIHRyZWUiCiBtc2dzdHIgIuWcqOagkeS4reacieS4jeaUr+aMgeeahOWvueixoeexu+WeiyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyMSBtZXJnZS1yZWN1cnNpdmUuYzoxMDM1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDIyIG1lcmdlLXJlY3Vyc2l2ZS5jOjEwMzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU2NCw3ICs2NjEsNyBAQAogIuWGsueqge+8iCUxJHMv5Yig6Zmk77yJ77yaJTIkcyDlnKggJTMkcyDkuK3ooqvliKDpmaTvvIzlnKggJTUkcyDkuK3ooqsgJTQkc+OAgiU3JHMg5ZyoICU2JHMg5LitIgogIueahOeJiOacrOiiq+S/neeVmeOAgiIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTAyNyBtZXJnZS1yZWN1cnNpdmUuYzoxMDQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDI4IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNPTkZMSUNUICglcy9kZWxldGUpOiAlcyBkZWxldGVkIGluICVzIGFuZCAlcyBpbiAlcy4gVmVyc2lvbiAlcyBvZiAlcyBsZWZ0ICIKQEAgLTU3MywyMCArNjcwLDIwIEBACiAi5Yay56qB77yIJTEkcy/liKDpmaTvvInvvJolMiRzIOWcqCAlMyRzIOS4reiiq+WIoOmZpO+8jOWcqCAlNSRzIOS4reiiqyAlNCRz44CCJTckcyDlnKggJTYkcyDkuK0iCiAi55qE54mI5pys5L+d55WZ5LqOICU4JHMg5Lit44CCIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMDgyCiBtc2dpZCAicmVuYW1lIgogbXNnc3RyICLph43lkb3lkI0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODEKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEwODIKIG1zZ2lkICJyZW5hbWVkIgogbXNnc3RyICLph43lkb3lkI0iCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaXMgYSBkaXJlY3RvcnkgaW4gJXMgYWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIiVzIOaYryAlcyDkuK3nmoTkuIDkuKrnm67lvZXogIzku6UgJXMg5Li65ZCN6KKr5re75YqgIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTU5CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxMTYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSBcIiVzXCItPlwiJXNcIiBpbiBicmFuY2ggXCIlc1wiIHJlbmFtZSBcIiVzIgpAQCAtNTk1LDE0OCArNjkyLDE2OSBAQAogIuWGsueqge+8iOmHjeWRveWQjS/ph43lkb3lkI3vvInvvJrlnKjliIbmlK8gXCIlMyRzXCIg5Lit6YeN5ZG95ZCNIFwiJTEkc1wiLT5cIiUyJHNcIu+8jOWcqOWIhuaUryAiCiAiXCIlNiRzXCIg5Lit6YeN5ZG95ZCNIFwiJTQkc1wiLT5cIiU1JHNcIiU3JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjExNjUKIG1zZ2lkICIgKGxlZnQgdW5yZXNvbHZlZCkiCiBtc2dzdHIgIu+8iOeVmeS4i+acquino+WGs++8iSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOAorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTIxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJDT05GTElDVCAocmVuYW1lL3JlbmFtZSk6IFJlbmFtZSAlcy0+JXMgaW4gJXMuIFJlbmFtZSAlcy0+JXMgaW4gJXMiCiBtc2dzdHIgIiIKICLlhrLnqoHvvIjph43lkb3lkI0v6YeN5ZG95ZCN77yJ77ya5ZyoICUzJHMg5Lit6YeN5ZG95ZCNICUxJHMtPiUyJHPvvIzlnKggJTYkcyDkuK3ph43lkb3lkI0gJTQkcy0+IgogIiU1JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDgKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjEyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVuYW1pbmcgJXMgdG8gJXMgYW5kICVzIHRvICVzIGluc3RlYWQiCiBtc2dzdHIgIuiAjOaYr+mHjeWRveWQjSAlcyDoh7MgJXPvvIzku6Xlj4ogJXMg6IezICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUIChyZW5hbWUvYWRkKTogUmVuYW1lICVzLT4lcyBpbiAlcy4gJXMgYWRkZWQgaW4gJXMiCiBtc2dzdHIgIuWGsueqge+8iOmHjeWRveWQjS/mt7vliqDvvInvvJrlnKggJTMkcyDkuK3ph43lkb3lkI0gJTEkcy0+JTIkc+OAguWcqCAlNSRzIOS4rea3u+WKoCAlNCRzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU3CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDU4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFkZGluZyBtZXJnZWQgJXMiCiBtc2dzdHIgIua3u+WKoOWQiOW5tuWQjueahCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTQ2MiBtZXJnZS1yZWN1cnNpdmUuYzoxNjYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNDYzIG1lcmdlLXJlY3Vyc2l2ZS5jOjE2NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nIGFzICVzIGluc3RlYWQiCiBtc2dzdHIgIuiAjOaYr+S7pSAlcyDkuLrlkI3mt7vliqAiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTMKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgb2JqZWN0ICVzIgogbXNnc3RyICLkuI3og73or7vlj5blr7nosaEgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTYKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0ICVzIGlzIG5vdCBhIGJsb2IiCiBtc2dzdHIgIuWvueixoSAlcyDkuI3mmK/kuIDkuKrmlbDmja7vvIhibG9i77yJ5a+56LGhIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTY1CiBtc2dpZCAibW9kaWZ5IgogbXNnc3RyICLkv67mlLkiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE1NjUKIG1zZ2lkICJtb2RpZmllZCIKIG1zZ3N0ciAi5L+u5pS5IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTc1CiBtc2dpZCAiY29udGVudCIKIG1zZ3N0ciAi5YaF5a65IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgxCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNTgyCiBtc2dpZCAiYWRkL2FkZCIKIG1zZ3N0ciAi5re75YqgL+a3u+WKoCIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJTa2lwcGVkICVzIChtZXJnZWQgc2FtZSBhcyBleGlzdGluZykiCiBtc2dzdHIgIueVpei/hyAlc++8iOW3sue7j+WBmui/h+ebuOWQjOWQiOW5tu+8iSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYyOQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvLW1lcmdpbmcgJXMiCiBtc2dzdHIgIuiHquWKqOWQiOW5tiAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTYzMyBnaXQtc3VibW9kdWxlLnNoOjEwMjkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQgZ2l0LXN1Ym1vZHVsZS5zaDoxMTE4CiBtc2dpZCAic3VibW9kdWxlIgogbXNnc3RyICLlrZDmqKHnu4QiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzQKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE2MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ09ORkxJQ1QgKCVzKTogTWVyZ2UgY29uZmxpY3QgaW4gJXMiCiBtc2dzdHIgIuWGsueqge+8iCVz77yJ77ya5ZCI5bm25Yay56qB5LqOICVzIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI0CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW92aW5nICVzIgogbXNnc3RyICLliKDpmaQgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NDkKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NTAKIG1zZ2lkICJmaWxlL2RpcmVjdG9yeSIKIG1zZ3N0ciAi5paH5Lu2L+ebruW9lSIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTc1NgogbXNnaWQgImRpcmVjdG9yeS9maWxlIgogbXNnc3RyICLnm67lvZUv5paH5Lu2IgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxNzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNPTkZMSUNUICglcyk6IFRoZXJlIGlzIGEgZGlyZWN0b3J5IHdpdGggbmFtZSAlcyBpbiAlcy4gQWRkaW5nICVzIGFzICVzIgogbXNnc3RyICLlhrLnqoHvvIglMSRz77yJ77ya5ZyoICUzJHMg5Lit5pyJ5LiA5Liq5ZCN5Li6ICUyJHMg55qE55uu5b2V44CC5LulICU1JHMg5Li65ZCN5re75YqgICU0JHMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQWRkaW5nICVzIgogbXNnc3RyICLmt7vliqAgJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE3ODgKIG1zZ2lkICJGYXRhbCBtZXJnZSBmYWlsdXJlLCBzaG91bGRuJ3QgaGFwcGVuLiIKIG1zZ3N0ciAi5Lil6YeN55qE5ZCI5bm26ZSZ6K+v77yM5LiN5bqU5Y+R55Sf44CCIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA2CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODA3CiBtc2dpZCAiQWxyZWFkeSB1cC10by1kYXRlISIKIG1zZ3N0ciAi5bey57uP5piv5pyA5paw55qE77yBIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE1CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxODE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1lcmdpbmcgb2YgdHJlZXMgJXMgYW5kICVzIGZhaWxlZCIKIG1zZ3N0ciAi5peg5rOV5ZCI5bm25qCRICVzIOWSjCAlcyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NQorIzogbWVyZ2UtcmVjdXJzaXZlLmM6MTg0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnByb2Nlc3NlZCBwYXRoPz8/ICVzIgogbXNnc3RyICLmnKrlpITnkIbnmoTot6/lvoQ/Pz8gJXMiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTAKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE4OTEKIG1zZ2lkICJNZXJnaW5nOiIKIG1zZ3N0ciAi5ZCI5bm277yaIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTAzCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcjoiCiBtc2dpZF9wbHVyYWwgImZvdW5kICV1IGNvbW1vbiBhbmNlc3RvcnM6IgogbXNnc3RyWzBdICLlj5HnjrAgJXUg5Liq5YWx5ZCM56WW5YWI77yaIgogbXNnc3RyWzFdICLlj5HnjrAgJXUg5Liq5YWx5ZCM56WW5YWI77yaIgogCi0jOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQwCisjOiBtZXJnZS1yZWN1cnNpdmUuYzoxOTQxCiBtc2dpZCAibWVyZ2UgcmV0dXJuZWQgbm8gY29tbWl0IgogbXNnc3RyICLlkIjlubbmnKrov5Tlm57mj5DkuqQiCiAKLSM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5OTcKKyM6IG1lcmdlLXJlY3Vyc2l2ZS5jOjE5OTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnIgogbXNnc3RyICLkuI3og73op6PmnpDlr7nosaEgJyVzJyIKIAotIzogbWVyZ2UtcmVjdXJzaXZlLmM6MjAwOSBidWlsdGluL21lcmdlLmM6NjU4CisjOiBtZXJnZS1yZWN1cnNpdmUuYzoyMDEwIGJ1aWx0aW4vbWVyZ2UuYzo2NzIKIG1zZ2lkICJVbmFibGUgdG8gd3JpdGUgaW5kZXguIgogbXNnc3RyICLkuI3og73lhpnlhaXntKLlvJXjgIIiCiAKLSM6IG9iamVjdC5jOjE5NQorIzogbm90ZXMtdXRpbHMuYzo0MAorbXNnaWQgIkNhbm5vdCBjb21taXQgdW5pbml0aWFsaXplZC91bnJlZmVyZW5jZWQgbm90ZXMgdHJlZSIKK21zZ3N0ciAi5LiN6IO95o+Q5Lqk5pyq5Yid5aeL5YyWL+acquW8leeUqOeahOazqOino+agkSIKKworIzogbm90ZXMtdXRpbHMuYzo4MQorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgbm90ZXMucmV3cml0ZU1vZGUgdmFsdWU6ICclcyciCittc2dzdHIgIuWdj+eahCBub3Rlcy5yZXdyaXRlTW9kZSDlgLzvvJonJXMnIgorCisjOiBub3Rlcy11dGlscy5jOjkxCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlZnVzaW5nIHRvIHJld3JpdGUgbm90ZXMgaW4gJXMgKG91dHNpZGUgb2YgcmVmcy9ub3Rlcy8pIgorbXNnc3RyICLmi5Lnu53lkJEgJXPvvIjlnKggcmVmcy9ub3Rlcy8g5LmL5aSW77yJ5YaZ5YWl5rOo6KejIgorCisjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIGlzIHRoZSBuYW1lIG9mIHRoZQorIy4gZW52aXJvbm1lbnQgdmFyaWFibGUsIHRoZSBzZWNvbmQgJXMgaXMgaXRzIHZhbHVlCisjOiBub3Rlcy11dGlscy5jOjExOAorIywgYy1mb3JtYXQKK21zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCittc2dzdHIgIuWdj+eahCAlcyDlgLzvvJonJXMnIgorCisjOiBvYmplY3QuYzoyMDQKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHBhcnNlIG9iamVjdDogJXMiCiBtc2dzdHIgIuS4jeiDveino+aekOWvueixoe+8miVzIgpAQCAtNzc3LDE4ICs4OTUsMTggQEAKIG1zZ2lkICInJXMnIGlzIGJleW9uZCBhIHN5bWJvbGljIGxpbmsiCiBtc2dzdHIgIiclcycg5L2N5LqO56ym5Y+36ZO+5o6l5LitIgogCi0jOiByZW1vdGUuYzoxNzgxCisjOiByZW1vdGUuYzoxNzg4CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGFoZWFkIG9mICclcycgYnkgJWQgY29tbWl0LlxuIgogbXNnaWRfcGx1cmFsICJZb3VyIGJyYW5jaCBpcyBhaGVhZCBvZiAnJXMnIGJ5ICVkIGNvbW1pdHMuXG4iCiBtc2dzdHJbMF0gIuaCqOeahOWIhuaUr+mihuWFiCAnJXMnIOWFsSAlZCDkuKrmj5DkuqTjgIJcbiIKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6aKG5YWIICclcycg5YWxICVkIOS4quaPkOS6pOOAglxuIgogCi0jOiByZW1vdGUuYzoxNzg3CisjOiByZW1vdGUuYzoxNzk0CiBtc2dpZCAiICAodXNlIFwiZ2l0IHB1c2hcIiB0byBwdWJsaXNoIHlvdXIgbG9jYWwgY29tbWl0cylcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVzaFwiIOadpeWPkeW4g+aCqOeahOacrOWcsOaPkOS6pO+8iVxuIgogCi0jOiByZW1vdGUuYzoxNzkwCisjOiByZW1vdGUuYzoxNzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIllvdXIgYnJhbmNoIGlzIGJlaGluZCAnJXMnIGJ5ICVkIGNvbW1pdCwgYW5kIGNhbiBiZSBmYXN0LWZvcndhcmRlZC5cbiIKIG1zZ2lkX3BsdXJhbCAiIgpAQCAtNzk3LDExICs5MTUsMTEgQEAKIG1zZ3N0clsxXSAi5oKo55qE5YiG5pSv6JC95ZCOICclcycg5YWxICVkIOS4quaPkOS6pO+8jOW5tuS4lOWPr+S7peW/q+i/m+OAglxuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHJlbW90ZS5jOjE3OTgKKyM6IHJlbW90ZS5jOjE4MDUKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIHVwZGF0ZSB5b3VyIGxvY2FsIGJyYW5jaClcbiIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgcHVsbFwiIOadpeabtOaWsOaCqOeahOacrOWcsOWIhuaUr++8iVxuIgogCi0jOiByZW1vdGUuYzoxODAxCisjOiByZW1vdGUuYzoxODA4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJZb3VyIGJyYW5jaCBhbmQgJyVzJyBoYXZlIGRpdmVyZ2VkLFxuIgpAQCAtODE3LDE4ICs5MzUsMjcgQEAKICLlubbkuJTliIbliKvmnIkgJWQg5ZKMICVkIOWkhOS4jeWQjOeahOaPkOS6pOOAglxuIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHJlbW90ZS5jOjE4MTEKKyM6IHJlbW90ZS5jOjE4MTgKIG1zZ2lkICIgICh1c2UgXCJnaXQgcHVsbFwiIHRvIG1lcmdlIHRoZSByZW1vdGUgYnJhbmNoIGludG8geW91cnMpXG4iCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHB1bGxcIiDmnaXlkIjlubbov5znqIvliIbmlK/vvIlcbiIKIAotIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3NzYgYnVpbHRpbi9tZXJnZS5jOjg4OSBidWlsdGluL21lcmdlLmM6OTk5Ci0jOiBidWlsdGluL21lcmdlLmM6MTAwOQorIzogcnVuLWNvbW1hbmQuYzo4MAorbXNnaWQgIm9wZW4gL2Rldi9udWxsIGZhaWxlZCIKK21zZ3N0ciAi5LiN6IO95omT5byAIC9kZXYvbnVsbCIKKworIzogcnVuLWNvbW1hbmQuYzo4MgorIywgYy1mb3JtYXQKK21zZ2lkICJkdXAyKCVkLCVkKSBmYWlsZWQiCittc2dzdHIgIuS4jeiDveiwg+eUqCBkdXAyKCVkLCVkKSIKKworIzogc2VxdWVuY2VyLmM6MjA2IGJ1aWx0aW4vbWVyZ2UuYzo3OTAgYnVpbHRpbi9tZXJnZS5jOjkwMworIzogYnVpbHRpbi9tZXJnZS5jOjEwMTMgYnVpbHRpbi9tZXJnZS5jOjEwMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZyIKIG1zZ3N0ciAi5LiN6IO95Li65YaZ5YWl5omT5byAICclcyciCiAKLSM6IHNlcXVlbmNlci5jOjIwOCBidWlsdGluL21lcmdlLmM6MzM1IGJ1aWx0aW4vbWVyZ2UuYzo3NzkKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMDAxIGJ1aWx0aW4vbWVyZ2UuYzoxMDE0CisjOiBzZXF1ZW5jZXIuYzoyMDggYnVpbHRpbi9tZXJnZS5jOjM1MCBidWlsdGluL21lcmdlLmM6NzkzCisjOiBidWlsdGluL21lcmdlLmM6MTAxNSBidWlsdGluL21lcmdlLmM6MTAyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgdG8gJyVzJyIKIG1zZ3N0ciAi5LiN6IO95YaZ5YWlICclcyciCkBAIC04NTAsNyArOTc3LDcgQEAKICLlhrLnqoHop6PlhrPlrozmr5XlkI7vvIznlKggJ2dpdCBhZGQgPHBhdGhzPicg5oiWICdnaXQgcm0gPHBhdGhzPidcbiIKICLlr7nkv67mraPlkI7nmoTmlofku7blgZrmoIforrDvvIznhLblkI7nlKggJ2dpdCBjb21taXQnIOaPkOS6pCIKIAotIzogc2VxdWVuY2VyLmM6MjQ1IHNlcXVlbmNlci5jOjg1OSBzZXF1ZW5jZXIuYzo5NDIKKyM6IHNlcXVlbmNlci5jOjI0NSBzZXF1ZW5jZXIuYzo4Njkgc2VxdWVuY2VyLmM6OTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSB0byAlcyIKIG1zZ3N0ciAi5LiN6IO95YaZ5YWlICVzIgpAQCAtODczLDIwNSArMTAwMCwyMzYgQEAKIG1zZ3N0ciAi5o+Q5Lqk5oKo55qE5L+u5pS55oiW5L+d5a2Y6L+b5bqm5ZCO5YaN57un57ut44CCIgogCiAjLiBUUkFOU0xBVE9SUzogJXMgd2lsbCBiZSAicmV2ZXJ0IiBvciAiY2hlcnJ5LXBpY2siCi0jOiBzZXF1ZW5jZXIuYzozMTkKKyM6IHNlcXVlbmNlci5jOjMyNAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICIlc++8muaXoOazleWGmeWFpeaWsOe0ouW8leaWh+S7tiIKIAotIzogc2VxdWVuY2VyLmM6MzUwCisjOiBzZXF1ZW5jZXIuYzozNTUKIG1zZ2lkICJDb3VsZCBub3QgcmVzb2x2ZSBIRUFEIGNvbW1pdFxuIgogbXNnc3RyICLkuI3og73op6PmnpAgSEVBRCDmj5DkuqRcbiIKIAotIzogc2VxdWVuY2VyLmM6MzcxCisjOiBzZXF1ZW5jZXIuYzozNzcKIG1zZ2lkICJVbmFibGUgdG8gdXBkYXRlIGNhY2hlIHRyZWVcbiIKIG1zZ3N0ciAi5LiN6IO95pu05paw57yT5a2YXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQxNgorIzogc2VxdWVuY2VyLmM6NDIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBjb21taXQgJXNcbiIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q5o+Q5LqkICVzXG4iCiAKLSM6IHNlcXVlbmNlci5jOjQyMQorIzogc2VxdWVuY2VyLmM6NDI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBwYXJzZSBwYXJlbnQgY29tbWl0ICVzXG4iCiBtc2dzdHIgIuS4jeiDveino+aekOeItuaPkOS6pCAlc1xuIgogCi0jOiBzZXF1ZW5jZXIuYzo0ODcKKyM6IHNlcXVlbmNlci5jOjQ5MwogbXNnaWQgIllvdXIgaW5kZXggZmlsZSBpcyB1bm1lcmdlZC4iCiBtc2dzdHIgIuaCqOeahOe0ouW8leaWh+S7tuacquWujOaIkOWQiOW5tuOAgiIKIAotIzogc2VxdWVuY2VyLmM6NTA2CisjOiBzZXF1ZW5jZXIuYzo1MTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGlzIGEgbWVyZ2UgYnV0IG5vIC1tIG9wdGlvbiB3YXMgZ2l2ZW4uIgogbXNnc3RyICLmj5DkuqQgJXMg5piv5LiA5Liq5ZCI5bm25o+Q5Lqk5L2G5pyq5o+Q5L6bIC1tIOmAiemhueOAgiIKIAotIzogc2VxdWVuY2VyLmM6NTE0CisjOiBzZXF1ZW5jZXIuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgcGFyZW50ICVkIgogbXNnc3RyICLmj5DkuqQgJXMg5rKh5pyJ54i25o+Q5LqkICVkIgogCi0jOiBzZXF1ZW5jZXIuYzo1MTgKKyM6IHNlcXVlbmNlci5jOjUyNAogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWlubGluZSB3YXMgc3BlY2lmaWVkIGJ1dCBjb21taXQgJXMgaXMgbm90IGEgbWVyZ2UuIgogbXNnc3RyICLmjIflrprkuobkuLvnur/kvYbmj5DkuqQgJXMg5LiN5piv5LiA5Liq5ZCI5bm244CCIgogCiAjLiBUUkFOU0xBVE9SUzogVGhlIGZpcnN0ICVzIHdpbGwgYmUgInJldmVydCIgb3IKICMuICJjaGVycnktcGljayIsIHRoZSBzZWNvbmQgJXMgYSBTSEExCi0jOiBzZXF1ZW5jZXIuYzo1MzEKKyM6IHNlcXVlbmNlci5jOjUzNwogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogY2Fubm90IHBhcnNlIHBhcmVudCBjb21taXQgJXMiCiBtc2dzdHIgIiVz77ya5LiN6IO96Kej5p6Q54i25o+Q5LqkICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo1MzUKKyM6IHNlcXVlbmNlci5jOjU0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgZ2V0IGNvbW1pdCBtZXNzYWdlIGZvciAlcyIKIG1zZ3N0ciAi5LiN6IO95b6X5YiwICVzIOeahOaPkOS6pOivtOaYjiIKIAotIzogc2VxdWVuY2VyLmM6NjIxCisjOiBzZXF1ZW5jZXIuYzo2MjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJldmVydCAlcy4uLiAlcyIKIG1zZ3N0ciAi5LiN6IO96L+Y5Y6fICVzLi4uICVzIgogCi0jOiBzZXF1ZW5jZXIuYzo2MjIKKyM6IHNlcXVlbmNlci5jOjYyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgYXBwbHkgJXMuLi4gJXMiCiBtc2dzdHIgIuS4jeiDveW6lOeUqCAlcy4uLiAlcyIKIAotIzogc2VxdWVuY2VyLmM6NjU0CisjOiBzZXF1ZW5jZXIuYzo2NjQKIG1zZ2lkICJlbXB0eSBjb21taXQgc2V0IHBhc3NlZCIKIG1zZ3N0ciAi5o+Q5L6b5LqG56m655qE5o+Q5Lqk6ZuGIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjIKKyM6IHNlcXVlbmNlci5jOjY3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWFkIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVz77ya5peg5rOV6K+75Y+W57Si5byVIgogCi0jOiBzZXF1ZW5jZXIuYzo2NjcKKyM6IHNlcXVlbmNlci5jOjY3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgJXM6IGZhaWxlZCB0byByZWZyZXNoIHRoZSBpbmRleCIKIG1zZ3N0ciAiZ2l0ICVz77ya5peg5rOV5Yi35paw57Si5byVIgogCi0jOiBzZXF1ZW5jZXIuYzo3MjUKKyM6IHNlcXVlbmNlci5jOjczNQogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3QgJXMgZHVyaW5nIGEgJXMiCiBtc2dzdHIgIuaXoOazlSAlcyDlnKjkuIDkuKogJXMg6L+H56iL5LitIgogCi0jOiBzZXF1ZW5jZXIuYzo3NDcKKyM6IHNlcXVlbmNlci5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcGFyc2UgbGluZSAlZC4iCiBtc2dzdHIgIuS4jeiDveino+aekOesrCAlZCDooYzjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjc1MgorIzogc2VxdWVuY2VyLmM6NzYyCiBtc2dpZCAiTm8gY29tbWl0cyBwYXJzZWQuIgogbXNnc3RyICLmsqHmnInmj5DkuqTooqvop6PmnpDjgIIiCiAKLSM6IHNlcXVlbmNlci5jOjc2NQorIzogc2VxdWVuY2VyLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCBvcGVuICVzIgogbXNnc3RyICLkuI3og73miZPlvIAgJXMiCiAKLSM6IHNlcXVlbmNlci5jOjc2OQorIzogc2VxdWVuY2VyLmM6Nzc5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkICVzLiIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICVz44CCIgogCi0jOiBzZXF1ZW5jZXIuYzo3NzYKKyM6IHNlcXVlbmNlci5jOjc4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJVbnVzYWJsZSBpbnN0cnVjdGlvbiBzaGVldDogJXMiCiBtc2dzdHIgIuaXoOeUqOeahOaMh+S7pOihqOWNle+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDQKKyM6IHNlcXVlbmNlci5jOjgxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIGtleTogJXMiCiBtc2dzdHIgIuaXoOaViOmUruWQje+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MDcKKyM6IHNlcXVlbmNlci5jOjgxNwogIywgYy1mb3JtYXQKIG1zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciAlczogJXMiCiBtc2dzdHIgIiVzIOeahOWAvOaXoOaViO+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4MTkKKyM6IHNlcXVlbmNlci5jOjgyOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNYWxmb3JtZWQgb3B0aW9ucyBzaGVldDogJXMiCiBtc2dzdHIgIumdnuazleeahOmAiemhueihqOWNle+8miVzIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDAKKyM6IHNlcXVlbmNlci5jOjg1MAogbXNnaWQgImEgY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MiCiBtc2dzdHIgIuS4gOS4quaLo+mAieaIlui/mOWOn+aTjeS9nOW3suWcqOi/m+ihjCIKIAotIzogc2VxdWVuY2VyLmM6ODQxCisjOiBzZXF1ZW5jZXIuYzo4NTEKIG1zZ2lkICJ0cnkgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogbXNnc3RyICLlsJ3or5UgXCJnaXQgY2hlcnJ5LXBpY2sgKC0tY29udGludWUgfCAtLXF1aXQgfCAtLWFib3J0KVwiIgogCi0jOiBzZXF1ZW5jZXIuYzo4NDUKKyM6IHNlcXVlbmNlci5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgY3JlYXRlIHNlcXVlbmNlciBkaXJlY3RvcnkgJXMiCiBtc2dzdHIgIuS4jeiDveWIm+W7uuW6j+WIl+ebruW9lSAlcyIKIAotIzogc2VxdWVuY2VyLmM6ODYxIHNlcXVlbmNlci5jOjk0NgorIzogc2VxdWVuY2VyLmM6ODcxIHNlcXVlbmNlci5jOjk1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciB3cmFwcGluZyB1cCAlcy4iCiBtc2dzdHIgIumUmeivr+aUtuWwviAlc+OAgiIKIAotIzogc2VxdWVuY2VyLmM6ODgwIHNlcXVlbmNlci5jOjEwMTQKKyM6IHNlcXVlbmNlci5jOjg5MCBzZXF1ZW5jZXIuYzoxMDI0CiBtc2dpZCAibm8gY2hlcnJ5LXBpY2sgb3IgcmV2ZXJ0IGluIHByb2dyZXNzIgogbXNnc3RyICLmi6PpgInmiJbov5jljp/mk43kvZzlubbmnKrov5vooYwiCiAKLSM6IHNlcXVlbmNlci5jOjg4MgorIzogc2VxdWVuY2VyLmM6ODkyCiBtc2dpZCAiY2Fubm90IHJlc29sdmUgSEVBRCIKIG1zZ3N0ciAi5LiN6IO96Kej5p6QIEhFQUQiCiAKLSM6IHNlcXVlbmNlci5jOjg4NAorIzogc2VxdWVuY2VyLmM6ODk0CiBtc2dpZCAiY2Fubm90IGFib3J0IGZyb20gYSBicmFuY2ggeWV0IHRvIGJlIGJvcm4iCiBtc2dzdHIgIuS4jeiDveS7juWwmuacquW7uueri+eahOWIhuaUr+e7iOatoiIKIAotIzogc2VxdWVuY2VyLmM6OTA2IGJ1aWx0aW4vYXBwbHkuYzo0MDYwCisjOiBzZXF1ZW5jZXIuYzo5MTYgYnVpbHRpbi9hcHBseS5jOjQwNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICLkuI3og73miZPlvIAgJXPvvJolcyIKIAotIzogc2VxdWVuY2VyLmM6OTA5CisjOiBzZXF1ZW5jZXIuYzo5MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICLkuI3og73or7vlj5YgJXPvvJolcyIKIAotIzogc2VxdWVuY2VyLmM6OTEwCisjOiBzZXF1ZW5jZXIuYzo5MjAKIG1zZ2lkICJ1bmV4cGVjdGVkIGVuZCBvZiBmaWxlIgogbXNnc3RyICLmhI/lpJbnmoTmlofku7bnu5PmnZ8iCiAKLSM6IHNlcXVlbmNlci5jOjkxNgorIzogc2VxdWVuY2VyLmM6OTI2CiAjLCBjLWZvcm1hdAogbXNnaWQgInN0b3JlZCBwcmUtY2hlcnJ5LXBpY2sgSEVBRCBmaWxlICclcycgaXMgY29ycnVwdCIKIG1zZ3N0ciAi5L+d5a2Y5ouj6YCJ5o+Q5Lqk5YmN55qEIEhFQUQg5paH5Lu2ICclcycg5o2f5Z2PIgogCi0jOiBzZXF1ZW5jZXIuYzo5MzkKKyM6IHNlcXVlbmNlci5jOjk0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgZm9ybWF0ICVzLiIKIG1zZ3N0ciAi5LiN6IO95qC85byP5YyWICVz44CCIgogCi0jOiBzZXF1ZW5jZXIuYzoxMTAxCisjOiBzZXF1ZW5jZXIuYzoxMDkyCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBjYW4ndCBjaGVycnktcGljayBhICVzIgorbXNnc3RyICIlc++8muS4jeiDveaLo+mAieS4gOS4qiVzIgorCisjOiBzZXF1ZW5jZXIuYzoxMDk1CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzOiBiYWQgcmV2aXNpb24iCittc2dzdHIgIiVz77ya6ZSZ6K+v55qE54mI5pysIgorCisjOiBzZXF1ZW5jZXIuYzoxMTI5CiBtc2dpZCAiQ2FuJ3QgcmV2ZXJ0IGFzIGluaXRpYWwgY29tbWl0IgogbXNnc3RyICLkuI3og73kvZzkuLrliJ3lp4vmj5DkuqTov5jljp8iCiAKLSM6IHNlcXVlbmNlci5jOjExMDIKKyM6IHNlcXVlbmNlci5jOjExMzAKIG1zZ2lkICJDYW4ndCBjaGVycnktcGljayBpbnRvIGVtcHR5IGhlYWQiCiBtc2dzdHIgIuS4jeiDveaLo+mAieWIsOepuuWIhuaUryIKIAotIzogc2hhMV9uYW1lLmM6MTAzNgorIzogc2hhMV9uYW1lLmM6NDQwCittc2dpZCAiIgorIkdpdCBub3JtYWxseSBuZXZlciBjcmVhdGVzIGEgcmVmIHRoYXQgZW5kcyB3aXRoIDQwIGhleCBjaGFyYWN0ZXJzXG4iCisiYmVjYXVzZSBpdCB3aWxsIGJlIGlnbm9yZWQgd2hlbiB5b3UganVzdCBzcGVjaWZ5IDQwLWhleC4gVGhlc2UgcmVmc1xuIgorIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorIlxuIgorIiAgZ2l0IGNoZWNrb3V0IC1iICRiciAkKGdpdCByZXYtcGFyc2UgLi4uKVxuIgorIlxuIgorIndoZXJlIFwiJGJyXCIgaXMgc29tZWhvdyBlbXB0eSBhbmQgYSA0MC1oZXggcmVmIGlzIGNyZWF0ZWQuIFBsZWFzZVxuIgorImV4YW1pbmUgdGhlc2UgcmVmcyBhbmQgbWF5YmUgZGVsZXRlIHRoZW0uIFR1cm4gdGhpcyBtZXNzYWdlIG9mZiBieVxuIgorInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIgorbXNnc3RyICIiCisiR2l0IOmAmuW4uOS4jeS8muWIm+W7uuS4gOS4quS7pTQw5L2N5Y2B5YWt6L+b5Yi25a2X56ym5ZG95ZCN55qE5byV55So77yM5Zug5Li65b2T5L2g5o+Q5L6bNDDkvY1cbiIKKyLljYHlha3ov5vliLblrZfnrKbml7blsIbooqvlv73nlaXjgILkuI3ov4fov5nkupvlvJXnlKjkuZ/lj6/og73ooqvplJnor6/lnLDliJvlu7rjgILkvovlpoLvvJpcbiIKKyJcbiIKKyIgIGdpdCBjaGVja291dCAtYiAkYnIgJChnaXQgcmV2LXBhcnNlIC4uLilcbiIKKyJcbiIKKyLlvZMgXCIkYnJcIiDnqbrnmb3ml7bkuIDkuKo0MOS9jeWNgeWFrei/m+WItueahOW8leeUqOWwhuiiq+WIm+W7uuOAguivt+ajgOafpei/meS6m+W8leeUqO+8jFxuIgorIuWPr+iDvemcgOimgeWIoOmZpOWug+S7rOOAgueUqCBcImdpdCBjb25maWcgYWR2aWNlLm9iamVjdE5hbWVXYXJuaW5nIGZhbHNlXCJcbiIKKyLlkb3ku6TlhbPpl63mnKzmtojmga/pgJrnn6XjgIIiCisKKyM6IHNoYTFfbmFtZS5jOjEwOTcKIG1zZ2lkICJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIgogbXNnc3RyICJIRUFEIOayoeacieaMh+WQkeS4gOS4quWIhuaUryIKIAotIzogc2hhMV9uYW1lLmM6MTAzOQorIzogc2hhMV9uYW1lLmM6MTEwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIGJyYW5jaDogJyVzJyIKIG1zZ3N0ciAi5rKh5pyJ5q2k5YiG5pSv77yaJyVzJyIKIAotIzogc2hhMV9uYW1lLmM6MTA0MQorIzogc2hhMV9uYW1lLmM6MTEwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJyVzJyIKIG1zZ3N0ciAi5bCa5pyq57uZ5YiG5pSvICclcycg6K6+572u5LiK5ri4IgogCi0jOiBzaGExX25hbWUuYzoxMDQ0CisjOiBzaGExX25hbWUuYzoxMTA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVwc3RyZWFtIGJyYW5jaCAnJXMnIG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIgogbXNnc3RyICLkuIrmuLjliIbmlK8gJyVzJyDmsqHmnInlrZjlgqjkuLrkuIDkuKrov5znqIvot5/ouKrliIbmlK8iCkBAIC0xMDgxLDI5OCArMTIzOSwzMDggQEAKIG1zZ2lkICJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIgogbXNnc3RyICLkuI3og73orr/pl64gJyVzJ++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDIzCisjOiB3cmFwcGVyLmM6NDI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K6/6ZeuICclcyciCiAKLSM6IHdyYXBwZXIuYzo0MzQKKyM6IHdyYXBwZXIuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGxvb2sgdXAgY3VycmVudCB1c2VyIGluIHRoZSBwYXNzd2QgZmlsZTogJXMiCiBtc2dzdHIgIuaXoOazleWcqOWPo+S7pOaWh+S7tuS4reafpeivouWIsOW9k+WJjeeUqOaIt++8miVzIgogCi0jOiB3cmFwcGVyLmM6NDM1CisjOiB3cmFwcGVyLmM6NDQxCiBtc2dpZCAibm8gc3VjaCB1c2VyIgogbXNnc3RyICLml6DmraTnlKjmiLciCiAKLSM6IHd0LXN0YXR1cy5jOjE0MAorIzogd3Qtc3RhdHVzLmM6MTQxCiBtc2dpZCAiVW5tZXJnZWQgcGF0aHM6IgogbXNnc3RyICLmnKrlkIjlubbnmoTot6/lvoTvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTY3IHd0LXN0YXR1cy5jOjE5NAorIzogd3Qtc3RhdHVzLmM6MTY4IHd0LXN0YXR1cy5jOjE5NQogIywgYy1mb3JtYXQKIG1zZ2lkICIgICh1c2UgXCJnaXQgcmVzZXQgJXMgPGZpbGU+Li4uXCIgdG8gdW5zdGFnZSkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IHJlc2V0ICVzIDxmaWxlPi4uLlwiIOaSpOWHuuaaguWtmOWMuu+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNjkgd3Qtc3RhdHVzLmM6MTk2CisjOiB3dC1zdGF0dXMuYzoxNzAgd3Qtc3RhdHVzLmM6MTk3CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJtIC0tY2FjaGVkIDxmaWxlPi4uLlwiIHRvIHVuc3RhZ2UpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSAtLWNhY2hlZCA8ZmlsZT4uLi5cIiDmkqTlh7rmmoLlrZjljLrvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTczCisjOiB3dC1zdGF0dXMuYzoxNzQKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIG1hcmsgcmVzb2x1dGlvbikiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGFkZCA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTc1IHd0LXN0YXR1cy5jOjE3OQorIzogd3Qtc3RhdHVzLmM6MTc2IHd0LXN0YXR1cy5jOjE4MAogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgYXMgYXBwcm9wcmlhdGUgdG8gbWFyayByZXNvbHV0aW9uKSIKIG1zZ3N0ciAiICDvvIjphYzmg4Xkvb/nlKggXCJnaXQgYWRkL3JtIDxmaWxlPi4uLlwiIOagh+iusOino+WGs+aWueahiO+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNzcKKyM6IHd0LXN0YXR1cy5jOjE3OAogbXNnaWQgIiAgKHVzZSBcImdpdCBybSA8ZmlsZT4uLi5cIiB0byBtYXJrIHJlc29sdXRpb24pIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBybSA8ZmlsZT4uLi5cIiDmoIforrDop6PlhrPmlrnmoYjvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjE4OAorIzogd3Qtc3RhdHVzLmM6MTg5CiBtc2dpZCAiQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6IgogbXNnc3RyICLopoHmj5DkuqTnmoTlj5jmm7TvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjIwNgorIzogd3Qtc3RhdHVzLmM6MjA3CiBtc2dpZCAiQ2hhbmdlcyBub3Qgc3RhZ2VkIGZvciBjb21taXQ6IgogbXNnc3RyICLlsJrmnKrmmoLlrZjku6XlpIfmj5DkuqTnmoTlj5jmm7TvvJoiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjEwCisjOiB3dC1zdGF0dXMuYzoyMTEKIG1zZ2lkICIgICh1c2UgXCJnaXQgYWRkIDxmaWxlPi4uLlwiIHRvIHVwZGF0ZSB3aGF0IHdpbGwgYmUgY29tbWl0dGVkKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYWRkIDxmaWxlPi4uLlwiIOabtOaWsOimgeaPkOS6pOeahOWGheWuue+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoyMTIKKyM6IHd0LXN0YXR1cy5jOjIxMwogbXNnaWQgIiAgKHVzZSBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIgdG8gdXBkYXRlIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBhZGQvcm0gPGZpbGU+Li4uXCIg5pu05paw6KaB5o+Q5Lqk55qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIxMworIzogd3Qtc3RhdHVzLmM6MjE0CiBtc2dpZCAiIgogIiAgKHVzZSBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiB0byBkaXNjYXJkIGNoYW5nZXMgaW4gd29ya2luZyBkaXJlY3RvcnkpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjaGVja291dCAtLSA8ZmlsZT4uLi5cIiDkuKLlvIPlt6XkvZzljLrnmoTmlLnliqjvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MjE1CisjOiB3dC1zdGF0dXMuYzoyMTYKIG1zZ2lkICIgIChjb21taXQgb3IgZGlzY2FyZCB0aGUgdW50cmFja2VkIG9yIG1vZGlmaWVkIGNvbnRlbnQgaW4gc3VibW9kdWxlcykiCiBtc2dzdHIgIiAg77yI5o+Q5Lqk5oiW5Lii5byD5a2Q5qih57uE5Lit5pyq6Lef6Liq5oiW5L+u5pS555qE5YaF5a6577yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjIyNworIzogd3Qtc3RhdHVzLmM6MjI4CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgKHVzZSBcImdpdCAlcyA8ZmlsZT4uLi5cIiB0byBpbmNsdWRlIGluIHdoYXQgd2lsbCBiZSBjb21taXR0ZWQpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCAlcyA8ZmlsZT4uLi5cIiDku6XljIXlkKvopoHmj5DkuqTnmoTlhoXlrrnvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjI0NAorIzogd3Qtc3RhdHVzLmM6MjQ1CiBtc2dpZCAiYnVnIgogbXNnc3RyICJidWciCiAKLSM6IHd0LXN0YXR1cy5jOjI0OQorIzogd3Qtc3RhdHVzLmM6MjUwCiBtc2dpZCAiYm90aCBkZWxldGVkOiIKIG1zZ3N0ciAi5Y+M5pa55Yig6Zmk77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTAKKyM6IHd0LXN0YXR1cy5jOjI1MQogbXNnaWQgImFkZGVkIGJ5IHVzOiIKIG1zZ3N0ciAi55Sx5oiR5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTEKKyM6IHd0LXN0YXR1cy5jOjI1MgogbXNnaWQgImRlbGV0ZWQgYnkgdGhlbToiCiBtc2dzdHIgIueUseS7luS7rOWIoOmZpO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjUyCisjOiB3dC1zdGF0dXMuYzoyNTMKIG1zZ2lkICJhZGRlZCBieSB0aGVtOiIKIG1zZ3N0ciAi55Sx5LuW5Lus5re75Yqg77yaIgogCi0jOiB3dC1zdGF0dXMuYzoyNTMKKyM6IHd0LXN0YXR1cy5jOjI1NAogbXNnaWQgImRlbGV0ZWQgYnkgdXM6IgogbXNnc3RyICLnlLHmiJHku6zliKDpmaTvvJoiCiAKLSM6IHd0LXN0YXR1cy5jOjI1NAorIzogd3Qtc3RhdHVzLmM6MjU1CiBtc2dpZCAiYm90aCBhZGRlZDoiCiBtc2dzdHIgIuWPjOaWuea3u+WKoO+8miIKIAotIzogd3Qtc3RhdHVzLmM6MjU1CisjOiB3dC1zdGF0dXMuYzoyNTYKIG1zZ2lkICJib3RoIG1vZGlmaWVkOiIKIG1zZ3N0ciAi5Y+M5pa55L+u5pS577yaIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI4NQorIzogd3Qtc3RhdHVzLmM6Mjg2CiBtc2dpZCAibmV3IGNvbW1pdHMsICIKIG1zZ3N0ciAi5paw5o+Q5LqkLCAiCiAKICMgIOivkeiAhe+8muacq+WwvuS4pOS4quWtl+iKguWPr+iDveiiq+WIoOWHj++8jOWmguaenOe/u+ivkeS4uuS4reaWh+agh+eCueS8muWHuueOsOWNiuS4quaxieWtlwotIzogd3Qtc3RhdHVzLmM6Mjg3CisjOiB3dC1zdGF0dXMuYzoyODgKIG1zZ2lkICJtb2RpZmllZCBjb250ZW50LCAiCiBtc2dzdHIgIuS/ruaUueeahOWGheWuuSwgIgogCiAjICDor5HogIXvvJrmnKvlsL7kuKTkuKrlrZfoioLlj6/og73ooqvliKDlh4/vvIzlpoLmnpznv7vor5HkuLrkuK3mlofmoIfngrnkvJrlh7rnjrDljYrkuKrmsYnlrZcKLSM6IHd0LXN0YXR1cy5jOjI4OQorIzogd3Qtc3RhdHVzLmM6MjkwCiBtc2dpZCAidW50cmFja2VkIGNvbnRlbnQsICIKIG1zZ3N0ciAi5pyq6Lef6Liq55qE5YaF5a65LCAiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzA2CisjOiB3dC1zdGF0dXMuYzozMDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV3IGZpbGU6ICAgJXMiCiBtc2dzdHIgIuaWsOaWh+S7tu+8miAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMDkKKyM6IHd0LXN0YXR1cy5jOjMxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3BpZWQ6ICAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi5ou36LSd77yaICAgICAgJXMgLT4gJXMiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogd3Qtc3RhdHVzLmM6MzEyCisjOiB3dC1zdGF0dXMuYzozMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZGVsZXRlZDogICAgJXMiCiBtc2dzdHIgIuWIoOmZpO+8miAgICAgICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMxNQorIzogd3Qtc3RhdHVzLmM6MzE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vZGlmaWVkOiAgICVzIgogbXNnc3RyICLkv67mlLnvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMTgKKyM6IHd0LXN0YXR1cy5jOjMxOQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZW5hbWVkOiAgICAlcyAtPiAlcyIKIG1zZ3N0ciAi6YeN5ZG95ZCN77yaICAgICVzIC0+ICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyMQorIzogd3Qtc3RhdHVzLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgInR5cGVjaGFuZ2U6ICVzIgogbXNnc3RyICLnsbvlnovlj5jmm7TvvJogICVzIgogCiAjICDor5HogIXvvJrkuLrkv53or4HlnKjovpPlh7rkuK3lr7npvZDvvIzms6jmhI/osIPmlbTlj6XkuK3nqbrmoLzvvIEKLSM6IHd0LXN0YXR1cy5jOjMyNAorIzogd3Qtc3RhdHVzLmM6MzI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd246ICAgICVzIgogbXNnc3RyICLmnKrnn6XvvJogICAgICAlcyIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiB3dC1zdGF0dXMuYzozMjcKKyM6IHd0LXN0YXR1cy5jOjMyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bm1lcmdlZDogICAlcyIKIG1zZ3N0ciAi5pyq5ZCI5bm277yaICAgICVzIgogCi0jOiB3dC1zdGF0dXMuYzozMzAKKyM6IHd0LXN0YXR1cy5jOjMzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJidWc6IHVuaGFuZGxlZCBkaWZmIHN0YXR1cyAlYyIKIG1zZ3N0ciAiYnVn77ya5pyq5aSE55CG55qE5beu5byC54q25oCBICVjIgogCi0jOiB3dC1zdGF0dXMuYzo4MDUKKyM6IHd0LXN0YXR1cy5jOjgwMwogbXNnaWQgIllvdSBoYXZlIHVubWVyZ2VkIHBhdGhzLiIKIG1zZ3N0ciAi5oKo5pyJ5bCa5pyq5ZCI5bm255qE6Lev5b6E44CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjgwOCB3dC1zdGF0dXMuYzo5NjAKKyM6IHd0LXN0YXR1cy5jOjgwNgogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHJ1biBcImdpdCBjb21taXRcIikiCiBtc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB5bm26L+Q6KGMIFwiZ2l0IGNvbW1pdFwi77yJIgogCi0jOiB3dC1zdGF0dXMuYzo4MTEKKyM6IHd0LXN0YXR1cy5jOjgwOQogbXNnaWQgIkFsbCBjb25mbGljdHMgZml4ZWQgYnV0IHlvdSBhcmUgc3RpbGwgbWVyZ2luZy4iCiBtc2dzdHIgIuaJgOacieWGsueqgeW3suino+WGs+S9huaCqOS7jeWkhOS6juWQiOW5tuS4reOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo4MTQKKyM6IHd0LXN0YXR1cy5jOjgxMgogbXNnaWQgIiAgKHVzZSBcImdpdCBjb21taXRcIiB0byBjb25jbHVkZSBtZXJnZSkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGNvbW1pdFwiIOe7k+adn+WQiOW5tu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6ODI0CisjOiB3dC1zdGF0dXMuYzo4MjIKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYW4gYW0gc2Vzc2lvbi4iCiBtc2dzdHIgIuaCqOato+WkhOS6juS4gOS4qiBhbSDov4fnqIvkuK3jgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjgyNworIzogd3Qtc3RhdHVzLmM6ODI1CiBtc2dpZCAiVGhlIGN1cnJlbnQgcGF0Y2ggaXMgZW1wdHkuIgogbXNnc3RyICLlvZPliY3nmoTooaXkuIHkuLrnqbrjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6ODMxCi1tc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKLW1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1yZXNvbHZlZFwi77yJIgorIzogd3Qtc3RhdHVzLmM6ODI5Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjgzMworIzogd3Qtc3RhdHVzLmM6ODMxCiBtc2dpZCAiICAodXNlIFwiZ2l0IGFtIC0tc2tpcFwiIHRvIHNraXAgdGhpcyBwYXRjaCkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGFtIC0tc2tpcFwiIOi3s+i/h+atpOihpeS4ge+8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo4MzUKKyM6IHd0LXN0YXR1cy5jOjgzMwogbXNnaWQgIiAgKHVzZSBcImdpdCBhbSAtLWFib3J0XCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgYW0gLS1hYm9ydFwiIOaBouWkjeWOn+acieWIhuaUr++8iSIKIAotIzogd3Qtc3RhdHVzLmM6ODk1IHd0LXN0YXR1cy5jOjkxMgorIzogd3Qtc3RhdHVzLmM6ODkzIHd0LXN0YXR1cy5jOjkxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcyfjgIIiCiAKLSM6IHd0LXN0YXR1cy5jOjkwMCB3dC1zdGF0dXMuYzo5MTcKKyM6IHd0LXN0YXR1cy5jOjg5OCB3dC1zdGF0dXMuYzo5MTUKIG1zZ2lkICJZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZy4iCiBtc2dzdHIgIuaCqOato+WcqOWPmOWfuuOAgiIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5MDMKKyM6IHd0LXN0YXR1cy5jOjkwMQogbXNnaWQgIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIpIgogbXNnc3RyICIgIO+8iOino+WGs+WGsueqge+8jOeEtuWQjui/kOihjCBcImdpdCByZWJhc2UgLS1jb250aW51ZVwi77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjkwNQorIzogd3Qtc3RhdHVzLmM6OTAzCiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiB0byBza2lwIHRoaXMgcGF0Y2gpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCByZWJhc2UgLS1za2lwXCIg6Lez6L+H5q2k6KGl5LiB77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjkwNworIzogd3Qtc3RhdHVzLmM6OTA1CiBtc2dpZCAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWFib3J0XCIgdG8gY2hlY2sgb3V0IHRoZSBvcmlnaW5hbCBicmFuY2gpIgogbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCByZWJhc2UgLS1hYm9ydFwiIOS7peajgOWHuuWOn+acieWIhuaUr++8iSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzo5MjAKKyM6IHd0LXN0YXR1cy5jOjkxOAogbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjmiYDmnInlhrLnqoHlt7Lop6PlhrPvvJrov5DooYwgXCJnaXQgcmViYXNlIC0tY29udGludWVcIu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6OTI0CisjOiB3dC1zdGF0dXMuYzo5MjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcycg6L+H56iL5Lit5ouG5YiG5LiA5Liq5o+Q5Lqk44CCIgogCi0jOiB3dC1zdGF0dXMuYzo5MjkKKyM6IHd0LXN0YXR1cy5jOjkyNwogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IHNwbGl0dGluZyBhIGNvbW1pdCBkdXJpbmcgYSByZWJhc2UuIgogbXNnc3RyICLmgqjmraPlnKjlj5jln7rov4fnqIvkuK3mi4bliIbkuIDkuKrmj5DkuqTjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTMyCisjOiB3dC1zdGF0dXMuYzo5MzAKIG1zZ2lkICIgIChPbmNlIHlvdXIgd29ya2luZyBkaXJlY3RvcnkgaXMgY2xlYW4sIHJ1biBcImdpdCByZWJhc2UgLS1jb250aW51ZVwiKSIKIG1zZ3N0ciAiICDvvIjkuIDml6bmgqjlt6XkvZznm67lvZXmj5DkuqTlubLlh4DlkI7vvIzov5DooYwgXCJnaXQgcmViYXNlIC0tY29udGludWVcIu+8iSIKIAotIzogd3Qtc3RhdHVzLmM6OTM2CisjOiB3dC1zdGF0dXMuYzo5MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJyVzJyBvbiAnJXMnLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5bCG5YiG5pSvICclcycg5Y+Y5Z+65YiwICclcycg6L+H56iL5Lit57yW6L6R5LiA5Liq5o+Q5Lqk44CCIgogCi0jOiB3dC1zdGF0dXMuYzo5NDEKKyM6IHd0LXN0YXR1cy5jOjkzOQogbXNnaWQgIllvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgZHVyaW5nIGEgcmViYXNlLiIKIG1zZ3N0ciAi5oKo5q2j5Zyo5Y+Y5Z+66L+H56iL5Lit57yW6L6R5LiA5Liq5o+Q5Lqk44CCIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IHd0LXN0YXR1cy5jOjk0NAorIzogd3Qtc3RhdHVzLmM6OTQyCiBtc2dpZCAiICAodXNlIFwiZ2l0IGNvbW1pdCAtLWFtZW5kXCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KSIKIG1zZ3N0ciAiICDvvIjkvb/nlKggXCJnaXQgY29tbWl0IC0tYW1lbmRcIiDkv67ooaXlvZPliY3mj5DkuqTvvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6OTQ2CisjOiB3dC1zdGF0dXMuYzo5NDQKIG1zZ2lkICIiCiAiICAodXNlIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykiCiBtc2dzdHIgIiAg77yI5b2T5oKo5a+55oKo55qE5L+u5pS55ruh5oSP5ZCO5omn6KGMIFwiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlXCLvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjk1NgorIzogd3Qtc3RhdHVzLmM6OTU0CiBtc2dpZCAiWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuIgogbXNnc3RyICLmgqjmraPlnKjlgZrmi6PpgInmk43kvZzjgIIiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAorIzogd3Qtc3RhdHVzLmM6OTU4Cittc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIikiCittc2dzdHIgIiAg77yI6Kej5Yaz5Yay56qB5bm26L+Q6KGMIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIu+8iSIKKworIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8CisjOiB3dC1zdGF0dXMuYzo5NjEKK21zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIKK21zZ3N0ciAiICDvvIjmiYDmnInlhrLnqoHlt7Lop6PlhrPvvJrov5DooYwgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwi77yJIgorCisjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKICM6IHd0LXN0YXR1cy5jOjk2MwotbXNnaWQgIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjb21taXRcIikiCi1tc2dzdHIgIiAg77yI6Kej5Yaz5omA5pyJ5Yay56qB5ZCO77yM5omn6KGMIFwiZ2l0IGNvbW1pdFwi77yJIgorbXNnaWQgIiAgKHVzZSBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pIgorbXNnc3RyICIgIO+8iOS9v+eUqCBcImdpdCBjaGVycnktcGljayAtLWFib3J0XCIg5Lul5Y+W5raI5ouj6YCJ5pON5L2c77yJIgogCiAjOiB3dC1zdGF0dXMuYzo5NzIKICMsIGMtZm9ybWF0CkBAIC0xNDA4LDEzMyArMTU3NiwxMzIgQEAKIG1zZ2lkICIgICh1c2UgXCJnaXQgYmlzZWN0IHJlc2V0XCIgdG8gZ2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGJyYW5jaCkiCiBtc2dzdHIgIiAg77yI5L2/55SoIFwiZ2l0IGJpc2VjdCByZXNldFwiIOS7peWbnuWIsOWOn+acieWIhuaUr++8iSIKIAotIzogd3Qtc3RhdHVzLmM6MTE3NQorIzogd3Qtc3RhdHVzLmM6MTE3MwogbXNnaWQgIk9uIGJyYW5jaCAiCiBtc2dzdHIgIuS9jeS6juWIhuaUryAiCiAKLSM6IHd0LXN0YXR1cy5jOjExODYKKyM6IHd0LXN0YXR1cy5jOjExODAKK21zZ2lkICJyZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gIgorbXNnc3RyICLlj5jln7rmraPlnKjov5vooYzkuK3vvJvoh7MgIgorCisjOiB3dC1zdGF0dXMuYzoxMTg3CiBtc2dpZCAiSEVBRCBkZXRhY2hlZCBhdCAiCiBtc2dzdHIgIuWktOaMh+mSiOWIhuemu+S6jiAiCiAKLSM6IHd0LXN0YXR1cy5jOjExODgKKyM6IHd0LXN0YXR1cy5jOjExODkKIG1zZ2lkICJIRUFEIGRldGFjaGVkIGZyb20gIgogbXNnc3RyICLlpLTmjIfpkojliIbnprvoh6ogIgogCi0jOiB3dC1zdGF0dXMuYzoxMTkxCisjOiB3dC1zdGF0dXMuYzoxMTkyCiBtc2dpZCAiTm90IGN1cnJlbnRseSBvbiBhbnkgYnJhbmNoLiIKIG1zZ3N0ciAi5b2T5YmN5LiN5Zyo5Lu75L2V5YiG5pSv5LiK44CCIgogCi0jOiB3dC1zdGF0dXMuYzoxMjA4CisjOiB3dC1zdGF0dXMuYzoxMjA5CiBtc2dpZCAiSW5pdGlhbCBjb21taXQiCiBtc2dzdHIgIuWIneWni+aPkOS6pCIKIAotIzogd3Qtc3RhdHVzLmM6MTIyMgorIzogd3Qtc3RhdHVzLmM6MTIyMwogbXNnaWQgIlVudHJhY2tlZCBmaWxlcyIKIG1zZ3N0ciAi5pyq6Lef6Liq55qE5paH5Lu2IgogCi0jOiB3dC1zdGF0dXMuYzoxMjI0CisjOiB3dC1zdGF0dXMuYzoxMjI1CiBtc2dpZCAiSWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAi5b+955Wl55qE5paH5Lu2IgogCi0jICDor5HogIXvvJrku6XkuIvkuInmnaHlrp7pmYXkuLrkuIDkuKrmrrXokL0KLSM6IHd0LXN0YXR1cy5jOjEyMjgKKyM6IHd0LXN0YXR1cy5jOjEyMjkKICMsIGMtZm9ybWF0Ci1tc2dpZCAiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gICdzdGF0dXMgLXVubyciCi1tc2dzdHIgIuiAl+i0ueS6hiAlLjJmIOenkuS7peaemuS4vuacqui3n+i4queahOaWh+S7tuOAgidzdGF0dXMgLXVubyciCi0KLSMgIOivkeiAhe+8muS4uuWvuem9kO+8jOS4i+mdouS4pOWPpeWGheWuueacieiwg+aVtAotIzogd3Qtc3RhdHVzLmM6MTIzMgotbXNnaWQgIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGQiCi1tc2dzdHIgIuS5n+iuuOiDveaPkOmrmOmAn+W6pu+8jOS9huaCqOmcgOimgeWwj+W/g+S4jeimgeW/mOS6hua3u+WKoOaWsOaWh+S7tiIKK21zZ2lkICIiCisiSXQgdG9vayAlLjJmIHNlY29uZHMgdG8gZW51bWVyYXRlIHVudHJhY2tlZCBmaWxlcy4gJ3N0YXR1cyAtdW5vJ1xuIgorIm1heSBzcGVlZCBpdCB1cCwgYnV0IHlvdSBoYXZlIHRvIGJlIGNhcmVmdWwgbm90IHRvIGZvcmdldCB0byBhZGRcbiIKKyJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgorbXNnc3RyICIiCisi6ICX6LS55LqGICUuMmYg56eS5Lul5p6a5Li+5pyq6Lef6Liq55qE5paH5Lu244CCJ3N0YXR1cyAtdW5vJyDkuZ/orrjog73mj5Dpq5jpgJ/luqbvvIxcbiIKKyLkvYbmgqjpnIDopoHlsI/lv4PkuI3opoHlv5jkuobmt7vliqDmlrDmlofku7bvvIjlj4Lop4EgJ2dpdCBoZWxwIHN0YXR1cyfvvInjgIIiCiAKICM6IHd0LXN0YXR1cy5jOjEyMzUKLW1zZ2lkICJuZXcgZmlsZXMgeW91cnNlbGYgKHNlZSAnZ2l0IGhlbHAgc3RhdHVzJykuIgotbXNnc3RyICLvvIjlj4Lop4EgJ2dpdCBoZWxwIHN0YXR1cyfvvInjgIIiCi0KLSM6IHd0LXN0YXR1cy5jOjEyMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW50cmFja2VkIGZpbGVzIG5vdCBsaXN0ZWQlcyIKIG1zZ3N0ciAi5pyq6Lef6Liq55qE5paH5Lu25rKh5pyJ5YiX5Ye6JXMiCiAKICMgIOivkeiAhe+8muS4reaWh+Wtl+espuS4suaLvOaOpe+8jOWPr+WIoOmZpOWJjeWvvOepuuagvAotIzogd3Qtc3RhdHVzLmM6MTI0MAorIzogd3Qtc3RhdHVzLmM6MTIzNwogbXNnaWQgIiAodXNlIC11IG9wdGlvbiB0byBzaG93IHVudHJhY2tlZCBmaWxlcykiCiBtc2dzdHIgIu+8iOS9v+eUqCAtdSDlj4LmlbDmmL7npLrmnKrot5/ouKrnmoTmlofku7bvvIkiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNDYKKyM6IHd0LXN0YXR1cy5jOjEyNDMKIG1zZ2lkICJObyBjaGFuZ2VzIgogbXNnc3RyICLmsqHmnInkv67mlLkiCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTEKKyM6IHd0LXN0YXR1cy5jOjEyNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXQgKHVzZSBcImdpdCBhZGRcIiBhbmQvb3IgXCJnaXQgY29tbWl0IC1hXCIpXG4iCiBtc2dzdHIgIuS/ruaUueWwmuacquWKoOWFpeaPkOS6pO+8iOS9v+eUqCBcImdpdCBhZGRcIiDlkowv5oiWIFwiZ2l0IGNvbW1pdCAtYVwi77yJXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTQKKyM6IHd0LXN0YXR1cy5jOjEyNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gY2hhbmdlcyBhZGRlZCB0byBjb21taXRcbiIKIG1zZ3N0ciAi5L+u5pS55bCa5pyq5Yqg5YWl5o+Q5LqkXG4iCiAKLSM6IHd0LXN0YXR1cy5jOjEyNTcKKyM6IHd0LXN0YXR1cy5jOjEyNTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudCAodXNlIFwiZ2l0IGFkZFwiIHRvICIKICJ0cmFjaylcbiIKIG1zZ3N0ciAi5o+Q5Lqk5Li656m677yM5L2G5piv5a2Y5Zyo5bCa5pyq6Lef6Liq55qE5paH5Lu277yI5L2/55SoIFwiZ2l0IGFkZFwiIOW7uueri+i3n+i4qu+8iVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjYwCisjOiB3dC1zdGF0dXMuYzoxMjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgYWRkZWQgdG8gY29tbWl0IGJ1dCB1bnRyYWNrZWQgZmlsZXMgcHJlc2VudFxuIgogbXNnc3RyICLmj5DkuqTkuLrnqbrvvIzkvYbmmK/lrZjlnKjlsJrmnKrot5/ouKrnmoTmlofku7ZcbiIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMjYzCisjOiB3dC1zdGF0dXMuYzoxMjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0IChjcmVhdGUvY29weSBmaWxlcyBhbmQgdXNlIFwiZ2l0IGFkZFwiIHRvIHRyYWNrKVxuIgogbXNnc3RyICLml6Dmlofku7bopoHmj5DkuqTvvIjliJvlu7ov5ou36LSd5paH5Lu25bm25L2/55SoIFwiZ2l0IGFkZFwiIOW7uueri+i3n+i4qu+8iVxuIgogCi0jOiB3dC1zdGF0dXMuYzoxMjY2IHd0LXN0YXR1cy5jOjEyNzEKKyM6IHd0LXN0YXR1cy5jOjEyNjMgd3Qtc3RhdHVzLmM6MTI2OAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3RoaW5nIHRvIGNvbW1pdFxuIgogbXNnc3RyICLml6Dmlofku7bopoHmj5DkuqRcbiIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMjY5CisjOiB3dC1zdGF0dXMuYzoxMjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpXG4iCiBtc2dzdHIgIuaXoOaWh+S7tuimgeaPkOS6pO+8iOS9v+eUqCAtdSDmmL7npLrmnKrot5/ouKrnmoTmlofku7bvvIlcbiIKIAogIyAg6K+R6ICF77ya5Lit5paH5a2X56ym5Liy5ou85o6l77yM5Y+v5Yig6Zmk5YmN5a+856m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxMjczCisjOiB3dC1zdGF0dXMuYzoxMjcwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIGRpcmVjdG9yeSBjbGVhblxuIgogbXNnc3RyICLml6Dmlofku7bopoHmj5DkuqTvvIzlubLlh4DnmoTlt6XkvZzljLpcbiIKIAotIzogd3Qtc3RhdHVzLmM6MTM4MQorIzogd3Qtc3RhdHVzLmM6MTM3OAogbXNnaWQgIkhFQUQgKG5vIGJyYW5jaCkiCiBtc2dzdHIgIkhFQUTvvIjpnZ7liIbmlK/vvIkiCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWPpeWwvuepuuagvAotIzogd3Qtc3RhdHVzLmM6MTM4NworIzogd3Qtc3RhdHVzLmM6MTM4NAogbXNnaWQgIkluaXRpYWwgY29tbWl0IG9uICIKIG1zZ3N0ciAi5Yid5aeL5o+Q5Lqk5LqOICIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5Y+l5bC+56m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNDAyCisjOiB3dC1zdGF0dXMuYzoxMzk5CiBtc2dpZCAiYmVoaW5kICIKIG1zZ3N0ciAi6JC95ZCOICIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5Y+l5bC+56m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNDA1IHd0LXN0YXR1cy5jOjE0MDgKKyM6IHd0LXN0YXR1cy5jOjE0MDIgd3Qtc3RhdHVzLmM6MTQwNQogbXNnaWQgImFoZWFkICIKIG1zZ3N0ciAi6aKG5YWIICIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5Y+l5bC+56m65qC8Ci0jOiB3dC1zdGF0dXMuYzoxNDEwCisjOiB3dC1zdGF0dXMuYzoxNDA3CiBtc2dpZCAiLCBiZWhpbmQgIgogbXNnc3RyICLvvIzokL3lkI4gIgogCi0jOiBjb21wYXQvcHJlY29tcG9zZV91dGY4LmM6NTggYnVpbHRpbi9jbG9uZS5jOjM0MgorIzogY29tcGF0L3ByZWNvbXBvc2VfdXRmOC5jOjU4IGJ1aWx0aW4vY2xvbmUuYzozNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHVubGluayAnJXMnIgogbXNnc3RyICLml6Dms5XliKDpmaQgJyVzJyIKQEAgLTE1NDMsMTI1ICsxNzEwLDYgQEAKIG1zZ2lkICJnaXQgYWRkIFtvcHRpb25zXSBbLS1dIDxwYXRoc3BlYz4uLi4iCiBtc2dzdHIgImdpdCBhZGQgW+mAiemhuV0gWy0tXSA86Lev5b6E5Yy56YWNPi4uLiIKIAotIzogYnVpbHRpbi9hZGQuYzo2MwotIywgYy1mb3JtYXQKLW1zZ2lkICJ1bmV4cGVjdGVkIGRpZmYgc3RhdHVzICVjIgotbXNnc3RyICLmhI/lpJbnmoTlt67lvILnirbmgIEgJWMiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6NjggYnVpbHRpbi9jb21taXQuYzoyMzMKLW1zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCi1tc2dzdHIgIuabtOaWsOaWh+S7tuWksei0pSIKLQotIzogYnVpbHRpbi9hZGQuYzo3OAotIywgYy1mb3JtYXQKLW1zZ2lkICJyZW1vdmUgJyVzJ1xuIgotbXNnc3RyICLliKDpmaQgJyVzJ1xuIgotCi0jOiBidWlsdGluL2FkZC5jOjE0OAotbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVmcmVzaGluZyB0aGUgaW5kZXg6IgotbXNnc3RyICLliLfmlrDntKLlvJXkuYvlkI7lsJrmnKrooqvmmoLlrZjnmoTlj5jmm7TvvJoiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MTUxIGJ1aWx0aW4vYWRkLmM6NDYwIGJ1aWx0aW4vcm0uYzoyNzUKLSMsIGMtZm9ybWF0Ci1tc2dpZCAicGF0aHNwZWMgJyVzJyBkaWQgbm90IG1hdGNoIGFueSBmaWxlcyIKLW1zZ3N0ciAi6Lev5b6EICclcycg5pyq5Yy56YWN5Lu75L2V5paH5Lu2IgotCi0jOiBidWlsdGluL2FkZC5jOjIzNAotbXNnaWQgIkNvdWxkIG5vdCByZWFkIHRoZSBpbmRleCIKLW1zZ3N0ciAi5LiN6IO96K+75Y+W57Si5byVIgotCi0jOiBidWlsdGluL2FkZC5jOjI0NAotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nLiIKLW1zZ3N0ciAi5LiN6IO95omT5byAICclcycg5Lul5YaZ5YWl44CCIgotCi0jOiBidWlsdGluL2FkZC5jOjI0OAotbXNnaWQgIkNvdWxkIG5vdCB3cml0ZSBwYXRjaCIKLW1zZ3N0ciAi5LiN6IO955Sf5oiQ6KGl5LiBIgotCi0jOiBidWlsdGluL2FkZC5jOjI1MwotIywgYy1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3Qgc3RhdCAnJXMnIgotbXNnc3RyICLkuI3og73mn6XnnIvmlofku7bnirbmgIEgJyVzJyIKLQotIzogYnVpbHRpbi9hZGQuYzoyNTUKLW1zZ2lkICJFbXB0eSBwYXRjaC4gQWJvcnRlZC4iCi1tc2dzdHIgIuepuuihpeS4geOAguW8guW4uOe7iOatouOAgiIKLQotIzogYnVpbHRpbi9hZGQuYzoyNjEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IGFwcGx5ICclcyciCi1tc2dzdHIgIuS4jeiDveW6lOeUqCAnJXMnIgotCi0jOiBidWlsdGluL2FkZC5jOjI3MQotbXNnaWQgIlRoZSBmb2xsb3dpbmcgcGF0aHMgYXJlIGlnbm9yZWQgYnkgb25lIG9mIHlvdXIgLmdpdGlnbm9yZSBmaWxlczpcbiIKLW1zZ3N0ciAi5LiL5YiX6Lev5b6E5qC55o2u5oKo55qE5LiA5LiqIC5naXRpZ25vcmUg5paH5Lu26ICM6KKr5b+955Wl77yaXG4iCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjc3IGJ1aWx0aW4vY2xlYW4uYzoxNjEgYnVpbHRpbi9mZXRjaC5jOjc4IGJ1aWx0aW4vbXYuYzo2MwotIzogYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NiBidWlsdGluL3B1c2guYzo0MjUgYnVpbHRpbi9yZW1vdGUuYzoxMjUzCi0jOiBidWlsdGluL3JtLmM6MjA2Ci1tc2dpZCAiZHJ5IHJ1biIKLW1zZ3N0ciAi5ryU5LmgIgotCi0jOiBidWlsdGluL2FkZC5jOjI3OCBidWlsdGluL2FwcGx5LmM6NDQwOSBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE5Ci0jOiBidWlsdGluL2NvbW1pdC5jOjExNTIgYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTUgYnVpbHRpbi9mc2NrLmM6NjEzCi0jOiBidWlsdGluL2xvZy5jOjE1MTQgYnVpbHRpbi9tdi5jOjYyIGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEyCi1tc2dpZCAiYmUgdmVyYm9zZSIKLW1zZ3N0ciAi5YaX6ZW/6L6T5Ye6IgotCi0jOiBidWlsdGluL2FkZC5jOjI4MAotbXNnaWQgImludGVyYWN0aXZlIHBpY2tpbmciCi1tc2dzdHIgIuS6pOS6kuW8j+aLo+mAiSIKLQotIzogYnVpbHRpbi9hZGQuYzoyODEgYnVpbHRpbi9jaGVja291dC5jOjEwNjAgYnVpbHRpbi9yZXNldC5jOjI1OAotbXNnaWQgInNlbGVjdCBodW5rcyBpbnRlcmFjdGl2ZWx5IgotbXNnc3RyICLkuqTkupLlvI/mjJHpgInmlbDmja7lnZciCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgyCi1tc2dpZCAiZWRpdCBjdXJyZW50IGRpZmYgYW5kIGFwcGx5IgotbXNnc3RyICLnvJbovpHlvZPliY3lt67lvILlubblupTnlKgiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MjgzCi1tc2dpZCAiYWxsb3cgYWRkaW5nIG90aGVyd2lzZSBpZ25vcmVkIGZpbGVzIgotbXNnc3RyICLlhYHorrjmt7vliqDlv73nlaXnmoTmlofku7YiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg0Ci1tc2dpZCAidXBkYXRlIHRyYWNrZWQgZmlsZXMiCi1tc2dzdHIgIuabtOaWsOW3sui3n+i4queahOaWh+S7tiIKLQotIzogYnVpbHRpbi9hZGQuYzoyODUKLW1zZ2lkICJyZWNvcmQgb25seSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIHdpbGwgYmUgYWRkZWQgbGF0ZXIiCi1tc2dzdHIgIuWPquiusOW9le+8jOivpei3r+W+hOeojeWQjuWGjea3u+WKoCIKLQotIzogYnVpbHRpbi9hZGQuYzoyODYKLW1zZ2lkICJhZGQgY2hhbmdlcyBmcm9tIGFsbCB0cmFja2VkIGFuZCB1bnRyYWNrZWQgZmlsZXMiCi1tc2dzdHIgIua3u+WKoOaJgOacieaUueWPmOeahOW3sui3n+i4quaWh+S7tuWSjOacqui3n+i4quaWh+S7tiIKLQotIzogYnVpbHRpbi9hZGQuYzoyODcKLW1zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCi1tc2dzdHIgIuS4jea3u+WKoO+8jOWPquWIt+aWsOe0ouW8lSIKLQotIzogYnVpbHRpbi9hZGQuYzoyODgKLW1zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgotbXNnc3RyICLot7Pov4flm6Dlh7rplJnkuI3og73mt7vliqDnmoTmlofku7YiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6Mjg5Ci1tc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgotbXNnc3RyICLmo4Dmn6XlnKjmvJTkuaDmqKHlvI/kuIvmlofku7bvvIjljbPkvb/kuI3lrZjlnKjvvInmmK/lkKbooqvlv73nlaUiCi0KLSM6IGJ1aWx0aW4vYWRkLmM6MzExCi0jLCBjLWZvcm1hdAotbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCi1tc2dzdHIgIuS9v+eUqCAtZiDlj4LmlbDlpoLmnpzmgqjnoa7lrp7opoHmt7vliqDlroPku6zjgIJcbiIKLQotIzogYnVpbHRpbi9hZGQuYzozMTIKLW1zZ2lkICJubyBmaWxlcyBhZGRlZCIKLW1zZ3N0ciAi5rKh5pyJ5paH5Lu26KKr5re75YqgIgotCi0jOiBidWlsdGluL2FkZC5jOjMxOAotbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCi1tc2dzdHIgIua3u+WKoOaWh+S7tuWksei0pSIKLQogIyAg6K+R6ICF77ya5a2X56ym5Liy6aaW6KGM6KGM6aaW6KaB5re75Yqg4oCcd2FybmluZzog4oCd5a2X5Liy77yM5pWF5q2k6aaW6KGM6KaB6L6D5YW25L2Z6KGM55+tCiAjLgogIy4gKiBUbyBiZSBjb25zaXN0ZW50IHdpdGggImdpdCBhZGQgLXAiIGFuZCBtb3N0IEdpdApAQCAtMTY3Myw3ICsxNzIxLDcgQEAKICMuICogdG8gdHJlZS13aWRlLCBrZWVwaW5nIHRoZSB3YXJuaW5nIGZvciBhIHdoaWxlLCBhbmQKICMuICogZXZlbnR1YWxseSB3ZSBjYW4gZHJvcCB0aGUgd2FybmluZy4KICMuCi0jOiBidWlsdGluL2FkZC5jOjMzNQorIzogYnVpbHRpbi9hZGQuYzo1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIGJlaGF2aW9yIG9mICdnaXQgYWRkICVzIChvciAlcyknIHdpdGggbm8gcGF0aCBhcmd1bWVudCBmcm9tIGFcbiIKQEAgLTE2OTAsMTAgKzE3MzgsMTAgQEAKICIgIChvciBnaXQgYWRkICVzIC4pXG4iCiAiXG4iCiAiV2l0aCB0aGUgY3VycmVudCBHaXQgdmVyc2lvbiwgdGhlIGNvbW1hbmQgaXMgcmVzdHJpY3RlZCB0byB0aGUgY3VycmVudCAiCi0iZGlyZWN0b3J5LiIKKyJkaXJlY3RvcnkuXG4iCiBtc2dzdHIgIiIKLSLlnKggR2l0IDIuMCDniYjmnKzvvIzlsIbkuI3lho3lhYHorrjlnKjkuIDkuKrlrZDnm67lvZXkuIvkuI3luKbku7vkvZXot6/lvoTlj4LmlbDlnLDmiafooYxcbiIKLSLlkb3ku6QgJ2dpdCBhZGQgJXMgKOaIliAlcykn44CC5omA5Lul5LiN6KaB5YaN57un57ut5L2/55So5LqG44CCXG4iCisi5ZyoIEdpdCAyLjAg54mI5pys77yM5L2N5LqO5LiA5Liq5a2Q55uu5b2V5LiL5LiN5bim5Lu75L2V6Lev5b6E5Y+C5pWw5Zyw5omn6KGM5ZG95LukXG4iCisiJ2dpdCBhZGQgJXMgKOaIliAlcyknIOeahOihjOS4uuWwhuiiq+aUueWPmO+8jOS4jeimgeWGjee7p+e7reS9v+eUqOS6huOAglxuIgogIuWmguaenOimgea3u+WKoOaVtOS4quebruW9leagkeeahOWGheWuue+8jOaJp+ihjO+8mlxuIgogIlxuIgogIiAgZ2l0IGFkZCAlcyA6L1xuIgpAQCAtMTcwNCwzMiArMTc1MiwxODMgQEAKICIgIGdpdCBhZGQgJXMgLlxuIgogIiAgKOaIliBnaXQgYWRkICVzIC4pXG4iCiAiXG4iCi0i5a+55LqO5b2T5YmN54mI5pys55qEIEdpdO+8jOi/meadoeWRveS7pOWPquS9nOeUqOS6juW9k+WJjeebruW9leOAgiIKKyLlr7nkuo7lvZPliY3niYjmnKznmoQgR2l077yM6L+Z5p2h5ZG95Luk5Y+q5L2c55So5LqO5b2T5YmN55uu5b2V44CCXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6MzgxCisjOiBidWlsdGluL2FkZC5jOjEwMAorIywgYy1mb3JtYXQKK21zZ2lkICIiCisiWW91IHJhbiAnZ2l0IGFkZCcgd2l0aCBuZWl0aGVyICctQSAoLS1hbGwpJyBvciAnLS1pZ25vcmUtcmVtb3ZhbCcsXG4iCisid2hvc2UgYmVoYXZpb3VyIHdpbGwgY2hhbmdlIGluIEdpdCAyLjAgd2l0aCByZXNwZWN0IHRvIHBhdGhzIHlvdSByZW1vdmVkLlxuIgorIlBhdGhzIGxpa2UgJyVzJyB0aGF0IGFyZVxuIgorInJlbW92ZWQgZnJvbSB5b3VyIHdvcmtpbmcgdHJlZSBhcmUgaWdub3JlZCB3aXRoIHRoaXMgdmVyc2lvbiBvZiBHaXQuXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoc3BlYz4nLCB3aGljaCBpcyB0aGUgY3VycmVudCBkZWZhdWx0LFxuIgorIiAgaWdub3JlcyBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorIlxuIgorIiogJ2dpdCBhZGQgLS1hbGwgPHBhdGhzcGVjPicgd2lsbCBsZXQgeW91IGFsc28gcmVjb3JkIHRoZSByZW1vdmFscy5cbiIKKyJcbiIKKyJSdW4gJ2dpdCBzdGF0dXMnIHRvIGNoZWNrIHRoZSBwYXRocyB5b3UgcmVtb3ZlZCBmcm9tIHlvdXIgd29ya2luZyB0cmVlLlxuIgorbXNnc3RyICIiCisi5oKo5Zyo6L+Q6KGMICdnaXQgYWRkJyDml7bmsqHmnInmjIflrpogJy1BICgtLWFsbCknIOaIliAnLS1pZ25vcmUtcmVtb3ZhbCfvvIxcbiIKKyLpkojlr7nlhbbkuK3mnKzlnLDnp7vpmaTot6/lvoTnmoTooYzkuLrlsIblnKggR2l0IDIuMCDniYjmnKzlupPlj5HnlJ/lj5jljJbjgIJcbiIKKyLlg4/mnKzlnLDlt6XkvZzljLrnp7vpmaTnmoTot6/lvoQgJyVzJ1xuIgorIuWcqOatpOeJiOacrOeahCBHaXQg5Lit6KKr5b+955Wl44CCXG4iCisiXG4iCisiKiAnZ2l0IGFkZCAtLWlnbm9yZS1yZW1vdmFsIDxwYXRoc3BlYz4n77yM5piv5b2T5YmN54mI5pys55qE6buY6K6k5pON5L2c77yMXG4iCisiICDlv73nlaXmgqjmnKzlnLDlt6XkvZzljLrkuK3np7vpmaTnmoTmlofku7bjgIJcbiIKKyJcbiIKKyIqICdnaXQgYWRkIC0tYWxsIDxwYXRoc3BlYz4nIOWwhuiuqeaCqOWQjOaXtuWvueWIoOmZpOaTjeS9nOi/m+ihjOiusOW9leOAglxuIgorIlxuIgorIui/kOihjCAnZ2l0IHN0YXR1cycg5p2l5qOA5p+l5oKo5pys5Zyw5bel5L2c5Yy65Lit56e76Zmk55qE6Lev5b6E44CCXG4iCisKKyM6IGJ1aWx0aW4vYWRkLmM6MTQ0CisjLCBjLWZvcm1hdAorbXNnaWQgInVuZXhwZWN0ZWQgZGlmZiBzdGF0dXMgJWMiCittc2dzdHIgIuaEj+WklueahOW3ruW8gueKtuaAgSAlYyIKKworIzogYnVpbHRpbi9hZGQuYzoxNDkgYnVpbHRpbi9jb21taXQuYzoyNTIKK21zZ2lkICJ1cGRhdGluZyBmaWxlcyBmYWlsZWQiCittc2dzdHIgIuabtOaWsOaWh+S7tuWksei0pSIKKworIzogYnVpbHRpbi9hZGQuYzoxNjMKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVtb3ZlICclcydcbiIKK21zZ3N0ciAi5Yig6ZmkICclcydcbiIKKworIzogYnVpbHRpbi9hZGQuYzoyNTMKK21zZ2lkICJVbnN0YWdlZCBjaGFuZ2VzIGFmdGVyIHJlZnJlc2hpbmcgdGhlIGluZGV4OiIKK21zZ3N0ciAi5Yi35paw57Si5byV5LmL5ZCO5bCa5pyq6KKr5pqC5a2Y55qE5Y+Y5pu077yaIgorCisjOiBidWlsdGluL2FkZC5jOjI1NiBidWlsdGluL2FkZC5jOjU3MyBidWlsdGluL3JtLmM6MzM3CisjLCBjLWZvcm1hdAorbXNnaWQgInBhdGhzcGVjICclcycgZGlkIG5vdCBtYXRjaCBhbnkgZmlsZXMiCittc2dzdHIgIui3r+W+hCAnJXMnIOacquWMuemFjeS7u+S9leaWh+S7tiIKKworIzogYnVpbHRpbi9hZGQuYzozMzkKK21zZ2lkICJDb3VsZCBub3QgcmVhZCB0aGUgaW5kZXgiCittc2dzdHIgIuS4jeiDveivu+WPlue0ouW8lSIKKworIzogYnVpbHRpbi9hZGQuYzozNTAKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IG9wZW4gJyVzJyBmb3Igd3JpdGluZy4iCittc2dzdHIgIuS4jeiDveaJk+W8gCAnJXMnIOS7peWGmeWFpeOAgiIKKworIzogYnVpbHRpbi9hZGQuYzozNTQKK21zZ2lkICJDb3VsZCBub3Qgd3JpdGUgcGF0Y2giCittc2dzdHIgIuS4jeiDveeUn+aIkOihpeS4gSIKKworIzogYnVpbHRpbi9hZGQuYzozNTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ291bGQgbm90IHN0YXQgJyVzJyIKK21zZ3N0ciAi5LiN6IO95p+l55yL5paH5Lu254q25oCBICclcyciCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzYxCittc2dpZCAiRW1wdHkgcGF0Y2guIEFib3J0ZWQuIgorbXNnc3RyICLnqbrooaXkuIHjgILlvILluLjnu4jmraLjgIIiCisKKyM6IGJ1aWx0aW4vYWRkLmM6MzY3CisjLCBjLWZvcm1hdAorbXNnaWQgIkNvdWxkIG5vdCBhcHBseSAnJXMnIgorbXNnc3RyICLkuI3og73lupTnlKggJyVzJyIKKworIzogYnVpbHRpbi9hZGQuYzozNzcKK21zZ2lkICJUaGUgZm9sbG93aW5nIHBhdGhzIGFyZSBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCittc2dzdHIgIuS4i+WIl+i3r+W+hOagueaNruaCqOeahOS4gOS4qiAuZ2l0aWdub3JlIOaWh+S7tuiAjOiiq+W/veeVpe+8mlxuIgorCisjOiBidWlsdGluL2FkZC5jOjM5NCBidWlsdGluL2NsZWFuLmM6ODc1IGJ1aWx0aW4vZmV0Y2guYzo3OCBidWlsdGluL212LmM6NjMKKyM6IGJ1aWx0aW4vcHJ1bmUtcGFja2VkLmM6NzMgYnVpbHRpbi9wdXNoLmM6NDUxIGJ1aWx0aW4vcmVtb3RlLmM6MTI1MworIzogYnVpbHRpbi9ybS5jOjI2OAorbXNnaWQgImRyeSBydW4iCittc2dzdHIgIua8lOS5oCIKKworIzogYnVpbHRpbi9hZGQuYzozOTUgYnVpbHRpbi9hcHBseS5jOjQ0MTAgYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxOQorIzogYnVpbHRpbi9jb21taXQuYzoxMjIwIGJ1aWx0aW4vY291bnQtb2JqZWN0cy5jOjk1IGJ1aWx0aW4vZnNjay5jOjYxMworIzogYnVpbHRpbi9sb2cuYzoxNTczIGJ1aWx0aW4vbXYuYzo2MiBidWlsdGluL3JlYWQtdHJlZS5jOjExMworbXNnaWQgImJlIHZlcmJvc2UiCittc2dzdHIgIuWGl+mVv+i+k+WHuiIKKworIzogYnVpbHRpbi9hZGQuYzozOTcKK21zZ2lkICJpbnRlcmFjdGl2ZSBwaWNraW5nIgorbXNnc3RyICLkuqTkupLlvI/mi6PpgIkiCisKKyM6IGJ1aWx0aW4vYWRkLmM6Mzk4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDczIGJ1aWx0aW4vcmVzZXQuYzoyNjEKK21zZ2lkICJzZWxlY3QgaHVua3MgaW50ZXJhY3RpdmVseSIKK21zZ3N0ciAi5Lqk5LqS5byP5oyR6YCJ5pWw5o2u5Z2XIgorCisjOiBidWlsdGluL2FkZC5jOjM5OQorbXNnaWQgImVkaXQgY3VycmVudCBkaWZmIGFuZCBhcHBseSIKK21zZ3N0ciAi57yW6L6R5b2T5YmN5beu5byC5bm25bqU55SoIgorCisjOiBidWlsdGluL2FkZC5jOjQwMAorbXNnaWQgImFsbG93IGFkZGluZyBvdGhlcndpc2UgaWdub3JlZCBmaWxlcyIKK21zZ3N0ciAi5YWB6K645re75Yqg5b+955Wl55qE5paH5Lu2IgorCisjOiBidWlsdGluL2FkZC5jOjQwMQorbXNnaWQgInVwZGF0ZSB0cmFja2VkIGZpbGVzIgorbXNnc3RyICLmm7TmlrDlt7Lot5/ouKrnmoTmlofku7YiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAyCittc2dpZCAicmVjb3JkIG9ubHkgdGhlIGZhY3QgdGhhdCB0aGUgcGF0aCB3aWxsIGJlIGFkZGVkIGxhdGVyIgorbXNnc3RyICLlj6rorrDlvZXvvIzor6Xot6/lvoTnqI3lkI7lho3mt7vliqAiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDAzCittc2dpZCAiYWRkIGNoYW5nZXMgZnJvbSBhbGwgdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgorbXNnc3RyICLmt7vliqDmiYDmnInmlLnlj5jnmoTlt7Lot5/ouKrmlofku7blkozmnKrot5/ouKrmlofku7YiCisKKyMuIHRha2VzIG5vIGFyZ3VtZW50cworIzogYnVpbHRpbi9hZGQuYzo0MDYKK21zZ2lkICJpZ25vcmUgcGF0aHMgcmVtb3ZlZCBpbiB0aGUgd29ya2luZyB0cmVlIChzYW1lIGFzIC0tbm8tYWxsKSIKK21zZ3N0ciAi5b+955Wl5bel5L2c5Yy65Lit56e76Zmk55qE6Lev5b6E77yI5ZKMIC0tbm8tYWxsIOebuOWQjO+8iSIKKworIzogYnVpbHRpbi9hZGQuYzo0MDgKK21zZ2lkICJkb24ndCBhZGQsIG9ubHkgcmVmcmVzaCB0aGUgaW5kZXgiCittc2dzdHIgIuS4jea3u+WKoO+8jOWPquWIt+aWsOe0ouW8lSIKKworIzogYnVpbHRpbi9hZGQuYzo0MDkKK21zZ2lkICJqdXN0IHNraXAgZmlsZXMgd2hpY2ggY2Fubm90IGJlIGFkZGVkIGJlY2F1c2Ugb2YgZXJyb3JzIgorbXNnc3RyICLot7Pov4flm6Dlh7rplJnkuI3og73mt7vliqDnmoTmlofku7YiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDEwCittc2dpZCAiY2hlY2sgaWYgLSBldmVuIG1pc3NpbmcgLSBmaWxlcyBhcmUgaWdub3JlZCBpbiBkcnkgcnVuIgorbXNnc3RyICLmo4Dmn6XlnKjmvJTkuaDmqKHlvI/kuIvmlofku7bvvIjljbPkvb/kuI3lrZjlnKjvvInmmK/lkKbooqvlv73nlaUiCisKKyM6IGJ1aWx0aW4vYWRkLmM6NDMyCisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSAtZiBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gYWRkIHRoZW0uXG4iCittc2dzdHIgIuS9v+eUqCAtZiDlj4LmlbDlpoLmnpzmgqjnoa7lrp7opoHmt7vliqDlroPku6zjgIJcbiIKKworIzogYnVpbHRpbi9hZGQuYzo0MzMKK21zZ2lkICJubyBmaWxlcyBhZGRlZCIKK21zZ3N0ciAi5rKh5pyJ5paH5Lu26KKr5re75YqgIgorCisjOiBidWlsdGluL2FkZC5jOjQzOQorbXNnaWQgImFkZGluZyBmaWxlcyBmYWlsZWQiCittc2dzdHIgIua3u+WKoOaWh+S7tuWksei0pSIKKworIzogYnVpbHRpbi9hZGQuYzo0NzgKIG1zZ2lkICItQSBhbmQgLXUgYXJlIG11dHVhbGx5IGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLUEg5ZKMIC11IOmAiemhueS6kuaWpSIKIAotIzogYnVpbHRpbi9hZGQuYzozODMKKyM6IGJ1aWx0aW4vYWRkLmM6NDk2CiBtc2dpZCAiT3B0aW9uIC0taWdub3JlLW1pc3NpbmcgY2FuIG9ubHkgYmUgdXNlZCB0b2dldGhlciB3aXRoIC0tZHJ5LXJ1biIKIG1zZ3N0ciAi6YCJ6aG5IC0taWdub3JlLW1pc3Npbmcg5Y+q6IO95ZKMIC0tZHJ5LXJ1biDlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDE0CisjOiBidWlsdGluL2FkZC5jOjUyNgogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3RoaW5nIHNwZWNpZmllZCwgbm90aGluZyBhZGRlZC5cbiIKIG1zZ3N0ciAi5rKh5pyJ5oyH5a6a5paH5Lu277yM5Lmf5rKh5pyJ5paH5Lu26KKr5re75Yqg44CCXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDE1CisjOiBidWlsdGluL2FkZC5jOjUyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXliZSB5b3Ugd2FudGVkIHRvIHNheSAnZ2l0IGFkZCAuJz9cbiIKIG1zZ3N0ciAi5Lmf6K645oKo5oOz6KaB5omn6KGMICdnaXQgYWRkIC4n77yfXG4iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDIxIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6NjcgYnVpbHRpbi9jbGVhbi5jOjIwNAotIzogYnVpbHRpbi9jb21taXQuYzoyOTMgYnVpbHRpbi9tdi5jOjgyIGJ1aWx0aW4vcm0uYzoyMzUKKyM6IGJ1aWx0aW4vYWRkLmM6NTMzIGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTYxIGJ1aWx0aW4vY2xlYW4uYzo5MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MzEyIGJ1aWx0aW4vbXYuYzo4MiBidWlsdGluL3JtLmM6Mjk3CiBtc2dpZCAiaW5kZXggZmlsZSBjb3JydXB0IgogbXNnc3RyICLntKLlvJXmlofku7bmjZ/lnY8iCiAKLSM6IGJ1aWx0aW4vYWRkLmM6NDgxIGJ1aWx0aW4vYXBwbHkuYzo0NTA1IGJ1aWx0aW4vbXYuYzoyMjkgYnVpbHRpbi9ybS5jOjM3MAorIzogYnVpbHRpbi9hZGQuYzo2MDUgYnVpbHRpbi9hcHBseS5jOjQ1MDYgYnVpbHRpbi9tdi5jOjIyOSBidWlsdGluL3JtLmM6NDMyCiBtc2dpZCAiVW5hYmxlIHRvIHdyaXRlIG5ldyBpbmRleCBmaWxlIgogbXNnc3RyICLml6Dms5XlhpnlhaXmlrDntKLlvJXmlofku7YiCiAKQEAgLTE5MDgsMjkzICsyMTA3LDI5MyBAQAogbXNnaWQgImNhbm5vdCBjaGVja291dCAlcyIKIG1zZ3N0ciAi5LiN6IO95qOA5Ye6ICVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzE0MCBidWlsdGluL2FwcGx5LmM6MzE0OSBidWlsdGluL2FwcGx5LmM6MzE5MworIzogYnVpbHRpbi9hcHBseS5jOjMxNDAgYnVpbHRpbi9hcHBseS5jOjMxNDkgYnVpbHRpbi9hcHBseS5jOjMxOTQKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCBvZiAlcyBmYWlsZWQiCiBtc2dzdHIgIuivu+WPliAlcyDlpLHotKUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMTczIGJ1aWx0aW4vYXBwbHkuYzozMzk1CisjOiBidWlsdGluL2FwcGx5LmM6MzE3NCBidWlsdGluL2FwcGx5LmM6MzM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICVzIGhhcyBiZWVuIHJlbmFtZWQvZGVsZXRlZCIKIG1zZ3N0ciAi6Lev5b6EICVzIOW3sue7j+iiq+mHjeWRveWQjS/liKDpmaQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozMjU0IGJ1aWx0aW4vYXBwbHkuYzozNDA5CisjOiBidWlsdGluL2FwcGx5LmM6MzI1NSBidWlsdGluL2FwcGx5LmM6MzQxMAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgiCiBtc2dzdHIgIiVz77ya5LiN5a2Y5Zyo5LqO57Si5byV5LitIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI1OCBidWlsdGluL2FwcGx5LmM6MzQwMSBidWlsdGluL2FwcGx5LmM6MzQyMworIzogYnVpbHRpbi9hcHBseS5jOjMyNTkgYnVpbHRpbi9hcHBseS5jOjM0MDIgYnVpbHRpbi9hcHBseS5jOjM0MjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6ICVzIgogbXNnc3RyICIlc++8miVzIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzI2MyBidWlsdGluL2FwcGx5LmM6MzQxNworIzogYnVpbHRpbi9hcHBseS5jOjMyNjQgYnVpbHRpbi9hcHBseS5jOjM0MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGRvZXMgbm90IG1hdGNoIGluZGV4IgogbXNnc3RyICIlc++8muWSjOe0ouW8leS4jeWMuemFjSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjMzNjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozMzY2CiBtc2dpZCAicmVtb3ZhbCBwYXRjaCBsZWF2ZXMgZmlsZSBjb250ZW50cyIKIG1zZ3N0ciAi56e76Zmk6KGl5LiB5LuN55WZ5LiL5LqG5paH5Lu25YaF5a65IgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNAorIzogYnVpbHRpbi9hcHBseS5jOjM0MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IHdyb25nIHR5cGUiCiBtc2dzdHIgIiVz77ya6ZSZ6K+v57G75Z6LIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzQzNgorIzogYnVpbHRpbi9hcHBseS5jOjM0MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgaGFzIHR5cGUgJW8sIGV4cGVjdGVkICVvIgogbXNnc3RyICIlcyDnmoTnsbvlnovmmK8gJW/vvIzlupTkuLogJW8iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTM3CisjOiBidWlsdGluL2FwcGx5LmM6MzUzOAogIywgYy1mb3JtYXQKIG1zZ2lkICIlczogYWxyZWFkeSBleGlzdHMgaW4gaW5kZXgiCiBtc2dzdHIgIiVz77ya5bey57uP5a2Y5Zyo5LqO57Si5byV5LitIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzU0MAorIzogYnVpbHRpbi9hcHBseS5jOjM1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXM6IGFscmVhZHkgZXhpc3RzIGluIHdvcmtpbmcgZGlyZWN0b3J5IgogbXNnc3RyICIlc++8muW3sue7j+WtmOWcqOS6juW3peS9nOWMuuS4rSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSIKIG1zZ3N0ciAiJTIkcyDnmoTmlrDmqKHlvI/vvIglMSRv77yJ5ZKM5pen5qih5byP77yIJTMkb++8ieS4jeWMuemFjSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NjUKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5ldyBtb2RlICglbykgb2YgJXMgZG9lcyBub3QgbWF0Y2ggb2xkIG1vZGUgKCVvKSBvZiAlcyIKIG1zZ3N0ciAiJTIkcyDnmoTmlrDmqKHlvI/vvIglMSRv77yJ5ZKMICU0JHMg55qE5pen5qih5byP77yIJTMkb++8ieS4jeWMuemFjSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM1NzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiBwYXRjaCBkb2VzIG5vdCBhcHBseSIKIG1zZ3N0ciAiJXPvvJrooaXkuIHmnKrlupTnlKgiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozNTg2CisjOiBidWlsdGluL2FwcGx5LmM6MzU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGVja2luZyBwYXRjaCAlcy4uLiIKIG1zZ3N0ciAi5qOA5p+l6KGl5LiBICVzLi4uIgogCi0jOiBidWlsdGluL2FwcGx5LmM6MzY3OSBidWlsdGluL2NoZWNrb3V0LmM6MjE1IGJ1aWx0aW4vcmVzZXQuYzoxMjQKKyM6IGJ1aWx0aW4vYXBwbHkuYzozNjgwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyMTYgYnVpbHRpbi9yZXNldC5jOjEyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWtlX2NhY2hlX2VudHJ5IGZhaWxlZCBmb3IgcGF0aCAnJXMnIgogbXNnc3RyICLlr7not6/lvoQgJyVzJyDnmoQgbWFrZV9jYWNoZV9lbnRyeSDmk43kvZzlpLHotKUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODIyCisjOiBidWlsdGluL2FwcGx5LmM6MzgyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlICVzIGZyb20gaW5kZXgiCiBtc2dzdHIgIuS4jeiDveS7jue0ouW8leS4reenu+mZpCAlcyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTAKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODUxCiAjLCBjLWZvcm1hdAotbXNnaWQgImNvcnJ1cHQgcGF0Y2ggZm9yIHN1YnByb2plY3QgJXMiCi1tc2dzdHIgIuWtkOmhueebriAlcyDmjZ/lnY/nmoTooaXkuIEiCittc2dpZCAiY29ycnVwdCBwYXRjaCBmb3Igc3VibW9kdWxlICVzIgorbXNnc3RyICLlrZDmqKHnu4QgJXMg5o2f5Z2P55qE6KGl5LiBIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg1NAorIzogYnVpbHRpbi9hcHBseS5jOjM4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXQgbmV3bHkgY3JlYXRlZCBmaWxlICclcyciCiBtc2dzdHIgIuS4jeiDveaemuS4vuaWsOW7uuaWh+S7tiAnJXMnIOeahOeKtuaAgSIKIAotIzogYnVpbHRpbi9hcHBseS5jOjM4NTkKKyM6IGJ1aWx0aW4vYXBwbHkuYzozODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgYmFja2luZyBzdG9yZSBmb3IgbmV3bHkgY3JlYXRlZCBmaWxlICVzIgogbXNnc3RyICLkuI3og73kuLrmlrDlu7rmlofku7YgJXMg5Yib5bu65ZCO56uv5a2Y5YKoIgogCi0jOiBidWlsdGluL2FwcGx5LmM6Mzg2MiBidWlsdGluL2FwcGx5LmM6Mzk3MAorIzogYnVpbHRpbi9hcHBseS5jOjM4NjMgYnVpbHRpbi9hcHBseS5jOjM5NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGFkZCBjYWNoZSBlbnRyeSBmb3IgJXMiCiBtc2dzdHIgIuaXoOazleS4uiAlcyDmt7vliqDnvJPlrZjmnaHnm64iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozODk1CisjOiBidWlsdGluL2FwcGx5LmM6Mzg5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjbG9zaW5nIGZpbGUgJyVzJyIKIG1zZ3N0ciAi5YWz6Zet5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzozOTQ0CisjOiBidWlsdGluL2FwcGx5LmM6Mzk0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgZmlsZSAnJXMnIG1vZGUgJW8iCiBtc2dzdHIgIuS4jeiDveWGmeaWh+S7tiAnJXMnIOadg+mZkCAlbyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzEKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGxpZWQgcGF0Y2ggJXMgY2xlYW5seS4iCiBtc2dzdHIgIuaIkOWKn+W6lOeUqOihpeS4gSAlc+OAgiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwMzkKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQwCiBtc2dpZCAiaW50ZXJuYWwgZXJyb3IiCiBtc2dzdHIgIuWGhemDqOmUmeivryIKIAogIy4gU2F5IHRoaXMgZXZlbiB3aXRob3V0IC0tdmVyYm9zZQotIzogYnVpbHRpbi9hcHBseS5jOjQwNDIKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFwcGx5aW5nIHBhdGNoICUlcyB3aXRoICVkIHJlamVjdC4uLiIKIG1zZ2lkX3BsdXJhbCAiQXBwbHlpbmcgcGF0Y2ggJSVzIHdpdGggJWQgcmVqZWN0cy4uLiIKIG1zZ3N0clswXSAi5bqU55SoICUlcyDkuKrooaXkuIHvvIzlhbbkuK0gJWQg5Liq6KKr5ouS57udLi4uIgogbXNnc3RyWzFdICLlupTnlKggJSVzIOS4quihpeS4ge+8jOWFtuS4rSAlZCDkuKrooqvmi5Lnu50uLi4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MDUyCisjOiBidWlsdGluL2FwcGx5LmM6NDA1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0cnVuY2F0aW5nIC5yZWogZmlsZW5hbWUgdG8gJS4qcy5yZWoiCiBtc2dzdHIgIuaIquefrSAucmVqIOaWh+S7tuWQjeS4uiAlLipzLnJlaiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQwNzMKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkh1bmsgIyVkIGFwcGxpZWQgY2xlYW5seS4iCiBtc2dzdHIgIuesrCAjJWQg5Liq54mH5q615oiQ5Yqf5bqU55So44CCIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDA3NgorIzogYnVpbHRpbi9hcHBseS5jOjQwNzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVqZWN0ZWQgaHVuayAjJWQuIgogbXNnc3RyICLmi5Lnu53nrKwgIyVkIOS4queJh+auteOAgiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQyMjYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MjI3CiBtc2dpZCAidW5yZWNvZ25pemVkIGlucHV0IgogbXNnc3RyICLmnKrog73or4bliKvnmoTovpPlhaUiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MjM3CisjOiBidWlsdGluL2FwcGx5LmM6NDIzOAogbXNnaWQgInVuYWJsZSB0byByZWFkIGluZGV4IGZpbGUiCiBtc2dzdHIgIuaXoOazleivu+WPlue0ouW8leaWh+S7tiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTYgYnVpbHRpbi9hcHBseS5jOjQzNTkgYnVpbHRpbi9jbG9uZS5jOjkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM1NyBidWlsdGluL2FwcGx5LmM6NDM2MCBidWlsdGluL2Nsb25lLmM6OTEKICM6IGJ1aWx0aW4vZmV0Y2guYzo2MwogbXNnaWQgInBhdGgiCiBtc2dzdHIgIui3r+W+hCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNTcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0MzU4CiBtc2dpZCAiZG9uJ3QgYXBwbHkgY2hhbmdlcyBtYXRjaGluZyB0aGUgZ2l2ZW4gcGF0aCIKIG1zZ3N0ciAi5LiN6KaB5bqU55So5LiO57uZ5Ye66Lev5b6E5ZCR5Yy56YWN55qE5Y+Y5pu0IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MAorIzogYnVpbHRpbi9hcHBseS5jOjQzNjEKIG1zZ2lkICJhcHBseSBjaGFuZ2VzIG1hdGNoaW5nIHRoZSBnaXZlbiBwYXRoIgogbXNnc3RyICLlupTnlKjkuI7nu5nlh7rot6/lvoTlkJHljLnphY3nmoTlj5jmm7QiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzYyCisjOiBidWlsdGluL2FwcGx5LmM6NDM2MwogbXNnaWQgIm51bSIKIG1zZ3N0ciAi5pWw5a2XIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2MworIzogYnVpbHRpbi9hcHBseS5jOjQzNjQKIG1zZ2lkICJyZW1vdmUgPG51bT4gbGVhZGluZyBzbGFzaGVzIGZyb20gdHJhZGl0aW9uYWwgZGlmZiBwYXRocyIKIG1zZ3N0ciAi5LuO5Lyg57uf55qEIGRpZmYg6Lev5b6E5Lit56e76Zmk5oyH5a6a5pWw6YeP55qE5YmN5a+85pac57q/IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM2NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNjcKIG1zZ2lkICJpZ25vcmUgYWRkaXRpb25zIG1hZGUgYnkgdGhlIHBhdGNoIgogbXNnc3RyICLlv73nlaXooaXkuIHkuK3nmoTmt7vliqDnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzY4CisjOiBidWlsdGluL2FwcGx5LmM6NDM2OQogbXNnaWQgImluc3RlYWQgb2YgYXBwbHlpbmcgdGhlIHBhdGNoLCBvdXRwdXQgZGlmZnN0YXQgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAi5LiN5bqU55So6KGl5LiB77yM6ICM5piv5pi+56S66L6T5YWl55qE5beu5byC57uf6K6h77yIZGlmZnN0YXTvvIkiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzcyCisjOiBidWlsdGluL2FwcGx5LmM6NDM3MwogbXNnaWQgInNob3cgbnVtYmVyIG9mIGFkZGVkIGFuZCBkZWxldGVkIGxpbmVzIGluIGRlY2ltYWwgbm90YXRpb24iCiBtc2dzdHIgIuS7peWNgei/m+WItuaVsOaYvuekuua3u+WKoOWSjOWIoOmZpOeahOihjOaVsCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzNzQKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc1CiBtc2dpZCAiaW5zdGVhZCBvZiBhcHBseWluZyB0aGUgcGF0Y2gsIG91dHB1dCBhIHN1bW1hcnkgZm9yIHRoZSBpbnB1dCIKIG1zZ3N0ciAi5LiN5bqU55So6KGl5LiB77yM6ICM5piv5pi+56S66L6T5YWl55qE5qaC6KaBIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM3NgorIzogYnVpbHRpbi9hcHBseS5jOjQzNzcKIG1zZ2lkICJpbnN0ZWFkIG9mIGFwcGx5aW5nIHRoZSBwYXRjaCwgc2VlIGlmIHRoZSBwYXRjaCBpcyBhcHBsaWNhYmxlIgogbXNnc3RyICLkuI3lupTnlKjooaXkuIHvvIzogIzmmK/mn6XnnIvooaXkuIHmmK/lkKblj6/lupTnlKgiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzc4CisjOiBidWlsdGluL2FwcGx5LmM6NDM3OQogbXNnaWQgIm1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCBpbmRleCIKIG1zZ3N0ciAi56Gu6K6k6KGl5LiB5Y+v5Lul5bqU55So5Yiw5b2T5YmN57Si5byVIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MAorIzogYnVpbHRpbi9hcHBseS5jOjQzODEKIG1zZ2lkICJhcHBseSBhIHBhdGNoIHdpdGhvdXQgdG91Y2hpbmcgdGhlIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAi5bqU55So6KGl5LiB6ICM5LiN5L+u5pS55bel5L2c5Yy6IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM4MgorIzogYnVpbHRpbi9hcHBseS5jOjQzODMKIG1zZ2lkICJhbHNvIGFwcGx5IHRoZSBwYXRjaCAodXNlIHdpdGggLS1zdGF0Ly0tc3VtbWFyeS8tLWNoZWNrKSIKIG1zZ3N0ciAi6L+Y5bqU55So5q2k6KGl5LiB77yI5LiOIC0tc3RhdC8tLXN1bW1hcnkvLS1jaGVjayDpgInpobnlkIzml7bkvb/nlKjvvIkiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg0CisjOiBidWlsdGluL2FwcGx5LmM6NDM4NQogbXNnaWQgImF0dGVtcHQgdGhyZWUtd2F5IG1lcmdlIGlmIGEgcGF0Y2ggZG9lcyBub3QgYXBwbHkiCiBtc2dzdHIgIuWmguaenOS4gOS4quihpeS4geS4jeiDveW6lOeUqOWImeWwneivleS4iei3r+WQiOW5tiIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0Mzg3CiBtc2dpZCAiYnVpbGQgYSB0ZW1wb3JhcnkgaW5kZXggYmFzZWQgb24gZW1iZWRkZWQgaW5kZXggaW5mb3JtYXRpb24iCiBtc2dzdHIgIuWIm+W7uuS4gOS4quS4tOaXtue0ouW8leWfuuS6juW1jOWFpeeahOe0ouW8leS/oeaBryIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQzODggYnVpbHRpbi9jaGVja291dC1pbmRleC5jOjE5NyBidWlsdGluL2xzLWZpbGVzLmM6NDYzCisjOiBidWlsdGluL2FwcGx5LmM6NDM4OSBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTk3IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjIKIG1zZ2lkICJwYXRocyBhcmUgc2VwYXJhdGVkIHdpdGggTlVMIGNoYXJhY3RlciIKIG1zZ3N0ciAi6Lev5b6E5LulIE5VTCDlrZfnrKbliIbpmpQiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkxCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MgogbXNnaWQgImVuc3VyZSBhdCBsZWFzdCA8bj4gbGluZXMgb2YgY29udGV4dCBtYXRjaCIKIG1zZ3N0ciAi56Gu5L+d6Iez5bCR5Yy56YWNIDxuPiDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0MzkyCisjOiBidWlsdGluL2FwcGx5LmM6NDM5MwogbXNnaWQgImFjdGlvbiIKIG1zZ3N0ciAi5Yqo5L2cIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5MworIzogYnVpbHRpbi9hcHBseS5jOjQzOTQKIG1zZ2lkICJkZXRlY3QgbmV3IG9yIG1vZGlmaWVkIGxpbmVzIHRoYXQgaGF2ZSB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0ciAi5qOA5p+l5paw5aKe5ZKM5L+u5pS555qE6KGM5Lit6Ze055qE56m655m95a2X56ym5rul55SoIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDM5NiBidWlsdGluL2FwcGx5LmM6NDM5OQorIzogYnVpbHRpbi9hcHBseS5jOjQzOTcgYnVpbHRpbi9hcHBseS5jOjQ0MDAKIG1zZ2lkICJpZ25vcmUgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlIHdoZW4gZmluZGluZyBjb250ZXh0IgogbXNnc3RyICLmn6Xmib7kuIrkuIvmlofml7blv73nlaXnqbrnmb3lrZfnrKbnmoTlj5jmm7QiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDAyCisjOiBidWlsdGluL2FwcGx5LmM6NDQwMwogbXNnaWQgImFwcGx5IHRoZSBwYXRjaCBpbiByZXZlcnNlIgogbXNnc3RyICLlj43lkJHlupTnlKjooaXkuIEiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA0CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNQogbXNnaWQgImRvbid0IGV4cGVjdCBhdCBsZWFzdCBvbmUgbGluZSBvZiBjb250ZXh0IgogbXNnc3RyICLml6DpnIDoh7PlsJHkuIDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDA2CisjOiBidWlsdGluL2FwcGx5LmM6NDQwNwogbXNnaWQgImxlYXZlIHRoZSByZWplY3RlZCBodW5rcyBpbiBjb3JyZXNwb25kaW5nICoucmVqIGZpbGVzIgogbXNnc3RyICLlsIbmi5Lnu53nmoTooaXkuIHniYfmrrXkv53lrZjlnKjlr7nlupTnmoQgKi5yZWog5paH5Lu25LitIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQwOAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MDkKIG1zZ2lkICJhbGxvdyBvdmVybGFwcGluZyBodW5rcyIKIG1zZ3N0ciAi5YWB6K646YeN5Y+g55qE6KGl5LiB54mH5q61IgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxMQorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTIKIG1zZ2lkICJ0b2xlcmF0ZSBpbmNvcnJlY3RseSBkZXRlY3RlZCBtaXNzaW5nIG5ldy1saW5lIGF0IHRoZSBlbmQgb2YgZmlsZSIKIG1zZ3N0ciAi5YWB6K645LiN5q2j56Gu55qE5paH5Lu25pyr5bC+5o2i6KGM56ymIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNAorIzogYnVpbHRpbi9hcHBseS5jOjQ0MTUKIG1zZ2lkICJkbyBub3QgdHJ1c3QgdGhlIGxpbmUgY291bnRzIGluIHRoZSBodW5rIGhlYWRlcnMiCiBtc2dzdHIgIuS4jeS/oeS7u+ihpeS4geeJh+auteeahOWktOS/oeaBr+S4reeahOihjOWPtyIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0MTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDE3CiBtc2dpZCAicm9vdCIKIG1zZ3N0ciAi5qC555uu5b2VIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQxNworIzogYnVpbHRpbi9hcHBseS5jOjQ0MTgKIG1zZ2lkICJwcmVwZW5kIDxyb290PiB0byBhbGwgZmlsZW5hbWVzIgogbXNnc3RyICLkuLrmiYDmnInmlofku7blkI3liY3mt7vliqAgPOagueebruW9lT4iCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDM5CisjOiBidWlsdGluL2FwcGx5LmM6NDQ0MAogbXNnaWQgIi0tM3dheSBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS0zd2F5IOWcqOS4gOS4queJiOacrOW6k+S5i+WkliIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0NDcKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDQ4CiBtc2dpZCAiLS1pbmRleCBvdXRzaWRlIGEgcmVwb3NpdG9yeSIKIG1zZ3N0ciAiLS1pbmRleCDlnKjkuIDkuKrniYjmnKzlupPkuYvlpJYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDUwCisjOiBidWlsdGluL2FwcGx5LmM6NDQ1MQogbXNnaWQgIi0tY2FjaGVkIG91dHNpZGUgYSByZXBvc2l0b3J5IgogbXNnc3RyICItLWNhY2hlZCDlnKjkuIDkuKrniYjmnKzlupPkuYvlpJYiCiAKLSM6IGJ1aWx0aW4vYXBwbHkuYzo0NDY2CisjOiBidWlsdGluL2FwcGx5LmM6NDQ2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW4ndCBvcGVuIHBhdGNoICclcyciCiBtc2dzdHIgIuS4jeiDveaJk+W8gOihpeS4gSAnJXMnIgogCi0jOiBidWlsdGluL2FwcGx5LmM6NDQ4MAorIzogYnVpbHRpbi9hcHBseS5jOjQ0ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAic3F1ZWxjaGVkICVkIHdoaXRlc3BhY2UgZXJyb3IiCiBtc2dpZF9wbHVyYWwgInNxdWVsY2hlZCAlZCB3aGl0ZXNwYWNlIGVycm9ycyIKIG1zZ3N0clswXSAi5oqR5Yi25LiL5LuN5pyJICVkIOS4quepuueZveWtl+espuivr+eUqCIKIG1zZ3N0clsxXSAi5oqR5Yi25LiL5LuN5pyJICVkIOS4quepuueZveWtl+espuivr+eUqCIKIAotIzogYnVpbHRpbi9hcHBseS5jOjQ0ODYgYnVpbHRpbi9hcHBseS5jOjQ0OTYKKyM6IGJ1aWx0aW4vYXBwbHkuYzo0NDg3IGJ1aWx0aW4vYXBwbHkuYzo0NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVkIGxpbmUgYWRkcyB3aGl0ZXNwYWNlIGVycm9ycy4iCiBtc2dpZF9wbHVyYWwgIiVkIGxpbmVzIGFkZCB3aGl0ZXNwYWNlIGVycm9ycy4iCkBAIC0yMjQ4LDEwMyArMjQ0NywxMDMgQEAKIG1zZ2lkICJ1cGRhdGUgQklTRUNUX0hFQUQgaW5zdGVhZCBvZiBjaGVja2luZyBvdXQgdGhlIGN1cnJlbnQgY29tbWl0IgogbXNnc3RyICLmm7TmlrAgQklTRUNUX0hFQUQg6ICM6Z2e5qOA5Ye65b2T5YmN5o+Q5LqkIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjUKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyNgogbXNnaWQgImdpdCBibGFtZSBbb3B0aW9uc10gW3Jldi1vcHRzXSBbcmV2XSBbLS1dIGZpbGUiCiBtc2dzdHIgImdpdCBibGFtZSBb6YCJ6aG5XSBb54mI5pys6YCJ6aG5XSBb54mI5pysXSBbLS1dIOaWh+S7tiIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjMwIGJ1aWx0aW4vc2hvcnRsb2cuYzoxNQorIzogYnVpbHRpbi9ibGFtZS5jOjMxCiBtc2dpZCAiW3Jldi1vcHRzXSBhcmUgZG9jdW1lbnRlZCBpbiBnaXQtcmV2LWxpc3QoMSkiCiBtc2dzdHIgIlvniYjmnKzpgInpobldIOeahOaWh+aho+iusOW9leWcqCBnaXQtcmV2LWxpc3QoMSkg5LitIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzYKIG1zZ2lkICJTaG93IGJsYW1lIGVudHJpZXMgYXMgd2UgZmluZCB0aGVtLCBpbmNyZW1lbnRhbGx5IgogbXNnc3RyICLlop7ph4/lvI/lnLDmmL7npLrlj5HnjrDnmoQgYmxhbWUg5p2h55uuIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyNzcKIG1zZ2lkICJTaG93IGJsYW5rIFNIQS0xIGZvciBib3VuZGFyeSBjb21taXRzIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLovrnnlYzmj5DkuqTmmL7npLrnqbrnmoQgU0hBLTHvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzUyCisjOiBidWlsdGluL2JsYW1lLmM6MjI3OAogbXNnaWQgIkRvIG5vdCB0cmVhdCByb290IGNvbW1pdHMgYXMgYm91bmRhcmllcyAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5LiN5oqK5qC55o+Q5Lqk5L2c5Li66L6555WM77yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1MworIzogYnVpbHRpbi9ibGFtZS5jOjIyNzkKIG1zZ2lkICJTaG93IHdvcmsgY29zdCBzdGF0aXN0aWNzIgogbXNnc3RyICLmmL7npLrlkb3ku6TmtojogJfnu5/orqEiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzU0CisjOiBidWlsdGluL2JsYW1lLmM6MjI4MAogbXNnaWQgIlNob3cgb3V0cHV0IHNjb3JlIGZvciBibGFtZSBlbnRyaWVzIgogbXNnc3RyICLmmL7npLrliKTmlq0gYmxhbWUg5p2h55uu5L2N56e755qE5b6X5YiG6K+K5pat5L+h5oGvIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODEKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGZpbGVuYW1lIChEZWZhdWx0OiBhdXRvKSIKIG1zZ3N0ciAi5pi+56S65Y6f5aeL5paH5Lu25ZCN77yI6buY6K6k77ya6Ieq5Yqo77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyODIKIG1zZ2lkICJTaG93IG9yaWdpbmFsIGxpbmVudW1iZXIgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIuaYvuekuuWOn+Wni+eahOihjOWPt++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjgzCiBtc2dpZCAiU2hvdyBpbiBhIGZvcm1hdCBkZXNpZ25lZCBmb3IgbWFjaGluZSBjb25zdW1wdGlvbiIKIG1zZ3N0ciAi5pi+56S65Li65LiA5Liq6YCC5ZCI5py65Zmo6K+75Y+W55qE5qC85byPIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM1OAorIzogYnVpbHRpbi9ibGFtZS5jOjIyODQKIG1zZ2lkICJTaG93IHBvcmNlbGFpbiBmb3JtYXQgd2l0aCBwZXItbGluZSBjb21taXQgaW5mb3JtYXRpb24iCiBtc2dzdHIgIuS4uuavj+S4gOihjOaYvuekuuacuuWZqOmAgueUqOeahOaPkOS6pOS/oeaBryIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNTkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg1CiBtc2dpZCAiVXNlIHRoZSBzYW1lIG91dHB1dCBtb2RlIGFzIGdpdC1hbm5vdGF0ZSAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5L2/55So5ZKMIGdpdC1hbm5vdGF0ZSDnm7jlkIznmoTovpPlh7rmqKHlvI/vvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYwCisjOiBidWlsdGluL2JsYW1lLmM6MjI4NgogbXNnaWQgIlNob3cgcmF3IHRpbWVzdGFtcCAoRGVmYXVsdDogb2ZmKSIKIG1zZ3N0ciAi5pi+56S65Y6f5aeL5pe26Ze05oiz77yI6buY6K6k77ya5YWz6Zet77yJIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2MQorIzogYnVpbHRpbi9ibGFtZS5jOjIyODcKIG1zZ2lkICJTaG93IGxvbmcgY29tbWl0IFNIQTEgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIuaYvuekuumVv+eahFNIQTHmj5DkuqTlj7fvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzYyCisjOiBidWlsdGluL2JsYW1lLmM6MjI4OAogbXNnaWQgIlN1cHByZXNzIGF1dGhvciBuYW1lIGFuZCB0aW1lc3RhbXAgKERlZmF1bHQ6IG9mZikiCiBtc2dzdHIgIumakOiXj+S9nOiAheWQjeWtl+WSjOaXtumXtOaIs++8iOm7mOiupO+8muWFs+mXre+8iSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjMKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjg5CiBtc2dpZCAiU2hvdyBhdXRob3IgZW1haWwgaW5zdGVhZCBvZiBuYW1lIChEZWZhdWx0OiBvZmYpIgogbXNnc3RyICLmmL7npLrkvZzogIXnmoTpgq7nrrHogIzkuI3mmK/lkI3lrZfvvIjpu5jorqTvvJrlhbPpl63vvIkiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY0CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MAogbXNnaWQgIklnbm9yZSB3aGl0ZXNwYWNlIGRpZmZlcmVuY2VzIgogbXNnc3RyICLlv73nlaXnqbrnmb3lt67lvIIiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY1CisjOiBidWlsdGluL2JsYW1lLmM6MjI5MQogbXNnaWQgIlNwZW5kIGV4dHJhIGN5Y2xlcyB0byBmaW5kIGJldHRlciBtYXRjaCIKIG1zZ3N0ciAi6Iqx6LS56aKd5aSW55qE5b6q546v5p2l5om+5Yiw5pu05aW955qE5Yy56YWNIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM2NgorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTIKIG1zZ2lkICJVc2UgcmV2aXNpb25zIGZyb20gPGZpbGU+IGluc3RlYWQgb2YgY2FsbGluZyBnaXQtcmV2LWxpc3QiCiBtc2dzdHIgIuS9v+eUqOadpeiHqiA8ZmlsZT4g55qE5L+u6K6i6ZuG6ICM5LiN5piv6LCD55SoIGdpdC1yZXYtbGlzdCIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjcKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjkzCiBtc2dpZCAiVXNlIDxmaWxlPidzIGNvbnRlbnRzIGFzIHRoZSBmaW5hbCBpbWFnZSIKIG1zZ3N0ciAi5L2/55SoIDxmaWxlPiDnmoTlhoXlrrnkvZzkuLrmnIDnu4jnmoTlm77niYciCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4IGJ1aWx0aW4vYmxhbWUuYzoyMzY5CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NCBidWlsdGluL2JsYW1lLmM6MjI5NQogbXNnaWQgInNjb3JlIgogbXNnc3RyICLlvpfliIYiCiAKLSM6IGJ1aWx0aW4vYmxhbWUuYzoyMzY4CisjOiBidWlsdGluL2JsYW1lLmM6MjI5NAogbXNnaWQgIkZpbmQgbGluZSBjb3BpZXMgd2l0aGluIGFuZCBhY3Jvc3MgZmlsZXMiCiBtc2dzdHIgIuaJvuWIsOaWh+S7tuWGheWPiui3qOaWh+S7tueahOihjOaLt+i0nSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNjkKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk1CiBtc2dpZCAiRmluZCBsaW5lIG1vdmVtZW50cyB3aXRoaW4gYW5kIGFjcm9zcyBmaWxlcyIKIG1zZ3N0ciAi5om+5Yiw5paH5Lu25YaF5Y+K6Leo5paH5Lu255qE6KGM56e75YqoIgogCi0jOiBidWlsdGluL2JsYW1lLmM6MjM3MAorIzogYnVpbHRpbi9ibGFtZS5jOjIyOTYKIG1zZ2lkICJuLG0iCiBtc2dzdHIgIm4sbSIKIAotIzogYnVpbHRpbi9ibGFtZS5jOjIzNzAKKyM6IGJ1aWx0aW4vYmxhbWUuYzoyMjk2CiBtc2dpZCAiUHJvY2VzcyBvbmx5IGxpbmUgcmFuZ2UgbixtLCBjb3VudGluZyBmcm9tIDEiCiBtc2dzdHIgIuWPquWkhOeQhuihjOiMg+WbtOWcqCBuIOWSjCBtIOS5i+mXtOeahO+8jOS7jiAxIOW8gOWniyIKIApAQCAtMjM2NSw3ICsyNTY0LDcgQEAKIG1zZ3N0ciAiZ2l0IGJyYW5jaCBb6YCJ6aG5XSAoLW0gfCAtTSkgWzzml6fliIbmlK8+XSA85paw5YiG5pSvPiIKIAogIyAg6K+R6ICF77ya5L+d5oyB5Y6f5o2i6KGM5qC85byP77yM5Zyo6L6T5Ye65pe2ICVzIOeahOabv+S7o+WGheWuueS8muiuqeWtl+espuS4suWPmOmVvwotIzogYnVpbHRpbi9icmFuY2guYzoxNDYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJkZWxldGluZyBicmFuY2ggJyVzJyB0aGF0IGhhcyBiZWVuIG1lcmdlZCB0b1xuIgpAQCAtMjM3NSw3ICsyNTc0LDcgQEAKICIgICAgICAgICAnJXMn77yM5L2G5pyq5ZCI5bm25YiwIEhFQUTjgIIiCiAKICMgIOivkeiAhe+8muS/neaMgeWOn+aNouihjOagvOW8j++8jOWcqOi+k+WHuuaXtiAlcyDnmoTmm7/ku6PlhoXlrrnkvJrorqnlrZfnrKbkuLLlj5jplb8KLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MTUwCisjOiBidWlsdGluL2JyYW5jaC5jOjE1NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGRlbGV0aW5nIGJyYW5jaCAnJXMnIHRoYXQgaXMgbm90IHlldCBtZXJnZWQgdG9cbiIKQEAgLTIzODQsMTIgKzI1ODMsMTIgQEAKICLlubbmnKrliKDpmaTliIbmlK8gJyVzJ++8jCDomb3nhLblroPlt7Lnu4/lkIjlubbliLAgSEVBRO+8jFxuIgogIiAgICAgICAgIOeEtuiAjOWNtOWwmuacquiiq+WQiOW5tuWIsOWIhuaUryAnJXMnIOOAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxNjQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTY4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5p+l6K+iICclcycg5oyH5ZCR55qE5o+Q5Lqk5a+56LGhIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjE2OAorIzogYnVpbHRpbi9icmFuY2guYzoxNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBicmFuY2ggJyVzJyBpcyBub3QgZnVsbHkgbWVyZ2VkLlxuIgpAQCAtMjM5OCwzMjcgKzI1OTcsMzI3IEBACiAi5YiG5pSvICclcycg5rKh5pyJ5a6M5YWo5ZCI5bm244CCXG4iCiAi5aaC5p6c5oKo56Gu6K6k6KaB5Yig6Zmk5a6D77yM5omn6KGMICdnaXQgYnJhbmNoIC1EICVzJ+OAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoxODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTg1CiBtc2dpZCAiVXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAi5peg5rOV5pu05pawIGNvbmZpZyDmlofku7YiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjA5CisjOiBidWlsdGluL2JyYW5jaC5jOjIxMwogbXNnaWQgImNhbm5vdCB1c2UgLWEgd2l0aCAtZCIKIG1zZ3N0ciAi5LiN6IO95bCGIC1hIOWSjCAtZCDlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjE1CisjOiBidWlsdGluL2JyYW5jaC5jOjIxOQogbXNnaWQgIkNvdWxkbid0IGxvb2sgdXAgY29tbWl0IG9iamVjdCBmb3IgSEVBRCIKIG1zZ3N0ciAi5peg5rOV5p+l6K+iIEhFQUQg5oyH5ZCR55qE5o+Q5Lqk5a+56LGhIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjIyMworIzogYnVpbHRpbi9icmFuY2guYzoyMjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRlbGV0ZSB0aGUgYnJhbmNoICclcycgd2hpY2ggeW91IGFyZSBjdXJyZW50bHkgb24uIgogbXNnc3RyICLml6Dms5XliKDpmaTmgqjlvZPliY3miYDlnKjnmoTliIbmlK8gJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyMzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlbW90ZSBicmFuY2ggJyVzJyBub3QgZm91bmQuIgogbXNnc3RyICLov5znqIvliIbmlK8gJyVzJyDmnKrlj5HnjrDjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjM3CisjOiBidWlsdGluL2JyYW5jaC5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJicmFuY2ggJyVzJyBub3QgZm91bmQuIgogbXNnc3RyICLliIbmlK8gJyVzJyDmnKrlj5HnjrDjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjUxCisjOiBidWlsdGluL2JyYW5jaC5jOjI1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJFcnJvciBkZWxldGluZyByZW1vdGUgYnJhbmNoICclcyciCiBtc2dzdHIgIuWIoOmZpOi/nOeoi+WIhuaUryAnJXMnIOaXtuWHuumUmSIKIAotIzogYnVpbHRpbi9icmFuY2guYzoyNTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkVycm9yIGRlbGV0aW5nIGJyYW5jaCAnJXMnIgogbXNnc3RyICLliKDpmaTliIbmlK8gJyVzJyDml7blh7rplJkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6MjU5CisjOiBidWlsdGluL2JyYW5jaC5jOjI2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJEZWxldGVkIHJlbW90ZSBicmFuY2ggJXMgKHdhcyAlcykuXG4iCiBtc2dzdHIgIuW3suWIoOmZpOi/nOeoi+WIhuaUryAlc++8iOabvuS4uiAlc++8ieOAglxuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjI2MAorIzogYnVpbHRpbi9icmFuY2guYzoyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRGVsZXRlZCBicmFuY2ggJXMgKHdhcyAlcykuXG4iCiBtc2dzdHIgIuW3suWIoOmZpOWIhuaUryAlc++8iOabvuS4uiAlc++8ieOAglxuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjM2MgorIzogYnVpbHRpbi9icmFuY2guYzozNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiYnJhbmNoICclcycgZG9lcyBub3QgcG9pbnQgYXQgYSBjb21taXQiCiBtc2dzdHIgIuWIhuaUryAnJXMnIOacquaMh+WQkeS4gOS4quaPkOS6pCIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0MzQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYmVoaW5kICVkXSIKIG1zZ3N0ciAiWyVz77ya6JC95ZCOICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0MzYKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIltiZWhpbmQgJWRdIgogbXNnc3RyICJb6JC95ZCOICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NDAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlslczogYWhlYWQgJWRdIgogbXNnc3RyICJbJXPvvJrpooblhYggJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0MgorIzogYnVpbHRpbi9icmFuY2guYzo0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2FoZWFkICVkXSIKIG1zZ3N0ciAiW+mihuWFiCAlZF0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NDQ1CisjOiBidWlsdGluL2JyYW5jaC5jOjQ2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJbJXM6IGFoZWFkICVkLCBiZWhpbmQgJWRdIgogbXNnc3RyICJbJXPvvJrpooblhYggJWTvvIzokL3lkI4gJWRdIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjQ0OAorIzogYnVpbHRpbi9icmFuY2guYzo0NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiW2FoZWFkICVkLCBiZWhpbmQgJWRdIgogbXNnc3RyICJb6aKG5YWIICVk77yM6JC95ZCOICVkXSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo0NzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NDkwCiBtc2dpZCAiICoqKiogaW52YWxpZCByZWYgKioqKiIKIG1zZ3N0ciAiICoqKiog5peg5pWI5byV55SoICoqKioiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTYyCisjOiBidWlsdGluL2JyYW5jaC5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICIobm8gYnJhbmNoLCByZWJhc2luZyAlcykiCiBtc2dzdHIgIu+8iOmdnuWIhuaUr++8jOato+WPmOWfuiAlc++8iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo1NjUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIihubyBicmFuY2gsIGJpc2VjdCBzdGFydGVkIG9uICVzKSIKIG1zZ3N0ciAi77yI6Z2e5YiG5pSv77yM5LqM5YiG5p+l5om+5byA5aeL5LqOICVz77yJIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjU2OAorIzogYnVpbHRpbi9icmFuY2guYzo1ODgKICMsIGMtZm9ybWF0CiBtc2dpZCAiKGRldGFjaGVkIGZyb20gJXMpIgogbXNnc3RyICLvvIjliIbnprvoh6ogJXPvvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NTcxCisjOiBidWlsdGluL2JyYW5jaC5jOjU5MQogbXNnaWQgIihubyBicmFuY2gpIgogbXNnc3RyICLvvIjpnZ7liIbmlK/vvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjE3CisjOiBidWlsdGluL2JyYW5jaC5jOjYzNwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJyVzJyBkb2VzIG5vdCBwb2ludCB0byBhIGNvbW1pdCIKIG1zZ3N0ciAi5a+56LGhICclcycg5rKh5pyJ5oyH5ZCR5LiA5Liq5o+Q5LqkIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjY0OQorIzogYnVpbHRpbi9icmFuY2guYzo2NjkKIG1zZ2lkICJzb21lIHJlZnMgY291bGQgbm90IGJlIHJlYWQiCiBtc2dzdHIgIuS4gOS6m+W8leeUqOS4jeiDveivu+WPliIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NjIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjgyCiBtc2dpZCAiY2Fubm90IHJlbmFtZSB0aGUgY3VycmVudCBicmFuY2ggd2hpbGUgbm90IG9uIGFueS4iCiBtc2dzdHIgIuaXoOazlemHjeWRveWQjeW9k+WJjeWIhuaUr+WboOS4uuS4jeWkhOS6juS7u+S9leWIhuaUr+S4iuOAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo2NzIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkludmFsaWQgYnJhbmNoIG5hbWU6ICclcyciCiBtc2dzdHIgIuaXoOaViOeahOWIhuaUr+WQje+8miclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njg3CisjOiBidWlsdGluL2JyYW5jaC5jOjcwNwogbXNnaWQgIkJyYW5jaCByZW5hbWUgZmFpbGVkIgogbXNnc3RyICLliIbmlK/ph43lkb3lkI3lpLHotKUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NjkxCisjOiBidWlsdGluL2JyYW5jaC5jOjcxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJSZW5hbWVkIGEgbWlzbmFtZWQgYnJhbmNoICclcycgYXdheSIKIG1zZ3N0ciAi6YeN5ZG95ZCN5o6J5LiA5Liq6ZSZ6K+v5ZG95ZCN55qE5pen5YiG5pSvICclcyciCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Njk1CisjOiBidWlsdGluL2JyYW5jaC5jOjcxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJCcmFuY2ggcmVuYW1lZCB0byAlcywgYnV0IEhFQUQgaXMgbm90IHVwZGF0ZWQhIgogbXNnc3RyICLliIbmlK/ph43lkb3lkI3kuLogJXPvvIzkvYYgSEVBRCDmsqHmnInmm7TmlrDvvIEiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzAyCisjOiBidWlsdGluL2JyYW5jaC5jOjcyMgogbXNnaWQgIkJyYW5jaCBpcyByZW5hbWVkLCBidXQgdXBkYXRlIG9mIGNvbmZpZy1maWxlIGZhaWxlZCIKIG1zZ3N0ciAi5YiG5pSv6KKr6YeN5ZG95ZCN77yM5L2G5pu05pawIGNvbmZpZyDmlofku7blpLHotKUiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzE3CisjOiBidWlsdGluL2JyYW5jaC5jOjczNwogIywgYy1mb3JtYXQKIG1zZ2lkICJtYWxmb3JtZWQgb2JqZWN0IG5hbWUgJXMiCiBtc2dzdHIgIumdnuazleeahOWvueixoeWQjSAlcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NDEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBicmFuY2ggZGVzY3JpcHRpb24gdGVtcGxhdGU6ICVzIgogbXNnc3RyICLkuI3og73lhpnliIbmlK/mj4/ov7DmqKHniYjvvJolcyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6NzkxCiBtc2dpZCAiR2VuZXJpYyBvcHRpb25zIgogbXNnc3RyICLpgJrnlKjpgInpobkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzczCisjOiBidWlsdGluL2JyYW5jaC5jOjc5MwogbXNnaWQgInNob3cgaGFzaCBhbmQgc3ViamVjdCwgZ2l2ZSB0d2ljZSBmb3IgdXBzdHJlYW0gYnJhbmNoIgogbXNnc3RyICLmmL7npLrlk4jluIzlgLzlkozkuLvpopjvvIzoi6Xlj4LmlbDlh7rnjrDkuKTmrKHliJnmmL7npLrkuIrmuLjliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzc0CisjOiBidWlsdGluL2JyYW5jaC5jOjc5NAogbXNnaWQgInN1cHByZXNzIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMiCiBtc2dzdHIgIuS4jeaYvuekuuS/oeaBryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzUKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk1CiBtc2dpZCAic2V0IHVwIHRyYWNraW5nIG1vZGUgKHNlZSBnaXQtcHVsbCgxKSkiCiBtc2dzdHIgIuiuvue9rui3n+i4quaooeW8j++8iOWPguingSBnaXQtcHVsbCgxKe+8iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3NzcKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzk3CiBtc2dpZCAiY2hhbmdlIHVwc3RyZWFtIGluZm8iCiBtc2dzdHIgIuaUueWPmOS4iua4uOS/oeaBryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODEKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAxCiBtc2dpZCAidXNlIGNvbG9yZWQgb3V0cHV0IgogbXNnc3RyICLkvb/nlKjlvanoibLovpPlh7oiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6NzgyCisjOiBidWlsdGluL2JyYW5jaC5jOjgwMgogbXNnaWQgImFjdCBvbiByZW1vdGUtdHJhY2tpbmcgYnJhbmNoZXMiCiBtc2dzdHIgIuS9nOeUqOS6jui/nOeoi+i3n+i4quWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3ODUgYnVpbHRpbi9icmFuY2guYzo3OTEgYnVpbHRpbi9icmFuY2guYzo4MTIKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4IGJ1aWx0aW4vY29tbWl0LmM6MTM2OCBidWlsdGluL2NvbW1pdC5jOjEzNjkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MCBidWlsdGluL2NvbW1pdC5jOjEzNzEgYnVpbHRpbi90YWcuYzo0NjgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODA1IGJ1aWx0aW4vYnJhbmNoLmM6ODExIGJ1aWx0aW4vYnJhbmNoLmM6ODMyCisjOiBidWlsdGluL2JyYW5jaC5jOjgzOCBidWlsdGluL2NvbW1pdC5jOjE0MzMgYnVpbHRpbi9jb21taXQuYzoxNDM0CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUgYnVpbHRpbi9jb21taXQuYzoxNDM2IGJ1aWx0aW4vdGFnLmM6NDY4CiBtc2dpZCAiY29tbWl0IgogbXNnc3RyICLmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6Nzg2IGJ1aWx0aW4vYnJhbmNoLmM6NzkyCisjOiBidWlsdGluL2JyYW5jaC5jOjgwNiBidWlsdGluL2JyYW5jaC5jOjgxMgogbXNnaWQgInByaW50IG9ubHkgYnJhbmNoZXMgdGhhdCBjb250YWluIHRoZSBjb21taXQiCiBtc2dzdHIgIuWPquaJk+WNsOWMheWQq+ivpeaPkOS6pOeahOWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo3OTgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CiBtc2dpZCAiU3BlY2lmaWMgZ2l0LWJyYW5jaCBhY3Rpb25zOiIKIG1zZ3N0ciAi5YW35L2T55qEIGdpdC1icmFuY2gg5Yqo5L2c77yaIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjc5OQorIzogYnVpbHRpbi9icmFuY2guYzo4MTkKIG1zZ2lkICJsaXN0IGJvdGggcmVtb3RlLXRyYWNraW5nIGFuZCBsb2NhbCBicmFuY2hlcyIKIG1zZ3N0ciAi5YiX5Ye66L+c56iL6Lef6Liq5Y+K5pys5Zyw5YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMQorIzogYnVpbHRpbi9icmFuY2guYzo4MjEKIG1zZ2lkICJkZWxldGUgZnVsbHkgbWVyZ2VkIGJyYW5jaCIKIG1zZ3N0ciAi5Yig6Zmk5a6M5YWo5ZCI5bm255qE5YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwMgorIzogYnVpbHRpbi9icmFuY2guYzo4MjIKIG1zZ2lkICJkZWxldGUgYnJhbmNoIChldmVuIGlmIG5vdCBtZXJnZWQpIgogbXNnc3RyICLliKDpmaTliIbmlK/vvIjljbPkvb/msqHmnInlkIjlubbvvIkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODAzCisjOiBidWlsdGluL2JyYW5jaC5jOjgyMwogbXNnaWQgIm1vdmUvcmVuYW1lIGEgYnJhbmNoIGFuZCBpdHMgcmVmbG9nIgogbXNnc3RyICLnp7vliqgv6YeN5ZG95ZCN5LiA5Liq5YiG5pSv77yM5Lul5Y+K5a6D55qE5byV55So5pel5b+XIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNAorIzogYnVpbHRpbi9icmFuY2guYzo4MjQKIG1zZ2lkICJtb3ZlL3JlbmFtZSBhIGJyYW5jaCwgZXZlbiBpZiB0YXJnZXQgZXhpc3RzIgogbXNnc3RyICLnp7vliqgv6YeN5ZG95ZCN5LiA5Liq5YiG5pSv77yM5Y2z5L2/55uu5qCH5bey5a2Y5ZyoIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNQorIzogYnVpbHRpbi9icmFuY2guYzo4MjUKIG1zZ2lkICJsaXN0IGJyYW5jaCBuYW1lcyIKIG1zZ3N0ciAi5YiX5Ye65YiG5pSv5ZCNIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwNgorIzogYnVpbHRpbi9icmFuY2guYzo4MjYKIG1zZ2lkICJjcmVhdGUgdGhlIGJyYW5jaCdzIHJlZmxvZyIKIG1zZ3N0ciAi5Yib5bu65YiG5pSv55qE5byV55So5pel5b+XIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOAorIzogYnVpbHRpbi9icmFuY2guYzo4MjgKIG1zZ2lkICJlZGl0IHRoZSBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyYW5jaCIKIG1zZ3N0ciAi5qCH6K6w5YiG5pSv55qE5o+P6L+wIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgwOQorIzogYnVpbHRpbi9icmFuY2guYzo4MjkKIG1zZ2lkICJmb3JjZSBjcmVhdGlvbiAod2hlbiBhbHJlYWR5IGV4aXN0cykiCiBtc2dzdHIgIuW8uuWItuWIm+W7uu+8iOW9k+W3sue7j+WtmOWcqO+8iSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4MTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODMyCiBtc2dpZCAicHJpbnQgb25seSBub3QgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICLlj6rmiZPljbDmsqHmnInlkIjlubbnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODE4CisjOiBidWlsdGluL2JyYW5jaC5jOjgzOAogbXNnaWQgInByaW50IG9ubHkgbWVyZ2VkIGJyYW5jaGVzIgogbXNnc3RyICLlj6rmiZPljbDlkIjlubbnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6ODIyCisjOiBidWlsdGluL2JyYW5jaC5jOjg0MgogbXNnaWQgImxpc3QgYnJhbmNoZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAi5Lul5YiX55qE5pa55byP5pi+56S65YiG5pSvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjgzNQorIzogYnVpbHRpbi9icmFuY2guYzo4NTUKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSBIRUFEIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAi5peg5rOV5bCGIEhFQUQg6Kej5p6Q5Li65pyJ5pWI5byV55So44CCIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg0MCBidWlsdGluL2Nsb25lLmM6NjA5CisjOiBidWlsdGluL2JyYW5jaC5jOjg2MCBidWlsdGluL2Nsb25lLmM6NjMwCiBtc2dpZCAiSEVBRCBub3QgZm91bmQgYmVsb3cgcmVmcy9oZWFkcyEiCiBtc2dzdHIgIkhFQUQg5rKh5pyJ5L2N5LqOIC9yZWZzL2hlYWRzIOS5i+S4i++8gSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjMKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODgzCiBtc2dpZCAiLS1jb2x1bW4gYW5kIC0tdmVyYm9zZSBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWNvbHVtbiDlkowgLS12ZXJib3NlIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4NjkgYnVpbHRpbi9icmFuY2guYzo5MDgKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6ODg5IGJ1aWx0aW4vYnJhbmNoLmM6OTI4CiBtc2dpZCAiYnJhbmNoIG5hbWUgcmVxdWlyZWQiCiBtc2dzdHIgIuW/hemhu+aPkOS+m+WIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4ODQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTA0CiBtc2dpZCAiQ2Fubm90IGdpdmUgZGVzY3JpcHRpb24gdG8gZGV0YWNoZWQgSEVBRCIKIG1zZ3N0ciAi5LiN6IO95ZCR5YiG56a75aS05oyH6ZKI5o+Q5L6b5o+P6L+wIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg4OQorIzogYnVpbHRpbi9icmFuY2guYzo5MDkKIG1zZ2lkICJjYW5ub3QgZWRpdCBkZXNjcmlwdGlvbiBvZiBtb3JlIHRoYW4gb25lIGJyYW5jaCIKIG1zZ3N0ciAi5LiN6IO95Li65LiA5Liq5Lul5LiK55qE5YiG5pSv57yW6L6R5o+P6L+wIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjg5NgorIzogYnVpbHRpbi9icmFuY2guYzo5MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gY29tbWl0IG9uIGJyYW5jaCAnJXMnIHlldC4iCiBtc2dzdHIgIuWIhuaUryAnJXMnIOWwmuaXoOaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo4OTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGJyYW5jaCBuYW1lZCAnJXMnLiIKIG1zZ3N0ciAi5rKh5pyJ5YiG5pSvICclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTE0CisjOiBidWlsdGluL2JyYW5jaC5jOjkzNAogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIGZvciBhIHJlbmFtZSBvcGVyYXRpb24iCiBtc2dzdHIgIuS4uumHjeWRveWQjeaTjeS9nOaPkOS+m+S6huWkquWkmueahOWIhuaUr+WQjSIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MTkKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTM5CiBtc2dpZCAidG9vIG1hbnkgYnJhbmNoZXMgdG8gc2V0IG5ldyB1cHN0cmVhbSIKIG1zZ3N0ciAi5Li66K6+572u5paw5LiK5ri45o+Q5L6b5LqG5aSq5aSa55qE5YiG5pSv5ZCNIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjkyMworIzogYnVpbHRpbi9icmFuY2guYzo5NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogImNvdWxkIG5vdCBzZXQgdXBzdHJlYW0gb2YgSEVBRCB0byAlcyB3aGVuIGl0IGRvZXMgbm90IHBvaW50IHRvIGFueSBicmFuY2guIgogbXNnc3RyICLml6Dms5Xorr7nva4gSEVBRCDnmoTkuIrmuLjkuLogJXPvvIzlm6DkuLogSEVBRCDmsqHmnInmjIflkJHku7vkvZXliIbmlK/jgIIiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTI2IGJ1aWx0aW4vYnJhbmNoLmM6OTQ4IGJ1aWx0aW4vYnJhbmNoLmM6OTcwCisjOiBidWlsdGluL2JyYW5jaC5jOjk0NiBidWlsdGluL2JyYW5jaC5jOjk2OCBidWlsdGluL2JyYW5jaC5jOjk5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzdWNoIGJyYW5jaCAnJXMnIgogbXNnc3RyICLmsqHmnInmraTliIbmlK8gJyVzJyIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5MzAKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImJyYW5jaCAnJXMnIGRvZXMgbm90IGV4aXN0IgogbXNnc3RyICLliIbmlK8gJyVzJyDkuI3lrZjlnKgiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQyCisjOiBidWlsdGluL2JyYW5jaC5jOjk2MgogbXNnaWQgInRvbyBtYW55IGJyYW5jaGVzIHRvIHVuc2V0IHVwc3RyZWFtIgogbXNnc3RyICLkuLrlj5bmtojkuIrmuLjorr7nva7mk43kvZzmj5DkvpvkuoblpKrlpJrnmoTliIbmlK/lkI0iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTQ2CisjOiBidWlsdGluL2JyYW5jaC5jOjk2NgogbXNnaWQgImNvdWxkIG5vdCB1bnNldCB1cHN0cmVhbSBvZiBIRUFEIHdoZW4gaXQgZG9lcyBub3QgcG9pbnQgdG8gYW55IGJyYW5jaC4iCiBtc2dzdHIgIuaXoOazleWPlua2iCBIRUFEIOeahOS4iua4uOiuvue9ruWboOS4uuWug+ayoeacieaMh+WQkeS4gOS4quWIhuaUryIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5NTIKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6OTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkJyYW5jaCAnJXMnIGhhcyBubyB1cHN0cmVhbSBpbmZvcm1hdGlvbiIKIG1zZ3N0ciAi5YiG5pSvICclcycg5rKh5pyJ5LiK5ri45L+h5oGvIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk2NworIzogYnVpbHRpbi9icmFuY2guYzo5ODcKIG1zZ2lkICJpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNyZWF0ZSAnSEVBRCcgbWFudWFsbHkiCiBtc2dzdHIgIuaJi+W3peWIm+W7uiAnSEVBRCcg5rKh5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk3MworIzogYnVpbHRpbi9icmFuY2guYzo5OTMKIG1zZ2lkICItYSBhbmQgLXIgb3B0aW9ucyB0byAnZ2l0IGJyYW5jaCcgZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aCBhIGJyYW5jaCBuYW1lIgogbXNnc3RyICInZ2l0IGJyYW5jaCcg55qEIC1hIOWSjCAtciDpgInpobnluKbkuIDkuKrliIbmlK/lkI3lj4LmlbDmsqHmnInmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTc2CisjOiBidWlsdGluL2JyYW5jaC5jOjk5NgogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC0tc2V0LXVwc3RyZWFtIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBDb25zaWRlciB1c2luZyAtLSIKQEAgLTI3MjYsNyArMjkyNSw3IEBACiBtc2dzdHIgIiIKICLpgInpobkgLS1zZXQtdXBzdHJlYW0g5bey5byD55So5bm25bCG6KKr56e76Zmk44CC6ICD6JmR5L2/55SoIC0tdHJhY2sg5oiWIC0tc2V0LXVwc3RyZWFtLXRvXG4iCiAKLSM6IGJ1aWx0aW4vYnJhbmNoLmM6OTkzCisjOiBidWlsdGluL2JyYW5jaC5jOjEwMTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMjczNywxMiArMjkzNiwxMiBAQAogIuWmguaenOS9oOaDs+eUqCAnJXMnIOi3n+i4qiAnJXMnLCDov5nkuYjlgZrvvJpcbiIKICJcbiIKIAotIzogYnVpbHRpbi9icmFuY2guYzo5OTQKKyM6IGJ1aWx0aW4vYnJhbmNoLmM6MTAxNAogIywgYy1mb3JtYXQKIG1zZ2lkICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogbXNnc3RyICIgICAgZ2l0IGJyYW5jaCAtZCAlc1xuIgogCi0jOiBidWlsdGluL2JyYW5jaC5jOjk5NQorIzogYnVpbHRpbi9icmFuY2guYzoxMDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCiBtc2dzdHIgIiAgICBnaXQgYnJhbmNoIC0tc2V0LXVwc3RyZWFtLXRvICVzXG4iCkBAIC0yNzYwLDQzICsyOTU5LDQzIEBACiBtc2dpZCAiTmVlZCBhIHJlcG9zaXRvcnkgdG8gdW5idW5kbGUuIgogbXNnc3RyICLpnIDopoHkuIDkuKrniYjmnKzlupPmnaXop6PljIXjgIIiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNDcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyODUKIG1zZ2lkICJnaXQgY2F0LWZpbGUgKC10fC1zfC1lfC1wfDx0eXBlPnwtLXRleHRjb252KSA8b2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IGNhdC1maWxlICgtdHwtc3wtZXwtcHw857G75Z6LPnwtLXRleHRjb252KSA85a+56LGhPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI0OAorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI4NgogbXNnaWQgImdpdCBjYXQtZmlsZSAoLS1iYXRjaHwtLWJhdGNoLWNoZWNrKSA8IDxsaXN0X29mX29iamVjdHM+IgogbXNnc3RyICJnaXQgY2F0LWZpbGUgKC0tYmF0Y2h8LS1iYXRjaC1jaGVjaykgPCA85a+56LGh5YiX6KGoPiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI2NgorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyMwogbXNnaWQgIjx0eXBlPiBjYW4gYmUgb25lIG9mOiBibG9iLCB0cmVlLCBjb21taXQsIHRhZyIKIG1zZ3N0ciAiPOexu+Weiz4g5Y+v5Lul5piv5YW25Lit5LmL5LiA77yaYmxvYuOAgXRyZWXjgIFjb21taXTjgIF0YWciCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNjcKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjQKIG1zZ2lkICJzaG93IG9iamVjdCB0eXBlIgogbXNnc3RyICLmmL7npLrlr7nosaHnsbvlnosiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNjgKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjUKIG1zZ2lkICJzaG93IG9iamVjdCBzaXplIgogbXNnc3RyICLmmL7npLrlr7nosaHlpKflsI8iCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzAKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMjcKIG1zZ2lkICJleGl0IHdpdGggemVybyB3aGVuIHRoZXJlJ3Mgbm8gZXJyb3IiCiBtc2dzdHIgIuW9k+ayoeaciemUmeivr+aXtumAgOWHuuW5tui/lOWbnumbtiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3MQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMyOAogbXNnaWQgInByZXR0eS1wcmludCBvYmplY3QncyBjb250ZW50IgogbXNnc3RyICLnvo7op4LlnLDmiZPljbDlr7nosaHnmoTlhoXlrrkiCiAKLSM6IGJ1aWx0aW4vY2F0LWZpbGUuYzoyNzMKKyM6IGJ1aWx0aW4vY2F0LWZpbGUuYzozMzAKIG1zZ2lkICJmb3IgYmxvYiBvYmplY3RzLCBydW4gdGV4dGNvbnYgb24gb2JqZWN0J3MgY29udGVudCIKIG1zZ3N0ciAi5a+55LqO5pWw5o2u77yIYmxvYu+8ieWvueixoe+8jOWvueWFtuWGheWuueaJp+ihjCB0ZXh0Y29udiIKIAotIzogYnVpbHRpbi9jYXQtZmlsZS5jOjI3NQorIzogYnVpbHRpbi9jYXQtZmlsZS5jOjMzMgogbXNnaWQgInNob3cgaW5mbyBhbmQgY29udGVudCBvZiBvYmplY3RzIGZlZCBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAi5pi+56S65LuO5qCH5YeG6L6T5YWl5o+Q5L6b55qE5a+56LGh55qE5L+h5oGv5ZKM5YaF5a65IgogCi0jOiBidWlsdGluL2NhdC1maWxlLmM6Mjc4CisjOiBidWlsdGluL2NhdC1maWxlLmM6MzM1CiBtc2dpZCAic2hvdyBpbmZvIGFib3V0IG9iamVjdHMgZmVkIGZyb20gdGhlIHN0YW5kYXJkIGlucHV0IgogbXNnc3RyICLmmL7npLrku47moIflh4bovpPlhaXmj5DkvpvnmoTlr7nosaHnmoTkv6Hmga8iCiAKQEAgLTI4MjQsMzAgKzMwMjMsNTUgQEAKIG1zZ2lkICJpbnB1dCBwYXRocyBhcmUgdGVybWluYXRlZCBieSBhIG51bGwgY2hhcmFjdGVyIgogbXNnc3RyICLovpPlhaXot6/lvoTku6VudWxs5a2X56ym57uI5q2iIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE4IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQxIGJ1aWx0aW4vZ2MuYzoxNzcKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTggYnVpbHRpbi9jaGVja291dC5jOjEwNTQgYnVpbHRpbi9nYy5jOjE3NwogbXNnaWQgInN1cHByZXNzIHByb2dyZXNzIHJlcG9ydGluZyIKIG1zZ3N0ciAi5LiN5pi+56S66L+b5bqm5oql5ZGKIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1MQorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoyNgorbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGlucHV0IHBhdGhzIgorbXNnc3RyICLmmL7npLrmnKrljLnphY3nmoTovpPlhaXot6/lvoQiCisKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTQzCiBtc2dpZCAiY2Fubm90IHNwZWNpZnkgcGF0aG5hbWVzIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6b6Lev5b6E5Y+KIC0tc3RkaW4g5Y+C5pWwIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDYKIG1zZ2lkICIteiBvbmx5IG1ha2VzIHNlbnNlIHdpdGggLS1zdGRpbiIKIG1zZ3N0ciAiLXog6ZyA6KaB5ZKMIC0tc3RkaW4g5Y+C5pWw5YWx55So5omN5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE1NgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNDgKIG1zZ2lkICJubyBwYXRoIHNwZWNpZmllZCIKIG1zZ3N0ciAi5pyq5oyH5a6a6Lev5b6EIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MAorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTIKIG1zZ2lkICItLXF1aWV0IGlzIG9ubHkgdmFsaWQgd2l0aCBhIHNpbmdsZSBwYXRobmFtZSIKIG1zZ3N0ciAi5Y+C5pWwIC0tcXVpZXQg5Y+q5Zyo5o+Q5L6b5LiA5Liq6Lev5b6E5ZCN5pe25pyJ5pWIIgogCi0jOiBidWlsdGluL2NoZWNrLWlnbm9yZS5jOjE2MgorIzogYnVpbHRpbi9jaGVjay1pZ25vcmUuYzoxNTQKIG1zZ2lkICJjYW5ub3QgaGF2ZSBib3RoIC0tcXVpZXQgYW5kIC0tdmVyYm9zZSIKIG1zZ3N0ciAi5LiN6IO95ZCM5pe25o+Q5L6bIC0tcXVpZXQg5ZKMIC0tdmVyYm9zZSDlj4LmlbAiCiAKKyM6IGJ1aWx0aW4vY2hlY2staWdub3JlLmM6MTU3Cittc2dpZCAiLS1ub24tbWF0Y2hpbmcgaXMgb25seSB2YWxpZCB3aXRoIC0tdmVyYm9zZSIKK21zZ3N0ciAiLS1ub24tbWF0Y2hpbmcg6YCJ6aG55Y+q5Zyo5L2/55SoIC0tdmVyYm9zZSDml7bmnInmlYgiCisKKyM6IGJ1aWx0aW4vY2hlY2stbWFpbG1hcC5jOjgKK21zZ2lkICJnaXQgY2hlY2stbWFpbG1hcCBbb3B0aW9uc10gPGNvbnRhY3Q+Li4uIgorbXNnc3RyICJnaXQgY2hlY2stbWFpbG1hcCBb6YCJ6aG5XSA86IGU57O75Zyw5Z2APi4uLiIKKworIzogYnVpbHRpbi9jaGVjay1tYWlsbWFwLmM6MTMKK21zZ2lkICJhbHNvIHJlYWQgY29udGFjdHMgZnJvbSBzdGRpbiIKK21zZ3N0ciAi6L+Y5LuO5qCH5YeG6L6T5YWl6K+75Y+W6IGU57O75Zyw5Z2AIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzoyNAorIywgYy1mb3JtYXQKK21zZ2lkICJ1bmFibGUgdG8gcGFyc2UgY29udGFjdDogJXMiCittc2dzdHIgIuS4jeiDveino+aekOiBlOezu+WcsOWdgO+8miVzIgorCisjOiBidWlsdGluL2NoZWNrLW1haWxtYXAuYzo0NworbXNnaWQgIm5vIGNvbnRhY3RzIHNwZWNpZmllZCIKK21zZ3N0ciAi5pyq5oyH5a6a6IGU57O75Zyw5Z2AIgorCiAjOiBidWlsdGluL2NoZWNrb3V0LWluZGV4LmM6MTI2CiBtc2dpZCAiZ2l0IGNoZWNrb3V0LWluZGV4IFtvcHRpb25zXSBbLS1dIFs8ZmlsZT4uLi5dIgogbXNnc3RyICJnaXQgY2hlY2tvdXQtaW5kZXggW+mAiemhuV0gWy0tXSBbPOaWh+S7tj4uLi5dIgpAQCAtMjkwMCwxMDcgKzMxMjQsMTA3IEBACiBtc2dpZCAiZ2l0IGNoZWNrb3V0IFtvcHRpb25zXSBbPGJyYW5jaD5dIC0tIDxmaWxlPi4uLiIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V0IFvpgInpobldIFs85YiG5pSvPl0gLS0gPOaWh+S7tj4uLi4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYgYnVpbHRpbi9jaGVja291dC5jOjE0OQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNyBidWlsdGluL2NoZWNrb3V0LmM6MTUwCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIG91ciB2ZXJzaW9uIgogbXNnc3RyICLot6/lvoQgJyVzJyDmsqHmnInmiJHku6znmoTniYjmnKwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTggYnVpbHRpbi9jaGVja291dC5jOjE1MQorIzogYnVpbHRpbi9jaGVja291dC5jOjExOSBidWlsdGluL2NoZWNrb3V0LmM6MTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhdGggJyVzJyBkb2VzIG5vdCBoYXZlIHRoZWlyIHZlcnNpb24iCiBtc2dzdHIgIui3r+W+hCAnJXMnIOayoeacieS7luS7rOeahOeJiOacrCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEzNAorIzogYnVpbHRpbi9jaGVja291dC5jOjEzNQogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgZG9lcyBub3QgaGF2ZSBhbGwgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICLot6/lvoQgJyVzJyDmsqHmnInlhajpg6jlv4XpobvnmoTniYjmnKwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxNzkKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnIGRvZXMgbm90IGhhdmUgbmVjZXNzYXJ5IHZlcnNpb25zIgogbXNnc3RyICLot6/lvoQgJyVzJyDmsqHmnInlv4XpobvnmoTniYjmnKwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAicGF0aCAnJXMnOiBjYW5ub3QgbWVyZ2UiCiBtc2dzdHIgInBhdGggJyVzJ++8muaXoOazleWQiOW5tiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjIxMgorIzogYnVpbHRpbi9jaGVja291dC5jOjIxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gYWRkIG1lcmdlIHJlc3VsdCBmb3IgJyVzJyIKIG1zZ3N0ciAi5peg5rOV5Li6ICclcycg5re75Yqg5ZCI5bm257uT5p6cIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjM2IGJ1aWx0aW4vY2hlY2tvdXQuYzoyMzkgYnVpbHRpbi9jaGVja291dC5jOjI0MgotIzogYnVpbHRpbi9jaGVja291dC5jOjI0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjIzNyBidWlsdGluL2NoZWNrb3V0LmM6MjQwIGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoIHVwZGF0aW5nIHBhdGhzIgogbXNnc3RyICInJXMnIOS4jeiDveWcqOabtOaWsOi3r+W+hOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjI0OCBidWlsdGluL2NoZWNrb3V0LmM6MjUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MjQ5IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICInJXMnIOS4jeiDveWSjCAlcyDlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHVwZGF0ZSBwYXRocyBhbmQgc3dpdGNoIHRvIGJyYW5jaCAnJXMnIGF0IHRoZSBzYW1lIHRpbWUuIgogbXNnc3RyICLkuI3og73lkIzml7bmm7TmlrDot6/lvoTlubbliIfmjaLliLDliIbmlK8nJXMn44CCIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MjY1IGJ1aWx0aW4vY2hlY2tvdXQuYzo0NTUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoyNjYgYnVpbHRpbi9jaGVja291dC5jOjQ1OAogbXNnaWQgImNvcnJ1cHQgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5o2f5Z2P55qE57Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MzI2IGJ1aWx0aW4vY2hlY2tvdXQuYzozMzMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzozMjkgYnVpbHRpbi9jaGVja291dC5jOjMzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJwYXRoICclcycgaXMgdW5tZXJnZWQiCiBtc2dzdHIgIui3r+W+hCAnJXMnIOacquWQiOW5tiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjQ3NworIzogYnVpbHRpbi9jaGVja291dC5jOjQ4MAogbXNnaWQgInlvdSBuZWVkIHRvIHJlc29sdmUgeW91ciBjdXJyZW50IGluZGV4IGZpcnN0IgogbXNnc3RyICLmgqjpnIDopoHlhYjop6PlhrPlvZPliY3ntKLlvJXnmoTlhrLnqoEiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo1OTgKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2FuIG5vdCBkbyByZWZsb2cgZm9yICclcydcbiIKIG1zZ3N0ciAi5LiN6IO95a+5ICclcycg5omn6KGMIHJlZmxvZyDmk43kvZxcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzMQorIzogYnVpbHRpbi9jaGVja291dC5jOjYzOQogbXNnaWQgIkhFQUQgaXMgbm93IGF0IgogbXNnc3RyICJIRUFEIOebruWJjeS9jeS6jiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjYzOAorIzogYnVpbHRpbi9jaGVja291dC5jOjY0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLph43nva7liIbmlK8gJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFscmVhZHkgb24gJyVzJ1xuIgogbXNnc3RyICLlt7Lnu4/kvY3kuo4gJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjUzCiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGFuZCByZXNldCBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLliIfmjaLlubbph43nva7liIbmlK8gJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ3IGJ1aWx0aW4vY2hlY2tvdXQuYzo5ODQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo2NTUgYnVpbHRpbi9jaGVja291dC5jOjk5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJTd2l0Y2hlZCB0byBhIG5ldyBicmFuY2ggJyVzJ1xuIgogbXNnc3RyICLliIfmjaLliLDkuIDkuKrmlrDliIbmlK8gJyVzJ1xuIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6NjQ5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6NjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlN3aXRjaGVkIHRvIGJyYW5jaCAnJXMnXG4iCiBtc2dzdHIgIuWIh+aNouWIsOWIhuaUryAnJXMnXG4iCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogYnVpbHRpbi9jaGVja291dC5jOjcwNQorIzogYnVpbHRpbi9jaGVja291dC5jOjcxMwogIywgYy1mb3JtYXQKIG1zZ2lkICIgLi4uIGFuZCAlZCBtb3JlLlxuIgogbXNnc3RyICIgLi4uIOWPiuWFtuWugyAlZCDkuKrjgIJcbiIKIAogIy4gVGhlIHNpbmd1bGFyIHZlcnNpb24KLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTEKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIldhcm5pbmc6IHlvdSBhcmUgbGVhdmluZyAlZCBjb21taXQgYmVoaW5kLCBub3QgY29ubmVjdGVkIHRvXG4iCkBAIC0zMDIxLDcgKzMyNDUsNyBAQAogIlxuIgogIiVzXG4iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MjkKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3MzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIklmIHlvdSB3YW50IHRvIGtlZXAgdGhlbSBieSBjcmVhdGluZyBhIG5ldyBicmFuY2gsIHRoaXMgbWF5IGJlIGEgZ29vZCB0aW1lXG4iCkBAIC0zMDM2LDEzMiArMzI2MCwxMzYgQEAKICIgZ2l0IGJyYW5jaCBuZXdfYnJhbmNoX25hbWUgJXNcbiIKICJcbiIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc1OQorIzogYnVpbHRpbi9jaGVja291dC5jOjc2NwogbXNnaWQgImludGVybmFsIGVycm9yIGluIHJldmlzaW9uIHdhbGsiCiBtc2dzdHIgIuWcqOeJiOacrOmBjeWOhuaXtumBh+WIsOWGhemDqOmUmeivryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjc2MworIzogYnVpbHRpbi9jaGVja291dC5jOjc3MQogbXNnaWQgIlByZXZpb3VzIEhFQUQgcG9zaXRpb24gd2FzIgogbXNnc3RyICLkuYvliY3nmoQgSEVBRCDkvY3nva7mmK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo3OTAgYnVpbHRpbi9jaGVja291dC5jOjk3OQorIzogYnVpbHRpbi9jaGVja291dC5jOjc5OCBidWlsdGluL2NoZWNrb3V0LmM6OTkyCiBtc2dpZCAiWW91IGFyZSBvbiBhIGJyYW5jaCB5ZXQgdG8gYmUgYm9ybiIKIG1zZ3N0ciAi5oKo5L2N5LqO5LiA5Liq5bCa5pyq5Yid5aeL5YyW55qE5YiG5pSvIgogCiAjLiBjYXNlICgxKQotIzogYnVpbHRpbi9jaGVja291dC5jOjkxNQorIzogYnVpbHRpbi9jaGVja291dC5jOjkyOAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHJlZmVyZW5jZTogJXMiCiBtc2dzdHIgIuaXoOaViOW8leeUqO+8miVzIgogCiAjLiBjYXNlICgxKTogd2FudCBhIHRyZWUKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NTQKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzo5NjcKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVmZXJlbmNlIGlzIG5vdCBhIHRyZWU6ICVzIgogbXNnc3RyICLlvJXnlKjkuI3mmK/kuIDkuKrmoJHvvJolcyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjk5MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDYKIG1zZ2lkICJwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRoIHN3aXRjaGluZyBicmFuY2hlcyIKIG1zZ3N0ciAi6Lev5b6E5LiN6IO95ZKM5YiH5o2i5YiG5pSv5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6OTk2IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDAwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAwOSBidWlsdGluL2NoZWNrb3V0LmM6MTAxMwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGNhbm5vdCBiZSB1c2VkIHdpdGggc3dpdGNoaW5nIGJyYW5jaGVzIgogbXNnc3RyICInJXMnIOS4jeiDveWSjOWIh+aNouWIhuaUr+WQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwMDQgYnVpbHRpbi9jaGVja291dC5jOjEwMDcgYnVpbHRpbi9jaGVja291dC5jOjEwMTIKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDE1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTAxNyBidWlsdGluL2NoZWNrb3V0LmM6MTAyMCBidWlsdGluL2NoZWNrb3V0LmM6MTAyNQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiJyVzJyBjYW5ub3QgYmUgdXNlZCB3aXRoICclcyciCiBtc2dzdHIgIiclcycg5LiN6IO95ZKMICclcycg5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTAyMAorIzogYnVpbHRpbi9jaGVja291dC5jOjEwMzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IHN3aXRjaCBicmFuY2ggdG8gYSBub24tY29tbWl0ICclcyciCiBtc2dzdHIgIuS4jeiDveWIh+aNouWIhuaUr+WIsOS4gOS4qumdnuaPkOS6pCAnJXMnIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0MiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NCBidWlsdGluL2Nsb25lLmM6OTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU1IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU3IGJ1aWx0aW4vY2xvbmUuYzo4OQogIzogYnVpbHRpbi9yZW1vdGUuYzoxNjkgYnVpbHRpbi9yZW1vdGUuYzoxNzEKIG1zZ2lkICJicmFuY2giCiBtc2dzdHIgIuWIhuaUryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDMKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU2CiBtc2dpZCAiY3JlYXRlIGFuZCBjaGVja291dCBhIG5ldyBicmFuY2giCiBtc2dzdHIgIuWIm+W7uuW5tuajgOWHuuS4gOS4quaWsOeahOWIhuaUryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDUKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4CiBtc2dpZCAiY3JlYXRlL3Jlc2V0IGFuZCBjaGVja291dCBhIGJyYW5jaCIKIG1zZ3N0ciAi5Yib5bu6L+mHjee9ruW5tuajgOWHuuS4gOS4quWIhuaUryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNDYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CiBtc2dpZCAiY3JlYXRlIHJlZmxvZyBmb3IgbmV3IGJyYW5jaCIKIG1zZ3N0ciAi5Li65paw55qE5YiG5pSv5Yib5bu65byV55So5pel5b+XIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA0NworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjAKIG1zZ2lkICJkZXRhY2ggdGhlIEhFQUQgYXQgbmFtZWQgY29tbWl0IgogbXNnc3RyICLmiJDkuLrmjIflkJHor6Xmj5DkuqTnmoTliIbnprvlpLTmjIfpkogiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDQ4CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MQogbXNnaWQgInNldCB1cHN0cmVhbSBpbmZvIGZvciBuZXcgYnJhbmNoIgogbXNnc3RyICLkuLrmlrDnmoTliIbmlK/orr7nva7kuIrmuLjkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2MwogbXNnaWQgIm5ldyBicmFuY2giCiBtc2dzdHIgIuaWsOWIhuaUryIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNTAKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDYzCiBtc2dpZCAibmV3IHVucGFyZW50ZWQgYnJhbmNoIgogbXNnc3RyICLmlrDnmoTmsqHmnInniLbmj5DkuqTnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDUxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA2NAogbXNnaWQgImNoZWNrb3V0IG91ciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAi5a+55bCa5pyq5ZCI5bm255qE5paH5Lu25qOA5Ye65oiR5Lus55qE54mI5pysIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1MworIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjYKIG1zZ2lkICJjaGVja291dCB0aGVpciB2ZXJzaW9uIGZvciB1bm1lcmdlZCBmaWxlcyIKIG1zZ3N0ciAi5a+55bCa5pyq5ZCI5bm255qE5paH5Lu25qOA5Ye65LuW5Lus55qE54mI5pysIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NQorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjgKIG1zZ2lkICJmb3JjZSBjaGVja291dCAodGhyb3cgYXdheSBsb2NhbCBtb2RpZmljYXRpb25zKSIKIG1zZ3N0ciAi5by65Yi25qOA5Ye677yI5Lii5byD5pys5Zyw5L+u5pS577yJIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NgorIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjkKIG1zZ2lkICJwZXJmb3JtIGEgMy13YXkgbWVyZ2Ugd2l0aCB0aGUgbmV3IGJyYW5jaCIKIG1zZ3N0ciAi5ZKM5paw55qE5YiG5pSv5omn6KGM5LiJ6Lev5ZCI5bm2IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTA1NyBidWlsdGluL21lcmdlLmM6MjE3CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MCBidWlsdGluL21lcmdlLmM6MjMyCiBtc2dpZCAidXBkYXRlIGlnbm9yZWQgZmlsZXMgKGRlZmF1bHQpIgogbXNnc3RyICLmm7TmlrDlv73nlaXnmoTmlofku7bvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU4IGJ1aWx0aW4vbG9nLmM6MTE0OSBwYXJzZS1vcHRpb25zLmg6MjQ1CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MSBidWlsdGluL2xvZy5jOjEyMDggcGFyc2Utb3B0aW9ucy5oOjI0OQogbXNnaWQgInN0eWxlIgogbXNnc3RyICLpo47moLwiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDU5CisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTA3MgogbXNnaWQgImNvbmZsaWN0IHN0eWxlIChtZXJnZSBvciBkaWZmMykiCiBtc2dzdHIgIuWGsueqgei+k+WHuumjjuagvO+8iG1lcmdlIOaIliBkaWZmM++8iSIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwNjIKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc1Cittc2dpZCAiZG8gbm90IGxpbWl0IHBhdGhzcGVjcyB0byBzcGFyc2UgZW50cmllcyBvbmx5IgorbXNnc3RyICLlr7not6/lvoTkuI3lgZrnqIDnlo/mo4Dlh7rnmoTpmZDliLYiCisKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMDc3CiBtc2dpZCAic2Vjb25kIGd1ZXNzICdnaXQgY2hlY2tvdXQgbm8tc3VjaC1icmFuY2gnIgogbXNnc3RyICLlho3ogIXnjJzmtYsnZ2l0IGNoZWNrb3V0IG5vLXN1Y2gtYnJhbmNoJyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjEwODYKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAxCiBtc2dpZCAiLWIsIC1CIGFuZCAtLW9ycGhhbiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlIgogbXNnc3RyICItYuOAgS1CIOWSjCAtLW9ycGhhbiDmmK/kupLmlqXnmoQiCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTAzCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTExOAogbXNnaWQgIi0tdHJhY2sgbmVlZHMgYSBicmFuY2ggbmFtZSIKIG1zZ3N0ciAiLS10cmFjayDpnIDopoHkuIDkuKrliIbmlK/lkI0iCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTEwCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTEyNQogbXNnaWQgIk1pc3NpbmcgYnJhbmNoIG5hbWU7IHRyeSAtYiIKIG1zZ3N0ciAi57y65bCR5YiG5pSv5ZCN77yb5bCd6K+VIC1iIgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE0NQorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjAKIG1zZ2lkICJpbnZhbGlkIHBhdGggc3BlY2lmaWNhdGlvbiIKIG1zZ3N0ciAi5peg5pWI55qE6Lev5b6E6KeE5qC8IgogCi0jOiBidWlsdGluL2NoZWNrb3V0LmM6MTE1MgorIzogYnVpbHRpbi9jaGVja291dC5jOjExNjcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNhbm5vdCB1cGRhdGUgcGF0aHMgYW5kIHN3aXRjaCB0byBicmFuY2ggJyVzJyBhdCB0aGUgc2FtZSB0aW1lLlxuIgpAQCAtMzE3MCwyMjcgKzMzOTgsMzMwIEBACiAi5LiN6IO95ZCM5pe25pu05paw6Lev5b6E5bm25YiH5o2i5Yiw5YiG5pSvJyVzJ+OAglxuIgogIuaCqOaYr+aDs+imgeajgOWHuiAnJXMnIOS9huWFtuacquiDveino+aekOS4uuaPkOS6pOS5iO+8nyIKIAotIzogYnVpbHRpbi9jaGVja291dC5jOjExNTcKKyM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTcyCiAjLCBjLWZvcm1hdAogbXNnaWQgImdpdCBjaGVja291dDogLS1kZXRhY2ggZG9lcyBub3QgdGFrZSBhIHBhdGggYXJndW1lbnQgJyVzJyIKIG1zZ3N0ciAiZ2l0IGNoZWNrb3V077yaLS1kZXRhY2gg5LiN6IO95o6l5pS26Lev5b6E5Y+C5pWwICclcyciCiAKLSM6IGJ1aWx0aW4vY2hlY2tvdXQuYzoxMTYxCisjOiBidWlsdGluL2NoZWNrb3V0LmM6MTE3NgogbXNnaWQgIiIKICJnaXQgY2hlY2tvdXQ6IC0tb3Vycy8tLXRoZWlycywgLS1mb3JjZSBhbmQgLS1tZXJnZSBhcmUgaW5jb21wYXRpYmxlIHdoZW5cbiIKICJjaGVja2luZyBvdXQgb2YgdGhlIGluZGV4LiIKIG1zZ3N0ciAiIgogImdpdCBjaGVja291dO+8muWcqOS7jue0ouW8leajgOWHuuaXtu+8jC0tb3Vycy8tLXRoZWlyc+OAgS0tZm9yY2Ug5ZKMIC0tbWVyZ2Ug5LiN5YW85a6544CCIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjAKLW1zZ2lkICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPHBhdHRlcm4+XSBbLXggfCAtWF0gWy0tXSA8cGF0aHM+Li4uIgotbXNnc3RyICJnaXQgY2xlYW4gWy1kXSBbLWZdIFstbl0gWy1xXSBbLWUgPOaooeW8jz5dIFsteCB8IC1YXSBbLS1dIDzot6/lvoQ+Li4uIgorIzogYnVpbHRpbi9jbGVhbi5jOjI1Cittc2dpZCAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDxwYXR0ZXJuPl0gWy14IHwgLVhdIFstLV0gPHBhdGhzPi4uLiIKK21zZ3N0ciAiIgorImdpdCBjbGVhbiBbLWRdIFstZl0gWy1pXSBbLW5dIFstcV0gWy1lIDzmqKHlvI8+XSBbLXggfCAtWF0gWy0tXSA86Lev5b6EPi4uLiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI0CisjOiBidWlsdGluL2NsZWFuLmM6MjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3ZpbmcgJXNcbiIKIG1zZ3N0ciAi5q2j5Yig6ZmkICVzXG4iCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoyNQorIzogYnVpbHRpbi9jbGVhbi5jOjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIldvdWxkIHJlbW92ZSAlc1xuIgogbXNnc3RyICLlsIbliKDpmaQgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI2CisjOiBidWlsdGluL2NsZWFuLmM6MzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2tpcHBpbmcgcmVwb3NpdG9yeSAlc1xuIgogbXNnc3RyICLlv73nlaXniYjmnKzlupMgJXNcbiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjI3CisjOiBidWlsdGluL2NsZWFuLmM6MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiV291bGQgc2tpcCByZXBvc2l0b3J5ICVzXG4iCiBtc2dzdHIgIuWwhuW/veeVpeeJiOacrOW6kyAlc1xuIgogCi0jOiBidWlsdGluL2NsZWFuLmM6MjgKKyM6IGJ1aWx0aW4vY2xlYW4uYzozMwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVtb3ZlICVzIgogbXNnc3RyICLml6Dms5XliKDpmaQgJXMiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjAKKyM6IGJ1aWx0aW4vY2xlYW4uYzoyOTMKK21zZ2lkICIiCisiUHJvbXB0IGhlbHA6XG4iCisiMSAgICAgICAgICAtIHNlbGVjdCBhIG51bWJlcmVkIGl0ZW1cbiIKKyJmb28gICAgICAgIC0gc2VsZWN0IGl0ZW0gYmFzZWQgb24gdW5pcXVlIHByZWZpeFxuIgorIiAgICAgICAgICAgLSAoZW1wdHkpIHNlbGVjdCBub3RoaW5nIgorbXNnc3RyICIiCisi5biu5Yqp77yaXG4iCisiMSAgICAgICAgICAtIOmAmui/h+e8luWPt+mAieaLqeS4gOS4qumAiemhuVxuIgorImZvbyAgICAgICAgLSDpgJrov4fmoIfpopjpgInmi6nkuIDkuKrpgInpoblcbiIKKyIgICAgICAgICAgIC0g77yI56m677yJ5LuA5LmI5Lmf5LiN6YCJ5oupIgorCisjOiBidWlsdGluL2NsZWFuLmM6Mjk3Cittc2dpZCAiIgorIlByb21wdCBoZWxwOlxuIgorIjEgICAgICAgICAgLSBzZWxlY3QgYSBzaW5nbGUgaXRlbVxuIgorIjMtNSAgICAgICAgLSBzZWxlY3QgYSByYW5nZSBvZiBpdGVtc1xuIgorIjItMyw2LTkgICAgLSBzZWxlY3QgbXVsdGlwbGUgcmFuZ2VzXG4iCisiZm9vICAgICAgICAtIHNlbGVjdCBpdGVtIGJhc2VkIG9uIHVuaXF1ZSBwcmVmaXhcbiIKKyItLi4uICAgICAgIC0gdW5zZWxlY3Qgc3BlY2lmaWVkIGl0ZW1zXG4iCisiKiAgICAgICAgICAtIGNob29zZSBhbGwgaXRlbXNcbiIKKyIgICAgICAgICAgIC0gKGVtcHR5KSBmaW5pc2ggc2VsZWN0aW5nIgorbXNnc3RyICIiCisi5biu5Yqp77yaXG4iCisiMSAgICAgICAgICAtIOmAieaLqeS4gOS4qumAiemhuVxuIgorIjMtNSAgICAgICAgLSDpgInmi6nkuIDkuKrojIPlm7TlhoXnmoTmiYDmnInpgInpoblcbiIKKyIyLTMsNi05ICAgIC0g6YCJ5oup5aSa5Liq6IyD5Zu05YaF55qE5omA5pyJ6YCJ6aG5XG4iCisiZm9vICAgICAgICAtIOmAmui/h+agh+mimOmAieaLqeS4gOS4qumAiemhuVxuIgorIi0uLi4gICAgICAgLSDlj43pgInnibnlrprnmoTpgInpoblcbiIKKyIqICAgICAgICAgIC0g6YCJ5oup5omA5pyJ6YCJ6aG5XG4iCisiICAgICAgICAgICAtIO+8iOepuu+8iee7k+adn+mAieaLqSIKKworIzogYnVpbHRpbi9jbGVhbi5jOjUxNQorIywgYy1mb3JtYXQKK21zZ2lkICJIdWggKCVzKT8iCittc2dzdHIgIuWXr++8iCVz77yJ77yfIgorCisjOiBidWlsdGluL2NsZWFuLmM6NjU4CisjLCBjLWZvcm1hdAorbXNnaWQgIklucHV0IGlnbm9yZSBwYXR0ZXJucz4+ICIKK21zZ3N0ciAi6L6T5YWl5qih54mI5Lul5o6S6Zmk5p2h55uuPj4gIgorCisjOiBidWlsdGluL2NsZWFuLmM6Njk1CisjLCBjLWZvcm1hdAorbXNnaWQgIldBUk5JTkc6IENhbm5vdCBmaW5kIGl0ZW1zIG1hdGNoZWQgYnk6ICVzIgorbXNnc3RyICLorablkYrvvJrml6Dms5Xmib7liLDlkowgJXMg5Yy56YWN55qE5p2h55uuIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzE2Cittc2dpZCAiU2VsZWN0IGl0ZW1zIHRvIGRlbGV0ZSIKK21zZ3N0ciAi6YCJ5oup6KaB5Yig6Zmk55qE5p2h55uuIgorCisjOiBidWlsdGluL2NsZWFuLmM6NzU2CisjLCBjLWZvcm1hdAorbXNnaWQgInJlbW92ZSAlcz8gIgorbXNnc3RyICLliKDpmaQgJXPvvJ8iCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODEKK21zZ2lkICJCeWUuIgorbXNnc3RyICLlho3op4HjgIIiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo3ODkKK21zZ2lkICIiCisiY2xlYW4gICAgICAgICAgICAgICAtIHN0YXJ0IGNsZWFuaW5nXG4iCisiZmlsdGVyIGJ5IHBhdHRlcm4gICAtIGV4Y2x1ZGUgaXRlbXMgZnJvbSBkZWxldGlvblxuIgorInNlbGVjdCBieSBudW1iZXJzICAgLSBzZWxlY3QgaXRlbXMgdG8gYmUgZGVsZXRlZCBieSBudW1iZXJzXG4iCisiYXNrIGVhY2ggICAgICAgICAgICAtIGNvbmZpcm0gZWFjaCBkZWxldGlvbiAobGlrZSBcInJtIC1pXCIpXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIHN0b3AgY2xlYW5pbmdcbiIKKyJoZWxwICAgICAgICAgICAgICAgIC0gdGhpcyBzY3JlZW5cbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0gaGVscCBmb3IgcHJvbXB0IHNlbGVjdGlvbiIKK21zZ3N0ciAiIgorImNsZWFuICAgICAgICAgICAgICAgLSDlvIDlp4vmuIXnkIZcbiIKKyJmaWx0ZXIgYnkgcGF0dGVybiAgIC0g6YCa6L+H5qih54mI5o6S6Zmk6KaB5Yig6Zmk55qE5p2h55uuXG4iCisic2VsZWN0IGJ5IG51bWJlcnMgICAtIOmAmui/h+aVsOWtl+mAieaLqeimgeWIoOmZpOeahOadoeebrlxuIgorImFzayBlYWNoICAgICAgICAgICAgLSDpkojlr7nliKDpmaTpgJDkuIDor6Lpl67vvIjlsLHlg48gXCJybSAtaVwi77yJXG4iCisicXVpdCAgICAgICAgICAgICAgICAtIOWBnOatouWIoOmZpOW5tumAgOWHulxuIgorImhlbHAgICAgICAgICAgICAgICAgLSDmmL7npLrmnKzluK7liqlcbiIKKyI/ICAgICAgICAgICAgICAgICAgIC0g5pi+56S65aaC5L2V5Zyo5o+Q56S656ym5LiL6YCJ5oup55qE5biu5YqpIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODE2Cittc2dpZCAiKioqIENvbW1hbmRzICoqKiIKK21zZ3N0ciAiKioqIOWRveS7pCAqKioiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4MTcKK21zZ2lkICJXaGF0IG5vdyIKK21zZ3N0ciAi6K+36YCJ5oupIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODI1Cittc2dpZCAiV291bGQgcmVtb3ZlIHRoZSBmb2xsb3dpbmcgaXRlbToiCittc2dpZF9wbHVyYWwgIldvdWxkIHJlbW92ZSB0aGUgZm9sbG93aW5nIGl0ZW1zOiIKK21zZ3N0clswXSAi5bCG5Yig6Zmk5aaC5LiL5p2h55uu77yaIgorbXNnc3RyWzFdICLlsIbliKDpmaTlpoLkuIvmnaHnm67vvJoiCisKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NDIKK21zZ2lkICJObyBtb3JlIGZpbGVzIHRvIGNsZWFuLCBleGl0aW5nLiIKK21zZ3N0ciAi5rKh5pyJ6KaB5riF55CG55qE5paH5Lu277yM6YCA5Ye644CCIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc0CiBtc2dpZCAiZG8gbm90IHByaW50IG5hbWVzIG9mIGZpbGVzIHJlbW92ZWQiCiBtc2dzdHIgIuS4jeaJk+WNsOWIoOmZpOaWh+S7tueahOWQjeensCIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2MgorIzogYnVpbHRpbi9jbGVhbi5jOjg3NgogbXNnaWQgImZvcmNlIgogbXNnc3RyICLlvLrliLYiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjQKKyM6IGJ1aWx0aW4vY2xlYW4uYzo4NzcKK21zZ2lkICJpbnRlcmFjdGl2ZSBjbGVhbmluZyIKK21zZ3N0ciAi5Lqk5LqS5byP5riF6ZmkIgorCisjOiBidWlsdGluL2NsZWFuLmM6ODc5CiBtc2dpZCAicmVtb3ZlIHdob2xlIGRpcmVjdG9yaWVzIgogbXNnc3RyICLliKDpmaTmlbTkuKrnm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xlYW4uYzoxNjUgYnVpbHRpbi9kZXNjcmliZS5jOjQxMiBidWlsdGluL2dyZXAuYzo3MTcKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTQgYnVpbHRpbi9uYW1lLXJldi5jOjIzMSBidWlsdGluL3Nob3ctcmVmLmM6MTgyCisjOiBidWlsdGluL2NsZWFuLmM6ODgwIGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjAgYnVpbHRpbi9ncmVwLmM6NzE2CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkzIGJ1aWx0aW4vbmFtZS1yZXYuYzozMTUgYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInBhdHRlcm4iCiBtc2dzdHIgIuaooeW8jyIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NgorIzogYnVpbHRpbi9jbGVhbi5jOjg4MQogbXNnaWQgImFkZCA8cGF0dGVybj4gdG8gaWdub3JlIHJ1bGVzIgogbXNnc3RyICLmt7vliqA85qih5byPPuWIsOW/veeVpeinhOWImSIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2NworIzogYnVpbHRpbi9jbGVhbi5jOjg4MgogbXNnaWQgInJlbW92ZSBpZ25vcmVkIGZpbGVzLCB0b28iCiBtc2dzdHIgIuS5n+WIoOmZpOW/veeVpeeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE2OQorIzogYnVpbHRpbi9jbGVhbi5jOjg4NAogbXNnaWQgInJlbW92ZSBvbmx5IGlnbm9yZWQgZmlsZXMiCiBtc2dzdHIgIuWPquWIoOmZpOW/veeVpeeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE4NworIzogYnVpbHRpbi9jbGVhbi5jOjkwMgogbXNnaWQgIi14IGFuZCAtWCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAiLXgg5ZKMIC1YIOS4jeiDveWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jbGVhbi5jOjE5MQorIzogYnVpbHRpbi9jbGVhbi5jOjkwNgogbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLW4gbm9yIC1mIGdpdmVuOyByZWZ1c2luZyB0byBjbGVhbiIKLW1zZ3N0ciAiIgotImNsZWFuLnJlcXVpcmVGb3JjZSDorr7nva7kuLogdHJ1ZSDkuJTmnKrmj5DkvpsgLW4g5oiWIC1mIOmAiemhue+8jOaLkue7neaJp+ihjOa4heeQhuWKqOS9nCIKLQotIzogYnVpbHRpbi9jbGVhbi5jOjE5NAotbXNnaWQgIiIKLSJjbGVhbi5yZXF1aXJlRm9yY2UgZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgbmVpdGhlciAtbiBub3IgLWYgZ2l2ZW47IHJlZnVzaW5nIHRvICIKKyJjbGVhbi5yZXF1aXJlRm9yY2Ugc2V0IHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgcmVmdXNpbmcgdG8gIgogImNsZWFuIgogbXNnc3RyICIiCi0iY2xlYW4ucmVxdWlyZUZvcmNlIOm7mOiupOS4uiB0cnVlIOS4lOacquaPkOS+myAtbiDmiJYgLWYg6YCJ6aG577yM5ouS57ud5omn6KGM5riF55CG5Yqo5L2cIgorImNsZWFuLnJlcXVpcmVGb3JjZSDorr7nva7kuLogdHJ1ZSDkuJTmnKrmj5DkvpsgLWnjgIEtbiDmiJYgLWYg6YCJ6aG577yM5ouS57ud5omn6KGM5riF55CG5Yqo5L2cIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzcKKyM6IGJ1aWx0aW4vY2xlYW4uYzo5MDkKK21zZ2lkICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIGRlZmF1bHRzIHRvIHRydWUgYW5kIG5laXRoZXIgLWksIC1uIG5vciAtZiBnaXZlbjsgIgorInJlZnVzaW5nIHRvIGNsZWFuIgorbXNnc3RyICIiCisiY2xlYW4ucmVxdWlyZUZvcmNlIOm7mOiupOS4uiB0cnVlIOS4lOacquaPkOS+myAtaeOAgS1uIOaIliAtZiDpgInpobnvvIzmi5Lnu53miafooYzmuIXnkIbliqjkvZwiCisKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNgogbXNnaWQgImdpdCBjbG9uZSBbb3B0aW9uc10gWy0tXSA8cmVwbz4gWzxkaXI+XSIKIG1zZ3N0ciAiZ2l0IGNsb25lIFvpgInpobldIFstLV0gPOeJiOacrOW6kz4gWzzot6/lvoQ+XSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY1IGJ1aWx0aW4vZmV0Y2guYzo4MiBidWlsdGluL21lcmdlLmM6MjE0Ci0jOiBidWlsdGluL3B1c2guYzo0MzYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NCBidWlsdGluL2ZldGNoLmM6ODIgYnVpbHRpbi9tZXJnZS5jOjIyOQorIzogYnVpbHRpbi9wdXNoLmM6NDYyCiBtc2dpZCAiZm9yY2UgcHJvZ3Jlc3MgcmVwb3J0aW5nIgogbXNnc3RyICLlvLrliLbmmL7npLrov5vluqbmiqXlkYoiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo2NworIzogYnVpbHRpbi9jbG9uZS5jOjY2CiBtc2dpZCAiZG9uJ3QgY3JlYXRlIGEgY2hlY2tvdXQiCiBtc2dzdHIgIuS4jeWIm+W7uuS4gOS4quajgOWHuiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjY4IGJ1aWx0aW4vY2xvbmUuYzo3MCBidWlsdGluL2luaXQtZGIuYzo0ODgKKyM6IGJ1aWx0aW4vY2xvbmUuYzo2NyBidWlsdGluL2Nsb25lLmM6NjkgYnVpbHRpbi9pbml0LWRiLmM6NDg4CiBtc2dpZCAiY3JlYXRlIGEgYmFyZSByZXBvc2l0b3J5IgogbXNnc3RyICLliJvlu7rkuIDkuKroo7jniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3MworIzogYnVpbHRpbi9jbG9uZS5jOjcyCiBtc2dpZCAiY3JlYXRlIGEgbWlycm9yIHJlcG9zaXRvcnkgKGltcGxpZXMgYmFyZSkiCiBtc2dzdHIgIuWIm+W7uuS4gOS4qumVnOWDj+eJiOacrOW6k++8iOS5n+aYr+ijuOeJiOacrOW6k++8iSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc1CisjOiBidWlsdGluL2Nsb25lLmM6NzQKIG1zZ2lkICJ0byBjbG9uZSBmcm9tIGEgbG9jYWwgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5LuO5pys5Zyw54mI5pys5bqT5YWL6ZqGIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NgogbXNnaWQgImRvbid0IHVzZSBsb2NhbCBoYXJkbGlua3MsIGFsd2F5cyBjb3B5IgogbXNnc3RyICLkuI3kvb/nlKjmnKzlnLDnoazpk77mjqXvvIzlp4vnu4jlpI3liLYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OQorIzogYnVpbHRpbi9jbG9uZS5jOjc4CiBtc2dpZCAic2V0dXAgYXMgc2hhcmVkIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuiuvue9ruS4uuWFseS6q+eJiOacrOW6kyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjgxIGJ1aWx0aW4vY2xvbmUuYzo4MworIzogYnVpbHRpbi9jbG9uZS5jOjgwIGJ1aWx0aW4vY2xvbmUuYzo4MgogbXNnaWQgImluaXRpYWxpemUgc3VibW9kdWxlcyBpbiB0aGUgY2xvbmUiCiBtc2dzdHIgIuWcqOWFi+mahuaXtuWIneWni+WMluWtkOaooee7hCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg0IGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQorIzogYnVpbHRpbi9jbG9uZS5jOjgzIGJ1aWx0aW4vaW5pdC1kYi5jOjQ4NQogbXNnaWQgInRlbXBsYXRlLWRpcmVjdG9yeSIKIG1zZ3N0ciAi5qih5p2/55uu5b2VIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODUgYnVpbHRpbi9pbml0LWRiLmM6NDg2CisjOiBidWlsdGluL2Nsb25lLmM6ODQgYnVpbHRpbi9pbml0LWRiLmM6NDg2CiBtc2dpZCAiZGlyZWN0b3J5IGZyb20gd2hpY2ggdGVtcGxhdGVzIHdpbGwgYmUgdXNlZCIKIG1zZ3N0ciAi5qih5p2/55uu5b2V5bCG6KKr5L2/55SoIgogCi0jOiBidWlsdGluL2Nsb25lLmM6ODcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NgogbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5IgogbXNnc3RyICLlvJXnlKjniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4OCBidWlsdGluL2NvbHVtbi5jOjI2IGJ1aWx0aW4vbWVyZ2UtZmlsZS5jOjQ0CisjOiBidWlsdGluL2Nsb25lLmM6ODcgYnVpbHRpbi9jb2x1bW4uYzoyNiBidWlsdGluL21lcmdlLWZpbGUuYzo0NAogbXNnaWQgIm5hbWUiCiBtc2dzdHIgIuWQjeensCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg5CisjOiBidWlsdGluL2Nsb25lLmM6ODgKIG1zZ2lkICJ1c2UgPG5hbWU+IGluc3RlYWQgb2YgJ29yaWdpbicgdG8gdHJhY2sgdXBzdHJlYW0iCiBtc2dzdHIgIuS9v+eUqDzlkI3np7A+6ICM5LiN5pivICdvcmlnaW4nIOWOu+i3n+i4quS4iua4uCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkxCisjOiBidWlsdGluL2Nsb25lLmM6OTAKIG1zZ2lkICJjaGVja291dCA8YnJhbmNoPiBpbnN0ZWFkIG9mIHRoZSByZW1vdGUncyBIRUFEIgogbXNnc3RyICLmo4Dlh7o85YiG5pSvPuiAjOS4jeaYr+i/nOeoi0hFQUQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5MworIzogYnVpbHRpbi9jbG9uZS5jOjkyCiBtc2dpZCAicGF0aCB0byBnaXQtdXBsb2FkLXBhY2sgb24gdGhlIHJlbW90ZSIKIG1zZ3N0ciAi6L+c56iLIGdpdC11cGxvYWQtcGFjayDot6/lvoQiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NCBidWlsdGluL2ZldGNoLmM6ODMgYnVpbHRpbi9ncmVwLmM6NjYyCisjOiBidWlsdGluL2Nsb25lLmM6OTMgYnVpbHRpbi9mZXRjaC5jOjgzIGJ1aWx0aW4vZ3JlcC5jOjY2MQogbXNnaWQgImRlcHRoIgogbXNnc3RyICLmt7HluqYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NQorIzogYnVpbHRpbi9jbG9uZS5jOjk0CiBtc2dpZCAiY3JlYXRlIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGF0IGRlcHRoIgogbXNnc3RyICLliJvlu7rkuIDkuKrmjIflrprmt7HluqbnmoTmtYXlhYvpmoYiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo5NworIzogYnVpbHRpbi9jbG9uZS5jOjk2CiBtc2dpZCAiY2xvbmUgb25seSBvbmUgYnJhbmNoLCBIRUFEIG9yIC0tYnJhbmNoIgogbXNnc3RyICLlj6rlhYvpmobkuIDkuKrliIbmlK/jgIFIRUFEIOaIliAtLWJyYW5jaCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjk4IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAorIzogYnVpbHRpbi9jbG9uZS5jOjk3IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5NAogbXNnaWQgImdpdGRpciIKIG1zZ3N0ciAiZ2l055uu5b2VIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTkgYnVpbHRpbi9pbml0LWRiLmM6NDk1CisjOiBidWlsdGluL2Nsb25lLmM6OTggYnVpbHRpbi9pbml0LWRiLmM6NDk1CiBtc2dpZCAic2VwYXJhdGUgZ2l0IGRpciBmcm9tIHdvcmtpbmcgdHJlZSIKIG1zZ3N0ciAiZ2l055uu5b2V5ZKM5bel5L2c5Yy65YiG56a7IgogCi0jOiBidWlsdGluL2Nsb25lLmM6MTAwCisjOiBidWlsdGluL2Nsb25lLmM6OTkKIG1zZ2lkICJrZXk9dmFsdWUiCiBtc2dzdHIgImtleT12YWx1ZSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjEwMQorIzogYnVpbHRpbi9jbG9uZS5jOjEwMAogbXNnaWQgInNldCBjb25maWcgaW5zaWRlIHRoZSBuZXcgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5Zyo5paw54mI5pys5bqT5Lit6K6+572u6YWN572u5L+h5oGvIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MjQ0CisjOiBidWlsdGluL2Nsb25lLmM6MjUzCiAjLCBjLWZvcm1hdAotbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgZGlyZWN0b3J5LiIKLW1zZ3N0ciAi5byV55So54mI5pys5bqTICclcycg5LiN5piv5LiA5Liq5pys5Zyw55uu5b2V44CCIgorbXNnaWQgInJlZmVyZW5jZSByZXBvc2l0b3J5ICclcycgaXMgbm90IGEgbG9jYWwgcmVwb3NpdG9yeS4iCittc2dzdHIgIuW8leeUqOeJiOacrOW6kyAnJXMnIOS4jeaYr+S4gOS4quacrOWcsOeJiOacrOW6k+OAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMwNworIzogYnVpbHRpbi9jbG9uZS5jOjMxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSAnJXMnIgogbXNnc3RyICLml6Dms5XliJvlu7rnm67lvZUgJyVzJyIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMwOSBidWlsdGluL2RpZmYuYzo3NworIzogYnVpbHRpbi9jbG9uZS5jOjMxOCBidWlsdGluL2RpZmYuYzo3NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAnJXMnIgogbXNnc3RyICLml6Dms5XmnprkuL4gJyVzJyDnirbmgIEiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozMTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZXhpc3RzIGFuZCBpcyBub3QgYSBkaXJlY3RvcnkiCiBtc2dzdHIgIiVzIOWtmOWcqOS4lOS4jeaYr+S4gOS4quebruW9lSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjMyNQorIzogYnVpbHRpbi9jbG9uZS5jOjMzNAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc3RhdCAlc1xuIgogbXNnc3RyICLml6Dms5XmnprkuL4gJXMg54q25oCBXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNDcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozNTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaW5rICclcyciCiBtc2dzdHIgIuaXoOazleWIm+W7uumTvuaOpSAnJXMnIgogCi0jOiBidWlsdGluL2Nsb25lLmM6MzUxCisjOiBidWlsdGluL2Nsb25lLmM6MzYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjb3B5IGZpbGUgdG8gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5ou36LSd5paH5Lu26IezICclcyciCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozNzQKKyM6IGJ1aWx0aW4vY2xvbmUuYzozODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZG9uZS5cbiIKIG1zZ3N0ciAi5a6M5oiQ44CCXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzozODcKKyM6IGJ1aWx0aW4vY2xvbmUuYzozOTYKIG1zZ2lkICIiCiAiQ2xvbmUgc3VjY2VlZGVkLCBidXQgY2hlY2tvdXQgZmFpbGVkLlxuIgogIllvdSBjYW4gaW5zcGVjdCB3aGF0IHdhcyBjaGVja2VkIG91dCB3aXRoICdnaXQgc3RhdHVzJ1xuIgpAQCAtMzQwMCw5MCArMzczMSwxMDQgQEAKICLmgqjlj6/ku6XpgJrov4cgJ2dpdCBzdGF0dXMnIOajgOafpeWTquS6m+W3suiiq+ajgOWHuu+8jOeEtuWQjuS9v+eUqOWRveS7pFxuIgogIidnaXQgY2hlY2tvdXQgLWYgSEVBRCcg6YeN6K+VXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo0NjYKKyM6IGJ1aWx0aW4vY2xvbmUuYzo0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgcmVtb3RlIGJyYW5jaCAlcyB0byBjbG9uZS4iCiBtc2dzdHIgIuS4jeiDveWPkeeOsOimgeWFi+mahueahOi/nOeoi+WIhuaUryAlc+OAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjU0MAorIzogYnVpbHRpbi9jbG9uZS5jOjU1NQorIywgYy1mb3JtYXQKK21zZ2lkICJDaGVja2luZyBjb25uZWN0aXZpdHkuLi4gIgorbXNnc3RyICLmo4Dmn6Xov57mjqUuLi4gIgorCisjOiBidWlsdGluL2Nsb25lLmM6NTU4CiBtc2dpZCAicmVtb3RlIGRpZCBub3Qgc2VuZCBhbGwgbmVjZXNzYXJ5IG9iamVjdHMiCiBtc2dzdHIgIui/nOeoi+ayoeacieWPkemAgeaJgOacieW/hemhu+eahOWvueixoSIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjYwMAorIzogYnVpbHRpbi9jbG9uZS5jOjU2MAorIywgYy1mb3JtYXQKK21zZ2lkICJkb25lXG4iCittc2dzdHIgIuWujOaIkFxuIgorCisjOiBidWlsdGluL2Nsb25lLmM6NjIxCiBtc2dpZCAicmVtb3RlIEhFQUQgcmVmZXJzIHRvIG5vbmV4aXN0ZW50IHJlZiwgdW5hYmxlIHRvIGNoZWNrb3V0LlxuIgogbXNnc3RyICLov5znqIsgSEVBRCDmjIflkJHkuIDkuKrkuI3lrZjlnKjnmoTlvJXnlKjvvIzml6Dms5Xmo4Dlh7rjgIJcbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjYzMQorIzogYnVpbHRpbi9jbG9uZS5jOjY1MgogbXNnaWQgInVuYWJsZSB0byBjaGVja291dCB3b3JraW5nIHRyZWUiCiBtc2dzdHIgIuS4jeiDveajgOWHuuW3peS9nOWMuiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjczOQorIzogYnVpbHRpbi9jbG9uZS5jOjc2MAogbXNnaWQgIlRvbyBtYW55IGFyZ3VtZW50cy4iCiBtc2dzdHIgIuWkquWkmuWPguaVsOOAgiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjc0MworIzogYnVpbHRpbi9jbG9uZS5jOjc2NAogbXNnaWQgIllvdSBtdXN0IHNwZWNpZnkgYSByZXBvc2l0b3J5IHRvIGNsb25lLiIKIG1zZ3N0ciAi5oKo5b+F6aG75oyH5a6a5LiA5Liq54mI5pys5bqT5p2l5YWL6ZqG44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzU0CisjOiBidWlsdGluL2Nsb25lLmM6Nzc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIi0tYmFyZSBhbmQgLS1vcmlnaW4gJXMgb3B0aW9ucyBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiLS1iYXJlIOWSjCAtLW9yaWdpbiAlcyDpgInpobnkuI3lhbzlrrnjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3NTcKKyM6IGJ1aWx0aW4vY2xvbmUuYzo3NzgKIG1zZ2lkICItLWJhcmUgYW5kIC0tc2VwYXJhdGUtZ2l0LWRpciBhcmUgaW5jb21wYXRpYmxlLiIKIG1zZ3N0ciAiLS1iYXJlIOWSjCAtLXNlcGFyYXRlLWdpdC1kaXIg6YCJ6aG55LiN5YW85a6544CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6NzcwCisjOiBidWlsdGluL2Nsb25lLmM6NzkxCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlcG9zaXRvcnkgJyVzJyBkb2VzIG5vdCBleGlzdCIKIG1zZ3N0ciAi54mI5pys5bqTICclcycg5LiN5a2Y5ZyoIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzc1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk2CiBtc2dpZCAiLS1kZXB0aCBpcyBpZ25vcmVkIGluIGxvY2FsIGNsb25lczsgdXNlIGZpbGU6Ly8gaW5zdGVhZC4iCiBtc2dzdHIgIi0tZGVwdGgg5Zyo5pys5Zyw5YWL6ZqG6KKr5b+955Wl77yM5pS55Li6IGZpbGU6Ly8g5Y2P6K6u6K+V6K+V44CCIgogCi0jOiBidWlsdGluL2Nsb25lLmM6Nzg1CisjOiBidWlsdGluL2Nsb25lLmM6Nzk4Cittc2dpZCAiLS1sb2NhbCBpcyBpZ25vcmVkIgorbXNnc3RyICItLWxvY2FsIOiiq+W/veeVpSIKKworIzogYnVpbHRpbi9jbG9uZS5jOjgwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJkZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhbiBlbXB0eSBkaXJlY3RvcnkuIgogbXNnc3RyICLnm67moIfot6/lvoQgJyVzJyDlt7Lnu4/lrZjlnKjvvIzlubbkuJTkuI3mmK/kuIDkuKrnqbrnm67lvZXjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo3OTUKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAid29ya2luZyB0cmVlICclcycgYWxyZWFkeSBleGlzdHMuIgogbXNnc3RyICLlt6XkvZzljLogJyVzJyDlt7Lnu4/lrZjlnKjjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MDggYnVpbHRpbi9jbG9uZS5jOjgyMAorIzogYnVpbHRpbi9jbG9uZS5jOjgzMSBidWlsdGluL2Nsb25lLmM6ODQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCBjcmVhdGUgbGVhZGluZyBkaXJlY3RvcmllcyBvZiAnJXMnIgogbXNnc3RyICLkuI3og73kuLogJyVzJyDliJvlu7rlhYjlr7znm67lvZUiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MTEKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4MzQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSB3b3JrIHRyZWUgZGlyICclcycuIgogbXNnc3RyICLkuI3og73kuLogJyVzJyDliJvlu7rlt6XkvZzljLrnm67lvZXjgIIiCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzAKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvIGJhcmUgcmVwb3NpdG9yeSAnJXMnLi4uXG4iCiBtc2dzdHIgIuWFi+mahuWIsOijuOeJiOacrOW6kyAnJXMnLi4uXG4iCiAKLSM6IGJ1aWx0aW4vY2xvbmUuYzo4MzIKKyM6IGJ1aWx0aW4vY2xvbmUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xvbmluZyBpbnRvICclcycuLi5cbiIKIG1zZ3N0ciAi5q2j5YWL6ZqG5YiwICclcycuLi5cbiIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjg2NworIzogYnVpbHRpbi9jbG9uZS5jOjg5MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBjbG9uZSAlcyIKIG1zZ3N0ciAi5LiN55+l6YGT5aaC5L2V5YWL6ZqGICVzIgogCi0jOiBidWlsdGluL2Nsb25lLmM6OTE2CisjOiBidWlsdGluL2Nsb25lLmM6OTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlbW90ZSBicmFuY2ggJXMgbm90IGZvdW5kIGluIHVwc3RyZWFtICVzIgogbXNnc3RyICLov5znqIvliIbmlK8gJXMg5Zyo5LiK5ri4ICVzIOacquWPkeeOsCIKIAotIzogYnVpbHRpbi9jbG9uZS5jOjkyMworIzogYnVpbHRpbi9jbG9uZS5jOjk0OQogbXNnaWQgIllvdSBhcHBlYXIgdG8gaGF2ZSBjbG9uZWQgYW4gZW1wdHkgcmVwb3NpdG9yeS4iCiBtc2dzdHIgIuaCqOS8vOS5juWFi+mahuS6huS4gOS4quepuueJiOacrOW6k+OAgiIKIApAQCAtMzUxOSwxNSArMzg2NCwxNSBAQAogbXNnaWQgIi0tY29tbWFuZCBtdXN0IGJlIHRoZSBmaXJzdCBhcmd1bWVudCIKIG1zZ3N0ciAiLS1jb21tYW5kIOW/hemhu+aYr+esrOS4gOS4quWPguaVsCIKIAotIzogYnVpbHRpbi9jb21taXQuYzozNAorIzogYnVpbHRpbi9jb21taXQuYzozNQogbXNnaWQgImdpdCBjb21taXQgW29wdGlvbnNdIFstLV0gPHBhdGhzcGVjPi4uLiIKIG1zZ3N0ciAiZ2l0IGNvbW1pdCBb6YCJ6aG5XSBbLS1dIDzot6/lvoTljLnphY0+Li4uIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5CisjOiBidWlsdGluL2NvbW1pdC5jOjQwCiBtc2dpZCAiZ2l0IHN0YXR1cyBbb3B0aW9uc10gWy0tXSA8cGF0aHNwZWM+Li4uIgogbXNnc3RyICJnaXQgc3RhdHVzIFvpgInpobldIFstLV0gPOi3r+W+hOWMuemFjT4uLi4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDUKIG1zZ2lkICIiCiAiWW91ciBuYW1lIGFuZCBlbWFpbCBhZGRyZXNzIHdlcmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5IGJhc2VkXG4iCiAib24geW91ciB1c2VybmFtZSBhbmQgaG9zdG5hbWUuIFBsZWFzZSBjaGVjayB0aGF0IHRoZXkgYXJlIGFjY3VyYXRlLlxuIgpAQCAtMzU1MCw3ICszODk1LDcgQEAKICJcbiIKICIgICAgZ2l0IGNvbW1pdCAtLWFtZW5kIC0tcmVzZXQtYXV0aG9yXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NTYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTcKIG1zZ2lkICIiCiAiWW91IGFza2VkIHRvIGFtZW5kIHRoZSBtb3N0IHJlY2VudCBjb21taXQsIGJ1dCBkb2luZyBzbyB3b3VsZCBtYWtlXG4iCiAiaXQgZW1wdHkuIFlvdSBjYW4gcmVwZWF0IHlvdXIgY29tbWFuZCB3aXRoIC0tYWxsb3ctZW1wdHksIG9yIHlvdSBjYW5cbiIKQEAgLTM1NTksMTA5ICszOTA0LDEyNyBAQAogIuaCqOimgeS/ruihpeacgOi/keeahOaPkOS6pO+8jOS9hui/meS5iOWBmuS8muiuqeWug+aIkOS4uuepuuaPkOS6pOOAguaCqOWPr+S7pemHjeWkjeaCqOeahOWRveS7pOW5tuW4puS4ilxuIgogIi0tYWxsb3ctZW1wdHkg6YCJ6aG577yM5oiW6ICF5oKo5Y+v55So5ZG95LukIFwiZ2l0IHJlc2V0IEhFQUReXCIg5pW05Liq5Yig6Zmk6K+l5o+Q5Lqk44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjIKIG1zZ2lkICIiCiAiVGhlIHByZXZpb3VzIGNoZXJyeS1waWNrIGlzIG5vdyBlbXB0eSwgcG9zc2libHkgZHVlIHRvIGNvbmZsaWN0IHJlc29sdXRpb24uXG4iCiAiSWYgeW91IHdpc2ggdG8gY29tbWl0IGl0IGFueXdheSwgdXNlOlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHlcbiIKICJcbiIKLSJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKIG1zZ3N0ciAiIgogIuS5i+WJjeeahOaLo+mAieaTjeS9nOeOsOWcqOaYr+S4gOS4quepuuaPkOS6pO+8jOWPr+iDveaYr+eUseWGsueqgeino+WGs+WvvOiHtOeahOOAguWmguaenOaCqOaXoOiuuuWmguS9lVxuIgogIuS5n+imgeaPkOS6pO+8jOS9v+eUqOWRveS7pO+8mlxuIgogIlxuIgogIiAgICBnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHlcbiIKICJcbiIKLSLlkKbliJnvvIzor7fkvb/nlKjlkb3ku6QgJ2dpdCByZXNldCdcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoyNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NjkKK21zZ2lkICJPdGhlcndpc2UsIHBsZWFzZSB1c2UgJ2dpdCByZXNldCdcbiIKK21zZ3N0ciAi5ZCm5YiZ77yM6K+35L2/55So5ZG95LukICdnaXQgcmVzZXQnXG4iCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzIKK21zZ2lkICIiCisiSWYgeW91IHdpc2ggdG8gc2tpcCB0aGlzIGNvbW1pdCwgdXNlOlxuIgorIlxuIgorIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyJUaGVuIFwiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWVcIiB3aWxsIHJlc3VtZSBjaGVycnktcGlja2luZ1xuIgorInRoZSByZW1haW5pbmcgY29tbWl0cy5cbiIKK21zZ3N0ciAiIgorIuWmguaenOaCqOaDs+i3s+i/h+i/meS4quaPkOS6pO+8jOS9v+eUqOWRveS7pO+8mlxuIgorIlxuIgorIiAgICBnaXQgcmVzZXRcbiIKKyJcbiIKKyLnhLblkI7miafooYwgXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiIOe7p+e7reWvueWFtuS9meaPkOS6pOaJp+ihjOaLo+mAiVxuIgorIuaTjeS9nOOAglxuIgorCisjOiBidWlsdGluL2NvbW1pdC5jOjI3OQogbXNnaWQgImZhaWxlZCB0byB1bnBhY2sgSEVBRCB0cmVlIG9iamVjdCIKIG1zZ3N0ciAi5peg5rOV6Kej5YyFIEhFQUQg5qCR5a+56LGhIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwMgorIzogYnVpbHRpbi9jb21taXQuYzozMjEKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRlbXBvcmFyeSBpbmRleCIKIG1zZ3N0ciAi5LiN6IO95Yib5bu65Li05pe257Si5byVIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjMwOAorIzogYnVpbHRpbi9jb21taXQuYzozMjcKIG1zZ2lkICJpbnRlcmFjdGl2ZSBhZGQgZmFpbGVkIgogbXNnc3RyICLkuqTkupLlvI/mt7vliqDlpLHotKUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzQxIGJ1aWx0aW4vY29tbWl0LmM6MzYyIGJ1aWx0aW4vY29tbWl0LmM6NDEyCisjOiBidWlsdGluL2NvbW1pdC5jOjM2MCBidWlsdGluL2NvbW1pdC5jOjM4MSBidWlsdGluL2NvbW1pdC5jOjQzMQogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBuZXdfaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZIG5ld19pbmRleCDmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MzkzCisjOiBidWlsdGluL2NvbW1pdC5jOjQxMgogbXNnaWQgImNhbm5vdCBkbyBhIHBhcnRpYWwgY29tbWl0IGR1cmluZyBhIG1lcmdlLiIKIG1zZ3N0ciAi5Zyo5ZCI5bm26L+H56iL5Lit5LiN6IO95YGa6YOo5YiG5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjM5NQorIzogYnVpbHRpbi9jb21taXQuYzo0MTQKIG1zZ2lkICJjYW5ub3QgZG8gYSBwYXJ0aWFsIGNvbW1pdCBkdXJpbmcgYSBjaGVycnktcGljay4iCiBtc2dzdHIgIuWcqOaLo+mAiei/h+eoi+S4reS4jeiDveWBmumDqOWIhuaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo0MDUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NDI0CiBtc2dpZCAiY2Fubm90IHJlYWQgdGhlIGluZGV4IgogbXNnc3RyICLml6Dms5Xor7vlj5bntKLlvJUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NDI1CisjOiBidWlsdGluL2NvbW1pdC5jOjQ0NAogbXNnaWQgInVuYWJsZSB0byB3cml0ZSB0ZW1wb3JhcnkgaW5kZXggZmlsZSIKIG1zZ3N0ciAi5peg5rOV5YaZ5Li05pe257Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjUxMyBidWlsdGluL2NvbW1pdC5jOjUxOQorIzogYnVpbHRpbi9jb21taXQuYzo1MzUgYnVpbHRpbi9jb21taXQuYzo1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBjb21taXQ6ICVzIgogbXNnc3RyICLml6DmlYjnmoTmj5DkuqTvvJolcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTYzCiBtc2dpZCAibWFsZm9ybWVkIC0tYXV0aG9yIHBhcmFtZXRlciIKIG1zZ3N0ciAi6Z2e5rOV55qEIC0tYXV0aG9yIOWPguaVsCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo1NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NTgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpZGVudCBzdHJpbmc6ICclcyciCiBtc2dzdHIgIumdnuazleeahOi6q+S7veWtl+espuS4su+8miclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjAwIGJ1aWx0aW4vY29tbWl0LmM6NjMzIGJ1aWx0aW4vY29tbWl0LmM6OTU2CisjOiBidWlsdGluL2NvbW1pdC5jOjYyMSBidWlsdGluL2NvbW1pdC5jOjY1NCBidWlsdGluL2NvbW1pdC5jOjk4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3QgbG9va3VwIGNvbW1pdCAlcyIKIG1zZ3N0ciAi5LiN6IO95p+l6K+i5o+Q5LqkICVzIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxMiBidWlsdGluL3Nob3J0bG9nLmM6MjcyCisjOiBidWlsdGluL2NvbW1pdC5jOjYzMyBidWlsdGluL3Nob3J0bG9nLmM6MjcxCiAjLCBjLWZvcm1hdAogbXNnaWQgIihyZWFkaW5nIGxvZyBtZXNzYWdlIGZyb20gc3RhbmRhcmQgaW5wdXQpXG4iCiBtc2dzdHIgIu+8iOato+S7juagh+WHhui+k+WFpeS4reivu+WPluaXpeW/l+S/oeaBr++8iVxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxNAorIzogYnVpbHRpbi9jb21taXQuYzo2MzUKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBsb2cgZnJvbSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAi5LiN6IO95LuO5qCH5YeG6L6T5YWl5Lit6K+75Y+W5pel5b+X5L+h5oGvIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjYxOAorIzogYnVpbHRpbi9jb21taXQuYzo2MzkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgbG9nIGZpbGUgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W5pel5b+X5paH5Lu2ICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjI0CisjOiBidWlsdGluL2NvbW1pdC5jOjY0NQogbXNnaWQgImNvbW1pdCBoYXMgZW1wdHkgbWVzc2FnZSIKIG1zZ3N0ciAi5o+Q5Lqk6K+05piO5Li656m6IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0MAorIzogYnVpbHRpbi9jb21taXQuYzo2NjEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCBNRVJHRV9NU0ciCiBtc2dzdHIgIuS4jeiDveivu+WPliBNRVJHRV9NU0ciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NjQ0CisjOiBidWlsdGluL2NvbW1pdC5jOjY2NQogbXNnaWQgImNvdWxkIG5vdCByZWFkIFNRVUFTSF9NU0ciCiBtc2dzdHIgIuS4jeiDveivu+WPliBTUVVBU0hfTVNHIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjY0OAorIzogYnVpbHRpbi9jb21taXQuYzo2NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICclcyciCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzA5CisjOiBidWlsdGluL2NvbW1pdC5jOjczMAogbXNnaWQgImNvdWxkIG5vdCB3cml0ZSBjb21taXQgdGVtcGxhdGUiCiBtc2dzdHIgIuS4jeiDveWGmeaPkOS6pOaooeeJiCIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3MjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzQxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJcbiIKQEAgLTM2NzUsNyArNDAzOCw3IEBACiAiXHQlc1xuIgogIueEtuWQjumHjeivleOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjcyNQorIzogYnVpbHRpbi9jb21taXQuYzo3NDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlxuIgpAQCAtMzY4OSw3ICs0MDUyLDcgQEAKICJcdCVzXG4iCiAi54S25ZCO6YeN6K+V44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6NzM3CisjOiBidWlsdGluL2NvbW1pdC5jOjc1OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgeW91ciBjaGFuZ2VzLiBMaW5lcyBzdGFydGluZ1xuIgpAQCAtMzY5OCw3ICs0MDYxLDcgQEAKICLor7fkuLrmgqjnmoTlj5jmm7TovpPlhaXmj5DkuqTor7TmmI7jgILku6UgJyVjJyDlvIDlp4vnmoTooYzlsIbooqvlv73nlaXvvIzogIzkuIDkuKrnqbrnmoTmj5DkuqRcbiIKICLor7TmmI7lsIbkvJrnu4jmraLmj5DkuqTjgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3NDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJQbGVhc2UgZW50ZXIgdGhlIGNvbW1pdCBtZXNzYWdlIGZvciB5b3VyIGNoYW5nZXMuIExpbmVzIHN0YXJ0aW5nXG4iCkBAIC0zNzA5LDM1NSArNDA3MiwzNTUgQEAKICLkuZ/lj6/ku6XliKDpmaTlroPku6zjgILkuIDkuKrnqbrnmoTmj5DkuqTor7TmmI7lsIbkvJrnu4jmraLmj5DkuqTjgIJcbiIKIAogIyAg6K+R6ICF77ya5Li65L+d6K+B5Zyo6L6T5Ye65Lit5a+56b2Q77yM5rOo5oSP6LCD5pW05Y+l5Lit56m65qC877yBCi0jOiBidWlsdGluL2NvbW1pdC5jOjc1NQorIzogYnVpbHRpbi9jb21taXQuYzo3NzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXNBdXRob3I6ICAgICVzIgogbXNnc3RyICIlc+S9nOiAhe+8miAgICAgJXMiCiAKICMgIOivkeiAhe+8muS4uuS/neivgeWcqOi+k+WHuuS4reWvuem9kO+8jOazqOaEj+iwg+aVtOWPpeS4reepuuagvO+8gQotIzogYnVpbHRpbi9jb21taXQuYzo3NjIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6NzgzCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzQ29tbWl0dGVyOiAlcyIKIG1zZ3N0ciAiJXPmj5DkuqTogIXvvJogICAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo3ODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODAzCiBtc2dpZCAiQ2Fubm90IHJlYWQgaW5kZXgiCiBtc2dzdHIgIuaXoOazleivu+WPlue0ouW8lSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODQ1CiBtc2dpZCAiRXJyb3IgYnVpbGRpbmcgdHJlZXMiCiBtc2dzdHIgIuaXoOazleWIm+W7uuagkeWvueixoSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo4MzQgYnVpbHRpbi90YWcuYzozNTkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6ODYwIGJ1aWx0aW4vdGFnLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlBsZWFzZSBzdXBwbHkgdGhlIG1lc3NhZ2UgdXNpbmcgZWl0aGVyIC1tIG9yIC1GIG9wdGlvbi5cbiIKIG1zZ3N0ciAi6K+35L2/55SoIC1tIOaIliAtRiDpgInpobnmj5Dkvpvmj5DkuqTor7TmmI7jgIJcbiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5MzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6OTU3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIGV4aXN0aW5nIGF1dGhvciBmb3VuZCB3aXRoICclcyciCiBtc2dzdHIgIuayoeacieaJvuWIsOWMuemFjSAnJXMnIOeahOS9nOiAhSIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NDYgYnVpbHRpbi9jb21taXQuYzoxMTQwCisjOiBidWlsdGluL2NvbW1pdC5jOjk3MiBidWlsdGluL2NvbW1pdC5jOjEyMDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCB1bnRyYWNrZWQgZmlsZXMgbW9kZSAnJXMnIgogbXNnc3RyICLml6DmlYjnmoTmnKrov73ouKrmlofku7blj4LmlbAgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5NzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAwOQorbXNnaWQgIi0tbG9uZyBhbmQgLXogYXJlIGluY29tcGF0aWJsZSIKK21zZ3N0ciAiLS1sb25nIOWSjCAteiDpgInpobnkuI3lhbzlrrkiCisKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOQogbXNnaWQgIlVzaW5nIGJvdGggLS1yZXNldC1hdXRob3IgYW5kIC0tYXV0aG9yIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIuWQjOaXtuS9v+eUqCAtLXJlc2V0LWF1dGhvciDlkowgLS1hdXRob3Ig5rKh5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk4NworIzogYnVpbHRpbi9jb21taXQuYzoxMDUwCiBtc2dpZCAiWW91IGhhdmUgbm90aGluZyB0byBhbWVuZC4iCiBtc2dzdHIgIuaCqOayoeacieWPr+S/ruihpeeahOaPkOS6pOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzo5OTAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA1MwogbXNnaWQgIllvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlIC0tIGNhbm5vdCBhbWVuZC4iCiBtc2dzdHIgIuaCqOato+WkhOS6juS4gOS4quWQiOW5tui/h+eoi+S4rSAtLSDml6Dms5Xkv67ooaXmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6OTkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEwNTUKIG1zZ2lkICJZb3UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBjaGVycnktcGljayAtLSBjYW5ub3QgYW1lbmQuIgogbXNnc3RyICLmgqjmraPlpITkuo7kuIDkuKrmi6PpgInov4fnqIvkuK0gLS0g5peg5rOV5L+u6KGl5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjk5NQorIzogYnVpbHRpbi9jb21taXQuYzoxMDU4CiBtc2dpZCAiT3B0aW9ucyAtLXNxdWFzaCBhbmQgLS1maXh1cCBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIKIG1zZ3N0ciAi6YCJ6aG5IC0tc3F1YXNoIOWSjCAtLWZpeHVwIOS4jeiDveWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDA1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNjgKIG1zZ2lkICJPbmx5IG9uZSBvZiAtYy8tQy8tRi8tLWZpeHVwIGNhbiBiZSB1c2VkLiIKIG1zZ3N0ciAi5Y+q6IO955So5LiA5LiqIC1jLy1DLy1GLy0tZml4dXAg6YCJ6aG544CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMDcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA3MAogbXNnaWQgIk9wdGlvbiAtbSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtYy8tQy8tRi8tLWZpeHVwLiIKIG1zZ3N0ciAi6YCJ6aG5IC1tIOS4jeiDveWSjCAtYy8tQy8tRi8tLWZpeHVwIOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDE1CisjOiBidWlsdGluL2NvbW1pdC5jOjEwNzgKIG1zZ2lkICItLXJlc2V0LWF1dGhvciBjYW4gYmUgdXNlZCBvbmx5IHdpdGggLUMsIC1jIG9yIC0tYW1lbmQuIgogbXNnc3RyICItLXJlc2V0LWF1dGhvciDlj6rog73lkowgLUPjgIEtYyDmiJYgLS1hbWVuZCDlkIzml7bkvb/nlKjjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzMgorIzogYnVpbHRpbi9jb21taXQuYzoxMDk1CiBtc2dpZCAiT25seSBvbmUgb2YgLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2ggY2FuIGJlIHVzZWQuIgogbXNnc3RyICLlj6rog73nlKjkuIDkuKogLS1pbmNsdWRlLy0tb25seS8tLWFsbC8tLWludGVyYWN0aXZlLy0tcGF0Y2gg6YCJ6aG544CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzQKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5NwogbXNnaWQgIk5vIHBhdGhzIHdpdGggLS1pbmNsdWRlLy0tb25seSBkb2VzIG5vdCBtYWtlIHNlbnNlLiIKIG1zZ3N0ciAi5Y+C5pWwIC0taW5jbHVkZS8tLW9ubHkg5LiN6Lef6Lev5b6E5rKh5pyJ5oSP5LmJ44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwMzYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTA5OQogbXNnaWQgIkNsZXZlci4uLiBhbWVuZGluZyB0aGUgbGFzdCBvbmUgd2l0aCBkaXJ0eSBpbmRleC4iCiBtc2dzdHIgIuiBquaYji4uLiDlnKjntKLlvJXkuI3lubLlh4DkuIvkv67ooaXmnIDlkI7nmoTmj5DkuqTjgIIiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTAzOAorIzogYnVpbHRpbi9jb21taXQuYzoxMTAxCiBtc2dpZCAiRXhwbGljaXQgcGF0aHMgc3BlY2lmaWVkIHdpdGhvdXQgLWkgbm9yIC1vOyBhc3N1bWluZyAtLW9ubHkgcGF0aHMuLi4iCiBtc2dzdHIgIuaMh+WumuS6huaYjuehrueahOi3r+W+hOiAjOayoeacieS9v+eUqCAtaSDmiJYgLW8g6YCJ6aG577yb6K6k5Li65pivIC0tb25seSBwYXRocy4uLiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDQ4IGJ1aWx0aW4vdGFnLmM6NTc1CisjOiBidWlsdGluL2NvbW1pdC5jOjExMTEgYnVpbHRpbi90YWcuYzo1NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiSW52YWxpZCBjbGVhbnVwIG1vZGUgJXMiCiBtc2dzdHIgIuaXoOaViOeahOa4heeQhuaooeW8jyAlcyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMDUzCisjOiBidWlsdGluL2NvbW1pdC5jOjExMTYKIG1zZ2lkICJQYXRocyB3aXRoIC1hIGRvZXMgbm90IG1ha2Ugc2Vuc2UuIgogbXNnc3RyICLot6/lvoTlkowgLWEg6YCJ6aG55ZCM5pe25L2/55So5rKh5pyJ5oSP5LmJ44CCIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEwNTkgYnVpbHRpbi9jb21taXQuYzoxMTk0Ci1tc2dpZCAiLS1sb25nIGFuZCAteiBhcmUgaW5jb21wYXRpYmxlIgotbXNnc3RyICItLWxvbmcg5ZKMIC16IOmAiemhueS4jeWFvOWuuSIKLQotIzogYnVpbHRpbi9jb21taXQuYzoxMTU0IGJ1aWx0aW4vY29tbWl0LmM6MTM5MAorIzogYnVpbHRpbi9jb21taXQuYzoxMjIyIGJ1aWx0aW4vY29tbWl0LmM6MTQ1NQogbXNnaWQgInNob3cgc3RhdHVzIGNvbmNpc2VseSIKIG1zZ3N0ciAi5Lul566A5rSB55qE5qC85byP5pi+56S654q25oCBIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNTYgYnVpbHRpbi9jb21taXQuYzoxMzkyCisjOiBidWlsdGluL2NvbW1pdC5jOjEyMjQgYnVpbHRpbi9jb21taXQuYzoxNDU3CiBtc2dpZCAic2hvdyBicmFuY2ggaW5mb3JtYXRpb24iCiBtc2dzdHIgIuaYvuekuuWIhuaUr+S/oeaBryIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTU4IGJ1aWx0aW4vY29tbWl0LmM6MTM5NCBidWlsdGluL3B1c2guYzo0MjYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIyNiBidWlsdGluL2NvbW1pdC5jOjE0NTkgYnVpbHRpbi9wdXNoLmM6NDUyCiBtc2dpZCAibWFjaGluZS1yZWFkYWJsZSBvdXRwdXQiCiBtc2dzdHIgIuacuuWZqOWPr+ivu+eahOi+k+WHuiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTYxIGJ1aWx0aW4vY29tbWl0LmM6MTM5NgorIzogYnVpbHRpbi9jb21taXQuYzoxMjI5IGJ1aWx0aW4vY29tbWl0LmM6MTQ2MQogbXNnaWQgInNob3cgc3RhdHVzIGluIGxvbmcgZm9ybWF0IChkZWZhdWx0KSIKIG1zZ3N0ciAi5Lul6ZW/5qC85byP5pi+56S654q25oCB77yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNjQgYnVpbHRpbi9jb21taXQuYzoxMzk5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzIgYnVpbHRpbi9jb21taXQuYzoxNDY0CiBtc2dpZCAidGVybWluYXRlIGVudHJpZXMgd2l0aCBOVUwiCiBtc2dzdHIgIuadoeebruS7pU5VTOWtl+espue7k+WwviIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMTY2IGJ1aWx0aW4vY29tbWl0LmM6MTQwMiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUzCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU2IGJ1aWx0aW4vdGFnLmM6NDU5CisjOiBidWlsdGluL2NvbW1pdC5jOjEyMzQgYnVpbHRpbi9jb21taXQuYzoxNDY3IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjcKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzAgYnVpbHRpbi90YWcuYzo0NTkKIG1zZ2lkICJtb2RlIgogbXNnc3RyICLmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE2NyBidWlsdGluL2NvbW1pdC5jOjE0MDIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzNSBidWlsdGluL2NvbW1pdC5jOjE0NjcKIG1zZ2lkICJzaG93IHVudHJhY2tlZCBmaWxlcywgb3B0aW9uYWwgbW9kZXM6IGFsbCwgbm9ybWFsLCBuby4gKERlZmF1bHQ6IGFsbCkiCiBtc2dzdHIgIuaYvuekuuacqui3n+i4queahOaWh+S7tu+8jOKAnOaooeW8j+KAneeahOWPr+mAieWPguaVsO+8mmFsbOOAgW5vcm1hbOOAgW5v44CC77yI6buY6K6k77yaYWxs77yJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTIzOAogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAi5pi+56S65b+955Wl55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjExNzEgcGFyc2Utb3B0aW9ucy5oOjE1MQorIzogYnVpbHRpbi9jb21taXQuYzoxMjM5IHBhcnNlLW9wdGlvbnMuaDoxNTQKIG1zZ2lkICJ3aGVuIgogbXNnc3RyICLkvZXml7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3MgorIzogYnVpbHRpbi9jb21taXQuYzoxMjQwCiBtc2dpZCAiIgogImlnbm9yZSBjaGFuZ2VzIHRvIHN1Ym1vZHVsZXMsIG9wdGlvbmFsIHdoZW46IGFsbCwgZGlydHksIHVudHJhY2tlZC4gIgogIihEZWZhdWx0OiBhbGwpIgogbXNnc3RyICIiCiAi5b+955Wl5a2Q5qih57uE55qE5pu05pS577yM4oCc5L2V5pe24oCd55qE5Y+v6YCJ5Y+C5pWw77yaYWxs44CBZGlydHnjgIF1bnRyYWNrZWTjgILvvIjpu5jorqTvvJphbGzvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTE3NAorIzogYnVpbHRpbi9jb21taXQuYzoxMjQyCiBtc2dpZCAibGlzdCB1bnRyYWNrZWQgZmlsZXMgaW4gY29sdW1ucyIKIG1zZ3N0ciAi5Lul5YiX55qE5pa55byP5pi+56S65pyq6Lef6Liq55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEyNDgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTMxMwogbXNnaWQgImNvdWxkbid0IGxvb2sgdXAgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgIuaXoOazleaJvuWIsOaWsOWIm+W7uueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjUwCisjOiBidWlsdGluL2NvbW1pdC5jOjEzMTUKIG1zZ2lkICJjb3VsZCBub3QgcGFyc2UgbmV3bHkgY3JlYXRlZCBjb21taXQiCiBtc2dzdHIgIuS4jeiDveino+aekOaWsOWIm+W7uueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkxCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTYKIG1zZ2lkICJkZXRhY2hlZCBIRUFEIgogbXNnc3RyICLliIbnprvlpLTmjIfpkogiCiAKICMgIOivkeiAhe+8muS4reaWh+Wtl+espuS4suaLvOaOpe+8jOWPr+WIoOmZpOWJjeWvvOepuuagvAotIzogYnVpbHRpbi9jb21taXQuYzoxMjkzCisjOiBidWlsdGluL2NvbW1pdC5jOjEzNTgKIG1zZ2lkICIgKHJvb3QtY29tbWl0KSIKIG1zZ3N0ciAi77yI5qC55o+Q5Lqk77yJIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjAKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQyNQogbXNnaWQgInN1cHByZXNzIHN1bW1hcnkgYWZ0ZXIgc3VjY2Vzc2Z1bCBjb21taXQiCiBtc2dzdHIgIuaPkOS6pOaIkOWKn+WQjuS4jeaYvuekuuamgui/sOS/oeaBryIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjYKIG1zZ2lkICJzaG93IGRpZmYgaW4gY29tbWl0IG1lc3NhZ2UgdGVtcGxhdGUiCiBtc2dzdHIgIuWcqOaPkOS6pOivtOaYjuaooeadv+mHjOaYvuekuuW3ruW8giIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzYzCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MjgKIG1zZ2lkICJDb21taXQgbWVzc2FnZSBvcHRpb25zIgogbXNnc3RyICLmj5DkuqTor7TmmI7pgInpobkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NCBidWlsdGluL3RhZy5jOjQ1NworIzogYnVpbHRpbi9jb21taXQuYzoxNDI5IGJ1aWx0aW4vdGFnLmM6NDU3CiBtc2dpZCAicmVhZCBtZXNzYWdlIGZyb20gZmlsZSIKIG1zZ3N0ciAi5LuO5paH5Lu25Lit6K+75Y+W5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgImF1dGhvciIKIG1zZ3N0ciAi5L2c6ICFIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjUKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMAogbXNnaWQgIm92ZXJyaWRlIGF1dGhvciBmb3IgY29tbWl0IgogbXNnc3RyICLmj5DkuqTml7bopobnm5bkvZzogIUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2NiBidWlsdGluL2djLmM6MTc4CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEgYnVpbHRpbi9nYy5jOjE3OAogbXNnaWQgImRhdGUiCiBtc2dzdHIgIuaXpeacnyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzEKIG1zZ2lkICJvdmVycmlkZSBkYXRlIGZvciBjb21taXQiCiBtc2dzdHIgIuaPkOS6pOaXtuimhuebluaXpeacnyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3IGJ1aWx0aW4vbWVyZ2UuYzoyMDggYnVpbHRpbi9ub3Rlcy5jOjUzMwotIzogYnVpbHRpbi9ub3Rlcy5jOjY5MCBidWlsdGluL3RhZy5jOjQ1NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDMyIGJ1aWx0aW4vbWVyZ2UuYzoyMjMgYnVpbHRpbi9ub3Rlcy5jOjQwNQorIzogYnVpbHRpbi9ub3Rlcy5jOjU2MiBidWlsdGluL3RhZy5jOjQ1NQogbXNnaWQgIm1lc3NhZ2UiCiBtc2dzdHIgIuivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzY3CisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzIKIG1zZ2lkICJjb21taXQgbWVzc2FnZSIKIG1zZ3N0ciAi5o+Q5Lqk6K+05piOIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNjgKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzMwogbXNnaWQgInJldXNlIGFuZCBlZGl0IG1lc3NhZ2UgZnJvbSBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLph43nlKjlubbnvJbovpHmjIflrprmj5DkuqTnmoTmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM2OQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM0CiBtc2dpZCAicmV1c2UgbWVzc2FnZSBmcm9tIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIumHjeeUqOaMh+WumuaPkOS6pOeahOaPkOS6pOivtOaYjiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzUKIG1zZ2lkICJ1c2UgYXV0b3NxdWFzaCBmb3JtYXR0ZWQgbWVzc2FnZSB0byBmaXh1cCBzcGVjaWZpZWQgY29tbWl0IgogbXNnc3RyICLkvb/nlKggYXV0b3NxdWFzaCDmoLzlvI/nmoTmj5DkuqTor7TmmI7nlKjku6Xkv67mraPmjIflrprnmoTmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MQorIzogYnVpbHRpbi9jb21taXQuYzoxNDM2CiBtc2dpZCAidXNlIGF1dG9zcXVhc2ggZm9ybWF0dGVkIG1lc3NhZ2UgdG8gc3F1YXNoIHNwZWNpZmllZCBjb21taXQiCiBtc2dzdHIgIuS9v+eUqCBhdXRvc3F1YXNoIOagvOW8j+eahOaPkOS6pOivtOaYjueUqOS7peWOi+e8qeiHs+aMh+WumueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE0MzcKIG1zZ2lkICJ0aGUgY29tbWl0IGlzIGF1dGhvcmVkIGJ5IG1lIG5vdyAodXNlZCB3aXRoIC1DLy1jLy0tYW1lbmQpIgogbXNnc3RyICLnjrDlnKjlsIbor6Xmj5DkuqTnmoTkvZzogIXmlLnkuLrmiJHvvIjlkowgLUMvLWMvLS1hbWVuZCDlj4LmlbDlhbHnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3MyBidWlsdGluL2xvZy5jOjExMDQgYnVpbHRpbi9yZXZlcnQuYzoxMDkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQzOCBidWlsdGluL2xvZy5jOjExNjAgYnVpbHRpbi9yZXZlcnQuYzoxMTEKIG1zZ2lkICJhZGQgU2lnbmVkLW9mZi1ieToiCiBtc2dzdHIgIua3u+WKoCBTaWduZWQtb2ZmLWJ5OiDnrb7lkI0iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDM5CiBtc2dpZCAidXNlIHNwZWNpZmllZCB0ZW1wbGF0ZSBmaWxlIgogbXNnc3RyICLkvb/nlKjmjIflrprnmoTmqKHmnb/mlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDQwCiBtc2dpZCAiZm9yY2UgZWRpdCBvZiBjb21taXQiCiBtc2dzdHIgIuW8uuWItue8lui+keaPkOS6pCIKIAogIyAg6K+R6ICF77ya5Y+v6YCJ5YC877yM5LiN6IO957+76K+R77yI5oiW5piv5Y6f5paH5Lit56yU6K+v77yM5bqU5Li6IG1vZGXvvIkKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3NgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQxCiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiZGVmYXVsdCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzc2IGJ1aWx0aW4vdGFnLmM6NDYwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDEgYnVpbHRpbi90YWcuYzo0NjAKIG1zZ2lkICJob3cgdG8gc3RyaXAgc3BhY2VzIGFuZCAjY29tbWVudHMgZnJvbSBtZXNzYWdlIgogbXNnc3RyICLorr7nva7lpoLkvZXliKDpmaTmj5DkuqTor7TmmI7ph4znmoTnqbrmoLzlkowj5rOo6YeKIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzcKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MgogbXNnaWQgImluY2x1ZGUgc3RhdHVzIGluIGNvbW1pdCBtZXNzYWdlIHRlbXBsYXRlIgogbXNnc3RyICLlnKjmj5DkuqTor7TmmI7mqKHmnb/ph4zljIXlkKvnirbmgIHkv6Hmga8iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM3OCBidWlsdGluL21lcmdlLmM6MjE1IGJ1aWx0aW4vdGFnLmM6NDYxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NDMgYnVpbHRpbi9tZXJnZS5jOjIzMCBidWlsdGluL3RhZy5jOjQ2MQogbXNnaWQgImtleSBpZCIKIG1zZ3N0ciAia2V5IGlkIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzNzkgYnVpbHRpbi9tZXJnZS5jOjIxNgorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ0IGJ1aWx0aW4vbWVyZ2UuYzoyMzEKIG1zZ2lkICJHUEcgc2lnbiBjb21taXQiCiBtc2dzdHIgIkdQRyDmj5DkuqTnrb7lkI0iCiAKICMuIGVuZCBjb21taXQgbWVzc2FnZSBvcHRpb25zCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODIKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0NwogbXNnaWQgIkNvbW1pdCBjb250ZW50cyBvcHRpb25zIgogbXNnc3RyICLmj5DkuqTlhoXlrrnpgInpobkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4MworIzogYnVpbHRpbi9jb21taXQuYzoxNDQ4CiBtc2dpZCAiY29tbWl0IGFsbCBjaGFuZ2VkIGZpbGVzIgogbXNnc3RyICLmj5DkuqTmiYDmnInmlLnliqjnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NAorIzogYnVpbHRpbi9jb21taXQuYzoxNDQ5CiBtc2dpZCAiYWRkIHNwZWNpZmllZCBmaWxlcyB0byBpbmRleCBmb3IgY29tbWl0IgogbXNnc3RyICLmt7vliqDmjIflrprnmoTmlofku7bliLDntKLlvJXljLrnrYnlvoXmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NQorIzogYnVpbHRpbi9jb21taXQuYzoxNDUwCiBtc2dpZCAiaW50ZXJhY3RpdmVseSBhZGQgZmlsZXMiCiBtc2dzdHIgIuS6pOS6kuW8j+a3u+WKoOaWh+S7tiIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxMzg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NTEKIG1zZ2lkICJpbnRlcmFjdGl2ZWx5IGFkZCBjaGFuZ2VzIgogbXNnc3RyICLkuqTkupLlvI/mt7vliqDlj5jmm7QiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4NworIzogYnVpbHRpbi9jb21taXQuYzoxNDUyCiBtc2dpZCAiY29tbWl0IG9ubHkgc3BlY2lmaWVkIGZpbGVzIgogbXNnc3RyICLlj6rmj5DkuqTmjIflrprnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTM4OAorIzogYnVpbHRpbi9jb21taXQuYzoxNDUzCiBtc2dpZCAiYnlwYXNzIHByZS1jb21taXQgaG9vayIKIG1zZ3N0ciAi57uV6L+HIHByZS1jb21taXQg6ZKp5a2QIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjEzODkKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ1NAogbXNnaWQgInNob3cgd2hhdCB3b3VsZCBiZSBjb21taXR0ZWQiCiBtc2dzdHIgIuaYvuekuuWwhuimgeaPkOS6pOeahOWGheWuuSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAwCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjUKIG1zZ2lkICJhbWVuZCBwcmV2aW91cyBjb21taXQiCiBtc2dzdHIgIuS/ruaUueWFiOWJjeeahOaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDAxCisjOiBidWlsdGluL2NvbW1pdC5jOjE0NjYKIG1zZ2lkICJieXBhc3MgcG9zdC1yZXdyaXRlIGhvb2siCiBtc2dzdHIgIue7lei/hyBwb3N0LXJld3JpdGUg6ZKp5a2QIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE0MDYKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3MQogbXNnaWQgIm9rIHRvIHJlY29yZCBhbiBlbXB0eSBjaGFuZ2UiCiBtc2dzdHIgIuWFgeiuuOS4gOS4quepuuaPkOS6pCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDA5CisjOiBidWlsdGluL2NvbW1pdC5jOjE0NzQKIG1zZ2lkICJvayB0byByZWNvcmQgYSBjaGFuZ2Ugd2l0aCBhbiBlbXB0eSBtZXNzYWdlIgogbXNnc3RyICLlhYHorrjnqbrnmoTmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ0MQorIzogYnVpbHRpbi9jb21taXQuYzoxNTA3CiBtc2dpZCAiY291bGQgbm90IHBhcnNlIEhFQUQgY29tbWl0IgogbXNnc3RyICLkuI3og73op6PmnpAgSEVBRCDmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ3OSBidWlsdGluL21lcmdlLmM6NTEwCisjOiBidWlsdGluL2NvbW1pdC5jOjE1NDUgYnVpbHRpbi9tZXJnZS5jOjUyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb3VsZCBub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nIgogbXNnc3RyICLkuI3og73kuLror7vlhaXmiZPlvIAgJyVzJyIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNDg2CisjOiBidWlsdGluL2NvbW1pdC5jOjE1NTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29ycnVwdCBNRVJHRV9IRUFEIGZpbGUgKCVzKSIKIG1zZ3N0ciAi5o2f5Z2P55qEIE1FUkdFX0hFQUQg5paH5Lu277yIJXPvvIkiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTQ5MworIzogYnVpbHRpbi9jb21taXQuYzoxNTU5CiBtc2dpZCAiY291bGQgbm90IHJlYWQgTUVSR0VfTU9ERSIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WIE1FUkdFX01PREUiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUxMgorIzogYnVpbHRpbi9jb21taXQuYzoxNTc4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvdWxkIG5vdCByZWFkIGNvbW1pdCBtZXNzYWdlOiAlcyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W5o+Q5Lqk6K+05piO77yaJXMiCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUyNgorIzogYnVpbHRpbi9jb21taXQuYzoxNTkyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdDsgeW91IGRpZCBub3QgZWRpdCB0aGUgbWVzc2FnZS5cbiIKIG1zZ3N0ciAi57uI5q2i5o+Q5Lqk77yb5oKo5pyq5pu05pS55p2l6Ieq5qih54mI55qE5o+Q5Lqk6K+05piO44CCXG4iCiAKLSM6IGJ1aWx0aW4vY29tbWl0LmM6MTUzMQorIzogYnVpbHRpbi9jb21taXQuYzoxNTk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkFib3J0aW5nIGNvbW1pdCBkdWUgdG8gZW1wdHkgY29tbWl0IG1lc3NhZ2UuXG4iCiBtc2dzdHIgIue7iOatouaPkOS6pOWboOS4uuaPkOS6pOivtOaYjuS4uuepuuOAglxuIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NDYgYnVpbHRpbi9tZXJnZS5jOjg0NyBidWlsdGluL21lcmdlLmM6ODcyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2MTIgYnVpbHRpbi9tZXJnZS5jOjg2MSBidWlsdGluL21lcmdlLmM6ODg2CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlIGNvbW1pdCBvYmplY3QiCiBtc2dzdHIgIuaXoOazleWGmeaPkOS6pOWvueixoSIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTY3CisjOiBidWlsdGluL2NvbW1pdC5jOjE2MzMKIG1zZ2lkICJjYW5ub3QgbG9jayBIRUFEIHJlZiIKIG1zZ3N0ciAi5peg5rOV6ZSB5a6aIEhFQUQg5byV55SoIgogCi0jOiBidWlsdGluL2NvbW1pdC5jOjE1NzEKKyM6IGJ1aWx0aW4vY29tbWl0LmM6MTYzNwogbXNnaWQgImNhbm5vdCB1cGRhdGUgSEVBRCByZWYiCiBtc2dzdHIgIuaXoOazleabtOaWsCBIRUFEIOW8leeUqCIKIAotIzogYnVpbHRpbi9jb21taXQuYzoxNTgyCisjOiBidWlsdGluL2NvbW1pdC5jOjE2NDgKIG1zZ2lkICIiCiAiUmVwb3NpdG9yeSBoYXMgYmVlbiB1cGRhdGVkLCBidXQgdW5hYmxlIHRvIHdyaXRlXG4iCiAibmV3X2luZGV4IGZpbGUuIENoZWNrIHRoYXQgZGlzayBpcyBub3QgZnVsbCBvciBxdW90YSBpc1xuIgpAQCAtNDA3MCwxNzEgKzQ0MzMsMTgzIEBACiBtc2dpZCAiZ2l0IGNvbmZpZyBbb3B0aW9uc10iCiBtc2dzdHIgImdpdCBjb25maWcgW+mAiemhuV0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTIKIG1zZ2lkICJDb25maWcgZmlsZSBsb2NhdGlvbiIKIG1zZ3N0ciAi6YWN572u5paH5Lu25L2N572uIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUyCisjOiBidWlsdGluL2NvbmZpZy5jOjUzCiBtc2dpZCAidXNlIGdsb2JhbCBjb25maWcgZmlsZSIKIG1zZ3N0ciAi5L2/55So5YWo5bGA6YWN572u5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjUzCisjOiBidWlsdGluL2NvbmZpZy5jOjU0CiBtc2dpZCAidXNlIHN5c3RlbSBjb25maWcgZmlsZSIKIG1zZ3N0ciAi5L2/55So57O757uf57qn6YWN572u5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU0CisjOiBidWlsdGluL2NvbmZpZy5jOjU1CiBtc2dpZCAidXNlIHJlcG9zaXRvcnkgY29uZmlnIGZpbGUiCiBtc2dzdHIgIuS9v+eUqOeJiOacrOW6k+e6p+mFjee9ruaWh+S7tiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NQorIzogYnVpbHRpbi9jb25maWcuYzo1NgogbXNnaWQgInVzZSBnaXZlbiBjb25maWcgZmlsZSIKIG1zZ3N0ciAi5L2/55So5oyH5a6a55qE6YWN572u5paH5Lu2IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU2CisjOiBidWlsdGluL2NvbmZpZy5jOjU3Cittc2dpZCAiYmxvYi1pZCIKK21zZ3N0ciAi5pWw5o2u5a+56LGhSUQiCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTcKK21zZ2lkICJyZWFkIGNvbmZpZyBmcm9tIGdpdmVuIGJsb2Igb2JqZWN0IgorbXNnc3RyICLku47nu5nlrprnmoTmlbDmja7lr7nosaHor7vlj5bphY3nva4iCisKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKIG1zZ2lkICJBY3Rpb24iCiBtc2dzdHIgIuaTjeS9nCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo1NworIzogYnVpbHRpbi9jb25maWcuYzo1OQogbXNnaWQgImdldCB2YWx1ZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICLojrflj5blgLzvvJpuYW1lIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NTgKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjAKIG1zZ2lkICJnZXQgYWxsIHZhbHVlczoga2V5IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIuiOt+W+l+aJgOacieeahOWAvO+8mmtleSBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjU5CisjOiBidWlsdGluL2NvbmZpZy5jOjYxCiBtc2dpZCAiZ2V0IHZhbHVlcyBmb3IgcmVnZXhwOiBuYW1lLXJlZ2V4IFt2YWx1ZS1yZWdleF0iCiBtc2dzdHIgIuagueaNruato+WImeihqOi+vuW8j+iOt+W+l+WAvO+8mm5hbWUtcmVnZXggW3ZhbHVlLXJlZ2V4XSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2MAorIzogYnVpbHRpbi9jb25maWcuYzo2MgogbXNnaWQgInJlcGxhY2UgYWxsIG1hdGNoaW5nIHZhcmlhYmxlczogbmFtZSB2YWx1ZSBbdmFsdWVfcmVnZXhdIgogbXNnc3RyICLmm7/mjaLmiYDmnInljLnphY3nmoTlj5jph4/vvJpuYW1lIHZhbHVlIFt2YWx1ZV9yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjEKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKIG1zZ2lkICJhZGQgYSBuZXcgdmFyaWFibGU6IG5hbWUgdmFsdWUiCiBtc2dzdHIgIua3u+WKoOS4gOS4quaWsOeahOWPmOmHj++8mm5hbWUgdmFsdWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjIKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjQKIG1zZ2lkICJyZW1vdmUgYSB2YXJpYWJsZTogbmFtZSBbdmFsdWUtcmVnZXhdIgogbXNnc3RyICLliKDpmaTkuIDkuKrlj5jph4/vvJpuYW1lIFt2YWx1ZS1yZWdleF0iCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjUKIG1zZ2lkICJyZW1vdmUgYWxsIG1hdGNoZXM6IG5hbWUgW3ZhbHVlLXJlZ2V4XSIKIG1zZ3N0ciAi5Yig6Zmk5omA5pyJ5Yy56YWN6aG577yabmFtZSBbdmFsdWUtcmVnZXhdIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY0CisjOiBidWlsdGluL2NvbmZpZy5jOjY2CiBtc2dpZCAicmVuYW1lIHNlY3Rpb246IG9sZC1uYW1lIG5ldy1uYW1lIgogbXNnc3RyICLph43lkb3lkI3lsI/oioLvvJpvbGQtbmFtZSBuZXctbmFtZSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2NQorIzogYnVpbHRpbi9jb25maWcuYzo2NwogbXNnaWQgInJlbW92ZSBhIHNlY3Rpb246IG5hbWUiCiBtc2dzdHIgIuWIoOmZpOS4gOS4quWwj+iKgu+8mm5hbWUiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NjYKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NjgKIG1zZ2lkICJsaXN0IGFsbCIKIG1zZ3N0ciAi5YiX5Ye65omA5pyJIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY3CisjOiBidWlsdGluL2NvbmZpZy5jOjY5CiBtc2dpZCAib3BlbiBhbiBlZGl0b3IiCiBtc2dzdHIgIuaJk+W8gOS4gOS4que8lui+keWZqCIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OCBidWlsdGluL2NvbmZpZy5jOjY5CisjOiBidWlsdGluL2NvbmZpZy5jOjcwIGJ1aWx0aW4vY29uZmlnLmM6NzEKIG1zZ2lkICJzbG90IgogbXNnc3RyICJzbG90IgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjY4CisjOiBidWlsdGluL2NvbmZpZy5jOjcwCiBtc2dpZCAiZmluZCB0aGUgY29sb3IgY29uZmlndXJlZDogW2RlZmF1bHRdIgogbXNnc3RyICLmib7liLDphY3nva7nmoTpopzoibLvvJpb6buY6K6kXSIKIAotIzogYnVpbHRpbi9jb25maWcuYzo2OQorIzogYnVpbHRpbi9jb25maWcuYzo3MQogbXNnaWQgImZpbmQgdGhlIGNvbG9yIHNldHRpbmc6IFtzdGRvdXQtaXMtdHR5XSIKIG1zZ3N0ciAi5om+5Yiw6aKc6Imy6K6+572u77yaW3N0ZG91dC1pcy10dHldIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcwCisjOiBidWlsdGluL2NvbmZpZy5jOjcyCiBtc2dpZCAiVHlwZSIKIG1zZ3N0ciAi57G75Z6LIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjcxCisjOiBidWlsdGluL2NvbmZpZy5jOjczCiBtc2dpZCAidmFsdWUgaXMgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiIgogbXNnc3RyICLlgLzmmK8gXCJ0cnVlXCIg5oiWIFwiZmFsc2VcIiIKIAotIzogYnVpbHRpbi9jb25maWcuYzo3MgorIzogYnVpbHRpbi9jb25maWcuYzo3NAogbXNnaWQgInZhbHVlIGlzIGRlY2ltYWwgbnVtYmVyIgogbXNnc3RyICLlgLzmmK/ljYHov5vliLbmlbAiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzMKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKIG1zZ2lkICJ2YWx1ZSBpcyAtLWJvb2wgb3IgLS1pbnQiCiBtc2dzdHIgIuWAvOaYryAtLWJvb2wgb3IgLS1pbnQiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzQKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzYKIG1zZ2lkICJ2YWx1ZSBpcyBhIHBhdGggKGZpbGUgb3IgZGlyZWN0b3J5IG5hbWUpIgogbXNnc3RyICLlgLzmmK/kuIDkuKrot6/lvoTvvIjmlofku7bmiJbnm67lvZXlkI3vvIkiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzUKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKIG1zZ2lkICJPdGhlciIKIG1zZ3N0ciAi5YW25a6DIgogCi0jOiBidWlsdGluL2NvbmZpZy5jOjc2CisjOiBidWlsdGluL2NvbmZpZy5jOjc4CiBtc2dpZCAidGVybWluYXRlIHZhbHVlcyB3aXRoIE5VTCBieXRlIgogbXNnc3RyICLnu4jmraLlgLzmmK9OVUzlrZfoioIiCiAKLSM6IGJ1aWx0aW4vY29uZmlnLmM6NzcKKyM6IGJ1aWx0aW4vY29uZmlnLmM6NzkKIG1zZ2lkICJyZXNwZWN0IGluY2x1ZGUgZGlyZWN0aXZlcyBvbiBsb29rdXAiCiBtc2dzdHIgIuafpeivouaXtuWPgueFpyBpbmNsdWRlIOaMh+S7pOmAkuW9kuafpeaJviIKIAogIzogYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6ODIKLW1zZ2lkICJnaXQgY291bnQtb2JqZWN0cyBbLXZdIgotbXNnc3RyICJnaXQgY291bnQtb2JqZWN0cyBbLXZdIgorbXNnaWQgImdpdCBjb3VudC1vYmplY3RzIFstdl0gWy1IIHwgLS1odW1hbi1yZWFkYWJsZV0iCittc2dzdHIgImdpdCBjb3VudC1vYmplY3RzIFstdl0gWy1IIHwgLS1odW1hbi1yZWFkYWJsZV0iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNQorIzogYnVpbHRpbi9jb3VudC1vYmplY3RzLmM6OTcKK21zZ2lkICJwcmludCBzaXplcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtYXQiCittc2dzdHIgIuS7peeUqOaIt+WPr+ivu+eahOagvOW8j+aYvuekuuWkp+WwjyIKKworIzogYnVpbHRpbi9kZXNjcmliZS5jOjE2CiBtc2dpZCAiZ2l0IGRlc2NyaWJlIFtvcHRpb25zXSA8Y29tbWl0dGlzaD4qIgogbXNnc3RyICJnaXQgZGVzY3JpYmUgW+mAiemhuV0gPOaPkOS6pOWPtz4qIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoxNwogbXNnaWQgImdpdCBkZXNjcmliZSBbb3B0aW9uc10gLS1kaXJ0eSIKIG1zZ3N0ciAiZ2l0IGRlc2NyaWJlIFvpgInpobldIC0tZGlydHkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYW5ub3RhdGVkIHRhZyAlcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICLms6jph4ogdGFnICVzIOaXoOaViCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzNworIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MQogIywgYy1mb3JtYXQKIG1zZ2lkICJhbm5vdGF0ZWQgdGFnICVzIGhhcyBubyBlbWJlZGRlZCBuYW1lIgogbXNnc3RyICLms6jph4ogdGFnICVzIOayoeacieW1jOWFpeWQjeensCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjIzOQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWcgJyVzJyBpcyByZWFsbHkgJyVzJyBoZXJlIgogbXNnc3RyICJ0YWcgJyVzJyDnmoTnoa7mmK/lnKggJyVzJyIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjI2NgorIzogYnVpbHRpbi9kZXNjcmliZS5jOjI3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgYSB2YWxpZCBvYmplY3QgbmFtZSAlcyIKIG1zZ3N0ciAi5LiN5piv5LiA5Liq5pyJ5pWI55qE5a+56LGh5ZCNICVzIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6MjY5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjczCiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGlzIG5vdCBhIHZhbGlkICclcycgb2JqZWN0IgogbXNnc3RyICIlcyDkuI3mmK/kuIDkuKrmnInmlYjnmoQgJyVzJyDlr7nosaEiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyODYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzoyOTAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGFnIGV4YWN0bHkgbWF0Y2hlcyAnJXMnIgogbXNnc3RyICLmsqHmnIkgdGFnIOWHhuehruWMuemFjSAnJXMnIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6Mjg4CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6MjkyCiAjLCBjLWZvcm1hdAogbXNnaWQgInNlYXJjaGluZyB0byBkZXNjcmliZSAlc1xuIgogbXNnc3RyICLmkJzntKLmj4/ov7AgJXNcbiIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjMyOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjMzMgogIywgYy1mb3JtYXQKIG1zZ2lkICJmaW5pc2hlZCBzZWFyY2ggYXQgJXNcbiIKIG1zZ3N0ciAi5a6M5oiQ5pCc57SiICVzXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIGFubm90YXRlZCB0YWdzIGNhbiBkZXNjcmliZSAnJXMnLlxuIgpAQCAtNDI0Myw3ICs0NjE4LDcgQEAKICLmsqHmnInms6jph4ogdGFnIOiDveaPj+i/sCAnJXMn44CCXG4iCiAi54S26ICM77yM5pyJ6Z2e5rOo6YeKIHRhZ++8muWwneivlSAtLXRhZ3PjgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIk5vIHRhZ3MgY2FuIGRlc2NyaWJlICclcycuXG4iCkBAIC00MjUyLDEyICs0NjI3LDEyIEBACiAi5rKh5pyJ5rOo6YeKIHRhZyDog73mj4/ov7AgJyVzJ+OAglxuIgogIuWwneivlSAtLWFsd2F5c++8jOaIluiAheWIm+W7uuS4gOS6myB0YWfjgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozNzcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODQKICMsIGMtZm9ybWF0CiBtc2dpZCAidHJhdmVyc2VkICVsdSBjb21taXRzXG4iCiBtc2dzdHIgIuW3sumBjeWOhiAlbHUg5Liq5o+Q5LqkXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODAKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzozODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm1vcmUgdGhhbiAlaSB0YWdzIGZvdW5kOyBsaXN0ZWQgJWkgbW9zdCByZWNlbnRcbiIKQEAgLTQyNjYsNTkgKzQ2NDEsNjMgQEAKICLlj5HnjrDlpJrkuo4gJWkg5LiqIHRhZ++8jOWIl+WHuuacgOi/keeahCAlaSDkuKpcbiIKICLlnKggJXMg5pS+5byD5pCc57SiXG4iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDIKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MDkKIG1zZ2lkICJmaW5kIHRoZSB0YWcgdGhhdCBjb21lcyBhZnRlciB0aGUgY29tbWl0IgogbXNnc3RyICLlr7vmib7mj5DkuqTkuYvlkI7nmoQgdGFn77yI55So5LqO5o+P6L+w5o+Q5Lqk77yJIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDAzCisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEwCiBtc2dpZCAiZGVidWcgc2VhcmNoIHN0cmF0ZWd5IG9uIHN0ZGVyciIKIG1zZ3N0ciAi5Zyo5qCH5YeG6ZSZ6K+v5LiK6LCD6K+V5pCc57Si562W55WlIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA0CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDExCiBtc2dpZCAidXNlIGFueSByZWYiCiBtc2dzdHIgIuS9v+eUqOS7u+aEj+W8leeUqCIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQwNQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQxMgogbXNnaWQgInVzZSBhbnkgdGFnLCBldmVuIHVuYW5ub3RhdGVkIgogbXNnc3RyICLkvb/nlKjku7vmhI8gdGFn77yM5Y2z5L2/5pyq5bim5rOo6KejIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA2CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDEzCiBtc2dpZCAiYWx3YXlzIHVzZSBsb25nIGZvcm1hdCIKIG1zZ3N0ciAi5aeL57uI5L2/55So6ZW/5o+Q5Lqk5Y+35qC85byPIgogCi0jOiBidWlsdGluL2Rlc2NyaWJlLmM6NDA5CisjOiBidWlsdGluL2Rlc2NyaWJlLmM6NDE0Cittc2dpZCAib25seSBmb2xsb3cgZmlyc3QgcGFyZW50IgorbXNnc3RyICLlj6rot5/pmo/nrKzkuIDkuKrniLbmj5DkuqQiCisKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKIG1zZ2lkICJvbmx5IG91dHB1dCBleGFjdCBtYXRjaGVzIgogbXNnc3RyICLlj6rovpPlh7rnsr7noa7ljLnphY0iCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTkKIG1zZ2lkICJjb25zaWRlciA8bj4gbW9zdCByZWNlbnQgdGFncyAoZGVmYXVsdDogMTApIgogbXNnc3RyICLogIPomZHmnIDov5EgPG4+IOS4qiB0YWdz77yI6buY6K6k77yaMTDvvIkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTMKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjEKIG1zZ2lkICJvbmx5IGNvbnNpZGVyIHRhZ3MgbWF0Y2hpbmcgPHBhdHRlcm4+IgogbXNnc3RyICLlj6rogIPomZHljLnphY0gPOaooeW8jz4g55qEIHRhZ3MiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTUgYnVpbHRpbi9uYW1lLXJldi5jOjIzOAorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQyMyBidWlsdGluL25hbWUtcmV2LmM6MzIyCiBtc2dpZCAic2hvdyBhYmJyZXZpYXRlZCBjb21taXQgb2JqZWN0IGFzIGZhbGxiYWNrIgogbXNnc3RyICLmmL7npLrnroDlhpnnmoTmj5DkuqTlj7fkvZzkuLrlkI7lpIciCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTYKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjQKIG1zZ2lkICJtYXJrIgogbXNnc3RyICLmoIforrAiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MTcKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MjUKIG1zZ2lkICJhcHBlbmQgPG1hcms+IG9uIGRpcnR5IHdvcmtpbmcgdHJlZSAoZGVmYXVsdDogXCItZGlydHlcIikiCiBtc2dzdHIgIuiLpeW3peS9nOWMuuiEj++8iOacieWPmOabtO+8ieWcqOe7k+Wwvua3u+WKoCA85qCH6K6wPu+8iOm7mOiupO+8mlwiLWRpcnR5XCLvvIkiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0MzUKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0NDMKIG1zZ2lkICItLWxvbmcgaXMgaW5jb21wYXRpYmxlIHdpdGggLS1hYmJyZXY9MCIKIG1zZ3N0ciAiLS1sb25nIOS4jiAtLWFiYnJldj0wIOS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2MQorIzogYnVpbHRpbi9kZXNjcmliZS5jOjQ2OQogbXNnaWQgIk5vIG5hbWVzIGZvdW5kLCBjYW5ub3QgZGVzY3JpYmUgYW55dGhpbmcuIgogbXNnc3RyICLmsqHmnInlj5HnjrDlkI3np7DvvIzml6Dms5Xmj4/ov7Dku7vkvZXkuJzopb/jgIIiCiAKLSM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODEKKyM6IGJ1aWx0aW4vZGVzY3JpYmUuYzo0ODkKIG1zZ2lkICItLWRpcnR5IGlzIGluY29tcGF0aWJsZSB3aXRoIGNvbW1pdHRpc2hlcyIKIG1zZ3N0ciAiLS1kaXJ0eSDkuI3og73kuI7mj5DkuqTlkIzml7bkvb/nlKgiCiAKQEAgLTQzMjcsMzEgKzQ3MDYsMjYgQEAKIG1zZ2lkICInJXMnOiBub3QgYSByZWd1bGFyIGZpbGUgb3Igc3ltbGluayIKIG1zZ3N0ciAiJyVzJ++8muS4jeaYr+S4gOS4quato+inhOaWh+S7tuaIluespuWPt+mTvuaOpSIKIAotIzogYnVpbHRpbi9kaWZmLmM6MjI4CisjOiBidWlsdGluL2RpZmYuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW52YWxpZCBvcHRpb246ICVzIgogbXNnc3RyICLml6DmlYjpgInpobnvvJolcyIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzA1CisjOiBidWlsdGluL2RpZmYuYzozMDcKIG1zZ2lkICJOb3QgYSBnaXQgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi5LiN5piv5LiA5LiqIGdpdCDniYjmnKzlupMiCiAKLSM6IGJ1aWx0aW4vZGlmZi5jOjM0OAorIzogYnVpbHRpbi9kaWZmLmM6MzUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLmj5Dkvpvkuobml6DmlYjlr7nosaEgJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9kaWZmLmM6MzUzCi0jLCBjLWZvcm1hdAotbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKLW1zZ3N0ciAi5o+Q5L6b5LqG6LaF6L+HICVkIOS4quagkeWvueixoe+8miclcyciCi0KLSM6IGJ1aWx0aW4vZGlmZi5jOjM2MworIzogYnVpbHRpbi9kaWZmLmM6MzU5CiAjLCBjLWZvcm1hdAogbXNnaWQgIm1vcmUgdGhhbiB0d28gYmxvYnMgZ2l2ZW46ICclcyciCiBtc2dzdHIgIuaPkOS+m+S6hui2hei/h+S4pOS4quaVsOaNru+8iGJsb2LvvInlr7nosaHvvJonJXMnIgogCi0jOiBidWlsdGluL2RpZmYuYzozNzEKKyM6IGJ1aWx0aW4vZGlmZi5jOjM2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmhhbmRsZWQgb2JqZWN0ICclcycgZ2l2ZW4uIgogbXNnc3RyICLmj5Dkvpvkuobml6Dms5XlpITnkIbnmoTlr7nosaEgJyVzJ+OAgiIKQEAgLTQzNjAsMzkgKzQ3MzQsMzkgQEAKIG1zZ2lkICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogbXNnc3RyICJnaXQgZmFzdC1leHBvcnQgW3Jldi1saXN0LW9wdHNdIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjUyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CiBtc2dpZCAic2hvdyBwcm9ncmVzcyBhZnRlciA8bj4gb2JqZWN0cyIKIG1zZ3N0ciAi5ZyoIDxuPiDkuKrlr7nosaHkuYvlkI7mmL7npLrov5vluqYiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NTQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjgKIG1zZ2lkICJzZWxlY3QgaGFuZGxpbmcgb2Ygc2lnbmVkIHRhZ3MiCiBtc2dzdHIgIumAieaLqeWmguS9leWkhOeQhuetvuWQjSB0YWdzIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjU3CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjcxCiBtc2dpZCAic2VsZWN0IGhhbmRsaW5nIG9mIHRhZ3MgdGhhdCB0YWcgZmlsdGVyZWQgb2JqZWN0cyIKIG1zZ3N0ciAi6YCJ5oup5b2TIHRhZyDmjIflkJHooqvov4fmu6Tml7YgdGFncyDnmoTlpITnkIbmlrnlvI8iCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjAKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzQKIG1zZ2lkICJEdW1wIG1hcmtzIHRvIHRoaXMgZmlsZSIKIG1zZ3N0ciAi5oqK5qCH6K6w5a2Y5YKo5Yiw6L+Z5Liq5paH5Lu2IgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjYyCisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6Njc2CiBtc2dpZCAiSW1wb3J0IG1hcmtzIGZyb20gdGhpcyBmaWxlIgogbXNnc3RyICLku47ov5nkuKrmlofku7blr7zlhaXmoIforrAiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjQKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NzgKIG1zZ2lkICJGYWtlIGEgdGFnZ2VyIHdoZW4gdGFncyBsYWNrIG9uZSIKIG1zZ3N0ciAi5b2TIHRhZ3Mg57y65bCR5qCH6K6w6ICF5a2X5q615pe277yM5YGH6KOF5o+Q5L6b5LiA5LiqIgogCi0jOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjY2CisjOiBidWlsdGluL2Zhc3QtZXhwb3J0LmM6NjgwCiBtc2dpZCAiT3V0cHV0IGZ1bGwgdHJlZSBmb3IgZWFjaCBjb21taXQiCiBtc2dzdHIgIuavj+asoeaPkOS6pOmDvei+k+WHuuaVtOS4quagkSIKIAotIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY2OAorIzogYnVpbHRpbi9mYXN0LWV4cG9ydC5jOjY4MgogbXNnaWQgIlVzZSB0aGUgZG9uZSBmZWF0dXJlIHRvIHRlcm1pbmF0ZSB0aGUgc3RyZWFtIgogbXNnc3RyICLkvb/nlKggZG9uZSDlip/og73mnaXnu4jmraLmtYEiCiAKLSM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2NjkKKyM6IGJ1aWx0aW4vZmFzdC1leHBvcnQuYzo2ODMKIG1zZ2lkICJTa2lwIG91dHB1dCBvZiBibG9iIGRhdGEiCiBtc2dzdHIgIui3s+i/h+aVsOaNruWvueixoeeahOi+k+WHuiIKIApAQCAtNDQ2OSw3ICs0ODQzLDcgQEAKIG1zZ2lkICJjb252ZXJ0IHRvIGEgY29tcGxldGUgcmVwb3NpdG9yeSIKIG1zZ3N0ciAi6L2s5o2i5Li65LiA5Liq5a6M5pW055qE54mI5pys5bqTIgogCi0jOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTIxCisjOiBidWlsdGluL2ZldGNoLmM6ODggYnVpbHRpbi9sb2cuYzoxMTc3CiBtc2dpZCAiZGlyIgogbXNnc3RyICLnm67lvZUiCiAKQEAgLTQ0ODEsNzcgKzQ4NTUsNzcgQEAKIG1zZ2lkICJkZWZhdWx0IG1vZGUgZm9yIHJlY3Vyc2lvbiIKIG1zZ3N0ciAi6YCS5b2S55qE6buY6K6k5qih5byPIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjA0CisjOiBidWlsdGluL2ZldGNoLmM6MjIwCiBtc2dpZCAiQ291bGRuJ3QgZmluZCByZW1vdGUgcmVmIEhFQUQiCiBtc2dzdHIgIuaXoOazleWPkeeOsOi/nOeoiyBIRUFEIOW8leeUqCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI1NworIzogYnVpbHRpbi9mZXRjaC5jOjI3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJvYmplY3QgJXMgbm90IGZvdW5kIgogbXNnc3RyICLlr7nosaEgJXMg5pyq5Y+R546wIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MjYyCisjOiBidWlsdGluL2ZldGNoLmM6Mjc4CiBtc2dpZCAiW3VwIHRvIGRhdGVdIgogbXNnc3RyICJb5pyA5pawXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NgorIzogYnVpbHRpbi9mZXRjaC5jOjI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICIhICUtKnMgJS0qcyAtPiAlcyAgKGNhbid0IGZldGNoIGluIGN1cnJlbnQgYnJhbmNoKSIKIG1zZ3N0ciAiISAlLSpzICUtKnMgLT4gJXMgIO+8iOWcqOW9k+WJjeWIhuaUr+S4i+S4jeiDveiOt+WPlu+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI3NyBidWlsdGluL2ZldGNoLmM6MzYzCisjOiBidWlsdGluL2ZldGNoLmM6MjkzIGJ1aWx0aW4vZmV0Y2guYzozNzkKIG1zZ2lkICJbcmVqZWN0ZWRdIgogbXNnc3RyICJb5bey5ouS57udXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjI4OAorIzogYnVpbHRpbi9mZXRjaC5jOjMwNAogbXNnaWQgIlt0YWcgdXBkYXRlXSIKIG1zZ3N0ciAiW3RhZ+abtOaWsF0iCiAKICMgIOivkeiAhe+8muazqOaEj+S/neaMgeWJjeWvvOepuuagvAotIzogYnVpbHRpbi9mZXRjaC5jOjI5MCBidWlsdGluL2ZldGNoLmM6MzI1IGJ1aWx0aW4vZmV0Y2guYzozNDMKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMDYgYnVpbHRpbi9mZXRjaC5jOjM0MSBidWlsdGluL2ZldGNoLmM6MzU5CiBtc2dpZCAiICAodW5hYmxlIHRvIHVwZGF0ZSBsb2NhbCByZWYpIgogbXNnc3RyICIgIO+8iOS4jeiDveabtOaWsOacrOWcsOW8leeUqO+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjMwOAorIzogYnVpbHRpbi9mZXRjaC5jOjMyNAogbXNnaWQgIltuZXcgdGFnXSIKIG1zZ3N0ciAiW+aWsHRhZ10iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozMTEKKyM6IGJ1aWx0aW4vZmV0Y2guYzozMjcKIG1zZ2lkICJbbmV3IGJyYW5jaF0iCiBtc2dzdHIgIlvmlrDliIbmlK9dIgogCi0jOiBidWlsdGluL2ZldGNoLmM6MzE0CisjOiBidWlsdGluL2ZldGNoLmM6MzMwCiBtc2dpZCAiW25ldyByZWZdIgogbXNnc3RyICJb5paw5byV55SoXSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM1OQorIzogYnVpbHRpbi9mZXRjaC5jOjM3NQogbXNnaWQgInVuYWJsZSB0byB1cGRhdGUgbG9jYWwgcmVmIgogbXNnc3RyICLkuI3og73mm7TmlrDmnKzlnLDlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNTkKKyM6IGJ1aWx0aW4vZmV0Y2guYzozNzUKIG1zZ2lkICJmb3JjZWQgdXBkYXRlIgogbXNnc3RyICLlvLrliLbmm7TmlrAiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzozNjUKKyM6IGJ1aWx0aW4vZmV0Y2guYzozODEKIG1zZ2lkICIobm9uLWZhc3QtZm9yd2FyZCkiCiBtc2dzdHIgIu+8iOmdnuW/q+i/m+W8j++8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjM5NiBidWlsdGluL2ZldGNoLmM6Njg4CisjOiBidWlsdGluL2ZldGNoLmM6NDEyIGJ1aWx0aW4vZmV0Y2guYzo3MTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzXG4iCiBtc2dzdHIgIuaXoOazleaJk+W8gCAlc++8miVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo0MDUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo0MjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgZGlkIG5vdCBzZW5kIGFsbCBuZWNlc3Nhcnkgb2JqZWN0c1xuIgogbXNnc3RyICIlcyDmnKrlj5HpgIHmiYDmnInlv4XpobvnmoTlr7nosaFcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjQ5MQorIzogYnVpbHRpbi9mZXRjaC5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJGcm9tICUuKnNcbiIKIG1zZ3N0ciAi5p2l6IeqICUuKnNcbiIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjUwMgorIzogYnVpbHRpbi9mZXRjaC5jOjUzMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAic29tZSBsb2NhbCByZWZzIGNvdWxkIG5vdCBiZSB1cGRhdGVkOyB0cnkgcnVubmluZ1xuIgpAQCAtNDU2MSw4NyArNDkzNSw4NyBAQAogIiAnZ2l0IHJlbW90ZSBwcnVuZSAlcycg5p2l5Yig6Zmk5pen55qE44CB5pyJ5Yay56qB55qE5YiG5pSvIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTIKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIHdpbGwgYmVjb21lIGRhbmdsaW5nKSIKIG1zZ3N0ciAiICAg77yIJXMg5bCG5oiQ5Li65pGH5pGG54q25oCB77yJIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NTMKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiICAgKCVzIGhhcyBiZWNvbWUgZGFuZ2xpbmcpIgogbXNnc3RyICIgICDvvIglcyDlt7LmiJDkuLrmkYfmkYbnirbmgIHvvIkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo1NjAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo1ODkKIG1zZ2lkICJbZGVsZXRlZF0iCiBtc2dzdHIgIlvlt7LliKDpmaRdIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NTYxIGJ1aWx0aW4vcmVtb3RlLmM6MTA1NQorIzogYnVpbHRpbi9mZXRjaC5jOjU5MCBidWlsdGluL3JlbW90ZS5jOjEwNTUKIG1zZ2lkICIobm9uZSkiCiBtc2dzdHIgIu+8iOaXoO+8iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjY3OAorIzogYnVpbHRpbi9mZXRjaC5jOjcwOAogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWZ1c2luZyB0byBmZXRjaCBpbnRvIGN1cnJlbnQgYnJhbmNoICVzIG9mIG5vbi1iYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuaLkue7neiOt+WPluWIsOmdnuijuOeJiOacrOW6k+eahOW9k+WJjeWIhuaUryAlcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjcxMgorIzogYnVpbHRpbi9mZXRjaC5jOjc0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJEb24ndCBrbm93IGhvdyB0byBmZXRjaCBmcm9tICVzIgogbXNnc3RyICLkuI3nn6XpgZPlpoLkvZXku44gJXMg6I635Y+WIgogCi0jOiBidWlsdGluL2ZldGNoLmM6Nzg5CisjOiBidWlsdGluL2ZldGNoLmM6ODIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgdmFsdWUgXCIlc1wiIGlzIG5vdCB2YWxpZCBmb3IgJXMiCiBtc2dzdHIgIumAiemhuSBcIiVzXCIg55qE5YC8IFwiJXNcIiDlr7nkuo4gJXMg5piv5peg5pWI55qEIgogCi0jOiBidWlsdGluL2ZldGNoLmM6NzkyCisjOiBidWlsdGluL2ZldGNoLmM6ODI2CiAjLCBjLWZvcm1hdAogbXNnaWQgIk9wdGlvbiBcIiVzXCIgaXMgaWdub3JlZCBmb3IgJXNcbiIKIG1zZ3N0ciAi6YCJ6aG5IFwiJXNcIiDkuLogJXMg5omA5b+955WlXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTQKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmV0Y2hpbmcgJXNcbiIKIG1zZ3N0ciAi5q2j5Zyo6I635Y+WICVzXG4iCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo4OTYgYnVpbHRpbi9yZW1vdGUuYzoxMDAKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5MzAgYnVpbHRpbi9yZW1vdGUuYzoxMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZldGNoICVzIgogbXNnc3RyICLkuI3og73ojrflj5YgJXMiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5MTUKKyM6IGJ1aWx0aW4vZmV0Y2guYzo5NDkKIG1zZ2lkICIiCiAiTm8gcmVtb3RlIHJlcG9zaXRvcnkgc3BlY2lmaWVkLiAgUGxlYXNlLCBzcGVjaWZ5IGVpdGhlciBhIFVSTCBvciBhXG4iCiAicmVtb3RlIG5hbWUgZnJvbSB3aGljaCBuZXcgcmV2aXNpb25zIHNob3VsZCBiZSBmZXRjaGVkLiIKIG1zZ3N0ciAi5pyq5oyH5a6a6L+c56iL54mI5pys5bqT44CC6K+36YCa6L+H5LiA5LiqVVJM5oiW6L+c56iL54mI5pys5bqT5ZCN5oyH5a6a77yM55So5Lul6I635Y+W5paw5o+Q5Lqk44CCIgogCi0jOiBidWlsdGluL2ZldGNoLmM6OTM1CisjOiBidWlsdGluL2ZldGNoLmM6OTY5CiBtc2dpZCAiWW91IG5lZWQgdG8gc3BlY2lmeSBhIHRhZyBuYW1lLiIKIG1zZ3N0ciAi5oKo6ZyA6KaB5oyH5a6a5LiA5LiqIHRhZyDlkI3np7DjgIIiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzo5ODEKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CiBtc2dpZCAiLS1kZXB0aCBhbmQgLS11bnNoYWxsb3cgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiCiBtc2dzdHIgIi0tZGVwdGgg5ZKMIC0tdW5zaGFsbG93IOS4jeiDveWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjk4MworIzogYnVpbHRpbi9mZXRjaC5jOjEwMTcKIG1zZ2lkICItLXVuc2hhbGxvdyBvbiBhIGNvbXBsZXRlIHJlcG9zaXRvcnkgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAi5a+55LqO5LiA5Liq5a6M5pW055qE54mI5pys5bqT77yM5Y+C5pWwIC0tdW5zaGFsbG93IOayoeacieaEj+S5iSIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDIKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM2CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgdGFrZSBhIHJlcG9zaXRvcnkgYXJndW1lbnQiCiBtc2dzdHIgImZldGNoIC0tYWxsIOS4jeiDveW4puS4gOS4queJiOacrOW6k+WPguaVsCIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMDQKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDM4CiBtc2dpZCAiZmV0Y2ggLS1hbGwgZG9lcyBub3QgbWFrZSBzZW5zZSB3aXRoIHJlZnNwZWNzIgogbXNnc3RyICJmZXRjaCAtLWFsbCDluKblvJXnlKjooajovr7lvI/msqHmnInku7vkvZXmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vZmV0Y2guYzoxMDE1CisjOiBidWlsdGluL2ZldGNoLmM6MTA0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJObyBzdWNoIHJlbW90ZSBvciByZW1vdGUgZ3JvdXA6ICVzIgogbXNnc3RyICLmsqHmnInov5nmoLfnmoTov5znqIvmiJbov5znqIvnu4TvvJolcyIKIAotIzogYnVpbHRpbi9mZXRjaC5jOjEwMjMKKyM6IGJ1aWx0aW4vZmV0Y2guYzoxMDU3CiBtc2dpZCAiRmV0Y2hpbmcgYSBncm91cCBhbmQgc3BlY2lmeWluZyByZWZzcGVjcyBkb2VzIG5vdCBtYWtlIHNlbnNlIgogbXNnc3RyICLojrflj5bnu4TlubbmjIflrprlvJXnlKjooajovr7lvI/msqHmnInmhI/kuYkiCiAKQEAgLTQ2NTAsMjkgKzUwMjQsMjkgQEAKIG1zZ3N0ciAiIgogImdpdCBmbXQtbWVyZ2UtbXNnIFstbSA8bWVzc2FnZT5dIFstLWxvZ1s9PG4+XXwtLW5vLWxvZ10gWy0tZmlsZSA8ZmlsZT5dIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NTkgYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYyIGJ1aWx0aW4vZ3JlcC5jOjcwMQotIzogYnVpbHRpbi9tZXJnZS5jOjE4OCBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU2IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzUKLSM6IGJ1aWx0aW4vdGFnLmM6NDQ2IHBhcnNlLW9wdGlvbnMuaDoxMzMgcGFyc2Utb3B0aW9ucy5oOjIzOQorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjYzIGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NiBidWlsdGluL2dyZXAuYzo3MDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMgYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NSBidWlsdGluL3Nob3ctcmVmLmM6MTc5CisjOiBidWlsdGluL3RhZy5jOjQ0NiBwYXJzZS1vcHRpb25zLmg6MTMzIHBhcnNlLW9wdGlvbnMuaDoyNDMKIG1zZ2lkICJuIgogbXNnc3RyICJuIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjAKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NAogbXNnaWQgInBvcHVsYXRlIGxvZyB3aXRoIGF0IG1vc3QgPG4+IGVudHJpZXMgZnJvbSBzaG9ydGxvZyIKIG1zZ3N0ciAi5ZCR5o+Q5Lqk6K+05piO5Lit5pyA5aSa5aSN5Yi25oyH5a6a5p2h55uu77yI5ZCI5bm26ICM5p2l55qE5o+Q5Lqk77yJ55qE566A55+t6K+05piOIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjMKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NwogbXNnaWQgImFsaWFzIGZvciAtLWxvZyAoZGVwcmVjYXRlZCkiCiBtc2dzdHIgIuWPguaVsCAtLWxvZyDnmoTliKvlkI3vvIjlt7LlvIPnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY2NgorIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjcwCiBtc2dpZCAidGV4dCIKIG1zZ3N0ciAi5paH5pysIgogCi0jOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NjcKKyM6IGJ1aWx0aW4vZm10LW1lcmdlLW1zZy5jOjY3MQogbXNnaWQgInVzZSA8dGV4dD4gYXMgc3RhcnQgb2YgbWVzc2FnZSIKIG1zZ3N0ciAi5L2/55SoIDzmlofmnKw+IOS9nOS4uuaPkOS6pOivtOaYjueahOW8gOWniyIKIAotIzogYnVpbHRpbi9mbXQtbWVyZ2UtbXNnLmM6NjY4CisjOiBidWlsdGluL2ZtdC1tZXJnZS1tc2cuYzo2NzIKIG1zZ2lkICJmaWxlIHRvIHJlYWQgZnJvbSIKIG1zZ3N0ciAi5LuO5paH5Lu25Lit6K+75Y+WIgogCkBAIC00ODA5LDIyMSArNTE4MywyMjEgQEAKIG1zZ2lkICJncmVwOiBmYWlsZWQgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgImdyZXDvvJrml6Dms5XliJvlu7rnur/nqIvvvJolcyIKIAotIzogYnVpbHRpbi9ncmVwLmM6MzY1CisjOiBidWlsdGluL2dyZXAuYzozNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIGNoZGlyOiAlcyIKIG1zZ3N0ciAi5peg5rOV5YiH5o2i55uu5b2V77yaJXMiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MyBidWlsdGluL2dyZXAuYzo0NzgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjQ0MiBidWlsdGluL2dyZXAuYzo0NzcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgdHJlZSAoJXMpIgogbXNnc3RyICLml6Dms5Xor7vlj5bmoJHvvIglc++8iSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NDkzCisjOiBidWlsdGluL2dyZXAuYzo0OTIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGdyZXAgZnJvbSBvYmplY3Qgb2YgdHlwZSAlcyIKIG1zZ3N0ciAi5peg5rOV5oqT5Y+W5p2l6Ieq5LqOICVzIOexu+Wei+eahOWvueixoSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NTUxCisjOiBidWlsdGluL2dyZXAuYzo1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAic3dpdGNoIGAlYycgZXhwZWN0cyBhIG51bWVyaWNhbCB2YWx1ZSIKIG1zZ3N0ciAi5byA5YWzIGAlYycg5pyf5pyb5LiA5Liq5pWw5a2X5YC8IgogCi0jOiBidWlsdGluL2dyZXAuYzo1NjgKKyM6IGJ1aWx0aW4vZ3JlcC5jOjU2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAnJXMnIgogbXNnc3RyICLkuI3og73miZPlvIAgJyVzJyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjQzCisjOiBidWlsdGluL2dyZXAuYzo2NDIKIG1zZ2lkICJzZWFyY2ggaW4gaW5kZXggaW5zdGVhZCBvZiBpbiB0aGUgd29yayB0cmVlIgogbXNnc3RyICLlnKjntKLlvJXljLrmkJzntKLogIzkuI3mmK/lnKjlt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NQorIzogYnVpbHRpbi9ncmVwLmM6NjQ0CiBtc2dpZCAiZmluZCBpbiBjb250ZW50cyBub3QgbWFuYWdlZCBieSBnaXQiCiBtc2dzdHIgIuWcqOacquiiqyBnaXQg566h55CG55qE5YaF5a655Lit5p+l5om+IgogCiAjICDor5HogIXvvJrkuK3mloflrZfnrKbkuLLmi7zmjqXvvIzlj6/liKDpmaTliY3lr7znqbrmoLwKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0NworIzogYnVpbHRpbi9ncmVwLmM6NjQ2CiBtc2dpZCAic2VhcmNoIGluIGJvdGggdHJhY2tlZCBhbmQgdW50cmFja2VkIGZpbGVzIgogbXNnc3RyICLlnKjot5/ouKrlkozmnKrot5/ouKrnmoTmlofku7bkuK3mkJzntKIiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY0OQorIzogYnVpbHRpbi9ncmVwLmM6NjQ4CiBtc2dpZCAic2VhcmNoIGFsc28gaW4gaWdub3JlZCBmaWxlcyIKIG1zZ3N0ciAi5Lmf5Zyo5b+955Wl55qE5paH5Lu25Lit5pCc57SiIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTIKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1MQogbXNnaWQgInNob3cgbm9uLW1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICLmmL7npLrmnKrljLnphY3nmoTooYwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1NAorIzogYnVpbHRpbi9ncmVwLmM6NjUzCiBtc2dpZCAiY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIKIG1zZ3N0ciAi5LiN5Yy65YiG5aSn5bCP5YaZ5Yy56YWNIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1NQogbXNnaWQgIm1hdGNoIHBhdHRlcm5zIG9ubHkgYXQgd29yZCBib3VuZGFyaWVzIgogbXNnc3RyICLlj6rlnKjljZXor43ovrnnlYzljLnphY3mqKHlvI8iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY1OAorIzogYnVpbHRpbi9ncmVwLmM6NjU3CiBtc2dpZCAicHJvY2VzcyBiaW5hcnkgZmlsZXMgYXMgdGV4dCIKIG1zZ3N0ciAi5oqK5LqM6L+b5Yi25paH5Lu25b2T5YGa5paH5pys5aSE55CGIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY1OQogbXNnaWQgImRvbid0IG1hdGNoIHBhdHRlcm5zIGluIGJpbmFyeSBmaWxlcyIKIG1zZ3N0ciAi5LiN5Zyo5LqM6L+b5Yi25paH5Lu25Lit5Yy56YWN5qih5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2MgogbXNnaWQgImRlc2NlbmQgYXQgbW9zdCA8ZGVwdGg+IGxldmVscyIKIG1zZ3N0ciAi5pyA5aSa5Lul5oyH5a6a55qE5rex5bqm5ZCR5LiL5a+75om+IgogCi0jOiBidWlsdGluL2dyZXAuYzo2NjcKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2NgogbXNnaWQgInVzZSBleHRlbmRlZCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIgogbXNnc3RyICLkvb/nlKjmianlsZXnmoQgUE9TSVgg5q2j5YiZ6KGo6L6+5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY2OQogbXNnaWQgInVzZSBiYXNpYyBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zIChkZWZhdWx0KSIKIG1zZ3N0ciAi5L2/55So5Z+65pys55qEIFBPU0lYIOato+WImeihqOi+vuW8j++8iOm7mOiupO+8iSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjczCisjOiBidWlsdGluL2dyZXAuYzo2NzIKIG1zZ2lkICJpbnRlcnByZXQgcGF0dGVybnMgYXMgZml4ZWQgc3RyaW5ncyIKIG1zZ3N0ciAi5oqK5qih5byP6Kej5p6Q5Li65Zu65a6a55qE5a2X56ym5LiyIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3NQogbXNnaWQgInVzZSBQZXJsLWNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9ucyIKIG1zZ3N0ciAi5L2/55SoIFBlcmwg5YW85a6555qE5q2j5YiZ6KGo6L6+5byPIgogCi0jOiBidWlsdGluL2dyZXAuYzo2NzkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY3OAogbXNnaWQgInNob3cgbGluZSBudW1iZXJzIgogbXNnc3RyICLmmL7npLrooYzlj7ciCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY4MAorIzogYnVpbHRpbi9ncmVwLmM6Njc5CiBtc2dpZCAiZG9uJ3Qgc2hvdyBmaWxlbmFtZXMiCiBtc2dzdHIgIuS4jeaYvuekuuaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjgxCisjOiBidWlsdGluL2dyZXAuYzo2ODAKIG1zZ2lkICJzaG93IGZpbGVuYW1lcyIKIG1zZ3N0ciAi5pi+56S65paH5Lu25ZCNIgogCi0jOiBidWlsdGluL2dyZXAuYzo2ODMKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY4MgogbXNnaWQgInNob3cgZmlsZW5hbWVzIHJlbGF0aXZlIHRvIHRvcCBkaXJlY3RvcnkiCiBtc2dzdHIgIuaYvuekuuebuOWvueS6jumhtue6p+ebruW9leeahOaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg1CisjOiBidWlsdGluL2dyZXAuYzo2ODQKIG1zZ2lkICJzaG93IG9ubHkgZmlsZW5hbWVzIGluc3RlYWQgb2YgbWF0Y2hpbmcgbGluZXMiCiBtc2dzdHIgIuWPquaYvuekuuaWh+S7tuWQjeiAjOS4jeaYvuekuuWMuemFjeeahOihjCIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njg3CisjOiBidWlsdGluL2dyZXAuYzo2ODYKIG1zZ2lkICJzeW5vbnltIGZvciAtLWZpbGVzLXdpdGgtbWF0Y2hlcyIKIG1zZ3N0ciAi5ZKMIC0tZmlsZXMtd2l0aC1tYXRjaGVzIOWQjOS5iSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkwCisjOiBidWlsdGluL2dyZXAuYzo2ODkKIG1zZ2lkICJzaG93IG9ubHkgdGhlIG5hbWVzIG9mIGZpbGVzIHdpdGhvdXQgbWF0Y2giCiBtc2dzdHIgIuWPquaYvuekuuacquWMuemFjeeahOaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NjkyCisjOiBidWlsdGluL2dyZXAuYzo2OTEKIG1zZ2lkICJwcmludCBOVUwgYWZ0ZXIgZmlsZW5hbWVzIgogbXNnc3RyICLlnKjmlofku7blkI3lkI7ovpPlh7ogTlVMIOWtl+espiIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk0CisjOiBidWlsdGluL2dyZXAuYzo2OTMKIG1zZ2lkICJzaG93IHRoZSBudW1iZXIgb2YgbWF0Y2hlcyBpbnN0ZWFkIG9mIG1hdGNoaW5nIGxpbmVzIgogbXNnc3RyICLmmL7npLrmgLvljLnphY3ooYzmlbDvvIzogIzkuI3mmL7npLrljLnphY3nmoTooYwiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjY5NQorIzogYnVpbHRpbi9ncmVwLmM6Njk0CiBtc2dpZCAiaGlnaGxpZ2h0IG1hdGNoZXMiCiBtc2dzdHIgIumrmOS6ruaYvuekuuWMuemFjemhuSIKIAotIzogYnVpbHRpbi9ncmVwLmM6Njk3CisjOiBidWlsdGluL2dyZXAuYzo2OTYKIG1zZ2lkICJwcmludCBlbXB0eSBsaW5lIGJldHdlZW4gbWF0Y2hlcyBmcm9tIGRpZmZlcmVudCBmaWxlcyIKIG1zZ3N0ciAi5Zyo5LiN5ZCM5paH5Lu255qE5Yy56YWN6aG55LmL6Ze05omT5Y2w56m66KGMIgogCi0jOiBidWlsdGluL2dyZXAuYzo2OTkKKyM6IGJ1aWx0aW4vZ3JlcC5jOjY5OAogbXNnaWQgInNob3cgZmlsZW5hbWUgb25seSBvbmNlIGFib3ZlIG1hdGNoZXMgZnJvbSBzYW1lIGZpbGUiCiBtc2dzdHIgIuWPquWcqOWQjOS4gOaWh+S7tueahOWMuemFjemhueeahOS4iumdouaYvuekuuS4gOasoeaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzAyCisjOiBidWlsdGluL2dyZXAuYzo3MDEKIG1zZ2lkICJzaG93IDxuPiBjb250ZXh0IGxpbmVzIGJlZm9yZSBhbmQgYWZ0ZXIgbWF0Y2hlcyIKIG1zZ3N0ciAi5pi+56S65Yy56YWN6aG55YmN5ZCO55qEIDxuPiDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNQorIzogYnVpbHRpbi9ncmVwLmM6NzA0CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBiZWZvcmUgbWF0Y2hlcyIKIG1zZ3N0ciAi5pi+56S65Yy56YWN6aG55YmNIDxuPiDooYzkuIrkuIvmlociCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcwNworIzogYnVpbHRpbi9ncmVwLmM6NzA2CiBtc2dpZCAic2hvdyA8bj4gY29udGV4dCBsaW5lcyBhZnRlciBtYXRjaGVzIgogbXNnc3RyICLmmL7npLrljLnphY3pobnlkI4gPG4+IOihjOS4iuS4i+aWhyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzA4CisjOiBidWlsdGluL2dyZXAuYzo3MDcKIG1zZ2lkICJzaG9ydGN1dCBmb3IgLUMgTlVNIgogbXNnc3RyICLlv6vmjbfplK4gLUMg5pWw5a2XIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTEKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxMAogbXNnaWQgInNob3cgYSBsaW5lIHdpdGggdGhlIGZ1bmN0aW9uIG5hbWUgYmVmb3JlIG1hdGNoZXMiCiBtc2dzdHIgIuWcqOWMuemFjeeahOWJjemdouaYvuekuuS4gOihjOWHveaVsOWQjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzEzCisjOiBidWlsdGluL2dyZXAuYzo3MTIKIG1zZ2lkICJzaG93IHRoZSBzdXJyb3VuZGluZyBmdW5jdGlvbiIKIG1zZ3N0ciAi5pi+56S65omA5Zyo5Ye95pWw55qE5YmN5ZCO5YaF5a65IgogCi0jOiBidWlsdGluL2dyZXAuYzo3MTYKKyM6IGJ1aWx0aW4vZ3JlcC5jOjcxNQogbXNnaWQgInJlYWQgcGF0dGVybnMgZnJvbSBmaWxlIgogbXNnc3RyICLku47mlofku7bor7vlj5bmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcxOAorIzogYnVpbHRpbi9ncmVwLmM6NzE3CiBtc2dpZCAibWF0Y2ggPHBhdHRlcm4+IgogbXNnc3RyICLljLnphY0gPOaooeW8jz4iCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjcyMAorIzogYnVpbHRpbi9ncmVwLmM6NzE5CiBtc2dpZCAiY29tYmluZSBwYXR0ZXJucyBzcGVjaWZpZWQgd2l0aCAtZSIKIG1zZ3N0ciAi57uE5ZCI55SoIC1lIOWPguaVsOiuvuWumueahOaooeW8jyIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzMyCisjOiBidWlsdGluL2dyZXAuYzo3MzEKIG1zZ2lkICJpbmRpY2F0ZSBoaXQgd2l0aCBleGl0IHN0YXR1cyB3aXRob3V0IG91dHB1dCIKIG1zZ3N0ciAi5LiN6L6T5Ye677yM6ICM55So6YCA5Ye656CB5qCH6K+G5ZG95Lit54q25oCBIgogCi0jOiBidWlsdGluL2dyZXAuYzo3MzQKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczMwogbXNnaWQgInNob3cgb25seSBtYXRjaGVzIGZyb20gZmlsZXMgdGhhdCBtYXRjaCBhbGwgcGF0dGVybnMiCiBtc2dzdHIgIuWPquaYvuekuuWMuemFjeaJgOacieaooeW8j+eahOaWh+S7tuS4reeahOWMuemFjSIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzM2CisjOiBidWlsdGluL2dyZXAuYzo3MzUKIG1zZ2lkICJzaG93IHBhcnNlIHRyZWUgZm9yIGdyZXAgZXhwcmVzc2lvbiIKIG1zZ3N0ciAi5pi+56S6IGdyZXAg6KGo6L6+5byP55qE6Kej5p6Q5qCRIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDAKKyM6IGJ1aWx0aW4vZ3JlcC5jOjczOQogbXNnaWQgInBhZ2VyIgogbXNnc3RyICLliIbpobUiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjc0MAorIzogYnVpbHRpbi9ncmVwLmM6NzM5CiBtc2dpZCAic2hvdyBtYXRjaGluZyBmaWxlcyBpbiB0aGUgcGFnZXIiCiBtc2dzdHIgIuWIhumhteaYvuekuuWMuemFjeeahOaWh+S7tiIKIAotIzogYnVpbHRpbi9ncmVwLmM6NzQzCisjOiBidWlsdGluL2dyZXAuYzo3NDIKIG1zZ2lkICJhbGxvdyBjYWxsaW5nIG9mIGdyZXAoMSkgKGlnbm9yZWQgYnkgdGhpcyBidWlsZCkiCiBtc2dzdHIgIuWFgeiuuOiwg+eUqCBncmVwKDEp77yI5pys5qyh5p6E5bu65b+955Wl77yJIgogCi0jOiBidWlsdGluL2dyZXAuYzo3NDQgYnVpbHRpbi9zaG93LXJlZi5jOjE4NAorIzogYnVpbHRpbi9ncmVwLmM6NzQzIGJ1aWx0aW4vc2hvdy1yZWYuYzoxODgKIG1zZ2lkICJzaG93IHVzYWdlIgogbXNnc3RyICLmmL7npLrnlKjms5UiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjgxMQorIzogYnVpbHRpbi9ncmVwLmM6ODEwCiBtc2dpZCAibm8gcGF0dGVybiBnaXZlbi4iCiBtc2dzdHIgIuacquaPkOS+m+aooeW8j+WMuemFjeOAgiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODY2CisjOiBidWlsdGluL2dyZXAuYzo4NjUKIG1zZ2lkICItLW9wZW4tZmlsZXMtaW4tcGFnZXIgb25seSB3b3JrcyBvbiB0aGUgd29ya3RyZWUiCiBtc2dzdHIgIi0tb3Blbi1maWxlcy1pbi1wYWdlciDku4XnlKjkuo7lt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vZ3JlcC5jOjg4OQorIzogYnVpbHRpbi9ncmVwLmM6ODg4CiBtc2dpZCAiLS1jYWNoZWQgb3IgLS11bnRyYWNrZWQgY2Fubm90IGJlIHVzZWQgd2l0aCAtLW5vLWluZGV4LiIKIG1zZ3N0ciAiLS1jYWNoZWQg5oiWIC0tdW50cmFja2VkIOS4jeiDveS4jiAtLW5vLWluZGV4IOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk0CisjOiBidWlsdGluL2dyZXAuYzo4OTMKIG1zZ2lkICItLW5vLWluZGV4IG9yIC0tdW50cmFja2VkIGNhbm5vdCBiZSB1c2VkIHdpdGggcmV2cy4iCiBtc2dzdHIgIi0tbm8taW5kZXgg5oiWIC0tdW50cmFja2VkIOS4jeiDveWSjOeJiOacrOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9ncmVwLmM6ODk3CisjOiBidWlsdGluL2dyZXAuYzo4OTYKIG1zZ2lkICItLVtuby1dZXhjbHVkZS1zdGFuZGFyZCBjYW5ub3QgYmUgdXNlZCBmb3IgdHJhY2tlZCBjb250ZW50cy4iCiBtc2dzdHIgIi0tW25vLV1leGNsdWRlLXN0YW5kYXJkIOS4jeiDveeUqOS6juW3sui3n+i4quWGheWuueOAgiIKIAotIzogYnVpbHRpbi9ncmVwLmM6OTA1CisjOiBidWlsdGluL2dyZXAuYzo5MDQKIG1zZ2lkICJib3RoIC0tY2FjaGVkIGFuZCB0cmVlcyBhcmUgZ2l2ZW4uIgogbXNnc3RyICLlkIzml7bnu5nlh7rkuoYgLS1jYWNoZWQg5ZKM5qCR5a+56LGh44CCIgogCkBAIC01MDYzLDEwICs1NDM3LDE0IEBACiBtc2dpZCAicHJvY2VzcyBmaWxlIGFzIGl0IHdlcmUgZnJvbSB0aGlzIHBhdGgiCiBtc2dzdHIgIuWkhOeQhuaWh+S7tuW5tuWBh+iuvuWFtuadpeiHquS6juatpOi3r+W+hCIKIAotIzogYnVpbHRpbi9oZWxwLmM6NDIKKyM6IGJ1aWx0aW4vaGVscC5jOjQxCiBtc2dpZCAicHJpbnQgYWxsIGF2YWlsYWJsZSBjb21tYW5kcyIKIG1zZ3N0ciAi5omT5Y2w5omA5pyJ5Y+v55So55qE5ZG95LukIgogCisjOiBidWlsdGluL2hlbHAuYzo0MgorbXNnaWQgInByaW50IGxpc3Qgb2YgdXNlZnVsIGd1aWRlcyIKK21zZ3N0ciAi5pi+56S65pyJ55So55qE5oyH5Y2X5YiX6KGoIgorCiAjOiBidWlsdGluL2hlbHAuYzo0MwogbXNnaWQgInNob3cgbWFuIHBhZ2UiCiBtc2dzdHIgIuaYvuekuiBtYW4g5omL5YaMIgpAQCAtNTA4MCw4ICs1NDU4LDggQEAKIG1zZ3N0ciAi5pi+56S6IGluZm8g5omL5YaMIgogCiAjOiBidWlsdGluL2hlbHAuYzo1MgotbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tbWFufC0td2VifC0taW5mb10gW2NvbW1hbmRdIgotbXNnc3RyICJnaXQgaGVscCBbLS1hbGxdIFstLW1hbnwtLXdlYnwtLWluZm9dIFvlkb3ku6RdIgorbXNnaWQgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBbY29tbWFuZF0iCittc2dzdHIgImdpdCBoZWxwIFstLWFsbF0gWy0tZ3VpZGVzXSBbLS1tYW58LS13ZWJ8LS1pbmZvXSBb5ZG95LukXSIKIAogIzogYnVpbHRpbi9oZWxwLmM6NjQKICMsIGMtZm9ybWF0CkBAIC01MTM3LDI5MCArNTUxNSwzMjIgQEAKIG1zZ2lkICJubyBpbmZvIHZpZXdlciBoYW5kbGVkIHRoZSByZXF1ZXN0IgogbXNnc3RyICLmsqHmnIkgaW5mbyDmn6XnnIvlmajlpITnkIbmraTor7fmsYIiCiAKLSM6IGJ1aWx0aW4vaGVscC5jOjQyOSBidWlsdGluL2hlbHAuYzo0MzYKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMAorbXNnaWQgIkRlZmluaW5nIGF0dHJpYnV0ZXMgcGVyIHBhdGgiCittc2dzdHIgIuWumuS5iei3r+W+hOeahOWxnuaApyIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIxCittc2dpZCAiQSBHaXQgZ2xvc3NhcnkiCittc2dzdHIgIkdpdCDor43msYfooagiCisKKyM6IGJ1aWx0aW4vaGVscC5jOjQyMgorbXNnaWQgIlNwZWNpZmllcyBpbnRlbnRpb25hbGx5IHVudHJhY2tlZCBmaWxlcyB0byBpZ25vcmUiCittc2dzdHIgIuW/veeVpeaMh+WumueahOacqui3n+i4quaWh+S7tiIKKworIzogYnVpbHRpbi9oZWxwLmM6NDIzCittc2dpZCAiRGVmaW5pbmcgc3VibW9kdWxlIHByb3BlcnRpZXMiCittc2dzdHIgIuWumuS5ieWtkOaooee7hOWxnuaApyIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI0Cittc2dpZCAiU3BlY2lmeWluZyByZXZpc2lvbnMgYW5kIHJhbmdlcyBmb3IgR2l0IgorbXNnc3RyICLmjIflrpogR2l0IOeahOeJiOacrOWSjOeJiOacrOiMg+WbtCIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI1Cittc2dpZCAiQSB0dXRvcmlhbCBpbnRyb2R1Y3Rpb24gdG8gR2l0IChmb3IgdmVyc2lvbiAxLjUuMSBvciBuZXdlcikiCittc2dzdHIgIuS4gOS4qiBHaXQg5pWZ56iL77yI6ZKI5a+5IDEuNS4xIOaIluabtOaWsOeJiOacrO+8iSIKKworIzogYnVpbHRpbi9oZWxwLmM6NDI2Cittc2dpZCAiQW4gb3ZlcnZpZXcgb2YgcmVjb21tZW5kZWQgd29ya2Zsb3dzIHdpdGggR2l0IgorbXNnc3RyICJHaXQg5o6o6I2Q55qE5bel5L2c5rWB5qaC6KeIIgorCisjOiBidWlsdGluL2hlbHAuYzo0MzgKK21zZ2lkICJUaGUgY29tbW9uIEdpdCBndWlkZXMgYXJlOlxuIgorbXNnc3RyICLmnIDluLjnlKjnmoQgR2l0IOWQkeWvvOacie+8mlxuIgorCisjOiBidWlsdGluL2hlbHAuYzo0NjAgYnVpbHRpbi9oZWxwLmM6NDc2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzYWdlOiAlcyVzIgogbXNnc3RyICLnlKjms5XvvJolcyVzIgogCi0jOiBidWlsdGluL2hlbHAuYzo0NTIKKyM6IGJ1aWx0aW4vaGVscC5jOjQ5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJgZ2l0ICVzJyBpcyBhbGlhc2VkIHRvIGAlcyciCiBtc2dzdHIgImBnaXQgJXMnIOaYryBgJXMnIOeahOWIq+WQjSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTgyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxODQKICMsIGMtZm9ybWF0CiBtc2dpZCAib2JqZWN0IHR5cGUgbWlzbWF0Y2ggYXQgJXMiCiBtc2dzdHIgIiVzIOeahOWvueixoeexu+Wei+S4jeWMuemFjSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjAyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyMDQKIG1zZ2lkICJvYmplY3Qgb2YgdW5leHBlY3RlZCB0eXBlIgogbXNnc3RyICLmhI/lpJbnmoTnsbvlnovnmoTlr7nosaEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjIzOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBmaWxsICVkIGJ5dGUiCiBtc2dpZF9wbHVyYWwgImNhbm5vdCBmaWxsICVkIGJ5dGVzIgogbXNnc3RyWzBdICLml6Dms5XloavlhYUgJWQg5a2X6IqCIgogbXNnc3RyWzFdICLml6Dms5XloavlhYUgJWQg5a2X6IqCIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNDkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NAogbXNnaWQgImVhcmx5IEVPRiIKIG1zZ3N0ciAi6L+H5pep55qE5paH5Lu257uT5p2f56ym77yIRU9G77yJIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNTAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI1NQogbXNnaWQgInJlYWQgZXJyb3Igb24gaW5wdXQiCiBtc2dzdHIgIui+k+WFpeS4iueahOivu+mUmeivryIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjYyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjcKIG1zZ2lkICJ1c2VkIG1vcmUgYnl0ZXMgdGhhbiB3ZXJlIGF2YWlsYWJsZSIKIG1zZ3N0ciAi55So5o6J5LqG6LaF6L+H5Y+v55So55qE5a2X6IqCIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoyNjkKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI3NAogbXNnaWQgInBhY2sgdG9vIGxhcmdlIGZvciBjdXJyZW50IGRlZmluaXRpb24gb2Ygb2ZmX3QiCiBtc2dzdHIgIuWMheWkquWkp+i2hei/h+S6huW9k+WJjSBvZmZfdCDnmoTlrprkuYkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI4NQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MjkwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVuYWJsZSB0byBjcmVhdGUgJyVzJyIKIG1zZ3N0ciAi5LiN6IO95Yib5bu6ICclcyciCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjI5MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6Mjk1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuIHBhY2tmaWxlICclcyciCiBtc2dzdHIgIuaXoOazleaJk+W8gOWMheaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzozMDQKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwOQogbXNnaWQgInBhY2sgc2lnbmF0dXJlIG1pc21hdGNoIgogbXNnc3RyICLljIXnrb7lkI3kuI3ljLnphY0iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMwNgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzExCiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgdmVyc2lvbiAlPFBSSXUzMj4gdW5zdXBwb3J0ZWQiCiBtc2dzdHIgIuS4jeaUr+aMgeWMheeJiOacrCAlPFBSSXUzMj4iCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjMyNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MzI5CiAjLCBjLWZvcm1hdAogbXNnaWQgInBhY2sgaGFzIGJhZCBvYmplY3QgYXQgb2Zmc2V0ICVsdTogJXMiCiBtc2dzdHIgIuWMheS4reaciemUmeivr+eahOWvueixoeS9jeS6jiAlbHXvvJolcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NDQ2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzo0NTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5mbGF0ZSByZXR1cm5lZCAlZCIKIG1zZ3N0ciAi6Kej5Y6L57yp6L+U5ZueICVkIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo0OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMAogbXNnaWQgIm9mZnNldCB2YWx1ZSBvdmVyZmxvdyBmb3IgZGVsdGEgYmFzZSBvYmplY3QiCiBtc2dzdHIgIuWBj+enu+WAvOimhuebluS6hiBkZWx0YSDln7rlh4blr7nosaEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTA4CiBtc2dpZCAiZGVsdGEgYmFzZSBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kIgogbXNnc3RyICJkZWx0YSDln7rlh4blgY/np7votornlYwiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjUxMQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTE2CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gb2JqZWN0IHR5cGUgJWQiCiBtc2dzdHIgIuacquefpeWvueixoeexu+WeiyAlZCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NDcKIG1zZ2lkICJjYW5ub3QgcHJlYWQgcGFjayBmaWxlIgogbXNnc3RyICLml6Dms5Xor7vlj5bljIXmlofku7YiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjU0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgInByZW1hdHVyZSBlbmQgb2YgcGFjayBmaWxlLCAlbHUgYnl0ZSBtaXNzaW5nIgogbXNnaWRfcGx1cmFsICJwcmVtYXR1cmUgZW5kIG9mIHBhY2sgZmlsZSwgJWx1IGJ5dGVzIG1pc3NpbmciCiBtc2dzdHJbMF0gIuWMheaWh+S7tui/h+aXqee7k+adn++8jOe8uuWwkSAlbHUg5a2X6IqCIgogbXNnc3RyWzFdICLljIXmlofku7bov4fml6nnu5PmnZ/vvIznvLrlsJEgJWx1IOWtl+iKgiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NTcwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo1NzUKIG1zZ2lkICJzZXJpb3VzIGluZmxhdGUgaW5jb25zaXN0ZW5jeSIKIG1zZ3N0ciAi6Kej5Y6L57yp5Lil6YeN55qE5LiN5LiA6Ie0IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjEgYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY5MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzI0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjczMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NjY2IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY3MiBidWlsdGluL2luZGV4LXBhY2suYzo2OTUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjcyOSBidWlsdGluL2luZGV4LXBhY2suYzo3MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU0hBMSBDT0xMSVNJT04gRk9VTkQgV0lUSCAlcyAhIgogbXNnc3RyICLlj5HnjrAgJXMg5Ye6546wIFNIQTEg5Yay56qB77yBIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzo2NjQgYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoxNzAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjY2OSBidWlsdGluL3BhY2stb2JqZWN0cy5jOjE3MAogIzogYnVpbHRpbi9wYWNrLW9iamVjdHMuYzoyNjIKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHJlYWQgJXMiCiBtc2dzdHIgIuS4jeiDveivuyAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzMwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3MzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgZXhpc3Rpbmcgb2JqZWN0ICVzIgogbXNnc3RyICLkuI3og73or7vlj5bnjrDlrZjlr7nosaEgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc0NAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgYmxvYiBvYmplY3QgJXMiCiBtc2dzdHIgIuaXoOaViOeahOaVsOaNru+8iGJsb2LvvInlr7nosaEgJXMiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjc1OQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImludmFsaWQgJXMiCiBtc2dzdHIgIuaXoOaViOeahCAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYxCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjYKIG1zZ2lkICJFcnJvciBpbiBvYmplY3QiCiBtc2dzdHIgIuWvueixoeS4reWHuumUmSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6NzYzCisjOiBidWlsdGluL2luZGV4LXBhY2suYzo3NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm90IGFsbCBjaGlsZCBvYmplY3RzIG9mICVzIGFyZSByZWFjaGFibGUiCiBtc2dzdHIgIiVzIOeahOaJgOacieWtkOWvueixoeW5tumdnumDveWPr+i+viIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODMzIGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2MworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6ODM4IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjg2OAogbXNnaWQgImZhaWxlZCB0byBhcHBseSBkZWx0YSIKIG1zZ3N0ciAi5peg5rOV5bqU55SoIGRlbHRhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDA5CiBtc2dpZCAiUmVjZWl2aW5nIG9iamVjdHMiCiBtc2dzdHIgIuaOpeaUtuWvueixoeS4rSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwNAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAwOQogbXNnaWQgIkluZGV4aW5nIG9iamVjdHMiCiBtc2dzdHIgIue0ouW8leWvueixoeS4rSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzMAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzNQogbXNnaWQgInBhY2sgaXMgY29ycnVwdGVkIChTSEExIG1pc21hdGNoKSIKIG1zZ3N0ciAi5YyF5Yay56qB77yIU0hBMSDkuI3ljLnphY3vvIkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwMzUKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEwNDAKIG1zZ2lkICJjYW5ub3QgZnN0YXQgcGFja2ZpbGUiCiBtc2dzdHIgIuS4jeiDveaemuS4vuWMheaWh+S7tueKtuaAgSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTAzOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA0MwogbXNnaWQgInBhY2sgaGFzIGp1bmsgYXQgdGhlIGVuZCIKIG1zZ3N0ciAi5YyF55qE57uT5bC+5pyJ5Z6D5Zy+5pWw5o2uIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDQ5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDU0CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSBpbiBwYXJzZV9wYWNrX29iamVjdHMoKSIKIG1zZ3N0ciAicGFyc2VfcGFja19vYmplY3RzKCkg5Lit6YGH5Yiw5LiN5Y+v55CG5Za755qE6Zeu6aKYIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDcyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMDc3CiBtc2dpZCAiUmVzb2x2aW5nIGRlbHRhcyIKIG1zZ3N0ciAi5aSE55CGIGRlbHRhIOS4rSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4MgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTA4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gY3JlYXRlIHRocmVhZDogJXMiCiBtc2dzdHIgIuS4jeiDveWIm+W7uue6v+eoi++8miVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTI5CiBtc2dpZCAiY29uZnVzaW9uIGJleW9uZCBpbnNhbml0eSIKIG1zZ3N0ciAi5LiN5Y+v55CG5Za7IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTMyCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMTM3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBsZXRlZCB3aXRoICVkIGxvY2FsIG9iamVjdHMiCiBtc2dzdHIgIuWujOaIkCAlZCDkuKrmnKzlnLDlr7nosaEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5leHBlY3RlZCB0YWlsIGNoZWNrc3VtIGZvciAlcyAoZGlzayBjb3JydXB0aW9uPykiCiBtc2dzdHIgIuWvuSAlcyDnmoTlsL7pg6jmoKHpqozlh7rnjrDmhI/lpJbvvIjno4Hnm5jmjZ/lnY/vvJ/vvIkiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNDYKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNTEKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFjayBoYXMgJWQgdW5yZXNvbHZlZCBkZWx0YSIKIG1zZ2lkX3BsdXJhbCAicGFjayBoYXMgJWQgdW5yZXNvbHZlZCBkZWx0YXMiCiBtc2dzdHJbMF0gIuWMheaciSAlZCDkuKrmnKrop6PlhrPnmoQgZGVsdGEiCiBtc2dzdHJbMV0gIuWMheaciSAlZCDkuKrmnKrop6PlhrPnmoQgZGVsdGEiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzEKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjExNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIGRlZmxhdGUgYXBwZW5kZWQgb2JqZWN0ICglZCkiCiBtc2dzdHIgIuS4jeiDveWOi+e8qemZhOWKoOWvueixoe+8iCVk77yJIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjUwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvY2FsIG9iamVjdCAlcyBpcyBjb3JydXB0IgogbXNnc3RyICLmnKzlnLDlr7nosaEgJXMg5bey5o2f5Z2PIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjc5CiBtc2dpZCAiZXJyb3Igd2hpbGUgY2xvc2luZyBwYWNrIGZpbGUiCiBtc2dzdHIgIuWFs+mXreWMheaWh+S7tuaXtuWHuumUmSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI4NworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTI5MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgd3JpdGUga2VlcCBmaWxlICclcyciCiBtc2dzdHIgIuaXoOazleWGmeS/neeVmeaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxMjk1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjbG9zZSB3cml0dGVuIGtlZXAgZmlsZSAnJXMnIgogbXNnc3RyICLml6Dms5XlhbPpl63kv53nlZnmlofku7YgJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMwOAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxMwogbXNnaWQgImNhbm5vdCBzdG9yZSBwYWNrIGZpbGUiCiBtc2dzdHIgIuaXoOazleWtmOWCqOWMheaWh+S7tiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMxOQorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTMyNAogbXNnaWQgImNhbm5vdCBzdG9yZSBpbmRleCBmaWxlIgogbXNnc3RyICLml6Dms5XlrZjlgqjntKLlvJXmlofku7YiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTIKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjEzNTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIG1zZ3N0ciAi5Z2P55qEIHBhY2suaW5kZXh2ZXJzaW9uPSU8UFJJdTMyPiIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM1OAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIG51bWJlciBvZiB0aHJlYWRzIHNwZWNpZmllZCAoJWQpIgogbXNnc3RyICLmjIflrprnmoTnur/nqIvmlbDml6DmlYjvvIglZO+8iSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTM2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTM1CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxMzY3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gdGhyZWFkcyBzdXBwb3J0LCBpZ25vcmluZyAlcyIKIG1zZ3N0ciAi5rKh5pyJ57q/56iL5pSv5oyB77yM5b+955WlICVzIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDIwCisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDI1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNhbm5vdCBvcGVuIGV4aXN0aW5nIHBhY2sgZmlsZSAnJXMnIgogbXNnc3RyICLml6Dms5XmiZPlvIDnjrDlrZjljIXmlofku7YgJyVzJyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyMgorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTQyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBleGlzdGluZyBwYWNrIGlkeCBmaWxlIGZvciAnJXMnIgogbXNnc3RyICLml6Dms5XkuLogJXMg5omT5byA5YyF57Si5byV5paH5Lu2IgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDY5CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vbiBkZWx0YTogJWQgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJub24gZGVsdGE6ICVkIG9iamVjdHMiCiBtc2dzdHJbMF0gIumdniBkZWx0Ye+8miVkIOS4quWvueixoSIKIG1zZ3N0clsxXSAi6Z2eIGRlbHRh77yaJWQg5Liq5a+56LGhIgogCi0jOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDc2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNDgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoYWluIGxlbmd0aCA9ICVkOiAlbHUgb2JqZWN0IgogbXNnaWRfcGx1cmFsICJjaGFpbiBsZW5ndGggPSAlZDogJWx1IG9iamVjdHMiCiBtc2dzdHJbMF0gIumTvumVvyA9ICVkOiAlbHUg5a+56LGhIgogbXNnc3RyWzFdICLpk77plb8gPSAlZDogJWx1IOWvueixoSIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTUwOQogbXNnaWQgIkNhbm5vdCBjb21lIGJhY2sgdG8gY3dkIgogbXNnc3RyICLml6Dms5Xov5Tlm57lvZPliY3lt6XkvZznm67lvZUiCiAKLSM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NDcgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU1MAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU2MiBidWlsdGluL2luZGV4LXBhY2suYzoxNTY2CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTU3IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NjAKKyM6IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE1NzIgYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU3NgogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgJXMiCiBtc2dzdHIgIumUmeivr+mAiemhuSAlcyIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4MAorIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU5MAogbXNnaWQgIi0tZml4LXRoaW4gY2Fubm90IGJlIHVzZWQgd2l0aG91dCAtLXN0ZGluIgogbXNnc3RyICItLWZpeC10aGluIOS4jeiDveWSjCAtLXN0ZGluIOWQjOaXtuS9v+eUqCIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTU4NCBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0CisjOiBidWlsdGluL2luZGV4LXBhY2suYzoxNTk0IGJ1aWx0aW4vaW5kZXgtcGFjay5jOjE2MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAicGFja2ZpbGUgbmFtZSAnJXMnIGRvZXMgbm90IGVuZCB3aXRoICcucGFjayciCiBtc2dzdHIgIuWMheWQjSAnJXMnIOayoeacieS7pSAnLnBhY2snIOe7k+WwviIKIAotIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYwMworIzogYnVpbHRpbi9pbmRleC1wYWNrLmM6MTYxMwogbXNnaWQgIi0tdmVyaWZ5IHdpdGggbm8gcGFja2ZpbGUgbmFtZSBnaXZlbiIKIG1zZ3N0ciAiLS12ZXJpZnkg5rKh5pyJ5o+Q5L6b5YyF5ZCN5Y+C5pWwIgogCkBAIC01NTU3LDcgKzU5NjcsNyBAQAogbXNnaWQgInNwZWNpZnkgdGhhdCB0aGUgZ2l0IHJlcG9zaXRvcnkgaXMgdG8gYmUgc2hhcmVkIGFtb25nc3Qgc2V2ZXJhbCB1c2VycyIKIG1zZ3N0ciAi5oyH5a6aIGdpdCDniYjmnKzlupPmmK/lpJrkuKrnlKjmiLfkuYvpl7TlhbHkuqvnmoQiCiAKLSM6IGJ1aWx0aW4vaW5pdC1kYi5jOjQ5MyBidWlsdGluL3BydW5lLXBhY2tlZC5jOjc3CisjOiBidWlsdGluL2luaXQtZGIuYzo0OTMgYnVpbHRpbi9wcnVuZS1wYWNrZWQuYzo3NQogbXNnaWQgImJlIHF1aWV0IgogbXNnc3RyICLkv53mjIHlronpnZkiCiAKQEAgLTU1ODksMzQwICs1OTk5LDM1MyBAQAogbXNnaWQgIkNhbm5vdCBhY2Nlc3Mgd29yayB0cmVlICclcyciCiBtc2dzdHIgIuS4jeiDveiuv+mXruW3peS9nOWMuiAnJXMnIgogCi0jOiBidWlsdGluL2xvZy5jOjQwCi1tc2dpZCAiZ2l0IGxvZyBbPG9wdGlvbnM+XSBbPHNpbmNlPi4uPHVudGlsPl0gW1stLV0gPHBhdGg+Li4uXVxuIgotbXNnc3RyICJnaXQgbG9nIFs86YCJ6aG5Pl0gWzzku44+Li485YiwPl0gW1stLV0gPOi3r+W+hD4uLi5dXG4iCi0KICM6IGJ1aWx0aW4vbG9nLmM6NDEKK21zZ2lkICJnaXQgbG9nIFs8b3B0aW9ucz5dIFs8cmV2aXNpb24gcmFuZ2U+XSBbWy0tXSA8cGF0aD4uLi5dXG4iCittc2dzdHIgImdpdCBsb2cgWzzpgInpobk+XSBbPOeJiOacrOiMg+WbtD5dIFtbLS1dIDzot6/lvoQ+Li4uXVxuIgorCisjOiBidWlsdGluL2xvZy5jOjQyCiBtc2dpZCAiICAgb3I6IGdpdCBzaG93IFtvcHRpb25zXSA8b2JqZWN0Pi4uLiIKIG1zZ3N0ciAiICAg5oiW6ICF77yaZ2l0IHNob3cgW+mAiemhuV0gPOWvueixoT4uLi4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTAzCisjOiBidWlsdGluL2xvZy5jOjEyNAogbXNnaWQgInN1cHByZXNzIGRpZmYgb3V0cHV0IgogbXNnc3RyICLkuI3mmL7npLrlt67lvILovpPlh7oiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA0CisjOiBidWlsdGluL2xvZy5jOjEyNQogbXNnaWQgInNob3cgc291cmNlIgogbXNnc3RyICLmmL7npLrmupAiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA1CisjOiBidWlsdGluL2xvZy5jOjEyNgogbXNnaWQgIlVzZSBtYWlsIG1hcCBmaWxlIgogbXNnc3RyICLkvb/nlKjpgq7ku7bmmKDlsITmlofku7YiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTA2CisjOiBidWlsdGluL2xvZy5jOjEyNwogbXNnaWQgImRlY29yYXRlIG9wdGlvbnMiCiBtc2dzdHIgIuS/rumlsOmAiemhuSIKIAotIzogYnVpbHRpbi9sb2cuYzoxOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MjMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZpbmFsIG91dHB1dDogJWQgJXNcbiIKIG1zZ3N0ciAi5pyA57uI6L6T5Ye677yaJWQgJXNcbiIKIAotIzogYnVpbHRpbi9sb2cuYzo0MjIgYnVpbHRpbi9sb2cuYzo1MTQKKyM6IGJ1aWx0aW4vbG9nLmM6NDUzIGJ1aWx0aW4vbG9nLmM6NTQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZWFkIG9iamVjdCAlcyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+W5a+56LGhICVzIgogCi0jOiBidWlsdGluL2xvZy5jOjUzOAorIzogYnVpbHRpbi9sb2cuYzo1NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVW5rbm93biB0eXBlOiAlZCIKIG1zZ3N0ciAi5pyq55+l57G75Z6L77yaJWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NjMwCisjOiBidWlsdGluL2xvZy5jOjY2OQogbXNnaWQgImZvcm1hdC5oZWFkZXJzIHdpdGhvdXQgdmFsdWUiCiBtc2dzdHIgImZvcm1hdC5oZWFkZXJzIOayoeacieWAvCIKIAotIzogYnVpbHRpbi9sb2cuYzo3MDQKKyM6IGJ1aWx0aW4vbG9nLmM6NzUxCiBtc2dpZCAibmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5IGlzIHRvbyBsb25nIgogbXNnc3RyICLovpPlh7rnm67lvZXlkI3lpKrplb8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzIwCisjOiBidWlsdGluL2xvZy5jOjc2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJDYW5ub3Qgb3BlbiBwYXRjaCBmaWxlICVzIgogbXNnc3RyICLml6Dms5XmiZPlvIDooaXkuIHmlofku7YgJXMiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzM0CisjOiBidWlsdGluL2xvZy5jOjc4MQogbXNnaWQgIk5lZWQgZXhhY3RseSBvbmUgcmFuZ2UuIgogbXNnc3RyICLlj6rpnIDopoHkuIDkuKrojIPlm7TjgIIiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6NzQyCisjOiBidWlsdGluL2xvZy5jOjc4OQogbXNnaWQgIk5vdCBhIHJhbmdlLiIKIG1zZ3N0ciAi5LiN5piv5LiA5Liq6IyD5Zu044CCIgogCi0jOiBidWlsdGluL2xvZy5jOjgxNQorIzogYnVpbHRpbi9sb2cuYzo4OTEKIG1zZ2lkICJDb3ZlciBsZXR0ZXIgbmVlZHMgZW1haWwgZm9ybWF0IgogbXNnc3RyICLkv6HlsIHpnIDopoHpgq7ku7blnLDlnYDmoLzlvI8iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6ODg4CisjOiBidWlsdGluL2xvZy5jOjk2NwogIywgYy1mb3JtYXQKIG1zZ2lkICJpbnNhbmUgaW4tcmVwbHktdG86ICVzIgogbXNnc3RyICLkuI3mraPluLjnmoQgaW4tcmVwbHktdG/vvJolcyIKIAotIzogYnVpbHRpbi9sb2cuYzo5MTYKKyM6IGJ1aWx0aW4vbG9nLmM6OTk1CiBtc2dpZCAiZ2l0IGZvcm1hdC1wYXRjaCBbb3B0aW9uc10gWzxzaW5jZT4gfCA8cmV2aXNpb24gcmFuZ2U+XSIKIG1zZ3N0ciAiZ2l0IGZvcm1hdC1wYXRjaCBb6YCJ6aG5XSBbPOS7jj4gfCA85L+u6K6i6ZuG6IyD5Zu0Pl0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6OTYxCisjOiBidWlsdGluL2xvZy5jOjEwNDAKIG1zZ2lkICJUd28gb3V0cHV0IGRpcmVjdG9yaWVzPyIKIG1zZ3N0ciAi5Lik5Liq6L6T5Ye655uu5b2V77yfIgogCi0jOiBidWlsdGluL2xvZy5jOjEwOTkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE1NQogbXNnaWQgInVzZSBbUEFUQ0ggbi9tXSBldmVuIHdpdGggYSBzaW5nbGUgcGF0Y2giCiBtc2dzdHIgIuS9v+eUqCBbUEFUQ0ggbi9tXe+8jOWNs+S9v+WPquacieS4gOS4quihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTAyCisjOiBidWlsdGluL2xvZy5jOjExNTgKIG1zZ2lkICJ1c2UgW1BBVENIXSBldmVuIHdpdGggbXVsdGlwbGUgcGF0Y2hlcyIKIG1zZ3N0ciAi5L2/55SoIFtQQVRDSF3vvIzljbPkvb/mnInlpJrkuKrooaXkuIEiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEwNgorIzogYnVpbHRpbi9sb2cuYzoxMTYyCiBtc2dpZCAicHJpbnQgcGF0Y2hlcyB0byBzdGFuZGFyZCBvdXQiCiBtc2dzdHIgIuaJk+WNsOihpeS4geWIsOagh+WHhui+k+WHuiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTA4CisjOiBidWlsdGluL2xvZy5jOjExNjQKIG1zZ2lkICJnZW5lcmF0ZSBhIGNvdmVyIGxldHRlciIKIG1zZ3N0ciAi55Sf5oiQ5LiA5bCB6ZmE5L+hIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTAKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NgogbXNnaWQgInVzZSBzaW1wbGUgbnVtYmVyIHNlcXVlbmNlIGZvciBvdXRwdXQgZmlsZSBuYW1lcyIKIG1zZ3N0ciAi5L2/55So566A5Y2V55qE5pWw5a2X5bqP5YiX5L2c5Li66L6T5Ye65paH5Lu25ZCNIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2NwogbXNnaWQgInNmeCIKIG1zZ3N0ciAi5ZCO57yAIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTE2OAogbXNnaWQgInVzZSA8c2Z4PiBpbnN0ZWFkIG9mICcucGF0Y2gnIgogbXNnc3RyICLkvb/nlKggPOWQjue8gD4g5Luj5pu/ICcucGF0Y2gnIgogCi0jOiBidWlsdGluL2xvZy5jOjExMTQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3MAogbXNnaWQgInN0YXJ0IG51bWJlcmluZyBwYXRjaGVzIGF0IDxuPiBpbnN0ZWFkIG9mIDEiCiBtc2dzdHIgIuihpeS4geS7pSA8bj4g5byA5aeL57yW5Y+377yM6ICM5LiN5pivMSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE2CisjOiBidWlsdGluL2xvZy5jOjExNzIKIG1zZ2lkICJtYXJrIHRoZSBzZXJpZXMgYXMgTnRoIHJlLXJvbGwiCiBtc2dzdHIgIuagh+iusOihpeS4geezu+WIl+aYr+esrOWHoOasoemHjeWItiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTE4CisjOiBidWlsdGluL2xvZy5jOjExNzQKIG1zZ2lkICJVc2UgWzxwcmVmaXg+XSBpbnN0ZWFkIG9mIFtQQVRDSF0iCiBtc2dzdHIgIuS9v+eUqCBbPOWJjee8gD5dIOS7o+abvyBbUEFUQ0hdIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE3NwogbXNnaWQgInN0b3JlIHJlc3VsdGluZyBmaWxlcyBpbiA8ZGlyPiIKIG1zZ3N0ciAi5oqK57uT5p6c5paH5Lu25a2Y5YKo5ZyoIDxkaXI+IgogCi0jOiBidWlsdGluL2xvZy5jOjExMjQKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4MAogbXNnaWQgImRvbid0IHN0cmlwL2FkZCBbUEFUQ0hdIgogbXNnc3RyICLkuI3liKDpmaQv5re75YqgIFtQQVRDSF0iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEyNworIzogYnVpbHRpbi9sb2cuYzoxMTgzCiBtc2dpZCAiZG9uJ3Qgb3V0cHV0IGJpbmFyeSBkaWZmcyIKIG1zZ3N0ciAi5LiN6L6T5Ye65LqM6L+b5Yi25beu5byCIgogCi0jOiBidWlsdGluL2xvZy5jOjExMjkKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NQogbXNnaWQgImRvbid0IGluY2x1ZGUgYSBwYXRjaCBtYXRjaGluZyBhIGNvbW1pdCB1cHN0cmVhbSIKIG1zZ3N0ciAi5LiN5YyF5ZCr5bey5Zyo5LiK5ri45o+Q5Lqk5Lit55qE6KGl5LiBIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzEKKyM6IGJ1aWx0aW4vbG9nLmM6MTE4NwogbXNnaWQgInNob3cgcGF0Y2ggZm9ybWF0IGluc3RlYWQgb2YgZGVmYXVsdCAocGF0Y2ggKyBzdGF0KSIKIG1zZ3N0ciAi5pi+56S657qv6KGl5LiB5qC85byP6ICM6Z2e6buY6K6k55qE77yI6KGl5LiBK+eKtuaAge+8iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTMzCisjOiBidWlsdGluL2xvZy5jOjExODkKIG1zZ2lkICJNZXNzYWdpbmciCiBtc2dzdHIgIumCruS7tuWPkemAgSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM0CisjOiBidWlsdGluL2xvZy5jOjExOTAKIG1zZ2lkICJoZWFkZXIiCiBtc2dzdHIgImhlYWRlciIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTM1CisjOiBidWlsdGluL2xvZy5jOjExOTEKIG1zZ2lkICJhZGQgZW1haWwgaGVhZGVyIgogbXNnc3RyICLmt7vliqDpgq7ku7blpLQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzNiBidWlsdGluL2xvZy5jOjExMzgKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MiBidWlsdGluL2xvZy5jOjExOTQKIG1zZ2lkICJlbWFpbCIKIG1zZ3N0ciAi6YKu5Lu25Zyw5Z2AIgogCi0jOiBidWlsdGluL2xvZy5jOjExMzYKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5MgogbXNnaWQgImFkZCBUbzogaGVhZGVyIgogbXNnc3RyICLmt7vliqDmlLbku7bkuroiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTEzOAorIzogYnVpbHRpbi9sb2cuYzoxMTk0CiBtc2dpZCAiYWRkIENjOiBoZWFkZXIiCiBtc2dzdHIgIua3u+WKoOaKhOmAgSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQwCisjOiBidWlsdGluL2xvZy5jOjExOTYKK21zZ2lkICJpZGVudCIKK21zZ3N0ciAiaWRlbnQiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5NworbXNnaWQgInNldCBGcm9tIGFkZHJlc3MgdG8gPGlkZW50PiAob3IgY29tbWl0dGVyIGlkZW50IGlmIGFic2VudCkiCittc2dzdHIgIuiuvue9riBGcm9tIOWcsOWdgOS4uiA8aWRlbnQ+77yI5aaC6Iul5LiN5o+Q5L6b77yM55So5o+Q5Lqk6ICFSUTlgZrkuLrlnLDlnYDvvIkiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTE5OQogbXNnaWQgIm1lc3NhZ2UtaWQiCiBtc2dzdHIgIm1lc3NhZ2UtaWQiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MQorIzogYnVpbHRpbi9sb2cuYzoxMjAwCiBtc2dpZCAibWFrZSBmaXJzdCBtYWlsIGEgcmVwbHkgdG8gPG1lc3NhZ2UtaWQ+IgogbXNnc3RyICLkvb/nrKzkuIDlsIHpgq7ku7bkvZzkuLrlr7kgPG1lc3NhZ2UtaWQ+IOeahOWbnuWkjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTQyIGJ1aWx0aW4vbG9nLmM6MTE0NQorIzogYnVpbHRpbi9sb2cuYzoxMjAxIGJ1aWx0aW4vbG9nLmM6MTIwNAogbXNnaWQgImJvdW5kYXJ5IgogbXNnc3RyICLovrnnlYwiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTE0MworIzogYnVpbHRpbi9sb2cuYzoxMjAyCiBtc2dpZCAiYXR0YWNoIHRoZSBwYXRjaCIKIG1zZ3N0ciAi6ZmE5Lu25pa55byP5re75Yqg6KGl5LiBIgogCi0jOiBidWlsdGluL2xvZy5jOjExNDYKKyM6IGJ1aWx0aW4vbG9nLmM6MTIwNQogbXNnaWQgImlubGluZSB0aGUgcGF0Y2giCiBtc2dzdHIgIuWGheiBlOaYvuekuuihpeS4gSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMTUwCisjOiBidWlsdGluL2xvZy5jOjEyMDkKIG1zZ2lkICJlbmFibGUgbWVzc2FnZSB0aHJlYWRpbmcsIHN0eWxlczogc2hhbGxvdywgZGVlcCIKIG1zZ3N0ciAi5ZCv55So6YKu5Lu257q/57Si77yM6aOO5qC877ya5rWF77yM5rexIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTIKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMQogbXNnaWQgInNpZ25hdHVyZSIKIG1zZ3N0ciAi562+5ZCNIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxMgogbXNnaWQgImFkZCBhIHNpZ25hdHVyZSIKIG1zZ3N0ciAi5re75Yqg5LiA5Liq562+5ZCNIgogCi0jOiBidWlsdGluL2xvZy5jOjExNTUKKyM6IGJ1aWx0aW4vbG9nLmM6MTIxNAogbXNnaWQgImRvbid0IHByaW50IHRoZSBwYXRjaCBmaWxlbmFtZXMiCiBtc2dzdHIgIuS4jeimgeaJk+WNsOihpeS4geaWh+S7tuWQjSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjM5CisjOiBidWlsdGluL2xvZy5jOjEyODgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaW52YWxpZCBpZGVudCBsaW5lOiAlcyIKK21zZ3N0ciAi5YyF5ZCr5peg5pWI55qE6Lqr5Lu95qCH6K+G77yaJXMiCisKKyM6IGJ1aWx0aW4vbG9nLmM6MTMwMwogbXNnaWQgIi1uIGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLW4g5ZKMIC1rIOS6kuaWpeOAgiIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjQxCisjOiBidWlsdGluL2xvZy5jOjEzMDUKIG1zZ2lkICItLXN1YmplY3QtcHJlZml4IGFuZCAtayBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiIKIG1zZ3N0ciAiLS1zdWJqZWN0LXByZWZpeCDlkowgLWsg5LqS5pal44CCIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNDkKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxMwogbXNnaWQgIi0tbmFtZS1vbmx5IGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1vbmx5IOaXoOaEj+S5iSIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjUxCisjOiBidWlsdGluL2xvZy5jOjEzMTUKIG1zZ2lkICItLW5hbWUtc3RhdHVzIGRvZXMgbm90IG1ha2Ugc2Vuc2UiCiBtc2dzdHIgIi0tbmFtZS1zdGF0dXMg5peg5oSP5LmJIgogCi0jOiBidWlsdGluL2xvZy5jOjEyNTMKKyM6IGJ1aWx0aW4vbG9nLmM6MTMxNwogbXNnaWQgIi0tY2hlY2sgZG9lcyBub3QgbWFrZSBzZW5zZSIKIG1zZ3N0ciAiLS1jaGVjayDml6DmhI/kuYkiCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTI3NgorIzogYnVpbHRpbi9sb2cuYzoxMzQwCiBtc2dpZCAic3RhbmRhcmQgb3V0cHV0LCBvciBkaXJlY3RvcnksIHdoaWNoIG9uZT8iCiBtc2dzdHIgIuagh+WHhui+k+WHuuaIluebruW9le+8jOWTquS4gOS4qu+8nyIKIAotIzogYnVpbHRpbi9sb2cuYzoxMjc4CisjOiBidWlsdGluL2xvZy5jOjEzNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgJyVzJyIKIG1zZ3N0ciAi5LiN6IO95Yib5bu655uu5b2VICclcyciCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTQzMQorIzogYnVpbHRpbi9sb2cuYzoxNDkwCiBtc2dpZCAiRmFpbGVkIHRvIGNyZWF0ZSBvdXRwdXQgZmlsZXMiCiBtc2dzdHIgIuaXoOazleWIm+W7uui+k+WHuuaWh+S7tiIKIAotIzogYnVpbHRpbi9sb2cuYzoxNDgwCisjOiBidWlsdGluL2xvZy5jOjE1MzkKIG1zZ2lkICJnaXQgY2hlcnJ5IFstdl0gWzx1cHN0cmVhbT4gWzxoZWFkPiBbPGxpbWl0Pl1dXSIKIG1zZ3N0ciAiZ2l0IGNoZXJyeSBbLXZdIFs85LiK5ri4PiBbPOWktD4gWzzpmZDliLY+XV1dIgogCi0jOiBidWlsdGluL2xvZy5jOjE1MzUKKyM6IGJ1aWx0aW4vbG9nLmM6MTU5NAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ291bGQgbm90IGZpbmQgYSB0cmFja2VkIHJlbW90ZSBicmFuY2gsIHBsZWFzZSBzcGVjaWZ5IDx1cHN0cmVhbT4gbWFudWFsbHkuXG4iCiBtc2dzdHIgIuS4jeiDveaJvuWIsOi3n+i4queahOi/nOeoi+WIhuaUr++8jOivt+aJi+W3peaMh+WumiA8dXBzdHJlYW0+44CCXG4iCiAKLSM6IGJ1aWx0aW4vbG9nLmM6MTU0OCBidWlsdGluL2xvZy5jOjE1NTAgYnVpbHRpbi9sb2cuYzoxNTYyCisjOiBidWlsdGluL2xvZy5jOjE2MDcgYnVpbHRpbi9sb2cuYzoxNjA5IGJ1aWx0aW4vbG9nLmM6MTYyMQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIGNvbW1pdCAlcyIKIG1zZ3N0ciAi5pyq55+l5o+Q5LqkICVzIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDA5CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDA4CiBtc2dpZCAiZ2l0IGxzLWZpbGVzIFtvcHRpb25zXSBbPGZpbGU+Li4uXSIKIG1zZ3N0ciAiZ2l0IGxzLWZpbGVzIFvpgInpobldIFs85paH5Lu2Pi4uLl0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjUKIG1zZ2lkICJpZGVudGlmeSB0aGUgZmlsZSBzdGF0dXMgd2l0aCB0YWdzIgogbXNnc3RyICLnlKjmoIfnrb7moIfor4bmlofku7bnmoTnirbmgIEiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NjcKIG1zZ2lkICJ1c2UgbG93ZXJjYXNlIGxldHRlcnMgZm9yICdhc3N1bWUgdW5jaGFuZ2VkJyBmaWxlcyIKIG1zZ3N0ciAi5L2/55So5bCP5YaZ5a2X5q+N6KGo56S6ICflgYforr7mnKrmlLnlj5jnmoQnIOaWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3MAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ2OQogbXNnaWQgInNob3cgY2FjaGVkIGZpbGVzIGluIHRoZSBvdXRwdXQgKGRlZmF1bHQpIgogbXNnc3RyICLmmL7npLrnvJPlrZjnmoTmlofku7bvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzIKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzEKIG1zZ2lkICJzaG93IGRlbGV0ZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65bey5Yig6Zmk55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDc0CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDczCiBtc2dpZCAic2hvdyBtb2RpZmllZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICLmmL7npLrlt7Lkv67mlLnnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzYKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0NzUKIG1zZ2lkICJzaG93IG90aGVyIGZpbGVzIGluIHRoZSBvdXRwdXQiCiBtc2dzdHIgIuaYvuekuuWFtuWug+aWh+S7tiIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ3NwogbXNnaWQgInNob3cgaWdub3JlZCBmaWxlcyBpbiB0aGUgb3V0cHV0IgogbXNnc3RyICLmmL7npLrlv73nlaXnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODEKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0ODAKIG1zZ2lkICJzaG93IHN0YWdlZCBjb250ZW50cycgb2JqZWN0IG5hbWUgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65pqC5a2Y5Yy65YaF5a6555qE5a+56LGh5ZCN56ewIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDgzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDgyCiBtc2dpZCAic2hvdyBmaWxlcyBvbiB0aGUgZmlsZXN5c3RlbSB0aGF0IG5lZWQgdG8gYmUgcmVtb3ZlZCIKIG1zZ3N0ciAi5pi+56S65paH5Lu257O757uf6ZyA6KaB5Yig6Zmk55qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDg1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDg0CiBtc2dpZCAic2hvdyAnb3RoZXInIGRpcmVjdG9yaWVzJyBuYW1lIG9ubHkiCiBtc2dzdHIgIuWPquaYvuekuuKAnOWFtuS7luKAneebruW9leeahOWQjeensCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4OAorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ4NwogbXNnaWQgImRvbid0IHNob3cgZW1wdHkgZGlyZWN0b3JpZXMiCiBtc2dzdHIgIuS4jeaYvuekuuepuuebruW9lSIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MQorIzogYnVpbHRpbi9scy1maWxlcy5jOjQ5MAogbXNnaWQgInNob3cgdW5tZXJnZWQgZmlsZXMgaW4gdGhlIG91dHB1dCIKIG1zZ3N0ciAi5pi+56S65pyq5ZCI5bm255qE5paH5Lu2IgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDkzCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDkyCiBtc2dpZCAic2hvdyByZXNvbHZlLXVuZG8gaW5mb3JtYXRpb24iCiBtc2dzdHIgIuaYvuekuiByZXNvbHZlLXVuZG8g5L+h5oGvIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NDk1CisjOiBidWlsdGluL2xzLWZpbGVzLmM6NDk0CiBtc2dpZCAic2tpcCBmaWxlcyBtYXRjaGluZyBwYXR0ZXJuIgogbXNnc3RyICLljLnphY3mjpLpmaTmlofku7bnmoTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTgKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo0OTcKIG1zZ2lkICJleGNsdWRlIHBhdHRlcm5zIGFyZSByZWFkIGZyb20gPGZpbGU+IgogbXNnc3RyICLku44gPOaWh+S7tj4g5Lit6K+75Y+W5o6S6Zmk5qih5byPIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTAxCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTAwCiBtc2dpZCAicmVhZCBhZGRpdGlvbmFsIHBlci1kaXJlY3RvcnkgZXhjbHVkZSBwYXR0ZXJucyBpbiA8ZmlsZT4iCiBtc2dzdHIgIuS7jiA85paH5Lu2PiDor7vlj5bpop3lpJbnmoTmr4/kuKrnm67lvZXnmoTmjpLpmaTmqKHlvI8iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDMKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDIKIG1zZ2lkICJhZGQgdGhlIHN0YW5kYXJkIGdpdCBleGNsdXNpb25zIgogbXNnc3RyICLmt7vliqDmoIflh4bnmoQgZ2l0IOaOkumZpCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNgorIzogYnVpbHRpbi9scy1maWxlcy5jOjUwNQogbXNnaWQgIm1ha2UgdGhlIG91dHB1dCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCB0b3AgZGlyZWN0b3J5IgogbXNnc3RyICLmmL7npLrnm7jlr7nkuo7pobbnuqfnm67lvZXnmoTmlofku7blkI0iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDgKIG1zZ2lkICJpZiBhbnkgPGZpbGU+IGlzIG5vdCBpbiB0aGUgaW5kZXgsIHRyZWF0IHRoaXMgYXMgYW4gZXJyb3IiCiBtc2dzdHIgIuWmguaenOS7u+S9lSA85paH5Lu2PiDpg73kuI3lnKjntKLlvJXljLrvvIzop4bkuLrplJnor68iCiAKLSM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MTAKKyM6IGJ1aWx0aW4vbHMtZmlsZXMuYzo1MDkKIG1zZ2lkICJ0cmVlLWlzaCIKIG1zZ3N0ciAi5qCR5oiW5o+Q5LqkIgogCi0jOiBidWlsdGluL2xzLWZpbGVzLmM6NTExCisjOiBidWlsdGluL2xzLWZpbGVzLmM6NTEwCiBtc2dpZCAicHJldGVuZCB0aGF0IHBhdGhzIHJlbW92ZWQgc2luY2UgPHRyZWUtaXNoPiBhcmUgc3RpbGwgcHJlc2VudCIKIG1zZ3N0ciAi5YGH6KOF6Ieq5LuOIDzmoJHmiJbmj5DkuqQ+IOS5i+WQjuWIoOmZpOeahOi3r+W+hOS7jeeEtuWtmOWcqCIKIAotIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMworIzogYnVpbHRpbi9scy1maWxlcy5jOjUxMgogbXNnaWQgInNob3cgZGVidWdnaW5nIGRhdGEiCiBtc2dzdHIgIuaYvuekuuiwg+ivleaVsOaNriIKIApAQCAtNTk3NCwxNjggKzYzOTcsMTY4IEBACiBtc2dpZCAiZ2l0IG1lcmdlIC0tYWJvcnQiCiBtc2dzdHIgImdpdCBtZXJnZSAtLWFib3J0IgogCi0jOiBidWlsdGluL21lcmdlLmM6OTAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5OAogbXNnaWQgInN3aXRjaCBgbScgcmVxdWlyZXMgYSB2YWx1ZSIKIG1zZ3N0ciAi5byA5YWzIGBtJyDpnIDopoHkuIDkuKrlgLwiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjcKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IGZpbmQgbWVyZ2Ugc3RyYXRlZ3kgJyVzJy5cbiIKIG1zZ3N0ciAi5LiN6IO95om+5Yiw5ZCI5bm2562W55WlICclcyfjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyOAorIzogYnVpbHRpbi9tZXJnZS5jOjEzNgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgc3RyYXRlZ2llcyBhcmU6IgogbXNnc3RyICLlj6/nlKjnmoTnrZbnlaXmnInvvJoiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIGN1c3RvbSBzdHJhdGVnaWVzIGFyZToiCiBtc2dzdHIgIuWPr+eUqOeahOiHquWumuS5ieetlueVpeacie+8miIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4MworIzogYnVpbHRpbi9tZXJnZS5jOjE5OAogbXNnaWQgImRvIG5vdCBzaG93IGEgZGlmZnN0YXQgYXQgdGhlIGVuZCBvZiB0aGUgbWVyZ2UiCiBtc2dzdHIgIuWcqOWQiOW5tueahOacgOWQjuS4jeaYvuekuuW3ruW8gue7n+iuoSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE4NgorIzogYnVpbHRpbi9tZXJnZS5jOjIwMQogbXNnaWQgInNob3cgYSBkaWZmc3RhdCBhdCB0aGUgZW5kIG9mIHRoZSBtZXJnZSIKIG1zZ3N0ciAi5Zyo5ZCI5bm255qE5pyA5ZCO5pi+56S65beu5byC57uf6K6hIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTg3CisjOiBidWlsdGluL21lcmdlLmM6MjAyCiBtc2dpZCAiKHN5bm9ueW0gdG8gLS1zdGF0KSIKIG1zZ3N0ciAi77yI5ZKMIC0tc3RhdCDlkIzkuYnvvIkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxODkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDQKIG1zZ2lkICJhZGQgKGF0IG1vc3QgPG4+KSBlbnRyaWVzIGZyb20gc2hvcnRsb2cgdG8gbWVyZ2UgY29tbWl0IG1lc3NhZ2UiCiBtc2dzdHIgIuWcqOWQiOW5tuaPkOS6pOS/oeaBr+S4rea3u+WKoO+8iOacgOWkmiA8bj4g5p2h77yJ57K+566A5o+Q5Lqk6K6w5b2VIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTkyCisjOiBidWlsdGluL21lcmdlLmM6MjA3CiBtc2dpZCAiY3JlYXRlIGEgc2luZ2xlIGNvbW1pdCBpbnN0ZWFkIG9mIGRvaW5nIGEgbWVyZ2UiCiBtc2dzdHIgIuWIm+W7uuS4gOS4quWNleeLrOeahOaPkOS6pOiAjOS4jeaYr+WBmuS4gOasoeWQiOW5tiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE5NAorIzogYnVpbHRpbi9tZXJnZS5jOjIwOQogbXNnaWQgInBlcmZvcm0gYSBjb21taXQgaWYgdGhlIG1lcmdlIHN1Y2NlZWRzIChkZWZhdWx0KSIKIG1zZ3N0ciAi5aaC5p6c5ZCI5bm25oiQ5Yqf77yM5omn6KGM5LiA5qyh5o+Q5Lqk77yI6buY6K6k77yJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTk2CisjOiBidWlsdGluL21lcmdlLmM6MjExCiBtc2dpZCAiZWRpdCBtZXNzYWdlIGJlZm9yZSBjb21taXR0aW5nIgogbXNnc3RyICLlnKjmj5DkuqTliY3nvJbovpHmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxOTgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTIKIG1zZ2lkICJhbGxvdyBmYXN0LWZvcndhcmQgKGRlZmF1bHQpIgogbXNnc3RyICLlhYHorrjlv6vov5vvvIjpu5jorqTvvIkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTQKIG1zZ2lkICJhYm9ydCBpZiBmYXN0LWZvcndhcmQgaXMgbm90IHBvc3NpYmxlIgogbXNnc3RyICLlpoLmnpzkuI3og73lv6vov5vlsLHmlL7lvIPlkIjlubYiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTgKIG1zZ2lkICJWZXJpZnkgdGhhdCB0aGUgbmFtZWQgY29tbWl0IGhhcyBhIHZhbGlkIEdQRyBzaWduYXR1cmUiCiBtc2dzdHIgIumqjOivgeaMh+WumueahOaPkOS6pOaYr+WQpuWMheWQq+S4gOS4quacieaViOeahCBHUEcg562+5ZCNIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA0IGJ1aWx0aW4vbm90ZXMuYzo4NjYgYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTkgYnVpbHRpbi9ub3Rlcy5jOjczOCBidWlsdGluL3JldmVydC5jOjExNAogbXNnaWQgInN0cmF0ZWd5IgogbXNnc3RyICLnrZbnlaUiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMDUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjAKIG1zZ2lkICJtZXJnZSBzdHJhdGVneSB0byB1c2UiCiBtc2dzdHIgIuimgeS9v+eUqOeahOWQiOW5tuetlueVpSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjIwNgorIzogYnVpbHRpbi9tZXJnZS5jOjIyMQogbXNnaWQgIm9wdGlvbj12YWx1ZSIKIG1zZ3N0ciAib3B0aW9uPXZhbHVlIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA3CisjOiBidWlsdGluL21lcmdlLmM6MjIyCiBtc2dpZCAib3B0aW9uIGZvciBzZWxlY3RlZCBtZXJnZSBzdHJhdGVneSIKIG1zZ3N0ciAi5omA6YCJ55qE5ZCI5bm2562W55Wl55qE6YCJ6aG5IgogCi0jOiBidWlsdGluL21lcmdlLmM6MjA5CisjOiBidWlsdGluL21lcmdlLmM6MjI0CiBtc2dpZCAibWVyZ2UgY29tbWl0IG1lc3NhZ2UgKGZvciBhIG5vbi1mYXN0LWZvcndhcmQgbWVyZ2UpIgogbXNnc3RyICLlkIjlubbnmoTmj5DkuqTor7TmmI7vvIjpkojlr7npnZ7lv6vov5vlvI/lkIjlubbvvIkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoyMTMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyMjgKIG1zZ2lkICJhYm9ydCB0aGUgY3VycmVudCBpbi1wcm9ncmVzcyBtZXJnZSIKIG1zZ3N0ciAi5pS+5byD5b2T5YmN5q2j5Zyo6L+b6KGM55qE5ZCI5bm2IgogCi0jOiBidWlsdGluL21lcmdlLmM6MjQyCisjOiBidWlsdGluL21lcmdlLmM6MjU3CiBtc2dpZCAiY291bGQgbm90IHJ1biBzdGFzaC4iCiBtc2dzdHIgIuS4jeiDvei/m+ihjOi/m+W6puS/neWtmOOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjI0NworIzogYnVpbHRpbi9tZXJnZS5jOjI2MgogbXNnaWQgInN0YXNoIGZhaWxlZCIKIG1zZ3N0ciAi6L+b5bqm5L+d5a2Y5aSx6LSlIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjUyCisjOiBidWlsdGluL21lcmdlLmM6MjY3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCBhIHZhbGlkIG9iamVjdDogJXMiCiBtc2dzdHIgIuS4jeaYr+S4gOS4quacieaViOWvueixoe+8miVzIgogCi0jOiBidWlsdGluL21lcmdlLmM6MjcxIGJ1aWx0aW4vbWVyZ2UuYzoyODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoyODYgYnVpbHRpbi9tZXJnZS5jOjMwMwogbXNnaWQgInJlYWQtdHJlZSBmYWlsZWQiCiBtc2dzdHIgIuivu+WPluagkeWksei0pSIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBidWlsdGluL21lcmdlLmM6MzE4CisjOiBidWlsdGluL21lcmdlLmM6MzMzCiBtc2dpZCAiIChub3RoaW5nIHRvIHNxdWFzaCkiCiBtc2dzdHIgIiDvvIjml6Dlj6/ljovnvKnvvIkiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozMzEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3F1YXNoIGNvbW1pdCAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICLljovnvKnmj5DkuqQgLS0g5pyq5pu05pawIEhFQURcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjM2MworIzogYnVpbHRpbi9tZXJnZS5jOjM3OAogbXNnaWQgIldyaXRpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAi5YaZ5YWlIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozNjUKKyM6IGJ1aWx0aW4vbWVyZ2UuYzozODAKIG1zZ2lkICJGaW5pc2hpbmcgU1FVQVNIX01TRyIKIG1zZ3N0ciAi5a6M5oiQIFNRVUFTSF9NU0ciCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzozODgKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2UgbWVzc2FnZSAtLSBub3QgdXBkYXRpbmcgSEVBRFxuIgogbXNnc3RyICLml6DlkIjlubbkv6Hmga8gLS0g5pyq5pu05pawIEhFQURcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjQzOAorIzogYnVpbHRpbi9tZXJnZS5jOjQ1MwogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGRvZXMgbm90IHBvaW50IHRvIGEgY29tbWl0IgogbXNnc3RyICInJXMnIOayoeacieaMh+WQkeS4gOS4quaPkOS6pCIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjU1MAorIzogYnVpbHRpbi9tZXJnZS5jOjU2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJCYWQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyBzdHJpbmc6ICVzIgogbXNnc3RyICLlnY/nmoQgYnJhbmNoLiVzLm1lcmdlb3B0aW9ucyDlrZfnrKbkuLLvvJolcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY0MworIzogYnVpbHRpbi9tZXJnZS5jOjY1NwogbXNnaWQgImdpdCB3cml0ZS10cmVlIGZhaWxlZCB0byB3cml0ZSBhIHRyZWUiCiBtc2dzdHIgImdpdCB3cml0ZS10cmVlIOaXoOazleWGmeWFpeS4gOagkeWvueixoSIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY3MQorIzogYnVpbHRpbi9tZXJnZS5jOjY4NQogbXNnaWQgIk5vdCBoYW5kbGluZyBhbnl0aGluZyBvdGhlciB0aGFuIHR3byBoZWFkcyBtZXJnZS4iCiBtc2dzdHIgIuS4jeiDveWkhOeQhuS4pOS4quWktOWQiOW5tuS5i+WklueahOS7u+S9leaTjeS9nOOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY4NQorIzogYnVpbHRpbi9tZXJnZS5jOjY5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJVbmtub3duIG9wdGlvbiBmb3IgbWVyZ2UtcmVjdXJzaXZlOiAtWCVzIgogbXNnc3RyICJtZXJnZS1yZWN1cnNpdmUg55qE5pyq55+l6YCJ6aG577yaLVglcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjY5OQorIzogYnVpbHRpbi9tZXJnZS5jOjcxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmFibGUgdG8gd3JpdGUgJXMiCiBtc2dzdHIgIuS4jeiDveWGmSAlcyIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc4OAorIzogYnVpbHRpbi9tZXJnZS5jOjgwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJDb3VsZCBub3QgcmVhZCBmcm9tICclcyciCiBtc2dzdHIgIuS4jeiDveS7jiAnJXMnIOivu+WPliIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjc5NworIzogYnVpbHRpbi9tZXJnZS5jOjgxMQogIywgYy1mb3JtYXQKIG1zZ2lkICJOb3QgY29tbWl0dGluZyBtZXJnZTsgdXNlICdnaXQgY29tbWl0JyB0byBjb21wbGV0ZSB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIuacquaPkOS6pOWQiOW5tu+8jOS9v+eUqCAnZ2l0IGNvbW1pdCcg5a6M5oiQ5q2k5qyh5ZCI5bm244CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MDMKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlBsZWFzZSBlbnRlciBhIGNvbW1pdCBtZXNzYWdlIHRvIGV4cGxhaW4gd2h5IHRoaXMgbWVyZ2UgaXMgbmVjZXNzYXJ5LFxuIgpAQCAtNjE0OSw1MiArNjU3Miw0NyBAQAogIlxuIgogIuS7pSAnJWMnIOW8gOWktOeahOihjOWwhuiiq+W/veeVpe+8jOiAjOS4lOepuuaPkOS6pOivtOaYjuWwhuS8mue7iOatouaPkOS6pOOAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6ODI3CisjOiBidWlsdGluL21lcmdlLmM6ODQxCiBtc2dpZCAiRW1wdHkgY29tbWl0IG1lc3NhZ2UuIgogbXNnc3RyICLnqbrmj5DkuqTkv6Hmga/jgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo4MzkKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo4NTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiV29uZGVyZnVsLlxuIgogbXNnc3RyICLlpKrmo5LkuobjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkwNAorIzogYnVpbHRpbi9tZXJnZS5jOjkxOAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2UgZmFpbGVkOyBmaXggY29uZmxpY3RzIGFuZCB0aGVuIGNvbW1pdCB0aGUgcmVzdWx0LlxuIgogbXNnc3RyICLoh6rliqjlkIjlubblpLHotKXvvIzkv67mraPlhrLnqoHnhLblkI7mj5DkuqTkv67mraPnmoTnu5PmnpzjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjkyMAorIzogYnVpbHRpbi9tZXJnZS5jOjkzNAogIywgYy1mb3JtYXQKIG1zZ2lkICInJXMnIGlzIG5vdCBhIGNvbW1pdCIKIG1zZ3N0ciAiJyVzJyDkuI3mmK/kuIDkuKrmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NjEKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzUKIG1zZ2lkICJObyBjdXJyZW50IGJyYW5jaC4iCiBtc2dzdHIgIuayoeacieW9k+WJjeWIhuaUr+OAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjk2MworIzogYnVpbHRpbi9tZXJnZS5jOjk3NwogbXNnaWQgIk5vIHJlbW90ZSBmb3IgdGhlIGN1cnJlbnQgYnJhbmNoLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSv5rKh5pyJ5a+55bqU55qE6L+c56iL54mI5pys5bqT44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6OTY1CisjOiBidWlsdGluL21lcmdlLmM6OTc5CiBtc2dpZCAiTm8gZGVmYXVsdCB1cHN0cmVhbSBkZWZpbmVkIGZvciB0aGUgY3VycmVudCBicmFuY2guIgogbXNnc3RyICLlvZPliY3liIbmlK/msqHmnInlrprkuYnpu5jorqTnmoTkuIrmuLjliIbmlK/jgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzo5NzAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzo5ODQKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTm8gcmVtb3RlIHRyYWNraW5nIGJyYW5jaCBmb3IgJXMgZnJvbSAlcyIKLW1zZ3N0ciAiJXMg5rKh5pyJ5p2l6IeqICVzIOeahOi/nOeoi+i3n+i4quWIhuaUryIKK21zZ2lkICJObyByZW1vdGUtdHJhY2tpbmcgYnJhbmNoIGZvciAlcyBmcm9tICVzIgorbXNnc3RyICLlr7nkuo4gJXMg5rKh5pyJ5p2l6IeqICVzIOeahOi/nOeoi+i3n+i4quWIhuaUryIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEwNTcgYnVpbHRpbi9tZXJnZS5jOjEyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKLW1zZ3N0ciAiJXMgLSDkuI3og73ooqvlkIjlubYiCi0KLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTI1CisjOiBidWlsdGluL21lcmdlLmM6MTE0MAogbXNnaWQgIlRoZXJlIGlzIG5vIG1lcmdlIHRvIGFib3J0IChNRVJHRV9IRUFEIG1pc3NpbmcpLiIKIG1zZ3N0ciAi5rKh5pyJ6KaB57uI5q2i55qE5ZCI5bm277yITUVSR0VfSEVBRCDkuKLlpLHvvInjgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMTQxIGdpdC1wdWxsLnNoOjMxCisjOiBidWlsdGluL21lcmdlLmM6MTE1NiBnaXQtcHVsbC5zaDozMQogbXNnaWQgIiIKICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS5cbiIKICJQbGVhc2UsIGNvbW1pdCB5b3VyIGNoYW5nZXMgYmVmb3JlIHlvdSBjYW4gbWVyZ2UuIgpAQCAtNjIwMiwxMSArNjYyMCwxMSBAQAogIuaCqOWwmuacque7k+adn+aCqOeahOWQiOW5tu+8iOWtmOWcqCBNRVJHRV9IRUFE77yJ44CCXG4iCiAi6K+35Zyo5ZCI5bm25YmN5YWI5o+Q5Lqk5oKo55qE5L+u5pS544CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0NCBnaXQtcHVsbC5zaDozNAorIzogYnVpbHRpbi9tZXJnZS5jOjExNTkgZ2l0LXB1bGwuc2g6MzQKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgbWVyZ2UgKE1FUkdFX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIuaCqOWwmuacque7k+adn+aCqOeahOWQiOW5tu+8iOWtmOWcqCBNRVJHRV9IRUFE77yJ44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE0OAorIzogYnVpbHRpbi9tZXJnZS5jOjExNjMKIG1zZ2lkICIiCiAiWW91IGhhdmUgbm90IGNvbmNsdWRlZCB5b3VyIGNoZXJyeS1waWNrIChDSEVSUllfUElDS19IRUFEIGV4aXN0cykuXG4iCiAiUGxlYXNlLCBjb21taXQgeW91ciBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIG1lcmdlLiIKQEAgLTYyMTQsMTAwICs2NjMyLDEwMSBAQAogIuaCqOWwmuacque7k+adn+aCqOeahOaLo+mAie+8iOWtmOWcqCBDSEVSUllfUElDS19IRUFE77yJ44CCXG4iCiAi6K+35Zyo5ZCI5bm25YmN5YWI5o+Q5Lqk5oKo55qE5L+u5pS544CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE1MQorIzogYnVpbHRpbi9tZXJnZS5jOjExNjYKIG1zZ2lkICJZb3UgaGF2ZSBub3QgY29uY2x1ZGVkIHlvdXIgY2hlcnJ5LXBpY2sgKENIRVJSWV9QSUNLX0hFQUQgZXhpc3RzKS4iCiBtc2dzdHIgIuaCqOWwmuacque7k+adn+aCqOeahOaLo+mAie+8iOWtmOWcqCBDSEVSUllfUElDS19IRUFE77yJ44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTE2MAorIzogYnVpbHRpbi9tZXJnZS5jOjExNzUKIG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1zcXVhc2ggd2l0aCAtLW5vLWZmLiIKIG1zZ3N0ciAi5oKo5LiN6IO95bCGIC0tc3F1YXNoIOS4jiAtLW5vLWZmIOWQjOaXtuS9v+eUqOOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjExNjUKLW1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCi1tc2dzdHIgIuaCqOS4jeiDveWwhiAtLW5vLWZmIOS4jiAtLWZmLW9ubHkg5ZCM5pe25L2/55So44CCIgotCi0jOiBidWlsdGluL21lcmdlLmM6MTE3MgorIzogYnVpbHRpbi9tZXJnZS5jOjExODQKIG1zZ2lkICJObyBjb21taXQgc3BlY2lmaWVkIGFuZCBtZXJnZS5kZWZhdWx0VG9VcHN0cmVhbSBub3Qgc2V0LiIKIG1zZ3N0ciAi5pyq5oyH5a6a5o+Q5Lqk5bm25LiUIG1lcmdlLmRlZmF1bHRUb1Vwc3RyZWFtIOacquiuvue9ruOAgiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjEyMDQKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjE2CiBtc2dpZCAiQ2FuIG1lcmdlIG9ubHkgZXhhY3RseSBvbmUgY29tbWl0IGludG8gZW1wdHkgaGVhZCIKIG1zZ3N0ciAi5Y+q6IO95bCG5LiA5Liq5o+Q5Lqk5ZCI5bm25Yiw56m65YiG5pSv5LiKIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwNworIzogYnVpbHRpbi9tZXJnZS5jOjEyMTkKIG1zZ2lkICJTcXVhc2ggY29tbWl0IGludG8gZW1wdHkgaGVhZCBub3Qgc3VwcG9ydGVkIHlldCIKIG1zZ3N0ciAi5bCa5LiN5pSv5oyB5Yiw56m65YiG5pSv55qE5Y6L57yp5o+Q5LqkIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTIwOQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjEKIG1zZ2lkICJOb24tZmFzdC1mb3J3YXJkIGNvbW1pdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGludG8gYW4gZW1wdHkgaGVhZCIKIG1zZ3N0ciAi5Yiw56m65YiG5pSv55qE6Z2e5b+r6L+b5byP5o+Q5Lqk5rKh5pyJ5oSP5LmJIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI2NQorIzogYnVpbHRpbi9tZXJnZS5jOjEyMjYKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgLSBub3Qgc29tZXRoaW5nIHdlIGNhbiBtZXJnZSIKK21zZ3N0ciAiJXMgLSDkuI3og73ooqvlkIjlubYiCisKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjc3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvbW1pdCAlcyBoYXMgYW4gdW50cnVzdGVkIEdQRyBzaWduYXR1cmUsIGFsbGVnZWRseSBieSAlcy4iCiBtc2dzdHIgIuaPkOS6pCAlcyDmnInkuIDkuKrpnZ7lj6/kv6HnmoTlo7Dnp7DmnaXoh6ogJXMg55qEIEdQRyDnrb7lkI3jgIIiCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMjY4CisjOiBidWlsdGluL21lcmdlLmM6MTI4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJDb21taXQgJXMgaGFzIGEgYmFkIEdQRyBzaWduYXR1cmUgYWxsZWdlZGx5IGJ5ICVzLiIKIG1zZ3N0ciAi5o+Q5LqkICVzIOacieS4gOS4qumUmeivr+eahOWjsOensOadpeiHqiAlcyDnmoQgR1BHIOetvuWQjeOAgiIKIAogIy4gJ04nCi0jOiBidWlsdGluL21lcmdlLmM6MTI3MQorIzogYnVpbHRpbi9tZXJnZS5jOjEyODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGRvZXMgbm90IGhhdmUgYSBHUEcgc2lnbmF0dXJlLiIKIG1zZ3N0ciAi5o+Q5LqkICVzIOayoeacieS4gOS4qiBHUEcg562+5ZCN44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTI3NAorIzogYnVpbHRpbi9tZXJnZS5jOjEyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ29tbWl0ICVzIGhhcyBhIGdvb2QgR1BHIHNpZ25hdHVyZSBieSAlc1xuIgogbXNnc3RyICLmj5DkuqQgJXMg5pyJ5LiA5Liq5p2l6IeqICVzIOeahOWlveeahCBHUEcg562+5ZCN44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxMzU4CisjOiBidWlsdGluL21lcmdlLmM6MTM3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJVcGRhdGluZyAlcy4uJXNcbiIKIG1zZ3N0ciAi5pu05pawICVzLi4lc1xuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTM5NworIzogYnVpbHRpbi9tZXJnZS5jOjE0MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIHJlYWxseSB0cml2aWFsIGluLWluZGV4IG1lcmdlLi4uXG4iCiBtc2dzdHIgIuWwneivlemdnuW4uOWwj+eahOe0ouW8leWGheWQiOW5ti4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQwNAorIzogYnVpbHRpbi9tZXJnZS5jOjE0MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm9wZS5cbiIKIG1zZ3N0ciAi5peg44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNDM2CisjOiBidWlsdGluL21lcmdlLmM6MTQ0OAogbXNnaWQgIk5vdCBwb3NzaWJsZSB0byBmYXN0LWZvcndhcmQsIGFib3J0aW5nLiIKIG1zZ3N0ciAi5peg5rOV5b+r6L+b77yM57uI5q2i44CCIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ1OSBidWlsdGluL21lcmdlLmM6MTUzOAorIzogYnVpbHRpbi9tZXJnZS5jOjE0NzEgYnVpbHRpbi9tZXJnZS5jOjE1NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmV3aW5kaW5nIHRoZSB0cmVlIHRvIHByaXN0aW5lLi4uXG4iCiBtc2dzdHIgIuWwhuagkeWbnua7muiHs+WOn+Wni+eKtuaAgS4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTQ2MworIzogYnVpbHRpbi9tZXJnZS5jOjE0NzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiVHJ5aW5nIG1lcmdlIHN0cmF0ZWd5ICVzLi4uXG4iCiBtc2dzdHIgIuWwneivleWQiOW5tuetlueVpSAlcy4uLlxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUyOQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiTm8gbWVyZ2Ugc3RyYXRlZ3kgaGFuZGxlZCB0aGUgbWVyZ2UuXG4iCiBtc2dzdHIgIuayoeacieWQiOW5tuetlueVpeWkhOeQhuatpOWQiOW5tuOAglxuIgogCi0jOiBidWlsdGluL21lcmdlLmM6MTUzMQorIzogYnVpbHRpbi9tZXJnZS5jOjE1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWVyZ2Ugd2l0aCBzdHJhdGVneSAlcyBmYWlsZWQuXG4iCiBtc2dzdHIgIuS9v+eUqOetlueVpSAlcyDlkIjlubblpLHotKXjgIJcbiIKIAotIzogYnVpbHRpbi9tZXJnZS5jOjE1NDAKKyM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzaW5nIHRoZSAlcyB0byBwcmVwYXJlIHJlc29sdmluZyBieSBoYW5kLlxuIgogbXNnc3RyICLkvb/nlKggJXMg5Lul5YeG5aSH5omL5bel6Kej5Yaz44CCXG4iCiAKLSM6IGJ1aWx0aW4vbWVyZ2UuYzoxNTUyCisjOiBidWlsdGluL21lcmdlLmM6MTU2NAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdXRvbWF0aWMgbWVyZ2Ugd2VudCB3ZWxsOyBzdG9wcGVkIGJlZm9yZSBjb21taXR0aW5nIGFzIHJlcXVlc3RlZFxuIgogbXNnc3RyICLoh6rliqjlkIjlubbov5vlsZXpobrliKnvvIzmjInopoHmsYLlnKjmj5DkuqTliY3lgZzmraJcbiIKQEAgLTY0NzMsNDcgKzY4OTIsNTEgQEAKIG1zZ2lkICJyZW5hbWluZyAnJXMnIGZhaWxlZCIKIG1zZ3N0ciAi6YeN5ZG95ZCNICclcycg5aSx6LSlIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc1CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjU5CiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSA8Y29tbWl0Pi4uLiIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFvpgInpobldIDzmj5DkuqQ+Li4uIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYwCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLWFsbCIKIG1zZ3N0ciAiZ2l0IG5hbWUtcmV2IFvpgInpobldIC0tYWxsIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MTc3CisjOiBidWlsdGluL25hbWUtcmV2LmM6MjYxCiBtc2dpZCAiZ2l0IG5hbWUtcmV2IFtvcHRpb25zXSAtLXN0ZGluIgogbXNnc3RyICJnaXQgbmFtZS1yZXYgW+mAiemhuV0gLS1zdGRpbiIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIyOQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxMwogbXNnaWQgInByaW50IG9ubHkgbmFtZXMgKG5vIFNIQS0xKSIKIG1zZ3N0ciAi5Y+q5omT5Y2w5ZCN56ew77yI5pegIFNIQS0x77yJIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjMwCisjOiBidWlsdGluL25hbWUtcmV2LmM6MzE0CiBtc2dpZCAib25seSB1c2UgdGFncyB0byBuYW1lIHRoZSBjb21taXRzIgogbXNnc3RyICLlj6rkvb/nlKggdGFncyDmnaXlkb3lkI3mj5DkuqQiCiAKLSM6IGJ1aWx0aW4vbmFtZS1yZXYuYzoyMzIKKyM6IGJ1aWx0aW4vbmFtZS1yZXYuYzozMTYKIG1zZ2lkICJvbmx5IHVzZSByZWZzIG1hdGNoaW5nIDxwYXR0ZXJuPiIKIG1zZ3N0ciAi5Y+q5L2/55So5ZKMIDzmqKHlvI8+IOebuOWMuemFjeeahOW8leeUqCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNAorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOAogbXNnaWQgImxpc3QgYWxsIGNvbW1pdHMgcmVhY2hhYmxlIGZyb20gYWxsIHJlZnMiCiBtc2dzdHIgIuWIl+WHuuWPr+S7peS7juaJgOacieW8leeUqOiuv+mXrueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9uYW1lLXJldi5jOjIzNQorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMxOQogbXNnaWQgInJlYWQgZnJvbSBzdGRpbiIKIG1zZ3N0ciAi5LuO5qCH5YeG6L6T5YWl6K+75Y+WIgogCi0jOiBidWlsdGluL25hbWUtcmV2LmM6MjM2CisjOiBidWlsdGluL25hbWUtcmV2LmM6MzIwCiBtc2dpZCAiYWxsb3cgdG8gcHJpbnQgYHVuZGVmaW5lZGAgbmFtZXMiCiBtc2dzdHIgIuWFgeiuuOaJk+WNsCBg5pyq5a6a5LmJYCDnmoTlkI3np7AiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNgorIzogYnVpbHRpbi9uYW1lLXJldi5jOjMyNgorbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW4gdGhlIGlucHV0IChpbnRlcm5hbCB1c2UpIgorbXNnc3RyICLlj43lkJHop6PmnpDovpPlhaXkuK3nmoQgdGFnc++8iOWGhemDqOS9v+eUqO+8iSIKKworIzogYnVpbHRpbi9ub3Rlcy5jOjI0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIFtsaXN0IFs85a+56LGhPl1dIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjcKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNQogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhZGQgWy1mXSBbLW0gPG1zZz4gfCAtRiA8ZmlsZT4gfCAoLWMgfCAtQykgIgogIjxvYmplY3Q+XSBbPG9iamVjdD5dIgpAQCAtNjUyMSwxMSArNjk0NCwxMSBAQAogImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIGFkZCBbLWZdIFstbSA86K+05piOPiB8IC1GIDzmlofku7Y+IHwgKC1jIHwgLUMpIDzlr7kiCiAi6LGhPl0gWzzlr7nosaE+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI4CisjOiBidWlsdGluL25vdGVzLmM6MjYKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBjb3B5IFstZl0gPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0PiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gY29weSBbLWZdIDzmupDlr7nosaE+IDznm67moIflr7nosaE+IgogCi0jOiBidWlsdGluL25vdGVzLmM6MjkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNwogbXNnaWQgIiIKICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSBhcHBlbmQgWy1tIDxtc2c+IHwgLUYgPGZpbGU+IHwgKC1jIHwgLUMpICIKICI8b2JqZWN0Pl0gWzxvYmplY3Q+XSIKQEAgLTY1MzMsMjU1ICs2OTU2LDIzNCBAQAogImdpdCBub3RlcyBbLS1yZWYgPOazqOino+W8leeUqD5dIGFwcGVuZCBbLW0gPOivtOaYjj4gfCAtRiA85paH5Lu2PiB8ICgtYyB8IC1DKSA85a+56LGhIgogIj5dIFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMAorIzogYnVpbHRpbi9ub3Rlcy5jOjI4CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZWRpdCBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBlZGl0IFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMQorIzogYnVpbHRpbi9ub3Rlcy5jOjI5CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gc2hvdyBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBzaG93IFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMgorIzogYnVpbHRpbi9ub3Rlcy5jOjMwCiBtc2dpZCAiIgogImdpdCBub3RlcyBbLS1yZWYgPG5vdGVzX3JlZj5dIG1lcmdlIFstdiB8IC1xXSBbLXMgPHN0cmF0ZWd5PiBdIDxub3Rlc19yZWY+IgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBtZXJnZSBbLXYgfCAtcV0gWy1zIDznrZbnlaU+IF0gPOazqOino+W8leeUqD4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozMworIzogYnVpbHRpbi9ub3Rlcy5jOjMxCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM0CisjOiBidWlsdGluL25vdGVzLmM6MzIKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgLS1hYm9ydCBbLXYgfCAtcV0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFstdiB8IC1xXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjM1CisjOiBidWlsdGluL25vdGVzLmM6MzMKIG1zZ2lkICJnaXQgbm90ZXMgWy0tcmVmIDxub3Rlc19yZWY+XSByZW1vdmUgWzxvYmplY3Q+Li4uXSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gcmVtb3ZlIFs85a+56LGhPi4uLl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNgorIzogYnVpbHRpbi9ub3Rlcy5jOjM0CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gcHJ1bmUgWy1uIHwgLXZdIgogbXNnc3RyICJnaXQgbm90ZXMgWy0tcmVmIDzms6jop6PlvJXnlKg+XSBwcnVuZSBbLW4gfCAtdl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzozNworIzogYnVpbHRpbi9ub3Rlcy5jOjM1CiBtc2dpZCAiZ2l0IG5vdGVzIFstLXJlZiA8bm90ZXNfcmVmPl0gZ2V0LXJlZiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIFstLXJlZiA85rOo6Kej5byV55SoPl0gZ2V0LXJlZiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQyCisjOiBidWlsdGluL25vdGVzLmM6NDAKIG1zZ2lkICJnaXQgbm90ZXMgW2xpc3QgWzxvYmplY3Q+XV0iCiBtc2dzdHIgImdpdCBub3RlcyBbbGlzdCBbPOWvueixoT5dXSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ3CisjOiBidWlsdGluL25vdGVzLmM6NDUKIG1zZ2lkICJnaXQgbm90ZXMgYWRkIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhZGQgWzzpgInpobk+XSBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTIKKyM6IGJ1aWx0aW4vbm90ZXMuYzo1MAogbXNnaWQgImdpdCBub3RlcyBjb3B5IFs8b3B0aW9ucz5dIDxmcm9tLW9iamVjdD4gPHRvLW9iamVjdD4iCiBtc2dzdHIgImdpdCBub3RlcyBjb3B5IFs86YCJ6aG5Pl0gPOa6kOWvueixoT4gPOebruagh+WvueixoT4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MworIzogYnVpbHRpbi9ub3Rlcy5jOjUxCiBtc2dpZCAiZ2l0IG5vdGVzIGNvcHkgLS1zdGRpbiBbPGZyb20tb2JqZWN0PiA8dG8tb2JqZWN0Pl0uLi4iCiBtc2dzdHIgImdpdCBub3RlcyBjb3B5IC0tc3RkaW4gWzzmupDlr7nosaE+IDznm67moIflr7nosaE+XS4uLiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4CisjOiBidWlsdGluL25vdGVzLmM6NTYKIG1zZ2lkICJnaXQgbm90ZXMgYXBwZW5kIFs8b3B0aW9ucz5dIFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBhcHBlbmQgWzzpgInpobk+XSBbPOWvueixoT5dIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo2MQogbXNnaWQgImdpdCBub3RlcyBlZGl0IFs8b2JqZWN0Pl0iCiBtc2dzdHIgImdpdCBub3RlcyBlZGl0IFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjY2CiBtc2dpZCAiZ2l0IG5vdGVzIHNob3cgWzxvYmplY3Q+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIHNob3cgWzzlr7nosaE+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjczCisjOiBidWlsdGluL25vdGVzLmM6NzEKIG1zZ2lkICJnaXQgbm90ZXMgbWVyZ2UgWzxvcHRpb25zPl0gPG5vdGVzX3JlZj4iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSBbPOmAiemhuT5dIDzms6jop6PlvJXnlKg+IgogCi0jOiBidWlsdGluL25vdGVzLmM6NzQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MgogbXNnaWQgImdpdCBub3RlcyBtZXJnZSAtLWNvbW1pdCBbPG9wdGlvbnM+XSIKIG1zZ3N0ciAiZ2l0IG5vdGVzIG1lcmdlIC0tY29tbWl0IFs86YCJ6aG5Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo3NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczCiBtc2dpZCAiZ2l0IG5vdGVzIG1lcmdlIC0tYWJvcnQgWzxvcHRpb25zPl0iCiBtc2dzdHIgImdpdCBub3RlcyBtZXJnZSAtLWFib3J0IFs86YCJ6aG5Pl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4MAorIzogYnVpbHRpbi9ub3Rlcy5jOjc4CiBtc2dpZCAiZ2l0IG5vdGVzIHJlbW92ZSBbPG9iamVjdD5dIgogbXNnc3RyICJnaXQgbm90ZXMgcmVtb3ZlIFs85a+56LGhPl0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NQorIzogYnVpbHRpbi9ub3Rlcy5jOjgzCiBtc2dpZCAiZ2l0IG5vdGVzIHBydW5lIFs8b3B0aW9ucz5dIgogbXNnc3RyICJnaXQgbm90ZXMgcHJ1bmUgWzzpgInpobk+XSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjkwCisjOiBidWlsdGluL25vdGVzLmM6ODgKIG1zZ2lkICJnaXQgbm90ZXMgZ2V0LXJlZiIKIG1zZ3N0ciAiZ2l0IG5vdGVzIGdldC1yZWYiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMzkKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxMzcKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5hYmxlIHRvIHN0YXJ0ICdzaG93JyBmb3Igb2JqZWN0ICclcyciCiBtc2dzdHIgIuS4jeiDveS4uuWvueixoSAnJXMnIOW8gOWniyAnc2hvdyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNDEKIG1zZ2lkICJjb3VsZCBub3QgcmVhZCAnc2hvdycgb3V0cHV0IgogbXNnc3RyICLkuI3og73or7vlj5YgJ3Nob3cnIOeahOi+k+WHuiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjE1MQorIzogYnVpbHRpbi9ub3Rlcy5jOjE0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZmluaXNoICdzaG93JyBmb3Igb2JqZWN0ICclcyciCiBtc2dzdHIgIuaXoOazleS4uuWvueixoSAnJXMnIOWujOaIkCAnc2hvdyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxNjkgYnVpbHRpbi90YWcuYzozNDEKKyM6IGJ1aWx0aW4vbm90ZXMuYzoxNjcgYnVpbHRpbi90YWcuYzozNDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IGNyZWF0ZSBmaWxlICclcyciCiBtc2dzdHIgIuS4jeiDveWIm+W7uuaWh+S7tiAnJXMnIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTg4CisjOiBidWlsdGluL25vdGVzLmM6MTg2CiBtc2dpZCAiUGxlYXNlIHN1cHBseSB0aGUgbm90ZSBjb250ZW50cyB1c2luZyBlaXRoZXIgLW0gb3IgLUYgb3B0aW9uIgogbXNnc3RyICLor7fpgJrov4cgLW0g5oiWIC1GIOmAiemhueS4uuazqOino+aPkOS+m+WGheWuuSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIwOSBidWlsdGluL25vdGVzLmM6OTcyCisjOiBidWlsdGluL25vdGVzLmM6MjA3IGJ1aWx0aW4vbm90ZXMuYzo4NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVtb3Zpbmcgbm90ZSBmb3Igb2JqZWN0ICVzXG4iCiBtc2dzdHIgIuWIoOmZpOWvueixoSAlcyDnmoTms6jop6NcbiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjIxNAorIzogYnVpbHRpbi9ub3Rlcy5jOjIxMgogbXNnaWQgInVuYWJsZSB0byB3cml0ZSBub3RlIG9iamVjdCIKIG1zZ3N0ciAi5LiN6IO95YaZ5rOo6Kej5a+56LGhIgogCi0jOiBidWlsdGluL25vdGVzLmM6MjE2CisjOiBidWlsdGluL25vdGVzLmM6MjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoZSBub3RlIGNvbnRlbnRzIGhhcyBiZWVuIGxlZnQgaW4gJXMiCiBtc2dzdHIgIuazqOino+WGheWuueiiq+eVmeWcqOaWh+S7tiAlcyDkuK0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNDggYnVpbHRpbi90YWcuYzo1NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJyVzJyIKIG1zZ3N0ciAi5LiN6IO96K+75Y+WICclcyciCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyNTIgYnVpbHRpbi90YWcuYzo1NDMKKyM6IGJ1aWx0aW4vbm90ZXMuYzoyNTAgYnVpbHRpbi90YWcuYzo1NDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY291bGQgbm90IG9wZW4gb3IgcmVhZCAnJXMnIgogbXNnc3RyICLkuI3og73miZPlvIDmiJbor7vlj5YgJyVzJyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjI3MSBidWlsdGluL25vdGVzLmM6NDQ0IGJ1aWx0aW4vbm90ZXMuYzo0NDYKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MDYgYnVpbHRpbi9ub3Rlcy5jOjU2MCBidWlsdGluL25vdGVzLmM6NjQzCi0jOiBidWlsdGluL25vdGVzLmM6NjQ4IGJ1aWx0aW4vbm90ZXMuYzo3MjMgYnVpbHRpbi9ub3Rlcy5jOjc2NQotIzogYnVpbHRpbi9ub3Rlcy5jOjk2NyBidWlsdGluL3RhZy5jOjU1NgorIzogYnVpbHRpbi9ub3Rlcy5jOjI2OSBidWlsdGluL25vdGVzLmM6MzE2IGJ1aWx0aW4vbm90ZXMuYzozMTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzozNzggYnVpbHRpbi9ub3Rlcy5jOjQzMiBidWlsdGluL25vdGVzLmM6NTE1CisjOiBidWlsdGluL25vdGVzLmM6NTIwIGJ1aWx0aW4vbm90ZXMuYzo1OTUgYnVpbHRpbi9ub3Rlcy5jOjYzNworIzogYnVpbHRpbi9ub3Rlcy5jOjgzOSBidWlsdGluL3RhZy5jOjU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIGFzIGEgdmFsaWQgcmVmLiIKIG1zZ3N0ciAi5peg5rOV6Kej5p6QICclcycg5Li65LiA5Liq5pyJ5pWI5byV55So44CCIgogCi0jOiBidWlsdGluL25vdGVzLmM6Mjc0CisjOiBidWlsdGluL25vdGVzLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWFkIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAi5peg5rOV6K+75Y+W5a+56LGhICclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzoyOTgKLW1zZ2lkICJDYW5ub3QgY29tbWl0IHVuaW5pdGlhbGl6ZWQvdW5yZWZlcmVuY2VkIG5vdGVzIHRyZWUiCi1tc2dzdHIgIuS4jeiDveaPkOS6pOacquWIneWni+WMli/mnKrlvJXnlKjnmoTms6jop6PmoJEiCi0KLSM6IGJ1aWx0aW4vbm90ZXMuYzozMzkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQmFkIG5vdGVzLnJld3JpdGVNb2RlIHZhbHVlOiAnJXMnIgotbXNnc3RyICLlnY/nmoQgbm90ZXMucmV3cml0ZU1vZGUg5YC877yaJyVzJyIKLQotIzogYnVpbHRpbi9ub3Rlcy5jOjM0OQotIywgYy1mb3JtYXQKLW1zZ2lkICJSZWZ1c2luZyB0byByZXdyaXRlIG5vdGVzIGluICVzIChvdXRzaWRlIG9mIHJlZnMvbm90ZXMvKSIKLW1zZ3N0ciAi5ouS57ud5ZCRICVz77yI5ZyoIHJlZnMvbm90ZXMvIOS5i+Wklu+8ieWGmeWFpeazqOinoyIKLQotIy4gVFJBTlNMQVRPUlM6IFRoZSBmaXJzdCAlcyBpcyB0aGUgbmFtZSBvZiB0aGUKLSMuIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgc2Vjb25kICVzIGlzIGl0cyB2YWx1ZQotIzogYnVpbHRpbi9ub3Rlcy5jOjM3NgotIywgYy1mb3JtYXQKLW1zZ2lkICJCYWQgJXMgdmFsdWU6ICclcyciCi1tc2dzdHIgIuWdj+eahCAlcyDlgLzvvJonJXMnIgotCi0jOiBidWlsdGluL25vdGVzLmM6NDQwCisjOiBidWlsdGluL25vdGVzLmM6MzEyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1hbGZvcm1lZCBpbnB1dCBsaW5lOiAnJXMnLiIKIG1zZ3N0ciAi6Z2e5rOV55qE6L6T5YWl6KGM77yaJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjQ1NQorIzogYnVpbHRpbi9ub3Rlcy5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJGYWlsZWQgdG8gY29weSBub3RlcyBmcm9tICclcycgdG8gJyVzJyIKIG1zZ3N0ciAi5peg5rOV5LuOICclcycg5YiwICclcycg5ou36LSd5rOo6KejIgogCi0jOiBidWlsdGluL25vdGVzLmM6NDk5IGJ1aWx0aW4vbm90ZXMuYzo1NTMgYnVpbHRpbi9ub3Rlcy5jOjYyNgotIzogYnVpbHRpbi9ub3Rlcy5jOjYzOCBidWlsdGluL25vdGVzLmM6NzExIGJ1aWx0aW4vbm90ZXMuYzo3NTgKLSM6IGJ1aWx0aW4vbm90ZXMuYzoxMDMyCisjOiBidWlsdGluL25vdGVzLmM6MzcxIGJ1aWx0aW4vbm90ZXMuYzo0MjUgYnVpbHRpbi9ub3Rlcy5jOjQ5OAorIzogYnVpbHRpbi9ub3Rlcy5jOjUxMCBidWlsdGluL25vdGVzLmM6NTgzIGJ1aWx0aW4vbm90ZXMuYzo2MzAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5MDQKIG1zZ2lkICJ0b28gbWFueSBwYXJhbWV0ZXJzIgogbXNnc3RyICLlj4LmlbDlpKrlpJoiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MTIgYnVpbHRpbi9ub3Rlcy5jOjc3MQorIzogYnVpbHRpbi9ub3Rlcy5jOjM4NCBidWlsdGluL25vdGVzLmM6NjQzCiAjLCBjLWZvcm1hdAogbXNnaWQgIk5vIG5vdGUgZm91bmQgZm9yIG9iamVjdCAlcy4iCiBtc2dzdHIgIuacquWPkeeOsOWvueixoSAlcyDnmoTms6jop6PjgIIiCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzQgYnVpbHRpbi9ub3Rlcy5jOjY5MQorIzogYnVpbHRpbi9ub3Rlcy5jOjQwNiBidWlsdGluL25vdGVzLmM6NTYzCiBtc2dpZCAibm90ZSBjb250ZW50cyBhcyBhIHN0cmluZyIKIG1zZ3N0ciAi5rOo6Kej5YaF5a655L2c5Li65LiA5Liq5a2X56ym5LiyIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTM3IGJ1aWx0aW4vbm90ZXMuYzo2OTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MDkgYnVpbHRpbi9ub3Rlcy5jOjU2NgogbXNnaWQgIm5vdGUgY29udGVudHMgaW4gYSBmaWxlIgogbXNnc3RyICLms6jop6PlhoXlrrnliLDkuIDkuKrmlofku7bkuK0iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo1MzkgYnVpbHRpbi9ub3Rlcy5jOjU0MiBidWlsdGluL25vdGVzLmM6Njk2Ci0jOiBidWlsdGluL25vdGVzLmM6Njk5IGJ1aWx0aW4vdGFnLmM6NDc0CisjOiBidWlsdGluL25vdGVzLmM6NDExIGJ1aWx0aW4vbm90ZXMuYzo0MTQgYnVpbHRpbi9ub3Rlcy5jOjU2OAorIzogYnVpbHRpbi9ub3Rlcy5jOjU3MSBidWlsdGluL3RhZy5jOjQ3NAogbXNnaWQgIm9iamVjdCIKIG1zZ3N0ciAi5a+56LGhIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQwIGJ1aWx0aW4vbm90ZXMuYzo2OTcKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTIgYnVpbHRpbi9ub3Rlcy5jOjU2OQogbXNnaWQgInJldXNlIGFuZCBlZGl0IHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAi6YeN55So5ZKM57yW6L6R5oyH5a6a55qE5rOo6Kej5a+56LGhIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQzIGJ1aWx0aW4vbm90ZXMuYzo3MDAKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTUgYnVpbHRpbi9ub3Rlcy5jOjU3MgogbXNnaWQgInJldXNlIHNwZWNpZmllZCBub3RlIG9iamVjdCIKIG1zZ3N0ciAi6YeN55So5oyH5a6a55qE5rOo6Kej5a+56LGhIgogCi0jOiBidWlsdGluL25vdGVzLmM6NTQ1IGJ1aWx0aW4vbm90ZXMuYzo2MTMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0MTcgYnVpbHRpbi9ub3Rlcy5jOjQ4NQogbXNnaWQgInJlcGxhY2UgZXhpc3Rpbmcgbm90ZXMiCiBtc2dzdHIgIuabv+aNouW3suWtmOWcqOeahOazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU3OQorIzogYnVpbHRpbi9ub3Rlcy5jOjQ1MQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ2Fubm90IGFkZCBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKICJleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAi5LiN6IO95re75Yqg5rOo6Kej44CC5Y+R546w5a+56LGhICVzIOW3suWtmOWcqOazqOino+OAguS9v+eUqCAnLWYnIOimhueblueOsOWtmOazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjU4NCBidWlsdGluL25vdGVzLmM6NjYxCisjOiBidWlsdGluL25vdGVzLmM6NDU2IGJ1aWx0aW4vbm90ZXMuYzo1MzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiT3ZlcndyaXRpbmcgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlc1xuIgogbXNnc3RyICLopobnm5blr7nosaEgJXMg546w5a2Y5rOo6KejXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo2MTQKKyM6IGJ1aWx0aW4vbm90ZXMuYzo0ODYKIG1zZ2lkICJyZWFkIG9iamVjdHMgZnJvbSBzdGRpbiIKIG1zZ3N0ciAi5LuO5qCH5YeG6L6T5YWl6K+75Y+W5a+56LGhIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjE2CisjOiBidWlsdGluL25vdGVzLmM6NDg4CiBtc2dpZCAibG9hZCByZXdyaXRpbmcgY29uZmlnIGZvciA8Y29tbWFuZD4gKGltcGxpZXMgLS1zdGRpbikiCiBtc2dzdHIgIumHjeaWsOWKoOi9vSA85ZG95LukPiDnmoTphY3nva7vvIjpmpDlkKsgLS1zdGRpbu+8iSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjYzNAorIzogYnVpbHRpbi9ub3Rlcy5jOjUwNgogbXNnaWQgInRvbyBmZXcgcGFyYW1ldGVycyIKIG1zZ3N0ciAi5Y+C5pWw5aSq5bCRIgogCi0jOiBidWlsdGluL25vdGVzLmM6NjU1CisjOiBidWlsdGluL25vdGVzLmM6NTI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDYW5ub3QgY29weSBub3Rlcy4gRm91bmQgZXhpc3Rpbmcgbm90ZXMgZm9yIG9iamVjdCAlcy4gVXNlICctZicgdG8gb3ZlcndyaXRlICIKICJleGlzdGluZyBub3RlcyIKIG1zZ3N0ciAi5LiN6IO95ou36LSd5rOo6Kej44CC5Y+R546w5a+56LGhICVzIOW3suWtmOWcqOazqOino+OAguS9v+eUqCAnLWYnIOimhueblueOsOWtmOazqOinoyIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjY2NworIzogYnVpbHRpbi9ub3Rlcy5jOjUzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJNaXNzaW5nIG5vdGVzIG9uIHNvdXJjZSBvYmplY3QgJXMuIENhbm5vdCBjb3B5LiIKIG1zZ3N0ciAi5rqQ5a+56LGhICVzIOe8uuWwkeazqOino+OAguS4jeiDveaLt+i0neOAgiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjcxNgorIzogYnVpbHRpbi9ub3Rlcy5jOjU4OAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVGhlIC1tLy1GLy1jLy1DIG9wdGlvbnMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgZm9yIHRoZSAnZWRpdCcgc3ViY29tbWFuZC5cbiIKQEAgLTY3OTAsNTggKzcxOTIsNTggQEAKICLlrZDlkb3ku6QgJ2VkaXQnIOeahOmAiemhuSAtbS8tRi8tYy8tQyDlt7LlvIPnlKjjgIJcbiIKICLor7fmjaLnlKggJ2dpdCBub3RlcyBhZGQgLWYgLW0vLUYvLWMvLUMn44CCXG4iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo4NjMKKyM6IGJ1aWx0aW4vbm90ZXMuYzo3MzUKIG1zZ2lkICJHZW5lcmFsIG9wdGlvbnMiCiBtc2dzdHIgIumAmueUqOmAiemhuSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NQorIzogYnVpbHRpbi9ub3Rlcy5jOjczNwogbXNnaWQgIk1lcmdlIG9wdGlvbnMiCiBtc2dzdHIgIuWQiOW5tumAiemhuSIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjg2NworIzogYnVpbHRpbi9ub3Rlcy5jOjczOQogbXNnaWQgIiIKICJyZXNvbHZlIG5vdGVzIGNvbmZsaWN0cyB1c2luZyB0aGUgZ2l2ZW4gc3RyYXRlZ3kgKG1hbnVhbC9vdXJzL3RoZWlycy91bmlvbi8iCiAiY2F0X3NvcnRfdW5pcSkiCiBtc2dzdHIgIuS9v+eUqOaMh+WumueahOetlueVpeino+WGs+azqOino+WGsueqgSAobWFudWFsL291cnMvdGhlaXJzL3VuaW9uL2NhdF9zb3J0X3VuaXEpIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODY5CisjOiBidWlsdGluL25vdGVzLmM6NzQxCiBtc2dpZCAiQ29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAi5o+Q5Lqk5pyq5ZCI5bm255qE5rOo6KejIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODcxCisjOiBidWlsdGluL25vdGVzLmM6NzQzCiBtc2dpZCAiZmluYWxpemUgbm90ZXMgbWVyZ2UgYnkgY29tbWl0dGluZyB1bm1lcmdlZCBub3RlcyIKIG1zZ3N0ciAi6YCa6L+H5o+Q5Lqk5pyq5ZCI5bm255qE5rOo6Kej5p2l5a6M5oiQ5rOo6Kej5ZCI5bm2IgogCi0jOiBidWlsdGluL25vdGVzLmM6ODczCisjOiBidWlsdGluL25vdGVzLmM6NzQ1CiBtc2dpZCAiQWJvcnRpbmcgbm90ZXMgbWVyZ2UgcmVzb2x1dGlvbiIKIG1zZ3N0ciAi5Lit5q2i5rOo6Kej5ZCI5bm255qE5pa55qGIIgogCi0jOiBidWlsdGluL25vdGVzLmM6ODc1CisjOiBidWlsdGluL25vdGVzLmM6NzQ3CiBtc2dpZCAiYWJvcnQgbm90ZXMgbWVyZ2UiCiBtc2dzdHIgIuS4reatouazqOino+WQiOW5tiIKIAotIzogYnVpbHRpbi9ub3Rlcy5jOjk3MAorIzogYnVpbHRpbi9ub3Rlcy5jOjg0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJPYmplY3QgJXMgaGFzIG5vIG5vdGVcbiIKIG1zZ3N0ciAi5a+56LGhICVzIOayoeacieazqOino1xuIgogCi0jOiBidWlsdGluL25vdGVzLmM6OTgyCisjOiBidWlsdGluL25vdGVzLmM6ODU0CiBtc2dpZCAiYXR0ZW1wdCB0byByZW1vdmUgbm9uLWV4aXN0ZW50IG5vdGUgaXMgbm90IGFuIGVycm9yIgogbXNnc3RyICLlsJ3or5XliKDpmaTkuI3lrZjlnKjnmoTms6jop6PkuI3mmK/kuIDkuKrplJnor68iCiAKLSM6IGJ1aWx0aW4vbm90ZXMuYzo5ODUKKyM6IGJ1aWx0aW4vbm90ZXMuYzo4NTcKIG1zZ2lkICJyZWFkIG9iamVjdCBuYW1lcyBmcm9tIHRoZSBzdGFuZGFyZCBpbnB1dCIKIG1zZ3N0ciAi5LuO5qCH5YeG6L6T5YWl6K+75Y+W5a+56LGh5ZCN56ewIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NgorIzogYnVpbHRpbi9ub3Rlcy5jOjkzOAogbXNnaWQgIm5vdGVzX3JlZiIKIG1zZ3N0ciAi5rOo6Kej5byV55SoIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTA2NworIzogYnVpbHRpbi9ub3Rlcy5jOjkzOQogbXNnaWQgInVzZSBub3RlcyBmcm9tIDxub3Rlc19yZWY+IgogbXNnc3RyICLku44gPOazqOino+W8leeUqD4g5L2/55So5rOo6KejIgogCi0jOiBidWlsdGluL25vdGVzLmM6MTEwMiBidWlsdGluL3JlbW90ZS5jOjE1OTgKKyM6IGJ1aWx0aW4vbm90ZXMuYzo5NzQgYnVpbHRpbi9yZW1vdGUuYzoxNTk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVua25vd24gc3ViY29tbWFuZDogJXMiCiBtc2dzdHIgIuacquefpeWtkOWRveS7pO+8miVzIgpAQCAtNzA3NSw3ICs3NDc3LDcgQEAKICIgICAgZ2l0IHB1c2ggJXMgJXNcbiIKICIlcyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTIxCisjOiBidWlsdGluL3B1c2guYzoxMTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgbm90IGN1cnJlbnRseSBvbiBhIGJyYW5jaC5cbiIKQEAgLTcwODksNyArNzQ5MSw3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoICVzIEhFQUQ6PG5hbWUtb2YtcmVtb3RlLWJyYW5jaD5cbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTI4CisjOiBidWlsdGluL3B1c2guYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjdXJyZW50IGJyYW5jaCAlcyBoYXMgbm8gdXBzdHJlYW0gYnJhbmNoLlxuIgpAQCAtNzEwMiwxMiArNzUwNCwxMiBAQAogIlxuIgogIiAgICBnaXQgcHVzaCAtLXNldC11cHN0cmVhbSAlcyAlc1xuIgogCi0jOiBidWlsdGluL3B1c2guYzoxMzYKKyM6IGJ1aWx0aW4vcHVzaC5jOjEzOQogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGUgY3VycmVudCBicmFuY2ggJXMgaGFzIG11bHRpcGxlIHVwc3RyZWFtIGJyYW5jaGVzLCByZWZ1c2luZyB0byBwdXNoLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSvICVzIOacieWkmuS4quS4iua4uOWIhuaUr++8jOaLkue7neaOqOmAgeOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MTM5CisjOiBidWlsdGluL3B1c2guYzoxNDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIllvdSBhcmUgcHVzaGluZyB0byByZW1vdGUgJyVzJywgd2hpY2ggaXMgbm90IHRoZSB1cHN0cmVhbSBvZlxuIgpAQCAtNzExOCw3ICs3NTIwLDcgQEAKICLogIzmsqHmnInlkYror4nmiJHopoHmjqjpgIHku4DkuYjjgIHmm7TmlrDlk6rkuKrov5znqIvliIbmlK/jgIIiCiAKICMgIOivkeiAhe+8muWtl+espuS4summluihjOihjOmmluimgea3u+WKoOKAnHdhcm5pbmc6IOKAneWtl+S4su+8jOaVheatpOmmluihjOimgei+g+WFtuS9meihjOefrQotIzogYnVpbHRpbi9wdXNoLmM6MTUxCisjOiBidWlsdGluL3B1c2guYzoxNjUKIG1zZ2lkICIiCiAicHVzaC5kZWZhdWx0IGlzIHVuc2V0OyBpdHMgaW1wbGljaXQgdmFsdWUgaXMgY2hhbmdpbmcgaW5cbiIKICJHaXQgMi4wIGZyb20gJ21hdGNoaW5nJyB0byAnc2ltcGxlJy4gVG8gc3F1ZWxjaCB0aGlzIG1lc3NhZ2VcbiIKQEAgLTcxNDksMjMgKzc1NTEsMjMgQEAKICLvvIgnc2ltcGxlJyDmqKHlvI/nlLEgR2l0IDEuNy4xMSDniYjmnKzlvJXlhaXjgILlpoLmnpzmgqjmnInml7bopoHkvb/nlKjogIHniYjmnKznmoQgR2l077yMXG4iCiAi5Li65L+d5oyB5YW85a6577yM6K+355SoICdjdXJyZW50JyDku6Pmm78gJ3NpbXBsZScg5qih5byP77yJIgogCi0jOiBidWlsdGluL3B1c2guYzoxOTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjIyNQogbXNnaWQgIiIKICJZb3UgZGlkbid0IHNwZWNpZnkgYW55IHJlZnNwZWNzIHRvIHB1c2gsIGFuZCBwdXNoLmRlZmF1bHQgaXMgXCJub3RoaW5nXCIuIgogbXNnc3RyICLmgqjmsqHmnInkuLrmjqjpgIHmjIflrprku7vkvZXlvJXnlKjooajovr7lvI/vvIzlubbkuJQgcHVzaC5kZWZhdWx0IOS4uiBcIm5vdGhpbmdcIuOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjA2CisjOiBidWlsdGluL3B1c2guYzoyMzIKIG1zZ2lkICIiCiAiVXBkYXRlcyB3ZXJlIHJlamVjdGVkIGJlY2F1c2UgdGhlIHRpcCBvZiB5b3VyIGN1cnJlbnQgYnJhbmNoIGlzIGJlaGluZFxuIgotIml0cyByZW1vdGUgY291bnRlcnBhcnQuIE1lcmdlIHRoZSByZW1vdGUgY2hhbmdlcyAoZS5nLiAnZ2l0IHB1bGwnKVxuIgotImJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorIml0cyByZW1vdGUgY291bnRlcnBhcnQuIEludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXMgKGUuZy5cbiIKKyInZ2l0IHB1bGwgLi4uJykgYmVmb3JlIHB1c2hpbmcgYWdhaW4uXG4iCiAiU2VlIHRoZSAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyBpbiAnZ2l0IHB1c2ggLS1oZWxwJyBmb3IgZGV0YWlscy4iCiBtc2dzdHIgIiIKICLmm7TmlrDooqvmi5Lnu53vvIzlm6DkuLrmgqjlvZPliY3liIbmlK/nmoTmnIDmlrDmj5DkuqTokL3lkI7kuo7lhbblr7nlupTnmoTov5znqIvliIbmlK/jgIJcbiIKLSLlho3mrKHmjqjpgIHliY3vvIzlhYjkuI7ov5znqIvlj5jmm7TlkIjlubbvvIjlpoIgJ2dpdCBwdWxsJ++8ieOAguivpuingVxuIgorIuWGjeasoeaOqOmAgeWJje+8jOWFiOS4jui/nOeoi+WPmOabtOWQiOW5tu+8iOWmgiAnZ2l0IHB1bGwgLi4uJ++8ieOAguivpuingVxuIgogIidnaXQgcHVzaCAtLWhlbHAnIOS4reeahCAnTm90ZSBhYm91dCBmYXN0LWZvcndhcmRzJyDlsI/oioLjgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxMgorIzogYnVpbHRpbi9wdXNoLmM6MjM4CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKICJjb3VudGVycGFydC4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHB1c2ggdGhhdCBicmFuY2gsIHlvdSBtYXkgd2FudCB0b1xuIgpAQCAtNzE3NywzNSArNzU3OSwzNSBAQAogIumFjee9ruWPmOmHjyAncHVzaC5kZWZhdWx0JyDorr7nva7kuLogJ3NpbXBsZSfjgIEnY3VycmVudCcg5oiWICd1cHN0cmVhbSdcbiIKICLku6Xkvr/lj6rmjqjpgIHlvZPliY3liIbmlK/jgIIiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjIxOAorIzogYnVpbHRpbi9wdXNoLmM6MjQ0CiBtc2dpZCAiIgogIlVwZGF0ZXMgd2VyZSByZWplY3RlZCBiZWNhdXNlIGEgcHVzaGVkIGJyYW5jaCB0aXAgaXMgYmVoaW5kIGl0cyByZW1vdGVcbiIKLSJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBtZXJnZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKLSIoZS5nLiAnZ2l0IHB1bGwnKSBiZWZvcmUgcHVzaGluZyBhZ2Fpbi5cbiIKKyJjb3VudGVycGFydC4gQ2hlY2sgb3V0IHRoaXMgYnJhbmNoIGFuZCBpbnRlZ3JhdGUgdGhlIHJlbW90ZSBjaGFuZ2VzXG4iCisiKGUuZy4gJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAi5pu05paw6KKr5ouS57ud77yM5Zug5Li65o6o6YCB55qE5LiA5Liq5YiG5pSv55qE5pyA5paw5o+Q5Lqk6JC95ZCO5LqO5YW25a+55bqU55qE6L+c56iL5YiG5pSv44CCXG4iCi0i5qOA5Ye66K+l5YiG5pSv5bm25LiO6L+c56iL5Y+Y5pu05ZCI5bm277yI5aaCICdnaXQgcHVsbCfvvInvvIznhLblkI7lho3mjqjpgIHjgILor6bop4FcbiIKKyLmo4Dlh7ror6XliIbmlK/lubbmlbTlkIjov5znqIvlj5jmm7TvvIjlpoIgJ2dpdCBwdWxsIC4uLifvvInvvIznhLblkI7lho3mjqjpgIHjgILor6bop4FcbiIKICInZ2l0IHB1c2ggLS1oZWxwJyDkuK3nmoQgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycg5bCP6IqC44CCIgogCi0jOiBidWlsdGluL3B1c2guYzoyMjQKKyM6IGJ1aWx0aW4vcHVzaC5jOjI1MAogbXNnaWQgIiIKICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgcmVtb3RlIGNvbnRhaW5zIHdvcmsgdGhhdCB5b3UgZG9cbiIKICJub3QgaGF2ZSBsb2NhbGx5LiBUaGlzIGlzIHVzdWFsbHkgY2F1c2VkIGJ5IGFub3RoZXIgcmVwb3NpdG9yeSBwdXNoaW5nXG4iCi0idG8gdGhlIHNhbWUgcmVmLiBZb3UgbWF5IHdhbnQgdG8gZmlyc3QgbWVyZ2UgdGhlIHJlbW90ZSBjaGFuZ2VzIChlLmcuLFxuIgotIidnaXQgcHVsbCcpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgorInRvIHRoZSBzYW1lIHJlZi4gWW91IG1heSB3YW50IHRvIGZpcnN0IGludGVncmF0ZSB0aGUgcmVtb3RlIGNoYW5nZXNcbiIKKyIoZS5nLiwgJ2dpdCBwdWxsIC4uLicpIGJlZm9yZSBwdXNoaW5nIGFnYWluLlxuIgogIlNlZSB0aGUgJ05vdGUgYWJvdXQgZmFzdC1mb3J3YXJkcycgaW4gJ2dpdCBwdXNoIC0taGVscCcgZm9yIGRldGFpbHMuIgogbXNnc3RyICIiCiAi5pu05paw6KKr5ouS57ud77yM5Zug5Li66L+c56iL54mI5pys5bqT5YyF5ZCr5oKo5pys5Zyw5bCa5LiN5a2Y5Zyo55qE5o+Q5Lqk44CC6L+Z6YCa5bi45piv5Zug5Li65Y+m5aSWXG4iCi0i5LiA5Liq54mI5pys5bqT5bey5o6o6YCB5LqG55u45ZCM55qE5byV55So44CC5YaN5qyh5o6o6YCB5YmN77yM5oKo5Y+v6IO96ZyA6KaB5YWI5ZCI5bm26L+c56iL5Y+Y5pu0XG4iCi0i77yI5aaCICdnaXQgcHVsbCfvvInjgIJcbiIKKyLkuIDkuKrniYjmnKzlupPlt7LlkJHor6XlvJXnlKjov5vooYzkuobmjqjpgIHjgILlho3mrKHmjqjpgIHliY3vvIzmgqjlj6/og73pnIDopoHlhYjmlbTlkIjov5znqIvlj5jmm7RcbiIKKyLvvIjlpoIgJ2dpdCBwdWxsIC4uLifvvInjgIJcbiIKICLor6bop4EgJ2dpdCBwdXNoIC0taGVscCcg5Lit55qEICdOb3RlIGFib3V0IGZhc3QtZm9yd2FyZHMnIOWwj+iKguOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjMxCisjOiBidWlsdGluL3B1c2guYzoyNTcKIG1zZ2lkICJVcGRhdGVzIHdlcmUgcmVqZWN0ZWQgYmVjYXVzZSB0aGUgdGFnIGFscmVhZHkgZXhpc3RzIGluIHRoZSByZW1vdGUuIgogbXNnc3RyICLmm7TmlrDooqvmi5Lnu53lm6DkuLogdGFnIOWcqOi/nOeoi+W3sue7j+WtmOWcqOOAgiIKIAotIzogYnVpbHRpbi9wdXNoLmM6MjM0CisjOiBidWlsdGluL3B1c2guYzoyNjAKIG1zZ2lkICIiCiAiWW91IGNhbm5vdCB1cGRhdGUgYSByZW1vdGUgcmVmIHRoYXQgcG9pbnRzIGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCiAib3IgdXBkYXRlIGEgcmVtb3RlIHJlZiB0byBtYWtlIGl0IHBvaW50IGF0IGEgbm9uLWNvbW1pdCBvYmplY3QsXG4iCkBAIC03MjE0LDIyICs3NjE2LDIyIEBACiAi5aaC5p6c5LiN5L2/55SoICctLWZvcmNlJyDlj4LmlbDvvIzmgqjkuI3og73mm7TmlrDkuIDkuKrmjIflkJHpnZ7mj5DkuqTlr7nosaHnmoTov5znqIvlvJXnlKjvvIxcbiIKICLkuZ/kuI3og73mm7TmlrDov5znqIvlvJXnlKjorqnlhbbmjIflkJHkuIDkuKrpnZ7mj5DkuqTlr7nosaHjgIJcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk0CisjOiBidWlsdGluL3B1c2guYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUHVzaGluZyB0byAlc1xuIgogbXNnc3RyICLmjqjpgIHliLAgJXNcbiIKIAotIzogYnVpbHRpbi9wdXNoLmM6Mjk4CisjOiBidWlsdGluL3B1c2guYzozMjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHB1c2ggc29tZSByZWZzIHRvICclcyciCiBtc2dzdHIgIuaXoOazleaOqOmAgeS4gOS6m+W8leeUqOWIsCAnJXMnIgogCi0jOiBidWlsdGluL3B1c2guYzozMzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjM1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgcmVwb3NpdG9yeSAnJXMnIgogbXNnc3RyICLlnY/nmoTniYjmnKzlupMgJyVzJyIKIAotIzogYnVpbHRpbi9wdXNoLmM6MzMyCisjOiBidWlsdGluL3B1c2guYzozNTgKIG1zZ2lkICIiCiAiTm8gY29uZmlndXJlZCBwdXNoIGRlc3RpbmF0aW9uLlxuIgogIkVpdGhlciBzcGVjaWZ5IHRoZSBVUkwgZnJvbSB0aGUgY29tbWFuZC1saW5lIG9yIGNvbmZpZ3VyZSBhIHJlbW90ZSAiCkBAIC03MjUwLDg3ICs3NjUyLDg3IEBACiAiXG4iCiAiICAgIGdpdCBwdXNoIDxuYW1lPlxuIgogCi0jOiBidWlsdGluL3B1c2guYzozNDcKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3MwogbXNnaWQgIi0tYWxsIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1hbGwg5ZKMIC0tdGFncyDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM0OAorIzogYnVpbHRpbi9wdXNoLmM6Mzc0CiBtc2dpZCAiLS1hbGwgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiLS1hbGwg5LiN6IO95ZKM5byV55So6KGo6L6+5byP5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL3B1c2guYzozNTMKKyM6IGJ1aWx0aW4vcHVzaC5jOjM3OQogbXNnaWQgIi0tbWlycm9yIGFuZCAtLXRhZ3MgYXJlIGluY29tcGF0aWJsZSIKIG1zZ3N0ciAiLS1taXJyb3Ig5ZKMIC0tdGFncyDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjM1NAorIzogYnVpbHRpbi9wdXNoLmM6MzgwCiBtc2dpZCAiLS1taXJyb3IgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCByZWZzcGVjcyIKIG1zZ3N0ciAiLS1taXJyb3Ig5LiN6IO95ZKM5byV55So6KGo6L6+5byP5ZCM5pe25L2/55SoIgogCi0jOiBidWlsdGluL3B1c2guYzozNTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjM4NQogbXNnaWQgIi0tYWxsIGFuZCAtLW1pcnJvciBhcmUgaW5jb21wYXRpYmxlIgogbXNnc3RyICItLWFsbCDlkowgLS1taXJyb3Ig5LiN5YW85a65IgogCi0jOiBidWlsdGluL3B1c2guYzo0MTkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ0NQogbXNnaWQgInJlcG9zaXRvcnkiCiBtc2dzdHIgIueJiOacrOW6kyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDIwCisjOiBidWlsdGluL3B1c2guYzo0NDYKIG1zZ2lkICJwdXNoIGFsbCByZWZzIgogbXNnc3RyICLmjqjpgIHmiYDmnInlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMQorIzogYnVpbHRpbi9wdXNoLmM6NDQ3CiBtc2dpZCAibWlycm9yIGFsbCByZWZzIgogbXNnc3RyICLplZzlg4/miYDmnInlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQyMworIzogYnVpbHRpbi9wdXNoLmM6NDQ5CiBtc2dpZCAiZGVsZXRlIHJlZnMiCiBtc2dzdHIgIuWIoOmZpOW8leeUqCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI0CisjOiBidWlsdGluL3B1c2guYzo0NTAKIG1zZ2lkICJwdXNoIHRhZ3MgKGNhbid0IGJlIHVzZWQgd2l0aCAtLWFsbCBvciAtLW1pcnJvcikiCiBtc2dzdHIgIuaOqOmAgSB0YWdz77yI5LiN6IO95L2/55SoIC0tYWxsIG9yIC0tbWlycm9y77yJIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1MwogbXNnaWQgImZvcmNlIHVwZGF0ZXMiCiBtc2dzdHIgIuW8uuWItuabtOaWsCIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDI4CisjOiBidWlsdGluL3B1c2guYzo0NTQKIG1zZ2lkICJjaGVjayIKIG1zZ3N0ciAi5qOA5p+lIgogCi0jOiBidWlsdGluL3B1c2guYzo0MjkKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NQogbXNnaWQgImNvbnRyb2wgcmVjdXJzaXZlIHB1c2hpbmcgb2Ygc3VibW9kdWxlcyIKIG1zZ3N0ciAi5o6n5Yi25a2Q5qih57uE55qE6YCS5b2S5o6o6YCBIgogCi0jOiBidWlsdGluL3B1c2guYzo0MzEKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ1NwogbXNnaWQgInVzZSB0aGluIHBhY2siCiBtc2dzdHIgIuS9v+eUqOeyvueugOaJk+WMhSIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDMyIGJ1aWx0aW4vcHVzaC5jOjQzMworIzogYnVpbHRpbi9wdXNoLmM6NDU4IGJ1aWx0aW4vcHVzaC5jOjQ1OQogbXNnaWQgInJlY2VpdmUgcGFjayBwcm9ncmFtIgogbXNnc3RyICLmjqXmlLbljIXnqIvluo8iCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzNAorIzogYnVpbHRpbi9wdXNoLmM6NDYwCiBtc2dpZCAic2V0IHVwc3RyZWFtIGZvciBnaXQgcHVsbC9zdGF0dXMiCiBtc2dzdHIgIuiuvue9riBnaXQgcHVsbC9zdGF0dXMg55qE5LiK5ri4IgogCi0jOiBidWlsdGluL3B1c2guYzo0MzcKKyM6IGJ1aWx0aW4vcHVzaC5jOjQ2MwogbXNnaWQgInBydW5lIGxvY2FsbHkgcmVtb3ZlZCByZWZzIgogbXNnc3RyICLmuIXpmaTmnKzlnLDliKDpmaTnmoTlvJXnlKgiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQzOQorIzogYnVpbHRpbi9wdXNoLmM6NDY1CiBtc2dpZCAiYnlwYXNzIHByZS1wdXNoIGhvb2siCiBtc2dzdHIgIue7lei/hyBwcmUtcHVzaCDpkqnlrZAiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ0MAorIzogYnVpbHRpbi9wdXNoLmM6NDY2CiBtc2dpZCAicHVzaCBtaXNzaW5nIGJ1dCByZWxldmFudCB0YWdzIgogbXNnc3RyICLmjqjpgIHnvLrlpLHnmoTmnInlhbPnmoQgdGFncyIKIAotIzogYnVpbHRpbi9wdXNoLmM6NDUwCisjOiBidWlsdGluL3B1c2guYzo0NzYKIG1zZ2lkICItLWRlbGV0ZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAtLWFsbCwgLS1taXJyb3IgYW5kIC0tdGFncyIKIG1zZ3N0ciAiLS1kZWxldGUg5LiOIC0tYWxs44CBLS1taXJyb3Ig5Y+KIC0tdGFncyDkuI3lhbzlrrkiCiAKLSM6IGJ1aWx0aW4vcHVzaC5jOjQ1MgorIzogYnVpbHRpbi9wdXNoLmM6NDc4CiBtc2dpZCAiLS1kZWxldGUgZG9lc24ndCBtYWtlIHNlbnNlIHdpdGhvdXQgYW55IHJlZnMiCiBtc2dzdHIgIi0tZGVsZXRlIOacquaOpeS7u+S9leW8leeUqOayoeacieaEj+S5iSIKIApAQCAtNzM0NCw3MCArNzc0Niw4MCBAQAogInUgWy0tZXhjbHVkZS1wZXItZGlyZWN0b3J5PTxnaXRpZ25vcmU+XSB8IC1pXV0gWy0tbm8tc3BhcnNlLWNoZWNrb3V0XSBbLS0iCiAiaW5kZXgtb3V0cHV0PTzmlofku7Y+XSAoLS1lbXB0eSB8IDzmoJHmiJbmj5DkuqQxPiBbPOagkeaIluaPkOS6pDI+IFs85qCR5oiW5o+Q5LqkMz5dXSkiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTA4CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEwOQogbXNnaWQgIndyaXRlIHJlc3VsdGluZyBpbmRleCB0byA8ZmlsZT4iCiBtc2dzdHIgIuWwhue0ouW8lee7k+aenOWGmeWFpSA8ZmlsZT4iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTExCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExMgogbXNnaWQgIm9ubHkgZW1wdHkgdGhlIGluZGV4IgogbXNnc3RyICLlj6rmmK/muIXnqbrntKLlvJUiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTEzCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNAogbXNnaWQgIk1lcmdpbmciCiBtc2dzdHIgIuWQiOW5tiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTUKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTE2CiBtc2dpZCAicGVyZm9ybSBhIG1lcmdlIGluIGFkZGl0aW9uIHRvIGEgcmVhZCIKIG1zZ3N0ciAi6K+75Y+W5LmL5L2Z5YaN5omn6KGM5LiA5Liq5ZCI5bm2IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjExNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTgKIG1zZ2lkICIzLXdheSBtZXJnZSBpZiBubyBmaWxlIGxldmVsIG1lcmdpbmcgcmVxdWlyZWQiCiBtc2dzdHIgIuWmguaenOayoeacieaWh+S7tue6p+WQiOW5tumcgOimge+8jOaJp+ihjOS4iei3r+WQiOW5tiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMTkKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIwCiBtc2dpZCAiMy13YXkgbWVyZ2UgaW4gcHJlc2VuY2Ugb2YgYWRkcyBhbmQgcmVtb3ZlcyIKIG1zZ3N0ciAi5a2Y5Zyo5re75Yqg5ZKM5Yig6Zmk5pe277yM5Lmf5omn6KGM5LiJ6Lev5ZCI5bm2IgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMQorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjIKIG1zZ2lkICJzYW1lIGFzIC1tLCBidXQgZGlzY2FyZCB1bm1lcmdlZCBlbnRyaWVzIgogbXNnc3RyICLnsbvkvLzkuo4gLW3vvIzkvYbkuKLlvIPmnKrlkIjlubbnmoTmnaHnm64iCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTIyCisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMwogbXNnaWQgIjxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAiPOWtkOebruW9lT4vIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyMworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjQKIG1zZ2lkICJyZWFkIHRoZSB0cmVlIGludG8gdGhlIGluZGV4IHVuZGVyIDxzdWJkaXJlY3Rvcnk+LyIKIG1zZ3N0ciAi6K+75Y+W5qCR5a+56LGh5Yiw57Si5byV55qEIDzlrZDnm67lvZU+LyDkuIsiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI2CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEyNwogbXNnaWQgInVwZGF0ZSB3b3JraW5nIHRyZWUgd2l0aCBtZXJnZSByZXN1bHQiCiBtc2dzdHIgIueUqOWQiOW5tueahOe7k+aenOabtOaWsOW3peS9nOWMuiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMjgKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CiBtc2dpZCAiZ2l0aWdub3JlIgogbXNnc3RyICJnaXRpZ25vcmUiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTI5CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMAogbXNnaWQgImFsbG93IGV4cGxpY2l0bHkgaWdub3JlZCBmaWxlcyB0byBiZSBvdmVyd3JpdHRlbiIKIG1zZ3N0ciAi5YWB6K645b+955Wl5paH5Lu25Lit6K6+5a6a55qE5paH5Lu25Y+v5Lul6KKr6KaG55uWIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzMgorIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKIG1zZ2lkICJkb24ndCBjaGVjayB0aGUgd29ya2luZyB0cmVlIGFmdGVyIG1lcmdpbmciCiBtc2dzdHIgIuWQiOW5tuWQjuS4jeajgOafpeW3peS9nOWMuiIKIAotIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzMKKyM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM0CiBtc2dpZCAiZG9uJ3QgdXBkYXRlIHRoZSBpbmRleCBvciB0aGUgd29yayB0cmVlIgogbXNnc3RyICLkuI3mm7TmlrDntKLlvJXljLrlkozlt6XkvZzljLoiCiAKLSM6IGJ1aWx0aW4vcmVhZC10cmVlLmM6MTM1CisjOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNgogbXNnaWQgInNraXAgYXBwbHlpbmcgc3BhcnNlIGNoZWNrb3V0IGZpbHRlciIKIG1zZ3N0ciAi6Lez6L+H5bqU55So56iA55aP5qOA5Ye66L+H5ruk5ZmoIgogCi0jOiBidWlsdGluL3JlYWQtdHJlZS5jOjEzNworIzogYnVpbHRpbi9yZWFkLXRyZWUuYzoxMzgKIG1zZ2lkICJkZWJ1ZyB1bnBhY2stdHJlZXMiCiBtc2dzdHIgIuiwg+ivlSB1bnBhY2stdHJlZXMiCiAKKyM6IGJ1aWx0aW4vcmVmbG9nLmM6NTAwCisjLCBjLWZvcm1hdAorbXNnaWQgIiVzJyBmb3IgJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIiclMiRzJyDnmoTlgLwgJyUxJHMnIOS4jeaYr+S4gOS4quacieaViOeahOaXtumXtOaIsyIKKworIzogYnVpbHRpbi9yZWZsb2cuYzo2MTYgYnVpbHRpbi9yZWZsb2cuYzo2MjEKKyMsIGMtZm9ybWF0Cittc2dpZCAiJyVzJyBpcyBub3QgYSB2YWxpZCB0aW1lc3RhbXAiCittc2dzdHIgIiclcycg5LiN5piv5LiA5Liq5pyJ5pWI55qE5pe26Ze05oizIgorCiAjOiBidWlsdGluL3JlbW90ZS5jOjExCiBtc2dpZCAiZ2l0IHJlbW90ZSBbLXYgfCAtLXZlcmJvc2VdIgogbXNnc3RyICJnaXQgcmVtb3RlIFstdiB8IC0tdmVyYm9zZV0iCkBAIC03OTc4LDk4ICs4MzkwLDk4IEBACiBtc2dpZCAiRmFpbGVkIHRvIGZpbmQgdHJlZSBvZiAlcy4iCiBtc2dzdHIgIuaXoOazleaJvuWIsCAlcyDmjIflkJHnmoTmoJHjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzo5OAorIzogYnVpbHRpbi9yZXNldC5jOjk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIkhFQUQgaXMgbm93IGF0ICVzIgogbXNnc3RyICJIRUFEIOeOsOWcqOS9jeS6jiAlcyIKIAogIyAg6K+R6ICF77ya5rGJ5a2X5LmL6Ze05peg56m65qC877yM5pWF5Yig6ZmkJXPliY3lkI7nqbrmoLwKLSM6IGJ1aWx0aW4vcmVzZXQuYzoxNjkKKyM6IGJ1aWx0aW4vcmVzZXQuYzoxNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvIGEgJXMgcmVzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIG1lcmdlLiIKIG1zZ3N0ciAi5Zyo5ZCI5bm26L+H56iL5Lit5LiN6IO95YGaJXPph43nva7mk43kvZzjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNDgKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTEKIG1zZ2lkICJiZSBxdWlldCwgb25seSByZXBvcnQgZXJyb3JzIgogbXNnc3RyICLlronpnZnmqKHlvI/vvIzlj6rmiqXlkYrplJnor68iCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyNTAKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyNTMKIG1zZ2lkICJyZXNldCBIRUFEIGFuZCBpbmRleCIKIG1zZ3N0ciAi6YeN572uIEhFQUQg5ZKM57Si5byVIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MjUxCisjOiBidWlsdGluL3Jlc2V0LmM6MjU0CiBtc2dpZCAicmVzZXQgb25seSBIRUFEIgogbXNnc3RyICLlj6rph43nva4gSEVBRCIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1MyBidWlsdGluL3Jlc2V0LmM6MjU1CisjOiBidWlsdGluL3Jlc2V0LmM6MjU2IGJ1aWx0aW4vcmVzZXQuYzoyNTgKIG1zZ2lkICJyZXNldCBIRUFELCBpbmRleCBhbmQgd29ya2luZyB0cmVlIgogbXNnc3RyICLph43nva4gSEVBROOAgee0ouW8leWSjOW3peS9nOWMuiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI1NworIzogYnVpbHRpbi9yZXNldC5jOjI2MAogbXNnaWQgInJlc2V0IEhFQUQgYnV0IGtlZXAgbG9jYWwgY2hhbmdlcyIKIG1zZ3N0ciAi6YeN572uIEhFQUQg5L2G5L+d5a2Y5pys5Zyw5Y+Y5pu0IgogCi0jOiBidWlsdGluL3Jlc2V0LmM6Mjc1CisjOiBidWlsdGluL3Jlc2V0LmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZXNvbHZlICclcycgYXMgYSB2YWxpZCByZXZpc2lvbi4iCiBtc2dzdHIgIuaXoOazleWwhiAnJXMnIOino+aekOS4uuS4gOS4quacieaViOeahOeJiOacrOOAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjI3OCBidWlsdGluL3Jlc2V0LmM6Mjg2CisjOiBidWlsdGluL3Jlc2V0LmM6MjgxIGJ1aWx0aW4vcmVzZXQuYzoyODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IHBhcnNlIG9iamVjdCAnJXMnLiIKIG1zZ3N0ciAi5LiN6IO96Kej5p6Q5a+56LGhICclcyfjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyODMKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRmFpbGVkIHRvIHJlc29sdmUgJyVzJyBhcyBhIHZhbGlkIHRyZWUuIgogbXNnc3RyICLml6Dms5XlsIYgJyVzJyDop6PmnpDkuLrkuIDkuKrmnInmlYjnmoTmoJHlr7nosaHjgIIiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzoyOTIKKyM6IGJ1aWx0aW4vcmVzZXQuYzoyOTUKIG1zZ2lkICItLXBhdGNoIGlzIGluY29tcGF0aWJsZSB3aXRoIC0te2hhcmQsbWl4ZWQsc29mdH0iCiBtc2dzdHIgIi0tcGF0Y2gg5LiOIC0te2hhcmTjgIFtaXhlZOOAgXNvZnR9IOmAiemhueS4jeWFvOWuuSIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMwMQorIzogYnVpbHRpbi9yZXNldC5jOjMwNAogbXNnaWQgIi0tbWl4ZWQgd2l0aCBwYXRocyBpcyBkZXByZWNhdGVkOyB1c2UgJ2dpdCByZXNldCAtLSA8cGF0aHM+JyBpbnN0ZWFkLiIKIG1zZ3N0ciAiLS1taXhlZCDluKbot6/lvoTlt7LlvIPnlKjvvIzogIzmmK/nlKggJ2dpdCByZXNldCAtLSA8cGF0aHM+J+OAgiIKIAogIyAg6K+R6ICF77ya5rGJ5a2X5LmL6Ze05peg56m65qC877yM5pWF5Yig6ZmkJXPliY3lkI7nqbrmoLwKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMDMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2Fubm90IGRvICVzIHJlc2V0IHdpdGggcGF0aHMuIgogbXNnc3RyICLkuI3og73luKbot6/lvoTov5vooYwlc+mHjee9ruOAgiIKIAogIyAg6K+R6ICF77ya5rGJ5a2X5LmL6Ze05peg56m65qC877yM5pWF5Yig6ZmkJXPliY3lkI7nqbrmoLwKLSM6IGJ1aWx0aW4vcmVzZXQuYzozMTMKKyM6IGJ1aWx0aW4vcmVzZXQuYzozMTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgcmVzZXQgaXMgbm90IGFsbG93ZWQgaW4gYSBiYXJlIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuS4jeiDveWvueijuOeJiOacrOW6k+i/m+ihjCVz6YeN572uIgogCi0jOiBidWlsdGluL3Jlc2V0LmM6MzMzCisjOiBidWlsdGluL3Jlc2V0LmM6MzM2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNvdWxkIG5vdCByZXNldCBpbmRleCBmaWxlIHRvIHJldmlzaW9uICclcycuIgogbXNnc3RyICLkuI3og73ph43nva7ntKLlvJXmlofku7boh7PniYjmnKwgJyVzJ+OAgiIKIAotIzogYnVpbHRpbi9yZXNldC5jOjMzOQorIzogYnVpbHRpbi9yZXNldC5jOjM0MgogbXNnaWQgIlVuc3RhZ2VkIGNoYW5nZXMgYWZ0ZXIgcmVzZXQ6IgogbXNnc3RyICLph43nva7lkI7mkqTlh7rmmoLlrZjljLrnmoTlj5jmm7TvvJoiCiAKLSM6IGJ1aWx0aW4vcmVzZXQuYzozNDQKKyM6IGJ1aWx0aW4vcmVzZXQuYzozNDcKIG1zZ2lkICJDb3VsZCBub3Qgd3JpdGUgbmV3IGluZGV4IGZpbGUuIgogbXNnc3RyICLkuI3og73lhpnlhaXmlrDnmoTntKLlvJXmlofku7bjgIIiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzM5CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NQogbXNnaWQgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBbb3B0aW9uc10gLS0gWzxhcmdzPi4uLl0iCiBtc2dzdHIgImdpdCByZXYtcGFyc2UgLS1wYXJzZW9wdCBb6YCJ6aG5XSAtLSBbPOWPguaVsD4uLi5dIgogCi0jOiBidWlsdGluL3Jldi1wYXJzZS5jOjM0NAorIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNTAKIG1zZ2lkICJrZWVwIHRoZSBgLS1gIHBhc3NlZCBhcyBhbiBhcmciCiBtc2dzdHIgIuS/neaMgSBgLS1gIOS9nOS4uuS4gOS4quWPguaVsOS8oOmAkiIKIAotIzogYnVpbHRpbi9yZXYtcGFyc2UuYzozNDYKKyM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6MzUyCiBtc2dpZCAic3RvcCBwYXJzaW5nIGFmdGVyIHRoZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50IgogbXNnc3RyICLpgYfliLDnrKzkuIDkuKrpnZ7pgInpobnlj4LmlbDlkI7lgZzmraLop6PmnpAiCiAKLSM6IGJ1aWx0aW4vcmV2LXBhcnNlLmM6NDY0CisjOiBidWlsdGluL3Jldi1wYXJzZS5jOjQ3MAogbXNnaWQgIiIKICJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgW29wdGlvbnNdIC0tIFs8YXJncz4uLi5dXG4iCiAiICAgb3I6IGdpdCByZXYtcGFyc2UgLS1zcS1xdW90ZSBbPGFyZz4uLi5dXG4iCkBAIC04MDg0LDE5MCArODQ5NiwyMTAgQEAKICLliJ3mrKHkvb/nlKjml7bmiafooYwgXCJnaXQgcmV2LXBhcnNlIC0tcGFyc2VvcHQgLWhcIiDmnaXojrflvpfmm7TlpJrkv6Hmga/jgIIiCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjIKLW1zZ2lkICJnaXQgcmV2ZXJ0IFtvcHRpb25zXSA8Y29tbWl0LWlzaD4iCi1tc2dzdHIgImdpdCByZXZlcnQgW+mAiemhuV0gPOaPkOS6pOWPtz4iCittc2dpZCAiZ2l0IHJldmVydCBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgcmV2ZXJ0IFvpgInpobldIDzmj5DkuqTlj7c+Li4uIgogCiAjOiBidWlsdGluL3JldmVydC5jOjIzCiBtc2dpZCAiZ2l0IHJldmVydCA8c3ViY29tbWFuZD4iCiBtc2dzdHIgImdpdCByZXZlcnQgPOWtkOWRveS7pD4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjgKLW1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgW29wdGlvbnNdIDxjb21taXQtaXNoPiIKLW1zZ3N0ciAiZ2l0IGNoZXJyeS1waWNrIFvpgInpobldIDzmj5DkuqTlj7c+IgorbXNnaWQgImdpdCBjaGVycnktcGljayBbb3B0aW9uc10gPGNvbW1pdC1pc2g+Li4uIgorbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgW+mAiemhuV0gPOaPkOS6pOWPtz4uLi4iCiAKICM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjkKIG1zZ2lkICJnaXQgY2hlcnJ5LXBpY2sgPHN1YmNvbW1hbmQ+IgogbXNnc3RyICJnaXQgY2hlcnJ5LXBpY2sgPOWtkOWRveS7pD4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6NzAgYnVpbHRpbi9yZXZlcnQuYzo5MgorIzogYnVpbHRpbi9yZXZlcnQuYzo3MSBidWlsdGluL3JldmVydC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzOiAlcyBjYW5ub3QgYmUgdXNlZCB3aXRoICVzIgogbXNnc3RyICIlc++8miVzIOS4jeiDveWSjCAlcyDlkIzml7bkvb/nlKgiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTAzCisjOiBidWlsdGluL3JldmVydC5jOjEwNQogbXNnaWQgImVuZCByZXZlcnQgb3IgY2hlcnJ5LXBpY2sgc2VxdWVuY2UiCiBtc2dzdHIgIue7iOatouWPjei9rOaIluaLo+mAieaTjeS9nCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMDQKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CiBtc2dpZCAicmVzdW1lIHJldmVydCBvciBjaGVycnktcGljayBzZXF1ZW5jZSIKIG1zZ3N0ciAi57un57ut5Y+N6L2s5oiW5ouj6YCJ5pON5L2cIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEwNQorIzogYnVpbHRpbi9yZXZlcnQuYzoxMDcKIG1zZ2lkICJjYW5jZWwgcmV2ZXJ0IG9yIGNoZXJyeS1waWNrIHNlcXVlbmNlIgogbXNnc3RyICLlj5bmtojlj43ovazmiJbmi6PpgInmk43kvZwiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA2CisjOiBidWlsdGluL3JldmVydC5jOjEwOAogbXNnaWQgImRvbid0IGF1dG9tYXRpY2FsbHkgY29tbWl0IgogbXNnc3RyICLkuI3opoHoh6rliqjmj5DkuqQiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTA3CisjOiBidWlsdGluL3JldmVydC5jOjEwOQogbXNnaWQgImVkaXQgdGhlIGNvbW1pdCBtZXNzYWdlIgogbXNnc3RyICLnvJbovpHmj5DkuqTor7TmmI4iCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTEwCisjOiBidWlsdGluL3JldmVydC5jOjExMgogbXNnaWQgInBhcmVudCBudW1iZXIiCiBtc2dzdHIgIueItue8luWPtyIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTIKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CiBtc2dpZCAibWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgIuWQiOW5tuetlueVpSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMTMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE1CiBtc2dpZCAib3B0aW9uIgogbXNnc3RyICLpgInpobkiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTE0CisjOiBidWlsdGluL3JldmVydC5jOjExNgogbXNnaWQgIm9wdGlvbiBmb3IgbWVyZ2Ugc3RyYXRlZ3kiCiBtc2dzdHIgIuWQiOW5tuetlueVpeeahOmAiemhuSIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjUKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI3CiBtc2dpZCAiYXBwZW5kIGNvbW1pdCBuYW1lIgogbXNnc3RyICLov73liqDmj5DkuqTlkI3np7AiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTI2CisjOiBidWlsdGluL3JldmVydC5jOjEyOAogbXNnaWQgImFsbG93IGZhc3QtZm9yd2FyZCIKIG1zZ3N0ciAi5YWB6K645b+r6L+b5byPIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyNworIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKIG1zZ2lkICJwcmVzZXJ2ZSBpbml0aWFsbHkgZW1wdHkgY29tbWl0cyIKIG1zZ3N0ciAi5L+d55WZ5Yid5aeL5YyW55qE56m65o+Q5LqkIgogCi0jOiBidWlsdGluL3JldmVydC5jOjEyOAorIzogYnVpbHRpbi9yZXZlcnQuYzoxMzAKIG1zZ2lkICJhbGxvdyBjb21taXRzIHdpdGggZW1wdHkgbWVzc2FnZXMiCiBtc2dzdHIgIuWFgeiuuOaPkOS6pOivtOaYjuS4uuepuiIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMjkKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTMxCiBtc2dpZCAia2VlcCByZWR1bmRhbnQsIGVtcHR5IGNvbW1pdHMiCiBtc2dzdHIgIuS/neaMgeWkmuS9meeahOOAgeepuueahOaPkOS6pCIKIAotIzogYnVpbHRpbi9yZXZlcnQuYzoxMzMKKyM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MTM1CiBtc2dpZCAicHJvZ3JhbSBlcnJvciIKIG1zZ3N0ciAi56iL5bqP6ZSZ6K+vIgogCi0jOiBidWlsdGluL3JldmVydC5jOjIyMworIzogYnVpbHRpbi9yZXZlcnQuYzoyMjUKIG1zZ2lkICJyZXZlcnQgZmFpbGVkIgogbXNnc3RyICLov5jljp/lpLHotKUiCiAKLSM6IGJ1aWx0aW4vcmV2ZXJ0LmM6MjM4CisjOiBidWlsdGluL3JldmVydC5jOjI0MAogbXNnaWQgImNoZXJyeS1waWNrIGZhaWxlZCIKIG1zZ3N0ciAi5ouj6YCJ5aSx6LSlIgogCi0jOiBidWlsdGluL3JtLmM6MTUKKyM6IGJ1aWx0aW4vcm0uYzoxNgogbXNnaWQgImdpdCBybSBbb3B0aW9uc10gWy0tXSA8ZmlsZT4uLi4iCiBtc2dzdHIgImdpdCBybSBb6YCJ6aG5XSBbLS1dIDzmlofku7Y+Li4uIgogCi0jOiBidWlsdGluL3JtLmM6NjQgYnVpbHRpbi9ybS5jOjE4NgotIywgYy1mb3JtYXQKKyM6IGJ1aWx0aW4vcm0uYzo2NAogbXNnaWQgIiIKLSJzdWJtb2R1bGUgJyVzJyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcykgdXNlcyBhIC5naXQgZGlyZWN0b3J5XG4iCisidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpXG4iCisidXNlcyBhIC5naXQgZGlyZWN0b3J5OiIKK21zZ2lkX3BsdXJhbCAiIgorInRoZSBmb2xsb3dpbmcgc3VibW9kdWxlcyAob3Igb25lIG9mIGl0cyBuZXN0ZWQgc3VibW9kdWxlcylcbiIKKyJ1c2UgYSAuZ2l0IGRpcmVjdG9yeToiCittc2dzdHJbMF0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+WtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKK21zZ3N0clsxXSAi5aaC5LiL5a2Q5qih57uE77yI5oiW5LiA5Liq5YW25bWM5aWX5a2Q5qih57uE77yJ5L2/55So5LqG5LiA5LiqIC5naXQg55uu5b2V77yaIgorCisjOiBidWlsdGluL3JtLmM6NzAKK21zZ2lkICIiCisiXG4iCiAiKHVzZSAncm0gLXJmJyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gcmVtb3ZlIGl0IGluY2x1ZGluZyBhbGwgb2YgaXRzIGhpc3RvcnkpIgogbXNnc3RyICIiCi0i5a2Q5qih57uEICclcyfvvIjmiJbogIXlroPnmoTkuIDkuKrltYzlpZflrZDmqKHnu4TvvInkvb/nlKjkuIDkuKogLmdpdCDnm67lvZVcbiIKKyJcbiIKICLvvIjkvb/nlKggJ3JtIC1yZicg5ZG95Luk5aaC5p6c5oKo55yf55qE5oOz5Yig6Zmk5a6D5Y+K5YW25YWo6YOo5Y6G5Y+y77yJIgogCi0jOiBidWlsdGluL3JtLmM6MTc0Ci0jLCBjLWZvcm1hdAorIzogYnVpbHRpbi9ybS5jOjIzMAogbXNnaWQgIiIKLSInJXMnIGhhcyBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZSBmaWxlIGFuZCB0aGUgSEVBRFxuIgorInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dpZF9wbHVyYWwgIiIKKyJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGVcbiIKKyJmaWxlIGFuZCB0aGUgSEVBRDoiCittc2dzdHJbMF0gIuWmguS4i+aWh+S7tuWFtuaaguWtmOeahOWGheWuueWSjOW3peS9nOWMuuWPiiBIRUFEIOS4reeahOmDveS4jeS4gOagt++8miIKK21zZ3N0clsxXSAi5aaC5LiL5paH5Lu25YW25pqC5a2Y55qE5YaF5a655ZKM5bel5L2c5Yy65Y+KIEhFQUQg5Lit55qE6YO95LiN5LiA5qC377yaIgorCisjOiBidWlsdGluL3JtLmM6MjM1Cittc2dpZCAiIgorIlxuIgogIih1c2UgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCiBtc2dzdHIgIiIKLSInJXMnIOaaguWtmOeahOWGheWuueWSjOW3peS9nOWMuuWPiiBIRUFEIOS4reeahOmDveS4jeS4gOagt1xuIgorIlxuIgogIu+8iOS9v+eUqCAtZiDlvLrliLbliKDpmaTvvIkiCiAKLSM6IGJ1aWx0aW4vcm0uYzoxODAKLSMsIGMtZm9ybWF0CisjOiBidWlsdGluL3JtLmM6MjM5Cittc2dpZCAidGhlIGZvbGxvd2luZyBmaWxlIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXg6IgorbXNnaWRfcGx1cmFsICJ0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OiIKK21zZ3N0clswXSAi5aaC5LiL5paH5Lu255u45a+557Si5byV5Yy655qE5YaF5a655pyJ5L+u5pS5IgorbXNnc3RyWzFdICLlpoLkuIvmlofku7bnm7jlr7nntKLlvJXljLrnmoTlhoXlrrnmnInkv67mlLkiCisKKyM6IGJ1aWx0aW4vcm0uYzoyNDMgYnVpbHRpbi9ybS5jOjI1NAogbXNnaWQgIiIKLSInJXMnIGhhcyBjaGFuZ2VzIHN0YWdlZCBpbiB0aGUgaW5kZXhcbiIKKyJcbiIKICIodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpIgogbXNnc3RyICIiCi0iJyVzJyDmnInlj5jmm7Tlt7LmmoLlrZjoh7PntKLlvJXkuK1cbiIKLSLvvIjkvb/nlKggLS1jYWNoZWQg5L+d5a2Y5paH5Lu277yM5oiW55SoIC1mIOW8uuWItuWIoOmZpO+8iSIKKyJcbiIKKyLvvIjkvb/nlKggLS1jYWNoZWQg5L+d55WZ5pys5Zyw5paH5Lu277yM5oiW55SoIC1mIOW8uuWItuWIoOmZpO+8iSIKIAotIzogYnVpbHRpbi9ybS5jOjE5MQotIywgYy1mb3JtYXQKLW1zZ2lkICIiCi0iJyVzJyBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uc1xuIgotIih1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkiCi1tc2dzdHIgIiIKLSInJXMnIOacieacrOWcsOS/ruaUuVxuIgotIu+8iOS9v+eUqCAtLWNhY2hlZCDkv53lrZjmlofku7bvvIzmiJbnlKggLWYg5by65Yi25Yig6Zmk77yJIgorIzogYnVpbHRpbi9ybS5jOjI1MQorbXNnaWQgInRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgbG9jYWwgbW9kaWZpY2F0aW9uczoiCittc2dpZF9wbHVyYWwgInRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBsb2NhbCBtb2RpZmljYXRpb25zOiIKK21zZ3N0clswXSAi5aaC5LiL5paH5Lu25pyJ5pys5Zyw5L+u5pS577yaIgorbXNnc3RyWzFdICLlpoLkuIvmlofku7bmnInmnKzlnLDkv67mlLnvvJoiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDcKKyM6IGJ1aWx0aW4vcm0uYzoyNjkKIG1zZ2lkICJkbyBub3QgbGlzdCByZW1vdmVkIGZpbGVzIgogbXNnc3RyICLkuI3liJflh7rliKDpmaTnmoTmlofku7YiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMDgKKyM6IGJ1aWx0aW4vcm0uYzoyNzAKIG1zZ2lkICJvbmx5IHJlbW92ZSBmcm9tIHRoZSBpbmRleCIKIG1zZ3N0ciAi5Y+q5LuO57Si5byV5Yy65Yig6ZmkIgogCi0jOiBidWlsdGluL3JtLmM6MjA5CisjOiBidWlsdGluL3JtLmM6MjcxCiBtc2dpZCAib3ZlcnJpZGUgdGhlIHVwLXRvLWRhdGUgY2hlY2siCiBtc2dzdHIgIuW/veeVpeaWh+S7tuabtOaWsOeKtuaAgeajgOafpSIKIAotIzogYnVpbHRpbi9ybS5jOjIxMAorIzogYnVpbHRpbi9ybS5jOjI3MgogbXNnaWQgImFsbG93IHJlY3Vyc2l2ZSByZW1vdmFsIgogbXNnc3RyICLlhYHorrjpgJLlvZLliKDpmaQiCiAKLSM6IGJ1aWx0aW4vcm0uYzoyMTIKKyM6IGJ1aWx0aW4vcm0uYzoyNzQKIG1zZ2lkICJleGl0IHdpdGggYSB6ZXJvIHN0YXR1cyBldmVuIGlmIG5vdGhpbmcgbWF0Y2hlZCIKIG1zZ3N0ciAi5Y2z5L2/5rKh5pyJ5Yy56YWN77yM5Lmf5Lul6Zu254q25oCB6YCA5Ye6IgogCi0jOiBidWlsdGluL3JtLmM6MjgzCisjOiBidWlsdGluL3JtLmM6MzQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCByZW1vdmluZyAnJXMnIHJlY3Vyc2l2ZWx5IHdpdGhvdXQgLXIiCiBtc2dzdHIgIuacquaPkOS+myAtciDpgInpobnkuI3kvJrpgJLlvZLliKDpmaQgJyVzJyIKIAotIzogYnVpbHRpbi9ybS5jOjMyMgorIzogYnVpbHRpbi9ybS5jOjM4NAogIywgYy1mb3JtYXQKIG1zZ2lkICJnaXQgcm06IHVuYWJsZSB0byByZW1vdmUgJXMiCiBtc2dzdHIgImdpdCBybe+8muS4jeiDveWIoOmZpCAlcyIKIAogIzogYnVpbHRpbi9zaG9ydGxvZy5jOjEzCi1tc2dpZCAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW3Jldi1vcHRzXSBbLS1dIFs8Y29tbWl0LWlkPi4uLiBdIgotbXNnc3RyICJnaXQgc2hvcnRsb2cgWy1uXSBbLXNdIFstZV0gWy13XSBb54mI5pys6YCJ6aG5XSBbLS1dIFs85o+Q5Lqk5Y+3Pi4uLiBdIgorbXNnaWQgImdpdCBzaG9ydGxvZyBbPG9wdGlvbnM+XSBbPHJldmlzaW9uIHJhbmdlPl0gW1stLV0gWzxwYXRoPi4uLl1dIgorbXNnc3RyICJnaXQgc2hvcnRsb2cgWzzpgInpobk+XSBbPOeJiOacrOiMg+WbtD5dIFtbLS1dIFs86Lev5b6EPi4uLl1dIgogCi0jOiBidWlsdGluL3Nob3J0bG9nLmM6MTMzCisjOiBidWlsdGluL3Nob3J0bG9nLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1pc3NpbmcgYXV0aG9yOiAlcyIKIG1zZ3N0ciAi57y65bCR5L2c6ICF77yaJXMiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjkKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMjgKIG1zZ2lkICJzb3J0IG91dHB1dCBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBjb21taXRzIHBlciBhdXRob3IiCiBtc2dzdHIgIuagueaNruavj+S4quS9nOiAheeahOaPkOS6pOaVsOmHj+aOkuW6jyIKIAotIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMQorIzogYnVpbHRpbi9zaG9ydGxvZy5jOjIzMAogbXNnaWQgIlN1cHByZXNzIGNvbW1pdCBkZXNjcmlwdGlvbnMsIG9ubHkgcHJvdmlkZXMgY29tbWl0IGNvdW50IgogbXNnc3RyICLpmpDol4/mj5DkuqTor7TmmI7vvIzlj6rmj5Dkvpvmj5DkuqTmlbDph48iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzIKIG1zZ2lkICJTaG93IHRoZSBlbWFpbCBhZGRyZXNzIG9mIGVhY2ggYXV0aG9yIgogbXNnc3RyICLmmL7npLrmr4/kuKrkvZzogIXnmoTnlLXlrZDpgq7ku7blnLDlnYAiCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzMKIG1zZ2lkICJ3WyxpMVssaTJdXSIKIG1zZ3N0ciAid1ssaTFbLGkyXV0iCiAKLSM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzUKKyM6IGJ1aWx0aW4vc2hvcnRsb2cuYzoyMzQKIG1zZ2lkICJMaW5ld3JhcCBvdXRwdXQiCiBtc2dzdHIgIuaKmOihjOi+k+WHuiIKIApAQCAtODI4Nyw0NyArODcxOSw0NyBAQAogbXNnaWQgImdpdCBzaG93LWJyYW5jaCAoLWd8LS1yZWZsb2cpWz08bj5bLDxiYXNlPl1dIFstLWxpc3RdIFs8cmVmPl0iCiBtc2dzdHIgImdpdCBzaG93LWJyYW5jaCAoLWd8LS1yZWZsb2cpWz08bj5bLDxiYXNlPl1dIFstLWxpc3RdIFs8cmVmPl0iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTEKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTAKIG1zZ2lkICJzaG93IHJlbW90ZS10cmFja2luZyBhbmQgbG9jYWwgYnJhbmNoZXMiCiBtc2dzdHIgIuaYvuekuui/nOeoi+i3n+i4queahOWSjOacrOWcsOeahOWIhuaUryIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1MgogbXNnaWQgInNob3cgcmVtb3RlLXRyYWNraW5nIGJyYW5jaGVzIgogbXNnc3RyICLmmL7npLrov5znqIvot5/ouKrnmoTliIbmlK8iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTUKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NTQKIG1zZ2lkICJjb2xvciAnKiErLScgY29ycmVzcG9uZGluZyB0byB0aGUgYnJhbmNoIgogbXNnc3RyICLnnYDoibIgJyohKy0nIOWIsOebuOW6lOeahOWIhuaUryIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NworIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1NgogbXNnaWQgInNob3cgPG4+IG1vcmUgY29tbWl0cyBhZnRlciB0aGUgY29tbW9uIGFuY2VzdG9yIgogbXNnc3RyICLmmL7npLrlhbHlkIznpZblhYjlkI7nmoQgPG4+IOS4quaPkOS6pCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OQorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY1OAogbXNnaWQgInN5bm9ueW0gdG8gbW9yZT0tMSIKIG1zZ3N0ciAi5ZKMIG1vcmU9LTEg5ZCM5LmJIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjYwCisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6NjU5CiBtc2dpZCAic3VwcHJlc3MgbmFtaW5nIHN0cmluZ3MiCiBtc2dzdHIgIuS4jeaYvuekuuWtl+espuS4suWRveWQjSIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MgorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2MQogbXNnaWQgImluY2x1ZGUgdGhlIGN1cnJlbnQgYnJhbmNoIgogbXNnc3RyICLljIXmi6zlvZPliY3liIbmlK8iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjQKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NjMKIG1zZ2lkICJuYW1lIGNvbW1pdHMgd2l0aCB0aGVpciBvYmplY3QgbmFtZXMiCiBtc2dzdHIgIuS7peWvueixoeWQjeWtl+WRveWQjeaPkOS6pCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NgorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NQogbXNnaWQgInNob3cgcG9zc2libGUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIuaYvuekuuWPr+iDveWQiOW5tueahOWfuue6vyIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2NwogbXNnaWQgInNob3cgcmVmcyB1bnJlYWNoYWJsZSBmcm9tIGFueSBvdGhlciByZWYiCiBtc2dzdHIgIuaYvuekuuayoeacieS7u+S9leW8leeUqOeahOeahOW8leeUqCIKIAotIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3MAorIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY2OQogbXNnaWQgInNob3cgY29tbWl0cyBpbiB0b3BvbG9naWNhbCBvcmRlciIKIG1zZ3N0ciAi5Lul5ouT5omR6aG65bqP5pi+56S65o+Q5LqkIgogCkBAIC04MzQwLDE0ICs4NzcyLDE0IEBACiBtc2dzdHIgIuaYvuekuuS7heS4gOS4quWIhuaUr+WPr+iuv+mXrueahOWQiOW5tuaPkOS6pCIKIAogIzogYnVpbHRpbi9zaG93LWJyYW5jaC5jOjY3NgotbXNnaWQgInNob3cgY29tbWl0cyB3aGVyZSBubyBwYXJlbnQgY29tZXMgYmVmb3JlIGl0cyBjaGlsZHJlbiIKLW1zZ3N0ciAi5pi+56S65o+Q5Lqk5pe25Lul5pe26Ze05Li65bqP5LiU54i25o+Q5Lqk5LiN6IO96aKG5YWI5a2Q5o+Q5LqkIgorbXNnaWQgInRvcG9sb2dpY2FsbHkgc29ydCwgbWFpbnRhaW5pbmcgZGF0ZSBvcmRlciB3aGVyZSBwb3NzaWJsZSIKK21zZ3N0ciAi5ouT5omR5pa55byP5o6S5bqP77yM5bm25bC95Y+v6IO95Zyw5L+d5oyB5pel5pyf6aG65bqPIgogCi0jOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc4CisjOiBidWlsdGluL3Nob3ctYnJhbmNoLmM6Njc5CiBtc2dpZCAiPG4+Wyw8YmFzZT5dIgogbXNnc3RyICI8bj5bLDxiYXNlPl0iCiAKLSM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2NzkKKyM6IGJ1aWx0aW4vc2hvdy1icmFuY2guYzo2ODAKIG1zZ2lkICJzaG93IDxuPiBtb3N0IHJlY2VudCByZWYtbG9nIGVudHJpZXMgc3RhcnRpbmcgYXQgYmFzZSIKIG1zZ3N0ciAi5pi+56S65LuOIGJhc2Ug5byA5aeL55qEIDxuPiDmnaHmnIDov5HnmoTlvJXnlKjml6Xlv5forrDlvZUiCiAKQEAgLTgzNjMsMzUgKzg3OTUsMzUgQEAKIG1zZ2lkICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz1wYXR0ZXJuXSA8IHJlZi1saXN0IgogbXNnc3RyICJnaXQgc2hvdy1yZWYgLS1leGNsdWRlLWV4aXN0aW5nWz3mqKHlvI9dIDwg5byV55So5YiX6KGoIgogCi0jOiBidWlsdGluL3Nob3ctcmVmLmM6MTY1CisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTY4CiBtc2dpZCAib25seSBzaG93IHRhZ3MgKGNhbiBiZSBjb21iaW5lZCB3aXRoIGhlYWRzKSIKIG1zZ3N0ciAi5Y+q5pi+56S6IHRhZ3PvvIjlj6/ku6XlkozlpLTlhbHnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjYKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjkKIG1zZ2lkICJvbmx5IHNob3cgaGVhZHMgKGNhbiBiZSBjb21iaW5lZCB3aXRoIHRhZ3MpIgogbXNnc3RyICLlj6rmmL7npLrlpLTvvIjlj6/ku6XlkowgdGFncyDlhbHnlKjvvIkiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNjcKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAKIG1zZ2lkICJzdHJpY3RlciByZWZlcmVuY2UgY2hlY2tpbmcsIHJlcXVpcmVzIGV4YWN0IHJlZiBwYXRoIgogbXNnc3RyICLmm7TkuKXmoLznmoTlvJXnlKjmo4DmtYvvvIzpnIDopoHnsr7noa7nmoTlvJXnlKjot6/lvoQiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzAgYnVpbHRpbi9zaG93LXJlZi5jOjE3MgotbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgotbXNnc3RyICLmmL7npLogSEVBRCDlvJXnlKgiCisjOiBidWlsdGluL3Nob3ctcmVmLmM6MTczIGJ1aWx0aW4vc2hvdy1yZWYuYzoxNzYKK21zZ2lkICJzaG93IHRoZSBIRUFEIHJlZmVyZW5jZSwgZXZlbiBpZiBpdCB3b3VsZCBiZSBmaWx0ZXJlZCBvdXQiCittc2dzdHIgIuaYvuekuiBIRUFEIOW8leeUqO+8jOWNs+S9v+iiq+i/h+a7pOaOiSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NAorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3OAogbXNnaWQgImRlcmVmZXJlbmNlIHRhZ3MgaW50byBvYmplY3QgSURzIgogbXNnc3RyICLovazmjaIgdGFncyDliLDlr7nosaFJRCIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE3NgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MAogbXNnaWQgIm9ubHkgc2hvdyBTSEExIGhhc2ggdXNpbmcgPG4+IGRpZ2l0cyIKIG1zZ3N0ciAi5Y+q5pi+56S65L2/55SoIDxuPiDkuKrmlbDlrZfnmoQgU0hBMSDlk4jluIwiCiAKLSM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODAKKyM6IGJ1aWx0aW4vc2hvdy1yZWYuYzoxODQKIG1zZ2lkICJkbyBub3QgcHJpbnQgcmVzdWx0cyB0byBzdGRvdXQgKHVzZWZ1bCB3aXRoIC0tdmVyaWZ5KSIKIG1zZ3N0ciAi5LiN5omT5Y2w57uT5p6c5Yiw5qCH5YeG6L6T5Ye677yI5L6L5aaC5LiOIC0tdmVyaWZ5IOWPguaVsOWFseeUqO+8iSIKIAotIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4MgorIzogYnVpbHRpbi9zaG93LXJlZi5jOjE4NgogbXNnaWQgInNob3cgcmVmcyBmcm9tIHN0ZGluIHRoYXQgYXJlbid0IGluIGxvY2FsIHJlcG9zaXRvcnkiCiBtc2dzdHIgIuaYvuekuuS7juagh+WHhui+k+WFpeS4reivu+WFpeeahOS4jeWcqOacrOWcsOeJiOacrOW6k+S4reeahOW8leeUqCIKIApAQCAtODgwMywyMyArOTIzNSwzMiBAQAogbXNnaWQgIm9ubHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmciCiBtc2dzdHIgIuWPquWvueiwg+ivleacieeUqCIKIAotIzogZ2l0LmM6MTYKLW1zZ2lkICJTZWUgJ2dpdCBoZWxwIDxjb21tYW5kPicgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYSBzcGVjaWZpYyBjb21tYW5kLiIKLW1zZ3N0ciAi5Y+C6KeBICdnaXQgaGVscCA8Y29tbWFuZD4nIOS7peiOt+W+l+ivpeeJueWumuWRveS7pOeahOivpue7huS/oeaBr+OAgiIKKyM6IGdpdC5jOjE3Cittc2dpZCAiIgorIidnaXQgaGVscCAtYScgYW5kICdnaXQgaGVscCAtZycgbGlzdHMgYXZhaWxhYmxlIHN1YmNvbW1hbmRzIGFuZCBzb21lXG4iCisiY29uY2VwdCBndWlkZXMuIFNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBvciAnZ2l0IGhlbHAgPGNvbmNlcHQ+J1xuIgorInRvIHJlYWQgYWJvdXQgYSBzcGVjaWZpYyBzdWJjb21tYW5kIG9yIGNvbmNlcHQuIgorbXNnc3RyICIiCisi5ZG95LukICdnaXQgaGVscCAtYScg5ZKMICdnaXQgaGVscCAtZycg5pi+56S65Y+v55So55qE5a2Q5ZG95Luk5ZKM5LiA5Lqb5oyH5Y2X44CC5Y+C6KeBXG4iCisiJ2dpdCBoZWxwIDzlkb3ku6Q+JyDmiJYgJ2dpdCBoZWxwIDzmjIfljZc+JyDmnaXmn6XnnIvnu5nlrprnmoTlrZDlkb3ku6TluK7liqnmiJbmjIfljZfjgIIiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoxNTYKKyM6IHBhcnNlLW9wdGlvbnMuaDoxNDQKK21zZ2lkICJleHBpcnkgZGF0ZSIKK21zZ3N0ciAi6YC+5pyf5pel5pyfIgorCisjOiBwYXJzZS1vcHRpb25zLmg6MTU5CiBtc2dpZCAibm8tb3AgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpIgogbXNnc3RyICLnqbrmk43kvZzvvIjlkJHlkI7lhbzlrrnvvIkiCiAKLSM6IHBhcnNlLW9wdGlvbnMuaDoyMzIKKyM6IHBhcnNlLW9wdGlvbnMuaDoyMzYKIG1zZ2lkICJiZSBtb3JlIHZlcmJvc2UiCiBtc2dzdHIgIuabtOWKoOivpue7hiIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjIzNAorIzogcGFyc2Utb3B0aW9ucy5oOjIzOAogbXNnaWQgImJlIG1vcmUgcXVpZXQiCiBtc2dzdHIgIuabtOWKoOWuiemdmSIKIAotIzogcGFyc2Utb3B0aW9ucy5oOjI0MAorIzogcGFyc2Utb3B0aW9ucy5oOjI0NAogbXNnaWQgInVzZSA8bj4gZGlnaXRzIHRvIGRpc3BsYXkgU0hBLTFzIgogbXNnc3RyICLnlKggPG4+IOS9jeaVsOWtl+aYvuekuiBTSEEtMSDlk4jluIzlgLwiCiAKQEAgLTg4NzYsOCArOTMxNyw4IEBACiBtc2dzdHIgIuenu+WKqOaIlumHjeWRveWQjeS4gOS4quaWh+S7tuOAgeebruW9leaIluespuWPt+mTvuaOpSIKIAogIzogY29tbW9uLWNtZHMuaDoyMQotbXNnaWQgIkZldGNoIGZyb20gYW5kIG1lcmdlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgotbXNnc3RyICLojrflj5blubblkIjlubblj6blpJbnmoTniYjmnKzlupPmiJbkuIDkuKrmnKzlnLDliIbmlK8iCittc2dpZCAiRmV0Y2ggZnJvbSBhbmQgaW50ZWdyYXRlIHdpdGggYW5vdGhlciByZXBvc2l0b3J5IG9yIGEgbG9jYWwgYnJhbmNoIgorbXNnc3RyICLojrflj5blubbmlbTlkIjlj6blpJbnmoTniYjmnKzlupPmiJbkuIDkuKrmnKzlnLDliIbmlK8iCiAKICM6IGNvbW1vbi1jbWRzLmg6MjIKIG1zZ2lkICJVcGRhdGUgcmVtb3RlIHJlZnMgYWxvbmcgd2l0aCBhc3NvY2lhdGVkIG9iamVjdHMiCkBAIC04OTIwLDExICs5MzYxLDExIEBACiAjOiBnaXQtYW0uc2g6MTA1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iV2hlbiB5b3UgaGF2ZSByZXNvbHZlZCB0aGlzIHByb2JsZW0sIHJ1biBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIi5cbiIKKyJXaGVuIHlvdSBoYXZlIHJlc29sdmVkIHRoaXMgcHJvYmxlbSwgcnVuIFwiJGNtZGxpbmUgLS1jb250aW51ZVwiLlxuIgogIklmIHlvdSBwcmVmZXIgdG8gc2tpcCB0aGlzIHBhdGNoLCBydW4gXCIkY21kbGluZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgogIlRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCBhbmQgc3RvcCBwYXRjaGluZywgcnVuIFwiJGNtZGxpbmUgLS1hYm9ydFwiLiIKIG1zZ3N0ciAiIgotIuW9k+aCqOino+WGs+S6huatpOmXrumimOWQju+8jOaJp+ihjCBcIiRjbWRsaW5lIC0tcmVzb2x2ZWRcIuOAglxuIgorIuW9k+aCqOino+WGs+S6huatpOmXrumimOWQju+8jOaJp+ihjCBcIiRjbWRsaW5lIC0tY29udGludWVcIuOAglxuIgogIuWmguaenOaCqOaDs+i3s+i/h+atpOihpeS4ge+8jOWImeaJp+ihjCBcIiRjbWRsaW5lIC0tc2tpcFwi44CCXG4iCiAi6KaB5oGi5aSN5Y6f5YiG5pSv5bm25YGc5q2i5omT6KGl5LiB77yM5omn6KGMIFwiJGNtZGxpbmUgLS1hYm9ydFwi44CCIgogCkBAIC04OTc3LDI1ICs5NDE4LDM0IEBACiAi5Y+C5pWwIC1iLy0tYmluYXJ5IOW3sue7j+W+iOmVv+aXtumXtOS4jeWBmuS7u+S9leWunui0qOaTjeS9nOS6hu+8jOW5tuS4lOWwhuiiq+WIoOmZpOOAglxuIgogIuivt+S4jeimgeWGjeS9v+eUqOWug+S6huOAgiIKIAotIzogZ2l0LWFtLnNoOjQ3NworIzogZ2l0LWFtLnNoOjQ3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAicHJldmlvdXMgcmViYXNlIGRpcmVjdG9yeSAkZG90ZXN0IHN0aWxsIGV4aXN0cyBidXQgbWJveCBnaXZlbi4iCi1tc2dzdHIgIuS5i+WJjeeahOWPmOWfuuebruW9lSAkZG90ZXN0IOS7jeeEtuWtmOWcqOS9hue7meWHuuS6hm1ib3jjgIIiCittc2dzdHIgIuS5i+WJjeeahOWPmOWfuuebruW9lSAkZG90ZXN0IOS7jeeEtuWtmOWcqO+8jOS9huWNtOaPkOS+m+S6hiBtYm9444CCIgogCi0jOiBnaXQtYW0uc2g6NDgyCisjOiBnaXQtYW0uc2g6NDg0CiBtc2dpZCAiUGxlYXNlIG1ha2UgdXAgeW91ciBtaW5kLiAtLXNraXAgb3IgLS1hYm9ydD8iCiBtc2dzdHIgIuivt+S4i+WGs+W/g+OAgi0tc2tpcCDmiJbmmK8gLS1hYm9ydCDvvJ8iCiAKLSM6IGdpdC1hbS5zaDo1MDkKKyM6IGdpdC1hbS5zaDo1MjAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIiIKKyJTdHJheSAkZG90ZXN0IGRpcmVjdG9yeSBmb3VuZC5cbiIKKyJVc2UgXCJnaXQgYW0gLS1hYm9ydFwiIHRvIHJlbW92ZSBpdC4iCittc2dzdHIgIiIKKyLlj5HnjrDkuobplJnor6/nmoQgJGRvdGVzdCDnm67lvZXjgIJcbiIKKyLkvb/nlKggXCJnaXQgYW0gLS1hYm9ydFwiIOWIoOmZpOWug+OAgiIKKworIzogZ2l0LWFtLnNoOjUyOAogbXNnaWQgIlJlc29sdmUgb3BlcmF0aW9uIG5vdCBpbiBwcm9ncmVzcywgd2UgYXJlIG5vdCByZXN1bWluZy4iCiBtc2dzdHIgIuino+WGs+aTjeS9nOacqui/m+ihjO+8jOaIkeS7rOS4jeS8mue7p+e7reOAgiIKIAotIzogZ2l0LWFtLnNoOjU3NQorIzogZ2l0LWFtLnNoOjU5NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiRGlydHkgaW5kZXg6IGNhbm5vdCBhcHBseSBwYXRjaGVzIChkaXJ0eTogJGZpbGVzKSIKIG1zZ3N0ciAi6ISP55qE57Si5byV77ya5LiN6IO95bqU55So6KGl5LiB77yI6ISP5paH5Lu277yaJGZpbGVz77yJIgogCi0jOiBnaXQtYW0uc2g6Njc5CisjOiBnaXQtYW0uc2g6Njk4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiUGF0Y2ggaXMgZW1wdHkuICBXYXMgaXQgc3BsaXQgd3Jvbmc/XG4iCkBAIC05MDA2LDE1ICs5NDU2LDE1IEBACiAi5aaC5p6c5oKo5oOz6KaB6Lez6L+H6L+Z5Liq6KGl5LiB77yM5omn6KGMIFwiJGNtZGxpbmUgLS1za2lwXCLjgIJcbiIKICLopoHmgaLlpI3ljp/liIbmlK/lubblgZzmraLmiZPooaXkuIHvvIzmiafooYwgXCIkY21kbGluZSAtLWFib3J0XCLjgIIiCiAKLSM6IGdpdC1hbS5zaDo3MDYKKyM6IGdpdC1hbS5zaDo3MjUKIG1zZ2lkICJQYXRjaCBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuIgogbXNnc3RyICLooaXkuIHkuK3msqHmnInkuIDkuKrmnInmlYjnmoTpgq7ku7blnLDlnYDjgIIiCiAKLSM6IGdpdC1hbS5zaDo3NTMKKyM6IGdpdC1hbS5zaDo3NzIKIG1zZ2lkICJjYW5ub3QgYmUgaW50ZXJhY3RpdmUgd2l0aG91dCBzdGRpbiBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbC4iCiBtc2dzdHIgIuagh+WHhui+k+WFpeayoeacieWSjOe7iOerr+WFs+iBlO+8jOS4jeiDvei/m+ihjOS6pOS6kuW8j+aTjeS9nOOAgiIKIAotIzogZ2l0LWFtLnNoOjc1NworIzogZ2l0LWFtLnNoOjc3NgogbXNnaWQgIkNvbW1pdCBCb2R5IGlzOiIKIG1zZ3N0ciAi5o+Q5Lqk5YaF5a655Li677yaIgogCkBAIC05MDIyLDE2ICs5NDcyLDE2IEBACiAjLiBUUkFOU0xBVE9SUzogTWFrZSBzdXJlIHRvIGluY2x1ZGUgW3ldLCBbbl0sIFtlXSwgW3ZdIGFuZCBbYV0KICMuIGluIHlvdXIgdHJhbnNsYXRpb24uIFRoZSBwcm9ncmFtIHdpbGwgb25seSBhY2NlcHQgRW5nbGlzaAogIy4gaW5wdXQgYXQgdGhpcyBwb2ludC4KLSM6IGdpdC1hbS5zaDo3NjQKKyM6IGdpdC1hbS5zaDo3ODMKIG1zZ2lkICJBcHBseT8gW3ldZXMvW25dby9bZV1kaXQvW3ZdaWV3IHBhdGNoL1thXWNjZXB0IGFsbCAiCiBtc2dzdHIgIuW6lOeUqO+8n1t5XWVzL1tuXW8vW2VdZGl0L1t2XWlldyBwYXRjaC9bYV1jY2VwdCBhbGwgIgogCi0jOiBnaXQtYW0uc2g6ODAwCisjOiBnaXQtYW0uc2g6ODE5CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJBcHBseWluZzogJEZJUlNUTElORSIKIG1zZ3N0ciAi5q2j5bqU55So77yaJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjgyMQorIzogZ2l0LWFtLnNoOjg0MAogbXNnaWQgIiIKICJObyBjaGFuZ2VzIC0gZGlkIHlvdSBmb3JnZXQgdG8gdXNlICdnaXQgYWRkJz9cbiIKICJJZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gc3RhZ2UsIGNoYW5jZXMgYXJlIHRoYXQgc29tZXRoaW5nIGVsc2VcbiIKQEAgLTkwNDEsMjIgKzk0OTEsMjIgQEAKICLlpoLmnpzmsqHmnInku4DkuYjopoHmt7vliqDliLDmmoLlrZjljLrnmoTvvIzliJnlvojlj6/og73mmK/lhbblroPmj5DkuqTlt7Lnu4/lvJXlhaXkuobnm7jlkIznmoTlj5jmm7TjgIJcbiIKICLmgqjkuZ/orrjmg7PopoHot7Pov4fov5nkuKrooaXkuIHjgIIiCiAKLSM6IGdpdC1hbS5zaDo4MjkKKyM6IGdpdC1hbS5zaDo4NDgKIG1zZ2lkICIiCiAiWW91IHN0aWxsIGhhdmUgdW5tZXJnZWQgcGF0aHMgaW4geW91ciBpbmRleFxuIgogImRpZCB5b3UgZm9yZ2V0IHRvIHVzZSAnZ2l0IGFkZCc/IgogbXNnc3RyICLmgqjnmoTntKLlvJXkuK3ku43mnInmnKrlkIjlubbnmoTot6/lvoTjgILmgqjmmK/lkKblv5jkuobmiafooYwgJ2dpdCBhZGQn77yfIgogCi0jOiBnaXQtYW0uc2g6ODQ1CisjOiBnaXQtYW0uc2g6ODY0CiBtc2dpZCAiTm8gY2hhbmdlcyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgogbXNnc3RyICLmsqHmnInlj5jmm7Qg4oCU4oCUIOihpeS4geW3sue7j+W6lOeUqOi/h+OAgiIKIAotIzogZ2l0LWFtLnNoOjg1NQorIzogZ2l0LWFtLnNoOjg3NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiUGF0Y2ggZmFpbGVkIGF0ICRtc2dudW0gJEZJUlNUTElORSIKIG1zZ3N0ciAi6KGl5LiB5aSx6LSl5LqOICRtc2dudW0gJEZJUlNUTElORSIKIAotIzogZ2l0LWFtLnNoOjg1OAorIzogZ2l0LWFtLnNoOjg3NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBjb3B5IG9mIHRoZSBwYXRjaCB0aGF0IGZhaWxlZCBpcyBmb3VuZCBpbjpcbiIKQEAgLTkwNjUsNyArOTUxNSw3IEBACiAi5aSx6LSl55qE6KGl5LiB5paH5Lu25Ymv5pys5L2N5LqO77yaXG4iCiAiICAgJGRvdGVzdC9wYXRjaCIKIAotIzogZ2l0LWFtLnNoOjg3NgorIzogZ2l0LWFtLnNoOjg5NQogbXNnaWQgImFwcGx5aW5nIHRvIGFuIGVtcHR5IGhpc3RvcnkiCiBtc2dzdHIgIuato+W6lOeUqOWIsOS4gOS4quepuuWOhuWPsuS4iiIKIApAQCAtOTE2NCwxNiArOTYxNCwxNiBAQAogIueEtuWQjumcgOimgeaPkOS+m+aIkeiHs+WwkeS4gOS4quWlveeJiOacrOWSjOS4gOS4quWdj+eJiOacrOOAglxuIgogIu+8iOaCqOWPr+S7peeUqCBcImdpdCBiaXNlY3QgYmFkXCIg5ZKMIFwiZ2l0IGJpc2VjdCBnb29kXCIg5ZG95Luk5p2l5qCH6K+G44CC77yJIgogCi0jOiBnaXQtYmlzZWN0LnNoOjM0NyBnaXQtYmlzZWN0LnNoOjQ3NAorIzogZ2l0LWJpc2VjdC5zaDozNjMgZ2l0LWJpc2VjdC5zaDo0OTAKIG1zZ2lkICJXZSBhcmUgbm90IGJpc2VjdGluZy4iCiBtc2dzdHIgIuaIkeS7rOayoeacieWcqOS6jOWIhuafpeaJvuOAgiIKIAotIzogZ2l0LWJpc2VjdC5zaDozNTQKKyM6IGdpdC1iaXNlY3Quc2g6MzcwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJGludmFsaWQnIGlzIG5vdCBhIHZhbGlkIGNvbW1pdCIKIG1zZ3N0ciAiJyRpbnZhbGlkJyDkuI3mmK/kuIDkuKrmnInmlYjnmoTmj5DkuqQiCiAKLSM6IGdpdC1iaXNlY3Quc2g6MzYzCisjOiBnaXQtYmlzZWN0LnNoOjM3OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIkNvdWxkIG5vdCBjaGVjayBvdXQgb3JpZ2luYWwgSEVBRCAnJGJyYW5jaCcuXG4iCkBAIC05MTgyLDI1ICs5NjMyLDI1IEBACiAi5LiN6IO95qOA5Ye65Y6f5aeLIEhFQUQgJyRicmFuY2gn44CCXG4iCiAi5bCd6K+VICdnaXQgYmlzZWN0IHJlc2V0IDzmj5DkuqQ+J+OAgiIKIAotIzogZ2l0LWJpc2VjdC5zaDozOTAKKyM6IGdpdC1iaXNlY3Quc2g6NDA2CiBtc2dpZCAiTm8gbG9nZmlsZSBnaXZlbiIKIG1zZ3N0ciAi5pyq5o+Q5L6b5pel5b+X5paH5Lu2IgogCi0jOiBnaXQtYmlzZWN0LnNoOjM5MQorIzogZ2l0LWJpc2VjdC5zaDo0MDcKICMsIHNoLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICRmaWxlIGZvciByZXBsYXlpbmciCiBtc2dzdHIgIuS4jeiDveivu+WPliAkZmlsZSDmnaXph43mlL4iCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDA4CisjOiBnaXQtYmlzZWN0LnNoOjQyNAogbXNnaWQgIj8/IHdoYXQgYXJlIHlvdSB0YWxraW5nIGFib3V0PyIKIG1zZ3N0ciAiPz8g5oKo5Zyo6K+05LuA5LmIPyIKIAotIzogZ2l0LWJpc2VjdC5zaDo0MjAKKyM6IGdpdC1iaXNlY3Quc2g6NDM2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJydW5uaW5nICRjb21tYW5kIgogbXNnc3RyICLov5DooYwgJGNvbW1hbmQiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDI3CisjOiBnaXQtYmlzZWN0LnNoOjQ0MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImJpc2VjdCBydW4gZmFpbGVkOlxuIgpAQCAtOTIwOSwxMSArOTY1OSwxMSBAQAogIuS6jOWIhuafpeaJvui/kOihjOWksei0pe+8mlxuIgogIuWRveS7pCAnJGNvbW1hbmQnIOeahOmAgOWHuueggSAkcmVzIOWwj+S6jiAwIOaIluWkp+S6juetieS6jiAxMjgiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDUzCisjOiBnaXQtYmlzZWN0LnNoOjQ2OQogbXNnaWQgImJpc2VjdCBydW4gY2Fubm90IGNvbnRpbnVlIGFueSBtb3JlIgogbXNnc3RyICLkuozliIbmn6Xmib7kuI3og73nu6fnu63ov5DooYwiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDU5CisjOiBnaXQtYmlzZWN0LnNoOjQ3NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogImJpc2VjdCBydW4gZmFpbGVkOlxuIgpAQCAtOTIyMiw3ICs5NjcyLDcgQEAKICLkuozliIbmn6Xmib7ov5DooYzlpLHotKXvvJpcbiIKICInYmlzZWN0X3N0YXRlICRzdGF0ZScg6YCA5Ye656CB5Li6ICRyZXMiCiAKLSM6IGdpdC1iaXNlY3Quc2g6NDY2CisjOiBnaXQtYmlzZWN0LnNoOjQ4MgogbXNnaWQgImJpc2VjdCBydW4gc3VjY2VzcyIKIG1zZ3N0ciAi5LqM5YiG5p+l5om+6L+Q6KGM5oiQ5YqfIgogCkBAIC05MjY2LDcgKzk3MTYsNyBAQAogbXNnaWQgIkNhbm5vdCByZWJhc2Ugb250byBtdWx0aXBsZSBicmFuY2hlcyIKIG1zZ3N0ciAi5peg5rOV5Y+Y5Z+65Yiw5aSa5Liq5YiG5pSvIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzCisjOiBnaXQtcmViYXNlLnNoOjU0CiBtc2dpZCAiIgogIldoZW4geW91IGhhdmUgcmVzb2x2ZWQgdGhpcyBwcm9ibGVtLCBydW4gXCJnaXQgcmViYXNlIC0tY29udGludWVcIi5cbiIKICJJZiB5b3UgcHJlZmVyIHRvIHNraXAgdGhpcyBwYXRjaCwgcnVuIFwiZ2l0IHJlYmFzZSAtLXNraXBcIiBpbnN0ZWFkLlxuIgpAQCAtOTI3NywzMSArOTcyNyw1MCBAQAogIuWmguaenOaCqOaDs+i3s+i/h+atpOihpeS4ge+8jOWImeaJp+ihjCBcImdpdCByZWJhc2UgLS1za2lwXCLjgIJcbiIKICLopoHmgaLlpI3ljp/liIbmlK/lubblgZzmraLlj5jln7rvvIzmiafooYwgXCJnaXQgcmViYXNlIC0tYWJvcnRcIuOAgiIKIAorIzogZ2l0LXJlYmFzZS5zaDoxNTYKK21zZ2lkICJBcHBsaWVkIGF1dG9zdGFzaC4iCittc2dzdHIgIuaIkOWKn+W6lOeUqCBhdXRvc3Rhc2jjgIIiCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTU5CisjLCBzaC1mb3JtYXQKK21zZ2lkICJDYW5ub3Qgc3RvcmUgJHN0YXNoX3NoYTEiCittc2dzdHIgIuaXoOazleS/neWtmCAkc3Rhc2hfc2hhMSIKKwogIzogZ2l0LXJlYmFzZS5zaDoxNjAKK21zZ2lkICIiCisiQXBwbHlpbmcgYXV0b3N0YXNoIHJlc3VsdGVkIGluIGNvbmZsaWN0cy5cbiIKKyJZb3VyIGNoYW5nZXMgYXJlIHNhZmUgaW4gdGhlIHN0YXNoLlxuIgorIllvdSBjYW4gcnVuIFwiZ2l0IHN0YXNoIHBvcFwiIG9yIFwiZ2l0IHN0YXNoIGRyb3BcIiBhdCBhbnkgdGltZS5cbiIKK21zZ3N0ciAiIgorIuW6lOeUqCBhdXRvc3Rhc2gg5a+86Ie05Yay56qB44CCXG4iCisi5oKo55qE5L+u5pS55a6J5YWo5Zyw5L+d5a2Y5ZyoIHN0YXNoIOS4reOAglxuIgorIuaCqOWPr+S7peWcqOS7u+S9leaXtuWAmei/kOihjCBcImdpdCBzdGFzaCBwb3BcIiDmiJYgXCJnaXQgc3Rhc2ggZHJvcFwi44CCXG4iCisKKyM6IGdpdC1yZWJhc2Uuc2g6MTkwCiBtc2dpZCAiVGhlIHByZS1yZWJhc2UgaG9vayByZWZ1c2VkIHRvIHJlYmFzZS4iCiBtc2dzdHIgIumSqeWtkCBwcmUtcmViYXNlIOaLkue7neWPmOWfuuOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDoxNjUKKyM6IGdpdC1yZWJhc2Uuc2g6MTk1CiBtc2dpZCAiSXQgbG9va3MgbGlrZSBnaXQtYW0gaXMgaW4gcHJvZ3Jlc3MuIENhbm5vdCByZWJhc2UuIgogbXNnc3RyICLkvLzkuY7mraPlpITkuo7lnKggZ2l0LWFtIOeahOaJp+ihjOi/h+eoi+S4reOAguaXoOazleWPmOWfuuOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDoyOTYKKyM6IGdpdC1yZWJhc2Uuc2g6MzI5CiBtc2dpZCAiVGhlIC0tZXhlYyBvcHRpb24gbXVzdCBiZSB1c2VkIHdpdGggdGhlIC0taW50ZXJhY3RpdmUgb3B0aW9uIgogbXNnc3RyICLpgInpobkgLS1leGVjIOW/hemhu+WSjOmAiemhuSAtLWludGVyYWN0aXZlIOWQjOaXtuS9v+eUqCIKIAotIzogZ2l0LXJlYmFzZS5zaDozMDEKKyM6IGdpdC1yZWJhc2Uuc2g6MzM0CiBtc2dpZCAiTm8gcmViYXNlIGluIHByb2dyZXNzPyIKIG1zZ3N0ciAi5rKh5pyJ5q2j5Zyo6L+b6KGM55qE5Y+Y5Z+677yfIgogCi0jOiBnaXQtcmViYXNlLnNoOjMxMgorIzogZ2l0LXJlYmFzZS5zaDozNDUKIG1zZ2lkICJUaGUgLS1lZGl0LXRvZG8gYWN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGludGVyYWN0aXZlIHJlYmFzZS4iCiBtc2dzdHIgIuWKqOS9nCAtLWVkaXQtdG9kbyDlj6rog73nlKjlnKjkuqTkupLlvI/lj5jln7rov4fnqIvkuK3jgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzE5CisjOiBnaXQtcmViYXNlLnNoOjM1MgogbXNnaWQgIkNhbm5vdCByZWFkIEhFQUQiCiBtc2dzdHIgIuS4jeiDveivu+WPliBIRUFEIgogCi0jOiBnaXQtcmViYXNlLnNoOjMyMgorIzogZ2l0LXJlYmFzZS5zaDozNTUKIG1zZ2lkICIiCiAiWW91IG11c3QgZWRpdCBhbGwgbWVyZ2UgY29uZmxpY3RzIGFuZCB0aGVuXG4iCiAibWFyayB0aGVtIGFzIHJlc29sdmVkIHVzaW5nIGdpdCBhZGQiCkBAIC05MzA5LDEyICs5Nzc4LDEyIEBACiAi5oKo5b+F6aG757yW6L6R5omA5pyJ55qE5ZCI5bm25Yay56qB77yM54S25ZCO6YCa6L+HIGdpdCBhZGRcbiIKICLlkb3ku6TlsIblroPku6zmoIforrDkuLrlt7Lop6PlhrMiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6MzQwCisjOiBnaXQtcmViYXNlLnNoOjM3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ291bGQgbm90IG1vdmUgYmFjayB0byAkaGVhZF9uYW1lIgogbXNnc3RyICLml6Dms5Xnp7vlm54gJGhlYWRfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDozNTkKKyM6IGdpdC1yZWJhc2Uuc2g6MzkyCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSXQgc2VlbXMgdGhhdCB0aGVyZSBpcyBhbHJlYWR5IGEgJHN0YXRlX2Rpcl9iYXNlIGRpcmVjdG9yeSwgYW5kXG4iCkBAIC05MzMzLDU2ICs5ODAyLDY1IEBACiAiXHQkY21kX2NsZWFyX3N0YWxlX3JlYmFzZVxuIgogIueEtuWQjuWGjemHjeaWsOaJp+ihjOWPmOWfuuOAguS4uumBv+WFjeaCqOS4ouWksemHjeimgeaVsOaNru+8jOaIkeW3sue7j+WBnOatouW9k+WJjeaTjeS9nOOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MDQKKyM6IGdpdC1yZWJhc2Uuc2g6NDM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJpbnZhbGlkIHVwc3RyZWFtICR1cHN0cmVhbV9uYW1lIgogbXNnc3RyICLml6DmlYjnmoTkuIrmuLggJHVwc3RyZWFtX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDI4CisjOiBnaXQtcmViYXNlLnNoOjQ2MQogIywgc2gtZm9ybWF0CiBtc2dpZCAiJG9udG9fbmFtZTogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgbWVyZ2UgYmFzZXMiCiBtc2dzdHIgIiRvbnRvX25hbWU6IOacieS4gOS4quS7peS4iueahOWQiOW5tuWfuuWHhiIKIAotIzogZ2l0LXJlYmFzZS5zaDo0MzEgZ2l0LXJlYmFzZS5zaDo0MzUKKyM6IGdpdC1yZWJhc2Uuc2g6NDY0IGdpdC1yZWJhc2Uuc2g6NDY4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIkb250b19uYW1lOiB0aGVyZSBpcyBubyBtZXJnZSBiYXNlIgogbXNnc3RyICIkb250b19uYW1lOiDmsqHmnInlkIjlubbln7rlh4YiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDQwCisjOiBnaXQtcmViYXNlLnNoOjQ3MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiRG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBjb21taXQ6ICRvbnRvX25hbWUiCiBtc2dzdHIgIuayoeacieaMh+WQkeS4gOS4quacieaViOeahOaPkOS6pO+8miRvbnRvX25hbWUiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NDYzCisjOiBnaXQtcmViYXNlLnNoOjQ5NgogIywgc2gtZm9ybWF0CiBtc2dpZCAiZmF0YWw6IG5vIHN1Y2ggYnJhbmNoOiAkYnJhbmNoX25hbWUiCiBtc2dzdHIgIuS4pemHjemUmeivr++8muaXoOatpOWIhuaUr++8miRicmFuY2hfbmFtZSIKIAotIzogZ2l0LXJlYmFzZS5zaDo0ODMKKyM6IGdpdC1yZWJhc2Uuc2g6NTE5Cittc2dpZCAiQ2Fubm90IGF1dG9zdGFzaCIKK21zZ3N0ciAi5peg5rOVIGF1dG9zdGFzaCIKKworIzogZ2l0LXJlYmFzZS5zaDo1MjQKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNyZWF0ZWQgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgorbXNnc3RyICLliJvlu7rkuoYgYXV0b3N0YXNoOiAkc3Rhc2hfYWJicmV2IgorCisjOiBnaXQtcmViYXNlLnNoOjUyOAogbXNnaWQgIlBsZWFzZSBjb21taXQgb3Igc3Rhc2ggdGhlbS4iCiBtc2dzdHIgIuivt+aPkOS6pOaIluS4uuWug+S7rOS/neWtmOi/m+W6puOAgiIKIAotIzogZ2l0LXJlYmFzZS5zaDo1MDEKKyM6IGdpdC1yZWJhc2Uuc2g6NTQ4CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJDdXJyZW50IGJyYW5jaCAkYnJhbmNoX25hbWUgaXMgdXAgdG8gZGF0ZS4iCiBtc2dzdHIgIuW9k+WJjeWIhuaUryAkYnJhbmNoX25hbWUg5piv5pyA5paw55qE44CCIgogCi0jOiBnaXQtcmViYXNlLnNoOjUwNAorIzogZ2l0LXJlYmFzZS5zaDo1NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgYnJhbmNoICRicmFuY2hfbmFtZSBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkLiIKIG1zZ3N0ciAi5b2T5YmN5YiG5pSvICRicmFuY2hfbmFtZSDmmK/mnIDmlrDnmoTvvIzlvLrliLblj5jln7rjgIIiCiAKLSM6IGdpdC1yZWJhc2Uuc2g6NTE1CisjOiBnaXQtcmViYXNlLnNoOjU2MwogIywgc2gtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlcyBmcm9tICRtYiB0byAkb250bzoiCiBtc2dzdHIgIuWPmOabtOS7jiAkbWIg5YiwICRvbnRv77yaIgogCiAjLiBEZXRhY2ggSEVBRCBhbmQgcmVzZXQgdGhlIHRyZWUKLSM6IGdpdC1yZWJhc2Uuc2g6NTI0CisjOiBnaXQtcmViYXNlLnNoOjU3MgogbXNnaWQgIkZpcnN0LCByZXdpbmRpbmcgaGVhZCB0byByZXBsYXkgeW91ciB3b3JrIG9uIHRvcCBvZiBpdC4uLiIKIG1zZ3N0ciAi6aaW5YWI77yM6YeN572u5aS05oyH6ZKI5Lul5L6/5Zyo5LiK6Z2i6YeN5pS+5oKo55qE5bel5L2cLi4uIgogCi0jOiBnaXQtcmViYXNlLnNoOjUzMgorIzogZ2l0LXJlYmFzZS5zaDo1ODIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhc3QtZm9yd2FyZGVkICRicmFuY2hfbmFtZSB0byAkb250b19uYW1lLiIKIG1zZ3N0ciAi5b+r6L+bICRicmFuY2hfbmFtZSDoh7MgJG9udG9fbmFtZeOAgiIKQEAgLTk0MTUsNiArOTg5MywxMSBAQAogbXNnaWQgIkNhbm5vdCByZWNvcmQgd29ya2luZyB0cmVlIHN0YXRlIgogbXNnc3RyICLkuI3og73orrDlvZXlt6XkvZzljLrnirbmgIEiCiAKKyM6IGdpdC1zdGFzaC5zaDoxOTAKKyMsIHNoLWZvcm1hdAorbXNnaWQgIkNhbm5vdCB1cGRhdGUgJHJlZl9zdGFzaCB3aXRoICR3X2NvbW1pdCIKK21zZ3N0ciAi5peg5rOV55SoICR3X2NvbW1pdCDmm7TmlrAgJHJlZl9zdGFzaCIKKwogIy4gVFJBTlNMQVRPUlM6ICRvcHRpb24gaXMgYW4gaW52YWxpZCBvcHRpb24sIGxpa2UKICMuIGAtLWJsYWgtYmxhaCcuIFRoZSA3IHNwYWNlcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQogIy4gc2Vjb25kIGxpbmUgY29ycmVzcG9uZCB0byAiZXJyb3I6ICIuIFNvIHlvdSBzaG91bGQgbGluZQpAQCAtOTQyNSw3ICs5OTA4LDcgQEAKICMuICQgZ2l0IHN0YXNoIHNhdmUgLS1ibGFoLWJsYWggMj4mMSB8IGhlYWQgLW4gMgogIy4gZXJyb3I6IHVua25vd24gb3B0aW9uIGZvciAnc3Rhc2ggc2F2ZSc6IC0tYmxhaC1ibGFoCiAjLiBUbyBwcm92aWRlIGEgbWVzc2FnZSwgdXNlIGdpdCBzdGFzaCBzYXZlIC0tICctLWJsYWgtYmxhaCcKLSM6IGdpdC1zdGFzaC5zaDoyMDIKKyM6IGdpdC1zdGFzaC5zaDoyNDEKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICJlcnJvcjogdW5rbm93biBvcHRpb24gZm9yICdzdGFzaCBzYXZlJzogJG9wdGlvblxuIgpAQCAtOTQzNCwxMTkgKzk5MTcsMTM0IEBACiAi6ZSZ6K+v77yaJ3N0YXNoIHNhdmUnIOeahOacquefpemAiemhue+8miRvcHRpb25cbiIKICIgICAgICDopoHmj5DkvpvkuIDkuKrmj4/ov7Dkv6Hmga/vvIzkvb/nlKggZ2l0IHN0YXNoIHNhdmUgLS0gJyRvcHRpb24nIgogCi0jOiBnaXQtc3Rhc2guc2g6MjIzCisjOiBnaXQtc3Rhc2guc2g6MjYyCiBtc2dpZCAiTm8gbG9jYWwgY2hhbmdlcyB0byBzYXZlIgogbXNnc3RyICLmsqHmnInopoHkv53lrZjnmoTmnKzlnLDkv67mlLkiCiAKLSM6IGdpdC1zdGFzaC5zaDoyMjcKKyM6IGdpdC1zdGFzaC5zaDoyNjgKK21zZ2lkICIiCisiVGhlIGZvbGxvd2luZyB1bnRyYWNrZWQgZmlsZXMgd291bGQgTk9UIGJlIHNhdmVkIGJ1dCBuZWVkIHRvIGJlIHJlbW92ZWQgYnkgIgorInN0YXNoIHNhdmU6IgorbXNnc3RyICLlpoLkuIvmnKrot5/ouKrmlofku7blsIbkuI3kvJrooqvkv53lrZjkvYbmmK/lsIbkvJrlm6DkuLrov5vluqbkv53lrZjogIzpnIDopoHooqvliKDpmaTvvJoiCisKKyM6IGdpdC1zdGFzaC5zaDoyNzAKK21zZ2lkICIiCisiQWJvcnRpbmcuIENvbnNpZGVyIHVzaW5nIGVpdGhlciB0aGUgLS1mb3JjZSBvciAtLWluY2x1ZGUtdW50cmFja2VkIG9wdGlvbi4iCittc2dzdHIgIue7iOatouOAguiAg+iZkeS9v+eUqCAtLWZvcmNlIOaIluiAhSAtLWluY2x1ZGUtdW50cmFja2VkIOmAiemhueOAgiIKKworIzogZ2l0LXN0YXNoLnNoOjI3NAogbXNnaWQgIkNhbm5vdCBpbml0aWFsaXplIHN0YXNoIgogbXNnc3RyICLml6Dms5XliJ3lp4vljJYgc3Rhc2giCiAKLSM6IGdpdC1zdGFzaC5zaDoyMzUKKyM6IGdpdC1zdGFzaC5zaDoyNzgKIG1zZ2lkICJDYW5ub3Qgc2F2ZSB0aGUgY3VycmVudCBzdGF0dXMiCiBtc2dzdHIgIuaXoOazleS/neWtmOW9k+WJjeeKtuaAgSIKIAotIzogZ2l0LXN0YXNoLnNoOjI1MworIzogZ2l0LXN0YXNoLnNoOjI5NgogbXNnaWQgIkNhbm5vdCByZW1vdmUgd29ya3RyZWUgY2hhbmdlcyIKIG1zZ3N0ciAi5peg5rOV5Yig6Zmk5bel5L2c5Yy65Y+Y5pu0IgogCi0jOiBnaXQtc3Rhc2guc2g6MzUyCisjOiBnaXQtc3Rhc2guc2g6Mzk1CiBtc2dpZCAiTm8gc3Rhc2ggZm91bmQuIgogbXNnc3RyICLmnKrlj5HnjrAgc3Rhc2jjgIIiCiAKLSM6IGdpdC1zdGFzaC5zaDozNTkKKyM6IGdpdC1zdGFzaC5zaDo0MDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIlRvbyBtYW55IHJldmlzaW9ucyBzcGVjaWZpZWQ6ICRSRVYiCiBtc2dzdHIgIuaMh+WumuS6huWkquWkmueahOeJiOacrO+8miRSRVYiCiAKLSM6IGdpdC1zdGFzaC5zaDozNjUKKyM6IGdpdC1zdGFzaC5zaDo0MDgKICMsIHNoLWZvcm1hdAogbXNnaWQgIiRyZWZlcmVuY2UgaXMgbm90IHZhbGlkIHJlZmVyZW5jZSIKIG1zZ3N0ciAiJHJlZmVyZW5jZSDkuI3mmK/mnInmlYjnmoTlvJXnlKgiCiAKLSM6IGdpdC1zdGFzaC5zaDozOTMKKyM6IGdpdC1zdGFzaC5zaDo0MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIickYXJncycgaXMgbm90IGEgc3Rhc2gtbGlrZSBjb21taXQiCiBtc2dzdHIgIickYXJncycg5LiN5pivIHN0YXNoIOagt+aPkOS6pCIKIAotIzogZ2l0LXN0YXNoLnNoOjQwNAorIzogZ2l0LXN0YXNoLnNoOjQ0NwogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRhcmdzJyBpcyBub3QgYSBzdGFzaCByZWZlcmVuY2UiCiBtc2dzdHIgIickYXJncycg5LiN5piv5LiA5LiqIHN0YXNoIOW8leeUqCIKIAotIzogZ2l0LXN0YXNoLnNoOjQxMgorIzogZ2l0LXN0YXNoLnNoOjQ1NQogbXNnaWQgInVuYWJsZSB0byByZWZyZXNoIGluZGV4IgogbXNnc3RyICLml6Dms5XliLfmlrDntKLlvJUiCiAKLSM6IGdpdC1zdGFzaC5zaDo0MTYKKyM6IGdpdC1zdGFzaC5zaDo0NTkKIG1zZ2lkICJDYW5ub3QgYXBwbHkgYSBzdGFzaCBpbiB0aGUgbWlkZGxlIG9mIGEgbWVyZ2UiCiBtc2dzdHIgIuaXoOazleWcqOWQiOW5tui/h+eoi+S4reaBouWkjei/m+W6piIKIAotIzogZ2l0LXN0YXNoLnNoOjQyNAorIzogZ2l0LXN0YXNoLnNoOjQ2NwogbXNnaWQgIkNvbmZsaWN0cyBpbiBpbmRleC4gVHJ5IHdpdGhvdXQgLS1pbmRleC4iCiBtc2dzdHIgIue0ouW8leS4reacieWGsueqgeOAguWwneivleS4jeS9v+eUqCAtLWluZGV444CCIgogCi0jOiBnaXQtc3Rhc2guc2g6NDI2CisjOiBnaXQtc3Rhc2guc2g6NDY5CiBtc2dpZCAiQ291bGQgbm90IHNhdmUgaW5kZXggdHJlZSIKIG1zZ3N0ciAi5LiN6IO95L+d5a2Y57Si5byV5qCRIgogCi0jOiBnaXQtc3Rhc2guc2g6NDYwCisjOiBnaXQtc3Rhc2guc2g6NTAzCiBtc2dpZCAiQ2Fubm90IHVuc3RhZ2UgbW9kaWZpZWQgZmlsZXMiCiBtc2dzdHIgIuaXoOazlei/mOWOn+S/ruaUueeahOaWh+S7tiIKIAotIzogZ2l0LXN0YXNoLnNoOjQ3NQorIzogZ2l0LXN0YXNoLnNoOjUxOAogbXNnaWQgIkluZGV4IHdhcyBub3QgdW5zdGFzaGVkLiIKIG1zZ3N0ciAi57Si5byV55qE6L+b5bqm5rKh5pyJ6KKr5oGi5aSN44CCIgogCi0jOiBnaXQtc3Rhc2guc2g6NDkyCisjOiBnaXQtc3Rhc2guc2g6NTM1CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJEcm9wcGVkICR7UkVWfSAoJHMpIgogbXNnc3RyICLkuKLlvIPkuoYgJHtSRVZ9ICgkcykiCiAKLSM6IGdpdC1zdGFzaC5zaDo0OTMKKyM6IGdpdC1zdGFzaC5zaDo1MzYKICMsIHNoLWZvcm1hdAogbXNnaWQgIiR7UkVWfTogQ291bGQgbm90IGRyb3Agc3Rhc2ggZW50cnkiCiBtc2dzdHIgIiR7UkVWfe+8muS4jeiDveS4ouW8g+i/m+W6puadoeebriIKIAotIzogZ2l0LXN0YXNoLnNoOjUwMAorIzogZ2l0LXN0YXNoLnNoOjU0MwogbXNnaWQgIk5vIGJyYW5jaCBuYW1lIHNwZWNpZmllZCIKIG1zZ3N0ciAi5pyq5oyH5a6a5YiG5pSv5ZCNIgogCi0jOiBnaXQtc3Rhc2guc2g6NTcxCisjOiBnaXQtc3Rhc2guc2g6NjE1CiBtc2dpZCAiKFRvIHJlc3RvcmUgdGhlbSB0eXBlIFwiZ2l0IHN0YXNoIGFwcGx5XCIpIgogbXNnc3RyICLvvIjkuLrmgaLlpI3mlbDmja7ovpPlhaUgXCJnaXQgc3Rhc2ggYXBwbHlcIu+8iSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo5MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo5NQogIywgc2gtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHN0cmlwIG9uZSBjb21wb25lbnQgb2ZmIHVybCAnJHJlbW90ZXVybCciCiBtc2dzdHIgIuaXoOazleS7jiB1cmwgJyRyZW1vdGV1cmwnIOWJpeemu+S4gOS4que7hOS7tiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxOTYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MjM3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJObyBzdWJtb2R1bGUgbWFwcGluZyBmb3VuZCBpbiAuZ2l0bW9kdWxlcyBmb3IgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICLmnKrlnKggLmdpdG1vZHVsZXMg5Lit5Y+R546w6Lev5b6EICckc21fcGF0aCcg55qE5a2Q5qih57uE5pig5bCEIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjIzOQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyODEKICMsIHNoLWZvcm1hdAogbXNnaWQgIkNsb25lIG9mICckdXJsJyBpbnRvIHN1Ym1vZHVsZSBwYXRoICckc21fcGF0aCcgZmFpbGVkIgogbXNnc3RyICLml6Dms5XlhYvpmoYgJyR1cmwnIOWIsOWtkOaooee7hOi3r+W+hCAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjI1MQorIzogZ2l0LXN1Ym1vZHVsZS5zaDoyOTMKICMsIHNoLWZvcm1hdAogbXNnaWQgIkdpdGRpciAnJGEnIGlzIHBhcnQgb2YgdGhlIHN1Ym1vZHVsZSBwYXRoICckYicgb3IgdmljZSB2ZXJzYSIKIG1zZ3N0ciAiR2l0ZGlyICckYScg5Zyo5a2Q5qih57uE6Lev5b6EICckYicg5LmL5LiL5oiW55u45Y+NIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM0OQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKK21zZ2lkICJSZWxhdGl2ZSBwYXRoIGNhbiBvbmx5IGJlIHVzZWQgZnJvbSB0aGUgdG9wbGV2ZWwgb2YgdGhlIHdvcmtpbmcgdHJlZSIKK21zZ3N0ciAi5Y+q6IO95Zyo5bel5L2c5Yy655qE6aG257qn55uu5b2V5Lit5L2/55So55u45a+56Lev5b6EIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjQxMwogIywgc2gtZm9ybWF0CiBtc2dpZCAicmVwbyBVUkw6ICckcmVwbycgbXVzdCBiZSBhYnNvbHV0ZSBvciBiZWdpbiB3aXRoIC4vfC4uLyIKIG1zZ3N0ciAi54mI5pys5bqTVVJM77yaJyRyZXBvJyDlv4XpobvmmK/nu53lr7not6/lvoTmiJbku6UgLi98Li4vIOi1t+WniyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDozNjYKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDMwCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICInJHNtX3BhdGgnIGFscmVhZHkgZXhpc3RzIGluIHRoZSBpbmRleCIKIG1zZ3N0ciAiJyRzbV9wYXRoJyDlt7Lnu4/lrZjlnKjkuo7ntKLlvJXkuK0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzcwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQzNAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgogIlRoZSBmb2xsb3dpbmcgcGF0aCBpcyBpZ25vcmVkIGJ5IG9uZSBvZiB5b3VyIC5naXRpZ25vcmUgZmlsZXM6XG4iCkBAIC05NTU3LDI0NSArMTAwNTUsMzY1IEBACiAiJHNtX3BhdGhcbiIKICLlpoLmnpzmgqjnoa7lrp7mg7Pmt7vliqDlroPvvIzkvb/nlKggLWYg5Y+C5pWw44CCIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjM4OAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0NTIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkFkZGluZyBleGlzdGluZyByZXBvIGF0ICckc21fcGF0aCcgdG8gdGhlIGluZGV4IgogbXNnc3RyICLmt7vliqDkvY3kuo4gJyRzbV9wYXRoJyDnmoTnjrDlrZjniYjmnKzlupPliLDntKLlvJUiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MzkwCisjOiBnaXQtc3VibW9kdWxlLnNoOjQ1NAogIywgc2gtZm9ybWF0CiBtc2dpZCAiJyRzbV9wYXRoJyBhbHJlYWR5IGV4aXN0cyBhbmQgaXMgbm90IGEgdmFsaWQgZ2l0IHJlcG8iCiBtc2dzdHIgIickc21fcGF0aCcg5bey5a2Y5Zyo5LiU5LiN5piv5LiA5Liq5pyJ5pWI55qEIGdpdCDniYjmnKzlupMiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Mzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2MgogIywgc2gtZm9ybWF0CiBtc2dpZCAiQSBnaXQgZGlyZWN0b3J5IGZvciAnJHNtX25hbWUnIGlzIGZvdW5kIGxvY2FsbHkgd2l0aCByZW1vdGUocyk6IgogbXNnc3RyICLmnKzlnLDlj5HnjrAgJyRzbV9uYW1lJyDnmoTkuIDkuKogZ2l0IOebruW9le+8jOS4juWFtuWvueW6lOeahOi/nOeoi+eJiOacrOW6k++8miIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDAKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY0CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAiSWYgeW91IHdhbnQgdG8gcmV1c2UgdGhpcyBsb2NhbCBnaXQgZGlyZWN0b3J5IGluc3RlYWQgb2YgY2xvbmluZyBhZ2FpbiBmcm9tIgogbXNnc3RyICLlpoLmnpzmgqjmg7Pph43nlKjmraTmnKzlnLAgZ2l0IOebruW9leiAjOS4jeaYr+mHjeaWsOWFi+mahuiHqiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAidXNlIHRoZSAnLS1mb3JjZScgb3B0aW9uLiBJZiB0aGUgbG9jYWwgZ2l0IGRpcmVjdG9yeSBpcyBub3QgdGhlIGNvcnJlY3QgcmVwbyIKIG1zZ3N0ciAi5L2/55SoICctLWZvcmNlJyDlj4LmlbDjgILlpoLmnpzmnKzlnLAgZ2l0IOebruW9leS4jeaYr+ato+ehrueahOeJiOacrOW6kyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDY3CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCiAib3IgeW91IGFyZSB1bnN1cmUgd2hhdCB0aGlzIG1lYW5zIGNob29zZSBhbm90aGVyIG5hbWUgd2l0aCB0aGUgJy0tbmFtZScgIgogIm9wdGlvbi4iCiBtc2dzdHIgIuaIluiAheaCqOS4jeehruWumuWFtuS4reWQq+S5ieS9v+eUqCAnLS1uYW1lJyDlj4LmlbDpgInmi6nlj6blpJbkuIDkuKrlkI3np7DjgIIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDA1CisjOiBnaXQtc3VibW9kdWxlLnNoOjQ2OQogIywgc2gtZm9ybWF0CiBtc2dpZCAiUmVhY3RpdmF0aW5nIGxvY2FsIGdpdCBkaXJlY3RvcnkgZm9yIHN1Ym1vZHVsZSAnJHNtX25hbWUnLiIKIG1zZ3N0ciAi5r+A5rS75pys5ZywIGdpdCDnm67lvZXliLDlrZDmqKHnu4QgJyRzbV9uYW1lJ+OAgiIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo0MTcKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NDgxCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVbmFibGUgdG8gY2hlY2tvdXQgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIuS4jeiDveajgOWHuuWtkOaooee7hCAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQyMgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0ODYKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byBhZGQgc3VibW9kdWxlICckc21fcGF0aCciCiBtc2dzdHIgIuaXoOazlea3u+WKoOWtkOaooee7hCAnJHNtX3BhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjQzMQorIzogZ2l0LXN1Ym1vZHVsZS5zaDo0OTUKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWdpc3RlciBzdWJtb2R1bGUgJyRzbV9wYXRoJyIKIG1zZ3N0ciAi5peg5rOV5rOo5YaM5a2Q5qih57uEICckc21fcGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDc0CisjOiBnaXQtc3VibW9kdWxlLnNoOjUzOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRW50ZXJpbmcgJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIuato+WcqOi/m+WFpSAnJHByZWZpeCRzbV9wYXRoJyIKK21zZ2lkICJFbnRlcmluZyAnJHByZWZpeCRkaXNwbGF5cGF0aCciCittc2dzdHIgIuato+WcqOi/m+WFpSAnJHByZWZpeCRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NDg4CisjOiBnaXQtc3VibW9kdWxlLnNoOjU1NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3RvcHBpbmcgYXQgJyRzbV9wYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCi1tc2dzdHIgIuWBnOatouS6jiAnJHNtX3BhdGgn77yM6ISa5pys6L+U5Zue6Z2e6Zu25YC844CCIgorbXNnaWQgIlN0b3BwaW5nIGF0ICckcHJlZml4JGRpc3BsYXlwYXRoJzsgc2NyaXB0IHJldHVybmVkIG5vbi16ZXJvIHN0YXR1cy4iCittc2dzdHIgIuWBnOatouS6jiAnJHByZWZpeCRkaXNwbGF5cGF0aCfvvIzohJrmnKzov5Tlm57pnZ7pm7blgLzjgIIiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTMyCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwMAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiTm8gdXJsIGZvdW5kIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIGluIC5naXRtb2R1bGVzIgotbXNnc3RyICLlnKggLmdpdG1vZHVsZXMg5Lit5pyq5om+5Yiw5a2Q5qih57uE6Lev5b6EICckc21fcGF0aCcg55qEIHVybCIKK21zZ2lkICJObyB1cmwgZm91bmQgZm9yIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIGluIC5naXRtb2R1bGVzIgorbXNnc3RyICLlnKggLmdpdG1vZHVsZXMg5Lit5pyq5om+5Yiw5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOeahCB1cmwiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQxCisjOiBnaXQtc3VibW9kdWxlLnNoOjYwOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVybCBmb3Igc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV5Li65a2Q5qih57uE6Lev5b6EICckc21fcGF0aCcg5rOo5YaMIHVybCIKK21zZ2lkICJGYWlsZWQgdG8gcmVnaXN0ZXIgdXJsIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV5Li65a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOazqOWGjCB1cmwiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTQzCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxMQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlICckbmFtZScgKCR1cmwpIHJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5a2Q5qih57uEICckbmFtZScgKCR1cmwpIOW3suS4uui3r+W+hCAnJHNtX3BhdGgnIOazqOWGjCIKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5a2Q5qih57uEICckbmFtZScgKCR1cmwpIOacquWvuei3r+W+hCAnJGRpc3BsYXlwYXRoJyDms6jlhowiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NTUxCisjOiBnaXQtc3VibW9kdWxlLnNoOjYxOQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgotbXNnc3RyICLml6Dms5XkuLrlrZDmqKHnu4Tot6/lvoQgJyRzbV9wYXRoJyDms6jlhozmm7TmlrDmqKHlvI8iCittc2dpZCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHVwZGF0ZSBtb2RlIGZvciBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV5Li65a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOazqOWGjOabtOaWsOaooeW8jyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo1ODgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6NjU2CiAjLCBzaC1mb3JtYXQKIG1zZ2lkICJVc2UgJy4nIGlmIHlvdSByZWFsbHkgd2FudCB0byBkZWluaXRpYWxpemUgYWxsIHN1Ym1vZHVsZXMiCiBtc2dzdHIgIuS9v+eUqCAnLicg5aaC5p6c5oKo55yf55qE5oOz6KaB5a+55omA5pyJ5a2Q5qih57uE5Y+W5raI5Yid5aeL5YyWIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgotbXNnc3RyICLlrZDmqKHnu4Tlt6XkvZzljLogJyRzbV9wYXRoJyDljIXlkKvkuIDkuKogLmdpdCDnm67lvZUiCittc2dpZCAiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBhIC5naXQgZGlyZWN0b3J5IgorbXNnc3RyICLlrZDmqKHnu4Tlt6XkvZzljLogJyRkaXNwbGF5cGF0aCcg5YyF5ZCr5LiA5LiqIC5naXQg55uu5b2VIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYwNAorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2NzQKICMsIHNoLWZvcm1hdAogbXNnaWQgIiIKICIodXNlICdybSAtcmYnIGlmIHlvdSByZWFsbHkgd2FudCB0byByZW1vdmUgaXQgaW5jbHVkaW5nIGFsbCBvZiBpdHMgaGlzdG9yeSkiCiBtc2dzdHIgIu+8iOS9v+eUqCAncm0gLXJmJyDlkb3ku6TlpoLmnpzmgqjnnJ/nmoTmg7PliKDpmaTlroPlj4rlhbblhajpg6jljoblj7LvvIkiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEwCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MAogIywgc2gtZm9ybWF0CiBtc2dpZCAiIgotIlN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCisiU3VibW9kdWxlIHdvcmsgdHJlZSAnJGRpc3BsYXlwYXRoJyBjb250YWlucyBsb2NhbCBtb2RpZmljYXRpb25zOyB1c2UgJy1mJyB0byAiCiAiZGlzY2FyZCB0aGVtIgotbXNnc3RyICLlrZDmqKHnu4Tlt6XkvZzljLogJyRzbV9wYXRoJyDljIXlkKvmnKzlnLDkv67mlLnvvJvkvb/nlKggJy1mJyDkuKLlvIPlroPku6wiCittc2dzdHIgIuWtkOaooee7hOW3peS9nOWMuiAnJGRpc3BsYXlwYXRoJyDljIXlkKvmnKzlnLDkv67mlLnvvJvkvb/nlKggJy1mJyDkuKLlvIPlroPku6wiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjEzCisjOiBnaXQtc3VibW9kdWxlLnNoOjY4MwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5bey5riF6Zmk55uu5b2VICckc21fcGF0aCciCittc2dpZCAiQ2xlYXJlZCBkaXJlY3RvcnkgJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuW3sua4hemZpOebruW9lSAnJGRpc3BsYXlwYXRoJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo2MTQKKyM6IGdpdC1zdWJtb2R1bGUuc2g6Njg0CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJDb3VsZCBub3QgcmVtb3ZlIHN1Ym1vZHVsZSB3b3JrIHRyZWUgJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV56e76Zmk5a2Q5qih57uE5bel5L2c5Yy6ICckc21fcGF0aCciCittc2dpZCAiQ291bGQgbm90IHJlbW92ZSBzdWJtb2R1bGUgd29yayB0cmVlICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLml6Dms5Xnp7vpmaTlrZDmqKHnu4Tlt6XkvZzljLogJyRkaXNwbGF5cGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NjE3CisjOiBnaXQtc3VibW9kdWxlLnNoOjY4NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiQ291bGQgbm90IGNyZWF0ZSBlbXB0eSBzdWJtb2R1bGUgZGlyZWN0b3J5ICckc21fcGF0aCciCi1tc2dzdHIgIuS4jeiDveWIm+W7uuepuueahOWtkOaooee7hOebruW9lSAnJHNtX3BhdGgnIgorbXNnaWQgIkNvdWxkIG5vdCBjcmVhdGUgZW1wdHkgc3VibW9kdWxlIGRpcmVjdG9yeSAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5LiN6IO95Yib5bu656m655qE5a2Q5qih57uE55uu5b2VICckZGlzcGxheXBhdGgnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjYyNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDo2OTYKICMsIHNoLWZvcm1hdAotbXNnaWQgIlN1Ym1vZHVsZSAnJG5hbWUnICgkdXJsKSB1bnJlZ2lzdGVyZWQgZm9yIHBhdGggJyRzbV9wYXRoJyIKLW1zZ3N0ciAi5a2Q5qih57uEICckbmFtZScgKCR1cmwpIOacquWvuei3r+W+hCAnJHNtX3BhdGgnIOazqOWGjCIKK21zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgdW5yZWdpc3RlcmVkIGZvciBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLlrZDmqKHnu4QgJyRuYW1lJyAoJHVybCkg5pyq5a+56Lev5b6EICckZGlzcGxheXBhdGgnIOazqOWGjCIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3MzEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODExCiAjLCBzaC1mb3JtYXQKIG1zZ2lkICIiCi0iU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCcgbm90IGluaXRpYWxpemVkXG4iCisiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCcgbm90IGluaXRpYWxpemVkXG4iCiAiTWF5YmUgeW91IHdhbnQgdG8gdXNlICd1cGRhdGUgLS1pbml0Jz8iCiBtc2dzdHIgIiIKLSLlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5rKh5pyJ5Yid5aeL5YyWXG4iCisi5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOayoeacieWIneWni+WMllxuIgogIuS5n+iuuOaCqOaDs+eUqCAndXBkYXRlIC0taW5pdCfvvJ8iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6NzQ0CisjOiBnaXQtc3VibW9kdWxlLnNoOjgyNAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZpbmQgY3VycmVudCByZXZpc2lvbiBpbiBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnIOS4reaJvuWIsOW9k+WJjeeJiOacrCIKK21zZ2lkICJVbmFibGUgdG8gZmluZCBjdXJyZW50IHJldmlzaW9uIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCcg5Lit5om+5Yiw5b2T5YmN54mI5pysIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjc1MworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4MzMKICMsIHNoLWZvcm1hdAogbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJHNtX3BhdGgnIgogbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRzbV9wYXRoJyDkuK3ojrflj5YiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzc3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg1NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIGZldGNoIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5Lit6I635Y+WIgorbXNnaWQgIlVuYWJsZSB0byBmZXRjaCBpbiBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV5Zyo5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIOS4reiOt+WPliIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTEKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcxCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIuaXoOazleWcqOWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyDkuK3lj5jln7ogJyRzaGExJyIKK21zZ2lkICJVbmFibGUgdG8gcmViYXNlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazleWcqOWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDkuK3lj5jln7ogJyRzaGExJyIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDo3OTIKKyM6IGdpdC1zdWJtb2R1bGUuc2g6ODcyCiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJzogcmViYXNlZCBpbnRvICckc2hhMSciCi1tc2dzdHIgIuWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJ++8muWPmOWfuuiHsyAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnOiByZWJhc2VkIGludG8gJyRzaGExJyIKK21zZ3N0ciAi5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgn77ya5Y+Y5Z+66IezICckc2hhMSciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3NwogIywgc2gtZm9ybWF0Ci1tc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCi1tc2dzdHIgIuaXoOazleWQiOW5tiAnJHNoYTEnIOWIsOWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyDkuK0iCittc2dpZCAiVW5hYmxlIHRvIG1lcmdlICckc2hhMScgaW4gc3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCciCittc2dzdHIgIuaXoOazleWQiOW5tiAnJHNoYTEnIOWIsOWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJyDkuK0iCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6Nzk4CisjOiBnaXQtc3VibW9kdWxlLnNoOjg3OAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IG1lcmdlZCBpbiAnJHNoYTEnIgotbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCfvvJrlt7LlkIjlubblhaUgJyRzaGExJyIKK21zZ2lkICJTdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJzogbWVyZ2VkIGluICckc2hhMSciCittc2dzdHIgIuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJ++8muW3suWQiOW5tuWFpSAnJHNoYTEnIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjgwMworIzogZ2l0LXN1Ym1vZHVsZS5zaDo4ODMKICMsIHNoLWZvcm1hdAotbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCcg5Lit5qOA5Ye6ICckc2hhMSciCittc2dpZCAiIgorIkV4ZWN1dGlvbiBvZiAnJGNvbW1hbmQgJHNoYTEnIGZhaWxlZCBpbiBzdWJtb2R1bGUgIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCittc2dzdHIgIuWcqOWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyDkuK3miafooYwgJyRjb21tYW5kICRzaGExJyDlpLHotKUiCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODA0CisjOiBnaXQtc3VibW9kdWxlLnNoOjg4NAogIywgc2gtZm9ybWF0Ci1tc2dpZCAiU3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCc6IGNoZWNrZWQgb3V0ICckc2hhMSciCi1tc2dzdHIgIuWtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJ++8muajgOWHuiAnJHNoYTEnIgorbXNnaWQgIlN1Ym1vZHVsZSBwYXRoICckcHJlZml4JHNtX3BhdGgnOiAnJGNvbW1hbmQgJHNoYTEnIgorbXNnc3RyICLlrZDmqKHnu4Tot6/lvoQgJyRwcmVmaXgkc21fcGF0aCc6ICckY29tbWFuZCAkc2hhMSciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6ODMxCisjOiBnaXQtc3VibW9kdWxlLnNoOjg4OQogIywgc2gtZm9ybWF0Ci1tc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJHByZWZpeCRzbV9wYXRoJyIKLW1zZ3N0ciAi5peg5rOV6YCS5b2S6L+b5a2Q5qih57uE6Lev5b6EICckcHJlZml4JHNtX3BhdGgnIgorbXNnaWQgIlVuYWJsZSB0byBjaGVja291dCAnJHNoYTEnIGluIHN1Ym1vZHVsZSBwYXRoICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLml6Dms5XlnKjlrZDmqKHnu4Tot6/lvoQgJyRkaXNwbGF5cGF0aCcg5Lit5qOA5Ye6ICckc2hhMSciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTM5CisjOiBnaXQtc3VibW9kdWxlLnNoOjg5MAorIywgc2gtZm9ybWF0Cittc2dpZCAiU3VibW9kdWxlIHBhdGggJyRkaXNwbGF5cGF0aCc6IGNoZWNrZWQgb3V0ICckc2hhMSciCittc2dzdHIgIuWtkOaooee7hOi3r+W+hCAnJGRpc3BsYXlwYXRoJ++8muajgOWHuiAnJHNoYTEnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjkxNworIywgc2gtZm9ybWF0Cittc2dpZCAiRmFpbGVkIHRvIHJlY3Vyc2UgaW50byBzdWJtb2R1bGUgcGF0aCAnJGRpc3BsYXlwYXRoJyIKK21zZ3N0ciAi5peg5rOV6YCS5b2S6L+b5a2Q5qih57uE6Lev5b6EICckZGlzcGxheXBhdGgnIgorCisjOiBnaXQtc3VibW9kdWxlLnNoOjEwMjUKIG1zZ2lkICJUaGUgLS1jYWNoZWQgb3B0aW9uIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIC0tZmlsZXMgb3B0aW9uIgogbXNnc3RyICLpgInpobkgLS1jYWNoZWQg5LiN6IO95ZKM6YCJ6aG5IC0tZmlsZXMg5ZCM5pe25L2/55SoIgogCiAjLiB1bmV4cGVjdGVkIHR5cGUKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTc5CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwNjYKICMsIHNoLWZvcm1hdAogbXNnaWQgInVuZXhwZWN0ZWQgbW9kZSAkbW9kX2RzdCIKIG1zZ3N0ciAi5oSP5aSW55qE5qih5byPICRtb2RfZHN0IgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGdpdC1zdWJtb2R1bGUuc2g6OTk3CisjOiBnaXQtc3VibW9kdWxlLnNoOjEwODYKICMsIHNoLWZvcm1hdAotbXNnaWQgIiAgV2FybjogJG5hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCi1tc2dzdHIgIiAg6K2m5ZGK77yaJG5hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyIKK21zZ2lkICIgIFdhcm46ICRkaXNwbGF5X25hbWUgZG9lc24ndCBjb250YWluIGNvbW1pdCAkc2hhMV9zcmMiCittc2dzdHIgIiAg6K2m5ZGK77yaJGRpc3BsYXlfbmFtZSDmnKrljIXlkKvmj5DkuqQgJHNoYTFfc3JjIgogCiAjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTAwMAorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDg5CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICIgIFdhcm46ICRuYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgotbXNnc3RyICIgIOitpuWRiu+8miRuYW1lIOacquWMheWQq+aPkOS6pCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJHNoYTFfZHN0IgorbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX2RzdCIKIAogIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8Ci0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMDMKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTA5MgogIywgc2gtZm9ybWF0Ci1tc2dpZCAiICBXYXJuOiAkbmFtZSBkb2Vzbid0IGNvbnRhaW4gY29tbWl0cyAkc2hhMV9zcmMgYW5kICRzaGExX2RzdCIKLW1zZ3N0ciAiICDorablkYrvvJokbmFtZSDmnKrljIXlkKvmj5DkuqQgJHNoYTFfc3JjIOWSjCAkc2hhMV9kc3QiCittc2dpZCAiICBXYXJuOiAkZGlzcGxheV9uYW1lIGRvZXNuJ3QgY29udGFpbiBjb21taXRzICRzaGExX3NyYyBhbmQgJHNoYTFfZHN0IgorbXNnc3RyICIgIOitpuWRiu+8miRkaXNwbGF5X25hbWUg5pyq5YyF5ZCr5o+Q5LqkICRzaGExX3NyYyDlkowgJHNoYTFfZHN0IgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwMjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTExNwogbXNnaWQgImJsb2IiCiBtc2dzdHIgIuaVsOaNruWvueixoSIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMDY2CisjOiBnaXQtc3VibW9kdWxlLnNoOjExNTUKIG1zZ2lkICJTdWJtb2R1bGVzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkOiIKIG1zZ3N0ciAi5a2Q5qih57uE5bey5L+u5pS55L2G5bCa5pyq5pu05paw77yaIgogCi0jOiBnaXQtc3VibW9kdWxlLnNoOjEwNjgKKyM6IGdpdC1zdWJtb2R1bGUuc2g6MTE1NwogbXNnaWQgIlN1Ym1vZHVsZSBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRlZDoiCiBtc2dzdHIgIuimgeaPkOS6pOeahOWtkOaooee7hOWPmOabtO+8miIKIAotIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMTUzCisjOiBnaXQtc3VibW9kdWxlLnNoOjEyNDIKICMsIHNoLWZvcm1hdAogbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRzbV9wYXRoJyIKIG1zZ3N0ciAi5peg5rOV6YCS5b2S6L+b5a2Q5qih57uE6Lev5b6EICckc21fcGF0aCciCiAKLSM6IGdpdC1zdWJtb2R1bGUuc2g6MTIxNgorIzogZ2l0LXN1Ym1vZHVsZS5zaDoxMzA2CiAjLCBzaC1mb3JtYXQKLW1zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckcHJlZml4JHNtX3BhdGgnIgotbXNnc3RyICLkuLogJyRwcmVmaXgkc21fcGF0aCcg5ZCM5q2l5a2Q5qih57uEIHVybCIKK21zZ2lkICJTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckZGlzcGxheXBhdGgnIgorbXNnc3RyICLkuLogJyRkaXNwbGF5cGF0aCcg5ZCM5q2l5a2Q5qih57uEIHVybCIKIAotIywgZnV6enkKLSN+IG1zZ2lkICJhYWFTeW5jaHJvbml6aW5nIHN1Ym1vZHVsZSB1cmwgZm9yICckcHJlZml4JHNtX3BhdGgnIgotI34gbXNnc3RyICLkuLogJyRwcmVmaXgkc21fcGF0aCcg5ZCM5q2l5a2Q5qih57uEIHVybCIKKyN+IG1zZ2lkICIiCisjfiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGUgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZSlcbiIKKyN+ICJ1c2VzIGEgLmdpdCBkaXJlY3Rvcnk6IgorI34gbXNnaWRfcGx1cmFsICIiCisjfiAidGhlIGZvbGxvd2luZyBzdWJtb2R1bGVzIChvciBvbmUgb2YgaXRzIG5lc3RlZCBzdWJtb2R1bGUpXG4iCisjfiAidXNlIGEgLmdpdCBkaXJlY3Rvcnk6IgorI34gbXNnc3RyWzBdICLlpoLkuIvlrZDmqKHnu4TvvIjmiJbkuIDkuKrlhbbltYzlpZfnmoTlrZDmqKHnu4TvvInkvb/nlKjkuobkuIDkuKogLmdpdCDnm67lvZXvvJoiCisjfiBtc2dzdHJbMV0gIuWmguS4i+WtkOaooee7hO+8iOaIluS4gOS4quWFtuW1jOWll+eahOWtkOaooee7hO+8ieS9v+eUqOS6huS4gOS4qiAuZ2l0IOebruW9le+8miIKKworI34gbXNnaWQgIkNhbm5vdCBjaGFuZ2UgdW5tZXJnZWQgLmdpdG1vZHVsZXMsIHJlc29sdmUgbWVyZ2UgY29uZmxpY3RzIGZpcnN0IgorI34gbXNnc3RyICLml6Dms5Xkv67mlLnmnKrlkIjlubbnmoQgLmdpdG1vZHVsZXPvvIzlhYjop6PlhrPlkIjlubblhrLnqoEiCisKKyN+IG1zZ2lkICJDb3VsZCBub3QgZmluZCBzZWN0aW9uIGluIC5naXRtb2R1bGVzIHdoZXJlIHBhdGg9JXMiCisjfiBtc2dzdHIgIuaXoOazleWcqCAuZ2l0bW9kdWxlcyDkuK3mib7liLAgcGF0aD0lcyDnmoTlsI/oioIiCisKKyN+IG1zZ2lkICJDb3VsZCBub3QgdXBkYXRlIC5naXRtb2R1bGVzIGVudHJ5ICVzIgorI34gbXNnc3RyICLkuI3og73mm7TmlrAgLmdpdG1vZHVsZXMg5p2h55uuICVzIgorCisjfiBtc2dpZCAiQ291bGQgbm90IHJlbW92ZSAuZ2l0bW9kdWxlcyBlbnRyeSBmb3IgJXMiCisjfiBtc2dzdHIgIuaXoOazleenu+mZpCAlcyDnmoQgLmdpdG1vZHVsZXMg5p2h55uuIgorCisjfiBtc2dpZCAiY291bGQgbm90IGZpbmQgLmdpdG1vZHVsZXMgaW4gaW5kZXgiCisjfiBtc2dzdHIgIuaXoOazleWcqOe0ouW8leS4reaJvuWIsCAuZ2l0bW9kdWxlcyIKKworI34gbXNnaWQgInJlYWRpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCisjfiBtc2dzdHIgIuivu+WPluabtOaWsOWQjueahCAuZ2l0bW9kdWxlcyDlpLHotKUiCisKKyN+IG1zZ2lkICJ1bmFibGUgdG8gc3RhdCB1cGRhdGVkIC5naXRtb2R1bGVzIgorI34gbXNnc3RyICLkuI3og73mnprkuL7mm7TmlrDlkI7nmoQgLmdpdG1vZHVsZXMiCisKKyN+IG1zZ2lkICJ1bmFibGUgdG8gcmVtb3ZlIC5naXRtb2R1bGVzIGZyb20gaW5kZXgiCisjfiBtc2dzdHIgIuS4jeiDveS7jue0ouW8leS4reenu+mZpCAuZ2l0bW9kdWxlcyIKKworI34gbXNnaWQgImFkZGluZyB1cGRhdGVkIC5naXRtb2R1bGVzIGZhaWxlZCIKKyN+IG1zZ3N0ciAi5re75Yqg5pu05paw5ZCO55qEIC5naXRtb2R1bGVzIOWksei0pSIKKworI34gbXNnaWQgInN0YWdpbmcgdXBkYXRlZCAuZ2l0bW9kdWxlcyBmYWlsZWQiCisjfiBtc2dzdHIgIuWwhuabtOaWsOWQjiAuZ2l0bW9kdWxlcyDmt7vliqDmmoLlrZjljLrlpLHotKUiCisKKyN+IG1zZ2lkICJDb3VsZCBub3Qgc2V0IGNvcmUud29ya3RyZWUgaW4gJXMiCisjfiBtc2dzdHIgIuS4jeiDveWcqCAlcyDkuK3orr7nva4gY29yZS53b3JrdHJlZSIKKworIyAg6K+R6ICF77ya5rOo5oSP5L+d5oyB5YmN5a+856m65qC8CisjfiBtc2dpZCAiICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gXCJnaXQgYW0gLS1yZXNvbHZlZFwiKSIKKyN+IG1zZ3N0ciAiICDvvIjop6PlhrPlhrLnqoHvvIznhLblkI7ov5DooYwgXCJnaXQgYW0gLS1yZXNvbHZlZFwi77yJIgorCisjICDor5HogIXvvJrms6jmhI/kv53mjIHliY3lr7znqbrmoLwKKyN+IG1zZ2lkICIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIgorI34gbXNnc3RyICIgIO+8iOino+WGs+aJgOacieWGsueqgeWQju+8jOaJp+ihjCBcImdpdCBjb21taXRcIu+8iSIKKworI34gbXNnaWQgIm1vcmUgdGhhbiAlZCB0cmVlcyBnaXZlbjogJyVzJyIKKyN+IG1zZ3N0ciAi5o+Q5L6b5LqG6LaF6L+HICVkIOS4quagkeWvueixoe+8miclcyciCisKKyN+IG1zZ2lkICJZb3UgY2Fubm90IGNvbWJpbmUgLS1uby1mZiB3aXRoIC0tZmYtb25seS4iCisjfiBtc2dzdHIgIuaCqOS4jeiDveWwhiAtLW5vLWZmIOS4jiAtLWZmLW9ubHkg5ZCM5pe25L2/55So44CCIgorCisjfiBtc2dpZCAiSHVoPyBEaXJlY3RvcnkgJXMgaXMgaW4gaW5kZXggYW5kIG5vIHN1Ym1vZHVsZT8iCisjfiBtc2dzdHIgIuWXr++8n+ebruW9lSAlcyDlnKjntKLlvJXkuK3lubbkuJTkuI3mmK/lrZDmqKHnu4TvvJ8iCisKKyN+IG1zZ2lkICIiCisjfiAic3VibW9kdWxlICclcycgKG9yIG9uZSBvZiBpdHMgbmVzdGVkIHN1Ym1vZHVsZXMpIHVzZXMgYSAuZ2l0IGRpcmVjdG9yeVxuIgorI34gIih1c2UgJ3JtIC1yZicgaWYgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSBpdCBpbmNsdWRpbmcgYWxsIG9mIGl0cyAiCisjfiAiaGlzdG9yeSkiCisjfiBtc2dzdHIgIiIKKyN+ICLlrZDmqKHnu4QgJyVzJ++8iOaIluiAheWug+eahOS4gOS4quW1jOWll+WtkOaooee7hO+8ieS9v+eUqOS4gOS4qiAuZ2l0IOebruW9lVxuIgorI34gIu+8iOS9v+eUqCAncm0gLXJmJyDlkb3ku6TlpoLmnpzmgqjnnJ/nmoTmg7PliKDpmaTlroPlj4rlhbblhajpg6jljoblj7LvvIkiCisKKyN+IG1zZ2lkICIiCisjfiAiJyVzJyBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4XG4iCisjfiAiKHVzZSAtLWNhY2hlZCB0byBrZWVwIHRoZSBmaWxlLCBvciAtZiB0byBmb3JjZSByZW1vdmFsKSIKKyN+IG1zZ3N0ciAiIgorI34gIiclcycg5pyJ5Y+Y5pu05bey5pqC5a2Y6Iez57Si5byV5LitXG4iCisjfiAi77yI5L2/55SoIC0tY2FjaGVkIOS/neWtmOaWh+S7tu+8jOaIlueUqCAtZiDlvLrliLbliKDpmaTvvIkiCisKKyN+IG1zZ2lkICJzaG93IGNvbW1pdHMgd2hlcmUgbm8gcGFyZW50IGNvbWVzIGJlZm9yZSBpdHMgY2hpbGRyZW4iCisjfiBtc2dzdHIgIuaYvuekuuaPkOS6pOaXtuS7peaXtumXtOS4uuW6j+S4lOeItuaPkOS6pOS4jeiDvemihuWFiOWtkOaPkOS6pCIKKworI34gbXNnaWQgInNob3cgdGhlIEhFQUQgcmVmZXJlbmNlIgorI34gbXNnc3RyICLmmL7npLogSEVBRCDlvJXnlKgiCisKKyN+IG1zZ2lkICJTdWJtb2R1bGUgJyRuYW1lJyAoJHVybCkgcmVnaXN0ZXJlZCBmb3IgcGF0aCAnJHNtX3BhdGgnIgorI34gbXNnc3RyICLlrZDmqKHnu4QgJyRuYW1lJyAoJHVybCkg5bey5Li66Lev5b6EICckc21fcGF0aCcg5rOo5YaMIgorCisjfiBtc2dpZCAiQ2hhbmdlIGZsYWdzIgorI34gbXNnc3RyICLkv67mlLnlj4LmlbAiCisKKyN+IG1zZ2lkICIiCisjfiAiTk9URTogbm8gbW9yZSBmaWxlcyB0byBjbGVhbjsgcHJlc3MgXCJ0XCIgdG8gdG9nZ2xlIGZsYWdzIG9mIGdpdC1jbGVhbi4iCisjfiBtc2dzdHIgIuazqOaEj++8muayoeacieimgea4heeQhueahOaWh+S7tu+8m+WwneivleaMiSBcInRcIiDliIfmjaIgZ2l0LWNsZWFuIOeahOmAiemhueOAgiIKKworI34gbXNnaWQgIkZhaWxlZCB0byByZWN1cnNlIGludG8gc3VibW9kdWxlIHBhdGggJyRwcmVmaXgkc21fcGF0aCciCisjfiBtc2dzdHIgIuaXoOazlemAkuW9kui/m+WtkOaooee7hOi3r+W+hCAnJHByZWZpeCRzbV9wYXRoJyIKKworI34gbXNnaWQgImdpdCBzaG9ydGxvZyBbLW5dIFstc10gWy1lXSBbLXddIFtyZXYtb3B0c10gWy0tXSBbPGNvbW1pdC1pZD4uLi4gXSIKKyN+IG1zZ3N0ciAiZ2l0IHNob3J0bG9nIFstbl0gWy1zXSBbLWVdIFstd10gW+eJiOacrOmAiemhuV0gWy0tXSBbPOaPkOS6pOWPtz4uLi4gXSIKKworI34gbXNnaWQgIlNlZSAnZ2l0IGhlbHAgPGNvbW1hbmQ+JyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhIHNwZWNpZmljIGNvbW1hbmQuIgorI34gbXNnc3RyICLlj4Lop4EgJ2dpdCBoZWxwIDxjb21tYW5kPicg5Lul6I635b6X6K+l54m55a6a5ZG95Luk55qE6K+m57uG5L+h5oGv44CCIgorCisjfiBtc2dpZCAiQlVHOiBpbXBvc3NpYmxlIGNvbWJpbmF0aW9uIG9mICVkIGFuZCAlcCIKKyN+IG1zZ3N0ciAiQlVHOiDml6Dms5Xnu4TlkIggJWQg5ZKMICVwIgorCisjICDor5HogIXvvJrku6XkuIvkuInmnaHlrp7pmYXkuLrkuIDkuKrmrrXokL0KKyN+IG1zZ2lkICJJdCB0b29rICUuMmYgc2Vjb25kcyB0byBlbnVtZXJhdGUgdW50cmFja2VkIGZpbGVzLiAgJ3N0YXR1cyAtdW5vJyIKKyN+IG1zZ3N0ciAi6ICX6LS55LqGICUuMmYg56eS5Lul5p6a5Li+5pyq6Lef6Liq55qE5paH5Lu244CCJ3N0YXR1cyAtdW5vJyIKKworIyAg6K+R6ICF77ya5Li65a+56b2Q77yM5LiL6Z2i5Lik5Y+l5YaF5a655pyJ6LCD5pW0CisjfiBtc2dpZCAibWF5IHNwZWVkIGl0IHVwLCBidXQgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCBub3QgdG8gZm9yZ2V0IHRvIGFkZCIKKyN+IG1zZ3N0ciAi5Lmf6K646IO95o+Q6auY6YCf5bqm77yM5L2G5oKo6ZyA6KaB5bCP5b+D5LiN6KaB5b+Y5LqG5re75Yqg5paw5paH5Lu2IgorCisjfiBtc2dpZCAibmV3IGZpbGVzIHlvdXJzZWxmIChzZWUgJ2dpdCBoZWxwIHN0YXR1cycpLiIKKyN+IG1zZ3N0ciAi77yI5Y+C6KeBICdnaXQgaGVscCBzdGF0dXMn77yJ44CCIgogCiAjfiBtc2dpZCAidXNlIGFueSByZWYgaW4gLmdpdC9yZWZzIgogI34gbXNnc3RyICLkvb/nlKggLmdpdC9yZWZzIOmHjOeahOS7u+aEj+W8leeUqCIKZGlmZiAtLWdpdCBhL3ByZXR0eS5jIGIvcHJldHR5LmMKaW5kZXggOWU0MzE1NC4uNzQ1NjNjOSAxMDA2NDQKLS0tIGEvcHJldHR5LmMKKysrIGIvcHJldHR5LmMKQEAgLTQwNiw3ICs0MDYsNyBAQAogCXJldHVybiBzaG93X2RhdGUoZGF0ZSwgdHosIG1vZGUpOwogfQogCi12b2lkIHBwX3VzZXJfaW5mbyhjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAordm9pZCBwcF91c2VyX2luZm8oc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKIAkJICBjb25zdCBjaGFyICp3aGF0LCBzdHJ1Y3Qgc3RyYnVmICpzYiwKIAkJICBjb25zdCBjaGFyICpsaW5lLCBjb25zdCBjaGFyICplbmNvZGluZykKIHsKQEAgLTQzMiw2ICs0MzIsMjMgQEAKIAkJbWFwX3VzZXIocHAtPm1haWxtYXAsICZtYWlsYnVmLCAmbWFpbGxlbiwgJm5hbWVidWYsICZuYW1lbGVuKTsKIAogCWlmIChwcC0+Zm10ID09IENNSVRfRk1UX0VNQUlMKSB7CisJCWlmIChwcC0+ZnJvbV9pZGVudCkgeworCQkJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKKworCQkJc3RyYnVmX2FkZHN0cigmYnVmLCAiRnJvbTogIik7CisJCQlzdHJidWZfYWRkKCZidWYsIG5hbWVidWYsIG5hbWVsZW4pOworCQkJc3RyYnVmX2FkZHN0cigmYnVmLCAiIDwiKTsKKwkJCXN0cmJ1Zl9hZGQoJmJ1ZiwgbWFpbGJ1ZiwgbWFpbGxlbik7CisJCQlzdHJidWZfYWRkc3RyKCZidWYsICI+XG4iKTsKKwkJCXN0cmluZ19saXN0X2FwcGVuZCgmcHAtPmluX2JvZHlfaGVhZGVycywKKwkJCQkJICAgc3RyYnVmX2RldGFjaCgmYnVmLCBOVUxMKSk7CisKKwkJCW1haWxidWYgPSBwcC0+ZnJvbV9pZGVudC0+bWFpbF9iZWdpbjsKKwkJCW1haWxsZW4gPSBwcC0+ZnJvbV9pZGVudC0+bWFpbF9lbmQgLSBtYWlsYnVmOworCQkJbmFtZWJ1ZiA9IHBwLT5mcm9tX2lkZW50LT5uYW1lX2JlZ2luOworCQkJbmFtZWxlbiA9IHBwLT5mcm9tX2lkZW50LT5uYW1lX2VuZCAtIG5hbWVidWY7CisJCX0KKwogCQlzdHJidWZfYWRkc3RyKHNiLCAiRnJvbTogIik7CiAJCWlmIChuZWVkc19yZmMyMDQ3X2VuY29kaW5nKG5hbWVidWYsIG5hbWVsZW4sIFJGQzIwNDdfQUREUkVTUykpIHsKIAkJCWFkZF9yZmMyMDQ3KHNiLCBuYW1lYnVmLCBuYW1lbGVuLApAQCAtMTUxNCw3ICsxNTMxLDcgQEAKIAlmcmVlKGNvbnRleHQuc2lnbmF0dXJlX2NoZWNrLnNpZ25lcik7CiB9CiAKLXN0YXRpYyB2b2lkIHBwX2hlYWRlcihjb25zdCBzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAorc3RhdGljIHZvaWQgcHBfaGVhZGVyKHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAogCQkgICAgICBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCiAJCSAgICAgIGNvbnN0IGNoYXIgKiptc2dfcCwKQEAgLTE1NzUsNyArMTU5Miw3IEBACiAJfQogfQogCi12b2lkIHBwX3RpdGxlX2xpbmUoY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3ZvaWQgcHBfdGl0bGVfbGluZShzdHJ1Y3QgcHJldHR5X3ByaW50X2NvbnRleHQgKnBwLAogCQkgICBjb25zdCBjaGFyICoqbXNnX3AsCiAJCSAgIHN0cnVjdCBzdHJidWYgKnNiLAogCQkgICBjb25zdCBjaGFyICplbmNvZGluZywKQEAgLTE2MDIsNiArMTYxOSwxNiBAQAogCX0KIAlzdHJidWZfYWRkY2goc2IsICdcbicpOwogCisJaWYgKG5lZWRfOGJpdF9jdGUgPT0gMCkgeworCQlpbnQgaTsKKwkJZm9yIChpID0gMDsgaSA8IHBwLT5pbl9ib2R5X2hlYWRlcnMubnI7IGkrKykgeworCQkJaWYgKGhhc19ub25fYXNjaWkocHAtPmluX2JvZHlfaGVhZGVycy5pdGVtc1tpXS5zdHJpbmcpKSB7CisJCQkJbmVlZF84Yml0X2N0ZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKIAlpZiAobmVlZF84Yml0X2N0ZSA+IDApIHsKIAkJY29uc3QgY2hhciAqaGVhZGVyX2ZtdCA9CiAJCQkiTUlNRS1WZXJzaW9uOiAxLjBcbiIKQEAgLTE2MTUsMTAgKzE2NDIsMjEgQEAKIAlpZiAocHAtPmZtdCA9PSBDTUlUX0ZNVF9FTUFJTCkgewogCQlzdHJidWZfYWRkY2goc2IsICdcbicpOwogCX0KKworCWlmIChwcC0+aW5fYm9keV9oZWFkZXJzLm5yKSB7CisJCWludCBpOworCQlmb3IgKGkgPSAwOyBpIDwgcHAtPmluX2JvZHlfaGVhZGVycy5ucjsgaSsrKSB7CisJCQlzdHJidWZfYWRkc3RyKHNiLCBwcC0+aW5fYm9keV9oZWFkZXJzLml0ZW1zW2ldLnN0cmluZyk7CisJCQlmcmVlKHBwLT5pbl9ib2R5X2hlYWRlcnMuaXRlbXNbaV0uc3RyaW5nKTsKKwkJfQorCQlzdHJpbmdfbGlzdF9jbGVhcigmcHAtPmluX2JvZHlfaGVhZGVycywgMCk7CisJCXN0cmJ1Zl9hZGRjaChzYiwgJ1xuJyk7CisJfQorCiAJc3RyYnVmX3JlbGVhc2UoJnRpdGxlKTsKIH0KIAotdm9pZCBwcF9yZW1haW5kZXIoY29uc3Qgc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKK3ZvaWQgcHBfcmVtYWluZGVyKHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCiAJCSAgY29uc3QgY2hhciAqKm1zZ19wLAogCQkgIHN0cnVjdCBzdHJidWYgKnNiLAogCQkgIGludCBpbmRlbnQpCkBAIC0xNjUwLDcgKzE2ODgsNyBAQAogCX0KIH0KIAotdm9pZCBwcmV0dHlfcHJpbnRfY29tbWl0KGNvbnN0IHN0cnVjdCBwcmV0dHlfcHJpbnRfY29udGV4dCAqcHAsCit2b2lkIHByZXR0eV9wcmludF9jb21taXQoc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0ICpwcCwKIAkJCSBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCiAJCQkgc3RydWN0IHN0cmJ1ZiAqc2IpCiB7CmRpZmYgLS1naXQgYS9wcmlvLXF1ZXVlLmMgYi9wcmlvLXF1ZXVlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlmOGM2ZAotLS0gL2Rldi9udWxsCisrKyBiL3ByaW8tcXVldWUuYwpAQCAtMCwwICsxLDg0IEBACisjaW5jbHVkZSAiY2FjaGUuaCIKKyNpbmNsdWRlICJjb21taXQuaCIKKyNpbmNsdWRlICJwcmlvLXF1ZXVlLmgiCisKK3ZvaWQgcHJpb19xdWV1ZV9yZXZlcnNlKHN0cnVjdCBwcmlvX3F1ZXVlICpxdWV1ZSkKK3sKKwlpbnQgaSwgajsKKworCWlmIChxdWV1ZS0+Y29tcGFyZSAhPSBOVUxMKQorCQlkaWUoIkJVRzogcHJpb19xdWV1ZV9yZXZlcnNlKCkgb24gbm9uLUxJRk8gcXVldWUiKTsKKwlmb3IgKGkgPSAwOyBpIDw9IChqID0gKHF1ZXVlLT5uciAtIDEpIC0gaSk7IGkrKykgeworCQlzdHJ1Y3QgY29tbWl0ICpzd2FwID0gcXVldWUtPmFycmF5W2ldOworCQlxdWV1ZS0+YXJyYXlbaV0gPSBxdWV1ZS0+YXJyYXlbal07CisJCXF1ZXVlLT5hcnJheVtqXSA9IHN3YXA7CisJfQorfQorCit2b2lkIGNsZWFyX3ByaW9fcXVldWUoc3RydWN0IHByaW9fcXVldWUgKnF1ZXVlKQoreworCWZyZWUocXVldWUtPmFycmF5KTsKKwlxdWV1ZS0+bnIgPSAwOworCXF1ZXVlLT5hbGxvYyA9IDA7CisJcXVldWUtPmFycmF5ID0gTlVMTDsKK30KKwordm9pZCBwcmlvX3F1ZXVlX3B1dChzdHJ1Y3QgcHJpb19xdWV1ZSAqcXVldWUsIHZvaWQgKnRoaW5nKQoreworCXByaW9fcXVldWVfY29tcGFyZV9mbiBjb21wYXJlID0gcXVldWUtPmNvbXBhcmU7CisJaW50IGl4LCBwYXJlbnQ7CisKKwkvKiBBcHBlbmQgYXQgdGhlIGVuZCAqLworCUFMTE9DX0dST1cocXVldWUtPmFycmF5LCBxdWV1ZS0+bnIgKyAxLCBxdWV1ZS0+YWxsb2MpOworCXF1ZXVlLT5hcnJheVtxdWV1ZS0+bnIrK10gPSB0aGluZzsKKwlpZiAoIWNvbXBhcmUpCisJCXJldHVybjsgLyogTElGTyAqLworCisJLyogQnViYmxlIHVwIHRoZSBuZXcgb25lICovCisJZm9yIChpeCA9IHF1ZXVlLT5uciAtIDE7IGl4OyBpeCA9IHBhcmVudCkgeworCQlwYXJlbnQgPSAoaXggLSAxKSAvIDI7CisJCWlmIChjb21wYXJlKHF1ZXVlLT5hcnJheVtwYXJlbnRdLCBxdWV1ZS0+YXJyYXlbaXhdLAorCQkJICAgIHF1ZXVlLT5jYl9kYXRhKSA8PSAwKQorCQkJYnJlYWs7CisKKwkJdGhpbmcgPSBxdWV1ZS0+YXJyYXlbcGFyZW50XTsKKwkJcXVldWUtPmFycmF5W3BhcmVudF0gPSBxdWV1ZS0+YXJyYXlbaXhdOworCQlxdWV1ZS0+YXJyYXlbaXhdID0gdGhpbmc7CisJfQorfQorCit2b2lkICpwcmlvX3F1ZXVlX2dldChzdHJ1Y3QgcHJpb19xdWV1ZSAqcXVldWUpCit7CisJdm9pZCAqcmVzdWx0LCAqc3dhcDsKKwlpbnQgaXgsIGNoaWxkOworCXByaW9fcXVldWVfY29tcGFyZV9mbiBjb21wYXJlID0gcXVldWUtPmNvbXBhcmU7CisKKwlpZiAoIXF1ZXVlLT5ucikKKwkJcmV0dXJuIE5VTEw7CisJaWYgKCFjb21wYXJlKQorCQlyZXR1cm4gcXVldWUtPmFycmF5Wy0tcXVldWUtPm5yXTsgLyogTElGTyAqLworCisJcmVzdWx0ID0gcXVldWUtPmFycmF5WzBdOworCWlmICghLS1xdWV1ZS0+bnIpCisJCXJldHVybiByZXN1bHQ7CisKKwlxdWV1ZS0+YXJyYXlbMF0gPSBxdWV1ZS0+YXJyYXlbcXVldWUtPm5yXTsKKworCS8qIFB1c2ggZG93biB0aGUgb25lIGF0IHRoZSByb290ICovCisJZm9yIChpeCA9IDA7IGl4ICogMiArIDEgPCBxdWV1ZS0+bnI7IGl4ID0gY2hpbGQpIHsKKwkJY2hpbGQgPSBpeCAqIDIgKyAxOyAvKiBsZWZ0ICovCisJCWlmICgoY2hpbGQgKyAxIDwgcXVldWUtPm5yKSAmJgorCQkgICAgKGNvbXBhcmUocXVldWUtPmFycmF5W2NoaWxkXSwgcXVldWUtPmFycmF5W2NoaWxkICsgMV0sCisJCQkgICAgIHF1ZXVlLT5jYl9kYXRhKSA+PSAwKSkKKwkJCWNoaWxkKys7IC8qIHVzZSByaWdodCBjaGlsZCAqLworCisJCWlmIChjb21wYXJlKHF1ZXVlLT5hcnJheVtpeF0sIHF1ZXVlLT5hcnJheVtjaGlsZF0sCisJCQkgICAgcXVldWUtPmNiX2RhdGEpIDw9IDApCisJCQlicmVhazsKKworCQlzd2FwID0gcXVldWUtPmFycmF5W2NoaWxkXTsKKwkJcXVldWUtPmFycmF5W2NoaWxkXSA9IHF1ZXVlLT5hcnJheVtpeF07CisJCXF1ZXVlLT5hcnJheVtpeF0gPSBzd2FwOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvcHJpby1xdWV1ZS5oIGIvcHJpby1xdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljM2NkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9wcmlvLXF1ZXVlLmgKQEAgLTAsMCArMSw0OCBAQAorI2lmbmRlZiBQUklPX1FVRVVFX0gKKyNkZWZpbmUgUFJJT19RVUVVRV9ICisKKy8qCisgKiBBIHByaW9yaXR5IHF1ZXVlIGltcGxlbWVudGF0aW9uLCBwcmltYXJpbHkgZm9yIGtlZXBpbmcgdHJhY2sgb2YKKyAqIGNvbW1pdHMgaW4gdGhlICdkYXRlLW9yZGVyJyBzbyB0aGF0IHdlIHByb2Nlc3MgdGhlbSBmcm9tIG5ldyB0byBvbGQKKyAqIGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQsIGJ1dCBjYW4gYmUgdXNlZCB0byBob2xkIGFueSBwb2ludGVyIHRvCisgKiBzdHJ1Y3QuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBzdXBwbHlpbmcgYSBmdW5jdGlvbiB0bworICogY29tcGFyZSB0d28gInRoaW5ncyIuCisgKgorICogQWx0ZXJuYXRpdmVseSwgdGhpcyBkYXRhIHN0cnVjdHVyZSBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgTElGTyBzdGFjaworICogYnkgc3BlY2lmeWluZyBOVUxMIGFzIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uLgorICovCisKKy8qCisgKiBDb21wYXJlIHR3byAidGhpbmdzIiwgb25lIGFuZCB0d287IHRoZSB0aGlyZCBwYXJhbWV0ZXIgaXMgY2JfZGF0YQorICogaW4gdGhlIHByaW9fcXVldWUgc3RydWN0dXJlLiAgVGhlIHJlc3VsdCBpcyByZXR1cm5lZCBhcyBhIHNpZ24gb2YKKyAqIHRoZSByZXR1cm4gdmFsdWUsIGJlaW5nIHRoZSBzYW1lIGFzIHRoZSBzaWduIG9mIHRoZSByZXN1bHQgb2YKKyAqIHN1YnRyYWN0aW5nICJ0d28iIGZyb20gIm9uZSIgKGkuZS4gbmVnYXRpdmUgaWYgIm9uZSIgc29ydHMgZWFybGllcgorICogdGhhbiAidHdvIikuCisgKi8KK3R5cGVkZWYgaW50ICgqcHJpb19xdWV1ZV9jb21wYXJlX2ZuKShjb25zdCB2b2lkICpvbmUsIGNvbnN0IHZvaWQgKnR3bywgdm9pZCAqY2JfZGF0YSk7CisKK3N0cnVjdCBwcmlvX3F1ZXVlIHsKKwlwcmlvX3F1ZXVlX2NvbXBhcmVfZm4gY29tcGFyZTsKKwl2b2lkICpjYl9kYXRhOworCWludCBhbGxvYywgbnI7CisJdm9pZCAqKmFycmF5OworfTsKKworLyoKKyAqIEFkZCB0aGUgInRoaW5nIiB0byB0aGUgcXVldWUuCisgKi8KK2V4dGVybiB2b2lkIHByaW9fcXVldWVfcHV0KHN0cnVjdCBwcmlvX3F1ZXVlICosIHZvaWQgKnRoaW5nKTsKKworLyoKKyAqIEV4dHJhY3QgdGhlICJ0aGluZyIgdGhhdCBjb21wYXJlcyB0aGUgc21hbGxlc3Qgb3V0IG9mIHRoZSBxdWV1ZSwKKyAqIG9yIE5VTEwuICBJZiBjb21wYXJlIGZ1bmN0aW9uIGlzIE5VTEwsIHRoZSBxdWV1ZSBhY3RzIGFzIGEgTElGTworICogc3RhY2suCisgKi8KK2V4dGVybiB2b2lkICpwcmlvX3F1ZXVlX2dldChzdHJ1Y3QgcHJpb19xdWV1ZSAqKTsKKworZXh0ZXJuIHZvaWQgY2xlYXJfcHJpb19xdWV1ZShzdHJ1Y3QgcHJpb19xdWV1ZSAqKTsKKworLyogUmV2ZXJzZSB0aGUgTElGTyBlbGVtZW50cyAqLworZXh0ZXJuIHZvaWQgcHJpb19xdWV1ZV9yZXZlcnNlKHN0cnVjdCBwcmlvX3F1ZXVlICopOworCisjZW5kaWYgLyogUFJJT19RVUVVRV9IICovCmRpZmYgLS1naXQgYS9xdW90ZS5jIGIvcXVvdGUuYwppbmRleCA5MTEyMjlmLi41Yzg4MDgxIDEwMDY0NAotLS0gYS9xdW90ZS5jCisrKyBiL3F1b3RlLmMKQEAgLTMxMiw4MiArMzEyLDI3IEBACiAJZnB1dGModGVybWluYXRvciwgZnApOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciAqcGF0aF9yZWxhdGl2ZShjb25zdCBjaGFyICppbiwgaW50IGxlbiwKLQkJCQkgc3RydWN0IHN0cmJ1ZiAqc2IsIGNvbnN0IGNoYXIgKnByZWZpeCwKLQkJCQkgaW50IHByZWZpeF9sZW4pOwotCi12b2lkIHdyaXRlX25hbWVfcXVvdGVkX3JlbGF0aXZlKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBsZW4sCi0JCQkJY29uc3QgY2hhciAqcHJlZml4LCBzaXplX3QgcHJlZml4X2xlbiwKK3ZvaWQgd3JpdGVfbmFtZV9xdW90ZWRfcmVsYXRpdmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqcHJlZml4LAogCQkJCUZJTEUgKmZwLCBpbnQgdGVybWluYXRvcikKIHsKIAlzdHJ1Y3Qgc3RyYnVmIHNiID0gU1RSQlVGX0lOSVQ7CiAKLQluYW1lID0gcGF0aF9yZWxhdGl2ZShuYW1lLCBsZW4sICZzYiwgcHJlZml4LCBwcmVmaXhfbGVuKTsKKwluYW1lID0gcmVsYXRpdmVfcGF0aChuYW1lLCBwcmVmaXgsICZzYik7CiAJd3JpdGVfbmFtZV9xdW90ZWQobmFtZSwgZnAsIHRlcm1pbmF0b3IpOwogCiAJc3RyYnVmX3JlbGVhc2UoJnNiKTsKIH0KIAotLyoKLSAqIEdpdmUgcGF0aCBhcyByZWxhdGl2ZSB0byBwcmVmaXguCi0gKgotICogVGhlIHN0cmJ1ZiBtYXkgb3IgbWF5IG5vdCBiZSB1c2VkLCBzbyBkbyBub3QgYXNzdW1lIGl0IGNvbnRhaW5zIHRoZQotICogcmV0dXJuZWQgcGF0aC4KLSAqLwotc3RhdGljIGNvbnN0IGNoYXIgKnBhdGhfcmVsYXRpdmUoY29uc3QgY2hhciAqaW4sIGludCBsZW4sCi0JCQkJIHN0cnVjdCBzdHJidWYgKnNiLCBjb25zdCBjaGFyICpwcmVmaXgsCi0JCQkJIGludCBwcmVmaXhfbGVuKQotewotCWludCBvZmYsIGk7Ci0KLQlpZiAobGVuIDwgMCkKLQkJbGVuID0gc3RybGVuKGluKTsKLQlpZiAocHJlZml4X2xlbiA8IDApIHsKLQkJaWYgKHByZWZpeCkKLQkJCXByZWZpeF9sZW4gPSBzdHJsZW4ocHJlZml4KTsKLQkJZWxzZQotCQkJcHJlZml4X2xlbiA9IDA7Ci0JfQotCi0Jb2ZmID0gMDsKLQlpID0gMDsKLQl3aGlsZSAoaSA8IHByZWZpeF9sZW4gJiYgaSA8IGxlbiAmJiBwcmVmaXhbaV0gPT0gaW5baV0pIHsKLQkJaWYgKHByZWZpeFtpXSA9PSAnLycpCi0JCQlvZmYgPSBpICsgMTsKLQkJaSsrOwotCX0KLQlpbiArPSBvZmY7Ci0JbGVuIC09IG9mZjsKLQotCWlmIChpID49IHByZWZpeF9sZW4pCi0JCXJldHVybiBpbjsKLQotCXN0cmJ1Zl9yZXNldChzYik7Ci0Jc3RyYnVmX2dyb3coc2IsIGxlbik7Ci0KLQl3aGlsZSAoaSA8IHByZWZpeF9sZW4pIHsKLQkJaWYgKHByZWZpeFtpXSA9PSAnLycpCi0JCQlzdHJidWZfYWRkc3RyKHNiLCAiLi4vIik7Ci0JCWkrKzsKLQl9Ci0Jc3RyYnVmX2FkZChzYiwgaW4sIGxlbik7Ci0KLQlyZXR1cm4gc2ItPmJ1ZjsKLX0KLQogLyogcXVvdGUgcGF0aCBhcyByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gcHJlZml4ICovCi1jaGFyICpxdW90ZV9wYXRoX3JlbGF0aXZlKGNvbnN0IGNoYXIgKmluLCBpbnQgbGVuLAotCQkJICBzdHJ1Y3Qgc3RyYnVmICpvdXQsIGNvbnN0IGNoYXIgKnByZWZpeCkKK2NoYXIgKnF1b3RlX3BhdGhfcmVsYXRpdmUoY29uc3QgY2hhciAqaW4sIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCSAgc3RydWN0IHN0cmJ1ZiAqb3V0KQogewogCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKLQljb25zdCBjaGFyICpyZWwgPSBwYXRoX3JlbGF0aXZlKGluLCBsZW4sICZzYiwgcHJlZml4LCAtMSk7CisJY29uc3QgY2hhciAqcmVsID0gcmVsYXRpdmVfcGF0aChpbiwgcHJlZml4LCAmc2IpOwogCXN0cmJ1Zl9yZXNldChvdXQpOwogCXF1b3RlX2Nfc3R5bGVfY291bnRlZChyZWwsIHN0cmxlbihyZWwpLCBvdXQsIE5VTEwsIDApOwogCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiAKLQlpZiAoIW91dC0+bGVuKQotCQlzdHJidWZfYWRkc3RyKG91dCwgIi4vIik7Ci0KIAlyZXR1cm4gb3V0LT5idWY7CiB9CiAKZGlmZiAtLWdpdCBhL3F1b3RlLmggYi9xdW90ZS5oCmluZGV4IDEzMzE1NWEuLmVkMTEwYTUgMTAwNjQ0Ci0tLSBhL3F1b3RlLmgKKysrIGIvcXVvdGUuaApAQCAtNjAsMTMgKzYwLDEyIEBACiBleHRlcm4gdm9pZCB3cml0ZV9uYW1lX3F1b3RlZChjb25zdCBjaGFyICpuYW1lLCBGSUxFICosIGludCB0ZXJtaW5hdG9yKTsKIGV4dGVybiB2b2lkIHdyaXRlX25hbWVfcXVvdGVkcGZ4KGNvbnN0IGNoYXIgKnBmeCwgc2l6ZV90IHBmeGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIEZJTEUgKiwgaW50IHRlcm1pbmF0b3IpOwotZXh0ZXJuIHZvaWQgd3JpdGVfbmFtZV9xdW90ZWRfcmVsYXRpdmUoY29uc3QgY2hhciAqbmFtZSwgc2l6ZV90IGxlbiwKLQkJY29uc3QgY2hhciAqcHJlZml4LCBzaXplX3QgcHJlZml4X2xlbiwKK2V4dGVybiB2b2lkIHdyaXRlX25hbWVfcXVvdGVkX3JlbGF0aXZlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJRklMRSAqZnAsIGludCB0ZXJtaW5hdG9yKTsKIAogLyogcXVvdGUgcGF0aCBhcyByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gcHJlZml4ICovCi1leHRlcm4gY2hhciAqcXVvdGVfcGF0aF9yZWxhdGl2ZShjb25zdCBjaGFyICppbiwgaW50IGxlbiwKLQkJCSAgc3RydWN0IHN0cmJ1ZiAqb3V0LCBjb25zdCBjaGFyICpwcmVmaXgpOworZXh0ZXJuIGNoYXIgKnF1b3RlX3BhdGhfcmVsYXRpdmUoY29uc3QgY2hhciAqaW4sIGNvbnN0IGNoYXIgKnByZWZpeCwKKwkJCSAgc3RydWN0IHN0cmJ1ZiAqb3V0KTsKIAogLyogcXVvdGluZyBhcyBhIHN0cmluZyBsaXRlcmFsIGZvciBvdGhlciBsYW5ndWFnZXMgKi8KIGV4dGVybiB2b2lkIHBlcmxfcXVvdGVfcHJpbnQoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpzcmMpOwpkaWZmIC0tZ2l0IGEvcmVhZC1jYWNoZS5jIGIvcmVhZC1jYWNoZS5jCmluZGV4IDA0ZWQ1NjEuLmMzZDVlMzUgMTAwNjQ0Ci0tLSBhL3JlYWQtY2FjaGUuYworKysgYi9yZWFkLWNhY2hlLmMKQEAgLTY3LDYgKzY3LDYxIEBACiAJYWRkX2luZGV4X2VudHJ5KGlzdGF0ZSwgbmV3LCBBRERfQ0FDSEVfT0tfVE9fQUREfEFERF9DQUNIRV9PS19UT19SRVBMQUNFKTsKIH0KIAordm9pZCBmaWxsX3N0YXRfZGF0YShzdHJ1Y3Qgc3RhdF9kYXRhICpzZCwgc3RydWN0IHN0YXQgKnN0KQoreworCXNkLT5zZF9jdGltZS5zZWMgPSAodW5zaWduZWQgaW50KXN0LT5zdF9jdGltZTsKKwlzZC0+c2RfbXRpbWUuc2VjID0gKHVuc2lnbmVkIGludClzdC0+c3RfbXRpbWU7CisJc2QtPnNkX2N0aW1lLm5zZWMgPSBTVF9DVElNRV9OU0VDKCpzdCk7CisJc2QtPnNkX210aW1lLm5zZWMgPSBTVF9NVElNRV9OU0VDKCpzdCk7CisJc2QtPnNkX2RldiA9IHN0LT5zdF9kZXY7CisJc2QtPnNkX2lubyA9IHN0LT5zdF9pbm87CisJc2QtPnNkX3VpZCA9IHN0LT5zdF91aWQ7CisJc2QtPnNkX2dpZCA9IHN0LT5zdF9naWQ7CisJc2QtPnNkX3NpemUgPSBzdC0+c3Rfc2l6ZTsKK30KKworaW50IG1hdGNoX3N0YXRfZGF0YShjb25zdCBzdHJ1Y3Qgc3RhdF9kYXRhICpzZCwgc3RydWN0IHN0YXQgKnN0KQoreworCWludCBjaGFuZ2VkID0gMDsKKworCWlmIChzZC0+c2RfbXRpbWUuc2VjICE9ICh1bnNpZ25lZCBpbnQpc3QtPnN0X210aW1lKQorCQljaGFuZ2VkIHw9IE1USU1FX0NIQU5HRUQ7CisJaWYgKHRydXN0X2N0aW1lICYmIGNoZWNrX3N0YXQgJiYKKwkgICAgc2QtPnNkX2N0aW1lLnNlYyAhPSAodW5zaWduZWQgaW50KXN0LT5zdF9jdGltZSkKKwkJY2hhbmdlZCB8PSBDVElNRV9DSEFOR0VEOworCisjaWZkZWYgVVNFX05TRUMKKwlpZiAoY2hlY2tfc3RhdCAmJiBzZC0+c2RfbXRpbWUubnNlYyAhPSBTVF9NVElNRV9OU0VDKCpzdCkpCisJCWNoYW5nZWQgfD0gTVRJTUVfQ0hBTkdFRDsKKwlpZiAodHJ1c3RfY3RpbWUgJiYgY2hlY2tfc3RhdCAmJgorCSAgICBzZC0+c2RfY3RpbWUubnNlYyAhPSBTVF9DVElNRV9OU0VDKCpzdCkpCisJCWNoYW5nZWQgfD0gQ1RJTUVfQ0hBTkdFRDsKKyNlbmRpZgorCisJaWYgKGNoZWNrX3N0YXQpIHsKKwkJaWYgKHNkLT5zZF91aWQgIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X3VpZCB8fAorCQkJc2QtPnNkX2dpZCAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfZ2lkKQorCQkJY2hhbmdlZCB8PSBPV05FUl9DSEFOR0VEOworCQlpZiAoc2QtPnNkX2lubyAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfaW5vKQorCQkJY2hhbmdlZCB8PSBJTk9ERV9DSEFOR0VEOworCX0KKworI2lmZGVmIFVTRV9TVERFVgorCS8qCisJICogc3RfZGV2IGJyZWFrcyBvbiBuZXR3b3JrIGZpbGVzeXN0ZW1zIHdoZXJlIGRpZmZlcmVudAorCSAqIGNsaWVudHMgd2lsbCBoYXZlIGRpZmZlcmVudCB2aWV3cyBvZiB3aGF0ICJkZXZpY2UiCisJICogdGhlIGZpbGVzeXN0ZW0gaXMgb24KKwkgKi8KKwlpZiAoY2hlY2tfc3RhdCAmJiBzZC0+c2RfZGV2ICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF9kZXYpCisJCQljaGFuZ2VkIHw9IElOT0RFX0NIQU5HRUQ7CisjZW5kaWYKKworCWlmIChzZC0+c2Rfc2l6ZSAhPSAodW5zaWduZWQgaW50KSBzdC0+c3Rfc2l6ZSkKKwkJY2hhbmdlZCB8PSBEQVRBX0NIQU5HRUQ7CisKKwlyZXR1cm4gY2hhbmdlZDsKK30KKwogLyoKICAqIFRoaXMgb25seSB1cGRhdGVzIHRoZSAibm9uLWNyaXRpY2FsIiBwYXJ0cyBvZiB0aGUgZGlyZWN0b3J5CiAgKiBjYWNoZSwgaWUgdGhlIHBhcnRzIHRoYXQgYXJlbid0IHRyYWNrZWQgYnkgR0lULCBhbmQgb25seSB1c2VkCkBAIC03NCwxNSArMTI5LDcgQEAKICAqLwogdm9pZCBmaWxsX3N0YXRfY2FjaGVfaW5mbyhzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QpCiB7Ci0JY2UtPmNlX2N0aW1lLnNlYyA9ICh1bnNpZ25lZCBpbnQpc3QtPnN0X2N0aW1lOwotCWNlLT5jZV9tdGltZS5zZWMgPSAodW5zaWduZWQgaW50KXN0LT5zdF9tdGltZTsKLQljZS0+Y2VfY3RpbWUubnNlYyA9IFNUX0NUSU1FX05TRUMoKnN0KTsKLQljZS0+Y2VfbXRpbWUubnNlYyA9IFNUX01USU1FX05TRUMoKnN0KTsKLQljZS0+Y2VfZGV2ID0gc3QtPnN0X2RldjsKLQljZS0+Y2VfaW5vID0gc3QtPnN0X2lubzsKLQljZS0+Y2VfdWlkID0gc3QtPnN0X3VpZDsKLQljZS0+Y2VfZ2lkID0gc3QtPnN0X2dpZDsKLQljZS0+Y2Vfc2l6ZSA9IHN0LT5zdF9zaXplOworCWZpbGxfc3RhdF9kYXRhKCZjZS0+Y2Vfc3RhdF9kYXRhLCBzdCk7CiAKIAlpZiAoYXNzdW1lX3VuY2hhbmdlZCkKIAkJY2UtPmNlX2ZsYWdzIHw9IENFX1ZBTElEOwpAQCAtOTEsNyArMTM4LDcgQEAKIAkJY2VfbWFya191cHRvZGF0ZShjZSk7CiB9CiAKLXN0YXRpYyBpbnQgY2VfY29tcGFyZV9kYXRhKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCkKK3N0YXRpYyBpbnQgY2VfY29tcGFyZV9kYXRhKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCkKIHsKIAlpbnQgbWF0Y2ggPSAtMTsKIAlpbnQgZmQgPSBvcGVuKGNlLT5uYW1lLCBPX1JET05MWSk7CkBAIC0xMDUsNyArMTUyLDcgQEAKIAlyZXR1cm4gbWF0Y2g7CiB9CiAKLXN0YXRpYyBpbnQgY2VfY29tcGFyZV9saW5rKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHNpemVfdCBleHBlY3RlZF9zaXplKQorc3RhdGljIGludCBjZV9jb21wYXJlX2xpbmsoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc2l6ZV90IGV4cGVjdGVkX3NpemUpCiB7CiAJaW50IG1hdGNoID0gLTE7CiAJdm9pZCAqYnVmZmVyOwpAQCAtMTI2LDcgKzE3Myw3IEBACiAJcmV0dXJuIG1hdGNoOwogfQogCi1zdGF0aWMgaW50IGNlX2NvbXBhcmVfZ2l0bGluayhzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQorc3RhdGljIGludCBjZV9jb21wYXJlX2dpdGxpbmsoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOwogCkBAIC0xNDMsNyArMTkwLDcgQEAKIAlyZXR1cm4gaGFzaGNtcChzaGExLCBjZS0+c2hhMSk7CiB9CiAKLXN0YXRpYyBpbnQgY2VfbW9kaWZpZWRfY2hlY2tfZnMoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQorc3RhdGljIGludCBjZV9tb2RpZmllZF9jaGVja19mcyhjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QpCiB7CiAJc3dpdGNoIChzdC0+c3RfbW9kZSAmIFNfSUZNVCkgewogCWNhc2UgU19JRlJFRzoKQEAgLTE2Myw3ICsyMTAsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNlX21hdGNoX3N0YXRfYmFzaWMoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0KQorc3RhdGljIGludCBjZV9tYXRjaF9zdGF0X2Jhc2ljKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCBzdGF0ICpzdCkKIHsKIAl1bnNpZ25lZCBpbnQgY2hhbmdlZCA9IDA7CiAKQEAgLTE5NSw0MyArMjQyLDExIEBACiAJZGVmYXVsdDoKIAkJZGllKCJpbnRlcm5hbCBlcnJvcjogY2VfbW9kZSBpcyAlbyIsIGNlLT5jZV9tb2RlKTsKIAl9Ci0JaWYgKGNlLT5jZV9tdGltZS5zZWMgIT0gKHVuc2lnbmVkIGludClzdC0+c3RfbXRpbWUpCi0JCWNoYW5nZWQgfD0gTVRJTUVfQ0hBTkdFRDsKLQlpZiAodHJ1c3RfY3RpbWUgJiYgY2hlY2tfc3RhdCAmJgotCSAgICBjZS0+Y2VfY3RpbWUuc2VjICE9ICh1bnNpZ25lZCBpbnQpc3QtPnN0X2N0aW1lKQotCQljaGFuZ2VkIHw9IENUSU1FX0NIQU5HRUQ7CiAKLSNpZmRlZiBVU0VfTlNFQwotCWlmIChjaGVja19zdGF0ICYmIGNlLT5jZV9tdGltZS5uc2VjICE9IFNUX01USU1FX05TRUMoKnN0KSkKLQkJY2hhbmdlZCB8PSBNVElNRV9DSEFOR0VEOwotCWlmICh0cnVzdF9jdGltZSAmJiBjaGVja19zdGF0ICYmCi0JICAgIGNlLT5jZV9jdGltZS5uc2VjICE9IFNUX0NUSU1FX05TRUMoKnN0KSkKLQkJY2hhbmdlZCB8PSBDVElNRV9DSEFOR0VEOwotI2VuZGlmCi0KLQlpZiAoY2hlY2tfc3RhdCkgewotCQlpZiAoY2UtPmNlX3VpZCAhPSAodW5zaWduZWQgaW50KSBzdC0+c3RfdWlkIHx8Ci0JCQljZS0+Y2VfZ2lkICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF9naWQpCi0JCQljaGFuZ2VkIHw9IE9XTkVSX0NIQU5HRUQ7Ci0JCWlmIChjZS0+Y2VfaW5vICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF9pbm8pCi0JCQljaGFuZ2VkIHw9IElOT0RFX0NIQU5HRUQ7Ci0JfQotCi0jaWZkZWYgVVNFX1NUREVWCi0JLyoKLQkgKiBzdF9kZXYgYnJlYWtzIG9uIG5ldHdvcmsgZmlsZXN5c3RlbXMgd2hlcmUgZGlmZmVyZW50Ci0JICogY2xpZW50cyB3aWxsIGhhdmUgZGlmZmVyZW50IHZpZXdzIG9mIHdoYXQgImRldmljZSIKLQkgKiB0aGUgZmlsZXN5c3RlbSBpcyBvbgotCSAqLwotCWlmIChjaGVja19zdGF0ICYmIGNlLT5jZV9kZXYgIT0gKHVuc2lnbmVkIGludCkgc3QtPnN0X2RldikKLQkJCWNoYW5nZWQgfD0gSU5PREVfQ0hBTkdFRDsKLSNlbmRpZgotCi0JaWYgKGNlLT5jZV9zaXplICE9ICh1bnNpZ25lZCBpbnQpIHN0LT5zdF9zaXplKQotCQljaGFuZ2VkIHw9IERBVEFfQ0hBTkdFRDsKKwljaGFuZ2VkIHw9IG1hdGNoX3N0YXRfZGF0YSgmY2UtPmNlX3N0YXRfZGF0YSwgc3QpOwogCiAJLyogUmFjaWx5IHNtdWRnZWQgZW50cnk/ICovCi0JaWYgKCFjZS0+Y2Vfc2l6ZSkgeworCWlmICghY2UtPmNlX3N0YXRfZGF0YS5zZF9zaXplKSB7CiAJCWlmICghaXNfZW1wdHlfYmxvYl9zaGExKGNlLT5zaGExKSkKIAkJCWNoYW5nZWQgfD0gREFUQV9DSEFOR0VEOwogCX0KQEAgLTIzOSwyMyArMjU0LDI0IEBACiAJcmV0dXJuIGNoYW5nZWQ7CiB9CiAKLXN0YXRpYyBpbnQgaXNfcmFjeV90aW1lc3RhbXAoY29uc3Qgc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgaW50IGlzX3JhY3lfdGltZXN0YW1wKGNvbnN0IHN0cnVjdCBpbmRleF9zdGF0ZSAqaXN0YXRlLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlKQogewogCXJldHVybiAoIVNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSAmJgogCQlpc3RhdGUtPnRpbWVzdGFtcC5zZWMgJiYKICNpZmRlZiBVU0VfTlNFQwogCQkgLyogbmFub3NlY29uZCB0aW1lc3RhbXBlZCBmaWxlcyBjYW4gYWxzbyBiZSByYWN5ISAqLwotCQkoaXN0YXRlLT50aW1lc3RhbXAuc2VjIDwgY2UtPmNlX210aW1lLnNlYyB8fAotCQkgKGlzdGF0ZS0+dGltZXN0YW1wLnNlYyA9PSBjZS0+Y2VfbXRpbWUuc2VjICYmCi0JCSAgaXN0YXRlLT50aW1lc3RhbXAubnNlYyA8PSBjZS0+Y2VfbXRpbWUubnNlYykpCisJCShpc3RhdGUtPnRpbWVzdGFtcC5zZWMgPCBjZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLnNlYyB8fAorCQkgKGlzdGF0ZS0+dGltZXN0YW1wLnNlYyA9PSBjZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLnNlYyAmJgorCQkgIGlzdGF0ZS0+dGltZXN0YW1wLm5zZWMgPD0gY2UtPmNlX3N0YXRfZGF0YS5zZF9tdGltZS5uc2VjKSkKICNlbHNlCi0JCWlzdGF0ZS0+dGltZXN0YW1wLnNlYyA8PSBjZS0+Y2VfbXRpbWUuc2VjCisJCWlzdGF0ZS0+dGltZXN0YW1wLnNlYyA8PSBjZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLnNlYwogI2VuZGlmCiAJCSApOwogfQogCiBpbnQgaWVfbWF0Y2hfc3RhdChjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwKLQkJICBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3Qgc3RhdCAqc3QsCisJCSAgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LAogCQkgIHVuc2lnbmVkIGludCBvcHRpb25zKQogewogCXVuc2lnbmVkIGludCBjaGFuZ2VkOwpAQCAtMzExLDcgKzMyNyw4IEBACiB9CiAKIGludCBpZV9tb2RpZmllZChjb25zdCBzdHJ1Y3QgaW5kZXhfc3RhdGUgKmlzdGF0ZSwKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LCB1bnNpZ25lZCBpbnQgb3B0aW9ucykKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJc3RydWN0IHN0YXQgKnN0LCB1bnNpZ25lZCBpbnQgb3B0aW9ucykKIHsKIAlpbnQgY2hhbmdlZCwgY2hhbmdlZF9mczsKIApAQCAtMzQwLDcgKzM1Nyw3IEBACiAJICogdGhlbiB3ZSBrbm93IGl0IGlzLgogCSAqLwogCWlmICgoY2hhbmdlZCAmIERBVEFfQ0hBTkdFRCkgJiYKLQkgICAgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSB8fCBjZS0+Y2Vfc2l6ZSAhPSAwKSkKKwkgICAgKFNfSVNHSVRMSU5LKGNlLT5jZV9tb2RlKSB8fCBjZS0+Y2Vfc3RhdF9kYXRhLnNkX3NpemUgIT0gMCkpCiAJCXJldHVybiBjaGFuZ2VkOwogCiAJY2hhbmdlZF9mcyA9IGNlX21vZGlmaWVkX2NoZWNrX2ZzKGNlLCBzdCk7CkBAIC00NzIsNyArNDg5LDcgQEAKIH0KIAogLyoKLSAqIFJlbW92ZSBhbGwgY2FjaGUgZW50ZW50cmllcyBtYXJrZWQgZm9yIHJlbW92YWwsIHRoYXQgaXMgd2hlcmUKKyAqIFJlbW92ZSBhbGwgY2FjaGUgZW50cmllcyBtYXJrZWQgZm9yIHJlbW92YWwsIHRoYXQgaXMgd2hlcmUKICAqIENFX1JFTU9WRSBpcyBzZXQgaW4gY2VfZmxhZ3MuICBUaGlzIGlzIG11Y2ggbW9yZSBlZmZlY3RpdmUgdGhhbgogICogY2FsbGluZyByZW1vdmVfaW5kZXhfZW50cnlfYXQoKSBmb3IgZWFjaCBlbnRyeSB0byBiZSByZW1vdmVkLgogICovCkBAIC02MjYsNyArNjQzLDcgQEAKIAkJCWlmICgqcHRyID09ICcvJykgewogCQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqZm91bmRjZTsKIAkJCQkrK3B0cjsKLQkJCQlmb3VuZGNlID0gaW5kZXhfbmFtZV9leGlzdHMoJnRoZV9pbmRleCwgY2UtPm5hbWUsIHB0ciAtIGNlLT5uYW1lLCBpZ25vcmVfY2FzZSk7CisJCQkJZm91bmRjZSA9IGluZGV4X25hbWVfZXhpc3RzKGlzdGF0ZSwgY2UtPm5hbWUsIHB0ciAtIGNlLT5uYW1lLCBpZ25vcmVfY2FzZSk7CiAJCQkJaWYgKGZvdW5kY2UpIHsKIAkJCQkJbWVtY3B5KCh2b2lkICopc3RhcnRQdHIsIGZvdW5kY2UtPm5hbWUgKyAoc3RhcnRQdHIgLSBjZS0+bmFtZSksIHB0ciAtIHN0YXJ0UHRyKTsKIAkJCQkJc3RhcnRQdHIgPSBwdHI7CkBAIC03MDUsNyArNzIyLDcgQEAKIAlyZXR1cm4gY2U7CiB9CiAKLWludCBjZV9zYW1lX25hbWUoc3RydWN0IGNhY2hlX2VudHJ5ICphLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmIpCitpbnQgY2Vfc2FtZV9uYW1lKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYSwgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpiKQogewogCWludCBsZW4gPSBjZV9uYW1lbGVuKGEpOwogCXJldHVybiBjZV9uYW1lbGVuKGIpID09IGxlbiAmJiAhbWVtY21wKGEtPm5hbWUsIGItPm5hbWUsIGxlbik7CkBAIC05NzksNyArOTk2LDcgQEAKIAlpZiAoaXN0YXRlLT5jYWNoZV9uciA9PSBpc3RhdGUtPmNhY2hlX2FsbG9jKSB7CiAJCWlzdGF0ZS0+Y2FjaGVfYWxsb2MgPSBhbGxvY19ucihpc3RhdGUtPmNhY2hlX2FsbG9jKTsKIAkJaXN0YXRlLT5jYWNoZSA9IHhyZWFsbG9jKGlzdGF0ZS0+Y2FjaGUsCi0JCQkJCWlzdGF0ZS0+Y2FjaGVfYWxsb2MgKiBzaXplb2Yoc3RydWN0IGNhY2hlX2VudHJ5ICopKTsKKwkJCQkJaXN0YXRlLT5jYWNoZV9hbGxvYyAqIHNpemVvZigqaXN0YXRlLT5jYWNoZSkpOwogCX0KIAogCS8qIEFkZCBpdCBpbi4uICovCkBAIC0xMzIyLDE2ICsxMzM5LDE2IEBACiB7CiAJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IHhtYWxsb2MoY2FjaGVfZW50cnlfc2l6ZShsZW4pKTsKIAotCWNlLT5jZV9jdGltZS5zZWMgPSBudG9oX2wob25kaXNrLT5jdGltZS5zZWMpOwotCWNlLT5jZV9tdGltZS5zZWMgPSBudG9oX2wob25kaXNrLT5tdGltZS5zZWMpOwotCWNlLT5jZV9jdGltZS5uc2VjID0gbnRvaF9sKG9uZGlzay0+Y3RpbWUubnNlYyk7Ci0JY2UtPmNlX210aW1lLm5zZWMgPSBudG9oX2wob25kaXNrLT5tdGltZS5uc2VjKTsKLQljZS0+Y2VfZGV2ICAgPSBudG9oX2wob25kaXNrLT5kZXYpOwotCWNlLT5jZV9pbm8gICA9IG50b2hfbChvbmRpc2stPmlubyk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9jdGltZS5zZWMgPSBudG9oX2wob25kaXNrLT5jdGltZS5zZWMpOworCWNlLT5jZV9zdGF0X2RhdGEuc2RfbXRpbWUuc2VjID0gbnRvaF9sKG9uZGlzay0+bXRpbWUuc2VjKTsKKwljZS0+Y2Vfc3RhdF9kYXRhLnNkX2N0aW1lLm5zZWMgPSBudG9oX2wob25kaXNrLT5jdGltZS5uc2VjKTsKKwljZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLm5zZWMgPSBudG9oX2wob25kaXNrLT5tdGltZS5uc2VjKTsKKwljZS0+Y2Vfc3RhdF9kYXRhLnNkX2RldiAgID0gbnRvaF9sKG9uZGlzay0+ZGV2KTsKKwljZS0+Y2Vfc3RhdF9kYXRhLnNkX2lubyAgID0gbnRvaF9sKG9uZGlzay0+aW5vKTsKIAljZS0+Y2VfbW9kZSAgPSBudG9oX2wob25kaXNrLT5tb2RlKTsKLQljZS0+Y2VfdWlkICAgPSBudG9oX2wob25kaXNrLT51aWQpOwotCWNlLT5jZV9naWQgICA9IG50b2hfbChvbmRpc2stPmdpZCk7Ci0JY2UtPmNlX3NpemUgID0gbnRvaF9sKG9uZGlzay0+c2l6ZSk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF91aWQgICA9IG50b2hfbChvbmRpc2stPnVpZCk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9naWQgICA9IG50b2hfbChvbmRpc2stPmdpZCk7CisJY2UtPmNlX3N0YXRfZGF0YS5zZF9zaXplICA9IG50b2hfbChvbmRpc2stPnNpemUpOwogCWNlLT5jZV9mbGFncyA9IGZsYWdzICYgfkNFX05BTUVNQVNLOwogCWNlLT5jZV9uYW1lbGVuID0gbGVuOwogCWhhc2hjcHkoY2UtPnNoYTEsIG9uZGlzay0+c2hhMSk7CkBAIC0xNDQ5LDcgKzE0NjYsNyBAQAogCWlzdGF0ZS0+dmVyc2lvbiA9IG50b2hsKGhkci0+aGRyX3ZlcnNpb24pOwogCWlzdGF0ZS0+Y2FjaGVfbnIgPSBudG9obChoZHItPmhkcl9lbnRyaWVzKTsKIAlpc3RhdGUtPmNhY2hlX2FsbG9jID0gYWxsb2NfbnIoaXN0YXRlLT5jYWNoZV9ucik7Ci0JaXN0YXRlLT5jYWNoZSA9IHhjYWxsb2MoaXN0YXRlLT5jYWNoZV9hbGxvYywgc2l6ZW9mKHN0cnVjdCBjYWNoZV9lbnRyeSAqKSk7CisJaXN0YXRlLT5jYWNoZSA9IHhjYWxsb2MoaXN0YXRlLT5jYWNoZV9hbGxvYywgc2l6ZW9mKCppc3RhdGUtPmNhY2hlKSk7CiAJaXN0YXRlLT5pbml0aWFsaXplZCA9IDE7CiAKIAlpZiAoaXN0YXRlLT52ZXJzaW9uID09IDQpCkBAIC0xNTE4LDggKzE1MzUsOSBAQAogCWZyZWVfbmFtZV9oYXNoKGlzdGF0ZSk7CiAJY2FjaGVfdHJlZV9mcmVlKCYoaXN0YXRlLT5jYWNoZV90cmVlKSk7CiAJaXN0YXRlLT5pbml0aWFsaXplZCA9IDA7Ci0KLQkvKiBubyBuZWVkIHRvIHRocm93IGF3YXkgYWxsb2NhdGVkIGFjdGl2ZV9jYWNoZSAqLworCWZyZWUoaXN0YXRlLT5jYWNoZSk7CisJaXN0YXRlLT5jYWNoZSA9IE5VTEw7CisJaXN0YXRlLT5jYWNoZV9hbGxvYyA9IDA7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2MDgsNyArMTYyNiw3IEBACiAJICogVGhlIG9ubHkgdGhpbmcgd2UgY2FyZSBhYm91dCBpbiB0aGlzIGZ1bmN0aW9uIGlzIHRvIHNtdWRnZSB0aGUKIAkgKiBmYWxzZWx5IGNsZWFuIGVudHJ5IGR1ZSB0byB0b3VjaC11cGRhdGUtdG91Y2ggcmFjZSwgc28gd2UgbGVhdmUKIAkgKiBldmVyeXRoaW5nIGVsc2UgYXMgdGhleSBhcmUuICBXZSBhcmUgY2FsbGVkIGZvciBlbnRyaWVzIHdob3NlCi0JICogY2VfbXRpbWUgbWF0Y2ggdGhlIGluZGV4IGZpbGUgbXRpbWUuCisJICogY2Vfc3RhdF9kYXRhLnNkX210aW1lIG1hdGNoIHRoZSBpbmRleCBmaWxlIG10aW1lLgogCSAqCiAJICogTm90ZSB0aGF0IHRoaXMgYWN0dWFsbHkgZG9lcyBub3QgZG8gbXVjaCBmb3IgZ2l0bGlua3MsIGZvcgogCSAqIHdoaWNoIGNlX21hdGNoX3N0YXRfYmFzaWMoKSBhbHdheXMgZ29lcyB0byB0aGUgYWN0dWFsCkBAIC0xNjQ3LDcgKzE2NjUsNyBAQAogCQkgKiBmaWxlLCBhbmQgbmV2ZXIgY2FsbHMgdXMsIHNvIHRoZSBjYWNoZWQgc2l6ZSBpbmZvcm1hdGlvbgogCQkgKiBmb3IgImZyb3R6IiBzdGF5cyA2IHdoaWNoIGRvZXMgbm90IG1hdGNoIHRoZSBmaWxlc3lzdGVtLgogCQkgKi8KLQkJY2UtPmNlX3NpemUgPSAwOworCQljZS0+Y2Vfc3RhdF9kYXRhLnNkX3NpemUgPSAwOwogCX0KIH0KIApAQCAtMTY1NywxNiArMTY3NSwxNiBAQAogewogCXNob3J0IGZsYWdzOwogCi0Jb25kaXNrLT5jdGltZS5zZWMgPSBodG9ubChjZS0+Y2VfY3RpbWUuc2VjKTsKLQlvbmRpc2stPm10aW1lLnNlYyA9IGh0b25sKGNlLT5jZV9tdGltZS5zZWMpOwotCW9uZGlzay0+Y3RpbWUubnNlYyA9IGh0b25sKGNlLT5jZV9jdGltZS5uc2VjKTsKLQlvbmRpc2stPm10aW1lLm5zZWMgPSBodG9ubChjZS0+Y2VfbXRpbWUubnNlYyk7Ci0Jb25kaXNrLT5kZXYgID0gaHRvbmwoY2UtPmNlX2Rldik7Ci0Jb25kaXNrLT5pbm8gID0gaHRvbmwoY2UtPmNlX2lubyk7CisJb25kaXNrLT5jdGltZS5zZWMgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX2N0aW1lLnNlYyk7CisJb25kaXNrLT5tdGltZS5zZWMgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLnNlYyk7CisJb25kaXNrLT5jdGltZS5uc2VjID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9jdGltZS5uc2VjKTsKKwlvbmRpc2stPm10aW1lLm5zZWMgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX210aW1lLm5zZWMpOworCW9uZGlzay0+ZGV2ICA9IGh0b25sKGNlLT5jZV9zdGF0X2RhdGEuc2RfZGV2KTsKKwlvbmRpc2stPmlubyAgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX2lubyk7CiAJb25kaXNrLT5tb2RlID0gaHRvbmwoY2UtPmNlX21vZGUpOwotCW9uZGlzay0+dWlkICA9IGh0b25sKGNlLT5jZV91aWQpOwotCW9uZGlzay0+Z2lkICA9IGh0b25sKGNlLT5jZV9naWQpOwotCW9uZGlzay0+c2l6ZSA9IGh0b25sKGNlLT5jZV9zaXplKTsKKwlvbmRpc2stPnVpZCAgPSBodG9ubChjZS0+Y2Vfc3RhdF9kYXRhLnNkX3VpZCk7CisJb25kaXNrLT5naWQgID0gaHRvbmwoY2UtPmNlX3N0YXRfZGF0YS5zZF9naWQpOworCW9uZGlzay0+c2l6ZSA9IGh0b25sKGNlLT5jZV9zdGF0X2RhdGEuc2Rfc2l6ZSk7CiAJaGFzaGNweShvbmRpc2stPnNoYTEsIGNlLT5zaGExKTsKIAogCWZsYWdzID0gY2UtPmNlX2ZsYWdzOwpAQCAtMTc0Miw3ICsxNzYwLDcgQEAKIH0KIAogLyoKLSAqIE9wcG9ydHVuaXN0aWNseSB1cGRhdGUgdGhlIGluZGV4IGJ1dCBkbyBub3QgY29tcGxhaW4gaWYgd2UgY2FuJ3QKKyAqIE9wcG9ydHVuaXN0aWNhbGx5IHVwZGF0ZSB0aGUgaW5kZXggYnV0IGRvIG5vdCBjb21wbGFpbiBpZiB3ZSBjYW4ndAogICovCiB2b2lkIHVwZGF0ZV9pbmRleF9pZl9hYmxlKHN0cnVjdCBpbmRleF9zdGF0ZSAqaXN0YXRlLCBzdHJ1Y3QgbG9ja19maWxlICpsb2NrZmlsZSkKIHsKQEAgLTE5MzMsMyArMTk1MSwzMyBAQAogCQkqc2l6ZSA9IHN6OwogCXJldHVybiBkYXRhOwogfQorCit2b2lkIHN0YXRfdmFsaWRpdHlfY2xlYXIoc3RydWN0IHN0YXRfdmFsaWRpdHkgKnN2KQoreworCWZyZWUoc3YtPnNkKTsKKwlzdi0+c2QgPSBOVUxMOworfQorCitpbnQgc3RhdF92YWxpZGl0eV9jaGVjayhzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGNvbnN0IGNoYXIgKnBhdGgpCit7CisJc3RydWN0IHN0YXQgc3Q7CisKKwlpZiAoc3RhdChwYXRoLCAmc3QpIDwgMCkKKwkJcmV0dXJuIHN2LT5zZCA9PSBOVUxMOworCWlmICghc3YtPnNkKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gU19JU1JFRyhzdC5zdF9tb2RlKSAmJiAhbWF0Y2hfc3RhdF9kYXRhKHN2LT5zZCwgJnN0KTsKK30KKwordm9pZCBzdGF0X3ZhbGlkaXR5X3VwZGF0ZShzdHJ1Y3Qgc3RhdF92YWxpZGl0eSAqc3YsIGludCBmZCkKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWlmIChmc3RhdChmZCwgJnN0KSA8IDAgfHwgIVNfSVNSRUcoc3Quc3RfbW9kZSkpCisJCXN0YXRfdmFsaWRpdHlfY2xlYXIoc3YpOworCWVsc2UgeworCQlpZiAoIXN2LT5zZCkKKwkJCXN2LT5zZCA9IHhjYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBzdGF0X2RhdGEpKTsKKwkJZmlsbF9zdGF0X2RhdGEoc3YtPnNkLCAmc3QpOworCX0KK30KZGlmZiAtLWdpdCBhL3JlZnMuYyBiL3JlZnMuYwppbmRleCBkZTJkOGViLi43OTIyMjYxIDEwMDY0NAotLS0gYS9yZWZzLmMKKysrIGIvcmVmcy5jCkBAIC0xMDksNyArMTA5LDIwIEBACiAgKiAocmVmX2VudHJ5LT5mbGFnICYgUkVGX0RJUikgaXMgemVyby4KICAqLwogc3RydWN0IHJlZl92YWx1ZSB7CisJLyoKKwkgKiBUaGUgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIHdoaWNoIHRoaXMgcmVmZXJlbmNlIHJlc29sdmVzCisJICogKHdoaWNoIG1heSBiZSBhIHRhZyBvYmplY3QpLiAgSWYgUkVGX0lTQlJPS0VOLCB0aGlzIGlzCisJICogbnVsbC4gIElmIFJFRl9JU1NZTVJFRiwgdGhlbiB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBvYmplY3QKKwkgKiByZWZlcnJlZCB0byBieSB0aGUgbGFzdCByZWZlcmVuY2UgaW4gdGhlIHN5bWxpbmsgY2hhaW4uCisJICovCiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKKworCS8qCisJICogSWYgUkVGX0tOT1dTX1BFRUxFRCwgdGhlbiB0aGlzIGZpZWxkIGhvbGRzIHRoZSBwZWVsZWQgdmFsdWUKKwkgKiBvZiB0aGlzIHJlZmVyZW5jZSwgb3IgbnVsbCBpZiB0aGUgcmVmZXJlbmNlIGlzIGtub3duIG5vdCB0bworCSAqIGJlIHBlZWxhYmxlLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBwZWVsX3JlZigpIGZvciBhbgorCSAqIGV4YWN0IGRlZmluaXRpb24gb2YgInBlZWxhYmxlIi4KKwkgKi8KIAl1bnNpZ25lZCBjaGFyIHBlZWxlZFsyMF07CiB9OwogCkBAIC0xNTgsNyArMTcxLDE3IEBACiAJc3RydWN0IHJlZl9lbnRyeSAqKmVudHJpZXM7CiB9OwogCi0vKiBJU1NZTVJFRj0weDAxLCBJU1BBQ0tFRD0weDAyLCBhbmQgSVNCUk9LRU49MHgwNCBhcmUgcHVibGljIGludGVyZmFjZXMgKi8KKy8qCisgKiBCaXQgdmFsdWVzIGZvciByZWZfZW50cnk6OmZsYWcuICBSRUZfSVNTWU1SRUY9MHgwMSwKKyAqIFJFRl9JU1BBQ0tFRD0weDAyLCBhbmQgUkVGX0lTQlJPS0VOPTB4MDQgYXJlIHB1YmxpYyB2YWx1ZXM7IHNlZQorICogcmVmcy5oLgorICovCisKKy8qCisgKiBUaGUgZmllbGQgcmVmX2VudHJ5LT51LnZhbHVlLnBlZWxlZCBvZiB0aGlzIHZhbHVlIGVudHJ5IGNvbnRhaW5zCisgKiB0aGUgY29ycmVjdCBwZWVsZWQgdmFsdWUgZm9yIHRoZSByZWZlcmVuY2UsIHdoaWNoIG1pZ2h0IGJlCisgKiBudWxsX3NoYTEgaWYgdGhlIHJlZmVyZW5jZSBpcyBub3QgYSB0YWcgb3IgaWYgaXQgaXMgYnJva2VuLgorICovCiAjZGVmaW5lIFJFRl9LTk9XU19QRUVMRUQgMHgwOAogCiAvKiByZWZfZW50cnkgcmVwcmVzZW50cyBhIGRpcmVjdG9yeSBvZiByZWZlcmVuY2VzICovCkBAIC0zNDMsMTggKzM2NiwxNyBAQAogfQogCiAvKgotICogUmV0dXJuIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiByZWZuYW1lIGZyb20gdGhlIHJlZl9kaXIKLSAqIChub24tcmVjdXJzaXZlbHkpLCBzb3J0aW5nIGRpciBpZiBuZWNlc3NhcnkuICBSZXR1cm4gTlVMTCBpZiBubwotICogc3VjaCBlbnRyeSBpcyBmb3VuZC4gIGRpciBtdXN0IGFscmVhZHkgYmUgY29tcGxldGUuCisgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiByZWZuYW1lIGZyb20gdGhlCisgKiByZWZfZGlyIChub24tcmVjdXJzaXZlbHkpLCBzb3J0aW5nIGRpciBpZiBuZWNlc3NhcnkuICBSZXR1cm4gLTEgaWYKKyAqIG5vIHN1Y2ggZW50cnkgaXMgZm91bmQuICBkaXIgbXVzdCBhbHJlYWR5IGJlIGNvbXBsZXRlLgogICovCi1zdGF0aWMgc3RydWN0IHJlZl9lbnRyeSAqc2VhcmNoX3JlZl9kaXIoc3RydWN0IHJlZl9kaXIgKmRpciwKLQkJCQkJY29uc3QgY2hhciAqcmVmbmFtZSwgc2l6ZV90IGxlbikKK3N0YXRpYyBpbnQgc2VhcmNoX3JlZl9kaXIoc3RydWN0IHJlZl9kaXIgKmRpciwgY29uc3QgY2hhciAqcmVmbmFtZSwgc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgcmVmX2VudHJ5ICoqcjsKIAlzdHJ1Y3Qgc3RyaW5nX3NsaWNlIGtleTsKIAogCWlmIChyZWZuYW1lID09IE5VTEwgfHwgIWRpci0+bnIpCi0JCXJldHVybiBOVUxMOworCQlyZXR1cm4gLTE7CiAKIAlzb3J0X3JlZl9kaXIoZGlyKTsKIAlrZXkubGVuID0gbGVuOwpAQCAtMzYzLDkgKzM4NSw5IEBACiAJCSAgICByZWZfZW50cnlfY21wX3NzbGljZSk7CiAKIAlpZiAociA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKKwkJcmV0dXJuIC0xOwogCi0JcmV0dXJuICpyOworCXJldHVybiByIC0gZGlyLT5lbnRyaWVzOwogfQogCiAvKgpAQCAtMzc5LDggKzQwMSw5IEBACiAJCQkJCSBjb25zdCBjaGFyICpzdWJkaXJuYW1lLCBzaXplX3QgbGVuLAogCQkJCQkgaW50IG1rZGlyKQogewotCXN0cnVjdCByZWZfZW50cnkgKmVudHJ5ID0gc2VhcmNoX3JlZl9kaXIoZGlyLCBzdWJkaXJuYW1lLCBsZW4pOwotCWlmICghZW50cnkpIHsKKwlpbnQgZW50cnlfaW5kZXggPSBzZWFyY2hfcmVmX2RpcihkaXIsIHN1YmRpcm5hbWUsIGxlbik7CisJc3RydWN0IHJlZl9lbnRyeSAqZW50cnk7CisJaWYgKGVudHJ5X2luZGV4ID09IC0xKSB7CiAJCWlmICghbWtkaXIpCiAJCQlyZXR1cm4gTlVMTDsKIAkJLyoKQEAgLTM5MSw2ICs0MTQsOCBAQAogCQkgKi8KIAkJZW50cnkgPSBjcmVhdGVfZGlyX2VudHJ5KGRpci0+cmVmX2NhY2hlLCBzdWJkaXJuYW1lLCBsZW4sIDApOwogCQlhZGRfZW50cnlfdG9fZGlyKGRpciwgZW50cnkpOworCX0gZWxzZSB7CisJCWVudHJ5ID0gZGlyLT5lbnRyaWVzW2VudHJ5X2luZGV4XTsKIAl9CiAJcmV0dXJuIGdldF9yZWZfZGlyKGVudHJ5KTsKIH0KQEAgLTQyOSwxMiArNDU0LDY3IEBACiAgKi8KIHN0YXRpYyBzdHJ1Y3QgcmVmX2VudHJ5ICpmaW5kX3JlZihzdHJ1Y3QgcmVmX2RpciAqZGlyLCBjb25zdCBjaGFyICpyZWZuYW1lKQogeworCWludCBlbnRyeV9pbmRleDsKIAlzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeTsKIAlkaXIgPSBmaW5kX2NvbnRhaW5pbmdfZGlyKGRpciwgcmVmbmFtZSwgMCk7CiAJaWYgKCFkaXIpCiAJCXJldHVybiBOVUxMOwotCWVudHJ5ID0gc2VhcmNoX3JlZl9kaXIoZGlyLCByZWZuYW1lLCBzdHJsZW4ocmVmbmFtZSkpOwotCXJldHVybiAoZW50cnkgJiYgIShlbnRyeS0+ZmxhZyAmIFJFRl9ESVIpKSA/IGVudHJ5IDogTlVMTDsKKwllbnRyeV9pbmRleCA9IHNlYXJjaF9yZWZfZGlyKGRpciwgcmVmbmFtZSwgc3RybGVuKHJlZm5hbWUpKTsKKwlpZiAoZW50cnlfaW5kZXggPT0gLTEpCisJCXJldHVybiBOVUxMOworCWVudHJ5ID0gZGlyLT5lbnRyaWVzW2VudHJ5X2luZGV4XTsKKwlyZXR1cm4gKGVudHJ5LT5mbGFnICYgUkVGX0RJUikgPyBOVUxMIDogZW50cnk7Cit9CisKKy8qCisgKiBSZW1vdmUgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgZnJvbSBkaXIsIHJlY3Vyc2luZyBpbnRvCisgKiBzdWJkaXJlY3RvcmllcyBhcyBuZWNlc3NhcnkuICBJZiByZWZuYW1lIGlzIHRoZSBuYW1lIG9mIGEgZGlyZWN0b3J5CisgKiAoaS5lLiwgZW5kcyB3aXRoICcvJyksIHRoZW4gcmVtb3ZlIHRoZSBkaXJlY3RvcnkgYW5kIGl0cyBjb250ZW50cy4KKyAqIElmIHRoZSByZW1vdmFsIHdhcyBzdWNjZXNzZnVsLCByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzCisgKiByZW1haW5pbmcgaW4gdGhlIGRpcmVjdG9yeSBlbnRyeSB0aGF0IGNvbnRhaW5lZCB0aGUgZGVsZXRlZCBlbnRyeS4KKyAqIElmIHRoZSBuYW1lIHdhcyBub3QgZm91bmQsIHJldHVybiAtMS4gIFBsZWFzZSBub3RlIHRoYXQgdGhpcworICogZnVuY3Rpb24gb25seSBkZWxldGVzIHRoZSBlbnRyeSBmcm9tIHRoZSBjYWNoZTsgaXQgZG9lcyBub3QgZGVsZXRlCisgKiBpdCBmcm9tIHRoZSBmaWxlc3lzdGVtIG9yIGVuc3VyZSB0aGF0IG90aGVyIGNhY2hlIGVudHJpZXMgKHdoaWNoCisgKiBtaWdodCBiZSBzeW1ib2xpYyByZWZlcmVuY2VzIHRvIHRoZSByZW1vdmVkIGVudHJ5KSBhcmUgdXBkYXRlZC4KKyAqIE5vciBkb2VzIGl0IHJlbW92ZSBhbnkgY29udGFpbmluZyBkaXIgZW50cmllcyB0aGF0IG1pZ2h0IGJlIG1hZGUKKyAqIGVtcHR5IGJ5IHRoZSByZW1vdmFsLiAgZGlyIG11c3QgcmVwcmVzZW50IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5CisgKiBhbmQgbXVzdCBhbHJlYWR5IGJlIGNvbXBsZXRlLgorICovCitzdGF0aWMgaW50IHJlbW92ZV9lbnRyeShzdHJ1Y3QgcmVmX2RpciAqZGlyLCBjb25zdCBjaGFyICpyZWZuYW1lKQoreworCWludCByZWZuYW1lX2xlbiA9IHN0cmxlbihyZWZuYW1lKTsKKwlpbnQgZW50cnlfaW5kZXg7CisJc3RydWN0IHJlZl9lbnRyeSAqZW50cnk7CisJaW50IGlzX2RpciA9IHJlZm5hbWVbcmVmbmFtZV9sZW4gLSAxXSA9PSAnLyc7CisJaWYgKGlzX2RpcikgeworCQkvKgorCQkgKiByZWZuYW1lIHJlcHJlc2VudHMgYSByZWZlcmVuY2UgZGlyZWN0b3J5LiAgUmVtb3ZlCisJCSAqIHRoZSB0cmFpbGluZyBzbGFzaDsgb3RoZXJ3aXNlIHdlIHdpbGwgZ2V0IHRoZQorCQkgKiBkaXJlY3RvcnkgKnJlcHJlc2VudGluZyogcmVmbmFtZSByYXRoZXIgdGhhbiB0aGUKKwkJICogb25lICpjb250YWluaW5nKiBpdC4KKwkJICovCisJCWNoYXIgKmRpcm5hbWUgPSB4bWVtZHVweihyZWZuYW1lLCByZWZuYW1lX2xlbiAtIDEpOworCQlkaXIgPSBmaW5kX2NvbnRhaW5pbmdfZGlyKGRpciwgZGlybmFtZSwgMCk7CisJCWZyZWUoZGlybmFtZSk7CisJfSBlbHNlIHsKKwkJZGlyID0gZmluZF9jb250YWluaW5nX2RpcihkaXIsIHJlZm5hbWUsIDApOworCX0KKwlpZiAoIWRpcikKKwkJcmV0dXJuIC0xOworCWVudHJ5X2luZGV4ID0gc2VhcmNoX3JlZl9kaXIoZGlyLCByZWZuYW1lLCByZWZuYW1lX2xlbik7CisJaWYgKGVudHJ5X2luZGV4ID09IC0xKQorCQlyZXR1cm4gLTE7CisJZW50cnkgPSBkaXItPmVudHJpZXNbZW50cnlfaW5kZXhdOworCisJbWVtbW92ZSgmZGlyLT5lbnRyaWVzW2VudHJ5X2luZGV4XSwKKwkJJmRpci0+ZW50cmllc1tlbnRyeV9pbmRleCArIDFdLAorCQkoZGlyLT5uciAtIGVudHJ5X2luZGV4IC0gMSkgKiBzaXplb2YoKmRpci0+ZW50cmllcykKKwkJKTsKKwlkaXItPm5yLS07CisJaWYgKGRpci0+c29ydGVkID4gZW50cnlfaW5kZXgpCisJCWRpci0+c29ydGVkLS07CisJZnJlZV9yZWZfZW50cnkoZW50cnkpOworCXJldHVybiBkaXItPm5yOwogfQogCiAvKgpAQCAtNTAzLDI4ICs1ODMsNjkgQEAKIAlkaXItPnNvcnRlZCA9IGRpci0+bnIgPSBpOwogfQogCi0jZGVmaW5lIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOIDAxCisvKiBJbmNsdWRlIGJyb2tlbiByZWZlcmVuY2VzIGluIGEgZG9fZm9yX2VhY2hfcmVmKigpIGl0ZXJhdGlvbjogKi8KKyNkZWZpbmUgRE9fRk9SX0VBQ0hfSU5DTFVERV9CUk9LRU4gMHgwMQogCisvKgorICogUmV0dXJuIHRydWUgaWZmIHRoZSByZWZlcmVuY2UgZGVzY3JpYmVkIGJ5IGVudHJ5IGNhbiBiZSByZXNvbHZlZCB0bworICogYW4gb2JqZWN0IGluIHRoZSBkYXRhYmFzZS4gIEVtaXQgYSB3YXJuaW5nIGlmIHRoZSByZWZlcnJlZC10bworICogb2JqZWN0IGRvZXMgbm90IGV4aXN0LgorICovCitzdGF0aWMgaW50IHJlZl9yZXNvbHZlc190b19vYmplY3Qoc3RydWN0IHJlZl9lbnRyeSAqZW50cnkpCit7CisJaWYgKGVudHJ5LT5mbGFnICYgUkVGX0lTQlJPS0VOKQorCQlyZXR1cm4gMDsKKwlpZiAoIWhhc19zaGExX2ZpbGUoZW50cnktPnUudmFsdWUuc2hhMSkpIHsKKwkJZXJyb3IoIiVzIGRvZXMgbm90IHBvaW50IHRvIGEgdmFsaWQgb2JqZWN0ISIsIGVudHJ5LT5uYW1lKTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCisvKgorICogY3VycmVudF9yZWYgaXMgYSBwZXJmb3JtYW5jZSBoYWNrOiB3aGVuIGl0ZXJhdGluZyBvdmVyIHJlZmVyZW5jZXMKKyAqIHVzaW5nIHRoZSBmb3JfZWFjaF9yZWYqKCkgZnVuY3Rpb25zLCBjdXJyZW50X3JlZiBpcyBzZXQgdG8gdGhlCisgKiBjdXJyZW50IHJlZmVyZW5jZSdzIGVudHJ5IGJlZm9yZSBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4gIElmCisgKiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbHMgcGVlbF9yZWYoKSwgdGhlbiBwZWVsX3JlZigpIGZpcnN0CisgKiBjaGVja3Mgd2hldGhlciB0aGUgcmVmZXJlbmNlIHRvIGJlIHBlZWxlZCBpcyB0aGUgY3VycmVudCByZWZlcmVuY2UKKyAqIChpdCB1c3VhbGx5IGlzKSBhbmQgaWYgc28sIHJldHVybnMgdGhhdCByZWZlcmVuY2UncyBwZWVsZWQgdmVyc2lvbgorICogaWYgaXQgaXMgYXZhaWxhYmxlLiAgVGhpcyBhdm9pZHMgYSByZWZuYW1lIGxvb2t1cCBpbiBhIGNvbW1vbiBjYXNlLgorICovCiBzdGF0aWMgc3RydWN0IHJlZl9lbnRyeSAqY3VycmVudF9yZWY7CiAKLXN0YXRpYyBpbnQgZG9fb25lX3JlZihjb25zdCBjaGFyICpiYXNlLCBlYWNoX3JlZl9mbiBmbiwgaW50IHRyaW0sCi0JCSAgICAgIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSwgc3RydWN0IHJlZl9lbnRyeSAqZW50cnkpCit0eXBlZGVmIGludCBlYWNoX3JlZl9lbnRyeV9mbihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSk7CisKK3N0cnVjdCByZWZfZW50cnlfY2IgeworCWNvbnN0IGNoYXIgKmJhc2U7CisJaW50IHRyaW07CisJaW50IGZsYWdzOworCWVhY2hfcmVmX2ZuICpmbjsKKwl2b2lkICpjYl9kYXRhOworfTsKKworLyoKKyAqIEhhbmRsZSBvbmUgcmVmZXJlbmNlIGluIGEgZG9fZm9yX2VhY2hfcmVmKigpLXN0eWxlIGl0ZXJhdGlvbiwKKyAqIGNhbGxpbmcgYW4gZWFjaF9yZWZfZm4gZm9yIGVhY2ggZW50cnkuCisgKi8KK3N0YXRpYyBpbnQgZG9fb25lX3JlZihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSkKIHsKKwlzdHJ1Y3QgcmVmX2VudHJ5X2NiICpkYXRhID0gY2JfZGF0YTsKKwlzdHJ1Y3QgcmVmX2VudHJ5ICpvbGRfY3VycmVudF9yZWY7CiAJaW50IHJldHZhbDsKLQlpZiAocHJlZml4Y21wKGVudHJ5LT5uYW1lLCBiYXNlKSkKKworCWlmIChwcmVmaXhjbXAoZW50cnktPm5hbWUsIGRhdGEtPmJhc2UpKQogCQlyZXR1cm4gMDsKIAotCWlmICghKGZsYWdzICYgRE9fRk9SX0VBQ0hfSU5DTFVERV9CUk9LRU4pKSB7Ci0JCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9JU0JST0tFTikKLQkJCXJldHVybiAwOyAvKiBpZ25vcmUgYnJva2VuIHJlZnMgZS5nLiBkYW5nbGluZyBzeW1yZWYgKi8KLQkJaWYgKCFoYXNfc2hhMV9maWxlKGVudHJ5LT51LnZhbHVlLnNoYTEpKSB7Ci0JCQllcnJvcigiJXMgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBvYmplY3QhIiwgZW50cnktPm5hbWUpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9CisJaWYgKCEoZGF0YS0+ZmxhZ3MgJiBET19GT1JfRUFDSF9JTkNMVURFX0JST0tFTikgJiYKKwkgICAgICAhcmVmX3Jlc29sdmVzX3RvX29iamVjdChlbnRyeSkpCisJCXJldHVybiAwOworCisJLyogU3RvcmUgdGhlIG9sZCB2YWx1ZSwgaW4gY2FzZSB0aGlzIGlzIGEgcmVjdXJzaXZlIGNhbGw6ICovCisJb2xkX2N1cnJlbnRfcmVmID0gY3VycmVudF9yZWY7CiAJY3VycmVudF9yZWYgPSBlbnRyeTsKLQlyZXR2YWwgPSBmbihlbnRyeS0+bmFtZSArIHRyaW0sIGVudHJ5LT51LnZhbHVlLnNoYTEsIGVudHJ5LT5mbGFnLCBjYl9kYXRhKTsKLQljdXJyZW50X3JlZiA9IE5VTEw7CisJcmV0dmFsID0gZGF0YS0+Zm4oZW50cnktPm5hbWUgKyBkYXRhLT50cmltLCBlbnRyeS0+dS52YWx1ZS5zaGExLAorCQkJICBlbnRyeS0+ZmxhZywgZGF0YS0+Y2JfZGF0YSk7CisJY3VycmVudF9yZWYgPSBvbGRfY3VycmVudF9yZWY7CiAJcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtNTMyLDExICs2NTMsMTEgQEAKICAqIENhbGwgZm4gZm9yIGVhY2ggcmVmZXJlbmNlIGluIGRpciB0aGF0IGhhcyBpbmRleCBpbiB0aGUgcmFuZ2UKICAqIG9mZnNldCA8PSBpbmRleCA8IGRpci0+bnIuICBSZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4KICAqIHRoYXQgaW5kZXggcmFuZ2UsIHNvcnRpbmcgdGhlbSBiZWZvcmUgaXRlcmF0aW5nLiAgVGhpcyBmdW5jdGlvbgotICogZG9lcyBub3Qgc29ydCBkaXIgaXRzZWxmOyBpdCBzaG91bGQgYmUgc29ydGVkIGJlZm9yZWhhbmQuCisgKiBkb2VzIG5vdCBzb3J0IGRpciBpdHNlbGY7IGl0IHNob3VsZCBiZSBzb3J0ZWQgYmVmb3JlaGFuZC4gIGZuIGlzCisgKiBjYWxsZWQgZm9yIGFsbCByZWZlcmVuY2VzLCBpbmNsdWRpbmcgYnJva2VuIG9uZXMuCiAgKi8KLXN0YXRpYyBpbnQgZG9fZm9yX2VhY2hfcmVmX2luX2RpcihzdHJ1Y3QgcmVmX2RpciAqZGlyLCBpbnQgb2Zmc2V0LAotCQkJCSAgY29uc3QgY2hhciAqYmFzZSwKLQkJCQkgIGVhY2hfcmVmX2ZuIGZuLCBpbnQgdHJpbSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQorc3RhdGljIGludCBkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIoc3RydWN0IHJlZl9kaXIgKmRpciwgaW50IG9mZnNldCwKKwkJCQkgICAgZWFjaF9yZWZfZW50cnlfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7CiAJaW50IGk7CiAJYXNzZXJ0KGRpci0+c29ydGVkID09IGRpci0+bnIpOwpAQCAtNTQ2LDEwICs2NjcsOSBAQAogCQlpZiAoZW50cnktPmZsYWcgJiBSRUZfRElSKSB7CiAJCQlzdHJ1Y3QgcmVmX2RpciAqc3ViZGlyID0gZ2V0X3JlZl9kaXIoZW50cnkpOwogCQkJc29ydF9yZWZfZGlyKHN1YmRpcik7Ci0JCQlyZXR2YWwgPSBkb19mb3JfZWFjaF9yZWZfaW5fZGlyKHN1YmRpciwgMCwKLQkJCQkJCQliYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEpOworCQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKHN1YmRpciwgMCwgZm4sIGNiX2RhdGEpOwogCQl9IGVsc2UgewotCQkJcmV0dmFsID0gZG9fb25lX3JlZihiYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEsIGVudHJ5KTsKKwkJCXJldHZhbCA9IGZuKGVudHJ5LCBjYl9kYXRhKTsKIAkJfQogCQlpZiAocmV0dmFsKQogCQkJcmV0dXJuIHJldHZhbDsKQEAgLTU2MiwxMiArNjgyLDEyIEBACiAgKiBieSByZWZuYW1lLiAgUmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzLiAgSWYgYSB2YWx1ZSBlbnRyeSBhcHBlYXJzCiAgKiBpbiBib3RoIGRpcjEgYW5kIGRpcjIsIHRoZW4gb25seSBwcm9jZXNzIHRoZSB2ZXJzaW9uIHRoYXQgaXMgaW4KICAqIGRpcjIuICBUaGUgaW5wdXQgZGlycyBtdXN0IGFscmVhZHkgYmUgc29ydGVkLCBidXQgc3ViZGlycyB3aWxsIGJlCi0gKiBzb3J0ZWQgYXMgbmVlZGVkLgorICogc29ydGVkIGFzIG5lZWRlZC4gIGZuIGlzIGNhbGxlZCBmb3IgYWxsIHJlZmVyZW5jZXMsIGluY2x1ZGluZworICogYnJva2VuIG9uZXMuCiAgKi8KLXN0YXRpYyBpbnQgZG9fZm9yX2VhY2hfcmVmX2luX2RpcnMoc3RydWN0IHJlZl9kaXIgKmRpcjEsCi0JCQkJICAgc3RydWN0IHJlZl9kaXIgKmRpcjIsCi0JCQkJICAgY29uc3QgY2hhciAqYmFzZSwgZWFjaF9yZWZfZm4gZm4sIGludCB0cmltLAotCQkJCSAgIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKK3N0YXRpYyBpbnQgZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlycyhzdHJ1Y3QgcmVmX2RpciAqZGlyMSwKKwkJCQkgICAgIHN0cnVjdCByZWZfZGlyICpkaXIyLAorCQkJCSAgICAgZWFjaF9yZWZfZW50cnlfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7CiAJaW50IHJldHZhbDsKIAlpbnQgaTEgPSAwLCBpMiA9IDA7CkBAIC01NzgsMTIgKzY5OCwxMCBAQAogCQlzdHJ1Y3QgcmVmX2VudHJ5ICplMSwgKmUyOwogCQlpbnQgY21wOwogCQlpZiAoaTEgPT0gZGlyMS0+bnIpIHsKLQkJCXJldHVybiBkb19mb3JfZWFjaF9yZWZfaW5fZGlyKGRpcjIsIGkyLAotCQkJCQkJICAgICAgYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJCXJldHVybiBkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIoZGlyMiwgaTIsIGZuLCBjYl9kYXRhKTsKIAkJfQogCQlpZiAoaTIgPT0gZGlyMi0+bnIpIHsKLQkJCXJldHVybiBkb19mb3JfZWFjaF9yZWZfaW5fZGlyKGRpcjEsIGkxLAotCQkJCQkJICAgICAgYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJCXJldHVybiBkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIoZGlyMSwgaTEsIGZuLCBjYl9kYXRhKTsKIAkJfQogCQllMSA9IGRpcjEtPmVudHJpZXNbaTFdOwogCQllMiA9IGRpcjItPmVudHJpZXNbaTJdOwpAQCAtNTk1LDE0ICs3MTMsMTMgQEAKIAkJCQlzdHJ1Y3QgcmVmX2RpciAqc3ViZGlyMiA9IGdldF9yZWZfZGlyKGUyKTsKIAkJCQlzb3J0X3JlZl9kaXIoc3ViZGlyMSk7CiAJCQkJc29ydF9yZWZfZGlyKHN1YmRpcjIpOwotCQkJCXJldHZhbCA9IGRvX2Zvcl9lYWNoX3JlZl9pbl9kaXJzKAotCQkJCQkJc3ViZGlyMSwgc3ViZGlyMiwKLQkJCQkJCWJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlycygKKwkJCQkJCXN1YmRpcjEsIHN1YmRpcjIsIGZuLCBjYl9kYXRhKTsKIAkJCQlpMSsrOwogCQkJCWkyKys7CiAJCQl9IGVsc2UgaWYgKCEoZTEtPmZsYWcgJiBSRUZfRElSKSAmJiAhKGUyLT5mbGFnICYgUkVGX0RJUikpIHsKIAkJCQkvKiBCb3RoIGFyZSByZWZlcmVuY2VzOyBpZ25vcmUgdGhlIG9uZSBmcm9tIGRpcjEuICovCi0JCQkJcmV0dmFsID0gZG9fb25lX3JlZihiYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEsIGUyKTsKKwkJCQlyZXR2YWwgPSBmbihlMiwgY2JfZGF0YSk7CiAJCQkJaTErKzsKIAkJCQlpMisrOwogCQkJfSBlbHNlIHsKQEAgLTYyMSwyNiArNzM4LDMzIEBACiAJCQlpZiAoZS0+ZmxhZyAmIFJFRl9ESVIpIHsKIAkJCQlzdHJ1Y3QgcmVmX2RpciAqc3ViZGlyID0gZ2V0X3JlZl9kaXIoZSk7CiAJCQkJc29ydF9yZWZfZGlyKHN1YmRpcik7Ci0JCQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfcmVmX2luX2RpcigKLQkJCQkJCXN1YmRpciwgMCwKLQkJCQkJCWJhc2UsIGZuLCB0cmltLCBmbGFncywgY2JfZGF0YSk7CisJCQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKAorCQkJCQkJc3ViZGlyLCAwLCBmbiwgY2JfZGF0YSk7CiAJCQl9IGVsc2UgewotCQkJCXJldHZhbCA9IGRvX29uZV9yZWYoYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhLCBlKTsKKwkJCQlyZXR2YWwgPSBmbihlLCBjYl9kYXRhKTsKIAkJCX0KIAkJfQogCQlpZiAocmV0dmFsKQogCQkJcmV0dXJuIHJldHZhbDsKIAl9Ci0JaWYgKGkxIDwgZGlyMS0+bnIpCi0JCXJldHVybiBkb19mb3JfZWFjaF9yZWZfaW5fZGlyKGRpcjEsIGkxLAotCQkJCQkgICAgICBiYXNlLCBmbiwgdHJpbSwgZmxhZ3MsIGNiX2RhdGEpOwotCWlmIChpMiA8IGRpcjItPm5yKQotCQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmX2luX2RpcihkaXIyLCBpMiwKLQkJCQkJICAgICAgYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKLQlyZXR1cm4gMDsKIH0KIAogLyoKKyAqIExvYWQgYWxsIG9mIHRoZSByZWZzIGZyb20gdGhlIGRpciBpbnRvIG91ciBpbi1tZW1vcnkgY2FjaGUuIFRoZSBoYXJkIHdvcmsKKyAqIG9mIGxvYWRpbmcgbG9vc2UgcmVmcyBpcyBkb25lIGJ5IGdldF9yZWZfZGlyKCksIHNvIHdlIGp1c3QgbmVlZCB0byByZWN1cnNlCisgKiB0aHJvdWdoIGFsbCBvZiB0aGUgc3ViLWRpcmVjdG9yaWVzLiBXZSBkbyBub3QgZXZlbiBuZWVkIHRvIGNhcmUgYWJvdXQKKyAqIHNvcnRpbmcsIGFzIHRyYXZlcnNhbCBvcmRlciBkb2VzIG5vdCBtYXR0ZXIgdG8gdXMuCisgKi8KK3N0YXRpYyB2b2lkIHByaW1lX3JlZl9kaXIoc3RydWN0IHJlZl9kaXIgKmRpcikKK3sKKwlpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgZGlyLT5ucjsgaSsrKSB7CisJCXN0cnVjdCByZWZfZW50cnkgKmVudHJ5ID0gZGlyLT5lbnRyaWVzW2ldOworCQlpZiAoZW50cnktPmZsYWcgJiBSRUZfRElSKQorCQkJcHJpbWVfcmVmX2RpcihnZXRfcmVmX2RpcihlbnRyeSkpOworCX0KK30KKy8qCiAgKiBSZXR1cm4gdHJ1ZSBpZmYgcmVmbmFtZTEgYW5kIHJlZm5hbWUyIGNvbmZsaWN0IHdpdGggZWFjaCBvdGhlci4KICAqIFR3byByZWZlcmVuY2UgbmFtZXMgY29uZmxpY3QgaWYgb25lIG9mIHRoZW0gZXhhY3RseSBtYXRjaGVzIHRoZQogICogbGVhZGluZyBjb21wb25lbnRzIG9mIHRoZSBvdGhlcjsgZS5nLiwgImZvby9iYXIiIGNvbmZsaWN0cyB3aXRoCkBAIC02NjEsMTQgKzc4NSwxMyBAQAogCWNvbnN0IGNoYXIgKmNvbmZsaWN0aW5nX3JlZm5hbWU7CiB9OwogCi1zdGF0aWMgaW50IG5hbWVfY29uZmxpY3RfZm4oY29uc3QgY2hhciAqZXhpc3RpbmdyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLAotCQkJICAgIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSkKK3N0YXRpYyBpbnQgbmFtZV9jb25mbGljdF9mbihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSkKIHsKIAlzdHJ1Y3QgbmFtZV9jb25mbGljdF9jYiAqZGF0YSA9IChzdHJ1Y3QgbmFtZV9jb25mbGljdF9jYiAqKWNiX2RhdGE7Ci0JaWYgKGRhdGEtPm9sZHJlZm5hbWUgJiYgIXN0cmNtcChkYXRhLT5vbGRyZWZuYW1lLCBleGlzdGluZ3JlZm5hbWUpKQorCWlmIChkYXRhLT5vbGRyZWZuYW1lICYmICFzdHJjbXAoZGF0YS0+b2xkcmVmbmFtZSwgZW50cnktPm5hbWUpKQogCQlyZXR1cm4gMDsKLQlpZiAobmFtZXNfY29uZmxpY3QoZGF0YS0+cmVmbmFtZSwgZXhpc3RpbmdyZWZuYW1lKSkgewotCQlkYXRhLT5jb25mbGljdGluZ19yZWZuYW1lID0gZXhpc3RpbmdyZWZuYW1lOworCWlmIChuYW1lc19jb25mbGljdChkYXRhLT5yZWZuYW1lLCBlbnRyeS0+bmFtZSkpIHsKKwkJZGF0YS0+Y29uZmxpY3RpbmdfcmVmbmFtZSA9IGVudHJ5LT5uYW1lOwogCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CkBAIC02NzYsNyArNzk5LDcgQEAKIAogLyoKICAqIFJldHVybiB0cnVlIGlmZiBhIHJlZmVyZW5jZSBuYW1lZCByZWZuYW1lIGNvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dAotICogY29uZmxpY3Rpbmcgd2l0aCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyByZWZlcmVuY2UgaW4gYXJyYXkuICBJZgorICogY29uZmxpY3Rpbmcgd2l0aCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyByZWZlcmVuY2UgaW4gZGlyLiAgSWYKICAqIG9sZHJlZm5hbWUgaXMgbm9uLU5VTEwsIGlnbm9yZSBwb3RlbnRpYWwgY29uZmxpY3RzIHdpdGggb2xkcmVmbmFtZQogICogKGUuZy4sIGJlY2F1c2Ugb2xkcmVmbmFtZSBpcyBzY2hlZHVsZWQgZm9yIGRlbGV0aW9uIGluIHRoZSBzYW1lCiAgKiBvcGVyYXRpb24pLgpAQCAtNjkwLDkgKzgxMyw3IEBACiAJZGF0YS5jb25mbGljdGluZ19yZWZuYW1lID0gTlVMTDsKIAogCXNvcnRfcmVmX2RpcihkaXIpOwotCWlmIChkb19mb3JfZWFjaF9yZWZfaW5fZGlyKGRpciwgMCwgIiIsIG5hbWVfY29uZmxpY3RfZm4sCi0JCQkJICAgMCwgRE9fRk9SX0VBQ0hfSU5DTFVERV9CUk9LRU4sCi0JCQkJICAgJmRhdGEpKSB7CisJaWYgKGRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcihkaXIsIDAsIG5hbWVfY29uZmxpY3RfZm4sICZkYXRhKSkgewogCQllcnJvcigiJyVzJyBleGlzdHM7IGNhbm5vdCBjcmVhdGUgJyVzJyIsCiAJCSAgICAgIGRhdGEuY29uZmxpY3RpbmdfcmVmbmFtZSwgcmVmbmFtZSk7CiAJCXJldHVybiAwOwpAQCAtNzAwLDYgKzgyMSwzMCBAQAogCXJldHVybiAxOwogfQogCitzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSB7CisJc3RydWN0IHJlZl9lbnRyeSAqcm9vdDsKKworCS8qCisJICogQ291bnQgb2YgcmVmZXJlbmNlcyB0byB0aGUgZGF0YSBzdHJ1Y3R1cmUgaW4gdGhpcyBpbnN0YW5jZSwKKwkgKiBpbmNsdWRpbmcgdGhlIHBvaW50ZXIgZnJvbSByZWZfY2FjaGU6OnBhY2tlZCBpZiBhbnkuICBUaGUKKwkgKiBkYXRhIHdpbGwgbm90IGJlIGZyZWVkIGFzIGxvbmcgYXMgdGhlIHJlZmVyZW5jZSBjb3VudCBpcworCSAqIG5vbnplcm8uCisJICovCisJdW5zaWduZWQgaW50IHJlZmVycmVyczsKKworCS8qCisJICogSWZmIHRoZSBwYWNrZWQtcmVmcyBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlIGlzCisJICogY3VycmVudGx5IGxvY2tlZCBmb3Igd3JpdGluZywgdGhpcyBwb2ludHMgYXQgdGhlIGFzc29jaWF0ZWQKKwkgKiBsb2NrICh3aGljaCBpcyBvd25lZCBieSBzb21lYm9keSBlbHNlKS4gIFRoZSByZWZlcnJlciBjb3VudAorCSAqIGlzIGFsc28gaW5jcmVtZW50ZWQgd2hlbiB0aGUgZmlsZSBpcyBsb2NrZWQgYW5kIGRlY3JlbWVudGVkCisJICogd2hlbiBpdCBpcyB1bmxvY2tlZC4KKwkgKi8KKwlzdHJ1Y3QgbG9ja19maWxlICpsb2NrOworCisJLyogVGhlIG1ldGFkYXRhIGZyb20gd2hlbiB0aGlzIHBhY2tlZC1yZWZzIGNhY2hlIHdhcyByZWFkICovCisJc3RydWN0IHN0YXRfdmFsaWRpdHkgdmFsaWRpdHk7Cit9OworCiAvKgogICogRnV0dXJlOiBuZWVkIHRvIGJlIGluICJzdHJ1Y3QgcmVwb3NpdG9yeSIKICAqIHdoZW4gZG9pbmcgYSBmdWxsIGxpYmlmaWNhdGlvbi4KQEAgLTcwNywxNiArODUyLDUxIEBACiBzdGF0aWMgc3RydWN0IHJlZl9jYWNoZSB7CiAJc3RydWN0IHJlZl9jYWNoZSAqbmV4dDsKIAlzdHJ1Y3QgcmVmX2VudHJ5ICpsb29zZTsKLQlzdHJ1Y3QgcmVmX2VudHJ5ICpwYWNrZWQ7Ci0JLyogVGhlIHN1Ym1vZHVsZSBuYW1lLCBvciAiIiBmb3IgdGhlIG1haW4gcmVwby4gKi8KLQljaGFyIG5hbWVbRkxFWF9BUlJBWV07Ci19ICpyZWZfY2FjaGU7CisJc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKnBhY2tlZDsKKwkvKgorCSAqIFRoZSBzdWJtb2R1bGUgbmFtZSwgb3IgIiIgZm9yIHRoZSBtYWluIHJlcG8uICBXZSBhbGxvY2F0ZQorCSAqIGxlbmd0aCAxIHJhdGhlciB0aGFuIEZMRVhfQVJSQVkgc28gdGhhdCB0aGUgbWFpbiByZWZfY2FjaGUKKwkgKiBpcyBpbml0aWFsaXplZCBjb3JyZWN0bHkuCisJICovCisJY2hhciBuYW1lWzFdOworfSByZWZfY2FjaGUsICpzdWJtb2R1bGVfcmVmX2NhY2hlczsKKworLyogTG9jayB1c2VkIGZvciB0aGUgbWFpbiBwYWNrZWQtcmVmcyBmaWxlOiAqLworc3RhdGljIHN0cnVjdCBsb2NrX2ZpbGUgcGFja2xvY2s7CisKKy8qCisgKiBJbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiAqcGFja2VkX3JlZnMuCisgKi8KK3N0YXRpYyB2b2lkIGFjcXVpcmVfcGFja2VkX3JlZl9jYWNoZShzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqcGFja2VkX3JlZnMpCit7CisJcGFja2VkX3JlZnMtPnJlZmVycmVycysrOworfQorCisvKgorICogRGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiAqcGFja2VkX3JlZnMuICBJZiBpdCBnb2VzIHRvIHplcm8sCisgKiBmcmVlICpwYWNrZWRfcmVmcyBhbmQgcmV0dXJuIHRydWU7IG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisgKi8KK3N0YXRpYyBpbnQgcmVsZWFzZV9wYWNrZWRfcmVmX2NhY2hlKHN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmcykKK3sKKwlpZiAoIS0tcGFja2VkX3JlZnMtPnJlZmVycmVycykgeworCQlmcmVlX3JlZl9lbnRyeShwYWNrZWRfcmVmcy0+cm9vdCk7CisJCXN0YXRfdmFsaWRpdHlfY2xlYXIoJnBhY2tlZF9yZWZzLT52YWxpZGl0eSk7CisJCWZyZWUocGFja2VkX3JlZnMpOworCQlyZXR1cm4gMTsKKwl9IGVsc2UgeworCQlyZXR1cm4gMDsKKwl9Cit9CiAKIHN0YXRpYyB2b2lkIGNsZWFyX3BhY2tlZF9yZWZfY2FjaGUoc3RydWN0IHJlZl9jYWNoZSAqcmVmcykKIHsKIAlpZiAocmVmcy0+cGFja2VkKSB7Ci0JCWZyZWVfcmVmX2VudHJ5KHJlZnMtPnBhY2tlZCk7CisJCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmcyA9IHJlZnMtPnBhY2tlZDsKKworCQlpZiAocGFja2VkX3JlZnMtPmxvY2spCisJCQlkaWUoImludGVybmFsIGVycm9yOiBwYWNrZWQtcmVmIGNhY2hlIGNsZWFyZWQgd2hpbGUgbG9ja2VkIik7CiAJCXJlZnMtPnBhY2tlZCA9IE5VTEw7CisJCXJlbGVhc2VfcGFja2VkX3JlZl9jYWNoZShwYWNrZWRfcmVmcyk7CiAJfQogfQogCkBAIC03NDgsMTggKzkyOCwxOCBAQAogICovCiBzdGF0aWMgc3RydWN0IHJlZl9jYWNoZSAqZ2V0X3JlZl9jYWNoZShjb25zdCBjaGFyICpzdWJtb2R1bGUpCiB7Ci0Jc3RydWN0IHJlZl9jYWNoZSAqcmVmcyA9IHJlZl9jYWNoZTsKLQlpZiAoIXN1Ym1vZHVsZSkKLQkJc3VibW9kdWxlID0gIiI7Ci0Jd2hpbGUgKHJlZnMpIHsKKwlzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzOworCisJaWYgKCFzdWJtb2R1bGUgfHwgISpzdWJtb2R1bGUpCisJCXJldHVybiAmcmVmX2NhY2hlOworCisJZm9yIChyZWZzID0gc3VibW9kdWxlX3JlZl9jYWNoZXM7IHJlZnM7IHJlZnMgPSByZWZzLT5uZXh0KQogCQlpZiAoIXN0cmNtcChzdWJtb2R1bGUsIHJlZnMtPm5hbWUpKQogCQkJcmV0dXJuIHJlZnM7Ci0JCXJlZnMgPSByZWZzLT5uZXh0OwotCX0KIAogCXJlZnMgPSBjcmVhdGVfcmVmX2NhY2hlKHN1Ym1vZHVsZSk7Ci0JcmVmcy0+bmV4dCA9IHJlZl9jYWNoZTsKLQlyZWZfY2FjaGUgPSByZWZzOworCXJlZnMtPm5leHQgPSBzdWJtb2R1bGVfcmVmX2NhY2hlczsKKwlzdWJtb2R1bGVfcmVmX2NhY2hlcyA9IHJlZnM7CiAJcmV0dXJuIHJlZnM7CiB9CiAKQEAgLTc3MCw2ICs5NTAsMTYgQEAKIAljbGVhcl9sb29zZV9yZWZfY2FjaGUocmVmcyk7CiB9CiAKKy8qIFRoZSBsZW5ndGggb2YgYSBwZWVsZWQgcmVmZXJlbmNlIGxpbmUgaW4gcGFja2VkLXJlZnMsIGluY2x1ZGluZyBFT0w6ICovCisjZGVmaW5lIFBFRUxFRF9MSU5FX0xFTkdUSCA0MgorCisvKgorICogVGhlIHBhY2tlZC1yZWZzIGhlYWRlciBsaW5lIHRoYXQgd2Ugd3JpdGUgb3V0LiAgUGVyaGFwcyBvdGhlcgorICogdHJhaXRzIHdpbGwgYmUgYWRkZWQgbGF0ZXIuICBUaGUgdHJhaWxpbmcgc3BhY2UgaXMgcmVxdWlyZWQuCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyIFBBQ0tFRF9SRUZTX0hFQURFUltdID0KKwkiIyBwYWNrLXJlZnMgd2l0aDogcGVlbGVkIGZ1bGx5LXBlZWxlZCBcbiI7CisKIC8qCiAgKiBQYXJzZSBvbmUgbGluZSBmcm9tIGEgcGFja2VkLXJlZnMgZmlsZS4gIFdyaXRlIHRoZSBTSEExIHRvIHNoYTEuCiAgKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSByZWZuYW1lIHdpdGhpbiB0aGUgbGluZSAobnVsbC10ZXJtaW5hdGVkKSwKQEAgLTg2Miw4ICsxMDUyLDggQEAKIAkJfQogCQlpZiAobGFzdCAmJgogCQkgICAgcmVmbGluZVswXSA9PSAnXicgJiYKLQkJICAgIHN0cmxlbihyZWZsaW5lKSA9PSA0MiAmJgotCQkgICAgcmVmbGluZVs0MV0gPT0gJ1xuJyAmJgorCQkgICAgc3RybGVuKHJlZmxpbmUpID09IFBFRUxFRF9MSU5FX0xFTkdUSCAmJgorCQkgICAgcmVmbGluZVtQRUVMRURfTElORV9MRU5HVEggLSAxXSA9PSAnXG4nICYmCiAJCSAgICAhZ2V0X3NoYTFfaGV4KHJlZmxpbmUgKyAxLCBzaGExKSkgewogCQkJaGFzaGNweShsYXN0LT51LnZhbHVlLnBlZWxlZCwgc2hhMSk7CiAJCQkvKgpAQCAtODc2LDMwICsxMDY2LDU4IEBACiAJfQogfQogCi1zdGF0aWMgc3RydWN0IHJlZl9kaXIgKmdldF9wYWNrZWRfcmVmcyhzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzKQorLyoKKyAqIEdldCB0aGUgcGFja2VkX3JlZl9jYWNoZSBmb3IgdGhlIHNwZWNpZmllZCByZWZfY2FjaGUsIGNyZWF0aW5nIGl0CisgKiBpZiBuZWNlc3NhcnkuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGFja2VkX3JlZl9jYWNoZSAqZ2V0X3BhY2tlZF9yZWZfY2FjaGUoc3RydWN0IHJlZl9jYWNoZSAqcmVmcykKIHsKKwljb25zdCBjaGFyICpwYWNrZWRfcmVmc19maWxlOworCisJaWYgKCpyZWZzLT5uYW1lKQorCQlwYWNrZWRfcmVmc19maWxlID0gZ2l0X3BhdGhfc3VibW9kdWxlKHJlZnMtPm5hbWUsICJwYWNrZWQtcmVmcyIpOworCWVsc2UKKwkJcGFja2VkX3JlZnNfZmlsZSA9IGdpdF9wYXRoKCJwYWNrZWQtcmVmcyIpOworCisJaWYgKHJlZnMtPnBhY2tlZCAmJgorCSAgICAhc3RhdF92YWxpZGl0eV9jaGVjaygmcmVmcy0+cGFja2VkLT52YWxpZGl0eSwgcGFja2VkX3JlZnNfZmlsZSkpCisJCWNsZWFyX3BhY2tlZF9yZWZfY2FjaGUocmVmcyk7CisKIAlpZiAoIXJlZnMtPnBhY2tlZCkgewotCQljb25zdCBjaGFyICpwYWNrZWRfcmVmc19maWxlOwogCQlGSUxFICpmOwogCi0JCXJlZnMtPnBhY2tlZCA9IGNyZWF0ZV9kaXJfZW50cnkocmVmcywgIiIsIDAsIDApOwotCQlpZiAoKnJlZnMtPm5hbWUpCi0JCQlwYWNrZWRfcmVmc19maWxlID0gZ2l0X3BhdGhfc3VibW9kdWxlKHJlZnMtPm5hbWUsICJwYWNrZWQtcmVmcyIpOwotCQllbHNlCi0JCQlwYWNrZWRfcmVmc19maWxlID0gZ2l0X3BhdGgoInBhY2tlZC1yZWZzIik7CisJCXJlZnMtPnBhY2tlZCA9IHhjYWxsb2MoMSwgc2l6ZW9mKCpyZWZzLT5wYWNrZWQpKTsKKwkJYWNxdWlyZV9wYWNrZWRfcmVmX2NhY2hlKHJlZnMtPnBhY2tlZCk7CisJCXJlZnMtPnBhY2tlZC0+cm9vdCA9IGNyZWF0ZV9kaXJfZW50cnkocmVmcywgIiIsIDAsIDApOwogCQlmID0gZm9wZW4ocGFja2VkX3JlZnNfZmlsZSwgInIiKTsKIAkJaWYgKGYpIHsKLQkJCXJlYWRfcGFja2VkX3JlZnMoZiwgZ2V0X3JlZl9kaXIocmVmcy0+cGFja2VkKSk7CisJCQlzdGF0X3ZhbGlkaXR5X3VwZGF0ZSgmcmVmcy0+cGFja2VkLT52YWxpZGl0eSwgZmlsZW5vKGYpKTsKKwkJCXJlYWRfcGFja2VkX3JlZnMoZiwgZ2V0X3JlZl9kaXIocmVmcy0+cGFja2VkLT5yb290KSk7CiAJCQlmY2xvc2UoZik7CiAJCX0KIAl9Ci0JcmV0dXJuIGdldF9yZWZfZGlyKHJlZnMtPnBhY2tlZCk7CisJcmV0dXJuIHJlZnMtPnBhY2tlZDsKK30KKworc3RhdGljIHN0cnVjdCByZWZfZGlyICpnZXRfcGFja2VkX3JlZl9kaXIoc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKnBhY2tlZF9yZWZfY2FjaGUpCit7CisJcmV0dXJuIGdldF9yZWZfZGlyKHBhY2tlZF9yZWZfY2FjaGUtPnJvb3QpOworfQorCitzdGF0aWMgc3RydWN0IHJlZl9kaXIgKmdldF9wYWNrZWRfcmVmcyhzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzKQoreworCXJldHVybiBnZXRfcGFja2VkX3JlZl9kaXIoZ2V0X3BhY2tlZF9yZWZfY2FjaGUocmVmcykpOwogfQogCiB2b2lkIGFkZF9wYWNrZWRfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEpCiB7Ci0JYWRkX3JlZihnZXRfcGFja2VkX3JlZnMoZ2V0X3JlZl9jYWNoZShOVUxMKSksCi0JCQljcmVhdGVfcmVmX2VudHJ5KHJlZm5hbWUsIHNoYTEsIFJFRl9JU1BBQ0tFRCwgMSkpOworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlID0KKwkJZ2V0X3BhY2tlZF9yZWZfY2FjaGUoJnJlZl9jYWNoZSk7CisKKwlpZiAoIXBhY2tlZF9yZWZfY2FjaGUtPmxvY2spCisJCWRpZSgiaW50ZXJuYWwgZXJyb3I6IHBhY2tlZCByZWZzIG5vdCBsb2NrZWQiKTsKKwlhZGRfcmVmKGdldF9wYWNrZWRfcmVmX2RpcihwYWNrZWRfcmVmX2NhY2hlKSwKKwkJY3JlYXRlX3JlZl9lbnRyeShyZWZuYW1lLCBzaGExLCBSRUZfSVNQQUNLRUQsIDEpKTsKIH0KIAogLyoKQEAgLTEwNjksMTggKzEyODcsNDMgQEAKIH0KIAogLyoKLSAqIFRyeSB0byByZWFkIHJlZiBmcm9tIHRoZSBwYWNrZWQgcmVmZXJlbmNlcy4gIE9uIHN1Y2Nlc3MsIHNldCBzaGExCi0gKiBhbmQgcmV0dXJuIDA7IG90aGVyd2lzZSwgcmV0dXJuIC0xLgorICogUmV0dXJuIHRoZSByZWZfZW50cnkgZm9yIHRoZSBnaXZlbiByZWZuYW1lIGZyb20gdGhlIHBhY2tlZAorICogcmVmZXJlbmNlcy4gIElmIGl0IGRvZXMgbm90IGV4aXN0LCByZXR1cm4gTlVMTC4KICAqLwotc3RhdGljIGludCBnZXRfcGFja2VkX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKQorc3RhdGljIHN0cnVjdCByZWZfZW50cnkgKmdldF9wYWNrZWRfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUpCiB7Ci0Jc3RydWN0IHJlZl9kaXIgKnBhY2tlZCA9IGdldF9wYWNrZWRfcmVmcyhnZXRfcmVmX2NhY2hlKE5VTEwpKTsKLQlzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSA9IGZpbmRfcmVmKHBhY2tlZCwgcmVmbmFtZSk7CisJcmV0dXJuIGZpbmRfcmVmKGdldF9wYWNrZWRfcmVmcygmcmVmX2NhY2hlKSwgcmVmbmFtZSk7Cit9CisKKy8qCisgKiBBIGxvb3NlIHJlZiBmaWxlIGRvZXNuJ3QgZXhpc3Q7IGNoZWNrIGZvciBhIHBhY2tlZCByZWYuICBUaGUKKyAqIG9wdGlvbnMgYXJlIGZvcndhcmRlZCBmcm9tIHJlc29sdmVfc2FmZV91bnNhZmUoKS4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKmhhbmRsZV9taXNzaW5nX2xvb3NlX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLAorCQkJCQkgICAgdW5zaWduZWQgY2hhciAqc2hhMSwKKwkJCQkJICAgIGludCByZWFkaW5nLAorCQkJCQkgICAgaW50ICpmbGFnKQoreworCXN0cnVjdCByZWZfZW50cnkgKmVudHJ5OworCisJLyoKKwkgKiBUaGUgbG9vc2UgcmVmZXJlbmNlIGZpbGUgZG9lcyBub3QgZXhpc3Q7IGNoZWNrIGZvciBhIHBhY2tlZAorCSAqIHJlZmVyZW5jZS4KKwkgKi8KKwllbnRyeSA9IGdldF9wYWNrZWRfcmVmKHJlZm5hbWUpOwogCWlmIChlbnRyeSkgewogCQloYXNoY3B5KHNoYTEsIGVudHJ5LT51LnZhbHVlLnNoYTEpOwotCQlyZXR1cm4gMDsKKwkJaWYgKGZsYWcpCisJCQkqZmxhZyB8PSBSRUZfSVNQQUNLRUQ7CisJCXJldHVybiByZWZuYW1lOwogCX0KLQlyZXR1cm4gLTE7CisJLyogVGhlIHJlZmVyZW5jZSBpcyBub3QgYSBwYWNrZWQgcmVmZXJlbmNlLCBlaXRoZXIuICovCisJaWYgKHJlYWRpbmcpIHsKKwkJcmV0dXJuIE5VTEw7CisJfSBlbHNlIHsKKwkJaGFzaGNscihzaGExKTsKKwkJcmV0dXJuIHJlZm5hbWU7CisJfQogfQogCiBjb25zdCBjaGFyICpyZXNvbHZlX3JlZl91bnNhZmUoY29uc3QgY2hhciAqcmVmbmFtZSwgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IHJlYWRpbmcsIGludCAqZmxhZykKQEAgLTExMDcsMzIgKzEzNTAsMzQgQEAKIAogCQlnaXRfc25wYXRoKHBhdGgsIHNpemVvZihwYXRoKSwgIiVzIiwgcmVmbmFtZSk7CiAKKwkJLyoKKwkJICogV2UgbWlnaHQgaGF2ZSB0byBsb29wIGJhY2sgaGVyZSB0byBhdm9pZCBhIHJhY2UKKwkJICogY29uZGl0aW9uOiBmaXJzdCB3ZSBsc3RhdCgpIHRoZSBmaWxlLCB0aGVuIHdlIHRyeQorCQkgKiB0byByZWFkIGl0IGFzIGEgbGluayBvciBhcyBhIGZpbGUuICBCdXQgaWYgc29tZWJvZHkKKwkJICogY2hhbmdlcyB0aGUgdHlwZSBvZiB0aGUgZmlsZSAoZmlsZSA8LT4gZGlyZWN0b3J5CisJCSAqIDwtPiBzeW1saW5rKSBiZXR3ZWVuIHRoZSBsc3RhdCgpIGFuZCByZWFkaW5nLCB0aGVuCisJCSAqIHdlIGRvbid0IHdhbnQgdG8gcmVwb3J0IHRoYXQgYXMgYW4gZXJyb3IgYnV0IHJhdGhlcgorCQkgKiB0cnkgYWdhaW4gc3RhcnRpbmcgd2l0aCB0aGUgbHN0YXQoKS4KKwkJICovCisJc3RhdF9yZWY6CiAJCWlmIChsc3RhdChwYXRoLCAmc3QpIDwgMCkgewotCQkJaWYgKGVycm5vICE9IEVOT0VOVCkKKwkJCWlmIChlcnJubyA9PSBFTk9FTlQpCisJCQkJcmV0dXJuIGhhbmRsZV9taXNzaW5nX2xvb3NlX3JlZihyZWZuYW1lLCBzaGExLAorCQkJCQkJCQlyZWFkaW5nLCBmbGFnKTsKKwkJCWVsc2UKIAkJCQlyZXR1cm4gTlVMTDsKLQkJCS8qCi0JCQkgKiBUaGUgbG9vc2UgcmVmZXJlbmNlIGZpbGUgZG9lcyBub3QgZXhpc3Q7Ci0JCQkgKiBjaGVjayBmb3IgYSBwYWNrZWQgcmVmZXJlbmNlLgotCQkJICovCi0JCQlpZiAoIWdldF9wYWNrZWRfcmVmKHJlZm5hbWUsIHNoYTEpKSB7Ci0JCQkJaWYgKGZsYWcpCi0JCQkJCSpmbGFnIHw9IFJFRl9JU1BBQ0tFRDsKLQkJCQlyZXR1cm4gcmVmbmFtZTsKLQkJCX0KLQkJCS8qIFRoZSByZWZlcmVuY2UgaXMgbm90IGEgcGFja2VkIHJlZmVyZW5jZSwgZWl0aGVyLiAqLwotCQkJaWYgKHJlYWRpbmcpIHsKLQkJCQlyZXR1cm4gTlVMTDsKLQkJCX0gZWxzZSB7Ci0JCQkJaGFzaGNscihzaGExKTsKLQkJCQlyZXR1cm4gcmVmbmFtZTsKLQkJCX0KIAkJfQogCiAJCS8qIEZvbGxvdyAibm9ybWFsaXplZCIgLSBpZSAicmVmcy8uLiIgc3ltbGlua3MgYnkgaGFuZCAqLwogCQlpZiAoU19JU0xOSyhzdC5zdF9tb2RlKSkgewogCQkJbGVuID0gcmVhZGxpbmsocGF0aCwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKS0xKTsKLQkJCWlmIChsZW4gPCAwKQotCQkJCXJldHVybiBOVUxMOworCQkJaWYgKGxlbiA8IDApIHsKKwkJCQlpZiAoZXJybm8gPT0gRU5PRU5UIHx8IGVycm5vID09IEVJTlZBTCkKKwkJCQkJLyogaW5jb25zaXN0ZW50IHdpdGggbHN0YXQ7IHJldHJ5ICovCisJCQkJCWdvdG8gc3RhdF9yZWY7CisJCQkJZWxzZQorCQkJCQlyZXR1cm4gTlVMTDsKKwkJCX0KIAkJCWJ1ZmZlcltsZW5dID0gMDsKIAkJCWlmICghcHJlZml4Y21wKGJ1ZmZlciwgInJlZnMvIikgJiYKIAkJCQkJIWNoZWNrX3JlZm5hbWVfZm9ybWF0KGJ1ZmZlciwgMCkpIHsKQEAgLTExNTUsOCArMTQwMCwxMyBAQAogCQkgKiBhIHJlZgogCQkgKi8KIAkJZmQgPSBvcGVuKHBhdGgsIE9fUkRPTkxZKTsKLQkJaWYgKGZkIDwgMCkKLQkJCXJldHVybiBOVUxMOworCQlpZiAoZmQgPCAwKSB7CisJCQlpZiAoZXJybm8gPT0gRU5PRU5UKQorCQkJCS8qIGluY29uc2lzdGVudCB3aXRoIGxzdGF0OyByZXRyeSAqLworCQkJCWdvdG8gc3RhdF9yZWY7CisJCQllbHNlCisJCQkJcmV0dXJuIE5VTEw7CisJCX0KIAkJbGVuID0gcmVhZF9pbl9mdWxsKGZkLCBidWZmZXIsIHNpemVvZihidWZmZXIpLTEpOwogCQljbG9zZShmZCk7CiAJCWlmIChsZW4gPCAwKQpAQCAtMTE2OCw4ICsxNDE4LDE5IEBACiAJCS8qCiAJCSAqIElzIGl0IGEgc3ltYm9saWMgcmVmPwogCQkgKi8KLQkJaWYgKHByZWZpeGNtcChidWZmZXIsICJyZWY6IikpCi0JCQlicmVhazsKKwkJaWYgKHByZWZpeGNtcChidWZmZXIsICJyZWY6IikpIHsKKwkJCS8qCisJCQkgKiBQbGVhc2Ugbm90ZSB0aGF0IEZFVENIX0hFQUQgaGFzIGEgc2Vjb25kCisJCQkgKiBsaW5lIGNvbnRhaW5pbmcgb3RoZXIgZGF0YS4KKwkJCSAqLworCQkJaWYgKGdldF9zaGExX2hleChidWZmZXIsIHNoYTEpIHx8CisJCQkgICAgKGJ1ZmZlcls0MF0gIT0gJ1wwJyAmJiAhaXNzcGFjZShidWZmZXJbNDBdKSkpIHsKKwkJCQlpZiAoZmxhZykKKwkJCQkJKmZsYWcgfD0gUkVGX0lTQlJPS0VOOworCQkJCXJldHVybiBOVUxMOworCQkJfQorCQkJcmV0dXJuIHJlZm5hbWU7CisJCX0KIAkJaWYgKGZsYWcpCiAJCQkqZmxhZyB8PSBSRUZfSVNTWU1SRUY7CiAJCWJ1ZiA9IGJ1ZmZlciArIDQ7CkBAIC0xMTgyLDEzICsxNDQzLDYgQEAKIAkJfQogCQlyZWZuYW1lID0gc3RyY3B5KHJlZm5hbWVfYnVmZmVyLCBidWYpOwogCX0KLQkvKiBQbGVhc2Ugbm90ZSB0aGF0IEZFVENIX0hFQUQgaGFzIGEgc2Vjb25kIGxpbmUgY29udGFpbmluZyBvdGhlciBkYXRhLiAqLwotCWlmIChnZXRfc2hhMV9oZXgoYnVmZmVyLCBzaGExKSB8fCAoYnVmZmVyWzQwXSAhPSAnXDAnICYmICFpc3NwYWNlKGJ1ZmZlcls0MF0pKSkgewotCQlpZiAoZmxhZykKLQkJCSpmbGFnIHw9IFJFRl9JU0JST0tFTjsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCXJldHVybiByZWZuYW1lOwogfQogCiBjaGFyICpyZXNvbHZlX3JlZmR1cChjb25zdCBjaGFyICpyZWYsIHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCByZWFkaW5nLCBpbnQgKmZsYWcpCkBAIC0xMjMxLDU0ICsxNDg1LDEzMCBAQAogCXJldHVybiBmaWx0ZXItPmZuKHJlZm5hbWUsIHNoYTEsIGZsYWdzLCBmaWx0ZXItPmNiX2RhdGEpOwogfQogCitlbnVtIHBlZWxfc3RhdHVzIHsKKwkvKiBvYmplY3Qgd2FzIHBlZWxlZCBzdWNjZXNzZnVsbHk6ICovCisJUEVFTF9QRUVMRUQgPSAwLAorCisJLyoKKwkgKiBvYmplY3QgY2Fubm90IGJlIHBlZWxlZCBiZWNhdXNlIHRoZSBuYW1lZCBvYmplY3QgKG9yIGFuCisJICogb2JqZWN0IHJlZmVycmVkIHRvIGJ5IGEgdGFnIGluIHRoZSBwZWVsIGNoYWluKSwgZG9lcyBub3QKKwkgKiBleGlzdC4KKwkgKi8KKwlQRUVMX0lOVkFMSUQgPSAtMSwKKworCS8qIG9iamVjdCBjYW5ub3QgYmUgcGVlbGVkIGJlY2F1c2UgaXQgaXMgbm90IGEgdGFnOiAqLworCVBFRUxfTk9OX1RBRyA9IC0yLAorCisJLyogcmVmX2VudHJ5IGNvbnRhaW5zIG5vIHBlZWxlZCB2YWx1ZSBiZWNhdXNlIGl0IGlzIGEgc3ltcmVmOiAqLworCVBFRUxfSVNfU1lNUkVGID0gLTMsCisKKwkvKgorCSAqIHJlZl9lbnRyeSBjYW5ub3QgYmUgcGVlbGVkIGJlY2F1c2UgaXQgaXMgYnJva2VuIChpLmUuLCB0aGUKKwkgKiBzeW1ib2xpYyByZWZlcmVuY2UgY2Fubm90IGV2ZW4gYmUgcmVzb2x2ZWQgdG8gYW4gb2JqZWN0CisJICogbmFtZSk6CisJICovCisJUEVFTF9CUk9LRU4gPSAtNAorfTsKKworLyoKKyAqIFBlZWwgdGhlIG5hbWVkIG9iamVjdDsgaS5lLiwgaWYgdGhlIG9iamVjdCBpcyBhIHRhZywgcmVzb2x2ZSB0aGUKKyAqIHRhZyByZWN1cnNpdmVseSB1bnRpbCBhIG5vbi10YWcgaXMgZm91bmQuICBJZiBzdWNjZXNzZnVsLCBzdG9yZSB0aGUKKyAqIHJlc3VsdCB0byBzaGExIGFuZCByZXR1cm4gUEVFTF9QRUVMRUQuICBJZiB0aGUgb2JqZWN0IGlzIG5vdCBhIHRhZworICogb3IgaXMgbm90IHZhbGlkLCByZXR1cm4gUEVFTF9OT05fVEFHIG9yIFBFRUxfSU5WQUxJRCwgcmVzcGVjdGl2ZWx5LAorICogYW5kIGxlYXZlIHNoYTEgdW5jaGFuZ2VkLgorICovCitzdGF0aWMgZW51bSBwZWVsX3N0YXR1cyBwZWVsX29iamVjdChjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKQoreworCXN0cnVjdCBvYmplY3QgKm8gPSBsb29rdXBfdW5rbm93bl9vYmplY3QobmFtZSk7CisKKwlpZiAoby0+dHlwZSA9PSBPQkpfTk9ORSkgeworCQlpbnQgdHlwZSA9IHNoYTFfb2JqZWN0X2luZm8obmFtZSwgTlVMTCk7CisJCWlmICh0eXBlIDwgMCkKKwkJCXJldHVybiBQRUVMX0lOVkFMSUQ7CisJCW8tPnR5cGUgPSB0eXBlOworCX0KKworCWlmIChvLT50eXBlICE9IE9CSl9UQUcpCisJCXJldHVybiBQRUVMX05PTl9UQUc7CisKKwlvID0gZGVyZWZfdGFnX25vdmVyaWZ5KG8pOworCWlmICghbykKKwkJcmV0dXJuIFBFRUxfSU5WQUxJRDsKKworCWhhc2hjcHkoc2hhMSwgby0+c2hhMSk7CisJcmV0dXJuIFBFRUxfUEVFTEVEOworfQorCisvKgorICogUGVlbCB0aGUgZW50cnkgKGlmIHBvc3NpYmxlKSBhbmQgcmV0dXJuIGl0cyBuZXcgcGVlbF9zdGF0dXMuICBJZgorICogcmVwZWVsIGlzIHRydWUsIHJlLXBlZWwgdGhlIGVudHJ5IGV2ZW4gaWYgdGhlcmUgaXMgYW4gb2xkIHBlZWxlZAorICogdmFsdWUgdGhhdCBpcyBhbHJlYWR5IHN0b3JlZCBpbiBpdC4KKyAqCisgKiBJdCBpcyBPSyB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBhIHBhY2tlZCByZWZlcmVuY2UgZW50cnkgdGhhdAorICogbWlnaHQgYmUgc3RhbGUgYW5kIG1pZ2h0IGV2ZW4gcmVmZXIgdG8gYW4gb2JqZWN0IHRoYXQgaGFzIHNpbmNlCisgKiBiZWVuIGdhcmJhZ2UtY29sbGVjdGVkLiAgSW4gc3VjaCBhIGNhc2UsIGlmIHRoZSBlbnRyeSBoYXMKKyAqIFJFRl9LTk9XU19QRUVMRUQgdGhlbiBsZWF2ZSB0aGUgc3RhdHVzIHVuY2hhbmdlZCBhbmQgcmV0dXJuCisgKiBQRUVMX1BFRUxFRCBvciBQRUVMX05PTl9UQUc7IG90aGVyd2lzZSwgcmV0dXJuIFBFRUxfSU5WQUxJRC4KKyAqLworc3RhdGljIGVudW0gcGVlbF9zdGF0dXMgcGVlbF9lbnRyeShzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgaW50IHJlcGVlbCkKK3sKKwllbnVtIHBlZWxfc3RhdHVzIHN0YXR1czsKKworCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9LTk9XU19QRUVMRUQpIHsKKwkJaWYgKHJlcGVlbCkgeworCQkJZW50cnktPmZsYWcgJj0gflJFRl9LTk9XU19QRUVMRUQ7CisJCQloYXNoY2xyKGVudHJ5LT51LnZhbHVlLnBlZWxlZCk7CisJCX0gZWxzZSB7CisJCQlyZXR1cm4gaXNfbnVsbF9zaGExKGVudHJ5LT51LnZhbHVlLnBlZWxlZCkgPworCQkJCVBFRUxfTk9OX1RBRyA6IFBFRUxfUEVFTEVEOworCQl9CisJfQorCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9JU0JST0tFTikKKwkJcmV0dXJuIFBFRUxfQlJPS0VOOworCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9JU1NZTVJFRikKKwkJcmV0dXJuIFBFRUxfSVNfU1lNUkVGOworCisJc3RhdHVzID0gcGVlbF9vYmplY3QoZW50cnktPnUudmFsdWUuc2hhMSwgZW50cnktPnUudmFsdWUucGVlbGVkKTsKKwlpZiAoc3RhdHVzID09IFBFRUxfUEVFTEVEIHx8IHN0YXR1cyA9PSBQRUVMX05PTl9UQUcpCisJCWVudHJ5LT5mbGFnIHw9IFJFRl9LTk9XU19QRUVMRUQ7CisJcmV0dXJuIHN0YXR1czsKK30KKwogaW50IHBlZWxfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUsIHVuc2lnbmVkIGNoYXIgKnNoYTEpCiB7CiAJaW50IGZsYWc7CiAJdW5zaWduZWQgY2hhciBiYXNlWzIwXTsKLQlzdHJ1Y3Qgb2JqZWN0ICpvOwogCiAJaWYgKGN1cnJlbnRfcmVmICYmIChjdXJyZW50X3JlZi0+bmFtZSA9PSByZWZuYW1lCi0JCXx8ICFzdHJjbXAoY3VycmVudF9yZWYtPm5hbWUsIHJlZm5hbWUpKSkgewotCQlpZiAoY3VycmVudF9yZWYtPmZsYWcgJiBSRUZfS05PV1NfUEVFTEVEKSB7Ci0JCQlpZiAoaXNfbnVsbF9zaGExKGN1cnJlbnRfcmVmLT51LnZhbHVlLnBlZWxlZCkpCi0JCQkgICAgcmV0dXJuIC0xOwotCQkJaGFzaGNweShzaGExLCBjdXJyZW50X3JlZi0+dS52YWx1ZS5wZWVsZWQpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJaGFzaGNweShiYXNlLCBjdXJyZW50X3JlZi0+dS52YWx1ZS5zaGExKTsKLQkJZ290byBmYWxsYmFjazsKKwkJCSAgICB8fCAhc3RyY21wKGN1cnJlbnRfcmVmLT5uYW1lLCByZWZuYW1lKSkpIHsKKwkJaWYgKHBlZWxfZW50cnkoY3VycmVudF9yZWYsIDApKQorCQkJcmV0dXJuIC0xOworCQloYXNoY3B5KHNoYTEsIGN1cnJlbnRfcmVmLT51LnZhbHVlLnBlZWxlZCk7CisJCXJldHVybiAwOwogCX0KIAogCWlmIChyZWFkX3JlZl9mdWxsKHJlZm5hbWUsIGJhc2UsIDEsICZmbGFnKSkKIAkJcmV0dXJuIC0xOwogCi0JaWYgKChmbGFnICYgUkVGX0lTUEFDS0VEKSkgewotCQlzdHJ1Y3QgcmVmX2RpciAqZGlyID0gZ2V0X3BhY2tlZF9yZWZzKGdldF9yZWZfY2FjaGUoTlVMTCkpOwotCQlzdHJ1Y3QgcmVmX2VudHJ5ICpyID0gZmluZF9yZWYoZGlyLCByZWZuYW1lKTsKLQotCQlpZiAociAhPSBOVUxMICYmIHItPmZsYWcgJiBSRUZfS05PV1NfUEVFTEVEKSB7CisJLyoKKwkgKiBJZiB0aGUgcmVmZXJlbmNlIGlzIHBhY2tlZCwgcmVhZCBpdHMgcmVmX2VudHJ5IGZyb20gdGhlCisJICogY2FjaGUgaW4gdGhlIGhvcGUgdGhhdCB3ZSBhbHJlYWR5IGtub3cgaXRzIHBlZWxlZCB2YWx1ZS4KKwkgKiBXZSBvbmx5IHRyeSB0aGlzIG9wdGltaXphdGlvbiBvbiBwYWNrZWQgcmVmZXJlbmNlcyBiZWNhdXNlCisJICogKGEpIGZvcmNpbmcgdGhlIGZpbGxpbmcgb2YgdGhlIGxvb3NlIHJlZmVyZW5jZSBjYWNoZSBjb3VsZAorCSAqIGJlIGV4cGVuc2l2ZSBhbmQgKGIpIGxvb3NlIHJlZmVyZW5jZXMgYW55d2F5IHVzdWFsbHkgZG8gbm90CisJICogaGF2ZSBSRUZfS05PV1NfUEVFTEVELgorCSAqLworCWlmIChmbGFnICYgUkVGX0lTUEFDS0VEKSB7CisJCXN0cnVjdCByZWZfZW50cnkgKnIgPSBnZXRfcGFja2VkX3JlZihyZWZuYW1lKTsKKwkJaWYgKHIpIHsKKwkJCWlmIChwZWVsX2VudHJ5KHIsIDApKQorCQkJCXJldHVybiAtMTsKIAkJCWhhc2hjcHkoc2hhMSwgci0+dS52YWx1ZS5wZWVsZWQpOwogCQkJcmV0dXJuIDA7CiAJCX0KIAl9CiAKLWZhbGxiYWNrOgotCW8gPSBsb29rdXBfdW5rbm93bl9vYmplY3QoYmFzZSk7Ci0JaWYgKG8tPnR5cGUgPT0gT0JKX05PTkUpIHsKLQkJaW50IHR5cGUgPSBzaGExX29iamVjdF9pbmZvKGJhc2UsIE5VTEwpOwotCQlpZiAodHlwZSA8IDApCi0JCQlyZXR1cm4gLTE7Ci0JCW8tPnR5cGUgPSB0eXBlOwotCX0KLQotCWlmIChvLT50eXBlID09IE9CSl9UQUcpIHsKLQkJbyA9IGRlcmVmX3RhZ19ub3ZlcmlmeShvKTsKLQkJaWYgKG8pIHsKLQkJCWhhc2hjcHkoc2hhMSwgby0+c2hhMSk7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0KLQlyZXR1cm4gLTE7CisJcmV0dXJuIHBlZWxfb2JqZWN0KGJhc2UsIHNoYTEpOwogfQogCiBzdHJ1Y3Qgd2Fybl9pZl9kYW5nbGluZ19kYXRhIHsKQEAgLTEzMTYsNDAgKzE2NDYsODQgQEAKIAlmb3JfZWFjaF9yYXdyZWYod2Fybl9pZl9kYW5nbGluZ19zeW1yZWYsICZkYXRhKTsKIH0KIAotc3RhdGljIGludCBkb19mb3JfZWFjaF9yZWYoY29uc3QgY2hhciAqc3VibW9kdWxlLCBjb25zdCBjaGFyICpiYXNlLCBlYWNoX3JlZl9mbiBmbiwKLQkJCSAgIGludCB0cmltLCBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCisvKgorICogQ2FsbCBmbiBmb3IgZWFjaCByZWZlcmVuY2UgaW4gdGhlIHNwZWNpZmllZCByZWZfY2FjaGUsIG9taXR0aW5nCisgKiByZWZlcmVuY2VzIG5vdCBpbiB0aGUgY29udGFpbmluZ19kaXIgb2YgYmFzZS4gIGZuIGlzIGNhbGxlZCBmb3IgYWxsCisgKiByZWZlcmVuY2VzLCBpbmNsdWRpbmcgYnJva2VuIG9uZXMuICBJZiBmbiBldmVyIHJldHVybnMgYSBub24temVybworICogdmFsdWUsIHN0b3AgdGhlIGl0ZXJhdGlvbiBhbmQgcmV0dXJuIHRoYXQgdmFsdWU7IG90aGVyd2lzZSwgcmV0dXJuCisgKiAwLgorICovCitzdGF0aWMgaW50IGRvX2Zvcl9lYWNoX2VudHJ5KHN0cnVjdCByZWZfY2FjaGUgKnJlZnMsIGNvbnN0IGNoYXIgKmJhc2UsCisJCQkgICAgIGVhY2hfcmVmX2VudHJ5X2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewotCXN0cnVjdCByZWZfY2FjaGUgKnJlZnMgPSBnZXRfcmVmX2NhY2hlKHN1Ym1vZHVsZSk7Ci0Jc3RydWN0IHJlZl9kaXIgKnBhY2tlZF9kaXIgPSBnZXRfcGFja2VkX3JlZnMocmVmcyk7Ci0Jc3RydWN0IHJlZl9kaXIgKmxvb3NlX2RpciA9IGdldF9sb29zZV9yZWZzKHJlZnMpOworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlOworCXN0cnVjdCByZWZfZGlyICpsb29zZV9kaXI7CisJc3RydWN0IHJlZl9kaXIgKnBhY2tlZF9kaXI7CiAJaW50IHJldHZhbCA9IDA7CiAKKwkvKgorCSAqIFdlIG11c3QgbWFrZSBzdXJlIHRoYXQgYWxsIGxvb3NlIHJlZnMgYXJlIHJlYWQgYmVmb3JlIGFjY2Vzc2luZyB0aGUKKwkgKiBwYWNrZWQtcmVmcyBmaWxlOyB0aGlzIGF2b2lkcyBhIHJhY2UgY29uZGl0aW9uIGluIHdoaWNoIGxvb3NlIHJlZnMKKwkgKiBhcmUgbWlncmF0ZWQgdG8gdGhlIHBhY2tlZC1yZWZzIGZpbGUgYnkgYSBzaW11bHRhbmVvdXMgcHJvY2VzcywgYnV0CisJICogb3VyIGluLW1lbW9yeSB2aWV3IGlzIGZyb20gYmVmb3JlIHRoZSBtaWdyYXRpb24uIGdldF9wYWNrZWRfcmVmX2NhY2hlKCkKKwkgKiB0YWtlcyBjYXJlIG9mIG1ha2luZyBzdXJlIG91ciB2aWV3IGlzIHVwIHRvIGRhdGUgd2l0aCB3aGF0IGlzIG9uCisJICogZGlzay4KKwkgKi8KKwlsb29zZV9kaXIgPSBnZXRfbG9vc2VfcmVmcyhyZWZzKTsKKwlpZiAoYmFzZSAmJiAqYmFzZSkgeworCQlsb29zZV9kaXIgPSBmaW5kX2NvbnRhaW5pbmdfZGlyKGxvb3NlX2RpciwgYmFzZSwgMCk7CisJfQorCWlmIChsb29zZV9kaXIpCisJCXByaW1lX3JlZl9kaXIobG9vc2VfZGlyKTsKKworCXBhY2tlZF9yZWZfY2FjaGUgPSBnZXRfcGFja2VkX3JlZl9jYWNoZShyZWZzKTsKKwlhY3F1aXJlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZl9jYWNoZSk7CisJcGFja2VkX2RpciA9IGdldF9wYWNrZWRfcmVmX2RpcihwYWNrZWRfcmVmX2NhY2hlKTsKIAlpZiAoYmFzZSAmJiAqYmFzZSkgewogCQlwYWNrZWRfZGlyID0gZmluZF9jb250YWluaW5nX2RpcihwYWNrZWRfZGlyLCBiYXNlLCAwKTsKLQkJbG9vc2VfZGlyID0gZmluZF9jb250YWluaW5nX2Rpcihsb29zZV9kaXIsIGJhc2UsIDApOwogCX0KIAogCWlmIChwYWNrZWRfZGlyICYmIGxvb3NlX2RpcikgewogCQlzb3J0X3JlZl9kaXIocGFja2VkX2Rpcik7CiAJCXNvcnRfcmVmX2Rpcihsb29zZV9kaXIpOwotCQlyZXR2YWwgPSBkb19mb3JfZWFjaF9yZWZfaW5fZGlycygKLQkJCQlwYWNrZWRfZGlyLCBsb29zZV9kaXIsCi0JCQkJYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlycygKKwkJCQlwYWNrZWRfZGlyLCBsb29zZV9kaXIsIGZuLCBjYl9kYXRhKTsKIAl9IGVsc2UgaWYgKHBhY2tlZF9kaXIpIHsKIAkJc29ydF9yZWZfZGlyKHBhY2tlZF9kaXIpOwotCQlyZXR2YWwgPSBkb19mb3JfZWFjaF9yZWZfaW5fZGlyKAotCQkJCXBhY2tlZF9kaXIsIDAsCi0JCQkJYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKAorCQkJCXBhY2tlZF9kaXIsIDAsIGZuLCBjYl9kYXRhKTsKIAl9IGVsc2UgaWYgKGxvb3NlX2RpcikgewogCQlzb3J0X3JlZl9kaXIobG9vc2VfZGlyKTsKLQkJcmV0dmFsID0gZG9fZm9yX2VhY2hfcmVmX2luX2RpcigKLQkJCQlsb29zZV9kaXIsIDAsCi0JCQkJYmFzZSwgZm4sIHRyaW0sIGZsYWdzLCBjYl9kYXRhKTsKKwkJcmV0dmFsID0gZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKAorCQkJCWxvb3NlX2RpciwgMCwgZm4sIGNiX2RhdGEpOwogCX0KIAorCXJlbGVhc2VfcGFja2VkX3JlZl9jYWNoZShwYWNrZWRfcmVmX2NhY2hlKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCisvKgorICogQ2FsbCBmbiBmb3IgZWFjaCByZWZlcmVuY2UgaW4gdGhlIHNwZWNpZmllZCByZWZfY2FjaGUgZm9yIHdoaWNoIHRoZQorICogcmVmbmFtZSBiZWdpbnMgd2l0aCBiYXNlLiAgSWYgdHJpbSBpcyBub24temVybywgdGhlbiB0cmltIHRoYXQgbWFueQorICogY2hhcmFjdGVycyBvZmYgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHJlZm5hbWUgYmVmb3JlIHBhc3NpbmcgdGhlCisgKiByZWZuYW1lIHRvIGZuLiAgZmxhZ3MgY2FuIGJlIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOIHRvIGluY2x1ZGUKKyAqIGJyb2tlbiByZWZlcmVuY2VzIGluIHRoZSBpdGVyYXRpb24uICBJZiBmbiBldmVyIHJldHVybnMgYSBub24temVybworICogdmFsdWUsIHN0b3AgdGhlIGl0ZXJhdGlvbiBhbmQgcmV0dXJuIHRoYXQgdmFsdWU7IG90aGVyd2lzZSwgcmV0dXJuCisgKiAwLgorICovCitzdGF0aWMgaW50IGRvX2Zvcl9lYWNoX3JlZihzdHJ1Y3QgcmVmX2NhY2hlICpyZWZzLCBjb25zdCBjaGFyICpiYXNlLAorCQkJICAgZWFjaF9yZWZfZm4gZm4sIGludCB0cmltLCBpbnQgZmxhZ3MsIHZvaWQgKmNiX2RhdGEpCit7CisJc3RydWN0IHJlZl9lbnRyeV9jYiBkYXRhOworCWRhdGEuYmFzZSA9IGJhc2U7CisJZGF0YS50cmltID0gdHJpbTsKKwlkYXRhLmZsYWdzID0gZmxhZ3M7CisJZGF0YS5mbiA9IGZuOworCWRhdGEuY2JfZGF0YSA9IGNiX2RhdGE7CisKKwlyZXR1cm4gZG9fZm9yX2VhY2hfZW50cnkocmVmcywgYmFzZSwgZG9fb25lX3JlZiwgJmRhdGEpOworfQorCiBzdGF0aWMgaW50IGRvX2hlYWRfcmVmKGNvbnN0IGNoYXIgKnN1Ym1vZHVsZSwgZWFjaF9yZWZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7CiAJdW5zaWduZWQgY2hhciBzaGExWzIwXTsKQEAgLTEzODAsMjMgKzE3NTQsMjMgQEAKIAogaW50IGZvcl9lYWNoX3JlZihlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKE5VTEwsICIiLCBmbiwgMCwgMCwgY2JfZGF0YSk7CisJcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZigmcmVmX2NhY2hlLCAiIiwgZm4sIDAsIDAsIGNiX2RhdGEpOwogfQogCiBpbnQgZm9yX2VhY2hfcmVmX3N1Ym1vZHVsZShjb25zdCBjaGFyICpzdWJtb2R1bGUsIGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewotCXJldHVybiBkb19mb3JfZWFjaF9yZWYoc3VibW9kdWxlLCAiIiwgZm4sIDAsIDAsIGNiX2RhdGEpOworCXJldHVybiBkb19mb3JfZWFjaF9yZWYoZ2V0X3JlZl9jYWNoZShzdWJtb2R1bGUpLCAiIiwgZm4sIDAsIDAsIGNiX2RhdGEpOwogfQogCiBpbnQgZm9yX2VhY2hfcmVmX2luKGNvbnN0IGNoYXIgKnByZWZpeCwgZWFjaF9yZWZfZm4gZm4sIHZvaWQgKmNiX2RhdGEpCiB7Ci0JcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZihOVUxMLCBwcmVmaXgsIGZuLCBzdHJsZW4ocHJlZml4KSwgMCwgY2JfZGF0YSk7CisJcmV0dXJuIGRvX2Zvcl9lYWNoX3JlZigmcmVmX2NhY2hlLCBwcmVmaXgsIGZuLCBzdHJsZW4ocHJlZml4KSwgMCwgY2JfZGF0YSk7CiB9CiAKIGludCBmb3JfZWFjaF9yZWZfaW5fc3VibW9kdWxlKGNvbnN0IGNoYXIgKnN1Ym1vZHVsZSwgY29uc3QgY2hhciAqcHJlZml4LAogCQllYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKIHsKLQlyZXR1cm4gZG9fZm9yX2VhY2hfcmVmKHN1Ym1vZHVsZSwgcHJlZml4LCBmbiwgc3RybGVuKHByZWZpeCksIDAsIGNiX2RhdGEpOworCXJldHVybiBkb19mb3JfZWFjaF9yZWYoZ2V0X3JlZl9jYWNoZShzdWJtb2R1bGUpLCBwcmVmaXgsIGZuLCBzdHJsZW4ocHJlZml4KSwgMCwgY2JfZGF0YSk7CiB9CiAKIGludCBmb3JfZWFjaF90YWdfcmVmKGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQpAQCAtMTQzMSw3ICsxODA1LDcgQEAKIAogaW50IGZvcl9lYWNoX3JlcGxhY2VfcmVmKGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewotCXJldHVybiBkb19mb3JfZWFjaF9yZWYoTlVMTCwgInJlZnMvcmVwbGFjZS8iLCBmbiwgMTMsIDAsIGNiX2RhdGEpOworCXJldHVybiBkb19mb3JfZWFjaF9yZWYoJnJlZl9jYWNoZSwgInJlZnMvcmVwbGFjZS8iLCBmbiwgMTMsIDAsIGNiX2RhdGEpOwogfQogCiBpbnQgaGVhZF9yZWZfbmFtZXNwYWNlZChlYWNoX3JlZl9mbiBmbiwgdm9pZCAqY2JfZGF0YSkKQEAgLTE0NTQsNyArMTgyOCw3IEBACiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAlpbnQgcmV0OwogCXN0cmJ1Zl9hZGRmKCZidWYsICIlc3JlZnMvIiwgZ2V0X2dpdF9uYW1lc3BhY2UoKSk7Ci0JcmV0ID0gZG9fZm9yX2VhY2hfcmVmKE5VTEwsIGJ1Zi5idWYsIGZuLCAwLCAwLCBjYl9kYXRhKTsKKwlyZXQgPSBkb19mb3JfZWFjaF9yZWYoJnJlZl9jYWNoZSwgYnVmLmJ1ZiwgZm4sIDAsIDAsIGNiX2RhdGEpOwogCXN0cmJ1Zl9yZWxlYXNlKCZidWYpOwogCXJldHVybiByZXQ7CiB9CkBAIC0xNDk2LDcgKzE4NzAsNyBAQAogCiBpbnQgZm9yX2VhY2hfcmF3cmVmKGVhY2hfcmVmX2ZuIGZuLCB2b2lkICpjYl9kYXRhKQogewotCXJldHVybiBkb19mb3JfZWFjaF9yZWYoTlVMTCwgIiIsIGZuLCAwLAorCXJldHVybiBkb19mb3JfZWFjaF9yZWYoJnJlZl9jYWNoZSwgIiIsIGZuLCAwLAogCQkJICAgICAgIERPX0ZPUl9FQUNIX0lOQ0xVREVfQlJPS0VOLCBjYl9kYXRhKTsKIH0KIApAQCAtMTcwMiw3ICsyMDc2LDcgQEAKIAkgKiBuYW1lIGlzIGEgcHJvcGVyIHByZWZpeCBvZiBvdXIgcmVmbmFtZS4KIAkgKi8KIAlpZiAobWlzc2luZyAmJgotCSAgICAgIWlzX3JlZm5hbWVfYXZhaWxhYmxlKHJlZm5hbWUsIE5VTEwsIGdldF9wYWNrZWRfcmVmcyhnZXRfcmVmX2NhY2hlKE5VTEwpKSkpIHsKKwkgICAgICFpc19yZWZuYW1lX2F2YWlsYWJsZShyZWZuYW1lLCBOVUxMLCBnZXRfcGFja2VkX3JlZnMoJnJlZl9jYWNoZSkpKSB7CiAJCWxhc3RfZXJybm8gPSBFTk9URElSOwogCQlnb3RvIGVycm9yX3JldHVybjsKIAl9CkBAIC0xNzU0LDQ4ICsyMTI4LDMyNSBAQAogCXJldHVybiBsb2NrX3JlZl9zaGExX2Jhc2ljKHJlZm5hbWUsIG9sZF9zaGExLCBmbGFncywgTlVMTCk7CiB9CiAKLXN0cnVjdCByZXBhY2tfd2l0aG91dF9yZWZfc2IgewotCWNvbnN0IGNoYXIgKnJlZm5hbWU7Ci0JaW50IGZkOwotfTsKLQotc3RhdGljIGludCByZXBhY2tfd2l0aG91dF9yZWZfZm4oY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKLQkJCQkgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKQorLyoKKyAqIFdyaXRlIGFuIGVudHJ5IHRvIHRoZSBwYWNrZWQtcmVmcyBmaWxlIGZvciB0aGUgc3BlY2lmaWVkIHJlZm5hbWUuCisgKiBJZiBwZWVsZWQgaXMgbm9uLU5VTEwsIHdyaXRlIGl0IGFzIHRoZSBlbnRyeSdzIHBlZWxlZCB2YWx1ZS4KKyAqLworc3RhdGljIHZvaWQgd3JpdGVfcGFja2VkX2VudHJ5KGludCBmZCwgY2hhciAqcmVmbmFtZSwgdW5zaWduZWQgY2hhciAqc2hhMSwKKwkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpwZWVsZWQpCiB7Ci0Jc3RydWN0IHJlcGFja193aXRob3V0X3JlZl9zYiAqZGF0YSA9IGNiX2RhdGE7CiAJY2hhciBsaW5lW1BBVEhfTUFYICsgMTAwXTsKIAlpbnQgbGVuOwogCi0JaWYgKCFzdHJjbXAoZGF0YS0+cmVmbmFtZSwgcmVmbmFtZSkpCi0JCXJldHVybiAwOwogCWxlbiA9IHNucHJpbnRmKGxpbmUsIHNpemVvZihsaW5lKSwgIiVzICVzXG4iLAogCQkgICAgICAgc2hhMV90b19oZXgoc2hhMSksIHJlZm5hbWUpOwogCS8qIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYnV0IGp1c3QgYmVpbmcgZGVmZW5zaXZlICovCiAJaWYgKGxlbiA+IHNpemVvZihsaW5lKSkKIAkJZGllKCJ0b28gbG9uZyBhIHJlZm5hbWUgJyVzJyIsIHJlZm5hbWUpOwotCXdyaXRlX29yX2RpZShkYXRhLT5mZCwgbGluZSwgbGVuKTsKKwl3cml0ZV9vcl9kaWUoZmQsIGxpbmUsIGxlbik7CisKKwlpZiAocGVlbGVkKSB7CisJCWlmIChzbnByaW50ZihsaW5lLCBzaXplb2YobGluZSksICJeJXNcbiIsCisJCQkgICAgIHNoYTFfdG9faGV4KHBlZWxlZCkpICE9IFBFRUxFRF9MSU5FX0xFTkdUSCkKKwkJCWRpZSgiaW50ZXJuYWwgZXJyb3IiKTsKKwkJd3JpdGVfb3JfZGllKGZkLCBsaW5lLCBQRUVMRURfTElORV9MRU5HVEgpOworCX0KK30KKworLyoKKyAqIEFuIGVhY2hfcmVmX2VudHJ5X2ZuIHRoYXQgd3JpdGVzIHRoZSBlbnRyeSB0byBhIHBhY2tlZC1yZWZzIGZpbGUuCisgKi8KK3N0YXRpYyBpbnQgd3JpdGVfcGFja2VkX2VudHJ5X2ZuKHN0cnVjdCByZWZfZW50cnkgKmVudHJ5LCB2b2lkICpjYl9kYXRhKQoreworCWludCAqZmQgPSBjYl9kYXRhOworCWVudW0gcGVlbF9zdGF0dXMgcGVlbF9zdGF0dXMgPSBwZWVsX2VudHJ5KGVudHJ5LCAwKTsKKworCWlmIChwZWVsX3N0YXR1cyAhPSBQRUVMX1BFRUxFRCAmJiBwZWVsX3N0YXR1cyAhPSBQRUVMX05PTl9UQUcpCisJCWVycm9yKCJpbnRlcm5hbCBlcnJvcjogJXMgaXMgbm90IGEgdmFsaWQgcGFja2VkIHJlZmVyZW5jZSEiLAorCQkgICAgICBlbnRyeS0+bmFtZSk7CisJd3JpdGVfcGFja2VkX2VudHJ5KCpmZCwgZW50cnktPm5hbWUsIGVudHJ5LT51LnZhbHVlLnNoYTEsCisJCQkgICBwZWVsX3N0YXR1cyA9PSBQRUVMX1BFRUxFRCA/CisJCQkgICBlbnRyeS0+dS52YWx1ZS5wZWVsZWQgOiBOVUxMKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBsb2NrX2ZpbGUgcGFja2xvY2s7CitpbnQgbG9ja19wYWNrZWRfcmVmcyhpbnQgZmxhZ3MpCit7CisJc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKnBhY2tlZF9yZWZfY2FjaGU7CisKKwlpZiAoaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmcGFja2xvY2ssIGdpdF9wYXRoKCJwYWNrZWQtcmVmcyIpLCBmbGFncykgPCAwKQorCQlyZXR1cm4gLTE7CisJLyoKKwkgKiBHZXQgdGhlIGN1cnJlbnQgcGFja2VkLXJlZnMgd2hpbGUgaG9sZGluZyB0aGUgbG9jay4gIElmIHRoZQorCSAqIHBhY2tlZC1yZWZzIGZpbGUgaGFzIGJlZW4gbW9kaWZpZWQgc2luY2Ugd2UgbGFzdCByZWFkIGl0LAorCSAqIHRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGludmFsaWRhdGUgdGhlIGNhY2hlIGFuZCByZS1yZWFkCisJICogdGhlIHBhY2tlZC1yZWZzIGZpbGUuCisJICovCisJcGFja2VkX3JlZl9jYWNoZSA9IGdldF9wYWNrZWRfcmVmX2NhY2hlKCZyZWZfY2FjaGUpOworCXBhY2tlZF9yZWZfY2FjaGUtPmxvY2sgPSAmcGFja2xvY2s7CisJLyogSW5jcmVtZW50IHRoZSByZWZlcmVuY2UgY291bnQgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGZyZWVkOiAqLworCWFjcXVpcmVfcGFja2VkX3JlZl9jYWNoZShwYWNrZWRfcmVmX2NhY2hlKTsKKwlyZXR1cm4gMDsKK30KKworaW50IGNvbW1pdF9wYWNrZWRfcmVmcyh2b2lkKQoreworCXN0cnVjdCBwYWNrZWRfcmVmX2NhY2hlICpwYWNrZWRfcmVmX2NhY2hlID0KKwkJZ2V0X3BhY2tlZF9yZWZfY2FjaGUoJnJlZl9jYWNoZSk7CisJaW50IGVycm9yID0gMDsKKworCWlmICghcGFja2VkX3JlZl9jYWNoZS0+bG9jaykKKwkJZGllKCJpbnRlcm5hbCBlcnJvcjogcGFja2VkLXJlZnMgbm90IGxvY2tlZCIpOworCXdyaXRlX29yX2RpZShwYWNrZWRfcmVmX2NhY2hlLT5sb2NrLT5mZCwKKwkJICAgICBQQUNLRURfUkVGU19IRUFERVIsIHN0cmxlbihQQUNLRURfUkVGU19IRUFERVIpKTsKKworCWRvX2Zvcl9lYWNoX2VudHJ5X2luX2RpcihnZXRfcGFja2VkX3JlZl9kaXIocGFja2VkX3JlZl9jYWNoZSksCisJCQkJIDAsIHdyaXRlX3BhY2tlZF9lbnRyeV9mbiwKKwkJCQkgJnBhY2tlZF9yZWZfY2FjaGUtPmxvY2stPmZkKTsKKwlpZiAoY29tbWl0X2xvY2tfZmlsZShwYWNrZWRfcmVmX2NhY2hlLT5sb2NrKSkKKwkJZXJyb3IgPSAtMTsKKwlwYWNrZWRfcmVmX2NhY2hlLT5sb2NrID0gTlVMTDsKKwlyZWxlYXNlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZl9jYWNoZSk7CisJcmV0dXJuIGVycm9yOworfQorCit2b2lkIHJvbGxiYWNrX3BhY2tlZF9yZWZzKHZvaWQpCit7CisJc3RydWN0IHBhY2tlZF9yZWZfY2FjaGUgKnBhY2tlZF9yZWZfY2FjaGUgPQorCQlnZXRfcGFja2VkX3JlZl9jYWNoZSgmcmVmX2NhY2hlKTsKKworCWlmICghcGFja2VkX3JlZl9jYWNoZS0+bG9jaykKKwkJZGllKCJpbnRlcm5hbCBlcnJvcjogcGFja2VkLXJlZnMgbm90IGxvY2tlZCIpOworCXJvbGxiYWNrX2xvY2tfZmlsZShwYWNrZWRfcmVmX2NhY2hlLT5sb2NrKTsKKwlwYWNrZWRfcmVmX2NhY2hlLT5sb2NrID0gTlVMTDsKKwlyZWxlYXNlX3BhY2tlZF9yZWZfY2FjaGUocGFja2VkX3JlZl9jYWNoZSk7CisJY2xlYXJfcGFja2VkX3JlZl9jYWNoZSgmcmVmX2NhY2hlKTsKK30KKworc3RydWN0IHJlZl90b19wcnVuZSB7CisJc3RydWN0IHJlZl90b19wcnVuZSAqbmV4dDsKKwl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOworCWNoYXIgbmFtZVtGTEVYX0FSUkFZXTsKK307CisKK3N0cnVjdCBwYWNrX3JlZnNfY2JfZGF0YSB7CisJdW5zaWduZWQgaW50IGZsYWdzOworCXN0cnVjdCByZWZfZGlyICpwYWNrZWRfcmVmczsKKwlzdHJ1Y3QgcmVmX3RvX3BydW5lICpyZWZfdG9fcHJ1bmU7Cit9OworCisvKgorICogQW4gZWFjaF9yZWZfZW50cnlfZm4gdGhhdCBpcyBydW4gb3ZlciBsb29zZSByZWZlcmVuY2VzIG9ubHkuICBJZgorICogdGhlIGxvb3NlIHJlZmVyZW5jZSBjYW4gYmUgcGFja2VkLCBhZGQgYW4gZW50cnkgaW4gdGhlIHBhY2tlZCByZWYKKyAqIGNhY2hlLiAgSWYgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgcHJ1bmVkLCBhbHNvIGFkZCBpdCB0bworICogcmVmX3RvX3BydW5lIGluIHRoZSBwYWNrX3JlZnNfY2JfZGF0YS4KKyAqLworc3RhdGljIGludCBwYWNrX2lmX3Bvc3NpYmxlX2ZuKHN0cnVjdCByZWZfZW50cnkgKmVudHJ5LCB2b2lkICpjYl9kYXRhKQoreworCXN0cnVjdCBwYWNrX3JlZnNfY2JfZGF0YSAqY2IgPSBjYl9kYXRhOworCWVudW0gcGVlbF9zdGF0dXMgcGVlbF9zdGF0dXM7CisJc3RydWN0IHJlZl9lbnRyeSAqcGFja2VkX2VudHJ5OworCWludCBpc190YWdfcmVmID0gIXByZWZpeGNtcChlbnRyeS0+bmFtZSwgInJlZnMvdGFncy8iKTsKKworCS8qIEFMV0FZUyBwYWNrIHRhZ3MgKi8KKwlpZiAoIShjYi0+ZmxhZ3MgJiBQQUNLX1JFRlNfQUxMKSAmJiAhaXNfdGFnX3JlZikKKwkJcmV0dXJuIDA7CisKKwkvKiBEbyBub3QgcGFjayBzeW1ib2xpYyBvciBicm9rZW4gcmVmczogKi8KKwlpZiAoKGVudHJ5LT5mbGFnICYgUkVGX0lTU1lNUkVGKSB8fCAhcmVmX3Jlc29sdmVzX3RvX29iamVjdChlbnRyeSkpCisJCXJldHVybiAwOworCisJLyogQWRkIGEgcGFja2VkIHJlZiBjYWNoZSBlbnRyeSBlcXVpdmFsZW50IHRvIHRoZSBsb29zZSBlbnRyeS4gKi8KKwlwZWVsX3N0YXR1cyA9IHBlZWxfZW50cnkoZW50cnksIDEpOworCWlmIChwZWVsX3N0YXR1cyAhPSBQRUVMX1BFRUxFRCAmJiBwZWVsX3N0YXR1cyAhPSBQRUVMX05PTl9UQUcpCisJCWRpZSgiaW50ZXJuYWwgZXJyb3IgcGVlbGluZyByZWZlcmVuY2UgJXMgKCVzKSIsCisJCSAgICBlbnRyeS0+bmFtZSwgc2hhMV90b19oZXgoZW50cnktPnUudmFsdWUuc2hhMSkpOworCXBhY2tlZF9lbnRyeSA9IGZpbmRfcmVmKGNiLT5wYWNrZWRfcmVmcywgZW50cnktPm5hbWUpOworCWlmIChwYWNrZWRfZW50cnkpIHsKKwkJLyogT3ZlcndyaXRlIGV4aXN0aW5nIHBhY2tlZCBlbnRyeSB3aXRoIGluZm8gZnJvbSBsb29zZSBlbnRyeSAqLworCQlwYWNrZWRfZW50cnktPmZsYWcgPSBSRUZfSVNQQUNLRUQgfCBSRUZfS05PV1NfUEVFTEVEOworCQloYXNoY3B5KHBhY2tlZF9lbnRyeS0+dS52YWx1ZS5zaGExLCBlbnRyeS0+dS52YWx1ZS5zaGExKTsKKwl9IGVsc2UgeworCQlwYWNrZWRfZW50cnkgPSBjcmVhdGVfcmVmX2VudHJ5KGVudHJ5LT5uYW1lLCBlbnRyeS0+dS52YWx1ZS5zaGExLAorCQkJCQkJUkVGX0lTUEFDS0VEIHwgUkVGX0tOT1dTX1BFRUxFRCwgMCk7CisJCWFkZF9yZWYoY2ItPnBhY2tlZF9yZWZzLCBwYWNrZWRfZW50cnkpOworCX0KKwloYXNoY3B5KHBhY2tlZF9lbnRyeS0+dS52YWx1ZS5wZWVsZWQsIGVudHJ5LT51LnZhbHVlLnBlZWxlZCk7CisKKwkvKiBTY2hlZHVsZSB0aGUgbG9vc2UgcmVmZXJlbmNlIGZvciBwcnVuaW5nIGlmIHJlcXVlc3RlZC4gKi8KKwlpZiAoKGNiLT5mbGFncyAmIFBBQ0tfUkVGU19QUlVORSkpIHsKKwkJaW50IG5hbWVsZW4gPSBzdHJsZW4oZW50cnktPm5hbWUpICsgMTsKKwkJc3RydWN0IHJlZl90b19wcnVuZSAqbiA9IHhjYWxsb2MoMSwgc2l6ZW9mKCpuKSArIG5hbWVsZW4pOworCQloYXNoY3B5KG4tPnNoYTEsIGVudHJ5LT51LnZhbHVlLnNoYTEpOworCQlzdHJjcHkobi0+bmFtZSwgZW50cnktPm5hbWUpOworCQluLT5uZXh0ID0gY2ItPnJlZl90b19wcnVuZTsKKwkJY2ItPnJlZl90b19wcnVuZSA9IG47CisJfQorCXJldHVybiAwOworfQorCisvKgorICogUmVtb3ZlIGVtcHR5IHBhcmVudHMsIGJ1dCBzcGFyZSByZWZzLyBhbmQgaW1tZWRpYXRlIHN1YmRpcnMuCisgKiBOb3RlOiBtdW5nZXMgKm5hbWUuCisgKi8KK3N0YXRpYyB2b2lkIHRyeV9yZW1vdmVfZW1wdHlfcGFyZW50cyhjaGFyICpuYW1lKQoreworCWNoYXIgKnAsICpxOworCWludCBpOworCXAgPSBuYW1lOworCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsgLyogcmVmcy97aGVhZHMsdGFncywuLi59LyAqLworCQl3aGlsZSAoKnAgJiYgKnAgIT0gJy8nKQorCQkJcCsrOworCQkvKiB0b2xlcmF0ZSBkdXBsaWNhdGUgc2xhc2hlczsgc2VlIGNoZWNrX3JlZm5hbWVfZm9ybWF0KCkgKi8KKwkJd2hpbGUgKCpwID09ICcvJykKKwkJCXArKzsKKwl9CisJZm9yIChxID0gcDsgKnE7IHErKykKKwkJOworCXdoaWxlICgxKSB7CisJCXdoaWxlIChxID4gcCAmJiAqcSAhPSAnLycpCisJCQlxLS07CisJCXdoaWxlIChxID4gcCAmJiAqKHEtMSkgPT0gJy8nKQorCQkJcS0tOworCQlpZiAocSA9PSBwKQorCQkJYnJlYWs7CisJCSpxID0gJ1wwJzsKKwkJaWYgKHJtZGlyKGdpdF9wYXRoKCIlcyIsIG5hbWUpKSkKKwkJCWJyZWFrOworCX0KK30KKworLyogbWFrZSBzdXJlIG5vYm9keSB0b3VjaGVkIHRoZSByZWYsIGFuZCB1bmxpbmsgKi8KK3N0YXRpYyB2b2lkIHBydW5lX3JlZihzdHJ1Y3QgcmVmX3RvX3BydW5lICpyKQoreworCXN0cnVjdCByZWZfbG9jayAqbG9jayA9IGxvY2tfcmVmX3NoYTEoci0+bmFtZSArIDUsIHItPnNoYTEpOworCisJaWYgKGxvY2spIHsKKwkJdW5saW5rX29yX3dhcm4oZ2l0X3BhdGgoIiVzIiwgci0+bmFtZSkpOworCQl1bmxvY2tfcmVmKGxvY2spOworCQl0cnlfcmVtb3ZlX2VtcHR5X3BhcmVudHMoci0+bmFtZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBwcnVuZV9yZWZzKHN0cnVjdCByZWZfdG9fcHJ1bmUgKnIpCit7CisJd2hpbGUgKHIpIHsKKwkJcHJ1bmVfcmVmKHIpOworCQlyID0gci0+bmV4dDsKKwl9Cit9CisKK2ludCBwYWNrX3JlZnModW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBwYWNrX3JlZnNfY2JfZGF0YSBjYmRhdGE7CisKKwltZW1zZXQoJmNiZGF0YSwgMCwgc2l6ZW9mKGNiZGF0YSkpOworCWNiZGF0YS5mbGFncyA9IGZsYWdzOworCisJbG9ja19wYWNrZWRfcmVmcyhMT0NLX0RJRV9PTl9FUlJPUik7CisJY2JkYXRhLnBhY2tlZF9yZWZzID0gZ2V0X3BhY2tlZF9yZWZzKCZyZWZfY2FjaGUpOworCisJZG9fZm9yX2VhY2hfZW50cnlfaW5fZGlyKGdldF9sb29zZV9yZWZzKCZyZWZfY2FjaGUpLCAwLAorCQkJCSBwYWNrX2lmX3Bvc3NpYmxlX2ZuLCAmY2JkYXRhKTsKKworCWlmIChjb21taXRfcGFja2VkX3JlZnMoKSkKKwkJZGllX2Vycm5vKCJ1bmFibGUgdG8gb3ZlcndyaXRlIG9sZCByZWYtcGFjayBmaWxlIik7CisKKwlwcnVuZV9yZWZzKGNiZGF0YS5yZWZfdG9fcHJ1bmUpOworCXJldHVybiAwOworfQorCisvKgorICogSWYgZW50cnkgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpbiBwYWNrZWQtcmVmcywgYWRkIGl0IHRvIHRoZSBzdHJpbmcKKyAqIGxpc3QgcG9pbnRlZCB0byBieSBjYl9kYXRhLiAgUmVhc29ucyBmb3IgZGVsZXRpbmcgZW50cmllczoKKyAqCisgKiAtIEVudHJ5IGlzIGJyb2tlbi4KKyAqIC0gRW50cnkgaXMgb3ZlcnJpZGRlbiBieSBhIGxvb3NlIHJlZi4KKyAqIC0gRW50cnkgZG9lcyBub3QgcG9pbnQgYXQgYSB2YWxpZCBvYmplY3QuCisgKgorICogSW4gdGhlIGZpcnN0IGFuZCB0aGlyZCBjYXNlcywgYWxzbyBlbWl0IGFuIGVycm9yIG1lc3NhZ2UgYmVjYXVzZSB0aGVzZQorICogYXJlIGluZGljYXRpb25zIG9mIHJlcG9zaXRvcnkgY29ycnVwdGlvbi4KKyAqLworc3RhdGljIGludCBjdXJhdGVfcGFja2VkX3JlZl9mbihzdHJ1Y3QgcmVmX2VudHJ5ICplbnRyeSwgdm9pZCAqY2JfZGF0YSkKK3sKKwlzdHJ1Y3Qgc3RyaW5nX2xpc3QgKnJlZnNfdG9fZGVsZXRlID0gY2JfZGF0YTsKKworCWlmIChlbnRyeS0+ZmxhZyAmIFJFRl9JU0JST0tFTikgeworCQkvKiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gdG8gcGFja2VkIHJlZnMuICovCisJCWVycm9yKCIlcyBpcyBicm9rZW4hIiwgZW50cnktPm5hbWUpOworCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmc190b19kZWxldGUsIGVudHJ5LT5uYW1lKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmICghaGFzX3NoYTFfZmlsZShlbnRyeS0+dS52YWx1ZS5zaGExKSkgeworCQl1bnNpZ25lZCBjaGFyIHNoYTFbMjBdOworCQlpbnQgZmxhZ3M7CisKKwkJaWYgKHJlYWRfcmVmX2Z1bGwoZW50cnktPm5hbWUsIHNoYTEsIDAsICZmbGFncykpCisJCQkvKiBXZSBzaG91bGQgYXQgbGVhc3QgaGF2ZSBmb3VuZCB0aGUgcGFja2VkIHJlZi4gKi8KKwkJCWRpZSgiSW50ZXJuYWwgZXJyb3IiKTsKKwkJaWYgKChmbGFncyAmIFJFRl9JU1NZTVJFRikgfHwgIShmbGFncyAmIFJFRl9JU1BBQ0tFRCkpIHsKKwkJCS8qCisJCQkgKiBUaGlzIHBhY2tlZCByZWZlcmVuY2UgaXMgb3ZlcnJpZGRlbiBieSBhCisJCQkgKiBsb29zZSByZWZlcmVuY2UsIHNvIGl0IGlzIE9LIHRoYXQgaXRzIHZhbHVlCisJCQkgKiBpcyBubyBsb25nZXIgdmFsaWQ7IGZvciBleGFtcGxlLCBpdCBtaWdodAorCQkJICogcmVmZXIgdG8gYW4gb2JqZWN0IHRoYXQgaGFzIGJlZW4gZ2FyYmFnZQorCQkJICogY29sbGVjdGVkLiAgRm9yIHRoaXMgcHVycG9zZSB3ZSBkb24ndCBldmVuCisJCQkgKiBjYXJlIHdoZXRoZXIgdGhlIGxvb3NlIHJlZmVyZW5jZSBpdHNlbGYgaXMKKwkJCSAqIGludmFsaWQsIGJyb2tlbiwgc3ltYm9saWMsIGV0Yy4gIFNpbGVudGx5CisJCQkgKiByZW1vdmUgdGhlIHBhY2tlZCByZWZlcmVuY2UuCisJCQkgKi8KKwkJCXN0cmluZ19saXN0X2FwcGVuZChyZWZzX3RvX2RlbGV0ZSwgZW50cnktPm5hbWUpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJLyoKKwkJICogVGhlcmUgaXMgbm8gb3ZlcnJpZGluZyBsb29zZSByZWZlcmVuY2UsIHNvIHRoZSBmYWN0CisJCSAqIHRoYXQgdGhpcyByZWZlcmVuY2UgZG9lc24ndCByZWZlciB0byBhIHZhbGlkIG9iamVjdAorCQkgKiBpbmRpY2F0ZXMgc29tZSBraW5kIG9mIHJlcG9zaXRvcnkgY29ycnVwdGlvbi4KKwkJICogUmVwb3J0IHRoZSBwcm9ibGVtLCB0aGVuIG9taXQgdGhlIHJlZmVyZW5jZSBmcm9tCisJCSAqIHRoZSBvdXRwdXQuCisJCSAqLworCQllcnJvcigiJXMgZG9lcyBub3QgcG9pbnQgdG8gYSB2YWxpZCBvYmplY3QhIiwgZW50cnktPm5hbWUpOworCQlzdHJpbmdfbGlzdF9hcHBlbmQocmVmc190b19kZWxldGUsIGVudHJ5LT5uYW1lKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIHN0YXRpYyBpbnQgcmVwYWNrX3dpdGhvdXRfcmVmKGNvbnN0IGNoYXIgKnJlZm5hbWUpCiB7Ci0Jc3RydWN0IHJlcGFja193aXRob3V0X3JlZl9zYiBkYXRhOwotCXN0cnVjdCByZWZfY2FjaGUgKnJlZnMgPSBnZXRfcmVmX2NhY2hlKE5VTEwpOwotCXN0cnVjdCByZWZfZGlyICpwYWNrZWQgPSBnZXRfcGFja2VkX3JlZnMocmVmcyk7Ci0JaWYgKGZpbmRfcmVmKHBhY2tlZCwgcmVmbmFtZSkgPT0gTlVMTCkKLQkJcmV0dXJuIDA7Ci0JZGF0YS5yZWZuYW1lID0gcmVmbmFtZTsKLQlkYXRhLmZkID0gaG9sZF9sb2NrX2ZpbGVfZm9yX3VwZGF0ZSgmcGFja2xvY2ssIGdpdF9wYXRoKCJwYWNrZWQtcmVmcyIpLCAwKTsKLQlpZiAoZGF0YS5mZCA8IDApIHsKKwlzdHJ1Y3QgcmVmX2RpciAqcGFja2VkOworCXN0cnVjdCBzdHJpbmdfbGlzdCByZWZzX3RvX2RlbGV0ZSA9IFNUUklOR19MSVNUX0lOSVRfRFVQOworCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICpyZWZfdG9fZGVsZXRlOworCisJaWYgKCFnZXRfcGFja2VkX3JlZihyZWZuYW1lKSkKKwkJcmV0dXJuIDA7IC8qIHJlZm5hbWUgZG9lcyBub3QgZXhpc3QgaW4gcGFja2VkIHJlZnMgKi8KKworCWlmIChsb2NrX3BhY2tlZF9yZWZzKDApKSB7CiAJCXVuYWJsZV90b19sb2NrX2Vycm9yKGdpdF9wYXRoKCJwYWNrZWQtcmVmcyIpLCBlcnJubyk7CiAJCXJldHVybiBlcnJvcigiY2Fubm90IGRlbGV0ZSAnJXMnIGZyb20gcGFja2VkIHJlZnMiLCByZWZuYW1lKTsKIAl9Ci0JY2xlYXJfcGFja2VkX3JlZl9jYWNoZShyZWZzKTsKLQlwYWNrZWQgPSBnZXRfcGFja2VkX3JlZnMocmVmcyk7Ci0JZG9fZm9yX2VhY2hfcmVmX2luX2RpcihwYWNrZWQsIDAsICIiLCByZXBhY2tfd2l0aG91dF9yZWZfZm4sIDAsIDAsICZkYXRhKTsKLQlyZXR1cm4gY29tbWl0X2xvY2tfZmlsZSgmcGFja2xvY2spOworCXBhY2tlZCA9IGdldF9wYWNrZWRfcmVmcygmcmVmX2NhY2hlKTsKKworCS8qIFJlbW92ZSByZWZuYW1lIGZyb20gdGhlIGNhY2hlOiAqLworCWlmIChyZW1vdmVfZW50cnkocGFja2VkLCByZWZuYW1lKSA9PSAtMSkgeworCQkvKgorCQkgKiBUaGUgcGFja2VkIGVudHJ5IGRpc2FwcGVhcmVkIHdoaWxlIHdlIHdlcmUKKwkJICogYWNxdWlyaW5nIHRoZSBsb2NrLgorCQkgKi8KKwkJcm9sbGJhY2tfcGFja2VkX3JlZnMoKTsKKwkJcmV0dXJuIDA7CisJfQorCisJLyogUmVtb3ZlIGFueSBvdGhlciBhY2N1bXVsYXRlZCBjcnVmdDogKi8KKwlkb19mb3JfZWFjaF9lbnRyeV9pbl9kaXIocGFja2VkLCAwLCBjdXJhdGVfcGFja2VkX3JlZl9mbiwgJnJlZnNfdG9fZGVsZXRlKTsKKwlmb3JfZWFjaF9zdHJpbmdfbGlzdF9pdGVtKHJlZl90b19kZWxldGUsICZyZWZzX3RvX2RlbGV0ZSkgeworCQlpZiAocmVtb3ZlX2VudHJ5KHBhY2tlZCwgcmVmX3RvX2RlbGV0ZS0+c3RyaW5nKSA9PSAtMSkKKwkJCWRpZSgiaW50ZXJuYWwgZXJyb3IiKTsKKwl9CisKKwkvKiBXcml0ZSB3aGF0IHJlbWFpbnM6ICovCisJcmV0dXJuIGNvbW1pdF9wYWNrZWRfcmVmcygpOwogfQogCiBpbnQgZGVsZXRlX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCBpbnQgZGVsb3B0KQpAQCAtMTgyMyw3ICsyNDc0LDcgQEAKIAlyZXQgfD0gcmVwYWNrX3dpdGhvdXRfcmVmKGxvY2stPnJlZl9uYW1lKTsKIAogCXVubGlua19vcl93YXJuKGdpdF9wYXRoKCJsb2dzLyVzIiwgbG9jay0+cmVmX25hbWUpKTsKLQlpbnZhbGlkYXRlX3JlZl9jYWNoZShOVUxMKTsKKwljbGVhcl9sb29zZV9yZWZfY2FjaGUoJnJlZl9jYWNoZSk7CiAJdW5sb2NrX3JlZihsb2NrKTsKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTg0NSw3ICsyNDk2LDYgQEAKIAlzdHJ1Y3Qgc3RhdCBsb2dpbmZvOwogCWludCBsb2cgPSAhbHN0YXQoZ2l0X3BhdGgoImxvZ3MvJXMiLCBvbGRyZWZuYW1lKSwgJmxvZ2luZm8pOwogCWNvbnN0IGNoYXIgKnN5bXJlZiA9IE5VTEw7Ci0Jc3RydWN0IHJlZl9jYWNoZSAqcmVmcyA9IGdldF9yZWZfY2FjaGUoTlVMTCk7CiAKIAlpZiAobG9nICYmIFNfSVNMTksobG9naW5mby5zdF9tb2RlKSkKIAkJcmV0dXJuIGVycm9yKCJyZWZsb2cgZm9yICVzIGlzIGEgc3ltbGluayIsIG9sZHJlZm5hbWUpOwpAQCAtMTg1NywxMCArMjUwNywxMCBAQAogCWlmICghc3ltcmVmKQogCQlyZXR1cm4gZXJyb3IoInJlZm5hbWUgJXMgbm90IGZvdW5kIiwgb2xkcmVmbmFtZSk7CiAKLQlpZiAoIWlzX3JlZm5hbWVfYXZhaWxhYmxlKG5ld3JlZm5hbWUsIG9sZHJlZm5hbWUsIGdldF9wYWNrZWRfcmVmcyhyZWZzKSkpCisJaWYgKCFpc19yZWZuYW1lX2F2YWlsYWJsZShuZXdyZWZuYW1lLCBvbGRyZWZuYW1lLCBnZXRfcGFja2VkX3JlZnMoJnJlZl9jYWNoZSkpKQogCQlyZXR1cm4gMTsKIAotCWlmICghaXNfcmVmbmFtZV9hdmFpbGFibGUobmV3cmVmbmFtZSwgb2xkcmVmbmFtZSwgZ2V0X2xvb3NlX3JlZnMocmVmcykpKQorCWlmICghaXNfcmVmbmFtZV9hdmFpbGFibGUobmV3cmVmbmFtZSwgb2xkcmVmbmFtZSwgZ2V0X2xvb3NlX3JlZnMoJnJlZl9jYWNoZSkpKQogCQlyZXR1cm4gMTsKIAogCWlmIChsb2cgJiYgcmVuYW1lKGdpdF9wYXRoKCJsb2dzLyVzIiwgb2xkcmVmbmFtZSksIGdpdF9wYXRoKFRNUF9SRU5BTUVEX0xPRykpKQpAQCAtMjExNiw3ICsyNzY2LDcgQEAKIAkJdW5sb2NrX3JlZihsb2NrKTsKIAkJcmV0dXJuIC0xOwogCX0KLQljbGVhcl9sb29zZV9yZWZfY2FjaGUoZ2V0X3JlZl9jYWNoZShOVUxMKSk7CisJY2xlYXJfbG9vc2VfcmVmX2NhY2hlKCZyZWZfY2FjaGUpOwogCWlmIChsb2dfcmVmX3dyaXRlKGxvY2stPnJlZl9uYW1lLCBsb2NrLT5vbGRfc2hhMSwgc2hhMSwgbG9nbXNnKSA8IDAgfHwKIAkgICAgKHN0cmNtcChsb2NrLT5yZWZfbmFtZSwgbG9jay0+b3JpZ19yZWZfbmFtZSkgJiYKIAkgICAgIGxvZ19yZWZfd3JpdGUobG9jay0+b3JpZ19yZWZfbmFtZSwgbG9jay0+b2xkX3NoYTEsIHNoYTEsIGxvZ21zZykgPCAwKSkgewpkaWZmIC0tZ2l0IGEvcmVmcy5oIGIvcmVmcy5oCmluZGV4IGEzNWVhZmMuLjllNWRiM2EgMTAwNjQ0Ci0tLSBhL3JlZnMuaAorKysgYi9yZWZzLmgKQEAgLTEwLDE4ICsxMCw0MSBAQAogCWludCBmb3JjZV93cml0ZTsKIH07CiAKKy8qCisgKiBCaXQgdmFsdWVzIHNldCBpbiB0aGUgZmxhZ3MgYXJndW1lbnQgcGFzc2VkIHRvIGVhY2hfcmVmX2ZuKCk6CisgKi8KKworLyogUmVmZXJlbmNlIGlzIGEgc3ltYm9saWMgcmVmZXJlbmNlLiAqLwogI2RlZmluZSBSRUZfSVNTWU1SRUYgMHgwMQorCisvKiBSZWZlcmVuY2UgaXMgYSBwYWNrZWQgcmVmZXJlbmNlLiAqLwogI2RlZmluZSBSRUZfSVNQQUNLRUQgMHgwMgorCisvKgorICogUmVmZXJlbmNlIGNhbm5vdCBiZSByZXNvbHZlZCB0byBhbiBvYmplY3QgbmFtZTogZGFuZ2xpbmcgc3ltYm9saWMKKyAqIHJlZmVyZW5jZSAoZGlyZWN0bHkgb3IgaW5kaXJlY3RseSksIGNvcnJ1cHQgcmVmZXJlbmNlIGZpbGUsIG9yCisgKiBzeW1ib2xpYyByZWZlcmVuY2UgcmVmZXJzIHRvIGlsbC1mb3JtYXR0ZWQgcmVmZXJlbmNlIG5hbWUuCisgKi8KICNkZWZpbmUgUkVGX0lTQlJPS0VOIDB4MDQKIAogLyoKLSAqIENhbGxzIHRoZSBzcGVjaWZpZWQgZnVuY3Rpb24gZm9yIGVhY2ggcmVmIGZpbGUgdW50aWwgaXQgcmV0dXJucwotICogbm9uemVybywgYW5kIHJldHVybnMgdGhlIHZhbHVlLiAgUGxlYXNlIG5vdGUgdGhhdCBpdCBpcyBub3Qgc2FmZSB0bwotICogbW9kaWZ5IHJlZmVyZW5jZXMgd2hpbGUgYW4gaXRlcmF0aW9uIGlzIGluIHByb2dyZXNzLCB1bmxlc3MgdGhlCi0gKiBzYW1lIGNhbGxiYWNrIGZ1bmN0aW9uIGludm9jYXRpb24gdGhhdCBtb2RpZmllcyB0aGUgcmVmZXJlbmNlIGFsc28KLSAqIHJldHVybnMgYSBub256ZXJvIHZhbHVlIHRvIGltbWVkaWF0ZWx5IHN0b3AgdGhlIGl0ZXJhdGlvbi4KKyAqIFRoZSBzaWduYXR1cmUgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgdGhlIGZvcl9lYWNoXyooKQorICogZnVuY3Rpb25zIGJlbG93LiAgVGhlIG1lbW9yeSBwb2ludGVkIHRvIGJ5IHRoZSByZWZuYW1lIGFuZCBzaGExCisgKiBhcmd1bWVudHMgaXMgb25seSBndWFyYW50ZWVkIHRvIGJlIHZhbGlkIGZvciB0aGUgZHVyYXRpb24gb2YgYQorICogc2luZ2xlIGNhbGxiYWNrIGludm9jYXRpb24uCiAgKi8KLXR5cGVkZWYgaW50IGVhY2hfcmVmX2ZuKGNvbnN0IGNoYXIgKnJlZm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIGludCBmbGFncywgdm9pZCAqY2JfZGF0YSk7Cit0eXBlZGVmIGludCBlYWNoX3JlZl9mbihjb25zdCBjaGFyICpyZWZuYW1lLAorCQkJY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgaW50IGZsYWdzLCB2b2lkICpjYl9kYXRhKTsKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGludm9rZSB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZ1bmN0aW9uIGZvcgorICogZWFjaCByZWZlcmVuY2UgaW5kaWNhdGVkLiAgSWYgdGhlIGZ1bmN0aW9uIGV2ZXIgcmV0dXJucyBhIG5vbnplcm8KKyAqIHZhbHVlLCBzdG9wIHRoZSBpdGVyYXRpb24gYW5kIHJldHVybiB0aGF0IHZhbHVlLiAgUGxlYXNlIG5vdGUgdGhhdAorICogaXQgaXMgbm90IHNhZmUgdG8gbW9kaWZ5IHJlZmVyZW5jZXMgd2hpbGUgYW4gaXRlcmF0aW9uIGlzIGluCisgKiBwcm9ncmVzcywgdW5sZXNzIHRoZSBzYW1lIGNhbGxiYWNrIGZ1bmN0aW9uIGludm9jYXRpb24gdGhhdAorICogbW9kaWZpZXMgdGhlIHJlZmVyZW5jZSBhbHNvIHJldHVybnMgYSBub256ZXJvIHZhbHVlIHRvIGltbWVkaWF0ZWx5CisgKiBzdG9wIHRoZSBpdGVyYXRpb24uCisgKi8KIGV4dGVybiBpbnQgaGVhZF9yZWYoZWFjaF9yZWZfZm4sIHZvaWQgKik7CiBleHRlcm4gaW50IGZvcl9lYWNoX3JlZihlYWNoX3JlZl9mbiwgdm9pZCAqKTsKIGV4dGVybiBpbnQgZm9yX2VhY2hfcmVmX2luKGNvbnN0IGNoYXIgKiwgZWFjaF9yZWZfZm4sIHZvaWQgKik7CkBAIC01NCwxMyArNzcsNTcgQEAKIGV4dGVybiB2b2lkIHdhcm5fZGFuZ2xpbmdfc3ltcmVmKEZJTEUgKmZwLCBjb25zdCBjaGFyICptc2dfZm10LCBjb25zdCBjaGFyICpyZWZuYW1lKTsKIAogLyoKLSAqIEFkZCBhIHJlZmVyZW5jZSB0byB0aGUgaW4tbWVtb3J5IHBhY2tlZCByZWZlcmVuY2UgY2FjaGUuICBUbyBhY3R1YWxseQotICogd3JpdGUgdGhlIHJlZmVyZW5jZSB0byB0aGUgcGFja2VkLXJlZnMgZmlsZSwgY2FsbCBwYWNrX3JlZnMoKS4KKyAqIExvY2sgdGhlIHBhY2tlZC1yZWZzIGZpbGUgZm9yIHdyaXRpbmcuICBGbGFncyBpcyBwYXNzZWQgdG8KKyAqIGhvbGRfbG9ja19maWxlX2Zvcl91cGRhdGUoKS4gIFJldHVybiAwIG9uIHN1Y2Nlc3MuCisgKi8KK2V4dGVybiBpbnQgbG9ja19wYWNrZWRfcmVmcyhpbnQgZmxhZ3MpOworCisvKgorICogQWRkIGEgcmVmZXJlbmNlIHRvIHRoZSBpbi1tZW1vcnkgcGFja2VkIHJlZmVyZW5jZSBjYWNoZS4gIFRoaXMgbWF5CisgKiBvbmx5IGJlIGNhbGxlZCB3aGlsZSB0aGUgcGFja2VkLXJlZnMgZmlsZSBpcyBsb2NrZWQgKHNlZQorICogbG9ja19wYWNrZWRfcmVmcygpKS4gIFRvIGFjdHVhbGx5IHdyaXRlIHRoZSBwYWNrZWQtcmVmcyBmaWxlLCBjYWxsCisgKiBjb21taXRfcGFja2VkX3JlZnMoKS4KICAqLwogZXh0ZXJuIHZvaWQgYWRkX3BhY2tlZF9yZWYoY29uc3QgY2hhciAqcmVmbmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSk7CiAKKy8qCisgKiBXcml0ZSB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBwYWNrZWQgcmVmcyBjYWNoZSBmcm9tIG1lbW9yeSB0bworICogZGlzay4gIFRoZSBwYWNrZWQtcmVmcyBmaWxlIG11c3QgYWxyZWFkeSBiZSBsb2NrZWQgZm9yIHdyaXRpbmcgKHNlZQorICogbG9ja19wYWNrZWRfcmVmcygpKS4gIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MuCisgKi8KK2V4dGVybiBpbnQgY29tbWl0X3BhY2tlZF9yZWZzKHZvaWQpOworCisvKgorICogUm9sbGJhY2sgdGhlIGxvY2tmaWxlIGZvciB0aGUgcGFja2VkLXJlZnMgZmlsZSwgYW5kIGRpc2NhcmQgdGhlCisgKiBpbi1tZW1vcnkgcGFja2VkIHJlZmVyZW5jZSBjYWNoZS4gIChUaGUgcGFja2VkLXJlZnMgZmlsZSB3aWxsIGJlCisgKiByZWFkIGFuZXcgaWYgaXQgaXMgbmVlZGVkIGFnYWluIGFmdGVyIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLikKKyAqLworZXh0ZXJuIHZvaWQgcm9sbGJhY2tfcGFja2VkX3JlZnModm9pZCk7CisKKy8qCisgKiBGbGFncyBmb3IgY29udHJvbGxpbmcgYmVoYXZpb3VyIG9mIHBhY2tfcmVmcygpCisgKiBQQUNLX1JFRlNfUFJVTkU6IFBydW5lIGxvb3NlIHJlZnMgYWZ0ZXIgcGFja2luZworICogUEFDS19SRUZTX0FMTDogICBQYWNrIF9hbGxfIHJlZnMsIG5vdCBqdXN0IHRhZ3MgYW5kIGFscmVhZHkgcGFja2VkIHJlZnMKKyAqLworI2RlZmluZSBQQUNLX1JFRlNfUFJVTkUgMHgwMDAxCisjZGVmaW5lIFBBQ0tfUkVGU19BTEwgICAweDAwMDIKKworLyoKKyAqIFdyaXRlIGEgcGFja2VkLXJlZnMgZmlsZSBmb3IgdGhlIGN1cnJlbnQgcmVwb3NpdG9yeS4KKyAqIGZsYWdzOiBDb21iaW5hdGlvbiBvZiB0aGUgYWJvdmUgUEFDS19SRUZTXyogZmxhZ3MuCisgKi8KK2ludCBwYWNrX3JlZnModW5zaWduZWQgaW50IGZsYWdzKTsKKwogZXh0ZXJuIGludCByZWZfZXhpc3RzKGNvbnN0IGNoYXIgKik7CiAKKy8qCisgKiBJZiByZWZuYW1lIGlzIGEgbm9uLXN5bWJvbGljIHJlZmVyZW5jZSB0aGF0IHJlZmVycyB0byBhIHRhZyBvYmplY3QsCisgKiBhbmQgdGhlIHRhZyBjYW4gYmUgKHJlY3Vyc2l2ZWx5KSBkZXJlZmVyZW5jZWQgdG8gYSBub24tdGFnIG9iamVjdCwKKyAqIHN0b3JlIHRoZSBTSEExIG9mIHRoZSByZWZlcnJlZC10byBvYmplY3QgdG8gc2hhMSBhbmQgcmV0dXJuIDAuICBJZgorICogYW55IG9mIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG5vdCBtZXQsIHJldHVybiBhIG5vbi16ZXJvIHZhbHVlLgorICogU3ltYm9saWMgcmVmZXJlbmNlcyBhcmUgY29uc2lkZXJlZCB1bnBlZWxhYmxlLCBldmVuIGlmIHRoZXkKKyAqIHVsdGltYXRlbHkgcmVzb2x2ZSB0byBhIHBlZWxhYmxlIHRhZy4KKyAqLwogZXh0ZXJuIGludCBwZWVsX3JlZihjb25zdCBjaGFyICpyZWZuYW1lLCB1bnNpZ25lZCBjaGFyICpzaGExKTsKIAogLyoqIExvY2tzIGEgInJlZnMvIiByZWYgcmV0dXJuaW5nIHRoZSBsb2NrIG9uIHN1Y2Nlc3MgYW5kIE5VTEwgb24gZmFpbHVyZS4gKiovCmRpZmYgLS1naXQgYS9yZW1vdGUtY3VybC5jIGIvcmVtb3RlLWN1cmwuYwppbmRleCA2MGVkYTYzLi41YjNjZTllIDEwMDY0NAotLS0gYS9yZW1vdGUtY3VybC5jCisrKyBiL3JlbW90ZS1jdXJsLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSAicnVuLWNvbW1hbmQuaCIKICNpbmNsdWRlICJwa3QtbGluZS5oIgogI2luY2x1ZGUgInNpZGViYW5kLmgiCisjaW5jbHVkZSAiYXJndi1hcnJheS5oIgogCiBzdGF0aWMgc3RydWN0IHJlbW90ZSAqcmVtb3RlOwogc3RhdGljIGNvbnN0IGNoYXIgKnVybDsgLyogYWx3YXlzIGVuZHMgd2l0aCBhIHRyYWlsaW5nIHNsYXNoICovCkBAIC03ODcsMzYgKzc4OCwzNSBAQAogc3RhdGljIGludCBwdXNoX2dpdChzdHJ1Y3QgZGlzY292ZXJ5ICpoZWFkcywgaW50IG5yX3NwZWMsIGNoYXIgKipzcGVjcykKIHsKIAlzdHJ1Y3QgcnBjX3N0YXRlIHJwYzsKLQljb25zdCBjaGFyICoqYXJndjsKLQlpbnQgYXJnYyA9IDAsIGksIGVycjsKKwlpbnQgaSwgZXJyOworCXN0cnVjdCBhcmd2X2FycmF5IGFyZ3M7CiAKLQlhcmd2ID0geG1hbGxvYygoMTAgKyBucl9zcGVjKSAqIHNpemVvZihjaGFyKikpOwotCWFyZ3ZbYXJnYysrXSA9ICJzZW5kLXBhY2siOwotCWFyZ3ZbYXJnYysrXSA9ICItLXN0YXRlbGVzcy1ycGMiOwotCWFyZ3ZbYXJnYysrXSA9ICItLWhlbHBlci1zdGF0dXMiOworCWFyZ3ZfYXJyYXlfaW5pdCgmYXJncyk7CisJYXJndl9hcnJheV9wdXNobCgmYXJncywgInNlbmQtcGFjayIsICItLXN0YXRlbGVzcy1ycGMiLCAiLS1oZWxwZXItc3RhdHVzIiwKKwkJCSBOVUxMKTsKKwogCWlmIChvcHRpb25zLnRoaW4pCi0JCWFyZ3ZbYXJnYysrXSA9ICItLXRoaW4iOworCQlhcmd2X2FycmF5X3B1c2goJmFyZ3MsICItLXRoaW4iKTsKIAlpZiAob3B0aW9ucy5kcnlfcnVuKQotCQlhcmd2W2FyZ2MrK10gPSAiLS1kcnktcnVuIjsKKwkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS1kcnktcnVuIik7CiAJaWYgKG9wdGlvbnMudmVyYm9zaXR5ID09IDApCi0JCWFyZ3ZbYXJnYysrXSA9ICItLXF1aWV0IjsKKwkJYXJndl9hcnJheV9wdXNoKCZhcmdzLCAiLS1xdWlldCIpOwogCWVsc2UgaWYgKG9wdGlvbnMudmVyYm9zaXR5ID4gMSkKLQkJYXJndlthcmdjKytdID0gIi0tdmVyYm9zZSI7Ci0JYXJndlthcmdjKytdID0gb3B0aW9ucy5wcm9ncmVzcyA/ICItLXByb2dyZXNzIiA6ICItLW5vLXByb2dyZXNzIjsKLQlhcmd2W2FyZ2MrK10gPSB1cmw7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgIi0tdmVyYm9zZSIpOworCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgb3B0aW9ucy5wcm9ncmVzcyA/ICItLXByb2dyZXNzIiA6ICItLW5vLXByb2dyZXNzIik7CisJYXJndl9hcnJheV9wdXNoKCZhcmdzLCB1cmwpOwogCWZvciAoaSA9IDA7IGkgPCBucl9zcGVjOyBpKyspCi0JCWFyZ3ZbYXJnYysrXSA9IHNwZWNzW2ldOwotCWFyZ3ZbYXJnYysrXSA9IE5VTEw7CisJCWFyZ3ZfYXJyYXlfcHVzaCgmYXJncywgc3BlY3NbaV0pOwogCiAJbWVtc2V0KCZycGMsIDAsIHNpemVvZihycGMpKTsKIAlycGMuc2VydmljZV9uYW1lID0gImdpdC1yZWNlaXZlLXBhY2siLAotCXJwYy5hcmd2ID0gYXJndjsKKwlycGMuYXJndiA9IGFyZ3MuYXJndjsKIAogCWVyciA9IHJwY19zZXJ2aWNlKCZycGMsIGhlYWRzKTsKIAlpZiAocnBjLnJlc3VsdC5sZW4pCiAJCXdyaXRlX29yX2RpZSgxLCBycGMucmVzdWx0LmJ1ZiwgcnBjLnJlc3VsdC5sZW4pOwogCXN0cmJ1Zl9yZWxlYXNlKCZycGMucmVzdWx0KTsKLQlmcmVlKGFyZ3YpOworCWFyZ3ZfYXJyYXlfY2xlYXIoJmFyZ3MpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL3JlbW90ZS10ZXN0c3ZuLmMgYi9yZW1vdGUtdGVzdHN2bi5jCmluZGV4IDVkZGYxMWMuLmQ3Y2Q1ZDIgMTAwNjQ0Ci0tLSBhL3JlbW90ZS10ZXN0c3ZuLmMKKysrIGIvcmVtb3RlLXRlc3Rzdm4uYwpAQCAtMjg2LDcgKzI4Niw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndikKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklULCB1cmxfc2IgPSBTVFJCVUZfSU5JVCwKIAkJCXByaXZhdGVfcmVmX3NiID0gU1RSQlVGX0lOSVQsIG1hcmtzZmlsZW5hbWVfc2IgPSBTVFJCVUZfSU5JVCwKZGlmZiAtLWdpdCBhL3JlbW90ZS5jIGIvcmVtb3RlLmMKaW5kZXggNjhlYjk5Yi4uZWZjYmE5MyAxMDA2NDQKLS0tIGEvcmVtb3RlLmMKKysrIGIvcmVtb3RlLmMKQEAgLTI3NiwxMCArMjc2LDkgQEAKIAogc3RhdGljIHZvaWQgcmVhZF9icmFuY2hlc19maWxlKHN0cnVjdCByZW1vdGUgKnJlbW90ZSkKIHsKLQljb25zdCBjaGFyICpzbGFzaCA9IHN0cmNocihyZW1vdGUtPm5hbWUsICcvJyk7CiAJY2hhciAqZnJhZzsKIAlzdHJ1Y3Qgc3RyYnVmIGJyYW5jaCA9IFNUUkJVRl9JTklUOwotCWludCBuID0gc2xhc2ggPyBzbGFzaCAtIHJlbW90ZS0+bmFtZSA6IDEwMDA7CisJaW50IG4gPSAxMDAwOwogCUZJTEUgKmYgPSBmb3BlbihnaXRfcGF0aCgiYnJhbmNoZXMvJS4qcyIsIG4sIHJlbW90ZS0+bmFtZSksICJyIik7CiAJY2hhciAqcywgKnA7CiAJaW50IGxlbjsKQEAgLTI5OSwyMSArMjk4LDExIEBACiAJd2hpbGUgKGlzc3BhY2UocFstMV0pKQogCQkqLS1wID0gMDsKIAlsZW4gPSBwIC0gczsKLQlpZiAoc2xhc2gpCi0JCWxlbiArPSBzdHJsZW4oc2xhc2gpOwogCXAgPSB4bWFsbG9jKGxlbiArIDEpOwogCXN0cmNweShwLCBzKTsKLQlpZiAoc2xhc2gpCi0JCXN0cmNhdChwLCBzbGFzaCk7CiAKIAkvKgotCSAqIFdpdGggInNsYXNoIiwgZS5nLiAiZ2l0IGZldGNoIGpnYXJ6aWsvbmV0ZGV2LTIuNiIgd2hlbgotCSAqIHJlYWRpbmcgZnJvbSAkR0lUX0RJUi9icmFuY2hlcy9qZ2FyemlrIGZldGNoZXMgIkhFQUQiIGZyb20KLQkgKiB0aGUgcGFydGlhbCBVUkwgb2J0YWluZWQgZnJvbSB0aGUgYnJhbmNoZXMgZmlsZSBwbHVzCi0JICogIi9uZXRkZXYtMi42IiBhbmQgZG9lcyBub3Qgc3RvcmUgaXQgaW4gYW55IHRyYWNraW5nIHJlZi4KLQkgKiAjYnJhbmNoIHNwZWNpZmllciBpbiB0aGUgZmlsZSBpcyBpZ25vcmVkLgotCSAqCi0JICogT3RoZXJ3aXNlLCB0aGUgYnJhbmNoZXMgZmlsZSB3b3VsZCBoYXZlIFVSTCBhbmQgb3B0aW9uYWxseQorCSAqIFRoZSBicmFuY2hlcyBmaWxlIHdvdWxkIGhhdmUgVVJMIGFuZCBvcHRpb25hbGx5CiAJICogI2JyYW5jaCBzcGVjaWZpZWQuICBUaGUgIm1hc3RlciIgKG9yIHNwZWNpZmllZCkgYnJhbmNoIGlzCiAJICogZmV0Y2hlZCBhbmQgc3RvcmVkIGluIHRoZSBsb2NhbCBicmFuY2ggb2YgdGhlIHNhbWUgbmFtZS4KIAkgKi8KQEAgLTMyMywxMiArMzEyLDggQEAKIAkJc3RyYnVmX2FkZGYoJmJyYW5jaCwgInJlZnMvaGVhZHMvJXMiLCBmcmFnKTsKIAl9IGVsc2UKIAkJc3RyYnVmX2FkZHN0cigmYnJhbmNoLCAicmVmcy9oZWFkcy9tYXN0ZXIiKTsKLQlpZiAoIXNsYXNoKSB7Ci0JCXN0cmJ1Zl9hZGRmKCZicmFuY2gsICI6cmVmcy9oZWFkcy8lcyIsIHJlbW90ZS0+bmFtZSk7Ci0JfSBlbHNlIHsKLQkJc3RyYnVmX3Jlc2V0KCZicmFuY2gpOwotCQlzdHJidWZfYWRkc3RyKCZicmFuY2gsICJIRUFEOiIpOwotCX0KKworCXN0cmJ1Zl9hZGRmKCZicmFuY2gsICI6cmVmcy9oZWFkcy8lcyIsIHJlbW90ZS0+bmFtZSk7CiAJYWRkX3VybF9hbGlhcyhyZW1vdGUsIHApOwogCWFkZF9mZXRjaF9yZWZzcGVjKHJlbW90ZSwgc3RyYnVmX2RldGFjaCgmYnJhbmNoLCBOVUxMKSk7CiAJLyoKQEAgLTEzMTcsNiArMTMwMiwxNCBAQAogCWZyZWUoc2VudF90aXBzLnRpcCk7CiB9CiAKK3N0YXRpYyB2b2lkIHByZXBhcmVfcmVmX2luZGV4KHN0cnVjdCBzdHJpbmdfbGlzdCAqcmVmX2luZGV4LCBzdHJ1Y3QgcmVmICpyZWYpCit7CisJZm9yICggOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkKKwkJc3RyaW5nX2xpc3RfYXBwZW5kX25vZHVwKHJlZl9pbmRleCwgcmVmLT5uYW1lKS0+dXRpbCA9IHJlZjsKKworCXNvcnRfc3RyaW5nX2xpc3QocmVmX2luZGV4KTsKK30KKwogLyoKICAqIEdpdmVuIHRoZSBzZXQgb2YgcmVmcyB0aGUgbG9jYWwgcmVwb3NpdG9yeSBoYXMsIHRoZSBzZXQgb2YgcmVmcyB0aGUKICAqIHJlbW90ZSByZXBvc2l0b3J5IGhhcywgYW5kIHRoZSByZWZzcGVjIHVzZWQgZm9yIHB1c2gsIGRldGVybWluZQpAQCAtMTMzNSw2ICsxMzI4LDcgQEAKIAlpbnQgZXJyczsKIAlzdGF0aWMgY29uc3QgY2hhciAqZGVmYXVsdF9yZWZzcGVjW10gPSB7ICI6IiwgTlVMTCB9OwogCXN0cnVjdCByZWYgKnJlZiwgKipkc3RfdGFpbCA9IHRhaWxfcmVmKGRzdCk7CisJc3RydWN0IHN0cmluZ19saXN0IGRzdF9yZWZfaW5kZXggPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCiAJaWYgKCFucl9yZWZzcGVjKSB7CiAJCW5yX3JlZnNwZWMgPSAxOwpAQCAtMTM0NSw2ICsxMzM5LDcgQEAKIAogCS8qIHBpY2sgdGhlIHJlbWFpbmRlciAqLwogCWZvciAocmVmID0gc3JjOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkgeworCQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqZHN0X2l0ZW07CiAJCXN0cnVjdCByZWYgKmRzdF9wZWVyOwogCQljb25zdCBzdHJ1Y3QgcmVmc3BlYyAqcGF0ID0gTlVMTDsKIAkJY2hhciAqZHN0X25hbWU7CkBAIC0xMzUzLDcgKzEzNDgsMTEgQEAKIAkJaWYgKCFkc3RfbmFtZSkKIAkJCWNvbnRpbnVlOwogCi0JCWRzdF9wZWVyID0gZmluZF9yZWZfYnlfbmFtZSgqZHN0LCBkc3RfbmFtZSk7CisJCWlmICghZHN0X3JlZl9pbmRleC5ucikKKwkJCXByZXBhcmVfcmVmX2luZGV4KCZkc3RfcmVmX2luZGV4LCAqZHN0KTsKKworCQlkc3RfaXRlbSA9IHN0cmluZ19saXN0X2xvb2t1cCgmZHN0X3JlZl9pbmRleCwgZHN0X25hbWUpOworCQlkc3RfcGVlciA9IGRzdF9pdGVtID8gZHN0X2l0ZW0tPnV0aWwgOiBOVUxMOwogCQlpZiAoZHN0X3BlZXIpIHsKIAkJCWlmIChkc3RfcGVlci0+cGVlcl9yZWYpCiAJCQkJLyogV2UncmUgYWxyZWFkeSBzZW5kaW5nIHNvbWV0aGluZyB0byB0aGlzIHJlZi4gKi8KQEAgLTEzNzAsNiArMTM2OSw4IEBACiAJCQkvKiBDcmVhdGUgYSBuZXcgb25lIGFuZCBsaW5rIGl0ICovCiAJCQlkc3RfcGVlciA9IG1ha2VfbGlua2VkX3JlZihkc3RfbmFtZSwgJmRzdF90YWlsKTsKIAkJCWhhc2hjcHkoZHN0X3BlZXItPm5ld19zaGExLCByZWYtPm5ld19zaGExKTsKKwkJCXN0cmluZ19saXN0X2luc2VydCgmZHN0X3JlZl9pbmRleCwKKwkJCQlkc3RfcGVlci0+bmFtZSktPnV0aWwgPSBkc3RfcGVlcjsKIAkJfQogCQlkc3RfcGVlci0+cGVlcl9yZWYgPSBjb3B5X3JlZihyZWYpOwogCQlkc3RfcGVlci0+Zm9yY2UgPSBwYXQtPmZvcmNlOwpAQCAtMTM3NywxMCArMTM3OCwxMyBAQAogCQlmcmVlKGRzdF9uYW1lKTsKIAl9CiAKKwlzdHJpbmdfbGlzdF9jbGVhcigmZHN0X3JlZl9pbmRleCwgMCk7CisKIAlpZiAoZmxhZ3MgJiBNQVRDSF9SRUZTX0ZPTExPV19UQUdTKQogCQlhZGRfbWlzc2luZ190YWdzKHNyYywgZHN0LCAmZHN0X3RhaWwpOwogCiAJaWYgKHNlbmRfcHJ1bmUpIHsKKwkJc3RydWN0IHN0cmluZ19saXN0IHNyY19yZWZfaW5kZXggPSBTVFJJTkdfTElTVF9JTklUX05PRFVQOwogCQkvKiBjaGVjayBmb3IgbWlzc2luZyByZWZzIG9uIHRoZSByZW1vdGUgKi8KIAkJZm9yIChyZWYgPSAqZHN0OyByZWY7IHJlZiA9IHJlZi0+bmV4dCkgewogCQkJY2hhciAqc3JjX25hbWU7CkBAIC0xMzkxLDExICsxMzk1LDE1IEBACiAKIAkJCXNyY19uYW1lID0gZ2V0X3JlZl9tYXRjaChycywgbnJfcmVmc3BlYywgcmVmLCBzZW5kX21pcnJvciwgRlJPTV9EU1QsIE5VTEwpOwogCQkJaWYgKHNyY19uYW1lKSB7Ci0JCQkJaWYgKCFmaW5kX3JlZl9ieV9uYW1lKHNyYywgc3JjX25hbWUpKQorCQkJCWlmICghc3JjX3JlZl9pbmRleC5ucikKKwkJCQkJcHJlcGFyZV9yZWZfaW5kZXgoJnNyY19yZWZfaW5kZXgsIHNyYyk7CisJCQkJaWYgKCFzdHJpbmdfbGlzdF9oYXNfc3RyaW5nKCZzcmNfcmVmX2luZGV4LAorCQkJCQkgICAgc3JjX25hbWUpKQogCQkJCQlyZWYtPnBlZXJfcmVmID0gYWxsb2NfZGVsZXRlX3JlZigpOwogCQkJCWZyZWUoc3JjX25hbWUpOwogCQkJfQogCQl9CisJCXN0cmluZ19saXN0X2NsZWFyKCZzcmNfcmVmX2luZGV4LCAwKTsKIAl9CiAJaWYgKGVycnMpCiAJCXJldHVybiAtMTsKQEAgLTE0NzQsOCArMTQ4Miw3IEBACiAJCXJldC0+cmVtb3RlID0gcmVtb3RlX2dldChyZXQtPnJlbW90ZV9uYW1lKTsKIAkJaWYgKHJldC0+bWVyZ2VfbnIpIHsKIAkJCWludCBpOwotCQkJcmV0LT5tZXJnZSA9IHhjYWxsb2Moc2l6ZW9mKCpyZXQtPm1lcmdlKSwKLQkJCQkJICAgICByZXQtPm1lcmdlX25yKTsKKwkJCXJldC0+bWVyZ2UgPSB4Y2FsbG9jKHJldC0+bWVyZ2VfbnIsIHNpemVvZigqcmV0LT5tZXJnZSkpOwogCQkJZm9yIChpID0gMDsgaSA8IHJldC0+bWVyZ2VfbnI7IGkrKykgewogCQkJCXJldC0+bWVyZ2VbaV0gPSB4Y2FsbG9jKDEsIHNpemVvZigqKnJldC0+bWVyZ2UpKTsKIAkJCQlyZXQtPm1lcmdlW2ldLT5zcmMgPSB4c3RyZHVwKHJldC0+bWVyZ2VfbmFtZVtpXSk7CmRpZmYgLS1naXQgYS9yZXJlcmUuYyBiL3JlcmVyZS5jCmluZGV4IDk4ZTNlMjkuLjZmZGU4ZjkgMTAwNjQ0Ci0tLSBhL3JlcmVyZS5jCisrKyBiL3JlcmVyZS5jCkBAIC0yOTksNyArMjk5LDcgQEAKIHsKIAltbWZpbGVfdCBtbWZpbGVbM10gPSB7e05VTEx9fTsKIAltbWJ1ZmZlcl90IHJlc3VsdCA9IHtOVUxMLCAwfTsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CiAJaW50IHBvcywgbGVuLCBpLCBodW5rX25vOwogCXN0cnVjdCByZXJlcmVfaW9fbWVtIGlvOwogCWludCBtYXJrZXJfc2l6ZSA9IGxsX21lcmdlX21hcmtlcl9zaXplKHBhdGgpOwpAQCAtMzU5LDcgKzM1OSw3IEBACiAKIHN0YXRpYyBpbnQgY2hlY2tfb25lX2NvbmZsaWN0KGludCBpLCBpbnQgKnR5cGUpCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICplID0gYWN0aXZlX2NhY2hlW2ldOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAogCWlmICghY2Vfc3RhZ2UoZSkpIHsKIAkJKnR5cGUgPSBSRVNPTFZFRDsKQEAgLTM3NCw4ICszNzQsOCBAQAogCiAJLyogT25seSBoYW5kbGUgcmVndWxhciBmaWxlcyB3aXRoIGJvdGggc3RhZ2VzICMyIGFuZCAjMyAqLwogCWlmIChpICsgMSA8IGFjdGl2ZV9ucikgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmUyID0gYWN0aXZlX2NhY2hlW2ldOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmUzID0gYWN0aXZlX2NhY2hlW2kgKyAxXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICplMiA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICplMyA9IGFjdGl2ZV9jYWNoZVtpICsgMV07CiAJCWlmIChjZV9zdGFnZShlMikgPT0gMiAmJgogCQkgICAgY2Vfc3RhZ2UoZTMpID09IDMgJiYKIAkJICAgIGNlX3NhbWVfbmFtZShlLCBlMykgJiYKQEAgLTM5OCw3ICszOTgsNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjspIHsKIAkJaW50IGNvbmZsaWN0X3R5cGU7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICplID0gYWN0aXZlX2NhY2hlW2ldOwogCQlpID0gY2hlY2tfb25lX2NvbmZsaWN0KGksICZjb25mbGljdF90eXBlKTsKIAkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gVEhSRUVfU1RBR0VEKQogCQkJc3RyaW5nX2xpc3RfaW5zZXJ0KGNvbmZsaWN0LCAoY29uc3QgY2hhciAqKWUtPm5hbWUpOwpAQCAtNDE0LDcgKzQxNCw3IEBACiAKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOykgewogCQlpbnQgY29uZmxpY3RfdHlwZTsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICplID0gYWN0aXZlX2NhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmUgPSBhY3RpdmVfY2FjaGVbaV07CiAJCWkgPSBjaGVja19vbmVfY29uZmxpY3QoaSwgJmNvbmZsaWN0X3R5cGUpOwogCQlpZiAoY29uZmxpY3RfdHlwZSA9PSBQVU5URUQpCiAJCQlzdHJpbmdfbGlzdF9pbnNlcnQobWVyZ2VfcnIsIChjb25zdCBjaGFyICopZS0+bmFtZSk7CmRpZmYgLS1naXQgYS9yZXNvbHZlLXVuZG8uYyBiL3Jlc29sdmUtdW5kby5jCmluZGV4IDYzOWViOWMuLjc3MTAxZjUgMTAwNjQ0Ci0tLSBhL3Jlc29sdmUtdW5kby5jCisrKyBiL3Jlc29sdmUtdW5kby5jCkBAIC0xMTUsNyArMTE1LDcgQEAKIAogaW50IHVubWVyZ2VfaW5kZXhfZW50cnlfYXQoc3RydWN0IGluZGV4X3N0YXRlICppc3RhdGUsIGludCBwb3MpCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdGVtOwogCXN0cnVjdCByZXNvbHZlX3VuZG9faW5mbyAqcnU7CiAJaW50IGksIGVyciA9IDAsIG1hdGNoZWQ7CkBAIC0xNjcsNyArMTY3LDcgQEAKIAkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSA8IGlzdGF0ZS0+Y2FjaGVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaXN0YXRlLT5jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGlzdGF0ZS0+Y2FjaGVbaV07CiAJCWlmIChjZS0+Y2VfZmxhZ3MgJiBDRV9NQVRDSEVEKQogCQkJaSA9IHVubWVyZ2VfaW5kZXhfZW50cnlfYXQoaXN0YXRlLCBpKTsKIAl9CkBAIC0xODEsNyArMTgxLDcgQEAKIAkJcmV0dXJuOwogCiAJZm9yIChpID0gMDsgaSA8IGlzdGF0ZS0+Y2FjaGVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaXN0YXRlLT5jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGlzdGF0ZS0+Y2FjaGVbaV07CiAJCWlmICghbWF0Y2hfcGF0aHNwZWMocGF0aHNwZWMsIGNlLT5uYW1lLCBjZV9uYW1lbGVuKGNlKSwgMCwgTlVMTCkpCiAJCQljb250aW51ZTsKIAkJaSA9IHVubWVyZ2VfaW5kZXhfZW50cnlfYXQoaXN0YXRlLCBpKTsKZGlmZiAtLWdpdCBhL3JldmlzaW9uLmMgYi9yZXZpc2lvbi5jCmluZGV4IGE2N2I2MTUuLmFjMjBkMWEgMTAwNjQ0Ci0tLSBhL3JldmlzaW9uLmMKKysrIGIvcmV2aXNpb24uYwpAQCAtMTMsNyArMTMsOSBAQAogI2luY2x1ZGUgImRlY29yYXRlLmgiCiAjaW5jbHVkZSAibG9nLXRyZWUuaCIKICNpbmNsdWRlICJzdHJpbmctbGlzdC5oIgorI2luY2x1ZGUgImxpbmUtbG9nLmgiCiAjaW5jbHVkZSAibWFpbG1hcC5oIgorI2luY2x1ZGUgImNvbW1pdC1zbGFiLmgiCiAKIHZvbGF0aWxlIHNob3dfZWFybHlfb3V0cHV0X2ZuX3Qgc2hvd19lYXJseV9vdXRwdXQ7CiAKQEAgLTcwLDcgKzcyLDggQEAKIAlyZXR1cm4gb3VycyB8fCBlbWl0dGVkOwogfQogCi12b2lkIHNob3dfb2JqZWN0X3dpdGhfbmFtZShGSUxFICpvdXQsIHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3Qgc3RydWN0IG5hbWVfcGF0aCAqcGF0aCwgY29uc3QgY2hhciAqY29tcG9uZW50KQordm9pZCBzaG93X29iamVjdF93aXRoX25hbWUoRklMRSAqb3V0LCBzdHJ1Y3Qgb2JqZWN0ICpvYmosCisJCQkgICBjb25zdCBzdHJ1Y3QgbmFtZV9wYXRoICpwYXRoLCBjb25zdCBjaGFyICpjb21wb25lbnQpCiB7CiAJc3RydWN0IG5hbWVfcGF0aCBsZWFmOwogCWxlYWYudXAgPSAoc3RydWN0IG5hbWVfcGF0aCAqKXBhdGg7CkBAIC04Nyw3ICs5MCw5IEBACiAJCXN0cnVjdCBuYW1lX3BhdGggKnBhdGgsCiAJCWNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0JYWRkX29iamVjdF9hcnJheShvYmosIHBhdGhfbmFtZShwYXRoLCBuYW1lKSwgcCk7CisJY2hhciAqcG4gPSBwYXRoX25hbWUocGF0aCwgbmFtZSk7CisJYWRkX29iamVjdF9hcnJheShvYmosIHBuLCBwKTsKKwlmcmVlKHBuKTsKIH0KIAogc3RhdGljIHZvaWQgbWFya19ibG9iX3VuaW50ZXJlc3Rpbmcoc3RydWN0IGJsb2IgKmJsb2IpCkBAIC0xODYsNyArMTkxLDkgQEAKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGFkZF9wZW5kaW5nX29iamVjdF93aXRoX21vZGUoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIG1vZGUpCitzdGF0aWMgdm9pZCBhZGRfcGVuZGluZ19vYmplY3Rfd2l0aF9tb2RlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkJIHN0cnVjdCBvYmplY3QgKm9iaiwKKwkJCQkJIGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIG1vZGUpCiB7CiAJaWYgKCFvYmopCiAJCXJldHVybjsKQEAgLTIwOSw3ICsyMTYsOCBAQAogCWFkZF9vYmplY3RfYXJyYXlfd2l0aF9tb2RlKG9iaiwgbmFtZSwgJnJldnMtPnBlbmRpbmcsIG1vZGUpOwogfQogCi12b2lkIGFkZF9wZW5kaW5nX29iamVjdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSkKK3ZvaWQgYWRkX3BlbmRpbmdfb2JqZWN0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCXN0cnVjdCBvYmplY3QgKm9iaiwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlhZGRfcGVuZGluZ19vYmplY3Rfd2l0aF9tb2RlKHJldnMsIG9iaiwgbmFtZSwgU19JRklOVkFMSUQpOwogfQpAQCAtMjI2LDcgKzIzNCw5IEBACiAJYWRkX3BlbmRpbmdfb2JqZWN0KHJldnMsIG9iaiwgIkhFQUQiKTsKIH0KIAotc3RhdGljIHN0cnVjdCBvYmplY3QgKmdldF9yZWZlcmVuY2Uoc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCitzdGF0aWMgc3RydWN0IG9iamVjdCAqZ2V0X3JlZmVyZW5jZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkJICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3Q7CiAKQEAgLTI0Nyw3ICsyNTcsOCBAQAogCWFkZF9wZW5kaW5nX29iamVjdChyZXZzLCBvYmplY3QsIG5hbWUpOwogfQogCi1zdGF0aWMgc3RydWN0IGNvbW1pdCAqaGFuZGxlX2NvbW1pdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBvYmplY3QgKm9iamVjdCwgY29uc3QgY2hhciAqbmFtZSkKK3N0YXRpYyBzdHJ1Y3QgY29tbWl0ICpoYW5kbGVfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkgICAgc3RydWN0IG9iamVjdCAqb2JqZWN0LCBjb25zdCBjaGFyICpuYW1lKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBvYmplY3QtPmZsYWdzOwogCkBAIC0zMzMsNiArMzQ0LDgwIEBACiB9CiAKIC8qCisgKiBBIGRlZmluaXRpb24gb2YgInJlbGV2YW50IiBjb21taXQgdGhhdCB3ZSBjYW4gdXNlIHRvIHNpbXBsaWZ5IGxpbWl0ZWQgZ3JhcGhzCisgKiBieSBlbGltaW5hdGluZyBzaWRlIGJyYW5jaGVzLgorICoKKyAqIEEgInJlbGV2YW50IiBjb21taXQgaXMgb25lIHRoYXQgaXMgIVVOSU5URVJFU1RJTkcgKGllIHdlIGFyZSBpbmNsdWRpbmcgaXQKKyAqIGluIG91ciBsaXN0KSwgb3IgdGhhdCBpcyBhIHNwZWNpZmllZCBCT1RUT00gY29tbWl0LiBUaGVuIGFmdGVyIGNvbXB1dGluZworICogYSBsaW1pdGVkIGxpc3QsIGR1cmluZyBwcm9jZXNzaW5nIHdlIGNhbiBnZW5lcmFsbHkgaWdub3JlIGJvdW5kYXJ5IG1lcmdlcworICogY29taW5nIGZyb20gb3V0c2lkZSB0aGUgZ3JhcGgsIChpZSBmcm9tIGlycmVsZXZhbnQgcGFyZW50cyksIGFuZCB0cmVhdAorICogdGhvc2UgbWVyZ2VzIGFzIGlmIHRoZXkgd2VyZSBzaW5nbGUtcGFyZW50LiBUUkVFU0FNRSBpcyBkZWZpbmVkIHRvIGNvbnNpZGVyCisgKiBvbmx5IHJlbGV2YW50IHBhcmVudHMsIGlmIGFueS4gSWYgd2UgYXJlIFRSRUVTQU1FIHRvIG91ciBvbi1ncmFwaCBwYXJlbnRzLAorICogd2UgZG9uJ3QgY2FyZSBpZiB3ZSB3ZXJlICFUUkVFU0FNRSB0byBub24tZ3JhcGggcGFyZW50cy4KKyAqCisgKiBUcmVhdGluZyBib3R0b20gY29tbWl0cyBhcyByZWxldmFudCBlbnN1cmVzIHRoYXQgYSBsaW1pdGVkIGdyYXBoJ3MKKyAqIGNvbm5lY3Rpb24gdG8gdGhlIGFjdHVhbCBib3R0b20gY29tbWl0IGlzIG5vdCB2aWV3ZWQgYXMgYSBzaWRlIGJyYW5jaCwgYnV0CisgKiB0cmVhdGVkIGFzIHBhcnQgb2YgdGhlIGdyYXBoLiBGb3IgZXhhbXBsZToKKyAqCisgKiAgIC4uLi5aLi4uQS0tLVgtLS1vLS0tby0tLUIKKyAqICAgICAgICAuICAgICAvCisgKiAgICAgICAgIFctLS1ZCisgKgorICogV2hlbiBjb21wdXRpbmcgIkEuLkIiLCB0aGUgQS1YIGNvbm5lY3Rpb24gaXMgYXQgbGVhc3QgYXMgaW1wb3J0YW50IGFzCisgKiBZLVgsIGRlc3BpdGUgQSBiZWluZyBmbGFnZ2VkIFVOSU5URVJFU1RJTkcuCisgKgorICogQW5kIHdoZW4gY29tcHV0aW5nIC0tYW5jZXN0cnktcGF0aCAiQS4uQiIsIHRoZSBBLVggY29ubmVjdGlvbiBpcyBtb3JlCisgKiBpbXBvcnRhbnQgdGhhbiBZLVgsIGRlc3BpdGUgYm90aCBBIGFuZCBZIGJlaW5nIGZsYWdnZWQgVU5JTlRFUkVTVElORy4KKyAqLworc3RhdGljIGlubGluZSBpbnQgcmVsZXZhbnRfY29tbWl0KHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlyZXR1cm4gKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgKFVOSU5URVJFU1RJTkcgfCBCT1RUT00pKSAhPSBVTklOVEVSRVNUSU5HOworfQorCisvKgorICogUmV0dXJuIGEgc2luZ2xlIHJlbGV2YW50IGNvbW1pdCBmcm9tIGEgcGFyZW50IGxpc3QuIElmIHdlIGFyZSBhIFRSRUVTQU1FCisgKiBjb21taXQsIGFuZCB0aGlzIHNlbGVjdHMgb25lIG9mIG91ciBwYXJlbnRzLCB0aGVuIHdlIGNhbiBzYWZlbHkgc2ltcGxpZnkgdG8KKyAqIHRoYXQgcGFyZW50LgorICovCitzdGF0aWMgc3RydWN0IGNvbW1pdCAqb25lX3JlbGV2YW50X3BhcmVudChjb25zdCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkJCSAgc3RydWN0IGNvbW1pdF9saXN0ICpvcmlnKQoreworCXN0cnVjdCBjb21taXRfbGlzdCAqbGlzdCA9IG9yaWc7CisJc3RydWN0IGNvbW1pdCAqcmVsZXZhbnQgPSBOVUxMOworCisJaWYgKCFvcmlnKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogRm9yIDEtcGFyZW50IGNvbW1pdHMsIG9yIGlmIGZpcnN0LXBhcmVudC1vbmx5LCB0aGVuIHJldHVybiB0aGF0CisJICogZmlyc3QgcGFyZW50IChldmVuIGlmIG5vdCAicmVsZXZhbnQiIGJ5IHRoZSBhYm92ZSBkZWZpbml0aW9uKS4KKwkgKiBUUkVFU0FNRSB3aWxsIGhhdmUgYmVlbiBzZXQgcHVyZWx5IG9uIHRoYXQgcGFyZW50LgorCSAqLworCWlmIChyZXZzLT5maXJzdF9wYXJlbnRfb25seSB8fCAhb3JpZy0+bmV4dCkKKwkJcmV0dXJuIG9yaWctPml0ZW07CisKKwkvKgorCSAqIEZvciBtdWx0aS1wYXJlbnQgY29tbWl0cywgaWRlbnRpZnkgYSBzb2xlIHJlbGV2YW50IHBhcmVudCwgaWYgYW55LgorCSAqIElmIHdlIGhhdmUgb25seSBvbmUgcmVsZXZhbnQgcGFyZW50LCB0aGVuIFRSRUVTQU1FIHdpbGwgYmUgc2V0IHB1cmVseQorCSAqIHdpdGggcmVnYXJkIHRvIHRoYXQgcGFyZW50LCBhbmQgd2UgY2FuIHNpbXBsaWZ5IGFjY29yZGluZ2x5LgorCSAqCisJICogSWYgd2UgaGF2ZSBtb3JlIHRoYW4gb25lIHJlbGV2YW50IHBhcmVudCwgb3Igbm8gcmVsZXZhbnQgcGFyZW50cworCSAqIChhbmQgbXVsdGlwbGUgaXJyZWxldmFudCBvbmVzKSwgdGhlbiB3ZSBjYW4ndCBzZWxlY3QgYSBwYXJlbnQgaGVyZQorCSAqIGFuZCByZXR1cm4gTlVMTC4KKwkgKi8KKwl3aGlsZSAobGlzdCkgeworCQlzdHJ1Y3QgY29tbWl0ICpjb21taXQgPSBsaXN0LT5pdGVtOworCQlsaXN0ID0gbGlzdC0+bmV4dDsKKwkJaWYgKHJlbGV2YW50X2NvbW1pdChjb21taXQpKSB7CisJCQlpZiAocmVsZXZhbnQpCisJCQkJcmV0dXJuIE5VTEw7CisJCQlyZWxldmFudCA9IGNvbW1pdDsKKwkJfQorCX0KKwlyZXR1cm4gcmVsZXZhbnQ7Cit9CisKKy8qCiAgKiBUaGUgZ29hbCBpcyB0byBnZXQgUkVWX1RSRUVfTkVXIGFzIHRoZSByZXN1bHQgb25seSBpZiB0aGUKICAqIGRpZmYgY29uc2lzdHMgb2YgYWxsICcrJyAoYW5kIG5vIG90aGVyIGNoYW5nZXMpLCBSRVZfVFJFRV9PTEQKICAqIGlmIHRoZSB3aG9sZSBkaWZmIGlzIHJlbW92YWwgb2Ygb2xkIGRhdGEsIGFuZCBvdGhlcndpc2UKQEAgLTM2OCw3ICs0NTMsOCBAQAogCURJRkZfT1BUX1NFVChvcHRpb25zLCBIQVNfQ0hBTkdFUyk7CiB9CiAKLXN0YXRpYyBpbnQgcmV2X2NvbXBhcmVfdHJlZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKnBhcmVudCwgc3RydWN0IGNvbW1pdCAqY29tbWl0KQorc3RhdGljIGludCByZXZfY29tcGFyZV90cmVlKHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCSAgICBzdHJ1Y3QgY29tbWl0ICpwYXJlbnQsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKIHsKIAlzdHJ1Y3QgdHJlZSAqdDEgPSBwYXJlbnQtPnRyZWU7CiAJc3RydWN0IHRyZWUgKnQyID0gY29tbWl0LT50cmVlOwpAQCAtNDI5LDEwICs1MTUsMTI1IEBACiAJcmV0dXJuIHJldHZhbCA+PSAwICYmICh0cmVlX2RpZmZlcmVuY2UgPT0gUkVWX1RSRUVfU0FNRSk7CiB9CiAKK3N0cnVjdCB0cmVlc2FtZV9zdGF0ZSB7CisJdW5zaWduZWQgaW50IG5wYXJlbnRzOworCXVuc2lnbmVkIGNoYXIgdHJlZXNhbWVbRkxFWF9BUlJBWV07Cit9OworCitzdGF0aWMgc3RydWN0IHRyZWVzYW1lX3N0YXRlICppbml0aWFsaXNlX3RyZWVzYW1lKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXVuc2lnbmVkIG4gPSBjb21taXRfbGlzdF9jb3VudChjb21taXQtPnBhcmVudHMpOworCXN0cnVjdCB0cmVlc2FtZV9zdGF0ZSAqc3QgPSB4Y2FsbG9jKDEsIHNpemVvZigqc3QpICsgbik7CisJc3QtPm5wYXJlbnRzID0gbjsKKwlhZGRfZGVjb3JhdGlvbigmcmV2cy0+dHJlZXNhbWUsICZjb21taXQtPm9iamVjdCwgc3QpOworCXJldHVybiBzdDsKK30KKworLyoKKyAqIE11c3QgYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIHJlbW92aW5nIHRoZSBudGhfcGFyZW50IGZyb20gYSBjb21taXQncworICogcGFyZW50IGxpc3QsIGlmIHdlIGFyZSBtYWludGFpbmluZyB0aGUgcGVyLXBhcmVudCB0cmVlc2FtZVtdIGRlY29yYXRpb24uCisgKiBUaGlzIGRvZXMgbm90IHJlY2FsY3VsYXRlIHRoZSBtYXN0ZXIgVFJFRVNBTUUgZmxhZyAtIHVwZGF0ZV90cmVlc2FtZSgpCisgKiBzaG91bGQgYmUgY2FsbGVkIHRvIHVwZGF0ZSBpdCBhZnRlciBhIHNlcXVlbmNlIG9mIHRyZWVzYW1lW10gbW9kaWZpY2F0aW9ucworICogdGhhdCBtYXkgaGF2ZSBhZmZlY3RlZCBpdC4KKyAqLworc3RhdGljIGludCBjb21wYWN0X3RyZWVzYW1lKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0LCB1bnNpZ25lZCBudGhfcGFyZW50KQoreworCXN0cnVjdCB0cmVlc2FtZV9zdGF0ZSAqc3Q7CisJaW50IG9sZF9zYW1lOworCisJaWYgKCFjb21taXQtPnBhcmVudHMpIHsKKwkJLyoKKwkJICogSGF2ZSBqdXN0IHJlbW92ZWQgdGhlIG9ubHkgcGFyZW50IGZyb20gYSBub24tbWVyZ2UuCisJCSAqIERpZmZlcmVudCBoYW5kbGluZywgYXMgd2UgbGFjayBkZWNvcmF0aW9uLgorCQkgKi8KKwkJaWYgKG50aF9wYXJlbnQgIT0gMCkKKwkJCWRpZSgiY29tcGFjdF90cmVlc2FtZSAldSIsIG50aF9wYXJlbnQpOworCQlvbGRfc2FtZSA9ICEhKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVFJFRVNBTUUpOworCQlpZiAocmV2X3NhbWVfdHJlZV9hc19lbXB0eShyZXZzLCBjb21taXQpKQorCQkJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gVFJFRVNBTUU7CisJCWVsc2UKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzICY9IH5UUkVFU0FNRTsKKwkJcmV0dXJuIG9sZF9zYW1lOworCX0KKworCXN0ID0gbG9va3VwX2RlY29yYXRpb24oJnJldnMtPnRyZWVzYW1lLCAmY29tbWl0LT5vYmplY3QpOworCWlmICghc3QgfHwgbnRoX3BhcmVudCA+PSBzdC0+bnBhcmVudHMpCisJCWRpZSgiY29tcGFjdF90cmVlc2FtZSAldSIsIG50aF9wYXJlbnQpOworCisJb2xkX3NhbWUgPSBzdC0+dHJlZXNhbWVbbnRoX3BhcmVudF07CisJbWVtbW92ZShzdC0+dHJlZXNhbWUgKyBudGhfcGFyZW50LAorCQlzdC0+dHJlZXNhbWUgKyBudGhfcGFyZW50ICsgMSwKKwkJc3QtPm5wYXJlbnRzIC0gbnRoX3BhcmVudCAtIDEpOworCisJLyoKKwkgKiBJZiB3ZSd2ZSBqdXN0IGJlY29tZSBhIG5vbi1tZXJnZSBjb21taXQsIHVwZGF0ZSBUUkVFU0FNRQorCSAqIGltbWVkaWF0ZWx5LCBhbmQgcmVtb3ZlIHRoZSBuby1sb25nZXItbmVlZGVkIGRlY29yYXRpb24uCisJICogSWYgc3RpbGwgYSBtZXJnZSwgZGVmZXIgdXBkYXRlIHVudGlsIHVwZGF0ZV90cmVlc2FtZSgpLgorCSAqLworCWlmICgtLXN0LT5ucGFyZW50cyA9PSAxKSB7CisJCWlmIChjb21taXQtPnBhcmVudHMtPm5leHQpCisJCQlkaWUoImNvbXBhY3RfdHJlZXNhbWUgcGFyZW50cyBtaXNtYXRjaCIpOworCQlpZiAoc3QtPnRyZWVzYW1lWzBdICYmIHJldnMtPmRlbnNlKQorCQkJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gVFJFRVNBTUU7CisJCWVsc2UKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzICY9IH5UUkVFU0FNRTsKKwkJZnJlZShhZGRfZGVjb3JhdGlvbigmcmV2cy0+dHJlZXNhbWUsICZjb21taXQtPm9iamVjdCwgTlVMTCkpOworCX0KKworCXJldHVybiBvbGRfc2FtZTsKK30KKworc3RhdGljIHVuc2lnbmVkIHVwZGF0ZV90cmVlc2FtZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlpZiAoY29tbWl0LT5wYXJlbnRzICYmIGNvbW1pdC0+cGFyZW50cy0+bmV4dCkgeworCQl1bnNpZ25lZCBuOworCQlzdHJ1Y3QgdHJlZXNhbWVfc3RhdGUgKnN0OworCQlzdHJ1Y3QgY29tbWl0X2xpc3QgKnA7CisJCXVuc2lnbmVkIHJlbGV2YW50X3BhcmVudHM7CisJCXVuc2lnbmVkIHJlbGV2YW50X2NoYW5nZSwgaXJyZWxldmFudF9jaGFuZ2U7CisKKwkJc3QgPSBsb29rdXBfZGVjb3JhdGlvbigmcmV2cy0+dHJlZXNhbWUsICZjb21taXQtPm9iamVjdCk7CisJCWlmICghc3QpCisJCQlkaWUoInVwZGF0ZV90cmVlc2FtZSAlcyIsIHNoYTFfdG9faGV4KGNvbW1pdC0+b2JqZWN0LnNoYTEpKTsKKwkJcmVsZXZhbnRfcGFyZW50cyA9IDA7CisJCXJlbGV2YW50X2NoYW5nZSA9IGlycmVsZXZhbnRfY2hhbmdlID0gMDsKKwkJZm9yIChwID0gY29tbWl0LT5wYXJlbnRzLCBuID0gMDsgcDsgbisrLCBwID0gcC0+bmV4dCkgeworCQkJaWYgKHJlbGV2YW50X2NvbW1pdChwLT5pdGVtKSkgeworCQkJCXJlbGV2YW50X2NoYW5nZSB8PSAhc3QtPnRyZWVzYW1lW25dOworCQkJCXJlbGV2YW50X3BhcmVudHMrKzsKKwkJCX0gZWxzZQorCQkJCWlycmVsZXZhbnRfY2hhbmdlIHw9ICFzdC0+dHJlZXNhbWVbbl07CisJCX0KKwkJaWYgKHJlbGV2YW50X3BhcmVudHMgPyByZWxldmFudF9jaGFuZ2UgOiBpcnJlbGV2YW50X2NoYW5nZSkKKwkJCWNvbW1pdC0+b2JqZWN0LmZsYWdzICY9IH5UUkVFU0FNRTsKKwkJZWxzZQorCQkJY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gVFJFRVNBTUU7CisJfQorCisJcmV0dXJuIGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVFJFRVNBTUU7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGxpbWl0aW5nX2Nhbl9pbmNyZWFzZV90cmVlc2FtZShjb25zdCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMpCit7CisJLyoKKwkgKiBUUkVFU0FNRSBpcyBpcnJlbGV2YW50IHVubGVzcyBwcnVuZSAmJiBkZW5zZTsKKwkgKiBpZiBzaW1wbGlmeV9oaXN0b3J5IGlzIHNldCwgd2UgY2FuJ3QgaGF2ZSBhIG1peHR1cmUgb2YgVFJFRVNBTUUgYW5kCisJICogICAgIVRSRUVTQU1FIElOVEVSRVNUSU5HIHBhcmVudHMgKGFuZCB3ZSBkb24ndCBoYXZlIHRyZWVzYW1lW10KKwkgKiAgICBkZWNvcmF0aW9uIGFueXdheSk7CisJICogaWYgZmlyc3RfcGFyZW50X29ubHkgaXMgc2V0LCB0aGVuIHRoZSBUUkVFU0FNRSBmbGFnIGlzIGxvY2tlZAorCSAqICAgIGFnYWluc3QgdGhlIGZpcnN0IHBhcmVudCAoYW5kIGFnYWluIHdlIGxhY2sgdHJlZXNhbWVbXSBkZWNvcmF0aW9uKS4KKwkgKi8KKwlyZXR1cm4gcmV2cy0+cHJ1bmUgJiYgcmV2cy0+ZGVuc2UgJiYKKwkgICAgICAgIXJldnMtPnNpbXBsaWZ5X2hpc3RvcnkgJiYKKwkgICAgICAgIXJldnMtPmZpcnN0X3BhcmVudF9vbmx5OworfQorCiBzdGF0aWMgdm9pZCB0cnlfdG9fc2ltcGxpZnlfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQogewogCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwLCAqcGFyZW50OwotCWludCB0cmVlX2NoYW5nZWQgPSAwLCB0cmVlX3NhbWUgPSAwLCBudGhfcGFyZW50ID0gMDsKKwlzdHJ1Y3QgdHJlZXNhbWVfc3RhdGUgKnRzID0gTlVMTDsKKwlpbnQgcmVsZXZhbnRfY2hhbmdlID0gMCwgaXJyZWxldmFudF9jaGFuZ2UgPSAwOworCWludCByZWxldmFudF9wYXJlbnRzLCBudGhfcGFyZW50OwogCiAJLyoKIAkgKiBJZiB3ZSBkb24ndCBkbyBwcnVuaW5nLCBldmVyeXRoaW5nIGlzIGludGVyZXN0aW5nCkBAIC00NTYsMzMgKzY1Nyw1NCBAQAogCWlmICghcmV2cy0+ZGVuc2UgJiYgIWNvbW1pdC0+cGFyZW50cy0+bmV4dCkKIAkJcmV0dXJuOwogCi0JcHAgPSAmY29tbWl0LT5wYXJlbnRzOwotCXdoaWxlICgocGFyZW50ID0gKnBwKSAhPSBOVUxMKSB7CisJZm9yIChwcCA9ICZjb21taXQtPnBhcmVudHMsIG50aF9wYXJlbnQgPSAwLCByZWxldmFudF9wYXJlbnRzID0gMDsKKwkgICAgIChwYXJlbnQgPSAqcHApICE9IE5VTEw7CisJICAgICBwcCA9ICZwYXJlbnQtPm5leHQsIG50aF9wYXJlbnQrKykgewogCQlzdHJ1Y3QgY29tbWl0ICpwID0gcGFyZW50LT5pdGVtOworCQlpZiAocmVsZXZhbnRfY29tbWl0KHApKQorCQkJcmVsZXZhbnRfcGFyZW50cysrOwogCi0JCS8qCi0JCSAqIERvIG5vdCBjb21wYXJlIHdpdGggbGF0ZXIgcGFyZW50cyB3aGVuIHdlIGNhcmUgb25seSBhYm91dAotCQkgKiB0aGUgZmlyc3QgcGFyZW50IGNoYWluLCBpbiBvcmRlciB0byBhdm9pZCBkZXJhaWxpbmcgdGhlCi0JCSAqIHRyYXZlcnNhbCB0byBmb2xsb3cgYSBzaWRlIGJyYW5jaCB0aGF0IGJyb3VnaHQgZXZlcnl0aGluZwotCQkgKiBpbiB0aGUgcGF0aCB3ZSBhcmUgbGltaXRlZCB0byBieSB0aGUgcGF0aHNwZWMuCi0JCSAqLwotCQlpZiAocmV2cy0+Zmlyc3RfcGFyZW50X29ubHkgJiYgbnRoX3BhcmVudCsrKQotCQkJYnJlYWs7CisJCWlmIChudGhfcGFyZW50ID09IDEpIHsKKwkJCS8qCisJCQkgKiBUaGlzIG91ciBzZWNvbmQgbG9vcCBpdGVyYXRpb24gLSBzbyB3ZSBub3cga25vdworCQkJICogd2UncmUgZGVhbGluZyB3aXRoIGEgbWVyZ2UuCisJCQkgKgorCQkJICogRG8gbm90IGNvbXBhcmUgd2l0aCBsYXRlciBwYXJlbnRzIHdoZW4gd2UgY2FyZSBvbmx5IGFib3V0CisJCQkgKiB0aGUgZmlyc3QgcGFyZW50IGNoYWluLCBpbiBvcmRlciB0byBhdm9pZCBkZXJhaWxpbmcgdGhlCisJCQkgKiB0cmF2ZXJzYWwgdG8gZm9sbG93IGEgc2lkZSBicmFuY2ggdGhhdCBicm91Z2h0IGV2ZXJ5dGhpbmcKKwkJCSAqIGluIHRoZSBwYXRoIHdlIGFyZSBsaW1pdGVkIHRvIGJ5IHRoZSBwYXRoc3BlYy4KKwkJCSAqLworCQkJaWYgKHJldnMtPmZpcnN0X3BhcmVudF9vbmx5KQorCQkJCWJyZWFrOworCQkJLyoKKwkJCSAqIElmIHRoaXMgd2lsbCByZW1haW4gYSBwb3RlbnRpYWxseS1zaW1wbGlmaWFibGUKKwkJCSAqIG1lcmdlLCByZW1lbWJlciBwZXItcGFyZW50IHRyZWVzYW1lIGlmIG5lZWRlZC4KKwkJCSAqIEluaXRpYWxpc2UgdGhlIGFycmF5IHdpdGggdGhlIGNvbXBhcmlzb24gZnJvbSBvdXIKKwkJCSAqIGZpcnN0IGl0ZXJhdGlvbi4KKwkJCSAqLworCQkJaWYgKHJldnMtPnRyZWVzYW1lLm5hbWUgJiYKKwkJCSAgICAhcmV2cy0+c2ltcGxpZnlfaGlzdG9yeSAmJgorCQkJICAgICEoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSkgeworCQkJCXRzID0gaW5pdGlhbGlzZV90cmVlc2FtZShyZXZzLCBjb21taXQpOworCQkJCWlmICghKGlycmVsZXZhbnRfY2hhbmdlIHx8IHJlbGV2YW50X2NoYW5nZSkpCisJCQkJCXRzLT50cmVlc2FtZVswXSA9IDE7CisJCQl9CisJCX0KIAkJaWYgKHBhcnNlX2NvbW1pdChwKSA8IDApCiAJCQlkaWUoImNhbm5vdCBzaW1wbGlmeSBjb21taXQgJXMgKGJlY2F1c2Ugb2YgJXMpIiwKIAkJCSAgICBzaGExX3RvX2hleChjb21taXQtPm9iamVjdC5zaGExKSwKIAkJCSAgICBzaGExX3RvX2hleChwLT5vYmplY3Quc2hhMSkpOwogCQlzd2l0Y2ggKHJldl9jb21wYXJlX3RyZWUocmV2cywgcCwgY29tbWl0KSkgewogCQljYXNlIFJFVl9UUkVFX1NBTUU6Ci0JCQl0cmVlX3NhbWUgPSAxOwotCQkJaWYgKCFyZXZzLT5zaW1wbGlmeV9oaXN0b3J5IHx8IChwLT5vYmplY3QuZmxhZ3MgJiBVTklOVEVSRVNUSU5HKSkgeworCQkJaWYgKCFyZXZzLT5zaW1wbGlmeV9oaXN0b3J5IHx8ICFyZWxldmFudF9jb21taXQocCkpIHsKIAkJCQkvKiBFdmVuIGlmIGEgbWVyZ2Ugd2l0aCBhbiB1bmludGVyZXN0aW5nCiAJCQkJICogc2lkZSBicmFuY2ggYnJvdWdodCB0aGUgZW50aXJlIGNoYW5nZQogCQkJCSAqIHdlIGFyZSBpbnRlcmVzdGVkIGluLCB3ZSBkbyBub3Qgd2FudAogCQkJCSAqIHRvIGxvc2UgdGhlIG90aGVyIGJyYW5jaGVzIG9mIHRoaXMKIAkJCQkgKiBtZXJnZSwgc28gd2UganVzdCBrZWVwIGdvaW5nLgogCQkJCSAqLwotCQkJCXBwID0gJnBhcmVudC0+bmV4dDsKKwkJCQlpZiAodHMpCisJCQkJCXRzLT50cmVlc2FtZVtudGhfcGFyZW50XSA9IDE7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlwYXJlbnQtPm5leHQgPSBOVUxMOwpAQCAtNTEwLDE1ICs3MzIsMjcgQEAKIAkJLyogZmFsbHRocm91Z2ggKi8KIAkJY2FzZSBSRVZfVFJFRV9PTEQ6CiAJCWNhc2UgUkVWX1RSRUVfRElGRkVSRU5UOgotCQkJdHJlZV9jaGFuZ2VkID0gMTsKLQkJCXBwID0gJnBhcmVudC0+bmV4dDsKKwkJCWlmIChyZWxldmFudF9jb21taXQocCkpCisJCQkJcmVsZXZhbnRfY2hhbmdlID0gMTsKKwkJCWVsc2UKKwkJCQlpcnJlbGV2YW50X2NoYW5nZSA9IDE7CiAJCQljb250aW51ZTsKIAkJfQogCQlkaWUoImJhZCB0cmVlIGNvbXBhcmUgZm9yIGNvbW1pdCAlcyIsIHNoYTFfdG9faGV4KGNvbW1pdC0+b2JqZWN0LnNoYTEpKTsKIAl9Ci0JaWYgKHRyZWVfY2hhbmdlZCAmJiAhdHJlZV9zYW1lKQotCQlyZXR1cm47Ci0JY29tbWl0LT5vYmplY3QuZmxhZ3MgfD0gVFJFRVNBTUU7CisKKwkvKgorCSAqIFRSRUVTQU1FIGlzIHN0cmFpZ2h0Zm9yd2FyZCBmb3Igc2luZ2xlLXBhcmVudCBjb21taXRzLiBGb3IgbWVyZ2UKKwkgKiBjb21taXRzLCBpdCBpcyBtb3N0IHVzZWZ1bCB0byBkZWZpbmUgaXQgc28gdGhhdCAiaXJyZWxldmFudCIKKwkgKiBwYXJlbnRzIGNhbm5vdCBtYWtlIHVzICFUUkVFU0FNRSAtIGlmIHdlIGhhdmUgYW55IHJlbGV2YW50CisJICogcGFyZW50cywgdGhlbiB3ZSBvbmx5IGNvbnNpZGVyIFRSRUVTQU1FbmVzcyB3aXRoIHJlc3BlY3QgdG8gdGhlbSwKKwkgKiBhbGxvd2luZyBpcnJlbGV2YW50IG1lcmdlcyBmcm9tIHVuaW50ZXJlc3RpbmcgYnJhbmNoZXMgdG8gYmUKKwkgKiBzaW1wbGlmaWVkIGF3YXkuIE9ubHkgaWYgd2UgaGF2ZSBvbmx5IGlycmVsZXZhbnQgcGFyZW50cyBkbyB3ZQorCSAqIGJhc2UgVFJFRVNBTUUgb24gdGhlbS4gTm90ZSB0aGF0IHRoaXMgbG9naWMgaXMgcmVwbGljYXRlZCBpbgorCSAqIHVwZGF0ZV90cmVlc2FtZSwgd2hpY2ggc2hvdWxkIGJlIGtlcHQgaW4gc3luYy4KKwkgKi8KKwlpZiAocmVsZXZhbnRfcGFyZW50cyA/ICFyZWxldmFudF9jaGFuZ2UgOiAhaXJyZWxldmFudF9jaGFuZ2UpCisJCWNvbW1pdC0+b2JqZWN0LmZsYWdzIHw9IFRSRUVTQU1FOwogfQogCiBzdGF0aWMgdm9pZCBjb21taXRfbGlzdF9pbnNlcnRfYnlfZGF0ZV9jYWNoZWQoc3RydWN0IGNvbW1pdCAqcCwgc3RydWN0IGNvbW1pdF9saXN0ICoqaGVhZCwKQEAgLTgwMSwxNiArMTAzNSwxMiBAQAogICogdG8gZmlsdGVyIHRoZSByZXN1bHQgb2YgIkEuLkIiIGZ1cnRoZXIgdG8gdGhlIG9uZXMgdGhhdCBjYW4gYWN0dWFsbHkKICAqIHJlYWNoIEEuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgY29tbWl0X2xpc3QgKmNvbGxlY3RfYm90dG9tX2NvbW1pdHMoc3RydWN0IHJldl9pbmZvICpyZXZzKQorc3RhdGljIHN0cnVjdCBjb21taXRfbGlzdCAqY29sbGVjdF9ib3R0b21fY29tbWl0cyhzdHJ1Y3QgY29tbWl0X2xpc3QgKmxpc3QpCiB7Ci0Jc3RydWN0IGNvbW1pdF9saXN0ICpib3R0b20gPSBOVUxMOwotCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCByZXZzLT5jbWRsaW5lLm5yOyBpKyspIHsKLQkJc3RydWN0IHJldl9jbWRsaW5lX2VudHJ5ICplbGVtID0gJnJldnMtPmNtZGxpbmUucmV2W2ldOwotCQlpZiAoKGVsZW0tPmZsYWdzICYgVU5JTlRFUkVTVElORykgJiYKLQkJICAgIGVsZW0tPml0ZW0tPnR5cGUgPT0gT0JKX0NPTU1JVCkKLQkJCWNvbW1pdF9saXN0X2luc2VydCgoc3RydWN0IGNvbW1pdCAqKWVsZW0tPml0ZW0sICZib3R0b20pOwotCX0KKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKmVsZW0sICpib3R0b20gPSBOVUxMOworCWZvciAoZWxlbSA9IGxpc3Q7IGVsZW07IGVsZW0gPSBlbGVtLT5uZXh0KQorCQlpZiAoZWxlbS0+aXRlbS0+b2JqZWN0LmZsYWdzICYgQk9UVE9NKQorCQkJY29tbWl0X2xpc3RfaW5zZXJ0KGVsZW0tPml0ZW0sICZib3R0b20pOwogCXJldHVybiBib3R0b207CiB9CiAKQEAgLTg0MSw3ICsxMDcxLDcgQEAKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKmJvdHRvbSA9IE5VTEw7CiAKIAlpZiAocmV2cy0+YW5jZXN0cnlfcGF0aCkgewotCQlib3R0b20gPSBjb2xsZWN0X2JvdHRvbV9jb21taXRzKHJldnMpOworCQlib3R0b20gPSBjb2xsZWN0X2JvdHRvbV9jb21taXRzKGxpc3QpOwogCQlpZiAoIWJvdHRvbSkKIAkJCWRpZSgiLS1hbmNlc3RyeS1wYXRoIGdpdmVuIGJ1dCB0aGVyZSBhcmUgbm8gYm90dG9tIGNvbW1pdHMiKTsKIAl9CkBAIC04OTQsMTAgKzExMjQsMjYgQEAKIAkJZnJlZV9jb21taXRfbGlzdChib3R0b20pOwogCX0KIAorCS8qCisJICogQ2hlY2sgaWYgYW55IGNvbW1pdHMgaGF2ZSBiZWNvbWUgVFJFRVNBTUUgYnkgc29tZSBvZiB0aGVpciBwYXJlbnRzCisJICogYmVjb21pbmcgVU5JTlRFUkVTVElORy4KKwkgKi8KKwlpZiAobGltaXRpbmdfY2FuX2luY3JlYXNlX3RyZWVzYW1lKHJldnMpKQorCQlmb3IgKGxpc3QgPSBuZXdsaXN0OyBsaXN0OyBsaXN0ID0gbGlzdC0+bmV4dCkgeworCQkJc3RydWN0IGNvbW1pdCAqYyA9IGxpc3QtPml0ZW07CisJCQlpZiAoYy0+b2JqZWN0LmZsYWdzICYgKFVOSU5URVJFU1RJTkcgfCBUUkVFU0FNRSkpCisJCQkJY29udGludWU7CisJCQl1cGRhdGVfdHJlZXNhbWUocmV2cywgYyk7CisJCX0KKwogCXJldnMtPmNvbW1pdHMgPSBuZXdsaXN0OwogCXJldHVybiAwOwogfQogCisvKgorICogQWRkIGFuIGVudHJ5IHRvIHJlZnMtPmNtZGxpbmUgd2l0aCB0aGUgc3BlY2lmaWVkIGluZm9ybWF0aW9uLgorICogKm5hbWUgaXMgY29waWVkLgorICovCiBzdGF0aWMgdm9pZCBhZGRfcmV2X2NtZGxpbmUoc3RydWN0IHJldl9pbmZvICpyZXZzLAogCQkJICAgIHN0cnVjdCBvYmplY3QgKml0ZW0sCiAJCQkgICAgY29uc3QgY2hhciAqbmFtZSwKQEAgLTkwOSwxMiArMTE1NSwyNSBAQAogCiAJQUxMT0NfR1JPVyhpbmZvLT5yZXYsIG5yICsgMSwgaW5mby0+YWxsb2MpOwogCWluZm8tPnJldltucl0uaXRlbSA9IGl0ZW07Ci0JaW5mby0+cmV2W25yXS5uYW1lID0gbmFtZTsKKwlpbmZvLT5yZXZbbnJdLm5hbWUgPSB4c3RyZHVwKG5hbWUpOwogCWluZm8tPnJldltucl0ud2hlbmNlID0gd2hlbmNlOwogCWluZm8tPnJldltucl0uZmxhZ3MgPSBmbGFnczsKIAlpbmZvLT5ucisrOwogfQogCitzdGF0aWMgdm9pZCBhZGRfcmV2X2NtZGxpbmVfbGlzdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkJIHN0cnVjdCBjb21taXRfbGlzdCAqY29tbWl0X2xpc3QsCisJCQkJIGludCB3aGVuY2UsCisJCQkJIHVuc2lnbmVkIGZsYWdzKQoreworCXdoaWxlIChjb21taXRfbGlzdCkgeworCQlzdHJ1Y3Qgb2JqZWN0ICpvYmplY3QgPSAmY29tbWl0X2xpc3QtPml0ZW0tPm9iamVjdDsKKwkJYWRkX3Jldl9jbWRsaW5lKHJldnMsIG9iamVjdCwgc2hhMV90b19oZXgob2JqZWN0LT5zaGExKSwKKwkJCQl3aGVuY2UsIGZsYWdzKTsKKwkJY29tbWl0X2xpc3QgPSBjb21taXRfbGlzdC0+bmV4dDsKKwl9Cit9CisKIHN0cnVjdCBhbGxfcmVmc19jYiB7CiAJaW50IGFsbF9mbGFnczsKIAlpbnQgd2FybmVkX2JhZF9yZWZsb2c7CkBAIC0xMDAwLDcgKzEyNTksNyBAQAogCWNvbnN0IGNoYXIgKmFyZyA9IGFyZ187CiAKIAlpZiAoKmFyZyA9PSAnXicpIHsKLQkJZmxhZ3MgXj0gVU5JTlRFUkVTVElORzsKKwkJZmxhZ3MgXj0gVU5JTlRFUkVTVElORyB8IEJPVFRPTTsKIAkJYXJnKys7CiAJfQogCWlmIChnZXRfc2hhMV9jb21taXR0aXNoKGFyZywgc2hhMSkpCkBAIC0xMDM4LDcgKzEyOTcsNyBAQAogCURJRkZfT1BUX1NFVCgmcmV2cy0+cHJ1bmluZywgUVVJQ0spOwogCXJldnMtPnBydW5pbmcuYWRkX3JlbW92ZSA9IGZpbGVfYWRkX3JlbW92ZTsKIAlyZXZzLT5wcnVuaW5nLmNoYW5nZSA9IGZpbGVfY2hhbmdlOwotCXJldnMtPmxpZm8gPSAxOworCXJldnMtPnNvcnRfb3JkZXIgPSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUjsKIAlyZXZzLT5kZW5zZSA9IDE7CiAJcmV2cy0+cHJlZml4ID0gcHJlZml4OwogCXJldnMtPm1heF9hZ2UgPSAtMTsKQEAgLTEwOTIsMTQgKzEzNTEsMTUgQEAKIAlhZGRfcGVuZGluZ19vYmplY3QocmV2cywgJmhlYWQtPm9iamVjdCwgIkhFQUQiKTsKIAlhZGRfcGVuZGluZ19vYmplY3QocmV2cywgJm90aGVyLT5vYmplY3QsICJNRVJHRV9IRUFEIik7CiAJYmFzZXMgPSBnZXRfbWVyZ2VfYmFzZXMoaGVhZCwgb3RoZXIsIDEpOwotCWFkZF9wZW5kaW5nX2NvbW1pdF9saXN0KHJldnMsIGJhc2VzLCBVTklOVEVSRVNUSU5HKTsKKwlhZGRfcmV2X2NtZGxpbmVfbGlzdChyZXZzLCBiYXNlcywgUkVWX0NNRF9NRVJHRV9CQVNFLCBVTklOVEVSRVNUSU5HIHwgQk9UVE9NKTsKKwlhZGRfcGVuZGluZ19jb21taXRfbGlzdChyZXZzLCBiYXNlcywgVU5JTlRFUkVTVElORyB8IEJPVFRPTSk7CiAJZnJlZV9jb21taXRfbGlzdChiYXNlcyk7CiAJaGVhZC0+b2JqZWN0LmZsYWdzIHw9IFNZTU1FVFJJQ19MRUZUOwogCiAJaWYgKCFhY3RpdmVfbnIpCiAJCXJlYWRfY2FjaGUoKTsKIAlmb3IgKGkgPSAwOyBpIDwgYWN0aXZlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAkJaWYgKCFjZV9zdGFnZShjZSkpCiAJCQljb250aW51ZTsKIAkJaWYgKGNlX3BhdGhfbWF0Y2goY2UsICZyZXZzLT5wcnVuZV9kYXRhKSkgewpAQCAtMTEyOCwxMyArMTM4OCwxNSBAQAogCWludCBjYW50X2JlX2ZpbGVuYW1lID0gcmV2YXJnX29wdCAmIFJFVkFSR19DQU5OT1RfQkVfRklMRU5BTUU7CiAJdW5zaWduZWQgZ2V0X3NoYTFfZmxhZ3MgPSAwOwogCisJZmxhZ3MgPSBmbGFncyAmIFVOSU5URVJFU1RJTkcgPyBmbGFncyB8IEJPVFRPTSA6IGZsYWdzICYgfkJPVFRPTTsKKwogCWRvdGRvdCA9IHN0cnN0cihhcmcsICIuLiIpOwogCWlmIChkb3Rkb3QpIHsKIAkJdW5zaWduZWQgY2hhciBmcm9tX3NoYTFbMjBdOwogCQljb25zdCBjaGFyICpuZXh0ID0gZG90ZG90ICsgMjsKIAkJY29uc3QgY2hhciAqdGhpcyA9IGFyZzsKIAkJaW50IHN5bW1ldHJpYyA9ICpuZXh0ID09ICcuJzsKLQkJdW5zaWduZWQgaW50IGZsYWdzX2V4Y2x1ZGUgPSBmbGFncyBeIFVOSU5URVJFU1RJTkc7CisJCXVuc2lnbmVkIGludCBmbGFnc19leGNsdWRlID0gZmxhZ3MgXiAoVU5JTlRFUkVTVElORyB8IEJPVFRPTSk7CiAJCXN0YXRpYyBjb25zdCBjaGFyIGhlYWRfYnlfZGVmYXVsdFtdID0gIkhFQUQiOwogCQl1bnNpZ25lZCBpbnQgYV9mbGFnczsKIApAQCAtMTE3OSw2ICsxNDQxLDkgQEAKIAogCQkJaWYgKHN5bW1ldHJpYykgewogCQkJCWV4Y2x1ZGUgPSBnZXRfbWVyZ2VfYmFzZXMoYSwgYiwgMSk7CisJCQkJYWRkX3Jldl9jbWRsaW5lX2xpc3QocmV2cywgZXhjbHVkZSwKKwkJCQkJCSAgICAgUkVWX0NNRF9NRVJHRV9CQVNFLAorCQkJCQkJICAgICBmbGFnc19leGNsdWRlKTsKIAkJCQlhZGRfcGVuZGluZ19jb21taXRfbGlzdChyZXZzLCBleGNsdWRlLAogCQkJCQkJCWZsYWdzX2V4Y2x1ZGUpOwogCQkJCWZyZWVfY29tbWl0X2xpc3QoZXhjbHVkZSk7CkBAIC0xMjA3LDEzICsxNDcyLDEzIEBACiAJZG90ZG90ID0gc3Ryc3RyKGFyZywgIl4hIik7CiAJaWYgKGRvdGRvdCAmJiAhZG90ZG90WzJdKSB7CiAJCSpkb3Rkb3QgPSAwOwotCQlpZiAoIWFkZF9wYXJlbnRzX29ubHkocmV2cywgYXJnLCBmbGFncyBeIFVOSU5URVJFU1RJTkcpKQorCQlpZiAoIWFkZF9wYXJlbnRzX29ubHkocmV2cywgYXJnLCBmbGFncyBeIChVTklOVEVSRVNUSU5HIHwgQk9UVE9NKSkpCiAJCQkqZG90ZG90ID0gJ14nOwogCX0KIAogCWxvY2FsX2ZsYWdzID0gMDsKIAlpZiAoKmFyZyA9PSAnXicpIHsKLQkJbG9jYWxfZmxhZ3MgPSBVTklOVEVSRVNUSU5HOworCQlsb2NhbF9mbGFncyA9IFVOSU5URVJFU1RJTkcgfCBCT1RUT007CiAJCWFyZysrOwogCX0KIApAQCAtMTI3Niw3ICsxNTQxLDcgQEAKIAkJCX0KIAkJCWRpZSgib3B0aW9ucyBub3Qgc3VwcG9ydGVkIGluIC0tc3RkaW4gbW9kZSIpOwogCQl9Ci0JCWlmIChoYW5kbGVfcmV2aXNpb25fYXJnKHhzdHJkdXAoc2IuYnVmKSwgcmV2cywgMCwKKwkJaWYgKGhhbmRsZV9yZXZpc2lvbl9hcmcoc2IuYnVmLCByZXZzLCAwLAogCQkJCQlSRVZBUkdfQ0FOTk9UX0JFX0ZJTEVOQU1FKSkKIAkJCWRpZSgiYmFkIHJldmlzaW9uICclcyciLCBzYi5idWYpOwogCX0KQEAgLTEzNzQsNyArMTYzOSw3IEBACiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tbWVyZ2UiKSkgewogCQlyZXZzLT5zaG93X21lcmdlID0gMTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS10b3BvLW9yZGVyIikpIHsKLQkJcmV2cy0+bGlmbyA9IDE7CisJCXJldnMtPnNvcnRfb3JkZXIgPSBSRVZfU09SVF9JTl9HUkFQSF9PUkRFUjsKIAkJcmV2cy0+dG9wb19vcmRlciA9IDE7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tc2ltcGxpZnktbWVyZ2VzIikpIHsKIAkJcmV2cy0+c2ltcGxpZnlfbWVyZ2VzID0gMTsKQEAgLTEzOTIsNyArMTY1NywxMCBAQAogCQlyZXZzLT5wcnVuZSA9IDE7CiAJCWxvYWRfcmVmX2RlY29yYXRpb25zKERFQ09SQVRFX1NIT1JUX1JFRlMpOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLWRhdGUtb3JkZXIiKSkgewotCQlyZXZzLT5saWZvID0gMDsKKwkJcmV2cy0+c29ydF9vcmRlciA9IFJFVl9TT1JUX0JZX0NPTU1JVF9EQVRFOworCQlyZXZzLT50b3BvX29yZGVyID0gMTsKKwl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1hdXRob3ItZGF0ZS1vcmRlciIpKSB7CisJCXJldnMtPnNvcnRfb3JkZXIgPSBSRVZfU09SVF9CWV9BVVRIT1JfREFURTsKIAkJcmV2cy0+dG9wb19vcmRlciA9IDE7CiAJfSBlbHNlIGlmICghcHJlZml4Y21wKGFyZywgIi0tZWFybHktb3V0cHV0IikpIHsKIAkJaW50IGNvdW50ID0gMTAwOwpAQCAtMTY5MCw3ICsxOTU4LDcgQEAKIAkJaGFuZGxlX3JlZnMoc3VibW9kdWxlLCByZXZzLCAqZmxhZ3MsIGZvcl9lYWNoX2JyYW5jaF9yZWZfc3VibW9kdWxlKTsKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1iaXNlY3QiKSkgewogCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncywgZm9yX2VhY2hfYmFkX2Jpc2VjdF9yZWYpOwotCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncyBeIFVOSU5URVJFU1RJTkcsIGZvcl9lYWNoX2dvb2RfYmlzZWN0X3JlZik7CisJCWhhbmRsZV9yZWZzKHN1Ym1vZHVsZSwgcmV2cywgKmZsYWdzIF4gKFVOSU5URVJFU1RJTkcgfCBCT1RUT00pLCBmb3JfZWFjaF9nb29kX2Jpc2VjdF9yZWYpOwogCQlyZXZzLT5iaXNlY3QgPSAxOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLXRhZ3MiKSkgewogCQloYW5kbGVfcmVmcyhzdWJtb2R1bGUsIHJldnMsICpmbGFncywgZm9yX2VhY2hfdGFnX3JlZl9zdWJtb2R1bGUpOwpAQCAtMTcxNiw3ICsxOTg0LDcgQEAKIAl9IGVsc2UgaWYgKCFzdHJjbXAoYXJnLCAiLS1yZWZsb2ciKSkgewogCQloYW5kbGVfcmVmbG9nKHJldnMsICpmbGFncyk7CiAJfSBlbHNlIGlmICghc3RyY21wKGFyZywgIi0tbm90IikpIHsKLQkJKmZsYWdzIF49IFVOSU5URVJFU1RJTkc7CisJCSpmbGFncyBePSBVTklOVEVSRVNUSU5HIHwgQk9UVE9NOwogCX0gZWxzZSBpZiAoIXN0cmNtcChhcmcsICItLW5vLXdhbGsiKSkgewogCQlyZXZzLT5ub193YWxrID0gUkVWSVNJT05fV0FMS19OT19XQUxLX1NPUlRFRDsKIAl9IGVsc2UgaWYgKCFwcmVmaXhjbXAoYXJnLCAiLS1uby13YWxrPSIpKSB7CkBAIC0xODk3LDYgKzIxNjUsMTIgQEAKIAlpZiAocmV2cy0+Y29tYmluZV9tZXJnZXMpCiAJCXJldnMtPmlnbm9yZV9tZXJnZXMgPSAwOwogCXJldnMtPmRpZmZvcHQuYWJicmV2ID0gcmV2cy0+YWJicmV2OworCisJaWYgKHJldnMtPmxpbmVfbGV2ZWxfdHJhdmVyc2UpIHsKKwkJcmV2cy0+bGltaXRlZCA9IDE7CisJCXJldnMtPnRvcG9fb3JkZXIgPSAxOworCX0KKwogCWRpZmZfc2V0dXBfZG9uZSgmcmV2cy0+ZGlmZm9wdCk7CiAKIAlncmVwX2NvbW1pdF9wYXR0ZXJuX3R5cGUoR1JFUF9QQVRURVJOX1RZUEVfVU5TUEVDSUZJRUQsCkBAIC0xOTMwLDI4ICsyMjA0LDMyIEBACiAJbC0+bmV4dCA9IGFkZF9kZWNvcmF0aW9uKCZyZXZzLT5jaGlsZHJlbiwgJnBhcmVudC0+b2JqZWN0LCBsKTsKIH0KIAotc3RhdGljIGludCByZW1vdmVfZHVwbGljYXRlX3BhcmVudHMoc3RydWN0IGNvbW1pdCAqY29tbWl0KQorc3RhdGljIGludCByZW1vdmVfZHVwbGljYXRlX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCiB7CisJc3RydWN0IHRyZWVzYW1lX3N0YXRlICp0cyA9IGxvb2t1cF9kZWNvcmF0aW9uKCZyZXZzLT50cmVlc2FtZSwgJmNvbW1pdC0+b2JqZWN0KTsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKipwcCwgKnA7CiAJaW50IHN1cnZpdmluZ19wYXJlbnRzOwogCiAJLyogRXhhbWluZSBleGlzdGluZyBwYXJlbnRzIHdoaWxlIG1hcmtpbmcgb25lcyB3ZSBoYXZlIHNlZW4uLi4gKi8KIAlwcCA9ICZjb21taXQtPnBhcmVudHM7CisJc3Vydml2aW5nX3BhcmVudHMgPSAwOwogCXdoaWxlICgocCA9ICpwcCkgIT0gTlVMTCkgewogCQlzdHJ1Y3QgY29tbWl0ICpwYXJlbnQgPSBwLT5pdGVtOwogCQlpZiAocGFyZW50LT5vYmplY3QuZmxhZ3MgJiBUTVBfTUFSSykgewogCQkJKnBwID0gcC0+bmV4dDsKKwkJCWlmICh0cykKKwkJCQljb21wYWN0X3RyZWVzYW1lKHJldnMsIGNvbW1pdCwgc3Vydml2aW5nX3BhcmVudHMpOwogCQkJY29udGludWU7CiAJCX0KIAkJcGFyZW50LT5vYmplY3QuZmxhZ3MgfD0gVE1QX01BUks7CisJCXN1cnZpdmluZ19wYXJlbnRzKys7CiAJCXBwID0gJnAtPm5leHQ7CiAJfQotCS8qIGNvdW50IHRoZW0gd2hpbGUgY2xlYXJpbmcgdGhlIHRlbXBvcmFyeSBtYXJrICovCi0Jc3Vydml2aW5nX3BhcmVudHMgPSAwOworCS8qIGNsZWFyIHRoZSB0ZW1wb3JhcnkgbWFyayAqLwogCWZvciAocCA9IGNvbW1pdC0+cGFyZW50czsgcDsgcCA9IHAtPm5leHQpIHsKIAkJcC0+aXRlbS0+b2JqZWN0LmZsYWdzICY9IH5UTVBfTUFSSzsKLQkJc3Vydml2aW5nX3BhcmVudHMrKzsKIAl9CisJLyogbm8gdXBkYXRlX3RyZWVzYW1lKCkgLSByZW1vdmluZyBkdXBsaWNhdGVzIGNhbid0IGFmZmVjdCBUUkVFU0FNRSAqLwogCXJldHVybiBzdXJ2aXZpbmdfcGFyZW50czsKIH0KIApAQCAtMTk3MSw5ICsyMjQ5LDE1NyBAQAogCXJldHVybiBzdDsKIH0KIAorc3RhdGljIGludCBtYXJrX3JlZHVuZGFudF9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXN0cnVjdCBjb21taXRfbGlzdCAqaCA9IHJlZHVjZV9oZWFkcyhjb21taXQtPnBhcmVudHMpOworCWludCBpID0gMCwgbWFya2VkID0gMDsKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnBvLCAqcG47CisKKwkvKiBXYW50IHRoZXNlIGZvciBzYW5pdHktY2hlY2tpbmcgb25seSAqLworCWludCBvcmlnX2NudCA9IGNvbW1pdF9saXN0X2NvdW50KGNvbW1pdC0+cGFyZW50cyk7CisJaW50IGNudCA9IGNvbW1pdF9saXN0X2NvdW50KGgpOworCisJLyoKKwkgKiBOb3QgcmVhZHkgdG8gcmVtb3ZlIGl0ZW1zIHlldCwganVzdCBtYXJrIHRoZW0gZm9yIG5vdywgYmFzZWQKKwkgKiBvbiB0aGUgb3V0cHV0IG9mIHJlZHVjZV9oZWFkcygpLiByZWR1Y2VfaGVhZHMgb3V0cHV0cyB0aGUgcmVkdWNlZAorCSAqIHNldCBpbiBpdHMgb3JpZ2luYWwgb3JkZXIsIHNvIHRoaXMgaXNuJ3QgdG9vIGhhcmQuCisJICovCisJcG8gPSBjb21taXQtPnBhcmVudHM7CisJcG4gPSBoOworCXdoaWxlIChwbykgeworCQlpZiAocG4gJiYgcG8tPml0ZW0gPT0gcG4tPml0ZW0pIHsKKwkJCXBuID0gcG4tPm5leHQ7CisJCQlpKys7CisJCX0gZWxzZSB7CisJCQlwby0+aXRlbS0+b2JqZWN0LmZsYWdzIHw9IFRNUF9NQVJLOworCQkJbWFya2VkKys7CisJCX0KKwkJcG89cG8tPm5leHQ7CisJfQorCisJaWYgKGkgIT0gY250IHx8IGNudCttYXJrZWQgIT0gb3JpZ19jbnQpCisJCWRpZSgibWFya19yZWR1bmRhbnRfcGFyZW50cyAlZCAlZCAlZCAlZCIsIG9yaWdfY250LCBjbnQsIGksIG1hcmtlZCk7CisKKwlmcmVlX2NvbW1pdF9saXN0KGgpOworCisJcmV0dXJuIG1hcmtlZDsKK30KKworc3RhdGljIGludCBtYXJrX3RyZWVzYW1lX3Jvb3RfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCkKK3sKKwlzdHJ1Y3QgY29tbWl0X2xpc3QgKnA7CisJaW50IG1hcmtlZCA9IDA7CisKKwlmb3IgKHAgPSBjb21taXQtPnBhcmVudHM7IHA7IHAgPSBwLT5uZXh0KSB7CisJCXN0cnVjdCBjb21taXQgKnBhcmVudCA9IHAtPml0ZW07CisJCWlmICghcGFyZW50LT5wYXJlbnRzICYmIChwYXJlbnQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKSkgeworCQkJcGFyZW50LT5vYmplY3QuZmxhZ3MgfD0gVE1QX01BUks7CisJCQltYXJrZWQrKzsKKwkJfQorCX0KKworCXJldHVybiBtYXJrZWQ7Cit9CisKKy8qCisgKiBBd2t3YXJkIG5hbWluZyAtIHRoaXMgbWVhbnMgb25lIHBhcmVudCB3ZSBhcmUgVFJFRVNBTUUgdG8uCisgKiBjZiBtYXJrX3RyZWVzYW1lX3Jvb3RfcGFyZW50czogcm9vdCBwYXJlbnRzIHRoYXQgYXJlIFRSRUVTQU1FICh0byBhbgorICogZW1wdHkgdHJlZSkuIEJldHRlciBuYW1lIHN1Z2dlc3Rpb25zPworICovCitzdGF0aWMgaW50IGxlYXZlX29uZV90cmVlc2FtZV90b19wYXJlbnQoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJc3RydWN0IHRyZWVzYW1lX3N0YXRlICp0cyA9IGxvb2t1cF9kZWNvcmF0aW9uKCZyZXZzLT50cmVlc2FtZSwgJmNvbW1pdC0+b2JqZWN0KTsKKwlzdHJ1Y3QgY29tbWl0ICp1bm1hcmtlZCA9IE5VTEwsICptYXJrZWQgPSBOVUxMOworCXN0cnVjdCBjb21taXRfbGlzdCAqcDsKKwl1bnNpZ25lZCBuOworCisJZm9yIChwID0gY29tbWl0LT5wYXJlbnRzLCBuID0gMDsgcDsgcCA9IHAtPm5leHQsIG4rKykgeworCQlpZiAodHMtPnRyZWVzYW1lW25dKSB7CisJCQlpZiAocC0+aXRlbS0+b2JqZWN0LmZsYWdzICYgVE1QX01BUkspIHsKKwkJCQlpZiAoIW1hcmtlZCkKKwkJCQkJbWFya2VkID0gcC0+aXRlbTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKCF1bm1hcmtlZCkgeworCQkJCQl1bm1hcmtlZCA9IHAtPml0ZW07CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCS8qCisJICogSWYgd2UgYXJlIFRSRUVTQU1FIHRvIGEgbWFya2VkLWZvci1kZWxldGlvbiBwYXJlbnQsIGJ1dCBub3QgdG8gYW55CisJICogdW5tYXJrZWQgcGFyZW50cywgdW5tYXJrIHRoZSBmaXJzdCBUUkVFU0FNRSBwYXJlbnQuIFRoaXMgaXMgdGhlCisJICogcGFyZW50IHRoYXQgdGhlIGRlZmF1bHQgc2ltcGxpZnlfaGlzdG9yeT09MSBzY2FuIHdvdWxkIGhhdmUgZm9sbG93ZWQsCisJICogYW5kIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBvbWl0IHRoYXQgcGF0aCB3aGVuIGFza2luZyBmb3IgYQorCSAqIHNpbXBsaWZpZWQgZnVsbCBoaXN0b3J5LiBSZXRhaW5pbmcgaXQgaW1wcm92ZXMgdGhlIGNoYW5jZXMgb2YKKwkgKiB1bmRlcnN0YW5kaW5nIG9kZCBtaXNzZWQgbWVyZ2VzIHRoYXQgdG9vayBhbiBvbGQgdmVyc2lvbiBvZiBhIGZpbGUuCisJICoKKwkgKiBFeGFtcGxlOgorCSAqCisJICogICBJLS0tLS0tLS0qWCAgICAgICBBIG1vZGlmaWVkIHRoZSBmaWxlLCBidXQgbWFpbmxpbmUgbWVyZ2UgWCB1c2VkCisJICogICAgXCAgICAgICAvICAgICAgICAiLXMgb3VycyIsIHNvIHRvb2sgdGhlIHZlcnNpb24gZnJvbSBJLiBYIGlzCisJICogICAgIGAtKkEtLScgICAgICAgICBUUkVFU0FNRSB0byBJIGFuZCAhVFJFRVNBTUUgdG8gQS4KKwkgKgorCSAqIERlZmF1bHQgbG9nIGZyb20gWCB3b3VsZCBwcm9kdWNlICJJIi4gV2l0aG91dCB0aGlzIGNoZWNrLAorCSAqIC0tZnVsbC1oaXN0b3J5IC0tc2ltcGxpZnktbWVyZ2VzIHdvdWxkIHByb2R1Y2UgIkktQS1YIiwgc2hvd2luZworCSAqIHRoZSBtZXJnZSBjb21taXQgWCBhbmQgdGhhdCBpdCBjaGFuZ2VkIEEsIGJ1dCBub3QgbWFraW5nIGNsZWFyIHRoYXQKKwkgKiBpdCBoYWQganVzdCB0YWtlbiB0aGUgSSB2ZXJzaW9uLiBXaXRoIHRoaXMgY2hlY2ssIHRoZSB0b3BvbG9neSBhYm92ZQorCSAqIGlzIHJldGFpbmVkLgorCSAqCisJICogTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHNpbXBsaWZpY2F0aW9uIGNob29zZXMgYSBkaWZmZXJlbnQKKwkgKiBUUkVFU0FNRSBwYXJlbnQgZnJvbSB0aGUgZGVmYXVsdCwgaW4gd2hpY2ggY2FzZSB0aGlzIHRlc3QgZG9lc24ndAorCSAqIGFjdGl2YXRlLCBhbmQgd2UgX2RvXyBkcm9wIHRoZSBkZWZhdWx0IHBhcmVudC4gRXhhbXBsZToKKwkgKgorCSAqICAgSS0tLS0tLVggICAgICAgICBBIG1vZGlmaWVkIHRoZSBmaWxlLCBidXQgaXQgd2FzIHJldmVydGVkIGluIEIsCisJICogICAgXCAgICAvICAgICAgICAgIG1lYW5pbmcgbWFpbmxpbmUgbWVyZ2UgWCBpcyBUUkVFU0FNRSB0byBib3RoCisJICogICAgKkEtKkIgICAgICAgICAgIHBhcmVudHMuCisJICoKKwkgKiBEZWZhdWx0IGxvZyB3b3VsZCBwcm9kdWNlICJJIiBieSBmb2xsb3dpbmcgdGhlIGZpcnN0IHBhcmVudDsKKwkgKiAtLWZ1bGwtaGlzdG9yeSAtLXNpbXBsaWZ5LW1lcmdlcyB3aWxsIHByb2R1Y2UgIkktQS1CIi4gQnV0IHRoaXMgaXMgYQorCSAqIHJlYXNvbmFibGUgcmVzdWx0IC0gaXQgcHJlc2VudHMgYSBsb2dpY2FsIGZ1bGwgaGlzdG9yeSBsZWFkaW5nIGZyb20KKwkgKiBJIHRvIFgsIGFuZCBYIGlzIG5vdCBhbiBpbXBvcnRhbnQgbWVyZ2UuCisJICovCisJaWYgKCF1bm1hcmtlZCAmJiBtYXJrZWQpIHsKKwkJbWFya2VkLT5vYmplY3QuZmxhZ3MgJj0gflRNUF9NQVJLOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByZW1vdmVfbWFya2VkX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJc3RydWN0IGNvbW1pdF9saXN0ICoqcHAsICpwOworCWludCBudGhfcGFyZW50LCByZW1vdmVkID0gMDsKKworCXBwID0gJmNvbW1pdC0+cGFyZW50czsKKwludGhfcGFyZW50ID0gMDsKKwl3aGlsZSAoKHAgPSAqcHApICE9IE5VTEwpIHsKKwkJc3RydWN0IGNvbW1pdCAqcGFyZW50ID0gcC0+aXRlbTsKKwkJaWYgKHBhcmVudC0+b2JqZWN0LmZsYWdzICYgVE1QX01BUkspIHsKKwkJCXBhcmVudC0+b2JqZWN0LmZsYWdzICY9IH5UTVBfTUFSSzsKKwkJCSpwcCA9IHAtPm5leHQ7CisJCQlmcmVlKHApOworCQkJcmVtb3ZlZCsrOworCQkJY29tcGFjdF90cmVlc2FtZShyZXZzLCBjb21taXQsIG50aF9wYXJlbnQpOworCQkJY29udGludWU7CisJCX0KKwkJcHAgPSAmcC0+bmV4dDsKKwkJbnRoX3BhcmVudCsrOworCX0KKworCS8qIFJlbW92aW5nIHBhcmVudHMgY2FuIG9ubHkgaW5jcmVhc2UgVFJFRVNBTUVuZXNzICovCisJaWYgKHJlbW92ZWQgJiYgIShjb21taXQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKSkKKwkJdXBkYXRlX3RyZWVzYW1lKHJldnMsIGNvbW1pdCk7CisKKwlyZXR1cm4gbnRoX3BhcmVudDsKK30KKwogc3RhdGljIHN0cnVjdCBjb21taXRfbGlzdCAqKnNpbXBsaWZ5X29uZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwgc3RydWN0IGNvbW1pdF9saXN0ICoqdGFpbCkKIHsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKnA7CisJc3RydWN0IGNvbW1pdCAqcGFyZW50OwogCXN0cnVjdCBtZXJnZV9zaW1wbGlmeV9zdGF0ZSAqc3QsICpwc3Q7CiAJaW50IGNudDsKIApAQCAtMjAxNSw3ICsyNDQxLDkgQEAKIAl9CiAKIAkvKgotCSAqIFJld3JpdGUgb3VyIGxpc3Qgb2YgcGFyZW50cy4KKwkgKiBSZXdyaXRlIG91ciBsaXN0IG9mIHBhcmVudHMuIE5vdGUgdGhhdCB0aGlzIGNhbm5vdAorCSAqIGFmZmVjdCBvdXIgVFJFRVNBTUUgZmxhZ3MgaW4gYW55IHdheSAtIGEgY29tbWl0IGlzCisJICogYWx3YXlzIFRSRUVTQU1FIHRvIGl0cyBzaW1wbGlmaWNhdGlvbi4KIAkgKi8KIAlmb3IgKHAgPSBjb21taXQtPnBhcmVudHM7IHA7IHAgPSBwLT5uZXh0KSB7CiAJCXBzdCA9IGxvY2F0ZV9zaW1wbGlmeV9zdGF0ZShyZXZzLCBwLT5pdGVtKTsKQEAgLTIwMjcsNDMgKzI0NTUsNTMgQEAKIAlpZiAocmV2cy0+Zmlyc3RfcGFyZW50X29ubHkpCiAJCWNudCA9IDE7CiAJZWxzZQotCQljbnQgPSByZW1vdmVfZHVwbGljYXRlX3BhcmVudHMoY29tbWl0KTsKKwkJY250ID0gcmVtb3ZlX2R1cGxpY2F0ZV9wYXJlbnRzKHJldnMsIGNvbW1pdCk7CiAKIAkvKgogCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgYXJlIGEgbWVyZ2UgYW5kIG9uZSBzaWRlIGJyYW5jaAogCSAqIGRvZXMgbm90IGhhdmUgYW55IGNvbW1pdCB0aGF0IHRvdWNoZXMgdGhlIGdpdmVuIHBhdGhzOwotCSAqIGluIHN1Y2ggYSBjYXNlLCB0aGUgaW1tZWRpYXRlIHBhcmVudHMgd2lsbCBiZSByZXdyaXR0ZW4KLQkgKiB0byBkaWZmZXJlbnQgY29tbWl0cy4KKwkgKiBpbiBzdWNoIGEgY2FzZSwgdGhlIGltbWVkaWF0ZSBwYXJlbnQgZnJvbSB0aGF0IGJyYW5jaAorCSAqIHdpbGwgYmUgcmV3cml0dGVuIHRvIGJlIHRoZSBtZXJnZSBiYXNlLgogCSAqCiAJICogICAgICBvLS0tLVgJCVg6IHRoZSBjb21taXQgd2UgYXJlIGxvb2tpbmcgYXQ7CiAJICogICAgIC8gICAgLwkJbzogYSBjb21taXQgdGhhdCB0b3VjaGVzIHRoZSBwYXRoczsKIAkgKiAtLS1vLS0tLScKIAkgKgotCSAqIEZ1cnRoZXIgcmVkdWNlIHRoZSBwYXJlbnRzIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBwYXJlbnRzLgorCSAqIEZ1cnRoZXIsIGEgbWVyZ2Ugb2YgYW4gaW5kZXBlbmRlbnQgYnJhbmNoIHRoYXQgZG9lc24ndAorCSAqIHRvdWNoIHRoZSBwYXRoIHdpbGwgcmVkdWNlIHRvIGEgdHJlZXNhbWUgcm9vdCBwYXJlbnQ6CisJICoKKwkgKiAgLS0tLW8tLS0tWAkJWDogdGhlIGNvbW1pdCB3ZSBhcmUgbG9va2luZyBhdDsKKwkgKiAgICAgICAgICAvCQlvOiBhIGNvbW1pdCB0aGF0IHRvdWNoZXMgdGhlIHBhdGhzOworCSAqICAgICAgICAgcgkJcjogYSByb290IGNvbW1pdCBub3QgdG91Y2hpbmcgdGhlIHBhdGhzCisJICoKKwkgKiBEZXRlY3QgYW5kIHNpbXBsaWZ5IGJvdGggY2FzZXMuCiAJICovCiAJaWYgKDEgPCBjbnQpIHsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICpoID0gcmVkdWNlX2hlYWRzKGNvbW1pdC0+cGFyZW50cyk7Ci0JCWNudCA9IGNvbW1pdF9saXN0X2NvdW50KGgpOwotCQlmcmVlX2NvbW1pdF9saXN0KGNvbW1pdC0+cGFyZW50cyk7Ci0JCWNvbW1pdC0+cGFyZW50cyA9IGg7CisJCWludCBtYXJrZWQgPSBtYXJrX3JlZHVuZGFudF9wYXJlbnRzKHJldnMsIGNvbW1pdCk7CisJCW1hcmtlZCArPSBtYXJrX3RyZWVzYW1lX3Jvb3RfcGFyZW50cyhyZXZzLCBjb21taXQpOworCQlpZiAobWFya2VkKQorCQkJbWFya2VkIC09IGxlYXZlX29uZV90cmVlc2FtZV90b19wYXJlbnQocmV2cywgY29tbWl0KTsKKwkJaWYgKG1hcmtlZCkKKwkJCWNudCA9IHJlbW92ZV9tYXJrZWRfcGFyZW50cyhyZXZzLCBjb21taXQpOwogCX0KIAogCS8qCiAJICogQSBjb21taXQgc2ltcGxpZmllcyB0byBpdHNlbGYgaWYgaXQgaXMgYSByb290LCBpZiBpdCBpcwogCSAqIFVOSU5URVJFU1RJTkcsIGlmIGl0IHRvdWNoZXMgdGhlIGdpdmVuIHBhdGhzLCBvciBpZiBpdCBpcyBhCi0JICogbWVyZ2UgYW5kIGl0cyBwYXJlbnRzIHNpbXBsaWZpZXMgdG8gbW9yZSB0aGFuIG9uZSBjb21taXRzCisJICogbWVyZ2UgYW5kIGl0cyBwYXJlbnRzIGRvbid0IHNpbXBsaWZ5IHRvIG9uZSByZWxldmFudCBjb21taXQKIAkgKiAodGhlIGZpcnN0IHR3byBjYXNlcyBhcmUgYWxyZWFkeSBoYW5kbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YKIAkgKiB0aGlzIGZ1bmN0aW9uKS4KIAkgKgotCSAqIE90aGVyd2lzZSwgaXQgc2ltcGxpZmllcyB0byB3aGF0IGl0cyBzb2xlIHBhcmVudCBzaW1wbGlmaWVzIHRvLgorCSAqIE90aGVyd2lzZSwgaXQgc2ltcGxpZmllcyB0byB3aGF0IGl0cyBzb2xlIHJlbGV2YW50IHBhcmVudAorCSAqIHNpbXBsaWZpZXMgdG8uCiAJICovCiAJaWYgKCFjbnQgfHwKIAkgICAgKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVU5JTlRFUkVTVElORykgfHwKIAkgICAgIShjb21taXQtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKSB8fAotCSAgICAoMSA8IGNudCkpCisJICAgIChwYXJlbnQgPSBvbmVfcmVsZXZhbnRfcGFyZW50KHJldnMsIGNvbW1pdC0+cGFyZW50cykpID09IE5VTEwpCiAJCXN0LT5zaW1wbGlmaWVkID0gY29tbWl0OwogCWVsc2UgewotCQlwc3QgPSBsb2NhdGVfc2ltcGxpZnlfc3RhdGUocmV2cywgY29tbWl0LT5wYXJlbnRzLT5pdGVtKTsKKwkJcHN0ID0gbG9jYXRlX3NpbXBsaWZ5X3N0YXRlKHJldnMsIHBhcmVudCk7CiAJCXN0LT5zaW1wbGlmaWVkID0gcHN0LT5zaW1wbGlmaWVkOwogCX0KIAlyZXR1cm4gdGFpbDsKQEAgLTIxNTksNiArMjU5NywxMSBAQAogCWlmICghcmV2cy0+bGVha19wZW5kaW5nKQogCQlmcmVlKGxpc3QpOwogCisJLyogU2lnbmFsIHdoZXRoZXIgd2UgbmVlZCBwZXItcGFyZW50IHRyZWVzYW1lIGRlY29yYXRpb24gKi8KKwlpZiAocmV2cy0+c2ltcGxpZnlfbWVyZ2VzIHx8CisJICAgIChyZXZzLT5saW1pdGVkICYmIGxpbWl0aW5nX2Nhbl9pbmNyZWFzZV90cmVlc2FtZShyZXZzKSkpCisJCXJldnMtPnRyZWVzYW1lLm5hbWUgPSAidHJlZXNhbWUiOworCiAJaWYgKHJldnMtPm5vX3dhbGsgIT0gUkVWSVNJT05fV0FMS19OT19XQUxLX1VOU09SVEVEKQogCQljb21taXRfbGlzdF9zb3J0X2J5X2RhdGUoJnJldnMtPmNvbW1pdHMpOwogCWlmIChyZXZzLT5ub193YWxrKQpAQCAtMjE2Nyw3ICsyNjEwLDkgQEAKIAkJaWYgKGxpbWl0X2xpc3QocmV2cykgPCAwKQogCQkJcmV0dXJuIC0xOwogCWlmIChyZXZzLT50b3BvX29yZGVyKQotCQlzb3J0X2luX3RvcG9sb2dpY2FsX29yZGVyKCZyZXZzLT5jb21taXRzLCByZXZzLT5saWZvKTsKKwkJc29ydF9pbl90b3BvbG9naWNhbF9vcmRlcigmcmV2cy0+Y29tbWl0cywgcmV2cy0+c29ydF9vcmRlcik7CisJaWYgKHJldnMtPmxpbmVfbGV2ZWxfdHJhdmVyc2UpCisJCWxpbmVfbG9nX2ZpbHRlcihyZXZzKTsKIAlpZiAocmV2cy0+c2ltcGxpZnlfbWVyZ2VzKQogCQlzaW1wbGlmeV9tZXJnZXMocmV2cyk7CiAJaWYgKHJldnMtPmNoaWxkcmVuLm5hbWUpCkBAIC0yMTc1LDEyICsyNjIwLDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotZW51bSByZXdyaXRlX3Jlc3VsdCB7Ci0JcmV3cml0ZV9vbmVfb2ssCi0JcmV3cml0ZV9vbmVfbm9wYXJlbnRzLAotCXJld3JpdGVfb25lX2Vycm9yCi19OwotCiBzdGF0aWMgZW51bSByZXdyaXRlX3Jlc3VsdCByZXdyaXRlX29uZShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKipwcCkKIHsKIAlzdHJ1Y3QgY29tbWl0X2xpc3QgKmNhY2hlID0gTlVMTDsKQEAgLTIxOTAsMjQgKzI2MjksMjUgQEAKIAkJaWYgKCFyZXZzLT5saW1pdGVkKQogCQkJaWYgKGFkZF9wYXJlbnRzX3RvX2xpc3QocmV2cywgcCwgJnJldnMtPmNvbW1pdHMsICZjYWNoZSkgPCAwKQogCQkJCXJldHVybiByZXdyaXRlX29uZV9lcnJvcjsKLQkJaWYgKHAtPnBhcmVudHMgJiYgcC0+cGFyZW50cy0+bmV4dCkKLQkJCXJldHVybiByZXdyaXRlX29uZV9vazsKIAkJaWYgKHAtPm9iamVjdC5mbGFncyAmIFVOSU5URVJFU1RJTkcpCiAJCQlyZXR1cm4gcmV3cml0ZV9vbmVfb2s7CiAJCWlmICghKHAtPm9iamVjdC5mbGFncyAmIFRSRUVTQU1FKSkKIAkJCXJldHVybiByZXdyaXRlX29uZV9vazsKIAkJaWYgKCFwLT5wYXJlbnRzKQogCQkJcmV0dXJuIHJld3JpdGVfb25lX25vcGFyZW50czsKLQkJKnBwID0gcC0+cGFyZW50cy0+aXRlbTsKKwkJaWYgKChwID0gb25lX3JlbGV2YW50X3BhcmVudChyZXZzLCBwLT5wYXJlbnRzKSkgPT0gTlVMTCkKKwkJCXJldHVybiByZXdyaXRlX29uZV9vazsKKwkJKnBwID0gcDsKIAl9CiB9CiAKLXN0YXRpYyBpbnQgcmV3cml0ZV9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoraW50IHJld3JpdGVfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBjb21taXQgKmNvbW1pdCwKKwlyZXdyaXRlX3BhcmVudF9mbl90IHJld3JpdGVfcGFyZW50KQogewogCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwID0gJmNvbW1pdC0+cGFyZW50czsKIAl3aGlsZSAoKnBwKSB7CiAJCXN0cnVjdCBjb21taXRfbGlzdCAqcGFyZW50ID0gKnBwOwotCQlzd2l0Y2ggKHJld3JpdGVfb25lKHJldnMsICZwYXJlbnQtPml0ZW0pKSB7CisJCXN3aXRjaCAocmV3cml0ZV9wYXJlbnQocmV2cywgJnBhcmVudC0+aXRlbSkpIHsKIAkJY2FzZSByZXdyaXRlX29uZV9vazoKIAkJCWJyZWFrOwogCQljYXNlIHJld3JpdGVfb25lX25vcGFyZW50czoKQEAgLTIyMTgsNyArMjY1OCw3IEBACiAJCX0KIAkJcHAgPSAmcGFyZW50LT5uZXh0OwogCX0KLQlyZW1vdmVfZHVwbGljYXRlX3BhcmVudHMoY29tbWl0KTsKKwlyZW1vdmVfZHVwbGljYXRlX3BhcmVudHMocmV2cywgY29tbWl0KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjMyNCw3ICsyNzY0LDcgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB3YW50X2FuY2VzdHJ5KHN0cnVjdCByZXZfaW5mbyAqcmV2cykKK3N0YXRpYyBpbmxpbmUgaW50IHdhbnRfYW5jZXN0cnkoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzKQogewogCXJldHVybiAocmV2cy0+cmV3cml0ZV9wYXJlbnRzIHx8IHJldnMtPmNoaWxkcmVuLm5hbWUpOwogfQpAQCAtMjM0MiwxMCArMjc4Miw3IEBACiAJaWYgKHJldnMtPm1pbl9hZ2UgIT0gLTEgJiYgKGNvbW1pdC0+ZGF0ZSA+IHJldnMtPm1pbl9hZ2UpKQogCQlyZXR1cm4gY29tbWl0X2lnbm9yZTsKIAlpZiAocmV2cy0+bWluX3BhcmVudHMgfHwgKHJldnMtPm1heF9wYXJlbnRzID49IDApKSB7Ci0JCWludCBuID0gMDsKLQkJc3RydWN0IGNvbW1pdF9saXN0ICpwOwotCQlmb3IgKHAgPSBjb21taXQtPnBhcmVudHM7IHA7IHAgPSBwLT5uZXh0KQotCQkJbisrOworCQlpbnQgbiA9IGNvbW1pdF9saXN0X2NvdW50KGNvbW1pdC0+cGFyZW50cyk7CiAJCWlmICgobiA8IHJldnMtPm1pbl9wYXJlbnRzKSB8fAogCQkgICAgKChyZXZzLT5tYXhfcGFyZW50cyA+PSAwKSAmJiAobiA+IHJldnMtPm1heF9wYXJlbnRzKSkpCiAJCQlyZXR1cm4gY29tbWl0X2lnbm9yZTsKQEAgLTIzNTUsMTIgKzI3OTIsMjMgQEAKIAlpZiAocmV2cy0+cHJ1bmUgJiYgcmV2cy0+ZGVuc2UpIHsKIAkJLyogQ29tbWl0IHdpdGhvdXQgY2hhbmdlcz8gKi8KIAkJaWYgKGNvbW1pdC0+b2JqZWN0LmZsYWdzICYgVFJFRVNBTUUpIHsKKwkJCWludCBuOworCQkJc3RydWN0IGNvbW1pdF9saXN0ICpwOwogCQkJLyogZHJvcCBtZXJnZXMgdW5sZXNzIHdlIHdhbnQgcGFyZW50aG9vZCAqLwogCQkJaWYgKCF3YW50X2FuY2VzdHJ5KHJldnMpKQogCQkJCXJldHVybiBjb21taXRfaWdub3JlOwotCQkJLyogbm9uLW1lcmdlIC0gYWx3YXlzIGlnbm9yZSBpdCAqLwotCQkJaWYgKCFjb21taXQtPnBhcmVudHMgfHwgIWNvbW1pdC0+cGFyZW50cy0+bmV4dCkKLQkJCQlyZXR1cm4gY29tbWl0X2lnbm9yZTsKKwkJCS8qCisJCQkgKiBJZiB3ZSB3YW50IGFuY2VzdHJ5LCB0aGVuIG5lZWQgdG8ga2VlcCBhbnkgbWVyZ2VzCisJCQkgKiBiZXR3ZWVuIHJlbGV2YW50IGNvbW1pdHMgdG8gdGllIHRvZ2V0aGVyIHRvcG9sb2d5LgorCQkJICogRm9yIGNvbnNpc3RlbmN5IHdpdGggVFJFRVNBTUUgYW5kIHNpbXBsaWZpY2F0aW9uCisJCQkgKiB1c2UgInJlbGV2YW50IiBoZXJlIHJhdGhlciB0aGFuIGp1c3QgSU5URVJFU1RJTkcsCisJCQkgKiB0byB0cmVhdCBib3R0b20gY29tbWl0KHMpIGFzIHBhcnQgb2YgdGhlIHRvcG9sb2d5LgorCQkJICovCisJCQlmb3IgKG4gPSAwLCBwID0gY29tbWl0LT5wYXJlbnRzOyBwOyBwID0gcC0+bmV4dCkKKwkJCQlpZiAocmVsZXZhbnRfY29tbWl0KHAtPml0ZW0pKQorCQkJCQlpZiAoKytuID49IDIpCisJCQkJCQlyZXR1cm4gY29tbWl0X3Nob3c7CisJCQlyZXR1cm4gY29tbWl0X2lnbm9yZTsKIAkJfQogCX0KIAlyZXR1cm4gY29tbWl0X3Nob3c7CkBAIC0yMzczLDcgKzI4MjEsMTUgQEAKIAlpZiAoYWN0aW9uID09IGNvbW1pdF9zaG93ICYmCiAJICAgICFyZXZzLT5zaG93X2FsbCAmJgogCSAgICByZXZzLT5wcnVuZSAmJiByZXZzLT5kZW5zZSAmJiB3YW50X2FuY2VzdHJ5KHJldnMpKSB7Ci0JCWlmIChyZXdyaXRlX3BhcmVudHMocmV2cywgY29tbWl0KSA8IDApCisJCS8qCisJCSAqIC0tZnVsbC1kaWZmIG9uIHNpbXBsaWZpZWQgcGFyZW50cyBpcyBubyBnb29kOiBpdAorCQkgKiB3aWxsIHNob3cgc3B1cmlvdXMgY2hhbmdlcyBmcm9tIHRoZSBjb21taXRzIHRoYXQKKwkJICogd2VyZSBlbGlkZWQuICBTbyB3ZSBzYXZlIHRoZSBwYXJlbnRzIG9uIHRoZSBzaWRlCisJCSAqIHdoZW4gLS1mdWxsLWRpZmYgaXMgaW4gZWZmZWN0LgorCQkgKi8KKwkJaWYgKHJldnMtPmZ1bGxfZGlmZikKKwkJCXNhdmVfcGFyZW50cyhyZXZzLCBjb21taXQpOworCQlpZiAocmV3cml0ZV9wYXJlbnRzKHJldnMsIGNvbW1pdCwgcmV3cml0ZV9vbmUpIDwgMCkKIAkJCXJldHVybiBjb21taXRfZXJyb3I7CiAJfQogCXJldHVybiBhY3Rpb247CkBAIC0yMzkyLDYgKzI4NDgsNyBAQAogCQlmcmVlKGVudHJ5KTsKIAogCQlpZiAocmV2cy0+cmVmbG9nX2luZm8pIHsKKwkJCXNhdmVfcGFyZW50cyhyZXZzLCBjb21taXQpOwogCQkJZmFrZV9yZWZsb2dfcGFyZW50KHJldnMtPnJlZmxvZ19pbmZvLCBjb21taXQpOwogCQkJY29tbWl0LT5vYmplY3QuZmxhZ3MgJj0gfihBRERFRCB8IFNFRU4gfCBTSE9XTik7CiAJCX0KQEAgLTI0MjMsMjUgKzI4ODAsMjMgQEAKIAlyZXR1cm4gTlVMTDsKIH0KIAorLyoKKyAqIFJldHVybiB0cnVlIGZvciBlbnRyaWVzIHRoYXQgaGF2ZSBub3QgeWV0IGJlZW4gc2hvd24uICAoVGhpcyBpcyBhbgorICogb2JqZWN0X2FycmF5X2VhY2hfZnVuY190LikKKyAqLworc3RhdGljIGludCBlbnRyeV91bnNob3duKHN0cnVjdCBvYmplY3RfYXJyYXlfZW50cnkgKmVudHJ5LCB2b2lkICpjYl9kYXRhX3VudXNlZCkKK3sKKwlyZXR1cm4gIShlbnRyeS0+aXRlbS0+ZmxhZ3MgJiBTSE9XTik7Cit9CisKKy8qCisgKiBJZiBhcnJheSBpcyBvbiB0aGUgdmVyZ2Ugb2YgYSByZWFsbG9jLCBnYXJiYWdlLWNvbGxlY3QgYW55IGVudHJpZXMKKyAqIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gc2hvd24gdG8gdHJ5IHRvIGZyZWUgdXAgc29tZSBzcGFjZS4KKyAqLwogc3RhdGljIHZvaWQgZ2NfYm91bmRhcnkoc3RydWN0IG9iamVjdF9hcnJheSAqYXJyYXkpCiB7Ci0JdW5zaWduZWQgbnIgPSBhcnJheS0+bnI7Ci0JdW5zaWduZWQgYWxsb2MgPSBhcnJheS0+YWxsb2M7Ci0Jc3RydWN0IG9iamVjdF9hcnJheV9lbnRyeSAqb2JqZWN0cyA9IGFycmF5LT5vYmplY3RzOwotCi0JaWYgKGFsbG9jIDw9IG5yKSB7Ci0JCXVuc2lnbmVkIGksIGo7Ci0JCWZvciAoaSA9IGogPSAwOyBpIDwgbnI7IGkrKykgewotCQkJaWYgKG9iamVjdHNbaV0uaXRlbS0+ZmxhZ3MgJiBTSE9XTikKLQkJCQljb250aW51ZTsKLQkJCWlmIChpICE9IGopCi0JCQkJb2JqZWN0c1tqXSA9IG9iamVjdHNbaV07Ci0JCQlqKys7Ci0JCX0KLQkJZm9yIChpID0gajsgaSA8IG5yOyBpKyspCi0JCQlvYmplY3RzW2ldLml0ZW0gPSBOVUxMOwotCQlhcnJheS0+bnIgPSBqOwotCX0KKwlpZiAoYXJyYXktPm5yID09IGFycmF5LT5hbGxvYykKKwkJb2JqZWN0X2FycmF5X2ZpbHRlcihhcnJheSwgZW50cnlfdW5zaG93biwgTlVMTCk7CiB9CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZV9ib3VuZGFyeV9jb21taXRfbGlzdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMpCkBAIC0yNDgyLDcgKzI5MzcsNyBAQAogCSAqIElmIHJldnMtPnRvcG9fb3JkZXIgaXMgc2V0LCBzb3J0IHRoZSBib3VuZGFyeSBjb21taXRzCiAJICogaW4gdG9wb2xvZ2ljYWwgb3JkZXIKIAkgKi8KLQlzb3J0X2luX3RvcG9sb2dpY2FsX29yZGVyKCZyZXZzLT5jb21taXRzLCByZXZzLT5saWZvKTsKKwlzb3J0X2luX3RvcG9sb2dpY2FsX29yZGVyKCZyZXZzLT5jb21taXRzLCByZXZzLT5zb3J0X29yZGVyKTsKIH0KIAogc3RhdGljIHN0cnVjdCBjb21taXQgKmdldF9yZXZpc2lvbl9pbnRlcm5hbChzdHJ1Y3QgcmV2X2luZm8gKnJldnMpCkBAIC0yNTkzLDYgKzMwNDgsOCBAQAogCWMgPSBnZXRfcmV2aXNpb25faW50ZXJuYWwocmV2cyk7CiAJaWYgKGMgJiYgcmV2cy0+Z3JhcGgpCiAJCWdyYXBoX3VwZGF0ZShyZXZzLT5ncmFwaCwgYyk7CisJaWYgKCFjKQorCQlmcmVlX3NhdmVkX3BhcmVudHMocmV2cyk7CiAJcmV0dXJuIGM7CiB9CiAKQEAgLTI2MjQsMyArMzA4MSw1NCBAQAogCWZwdXRzKG1hcmssIHN0ZG91dCk7CiAJcHV0Y2hhcignICcpOwogfQorCitkZWZpbmVfY29tbWl0X3NsYWIoc2F2ZWRfcGFyZW50cywgc3RydWN0IGNvbW1pdF9saXN0ICopOworCisjZGVmaW5lIEVNUFRZX1BBUkVOVF9MSVNUICgoc3RydWN0IGNvbW1pdF9saXN0ICopLTEpCisKK3ZvaWQgc2F2ZV9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KQoreworCXN0cnVjdCBjb21taXRfbGlzdCAqKnBwOworCisJaWYgKCFyZXZzLT5zYXZlZF9wYXJlbnRzX3NsYWIpIHsKKwkJcmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiID0geG1hbGxvYyhzaXplb2Yoc3RydWN0IHNhdmVkX3BhcmVudHMpKTsKKwkJaW5pdF9zYXZlZF9wYXJlbnRzKHJldnMtPnNhdmVkX3BhcmVudHNfc2xhYik7CisJfQorCisJcHAgPSBzYXZlZF9wYXJlbnRzX2F0KHJldnMtPnNhdmVkX3BhcmVudHNfc2xhYiwgY29tbWl0KTsKKworCS8qCisJICogV2hlbiB3YWxraW5nIHdpdGggcmVmbG9ncywgd2UgbWF5IHZpc2l0IHRoZSBzYW1lIGNvbW1pdAorCSAqIHNldmVyYWwgdGltZXM6IG9uY2UgZm9yIGVhY2ggYXBwZWFyYW5jZSBpbiB0aGUgcmVmbG9nLgorCSAqCisJICogSW4gdGhpcyBjYXNlLCBzYXZlX3BhcmVudHMoKSB3aWxsIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4KKwkgKiBXZSB3YW50IHRvIGtlZXAgb25seSB0aGUgZmlyc3Qgc2V0IG9mIHBhcmVudHMuICBXZSBuZWVkIHRvCisJICogc3RvcmUgYSBzZW50aW5lbCB2YWx1ZSBmb3IgYW4gZW1wdHkgKGkuZS4sIE5VTEwpIHBhcmVudAorCSAqIGxpc3QgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBhIG5vdC15ZXQtc2F2ZWQgbGlzdCwgaG93ZXZlci4KKwkgKi8KKwlpZiAoKnBwKQorCQlyZXR1cm47CisJaWYgKGNvbW1pdC0+cGFyZW50cykKKwkJKnBwID0gY29weV9jb21taXRfbGlzdChjb21taXQtPnBhcmVudHMpOworCWVsc2UKKwkJKnBwID0gRU1QVFlfUEFSRU5UX0xJU1Q7Cit9CisKK3N0cnVjdCBjb21taXRfbGlzdCAqZ2V0X3NhdmVkX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpCit7CisJc3RydWN0IGNvbW1pdF9saXN0ICpwYXJlbnRzOworCisJaWYgKCFyZXZzLT5zYXZlZF9wYXJlbnRzX3NsYWIpCisJCXJldHVybiBjb21taXQtPnBhcmVudHM7CisKKwlwYXJlbnRzID0gKnNhdmVkX3BhcmVudHNfYXQocmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiLCBjb21taXQpOworCWlmIChwYXJlbnRzID09IEVNUFRZX1BBUkVOVF9MSVNUKQorCQlyZXR1cm4gTlVMTDsKKwlyZXR1cm4gcGFyZW50czsKK30KKwordm9pZCBmcmVlX3NhdmVkX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzKQoreworCWlmIChyZXZzLT5zYXZlZF9wYXJlbnRzX3NsYWIpCisJCWNsZWFyX3NhdmVkX3BhcmVudHMocmV2cy0+c2F2ZWRfcGFyZW50c19zbGFiKTsKK30KZGlmZiAtLWdpdCBhL3JldmlzaW9uLmggYi9yZXZpc2lvbi5oCmluZGV4IDAxYmQyYjcuLmU3ZjFkMjEgMTAwNjQ0Ci0tLSBhL3JldmlzaW9uLmgKKysrIGIvcmV2aXNpb24uaApAQCAtNCw2ICs0LDcgQEAKICNpbmNsdWRlICJwYXJzZS1vcHRpb25zLmgiCiAjaW5jbHVkZSAiZ3JlcC5oIgogI2luY2x1ZGUgIm5vdGVzLmgiCisjaW5jbHVkZSAiY29tbWl0LmgiCiAKICNkZWZpbmUgU0VFTgkJKDF1PDwwKQogI2RlZmluZSBVTklOVEVSRVNUSU5HICAgKDF1PDwxKQpAQCAtMTUsNyArMTYsOCBAQAogI2RlZmluZSBBRERFRAkJKDF1PDw3KQkvKiBQYXJlbnRzIGFscmVhZHkgcGFyc2VkIGFuZCBhZGRlZD8gKi8KICNkZWZpbmUgU1lNTUVUUklDX0xFRlQJKDF1PDw4KQogI2RlZmluZSBQQVRDSFNBTUUJKDF1PDw5KQotI2RlZmluZSBBTExfUkVWX0ZMQUdTCSgoMXU8PDEwKS0xKQorI2RlZmluZSBCT1RUT00JCSgxdTw8MTApCisjZGVmaW5lIEFMTF9SRVZfRkxBR1MJKCgxdTw8MTEpLTEpCiAKICNkZWZpbmUgREVDT1JBVEVfU0hPUlRfUkVGUwkxCiAjZGVmaW5lIERFQ09SQVRFX0ZVTExfUkVGUwkyCkBAIC0yMyw2ICsyNSw3IEBACiBzdHJ1Y3QgcmV2X2luZm87CiBzdHJ1Y3QgbG9nX2luZm87CiBzdHJ1Y3Qgc3RyaW5nX2xpc3Q7CitzdHJ1Y3Qgc2F2ZWRfcGFyZW50czsKIAogc3RydWN0IHJldl9jbWRsaW5lX2luZm8gewogCXVuc2lnbmVkIGludCBucjsKQEAgLTM1LDYgKzM4LDcgQEAKIAkJCVJFVl9DTURfUEFSRU5UU19PTkxZLAogCQkJUkVWX0NNRF9MRUZULAogCQkJUkVWX0NNRF9SSUdIVCwKKwkJCVJFVl9DTURfTUVSR0VfQkFTRSwKIAkJCVJFVl9DTURfUkVWCiAJCX0gd2hlbmNlOwogCQl1bnNpZ25lZCBmbGFnczsKQEAgLTYwLDYgKzY0LDEwIEBACiAJY29uc3QgY2hhciAqcHJlZml4OwogCWNvbnN0IGNoYXIgKmRlZjsKIAlzdHJ1Y3QgcGF0aHNwZWMgcHJ1bmVfZGF0YTsKKworCS8qIHRvcG8tc29ydCAqLworCWVudW0gcmV2X3NvcnRfb3JkZXIgc29ydF9vcmRlcjsKKwogCXVuc2lnbmVkIGludAllYXJseV9vdXRwdXQ6MSwKIAkJCWlnbm9yZV9taXNzaW5nOjE7CiAKQEAgLTcwLDcgKzc4LDYgQEAKIAkJCXNob3dfYWxsOjEsCiAJCQlyZW1vdmVfZW1wdHlfdHJlZXM6MSwKIAkJCXNpbXBsaWZ5X2hpc3Rvcnk6MSwKLQkJCWxpZm86MSwKIAkJCXRvcG9fb3JkZXI6MSwKIAkJCXNpbXBsaWZ5X21lcmdlczoxLAogCQkJc2ltcGxpZnlfYnlfZGVjb3JhdGlvbjoxLApAQCAtOTYsNyArMTAzLDggQEAKIAkJCWNoZXJyeV9tYXJrOjEsCiAJCQliaXNlY3Q6MSwKIAkJCWFuY2VzdHJ5X3BhdGg6MSwKLQkJCWZpcnN0X3BhcmVudF9vbmx5OjE7CisJCQlmaXJzdF9wYXJlbnRfb25seToxLAorCQkJbGluZV9sZXZlbF90cmF2ZXJzZToxOwogCiAJLyogRGlmZiBmbGFncyAqLwogCXVuc2lnbmVkIGludAlkaWZmOjEsCkBAIC0xMzcsNiArMTQ1LDcgQEAKIAlpbnQJCW51bWJlcmVkX2ZpbGVzOwogCWludAkJcmVyb2xsX2NvdW50OwogCWNoYXIJCSptZXNzYWdlX2lkOworCXN0cnVjdCBpZGVudF9zcGxpdCBmcm9tX2lkZW50OwogCXN0cnVjdCBzdHJpbmdfbGlzdCAqcmVmX21lc3NhZ2VfaWRzOwogCWludAkJYWRkX3NpZ25vZmY7CiAJY29uc3QgY2hhcgkqZXh0cmFfaGVhZGVyczsKQEAgLTE2Nyw2ICsxNzYsNyBAQAogCXN0cnVjdCByZWZsb2dfd2Fsa19pbmZvICpyZWZsb2dfaW5mbzsKIAlzdHJ1Y3QgZGVjb3JhdGlvbiBjaGlsZHJlbjsKIAlzdHJ1Y3QgZGVjb3JhdGlvbiBtZXJnZV9zaW1wbGlmaWNhdGlvbjsKKwlzdHJ1Y3QgZGVjb3JhdGlvbiB0cmVlc2FtZTsKIAogCS8qIG5vdGVzLXNwZWNpZmljIG9wdGlvbnM6IHdoaWNoIHJlZnMgdG8gc2hvdyAqLwogCXN0cnVjdCBkaXNwbGF5X25vdGVzX29wdCBub3Rlc19vcHQ7CkBAIC0xNzUsNiArMTg1LDEyIEBACiAJaW50IGNvdW50X2xlZnQ7CiAJaW50IGNvdW50X3JpZ2h0OwogCWludCBjb3VudF9zYW1lOworCisJLyogbGluZSBsZXZlbCByYW5nZSB0aGF0IHdlIGFyZSBjaGFzaW5nICovCisJc3RydWN0IGRlY29yYXRpb24gbGluZV9sb2dfZGF0YTsKKworCS8qIGNvcGllcyBvZiB0aGUgcGFyZW50IGxpc3RzLCBmb3IgLS1mdWxsLWRpZmYgZGlzcGxheSAqLworCXN0cnVjdCBzYXZlZF9wYXJlbnRzICpzYXZlZF9wYXJlbnRzX3NsYWI7CiB9OwogCiAjZGVmaW5lIFJFVl9UUkVFX1NBTUUJCTAKQEAgLTE5NSwxOSArMjExLDIzIEBACiB9OwogCiBleHRlcm4gdm9pZCBpbml0X3JldmlzaW9ucyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIGNvbnN0IGNoYXIgKnByZWZpeCk7Ci1leHRlcm4gaW50IHNldHVwX3JldmlzaW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YsIHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IHNldHVwX3JldmlzaW9uX29wdCAqKTsKK2V4dGVybiBpbnQgc2V0dXBfcmV2aXNpb25zKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJICAgc3RydWN0IHNldHVwX3JldmlzaW9uX29wdCAqKTsKIGV4dGVybiB2b2lkIHBhcnNlX3JldmlzaW9uX29wdChzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIHN0cnVjdCBwYXJzZV9vcHRfY3R4X3QgKmN0eCwKLQkJCQkgY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0aW9ucywKLQkJCQkgY29uc3QgY2hhciAqIGNvbnN0IHVzYWdlc3RyW10pOworCQkJICAgICAgIGNvbnN0IHN0cnVjdCBvcHRpb24gKm9wdGlvbnMsCisJCQkgICAgICAgY29uc3QgY2hhciAqIGNvbnN0IHVzYWdlc3RyW10pOwogI2RlZmluZSBSRVZBUkdfQ0FOTk9UX0JFX0ZJTEVOQU1FIDAxCiAjZGVmaW5lIFJFVkFSR19DT01NSVRUSVNIIDAyCi1leHRlcm4gaW50IGhhbmRsZV9yZXZpc2lvbl9hcmcoY29uc3QgY2hhciAqYXJnLCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMsIGludCBmbGFncywgdW5zaWduZWQgcmV2YXJnX29wdCk7CitleHRlcm4gaW50IGhhbmRsZV9yZXZpc2lvbl9hcmcoY29uc3QgY2hhciAqYXJnLCBzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkgICAgICAgaW50IGZsYWdzLCB1bnNpZ25lZCByZXZhcmdfb3B0KTsKIAogZXh0ZXJuIHZvaWQgcmVzZXRfcmV2aXNpb25fd2Fsayh2b2lkKTsKIGV4dGVybiBpbnQgcHJlcGFyZV9yZXZpc2lvbl93YWxrKHN0cnVjdCByZXZfaW5mbyAqcmV2cyk7CiBleHRlcm4gc3RydWN0IGNvbW1pdCAqZ2V0X3JldmlzaW9uKHN0cnVjdCByZXZfaW5mbyAqcmV2cyk7Ci1leHRlcm4gY2hhciAqZ2V0X3JldmlzaW9uX21hcmsoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOwotZXh0ZXJuIHZvaWQgcHV0X3JldmlzaW9uX21hcmsoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOworZXh0ZXJuIGNoYXIgKmdldF9yZXZpc2lvbl9tYXJrKGNvbnN0IHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOworZXh0ZXJuIHZvaWQgcHV0X3JldmlzaW9uX21hcmsoY29uc3Qgc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKIAogZXh0ZXJuIHZvaWQgbWFya19wYXJlbnRzX3VuaW50ZXJlc3Rpbmcoc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKIGV4dGVybiB2b2lkIG1hcmtfdHJlZV91bmludGVyZXN0aW5nKHN0cnVjdCB0cmVlICp0cmVlKTsKQEAgLTIyMCwxNSArMjQwLDE5IEBACiAKIGNoYXIgKnBhdGhfbmFtZShjb25zdCBzdHJ1Y3QgbmFtZV9wYXRoICpwYXRoLCBjb25zdCBjaGFyICpuYW1lKTsKIAotZXh0ZXJuIHZvaWQgc2hvd19vYmplY3Rfd2l0aF9uYW1lKEZJTEUgKiwgc3RydWN0IG9iamVjdCAqLCBjb25zdCBzdHJ1Y3QgbmFtZV9wYXRoICosIGNvbnN0IGNoYXIgKik7CitleHRlcm4gdm9pZCBzaG93X29iamVjdF93aXRoX25hbWUoRklMRSAqLCBzdHJ1Y3Qgb2JqZWN0ICosCisJCQkJICBjb25zdCBzdHJ1Y3QgbmFtZV9wYXRoICosIGNvbnN0IGNoYXIgKik7CiAKIGV4dGVybiB2b2lkIGFkZF9vYmplY3Qoc3RydWN0IG9iamVjdCAqb2JqLAogCQkgICAgICAgc3RydWN0IG9iamVjdF9hcnJheSAqcCwKIAkJICAgICAgIHN0cnVjdCBuYW1lX3BhdGggKnBhdGgsCiAJCSAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKIAotZXh0ZXJuIHZvaWQgYWRkX3BlbmRpbmdfb2JqZWN0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IG9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpuYW1lKTsKLWV4dGVybiB2b2lkIGFkZF9wZW5kaW5nX3NoYTEoc3RydWN0IHJldl9pbmZvICpyZXZzLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOworZXh0ZXJuIHZvaWQgYWRkX3BlbmRpbmdfb2JqZWN0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCSAgICAgICBzdHJ1Y3Qgb2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIHZvaWQgYWRkX3BlbmRpbmdfc2hhMShzdHJ1Y3QgcmV2X2luZm8gKnJldnMsCisJCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsCisJCQkgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CiAKIGV4dGVybiB2b2lkIGFkZF9oZWFkX3RvX3BlbmRpbmcoc3RydWN0IHJldl9pbmZvICopOwogCkBAIC0yMzgsNyArMjYyLDM1IEBACiAJY29tbWl0X2Vycm9yCiB9OwogCi1leHRlcm4gZW51bSBjb21taXRfYWN0aW9uIGdldF9jb21taXRfYWN0aW9uKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKLWV4dGVybiBlbnVtIGNvbW1pdF9hY3Rpb24gc2ltcGxpZnlfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiBlbnVtIGNvbW1pdF9hY3Rpb24gZ2V0X2NvbW1pdF9hY3Rpb24oc3RydWN0IHJldl9pbmZvICpyZXZzLAorCQkJCQkgICAgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiBlbnVtIGNvbW1pdF9hY3Rpb24gc2ltcGxpZnlfY29tbWl0KHN0cnVjdCByZXZfaW5mbyAqcmV2cywKKwkJCQkJICBzdHJ1Y3QgY29tbWl0ICpjb21taXQpOworCitlbnVtIHJld3JpdGVfcmVzdWx0IHsKKwlyZXdyaXRlX29uZV9vaywKKwlyZXdyaXRlX29uZV9ub3BhcmVudHMsCisJcmV3cml0ZV9vbmVfZXJyb3IKK307CisKK3R5cGVkZWYgZW51bSByZXdyaXRlX3Jlc3VsdCAoKnJld3JpdGVfcGFyZW50X2ZuX3QpKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqKnBwKTsKKworZXh0ZXJuIGludCByZXdyaXRlX3BhcmVudHMoc3RydWN0IHJldl9pbmZvICpyZXZzLCBzdHJ1Y3QgY29tbWl0ICpjb21taXQsCisJcmV3cml0ZV9wYXJlbnRfZm5fdCByZXdyaXRlX3BhcmVudCk7CisKKy8qCisgKiBTYXZlIGEgY29weSBvZiB0aGUgcGFyZW50IGxpc3QsIGFuZCByZXR1cm4gdGhlIHNhdmVkIGNvcHkuICBUaGlzIGlzCisgKiB1c2VkIGJ5IHRoZSBsb2cgbWFjaGluZXJ5IHRvIHJldHJpZXZlIHRoZSBvcmlnaW5hbCBwYXJlbnRzIHdoZW4KKyAqIGNvbW1pdC0+cGFyZW50cyBoYXMgYmVlbiBtb2RpZmllZCBieSBoaXN0b3J5IHNpbXBpZmljYXRpb24uCisgKgorICogWW91IG1heSBvbmx5IGNhbGwgc2F2ZV9wYXJlbnRzKCkgb25jZSBwZXIgY29tbWl0ICh0aGlzIGlzIGNoZWNrZWQKKyAqIGZvciBub24tcm9vdCBjb21taXRzKS4KKyAqCisgKiBnZXRfc2F2ZWRfcGFyZW50cygpIHdpbGwgdHJhbnNwYXJlbnRseSByZXR1cm4gY29tbWl0LT5wYXJlbnRzIGlmCisgKiBoaXN0b3J5IHNpbXBsaWZpY2F0aW9uIGlzIG9mZi4KKyAqLworZXh0ZXJuIHZvaWQgc2F2ZV9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiBzdHJ1Y3QgY29tbWl0X2xpc3QgKmdldF9zYXZlZF9wYXJlbnRzKHN0cnVjdCByZXZfaW5mbyAqcmV2cywgY29uc3Qgc3RydWN0IGNvbW1pdCAqY29tbWl0KTsKK2V4dGVybiB2b2lkIGZyZWVfc2F2ZWRfcGFyZW50cyhzdHJ1Y3QgcmV2X2luZm8gKnJldnMpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3J1bi1jb21tYW5kLmMgYi9ydW4tY29tbWFuZC5jCmluZGV4IDFiMzJhMTIuLjFiN2Y4OGUgMTAwNjQ0Ci0tLSBhL3J1bi1jb21tYW5kLmMKKysrIGIvcnVuLWNvbW1hbmQuYwpAQCAtNzIsMTEgKzcyLDE0IEBACiAJY2xvc2UoZmRbMV0pOwogfQogCi0jaWZuZGVmIFdJTjMyCisjaWZuZGVmIEdJVF9XSU5ET1dTX05BVElWRQogc3RhdGljIGlubGluZSB2b2lkIGR1cF9kZXZudWxsKGludCB0bykKIHsKIAlpbnQgZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IpOwotCWR1cDIoZmQsIHRvKTsKKwlpZiAoZmQgPCAwKQorCQlkaWVfZXJybm8oXygib3BlbiAvZGV2L251bGwgZmFpbGVkIikpOworCWlmIChkdXAyKGZkLCB0bykgPCAwKQorCQlkaWVfZXJybm8oXygiZHVwMiglZCwlZCkgZmFpbGVkIiksIGZkLCB0byk7CiAJY2xvc2UoZmQpOwogfQogI2VuZGlmCkBAIC0xNTksNyArMTYyLDcgQEAKIAkJZGllKCJCVUc6IHNoZWxsIGNvbW1hbmQgaXMgZW1wdHkiKTsKIAogCWlmIChzdHJjc3BuKGFyZ3ZbMF0sICJ8Jjs8PigpJGBcXFwiJyBcdFxuKj9bI349JSIpICE9IHN0cmxlbihhcmd2WzBdKSkgewotI2lmbmRlZiBXSU4zMgorI2lmbmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAkJbmFyZ3ZbbmFyZ2MrK10gPSBTSEVMTF9QQVRIOwogI2Vsc2UKIAkJbmFyZ3ZbbmFyZ2MrK10gPSAic2giOwpAQCAtMTgyLDcgKzE4NSw3IEBACiAJcmV0dXJuIG5hcmd2OwogfQogCi0jaWZuZGVmIFdJTjMyCisjaWZuZGVmIEdJVF9XSU5ET1dTX05BVElWRQogc3RhdGljIGludCBleGVjdl9zaGVsbF9jbWQoY29uc3QgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqKm5hcmd2ID0gcHJlcGFyZV9zaGVsbF9jbWQoYXJndik7CkBAIC0xOTMsNyArMTk2LDcgQEAKIH0KICNlbmRpZgogCi0jaWZuZGVmIFdJTjMyCisjaWZuZGVmIEdJVF9XSU5ET1dTX05BVElWRQogc3RhdGljIGludCBjaGlsZF9lcnIgPSAyOwogc3RhdGljIGludCBjaGlsZF9ub3RpZmllciA9IC0xOwogCkBAIC0zMzQsNyArMzM3LDcgQEAKIAl0cmFjZV9hcmd2X3ByaW50ZihjbWQtPmFyZ3YsICJ0cmFjZTogcnVuX2NvbW1hbmQ6Iik7CiAJZmZsdXNoKE5VTEwpOwogCi0jaWZuZGVmIFdJTjMyCisjaWZuZGVmIEdJVF9XSU5ET1dTX05BVElWRQogewogCWludCBub3RpZnlfcGlwZVsyXTsKIAlpZiAocGlwZShub3RpZnlfcGlwZSkpCmRpZmYgLS1naXQgYS9ydW4tY29tbWFuZC5oIGIvcnVuLWNvbW1hbmQuaAppbmRleCAyMjFjZTMzLi42Yjk4NWFmIDEwMDY0NAotLS0gYS9ydW4tY29tbWFuZC5oCisrKyBiL3J1bi1jb21tYW5kLmgKQEAgLTQ2LDYgKzQ2LDcgQEAKIGludCBydW5fY29tbWFuZChzdHJ1Y3QgY2hpbGRfcHJvY2VzcyAqKTsKIAogZXh0ZXJuIGNoYXIgKmZpbmRfaG9vayhjb25zdCBjaGFyICpuYW1lKTsKK0xBU1RfQVJHX01VU1RfQkVfTlVMTAogZXh0ZXJuIGludCBydW5faG9vayhjb25zdCBjaGFyICppbmRleF9maWxlLCBjb25zdCBjaGFyICpuYW1lLCAuLi4pOwogCiAjZGVmaW5lIFJVTl9DT01NQU5EX05PX1NURElOIDEKZGlmZiAtLWdpdCBhL3NlcXVlbmNlci5jIGIvc2VxdWVuY2VyLmMKaW5kZXggY2Y4ZmJlYi4uMzUxNTQ4ZiAxMDA2NDQKLS0tIGEvc2VxdWVuY2VyLmMKKysrIGIvc2VxdWVuY2VyLmMKQEAgLTI3MCwxNSArMjcwLDIwIEBACiB9CiAKIHN0YXRpYyBpbnQgZmFzdF9mb3J3YXJkX3RvKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRvLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAotCQkJICAgaW50IHVuYm9ybikKKwkJCWludCB1bmJvcm4sIHN0cnVjdCByZXBsYXlfb3B0cyAqb3B0cykKIHsKIAlzdHJ1Y3QgcmVmX2xvY2sgKnJlZl9sb2NrOworCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKKwlpbnQgcmV0OwogCiAJcmVhZF9jYWNoZSgpOwogCWlmIChjaGVja291dF9mYXN0X2ZvcndhcmQoZnJvbSwgdG8sIDEpKQogCQlleGl0KDEpOyAvKiB0aGUgY2FsbGVlIHNob3VsZCBoYXZlIGNvbXBsYWluZWQgYWxyZWFkeSAqLwogCXJlZl9sb2NrID0gbG9ja19hbnlfcmVmX2Zvcl91cGRhdGUoIkhFQUQiLCB1bmJvcm4gPyBudWxsX3NoYTEgOiBmcm9tLCAwKTsKLQlyZXR1cm4gd3JpdGVfcmVmX3NoYTEocmVmX2xvY2ssIHRvLCAiY2hlcnJ5LXBpY2siKTsKKwlzdHJidWZfYWRkZigmc2IsICIlczogZmFzdC1mb3J3YXJkIiwgYWN0aW9uX25hbWUob3B0cykpOworCXJldCA9IHdyaXRlX3JlZl9zaGExKHJlZl9sb2NrLCB0bywgc2IuYnVmKTsKKwlzdHJidWZfcmVsZWFzZSgmc2IpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgZG9fcmVjdXJzaXZlX21lcmdlKHN0cnVjdCBjb21taXQgKmJhc2UsIHN0cnVjdCBjb21taXQgKm5leHQsCkBAIC0zMjYsNyArMzMxLDcgQEAKIAkJaW50IGk7CiAJCXN0cmJ1Zl9hZGRzdHIobXNnYnVmLCAiXG5Db25mbGljdHM6XG4iKTsKIAkJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjspIHsKLQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaSsrXTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaSsrXTsKIAkJCWlmIChjZV9zdGFnZShjZSkpIHsKIAkJCQlzdHJidWZfYWRkY2gobXNnYnVmLCAnXHQnKTsKIAkJCQlzdHJidWZfYWRkc3RyKG1zZ2J1ZiwgY2UtPm5hbWUpOwpAQCAtMzY2LDggKzM3MSw5IEBACiAJCWFjdGl2ZV9jYWNoZV90cmVlID0gY2FjaGVfdHJlZSgpOwogCiAJaWYgKCFjYWNoZV90cmVlX2Z1bGx5X3ZhbGlkKGFjdGl2ZV9jYWNoZV90cmVlKSkKLQkJaWYgKGNhY2hlX3RyZWVfdXBkYXRlKGFjdGl2ZV9jYWNoZV90cmVlLCBhY3RpdmVfY2FjaGUsCi0JCQkJICBhY3RpdmVfbnIsIDApKQorCQlpZiAoY2FjaGVfdHJlZV91cGRhdGUoYWN0aXZlX2NhY2hlX3RyZWUsCisJCQkJICAgICAgKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICopYWN0aXZlX2NhY2hlLAorCQkJCSAgICAgIGFjdGl2ZV9uciwgMCkpCiAJCQlyZXR1cm4gZXJyb3IoXygiVW5hYmxlIHRvIHVwZGF0ZSBjYWNoZSB0cmVlXG4iKSk7CiAKIAlyZXR1cm4gIWhhc2hjbXAoYWN0aXZlX2NhY2hlX3RyZWUtPnNoYTEsIGhlYWRfY29tbWl0LT50cmVlLT5vYmplY3Quc2hhMSk7CkBAIC00NzQsNyArNDgwLDcgQEAKIAlzdHJ1Y3QgY29tbWl0X21lc3NhZ2UgbXNnID0geyBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH07CiAJY2hhciAqZGVmbXNnID0gTlVMTDsKIAlzdHJ1Y3Qgc3RyYnVmIG1zZ2J1ZiA9IFNUUkJVRl9JTklUOwotCWludCByZXMsIHVuYm9ybiA9IDA7CisJaW50IHJlcywgdW5ib3JuID0gMCwgYWxsb3c7CiAKIAlpZiAob3B0cy0+bm9fY29tbWl0KSB7CiAJCS8qCkBAIC01MjMsNyArNTI5LDcgQEAKIAlpZiAob3B0cy0+YWxsb3dfZmYgJiYKIAkgICAgKChwYXJlbnQgJiYgIWhhc2hjbXAocGFyZW50LT5vYmplY3Quc2hhMSwgaGVhZCkpIHx8CiAJICAgICAoIXBhcmVudCAmJiB1bmJvcm4pKSkKLQkgICAgIHJldHVybiBmYXN0X2ZvcndhcmRfdG8oY29tbWl0LT5vYmplY3Quc2hhMSwgaGVhZCwgdW5ib3JuKTsKKwkJcmV0dXJuIGZhc3RfZm9yd2FyZF90byhjb21taXQtPm9iamVjdC5zaGExLCBoZWFkLCB1bmJvcm4sIG9wdHMpOwogCiAJaWYgKHBhcmVudCAmJiBwYXJzZV9jb21taXQocGFyZW50KSA8IDApCiAJCS8qIFRSQU5TTEFUT1JTOiBUaGUgZmlyc3QgJXMgd2lsbCBiZSAicmV2ZXJ0IiBvcgpAQCAtNjI0LDE0ICs2MzAsMTggQEAKIAkJICAgICAgbXNnLnN1YmplY3QpOwogCQlwcmludF9hZHZpY2UocmVzID09IDEsIG9wdHMpOwogCQlyZXJlcmUob3B0cy0+YWxsb3dfcmVyZXJlX2F1dG8pOwotCX0gZWxzZSB7Ci0JCWludCBhbGxvdyA9IGFsbG93X2VtcHR5KG9wdHMsIGNvbW1pdCk7Ci0JCWlmIChhbGxvdyA8IDApCi0JCQlyZXR1cm4gYWxsb3c7Ci0JCWlmICghb3B0cy0+bm9fY29tbWl0KQotCQkJcmVzID0gcnVuX2dpdF9jb21taXQoZGVmbXNnLCBvcHRzLCBhbGxvdyk7CisJCWdvdG8gbGVhdmU7CiAJfQogCisJYWxsb3cgPSBhbGxvd19lbXB0eShvcHRzLCBjb21taXQpOworCWlmIChhbGxvdyA8IDApIHsKKwkJcmVzID0gYWxsb3c7CisJCWdvdG8gbGVhdmU7CisJfQorCWlmICghb3B0cy0+bm9fY29tbWl0KQorCQlyZXMgPSBydW5fZ2l0X2NvbW1pdChkZWZtc2csIG9wdHMsIGFsbG93KTsKKworbGVhdmU6CiAJZnJlZV9tZXNzYWdlKCZtc2cpOwogCWZyZWUoZGVmbXNnKTsKIApAQCAtMTA3NywxMCArMTA4NywxMCBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKCFnZXRfc2hhMShuYW1lLCBzaGExKSkgewotCQkJZW51bSBvYmplY3RfdHlwZSB0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCBOVUxMKTsKLQotCQkJaWYgKHR5cGUgPiAwICYmIHR5cGUgIT0gT0JKX0NPTU1JVCkKKwkJCWlmICghbG9va3VwX2NvbW1pdF9yZWZlcmVuY2VfZ2VudGx5KHNoYTEsIDEpKSB7CisJCQkJZW51bSBvYmplY3RfdHlwZSB0eXBlID0gc2hhMV9vYmplY3RfaW5mbyhzaGExLCBOVUxMKTsKIAkJCQlkaWUoXygiJXM6IGNhbid0IGNoZXJyeS1waWNrIGEgJXMiKSwgbmFtZSwgdHlwZW5hbWUodHlwZSkpOworCQkJfQogCQl9IGVsc2UKIAkJCWRpZShfKCIlczogYmFkIHJldmlzaW9uIiksIG5hbWUpOwogCX0KZGlmZiAtLWdpdCBhL3NldHVwLmMgYi9zZXR1cC5jCmluZGV4IDk0YzFlNjEuLjUyNjIzMTkgMTAwNjQ0Ci0tLSBhL3NldHVwLmMKKysrIGIvc2V0dXAuYwpAQCAtMzYwLDYgKzM2MCw3IEBACiAKIHZvaWQgc2V0dXBfd29ya190cmVlKHZvaWQpCiB7CisJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwogCWNvbnN0IGNoYXIgKndvcmtfdHJlZSwgKmdpdF9kaXI7CiAJc3RhdGljIGludCBpbml0aWFsaXplZCA9IDA7CiAKQEAgLTM3OSw4ICszODAsMTAgQEAKIAlpZiAoZ2V0ZW52KEdJVF9XT1JLX1RSRUVfRU5WSVJPTk1FTlQpKQogCQlzZXRlbnYoR0lUX1dPUktfVFJFRV9FTlZJUk9OTUVOVCwgIi4iLCAxKTsKIAotCXNldF9naXRfZGlyKHJlbGF0aXZlX3BhdGgoZ2l0X2Rpciwgd29ya190cmVlKSk7CisJc2V0X2dpdF9kaXIocmVsYXRpdmVfcGF0aChnaXRfZGlyLCB3b3JrX3RyZWUsICZzYikpOwogCWluaXRpYWxpemVkID0gMTsKKworCXN0cmJ1Zl9yZWxlYXNlKCZzYik7CiB9CiAKIHN0YXRpYyBpbnQgY2hlY2tfcmVwb3NpdG9yeV9mb3JtYXRfZ2VudGx5KGNvbnN0IGNoYXIgKmdpdGRpciwgaW50ICpub25naXRfb2spCkBAIC05MDgsMyArOTExLDE1IEBACiAJCXJldHVybiBzdXNwZWN0OwogCXJldHVybiByZWFkX2dpdGZpbGUoc3VzcGVjdCk7CiB9CisKKy8qIGlmIGFueSBzdGFuZGFyZCBmaWxlIGRlc2NyaXB0b3IgaXMgbWlzc2luZyBvcGVuIGl0IHRvIC9kZXYvbnVsbCAqLwordm9pZCBzYW5pdGl6ZV9zdGRmZHModm9pZCkKK3sKKwlpbnQgZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IsIDApOworCXdoaWxlIChmZCAhPSAtMSAmJiBmZCA8IDIpCisJCWZkID0gZHVwKGZkKTsKKwlpZiAoZmQgPT0gLTEpCisJCWRpZV9lcnJubygib3BlbiAvZGV2L251bGwgb3IgZHVwIGZhaWxlZCIpOworCWlmIChmZCA+IDIpCisJCWNsb3NlKGZkKTsKK30KZGlmZiAtLWdpdCBhL3NoYTFfZmlsZS5jIGIvc2hhMV9maWxlLmMKaW5kZXggNjdlODE1Yi4uOGUyN2RiMSAxMDA2NDQKLS0tIGEvc2hhMV9maWxlLmMKKysrIGIvc2hhMV9maWxlLmMKQEAgLTM2LDYgKzM2LDkgQEAKIAogY29uc3QgdW5zaWduZWQgY2hhciBudWxsX3NoYTFbMjBdOwogCitzdGF0aWMgY29uc3QgY2hhciAqbm9fbG9nX3BhY2tfYWNjZXNzID0gIm5vX2xvZ19wYWNrX2FjY2VzcyI7CitzdGF0aWMgY29uc3QgY2hhciAqbG9nX3BhY2tfYWNjZXNzOworCiAvKgogICogVGhpcyBpcyBtZWFudCB0byBob2xkIGEgKnNtYWxsKiBudW1iZXIgb2Ygb2JqZWN0cyB0aGF0IHlvdSB3b3VsZAogICogd2FudCByZWFkX3NoYTFfZmlsZSgpIHRvIGJlIGFibGUgdG8gcmV0dXJuLCBidXQgeWV0IHlvdSBkbyBub3Qgd2FudApAQCAtMTMwMyw2ICsxMzA2LDI2IEBACiAJfQogfQogCitzdGF0aWMgaW50IHN0YXRfc2hhMV9maWxlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIHN0cnVjdCBzdGF0ICpzdCkKK3sKKwljaGFyICpuYW1lID0gc2hhMV9maWxlX25hbWUoc2hhMSk7CisJc3RydWN0IGFsdGVybmF0ZV9vYmplY3RfZGF0YWJhc2UgKmFsdDsKKworCWlmICghbHN0YXQobmFtZSwgc3QpKQorCQlyZXR1cm4gMDsKKworCXByZXBhcmVfYWx0X29kYigpOworCWVycm5vID0gRU5PRU5UOworCWZvciAoYWx0ID0gYWx0X29kYl9saXN0OyBhbHQ7IGFsdCA9IGFsdC0+bmV4dCkgeworCQluYW1lID0gYWx0LT5uYW1lOworCQlmaWxsX3NoYTFfcGF0aChuYW1lLCBzaGExKTsKKwkJaWYgKCFsc3RhdChhbHQtPmJhc2UsIHN0KSkKKwkJCXJldHVybiAwOworCX0KKworCXJldHVybiAtMTsKK30KKwogc3RhdGljIGludCBvcGVuX3NoYTFfZmlsZShjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewogCWludCBmZDsKQEAgLTE2OTAsNDYgKzE3MTMsMjEgQEAKIAlyZXR1cm4gdHlwZTsKIH0KIAotCiAjZGVmaW5lIFBPSV9TVEFDS19QUkVBTExPQyA2NAogCi1zdGF0aWMgaW50IHBhY2tlZF9vYmplY3RfaW5mbyhzdHJ1Y3QgcGFja2VkX2dpdCAqcCwgb2ZmX3Qgb2JqX29mZnNldCwKLQkJCSAgICAgIHVuc2lnbmVkIGxvbmcgKnNpemVwLCBpbnQgKnJ0eXBlKQorc3RhdGljIGVudW0gb2JqZWN0X3R5cGUgcGFja2VkX3RvX29iamVjdF90eXBlKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLAorCQkJCQkgICAgICBvZmZfdCBvYmpfb2Zmc2V0LAorCQkJCQkgICAgICBlbnVtIG9iamVjdF90eXBlIHR5cGUsCisJCQkJCSAgICAgIHN0cnVjdCBwYWNrX3dpbmRvdyAqKndfY3VycywKKwkJCQkJICAgICAgb2ZmX3QgY3VycG9zKQogewotCXN0cnVjdCBwYWNrX3dpbmRvdyAqd19jdXJzID0gTlVMTDsKLQl1bnNpZ25lZCBsb25nIHNpemU7Ci0Jb2ZmX3QgY3VycG9zID0gb2JqX29mZnNldDsKLQllbnVtIG9iamVjdF90eXBlIHR5cGU7CiAJb2ZmX3Qgc21hbGxfcG9pX3N0YWNrW1BPSV9TVEFDS19QUkVBTExPQ107CiAJb2ZmX3QgKnBvaV9zdGFjayA9IHNtYWxsX3BvaV9zdGFjazsKIAlpbnQgcG9pX3N0YWNrX25yID0gMCwgcG9pX3N0YWNrX2FsbG9jID0gUE9JX1NUQUNLX1BSRUFMTE9DOwogCi0JdHlwZSA9IHVucGFja19vYmplY3RfaGVhZGVyKHAsICZ3X2N1cnMsICZjdXJwb3MsICZzaXplKTsKLQotCWlmIChydHlwZSkKLQkJKnJ0eXBlID0gdHlwZTsgLyogcmVwcmVzZW50YXRpb24gdHlwZSAqLwotCi0JaWYgKHNpemVwKSB7Ci0JCWlmICh0eXBlID09IE9CSl9PRlNfREVMVEEgfHwgdHlwZSA9PSBPQkpfUkVGX0RFTFRBKSB7Ci0JCQlvZmZfdCB0bXBfcG9zID0gY3VycG9zOwotCQkJb2ZmX3QgYmFzZV9vZmZzZXQgPSBnZXRfZGVsdGFfYmFzZShwLCAmd19jdXJzLCAmdG1wX3BvcywKLQkJCQkJCQkgICB0eXBlLCBvYmpfb2Zmc2V0KTsKLQkJCWlmICghYmFzZV9vZmZzZXQpIHsKLQkJCQl0eXBlID0gT0JKX0JBRDsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQkJCSpzaXplcCA9IGdldF9zaXplX2Zyb21fZGVsdGEocCwgJndfY3VycywgdG1wX3Bvcyk7Ci0JCQlpZiAoKnNpemVwID09IDApIHsKLQkJCQl0eXBlID0gT0JKX0JBRDsKLQkJCQlnb3RvIG91dDsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCSpzaXplcCA9IHNpemU7Ci0JCX0KLQl9Ci0KIAl3aGlsZSAodHlwZSA9PSBPQkpfT0ZTX0RFTFRBIHx8IHR5cGUgPT0gT0JKX1JFRl9ERUxUQSkgewogCQlvZmZfdCBiYXNlX29mZnNldDsKKwkJdW5zaWduZWQgbG9uZyBzaXplOwogCQkvKiBQdXNoIHRoZSBvYmplY3Qgd2UncmUgZ29pbmcgdG8gbGVhdmUgYmVoaW5kICovCiAJCWlmIChwb2lfc3RhY2tfbnIgPj0gcG9pX3N0YWNrX2FsbG9jICYmIHBvaV9zdGFjayA9PSBzbWFsbF9wb2lfc3RhY2spIHsKIAkJCXBvaV9zdGFja19hbGxvYyA9IGFsbG9jX25yKHBvaV9zdGFja19ucik7CkBAIC0xNzQwLDExICsxNzM4LDExIEBACiAJCX0KIAkJcG9pX3N0YWNrW3BvaV9zdGFja19ucisrXSA9IG9ial9vZmZzZXQ7CiAJCS8qIElmIHBhcnNpbmcgdGhlIGJhc2Ugb2Zmc2V0IGZhaWxzLCBqdXN0IHVud2luZCAqLwotCQliYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsICZ3X2N1cnMsICZjdXJwb3MsIHR5cGUsIG9ial9vZmZzZXQpOworCQliYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsIHdfY3VycywgJmN1cnBvcywgdHlwZSwgb2JqX29mZnNldCk7CiAJCWlmICghYmFzZV9vZmZzZXQpCiAJCQlnb3RvIHVud2luZDsKIAkJY3VycG9zID0gb2JqX29mZnNldCA9IGJhc2Vfb2Zmc2V0OwotCQl0eXBlID0gdW5wYWNrX29iamVjdF9oZWFkZXIocCwgJndfY3VycywgJmN1cnBvcywgJnNpemUpOworCQl0eXBlID0gdW5wYWNrX29iamVjdF9oZWFkZXIocCwgd19jdXJzLCAmY3VycG9zLCAmc2l6ZSk7CiAJCWlmICh0eXBlIDw9IE9CSl9OT05FKSB7CiAJCQkvKiBJZiBnZXR0aW5nIHRoZSBiYXNlIGl0c2VsZiBmYWlscywgd2UgZmlyc3QKIAkJCSAqIHJldHJ5IHRoZSBiYXNlLCBvdGhlcndpc2UgdW53aW5kICovCkBAIC0xNzcxLDcgKzE3NjksNiBAQAogb3V0OgogCWlmIChwb2lfc3RhY2sgIT0gc21hbGxfcG9pX3N0YWNrKQogCQlmcmVlKHBvaV9zdGFjayk7Ci0JdW51c2VfcGFjaygmd19jdXJzKTsKIAlyZXR1cm4gdHlwZTsKIAogdW53aW5kOgpAQCAtMTc4NSw2ICsxNzgyLDU3IEBACiAJZ290byBvdXQ7CiB9CiAKK3N0YXRpYyBpbnQgcGFja2VkX29iamVjdF9pbmZvKHN0cnVjdCBwYWNrZWRfZ2l0ICpwLCBvZmZfdCBvYmpfb2Zmc2V0LAorCQkJICAgICAgc3RydWN0IG9iamVjdF9pbmZvICpvaSkKK3sKKwlzdHJ1Y3QgcGFja193aW5kb3cgKndfY3VycyA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBzaXplOworCW9mZl90IGN1cnBvcyA9IG9ial9vZmZzZXQ7CisJZW51bSBvYmplY3RfdHlwZSB0eXBlOworCisJLyoKKwkgKiBXZSBhbHdheXMgZ2V0IHRoZSByZXByZXNlbnRhdGlvbiB0eXBlLCBidXQgb25seSBjb252ZXJ0IGl0IHRvCisJICogYSAicmVhbCIgdHlwZSBsYXRlciBpZiB0aGUgY2FsbGVyIGlzIGludGVyZXN0ZWQuCisJICovCisJdHlwZSA9IHVucGFja19vYmplY3RfaGVhZGVyKHAsICZ3X2N1cnMsICZjdXJwb3MsICZzaXplKTsKKworCWlmIChvaS0+c2l6ZXApIHsKKwkJaWYgKHR5cGUgPT0gT0JKX09GU19ERUxUQSB8fCB0eXBlID09IE9CSl9SRUZfREVMVEEpIHsKKwkJCW9mZl90IHRtcF9wb3MgPSBjdXJwb3M7CisJCQlvZmZfdCBiYXNlX29mZnNldCA9IGdldF9kZWx0YV9iYXNlKHAsICZ3X2N1cnMsICZ0bXBfcG9zLAorCQkJCQkJCSAgIHR5cGUsIG9ial9vZmZzZXQpOworCQkJaWYgKCFiYXNlX29mZnNldCkgeworCQkJCXR5cGUgPSBPQkpfQkFEOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJKm9pLT5zaXplcCA9IGdldF9zaXplX2Zyb21fZGVsdGEocCwgJndfY3VycywgdG1wX3Bvcyk7CisJCQlpZiAoKm9pLT5zaXplcCA9PSAwKSB7CisJCQkJdHlwZSA9IE9CSl9CQUQ7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0gZWxzZSB7CisJCQkqb2ktPnNpemVwID0gc2l6ZTsKKwkJfQorCX0KKworCWlmIChvaS0+ZGlza19zaXplcCkgeworCQlzdHJ1Y3QgcmV2aW5kZXhfZW50cnkgKnJldmlkeCA9IGZpbmRfcGFja19yZXZpbmRleChwLCBvYmpfb2Zmc2V0KTsKKwkJKm9pLT5kaXNrX3NpemVwID0gcmV2aWR4WzFdLm9mZnNldCAtIG9ial9vZmZzZXQ7CisJfQorCisJaWYgKG9pLT50eXBlcCkgeworCQkqb2ktPnR5cGVwID0gcGFja2VkX3RvX29iamVjdF90eXBlKHAsIG9ial9vZmZzZXQsIHR5cGUsICZ3X2N1cnMsIGN1cnBvcyk7CisJCWlmICgqb2ktPnR5cGVwIDwgMCkgeworCQkJdHlwZSA9IE9CSl9CQUQ7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworb3V0OgorCXVudXNlX3BhY2soJndfY3Vycyk7CisJcmV0dXJuIHR5cGU7Cit9CisKIHN0YXRpYyB2b2lkICp1bnBhY2tfY29tcHJlc3NlZF9lbnRyeShzdHJ1Y3QgcGFja2VkX2dpdCAqcCwKIAkJCQkgICAgc3RydWN0IHBhY2tfd2luZG93ICoqd19jdXJzLAogCQkJCSAgICBvZmZfdCBjdXJwb3MsCkBAIC0xOTU2LDEyICsyMDA0LDE5IEBACiB7CiAJc3RhdGljIEZJTEUgKmxvZ19maWxlOwogCisJaWYgKCFsb2dfcGFja19hY2Nlc3MpCisJCWxvZ19wYWNrX2FjY2VzcyA9IGdldGVudigiR0lUX1RSQUNFX1BBQ0tfQUNDRVNTIik7CisJaWYgKCFsb2dfcGFja19hY2Nlc3MpCisJCWxvZ19wYWNrX2FjY2VzcyA9IG5vX2xvZ19wYWNrX2FjY2VzczsKKwlpZiAobG9nX3BhY2tfYWNjZXNzID09IG5vX2xvZ19wYWNrX2FjY2VzcykKKwkJcmV0dXJuOworCiAJaWYgKCFsb2dfZmlsZSkgewogCQlsb2dfZmlsZSA9IGZvcGVuKGxvZ19wYWNrX2FjY2VzcywgInciKTsKIAkJaWYgKCFsb2dfZmlsZSkgewogCQkJZXJyb3IoImNhbm5vdCBvcGVuIHBhY2sgYWNjZXNzIGxvZyAnJXMnIGZvciB3cml0aW5nOiAlcyIsCiAJCQkgICAgICBsb2dfcGFja19hY2Nlc3MsIHN0cmVycm9yKGVycm5vKSk7Ci0JCQlsb2dfcGFja19hY2Nlc3MgPSBOVUxMOworCQkJbG9nX3BhY2tfYWNjZXNzID0gbm9fbG9nX3BhY2tfYWNjZXNzOwogCQkJcmV0dXJuOwogCQl9CiAJfQpAQCAtMTk5Miw3ICsyMDQ3LDcgQEAKIAlpbnQgZGVsdGFfc3RhY2tfbnIgPSAwLCBkZWx0YV9zdGFja19hbGxvYyA9IFVOUEFDS19FTlRSWV9TVEFDS19QUkVBTExPQzsKIAlpbnQgYmFzZV9mcm9tX2NhY2hlID0gMDsKIAotCWlmIChsb2dfcGFja19hY2Nlc3MpCisJaWYgKGxvZ19wYWNrX2FjY2VzcyAhPSBub19sb2dfcGFja19hY2Nlc3MpCiAJCXdyaXRlX3BhY2tfYWNjZXNzX2xvZyhwLCBvYmpfb2Zmc2V0KTsKIAogCS8qIFBIQVNFIDE6IGRyaWxsIGRvd24gdG8gdGhlIGlubmVybW9zdCBiYXNlIG9iamVjdCAqLwpAQCAtMjEzNSwxMCArMjE5MCwxOSBAQAogCQlkYXRhID0gcGF0Y2hfZGVsdGEoYmFzZSwgYmFzZV9zaXplLAogCQkJCSAgIGRlbHRhX2RhdGEsIGRlbHRhX3NpemUsCiAJCQkJICAgJnNpemUpOwotCQlpZiAoIWRhdGEpCi0JCQlkaWUoImZhaWxlZCB0byBhcHBseSBkZWx0YSIpOwogCi0JCWZyZWUgKGRlbHRhX2RhdGEpOworCQkvKgorCQkgKiBXZSBjb3VsZCBub3QgYXBwbHkgdGhlIGRlbHRhOyB3YXJuIHRoZSB1c2VyLCBidXQga2VlcCBnb2luZy4KKwkJICogT3VyIGZhaWx1cmUgd2lsbCBiZSBub3RpY2VkIGVpdGhlciBpbiB0aGUgbmV4dCBpdGVyYXRpb24gb2YKKwkJICogdGhlIGxvb3AsIG9yIGlmIHRoaXMgaXMgdGhlIGZpbmFsIGRlbHRhLCBpbiB0aGUgY2FsbGVyIHdoZW4KKwkJICogd2UgcmV0dXJuIE5VTEwuIFRob3NlIGNvZGUgcGF0aHMgd2lsbCB0YWtlIGNhcmUgb2YgbWFraW5nCisJCSAqIGEgbW9yZSBleHBsaWNpdCB3YXJuaW5nIGFuZCByZXRyeWluZyB3aXRoIGFub3RoZXIgY29weSBvZgorCQkgKiB0aGUgb2JqZWN0LgorCQkgKi8KKwkJaWYgKCFkYXRhKQorCQkJZXJyb3IoImZhaWxlZCB0byBhcHBseSBkZWx0YSIpOworCisJCWZyZWUoZGVsdGFfZGF0YSk7CiAJfQogCiAJKmZpbmFsX3R5cGUgPSB0eXBlOwpAQCAtMjMzOCw3ICsyNDAyLDggQEAKIAogfQogCi1zdGF0aWMgaW50IHNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgbG9uZyAqc2l6ZXApCitzdGF0aWMgaW50IHNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKKwkJCQkgIHN0cnVjdCBvYmplY3RfaW5mbyAqb2kpCiB7CiAJaW50IHN0YXR1czsKIAl1bnNpZ25lZCBsb25nIG1hcHNpemUsIHNpemU7CkBAIC0yMzQ2LDE5ICsyNDExLDM3IEBACiAJZ2l0X3pzdHJlYW0gc3RyZWFtOwogCWNoYXIgaGRyWzMyXTsKIAorCS8qCisJICogSWYgd2UgZG9uJ3QgY2FyZSBhYm91dCB0eXBlIG9yIHNpemUsIHRoZW4gd2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGxvb2sgaW5zaWRlIHRoZSBvYmplY3QgYXQgYWxsLgorCSAqLworCWlmICghb2ktPnR5cGVwICYmICFvaS0+c2l6ZXApIHsKKwkJaWYgKG9pLT5kaXNrX3NpemVwKSB7CisJCQlzdHJ1Y3Qgc3RhdCBzdDsKKwkJCWlmIChzdGF0X3NoYTFfZmlsZShzaGExLCAmc3QpIDwgMCkKKwkJCQlyZXR1cm4gLTE7CisJCQkqb2ktPmRpc2tfc2l6ZXAgPSBzdC5zdF9zaXplOworCQl9CisJCXJldHVybiAwOworCX0KKwogCW1hcCA9IG1hcF9zaGExX2ZpbGUoc2hhMSwgJm1hcHNpemUpOwogCWlmICghbWFwKQotCQlyZXR1cm4gZXJyb3IoInVuYWJsZSB0byBmaW5kICVzIiwgc2hhMV90b19oZXgoc2hhMSkpOworCQlyZXR1cm4gLTE7CisJaWYgKG9pLT5kaXNrX3NpemVwKQorCQkqb2ktPmRpc2tfc2l6ZXAgPSBtYXBzaXplOwogCWlmICh1bnBhY2tfc2hhMV9oZWFkZXIoJnN0cmVhbSwgbWFwLCBtYXBzaXplLCBoZHIsIHNpemVvZihoZHIpKSA8IDApCiAJCXN0YXR1cyA9IGVycm9yKCJ1bmFibGUgdG8gdW5wYWNrICVzIGhlYWRlciIsCiAJCQkgICAgICAgc2hhMV90b19oZXgoc2hhMSkpOwogCWVsc2UgaWYgKChzdGF0dXMgPSBwYXJzZV9zaGExX2hlYWRlcihoZHIsICZzaXplKSkgPCAwKQogCQlzdGF0dXMgPSBlcnJvcigidW5hYmxlIHRvIHBhcnNlICVzIGhlYWRlciIsIHNoYTFfdG9faGV4KHNoYTEpKTsKLQllbHNlIGlmIChzaXplcCkKLQkJKnNpemVwID0gc2l6ZTsKKwllbHNlIGlmIChvaS0+c2l6ZXApCisJCSpvaS0+c2l6ZXAgPSBzaXplOwogCWdpdF9pbmZsYXRlX2VuZCgmc3RyZWFtKTsKIAltdW5tYXAobWFwLCBtYXBzaXplKTsKLQlyZXR1cm4gc3RhdHVzOworCWlmIChvaS0+dHlwZXApCisJCSpvaS0+dHlwZXAgPSBzdGF0dXM7CisJcmV0dXJuIDA7CiB9CiAKIC8qIHJldHVybnMgZW51bSBvYmplY3RfdHlwZSBvciBuZWdhdGl2ZSAqLwpAQCAtMjM2NiwzNCArMjQ0OSwzNyBAQAogewogCXN0cnVjdCBjYWNoZWRfb2JqZWN0ICpjbzsKIAlzdHJ1Y3QgcGFja19lbnRyeSBlOwotCWludCBzdGF0dXMsIHJ0eXBlOworCWludCBydHlwZTsKIAogCWNvID0gZmluZF9jYWNoZWRfb2JqZWN0KHNoYTEpOwogCWlmIChjbykgeworCQlpZiAob2ktPnR5cGVwKQorCQkJKihvaS0+dHlwZXApID0gY28tPnR5cGU7CiAJCWlmIChvaS0+c2l6ZXApCiAJCQkqKG9pLT5zaXplcCkgPSBjby0+c2l6ZTsKKwkJaWYgKG9pLT5kaXNrX3NpemVwKQorCQkJKihvaS0+ZGlza19zaXplcCkgPSAwOwogCQlvaS0+d2hlbmNlID0gT0lfQ0FDSEVEOwotCQlyZXR1cm4gY28tPnR5cGU7CisJCXJldHVybiAwOwogCX0KIAogCWlmICghZmluZF9wYWNrX2VudHJ5KHNoYTEsICZlKSkgewogCQkvKiBNb3N0IGxpa2VseSBpdCdzIGEgbG9vc2Ugb2JqZWN0LiAqLwotCQlzdGF0dXMgPSBzaGExX2xvb3NlX29iamVjdF9pbmZvKHNoYTEsIG9pLT5zaXplcCk7Ci0JCWlmIChzdGF0dXMgPj0gMCkgeworCQlpZiAoIXNoYTFfbG9vc2Vfb2JqZWN0X2luZm8oc2hhMSwgb2kpKSB7CiAJCQlvaS0+d2hlbmNlID0gT0lfTE9PU0U7Ci0JCQlyZXR1cm4gc3RhdHVzOworCQkJcmV0dXJuIDA7CiAJCX0KIAogCQkvKiBOb3QgYSBsb29zZSBvYmplY3Q7IHNvbWVvbmUgZWxzZSBtYXkgaGF2ZSBqdXN0IHBhY2tlZCBpdC4gKi8KIAkJcmVwcmVwYXJlX3BhY2tlZF9naXQoKTsKIAkJaWYgKCFmaW5kX3BhY2tfZW50cnkoc2hhMSwgJmUpKQotCQkJcmV0dXJuIHN0YXR1czsKKwkJCXJldHVybiAtMTsKIAl9CiAKLQlzdGF0dXMgPSBwYWNrZWRfb2JqZWN0X2luZm8oZS5wLCBlLm9mZnNldCwgb2ktPnNpemVwLCAmcnR5cGUpOwotCWlmIChzdGF0dXMgPCAwKSB7CisJcnR5cGUgPSBwYWNrZWRfb2JqZWN0X2luZm8oZS5wLCBlLm9mZnNldCwgb2kpOworCWlmIChydHlwZSA8IDApIHsKIAkJbWFya19iYWRfcGFja2VkX29iamVjdChlLnAsIHNoYTEpOwotCQlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pKTsKKwkJcmV0dXJuIHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgb2kpOwogCX0gZWxzZSBpZiAoaW5fZGVsdGFfYmFzZV9jYWNoZShlLnAsIGUub2Zmc2V0KSkgewogCQlvaS0+d2hlbmNlID0gT0lfREJDQUNIRUQ7CiAJfSBlbHNlIHsKQEAgLTI0MDQsMTUgKzI0OTAsMTkgQEAKIAkJCQkJIHJ0eXBlID09IE9CSl9PRlNfREVMVEEpOwogCX0KIAotCXJldHVybiBzdGF0dXM7CisJcmV0dXJuIDA7CiB9CiAKIGludCBzaGExX29iamVjdF9pbmZvKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNoYTEsIHVuc2lnbmVkIGxvbmcgKnNpemVwKQogewotCXN0cnVjdCBvYmplY3RfaW5mbyBvaTsKKwllbnVtIG9iamVjdF90eXBlIHR5cGU7CisJc3RydWN0IG9iamVjdF9pbmZvIG9pID0ge05VTEx9OwogCisJb2kudHlwZXAgPSAmdHlwZTsKIAlvaS5zaXplcCA9IHNpemVwOwotCXJldHVybiBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsICZvaSk7CisJaWYgKHNoYTFfb2JqZWN0X2luZm9fZXh0ZW5kZWQoc2hhMSwgJm9pKSA8IDApCisJCXJldHVybiAtMTsKKwlyZXR1cm4gdHlwZTsKIH0KIAogc3RhdGljIHZvaWQgKnJlYWRfcGFja2VkX3NoYTEoY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSwKZGlmZiAtLWdpdCBhL3NoYTFfbmFtZS5jIGIvc2hhMV9uYW1lLmMKaW5kZXggMzgyMGYyOC4uNjVhZDA2NiAxMDA2NDQKLS0tIGEvc2hhMV9uYW1lLmMKKysrIGIvc2hhMV9uYW1lLmMKQEAgLTUyLDcgKzUyLDcgQEAKIAl9CiAKIAlpZiAoIWRzLT5jYW5kaWRhdGVfb2spIHsKLQkJLyogZGlzY2FyZCB0aGUgY2FuZGlkYXRlOyB3ZSBrbm93IGl0IGRvZXMgbm90IHNhdGlzaWZ5IGZuICovCisJCS8qIGRpc2NhcmQgdGhlIGNhbmRpZGF0ZTsgd2Uga25vdyBpdCBkb2VzIG5vdCBzYXRpc2Z5IGZuICovCiAJCWhhc2hjcHkoZHMtPmNhbmRpZGF0ZSwgY3VycmVudCk7CiAJCWRzLT5jYW5kaWRhdGVfY2hlY2tlZCA9IDA7CiAJCXJldHVybjsKQEAgLTI0MSw3ICsyNDEsNyBAQAogCQlyZXR1cm4gMDsKIAogCS8qIFdlIG5lZWQgdG8gZG8gdGhpcyB0aGUgaGFyZCB3YXkuLi4gKi8KLQlvYmogPSBkZXJlZl90YWcobG9va3VwX29iamVjdChzaGExKSwgTlVMTCwgMCk7CisJb2JqID0gZGVyZWZfdGFnKHBhcnNlX29iamVjdChzaGExKSwgTlVMTCwgMCk7CiAJaWYgKG9iaiAmJiBvYmotPnR5cGUgPT0gT0JKX0NPTU1JVCkKIAkJcmV0dXJuIDE7CiAJcmV0dXJuIDA7CkBAIC00MzEsMjIgKzQzMSw1MSBAQAogfQogCiBzdGF0aWMgaW50IGdldF9zaGExXzEoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSwgdW5zaWduZWQgbG9va3VwX2ZsYWdzKTsKK3N0YXRpYyBpbnQgaW50ZXJwcmV0X250aF9wcmlvcl9jaGVja291dChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3RyYnVmICpidWYpOwogCiBzdGF0aWMgaW50IGdldF9zaGExX2Jhc2ljKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbiwgdW5zaWduZWQgY2hhciAqc2hhMSkKIHsKIAlzdGF0aWMgY29uc3QgY2hhciAqd2Fybl9tc2cgPSAicmVmbmFtZSAnJS4qcycgaXMgYW1iaWd1b3VzLiI7CisJc3RhdGljIGNvbnN0IGNoYXIgKm9iamVjdF9uYW1lX21zZyA9IE5fKAorCSJHaXQgbm9ybWFsbHkgbmV2ZXIgY3JlYXRlcyBhIHJlZiB0aGF0IGVuZHMgd2l0aCA0MCBoZXggY2hhcmFjdGVyc1xuIgorCSJiZWNhdXNlIGl0IHdpbGwgYmUgaWdub3JlZCB3aGVuIHlvdSBqdXN0IHNwZWNpZnkgNDAtaGV4LiBUaGVzZSByZWZzXG4iCisJIm1heSBiZSBjcmVhdGVkIGJ5IG1pc3Rha2UuIEZvciBleGFtcGxlLFxuIgorCSJcbiIKKwkiICBnaXQgY2hlY2tvdXQgLWIgJGJyICQoZ2l0IHJldi1wYXJzZSAuLi4pXG4iCisJIlxuIgorCSJ3aGVyZSBcIiRiclwiIGlzIHNvbWVob3cgZW1wdHkgYW5kIGEgNDAtaGV4IHJlZiBpcyBjcmVhdGVkLiBQbGVhc2VcbiIKKwkiZXhhbWluZSB0aGVzZSByZWZzIGFuZCBtYXliZSBkZWxldGUgdGhlbS4gVHVybiB0aGlzIG1lc3NhZ2Ugb2ZmIGJ5XG4iCisJInJ1bm5pbmcgXCJnaXQgY29uZmlnIGFkdmljZS5vYmplY3ROYW1lV2FybmluZyBmYWxzZVwiIik7CisJdW5zaWduZWQgY2hhciB0bXBfc2hhMVsyMF07CiAJY2hhciAqcmVhbF9yZWYgPSBOVUxMOwogCWludCByZWZzX2ZvdW5kID0gMDsKLQlpbnQgYXQsIHJlZmxvZ19sZW47CisJaW50IGF0LCByZWZsb2dfbGVuLCBudGhfcHJpb3IgPSAwOwogCi0JaWYgKGxlbiA9PSA0MCAmJiAhZ2V0X3NoYTFfaGV4KHN0ciwgc2hhMSkpCisJaWYgKGxlbiA9PSA0MCAmJiAhZ2V0X3NoYTFfaGV4KHN0ciwgc2hhMSkpIHsKKwkJaWYgKHdhcm5fb25fb2JqZWN0X3JlZm5hbWVfYW1iaWd1aXR5KSB7CisJCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoc3RyLCBsZW4sIHRtcF9zaGExLCAmcmVhbF9yZWYpOworCQkJaWYgKHJlZnNfZm91bmQgPiAwICYmIHdhcm5fYW1iaWd1b3VzX3JlZnMpIHsKKwkJCQl3YXJuaW5nKHdhcm5fbXNnLCBsZW4sIHN0cik7CisJCQkJaWYgKGFkdmljZV9vYmplY3RfbmFtZV93YXJuaW5nKQorCQkJCQlmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBfKG9iamVjdF9uYW1lX21zZykpOworCQkJfQorCQkJZnJlZShyZWFsX3JlZik7CisJCX0KIAkJcmV0dXJuIDA7CisJfQogCiAJLyogYmFzaWNAe3RpbWUgb3IgbnVtYmVyIG9yIC1udW1iZXJ9IGZvcm1hdCB0byBxdWVyeSByZWYtbG9nICovCiAJcmVmbG9nX2xlbiA9IGF0ID0gMDsKIAlpZiAobGVuICYmIHN0cltsZW4tMV0gPT0gJ30nKSB7Ci0JCWZvciAoYXQgPSBsZW4tMjsgYXQgPj0gMDsgYXQtLSkgeworCQlmb3IgKGF0ID0gbGVuLTQ7IGF0ID49IDA7IGF0LS0pIHsKIAkJCWlmIChzdHJbYXRdID09ICdAJyAmJiBzdHJbYXQrMV0gPT0gJ3snKSB7CisJCQkJaWYgKHN0clthdCsyXSA9PSAnLScpIHsKKwkJCQkJaWYgKGF0ICE9IDApCisJCQkJCQkvKiBAey1OfSBub3QgYXQgc3RhcnQgKi8KKwkJCQkJCXJldHVybiAtMTsKKwkJCQkJbnRoX3ByaW9yID0gMTsKKwkJCQkJY29udGludWU7CisJCQkJfQogCQkJCWlmICghdXBzdHJlYW1fbWFyayhzdHIgKyBhdCwgbGVuIC0gYXQpKSB7CiAJCQkJCXJlZmxvZ19sZW4gPSAobGVuLTEpIC0gKGF0KzIpOwogCQkJCQlsZW4gPSBhdDsKQEAgLTQ2MCwyMCArNDg5LDIyIEBACiAJaWYgKGxlbiAmJiBhbWJpZ3VvdXNfcGF0aChzdHIsIGxlbikpCiAJCXJldHVybiAtMTsKIAotCWlmICghbGVuICYmIHJlZmxvZ19sZW4pIHsKKwlpZiAobnRoX3ByaW9yKSB7CiAJCXN0cnVjdCBzdHJidWYgYnVmID0gU1RSQlVGX0lOSVQ7Ci0JCWludCByZXQ7Ci0JCS8qIHRyeSB0aGUgQHstTn0gc3ludGF4IGZvciBuLXRoIGNoZWNrb3V0ICovCi0JCXJldCA9IGludGVycHJldF9icmFuY2hfbmFtZShzdHIrYXQsICZidWYpOwotCQlpZiAocmV0ID4gMCkgewotCQkJLyogc3Vic3RpdHV0ZSB0aGlzIGJyYW5jaCBuYW1lIGFuZCByZXN0YXJ0ICovCi0JCQlyZXR1cm4gZ2V0X3NoYTFfMShidWYuYnVmLCBidWYubGVuLCBzaGExLCAwKTsKLQkJfSBlbHNlIGlmIChyZXQgPT0gMCkgewotCQkJcmV0dXJuIC0xOworCQlpbnQgZGV0YWNoZWQ7CisKKwkJaWYgKGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQoc3RyLCAmYnVmKSA+IDApIHsKKwkJCWRldGFjaGVkID0gKGJ1Zi5sZW4gPT0gNDAgJiYgIWdldF9zaGExX2hleChidWYuYnVmLCBzaGExKSk7CisJCQlzdHJidWZfcmVsZWFzZSgmYnVmKTsKKwkJCWlmIChkZXRhY2hlZCkKKwkJCQlyZXR1cm4gMDsKIAkJfQorCX0KKworCWlmICghbGVuICYmIHJlZmxvZ19sZW4pCiAJCS8qIGFsbG93ICJAey4uLn0iIHRvIG1lYW4gdGhlIGN1cnJlbnQgYnJhbmNoIHJlZmxvZyAqLwogCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoIkhFQUQiLCA0LCBzaGExLCAmcmVhbF9yZWYpOwotCX0gZWxzZSBpZiAocmVmbG9nX2xlbikKKwllbHNlIGlmIChyZWZsb2dfbGVuKQogCQlyZWZzX2ZvdW5kID0gZHdpbV9sb2coc3RyLCBsZW4sIHNoYTEsICZyZWFsX3JlZik7CiAJZWxzZQogCQlyZWZzX2ZvdW5kID0gZHdpbV9yZWYoc3RyLCBsZW4sIHNoYTEsICZyZWFsX3JlZik7CkBAIC00ODEsNyArNTEyLDkgQEAKIAlpZiAoIXJlZnNfZm91bmQpCiAJCXJldHVybiAtMTsKIAotCWlmICh3YXJuX2FtYmlndW91c19yZWZzICYmIHJlZnNfZm91bmQgPiAxKQorCWlmICh3YXJuX2FtYmlndW91c19yZWZzICYmCisJICAgIChyZWZzX2ZvdW5kID4gMSB8fAorCSAgICAgIWdldF9zaG9ydF9zaGExKHN0ciwgbGVuLCB0bXBfc2hhMSwgR0VUX1NIQTFfUVVJRVRMWSkpKQogCQl3YXJuaW5nKHdhcm5fbXNnLCBsZW4sIHN0cik7CiAKIAlpZiAocmVmbG9nX2xlbikgewpAQCAtNDkwLDEwICs1MjMsNiBAQAogCQl1bnNpZ25lZCBsb25nIGNvX3RpbWU7CiAJCWludCBjb190eiwgY29fY250OwogCi0JCS8qIGEgQHstTn0gcGxhY2VkIGFueXdoZXJlIGV4Y2VwdCB0aGUgc3RhcnQgaXMgYW4gZXJyb3IgKi8KLQkJaWYgKHN0clthdCsyXSA9PSAnLScpCi0JCQlyZXR1cm4gLTE7Ci0KIAkJLyogSXMgaXQgYXNraW5nIGZvciBOLXRoIGVudHJ5LCBvciBhcHByb3hpZGF0ZT8gKi8KIAkJZm9yIChpID0gbnRoID0gMDsgMCA8PSBudGggJiYgaSA8IHJlZmxvZ19sZW47IGkrKykgewogCQkJY2hhciBjaCA9IHN0clthdCsyK2ldOwpAQCAtNTE3LDEyICs1NDYsMjEgQEAKIAkJfQogCQlpZiAocmVhZF9yZWZfYXQocmVhbF9yZWYsIGF0X3RpbWUsIG50aCwgc2hhMSwgTlVMTCwKIAkJCQkmY29fdGltZSwgJmNvX3R6LCAmY29fY250KSkgeworCQkJaWYgKCFsZW4pIHsKKwkJCQlpZiAoIXByZWZpeGNtcChyZWFsX3JlZiwgInJlZnMvaGVhZHMvIikpIHsKKwkJCQkJc3RyID0gcmVhbF9yZWYgKyAxMTsKKwkJCQkJbGVuID0gc3RybGVuKHJlYWxfcmVmICsgMTEpOworCQkJCX0gZWxzZSB7CisJCQkJCS8qIGRldGFjaGVkIEhFQUQgKi8KKwkJCQkJc3RyID0gIkhFQUQiOworCQkJCQlsZW4gPSA0OworCQkJCX0KKwkJCX0KIAkJCWlmIChhdF90aW1lKQogCQkJCXdhcm5pbmcoIkxvZyBmb3IgJyUuKnMnIG9ubHkgZ29lcyAiCiAJCQkJCSJiYWNrIHRvICVzLiIsIGxlbiwgc3RyLAogCQkJCQlzaG93X2RhdGUoY29fdGltZSwgY29fdHosIERBVEVfUkZDMjgyMikpOwogCQkJZWxzZSB7Ci0JCQkJZnJlZShyZWFsX3JlZik7CiAJCQkJZGllKCJMb2cgZm9yICclLipzJyBvbmx5IGhhcyAlZCBlbnRyaWVzLiIsCiAJCQkJICAgIGxlbiwgc3RyLCBjb19jbnQpOwogCQkJfQpAQCAtOTY2LDYgKzEwMDQsMjcgQEAKIAlyZXR1cm4gc3Q7CiB9CiAKK3N0YXRpYyBpbnQgcmVpbnRlcnByZXQoY29uc3QgY2hhciAqbmFtZSwgaW50IG5hbWVsZW4sIGludCBsZW4sIHN0cnVjdCBzdHJidWYgKmJ1ZikKK3sKKwkvKiB3ZSBoYXZlIGV4dHJhIGRhdGEsIHdoaWNoIG1pZ2h0IG5lZWQgZnVydGhlciBwcm9jZXNzaW5nICovCisJc3RydWN0IHN0cmJ1ZiB0bXAgPSBTVFJCVUZfSU5JVDsKKwlpbnQgdXNlZCA9IGJ1Zi0+bGVuOworCWludCByZXQ7CisKKwlzdHJidWZfYWRkKGJ1ZiwgbmFtZSArIGxlbiwgbmFtZWxlbiAtIGxlbik7CisJcmV0ID0gaW50ZXJwcmV0X2JyYW5jaF9uYW1lKGJ1Zi0+YnVmLCAmdG1wKTsKKwkvKiB0aGF0IGRhdGEgd2FzIG5vdCBpbnRlcnByZXRlZCwgcmVtb3ZlIG91ciBjcnVmdCAqLworCWlmIChyZXQgPCAwKSB7CisJCXN0cmJ1Zl9zZXRsZW4oYnVmLCB1c2VkKTsKKwkJcmV0dXJuIGxlbjsKKwl9CisJc3RyYnVmX3Jlc2V0KGJ1Zik7CisJc3RyYnVmX2FkZGJ1ZihidWYsICZ0bXApOworCXN0cmJ1Zl9yZWxlYXNlKCZ0bXApOworCS8qIHR3ZWFrIGZvciBzaXplIG9mIHstTn0gdmVyc3VzIGV4cGFuZGVkIHJlZiBuYW1lICovCisJcmV0dXJuIHJldCAtIHVzZWQgKyBsZW47Cit9CisKIC8qCiAgKiBUaGlzIHJlYWRzIHNob3J0LWhhbmQgc3ludGF4IHRoYXQgbm90IG9ubHkgZXZhbHVhdGVzIHRvIGEgY29tbWl0CiAgKiBvYmplY3QgbmFtZSwgYnV0IGFsc28gY2FuIGFjdCBhcyBpZiB0aGUgZW5kIHVzZXIgc3BlbGxlZCB0aGUgbmFtZQpAQCAtOTk1LDI4ICsxMDU0LDEzIEBACiAJaW50IGxlbiA9IGludGVycHJldF9udGhfcHJpb3JfY2hlY2tvdXQobmFtZSwgYnVmKTsKIAlpbnQgdG1wX2xlbjsKIAotCWlmICghbGVuKQorCWlmICghbGVuKSB7CiAJCXJldHVybiBsZW47IC8qIHN5bnRheCBPaywgbm90IGVub3VnaCBzd2l0Y2hlcyAqLwotCWlmICgwIDwgbGVuICYmIGxlbiA9PSBuYW1lbGVuKQotCQlyZXR1cm4gbGVuOyAvKiBjb25zdW1lZCBhbGwgKi8KLQllbHNlIGlmICgwIDwgbGVuKSB7Ci0JCS8qIHdlIGhhdmUgZXh0cmEgZGF0YSwgd2hpY2ggbWlnaHQgbmVlZCBmdXJ0aGVyIHByb2Nlc3NpbmcgKi8KLQkJc3RydWN0IHN0cmJ1ZiB0bXAgPSBTVFJCVUZfSU5JVDsKLQkJaW50IHVzZWQgPSBidWYtPmxlbjsKLQkJaW50IHJldDsKLQotCQlzdHJidWZfYWRkKGJ1ZiwgbmFtZSArIGxlbiwgbmFtZWxlbiAtIGxlbik7Ci0JCXJldCA9IGludGVycHJldF9icmFuY2hfbmFtZShidWYtPmJ1ZiwgJnRtcCk7Ci0JCS8qIHRoYXQgZGF0YSB3YXMgbm90IGludGVycHJldGVkLCByZW1vdmUgb3VyIGNydWZ0ICovCi0JCWlmIChyZXQgPCAwKSB7Ci0JCQlzdHJidWZfc2V0bGVuKGJ1ZiwgdXNlZCk7Ci0JCQlyZXR1cm4gbGVuOwotCQl9Ci0JCXN0cmJ1Zl9yZXNldChidWYpOwotCQlzdHJidWZfYWRkYnVmKGJ1ZiwgJnRtcCk7Ci0JCXN0cmJ1Zl9yZWxlYXNlKCZ0bXApOwotCQkvKiB0d2VhayBmb3Igc2l6ZSBvZiB7LU59IHZlcnN1cyBleHBhbmRlZCByZWYgbmFtZSAqLwotCQlyZXR1cm4gcmV0IC0gdXNlZCArIGxlbjsKKwl9IGVsc2UgaWYgKGxlbiA+IDApIHsKKwkJaWYgKGxlbiA9PSBuYW1lbGVuKQorCQkJcmV0dXJuIGxlbjsgLyogY29uc3VtZWQgYWxsICovCisJCWVsc2UKKwkJCXJldHVybiByZWludGVycHJldChuYW1lLCBuYW1lbGVuLCBsZW4sIGJ1Zik7CiAJfQogCiAJY3AgPSBzdHJjaHIobmFtZSwgJ0AnKTsKQEAgLTEwMzMsMTQgKzEwNzcsMTUgQEAKIAkgKiBwb2ludHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudCB0aGFuIGEgYnJhbmNoLgogCSAqLwogCWlmICghdXBzdHJlYW0pCi0JCXJldHVybiBlcnJvcihfKCJIRUFEIGRvZXMgbm90IHBvaW50IHRvIGEgYnJhbmNoIikpOworCQlkaWUoXygiSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaCIpKTsKIAlpZiAoIXVwc3RyZWFtLT5tZXJnZSB8fCAhdXBzdHJlYW0tPm1lcmdlWzBdLT5kc3QpIHsKIAkJaWYgKCFyZWZfZXhpc3RzKHVwc3RyZWFtLT5yZWZuYW1lKSkKLQkJCXJldHVybiBlcnJvcihfKCJObyBzdWNoIGJyYW5jaDogJyVzJyIpLCBjcCk7Ci0JCWlmICghdXBzdHJlYW0tPm1lcmdlKQotCQkJcmV0dXJuIGVycm9yKF8oIk5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAnJXMnIiksCi0JCQkJICAgICB1cHN0cmVhbS0+bmFtZSk7Ci0JCXJldHVybiBlcnJvcigKKwkJCWRpZShfKCJObyBzdWNoIGJyYW5jaDogJyVzJyIpLCBjcCk7CisJCWlmICghdXBzdHJlYW0tPm1lcmdlKSB7CisJCQlkaWUoXygiTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICclcyciKSwKKwkJCQl1cHN0cmVhbS0+bmFtZSk7CisJCX0KKwkJZGllKAogCQkJXygiVXBzdHJlYW0gYnJhbmNoICclcycgbm90IHN0b3JlZCBhcyBhIHJlbW90ZS10cmFja2luZyBicmFuY2giKSwKIAkJCXVwc3RyZWFtLT5tZXJnZVswXS0+c3JjKTsKIAl9CkBAIC0xMDU1LDkgKzExMDAsMTMgQEAKIGludCBzdHJidWZfYnJhbmNobmFtZShzdHJ1Y3Qgc3RyYnVmICpzYiwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAlpbnQgbGVuID0gc3RybGVuKG5hbWUpOwotCWlmIChpbnRlcnByZXRfYnJhbmNoX25hbWUobmFtZSwgc2IpID09IGxlbikKKwlpbnQgdXNlZCA9IGludGVycHJldF9icmFuY2hfbmFtZShuYW1lLCBzYik7CisKKwlpZiAodXNlZCA9PSBsZW4pCiAJCXJldHVybiAwOwotCXN0cmJ1Zl9hZGQoc2IsIG5hbWUsIGxlbik7CisJaWYgKHVzZWQgPCAwKQorCQl1c2VkID0gMDsKKwlzdHJidWZfYWRkKHNiLCBuYW1lICsgdXNlZCwgbGVuIC0gdXNlZCk7CiAJcmV0dXJuIGxlbjsKIH0KIApAQCAtMTE3MCw3ICsxMjE5LDcgQEAKIAkJCQkJY29uc3QgY2hhciAqZmlsZW5hbWUpCiB7CiAJc3RydWN0IHN0YXQgc3Q7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCWludCBwb3M7CiAJdW5zaWduZWQgbmFtZWxlbiA9IHN0cmxlbihmaWxlbmFtZSk7CiAJdW5zaWduZWQgZnVsbG5hbWVsZW47CkBAIC0xMjY0LDcgKzEzMTMsNyBAQAogCSAqLwogCWlmIChuYW1lWzBdID09ICc6JykgewogCQlpbnQgc3RhZ2UgPSAwOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlOwogCQljaGFyICpuZXdfcGF0aCA9IE5VTEw7CiAJCWludCBwb3M7CiAJCWlmICghb25seV90b19kaWUgJiYgbmFtZWxlbiA+IDIgJiYgbmFtZVsxXSA9PSAnLycpIHsKZGlmZiAtLWdpdCBhL3NoYWxsb3cuYyBiL3NoYWxsb3cuYwppbmRleCA2YmU5MTVmLi44YTljOTZkIDEwMDY0NAotLS0gYS9zaGFsbG93LmMKKysrIGIvc2hhbGxvdy5jCkBAIC0zLDYgKzMsMTYgQEAKICNpbmNsdWRlICJ0YWcuaCIKIAogc3RhdGljIGludCBpc19zaGFsbG93ID0gLTE7CitzdGF0aWMgc3RydWN0IHN0YXQgc2hhbGxvd19zdGF0Oworc3RhdGljIGNoYXIgKmFsdGVybmF0ZV9zaGFsbG93X2ZpbGU7CisKK3ZvaWQgc2V0X2FsdGVybmF0ZV9zaGFsbG93X2ZpbGUoY29uc3QgY2hhciAqcGF0aCkKK3sKKwlpZiAoaXNfc2hhbGxvdyAhPSAtMSkKKwkJZGllKCJCVUc6IGlzX3JlcG9zaXRvcnlfc2hhbGxvdyBtdXN0IG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldF9hbHRlcm5hdGVfc2hhbGxvd19maWxlIik7CisJZnJlZShhbHRlcm5hdGVfc2hhbGxvd19maWxlKTsKKwlhbHRlcm5hdGVfc2hhbGxvd19maWxlID0gcGF0aCA/IHhzdHJkdXAocGF0aCkgOiBOVUxMOworfQogCiBpbnQgcmVnaXN0ZXJfc2hhbGxvdyhjb25zdCB1bnNpZ25lZCBjaGFyICpzaGExKQogewpAQCAtMjEsMTIgKzMxLDIxIEBACiB7CiAJRklMRSAqZnA7CiAJY2hhciBidWZbMTAyNF07CisJY29uc3QgY2hhciAqcGF0aCA9IGFsdGVybmF0ZV9zaGFsbG93X2ZpbGU7CiAKIAlpZiAoaXNfc2hhbGxvdyA+PSAwKQogCQlyZXR1cm4gaXNfc2hhbGxvdzsKIAotCWZwID0gZm9wZW4oZ2l0X3BhdGgoInNoYWxsb3ciKSwgInIiKTsKLQlpZiAoIWZwKSB7CisJaWYgKCFwYXRoKQorCQlwYXRoID0gZ2l0X3BhdGgoInNoYWxsb3ciKTsKKwkvKgorCSAqIGZldGNoLXBhY2sgc2V0cyAnLS1zaGFsbG93LWZpbGUgIiInIGFzIGFuIGluZGljYXRvciB0aGF0IG5vCisJICogc2hhbGxvdyBmaWxlIHNob3VsZCBiZSB1c2VkLiBXZSBjb3VsZCBqdXN0IG9wZW4gaXQgYW5kIGl0CisJICogd2lsbCBsaWtlbHkgZmFpbC4gQnV0IGxldCdzIGRvIGFuIGV4cGxpY2l0IGNoZWNrIGluc3RlYWQuCisJICovCisJaWYgKCEqcGF0aCB8fAorCSAgICBzdGF0KHBhdGgsICZzaGFsbG93X3N0YXQpIHx8CisJICAgIChmcCA9IGZvcGVuKHBhdGgsICJyIikpID09IE5VTEwpIHsKIAkJaXNfc2hhbGxvdyA9IDA7CiAJCXJldHVybiBpc19zaGFsbG93OwogCX0KQEAgLTkxLDIwICsxMTAsMzQgQEAKIAkJCQkJY29udGludWU7CiAJCQkJKnBvaW50ZXIgPSBjdXJfZGVwdGg7CiAJCQl9Ci0JCQlpZiAoY3VyX2RlcHRoIDwgZGVwdGgpIHsKLQkJCQlpZiAocC0+bmV4dCkKLQkJCQkJYWRkX29iamVjdF9hcnJheSgmcC0+aXRlbS0+b2JqZWN0LAotCQkJCQkJCU5VTEwsICZzdGFjayk7Ci0JCQkJZWxzZSB7Ci0JCQkJCWNvbW1pdCA9IHAtPml0ZW07Ci0JCQkJCWN1cl9kZXB0aCA9ICooaW50ICopY29tbWl0LT51dGlsOwotCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJY29tbWl0X2xpc3RfaW5zZXJ0KHAtPml0ZW0sICZyZXN1bHQpOwotCQkJCXAtPml0ZW0tPm9iamVjdC5mbGFncyB8PSBzaGFsbG93X2ZsYWc7CisJCQlpZiAocC0+bmV4dCkKKwkJCQlhZGRfb2JqZWN0X2FycmF5KCZwLT5pdGVtLT5vYmplY3QsCisJCQkJCQlOVUxMLCAmc3RhY2spOworCQkJZWxzZSB7CisJCQkJY29tbWl0ID0gcC0+aXRlbTsKKwkJCQljdXJfZGVwdGggPSAqKGludCAqKWNvbW1pdC0+dXRpbDsKIAkJCX0KIAkJfQogCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CisKK3ZvaWQgY2hlY2tfc2hhbGxvd19maWxlX2Zvcl91cGRhdGUodm9pZCkKK3sKKwlzdHJ1Y3Qgc3RhdCBzdDsKKworCWlmICghaXNfc2hhbGxvdykKKwkJcmV0dXJuOworCWVsc2UgaWYgKGlzX3NoYWxsb3cgPT0gLTEpCisJCWRpZSgiQlVHOiBzaGFsbG93IG11c3QgYmUgaW5pdGlhbGl6ZWQgYnkgbm93Iik7CisKKwlpZiAoc3RhdChnaXRfcGF0aCgic2hhbGxvdyIpLCAmc3QpKQorCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgcmVtb3ZlZCBkdXJpbmcgZmV0Y2giKTsKKwllbHNlIGlmIChzdC5zdF9tdGltZSAhPSBzaGFsbG93X3N0YXQuc3RfbXRpbWUKKyNpZmRlZiBVU0VfTlNFQworCQkgfHwgU1RfTVRJTUVfTlNFQyhzdCkgIT0gU1RfTVRJTUVfTlNFQyhzaGFsbG93X3N0YXQpCisjZW5kaWYKKwkJICAgKQorCQlkaWUoInNoYWxsb3cgZmlsZSB3YXMgY2hhbmdlZCBkdXJpbmcgZmV0Y2giKTsKK30KZGlmZiAtLWdpdCBhL3NoZWxsLmMgYi9zaGVsbC5jCmluZGV4IDE0Mjk4NzAuLjY2MzUwYjIgMTAwNjQ0Ci0tLSBhL3NoZWxsLmMKKysrIGIvc2hlbGwuYwpAQCAtMTQ3LDcgKzE0Nyw2IEBACiAJY2hhciAqcHJvZzsKIAljb25zdCBjaGFyICoqdXNlcl9hcmd2OwogCXN0cnVjdCBjb21tYW5kcyAqY21kOwotCWludCBkZXZudWxsX2ZkOwogCWludCBjb3VudDsKIAogCWdpdF9zZXR1cF9nZXR0ZXh0KCk7CkBAIC0xNTYsMTUgKzE1NSwxMCBAQAogCiAJLyoKIAkgKiBBbHdheXMgb3BlbiBmaWxlIGRlc2NyaXB0b3JzIDAvMS8yIHRvIGF2b2lkIGNsb2JiZXJpbmcgZmlsZXMKLQkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG5vdCBtZXNzaW5nIHVwIHdoZW4gdGhlIHBpcGVzIGFyZQotCSAqIGR1cCdlZCBvbnRvIHN0ZGluL3N0ZG91dC9zdGRlcnIgaW4gdGhlIGNoaWxkIHByb2Nlc3NlcyB3ZSBzcGF3bi4KKwkgKiBpbiBkaWUoKS4gIEl0IGFsc28gYXZvaWRzIG1lc3NpbmcgdXAgd2hlbiB0aGUgcGlwZXMgYXJlIGR1cCdlZAorCSAqIG9udG8gc3RkaW4vc3Rkb3V0L3N0ZGVyciBpbiB0aGUgY2hpbGQgcHJvY2Vzc2VzIHdlIHNwYXduLgogCSAqLwotCWRldm51bGxfZmQgPSBvcGVuKCIvZGV2L251bGwiLCBPX1JEV1IpOwotCXdoaWxlIChkZXZudWxsX2ZkID49IDAgJiYgZGV2bnVsbF9mZCA8PSAyKQotCQlkZXZudWxsX2ZkID0gZHVwKGRldm51bGxfZmQpOwotCWlmIChkZXZudWxsX2ZkID09IC0xKQotCQlkaWVfZXJybm8oIm9wZW5pbmcgL2Rldi9udWxsIGZhaWxlZCIpOwotCWNsb3NlIChkZXZudWxsX2ZkKTsKKwlzYW5pdGl6ZV9zdGRmZHMoKTsKIAogCS8qCiAJICogU3BlY2lhbCBoYWNrIHRvIHByZXRlbmQgdG8gYmUgYSBDVlMgc2VydmVyCmRpZmYgLS1naXQgYS9zdHJlYW1pbmcuYyBiL3N0cmVhbWluZy5jCmluZGV4IGNhYmNkOWQuLmRlYmU5MDQgMTAwNjQ0Ci0tLSBhL3N0cmVhbWluZy5jCisrKyBiL3N0cmVhbWluZy5jCkBAIC0xMTEsMTEgKzExMSwxMSBAQAogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAlpbnQgc3RhdHVzOwogCisJb2ktPnR5cGVwID0gdHlwZTsKIAlvaS0+c2l6ZXAgPSAmc2l6ZTsKIAlzdGF0dXMgPSBzaGExX29iamVjdF9pbmZvX2V4dGVuZGVkKHNoYTEsIG9pKTsKIAlpZiAoc3RhdHVzIDwgMCkKIAkJcmV0dXJuIHN0cmVhbV9lcnJvcjsKLQkqdHlwZSA9IHN0YXR1czsKIAogCXN3aXRjaCAob2ktPndoZW5jZSkgewogCWNhc2UgT0lfTE9PU0U6CkBAIC0xMzUsNyArMTM1LDcgQEAKIAkJCQkgc3RydWN0IHN0cmVhbV9maWx0ZXIgKmZpbHRlcikKIHsKIAlzdHJ1Y3QgZ2l0X2lzdHJlYW0gKnN0OwotCXN0cnVjdCBvYmplY3RfaW5mbyBvaTsKKwlzdHJ1Y3Qgb2JqZWN0X2luZm8gb2kgPSB7TlVMTH07CiAJY29uc3QgdW5zaWduZWQgY2hhciAqcmVhbCA9IGxvb2t1cF9yZXBsYWNlX29iamVjdChzaGExKTsKIAllbnVtIGlucHV0X3NvdXJjZSBzcmMgPSBpc3RyZWFtX3NvdXJjZShyZWFsLCB0eXBlLCAmb2kpOwogCkBAIC0xNDksNyArMTQ5LDcgQEAKIAkJCXJldHVybiBOVUxMOwogCQl9CiAJfQotCWlmIChzdCAmJiBmaWx0ZXIpIHsKKwlpZiAoZmlsdGVyKSB7CiAJCS8qIEFkZCAiJiYgIWlzX251bGxfc3RyZWFtX2ZpbHRlcihmaWx0ZXIpIiBmb3IgcGVyZm9ybWFuY2UgKi8KIAkJc3RydWN0IGdpdF9pc3RyZWFtICpuc3QgPSBhdHRhY2hfc3RyZWFtX2ZpbHRlcihzdCwgZmlsdGVyKTsKIAkJaWYgKCFuc3QpCmRpZmYgLS1naXQgYS9zdWJtb2R1bGUuYyBiL3N1Ym1vZHVsZS5jCmluZGV4IGU3MjgwMjUuLmMwZjkzYzIgMTAwNjQ0Ci0tLSBhL3N1Ym1vZHVsZS5jCisrKyBiL3N1Ym1vZHVsZS5jCkBAIC0xMzQsNiArMTM0LDkgQEAKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIXN0cmNtcChrZXksICJwYXRoIikpIHsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCiAJCWNvbmZpZyA9IHVuc29ydGVkX3N0cmluZ19saXN0X2xvb2t1cCgmY29uZmlnX25hbWVfZm9yX3BhdGgsIHZhbHVlKTsKIAkJaWYgKGNvbmZpZykKIAkJCWZyZWUoY29uZmlnLT51dGlsKTsKQEAgLTE1MSw2ICsxNTQsOSBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJpZ25vcmUiKSkgewogCQljaGFyICpuYW1lX2NzdHI7CiAKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiBjb25maWdfZXJyb3Jfbm9uYm9vbCh2YXIpOworCiAJCWlmIChzdHJjbXAodmFsdWUsICJ1bnRyYWNrZWQiKSAmJiBzdHJjbXAodmFsdWUsICJkaXJ0eSIpICYmCiAJCSAgICBzdHJjbXAodmFsdWUsICJhbGwiKSAmJiBzdHJjbXAodmFsdWUsICJub25lIikpIHsKIAkJCXdhcm5pbmcoIkludmFsaWQgcGFyYW1ldGVyIFwiJXNcIiBmb3IgY29uZmlnIG9wdGlvbiBcInN1Ym1vZHVsZS4lcy5pZ25vcmVcIiIsIHZhbHVlLCB2YXIpOwpAQCAtMjI2LDYgKzIzMiw3IEBACiAJd2hpbGUgKChjb21taXQgPSBnZXRfcmV2aXNpb24ocmV2KSkpIHsKIAkJc3RydWN0IHByZXR0eV9wcmludF9jb250ZXh0IGN0eCA9IHswfTsKIAkJY3R4LmRhdGVfbW9kZSA9IHJldi0+ZGF0ZV9tb2RlOworCQljdHgub3V0cHV0X2VuY29kaW5nID0gZ2V0X2xvZ19vdXRwdXRfZW5jb2RpbmcoKTsKIAkJc3RyYnVmX3NldGxlbigmc2IsIDApOwogCQlzdHJidWZfYWRkc3RyKCZzYiwgbGluZV9wcmVmaXgpOwogCQlpZiAoY29tbWl0LT5vYmplY3QuZmxhZ3MgJiBTWU1NRVRSSUNfTEVGVCkgewpAQCAtNjAzLDkgKzYxMCw4IEBACiAJaWYgKCF3b3JrX3RyZWUpCiAJCWdvdG8gb3V0OwogCi0JaWYgKCF0aGVfaW5kZXguaW5pdGlhbGl6ZWQpCi0JCWlmIChyZWFkX2NhY2hlKCkgPCAwKQotCQkJZGllKCJpbmRleCBmaWxlIGNvcnJ1cHQiKTsKKwlpZiAocmVhZF9jYWNoZSgpIDwgMCkKKwkJZGllKCJpbmRleCBmaWxlIGNvcnJ1cHQiKTsKIAogCWFyZ3ZfYXJyYXlfcHVzaCgmYXJndiwgImZldGNoIik7CiAJZm9yIChpID0gMDsgaSA8IG9wdGlvbnMtPmFyZ2M7IGkrKykKQEAgLTYyNCw3ICs2MzAsNyBAQAogCQlzdHJ1Y3Qgc3RyYnVmIHN1Ym1vZHVsZV9wYXRoID0gU1RSQlVGX0lOSVQ7CiAJCXN0cnVjdCBzdHJidWYgc3VibW9kdWxlX2dpdF9kaXIgPSBTVFJCVUZfSU5JVDsKIAkJc3RydWN0IHN0cmJ1ZiBzdWJtb2R1bGVfcHJlZml4ID0gU1RSQlVGX0lOSVQ7Ci0JCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CisJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBhY3RpdmVfY2FjaGVbaV07CiAJCWNvbnN0IGNoYXIgKmdpdF9kaXIsICpuYW1lLCAqZGVmYXVsdF9hcmd2OwogCiAJCWlmICghU19JU0dJVExJTksoY2UtPmNlX21vZGUpKQpAQCAtODQ2LDcgKzg1Miw3IEBACiAJCXN0cnVjdCBjb21taXQgKmEsIHN0cnVjdCBjb21taXQgKmIpCiB7CiAJaW50IGksIGo7Ci0Jc3RydWN0IG9iamVjdF9hcnJheSBtZXJnZXM7CisJc3RydWN0IG9iamVjdF9hcnJheSBtZXJnZXMgPSBPQkpFQ1RfQVJSQVlfSU5JVDsKIAlzdHJ1Y3QgY29tbWl0ICpjb21taXQ7CiAJaW50IGNvbnRhaW5zX2Fub3RoZXI7CiAKQEAgLTg1Niw3ICs4NjIsNiBAQAogCXN0cnVjdCByZXZfaW5mbyByZXZzOwogCXN0cnVjdCBzZXR1cF9yZXZpc2lvbl9vcHQgcmV2X29wdHM7CiAKLQltZW1zZXQoJm1lcmdlcywgMCwgc2l6ZW9mKG1lcmdlcykpOwogCW1lbXNldChyZXN1bHQsIDAsIHNpemVvZihzdHJ1Y3Qgb2JqZWN0X2FycmF5KSk7CiAJbWVtc2V0KCZyZXZfb3B0cywgMCwgc2l6ZW9mKHJldl9vcHRzKSk7CiAKQEAgLTg5NCw4ICs4OTksNyBAQAogCQl9CiAKIAkJaWYgKCFjb250YWluc19hbm90aGVyKQotCQkJYWRkX29iamVjdF9hcnJheShtZXJnZXMub2JqZWN0c1tpXS5pdGVtLAotCQkJCQkgbWVyZ2VzLm9iamVjdHNbaV0ubmFtZSwgcmVzdWx0KTsKKwkJCWFkZF9vYmplY3RfYXJyYXkobWVyZ2VzLm9iamVjdHNbaV0uaXRlbSwgTlVMTCwgcmVzdWx0KTsKIAl9CiAKIAlmcmVlKG1lcmdlcy5vYmplY3RzKTsKZGlmZiAtLWdpdCBhL3QvTWFrZWZpbGUgYi90L01ha2VmaWxlCmluZGV4IDQ0Y2E3ZDMuLjIzNzNhMDQgMTAwNjQ0Ci0tLSBhL3QvTWFrZWZpbGUKKysrIGIvdC9NYWtlZmlsZQpAQCAtMTUsOSArMTUsMTYgQEAKIERFRkFVTFRfVEVTVF9UQVJHRVQgPz0gdGVzdAogVEVTVF9MSU5UID89IHRlc3QtbGludC1kdXBsaWNhdGVzIHRlc3QtbGludC1leGVjdXRhYmxlCiAKK2lmZGVmIFRFU1RfT1VUUFVUX0RJUkVDVE9SWQorVEVTVF9SRVNVTFRTX0RJUkVDVE9SWSA9ICQoVEVTVF9PVVRQVVRfRElSRUNUT1JZKS90ZXN0LXJlc3VsdHMKK2Vsc2UKK1RFU1RfUkVTVUxUU19ESVJFQ1RPUlkgPSB0ZXN0LXJlc3VsdHMKK2VuZGlmCisKICMgU2hlbGwgcXVvdGU7CiBTSEVMTF9QQVRIX1NRID0gJChzdWJzdCAnLCdcJycsJChTSEVMTF9QQVRIKSkKIFBFUkxfUEFUSF9TUSA9ICQoc3Vic3QgJywnXCcnLCQoUEVSTF9QQVRIKSkKK1RFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EgPSAkKHN1YnN0ICcsJ1wnJywkKFRFU1RfUkVTVUxUU19ESVJFQ1RPUlkpKQogCiBUID0gJChzb3J0ICQod2lsZGNhcmQgdFswLTldWzAtOV1bMC05XVswLTldLSouc2gpKQogVFNWTiA9ICQoc29ydCAkKHdpbGRjYXJkIHQ5MVswLTldWzAtOV0tKi5zaCkpCkBAIC0zNiwxMCArNDMsMTAgQEAKIAlAZWNobyAiKioqICRAICoqKiI7IEdJVF9DT05GSUc9LmdpdC9jb25maWcgJyQoU0hFTExfUEFUSF9TUSknICRAICQoR0lUX1RFU1RfT1BUUykKIAogcHJlLWNsZWFuOgotCSQoUk0pIC1yIHRlc3QtcmVzdWx0cworCSQoUk0pIC1yICckKFRFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EpJwogCiBjbGVhbi1leGNlcHQtcHJvdmUtY2FjaGU6Ci0JJChSTSkgLXIgJ3RyYXNoIGRpcmVjdG9yeScuKiB0ZXN0LXJlc3VsdHMKKwkkKFJNKSAtciAndHJhc2ggZGlyZWN0b3J5Jy4qICckKFRFU1RfUkVTVUxUU19ESVJFQ1RPUllfU1EpJwogCSQoUk0pIC1yIHZhbGdyaW5kL2JpbgogCiBjbGVhbjogY2xlYW4tZXhjZXB0LXByb3ZlLWNhY2hlCkBAIC02NSw3ICs3Miw3IEBACiAJJChNQUtFKSBjbGVhbgogCiBhZ2dyZWdhdGUtcmVzdWx0czoKLQlmb3IgZiBpbiB0ZXN0LXJlc3VsdHMvdCotKi5jb3VudHM7IGRvIFwKKwlmb3IgZiBpbiAnJChURVNUX1JFU1VMVFNfRElSRUNUT1JZX1NRKScvdCotKi5jb3VudHM7IGRvIFwKIAkJZWNobyAiJCRmIjsgXAogCWRvbmUgfCAnJChTSEVMTF9QQVRIX1NRKScgLi9hZ2dyZWdhdGUtcmVzdWx0cy5zaAogCmRpZmYgLS1naXQgYS90L1JFQURNRSBiL3QvUkVBRE1FCmluZGV4IGU2NjliYjMuLjIxNjcxMjUgMTAwNjQ0Ci0tLSBhL3QvUkVBRE1FCisrKyBiL3QvUkVBRE1FCkBAIC03Niw2ICs3NiwxMSBAQAogCWNvbW1hbmQgYmVpbmcgcnVuIGFuZCB0aGVpciBvdXRwdXQgaWYgYW55IGFyZSBhbHNvCiAJb3V0cHV0LgogCistLXZlcmJvc2Utb25seT08cGF0dGVybj46OgorCUxpa2UgLS12ZXJib3NlLCBidXQgdGhlIGVmZmVjdCBpcyBsaW1pdGVkIHRvIHRlc3RzIHdpdGgKKwludW1iZXJzIG1hdGNoaW5nIDxwYXR0ZXJuPi4gIFRoZSBudW1iZXIgbWF0Y2hlZCBhZ2FpbnN0IGlzCisJc2ltcGx5IHRoZSBydW5uaW5nIGNvdW50IG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgZmlsZS4KKwogLS1kZWJ1Zzo6CiAJVGhpcyBtYXkgaGVscCB0aGUgcGVyc29uIHdobyBpcyBkZXZlbG9waW5nIGEgbmV3IHRlc3QuCiAJSXQgY2F1c2VzIHRoZSBjb21tYW5kIGRlZmluZWQgd2l0aCB0ZXN0X2RlYnVnIHRvIHJ1bi4KQEAgLTEyMSw2ICsxMjYsMTEgQEAKIAl0aGUgJ3QvdmFsZ3JpbmQvJyBkaXJlY3RvcnkgYW5kIHVzZSB0aGUgY29tbWFuZHMgdW5kZXIKIAkndC92YWxncmluZC9iaW4vJy4KIAorLS12YWxncmluZC1vbmx5PTxwYXR0ZXJuPjo6CisJTGlrZSAtLXZhbGdyaW5kLCBidXQgdGhlIGVmZmVjdCBpcyBsaW1pdGVkIHRvIHRlc3RzIHdpdGgKKwludW1iZXJzIG1hdGNoaW5nIDxwYXR0ZXJuPi4gIFRoZSBudW1iZXIgbWF0Y2hlZCBhZ2FpbnN0IGlzCisJc2ltcGx5IHRoZSBydW5uaW5nIGNvdW50IG9mIHRoZSB0ZXN0IHdpdGhpbiB0aGUgZmlsZS4KKwogLS10ZWU6OgogCUluIGFkZGl0aW9uIHRvIHByaW50aW5nIHRoZSB0ZXN0IG91dHB1dCB0byB0aGUgdGVybWluYWwsCiAJd3JpdGUgaXQgdG8gZmlsZXMgbmFtZWQgJ3QvdGVzdC1yZXN1bHRzLyRURVNUX05BTUUub3V0Jy4KQEAgLTMyNCw2ICszMzQsOSBAQAogICAgdXNlICd0ZXN0X211c3RfZmFpbCBnaXQgY21kJy4gIFRoaXMgd2lsbCBzaWduYWwgYSBmYWlsdXJlIGlmIGdpdAogICAgZGllcyBpbiBhbiB1bmV4cGVjdGVkIHdheSAoZS5nLiBzZWdmYXVsdCkuCiAKKyAgIE9uIHRoZSBvdGhlciBoYW5kLCBkb24ndCB1c2UgdGVzdF9tdXN0X2ZhaWwgZm9yIHJ1bm5pbmcgcmVndWxhcgorICAgcGxhdGZvcm0gY29tbWFuZHM7IGp1c3QgdXNlICchIGNtZCcuCisKICAtIHVzZSBwZXJsIHdpdGhvdXQgc3BlbGxpbmcgaXQgYXMgIiRQRVJMX1BBVEgiLiBUaGlzIGlzIHRvIGhlbHAgb3VyCiAgICBmcmllbmRzIG9uIFdpbmRvd3Mgd2hlcmUgdGhlIHBsYXRmb3JtIFBlcmwgb2Z0ZW4gYWRkcyBDUiBiZWZvcmUKICAgIHRoZSBlbmQgb2YgbGluZSwgYW5kIHRoZXkgYnVuZGxlIEdpdCB3aXRoIGEgdmVyc2lvbiBvZiBQZXJsIHRoYXQKQEAgLTU5Miw2ICs2MDUsMjAgQEAKIAkJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAJJwogCisgLSB0ZXN0X2xuX3NfYWRkIDxwYXRoMT4gPHBhdGgyPgorCisgICBUaGlzIGZ1bmN0aW9uIGhlbHBzIHN5c3RlbXMgd2hvc2UgZmlsZXN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0IHN5bWJvbGljCisgICBsaW5rcy4gVXNlIGl0IHRvIGFkZCBhIHN5bWJvbGljIGxpbmsgZW50cnkgdG8gdGhlIGluZGV4IHdoZW4gaXQgaXMgbm90CisgICBpbXBvcnRhbnQgdGhhdCB0aGUgZmlsZSBzeXN0ZW0gZW50cnkgaXMgYSBzeW1ib2xpYyBsaW5rLCBpLmUuLCBpbnN0ZWFkCisgICBvZiB0aGUgc2VxdWVuY2UKKworCWxuIC1zIGZvbyBiYXIgJiYKKwlnaXQgYWRkIGJhcgorCisgICBTb21ldGltZXMgaXQgaXMgcG9zc2libGUgdG8gc3BsaXQgYSB0ZXN0IGluIGEgcGFydCB0aGF0IGRvZXMgbm90IG5lZWQKKyAgIHRoZSBzeW1ib2xpYyBsaW5rIGluIHRoZSBmaWxlIHN5c3RlbSBhbmQgYSBwYXJ0IHRoYXQgZG9lczsgdGhlbiBvbmx5CisgICB0aGUgbGF0dGVyIHBhcnQgbmVlZCBiZSBwcm90ZWN0ZWQgYnkgYSBTWU1MSU5LUyBwcmVyZXF1aXNpdGUgKHNlZSBiZWxvdykuCisKIFByZXJlcXVpc2l0ZXMKIC0tLS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvdC9hbm5vdGF0ZS10ZXN0cy5zaCBiL3QvYW5ub3RhdGUtdGVzdHMuc2gKaW5kZXggYzU2YTc3ZC4uZDRlN2Y0NyAxMDA2NDQKLS0tIGEvdC9hbm5vdGF0ZS10ZXN0cy5zaAorKysgYi90L2Fubm90YXRlLXRlc3RzLnNoCkBAIC0yLDExICsyLDIxIEBACiAjIHNvdXJjZWQgZnJvbSB0ODAwMS1hbm5vdGF0ZS5zaCBhbmQgdDgwMDItYmxhbWUuc2guCiAKIGNoZWNrX2NvdW50ICgpIHsKLQloZWFkPQotCWNhc2UgIiQxIiBpbiAtaCkgaGVhZD0iJDIiOyBzaGlmdDsgc2hpZnQgOzsgZXNhYwotCWVjaG8gIiRQUk9HIGZpbGUgJGhlYWQiID4mNAotCSRQUk9HIGZpbGUgJGhlYWQgPi5yZXN1bHQgfHwgcmV0dXJuIDEKLQljYXQgLnJlc3VsdCB8IHBlcmwgLWUgJworCWhlYWQ9ICYmCisJZmlsZT0nZmlsZScgJiYKKwlvcHRpb25zPSAmJgorCXdoaWxlIDoKKwlkbworCQljYXNlICIkMSIgaW4KKwkJLWgpIGhlYWQ9IiQyIjsgc2hpZnQ7IHNoaWZ0IDs7CisJCS1mKSBmaWxlPSIkMiI7IHNoaWZ0OyBzaGlmdCA7OworCQktKikgb3B0aW9ucz0iJG9wdGlvbnMgJDEiOyBzaGlmdCA7OworCQkqKSBicmVhayA7OworCQllc2FjCisJZG9uZSAmJgorCWVjaG8gIiRQUk9HICRvcHRpb25zICRmaWxlICRoZWFkIiA+JjQgJiYKKwkkUFJPRyAkb3B0aW9ucyAkZmlsZSAkaGVhZCA+YWN0dWFsICYmCisJcGVybCAtZSAnCiAJCW15ICVleHBlY3QgPSAoQEFSR1YpOwogCQlteSAlY291bnQgPSBtYXAgeyAkXyA9PiAwIH0ga2V5cyAlZXhwZWN0OwogCQl3aGlsZSAoPFNURElOPikgewpAQCAtMzEsMTA3ICs0MSwyNDYgQEAKIAkJCXByaW50IFNUREVSUiAiQXV0aG9yICRhdXRob3IgKGV4cGVjdGVkICR2YWx1ZSwgYXR0cmlidXRlZCAkY291bnQpICRva1xuIjsKIAkJfQogCQlleGl0KCRiYWQpOwotCScgIiRAIgorCScgIiRAIiA8YWN0dWFsCiB9CiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdwcmVwYXJlIHJlZmVyZW5jZSB0cmVlJyBcCi0gICAgJ2VjaG8gIjFBIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSIgPmZpbGUgJiYKLSAgICAgZWNobyAibGF6eSBkb2ciID4+ZmlsZSAmJgotICAgICBnaXQgYWRkIGZpbGUgJiYKLSAgICAgR0lUX0FVVEhPUl9OQU1FPSJBIiBHSVRfQVVUSE9SX0VNQUlMPSJBQHRlc3QuZ2l0IiBnaXQgY29tbWl0IC1hIC1tICJJbml0aWFsLiInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBBIGxpbmVzJyAnCisJZWNobyAiMUEgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIiA+ZmlsZSAmJgorCWVjaG8gImxhenkgZG9nIiA+PmZpbGUgJiYKKwlnaXQgYWRkIGZpbGUgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkEiIEdJVF9BVVRIT1JfRU1BSUw9IkFAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJJbml0aWFsLiIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2NoZWNrIGFsbCBsaW5lcyBibGFtZWQgb24gQScgXAotICAgICdjaGVja19jb3VudCBBIDInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAxIGF1dGhvcicgJworCWNoZWNrX2NvdW50IEEgMgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnU2V0dXAgbmV3IGxpbmVzIGJsYW1lZCBvbiBCJyBcCi0gICAgJ2VjaG8gIjJBIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSIgPj5maWxlICYmCi0gICAgIGVjaG8gImxhenkgZG9nIiA+PiBmaWxlICYmCi0gICAgIEdJVF9BVVRIT1JfTkFNRT0iQiIgR0lUX0FVVEhPUl9FTUFJTD0iQkB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiU2Vjb25kLiInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBCIGxpbmVzJyAnCisJZWNobyAiMkEgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIiA+PmZpbGUgJiYKKwllY2hvICJsYXp5IGRvZyIgPj5maWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJCIiBHSVRfQVVUSE9SX0VNQUlMPSJCQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiU2Vjb25kLiIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgdHdvIG9uIEInIFwKLSAgICAnY2hlY2tfY291bnQgQSAyIEIgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIDIgYXV0aG9ycycgJworCWNoZWNrX2NvdW50IEEgMiBCIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ21lcmdlLXNldHVwIHBhcnQgMScgXAotICAgICdnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMSBtYXN0ZXIgJiYKLSAgICAgZWNobyAiM0Egc2xvdyBncmVlbiBmb3gganVtcHMgaW50byB0aGUiID4+IGZpbGUgJiYKLSAgICAgZWNobyAid2VsbC4iID4+IGZpbGUgJiYKLSAgICAgR0lUX0FVVEhPUl9OQU1FPSJCMSIgR0lUX0FVVEhPUl9FTUFJTD0iQjFAdGVzdC5naXQiIGdpdCBjb21taXQgLWEgLW0gIkJyYW5jaDEtMSInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBCMSBsaW5lcyAoYnJhbmNoMSknICcKKwlnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMSBtYXN0ZXIgJiYKKwllY2hvICIzQSBzbG93IGdyZWVuIGZveCBqdW1wcyBpbnRvIHRoZSIgPj5maWxlICYmCisJZWNobyAid2VsbC4iID4+ZmlsZSAmJgorCUdJVF9BVVRIT1JfTkFNRT0iQjEiIEdJVF9BVVRIT1JfRU1BSUw9IkIxQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiQnJhbmNoMS0xIgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnVHdvIGxpbmVzIGJsYW1lZCBvbiBBLCB0d28gb24gQiwgdHdvIG9uIEIxJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDIgQjEgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIDIgYXV0aG9ycyArIDEgYnJhbmNoMSBhdXRob3InICcKKwljaGVja19jb3VudCBBIDIgQiAyIEIxIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ21lcmdlLXNldHVwIHBhcnQgMicgXAotICAgICdnaXQgY2hlY2tvdXQgLWIgYnJhbmNoMiBtYXN0ZXIgJiYKLSAgICAgc2VkIC1lICJzLzJBIHF1aWNrIGJyb3duLzRBIHF1aWNrIGJyb3duIGxhenkgZG9nLyIgPCBmaWxlID4gZmlsZS5uZXcgJiYKLSAgICAgbXYgZmlsZS5uZXcgZmlsZSAmJgotICAgICBHSVRfQVVUSE9SX05BTUU9IkIyIiBHSVRfQVVUSE9SX0VNQUlMPSJCMkB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiQnJhbmNoMi0xIicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIEIyIGxpbmVzIChicmFuY2gyKScgJworCWdpdCBjaGVja291dCAtYiBicmFuY2gyIG1hc3RlciAmJgorCXNlZCAtZSAicy8yQSBxdWljayBicm93bi80QSBxdWljayBicm93biBsYXp5IGRvZy8iIDxmaWxlID5maWxlLm5ldyAmJgorCW12IGZpbGUubmV3IGZpbGUgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkIyIiBHSVRfQVVUSE9SX0VNQUlMPSJCMkB0ZXN0LmdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIkJyYW5jaDItMSIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIG9uZSBvbiBCMicgXAotICAgICdjaGVja19jb3VudCBBIDIgQiAxIEIyIDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAyIGF1dGhvcnMgKyAxIGJyYW5jaDIgYXV0aG9yJyAnCisJY2hlY2tfY291bnQgQSAyIEIgMSBCMiAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdtZXJnZS1zZXR1cCBwYXJ0IDMnIFwKLSAgICAnZ2l0IHB1bGwgLiBicmFuY2gxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgYnJhbmNoMSAmIGJyYW5jaDInICcKKwlnaXQgcHVsbCAuIGJyYW5jaDEKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIHR3byBvbiBCMSwgb25lIG9uIEIyJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgMiBhdXRob3JzICsgMiBtZXJnZWQtaW4gYXV0aG9ycycgJworCWNoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdBbm5vdGF0aW5nIGFuIG9sZCByZXZpc2lvbiB3b3JrcycgXAotICAgICdjaGVja19jb3VudCAtaCBtYXN0ZXIgQSAyIEIgMicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGFuY2VzdG9yJyAnCisJY2hlY2tfY291bnQgLWggbWFzdGVyIEEgMiBCIDIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ0Fubm90YXRpbmcgYW4gb2xkIHJldmlzaW9uIHdvcmtzJyBcCi0gICAgJ2NoZWNrX2NvdW50IC1oIG1hc3Rlcl4gQSAyJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgZ3JlYXQtYW5jZXN0b3InICcKKwljaGVja19jb3VudCAtaCBtYXN0ZXJeIEEgMgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnbWVyZ2Utc2V0dXAgcGFydCA0JyBcCi0gICAgJ2VjaG8gImV2aWwgbWVyZ2UuIiA+PmZpbGUgJiYKLSAgICAgZ2l0IGNvbW1pdCAtYSAtLWFtZW5kJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZXZpbCBtZXJnZScgJworCWVjaG8gImV2aWwgbWVyZ2UuIiA+PmZpbGUgJiYKKwlnaXQgY29tbWl0IC1hIC0tYW1lbmQKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ1R3byBsaW5lcyBibGFtZWQgb24gQSwgb25lIG9uIEIsIHR3byBvbiBCMSwgb25lIG9uIEIyLCBvbmUgb24gQSBVIFRob3InIFwKLSAgICAnY2hlY2tfY291bnQgQSAyIEIgMSBCMSAyIEIyIDEgIkEgVSBUaG9yIiAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgZXZpbCBtZXJnZScgJworCWNoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxICJBIFUgVGhvciIgMQorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnYW4gaW5jb21wbGV0ZSBsaW5lIGFkZGVkJyBcCi0gICAgJ2VjaG8gImluY29tcGxldGUiIHwgdHIgLWQgIlxcMDEyIiA+PmZpbGUgJiYKLSAgICBHSVRfQVVUSE9SX05BTUU9IkMiIEdJVF9BVVRIT1JfRU1BSUw9IkNAdGVzdC5naXQiIGdpdCBjb21taXQgLWEgLW0gIkluY29tcGxldGUiJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgaW5jb21wbGV0ZSBsaW5lJyAnCisJZWNobyAiaW5jb21wbGV0ZSIgfCB0ciAtZCAiXFwwMTIiID4+ZmlsZSAmJgorCUdJVF9BVVRIT1JfTkFNRT0iQyIgR0lUX0FVVEhPUl9FTUFJTD0iQ0B0ZXN0LmdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIkluY29tcGxldGUiCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdXaXRoIGluY29tcGxldGUgbGluZXMuJyBcCi0gICAgJ2NoZWNrX2NvdW50IEEgMiBCIDEgQjEgMiBCMiAxICJBIFUgVGhvciIgMSBDIDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBpbmNvbXBsZXRlIGxpbmUnICcKKwljaGVja19jb3VudCBBIDIgQiAxIEIxIDIgQjIgMSAiQSBVIFRob3IiIDEgQyAxCisnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdzb21lIGVkaXQnIFwKLSAgICAnbXYgZmlsZSBmaWxlLm9yaWcgJiYKLSAgICB7Ci0JY2F0IGZpbGUub3JpZyAmJgotCWVjaG8KLSAgICB9IHwgc2VkIC1lICJzL14zQS85OS8iIC1lICIvXjFBL2QiIC1lICIvXmluY29tcGxldGUvZCIgPiBmaWxlICYmCi0gICAgZWNobyAiaW5jb21wbGV0ZSIgfCB0ciAtZCAiXFwwMTIiID4+ZmlsZSAmJgotICAgIEdJVF9BVVRIT1JfTkFNRT0iRCIgR0lUX0FVVEhPUl9FTUFJTD0iREB0ZXN0LmdpdCIgZ2l0IGNvbW1pdCAtYSAtbSAiZWRpdCInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBlZGl0cycgJworCW12IGZpbGUgZmlsZS5vcmlnICYmCisJeworCQljYXQgZmlsZS5vcmlnICYmCisJCWVjaG8KKwl9IHwgc2VkIC1lICJzL14zQS85OS8iIC1lICIvXjFBL2QiIC1lICIvXmluY29tcGxldGUvZCIgPmZpbGUgJiYKKwllY2hvICJpbmNvbXBsZXRlIiB8IHRyIC1kICJcXDAxMiIgPj5maWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJEIiBHSVRfQVVUSE9SX0VNQUlMPSJEQHRlc3QuZ2l0IiBcCisJZ2l0IGNvbW1pdCAtYSAtbSAiZWRpdCIKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3NvbWUgZWRpdCcgXAotICAgICdjaGVja19jb3VudCBBIDEgQiAxIEIxIDEgQjIgMSAiQSBVIFRob3IiIDEgQyAxIEQgMScKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIGVkaXRzJyAnCisJY2hlY2tfY291bnQgQSAxIEIgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxIEMgMSBEIDEKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2FuIG9iZnVzY2F0ZWQgZW1haWwgYWRkZWQnIFwKLSAgICAnZWNobyAiTm8gcm9ib3RzIGFsbG93ZWQiID4gZmlsZS5uZXcgJiYKLSAgICAgY2F0IGZpbGUgPj4gZmlsZS5uZXcgJiYKLSAgICAgbXYgZmlsZS5uZXcgZmlsZSAmJgotICAgICBHSVRfQVVUSE9SX05BTUU9IkUiIEdJVF9BVVRIT1JfRU1BSUw9IkUgYXQgdGVzdCBkb3QgZ2l0IiBnaXQgY29tbWl0IC1hIC1tICJub3JvYm90cyInCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvYmZ1c2NhdGVkIGVtYWlsJyAnCisJZWNobyAiTm8gcm9ib3RzIGFsbG93ZWQiID5maWxlLm5ldyAmJgorCWNhdCBmaWxlID4+ZmlsZS5uZXcgJiYKKwltdiBmaWxlLm5ldyBmaWxlICYmCisJR0lUX0FVVEhPUl9OQU1FPSJFIiBHSVRfQVVUSE9SX0VNQUlMPSJFIGF0IHRlc3QgZG90IGdpdCIgXAorCWdpdCBjb21taXQgLWEgLW0gIm5vcm9ib3RzIgorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnb2JmdXNjYXRlZCBlbWFpbCBwYXJzZWQnIFwKLSAgICAnY2hlY2tfY291bnQgQSAxIEIgMSBCMSAxIEIyIDEgIkEgVSBUaG9yIiAxIEMgMSBEIDEgRSAxJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgb2JmdXNjYXRlZCBlbWFpbCcgJworCWNoZWNrX2NvdW50IEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAxIChhbGwpJyAnCisJY2hlY2tfY291bnQgLUwxIEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsIChhbGwpJyAnCisJY2hlY2tfY291bnQgLUwsIEEgMSBCIDEgQjEgMSBCMiAxICJBIFUgVGhvciIgMSBDIDEgRCAxIEUgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYIHRvIGVuZCknICcKKwljaGVja19jb3VudCAtTDUgQjEgMSBDIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYLCAoWCB0byBlbmQpJyAnCisJY2hlY2tfY291bnQgLUw1LCBCMSAxIEMgMSBEIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MICxZICh1cCB0byBZKScgJworCWNoZWNrX2NvdW50IC1MLDMgQSAxIEIyIDEgRSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsWCcgJworCWNoZWNrX2NvdW50IC1MMywzIEIyIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCxZJyAnCisJY2hlY2tfY291bnQgLUwzLDYgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWSxYICh1bmRvY3VtZW50ZWQpJyAnCisJY2hlY2tfY291bnQgLUw2LDMgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwrMScgJworCWNoZWNrX2NvdW50IC1MMywrMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsK04nICcKKwljaGVja19jb3VudCAtTDMsKzQgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgWCwtMScgJworCWNoZWNrX2NvdW50IC1MMywtMSBCMiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsLU4nICcKKwljaGVja19jb3VudCAtTDYsLTQgQiAxIEIxIDEgQjIgMSBEIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgL1JFLyAoUkUgdG8gZW5kKScgJworCWNoZWNrX2NvdW50IC1ML2V2aWwvIEMgMSAiQSBVIFRob3IiIDEKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLUwgL1JFLywvUkUyLycgJworCWNoZWNrX2NvdW50IC1ML3JvYm90LywvZ3JlZW4vIEEgMSBCIDEgQjIgMSBEIDEgRSAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIFgsL1JFLycgJworCWNoZWNrX2NvdW50IC1MNSwvZXZpbC8gQjEgMSBEIDEgIkEgVSBUaG9yIiAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIC9SRS8sWScgJworCWNoZWNrX2NvdW50IC1MLzk5Lyw3IEIxIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvLCtOJyAnCisJY2hlY2tfY291bnQgLUwvOTkvLCszIEIxIDEgRCAxICJBIFUgVGhvciIgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAvUkUvLC1OJyAnCisJY2hlY2tfY291bnQgLUwvOTkvLC0zIEIgMSBCMiAxIEQgMQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCBYIChYID4gbmxpbmVzKScgJworCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMTIzNDUgZmlsZQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCAsWSAoWSA+IG5saW5lcyknICcKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTCwxMjM0NSBmaWxlCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIC1MIDpyZWdleCcgJworCXRyIFEgIlxcdCIgPmhlbGxvLmMgPDwtXEVPRiAmJgorCWludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCisJeworCVFwdXRzKCJoZWxsbyIpOworCX0KKwlFT0YKKwlnaXQgYWRkIGhlbGxvLmMgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkYiIEdJVF9BVVRIT1JfRU1BSUw9IkZAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1tICJoZWxsbyIgJiYKKworCW12IGhlbGxvLmMgaGVsbG8ub3JpZyAmJgorCXNlZCAtZSAiL30vIHt4OyBzLyQvUXB1dHMoXCJnb29kYnllXCIpOy87IEc7fSIgPGhlbGxvLm9yaWcgfAorCXRyIFEgIlxcdCIgPmhlbGxvLmMgJiYKKwlHSVRfQVVUSE9SX05BTUU9IkciIEdJVF9BVVRIT1JfRU1BSUw9IkdAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJnb29kYnllIiAmJgorCisJbXYgaGVsbG8uYyBoZWxsby5vcmlnICYmCisJZWNobyAiI2luY2x1ZGUgPHN0ZGlvLmg+IiA+aGVsbG8uYyAmJgorCWNhdCBoZWxsby5vcmlnID4+aGVsbG8uYyAmJgorCXRyIFEgIlxcdCIgPj5oZWxsby5jIDw8LVxFT0YKKwl2b2lkIG1haWwoKQorCXsKKwlRcHV0cygibWFpbCIpOworCX0KKwlFT0YKKwlHSVRfQVVUSE9SX05BTUU9IkgiIEdJVF9BVVRIT1JfRU1BSUw9IkhAdGVzdC5naXQiIFwKKwlnaXQgY29tbWl0IC1hIC1tICJtYWlsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSAtTCA6bGl0ZXJhbCcgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgLUw6bWFpbiBGIDQgRyAxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDpyZWdleCcgJworCWNoZWNrX2NvdW50IC1mIGhlbGxvLmMgIi1MOm1bYS16XVthLXpdbCIgSCA0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIDpub21hdGNoJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUw6bm9tYXRjaCBoZWxsby5jCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIC1MIGJvZ3VzJyAnCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwgZmlsZSAmJgorCXRlc3RfbXVzdF9mYWlsICRQUk9HIC1MMSwrIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsLSBmaWxlICYmCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUxYIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsWCBmaWxlICYmCisJdGVzdF9tdXN0X2ZhaWwgJFBST0cgLUwxLCtOIGZpbGUgJiYKKwl0ZXN0X211c3RfZmFpbCAkUFJPRyAtTDEsLU4gZmlsZQorJwpkaWZmIC0tZ2l0IGEvdC9jaGVjay1ub24tcG9ydGFibGUtc2hlbGwucGwgYi90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbAppbmRleCA4YjVhNzFkLi40NTk3MWY0IDEwMDc1NQotLS0gYS90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbAorKysgYi90L2NoZWNrLW5vbi1wb3J0YWJsZS1zaGVsbC5wbApAQCAtMjEsNiArMjEsNyBAQAogCS9eXHMqZGVjbGFyZVxzKy8gYW5kIGVyciAnYXJyYXlzL2RlY2xhcmUgbm90IHBvcnRhYmxlJzsKIAkvXlxzKlteI11ccyp3aGljaFxzLyBhbmQgZXJyICd3aGljaCBpcyBub3QgcG9ydGFibGUgKHBsZWFzZSB1c2UgdHlwZSknOwogCS90ZXN0XHMrW149XSo9PS8gYW5kIGVyciAnInRlc3QgYSA9PSBiIiBpcyBub3QgcG9ydGFibGUgKHBsZWFzZSB1c2UgPSknOworCS9eXHMqZXhwb3J0XHMrW149XSo9LyBhbmQgZXJyICciZXhwb3J0IEZPTz1iYXIiIGlzIG5vdCBwb3J0YWJsZSAocGxlYXNlIHVzZSBGT089YmFyICYmIGV4cG9ydCBGT08pJzsKIAkjIHRoaXMgcmVzZXRzIG91ciAkLiBmb3IgZWFjaCBmaWxlCiAJY2xvc2UgQVJHViBpZiBlb2Y7CiB9CmRpZmYgLS1naXQgYS90L2dpdHdlYi1saWIuc2ggYi90L2dpdHdlYi1saWIuc2gKaW5kZXggYWUyZGM0Ni4uOWUzODFlMCAxMDA2NDQKLS0tIGEvdC9naXR3ZWItbGliLnNoCisrKyBiL3QvZ2l0d2ViLWxpYi5zaApAQCAtMzYsNyArMzYsNyBAQAogCiAJIyBZb3UgY2FuIHNldCB0aGUgR0lUV0VCX1RFU1RfSU5TVEFMTEVEIGVudmlyb25tZW50IHZhcmlhYmxlIHRvCiAJIyB0aGUgZ2l0d2ViZGlyICh0aGUgZGlyZWN0b3J5IHdoZXJlIGdpdHdlYiBpcyBpbnN0YWxsZWQgLyBkZXBsb3llZCB0bykKLQkjIG9mIGFuIGV4aXN0aW5nIGdpdHdlYiBpbnN0YWxhdGlvbiB0byB0ZXN0IHRoYXQgaW5zdGFsbGF0aW9uLAorCSMgb2YgYW4gZXhpc3RpbmcgZ2l0d2ViIGluc3RhbGxhdGlvbiB0byB0ZXN0IHRoYXQgaW5zdGFsbGF0aW9uLAogCSMgb3Igc2ltcGx5IHRvIHBhdGhuYW1lIG9mIGluc3RhbGxlZCBnaXR3ZWIgc2NyaXB0LgogCWlmIHRlc3QgLW4gIiRHSVRXRUJfVEVTVF9JTlNUQUxMRUQiIDsgdGhlbgogCQlpZiB0ZXN0IC1kICRHSVRXRUJfVEVTVF9JTlNUQUxMRUQ7IHRoZW4KZGlmZiAtLWdpdCBhL3QvbGliLWh0dHBkL2FwYWNoZS5jb25mIGIvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKaW5kZXggYjViY2U0NS4uZGQxN2UzYSAxMDA2NDQKLS0tIGEvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKKysrIGIvdC9saWItaHR0cGQvYXBhY2hlLmNvbmYKQEAgLTEsNSArMSw0IEBACiBTZXJ2ZXJOYW1lIGR1bW15Ci1Mb2NrRmlsZSBhY2NlcHQubG9jawogUGlkRmlsZSBodHRwZC5waWQKIERvY3VtZW50Um9vdCB3d3cKIExvZ0Zvcm1hdCAiJWggJWwgJXUgJXQgXCIlclwiICU+cyAlYiIgY29tbW9uCkBAIC0yNCw2ICsyMywxMCBAQAogCUxvYWRNb2R1bGUgdmVyc2lvbl9tb2R1bGUgbW9kdWxlcy9tb2RfdmVyc2lvbi5zbwogPC9JZk1vZHVsZT4KIAorPElmVmVyc2lvbiA8IDIuND4KK0xvY2tGaWxlIGFjY2VwdC5sb2NrCis8L0lmVmVyc2lvbj4KKwogPElmVmVyc2lvbiA8IDIuMT4KIDxJZk1vZHVsZSAhbW9kX2F1dGguYz4KIAlMb2FkTW9kdWxlIGF1dGhfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGguc28KQEAgLTQ1LDYgKzQ4LDIxIEBACiA8L0lmTW9kdWxlPgogPC9JZlZlcnNpb24+CiAKKzxJZlZlcnNpb24gPj0gMi40PgorPElmTW9kdWxlICFtb2RfYXV0aG5fY29yZS5jPgorCUxvYWRNb2R1bGUgYXV0aG5fY29yZV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fY29yZS5zbworPC9JZk1vZHVsZT4KKzxJZk1vZHVsZSAhbW9kX2F1dGh6X2NvcmUuYz4KKwlMb2FkTW9kdWxlIGF1dGh6X2NvcmVfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2NvcmUuc28KKzwvSWZNb2R1bGU+Cis8SWZNb2R1bGUgIW1vZF9hY2Nlc3NfY29tcGF0LmM+CisJTG9hZE1vZHVsZSBhY2Nlc3NfY29tcGF0X21vZHVsZSBtb2R1bGVzL21vZF9hY2Nlc3NfY29tcGF0LnNvCis8L0lmTW9kdWxlPgorPElmTW9kdWxlICFtb2RfbXBtX3ByZWZvcmsuYz4KKwlMb2FkTW9kdWxlIG1wbV9wcmVmb3JrX21vZHVsZSBtb2R1bGVzL21vZF9tcG1fcHJlZm9yay5zbworPC9JZk1vZHVsZT4KKzwvSWZWZXJzaW9uPgorCiBQYXNzRW52IEdJVF9WQUxHUklORAogUGFzc0VudiBHSVRfVkFMR1JJTkRfT1BUSU9OUwogCmRpZmYgLS1naXQgYS90L2xpYi1yZWJhc2Uuc2ggYi90L2xpYi1yZWJhc2Uuc2gKaW5kZXggNmNjZjc5Ny4uOGZmODdmYiAxMDA2NDQKLS0tIGEvdC9saWItcmViYXNlLnNoCisrKyBiL3QvbGliLXJlYmFzZS5zaApAQCAtMTcsNTEgKzE3LDk4IEBACiAjICAgICAgICgic3F1YXNoIiwgImZpeHVwIiwgImVkaXQiLCBvciAicmV3b3JkIikgYW5kIHRoZSBTSEExIHRha2VuCiAjICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCBsaW5lLgogIworIyAgICJleGVjX2NtZF93aXRoX2FyZ3MiIC0tIGFkZCBhbiAiZXhlYyBjbWQgd2l0aCBhcmdzIiBsaW5lLgorIwogIyAgICIjIiAtLSBBZGQgYSBjb21tZW50IGxpbmUuCiAjCiAjICAgIj4iIC0tIEFkZCBhIGJsYW5rIGxpbmUuCiAKIHNldF9mYWtlX2VkaXRvciAoKSB7Ci0JZWNobyAiIyEkU0hFTExfUEFUSCIgPmZha2UtZWRpdG9yLnNoCi0JY2F0ID4+IGZha2UtZWRpdG9yLnNoIDw8XEVPRgotY2FzZSAiJDEiIGluCi0qL0NPTU1JVF9FRElUTVNHKQotCXRlc3QgLXogIiRFWFBFQ1RfSEVBREVSX0NPVU5UIiB8fAotCQl0ZXN0ICIkRVhQRUNUX0hFQURFUl9DT1VOVCIgPSAiJChzZWQgLW4gJzFzL14jIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiBcKC4qXCkgY29tbWl0c1wuL1wxL3AnIDwgIiQxIikiIHx8CisJd3JpdGVfc2NyaXB0IGZha2UtZWRpdG9yLnNoIDw8LVxFT0YKKwljYXNlICIkMSIgaW4KKwkqL0NPTU1JVF9FRElUTVNHKQorCQl0ZXN0IC16ICIkRVhQRUNUX0hFQURFUl9DT1VOVCIgfHwKKwkJCXRlc3QgIiRFWFBFQ1RfSEVBREVSX0NPVU5UIiA9ICIkKHNlZCAtbiAnMXMvXiMgVGhpcyBpcyBhIGNvbWJpbmF0aW9uIG9mIFwoLipcKSBjb21taXRzXC4vXDEvcCcgPCAiJDEiKSIgfHwKKwkJCWV4aXQKKwkJdGVzdCAteiAiJEZBS0VfQ09NTUlUX01FU1NBR0UiIHx8IGVjaG8gIiRGQUtFX0NPTU1JVF9NRVNTQUdFIiA+ICIkMSIKKwkJdGVzdCAteiAiJEZBS0VfQ09NTUlUX0FNRU5EIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfQU1FTkQiID4+ICIkMSIKIAkJZXhpdAotCXRlc3QgLXogIiRGQUtFX0NPTU1JVF9NRVNTQUdFIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfTUVTU0FHRSIgPiAiJDEiCi0JdGVzdCAteiAiJEZBS0VfQ09NTUlUX0FNRU5EIiB8fCBlY2hvICIkRkFLRV9DT01NSVRfQU1FTkQiID4+ICIkMSIKLQlleGl0Ci0JOzsKLWVzYWMKLXRlc3QgLXogIiRFWFBFQ1RfQ09VTlQiIHx8Ci0JdGVzdCAiJEVYUEVDVF9DT1VOVCIgPSAkKHNlZCAtZSAnL14jL2QnIC1lICcvXiQvZCcgPCAiJDEiIHwgd2MgLWwpIHx8Ci0JZXhpdAotdGVzdCAteiAiJEZBS0VfTElORVMiICYmIGV4aXQKLWdyZXAgLXYgJ14jJyA8ICIkMSIgPiAiJDEiLnRtcAotcm0gLWYgIiQxIgotZWNobyAncmViYXNlIC1pIHNjcmlwdCBiZWZvcmUgZWRpdGluZzonCi1jYXQgIiQxIi50bXAKLWFjdGlvbj1waWNrCi1mb3IgbGluZSBpbiAkRkFLRV9MSU5FUzsgZG8KLQljYXNlICRsaW5lIGluCi0Jc3F1YXNofGZpeHVwfGVkaXR8cmV3b3JkKQotCQlhY3Rpb249IiRsaW5lIjs7Ci0JZXhlYyopCi0JCWVjaG8gIiRsaW5lIiB8IHNlZCAncy9fLyAvZycgPj4gIiQxIjs7Ci0JIiMiKQotCQllY2hvICcjIGNvbW1lbnQnID4+ICIkMSI7OwotCSI+IikKLQkJZWNobyA+PiAiJDEiOzsKLQkqKQotCQlzZWQgLW4gIiR7bGluZX1zL15waWNrLyRhY3Rpb24vcCIgPCAiJDEiLnRtcCA+PiAiJDEiCi0JCWFjdGlvbj1waWNrOzsKKwkJOzsKIAllc2FjCi1kb25lCi1lY2hvICdyZWJhc2UgLWkgc2NyaXB0IGFmdGVyIGVkaXRpbmc6JwotY2F0ICIkMSIKLUVPRgorCXRlc3QgLXogIiRFWFBFQ1RfQ09VTlQiIHx8CisJCXRlc3QgIiRFWFBFQ1RfQ09VTlQiID0gJChzZWQgLWUgJy9eIy9kJyAtZSAnL14kL2QnIDwgIiQxIiB8IHdjIC1sKSB8fAorCQlleGl0CisJdGVzdCAteiAiJEZBS0VfTElORVMiICYmIGV4aXQKKwlncmVwIC12ICdeIycgPCAiJDEiID4gIiQxIi50bXAKKwlybSAtZiAiJDEiCisJZWNobyAncmViYXNlIC1pIHNjcmlwdCBiZWZvcmUgZWRpdGluZzonCisJY2F0ICIkMSIudG1wCisJYWN0aW9uPXBpY2sKKwlmb3IgbGluZSBpbiAkRkFLRV9MSU5FUzsgZG8KKwkJY2FzZSAkbGluZSBpbgorCQlzcXVhc2h8Zml4dXB8ZWRpdHxyZXdvcmQpCisJCQlhY3Rpb249IiRsaW5lIjs7CisJCWV4ZWMqKQorCQkJZWNobyAiJGxpbmUiIHwgc2VkICdzL18vIC9nJyA+PiAiJDEiOzsKKwkJIiMiKQorCQkJZWNobyAnIyBjb21tZW50JyA+PiAiJDEiOzsKKwkJIj4iKQorCQkJZWNobyA+PiAiJDEiOzsKKwkJKikKKwkJCXNlZCAtbiAiJHtsaW5lfXMvXnBpY2svJGFjdGlvbi9wIiA8ICIkMSIudG1wID4+ICIkMSIKKwkJCWFjdGlvbj1waWNrOzsKKwkJZXNhYworCWRvbmUKKwllY2hvICdyZWJhc2UgLWkgc2NyaXB0IGFmdGVyIGVkaXRpbmc6JworCWNhdCAiJDEiCisJRU9GCiAKIAl0ZXN0X3NldF9lZGl0b3IgIiQocHdkKS9mYWtlLWVkaXRvci5zaCIKLQljaG1vZCBhK3ggZmFrZS1lZGl0b3Iuc2gKK30KKworIyBBZnRlciBzZXRfY2F0X3RvZG9fZWRpdG9yLCByZWJhc2UgLWkgd2lsbCB3cml0ZSB0aGUgdG9kbyBsaXN0IChpZ25vcmluZworIyBibGFuayBsaW5lcyBhbmQgY29tbWVudHMpIHRvIHN0ZG91dCwgYW5kIGV4aXQgZmFpbHVyZSAoc28geW91IHNob3VsZCBydW4KKyMgaXQgd2l0aCB0ZXN0X211c3RfZmFpbCkuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHZlcmlmeSB0aGUgZXhwZWN0ZWQgdXNlcgorIyBleHBlcmllbmNlLCBmb3IgdG9kbyBsaXN0IGNoYW5nZXMgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBvdXRjb21lIG9mCisjIHJlYmFzZTsgb3IgYXMgYW4gZXh0cmEgY2hlY2sgaW4gYWRkaXRpb24gdG8gY2hlY2tpbmcgdGhlIG91dGNvbWUuCisKK3NldF9jYXRfdG9kb19lZGl0b3IgKCkgeworCXdyaXRlX3NjcmlwdCBmYWtlLWVkaXRvci5zaCA8PC1cRU9GCisJZ3JlcCAiXlteI10iICIkMSIKKwlleGl0IDEKKwlFT0YKKwl0ZXN0X3NldF9lZGl0b3IgIiQocHdkKS9mYWtlLWVkaXRvci5zaCIKK30KKworIyBjaGVja3MgdGhhdCB0aGUgcmV2aXNpb25zIGluICIkMiIgcmVwcmVzZW50IGEgbGluZWFyIHJhbmdlIHdpdGggdGhlCisjIHN1YmplY3RzIGluICIkMSIKK3Rlc3RfbGluZWFyX3JhbmdlICgpIHsKKwlyZXZsaXN0X21lcmdlcz0kKGdpdCByZXYtbGlzdCAtLW1lcmdlcyAiJDIiKSAmJgorCXRlc3QgLXogIiRyZXZsaXN0X21lcmdlcyIgJiYKKwlleHBlY3RlZD0kMQorCXNldCAtLSAkKGdpdCBsb2cgLS1yZXZlcnNlIC0tZm9ybWF0PSVzICIkMiIpCisJdGVzdCAiJGV4cGVjdGVkIiA9ICIkKiIKK30KKworcmVzZXRfcmViYXNlICgpIHsKKwl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IHJlYmFzZSAtLWFib3J0ICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBjbGVhbiAtZgorfQorCitjaGVycnlfcGljayAoKSB7CisJZ2l0IGNoZXJyeS1waWNrIC1uICIkMiIgJiYKKwlnaXQgY29tbWl0IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKK30KKworcmV2ZXJ0ICgpIHsKKwlnaXQgcmV2ZXJ0IC1uICIkMiIgJiYKKwlnaXQgY29tbWl0IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKK30KKworbWFrZV9lbXB0eSAoKSB7CisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICIkMSIgJiYKKwlnaXQgdGFnICIkMSIKIH0KZGlmZiAtLWdpdCBhL3QvbGliLXQ2MDAwLnNoIGIvdC9saWItdDYwMDAuc2gKaW5kZXggZWEyNWRkOC4uM2YyZDg3MyAxMDA2NDQKLS0tIGEvdC9saWItdDYwMDAuc2gKKysrIGIvdC9saWItdDYwMDAuc2gKQEAgLTEsNTUgKzEsNTAgQEAKIDogaW5jbHVkZWQgZnJvbSA2MDAyIGFuZCBvdGhlcnMKIAotWyAtZCAuZ2l0L3JlZnMvdGFncyBdIHx8IG1rZGlyIC1wIC5naXQvcmVmcy90YWdzCitta2RpciAtcCAuZ2l0L3JlZnMvdGFncwogCi06PiBzZWQuc2NyaXB0Cis+c2VkLnNjcmlwdAogCi0jIEFuc3dlciB0aGUgc2hhMSBoYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWcuIFRoZSB0YWcgbXVzdCBleGlzdCBpbiAuZ2l0IG9yIC5naXQvcmVmcy90YWdzCi10YWcoKQoteworIyBBbnN3ZXIgdGhlIHNoYTEgaGFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFnLiBUaGUgdGFnIG11c3QgZXhpc3QgaW4gLmdpdC9yZWZzL3RhZ3MKK3RhZyAoKSB7CiAJX3RhZz0kMQotCVsgLWYgLmdpdC9yZWZzL3RhZ3MvJF90YWcgXSB8fCBlcnJvciAidGFnOiBcIiRfdGFnXCIgZG9lcyBub3QgZXhpc3QiCi0JY2F0IC5naXQvcmVmcy90YWdzLyRfdGFnCisJdGVzdCAtZiAiLmdpdC9yZWZzL3RhZ3MvJF90YWciIHx8IGVycm9yICJ0YWc6IFwiJF90YWdcIiBkb2VzIG5vdCBleGlzdCIKKwljYXQgIi5naXQvcmVmcy90YWdzLyRfdGFnIgogfQogCiAjIEdlbmVyYXRlIGEgY29tbWl0IHVzaW5nIHRoZSB0ZXh0IHNwZWNpZmllZCB0byBtYWtlIGl0IHVuaXF1ZSBhbmQgdGhlIHRyZWUKICMgbmFtZWQgYnkgdGhlIHRhZyBzcGVjaWZpZWQuCi11bmlxdWVfY29tbWl0KCkKLXsKK3VuaXF1ZV9jb21taXQgKCkgewogCV90ZXh0PSQxCi0gICAgICAgIF90cmVlPSQyCisJX3RyZWU9JDIKIAlzaGlmdCAyCi0JZWNobyAkX3RleHQgfCBnaXQgY29tbWl0LXRyZWUgJCh0YWcgJF90cmVlKSAiJEAiCisJZWNobyAiJF90ZXh0IiB8IGdpdCBjb21taXQtdHJlZSAkKHRhZyAiJF90cmVlIikgIiRAIgogfQogCiAjIFNhdmUgdGhlIG91dHB1dCBvZiBhIGNvbW1hbmQgaW50byB0aGUgdGFnIHNwZWNpZmllZC4gUHJlcGVuZAogIyBhIHN1YnN0aXR1dGlvbiBzY3JpcHQgZm9yIHRoZSB0YWcgb250byB0aGUgZnJvbnQgb2Ygc2VkLnNjcmlwdAotc2F2ZV90YWcoKQoteworc2F2ZV90YWcgKCkgewogCV90YWc9JDEKLQlbIC1uICIkX3RhZyIgXSB8fCBlcnJvciAidXNhZ2U6IHNhdmVfdGFnIHRhZyBjb21taXQtYXJncyAuLi4iCisJdGVzdCAtbiAiJF90YWciIHx8IGVycm9yICJ1c2FnZTogc2F2ZV90YWcgdGFnIGNvbW1pdC1hcmdzIC4uLiIKIAlzaGlmdCAxCi0JIiRAIiA+LmdpdC9yZWZzL3RhZ3MvJF90YWcKKwkiJEAiID4iLmdpdC9yZWZzL3RhZ3MvJF90YWciCiAKLSAgICAgICAgZWNobyAicy8kKHRhZyAkX3RhZykvJF90YWcvZyIgPiBzZWQuc2NyaXB0LnRtcAotCWNhdCBzZWQuc2NyaXB0ID4+IHNlZC5zY3JpcHQudG1wCisJZWNobyAicy8kKHRhZyAkX3RhZykvJF90YWcvZyIgPnNlZC5zY3JpcHQudG1wCisJY2F0IHNlZC5zY3JpcHQgPj5zZWQuc2NyaXB0LnRtcAogCXJtIHNlZC5zY3JpcHQKIAltdiBzZWQuc2NyaXB0LnRtcCBzZWQuc2NyaXB0CiB9CiAKLSMgUmVwbGFjZSB1bmhlbHBmdWwgc2hhMSBoYXNoc2VzIHdpdGggdGhlaXIgc3ltYm9saWMgZXF1aXZhbGVudHMKLWVudGFnKCkKLXsKKyMgUmVwbGFjZSB1bmhlbHBmdWwgc2hhMSBoYXNoZXMgd2l0aCB0aGVpciBzeW1ib2xpYyBlcXVpdmFsZW50cworZW50YWcgKCkgewogCXNlZCAtZiBzZWQuc2NyaXB0CiB9CiAKICMgRXhlY3V0ZSBhIGNvbW1hbmQgYWZ0ZXIgZmlyc3Qgc2F2aW5nLCB0aGVuIHNldHRpbmcgdGhlIEdJVF9BVVRIT1JfRU1BSUwKICMgdGFnIHRvIGEgc3BlY2lmaWVkIHZhbHVlLiBSZXN0b3JlIHRoZSBvcmlnaW5hbCB2YWx1ZSBvbiByZXR1cm4uCi1hc19hdXRob3IoKQoteworYXNfYXV0aG9yICgpIHsKIAlfYXV0aG9yPSQxCiAJc2hpZnQgMQotICAgICAgICBfc2F2ZT0kR0lUX0FVVEhPUl9FTUFJTAorCV9zYXZlPSRHSVRfQVVUSE9SX0VNQUlMCiAKIAlHSVRfQVVUSE9SX0VNQUlMPSIkX2F1dGhvciIKIAlleHBvcnQgR0lUX0FVVEhPUl9FTUFJTApAQCAtNjMsNDUgKzU4LDU4IEBACiAJZmkKIH0KIAotY29tbWl0X2RhdGUoKQotewotICAgICAgICBfY29tbWl0PSQxCi0JZ2l0IGNhdC1maWxlIGNvbW1pdCAkX2NvbW1pdCB8IHNlZCAtbiAicy9eY29tbWl0dGVyIC4qPiBcKFswLTldKlwpIC4qL1wxL3AiCitjb21taXRfZGF0ZSAoKSB7CisJX2NvbW1pdD0kMQorCWdpdCBjYXQtZmlsZSBjb21taXQgJF9jb21taXQgfAorCXNlZCAtbiAicy9eY29tbWl0dGVyIC4qPiBcKFswLTldKlwpIC4qL1wxL3AiCiB9CiAKLW9uX2NvbW1pdHRlcl9kYXRlKCkKLXsKLSAgICBfZGF0ZT0kMQotICAgIHNoaWZ0IDEKLSAgICBHSVRfQ09NTUlUVEVSX0RBVEU9IiRfZGF0ZSIKLSAgICBleHBvcnQgR0lUX0NPTU1JVFRFUl9EQVRFCi0gICAgIiRAIgotICAgIHVuc2V0IEdJVF9DT01NSVRURVJfREFURQorIyBBc3NpZ24gdGhlIHZhbHVlIG9mIGZha2UgZGF0ZSB0byBhIHZhcmlhYmxlLCBidXQKKyMgYWxsb3cgZmFpcmx5IGNvbW1vbiAiMTk3MS0wOC0xNiAwMDowMCIgdG8gYmUgb21pdHRkCithc3NpZ25fZmFrZV9kYXRlICgpIHsKKwljYXNlICIkMiIgaW4KKwk/Pzo/Pzo/PykJZXZhbCAiJDE9JzE5NzEtMDgtMTYgJDInIiA7OworCT8/Oj8/KQkJZXZhbCAiJDE9JzE5NzEtMDgtMTYgMDA6JDInIiA7OworCT8/KQkJZXZhbCAiJDE9JzE5NzEtMDgtMTYgMDA6MDA6JDInIiA7OworCSopCQlldmFsICIkMT0nJDInIiA7OworCWVzYWMKK30KKworb25fY29tbWl0dGVyX2RhdGUgKCkgeworCWFzc2lnbl9mYWtlX2RhdGUgR0lUX0NPTU1JVFRFUl9EQVRFICIkMSIKKwlleHBvcnQgR0lUX0NPTU1JVFRFUl9EQVRFCisJc2hpZnQgMQorCSIkQCIKK30KKworb25fZGF0ZXMgKCkgeworCWFzc2lnbl9mYWtlX2RhdGUgR0lUX0NPTU1JVFRFUl9EQVRFICIkMSIKKwlhc3NpZ25fZmFrZV9kYXRlIEdJVF9BVVRIT1JfREFURSAiJDIiCisJZXhwb3J0IEdJVF9DT01NSVRURVJfREFURSBHSVRfQVVUSE9SX0RBVEUKKwlzaGlmdCAyCisJIiRAIgogfQogCiAjIEV4ZWN1dGUgYSBjb21tYW5kIGFuZCBzdXBwcmVzcyBhbnkgZXJyb3Igb3V0cHV0LgotaGlkZV9lcnJvcigpCi17CitoaWRlX2Vycm9yICgpIHsKIAkiJEAiIDI+L2Rldi9udWxsCiB9CiAKLWNoZWNrX291dHB1dCgpCi17CitjaGVja19vdXRwdXQgKCkgewogCV9uYW1lPSQxCiAJc2hpZnQgMQotCWlmIGV2YWwgIiQqIiB8IGVudGFnID4gJF9uYW1lLmFjdHVhbAorCWlmIGV2YWwgIiQqIiB8IGVudGFnID4iJF9uYW1lLmFjdHVhbCIKIAl0aGVuCi0JCXRlc3RfY21wICRfbmFtZS5leHBlY3RlZCAkX25hbWUuYWN0dWFsCisJCXRlc3RfY21wICIkX25hbWUuZXhwZWN0ZWQiICIkX25hbWUuYWN0dWFsIgogCWVsc2UKLQkJcmV0dXJuIDE7CisJCXJldHVybiAxCiAJZmkKIH0KIAogIyBUdXJuIGEgcmVhc29uYWJsZSB0ZXN0IGRlc2NyaXB0aW9uIGludG8gYSByZWFzb25hYmxlIHRlc3QgbmFtZS4KICMgQWxsIGFscGhhbnVtcyB0cmFuc2xhdGVkIGludG8gLSdzIHdoaWNoIGFyZSB0aGVuIGNvbXByZXNzZWQgYW5kIHN0cmlwcGVkCiAjIGZyb20gZnJvbnQgYW5kIGJhY2suCi1uYW1lX2Zyb21fZGVzY3JpcHRpb24oKQoteworbmFtZV9mcm9tX2Rlc2NyaXB0aW9uICgpIHsKIAlwZXJsIC1wZSAnCiAJCXMvW15BLVphLXowLTkuXS8tL2c7CiAJCXMvLSsvLS9nOwpAQCAtMTE5LDkgKzEyNywxMSBAQAogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MoKQogewogCV9kZXNjcmlwdGlvbj0kMQotICAgICAgICBfdGVzdD0kMgotICAgICAgICBbICQjIC1lcSAyIF0gfHwgZXJyb3IgInVzYWdlOiB0ZXN0X291dHB1dF9leHBlY3Rfc3VjY2VzcyBkZXNjcmlwdGlvbiB0ZXN0IDw8RU9GIC4uLiBFT0YiCi0gICAgICAgIF9uYW1lPSQoZWNobyAkX2Rlc2NyaXB0aW9uIHwgbmFtZV9mcm9tX2Rlc2NyaXB0aW9uKQotCWNhdCA+ICRfbmFtZS5leHBlY3RlZAorCV90ZXN0PSQyCisJdGVzdCAkIyAtZXEgMiB8fAorCWVycm9yICJ1c2FnZTogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgZGVzY3JpcHRpb24gdGVzdCA8PEVPRiAuLi4gRU9GIgorCisJX25hbWU9JChlY2hvICRfZGVzY3JpcHRpb24gfCBuYW1lX2Zyb21fZGVzY3JpcHRpb24pCisJY2F0ID4iJF9uYW1lLmV4cGVjdGVkIgogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgIiRfZGVzY3JpcHRpb24iICJjaGVja19vdXRwdXQgJF9uYW1lIFwiJF90ZXN0XCIiCiB9CmRpZmYgLS1naXQgYS90L3BlcmYvUkVBRE1FIGIvdC9wZXJmL1JFQURNRQppbmRleCBjNTUyZjU2Li44ODQ4YzE0IDEwMDY0NAotLS0gYS90L3BlcmYvUkVBRE1FCisrKyBiL3QvcGVyZi9SRUFETUUKQEAgLTY2LDcgKzY2LDcgQEAKICAgICBHSVRfUEVSRl9MQVJHRV9SRVBPCiAJUmVwb3NpdG9yaWVzIHRvIGNvcHkgZm9yIHRoZSBwZXJmb3JtYW5jZSB0ZXN0cy4gIFRoZSBub3JtYWwKIAlyZXBvIHNob3VsZCBiZSBhdCBsZWFzdCBnaXQuZ2l0IHNpemUuICBUaGUgbGFyZ2UgcmVwbyBzaG91bGQKLQlwcm9iYWJseSBiZSBhYm91dCBsaW51eC0yLjYuZ2l0IHNpemUgZm9yIG9wdGltYWwgcmVzdWx0cy4KKwlwcm9iYWJseSBiZSBhYm91dCBsaW51eC5naXQgc2l6ZSBmb3Igb3B0aW1hbCByZXN1bHRzLgogCUJvdGggZGVmYXVsdCB0byB0aGUgZ2l0LmdpdCB5b3UgYXJlIHJ1bm5pbmcgZnJvbS4KIAogWW91IGNhbiBhbHNvIHBhc3MgdGhlIG9wdGlvbnMgdGFrZW4gYnkgb3JkaW5hcnkgZ2l0IHRlc3RzOyB0aGUgbW9zdApkaWZmIC0tZ2l0IGEvdC9wZXJmL3AwMDAyLXJlYWQtY2FjaGUuc2ggYi90L3BlcmYvcDAwMDItcmVhZC1jYWNoZS5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTgwYWU5Ci0tLSAvZGV2L251bGwKKysrIGIvdC9wZXJmL3AwMDAyLXJlYWQtY2FjaGUuc2gKQEAgLTAsMCArMSwxNCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249IlRlc3RzIHBlcmZvcm1hbmNlIG9mIHJlYWRpbmcgdGhlIGluZGV4IgorCisuIC4vcGVyZi1saWIuc2gKKwordGVzdF9wZXJmX2RlZmF1bHRfcmVwbworCitjb3VudD0xMDAwCit0ZXN0X3BlcmYgInJlYWRfY2FjaGUvZGlzY2FyZF9jYWNoZSAkY291bnQgdGltZXMiICIKKwl0ZXN0LXJlYWQtY2FjaGUgJGNvdW50CisiCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC9wZXJmL3A0MjExLWxpbmUtbG9nLnNoIGIvdC9wZXJmL3A0MjExLWxpbmUtbG9nLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkMDc0YjAKLS0tIC9kZXYvbnVsbAorKysgYi90L3BlcmYvcDQyMTEtbGluZS1sb2cuc2gKQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J1Rlc3RzIGxvZyAtTCBwZXJmb3JtYW5jZScKKy4gLi9wZXJmLWxpYi5zaAorCit0ZXN0X3BlcmZfZGVmYXVsdF9yZXBvCisKKyMgUGljayBhIGZpbGUgdG8gbG9nIHBzZXVkby1yYW5kb21seS4gIFRoZSBzb3J0IGtleSBpcyB0aGUgYmxvYiBoYXNoLAorIyBzbyBpdCBpcyBzdGFibGUuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZWxlY3QgYSBmaWxlJyAnCisJZ2l0IGxzLXRyZWUgSEVBRCB8IGdyZXAgXjEwMDY0NCB8CisJc29ydCAtayAzIHwgaGVhZCAtMSB8IGN1dCAtZiAyID5maWxlbGlzdAorJworCitmaWxlPSQoY2F0IGZpbGVsaXN0KQorZXhwb3J0IGZpbGUKKwordGVzdF9wZXJmICdnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyIChiYXNlbGluZSknICcKKwlnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyIEhFQUQgPi9kZXYvbnVsbAorJworCit0ZXN0X3BlcmYgJ2dpdCBsb2cgLS1mb2xsb3cgKGJhc2VsaW5lIGZvciAtTSknICcKKwlnaXQgbG9nIC0tb25lbGluZSAtLWZvbGxvdyAtLSAiJGZpbGUiID4vZGV2L251bGwKKycKKwordGVzdF9wZXJmICdnaXQgbG9nIC1MJyAnCisJZ2l0IGxvZyAtTCAxOiIkZmlsZSIgPi9kZXYvbnVsbAorJworCit0ZXN0X3BlcmYgJ2dpdCBsb2cgLU0gLUwnICcKKwlnaXQgbG9nIC1NIC1MIDE6IiRmaWxlIiA+L2Rldi9udWxsCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC9wZXJmL3BlcmYtbGliLnNoIGIvdC9wZXJmL3BlcmYtbGliLnNoCmluZGV4IGE4MTZmYmMuLmY0ZWVjYWEgMTAwNjQ0Ci0tLSBhL3QvcGVyZi9wZXJmLWxpYi5zaAorKysgYi90L3BlcmYvcGVyZi1saWIuc2gKQEAgLTE1MCw2ICsxNTAsNyBAQAogCiAKIHRlc3RfcGVyZiAoKSB7CisJdGVzdF9zdGFydF8KIAl0ZXN0ICIkIyIgPSAzICYmIHsgdGVzdF9wcmVyZXE9JDE7IHNoaWZ0OyB9IHx8IHRlc3RfcHJlcmVxPQogCXRlc3QgIiQjIiA9IDIgfHwKIAllcnJvciAiYnVnIGluIHRoZSB0ZXN0IHNjcmlwdDogbm90IDIgb3IgMyBwYXJhbWV0ZXJzIHRvIHRlc3QtZXhwZWN0LXN1Y2Nlc3MiCkBAIC0xNjAsNyArMTYxLDcgQEAKIAkJZWNobyAiJHRlc3RfY291bnQiID4+IiRwZXJmX3Jlc3VsdHNfZGlyIi8kYmFzZS5zdWJ0ZXN0cwogCQllY2hvICIkMSIgPiIkcGVyZl9yZXN1bHRzX2RpciIvJGJhc2UuJHRlc3RfY291bnQuZGVzY3IKIAkJaWYgdGVzdCAteiAiJHZlcmJvc2UiOyB0aGVuCi0JCQllY2hvIC1uICJwZXJmICR0ZXN0X2NvdW50IC0gJDE6IgorCQkJcHJpbnRmICIlcyIgInBlcmYgJHRlc3RfY291bnQgLSAkMToiCiAJCWVsc2UKIAkJCWVjaG8gInBlcmYgJHRlc3RfY291bnQgLSAkMToiCiAJCWZpCkBAIC0xNjksNyArMTcwLDcgQEAKIAkJCWlmIHRlc3RfcnVuX3BlcmZfICIkMiIKIAkJCXRoZW4KIAkJCQlpZiB0ZXN0IC16ICIkdmVyYm9zZSI7IHRoZW4KLQkJCQkJZWNobyAtbiAiICRpIgorCQkJCQlwcmludGYgIiAlcyIgIiRpIgogCQkJCWVsc2UKIAkJCQkJZWNobyAiKiB0aW1pbmcgcnVuICRpLyRHSVRfUEVSRl9SRVBFQVRfQ09VTlQ6IgogCQkJCWZpCkBAIC0xODcsNyArMTg4LDcgQEAKIAkJYmFzZT0iJHBlcmZfcmVzdWx0c19kaXIiLyIkcGVyZl9yZXN1bHRzX3ByZWZpeCQoYmFzZW5hbWUgIiQwIiAuc2gpIi4iJHRlc3RfY291bnQiCiAJCSIkVEVTVF9ESVJFQ1RPUlkiL3BlcmYvbWluX3RpbWUucGVybCB0ZXN0X3RpbWUuKiA+IiRiYXNlIi50aW1lcwogCWZpCi0JZWNobyA+JjMgIiIKKwl0ZXN0X2ZpbmlzaF8KIH0KIAogIyBXZSBleHRlbmQgdGVzdF9kb25lIHRvIHByaW50IHRpbWluZ3MgYXQgdGhlIGVuZCAoLi9ydW4gZGlzYWJsZXMgdGhpcwpkaWZmIC0tZ2l0IGEvdC90MDAwMC1iYXNpYy5zaCBiL3QvdDAwMDAtYmFzaWMuc2gKaW5kZXggY2VmZTMzZC4uMTBiZTUyYiAxMDA3NTUKLS0tIGEvdC90MDAwMC1iYXNpYy5zaAorKysgYi90L3QwMDAwLWJhc2ljLnNoCkBAIC00Nyw4ICs0NywxNCBAQAogCiBydW5fc3ViX3Rlc3RfbGliX3Rlc3QgKCkgewogCW5hbWU9IiQxIiBkZXNjcj0iJDIiICMgc3RkaW4gaXMgdGhlIGJvZHkgb2YgdGhlIHRlc3QgY29kZQorCXNoaWZ0IDIKIAlta2RpciAiJG5hbWUiICYmCiAJKAorCQkjIFByZXRlbmQgd2UncmUgYSB0ZXN0IGhhcm5lc3MuICBUaGlzIHByZXZlbnRzCisJCSMgdGVzdC1saWIgZnJvbSB3cml0aW5nIHRoZSBjb3VudHMgdG8gYSBmaWxlIHRoYXQgd2lsbAorCQkjIGxhdGVyIGJlIHN1bW1hcml6ZWQsIHNob3dpbmcgc3B1cmlvdXMgImZhaWxlZCIgdGVzdHMKKwkJSEFSTkVTU19BQ1RJVkU9dCAmJgorCQlleHBvcnQgSEFSTkVTU19BQ1RJVkUgJiYKIAkJY2QgIiRuYW1lIiAmJgogCQljYXQgPiIkbmFtZS5zaCIgPDwtRU9GICYmCiAJCSMhJFNIRUxMX1BBVEgKQEAgLTY1LDcgKzcxLDcgQEAKIAkJY2F0ID4+IiRuYW1lLnNoIiAmJgogCQljaG1vZCAreCAiJG5hbWUuc2giICYmCiAJCWV4cG9ydCBURVNUX0RJUkVDVE9SWSAmJgotCQkuLyIkbmFtZS5zaCIgPm91dCAyPmVycgorCQkuLyIkbmFtZS5zaCIgIiRAIiA+b3V0IDI+ZXJyCiAJKQogfQogCkBAIC0yMTUsNiArMjIxLDYwIEBACiAJRU9GCiAiCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLS12ZXJib3NlJyAnCisJdGVzdF9tdXN0X2ZhaWwgcnVuX3N1Yl90ZXN0X2xpYl90ZXN0IFwKKwkJdGVzdC12ZXJib3NlICJ0ZXN0IHZlcmJvc2UiIC0tdmVyYm9zZSA8PC1cRU9GICYmCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGFzc2luZyB0ZXN0IiB0cnVlCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAidGVzdCB3aXRoIG91dHB1dCIgImVjaG8gZm9vIgorCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZhaWxpbmcgdGVzdCIgZmFsc2UKKwl0ZXN0X2RvbmUKKwlFT0YKKwltdiB0ZXN0LXZlcmJvc2Uvb3V0IHRlc3QtdmVyYm9zZS9vdXQrCisJZ3JlcCAtdiAiXkluaXRpYWxpemVkIGVtcHR5IiB0ZXN0LXZlcmJvc2Uvb3V0KyA+dGVzdC12ZXJib3NlL291dCAmJgorCWNoZWNrX3N1Yl90ZXN0X2xpYl90ZXN0IHRlc3QtdmVyYm9zZSA8PC1cRU9GCisJPiBleHBlY3Rpbmcgc3VjY2VzczogdHJ1ZQorCT4gWgorCT4gb2sgMSAtIHBhc3NpbmcgdGVzdAorCT4gWgorCT4gZXhwZWN0aW5nIHN1Y2Nlc3M6IGVjaG8gZm9vCisJPiBmb28KKwk+IFoKKwk+IG9rIDIgLSB0ZXN0IHdpdGggb3V0cHV0CisJPiBaCisJPiBleHBlY3Rpbmcgc3VjY2VzczogZmFsc2UKKwk+IFoKKwk+IG5vdCBvayAzIC0gZmFpbGluZyB0ZXN0CisJPiAjCWZhbHNlCisJPiBaCisJPiAjIGZhaWxlZCAxIGFtb25nIDMgdGVzdChzKQorCT4gMS4uMworCUVPRgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0ZXN0IC0tdmVyYm9zZS1vbmx5JyAnCisJdGVzdF9tdXN0X2ZhaWwgcnVuX3N1Yl90ZXN0X2xpYl90ZXN0IFwKKwkJdGVzdC12ZXJib3NlLW9ubHktMiAidGVzdCB2ZXJib3NlLW9ubHk9MiIgXAorCQktLXZlcmJvc2Utb25seT0yIDw8LVxFT0YgJiYKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJwYXNzaW5nIHRlc3QiIHRydWUKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ0ZXN0IHdpdGggb3V0cHV0IiAiZWNobyBmb28iCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZmFpbGluZyB0ZXN0IiBmYWxzZQorCXRlc3RfZG9uZQorCUVPRgorCWNoZWNrX3N1Yl90ZXN0X2xpYl90ZXN0IHRlc3QtdmVyYm9zZS1vbmx5LTIgPDwtXEVPRgorCT4gb2sgMSAtIHBhc3NpbmcgdGVzdAorCT4gWgorCT4gZXhwZWN0aW5nIHN1Y2Nlc3M6IGVjaG8gZm9vCisJPiBmb28KKwk+IFoKKwk+IG9rIDIgLSB0ZXN0IHdpdGggb3V0cHV0CisJPiBaCisJPiBub3Qgb2sgMyAtIGZhaWxpbmcgdGVzdAorCT4gIwlmYWxzZQorCT4gIyBmYWlsZWQgMSBhbW9uZyAzIHRlc3QocykKKwk+IDEuLjMKKwlFT0YKKycKKwogdGVzdF9zZXRfcHJlcmVxIEhBVkVJVAogaGF2ZWl0PW5vCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIEhBVkVJVCAndGVzdCBydW5zIGlmIHByZXJlcXVpc2l0ZSBpcyBzYXRpc2ZpZWQnICcKQEAgLTM2NywyMiArNDI3LDYgQEAKIAogIyBWYXJpb3VzIHR5cGVzIG9mIG9iamVjdHMKIAotIyBTb21lIGZpbGVzeXN0ZW1zIGRvIG5vdCBzdXBwb3J0IHN5bWJsaWMgbGlua3M7IG9uIHN1Y2ggc3lzdGVtcwotIyBzb21lIGV4cGVjdGVkIHZhbHVlcyBhcmUgZGlmZmVyZW50Ci1pZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi10aGVuCi0JZXhwZWN0ZmlsdGVyPWNhdAotCWV4cGVjdGVkdHJlZT0wODc3MDRhOTZiYWYxYzJkMWM4NjlhOGIwODQ0ODFlMTIxYzg4YjViCi0JZXhwZWN0ZWRwdHJlZTE9MjFhZTgyNjljYWNiZTU3YWUwOTEzOGRjYzNhMjg4N2Y5MDRkMDJiMwotCWV4cGVjdGVkcHRyZWUyPTNjNWU1Mzk5ZjNhMzMzZWRkZWNjZTdhOWI5NDY1YjYzZjY1ZjUxZTIKLWVsc2UKLQlleHBlY3RmaWx0ZXI9J2dyZXAgLXYgc3ltJwotCWV4cGVjdGVkdHJlZT04ZTE4ZWRmN2Q3ZWRjZjQzNzFhM2FjNmFlNWYwN2MyNjQxZGI3YzQ2Ci0JZXhwZWN0ZWRwdHJlZTE9Y2ZiODU5MWIyZjY1ZGU4YjhjYzEwMjBjZDdkOWU2N2U3NzkzYjMyNQotCWV4cGVjdGVkcHRyZWUyPWNlNTgwNDQ4ZjAxNDhiOTg1YTUxM2I2OTNmZGY3ZDgwMmNhY2I0NGYKLWZpCi0KLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkaW5nIHZhcmlvdXMgdHlwZXMgb2Ygb2JqZWN0cyB3aXRoIGdpdCB1cGRhdGUtaW5kZXggLS1hZGQnICcKIAlta2RpciBwYXRoMiBwYXRoMyBwYXRoMy9zdWJwMyAmJgogCXBhdGhzPSJwYXRoMCBwYXRoMi9maWxlMiBwYXRoMy9maWxlMyBwYXRoMy9zdWJwMy9maWxlMyIgJiYKQEAgLTM5MCwxMCArNDM0LDcgQEAKIAkJZm9yIHAgaW4gJHBhdGhzCiAJCWRvCiAJCQllY2hvICJoZWxsbyAkcCIgPiRwIHx8IGV4aXQgMQotCQkJaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUwotCQkJdGhlbgotCQkJCWxuIC1zICJoZWxsbyAkcCIgJHtwfXN5bSB8fCBleGl0IDEKLQkJCWZpCisJCQl0ZXN0X2xuX3NfYWRkICJoZWxsbyAkcCIgJHtwfXN5bSB8fCBleGl0IDEKIAkJZG9uZQogCSkgJiYKIAlmaW5kIHBhdGgqICEgLXR5cGUgZCAtcHJpbnQgfCB4YXJncyBnaXQgdXBkYXRlLWluZGV4IC0tYWRkCkBAIC00MDUsNyArNDQ2LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCi0JJGV4cGVjdGZpbHRlciA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCTEwMDY0NCBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0IDAJcGF0aDAKIAkxMjAwMDAgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMSAwCXBhdGgwc3ltCiAJMTAwNjQ0IDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcgMAlwYXRoMi9maWxlMgpAQCAtNDIzLDE0ICs0NjQsMTQgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgb2JqZWN0IElEIGZvciBhIGtub3duIHRyZWUnICcKLQl0ZXN0ICIkdHJlZSIgPSAiJGV4cGVjdGVkdHJlZSIKKwl0ZXN0ICIkdHJlZSIgPSAwODc3MDRhOTZiYWYxYzJkMWM4NjlhOGIwODQ0ODFlMTIxYzg4YjViCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3dpbmcgdHJlZSB3aXRoIGdpdCBscy10cmVlJyAnCiAgICAgZ2l0IGxzLXRyZWUgJHRyZWUgPmN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IGxzLXRyZWUgb3V0cHV0IGZvciBhIGtub3duIHRyZWUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBscy10cmVlIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJMTAwNjQ0IGJsb2IgZjg3MjkwZjhlYjJjYmJlYTc4NTcyMTQ0NTlhMDczOTkyN2VhYjE1NAlwYXRoMAogCTEyMDAwMCBibG9iIDE1YTk4NDMzYWUzMzExNGIwODVmM2ViM2JiMDNiODMyYjMxODBhMDEJcGF0aDBzeW0KQEAgLTQ0Nyw3ICs0ODgsNyBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtdHJlZSAtciBvdXRwdXQgZm9yIGEga25vd24gdHJlZScgJwotCSRleHBlY3RmaWx0ZXIgPmV4cGVjdGVkIDw8LVxFT0YgJiYKKwljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAkxMDA2NDQgYmxvYiBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0CXBhdGgwCiAJMTIwMDAwIGJsb2IgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMQlwYXRoMHN5bQogCTEwMDY0NCBibG9iIDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcJcGF0aDIvZmlsZTIKQEAgLTQ2NSw3ICs1MDYsNyBAQAogCWdpdCBscy10cmVlIC1yIC10ICR0cmVlID5jdXJyZW50CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2dpdCBscy10cmVlIC1yIG91dHB1dCBmb3IgYSBrbm93biB0cmVlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtdHJlZSAtciBvdXRwdXQgZm9yIGEga25vd24gdHJlZScgJwogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCTEwMDY0NCBibG9iIGY4NzI5MGY4ZWIyY2JiZWE3ODU3MjE0NDU5YTA3Mzk5MjdlYWIxNTQJcGF0aDAKIAkxMjAwMDAgYmxvYiAxNWE5ODQzM2FlMzMxMTRiMDg1ZjNlYjNiYjAzYjgzMmIzMTgwYTAxCXBhdGgwc3ltCkBAIC00ODcsNyArNTI4LDcgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgb2JqZWN0IElEIGZvciBhIGtub3duIHRyZWUnICcKLQl0ZXN0ICIkcHRyZWUiID0gIiRleHBlY3RlZHB0cmVlMSIKKwl0ZXN0ICIkcHRyZWUiID0gMjFhZTgyNjljYWNiZTU3YWUwOTEzOGRjYzNhMjg4N2Y5MDRkMDJiMwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd3cml0aW5nIHBhcnRpYWwgdHJlZSBvdXQgd2l0aCBnaXQgd3JpdGUtdHJlZSAtLXByZWZpeCcgJwpAQCAtNDk1LDcgKzUzNiw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIG9iamVjdCBJRCBmb3IgYSBrbm93biB0cmVlJyAnCi0JdGVzdCAiJHB0cmVlIiA9ICIkZXhwZWN0ZWRwdHJlZTIiCisJdGVzdCAiJHB0cmVlIiA9IDNjNWU1Mzk5ZjNhMzMzZWRkZWNjZTdhOWI5NDY1YjYzZjY1ZjUxZTIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHV0IGludmFsaWQgb2JqZWN0cyBpbnRvIHRoZSBpbmRleCcgJwpAQCAtNTI5LDcgKzU3MCw3IEBACiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGdpdCBkaWZmLWZpbGVzIG91dHB1dCBmb3IgYSBrbm93IGNhY2hlL3dvcmsgdHJlZSBzdGF0ZScgJwotCSRleHBlY3RmaWx0ZXIgPmV4cGVjdGVkIDw8XEVPRiAmJgorCWNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiA6MTAwNjQ0IDEwMDY0NCBmODcyOTBmOGViMmNiYmVhNzg1NzIxNDQ1OWEwNzM5OTI3ZWFiMTU0IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTQlwYXRoMAogOjEyMDAwMCAxMjAwMDAgMTVhOTg0MzNhZTMzMTE0YjA4NWYzZWIzYmIwM2I4MzJiMzE4MGEwMSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE0JcGF0aDBzeW0KIDoxMDA2NDQgMTAwNjQ0IDNmZWZmOTQ5ZWQwMGE2MmQ5ZjdhZjk3YzE1Y2Q4YTMwNTk1ZTdhYzcgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNCXBhdGgyL2ZpbGUyCkBAIC01NTMsNyArNTk0LDcgQEAKICcKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotUD0kZXhwZWN0ZWR0cmVlCitQPTA4NzcwNGE5NmJhZjFjMmQxYzg2OWE4YjA4NDQ4MWUxMjFjODhiNWIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNvbW1pdC10cmVlIHJlY29yZHMgdGhlIGNvcnJlY3QgdHJlZSBpbiBhIGNvbW1pdCcgJwogCWNvbW1pdDA9JChlY2hvIE5PIHwgZ2l0IGNvbW1pdC10cmVlICRQKSAmJgpkaWZmIC0tZ2l0IGEvdC90MDAwNS1zaWduYWxzLnNoIGIvdC90MDAwNS1zaWduYWxzLnNoCmluZGV4IDkzZTU4YzAuLjk4MTQzN2IgMTAwNzU1Ci0tLSBhL3QvdDAwMDUtc2lnbmFscy5zaAorKysgYi90L3QwMDA1LXNpZ25hbHMuc2gKQEAgLTIwLDQgKzIwLDExIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICFNSU5HVyAnc2lnbmFscyBhcmUgcHJvcGFnYXRlZCB1c2luZyBzaGVsbCBjb252ZW50aW9uJyAnCisJIyB3ZSB1c2UgZXhlYyBoZXJlIHRvIGF2b2lkIGFueSBzdWItc2hlbGwgaW50ZXJwcmV0YXRpb24KKwkjIG9mIHRoZSBleGl0IGNvZGUKKwlnaXQgY29uZmlnIGFsaWFzLnNpZ3Rlcm0gIiFleGVjIHRlc3Qtc2lnY2hhaW4iICYmCisJdGVzdF9leHBlY3RfY29kZSAxNDMgZ2l0IHNpZ3Rlcm0KKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDA4LWlnbm9yZXMuc2ggYi90L3QwMDA4LWlnbm9yZXMuc2gKaW5kZXggOWMxYmRlMS4uYzI5MzQyZCAxMDA3NTUKLS0tIGEvdC90MDAwOC1pZ25vcmVzLnNoCisrKyBiL3QvdDAwMDgtaWdub3Jlcy5zaApAQCAtNjYsMTYgKzY2LDIzIEBACiAKIAlpbml0X3ZhcnMgJiYKIAlybSAtZiAiJEhPTUUvc3Rkb3V0IiAiJEhPTUUvc3RkZXJyIiAiJEhPTUUvY21kIiAmJgotCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJGFyZ3MgXAorCWVjaG8gZ2l0ICRnbG9iYWxfYXJncyBjaGVjay1pZ25vcmUgJHF1aWV0X29wdCAkdmVyYm9zZV9vcHQgJG5vbl9tYXRjaGluZ19vcHQgJGFyZ3MgXAogCQk+IiRIT01FL2NtZCIgJiYKKwllY2hvICIkZXhwZWN0X2NvZGUiID4iJEhPTUUvZXhwZWN0ZWQtZXhpdC1jb2RlIiAmJgogCXRlc3RfZXhwZWN0X2NvZGUgIiRleHBlY3RfY29kZSIgXAotCQlnaXQgJGdsb2JhbF9hcmdzIGNoZWNrLWlnbm9yZSAkcXVpZXRfb3B0ICR2ZXJib3NlX29wdCAkYXJncyBcCisJCWdpdCAkZ2xvYmFsX2FyZ3MgY2hlY2staWdub3JlICRxdWlldF9vcHQgJHZlcmJvc2Vfb3B0ICRub25fbWF0Y2hpbmdfb3B0ICRhcmdzIFwKIAkJPiIkSE9NRS9zdGRvdXQiIDI+IiRIT01FL3N0ZGVyciIgJiYKIAl0ZXN0X2NtcCAiJEhPTUUvZXhwZWN0ZWQtc3Rkb3V0IiAiJEhPTUUvc3Rkb3V0IiAmJgogCXN0ZGVycl9lbXB0eV9vbl9zdWNjZXNzICIkZXhwZWN0X2NvZGUiCiB9CiAKLSMgUnVucyB0aGUgc2FtZSBjb2RlIHdpdGggMyBkaWZmZXJlbnQgbGV2ZWxzIG9mIG91dHB1dCB2ZXJib3NpdHksCisjIFJ1bnMgdGhlIHNhbWUgY29kZSB3aXRoIDQgZGlmZmVyZW50IGxldmVscyBvZiBvdXRwdXQgdmVyYm9zaXR5OgorIworIyAgIDEuIHdpdGggLXEgLyAtLXF1aWV0CisjICAgMi4gd2l0aCBkZWZhdWx0IHZlcmJvc2l0eQorIyAgIDMuIHdpdGggLXYgLyAtLXZlcmJvc2UKKyMgICA0LiB3aXRoIC12IC8gLS12ZXJib3NlLCAqYW5kKiAtbiAvIC0tbm9uLW1hdGNoaW5nCisjCiAjIGV4cGVjdGluZyBzdWNjZXNzIGVhY2ggdGltZS4gIFRha2VzIGFkdmFudGFnZSBvZiB0aGUgZmFjdCB0aGF0CiAjIGNoZWNrLWlnbm9yZSAtLXZlcmJvc2Ugb3V0cHV0IGlzIHRoZSBzYW1lIGFzIG5vcm1hbCBvdXRwdXQgZXhjZXB0CiAjIGZvciB0aGUgZXh0cmEgZmlyc3QgY29sdW1uLgpAQCAtODMsNyArOTAsOSBAQAogIyBBcmd1bWVudHM6CiAjICAgLSAob3B0aW9uYWwpIHByZXJlcXMgZm9yIHRoaXMgdGVzdCwgZS5nLiAnU1lNTElOS1MnCiAjICAgLSB0ZXN0IG5hbWUKLSMgICAtIG91dHB1dCB0byBleHBlY3QgZnJvbSAtdiAvIC0tdmVyYm9zZSBtb2RlCisjICAgLSBvdXRwdXQgdG8gZXhwZWN0IGZyb20gdGhlIGZvdXJ0aCB2ZXJib3NpdHkgbW9kZSAodGhlIG91dHB1dAorIyAgICAgZnJvbSB0aGUgb3RoZXIgdmVyYm9zaXR5IG1vZGVzIGlzIGF1dG9tYXRpY2FsbHkgaW5mZXJyZWQKKyMgICAgIGZyb20gdGhpcyB2YWx1ZSkKICMgICAtIGNvZGUgdG8gcnVuIChzaG91bGQgaW52b2tlIHRlc3RfY2hlY2tfaWdub3JlKQogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAoKSB7CiAJcHJlcmVxPQpAQCAtOTIsOCArMTAxLDkgQEAKIAkJcHJlcmVxPSQxCiAJCXNoaWZ0CiAJZmkKLQl0ZXN0bmFtZT0iJDEiIGV4cGVjdF92ZXJib3NlPSIkMiIgY29kZT0iJDMiCisJdGVzdG5hbWU9IiQxIiBleHBlY3RfYWxsPSIkMiIgY29kZT0iJDMiCiAKKwlleHBlY3RfdmVyYm9zZT0kKCBlY2hvICIkZXhwZWN0X2FsbCIgfCBncmVwIC12ICdeOjoJJyApCiAJZXhwZWN0PSQoIGVjaG8gIiRleHBlY3RfdmVyYm9zZSIgfCBzZWQgLWUgJ3MvLioJLy8nICkKIAogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lIiAnCkBAIC0xMDEsMjMgKzExMSw0MCBAQAogCQlldmFsICIkY29kZSIKIAknCiAKLQlmb3IgcXVpZXRfb3B0IGluICctcScgJy0tcXVpZXQnCi0JZG8KLQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke3F1aWV0X29wdDorIHdpdGggJHF1aWV0X29wdH0iICIKKwkjIC0tcXVpZXQgaXMgb25seSB2YWxpZCB3aGVuIGEgc2luZ2xlIHBhdHRlcm4gaXMgcGFzc2VkCisJaWYgdGVzdCAkKCBlY2hvICIkZXhwZWN0X2FsbCIgfCB3YyAtbCApID0gMQorCXRoZW4KKwkJZm9yIHF1aWV0X29wdCBpbiAnLXEnICctLXF1aWV0JworCQlkbworCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke3F1aWV0X29wdDorIHdpdGggJHF1aWV0X29wdH0iICIKIAkJCWV4cGVjdCAnJyAmJgogCQkJJGNvZGUKIAkJIgotCWRvbmUKLQlxdWlldF9vcHQ9CisJCWRvbmUKKwkJcXVpZXRfb3B0PQorCWZpCiAKIAlmb3IgdmVyYm9zZV9vcHQgaW4gJy12JyAnLS12ZXJib3NlJwogCWRvCi0JCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJHByZXJlcSAiJHRlc3RuYW1lJHt2ZXJib3NlX29wdDorIHdpdGggJHZlcmJvc2Vfb3B0fSIgIgotCQkJZXhwZWN0ICckZXhwZWN0X3ZlcmJvc2UnICYmCi0JCQkkY29kZQotCQkiCisJCWZvciBub25fbWF0Y2hpbmdfb3B0IGluICcnICcgLW4nICcgLS1ub24tbWF0Y2hpbmcnCisJCWRvCisJCQlpZiB0ZXN0IC1uICIkbm9uX21hdGNoaW5nX29wdCIKKwkJCXRoZW4KKwkJCQlteV9leHBlY3Q9IiRleHBlY3RfYWxsIgorCQkJZWxzZQorCQkJCW15X2V4cGVjdD0iJGV4cGVjdF92ZXJib3NlIgorCQkJZmkKKworCQkJdGVzdF9jb2RlPSIKKwkJCQlleHBlY3QgJyRteV9leHBlY3QnICYmCisJCQkJJGNvZGUKKwkJCSIKKwkJCW9wdHM9IiR2ZXJib3NlX29wdCRub25fbWF0Y2hpbmdfb3B0IgorCQkJdGVzdF9leHBlY3Rfc3VjY2VzcyAkcHJlcmVxICIkdGVzdG5hbWUke29wdHM6KyB3aXRoICRvcHRzfSIgIiR0ZXN0X2NvZGUiCisJCWRvbmUKIAlkb25lCiAJdmVyYm9zZV9vcHQ9CisJbm9uX21hdGNoaW5nX29wdD0KIH0KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKQEAgLTE3OCw3ICsyMDUsNyBAQAogIwogIyB0ZXN0IGludmFsaWQgaW5wdXRzCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgJy4gY29ybmVyLWNhc2UnICcnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgJy4gY29ybmVyLWNhc2UnICc6OgkuJyAnCiAJdGVzdF9jaGVja19pZ25vcmUgLiAxCiAnCiAKQEAgLTE4OSwxMSArMjE2LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAnLS1zdGRpbiB3aXRoIGVtcHR5IFNURElOJyAnJyAnCiAJdGVzdF9jaGVja19pZ25vcmUgIi0tc3RkaW4iIDEgPC9kZXYvbnVsbCAmJgotCWlmIHRlc3QgLW4gIiRxdWlldF9vcHQiOyB0aGVuCi0JCXRlc3Rfc3RkZXJyICIiCi0JZWxzZQotCQl0ZXN0X3N0ZGVyciAibm8gcGF0aHNwZWMgZ2l2ZW4uIgotCWZpCisJdGVzdF9zdGRlcnIgIiIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLXEgd2l0aCBtdWx0aXBsZSBhcmdzJyAnCkBAIC0yNzYsMjcgKzI5OSwzOSBAQAogCQl3aGVyZT0iaW4gc3ViZGlyICRzdWJkaXIiCiAJZmkKIAotCXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBub3QgaWdub3JlZCIgJycgIgotCQl0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm9uLWV4aXN0ZW50JyAxCi0JIgorCXRlc3RfZXhwZWN0X3N1Y2Nlc3NfbXVsdGkgIm5vbi1leGlzdGVudCBmaWxlICR3aGVyZSBub3QgaWdub3JlZCIgXAorCQkiOjoJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50IiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm9uLWV4aXN0ZW50JyAxIgogCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAibm9uLWV4aXN0ZW50IGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKLQkJIi5naXRpZ25vcmU6MTpvbmUJJHtzdWJkaXJ9b25lIiAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1vbmUnCi0JIgorCQkiLmdpdGlnbm9yZToxOm9uZQkke3N1YmRpcn1vbmUiIFwKKwkJInRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1vbmUnIgogCi0JdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAiZXhpc3RpbmcgdW50cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiAnJyAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1ub3QtaWdub3JlZCcgMQotCSIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB1bnRyYWNrZWQgZmlsZSAkd2hlcmUgbm90IGlnbm9yZWQiIFwKKwkJIjo6CSR7c3ViZGlyfW5vdC1pZ25vcmVkIiBcCisJCSJ0ZXN0X2NoZWNrX2lnbm9yZSAnJHtzdWJkaXJ9bm90LWlnbm9yZWQnIDEiCiAKLQl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB0cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiAnJyAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleCcgMQotCSIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzX211bHRpICJleGlzdGluZyB0cmFja2VkIGZpbGUgJHdoZXJlIG5vdCBpZ25vcmVkIiBcCisJCSI6Ogkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleCIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJyR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4JyAxIgogCiAJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAiZXhpc3RpbmcgdW50cmFja2VkIGZpbGUgJHdoZXJlIGlnbm9yZWQiIFwKLQkJIi5naXRpZ25vcmU6MjppZ25vcmVkLSoJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkIiAiCi0JCXRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQnCi0JIgorCQkiLmdpdGlnbm9yZToyOmlnbm9yZWQtKgkke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQiIFwKKwkJInRlc3RfY2hlY2tfaWdub3JlICcke3N1YmRpcn1pZ25vcmVkLWFuZC11bnRyYWNrZWQnIgorCisJdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSAibWl4IG9mIGZpbGUgdHlwZXMgJHdoZXJlIiBcCisiOjoJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50CisuZ2l0aWdub3JlOjE6b25lCSR7c3ViZGlyfW9uZQorOjoJJHtzdWJkaXJ9bm90LWlnbm9yZWQKKzo6CSR7c3ViZGlyfWlnbm9yZWQtYnV0LWluLWluZGV4CisuZ2l0aWdub3JlOjI6aWdub3JlZC0qCSR7c3ViZGlyfWlnbm9yZWQtYW5kLXVudHJhY2tlZCIgXAorCQkidGVzdF9jaGVja19pZ25vcmUgJworCQkJJHtzdWJkaXJ9bm9uLWV4aXN0ZW50CisJCQkke3N1YmRpcn1vbmUKKwkJCSR7c3ViZGlyfW5vdC1pZ25vcmVkCisJCQkke3N1YmRpcn1pZ25vcmVkLWJ1dC1pbi1pbmRleAorCQkJJHtzdWJkaXJ9aWdub3JlZC1hbmQtdW50cmFja2VkJworCQkiCiBkb25lCiAKICMgSGF2aW5nIGVzdGFibGlzaGVkIHRoZSBhYm92ZSwgZnJvbSBub3cgb24gd2UgbW9zdGx5IHRlc3QgYWdhaW5zdApAQCAtMzkxLDcgKzQyNiw3IEBACiAjCiAjIHRlc3QgaGFuZGxpbmcgb2Ygc3ltbGlua3MKIAotdGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSBTWU1MSU5LUyAnc3ltbGluaycgJycgJwordGVzdF9leHBlY3Rfc3VjY2Vzc19tdWx0aSBTWU1MSU5LUyAnc3ltbGluaycgJzo6CWEvc3ltbGluaycgJwogCXRlc3RfY2hlY2tfaWdub3JlICJhL3N5bWxpbmsiIDEKICcKIApAQCAtNTc0LDM3ICs2MDksMzQgQEAKIAlnbG9iYWx0d28KIAliL2dsb2JhbHR3bwogCS4uL2IvZ2xvYmFsdHdvCisJYy9ub3QtaWdub3JlZAogRU9GCi1jYXQgPDwtXEVPRiA+ZXhwZWN0ZWQtZGVmYXVsdAotCS4uL29uZQotCW9uZQotCWIvb24KLQliL29uZQotCWIvb25lIG9uZQotCWIvb25lIHR3bwotCSJiL29uZVwidGhyZWUiCi0JYi90d28KLQliL3R3b29vCi0JLi4vZ2xvYmFsdHdvCi0JZ2xvYmFsdHdvCi0JYi9nbG9iYWx0d28KLQkuLi9iL2dsb2JhbHR3bwotRU9GCi1jYXQgPDwtRU9GID5leHBlY3RlZC12ZXJib3NlCisjIE4uQi4gd2UgZGVsaWJlcmF0ZWx5IGVuZCBTVERJTiB3aXRoIGEgbm9uLW1hdGNoaW5nIHBhdHRlcm4gaW4gb3JkZXIKKyMgdG8gdGVzdCB0aGF0IHRoZSBleGl0IGNvZGUgaW5kaWNhdGVzIHRoYXQgb25lIG9yIG1vcmUgb2YgdGhlCisjIHByb3ZpZGVkIHBhdGhzIGlzIGlnbm9yZWQgLSBpbiBvdGhlciB3b3JkcywgdGhhdCBpdCByZXByZXNlbnRzIGFuCisjIGFnZ3JlZ2F0aW9uIG9mIGFsbCB0aGUgcmVzdWx0cywgbm90IGp1c3QgdGhlIGZpbmFsIHJlc3VsdC4KKworY2F0IDw8LUVPRiA+ZXhwZWN0ZWQtYWxsCiAJLmdpdGlnbm9yZToxOm9uZQkuLi9vbmUKKwk6OgkuLi9ub3QtaWdub3JlZAogCS5naXRpZ25vcmU6MTpvbmUJb25lCisJOjoJbm90LWlnbm9yZWQKIAlhL2IvLmdpdGlnbm9yZTo4OiFvbioJYi9vbgogCWEvYi8uZ2l0aWdub3JlOjg6IW9uKgliL29uZQogCWEvYi8uZ2l0aWdub3JlOjg6IW9uKgliL29uZSBvbmUKIAlhL2IvLmdpdGlnbm9yZTo4OiFvbioJYi9vbmUgdHdvCiAJYS9iLy5naXRpZ25vcmU6ODohb24qCSJiL29uZVwidGhyZWUiCiAJYS9iLy5naXRpZ25vcmU6OTohdHdvCWIvdHdvCisJOjoJYi9ub3QtaWdub3JlZAogCWEvLmdpdGlnbm9yZToxOnR3byoJYi90d29vbwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCS4uL2dsb2JhbHR3bwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCWdsb2JhbHR3bwogCSRnbG9iYWxfZXhjbHVkZXM6MjohZ2xvYmFsdHdvCWIvZ2xvYmFsdHdvCiAJJGdsb2JhbF9leGNsdWRlczoyOiFnbG9iYWx0d28JLi4vYi9nbG9iYWx0d28KKwk6OgljL25vdC1pZ25vcmVkCiBFT0YKK2dyZXAgLXYgJ146OgknIGV4cGVjdGVkLWFsbCA+ZXhwZWN0ZWQtdmVyYm9zZQorc2VkIC1lICdzLy4qCS8vJyBleHBlY3RlZC12ZXJib3NlID5leHBlY3RlZC1kZWZhdWx0CiAKIHNlZCAtZSAncy9eIi8vJyAtZSAncy9cXC8vJyAtZSAncy8iJC8vJyBzdGRpbiB8IFwKIAl0ciAiXG4iICJcMCIgPnN0ZGluMApAQCAtNjI5LDYgKzY2MSwxNCBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1zdGRpbiBmcm9tIHN1YmRpcmVjdG9yeSB3aXRoIC12IC1uJyAnCisJZXhwZWN0X2Zyb21fc3RkaW4gPGV4cGVjdGVkLWFsbCAmJgorCSgKKwkJY2QgYSAmJgorCQl0ZXN0X2NoZWNrX2lnbm9yZSAiLS1zdGRpbiAtdiAtbiIgPC4uL3N0ZGluCisJKQorJworCiBmb3Igb3B0cyBpbiAnLS1zdGRpbiAteicgJy16IC0tc3RkaW4nCiBkbwogCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgIiRvcHRzIGZyb20gc3ViZGlyZWN0b3J5IiAnCkBAIC02NDgsNSArNjg4LDMxIEBACiAJJwogZG9uZQogCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFBJUEUgJ3N0cmVhbWluZyBzdXBwb3J0IGZvciAtLXN0ZGluJyAnCisJbWtmaWZvIGluIG91dCAmJgorCShnaXQgY2hlY2staWdub3JlIC1uIC12IC0tc3RkaW4gPGluID5vdXQgJikgJiYKKworCSMgV2UgY2Fubm90IGp1c3QgImVjaG8gPmluIiBiZWNhdXNlIGNoZWNrLWlnbm9yZSB3b3VsZCBnZXQgRU9GCisJIyBhZnRlciBlY2hvIGV4aXRlZDsgaW5zdGVhZCB3ZSBvcGVuIHRoZSBkZXNjcmlwdG9yIGluIG91cgorCSMgc2hlbGwsIGFuZCB0aGVuIGVjaG8gdG8gdGhlIGZkLiBXZSBtYWtlIHN1cmUgdG8gY2xvc2UgaXQgYXQKKwkjIHRoZSBlbmQsIHNvIHRoYXQgdGhlIHN1YnByb2Nlc3MgZG9lcyBnZXQgRU9GIGFuZCBkaWVzCisJIyBwcm9wZXJseS4KKwkjCisJIyBTaW1pbGFybHksIHdlIG11c3Qga2VlcCAib3V0IiBvcGVuIHNvIHRoYXQgY2hlY2staWdub3JlIGRvZXMKKwkjIG5vdCBldmVyIGdldCBTSUdQSVBFIHRyeWluZyB0byB3cml0ZSB0byB1cy4gTm90IG9ubHkgd291bGQgdGhhdAorCSMgcHJvZHVjZSBpbmNvcnJlY3QgcmVzdWx0cywgYnV0IHRoZW4gdGhlcmUgd291bGQgYmUgbm8gd3JpdGVyIG9uIHRoZQorCSMgb3RoZXIgZW5kIG9mIHRoZSBwaXBlLCBhbmQgd2Ugd291bGQgcG90ZW50aWFsbHkgYmxvY2sgZm9yZXZlciB0cnlpbmcKKwkjIHRvIG9wZW4gaXQuCisJZXhlYyA5PmluICYmCisJZXhlYyA4PG91dCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZXhlYyA5PiYtIiAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZXhlYyA4PCYtIiAmJgorCWVjaG8gPiY5IG9uZSAmJgorCXJlYWQgcmVzcG9uc2UgPCY4ICYmCisJZWNobyAiJHJlc3BvbnNlIiB8IGdyZXAgIl5cLmdpdGlnbm9yZToxOm9uZQlvbmUiICYmCisJZWNobyA+JjkgdHdvICYmCisJcmVhZCByZXNwb25zZSA8JjggJiYKKwllY2hvICIkcmVzcG9uc2UiIHwgZ3JlcCAiXjo6CXR3byIKKycKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDA5LXByaW8tcXVldWUuc2ggYi90L3QwMDA5LXByaW8tcXVldWUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQwNDVjMwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDAwMDktcHJpby1xdWV1ZS5zaApAQCAtMCwwICsxLDUwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nYmFzaWMgdGVzdHMgZm9yIHByaW9yaXR5IHF1ZXVlIGltcGxlbWVudGF0aW9uJworLiAuL3Rlc3QtbGliLnNoCisKK2NhdCA+ZXhwZWN0IDw8J0VPRicKKzEKKzIKKzMKKzQKKzUKKzUKKzYKKzcKKzgKKzkKKzEwCitFT0YKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Jhc2ljIG9yZGVyaW5nJyAnCisJdGVzdC1wcmlvLXF1ZXVlIDIgNiAzIDEwIDkgNSA3IDQgNSA4IDEgZHVtcCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCitjYXQgPmV4cGVjdCA8PCdFT0YnCisyCiszCis0CisxCis1Cis2CitFT0YKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21peGVkIHB1dCBhbmQgZ2V0JyAnCisJdGVzdC1wcmlvLXF1ZXVlIDYgMiA0IGdldCA1IDMgZ2V0IGdldCAxIGR1bXAgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKworY2F0ID5leHBlY3QgPDwnRU9GJworMQorMgorTlVMTAorMQorMgorTlVMTAorRU9GCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdub3RpY2UgZW1wdHkgcXVldWUnICcKKwl0ZXN0LXByaW8tcXVldWUgMSAyIGdldCBnZXQgZ2V0IDEgMiBnZXQgZ2V0IGdldCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAwMjAtY3JsZi5zaCBiL3QvdDAwMjAtY3JsZi5zaAppbmRleCAxYThmNDRjLi5lNTI2MTg0IDEwMDc1NQotLS0gYS90L3QwMDIwLWNybGYuc2gKKysrIGIvdC90MDAyMC1jcmxmLnNoCkBAIC04MSw2ICs4MSwxNCBAQAogCXRlc3QgJChnaXQgYWRkIGRvdWJsZXdhcm4gMj4mMSB8IGdyZXAgIkNSTEYgd2lsbCBiZSByZXBsYWNlZCBieSBMRiIgfCB3YyAtbCkgPSAxCiAnCiAKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2FmZWNybGY6IGdpdCBkaWZmIGRlbW90ZXMgc2FmZWNybGY9dHJ1ZSB0byB3YXJuJyAnCisJZ2l0IGNvbmZpZyBjb3JlLmF1dG9jcmxmIGlucHV0ICYmCisJZ2l0IGNvbmZpZyBjb3JlLnNhZmVjcmxmIHRydWUgJiYKKwlnaXQgZGlmZiBIRUFECisnCisKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3dpdGNoIG9mZiBhdXRvY3JsZiwgc2FmZWNybGYsIHJlc2V0IEhFQUQnICcKIAlnaXQgY29uZmlnIGNvcmUuYXV0b2NybGYgZmFsc2UgJiYKIAlnaXQgY29uZmlnIGNvcmUuc2FmZWNybGYgZmFsc2UgJiYKZGlmZiAtLWdpdCBhL3QvdDAwMjEtY29udmVyc2lvbi5zaCBiL3QvdDAwMjEtY29udmVyc2lvbi5zaAppbmRleCBlNTBmMGY3Li5iOTJlNmNiIDEwMDc1NQotLS0gYS90L3QwMDIxLWNvbnZlcnNpb24uc2gKKysrIGIvdC90MDAyMS1jb252ZXJzaW9uLnNoCkBAIC0xOTAsNCArMTkwLDE4IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFkZCB0ZXN0LmZjCiAnCiAKK3Rlc3QgLW4gIiRHSVRfVEVTVF9MT05HIiAmJiB0ZXN0X3NldF9wcmVyZXEgRVhQRU5TSVZFCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgRVhQRU5TSVZFICdmaWx0ZXIgbGFyZ2UgZmlsZScgJworCWdpdCBjb25maWcgZmlsdGVyLmxhcmdlZmlsZS5zbXVkZ2UgY2F0ICYmCisJZ2l0IGNvbmZpZyBmaWx0ZXIubGFyZ2VmaWxlLmNsZWFuIGNhdCAmJgorCWZvciBpIGluICQodGVzdF9zZXEgMSAyMDQ4KTsgZG8gcHJpbnRmICIlMTA0ODU3NmQiIDE7IGRvbmUgPjJHQiAmJgorCWVjaG8gIjJHQiBmaWx0ZXI9bGFyZ2VmaWxlIiA+LmdpdGF0dHJpYnV0ZXMgJiYKKwlnaXQgYWRkIDJHQiAyPmVyciAmJgorCSEgdGVzdCAtcyBlcnIgJiYKKwlybSAtZiAyR0IgJiYKKwlnaXQgY2hlY2tvdXQgLS0gMkdCIDI+ZXJyICYmCisJISB0ZXN0IC1zIGVycgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDAwNDAtcGFyc2Utb3B0aW9ucy5zaCBiL3QvdDAwNDAtcGFyc2Utb3B0aW9ucy5zaAppbmRleCAyNDRhNDNjLi42NTYwNmRmIDEwMDc1NQotLS0gYS90L3QwMDQwLXBhcnNlLW9wdGlvbnMuc2gKKysrIGIvdC90MDA0MC1wYXJzZS1vcHRpb25zLnNoCkBAIC01MCw3ICs1MCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgaGVscCcgJwogCXRlc3RfbXVzdF9mYWlsIHRlc3QtcGFyc2Utb3B0aW9ucyAtaCA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTc1LDcgKzc1LDcgQEAKIAlzaGlmdCAmJgogCXNlZCAicy9eJHdoYXQgLiovJHdoYXQgJGV4cGVjdC8iIDxleHBlY3QudGVtcGxhdGUgPmV4cGVjdCAmJgogCXRlc3QtcGFyc2Utb3B0aW9ucyAkKiA+b3V0cHV0IDI+b3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiB9CiAKQEAgLTg2LDcgKzg2LDcgQEAKIAlzaGlmdCAmJgogCXNlZCAicy9eJHdoYXQgLiovJHdoYXQgJGV4cGVjdC8iIDxleHBlY3QudGVtcGxhdGUgPmV4cGVjdCAmJgogCXRlc3QtcGFyc2Utb3B0aW9ucyAkKiA+b3V0cHV0IDI+b3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAogfQogCkBAIC05OSw3ICs5OSw3IEBACiAJZXNhYyAmJgogCWNhdCBleHBlY3QuZXJyID4+ZXhwZWN0ICYmCiAJdGVzdF9tdXN0X2ZhaWwgdGVzdC1wYXJzZS1vcHRpb25zICQqID5vdXRwdXQgMj5vdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0LmVycgogfQogCkBAIC0xMTIsNyArMTEyLDcgQEAKIAllc2FjICYmCiAJY2F0IGV4cGVjdC5lcnIgPj5leHBlY3QgJiYKIAl0ZXN0X211c3RfZmFpbCB0ZXN0LXBhcnNlLW9wdGlvbnMgJCogPm91dHB1dCAyPm91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0ICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0LmVycgogfQogCkBAIC0xNDksNyArMTQ5LDcgQEAKIAl0ZXN0LXBhcnNlLW9wdGlvbnMgLXMxMjMgLWIgLWkgMTcyOSAtYiAtdnYgLW4gLUYgbXkuZmlsZSBcCiAJPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVycgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyCiAnCiAKIGNhdCA+IGV4cGVjdCA8PCBFT0YKQEAgLTE2OCw3ICsxNjgsNyBAQAogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWJvb2xlYW4gLS1pbnRlZ2VyIDE3MjkgLS1ib29sZWFuIC0tc3RyaW5nMj0zMjEgXAogCQktLXZlcmJvc2UgLS12ZXJib3NlIC0tbm8tZHJ5LXJ1biAtLWFiYnJldj0xMCAtLWZpbGUgZmkubGVcCiAJCS0tb2Jzb2xldGUgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTE5OSw3ICsxOTksNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaW50ZXJtaW5nbGVkIGFyZ3VtZW50cycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyBhMSAtLXN0cmluZyAxMjMgYjEgLS1ib29sZWFuIC1qIDEzIC0tIC0tYm9vbGVhbiBcCiAJCT4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0yMTcsMTMgKzIxNywxMyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bmFtYmlndW91c2x5IGFiYnJldmlhdGVkIG9wdGlvbicgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWludCAyIC0tYm9vbGVhbiAtLW5vLWJvID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bmFtYmlndW91c2x5IGFiYnJldmlhdGVkIG9wdGlvbiB3aXRoICI9IicgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLWludD0yID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0yNDYsNyArMjQ2LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uIGFtYmlndW91cyBvcHRpb24gKGFmdGVyIHR3byBvcHRpb25zIGl0IGFiYnJldmlhdGVzKScgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLXN0IDEyMyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApAQCAtMjU2LDcgKzI1Niw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RldGVjdCBwb3NzaWJsZSB0eXBvcycgJwogCXRlc3RfbXVzdF9mYWlsIHRlc3QtcGFyc2Utb3B0aW9ucyAtYm9vbGVhbiA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCB0eXBvLmVyciBvdXRwdXQuZXJyCiAnCiAKQEAgLTI2Niw3ICsyNjYsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkZXRlY3QgcG9zc2libGUgdHlwb3MnICcKIAl0ZXN0X211c3RfZmFpbCB0ZXN0LXBhcnNlLW9wdGlvbnMgLWFtYmlndW91cyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQgJiYKIAl0ZXN0X2NtcCB0eXBvLmVyciBvdXRwdXQuZXJyCiAnCiAKQEAgLTI4NSw3ICsyODUsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdrZWVwIHNvbWUgb3B0aW9ucyBhcyBhcmd1bWVudHMnICcKIAl0ZXN0LXBhcnNlLW9wdGlvbnMgLS1xdXV4ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLSAgICAgICAgdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogICAgICAgICB0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTMwNSw3ICszMDUsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnT1BUX0RBVEUoKSBhbmQgT1BUX1NFVF9QVFIoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC10ICIxOTcwLTAxLTAxIDAwOjAwOjAxICswMDAwIiAtLWRlZmF1bHQtc3RyaW5nIFwKIAkJZm9vIC1xID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCkBAIC0zMjQsNyArMzI0LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnT1BUX0NBTExCQUNLKCkgYW5kIE9QVF9CSVQoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC0tbGVuZ3RoPWZvdXIgLWIgLTQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTM1MiwxMyArMzUyLDEzIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9CSVQoKSBhbmQgT1BUX1NFVF9JTlQoKSB3b3JrJyAnCiAJdGVzdC1wYXJzZS1vcHRpb25zIC0tc2V0MjMgLWJiYmJiIC0tbm8tb3I0ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdPUFRfTkVHQklUKCkgYW5kIE9QVF9TRVRfSU5UKCkgd29yaycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLXNldDIzIC1iYmJiYiAtLW5lZy1vcjQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTM3NiwxOSArMzc2LDE5IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9CSVQoKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtYmIgLS1vcjQgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9ORUdCSVQoKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtYmIgLS1uby1uZWctb3I0ID4gb3V0cHV0IDI+IG91dHB1dC5lcnIgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0LmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQuZXJyICYmCiAJdGVzdF9jbXAgZXhwZWN0IG91dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdPUFRfQ09VTlRVUCgpIHdpdGggUEFSU0VfT1BUX05PREFTSCB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyArICsgKyArICsgKyA+IG91dHB1dCAyPiBvdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApAQCAtNDA2LDcgKzQwNiw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ09QVF9OVU1CRVJfQ0FMTEJBQ0soKSB3b3JrcycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtMTIzNDUgPiBvdXRwdXQgMj4gb3V0cHV0LmVyciAmJgotCXRlc3QgISAtcyBvdXRwdXQuZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5lcnIgJiYKIAl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CiAnCiAKQEAgLTQyNCw3ICs0MjQsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICduZWdhdGlvbiBvZiBPUFRfTk9ORUcgZmxhZ3MgaXMgbm90IGFtYmlndW91cycgJwogCXRlc3QtcGFyc2Utb3B0aW9ucyAtLW5vLWFtYmlnID5vdXRwdXQgMj5vdXRwdXQuZXJyICYmCi0JdGVzdCAhIC1zIG91dHB1dC5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0LmVyciAmJgogCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKICcKIApkaWZmIC0tZ2l0IGEvdC90MDA2MC1wYXRoLXV0aWxzLnNoIGIvdC90MDA2MC1wYXRoLXV0aWxzLnNoCmluZGV4IDA5YTQyYTQuLjNhNDhkZTIgMTAwNzU1Ci0tLSBhL3QvdDAwNjAtcGF0aC11dGlscy5zaAorKysgYi90L3QwMDYwLXBhdGgtdXRpbHMuc2gKQEAgLTgsOCArOCwxNSBAQAogLiAuL3Rlc3QtbGliLnNoCiAKIG5vcm1fcGF0aCgpIHsKKwlleHBlY3RlZD0kKHRlc3QtcGF0aC11dGlscyBtaW5nd19wYXRoICIkMiIpCiAJdGVzdF9leHBlY3Rfc3VjY2VzcyAkMyAibm9ybWFsaXplIHBhdGg6ICQxID0+ICQyIiBcCi0JInRlc3QgXCJcJCh0ZXN0LXBhdGgtdXRpbHMgbm9ybWFsaXplX3BhdGhfY29weSAnJDEnKVwiID0gJyQyJyIKKwkidGVzdCBcIlwkKHRlc3QtcGF0aC11dGlscyBub3JtYWxpemVfcGF0aF9jb3B5ICckMScpXCIgPSAnJGV4cGVjdGVkJyIKK30KKworcmVsYXRpdmVfcGF0aCgpIHsKKwlleHBlY3RlZD0kKHRlc3QtcGF0aC11dGlscyBtaW5nd19wYXRoICIkMyIpCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAkNCAicmVsYXRpdmUgcGF0aDogJDEgJDIgPT4gJDMiIFwKKwkidGVzdCBcIlwkKHRlc3QtcGF0aC11dGlscyByZWxhdGl2ZV9wYXRoICckMScgJyQyJylcIiA9ICckZXhwZWN0ZWQnIgogfQogCiAjIE9uIFdpbmRvd3MsIHdlIGFyZSB1c2luZyBNU1lTJ3MgYmFzaCwgd2hpY2ggbWFuZ2xlcyB0aGUgcGF0aHMuCkBAIC0zNCw4ICs0MSw4IEBACiAJIHRlc3QgXCJcJGFjdHVhbFwiID0gJyRleHBlY3RlZCciCiB9CiAKLSMgQWJzb2x1dGUgcGF0aCB0ZXN0cyBtdXN0IGJlIHNraXBwZWQgb24gV2luZG93cyBiZWNhdXNlIGR1ZSB0byBwYXRoIG1hbmdsaW5nCi0jIHRoZSB0ZXN0IHByb2dyYW0gbmV2ZXIgc2VlcyBhIFBPU0lYLXN0eWxlIGFic29sdXRlIHBhdGgKKyMgU29tZSBhYnNvbHV0ZSBwYXRoIHRlc3RzIHNob3VsZCBiZSBza2lwcGVkIG9uIFdpbmRvd3MgZHVlIHRvIHBhdGggbWFuZ2xpbmcKKyMgb24gUE9TSVgtc3R5bGUgYWJzb2x1dGUgcGF0aHMKIGNhc2UgJCh1bmFtZSAtcykgaW4KICpNSU5HVyopCiAJOzsKQEAgLTY4LDMwICs3NSwzMCBAQAogbm9ybV9wYXRoIGQxLy4uLi9kMiBkMS8uLi4vZDIKIG5vcm1fcGF0aCBkMS8uLi4vLi8uLi9kMiBkMS9kMgogCi1ub3JtX3BhdGggLyAvIFBPU0lYCitub3JtX3BhdGggLyAvCiBub3JtX3BhdGggLy8gLyBQT1NJWAogbm9ybV9wYXRoIC8vLyAvIFBPU0lYCi1ub3JtX3BhdGggLy4gLyBQT1NJWAorbm9ybV9wYXRoIC8uIC8KIG5vcm1fcGF0aCAvLi8gLyBQT1NJWAogbm9ybV9wYXRoIC8uLy4uICsrZmFpbGVkKysgUE9TSVgKLW5vcm1fcGF0aCAvLi4vLiArK2ZhaWxlZCsrIFBPU0lYCitub3JtX3BhdGggLy4uLy4gKytmYWlsZWQrKwogbm9ybV9wYXRoIC8uLy4uLy4vLyArK2ZhaWxlZCsrIFBPU0lYCiBub3JtX3BhdGggL2Rpci8uLiAvIFBPU0lYCiBub3JtX3BhdGggL2Rpci9zdWIvLi4vLi4gLyBQT1NJWAogbm9ybV9wYXRoIC9kaXIvc3ViLy4uLy4uLy4uICsrZmFpbGVkKysgUE9TSVgKLW5vcm1fcGF0aCAvZGlyIC9kaXIgUE9TSVgKLW5vcm1fcGF0aCAvZGlyLy8gL2Rpci8gUE9TSVgKLW5vcm1fcGF0aCAvLi9kaXIgL2RpciBQT1NJWAotbm9ybV9wYXRoIC9kaXIvLiAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvLy8uLyAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvL3N1Yi8uLiAvZGlyLyBQT1NJWAotbm9ybV9wYXRoIC9kaXIvc3ViLy4uLyAvZGlyLyBQT1NJWAorbm9ybV9wYXRoIC9kaXIgL2Rpcgorbm9ybV9wYXRoIC9kaXIvLyAvZGlyLworbm9ybV9wYXRoIC8uL2RpciAvZGlyCitub3JtX3BhdGggL2Rpci8uIC9kaXIvCitub3JtX3BhdGggL2Rpci8vLy4vIC9kaXIvCitub3JtX3BhdGggL2Rpci8vc3ViLy4uIC9kaXIvCitub3JtX3BhdGggL2Rpci9zdWIvLi4vIC9kaXIvCiBub3JtX3BhdGggLy9kaXIvc3ViLy4uLy4gL2Rpci8gUE9TSVgKLW5vcm1fcGF0aCAvZGlyL3MxLy4uL3MyLyAvZGlyL3MyLyBQT1NJWAotbm9ybV9wYXRoIC9kMS9zMS8vL3MyLy4uLy8uLi9zMy8gL2QxL3MzLyBQT1NJWAotbm9ybV9wYXRoIC9kMS9zMS8vLi4vczIvLi4vLi4vZDIgL2QyIFBPU0lYCi1ub3JtX3BhdGggL2QxLy4uLi9kMiAvZDEvLi4uL2QyIFBPU0lYCi1ub3JtX3BhdGggL2QxLy4uLi8uLy4uL2QyIC9kMS9kMiBQT1NJWAorbm9ybV9wYXRoIC9kaXIvczEvLi4vczIvIC9kaXIvczIvCitub3JtX3BhdGggL2QxL3MxLy8vczIvLi4vLy4uL3MzLyAvZDEvczMvCitub3JtX3BhdGggL2QxL3MxLy8uLi9zMi8uLi8uLi9kMiAvZDIKK25vcm1fcGF0aCAvZDEvLi4uL2QyIC9kMS8uLi4vZDIKK25vcm1fcGF0aCAvZDEvLi4uLy4vLi4vZDIgL2QxL2QyCiAKIGFuY2VzdG9yIC8gLyAtMQogYW5jZXN0b3IgL2ZvbyAvIDAKQEAgLTE4Myw0ICsxOTAsMzMgQEAKIAl0ZXN0ICIkc3ltIiA9ICIkKHRlc3QtcGF0aC11dGlscyByZWFsX3BhdGggIiRkaXIyL3N5bWwiKSIKICcKIAorcmVsYXRpdmVfcGF0aCAvYS9iL2MvCS9hL2IvCQljLworcmVsYXRpdmVfcGF0aCAvYS9iL2MvCS9hL2IJCWMvCityZWxhdGl2ZV9wYXRoIC9hLy9iLy9jLwkvL2EvYi8vCQljLwlQT1NJWAorcmVsYXRpdmVfcGF0aCAvYS9iCS9hL2IJCS4vCityZWxhdGl2ZV9wYXRoIC9hL2IvCS9hL2IJCS4vCityZWxhdGl2ZV9wYXRoIC9hCS9hL2IJCS4uLworcmVsYXRpdmVfcGF0aCAvCQkvYS9iLwkJLi4vLi4vCityZWxhdGl2ZV9wYXRoIC9hL2MJL2EvYi8JCS4uL2MKK3JlbGF0aXZlX3BhdGggL2EvYwkvYS9iCQkuLi9jCityZWxhdGl2ZV9wYXRoIC94L3kJL2EvYi8JCS4uLy4uL3gveQorcmVsYXRpdmVfcGF0aCAvYS9iCSI8ZW1wdHk+IgkvYS9iCityZWxhdGl2ZV9wYXRoIC9hL2IgCSI8bnVsbD4iCS9hL2IKK3JlbGF0aXZlX3BhdGggYS9iL2MvCWEvYi8JCWMvCityZWxhdGl2ZV9wYXRoIGEvYi9jLwlhL2IJCWMvCityZWxhdGl2ZV9wYXRoIGEvYi8vYwlhLy9iCQljCityZWxhdGl2ZV9wYXRoIGEvYi8JYS9iLwkJLi8KK3JlbGF0aXZlX3BhdGggYS9iLwlhL2IJCS4vCityZWxhdGl2ZV9wYXRoIGEJCWEvYgkJLi4vCityZWxhdGl2ZV9wYXRoIHgveQlhL2IJCS4uLy4uL3gveQorcmVsYXRpdmVfcGF0aCBhL2MJYS9iCQkuLi9jCityZWxhdGl2ZV9wYXRoIGEvYgkiPGVtcHR5PiIJYS9iCityZWxhdGl2ZV9wYXRoIGEvYiAJIjxudWxsPiIJYS9iCityZWxhdGl2ZV9wYXRoICI8ZW1wdHk+IgkvYS9iCQkuLworcmVsYXRpdmVfcGF0aCAiPGVtcHR5PiIJIjxlbXB0eT4iCS4vCityZWxhdGl2ZV9wYXRoICI8ZW1wdHk+IgkiPG51bGw+IgkuLworcmVsYXRpdmVfcGF0aCAiPG51bGw+IgkiPGVtcHR5PiIJLi8KK3JlbGF0aXZlX3BhdGggIjxudWxsPiIJIjxudWxsPiIJLi8KK3JlbGF0aXZlX3BhdGggIjxudWxsPiIJL2EvYgkJLi8KKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QwMDcwLWZ1bmRhbWVudGFsLnNoIGIvdC90MDA3MC1mdW5kYW1lbnRhbC5zaAppbmRleCBkYTJjNTA0Li45ODZiMmE4IDEwMDc1NQotLS0gYS90L3QwMDcwLWZ1bmRhbWVudGFsLnNoCisrKyBiL3QvdDAwNzAtZnVuZGFtZW50YWwuc2gKQEAgLTE3LDcgKzE3LDcgQEAKIAlncmVwICJkb2Vzbm90ZXhpc3QvdGVzdCIgZXJyCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgUE9TSVhQRVJNICdta3RlbXAgdG8gdW53cml0YWJsZSBkaXJlY3RvcnkgcHJpbnRzIGZpbGVuYW1lJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFBPU0lYUEVSTSxTQU5JVFkgJ21rdGVtcCB0byB1bndyaXRhYmxlIGRpcmVjdG9yeSBwcmludHMgZmlsZW5hbWUnICcKIAlta2RpciBjYW5ub3R3cml0ZSAmJgogCWNobW9kIC13IGNhbm5vdHdyaXRlICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJjaG1vZCArdyBjYW5ub3R3cml0ZSIgJiYKZGlmZiAtLWdpdCBhL3QvdDAxMDAtcHJldmlvdXMuc2ggYi90L3QwMTAwLXByZXZpb3VzLnNoCmluZGV4IDMxNWI5YjMuLmUwYTY5NDAgMTAwNzU1Ci0tLSBhL3QvdDAxMDAtcHJldmlvdXMuc2gKKysrIGIvdC90MDEwMC1wcmV2aW91cy5zaApAQCAtMjcsNiArMjcsNyBAQAogCXRlc3RfY29tbWl0IEIgJiYKIAlnaXQgY2hlY2tvdXQgQSAmJgogCXRlc3RfY29tbWl0IEMgJiYKKwl0ZXN0X2NvbW1pdCBEICYmCiAJZ2l0IGJyYW5jaCAtZiBtYXN0ZXIgQiAmJgogCWdpdCBicmFuY2ggLWYgb3RoZXIgJiYKIAlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKQEAgLTM1LDE0ICszNiwyNCBAQAogCWdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCB8IGdyZXAgIk1lcmdlIGJyYW5jaCAnXCcnb3RoZXInXCcnIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xfSB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3dpdGNoZXMgeWV0JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xfX4xJyAnCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCByZXNldCAtLWhhcmQgQiAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgbWVyZ2UgQHstMX1+MSAmJgorCWdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCA+YWN0dWFsICYmCisJZ3JlcCAiTWVyZ2UgYnJhbmNoICdcJydvdGhlcidcJyciIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBAey0xMDB9IGJlZm9yZSBjaGVja2luZyBvdXQgdGhhdCBtYW55IGJyYW5jaGVzIHlldCcgJwogCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPW5vdyAmJgogCWdpdCBjaGVja291dCAtZiBtYXN0ZXIgJiYKIAlnaXQgcmVzZXQgLS1oYXJkIEIgJiYKIAlnaXQgYnJhbmNoIC1mIG90aGVyIEMgJiYKIAlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIEB7LTEyfQorCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBAey0xMDB9CiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTAwNC1yZWFkLXRyZWUtbS11LXdmLnNoIGIvdC90MTAwNC1yZWFkLXRyZWUtbS11LXdmLnNoCmluZGV4IGIzYWU3ZDUuLjNlNzJhZmYgMTAwNzU1Ci0tLSBhL3QvdDEwMDQtcmVhZC10cmVlLW0tdS13Zi5zaAorKysgYi90L3QxMDA0LXJlYWQtdHJlZS1tLXUtd2Yuc2gKQEAgLTE1OCw3ICsxNTgsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2Z1bm55IHN5bWxpbmsgaW4gd29yayB0cmVlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZScgJwogCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCAtYiBzeW0tYiBzaWRlLWIgJiYKQEAgLTE3MCwxNSArMTcwLDE0IEBACiAJcm0gLWZyIGEgJiYKIAlnaXQgY2hlY2tvdXQgLWIgc3ltLWEgc2lkZS1hICYmCiAJbWtkaXIgLXAgYSAmJgotCWxuIC1zIC4uL2IgYS9iICYmCi0JZ2l0IGFkZCBhL2IgJiYKKwl0ZXN0X2xuX3NfYWRkIC4uL2IgYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAid2UgYWRkIGEvYiIgJiYKIAogCXJlYWRfdHJlZV91X211c3Rfc3VjY2VlZCAtbSAtdSBzeW0tYSBzeW0tYSBzeW0tYgogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MsU0FOSVRZICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZSwgdW4tdW5saW5rLWFibGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU0FOSVRZICdmdW5ueSBzeW1saW5rIGluIHdvcmsgdHJlZSwgdW4tdW5saW5rLWFibGUnICcKIAogCXJtIC1mciBhIGIgJiYKIAlnaXQgcmVzZXQgLS1oYXJkICYmCmRpZmYgLS1naXQgYS90L3QxMDA2LWNhdC1maWxlLnNoIGIvdC90MTAwNi1jYXQtZmlsZS5zaAppbmRleCA5Y2M1YzZiLi40ZTkxMWZiIDEwMDc1NQotLS0gYS90L3QxMDA2LWNhdC1maWxlLnNoCisrKyBiL3QvdDEwMDYtY2F0LWZpbGUuc2gKQEAgLTM2LDY2ICszNiw0NyBAQAogICAgICcKIAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIlR5cGUgb2YgJHR5cGUgaXMgY29ycmVjdCIgJwotICAgICAgICB0ZXN0ICR0eXBlID0gIiQoZ2l0IGNhdC1maWxlIC10ICRzaGExKSIKKwllY2hvICR0eXBlID5leHBlY3QgJiYKKwlnaXQgY2F0LWZpbGUgLXQgJHNoYTEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICAgICAnCiAKICAgICB0ZXN0X2V4cGVjdF9zdWNjZXNzICJTaXplIG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLSAgICAgICAgdGVzdCAkc2l6ZSA9ICIkKGdpdCBjYXQtZmlsZSAtcyAkc2hhMSkiCisJZWNobyAkc2l6ZSA+ZXhwZWN0ICYmCisJZ2l0IGNhdC1maWxlIC1zICRzaGExID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogCiAgICAgdGVzdCAteiAiJGNvbnRlbnQiIHx8CiAgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiQ29udGVudCBvZiAkdHlwZSBpcyBjb3JyZWN0IiAnCi0JZXhwZWN0PSIkKG1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMpIgotCWFjdHVhbD0iJChtYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGdpdCBjYXQtZmlsZSAkdHlwZSAkc2hhMSkiICRub190cykiCi0KLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRjb250ZW50IiAkbm9fdHMgPmV4cGVjdCAmJgorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoZ2l0IGNhdC1maWxlICR0eXBlICRzaGExKSIgJG5vX3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogCiAgICAgdGVzdF9leHBlY3Rfc3VjY2VzcyAiUHJldHR5IGNvbnRlbnQgb2YgJHR5cGUgaXMgY29ycmVjdCIgJwotCWV4cGVjdD0iJChtYXliZV9yZW1vdmVfdGltZXN0YW1wICIkcHJldHR5X2NvbnRlbnQiICRub190cykiCi0JYWN0dWFsPSIkKG1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiQoZ2l0IGNhdC1maWxlIC1wICRzaGExKSIgJG5vX3RzKSIKLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCW1heWJlX3JlbW92ZV90aW1lc3RhbXAgIiRwcmV0dHlfY29udGVudCIgJG5vX3RzID5leHBlY3QgJiYKKwltYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGdpdCBjYXQtZmlsZSAtcCAkc2hhMSkiICRub190cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogICAgICcKIAogICAgIHRlc3QgLXogIiRjb250ZW50IiB8fAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIi0tYmF0Y2ggb3V0cHV0IG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLQlleHBlY3Q9IiQobWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJGJhdGNoX291dHB1dCIgJG5vX3RzKSIKLQlhY3R1YWw9IiQobWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJChlY2hvICRzaGExIHwgZ2l0IGNhdC1maWxlIC0tYmF0Y2gpIiAkbm9fdHMpIgotICAgICAgICBpZiB0ZXN0ICJ6JGV4cGVjdCIgPSAieiRhY3R1YWwiCi0JdGhlbgotCQk6IGhhcHB5Ci0JZWxzZQotCQllY2hvICJPb3BzOiBleHBlY3RlZCAkZXhwZWN0IgotCQllY2hvICJidXQgZ290ICRhY3R1YWwiCi0JCWZhbHNlCi0gICAgICAgIGZpCisJbWF5YmVfcmVtb3ZlX3RpbWVzdGFtcCAiJGJhdGNoX291dHB1dCIgJG5vX3RzID5leHBlY3QgJiYKKwltYXliZV9yZW1vdmVfdGltZXN0YW1wICIkKGVjaG8gJHNoYTEgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaCkiICRub190cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogICAgICcKIAogICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgIi0tYmF0Y2gtY2hlY2sgb3V0cHV0IG9mICR0eXBlIGlzIGNvcnJlY3QiICcKLQlleHBlY3Q9IiRzaGExICR0eXBlICRzaXplIgotCWFjdHVhbD0iJChlY2hvX3dpdGhvdXRfbmV3bGluZSAkc2hhMSB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrKSIKLSAgICAgICAgaWYgdGVzdCAieiRleHBlY3QiID0gInokYWN0dWFsIgotCXRoZW4KLQkJOiBoYXBweQotCWVsc2UKLQkJZWNobyAiT29wczogZXhwZWN0ZWQgJGV4cGVjdCIKLQkJZWNobyAiYnV0IGdvdCAkYWN0dWFsIgotCQlmYWxzZQotICAgICAgICBmaQorCWVjaG8gIiRzaGExICR0eXBlICRzaXplIiA+ZXhwZWN0ICYmCisJZWNob193aXRob3V0X25ld2xpbmUgJHNoYTEgfCBnaXQgY2F0LWZpbGUgLS1iYXRjaC1jaGVjayA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorICAgICcKKworICAgIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgImN1c3RvbSAtLWJhdGNoLWNoZWNrIGZvcm1hdCIgJworCWVjaG8gIiR0eXBlICRzaGExIiA+ZXhwZWN0ICYmCisJZWNobyAkc2hhMSB8IGdpdCBjYXQtZmlsZSAtLWJhdGNoLWNoZWNrPSIlKG9iamVjdHR5cGUpICUob2JqZWN0bmFtZSkiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAgICAgJwogfQogCmRpZmYgLS1naXQgYS90L3QxMzA3LWNvbmZpZy1ibG9iLnNoIGIvdC90MTMwNy1jb25maWctYmxvYi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZGMyNTdlCi0tLSAvZGV2L251bGwKKysrIGIvdC90MTMwNy1jb25maWctYmxvYi5zaApAQCAtMCwwICsxLDcwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nc3VwcG9ydCBmb3IgcmVhZGluZyBjb25maWcgZnJvbSBhIGJsb2InCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRlIGNvbmZpZyBibG9iJyAnCisJY2F0ID5jb25maWcgPDwtXEVPRiAmJgorCVtzb21lXQorCQl2YWx1ZSA9IDEKKwlFT0YKKwlnaXQgYWRkIGNvbmZpZyAmJgorCWdpdCBjb21taXQgLW0gZm9vCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xpc3QgY29uZmlnIGJsb2IgY29udGVudHMnICcKKwllY2hvIHNvbWUudmFsdWU9MSA+ZXhwZWN0ICYmCisJZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1saXN0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIHZhbHVlIGZyb20gYmxvYicgJworCWVjaG8gdHJ1ZSA+ZXhwZWN0ICYmCisJZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1ib29sIHNvbWUudmFsdWUgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVhZGluZyBub24tZXhpc3RpbmcgdmFsdWUgZnJvbSBibG9iIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgbm9uLmV4aXN0aW5nCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWRpbmcgZnJvbSBibG9iIGFuZCBmaWxlIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgLS1zeXN0ZW0gLS1saXN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYWRpbmcgZnJvbSBtaXNzaW5nIHJlZiBpcyBhbiBlcnJvcicgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgLS1ibG9iPUhFQUQ6ZG9lc25vdGV4aXN0IC0tbGlzdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWFkaW5nIGZyb20gbm9uLWJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEIC0tbGlzdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR0aW5nIGEgdmFsdWUgaW4gYSBibG9iIGlzIGFuIGVycm9yJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyAtLWJsb2I9SEVBRDpjb25maWcgc29tZS52YWx1ZSBmb28KKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRpbmcgYSB2YWx1ZSBpbiBhIGJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyAtLXVuc2V0IHNvbWUudmFsdWUKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZWRpdGluZyBhIGJsb2IgaXMgYW4gZXJyb3InICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyAtLWVkaXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncGFyc2UgZXJyb3JzIGluIGJsb2JzIGFyZSBwcm9wZXJseSBhdHRyaWJ1dGVkJyAnCisJY2F0ID5jb25maWcgPDwtXEVPRiAmJgorCVtzb21lXQorCQl2YWx1ZSA9ICIKKwlFT0YKKwlnaXQgYWRkIGNvbmZpZyAmJgorCWdpdCBjb21taXQgLW0gYnJva2VuICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIC0tYmxvYj1IRUFEOmNvbmZpZyBzb21lLnZhbHVlIDI+ZXJyICYmCisKKwkjIGp1c3QgZ3JlcCBmb3Igb3VyIHRva2VuIGFzIHRoZSBleGFjdCBlcnJvciBtZXNzYWdlIGlzIGxpa2VseSB0bworCSMgY2hhbmdlIG9yIGJlIGludGVybmF0aW9uYWxpemVkCisJZ3JlcCAiSEVBRDpjb25maWciIGVycgorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDE0MDMtc2hvdy1yZWYuc2ggYi90L3QxNDAzLXNob3ctcmVmLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlNTAwZWQKLS0tIC9kZXYvbnVsbAorKysgYi90L3QxNDAzLXNob3ctcmVmLnNoCkBAIC0wLDAgKzEsMTY3IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nc2hvdy1yZWYnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCisJdGVzdF9jb21taXQgQSAmJgorCWdpdCB0YWcgLWYgLWEgLW0gImFubm90YXRlZCBBIiBBICYmCisJZ2l0IGNoZWNrb3V0IC1iIHNpZGUgJiYKKwl0ZXN0X2NvbW1pdCBCICYmCisJZ2l0IHRhZyAtZiAtYSAtbSAiYW5ub3RhdGVkIEIiIEIgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9jb21taXQgQyAmJgorCWdpdCBicmFuY2ggQiBBXjAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYnICcKKwllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgcmVmcy90YWdzL0EgPmV4cGVjdCAmJgorCisJZ2l0IHNob3ctcmVmIEEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiB0YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiByZWZzL3RhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJPmV4cGVjdCAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIEQgPmFjdHVhbAorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYgLXEnICcKKwk+ZXhwZWN0ICYmCisKKwlnaXQgc2hvdy1yZWYgLXEgQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1xIHRhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1xIHJlZnMvdGFncy9BID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLXEgRCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93LXJlZiAtLXZlcmlmeScgJworCWVjaG8gJChnaXQgcmV2LXBhcnNlIHJlZnMvdGFncy9BKSByZWZzL3RhZ3MvQSA+ZXhwZWN0ICYmCisKKwlnaXQgc2hvdy1yZWYgLS12ZXJpZnkgcmVmcy90YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCT5leHBlY3QgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSBBID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLS12ZXJpZnkgdGFncy9BID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLS12ZXJpZnkgRCA+YWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93LXJlZiAtLXZlcmlmeSAtcScgJworCT5leHBlY3QgJiYKKworCWdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSByZWZzL3RhZ3MvQSA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHNob3ctcmVmIC0tdmVyaWZ5IC1xIEEgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSB0YWdzL0EgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCXRlc3RfbXVzdF9mYWlsIGdpdCBzaG93LXJlZiAtLXZlcmlmeSAtcSBEID5hY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3ctcmVmIC1kJyAnCisJeworCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgcmVmcy90YWdzL0EgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0FeMCkgInJlZnMvdGFncy9BXnt9IgorCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQykgcmVmcy90YWdzL0MKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLWQgQSBDID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwlnaXQgc2hvdy1yZWYgLWQgdGFncy9BIHRhZ3MvQyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZ2l0IHNob3ctcmVmIC1kIHJlZnMvdGFncy9BIHJlZnMvdGFncy9DID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL2hlYWRzL21hc3RlcikgcmVmcy9oZWFkcy9tYXN0ZXIgPmV4cGVjdCAmJgorCWdpdCBzaG93LXJlZiAtZCBtYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiAtZCBoZWFkcy9tYXN0ZXIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwgJiYKKworCWdpdCBzaG93LXJlZiAtZCByZWZzL2hlYWRzL21hc3RlciA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorCisJZ2l0IHNob3ctcmVmIC1kIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisKKwk+ZXhwZWN0ICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLWQgLS12ZXJpZnkgbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgc2hvdy1yZWYgLWQgLS12ZXJpZnkgaGVhZHMvbWFzdGVyID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hvdy1yZWYgLS1oZWFkcywgLS10YWdzLCAtLWhlYWQsIHBhdHRlcm4nICcKKwlmb3IgYnJhbmNoIGluIEIgbWFzdGVyIHNpZGUKKwlkbworCQllY2hvICQoZ2l0IHJldi1wYXJzZSByZWZzL2hlYWRzLyRicmFuY2gpIHJlZnMvaGVhZHMvJGJyYW5jaAorCWRvbmUgPmV4cGVjdC5oZWFkcyAmJgorCWdpdCBzaG93LXJlZiAtLWhlYWRzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QuaGVhZHMgYWN0dWFsICYmCisKKwlmb3IgdGFnIGluIEEgQiBDCisJZG8KKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzLyR0YWcpIHJlZnMvdGFncy8kdGFnCisJZG9uZSA+ZXhwZWN0LnRhZ3MgJiYKKwlnaXQgc2hvdy1yZWYgLS10YWdzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QudGFncyBhY3R1YWwgJiYKKworCWNhdCBleHBlY3QuaGVhZHMgZXhwZWN0LnRhZ3MgPmV4cGVjdCAmJgorCWdpdCBzaG93LXJlZiAtLWhlYWRzIC0tdGFncyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJeworCQllY2hvICQoZ2l0IHJldi1wYXJzZSBIRUFEKSBIRUFEICYmCisJCWNhdCBleHBlY3QuaGVhZHMgZXhwZWN0LnRhZ3MKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLS1oZWFkcyAtLXRhZ3MgLS1oZWFkID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl7CisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIEhFQUQpIEhFQUQgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy9oZWFkcy9CKSByZWZzL2hlYWRzL0IKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0IpIHJlZnMvdGFncy9CCisJfSA+ZXhwZWN0ICYmCisJZ2l0IHNob3ctcmVmIC0taGVhZCBCID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwl7CisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIEhFQUQpIEhFQUQgJiYKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy9oZWFkcy9CKSByZWZzL2hlYWRzL0IKKwkJZWNobyAkKGdpdCByZXYtcGFyc2UgcmVmcy90YWdzL0IpIHJlZnMvdGFncy9CCisJCWVjaG8gJChnaXQgcmV2LXBhcnNlIHJlZnMvdGFncy9CXjApICJyZWZzL3RhZ3MvQl57fSIKKwl9ID5leHBlY3QgJiYKKwlnaXQgc2hvdy1yZWYgLS1oZWFkIC1kIEIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QxNDExLXJlZmxvZy1zaG93LnNoIGIvdC90MTQxMS1yZWZsb2ctc2hvdy5zaAppbmRleCA5YTEwNWZlLi42ZjQ3YzBkIDEwMDc1NQotLS0gYS90L3QxNDExLXJlZmxvZy1zaG93LnNoCisrKyBiL3QvdDE0MTEtcmVmbG9nLXNob3cuc2gKQEAgLTE0NCw0ICsxNDQsMjYgQEAKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKKyMgVGhpcyBndWFyZHMgYWdhaW5zdCB0aGUgYWx0ZXJuYXRpdmUgb2Ygc2hvd2luZyB0aGUgZGlmZnMgdnMuIHRoZQorIyByZWZsb2cgYW5jZXN0b3IuICBUaGUgcmVmbG9nIHVzZWQgaXMgZGVzaWduZWQgdG8gbGlzdCB0aGUgY29tbWl0cworIyBtb3JlIHRoYW4gb25jZSwgc28gYXMgdG8gZXhlcmNpc2UgdGhlIGNvcnJlc3BvbmRpbmcgbG9naWMuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbG9nIC1nIC1wIHNob3dzIGRpZmZzIHZzLiBwYXJlbnRzJyAnCisJdGVzdF9jb21taXQgdHdvICYmCisJZ2l0IGJyYW5jaCBmbGlwZmxvcCAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvZmxpcGZsb3AgLW0gZmxpcDEgSEVBRF4gJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzL2ZsaXBmbG9wIC1tIGZsb3AxIEhFQUQgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzL2ZsaXBmbG9wIC1tIGZsaXAyIEhFQUReICYmCisJZ2l0IGxvZyAtZyAtcCBmbGlwZmxvcCA+cmVmbG9nICYmCisJZ3JlcCAtdiBeUmVmbG9nIHJlZmxvZyA+YWN0dWFsICYmCisJZ2l0IGxvZyAtMSAtcCBIRUFEXiA+bG9nLm9uZSAmJgorCWdpdCBsb2cgLTEgLXAgSEVBRCA+bG9nLnR3byAmJgorCSgKKwkJY2F0IGxvZy5vbmU7IGVjaG8KKwkJY2F0IGxvZy50d287IGVjaG8KKwkJY2F0IGxvZy5vbmU7IGVjaG8KKwkJY2F0IGxvZy50d28KKwkpID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUwNy1yZXYtcGFyc2UtdXBzdHJlYW0uc2ggYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAppbmRleCBiMjdhNzIwLi4yYTE5ZTc5IDEwMDc1NQotLS0gYS90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaAorKysgYi90L3QxNTA3LXJldi1wYXJzZS11cHN0cmVhbS5zaApAQCAtMTI5LDggKzEyOSw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JyYW5jaEB7dX0gZXJyb3IgbWVzc2FnZSB3aGVuIG5vIHVwc3RyZWFtJyAnCiAJY2F0ID5leHBlY3QgPDwtRU9GICYmCi0JZXJyb3I6IE5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAke3NxfW5vbi10cmFja2luZyR7c3F9Ci0JZmF0YWw6IE5lZWRlZCBhIHNpbmdsZSByZXZpc2lvbgorCWZhdGFsOiBObyB1cHN0cmVhbSBjb25maWd1cmVkIGZvciBicmFuY2ggJHtzcX1ub24tdHJhY2tpbmcke3NxfQogCUVPRgogCWVycm9yX21lc3NhZ2Ugbm9uLXRyYWNraW5nQHt1fSAyPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCkBAIC0xMzgsOCArMTM3LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnQHt1fSBlcnJvciBtZXNzYWdlIHdoZW4gbm8gdXBzdHJlYW0nICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogTm8gdXBzdHJlYW0gY29uZmlndXJlZCBmb3IgYnJhbmNoICR7c3F9bWFzdGVyJHtzcX0KLQlmYXRhbDogTmVlZGVkIGEgc2luZ2xlIHJldmlzaW9uCisJZmF0YWw6IE5vIHVwc3RyZWFtIGNvbmZpZ3VyZWQgZm9yIGJyYW5jaCAke3NxfW1hc3RlciR7c3F9CiAJRU9GCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBAe3V9IDI+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKQEAgLTE0Nyw4ICsxNDUsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdicmFuY2hAe3V9IGVycm9yIG1lc3NhZ2Ugd2l0aCBtaXNzcGVsdCBicmFuY2gnICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogTm8gc3VjaCBicmFuY2g6ICR7c3F9bm8tc3VjaC1icmFuY2gke3NxfQotCWZhdGFsOiBOZWVkZWQgYSBzaW5nbGUgcmV2aXNpb24KKwlmYXRhbDogTm8gc3VjaCBicmFuY2g6ICR7c3F9bm8tc3VjaC1icmFuY2gke3NxfQogCUVPRgogCWVycm9yX21lc3NhZ2Ugbm8tc3VjaC1icmFuY2hAe3V9IDI+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKQEAgLTE1Niw4ICsxNTMsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdAe3V9IGVycm9yIG1lc3NhZ2Ugd2hlbiBub3Qgb24gYSBicmFuY2gnICcKIAljYXQgPmV4cGVjdCA8PC1FT0YgJiYKLQllcnJvcjogSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaAotCWZhdGFsOiBOZWVkZWQgYSBzaW5nbGUgcmV2aXNpb24KKwlmYXRhbDogSEVBRCBkb2VzIG5vdCBwb2ludCB0byBhIGJyYW5jaAogCUVPRgogCWdpdCBjaGVja291dCBIRUFEXjAgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEB7dX0gMj5hY3R1YWwgJiYKQEAgLTE2Niw4ICsxNjIsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdicmFuY2hAe3V9IGVycm9yIG1lc3NhZ2UgaWYgdXBzdHJlYW0gYnJhbmNoIG5vdCBmZXRjaGVkJyAnCiAJY2F0ID5leHBlY3QgPDwtRU9GICYmCi0JZXJyb3I6IFVwc3RyZWFtIGJyYW5jaCAke3NxfXJlZnMvaGVhZHMvc2lkZSR7c3F9IG5vdCBzdG9yZWQgYXMgYSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoCi0JZmF0YWw6IE5lZWRlZCBhIHNpbmdsZSByZXZpc2lvbgorCWZhdGFsOiBVcHN0cmVhbSBicmFuY2ggJHtzcX1yZWZzL2hlYWRzL3NpZGUke3NxfSBub3Qgc3RvcmVkIGFzIGEgcmVtb3RlLXRyYWNraW5nIGJyYW5jaAogCUVPRgogCWVycm9yX21lc3NhZ2UgYmFkLXVwc3RyZWFtQHt1fSAyPmFjdHVhbCAmJgogCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCmRpZmYgLS1naXQgYS90L3QxNTA4LWF0LWNvbWJpbmF0aW9ucy5zaCBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCmluZGV4IGQ1ZDYyNDQuLmU1YWVhM2IgMTAwNzU1Ci0tLSBhL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCisrKyBiL3QvdDE1MDgtYXQtY29tYmluYXRpb25zLnNoCkBAIC00LDE3ICs0LDI0IEBACiAuIC4vdGVzdC1saWIuc2gKIAogY2hlY2soKSB7Ci10ZXN0X2V4cGVjdF8kezM6LXN1Y2Nlc3N9ICIkMSA9ICQyIiAiCi0JZWNobyAnJDInID5leHBlY3QgJiYKLQlnaXQgbG9nIC0xIC0tZm9ybWF0PSVzICckMScgPmFjdHVhbCAmJgotCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKLSIKKwl0ZXN0X2V4cGVjdF8kezQ6LXN1Y2Nlc3N9ICIkMSA9ICQzIiAiCisJCWVjaG8gJyQzJyA+ZXhwZWN0ICYmCisJCWlmIHRlc3QgJyQyJyA9ICdjb21taXQnCisJCXRoZW4KKwkJCWdpdCBsb2cgLTEgLS1mb3JtYXQ9JXMgJyQxJyA+YWN0dWFsCisJCWVsc2UKKwkJCWdpdCByZXYtcGFyc2UgLS1zeW1ib2xpYy1mdWxsLW5hbWUgJyQxJyA+YWN0dWFsCisJCWZpICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkiCiB9CisKIG5vbnNlbnNlKCkgewotdGVzdF9leHBlY3RfJHsyOi1zdWNjZXNzfSAiJDEgaXMgbm9uc2Vuc2ljYWwiICIKLQl0ZXN0X211c3RfZmFpbCBnaXQgbG9nIC0xICckMScKLSIKKwl0ZXN0X2V4cGVjdF8kezI6LXN1Y2Nlc3N9ICIkMSBpcyBub25zZW5zaWNhbCIgIgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICckMScKKwkiCiB9CisKIGZhaWwoKSB7CiAJIiRAIiBmYWlsdXJlCiB9CkBAIC0zMSwyMSArMzgsNDAgQEAKIAlnaXQgY2hlY2tvdXQgLWIgbmV3LWJyYW5jaCAmJgogCXRlc3RfY29tbWl0IG5ldy1vbmUgJiYKIAl0ZXN0X2NvbW1pdCBuZXctdHdvICYmCi0JZ2l0IGNvbmZpZyBicmFuY2gub2xkLWJyYW5jaC5yZW1vdGUgLiAmJgotCWdpdCBjb25maWcgYnJhbmNoLm9sZC1icmFuY2gubWVyZ2UgcmVmcy9oZWFkcy9tYXN0ZXIgJiYKLQlnaXQgY29uZmlnIGJyYW5jaC5uZXctYnJhbmNoLnJlbW90ZSAuICYmCi0JZ2l0IGNvbmZpZyBicmFuY2gubmV3LWJyYW5jaC5tZXJnZSByZWZzL2hlYWRzL3Vwc3RyZWFtLWJyYW5jaAorCWdpdCBicmFuY2ggLXUgbWFzdGVyIG9sZC1icmFuY2ggJiYKKwlnaXQgYnJhbmNoIC11IHVwc3RyZWFtLWJyYW5jaCBuZXctYnJhbmNoCiAnCiAKLWNoZWNrIEhFQUQgbmV3LXR3bwotY2hlY2sgIkB7MX0iIG5ldy1vbmUKLWNoZWNrICJAey0xfSIgb2xkLXR3bwotY2hlY2sgIkB7LTF9QHsxfSIgb2xkLW9uZQotY2hlY2sgIkB7dX0iIHVwc3RyZWFtLXR3bwotY2hlY2sgIkB7dX1AezF9IiB1cHN0cmVhbS1vbmUKLWNoZWNrICJAey0xfUB7dX0iIG1hc3Rlci10d28KLWNoZWNrICJAey0xfUB7dX1AezF9IiBtYXN0ZXItb25lCitjaGVjayBIRUFEIHJlZiByZWZzL2hlYWRzL25ldy1icmFuY2gKK2NoZWNrICJAezF9IiBjb21taXQgbmV3LW9uZQorY2hlY2sgIkhFQURAezF9IiBjb21taXQgbmV3LW9uZQorY2hlY2sgIkB7bm93fSIgY29tbWl0IG5ldy10d28KK2NoZWNrICJIRUFEQHtub3d9IiBjb21taXQgbmV3LXR3bworY2hlY2sgIkB7LTF9IiByZWYgcmVmcy9oZWFkcy9vbGQtYnJhbmNoCitjaGVjayAiQHstMX1AezB9IiBjb21taXQgb2xkLXR3bworY2hlY2sgIkB7LTF9QHsxfSIgY29tbWl0IG9sZC1vbmUKK2NoZWNrICJAe3V9IiByZWYgcmVmcy9oZWFkcy91cHN0cmVhbS1icmFuY2gKK2NoZWNrICJIRUFEQHt1fSIgcmVmIHJlZnMvaGVhZHMvdXBzdHJlYW0tYnJhbmNoCitjaGVjayAiQHt1fUB7MX0iIGNvbW1pdCB1cHN0cmVhbS1vbmUKK2NoZWNrICJAey0xfUB7dX0iIHJlZiByZWZzL2hlYWRzL21hc3RlcgorY2hlY2sgIkB7LTF9QHt1fUB7MX0iIGNvbW1pdCBtYXN0ZXItb25lCiBub25zZW5zZSAiQHt1fUB7LTF9Igorbm9uc2Vuc2UgIkB7MH1AezB9Igogbm9uc2Vuc2UgIkB7MX1Ae3V9Igorbm9uc2Vuc2UgIkhFQURAey0xfSIKK25vbnNlbnNlICJAey0xfUB7LTF9IgorCisjIEB7Tn0gdmVyc3VzIEhFQURAe059CisKK2NoZWNrICJIRUFEQHszfSIgY29tbWl0IG9sZC10d28KK25vbnNlbnNlICJAezN9IgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzd2l0Y2ggdG8gb2xkLWJyYW5jaCcgJworCWdpdCBjaGVja291dCBvbGQtYnJhbmNoCisnCisKK2NoZWNrIEhFQUQgcmVmIHJlZnMvaGVhZHMvb2xkLWJyYW5jaAorY2hlY2sgIkhFQURAezF9IiBjb21taXQgbmV3LXR3bworY2hlY2sgIkB7MX0iIGNvbW1pdCBvbGQtb25lCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MTUxMi1yZXYtcGFyc2UtZGlzYW1iaWd1YXRpb24uc2ggYi90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaAppbmRleCA2YjNkNzk3Li40YTE1NWM4IDEwMDc1NQotLS0gYS90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaAorKysgYi90L3QxNTEyLXJldi1wYXJzZS1kaXNhbWJpZ3VhdGlvbi5zaApAQCAtNzcsNiArNzcsNyBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXNhbWJpZ3VhdGUgdHJlZScgJwogCWNvbW1pdD0kKGVjaG8gImQ3eG0iIHwgZ2l0IGNvbW1pdC10cmVlIDAwMDAwMDAwMCkgJiYKKwkjIHRoaXMgY29tbWl0IGlzIGZmZmZmMmUgYW5kIG5vdCBhbWJpZ3VvdXMgd2l0aCB0aGUgMDAwMDAqIG9iamVjdHMKIAl0ZXN0ICQoZ2l0IHJldi1wYXJzZSAkY29tbWl0Xnt0cmVlfSkgPSAkKGdpdCByZXYtcGFyc2UgMDAwMDAwMDAwMGNkYykKICcKIApAQCAtOTksMTAgKzEwMCwxNCBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXNhbWJpZ3VhdGUgY29tbWl0JyAnCiAJY29tbWl0PSQoZWNobyAiaG9heGoiIHwgZ2l0IGNvbW1pdC10cmVlIDAwMDAwMDAwMDBjZGMgLXAgMDAwMDAwMDAwKSAmJgorCSMgdGhpcyBjb21taXQgaXMgZmZmZmZmZDggYW5kIG5vdCBhbWJpZ3VvdXMgd2l0aCB0aGUgMDAwMDAqIG9iamVjdHMKIAl0ZXN0ICQoZ2l0IHJldi1wYXJzZSAkY29tbWl0XikgPSAkKGdpdCByZXYtcGFyc2UgMDAwMDAwMDAwMGU0ZikKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbG9nIG5hbWUxLi5uYW1lMiB0YWtlcyBvbmx5IGNvbW1pdC1pc2hlcyBvbiBib3RoIGVuZHMnICcKKwkjIFRoZXNlIGFyZSB1bmRlcnNwZWNpZmllZCBmcm9tIHRoZSBwcmVmaXgtbGVuZ3RoIHBvaW50IG9mIHZpZXcKKwkjIHRvIGRpc2FtYmlndWF0ZSB0aGUgY29tbWl0IHdpdGggb3RoZXIgb2JqZWN0cywgYnV0IHRoZXJlIGlzIG9ubHkKKwkjIG9uZSBjb21taXQgdGhhdCBoYXMgMDAwMDAqIHByZWZpeCBhdCB0aGlzIHBvaW50LgogCWdpdCBsb2cgMDAwMDAwMDAwLi4wMDAwMDAwMDAgJiYKIAlnaXQgbG9nIC4uMDAwMDAwMDAwICYmCiAJZ2l0IGxvZyAwMDAwMDAwMDAuLiAmJgpAQCAtMTEyLDE2ICsxMTcsMTkgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LXBhcnNlIG5hbWUxLi5uYW1lMiB0YWtlcyBvbmx5IGNvbW1pdC1pc2hlcyBvbiBib3RoIGVuZHMnICcKKwkjIExpa2V3aXNlLgogCWdpdCByZXYtcGFyc2UgMDAwMDAwMDAwLi4wMDAwMDAwMDAgJiYKIAlnaXQgcmV2LXBhcnNlIC4uMDAwMDAwMDAwICYmCiAJZ2l0IHJldi1wYXJzZSAwMDAwMDAwMDAuLgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbG9nIHRha2VzIG9ubHkgY29tbWl0LWlzaCcgJworCSMgTGlrZXdpc2UuCiAJZ2l0IGxvZyAwMDAwMDAwMDAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHJlc2V0IHRha2VzIG9ubHkgY29tbWl0LWlzaCcgJworCSMgTGlrZXdpc2UuCiAJZ2l0IHJlc2V0IDAwMDAwMDAwMAogJwogCkBAIC0xMzEsMjYgKzEzOSwzMCBAQAogJwogCiB0ZXN0X2V4cGVjdF9mYWlsdXJlICd0d28gc2VtaS1hbWJpZ3VvdXMgY29tbWl0LWlzaCcgJworCSMgQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIHRhZyAwMDAwMDAwMDAwZjhmIHRoYXQgcG9pbnRzCisJIyBhdCBhIGNvbW1pdCAwMDAwMDAwMDAwZTRmLCBhbmQgYSB0cmVlIGFuZCBhIGJsb2IgdGhhdAorCSMgc2hhcmUgMDAwMDAwMDAwMCBwcmVmaXggd2l0aCB0aGVzZSB0YWcgYW5kIGNvbW1pdC4KKwkjCiAJIyBPbmNlIHRoZSBwYXJzZXIgYmVjb21lcyB1bHRyYS1zbWFydCwgaXQgY291bGQgbm90aWNlIHRoYXQKLQkjIDExMDI4MiBiZWZvcmUgXntjb21taXR9IG5hbWUgbWFueSBkaWZmZXJlbnQgb2JqZWN0cywgYnV0CisJIyAwMDAwMDAwMDAwIGJlZm9yZSBee2NvbW1pdH0gbmFtZSBtYW55IGRpZmZlcmVudCBvYmplY3RzLCBidXQKIAkjIHRoYXQgb25seSB0d28gKEhFQUQgYW5kIHYxLjAuMCB0YWcpIGNhbiBiZSBwZWVsZWQgdG8gY29tbWl0LAogCSMgYW5kIHRoYXQgcGVlbGluZyB0aGVtIGRvd24gdG8gY29tbWl0IHlpZWxkIHRoZSBzYW1lIGNvbW1pdAogCSMgd2l0aG91dCBhbWJpZ3VpdHkuCi0JZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAxMTAyODJee2NvbW1pdH0gJiYKKwlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IDAwMDAwMDAwMDBee2NvbW1pdH0gJiYKIAogCSMgbGlrZXdpc2UKLQlnaXQgbG9nIDAwMDAwMDAwMC4uMDAwMDAwMDAwICYmCi0JZ2l0IGxvZyAuLjAwMDAwMDAwMCAmJgotCWdpdCBsb2cgMDAwMDAwMDAwLi4gJiYKLQlnaXQgbG9nIDAwMDAwMDAwMC4uLjAwMDAwMDAwMCAmJgotCWdpdCBsb2cgLi4uMDAwMDAwMDAwICYmCi0JZ2l0IGxvZyAwMDAwMDAwMDAuLi4KKwlnaXQgbG9nIDAwMDAwMDAwMDAuLjAwMDAwMDAwMDAgJiYKKwlnaXQgbG9nIC4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgMDAwMDAwMDAwMC4uICYmCisJZ2l0IGxvZyAwMDAwMDAwMDAwLi4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgLi4uMDAwMDAwMDAwMCAmJgorCWdpdCBsb2cgMDAwMDAwMDAwMC4uLgogJwogCiB0ZXN0X2V4cGVjdF9mYWlsdXJlICd0aHJlZSBzZW1pLWFtYmlndW91cyB0cmVlLWlzaCcgJwogCSMgTGlrZXdpc2UgZm9yIHRyZWUtaXNoLiAgSEVBRCwgdjEuMC4wIGFuZCBIRUFEXnt0cmVlfSBzaGFyZQogCSMgdGhlIHByZWZpeCBidXQgcGVlbGluZyB0aGVtIHRvIHRyZWUgeWllbGRzIHRoZSBzYW1lIHRoaW5nCi0JZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAwMDAwMDAwMDBee3RyZWV9CisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAwMDAwMDAwMDAwXnt0cmVlfQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwYXJzZSBkZXNjcmliZSBuYW1lJyAnCkBAIC0yNDEsNyArMjUzLDcgQEAKIAkjIE5vdyB0aGVyZSBhcmUgbWFueSBjb21taXRzIHRoYXQgYmVnaW4gd2l0aCB0aGUKIAkjIGNvbW1vbiBwcmVmaXgsIG5vbmUgb2YgdGhlc2Ugc2hvdWxkIHBpY2sgb25lIGF0CiAJIyByYW5kb20uICBUaGV5IGFsbCBzaG91bGQgcmVzdWx0IGluIGFtYmlndWl0eSBlcnJvcnMuCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAxMTAyODJee2NvbW1pdH0gJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IDAwMDAwMDAwXntjb21taXR9ICYmCiAKIAkjIGxpa2V3aXNlCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGxvZyAwMDAwMDAwMDAuLjAwMDAwMDAwMCAmJgpAQCAtMjYxLDQgKzI3MywyMiBAQAogCXRlc3QgIiQoc2VkIC1lICJzL15cKC4uLi4uLi4uLlwpLiovXDEvIiBhY3R1YWwgfCBzb3J0IC11KSIgPSAwMDAwMDAwMDAKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnYW1iaWd1b3VzIDQwLWhleCByZWYnICcKKwlUUkVFPSQoZ2l0IG1rdHJlZSA8L2Rldi9udWxsKSAmJgorCVJFRj1gZ2l0IHJldi1wYXJzZSBIRUFEYCAmJgorCVZBTD0kKGdpdCBjb21taXQtdHJlZSAkVFJFRSA8L2Rldi9udWxsKSAmJgorCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvJFJFRiAkVkFMICYmCisJdGVzdCBgZ2l0IHJldi1wYXJzZSAkUkVGIDI+ZXJyYCA9ICRSRUYgJiYKKwlncmVwICJyZWZuYW1lLioke1JFRn0uKmFtYmlndW91cyIgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FtYmlndW91cyBzaG9ydCBzaGExIHJlZicgJworCVRSRUU9JChnaXQgbWt0cmVlIDwvZGV2L251bGwpICYmCisJUkVGPWBnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRGAgJiYKKwlWQUw9JChnaXQgY29tbWl0LXRyZWUgJFRSRUUgPC9kZXYvbnVsbCkgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL2hlYWRzLyRSRUYgJFZBTCAmJgorCXRlc3QgYGdpdCByZXYtcGFyc2UgJFJFRiAyPmVycmAgPSAkVkFMICYmCisJZ3JlcCAicmVmbmFtZS4qJHtSRUZ9LiphbWJpZ3VvdXMiIGVycgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDE1MTMtcmV2LXBhcnNlLXByZWZpeC5zaCBiL3QvdDE1MTMtcmV2LXBhcnNlLXByZWZpeC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44N2VjM2FlCi0tLSAvZGV2L251bGwKKysrIGIvdC90MTUxMy1yZXYtcGFyc2UtcHJlZml4LnNoCkBAIC0wLDAgKzEsOTYgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdUZXN0cyBmb3IgcmV2LXBhcnNlIC0tcHJlZml4JworCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwlta2RpciAtcCBzdWIxL3N1YjIgJiYKKwllY2hvIHRvcCA+dG9wICYmCisJZWNobyBmaWxlMSA+c3ViMS9maWxlMSAmJgorCWVjaG8gZmlsZTIgPnN1YjEvc3ViMi9maWxlMiAmJgorCWdpdCBhZGQgdG9wIHN1YjEvZmlsZTEgc3ViMS9zdWIyL2ZpbGUyICYmCisJZ2l0IGNvbW1pdCAtbSBjb21taXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZW1wdHkgcHJlZml4IC0tIGZpbGUnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4ICIiIC0tIHRvcCBzdWIxL2ZpbGUxID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwktLQorCXRvcAorCXN1YjEvZmlsZTEKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWQgcHJlZml4IC0tIGZpbGUnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIC0tIGZpbGUxIHN1YjIvZmlsZTIgPmFjdHVhbCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCS0tCisJc3ViMS9maWxlMQorCXN1YjEvc3ViMi9maWxlMgorCUVPRgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd2YWxpZCBwcmVmaXggLS0gLi4vZmlsZScgJworCWdpdCByZXYtcGFyc2UgLS1wcmVmaXggc3ViMS8gLS0gLi4vdG9wIHN1YjIvZmlsZTIgPmFjdHVhbCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCS0tCisJc3ViMS8uLi90b3AKKwlzdWIxL3N1YjIvZmlsZTIKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZW1wdHkgcHJlZml4IEhFQUQ6Li9wYXRoJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCAiIiBIRUFEOi4vdG9wID5hY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlIEhFQUQ6dG9wID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd2YWxpZCBwcmVmaXggSEVBRDouL3BhdGgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIEhFQUQ6Li9maWxlMSA+YWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSBIRUFEOnN1YjEvZmlsZTEgPmV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkIHByZWZpeCBIRUFEOi4uL3BhdGgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIEhFQUQ6Li4vdG9wID5hY3R1YWwgJiYKKwlnaXQgcmV2LXBhcnNlIEhFQUQ6dG9wID5leHBlY3RlZCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcmVmaXggaWdub3JlZCB3aXRoIEhFQUQ6dG9wJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCBzdWIxLyBIRUFEOnRvcCA+YWN0dWFsICYmCisJZ2l0IHJldi1wYXJzZSBIRUFEOnRvcCA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlzYW1iaWd1YXRlIHBhdGggd2l0aCB2YWxpZCBwcmVmaXgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIGZpbGUxID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwlzdWIxL2ZpbGUxCisJRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgYW5kIHJlZnMgd2l0aCBwcmVmaXgnICcKKwlnaXQgcmV2LXBhcnNlIC0tcHJlZml4IHN1YjEvIG1hc3RlciBmaWxlMSA+YWN0dWFsICYmCisJY2F0IDw8LUVPRiA+ZXhwZWN0ZWQgJiYKKwkkKGdpdCByZXYtcGFyc2UgbWFzdGVyKQorCXN1YjEvZmlsZTEKKwlFT0YKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndHdvLWxldmVscyBkZWVwJyAnCisJZ2l0IHJldi1wYXJzZSAtLXByZWZpeCBzdWIxL3N1YjIvIC0tIGZpbGUyID5hY3R1YWwgJiYKKwljYXQgPDwtXEVPRiA+ZXhwZWN0ZWQgJiYKKwktLQorCXN1YjEvc3ViMi9maWxlMgorCUVPRgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDIwMDEtY2hlY2tvdXQtY2FjaGUtY2xhc2guc2ggYi90L3QyMDAxLWNoZWNrb3V0LWNhY2hlLWNsYXNoLnNoCmluZGV4IDk4YWE3M2UuLjFmYzhlNjMgMTAwNzU1Ci0tLSBhL3QvdDIwMDEtY2hlY2tvdXQtY2FjaGUtY2xhc2guc2gKKysrIGIvdC90MjAwMS1jaGVja291dC1jYWNoZS1jbGFzaC5zaApAQCAtNTksMTAgKzU5LDkgQEAKICAgICAnZ2l0IHJlYWQtdHJlZSAtbSAkdHJlZTEgJiYgZ2l0IGNoZWNrb3V0LWluZGV4IC1mIC1hJwogdGVzdF9kZWJ1ZyAnc2hvd19maWxlcyAkdHJlZTEnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAotICAgICdnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGEgc3ltbGluay4nIFwKLSAgICAnbG4gLXMgcGF0aDAgcGF0aDEgJiYKLSAgICAgZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMScKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgXAorICAgICdhZGQgYSBzeW1saW5rJyBcCisgICAgJ3Rlc3RfbG5fc19hZGQgcGF0aDAgcGF0aDEnCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnd3JpdGluZyB0cmVlIG91dCB3aXRoIGdpdCB3cml0ZS10cmVlJyBcCiAgICAgJ3RyZWUzPSQoZ2l0IHdyaXRlLXRyZWUpJwpkaWZmIC0tZ2l0IGEvdC90MjAwNC1jaGVja291dC1jYWNoZS10ZW1wLnNoIGIvdC90MjAwNC1jaGVja291dC1jYWNoZS10ZW1wLnNoCmluZGV4IDBmNGIyODkuLmYxNzFhNTUgMTAwNzU1Ci0tLSBhL3QvdDIwMDQtY2hlY2tvdXQtY2FjaGUtdGVtcC5zaAorKysgYi90L3QyMDA0LWNoZWNrb3V0LWNhY2hlLXRlbXAuc2gKQEAgLTE5NCwxMSArMTk0LDEwIEBACiAgdGVzdCAkKGNhdCAuLi8kczEpID0gdHJlZTFhc3ViZGlyL3BhdGg1KQogKScKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBcCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICdjaGVja291dCAtLXRlbXAgc3ltbGluaycgJwogcm0gLWYgcGF0aCogLm1lcmdlXyogb3V0IC5naXQvaW5kZXggJiYKLWxuIC1zIGIgYSAmJgotZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBhICYmCit0ZXN0X2xuX3NfYWRkIGIgYSAmJgogdDQ9JChnaXQgd3JpdGUtdHJlZSkgJiYKIHJtIC1mIC5naXQvaW5kZXggJiYKIGdpdCByZWFkLXRyZWUgJHQ0ICYmCmRpZmYgLS1naXQgYS90L3QyMDA3LWNoZWNrb3V0LXN5bWxpbmsuc2ggYi90L3QyMDA3LWNoZWNrb3V0LXN5bWxpbmsuc2gKaW5kZXggZTZmNTlmMS4uZmM5YWFkNSAxMDA3NTUKLS0tIGEvdC90MjAwNy1jaGVja291dC1zeW1saW5rLnNoCisrKyBiL3QvdDIwMDctY2hlY2tvdXQtc3ltbGluay5zaApAQCAtNiw3ICs2LDcgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1Mgc2V0dXAgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAKIAlta2RpciBmcm90eiAmJgogCWVjaG8gaGVsbG8gPmZyb3R6L2ZpbGZyZSAmJgpAQCAtMjUsMjUgKzI1LDI1IEBACiAKIAlnaXQgcm0gLS1jYWNoZWQgZnJvdHovZmlsZnJlICYmCiAJbXYgZnJvdHogeHl6enkgJiYKLQlsbiAtcyB4eXp6eSBmcm90eiAmJgotCWdpdCBhZGQgeHl6enkvZmlsZnJlIGZyb3R6ICYmCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBmcm90eiAmJgorCWdpdCBhZGQgeHl6enkvZmlsZnJlICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSAic2lkZSBtb3ZlcyBmcm90ei8gdG8geHl6enkvIGFuZCBhZGRzIGZyb3R6LT54eXp6eS8iCiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3dpdGNoIGZyb20gc3ltbGluayB0byBkaXInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N3aXRjaCBmcm9tIHN5bWxpbmsgdG8gZGlyJyAnCiAKIAlnaXQgY2hlY2tvdXQgbWFzdGVyCiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnUmVtb3ZlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyAmIHN3aXRjaCB0byBtYXN0ZXInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1JlbW92ZSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgJiBzd2l0Y2ggdG8gbWFzdGVyJyAnCiAJcm0gLWZyIGZyb3R6IHh5enp5IG5pdGZvbCAmJgogCWdpdCBjaGVja291dCAtZiBtYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3dpdGNoIGZyb20gZGlyIHRvIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N3aXRjaCBmcm9tIGRpciB0byBzeW1saW5rJyAnCiAKIAlnaXQgY2hlY2tvdXQgc2lkZQogCmRpZmYgLS1naXQgYS90L3QyMDEyLWNoZWNrb3V0LWxhc3Quc2ggYi90L3QyMDEyLWNoZWNrb3V0LWxhc3Quc2gKaW5kZXggYjQ0ZGU5ZC4uZTdiYThjNSAxMDA3NTUKLS0tIGEvdC90MjAxMi1jaGVja291dC1sYXN0LnNoCisrKyBiL3QvdDIwMTItY2hlY2tvdXQtbGFzdC5zaApAQCAtMTE2LDQgKzExNiwzOCBAQAogCXRlc3QgInokKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkiID0gInokKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgbWFzdGVyXikiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJjaGVja291dCAtIiB3b3JrcyBhZnRlciBhIHJlYmFzZSBBJyAnCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCByZWJhc2UgbWFzdGVyICYmCisJZ2l0IGNoZWNrb3V0IC0gJiYKKwl0ZXN0ICJ6JChnaXQgc3ltYm9saWMtcmVmIEhFQUQpIiA9ICJ6cmVmcy9oZWFkcy9tYXN0ZXIiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJjaGVja291dCAtIiB3b3JrcyBhZnRlciBhIHJlYmFzZSBBIEInICcKKwlnaXQgYnJhbmNoIG1vb2RsZSBtYXN0ZXJ+MSAmJgorCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgY2hlY2tvdXQgb3RoZXIgJiYKKwlnaXQgcmViYXNlIG1hc3RlciBtb29kbGUgJiYKKwlnaXQgY2hlY2tvdXQgLSAmJgorCXRlc3QgInokKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkiID0gInpyZWZzL2hlYWRzL21hc3RlciIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnImNoZWNrb3V0IC0iIHdvcmtzIGFmdGVyIGEgcmViYXNlIC1pIEEnICcKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJZ2l0IGNoZWNrb3V0IG90aGVyICYmCisJZ2l0IHJlYmFzZSAtaSBtYXN0ZXIgJiYKKwlnaXQgY2hlY2tvdXQgLSAmJgorCXRlc3QgInokKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkiID0gInpyZWZzL2hlYWRzL21hc3RlciIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnImNoZWNrb3V0IC0iIHdvcmtzIGFmdGVyIGEgcmViYXNlIC1pIEEgQicgJworCWdpdCBicmFuY2ggZm9vZGxlIG1hc3Rlcn4xICYmCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCBjaGVja291dCBvdGhlciAmJgorCWdpdCByZWJhc2UgbWFzdGVyIGZvb2RsZSAmJgorCWdpdCBjaGVja291dCAtICYmCisJdGVzdCAieiQoZ2l0IHN5bWJvbGljLXJlZiBIRUFEKSIgPSAienJlZnMvaGVhZHMvbWFzdGVyIgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDIwMjEtY2hlY2tvdXQtb3ZlcndyaXRlLnNoIGIvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKaW5kZXggNWRhNjNlOS4uYzJhZGE3ZCAxMDA3NTUKLS0tIGEvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKKysrIGIvdC90MjAyMS1jaGVja291dC1vdmVyd3JpdGUuc2gKQEAgLTI5LDIxICsyOSwyNSBAQAogCXRlc3QgLWYgYS9iCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NyZWF0ZSBhIGNvbW1pdCB3aGVyZSBkaXIgYS9iIGNoYW5nZWQgdG8gc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRlIGEgY29tbWl0IHdoZXJlIGRpciBhL2IgY2hhbmdlZCB0byBzeW1saW5rJyAnCiAKIAlybSAtcmYgYS9iICYmCSMgY2xlYW51cCBpZiBwcmV2aW91cyB0ZXN0IGZhaWxlZAogCWdpdCBjaGVja291dCAtZiAtYiBzeW1saW5rIHN0YXJ0ICYmCiAJcm0gLXJmIGEvYiAmJgotCWxuIC1zIGZvbyBhL2IgJiYKIAlnaXQgYWRkIC1BICYmCisJdGVzdF9sbl9zX2FkZCBmb28gYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAiZGlyIHRvIHN5bWxpbmsiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrb3V0IGNvbW1pdCB3aXRoIGRpciBtdXN0IG5vdCByZW1vdmUgdW50cmFja2VkIGEvYicgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgY29tbWl0IHdpdGggZGlyIG11c3Qgbm90IHJlbW92ZSB1bnRyYWNrZWQgYS9iJyAnCiAKIAlnaXQgcm0gLS1jYWNoZWQgYS9iICYmCiAJZ2l0IGNvbW1pdCAtbSAidW4tdHJhY2sgdGhlIHN5bWxpbmsiICYmCi0JdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHN0YXJ0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHN0YXJ0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3RoZSBzeW1saW5rIHJlbWFpbmVkJyAnCisKIAl0ZXN0IC1oIGEvYgogJwogCmRpZmYgLS1naXQgYS90L3QyMDI0LWNoZWNrb3V0LWR3aW0uc2ggYi90L3QyMDI0LWNoZWNrb3V0LWR3aW0uc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGVlNTVlNAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDIwMjQtY2hlY2tvdXQtZHdpbS5zaApAQCAtMCwwICsxLDE2NyBAQAorIyEvYmluL3NoCisKK3Rlc3RfZGVzY3JpcHRpb249J2NoZWNrb3V0IDxicmFuY2g+CisKK0Vuc3VyZXMgdGhhdCBjaGVja291dCBvbiBhbiB1bmJvcm4gYnJhbmNoIGRvZXMgd2hhdCB0aGUgdXNlciBleHBlY3RzJworCisuIC4vdGVzdC1saWIuc2gKKworIyBJcyB0aGUgY3VycmVudCBicmFuY2ggInJlZnMvaGVhZHMvJDEiPwordGVzdF9icmFuY2ggKCkgeworCXByaW50ZiAiJXNcbiIgInJlZnMvaGVhZHMvJDEiID5leHBlY3QuSEVBRCAmJgorCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCA+YWN0dWFsLkhFQUQgJiYKKwl0ZXN0X2NtcCBleHBlY3QuSEVBRCBhY3R1YWwuSEVBRAorfQorCisjIElzIGJyYW5jaCAicmVmcy9oZWFkcy8kMSIgc2V0IHRvIHB1bGwgZnJvbSAiJDIvJDMiPwordGVzdF9icmFuY2hfdXBzdHJlYW0gKCkgeworCXByaW50ZiAiJXNcbiIgIiQyIiAicmVmcy9oZWFkcy8kMyIgPmV4cGVjdC51cHN0cmVhbSAmJgorCXsKKwkJZ2l0IGNvbmZpZyAiYnJhbmNoLiQxLnJlbW90ZSIgJiYKKwkJZ2l0IGNvbmZpZyAiYnJhbmNoLiQxLm1lcmdlIgorCX0gPmFjdHVhbC51cHN0cmVhbSAmJgorCXRlc3RfY21wIGV4cGVjdC51cHN0cmVhbSBhY3R1YWwudXBzdHJlYW0KK30KKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwl0ZXN0X2NvbW1pdCBteV9tYXN0ZXIgJiYKKwlnaXQgaW5pdCByZXBvX2EgJiYKKwkoCisJCWNkIHJlcG9fYSAmJgorCQl0ZXN0X2NvbW1pdCBhX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgZm9vICYmCisJCXRlc3RfY29tbWl0IGFfZm9vICYmCisJCWdpdCBjaGVja291dCAtYiBiYXIgJiYKKwkJdGVzdF9jb21taXQgYV9iYXIKKwkpICYmCisJZ2l0IGluaXQgcmVwb19iICYmCisJKAorCQljZCByZXBvX2IgJiYKKwkJdGVzdF9jb21taXQgYl9tYXN0ZXIgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIGZvbyAmJgorCQl0ZXN0X2NvbW1pdCBiX2ZvbyAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmF6ICYmCisJCXRlc3RfY29tbWl0IGJfYmF6CisJKSAmJgorCWdpdCByZW1vdGUgYWRkIHJlcG9fYSByZXBvX2EgJiYKKwlnaXQgcmVtb3RlIGFkZCByZXBvX2IgcmVwb19iICYmCisJZ2l0IGNvbmZpZyByZW1vdGUucmVwb19iLmZldGNoIFwKKwkJIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL290aGVyX2IvKiIgJiYKKwlnaXQgZmV0Y2ggLS1hbGwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2Ygbm9uLWV4aXN0aW5nIGJyYW5jaCBmYWlscycgJworCWdpdCBjaGVja291dCAtQiBtYXN0ZXIgJiYKKwl0ZXN0X21pZ2h0X2ZhaWwgZ2l0IGJyYW5jaCAtRCB4eXp6eSAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IHh5enp5ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3h5enp5ICYmCisJdGVzdF9icmFuY2ggbWFzdGVyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IG9mIGJyYW5jaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMgZmFpbHMgIzEnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgZm9vICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY2hlY2tvdXQgZm9vICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2ZvbyAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBhIHNpbmdsZSByZW1vdGUgc3VjY2VlZHMgIzEnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgYmFyICYmCisKKwlnaXQgY2hlY2tvdXQgYmFyICYmCisJdGVzdF9icmFuY2ggYmFyICYmCisJdGVzdF9jbXBfcmV2IHJlbW90ZXMvcmVwb19hL2JhciBIRUFEICYmCisJdGVzdF9icmFuY2hfdXBzdHJlYW0gYmFyIHJlcG9fYSBiYXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2YgYnJhbmNoIGZyb20gYSBzaW5nbGUgcmVtb3RlIHN1Y2NlZWRzICMyJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJheiAmJgorCisJZ2l0IGNoZWNrb3V0IGJheiAmJgorCXRlc3RfYnJhbmNoIGJheiAmJgorCXRlc3RfY21wX3JldiByZW1vdGVzL290aGVyX2IvYmF6IEhFQUQgJiYKKwl0ZXN0X2JyYW5jaF91cHN0cmVhbSBiYXogcmVwb19iIGJhegorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLW5vLWd1ZXNzIHN1cHByZXNzZXMgYnJhbmNoIGF1dG8tdml2aWZpY2F0aW9uJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJhciAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IC0tbm8tZ3Vlc3MgYmFyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2JhciAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBtb3JlIHJlbW90ZXMgd2l0aCB1bmNvbnZlbnRpb25hbCByZWZzcGVjcycgJworCWdpdCBjaGVja291dCAtQiBtYXN0ZXIgJiYKKwlnaXQgaW5pdCByZXBvX2MgJiYKKwkoCisJCWNkIHJlcG9fYyAmJgorCQl0ZXN0X2NvbW1pdCBjX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmFyICYmCisJCXRlc3RfY29tbWl0IGNfYmFyCisJCWdpdCBjaGVja291dCAtYiBzcGFtICYmCisJCXRlc3RfY29tbWl0IGNfc3BhbQorCSkgJiYKKwlnaXQgaW5pdCByZXBvX2QgJiYKKwkoCisJCWNkIHJlcG9fZCAmJgorCQl0ZXN0X2NvbW1pdCBkX21hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYmF6ICYmCisJCXRlc3RfY29tbWl0IGZfYmF6CisJCWdpdCBjaGVja291dCAtYiBlZ2dzICYmCisJCXRlc3RfY29tbWl0IGNfZWdncworCSkgJiYKKwlnaXQgcmVtb3RlIGFkZCByZXBvX2MgcmVwb19jICYmCisJZ2l0IGNvbmZpZyByZW1vdGUucmVwb19jLmZldGNoIFwKKwkJIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL2V4dHJhX2Rpci9yZXBvX2MvZXh0cmFfZGlyLyoiICYmCisJZ2l0IHJlbW90ZSBhZGQgcmVwb19kIHJlcG9fZCAmJgorCWdpdCBjb25maWcgcmVtb3RlLnJlcG9fZC5mZXRjaCBcCisJCSIrcmVmcy9oZWFkcy8qOnJlZnMvcmVwb19kLyoiICYmCisJZ2l0IGZldGNoIC0tYWxsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IG9mIGJyYW5jaCBmcm9tIG11bHRpcGxlIHJlbW90ZXMgZmFpbHMgIzInICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgYmFyICYmCisKKwl0ZXN0X211c3RfZmFpbCBnaXQgY2hlY2tvdXQgYmFyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL2JhciAmJgorCXRlc3RfYnJhbmNoIG1hc3RlcgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBtdWx0aXBsZSByZW1vdGVzIGZhaWxzICMzJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIGJheiAmJgorCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrb3V0IGJheiAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9iYXogJiYKKwl0ZXN0X2JyYW5jaCBtYXN0ZXIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2tvdXQgb2YgYnJhbmNoIGZyb20gYSBzaW5nbGUgcmVtb3RlIHN1Y2NlZWRzICMzJyAnCisJZ2l0IGNoZWNrb3V0IC1CIG1hc3RlciAmJgorCXRlc3RfbWlnaHRfZmFpbCBnaXQgYnJhbmNoIC1EIHNwYW0gJiYKKworCWdpdCBjaGVja291dCBzcGFtICYmCisJdGVzdF9icmFuY2ggc3BhbSAmJgorCXRlc3RfY21wX3JldiByZWZzL3JlbW90ZXMvZXh0cmFfZGlyL3JlcG9fYy9leHRyYV9kaXIvc3BhbSBIRUFEICYmCisJdGVzdF9icmFuY2hfdXBzdHJlYW0gc3BhbSByZXBvX2Mgc3BhbQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBvZiBicmFuY2ggZnJvbSBhIHNpbmdsZSByZW1vdGUgc3VjY2VlZHMgIzQnICcKKwlnaXQgY2hlY2tvdXQgLUIgbWFzdGVyICYmCisJdGVzdF9taWdodF9mYWlsIGdpdCBicmFuY2ggLUQgZWdncyAmJgorCisJZ2l0IGNoZWNrb3V0IGVnZ3MgJiYKKwl0ZXN0X2JyYW5jaCBlZ2dzICYmCisJdGVzdF9jbXBfcmV2IHJlZnMvcmVwb19kL2VnZ3MgSEVBRCAmJgorCXRlc3RfYnJhbmNoX3Vwc3RyZWFtIGVnZ3MgcmVwb19kIGVnZ3MKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QyMjAwLWFkZC11cGRhdGUuc2ggYi90L3QyMjAwLWFkZC11cGRhdGUuc2gKaW5kZXggYjJiZDQxOS4uOWJmMmJkZiAxMDA3NTUKLS0tIGEvdC90MjIwMC1hZGQtdXBkYXRlLnNoCisrKyBiL3QvdDIyMDAtYWRkLXVwZGF0ZS5zaApAQCAtOTYsMTEgKzk2LDEwIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdyZXBsYWNlIGEgZmlsZSB3aXRoIGEgc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVwbGFjZSBhIGZpbGUgd2l0aCBhIHN5bWxpbmsnICcKIAogCXJtIGZvbyAmJgotCWxuIC1zIHRvcCBmb28gJiYKLQlnaXQgYWRkIC11IC0tIGZvbworCXRlc3RfbG5fc19hZGQgdG9wIGZvbwogCiAnCiAKZGlmZiAtLWdpdCBhL3QvdDIyMDItYWRkLWFkZHJlbW92ZS5zaCBiL3QvdDIyMDItYWRkLWFkZHJlbW92ZS5zaAppbmRleCA2YTgxNTEwLi5mYzhiNTllIDEwMDc1NQotLS0gYS90L3QyMjAyLWFkZC1hZGRyZW1vdmUuc2gKKysrIGIvdC90MjIwMi1hZGQtYWRkcmVtb3ZlLnNoCkBAIC00MSw0ICs0MSwxNCBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnSnVzdCAiZ2l0IGFkZCIgaXMgYSBuby1vcCcgJworCWdpdCByZXNldCAtLWhhcmQgJiYKKwllY2hvID53aWxsLXJlbW92ZSAmJgorCT53aWxsLW5vdC1iZS1hZGRlZCAmJgorCWdpdCBhZGQgJiYKKwlnaXQgZGlmZi1pbmRleCAtLW5hbWUtc3RhdHVzIC0tY2FjaGVkIEhFQUQgPmFjdHVhbCAmJgorCT5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzAwMS1scy1maWxlcy1vdGhlcnMtZXhjbHVkZS5zaCBiL3QvdDMwMDEtbHMtZmlsZXMtb3RoZXJzLWV4Y2x1ZGUuc2gKaW5kZXggNGUzNzM1Zi4uZjA0MjFjMCAxMDA3NTUKLS0tIGEvdC90MzAwMS1scy1maWxlcy1vdGhlcnMtZXhjbHVkZS5zaAorKysgYi90L3QzMDAxLWxzLWZpbGVzLW90aGVycy1leGNsdWRlLnNoCkBAIC0xNzUsNiArMTc1LDI0IEBACiAJZ3JlcCAiXmEuMSIgb3V0cHV0CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2V4Y2x1ZGVkIGRpcmVjdG9yeSBvdmVycmlkZXMgY29udGVudCBwYXR0ZXJucycgJworCisJZ2l0IGxzLWZpbGVzIC0tb3RoZXJzIC0tZXhjbHVkZT0ib25lIiAtLWV4Y2x1ZGU9IiFvbmUvYS4xIiA+b3V0cHV0ICYmCisJaWYgZ3JlcCAiXm9uZS9hLjEiIG91dHB1dAorCXRoZW4KKwkJZmFsc2UKKwlmaQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICduZWdhdGVkIGRpcmVjdG9yeSBkb2VzbidcJyd0IGFmZmVjdCBjb250ZW50IHBhdHRlcm5zJyAnCisKKwlnaXQgbHMtZmlsZXMgLS1vdGhlcnMgLS1leGNsdWRlPSIhb25lIiAtLWV4Y2x1ZGU9Im9uZS9hLjEiID5vdXRwdXQgJiYKKwlpZiBncmVwICJeb25lL2EuMSIgb3V0cHV0CisJdGhlbgorCQlmYWxzZQorCWZpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1YmRpcmVjdG9yeSBpZ25vcmUgKHNldHVwKScgJwogCW1rZGlyIC1wIHRvcC9sMS9sMiAmJgogCSgKZGlmZiAtLWdpdCBhL3QvdDMwMTAtbHMtZmlsZXMta2lsbGVkLW1vZGlmaWVkLnNoIGIvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKaW5kZXggOTU2NzFjMi4uZjYxMWQ3OSAxMDA3NTUKLS0tIGEvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKKysrIGIvdC90MzAxMC1scy1maWxlcy1raWxsZWQtbW9kaWZpZWQuc2gKQEAgLTExLDYgKzExLDggQEAKICAgICBwYXRoMSAgICAgICAtIGEgc3ltbGluawogICAgIHBhdGgyL2ZpbGUyIC0gYSBmaWxlIGluIGEgZGlyZWN0b3J5CiAgICAgcGF0aDMvZmlsZTMgLSBhIGZpbGUgaW4gYSBkaXJlY3RvcnkKKyAgICBzdWJtb2QxLwktIGEgc3VibW9kdWxlCisgICAgc3VibW9kMi8JLSBhbm90aGVyIHN1Ym1vZHVsZQogCiBhbmQgdGhlIGZvbGxvd2luZyBvbiB0aGUgZmlsZXN5c3RlbToKIApAQCAtMjEsOSArMjMsMTEgQEAKICAgICBwYXRoNAktIGEgZmlsZQogICAgIHBhdGg1CS0gYSBzeW1saW5rCiAgICAgcGF0aDYvZmlsZTYgLSBhIGZpbGUgaW4gYSBkaXJlY3RvcnkKKyAgICBzdWJtb2QxLwktIGEgc3VibW9kdWxlIChtb2RpZmllZCBmcm9tIHRoZSBjYWNoZSkKKyAgICBzdWJtb2QyLwktIGEgc3VibW9kdWxlIChtYXRjaGVzIHRoZSBjYWNoZSkKIAotZ2l0IGxzLWZpbGVzIC1rIHNob3VsZCByZXBvcnQgdGhhdCBleGlzdGluZyBmaWxlc3lzdGVtCi1vYmplY3RzIGV4Y2VwdCBwYXRoNCwgcGF0aDUgYW5kIHBhdGg2L2ZpbGU2IHRvIGJlIGtpbGxlZC4KK2dpdCBscy1maWxlcyAtayBzaG91bGQgcmVwb3J0IHRoYXQgZXhpc3RpbmcgZmlsZXN5c3RlbSBvYmplY3RzCitwYXRoMC8qLCBwYXRoMS8qLCBwYXRoMiBhbmQgcGF0aDMgdG8gYmUga2lsbGVkLgogCiBBbHNvIGZvciBtb2RpZmljYXRpb24gdGVzdCwgdGhlIGNhY2hlIGFuZCB3b3JraW5nIHRyZWUgaGF2ZToKIApAQCAtMzMsNzUgKzM3LDgyIEBACiAgICAgcGF0aDEwCS0gYSBub24tZW1wdHkgZmlsZSwgY2FjaGUgZGlydGllZC4KIAogV2Ugc2hvdWxkIHJlcG9ydCBwYXRoMCwgcGF0aDEsIHBhdGgyL2ZpbGUyLCBwYXRoMy9maWxlMywgcGF0aDcgYW5kIHBhdGg4Ci1tb2RpZmllZCB3aXRob3V0IHJlcG9ydGluZyBwYXRoOSBhbmQgcGF0aDEwLgorbW9kaWZpZWQgd2l0aG91dCByZXBvcnRpbmcgcGF0aDkgYW5kIHBhdGgxMC4gIHN1Ym1vZDEgaXMgYWxzbyBtb2RpZmllZC4KICcKIC4gLi90ZXN0LWxpYi5zaAogCi1kYXRlID5wYXRoMAotaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUwotdGhlbgotCWxuIC1zIHh5enp5IHBhdGgxCi1lbHNlCi0JZGF0ZSA+IHBhdGgxCi1maQotbWtkaXIgcGF0aDIgcGF0aDMKLWRhdGUgPnBhdGgyL2ZpbGUyCi1kYXRlID5wYXRoMy9maWxlMwotOiA+cGF0aDcKLWRhdGUgPnBhdGg4Ci06ID5wYXRoOQotZGF0ZSA+cGF0aDEwCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCB0byBhZGQgdmFyaW91cyBwYXRocy4nIFwKLSAgICAiZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLSBwYXRoMCBwYXRoMSBwYXRoPy9maWxlPyBwYXRoNyBwYXRoOCBwYXRoOSBwYXRoMTAiCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHRvIGFkZCB2YXJpb3VzIHBhdGhzLicgJworCWRhdGUgPnBhdGgwICYmCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBwYXRoMSAmJgorCW1rZGlyIHBhdGgyIHBhdGgzICYmCisJZGF0ZSA+cGF0aDIvZmlsZTIgJiYKKwlkYXRlID5wYXRoMy9maWxlMyAmJgorCTogPnBhdGg3ICYmCisJZGF0ZSA+cGF0aDggJiYKKwk6ID5wYXRoOSAmJgorCWRhdGUgPnBhdGgxMCAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgLS0gcGF0aDAgcGF0aD8vZmlsZT8gcGF0aDcgcGF0aDggcGF0aDkgcGF0aDEwICYmCisJZm9yIGkgaW4gMSAyCisJZG8KKwkJZ2l0IGluaXQgc3VibW9kJGkgJiYKKwkJKAorCQkJY2Qgc3VibW9kJGkgJiYgZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJlbXB0eSAkaSIKKwkJKSB8fCBicmVhaworCWRvbmUgJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHN1Ym1vZFsxMl0KKwkoCisJCWNkIHN1Ym1vZDEgJiYKKwkJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJlbXB0eSAxICh1cGRhdGVkKSIKKwkpICYmCisJcm0gLWZyIHBhdGg/CSMgbGVhdmUgcGF0aDEwIGFsb25lCisnCiAKLXJtIC1mciBwYXRoPyA7IyBsZWF2ZSBwYXRoMTAgYWxvbmUKLWRhdGUgPnBhdGgyCi1pZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi10aGVuCi0JbG4gLXMgZnJvdHogcGF0aDMKLQlsbiAtcyBuaXRmb2wgcGF0aDUKLWVsc2UKLQlkYXRlID4gcGF0aDMKLQlkYXRlID4gcGF0aDUKLWZpCi1ta2RpciBwYXRoMCBwYXRoMSBwYXRoNgotZGF0ZSA+cGF0aDAvZmlsZTAKLWRhdGUgPnBhdGgxL2ZpbGUxCi1kYXRlID5wYXRoNi9maWxlNgotZGF0ZSA+cGF0aDcKLTogPnBhdGg4Ci06ID5wYXRoOQotdG91Y2ggcGF0aDEwCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtZmlsZXMgLWsgdG8gc2hvdyBraWxsZWQgZmlsZXMuJyAnCisJZGF0ZSA+cGF0aDIgJiYKKwlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCisJdGhlbgorCQlsbiAtcyBmcm90eiBwYXRoMyAmJgorCQlsbiAtcyBuaXRmb2wgcGF0aDUKKwllbHNlCisJCWRhdGUgPnBhdGgzICYmCisJCWRhdGUgPnBhdGg1CisJZmkgJiYKKwlta2RpciBwYXRoMCBwYXRoMSBwYXRoNiAmJgorCWRhdGUgPnBhdGgwL2ZpbGUwICYmCisJZGF0ZSA+cGF0aDEvZmlsZTEgJiYKKwlkYXRlID5wYXRoNi9maWxlNiAmJgorCWRhdGUgPnBhdGg3ICYmCisJOiA+cGF0aDggJiYKKwk6ID5wYXRoOSAmJgorCXRvdWNoIHBhdGgxMCAmJgorCWdpdCBscy1maWxlcyAtayA+Lm91dHB1dAorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IGxzLWZpbGVzIC1rIHRvIHNob3cga2lsbGVkIGZpbGVzLicgXAotICAgICdnaXQgbHMtZmlsZXMgLWsgPi5vdXRwdXQnCi1jYXQgPi5leHBlY3RlZCA8PEVPRgotcGF0aDAvZmlsZTAKLXBhdGgxL2ZpbGUxCi1wYXRoMgotcGF0aDMKLUVPRgordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIC1rIG91dHB1dC4nICcKKwljYXQgPi5leHBlY3RlZCA8PC1cRU9GICYmCisJcGF0aDAvZmlsZTAKKwlwYXRoMS9maWxlMQorCXBhdGgyCisJcGF0aDMKKwlFT0YKKwl0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dAorJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAndmFsaWRhdGUgZ2l0IGxzLWZpbGVzIC1rIG91dHB1dC4nIFwKLSAgICAndGVzdF9jbXAgLmV4cGVjdGVkIC5vdXRwdXQnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbHMtZmlsZXMgLW0gdG8gc2hvdyBtb2RpZmllZCBmaWxlcy4nICcKKwlnaXQgbHMtZmlsZXMgLW0gPi5vdXRwdXQKKycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2dpdCBscy1maWxlcyAtbSB0byBzaG93IG1vZGlmaWVkIGZpbGVzLicgXAotICAgICdnaXQgbHMtZmlsZXMgLW0gPi5vdXRwdXQnCi1jYXQgPi5leHBlY3RlZCA8PEVPRgotcGF0aDAKLXBhdGgxCi1wYXRoMi9maWxlMgotcGF0aDMvZmlsZTMKLXBhdGg3Ci1wYXRoOAotRU9GCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd2YWxpZGF0ZSBnaXQgbHMtZmlsZXMgLW0gb3V0cHV0LicgXAotICAgICd0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dCcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGdpdCBscy1maWxlcyAtbSBvdXRwdXQuJyAnCisJY2F0ID4uZXhwZWN0ZWQgPDwtXEVPRiAmJgorCXBhdGgwCisJcGF0aDEKKwlwYXRoMi9maWxlMgorCXBhdGgzL2ZpbGUzCisJcGF0aDcKKwlwYXRoOAorCXN1Ym1vZDEKKwlFT0YKKwl0ZXN0X2NtcCAuZXhwZWN0ZWQgLm91dHB1dAorJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDMwMzAtbWVyZ2UtcmVjdXJzaXZlLnNoIGIvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKaW5kZXggYTVlM2RhNy4uMmY5NjEwMCAxMDA3NTUKLS0tIGEvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKKysrIGIvdC90MzAzMC1tZXJnZS1yZWN1cnNpdmUuc2gKQEAgLTI1LDEwICsyNSw3IEBACiAJZ2l0IGJyYW5jaCBzdWJtb2QgJiYKIAlnaXQgYnJhbmNoIGNvcHkgJiYKIAlnaXQgYnJhbmNoIHJlbmFtZSAmJgotCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLQl0aGVuCi0JCWdpdCBicmFuY2ggcmVuYW1lLWxuCi0JZmkgJiYKKwlnaXQgYnJhbmNoIHJlbmFtZS1sbiAmJgogCiAJZWNobyBoZWxsbyA+PmEgJiYKIAljcCBhIGQvZSAmJgpAQCAtMjYwLDE2ICsyNTcsMTIgQEAKIAlnaXQgYWRkIGUgJiYKIAl0ZXN0X3RpY2sgJiYKIAlnaXQgY29tbWl0IC1tICJyZW5hbWUgYS0+ZSIgJiYKLQlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTCi0JdGhlbgotCQlnaXQgY2hlY2tvdXQgcmVuYW1lLWxuICYmCi0JCWdpdCBtdiBhIGUgJiYKLQkJbG4gLXMgZSBhICYmCi0JCWdpdCBhZGQgYSBlICYmCi0JCXRlc3RfdGljayAmJgotCQlnaXQgY29tbWl0IC1tICJyZW5hbWUgYS0+ZSwgc3ltbGluayBhLT5lIiAmJgotCQlvbG49YHByaW50ZiBlIHwgZ2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gCi0JZmkKKwlnaXQgY2hlY2tvdXQgcmVuYW1lLWxuICYmCisJZ2l0IG12IGEgZSAmJgorCXRlc3RfbG5fc19hZGQgZSBhICYmCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtbSAicmVuYW1lIGEtPmUsIHN5bWxpbmsgYS0+ZSIgJiYKKwlvbG49YHByaW50ZiBlIHwgZ2l0IGhhc2gtb2JqZWN0IC0tc3RkaW5gCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIDknICcKQEAgLTU2OSwyOCArNTYyLDI1IEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKLWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLXRoZW4KLQl0ZXN0X2V4cGVjdF9mYWlsdXJlICdtZXJnZS1yZWN1cnNpdmUgcmVuYW1lIHZzLiByZW5hbWUvc3ltbGluaycgJwordGVzdF9leHBlY3RfZmFpbHVyZSAnbWVyZ2UtcmVjdXJzaXZlIHJlbmFtZSB2cy4gcmVuYW1lL3N5bWxpbmsnICcKIAotCQlnaXQgY2hlY2tvdXQgLWYgcmVuYW1lICYmCi0JCWdpdCBtZXJnZSByZW5hbWUtbG4gJiYKLQkJKCBnaXQgbHMtdHJlZSAtciBIRUFEIDsgZ2l0IGxzLWZpbGVzIC1zICkgPmFjdHVhbCAmJgotCQkoCi0JCQllY2hvICIxMjAwMDAgYmxvYiAkb2xuCWEiCi0JCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJYiIKLQkJCWVjaG8gIjEwMDY0NCBibG9iICRvMAljIgotCQkJZWNobyAiMTAwNjQ0IGJsb2IgJG8wCWQvZSIKLQkJCWVjaG8gIjEwMDY0NCBibG9iICRvMAllIgotCQkJZWNobyAiMTIwMDAwICRvbG4gMAlhIgotCQkJZWNobyAiMTAwNjQ0ICRvMCAwCWIiCi0JCQllY2hvICIxMDA2NDQgJG8wIDAJYyIKLQkJCWVjaG8gIjEwMDY0NCAkbzAgMAlkL2UiCi0JCQllY2hvICIxMDA2NDQgJG8wIDAJZSIKLQkJKSA+ZXhwZWN0ZWQgJiYKLQkJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCi0JJwotZmkKKwlnaXQgY2hlY2tvdXQgLWYgcmVuYW1lICYmCisJZ2l0IG1lcmdlIHJlbmFtZS1sbiAmJgorCSggZ2l0IGxzLXRyZWUgLXIgSEVBRCA7IGdpdCBscy1maWxlcyAtcyApID5hY3R1YWwgJiYKKwkoCisJCWVjaG8gIjEyMDAwMCBibG9iICRvbG4JYSIKKwkJZWNobyAiMTAwNjQ0IGJsb2IgJG8wCWIiCisJCWVjaG8gIjEwMDY0NCBibG9iICRvMAljIgorCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJZC9lIgorCQllY2hvICIxMDA2NDQgYmxvYiAkbzAJZSIKKwkJZWNobyAiMTIwMDAwICRvbG4gMAlhIgorCQllY2hvICIxMDA2NDQgJG8wIDAJYiIKKwkJZWNobyAiMTAwNjQ0ICRvMCAwCWMiCisJCWVjaG8gIjEwMDY0NCAkbzAgMAlkL2UiCisJCWVjaG8gIjEwMDY0NCAkbzAgMAllIgorCSkgPmV4cGVjdGVkICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisnCiAKIAogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzMDMyLW1lcmdlLXJlY3Vyc2l2ZS1vcHRpb25zLnNoIGIvdC90MzAzMi1tZXJnZS1yZWN1cnNpdmUtb3B0aW9ucy5zaAppbmRleCAyYjE3MzExLi41ZmQ3YmJiIDEwMDc1NQotLS0gYS90L3QzMDMyLW1lcmdlLXJlY3Vyc2l2ZS1vcHRpb25zLnNoCisrKyBiL3QvdDMwMzItbWVyZ2UtcmVjdXJzaXZlLW9wdGlvbnMuc2gKQEAgLTE0LDcgKzE0LDcgQEAKIC4gLi90ZXN0LWxpYi5zaAogCiB0ZXN0X2hhdmVfcHJlcmVxIFNFRF9TVFJJUFNfQ1IgJiYgU0VEX09QVElPTlM9LWIKLXRlc3RfaGF2ZV9wcmVyZXEgTUlOR1cgJiYgZXhwb3J0IEdSRVBfT1BUSU9OUz0tVQordGVzdF9oYXZlX3ByZXJlcSBHUkVQX1NUUklQU19DUiAmJiBleHBvcnQgR1JFUF9PUFRJT05TPS1VCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCiAJY29uZmxpY3RfaHVua3MgKCkgewpkaWZmIC0tZ2l0IGEvdC90MzA3MC13aWxkbWF0Y2guc2ggYi90L3QzMDcwLXdpbGRtYXRjaC5zaAppbmRleCA0YzM3MDU3Li4zODQ0NmEwIDEwMDc1NQotLS0gYS90L3QzMDcwLXdpbGRtYXRjaC5zaAorKysgYi90L3QzMDcwLXdpbGRtYXRjaC5zaApAQCAtNiwyMCArNiwyMCBAQAogCiBtYXRjaCgpIHsKICAgICBpZiBbICQxID0gMSBdOyB0aGVuCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAid2lsZG1hdGNoOiAgICBtYXRjaCAnJDMnICckNCciICIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ3aWxkbWF0Y2g6ICAgICBtYXRjaCAnJDMnICckNCciICIKIAkgICAgdGVzdC13aWxkbWF0Y2ggd2lsZG1hdGNoICckMycgJyQ0JwogCSIKICAgICBlbHNlCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAid2lsZG1hdGNoOiBubyBtYXRjaCAnJDMnICckNCciICIKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJ3aWxkbWF0Y2g6ICBubyBtYXRjaCAnJDMnICckNCciICIKIAkgICAgISB0ZXN0LXdpbGRtYXRjaCB3aWxkbWF0Y2ggJyQzJyAnJDQnCiAJIgogICAgIGZpCiAgICAgaWYgWyAkMiA9IDEgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZubWF0Y2g6ICAgICAgbWF0Y2ggJyQzJyAnJDQnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm5tYXRjaDogICAgICAgbWF0Y2ggJyQzJyAnJDQnIiAiCiAJICAgIHRlc3Qtd2lsZG1hdGNoIGZubWF0Y2ggJyQzJyAnJDQnCiAJIgogICAgIGVsaWYgWyAkMiA9IDAgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgImZubWF0Y2g6ICAgbm8gbWF0Y2ggJyQzJyAnJDQnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm5tYXRjaDogICAgbm8gbWF0Y2ggJyQzJyAnJDQnIiAiCiAJICAgICEgdGVzdC13aWxkbWF0Y2ggZm5tYXRjaCAnJDMnICckNCcKIAkiCiAjICAgIGVsc2UKQEAgLTI5LDEzICsyOSwyNSBAQAogICAgIGZpCiB9CiAKK2ltYXRjaCgpIHsKKyAgICBpZiBbICQxID0gMSBdOyB0aGVuCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiaXdpbGRtYXRjaDogICAgbWF0Y2ggJyQyJyAnJDMnIiAiCisJICAgIHRlc3Qtd2lsZG1hdGNoIGl3aWxkbWF0Y2ggJyQyJyAnJDMnCisJIgorICAgIGVsc2UKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJpd2lsZG1hdGNoOiBubyBtYXRjaCAnJDInICckMyciICIKKwkgICAgISB0ZXN0LXdpbGRtYXRjaCBpd2lsZG1hdGNoICckMicgJyQzJworCSIKKyAgICBmaQorfQorCiBwYXRobWF0Y2goKSB7CiAgICAgaWYgWyAkMSA9IDEgXTsgdGhlbgotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInBhdGhtYXRjaDogICAgbWF0Y2ggJyQyJyAnJDMnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGF0aG1hdGNoOiAgICAgbWF0Y2ggJyQyJyAnJDMnIiAiCiAJICAgIHRlc3Qtd2lsZG1hdGNoIHBhdGhtYXRjaCAnJDInICckMycKIAkiCiAgICAgZWxzZQotCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInBhdGhtYXRjaDogbm8gbWF0Y2ggJyQyJyAnJDMnIiAiCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicGF0aG1hdGNoOiAgbm8gbWF0Y2ggJyQyJyAnJDMnIiAiCiAJICAgICEgdGVzdC13aWxkbWF0Y2ggcGF0aG1hdGNoICckMicgJyQzJwogCSIKICAgICBmaQpAQCAtMjM1LDQgKzI0NywzNSBAQAogcGF0aG1hdGNoIDEgYWIvY1hkL2VmWGcvaGkgJyovKlgqLyovKmknCiBwYXRobWF0Y2ggMSBhYi9jWGQvZWZYZy9oaSAnKlhnKmknCiAKKyMgQ2FzZS1zZW5zaXRpdnkgZmVhdHVyZXMKK21hdGNoIDAgeCAnYScgJ1tBLVpdJworbWF0Y2ggMSB4ICdBJyAnW0EtWl0nCittYXRjaCAwIHggJ0EnICdbYS16XScKK21hdGNoIDEgeCAnYScgJ1thLXpdJworbWF0Y2ggMCB4ICdhJyAnW1s6dXBwZXI6XV0nCittYXRjaCAxIHggJ0EnICdbWzp1cHBlcjpdXScKK21hdGNoIDAgeCAnQScgJ1tbOmxvd2VyOl1dJworbWF0Y2ggMSB4ICdhJyAnW1s6bG93ZXI6XV0nCittYXRjaCAwIHggJ0EnICdbQi1aYV0nCittYXRjaCAxIHggJ2EnICdbQi1aYV0nCittYXRjaCAwIHggJ0EnICdbQi1hXScKK21hdGNoIDEgeCAnYScgJ1tCLWFdJworbWF0Y2ggMCB4ICd6JyAnW1oteV0nCittYXRjaCAxIHggJ1onICdbWi15XScKKworaW1hdGNoIDEgJ2EnICdbQS1aXScKK2ltYXRjaCAxICdBJyAnW0EtWl0nCitpbWF0Y2ggMSAnQScgJ1thLXpdJworaW1hdGNoIDEgJ2EnICdbYS16XScKK2ltYXRjaCAxICdhJyAnW1s6dXBwZXI6XV0nCitpbWF0Y2ggMSAnQScgJ1tbOnVwcGVyOl1dJworaW1hdGNoIDEgJ0EnICdbWzpsb3dlcjpdXScKK2ltYXRjaCAxICdhJyAnW1s6bG93ZXI6XV0nCitpbWF0Y2ggMSAnQScgJ1tCLVphXScKK2ltYXRjaCAxICdhJyAnW0ItWmFdJworaW1hdGNoIDEgJ0EnICdbQi1hXScKK2ltYXRjaCAxICdhJyAnW0ItYV0nCitpbWF0Y2ggMSAneicgJ1taLXldJworaW1hdGNoIDEgJ1onICdbWi15XScKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzMTAwLWxzLXRyZWUtcmVzdHJpY3Quc2ggYi90L3QzMTAwLWxzLXRyZWUtcmVzdHJpY3Quc2gKaW5kZXggODFkOTBiNi4uZWI3M2MwNiAxMDA3NTUKLS0tIGEvdC90MzEwMC1scy10cmVlLXJlc3RyaWN0LnNoCisrKyBiL3QvdDMxMDAtbHMtdHJlZS1yZXN0cmljdC5zaApAQCAtMjIsMjAgKzIyLDggQEAKICAgICAnc2V0dXAnIFwKICAgICAnbWtkaXIgcGF0aDIgcGF0aDIvYmF6ICYmCiAgICAgIGVjaG8gSGkgPnBhdGgwICYmCi0gICAgIGlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKLSAgICAgdGhlbgotCWxuIC1zIHBhdGgwIHBhdGgxICYmCi0JbG4gLXMgLi4vcGF0aDEgcGF0aDIvYmF6Ym8KLQltYWtlX2V4cGVjdGVkICgpIHsKLQkJY2F0ID5leHBlY3RlZAotCX0KLSAgICAgZWxzZQotCXByaW50ZiBwYXRoMCA+IHBhdGgxICYmCi0JcHJpbnRmIC4uL3BhdGgxID4gcGF0aDIvYmF6Ym8KLQltYWtlX2V4cGVjdGVkICgpIHsKLQkJc2VkIC1lICJzLzEyMDAwMCAvMTAwNjQ0IC8iID5leHBlY3RlZAotCX0KLSAgICAgZmkgJiYKKyAgICAgdGVzdF9sbl9zX2FkZCBwYXRoMCBwYXRoMSAmJgorICAgICB0ZXN0X2xuX3NfYWRkIC4uL3BhdGgxIHBhdGgyL2JhemJvICYmCiAgICAgIGVjaG8gTG8gPnBhdGgyL2ZvbyAmJgogICAgICBlY2hvIE1pID5wYXRoMi9iYXovYiAmJgogICAgICBmaW5kIHBhdGg/IFwoIC10eXBlIGYgLW8gLXR5cGUgbCBcKSAtcHJpbnQgfApAQCAtNTEsNyArMzksNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgcGxhaW4nIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDEwMDY0NCBibG9iIFgJcGF0aDAKIDEyMDAwMCBibG9iIFgJcGF0aDEKIDA0MDAwMCB0cmVlIFgJcGF0aDIKQEAgLTYxLDcgKzQ5LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIHJlY3Vyc2l2ZScgXAogICAgICdnaXQgbHMtdHJlZSAtciAkdHJlZSA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogMTAwNjQ0IGJsb2IgWAlwYXRoMAogMTIwMDAwIGJsb2IgWAlwYXRoMQogMTAwNjQ0IGJsb2IgWAlwYXRoMi9iYXovYgpAQCAtNzMsNyArNjEsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgcmVjdXJzaXZlIHdpdGggLXQnIFwKICAgICAnZ2l0IGxzLXRyZWUgLXIgLXQgJHRyZWUgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDEwMDY0NCBibG9iIFgJcGF0aDAKIDEyMDAwMCBibG9iIFgJcGF0aDEKIDA0MDAwMCB0cmVlIFgJcGF0aDIKQEAgLTg3LDcgKzc1LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIHJlY3Vyc2l2ZSB3aXRoIC1kJyBcCiAgICAgJ2dpdCBscy10cmVlIC1yIC1kICR0cmVlID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogRU9GCkBAIC05Niw3ICs4NCw3IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnbHMtdHJlZSBmaWx0ZXJlZCB3aXRoIHBhdGgnIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aCA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCkBAIC0xMDYsNyArOTQsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMSBwYXRoMCcgXAogICAgICdnaXQgbHMtdHJlZSAkdHJlZSBwYXRoMSBwYXRoMCA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogMTAwNjQ0IGJsb2IgWAlwYXRoMAogMTIwMDAwIGJsb2IgWAlwYXRoMQogRU9GCkBAIC0xMTUsNyArMTAzLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDAvJyBcCiAgICAgJ2dpdCBscy10cmVlICR0cmVlIHBhdGgwLyA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCkBAIC0xMjQsNyArMTEyLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDInIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDA0MDAwMCB0cmVlIFgJcGF0aDIKIEVPRgogICAgICB0ZXN0X291dHB1dCcKQEAgLTEzMyw3ICsxMjEsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMi8nIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogMTIwMDAwIGJsb2IgWAlwYXRoMi9iYXpibwogMTAwNjQ0IGJsb2IgWAlwYXRoMi9mb28KQEAgLTE0NSw3ICsxMzMsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgZmlsdGVyZWQgd2l0aCBwYXRoMi9iYXonIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvYmF6ID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwpAQCAtMTUzLDE0ICsxNDEsMTQgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdscy10cmVlIGZpbHRlcmVkIHdpdGggcGF0aDIvYmFrJyBcCiAgICAgJ2dpdCBscy10cmVlICR0cmVlIHBhdGgyL2JhayA+Y3VycmVudCAmJgotICAgICBtYWtlX2V4cGVjdGVkIDw8XEVPRiAmJgorICAgICBjYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgogRU9GCiAgICAgIHRlc3Rfb3V0cHV0JwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAnbHMtdHJlZSAtdCBmaWx0ZXJlZCB3aXRoIHBhdGgyL2JhaycgXAogICAgICdnaXQgbHMtdHJlZSAtdCAkdHJlZSBwYXRoMi9iYWsgPmN1cnJlbnQgJiYKLSAgICAgbWFrZV9leHBlY3RlZCA8PFxFT0YgJiYKKyAgICAgY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIDA0MDAwMCB0cmVlIFgJcGF0aDIKIEVPRgogICAgICB0ZXN0X291dHB1dCcKQEAgLTE2OCw3ICsxNTYsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2xzLXRyZWUgd2l0aCBvbmUgcGF0aCBhIHByZWZpeCBvZiB0aGUgb3RoZXInIFwKICAgICAnZ2l0IGxzLXRyZWUgJHRyZWUgcGF0aDIvYmF6IHBhdGgyL2JhemJvID5jdXJyZW50ICYmCi0gICAgIG1ha2VfZXhwZWN0ZWQgPDxcRU9GICYmCisgICAgIGNhdCA+ZXhwZWN0ZWQgPDxcRU9GICYmCiAwNDAwMDAgdHJlZSBYCXBhdGgyL2JhegogMTIwMDAwIGJsb2IgWAlwYXRoMi9iYXpibwogRU9GCmRpZmYgLS1naXQgYS90L3QzMjAwLWJyYW5jaC5zaCBiL3QvdDMyMDAtYnJhbmNoLnNoCmluZGV4IGQ5NjlmMGUuLjQ0ZWM2YTQgMTAwNzU1Ci0tLSBhL3QvdDMyMDAtYnJhbmNoLnNoCisrKyBiL3QvdDMyMDAtYnJhbmNoLnNoCkBAIC0zMTcsMTMgKzMxNywxMyBAQAogCXRlc3QgJChnaXQgY29uZmlnIGJyYW5jaC5teTQubWVyZ2UpID0gcmVmcy9oZWFkcy9tYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCB0cmFja2luZyBzZXR1cCAobm9uLXdpbGRjYXJkLCBub3QgbWF0Y2hpbmcpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd0cmFja2luZyBzZXR1cCBmYWlscyBvbiBub24tbWF0Y2hpbmcgcmVmc3BlYycgJwogCWdpdCBjb25maWcgcmVtb3RlLmxvY2FsLnVybCAuICYmCiAJZ2l0IGNvbmZpZyByZW1vdGUubG9jYWwuZmV0Y2ggcmVmcy9oZWFkcy9zOnJlZnMvcmVtb3Rlcy9sb2NhbC9zICYmCiAJKGdpdCBzaG93LXJlZiAtcSByZWZzL3JlbW90ZXMvbG9jYWwvbWFzdGVyIHx8IGdpdCBmZXRjaCBsb2NhbCkgJiYKLQlnaXQgYnJhbmNoIC0tdHJhY2sgbXk1IGxvY2FsL21hc3RlciAmJgotCSEgdGVzdCAiJChnaXQgY29uZmlnIGJyYW5jaC5teTUucmVtb3RlKSIgPSBsb2NhbCAmJgotCSEgdGVzdCAiJChnaXQgY29uZmlnIGJyYW5jaC5teTUubWVyZ2UpIiA9IHJlZnMvaGVhZHMvbWFzdGVyCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGJyYW5jaCAtLXRyYWNrIG15NSBsb2NhbC9tYXN0ZXIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29uZmlnIGJyYW5jaC5teTUucmVtb3RlICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyBicmFuY2gubXk1Lm1lcmdlCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgdHJhY2tpbmcgc2V0dXAgdmlhIGNvbmZpZycgJwpkaWZmIC0tZ2l0IGEvdC90MzIxMC1wYWNrLXJlZnMuc2ggYi90L3QzMjEwLXBhY2stcmVmcy5zaAppbmRleCBjZDA0MzYxLi4xYTIwODBlIDEwMDc1NQotLS0gYS90L3QzMjEwLXBhY2stcmVmcy5zaAorKysgYi90L3QzMjEwLXBhY2stcmVmcy5zaApAQCAtMTE4LDQgKzExOCwzNyBAQAogCXRlc3RfY21wIGFsbC1vZi10aGVtIGFnYWluCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2V4cGxpY2l0IHBhY2stcmVmcyB3aXRoIGRhbmdsaW5nIHBhY2tlZCByZWZlcmVuY2UnICcKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gInNvb24gdG8gYmUgZ2FyYmFnZS1jb2xsZWN0ZWQiICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgorCWdpdCByZXNldCAtLWhhcmQgSEVBRF4gJiYKKwlnaXQgcmVmbG9nIGV4cGlyZSAtLWV4cGlyZT1hbGwgLS1hbGwgJiYKKwlnaXQgcHJ1bmUgLS1leHBpcmU9YWxsICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAyPnJlc3VsdCAmJgorCXRlc3RfY21wIC9kZXYvbnVsbCByZXN1bHQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRlIHJlZiB3aXRoIGRhbmdsaW5nIHBhY2tlZCB2ZXJzaW9uJyAnCisJZ2l0IGNoZWNrb3V0IC1iIGxhbWIgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gImZ1dHVyZSBnYXJiYWdlIiAmJgorCWdpdCBwYWNrLXJlZnMgLS1hbGwgJiYKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPWFsbCAtLWFsbCAmJgorCWdpdCBwcnVuZSAtLWV4cGlyZT1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIGxhbWIgMj5yZXN1bHQgJiYKKwl0ZXN0X2NtcCAvZGV2L251bGwgcmVzdWx0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RlbGV0ZSByZWYgd2hpbGUgYW5vdGhlciBkYW5nbGluZyBwYWNrZWQgcmVmJyAnCisJZ2l0IGJyYW5jaCBsYW1iICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tICJmdXR1cmUgZ2FyYmFnZSIgJiYKKwlnaXQgcGFjay1yZWZzIC0tYWxsICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWdpdCByZWZsb2cgZXhwaXJlIC0tZXhwaXJlPWFsbCAtLWFsbCAmJgorCWdpdCBwcnVuZSAtLWV4cGlyZT1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIGxhbWIgMj5yZXN1bHQgJiYKKwl0ZXN0X2NtcCAvZGV2L251bGwgcmVzdWx0CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzIxMS1wZWVsLXJlZi5zaCBiL3QvdDMyMTEtcGVlbC1yZWYuc2gKaW5kZXggZDRkNzc5Mi4uM2I3Y2FjYSAxMDA3NTUKLS0tIGEvdC90MzIxMS1wZWVsLXJlZi5zaAorKysgYi90L3QzMjExLXBlZWwtcmVmLnNoCkBAIC02MSw0ICs2MSwxMyBAQAogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncGVlbGVkIHJlZnMgc3Vydml2ZSBkZWxldGlvbiBvZiBwYWNrZWQgcmVmJyAnCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgorCWNwIC5naXQvcGFja2VkLXJlZnMgZnVsbHktcGVlbGVkICYmCisJZ2l0IGJyYW5jaCB5YWRkYSAmJgorCWdpdCBwYWNrLXJlZnMgLS1hbGwgJiYKKwlnaXQgYnJhbmNoIC1kIHlhZGRhICYmCisJdGVzdF9jbXAgZnVsbHktcGVlbGVkIC5naXQvcGFja2VkLXJlZnMKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDAwLXJlYmFzZS5zaCBiL3QvdDM0MDAtcmViYXNlLnNoCmluZGV4IGI1OGZhMWEuLmViZjkzYjAgMTAwNzU1Ci0tLSBhL3QvdDM0MDAtcmViYXNlLnNoCisrKyBiL3QvdDM0MDAtcmViYXNlLnNoCkBAIC00MCwxMyArNDAsNiBAQAogCWVjaG8gU2lkZSA+PkMgJiYKIAlnaXQgYWRkIEMgJiYKIAlnaXQgY29tbWl0IC1tICJBZGQgQyIgJiYKLQlnaXQgY2hlY2tvdXQgLWIgbm9ubGluZWFyIG15LXRvcGljLWJyYW5jaCAmJgotCWVjaG8gRWRpdCA+PkIgJiYKLQlnaXQgYWRkIEIgJiYKLQlnaXQgY29tbWl0IC1tICJNb2RpZnkgQiIgJiYKLQlnaXQgbWVyZ2Ugc2lkZSAmJgotCWdpdCBjaGVja291dCAtYiB1cHN0cmVhbS1tZXJnZWQtbm9ubGluZWFyICYmCi0JZ2l0IG1lcmdlIG1hc3RlciAmJgogCWdpdCBjaGVja291dCAtZiBteS10b3BpYy1icmFuY2ggJiYKIAlnaXQgdGFnIHRvcGljCiAnCkBAIC02NiwyNiArNTksMTUgQEAKIAlnaXQgcmViYXNlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2UnICcKLQlnaXQgcmViYXNlIG1hc3RlciA+b3V0ICYmCi0JdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggbXktdG9waWMtYnJhbmNoIGlzIHVwIHRvIGRhdGUiIG91dAotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2Ugd2l0aCAtLWZvcmNlJyAnCi0JZ2l0IHJlYmFzZSAtLWZvcmNlLXJlYmFzZSBtYXN0ZXIgPm91dCAmJgotCXRlc3RfaTE4bmdyZXAgIkN1cnJlbnQgYnJhbmNoIG15LXRvcGljLWJyYW5jaCBpcyB1cCB0byBkYXRlLCByZWJhc2UgZm9yY2VkIiBvdXQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIGFnYWluc3QgbWFzdGVyIHR3aWNlIGZyb20gYW5vdGhlciBicmFuY2gnICcKLQlnaXQgY2hlY2tvdXQgbXktdG9waWMtYnJhbmNoXiAmJgotCWdpdCByZWJhc2UgbWFzdGVyIG15LXRvcGljLWJyYW5jaCA+b3V0ICYmCi0JdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggbXktdG9waWMtYnJhbmNoIGlzIHVwIHRvIGRhdGUiIG91dAotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgZmFzdC1mb3J3YXJkIHRvIG1hc3RlcicgJwotCWdpdCBjaGVja291dCBteS10b3BpYy1icmFuY2heICYmCi0JZ2l0IHJlYmFzZSBteS10b3BpYy1icmFuY2ggPm91dCAmJgotCXRlc3RfaTE4bmdyZXAgIkZhc3QtZm9yd2FyZGVkIEhFQUQgdG8gbXktdG9waWMtYnJhbmNoIiBvdXQKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSwgd2l0aCA8b250bz4gYW5kIDx1cHN0cmVhbT4gc3BlY2lmaWVkIGFzIDovcXV1eGVyeScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJyYW5jaCAtRCB0b3JlYmFzZSIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdG9yZWJhc2UgbXktdG9waWMtYnJhbmNoXiAmJgorCXVwc3RyZWFtPSQoZ2l0IHJldi1wYXJzZSAiOi9BZGQgQiIpICYmCisJb250bz0kKGdpdCByZXYtcGFyc2UgIjovQWRkIEEiKSAmJgorCWdpdCByZWJhc2UgLS1vbnRvICRvbnRvICR1cHN0cmVhbSAmJgorCWdpdCByZXNldCAtLWhhcmQgbXktdG9waWMtYnJhbmNoXiAmJgorCWdpdCByZWJhc2UgLS1vbnRvICI6L0FkZCBBIiAiOi9BZGQgQiIgJiYKKwlnaXQgY2hlY2tvdXQgbXktdG9waWMtYnJhbmNoCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RoZSByZWJhc2Ugb3BlcmF0aW9uIHNob3VsZCBub3QgaGF2ZSBkZXN0cm95ZWQgYXV0aG9yIGluZm9ybWF0aW9uJyAnCkBAIC0xMDYsMzEgKzg4LDkgQEAKIAlnaXQgcmViYXNlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWZ0ZXIgbWVyZ2UgbWFzdGVyJyAnCi0JZ2l0IGNoZWNrb3V0IC0tZGV0YWNoIHJlZnMvdGFncy90b3BpYyAmJgotCWdpdCBicmFuY2ggLUQgdG9waWMgJiYKLQlnaXQgcmVzZXQgLS1oYXJkIHRvcGljICYmCi0JZ2l0IG1lcmdlIG1hc3RlciAmJgotCWdpdCByZWJhc2UgbWFzdGVyICYmCi0JISAoZ2l0IHNob3cgfCBncmVwICJeTWVyZ2U6IikKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIG9mIGhpc3Rvcnkgd2l0aCBtZXJnZXMgaXMgbGluZWFyaXplZCcgJwotCWdpdCBjaGVja291dCBub25saW5lYXIgJiYKLQl0ZXN0IDQgPSAkKGdpdCByZXYtbGlzdCBtYXN0ZXIuLiB8IHdjIC1sKSAmJgotCWdpdCByZWJhc2UgbWFzdGVyICYmCi0JdGVzdCAzID0gJChnaXQgcmV2LWxpc3QgbWFzdGVyLi4gfCB3YyAtbCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIG9mIGhpc3Rvcnkgd2l0aCBtZXJnZXMgYWZ0ZXIgdXBzdHJlYW0gbWVyZ2UgaXMgbGluZWFyaXplZCcgJwotCWdpdCBjaGVja291dCB1cHN0cmVhbS1tZXJnZWQtbm9ubGluZWFyICYmCi0JdGVzdCA1ID0gJChnaXQgcmV2LWxpc3QgbWFzdGVyLi4gfCB3YyAtbCkgJiYKLQlnaXQgcmViYXNlIG1hc3RlciAmJgotCXRlc3QgMyA9ICQoZ2l0IHJldi1saXN0IG1hc3Rlci4uIHwgd2MgLWwpCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhIHNpbmdsZSBtb2RlIGNoYW5nZScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwlnaXQgYnJhbmNoIC1EIHRvcGljICYmCiAJZWNobyAxID5YICYmCiAJZ2l0IGFkZCBYICYmCiAJdGVzdF90aWNrICYmCkBAIC0xODUsNyArMTQ1LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtcSBpcyBxdWlldCcgJwogCWdpdCBjaGVja291dCAtYiBxdWlldCB0b3BpYyAmJgogCWdpdCByZWJhc2UgLXEgbWFzdGVyID5vdXRwdXQub3V0IDI+JjEgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0Lm91dAorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQub3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1JlYmFzZSBhIGNvbW1pdCB0aGF0IHNwcmlua2xlcyBDUnMgaW4nICcKZGlmZiAtLWdpdCBhL3QvdDM0MDEtcmViYXNlLXBhcnRpYWwuc2ggYi90L3QzNDAxLXJlYmFzZS1wYXJ0aWFsLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA1OGY0ODIzLi4wMDAwMDAwCi0tLSBhL3QvdDM0MDEtcmViYXNlLXBhcnRpYWwuc2gKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0jIS9iaW4vc2gKLSMKLSMgQ29weXJpZ2h0IChjKSAyMDA2IFlhbm4gRGlyc29uLCBiYXNlZCBvbiB0MzQwMCBieSBBbW9zIFdhdGVybGFuZAotIwotCi10ZXN0X2Rlc2NyaXB0aW9uPSdnaXQgcmViYXNlIHNob3VsZCBkZXRlY3QgcGF0Y2hlcyBpbnRlZ3JhdGVkIHVwc3RyZWFtCi0KLVRoaXMgdGVzdCBjaGVycnktcGlja3Mgb25lIGxvY2FsIGNoYW5nZSBvZiB0d28gaW50byBtYXN0ZXIgYnJhbmNoLCBhbmQKLWNoZWNrcyB0aGF0IGdpdCByZWJhc2Ugc3VjY2VlZHMgd2l0aCBvbmx5IHRoZSBzZWNvbmQgcGF0Y2ggaW4gdGhlCi1sb2NhbCBicmFuY2guCi0nCi0uIC4vdGVzdC1saWIuc2gKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJlcGFyZSByZXBvc2l0b3J5IHdpdGggdG9waWMgYnJhbmNoJyAnCi0JdGVzdF9jb21taXQgQSAmJgotCWdpdCBjaGVja291dCAtYiBteS10b3BpYy1icmFuY2ggJiYKLQl0ZXN0X2NvbW1pdCBCICYmCi0JdGVzdF9jb21taXQgQyAmJgotCWdpdCBjaGVja291dCAtZiBtYXN0ZXIgJiYKLQl0ZXN0X2NvbW1pdCBBMiBBLnQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncGljayB0b3AgcGF0Y2ggZnJvbSB0b3BpYyBicmFuY2ggaW50byBtYXN0ZXInICcKLQlnaXQgY2hlcnJ5LXBpY2sgQyAmJgotCWdpdCBjaGVja291dCAtZiBteS10b3BpYy1icmFuY2gKLScKLQotdGVzdF9kZWJ1ZyAnCi0JZ2l0IGNoZXJyeSBtYXN0ZXIgJiYKLQlnaXQgZm9ybWF0LXBhdGNoIC1rIC0tc3Rkb3V0IC0tZnVsbC1pbmRleCBtYXN0ZXIgPi9kZXYvbnVsbCAmJgotCWdpdGsgLS1hbGwgJiBzbGVlcCAxCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSB0b3BpYyBicmFuY2ggYWdhaW5zdCBuZXcgbWFzdGVyIGFuZCBjaGVjayBnaXQgYW0gZGlkIG5vdCBnZXQgaGFsdGVkJyAnCi0JZ2l0IHJlYmFzZSBtYXN0ZXIgJiYKLQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1tZXJnZSB0b3BpYyBicmFuY2ggdGhhdCB3YXMgcGFydGlhbGx5IG1lcmdlZCB1cHN0cmVhbScgJwotCWdpdCByZXNldCAtLWhhcmQgQyAmJgotCWdpdCByZWJhc2UgLS1tZXJnZSBtYXN0ZXIgJiYKLQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1tZXJnZQotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgaWdub3JlcyBlbXB0eSBjb21taXQnICcKLQlnaXQgcmVzZXQgLS1oYXJkIEEgJiYKLQlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gZW1wdHkgJiYKLQl0ZXN0X2NvbW1pdCBEICYmCi0JZ2l0IHJlYmFzZSBDICYmCi0JdGVzdCAiJChnaXQgbG9nIC0tZm9ybWF0PSVzIEMuLikiID0gIkQiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtLWtlZXAtZW1wdHknICcKLQlnaXQgcmVzZXQgLS1oYXJkIEQgJiYKLQlnaXQgcmViYXNlIC0ta2VlcC1lbXB0eSBDICYmCi0JdGVzdCAiJChnaXQgbG9nIC0tZm9ybWF0PSVzIEMuLikiID0gIkQKLWVtcHR5IgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1rZWVwLWVtcHR5IGtlZXBzIGVtcHR5IGV2ZW4gaWYgYWxyZWFkeSBpbiB1cHN0cmVhbScgJwotCWdpdCByZXNldCAtLWhhcmQgQSAmJgotCWdpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtbSBhbHNvLWVtcHR5ICYmCi0JZ2l0IHJlYmFzZSAtLWtlZXAtZW1wdHkgRCAmJgotCXRlc3QgIiQoZ2l0IGxvZyAtLWZvcm1hdD0lcyBBLi4pIiA9ICJhbHNvLWVtcHR5Ci1ECi1lbXB0eSIKLScKLQotdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDAzLXJlYmFzZS1za2lwLnNoIGIvdC90MzQwMy1yZWJhc2Utc2tpcC5zaAppbmRleCA4MjY1MDBiLi4zOTY4MDIwIDEwMDc1NQotLS0gYS90L3QzNDAzLXJlYmFzZS1za2lwLnNoCisrKyBiL3QvdDM0MDMtcmViYXNlLXNraXAuc2gKQEAgLTY0LDEwICs2NCwxMSBAQAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLS1za2lwIHdpdGggLS1tZXJnZScgJwogCWdpdCByZWJhc2UgLS1za2lwCi0JJworJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBhbmQgcmVmZXJlbmNlIHRyZWVzIGVxdWFsJyBcCi0JJ3Rlc3QgLXogImBnaXQgZGlmZi10cmVlIHNraXAtbWVyZ2Ugc2tpcC1yZWZlcmVuY2VgIicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIGFuZCByZWZlcmVuY2UgdHJlZXMgZXF1YWwnICcKKwl0ZXN0IC16ICJgZ2l0IGRpZmYtdHJlZSBza2lwLW1lcmdlIHNraXAtcmVmZXJlbmNlYCIKKycKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92ZWQgYmFjayB0byBicmFuY2ggY29ycmVjdGx5JyAnCiAJdGVzdCByZWZzL2hlYWRzL3NraXAtbWVyZ2UgPSAkKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkKZGlmZiAtLWdpdCBhL3QvdDM0MDQtcmViYXNlLWludGVyYWN0aXZlLnNoIGIvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKaW5kZXggYTU4NDA2ZC4uNGRiZWRkYiAxMDA3NTUKLS0tIGEvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKKysrIGIvdC90MzQwNC1yZWJhc2UtaW50ZXJhY3RpdmUuc2gKQEAgLTQ3NywxOSArNDc3LDExIEBACiAJdGVzdCAkb25lID0gJChnaXQgcmV2LXBhcnNlIEhFQUR+MikKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlIHBhdGNoIGlmIGluIHVwc3RyZWFtJyAnCi0JSEVBRD0kKGdpdCByZXYtcGFyc2UgSEVBRCkgJiYKLQlnaXQgY2hlY2tvdXQgLWIgaGFzLWNoZXJyeS1waWNrZWQgSEVBRF4gJiYKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgdHJpZXMgdG8gY29tbWl0LCBldmVuIGZvciAiZWRpdCInICcKIAllY2hvIHVucmVsYXRlZCA+IGZpbGU3ICYmCiAJZ2l0IGFkZCBmaWxlNyAmJgogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gInVucmVsYXRlZCBjaGFuZ2UiICYmCi0JZ2l0IGNoZXJyeS1waWNrICRIRUFEICYmCi0JRVhQRUNUX0NPVU5UPTEgZ2l0IHJlYmFzZSAtaSAkSEVBRCAmJgotCXRlc3QgJEhFQUQgPSAkKGdpdCByZXYtcGFyc2UgSEVBRF4pCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgdHJpZXMgdG8gY29tbWl0LCBldmVuIGZvciAiZWRpdCInICcKIAlwYXJlbnQ9JChnaXQgcmV2LXBhcnNlIEhFQUReKSAmJgogCXRlc3RfdGljayAmJgogCUZBS0VfTElORVM9ImVkaXQgMSIgZ2l0IHJlYmFzZSAtaSBIRUFEXiAmJgpAQCAtNjkyLDcgKzY4NCw3IEBACiAJdGVzdF9jb21taXQgbjIgJiYKIAl0ZXN0X2NvbW1pdCBuMyAmJgogCWdpdCBub3RlcyBhZGQgLW0iYSBub3RlIiBuMyAmJgotCWdpdCByZWJhc2UgLS1vbnRvIG4xIG4yICYmCisJZ2l0IHJlYmFzZSAtaSAtLW9udG8gbjEgbjIgJiYKIAl0ZXN0ICJhIG5vdGUiID0gIiQoZ2l0IG5vdGVzIHNob3cgSEVBRCkiCiAnCiAKQEAgLTkzNCw2ICs5MjYsMjEgQEAKIAl0ZXN0IEwgPSAkKGdpdCBjYXQtZmlsZSBjb21taXQgSEVBRCB8IHNlZCAtbmUgXCRwKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLWkgcHJvZHVjZXMgcmVhZGFibGUgcmVmbG9nJyAnCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCWdpdCBicmFuY2ggLWYgYnJhbmNoLXJlZmxvZy10ZXN0IEggJiYKKwlnaXQgcmViYXNlIC1pIC0tb250byBJIEYgYnJhbmNoLXJlZmxvZy10ZXN0ICYmCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCXJlYmFzZSAtaSAoc3RhcnQpOiBjaGVja291dCBJCisJcmViYXNlIC1pIChwaWNrKTogRworCXJlYmFzZSAtaSAocGljayk6IEgKKwlyZWJhc2UgLWkgKGZpbmlzaCk6IHJldHVybmluZyB0byByZWZzL2hlYWRzL2JyYW5jaC1yZWZsb2ctdGVzdAorCUVPRgorCXRhaWwgLW4gNCAuZ2l0L2xvZ3MvSEVBRCB8CisJc2VkIC1lICJzLy4qCS8vIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLWkgcmVzcGVjdHMgY29yZS5jb21tZW50Y2hhcicgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgRV4wICYmCkBAIC05NDcsNCArOTU0LDM5IEBACiAJdGVzdCBCID0gJChnaXQgY2F0LWZpbGUgY29tbWl0IEhFQUReIHwgc2VkIC1uZSBcJHApCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtaSwgd2l0aCA8b250bz4gYW5kIDx1cHN0cmVhbT4gc3BlY2lmaWVkIGFzIDovcXV1eGVyeScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJyYW5jaCAtRCB0b3JlYmFzZSIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdG9yZWJhc2UgYnJhbmNoMSAmJgorCXVwc3RyZWFtPSQoZ2l0IHJldi1wYXJzZSAiOi9KIikgJiYKKwlvbnRvPSQoZ2l0IHJldi1wYXJzZSAiOi9BIikgJiYKKwlnaXQgcmViYXNlIC0tb250byAkb250byAkdXBzdHJlYW0gJiYKKwlnaXQgcmVzZXQgLS1oYXJkIGJyYW5jaDEgJiYKKwlnaXQgcmViYXNlIC0tb250byAiOi9BIiAiOi9KIiAmJgorCWdpdCBjaGVja291dCBicmFuY2gxCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtaSB3aXRoIC0tc3RyYXRlZ3kgYW5kIC1YJyAnCisJZ2l0IGNoZWNrb3V0IC1iIGNvbmZsaWN0LW1lcmdlLXVzZS10aGVpcnMgY29uZmxpY3QtYnJhbmNoICYmCisJZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiAmJgorCWVjaG8gZml2ZSA+Y29uZmxpY3QgJiYKKwllY2hvIFogPmZpbGUxICYmCisJZ2l0IGNvbW1pdCAtYSAtbSAib25lIGZpbGUgY29uZmxpY3QiICYmCisJRURJVE9SPXRydWUgZ2l0IHJlYmFzZSAtaSAtLXN0cmF0ZWd5PXJlY3Vyc2l2ZSAtWG91cnMgY29uZmxpY3QtYnJhbmNoICYmCisJdGVzdCAkKGdpdCBzaG93IGNvbmZsaWN0LWJyYW5jaDpjb25mbGljdCkgPSAkKGNhdCBjb25mbGljdCkgJiYKKwl0ZXN0ICQoY2F0IGZpbGUxKSA9IFoKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIC1pIGVycm9yIG9uIGNvbW1pdHMgd2l0aCBcIGluIG1lc3NhZ2UnICcKKwljdXJyZW50X2hlYWQ9JChnaXQgcmV2LXBhcnNlIEhFQUQpCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmViYXNlIC0tYWJvcnQ7IGdpdCByZXNldCAtLWhhcmQgJGN1cnJlbnRfaGVhZDsgcm0gLWYgZXJyb3IiICYmCisJdGVzdF9jb21taXQgVE8tUkVNT1ZFIHdpbGwtY29uZmxpY3Qgb2xkLWNvbnRlbnQgJiYKKwl0ZXN0X2NvbW1pdCAiXHRlbXAiIHdpbGwtY29uZmxpY3QgbmV3LWNvbnRlbnQgZHVtbXkgJiYKKwkoCisJRURJVE9SPXRydWUgJiYKKwlleHBvcnQgRURJVE9SICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSAtaSBIRUFEXiAtLW9udG8gSEVBRF5eIDI+ZXJyb3IKKwkpICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdyZXAgICIJZW1wIiBlcnJvcgorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MDYtcmViYXNlLW1lc3NhZ2Uuc2ggYi90L3QzNDA2LXJlYmFzZS1tZXNzYWdlLnNoCmluZGV4IGU2YTlhMGQuLjAzOTJlMzYgMTAwNzU1Ci0tLSBhL3QvdDM0MDYtcmViYXNlLW1lc3NhZ2Uuc2gKKysrIGIvdC90MzQwNi1yZWJhc2UtbWVzc2FnZS5zaApAQCAtNCwyNyArNCwxNyBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotcXVpY2tfb25lICgpIHsKLQllY2hvICIkMSIgPiJmaWxlJDEiICYmCi0JZ2l0IGFkZCAiZmlsZSQxIiAmJgotCXRlc3RfdGljayAmJgotCWdpdCBjb21taXQgLW0gIiQxIgotfQordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAnICcKKwl0ZXN0X2NvbW1pdCBPIGZpbGVPICYmCisJdGVzdF9jb21taXQgWCBmaWxlWCAmJgorCXRlc3RfY29tbWl0IEEgZmlsZUEgJiYKKwl0ZXN0X2NvbW1pdCBCIGZpbGVCICYmCisJdGVzdF9jb21taXQgWSBmaWxlWSAmJgogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKLQlxdWlja19vbmUgTyAmJgotCWdpdCBicmFuY2ggdG9waWMgJiYKLQlxdWlja19vbmUgWCAmJgotCXF1aWNrX29uZSBBICYmCi0JcXVpY2tfb25lIEIgJiYKLQlxdWlja19vbmUgWSAmJgotCi0JZ2l0IGNoZWNrb3V0IHRvcGljICYmCi0JcXVpY2tfb25lIEEgJiYKLQlxdWlja19vbmUgQiAmJgotCXF1aWNrX29uZSBaICYmCisJZ2l0IGNoZWNrb3V0IC1iIHRvcGljIE8gJiYKKwlnaXQgY2hlcnJ5LXBpY2sgQSBCICYmCisJdGVzdF9jb21taXQgWiBmaWxlWiAmJgogCWdpdCB0YWcgc3RhcnQKLQogJwogCiBjYXQgPmV4cGVjdCA8PFxFT0YKQEAgLTM0LDEyICsyNCwzMiBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtbScgJwotCiAJZ2l0IHJlYmFzZSAtbSBtYXN0ZXIgPnJlcG9ydCAmJgogCXNlZCAtbiAtZSAiL15BbHJlYWR5IGFwcGxpZWQ6IC9wIiBcCiAJCS1lICIvXkNvbW1pdHRlZDogL3AiIHJlcG9ydCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgYWdhaW5zdCBtYXN0ZXIgdHdpY2UnICcKKwlnaXQgcmViYXNlIG1hc3RlciA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggdG9waWMgaXMgdXAgdG8gZGF0ZSIgb3V0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhZ2FpbnN0IG1hc3RlciB0d2ljZSB3aXRoIC0tZm9yY2UnICcKKwlnaXQgcmViYXNlIC0tZm9yY2UtcmViYXNlIG1hc3RlciA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiQ3VycmVudCBicmFuY2ggdG9waWMgaXMgdXAgdG8gZGF0ZSwgcmViYXNlIGZvcmNlZCIgb3V0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSBhZ2FpbnN0IG1hc3RlciB0d2ljZSBmcm9tIGFub3RoZXIgYnJhbmNoJyAnCisJZ2l0IGNoZWNrb3V0IHRvcGljXiAmJgorCWdpdCByZWJhc2UgbWFzdGVyIHRvcGljID5vdXQgJiYKKwl0ZXN0X2kxOG5ncmVwICJDdXJyZW50IGJyYW5jaCB0b3BpYyBpcyB1cCB0byBkYXRlIiBvdXQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIGZhc3QtZm9yd2FyZCB0byBtYXN0ZXInICcKKwlnaXQgY2hlY2tvdXQgdG9waWNeICYmCisJZ2l0IHJlYmFzZSB0b3BpYyA+b3V0ICYmCisJdGVzdF9pMThuZ3JlcCAiRmFzdC1mb3J3YXJkZWQgSEVBRCB0byB0b3BpYyIgb3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlYmFzZSAtLXN0YXQnICcKZGlmZiAtLWdpdCBhL3QvdDM0MDktcmViYXNlLXByZXNlcnZlLW1lcmdlcy5zaCBiL3QvdDM0MDktcmViYXNlLXByZXNlcnZlLW1lcmdlcy5zaAppbmRleCA2ZGU0ZTIyLi4yZTBjMzY0IDEwMDc1NQotLS0gYS90L3QzNDA5LXJlYmFzZS1wcmVzZXJ2ZS1tZXJnZXMuc2gKKysrIGIvdC90MzQwOS1yZWJhc2UtcHJlc2VydmUtbWVyZ2VzLnNoCkBAIC0xMSwxNCArMTEsNiBAQAogR0lUX0FVVEhPUl9FTUFJTD1ib2d1c19lbWFpbF9hZGRyZXNzCiBleHBvcnQgR0lUX0FVVEhPUl9FTUFJTAogCi0jIENsb25lIDEgKHRyaXZpYWwgbWVyZ2UpOgotIwotIyBBMS0tQTIgIDwtLSBvcmlnaW4vbWFzdGVyCi0jICBcICAgXAotIyAgIEIxLS1NICA8LS0gdG9waWMKLSMgICAgXAotIyAgICAgQjIgIDwtLSBvcmlnaW4vdG9waWMKLSMKICMgQ2xvbmUgMiAoY29uZmxpY3RpbmcgbWVyZ2UpOgogIwogIyBBMS0tQTItLUIzICAgPC0tIG9yaWdpbi9tYXN0ZXIKQEAgLTM2LDE2ICsyOCw2IEBACiAjICAgICBcLS1BMyAgICA8LS0gdG9waWMyCiAjICAgICAgXAogIyAgICAgICBCMiAgICAgPC0tIG9yaWdpbi90b3BpYwotIwotIyBDbG9uZSA0IChtZXJnZSB1c2luZyBzZWNvbmQgcGFyZW50IGFzIGJhc2UpOgotIwotIyBBMS0tQTItLUIzICAgPC0tIG9yaWdpbi9tYXN0ZXIKLSMgIFwKLSMgICBCMS0tQTMtLU0gIDwtLSB0b3BpYwotIyAgICBcICAgICAvCi0jICAgICBcLS1BNCAgICA8LS0gdG9waWMyCi0jICAgICAgXAotIyAgICAgICBCMiAgICAgPC0tIG9yaWdpbi90b3BpYwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBmb3IgbWVyZ2UtcHJlc2VydmluZyByZWJhc2UnIFwKIAknZWNobyBGaXJzdCA+IEEgJiYKQEAgLTU4LDIwICs0MCw2IEBACiAJZ2l0IGNoZWNrb3V0IC1mIG1hc3RlciAmJgogCWVjaG8gVGhpcmQgPj4gQSAmJgogCWdpdCBjb21taXQgLWEgLW0gIk1vZGlmeSBBMiIgJiYKLQotCWdpdCBjbG9uZSAuLy4gY2xvbmUxICYmCi0JKGNkIGNsb25lMSAmJgotCWdpdCBjaGVja291dCAtYiB0b3BpYyBvcmlnaW4vdG9waWMgJiYKLQlnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlcgotCSkgJiYKLQotCWdpdCBjbG9uZSAuLy4gY2xvbmU0ICYmCi0JKAotCQljZCBjbG9uZTQgJiYKLQkJZ2l0IGNoZWNrb3V0IC1iIHRvcGljIG9yaWdpbi90b3BpYyAmJgotCQlnaXQgbWVyZ2Ugb3JpZ2luL21hc3RlcgotCSkgJiYKLQogCWVjaG8gRmlmdGggPiBCICYmCiAJZ2l0IGFkZCBCICYmCiAJZ2l0IGNvbW1pdCAtbSAiQWRkIGRpZmZlcmVudCBCIiAmJgpAQCAtMTAxLDE2ICs2OSw2IEBACiAJZ2l0IGNvbW1pdCAtYSAtbSAiTW9kaWZ5IEIyIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWJhc2UgLXAgZmFrZXMgaW50ZXJhY3RpdmUgcmViYXNlJyAnCi0JKAotCWNkIGNsb25lMSAmJgotCWdpdCBmZXRjaCAmJgotCWdpdCByZWJhc2UgLXAgb3JpZ2luL3RvcGljICYmCi0JdGVzdCAxID0gJChnaXQgcmV2LWxpc3QgLS1hbGwgLS1wcmV0dHk9b25lbGluZSB8IGdyZXAgIk1vZGlmeSBBIiB8IHdjIC1sKSAmJgotCXRlc3QgMSA9ICQoZ2l0IHJldi1saXN0IC0tYWxsIC0tcHJldHR5PW9uZWxpbmUgfCBncmVwICJNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICIgfCB3YyAtbCkKLQkpCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tY29udGludWUgd29ya3MgYWZ0ZXIgYSBjb25mbGljdCcgJwogCSgKIAljZCBjbG9uZTIgJiYKQEAgLTEzOCwxNSArOTYsNCBAQAogCSkKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAncmViYXNlIC1wIHdvcmtzIHdoZW4gYmFzZSBpbnNpZGUgc2Vjb25kIHBhcmVudCcgJwotCSgKLQljZCBjbG9uZTQgJiYKLQlnaXQgZmV0Y2ggJiYKLQlnaXQgcmViYXNlIC1wIEhFQUReMiAmJgotCXRlc3QgMSA9ICQoZ2l0IHJldi1saXN0IC0tYWxsIC0tcHJldHR5PW9uZWxpbmUgfCBncmVwICJNb2RpZnkgQSIgfCB3YyAtbCkgJiYKLQl0ZXN0IDEgPSAkKGdpdCByZXYtbGlzdCAtLWFsbCAtLXByZXR0eT1vbmVsaW5lIHwgZ3JlcCAiTW9kaWZ5IEIiIHwgd2MgLWwpICYmCi0JdGVzdCAxID0gJChnaXQgcmV2LWxpc3QgLS1hbGwgLS1wcmV0dHk9b25lbGluZSB8IGdyZXAgIk1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggIiB8IHdjIC1sKQotCSkKLScKLQogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNDE1LXJlYmFzZS1hdXRvc3F1YXNoLnNoIGIvdC90MzQxNS1yZWJhc2UtYXV0b3NxdWFzaC5zaAppbmRleCBhMWU4NmM0Li40MTM3MGFiIDEwMDc1NQotLS0gYS90L3QzNDE1LXJlYmFzZS1hdXRvc3F1YXNoLnNoCisrKyBiL3QvdDM0MTUtcmViYXNlLWF1dG9zcXVhc2guc2gKQEAgLTQsNiArNCw4IEBACiAKIC4gLi90ZXN0LWxpYi5zaAogCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJZWNobyAwID5maWxlMCAmJgogCWdpdCBhZGQgLiAmJgpAQCAtMTkzLDQgKzE5NSw1OSBAQAogCXRlc3RfYXV0b19jb21taXRfZmxhZ3Mgc3F1YXNoIDIKICcKIAordGVzdF9hdXRvX2ZpeHVwX2ZpeHVwICgpIHsKKwlnaXQgcmVzZXQgLS1oYXJkIGJhc2UgJiYKKwllY2hvIDEgPmZpbGUxICYmCisJZ2l0IGFkZCAtdSAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gIiQxISBmaXJzdCIgJiYKKwllY2hvIDIgPmZpbGUxICYmCisJZ2l0IGFkZCAtdSAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gIiQxISAkMiEgZmlyc3QiICYmCisJZ2l0IHRhZyAiZmluYWwtJDEtJDIiICYmCisJdGVzdF90aWNrICYmCisJKAorCQlzZXRfY2F0X3RvZG9fZWRpdG9yICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UgLS1hdXRvc3F1YXNoIC1pIEhFQUReXl5eID5hY3R1YWwgJiYKKwkJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwkJcGljayAkKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEXl5eKSBmaXJzdCBjb21taXQKKwkJJDEgJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRF4pICQxISBmaXJzdAorCQkkMSAkKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEKSAkMSEgJDIhIGZpcnN0CisJCXBpY2sgJChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRF5eKSBzZWNvbmQgY29tbWl0CisJCUVPRgorCQl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwkpICYmCisJZ2l0IHJlYmFzZSAtLWF1dG9zcXVhc2ggLWkgSEVBRF5eXl4gJiYKKwlnaXQgbG9nIC0tb25lbGluZSA+YWN0dWFsICYmCisJdGVzdF9saW5lX2NvdW50ID0gMyBhY3R1YWwKKwlnaXQgZGlmZiAtLWV4aXQtY29kZSAiZmluYWwtJDEtJDIiICYmCisJdGVzdCAyID0gIiQoZ2l0IGNhdC1maWxlIGJsb2IgSEVBRF46ZmlsZTEpIiAmJgorCWlmIHRlc3QgIiQxIiA9ICJmaXh1cCIKKwl0aGVuCisJCXRlc3QgMSA9ICQoZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEXiB8IGdyZXAgZmlyc3QgfCB3YyAtbCkKKwllbGlmIHRlc3QgIiQxIiA9ICJzcXVhc2giCisJdGhlbgorCQl0ZXN0IDMgPSAkKGdpdCBjYXQtZmlsZSBjb21taXQgSEVBRF4gfCBncmVwIGZpcnN0IHwgd2MgLWwpCisJZWxzZQorCQlmYWxzZQorCWZpCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpeHVwISBmaXh1cCEnICcKKwl0ZXN0X2F1dG9fZml4dXBfZml4dXAgZml4dXAgZml4dXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZml4dXAhIHNxdWFzaCEnICcKKwl0ZXN0X2F1dG9fZml4dXBfZml4dXAgZml4dXAgc3F1YXNoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NxdWFzaCEgc3F1YXNoIScgJworCXRlc3RfYXV0b19maXh1cF9maXh1cCBzcXVhc2ggc3F1YXNoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NxdWFzaCEgZml4dXAhJyAnCisJdGVzdF9hdXRvX2ZpeHVwX2ZpeHVwIHNxdWFzaCBmaXh1cAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjAtcmViYXNlLWF1dG9zdGFzaC5zaCBiL3QvdDM0MjAtcmViYXNlLWF1dG9zdGFzaC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MGViMjY0Ci0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyMC1yZWJhc2UtYXV0b3N0YXNoLnNoCkBAIC0wLDAgKzEsMTcwIEBACisjIS9iaW4vc2gKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIFJhbWt1bWFyIFJhbWFjaGFuZHJhCisjCisKK3Rlc3RfZGVzY3JpcHRpb249J2dpdCByZWJhc2UgLS1hdXRvc3Rhc2ggdGVzdHMnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCisJZWNobyBoZWxsby13b3JsZCA+ZmlsZTAgJiYKKwlnaXQgYWRkIC4gJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgZmVhdHVyZS1icmFuY2ggJiYKKwllY2hvIGFub3RoZXItaGVsbG8gPmZpbGUxICYmCisJZWNobyBnb29kYnllID5maWxlMiAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInNlY29uZCBjb21taXQiICYmCisJZWNobyBmaW5hbC1nb29kYnllID5maWxlMyAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInRoaXJkIGNvbW1pdCIgJiYKKwlnaXQgY2hlY2tvdXQgLWIgdW5yZWxhdGVkLW9udG8tYnJhbmNoIG1hc3RlciAmJgorCWVjaG8gdW5yZWxhdGVkID5maWxlNCAmJgorCWdpdCBhZGQgLiAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLW0gInVucmVsYXRlZCBjb21taXQiICYmCisJZ2l0IGNoZWNrb3V0IC1iIHJlbGF0ZWQtb250by1icmFuY2ggbWFzdGVyICYmCisJZWNobyBjb25mbGljdGluZy1jaGFuZ2UgPmZpbGUyICYmCisJZ2l0IGFkZCAuICYmCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtbSAicmVsYXRlZCBjb21taXQiCisnCisKK3Rlc3RyZWJhc2UoKSB7CisJdHlwZT0kMQorCWRvdGVzdD0kMgorCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlJHR5cGU6IGRpcnR5IHdvcmt0cmVlLCBub24tY29uZmxpY3RpbmcgcmViYXNlIiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCWdpdCByZWJhc2UkdHlwZSB1bnJlbGF0ZWQtb250by1icmFuY2ggJiYKKwkJZ3JlcCB1bnJlbGF0ZWQgZmlsZTQgJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogZGlydHkgaW5kZXgsIG5vbi1jb25mbGljdGluZyByZWJhc2UiICcKKwkJdGVzdF9jb25maWcgcmViYXNlLmF1dG9zdGFzaCB0cnVlICYmCisJCWdpdCByZXNldCAtLWhhcmQgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggZmVhdHVyZS1icmFuY2ggJiYKKwkJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCAmJgorCQllY2hvIGRpcnR5ID4+ZmlsZTMgJiYKKwkJZ2l0IGFkZCBmaWxlMyAmJgorCQlnaXQgcmViYXNlJHR5cGUgdW5yZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCWdyZXAgdW5yZWxhdGVkIGZpbGU0ICYmCisJCWdyZXAgZGlydHkgZmlsZTMgJiYKKwkJZ2l0IGNoZWNrb3V0IGZlYXR1cmUtYnJhbmNoCisJJworCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlJHR5cGU6IGNvbmZsaWN0aW5nIHJlYmFzZSIgJworCQl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCQl0ZXN0X3doZW5fZmluaXNoZWQgZ2l0IGJyYW5jaCAtRCByZWJhc2VkLWZlYXR1cmUtYnJhbmNoICYmCisJCWVjaG8gZGlydHkgPj5maWxlMyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlJHR5cGUgcmVsYXRlZC1vbnRvLWJyYW5jaCAmJgorCQl0ZXN0X3BhdGhfaXNfZmlsZSAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQkhIGdyZXAgZGlydHkgZmlsZTMgJiYKKwkJcm0gLXJmICRkb3Rlc3QgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogLS1jb250aW51ZSIgJworCQl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCQl0ZXN0X3doZW5fZmluaXNoZWQgZ2l0IGJyYW5jaCAtRCByZWJhc2VkLWZlYXR1cmUtYnJhbmNoICYmCisJCWVjaG8gZGlydHkgPj5maWxlMyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlJHR5cGUgcmVsYXRlZC1vbnRvLWJyYW5jaCAmJgorCQl0ZXN0X3BhdGhfaXNfZmlsZSAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQkhIGdyZXAgZGlydHkgZmlsZTMgJiYKKwkJZWNobyAiY29uZmxpY3RpbmctcGx1cy1nb29kYnllIiA+ZmlsZTIgJiYKKwkJZ2l0IGFkZCBmaWxlMiAmJgorCQlnaXQgcmViYXNlIC0tY29udGludWUgJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdC9hdXRvc3Rhc2ggJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogLS1za2lwIiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UkdHlwZSByZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCXRlc3RfcGF0aF9pc19maWxlICRkb3Rlc3QvYXV0b3N0YXNoICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgcmViYXNlIC0tc2tpcCAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAkZG90ZXN0L2F1dG9zdGFzaCAmJgorCQlncmVwIGRpcnR5IGZpbGUzICYmCisJCWdpdCBjaGVja291dCBmZWF0dXJlLWJyYW5jaAorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSR0eXBlOiAtLWFib3J0IiAnCisJCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdpdCBjaGVja291dCAtYiByZWJhc2VkLWZlYXR1cmUtYnJhbmNoIGZlYXR1cmUtYnJhbmNoICYmCisJCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggJiYKKwkJZWNobyBkaXJ0eSA+PmZpbGUzICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UkdHlwZSByZWxhdGVkLW9udG8tYnJhbmNoICYmCisJCXRlc3RfcGF0aF9pc19maWxlICRkb3Rlc3QvYXV0b3N0YXNoICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgcmViYXNlIC0tYWJvcnQgJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdC9hdXRvc3Rhc2ggJiYKKwkJZ3JlcCBkaXJ0eSBmaWxlMyAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKwknCisKKwl0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UkdHlwZTogbm9uLWNvbmZsaWN0aW5nIHJlYmFzZSwgY29uZmxpY3Rpbmcgc3Rhc2giICcKKwkJdGVzdF9jb25maWcgcmViYXNlLmF1dG9zdGFzaCB0cnVlICYmCisJCWdpdCByZXNldCAtLWhhcmQgJiYKKwkJZ2l0IGNoZWNrb3V0IC1iIHJlYmFzZWQtZmVhdHVyZS1icmFuY2ggZmVhdHVyZS1icmFuY2ggJiYKKwkJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgcmViYXNlZC1mZWF0dXJlLWJyYW5jaCAmJgorCQllY2hvIGRpcnR5ID5maWxlNCAmJgorCQlnaXQgYWRkIGZpbGU0ICYmCisJCWdpdCByZWJhc2UkdHlwZSB1bnJlbGF0ZWQtb250by1icmFuY2ggJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgJGRvdGVzdCAmJgorCQlnaXQgcmVzZXQgLS1oYXJkICYmCisJCWdyZXAgdW5yZWxhdGVkIGZpbGU0ICYmCisJCSEgZ3JlcCBkaXJ0eSBmaWxlNCAmJgorCQlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2ggJiYKKwkJZ2l0IHN0YXNoIHBvcCAmJgorCQlncmVwIGRpcnR5IGZpbGU0CisJJworfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2U6IGZhc3QtZm9yd2FyZCByZWJhc2UiICcKKwl0ZXN0X2NvbmZpZyByZWJhc2UuYXV0b3N0YXNoIHRydWUgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IGNoZWNrb3V0IC1iIGJlaGluZC1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaH4xICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkIGdpdCBicmFuY2ggLUQgYmVoaW5kLWZlYXR1cmUtYnJhbmNoICYmCisJZWNobyBkaXJ0eSA+PmZpbGUxICYmCisJZ2l0IHJlYmFzZSBmZWF0dXJlLWJyYW5jaCAmJgorCWdyZXAgZGlydHkgZmlsZTEgJiYKKwlnaXQgY2hlY2tvdXQgZmVhdHVyZS1icmFuY2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlOiBub29wIHJlYmFzZSIgJworCXRlc3RfY29uZmlnIHJlYmFzZS5hdXRvc3Rhc2ggdHJ1ZSAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgY2hlY2tvdXQgLWIgc2FtZS1mZWF0dXJlLWJyYW5jaCBmZWF0dXJlLWJyYW5jaCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgYnJhbmNoIC1EIHNhbWUtZmVhdHVyZS1icmFuY2ggJiYKKwllY2hvIGRpcnR5ID4+ZmlsZTEgJiYKKwlnaXQgcmViYXNlIGZlYXR1cmUtYnJhbmNoICYmCisJZ3JlcCBkaXJ0eSBmaWxlMSAmJgorCWdpdCBjaGVja291dCBmZWF0dXJlLWJyYW5jaAorJworCit0ZXN0cmViYXNlICIiIC5naXQvcmViYXNlLWFwcGx5Cit0ZXN0cmViYXNlICIgLS1tZXJnZSIgLmdpdC9yZWJhc2UtbWVyZ2UKK3Rlc3RyZWJhc2UgIiAtLWludGVyYWN0aXZlIiAuZ2l0L3JlYmFzZS1tZXJnZQorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjEtcmViYXNlLXRvcG9sb2d5LWxpbmVhci5zaCBiL3QvdDM0MjEtcmViYXNlLXRvcG9sb2d5LWxpbmVhci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YzU1Y2JhCi0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyMS1yZWJhc2UtdG9wb2xvZ3ktbGluZWFyLnNoCkBAIC0wLDAgKzEsMzUwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0nYmFzaWMgcmViYXNlIHRvcG9sb2d5IHRlc3RzJworLiAuL3Rlc3QtbGliLnNoCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKworIyBhLS0tYi0tLWMKKyMgICAgICBcCisjICAgICAgIGQtLS1lCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCXRlc3RfY29tbWl0IGEgJiYKKwl0ZXN0X2NvbW1pdCBiICYmCisJdGVzdF9jb21taXQgYyAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZCAmJgorCXRlc3RfY29tbWl0IGUKKycKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInNpbXBsZSByZWJhc2UgJCoiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogYyBlICYmCisJCXRlc3RfY21wX3JldiBjIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBlJyBjLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGlzIG5vLW9wIGlmIHVwc3RyZWFtIGlzIGFuIGFuY2VzdG9yIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGIgZSAmJgorCQl0ZXN0X2NtcF9yZXYgZSBIRUFECisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtZiByZXdyaXRlcyBldmVuIGlmIHVwc3RyZWFtIGlzIGFuIGFuY2VzdG9yIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC1mIGIgZSAmJgorCQkhIHRlc3RfY21wX3JldiBlIEhFQUQgJiYKKwkJdGVzdF9jbXBfcmV2IGIgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICdkIGUnIGIuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogZmFzdC1mb3J3YXJkcyBmcm9tIGFuY2VzdG9yIG9mIHVwc3RyZWFtIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGUgYiAmJgorCQl0ZXN0X2NtcF9yZXYgZSBIRUFECisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKworIyAgICAgICBmCisjICAgICAgLworIyBhLS0tYi0tLWMtLS1nLS0taAorIyAgICAgIFwKKyMgICAgICAgZC0tLWdwLS1pCisjCisjIGdwID0gY2hlcnJ5LXBpY2tlZCBnCisjIGggPSByZXZlcnRlZCBnCisjCisjIFJldmVydGVkIHBhdGNoZXMgYXJlIHRoZXJlIGZvciB0ZXN0cyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIGEgY29tbWl0CisjIHRoYXQgaW50cm9kdWNlZCB0aGUgc2FtZSBjaGFuZ2UgYXMgYW5vdGhlciBjb21taXQgaXMKKyMgZHJvcHBlZC4gV2l0aG91dCByZXZlcnRlZCBjb21taXRzLCB3ZSBjb3VsZCBnZXQgZmFsc2UgcG9zaXRpdmVzCisjIGJlY2F1c2UgYXBwbHlpbmcgdGhlIHBhdGNoIHN1Y2NlZWRzLCBidXQgc2ltcGx5IHJlc3VsdHMgaW4gbm8KKyMgY2hhbmdlcy4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIGxpbmVhciBoaXN0b3J5IGZvciByYW5nZSBzZWxlY3Rpb24gdGVzdHMnICcKKwlnaXQgY2hlY2tvdXQgYyAmJgorCXRlc3RfY29tbWl0IGcgJiYKKwlyZXZlcnQgaCBnICYmCisJZ2l0IGNoZWNrb3V0IGQgJiYKKwljaGVycnlfcGljayBncCBnICYmCisJdGVzdF9jb21taXQgaSAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZgorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGRyb3BzIHBhdGNoZXMgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogaCBpICYmCisJCXRlc3RfY21wX3JldiBoIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBpJyBoLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGNhbiBkcm9wIGxhc3QgcGF0Y2ggaWYgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogaCBncCAmJgorCQl0ZXN0X2NtcF9yZXYgaCBIRUFEXiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnZCcgaC4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLW9udG8gZHJvcHMgcGF0Y2hlcyBpbiB1cHN0cmVhbSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiAtLW9udG8gZiBoIGkgJiYKKwkJdGVzdF9jbXBfcmV2IGYgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICdkIGknIGYuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1vbnRvIGRvZXMgbm90IGRyb3AgcGF0Y2hlcyBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBoIGYgaSAmJgorCQl0ZXN0X2NtcF9yZXYgaCBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgZ3AgaScgaC4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKworIyBhLS0tYi0tLWMtLS1qIQorIyAgICAgIFwKKyMgICAgICAgZC0tLWshLS1sCisjCisjICEgPSBlbXB0eQordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgb2YgbGluZWFyIGhpc3RvcnkgZm9yIGVtcHR5IGNvbW1pdCB0ZXN0cycgJworCWdpdCBjaGVja291dCBjICYmCisJbWFrZV9lbXB0eSBqICYmCisJZ2l0IGNoZWNrb3V0IGQgJiYKKwltYWtlX2VtcHR5IGsgJiYKKwl0ZXN0X2NvbW1pdCBsCisnCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogZHJvcHMgZW1wdHkgY29tbWl0IiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgbCAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjIgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgbCcgYy4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLWtlZXAtZW1wdHkiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1rZWVwLWVtcHR5IGMgbCAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgayBsJyBjLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtcAorCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIC0ta2VlcC1lbXB0eSBrZWVwcyBlbXB0eSBldmVuIGlmIGFscmVhZHkgaW4gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1rZWVwLWVtcHR5IGogbCAmJgorCQl0ZXN0X2NtcF9yZXYgaiBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgayBsJyBqLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLW0KK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1pCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtcAorCisjICAgICAgIG0KKyMgICAgICAvCisjIGEtLS1iLS0tYy0tLWcKKyMKKyMgeC0tLXktLS1icAorIworIyBicCA9IGNoZXJyeS1waWNrZWQgYgorIyBtID0gcmV2ZXJ0ZWQgYgorIworIyBSZXZlcnRlZCBwYXRjaGVzIGFyZSB0aGVyZSBmb3IgdGVzdHMgdG8gYmUgYWJsZSB0byBjaGVjayBpZiBhIGNvbW1pdAorIyB0aGF0IGludHJvZHVjZWQgdGhlIHNhbWUgY2hhbmdlIGFzIGFub3RoZXIgY29tbWl0IGlzCisjIGRyb3BwZWQuIFdpdGhvdXQgcmV2ZXJ0ZWQgY29tbWl0cywgd2UgY291bGQgZ2V0IGZhbHNlIHBvc2l0aXZlcworIyBiZWNhdXNlIGFwcGx5aW5nIHRoZSBwYXRjaCBzdWNjZWVkcywgYnV0IHNpbXBseSByZXN1bHRzIGluIG5vCisjIGNoYW5nZXMuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBsaW5lYXIgaGlzdG9yeSBmb3IgdGVzdCBpbnZvbHZpbmcgcm9vdCcgJworCWdpdCBjaGVja291dCBiICYmCisJcmV2ZXJ0IG0gYiAmJgorCWdpdCBjaGVja291dCAtLW9ycGhhbiBkaXNqb2ludCAmJgorCWdpdCBybSAtcmYgLiAmJgorCXRlc3RfY29tbWl0IHggJiYKKwl0ZXN0X2NvbW1pdCB5ICYmCisJY2hlcnJ5X3BpY2sgYnAgYgorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIC0tb250byAtLXJvb3QiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1vbnRvIGMgLS1yb290IHkgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIGMuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogd2l0aG91dCAtLW9udG8gLS1yb290IHdpdGggZGlzam9pbnQgaGlzdG9yeSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiBjIHkgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIGMuLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1vbnRvIC0tcm9vdCBkcm9wcyBwYXRjaCBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBtIC0tcm9vdCBicCAmJgorCQl0ZXN0X2NtcF9yZXYgbSBIRUFEfjIgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgJ3ggeScgbS4uCisJIgorfQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJycKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtaQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLXAKKwordGVzdF9ydW5fcmViYXNlICgpIHsKKwlyZXN1bHQ9JDEKKwlzaGlmdAorCXRlc3RfZXhwZWN0XyRyZXN1bHQgInJlYmFzZSAkKiAtLW9udG8gLS1yb290IHdpdGggbWVyZ2UtYmFzZSBkb2VzIG5vdCBnbyB0byByb290IiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIC0tb250byBtIC0tcm9vdCBnICYmCisJCXRlc3RfY21wX3JldiBtIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnYyBnJyBtLi4KKwkiCit9CisKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogd2l0aG91dCAtLW9udG8gLS1yb290IHdpdGggZGlzam9pbnQgaGlzdG9yeSBkcm9wcyBwYXRjaCBpbiBvbnRvIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIG0gYnAgJiYKKwkJdGVzdF9jbXBfcmV2IG0gSEVBRH4yICYmCisJCXRlc3RfbGluZWFyX3JhbmdlICd4IHknIG0uLgorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLS1yb290IG9uIGxpbmVhciBoaXN0b3J5IGlzIGEgbm8tb3AiICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogLS1yb290IGMgJiYKKwkJdGVzdF9jbXBfcmV2IGMgSEVBRAorCSIKK30KK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlICcnCit0ZXN0X3J1bl9yZWJhc2UgZmFpbHVyZSAtbQordGVzdF9ydW5fcmViYXNlIGZhaWx1cmUgLWkKK3Rlc3RfcnVuX3JlYmFzZSBmYWlsdXJlIC1wCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwl0ZXN0X2V4cGVjdF8kcmVzdWx0ICJyZWJhc2UgJCogLWYgLS1yb290IG9uIGxpbmVhciBoaXN0b3J5IGNhdXNlcyByZS13cml0ZSIgIgorCQlyZXNldF9yZWJhc2UgJiYKKwkJZ2l0IHJlYmFzZSAkKiAtZiAtLXJvb3QgYyAmJgorCQkhIHRlc3RfY21wX3JldiBhIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnYSBiIGMnIEhFQUQKKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAtcAorCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDM0MjUtcmViYXNlLXRvcG9sb2d5LW1lcmdlcy5zaCBiL3QvdDM0MjUtcmViYXNlLXRvcG9sb2d5LW1lcmdlcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDE5NWZiCi0tLSAvZGV2L251bGwKKysrIGIvdC90MzQyNS1yZWJhc2UtdG9wb2xvZ3ktbWVyZ2VzLnNoCkBAIC0wLDAgKzEsMjU4IEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ncmViYXNlIHRvcG9sb2d5IHRlc3RzIHdpdGggbWVyZ2VzJworLiAuL3Rlc3QtbGliLnNoCisuICIkVEVTVF9ESVJFQ1RPUlkiL2xpYi1yZWJhc2Uuc2gKKwordGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAoKSB7CisJZXhwZWN0ZWQ9IiQxIgorCXNoaWZ0CisJc2V0IC0tICQoZ2l0IGxvZyAtLWZvcm1hdD0lcyAtLW5vLXdhbGs9dW5zb3J0ZWQgIiRAIikKKwl0ZXN0ICIkZXhwZWN0ZWQiID0gIiQqIgorfQorCisjIGEtLS1iLS0tLS0tLS0tLS1jCisjICAgICAgXCAgICAgICAgICAgXAorIyAgICAgICBkLS0tLS0tLWUgICBcCisjICAgICAgICBcICAgICAgIFwgICBcCisjICAgICAgICAgbi0tLW8tLS13LS0tdgorIyAgICAgICAgICAgICAgXAorIyAgICAgICAgICAgICAgIHoKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIG5vbi1saW5lYXItaGlzdG9yeScgJworCXRlc3RfY29tbWl0IGEgJiYKKwl0ZXN0X2NvbW1pdCBiICYmCisJdGVzdF9jb21taXQgYyAmJgorCWdpdCBjaGVja291dCBiICYmCisJdGVzdF9jb21taXQgZCAmJgorCXRlc3RfY29tbWl0IGUKKworCWdpdCBjaGVja291dCBjICYmCisJdGVzdF9jb21taXQgZyAmJgorCXJldmVydCBoIGcgJiYKKwlnaXQgY2hlY2tvdXQgZCAmJgorCWNoZXJyeV9waWNrIGdwIGcgJiYKKwl0ZXN0X2NvbW1pdCBpICYmCisJZ2l0IGNoZWNrb3V0IGIgJiYKKwl0ZXN0X2NvbW1pdCBmCisKKwlnaXQgY2hlY2tvdXQgZCAmJgorCXRlc3RfY29tbWl0IG4gJiYKKwl0ZXN0X2NvbW1pdCBvICYmCisJdGVzdF9tZXJnZSB3IGUgJiYKKwl0ZXN0X21lcmdlIHYgYyAmJgorCWdpdCBjaGVja291dCBvICYmCisJdGVzdF9jb21taXQgegorJworCit0ZXN0X3J1bl9yZWJhc2UgKCkgeworCXJlc3VsdD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIGFmdGVyIG1lcmdlIGZyb20gdXBzdHJlYW0iICIKKwkJcmVzZXRfcmViYXNlICYmCisJCWdpdCByZWJhc2UgJCogZSB3ICYmCisJCXRlc3RfY21wX3JldiBlIEhFQUR+MiAmJgorCQl0ZXN0X2xpbmVhcl9yYW5nZSAnbiBvJyBlLi4KKwkiCit9Cit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnJwordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgLW0KK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBsaW5lYXJpemVkIGluIHBsYWNlIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGQgdyAmJgorCQl0ZXN0X2NtcF9yZXYgZCBIRUFEfjMgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgZC4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZSBuIG8nICcnCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZSBuIG8nIC1tCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnbiBvIGUnIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBsaW5lYXJpemVkIHVwc3RyZWFtIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgdyAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjQgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgYy4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZCBlIG4gbycgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICdkIGUgbiBvJyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJ2QgbiBvIGUnIC1pCisKK3Rlc3RfcnVuX3JlYmFzZSAoKSB7CisJcmVzdWx0PSQxCisJc2hpZnQKKwlleHBlY3RlZD0kMQorCXNoaWZ0CisJdGVzdF9leHBlY3RfJHJlc3VsdCAicmViYXNlICQqIG9mIG5vbi1saW5lYXIgaGlzdG9yeSB3aXRoIG1lcmdlcyBhZnRlciB1cHN0cmVhbSBtZXJnZSBpcyBsaW5lYXJpemVkIiAiCisJCXJlc2V0X3JlYmFzZSAmJgorCQlnaXQgcmViYXNlICQqIGMgdiAmJgorCQl0ZXN0X2NtcF9yZXYgYyBIRUFEfjQgJiYKKwkJdGVzdF9saW5lYXJfcmFuZ2UgIlwnIiRleHBlY3RlZCJcJyIgYy4uCisJIgorfQorI1RPRE86IG1ha2Ugb3JkZXIgY29uc2lzdGVudCBhY3Jvc3MgYWxsIGZsYXZvcnMgb2YgcmViYXNlCit0ZXN0X3J1bl9yZWJhc2Ugc3VjY2VzcyAnZCBlIG4gbycgJycKK3Rlc3RfcnVuX3JlYmFzZSBzdWNjZXNzICdkIGUgbiBvJyAtbQordGVzdF9ydW5fcmViYXNlIHN1Y2Nlc3MgJ2QgbiBvIGUnIC1pCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCBpcyBuby1vcCBpbiBub24tbGluZWFyIGhpc3RvcnkiICIKKwlyZXNldF9yZWJhc2UgJiYKKwlnaXQgcmViYXNlIC1wIGQgdyAmJgorCXRlc3RfY21wX3JldiB3IEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIGlzIG5vLW9wIHdoZW4gYmFzZSBpbnNpZGUgc2Vjb25kIHBhcmVudCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgZSB3ICYmCisJdGVzdF9jbXBfcmV2IHcgSEVBRAorIgorCit0ZXN0X2V4cGVjdF9mYWlsdXJlICJyZWJhc2UgLXAgLS1yb290IG9uIG5vbi1saW5lYXIgaGlzdG9yeSBpcyBhIG5vLW9wIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCAtLXJvb3QgdyAmJgorCXRlc3RfY21wX3JldiB3IEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgbWVyZ2UgZnJvbSBzaWRlIGJyYW5jaCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgeiB3ICYmCisJdGVzdF9jbXBfcmV2IHogSEVBRF4gJiYKKwl0ZXN0X2NtcF9yZXYgd14yIEhFQUReMgorIgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UgLXAgcmUtY3JlYXRlcyBpbnRlcm5hbCBtZXJnZSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgYyB3ICYmCisJdGVzdF9jbXBfcmV2IGMgSEVBRH40ICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4zICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBuIGUgbyB3JyBIRUFEfjMgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCBjYW4gcmUtY3JlYXRlIHR3byBicmFuY2hlcyBvbiBvbnRvIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCAtLW9udG8gYyBkIHcgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEXjJeICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnbiBlIG8gdycgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKKyMgICAgICAgZgorIyAgICAgIC8KKyMgYS0tLWItLS1jLS0tZy0tLWgKKyMgICAgICBcCisjICAgICAgIGQtLS1ncC0taQorIyAgICAgICAgXCAgICAgICBcCisjICAgICAgICAgZS0tLS0tLS11CisjCisjIGdwID0gY2hlcnJ5LXBpY2tlZCBnCisjIGggPSByZXZlcnRlZCBnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBub24tbGluZWFyLWhpc3RvcnkgZm9yIHBhdGNoLWVxdWl2YWxlbmNlIHRlc3RzJyAnCisJZ2l0IGNoZWNrb3V0IGUgJiYKKwl0ZXN0X21lcmdlIHUgaQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICJyZWJhc2UgLXAgcmUtY3JlYXRlcyBoaXN0b3J5IGFyb3VuZCBkcm9wcGVkIGNvbW1pdCBtYXRjaGluZyB1cHN0cmVhbSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgaCB1ICYmCisJdGVzdF9jbXBfcmV2IGggSEVBRH4zICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4yICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBpIGUgdScgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCAtLW9udG8gaW4gbWVyZ2VkIGhpc3RvcnkgZHJvcHMgcGF0Y2hlcyBpbiB1cHN0cmVhbSIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgLS1vbnRvIGYgaCB1ICYmCisJdGVzdF9jbXBfcmV2IGYgSEVBRH4zICYmCisJdGVzdF9jbXBfcmV2IEhFQUReMl4gSEVBRH4yICYmCisJdGVzdF9yZXZpc2lvbl9zdWJqZWN0cyAnZCBpIGUgdScgSEVBRH4yIEhFQUReMiBIRUFEXiBIRUFECisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgInJlYmFzZSAtcCAtLW9udG8gaW4gbWVyZ2VkIGhpc3RvcnkgZG9lcyBub3QgZHJvcCBwYXRjaGVzIGluIG9udG8iICIKKwlyZXNldF9yZWJhc2UgJiYKKwlnaXQgcmViYXNlIC1wIC0tb250byBoIGYgdSAmJgorCXRlc3RfY21wX3JldiBoIEhFQUR+MyAmJgorCXRlc3RfY21wX3JldiBIRUFEXjJ+MiBIRUFEfjIgJiYKKwl0ZXN0X3JldmlzaW9uX3N1YmplY3RzICdkIGdwIGkgZSB1JyBIRUFEfjIgSEVBRF4yXiBIRUFEXjIgSEVBRF4gSEVBRAorIgorCisjIGEtLS1iLS0tYy0tLWctLS1oCisjICAgICAgXAorIyAgICAgICBkLS0tZ3AtLXMKKyMgICAgICAgIFwgICBcIC8KKyMgICAgICAgICBcICAgWAorIyAgICAgICAgICBcIC8gXAorIyAgICAgICAgICAgZS0tLXQKKyMKKyMgZ3AgPSBjaGVycnktcGlja2VkIGcKKyMgaCA9IHJldmVydGVkIGcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG9mIG5vbi1saW5lYXItaGlzdG9yeSBmb3IgZHJvcHBpbmcgd2hvbGUgc2lkZScgJworCWdpdCBjaGVja291dCBncCAmJgorCXRlc3RfbWVyZ2UgcyBlICYmCisJZ2l0IGNoZWNrb3V0IGUgJiYKKwl0ZXN0X21lcmdlIHQgZ3AKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAicmViYXNlIC1wIGRyb3BzIG1lcmdlIGNvbW1pdCB3aGVuIGVudGlyZSBmaXJzdC1wYXJlbnQgc2lkZSBpcyBkcm9wcGVkIiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBoIHMgJiYKKwl0ZXN0X2NtcF9yZXYgaCBIRUFEfjIgJiYKKwl0ZXN0X2xpbmVhcl9yYW5nZSAnZCBlJyBoLi4KKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIGRyb3BzIG1lcmdlIGNvbW1pdCB3aGVuIGVudGlyZSBzZWNvbmQtcGFyZW50IHNpZGUgaXMgZHJvcHBlZCIgIgorCXJlc2V0X3JlYmFzZSAmJgorCWdpdCByZWJhc2UgLXAgaCB0ICYmCisJdGVzdF9jbXBfcmV2IGggSEVBRH4yICYmCisJdGVzdF9saW5lYXJfcmFuZ2UgJ2QgZScgaC4uCisiCisKKyMgYS0tLWItLS1jCisjICAgICAgXAorIyAgICAgICBkLS0tZQorIyAgICAgICAgXCAgIFwKKyMgICAgICAgICBuLS0tcgorIyAgICAgICAgICBcCisjICAgICAgICAgICBvCisjCisjIHIgPSB0cmVlLXNhbWUgd2l0aCBuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiBub24tbGluZWFyLWhpc3RvcnkgZm9yIGVtcHR5IGNvbW1pdHMnICcKKwlnaXQgY2hlY2tvdXQgbiAmJgorCWdpdCBtZXJnZSAtLW5vLWNvbW1pdCBlICYmCisJZ2l0IHJlc2V0IG4gLiAmJgorCWdpdCBjb21taXQgLW0gciAmJgorCWdpdCByZXNldCAtLWhhcmQgJiYKKwlnaXQgY2xlYW4gLWYgJiYKKwlnaXQgdGFnIHIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgZW1wdHkgaW50ZXJuYWwgbWVyZ2UgY29tbWl0IiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBjIHIgJiYKKwl0ZXN0X2NtcF9yZXYgYyBIRUFEfjMgJiYKKwl0ZXN0X2NtcF9yZXYgSEVBRF4yXiBIRUFEfjIgJiYKKwl0ZXN0X3JldmlzaW9uX3N1YmplY3RzICdkIGUgbiByJyBIRUFEfjIgSEVBRF4yIEhFQUReIEhFQUQKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAicmViYXNlIC1wIHJlLWNyZWF0ZXMgZW1wdHkgbWVyZ2UgY29tbWl0IiAiCisJcmVzZXRfcmViYXNlICYmCisJZ2l0IHJlYmFzZSAtcCBvIHIgJiYKKwl0ZXN0X2NtcF9yZXYgZSBIRUFEXjIgJiYKKwl0ZXN0X2NtcF9yZXYgbyBIRUFEXiAmJgorCXRlc3RfcmV2aXNpb25fc3ViamVjdHMgJ3InIEhFQUQKKyIKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3QzNTA1LWNoZXJyeS1waWNrLWVtcHR5LnNoIGIvdC90MzUwNS1jaGVycnktcGljay1lbXB0eS5zaAppbmRleCBhMGM2ZTMwLi5mYmRjNDdjIDEwMDc1NQotLS0gYS90L3QzNTA1LWNoZXJyeS1waWNrLWVtcHR5LnNoCisrKyBiL3QvdDM1MDUtY2hlcnJ5LXBpY2stZW1wdHkuc2gKQEAgLTI4LDI5ICsyOCwyMSBAQAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayBhbiBlbXB0eSBjb21taXQnICcKLQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmIHsKLQkJZ2l0IGNoZXJyeS1waWNrIGVtcHR5LWJyYW5jaF4KLQkJdGVzdCAiJD8iID0gMQotCX0KKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2heCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luZGV4IGxvY2tmaWxlIHdhcyByZW1vdmVkJyAnCi0KIAl0ZXN0ICEgLWYgLmdpdC9pbmRleC5sb2NrCi0KICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlcnJ5LXBpY2sgYSBjb21taXQgd2l0aCBhbiBlbXB0eSBtZXNzYWdlJyAnCi0JZ2l0IGNoZWNrb3V0IG1hc3RlciAmJiB7Ci0JCWdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2gKLQkJdGVzdCAiJD8iID0gMQotCX0KKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9leHBlY3RfY29kZSAxIGdpdCBjaGVycnktcGljayBlbXB0eS1icmFuY2gKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnaW5kZXggbG9ja2ZpbGUgd2FzIHJlbW92ZWQnICcKLQogCXRlc3QgISAtZiAuZ2l0L2luZGV4LmxvY2sKLQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVycnktcGljayBhIGNvbW1pdCB3aXRoIGFuIGVtcHR5IG1lc3NhZ2Ugd2l0aCAtLWFsbG93LWVtcHR5LW1lc3NhZ2UnICcKQEAgLTEwMSw3ICs5Myw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBmb3JrXjAgJiYKIAlnaXQgY2hlcnJ5LXBpY2sgLS1rZWVwLXJlZHVuZGFudC1jb21taXRzIG1hc3RlciAmJgotCWdpdCBzaG93IC1zIC0tZm9ybWF0PSclcycgPmFjdHVhbCAmJgorCWdpdCBzaG93IC1zIC0tZm9ybWF0PSVzID5hY3R1YWwgJiYKIAllY2hvICJhZGQgZmlsZTIgb24gbWFzdGVyIiA+ZXhwZWN0ICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwpkaWZmIC0tZ2l0IGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaCBiL3QvdDM1MDktY2hlcnJ5LXBpY2stbWVyZ2UtZGYuc2gKaW5kZXggZGY5MjFkMS4uYTViNmE1ZiAxMDA3NTUKLS0tIGEvdC90MzUwOS1jaGVycnktcGljay1tZXJnZS1kZi5zaAorKysgYi90L3QzNTA5LWNoZXJyeS1waWNrLW1lcmdlLWRmLnNoCkBAIC0xMCwxNyArMTAsMTUgQEAKIAlnaXQgY29tbWl0IC1tIGEKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnU2V0dXAgcmVuYW1lIGFjcm9zcyBwYXRocyBlYWNoIGJlbG93IEQvRiBjb25mbGljdHMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1NldHVwIHJlbmFtZSBhY3Jvc3MgcGF0aHMgZWFjaCBiZWxvdyBEL0YgY29uZmxpY3RzJyAnCiAJbWtkaXIgYiAmJgotCWxuIC1zIC4uL2EgYi9hICYmCi0JZ2l0IGFkZCBiICYmCisJdGVzdF9sbl9zX2FkZCAuLi9hIGIvYSAmJgogCWdpdCBjb21taXQgLW0gYiAmJgogCiAJZ2l0IGNoZWNrb3V0IC1iIGJyYW5jaCAmJgogCXJtIGIvYSAmJgotCW12IGEgYi9hICYmCi0JbG4gLXMgYi9hIGEgJiYKLQlnaXQgYWRkIC4gJiYKKwlnaXQgbXYgYSBiL2EgJiYKKwl0ZXN0X2xuX3NfYWRkIGIvYSBhICYmCiAJZ2l0IGNvbW1pdCAtbSBzd2FwICYmCiAKIAk+ZjEgJiYKQEAgLTI4LDcgKzI2LDcgQEAKIAlnaXQgY29tbWl0IC1tIGYxCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ0NoZXJyeS1waWNrIHN1Y2NlZWRzIHdpdGggcmVuYW1lIGFjcm9zcyBEL0YgY29uZmxpY3RzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdDaGVycnktcGljayBzdWNjZWVkcyB3aXRoIHJlbmFtZSBhY3Jvc3MgRC9GIGNvbmZsaWN0cycgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgY2hlcnJ5LXBpY2sgYnJhbmNoCmRpZmYgLS1naXQgYS90L3QzNjAwLXJtLnNoIGIvdC90MzYwMC1ybS5zaAppbmRleCAwYzQ0ZTlmLi41Yzg3YjU1IDEwMDc1NQotLS0gYS90L3QzNjAwLXJtLnNoCisrKyBiL3QvdDM2MDAtcm0uc2gKQEAgLTY4Nyw0ICs2ODcsMTAwIEBACiAJdGVzdF9wYXRoX2lzX2ZpbGUgZS9mCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciB0ZXN0aW5nIHJtIG1lc3NhZ2VzJyAnCisJPmJhci50eHQgJiYKKwk+Zm9vLnR4dCAmJgorCWdpdCBhZGQgYmFyLnR4dCBmb28udHh0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGVzIHdpdGggZGlmZmVyZW50IHN0YWdlZCBjb250ZW50JyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgc3RhZ2VkIGNvbnRlbnQgZGlmZmVyZW50IGZyb20gYm90aCB0aGUKKwlmaWxlIGFuZCB0aGUgSEVBRDoKKwkgICAgYmFyLnR4dAorCSAgICBmb28udHh0CisJKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKQorCUVPRgorCWVjaG8gY29udGVudDEgPmZvby50eHQgJiYKKwllY2hvIGNvbnRlbnQxID5iYXIudHh0ICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJtIGZvby50eHQgYmFyLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGVzIHdpdGggZGlmZmVyZW50IHN0YWdlZCBjb250ZW50IHdpdGhvdXQgaGludHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJZXJyb3I6IHRoZSBmb2xsb3dpbmcgZmlsZXMgaGF2ZSBzdGFnZWQgY29udGVudCBkaWZmZXJlbnQgZnJvbSBib3RoIHRoZQorCWZpbGUgYW5kIHRoZSBIRUFEOgorCSAgICBiYXIudHh0CisJICAgIGZvby50eHQKKwlFT0YKKwllY2hvIGNvbnRlbnQyID5mb28udHh0ICYmCisJZWNobyBjb250ZW50MiA+YmFyLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCAtYyBhZHZpY2Uucm1oaW50cz1mYWxzZSBybSBmb28udHh0IGJhci50eHQgMj5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBmaWxlIHdpdGggbG9jYWwgbW9kaWZpY2F0aW9uJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGxvY2FsIG1vZGlmaWNhdGlvbnM6CisJICAgIGZvby50eHQKKwkodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpCisJRU9GCisJZ2l0IGNvbW1pdCAtbSAidGVzdGluZyBybSAzIiAmJgorCWVjaG8gY29udGVudDMgPmZvby50eHQgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcm0gZm9vLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JtIGZpbGUgd2l0aCBsb2NhbCBtb2RpZmljYXRpb24gd2l0aG91dCBoaW50cycgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwllcnJvcjogdGhlIGZvbGxvd2luZyBmaWxlIGhhcyBsb2NhbCBtb2RpZmljYXRpb25zOgorCSAgICBiYXIudHh0CisJRU9GCisJZWNobyBjb250ZW50NCA+YmFyLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCAtYyBhZHZpY2Uucm1oaW50cz1mYWxzZSBybSBiYXIudHh0IDI+YWN0dWFsICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gZmlsZSB3aXRoIGNoYW5nZXMgaW4gdGhlIGluZGV4JyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoKKwkgICAgZm9vLnR4dAorCSh1c2UgLS1jYWNoZWQgdG8ga2VlcCB0aGUgZmlsZSwgb3IgLWYgdG8gZm9yY2UgcmVtb3ZhbCkKKwlFT0YKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyBjb250ZW50NSA+Zm9vLnR4dCAmJgorCWdpdCBhZGQgZm9vLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBybSBmb28udHh0IDI+YWN0dWFsICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncm0gZmlsZSB3aXRoIGNoYW5nZXMgaW4gdGhlIGluZGV4IHdpdGhvdXQgaGludHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJZXJyb3I6IHRoZSBmb2xsb3dpbmcgZmlsZSBoYXMgY2hhbmdlcyBzdGFnZWQgaW4gdGhlIGluZGV4OgorCSAgICBmb28udHh0CisJRU9GCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IC1jIGFkdmljZS5ybWhpbnRzPWZhbHNlIHJtIGZvby50eHQgMj5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdybSBmaWxlcyB3aXRoIHR3byBkaWZmZXJlbnQgZXJyb3JzJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIHN0YWdlZCBjb250ZW50IGRpZmZlcmVudCBmcm9tIGJvdGggdGhlCisJZmlsZSBhbmQgdGhlIEhFQUQ6CisJICAgIGZvbzEudHh0CisJKHVzZSAtZiB0byBmb3JjZSByZW1vdmFsKQorCWVycm9yOiB0aGUgZm9sbG93aW5nIGZpbGUgaGFzIGNoYW5nZXMgc3RhZ2VkIGluIHRoZSBpbmRleDoKKwkgICAgYmFyMS50eHQKKwkodXNlIC0tY2FjaGVkIHRvIGtlZXAgdGhlIGZpbGUsIG9yIC1mIHRvIGZvcmNlIHJlbW92YWwpCisJRU9GCisJZWNobyBjb250ZW50ID5mb28xLnR4dCAmJgorCWdpdCBhZGQgZm9vMS50eHQgJiYKKwllY2hvIGNvbnRlbnQ2ID5mb28xLnR4dCAmJgorCWVjaG8gY29udGVudDYgPmJhcjEudHh0ICYmCisJZ2l0IGFkZCBiYXIxLnR4dCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBybSBiYXIxLnR4dCBmb28xLnR4dCAyPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90MzcwMC1hZGQuc2ggYi90L3QzNzAwLWFkZC5zaAppbmRleCA4NzRiM2E2Li5hYWI4NmU4IDEwMDc1NQotLS0gYS90L3QzNzAwLWFkZC5zaAorKysgYi90L3QzNzAwLWFkZC5zaApAQCAtMzAsMTAgKzMwLDkgQEAKIAkgKikgZWNobyBmYWlsOyBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMTsgKGV4aXQgMSk7OwogCSBlc2FjJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdnaXQgYWRkOiBmaWxlbW9kZT0wIHNob3VsZCBub3QgZ2V0IGNvbmZ1c2VkIGJ5IHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhZGQ6IGZpbGVtb2RlPTAgc2hvdWxkIG5vdCBnZXQgY29uZnVzZWQgYnkgc3ltbGluaycgJwogCXJtIC1mIHhmb28xICYmCi0JbG4gLXMgZm9vIHhmb28xICYmCi0JZ2l0IGFkZCB4Zm9vMSAmJgorCXRlc3RfbG5fc19hZGQgZm9vIHhmb28xICYmCiAJY2FzZSAiYGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28xYCIgaW4KIAkxMjAwMDAiICIqeGZvbzEpIGVjaG8gcGFzczs7CiAJKikgZWNobyBmYWlsOyBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMTsgKGV4aXQgMSk7OwpAQCAtNTEsMjEgKzUwLDE5IEBACiAJICopIGVjaG8gZmFpbDsgZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgeGZvbzI7IChleGl0IDEpOzsKIAkgZXNhYycKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IGFkZDogZmlsZW1vZGU9MCBzaG91bGQgbm90IGdldCBjb25mdXNlZCBieSBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgYWRkOiBmaWxlbW9kZT0wIHNob3VsZCBub3QgZ2V0IGNvbmZ1c2VkIGJ5IHN5bWxpbmsnICcKIAlybSAtZiB4Zm9vMiAmJgotCWxuIC1zIGZvbyB4Zm9vMiAmJgotCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgeGZvbzIgJiYKKwl0ZXN0X2xuX3NfYWRkIGZvbyB4Zm9vMiAmJgogCWNhc2UgImBnaXQgbHMtZmlsZXMgLS1zdGFnZSB4Zm9vMmAiIGluCiAJMTIwMDAwIiAiKnhmb28yKSBlY2hvIHBhc3M7OwogCSopIGVjaG8gZmFpbDsgZ2l0IGxzLWZpbGVzIC0tc3RhZ2UgeGZvbzI7IChleGl0IDEpOzsKIAllc2FjCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAJJ2dpdCB1cGRhdGUtaW5kZXggLS1hZGQ6IFRlc3QgdGhhdCBleGVjdXRhYmxlIGJpdCBpcyBub3QgdXNlZC4uLicgXAogCSdnaXQgY29uZmlnIGNvcmUuZmlsZW1vZGUgMCAmJgotCSBsbiAtcyB4Zm9vMiB4Zm9vMyAmJgotCSBnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHhmb28zICYmCisJIHRlc3RfbG5fc19hZGQgeGZvbzIgeGZvbzMgJiYJIyBydW5zIGdpdCB1cGRhdGUtaW5kZXggLS1hZGQKIAkgY2FzZSAiYGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28zYCIgaW4KIAkgMTIwMDAwIiAiKnhmb28zKSBlY2hvIHBhc3M7OwogCSAqKSBlY2hvIGZhaWw7IGdpdCBscy1maWxlcyAtLXN0YWdlIHhmb28zOyAoZXhpdCAxKTs7CmRpZmYgLS1naXQgYS90L3QzOTAwLWkxOG4tY29tbWl0LnNoIGIvdC90MzkwMC1pMThuLWNvbW1pdC5zaAppbmRleCAzN2RkYWJiLi40YmYxZGJlIDEwMDc1NQotLS0gYS90L3QzOTAwLWkxOG4tY29tbWl0LnNoCisrKyBiL3QvdDM5MDAtaTE4bi1jb21taXQuc2gKQEAgLTM0LDExICszNCw0NyBAQAogCXRlc3QgeiA9ICJ6JEUiCiAnCiAKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ1VURi0xNiByZWZ1c2VkIGJlY2F1c2Ugb2YgTlVMcycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTE2IHJlZnVzZWQgYmVjYXVzZSBvZiBOVUxzJyAnCiAJZWNobyBVVEYtMTYgPkYgJiYKLQlnaXQgY29tbWl0IC1hIC1GICIkVEVTVF9ESVJFQ1RPUlkiL3QzOTAwL1VURi0xNi50eHQKKwl0ZXN0X211c3RfZmFpbCBnaXQgY29tbWl0IC1hIC1GICIkVEVTVF9ESVJFQ1RPUlkiL3QzOTAwL1VURi0xNi50eHQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggaW52YWxpZCBjaGFyYWN0ZXJzIHJlZnVzZWQnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mICRIT01FL3N0ZGVyciAkSE9NRS9pbnZhbGlkIiAmJgorCWVjaG8gIlVURi04IGNoYXJhY3RlcnMiID5GICYmCisJcHJpbnRmICJDb21taXQgbWVzc2FnZVxuXG5JbnZhbGlkIHN1cnJvZ2F0ZTpcMzU1XDI0MFwyMDBcbiIgXAorCQk+IiRIT01FL2ludmFsaWQiICYmCisJZ2l0IGNvbW1pdCAtYSAtRiAiJEhPTUUvaW52YWxpZCIgMj4iJEhPTUUiL3N0ZGVyciAmJgorCWdyZXAgImRpZCBub3QgY29uZm9ybSIgIiRIT01FIi9zdGRlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggb3Zlcmxvbmcgc2VxdWVuY2VzIHJlamVjdGVkJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiAkSE9NRS9zdGRlcnIgJEhPTUUvaW52YWxpZCIgJiYKKwlybSAtZiAiJEhPTUUvc3RkZXJyIiAiJEhPTUUvaW52YWxpZCIgJiYKKwllY2hvICJVVEYtOCBvdmVybG9uZyIgPkYgJiYKKwlwcmludGYgIlwzNDBcMjAyXDI1MW9tbWl0IG1lc3NhZ2VcblxuVGhpcyBpcyBub3QgYSBzcGFjZTpcMzAwXDI0MFxuIiBcCisJCT4iJEhPTUUvaW52YWxpZCIgJiYKKwlnaXQgY29tbWl0IC1hIC1GICIkSE9NRS9pbnZhbGlkIiAyPiIkSE9NRSIvc3RkZXJyICYmCisJZ3JlcCAiZGlkIG5vdCBjb25mb3JtIiAiJEhPTUUiL3N0ZGVycgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdVVEYtOCBub24tY2hhcmFjdGVycyByZWZ1c2VkJyAnCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiAkSE9NRS9zdGRlcnIgJEhPTUUvaW52YWxpZCIgJiYKKwllY2hvICJVVEYtOCBub24tY2hhcmFjdGVyIDEiID5GICYmCisJcHJpbnRmICJDb21taXQgbWVzc2FnZVxuXG5Ob24tY2hhcmFjdGVyOlwzNjRcMjE3XDI3N1wyNzZcbiIgXAorCQk+IiRIT01FL2ludmFsaWQiICYmCisJZ2l0IGNvbW1pdCAtYSAtRiAiJEhPTUUvaW52YWxpZCIgMj4iJEhPTUUiL3N0ZGVyciAmJgorCWdyZXAgImRpZCBub3QgY29uZm9ybSIgIiRIT01FIi9zdGRlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnVVRGLTggbm9uLWNoYXJhY3RlcnMgcmVmdXNlZCcgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgJEhPTUUvc3RkZXJyICRIT01FL2ludmFsaWQiICYmCisJZWNobyAiVVRGLTggbm9uLWNoYXJhY3RlciAyLiIgPkYgJiYKKwlwcmludGYgIkNvbW1pdCBtZXNzYWdlXG5cbk5vbi1jaGFyYWN0ZXI6XDM1N1wyNjdcMjIwXG4iIFwKKwkJPiIkSE9NRS9pbnZhbGlkIiAmJgorCWdpdCBjb21taXQgLWEgLUYgIiRIT01FL2ludmFsaWQiIDI+IiRIT01FIi9zdGRlcnIgJiYKKwlncmVwICJkaWQgbm90IGNvbmZvcm0iICIkSE9NRSIvc3RkZXJyCisnCiAKIGZvciBIIGluIElTTzg4NTktMSBldWNKUCBJU08tMjAyMi1KUAogZG8KZGlmZiAtLWdpdCBhL3QvdDM5MDAvVVRGLTE2LnR4dCBiL3QvdDM5MDAvVVRGLTE2LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjU3ZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvdC90MzkwMC9VVEYtMTYudHh0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDM5MDMtc3Rhc2guc2ggYi90L3QzOTAzLXN0YXNoLnNoCmluZGV4IDVkZmJkYTcuLmRlYmRhN2EgMTAwNzU1Ci0tLSBhL3QvdDM5MDMtc3Rhc2guc2gKKysrIGIvdC90MzkwMy1zdGFzaC5zaApAQCAtMjAwLDE3ICsyMDAsMTcgQEAKIAllY2hvIGZvbyA+IGZpbGUgJiYKIAlnaXQgc3Rhc2ggJiYKIAlnaXQgc3Rhc2ggYXBwbHkgLXEgPiBvdXRwdXQub3V0IDI+JjEgJiYKLQl0ZXN0ICEgLXMgb3V0cHV0Lm91dAorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXRwdXQub3V0CiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NhdmUgLXEgaXMgcXVpZXQnICcKIAlnaXQgc3Rhc2ggc2F2ZSAtLXF1aWV0ID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwb3AgLXEgaXMgcXVpZXQnICcKIAlnaXQgc3Rhc2ggcG9wIC1xID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwb3AgLXEgLS1pbmRleCB3b3JrcyBhbmQgaXMgcXVpZXQnICcKQEAgLTIxOSwxMyArMjE5LDEzIEBACiAJZ2l0IHN0YXNoIHNhdmUgLS1xdWlldCAmJgogCWdpdCBzdGFzaCBwb3AgLXEgLS1pbmRleCA+IG91dHB1dC5vdXQgMj4mMSAmJgogCXRlc3QgZm9vID0gIiQoZ2l0IHNob3cgOmZpbGUpIiAmJgotCXRlc3QgISAtcyBvdXRwdXQub3V0CisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dHB1dC5vdXQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZHJvcCAtcSBpcyBxdWlldCcgJwogCWdpdCBzdGFzaCAmJgogCWdpdCBzdGFzaCBkcm9wIC1xID4gb3V0cHV0Lm91dCAyPiYxICYmCi0JdGVzdCAhIC1zIG91dHB1dC5vdXQKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0cHV0Lm91dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCAtaycgJwpAQCAtMzM2LDQxICszMzYsNTggQEAKIAogIyBUaGlzIHRlc3QgY3JlYXRlcyBhIGNvbW1pdCB3aXRoIGEgc3ltbGluayB1c2VkIGZvciB0aGUgZm9sbG93aW5nIHRlc3RzCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N0YXNoIHN5bWxpbmsgdG8gZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3Rhc2ggc3ltbGluayB0byBmaWxlJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgotCWxuIC1zIGZpbGUgZmlsZWxpbmsgJiYKLQlnaXQgYWRkIGZpbGVsaW5rICYmCisJdGVzdF9sbl9zX2FkZCBmaWxlIGZpbGVsaW5rICYmCiAJZ2l0IGNvbW1pdCAtbSAiQWRkIHN5bWxpbmsiICYmCiAJcm0gZmlsZWxpbmsgJiYKIAljcCBmaWxlIGZpbGVsaW5rICYmCi0JZ2l0IHN0YXNoIHNhdmUgInN5bWxpbmsgdG8gZmlsZSIgJiYKKwlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICd0aGlzIG11c3QgaGF2ZSByZS1jcmVhdGVkIHRoZSBzeW1saW5rJyAnCiAJdGVzdCAtaCBmaWxlbGluayAmJgotCWNhc2UgIiQobHMgLWwgZmlsZWxpbmspIiBpbiAqIiBmaWxlbGluayAtPiBmaWxlIikgOjs7ICopIGZhbHNlOzsgZXNhYyAmJgorCWNhc2UgIiQobHMgLWwgZmlsZWxpbmspIiBpbiAqIiBmaWxlbGluayAtPiBmaWxlIikgOjs7ICopIGZhbHNlOzsgZXNhYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1bnN0YXNoIG11c3QgcmUtY3JlYXRlIHRoZSBmaWxlJyAnCiAJZ2l0IHN0YXNoIGFwcGx5ICYmCiAJISB0ZXN0IC1oIGZpbGVsaW5rICYmCiAJdGVzdCBiYXIgPSAiJChjYXQgZmlsZSkiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N0YXNoIHN5bWxpbmsgdG8gZmlsZSAoc3RhZ2Ugcm0pJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKHN0YWdlIHJtKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgcm0gZmlsZWxpbmsgJiYKIAljcCBmaWxlIGZpbGVsaW5rICYmCi0JZ2l0IHN0YXNoIHNhdmUgInN5bWxpbmsgdG8gZmlsZSAoc3RhZ2Ugcm0pIiAmJgorCWdpdCBzdGFzaCBzYXZlICJzeW1saW5rIHRvIGZpbGUgKHN0YWdlIHJtKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAndGhpcyBtdXN0IGhhdmUgcmUtY3JlYXRlZCB0aGUgc3ltbGluaycgJwogCXRlc3QgLWggZmlsZWxpbmsgJiYKLQljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMgJiYKKwljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zdGFzaCBtdXN0IHJlLWNyZWF0ZSB0aGUgZmlsZScgJwogCWdpdCBzdGFzaCBhcHBseSAmJgogCSEgdGVzdCAtaCBmaWxlbGluayAmJgogCXRlc3QgYmFyID0gIiQoY2F0IGZpbGUpIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKGZ1bGwgc3RhZ2UpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGFzaCBzeW1saW5rIHRvIGZpbGUgKGZ1bGwgc3RhZ2UpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCXJtIGZpbGVsaW5rICYmCiAJY3AgZmlsZSBmaWxlbGluayAmJgogCWdpdCBhZGQgZmlsZWxpbmsgJiYKLQlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIChmdWxsIHN0YWdlKSIgJiYKKwlnaXQgc3Rhc2ggc2F2ZSAic3ltbGluayB0byBmaWxlIChmdWxsIHN0YWdlKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAndGhpcyBtdXN0IGhhdmUgcmUtY3JlYXRlZCB0aGUgc3ltbGluaycgJwogCXRlc3QgLWggZmlsZWxpbmsgJiYKLQljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMgJiYKKwljYXNlICIkKGxzIC1sIGZpbGVsaW5rKSIgaW4gKiIgZmlsZWxpbmsgLT4gZmlsZSIpIDo7OyAqKSBmYWxzZTs7IGVzYWMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndW5zdGFzaCBtdXN0IHJlLWNyZWF0ZSB0aGUgZmlsZScgJwogCWdpdCBzdGFzaCBhcHBseSAmJgogCSEgdGVzdCAtaCBmaWxlbGluayAmJgogCXRlc3QgYmFyID0gIiQoY2F0IGZpbGUpIgpAQCAtNjM3LDQgKzY1NCwyMyBAQAogCXRlc3RfY21wIG91dHB1dCBleHBlY3QKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RvcmUgY2FsbGVkIHdpdGggaW52YWxpZCBjb21taXQnICcKKwl0ZXN0X211c3RfZmFpbCBnaXQgc3Rhc2ggc3RvcmUgZm9vCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0b3JlIHVwZGF0ZXMgc3Rhc2ggcmVmIGFuZCByZWZsb2cnICcKKwlnaXQgc3Rhc2ggY2xlYXIgJiYKKwlnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyBxdXV4ID5iYXp6eSAmJgorCWdpdCBhZGQgYmF6enkgJiYKKwlTVEFTSF9JRD0kKGdpdCBzdGFzaCBjcmVhdGUpICYmCisJZ2l0IHJlc2V0IC0taGFyZCAmJgorCSEgZ3JlcCBxdXV4IGJhenp5ICYmCisJZ2l0IHN0YXNoIHN0b3JlIC1tIHF1dXhlcnkgJFNUQVNIX0lEICYmCisJdGVzdCAkKGNhdCAuZ2l0L3JlZnMvc3Rhc2gpID0gJFNUQVNIX0lEICYmCisJZ3JlcCAkU1RBU0hfSUQgLmdpdC9sb2dzL3JlZnMvc3Rhc2ggJiYKKwlnaXQgc3Rhc2ggcG9wICYmCisJZ3JlcCBxdXV4IGJhenp5CisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDAwMC1kaWZmLWZvcm1hdC5zaCBiL3QvdDQwMDAtZGlmZi1mb3JtYXQuc2gKaW5kZXggNmRkZDQ2OS4uOGRlMzZiNyAxMDA3NTUKLS0tIGEvdC90NDAwMC1kaWZmLWZvcm1hdC5zaAorKysgYi90L3Q0MDAwLWRpZmYtZm9ybWF0LnNoCkBAIC0xNSwxNyArMTUsMTcgQEAKIGNhdCBwYXRoMCA+cGF0aDEKIGNobW9kICt4IHBhdGgxCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd1cGRhdGUtaW5kZXggLS1hZGQgdHdvIGZpbGVzIHdpdGggYW5kIHdpdGhvdXQgK3guJyBcCi0gICAgJ2dpdCB1cGRhdGUtaW5kZXggLS1hZGQgcGF0aDAgcGF0aDEnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUtaW5kZXggLS1hZGQgdHdvIGZpbGVzIHdpdGggYW5kIHdpdGhvdXQgK3guJyAnCisJZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMCBwYXRoMQorJwogCiBtdiBwYXRoMCBwYXRoMC0KIHNlZCAtZSAncy9saW5lL0xpbmUvJyA8cGF0aDAtID5wYXRoMAogY2htb2QgK3ggcGF0aDAKIHJtIC1mIHBhdGgxCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZ2l0IGRpZmYtZmlsZXMgLXAgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUuJyBcCi0gICAgJ2dpdCBkaWZmLWZpbGVzIC1wID5jdXJyZW50JwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLXAgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUuJyAnCisJZ2l0IGRpZmYtZmlsZXMgLXAgPmFjdHVhbAorJwogCiAjIHRoYXQncyBhcyBmYXIgYXMgaXQgY29tZXMKIGlmIFsgIiQoZ2l0IGNvbmZpZyAtLWdldCBjb3JlLmZpbGVtb2RlKSIgPSBmYWxzZSBdCkBAIC01NSw4ICs1NSwzOCBAQAogLWxpbmUgMwogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICd2YWxpZGF0ZSBnaXQgZGlmZi1maWxlcyAtcCBvdXRwdXQuJyBcCi0gICAgJ2NvbXBhcmVfZGlmZl9wYXRjaCBjdXJyZW50IGV4cGVjdGVkJwordGVzdF9leHBlY3Rfc3VjY2VzcyAndmFsaWRhdGUgZ2l0IGRpZmYtZmlsZXMgLXAgb3V0cHV0LicgJworCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLXMgYWZ0ZXIgZWRpdGluZyB3b3JrIHRyZWUnICcKKwlnaXQgZGlmZi1maWxlcyAtcyA+YWN0dWFsIDI+ZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGFjdHVhbCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1uby1wYXRjaCBhcyBzeW5vbnltIGZvciAtcycgJworCWdpdCBkaWZmLWZpbGVzIC0tbm8tcGF0Y2ggPmFjdHVhbCAyPmVyciAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBhY3R1YWwgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBkaWZmLWZpbGVzIC0tbm8tcGF0Y2ggLS1wYXRjaCBzaG93cyB0aGUgcGF0Y2gnICcKKwlnaXQgZGlmZi1maWxlcyAtLW5vLXBhdGNoIC0tcGF0Y2ggPmFjdHVhbCAmJgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1uby1wYXRjaCAtLXBhdGNoLXdpdGgtcmF3IHNob3dzIHRoZSBwYXRjaCBhbmQgcmF3IGRhdGEnICcKKwlnaXQgZGlmZi1maWxlcyAtLW5vLXBhdGNoIC0tcGF0Y2gtd2l0aC1yYXcgPmFjdHVhbCAmJgorCWdyZXAgLXEgIl46MTAwNjQ0IDEwMDc1NSAuKiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE0JcGF0aDBcJCIgYWN0dWFsICYmCisJdGFpbCAtbiArNCBhY3R1YWwgPmFjdHVhbC1wYXRjaCAmJgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBhY3R1YWwtcGF0Y2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGRpZmYtZmlsZXMgLS1wYXRjaCAtLW5vLXBhdGNoIGRvZXMgbm90IHNob3cgdGhlIHBhdGNoJyAnCisJZ2l0IGRpZmYtZmlsZXMgLS1wYXRjaCAtLW5vLXBhdGNoID5hY3R1YWwgMj5lcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGVycgorJwogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDQwMDgtZGlmZi1icmVhay1yZXdyaXRlLnNoIGIvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKaW5kZXggNzNiNGEyNC4uMjdlOThhOCAxMDA3NTUKLS0tIGEvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKKysrIGIvdC90NDAwOC1kaWZmLWJyZWFrLXJld3JpdGUuc2gKQEAgLTk5LDExICs5OSwxMSBAQAogICAgICd2YWxpZGF0ZSByZXN1bHQgb2YgLUIgLU0gKCM0KScgXAogICAgICdjb21wYXJlX2RpZmZfcmF3IGV4cGVjdGVkIGN1cnJlbnQnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ21ha2UgZmlsZTAgaW50byBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQnIFwKICAgICAncm0gLWYgZmlsZTAgJiYKLSAgICAgbG4gLXMgZnJvdHogZmlsZTAgJiYKLSAgICAgZ2l0IHVwZGF0ZS1pbmRleCBmaWxlMCBmaWxlMScKKyAgICAgdGVzdF9sbl9zX2FkZCBmcm90eiBmaWxlMCAmJgorICAgICBnaXQgdXBkYXRlLWluZGV4IGZpbGUxJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAncnVuIGRpZmYgd2l0aCAtQicgXApAQCAtMTE0LDcgKzExNCw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgTTEwMAlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtQiAoIzUpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApAQCAtMTI5LDcgKzEyOSw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgUglmaWxlMAlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtQiAtTSAoIzYpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApAQCAtMTQ0LDcgKzE0NCw3IEBACiA6MTAwNjQ0IDEwMDY0NCA2ZmY4N2M0NjY0OTgxZTQzOTc2MjU3OTFjOGVhM2JiYjVmMjI3OWEzIGY1ZGVhYzdiZTU5ZTdlZWFiODY1N2ZkOWFlNzA2ZmQ2YTU3ZGFlZDIgTQlmaWxlMQogRU9GCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgXAordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3ZhbGlkYXRlIHJlc3VsdCBvZiAtTSAoIzcpJyBcCiAgICAgJ2NvbXBhcmVfZGlmZl9yYXcgZXhwZWN0ZWQgY3VycmVudCcKIApkaWZmIC0tZ2l0IGEvdC90NDAxMS1kaWZmLXN5bWxpbmsuc2ggYi90L3Q0MDExLWRpZmYtc3ltbGluay5zaAppbmRleCBmMGQ1MDQxLi4xM2U3ZjYyIDEwMDc1NQotLS0gYS90L3Q0MDExLWRpZmYtc3ltbGluay5zaAorKysgYi90L3Q0MDExLWRpZmYtc3ltbGluay5zaApAQCAtOSw3ICs5LDcgQEAKIC4gLi90ZXN0LWxpYi5zaAogLiAiJFRFU1RfRElSRUNUT1JZIi9kaWZmLWxpYi5zaAogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkaWZmIG5ldyBzeW1saW5rIGFuZCBmaWxlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmIG5ldyBzeW1saW5rIGFuZCBmaWxlJyAnCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJZGlmZiAtLWdpdCBhL2Zyb3R6IGIvZnJvdHoKIAluZXcgZmlsZSBtb2RlIDEyMDAwMApAQCAtMjcsMjIgKzI3LDI1IEBACiAJQEAgLTAsMCArMSBAQAogCSt4eXp6eQogCUVPRgotCWxuIC1zIHh5enp5IGZyb3R6ICYmCi0JZWNobyB4eXp6eSA+bml0Zm9sICYmCisKKwkjIHRoZSBlbXB0eSB0cmVlCiAJZ2l0IHVwZGF0ZS1pbmRleCAmJgogCXRyZWU9JChnaXQgd3JpdGUtdHJlZSkgJiYKLQlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZyb3R6IG5pdGZvbCAmJgorCisJdGVzdF9sbl9zX2FkZCB4eXp6eSBmcm90eiAmJgorCWVjaG8geHl6enkgPm5pdGZvbCAmJgorCWdpdCB1cGRhdGUtaW5kZXggLS1hZGQgbml0Zm9sICYmCiAJR0lUX0RJRkZfT1BUUz0tLXVuaWZpZWQ9MCBnaXQgZGlmZi1pbmRleCAtTSAtcCAkdHJlZSA+Y3VycmVudCAmJgogCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBjdXJyZW50CiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RpZmYgdW5jaGFuZ2VkIHN5bWxpbmsgYW5kIGZpbGUnICAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaWZmIHVuY2hhbmdlZCBzeW1saW5rIGFuZCBmaWxlJyAgJwogCXRyZWU9JChnaXQgd3JpdGUtdHJlZSkgJiYKIAlnaXQgdXBkYXRlLWluZGV4IGZyb3R6IG5pdGZvbCAmJgogCXRlc3QgLXogIiQoZ2l0IGRpZmYtaW5kZXggLS1uYW1lLW9ubHkgJHRyZWUpIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkaWZmIHJlbW92ZWQgc3ltbGluayBhbmQgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiByZW1vdmVkIHN5bWxpbmsgYW5kIGZpbGUnICcKIAljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAlkaWZmIC0tZ2l0IGEvZnJvdHogYi9mcm90egogCWRlbGV0ZWQgZmlsZSBtb2RlIDEyMDAwMApAQCAtNjYsMTIgKzY5LDE4IEBACiAJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIGN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlmZiBpZGVudGljYWwsIGJ1dCBuZXdseSBjcmVhdGVkIHN5bWxpbmsgYW5kIGZpbGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RpZmYgaWRlbnRpY2FsLCBidXQgbmV3bHkgY3JlYXRlZCBzeW1saW5rIGFuZCBmaWxlJyAnCiAJPmV4cGVjdGVkICYmCiAJcm0gLWYgZnJvdHogbml0Zm9sICYmCiAJZWNobyB4eXp6eSA+bml0Zm9sICYmCiAJdGVzdC1jaG10aW1lICsxMCBuaXRmb2wgJiYKLQlsbiAtcyB4eXp6eSBmcm90eiAmJgorCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKKwl0aGVuCisJCWxuIC1zIHh5enp5IGZyb3R6CisJZWxzZQorCQlwcmludGYgeHl6enkgPmZyb3R6CisJCSMgdGhlIHN5bWxpbmsgcHJvcGVydHkgcHJvcGFnYXRlcyBmcm9tIHRoZSBpbmRleAorCWZpICYmCiAJZ2l0IGRpZmYtaW5kZXggLU0gLXAgJHRyZWUgPmN1cnJlbnQgJiYKIAljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgY3VycmVudCAmJgogCkBAIC04MCw3ICs4OSw3IEBACiAJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIGN1cnJlbnQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlmZiBkaWZmZXJlbnQgc3ltbGluayBhbmQgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlmZiBkaWZmZXJlbnQgc3ltbGluayBhbmQgZmlsZScgJwogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCWRpZmYgLS1naXQgYS9mcm90eiBiL2Zyb3R6CiAJaW5kZXggN2M0NjVhZi4uZGYxZGI1NCAxMjAwMDAKQEAgLTEwMCw3ICsxMDksMTMgQEAKIAkreXh5eXoKIAlFT0YKIAlybSAtZiBmcm90eiAmJgotCWxuIC1zIHl4eXl6IGZyb3R6ICYmCisJaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUworCXRoZW4KKwkJbG4gLXMgeXh5eXogZnJvdHoKKwllbHNlCisJCXByaW50ZiB5eHl5eiA+ZnJvdHoKKwkJIyB0aGUgc3ltbGluayBwcm9wZXJ0eSBwcm9wYWdhdGVzIGZyb20gdGhlIGluZGV4CisJZmkgJiYKIAllY2hvIHl4eXl6ID5uaXRmb2wgJiYKIAlnaXQgZGlmZi1pbmRleCAtTSAtcCAkdHJlZSA+Y3VycmVudCAmJgogCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBjdXJyZW50CmRpZmYgLS1naXQgYS90L3Q0MDE0LWZvcm1hdC1wYXRjaC5zaCBiL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCmluZGV4IDU4ZDQxODAuLjY2ODkzM2IgMTAwNzU1Ci0tLSBhL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCisrKyBiL3QvdDQwMTQtZm9ybWF0LXBhdGNoLnNoCkBAIC05NzIsNiArOTcyLDQ5IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWZyb209aWRlbnQgbm90aWNlcyBib2d1cyBpZGVudCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBmb3JtYXQtcGF0Y2ggLTEgLS1zdGRvdXQgLS1mcm9tPWZvbyA+cGF0Y2gKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1mcm9tPWlkZW50IHJlcGxhY2VzIGF1dGhvcicgJworCWdpdCBmb3JtYXQtcGF0Y2ggLTEgLS1zdGRvdXQgLS1mcm9tPSJNZSA8bWVAZXhhbXBsZS5jb20+IiA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogTWUgPG1lQGV4YW1wbGUuY29tPgorCisJRnJvbTogQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKworCUVPRgorCXNlZCAtbmUgIi9eRnJvbTovcDsgL14kL3A7IC9eLS0tJC9xIiA8cGF0Y2ggPnBhdGNoLmhlYWQgJiYKKwl0ZXN0X2NtcCBleHBlY3QgcGF0Y2guaGVhZAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWZyb20gdXNlcyBjb21taXR0ZXIgaWRlbnQnICcKKwlnaXQgZm9ybWF0LXBhdGNoIC0xIC0tc3Rkb3V0IC0tZnJvbSA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogQyBPIE1pdHRlciA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPgorCisJRnJvbTogQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKworCUVPRgorCXNlZCAtbmUgIi9eRnJvbTovcDsgL14kL3A7IC9eLS0tJC9xIiA8cGF0Y2ggPnBhdGNoLmhlYWQgJiYKKwl0ZXN0X2NtcCBleHBlY3QgcGF0Y2guaGVhZAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbi1ib2R5IGhlYWRlcnMgdHJpZ2dlciBjb250ZW50IGVuY29kaW5nJyAnCisJR0lUX0FVVEhPUl9OQU1FPSLDqXjDtnTDrGMiIHRlc3RfY29tbWl0IGV4b3RpYyAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCBIRUFEXiIgJiYKKwlnaXQgZm9ybWF0LXBhdGNoIC0xIC0tc3Rkb3V0IC0tZnJvbSA+cGF0Y2ggJiYKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRnJvbTogQyBPIE1pdHRlciA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPgorCUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorCisJRnJvbTogw6l4w7Z0w6xjIDxhdXRob3JAZXhhbXBsZS5jb20+CisKKwlFT0YKKwlzZWQgLW5lICIvXkZyb206L3A7IC9eJC9wOyAvXkNvbnRlbnQtVHlwZS9wOyAvXi0tLSQvcSIgPHBhdGNoID5wYXRjaC5oZWFkICYmCisJdGVzdF9jbXAgZXhwZWN0IHBhdGNoLmhlYWQKKycKKwogYXBwZW5kX3NpZ25vZmYoKQogewogCUM9JChnaXQgY29tbWl0LXRyZWUgSEVBRF5ee3RyZWV9IC1wIEhFQUQpICYmCmRpZmYgLS1naXQgYS90L3Q0MDE1LWRpZmYtd2hpdGVzcGFjZS5zaCBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCmluZGV4IGNjM2RiMTMuLjNmYjRiOTcgMTAwNzU1Ci0tLSBhL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCisrKyBiL3QvdDQwMTUtZGlmZi13aGl0ZXNwYWNlLnNoCkBAIC0xNDIsNiArMTQyLDM1MSBAQAogZ2l0IGRpZmYgLS1pZ25vcmUtc3BhY2UtYXQtZW9sID4gb3V0CiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbm90aGVyIHRlc3QsIHdpdGggLS1pZ25vcmUtc3BhY2UtYXQtZW9sJyAndGVzdF9jbXAgZXhwZWN0IG91dCcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBvbmx5IG5ldyBsaW5lcycgJworCXRlc3Rfc2VxIDUgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwl0ZXN0X3NlcSA1IHwgc2VkICIvMy9pIFxcCisiID54ICYmCisJZ2l0IGRpZmYgLS1pZ25vcmUtYmxhbmstbGluZXMgPm91dCAmJgorCT5leHBlY3QgJiYKKwl0ZXN0X2NtcCBvdXQgZXhwZWN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogb25seSBuZXcgbGluZXMgd2l0aCBzcGFjZScgJworCXRlc3Rfc2VxIDUgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwl0ZXN0X3NlcSA1IHwgc2VkICIvMy9pIFwgIiA+eCAmJgorCWdpdCBkaWZmIC13IC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQgJiYKKwk+ZXhwZWN0ICYmCisJdGVzdF9jbXAgb3V0IGV4cGVjdAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpZ25vcmUtYmxhbmstbGluZXM6IGFmdGVyIGNoYW5nZScgJworCWNhdCA8PC1cRU9GID54ICYmCisJMQorCTIKKworCTMKKwk0CisJNQorCisJNgorCTcKKwlFT0YKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCWNoYW5nZQorCisJMQorCTIKKwkzCisJNAorCTUKKwk2CisKKwk3CisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9MTAwIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtMSw2ICsxLDcgQEAKKwkrY2hhbmdlCisJKworCSAxCisJIDIKKwktCisJIDMKKwkgNAorCSA1CisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBiZWZvcmUgY2hhbmdlJyAnCisJY2F0IDw8LVxFT0YgPnggJiYKKwkxCisJMgorCisJMworCTQKKwk1CisJNgorCTcKKwlFT0YKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCisJMQorCTIKKwkzCisJNAorCTUKKworCTYKKwk3CisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9MTAwIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtNCw1ICs0LDcgQEAKKwkgMworCSA0CisJIDUKKwkrCisJIDYKKwkgNworCStjaGFuZ2UKKwlFT0YKKwljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgb3V0LnRtcAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpZ25vcmUtYmxhbmstbGluZXM6IGJldHdlZW4gY2hhbmdlcycgJworCWNhdCA8PC1cRU9GID54ICYmCisJMQorCTIKKwkzCisJNAorCTUKKworCisJNgorCTcKKwk4CisJOQorCTEwCisJRU9GCisJZ2l0IHVwZGF0ZS1pbmRleCB4ICYmCisJY2F0IDw8LVxFT0YgPnggJiYKKwljaGFuZ2UKKwkxCisJMgorCisJMworCTQKKwk1CisJNgorCTcKKwk4CisKKwk5CisJMTAKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsNSArMSw3IEBACisJK2NoYW5nZQorCSAxCisJIDIKKwkrCisJIDMKKwkgNAorCSA1CisJQEAgLTgsNSArOCw3IEBACisJIDYKKwkgNworCSA4CisJKworCSA5CisJIDEwCisJK2NoYW5nZQorCUVPRgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBvdXQudG1wCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogYmV0d2VlbiBjaGFuZ2VzICh3aXRoIGludGVyaHVua2N0eCknICcKKwl0ZXN0X3NlcSAxMCA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKworCTMKKwk0CisJNQorCisJNgorCTcKKwk4CisJOQorCisJMTAKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWludGVyLWh1bmstY29udGV4dD0yIC0taWdub3JlLWJsYW5rLWxpbmVzID5vdXQudG1wICYmCisJY2F0IDw8LVxFT0YgPmV4cGVjdGVkICYmCisJZGlmZiAtLWdpdCBhL3ggYi94CisJLS0tIGEveAorCSsrKyBiL3gKKwlAQCAtMSwxMCArMSwxNSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJKworCSAzCisJIDQKKwkgNQorCSsKKwkgNgorCSA3CisJIDgKKwkgOQorCSsKKwkgMTAKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBzY2F0dGVyZWQgc3BhY2VzJyAnCisJdGVzdF9zZXEgMTAgPnggJiYKKwlnaXQgdXBkYXRlLWluZGV4IHggJiYKKwljYXQgPDwtXEVPRiA+eCAmJgorCWNoYW5nZQorCTEKKwkyCisJMworCisJNAorCisJNQorCisJNgorCisKKwk3CisKKwk4CisJOQorCTEwCisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9NCAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsMyArMSw0IEBACisJK2NoYW5nZQorCSAxCisJIDIKKwkgMworCUBAIC04LDMgKzE1LDQgQEAKKwkgOAorCSA5CisJIDEwCisJK2NoYW5nZQorCUVPRgorCWNvbXBhcmVfZGlmZl9wYXRjaCBleHBlY3RlZCBvdXQudG1wCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2lnbm9yZS1ibGFuay1saW5lczogc3BhY2VzIGNvYWxlc2NlJyAnCisJdGVzdF9zZXEgNiA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKwkzCisKKwk0CisKKwk1CisKKwk2CisJY2hhbmdlCisJRU9GCisJZ2l0IGRpZmYgLS1pbnRlci1odW5rLWNvbnRleHQ9NCAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsNiArMSwxMSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJIDMKKwkrCisJIDQKKwkrCisJIDUKKwkrCisJIDYKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaWdub3JlLWJsYW5rLWxpbmVzOiBtaXggY2hhbmdlcyBhbmQgYmxhbmsgbGluZXMnICcKKwl0ZXN0X3NlcSAxNiA+eCAmJgorCWdpdCB1cGRhdGUtaW5kZXggeCAmJgorCWNhdCA8PC1cRU9GID54ICYmCisJY2hhbmdlCisJMQorCTIKKworCTMKKwk0CisJNQorCWNoYW5nZQorCTYKKwk3CisJOAorCisJOQorCTEwCisJMTEKKwljaGFuZ2UKKwkxMgorCTEzCisJMTQKKworCTE1CisJMTYKKwljaGFuZ2UKKwlFT0YKKwlnaXQgZGlmZiAtLWlnbm9yZS1ibGFuay1saW5lcyA+b3V0LnRtcCAmJgorCWNhdCA8PC1cRU9GID5leHBlY3RlZCAmJgorCWRpZmYgLS1naXQgYS94IGIveAorCS0tLSBhL3gKKwkrKysgYi94CisJQEAgLTEsOCArMSwxMSBAQAorCStjaGFuZ2UKKwkgMQorCSAyCisJKworCSAzCisJIDQKKwkgNQorCStjaGFuZ2UKKwkgNgorCSA3CisJIDgKKwlAQCAtOSw4ICsxMywxMSBAQAorCSA5CisJIDEwCisJIDExCisJK2NoYW5nZQorCSAxMgorCSAxMworCSAxNAorCSsKKwkgMTUKKwkgMTYKKwkrY2hhbmdlCisJRU9GCisJY29tcGFyZV9kaWZmX3BhdGNoIGV4cGVjdGVkIG91dC50bXAKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2sgbWl4ZWQgc3BhY2VzIGFuZCB0YWJzIGluIGluZGVudCcgJwogCiAJIyBUaGlzIGlzIGluZGVudGVkIHdpdGggU1AgSFQgU1AuCmRpZmYgLS1naXQgYS90L3Q0MDIzLWRpZmYtcmVuYW1lLXR5cGVjaGFuZ2Uuc2ggYi90L3Q0MDIzLWRpZmYtcmVuYW1lLXR5cGVjaGFuZ2Uuc2gKaW5kZXggNWQyMGFjZi4uNTVkNTQ5ZiAxMDA3NTUKLS0tIGEvdC90NDAyMy1kaWZmLXJlbmFtZS10eXBlY2hhbmdlLnNoCisrKyBiL3QvdDQwMjMtZGlmZi1yZW5hbWUtdHlwZWNoYW5nZS5zaApAQCAtNCw0NCArNCw0NCBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBzZXR1cCAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKIAogCXJtIC1mIGZvbyBiYXIgJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vQ09QWUlORyA+Zm9vICYmCi0JbG4gLXMgbGlua2xpbmsgYmFyICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBiYXIgJiYKKwlnaXQgYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLWEgLW0gSW5pdGlhbCAmJgogCWdpdCB0YWcgb25lICYmCiAKLQlybSAtZiBmb28gYmFyICYmCisJZ2l0IHJtIC1mIGZvbyBiYXIgJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vQ09QWUlORyA+YmFyICYmCi0JbG4gLXMgbGlua2xpbmsgZm9vICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBmb28gJiYKKwlnaXQgYWRkIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gU2Vjb25kICYmCiAJZ2l0IHRhZyB0d28gJiYKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9DT1BZSU5HID5mb28gJiYKIAlnaXQgYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLWEgLW0gVGhpcmQgJiYKIAlnaXQgdGFnIHRocmVlICYmCiAKIAltdiBmb28gYmFyICYmCi0JbG4gLXMgbGlua2xpbmsgZm9vICYmCi0JZ2l0IGFkZCBmb28gYmFyICYmCisJdGVzdF9sbl9zX2FkZCBsaW5rbGluayBmb28gJiYKKwlnaXQgYWRkIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gRm91cnRoICYmCiAJZ2l0IHRhZyBmb3VyICYmCiAKIAkjIFRoaXMgaXMgcHVyZWx5IGZvciBzYW5pdHkgY2hlY2sKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9DT1BZSU5HID5mb28gJiYKIAljYXQgIiRURVNUX0RJUkVDVE9SWSIvLi4vTWFrZWZpbGUgPmJhciAmJgogCWdpdCBhZGQgZm9vIGJhciAmJgogCWdpdCBjb21taXQgLWEgLW0gRmlmdGggJiYKIAlnaXQgdGFnIGZpdmUgJiYKIAotCXJtIC1mIGZvbyBiYXIgJiYKKwlnaXQgcm0gLWYgZm9vIGJhciAmJgogCWNhdCAiJFRFU1RfRElSRUNUT1JZIi8uLi9NYWtlZmlsZSA+Zm9vICYmCiAJY2F0ICIkVEVTVF9ESVJFQ1RPUlkiLy4uL0NPUFlJTkcgPmJhciAmJgogCWdpdCBhZGQgZm9vIGJhciAmJgpAQCAtNTAsNyArNTAsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2Nyb3NzIHJlbmFtZXMgdG8gYmUgZGV0ZWN0ZWQgZm9yIHJlZ3VsYXIgZmlsZXMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nyb3NzIHJlbmFtZXMgdG8gYmUgZGV0ZWN0ZWQgZm9yIHJlZ3VsYXIgZmlsZXMnICcKIAogCWdpdCBkaWZmLXRyZWUgZml2ZSBzaXggLXIgLS1uYW1lLXN0YXR1cyAtQiAtTSB8IHNvcnQgPmFjdHVhbCAmJgogCXsKQEAgLTYxLDcgKzYxLDcgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjcm9zcyByZW5hbWVzIHRvIGJlIGRldGVjdGVkIGZvciB0eXBlY2hhbmdlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcm9zcyByZW5hbWVzIHRvIGJlIGRldGVjdGVkIGZvciB0eXBlY2hhbmdlJyAnCiAKIAlnaXQgZGlmZi10cmVlIG9uZSB0d28gLXIgLS1uYW1lLXN0YXR1cyAtQiAtTSB8IHNvcnQgPmFjdHVhbCAmJgogCXsKQEAgLTcyLDcgKzcyLDcgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdtb3ZlcyBhbmQgcmVuYW1lcycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbW92ZXMgYW5kIHJlbmFtZXMnICcKIAogCWdpdCBkaWZmLXRyZWUgdGhyZWUgZm91ciAtciAtLW5hbWUtc3RhdHVzIC1CIC1NIHwgc29ydCA+YWN0dWFsICYmCiAJewpkaWZmIC0tZ2l0IGEvdC90NDAzMC1kaWZmLXRleHRjb252LnNoIGIvdC90NDAzMC1kaWZmLXRleHRjb252LnNoCmluZGV4IDUzZWMzMzAuLmY3NWY0NmYgMTAwNzU1Ci0tLSBhL3QvdDQwMzAtZGlmZi10ZXh0Y29udi5zaAorKysgYi90L3Q0MDMwLWRpZmYtdGV4dGNvbnYuc2gKQEAgLTEzOSwxMiArMTM5LDEwIEBACiArZnJvdHoKIFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQogRU9GCi0jIG1ha2UgYSBzeW1saW5rIHRoZSBoYXJkIHdheSB0aGF0IHdvcmtzIG9uIHN5bWxpbmstY2hhbGxlbmdlZCBmaWxlIHN5c3RlbXMKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAndGV4dGNvbnYgZG9lcyBub3QgYWN0IG9uIHN5bWxpbmtzJyAnCi0JcHJpbnRmIGZyb3R6ID4gZmlsZSAmJgotCWdpdCBhZGQgZmlsZSAmJgotCWdpdCBscy1maWxlcyAtcyB8IHNlZCAtZSBzLzEwMDY0NC8xMjAwMDAvIHwKLQkJZ2l0IHVwZGF0ZS1pbmRleCAtLWluZGV4LWluZm8gJiYKKwlybSAtZiBmaWxlICYmCisJdGVzdF9sbl9zX2FkZCBmcm90eiBmaWxlICYmCiAJZ2l0IGNvbW1pdCAtbSB0eXBlY2hhbmdlICYmCiAJZ2l0IHNob3cgPmRpZmYgJiYKIAlmaW5kX2RpZmYgPGRpZmYgPmFjdHVhbCAmJgpkaWZmIC0tZ2l0IGEvdC90NDAzOC1kaWZmLWNvbWJpbmVkLnNoIGIvdC90NDAzOC1kaWZmLWNvbWJpbmVkLnNoCmluZGV4IDEyNjFkYmIuLjEwMTlkN2IgMTAwNzU1Ci0tLSBhL3QvdDQwMzgtZGlmZi1jb21iaW5lZC5zaAorKysgYi90L3Q0MDM4LWRpZmYtY29tYmluZWQuc2gKQEAgLTM1Myw0ICszNTMsNTIgQEAKIAljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgYWN0dWFsCiAnCiAKKyMgVGVzdCBmb3IgYSBidWcgcmVwb3J0ZWQgYXQKKyMgaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC52ZXJzaW9uLWNvbnRyb2wuZ2l0LzIyNDQxMAorIyB3aGVyZSBhIGRlbGV0ZSBsaW5lcyB3ZXJlIG1pc3NpbmcgZnJvbSBjb21iaW5lZCBkaWZmIG91dHB1dCB3aGVuIHRoZXkKKyMgb2NjdXJyZWQgZXhhY3RseSBiZWZvcmUgdGhlIGNvbnRleHQgbGluZXMgb2YgYSBsYXRlciBjaGFuZ2UuCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjb21iaW5lIGRpZmYgbWlzc2luZyBkZWxldGUgYnVnJyAnCisJZ2l0IGNvbW1pdCAtbSBpbml0aWFsIC0tYWxsb3ctZW1wdHkgJiYKKwljYXQgPDwtXEVPRiA+dGVzdCAmJgorCTEKKwkyCisJMworCTQKKwlFT0YKKwlnaXQgYWRkIHRlc3QgJiYKKwlnaXQgY29tbWl0IC1hIC1tIHNpZGUxICYmCisJZ2l0IGNoZWNrb3V0IC1CIHNpZGUxICYmCisJZ2l0IGNoZWNrb3V0IEhFQUReICYmCisJY2F0IDw8LVxFT0YgPnRlc3QgJiYKKwkwCisJMQorCTIKKwkzCisJNG1vZGlmaWVkCisJRU9GCisJZ2l0IGFkZCB0ZXN0ICYmCisJZ2l0IGNvbW1pdCAtbSBzaWRlMiAmJgorCWdpdCBicmFuY2ggLWYgc2lkZTIgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1jb21taXQgc2lkZTEgJiYKKwljYXQgPDwtXEVPRiA+dGVzdCAmJgorCTEKKwkyCisJMworCTRtb2RpZmllZAorCUVPRgorCWdpdCBhZGQgdGVzdCAmJgorCWdpdCBjb21taXQgLWEgLW0gbWVyZ2UgJiYKKwlnaXQgZGlmZi10cmVlIC1jIC1wIEhFQUQgPmFjdHVhbC50bXAgJiYKKwlzZWQgLWUgIjEsL15AQEAvZCIgPCBhY3R1YWwudG1wID5hY3R1YWwgJiYKKwl0ciAtZCBRIDw8LVxFT0YgPmV4cGVjdGVkICYmCisJLSAwCisJICAxCisJICAyCisJICAzCisJIC00CisJICs0bW9kaWZpZWQKKwlFT0YKKwljb21wYXJlX2RpZmZfcGF0Y2ggZXhwZWN0ZWQgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDA0MS1kaWZmLXN1Ym1vZHVsZS1vcHRpb24uc2ggYi90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaAppbmRleCAzMmQ0YTYwLi4xNzUxYzgzIDEwMDc1NQotLS0gYS90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaAorKysgYi90L3Q0MDQxLWRpZmYtc3VibW9kdWxlLW9wdGlvbi5zaApAQCAtMSw2ICsxLDcgQEAKICMhL2Jpbi9zaAogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDkgSmVucyBMZWhtYW5uLCBiYXNlZCBvbiB0NzQwMSBieSBQaW5nIFlpbgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgQWxleGV5IFNodW1raW4gKCsgbm9uLVVURi04IGNvbW1pdCBlbmNvZGluZyB0ZXN0cykKICMKIAogdGVzdF9kZXNjcmlwdGlvbj0nU3VwcG9ydCBmb3IgdmVyYm9zZSBzdWJtb2R1bGUgZGlmZmVyZW5jZXMgaW4gZ2l0IGRpZmYKQEAgLTEwLDYgKzExLDkgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKKyMgU3RyaW5nICJhZGRlZCIgaW4gR2VybWFuICh0cmFuc2xhdGVkIHdpdGggR29vZ2xlIFRyYW5zbGF0ZSksIGVuY29kZWQgaW4gVVRGLTgsCisjIHVzZWQgaW4gc2FtcGxlIGNvbW1pdCBsb2cgbWVzc2FnZXMgaW4gYWRkX2ZpbGUoKSBmdW5jdGlvbiBiZWxvdy4KK2FkZGVkPSQocHJpbnRmICJoaW56dWdlZlwzMDNcMjc0Z3QiKQogYWRkX2ZpbGUgKCkgewogCSgKIAkJY2QgIiQxIiAmJgpAQCAtMTksNyArMjMsOCBAQAogCQkJZWNobyAiJG5hbWUiID4iJG5hbWUiICYmCiAJCQlnaXQgYWRkICIkbmFtZSIgJiYKIAkJCXRlc3RfdGljayAmJgotCQkJZ2l0IGNvbW1pdCAtbSAiQWRkICRuYW1lIiB8fCBleGl0CisJCQltc2dfYWRkZWRfaXNvODg1OTE9JChlY2hvICJBZGQgJG5hbWUgKCRhZGRlZCAkbmFtZSkiIHwgaWNvbnYgLWYgdXRmLTggLXQgaXNvODg1OS0xKSAmJgorCQkJZ2l0IC1jICdpMThuLmNvbW1pdEVuY29kaW5nPWlzbzg4NTktMScgY29tbWl0IC1tICIkbXNnX2FkZGVkX2lzbzg4NTkxIgogCQlkb25lID4vZGV2L251bGwgJiYKIAkJZ2l0IHJldi1wYXJzZSAtLXNob3J0IC0tdmVyaWZ5IEhFQUQKIAkpCkBAIC05Myw3ICs5OCw3IEBACiAJZ2l0IGRpZmYtaW5kZXggLXAgLS1zdWJtb2R1bGU9bG9nIEhFQUQgPmFjdHVhbCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAJU3VibW9kdWxlIHNtMSAkaGVhZDEuLiRoZWFkMjoKLQkgID4gQWRkIGZvbzMKKwkgID4gQWRkIGZvbzMgKCRhZGRlZCBmb28zKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTAyLDcgKzEwNyw3IEBACiAJZ2l0IGRpZmYgLS1zdWJtb2R1bGU9bG9nID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQxLi4kaGVhZDI6Ci0JICA+IEFkZCBmb28zCisJICA+IEFkZCBmb28zICgkYWRkZWQgZm9vMykKIAlFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTExMSw3ICsxMTYsNyBAQAogCWdpdCBkaWZmIC0tc3VibW9kdWxlID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQxLi4kaGVhZDI6Ci0JICA+IEFkZCBmb28zCisJICA+IEFkZCBmb28zICgkYWRkZWQgZm9vMykKIAlFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE0Miw4ICsxNDcsOCBAQAogCWdpdCBkaWZmLWluZGV4IC1wIC0tc3VibW9kdWxlPWxvZyBIRUFEID5hY3R1YWwgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogCVN1Ym1vZHVsZSBzbTEgJGhlYWQyLi4kaGVhZDMgKHJld2luZCk6Ci0JICA8IEFkZCBmb28zCi0JICA8IEFkZCBmb28yCisJICA8IEFkZCBmb28zICgkYWRkZWQgZm9vMykKKwkgIDwgQWRkIGZvbzIgKCRhZGRlZCBmb28yKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTUzLDEwICsxNTgsMTAgQEAKIAlnaXQgZGlmZi1pbmRleCAtcCAtLXN1Ym1vZHVsZT1sb2cgSEVBRCA+YWN0dWFsICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKIAlTdWJtb2R1bGUgc20xICRoZWFkMi4uLiRoZWFkNDoKLQkgID4gQWRkIGZvbzUKLQkgID4gQWRkIGZvbzQKLQkgIDwgQWRkIGZvbzMKLQkgIDwgQWRkIGZvbzIKKwkgID4gQWRkIGZvbzUgKCRhZGRlZCBmb281KQorCSAgPiBBZGQgZm9vNCAoJGFkZGVkIGZvbzQpCisJICA8IEFkZCBmb28zICgkYWRkZWQgZm9vMykKKwkgIDwgQWRkIGZvbzIgKCRhZGRlZCBmb28yKQogCUVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpkaWZmIC0tZ2l0IGEvdC90NDExMS1hcHBseS1zdWJkaXIuc2ggYi90L3Q0MTExLWFwcGx5LXN1YmRpci5zaAppbmRleCA3YzM5ODQzLi4xNjE4YTZkIDEwMDc1NQotLS0gYS90L3Q0MTExLWFwcGx5LXN1YmRpci5zaAorKysgYi90L3Q0MTExLWFwcGx5LXN1YmRpci5zaApAQCAtODYsNiArODYsMjAgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBzdWIvZGlyL2ZpbGUKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnYXBwbHkgaGFsZi1icm9rZW4gcGF0Y2ggZnJvbSBzdWJkaXIgb2YgdG9wbGV2ZWwnICcKKwkoCisJCWNkIHN1Yi9kaXIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFwcGx5IDw8LUVPRgorCQktLS0gc3ViL2Rpci9maWxlCisJCSsrKyBzdWIvZGlyL2ZpbGUKKwkJQEAgLTEsMCArMSwwIEBACisJCS0tLSBmaWxlX2luX3Jvb3QKKwkJKysrIGZpbGVfaW5fcm9vdAorCQlAQCAtMSwwICsxLDAgQEAKKwkJRU9GCisJKQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhcHBseSBmcm9tIC5naXQgZGlyJyAnCiAJY3AgcG9zdGltYWdlIGV4cGVjdGVkICYmCiAJY3AgcHJlaW1hZ2UgLmdpdC9maWxlICYmCmRpZmYgLS1naXQgYS90L3Q0MTE0LWFwcGx5LXR5cGVjaGFuZ2Uuc2ggYi90L3Q0MTE0LWFwcGx5LXR5cGVjaGFuZ2Uuc2gKaW5kZXggZjEyODI2Zi4uZWJhZGJjMyAxMDA3NTUKLS0tIGEvdC90NDExNC1hcHBseS10eXBlY2hhbmdlLnNoCisrKyBiL3QvdDQxMTQtYXBwbHktdHlwZWNoYW5nZS5zaApAQCAtOSwyMCArOSwxOSBAQAogCiAuIC4vdGVzdC1saWIuc2gKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc2V0dXAgcmVwb3NpdG9yeSBhbmQgY29tbWl0cycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgcmVwb3NpdG9yeSBhbmQgY29tbWl0cycgJwogCWVjaG8gImhlbGxvIHdvcmxkIiA+IGZvbyAmJgogCWVjaG8gImhpIHBsYW5ldCIgPiBiYXIgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyBiYXIgJiYKIAlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKIAlnaXQgYnJhbmNoIGluaXRpYWwgJiYKIAlybSAtZiBmb28gJiYKLQlsbiAtcyBiYXIgZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwl0ZXN0X2xuX3NfYWRkIGJhciBmb28gJiYKIAlnaXQgY29tbWl0IC1tICJmb28gc3ltbGlua2VkIHRvIGJhciIgJiYKIAlnaXQgYnJhbmNoIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCi0Jcm0gLWYgZm9vICYmCisJZ2l0IHJtIC1mIGZvbyAmJgogCWVjaG8gImhvdyBmYXIgaXMgdGhlIHN1bj8iID4gZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyAmJgogCWdpdCBjb21taXQgLW0gImZvbyBiYWNrIHRvIGZpbGUiICYmCiAJZ2l0IGJyYW5jaCBmb28tYmFjay10by1maWxlICYmCiAJcHJpbnRmICJcMCIgPiBmb28gJiYKQEAgLTQyLDcgKzQxLDcgQEAKIAlnaXQgYnJhbmNoIGZvby1iYXotcmVuYW1lZC1mcm9tLWZvbwogCScKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSByZW5hbWVkIGZyb20gZm9vIHRvIGZvby9iYXonICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgcmVuYW1lZCBmcm9tIGZvbyB0byBmb28vYmF6JyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGluaXRpYWwgJiYKIAlnaXQgZGlmZi10cmVlIC1NIC1wIEhFQUQgZm9vLWJhei1yZW5hbWVkLWZyb20tZm9vID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC01MCw3ICs0OSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSByZW5hbWVkIGZyb20gZm9vL2JheiB0byBmb28nICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgcmVuYW1lZCBmcm9tIGZvby9iYXogdG8gZm9vJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGZvby1iYXotcmVuYW1lZC1mcm9tLWZvbyAmJgogCWdpdCBkaWZmLXRyZWUgLU0gLXAgSEVBRCBpbml0aWFsID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC01OCw3ICs1Nyw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlyZWN0b3J5IGJlY29tZXMgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlyZWN0b3J5IGJlY29tZXMgZmlsZScgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBpbml0aWFsID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC02Niw3ICs2NSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSBiZWNvbWVzIGRpcmVjdG9yeScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmlsZSBiZWNvbWVzIGRpcmVjdG9yeScgJwogCWdpdCBjaGVja291dCAtZiBpbml0aWFsICYmCiAJZ2l0IGRpZmYtdHJlZSAtcCBIRUFEIGZvby1iZWNvbWVzLWEtZGlyZWN0b3J5ID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCkBAIC03NCw3ICs3Myw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZmlsZSBiZWNvbWVzIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZpbGUgYmVjb21lcyBzeW1saW5rJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGluaXRpYWwgJiYKIAlnaXQgZGlmZi10cmVlIC1wIEhFQUQgZm9vLXN5bWxpbmtlZC10by1iYXIgPiBwYXRjaCAmJgogCWdpdCBhcHBseSAtLWluZGV4IDwgcGF0Y2gKQEAgLTgyLDIxICs4MSwyMSBAQAogdGVzdF9kZWJ1ZyAnY2F0IHBhdGNoJwogCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N5bWxpbmsgYmVjb21lcyBmaWxlJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzeW1saW5rIGJlY29tZXMgZmlsZScgJwogCWdpdCBjaGVja291dCAtZiBmb28tc3ltbGlua2VkLXRvLWJhciAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tYmFjay10by1maWxlID4gcGF0Y2ggJiYKIAlnaXQgYXBwbHkgLS1pbmRleCA8IHBhdGNoCiAJJwogdGVzdF9kZWJ1ZyAnY2F0IHBhdGNoJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdiaW5hcnkgZmlsZSBiZWNvbWVzIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JpbmFyeSBmaWxlIGJlY29tZXMgc3ltbGluaycgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1iaW5hcnkgJiYKIAlnaXQgZGlmZi10cmVlIC1wIC0tYmluYXJ5IEhFQUQgZm9vLXN5bWxpbmtlZC10by1iYXIgPiBwYXRjaCAmJgogCWdpdCBhcHBseSAtLWluZGV4IDwgcGF0Y2gKIAknCiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ3N5bWxpbmsgYmVjb21lcyBiaW5hcnkgZmlsZScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluayBiZWNvbWVzIGJpbmFyeSBmaWxlJyAnCiAJZ2l0IGNoZWNrb3V0IC1mIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCiAJZ2l0IGRpZmYtdHJlZSAtcCAtLWJpbmFyeSBIRUFEIGZvby1iZWNvbWVzLWJpbmFyeSA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApAQCAtMTA0LDcgKzEwMyw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3ltbGluayBiZWNvbWVzIGRpcmVjdG9yeScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3ltbGluayBiZWNvbWVzIGRpcmVjdG9yeScgJwogCWdpdCBjaGVja291dCAtZiBmb28tc3ltbGlua2VkLXRvLWJhciAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApAQCAtMTEyLDcgKzExMSw3IEBACiB0ZXN0X2RlYnVnICdjYXQgcGF0Y2gnCiAKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZGlyZWN0b3J5IGJlY29tZXMgc3ltbGluaycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZGlyZWN0b3J5IGJlY29tZXMgc3ltbGluaycgJwogCWdpdCBjaGVja291dCAtZiBmb28tYmVjb21lcy1hLWRpcmVjdG9yeSAmJgogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRCBmb28tc3ltbGlua2VkLXRvLWJhciA+IHBhdGNoICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggPCBwYXRjaApkaWZmIC0tZ2l0IGEvdC90NDExNS1hcHBseS1zeW1saW5rLnNoIGIvdC90NDExNS1hcHBseS1zeW1saW5rLnNoCmluZGV4IDc2NzRkZDIuLjg3MmZjZGEgMTAwNzU1Ci0tLSBhL3QvdDQxMTUtYXBwbHktc3ltbGluay5zaAorKysgYi90L3Q0MTE1LWFwcGx5LXN5bWxpbmsuc2gKQEAgLTksMTggKzksMTYgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1Mgc2V0dXAgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAKLQlsbiAtcyBwYXRoMS9wYXRoMi9wYXRoMy9wYXRoNC9wYXRoNSBsaW5rMSAmJgotCWdpdCBhZGQgbGluaz8gJiYKKwl0ZXN0X2xuX3NfYWRkIHBhdGgxL3BhdGgyL3BhdGgzL3BhdGg0L3BhdGg1IGxpbmsxICYmCiAJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCiAKIAlnaXQgYnJhbmNoIHNpZGUgJiYKIAogCXJtIC1mIGxpbms/ICYmCiAKLQlsbiAtcyBodGFwNiBsaW5rMSAmJgotCWdpdCB1cGRhdGUtaW5kZXggbGluaz8gJiYKKwl0ZXN0X2xuX3NfYWRkIGh0YXA2IGxpbmsxICYmCiAJZ2l0IGNvbW1pdCAtbSBzZWNvbmQgJiYKIAogCWdpdCBkaWZmLXRyZWUgLXAgSEVBRF4gSEVBRCA+cGF0Y2ggICYmCkBAIC0zNyw3ICszNSw3IEBACiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYXBwbHkgLS1pbmRleCBzeW1saW5rIHBhdGNoJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhcHBseSAtLWluZGV4IHN5bWxpbmsgcGF0Y2gnICcKIAogCWdpdCBjaGVja291dCAtZiBzaWRlICYmCiAJZ2l0IGFwcGx5IC0taW5kZXggcGF0Y2ggJiYKZGlmZiAtLWdpdCBhL3QvdDQxMjItYXBwbHktc3ltbGluay1pbnNpZGUuc2ggYi90L3Q0MTIyLWFwcGx5LXN5bWxpbmstaW5zaWRlLnNoCmluZGV4IDM5NDA3MzcuLjcwYjNhMDYgMTAwNzU1Ci0tLSBhL3QvdDQxMjItYXBwbHktc3ltbGluay1pbnNpZGUuc2gKKysrIGIvdC90NDEyMi1hcHBseS1zeW1saW5rLWluc2lkZS5zaApAQCAtMTAsMTEgKzEwLDExIEBACiAJZG9uZQogfQogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTIHNldHVwICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJwogCiAJbWtkaXIgLXAgYXJjaC9pMzg2L2Jvb3QgYXJjaC94ODZfNjQgJiYKIAlsZWNobyAxIDIgMyA0IDUgPmFyY2gvaTM4Ni9ib290L01ha2VmaWxlICYmCi0JbG4gLXMgLi4vaTM4Ni9ib290IGFyY2gveDg2XzY0L2Jvb3QgJiYKKwl0ZXN0X2xuX3NfYWRkIC4uL2kzODYvYm9vdCBhcmNoL3g4Nl82NC9ib290ICYmCiAJZ2l0IGFkZCAuICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSBpbml0aWFsICYmCkBAIC0zMSw3ICszMSw3IEBACiAKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBhcHBseSAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIGFwcGx5ICcKIAogCWdpdCBjaGVja291dCB0ZXN0ICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgdGVzdCAmJgpAQCAtNDAsNyArNDAsNyBAQAogCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrIHJlc3VsdCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2sgcmVzdWx0JyAnCiAKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBtYXN0ZXIgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSAtLWNhY2hlZCBtYXN0ZXIgJiYKZGlmZiAtLWdpdCBhL3QvdDQxNTAtYW0uc2ggYi90L3Q0MTUwLWFtLnNoCmluZGV4IDEyZjZiMDIuLjVlZGI3OWEgMTAwNzU1Ci0tLSBhL3QvdDQxNTAtYW0uc2gKKysrIGIvdC90NDE1MC1hbS5zaApAQCAtMTQ3LDcgKzE0Nyw3IEBACiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGFtIDxwYXRjaDEgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIHNlY29uZCAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmQpIiA9ICIkKGdpdCByZXYtcGFyc2UgSEVBRCkiICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIHNlY29uZF4pIiA9ICIkKGdpdCByZXYtcGFyc2UgSEVBRF4pIgpAQCAtMTU4LDcgKzE1OCw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBmaXJzdCAmJgogCWdpdCBhbSBwYXRjaDEuZW1sICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBzZWNvbmQgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUQpIiAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmReKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReKSIKQEAgLTE2OSw3ICsxNjksNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgZmlyc3QgJiYKIAlnaXQgYW0gcGF0Y2gxLWNybGYuZW1sICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBzZWNvbmQgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUQpIiAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBzZWNvbmReKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReKSIKQEAgLTE4MCw3ICsxODAsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgZmlyc3QgJiYKIAlnaXQgYW0gcGF0Y2gxLXdzLmVtbCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgc2Vjb25kICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIHNlY29uZCkiID0gIiQoZ2l0IHJldi1wYXJzZSBIRUFEKSIgJiYKIAl0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugc2Vjb25kXikiID0gIiQoZ2l0IHJldi1wYXJzZSBIRUFEXikiCkBAIC0yMDYsNyArMjA2LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJZ2l0IGFtIHBhdGNoMiAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIG1hc3Rlcl5eKSIgPSAiJChnaXQgcmV2LXBhcnNlIEhFQUReXikiICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgbWFzdGVyLi5IRUFEICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgbWFzdGVyXi4uSEVBRF4gJiYKQEAgLTI1OCw3ICsyNTgsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgSEVBRF4gJiYKIAlnaXQgYW0gLS1rZWVwIHBhdGNoNCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEID5hY3R1YWwgJiYKIAlncmVwICJSZTogUmU6IFJlOiBcW1BBVENIIDEvNSB2MlxdIFxbZm9vXF0gdGhpcmQiIGFjdHVhbAogJwpAQCAtMjY4LDcgKzI2OCw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBIRUFEXiAmJgogCWdpdCBhbSAtLWtlZXAtbm9uLXBhdGNoIHBhdGNoNCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJZ2l0IGNhdC1maWxlIGNvbW1pdCBIRUFEID5hY3R1YWwgJiYKIAlncmVwICJeXFtmb29cXSB0aGlyZCIgYWN0dWFsCiAnCkBAIC0yODMsNyArMjgzLDcgQEAKIAl0ZXN0X3RpY2sgJiYKIAlnaXQgY29tbWl0IC1tICJjb3BpZWQgc3R1ZmYiICYmCiAJZ2l0IGFtIC0zIGxvcmVtLW1vdmUucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtCiAnCiAKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gImNvcGllZCBzdHVmZiIgJiYKIAlnaXQgYW0gLTMgLXAwIGxvcmVtLXplcm8ucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtCiAnCiAKQEAgLTMwNyw3ICszMDcsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbG9yZW1eMCAmJgogCWdpdCBhbSByZW5hbWUucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgcmVuYW1lCiAnCkBAIC0zMTgsNyArMzE4LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGxvcmVtXjAgJiYKIAlnaXQgYW0gLTMgcmVuYW1lLnBhdGNoICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tcmVmcmVzaCAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIHJlbmFtZQogJwpAQCAtMzI5LDcgKzMyOSw3IEBACiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBsb3JlbV4wICYmCiAJZ2l0IGFtIC0zIHJlbmFtZS1hZGQucGF0Y2ggJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYgLS1leGl0LWNvZGUgcmVuYW1lCiAnCkBAIC0zNTgsMTEgKzM1OCwxNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYW0gLS1za2lwIHdvcmtzJyAnCiAJZWNobyBnb29kYnllID5leHBlY3RlZCAmJgogCWdpdCBhbSAtLXNraXAgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseSAmJgogCWdpdCBkaWZmIC0tZXhpdC1jb2RlIGxvcmVtMl5eIC0tIGZpbGUgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCBhbm90aGVyCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FtIC0tYWJvcnQgcmVtb3ZlcyBhIHN0cmF5IGRpcmVjdG9yeScgJworCW1rZGlyIC5naXQvcmViYXNlLWFwcGx5ICYmCisJZ2l0IGFtIC0tYWJvcnQgJiYKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSAtLXJlc29sdmVkIHdvcmtzJyAnCiAJZWNobyBnb29kYnllID5leHBlY3RlZCAmJgogCXJtIC1mciAuZ2l0L3JlYmFzZS1hcHBseSAmJgpAQCAtMzczLDcgKzM3OSw3IEBACiAJZWNobyByZXNvbHZlZCA+PmZpbGUgJiYKIAlnaXQgYWRkIGZpbGUgJiYKIAlnaXQgYW0gLS1yZXNvbHZlZCAmJgotCSEgdGVzdCAtZCAuZ2l0L3JlYmFzZS1hcHBseSAmJgorCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvcmViYXNlLWFwcGx5ICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYW5vdGhlcgogJwogCkBAIC0zODIsNyArMzg4LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGZpcnN0ICYmCiAJY2F0IHBpbmUgcGF0Y2gxIHwgZ2l0IGFtICYmCi0JISB0ZXN0IC1kIC5naXQvcmViYXNlLWFwcGx5ICYmCisJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZWJhc2UtYXBwbHkgJiYKIAlnaXQgZGlmZiAtLWV4aXQtY29kZSBtYXN0ZXJeLi5IRUFECiAnCiAKQEAgLTM5MSw3ICszOTcsNyBAQAogCWdpdCByZXNldCAtLWhhcmQgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgYW0gPGZhaWxtYWlsICYmCiAJZ2l0IGFtIC0tYWJvcnQgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSBmYWlscyBvbiBlbXB0eSBwYXRjaCcgJwpAQCAtNDAwLDcgKzQwNiw3IEBACiAJZWNobyAiLS0tIiA+PmZhaWxtYWlsICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFtIDxmYWlsbWFpbCAmJgogCWdpdCBhbSAtLXNraXAgJiYKLQkhIHRlc3QgLWQgLmdpdC9yZWJhc2UtYXBwbHkKKwl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L3JlYmFzZS1hcHBseQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbSB3b3JrcyBmcm9tIHN0ZGluIGluIHN1YmRpcmVjdG9yeScgJwpkaWZmIC0tZ2l0IGEvdC90NDIwMi1sb2cuc2ggYi90L3Q0MjAyLWxvZy5zaAppbmRleCA5MjQzYTk3Li5jYjAzZDI4IDEwMDc1NQotLS0gYS90L3Q0MjAyLWxvZy5zaAorKysgYi90L3Q0MjAyLWxvZy5zaApAQCAtNTMwLDYgKzUzMCwyMCBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGxvZyAtYyAtLWZvbGxvdycgJworCXRlc3RfY3JlYXRlX3JlcG8gZm9sbG93LWMgJiYKKwkoCisJCWNkIGZvbGxvdy1jICYmCisJCXRlc3RfY29tbWl0IGluaXRpYWwgZmlsZSBvcmlnaW5hbCAmJgorCQlnaXQgcm0gZmlsZSAmJgorCQl0ZXN0X2NvbW1pdCByZW5hbWUgZmlsZTIgb3JpZ2luYWwgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCBpbml0aWFsICYmCisJCXRlc3RfY29tbWl0IG1vZGlmeSBmaWxlIGZvbyAmJgorCQlnaXQgbWVyZ2UgLW0gbWVyZ2UgcmVuYW1lICYmCisJCWdpdCBsb2cgLWMgLS1mb2xsb3cgZmlsZTIKKwkpCisnCisKIGNhdCA+ZXhwZWN0IDw8XEVPRgogKiAgIGNvbW1pdCBDT01NSVRfT0JKRUNUX05BTUUKIHxcICBNZXJnZTogTUVSR0VfUEFSRU5UUwpkaWZmIC0tZ2l0IGEvdC90NDIwMy1tYWlsbWFwLnNoIGIvdC90NDIwMy1tYWlsbWFwLnNoCmluZGV4IDg0MmI3NTQuLmNlM2VhY2UgMTAwNzU1Ci0tLSBhL3QvdDQyMDMtbWFpbG1hcC5zaAorKysgYi90L3Q0MjAzLW1haWxtYXAuc2gKQEAgLTEzLDYgKzEzLDExIEBACiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJworCWNhdCA+Y29udGFjdHMgPDwtXEVPRiAmJgorCUEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+CisJbmljazEgPGJ1Z3NAY29tcGFueS54eD4KKwlFT0YKKwogCWVjaG8gb25lID5vbmUgJiYKIAlnaXQgYWRkIG9uZSAmJgogCXRlc3RfdGljayAmJgpAQCAtMjMsNiArMjgsNDQgQEAKIAlnaXQgY29tbWl0IC0tYXV0aG9yICJuaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgLW0gc2Vjb25kCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrLW1haWxtYXAgbm8gYXJndW1lbnRzJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZWNrLW1haWxtYXAKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2stbWFpbG1hcCBhcmd1bWVudHMnICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJQSBVIFRob3IgPGF1dGhvckBleGFtcGxlLmNvbT4KKwluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PgorCUVPRgorCWdpdCBjaGVjay1tYWlsbWFwIFwKKwkJIkEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+IiBcCisJCSJuaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hlY2stbWFpbG1hcCAtLXN0ZGluJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCUEgVSBUaG9yIDxhdXRob3JAZXhhbXBsZS5jb20+CisJbmljazEgPGJ1Z3NAY29tcGFueS54eD4KKwlFT0YKKwlnaXQgY2hlY2stbWFpbG1hcCAtLXN0ZGluIDxjb250YWN0cyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVjay1tYWlsbWFwIC0tc3RkaW4gYXJndW1lbnRzJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCUludGVybmFsIEd1eSA8YnVnc0Bjb21wYW55Lnh5PgorCUVPRgorCWNhdCA8Y29udGFjdHMgPj5leHBlY3QgJiYKKwlnaXQgY2hlY2stbWFpbG1hcCAtLXN0ZGluICJJbnRlcm5hbCBHdXkgPGJ1Z3NAY29tcGFueS54eT4iIFwKKwkJPGNvbnRhY3RzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrLW1haWxtYXAgYm9ndXMgY29udGFjdCcgJworCXRlc3RfbXVzdF9mYWlsIGdpdCBjaGVjay1tYWlsbWFwIGJvZ3VzCisnCisKIGNhdCA+ZXhwZWN0IDw8XEVPRgogQSBVIFRob3IgKDEpOgogICAgICAgaW5pdGlhbApAQCAtMTU5LDcgKzIwMiw4IEBACiAJQmxvYiBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4KIAlCbG9iIEd1eSA8YnVnc0Bjb21wYW55Lnh4PgogCUVPRgotCWdpdCBhZGQganVzdC1idWdzIGJvdGggJiYKKwlwcmludGYgIlRyaWNreSBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4iID5uby1uZXdsaW5lICYmCisJZ2l0IGFkZCBqdXN0LWJ1Z3MgYm90aCBuby1uZXdsaW5lICYmCiAJZ2l0IGNvbW1pdCAtbSAibXkgbWFpbG1hcHMiICYmCiAJZWNobyAiUmVwbyBHdXkgPGF1dGhvckBleGFtcGxlLmNvbT4iID4ubWFpbG1hcCAmJgogCWVjaG8gIkludGVybmFsIEd1eSA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPmludGVybmFsLm1hcApAQCAtMjQzLDEwICsyODcsNDEgQEAKIAkpCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21haWxtYXAuYmxvYiBjYW4gaGFuZGxlIGJsb2JzIHdpdGhvdXQgdHJhaWxpbmcgbmV3bGluZScgJworCWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKKwlUcmlja3kgR3V5ICgxKToKKwkgICAgICBpbml0aWFsCisKKwluaWNrMSAoMSk6CisJICAgICAgc2Vjb25kCisKKwlFT0YKKwlnaXQgLWMgbWFpbG1hcC5ibG9iPW1hcDpuby1uZXdsaW5lIHNob3J0bG9nIEhFQUQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xlYW51cCBhZnRlciBtYWlsbWFwLmJsb2IgdGVzdHMnICcKIAlybSAtZiAubWFpbG1hcAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaW5nbGUtY2hhcmFjdGVyIG5hbWUnICcKKwllY2hvICIgICAgIDEJQSA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPmV4cGVjdCAmJgorCWVjaG8gIiAgICAgMQluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPj5leHBlY3QgJiYKKwllY2hvICJBIDxhdXRob3JAZXhhbXBsZS5jb20+IiA+Lm1haWxtYXAgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC5tYWlsbWFwIiAmJgorCWdpdCBzaG9ydGxvZyAtZXMgSEVBRCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcmVzZXJ2ZSBjYW5vbmljYWwgZW1haWwgY2FzZScgJworCWVjaG8gIiAgICAgMQlBIFUgVGhvciA8QVVUSE9SQGV4YW1wbGUuY29tPiIgPmV4cGVjdCAmJgorCWVjaG8gIiAgICAgMQluaWNrMSA8YnVnc0Bjb21wYW55Lnh4PiIgPj5leHBlY3QgJiYKKwllY2hvICI8QVVUSE9SQGV4YW1wbGUuY29tPiA8YXV0aG9yQGV4YW1wbGUuY29tPiIgPi5tYWlsbWFwICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAubWFpbG1hcCIgJiYKKwlnaXQgc2hvcnRsb2cgLWVzIEhFQUQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogIyBFeHRlbmRlZCBtYWlsbWFwIGNvbmZpZ3VyYXRpb25zIHNob3VsZCBnaXZlIHVzIHRoZSBmb2xsb3dpbmcgb3V0cHV0IGZvciBzaG9ydGxvZwogY2F0ID5leHBlY3QgPDxcRU9GCiBBIFUgVGhvciA8YXV0aG9yQGV4YW1wbGUuY29tPiAoMSk6CmRpZmYgLS1naXQgYS90L3Q0MjA1LWxvZy1wcmV0dHktZm9ybWF0cy5zaCBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCmluZGV4IDI2ZmJmZGUuLmZiMDAwNDEgMTAwNzU1Ci0tLSBhL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCisrKyBiL3QvdDQyMDUtbG9nLXByZXR0eS1mb3JtYXRzLnNoCkBAIC0xLDIwICsxLDM4IEBACiAjIS9iaW4vc2gKICMKICMgQ29weXJpZ2h0IChjKSAyMDEwLCBXaWxsIFBhbG1lcgorIyBDb3B5cmlnaHQgKGMpIDIwMTEsIEFsZXhleSBTaHVta2luICgrIG5vbi1VVEYtOCBjb21taXQgZW5jb2RpbmcgdGVzdHMpCiAjCiAKIHRlc3RfZGVzY3JpcHRpb249J1Rlc3QgcHJldHR5IGZvcm1hdHMnCiAuIC4vdGVzdC1saWIuc2gKIAorc2FtcGxlX3V0ZjhfcGFydD0kKHByaW50ZiAiZlwzMDNcMjQ0bmciKQorCitjb21taXRfbXNnICgpIHsKKwkjIFN0cmluZyAiaW5pdGlhbC4gaW5pdGlhbCIgcGFydGx5IGluIEdlcm1hbgorCSMgKHRyYW5zbGF0ZWQgd2l0aCBHb29nbGUgVHJhbnNsYXRlKSwKKwkjIGVuY29kZWQgaW4gVVRGLTgsIHVzZWQgYXMgYSBjb21taXQgbG9nIG1lc3NhZ2UgYmVsb3cuCisJbXNnPSJpbml0aWFsLiBhbiR7c2FtcGxlX3V0ZjhfcGFydH1saWNoXG4iCisJaWYgdGVzdCAtbiAiJDEiCisJdGhlbgorCQlwcmludGYgIiRtc2ciIHwgaWNvbnYgLWYgdXRmLTggLXQgIiQxIgorCWVsc2UKKwkJcHJpbnRmICIkbXNnIgorCWZpCit9CisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldCB1cCBiYXNpYyByZXBvcycgJwogCT5mb28gJiYKIAk+YmFyICYmCiAJZ2l0IGFkZCBmb28gJiYKIAl0ZXN0X3RpY2sgJiYKLQlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKKwlnaXQgY29uZmlnIGkxOG4uY29tbWl0RW5jb2RpbmcgaXNvODg1OS0xICYmCisJZ2l0IGNvbW1pdCAtbSAiJChjb21taXRfbXNnIGlzbzg4NTktMSkiICYmCiAJZ2l0IGFkZCBiYXIgJiYKIAl0ZXN0X3RpY2sgJiYKLQlnaXQgY29tbWl0IC1tICJhZGQgYmFyIgorCWdpdCBjb21taXQgLW0gImFkZCBiYXIiICYmCisJZ2l0IGNvbmZpZyAtLXVuc2V0IGkxOG4uY29tbWl0RW5jb2RpbmcKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWxpYXMgYnVpbHRpbiBmb3JtYXQnICcKQEAgLTM4LDYgKzU2LDIwIEBACiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FsaWFzIHVzZXItZGVmaW5lZCB0Zm9ybWF0IHdpdGggJXMgKGlzbzg4NTktMSBlbmNvZGluZyknICcKKwlnaXQgY29uZmlnIGkxOG4ubG9nT3V0cHV0RW5jb2RpbmcgaXNvODg1OS0xICYmCisJZ2l0IGxvZyAtLW9uZWxpbmUgPmV4cGVjdGVkLXMgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSJ0Zm9ybWF0OiVoICVzIiA+YWN0dWFsLXMgJiYKKwlnaXQgY29uZmlnIC0tdW5zZXQgaTE4bi5sb2dPdXRwdXRFbmNvZGluZyAmJgorCXRlc3RfY21wIGV4cGVjdGVkLXMgYWN0dWFsLXMKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYWxpYXMgdXNlci1kZWZpbmVkIHRmb3JtYXQgd2l0aCAlcyAodXRmLTggZW5jb2RpbmcpJyAnCisJZ2l0IGxvZyAtLW9uZWxpbmUgPmV4cGVjdGVkLXMgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSJ0Zm9ybWF0OiVoICVzIiA+YWN0dWFsLXMgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZC1zIGFjdHVhbC1zCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FsaWFzIHVzZXItZGVmaW5lZCB0Zm9ybWF0JyAnCiAJZ2l0IGxvZyAtLXByZXR0eT0idGZvcm1hdDolaCIgPmV4cGVjdGVkICYmCiAJZ2l0IGNvbmZpZyBwcmV0dHkudGVzdC1hbGlhcyAidGZvcm1hdDolaCIgJiYKQEAgLTcyLDEzICsxMDQsMTMgQEAKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnTlVMIHNlcGFyYXRpb24nICcKLQlwcmludGYgImFkZCBiYXJcMGluaXRpYWwiID5leHBlY3RlZCAmJgorCXByaW50ZiAiYWRkIGJhclwwJChjb21taXRfbXNnKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXByZXR0eT0iZm9ybWF0OiVzIiA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ05VTCB0ZXJtaW5hdGlvbicgJwotCXByaW50ZiAiYWRkIGJhclwwaW5pdGlhbFwwIiA+ZXhwZWN0ZWQgJiYKKwlwcmludGYgImFkZCBiYXJcMCQoY29tbWl0X21zZylcMCIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXByZXR0eT0idGZvcm1hdDolcyIgPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtODYsNyArMTE4LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ05VTCBzZXBhcmF0aW9uIHdpdGggLS1zdGF0JyAnCiAJc3RhdDBfcGFydD0kKGdpdCBkaWZmIC0tc3RhdCBIRUFEXiBIRUFEKSAmJgogCXN0YXQxX3BhcnQ9JChnaXQgZGlmZi10cmVlIC0tbm8tY29tbWl0LWlkIC0tc3RhdCAtLXJvb3QgSEVBRF4pICYmCi0JcHJpbnRmICJhZGQgYmFyXG4kc3RhdDBfcGFydFxuXDBpbml0aWFsXG4kc3RhdDFfcGFydFxuIiA+ZXhwZWN0ZWQgJiYKKwlwcmludGYgImFkZCBiYXJcbiRzdGF0MF9wYXJ0XG5cMCQoY29tbWl0X21zZylcbiRzdGF0MV9wYXJ0XG4iID5leHBlY3RlZCAmJgogCWdpdCBsb2cgLXogLS1zdGF0IC0tcHJldHR5PSJmb3JtYXQ6JXMiID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC05NCwyNSArMTI2LDI5IEBACiB0ZXN0X2V4cGVjdF9mYWlsdXJlICdOVUwgdGVybWluYXRpb24gd2l0aCAtLXN0YXQnICcKIAlzdGF0MF9wYXJ0PSQoZ2l0IGRpZmYgLS1zdGF0IEhFQUReIEhFQUQpICYmCiAJc3RhdDFfcGFydD0kKGdpdCBkaWZmLXRyZWUgLS1uby1jb21taXQtaWQgLS1zdGF0IC0tcm9vdCBIRUFEXikgJiYKLQlwcmludGYgImFkZCBiYXJcbiRzdGF0MF9wYXJ0XG5cMGluaXRpYWxcbiRzdGF0MV9wYXJ0XG5cMCIgPmV4cGVjdGVkICYmCisJcHJpbnRmICJhZGQgYmFyXG4kc3RhdDBfcGFydFxuXDAkKGNvbW1pdF9tc2cpXG4kc3RhdDFfcGFydFxuMCIgPmV4cGVjdGVkICYmCiAJZ2l0IGxvZyAteiAtLXN0YXQgLS1wcmV0dHk9InRmb3JtYXQ6JXMiID5hY3R1YWwgJiYKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIG1vcmUgY29tbWl0cycgJwogCXRlc3RfY29tbWl0ICJtZXNzYWdlIG9uZSIgb25lIG9uZSBtZXNzYWdlLW9uZSAmJgotCXRlc3RfY29tbWl0ICJtZXNzYWdlIHR3byIgdHdvIHR3byBtZXNzYWdlLXR3bworCXRlc3RfY29tbWl0ICJtZXNzYWdlIHR3byIgdHdvIHR3byBtZXNzYWdlLXR3byAmJgorCWhlYWQxPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtLXNob3J0IEhFQUR+MCkgJiYKKwloZWFkMj0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCBIRUFEfjEpICYmCisJaGVhZDM9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgSEVBRH4yKSAmJgorCWhlYWQ0PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtLXNob3J0IEhFQUR+MykKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbGVmdCBhbGlnbm1lbnQgZm9ybWF0dGluZycgJwogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPCg0MCklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogbWVzc2FnZSB0d28gICAgICAgICAgICAgICAgICAgICAgICAgICAgWgogbWVzc2FnZSBvbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgogYWRkIGJhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgotaW5pdGlhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWgorJChjb21taXRfbXNnKSAgICAgICAgICAgICAgICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xMjEsMTEgKzE1NywxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolaCAlPHwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSBtZXNzYWdlIHR3byAgICAgICAgICAgICAgICAgICAgWgotN2NkNmM2MyBtZXNzYWdlIG9uZSAgICAgICAgICAgICAgICAgICAgWgotMTcxMWJmOSBhZGQgYmFyICAgICAgICAgICAgICAgICAgICAgICAgWgotYWYyMGMwNiBpbml0aWFsICAgICAgICAgICAgICAgICAgICAgICAgWgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSBtZXNzYWdlIHR3byAgICAgICAgICAgICAgICAgICAgWgorJGhlYWQyIG1lc3NhZ2Ugb25lICAgICAgICAgICAgICAgICAgICBaCiskaGVhZDMgYWRkIGJhciAgICAgICAgICAgICAgICAgICAgICAgIFoKKyRoZWFkNCAkKGNvbW1pdF9tc2cpICAgICAgICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xMzQsMTEgKzE3MCwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPCgxKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBtZXNzYWdlIHR3bwogbWVzc2FnZSBvbmUKIGFkZCBiYXIKLWluaXRpYWwKKyQoY29tbWl0X21zZykKIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTQ3LDExICsxODMsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JTwoMTAsdHJ1bmMpJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKIG1lc3NhZ2UgLi4KIG1lc3NhZ2UgLi4KIGFkZCBiYXIgIFoKLWluaXRpYWwgIFoKK2luaXRpYWwuLi4KIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMTYwLDExICsxOTYsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JTwoMTAsbHRydW5jKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JcXpfdG9fdGFiX3NwYWNlIDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwlxel90b190YWJfc3BhY2UgPDxFT0YgPmV4cGVjdGVkICYmCiAuLnNhZ2UgdHdvCiAuLnNhZ2Ugb25lCiBhZGQgYmFyICBaCi1pbml0aWFsICBaCisuLiR7c2FtcGxlX3V0ZjhfcGFydH1saWNoCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTE3MywxMSArMjA5LDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiU8KDEwLG10cnVuYyklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogbWVzcy4uIHR3bwogbWVzcy4uIG9uZQogYWRkIGJhciAgWgotaW5pdGlhbCAgWgoraW5pdC4ubGljaAogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xODYsMTEgKzIyMiwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPig0MCklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCXF6X3RvX3RhYl9zcGFjZSA8PFxFT0YgPmV4cGVjdGVkICYmCisJcXpfdG9fdGFiX3NwYWNlIDw8RU9GID5leHBlY3RlZCAmJgogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bwogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIG9uZQogWiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGJhcgotWiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbAorWiAgICAgICAgICAgICAgICAgICAgJChjb21taXRfbXNnKQogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0xOTksMTEgKzIzNSwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolaCAlPnwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bwotN2NkNmM2MyAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIG9uZQotMTcxMWJmOSAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkIGJhcgotYWYyMGMwNiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbAorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHR3bworJGhlYWQyICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ugb25lCiskaGVhZDMgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCBiYXIKKyRoZWFkNCAgICAgICAgICAgICAgJChjb21taXRfbXNnKQogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yMTIsMTEgKzI0OCwxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPigxKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBtZXNzYWdlIHR3bwogbWVzc2FnZSBvbmUKIGFkZCBiYXIKLWluaXRpYWwKKyQoY29tbWl0X21zZykKIEVPRgogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogJwpAQCAtMjI1LDExICsyNjEsMTEgQEAKIAlnaXQgbG9nIC0tcHJldHR5PSJmb3JtYXQ6JT48KDQwKSVzIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JcXpfdG9fdGFiX3NwYWNlIDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwlxel90b190YWJfc3BhY2UgPDxFT0YgPmV4cGVjdGVkICYmCiBaICAgICAgICAgICAgIG1lc3NhZ2UgdHdvICAgICAgICAgICAgICBaCiBaICAgICAgICAgICAgIG1lc3NhZ2Ugb25lICAgICAgICAgICAgICBaCiBaICAgICAgICAgICAgICAgYWRkIGJhciAgICAgICAgICAgICAgICBaCi1aICAgICAgICAgICAgICAgaW5pdGlhbCAgICAgICAgICAgICAgICBaCitaICAgICAgICAgJChjb21taXRfbXNnKSAgICAgICAgICBaCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTIzOCwxMSArMjc0LDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiVoICU+PHwoNDApJXMiID5hY3R1YWwgJiYKIAkjIGNvbXBsZXRlIHRoZSBpbmNvbXBsZXRlIGxpbmUgYXQgdGhlIGVuZAogCWVjaG8gPj5hY3R1YWwgJiYKLQlxel90b190YWJfc3BhY2UgPDxcRU9GID5leHBlY3RlZCAmJgotZmEzM2FiMSAgICAgICAgICAgbWVzc2FnZSB0d28gICAgICAgICAgWgotN2NkNmM2MyAgICAgICAgICAgbWVzc2FnZSBvbmUgICAgICAgICAgWgotMTcxMWJmOSAgICAgICAgICAgICBhZGQgYmFyICAgICAgICAgICAgWgotYWYyMGMwNiAgICAgICAgICAgICBpbml0aWFsICAgICAgICAgICAgWgorCXF6X3RvX3RhYl9zcGFjZSA8PEVPRiA+ZXhwZWN0ZWQgJiYKKyRoZWFkMSAgICAgICAgICAgbWVzc2FnZSB0d28gICAgICAgICAgWgorJGhlYWQyICAgICAgICAgICBtZXNzYWdlIG9uZSAgICAgICAgICBaCiskaGVhZDMgICAgICAgICAgICAgYWRkIGJhciAgICAgICAgICAgIFoKKyRoZWFkNCAgICAgICAkKGNvbW1pdF9tc2cpICAgICAgWgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCkBAIC0yNTEsMTEgKzI4NywxMSBAQAogCWdpdCBsb2cgLS1wcmV0dHk9ImZvcm1hdDolPjwoMSklcyIgPmFjdHVhbCAmJgogCSMgY29tcGxldGUgdGhlIGluY29tcGxldGUgbGluZSBhdCB0aGUgZW5kCiAJZWNobyA+PmFjdHVhbCAmJgotCWNhdCA8PFxFT0YgPmV4cGVjdGVkICYmCisJY2F0IDw8RU9GID5leHBlY3RlZCAmJgogbWVzc2FnZSB0d28KIG1lc3NhZ2Ugb25lCiBhZGQgYmFyCi1pbml0aWFsCiskKGNvbW1pdF9tc2cpCiBFT0YKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKQEAgLTI2NSwxMSArMzAxLDExIEBACiAJZ2l0IGxvZyAtLXByZXR0eT0iZm9ybWF0OiU8KDEwLHRydW5jKSVzJT4+KDEwLGx0cnVuYyklIGFuIiA+YWN0dWFsICYmCiAJIyBjb21wbGV0ZSB0aGUgaW5jb21wbGV0ZSBsaW5lIGF0IHRoZSBlbmQKIAllY2hvID4+YWN0dWFsICYmCi0JY2F0IDw8XEVPRiA+ZXhwZWN0ZWQgJiYKKwljYXQgPDxFT0YgPmV4cGVjdGVkICYmCiBzaG9ydCBsb25nICBsb25nIGxvbmcKIG1lc3NhZ2UgLi4gICBBIFUgVGhvcgogYWRkIGJhciAgICAgIEEgVSBUaG9yCi1pbml0aWFsICAgICAgQSBVIFRob3IKK2luaXRpYWwuLi4gICBBIFUgVGhvcgogRU9GCiAJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAnCmRpZmYgLS1naXQgYS90L3Q0MjExLWxpbmUtbG9nLnNoIGIvdC90NDIxMS1saW5lLWxvZy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NjY1ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS1saW5lLWxvZy5zaApAQCAtMCwwICsxLDgwIEBACisjIS9iaW4vc2gKKwordGVzdF9kZXNjcmlwdGlvbj0ndGVzdCBsb2cgLUwnCisuIC4vdGVzdC1saWIuc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgKGltcG9ydCBoaXN0b3J5KScgJworCWdpdCBmYXN0LWltcG9ydCA8ICIkVEVTVF9ESVJFQ1RPUlkiL3Q0MjExL2hpc3RvcnkuZXhwb3J0ICYmCisJZ2l0IHJlc2V0IC0taGFyZAorJworCitjYW5uZWRfdGVzdF8xICgpIHsKKwl0ZXN0X2V4cGVjdF8kMSAiJDIiICIKKwkJZ2l0IGxvZyAkMiA+YWN0dWFsICYmCisJCXRlc3RfY21wIFwiXCRURVNUX0RJUkVDVE9SWVwiL3Q0MjExL2V4cGVjdC4kMyBhY3R1YWwKKwkiCit9CisKK2Nhbm5lZF90ZXN0ICgpIHsKKwljYW5uZWRfdGVzdF8xIHN1Y2Nlc3MgIiRAIgorfQorY2FubmVkX3Rlc3RfZmFpbHVyZSAoKSB7CisJY2FubmVkX3Rlc3RfMSBmYWlsdXJlICIkQCIKK30KKwordGVzdF9iYWRfb3B0cyAoKSB7CisJdGVzdF9leHBlY3Rfc3VjY2VzcyAiaW52YWxpZCBhcmdzOiAkMSIgIgorCQl0ZXN0X211c3RfZmFpbCBnaXQgbG9nICQxIDI+ZXJyb3JzICYmCisJCWdyZXAgJyQyJyBlcnJvcnMKKwkiCit9CisKK2Nhbm5lZF90ZXN0ICItTCA0LDEyOmEuYyBzaW1wbGUiIHNpbXBsZS1mCitjYW5uZWRfdGVzdCAiLUwgNCwrOTphLmMgc2ltcGxlIiBzaW1wbGUtZgorY2FubmVkX3Rlc3QgIi1MICcvbG9uZyBmLywvXn0vOmEuYycgc2ltcGxlIiBzaW1wbGUtZgorY2FubmVkX3Rlc3QgIi1MIDpmOmEuYyBzaW1wbGUiIHNpbXBsZS1mLXRvLW1haW4KKworY2FubmVkX3Rlc3QgIi1MICcvbWFpbi8sL159LzphLmMnIHNpbXBsZSIgc2ltcGxlLW1haW4KK2Nhbm5lZF90ZXN0ICItTCA6bWFpbjphLmMgc2ltcGxlIiBzaW1wbGUtbWFpbi10by1lbmQKKworY2FubmVkX3Rlc3QgIi1MIDEsKzQ6YS5jIHNpbXBsZSIgYmVnaW5uaW5nLW9mLWZpbGUKKworY2FubmVkX3Rlc3QgIi1MIDIwOmEuYyBzaW1wbGUiIGVuZC1vZi1maWxlCisKK2Nhbm5lZF90ZXN0ICItTCAnL2xvbmcgZi8nLC9efS86YS5jIC1MIC9tYWluLywvXn0vOmEuYyBzaW1wbGUiIHR3by1yYW5nZXMKK2Nhbm5lZF90ZXN0ICItTCAyNCwrMTphLmMgc2ltcGxlIiB2YW5pc2hlcy1lYXJseQorCitjYW5uZWRfdGVzdCAiLU0gLUwgJy9sb25nIGYvLC9efS86Yi5jJyBtb3ZlLXN1cHBvcnQiIG1vdmUtc3VwcG9ydC1mCitjYW5uZWRfdGVzdCAiLU0gLUwgJzpmOmIuYycgcGFyYWxsZWwtY2hhbmdlIiBwYXJhbGxlbC1jaGFuZ2UtZi10by1tYWluCisKK2Nhbm5lZF90ZXN0ICItTCA0LDEyOmEuYyAtTCA6bWFpbjphLmMgc2ltcGxlIiBtdWx0aXBsZQorY2FubmVkX3Rlc3QgIi1MIDQsMTg6YS5jIC1MIDptYWluOmEuYyBzaW1wbGUiIG11bHRpcGxlLW92ZXJsYXBwaW5nCitjYW5uZWRfdGVzdCAiLUwgOm1haW46YS5jIC1MIDQsMTg6YS5jIHNpbXBsZSIgbXVsdGlwbGUtb3ZlcmxhcHBpbmcKK2Nhbm5lZF90ZXN0ICItTCA0OmEuYyAtTCA4LDEyOmEuYyBzaW1wbGUiIG11bHRpcGxlLXN1cGVyc2V0CitjYW5uZWRfdGVzdCAiLUwgOCwxMjphLmMgLUwgNDphLmMgc2ltcGxlIiBtdWx0aXBsZS1zdXBlcnNldAorCit0ZXN0X2JhZF9vcHRzICItTCIgInN3aXRjaC4qcmVxdWlyZXMgYSB2YWx1ZSIKK3Rlc3RfYmFkX29wdHMgIi1MIGIuYyIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCAxOiIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCAxOm5vbmV4aXN0ZW50IiAiVGhlcmUgaXMgbm8gcGF0aCIKK3Rlc3RfYmFkX29wdHMgIi1MIDE6c2ltcGxlIiAiVGhlcmUgaXMgbm8gcGF0aCIKK3Rlc3RfYmFkX29wdHMgIi1MICcvZm9vOmIuYyciICJhcmd1bWVudC4qbm90IG9mIHRoZSBmb3JtIgordGVzdF9iYWRfb3B0cyAiLUwgMTAwMDpiLmMiICJoYXMgb25seS4qbGluZXMiCit0ZXN0X2JhZF9vcHRzICItTCAxLDEwMDA6Yi5jIiAiaGFzIG9ubHkuKmxpbmVzIgordGVzdF9iYWRfb3B0cyAiLUwgOmIuYyIgImFyZ3VtZW50Lipub3Qgb2YgdGhlIGZvcm0iCit0ZXN0X2JhZF9vcHRzICItTCA6Zm9vOmIuYyIgIm5vIG1hdGNoIgorCisjIFRoZXJlIGlzIGEgc2VwYXJhdGUgYnVnIHdoZW4gYW4gZW1wdHkgLUwgcmFuZ2UgaXMgdGhlIGZpcnN0IC1MIGVuY291bnRlcmVkLAorIyB0aHVzIHRvIGRlbW9uc3RyYXRlIHRoaXMgcGFydGljdWxhciBidWcsIHRoZSBlbXB0eSAtTCByYW5nZSBtdXN0IGZvbGxvdyBhCisjIG5vbi1lbXB0eSAtTCByYW5nZS4KK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy1MIHtlbXB0eS1yYW5nZX0gKGFueSAtTCknICcKKwluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMSkgJiYKKwlnaXQgbG9nIC1MMSwxOmIuYyAtTCRuOmIuYworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctTCB7ZW1wdHktcmFuZ2V9IChmaXJzdCAtTCknICcKKwluPSQoZXhwciAkKHdjIC1sIDxiLmMpICsgMSkgJiYKKwlnaXQgbG9nIC1MJG46Yi5jCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QuYmVnaW5uaW5nLW9mLWZpbGUgYi90L3Q0MjExL2V4cGVjdC5iZWdpbm5pbmctb2YtZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWI0MDU0Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QuYmVnaW5uaW5nLW9mLWZpbGUKQEAgLTAsMCArMSw0MyBAQAorY29tbWl0IDRhMjNhZTVjOThkNTlhNThjNmRhMDM2MTU2OTU5ZjJkYzlmNDcyYWQKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0Nzo0MCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYXQgdmVyeSBiZWdpbm5pbmcKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xLDMgKzEsNCBAQAorKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAKKyBsb25nIGYobG9uZyB4KQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMSwzICsxLDMgQEAKKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICsxLDMgQEAKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKytpbnQgZihpbnQgeCkKZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0LmVuZC1vZi1maWxlIGIvdC90NDIxMS9leHBlY3QuZW5kLW9mLWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQyNWJiMgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LmVuZC1vZi1maWxlCkBAIC0wLDAgKzEsNjIgQEAKK2NvbW1pdCA0NjU5NTM4ODQ0ZGFhMjg0OWIxYTllN2Q2ZmFkYjk2ZmNkMjZmYzgzCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6NDMgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGJhY2sgdG8gY29tcGxldGUgbGluZQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIwLDMgKzIwLDUgQEAKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CistfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisrfQorKworKy8qIGluY29tcGxldGUgbGluZXMgYXJlIGJhZCEgKi8KKworY29tbWl0IDEwMGI2MWE2ZjJmNzIwZjgxMjYyMGE5ZDEwYWZiM2E5NjBjY2I3M2MKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODoxMCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIwLDMgKzIwLDMgQEAKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CistfQorK30KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTksMyArMTksMyBAQAorLQlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisrCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMTgsMyBAQAorKwlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisrCXJldHVybiAwOworK30KZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0Lm1vdmUtc3VwcG9ydC1mIGIvdC90NDIxMS9leHBlY3QubW92ZS1zdXBwb3J0LWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkwNWUwMQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0Lm1vdmUtc3VwcG9ydC1mCkBAIC0wLDAgKzEsODAgQEAKK2NvbW1pdCA2Y2UzYzRmZjY5MDEzNjA5OWJiMTdlMWE4NzY2Yjc1NzY0NzI2ZWE3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDk6NTAgMjAxMyArMDEwMAorCisgICAgYW5vdGhlciBzaW1wbGUgY2hhbmdlCisKK2RpZmYgLS1naXQgYS9iLmMgYi9iLmMKKy0tLSBhL2IuYworKysrIGIvYi5jCitAQCAtNCw5ICs0LDkgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworLQkJeCA+Pj0gMTsKKysJCXggLz0gMjsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKworY29tbWl0IGYwNGZiMjBmMmM3Nzg1MDk5NmNiYTczOTcwOWFjYzZmYWVjYzU4ZjcKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo1NSAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgZigpCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMyw4ICszLDkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZSBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YWQ1YjUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZQpAQCAtMCwwICsxLDEwNCBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNyBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisrCisrLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgMTAwYjYxYTZmMmY3MjBmODEyNjIwYTlkMTBhZmIzYTk2MGNjYjczYworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjEwIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSB0byBhbiBpbmNvbXBsZXRlIGxpbmUgYXQgZW5kCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KK0BAIC0xNyw1ICsxNyw1IEBACisgaW50IG1haW4gKCkKKyB7CistCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDggKzMsOSBAQAorIGludCBmKGludCB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorKwlyZXR1cm4gczsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzMsOCBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLW92ZXJsYXBwaW5nIGIvdC90NDIxMS9leHBlY3QubXVsdGlwbGUtb3ZlcmxhcHBpbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkzMGI2ZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLW92ZXJsYXBwaW5nCkBAIC0wLDAgKzEsMTg3IEBACitjb21taXQgNDY1OTUzODg0NGRhYTI4NDliMWE5ZTdkNmZhZGI5NmZjZDI2ZmM4MworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjQzIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBiYWNrIHRvIGNvbXBsZXRlIGxpbmUKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC00LDE5ICs0LDIxIEBACisgbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorK30KKysKKysvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC00LDE5ICs0LDE5IEBACisgbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IDM5YjZlYjJkNWI3MDZkMzMyMjE4NGExNjlmNjY2ZjI1ZWQzZmJkMDAKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NTo0MSAyMDEzICswMTAwCisKKyAgICB0b3VjaCBjb21tZW50CisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxOSArMywxOSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIEEgY29tbWVudC4KKysgKiBUaGlzIGlzIG9ubHkgYW4gZXhhbXBsZSEKKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKyAJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgYTZlYjgyNjQ3ZDVkNjdmODkzZGE0NDJmOGY5Mzc1ZmQ4OWEzYjFlMgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ1OjE2IDIwMTMgKzAxMDAKKworICAgIHRvdWNoIGJvdGggZnVuY3Rpb25zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxOSArMywxOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTggKzMsMTkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMywxOCBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KKysKKysvKgorKyAqIEEgY29tbWVudC4KKysgKi8KKysKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZS1zdXBlcnNldCBiL3QvdDQyMTEvZXhwZWN0Lm11bHRpcGxlLXN1cGVyc2V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MzBiNmUKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q0MjExL2V4cGVjdC5tdWx0aXBsZS1zdXBlcnNldApAQCAtMCwwICsxLDE4NyBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxOSArNCwyMSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisrCisrLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgMTAwYjYxYTZmMmY3MjBmODEyNjIwYTlkMTBhZmIzYTk2MGNjYjczYworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjEwIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSB0byBhbiBpbmNvbXBsZXRlIGxpbmUgYXQgZW5kCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxOSArNCwxOSBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCAzOWI2ZWIyZDViNzA2ZDMzMjIxODRhMTY5ZjY2NmYyNWVkM2ZiZDAwCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6NDEgMjAxMyArMDEwMAorCisgICAgdG91Y2ggY29tbWVudAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTkgKzMsMTkgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKy0gKiBBIGNvbW1lbnQuCisrICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworIH0KKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTkgKzMsMTkgQEAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKyAgKiBBIGNvbW1lbnQuCisgICovCisgCisgaW50IG1haW4gKCkKKyB7CistCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKyAJcmV0dXJuIDA7CisgfQorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDE4ICszLDE5IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKyBpbnQgbWFpbiAoKQorIHsKKyAJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzMsMTggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CisrCisrLyoKKysgKiBBIGNvbW1lbnQuCisrICovCisrCisraW50IG1haW4gKCkKKyt7CisrCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKysJcmV0dXJuIDA7CisrfQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QucGFyYWxsZWwtY2hhbmdlLWYtdG8tbWFpbiBiL3QvdDQyMTEvZXhwZWN0LnBhcmFsbGVsLWNoYW5nZS1mLXRvLW1haW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUyZGVmOAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnBhcmFsbGVsLWNoYW5nZS1mLXRvLW1haW4KQEAgLTAsMCArMSwxNjAgQEAKK2NvbW1pdCAwNDY5YzYwYmM0ODM3ZDUyZDk3YjFmMDgxZGVjNWY5OGRlYTIwZmVkCitNZXJnZTogYmEyMjdjNiA2Y2UzYzRmCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBpbmYuZXRoei5jaD4KK0RhdGU6ICAgRnJpIEFwciAxMiAxNjoxNjoyNCAyMDEzICswMjAwCisKKyAgICBNZXJnZSBhY3Jvc3MgdGhlIHJlbmFtZQorCisKK2NvbW1pdCA2Y2UzYzRmZjY5MDEzNjA5OWJiMTdlMWE4NzY2Yjc1NzY0NzI2ZWE3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDk6NTAgMjAxMyArMDEwMAorCisgICAgYW5vdGhlciBzaW1wbGUgY2hhbmdlCisKK2RpZmYgLS1naXQgYS9iLmMgYi9iLmMKKy0tLSBhL2IuYworKysrIGIvYi5jCitAQCAtNCwxNCArNCwxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CistCQl4ID4+PSAxOworKwkJeCAvPSAyOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICAqLworIAorCitjb21taXQgYmEyMjdjNjYzMjM0OTcwMGZiYjk1N2RlYzJiNTBmNWUyMzU4YmUzZgorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+CitEYXRlOiAgIEZyaSBBcHIgMTIgMTY6MTU6NTcgMjAxMyArMDIwMAorCisgICAgY2hhbmdlIG9uIGFub3RoZXIgbGluZSBvZiBoaXN0b3J5IHdoaWxlIHJlbmFtZSBoYXBwZW5zCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtNCwxNCArNCwxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorKyAqIFRoaXMgaXMgb25seSBhIHNob3J0IGV4YW1wbGUhCisgICovCisgCisKK2NvbW1pdCAzOWI2ZWIyZDViNzA2ZDMzMjIxODRhMTY5ZjY2NmYyNWVkM2ZiZDAwCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6NDEgMjAxMyArMDEwMAorCisgICAgdG91Y2ggY29tbWVudAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTQgKzMsMTQgQEAKKyBsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKy0gKiBBIGNvbW1lbnQuCisrICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgICovCisgCisKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDE0ICszLDE0IEBACistaW50IGYoaW50IHgpCisrbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorCitjb21taXQgZjA0ZmIyMGYyYzc3ODUwOTk2Y2JhNzM5NzA5YWNjNmZhZWNjNThmNworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjU1IDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBmKCkKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDEzICszLDE0IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKyAKKyAvKgorICAqIEEgY29tbWVudC4KKyAgKi8KKyAKKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMywxMyBAQAorK2ludCBmKGludCB4KQorK3sKKysJaW50IHMgPSAwOworKwl3aGlsZSAoeCkgeworKwkJeCA+Pj0gMTsKKysJCXMrKzsKKysJfQorK30KKysKKysvKgorKyAqIEEgY29tbWVudC4KKysgKi8KKysKZGlmZiAtLWdpdCBhL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1mIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmNWJjNAotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1mCkBAIC0wLDAgKzEsNTkgQEAKK2NvbW1pdCBhNmViODI2NDdkNWQ2N2Y4OTNkYTQ0MmY4ZjkzNzVmZDg5YTNiMWUyCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDU6MTYgMjAxMyArMDEwMAorCisgICAgdG91Y2ggYm90aCBmdW5jdGlvbnMKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0zLDkgKzMsOSBAQAorLWludCBmKGludCB4KQorK2xvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKworY29tbWl0IGYwNGZiMjBmMmM3Nzg1MDk5NmNiYTczOTcwOWFjYzZmYWVjYzU4ZjcKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo1NSAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgZigpCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMyw4ICszLDkgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDggQEAKKytpbnQgZihpbnQgeCkKKyt7CisrCWludCBzID0gMDsKKysJd2hpbGUgKHgpIHsKKysJCXggPj49IDE7CisrCQlzKys7CisrCX0KKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5zaW1wbGUtZi10by1tYWluIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYtdG8tbWFpbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDc1NzY4Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLWYtdG8tbWFpbgpAQCAtMCwwICsxLDEwMCBAQAorY29tbWl0IDM5YjZlYjJkNWI3MDZkMzMyMjE4NGExNjlmNjY2ZjI1ZWQzZmJkMDAKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NTo0MSAyMDEzICswMTAwCisKKyAgICB0b3VjaCBjb21tZW50CisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMywxNCArMywxNCBAQAorIGxvbmcgZihsb25nIHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisgCXJldHVybiBzOworIH0KKyAKKyAvKgorLSAqIEEgY29tbWVudC4KKysgKiBUaGlzIGlzIG9ubHkgYW4gZXhhbXBsZSEKKyAgKi8KKyAKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTQgKzMsMTQgQEAKKy1pbnQgZihpbnQgeCkKKytsb25nIGYobG9uZyB4KQorIHsKKyAJaW50IHMgPSAwOworIAl3aGlsZSAoeCkgeworIAkJeCA+Pj0gMTsKKyAJCXMrKzsKKyAJfQorIAlyZXR1cm4gczsKKyB9CisgCisgLyoKKyAgKiBBIGNvbW1lbnQuCisgICovCisgCisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsMTMgKzMsMTQgQEAKKyBpbnQgZihpbnQgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKysJcmV0dXJuIHM7CisgfQorIAorIC8qCisgICogQSBjb21tZW50LgorICAqLworIAorCitjb21taXQgZGU0YzQ4YWU4MTQ3OTJjMDJhNDljNGMzYzBjNzU3YWU2OWM1NWY2YQorQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ0OjQ4IDIwMTMgKzAxMDAKKworICAgIGluaXRpYWwKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIC9kZXYvbnVsbAorKysrIGIvYS5jCitAQCAtMCwwICszLDEzIEBACisraW50IGYoaW50IHgpCisreworKwlpbnQgcyA9IDA7CisrCXdoaWxlICh4KSB7CisrCQl4ID4+PSAxOworKwkJcysrOworKwl9CisrfQorKworKy8qCisrICogQSBjb21tZW50LgorKyAqLworKwpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3Quc2ltcGxlLW1haW4gYi90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWNlMzliCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3Quc2ltcGxlLW1haW4KQEAgLTAsMCArMSw2OCBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzE2LDUgQEAKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbi10by1lbmQgYi90L3Q0MjExL2V4cGVjdC5zaW1wbGUtbWFpbi10by1lbmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ4MGJkOQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDQyMTEvZXhwZWN0LnNpbXBsZS1tYWluLXRvLWVuZApAQCAtMCwwICsxLDcwIEBACitjb21taXQgNDY1OTUzODg0NGRhYTI4NDliMWE5ZTdkNmZhZGI5NmZjZDI2ZmM4MworQXV0aG9yOiBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPgorRGF0ZTogICBUaHUgRmViIDI4IDEwOjQ4OjQzIDIwMTMgKzAxMDAKKworICAgIGNoYW5nZSBiYWNrIHRvIGNvbXBsZXRlIGxpbmUKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw3IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorK30KKysKKysvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzE2LDUgQEAKKytpbnQgbWFpbiAoKQorK3sKKysJcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlyZXR1cm4gMDsKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2V4cGVjdC50d28tcmFuZ2VzIGIvdC90NDIxMS9leHBlY3QudHdvLXJhbmdlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTA5YWEwCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QudHdvLXJhbmdlcwpAQCAtMCwwICsxLDEwMiBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMTgsNSArMTgsNSBAQAorIGludCBtYWluICgpCisgeworIAlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKy19CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyt9CisKK2NvbW1pdCAxMDBiNjFhNmYyZjcyMGY4MTI2MjBhOWQxMGFmYjNhOTYwY2NiNzNjCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDg6MTAgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIHRvIGFuIGluY29tcGxldGUgbGluZSBhdCBlbmQKKworZGlmZiAtLWdpdCBhL2EuYyBiL2EuYworLS0tIGEvYS5jCisrKysgYi9hLmMKK0BAIC0xOCw1ICsxOCw1IEBACisgaW50IG1haW4gKCkKKyB7CisgCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisgCXJldHVybiAwOworLX0KKyt9CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKworY29tbWl0IGE2ZWI4MjY0N2Q1ZDY3Zjg5M2RhNDQyZjhmOTM3NWZkODlhM2IxZTIKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NToxNiAyMDEzICswMTAwCisKKyAgICB0b3VjaCBib3RoIGZ1bmN0aW9ucworCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsOSArMyw5IEBACistaW50IGYoaW50IHgpCisrbG9uZyBmKGxvbmcgeCkKKyB7CisgCWludCBzID0gMDsKKyAJd2hpbGUgKHgpIHsKKyAJCXggPj49IDE7CisgCQlzKys7CisgCX0KKyAJcmV0dXJuIHM7CisgfQorQEAgLTE3LDUgKzE3LDUgQEAKKyBpbnQgbWFpbiAoKQorIHsKKy0JcHJpbnRmKCIlZFxuIiwgZigxNSkpOworKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworIAlyZXR1cm4gMDsKKyB9CisKK2NvbW1pdCBmMDRmYjIwZjJjNzc4NTA5OTZjYmE3Mzk3MDlhY2M2ZmFlY2M1OGY3CitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NTUgMjAxMyArMDEwMAorCisgICAgY2hhbmdlIGYoKQorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTMsOCArMyw5IEBACisgaW50IGYoaW50IHgpCisgeworIAlpbnQgcyA9IDA7CisgCXdoaWxlICh4KSB7CisgCQl4ID4+PSAxOworIAkJcysrOworIAl9CisrCXJldHVybiBzOworIH0KKworY29tbWl0IGRlNGM0OGFlODE0NzkyYzAyYTQ5YzRjM2MwYzc1N2FlNjljNTVmNmEKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0NDo0OCAyMDEzICswMTAwCisKKyAgICBpbml0aWFsCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSAvZGV2L251bGwKKysrKyBiL2EuYworQEAgLTAsMCArMyw4IEBACisraW50IGYoaW50IHgpCisreworKwlpbnQgcyA9IDA7CisrCXdoaWxlICh4KSB7CisrCQl4ID4+PSAxOworKwkJcysrOworKwl9CisrfQpkaWZmIC0tZ2l0IGEvdC90NDIxMS9leHBlY3QudmFuaXNoZXMtZWFybHkgYi90L3Q0MjExL2V4cGVjdC52YW5pc2hlcy1lYXJseQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjdjZDA2Ci0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9leHBlY3QudmFuaXNoZXMtZWFybHkKQEAgLTAsMCArMSwzOSBAQAorY29tbWl0IDQ2NTk1Mzg4NDRkYWEyODQ5YjFhOWU3ZDZmYWRiOTZmY2QyNmZjODMKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODo0MyAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgYmFjayB0byBjb21wbGV0ZSBsaW5lCisKK2RpZmYgLS1naXQgYS9hLmMgYi9hLmMKKy0tLSBhL2EuYworKysrIGIvYS5jCitAQCAtMjIsMSArMjQsMSBAQAorLX0KK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorKy8qIGluY29tcGxldGUgbGluZXMgYXJlIGJhZCEgKi8KKworY29tbWl0IDEwMGI2MWE2ZjJmNzIwZjgxMjYyMGE5ZDEwYWZiM2E5NjBjY2I3M2MKK0F1dGhvcjogVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4KK0RhdGU6ICAgVGh1IEZlYiAyOCAxMDo0ODoxMCAyMDEzICswMTAwCisKKyAgICBjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gYS9hLmMKKysrKyBiL2EuYworQEAgLTIyLDEgKzIyLDEgQEAKKy19CisrfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisKK2NvbW1pdCBkZTRjNDhhZTgxNDc5MmMwMmE0OWM0YzNjMGM3NTdhZTY5YzU1ZjZhCitBdXRob3I6IFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+CitEYXRlOiAgIFRodSBGZWIgMjggMTA6NDQ6NDggMjAxMyArMDEwMAorCisgICAgaW5pdGlhbAorCitkaWZmIC0tZ2l0IGEvYS5jIGIvYS5jCistLS0gL2Rldi9udWxsCisrKysgYi9hLmMKK0BAIC0wLDAgKzIwLDEgQEAKKyt9CmRpZmYgLS1naXQgYS90L3Q0MjExL2hpc3RvcnkuZXhwb3J0IGIvdC90NDIxMS9oaXN0b3J5LmV4cG9ydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWY0MWUyCi0tLSAvZGV2L251bGwKKysrIGIvdC90NDIxMS9oaXN0b3J5LmV4cG9ydApAQCAtMCwwICsxLDQwNiBAQAorYmxvYgorbWFyayA6MQorZGF0YSAxNTcKKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgZihpbnQgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworcmVzZXQgcmVmcy90YWdzL3NpbXBsZQorY29tbWl0IHJlZnMvdGFncy9zaW1wbGUKK21hcmsgOjIKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0Njg4ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDY4OCArMDEwMAorZGF0YSA4Citpbml0aWFsCitNIDEwMDY0NCA6MSBhLmMKKworYmxvYgorbWFyayA6MworZGF0YSAxNjgKKyNpbmNsdWRlIDxzdGRpby5oPgorCitpbnQgZihpbnQgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworY29tbWl0IHJlZnMvdGFncy9zaW1wbGUKK21hcmsgOjQKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0Njk1ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDY5NSArMDEwMAorZGF0YSAxMQorY2hhbmdlIGYoKQorZnJvbSA6MgorTSAxMDA2NDQgOjMgYS5jCisKK2Jsb2IKK21hcmsgOjUKK2RhdGEgMTcxCisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIEEgY29tbWVudC4KKyAqLworCitpbnQgbWFpbiAoKQoreworCXByaW50ZigiJWxkXG4iLCBmKDE1KSk7CisJcmV0dXJuIDA7Cit9CisKK2NvbW1pdCByZWZzL3RhZ3Mvc2ltcGxlCittYXJrIDo2CithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDcxNiArMDEwMAorY29tbWl0dGVyIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ3MTYgKzAxMDAKK2RhdGEgMjEKK3RvdWNoIGJvdGggZnVuY3Rpb25zCitmcm9tIDo0CitNIDEwMDY0NCA6NSBhLmMKKworYmxvYgorbWFyayA6NworZGF0YSAxODUKKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4ID4+PSAxOworCQlzKys7CisJfQorCXJldHVybiBzOworfQorCisvKgorICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6OAorYXV0aG9yIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ3NDEgKzAxMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0NzQxICswMTAwCitkYXRhIDE0Cit0b3VjaCBjb21tZW50Citmcm9tIDo2CitNIDEwMDY0NCA6NyBhLmMKKworYmxvYgorbWFyayA6OQorZGF0YSAyMDUKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4ID4+PSAxOworCQlzKys7CisJfQorCXJldHVybiBzOworfQorCisvKgorICogVGhpcyBpcyBvbmx5IGFuIGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6MTAKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0ODYwICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDg2MCArMDEwMAorZGF0YSAyNQorY2hhbmdlIGF0IHZlcnkgYmVnaW5uaW5nCitmcm9tIDo4CitNIDEwMDY0NCA6OSBhLmMKKworYmxvYgorbWFyayA6MTEKK2RhdGEgMjA0CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KK2NvbW1pdCByZWZzL3RhZ3Mvc2ltcGxlCittYXJrIDoxMgorYXV0aG9yIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ4OTAgKzAxMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0ODkwICswMTAwCitkYXRhIDM2CitjaGFuZ2UgdG8gYW4gaW5jb21wbGV0ZSBsaW5lIGF0IGVuZAorZnJvbSA6MTAKK00gMTAwNjQ0IDoxMSBhLmMKKworYmxvYgorbWFyayA6MTMKK2RhdGEgMjM4CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworbG9uZyBmKGxvbmcgeCkKK3sKKwlpbnQgcyA9IDA7CisJd2hpbGUgKHgpIHsKKwkJeCA+Pj0gMTsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy90YWdzL3NpbXBsZQorbWFyayA6MTQKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0OTIzICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDkyMyArMDEwMAorZGF0YSAyOQorY2hhbmdlIGJhY2sgdG8gY29tcGxldGUgbGluZQorZnJvbSA6MTIKK00gMTAwNjQ0IDoxMyBhLmMKKworY29tbWl0IHJlZnMvdGFncy9tb3ZlLXN1cHBvcnQKK21hcmsgOjE1CithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDk2OCArMDEwMAorY29tbWl0dGVyIFRob21hcyBSYXN0IDx0cmFzdEBzdHVkZW50LmV0aHouY2g+IDEzNjIwNDQ5NjggKzAxMDAKK2RhdGEgMTAKK21vdmUgZmlsZQorZnJvbSA6MTQKK0QgYS5jCitNIDEwMDY0NCA6MTMgYi5jCisKK2Jsb2IKK21hcmsgOjE2CitkYXRhIDIzNworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggLz0gMjsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy90YWdzL21vdmUtc3VwcG9ydAorbWFyayA6MTcKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ0OTkwICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NDk5MCArMDEwMAorZGF0YSAyMgorYW5vdGhlciBzaW1wbGUgY2hhbmdlCitmcm9tIDoxNQorTSAxMDA2NDQgOjE2IGIuYworCitibG9iCittYXJrIDoxOAorZGF0YSAyNTQKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCitsb25nIGYobG9uZyB4KTsKKworLyoKKyAqIFRoaXMgaXMgb25seSBhbiBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitsb25nIGYobG9uZyB4KQoreworCWludCBzID0gMDsKKwl3aGlsZSAoeCkgeworCQl4IC89IDI7CisJCXMrKzsKKwl9CisJcmV0dXJuIHM7Cit9CisKK2NvbW1pdCByZWZzL2hlYWRzL21hc3RlcgorbWFyayA6MTkKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAc3R1ZGVudC5ldGh6LmNoPiAxMzYyMDQ1MDI0ICswMTAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QHN0dWRlbnQuZXRoei5jaD4gMTM2MjA0NTAyNCArMDEwMAorZGF0YSAyMQorbW92ZSB3aXRoaW4gdGhlIGZpbGUKK2Zyb20gOjE3CitNIDEwMDY0NCA6MTggYi5jCisKK2Jsb2IKK21hcmsgOjIwCitkYXRhIDI0MworI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggPj49IDE7CisJCXMrKzsKKwl9CisJcmV0dXJuIHM7Cit9CisKKy8qCisgKiBUaGlzIGlzIG9ubHkgYSBzaG9ydCBleGFtcGxlIQorICovCisKK2ludCBtYWluICgpCit7CisJcHJpbnRmKCIlbGRcbiIsIGYoMTUpKTsKKwlyZXR1cm4gMDsKK30KKworLyogaW5jb21wbGV0ZSBsaW5lcyBhcmUgYmFkISAqLworCitjb21taXQgcmVmcy9oZWFkcy9wYXJhbGxlbC1jaGFuZ2UKK21hcmsgOjIxCithdXRob3IgVGhvbWFzIFJhc3QgPHRyYXN0QGluZi5ldGh6LmNoPiAxMzY1Nzc2MTU3ICswMjAwCitjb21taXR0ZXIgVGhvbWFzIFJhc3QgPHRyYXN0QGluZi5ldGh6LmNoPiAxMzY1Nzc2MTU3ICswMjAwCitkYXRhIDU1CitjaGFuZ2Ugb24gYW5vdGhlciBsaW5lIG9mIGhpc3Rvcnkgd2hpbGUgcmVuYW1lIGhhcHBlbnMKK2Zyb20gOjE0CitNIDEwMDY0NCA6MjAgYS5jCisKK2Jsb2IKK21hcmsgOjIyCitkYXRhIDI0MgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2xvbmcgZihsb25nIHgpCit7CisJaW50IHMgPSAwOworCXdoaWxlICh4KSB7CisJCXggLz0gMjsKKwkJcysrOworCX0KKwlyZXR1cm4gczsKK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBhIHNob3J0IGV4YW1wbGUhCisgKi8KKworaW50IG1haW4gKCkKK3sKKwlwcmludGYoIiVsZFxuIiwgZigxNSkpOworCXJldHVybiAwOworfQorCisvKiBpbmNvbXBsZXRlIGxpbmVzIGFyZSBiYWQhICovCisKK2NvbW1pdCByZWZzL2hlYWRzL3BhcmFsbGVsLWNoYW5nZQorbWFyayA6MjMKK2F1dGhvciBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDEzNjU3NzYxODQgKzAyMDAKK2NvbW1pdHRlciBUaG9tYXMgUmFzdCA8dHJhc3RAaW5mLmV0aHouY2g+IDEzNjU3NzYxOTEgKzAyMDAKK2RhdGEgMjQKK01lcmdlIGFjcm9zcyB0aGUgcmVuYW1lCitmcm9tIDoyMQorbWVyZ2UgOjE3CitEIGEuYworTSAxMDA2NDQgOjIyIGIuYworCityZXNldCByZWZzL2hlYWRzL3BhcmFsbGVsLWNoYW5nZQorZnJvbSA6MjMKKwpkaWZmIC0tZ2l0IGEvdC90NDMwMC1tZXJnZS10cmVlLnNoIGIvdC90NDMwMC1tZXJnZS10cmVlLnNoCmluZGV4IDJkZWZiNDIuLjkwMTVlNDcgMTAwNzU1Ci0tLSBhL3QvdDQzMDAtbWVyZ2UtdHJlZS5zaAorKysgYi90L3Q0MzAwLW1lcmdlLXRyZWUuc2gKQEAgLTI1OSw2ICsyNTksNTcgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAndHJlZSBhZGQgQSwgQiAoc2FtZSknICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJRU9GCisJZ2l0IHJlc2V0IC0taGFyZCBpbml0aWFsICYmCisJbWtkaXIgc3ViICYmCisJdGVzdF9jb21taXQgImFkZCBzdWIvZmlsZSIgInN1Yi9maWxlIiAiZmlsZSIgYWRkLXRyZWUtQSAmJgorCWdpdCBtZXJnZS10cmVlIGluaXRpYWwgYWRkLXRyZWUtQSBhZGQtdHJlZS1BID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RyZWUgYWRkIEEsIEIgKGRpZmZlcmVudCknICcKKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCisJYWRkZWQgaW4gYm90aAorCSAgb3VyICAgIDEwMDY0NCA0M2Q1YThlZDZlZjZjMDBmZjc3NTAwODYzM2Y5NTc4N2QwODgyODVkIHN1Yi9maWxlCisJICB0aGVpciAgMTAwNjQ0IGJhNjI5MjM4Y2E4OTQ4OWYyYjM1MGUxOTZjYTQ0NWUwOWQ4YmI4MzQgc3ViL2ZpbGUKKwlAQCAtMSArMSw1IEBACisJKzw8PDw8PDwgLm91cgorCSBBQUEKKwkrPT09PT09PQorCStCQkIKKwkrPj4+Pj4+PiAudGhlaXIKKwlFT0YKKwlnaXQgcmVzZXQgLS1oYXJkIGluaXRpYWwgJiYKKwlta2RpciBzdWIgJiYKKwl0ZXN0X2NvbW1pdCAiYWRkIHN1Yi9maWxlIiAic3ViL2ZpbGUiICJBQUEiIGFkZC10cmVlLWEtYi1BICYmCisJZ2l0IHJlc2V0IC0taGFyZCBpbml0aWFsICYmCisJbWtkaXIgc3ViICYmCisJdGVzdF9jb21taXQgImFkZCBzdWIvZmlsZSIgInN1Yi9maWxlIiAiQkJCIiBhZGQtdHJlZS1hLWItQiAmJgorCWdpdCBtZXJnZS10cmVlIGluaXRpYWwgYWRkLXRyZWUtYS1iLUEgYWRkLXRyZWUtYS1iLUIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndHJlZSB1bmNoYW5nZWQgQSwgcmVtb3ZlZCBCJyAnCisJY2F0ID5leHBlY3QgPDwtXEVPRiAmJgorCXJlbW92ZWQgaW4gcmVtb3RlCisJICBiYXNlICAgMTAwNjQ0IDQzZDVhOGVkNmVmNmMwMGZmNzc1MDA4NjMzZjk1Nzg3ZDA4ODI4NWQgc3ViL2ZpbGUKKwkgIG91ciAgICAxMDA2NDQgNDNkNWE4ZWQ2ZWY2YzAwZmY3NzUwMDg2MzNmOTU3ODdkMDg4Mjg1ZCBzdWIvZmlsZQorCUBAIC0xICswLDAgQEAKKwktQUFBCisJRU9GCisJZ2l0IHJlc2V0IC0taGFyZCBpbml0aWFsICYmCisJbWtkaXIgc3ViICYmCisJdGVzdF9jb21taXQgImFkZCBzdWIvZmlsZSIgInN1Yi9maWxlIiAiQUFBIiB0cmVlLXJlbW92ZS1iLWluaXRpYWwgJiYKKwlnaXQgcm0gc3ViL2ZpbGUgJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC1tICJyZW1vdmUgc3ViL2ZpbGUiICYmCisJZ2l0IHRhZyB0cmVlLXJlbW92ZS1iLUIgJiYKKwlnaXQgbWVyZ2UtdHJlZSB0cmVlLXJlbW92ZS1iLWluaXRpYWwgdHJlZS1yZW1vdmUtYi1pbml0aWFsIHRyZWUtcmVtb3ZlLWItQiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd0dXJuIGZpbGUgdG8gdHJlZScgJwogCWdpdCByZXNldCAtLWhhcmQgaW5pdGlhbCAmJgogCXJtIGluaXRpYWwtZmlsZSAmJgpkaWZmIC0tZ2l0IGEvdC90NTAwMC10YXItdHJlZS5zaCBiL3QvdDUwMDAtdGFyLXRyZWUuc2gKaW5kZXggM2ZiZDM2Ni4uYzIwMjNiMSAxMDA3NTUKLS0tIGEvdC90NTAwMC10YXItdHJlZS5zaAorKysgYi90L3Q1MDAwLXRhci10cmVlLnNoCkBAIC0zMCwxMCArMzAsNzYgQEAKIAogU1VCU1RGT1JNQVQ9JUglbgogCit0ZXN0X2xhenlfcHJlcmVxIFRBUl9ORUVEU19QQVhfRkFMTEJBQ0sgJworCSgKKwkJbWtkaXIgcGF4ICYmCisJCWNkIHBheCAmJgorCQkiJFRBUiIgeGYgIiRURVNUX0RJUkVDVE9SWSIvdDUwMDAvcGF4LnRhciAmJgorCQl0ZXN0IC1mIFBheEhlYWRlcnMuMTc5MS9maWxlCisJKQorJworCitnZXRfcGF4X2hlYWRlcigpIHsKKwlmaWxlPSQxCisJaGVhZGVyPSQyPQorCisJd2hpbGUgcmVhZCBsZW4gcmVzdAorCWRvCisJCWlmIHRlc3QgIiRsZW4iID0gJChlY2hvICIkbGVuICRyZXN0IiB8IHdjIC1jKQorCQl0aGVuCisJCQljYXNlICIkcmVzdCIgaW4KKwkJCSRoZWFkZXIqKQorCQkJCWVjaG8gIiR7cmVzdCMkaGVhZGVyfSIKKwkJCQk7OworCQkJZXNhYworCQlmaQorCWRvbmUgPCIkZmlsZSIKK30KKworY2hlY2tfdGFyKCkgeworCXRhcmZpbGU9JDEudGFyCisJbGlzdGZpbGU9JDEubHN0CisJZGlyPSQxCisJZGlyX3dpdGhfcHJlZml4PSRkaXIvJDIKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyBleHRyYWN0IHRhciBhcmNoaXZlJyAnCisJCShta2RpciAkZGlyICYmIGNkICRkaXIgJiYgIiRUQVIiIHhmIC0pIDwkdGFyZmlsZQorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgVEFSX05FRURTX1BBWF9GQUxMQkFDSyAnIGludGVycHJldCBwYXggaGVhZGVycycgJworCQkoCisJCQljZCAkZGlyICYmCisJCQlmb3IgaGVhZGVyIGluICoucGF4aGVhZGVyCisJCQlkbworCQkJCWRhdGE9JHtoZWFkZXIlLnBheGhlYWRlcn0uZGF0YSAmJgorCQkJCWlmIHRlc3QgLWggJGRhdGEgLW8gLWUgJGRhdGEKKwkJCQl0aGVuCisJCQkJCXBhdGg9JChnZXRfcGF4X2hlYWRlciAkaGVhZGVyIHBhdGgpICYmCisJCQkJCWlmIHRlc3QgLW4gIiRwYXRoIgorCQkJCQl0aGVuCisJCQkJCQltdiAiJGRhdGEiICIkcGF0aCIKKwkJCQkJZmkKKwkJCQlmaQorCQkJZG9uZQorCQkpCisJJworCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAnIHZhbGlkYXRlIGZpbGVuYW1lcycgJworCQkoY2QgJHtkaXJfd2l0aF9wcmVmaXh9YSAmJiBmaW5kIC4pIHwgc29ydCA+JGxpc3RmaWxlICYmCisJCXRlc3RfY21wIGEubHN0ICRsaXN0ZmlsZQorCScKKworCXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyB2YWxpZGF0ZSBmaWxlIGNvbnRlbnRzJyAnCisJCWRpZmYgLXIgYSAke2Rpcl93aXRoX3ByZWZpeH1hCisJJworfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKICAgICAncG9wdWxhdGUgd29ya2RpcicgXAotICAgICdta2RpciBhIGIgYyAmJgorICAgICdta2RpciBhICYmCiAgICAgIGVjaG8gc2ltcGxlIHRleHRmaWxlID5hL2EgJiYKKyAgICAgdGVuPTAxMjM0NTY3ODkgJiYgaHVuZHJlZD0kdGVuJHRlbiR0ZW4kdGVuJHRlbiR0ZW4kdGVuJHRlbiR0ZW4kdGVuICYmCisgICAgIGVjaG8gbG9uZyBmaWxlbmFtZSA+YS9mb3VyJGh1bmRyZWQgJiYKICAgICAgbWtkaXIgYS9iaW4gJiYKICAgICAgY3AgL2Jpbi9zaCBhL2JpbiAmJgogICAgICBwcmludGYgIkFcJEZvcm1hdDolc1wkTyIgIiRTVUJTVEZPUk1BVCIgPmEvc3Vic3RmaWxlMSAmJgpAQCAtNjIsNiArMTI4LDEyIEBACiAgICAgIGdpdCB1cGRhdGUtcmVmIEhFQUQgJChUWj1HTVQgR0lUX0NPTU1JVFRFUl9EQVRFPSIyMDA1LTA1LTI3IDIyOjAwOjAwIiBcCiAgICAgIGdpdCBjb21taXQtdHJlZSAkdHJlZWlkIDwvZGV2L251bGwpJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBleHBvcnQtc3Vic3QnICcKKwllY2hvICJzdWJzdGZpbGU/IiBleHBvcnQtc3Vic3QgPj4uZ2l0L2luZm8vYXR0cmlidXRlcyAmJgorCWdpdCBsb2cgLS1tYXgtY291bnQ9MSAiLS1wcmV0dHk9Zm9ybWF0OkEke1NVQlNURk9STUFUfU8iIEhFQUQgXAorCQk+YS9zdWJzdGZpbGUxCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdjcmVhdGUgYmFyZSBjbG9uZScgXAogICAgICdnaXQgY2xvbmUgLS1iYXJlIC4gYmFyZS5naXQgJiYKQEAgLTc1LDEzICsxNDcsMTkgQEAKICAgICAnZ2l0IGFyY2hpdmUnIFwKICAgICAnZ2l0IGFyY2hpdmUgSEVBRCA+Yi50YXInCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdnaXQgdGFyLXRyZWUnIFwKLSAgICAnZ2l0IHRhci10cmVlIEhFQUQgPmIyLnRhcicKK2NoZWNrX3RhciBiCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdnaXQgYXJjaGl2ZSB2cy4gZ2l0IHRhci10cmVlJyBcCi0gICAgJ3Rlc3RfY21wIGIudGFyIGIyLnRhcicKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhcmNoaXZlIC0tcHJlZml4PXByZWZpeC8nICcKKwlnaXQgYXJjaGl2ZSAtLXByZWZpeD1wcmVmaXgvIEhFQUQgPndpdGhfcHJlZml4LnRhcgorJworCitjaGVja190YXIgd2l0aF9wcmVmaXggcHJlZml4LworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQtYXJjaGl2ZSAtLXByZWZpeD1vbGRlLScgJworCWdpdCBhcmNoaXZlIC0tcHJlZml4PW9sZGUtIEhFQUQgPndpdGhfb2xkZS1wcmVmaXgudGFyCisnCisKK2NoZWNrX3RhciB3aXRoX29sZGUtcHJlZml4IG9sZGUtCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBhcmNoaXZlIG9uIGxhcmdlIGZpbGVzJyAnCiAgICAgdGVzdF9jb25maWcgY29yZS5iaWdmaWxldGhyZXNob2xkIDEgJiYKQEAgLTExOCw2NiArMTk2LDE0IEBACiAgICAgJ2dpdCBnZXQtdGFyLWNvbW1pdC1pZCA8Yi50YXIgPmIuY29tbWl0aWQgJiYKICAgICAgdGVzdF9jbXAgLmdpdC8kKGdpdCBzeW1ib2xpYy1yZWYgSEVBRCkgYi5jb21taXRpZCcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2V4dHJhY3QgdGFyIGFyY2hpdmUnIFwKLSAgICAnKGNkIGIgJiYgIiRUQVIiIHhmIC0pIDxiLnRhcicKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGVuYW1lcycgXAotICAgICcoY2QgYi9hICYmIGZpbmQgLikgfCBzb3J0ID5iLmxzdCAmJgotICAgICB0ZXN0X2NtcCBhLmxzdCBiLmxzdCcKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGUgY29udGVudHMnIFwKLSAgICAnZGlmZiAtciBhIGIvYScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2dpdCB0YXItdHJlZSB3aXRoIHByZWZpeCcgXAotICAgICdnaXQgdGFyLXRyZWUgSEVBRCBwcmVmaXggPmMudGFyJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZXh0cmFjdCB0YXIgYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICcoY2QgYyAmJiAiJFRBUiIgeGYgLSkgPGMudGFyJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAndmFsaWRhdGUgZmlsZW5hbWVzIHdpdGggcHJlZml4JyBcCi0gICAgJyhjZCBjL3ByZWZpeC9hICYmIGZpbmQgLikgfCBzb3J0ID5jLmxzdCAmJgotICAgICB0ZXN0X2NtcCBhLmxzdCBjLmxzdCcKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ3ZhbGlkYXRlIGZpbGUgY29udGVudHMgd2l0aCBwcmVmaXgnIFwKLSAgICAnZGlmZiAtciBhIGMvcHJlZml4L2EnCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICdjcmVhdGUgYXJjaGl2ZXMgd2l0aCBzdWJzdGZpbGVzJyBcCi0gICAgJ2NwIC5naXQvaW5mby9hdHRyaWJ1dGVzIC5naXQvaW5mby9hdHRyaWJ1dGVzLmJlZm9yZSAmJgotICAgICBlY2hvICJzdWJzdGZpbGU/IiBleHBvcnQtc3Vic3QgPj4uZ2l0L2luZm8vYXR0cmlidXRlcyAmJgotICAgICBnaXQgYXJjaGl2ZSBIRUFEID5mLnRhciAmJgotICAgICBnaXQgYXJjaGl2ZSAtLXByZWZpeD1wcmVmaXgvIEhFQUQgPmcudGFyICYmCi0gICAgIG12IC5naXQvaW5mby9hdHRyaWJ1dGVzLmJlZm9yZSAuZ2l0L2luZm8vYXR0cmlidXRlcycKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBcCi0gICAgJ2V4dHJhY3Qgc3Vic3RmaWxlcycgXAotICAgICcobWtkaXIgZiAmJiBjZCBmICYmICIkVEFSIiB4ZiAtKSA8Zi50YXInCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICAndmFsaWRhdGUgc3Vic3RmaWxlIGNvbnRlbnRzJyBcCi0gICAgICdnaXQgbG9nIC0tbWF4LWNvdW50PTEgIi0tcHJldHR5PWZvcm1hdDpBJHtTVUJTVEZPUk1BVH1PIiBIRUFEIFwKLSAgICAgID5mL2Evc3Vic3RmaWxlMS5leHBlY3RlZCAmJgotICAgICAgdGVzdF9jbXAgZi9hL3N1YnN0ZmlsZTEuZXhwZWN0ZWQgZi9hL3N1YnN0ZmlsZTEgJiYKLSAgICAgIHRlc3RfY21wIGEvc3Vic3RmaWxlMiBmL2Evc3Vic3RmaWxlMgordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHRhci10cmVlJyAnCisJZ2l0IHRhci10cmVlIEhFQUQgPnRhci10cmVlLnRhciAmJgorCXRlc3RfY21wIGIudGFyIHRhci10cmVlLnRhcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFwKLSAgICAnZXh0cmFjdCBzdWJzdGZpbGVzIGZyb20gYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICcobWtkaXIgZyAmJiBjZCBnICYmICIkVEFSIiB4ZiAtKSA8Zy50YXInCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAotICAgICAndmFsaWRhdGUgc3Vic3RmaWxlIGNvbnRlbnRzIGZyb20gYXJjaGl2ZSB3aXRoIHByZWZpeCcgXAotICAgICAnZ2l0IGxvZyAtLW1heC1jb3VudD0xICItLXByZXR0eT1mb3JtYXQ6QSR7U1VCU1RGT1JNQVR9TyIgSEVBRCBcCi0gICAgICA+Zy9wcmVmaXgvYS9zdWJzdGZpbGUxLmV4cGVjdGVkICYmCi0gICAgICB0ZXN0X2NtcCBnL3ByZWZpeC9hL3N1YnN0ZmlsZTEuZXhwZWN0ZWQgZy9wcmVmaXgvYS9zdWJzdGZpbGUxICYmCi0gICAgICB0ZXN0X2NtcCBhL3N1YnN0ZmlsZTIgZy9wcmVmaXgvYS9zdWJzdGZpbGUyCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgdGFyLXRyZWUgd2l0aCBwcmVmaXgnICcKKwlnaXQgdGFyLXRyZWUgSEVBRCBwcmVmaXggPnRhci10cmVlX3dpdGhfcHJlZml4LnRhciAmJgorCXRlc3RfY21wIHdpdGhfcHJlZml4LnRhciB0YXItdHJlZV93aXRoX3ByZWZpeC50YXIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGFyY2hpdmUgd2l0aCAtLW91dHB1dCwgb3ZlcnJpZGUgaW5mZXJyZWQgZm9ybWF0JyAnCkBAIC0xOTcsMTggKzIyMyw2IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGFyY2hpdmUgLS1yZW1vdGU9LiAkc2hhMSA+cmVtb3RlLnRhcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQtYXJjaGl2ZSAtLXByZWZpeD1vbGRlLScgJwotCWdpdCBhcmNoaXZlIC0tcHJlZml4PW9sZGUtID5oLnRhciBIRUFEICYmCi0JKAotCQlta2RpciBoICYmCi0JCWNkIGggJiYKLQkJIiRUQVIiIHhmIC0gPC4uL2gudGFyCi0JKSAmJgotCXRlc3QgLWQgaC9vbGRlLWEgJiYKLQl0ZXN0IC1kIGgvb2xkZS1hL2JpbiAmJgotCXRlc3QgLWYgaC9vbGRlLWEvYmluL3NoCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHRhciBmaWx0ZXJzJyAnCiAJZ2l0IGNvbmZpZyB0YXIudGFyLmZvby5jb21tYW5kICJ0ciBhYiBiYSIgJiYKIAlnaXQgY29uZmlnIHRhci5iYXIuY29tbWFuZCAidHIgYWIgYmEiICYmCmRpZmYgLS1naXQgYS90L3Q1MDAwL3BheC50YXIgYi90L3Q1MDAwL3BheC50YXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkxMTczNwotLS0gL2Rldi9udWxsCisrKyBiL3QvdDUwMDAvcGF4LnRhcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90L3Q1MDAzLWFyY2hpdmUtemlwLnNoIGIvdC90NTAwMy1hcmNoaXZlLXppcC5zaAppbmRleCA0ZTdiMDVkLi5jNzJmNzFlIDEwMDc1NQotLS0gYS90L3Q1MDAzLWFyY2hpdmUtemlwLnNoCisrKyBiL3QvdDUwMDMtYXJjaGl2ZS16aXAuc2gKQEAgLTM3LDcgKzM3LDcgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ3BvcHVsYXRlIHdvcmtkaXInIFwKLSAgICAnbWtkaXIgYSBiIGMgJiYKKyAgICAnbWtkaXIgYSAmJgogICAgICBlY2hvIHNpbXBsZSB0ZXh0ZmlsZSA+YS9hICYmCiAgICAgIG1rZGlyIGEvYmluICYmCiAgICAgIGNwIC9iaW4vc2ggYS9iaW4gJiYKZGlmZiAtLWdpdCBhL3QvdDUwMDQtYXJjaGl2ZS1jb3JuZXItY2FzZXMuc2ggYi90L3Q1MDA0LWFyY2hpdmUtY29ybmVyLWNhc2VzLnNoCmluZGV4IGJmZGI1NmEuLjY3ZjNiNTQgMTAwNzU1Ci0tLSBhL3QvdDUwMDQtYXJjaGl2ZS1jb3JuZXItY2FzZXMuc2gKKysrIGIvdC90NTAwNC1hcmNoaXZlLWNvcm5lci1jYXNlcy5zaApAQCAtMjMsMTUgKzIzLDI5IEBACiAJCQllY2hvICIkZGlyLyRpIgogCQlkb25lCiAJfSB8IHNvcnQgPmV4cGVjdCAmJgotCWZpbmQgIiRkaXIiIC1wcmludCB8IHNvcnQgPmFjdHVhbCAmJgorCWZpbmQgIiRkaXIiICEgLW5hbWUgcGF4X2dsb2JhbF9oZWFkZXIgLXByaW50IHwgc29ydCA+YWN0dWFsICYmCiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogfQogCisKKyMgYnNkdGFyL2xpYmFyY2hpdmUgdmVyc2lvbnMgYmVmb3JlIDMuMS4zIGNvbnNpZGVyIGEgdGFyIGZpbGUgd2l0aCBhCisjIGdsb2JhbCBwYXggaGVhZGVyIHRoYXQgaXMgbm90IGZvbGxvd2VkIGJ5IGEgZmlsZSByZWNvcmQgYXMgY29ycnVwdC4KK2lmICIkVEFSIiB0ZiAiJFRFU1RfRElSRUNUT1JZIi90NTAwNC9lbXB0eS13aXRoLXBheC1oZWFkZXIudGFyID4vZGV2L251bGwgMj4mMQordGhlbgorCXRlc3Rfc2V0X3ByZXJlcSBIRUFERVJfT05MWV9UQVJfT0sKK2ZpCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgSEVBREVSX09OTFlfVEFSX09LICd0YXIgYXJjaGl2ZSBvZiBjb21taXQgd2l0aCBlbXB0eSB0cmVlJyAnCisJZ2l0IGFyY2hpdmUgLS1mb3JtYXQ9dGFyIEhFQUQgPmVtcHR5LXdpdGgtcGF4LWhlYWRlci50YXIgJiYKKwltYWtlX2RpciBleHRyYWN0ICYmCisJIiRUQVIiIHhmIGVtcHR5LXdpdGgtcGF4LWhlYWRlci50YXIgLUMgZXh0cmFjdCAmJgorCWNoZWNrX2RpciBleHRyYWN0CisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhciBhcmNoaXZlIG9mIGVtcHR5IHRyZWUgaXMgZW1wdHknICcKIAlnaXQgYXJjaGl2ZSAtLWZvcm1hdD10YXIgSEVBRDogPmVtcHR5LnRhciAmJgotCW1ha2VfZGlyIGV4dHJhY3QgJiYKLQkiJFRBUiIgeGYgZW1wdHkudGFyIC1DIGV4dHJhY3QgJiYKLQljaGVja19kaXIgZXh0cmFjdAorCXBlcmwgLWUgInByaW50IFwiXFwwXCIgeCAxMDI0MCIgPjEwa251bHMudGFyICYmCisJdGVzdF9jbXAgMTBrbnVscy50YXIgZW1wdHkudGFyCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhciBhcmNoaXZlIG9mIGVtcHR5IHRyZWUgd2l0aCBwcmVmaXgnICcKZGlmZiAtLWdpdCBhL3QvdDUwMDQvZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhciBiL3QvdDUwMDQvZW1wdHktd2l0aC1wYXgtaGVhZGVyLnRhcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTllMzllCi0tLSAvZGV2L251bGwKKysrIGIvdC90NTAwNC9lbXB0eS13aXRoLXBheC1oZWFkZXIudGFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3QvdDUxNTAtcmVxdWVzdC1wdWxsLnNoIGIvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKaW5kZXggNDMyZjk4Yy4uMWFmYTBkNSAxMDA3NTUKLS0tIGEvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKKysrIGIvdC90NTE1MC1yZXF1ZXN0LXB1bGwuc2gKQEAgLTgwLDEyICs4MCwxMiBAQAogCiAJY2F0IDw8LUVPVCA+ZnV6ei5zZWQKIAkjIS9iaW4vc2VkIC1uZgorCXMvJGRvd25zdHJlYW1fdXJsX2Zvcl9zZWQvVVJML2cKIAlzLyRfeDQwL09CSkVDVF9OQU1FL2cKIAlzL0EgVSBUaG9yL0FVVEhPUi9nCiAJcy9bLTAtOV1cezEwXH0gWzowLTldXHs4XH0gWy0rXVswLTldXHs0XH0vREFURS9nCiAJcy8gICAgICAgIFteIF0uKi8gICAgICAgIFNVQkpFQ1QvZwogCXMvICBbXiBdLiogKERBVEUpLyAgU1VCSkVDVCAoREFURSkvZwotCXMvJGRvd25zdHJlYW1fdXJsX2Zvcl9zZWQvVVJML2cKIAlzL2Zvci11cHN0cmVhbS9CUkFOQ0gvZwogCXMvbW5lbW9uaWMudHh0L0ZJTEVOQU1FL2cKIAlzL152ZXJzaW9uIFswLTldL1ZFUlNJT04vCmRpZmYgLS1naXQgYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoIGIvdC90NTMwMy1wYWNrLWNvcnJ1cHRpb24tcmVzaWxpZW5jZS5zaAppbmRleCA1YjEyNTBmLi4zNTkyNmRlIDEwMDc1NQotLS0gYS90L3Q1MzAzLXBhY2stY29ycnVwdGlvbi1yZXNpbGllbmNlLnNoCisrKyBiL3QvdDUzMDMtcGFjay1jb3JydXB0aW9uLXJlc2lsaWVuY2Uuc2gKQEAgLTUxLDcgKzUxLDcgQEAKICAgICBvZnM9YGdpdCBzaG93LWluZGV4IDwgJHtwYWNrfS5pZHggfCBncmVwICQxIHwgY3V0IC1mMSAtZCIgImAgJiYKICAgICBvZnM9JCgoJG9mcyArICQyKSkgJiYKICAgICBjaG1vZCArdyAke3BhY2t9LnBhY2sgJiYKLSAgICBkZCBvZj0ke3BhY2t9LnBhY2sgY291bnQ9MSBicz0xIGNvbnY9bm90cnVuYyBzZWVrPSRvZnMgJiYKKyAgICBkZCBvZj0ke3BhY2t9LnBhY2sgYnM9MSBjb252PW5vdHJ1bmMgc2Vlaz0kb2ZzICYmCiAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHZlcmlmeS1wYWNrICR7cGFja30ucGFjawogfQogCkBAIC0yNzYsNiArMjc2LDMzIEBACiAgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzMgPiAvZGV2L251bGwnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAorICAgICdjb3JydXB0aW9uIG9mIGRlbHRhIGJhc2UgcmVmZXJlbmNlIHBvaW50aW5nIHRvIHdyb25nIG9iamVjdCcgXAorICAgICdjcmVhdGVfbmV3X3BhY2sgLS1kZWx0YS1iYXNlLW9mZnNldCAmJgorICAgICBnaXQgcHJ1bmUtcGFja2VkICYmCisgICAgIHByaW50ZiAiXDIyMFwwMzMiIHwgZG9fY29ycnVwdF9vYmplY3QgJGJsb2JfMyAyICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzEgPi9kZXYvbnVsbCAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8yID4vZGV2L251bGwgJiYKKyAgICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+L2Rldi9udWxsJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKKyAgICAnLi4uIGJ1dCBoYXZpbmcgYSBsb29zZSBjb3B5IGFsbG93cyBmb3IgZnVsbCByZWNvdmVyeScgXAorICAgICdtdiAke3BhY2t9LmlkeCB0bXAgJiYKKyAgICAgZ2l0IGhhc2gtb2JqZWN0IC10IGJsb2IgLXcgZmlsZV8zICYmCisgICAgIG12IHRtcCAke3BhY2t9LmlkeCAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8xID4gL2Rldi9udWxsICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzIgPiAvZGV2L251bGwgJiYKKyAgICAgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+IC9kZXYvbnVsbCcKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCisgICAgJy4uLiBhbmQgdGhlbiBhIHJlcGFjayAiY2xlYXJzIiB0aGUgY29ycnVwdGlvbicgXAorICAgICdkb19yZXBhY2sgLS1kZWx0YS1iYXNlLW9mZnNldCAtLW5vLXJldXNlLWRlbHRhICYmCisgICAgIGdpdCBwcnVuZS1wYWNrZWQgJiYKKyAgICAgZ2l0IHZlcmlmeS1wYWNrICR7cGFja30ucGFjayAmJgorICAgICBnaXQgY2F0LWZpbGUgYmxvYiAkYmxvYl8xID4gL2Rldi9udWxsICYmCisgICAgIGdpdCBjYXQtZmlsZSBibG9iICRibG9iXzIgPiAvZGV2L251bGwgJiYKKyAgICAgZ2l0IGNhdC1maWxlIGJsb2IgJGJsb2JfMyA+IC9kZXYvbnVsbCcKKwordGVzdF9leHBlY3Rfc3VjY2VzcyBcCiAgICAgJ2NvcnJ1cHRpbmcgaGVhZGVyIHRvIGhhdmUgdG9vIHNtYWxsIG91dHB1dCBidWZmZXIgZmFpbHMgdW5wYWNrJyBcCiAgICAgJ2NyZWF0ZV9uZXdfcGFjayAmJgogICAgICBnaXQgcHJ1bmUtcGFja2VkICYmCmRpZmYgLS1naXQgYS90L3Q1NDA3LXBvc3QtcmV3cml0ZS1ob29rLnNoIGIvdC90NTQwNy1wb3N0LXJld3JpdGUtaG9vay5zaAppbmRleCBiYWE2NzBjLi5lYTJlMGQ0IDEwMDc1NQotLS0gYS90L3Q1NDA3LXBvc3QtcmV3cml0ZS1ob29rLnNoCisrKyBiL3QvdDU0MDctcG9zdC1yZXdyaXRlLWhvb2suc2gKQEAgLTMxLDggKzMxLDggQEAKIH0KIAogdmVyaWZ5X2hvb2tfaW5wdXQgKCkgewotCXRlc3RfY21wICIkVFJBU0hfRElSRUNUT1JZIi9wb3N0LXJld3JpdGUuYXJncyBleHBlY3RlZC5hcmdzICYmCi0JdGVzdF9jbXAgIiRUUkFTSF9ESVJFQ1RPUlkiL3Bvc3QtcmV3cml0ZS5kYXRhIGV4cGVjdGVkLmRhdGEKKwl0ZXN0X2NtcCBleHBlY3RlZC5hcmdzICIkVFJBU0hfRElSRUNUT1JZIi9wb3N0LXJld3JpdGUuYXJncyAmJgorCXRlc3RfY21wIGV4cGVjdGVkLmRhdGEgIiRUUkFTSF9ESVJFQ1RPUlkiL3Bvc3QtcmV3cml0ZS5kYXRhCiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjb21taXQgLS1hbWVuZCcgJwpkaWZmIC0tZ2l0IGEvdC90NTUwMC1mZXRjaC1wYWNrLnNoIGIvdC90NTUwMC1mZXRjaC1wYWNrLnNoCmluZGV4IGQ1NzQwODUuLmE4MDU4NGUgMTAwNzU1Ci0tLSBhL3QvdDU1MDAtZmV0Y2gtcGFjay5zaAorKysgYi90L3Q1NTAwLWZldGNoLXBhY2suc2gKQEAgLTEzNSw2ICsxMzUsMTMgQEAKIAl0ZXN0ICJgZ2l0IC0tZ2l0LWRpcj1zaGFsbG93MC8uZ2l0IHJldi1saXN0IC0tY291bnQgSEVBRGAiID0gMQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjbG9uZSBzaGFsbG93IGRlcHRoIDEgd2l0aCBmc2NrJyAnCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCBmZXRjaC5mc2Nrb2JqZWN0cyB0cnVlICYmCisJZ2l0IGNsb25lIC0tbm8tc2luZ2xlLWJyYW5jaCAtLWRlcHRoIDEgImZpbGU6Ly8kKHB3ZCkvLiIgc2hhbGxvdzBmc2NrICYmCisJdGVzdCAiYGdpdCAtLWdpdC1kaXI9c2hhbGxvdzBmc2NrLy5naXQgcmV2LWxpc3QgLS1jb3VudCBIRUFEYCIgPSAxICYmCisJZ2l0IGNvbmZpZyAtLWdsb2JhbCAtLXVuc2V0IGZldGNoLmZzY2tvYmplY3RzCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIHNoYWxsb3cnICcKIAlnaXQgY2xvbmUgLS1uby1zaW5nbGUtYnJhbmNoIC0tZGVwdGggMiAiZmlsZTovLyQocHdkKS8uIiBzaGFsbG93CiAnCkBAIC0zNzMsNiArMzgwLDIwIEBACiAJdGVzdF9jbXAgY291bnQ4LmV4cGVjdGVkIGNvdW50OC5hY3R1YWwKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggaW4gc2hhbGxvdyByZXBvIHVucmVhY2hhYmxlIHNoYWxsb3cgb2JqZWN0cycgJworCSgKKwkJZ2l0IGNsb25lIC0tYmFyZSAtLWJyYW5jaCBCIC0tc2luZ2xlLWJyYW5jaCAiZmlsZTovLyQocHdkKS8uIiBuby1yZWZsb2cgJiYKKwkJZ2l0IGNsb25lIC0tZGVwdGggMSAiZmlsZTovLyQocHdkKS9uby1yZWZsb2ciIHNoYWxsb3c5ICYmCisJCWNkIG5vLXJlZmxvZyAmJgorCQlnaXQgdGFnIC1kIFRBR0IxIFRBR0IyICYmCisJCWdpdCB1cGRhdGUtcmVmIHJlZnMvaGVhZHMvQiBCfn4gJiYKKwkJZ2l0IGdjIC0tcHJ1bmU9bm93ICYmCisJCWNkIC4uL3NoYWxsb3c5ICYmCisJCWdpdCBmZXRjaCBvcmlnaW4gJiYKKwkJZ2l0IGZzY2sgLS1uby1kYW5nbGluZworCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgdGVzdHMgZm9yIHRoZSAtLXN0ZGluIHBhcmFtZXRlcicgJwogCWZvciBoZWFkIGluIEMgRCBFIEYKIAlkbwpAQCAtNDg0LDQgKzUwNSwyMCBAQAogCSkgPm91dC1hZHQgMj5lcnJvci1hZHQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2hhbGxvdyBmZXRjaCB3aXRoIHRhZ3MgZG9lcyBub3QgYnJlYWsgdGhlIHJlcG9zaXRvcnknICcKKwlta2RpciByZXBvMSAmJgorCSgKKwkJY2QgcmVwbzEgJiYKKwkJZ2l0IGluaXQgJiYKKwkJdGVzdF9jb21taXQgMSAmJgorCQl0ZXN0X2NvbW1pdCAyICYmCisJCXRlc3RfY29tbWl0IDMgJiYKKwkJbWtkaXIgcmVwbzIgJiYKKwkJY2QgcmVwbzIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJZ2l0IGZldGNoIC0tZGVwdGg9MiAuLi8uZ2l0IG1hc3RlcjpicmFuY2ggJiYKKwkJZ2l0IGZzY2sKKwkpCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTUwNS1yZW1vdGUuc2ggYi90L3Q1NTA1LXJlbW90ZS5zaAppbmRleCBkZDEwZmYwLi44ZjZlMzkyIDEwMDc1NQotLS0gYS90L3Q1NTA1LXJlbW90ZS5zaAorKysgYi90L3Q1NTA1LXJlbW90ZS5zaApAQCAtNDIsMTA3ICs0MiwxMDQgQEAKIH0KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCi0KIAlzZXR1cF9yZXBvc2l0b3J5IG9uZSAmJgogCXNldHVwX3JlcG9zaXRvcnkgdHdvICYmCiAJKAotCQljZCB0d28gJiYgZ2l0IGJyYW5jaCBhbm90aGVyCisJCWNkIHR3byAmJgorCQlnaXQgYnJhbmNoIGFub3RoZXIKIAkpICYmCiAJZ2l0IGNsb25lIG9uZSB0ZXN0Ci0KICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ3JlbW90ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbicgJwotKAotCWNkIHRlc3QgJiYKLQl0b2tlbnNfbWF0Y2ggb3JpZ2luICIkKGdpdCByZW1vdGUpIiAmJgotCWNoZWNrX3JlbW90ZV90cmFjayBvcmlnaW4gbWFzdGVyIHNpZGUgJiYKLQljaGVja190cmFja2luZ19icmFuY2ggb3JpZ2luIEhFQUQgbWFzdGVyIHNpZGUKLSkKKwkoCisJCWNkIHRlc3QgJiYKKwkJdG9rZW5zX21hdGNoIG9yaWdpbiAiJChnaXQgcmVtb3RlKSIgJiYKKwkJY2hlY2tfcmVtb3RlX3RyYWNrIG9yaWdpbiBtYXN0ZXIgc2lkZSAmJgorCQljaGVja190cmFja2luZ19icmFuY2ggb3JpZ2luIEhFQUQgbWFzdGVyIHNpZGUKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCBhbm90aGVyIHJlbW90ZScgJwotKAotCWNkIHRlc3QgJiYKLQlnaXQgcmVtb3RlIGFkZCAtZiBzZWNvbmQgLi4vdHdvICYmCi0JdG9rZW5zX21hdGNoICJvcmlnaW4gc2Vjb25kIiAiJChnaXQgcmVtb3RlKSIgJiYKLQljaGVja190cmFja2luZ19icmFuY2ggc2Vjb25kIG1hc3RlciBzaWRlIGFub3RoZXIgJiYKLQlnaXQgZm9yLWVhY2gtcmVmICItLWZvcm1hdD0lKHJlZm5hbWUpIiByZWZzL3JlbW90ZXMgfAotCXNlZCAtZSAiL15yZWZzXC9yZW1vdGVzXC9vcmlnaW5cLy9kIiBcCi0JICAgIC1lICIvXnJlZnNcL3JlbW90ZXNcL3NlY29uZFwvL2QiID5hY3R1YWwgJiYKLQk+ZXhwZWN0ICYmCi0JdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAotKQorCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBzZWNvbmQgLi4vdHdvICYmCisJCXRva2Vuc19tYXRjaCAib3JpZ2luIHNlY29uZCIgIiQoZ2l0IHJlbW90ZSkiICYmCisJCWNoZWNrX3RyYWNraW5nX2JyYW5jaCBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlciAmJgorCQlnaXQgZm9yLWVhY2gtcmVmICItLWZvcm1hdD0lKHJlZm5hbWUpIiByZWZzL3JlbW90ZXMgfAorCQlzZWQgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvb3JpZ2luXC8vZCIgXAorCQkgICAgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvc2Vjb25kXC8vZCIgPmFjdHVhbCAmJgorCQk+ZXhwZWN0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKwkpCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgQ19MT0NBTEVfT1VUUFVUICdjaGVjayByZW1vdGUgdHJhY2tpbmcnICcKLSgKLQljZCB0ZXN0ICYmCi0JY2hlY2tfcmVtb3RlX3RyYWNrIG9yaWdpbiBtYXN0ZXIgc2lkZSAmJgotCWNoZWNrX3JlbW90ZV90cmFjayBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlcgotKQordGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ2NoZWNrIHJlbW90ZS10cmFja2luZycgJworCSgKKwkJY2QgdGVzdCAmJgorCQljaGVja19yZW1vdGVfdHJhY2sgb3JpZ2luIG1hc3RlciBzaWRlICYmCisJCWNoZWNrX3JlbW90ZV90cmFjayBzZWNvbmQgbWFzdGVyIHNpZGUgYW5vdGhlcgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIGZvcmNlcyB0cmFja2luZyBicmFuY2hlcycgJwotKAotCWNkIHRlc3QgJiYKLQljYXNlIGBnaXQgY29uZmlnIHJlbW90ZS5zZWNvbmQuZmV0Y2hgIGluCi0JKyopIHRydWUgOzsKLQkgKikgZmFsc2UgOzsKLQllc2FjCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCWNhc2UgYGdpdCBjb25maWcgcmVtb3RlLnNlY29uZC5mZXRjaGAgaW4KKwkJKyopIHRydWUgOzsKKwkJICopIGZhbHNlIDs7CisJCWVzYWMKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbW92ZSByZW1vdGUnICcKLSgKLQljZCB0ZXN0ICYmCi0JZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvc2Vjb25kL0hFQUQgcmVmcy9yZW1vdGVzL3NlY29uZC9tYXN0ZXIgJiYKLQlnaXQgcmVtb3RlIHJtIHNlY29uZAotKQorCSgKKwkJY2QgdGVzdCAmJgorCQlnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9zZWNvbmQvSEVBRCByZWZzL3JlbW90ZXMvc2Vjb25kL21hc3RlciAmJgorCQlnaXQgcmVtb3RlIHJtIHNlY29uZAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBDX0xPQ0FMRV9PVVRQVVQgJ3JlbW92ZSByZW1vdGUnICcKLSgKLQljZCB0ZXN0ICYmCi0JdG9rZW5zX21hdGNoIG9yaWdpbiAiJChnaXQgcmVtb3RlKSIgJiYKLQljaGVja19yZW1vdGVfdHJhY2sgb3JpZ2luIG1hc3RlciBzaWRlICYmCi0JZ2l0IGZvci1lYWNoLXJlZiAiLS1mb3JtYXQ9JShyZWZuYW1lKSIgcmVmcy9yZW1vdGVzIHwKLQlzZWQgLWUgIi9ecmVmc1wvcmVtb3Rlc1wvb3JpZ2luXC8vZCIgPmFjdHVhbCAmJgotCT5leHBlY3QgJiYKLQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCXRva2Vuc19tYXRjaCBvcmlnaW4gIiQoZ2l0IHJlbW90ZSkiICYmCisJCWNoZWNrX3JlbW90ZV90cmFjayBvcmlnaW4gbWFzdGVyIHNpZGUgJiYKKwkJZ2l0IGZvci1lYWNoLXJlZiAiLS1mb3JtYXQ9JShyZWZuYW1lKSIgcmVmcy9yZW1vdGVzIHwKKwkJc2VkIC1lICIvXnJlZnNcL3JlbW90ZXNcL29yaWdpblwvL2QiID5hY3R1YWwgJiYKKwkJPmV4cGVjdCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW1vdmUgcmVtb3RlIHByb3RlY3RzIGxvY2FsIGJyYW5jaGVzJyAnCi0oCi0JY2QgdGVzdCAmJgotCXsgY2F0ID5leHBlY3QxIDw8RU9GCi1Ob3RlOiBBIGJyYW5jaCBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3YXMgbm90IHJlbW92ZWQ7Ci10byBkZWxldGUgaXQsIHVzZToKLSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKLUVPRgotCX0gJiYKLQl7IGNhdCA+ZXhwZWN0MiA8PEVPRgotTm90ZTogU29tZSBicmFuY2hlcyBvdXRzaWRlIHRoZSByZWZzL3JlbW90ZXMvIGhpZXJhcmNoeSB3ZXJlIG5vdCByZW1vdmVkOwotdG8gZGVsZXRlIHRoZW0sIHVzZToKLSAgZ2l0IGJyYW5jaCAtZCBmb29icmFuY2gKLSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKLUVPRgotCX0gJiYKLQlnaXQgdGFnIGZvb3RhZyAmJgotCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9vcHMuZmV0Y2ggIityZWZzLyo6cmVmcy8qIiAmJgotCWdpdCByZW1vdGUgcmVtb3ZlIG9vcHMgMj5hY3R1YWwxICYmCi0JZ2l0IGJyYW5jaCBmb29icmFuY2ggJiYKLQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vb3BzLmZldGNoICIrcmVmcy8qOnJlZnMvKiIgJiYKLQlnaXQgcmVtb3RlIHJtIG9vcHMgMj5hY3R1YWwyICYmCi0JZ2l0IGJyYW5jaCAtZCBmb29icmFuY2ggJiYKLQlnaXQgdGFnIC1kIGZvb3RhZyAmJgotCXRlc3RfaTE4bmNtcCBleHBlY3QxIGFjdHVhbDEgJiYKLQl0ZXN0X2kxOG5jbXAgZXhwZWN0MiBhY3R1YWwyCi0pCisJKAorCQljZCB0ZXN0ICYmCisJCWNhdCA+ZXhwZWN0MSA8PC1cRU9GICYmCisJCU5vdGU6IEEgYnJhbmNoIG91dHNpZGUgdGhlIHJlZnMvcmVtb3Rlcy8gaGllcmFyY2h5IHdhcyBub3QgcmVtb3ZlZDsKKwkJdG8gZGVsZXRlIGl0LCB1c2U6CisJCSAgZ2l0IGJyYW5jaCAtZCBtYXN0ZXIKKwkJRU9GCisJCWNhdCA+ZXhwZWN0MiA8PC1cRU9GICYmCisJCU5vdGU6IFNvbWUgYnJhbmNoZXMgb3V0c2lkZSB0aGUgcmVmcy9yZW1vdGVzLyBoaWVyYXJjaHkgd2VyZSBub3QgcmVtb3ZlZDsKKwkJdG8gZGVsZXRlIHRoZW0sIHVzZToKKwkJICBnaXQgYnJhbmNoIC1kIGZvb2JyYW5jaAorCQkgIGdpdCBicmFuY2ggLWQgbWFzdGVyCisJCUVPRgorCQlnaXQgdGFnIGZvb3RhZyAmJgorCQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vb3BzLmZldGNoICIrcmVmcy8qOnJlZnMvKiIgJiYKKwkJZ2l0IHJlbW90ZSByZW1vdmUgb29wcyAyPmFjdHVhbDEgJiYKKwkJZ2l0IGJyYW5jaCBmb29icmFuY2ggJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub29wcy5mZXRjaCAiK3JlZnMvKjpyZWZzLyoiICYmCisJCWdpdCByZW1vdGUgcm0gb29wcyAyPmFjdHVhbDIgJiYKKwkJZ2l0IGJyYW5jaCAtZCBmb29icmFuY2ggJiYKKwkJZ2l0IHRhZyAtZCBmb290YWcgJiYKKwkJdGVzdF9pMThuY21wIGV4cGVjdDEgYWN0dWFsMSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0MiBhY3R1YWwyCisJKQogJwogCi1jYXQgPiB0ZXN0L2V4cGVjdCA8PCBFT0YKK2NhdCA+dGVzdC9leHBlY3QgPDxFT0YKICogcmVtb3RlIG9yaWdpbgogICBGZXRjaCBVUkw6ICQocHdkKS9vbmUKICAgUHVzaCAgVVJMOiAkKHB3ZCkvb25lCkBAIC0xNzIsMzYgKzE2OSw0MCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3cnICcKLQkoY2QgdGVzdCAmJgotCSBnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4uZmV0Y2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgotCSBnaXQgZmV0Y2ggJiYKLQkgZ2l0IGNoZWNrb3V0IC1iIGFoZWFkIG9yaWdpbi9tYXN0ZXIgJiYKLQkgZWNobyAxID4+IGZpbGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLW0gdXBkYXRlIGZpbGUgJiYKLQkgZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgotCSBnaXQgYnJhbmNoIC0tdHJhY2sgb2N0b3B1cyBvcmlnaW4vbWFzdGVyICYmCi0JIGdpdCBicmFuY2ggLS10cmFjayByZWJhc2Ugb3JpZ2luL21hc3RlciAmJgotCSBnaXQgYnJhbmNoIC1kIC1yIG9yaWdpbi9tYXN0ZXIgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnVybCAuLi90d28gJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2h1cmwgLi4vdGhyZWUgJiYKLQkgZ2l0IGNvbmZpZyBicmFuY2gucmViYXNlLnJlYmFzZSB0cnVlICYmCi0JIGdpdCBjb25maWcgYnJhbmNoLm9jdG9wdXMubWVyZ2UgInRvcGljLWEgdG9waWMtYiB0b3BpYy1jIiAmJgotCSAoY2QgLi4vb25lICYmCi0JICBlY2hvIDEgPiBmaWxlICYmCi0JICB0ZXN0X3RpY2sgJiYKLQkgIGdpdCBjb21taXQgLW0gdXBkYXRlIGZpbGUpICYmCi0JIGdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5wdXNoIDogJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgotCSBnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4ucHVzaCArcmVmcy90YWdzL2xhc3RiYWNrdXAgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggK3JlZnMvaGVhZHMvYWhlYWQ6cmVmcy9oZWFkcy9tYXN0ZXIgJiYKLQkgZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9hbm90aGVyICYmCi0JIGdpdCByZW1vdGUgc2hvdyBvcmlnaW4gdHdvID4gb3V0cHV0ICYmCi0JIGdpdCBicmFuY2ggLWQgcmViYXNlIG9jdG9wdXMgJiYKLQkgdGVzdF9pMThuY21wIGV4cGVjdCBvdXRwdXQpCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5mZXRjaCByZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL3Vwc3RyZWFtICYmCisJCWdpdCBmZXRjaCAmJgorCQlnaXQgY2hlY2tvdXQgLWIgYWhlYWQgb3JpZ2luL21hc3RlciAmJgorCQllY2hvIDEgPj5maWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1tIHVwZGF0ZSBmaWxlICYmCisJCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCAtLXRyYWNrIG9jdG9wdXMgb3JpZ2luL21hc3RlciAmJgorCQlnaXQgYnJhbmNoIC0tdHJhY2sgcmViYXNlIG9yaWdpbi9tYXN0ZXIgJiYKKwkJZ2l0IGJyYW5jaCAtZCAtciBvcmlnaW4vbWFzdGVyICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLnR3by51cmwgLi4vdHdvICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLnR3by5wdXNodXJsIC4uL3RocmVlICYmCisJCWdpdCBjb25maWcgYnJhbmNoLnJlYmFzZS5yZWJhc2UgdHJ1ZSAmJgorCQlnaXQgY29uZmlnIGJyYW5jaC5vY3RvcHVzLm1lcmdlICJ0b3BpYy1hIHRvcGljLWIgdG9waWMtYyIgJiYKKwkJKAorCQkJY2QgLi4vb25lICYmCisJCQllY2hvIDEgPmZpbGUgJiYKKwkJCXRlc3RfdGljayAmJgorCQkJZ2l0IGNvbW1pdCAtbSB1cGRhdGUgZmlsZQorCQkpICYmCisJCWdpdCBjb25maWcgLS1hZGQgcmVtb3RlLm9yaWdpbi5wdXNoIDogJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSAmJgorCQlnaXQgY29uZmlnIC0tYWRkIHJlbW90ZS5vcmlnaW4ucHVzaCArcmVmcy90YWdzL2xhc3RiYWNrdXAgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggK3JlZnMvaGVhZHMvYWhlYWQ6cmVmcy9oZWFkcy9tYXN0ZXIgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUudHdvLnB1c2ggcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9hbm90aGVyICYmCisJCWdpdCByZW1vdGUgc2hvdyBvcmlnaW4gdHdvID5vdXRwdXQgJiYKKwkJZ2l0IGJyYW5jaCAtZCByZWJhc2Ugb2N0b3B1cyAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAotY2F0ID4gdGVzdC9leHBlY3QgPDwgRU9GCitjYXQgPnRlc3QvZXhwZWN0IDw8RU9GCiAqIHJlbW90ZSBvcmlnaW4KICAgRmV0Y2ggVVJMOiAkKHB3ZCkvb25lCiAgIFB1c2ggIFVSTDogJChwd2QpL29uZQpAQCAtMjE5LDE1MiArMjIwLDE4NyBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Nob3cgLW4nICcKLQkobXYgb25lIG9uZS51bnJlYWNoYWJsZSAmJgotCSBjZCB0ZXN0ICYmCi0JIGdpdCByZW1vdGUgc2hvdyAtbiBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgbXYgLi4vb25lLnVucmVhY2hhYmxlIC4uL29uZSAmJgotCSB0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJ1bmUnICcKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMikgJiYKLQkoY2QgdGVzdCAmJgotCSBnaXQgZmV0Y2ggb3JpZ2luICYmCi0JIGdpdCByZW1vdGUgcHJ1bmUgb3JpZ2luICYmCi0JIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0LWhlYWQgLS1kZWxldGUnICcKLQkoY2QgdGVzdCAmJgotCSBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCAmJgotCSBnaXQgcmVtb3RlIHNldC1oZWFkIC0tZGVsZXRlIG9yaWdpbiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0LWhlYWQgLS1hdXRvJyAnCi0JKGNkIHRlc3QgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gb3JpZ2luICYmCi0JIGVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgPmV4cGVjdCAmJgotCSBnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCA+b3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwltdiBvbmUgb25lLnVucmVhY2hhYmxlICYmCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCByZW1vdGUgc2hvdyAtbiBvcmlnaW4gPm91dHB1dCAmJgorCQltdiAuLi9vbmUudW5yZWFjaGFibGUgLi4vb25lICYmCisJCXRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0CiAJKQogJwogCi1jYXQgPnRlc3QvZXhwZWN0IDw8RU9GCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcnVuZScgJworCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMgorCSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IGZldGNoIG9yaWdpbiAmJgorCQlnaXQgcmVtb3RlIHBydW5lIG9yaWdpbiAmJgorCQlnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldC1oZWFkIC0tZGVsZXRlJyAnCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEICYmCisJCWdpdCByZW1vdGUgc2V0LWhlYWQgLS1kZWxldGUgb3JpZ2luICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFECisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCAtLWF1dG8nICcKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gb3JpZ2luICYmCisJCWVjaG8gcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgPmV4cGVjdCAmJgorCQlnaXQgc3ltYm9saWMtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vSEVBRCA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCisnCisKK2NhdCA+dGVzdC9leHBlY3QgPDxcRU9GCiBlcnJvcjogTXVsdGlwbGUgcmVtb3RlIEhFQUQgYnJhbmNoZXMuIFBsZWFzZSBjaG9vc2Ugb25lIGV4cGxpY2l0bHkgd2l0aDoKICAgZ2l0IHJlbW90ZSBzZXQtaGVhZCB0d28gYW5vdGhlcgogICBnaXQgcmVtb3RlIHNldC1oZWFkIHR3byBtYXN0ZXIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCAtLWF1dG8gZmFpbHMgdy9tdWx0aXBsZSBIRUFEcycgJwotCShjZCB0ZXN0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZW1vdGUgc2V0LWhlYWQgLS1hdXRvIHR3byA+b3V0cHV0IDI+JjEgJiYKLQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dCkKKwkoCisJCWNkIHRlc3QgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBzZXQtaGVhZCAtLWF1dG8gdHdvID5vdXRwdXQgMj4mMSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAotY2F0ID50ZXN0L2V4cGVjdCA8PEVPRgorY2F0ID50ZXN0L2V4cGVjdCA8PFxFT0YKIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXQtaGVhZCBleHBsaWNpdCcgJwotCShjZCB0ZXN0ICYmCi0JIGdpdCByZW1vdGUgc2V0LWhlYWQgb3JpZ2luIHNpZGUyICYmCi0JIGdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEID5vdXRwdXQgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtaGVhZCBvcmlnaW4gbWFzdGVyICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCisJKAorCQljZCB0ZXN0ICYmCisJCWdpdCByZW1vdGUgc2V0LWhlYWQgb3JpZ2luIHNpZGUyICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9IRUFEID5vdXRwdXQgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtaGVhZCBvcmlnaW4gbWFzdGVyICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKLWNhdCA+IHRlc3QvZXhwZWN0IDw8IEVPRgorY2F0ID50ZXN0L2V4cGVjdCA8PEVPRgogUHJ1bmluZyBvcmlnaW4KIFVSTDogJChwd2QpL29uZQogICogW3dvdWxkIHBydW5lXSBvcmlnaW4vc2lkZTIKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcnVuZSAtLWRyeS1ydW4nICcKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZSkgJiYKLQkoY2QgdGVzdCAmJgotCSBnaXQgcmVtb3RlIHBydW5lIC0tZHJ5LXJ1biBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JKGNkIC4uL29uZSAmJgotCSBnaXQgYnJhbmNoIC1tIHNpZGUgc2lkZTIpICYmCi0JIHRlc3RfaTE4bmNtcCBleHBlY3Qgb3V0cHV0KQorCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSBwcnVuZSAtLWRyeS1ydW4gb3JpZ2luID5vdXRwdXQgJiYKKwkJZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCisJKAorCQljZCAuLi9vbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlIHNpZGUyKSAmJgorCQl0ZXN0X2kxOG5jbXAgZXhwZWN0IG91dHB1dAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIC0tbWlycm9yICYmIHBydW5lJyAnCi0JKG1rZGlyIG1pcnJvciAmJgotCSBjZCBtaXJyb3IgJiYKLQkgZ2l0IGluaXQgLS1iYXJlICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yIC1mIG9yaWdpbiAuLi9vbmUpICYmCi0JKGNkIG9uZSAmJgotCSBnaXQgYnJhbmNoIC1tIHNpZGUyIHNpZGUpICYmCi0JKGNkIG1pcnJvciAmJgotCSBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZTIgJiYKLQkgdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3NpZGUgJiYKLQkgZ2l0IGZldGNoIG9yaWdpbiAmJgotCSBnaXQgcmVtb3RlIHBydW5lIG9yaWdpbiAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZTIgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3NpZGUpCisJbWtkaXIgbWlycm9yICYmCisJKAorCQljZCBtaXJyb3IgJiYKKwkJZ2l0IGluaXQgLS1iYXJlICYmCisJCWdpdCByZW1vdGUgYWRkIC0tbWlycm9yIC1mIG9yaWdpbiAuLi9vbmUKKwkpICYmCisJKAorCQljZCBvbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlMiBzaWRlCisJKSAmJgorCSgKKwkJY2QgbWlycm9yICYmCisJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9zaWRlMiAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZSAmJgorCQlnaXQgZmV0Y2ggb3JpZ2luICYmCisJCWdpdCByZW1vdGUgcHJ1bmUgb3JpZ2luICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9zaWRlMiAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvc2lkZQorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIC0tbWlycm9yPWZldGNoJyAnCiAJbWtkaXIgbWlycm9yLWZldGNoICYmCiAJZ2l0IGluaXQgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCShjZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCi0JIHRlc3RfY29tbWl0IG9uZSkgJiYKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9wYXJlbnQgJiYKKwkJdGVzdF9jb21taXQgb25lCisJKSAmJgogCWdpdCBpbml0IC0tYmFyZSBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKLQkoY2QgbWlycm9yLWZldGNoL2NoaWxkICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yPWZldGNoIC1mIHBhcmVudCAuLi9wYXJlbnQpCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgLS1taXJyb3I9ZmV0Y2ggLWYgcGFyZW50IC4uL3BhcmVudAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbWlycm9ycyBhY3QgYXMgbWlycm9ycyBkdXJpbmcgZmV0Y2gnICcKLQkoY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCSBnaXQgYnJhbmNoIG5ldyAmJgotCSBnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCisJCWdpdCBicmFuY2ggbmV3ICYmCisJCWdpdCBicmFuY2ggLW0gbWFzdGVyIHJlbmFtZWQKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgZmV0Y2ggcGFyZW50ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9uZXcgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgorCQlnaXQgZmV0Y2ggcGFyZW50ICYmCisJCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9uZXcgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ZldGNoIG1pcnJvcnMgY2FuIHBydW5lJyAnCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgcmVtb3RlIHBydW5lIHBhcmVudCAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvY2hpbGQgJiYKKwkJZ2l0IHJlbW90ZSBwcnVuZSBwYXJlbnQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL21hc3RlcgogCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZmV0Y2ggbWlycm9ycyBkbyBub3QgYWN0IGFzIG1pcnJvcnMgZHVyaW5nIHB1c2gnICcKLQkoY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgotCSBnaXQgY2hlY2tvdXQgSEVBRF4wCisJKAorCQljZCBtaXJyb3ItZmV0Y2gvcGFyZW50ICYmCisJCWdpdCBjaGVja291dCBIRUFEXjAKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgotCSBnaXQgYnJhbmNoIC1tIHJlbmFtZWQgcmVuYW1lZDIgJiYKLQkgZ2l0IHB1c2ggcGFyZW50IDoKKwkoCisJCWNkIG1pcnJvci1mZXRjaC9jaGlsZCAmJgorCQlnaXQgYnJhbmNoIC1tIHJlbmFtZWQgcmVuYW1lZDIgJiYKKwkJZ2l0IHB1c2ggcGFyZW50IDoKIAkpICYmCi0JKGNkIG1pcnJvci1mZXRjaC9wYXJlbnQgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZW5hbWVkICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9yZW5hbWVkMgorCSgKKwkJY2QgbWlycm9yLWZldGNoL3BhcmVudCAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlbmFtZWQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgZmV0Y2ggbWlycm9yIHdpdGggc3BlY2lmaWMgYnJhbmNoZXMnICcKIAlnaXQgaW5pdCAtLWJhcmUgbWlycm9yLWZldGNoL3RyYWNrICYmCi0JKGNkIG1pcnJvci1mZXRjaC90cmFjayAmJgotCSBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1mZXRjaCAtdCBoZWFkcy9uZXcgcGFyZW50IC4uL3BhcmVudAorCSgKKwkJY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCisJCWdpdCByZW1vdGUgYWRkIC0tbWlycm9yPWZldGNoIC10IGhlYWRzL25ldyBwYXJlbnQgLi4vcGFyZW50CiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmZXRjaCBtaXJyb3IgcmVzcGVjdHMgc3BlY2lmaWMgYnJhbmNoZXMnICcKLQkoY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCi0JIGdpdCBmZXRjaCBwYXJlbnQgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZAorCSgKKwkJY2QgbWlycm9yLWZldGNoL3RyYWNrICYmCisJCWdpdCBmZXRjaCBwYXJlbnQgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZAogCSkKICcKIApAQCAtMzcyLDYwICs0MDgsNzIgQEAKIAlta2RpciBtaXJyb3ItcHVzaCAmJgogCWdpdCBpbml0IC0tYmFyZSBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKIAlnaXQgaW5pdCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCi0JKGNkIG1pcnJvci1wdXNoL3ByaXZhdGUgJiYKLQkgdGVzdF9jb21taXQgb25lICYmCi0JIGdpdCByZW1vdGUgYWRkIC0tbWlycm9yPXB1c2ggcHVibGljIC4uL3B1YmxpYworCSgKKwkJY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgorCQl0ZXN0X2NvbW1pdCBvbmUgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgLS1taXJyb3I9cHVzaCBwdWJsaWMgLi4vcHVibGljCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgYWN0IGFzIG1pcnJvcnMgZHVyaW5nIHB1c2gnICcKLQkoY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgotCSBnaXQgYnJhbmNoIG5ldyAmJgotCSBnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkICYmCi0JIGdpdCBwdXNoIHB1YmxpYworCSgKKwkJY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgorCQlnaXQgYnJhbmNoIG5ldyAmJgorCQlnaXQgYnJhbmNoIC1tIG1hc3RlciByZW5hbWVkICYmCisJCWdpdCBwdXNoIHB1YmxpYwogCSkgJiYKLQkoY2QgbWlycm9yLXB1c2gvcHJpdmF0ZSAmJgotCSBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbmV3ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9yZW5hbWVkICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9oZWFkcy9tYXN0ZXIKKwkoCisJCWNkIG1pcnJvci1wdXNoL3ByaXZhdGUgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL25ldyAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvcmVuYW1lZCAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvaGVhZHMvbWFzdGVyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgZG8gbm90IGFjdCBhcyBtaXJyb3JzIGR1cmluZyBmZXRjaCcgJwotCShjZCBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKLQkgZ2l0IGJyYW5jaCAtbSByZW5hbWVkIHJlbmFtZWQyICYmCi0JIGdpdCBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzL3JlbmFtZWQyCisJKAorCQljZCBtaXJyb3ItcHVzaC9wdWJsaWMgJiYKKwkJZ2l0IGJyYW5jaCAtbSByZW5hbWVkIHJlbmFtZWQyICYmCisJCWdpdCBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKSAmJgotCShjZCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCi0JIGdpdCBmZXRjaCBwdWJsaWMgJiYKLQkgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQgJiYKLQkgdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCisJKAorCQljZCBtaXJyb3ItcHVzaC9wcml2YXRlICYmCisJCWdpdCBmZXRjaCBwdWJsaWMgJiYKKwkJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL2hlYWRzL3JlbmFtZWQyCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIG1pcnJvcnMgZG8gbm90IGFsbG93IHlvdSB0byBzcGVjaWZ5IHJlZnMnICcKIAlnaXQgaW5pdCBtaXJyb3ItcHVzaC90cmFjayAmJgotCShjZCBtaXJyb3ItcHVzaC90cmFjayAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1wdXNoIC10IG5ldyBwdWJsaWMgLi4vcHVibGljCisJKAorCQljZCBtaXJyb3ItcHVzaC90cmFjayAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmVtb3RlIGFkZCAtLW1pcnJvcj1wdXNoIC10IG5ldyBwdWJsaWMgLi4vcHVibGljCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgYWx0ICYmIHBydW5lJyAnCi0JKG1rZGlyIGFsdHRzdCAmJgotCSBjZCBhbHR0c3QgJiYKLQkgZ2l0IGluaXQgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgLWYgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5hbHQudXJsIC4uL29uZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5hbHQuZmV0Y2ggIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIikgJiYKLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMikgJiYKLQkoY2QgYWx0dHN0ICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMiAmJgotCSBnaXQgZmV0Y2ggYWx0ICYmCi0JIGdpdCByZW1vdGUgcHJ1bmUgYWx0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlICYmCi0JIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMikKKwlta2RpciBhbHR0c3QgJiYKKwkoCisJCWNkIGFsdHRzdCAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmFsdC51cmwgLi4vb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmFsdC5mZXRjaCAiK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiCisJKSAmJgorCSgKKwkJY2Qgb25lICYmCisJCWdpdCBicmFuY2ggLW0gc2lkZSBzaWRlMgorCSkgJiYKKwkoCisJCWNkIGFsdHRzdCAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIgJiYKKwkJZ2l0IGZldGNoIGFsdCAmJgorCQlnaXQgcmVtb3RlIHBydW5lIGFsdCAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZSAmJgorCQlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIKKwkpCiAnCiAKIGNhdCA+dGVzdC9leHBlY3QgPDxcRU9GCkBAIC00MzMsMjAgKzQ4MSwyNCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCB3aXRoIHJlYWNoYWJsZSB0YWdzIChkZWZhdWx0KScgJwotCShjZCBvbmUgJiYKLQkgPmZvb2JhciAmJgotCSBnaXQgYWRkIGZvb2JhciAmJgotCSBnaXQgY29tbWl0IC1tICJGb29iYXIiICYmCi0JIGdpdCB0YWcgLWEgLW0gIkZvb2JhciB0YWciIGZvb2Jhci10YWcgJiYKLQkgZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEgJiYKLQkgZ2l0IHRhZyAtYSAtbSAiU29tZSB0YWciIHNvbWUtdGFnKSAmJgotCShta2RpciBhZGQtdGFncyAmJgotCSBjZCBhZGQtdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCi0JIGdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIGdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Pi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQpICYmCisJKAorCQljZCBvbmUgJiYKKwkJPmZvb2JhciAmJgorCQlnaXQgYWRkIGZvb2JhciAmJgorCQlnaXQgY29tbWl0IC1tICJGb29iYXIiICYmCisJCWdpdCB0YWcgLWEgLW0gIkZvb2JhciB0YWciIGZvb2Jhci10YWcgJiYKKwkJZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEgJiYKKwkJZ2l0IHRhZyAtYSAtbSAiU29tZSB0YWciIHNvbWUtdGFnCisJKSAmJgorCW1rZGlyIGFkZC10YWdzICYmCisJKAorCQljZCBhZGQtdGFncyAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiBvcmlnaW4gLi4vb25lICYmCisJCWdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCisJCWdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Pi4uL3Rlc3Qvb3V0cHV0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQKKwkpICYmCiAJdGVzdF9jbXAgdGVzdC9leHBlY3QgdGVzdC9vdXRwdXQKICcKIApAQCAtNDU3LDE0ICs1MDksMTYgQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgLS10YWdzJyAnCi0JKHJtIC1yZiBhZGQtdGFncyAmJgotCSBta2RpciBhZGQtdGFncyAmJgotCSBjZCBhZGQtdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiAtLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgdGFnIC1sIGZvb2Jhci10YWcgPj4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udGFnb3B0ID4+Li4vdGVzdC9vdXRwdXQpICYmCisJcm0gLXJmIGFkZC10YWdzICYmCisJKAorCQlta2RpciBhZGQtdGFncyAmJgorCQljZCBhZGQtdGFncyAmJgorCQlnaXQgaW5pdCAmJgorCQlnaXQgcmVtb3RlIGFkZCAtZiAtLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgorCQlnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgorCQlnaXQgdGFnIC1sIGZvb2Jhci10YWcgPj4uLi90ZXN0L291dHB1dCAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udGFnb3B0ID4+Li4vdGVzdC9vdXRwdXQKKwkpICYmCiAJdGVzdF9jbXAgdGVzdC9leHBlY3QgdGVzdC9vdXRwdXQKICcKIApAQCAtNDczLDI1ICs1MjcsMzEgQEAKIEVPRgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGQgLS1uby10YWdzJyAnCi0JKHJtIC1yZiBhZGQtdGFncyAmJgotCSBta2RpciBhZGQtbm8tdGFncyAmJgotCSBjZCBhZGQtbm8tdGFncyAmJgotCSBnaXQgaW5pdCAmJgotCSBnaXQgcmVtb3RlIGFkZCAtZiAtLW5vLXRhZ3Mgb3JpZ2luIC4uL29uZSAmJgotCSBnaXQgdGFnIC1sIHNvbWUtdGFnID4uLi90ZXN0L291dHB1dCAmJgotCSBnaXQgdGFnIC1sIGZvb2Jhci10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCi0JIGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi50YWdvcHQgPj4uLi90ZXN0L291dHB1dCkgJiYKLQkoY2Qgb25lICYmCi0JIGdpdCB0YWcgLWQgc29tZS10YWcgZm9vYmFyLXRhZykgJiYKKwlybSAtcmYgYWRkLXRhZ3MgJiYKKwkoCisJCW1rZGlyIGFkZC1uby10YWdzICYmCisJCWNkIGFkZC1uby10YWdzICYmCisJCWdpdCBpbml0ICYmCisJCWdpdCByZW1vdGUgYWRkIC1mIC0tbm8tdGFncyBvcmlnaW4gLi4vb25lICYmCisJCWdpdCB0YWcgLWwgc29tZS10YWcgPi4uL3Rlc3Qvb3V0cHV0ICYmCisJCWdpdCB0YWcgLWwgZm9vYmFyLXRhZyA+Li4vdGVzdC9vdXRwdXQgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnRhZ29wdCA+Pi4uL3Rlc3Qvb3V0cHV0CisJKSAmJgorCSgKKwkJY2Qgb25lICYmCisJCWdpdCB0YWcgLWQgc29tZS10YWcgZm9vYmFyLXRhZworCSkgJiYKIAl0ZXN0X2NtcCB0ZXN0L2V4cGVjdCB0ZXN0L291dHB1dAogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWplY3QgLS1uby1uby10YWdzJyAnCi0JKGNkIGFkZC1uby10YWdzICYmCi0JIHRlc3RfbXVzdF9mYWlsIGdpdCByZW1vdGUgYWRkIC1mIC0tbm8tbm8tdGFncyBuZXdvcmlnaW4gLi4vb25lKQorCSgKKwkJY2QgYWRkLW5vLXRhZ3MgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBhZGQgLWYgLS1uby1uby10YWdzIG5ld29yaWdpbiAuLi9vbmUKKwkpCiAnCiAKLWNhdCA+IG9uZS9leHBlY3QgPDwgRU9GCitjYXQgPm9uZS9leHBlY3QgPDxcRU9GCiAgIGFwaXMvbWFzdGVyCiAgIGFwaXMvc2lkZQogICBkcm9zb3BoaWxhL2Fub3RoZXIKQEAgLTUwMCwxNyArNTYwLDE3IEBACiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlJyAnCi0KLQkoY2Qgb25lICYmCi0JIGdpdCByZW1vdGUgYWRkIGRyb3NvcGhpbGEgLi4vdHdvICYmCi0JIGdpdCByZW1vdGUgYWRkIGFwaXMgLi4vbWlycm9yICYmCi0JIGdpdCByZW1vdGUgdXBkYXRlICYmCi0JIGdpdCBicmFuY2ggLXIgPiBvdXRwdXQgJiYKLQkgdGVzdF9jbXAgZXhwZWN0IG91dHB1dCkKLQorCSgKKwkJY2Qgb25lICYmCisJCWdpdCByZW1vdGUgYWRkIGRyb3NvcGhpbGEgLi4vdHdvICYmCisJCWdpdCByZW1vdGUgYWRkIGFwaXMgLi4vbWlycm9yICYmCisJCWdpdCByZW1vdGUgdXBkYXRlICYmCisJCWdpdCBicmFuY2ggLXIgPm91dHB1dCAmJgorCQl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8XEVPRgogICBkcm9zb3BoaWxhL2Fub3RoZXIKICAgZHJvc29waGlsYS9tYXN0ZXIKICAgZHJvc29waGlsYS9zaWRlCkBAIC01MjEsMzQgKzU4MSw0MCBAQAogRU9GCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSB3aXRoIGFyZ3VtZW50cycgJwotCi0JKGNkIG9uZSAmJgotCSBmb3IgYiBpbiAkKGdpdCBicmFuY2ggLXIpCi0JIGRvCisJKAorCQljZCBvbmUgJiYKKwkJZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQorCQlkbwogCQlnaXQgYnJhbmNoIC1yIC1kICRiIHx8IGJyZWFrCi0JIGRvbmUgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgbWFuZHVjYSAuLi9taXJyb3IgJiYKLQkgZ2l0IHJlbW90ZSBhZGQgbWVnYWxvcHJlcHVzIC4uL21pcnJvciAmJgotCSBnaXQgY29uZmlnIHJlbW90ZXMucGhvYmFldGljdXMgImRyb3NvcGhpbGEgbWVnYWxvcHJlcHVzIiAmJgotCSBnaXQgY29uZmlnIHJlbW90ZXMudGl0YW51cyBtYW5kdWNhICYmCi0JIGdpdCByZW1vdGUgdXBkYXRlIHBob2JhZXRpY3VzIHRpdGFudXMgJiYKLQkgZ2l0IGJyYW5jaCAtciA+IG91dHB1dCAmJgotCSB0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0KQotCisJCWRvbmUgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgbWFuZHVjYSAuLi9taXJyb3IgJiYKKwkJZ2l0IHJlbW90ZSBhZGQgbWVnYWxvcHJlcHVzIC4uL21pcnJvciAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMucGhvYmFldGljdXMgImRyb3NvcGhpbGEgbWVnYWxvcHJlcHVzIiAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMudGl0YW51cyBtYW5kdWNhICYmCisJCWdpdCByZW1vdGUgdXBkYXRlIHBob2JhZXRpY3VzIHRpdGFudXMgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSAtLXBydW5lJyAnCi0KLQkoY2Qgb25lICYmCi0JIGdpdCBicmFuY2ggLW0gc2lkZTIgc2lkZTMpICYmCi0JKGNkIHRlc3QgJiYKLQkgZ2l0IHJlbW90ZSB1cGRhdGUgLS1wcnVuZSAmJgotCSAoY2QgLi4vb25lICYmIGdpdCBicmFuY2ggLW0gc2lkZTMgc2lkZTIpICYmCi0JIGdpdCByZXYtcGFyc2UgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlMyAmJgotCSB0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTIpCisJKAorCQljZCBvbmUgJiYKKwkJZ2l0IGJyYW5jaCAtbSBzaWRlMiBzaWRlMworCSkgJiYKKwkoCisJCWNkIHRlc3QgJiYKKwkJZ2l0IHJlbW90ZSB1cGRhdGUgLS1wcnVuZSAmJgorCQkoCisJCQljZCAuLi9vbmUgJiYKKwkJCWdpdCBicmFuY2ggLW0gc2lkZTMgc2lkZTIKKwkJKSAmJgorCQlnaXQgcmV2LXBhcnNlIHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZTMgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSByZWZzL3JlbW90ZXMvb3JpZ2luL3NpZGUyCisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8LVxFT0YKICAgYXBpcy9tYXN0ZXIKICAgYXBpcy9zaWRlCiAgIG1hbmR1Y2EvbWFzdGVyCkBAIC01NTgsMTc2ICs2MjQsMjA0IEBACiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGRlZmF1bHQnICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3RlLmRyb3NvcGhpbGEuc2tpcERlZmF1bHRVcGRhdGUgdHJ1ZSAmJgotCSBnaXQgcmVtb3RlIHVwZGF0ZSBkZWZhdWx0ICYmCi0JIGdpdCBicmFuY2ggLXIgPiBvdXRwdXQgJiYKLQkgdGVzdF9jbXAgZXhwZWN0IG91dHB1dCkKLQorCQlkb25lICYmCisJCWdpdCBjb25maWcgcmVtb3RlLmRyb3NvcGhpbGEuc2tpcERlZmF1bHRVcGRhdGUgdHJ1ZSAmJgorCQlnaXQgcmVtb3RlIHVwZGF0ZSBkZWZhdWx0ICYmCisJCWdpdCBicmFuY2ggLXIgPm91dHB1dCAmJgorCQl0ZXN0X2NtcCBleHBlY3Qgb3V0cHV0CisJKQogJwogCi1jYXQgPiBvbmUvZXhwZWN0IDw8IEVPRgorY2F0ID5vbmUvZXhwZWN0IDw8XEVPRgogICBkcm9zb3BoaWxhL2Fub3RoZXIKICAgZHJvc29waGlsYS9tYXN0ZXIKICAgZHJvc29waGlsYS9zaWRlCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGRlZmF1bHQgKG92ZXJyaWRkZW4sIHdpdGggZnVubnkgd2hpdGVzcGFjZSknICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3Rlcy5kZWZhdWx0ICIkKHByaW50ZiAiXHQgZHJvc29waGlsYSAgXG4iKSIgJiYKLQkgZ2l0IHJlbW90ZSB1cGRhdGUgZGVmYXVsdCAmJgotCSBnaXQgYnJhbmNoIC1yID4gb3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCi0KKwkJZG9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMuZGVmYXVsdCAiJChwcmludGYgIlx0IGRyb3NvcGhpbGEgIFxuIikiICYmCisJCWdpdCByZW1vdGUgdXBkYXRlIGRlZmF1bHQgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSAod2l0aCByZW1vdGVzLmRlZmF1bHQgZGVmaW5lZCknICcKLQotCShjZCBvbmUgJiYKLQkgZm9yIGIgaW4gJChnaXQgYnJhbmNoIC1yKQotCSBkbworCSgKKwkJY2Qgb25lICYmCisJCWZvciBiIGluICQoZ2l0IGJyYW5jaCAtcikKKwkJZG8KIAkJZ2l0IGJyYW5jaCAtciAtZCAkYiB8fCBicmVhawotCSBkb25lICYmCi0JIGdpdCBjb25maWcgcmVtb3Rlcy5kZWZhdWx0ICJkcm9zb3BoaWxhIiAmJgotCSBnaXQgcmVtb3RlIHVwZGF0ZSAmJgotCSBnaXQgYnJhbmNoIC1yID4gb3V0cHV0ICYmCi0JIHRlc3RfY21wIGV4cGVjdCBvdXRwdXQpCi0KKwkJZG9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZXMuZGVmYXVsdCAiZHJvc29waGlsYSIgJiYKKwkJZ2l0IHJlbW90ZSB1cGRhdGUgJiYKKwkJZ2l0IGJyYW5jaCAtciA+b3V0cHV0ICYmCisJCXRlc3RfY21wIGV4cGVjdCBvdXRwdXQKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJyZW1vdGUgc2hvdyIgZG9lcyBub3Qgc2hvdyBzeW1ib2xpYyByZWZzJyAnCi0KIAlnaXQgY2xvbmUgb25lIHRocmVlICYmCi0JKGNkIHRocmVlICYmCi0JIGdpdCByZW1vdGUgc2hvdyBvcmlnaW4gPiBvdXRwdXQgJiYKLQkgISBncmVwICJeICpIRUFEJCIgPCBvdXRwdXQgJiYKLQkgISBncmVwIC1pIHN0YWxlIDwgb3V0cHV0KQotCisJKAorCQljZCB0aHJlZSAmJgorCQlnaXQgcmVtb3RlIHNob3cgb3JpZ2luID5vdXRwdXQgJiYKKwkJISBncmVwICJeICpIRUFEJCIgPCBvdXRwdXQgJiYKKwkJISBncmVwIC1pIHN0YWxlIDwgb3V0cHV0CisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZWplY3QgYWRkaW5nIHJlbW90ZSB3aXRoIGFuIGludmFsaWQgbmFtZScgJwotCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlbW90ZSBhZGQgc29tZTp1cmwgZGVzaXJlZC1uYW1lCi0KICcKIAogIyBUaGUgZmlyc3QgdGhyZWUgdGVzdCBpZiB0aGUgdHJhY2tpbmcgYnJhbmNoZXMgYXJlIHByb3Blcmx5IHJlbmFtZWQsCiAjIHRoZSBsYXN0IHR3byBvbmVzIGNoZWNrIGlmIHRoZSBjb25maWcgaXMgdXBkYXRlZC4KIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVuYW1lIGEgcmVtb3RlJyAnCi0KIAlnaXQgY2xvbmUgb25lIGZvdXIgJiYKLQkoY2QgZm91ciAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKLQkgcm1kaXIgLmdpdC9yZWZzL3JlbW90ZXMvb3JpZ2luICYmCi0JIHRlc3QgIiQoZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvdXBzdHJlYW0vSEVBRCkiID0gInJlZnMvcmVtb3Rlcy91cHN0cmVhbS9tYXN0ZXIiICYmCi0JIHRlc3QgIiQoZ2l0IHJldi1wYXJzZSB1cHN0cmVhbS9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIgJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSkiID0gInVwc3RyZWFtIikKLQorCSgKKwkJY2QgZm91ciAmJgorCQlnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKKwkJcm1kaXIgLmdpdC9yZWZzL3JlbW90ZXMvb3JpZ2luICYmCisJCXRlc3QgIiQoZ2l0IHN5bWJvbGljLXJlZiByZWZzL3JlbW90ZXMvdXBzdHJlYW0vSEVBRCkiID0gInJlZnMvcmVtb3Rlcy91cHN0cmVhbS9tYXN0ZXIiICYmCisJCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSB1cHN0cmVhbS9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiICYmCisJCXRlc3QgIiQoZ2l0IGNvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSkiID0gInVwc3RyZWFtIgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVuYW1lIGRvZXMgbm90IHVwZGF0ZSBhIG5vbi1kZWZhdWx0IGZldGNoIHJlZnNwZWMnICcKLQogCWdpdCBjbG9uZSBvbmUgZm91ci5vbmUgJiYKLQkoY2QgZm91ci5vbmUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLmZldGNoICtyZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy9vcmlnaW4vKiAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gdXBzdHJlYW0gJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy9vcmlnaW4vKiIgJiYKLQkgZ2l0IHJldi1wYXJzZSAtcSBvcmlnaW4vbWFzdGVyKQotCisJKAorCQljZCBmb3VyLm9uZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2ggK3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzL29yaWdpbi8qICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiB1cHN0cmVhbSAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLnVwc3RyZWFtLmZldGNoKSIgPSAiK3JlZnMvaGVhZHMvKjpyZWZzL2hlYWRzL29yaWdpbi8qIiAmJgorCQlnaXQgcmV2LXBhcnNlIC1xIG9yaWdpbi9tYXN0ZXIKKwkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlbmFtZSBhIHJlbW90ZSB3aXRoIG5hbWUgcGFydCBvZiBmZXRjaCBzcGVjJyAnCi0KIAlnaXQgY2xvbmUgb25lIGZvdXIudHdvICYmCi0JKGNkIGZvdXIudHdvICYmCi0JIGdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiByZW1vdGUgJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgcmVtb3RlIHVwc3RyZWFtICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUudXBzdHJlYW0uZmV0Y2gpIiA9ICIrcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy91cHN0cmVhbS8qIikKLQorCSgKKwkJY2QgZm91ci50d28gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIHJlbW90ZSAmJgorCQlnaXQgcmVtb3RlIHJlbmFtZSByZW1vdGUgdXBzdHJlYW0gJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS51cHN0cmVhbS5mZXRjaCkiID0gIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL3Vwc3RyZWFtLyoiCisJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZW5hbWUgYSByZW1vdGUgd2l0aCBuYW1lIHByZWZpeCBvZiBvdGhlciByZW1vdGUnICcKLQogCWdpdCBjbG9uZSBvbmUgZm91ci50aHJlZSAmJgotCShjZCBmb3VyLnRocmVlICYmCi0JIGdpdCByZW1vdGUgYWRkIG8gZ2l0Oi8vZXhhbXBsZS5jb20vcmVwby5naXQgJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgbyB1cHN0cmVhbSAmJgotCSB0ZXN0ICIkKGdpdCByZXYtcGFyc2Ugb3JpZ2luL21hc3RlcikiID0gIiQoZ2l0IHJldi1wYXJzZSBtYXN0ZXIpIikKLQorCSgKKwkJY2QgZm91ci50aHJlZSAmJgorCQlnaXQgcmVtb3RlIGFkZCBvIGdpdDovL2V4YW1wbGUuY29tL3JlcG8uZ2l0ICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG8gdXBzdHJlYW0gJiYKKwkJdGVzdCAiJChnaXQgcmV2LXBhcnNlIG9yaWdpbi9tYXN0ZXIpIiA9ICIkKGdpdCByZXYtcGFyc2UgbWFzdGVyKSIKKwkpCiAnCiAKLWNhdCA+IHJlbW90ZXNfb3JpZ2luIDw8IEVPRgorY2F0ID5yZW1vdGVzX29yaWdpbiA8PEVPRgogVVJMOiAkKHB3ZCkvb25lCiBQdXNoOiByZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL3Vwc3RyZWFtCitQdXNoOiByZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy91cHN0cmVhbTIKIFB1bGw6IHJlZnMvaGVhZHMvbWFzdGVyOnJlZnMvaGVhZHMvb3JpZ2luCitQdWxsOiByZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy9vcmlnaW4yCiBFT0YKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWlncmF0ZSBhIHJlbW90ZSBmcm9tIG5hbWVkIGZpbGUgaW4gJEdJVF9ESVIvcmVtb3RlcycgJwogCWdpdCBjbG9uZSBvbmUgZml2ZSAmJgogCW9yaWdpbl91cmw9JChwd2QpL29uZSAmJgotCShjZCBmaXZlICYmCi0JIGdpdCByZW1vdGUgcmVtb3ZlIG9yaWdpbiAmJgotCSBta2RpciAtcCAuZ2l0L3JlbW90ZXMgJiYKLQkgY2F0IC4uL3JlbW90ZXNfb3JpZ2luID4gLmdpdC9yZW1vdGVzL29yaWdpbiAmJgotCSBnaXQgcmVtb3RlIHJlbmFtZSBvcmlnaW4gb3JpZ2luICYmCi0JICEgdGVzdCAtZiAuZ2l0L3JlbW90ZXMvb3JpZ2luICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIiRvcmlnaW5fdXJsIiAmJgotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi5wdXNoKSIgPSAicmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbSIgJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2gpIiA9ICJyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbiIpCisJKAorCQljZCBmaXZlICYmCisJCWdpdCByZW1vdGUgcmVtb3ZlIG9yaWdpbiAmJgorCQlta2RpciAtcCAuZ2l0L3JlbW90ZXMgJiYKKwkJY2F0IC4uL3JlbW90ZXNfb3JpZ2luID4uZ2l0L3JlbW90ZXMvb3JpZ2luICYmCisJCWdpdCByZW1vdGUgcmVuYW1lIG9yaWdpbiBvcmlnaW4gJiYKKwkJdGVzdF9wYXRoX2lzX21pc3NpbmcgLmdpdC9yZW1vdGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIkb3JpZ2luX3VybCIgJiYKKwkJY2F0ID5wdXNoX2V4cGVjdGVkIDw8LVxFT0YgJiYKKwkJcmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy91cHN0cmVhbQorCQlyZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy91cHN0cmVhbTIKKwkJRU9GCisJCWNhdCA+ZmV0Y2hfZXhwZWN0ZWQgPDwtXEVPRiAmJgorCQlyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbgorCQlyZWZzL2hlYWRzL25leHQ6cmVmcy9oZWFkcy9vcmlnaW4yCisJCUVPRgorCQlnaXQgY29uZmlnIC0tZ2V0LWFsbCByZW1vdGUub3JpZ2luLnB1c2ggPnB1c2hfYWN0dWFsICYmCisJCWdpdCBjb25maWcgLS1nZXQtYWxsIHJlbW90ZS5vcmlnaW4uZmV0Y2ggPmZldGNoX2FjdHVhbCAmJgorCQl0ZXN0X2NtcCBwdXNoX2V4cGVjdGVkIHB1c2hfYWN0dWFsICYmCisJCXRlc3RfY21wIGZldGNoX2V4cGVjdGVkIGZldGNoX2FjdHVhbAorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWlncmF0ZSBhIHJlbW90ZSBmcm9tIG5hbWVkIGZpbGUgaW4gJEdJVF9ESVIvYnJhbmNoZXMnICcKIAlnaXQgY2xvbmUgb25lIHNpeCAmJgogCW9yaWdpbl91cmw9JChwd2QpL29uZSAmJgotCShjZCBzaXggJiYKLQkgZ2l0IHJlbW90ZSBybSBvcmlnaW4gJiYKLQkgZWNobyAiJG9yaWdpbl91cmwiID4gLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKLQkgZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgotCSAhIHRlc3QgLWYgLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiJG9yaWdpbl91cmwiICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLmZldGNoKSIgPSAicmVmcy9oZWFkcy9tYXN0ZXI6cmVmcy9oZWFkcy9vcmlnaW4iKQorCSgKKwkJY2Qgc2l4ICYmCisJCWdpdCByZW1vdGUgcm0gb3JpZ2luICYmCisJCWVjaG8gIiRvcmlnaW5fdXJsIiA+LmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L2JyYW5jaGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIkb3JpZ2luX3VybCIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2gpIiA9ICJyZWZzL2hlYWRzL21hc3RlcjpyZWZzL2hlYWRzL29yaWdpbiIgJiYKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4ucHVzaCkiID0gIkhFQUQ6cmVmcy9oZWFkcy9tYXN0ZXIiCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtaWdyYXRlIGEgcmVtb3RlIGZyb20gbmFtZWQgZmlsZSBpbiAkR0lUX0RJUi9icmFuY2hlcyAoMiknICcKKwlnaXQgY2xvbmUgb25lIHNldmVuICYmCisJKAorCQljZCBzZXZlbiAmJgorCQlnaXQgcmVtb3RlIHJtIG9yaWdpbiAmJgorCQllY2hvICJxdXV4I2Zvb20iID4gLmdpdC9icmFuY2hlcy9vcmlnaW4gJiYKKwkJZ2l0IHJlbW90ZSByZW5hbWUgb3JpZ2luIG9yaWdpbiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyAuZ2l0L2JyYW5jaGVzL29yaWdpbiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICJxdXV4IiAmJgorCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi5mZXRjaCkiID0gInJlZnMvaGVhZHMvZm9vbTpyZWZzL2hlYWRzL29yaWdpbiIKKwkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4ucHVzaCkiID0gIkhFQUQ6cmVmcy9oZWFkcy9mb29tIgorCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncmVtb3RlIHBydW5lIHRvIGNhdXNlIGEgZGFuZ2xpbmcgc3ltcmVmJyAnCi0JZ2l0IGNsb25lIG9uZSBzZXZlbiAmJgorCWdpdCBjbG9uZSBvbmUgZWlnaHQgJiYKIAkoCiAJCWNkIG9uZSAmJgogCQlnaXQgY2hlY2tvdXQgc2lkZTIgJiYKIAkJZ2l0IGJyYW5jaCAtRCBtYXN0ZXIKIAkpICYmCiAJKAotCQljZCBzZXZlbiAmJgorCQljZCBlaWdodCAmJgogCQlnaXQgcmVtb3RlIHBydW5lIG9yaWdpbgogCSkgPmVyciAyPiYxICYmCiAJdGVzdF9pMThuZ3JlcCAiaGFzIGJlY29tZSBkYW5nbGluZyIgZXJyICYmCiAKIAk6IEFuZCB0aGUgZGFuZ2xpbmcgc3ltcmVmIHdpbGwgbm90IGNhdXNlIG90aGVyIGFubm95aW5nIGVycm9ycyAmJgogCSgKLQkJY2Qgc2V2ZW4gJiYKKwkJY2QgZWlnaHQgJiYKIAkJZ2l0IGJyYW5jaCAtYQogCSkgMj5lcnIgJiYKIAkhIGdyZXAgInBvaW50cyBub3doZXJlIiBlcnIgJiYKIAkoCi0JCWNkIHNldmVuICYmCisJCWNkIGVpZ2h0ICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCBicmFuY2ggbm9tb3JlIG9yaWdpbgogCSkgMj5lcnIgJiYKIAlncmVwICJkYW5nbGluZyBzeW1yZWYiIGVycgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG93IGVtcHR5IHJlbW90ZScgJwotCiAJdGVzdF9jcmVhdGVfcmVwbyBlbXB0eSAmJgogCWdpdCBjbG9uZSBlbXB0eSBlbXB0eS1jbG9uZSAmJgogCSgKZGlmZiAtLWdpdCBhL3QvdDU1MTAtZmV0Y2guc2ggYi90L3Q1NTEwLWZldGNoLnNoCmluZGV4IGQ3YTE5YTEuLmZkZTY4OTEgMTAwNzU1Ci0tLSBhL3QvdDU1MTAtZmV0Y2guc2gKKysrIGIvdC90NTUxMC1mZXRjaC5zaApAQCAtMzcwLDMwICszNzAsMzkgQEAKIAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBmZXRjaCBzaG91bGQgbm90IHVwZGF0ZSB0cmFja2luZycgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWFyayBpbml0aWFsIHN0YXRlIG9mIG9yaWdpbi9tYXN0ZXInICcKKwkoCisJCWNkIHRocmVlICYmCisJCWdpdCB0YWcgYmFzZS1vcmlnaW4tbWFzdGVyIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBmZXRjaCBzaG91bGQgdXBkYXRlIHRyYWNraW5nJyAnCiAKIAljZCAiJEQiICYmCiAJZ2l0IGJyYW5jaCAtZiBzaWRlICYmCiAJKAogCQljZCB0aHJlZSAmJgorCQlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciBiYXNlLW9yaWdpbi1tYXN0ZXIgJiYKIAkJbz0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIpICYmCiAJCWdpdCBmZXRjaCBvcmlnaW4gbWFzdGVyICYmCiAJCW49JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgotCQl0ZXN0ICIkbyIgPSAiJG4iICYmCisJCXRlc3QgIiRvIiAhPSAiJG4iICYmCiAJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgcmVmcy9yZW1vdGVzL29yaWdpbi9zaWRlCiAJKQogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBwdWxsIHNob3VsZCBub3QgdXBkYXRlIHRyYWNraW5nJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdleHBsaWNpdCBwdWxsIHNob3VsZCB1cGRhdGUgdHJhY2tpbmcnICcKIAogCWNkICIkRCIgJiYKIAlnaXQgYnJhbmNoIC1mIHNpZGUgJiYKIAkoCiAJCWNkIHRocmVlICYmCisJCWdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyIGJhc2Utb3JpZ2luLW1hc3RlciAmJgogCQlvPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKIAkJZ2l0IHB1bGwgb3JpZ2luIG1hc3RlciAmJgogCQluPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKLQkJdGVzdCAiJG8iID0gIiRuIiAmJgorCQl0ZXN0ICIkbyIgIT0gIiRuIiAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vc2lkZQogCSkKICcKQEAgLTQwNCw2ICs0MTMsNyBAQAogCWdpdCBicmFuY2ggLWYgc2lkZSAmJgogCSgKIAkJY2QgdGhyZWUgJiYKKwkJZ2l0IHVwZGF0ZS1yZWYgcmVmcy9yZW1vdGVzL29yaWdpbi9tYXN0ZXIgYmFzZS1vcmlnaW4tbWFzdGVyICYmCiAJCW89JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgogCQlnaXQgZmV0Y2ggb3JpZ2luICYmCiAJCW49JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgpAQCAtNDEyLDYgKzQyMiwyMiBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uLW1hdGNoaW5nIHJlZnNwZWNzIGRvIG5vdCBjb25mdXNlIHRyYWNraW5nIHVwZGF0ZScgJworCWNkICIkRCIgJiYKKwlnaXQgdXBkYXRlLXJlZiByZWZzL29kZC9sb2NhdGlvbiBIRUFEICYmCisJKAorCQljZCB0aHJlZSAmJgorCQlnaXQgdXBkYXRlLXJlZiByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlciBiYXNlLW9yaWdpbi1tYXN0ZXIgJiYKKwkJZ2l0IGNvbmZpZyAtLWFkZCByZW1vdGUub3JpZ2luLmZldGNoIFwKKwkJCXJlZnMvb2RkL2xvY2F0aW9uOnJlZnMvcmVtb3Rlcy9vcmlnaW4vb2RkICYmCisJCW89JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IHJlZnMvcmVtb3Rlcy9vcmlnaW4vbWFzdGVyKSAmJgorCQlnaXQgZmV0Y2ggb3JpZ2luIG1hc3RlciAmJgorCQluPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL21hc3RlcikgJiYKKwkJdGVzdCAiJG8iICE9ICIkbiIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZWZzL3JlbW90ZXMvb3JpZ2luL29kZAorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaGluZyBub25leGlzdGVudCBicmFuY2ggYnkgbWlzdGFrZSBzaG91bGQgbm90IHNlZ3YnICcKIAogCWNkICIkRCIgJiYKZGlmZiAtLWdpdCBhL3QvdDU1MjAtcHVsbC5zaCBiL3QvdDU1MjAtcHVsbC5zaAppbmRleCA2YWY2YzYzLi5lZDRkOWM4IDEwMDc1NQotLS0gYS90L3Q1NTIwLXB1bGwuc2gKKysrIGIvdC90NTUyMC1wdWxsLnNoCkBAIC01Nyw2ICs1NywzNSBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyBpbnRvIHZvaWQgZG9lcyBub3Qgb3ZlcndyaXRlIHN0YWdlZCBmaWxlcycgJworCWdpdCBpbml0IGNsb25lZC1zdGFnZWQtY29sbGlkaW5nICYmCisJKAorCQljZCBjbG9uZWQtc3RhZ2VkLWNvbGxpZGluZyAmJgorCQllY2hvICJhbHRlcm5hdGUgY29udGVudCIgPmZpbGUgJiYKKwkJZ2l0IGFkZCBmaWxlICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCBwdWxsIC4uIG1hc3RlciAmJgorCQllY2hvICJhbHRlcm5hdGUgY29udGVudCIgPmV4cGVjdCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgZmlsZSAmJgorCQlnaXQgY2F0LWZpbGUgYmxvYiA6ZmlsZSA+ZmlsZS5pbmRleCAmJgorCQl0ZXN0X2NtcCBleHBlY3QgZmlsZS5pbmRleAorCSkKKycKKworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdWxsaW5nIGludG8gdm9pZCBkb2VzIG5vdCByZW1vdmUgbmV3IHN0YWdlZCBmaWxlcycgJworCWdpdCBpbml0IGNsb25lZC1zdGFnZWQtbmV3ICYmCisJKAorCQljZCBjbG9uZWQtc3RhZ2VkLW5ldyAmJgorCQllY2hvICJuZXcgdHJhY2tlZCBmaWxlIiA+bmV3ZmlsZSAmJgorCQlnaXQgYWRkIG5ld2ZpbGUgJiYKKwkJZ2l0IHB1bGwgLi4gbWFzdGVyICYmCisJCWVjaG8gIm5ldyB0cmFja2VkIGZpbGUiID5leHBlY3QgJiYKKwkJdGVzdF9jbXAgZXhwZWN0IG5ld2ZpbGUgJiYKKwkJZ2l0IGNhdC1maWxlIGJsb2IgOm5ld2ZpbGUgPm5ld2ZpbGUuaW5kZXggJiYKKwkJdGVzdF9jbXAgZXhwZWN0IG5ld2ZpbGUuaW5kZXgKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Rlc3QgLiBhcyBhIHJlbW90ZScgJwogCiAJZ2l0IGJyYW5jaCBjb3B5IG1hc3RlciAmJgpkaWZmIC0tZ2l0IGEvdC90NTUyMS1wdWxsLW9wdGlvbnMuc2ggYi90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaAppbmRleCBhYTMxYWJlLi40NTNhYmE1IDEwMDc1NQotLS0gYS90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaAorKysgYi90L3Q1NTIxLXB1bGwtb3B0aW9ucy5zaApAQCAtMTUsMTkgKzE1LDE5IEBACiAJbWtkaXIgY2xvbmVkcSAmJgogCShjZCBjbG9uZWRxICYmIGdpdCBpbml0ICYmCiAJZ2l0IHB1bGwgLXEgIi4uL3BhcmVudCIgPm91dCAyPmVyciAmJgotCXRlc3QgISAtcyBlcnIgJiYKLQl0ZXN0ICEgLXMgb3V0KQorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0KQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgcHVsbCAtcSAtLXJlYmFzZScgJwogCW1rZGlyIGNsb25lZHFyYiAmJgogCShjZCBjbG9uZWRxcmIgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtcSAtLXJlYmFzZSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCAmJgogCWdpdCBwdWxsIC1xIC0tcmViYXNlICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKLQl0ZXN0ICEgLXMgZXJyICYmCi0JdGVzdCAhIC1zIG91dCkKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwnICcKQEAgLTM1LDcgKzM1LDcgQEAKIAkoY2QgY2xvbmVkICYmIGdpdCBpbml0ICYmCiAJZ2l0IHB1bGwgIi4uL3BhcmVudCIgPm91dCAyPmVyciAmJgogCXRlc3QgLXMgZXJyICYmCi0JdGVzdCAhIC1zIG91dCkKKwl0ZXN0X211c3RfYmVfZW1wdHkgb3V0KQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgcHVsbCAtLXJlYmFzZScgJwpAQCAtNDMsNyArNDMsNyBAQAogCShjZCBjbG9uZWRyYiAmJiBnaXQgaW5pdCAmJgogCWdpdCBwdWxsIC0tcmViYXNlICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKIAl0ZXN0IC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwgLXYnICcKQEAgLTUxLDcgKzUxLDcgQEAKIAkoY2QgY2xvbmVkdiAmJiBnaXQgaW5pdCAmJgogCWdpdCBwdWxsIC12ICIuLi9wYXJlbnQiID5vdXQgMj5lcnIgJiYKIAl0ZXN0IC1zIGVyciAmJgotCXRlc3QgISAtcyBvdXQpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IHB1bGwgLXYgLS1yZWJhc2UnICcKQEAgLTU5LDIyICs1OSwyMiBAQAogCShjZCBjbG9uZWR2cmIgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtdiAtLXJlYmFzZSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCiAJdGVzdCAtcyBlcnIgJiYKLQl0ZXN0ICEgLXMgb3V0KQorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXQpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBwdWxsIC12IC1xJyAnCiAJbWtkaXIgY2xvbmVkdnEgJiYKIAkoY2QgY2xvbmVkdnEgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtdiAtcSAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIG91dCAmJgotCXRlc3QgISAtcyBlcnIpCisJdGVzdF9tdXN0X2JlX2VtcHR5IG91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBlcnIpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBwdWxsIC1xIC12JyAnCiAJbWtkaXIgY2xvbmVkcXYgJiYKIAkoY2QgY2xvbmVkcXYgJiYgZ2l0IGluaXQgJiYKIAlnaXQgcHVsbCAtcSAtdiAiLi4vcGFyZW50IiA+b3V0IDI+ZXJyICYmCi0JdGVzdCAhIC1zIG91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBvdXQgJiYKIAl0ZXN0IC1zIGVycikKICcKIApkaWZmIC0tZ2l0IGEvdC90NTUyOC1wdXNoLWRlZmF1bHQuc2ggYi90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaAppbmRleCA0NzM2ZGE4Li42YTVhYzNhIDEwMDc1NQotLS0gYS90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaAorKysgYi90L3Q1NTI4LXB1c2gtZGVmYXVsdC5zaApAQCAtMTUsMTcgKzE1LDE5IEBACiAKICMgJDEgPSBsb2NhbCByZXZpc2lvbgogIyAkMiA9IHJlbW90ZSByZXZpc2lvbiAodGVzdGVkIHRvIGJlIGVxdWFsIHRvIHRoZSBsb2NhbCBvbmUpCisjICQzID0gW29wdGlvbmFsXSByZXBvIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChyZXBvMSBieSBkZWZhdWx0KQogY2hlY2tfcHVzaGVkX2NvbW1pdCAoKSB7CiAJZ2l0IGxvZyAtMSAtLWZvcm1hdD0nJWggJXMnICIkMSIgPmV4cGVjdCAmJgotCWdpdCAtLWdpdC1kaXI9cmVwbzEgbG9nIC0xIC0tZm9ybWF0PSclaCAlcycgIiQyIiA+YWN0dWFsICYmCisJZ2l0IC0tZ2l0LWRpcj0iJHszOi1yZXBvMX0iIGxvZyAtMSAtLWZvcm1hdD0nJWggJXMnICIkMiIgPmFjdHVhbCAmJgogCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKIH0KIAogIyAkMSA9IHB1c2guZGVmYXVsdCB2YWx1ZQogIyAkMiA9IGV4cGVjdGVkIHRhcmdldCBicmFuY2ggZm9yIHRoZSBwdXNoCisjICQzID0gW29wdGlvbmFsXSByZXBvIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChyZXBvMSBieSBkZWZhdWx0KQogdGVzdF9wdXNoX3N1Y2Nlc3MgKCkgewogCWdpdCAtYyBwdXNoLmRlZmF1bHQ9IiQxIiBwdXNoICYmCi0JY2hlY2tfcHVzaGVkX2NvbW1pdCBIRUFEICIkMiIKKwljaGVja19wdXNoZWRfY29tbWl0IEhFQUQgIiQyIiAiJDMiCiB9CiAKICMgJDEgPSBwdXNoLmRlZmF1bHQgdmFsdWUKQEAgLTM3LDYgKzM5LDI2IEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogfQogCisjICQxID0gc3VjY2VzcyBvciBmYWlsdXJlCisjICQyID0gcHVzaC5kZWZhdWx0IHZhbHVlCisjICQzID0gYnJhbmNoIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChtYXN0ZXIgb3IgZm9vKQorIyAkNCA9IFtvcHRpb25hbF0gc3dpdGNoIHRvIHRyaWFuZ3VsYXIgd29ya2Zsb3cKK3Rlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3cgKCkgeworCXdvcmtmbG93PWNlbnRyYWwKKwlwdXNoZGVmYXVsdD1wYXJlbnQxCisJaWYgdGVzdCAtbiAiJHs0LX0iOyB0aGVuCisJCXdvcmtmbG93PXRyaWFuZ3VsYXIKKwkJcHVzaGRlZmF1bHQ9cGFyZW50MgorCWZpCisJdGVzdF9leHBlY3Rfc3VjY2VzcyAicHVzaC5kZWZhdWx0ID0gJDIgJDEgaW4gJHdvcmtmbG93IHdvcmtmbG93cyIgIgorCQl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCisJCXRlc3RfY29uZmlnIGJyYW5jaC5tYXN0ZXIubWVyZ2UgcmVmcy9oZWFkcy9mb28gJiYKKwkJdGVzdF9jb25maWcgcmVtb3RlLnB1c2hkZWZhdWx0ICRwdXNoZGVmYXVsdCAmJgorCQl0ZXN0X2NvbW1pdCBjb21taXQtZm9yLSQyJHs0Ky10cmlhbmd1bGFyfSAmJgorCQl0ZXN0X3B1c2hfJDEgJDIgJDMgJHs0K3JlcG8yfQorCSIKK30KKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnInVwc3RyZWFtIiBwdXNoZXMgdG8gY29uZmlndXJlZCB1cHN0cmVhbScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCkBAIC00OCw3ICs3MCw2IEBACiB0ZXN0X2V4cGVjdF9zdWNjZXNzICcidXBzdHJlYW0iIGRvZXMgbm90IHB1c2ggb24gdW5jb25maWd1cmVkIHJlbW90ZScgJwogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X3VuY29uZmlnIGJyYW5jaC5tYXN0ZXIucmVtb3RlICYmCi0JdGVzdF9jb25maWcgcHVzaC5kZWZhdWx0IHVwc3RyZWFtICYmCiAJdGVzdF9jb21taXQgdGhyZWUgJiYKIAl0ZXN0X3B1c2hfZmFpbHVyZSB1cHN0cmVhbQogJwpAQCAtNTcsNyArNzgsNiBAQAogCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKIAl0ZXN0X2NvbmZpZyBicmFuY2gubWFzdGVyLnJlbW90ZSBwYXJlbnQxICYmCiAJdGVzdF91bmNvbmZpZyBicmFuY2gubWFzdGVyLm1lcmdlICYmCi0JdGVzdF9jb25maWcgcHVzaC5kZWZhdWx0IHVwc3RyZWFtCiAJdGVzdF9jb21taXQgZm91ciAmJgogCXRlc3RfcHVzaF9mYWlsdXJlIHVwc3RyZWFtCiAnCkBAIC0xMTUsNCArMTM1LDQxIEBACiAJdGVzdF9jbXAgZXhwZWN0LW90aGVyLW5hbWUgYWN0dWFsLW90aGVyLW5hbWUKICcKIAorIyBXZSBhcmUgb24gJ21hc3RlcicsIHdoaWNoIGludGVncmF0ZXMgd2l0aCAnZm9vJyBmcm9tIHBhcmVudDEKKyMgcmVtb3RlIChzZXQgaW4gdGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBoZWxwZXIpLiAgUHVzaCB0bworIyBwYXJlbnQxIGluIGNlbnRyYWxpemVkLCBhbmQgcHVzaCB0byBwYXJlbnQyIGluIHRyaWFuZ3VsYXIgd29ya2Zsb3cuCisjIFRoZSBwYXJlbnQxIHJlcG9zaXRvcnkgaGFzICdtYXN0ZXInIGFuZCAnZm9vJyBicmFuY2hlcywgd2hpbGUKKyMgdGhlIHBhcmVudDIgcmVwb3NpdG9yeSBoYXMgb25seSAnbWFzdGVyJyBicmFuY2guCisjCisjIHRlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3coKSBhcmd1bWVudHM6CisjICQxID0gc3VjY2VzcyBvciBmYWlsdXJlCisjICQyID0gcHVzaC5kZWZhdWx0IHZhbHVlCisjICQzID0gYnJhbmNoIHRvIGNoZWNrIGZvciBhY3R1YWwgb3V0cHV0IChtYXN0ZXIgb3IgZm9vKQorIyAkNCA9IFtvcHRpb25hbF0gc3dpdGNoIHRvIHRyaWFuZ3VsYXIgd29ya2Zsb3cKKworIyB1cGRhdGUgcGFyZW50MSdzIG1hc3RlciAod2hpY2ggaXMgbm90IG91ciB1cHN0cmVhbSkKK3Rlc3RfcHVzaGRlZmF1bHRfd29ya2Zsb3cgc3VjY2VzcyBjdXJyZW50IG1hc3RlcgorCisjIHVwZGF0ZSBwYXJlbnQxJ3MgZm9vICh3aGljaCBpcyBvdXIgdXBzdHJlYW0pCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgdXBzdHJlYW0gZm9vCisKKyMgdXBzcmVhbSBpcyBmb28gd2hpY2ggaXMgbm90IHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaAordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBmYWlsdXJlIHNpbXBsZSBtYXN0ZXIKKworIyBtYXN0ZXIgYW5kIGZvbyBhcmUgdXBkYXRlZAordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBzdWNjZXNzIG1hdGNoaW5nIG1hc3RlcgorCisjIG1hc3RlciBpcyB1cGRhdGVkCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgY3VycmVudCBtYXN0ZXIgdHJpYW5ndWxhcgorCisjIHVwc3RyZWFtIG1vZGUgY2Fubm90IGJlIHVzZWQgaW4gdHJpYW5ndWxhcgordGVzdF9wdXNoZGVmYXVsdF93b3JrZmxvdyBmYWlsdXJlIHVwc3RyZWFtIGZvbyB0cmlhbmd1bGFyCisKKyMgaW4gdHJpYW5ndWxhciwgJ3NpbXBsZScgd29ya3MgYXMgJ2N1cnJlbnQnIGFuZCB1cGRhdGUgdGhlIGJyYW5jaAorIyB3aXRoIHRoZSBzYW1lIG5hbWUuCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3Mgc2ltcGxlIG1hc3RlciB0cmlhbmd1bGFyCisKKyMgbWFzdGVyIGlzIHVwZGF0ZWQgKHBhcmVudDIgZG9lcyBub3QgaGF2ZSBmb28pCit0ZXN0X3B1c2hkZWZhdWx0X3dvcmtmbG93IHN1Y2Nlc3MgbWF0Y2hpbmcgbWFzdGVyIHRyaWFuZ3VsYXIKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q1NTUxLWh0dHAtZmV0Y2guc2ggYi90L3Q1NTUxLWh0dHAtZmV0Y2guc2gKaW5kZXggYjIzZWZiYi4uNTVhODY2YSAxMDA3NTUKLS0tIGEvdC90NTU1MS1odHRwLWZldGNoLnNoCisrKyBiL3QvdDU1NTEtaHR0cC1mZXRjaC5zaApAQCAtMjA5LDEzICsyMDksMTcgQEAKIAogCSMgbm93IGFzc2lnbiB0YWdzIHRvIGFsbCB0aGUgZGFuZ2xpbmcgY29tbWl0cyB3ZSBjcmVhdGVkIGFib3ZlCiAJdGFnPSQoIiRQRVJMX1BBVEgiIC1lICJwcmludCBcImJsYVwiIHggMzAiKSAmJgotCXNlZCAtZSAicy9eOlwoLlwrXCkgXCguXCtcKSQvXDIgcmVmc1wvdGFnc1wvJHRhZy1cMS8iIDxtYXJrcyA+PnBhY2tlZC1yZWZzCisJc2VkIC1lICJzfF46XChbXiBdKlwpIFwoLipcKSR8XDIgcmVmcy90YWdzLyR0YWctXDF8IiA8bWFya3MgPj5wYWNrZWQtcmVmcwogCSkKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBFWFBFTlNJVkUgJ2Nsb25lIHRoZSA1MCwwMDAgdGFnIHJlcG8gdG8gY2hlY2sgT1MgY29tbWFuZCBsaW5lIG92ZXJmbG93JyAnCiAJZ2l0IGNsb25lICRIVFRQRF9VUkwvc21hcnQvcmVwby5naXQgdG9vLW1hbnktcmVmcyAyPmVyciAmJgotCXRlc3RfbGluZV9jb3VudCA9IDAgZXJyCisJdGVzdF9saW5lX2NvdW50ID0gMCBlcnIgJiYKKwkoCisJCWNkIHRvby1tYW55LXJlZnMgJiYKKwkJdGVzdCAkKGdpdCBmb3ItZWFjaC1yZWYgcmVmcy90YWdzIHwgd2MgLWwpID0gNTAwMDAKKwkpCiAnCiAKIHN0b3BfaHR0cGQKZGlmZiAtLWdpdCBhL3QvdDU1NjAtaHR0cC1iYWNrZW5kLW5vc2VydmVyLnNoIGIvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKaW5kZXggZWY5OGQ5NS4uOWJlOWFlMyAxMDA3NTUKLS0tIGEvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKKysrIGIvdC90NTU2MC1odHRwLWJhY2tlbmQtbm9zZXJ2ZXIuc2gKQEAgLTUsNyArNSw3IEBACiAKIEhUVFBEX0RPQ1VNRU5UX1JPT1RfUEFUSD0iJFRSQVNIX0RJUkVDVE9SWSIKIAotdGVzdF9oYXZlX3ByZXJlcSBNSU5HVyAmJiBleHBvcnQgR1JFUF9PUFRJT05TPS1VCit0ZXN0X2hhdmVfcHJlcmVxIEdSRVBfU1RSSVBTX0NSICYmIGV4cG9ydCBHUkVQX09QVElPTlM9LVUKIAogcnVuX2JhY2tlbmQoKSB7CiAJZWNobyAiJDIiIHwKZGlmZiAtLWdpdCBhL3QvdDU2MDEtY2xvbmUuc2ggYi90L3Q1NjAxLWNsb25lLnNoCmluZGV4IDY3ODY5YjQuLjA2MjkxNDkgMTAwNzU1Ci0tLSBhL3QvdDU2MDEtY2xvbmUuc2gKKysrIGIvdC90NTYwMS1jbG9uZS5zaApAQCAtMjgwLDQgKzI4MCw5IEBACiAJdGVzdF9jbXAgZmV0Y2guZXhwZWN0ZWQgZmV0Y2guYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgTk9UX01JTkdXLE5PVF9DWUdXSU4gJ2Nsb25lIGxvY2FsIHBhdGggZm9vOmJhcicgJworCWNwIC1SIHNyYyAiZm9vOmJhciIgJiYKKwlnaXQgY2xvbmUgIi4vZm9vOmJhciIgZm9vYmFyCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NTcwMi1jbG9uZS1vcHRpb25zLnNoIGIvdC90NTcwMi1jbG9uZS1vcHRpb25zLnNoCmluZGV4IDAyY2IwMjQuLjg1Y2FkZmEgMTAwNzU1Ci0tLSBhL3QvdDU3MDItY2xvbmUtb3B0aW9ucy5zaAorKysgYi90L3Q1NzAyLWNsb25lLW9wdGlvbnMuc2gKQEAgLTIyLDcgKzIyLDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZGlyZWN0ZWQgY2xvbmUnICcKIAogCWdpdCBjbG9uZSAiZmlsZTovLyQocHdkKS9wYXJlbnQiIGNsb25lLXJlZGlyZWN0ZWQgPm91dCAyPmVyciAmJgotCXRlc3QgISAtcyBlcnIKKwl0ZXN0X211c3RfYmVfZW1wdHkgZXJyCiAKICcKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3JlZGlyZWN0ZWQgY2xvbmUgLXYnICcKZGlmZiAtLWdpdCBhL3QvdDU3MTAtaW5mby1hbHRlcm5hdGUuc2ggYi90L3Q1NzEwLWluZm8tYWx0ZXJuYXRlLnNoCmluZGV4IDg5NTZjMjEuLjVhNmU0OWQgMTAwNzU1Ci0tLSBhL3QvdDU3MTAtaW5mby1hbHRlcm5hdGUuc2gKKysrIGIvdC90NTcxMC1pbmZvLWFsdGVybmF0ZS5zaApAQCAtNTgsNyArNTgsMTMgQEAKIGdpdCBjbG9uZSAtbCAtcyBEIEUgJiYKIGdpdCBjbG9uZSAtbCAtcyBFIEYgJiYKIGdpdCBjbG9uZSAtbCAtcyBGIEcgJiYKLXRlc3RfbXVzdF9mYWlsIGdpdCBjbG9uZSAtLWJhcmUgLWwgLXMgRyBIJworZ2l0IGNsb25lIC0tYmFyZSAtbCAtcyBHIEgnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2ludmFsaWRpdHkgb2YgZGVlcGVzdCByZXBvc2l0b3J5JyBcCisnY2QgSCAmJiB7CisJdGVzdF92YWxpZF9yZXBvCisJdGVzdCAkPyAtbmUgMAorfScKIAogY2QgIiRiYXNlX2RpciIKIApkaWZmIC0tZ2l0IGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaCBiL3QvdDU4MDEtcmVtb3RlLWhlbHBlcnMuc2gKaW5kZXggNjkyMTJjZC4uOGM0YzUzOSAxMDA3NTUKLS0tIGEvdC90NTgwMS1yZW1vdGUtaGVscGVycy5zaAorKysgYi90L3Q1ODAxLXJlbW90ZS1oZWxwZXJzLnNoCkBAIC04LDExICs4LDYgQEAKIC4gLi90ZXN0LWxpYi5zaAogLiAiJFRFU1RfRElSRUNUT1JZIi9saWItZ3BnLnNoCiAKLWlmICEgdHlwZSAiJHtCQVNILWJhc2h9IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLQlza2lwX2FsbD0nc2tpcHBpbmcgcmVtb3RlLXRlc3RnaXQgdGVzdHMsIGJhc2ggbm90IGF2YWlsYWJsZScKLQl0ZXN0X2RvbmUKLWZpCi0KIGNvbXBhcmVfcmVmcygpIHsKIAlnaXQgLS1naXQtZGlyPSIkMS8uZ2l0IiByZXYtcGFyc2UgLS12ZXJpZnkgJDIgPmV4cGVjdCAmJgogCWdpdCAtLWdpdC1kaXI9IiQzLy5naXQiIHJldi1wYXJzZSAtLXZlcmlmeSAkNCA+YWN0dWFsICYmCkBAIC0xMDEsMzkgKzk2LDI4IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25pbmcgd2l0aG91dCByZWZzcGVjJyAnCiAJR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9IiIgXAotCWdpdCBjbG9uZSAidGVzdGdpdDo6JHtQV0R9L3NlcnZlciIgbG9jYWwyICYmCisJZ2l0IGNsb25lICJ0ZXN0Z2l0Ojoke1BXRH0vc2VydmVyIiBsb2NhbDIgMj5lcnJvciAmJgorCWdyZXAgIlRoaXMgcmVtb3RlIGhlbHBlciBzaG91bGQgaW1wbGVtZW50IHJlZnNwZWMgY2FwYWJpbGl0eSIgZXJyb3IgJiYKIAljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyB3aXRob3V0IHJlZnNwZWNzJyAnCiAJKGNkIGxvY2FsMiAmJgogCWdpdCByZXNldCAtLWhhcmQgJiYKLQlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVsbCkgJiYKKwlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVsbCAyPi4uL2Vycm9yKSAmJgorCWdyZXAgIlRoaXMgcmVtb3RlIGhlbHBlciBzaG91bGQgaW1wbGVtZW50IHJlZnNwZWMgY2FwYWJpbGl0eSIgZXJyb3IgJiYKIAljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKICcKIAotdGVzdF9leHBlY3RfZmFpbHVyZSAncHVzaGluZyB3aXRob3V0IHJlZnNwZWNzJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoaW5nIHdpdGhvdXQgcmVmc3BlY3MnICcKIAl0ZXN0X3doZW5fZmluaXNoZWQgIihjZCBsb2NhbDIgJiYgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4pIiAmJgogCShjZCBsb2NhbDIgJiYKIAllY2hvIGNvbnRlbnQgPj5maWxlICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSB0ZW4gJiYKLQlHSVRfUkVNT1RFX1RFU1RHSVRfUkVGU1BFQz0iIiBnaXQgcHVzaCkgJiYKLQljb21wYXJlX3JlZnMgbG9jYWwyIEhFQUQgc2VydmVyIEhFQUQKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAncHVsbGluZyB3aXRoIHN0cmFpZ2h0IHJlZnNwZWMnICcKLQkoY2QgbG9jYWwyICYmCi0JR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9Iio6KiIgZ2l0IHB1bGwpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsMiBIRUFEIHNlcnZlciBIRUFECi0nCi0KLXRlc3RfZXhwZWN0X2ZhaWx1cmUgJ3B1c2hpbmcgd2l0aCBzdHJhaWdodCByZWZzcGVjJyAnCi0JdGVzdF93aGVuX2ZpbmlzaGVkICIoY2QgbG9jYWwyICYmIGdpdCByZXNldCAtLWhhcmQgb3JpZ2luKSIgJiYKLQkoY2QgbG9jYWwyICYmCi0JZWNobyBjb250ZW50ID4+ZmlsZSAmJgotCWdpdCBjb21taXQgLWEgLW0gZWxldmVuICYmCi0JR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9Iio6KiIgZ2l0IHB1c2gpICYmCi0JY29tcGFyZV9yZWZzIGxvY2FsMiBIRUFEIHNlcnZlciBIRUFECisJR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUM9IiIgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX1JFRlNQRUMgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgcHVzaCAyPi4uL2Vycm9yKSAmJgorCWdyZXAgInJlbW90ZS1oZWxwZXIgZG9lc24udCBzdXBwb3J0IHB1c2g7IHJlZnNwZWMgbmVlZGVkIiBlcnJvcgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdWxsaW5nIHdpdGhvdXQgbWFya3MnICcKQEAgLTE4Niw0ICsxNzAsNjIgQEAKIAljb21wYXJlX3JlZnMgbG9jYWwgc2lnbmVkLXRhZy0yIHNlcnZlciBzaWduZWQtdGFnLTIKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAncHVzaCB1cGRhdGUgcmVmcycgJworCShjZCBsb2NhbCAmJgorCWdpdCBjaGVja291dCAtYiB1cGRhdGUgbWFzdGVyICYmCisJZWNobyB1cGRhdGUgPj5maWxlICYmCisJZ2l0IGNvbW1pdCAtYSAtbSB1cGRhdGUgJiYKKwlnaXQgcHVzaCBvcmlnaW4gdXBkYXRlICYmCisJZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSByZW1vdGVzL29yaWdpbi91cGRhdGUgPmV4cGVjdCAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwdXNoIHVwZGF0ZSByZWZzIGZhaWx1cmUnICcKKwkoY2QgbG9jYWwgJiYKKwlnaXQgY2hlY2tvdXQgdXBkYXRlICYmCisJZWNobyAidXBkYXRlIGZhaWwiID4+ZmlsZSAmJgorCWdpdCBjb21taXQgLWEgLW0gInVwZGF0ZSBmYWlsIiAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5leHBlY3QgJiYKKwlHSVRfUkVNT1RFX1RFU1RHSVRfUFVTSF9FUlJPUj0ibm9uLWZhc3QgZm9yd2FyZCIgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX1BVU0hfRVJST1IgJiYKKwl0ZXN0X2V4cGVjdF9jb2RlIDEgZ2l0IHB1c2ggb3JpZ2luIHVwZGF0ZSAmJgorCWdpdCByZXYtcGFyc2UgLS12ZXJpZnkgdGVzdGdpdC9vcmlnaW4vaGVhZHMvdXBkYXRlID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgZmFpbHVyZSBjaGVja3MgZm9yIGZldGNoaW5nJyAnCisJKEdJVF9SRU1PVEVfVEVTVEdJVF9GQUlMVVJFPTEgJiYKKwlleHBvcnQgR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkUgJiYKKwljZCBsb2NhbCAmJgorCXRlc3RfbXVzdF9mYWlsIGdpdCBmZXRjaCAyPiBlcnJvciAmJgorCWNhdCBlcnJvciAmJgorCWdyZXAgLXEgIkVycm9yIHdoaWxlIHJ1bm5pbmcgZmFzdC1pbXBvcnQiIGVycm9yCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9wZXIgZmFpbHVyZSBjaGVja3MgZm9yIHB1c2hpbmcnICcKKwkoR0lUX1JFTU9URV9URVNUR0lUX0ZBSUxVUkU9MSAmJgorCWV4cG9ydCBHSVRfUkVNT1RFX1RFU1RHSVRfRkFJTFVSRSAmJgorCWNkIGxvY2FsICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHB1c2ggLS1hbGwKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3B1c2ggbWVzc2FnZXMnICcKKwkoY2QgbG9jYWwgJiYKKwlnaXQgY2hlY2tvdXQgLWIgbmV3X2JyYW5jaCBtYXN0ZXIgJiYKKwllY2hvIG5ldyA+PmZpbGUgJiYKKwlnaXQgY29tbWl0IC1hIC1tIG5ldyAmJgorCWdpdCBwdXNoIG9yaWdpbiBuZXdfYnJhbmNoICYmCisJZ2l0IGZldGNoIG9yaWdpbiAmJgorCWVjaG8gbmV3ID4+ZmlsZSAmJgorCWdpdCBjb21taXQgLWEgLW0gbmV3ICYmCisJZ2l0IHB1c2ggb3JpZ2luIG5ld19icmFuY2ggMj4gbXNnICYmCisJISBncmVwICJcW25ldyBicmFuY2hcXSIgbXNnCisJKQorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDU4MDItY29ubmVjdC1oZWxwZXIuc2ggYi90L3Q1ODAyLWNvbm5lY3QtaGVscGVyLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg3OGZhZjIKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q1ODAyLWNvbm5lY3QtaGVscGVyLnNoCkBAIC0wLDAgKzEsNzIgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdleHQ6OmNtZCByZW1vdGUgImNvbm5lY3QiIGhlbHBlcicKKy4gLi90ZXN0LWxpYi5zaAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gaW5pdGlhbCAmJgorCXRlc3RfdGljayAmJgorCWdpdCBjb21taXQgLS1hbGxvdy1lbXB0eSAtbSBzZWNvbmQgJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gdGhpcmQgJiYKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgdGFnIC1hIC1tICJ0aXAgdGhyZWUiIHRocmVlICYmCisKKwl0ZXN0X3RpY2sgJiYKKwlnaXQgY29tbWl0IC0tYWxsb3ctZW1wdHkgLW0gZm91cnRoCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgY2xvbmUgJworCWNtZD0kKGVjaG8gImVjaG8gPiYyIGV4dDo6c2ggaW52b2tlZCAmJiAlUyAuLiIgfCBzZWQgLWUgInMvIC8lIC9nIikgJiYKKwlnaXQgY2xvbmUgImV4dDo6c2ggLWMgJVMlIC4iIGRzdCAmJgorCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+ZXhwZWN0ICYmCisJKAorCQljZCBkc3QgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCAiZXh0OjpzaCAtYyAkY21kIiAmJgorCQlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8KKwkpID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSBmb2xsb3dpbmcgdGFnJyAnCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tIGZpZnRoICYmCisJdGVzdF90aWNrICYmCisJZ2l0IHRhZyAtYSAtbSAidGlwIGZpdmUiIGZpdmUgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGJhY2tmaWxsZWQgdGFnJyAnCisJdGVzdF90aWNrICYmCisJZ2l0IGNvbW1pdCAtLWFsbG93LWVtcHR5IC1tIHNpeHRoICYmCisJdGVzdF90aWNrICYmCisJZ2l0IHRhZyAtYSAtbSAidGlwIHR3byIgdHdvIHRocmVlXjEgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGJhY2tmaWxsZWQgdGFnIHdpdGhvdXQgcHJpbWFyeSB0cmFuc2ZlcicgJworCXRlc3RfdGljayAmJgorCWdpdCB0YWcgLWEgLW0gInRpcCBvbmUgIiBvbmUgdHdvXjEgJiYKKwlnaXQgZm9yLWVhY2gtcmVmIHJlZnMvaGVhZHMvIHJlZnMvdGFncy8gPmV4cGVjdCAmJgorCSgKKwkJY2QgZHN0ICYmCisJCWdpdCBwdWxsICYmCisJCWdpdCBmb3ItZWFjaC1yZWYgcmVmcy9oZWFkcy8gcmVmcy90YWdzLyA+Li4vYWN0dWFsCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q2MDAyLXJldi1saXN0LWJpc2VjdC5zaCBiL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCmluZGV4IGZiMDc1MzYuLjQzYWQ3NzIgMTAwNzU1Ci0tLSBhL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCisrKyBiL3QvdDYwMDItcmV2LWxpc3QtYmlzZWN0LnNoCkBAIC0zOSwyNSArMzksMjUgQEAKIGRhdGUgPnBhdGgwCiBnaXQgdXBkYXRlLWluZGV4IC0tYWRkIHBhdGgwCiBzYXZlX3RhZyB0cmVlIGdpdCB3cml0ZS10cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMSIgc2F2ZV90YWcgbDAgdW5pcXVlX2NvbW1pdCBsMCB0cmVlIC1wIHJvb3QKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAyIiBzYXZlX3RhZyBsMSB1bmlxdWVfY29tbWl0IGwxIHRyZWUgLXAgbDAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA0IiBzYXZlX3RhZyBhMCB1bmlxdWVfY29tbWl0IGEwIHRyZWUgLXAgbDIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA1IiBzYXZlX3RhZyBhMSB1bmlxdWVfY29tbWl0IGExIHRyZWUgLXAgYTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA3IiBzYXZlX3RhZyBjMSB1bmlxdWVfY29tbWl0IGMxIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA4IiBzYXZlX3RhZyBiMiB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBjMiB1bmlxdWVfY29tbWl0IGMyIHRyZWUgLXAgYzEgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBjMyB1bmlxdWVfY29tbWl0IGMzIHRyZWUgLXAgYzIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBhMyB1bmlxdWVfY29tbWl0IGEzIHRyZWUgLXAgYTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE0IiBzYXZlX3RhZyBiNCB1bmlxdWVfY29tbWl0IGI0IHRyZWUgLXAgYjMgLXAgYTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE2IiBzYXZlX3RhZyBsMyB1bmlxdWVfY29tbWl0IGwzIHRyZWUgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE3IiBzYXZlX3RhZyBsNCB1bmlxdWVfY29tbWl0IGw0IHRyZWUgLXAgbDMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDEiIHNhdmVfdGFnIGwwIHVuaXF1ZV9jb21taXQgbDAgdHJlZSAtcCByb290Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDIiIHNhdmVfdGFnIGwxIHVuaXF1ZV9jb21taXQgbDEgdHJlZSAtcCBsMAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNCIgc2F2ZV90YWcgYTAgdW5pcXVlX2NvbW1pdCBhMCB0cmVlIC1wIGwyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDUiIHNhdmVfdGFnIGExIHVuaXF1ZV9jb21taXQgYTEgdHJlZSAtcCBhMAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNyIgc2F2ZV90YWcgYzEgdW5pcXVlX2NvbW1pdCBjMSB0cmVlIC1wIGIxCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDgiIHNhdmVfdGFnIGIyIHVuaXF1ZV9jb21taXQgYjIgdHJlZSAtcCBiMQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjIKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMCIgc2F2ZV90YWcgYzIgdW5pcXVlX2NvbW1pdCBjMiB0cmVlIC1wIGMxIC1wIGIyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTEiIHNhdmVfdGFnIGMzIHVuaXF1ZV9jb21taXQgYzMgdHJlZSAtcCBjMgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMyIgc2F2ZV90YWcgYTMgdW5pcXVlX2NvbW1pdCBhMyB0cmVlIC1wIGEyCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTQiIHNhdmVfdGFnIGI0IHVuaXF1ZV9jb21taXQgYjQgdHJlZSAtcCBiMyAtcCBhMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxNiIgc2F2ZV90YWcgbDMgdW5pcXVlX2NvbW1pdCBsMyB0cmVlIC1wIGE0Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTciIHNhdmVfdGFnIGw0IHVuaXF1ZV9jb21taXQgbDQgdHJlZSAtcCBsMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKIGdpdCB1cGRhdGUtcmVmIEhFQUQgJCh0YWcgbDUpCiAKIApAQCAtOTAsMjkgKzkwLDI5IEBACiAjICAgICBGCiAKIAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgRiB1bmlxdWVfY29tbWl0IEYgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDEiIHNhdmVfdGFnIGU4IHVuaXF1ZV9jb21taXQgZTggdHJlZSAtcCBGCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMiIgc2F2ZV90YWcgZTcgdW5pcXVlX2NvbW1pdCBlNyB0cmVlIC1wIGU4Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMyIgc2F2ZV90YWcgZTYgdW5pcXVlX2NvbW1pdCBlNiB0cmVlIC1wIGU3Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNCIgc2F2ZV90YWcgZTUgdW5pcXVlX2NvbW1pdCBlNSB0cmVlIC1wIGU2Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNSIgc2F2ZV90YWcgZjQgdW5pcXVlX2NvbW1pdCBmNCB0cmVlIC1wIEYKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBmMyB1bmlxdWVfY29tbWl0IGYzIHRyZWUgLXAgZjQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA3IiBzYXZlX3RhZyBmMiB1bmlxdWVfY29tbWl0IGYyIHRyZWUgLXAgZjMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA4IiBzYXZlX3RhZyBmMSB1bmlxdWVfY29tbWl0IGYxIHRyZWUgLXAgZjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBlNCB1bmlxdWVfY29tbWl0IGU0IHRyZWUgLXAgZTUKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBlMyB1bmlxdWVfY29tbWl0IGUzIHRyZWUgLXAgZTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBlMiB1bmlxdWVfY29tbWl0IGUyIHRyZWUgLXAgZTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBlMSB1bmlxdWVfY29tbWl0IGUxIHRyZWUgLXAgZTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBFIHVuaXF1ZV9jb21taXQgRSB0cmVlIC1wIGUxIC1wIGYxCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgRiB1bmlxdWVfY29tbWl0IEYgdHJlZQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyBlOCB1bmlxdWVfY29tbWl0IGU4IHRyZWUgLXAgRgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAyIiBzYXZlX3RhZyBlNyB1bmlxdWVfY29tbWl0IGU3IHRyZWUgLXAgZTgKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMyIgc2F2ZV90YWcgZTYgdW5pcXVlX2NvbW1pdCBlNiB0cmVlIC1wIGU3Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDQiIHNhdmVfdGFnIGU1IHVuaXF1ZV9jb21taXQgZTUgdHJlZSAtcCBlNgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA1IiBzYXZlX3RhZyBmNCB1bmlxdWVfY29tbWl0IGY0IHRyZWUgLXAgRgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA2IiBzYXZlX3RhZyBmMyB1bmlxdWVfY29tbWl0IGYzIHRyZWUgLXAgZjQKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNyIgc2F2ZV90YWcgZjIgdW5pcXVlX2NvbW1pdCBmMiB0cmVlIC1wIGYzCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDgiIHNhdmVfdGFnIGYxIHVuaXF1ZV9jb21taXQgZjEgdHJlZSAtcCBmMgorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA5IiBzYXZlX3RhZyBlNCB1bmlxdWVfY29tbWl0IGU0IHRyZWUgLXAgZTUKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMCIgc2F2ZV90YWcgZTMgdW5pcXVlX2NvbW1pdCBlMyB0cmVlIC1wIGU0Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MTEiIHNhdmVfdGFnIGUyIHVuaXF1ZV9jb21taXQgZTIgdHJlZSAtcCBlMworb25fY29tbWl0dGVyX2RhdGUgIjAwOjEyIiBzYXZlX3RhZyBlMSB1bmlxdWVfY29tbWl0IGUxIHRyZWUgLXAgZTIKK29uX2NvbW1pdHRlcl9kYXRlICIwMDoxMyIgc2F2ZV90YWcgRSB1bmlxdWVfY29tbWl0IEUgdHJlZSAtcCBlMSAtcCBmMQogCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyBVIHVuaXF1ZV9jb21taXQgVSB0cmVlCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMSIgc2F2ZV90YWcgdTAgdW5pcXVlX2NvbW1pdCB1MCB0cmVlIC1wIFUKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAxIiBzYXZlX3RhZyB1MSB1bmlxdWVfY29tbWl0IHUxIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAyIiBzYXZlX3RhZyB1MiB1bmlxdWVfY29tbWl0IHUyIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjAzIiBzYXZlX3RhZyB1MyB1bmlxdWVfY29tbWl0IHUzIHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA0IiBzYXZlX3RhZyB1NCB1bmlxdWVfY29tbWl0IHU0IHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA1IiBzYXZlX3RhZyB1NSB1bmlxdWVfY29tbWl0IHU1IHRyZWUgLXAgdTAKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA2IiBzYXZlX3RhZyBWIHVuaXF1ZV9jb21taXQgViB0cmVlIC1wIHUxIC1wIHUyIC1wIHUzIC1wIHU0IC1wIHU1Citvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgVSB1bmlxdWVfY29tbWl0IFUgdHJlZQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyB1MCB1bmlxdWVfY29tbWl0IHUwIHRyZWUgLXAgVQorb25fY29tbWl0dGVyX2RhdGUgIjAwOjAxIiBzYXZlX3RhZyB1MSB1bmlxdWVfY29tbWl0IHUxIHRyZWUgLXAgdTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowMiIgc2F2ZV90YWcgdTIgdW5pcXVlX2NvbW1pdCB1MiB0cmVlIC1wIHUwCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDMiIHNhdmVfdGFnIHUzIHVuaXF1ZV9jb21taXQgdTMgdHJlZSAtcCB1MAorb25fY29tbWl0dGVyX2RhdGUgIjAwOjA0IiBzYXZlX3RhZyB1NCB1bmlxdWVfY29tbWl0IHU0IHRyZWUgLXAgdTAKK29uX2NvbW1pdHRlcl9kYXRlICIwMDowNSIgc2F2ZV90YWcgdTUgdW5pcXVlX2NvbW1pdCB1NSB0cmVlIC1wIHUwCitvbl9jb21taXR0ZXJfZGF0ZSAiMDA6MDYiIHNhdmVfdGFnIFYgdW5pcXVlX2NvbW1pdCBWIHRyZWUgLXAgdTEgLXAgdTIgLXAgdTMgLXAgdTQgLXAgdTUKIAogdGVzdF9zZXF1ZW5jZSgpCiB7CmRpZmYgLS1naXQgYS90L3Q2MDAzLXJldi1saXN0LXRvcG8tb3JkZXIuc2ggYi90L3Q2MDAzLXJldi1saXN0LXRvcG8tb3JkZXIuc2gKaW5kZXggZTRjNTJiMC4uMjRkMTgzNiAxMDA3NTUKLS0tIGEvdC90NjAwMy1yZXYtbGlzdC10b3BvLW9yZGVyLnNoCisrKyBiL3QvdDYwMDMtcmV2LWxpc3QtdG9wby1vcmRlci5zaApAQCAtMTYsMzkgKzE2LDM0IEBACiBkYXRlID5wYXRoMAogZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCBwYXRoMAogc2F2ZV90YWcgdHJlZSBnaXQgd3JpdGUtdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDAiIGhpZGVfZXJyb3Igc2F2ZV90YWcgcm9vdCB1bmlxdWVfY29tbWl0IHJvb3QgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MDEiIHNhdmVfdGFnIGwwIHVuaXF1ZV9jb21taXQgbDAgdHJlZSAtcCByb290Ci1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMiIgc2F2ZV90YWcgbDEgdW5pcXVlX2NvbW1pdCBsMSB0cmVlIC1wIGwwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowMyIgc2F2ZV90YWcgbDIgdW5pcXVlX2NvbW1pdCBsMiB0cmVlIC1wIGwxCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNCIgc2F2ZV90YWcgYTAgdW5pcXVlX2NvbW1pdCBhMCB0cmVlIC1wIGwyCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNSIgc2F2ZV90YWcgYTEgdW5pcXVlX2NvbW1pdCBhMSB0cmVlIC1wIGEwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNiIgc2F2ZV90YWcgYjEgdW5pcXVlX2NvbW1pdCBiMSB0cmVlIC1wIGEwCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowNyIgc2F2ZV90YWcgYzEgdW5pcXVlX2NvbW1pdCBjMSB0cmVlIC1wIGIxCi1vbl9jb21taXR0ZXJfZGF0ZSAiMTk3MS0wOC0xNiAwMDowMDowOCIgYXNfYXV0aG9yIGZvb2JhckBleGFtcGxlLmNvbSBzYXZlX3RhZyBiMiB1bmlxdWVfY29tbWl0IGIyIHRyZWUgLXAgYjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjA5IiBzYXZlX3RhZyBiMyB1bmlxdWVfY29tbWl0IGIzIHRyZWUgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEwIiBzYXZlX3RhZyBjMiB1bmlxdWVfY29tbWl0IGMyIHRyZWUgLXAgYzEgLXAgYjIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjExIiBzYXZlX3RhZyBjMyB1bmlxdWVfY29tbWl0IGMzIHRyZWUgLXAgYzIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEyIiBzYXZlX3RhZyBhMiB1bmlxdWVfY29tbWl0IGEyIHRyZWUgLXAgYTEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjEzIiBzYXZlX3RhZyBhMyB1bmlxdWVfY29tbWl0IGEzIHRyZWUgLXAgYTIKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE0IiBzYXZlX3RhZyBiNCB1bmlxdWVfY29tbWl0IGI0IHRyZWUgLXAgYjMgLXAgYTMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE1IiBzYXZlX3RhZyBhNCB1bmlxdWVfY29tbWl0IGE0IHRyZWUgLXAgYTMgLXAgYjQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE2IiBzYXZlX3RhZyBsMyB1bmlxdWVfY29tbWl0IGwzIHRyZWUgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE3IiBzYXZlX3RhZyBsNCB1bmlxdWVfY29tbWl0IGw0IHRyZWUgLXAgbDMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE4IiBzYXZlX3RhZyBsNSB1bmlxdWVfY29tbWl0IGw1IHRyZWUgLXAgbDQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjE5IiBzYXZlX3RhZyBtMSB1bmlxdWVfY29tbWl0IG0xIHRyZWUgLXAgYTQgLXAgYzMKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjIwIiBzYXZlX3RhZyBtMiB1bmlxdWVfY29tbWl0IG0yIHRyZWUgLXAgYzMgLXAgYTQKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjIxIiBoaWRlX2Vycm9yIHNhdmVfdGFnIGFsdF9yb290IHVuaXF1ZV9jb21taXQgYWx0X3Jvb3QgdHJlZQotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjIiIHNhdmVfdGFnIHIwIHVuaXF1ZV9jb21taXQgcjAgdHJlZSAtcCBhbHRfcm9vdAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjMiIHNhdmVfdGFnIHIxIHVuaXF1ZV9jb21taXQgcjEgdHJlZSAtcCByMAotb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjQiIHNhdmVfdGFnIGw1cjEgdW5pcXVlX2NvbW1pdCBsNXIxIHRyZWUgLXAgbDUgLXAgcjEKLW9uX2NvbW1pdHRlcl9kYXRlICIxOTcxLTA4LTE2IDAwOjAwOjI1IiBzYXZlX3RhZyByMWw1IHVuaXF1ZV9jb21taXQgcjFsNSB0cmVlIC1wIHIxIC1wIGw1Citvbl9kYXRlcyAiMDA6MDAiICIwMDowMCIgaGlkZV9lcnJvciBzYXZlX3RhZyByb290IHVuaXF1ZV9jb21taXQgcm9vdCB0cmVlCitvbl9kYXRlcyAiMDA6MDEiICIwMDowMSIgc2F2ZV90YWcgbDAgdW5pcXVlX2NvbW1pdCBsMCB0cmVlIC1wIHJvb3QKK29uX2RhdGVzICIwMDowMiIgIjAwOjAyIiBzYXZlX3RhZyBsMSB1bmlxdWVfY29tbWl0IGwxIHRyZWUgLXAgbDAKK29uX2RhdGVzICIwMDowMyIgIjAwOjAzIiBzYXZlX3RhZyBsMiB1bmlxdWVfY29tbWl0IGwyIHRyZWUgLXAgbDEKK29uX2RhdGVzICIwMDowNCIgIjAwOjA0IiBzYXZlX3RhZyBhMCB1bmlxdWVfY29tbWl0IGEwIHRyZWUgLXAgbDIKK29uX2RhdGVzICIwMDowNSIgIjAwOjA1IiBzYXZlX3RhZyBhMSB1bmlxdWVfY29tbWl0IGExIHRyZWUgLXAgYTAKK29uX2RhdGVzICIwMDowNiIgIjAwOjA2IiBzYXZlX3RhZyBiMSB1bmlxdWVfY29tbWl0IGIxIHRyZWUgLXAgYTAKK29uX2RhdGVzICIwMDowNyIgIjAwOjA3IiBzYXZlX3RhZyBjMSB1bmlxdWVfY29tbWl0IGMxIHRyZWUgLXAgYjEKK29uX2RhdGVzICIwMDowOCIgIjAwOjA4IiBhc19hdXRob3IgZm9vYmFyQGV4YW1wbGUuY29tIHNhdmVfdGFnIGIyIHVuaXF1ZV9jb21taXQgYjIgdHJlZSAtcCBiMQorb25fZGF0ZXMgIjAwOjA5IiAiMDA6MDkiIHNhdmVfdGFnIGIzIHVuaXF1ZV9jb21taXQgYjMgdHJlZSAtcCBiMgorb25fZGF0ZXMgIjAwOjEwIiAiMDA6MTAiIHNhdmVfdGFnIGMyIHVuaXF1ZV9jb21taXQgYzIgdHJlZSAtcCBjMSAtcCBiMgorb25fZGF0ZXMgIjAwOjExIiAiMDA6MTEiIHNhdmVfdGFnIGMzIHVuaXF1ZV9jb21taXQgYzMgdHJlZSAtcCBjMgorb25fZGF0ZXMgIjAwOjEyIiAiMDA6MDAiIHNhdmVfdGFnIGEyIHVuaXF1ZV9jb21taXQgYTIgdHJlZSAtcCBhMQorb25fZGF0ZXMgIjAwOjEzIiAiMDA6MDEiIHNhdmVfdGFnIGEzIHVuaXF1ZV9jb21taXQgYTMgdHJlZSAtcCBhMgorb25fZGF0ZXMgIjAwOjE0IiAiMDA6MTQiIHNhdmVfdGFnIGI0IHVuaXF1ZV9jb21taXQgYjQgdHJlZSAtcCBiMyAtcCBhMworb25fZGF0ZXMgIjAwOjE1IiAiMDA6MTUiIHNhdmVfdGFnIGE0IHVuaXF1ZV9jb21taXQgYTQgdHJlZSAtcCBhMyAtcCBiNCAtcCBjMworb25fZGF0ZXMgIjAwOjE2IiAiMDA6MTYiIHNhdmVfdGFnIGwzIHVuaXF1ZV9jb21taXQgbDMgdHJlZSAtcCBhNAorb25fZGF0ZXMgIjAwOjE3IiAiMDA6MTciIHNhdmVfdGFnIGw0IHVuaXF1ZV9jb21taXQgbDQgdHJlZSAtcCBsMworb25fZGF0ZXMgIjAwOjE4IiAiMDA6MTgiIHNhdmVfdGFnIGw1IHVuaXF1ZV9jb21taXQgbDUgdHJlZSAtcCBsNAorb25fZGF0ZXMgIjAwOjE5IiAiMDA6MTkiIHNhdmVfdGFnIG0xIHVuaXF1ZV9jb21taXQgbTEgdHJlZSAtcCBhNCAtcCBjMworb25fZGF0ZXMgIjAwOjIwIiAiMDA6MjAiIHNhdmVfdGFnIG0yIHVuaXF1ZV9jb21taXQgbTIgdHJlZSAtcCBjMyAtcCBhNAorb25fZGF0ZXMgIjAwOjIxIiAiMDA6MjEiIGhpZGVfZXJyb3Igc2F2ZV90YWcgYWx0X3Jvb3QgdW5pcXVlX2NvbW1pdCBhbHRfcm9vdCB0cmVlCitvbl9kYXRlcyAiMDA6MjIiICIwMDoyMiIgc2F2ZV90YWcgcjAgdW5pcXVlX2NvbW1pdCByMCB0cmVlIC1wIGFsdF9yb290Citvbl9kYXRlcyAiMDA6MjMiICIwMDoyMyIgc2F2ZV90YWcgcjEgdW5pcXVlX2NvbW1pdCByMSB0cmVlIC1wIHIwCitvbl9kYXRlcyAiMDA6MjQiICIwMDoyNCIgc2F2ZV90YWcgbDVyMSB1bmlxdWVfY29tbWl0IGw1cjEgdHJlZSAtcCBsNSAtcCByMQorb25fZGF0ZXMgIjAwOjI1IiAiMDA6MjUiIHNhdmVfdGFnIHIxbDUgdW5pcXVlX2NvbW1pdCByMWw1IHRyZWUgLXAgcjEgLXAgbDUKIAogCi0jCi0jIG5vdGU6IGFzIG9mIDIwLzYsIGl0IGlzbid0IHBvc3NpYmxlIHRvIGNyZWF0ZSBkdXBsaWNhdGUgcGFyZW50cywgc28gdGhpcwotIyBjYW4ndCBiZSB0ZXN0ZWQuCi0jCi0jb25fY29tbWl0dGVyX2RhdGUgIjE5NzEtMDgtMTYgMDA6MDA6MjAiIHNhdmVfdGFnIG0zIHVuaXF1ZV9jb21taXQgbTMgdHJlZSAtcCBjMyAtcCBhNCAtcCBjMwogaGlkZV9lcnJvciBzYXZlX3RhZyBlMSBhc19hdXRob3IgZUBleGFtcGxlLmNvbSB1bmlxdWVfY29tbWl0IGUxIHRyZWUKIHNhdmVfdGFnIGUyIGFzX2F1dGhvciBlQGV4YW1wbGUuY29tIHVuaXF1ZV9jb21taXQgZTIgdHJlZSAtcCBlMQogc2F2ZV90YWcgZjEgYXNfYXV0aG9yIGZAZXhhbXBsZS5jb20gdW5pcXVlX2NvbW1pdCBmMSB0cmVlIC1wIGUxCkBAIC0xMDUsNiArMTAwLDUwIEBACiByb290CiBFT0YKIAordGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgJ3NpbXBsZSBkYXRlIG9yZGVyJyAnZ2l0IHJldi1saXN0IC0tZGF0ZS1vcmRlciAgSEVBRCcgPDxFT0YKK2w1CitsNAorbDMKK2E0CitiNAorYTMKK2EyCitjMworYzIKK2IzCitiMgorYzEKK2IxCithMQorYTAKK2wyCitsMQorbDAKK3Jvb3QKK0VPRgorCit0ZXN0X291dHB1dF9leHBlY3Rfc3VjY2VzcyAnc2ltcGxlIGF1dGhvci1kYXRlIG9yZGVyJyAnZ2l0IHJldi1saXN0IC0tYXV0aG9yLWRhdGUtb3JkZXIgIEhFQUQnIDw8RU9GCitsNQorbDQKK2wzCithNAorYjQKK2MzCitjMgorYjMKK2IyCitjMQorYjEKK2EzCithMgorYTEKK2EwCitsMgorbDEKK2wwCityb290CitFT0YKKwogdGVzdF9vdXRwdXRfZXhwZWN0X3N1Y2Nlc3MgJ3R3byBkaWFtb25kcyB0b3BvIG9yZGVyIChnNiknICdnaXQgcmV2LWxpc3QgLS10b3BvLW9yZGVyICBnNCcgPDxFT0YKIGc0CiBoMgpkaWZmIC0tZ2l0IGEvdC90NjAwNi1yZXYtbGlzdC1mb3JtYXQuc2ggYi90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaAppbmRleCAwMzkzYzlmLi45ODc0NDAzIDEwMDc1NQotLS0gYS90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaAorKysgYi90L3Q2MDA2LXJldi1saXN0LWZvcm1hdC5zaApAQCAtMSwyMCArMSw0NSBAQAogIyEvYmluL3NoCiAKKyMgQ29weXJpZ2h0IChjKSAyMDA5IEplbnMgTGVobWFubgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgQWxleGV5IFNodW1raW4gKCsgbm9uLVVURi04IGNvbW1pdCBlbmNvZGluZyB0ZXN0cykKKwogdGVzdF9kZXNjcmlwdGlvbj0nZ2l0IHJldi1saXN0IC0tcHJldHR5PWZvcm1hdCB0ZXN0JwogCiAuIC4vdGVzdC1saWIuc2gKIC4gIiRURVNUX0RJUkVDVE9SWSIvbGliLXRlcm1pbmFsLnNoCiAKIHRlc3RfdGljaworIyBTdHJpbmcgImFkZGVkIiBpbiBHZXJtYW4KKyMgKHRyYW5zbGF0ZWQgd2l0aCBHb29nbGUgVHJhbnNsYXRlKSwKKyMgZW5jb2RlZCBpbiBVVEYtOCwgdXNlZCBhcyBhIGNvbW1pdCBsb2cgbWVzc2FnZSBiZWxvdy4KK2FkZGVkPSQocHJpbnRmICJhZGRlZCAoaGluenVnZWZcMzAzXDI3NGd0KSBmb28iKQorYWRkZWRfaXNvODg1OTE9JChlY2hvICIkYWRkZWQiIHwgaWNvbnYgLWYgdXRmLTggLXQgaXNvODg1OS0xKQorIyBzYW1lIGJ1dCAiY2hhbmdlZCIKK2NoYW5nZWQ9JChwcmludGYgImNoYW5nZWQgKGdlXDMwM1wyNDRuZGVydCkgZm9vIikKK2NoYW5nZWRfaXNvODg1OTE9JChlY2hvICIkY2hhbmdlZCIgfCBpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEpCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwJyAnCi10b3VjaCBmb28gJiYgZ2l0IGFkZCBmb28gJiYgZ2l0IGNvbW1pdCAtbSAiYWRkZWQgZm9vIiAmJgotICBlY2hvIGNoYW5nZWQgPmZvbyAmJiBnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2VkIGZvbyIKKwk6ID5mb28gJiYKKwlnaXQgYWRkIGZvbyAmJgorCWdpdCBjb25maWcgaTE4bi5jb21taXRFbmNvZGluZyBpc284ODU5LTEgJiYKKwlnaXQgY29tbWl0IC1tICIkYWRkZWRfaXNvODg1OTEiICYmCisJaGVhZDE9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCisJaGVhZDFfc2hvcnQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgJGhlYWQxKSAmJgorCXRyZWUxPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEOikgJiYKKwl0cmVlMV9zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCAkdHJlZTEpICYmCisJZWNobyAiJGNoYW5nZWQiID4gZm9vICYmCisJZ2l0IGNvbW1pdCAtYSAtbSAiJGNoYW5nZWRfaXNvODg1OTEiICYmCisJaGVhZDI9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCisJaGVhZDJfc2hvcnQ9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IC0tc2hvcnQgJGhlYWQyKSAmJgorCXRyZWUyPSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEOikgJiYKKwl0cmVlMl9zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLS1zaG9ydCAkdHJlZTIpCisJZ2l0IGNvbmZpZyAtLXVuc2V0IGkxOG4uY29tbWl0RW5jb2RpbmcKICcKIAotIyB1c2FnZTogdGVzdF9mb3JtYXQgbmFtZSBmb3JtYXRfc3RyaW5nIDxleHBlY3RlZF9vdXRwdXQKKyMgdXNhZ2U6IHRlc3RfZm9ybWF0IG5hbWUgZm9ybWF0X3N0cmluZyBbZmFpbHVyZV0gPGV4cGVjdGVkX291dHB1dAogdGVzdF9mb3JtYXQgKCkgewogCWNhdCA+ZXhwZWN0LiQxCi0JdGVzdF9leHBlY3Rfc3VjY2VzcyAiZm9ybWF0ICQxIiAiCisJdGVzdF9leHBlY3RfJHszOi1zdWNjZXNzfSAiZm9ybWF0ICQxIiAiCiAJCWdpdCByZXYtbGlzdCAtLXByZXR0eT1mb3JtYXQ6JyQyJyBtYXN0ZXIgPm91dHB1dC4kMSAmJgogCQl0ZXN0X2NtcCBleHBlY3QuJDEgb3V0cHV0LiQxCiAJIgpAQCAtMzIsNDkgKzU3LDQ5IEBACiAJdGVzdF9jbXAgZXhwZWN0ICIkMSIKIH0KIAotdGVzdF9mb3JtYXQgcGVyY2VudCAlJWggPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IHBlcmNlbnQgJSVoIDw8RU9GCitjb21taXQgJGhlYWQyCiAlaAotY29tbWl0IDg2Yzc1Y2ZkNzA4YTBlNTg2OGRjODc2ZWQ1YjhiYjY2YzgwYjQ4NzMKK2NvbW1pdCAkaGVhZDEKICVoCiBFT0YKIAotdGVzdF9mb3JtYXQgaGFzaCAlSCVuJWggPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTEzMWEzMTAKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi04NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi04NmM3NWNmCit0ZXN0X2Zvcm1hdCBoYXNoICVIJW4laCA8PEVPRgorY29tbWl0ICRoZWFkMgorJGhlYWQyCiskaGVhZDJfc2hvcnQKK2NvbW1pdCAkaGVhZDEKKyRoZWFkMQorJGhlYWQxX3Nob3J0CiBFT0YKIAotdGVzdF9mb3JtYXQgdHJlZSAlVCVuJXQgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWZlNzIyNjEyZjI2ZGE1MDY0YzMyY2EzODQzYWExNTRiZGIwYjA4YTAKLWZlNzIyNjEKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi00ZDVmY2FkYzI5M2EzNDhlODhmNzc3ZGMwOTIwZjExZTdkNzE0NDFjCi00ZDVmY2FkCit0ZXN0X2Zvcm1hdCB0cmVlICVUJW4ldCA8PEVPRgorY29tbWl0ICRoZWFkMgorJHRyZWUyCiskdHJlZTJfc2hvcnQKK2NvbW1pdCAkaGVhZDEKKyR0cmVlMQorJHRyZWUxX3Nob3J0CiBFT0YKIAotdGVzdF9mb3JtYXQgcGFyZW50cyAlUCVuJXAgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLTg2Yzc1Y2ZkNzA4YTBlNTg2OGRjODc2ZWQ1YjhiYjY2YzgwYjQ4NzMKLTg2Yzc1Y2YKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCit0ZXN0X2Zvcm1hdCBwYXJlbnRzICVQJW4lcCA8PEVPRgorY29tbWl0ICRoZWFkMgorJGhlYWQxCiskaGVhZDFfc2hvcnQKK2NvbW1pdCAkaGVhZDEKIAogCiBFT0YKIAogIyB3ZSBkb24ndCB0ZXN0IHJlbGF0aXZlIGhlcmUKLXRlc3RfZm9ybWF0IGF1dGhvciAlYW4lbiVhZSVuJWFkJW4lYUQlbiVhdCA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAordGVzdF9mb3JtYXQgYXV0aG9yICVhbiVuJWFlJW4lYWQlbiVhRCVuJWF0IDw8RU9GCitjb21taXQgJGhlYWQyCiBBIFUgVGhvcgogYXV0aG9yQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMAogVGh1LCA3IEFwciAyMDA1IDE1OjEzOjEzIC0wNzAwCiAxMTEyOTExOTkzCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MworY29tbWl0ICRoZWFkMQogQSBVIFRob3IKIGF1dGhvckBleGFtcGxlLmNvbQogVGh1IEFwciA3IDE1OjEzOjEzIDIwMDUgLTA3MDAKQEAgLTgyLDE0ICsxMDcsMTQgQEAKIDExMTI5MTE5OTMKIEVPRgogCi10ZXN0X2Zvcm1hdCBjb21taXR0ZXIgJWNuJW4lY2UlbiVjZCVuJWNEJW4lY3QgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IGNvbW1pdHRlciAlY24lbiVjZSVuJWNkJW4lY0QlbiVjdCA8PEVPRgorY29tbWl0ICRoZWFkMgogQyBPIE1pdHRlcgogY29tbWl0dGVyQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMAogVGh1LCA3IEFwciAyMDA1IDE1OjEzOjEzIC0wNzAwCiAxMTEyOTExOTkzCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MworY29tbWl0ICRoZWFkMQogQyBPIE1pdHRlcgogY29tbWl0dGVyQGV4YW1wbGUuY29tCiBUaHUgQXByIDcgMTU6MTM6MTMgMjAwNSAtMDcwMApAQCAtOTcsNDMgKzEyMiw0NSBAQAogMTExMjkxMTk5MwogRU9GCiAKLXRlc3RfZm9ybWF0IGVuY29kaW5nICVlIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MwordGVzdF9mb3JtYXQgZW5jb2RpbmcgJWUgPDxFT0YKK2NvbW1pdCAkaGVhZDIKK2lzbzg4NTktMQorY29tbWl0ICRoZWFkMQoraXNvODg1OS0xCiBFT0YKIAotdGVzdF9mb3JtYXQgc3ViamVjdCAlcyA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAotY2hhbmdlZCBmb28KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK3Rlc3RfZm9ybWF0IHN1YmplY3QgJXMgPDxFT0YKK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkCitjb21taXQgJGhlYWQxCiskYWRkZWQKIEVPRgogCi10ZXN0X2Zvcm1hdCBib2R5ICViIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jb21taXQgODZjNzVjZmQ3MDhhMGU1ODY4ZGM4NzZlZDViOGJiNjZjODBiNDg3MwordGVzdF9mb3JtYXQgYm9keSAlYiA8PEVPRgorY29tbWl0ICRoZWFkMgorY29tbWl0ICRoZWFkMQogRU9GCiAKLXRlc3RfZm9ybWF0IHJhdy1ib2R5ICVCIDw8J0VPRicKLWNvbW1pdCAxMzFhMzEwZWI5MTNkMTA3ZGQzYzA5YTY1ZDE2NTExNzU4OTg3MzVkCi1jaGFuZ2VkIGZvbwordGVzdF9mb3JtYXQgcmF3LWJvZHkgJUIgPDxFT0YKK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkCiAKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK2NvbW1pdCAkaGVhZDEKKyRhZGRlZAogCiBFT0YKIAotdGVzdF9mb3JtYXQgY29sb3JzICVDcmVkZm9vJUNncmVlbmJhciVDYmx1ZWJheiVDcmVzZXR4eXp6eSA8PCdFT0YnCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAordGVzdF9mb3JtYXQgY29sb3JzICVDcmVkZm9vJUNncmVlbmJhciVDYmx1ZWJheiVDcmVzZXR4eXp6eSA8PEVPRgorY29tbWl0ICRoZWFkMgogG1szMW1mb28bWzMybWJhchtbMzRtYmF6G1tteHl6enkKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQxCiAbWzMxbWZvbxtbMzJtYmFyG1szNG1iYXobW214eXp6eQogRU9GCiAKLXRlc3RfZm9ybWF0IGFkdmFuY2VkLWNvbG9ycyAnJUMocmVkIHllbGxvdyBib2xkKWZvbyVDKHJlc2V0KScgPDwnRU9GJwotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKK3Rlc3RfZm9ybWF0IGFkdmFuY2VkLWNvbG9ycyAnJUMocmVkIHllbGxvdyBib2xkKWZvbyVDKHJlc2V0KScgPDxFT0YKK2NvbW1pdCAkaGVhZDIKIBtbMTszMTs0M21mb28bW20KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQxCiAbWzE7MzE7NDNtZm9vG1ttCiBFT0YKIApAQCAtMTc5LDQ2ICsyMDYsNzEgQEAKIAkpCiAnCiAKLWNhdCA+Y29tbWl0LW1zZyA8PCdFT0YnCitpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEgPiBjb21taXQtbXNnIDw8RU9GCiBUZXN0IHByaW50aW5nIG9mIGNvbXBsZXggYm9kaWVzCiAKIFRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAogYW5kIGl0IHdpbGwgYmUgZW5jb2RlZCBpbiBpc284ODU5LTEuIFdlIHNob3VsZCB0aGVyZWZvcmUKLWluY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IKFidWVubyEKK2luY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IMKhYnVlbm8hCiBFT0YKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgY29tcGxleCBib2R5JyAnCi1naXQgY29uZmlnIGkxOG4uY29tbWl0ZW5jb2RpbmcgaXNvODg1OS0xICYmCi0gIGVjaG8gY2hhbmdlMiA+Zm9vICYmIGdpdCBjb21taXQgLWEgLUYgY29tbWl0LW1zZworCWdpdCBjb25maWcgaTE4bi5jb21taXRlbmNvZGluZyBpc284ODU5LTEgJiYKKwllY2hvIGNoYW5nZTIgPmZvbyAmJiBnaXQgY29tbWl0IC1hIC1GIGNvbW1pdC1tc2cgJiYKKwloZWFkMz0kKGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgSEVBRCkgJiYKKwloZWFkM19zaG9ydD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCAkaGVhZDMpCiAnCiAKLXRlc3RfZm9ybWF0IGNvbXBsZXgtZW5jb2RpbmcgJWUgPDwnRU9GJwotY29tbWl0IDFlZDg4ZGE0YTViNWVkOGM0NDkxMTRhYzEzMWVmYzYyMTc4NzM0YzMKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtZW5jb2RpbmcgJWUgPDxFT0YKK2NvbW1pdCAkaGVhZDMKIGlzbzg4NTktMQotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCitjb21taXQgJGhlYWQyCitpc284ODU5LTEKK2NvbW1pdCAkaGVhZDEKK2lzbzg4NTktMQogRU9GCiAKLXRlc3RfZm9ybWF0IGNvbXBsZXgtc3ViamVjdCAlcyA8PCdFT0YnCi1jb21taXQgMWVkODhkYTRhNWI1ZWQ4YzQ0OTExNGFjMTMxZWZjNjIxNzg3MzRjMwordGVzdF9mb3JtYXQgY29tcGxleC1zdWJqZWN0ICVzIDw8RU9GCitjb21taXQgJGhlYWQzCiBUZXN0IHByaW50aW5nIG9mIGNvbXBsZXggYm9kaWVzCi1jb21taXQgMTMxYTMxMGViOTEzZDEwN2RkM2MwOWE2NWQxNjUxMTc1ODk4NzM1ZAotY2hhbmdlZCBmb28KLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCi1hZGRlZCBmb28KK2NvbW1pdCAkaGVhZDIKKyRjaGFuZ2VkX2lzbzg4NTkxCitjb21taXQgJGhlYWQxCiskYWRkZWRfaXNvODg1OTEKIEVPRgogCi10ZXN0X2Zvcm1hdCBjb21wbGV4LWJvZHkgJWIgPDwnRU9GJwotY29tbWl0IDFlZDg4ZGE0YTViNWVkOGM0NDkxMTRhYzEzMWVmYzYyMTc4NzM0YzMKLVRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAotYW5kIGl0IHdpbGwgYmUgZW5jb2RlZCBpbiBpc284ODU5LTEuIFdlIHNob3VsZCB0aGVyZWZvcmUKLWluY2x1ZGUgYW4gaXNvODg1OSBjaGFyYWN0ZXI6IKFidWVubyEKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ByZXBhcmUgZXhwZWN0ZWQgbWVzc2FnZXMgKGZvciB0ZXN0ICViKScgJworCWNhdCA8PC1FT0YgPmV4cGVjdGVkLnV0Zi04ICYmCisJY29tbWl0ICRoZWFkMworCVRoaXMgY29tbWl0IG1lc3NhZ2UgaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgb3RoZXJzLAorCWFuZCBpdCB3aWxsIGJlIGVuY29kZWQgaW4gaXNvODg1OS0xLiBXZSBzaG91bGQgdGhlcmVmb3JlCisJaW5jbHVkZSBhbiBpc284ODU5IGNoYXJhY3RlcjogwqFidWVubyEKIAotY29tbWl0IDEzMWEzMTBlYjkxM2QxMDdkZDNjMDlhNjVkMTY1MTE3NTg5ODczNWQKLWNvbW1pdCA4NmM3NWNmZDcwOGEwZTU4NjhkYzg3NmVkNWI4YmI2NmM4MGI0ODczCisJY29tbWl0ICRoZWFkMgorCWNvbW1pdCAkaGVhZDEKKwlFT0YKKwlpY29udiAtZiB1dGYtOCAtdCBpc284ODU5LTEgZXhwZWN0ZWQudXRmLTggPmV4cGVjdGVkLmlzbzg4NTktMQorJworCit0ZXN0X2Zvcm1hdCBjb21wbGV4LWJvZHkgJWIgPGV4cGVjdGVkLmlzbzg4NTktMQorCisjIEdpdCB1c2VzIGkxOG4uY29tbWl0RW5jb2RpbmcgaWYgbm8gaTE4bi5sb2dPdXRwdXRFbmNvZGluZyBzZXQKKyMgc28gdW5zZXQgaTE4bi5jb21taXRFbmNvZGluZyB0byB0ZXN0IGVuY29kaW5nIGNvbnZlcnNpb24KK2dpdCBjb25maWcgLS11bnNldCBpMThuLmNvbW1pdEVuY29kaW5nCisKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtc3ViamVjdC1jb21taXRlbmNvZGluZy11bnNldCAlcyA8PEVPRgorY29tbWl0ICRoZWFkMworVGVzdCBwcmludGluZyBvZiBjb21wbGV4IGJvZGllcworY29tbWl0ICRoZWFkMgorJGNoYW5nZWQKK2NvbW1pdCAkaGVhZDEKKyRhZGRlZAogRU9GCiAKK3Rlc3RfZm9ybWF0IGNvbXBsZXgtYm9keS1jb21taXRlbmNvZGluZy11bnNldCAlYiA8ZXhwZWN0ZWQudXRmLTgKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnJXgwMCBzaG93cyBOVUwnICcKLQllY2hvICA+ZXhwZWN0IGNvbW1pdCAxZWQ4OGRhNGE1YjVlZDhjNDQ5MTE0YWMxMzFlZmM2MjE3ODczNGMzICYmCisJZWNobyAgPmV4cGVjdCBjb21taXQgJGhlYWQzICYmCiAJZWNobyA+PmV4cGVjdCBmb29RYmFyICYmCiAJZ2l0IHJldi1saXN0IC0xIC0tZm9ybWF0PWZvbyV4MDBiYXIgSEVBRCA+YWN0dWFsLm51bCAmJgogCW51bF90b19xIDxhY3R1YWwubnVsID5hY3R1YWwgJiYKQEAgLTI2NSwxMiArMzE3LDEyIEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZCBTUCBiZWZvcmUgbm9uLWVtcHR5ICgxKScgJwogCWdpdCBzaG93IC1zIC0tcHJldHR5PWZvcm1hdDoiJXMlIGJUaGFua3MiIEhFQUReXiA+YWN0dWFsICYmCi0JdGVzdCAkKHdjIC13IDxhY3R1YWwpID0gMgorCXRlc3QgJCh3YyAtdyA8YWN0dWFsKSA9IDMKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkIFNQIGJlZm9yZSBub24tZW1wdHkgKDIpJyAnCiAJZ2l0IHNob3cgLXMgLS1wcmV0dHk9Zm9ybWF0OiIlcyUgc1RoYW5rcyIgSEVBRF5eID5hY3R1YWwgJiYKLQl0ZXN0ICQod2MgLXcgPGFjdHVhbCkgPSA0CisJdGVzdCAkKHdjIC13IDxhY3R1YWwpID0gNgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICctLWFiYnJldicgJwpkaWZmIC0tZ2l0IGEvdC90NjAxMi1yZXYtbGlzdC1zaW1wbGlmeS5zaCBiL3QvdDYwMTItcmV2LWxpc3Qtc2ltcGxpZnkuc2gKaW5kZXggZGQ2ZGM4NC4uZmRlNWU3MSAxMDA3NTUKLS0tIGEvdC90NjAxMi1yZXYtbGlzdC1zaW1wbGlmeS5zaAorKysgYi90L3Q2MDEyLXJldi1saXN0LXNpbXBsaWZ5LnNoCkBAIC0xNCwyMSArMTQsMjQgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyBzZXR1cCAnCiAJZWNobyAiSGkgdGhlcmUiID5maWxlICYmCi0JZ2l0IGFkZCBmaWxlICYmCi0JdGVzdF90aWNrICYmIGdpdCBjb21taXQgLW0gIkluaXRpYWwgZmlsZSIgJiYKKwllY2hvICJpbml0aWFsIiA+bG9zdCAmJgorCWdpdCBhZGQgZmlsZSBsb3N0ICYmCisJdGVzdF90aWNrICYmIGdpdCBjb21taXQgLW0gIkluaXRpYWwgZmlsZSBhbmQgbG9zdCIgJiYKIAlub3RlIEEgJiYKIAogCWdpdCBicmFuY2ggb3RoZXItYnJhbmNoICYmCiAKIAllY2hvICJIZWxsbyIgPmZpbGUgJiYKLQlnaXQgYWRkIGZpbGUgJiYKLQl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgZmlsZSIgJiYKKwllY2hvICJzZWNvbmQiID5sb3N0ICYmCisJZ2l0IGFkZCBmaWxlIGxvc3QgJiYKKwl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgZmlsZSBhbmQgbG9zdCIgJiYKIAlub3RlIEIgJiYKIAogCWdpdCBjaGVja291dCBvdGhlci1icmFuY2ggJiYKIAogCWVjaG8gIkhlbGxvIiA+ZmlsZSAmJgotCWdpdCBhZGQgZmlsZSAmJgorCT5sb3N0ICYmCisJZ2l0IGFkZCBmaWxlIGxvc3QgJiYKIAl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiTW9kaWZpZWQgdGhlIGZpbGUgaWRlbnRpY2FsbHkiICYmCiAJbm90ZSBDICYmCiAKQEAgLTM3LDcgKzQwLDkgQEAKIAl0ZXN0X3RpY2sgJiYgZ2l0IGNvbW1pdCAtbSAiQWRkIGFub3RoZXIgZmlsZSIgJiYKIAlub3RlIEQgJiYKIAotCXRlc3RfdGljayAmJiBnaXQgbWVyZ2UgLW0gIm1lcmdlIiBtYXN0ZXIgJiYKKwl0ZXN0X3RpY2sgJiYKKwl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLW0gIm1lcmdlIiBtYXN0ZXIgJiYKKwk+bG9zdCAmJiBnaXQgY29tbWl0IC1hIC1tICJtZXJnZSIgJiYKIAlub3RlIEUgJiYKIAogCWVjaG8gIllldCBhbm90aGVyIiA+ZWxpZiAmJgpAQCAtMTA1LDkgKzExMCwyNyBAQAogY2hlY2tfcmVzdWx0ICdLIEkgSCBFIEMgQiBBJyAtLWZ1bGwtaGlzdG9yeSAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0sgSSBIIEUgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IC0tdG9wby1vcmRlciAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0sgSSBIIEUgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IC0tZGF0ZS1vcmRlciAtLSBmaWxlCi1jaGVja19vdXRjb21lIGZhaWx1cmUgJ0kgRSBDIEIgQScgLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdJIEUgQyBCIEEnIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKIGNoZWNrX3Jlc3VsdCAnSSBCIEEnIC0tIGZpbGUKIGNoZWNrX3Jlc3VsdCAnSSBCIEEnIC0tdG9wby1vcmRlciAtLSBmaWxlCiBjaGVja19yZXN1bHQgJ0gnIC0tZmlyc3QtcGFyZW50IC0tIGFub3RoZXItZmlsZQogCitjaGVja19yZXN1bHQgJ0UgQyBCIEEnIC0tZnVsbC1oaXN0b3J5IEUgLS0gbG9zdAordGVzdF9leHBlY3Rfc3VjY2VzcyAnZnVsbCBoaXN0b3J5IHNpbXBsaWZpY2F0aW9uIHdpdGhvdXQgcGFyZW50JyAnCisJcHJpbnRmICIlc1xuIiBFIEMgQiBBID5leHBlY3QgJiYKKwlnaXQgbG9nIC0tcHJldHR5PSIkRk1UIiAtLWZ1bGwtaGlzdG9yeSBFIC0tIGxvc3QgfAorCXVubm90ZSA+YWN0dWFsICYmCisJc2VkIC1lICJzL14uKglcKFteIF0qXCkgLiovXDEvIiA+Y2hlY2sgPGFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBjaGVjayB8fCB7CisJCWNhdCBhY3R1YWwKKwkJZmFsc2UKKwl9CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tZnVsbC1kaWZmIGlzIG5vdCBhZmZlY3RlZCBieSAtLXBhcmVudHMnICcKKwlnaXQgbG9nIC1wIC0tcHJldHR5PSIlSCIgLS1mdWxsLWRpZmYgLS0gZmlsZSA+ZXhwZWN0ZWQgJiYKKwlnaXQgbG9nIC1wIC0tcHJldHR5PSIlSCIgLS1mdWxsLWRpZmYgLS1wYXJlbnRzIC0tIGZpbGUgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAorJworCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYwMTktcmV2LWxpc3QtYW5jZXN0cnktcGF0aC5zaCBiL3QvdDYwMTktcmV2LWxpc3QtYW5jZXN0cnktcGF0aC5zaAppbmRleCAzOWI0Y2IwLi5kYWJlYmFlIDEwMDc1NQotLS0gYS90L3Q2MDE5LXJldi1saXN0LWFuY2VzdHJ5LXBhdGguc2gKKysrIGIvdC90NjAxOS1yZXYtbGlzdC1hbmNlc3RyeS1wYXRoLnNoCkBAIC0xMyw2ICsxMywxMyBAQAogIwogIyAgRC4uTSAtLSBNLnQgICAgICAgICAgICAgICAgID09IE0KICMgIC0tYW5jZXN0cnktcGF0aCBELi5NIC0tIE0udCA9PSBNCisjCisjICBGLi4uSSAgICAgICAgICAgICAgICAgPT0gRiBHIEggSQorIyAgLS1hbmNlc3RyeS1wYXRoIEYuLi5JID09IEYgSCBJCisjCisjICBHLi5NIC0tIEcudCAgICAgICAgICAgICAgICAgPT0gW25vdGhpbmcgLSB3YXMgZHJvcHBlZCBpbiAiLXMgb3VycyIgbWVyZ2UgTF0KKyMgIC0tYW5jZXN0cnktcGF0aCBHLi5NIC0tIEcudCA9PSBMCisjICAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgR14uLk0gLS0gRy50ID09IEcgTAogCiAuIC4vdGVzdC1saWIuc2gKIApAQCAtNjMsMTMgKzcwLDUyIEBACiAJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGNoIEQuLk0gLS0gTS50JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggRC4uTSAtLSBNLnQnICcKIAllY2hvIE0gPmV4cGVjdCAmJgogCWdpdCByZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggLS1mb3JtYXQ9JXMgRC4uTSAtLSBNLnQgfAogCXNlZCAtZSAiL15jb21taXQgL2QiID5hY3R1YWwgJiYKIAl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jldi1saXN0IEYuLi5JJyAnCisJZm9yIGMgaW4gRiBHIEggSTsgZG8gZWNobyAkYzsgZG9uZSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1saXN0IC0tZm9ybWF0PSVzIEYuLi5JIHwKKwlzZWQgLWUgIi9eY29tbWl0IC9kIiB8CisJc29ydCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggRi4uLkknICcKKwlmb3IgYyBpbiBGIEggSTsgZG8gZWNobyAkYzsgZG9uZSA+ZXhwZWN0ICYmCisJZ2l0IHJldi1saXN0IC0tYW5jZXN0cnktcGF0aCAtLWZvcm1hdD0lcyBGLi4uSSB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgfAorCXNvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKworIyBHLnQgaXMgZHJvcHBlZCBpbiBhbiAiLXMgb3VycyIgbWVyZ2UKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Jldi1saXN0IEcuLk0gLS0gRy50JyAnCisJPmV4cGVjdCAmJgorCWdpdCByZXYtbGlzdCAtLWZvcm1hdD0lcyBHLi5NIC0tIEcudCB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIEcuLk0gLS0gRy50JyAnCisJZWNobyBMID5leHBlY3QgJiYKKwlnaXQgcmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIC0tZm9ybWF0PSVzIEcuLk0gLS0gRy50IHwKKwlzZWQgLWUgIi9eY29tbWl0IC9kIiA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXYtbGlzdCAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgR14uLk0gLS0gRy50JyAnCisJZm9yIGMgaW4gRyBMOyBkbyBlY2hvICRjOyBkb25lID5leHBlY3QgJiYKKwlnaXQgcmV2LWxpc3QgLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tZm9ybWF0PSVzIEdeLi5NIC0tIEcudCB8CisJc2VkIC1lICIvXmNvbW1pdCAvZCIgfAorCXNvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdCBhY3R1YWwKKycKKwogIyAgIGItLS1iYwogIyAgLyBcIC8KICMgYSAgIFgKZGlmZiAtLWdpdCBhL3QvdDYwMjEtbWVyZ2UtY3Jpc3MtY3Jvc3Muc2ggYi90L3Q2MDIxLW1lcmdlLWNyaXNzLWNyb3NzLnNoCmluZGV4IDMzMWI5YjAuLmQxNWIzMTMgMTAwNzU1Ci0tLSBhL3QvdDYwMjEtbWVyZ2UtY3Jpc3MtY3Jvc3Muc2gKKysrIGIvdC90NjAyMS1tZXJnZS1jcmlzcy1jcm9zcy5zaApAQCAtMyw3ICszLDcgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA1IEZyZWRyaWsgS3VpdmluZW4KICMKIAotIyBTZWUgaHR0cDovL21hcmMudGhlYWltc2dyb3VwLmNvbS8/bD1naXQmbT0xMTE0NjMzNTg1MDAzNjImdz0yIGZvciBhCisjIFNlZSBodHRwOi8vbWFyYy5pbmZvLz9sPWdpdCZtPTExMTQ2MzM1ODUwMDM2MiZ3PTIgZm9yIGEKICMgbmljZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoaXMgaXMgYWJvdXQuCiAKIApkaWZmIC0tZ2l0IGEvdC90NjAzNS1tZXJnZS1kaXItdG8tc3ltbGluay5zaCBiL3QvdDYwMzUtbWVyZ2UtZGlyLXRvLXN5bWxpbmsuc2gKaW5kZXggMjU5OWFlNS4uOTMyNGVhNCAxMDA3NTUKLS0tIGEvdC90NjAzNS1tZXJnZS1kaXItdG8tc3ltbGluay5zaAorKysgYi90L3Q2MDM1LW1lcmdlLWRpci10by1zeW1saW5rLnNoCkBAIC0zLDcgKzMsNyBAQAogdGVzdF9kZXNjcmlwdGlvbj0nbWVyZ2luZyB3aGVuIGEgZGlyZWN0b3J5IHdhcyByZXBsYWNlZCB3aXRoIGEgc3ltbGluaycKIC4gLi90ZXN0LWxpYi5zaAogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjcmVhdGUgYSBjb21taXQgd2hlcmUgZGlyIGEvYiBjaGFuZ2VkIHRvIHN5bWxpbmsnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NyZWF0ZSBhIGNvbW1pdCB3aGVyZSBkaXIgYS9iIGNoYW5nZWQgdG8gc3ltbGluaycgJwogCW1rZGlyIC1wIGEvYi9jIGEvYi0yL2MgJiYKIAk+IGEvYi9jL2QgJiYKIAk+IGEvYi0yL2MvZCAmJgpAQCAtMTIsMTIgKzEyLDEyIEBACiAJZ2l0IGNvbW1pdCAtbSBiYXNlICYmCiAJZ2l0IHRhZyBzdGFydCAmJgogCXJtIC1yZiBhL2IgJiYKLQlsbiAtcyBiLTIgYS9iICYmCiAJZ2l0IGFkZCAtQSAmJgorCXRlc3RfbG5fc19hZGQgYi0yIGEvYiAmJgogCWdpdCBjb21taXQgLW0gImRpciB0byBzeW1saW5rIgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjaGVja291dCBkb2VzIG5vdCBjbG9iYmVyIHVudHJhY2tlZCBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGVja291dCBkb2VzIG5vdCBjbG9iYmVyIHVudHJhY2tlZCBzeW1saW5rJyAnCiAJZ2l0IGNoZWNrb3V0IEhFQUReMCAmJgogCWdpdCByZXNldCAtLWhhcmQgbWFzdGVyICYmCiAJZ2l0IHJtIC0tY2FjaGVkIGEvYiAmJgpAQCAtMjUsNyArMjUsNyBAQAogCXRlc3RfbXVzdF9mYWlsIGdpdCBjaGVja291dCBzdGFydF4wCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYi0yL2MvZCBpcyBrZXB0IHdoZW4gY2xvYmJlcmluZyBzeW1saW5rIGInICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2EvYi0yL2MvZCBpcyBrZXB0IHdoZW4gY2xvYmJlcmluZyBzeW1saW5rIGInICcKIAlnaXQgY2hlY2tvdXQgSEVBRF4wICYmCiAJZ2l0IHJlc2V0IC0taGFyZCBtYXN0ZXIgJiYKIAlnaXQgcm0gLS1jYWNoZWQgYS9iICYmCkBAIC0zNCwxNCArMzQsMTQgQEAKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdjaGVja291dCBzaG91bGQgbm90IGhhdmUgZGVsZXRlZCBhL2ItMi9jL2QnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrb3V0IHNob3VsZCBub3QgaGF2ZSBkZWxldGVkIGEvYi0yL2MvZCcgJwogCWdpdCBjaGVja291dCBIRUFEXjAgJiYKIAlnaXQgcmVzZXQgLS1oYXJkIG1hc3RlciAmJgogCSBnaXQgY2hlY2tvdXQgc3RhcnReMCAmJgogCSB0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzZXR1cCBmb3IgbWVyZ2UgdGVzdCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZm9yIG1lcmdlIHRlc3QnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QgJiYKIAllY2hvIHggPiBhL3ggJiYKQEAgLTUwLDM5ICs1MCw1MSBAQAogCWdpdCB0YWcgYmFzZWxpbmUKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWdpdCBtZXJnZSAtcyByZXNvbHZlIG1hc3RlciAmJgotCXRlc3QgLWggYS9iICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEQvRiBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdhL2Igd2FzIHJlc29sdmVkIGFzIHN5bWxpbmsnICcKKwl0ZXN0IC1oIGEvYgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdIYW5kbGUgRC9GIGNvbmZsaWN0LCBkbyBub3QgbG9zZSBhL2ItMi9jL2QgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVjdXJzaXZlIG1hc3RlciAmJgotCXRlc3QgLWggYS9iICYmCiAJdGVzdCAtZiBhL2ItMi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnSGFuZGxlIEYvRCBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYS9iIHdhcyByZXNvbHZlZCBhcyBzeW1saW5rJyAnCisJdGVzdCAtaCBhL2IKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnSGFuZGxlIEYvRCBjb25mbGljdCwgZG8gbm90IGxvc2UgYS9iLTIvYy9kIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVzb2x2ZSBiYXNlbGluZV4wICYmCi0JdGVzdCAtaCBhL2IgJiYKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdIYW5kbGUgRi9EIGNvbmZsaWN0LCBkbyBub3QgbG9zZSBhL2ItMi9jL2QgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0hhbmRsZSBGL0QgY29uZmxpY3QsIGRvIG5vdCBsb3NlIGEvYi0yL2MvZCBpbiBtZXJnZSAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgbWFzdGVyXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVjdXJzaXZlIGJhc2VsaW5lXjAgJiYKLQl0ZXN0IC1oIGEvYiAmJgogCXRlc3QgLWYgYS9iLTIvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X2ZhaWx1cmUgU1lNTElOS1MgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVzb2x2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iCisnCisKK3Rlc3RfZXhwZWN0X2ZhaWx1cmUgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVzb2x2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAk+YS9iL2MvZSAmJgpAQCAtOTEsNyArMTAzLDcgQEAKIAl0ZXN0IC1mIGEvYi0yL2MvZAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkbyBub3QgbG9zZSB1bnRyYWNrZWQgaW4gbWVyZ2UgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RvIG5vdCBsb3NlIHVudHJhY2tlZCBpbiBtZXJnZSAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCT5hL2IvYy9lICYmCkBAIC0xMDAsNTIgKzExMiw2MSBAQAogCXRlc3QgLWYgYS9iLTIvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RvIG5vdCBsb3NlIG1vZGlmaWNhdGlvbnMgaW4gbWVyZ2UgKHJlc29sdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZXNvbHZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWVjaG8gbW9yZSBjb250ZW50ID4+YS9iL2MvZCAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSAtcyByZXNvbHZlIG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkbyBub3QgbG9zZSBtb2RpZmljYXRpb25zIGluIG1lcmdlIChyZWN1cnNpdmUpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCAmJgogCWdpdCBjaGVja291dCBiYXNlbGluZV4wICYmCiAJZWNobyBtb3JlIGNvbnRlbnQgPj5hL2IvYy9kICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIC1zIHJlY3Vyc2l2ZSBtYXN0ZXIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc2V0dXAgYSBtZXJnZSB3aGVyZSBkaXIgYS9iLTIgY2hhbmdlZCB0byBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBhIG1lcmdlIHdoZXJlIGRpciBhL2ItMiBjaGFuZ2VkIHRvIHN5bWxpbmsnICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IHN0YXJ0XjAgJiYKIAlybSAtcmYgYS9iLTIgJiYKLQlsbiAtcyBiIGEvYi0yICYmCiAJZ2l0IGFkZCAtQSAmJgorCXRlc3RfbG5fc19hZGQgYiBhL2ItMiAmJgogCWdpdCBjb21taXQgLW0gImRpciBhL2ItMiB0byBzeW1saW5rIiAmJgogCWdpdCB0YWcgdGVzdDIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEQvRiBjb25mbGljdHMgKHJlc29sdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBzaG91bGQgbm90IGhhdmUgRC9GIGNvbmZsaWN0cyAocmVzb2x2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IGJhc2VsaW5lXjAgJiYKIAlnaXQgbWVyZ2UgLXMgcmVzb2x2ZSB0ZXN0MiAmJgotCXRlc3QgLWggYS9iLTIgJiYKIAl0ZXN0IC1mIGEvYi9jL2QKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEQvRiBjb25mbGljdHMgKHJlY3Vyc2l2ZSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2EvYi0yIHdhcyByZXNvbHZlZCBhcyBzeW1saW5rJyAnCisJdGVzdCAtaCBhL2ItMgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtZXJnZSBzaG91bGQgbm90IGhhdmUgRC9GIGNvbmZsaWN0cyAocmVjdXJzaXZlKScgJwogCWdpdCByZXNldCAtLWhhcmQgJiYKIAlnaXQgY2hlY2tvdXQgYmFzZWxpbmVeMCAmJgogCWdpdCBtZXJnZSAtcyByZWN1cnNpdmUgdGVzdDIgJiYKLQl0ZXN0IC1oIGEvYi0yICYmCiAJdGVzdCAtZiBhL2IvYy9kCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ21lcmdlIHNob3VsZCBub3QgaGF2ZSBGL0QgY29uZmxpY3RzIChyZWN1cnNpdmUpJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdhL2ItMiB3YXMgcmVzb2x2ZWQgYXMgc3ltbGluaycgJworCXRlc3QgLWggYS9iLTIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2Ugc2hvdWxkIG5vdCBoYXZlIEYvRCBjb25mbGljdHMgKHJlY3Vyc2l2ZSknICcKIAlnaXQgcmVzZXQgLS1oYXJkICYmCiAJZ2l0IGNoZWNrb3V0IC1iIGZvbyB0ZXN0MiAmJgogCWdpdCBtZXJnZSAtcyByZWN1cnNpdmUgYmFzZWxpbmVeMCAmJgotCXRlc3QgLWggYS9iLTIgJiYKIAl0ZXN0IC1mIGEvYi9jL2QKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnYS9iLTIgd2FzIHJlc29sdmVkIGFzIHN5bWxpbmsnICcKKwl0ZXN0IC1oIGEvYi0yCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NjExMS1yZXYtbGlzdC10cmVlc2FtZS5zaCBiL3QvdDYxMTEtcmV2LWxpc3QtdHJlZXNhbWUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhiODRkZgotLS0gL2Rldi9udWxsCisrKyBiL3QvdDYxMTEtcmV2LWxpc3QtdHJlZXNhbWUuc2gKQEAgLTAsMCArMSwxOTYgQEAKKyMhL2Jpbi9zaAorIworIyAgICAgICAgLC0tLUUtLS4gICAqSC0tLS0tLS0tLS0uICAgICAgICAgICAgICogbWFya3MgIVRSRUVTQU1FIHBhcmVudCBwYXRocworIyAgICAgICAvICAgICAgICBcIC8gICAgICAgICAgICAgXCoKKyMgKkEtLSpCLS0tRC0tKkYtKkctLS0tLS0tLS1LLSpMLSpNCisjICAgXCAgICAgLyogICAgICAgXCAgICAgICAvCisjICAgIGAtQy0nICAgICAgICAgIGAtKkktKkoKKyMKKyMgQSBjcmVhdGVzICJmaWxlIiwgQiBhbmQgRiBjaGFuZ2UgaXQuCisjIE9kZCBtZXJnZSBHIHRha2VzIHRoZSBvbGQgdmVyc2lvbiBmcm9tIEIuCisjIEkgY2hhbmdlcyBpdCwgYnV0IEogcmV2ZXJ0cyBpdCwgc28gSyBpcyBUUkVFU0FNRSB0byBib3RoIHBhcmVudHMuCisjIEggYW5kIEwgYm90aCBjaGFuZ2UgImZpbGUiLCBhbmQgTSBtZXJnZXMgdGhvc2UgY2hhbmdlcy4KKwordGVzdF9kZXNjcmlwdGlvbj0nVFJFRVNBTUUgYW5kIGxpbWl0aW5nJworCisuIC4vdGVzdC1saWIuc2gKKworbm90ZSAoKSB7CisJZ2l0IHRhZyAiJDEiCit9CisKK3Vubm90ZSAoKSB7CisJZ2l0IG5hbWUtcmV2IC0tdGFncyAtLXN0ZGluIHwgc2VkIC1lICJzfCRfeDQwICh0YWdzL1woW14pXSpcKSlcKFsgCV1cKXxcMVwyfGciCit9CisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3Mgc2V0dXAgJworCXRlc3RfY29tbWl0ICJJbml0aWFsIGZpbGUiIGZpbGUgIkhpIHRoZXJlIiBBICYmCisJZ2l0IGJyYW5jaCBvdGhlci1icmFuY2ggJiYKKworCXRlc3RfY29tbWl0ICJmaWxlPUhlbGxvIiBmaWxlICJIZWxsbyIgQiAmJgorCWdpdCBicmFuY2ggdGhpcmQtYnJhbmNoICYmCisKKwlnaXQgY2hlY2tvdXQgb3RoZXItYnJhbmNoICYmCisJdGVzdF9jb21taXQgIkFkZGVkIG90aGVyIiBvdGhlciAiSGVsbG8iIEMgJiYKKworCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwl0ZXN0X21lcmdlIEQgb3RoZXItYnJhbmNoICYmCisKKwlnaXQgY2hlY2tvdXQgdGhpcmQtYnJhbmNoICYmCisJdGVzdF9jb21taXQgIlRoaXJkIGZpbGUiIHRoaXJkICJOb3RoaW5nIiBFICYmCisKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF9jb21taXQgImZpbGU9QmxhaCIgZmlsZSAiQmxhaCIgRiAmJgorCisJdGVzdF90aWNrICYmIGdpdCBtZXJnZSAtLW5vLWNvbW1pdCB0aGlyZC1icmFuY2ggJiYKKwlnaXQgY2hlY2tvdXQgdGhpcmQtYnJhbmNoIGZpbGUgJiYKKwlnaXQgY29tbWl0ICYmCisJbm90ZSBHICYmCisJZ2l0IGJyYW5jaCBmaWRkbGVyLWJyYW5jaCAmJgorCisJZ2l0IGNoZWNrb3V0IC1iIHBhcnQyLWJyYW5jaCAmJgorCXRlc3RfY29tbWl0ICJmaWxlPVBhcnQgMiIgZmlsZSAiUGFydCAyIiBIICYmCisKKwlnaXQgY2hlY2tvdXQgZmlkZGxlci1icmFuY2ggJiYKKwl0ZXN0X2NvbW1pdCAiQmFkIGNvbW1pdCIgZmlsZSAiU2lsbHkiIEkgJiYKKworCXRlc3RfdGljayAmJiBnaXQgcmV2ZXJ0IEkgJiYgbm90ZSBKICYmCisKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJdGVzdF90aWNrICYmIGdpdCBtZXJnZSAtLW5vLWZmIGZpZGRsZXItYnJhbmNoICYmCisJbm90ZSBLCisKKwl0ZXN0X2NvbW1pdCAiZmlsZT1QYXJ0IDEiIGZpbGUgIlBhcnQgMSIgTCAmJgorCisJdGVzdF90aWNrICYmIHRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSBwYXJ0Mi1icmFuY2ggJiYKKwl0ZXN0X2NvbW1pdCBNIGZpbGUgIlBhcnRzIDErMiIKKycKKworY2hlY2tfb3V0Y29tZSAoKSB7CisJb3V0Y29tZT0kMQorCXNoaWZ0CisKKwljYXNlICIkMSIgaW4KKwkqIigiKikKKwkJRk1UPSIlUAklSCB8ICVzIgorCQltdW5nZV9hY3R1YWw9IgorCQkJcy9eXChbXgldKlwpCVwoW14gXSpcKSAuKi8oXDEpXDIvCisJCQlzLyAvL2cKKwkJCXMvKCkvLworCQkiCisJCTs7CisJKikKKwkJRk1UPSIlSCB8ICVzIgorCQltdW5nZV9hY3R1YWw9InMvXlwoW14gXSpcKSAuKi9cMS8iCisJCTs7CisJZXNhYyAmJgorCXByaW50ZiAiJXNcbiIgJDEgPmV4cGVjdCAmJgorCXNoaWZ0CisKKwlwYXJhbT0iJCoiICYmCisJdGVzdF9leHBlY3RfJG91dGNvbWUgImxvZyAkcGFyYW0iICcKKwkJZ2l0IGxvZyAtLWZvcm1hdD0iJEZNVCIgJHBhcmFtIHwKKwkJdW5ub3RlID5hY3R1YWwgJiYKKwkJc2VkIC1lICIkbXVuZ2VfYWN0dWFsIiA8YWN0dWFsID5jaGVjayAmJgorCQl0ZXN0X2NtcCBleHBlY3QgY2hlY2sgfHwgeworCQkJY2F0IGFjdHVhbAorCQkJZmFsc2UKKwkJfQorCScKK30KKworY2hlY2tfcmVzdWx0ICgpIHsKKwljaGVja19vdXRjb21lIHN1Y2Nlc3MgIiRAIgorfQorCisjIE9kZCBtZXJnZSBHIGRyb3BzIGEgY2hhbmdlIGluIEYuIEltcG9ydGFudCB0aGF0IEcgaXMgbGlzdGVkIGluIGFsbAorIyBleGNlcHQgdGhlIG1vc3QgYmFzaWMgbGlzdC4gQWNoaWV2aW5nIHRoaXMgbWVhbnMgbm9ybWFsIG1lcmdlIEQgd2lsbCBhbHNvIGJlCisjIHNob3duIGluIG5vcm1hbCBmdWxsLWhpc3RvcnksIGFzIHdlIGNhbid0IGRpc3Rpbmd1aXNoIHVubGVzcyB3ZSBkbyBhCisjIHNpbXBsaWZpY2F0aW9uIHBhc3MuIEFmdGVyIHNpbXBsaWZpY2F0aW9uLCBEIGlzIGRyb3BwZWQgYnV0IEcgcmVtYWlucy4KKyMgQWxzbywgbWVyZ2Ugc2ltcGxpZmljYXRpb24gb2YgRyBzaG91bGQgbm90IGRyb3AgdGhlIHBhcmVudCBCIHRoYXQgdGhlIGRlZmF1bHQKKyMgc2ltcGxlIGhpc3RvcnkgZm9sbG93cy4KK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRyBGIEUgRCBDIEIgQScKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkUpRyAoRClGIChCKUUgKEJDKUQgKEEpQyAoQSlCIEEnCitjaGVja19yZXN1bHQgJ00gSCBMIEsgSiBJIEcgRSBGIEQgQyBCIEEnIC0tdG9wby1vcmRlcgorY2hlY2tfcmVzdWx0ICdNIEwgSCBCIEEnIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEIpTCAoQilIIChBKUIgQScgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIIEcgRiBEIEIgQScgLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoSylMIChHSilLIChJKUogKEcpSSAoRylIIChGQilHIChEKUYgKEJBKUQgKEEpQiBBJyAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoRylIIChKKUwgKEkpSiAoRylJIChGQilHIChCKUYgKEEpQiBBJyAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBLIEcgRiBEIEIgQScgLS1maXJzdC1wYXJlbnQKK2NoZWNrX3Jlc3VsdCAnTSBMIEcgRiBCIEEnIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBDaGVjayB0aGF0IG9kZCBtZXJnZSBHIHJlbWFpbnMgc2hvd24gd2hlbiBGIGlzIHRoZSBib3R0b20uCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIIEcgRScgRi4uTQorY2hlY2tfcmVzdWx0ICdNIEggTCBLIEogSSBHIEUnIEYuLk0gLS10b3BvLW9yZGVyCitjaGVja19yZXN1bHQgJ00gTCBIJyBGLi5NIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEIpTCAoQilIJyAtLXBhcmVudHMgRi4uTSAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBKIEkgSCBHJyBGLi5NIC0tZnVsbC1oaXN0b3J5IC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkIpRycgRi4uTSAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoTEgpTSAoRylIIChKKUwgKEkpSiAoRylJIChGQilHJyBGLi5NIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIIEcnIEYuLk0gLS1hbmNlc3RyeS1wYXRoIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEspTCAoR0opSyAoSSlKIChHKUkgKEcpSCAoRkUpRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGggLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKExIKU0gKEcpSCAoSilMIChJKUogKEcpSSAoRkUpRycgRi4uTSAtLWFuY2VzdHJ5LXBhdGggLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBHJyBGLi5NIC0tZmlyc3QtcGFyZW50CitjaGVja19yZXN1bHQgJ00gTCBHJyBGLi5NIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBOb3RlIHRoYXQgRyBpcyBwcnVuZWQgd2hlbiBFIGlzIHRoZSBib3R0b20sIGV2ZW4gaWYgaXQncyB0aGUgc2FtZSBjb21taXQgbGlzdAorIyBJZiB3ZSB3YW50IGhpc3Rvcnkgc2luY2UgRSwgdGhlbiB3ZSdyZSBxdWl0ZSBoYXBweSB0byBpZ25vcmUgRyB0aGF0IHRvb2sgRS4KK2NoZWNrX3Jlc3VsdCAnTSBMIEsgSiBJIEggRycgRS4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIJyBFLi5NIC0tYW5jZXN0cnktcGF0aCAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChLKUwgKEVKKUsgKEkpSiAoRSlJIChFKUgnIEUuLk0gLS1hbmNlc3RyeS1wYXRoIC0tcGFyZW50cyAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChFKUggKEopTCAoSSlKIChFKUknIEUuLk0gLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKKworIyBTaG91bGQgc3RpbGwgYmUgYWJsZSB0byBpZ25vcmUgSS1KIGJyYW5jaCBpbiBzaW1wbGUgbG9nLCBkZXNwaXRlIGxpbWl0aW5nCisjIHRvIEcuCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIJyBHLi5NCitjaGVja19yZXN1bHQgJ00gSCBMIEsgSiBJJyBHLi5NIC0tdG9wby1vcmRlcgorY2hlY2tfcmVzdWx0ICdNIEwgSCcgRy4uTSAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhMSClNIChHKUwgKEcpSCcgRy4uTSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSiBJIEgnIEcuLk0gLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBKIEkgSCcgRy4uTSAtLWZ1bGwtaGlzdG9yeSAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEggTCBKIEknIEcuLk0gLS1zaW1wbGlmeS1tZXJnZXMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEwgSyBKIEkgSCcgRy4uTSAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnTSBMIEogSSBIJyBHLi5NIC0tYW5jZXN0cnktcGF0aCAtLSBmaWxlCitjaGVja19yZXN1bHQgJ00gTCBLIEogSSBIJyBHLi5NIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdNIEggTCBKIEknIEcuLk0gLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKKworIyBCLi5GIHNob3VsZCBiZSBhYmxlIHRvIHNpbXBsaWZ5IHRoZSBtZXJnZSBEIGZyb20gaXJyZWxldmFudCBzaWRlIGJyYW5jaCBDLgorIyBEZWZhdWx0IGxvZyBzaG91bGQgYWxzbyBiZSBmcmVlIHRvIGZvbGxvdyBCLUQsIGFuZCBpZ25vcmUgQy4KKyMgQnV0IC0tZnVsbC1oaXN0b3J5IHNob3VsZG4ndCBkcm9wIEQgb24gaXRzIG93biAtIHdpdGhvdXQgc2ltcGxpZmljYXRpb24sCisjIHdlIGNhbid0IGRlY2lkZSBpZiB0aGUgbWVyZ2UgZnJvbSBJTlRFUkVTVElORyBjb21taXQgQyB3YXMgc2Vuc2libGUuCitjaGVja19yZXN1bHQgJ0YgRCBDJyBCLi5GCitjaGVja19yZXN1bHQgJ0YnIEIuLkYgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoQilGJyBCLi5GIC0tcGFyZW50cyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWZ1bGwtaGlzdG9yeSAtLSBmaWxlCitjaGVja19yZXN1bHQgJyhEKUYgKEJBKUQnIEIuLkYgLS1mdWxsLWhpc3RvcnkgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKEIpRicgQi4uRiAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWFuY2VzdHJ5LXBhdGgKK2NoZWNrX3Jlc3VsdCAnRicgQi4uRiAtLWFuY2VzdHJ5LXBhdGggLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tYW5jZXN0cnktcGF0aCAtLXNpbXBsaWZ5LW1lcmdlcyAtLSBmaWxlCitjaGVja19yZXN1bHQgJ0YgRCcgQi4uRiAtLWZpcnN0LXBhcmVudAorY2hlY2tfcmVzdWx0ICdGJyBCLi5GIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworIyBFLi4uRiBzaG91bGQgYmUgZXF1aXZhbGVudCB0byBFIEYgXkIsIGFuZCBiZSBhYmxlIHRvIGRyb3AgRCBhcyBhYm92ZS4KK2NoZWNrX3Jlc3VsdCAnRicgRSBGIF5CIC0tIGZpbGUgIyBpbmNsdWRlcyBECitjaGVja19yZXN1bHQgJ0YnIEUuLi5GIC0tIGZpbGUgIyBpbmNsdWRlcyBECisKKyMgQW55IHNvcnQgb2YgZnVsbCBoaXN0b3J5IG9mIEMuLkYgc2hvdWxkIHNob3cgRCwgYXMgaXQncyB0aGUgY29ubmVjdGlvbiB0byBDLAorIyBhbmQgaXQgZGlmZmVycyBmcm9tIGl0LgorY2hlY2tfcmVzdWx0ICdGIEQgQicgQy4uRgorY2hlY2tfcmVzdWx0ICdGIEInIEMuLkYgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoQilGIChBKUInIEMuLkYgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEIEInIEMuLkYgLS1mdWxsLWhpc3RvcnkgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICcoRClGIChCQylEIChBKUInIEMuLkYgLS1mdWxsLWhpc3RvcnkgLS1wYXJlbnRzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnKEQpRiAoQkMpRCAoQSlCJyBDLi5GIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEJyBDLi5GIC0tYW5jZXN0cnktcGF0aAorY2hlY2tfcmVzdWx0ICdGIEQnIEMuLkYgLS1hbmNlc3RyeS1wYXRoIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEJyBDLi5GIC0tYW5jZXN0cnktcGF0aCAtLXBhcmVudHMgLS0gZmlsZQorY2hlY2tfcmVzdWx0ICdGIEQnIEMuLkYgLS1hbmNlc3RyeS1wYXRoIC0tc2ltcGxpZnktbWVyZ2VzIC0tIGZpbGUKK2NoZWNrX3Jlc3VsdCAnRiBEIEInIEMuLkYgLS1maXJzdC1wYXJlbnQKK2NoZWNrX3Jlc3VsdCAnRiBCJyBDLi5GIC0tZmlyc3QtcGFyZW50IC0tIGZpbGUKKworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDYxMjAtZGVzY3JpYmUuc2ggYi90L3Q2MTIwLWRlc2NyaWJlLnNoCmluZGV4IGY2N2FhNmYuLmMwZTViMmEgMTAwNzU1Ci0tLSBhL3QvdDYxMjAtZGVzY3JpYmUuc2gKKysrIGIvdC90NjEyMC1kZXNjcmliZS5zaApAQCAtMTEwLDYgKzExMCw5IEBACiBjaGVja19kZXNjcmliZSBCLTAtKiAtLWxvbmcgSEVBRF5eMl4KIGNoZWNrX2Rlc2NyaWJlIEEtMy0qIC0tbG9uZyBIRUFEXl4yCiAKK2NoZWNrX2Rlc2NyaWJlIGMtNy0qIC0tdGFncworY2hlY2tfZGVzY3JpYmUgZS0zLSogLS1maXJzdC1wYXJlbnQgLS10YWdzCisKIDogPmVyci5leHBlY3QKIGNoZWNrX2Rlc2NyaWJlIEEgLS1hbGwgQV4wCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdubyB3YXJuaW5nIHdhcyBkaXNwbGF5ZWQgZm9yIEEnICcKQEAgLTE3MSw0ICsxNzQsMjggQEAKIAogY2hlY2tfZGVzY3JpYmUgInRlc3QyLWxpZ2h0d2VpZ2h0LSoiIC0tbG9uZyAtLXRhZ3MgLS1tYXRjaD0idGVzdDItKiIgSEVBRF4KIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnbmFtZS1yZXYgd2l0aCBleGFjdCB0YWdzJyAnCisJZWNobyBBID5leHBlY3QgJiYKKwl0YWdfb2JqZWN0PSQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgJiYKKwlnaXQgbmFtZS1yZXYgLS10YWdzIC0tbmFtZS1vbmx5ICR0YWdfb2JqZWN0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCisKKwllY2hvICJBXjAiID5leHBlY3QgJiYKKwl0YWdnZWRfY29tbWl0PSQoZ2l0IHJldi1wYXJzZSAicmVmcy90YWdzL0FeMCIpICYmCisJZ2l0IG5hbWUtcmV2IC0tdGFncyAtLW5hbWUtb25seSAkdGFnZ2VkX2NvbW1pdCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkZXNjcmliZSAtLWNvbnRhaW5zIHdpdGggdGhlIGV4YWN0IHRhZ3MnICcKKwllY2hvICJBXjAiID5leHBlY3QgJiYKKwl0YWdfb2JqZWN0PSQoZ2l0IHJldi1wYXJzZSByZWZzL3RhZ3MvQSkgJiYKKwlnaXQgZGVzY3JpYmUgLS1jb250YWlucyAkdGFnX29iamVjdCA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgorCisJZWNobyAiQV4wIiA+ZXhwZWN0ICYmCisJdGFnZ2VkX2NvbW1pdD0kKGdpdCByZXYtcGFyc2UgInJlZnMvdGFncy9BXjAiKSAmJgorCWdpdCBkZXNjcmliZSAtLWNvbnRhaW5zICR0YWdnZWRfY29tbWl0ID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzAwMS1tdi5zaCBiL3QvdDcwMDEtbXYuc2gKaW5kZXggYTg0NWIxNS4uMTAxODE2ZSAxMDA3NTUKLS0tIGEvdC90NzAwMS1tdi5zaAorKysgYi90L3Q3MDAxLW12LnNoCkBAIC0yMTgsMTMgKzIxOCwxMyBAQAogCiBybSAtZiBkaXJ0eSBkaXJ0eTIKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0IG12IHNob3VsZCBvdmVyd3JpdGUgc3ltbGluayB0byBhIGZpbGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBtdiBzaG91bGQgb3ZlcndyaXRlIHN5bWxpbmsgdG8gYSBmaWxlJyAnCiAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJZWNobyAxID5tb3ZlZCAmJgotCWxuIC1zIG1vdmVkIHN5bWxpbmsgJiYKLQlnaXQgYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwl0ZXN0X2xuX3NfYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwlnaXQgYWRkIG1vdmVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG12IG1vdmVkIHN5bWxpbmsgJiYKIAlnaXQgbXYgLWYgbW92ZWQgc3ltbGluayAmJgogCSEgdGVzdCAtZSBtb3ZlZCAmJgpAQCAtMjM3LDIyICsyMzcsMjYgQEAKIAogcm0gLWYgbW92ZWQgc3ltbGluawogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdnaXQgbXYgc2hvdWxkIG92ZXJ3cml0ZSBmaWxlIHdpdGggYSBzeW1saW5rJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgbXYgc2hvdWxkIG92ZXJ3cml0ZSBmaWxlIHdpdGggYSBzeW1saW5rJyAnCiAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJZWNobyAxID5tb3ZlZCAmJgotCWxuIC1zIG1vdmVkIHN5bWxpbmsgJiYKLQlnaXQgYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwl0ZXN0X2xuX3NfYWRkIG1vdmVkIHN5bWxpbmsgJiYKKwlnaXQgYWRkIG1vdmVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG12IHN5bWxpbmsgbW92ZWQgJiYKIAlnaXQgbXYgLWYgc3ltbGluayBtb3ZlZCAmJgogCSEgdGVzdCAtZSBzeW1saW5rICYmCi0JdGVzdCAtaCBtb3ZlZCAmJgogCWdpdCB1cGRhdGUtaW5kZXggLS1yZWZyZXNoICYmCiAJZ2l0IGRpZmYtZmlsZXMgLS1xdWlldAogCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NoZWNrIG1vdmVkIHN5bWxpbmsnICcKKworCXRlc3QgLWggbW92ZWQKKycKKwogcm0gLWYgbW92ZWQgc3ltbGluawogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDcwMTEtc2tpcC13b3JrdHJlZS1yZWFkaW5nLnNoIGIvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKaW5kZXggOGYzYjU0ZC4uODhkNjBjMSAxMDA3NTUKLS0tIGEvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKKysrIGIvdC90NzAxMS1za2lwLXdvcmt0cmVlLXJlYWRpbmcuc2gKQEAgLTkxLDEyICs5MSwxMiBAQAogCXRlc3RfY21wIGV4cGVjdGVkIDEKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnbHMtZmlsZXMgLS1kZWxldGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLWZpbGVzIC0tZGVsZXRlZCcgJwogCXNldHVwX2Fic2VudCAmJgogCXRlc3QgLXogIiQoZ2l0IGxzLWZpbGVzIC1kKSIKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyAnbHMtZmlsZXMgLS1kZWxldGUnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2xzLWZpbGVzIC0tZGVsZXRlZCcgJwogCXNldHVwX2RpcnR5ICYmCiAJdGVzdCAteiAiJChnaXQgbHMtZmlsZXMgLWQpIgogJwpkaWZmIC0tZ2l0IGEvdC90NzEwMi1yZXNldC5zaCBiL3QvdDcxMDItcmVzZXQuc2gKaW5kZXggZGY4MmVjOS4uOGQ0YjUwZCAxMDA3NTUKLS0tIGEvdC90NzEwMi1yZXNldC5zaAorKysgYi90L3Q3MTAyLXJlc2V0LnNoCkBAIC05LDYgKzksMTkgQEAKIAogLiAuL3Rlc3QtbGliLnNoCiAKK2NvbW1pdF9tc2cgKCkgeworCSMgU3RyaW5nICJtb2RpZnkgMm5kIGZpbGUgKGNoYW5nZWQpIiBwYXJ0bHkgaW4gR2VybWFuCisJIyAodHJhbnNsYXRlZCB3aXRoIEdvb2dsZSBUcmFuc2xhdGUpLAorCSMgZW5jb2RlZCBpbiBVVEYtOCwgdXNlZCBhcyBhIGNvbW1pdCBsb2cgbWVzc2FnZSBiZWxvdy4KKwltc2c9Im1vZGlmeSAybmQgZmlsZSAoZ2VcMzAzXDI0NG5kZXJ0KVxuIgorCWlmIHRlc3QgLW4gIiQxIgorCXRoZW4KKwkJcHJpbnRmICIkbXNnIiB8IGljb252IC1mIHV0Zi04IC10ICIkMSIKKwllbHNlCisJCXByaW50ZiAiJG1zZyIKKwlmaQorfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjcmVhdGluZyBpbml0aWFsIGZpbGVzIGFuZCBjb21taXRzJyAnCiAJdGVzdF90aWNrICYmCiAJZWNobyAiMXN0IGZpbGUiID5maXJzdCAmJgpAQCAtMjgsNyArNDEsNyBAQAogCiAJZWNobyAiMXN0IGxpbmUgMm5kIGZpbGUiID5zZWNvbmRmaWxlICYmCiAJZWNobyAiMm5kIGxpbmUgMm5kIGZpbGUiID4+c2Vjb25kZmlsZSAmJgotCWdpdCBjb21taXQgLWEgLW0gIm1vZGlmeSAybmQgZmlsZSIgJiYKKwlnaXQgLWMgImkxOG4uY29tbWl0RW5jb2Rpbmc9aXNvODg1OS0xIiBjb21taXQgLWEgLW0gIiQoY29tbWl0X21zZyBpc284ODU5LTEpIiAmJgogCWhlYWQ1PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKQogJwogIyBnaXQgbG9nIC0tcHJldHR5PW9uZWxpbmUgIyB0byBzZWUgdGhvc2UgU0hBMSBpbnZvbHZlZApAQCAtNDQsNiArNTcsMjAgQEAKIAlkb25lIHwgdGVzdF9jbXAgLmNhdF9leHBlY3QgLQogfQogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCAtLWhhcmQgbWVzc2FnZScgJworCWhleD0kKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikgJiYKKwlnaXQgcmVzZXQgLS1oYXJkID4gLmFjdHVhbCAmJgorCWVjaG8gSEVBRCBpcyBub3cgYXQgJGhleCAkKGNvbW1pdF9tc2cpID4gLmV4cGVjdGVkICYmCisJdGVzdF9jbXAgLmV4cGVjdGVkIC5hY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncmVzZXQgLS1oYXJkIG1lc3NhZ2UgKGlzbzg4NTktMSBsb2dvdXRwdXRlbmNvZGluZyknICcKKwloZXg9JChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIpICYmCisJZ2l0IC1jICJpMThuLmxvZ091dHB1dEVuY29kaW5nPWlzbzg4NTktMSIgcmVzZXQgLS1oYXJkID4gLmFjdHVhbCAmJgorCWVjaG8gSEVBRCBpcyBub3cgYXQgJGhleCAkKGNvbW1pdF9tc2cgaXNvODg1OS0xKSA+IC5leHBlY3RlZCAmJgorCXRlc3RfY21wIC5leHBlY3RlZCAuYWN0dWFsCisnCisKID4uZGlmZl9leHBlY3QKID4uY2FjaGVkX2V4cGVjdAogY2F0ID4uY2F0X2V4cGVjdCA8PEVPRgpAQCAtMTkyLDcgKzIxOSw4IEBACiAJJ2NoYW5naW5nIGZpbGVzIGFuZCByZWRvIHRoZSBsYXN0IGNvbW1pdCBzaG91bGQgc3VjY2VlZCcgJwogCWVjaG8gIjNyZCBsaW5lIDJuZCBmaWxlIiA+PnNlY29uZGZpbGUgJiYKIAlnaXQgY29tbWl0IC1hIC1DIE9SSUdfSEVBRCAmJgotCWNoZWNrX2NoYW5nZXMgM2QzYjdiZTAxMWE1OGNhMGMxNzlhZTQ1ZDk0ZTZjODNjMGIwY2QwZCAmJgorCWhlYWQ0PSQoZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSBIRUFEKSAmJgorCWNoZWNrX2NoYW5nZXMgJGhlYWQ0ICYmCiAJdGVzdCAiJChnaXQgcmV2LXBhcnNlIE9SSUdfSEVBRCkiID0gXAogCQkJJGhlYWQ1CiAnCkBAIC0yMTEsNyArMjM5LDcgQEAKIAlnaXQgcmVzZXQgLS1oYXJkIEhFQUR+MiAmJgogCWNoZWNrX2NoYW5nZXMgZGRhZWZlMDBmMWRhMTY4NjQ1OTFjNjFmZGM3YWRiNWQ3Y2Q2Yjc0ZSAmJgogCXRlc3QgIiQoZ2l0IHJldi1wYXJzZSBPUklHX0hFQUQpIiA9IFwKLQkJCTNkM2I3YmUwMTFhNThjYTBjMTc5YWU0NWQ5NGU2YzgzYzBiMGNkMGQKKwkJCSRoZWFkNAogJwogCiA+LmRpZmZfZXhwZWN0CkBAIC0zMDMsNyArMzMxLDcgQEAKIAogCWVjaG8gIjFzdCBsaW5lIDJuZCBmaWxlIiA+c2Vjb25kZmlsZSAmJgogCWVjaG8gIjJuZCBsaW5lIDJuZCBmaWxlIiA+PnNlY29uZGZpbGUgJiYKLQlnaXQgY29tbWl0IC1hIC1tICJtb2RpZnkgMm5kIGZpbGUiICYmCisJZ2l0IC1jICJpMThuLmNvbW1pdEVuY29kaW5nPWlzbzg4NTktMSIgY29tbWl0IC1hIC1tICIkKGNvbW1pdF9tc2cgaXNvODg1OS0xKSIgJiYKIAljaGVja19jaGFuZ2VzICRoZWFkNQogJwogCkBAIC0zMjYsMTAgKzM1NCwxMSBAQAogCWdpdCBjaGVja291dCBicmFuY2gyICYmCiAJZWNobyAiM3JkIGxpbmUgaW4gYnJhbmNoMiIgPj5zZWNvbmRmaWxlICYmCiAJZ2l0IGNvbW1pdCAtYSAtbSAiY2hhbmdlIGluIGJyYW5jaDIiICYmCisJaGVhZDM9JChnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpICYmCiAKIAl0ZXN0X211c3RfZmFpbCBnaXQgcHVsbCAuIGJyYW5jaDEgJiYKIAlnaXQgcmVzZXQgLS1oYXJkICYmCi0JY2hlY2tfY2hhbmdlcyA3N2FiYjMzNzA3M2ZiNDM2OWE3YWQ2OWZmNmY1ZWMwZTRkNmI1NGJiCisJY2hlY2tfY2hhbmdlcyAkaGVhZDMKICcKIAogPi5kaWZmX2V4cGVjdApAQCAtNDU3LDcgKzQ4Niw3IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGRpZmYgLS1xdWlldCAtLSBzZWNvbmRmaWxlICYmCiAJdGVzdCAteiAiJChnaXQgZGlmZiAtLWNhY2hlZCAtLW5hbWUtb25seSkiICYmCiAJdGVzdCAtZiBzZWNvbmRmaWxlICYmCi0JdGVzdCAhIC1zIHNlY29uZGZpbGUKKwl0ZXN0X211c3RfYmVfZW1wdHkgc2Vjb25kZmlsZQogCiAnCiAKZGlmZiAtLWdpdCBhL3QvdDcyMDEtY28uc2ggYi90L3Q3MjAxLWNvLnNoCmluZGV4IGJlOTY3MmUuLjBjOWVjMGEgMTAwNzU1Ci0tLSBhL3QvdDcyMDEtY28uc2gKKysrIGIvdC90NzIwMS1jby5zaApAQCAtNDMxLDYgKzQzMSw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgXAogICAgICdjaGVja291dCB3aXRoIC0tdHJhY2sgZmFrZXMgYSBzZW5zaWJsZSAtYiA8bmFtZT4nICcKKyAgICBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4uZmV0Y2ggIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIiAmJgogICAgIGdpdCB1cGRhdGUtcmVmIHJlZnMvcmVtb3Rlcy9vcmlnaW4va29hbGEvYmVhciByZW5hbWVyICYmCiAKICAgICBnaXQgY2hlY2tvdXQgLS10cmFjayBvcmlnaW4va29hbGEvYmVhciAmJgpkaWZmIC0tZ2l0IGEvdC90NzMwMS1jbGVhbi1pbnRlcmFjdGl2ZS5zaCBiL3QvdDczMDEtY2xlYW4taW50ZXJhY3RpdmUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2FlMzk0ZQotLS0gL2Rldi9udWxsCisrKyBiL3QvdDczMDEtY2xlYW4taW50ZXJhY3RpdmUuc2gKQEAgLTAsMCArMSw0NzUgQEAKKyMhL2Jpbi9zaAorCit0ZXN0X2Rlc2NyaXB0aW9uPSdnaXQgY2xlYW4gLWkgYmFzaWMgdGVzdHMnCisKKy4gLi90ZXN0LWxpYi5zaAorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCcgJworCisJbWtkaXIgLXAgc3JjICYmCisJdG91Y2ggc3JjL3BhcnQxLmMgTWFrZWZpbGUgJiYKKwllY2hvIGJ1aWxkID4uZ2l0aWdub3JlICYmCisJZWNobyBcKi5vID4+LmdpdGlnbm9yZSAmJgorCWdpdCBhZGQgLiAmJgorCWdpdCBjb21taXQgLW0gc2V0dXAgJiYKKwl0b3VjaCBzcmMvcGFydDIuYyBSRUFETUUgJiYKKwlnaXQgYWRkIC4KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWkgKGM6IGNsZWFuIGhvdGtleSknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCWVjaG8gYyB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWkgKGNsOiBjbGVhbiBwcmVmaXgpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwllY2hvIGNsIHwgZ2l0IGNsZWFuIC1pICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaSAocXVpdCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCWVjaG8gcXVpdCB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaSAoQ3RybCtEKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJZWNobyAiXDA0IiB8IGdpdCBjbGVhbiAtaSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKGZpbHRlciBhbGwpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBmOyBlY2hvICIqIjsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoZmlsdGVyIHBhdHRlcm5zKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gZjsgZWNobyAicGFydDMuKiAqLm91dCI7IGVjaG87IGVjaG8gYykgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKGZpbHRlciBwYXR0ZXJucyAyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gZjsgZWNobyAiKiAhKi5vdXQiOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKHNlbGVjdCAtIGFsbCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gIioiOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChzZWxlY3QgLSBub25lKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gbnVtYmVyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobyAzOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgKHNlbGVjdCAtIG51bWJlciAyKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gczsgZWNobyAyIDM7IGVjaG8gNTsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0IC1mIGEub3V0ICYmCisJdGVzdCAhIC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gbnVtYmVyIDMpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBzOyBlY2hvIDMsNCA1OyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgISAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChzZWxlY3QgLSBmaWxlbmFtZXMpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgZm9vLnR4dCBiYXIudHh0IGJhei50eHQgJiYKKwkoZWNobyBzOyBlY2hvIGEub3V0IGZvIGJhIGJhcjsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBmb28udHh0ICYmCisJdGVzdCAhIC1mIGJhci50eHQgJiYKKwl0ZXN0IC1mIGJhei50eHQgJiYKKwlybSBiYXoudHh0CisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gcmFuZ2UpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBzOyBlY2hvIDEsMy00OyBlY2hvIDI7IGVjaG87IGVjaG8gYykgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0ICEgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoc2VsZWN0IC0gcmFuZ2UgMiknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gNC0gMTsgZWNobzsgZWNobyBjKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0IC1mIGRvY3MvbWFudWFsLnR4dCAmJgorCXRlc3QgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmggJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChpbnZlcnNlIHNlbGVjdCknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShlY2hvIHM7IGVjaG8gIioiOyBlY2hvIC01LSAxIC0yOyBlY2hvOyBlY2hvIGMpIHwgXAorCWdpdCBjbGVhbiAtaWQgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIChhc2spJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoZWNobyBhOyBlY2hvIFk7IGVjaG8geTsgZWNobyBubzsgZWNobyB5ZXM7IGVjaG8gYmFkOyBlY2hvKSB8IFwKKwlnaXQgY2xlYW4gLWlkICYmCisJdGVzdCAtZiBNYWtlZmlsZSAmJgorCXRlc3QgLWYgUkVBRE1FICYmCisJdGVzdCAtZiBzcmMvcGFydDEuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQyLmMgJiYKKwl0ZXN0ICEgLWYgYS5vdXQgJiYKKwl0ZXN0ICEgLWYgZG9jcy9tYW51YWwudHh0ICYmCisJdGVzdCAtZiBzcmMvcGFydDMuYyAmJgorCXRlc3QgISAtZiBzcmMvcGFydDMuaCAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0NC5oICYmCisJdGVzdCAtZiBvYmoubyAmJgorCXRlc3QgLWYgYnVpbGQvbGliLnNvCisKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0IGNsZWFuIC1pZCAoYXNrIC0gQ3RybCtEKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGVjaG8gYTsgZWNobyBZOyBlY2hvIG5vOyBlY2hvIHllczsgZWNobyAiXDA0IikgfCBcCisJZ2l0IGNsZWFuIC1pZCAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXQgY2xlYW4gLWlkIHdpdGggcHJlZml4IGFuZCBwYXRoIChmaWx0ZXIpJyAnCisKKwlta2RpciAtcCBidWlsZCBkb2NzICYmCisJdG91Y2ggYS5vdXQgc3JjL3BhcnQzLmMgc3JjL3BhcnQzLmggc3JjL3BhcnQ0LmMgc3JjL3BhcnQ0LmggXAorCWRvY3MvbWFudWFsLnR4dCBvYmoubyBidWlsZC9saWIuc28gJiYKKwkoY2QgYnVpbGQvICYmIFwKKwkgKGVjaG8gZjsgZWNobyAiZG9jcyI7IGVjaG8gIiouaCI7IGVjaG8gOyBlY2hvIGMpIHwgXAorCSBnaXQgY2xlYW4gLWlkIC4uKSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAhIC1mIGEub3V0ICYmCisJdGVzdCAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgd2l0aCBwcmVmaXggYW5kIHBhdGggKHNlbGVjdCBieSBuYW1lKScgJworCisJbWtkaXIgLXAgYnVpbGQgZG9jcyAmJgorCXRvdWNoIGEub3V0IHNyYy9wYXJ0My5jIHNyYy9wYXJ0My5oIHNyYy9wYXJ0NC5jIHNyYy9wYXJ0NC5oIFwKKwlkb2NzL21hbnVhbC50eHQgb2JqLm8gYnVpbGQvbGliLnNvICYmCisJKGNkIGJ1aWxkLyAmJiBcCisJIChlY2hvIHM7IGVjaG8gIi4uL2RvY3MvIjsgZWNobyAiLi4vc3JjL3BhcnQzLmMiOyBcCisJICBlY2hvICIuLi9zcmMvcGFydDQuYyI7ICBlY2hvOyBlY2hvIGMpIHwgXAorCSBnaXQgY2xlYW4gLWlkIC4uKSAmJgorCXRlc3QgLWYgTWFrZWZpbGUgJiYKKwl0ZXN0IC1mIFJFQURNRSAmJgorCXRlc3QgLWYgc3JjL3BhcnQxLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0Mi5jICYmCisJdGVzdCAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0ICEgLWYgc3JjL3BhcnQzLmMgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0NC5jICYmCisJdGVzdCAtZiBzcmMvcGFydDQuaCAmJgorCXRlc3QgLWYgb2JqLm8gJiYKKwl0ZXN0IC1mIGJ1aWxkL2xpYi5zbworCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBjbGVhbiAtaWQgd2l0aCBwcmVmaXggYW5kIHBhdGggKGFzayknICcKKworCW1rZGlyIC1wIGJ1aWxkIGRvY3MgJiYKKwl0b3VjaCBhLm91dCBzcmMvcGFydDMuYyBzcmMvcGFydDMuaCBzcmMvcGFydDQuYyBzcmMvcGFydDQuaCBcCisJZG9jcy9tYW51YWwudHh0IG9iai5vIGJ1aWxkL2xpYi5zbyAmJgorCShjZCBidWlsZC8gJiYgXAorCSAoZWNobyBhOyBlY2hvIFk7IGVjaG8geTsgZWNobyBubzsgZWNobyB5ZXM7IGVjaG8gYmFkOyBlY2hvKSB8IFwKKwkgZ2l0IGNsZWFuIC1pZCAuLikgJiYKKwl0ZXN0IC1mIE1ha2VmaWxlICYmCisJdGVzdCAtZiBSRUFETUUgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0MS5jICYmCisJdGVzdCAtZiBzcmMvcGFydDIuYyAmJgorCXRlc3QgISAtZiBhLm91dCAmJgorCXRlc3QgISAtZiBkb2NzL21hbnVhbC50eHQgJiYKKwl0ZXN0IC1mIHNyYy9wYXJ0My5jICYmCisJdGVzdCAhIC1mIHNyYy9wYXJ0My5oICYmCisJdGVzdCAtZiBzcmMvcGFydDQuYyAmJgorCXRlc3QgLWYgc3JjL3BhcnQ0LmggJiYKKwl0ZXN0IC1mIG9iai5vICYmCisJdGVzdCAtZiBidWlsZC9saWIuc28KKworJworCit0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDAtc3VibW9kdWxlLWJhc2ljLnNoIGIvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKaW5kZXggZmYyNjUzNS4uYTM5ZDA3NCAxMDA3NTUKLS0tIGEvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKKysrIGIvdC90NzQwMC1zdWJtb2R1bGUtYmFzaWMuc2gKQEAgLTE4LDYgKzE4LDE2IEBACiAJZ2l0IGJyYW5jaCBpbml0aWFsCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbmZpZ3VyYXRpb24gcGFyc2luZycgJworCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgLmdpdG1vZHVsZXMiICYmCisJY2F0ID4uZ2l0bW9kdWxlcyA8PC1cRU9GICYmCisJW3N1Ym1vZHVsZSAicyJdCisJCXBhdGgKKwkJaWdub3JlCisJRU9GCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN0YXR1cworJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCAtIHJlcG9zaXRvcnkgaW4gaW5pdCBzdWJkaXJlY3RvcnknICcKIAlta2RpciBpbml0ICYmCiAJKApAQCAtNzgsNyArODgsNyBAQAogCSgKIAkJY2QgYWRkdGVzdCAmJgogCQlnaXQgc3VibW9kdWxlIGFkZCAtcSAiJHN1Ym1vZHVybCIgc3VibW9kID5hY3R1YWwgJiYKLQkJdGVzdCAhIC1zIGFjdHVhbCAmJgorCQl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCiAJCWVjaG8gImdpdGRpcjogLi4vLmdpdC9tb2R1bGVzL3N1Ym1vZCIgPmV4cGVjdCAmJgogCQl0ZXN0X2NtcCBleHBlY3Qgc3VibW9kLy5naXQgJiYKIAkJKApAQCAtMjEyLDYgKzIyMiwzMiBAQAogCXRlc3RfY21wIGVtcHR5IHVudHJhY2tlZAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgYWRkIGluIHN1YmRpcmVjdG9yeScgJworCWVjaG8gInJlZnMvaGVhZHMvbWFzdGVyIiA+ZXhwZWN0ICYmCisJPmVtcHR5ICYmCisKKwlta2RpciBhZGR0ZXN0L3N1YiAmJgorCSgKKwkJY2QgYWRkdGVzdC9zdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgIiRzdWJtb2R1cmwiIC4uL3JlYWxzdWJtb2QzICYmCisJCWdpdCBzdWJtb2R1bGUgaW5pdAorCSkgJiYKKworCXJtIC1mIGhlYWRzIGhlYWQgdW50cmFja2VkICYmCisJaW5zcGVjdCBhZGR0ZXN0L3JlYWxzdWJtb2QzIC4uLy4uICYmCisJdGVzdF9jbXAgZXhwZWN0IGhlYWRzICYmCisJdGVzdF9jbXAgZXhwZWN0IGhlYWQgJiYKKwl0ZXN0X2NtcCBlbXB0eSB1bnRyYWNrZWQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGFkZCBpbiBzdWJkaXJlY3Rvcnkgd2l0aCByZWxhdGl2ZSBwYXRoIHNob3VsZCBmYWlsJyAnCisJKAorCQljZCBhZGR0ZXN0L3N1YiAmJgorCQl0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIGFkZCAuLi8uLi8gc3VibW9kMyAyPi4uLy4uL291dHB1dC5lcnIKKwkpICYmCisJdGVzdF9pMThuZ3JlcCB0b3BsZXZlbCBvdXRwdXQuZXJyCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIC0gYWRkIGFuIGV4YW1wbGUgZW50cnkgdG8gLmdpdG1vZHVsZXMnICcKIAlHSVRfQ09ORklHPS5naXRtb2R1bGVzIFwKIAlnaXQgY29uZmlnIHN1Ym1vZHVsZS5leGFtcGxlLnVybCBnaXQ6Ly9leGFtcGxlLmNvbS9pbml0LmdpdApAQCAtMzA4LDcgKzM0NCw3IEBACiAKIAlta2RpciBpbml0ICYmCiAJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLXEgPnVwZGF0ZS5vdXQgJiYKLQl0ZXN0ICEgLXMgdXBkYXRlLm91dCAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSB1cGRhdGUub3V0ICYmCiAKIAlpbnNwZWN0IGluaXQgJiYKIAl0ZXN0X2NtcCBleHBlY3QgaGVhZC1zaGExCkBAIC0zMTksNiArMzU1LDI2IEBACiAJZ3JlcCAiXiAkcmV2MSIgbGlzdAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgInVwLXRvLWRhdGUiIGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbWtkaXIgLXAgc3ViICYmCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdGF0dXMgPi4uL2xpc3QKKwkpICYmCisJZ3JlcCAiXiAkcmV2MSIgbGlzdCAmJgorCWdyZXAgIlxcLlxcLi9pbml0IiBsaXN0CisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N0YXR1cyAidXAtdG8tZGF0ZSIgZnJvbSBzdWJkaXJlY3Rvcnkgd2l0aCBwYXRoJyAnCisJbWtkaXIgLXAgc3ViICYmCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdGF0dXMgLi4vaW5pdCA+Li4vbGlzdAorCSkgJiYKKwlncmVwICJeICRyZXYxIiBsaXN0ICYmCisJZ3JlcCAiXFwuXFwuL2luaXQiIGxpc3QKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc3RhdHVzIHNob3VsZCBiZSAibW9kaWZpZWQiIGFmdGVyIHN1Ym1vZHVsZSBjb21taXQnICcKIAkoCiAJCWNkIGluaXQgJiYKQEAgLTM5OSw2ICs0NTUsMjUgQEAKIAlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIGluaXQvLmdpdAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUgLS1pbml0IGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbXYgaW5pdCBpbml0MiAmJgorCWdpdCBjb25maWcgLWYgLmdpdG1vZHVsZXMgc3VibW9kdWxlLmV4YW1wbGUudXJsICIkKHB3ZCkvaW5pdDIiICYmCisJZ2l0IGNvbmZpZyAtLXJlbW92ZS1zZWN0aW9uIHN1Ym1vZHVsZS5leGFtcGxlICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNvbmZpZyBzdWJtb2R1bGUuZXhhbXBsZS51cmwgJiYKKworCW1rZGlyIC1wIHN1YiAmJgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC4uL2luaXQgPnVwZGF0ZS5vdXQgJiYKKwkJY2F0IHVwZGF0ZS5vdXQgJiYKKwkJdGVzdF9pMThuZ3JlcCAibm90IGluaXRpYWxpemVkIiB1cGRhdGUub3V0ICYmCisJCXRlc3RfbXVzdF9mYWlsIGdpdCByZXYtcGFyc2UgLS1yZXNvbHZlLWdpdC1kaXIgLi4vaW5pdC8uZ2l0ICYmCisKKwkJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC4uL2luaXQKKwkpICYmCisJZ2l0IHJldi1wYXJzZSAtLXJlc29sdmUtZ2l0LWRpciBpbml0Ly5naXQKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGFkZCBmaWxlcyBmcm9tIGEgc3VibW9kdWxlJyAnCiAKIAlnaXQgcmVzZXQgLS1oYXJkICYmCkBAIC02OTYsNyArNzcxLDcgQEAKIAkJcm0gLXJmIHJlcG8gJiYKIAkJZ2l0IHJtIHJlcG8gJiYKIAkJZ2l0IHN1Ym1vZHVsZSBhZGQgLXEgLS1uYW1lIHJlcG9fbmV3ICIkc3VibW9kdXJsL2JhcmUuZ2l0IiByZXBvID5hY3R1YWwgJiYKLQkJdGVzdCAhIC1zIGFjdHVhbCAmJgorCQl0ZXN0X211c3RfYmVfZW1wdHkgYWN0dWFsICYmCiAJCWVjaG8gImdpdGRpcjogLi4vLmdpdC9tb2R1bGVzL3N1Ym1vZCIgPmV4cGVjdCAmJgogCQl0ZXN0X2NtcCBleHBlY3Qgc3VibW9kLy5naXQgJiYKIAkJKApAQCAtNzcyLDYgKzg0NywyMSBAQAogCXJtZGlyIGluaXQKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGRlaW5pdCBmcm9tIHN1YmRpcmVjdG9yeScgJworCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAmJgorCWdpdCBjb25maWcgc3VibW9kdWxlLmV4YW1wbGUuZm9vIGJhciAmJgorCW1rZGlyIC1wIHN1YiAmJgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgZGVpbml0IC4uL2luaXQgPi4uL291dHB1dAorCSkgJiYKKwlncmVwICJcXC5cXC4vaW5pdCIgb3V0cHV0ICYmCisJdGVzdCAteiAiJChnaXQgY29uZmlnIC0tZ2V0LXJlZ2V4cCAic3VibW9kdWxlXC5leGFtcGxlXC4iKSIgJiYKKwl0ZXN0IC1uICIkKGdpdCBjb25maWcgLS1nZXQtcmVnZXhwICJzdWJtb2R1bGVcLmV4YW1wbGUyXC4iKSIgJiYKKwl0ZXN0IC1mIGV4YW1wbGUyLy5naXQgJiYKKwlybWRpciBpbml0CisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSBkZWluaXQgLiBkZWluaXRzIGFsbCBpbml0aWFsaXplZCBzdWJtb2R1bGVzJyAnCiAJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0ICYmCiAJZ2l0IGNvbmZpZyBzdWJtb2R1bGUuZXhhbXBsZS5mb28gYmFyICYmCkBAIC04NjgsNCArOTU4LDM1IEBACiAJdGVzdCAtbiAiJChnaXQgY29uZmlnIC0tZ2V0LXJlZ2V4cCAic3VibW9kdWxlXC5leGFtcGxlXC4iKSIKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHdpdGggVVRGLTggbmFtZScgJworCXN2bmFtZT0kKHByaW50ZiAiXDMwM1wyNDUgXDMwM1wyNDRcMzAzXDI2NiIpICYmCisJbWtkaXIgIiRzdm5hbWUiICYmCisJKAorCQljZCAiJHN2bmFtZSIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJPnN1YiAmJgorCQlnaXQgYWRkIHN1YiAmJgorCQlnaXQgY29tbWl0IC1tICJpbml0IHN1YiIKKwkpICYmCisJdGVzdF9jb25maWcgY29yZS5wcmVjb21wb3NldW5pY29kZSB0cnVlICYmCisJZ2l0IHN1Ym1vZHVsZSBhZGQgLi8iJHN2bmFtZSIgJiYKKwlnaXQgc3VibW9kdWxlID4mMiAmJgorCXRlc3QgLW4gIiQoZ2l0IHN1Ym1vZHVsZSB8IGdyZXAgIiRzdm5hbWUiKSIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIGFkZCBjbG9uZSBzaGFsbG93IHN1Ym1vZHVsZScgJworCW1rZGlyIHN1cGVyICYmCisJcHdkPSQocHdkKQorCSgKKwkJY2Qgc3VwZXIgJiYKKwkJZ2l0IGluaXQgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgLS1kZXB0aD0xIGZpbGU6Ly8iJHB3ZCIvZXhhbXBsZTIgc3VibW9kdWxlICYmCisJCSgKKwkJCWNkIHN1Ym1vZHVsZSAmJgorCQkJdGVzdCAxID0gJChnaXQgbG9nIC0tb25lbGluZSB8IHdjIC1sKQorCQkpCisJKQorJworCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaCBiL3QvdDc0MDEtc3VibW9kdWxlLXN1bW1hcnkuc2gKaW5kZXggMzBiNDI5ZS4uYWMyNDM0YyAxMDA3NTUKLS0tIGEvdC90NzQwMS1zdWJtb2R1bGUtc3VtbWFyeS5zaAorKysgYi90L3Q3NDAxLXN1Ym1vZHVsZS1zdW1tYXJ5LnNoCkBAIC00NSw2ICs0NSw0MiBAQAogCXRlc3RfY21wIGV4cGVjdGVkIGFjdHVhbAogIgogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhZGRlZCBzdWJtb2R1bGUgKHN1YmRpcmVjdG9yeSknICIKKwlta2RpciBzdWIgJiYKKwkoCisJCWNkIHN1YiAmJgorCQlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPi4uL2FjdHVhbAorCSkgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorKiAuLi9zbTEgMDAwMDAwMC4uLiRoZWFkMSAoMik6CisgID4gQWRkIGZvbzIKKworRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2FkZGVkIHN1Ym1vZHVsZSAoc3ViZGlyZWN0b3J5IG9ubHkpJyAiCisJKAorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC4gPi4uL2FjdHVhbAorCSkgJiYKKwk+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnYWRkZWQgc3VibW9kdWxlIChzdWJkaXJlY3Rvcnkgd2l0aCBleHBsaWNpdCBwYXRoKScgIgorCSgKKwkJY2Qgc3ViICYmCisJCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAuLi9zbTEgPi4uL2FjdHVhbAorCSkgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorKiAuLi9zbTEgMDAwMDAwMC4uLiRoZWFkMSAoMik6CisgID4gQWRkIGZvbzIKKworRU9GCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisiCisKIGNvbW1pdF9maWxlIHNtMSAmJgogaGVhZDI9JChhZGRfZmlsZSBzbTEgZm9vMykKIApAQCAtNzYsOCArMTEyLDggQEAKICkKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbW9kaWZpZWQgc3VibW9kdWxlKGJhY2t3YXJkKScgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDIuLi4kaGVhZDMgKDIpOgogICA8IEFkZCBmb28zCiAgIDwgQWRkIGZvbzIKQEAgLTg5LDggKzEyNSw4IEBACiBoZWFkND0kKGFkZF9maWxlIHNtMSBmb280IGZvbzUpICYmCiBoZWFkNF9mdWxsPSQoR0lUX0RJUj1zbTEvLmdpdCBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5IEhFQUQpCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdtb2RpZmllZCBzdWJtb2R1bGUoYmFja3dhcmQgYW5kIGZvcndhcmQpJyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkMi4uLiRoZWFkNCAoNCk6CiAgID4gQWRkIGZvbzUKICAgPiBBZGQgZm9vNApAQCAtMTAyLDE1ICsxMzgsMTUgQEAKICIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnLS1zdW1tYXJ5LWxpbWl0JyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC1uIDMgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC1uIDMgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDIuLi4kaGVhZDQgKDQpOgogICA+IEFkZCBmb281CiAgID4gQWRkIGZvbzQKICAgPCBBZGQgZm9vMwogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogY29tbWl0X2ZpbGUgc20xICYmCkBAIC0xMjIsOCArMTU4LDggQEAKIG12IHNtMS1iYWsgc20xCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3R5cGVjaGFuZ2VkIHN1Ym1vZHVsZShzdWJtb2R1bGUtPmJsb2IpLCAtLWNhY2hlZCcgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWNhY2hlZCA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgLS1jYWNoZWQgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDQoc3VibW9kdWxlKS0+JGhlYWQ1KGJsb2IpICgzKToKICAgPCBBZGQgZm9vNQogCkBAIC0xMzIsNTkgKzE2OCw1OSBAQAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICd0eXBlY2hhbmdlZCBzdWJtb2R1bGUoc3VibW9kdWxlLT5ibG9iKSwgLS1maWxlcycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZpbGVzID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZpbGVzID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ1KGJsb2IpLT4kaGVhZDQoc3VibW9kdWxlKSAoMyk6CiAgID4gQWRkIGZvbzUKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogcm0gLXJmIHNtMSAmJgogZ2l0IGNoZWNrb3V0LWluZGV4IHNtMQogdGVzdF9leHBlY3Rfc3VjY2VzcyAndHlwZWNoYW5nZWQgc3VibW9kdWxlKHN1Ym1vZHVsZS0+YmxvYiknICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ0KHN1Ym1vZHVsZSktPiRoZWFkNShibG9iKToKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogcm0gLWYgc20xICYmCiB0ZXN0X2NyZWF0ZV9yZXBvIHNtMSAmJgogaGVhZDY9JChhZGRfZmlsZSBzbTEgZm9vNiBmb283KQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbm9uZXhpc3RlbnQgY29tbWl0JyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkNC4uLiRoZWFkNjoKICAgV2Fybjogc20xIGRvZXNuJ3QgY29udGFpbiBjb21taXQgJGhlYWQ0X2Z1bGwKIAogRU9GCi0gICAgdGVzdF9pMThuY21wIGFjdHVhbCBleHBlY3RlZAorCXRlc3RfaTE4bmNtcCBhY3R1YWwgZXhwZWN0ZWQKICIKIAogY29tbWl0X2ZpbGUKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3R5cGVjaGFuZ2VkIHN1Ym1vZHVsZShibG9iLT5zdWJtb2R1bGUpJyAiCi0gICAgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCisJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKICogc20xICRoZWFkNShibG9iKS0+JGhlYWQ2KHN1Ym1vZHVsZSkgKDIpOgogICA+IEFkZCBmb283CiAKIEVPRgotICAgIHRlc3RfaTE4bmNtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIGNvbW1pdF9maWxlIHNtMSAmJgogcm0gLXJmIHNtMQogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZGVsZXRlZCBzdWJtb2R1bGUnICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5ID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ2Li4uMDAwMDAwMDoKIAogRU9GCi0gICAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIHRlc3RfY3JlYXRlX3JlcG8gc20yICYmCkBAIC0xOTIsNDMgKzIyOCw0MyBAQAogZ2l0IGFkZCBzbTIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbXVsdGlwbGUgc3VibW9kdWxlcycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSA+YWN0dWFsICYmCi0gICAgY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMSAkaGVhZDYuLi4wMDAwMDAwOgogCiAqIHNtMiAwMDAwMDAwLi4uJGhlYWQ3ICgyKToKICAgPiBBZGQgZm9vOQogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncGF0aCBmaWx0ZXInICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgc20yID5hY3R1YWwgJiYKLSAgICBjYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSBzbTIgPmFjdHVhbCAmJgorCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCiAqIHNtMiAwMDAwMDAwLi4uJGhlYWQ3ICgyKToKICAgPiBBZGQgZm9vOQogCiBFT0YKLSAgICB0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKICIKIAogY29tbWl0X2ZpbGUgc20yCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXZlbiBjb21taXQnICIKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgSEVBRF4gPmFjdHVhbCAmJgotICAgIGNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCisJZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IEhFQUReID5hY3R1YWwgJiYKKwljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgogKiBzbTEgJGhlYWQ2Li4uMDAwMDAwMDoKIAogKiBzbTIgMDAwMDAwMC4uLiRoZWFkNyAoMik6CiAgID4gQWRkIGZvbzkKIAogRU9GCi0gICAgdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCisJdGVzdF9jbXAgZXhwZWN0ZWQgYWN0dWFsCiAiCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJy0tZm9yLXN0YXR1cycgIgotICAgIGdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZvci1zdGF0dXMgSEVBRF4gPmFjdHVhbCAmJgotICAgIHRlc3RfaTE4bmNtcCBhY3R1YWwgLSA8PEVPRgorCWdpdCBzdWJtb2R1bGUgc3VtbWFyeSAtLWZvci1zdGF0dXMgSEVBRF4gPmFjdHVhbCAmJgorCXRlc3RfaTE4bmNtcCBhY3R1YWwgLSA8PEVPRgogIyBTdWJtb2R1bGUgY2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CiAjCiAjICogc20xICRoZWFkNi4uLjAwMDAwMDA6CkBAIC0yNDAsMTQgKzI3NiwxNCBAQAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdmYWlsIHdoZW4gdXNpbmcgLS1maWxlcyB0b2dldGhlciB3aXRoIC0tY2FjaGVkJyAiCi0gICAgdGVzdF9tdXN0X2ZhaWwgZ2l0IHN1Ym1vZHVsZSBzdW1tYXJ5IC0tZmlsZXMgLS1jYWNoZWQKKwl0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIHN1bW1hcnkgLS1maWxlcyAtLWNhY2hlZAogIgogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdzaG91bGQgbm90IGZhaWwgaW4gYW4gZW1wdHkgcmVwbycgIgotICAgIGdpdCBpbml0IHh5enp5ICYmCi0gICAgY2QgeHl6enkgJiYKLSAgICBnaXQgc3VibW9kdWxlIHN1bW1hcnkgPm91dHB1dCAyPiYxICYmCi0gICAgdGVzdF9jbXAgb3V0cHV0IC9kZXYvbnVsbAorCWdpdCBpbml0IHh5enp5ICYmCisJY2QgeHl6enkgJiYKKwlnaXQgc3VibW9kdWxlIHN1bW1hcnkgPm91dHB1dCAyPiYxICYmCisJdGVzdF9jbXAgb3V0cHV0IC9kZXYvbnVsbAogIgogCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDMtc3VibW9kdWxlLXN5bmMuc2ggYi90L3Q3NDAzLXN1Ym1vZHVsZS1zeW5jLnNoCmluZGV4IDk0ZTI2YzQuLjc5YmMxMzUgMTAwNzU1Ci0tLSBhL3QvdDc0MDMtc3VibW9kdWxlLXN5bmMuc2gKKysrIGIvdC90NzQwMy1zdWJtb2R1bGUtc3luYy5zaApAQCAtMTEsMjE2ICsxMSwzMzggQEAKIC4gLi90ZXN0LWxpYi5zaAogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzIHNldHVwICcKLQllY2hvIGZpbGUgPiBmaWxlICYmCisJZWNobyBmaWxlID5maWxlICYmCiAJZ2l0IGFkZCBmaWxlICYmCiAJdGVzdF90aWNrICYmCiAJZ2l0IGNvbW1pdCAtbSB1cHN0cmVhbSAmJgogCWdpdCBjbG9uZSAuIHN1cGVyICYmCiAJZ2l0IGNsb25lIHN1cGVyIHN1Ym1vZHVsZSAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vc3VibW9kdWxlIHN1Yi1zdWJtb2R1bGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLW0gInN1Yi1zdWJtb2R1bGUiCisJKAorCQljZCBzdWJtb2R1bGUgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vc3VibW9kdWxlIHN1Yi1zdWJtb2R1bGUgJiYKKwkJdGVzdF90aWNrICYmCisJCWdpdCBjb21taXQgLW0gInN1Yi1zdWJtb2R1bGUiCiAJKSAmJgotCShjZCBzdXBlciAmJgotCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9zdWJtb2R1bGUgc3VibW9kdWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1tICJzdWJtb2R1bGUiCisJKAorCQljZCBzdXBlciAmJgorCQlnaXQgc3VibW9kdWxlIGFkZCAuLi9zdWJtb2R1bGUgc3VibW9kdWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1tICJzdWJtb2R1bGUiCiAJKSAmJgogCWdpdCBjbG9uZSBzdXBlciBzdXBlci1jbG9uZSAmJgotCShjZCBzdXBlci1jbG9uZSAmJiBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUpICYmCisJKAorCQljZCBzdXBlci1jbG9uZSAmJgorCQlnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKKwkpICYmCiAJZ2l0IGNsb25lIHN1cGVyIGVtcHR5LWNsb25lICYmCi0JKGNkIGVtcHR5LWNsb25lICYmIGdpdCBzdWJtb2R1bGUgaW5pdCkgJiYKKwkoCisJCWNkIGVtcHR5LWNsb25lICYmCisJCWdpdCBzdWJtb2R1bGUgaW5pdAorCSkgJiYKIAlnaXQgY2xvbmUgc3VwZXIgdG9wLW9ubHktY2xvbmUgJiYKIAlnaXQgY2xvbmUgc3VwZXIgcmVsYXRpdmUtY2xvbmUgJiYKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlKSAmJgorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlCisJKSAmJgogCWdpdCBjbG9uZSBzdXBlciByZWN1cnNpdmUtY2xvbmUgJiYKLQkoY2QgcmVjdXJzaXZlLWNsb25lICYmIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZSkKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hhbmdlIHN1Ym1vZHVsZScgJwotCShjZCBzdWJtb2R1bGUgJiYKLQkgZWNobyBzZWNvbmQgbGluZSA+PiBmaWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2Ugc3VibW9kdWxlIgorCSgKKwkJY2QgcmVjdXJzaXZlLWNsb25lICYmCisJCWdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZQogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2hhbmdlIHN1Ym1vZHVsZScgJworCSgKKwkJY2Qgc3VibW9kdWxlICYmCisJCWVjaG8gc2Vjb25kIGxpbmUgPj5maWxlICYmCisJCXRlc3RfdGljayAmJgorCQlnaXQgY29tbWl0IC1hIC1tICJjaGFuZ2Ugc3VibW9kdWxlIgorCSkKKycKKworcmVzZXRfc3VibW9kdWxlX3VybHMgKCkgeworCWxvY2FsIHJvb3QKKwlyb290PSQocHdkKSAmJgorCSgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwgIiRyb290L3N1Ym1vZHVsZSIKKwkpICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsICIkcm9vdC9zdWJtb2R1bGUiCisJKQorfQorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjaGFuZ2Ugc3VibW9kdWxlIHVybCcgJwotCShjZCBzdXBlciAmJgotCSBjZCBzdWJtb2R1bGUgJiYKLQkgZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgotCSBnaXQgcHVsbAorCSgKKwkJY2Qgc3VwZXIgJiYKKwkJY2Qgc3VibW9kdWxlICYmCisJCWdpdCBjaGVja291dCBtYXN0ZXIgJiYKKwkJZ2l0IHB1bGwKIAkpICYmCiAJbXYgc3VibW9kdWxlIG1vdmVkLXN1Ym1vZHVsZSAmJgotCShjZCBtb3ZlZC1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3ViLXN1Ym1vZHVsZS51cmwgLi4vbW92ZWQtc3VibW9kdWxlICYmCi0JIHRlc3RfdGljayAmJgotCSBnaXQgY29tbWl0IC1hIC1tIG1vdmVkLXN1Yi1zdWJtb2R1bGUKKwkoCisJCWNkIG1vdmVkLXN1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWItc3VibW9kdWxlLnVybCAuLi9tb3ZlZC1zdWJtb2R1bGUgJiYKKwkJdGVzdF90aWNrICYmCisJCWdpdCBjb21taXQgLWEgLW0gbW92ZWQtc3ViLXN1Ym1vZHVsZQogCSkgJiYKLQkoY2Qgc3VwZXIgJiYKLQkgZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCAuLi9tb3ZlZC1zdWJtb2R1bGUgJiYKLQkgdGVzdF90aWNrICYmCi0JIGdpdCBjb21taXQgLWEgLW0gbW92ZWQtc3VibW9kdWxlCisJKAorCQljZCBzdXBlciAmJgorCQlnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsIC4uL21vdmVkLXN1Ym1vZHVsZSAmJgorCQl0ZXN0X3RpY2sgJiYKKwkJZ2l0IGNvbW1pdCAtYSAtbSBtb3ZlZC1zdWJtb2R1bGUKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIHNob3VsZCB1cGRhdGUgc3VibW9kdWxlIFVSTHMnICcKLQkoY2Qgc3VwZXItY2xvbmUgJiYKLQkgZ2l0IHB1bGwgLS1uby1yZWN1cnNlLXN1Ym1vZHVsZXMgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jCisJKAorCQljZCBzdXBlci1jbG9uZSAmJgorCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMKIAkpICYmCi0JdGVzdCAtZCAiJChjZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgLWQgIiQoCisJCWNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgorCQlnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsCiAJKSIgJiYKLQl0ZXN0ICEgLWQgIiQoY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgISAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAogCSkiICYmCi0JKGNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgotCSBnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JIGdpdCBwdWxsCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgcHVsbAogCSkgJiYKLQkoY2Qgc3VwZXItY2xvbmUgJiYKLQkgdGVzdCAtZCAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBzaG91bGQgdXBkYXRlIGFsbCBzdWJtb2R1bGUgVVJMcycgJwotCShjZCBzdXBlci1jbG9uZSAmJgotCSAoY2Qgc3VibW9kdWxlICYmCi0JICBnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcwotCSApICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAtLXJlY3Vyc2l2ZQorCSgKKwkJY2Qgc3VwZXItY2xvbmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcworCQkpICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAtLXJlY3Vyc2l2ZQogCSkgJiYKLQl0ZXN0IC1kICIkKGNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZSAmJgotCSBnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKIAkpIiAmJgotCXRlc3QgLWQgIiQoY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKLQkgZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCXRlc3QgLWQgIiQoCisJCWNkIHN1cGVyLWNsb25lL3N1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKIAkpIiAmJgotCShjZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgotCSBnaXQgY2hlY2tvdXQgbWFzdGVyICYmCi0JIGdpdCBwdWxsCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJCWdpdCBwdWxsCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdyZXNldCBzdWJtb2R1bGUgVVJMcycgJworCXJlc2V0X3N1Ym1vZHVsZV91cmxzIHN1cGVyLWNsb25lCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIHNob3VsZCB1cGRhdGUgc3VibW9kdWxlIFVSTHMgLSBzdWJkaXJlY3RvcnknICcKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCWdpdCBwdWxsIC0tbm8tcmVjdXJzZS1zdWJtb2R1bGVzICYmCisJCW1rZGlyIC1wIHN1YiAmJgorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jID4uLi8uLi9vdXRwdXQKKwkpICYmCisJZ3JlcCAiXFwuXFwuL3N1Ym1vZHVsZSIgb3V0cHV0ICYmCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlICYmCisJCWdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwKKwkpIiAmJgorCXRlc3QgISAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgcHVsbAorCSkgJiYKKwkoCisJCWNkIHN1cGVyLWNsb25lICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBzaG91bGQgdXBkYXRlIGFsbCBzdWJtb2R1bGUgVVJMcyAtIHN1YmRpcmVjdG9yeScgJworCSgKKwkJY2Qgc3VwZXItY2xvbmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQlnaXQgcHVsbCAtLW5vLXJlY3Vyc2Utc3VibW9kdWxlcworCQkpICYmCisJCW1rZGlyIC1wIHN1YiAmJgorCQljZCBzdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlID4uLi8uLi9vdXRwdXQKKwkpICYmCisJZ3JlcCAiXFwuXFwuL3N1Ym1vZHVsZS9zdWItc3VibW9kdWxlIiBvdXRwdXQgJiYKKwl0ZXN0IC1kICIkKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJdGVzdCAtZCAiJCgKKwkJY2Qgc3VwZXItY2xvbmUvc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybAorCSkiICYmCisJKAorCQljZCBzdXBlci1jbG9uZS9zdWJtb2R1bGUvc3ViLXN1Ym1vZHVsZSAmJgorCQlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJCWdpdCBwdWxsCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBzaG91bGQgdXBkYXRlIGtub3duIHN1Ym1vZHVsZSBVUkxzJyAnCi0JKGNkIGVtcHR5LWNsb25lICYmCi0JIGdpdCBwdWxsICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCSB0ZXN0IC1kICIkKGdpdCBjb25maWcgc3VibW9kdWxlLnN1Ym1vZHVsZS51cmwpIgorCSgKKwkJY2QgZW1wdHktY2xvbmUgJiYKKwkJZ2l0IHB1bGwgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCisJCXRlc3QgLWQgIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBzaG91bGQgbm90IHZpdmlmeSB1bmludGVyZXN0aW5nIHN1Ym1vZHVsZScgJwotCShjZCB0b3Atb25seS1jbG9uZSAmJgotCSBnaXQgcHVsbCAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkgdGVzdCAteiAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jIHN1Ym1vZHVsZSAmJgotCSB0ZXN0IC16ICIkKGdpdCBjb25maWcgc3VibW9kdWxlLnN1Ym1vZHVsZS51cmwpIgorCSgKKwkJY2QgdG9wLW9ubHktY2xvbmUgJiYKKwkJZ2l0IHB1bGwgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCisJCXRlc3QgLXogIiQoZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVybCkiICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyBzdWJtb2R1bGUgJiYKKwkJdGVzdCAteiAiJChnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXJsKSIKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSBmb28nICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiBmb28gJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZhaWxzIHdpdGg6ICJjYW5ub3Qgc3RyaXAgb2ZmIHVybCBmb28KLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgZmFpbHMgd2l0aDogImNhbm5vdCBzdHJpcCBvZmYgdXJsIGZvbworCQkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBoYW5kbGVzIG9yaWdpbiBVUkwgb2YgdGhlIGZvcm0gZm9vL2JhcicgJwotCShjZCByZWxhdGl2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIGZvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZvby9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vZm9vL3N1Ym1vZHVsZSIKLQkpCi0JKGNkIHN1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiICE9ICIuLi8uLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIGZvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uL2Zvby9zdWJtb2R1bGUiCisJCSkgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiICE9ICIuLi8uLi9mb28vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlIiBwcm9wYWdhdGVzIGNoYW5nZXMgaW4gb3JpZ2luJyAnCi0JKGNkIHJlY3Vyc2l2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIGZvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jIC0tcmVjdXJzaXZlICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIGZvby9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vZm9vL3N1Ym1vZHVsZSIKLQkpCi0JKGNkIHN1Ym1vZHVsZS9zdWItc3VibW9kdWxlICYmCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCi0JKQorCSgKKwkJY2QgcmVjdXJzaXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgLS1yZWN1cnNpdmUgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIGZvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uL2Zvby9zdWJtb2R1bGUiCisJCSkgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlL3N1Yi1zdWJtb2R1bGUgJiYKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuL2ZvbycgJwotCShjZCByZWxhdGl2ZS1jbG9uZSAmJgotCSBnaXQgcmVtb3RlIHNldC11cmwgb3JpZ2luIC4vZm9vICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgI2FjdHVhbCAuL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9zdWJtb2R1bGUiCi0JKQorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuL2ZvbyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIC4vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuL2Zvby9iYXInICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuL2Zvby9iYXIgJiYKLQkgZ2l0IHN1Ym1vZHVsZSBzeW5jICYmCi0JKGNkIHN1Ym1vZHVsZSAmJgotCSAjYWN0dWFsIC4vZm9vL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi9mb28vYmFyICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgLi9mb28vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi9mb28vc3VibW9kdWxlIgorCQkpCiAJKQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICciZ2l0IHN1Ym1vZHVsZSBzeW5jIiBoYW5kbGVzIG9yaWdpbiBVUkwgb2YgdGhlIGZvcm0gLi4vZm9vJyAnCi0JKGNkIHJlbGF0aXZlLWNsb25lICYmCi0JIGdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vICYmCi0JIGdpdCBzdWJtb2R1bGUgc3luYyAmJgotCShjZCBzdWJtb2R1bGUgJiYKLQkgI2FjdHVhbCAuLi9zdWJtb2R1bGUKLQkgdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vLi4vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vICYmCisJCWdpdCBzdWJtb2R1bGUgc3luYyAmJgorCQkoCisJCQljZCBzdWJtb2R1bGUgJiYKKwkJCSNhY3R1YWwgLi4vc3VibW9kdWxlCisJCQl0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi8uLi9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuLi9mb28vYmFyJyAnCi0JKGNkIHJlbGF0aXZlLWNsb25lICYmCi0JIGdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vL2JhciAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkoY2Qgc3VibW9kdWxlICYmCi0JICNhY3R1YWwgLi4vZm9vL3N1Ym1vZHVsZQotCSB0ZXN0ICIkKGdpdCBjb25maWcgcmVtb3RlLm9yaWdpbi51cmwpIiA9ICIuLi8uLi9mb28vc3VibW9kdWxlIgotCSkKKwkoCisJCWNkIHJlbGF0aXZlLWNsb25lICYmCisJCWdpdCByZW1vdGUgc2V0LXVybCBvcmlnaW4gLi4vZm9vL2JhciAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2Qgc3VibW9kdWxlICYmCisJCQkjYWN0dWFsIC4uL2Zvby9zdWJtb2R1bGUKKwkJCXRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uL2Zvby9zdWJtb2R1bGUiCisJCSkKIAkpCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJnaXQgc3VibW9kdWxlIHN5bmMiIGhhbmRsZXMgb3JpZ2luIFVSTCBvZiB0aGUgZm9ybSAuLi9mb28vYmFyIHdpdGggZGVlcGx5IG5lc3RlZCBzdWJtb2R1bGUnICcKLQkoY2QgcmVsYXRpdmUtY2xvbmUgJiYKLQkgZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuLi9mb28vYmFyICYmCi0JIG1rZGlyIC1wIGEvYi9jICYmCi0JICggY2QgYS9iL2MgJiYKLQkgICBnaXQgaW5pdCAmJgotCSAgIDo+IC5naXRpZ25vcmUgJiYKLQkgICBnaXQgYWRkIC5naXRpZ25vcmUgJiYKLQkgICB0ZXN0X3RpY2sgJiYKLQkgICBnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIgKSAmJgotCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9iYXIvYS9iL2MgLi9hL2IvYyAmJgotCSBnaXQgc3VibW9kdWxlIHN5bmMgJiYKLQkoY2QgYS9iL2MgJiYKLQkgI2FjdHVhbCAuLi9mb28vYmFyL2EvYi9jCi0JIHRlc3QgIiQoZ2l0IGNvbmZpZyByZW1vdGUub3JpZ2luLnVybCkiID0gIi4uLy4uLy4uLy4uL2Zvby9iYXIvYS9iL2MiCi0JKQorCSgKKwkJY2QgcmVsYXRpdmUtY2xvbmUgJiYKKwkJZ2l0IHJlbW90ZSBzZXQtdXJsIG9yaWdpbiAuLi9mb28vYmFyICYmCisJCW1rZGlyIC1wIGEvYi9jICYmCisJCSgKKwkJCWNkIGEvYi9jICYmCisJCQlnaXQgaW5pdCAmJgorCQkJPi5naXRpZ25vcmUgJiYKKwkJCWdpdCBhZGQgLmdpdGlnbm9yZSAmJgorCQkJdGVzdF90aWNrICYmCisJCQlnaXQgY29tbWl0IC1tICJpbml0aWFsIGNvbW1pdCIKKwkJKSAmJgorCQlnaXQgc3VibW9kdWxlIGFkZCAuLi9iYXIvYS9iL2MgLi9hL2IvYyAmJgorCQlnaXQgc3VibW9kdWxlIHN5bmMgJiYKKwkJKAorCQkJY2QgYS9iL2MgJiYKKwkJCSNhY3R1YWwgLi4vZm9vL2Jhci9hL2IvYworCQkJdGVzdCAiJChnaXQgY29uZmlnIHJlbW90ZS5vcmlnaW4udXJsKSIgPSAiLi4vLi4vLi4vLi4vZm9vL2Jhci9hL2IvYyIKKwkJKQogCSkKICcKIApkaWZmIC0tZ2l0IGEvdC90NzQwNi1zdWJtb2R1bGUtdXBkYXRlLnNoIGIvdC90NzQwNi1zdWJtb2R1bGUtdXBkYXRlLnNoCmluZGV4IGE0ZmZlYTAuLmYwYjMzMDUgMTAwNzU1Ci0tLSBhL3QvdDc0MDYtc3VibW9kdWxlLXVwZGF0ZS5zaAorKysgYi90L3Q3NDA2LXN1Ym1vZHVsZS11cGRhdGUuc2gKQEAgLTU4LDcgKzU4LDcgQEAKIAkgZ2l0IHN1Ym1vZHVsZSBhZGQgLi4vbWVyZ2luZyBtZXJnaW5nICYmCiAJIHRlc3RfdGljayAmJgogCSBnaXQgY29tbWl0IC1tICJyZWJhc2luZyIKLQkpCisJKSAmJgogCShjZCBzdXBlciAmJgogCSBnaXQgc3VibW9kdWxlIGFkZCAuLi9ub25lIG5vbmUgJiYKIAkgdGVzdF90aWNrICYmCkBAIC04MCw2ICs4MCwyMSBAQAogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHVwZGF0ZSBmcm9tIHN1YmRpcmVjdG9yeScgJworCShjZCBzdXBlci9zdWJtb2R1bGUgJiYKKwkgZ2l0IHJlc2V0IC0taGFyZCBIRUFEfjEKKwkpICYmCisJbWtkaXIgc3VwZXIvc3ViICYmCisJKGNkIHN1cGVyL3N1YiAmJgorCSAoY2QgLi4vc3VibW9kdWxlICYmCisJICBjb21wYXJlX2hlYWQKKwkgKSAmJgorCSBnaXQgc3VibW9kdWxlIHVwZGF0ZSAuLi9zdWJtb2R1bGUgJiYKKwkgY2QgLi4vc3VibW9kdWxlICYmCisJICEgY29tcGFyZV9oZWFkCisJKQorJworCiBhcG9zPSInIjsKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSB1cGRhdGUgZG9lcyBub3QgZmV0Y2ggYWxyZWFkeSBwcmVzZW50IGNvbW1pdHMnICcKIAkoY2Qgc3VibW9kdWxlICYmCkBAIC0yNzksNiArMjk0LDM1IEBACiAJKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgdXBkYXRlIC0gY29tbWFuZCBpbiAuZ2l0L2NvbmZpZycgJworCShjZCBzdXBlciAmJgorCSBnaXQgY29uZmlnIHN1Ym1vZHVsZS5zdWJtb2R1bGUudXBkYXRlICIhZ2l0IGNoZWNrb3V0IgorCSkgJiYKKwkoY2Qgc3VwZXIvc3VibW9kdWxlICYmCisJICBnaXQgcmVzZXQgLS1oYXJkIEhFQUReCisJKSAmJgorCShjZCBzdXBlciAmJgorCSAoY2Qgc3VibW9kdWxlICYmCisJICBjb21wYXJlX2hlYWQKKwkgKSAmJgorCSBnaXQgc3VibW9kdWxlIHVwZGF0ZSBzdWJtb2R1bGUgJiYKKwkgY2Qgc3VibW9kdWxlICYmCisJICEgY29tcGFyZV9oZWFkCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdWJtb2R1bGUgdXBkYXRlIC0gY29tbWFuZCBpbiAuZ2l0L2NvbmZpZyBjYXRjaGVzIGZhaWx1cmUnICcKKwkoY2Qgc3VwZXIgJiYKKwkgZ2l0IGNvbmZpZyBzdWJtb2R1bGUuc3VibW9kdWxlLnVwZGF0ZSAiIWZhbHNlIgorCSkgJiYKKwkoY2Qgc3VwZXIvc3VibW9kdWxlICYmCisJICBnaXQgcmVzZXQgLS1oYXJkIEhFQUReCisJKSAmJgorCShjZCBzdXBlciAmJgorCSB0ZXN0X211c3RfZmFpbCBnaXQgc3VibW9kdWxlIHVwZGF0ZSBzdWJtb2R1bGUKKwkpCisnCisKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3N1Ym1vZHVsZSBpbml0IHBpY2tzIHVwIHJlYmFzZScgJwogCShjZCBzdXBlciAmJgogCSBnaXQgY29uZmlnIC1mIC5naXRtb2R1bGVzIHN1Ym1vZHVsZS5yZWJhc2luZy51cGRhdGUgcmViYXNlICYmCkBAIC02ODUsMTQgKzcyOSwyNCBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnc3VibW9kdWxlIHVwZGF0ZSBjYW4gaGFuZGxlIHN5bWJvbGljIGxpbmtzIGluIHB3ZCcgJwogCW1rZGlyIC1wIGxpbmtlZC9kaXIgJiYKIAlsbiAtcyBsaW5rZWQvZGlyIGxpbmt0byAmJgotCSgKLQkJY2QgbGlua3RvICYmCi0JCWdpdCBjbG9uZSAiJFRSQVNIX0RJUkVDVE9SWSIvc3VwZXJfdXBkYXRlX3IyIHN1cGVyICYmCi0JCSgKLQkJCWNkIHN1cGVyICYmCi0JCQlnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKLQkJKQorCShjZCBsaW5rdG8gJiYKKwkgZ2l0IGNsb25lICIkVFJBU0hfRElSRUNUT1JZIi9zdXBlcl91cGRhdGVfcjIgc3VwZXIgJiYKKwkgKGNkIHN1cGVyICYmCisJICBnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUKKwkgKQogCSkKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAnc3VibW9kdWxlIHVwZGF0ZSBjbG9uZSBzaGFsbG93IHN1Ym1vZHVsZScgJworCWdpdCBjbG9uZSBjbG9uZWQgc3VwZXIzICYmCisJcHdkPSQocHdkKQorCShjZCBzdXBlcjMgJiYKKwkgc2VkIC1lICJzI3VybCA9IC4uLyN1cmwgPSBmaWxlOi8vJHB3ZC8jIiA8LmdpdG1vZHVsZXMgPi5naXRtb2R1bGVzLnRtcCAmJgorCSBtdiAtZiAuZ2l0bW9kdWxlcy50bXAgLmdpdG1vZHVsZXMgJiYKKwkgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tZGVwdGg9MworCSAoY2Qgc3VibW9kdWxlICYmCisJICB0ZXN0IDEgPSAkKGdpdCBsb2cgLS1vbmVsaW5lIHwgd2MgLWwpCisJICkKKwkpCisnCiB0ZXN0X2RvbmUKZGlmZiAtLWdpdCBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2ggYi90L3Q3NDA3LXN1Ym1vZHVsZS1mb3JlYWNoLnNoCmluZGV4IDEwN2I0YjcuLmJlOTNmMTAgMTAwNzU1Ci0tLSBhL3QvdDc0MDctc3VibW9kdWxlLWZvcmVhY2guc2gKKysrIGIvdC90NzQwNy1zdWJtb2R1bGUtZm9yZWFjaC5zaApAQCAtODAsNiArODAsMjIgQEAKIAl0ZXN0X2kxOG5jbXAgZXhwZWN0IGFjdHVhbAogJwogCitjYXQgPmV4cGVjdCA8PEVPRgorRW50ZXJpbmcgJy4uL3N1YjEnCiskcHdkL2Nsb25lLWZvbzEtLi4vc3ViMS0kc3ViMXNoYTEKK0VudGVyaW5nICcuLi9zdWIzJworJHB3ZC9jbG9uZS1mb28zLS4uL3N1YjMtJHN1YjNzaGExCitFT0YKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndGVzdCAic3VibW9kdWxlIGZvcmVhY2giIGZyb20gc3ViZGlyZWN0b3J5JyAnCisJbWtkaXIgY2xvbmUvc3ViICYmCisJKAorCQljZCBjbG9uZS9zdWIgJiYKKwkJZ2l0IHN1Ym1vZHVsZSBmb3JlYWNoICJlY2hvIFwkdG9wbGV2ZWwtXCRuYW1lLVwkc21fcGF0aC1cJHNoYTEiID4uLi8uLi9hY3R1YWwKKwkpICYmCisJdGVzdF9pMThuY21wIGV4cGVjdCBhY3R1YWwKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgbmVzdGVkIHN1Ym1vZHVsZXMnICcKIAlnaXQgY2xvbmUgc3VibW9kdWxlIG5lc3RlZDEgJiYKIAlnaXQgY2xvbmUgc3VibW9kdWxlIG5lc3RlZDIgJiYKQEAgLTEyOSw3ICsxNDUsNyBAQAogCQlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvLmdpdCAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMi8uZ2l0ICYmCiAJCWdpdCBzdWJtb2R1bGUgZm9yZWFjaCAiZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IiAmJgotCQlnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMS9uZXN0ZWQyLy5naXQKKwkJZ2l0IHJldi1wYXJzZSAtLXJlc29sdmUtZ2l0LWRpciBuZXN0ZWQxL25lc3RlZDIvLmdpdCAmJgogCQl0ZXN0X211c3RfZmFpbCBnaXQgcmV2LXBhcnNlIC0tcmVzb2x2ZS1naXQtZGlyIG5lc3RlZDEvbmVzdGVkMi9uZXN0ZWQzLy5naXQKIAkpCiAnCmRpZmYgLS1naXQgYS90L3Q3NTAwLWNvbW1pdC5zaCBiL3QvdDc1MDAtY29tbWl0LnNoCmluZGV4IDQzNmI3YjYuLmJkYzFmMjkgMTAwNzU1Ci0tLSBhL3QvdDc1MDAtY29tbWl0LnNoCisrKyBiL3QvdDc1MDAtY29tbWl0LnNoCkBAIC0xMyw5ICsxMyw5IEBACiAJZXhwZWN0PWNvbW1pdF9tc2dfaXMuZXhwZWN0CiAJYWN0dWFsPWNvbW1pdF9tc2dfaXMuYWN0dWFsCiAKLQlwcmludGYgIiVzIiAiJChnaXQgbG9nIC0tcHJldHR5PWZvcm1hdDolcyViIC0xKSIgPiRleHBlY3QgJiYKLQlwcmludGYgIiVzIiAiJDEiID4kYWN0dWFsICYmCi0JdGVzdF9pMThuY21wICRleHBlY3QgJGFjdHVhbAorCXByaW50ZiAiJXMiICIkKGdpdCBsb2cgLS1wcmV0dHk9Zm9ybWF0OiVzJWIgLTEpIiA+IiRhY3R1YWwiICYmCisJcHJpbnRmICIlcyIgIiQxIiA+IiRleHBlY3QiICYmCisJdGVzdF9pMThuY21wICIkZXhwZWN0IiAiJGFjdHVhbCIKIH0KIAogIyBBIHNhbml0eSBjaGVjayB0byBzZWUgaWYgY29tbWl0IGlzIHdvcmtpbmcgYXQgYWxsLgpkaWZmIC0tZ2l0IGEvdC90NzUwMS1jb21taXQuc2ggYi90L3Q3NTAxLWNvbW1pdC5zaAppbmRleCAxOTVlNzQ3Li45OWNlMzZmIDEwMDc1NQotLS0gYS90L3Q3NTAxLWNvbW1pdC5zaAorKysgYi90L3Q3NTAxLWNvbW1pdC5zaApAQCAtNTI0LDQgKzUyNCwxNyBAQAogCXRlc3RfaTE4bmdyZXAgIiBjaGFuZ2VkLCA1IGluc2VydGlvbnMiIG91dHB1dAogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICctLW9ubHkgd29ya3Mgb24gdG8tYmUtYm9ybiBicmFuY2gnICcKKwkjIFRoaXMgdGVzdCByZWxpZXMgb24gaGF2aW5nIHNvbWV0aGluZyBpbiB0aGUgaW5kZXgsIGFzIGl0CisJIyB3b3VsZCBub3Qgb3RoZXJ3aXNlIGFjdHVhbGx5IHByb3ZlIG11Y2guICBTbyBjaGVjayB0aGlzLgorCXRlc3QgLW4gIiQoZ2l0IGxzLWZpbGVzKSIgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gb3JwaGFuICYmCisJZWNobyBmb28gPm5ld2ZpbGUgJiYKKwlnaXQgYWRkIG5ld2ZpbGUgJiYKKwlnaXQgY29tbWl0IC0tb25seSBuZXdmaWxlIC1tIi0tb25seSBvbiB1bmJvcm4gYnJhbmNoIiAmJgorCWVjaG8gbmV3ZmlsZSA+ZXhwZWN0ZWQgJiYKKwlnaXQgbHMtdHJlZSAtciAtLW5hbWUtb25seSBIRUFEID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCBhY3R1YWwKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q3NTAyLWNvbW1pdC5zaCBiL3QvdDc1MDItY29tbWl0LnNoCmluZGV4IGE0OTM4YjEuLjYzMTNkYTIgMTAwNzU1Ci0tLSBhL3QvdDc1MDItY29tbWl0LnNoCisrKyBiL3QvdDc1MDItY29tbWl0LnNoCkBAIC0zNjEsNiArMzYxLDIzIEBACiAJdGVzdF9jbXAgZXhwZWN0IC5naXQvcmVzdWx0CiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2RvIG5vdCBmaXJlIGVkaXRvciBpZiAtbSA8bXNnPiB3YXMgZ2l2ZW4nICcKKwllY2hvIHRpY2sgPmZpbGUgJiYKKwlnaXQgYWRkIGZpbGUgJiYKKwllY2hvICJlZGl0b3Igbm90IHN0YXJ0ZWQiID4uZ2l0L3Jlc3VsdCAmJgorCShHSVRfRURJVE9SPSJcIiQocHdkKS8uZ2l0L0ZBS0VfRURJVE9SXCIiIGdpdCBjb21taXQgLW0gdGljaykgJiYKKwl0ZXN0ICIkKGNhdCAuZ2l0L3Jlc3VsdCkiID0gImVkaXRvciBub3Qgc3RhcnRlZCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGZpcmUgZWRpdG9yIGlmIC1tICIiIHdhcyBnaXZlbicgJworCWVjaG8gdG9jayA+ZmlsZSAmJgorCWdpdCBhZGQgZmlsZSAmJgorCWVjaG8gImVkaXRvciBub3Qgc3RhcnRlZCIgPi5naXQvcmVzdWx0ICYmCisJKEdJVF9FRElUT1I9IlwiJChwd2QpLy5naXQvRkFLRV9FRElUT1JcIiIgXAorCSBnaXQgY29tbWl0IC1tICIiIC0tYWxsb3ctZW1wdHktbWVzc2FnZSkgJiYKKwl0ZXN0ICIkKGNhdCAuZ2l0L3Jlc3VsdCkiID0gImVkaXRvciBub3Qgc3RhcnRlZCIKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnZG8gbm90IGZpcmUgZWRpdG9yIGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMnICcKIAogCWdpdCBjbGVhbiAtZiAmJgpkaWZmIC0tZ2l0IGEvdC90NzUwOC1zdGF0dXMuc2ggYi90L3Q3NTA4LXN0YXR1cy5zaAppbmRleCBlMmZmZGFjLi5hYzNkMGZlIDEwMDc1NQotLS0gYS90L3Q3NTA4LXN0YXR1cy5zaAorKysgYi90L3Q3NTA4LXN0YXR1cy5zaApAQCAtMTMzNSw0ICsxMzM1LDY2IEBACiAJZ2l0IGNvbmZpZyAtZiAuZ2l0bW9kdWxlcyAgLS1yZW1vdmUtc2VjdGlvbiBzdWJtb2R1bGUuc3VibmFtZQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzZXR1cCBvZiB0ZXN0IGVudmlyb25tZW50JyAnCisJZ2l0IGNvbmZpZyBzdGF0dXMuc2hvd1VudHJhY2tlZEZpbGVzIG5vICYmCisJZ2l0IHN0YXR1cyAtcyA+ZXhwZWN0ZWRfc2hvcnQgJiYKKwlnaXQgc3RhdHVzIC0tbm8tc2hvcnQgPmV4cGVjdGVkX25vc2hvcnQKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5zaG9ydD10cnVlIiBzYW1lIGFzICItcyInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PXRydWUgc3RhdHVzID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9zaG9ydCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5zaG9ydD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1uby1zaG9ydCInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PXRydWUgc3RhdHVzIC0tbm8tc2hvcnQgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuc2hvcnQ9ZmFsc2UiIHNhbWUgYXMgIi0tbm8tc2hvcnQiJyAnCisJZ2l0IC1jIHN0YXR1cy5zaG9ydD1mYWxzZSBzdGF0dXMgPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuc2hvcnQ9ZmFsc2UiIHdlYWtlciB0aGFuICItcyInICcKKwlnaXQgLWMgc3RhdHVzLnNob3J0PWZhbHNlIHN0YXR1cyAtcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWRfc2hvcnQgYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJyJzdGF0dXMuYnJhbmNoPXRydWUiIHNhbWUgYXMgIi1iIicgJworCWdpdCBzdGF0dXMgLXNiID5leHBlY3RlZF9icmFuY2ggJiYKKwlnaXQgLWMgc3RhdHVzLmJyYW5jaD10cnVlIHN0YXR1cyAtcyA+YWN0dWFsICYmCisJdGVzdF9jbXAgZXhwZWN0ZWRfYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiBkaWZmZXJlbnQgZnJvbSAiLS1uby1icmFuY2giJyAnCisJZ2l0IHN0YXR1cyAtcyAtLW5vLWJyYW5jaCAgPmV4cGVjdGVkX25vYnJhbmNoICYmCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLXMgPmFjdHVhbCAmJgorCXRlc3RfbXVzdF9mYWlsIHRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1uby1icmFuY2giJyAnCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLXMgLS1uby1icmFuY2ggPmFjdHVhbCAmJgorCXRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD10cnVlIiB3ZWFrZXIgdGhhbiAiLS1wb3JjZWxhaW4iJyAnCisgICAgICAgZ2l0IC1jIHN0YXR1cy5icmFuY2g9dHJ1ZSBzdGF0dXMgLS1wb3JjZWxhaW4gPmFjdHVhbCAmJgorICAgICAgIHRlc3RfY21wIGV4cGVjdGVkX25vYnJhbmNoIGFjdHVhbAorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICcic3RhdHVzLmJyYW5jaD1mYWxzZSIgc2FtZSBhcyAiLS1uby1icmFuY2giJyAnCisJZ2l0IC1jIHN0YXR1cy5icmFuY2g9ZmFsc2Ugc3RhdHVzIC1zID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9ub2JyYW5jaCBhY3R1YWwKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnInN0YXR1cy5icmFuY2g9ZmFsc2UiIHdlYWtlciB0aGFuICItYiInICcKKwlnaXQgLWMgc3RhdHVzLmJyYW5jaD1mYWxzZSBzdGF0dXMgLXNiID5hY3R1YWwgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZF9icmFuY2ggYWN0dWFsCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1Jlc3RvcmUgZGVmYXVsdCB0ZXN0IGVudmlyb25tZW50JyAnCisJZ2l0IGNvbmZpZyAtLXVuc2V0IHN0YXR1cy5zaG93VW50cmFja2VkRmlsZXMKKycKKwogdGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q3NTEyLXN0YXR1cy1oZWxwLnNoIGIvdC90NzUxMi1zdGF0dXMtaGVscC5zaAppbmRleCBiZjA4ZDRlLi4zMWE3OThmIDEwMDc1NQotLS0gYS90L3Q3NTEyLXN0YXR1cy1oZWxwLnNoCisrKyBiL3QvdDc1MTItc3RhdHVzLWhlbHAuc2gKQEAgLTc3LDcgKzc3LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReXikgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBhdCAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9jb25mbGljdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKQEAgLTEwNCw3ICsxMDQsNyBAQAogCWVjaG8gdGhyZWUgPm1haW4udHh0ICYmCiAJZ2l0IGFkZCBtYWluLnR4dCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2NvbmZsaWN0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIikKIAkjCkBAIC0xMzYsNyArMTM2LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IHJlYmFzZV9pX2NvbmZsaWN0cykgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIC1pIHJlYmFzZV9pX2NvbmZsaWN0cyAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IHJlYmFzaW5nIGJyYW5jaCAnXCcncmViYXNlX2lfY29uZmxpY3RzX3NlY29uZCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQpAQCAtMTYyLDcgKzE2Miw3IEBACiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSAtaSByZWJhc2VfaV9jb25mbGljdHMgJiYKIAlnaXQgYWRkIG1haW4udHh0ICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgYXQgJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgcmViYXNpbmcgYnJhbmNoICdcJydyZWJhc2VfaV9jb25mbGljdHNfc2Vjb25kJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTE4OCwxMCArMTg4LDkgQEAKIAlleHBvcnQgRkFLRV9MSU5FUyAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRH4yKSAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCB0d29fcmViYXNlX2kpICYmCiAJZ2l0IHJlYmFzZSAtaSBIRUFEfjIgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRUR1QKKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3JlYmFzZV9pX2VkaXQnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC0yMTYsOSArMjE1LDggQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUR+MykgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCByZXNldCBIRUFEXiAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEKSAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGF0ICRUR1QKKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc3BsaXRfY29tbWl0J1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCiAJIwpAQCAtMjQ2LDExICsyNDQsMTAgQEAKIAlleHBvcnQgRkFLRV9MSU5FUyAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgogCU9OVE89JChnaXQgcmV2LXBhcnNlIC0tc2hvcnQgSEVBRH4zKSAmJgotCVRHVD0kKGdpdCByZXYtcGFyc2UgLS1zaG9ydCB0aHJlZV9hbWVuZCkgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUR+MyAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZm9vIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJFRHVAorCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnYW1lbmRfbGFzdCdcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTI4MCw3ICsyNzcsNyBAQAogCWdpdCByZWJhc2UgLWkgSEVBRH4zICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTMwMiw3ICsyOTksNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCByZXNldCBIRUFEXiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTMyOSw3ICszMjYsNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZm9vIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC0zNTEsNyArMzQ4LDcgQEAKIAlnaXQgY29tbWl0IC0tYW1lbmQgLW0gImEiICYmCiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBlZGl0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKHVzZSAiZ2l0IGNvbW1pdCAtLWFtZW5kIiB0byBhbWVuZCB0aGUgY3VycmVudCBjb21taXQpCiAJIyAgICh1c2UgImdpdCByZWJhc2UgLS1jb250aW51ZSIgb25jZSB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHlvdXIgY2hhbmdlcykKQEAgLTM3NCw3ICszNzEsNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCByZXNldCBIRUFEXiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgc3BsaXR0aW5nIGEgY29tbWl0IHdoaWxlIHJlYmFzaW5nIGJyYW5jaCAnXCcnc2V2ZXJhbF9lZGl0cydcJycgb24gJ1wnJyRPTlRPJ1wnJy4KIAkjICAgKE9uY2UgeW91ciB3b3JraW5nIGRpcmVjdG9yeSBpcyBjbGVhbiwgcnVuICJnaXQgcmViYXNlIC0tY29udGludWUiKQogCSMKQEAgLTQwMiw3ICszOTksNyBAQAogCWdpdCByZWJhc2UgLS1jb250aW51ZSAmJgogCWdpdCBjb21taXQgLS1hbWVuZCAtbSAiZCIgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQpAQCAtNDI2LDcgKzQyMyw3IEBACiAJZ2l0IGNvbW1pdCAtbSAiZSIgJiYKIAlnaXQgcmViYXNlIC0tY29udGludWUgJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBmcm9tICRPTlRPCisJIyByZWJhc2UgaW4gcHJvZ3Jlc3M7IG9udG8gJE9OVE8KIAkjIFlvdSBhcmUgY3VycmVudGx5IGVkaXRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAodXNlICJnaXQgY29tbWl0IC0tYW1lbmQiIHRvIGFtZW5kIHRoZSBjdXJyZW50IGNvbW1pdCkKIAkjICAgKHVzZSAiZ2l0IHJlYmFzZSAtLWNvbnRpbnVlIiBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGggeW91ciBjaGFuZ2VzKQpAQCAtNDUxLDcgKzQ0OCw3IEBACiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJZ2l0IHJlc2V0IEhFQUReICYmCiAJY2F0ID5leHBlY3RlZCA8PC1FT0YgJiYKLQkjIEhFQUQgZGV0YWNoZWQgZnJvbSAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSBzcGxpdHRpbmcgYSBjb21taXQgd2hpbGUgcmViYXNpbmcgYnJhbmNoICdcJydzZXZlcmFsX2VkaXRzJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMgICAoT25jZSB5b3VyIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGNsZWFuLCBydW4gImdpdCByZWJhc2UgLS1jb250aW51ZSIpCiAJIwpAQCAtNDgxLDcgKzQ3OCw3IEBACiAJZ2l0IHJlYmFzZSAtLWNvbnRpbnVlICYmCiAJZ2l0IGNvbW1pdCAtLWFtZW5kIC1tICJoIiAmJgogCWNhdCA+ZXhwZWN0ZWQgPDwtRU9GICYmCi0JIyBIRUFEIGRldGFjaGVkIGZyb20gJE9OVE8KKwkjIHJlYmFzZSBpbiBwcm9ncmVzczsgb250byAkT05UTwogCSMgWW91IGFyZSBjdXJyZW50bHkgZWRpdGluZyBhIGNvbW1pdCB3aGlsZSByZWJhc2luZyBicmFuY2ggJ1wnJ3NldmVyYWxfZWRpdHMnXCcnIG9uICdcJyckT05UTydcJycuCiAJIyAgICh1c2UgImdpdCBjb21taXQgLS1hbWVuZCIgdG8gYW1lbmQgdGhlIGN1cnJlbnQgY29tbWl0KQogCSMgICAodXNlICJnaXQgcmViYXNlIC0tY29udGludWUiIG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQgd2l0aCB5b3VyIGNoYW5nZXMpCkBAIC01MTAsNyArNTA3LDcgQEAKIAljYXQgPmV4cGVjdGVkIDw8LVxFT0YgJiYKIAkjIE9uIGJyYW5jaCBhbV9hbHJlYWR5X2V4aXN0cwogCSMgWW91IGFyZSBpbiB0aGUgbWlkZGxlIG9mIGFuIGFtIHNlc3Npb24uCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biAiZ2l0IGFtIC0tcmVzb2x2ZWQiKQorCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCBhbSAtLWNvbnRpbnVlIikKIAkjICAgKHVzZSAiZ2l0IGFtIC0tc2tpcCIgdG8gc2tpcCB0aGlzIHBhdGNoKQogCSMgICAodXNlICJnaXQgYW0gLS1hYm9ydCIgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnJhbmNoKQogCSMKQEAgLTUzMiw3ICs1MjksNyBAQAogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCSMgT24gYnJhbmNoIGFtX25vdF9leGlzdHMKIAkjIFlvdSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBhbiBhbSBzZXNzaW9uLgotCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgdGhlbiBydW4gImdpdCBhbSAtLXJlc29sdmVkIikKKwkjICAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuICJnaXQgYW0gLS1jb250aW51ZSIpCiAJIyAgICh1c2UgImdpdCBhbSAtLXNraXAiIHRvIHNraXAgdGhpcyBwYXRjaCkKIAkjICAgKHVzZSAiZ2l0IGFtIC0tYWJvcnQiIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIGJyYW5jaCkKIAkjCkBAIC02MDEsNyArNTk4LDcgQEAKIAlPTlRPPSQoZ2l0IHJldi1wYXJzZSAtLXNob3J0IEhFQUReXikgJiYKIAl0ZXN0X211c3RfZmFpbCBnaXQgcmViYXNlIEhFQUReIC0tb250byBIRUFEXl4gJiYKIAljYXQgPmV4cGVjdGVkIDw8LUVPRiAmJgotCSMgSEVBRCBkZXRhY2hlZCBhdCAkT05UTworCSMgcmViYXNlIGluIHByb2dyZXNzOyBvbnRvICRPTlRPCiAJIyBZb3UgYXJlIGN1cnJlbnRseSByZWJhc2luZyBicmFuY2ggJ1wnJ3N0YXR1c2hpbnRzX2Rpc2FibGVkJ1wnJyBvbiAnXCcnJE9OVE8nXCcnLgogCSMKIAkjIFVubWVyZ2VkIHBhdGhzOgpAQCAtNjMyLDcgKzYyOSw4IEBACiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GICYmCiAJIyBPbiBicmFuY2ggY2hlcnJ5X2JyYW5jaAogCSMgWW91IGFyZSBjdXJyZW50bHkgY2hlcnJ5LXBpY2tpbmcuCi0JIyAgIChmaXggY29uZmxpY3RzIGFuZCBydW4gImdpdCBjb21taXQiKQorCSMgICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuICJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZSIpCisJIyAgICh1c2UgImdpdCBjaGVycnktcGljayAtLWFib3J0IiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikKIAkjCiAJIyBVbm1lcmdlZCBwYXRoczoKIAkjICAgKHVzZSAiZ2l0IGFkZCA8ZmlsZT4uLi4iIHRvIG1hcmsgcmVzb2x1dGlvbikKQEAgLTY1NSw3ICs2NTMsOCBAQAogCWNhdCA+ZXhwZWN0ZWQgPDwtXEVPRiAmJgogCSMgT24gYnJhbmNoIGNoZXJyeV9icmFuY2gKIAkjIFlvdSBhcmUgY3VycmVudGx5IGNoZXJyeS1waWNraW5nLgotCSMgICAoYWxsIGNvbmZsaWN0cyBmaXhlZDogcnVuICJnaXQgY29tbWl0IikKKwkjICAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biAiZ2l0IGNoZXJyeS1waWNrIC0tY29udGludWUiKQorCSMgICAodXNlICJnaXQgY2hlcnJ5LXBpY2sgLS1hYm9ydCIgdG8gY2FuY2VsIHRoZSBjaGVycnktcGljayBvcGVyYXRpb24pCiAJIwogCSMgQ2hhbmdlcyB0byBiZSBjb21taXR0ZWQ6CiAJIwpAQCAtNjY3LDcgKzY2Niw3IEBACiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgc2hvd2luZyBkZXRhY2hlZCBmcm9tIGEgdGFnJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdzdGF0dXMgc2hvd2luZyBkZXRhY2hlZCBhdCBhbmQgZnJvbSBhIHRhZycgJwogCXRlc3RfY29tbWl0IGF0YWcgdGFnZ2luZyAmJgogCWdpdCBjaGVja291dCBhdGFnICYmCiAJY2F0ID5leHBlY3RlZCA8PC1cRU9GCkBAIC02NzUsNiArNjc0LDE0IEBACiAJbm90aGluZyB0byBjb21taXQgKHVzZSAtdSB0byBzaG93IHVudHJhY2tlZCBmaWxlcykKIAlFT0YKIAlnaXQgc3RhdHVzIC0tdW50cmFja2VkLWZpbGVzPW5vID5hY3R1YWwgJiYKKwl0ZXN0X2kxOG5jbXAgZXhwZWN0ZWQgYWN0dWFsICYmCisKKwlnaXQgcmVzZXQgLS1oYXJkIEhFQUReICYmCisJY2F0ID5leHBlY3RlZCA8PC1cRU9GCisJIyBIRUFEIGRldGFjaGVkIGZyb20gYXRhZworCW5vdGhpbmcgdG8gY29tbWl0ICh1c2UgLXUgdG8gc2hvdyB1bnRyYWNrZWQgZmlsZXMpCisJRU9GCisJZ2l0IHN0YXR1cyAtLXVudHJhY2tlZC1maWxlcz1ubyA+YWN0dWFsICYmCiAJdGVzdF9pMThuY21wIGV4cGVjdGVkIGFjdHVhbAogJwogCmRpZmYgLS1naXQgYS90L3Q3NjAwLW1lcmdlLnNoIGIvdC90NzYwMC1tZXJnZS5zaAppbmRleCAyZjcwNDMzLi4xMGFhMDI4IDEwMDc1NQotLS0gYS90L3Q3NjAwLW1lcmdlLnNoCisrKyBiL3QvdDc2MDAtbWVyZ2Uuc2gKQEAgLTMxNiw3ICszMTYsNyBAQAogCiB0ZXN0X2RlYnVnICdnaXQgbG9nIC0tZ3JhcGggLS1kZWNvcmF0ZSAtLW9uZWxpbmUgLS1hbGwnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Vuc3VjY2VzZnVsIG1lcmdlIG9mIGMxIHdpdGggYzIgKHNxdWFzaCwgZmYtb25seSknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Vuc3VjY2Vzc2Z1bCBtZXJnZSBvZiBjMSB3aXRoIGMyIChzcXVhc2gsIGZmLW9ubHkpJyAnCiAJZ2l0IHJlc2V0IC0taGFyZCBjMSAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCBtZXJnZSAtLXNxdWFzaCAtLWZmLW9ubHkgYzIKICcKQEAgLTQ5Nyw5ICs0OTcsMTUgQEAKIAl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1mZiAtLXNxdWFzaCBjMQogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdjb21iaW5pbmcgLS1mZi1vbmx5IGFuZCAtLW5vLWZmIGlzIHJlZnVzZWQnICcKLQl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1mZi1vbmx5IC0tbm8tZmYgYzEgJiYKLQl0ZXN0X211c3RfZmFpbCBnaXQgbWVyZ2UgLS1uby1mZiAtLWZmLW9ubHkgYzEKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ29wdGlvbiAtLWZmLW9ubHkgb3ZlcndyaXRlcyAtLW5vLWZmJyAnCisJZ2l0IG1lcmdlIC0tbm8tZmYgLS1mZi1vbmx5IGMxICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIC0tbm8tZmYgLS1mZi1vbmx5IGMyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ29wdGlvbiAtLW5vLWZmIG92ZXJyaWRlcyBtZXJnZS5mZj1vbmx5IGNvbmZpZycgJworCWdpdCByZXNldCAtLWhhcmQgYzAgJiYKKwl0ZXN0X2NvbmZpZyBtZXJnZS5mZiBvbmx5ICYmCisJZ2l0IG1lcmdlIC0tbm8tZmYgYzEKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnbWVyZ2UgYzAgd2l0aCBjMSAoZmYgb3ZlcnJpZGVzIG5vLWZmKScgJwpkaWZmIC0tZ2l0IGEvdC90NzYwMS1tZXJnZS1wdWxsLWNvbmZpZy5zaCBiL3QvdDc2MDEtbWVyZ2UtcHVsbC1jb25maWcuc2gKaW5kZXggMjVkYWM3OS4uODMwYTRjMyAxMDA3NTUKLS0tIGEvdC90NzYwMS1tZXJnZS1wdWxsLWNvbmZpZy5zaAorKysgYi90L3Q3NjAxLW1lcmdlLXB1bGwtY29uZmlnLnNoCkBAIC0xMDksNyArMTA5LDcgQEAKICcKIAogIyBGaXJzdCBkbyB0aGUgbWVyZ2Ugd2l0aCByZXNvbHZlIGFuZCByZWN1cnNpdmUgdGhlbiB2ZXJpZnkgdGhhdAotIyByZWN1c2l2ZSBpcyBjaG9zZW4uCisjIHJlY3Vyc2l2ZSBpcyBjaG9zZW4uCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ21lcmdlIHBpY2tzIHVwIHRoZSBiZXN0IHJlc3VsdCcgJwogCWdpdCBjb25maWcgLS11bnNldC1hbGwgcHVsbC50d29oZWFkICYmCmRpZmYgLS1naXQgYS90L3Q3NjA3LW1lcmdlLW92ZXJ3cml0ZS5zaCBiL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCmluZGV4IDY1NDdlYjguLjc1OGE2MjMgMTAwNzU1Ci0tLSBhL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCisrKyBiL3QvdDc2MDctbWVyZ2Utb3ZlcndyaXRlLnNoCkBAIC0xNDEsMTEgKzE0MSwxMCBAQAogCXRlc3RfcGF0aF9pc19taXNzaW5nIC5naXQvTUVSR0VfSEVBRAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICd3aWxsIG5vdCBiZSBjb25mdXNlZCBieSBzeW1saW5rIGluIGxlYWRpbmcgcGF0aCcgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnd2lsbCBub3QgYmUgY29uZnVzZWQgYnkgc3ltbGluayBpbiBsZWFkaW5nIHBhdGgnICcKIAlnaXQgcmVzZXQgLS1oYXJkIGMwICYmCiAJcm0gLXJmIHN1YiAmJgotCWxuIC1zIHN1YjIgc3ViICYmCi0JZ2l0IGFkZCBzdWIgJiYKKwl0ZXN0X2xuX3NfYWRkIHN1YjIgc3ViICYmCiAJZ2l0IGNvbW1pdCAtbSBsbiAmJgogCWdpdCBjaGVja291dCBzdWIKICcKZGlmZiAtLWdpdCBhL3QvdDc4MDAtZGlmZnRvb2wuc2ggYi90L3Q3ODAwLWRpZmZ0b29sLnNoCmluZGV4IGE2YmQ5OWUuLjI0MTg1MjggMTAwNzU1Ci0tLSBhL3QvdDc4MDAtZGlmZnRvb2wuc2gKKysrIGIvdC90NzgwMC1kaWZmdG9vbC5zaApAQCAtMzU2LDYgKzM1NiwxMyBAQAogCSkKICcKIAorcnVuX2Rpcl9kaWZmX3Rlc3QgJ2RpZmZ0b29sIC0tZGlyLWRpZmYgd2hlbiB3b3JrdHJlZSBmaWxlIGlzIG1pc3NpbmcnICcKKwl0ZXN0X3doZW5fZmluaXNoZWQgZ2l0IHJlc2V0IC0taGFyZCAmJgorCXJtIGZpbGUyICYmCisJZ2l0IGRpZmZ0b29sIC0tZGlyLWRpZmYgJHN5bWxpbmtzIC0tZXh0Y21kIGxzIGJyYW5jaCBtYXN0ZXIgPm91dHB1dCAmJgorCWdyZXAgZmlsZTIgb3V0cHV0CisnCisKIHdyaXRlX3NjcmlwdCAuZ2l0L0NIRUNLX1NZTUxJTktTIDw8XEVPRgogZm9yIGYgaW4gZmlsZSBmaWxlMiBzdWIvc3ViCiBkbwpAQCAtMzc4LDYgKzM4NSwyNSBAQAogCXRlc3RfY21wIGFjdHVhbCBleHBlY3QKICcKIAord3JpdGVfc2NyaXB0IG1vZGlmeS1yaWdodC1maWxlIDw8XEVPRgorZWNobyAibmV3IGNvbnRlbnQiID4iJDIvZmlsZSIKK0VPRgorCitydW5fZGlyX2RpZmZfdGVzdCAnZGlmZnRvb2wgLS1kaXItZGlmZiBzeW5jcyB3b3JrdHJlZSB3aXRoIHVuc3RhZ2VkIGNoYW5nZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgcmVzZXQgLS1oYXJkICYmCisJZWNobyAib3JpZyBjb250ZW50IiA+ZmlsZSAmJgorCWdpdCBkaWZmdG9vbCAtZCAkc3ltbGlua3MgLS1leHRjbWQgIiQocHdkKS9tb2RpZnktcmlnaHQtZmlsZSIgYnJhbmNoICYmCisJZWNobyAibmV3IGNvbnRlbnQiID5leHBlY3QgJiYKKwl0ZXN0X2NtcCBleHBlY3QgZmlsZQorJworCitydW5fZGlyX2RpZmZfdGVzdCAnZGlmZnRvb2wgLS1kaXItZGlmZiBzeW5jcyB3b3JrdHJlZSB3aXRob3V0IHVuc3RhZ2VkIGNoYW5nZScgJworCXRlc3Rfd2hlbl9maW5pc2hlZCBnaXQgcmVzZXQgLS1oYXJkICYmCisJZ2l0IGRpZmZ0b29sIC1kICRzeW1saW5rcyAtLWV4dGNtZCAiJChwd2QpL21vZGlmeS1yaWdodC1maWxlIiBicmFuY2ggJiYKKwllY2hvICJuZXcgY29udGVudCIgPmV4cGVjdCAmJgorCXRlc3RfY21wIGV4cGVjdCBmaWxlCisnCisKIHdyaXRlX3NjcmlwdCBtb2RpZnktZmlsZSA8PFxFT0YKIGVjaG8gIm5ldyBjb250ZW50IiA+ZmlsZQogRU9GCmRpZmYgLS1naXQgYS90L3Q4MDAxLWFubm90YXRlLnNoIGIvdC90ODAwMS1hbm5vdGF0ZS5zaAppbmRleCA0MTk2MmYwLi43MjE3NmU0IDEwMDc1NQotLS0gYS90L3Q4MDAxLWFubm90YXRlLnNoCisrKyBiL3QvdDgwMDEtYW5ub3RhdGUuc2gKQEAgLTYsOSArNiw5IEBACiBQUk9HPSdnaXQgYW5ub3RhdGUnCiAuICIkVEVTVF9ESVJFQ1RPUlkiL2Fubm90YXRlLXRlc3RzLnNoCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ0Fubm90YXRpbmcgYW4gb2xkIHJldmlzaW9uIHdvcmtzJyAnCi0JZ2l0IGFubm90YXRlIGZpbGUgbWFzdGVyID5yZXN1bHQgJiYKLQlhd2sgInsgcHJpbnQgXCQzOyB9IiA8cmVzdWx0ID5hdXRob3JzICYmCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdhbm5vdGF0ZSBvbGQgcmV2aXNpb24nICcKKwlnaXQgYW5ub3RhdGUgZmlsZSBtYXN0ZXIgPmFjdHVhbCAmJgorCWF3ayAieyBwcmludCBcJDM7IH0iIDxhY3R1YWwgPmF1dGhvcnMgJiYKIAl0ZXN0IDIgPSAkKGdyZXAgQSA8YXV0aG9ycyB8IHdjIC1sKSAmJgogCXRlc3QgMiA9ICQoZ3JlcCBCIDxhdXRob3JzIHwgd2MgLWwpCiAnCmRpZmYgLS1naXQgYS90L3Q4MDAyLWJsYW1lLnNoIGIvdC90ODAwMi1ibGFtZS5zaAppbmRleCBlMjg5NmNmLi41Y2RmM2YxIDEwMDc1NQotLS0gYS90L3Q4MDAyLWJsYW1lLnNoCisrKyBiL3QvdDgwMDItYmxhbWUuc2gKQEAgLTcsOCArNywxNiBAQAogLiAiJFRFU1RfRElSRUNUT1JZIi9hbm5vdGF0ZS10ZXN0cy5zaAogCiBQUk9HPSdnaXQgYmxhbWUgLWMgLWUnCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdCbGFtZSAtLXNob3ctZW1haWwgd29ya3MnICcKLSAgICBjaGVja19jb3VudCAiPEFAdGVzdC5naXQ+IiAxICI8QkB0ZXN0LmdpdD4iIDEgIjxCMUB0ZXN0LmdpdD4iIDEgIjxCMkB0ZXN0LmdpdD4iIDEgIjxhdXRob3JAZXhhbXBsZS5jb20+IiAxICI8Q0B0ZXN0LmdpdD4iIDEgIjxEQHRlc3QuZ2l0PiIgMSAiPEUgYXQgdGVzdCBkb3QgZ2l0PiIgMQordGVzdF9leHBlY3Rfc3VjY2VzcyAnYmxhbWUgLS1zaG93LWVtYWlsJyAnCisJY2hlY2tfY291bnQgXAorCQkiPEFAdGVzdC5naXQ+IiAxIFwKKwkJIjxCQHRlc3QuZ2l0PiIgMSBcCisJCSI8QjFAdGVzdC5naXQ+IiAxIFwKKwkJIjxCMkB0ZXN0LmdpdD4iIDEgXAorCQkiPGF1dGhvckBleGFtcGxlLmNvbT4iIDEgXAorCQkiPENAdGVzdC5naXQ+IiAxIFwKKwkJIjxEQHRlc3QuZ2l0PiIgMSBcCisJCSI8RSBhdCB0ZXN0IGRvdCBnaXQ+IiAxCiAnCiAKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90ODAwMy1ibGFtZS1jb3JuZXItY2FzZXMuc2ggYi90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaAppbmRleCAyMzAxNDNjLi5lN2NhYzFkIDEwMDc1NQotLS0gYS90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaAorKysgYi90L3Q4MDAzLWJsYW1lLWNvcm5lci1jYXNlcy5zaApAQCAtMTc1LDYgKzE3NSwxMiBAQAogCWdyZXAgImhhcyBvbmx5IDIgbGluZXMiIGVycm9ycwogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdibGFtZSBwYXJzZXMgPGVuZD4gcGFydCBvZiAtTCcgJworCWdpdCBibGFtZSAtTDEsMSB0cmVzID5vdXQgJiYKKwljYXQgb3V0ICYmCisJdGVzdCAkKHdjIC1sIDwgb3V0KSAtZXEgMQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbmRlbnQgb2YgbGluZSBudW1iZXJzLCBuaW5lIGxpbmVzJyAnCiAJZ2l0IGJsYW1lIG5pbmVfbGluZXMgPmFjdHVhbCAmJgogCXRlc3QgJChncmVwIC1jICIgICIgYWN0dWFsKSA9IDAKZGlmZiAtLWdpdCBhL3QvdDgwMDYtYmxhbWUtdGV4dGNvbnYuc2ggYi90L3Q4MDA2LWJsYW1lLXRleHRjb252LnNoCmluZGV4IGJmNmNhYTQuLjc2ODM1MTUgMTAwNzU1Ci0tLSBhL3QvdDgwMDYtYmxhbWUtdGV4dGNvbnYuc2gKKysrIGIvdC90ODAwNi1ibGFtZS10ZXh0Y29udi5zaApAQCAtMTgsMTcgKzE4LDEzIEBACiAJZWNobyAiYmluOiB0ZXN0IG51bWJlciAwIiA+emVyby5iaW4gJiYKIAllY2hvICJiaW46IHRlc3QgMSIgPm9uZS5iaW4gJiYKIAllY2hvICJiaW46IHRlc3QgbnVtYmVyIDIiID50d28uYmluICYmCi0JaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUzsgdGhlbgotCQlsbiAtcyBvbmUuYmluIHN5bWxpbmsuYmluCi0JZmkgJiYKKwl0ZXN0X2xuX3NfYWRkIG9uZS5iaW4gc3ltbGluay5iaW4gJiYKIAlnaXQgYWRkIC4gJiYKIAlHSVRfQVVUSE9SX05BTUU9TnVtYmVyMSBnaXQgY29tbWl0IC1hIC1tIEZpcnN0IC0tZGF0ZT0iMjAxMC0wMS0wMSAxODowMDowMCIgJiYKIAllY2hvICJiaW46IHRlc3QgMSB2ZXJzaW9uIDIiID5vbmUuYmluICYmCiAJZWNobyAiYmluOiB0ZXN0IG51bWJlciAyIHZlcnNpb24gMiIgPj50d28uYmluICYmCi0JaWYgdGVzdF9oYXZlX3ByZXJlcSBTWU1MSU5LUzsgdGhlbgotCQlybSBzeW1saW5rLmJpbiAmJgotCQlsbiAtcyB0d28uYmluIHN5bWxpbmsuYmluCi0JZmkgJiYKKwlybSAtZiBzeW1saW5rLmJpbiAmJgorCXRlc3RfbG5fc19hZGQgdHdvLmJpbiBzeW1saW5rLmJpbiAmJgogCUdJVF9BVVRIT1JfTkFNRT1OdW1iZXIyIGdpdCBjb21taXQgLWEgLW0gU2Vjb25kIC0tZGF0ZT0iMjAxMC0wMS0wMSAyMDowMDowMCIKICcKIApAQCAtMTM1LDcgKzEzMSw3IEBACiAKICMgY3AgdHdvLmJpbiB0aHJlZS5iaW4gIGFuZCBtYWtlIHNtYWxsIHR3ZWFrCiAjICh0aGlzIHdpbGwgZGlyZWN0IGJsYW1lIC1DIC1DIHRocmVlLmJpbiB0byBjb25zaWRlciB0d28uYmluIGFuZCBzeW1saW5rLmJpbikKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ21ha2UgYW5vdGhlciBuZXcgY29tbWl0JyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdtYWtlIGFub3RoZXIgbmV3IGNvbW1pdCcgJwogCWNhdCA+dGhyZWUuYmluIDw8XEVPRiAmJgogYmluOiB0ZXN0IG51bWJlciAyCiBiaW46IHRlc3QgbnVtYmVyIDIgdmVyc2lvbiAyCkBAIC0xNDYsNyArMTQyLDcgQEAKIAlHSVRfQVVUSE9SX05BTUU9TnVtYmVyNCBnaXQgY29tbWl0IC1hIC1tIEZvdXJ0aCAtLWRhdGU9IjIwMTAtMDEtMDEgMjM6MDA6MDAiCiAnCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2JsYW1lIG9uIGxhc3QgY29tbWl0ICgtQyAtQywgc3ltbGluayknICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2JsYW1lIG9uIGxhc3QgY29tbWl0ICgtQyAtQywgc3ltbGluayknICcKIAlnaXQgYmxhbWUgLUMgLUMgdGhyZWUuYmluID5ibGFtZSAmJgogCWZpbmRfYmxhbWUgPGJsYW1lID5yZXN1bHQgJiYKIAljYXQgPmV4cGVjdGVkIDw8XEVPRiAmJgpkaWZmIC0tZ2l0IGEvdC90ODAwNy1jYXQtZmlsZS10ZXh0Y29udi5zaCBiL3QvdDgwMDctY2F0LWZpbGUtdGV4dGNvbnYuc2gKaW5kZXggNzhhMDA4NS4uYjk1ZTEwMiAxMDA3NTUKLS0tIGEvdC90ODAwNy1jYXQtZmlsZS10ZXh0Y29udi5zaAorKysgYi90L3Q4MDA3LWNhdC1maWxlLXRleHRjb252LnNoCkBAIC0xMiw5ICsxMiw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwICcgJwogCWVjaG8gImJpbjogdGVzdCIgPm9uZS5iaW4gJiYKLQlpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTOyB0aGVuCi0JCWxuIC1zIG9uZS5iaW4gc3ltbGluay5iaW4KLQlmaSAmJgorCXRlc3RfbG5fc19hZGQgb25lLmJpbiBzeW1saW5rLmJpbiAmJgogCWdpdCBhZGQgLiAmJgogCUdJVF9BVVRIT1JfTkFNRT1OdW1iZXIxIGdpdCBjb21taXQgLWEgLW0gRmlyc3QgLS1kYXRlPSIyMDEwLTAxLTAxIDE4OjAwOjAwIiAmJgogCWVjaG8gImJpbjogdGVzdCB2ZXJzaW9uIDIiID5vbmUuYmluICYmCkBAIC03MiwxNCArNzAsMTQgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCByZXN1bHQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnY2F0LWZpbGUgd2l0aG91dCAtLXRleHRjb252IChzeW1saW5rKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgd2l0aG91dCAtLXRleHRjb252IChzeW1saW5rKScgJwogCWdpdCBjYXQtZmlsZSBibG9iIDpzeW1saW5rLmJpbiA+cmVzdWx0ICYmCiAJcHJpbnRmICIlcyIgIm9uZS5iaW4iID5leHBlY3RlZAogCXRlc3RfY21wIGV4cGVjdGVkIHJlc3VsdAogJwogCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2NhdC1maWxlIC0tdGV4dGNvbnYgb24gaW5kZXggKHN5bWxpbmspJyAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdjYXQtZmlsZSAtLXRleHRjb252IG9uIGluZGV4IChzeW1saW5rKScgJwogCSEgZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgOnN5bWxpbmsuYmluIDI+cmVzdWx0ICYmCiAJY2F0ID5leHBlY3RlZCA8PFxFT0YgJiYKIGZhdGFsOiBnaXQgY2F0LWZpbGUgLS10ZXh0Y29udjogdW5hYmxlIHRvIHJ1biB0ZXh0Y29udiBvbiA6c3ltbGluay5iaW4KQEAgLTg3LDcgKzg1LDcgQEAKIAl0ZXN0X2NtcCBleHBlY3RlZCByZXN1bHQKICcKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnY2F0LWZpbGUgLS10ZXh0Y29udiBvbiBIRUFEIChzeW1saW5rKScgJwordGVzdF9leHBlY3Rfc3VjY2VzcyAnY2F0LWZpbGUgLS10ZXh0Y29udiBvbiBIRUFEIChzeW1saW5rKScgJwogCSEgZ2l0IGNhdC1maWxlIC0tdGV4dGNvbnYgSEVBRDpzeW1saW5rLmJpbiAyPnJlc3VsdCAmJgogCWNhdCA+ZXhwZWN0ZWQgPDxFT0YgJiYKIGZhdGFsOiBnaXQgY2F0LWZpbGUgLS10ZXh0Y29udjogdW5hYmxlIHRvIHJ1biB0ZXh0Y29udiBvbiBIRUFEOnN5bWxpbmsuYmluCmRpZmYgLS1naXQgYS90L3Q5MDAxLXNlbmQtZW1haWwuc2ggYi90L3Q5MDAxLXNlbmQtZW1haWwuc2gKaW5kZXggZWJkNWM1ZC4uMjgxM2FhOSAxMDA3NTUKLS0tIGEvdC90OTAwMS1zZW5kLWVtYWlsLnNoCisrKyBiL3QvdDkwMDEtc2VuZC1lbWFpbC5zaApAQCAtMTcxLDYgKzE3MSw4MSBAQAogRU9GCiAiCiAKK3Rlc3Rfc3VwcHJlc3Nfc2VsZiAoKSB7CisJdGVzdF9jb21taXQgJDMgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQgSEVBRF4iICYmCisKKwl3cml0ZV9zY3JpcHQgY2NjbWQtc2VkIDw8LUVPRiAmJgorCQlzZWQgLW4gLWUgcy9eY2NjbWQtLS8vcCAiXCQxIgorCUVPRgorCisJZ2l0IGNvbW1pdCAtLWFtZW5kIC0tYXV0aG9yPSIkMSA8JDI+IiAtRiAtICYmCisJY2xlYW5fZmFrZV9zZW5kbWFpbCAmJgorCWdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgLTEgPiJzdXBwcmVzcy1zZWxmLSQzLnBhdGNoIiAmJgorCisJZ2l0IHNlbmQtZW1haWwgLS1mcm9tPSIkMSA8JDI+IiBcCisJCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKKwkJLS1jYy1jbWQ9Li9jY2NtZC1zZWQgXAorCQktLXN1cHByZXNzLWNjPXNlbGYgXAorCQktLXNtdHAtc2VydmVyPSIkKHB3ZCkvZmFrZS5zZW5kbWFpbCIgXAorCQlzdXBwcmVzcy1zZWxmLSQzLnBhdGNoICYmCisKKwltdiBtc2d0eHQxIG1zZ3R4dDEtJDMgJiYKKwlzZWQgLWUgJy9eJC9xJyBtc2d0eHQxLSQzID4ibXNnaGRyMS0kMyIgJiYKKwk+ImV4cGVjdGVkLW5vLWNjLSQzIiAmJgorCisJKGdyZXAgJ15DYzonIG1zZ2hkcjEtJDMgPiJhY3R1YWwtbm8tY2MtJDMiOworCSB0ZXN0X2NtcCBleHBlY3RlZC1uby1jYy0kMyBhY3R1YWwtbm8tY2MtJDMpCit9CisKK3Rlc3Rfc3VwcHJlc3Nfc2VsZl91bnF1b3RlZCAoKSB7CisJdGVzdF9zdXBwcmVzc19zZWxmICIkMSIgIiQyIiAidW5xdW90ZWQtJDMiIDw8LUVPRgorCQl0ZXN0IHN1cHByZXNzLWNjLnNlbGYgdW5xdW90ZWQtJDMgd2l0aCBuYW1lICQxIGVtYWlsICQyCisKKwkJdW5xdW90ZWQtJDMKKworCQljY2NtZC0tJDEgPCQyPgorCisJCUNjOiAkMSA8JDI+CisJCVNpZ25lZC1vZmYtYnk6ICQxIDwkMj4KKwlFT0YKK30KKwordGVzdF9zdXBwcmVzc19zZWxmX3F1b3RlZCAoKSB7CisJdGVzdF9zdXBwcmVzc19zZWxmICIkMSIgIiQyIiAicXVvdGVkLSQzIiA8PC1FT0YKKwkJdGVzdCBzdXBwcmVzcy1jYy5zZWxmIHF1b3RlZC0kMyB3aXRoIG5hbWUgJDEgZW1haWwgJDIKKworCQlxdW90ZWQtJDMKKworCQljY2NtZC0tIiQxIiA8JDI+CisKKwkJQ2M6ICQxIDwkMj4KKwkJQ2M6ICIkMSIgPCQyPgorCQlTaWduZWQtb2ZmLWJ5OiAkMSA8JDI+CisJCVNpZ25lZC1vZmYtYnk6ICIkMSIgPCQyPgorCUVPRgorfQorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3NlbGYgbmFtZSBpcyBzdXBwcmVzc2VkJyAiCisJdGVzdF9zdXBwcmVzc19zZWxmX3VucXVvdGVkICdBIFUgVGhvcicgJ2F1dGhvckBleGFtcGxlLmNvbScgXAorCQknc2VsZl9uYW1lX3N1cHByZXNzZWQnCisiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnc2VsZiBuYW1lIHdpdGggZG90IGlzIHN1cHByZXNzZWQnICIKKwl0ZXN0X3N1cHByZXNzX3NlbGZfcXVvdGVkICdBIFUuIFRob3InICdhdXRob3JAZXhhbXBsZS5jb20nIFwKKwkJJ3NlbGZfbmFtZV9kb3Rfc3VwcHJlc3NlZCcKKyIKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdub24tYXNjaWkgc2VsZiBuYW1lIGlzIHN1cHByZXNzZWQnICIKKwl0ZXN0X3N1cHByZXNzX3NlbGZfcXVvdGVkICdGw7zDsW7DvSBOw6Jtw6knICdvZGRfPz1tYWlsQGV4YW1wbGUuY29tJyBcCisJCSdub25fYXNjaWlfc2VsZl9zdXBwcmVzc2VkJworIgorCit0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3Nhbml0aXplZCBzZWxmIG5hbWUgaXMgc3VwcHJlc3NlZCcgIgorCXRlc3Rfc3VwcHJlc3Nfc2VsZl91bnF1b3RlZCAnXCJBIFUuIFRob3JcIicgJ2F1dGhvckBleGFtcGxlLmNvbScgXAorCQknc2VsZl9uYW1lX3Nhbml0aXplZF9zdXBwcmVzc2VkJworIgorCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ1Nob3cgYWxsIGhlYWRlcnMnICcKIAlnaXQgc2VuZC1lbWFpbCBcCiAJCS0tZHJ5LXJ1biBcCkBAIC04ODEsNiArOTU2LDIwIEBACiAJZ3JlcCAiXkZyb206IEbDvMOxbsO9IE7Dom3DqSA8b2RkXz89bWFpbEBleGFtcGxlLmNvbT4iIG1zZ3R4dDEKICcKIAordGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICd1dGY4IHNlbmRlciBpcyBub3QgZHVwbGljYXRlZCcgJworCWNsZWFuX2Zha2Vfc2VuZG1haWwgJiYKKwl0ZXN0X2NvbW1pdCB3ZWlyZF9zZW5kZXIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQgSEVBRF4iICYmCisJZ2l0IGNvbW1pdCAtLWFtZW5kIC0tYXV0aG9yICJGw7zDsW7DvSBOw6Jtw6kgPG9kZF8/PW1haWxAZXhhbXBsZS5jb20+IiAmJgorCWdpdCBmb3JtYXQtcGF0Y2ggLS1zdGRvdXQgLTEgPmZ1bm55X25hbWUucGF0Y2ggJiYKKwlnaXQgc2VuZC1lbWFpbCAtLWZyb209IkbDvMOxbsO9IE7Dom3DqSA8b2RkXz89bWFpbEBleGFtcGxlLmNvbT4iIFwKKwkgIC0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKKwkgIC0tc210cC1zZXJ2ZXI9IiQocHdkKS9mYWtlLnNlbmRtYWlsIiBcCisJICBmdW5ueV9uYW1lLnBhdGNoICYmCisJZ3JlcCAiXkZyb206ICIgbXNndHh0MSA+bXNnZnJvbSAmJgorCXRlc3RfbGluZV9jb3VudCA9IDEgbXNnZnJvbQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3NlbmRlbWFpbC5jb21wb3NlZW5jb2Rpbmcgd29ya3MnICcKIAljbGVhbl9mYWtlX3NlbmRtYWlsICYmCiAJZ2l0IGNvbmZpZyBzZW5kZW1haWwuY29tcG9zZWVuY29kaW5nIGlzby04ODU5LTEgJiYKQEAgLTEwMDMsNTUgKzEwOTIsNiBAQAogCWdyZXAgIkluLVJlcGx5LVRvOiAiIHN0ZG91dAogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ3dhcm5pbmcgd2l0aCBhbiBpbXBsaWNpdCAtLWNoYWluLXJlcGx5LXRvJyAnCi0JZ2l0IHNlbmQtZW1haWwgXAotCS0tZHJ5LXJ1biBcCi0JLS1mcm9tPSJFeGFtcGxlIDxub2JvZHlAZXhhbXBsZS5jb20+IiBcCi0JLS10bz1ub2JvZHlAZXhhbXBsZS5jb20gXAotCW91dGRpci8wMDA/LSoucGF0Y2ggMj5lcnJvcnMgPm91dCAmJgotCWdyZXAgIm5vLWNoYWluLXJlcGx5LXRvIiBlcnJvcnMKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdubyB3YXJuaW5nIHdpdGggYW4gZXhwbGljaXQgLS1jaGFpbi1yZXBseS10bycgJwotCWdpdCBzZW5kLWVtYWlsIFwKLQktLWRyeS1ydW4gXAotCS0tZnJvbT0iRXhhbXBsZSA8bm9ib2R5QGV4YW1wbGUuY29tPiIgXAotCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKLQktLWNoYWluLXJlcGx5LXRvIFwKLQlvdXRkaXIvMDAwPy0qLnBhdGNoIDI+ZXJyb3JzID5vdXQgJiYKLQkhIGdyZXAgIm5vLWNoYWluLXJlcGx5LXRvIiBlcnJvcnMKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAkUFJFUkVRICdubyB3YXJuaW5nIHdpdGggYW4gZXhwbGljaXQgLS1uby1jaGFpbi1yZXBseS10bycgJwotCWdpdCBzZW5kLWVtYWlsIFwKLQktLWRyeS1ydW4gXAotCS0tZnJvbT0iRXhhbXBsZSA8bm9ib2R5QGV4YW1wbGUuY29tPiIgXAotCS0tdG89bm9ib2R5QGV4YW1wbGUuY29tIFwKLQktLW5vY2hhaW4tcmVwbHktdG8gXAotCW91dGRpci8wMDA/LSoucGF0Y2ggMj5lcnJvcnMgPm91dCAmJgotCSEgZ3JlcCAibm8tY2hhaW4tcmVwbHktdG8iIGVycm9ycwotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICRQUkVSRVEgJ25vIHdhcm5pbmcgd2l0aCBzZW5kZW1haWwuY2hhaW5yZXBseXRvID0gZmFsc2UnICcKLQlnaXQgY29uZmlnIHNlbmRlbWFpbC5jaGFpbnJlcGx5dG8gZmFsc2UgJiYKLQlnaXQgc2VuZC1lbWFpbCBcCi0JLS1kcnktcnVuIFwKLQktLWZyb209IkV4YW1wbGUgPG5vYm9keUBleGFtcGxlLmNvbT4iIFwKLQktLXRvPW5vYm9keUBleGFtcGxlLmNvbSBcCi0Jb3V0ZGlyLzAwMD8tKi5wYXRjaCAyPmVycm9ycyA+b3V0ICYmCi0JISBncmVwICJuby1jaGFpbi1yZXBseS10byIgZXJyb3JzCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnbm8gd2FybmluZyB3aXRoIHNlbmRlbWFpbC5jaGFpbnJlcGx5dG8gPSB0cnVlJyAnCi0JZ2l0IGNvbmZpZyBzZW5kZW1haWwuY2hhaW5yZXBseXRvIHRydWUgJiYKLQlnaXQgc2VuZC1lbWFpbCBcCi0JLS1kcnktcnVuIFwKLQktLWZyb209IkV4YW1wbGUgPG5vYm9keUBleGFtcGxlLmNvbT4iIFwKLQktLXRvPW5vYm9keUBleGFtcGxlLmNvbSBcCi0Jb3V0ZGlyLzAwMD8tKi5wYXRjaCAyPmVycm9ycyA+b3V0ICYmCi0JISBncmVwICJuby1jaGFpbi1yZXBseS10byIgZXJyb3JzCi0nCi0KIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJFBSRVJFUSAnc2VuZGVtYWlsLnRvIHdvcmtzJyAnCiAJZ2l0IGNvbmZpZyAtLXJlcGxhY2UtYWxsIHNlbmRlbWFpbC50byAiU29tZWJvZHkgPHNvbWVib2R5QGV4LmNvbT4iICYmCiAJZ2l0IHNlbmQtZW1haWwgXApkaWZmIC0tZ2l0IGEvdC90OTAyMC1yZW1vdGUtc3ZuLnNoIGIvdC90OTAyMC1yZW1vdGUtc3ZuLnNoCmluZGV4IGQ5ZjZiNzMuLjRkODFiYTEgMTAwNzU1Ci0tLSBhL3QvdDkwMjAtcmVtb3RlLXN2bi5zaAorKysgYi90L3Q5MDIwLXJlbW90ZS1zdm4uc2gKQEAgLTI0LDcgKzI0LDcgQEAKIAlybSAtZnIgLmdpdCAmJgogCWdpdCBpbml0ICYmCiAJI2dpdCByZW1vdGUgYWRkIHN2bnNpbSB0ZXN0c3ZuOjpzaW06Ly8vJFRFU1RfRElSRUNUT1JZL3Q5MDIwL2V4YW1wbGUuc3ZucmR1bXAKLQkjIGxldCdzIHJldXNlIGFuIGV4aXNpdGluZyBkdW1wIGZpbGUhPworCSMgbGV0J3MgcmV1c2UgYW4gZXhpc3RpbmcgZHVtcCBmaWxlIT8KIAlnaXQgcmVtb3RlIGFkZCBzdm5zaW0gdGVzdHN2bjo6c2ltOi8vJFRFU1RfRElSRUNUT1JZL3Q5MTU0L3N2bi5kdW1wCiAJZ2l0IHJlbW90ZSBhZGQgc3ZuZmlsZSB0ZXN0c3ZuOjpmaWxlOi8vJFRFU1RfRElSRUNUT1JZL3Q5MTU0L3N2bi5kdW1wCiB9CmRpZmYgLS1naXQgYS90L3Q5MTEyLWdpdC1zdm4tbWQ1bGVzcy1maWxlLnNoIGIvdC90OTExMi1naXQtc3ZuLW1kNWxlc3MtZmlsZS5zaAppbmRleCBhNjFkNjcxLi45ODYxYzcxIDEwMDc1NQotLS0gYS90L3Q5MTEyLWdpdC1zdm4tbWQ1bGVzcy1maWxlLnNoCisrKyBiL3QvdDkxMTItZ2l0LXN2bi1tZDVsZXNzLWZpbGUuc2gKQEAgLTcsNyArNyw3IEBACiAjIExvYWRpbmcgYSBub2RlIGZyb20gYSBzdm4gZHVtcGZpbGUgd2l0aG91dCBhIFRleHQtQ29udGVudC1MZW5ndGgKICMgZmllbGQgY2F1c2VzIHN2biB0byBuZWdsZWN0IHRvIHN0b3JlIG9yIHJlcG9ydCBhbiBtZDVzdW0uICAoaXQgd2lsbAogIyBjYWxjdWxhdGUgb25lIGlmIHlvdSBoYWQgcHV0IFRleHQtQ29udGVudC1MZW5ndGg6IDApLiAgVGhpcyBzaG93ZWQKLSMgdXAgaW4gYSByZXBvc2l0b3J5IGNyZXRlZCB3aXRoIGN2czJzdm4uCisjIHVwIGluIGEgcmVwb3NpdG9yeSBjcmVhdGVkIHdpdGggY3ZzMnN2bi4KIAogY2F0ID4gZHVtcGZpbGUuc3ZuIDw8RU9GCiBTVk4tZnMtZHVtcC1mb3JtYXQtdmVyc2lvbjogMQpkaWZmIC0tZ2l0IGEvdC90OTExNC1naXQtc3ZuLWRjb21taXQtbWVyZ2Uuc2ggYi90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaAppbmRleCAzMDc3ODUxLi5mNTI0ZDJmIDEwMDc1NQotLS0gYS90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaAorKysgYi90L3Q5MTE0LWdpdC1zdm4tZGNvbW1pdC1tZXJnZS5zaApAQCAtNDgsNyArNDgsNyBAQAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgZ2l0IG1pcnJvciBhbmQgbWVyZ2UnICcKIAlnaXQgc3ZuIGluaXQgIiRzdm5yZXBvIiAtdCB0YWdzIC1UIHRydW5rIC1iIGJyYW5jaGVzICYmCiAJZ2l0IHN2biBmZXRjaCAmJgotCWdpdCBjaGVja291dCAtLXRyYWNrIC1iIHN2biByZW1vdGVzL3RydW5rICYmCisJZ2l0IGNoZWNrb3V0IC1iIHN2biByZW1vdGVzL3RydW5rICYmCiAJZ2l0IGNoZWNrb3V0IC1iIG1lcmdlICYmCiAJZWNobyBuZXcgZmlsZSA+IG5ld19maWxlICYmCiAJZ2l0IGFkZCBuZXdfZmlsZSAmJgpkaWZmIC0tZ2l0IGEvdC90OTE0Ny1naXQtc3ZuLWluY2x1ZGUtcGF0aHMuc2ggYi90L3Q5MTQ3LWdpdC1zdm4taW5jbHVkZS1wYXRocy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOTBmZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvdC90OTE0Ny1naXQtc3ZuLWluY2x1ZGUtcGF0aHMuc2gKQEAgLTAsMCArMSwxNDkgQEAKKyMhL2Jpbi9zaAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgUGF1bCBXYWxtc2xleSAtIGJhc2VkIG9uIHQ5MTM0IGJ5IFZpdGFseSBTaHVrZWxhCisjCisKK3Rlc3RfZGVzY3JpcHRpb249J2dpdCBzdm4gcHJvcGVydHkgdGVzdHMnCisuIC4vbGliLWdpdC1zdm4uc2gKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnc2V0dXAgdGVzdCByZXBvc2l0b3J5JyAnCisJc3ZuX2NtZCBjbyAiJHN2bnJlcG8iIHMgJiYKKwkoCisJCWNkIHMgJiYKKwkJbWtkaXIgcXFxIHd3dyB4eHggJiYKKwkJZWNobyB0ZXN0X3FxcSA+IHFxcS90ZXN0X3FxcS50eHQgJiYKKwkJZWNobyB0ZXN0X3d3dyA+IHd3dy90ZXN0X3d3dy50eHQgJiYKKwkJZWNobyB0ZXN0X3h4eCA+IHh4eC90ZXN0X3h4eC50eHQgJiYKKwkJc3ZuX2NtZCBhZGQgcXFxICYmCisJCXN2bl9jbWQgYWRkIHd3dyAmJgorCQlzdm5fY21kIGFkZCB4eHggJiYKKwkJc3ZuX2NtZCBjb21taXQgLW0gImNyZWF0ZSBzb21lIGZpbGVzIiAmJgorCQlzdm5fY21kIHVwICYmCisJCWVjaG8gaGkgPj4gd3d3L3Rlc3Rfd3d3LnR4dCAmJgorCQlzdm5fY21kIGNvbW1pdCAtbSAibW9kaWZ5IHd3dy90ZXN0X3d3dy50eHQiICYmCisJCXN2bl9jbWQgdXAKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2Nsb25lIGFuIFNWTiByZXBvc2l0b3J5IHdpdGggZmlsdGVyIHRvIGluY2x1ZGUgcXFxIGRpcmVjdG9yeScgJworCWdpdCBzdm4gY2xvbmUgLS1pbmNsdWRlLXBhdGhzPSJxcXEiICIkc3ZucmVwbyIgZyAmJgorCWVjaG8gdGVzdF9xcXEgPiBleHBlY3QgJiYKKwlmb3IgaSBpbiBnLyovKi50eHQ7IGRvIGNhdCAkaSA+PiBleHBlY3QyOyBkb25lICYmCisJdGVzdF9jbXAgZXhwZWN0IGV4cGVjdDIKKycKKworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdpbml0K2ZldGNoIGFuIFNWTiByZXBvc2l0b3J5IHdpdGggaW5jbHVkZWQgcXFxIGRpcmVjdG9yeScgJworCWdpdCBzdm4gaW5pdCAiJHN2bnJlcG8iIGMgJiYKKwkoIGNkIGMgJiYgZ2l0IHN2biBmZXRjaCAtLWluY2x1ZGUtcGF0aHM9InFxcSIgKSAmJgorCXJtIGV4cGVjdDIgJiYKKwllY2hvIHRlc3RfcXFxID4gZXhwZWN0ICYmCisJZm9yIGkgaW4gYy8qLyoudHh0OyBkbyBjYXQgJGkgPj4gZXhwZWN0MjsgZG9uZSAmJgorCXRlc3RfY21wIGV4cGVjdCBleHBlY3QyCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZlcmlmeSBpbmNsdWRlLXBhdGhzIGNvbmZpZyBzYXZlZCBieSBjbG9uZScgJworCSgKKwkgICAgY2QgZyAmJgorCSAgICBnaXQgY29uZmlnIC0tZ2V0IHN2bi1yZW1vdGUuc3ZuLmluY2x1ZGUtcGF0aHMgfCBmZ3JlcCAicXFxIgorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnU1ZOLXNpZGUgY2hhbmdlIG91dHNpZGUgb2Ygd3d3JyAnCisJKAorCQljZCBzICYmCisJCWVjaG8gYiA+PiBxcXEvdGVzdF9xcXEudHh0ICYmCisJCXN2bl9jbWQgY29tbWl0IC1tICJTVk4tc2lkZSBjaGFuZ2Ugb3V0c2lkZSBvZiB3d3ciICYmCisJCXN2bl9jbWQgdXAgJiYKKwkJc3ZuX2NtZCBsb2cgLXYgfCBmZ3JlcCAiU1ZOLXNpZGUgY2hhbmdlIG91dHNpZGUgb2Ygd3d3IgorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGdpdCBzdm4tY2xvbmVkIHJlcG8gKGNvbmZpZyBpbmNsdWRlKScgJworCSgKKwkJY2QgZyAmJgorCQlnaXQgc3ZuIHJlYmFzZSAmJgorCQlwcmludGYgInRlc3RfcXFxXG5iXG4iID4gZXhwZWN0ICYmCisJCWZvciBpIGluICovKi50eHQ7IGRvIGNhdCAkaSA+PiBleHBlY3QyOyBkb25lICYmCisJCXRlc3RfY21wIGV4cGVjdDIgZXhwZWN0ICYmCisJCXJtIGV4cGVjdCBleHBlY3QyCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUgZ2l0IHN2bi1jbG9uZWQgcmVwbyAob3B0aW9uIGluY2x1ZGUpJyAnCisJKAorCQljZCBjICYmCisJCWdpdCBzdm4gcmViYXNlIC0taW5jbHVkZS1wYXRocz0icXFxIiAmJgorCQlwcmludGYgInRlc3RfcXFxXG5iXG4iID4gZXhwZWN0ICYmCisJCWZvciBpIGluICovKi50eHQ7IGRvIGNhdCAkaSA+PiBleHBlY3QyOyBkb25lICYmCisJCXRlc3RfY21wIGV4cGVjdDIgZXhwZWN0ICYmCisJCXJtIGV4cGVjdCBleHBlY3QyCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdTVk4tc2lkZSBjaGFuZ2UgaW5zaWRlIG9mIGlnbm9yZWQgd3d3JyAnCisJKAorCQljZCBzICYmCisJCWVjaG8gemFxID4+IHd3dy90ZXN0X3d3dy50eHQKKwkJc3ZuX2NtZCBjb21taXQgLW0gIlNWTi1zaWRlIGNoYW5nZSBpbnNpZGUgb2Ygd3d3L3Rlc3Rfd3d3LnR4dCIgJiYKKwkJc3ZuX2NtZCB1cCAmJgorCQlzdm5fY21kIGxvZyAtdiB8IGZncmVwICJTVk4tc2lkZSBjaGFuZ2UgaW5zaWRlIG9mIHd3dy90ZXN0X3d3dy50eHQiCisJKQorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1cGRhdGUgZ2l0IHN2bi1jbG9uZWQgcmVwbyAoY29uZmlnIGluY2x1ZGUpJyAnCisJKAorCQljZCBnICYmCisJCWdpdCBzdm4gcmViYXNlICYmCisJCXByaW50ZiAidGVzdF9xcXFcbmJcbiIgPiBleHBlY3QgJiYKKwkJZm9yIGkgaW4gKi8qLnR4dDsgZG8gY2F0ICRpID4+IGV4cGVjdDI7IGRvbmUgJiYKKwkJdGVzdF9jbXAgZXhwZWN0MiBleHBlY3QgJiYKKwkJcm0gZXhwZWN0IGV4cGVjdDIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSBnaXQgc3ZuLWNsb25lZCByZXBvIChvcHRpb24gaW5jbHVkZSknICcKKwkoCisJCWNkIGMgJiYKKwkJZ2l0IHN2biByZWJhc2UgLS1pbmNsdWRlLXBhdGhzPSJxcXEiICYmCisJCXByaW50ZiAidGVzdF9xcXFcbmJcbiIgPiBleHBlY3QgJiYKKwkJZm9yIGkgaW4gKi8qLnR4dDsgZG8gY2F0ICRpID4+IGV4cGVjdDI7IGRvbmUgJiYKKwkJdGVzdF9jbXAgZXhwZWN0MiBleHBlY3QgJiYKKwkJcm0gZXhwZWN0IGV4cGVjdDIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ1NWTi1zaWRlIGNoYW5nZSBpbiBhbmQgb3V0IG9mIGluY2x1ZGVkIHFxcScgJworCSgKKwkJY2QgcyAmJgorCQllY2hvIGN2ZiA+PiB3d3cvdGVzdF93d3cudHh0CisJCWVjaG8geWdnID4+IHFxcS90ZXN0X3FxcS50eHQKKwkJc3ZuX2NtZCBjb21taXQgLW0gIlNWTi1zaWRlIGNoYW5nZSBpbiBhbmQgb3V0IG9mIGlnbm9yZWQgd3d3IiAmJgorCQlzdm5fY21kIHVwICYmCisJCXN2bl9jbWQgbG9nIC12IHwgZmdyZXAgIlNWTi1zaWRlIGNoYW5nZSBpbiBhbmQgb3V0IG9mIGlnbm9yZWQgd3d3IgorCSkKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAndXBkYXRlIGdpdCBzdm4tY2xvbmVkIHJlcG8gYWdhaW4gKGNvbmZpZyBpbmNsdWRlKScgJworCSgKKwkJY2QgZyAmJgorCQlnaXQgc3ZuIHJlYmFzZSAmJgorCQlwcmludGYgInRlc3RfcXFxXG5iXG55Z2dcbiIgPiBleHBlY3QgJiYKKwkJZm9yIGkgaW4gKi8qLnR4dDsgZG8gY2F0ICRpID4+IGV4cGVjdDI7IGRvbmUgJiYKKwkJdGVzdF9jbXAgZXhwZWN0MiBleHBlY3QgJiYKKwkJcm0gZXhwZWN0IGV4cGVjdDIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3VwZGF0ZSBnaXQgc3ZuLWNsb25lZCByZXBvIGFnYWluIChvcHRpb24gaW5jbHVkZSknICcKKwkoCisJCWNkIGMgJiYKKwkJZ2l0IHN2biByZWJhc2UgLS1pbmNsdWRlLXBhdGhzPSJxcXEiICYmCisJCXByaW50ZiAidGVzdF9xcXFcbmJcbnlnZ1xuIiA+IGV4cGVjdCAmJgorCQlmb3IgaSBpbiAqLyoudHh0OyBkbyBjYXQgJGkgPj4gZXhwZWN0MjsgZG9uZSAmJgorCQl0ZXN0X2NtcCBleHBlY3QyIGV4cGVjdCAmJgorCQlybSBleHBlY3QgZXhwZWN0MgorCSkKKycKKwordGVzdF9kb25lCmRpZmYgLS1naXQgYS90L3Q5MTYxLWdpdC1zdm4tbWVyZ2VpbmZvLXB1c2guc2ggYi90L3Q5MTYxLWdpdC1zdm4tbWVyZ2VpbmZvLXB1c2guc2gKaW5kZXggNmVmMGMwYi4uMWVhYjcwMSAxMDA3NTUKLS0tIGEvdC90OTE2MS1naXQtc3ZuLW1lcmdlaW5mby1wdXNoLnNoCisrKyBiL3QvdDkxNjEtZ2l0LXN2bi1tZXJnZWluZm8tcHVzaC5zaApAQCAtODgsNyArODgsNiBAQAogCXRlc3QgIiRtZXJnZWluZm8iID0gIi9icmFuY2hlcy9zdm5iMToyLTQsNy05LDEzLTE4CiAvYnJhbmNoZXMvc3ZuYjI6Myw4LDE2LTE3CiAvYnJhbmNoZXMvc3ZuYjM6NCw5Ci0vYnJhbmNoZXMvc3ZuYjQ6NS02LDEwLTEyCiAvYnJhbmNoZXMvc3ZuYjU6NiwxMSIKIAknCiAKZGlmZiAtLWdpdCBhL3QvdDkxNjctZ2l0LXN2bi1jbWQtYnJhbmNoLXN1YnByb2plY3Quc2ggYi90L3Q5MTY3LWdpdC1zdm4tY21kLWJyYW5jaC1zdWJwcm9qZWN0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUzZGVmODcKLS0tIC9kZXYvbnVsbAorKysgYi90L3Q5MTY3LWdpdC1zdm4tY21kLWJyYW5jaC1zdWJwcm9qZWN0LnNoCkBAIC0wLDAgKzEsNDggQEAKKyMhL2Jpbi9zaAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgVG9iaWFzIFNjaHVsdGUKKyMKKwordGVzdF9kZXNjcmlwdGlvbj0nZ2l0IHN2biBicmFuY2ggZm9yIHN1YnByb2plY3QgY2xvbmVzJworLiAuL2xpYi1naXQtc3ZuLnNoCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2luaXRpYWxpemUgc3ZucmVwbycgJworCW1rZGlyIGltcG9ydCAmJgorCSgKKwkJY2QgaW1wb3J0ICYmCisJCW1rZGlyIC1wIHRydW5rL3Byb2plY3QgYnJhbmNoZXMgdGFncyAmJgorCQkoCisJCQljZCB0cnVuay9wcm9qZWN0ICYmCisJCQllY2hvIGZvbyA+IGZvbworCQkpICYmCisJCXN2bl9jbWQgaW1wb3J0IC1tICJpbXBvcnQgZm9yIGdpdC1zdm4iIC4gIiRzdm5yZXBvIiA+L2Rldi9udWxsCisJKSAmJgorCXJtIC1yZiBpbXBvcnQgJiYKKwlzdm5fY21kIGNvICIkc3ZucmVwbyIvdHJ1bmsvcHJvamVjdCB0cnVuay9wcm9qZWN0ICYmCisJKAorCQljZCB0cnVuay9wcm9qZWN0ICYmCisJCWVjaG8gYmFyID4+IGZvbyAmJgorCQlzdm5fY21kIGNpIC1tICJ1cGRhdGVkIHRydW5rIgorCSkgJiYKKwlybSAtcmYgdHJ1bmsKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnaW1wb3J0IGludG8gZ2l0JyAnCisJZ2l0IHN2biBpbml0IC0tdHJ1bms9dHJ1bmsvcHJvamVjdCAtLWJyYW5jaGVzPWJyYW5jaGVzLyovcHJvamVjdCBcCisJCS0tdGFncz10YWdzLyovcHJvamVjdCAiJHN2bnJlcG8iICYmCisJZ2l0IHN2biBmZXRjaCAmJgorCWdpdCBjaGVja291dCByZW1vdGVzL3RydW5rCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdCBzdm4gYnJhbmNoIHRlc3RzJyAnCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN2biBicmFuY2ggYSAmJgorCWdpdCBzdm4gYnJhbmNoIC0tcGFyZW50cyBhICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN2biBicmFuY2ggLXQgdGFnMSAmJgorCWdpdCBzdm4gYnJhbmNoIC0tcGFyZW50cyAtdCB0YWcxICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN2biBicmFuY2ggLS10YWcgdGFnMiAmJgorCWdpdCBzdm4gYnJhbmNoIC0tcGFyZW50cyAtLXRhZyB0YWcyICYmCisJdGVzdF9tdXN0X2ZhaWwgZ2l0IHN2biB0YWcgdGFnMyAmJgorCWdpdCBzdm4gdGFnIC0tcGFyZW50cyB0YWczCisnCisKK3Rlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaCBiL3QvdDkzNTAtZmFzdC1leHBvcnQuc2gKaW5kZXggMjQ3MWJjNi4uMzRjMmQ4ZiAxMDA3NTUKLS0tIGEvdC90OTM1MC1mYXN0LWV4cG9ydC5zaAorKysgYi90L3Q5MzUwLWZhc3QtZXhwb3J0LnNoCkBAIC0zOTYsNyArMzk2LDcgQEAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhZy1vYmpfdGFnJyAgICAgJ2dpdCBmYXN0LWV4cG9ydCB0YWctb2JqX3RhZycKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3RhZy1vYmpfdGFnLW9iaicgJ2dpdCBmYXN0LWV4cG9ydCB0YWctb2JqX3RhZy1vYmonCiAKLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ2RpcmVjdG9yeSBiZWNvbWVzIHN5bWxpbmsnICAgICAgICAnCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdkaXJlY3RvcnkgYmVjb21lcyBzeW1saW5rJyAgICAgICAgJwogCWdpdCBpbml0IGRpcnRvc3ltbGluayAmJgogCWdpdCBpbml0IHJlc3VsdCAmJgogCSgKQEAgLTQwOCw4ICs0MDgsNyBAQAogCQlnaXQgYWRkIGZvby93b3JsZCBiYXIvd29ybGQgJiYKIAkJZ2l0IGNvbW1pdCAtcSAtbW9uZSAmJgogCQlnaXQgcm0gLXIgZm9vICYmCi0JCWxuIC1zIGJhciBmb28gJiYKLQkJZ2l0IGFkZCBmb28gJiYKKwkJdGVzdF9sbl9zX2FkZCBiYXIgZm9vICYmCiAJCWdpdCBjb21taXQgLXEgLW10d28KIAkpICYmCiAJKApkaWZmIC0tZ2l0IGEvdC90OTQwMi1naXQtY3Zzc2VydmVyLXJlZnMuc2ggYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAppbmRleCA3MzVhMDE4Li5kYjY5YWYyIDEwMDc1NQotLS0gYS90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaAorKysgYi90L3Q5NDAyLWdpdC1jdnNzZXJ2ZXItcmVmcy5zaApAQCAtMzMwLDcgKzMzMCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3ZhbGlkYXRlIGJhc2ljIGRpZmZzIHNhdmVkIGR1cmluZyBhYm92ZSBjdnN3b3JrMiBlZGl0cycgJwogCXRlc3QgJChncmVwIEluZGV4OiBjdnNFZGl0MS5kaWZmIHwgd2MgLWwpID0gMSAmJgotCXRlc3QgISAtcyBjdnNFZGl0Mi1lbXB0eS5kaWZmICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2c0VkaXQyLWVtcHR5LmRpZmYgJiYKIAl0ZXN0ICQoZ3JlcCBJbmRleDogY3ZzRWRpdDItTi5kaWZmIHwgd2MgLWwpID0gMSAmJgogCXRlc3QgJChncmVwIEluZGV4OiBjdnNFZGl0My5kaWZmIHwgd2MgLWwpID0gMyAmJgogCXJtIC1yZiBkaWZmU2FuZGJveCAmJgpAQCAtNDU2LDIwICs0NTYsMjAgQEAKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAnY3ZzIGRpZmYgLXIgdjEgLXUnICcKIAkoIGNkIGN2c3dvcmsgJiYgY3ZzIC1mIGRpZmYgLXIgdjEgLXUgKSA+Y3ZzRGlmZi5vdXQgMj5jdnMubG9nICYmCi0JdGVzdCAhIC1zIGN2c0RpZmYub3V0ICYmCi0JdGVzdCAhIC1zIGN2cy5sb2cKKwl0ZXN0X211c3RfYmVfZW1wdHkgY3ZzRGlmZi5vdXQgJiYKKwl0ZXN0X211c3RfYmVfZW1wdHkgY3ZzLmxvZwogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjdnMgZGlmZiAtTiAtciB2MiAtdScgJwogCSggY2QgY3Zzd29yayAmJiAhIGN2cyAtZiBkaWZmIC1OIC1yIHYyIC11ICkgPmN2c0RpZmYub3V0IDI+Y3ZzLmxvZyAmJgotCXRlc3QgISAtcyBjdnMubG9nICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2cy5sb2cgJiYKIAl0ZXN0IC1zIGN2c0RpZmYub3V0ICYmCiAJY2hlY2tfZGlmZiBjdnNEaWZmLm91dCB2MiB2MSA+Y2hlY2tfZGlmZi5vdXQgMj4mMQogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdjdnMgZGlmZiAtTiAtciB2MiAtciB2MS4yJyAnCiAJKCBjZCBjdnN3b3JrICYmICEgY3ZzIC1mIGRpZmYgLU4gLXIgdjIgLXIgdjEuMiAtdSApID5jdnNEaWZmLm91dCAyPmN2cy5sb2cgJiYKLQl0ZXN0ICEgLXMgY3ZzLmxvZyAmJgorCXRlc3RfbXVzdF9iZV9lbXB0eSBjdnMubG9nICYmCiAJdGVzdCAtcyBjdnNEaWZmLm91dCAmJgogCWNoZWNrX2RpZmYgY3ZzRGlmZi5vdXQgdjIgdjEuMiA+Y2hlY2tfZGlmZi5vdXQgMj4mMQogJwpAQCAtNDg4LDcgKzQ4OCw3IEBACiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NoZWNrIFtjdnN3b3JrM10gZGlmZicgJwogCSggY2QgY3Zzd29yazMgJiYgISBjdnMgLWYgZGlmZiAtTiAtdSApID4iJFdPUktESVIvY3ZzRGlmZi5vdXQiIDI+Y3ZzLmxvZyAmJgotCXRlc3QgISAtcyBjdnMubG9nICYmCisJdGVzdF9tdXN0X2JlX2VtcHR5IGN2cy5sb2cgJiYKIAl0ZXN0IC1zIGN2c0RpZmYub3V0ICYmCiAJdGVzdCAkKGdyZXAgSW5kZXg6IGN2c0RpZmYub3V0IHwgd2MgLWwpID0gMyAmJgogCXRlc3RfY21wIGN2c0RpZmYub3V0IGN2c3dvcmszZWRpdC5kaWZmICYmCmRpZmYgLS1naXQgYS90L3Q5NTAwLWdpdHdlYi1zdGFuZGFsb25lLW5vLWVycm9ycy5zaCBiL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCmluZGV4IDY3ODNjMTQuLjZmY2ExOTMgMTAwNzU1Ci0tLSBhL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCisrKyBiL3QvdDk1MDAtZ2l0d2ViLXN0YW5kYWxvbmUtbm8tZXJyb3JzLnNoCkBAIC0xNTYsMTAgKzE1NiwxMCBAQAogCSBnaXQgY29tbWl0IC1hIC1tICJGaWxlIHJlbmFtZWQuIiAmJgogCSBnaXR3ZWJfcnVuICJwPS5naXQ7YT1jb21taXRkaWZmIicKIAotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyBcCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFwKIAknY29tbWl0ZGlmZigwKTogZmlsZSB0byBzeW1saW5rJyBcCiAJJ3JtIHJlbmFtZWRfZmlsZSAmJgotCSBsbiAtcyBmaWxlIHJlbmFtZWRfZmlsZSAmJgorCSB0ZXN0X2xuX3NfYWRkIGZpbGUgcmVuYW1lZF9maWxlICYmCiAJIGdpdCBjb21taXQgLWEgLW0gIkZpbGUgdG8gc3ltbGluay4iICYmCiAJIGdpdHdlYl9ydW4gInA9LmdpdDthPWNvbW1pdGRpZmYiJwogCkBAIC0yMTIsMTUgKzIxMiwxNCBAQAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIGNvbW1pdGRpZmYgdGVzdGluZyAodGFrZW4gZnJvbSB0NDExNC1hcHBseS10eXBlY2hhbmdlLnNoKQogCi10ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdzZXR1cCB0eXBlY2hhbmdlIGNvbW1pdHMnICcKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIHR5cGVjaGFuZ2UgY29tbWl0cycgJwogCWVjaG8gImhlbGxvIHdvcmxkIiA+IGZvbyAmJgogCWVjaG8gImhpIHBsYW5ldCIgPiBiYXIgJiYKIAlnaXQgdXBkYXRlLWluZGV4IC0tYWRkIGZvbyBiYXIgJiYKIAlnaXQgY29tbWl0IC1tIGluaXRpYWwgJiYKIAlnaXQgYnJhbmNoIGluaXRpYWwgJiYKIAlybSAtZiBmb28gJiYKLQlsbiAtcyBiYXIgZm9vICYmCi0JZ2l0IHVwZGF0ZS1pbmRleCBmb28gJiYKKwl0ZXN0X2xuX3NfYWRkIGJhciBmb28gJiYKIAlnaXQgY29tbWl0IC1tICJmb28gc3ltbGlua2VkIHRvIGJhciIgJiYKIAlnaXQgYnJhbmNoIGZvby1zeW1saW5rZWQtdG8tYmFyICYmCiAJcm0gLWYgZm9vICYmCkBAIC0zNjEsMTEgKzM2MCw3IEBACiAJIGVjaG8gIkNoYW5nZWQiID4+IDA0LXJlbmFtZS10byAmJgogCSB0ZXN0X2NobW9kICt4IDA1LW1vZGUtY2hhbmdlICYmCiAJIHJtIC1mIDA2LWZpbGUtb3Itc3ltbGluayAmJgotCSBpZiB0ZXN0X2hhdmVfcHJlcmVxIFNZTUxJTktTOyB0aGVuCi0JCWxuIC1zIDAxLWNoYW5nZSAwNi1maWxlLW9yLXN5bWxpbmsKLQkgZWxzZQotCQlwcmludGYgJXMgMDEtY2hhbmdlID4gMDYtZmlsZS1vci1zeW1saW5rCi0JIGZpICYmCisJIHRlc3RfbG5fc19hZGQgMDEtY2hhbmdlIDA2LWZpbGUtb3Itc3ltbGluayAmJgogCSBlY2hvICJDaGFuZ2VkIGFuZCBoYXZlIG1vZGUgY2hhbmdlZCIgPiAwNy1jaGFuZ2UtbW9kZS1jaGFuZ2UJJiYKIAkgdGVzdF9jaG1vZCAreCAwNy1jaGFuZ2UtbW9kZS1jaGFuZ2UgJiYKIAkgZ2l0IGNvbW1pdCAtYSAtbSAiTGFyZ2UgY29tbWl0IiAmJgpkaWZmIC0tZ2l0IGEvdC90OTgwMS1naXQtcDQtYnJhbmNoLnNoIGIvdC90OTgwMS1naXQtcDQtYnJhbmNoLnNoCmluZGV4IDk3MzA4MjEuLjJiZjE0MmQgMTAwNzU1Ci0tLSBhL3QvdDk4MDEtZ2l0LXA0LWJyYW5jaC5zaAorKysgYi90L3Q5ODAxLWdpdC1wNC1icmFuY2guc2gKQEAgLTQ2OSw5ICs0NjksMTEgQEAKIAkJVmlldzogLy9kZXBvdC91c2Vjcy9iMS8uLi4gLy9kZXBvdC91c2Vjcy9iMy8uLi4KIAkJRU9GCiAKLQkJZWNobyBiMy9iMy1maWxlMyA+YjMvYjMtZmlsZTMgJiYKLQkJcDQgYWRkIGIzL2IzLWZpbGUzICYmCi0JCXA0IHN1Ym1pdCAtZCAiYjMvYjMtZmlsZTMiCisJCWVjaG8gYjMvYjMtZmlsZTNfMSA+YjMvYjMtZmlsZTNfMSAmJgorCQllY2hvIGIzL2IzLWZpbGUzXzIgPmIzL2IzLWZpbGUzXzIgJiYKKwkJcDQgYWRkIGIzL2IzLWZpbGUzXzEgJiYKKwkJcDQgYWRkIGIzL2IzLWZpbGUzXzIgJiYKKwkJcDQgc3VibWl0IC1kICJiMy9iMy1maWxlM18xIGIzL2IzLWZpbGUzXzIiCiAJKQogJwogCkBAIC00ODcsNiArNDg5LDIxIEBACiAJKQogJwogCit0ZXN0X2V4cGVjdF9zdWNjZXNzICd1c2UtY2xpZW50LXNwZWMgZGV0ZWN0LWJyYW5jaGVzIHNraXBzIGZpbGVzIGluIGJyYW5jaGVzJyAnCisJY2xpZW50X3ZpZXcgIi8vZGVwb3QvdXNlY3MvLi4uIC8vY2xpZW50Ly4uLiIgXAorCQkgICAgIi0vL2RlcG90L3VzZWNzL2IzL2IzLWZpbGUzXzEgLy9jbGllbnQvYjMvYjMtZmlsZTNfMSIgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgY2xlYW51cF9naXQgJiYKKwl0ZXN0X2NyZWF0ZV9yZXBvICIkZ2l0IiAmJgorCSgKKwkJY2QgIiRnaXQiICYmCisJCWdpdCBwNCBzeW5jIC0tZGV0ZWN0LWJyYW5jaGVzIC0tdXNlLWNsaWVudC1zcGVjIC8vZGVwb3QvdXNlY3NAYWxsICYmCisJCWdpdCBjaGVja291dCAtYiBtYXN0ZXIgcDQvdXNlY3MvYjMgJiYKKwkJdGVzdF9wYXRoX2lzX2ZpbGUgYjEtZmlsZTEgJiYKKwkJdGVzdF9wYXRoX2lzX2ZpbGUgYjMtZmlsZTNfMiAmJgorCQl0ZXN0X3BhdGhfaXNfbWlzc2luZyBiMy1maWxlM18xCisJKQorJworCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdraWxsIHA0ZCcgJwogCWtpbGxfcDRkCiAnCmRpZmYgLS1naXQgYS90L3Q5ODAyLWdpdC1wNC1maWxldHlwZS5zaCBiL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCmluZGV4IGVlZWZhNjcuLmE4Mjc0NGIgMTAwNzU1Ci0tLSBhL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCisrKyBiL3QvdDk4MDItZ2l0LXA0LWZpbGV0eXBlLnNoCkBAIC0yOCw3ICsyOCw3IEBACiAJCXRlc3RfY21wIGYtdW5peC1vcmlnIGYtdW5peCAmJgogCiAJCSMgbWFrZSBzdXJlIHN0b3JlZCBpbiByZXBvIGFzIHVuaXggbmV3bGluZXMKLQkJIyB1c2Ugc2VkIHRvIGVhdCBweXRob24tYXBwZW5lZCBuZXdsaW5lCisJCSMgdXNlIHNlZCB0byBlYXQgcHl0aG9uLWFwcGVuZGVkIG5ld2xpbmUKIAkJcDQgLUcgcHJpbnQgLy9kZXBvdC9mLXVuaXggfCBtYXJzaGFsX2R1bXAgZGF0YSAyIHxcCiAJCSAgICBzZWQgXCRkID5mLXVuaXgtcDQtcHJpbnQgJiYKIAkJdGVzdF9jbXAgZi11bml4LW9yaWcgZi11bml4LXA0LXByaW50ICYmCkBAIC05NSw3ICs5NSw3IEBACiAJCWdpdCBpbml0ICYmCiAJCWVjaG8gIiogZW9sPWxmIiA+LmdpdGF0dHJpYnV0ZXMgJiYKIAkJZ2l0IHA0IHN5bmMgLy9kZXBvdEBhbGwgJiYKLQkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgbWFzdGVyIHA0L21hc3RlciAmJgogCQl0ZXN0X2NtcCAiJGNsaSIvZi11bml4LW9yaWcgZi11bml4ICYmCiAJCXRlc3RfY21wICIkY2xpIi9mLXdpbi1hcy1sZiBmLXdpbgogCSkKQEAgLTEwOSw3ICsxMDksNyBAQAogCQlnaXQgaW5pdCAmJgogCQllY2hvICIqIGVvbD1jcmxmIiA+LmdpdGF0dHJpYnV0ZXMgJiYKIAkJZ2l0IHA0IHN5bmMgLy9kZXBvdEBhbGwgJiYKLQkJZ2l0IGNoZWNrb3V0IG1hc3RlciAmJgorCQlnaXQgY2hlY2tvdXQgLWIgbWFzdGVyIHA0L21hc3RlciAmJgogCQl0ZXN0X2NtcCAiJGNsaSIvZi11bml4LWFzLWNybGYgZi11bml4ICYmCiAJCXRlc3RfY21wICIkY2xpIi9mLXdpbi1vcmlnIGYtd2luCiAJKQpkaWZmIC0tZ2l0IGEvdC90OTkwMi1jb21wbGV0aW9uLnNoIGIvdC90OTkwMi1jb21wbGV0aW9uLnNoCmluZGV4IDZkOWQxNDEuLjJkNGJlYjUgMTAwNzU1Ci0tLSBhL3QvdDk5MDItY29tcGxldGlvbi5zaAorKysgYi90L3Q5OTAyLWNvbXBsZXRpb24uc2gKQEAgLTY5LDcgKzY5LDcgQEAKIAlsb2NhbCAtYSBDT01QUkVQTFkgX3dvcmRzCiAJbG9jYWwgX2N3b3JkCiAJX3dvcmRzPSggJDEgKQotCXRlc3QgIiR7MTogLTF9IiA9PSAnICcgJiYgX3dvcmRzKz0oJycpCisJdGVzdCAiJHsxOiAtMX0iID0gJyAnICYmIF93b3Jkc1skeyNfd29yZHNbQF19KzFdPScnCiAJKCggX2N3b3JkID0gJHsjX3dvcmRzW0BdfSAtIDEgKSkKIAlfX2dpdF93cmFwX19naXRfbWFpbiAmJiBwcmludF9jb21wCiB9CkBAIC0xMjIsNiArMTIyLDE0MCBAQAogCiBpbnZhbGlkX3ZhcmlhYmxlX25hbWU9JyR7Zm9vLmJhcn0nCiAKK2FjdHVhbD0iJFRSQVNIX0RJUkVDVE9SWS9hY3R1YWwiCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciBfX2dpdGRpciB0ZXN0cycgJworCW1rZGlyIC1wIHN1YmRpci9zdWJzdWJkaXIgJiYKKwlnaXQgaW5pdCBvdGhlcnJlcG8KKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSBmcm9tIGNvbW1hbmQgbGluZSAodGhyb3VnaCAkX19naXRfZGlyKScgJworCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCSgKKwkJX19naXRfZGlyPSIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIHJlcG8gYXMgYXJndW1lbnQnICcKKwllY2hvICJvdGhlcnJlcG8vLmdpdCIgPmV4cGVjdGVkICYmCisJX19naXRkaXIgIm90aGVycmVwbyIgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIHJlbW90ZSBhcyBhcmd1bWVudCcgJworCWVjaG8gInJlbW90ZSIgPmV4cGVjdGVkICYmCisJX19naXRkaXIgInJlbW90ZSIgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIC5naXQgZGlyZWN0b3J5IGluIGN3ZCcgJworCWVjaG8gIi5naXQiID5leHBlY3RlZCAmJgorCV9fZ2l0ZGlyID4iJGFjdHVhbCIgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSAuZ2l0IGRpcmVjdG9yeSBpbiBwYXJlbnQnICcKKwllY2hvICIkKHB3ZCAtUCkvLmdpdCIgPmV4cGVjdGVkICYmCisJKAorCQljZCBzdWJkaXIvc3Vic3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gY3dkIGlzIGEgLmdpdCBkaXJlY3RvcnknICcKKwllY2hvICIuIiA+ZXhwZWN0ZWQgJiYKKwkoCisJCWNkIC5naXQgJiYKKwkJX19naXRkaXIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRkaXIgLSBwYXJlbnQgaXMgYSAuZ2l0IGRpcmVjdG9yeScgJworCWVjaG8gIiQocHdkIC1QKS8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwkoCisJCWNkIC5naXQvcmVmcy9oZWFkcyAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtICRHSVRfRElSIHNldCB3aGlsZSAuZ2l0IGRpcmVjdG9yeSBpbiBjd2QnICcKKwllY2hvICIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwkoCisJCUdJVF9ESVI9IiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiICYmCisJCWV4cG9ydCBHSVRfRElSICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gJEdJVF9ESVIgc2V0IHdoaWxlIC5naXQgZGlyZWN0b3J5IGluIHBhcmVudCcgJworCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCSgKKwkJR0lUX0RJUj0iJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgJiYKKwkJZXhwb3J0IEdJVF9ESVIgJiYKKwkJY2Qgc3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gbm9uLWV4aXN0aW5nICRHSVRfRElSJyAnCisJKAorCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL25vbi1leGlzdGluZyIgJiYKKwkJZXhwb3J0IEdJVF9ESVIgJiYKKwkJdGVzdF9tdXN0X2ZhaWwgX19naXRkaXIKKwkpCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gZ2l0ZmlsZSBpbiBjd2QnICcKKwllY2hvICIkKHB3ZCAtUCkvb3RoZXJyZXBvLy5naXQiID5leHBlY3RlZCAmJgorCWVjaG8gImdpdGRpcjogJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgPnN1YmRpci8uZ2l0ICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBzdWJkaXIvLmdpdCIgJiYKKwkoCisJCWNkIHN1YmRpciAmJgorCQlfX2dpdGRpciA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdfX2dpdGRpciAtIGdpdGZpbGUgaW4gcGFyZW50JyAnCisJZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJnaXRkaXI6ICRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID5zdWJkaXIvLmdpdCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgc3ViZGlyLy5naXQiICYmCisJKAorCQljZCBzdWJkaXIvc3Vic3ViZGlyICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgU1lNTElOS1MgJ19fZ2l0ZGlyIC0gcmVzdWx0aW5nIHBhdGggYXZvaWRzIHN5bWxpbmtzJyAnCisJZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+ZXhwZWN0ZWQgJiYKKwlta2RpciBvdGhlcnJlcG8vZGlyICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgb3RoZXJyZXBvL2RpciIgJiYKKwlsbiAtcyBvdGhlcnJlcG8vZGlyIGxpbmsgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mIGxpbmsiICYmCisJKAorCQljZCBsaW5rICYmCisJCV9fZ2l0ZGlyID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ19fZ2l0ZGlyIC0gbm90IGEgZ2l0IHJlcG9zaXRvcnknICcKKwkoCisJCWNkIHN1YmRpci9zdWJzdWJkaXIgJiYKKwkJR0lUX0NFSUxJTkdfRElSRUNUT1JJRVM9IiRUUkFTSF9ESVJFQ1RPUlkiICYmCisJCWV4cG9ydCBHSVRfQ0VJTElOR19ESVJFQ1RPUklFUyAmJgorCQl0ZXN0X211c3RfZmFpbCBfX2dpdGRpcgorCSkKKycKKwogdGVzdF9leHBlY3Rfc3VjY2VzcyAnX19naXRjb21wIC0gdHJhaWxpbmcgc3BhY2UgLSBvcHRpb25zJyAnCiAJdGVzdF9naXRjb21wICItLXJlIiAiLS1kcnktcnVuIC0tcmV1c2UtbWVzc2FnZT0gLS1yZWVkaXQtbWVzc2FnZT0KIAkJLS1yZXNldC1hdXRob3IiIDw8LUVPRgpAQCAtMjMxLDYgKzM2NSw3IEBACiAJLS1leGVjLXBhdGggWgogCS0tZXhlYy1wYXRoPQogCS0taHRtbC1wYXRoIFoKKwktLW1hbi1wYXRoIFoKIAktLWluZm8tcGF0aCBaCiAJLS13b3JrLXRyZWU9CiAJLS1uYW1lc3BhY2U9CkBAIC0zNDcsNCArNDgyLDgxIEBACiAJdGVzdF9jb21wbGV0aW9uICJnaXQgc2VuZC1lbWFpbCBtYSIgIm1hc3RlciAiCiAnCiAKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2NvbXBsZXRlIGZpbGVzJyAnCisJZ2l0IGluaXQgdG1wICYmIGNkIHRtcCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiY2QgLi4gJiYgcm0gLXJmIHRtcCIgJiYKKworCWVjaG8gImV4cGVjdGVkIiA+IC5naXRpZ25vcmUgJiYKKwllY2hvICJvdXQiID4+IC5naXRpZ25vcmUgJiYKKworCWdpdCBhZGQgLmdpdGlnbm9yZSAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGNvbW1pdCAiICIuZ2l0aWdub3JlIiAmJgorCisJZ2l0IGNvbW1pdCAtbSBpZ25vcmUgJiYKKworCXRvdWNoIG5ldyAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGFkZCAiICJuZXciICYmCisKKwlnaXQgYWRkIG5ldyAmJgorCWdpdCBjb21taXQgLWEgLW0gbmV3ICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkICIgIiIgJiYKKworCWdpdCBtdiBuZXcgbW9kaWZpZWQgJiYKKwllY2hvIG1vZGlmeSA+IG1vZGlmaWVkICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkICIgIm1vZGlmaWVkIiAmJgorCisJdG91Y2ggdW50cmFja2VkICYmCisKKwk6IFRPRE8gLmdpdGlnbm9yZSBzaG91bGQgbm90IGJlIGhlcmUgJiYKKwl0ZXN0X2NvbXBsZXRpb24gImdpdCBybSAiIDw8LVxFT0YgJiYKKwkuZ2l0aWdub3JlCisJbW9kaWZpZWQKKwlFT0YKKworCXRlc3RfY29tcGxldGlvbiAiZ2l0IGNsZWFuICIgInVudHJhY2tlZCIgJiYKKworCTogVE9ETyAuZ2l0aWdub3JlIHNob3VsZCBub3QgYmUgaGVyZSAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IG12ICIgPDwtXEVPRiAmJgorCS5naXRpZ25vcmUKKwltb2RpZmllZAorCUVPRgorCisJbWtkaXIgZGlyICYmCisJdG91Y2ggZGlyL2ZpbGUtaW4tZGlyICYmCisJZ2l0IGFkZCBkaXIvZmlsZS1pbi1kaXIgJiYKKwlnaXQgY29tbWl0IC1tIGRpciAmJgorCisJbWtkaXIgdW50cmFja2VkLWRpciAmJgorCisJOiBUT0RPIC5naXRpZ25vcmUgc2hvdWxkIG5vdCBiZSBoZXJlICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgbXYgbW9kaWZpZWQgIiA8PC1cRU9GICYmCisJLmdpdGlnbm9yZQorCWRpcgorCW1vZGlmaWVkCisJdW50cmFja2VkCisJdW50cmFja2VkLWRpcgorCUVPRgorCisJdGVzdF9jb21wbGV0aW9uICJnaXQgY29tbWl0ICIgIm1vZGlmaWVkIiAmJgorCisJOiBUT0RPIC5naXRpZ25vcmUgc2hvdWxkIG5vdCBiZSBoZXJlICYmCisJdGVzdF9jb21wbGV0aW9uICJnaXQgbHMtZmlsZXMgIiA8PC1cRU9GCisJLmdpdGlnbm9yZQorCWRpcgorCW1vZGlmaWVkCisJRU9GCisKKwl0b3VjaCBtb21pZmllZCAmJgorCXRlc3RfY29tcGxldGlvbiAiZ2l0IGFkZCBtb20iICJtb21pZmllZCIKKycKKwordGVzdF9leHBlY3RfZmFpbHVyZSAnY29tcGxldGUgd2l0aCB0aWxkZSBleHBhbnNpb24nICcKKwlnaXQgaW5pdCB0bXAgJiYgY2QgdG1wICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJjZCAuLiAmJiBybSAtcmYgdG1wIiAmJgorCisJdG91Y2ggfi90bXAvZmlsZSAmJgorCisJdGVzdF9jb21wbGV0aW9uICJnaXQgYWRkIH4vdG1wLyIgIn4vdG1wL2ZpbGUiCisnCisKIHRlc3RfZG9uZQpkaWZmIC0tZ2l0IGEvdC90OTkwMy1iYXNoLXByb21wdC5zaCBiL3QvdDk5MDMtYmFzaC1wcm9tcHQuc2gKaW5kZXggMDgzYjMxOS4uM2MzZTRlOCAxMDA3NTUKLS0tIGEvdC90OTkwMy1iYXNoLXByb21wdC5zaAorKysgYi90L3Q5OTAzLWJhc2gtcHJvbXB0LnNoCkBAIC0xMCw1MjggKzEwLDU1OCBAQAogLiAiJEdJVF9CVUlMRF9ESVIvY29udHJpYi9jb21wbGV0aW9uL2dpdC1wcm9tcHQuc2giCiAKIGFjdHVhbD0iJFRSQVNIX0RJUkVDVE9SWS9hY3R1YWwiCitjX3JlZD0nXFxbXFxlWzMxbVxcXScKK2NfZ3JlZW49J1xcW1xcZVszMm1cXF0nCitjX2xibHVlPSdcXFtcXGVbMTszNG1cXF0nCitjX2NsZWFyPSdcXFtcXGVbMG1cXF0nCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3NldHVwIGZvciBwcm9tcHQgdGVzdHMnICcKLQlta2RpciAtcCBzdWJkaXIvc3Vic3ViZGlyICYmCiAJZ2l0IGluaXQgb3RoZXJyZXBvICYmCi0JZWNobyAxID4gZmlsZSAmJgorCWVjaG8gMSA+ZmlsZSAmJgogCWdpdCBhZGQgZmlsZSAmJgogCXRlc3RfdGljayAmJgogCWdpdCBjb21taXQgLW0gaW5pdGlhbCAmJgogCWdpdCB0YWcgLWEgLW0gbXNnMSB0MSAmJgogCWdpdCBjaGVja291dCAtYiBiMSAmJgotCWVjaG8gMiA+IGZpbGUgJiYKKwllY2hvIDIgPmZpbGUgJiYKIAlnaXQgY29tbWl0IC1tICJzZWNvbmQgYjEiIGZpbGUgJiYKLQllY2hvIDMgPiBmaWxlICYmCisJZWNobyAzID5maWxlICYmCiAJZ2l0IGNvbW1pdCAtbSAidGhpcmQgYjEiIGZpbGUgJiYKIAlnaXQgdGFnIC1hIC1tIG1zZzIgdDIgJiYKIAlnaXQgY2hlY2tvdXQgLWIgYjIgbWFzdGVyICYmCi0JZWNobyAwID4gZmlsZSAmJgorCWVjaG8gMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gInNlY29uZCBiMiIgZmlsZSAmJgotCWVjaG8gMDAgPiBmaWxlICYmCisJZWNobyAwMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gImFub3RoZXIgYjIiIGZpbGUgJiYKLQllY2hvIDAwMCA+IGZpbGUgJiYKKwllY2hvIDAwMCA+ZmlsZSAmJgogCWdpdCBjb21taXQgLW0gInlldCBhbm90aGVyIGIyIiBmaWxlICYmCiAJZ2l0IGNoZWNrb3V0IG1hc3RlcgogJwogCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSBmcm9tIGNvbW1hbmQgbGluZSAodGhyb3VnaCAkX19naXRfZGlyKScgJwotCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQkoCi0JCV9fZ2l0X2Rpcj0iJFRSQVNIX0RJUkVDVE9SWS9vdGhlcnJlcG8vLmdpdCIgJiYKLQkJX19naXRkaXIgPiAiJGFjdHVhbCIKLQkpICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIHJlcG8gYXMgYXJndW1lbnQnICcKLQllY2hvICJvdGhlcnJlcG8vLmdpdCIgPiBleHBlY3RlZCAmJgotCV9fZ2l0ZGlyICJvdGhlcnJlcG8iID4gIiRhY3R1YWwiICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIHJlbW90ZSBhcyBhcmd1bWVudCcgJwotCWVjaG8gInJlbW90ZSIgPiBleHBlY3RlZCAmJgotCV9fZ2l0ZGlyICJyZW1vdGUiID4gIiRhY3R1YWwiICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIC5naXQgZGlyZWN0b3J5IGluIGN3ZCcgJwotCWVjaG8gIi5naXQiID4gZXhwZWN0ZWQgJiYKLQlfX2dpdGRpciA+ICIkYWN0dWFsIiAmJgotCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSAuZ2l0IGRpcmVjdG9yeSBpbiBwYXJlbnQnICcKLQllY2hvICIkKHB3ZCAtUCkvLmdpdCIgPiBleHBlY3RlZCAmJgotCSgKLQkJY2Qgc3ViZGlyL3N1YnN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gY3dkIGlzIGEgLmdpdCBkaXJlY3RvcnknICcKLQllY2hvICIuIiA+IGV4cGVjdGVkICYmCi0JKAotCQljZCAuZ2l0ICYmCi0JCV9fZ2l0ZGlyID4gIiRhY3R1YWwiCi0JKSAmJgotCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgotJwotCi10ZXN0X2V4cGVjdF9zdWNjZXNzICdnaXRkaXIgLSBwYXJlbnQgaXMgYSAuZ2l0IGRpcmVjdG9yeScgJwotCWVjaG8gIiQocHdkIC1QKS8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JKAotCQljZCAuZ2l0L3JlZnMvaGVhZHMgJiYKLQkJX19naXRkaXIgPiAiJGFjdHVhbCIKLQkpICYmCi0JdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtICRHSVRfRElSIHNldCB3aGlsZSAuZ2l0IGRpcmVjdG9yeSBpbiBjd2QnICcKLQllY2hvICIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JKAotCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiAmJgotCQlleHBvcnQgR0lUX0RJUiAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gJEdJVF9ESVIgc2V0IHdoaWxlIC5naXQgZGlyZWN0b3J5IGluIHBhcmVudCcgJwotCWVjaG8gIiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQkoCi0JCUdJVF9ESVI9IiRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiICYmCi0JCWV4cG9ydCBHSVRfRElSICYmCi0JCWNkIHN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gbm9uLWV4aXN0aW5nICRHSVRfRElSJyAnCi0JKAotCQlHSVRfRElSPSIkVFJBU0hfRElSRUNUT1JZL25vbi1leGlzdGluZyIgJiYKLQkJZXhwb3J0IEdJVF9ESVIgJiYKLQkJdGVzdF9tdXN0X2ZhaWwgX19naXRkaXIKLQkpCi0nCi0KLXRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ2dpdGRpciAtIGdpdGZpbGUgaW4gY3dkJyAnCi0JZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZ2l0ZGlyOiAkVFJBU0hfRElSRUNUT1JZL290aGVycmVwby8uZ2l0IiA+IHN1YmRpci8uZ2l0ICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBzdWJkaXIvLmdpdCIgJiYKLQkoCi0JCWNkIHN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gZ2l0ZmlsZSBpbiBwYXJlbnQnICcKLQllY2hvICIkKHB3ZCAtUCkvb3RoZXJyZXBvLy5naXQiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJnaXRkaXI6ICRUUkFTSF9ESVJFQ1RPUlkvb3RoZXJyZXBvLy5naXQiID4gc3ViZGlyLy5naXQgJiYKLQl0ZXN0X3doZW5fZmluaXNoZWQgInJtIC1mIHN1YmRpci8uZ2l0IiAmJgotCSgKLQkJY2Qgc3ViZGlyL3N1YnN1YmRpciAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyBTWU1MSU5LUyAnZ2l0ZGlyIC0gcmVzdWx0aW5nIHBhdGggYXZvaWRzIHN5bWxpbmtzJyAnCi0JZWNobyAiJChwd2QgLVApL290aGVycmVwby8uZ2l0IiA+IGV4cGVjdGVkICYmCi0JbWtkaXIgb3RoZXJyZXBvL2RpciAmJgotCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLXJmIG90aGVycmVwby9kaXIiICYmCi0JbG4gLXMgb3RoZXJyZXBvL2RpciBsaW5rICYmCi0JdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtZiBsaW5rIiAmJgotCSgKLQkJY2QgbGluayAmJgotCQlfX2dpdGRpciA+ICIkYWN0dWFsIgotCSkgJiYKLQl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKLScKLQotdGVzdF9leHBlY3Rfc3VjY2VzcyAnZ2l0ZGlyIC0gbm90IGEgZ2l0IHJlcG9zaXRvcnknICcKLQkoCi0JCWNkIHN1YmRpci9zdWJzdWJkaXIgJiYKLQkJR0lUX0NFSUxJTkdfRElSRUNUT1JJRVM9IiRUUkFTSF9ESVJFQ1RPUlkiICYmCi0JCWV4cG9ydCBHSVRfQ0VJTElOR19ESVJFQ1RPUklFUyAmJgotCQl0ZXN0X211c3RfZmFpbCBfX2dpdGRpcgotCSkKLScKLQogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYnJhbmNoIG5hbWUnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKKwlfX2dpdF9wczEgPiIkYWN0dWFsIiAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzIFNZTUxJTktTICdwcm9tcHQgLSBicmFuY2ggbmFtZSAtIHN5bWxpbmsgc3ltcmVmJyAnCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKKwl0ZXN0X2NvbmZpZyBjb3JlLnByZWZlclN5bWxpbmtSZWZzIHRydWUgJiYKKwlnaXQgY2hlY2tvdXQgbWFzdGVyICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW5ib3JuIGJyYW5jaCcgJworCXByaW50ZiAiICh1bmJvcm4pIiA+ZXhwZWN0ZWQgJiYKKwlnaXQgY2hlY2tvdXQgLS1vcnBoYW4gdW5ib3JuICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRldGFjaGVkIGhlYWQnICcKLQlwcmludGYgIiAoKCVzLi4uKSkiICQoZ2l0IGxvZyAtMSAtLWZvcm1hdD0iJWgiIGIxXikgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiICgoJXMuLi4pKSIgJChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIgLS1hYmJyZXY9MTMgYjFeKSA+ZXhwZWN0ZWQgJiYKKwl0ZXN0X2NvbmZpZyBjb3JlLmFiYnJldiAxMyAmJgogCWdpdCBjaGVja291dCBiMV4gJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCi0JX19naXRfcHMxID4gIiRhY3R1YWwiICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGVzY3JpYmUgZGV0YWNoZWQgaGVhZCAtIGNvbnRhaW5zJyAnCi0JcHJpbnRmICIgKCh0Mn4xKSkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKHQyfjEpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9Y29udGFpbnMgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZXNjcmliZSBkZXRhY2hlZCBoZWFkIC0gYnJhbmNoJyAnCi0JcHJpbnRmICIgKChiMX4xKSkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKGIxfjEpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9YnJhbmNoICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGVzY3JpYmUgZGV0YWNoZWQgaGVhZCAtIGRlc2NyaWJlJyAnCi0JcHJpbnRmICIgKCh0MS0xLWclcykpIiAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIiBiMV4pID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoKHQxLTEtZyVzKSkiICQoZ2l0IGxvZyAtMSAtLWZvcm1hdD0iJWgiIGIxXikgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIxXiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAkoCiAJCUdJVF9QUzFfREVTQ1JJQkVfU1RZTEU9ZGVzY3JpYmUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZXNjcmliZSBkZXRhY2hlZCBoZWFkIC0gZGVmYXVsdCcgJwotCXByaW50ZiAiICgodDIpKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiICgodDIpKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IC0tZGV0YWNoIGIxICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJwotCXByaW50ZiAiIChHSVRfRElSISkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCWNkIC5naXQgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkZWVwIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJwotCXByaW50ZiAiIChHSVRfRElSISkiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCWNkIC5naXQvcmVmcy9oZWFkcyAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGluc2lkZSBiYXJlIHJlcG9zaXRvcnknICcKLQlwcmludGYgIiAoQkFSRTptYXN0ZXIpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKEJBUkU6bWFzdGVyKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGluaXQgLS1iYXJlIGJhcmUuZ2l0ICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJybSAtcmYgYmFyZS5naXQiICYmCiAJKAogCQljZCBiYXJlLmdpdCAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGludGVyYWN0aXZlIHJlYmFzZScgJwotCXByaW50ZiAiIChiMXxSRUJBU0UtaSAyLzMpIiA+IGV4cGVjdGVkCi0JZWNobyAiIyEkU0hFTExfUEFUSCIgPmZha2VfZWRpdG9yLnNoICYmCi0JY2F0ID4+ZmFrZV9lZGl0b3Iuc2ggPDxcRU9GICYmCi1lY2hvICJleGVjIGVjaG8iID4gIiQxIgotZWNobyAiZWRpdCAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikiID4+ICIkMSIKLWVjaG8gImV4ZWMgZWNobyIgPj4gIiQxIgotRU9GCisJcHJpbnRmICIgKGIxfFJFQkFTRS1pIDIvMykiID5leHBlY3RlZAorCXdyaXRlX3NjcmlwdCBmYWtlX2VkaXRvci5zaCA8PC1cRU9GICYmCisJCWVjaG8gImV4ZWMgZWNobyIgPiIkMSIKKwkJZWNobyAiZWRpdCAkKGdpdCBsb2cgLTEgLS1mb3JtYXQ9IiVoIikiID4+IiQxIgorCQllY2hvICJleGVjIGVjaG8iID4+IiQxIgorCUVPRgogCXRlc3Rfd2hlbl9maW5pc2hlZCAicm0gLWYgZmFrZV9lZGl0b3Iuc2giICYmCi0JY2htb2QgYSt4IGZha2VfZWRpdG9yLnNoICYmCiAJdGVzdF9zZXRfZWRpdG9yICIkVFJBU0hfRElSRUNUT1JZL2Zha2VfZWRpdG9yLnNoIiAmJgogCWdpdCBjaGVja291dCBiMSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGNoZWNrb3V0IG1hc3RlciIgJiYKIAlnaXQgcmViYXNlIC1pIEhFQUReICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmViYXNlIC0tYWJvcnQiCi0JX19naXRfcHMxID4gIiRhY3R1YWwiICYmCisJX19naXRfcHMxID4iJGFjdHVhbCIgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gcmViYXNlIG1lcmdlJyAnCi0JcHJpbnRmICIgKGIyfFJFQkFTRS1tIDEvMykiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAoYjJ8UkVCQVNFLW0gMS8zKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGNoZWNrb3V0IGIyICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgogCXRlc3RfbXVzdF9mYWlsIGdpdCByZWJhc2UgLS1tZXJnZSBiMSBiMiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHJlYmFzZScgJwotCXByaW50ZiAiICgodDIpfFJFQkFTRSAxLzMpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKGIyfFJFQkFTRSAxLzMpIiA+ZXhwZWN0ZWQgJiYKIAlnaXQgY2hlY2tvdXQgYjIgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IHJlYmFzZSBiMSBiMiAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlYmFzZSAtLWFib3J0IiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIG1lcmdlJyAnCi0JcHJpbnRmICIgKGIxfE1FUkdJTkcpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKGIxfE1FUkdJTkcpIiA+ZXhwZWN0ZWQgJiYKIAlnaXQgY2hlY2tvdXQgYjEgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCBjaGVja291dCBtYXN0ZXIiICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IG1lcmdlIGIyICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGNoZXJyeS1waWNrJyAnCi0JcHJpbnRmICIgKG1hc3RlcnxDSEVSUlktUElDS0lORykiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAobWFzdGVyfENIRVJSWS1QSUNLSU5HKSIgPmV4cGVjdGVkICYmCiAJdGVzdF9tdXN0X2ZhaWwgZ2l0IGNoZXJyeS1waWNrIGIxICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgotCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIiAmJgorCV9fZ2l0X3BzMSA+IiRhY3R1YWwiICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJpc2VjdCcgJwotCXByaW50ZiAiIChtYXN0ZXJ8QklTRUNUSU5HKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXJ8QklTRUNUSU5HKSIgPmV4cGVjdGVkICYmCiAJZ2l0IGJpc2VjdCBzdGFydCAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IGJpc2VjdCByZXNldCIgJiYKLQlfX2dpdF9wczEgPiAiJGFjdHVhbCIgJiYKKwlfX2dpdF9wczEgPiIkYWN0dWFsIiAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gY2xlYW4nICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBkaXJ0eSB3b3JrdHJlZScgJwotCXByaW50ZiAiIChtYXN0ZXIgKikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlciAqKSIgPmV4cGVjdGVkICYmCisJZWNobyAiZGlydHkiID5maWxlICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgcmVzZXQgLS1oYXJkIiAmJgogCSgKIAkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4JyAnCi0JcHJpbnRmICIgKG1hc3RlciArKSIgPiBleHBlY3RlZCAmJgotCWVjaG8gImRpcnR5IiA+IGZpbGUgJiYKKwlwcmludGYgIiAobWFzdGVyICspIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJZ2l0IGFkZCAtdSAmJgogCSgKIAkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4IGFuZCB3b3JrdHJlZScgJwotCXByaW50ZiAiIChtYXN0ZXIgKispIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkgaW5kZXgiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIgKispIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSBpbmRleCIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJZ2l0IGFkZCAtdSAmJgotCWVjaG8gImRpcnR5IHdvcmt0cmVlIiA+IGZpbGUgJiYKKwllY2hvICJkaXJ0eSB3b3JrdHJlZSIgPmZpbGUgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBiZWZvcmUgcm9vdCBjb21taXQnICcKLQlwcmludGYgIiAobWFzdGVyICMpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKG1hc3RlciAjKSIgPmV4cGVjdGVkICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKIAkJY2Qgb3RoZXJyZXBvICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIGZhbHNlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV0RJUlRZU1RBVEUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgdW5zZXQgd2l0aCBjb25maWcgZW5hYmxlZCcgJwotCXByaW50ZiAiIChtYXN0ZXIpIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJdGVzdF9jb25maWcgYmFzaC5zaG93RGlydHlTdGF0ZSB0cnVlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV0RJUlRZU1RBVEUgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKLQllY2hvICJkaXJ0eSIgPiBmaWxlICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIGZhbHNlICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyICopIiA+IGV4cGVjdGVkICYmCi0JZWNobyAiZGlydHkiID4gZmlsZSAmJgorCXByaW50ZiAiIChtYXN0ZXIgKikiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dEaXJ0eVN0YXRlIHRydWUgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBub3Qgc2hvd24gaW5zaWRlIC5naXQgZGlyZWN0b3J5JyAnCi0JcHJpbnRmICIgKEdJVF9ESVIhKSIgPiBleHBlY3RlZCAmJgotCWVjaG8gImRpcnR5IiA+IGZpbGUgJiYKKwlwcmludGYgIiAoR0lUX0RJUiEpIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKIAl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCiAJKAogCQlHSVRfUFMxX1NIT1dESVJUWVNUQVRFPXkgJiYKIAkJY2QgLmdpdCAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHN0YXNoIHN0YXR1cyBpbmRpY2F0b3IgLSBubyBzdGFzaCcgJwotCXByaW50ZiAiIChtYXN0ZXIpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKG1hc3RlcikiID5leHBlY3RlZCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XU1RBU0hTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gc3Rhc2ggc3RhdHVzIGluZGljYXRvciAtIHN0YXNoJyAnCi0JcHJpbnRmICIgKG1hc3RlciAkKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJCkiID5leHBlY3RlZCAmJgogCWVjaG8gMiA+ZmlsZSAmJgogCWdpdCBzdGFzaCAmJgogCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHN0YXNoIGRyb3AiICYmCisJZ2l0IHBhY2stcmVmcyAtLWFsbCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XU1RBU0hTVEFURT15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gc3Rhc2ggc3RhdHVzIGluZGljYXRvciAtIG5vdCBzaG93biBpbnNpZGUgLmdpdCBkaXJlY3RvcnknICcKLQlwcmludGYgIiAoR0lUX0RJUiEpIiA+IGV4cGVjdGVkICYmCisJcHJpbnRmICIgKEdJVF9ESVIhKSIgPmV4cGVjdGVkICYmCiAJZWNobyAyID5maWxlICYmCiAJZ2l0IHN0YXNoICYmCiAJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgc3Rhc2ggZHJvcCIgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1NUQVNIU1RBVEU9eSAmJgogCQljZCAuZ2l0ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBubyB1bnRyYWNrZWQgZmlsZXMnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTPXkgJiYKIAkJY2Qgb3RoZXJyZXBvICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSB1bnRyYWNrZWQgZmlsZXMnICcKLQlwcmludGYgIiAobWFzdGVyICUlKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJSUpIiA+ZXhwZWN0ZWQgJiYKIAkoCiAJCUdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTPXkgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB1bnRyYWNrZWQgZmlsZXMgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGRpc2FibGVkJyAnCi0JcHJpbnRmICIgKG1hc3RlcikiID4gZXhwZWN0ZWQgJiYKKwlwcmludGYgIiAobWFzdGVyKSIgPmV4cGVjdGVkICYmCiAJdGVzdF9jb25maWcgYmFzaC5zaG93VW50cmFja2VkRmlsZXMgZmFsc2UgJiYKIAkoCiAJCXNhbmVfdW5zZXQgR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVMgJiYKLQkJX19naXRfcHMxID4gIiRhY3R1YWwiCisJCV9fZ2l0X3BzMSA+IiRhY3R1YWwiCiAJKSAmJgogCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgogJwogCiB0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB1bnRyYWNrZWQgZmlsZXMgc3RhdHVzIGluZGljYXRvciAtIHNoZWxsIHZhcmlhYmxlIHVuc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyB0cnVlICYmCiAJKAogCQlzYW5lX3Vuc2V0IEdJVF9QUzFfU0hPV1VOVFJBQ0tFREZJTEVTICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBzaGVsbCB2YXJpYWJsZSBzZXQgd2l0aCBjb25maWcgZGlzYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyBmYWxzZSAmJgogCSgKIAkJR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVM9eSAmJgotCQlfX2dpdF9wczEgPiAiJGFjdHVhbCIKKwkJX19naXRfcHMxID4iJGFjdHVhbCIKIAkpICYmCiAJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCiAnCiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHVudHJhY2tlZCBmaWxlcyBzdGF0dXMgaW5kaWNhdG9yIC0gc2hlbGwgdmFyaWFibGUgc2V0IHdpdGggY29uZmlnIGVuYWJsZWQnICcKLQlwcmludGYgIiAobWFzdGVyICUlKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChtYXN0ZXIgJSUpIiA+ZXhwZWN0ZWQgJiYKIAl0ZXN0X2NvbmZpZyBiYXNoLnNob3dVbnRyYWNrZWRGaWxlcyB0cnVlICYmCiAJKAogCQlHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUz15ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3IgLSBub3Qgc2hvd24gaW5zaWRlIC5naXQgZGlyZWN0b3J5JyAnCi0JcHJpbnRmICIgKEdJVF9ESVIhKSIgPiBleHBlY3RlZCAmJgorCXByaW50ZiAiIChHSVRfRElSISkiID5leHBlY3RlZCAmJgogCSgKIAkJR0lUX1BTMV9TSE9XVU5UUkFDS0VERklMRVM9eSAmJgogCQljZCAuZ2l0ICYmCi0JCV9fZ2l0X3BzMSA+ICIkYWN0dWFsIgorCQlfX2dpdF9wczEgPiIkYWN0dWFsIgogCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIAogdGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gZm9ybWF0IHN0cmluZyBzdGFydGluZyB3aXRoIGRhc2gnICcKLQlwcmludGYgLS0gIi1tYXN0ZXIiID4gZXhwZWN0ZWQgJiYKLQlfX2dpdF9wczEgIi0lcyIgPiAiJGFjdHVhbCIgJiYKKwlwcmludGYgLS0gIi1tYXN0ZXIiID5leHBlY3RlZCAmJgorCV9fZ2l0X3BzMSAiLSVzIiA+IiRhY3R1YWwiICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIHBjIG1vZGUnICcKKwlwcmludGYgIkJFRk9SRTogKG1hc3Rlcik6QUZURVIiID5leHBlY3RlZCAmJgorCXByaW50ZiAiIiA+ZXhwZWN0ZWRfb3V0cHV0ICYmCisJKAorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiID4iJGFjdHVhbCIgJiYKKwkJdGVzdF9jbXAgZXhwZWN0ZWRfb3V0cHV0ICIkYWN0dWFsIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gYnJhbmNoIG5hbWUnICcKKwlwcmludGYgIkJFRk9SRTogKCR7Y19ncmVlbn1tYXN0ZXIke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJKAorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiA+IiRhY3R1YWwiCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkZXRhY2hlZCBoZWFkJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfcmVkfSglcy4uLikke2NfY2xlYXJ9KTpBRlRFUiIgJChnaXQgbG9nIC0xIC0tZm9ybWF0PSIlaCIgYjFeKSA+ZXhwZWN0ZWQgJiYKKwlnaXQgY2hlY2tvdXQgYjFeICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgY2hlY2tvdXQgbWFzdGVyIiAmJgorCSgKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgJiYKKwkJcHJpbnRmICIlcyIgIiRQUzEiID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJhc2ggY29sb3IgcGMgbW9kZSAtIGRpcnR5IHN0YXR1cyBpbmRpY2F0b3IgLSBkaXJ0eSB3b3JrdHJlZScgJworCXByaW50ZiAiQkVGT1JFOiAoJHtjX2dyZWVufW1hc3RlciR7Y19jbGVhcn0gJHtjX3JlZH0qJHtjX2NsZWFyfSk6QUZURVIiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gZGlydHkgc3RhdHVzIGluZGljYXRvciAtIGRpcnR5IGluZGV4JyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfZ3JlZW59KyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSIgPmZpbGUgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCisJZ2l0IGFkZCAtdSAmJgorCSgKKwkJR0lUX1BTMV9TSE9XRElSVFlTVEFURT15ICYmCisJCUdJVF9QUzFfU0hPV0NPTE9SSElOVFM9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gZGlydHkgaW5kZXggYW5kIHdvcmt0cmVlJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfcmVkfSoke2NfZ3JlZW59KyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwllY2hvICJkaXJ0eSBpbmRleCIgPmZpbGUgJiYKKwl0ZXN0X3doZW5fZmluaXNoZWQgImdpdCByZXNldCAtLWhhcmQiICYmCisJZ2l0IGFkZCAtdSAmJgorCWVjaG8gImRpcnR5IHdvcmt0cmVlIiA+ZmlsZSAmJgorCSgKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBkaXJ0eSBzdGF0dXMgaW5kaWNhdG9yIC0gYmVmb3JlIHJvb3QgY29tbWl0JyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfZ3JlZW59IyR7Y19jbGVhcn0pOkFGVEVSIiA+ZXhwZWN0ZWQgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJY2Qgb3RoZXJyZXBvICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgJiYKKwkJcHJpbnRmICIlcyIgIiRQUzEiID4iJGFjdHVhbCIKKwkpICYmCisJdGVzdF9jbXAgZXhwZWN0ZWQgIiRhY3R1YWwiCisnCisKK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ3Byb21wdCAtIGJhc2ggY29sb3IgcGMgbW9kZSAtIGluc2lkZSAuZ2l0IGRpcmVjdG9yeScgJworCXByaW50ZiAiQkVGT1JFOiAoJHtjX2dyZWVufUdJVF9ESVIhJHtjX2NsZWFyfSk6QUZURVIiID5leHBlY3RlZCAmJgorCWVjaG8gImRpcnR5IiA+ZmlsZSAmJgorCXRlc3Rfd2hlbl9maW5pc2hlZCAiZ2l0IHJlc2V0IC0taGFyZCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV0RJUlRZU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJY2QgLmdpdCAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSBiYXNoIGNvbG9yIHBjIG1vZGUgLSBzdGFzaCBzdGF0dXMgaW5kaWNhdG9yJyAnCisJcHJpbnRmICJCRUZPUkU6ICgke2NfZ3JlZW59bWFzdGVyJHtjX2NsZWFyfSAke2NfbGJsdWV9XCQke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJZWNobyAyID5maWxlICYmCisJZ2l0IHN0YXNoICYmCisJdGVzdF93aGVuX2ZpbmlzaGVkICJnaXQgc3Rhc2ggZHJvcCIgJiYKKwkoCisJCUdJVF9QUzFfU0hPV1NUQVNIU1RBVEU9eSAmJgorCQlHSVRfUFMxX1NIT1dDT0xPUkhJTlRTPXkgJiYKKwkJX19naXRfcHMxICJCRUZPUkU6IiAiOkFGVEVSIiAmJgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKKwl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKKycKKwordGVzdF9leHBlY3Rfc3VjY2VzcyAncHJvbXB0IC0gYmFzaCBjb2xvciBwYyBtb2RlIC0gdW50cmFja2VkIGZpbGVzIHN0YXR1cyBpbmRpY2F0b3InICcKKwlwcmludGYgIkJFRk9SRTogKCR7Y19ncmVlbn1tYXN0ZXIke2NfY2xlYXJ9ICR7Y19yZWR9JSUke2NfY2xlYXJ9KTpBRlRFUiIgPmV4cGVjdGVkICYmCisJKAorCQlHSVRfUFMxX1NIT1dVTlRSQUNLRURGSUxFUz15ICYmCisJCUdJVF9QUzFfU0hPV0NPTE9SSElOVFM9eSAmJgorCQlfX2dpdF9wczEgIkJFRk9SRToiICI6QUZURVIiICYmCisJCXByaW50ZiAiJXMiICIkUFMxIiA+IiRhY3R1YWwiCisJKSAmJgorCXRlc3RfY21wIGV4cGVjdGVkICIkYWN0dWFsIgorJworCit0ZXN0X2V4cGVjdF9zdWNjZXNzICdwcm9tcHQgLSB6c2ggY29sb3IgcGMgbW9kZScgJworCXByaW50ZiAiQkVGT1JFOiAoJSVGe2dyZWVufW1hc3RlciUlZik6QUZURVIiID5leHBlY3RlZCAmJgorCSgKKwkJWlNIX1ZFUlNJT049NS4wLjAgJiYKKwkJR0lUX1BTMV9TSE9XQ09MT1JISU5UUz15ICYmCisJCV9fZ2l0X3BzMSAiQkVGT1JFOiIgIjpBRlRFUiIgPiIkYWN0dWFsIgorCQlwcmludGYgIiVzIiAiJFBTMSIgPiIkYWN0dWFsIgorCSkgJiYKIAl0ZXN0X2NtcCBleHBlY3RlZCAiJGFjdHVhbCIKICcKIApkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi1mdW5jdGlvbnMuc2ggYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAppbmRleCA1MjUxMDA5Li5hN2U5YWFjIDEwMDY0NAotLS0gYS90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaAorKysgYi90L3Rlc3QtbGliLWZ1bmN0aW9ucy5zaApAQCAtMzQzLDYgKzM0Myw3IEBACiB9CiAKIHRlc3RfZXhwZWN0X2ZhaWx1cmUgKCkgeworCXRlc3Rfc3RhcnRfCiAJdGVzdCAiJCMiID0gMyAmJiB7IHRlc3RfcHJlcmVxPSQxOyBzaGlmdDsgfSB8fCB0ZXN0X3ByZXJlcT0KIAl0ZXN0ICIkIyIgPSAyIHx8CiAJZXJyb3IgImJ1ZyBpbiB0aGUgdGVzdCBzY3JpcHQ6IG5vdCAyIG9yIDMgcGFyYW1ldGVycyB0byB0ZXN0LWV4cGVjdC1mYWlsdXJlIgpAQCAtMzU3LDEwICszNTgsMTEgQEAKIAkJCXRlc3Rfa25vd25fYnJva2VuX2ZhaWx1cmVfICIkMSIKIAkJZmkKIAlmaQotCWVjaG8gPiYzICIiCisJdGVzdF9maW5pc2hfCiB9CiAKIHRlc3RfZXhwZWN0X3N1Y2Nlc3MgKCkgeworCXRlc3Rfc3RhcnRfCiAJdGVzdCAiJCMiID0gMyAmJiB7IHRlc3RfcHJlcmVxPSQxOyBzaGlmdDsgfSB8fCB0ZXN0X3ByZXJlcT0KIAl0ZXN0ICIkIyIgPSAyIHx8CiAJZXJyb3IgImJ1ZyBpbiB0aGUgdGVzdCBzY3JpcHQ6IG5vdCAyIG9yIDMgcGFyYW1ldGVycyB0byB0ZXN0LWV4cGVjdC1zdWNjZXNzIgpAQCAtMzc1LDcgKzM3Nyw3IEBACiAJCQl0ZXN0X2ZhaWx1cmVfICIkQCIKIAkJZmkKIAlmaQotCWVjaG8gPiYzICIiCisJdGVzdF9maW5pc2hfCiB9CiAKICMgdGVzdF9leHRlcm5hbCBydW5zIGV4dGVybmFsIHRlc3Qgc2NyaXB0cyB0aGF0IHByb3ZpZGUgY29udGludW91cwpAQCAtNjA5LDYgKzYxMSwxOCBAQAogCSRHSVRfVEVTVF9DTVAgIiRAIgogfQogCisjIENoZWNrIGlmIHRoZSBmaWxlIGV4cGVjdGVkIHRvIGJlIGVtcHR5IGlzIGluZGVlZCBlbXB0eSwgYW5kIGJhcmZzCisjIG90aGVyd2lzZS4KKwordGVzdF9tdXN0X2JlX2VtcHR5ICgpIHsKKwlpZiB0ZXN0IC1zICIkMSIKKwl0aGVuCisJCWVjaG8gIickMScgaXMgbm90IGVtcHR5LCBpdCBjb250YWluczoiCisJCWNhdCAiJDEiCisJCXJldHVybiAxCisJZmkKK30KKwogIyBUZXN0cyB0aGF0IGl0cyB0d28gcGFyYW1ldGVycyByZWZlciB0byB0aGUgc2FtZSByZXZpc2lvbgogdGVzdF9jbXBfcmV2ICgpIHsKIAlnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICIkMSIgPmV4cGVjdC5yZXYgJiYKQEAgLTY3OSwzICs2OTMsMjAgQEAKIAkJbXYgLmdpdC9ob29rcyAuZ2l0L2hvb2tzLWRpc2FibGVkCiAJKSB8fCBleGl0CiB9CisKKyMgVGhpcyBmdW5jdGlvbiBoZWxwcyBvbiBzeW1saW5rIGNoYWxsZW5nZWQgZmlsZSBzeXN0ZW1zIHdoZW4gaXQgaXMgbm90CisjIGltcG9ydGFudCB0aGF0IHRoZSBmaWxlIHN5c3RlbSBlbnRyeSBpcyBhIHN5bWJvbGljIGxpbmsuCisjIFVzZSB0ZXN0X2xuX3NfYWRkIGluc3RlYWQgb2YgImxuIC1zIHggeSAmJiBnaXQgYWRkIHkiIHRvIGFkZCBhCisjIHN5bWJvbGljIGxpbmsgZW50cnkgeSB0byB0aGUgaW5kZXguCisKK3Rlc3RfbG5fc19hZGQgKCkgeworCWlmIHRlc3RfaGF2ZV9wcmVyZXEgU1lNTElOS1MKKwl0aGVuCisJCWxuIC1zICIkMSIgIiQyIiAmJgorCQlnaXQgdXBkYXRlLWluZGV4IC0tYWRkICIkMiIKKwllbHNlCisJCXByaW50ZiAnJXMnICIkMSIgPiIkMiIgJiYKKwkJbG5fc19vYmo9JChnaXQgaGFzaC1vYmplY3QgLXcgIiQyIikgJiYKKwkJZ2l0IHVwZGF0ZS1pbmRleCAtLWFkZCAtLWNhY2hlaW5mbyAxMjAwMDAgJGxuX3Nfb2JqICIkMiIKKwlmaQorfQpkaWZmIC0tZ2l0IGEvdC90ZXN0LWxpYi5zaCBiL3QvdGVzdC1saWIuc2gKaW5kZXggY2E2YmRlZi4uMWFhMjdiZCAxMDA2NDQKLS0tIGEvdC90ZXN0LWxpYi5zaAorKysgYi90L3Rlc3QtbGliLnNoCkBAIC01NCw4ICs1NCw4IEBACiAJIyBkbyBub3QgcmVkaXJlY3QgYWdhaW4KIAk7OwogKicgLS10ZWUgJyp8KicgLS12YScqKQotCW1rZGlyIC1wIHRlc3QtcmVzdWx0cwotCUJBU0U9dGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpCisJbWtkaXIgLXAgIiRURVNUX09VVFBVVF9ESVJFQ1RPUlkvdGVzdC1yZXN1bHRzIgorCUJBU0U9IiRURVNUX09VVFBVVF9ESVJFQ1RPUlkvdGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpIgogCShHSVRfVEVTVF9URUVfU1RBUlRFRD1kb25lICR7U0hFTExfUEFUSH0gIiQwIiAiJEAiIDI+JjE7CiAJIGVjaG8gJD8gPiAkQkFTRS5leGl0KSB8IHRlZSAkQkFTRS5vdXQKIAl0ZXN0ICIkKGNhdCAkQkFTRS5leGl0KSIgPSAwCkBAIC05Miw2ICs5Miw3IEBACiAJcHJpbnQgam9pbigiXG4iLCBAdmFycyk7CiAnKQogdW5zZXQgWERHX0NPTkZJR19IT01FCit1bnNldCBHSVRQRVJMTElCCiBHSVRfQVVUSE9SX0VNQUlMPWF1dGhvckBleGFtcGxlLmNvbQogR0lUX0FVVEhPUl9OQU1FPSdBIFUgVGhvcicKIEdJVF9DT01NSVRURVJfRU1BSUw9Y29tbWl0dGVyQGV4YW1wbGUuY29tCkBAIC0xODQsNiArMTg1LDkgQEAKIAkJaGVscD10OyBzaGlmdCA7OwogCS12fC0tdnwtLXZlfC0tdmVyfC0tdmVyYnwtLXZlcmJvfC0tdmVyYm9zfC0tdmVyYm9zZSkKIAkJdmVyYm9zZT10OyBzaGlmdCA7OworCS0tdmVyYm9zZS1vbmx5PSopCisJCXZlcmJvc2Vfb25seT0kKGV4cHIgInokMSIgOiAneltePV0qPVwoLipcKScpCisJCXNoaWZ0IDs7CiAJLXF8LS1xfC0tcXV8LS1xdWl8LS1xdWllfC0tcXVpZXQpCiAJCSMgSWdub3JlIC0tcXVpZXQgdW5kZXIgYSBUQVA6Okhhcm5lc3MuIFNheWluZyBob3cgbWFueSB0ZXN0cwogCQkjIHBhc3NlZCB3aXRob3V0IHRoZSBvay9ub3Qgb2sgZGV0YWlscyBpcyBhbHdheXMgYW4gZXJyb3IuCkBAIC0xOTgsMTcgKzIwMiwzOSBAQAogCS0tdmFsZ3JpbmQ9KikKIAkJdmFsZ3JpbmQ9JChleHByICJ6JDEiIDogJ3pbXj1dKj1cKC4qXCknKQogCQlzaGlmdCA7OworCS0tdmFsZ3JpbmQtb25seT0qKQorCQl2YWxncmluZF9vbmx5PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLXBhcmFsbGVsPSopCisJCXZhbGdyaW5kX3BhcmFsbGVsPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLW9ubHktc3RyaWRlPSopCisJCXZhbGdyaW5kX29ubHlfc3RyaWRlPSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKKwktLXZhbGdyaW5kLW9ubHktb2Zmc2V0PSopCisJCXZhbGdyaW5kX29ubHlfb2Zmc2V0PSQoZXhwciAieiQxIiA6ICd6W149XSo9XCguKlwpJykKKwkJc2hpZnQgOzsKIAktLXRlZSkKIAkJc2hpZnQgOzsgIyB3YXMgaGFuZGxlZCBhbHJlYWR5CiAJLS1yb290PSopCiAJCXJvb3Q9JChleHByICJ6JDEiIDogJ3pbXj1dKj1cKC4qXCknKQogCQlzaGlmdCA7OworCS0tc3RhdHVzcHJlZml4PSopCisJCXN0YXR1c3ByZWZpeD0kKGV4cHIgInokMSIgOiAneltePV0qPVwoLipcKScpCisJCXNoaWZ0IDs7CiAJKikKIAkJZWNobyAiZXJyb3I6IHVua25vd24gdGVzdCBvcHRpb24gJyQxJyIgPiYyOyBleGl0IDEgOzsKIAllc2FjCiBkb25lCiAKLXRlc3QgLW4gIiR2YWxncmluZCIgJiYgdmVyYm9zZT10CitpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seSIgfHwgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgordGhlbgorCXRlc3QgLXogIiR2YWxncmluZCIgJiYgdmFsZ3JpbmQ9bWVtY2hlY2sKKwl0ZXN0IC16ICIkdmVyYm9zZSIgJiYgdmVyYm9zZV9vbmx5PSIkdmFsZ3JpbmRfb25seSIKK2VsaWYgdGVzdCAtbiAiJHZhbGdyaW5kIgordGhlbgorCXZlcmJvc2U9dAorZmkKIAogaWYgdGVzdCAtbiAiJGNvbG9yIgogdGhlbgpAQCAtMzAzLDEyICszMjksMTIgQEAKIAogdGVzdF9va18gKCkgewogCXRlc3Rfc3VjY2Vzcz0kKCgkdGVzdF9zdWNjZXNzICsgMSkpCi0Jc2F5X2NvbG9yICIiICJvayAkdGVzdF9jb3VudCAtICRAIgorCXNheV9jb2xvciAiIiAiJHtzdGF0dXNwcmVmaXh9b2sgJHRlc3RfY291bnQgLSAkQCIKIH0KIAogdGVzdF9mYWlsdXJlXyAoKSB7CiAJdGVzdF9mYWlsdXJlPSQoKCR0ZXN0X2ZhaWx1cmUgKyAxKSkKLQlzYXlfY29sb3IgZXJyb3IgIm5vdCBvayAkdGVzdF9jb3VudCAtICQxIgorCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9bm90IG9rICR0ZXN0X2NvdW50IC0gJDEiCiAJc2hpZnQKIAllY2hvICIkQCIgfCBzZWQgLWUgJ3MvXi8jCS8nCiAJdGVzdCAiJGltbWVkaWF0ZSIgPSAiIiB8fCB7IEdJVF9FWElUX09LPXQ7IGV4aXQgMTsgfQpAQCAtMzE2LDE4ICszNDIsODMgQEAKIAogdGVzdF9rbm93bl9icm9rZW5fb2tfICgpIHsKIAl0ZXN0X2ZpeGVkPSQoKCR0ZXN0X2ZpeGVkKzEpKQotCXNheV9jb2xvciBlcnJvciAib2sgJHRlc3RfY291bnQgLSAkQCAjIFRPRE8ga25vd24gYnJlYWthZ2UgdmFuaXNoZWQiCisJc2F5X2NvbG9yIGVycm9yICIke3N0YXR1c3ByZWZpeH1vayAkdGVzdF9jb3VudCAtICRAICMgVE9ETyBrbm93biBicmVha2FnZSB2YW5pc2hlZCIKIH0KIAogdGVzdF9rbm93bl9icm9rZW5fZmFpbHVyZV8gKCkgewogCXRlc3RfYnJva2VuPSQoKCR0ZXN0X2Jyb2tlbisxKSkKLQlzYXlfY29sb3Igd2FybiAibm90IG9rICR0ZXN0X2NvdW50IC0gJEAgIyBUT0RPIGtub3duIGJyZWFrYWdlIgorCXNheV9jb2xvciB3YXJuICIke3N0YXR1c3ByZWZpeH1ub3Qgb2sgJHRlc3RfY291bnQgLSAkQCAjIFRPRE8ga25vd24gYnJlYWthZ2UiCiB9CiAKIHRlc3RfZGVidWcgKCkgewogCXRlc3QgIiRkZWJ1ZyIgPSAiIiB8fCBldmFsICIkMSIKIH0KIAorbWF0Y2hfcGF0dGVybl9saXN0ICgpIHsKKwlhcmc9IiQxIgorCXNoaWZ0CisJdGVzdCAteiAiJCoiICYmIHJldHVybiAxCisJZm9yIHBhdHRlcm5fCisJZG8KKwkJY2FzZSAiJGFyZyIgaW4KKwkJJHBhdHRlcm5fKQorCQkJcmV0dXJuIDAKKwkJZXNhYworCWRvbmUKKwlyZXR1cm4gMQorfQorCittYXliZV90ZWFyZG93bl92ZXJib3NlICgpIHsKKwl0ZXN0IC16ICIkdmVyYm9zZV9vbmx5IiAmJiByZXR1cm4KKwlleGVjIDQ+L2Rldi9udWxsIDM+L2Rldi9udWxsCisJdmVyYm9zZT0KK30KKworbGFzdF92ZXJib3NlPXQKK21heWJlX3NldHVwX3ZlcmJvc2UgKCkgeworCXRlc3QgLXogIiR2ZXJib3NlX29ubHkiICYmIHJldHVybgorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGVzdF9jb3VudCAkdmVyYm9zZV9vbmx5IHx8CisJCXsgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIiAmJgorCQlleHByICR0ZXN0X2NvdW50ICIlIiAkdmFsZ3JpbmRfb25seV9zdHJpZGUgLSAkdmFsZ3JpbmRfb25seV9vZmZzZXQgPSAwID4vZGV2L251bGw7IH0KKwl0aGVuCisJCWV4ZWMgND4mMiAzPiYxCisJCSMgRW1pdCBhIGRlbGltaXRpbmcgYmxhbmsgbGluZSB3aGVuIGdvaW5nIGZyb20KKwkJIyBub24tdmVyYm9zZSB0byB2ZXJib3NlLiAgV2l0aGluIHZlcmJvc2UgbW9kZSB0aGUKKwkJIyBkZWxpbWl0ZXIgaXMgcHJpbnRlZCBieSB0ZXN0X2V4cGVjdF8qLiAgVGhlIGNob2ljZQorCQkjIG9mIHRoZSBpbml0aWFsICRsYXN0X3ZlcmJvc2UgaXMgc3VjaCB0aGF0IGJlZm9yZQorCQkjIHRlc3QgMSwgd2UgZG8gbm90IHByaW50IGl0LgorCQl0ZXN0IC16ICIkbGFzdF92ZXJib3NlIiAmJiBlY2hvID4mMyAiIgorCQl2ZXJib3NlPXQKKwllbHNlCisJCWV4ZWMgND4vZGV2L251bGwgMz4vZGV2L251bGwKKwkJdmVyYm9zZT0KKwlmaQorCWxhc3RfdmVyYm9zZT0kdmVyYm9zZQorfQorCittYXliZV90ZWFyZG93bl92YWxncmluZCAoKSB7CisJdGVzdCAteiAiJEdJVF9WQUxHUklORCIgJiYgcmV0dXJuCisJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9Cit9CisKK21heWJlX3NldHVwX3ZhbGdyaW5kICgpIHsKKwl0ZXN0IC16ICIkR0lUX1ZBTEdSSU5EIiAmJiByZXR1cm4KKwlpZiB0ZXN0IC16ICIkdmFsZ3JpbmRfb25seSIgJiYgdGVzdCAteiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgorCXRoZW4KKwkJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCQlyZXR1cm4KKwlmaQorCUdJVF9WQUxHUklORF9FTkFCTEVEPQorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGVzdF9jb3VudCAkdmFsZ3JpbmRfb25seQorCXRoZW4KKwkJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCWVsaWYgdGVzdCAtbiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIiAmJgorCQlleHByICR0ZXN0X2NvdW50ICIlIiAkdmFsZ3JpbmRfb25seV9zdHJpZGUgLSAkdmFsZ3JpbmRfb25seV9vZmZzZXQgPSAwID4vZGV2L251bGwKKwl0aGVuCisJCUdJVF9WQUxHUklORF9FTkFCTEVEPXQKKwlmaQorfQorCiB0ZXN0X2V2YWxfICgpIHsKIAkjIFRoaXMgaXMgYSBzZXBhcmF0ZSBmdW5jdGlvbiBiZWNhdXNlIHNvbWUgdGVzdHMgdXNlCiAJIyAicmV0dXJuIiB0byBlbmQgYSB0ZXN0X2V4cGVjdF9zdWNjZXNzIGJsb2NrIGVhcmx5LgpAQCAtMzM3LDggKzQyOCwxMCBAQAogdGVzdF9ydW5fICgpIHsKIAl0ZXN0X2NsZWFudXA9OgogCWV4cGVjdGluZ19mYWlsdXJlPSQyCisJc2V0dXBfbWFsbG9jX2NoZWNrCiAJdGVzdF9ldmFsXyAiJDEiCiAJZXZhbF9yZXQ9JD8KKwl0ZWFyZG93bl9tYWxsb2NfY2hlY2sKIAogCWlmIHRlc3QgLXogIiRpbW1lZGlhdGUiIHx8IHRlc3QgJGV2YWxfcmV0ID0gMCB8fCB0ZXN0IC1uICIkZXhwZWN0aW5nX2ZhaWx1cmUiCiAJdGhlbgpAQCAtMzUzLDE3ICs0NDYsMjQgQEAKIAlyZXR1cm4gIiRldmFsX3JldCIKIH0KIAotdGVzdF9za2lwICgpIHsKK3Rlc3Rfc3RhcnRfICgpIHsKIAl0ZXN0X2NvdW50PSQoKCR0ZXN0X2NvdW50KzEpKQorCW1heWJlX3NldHVwX3ZlcmJvc2UKKwltYXliZV9zZXR1cF92YWxncmluZAorfQorCit0ZXN0X2ZpbmlzaF8gKCkgeworCWVjaG8gPiYzICIiCisJbWF5YmVfdGVhcmRvd25fdmFsZ3JpbmQKKwltYXliZV90ZWFyZG93bl92ZXJib3NlCit9CisKK3Rlc3Rfc2tpcCAoKSB7CiAJdG9fc2tpcD0KLQlmb3Igc2twIGluICRHSVRfU0tJUF9URVNUUwotCWRvCi0JCWNhc2UgJHRoaXNfdGVzdC4kdGVzdF9jb3VudCBpbgotCQkkc2twKQotCQkJdG9fc2tpcD10Ci0JCQlicmVhawotCQllc2FjCi0JZG9uZQorCWlmIG1hdGNoX3BhdHRlcm5fbGlzdCAkdGhpc190ZXN0LiR0ZXN0X2NvdW50ICRHSVRfU0tJUF9URVNUUworCXRoZW4KKwkJdG9fc2tpcD10CisJZmkKIAlpZiB0ZXN0IC16ICIkdG9fc2tpcCIgJiYgdGVzdCAtbiAiJHRlc3RfcHJlcmVxIiAmJgogCSAgICEgdGVzdF9oYXZlX3ByZXJlcSAiJHRlc3RfcHJlcmVxIgogCXRoZW4KQEAgLTM3Nyw4ICs0NzcsOCBAQAogCQkJb2ZfcHJlcmVxPSIgb2YgJHRlc3RfcHJlcmVxIgogCQlmaQogCi0JCXNheV9jb2xvciBza2lwID4mMyAic2tpcHBpbmcgdGVzdDogJEAiCi0JCXNheV9jb2xvciBza2lwICJvayAkdGVzdF9jb3VudCAjIHNraXAgJDEgKG1pc3NpbmcgJG1pc3NpbmdfcHJlcmVxJHtvZl9wcmVyZXF9KSIKKwkJc2F5X2NvbG9yIHNraXAgPiYzICIke3N0YXR1c3ByZWZpeH1za2lwcGluZyB0ZXN0OiAkQCIKKwkJc2F5X2NvbG9yIHNraXAgIiR7c3RhdHVzcHJlZml4fW9rICR0ZXN0X2NvdW50ICMgc2tpcCAkMSAobWlzc2luZyAkbWlzc2luZ19wcmVyZXEke29mX3ByZXJlcX0pIgogCQk6IHRydWUKIAkJOzsKIAkqKQpAQCAtMzk1LDYgKzQ5NSw4IEBACiB0ZXN0X2RvbmUgKCkgewogCUdJVF9FWElUX09LPXQKIAorCSMgTm90ZTogdDAwMDAgcmVsaWVzIG9uICRIQVJORVNTX0FDVElWRSBkaXNhYmxpbmcgdGhlIC5jb3VudHMKKwkjIG91dHB1dCBmaWxlCiAJaWYgdGVzdCAteiAiJEhBUk5FU1NfQUNUSVZFIgogCXRoZW4KIAkJdGVzdF9yZXN1bHRzX2Rpcj0iJFRFU1RfT1VUUFVUX0RJUkVDVE9SWS90ZXN0LXJlc3VsdHMiCkBAIC00MTQsMTEgKzUxNiwxMSBAQAogCiAJaWYgdGVzdCAiJHRlc3RfZml4ZWQiICE9IDAKIAl0aGVuCi0JCXNheV9jb2xvciBlcnJvciAiIyAkdGVzdF9maXhlZCBrbm93biBicmVha2FnZShzKSB2YW5pc2hlZDsgcGxlYXNlIHVwZGF0ZSB0ZXN0KHMpIgorCQlzYXlfY29sb3IgZXJyb3IgIiR7c3RhdHVzcHJlZml4fSMgJHRlc3RfZml4ZWQga25vd24gYnJlYWthZ2UocykgdmFuaXNoZWQ7IHBsZWFzZSB1cGRhdGUgdGVzdChzKSIKIAlmaQogCWlmIHRlc3QgIiR0ZXN0X2Jyb2tlbiIgIT0gMAogCXRoZW4KLQkJc2F5X2NvbG9yIHdhcm4gIiMgc3RpbGwgaGF2ZSAkdGVzdF9icm9rZW4ga25vd24gYnJlYWthZ2UocykiCisJCXNheV9jb2xvciB3YXJuICIke3N0YXR1c3ByZWZpeH0jIHN0aWxsIGhhdmUgJHRlc3RfYnJva2VuIGtub3duIGJyZWFrYWdlKHMpIgogCWZpCiAJaWYgdGVzdCAiJHRlc3RfYnJva2VuIiAhPSAwIHx8IHRlc3QgIiR0ZXN0X2ZpeGVkIiAhPSAwCiAJdGhlbgpAQCAtNDQxLDkgKzU0Myw5IEBACiAJCXRoZW4KIAkJCWlmIHRlc3QgJHRlc3RfcmVtYWluaW5nIC1ndCAwCiAJCQl0aGVuCi0JCQkJc2F5X2NvbG9yIHBhc3MgIiMgcGFzc2VkIGFsbCAkbXNnIgorCQkJCXNheV9jb2xvciBwYXNzICIke3N0YXR1c3ByZWZpeH0jIHBhc3NlZCBhbGwgJG1zZyIKIAkJCWZpCi0JCQlzYXkgIjEuLiR0ZXN0X2NvdW50JHNraXBfYWxsIgorCQkJc2F5ICIke3N0YXR1c3ByZWZpeH0xLi4kdGVzdF9jb3VudCRza2lwX2FsbCIKIAkJZmkKIAogCQl0ZXN0IC1kICIkcmVtb3ZlX3RyYXNoIiAmJgpAQCAtNDU3LDggKzU1OSw4IEBACiAJKikKIAkJaWYgdGVzdCAkdGVzdF9leHRlcm5hbF9oYXNfdGFwIC1lcSAwCiAJCXRoZW4KLQkJCXNheV9jb2xvciBlcnJvciAiIyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgotCQkJc2F5ICIxLi4kdGVzdF9jb3VudCIKKwkJCXNheV9jb2xvciBlcnJvciAiJHtzdGF0dXNwcmVmaXh9IyBmYWlsZWQgJHRlc3RfZmFpbHVyZSBhbW9uZyAkbXNnIgorCQkJc2F5ICIke3N0YXR1c3ByZWZpeH0xLi4kdGVzdF9jb3VudCIKIAkJZmkKIAogCQlleGl0IDEgOzsKQEAgLTQ2Niw2ICs1NjgsOSBAQAogCWVzYWMKIH0KIAorCisjIFNldCB1cCBhIGRpcmVjdG9yeSB0aGF0IHdlIGNhbiBwdXQgaW4gUEFUSCB3aGljaCByZWRpcmVjdHMgYWxsIGdpdAorIyBjYWxscyB0byAndmFsZ3JpbmQgZ2l0IC4uLicuCiBpZiB0ZXN0IC1uICIkdmFsZ3JpbmQiCiB0aGVuCiAJbWFrZV9zeW1saW5rICgpIHsKQEAgLTUxMywzMSArNjE4LDQzIEBACiAJCW1ha2Vfc3ltbGluayAiJHN5bWxpbmtfdGFyZ2V0IiAiJEdJVF9WQUxHUklORC9iaW4vJGJhc2UiIHx8IGV4aXQKIAl9CiAKLQkjIG92ZXJyaWRlIGFsbCBnaXQgZXhlY3V0YWJsZXMgaW4gVEVTVF9ESVJFQ1RPUlkvLi4KLQlHSVRfVkFMR1JJTkQ9JFRFU1RfRElSRUNUT1JZL3ZhbGdyaW5kCi0JbWtkaXIgLXAgIiRHSVRfVkFMR1JJTkQiL2JpbgotCWZvciBmaWxlIGluICRHSVRfQlVJTERfRElSL2dpdCogJEdJVF9CVUlMRF9ESVIvdGVzdC0qCi0JZG8KLQkJbWFrZV92YWxncmluZF9zeW1saW5rICRmaWxlCi0JZG9uZQotCSMgc3BlY2lhbC1jYXNlIHRoZSBtZXJnZXRvb2xzIGxvYWRhYmxlcwotCW1ha2Vfc3ltbGluayAiJEdJVF9CVUlMRF9ESVIiL21lcmdldG9vbHMgIiRHSVRfVkFMR1JJTkQvYmluL21lcmdldG9vbHMiCi0JT0xESUZTPSRJRlMKLQlJRlM9OgotCWZvciBwYXRoIGluICRQQVRICi0JZG8KLQkJbHMgIiRwYXRoIi9naXQtKiAyPiAvZGV2L251bGwgfAotCQl3aGlsZSByZWFkIGZpbGUKKwkjIEluIHRoZSBjYXNlIG9mIC0tdmFsZ3JpbmQtcGFyYWxsZWwsIHdlIG9ubHkgbmVlZCB0byBkbyB0aGUKKwkjIHdyYXBwaW5nIG9uY2UsIGluIHRoZSBtYWluIHNjcmlwdC4gIFRoZSB3b3JrZXIgY2hpbGRyZW4gYWxsCisJIyBoYXZlICR2YWxncmluZF9vbmx5X3N0cmlkZSBzZXQsIHNvIHdlIGNhbiBza2lwIGJhc2VkIG9uIHRoYXQuCisJaWYgdGVzdCAteiAiJHZhbGdyaW5kX29ubHlfc3RyaWRlIgorCXRoZW4KKwkJIyBvdmVycmlkZSBhbGwgZ2l0IGV4ZWN1dGFibGVzIGluIFRFU1RfRElSRUNUT1JZLy4uCisJCUdJVF9WQUxHUklORD0kVEVTVF9ESVJFQ1RPUlkvdmFsZ3JpbmQKKwkJbWtkaXIgLXAgIiRHSVRfVkFMR1JJTkQiL2JpbgorCQlmb3IgZmlsZSBpbiAkR0lUX0JVSUxEX0RJUi9naXQqICRHSVRfQlVJTERfRElSL3Rlc3QtKgogCQlkbwotCQkJbWFrZV92YWxncmluZF9zeW1saW5rICIkZmlsZSIKKwkJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAkZmlsZQogCQlkb25lCi0JZG9uZQotCUlGUz0kT0xESUZTCisJCSMgc3BlY2lhbC1jYXNlIHRoZSBtZXJnZXRvb2xzIGxvYWRhYmxlcworCQltYWtlX3N5bWxpbmsgIiRHSVRfQlVJTERfRElSIi9tZXJnZXRvb2xzICIkR0lUX1ZBTEdSSU5EL2Jpbi9tZXJnZXRvb2xzIgorCQlPTERJRlM9JElGUworCQlJRlM9OgorCQlmb3IgcGF0aCBpbiAkUEFUSAorCQlkbworCQkJbHMgIiRwYXRoIi9naXQtKiAyPiAvZGV2L251bGwgfAorCQkJd2hpbGUgcmVhZCBmaWxlCisJCQlkbworCQkJCW1ha2VfdmFsZ3JpbmRfc3ltbGluayAiJGZpbGUiCisJCQlkb25lCisJCWRvbmUKKwkJSUZTPSRPTERJRlMKKwlmaQogCVBBVEg9JEdJVF9WQUxHUklORC9iaW46JFBBVEgKIAlHSVRfRVhFQ19QQVRIPSRHSVRfVkFMR1JJTkQvYmluCiAJZXhwb3J0IEdJVF9WQUxHUklORAogCUdJVF9WQUxHUklORF9NT0RFPSIkdmFsZ3JpbmQiCiAJZXhwb3J0IEdJVF9WQUxHUklORF9NT0RFCisJR0lUX1ZBTEdSSU5EX0VOQUJMRUQ9dAorCWlmIHRlc3QgLW4gIiR2YWxncmluZF9vbmx5IiB8fCB0ZXN0IC1uICIkdmFsZ3JpbmRfb25seV9zdHJpZGUiCisJdGhlbgorCQlHSVRfVkFMR1JJTkRfRU5BQkxFRD0KKwlmaQorCWV4cG9ydCBHSVRfVkFMR1JJTkRfRU5BQkxFRAogZWxpZiB0ZXN0IC1uICIkR0lUX1RFU1RfSU5TVEFMTEVEIgogdGhlbgogCUdJVF9FWEVDX1BBVEg9JCgkR0lUX1RFU1RfSU5TVEFMTEVEL2dpdCAtLWV4ZWMtcGF0aCkgIHx8CkBAIC02MjIsMjEgKzczOSw1MyBAQAogZWxzZQogCW1rZGlyIC1wICIkVFJBU0hfRElSRUNUT1JZIgogZmkKKworIyBHcm9zcyBoYWNrIHRvIHNwYXduIE4gc3ViLWluc3RhbmNlcyBvZiB0aGUgdGVzdHMgaW4gcGFyYWxsZWwsIGFuZAorIyBzdW1tYXJpemUgdGhlIHJlc3VsdHMuICBOb3RlIHRoYXQgaWYgdGhpcyBpcyBlbmFibGVkLCB0aGUgc2NyaXB0CisjIHRlcm1pbmF0ZXMgYXQgdGhlIGVuZCBvZiB0aGlzICdpZicgYmxvY2suCitpZiB0ZXN0IC1uICIkdmFsZ3JpbmRfcGFyYWxsZWwiCit0aGVuCisJZm9yIGkgaW4gJCh0ZXN0X3NlcSAxICR2YWxncmluZF9wYXJhbGxlbCkKKwlkbworCQlyb290PSIkVFJBU0hfRElSRUNUT1JZL3ZncGFyYWxsZWwtJGkiCisJCW1rZGlyICIkcm9vdCIKKwkJVEVTVF9PVVRQVVRfRElSRUNUT1JZPSIkcm9vdCIgXAorCQkJJHtTSEVMTF9QQVRIfSAiJDAiIFwKKwkJCS0tcm9vdD0iJHJvb3QiIC0tc3RhdHVzcHJlZml4PSJbJGldICIgXAorCQkJLS12YWxncmluZD0iJHZhbGdyaW5kIiBcCisJCQktLXZhbGdyaW5kLW9ubHktc3RyaWRlPSIkdmFsZ3JpbmRfcGFyYWxsZWwiIFwKKwkJCS0tdmFsZ3JpbmQtb25seS1vZmZzZXQ9IiRpIiAmCisJCXBpZHM9IiRwaWRzICQhIgorCWRvbmUKKwl0cmFwICJraWxsICRwaWRzIiBJTlQgVEVSTSBIVVAKKwl3YWl0ICRwaWRzCisJdHJhcCAtIElOVCBURVJNIEhVUAorCWZvciBpIGluICQodGVzdF9zZXEgMSAkdmFsZ3JpbmRfcGFyYWxsZWwpCisJZG8KKwkJcm9vdD0iJFRSQVNIX0RJUkVDVE9SWS92Z3BhcmFsbGVsLSRpIgorCQlldmFsICIkKGNhdCAiJHJvb3QvdGVzdC1yZXN1bHRzLyQoYmFzZW5hbWUgIiQwIiAuc2gpIi0qLmNvdW50cyB8CisJCQlzZWQgJ3MvXlwoW2Etel1bYS16XSpcKSBcKFswLTldWzAtOV0qXCkvaW5uZXJfXDE9XDIvJykiCisJCXRlc3RfY291bnQ9JChleHByICR0ZXN0X2NvdW50ICsgJGlubmVyX3RvdGFsKQorCQl0ZXN0X3N1Y2Nlc3M9JChleHByICR0ZXN0X3N1Y2Nlc3MgKyAkaW5uZXJfc3VjY2VzcykKKwkJdGVzdF9maXhlZD0kKGV4cHIgJHRlc3RfZml4ZWQgKyAkaW5uZXJfZml4ZWQpCisJCXRlc3RfYnJva2VuPSQoZXhwciAkdGVzdF9icm9rZW4gKyAkaW5uZXJfYnJva2VuKQorCQl0ZXN0X2ZhaWx1cmU9JChleHByICR0ZXN0X2ZhaWx1cmUgKyAkaW5uZXJfZmFpbGVkKQorCWRvbmUKKwl0ZXN0X2RvbmUKK2ZpCisKICMgVXNlIC1QIHRvIHJlc29sdmUgc3ltbGlua3MgaW4gb3VyIHdvcmtpbmcgZGlyZWN0b3J5IHNvIHRoYXQgdGhlIGN3ZAogIyBpbiBzdWJwcm9jZXNzZXMgbGlrZSBnaXQgZXF1YWxzIG91ciAkUFdEIChmb3IgcGF0aG5hbWUgY29tcGFyaXNvbnMpLgogY2QgLVAgIiRUUkFTSF9ESVJFQ1RPUlkiIHx8IGV4aXQgMQogCiB0aGlzX3Rlc3Q9JHswIyMqL30KIHRoaXNfdGVzdD0ke3RoaXNfdGVzdCUlLSp9Ci1mb3Igc2twIGluICRHSVRfU0tJUF9URVNUUwotZG8KLQljYXNlICIkdGhpc190ZXN0IiBpbgotCSRza3ApCi0JCXNheV9jb2xvciBpbmZvID4mMyAic2tpcHBpbmcgdGVzdCAkdGhpc190ZXN0IGFsdG9nZXRoZXIiCi0JCXNraXBfYWxsPSJza2lwIGFsbCB0ZXN0cyBpbiAkdGhpc190ZXN0IgotCQl0ZXN0X2RvbmUKLQllc2FjCi1kb25lCitpZiBtYXRjaF9wYXR0ZXJuX2xpc3QgIiR0aGlzX3Rlc3QiICRHSVRfU0tJUF9URVNUUwordGhlbgorCXNheV9jb2xvciBpbmZvID4mMyAic2tpcHBpbmcgdGVzdCAkdGhpc190ZXN0IGFsdG9nZXRoZXIiCisJc2tpcF9hbGw9InNraXAgYWxsIHRlc3RzIGluICR0aGlzX3Rlc3QiCisJdGVzdF9kb25lCitmaQogCiAjIFByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlICd5ZXMnIHV0aWxpdHkKIHllcyAoKSB7CkBAIC02NzYsNiArODI1LDcgQEAKIAl0ZXN0X3NldF9wcmVyZXEgTUlOR1cKIAl0ZXN0X3NldF9wcmVyZXEgTk9UX0NZR1dJTgogCXRlc3Rfc2V0X3ByZXJlcSBTRURfU1RSSVBTX0NSCisJdGVzdF9zZXRfcHJlcmVxIEdSRVBfU1RSSVBTX0NSCiAJOzsKICpDWUdXSU4qKQogCXRlc3Rfc2V0X3ByZXJlcSBQT1NJWFBFUk0KQEAgLTY4Myw2ICs4MzMsNyBAQAogCXRlc3Rfc2V0X3ByZXJlcSBOT1RfTUlOR1cKIAl0ZXN0X3NldF9wcmVyZXEgQ1lHV0lOCiAJdGVzdF9zZXRfcHJlcmVxIFNFRF9TVFJJUFNfQ1IKKwl0ZXN0X3NldF9wcmVyZXEgR1JFUF9TVFJJUFNfQ1IKIAk7OwogKikKIAl0ZXN0X3NldF9wcmVyZXEgUE9TSVhQRVJNCkBAIC03MzcsNyArODg4LDE0IEBACiAKIHRlc3RfbGF6eV9wcmVyZXEgUElQRSAnCiAJIyB0ZXN0IHdoZXRoZXIgdGhlIGZpbGVzeXN0ZW0gc3VwcG9ydHMgRklGT3MKLQlybSAtZiB0ZXN0ZmlmbyAmJiBta2ZpZm8gdGVzdGZpZm8KKwljYXNlICQodW5hbWUgLXMpIGluCisJQ1lHV0lOKikKKwkJZmFsc2UKKwkJOzsKKwkqKQorCQlybSAtZiB0ZXN0ZmlmbyAmJiBta2ZpZm8gdGVzdGZpZm8KKwkJOzsKKwllc2FjCiAnCiAKIHRlc3RfbGF6eV9wcmVyZXEgU1lNTElOS1MgJwpkaWZmIC0tZ2l0IGEvdC92YWxncmluZC9hbmFseXplLnNoIGIvdC92YWxncmluZC9hbmFseXplLnNoCmluZGV4IGQ4MTA1ZDkuLjJmZmM4MGYgMTAwNzU1Ci0tLSBhL3QvdmFsZ3JpbmQvYW5hbHl6ZS5zaAorKysgYi90L3ZhbGdyaW5kL2FuYWx5emUuc2gKQEAgLTEsNiArMSwxMCBAQAogIyEvYmluL3NoCiAKLW91dF9wcmVmaXg9JChkaXJuYW1lICIkMCIpLy4uL3Rlc3QtcmVzdWx0cy92YWxncmluZC5vdXQKKyMgR2V0IFRFU1RfT1VUUFVUX0RJUkVDVE9SWSBmcm9tIEdJVC1CVUlMRC1PUFRJT05TIGlmIGl0J3MgdGhlcmUuLi4KKy4gIiQoZGlybmFtZSAiJDAiKS8uLi8uLi9HSVQtQlVJTEQtT1BUSU9OUyIKKyMgLi4uIG90aGVyd2lzZSBzZXQgaXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUuCis6ICR7VEVTVF9PVVRQVVRfRElSRUNUT1JZPSQoZGlybmFtZSAiJDAiKS8uLn0KKwogb3V0cHV0PQogY291bnQ9MAogdG90YWxfY291bnQ9MApAQCAtMTE1LDcgKzExOSw3IEBACiAJZmluaXNoX291dHB1dAogfQogCi1mb3IgdGVzdF9zY3JpcHQgaW4gIiQoZGlybmFtZSAiJDAiKSIvLi4vdGVzdC1yZXN1bHRzLyoub3V0Citmb3IgdGVzdF9zY3JpcHQgaW4gIiRURVNUX09VVFBVVF9ESVJFQ1RPUlkiL3Rlc3QtcmVzdWx0cy8qLm91dAogZG8KIAloYW5kbGVfb25lICR0ZXN0X3NjcmlwdAogZG9uZQpkaWZmIC0tZ2l0IGEvdC92YWxncmluZC92YWxncmluZC5zaCBiL3QvdmFsZ3JpbmQvdmFsZ3JpbmQuc2gKaW5kZXggNmI4N2M5MS4uNDIxNTMwMyAxMDA3NTUKLS0tIGEvdC92YWxncmluZC92YWxncmluZC5zaAorKysgYi90L3ZhbGdyaW5kL3ZhbGdyaW5kLnNoCkBAIC00LDYgKzQsOSBAQAogCiBUT09MX09QVElPTlM9Jy0tbGVhay1jaGVjaz1ubycKIAordGVzdCAteiAiJEdJVF9WQUxHUklORF9FTkFCTEVEIiAmJgorZXhlYyAiJEdJVF9WQUxHUklORCIvLi4vLi4vIiRiYXNlIiAiJEAiCisKIGNhc2UgIiRHSVRfVkFMR1JJTkRfTU9ERSIgaW4KIG1lbWNoZWNrLWZhc3QpCiAJOzsKZGlmZiAtLWdpdCBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUgYi90ZW1wbGF0ZXMvaG9va3MtLXByZS1jb21taXQuc2FtcGxlCmluZGV4IDE4YzQ4MjkuLjU4NmUzYmYgMTAwNzU1Ci0tLSBhL3RlbXBsYXRlcy9ob29rcy0tcHJlLWNvbW1pdC5zYW1wbGUKKysrIGIvdGVtcGxhdGVzL2hvb2tzLS1wcmUtY29tbWl0LnNhbXBsZQpAQCAtMTUsMTMgKzE1LDEzIEBACiAJYWdhaW5zdD00YjgyNWRjNjQyY2I2ZWI5YTA2MGU1NGJmOGQ2OTI4OGZiZWU0OTA0CiBmaQogCi0jIElmIHlvdSB3YW50IHRvIGFsbG93IG5vbi1hc2NpaSBmaWxlbmFtZXMgc2V0IHRoaXMgdmFyaWFibGUgdG8gdHJ1ZS4KKyMgSWYgeW91IHdhbnQgdG8gYWxsb3cgbm9uLUFTQ0lJIGZpbGVuYW1lcyBzZXQgdGhpcyB2YXJpYWJsZSB0byB0cnVlLgogYWxsb3dub25hc2NpaT0kKGdpdCBjb25maWcgaG9va3MuYWxsb3dub25hc2NpaSkKIAogIyBSZWRpcmVjdCBvdXRwdXQgdG8gc3RkZXJyLgogZXhlYyAxPiYyCiAKLSMgQ3Jvc3MgcGxhdGZvcm0gcHJvamVjdHMgdGVuZCB0byBhdm9pZCBub24tYXNjaWkgZmlsZW5hbWVzOyBwcmV2ZW50CisjIENyb3NzIHBsYXRmb3JtIHByb2plY3RzIHRlbmQgdG8gYXZvaWQgbm9uLUFTQ0lJIGZpbGVuYW1lczsgcHJldmVudAogIyB0aGVtIGZyb20gYmVpbmcgYWRkZWQgdG8gdGhlIHJlcG9zaXRvcnkuIFdlIGV4cGxvaXQgdGhlIGZhY3QgdGhhdCB0aGUKICMgcHJpbnRhYmxlIHJhbmdlIHN0YXJ0cyBhdCB0aGUgc3BhY2UgY2hhcmFjdGVyIGFuZCBlbmRzIHdpdGggdGlsZGUuCiBpZiBbICIkYWxsb3dub25hc2NpaSIgIT0gInRydWUiIF0gJiYKQEAgLTMxLDE4ICszMSwxNyBAQAogCXRlc3QgJChnaXQgZGlmZiAtLWNhY2hlZCAtLW5hbWUtb25seSAtLWRpZmYtZmlsdGVyPUEgLXogJGFnYWluc3QgfAogCSAgTENfQUxMPUMgdHIgLWQgJ1sgLX5dXDAnIHwgd2MgLWMpICE9IDAKIHRoZW4KLQllY2hvICJFcnJvcjogQXR0ZW1wdCB0byBhZGQgYSBub24tYXNjaWkgZmlsZSBuYW1lLiIKLQllY2hvCi0JZWNobyAiVGhpcyBjYW4gY2F1c2UgcHJvYmxlbXMgaWYgeW91IHdhbnQgdG8gd29yayIKLQllY2hvICJ3aXRoIHBlb3BsZSBvbiBvdGhlciBwbGF0Zm9ybXMuIgotCWVjaG8KLQllY2hvICJUbyBiZSBwb3J0YWJsZSBpdCBpcyBhZHZpc2FibGUgdG8gcmVuYW1lIHRoZSBmaWxlIC4uLiIKLQllY2hvCi0JZWNobyAiSWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIHlvdSBjYW4gZGlzYWJsZSB0aGlzIgotCWVjaG8gImNoZWNrIHVzaW5nOiIKLQllY2hvCi0JZWNobyAiICBnaXQgY29uZmlnIGhvb2tzLmFsbG93bm9uYXNjaWkgdHJ1ZSIKLQllY2hvCisJY2F0IDw8XEVPRgorRXJyb3I6IEF0dGVtcHQgdG8gYWRkIGEgbm9uLUFTQ0lJIGZpbGUgbmFtZS4KKworVGhpcyBjYW4gY2F1c2UgcHJvYmxlbXMgaWYgeW91IHdhbnQgdG8gd29yayB3aXRoIHBlb3BsZSBvbiBvdGhlciBwbGF0Zm9ybXMuCisKK1RvIGJlIHBvcnRhYmxlIGl0IGlzIGFkdmlzYWJsZSB0byByZW5hbWUgdGhlIGZpbGUuCisKK0lmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyB5b3UgY2FuIGRpc2FibGUgdGhpcyBjaGVjayB1c2luZzoKKworICBnaXQgY29uZmlnIGhvb2tzLmFsbG93bm9uYXNjaWkgdHJ1ZQorRU9GCiAJZXhpdCAxCiBmaQogCmRpZmYgLS1naXQgYS90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZSBiL3RlbXBsYXRlcy9ob29rcy0tcHJlLXB1c2guc2FtcGxlCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTVhYjZkOC4uMWYzYmNlYgotLS0gYS90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZQorKysgYi90ZW1wbGF0ZXMvaG9va3MtLXByZS1wdXNoLnNhbXBsZQpAQCAtMzAsNiArMzAsNyBAQAogCWlmIFsgIiRsb2NhbF9zaGEiID0gJHo0MCBdCiAJdGhlbgogCQkjIEhhbmRsZSBkZWxldGUKKwkJOgogCWVsc2UKIAkJaWYgWyAiJHJlbW90ZV9zaGEiID0gJHo0MCBdCiAJCXRoZW4KZGlmZiAtLWdpdCBhL3Rlc3QtY2htdGltZS5jIGIvdGVzdC1jaG10aW1lLmMKaW5kZXggMDJiNDJiYS4uMGRmNzQ4NyAxMDA2NDQKLS0tIGEvdGVzdC1jaG10aW1lLmMKKysrIGIvdGVzdC1jaG10aW1lLmMKQEAgLTU2LDcgKzU2LDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJc3RhdGljIGludCB2ZXJib3NlOwogCkBAIC04NCwxNSArODQsMTUgQEAKIAkJaWYgKHN0YXQoYXJndltpXSwgJnNiKSA8IDApIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIHN0YXQgJXM6ICVzXG4iLAogCQkJICAgICAgICBhcmd2W2ldLCBzdHJlcnJvcihlcnJubykpOwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIDE7CiAJCX0KIAotI2lmZGVmIFdJTjMyCisjaWZkZWYgR0lUX1dJTkRPV1NfTkFUSVZFCiAJCWlmICghKHNiLnN0X21vZGUgJiBTX0lXVVNSKSAmJgogCQkJCWNobW9kKGFyZ3ZbaV0sIHNiLnN0X21vZGUgfCBTX0lXVVNSKSkgewogCQkJZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3QgbWFrZSB1c2VyLXdyaXRhYmxlICVzOiAlcyIsCiAJCQkJYXJndltpXSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAxOwogCQl9CiAjZW5kaWYKIApAQCAtMTA3LDcgKzEwNyw3IEBACiAJCWlmICh1dGIubW9kdGltZSAhPSBzYi5zdF9tdGltZSAmJiB1dGltZShhcmd2W2ldLCAmdXRiKSA8IDApIHsKIAkJCWZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIG1vZGlmeSB0aW1lIG9uICVzOiAlc1xuIiwKIAkJCSAgICAgICAgYXJndltpXSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVybiAxOwogCQl9CiAJfQogCkBAIC0xMTUsNSArMTE1LDUgQEAKIAogdXNhZ2U6CiAJZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgJXNcbiIsIGFyZ3ZbMF0sIHVzYWdlX3N0cik7Ci0JcmV0dXJuIC0xOworCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvdGVzdC1kdW1wLWNhY2hlLXRyZWUuYyBiL3Rlc3QtZHVtcC1jYWNoZS10cmVlLmMKaW5kZXggYTZmZmRmMy4uNDdlYWI5NyAxMDA2NDQKLS0tIGEvdGVzdC1kdW1wLWNhY2hlLXRyZWUuYworKysgYi90ZXN0LWR1bXAtY2FjaGUtdHJlZS5jCkBAIC01OSw2ICs1OSw4IEBACiAJc3RydWN0IGNhY2hlX3RyZWUgKmFub3RoZXIgPSBjYWNoZV90cmVlKCk7CiAJaWYgKHJlYWRfY2FjaGUoKSA8IDApCiAJCWRpZSgidW5hYmxlIHRvIHJlYWQgaW5kZXggZmlsZSIpOwotCWNhY2hlX3RyZWVfdXBkYXRlKGFub3RoZXIsIGFjdGl2ZV9jYWNoZSwgYWN0aXZlX25yLCBXUklURV9UUkVFX0RSWV9SVU4pOworCWNhY2hlX3RyZWVfdXBkYXRlKGFub3RoZXIsCisJCQkgIChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiBjb25zdCAqKWFjdGl2ZV9jYWNoZSwKKwkJCSAgYWN0aXZlX25yLCBXUklURV9UUkVFX0RSWV9SVU4pOwogCXJldHVybiBkdW1wX2NhY2hlX3RyZWUoYWN0aXZlX2NhY2hlX3RyZWUsIGFub3RoZXIsICIiKTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3QtaW5kZXgtdmVyc2lvbi5jIGIvdGVzdC1pbmRleC12ZXJzaW9uLmMKaW5kZXggYmZhYWQ5ZS4uMDVkNDY5OSAxMDA2NDQKLS0tIGEvdGVzdC1pbmRleC12ZXJzaW9uLmMKKysrIGIvdGVzdC1pbmRleC12ZXJzaW9uLmMKQEAgLTEsNiArMSw2IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBjYWNoZV9oZWFkZXIgaGRyOwogCWludCB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvdGVzdC1tZXJnZXNvcnQuYyBiL3Rlc3QtbWVyZ2Vzb3J0LmMKaW5kZXggM2YzODhiNC4uZWEzYjk1OSAxMDA2NDQKLS0tIGEvdGVzdC1tZXJnZXNvcnQuYworKysgYi90ZXN0LW1lcmdlc29ydC5jCkBAIC0yMiw3ICsyMiw3IEBACiAJcmV0dXJuIHN0cmNtcCh4LT50ZXh0LCB5LT50ZXh0KTsKIH0KIAotaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQoraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXN0cnVjdCBsaW5lICpsaW5lLCAqcCA9IE5VTEwsICpsaW5lcyA9IE5VTEw7CiAJc3RydWN0IHN0cmJ1ZiBzYiA9IFNUUkJVRl9JTklUOwpkaWZmIC0tZ2l0IGEvdGVzdC1wYXJzZS1vcHRpb25zLmMgYi90ZXN0LXBhcnNlLW9wdGlvbnMuYwppbmRleCAzYzk1MTBhLi40MzRlOGI4IDEwMDY0NAotLS0gYS90ZXN0LXBhcnNlLW9wdGlvbnMuYworKysgYi90ZXN0LXBhcnNlLW9wdGlvbnMuYwpAQCAtMjksNyArMjksNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJY29uc3QgY2hhciAqcHJlZml4ID0gInByZWZpeC8iOwogCWNvbnN0IGNoYXIgKnVzYWdlW10gPSB7CkBAIC04MSw3ICs4MSw3IEBACiAJfTsKIAlpbnQgaTsKIAotCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIGFyZ3YsIHByZWZpeCwgb3B0aW9ucywgdXNhZ2UsIDApOworCWFyZ2MgPSBwYXJzZV9vcHRpb25zKGFyZ2MsIChjb25zdCBjaGFyICoqKWFyZ3YsIHByZWZpeCwgb3B0aW9ucywgdXNhZ2UsIDApOwogCiAJcHJpbnRmKCJib29sZWFuOiAlZFxuIiwgYm9vbGVhbik7CiAJcHJpbnRmKCJpbnRlZ2VyOiAldVxuIiwgaW50ZWdlcik7CmRpZmYgLS1naXQgYS90ZXN0LXBhdGgtdXRpbHMuYyBiL3Rlc3QtcGF0aC11dGlscy5jCmluZGV4IDAwOTJjYmYuLmJiOTc1ZTQgMTAwNjQ0Ci0tLSBhL3Rlc3QtcGF0aC11dGlscy5jCisrKyBiL3Rlc3QtcGF0aC11dGlscy5jCkBAIC0yOCw2ICsyOCwxOSBAQAogCXJldHVybiAxOwogfQogCitzdGF0aWMgdm9pZCBub3JtYWxpemVfYXJndl9zdHJpbmcoY29uc3QgY2hhciAqKnZhciwgY29uc3QgY2hhciAqaW5wdXQpCit7CisJaWYgKCFzdHJjbXAoaW5wdXQsICI8bnVsbD4iKSkKKwkJKnZhciA9IE5VTEw7CisJZWxzZSBpZiAoIXN0cmNtcChpbnB1dCwgIjxlbXB0eT4iKSkKKwkJKnZhciA9ICIiOworCWVsc2UKKwkJKnZhciA9IGlucHV0OworCisJaWYgKCp2YXIgJiYgKCoqdmFyID09ICc8JyB8fCAqKnZhciA9PSAnKCcpKQorCQlkaWUoIkJhZCB2YWx1ZTogJXNcbiIsIGlucHV0KTsKK30KKwogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWlmIChhcmdjID09IDMgJiYgIXN0cmNtcChhcmd2WzFdLCAibm9ybWFsaXplX3BhdGhfY29weSIpKSB7CkBAIC0xMDMsNiArMTE2LDI1IEBACiAJCXJldHVybiAwOwogCX0KIAorCWlmIChhcmdjID09IDMgJiYgIXN0cmNtcChhcmd2WzFdLCAibWluZ3dfcGF0aCIpKSB7CisJCXB1dHMoYXJndlsyXSk7CisJCXJldHVybiAwOworCX0KKworCWlmIChhcmdjID09IDQgJiYgIXN0cmNtcChhcmd2WzFdLCAicmVsYXRpdmVfcGF0aCIpKSB7CisJCXN0cnVjdCBzdHJidWYgc2IgPSBTVFJCVUZfSU5JVDsKKwkJY29uc3QgY2hhciAqaW4sICpwcmVmaXgsICpyZWw7CisJCW5vcm1hbGl6ZV9hcmd2X3N0cmluZygmaW4sIGFyZ3ZbMl0pOworCQlub3JtYWxpemVfYXJndl9zdHJpbmcoJnByZWZpeCwgYXJndlszXSk7CisJCXJlbCA9IHJlbGF0aXZlX3BhdGgoaW4sIHByZWZpeCwgJnNiKTsKKwkJaWYgKCFyZWwpCisJCQlwdXRzKCIobnVsbCkiKTsKKwkJZWxzZQorCQkJcHV0cyhzdHJsZW4ocmVsKSA+IDAgPyByZWwgOiAiKGVtcHR5KSIpOworCQlzdHJidWZfcmVsZWFzZSgmc2IpOworCQlyZXR1cm4gMDsKKwl9CisKIAlmcHJpbnRmKHN0ZGVyciwgIiVzOiB1bmtub3duIGZ1bmN0aW9uIG5hbWU6ICVzXG4iLCBhcmd2WzBdLAogCQlhcmd2WzFdID8gYXJndlsxXSA6ICIodGhlcmUgd2FzIG5vbmUpIik7CiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS90ZXN0LXByaW8tcXVldWUuYyBiL3Rlc3QtcHJpby1xdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZTcyZjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXByaW8tcXVldWUuYwpAQCAtMCwwICsxLDM5IEBACisjaW5jbHVkZSAiY2FjaGUuaCIKKyNpbmNsdWRlICJwcmlvLXF1ZXVlLmgiCisKK3N0YXRpYyBpbnQgaW50Y21wKGNvbnN0IHZvaWQgKnZhLCBjb25zdCB2b2lkICp2Yiwgdm9pZCAqZGF0YSkKK3sKKwljb25zdCBpbnQgKmEgPSB2YSwgKmIgPSB2YjsKKwlyZXR1cm4gKmEgLSAqYjsKK30KKworc3RhdGljIHZvaWQgc2hvdyhpbnQgKnYpCit7CisJaWYgKCF2KQorCQlwcmludGYoIk5VTExcbiIpOworCWVsc2UKKwkJcHJpbnRmKCIlZFxuIiwgKnYpOworCWZyZWUodik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlzdHJ1Y3QgcHJpb19xdWV1ZSBwcSA9IHsgaW50Y21wIH07CisKKwl3aGlsZSAoKisrYXJndikgeworCQlpZiAoIXN0cmNtcCgqYXJndiwgImdldCIpKQorCQkJc2hvdyhwcmlvX3F1ZXVlX2dldCgmcHEpKTsKKwkJZWxzZSBpZiAoIXN0cmNtcCgqYXJndiwgImR1bXAiKSkgeworCQkJaW50ICp2OworCQkJd2hpbGUgKCh2ID0gcHJpb19xdWV1ZV9nZXQoJnBxKSkpCisJCQkgICAgICAgc2hvdyh2KTsKKwkJfQorCQllbHNlIHsKKwkJCWludCAqdiA9IG1hbGxvYyhzaXplb2YoKnYpKTsKKwkJCSp2ID0gYXRvaSgqYXJndik7CisJCQlwcmlvX3F1ZXVlX3B1dCgmcHEsIHYpOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0LXJlYWQtY2FjaGUuYyBiL3Rlc3QtcmVhZC1jYWNoZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWJjZjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0LXJlYWQtY2FjaGUuYwpAQCAtMCwwICsxLDEzIEBACisjaW5jbHVkZSAiY2FjaGUuaCIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpbnQgaSwgY250ID0gMTsKKwlpZiAoYXJnYyA9PSAyKQorCQljbnQgPSBzdHJ0b2woYXJndlsxXSwgTlVMTCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKSB7CisJCXJlYWRfY2FjaGUoKTsKKwkJZGlzY2FyZF9jYWNoZSgpOworCX0KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3Qtc3VicHJvY2Vzcy5jIGIvdGVzdC1zdWJwcm9jZXNzLmMKaW5kZXggZjJkNGMwZC4uOTM1MjVlYiAxMDA2NDQKLS0tIGEvdGVzdC1zdWJwcm9jZXNzLmMKKysrIGIvdGVzdC1zdWJwcm9jZXNzLmMKQEAgLTEsNyArMSw3IEBACiAjaW5jbHVkZSAiY2FjaGUuaCIKICNpbmNsdWRlICJydW4tY29tbWFuZC5oIgogCi1pbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAJc3RydWN0IGNoaWxkX3Byb2Nlc3MgY3A7CiAJaW50IG5vZ2l0ID0gMDsKQEAgLTE1LDYgKzE1LDYgQEAKIAl9CiAJbWVtc2V0KCZjcCwgMCwgc2l6ZW9mKGNwKSk7CiAJY3AuZ2l0X2NtZCA9IDE7Ci0JY3AuYXJndiA9IGFyZ3YgKyAxOworCWNwLmFyZ3YgPSAoY29uc3QgY2hhciAqKilhcmd2ICsgMTsKIAlyZXR1cm4gcnVuX2NvbW1hbmQoJmNwKTsKIH0KZGlmZiAtLWdpdCBhL3RocmVhZC11dGlscy5jIGIvdGhyZWFkLXV0aWxzLmMKaW5kZXggN2Y0Yjc2YS4uOTczOTZhNyAxMDA2NDQKLS0tIGEvdGhyZWFkLXV0aWxzLmMKKysrIGIvdGhyZWFkLXV0aWxzLmMKQEAgLTI0LDcgKzI0LDcgQEAKIAlsb25nIG5jcHVzOwogI2VuZGlmCiAKLSNpZmRlZiBfV0lOMzIKKyNpZmRlZiBHSVRfV0lORE9XU19OQVRJVkUKIAlTWVNURU1fSU5GTyBpbmZvOwogCUdldFN5c3RlbUluZm8oJmluZm8pOwogCmRpZmYgLS1naXQgYS90cmFjZS5jIGIvdHJhY2UuYwppbmRleCA1ZWMwZTNiLi4zZDc0NGQxIDEwMDY0NAotLS0gYS90cmFjZS5jCisrKyBiL3RyYWNlLmMKQEAgLTc1LDYgKzc1LDcgQEAKIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIH0KIAorX19hdHRyaWJ1dGVfXygoZm9ybWF0IChwcmludGYsIDIsIDMpKSkKIHN0YXRpYyB2b2lkIHRyYWNlX3ByaW50Zl9rZXkoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0IGFwOwpkaWZmIC0tZ2l0IGEvdHJhbnNwb3J0LWhlbHBlci5jIGIvdHJhbnNwb3J0LWhlbHBlci5jCmluZGV4IDVmOGQwNzUuLjYzY2FiYzMgMTAwNjQ0Ci0tLSBhL3RyYW5zcG9ydC1oZWxwZXIuYworKysgYi90cmFuc3BvcnQtaGVscGVyLmMKQEAgLTExLDYgKzExLDcgQEAKICNpbmNsdWRlICJ0aHJlYWQtdXRpbHMuaCIKICNpbmNsdWRlICJzaWdjaGFpbi5oIgogI2luY2x1ZGUgImFyZ3YtYXJyYXkuaCIKKyNpbmNsdWRlICJyZWZzLmgiCiAKIHN0YXRpYyBpbnQgZGVidWc7CiAKQEAgLTQ3LDcgKzQ4LDcgQEAKIAkJZGllX2Vycm5vKCJGdWxsIHdyaXRlIHRvIHJlbW90ZSBoZWxwZXIgZmFpbGVkIik7CiB9CiAKLXN0YXRpYyBpbnQgcmVjdmxpbmVfZmgoRklMRSAqaGVscGVyLCBzdHJ1Y3Qgc3RyYnVmICpidWZmZXIpCitzdGF0aWMgaW50IHJlY3ZsaW5lX2ZoKEZJTEUgKmhlbHBlciwgc3RydWN0IHN0cmJ1ZiAqYnVmZmVyLCBjb25zdCBjaGFyICpuYW1lKQogewogCXN0cmJ1Zl9yZXNldChidWZmZXIpOwogCWlmIChkZWJ1ZykKQEAgLTY1LDcgKzY2LDcgQEAKIAogc3RhdGljIGludCByZWN2bGluZShzdHJ1Y3QgaGVscGVyX2RhdGEgKmhlbHBlciwgc3RydWN0IHN0cmJ1ZiAqYnVmZmVyKQogewotCXJldHVybiByZWN2bGluZV9maChoZWxwZXItPm91dCwgYnVmZmVyKTsKKwlyZXR1cm4gcmVjdmxpbmVfZmgoaGVscGVyLT5vdXQsIGJ1ZmZlciwgaGVscGVyLT5uYW1lKTsKIH0KIAogc3RhdGljIHZvaWQgeGNoZ2xpbmUoc3RydWN0IGhlbHBlcl9kYXRhICpoZWxwZXIsIHN0cnVjdCBzdHJidWYgKmJ1ZmZlcikKQEAgLTIxNCwxMCArMjE1LDExIEBACiAJCWludCBpOwogCQlkYXRhLT5yZWZzcGVjX25yID0gcmVmc3BlY19ucjsKIAkJZGF0YS0+cmVmc3BlY3MgPSBwYXJzZV9mZXRjaF9yZWZzcGVjKHJlZnNwZWNfbnIsIHJlZnNwZWNzKTsKLQkJZm9yIChpID0gMDsgaSA8IHJlZnNwZWNfbnI7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgcmVmc3BlY19ucjsgaSsrKQogCQkJZnJlZSgoY2hhciAqKXJlZnNwZWNzW2ldKTsKLQkJfQogCQlmcmVlKHJlZnNwZWNzKTsKKwl9IGVsc2UgaWYgKGRhdGEtPmltcG9ydCB8fCBkYXRhLT5iaWRpX2ltcG9ydCB8fCBkYXRhLT5leHBvcnQpIHsKKwkJd2FybmluZygiVGhpcyByZW1vdGUgaGVscGVyIHNob3VsZCBpbXBsZW1lbnQgcmVmc3BlYyBjYXBhYmlsaXR5LiIpOwogCX0KIAlzdHJidWZfcmVsZWFzZSgmYnVmKTsKIAlpZiAoZGVidWcpCkBAIC00NzQsNyArNDc2LDcgQEAKIAkgKiB3ZXJlIGZldGNoaW5nLgogCSAqCiAJICogKElmIG5vICJyZWZzcGVjIiBjYXBhYmlsaXR5IHdhcyBzcGVjaWZpZWQsIGZvciBoaXN0b3JpY2FsCi0JICogcmVhc29ucyB3ZSBkZWZhdWx0IHRvICo6Ki4pCisJICogcmVhc29ucyB3ZSBkZWZhdWx0IHRvIHRoZSBlcXVpdmFsZW50IG9mICo6Ki4pCiAJICoKIAkgKiBTdG9yZSB0aGUgcmVzdWx0IGluIHRvX2ZldGNoW2ldLm9sZF9zaGExLiAgQ2FsbGVycyBzdWNoCiAJICogYXMgImdpdCBmZXRjaCIgY2FuIHVzZSB0aGUgdmFsdWUgdG8gd3JpdGUgZmVlZGJhY2sgdG8gdGhlCkBAIC01NDEsNyArNTQzLDcgQEAKIAkJZ290byBleGl0OwogCiAJc2VuZGxpbmUoZGF0YSwgJmNtZGJ1Zik7Ci0JcmVjdmxpbmVfZmgoaW5wdXQsICZjbWRidWYpOworCXJlY3ZsaW5lX2ZoKGlucHV0LCAmY21kYnVmLCBuYW1lKTsKIAlpZiAoIXN0cmNtcChjbWRidWYuYnVmLCAiIikpIHsKIAkJZGF0YS0+bm9fZGlzY29ubmVjdF9yZXEgPSAxOwogCQlpZiAoZGVidWcpCkBAIC02MjMsNyArNjI1LDcgQEAKIAlyZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyB2b2lkIHB1c2hfdXBkYXRlX3JlZl9zdGF0dXMoc3RydWN0IHN0cmJ1ZiAqYnVmLAorc3RhdGljIGludCBwdXNoX3VwZGF0ZV9yZWZfc3RhdHVzKHN0cnVjdCBzdHJidWYgKmJ1ZiwKIAkJCQkgICBzdHJ1Y3QgcmVmICoqcmVmLAogCQkJCSAgIHN0cnVjdCByZWYgKnJlbW90ZV9yZWZzKQogewpAQCAtNjg5LDcgKzY5MSw3IEBACiAJCSpyZWYgPSBmaW5kX3JlZl9ieV9uYW1lKHJlbW90ZV9yZWZzLCByZWZuYW1lKTsKIAlpZiAoISpyZWYpIHsKIAkJd2FybmluZygiaGVscGVyIHJlcG9ydGVkIHVuZXhwZWN0ZWQgc3RhdHVzIG9mICVzIiwgcmVmbmFtZSk7Ci0JCXJldHVybjsKKwkJcmV0dXJuIDE7CiAJfQogCiAJaWYgKCgqcmVmKS0+c3RhdHVzICE9IFJFRl9TVEFUVVNfTk9ORSkgewpAQCAtNjk4LDExICs3MDAsMTIgQEAKIAkJICogc3RhdHVzIHJlcG9ydGVkIGJ5IHRoZSByZW1vdGUgaGVscGVyIGlmIHRoZSBsYXR0ZXIgaXMgJ25vIG1hdGNoJy4KIAkJICovCiAJCWlmIChzdGF0dXMgPT0gUkVGX1NUQVRVU19OT05FKQotCQkJcmV0dXJuOworCQkJcmV0dXJuIDE7CiAJfQogCiAJKCpyZWYpLT5zdGF0dXMgPSBzdGF0dXM7CiAJKCpyZWYpLT5yZW1vdGVfc3RhdHVzID0gbXNnOworCXJldHVybiAhKHN0YXR1cyA9PSBSRUZfU1RBVFVTX09LKTsKIH0KIAogc3RhdGljIHZvaWQgcHVzaF91cGRhdGVfcmVmc19zdGF0dXMoc3RydWN0IGhlbHBlcl9kYXRhICpkYXRhLApAQCAtNzExLDExICs3MTQsMjQgQEAKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZiA9IFNUUkJVRl9JTklUOwogCXN0cnVjdCByZWYgKnJlZiA9IHJlbW90ZV9yZWZzOwogCWZvciAoOzspIHsKKwkJY2hhciAqcHJpdmF0ZTsKKwogCQlyZWN2bGluZShkYXRhLCAmYnVmKTsKIAkJaWYgKCFidWYubGVuKQogCQkJYnJlYWs7CiAKLQkJcHVzaF91cGRhdGVfcmVmX3N0YXR1cygmYnVmLCAmcmVmLCByZW1vdGVfcmVmcyk7CisJCWlmIChwdXNoX3VwZGF0ZV9yZWZfc3RhdHVzKCZidWYsICZyZWYsIHJlbW90ZV9yZWZzKSkKKwkJCWNvbnRpbnVlOworCisJCWlmICghZGF0YS0+cmVmc3BlY3MpCisJCQljb250aW51ZTsKKworCQkvKiBwcm9wYWdhdGUgYmFjayB0aGUgdXBkYXRlIHRvIHRoZSByZW1vdGUgbmFtZXNwYWNlICovCisJCXByaXZhdGUgPSBhcHBseV9yZWZzcGVjcyhkYXRhLT5yZWZzcGVjcywgZGF0YS0+cmVmc3BlY19uciwgcmVmLT5uYW1lKTsKKwkJaWYgKCFwcml2YXRlKQorCQkJY29udGludWU7CisJCXVwZGF0ZV9yZWYoInVwZGF0ZSBieSBoZWxwZXIiLCBwcml2YXRlLCByZWYtPm5ld19zaGExLCBOVUxMLCAwLCAwKTsKKwkJZnJlZShwcml2YXRlKTsKIAl9CiAJc3RyYnVmX3JlbGVhc2UoJmJ1Zik7CiB9CkBAIC03OTAsNiArODA2LDE0IEBACiAJc3RydWN0IHN0cmluZ19saXN0IHJldmxpc3RfYXJncyA9IFNUUklOR19MSVNUX0lOSVRfTk9EVVA7CiAJc3RydWN0IHN0cmJ1ZiBidWYgPSBTVFJCVUZfSU5JVDsKIAorCWlmICghZGF0YS0+cmVmc3BlY3MpCisJCWRpZSgicmVtb3RlLWhlbHBlciBkb2Vzbid0IHN1cHBvcnQgcHVzaDsgcmVmc3BlYyBuZWVkZWQiKTsKKworCWlmIChmbGFncyAmIFRSQU5TUE9SVF9QVVNIX0RSWV9SVU4pIHsKKwkJaWYgKHNldF9oZWxwZXJfb3B0aW9uKHRyYW5zcG9ydCwgImRyeS1ydW4iLCAidHJ1ZSIpICE9IDApCisJCQlkaWUoImhlbHBlciAlcyBkb2VzIG5vdCBzdXBwb3J0IGRyeS1ydW4iLCBkYXRhLT5uYW1lKTsKKwl9CisKIAloZWxwZXIgPSBnZXRfaGVscGVyKHRyYW5zcG9ydCk7CiAKIAl3cml0ZV9jb25zdGFudChoZWxwZXItPmluLCAiZXhwb3J0XG4iKTsKQEAgLTgwMCwyMiArODI0LDI1IEBACiAJCWNoYXIgKnByaXZhdGU7CiAJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAKLQkJaWYgKCFkYXRhLT5yZWZzcGVjcykKLQkJCWNvbnRpbnVlOworCQlpZiAocmVmLT5kZWxldGlvbikKKwkJCWRpZSgicmVtb3RlLWhlbHBlcnMgZG8gbm90IHN1cHBvcnQgcmVmIGRlbGV0aW9uIik7CisKIAkJcHJpdmF0ZSA9IGFwcGx5X3JlZnNwZWNzKGRhdGEtPnJlZnNwZWNzLCBkYXRhLT5yZWZzcGVjX25yLCByZWYtPm5hbWUpOwogCQlpZiAocHJpdmF0ZSAmJiAhZ2V0X3NoYTEocHJpdmF0ZSwgc2hhMSkpIHsKIAkJCXN0cmJ1Zl9hZGRmKCZidWYsICJeJXMiLCBwcml2YXRlKTsKIAkJCXN0cmluZ19saXN0X2FwcGVuZCgmcmV2bGlzdF9hcmdzLCBzdHJidWZfZGV0YWNoKCZidWYsIE5VTEwpKTsKKwkJCWhhc2hjcHkocmVmLT5vbGRfc2hhMSwgc2hhMSk7CiAJCX0KIAkJZnJlZShwcml2YXRlKTsKIAotCQlpZiAocmVmLT5kZWxldGlvbikgeworCQlpZiAocmVmLT5kZWxldGlvbikKIAkJCWRpZSgicmVtb3RlLWhlbHBlcnMgZG8gbm90IHN1cHBvcnQgcmVmIGRlbGV0aW9uIik7Ci0JCX0KIAotCQlpZiAocmVmLT5wZWVyX3JlZikKKwkJaWYgKHJlZi0+cGVlcl9yZWYpIHsKKwkJCWlmIChzdHJjbXAocmVmLT5wZWVyX3JlZi0+bmFtZSwgcmVmLT5uYW1lKSkKKwkJCQlkaWUoInJlbW90ZS1oZWxwZXJzIGRvIG5vdCBzdXBwb3J0IG9sZDpuZXcgc3ludGF4Iik7CiAJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJnJldmxpc3RfYXJncywgcmVmLT5wZWVyX3JlZi0+bmFtZSk7Ci0KKwkJfQogCX0KIAogCWlmIChnZXRfZXhwb3J0ZXIodHJhbnNwb3J0LCAmZXhwb3J0ZXIsICZyZXZsaXN0X2FyZ3MpKQpAQCAtOTU1LDYgKzk4Miw3IEBACiAjZGVmaW5lIFBCVUZGRVJTSVpFIDgxOTIKIAogLyogUHJpbnQgYmlkaXJlY3Rpb25hbCB0cmFuc2ZlciBsb29wIGRlYnVnIG1lc3NhZ2UuICovCitfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKQogc3RhdGljIHZvaWQgdHJhbnNmZXJfZGVidWcoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdCBhcmdzOwpAQCAtMTA0MCw3ICsxMDY4LDcgQEAKIAkJcmV0dXJuIC0xOwogCX0gZWxzZSBpZiAoYnl0ZXMgPT0gMCkgewogCQl0cmFuc2Zlcl9kZWJ1ZygiJXMgRU9GICh3aXRoICVpIGJ5dGVzIGluIGJ1ZmZlcikiLAotCQkJdC0+c3JjX25hbWUsIHQtPmJ1ZnVzZSk7CisJCQl0LT5zcmNfbmFtZSwgKGludCl0LT5idWZ1c2UpOwogCQl0LT5zdGF0ZSA9IFNTVEFURV9GTFVTSElORzsKIAl9IGVsc2UgaWYgKGJ5dGVzID4gMCkgewogCQl0LT5idWZ1c2UgKz0gYnl0ZXM7CkBAIC0xMTA0LDcgKzExMzIsNyBAQAogI2lmbmRlZiBOT19QVEhSRUFEUwogCiAvKgotICogSm9pbiB0aHJlYWQsIHdpdGggYXBwb3JpYXRlIGVycm9ycyBvbiBmYWlsdXJlLiBOYW1lIGlzIG5hbWUgZm9yIHRoZQorICogSm9pbiB0aHJlYWQsIHdpdGggYXBwcm9wcmlhdGUgZXJyb3JzIG9uIGZhaWx1cmUuIE5hbWUgaXMgbmFtZSBmb3IgdGhlCiAgKiB0aHJlYWQgKGZvciBlcnJvciBtZXNzYWdlcykuIFJldHVybnMgMCBvbiBzdWNjZXNzLCAxIG9uIGZhaWx1cmUuCiAgKi8KIHN0YXRpYyBpbnQgdGxvb3Bfam9pbihwdGhyZWFkX3QgdGhyZWFkLCBjb25zdCBjaGFyICpuYW1lKQpAQCAtMTE3MCw3ICsxMTk4LDcgQEAKIH0KIAogLyoKLSAqIEpvaW4gcHJvY2Vzcywgd2l0aCBhcHBvcmlhdGUgZXJyb3JzIG9uIGZhaWx1cmUuIE5hbWUgaXMgbmFtZSBmb3IgdGhlCisgKiBKb2luIHByb2Nlc3MsIHdpdGggYXBwcm9wcmlhdGUgZXJyb3JzIG9uIGZhaWx1cmUuIE5hbWUgaXMgbmFtZSBmb3IgdGhlCiAgKiBwcm9jZXNzIChmb3IgZXJyb3IgbWVzc2FnZXMpLiBSZXR1cm5zIDAgb24gc3VjY2VzcywgMSBvbiBmYWlsdXJlLgogICovCiBzdGF0aWMgaW50IHRsb29wX2pvaW4ocGlkX3QgcGlkLCBjb25zdCBjaGFyICpuYW1lKQpkaWZmIC0tZ2l0IGEvdHJhbnNwb3J0LmMgYi90cmFuc3BvcnQuYwppbmRleCBiYTVkOGFmLi5kZTI1NTg4IDEwMDY0NAotLS0gYS90cmFuc3BvcnQuYworKysgYi90cmFuc3BvcnQuYwpAQCAtNTM0LDYgKzUzNCw4IEBACiAJYXJncy5xdWlldCA9ICh0cmFuc3BvcnQtPnZlcmJvc2UgPCAwKTsKIAlhcmdzLm5vX3Byb2dyZXNzID0gIXRyYW5zcG9ydC0+cHJvZ3Jlc3M7CiAJYXJncy5kZXB0aCA9IGRhdGEtPm9wdGlvbnMuZGVwdGg7CisJYXJncy5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkID0KKwkJZGF0YS0+b3B0aW9ucy5jaGVja19zZWxmX2NvbnRhaW5lZF9hbmRfY29ubmVjdGVkOwogCiAJaWYgKCFkYXRhLT5nb3RfcmVtb3RlX2hlYWRzKSB7CiAJCWNvbm5lY3Rfc2V0dXAodHJhbnNwb3J0LCAwLCAwKTsKQEAgLTU1MSw2ICs1NTMsOCBAQAogCQlyZWZzID0gTlVMTDsKIAlkYXRhLT5jb25uID0gTlVMTDsKIAlkYXRhLT5nb3RfcmVtb3RlX2hlYWRzID0gMDsKKwlkYXRhLT5vcHRpb25zLnNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgPQorCQlhcmdzLnNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQ7CiAKIAlmcmVlX3JlZnMocmVmc190bXApOwogCkBAIC04NzEsNiArODc1LDggQEAKIAl0cmFuc3BvcnQtPnB1c2hfcmVmcyA9IGdpdF90cmFuc3BvcnRfcHVzaDsKIAl0cmFuc3BvcnQtPmRpc2Nvbm5lY3QgPSBkaXNjb25uZWN0X2dpdDsKIAl0cmFuc3BvcnQtPnNtYXJ0X29wdGlvbnMgPSAmKGRhdGEtPm9wdGlvbnMpOworCisJdHJhbnNwb3J0LT5jYW5ub3RfcmV1c2UgPSAxOwogfQogCiBzdGF0aWMgaW50IGlzX2xvY2FsKGNvbnN0IGNoYXIgKnVybCkKQEAgLTEyMjgsNyArMTIzNCw3IEBACiAJCSAqIHRoZW4gbG9jYWwgYW5kIHJlbW90ZSByZWZzIGFyZSBsaWtlbHkgdG8gc3RpbGwgYmUgZXF1YWwuCiAJCSAqIEp1c3QgZmVlZCB0aGVtIGFsbCB0byB0aGUgZmV0Y2ggbWV0aG9kIGluIHRoYXQgY2FzZS4KIAkJICogVGhpcyBjb25kaXRpb24gc2hvdWxkbid0IGJlIG1ldCBpbiBhIG5vbi1kZWVwZW5pbmcgZmV0Y2gKLQkJICogKHNlZSBidWlsdGluLWZldGNoLmM6cXVpY2tmZXRjaCgpKS4KKwkJICogKHNlZSBidWlsdGluL2ZldGNoLmM6cXVpY2tmZXRjaCgpKS4KIAkJICovCiAJCWhlYWRzID0geG1hbGxvYyhucl9yZWZzICogc2l6ZW9mKCpoZWFkcykpOwogCQlmb3IgKHJtID0gcmVmczsgcm07IHJtID0gcm0tPm5leHQpCmRpZmYgLS1naXQgYS90cmFuc3BvcnQuaCBiL3RyYW5zcG9ydC5oCmluZGV4IGZjYjFkMjUuLjk2ZTBlZGUgMTAwNjQ0Ci0tLSBhL3RyYW5zcG9ydC5oCisrKyBiL3RyYW5zcG9ydC5oCkBAIC04LDYgKzgsOCBAQAogCXVuc2lnbmVkIHRoaW4gOiAxOwogCXVuc2lnbmVkIGtlZXAgOiAxOwogCXVuc2lnbmVkIGZvbGxvd3RhZ3MgOiAxOworCXVuc2lnbmVkIGNoZWNrX3NlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgOiAxOworCXVuc2lnbmVkIHNlbGZfY29udGFpbmVkX2FuZF9jb25uZWN0ZWQgOiAxOwogCWludCBkZXB0aDsKIAljb25zdCBjaGFyICp1cGxvYWRwYWNrOwogCWNvbnN0IGNoYXIgKnJlY2VpdmVwYWNrOwpAQCAtMjUsNiArMjcsMTIgQEAKIAkgKi8KIAl1bnNpZ25lZCBnb3RfcmVtb3RlX3JlZnMgOiAxOwogCisJLyoKKwkgKiBUcmFuc3BvcnRzIHRoYXQgY2FsbCB0YWtlLW92ZXIgZGVzdHJveXMgdGhlIGRhdGEgc3BlY2lmaWMgdG8KKwkgKiB0aGUgdHJhbnNwb3J0IHR5cGUgd2hpbGUgZG9pbmcgc28sIGFuZCBjYW5ub3QgYmUgcmV1c2VkLgorCSAqLworCXVuc2lnbmVkIGNhbm5vdF9yZXVzZSA6IDE7CisKIAkvKioKIAkgKiBSZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgcG9zaXRpdmUgaWYgdGhlIG9wdGlvbiBpcyBub3QKIAkgKiByZWNvZ25pemVkIG9yIGlzIGluYXBwbGljYWJsZSwgYW5kIG5lZ2F0aXZlIGlmIHRoZSBvcHRpb24KQEAgLTE2OCw3ICsxNzYsNyBAQAogaW50IHRyYW5zcG9ydF9oZWxwZXJfaW5pdChzdHJ1Y3QgdHJhbnNwb3J0ICp0cmFuc3BvcnQsIGNvbnN0IGNoYXIgKm5hbWUpOwogaW50IGJpZGlyZWN0aW9uYWxfdHJhbnNmZXJfbG9vcChpbnQgaW5wdXQsIGludCBvdXRwdXQpOwogCi0vKiBjb21tb24gbWV0aG9kcyB1c2VkIGJ5IHRyYW5zcG9ydC5jIGFuZCBidWlsdGluLXNlbmQtcGFjay5jICovCisvKiBjb21tb24gbWV0aG9kcyB1c2VkIGJ5IHRyYW5zcG9ydC5jIGFuZCBidWlsdGluL3NlbmQtcGFjay5jICovCiB2b2lkIHRyYW5zcG9ydF92ZXJpZnlfcmVtb3RlX25hbWVzKGludCBucl9oZWFkcywgY29uc3QgY2hhciAqKmhlYWRzKTsKIAogdm9pZCB0cmFuc3BvcnRfdXBkYXRlX3RyYWNraW5nX3JlZihzdHJ1Y3QgcmVtb3RlICpyZW1vdGUsIHN0cnVjdCByZWYgKnJlZiwgaW50IHZlcmJvc2UpOwpkaWZmIC0tZ2l0IGEvdHJlZS13YWxrLmMgYi90cmVlLXdhbGsuYwppbmRleCA2ZTMwZWY5Li5jNjI2MTM1IDEwMDY0NAotLS0gYS90cmVlLXdhbGsuYworKysgYi90cmVlLXdhbGsuYwpAQCAtMzIzLDcgKzMyMyw2IEBACiAKIGludCB0cmF2ZXJzZV90cmVlcyhpbnQgbiwgc3RydWN0IHRyZWVfZGVzYyAqdCwgc3RydWN0IHRyYXZlcnNlX2luZm8gKmluZm8pCiB7Ci0JaW50IHJldCA9IDA7CiAJaW50IGVycm9yID0gMDsKIAlzdHJ1Y3QgbmFtZV9lbnRyeSAqZW50cnkgPSB4bWFsbG9jKG4qc2l6ZW9mKCplbnRyeSkpOwogCWludCBpOwpAQCAtMzQxLDYgKzM0MCw3IEBACiAJCXN0cmJ1Zl9zZXRsZW4oJmJhc2UsIGluZm8tPnBhdGhsZW4pOwogCX0KIAlmb3IgKDs7KSB7CisJCWludCB0cmVlc191c2VkOwogCQl1bnNpZ25lZCBsb25nIG1hc2ssIGRpcm1hc2s7CiAJCWNvbnN0IGNoYXIgKmZpcnN0ID0gTlVMTDsKIAkJaW50IGZpcnN0X2xlbiA9IDA7CkBAIC00MDQsMTUgKzQwNCwxNCBAQAogCQlpZiAoaW50ZXJlc3RpbmcgPCAwKQogCQkJYnJlYWs7CiAJCWlmIChpbnRlcmVzdGluZykgewotCQkJcmV0ID0gaW5mby0+Zm4obiwgbWFzaywgZGlybWFzaywgZW50cnksIGluZm8pOwotCQkJaWYgKHJldCA8IDApIHsKLQkJCQllcnJvciA9IHJldDsKKwkJCXRyZWVzX3VzZWQgPSBpbmZvLT5mbihuLCBtYXNrLCBkaXJtYXNrLCBlbnRyeSwgaW5mbyk7CisJCQlpZiAodHJlZXNfdXNlZCA8IDApIHsKKwkJCQllcnJvciA9IHRyZWVzX3VzZWQ7CiAJCQkJaWYgKCFpbmZvLT5zaG93X2FsbF9lcnJvcnMpCiAJCQkJCWJyZWFrOwogCQkJfQotCQkJbWFzayAmPSByZXQ7CisJCQltYXNrICY9IHRyZWVzX3VzZWQ7CiAJCX0KLQkJcmV0ID0gMDsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykKIAkJCWlmIChtYXNrICYgKDF1bCA8PCBpKSkKIAkJCQl1cGRhdGVfZXh0ZW5kZWRfZW50cnkodHggKyBpLCBlbnRyeSArIGkpOwpkaWZmIC0tZ2l0IGEvdHJlZS13YWxrLmggYi90cmVlLXdhbGsuaAppbmRleCAyYmYwZGI5Li5hZTA0YjY0IDEwMDY0NAotLS0gYS90cmVlLXdhbGsuaAorKysgYi90cmVlLXdhbGsuaApAQCAtNDYsNyArNDYsNyBAQAogCWludCBwYXRobGVuOwogCXN0cnVjdCBwYXRoc3BlYyAqcGF0aHNwZWM7CiAKLQl1bnNpZ25lZCBsb25nIGNvbmZsaWN0czsKKwl1bnNpZ25lZCBsb25nIGRmX2NvbmZsaWN0czsKIAl0cmF2ZXJzZV9jYWxsYmFja190IGZuOwogCXZvaWQgKmRhdGE7CiAJaW50IHNob3dfYWxsX2Vycm9yczsKZGlmZiAtLWdpdCBhL3RyZWUuYyBiL3RyZWUuYwppbmRleCA2MmZlZDYzLi5jMGU1NjhjIDEwMDY0NAotLS0gYS90cmVlLmMKKysrIGIvdHJlZS5jCkBAIC0xNTksNyArMTU5LDcgQEAKIAkgKiBzb3J0IGF0IHRoZSBlbmQuCiAJICovCiAJZm9yIChpID0gMDsgIWZuICYmIGkgPCBhY3RpdmVfbnI7IGkrKykgewotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gYWN0aXZlX2NhY2hlW2ldOwogCQlpZiAoY2Vfc3RhZ2UoY2UpID09IHN0YWdlKQogCQkJZm4gPSByZWFkX29uZV9lbnRyeTsKIAl9CmRpZmYgLS1naXQgYS91bnBhY2stdHJlZXMuYyBiL3VucGFjay10cmVlcy5jCmluZGV4IGVkZTQyOTkuLmJmMDE3MTcgMTAwNjQ0Ci0tLSBhL3VucGFjay10cmVlcy5jCisrKyBiL3VucGFjay10cmVlcy5jCkBAIC0xMTYsMTQgKzExNiwyMCBAQAogCQkJQUREX0NBQ0hFX09LX1RPX0FERCB8IEFERF9DQUNIRV9PS19UT19SRVBMQUNFKTsKIH0KIAotc3RhdGljIHZvaWQgYWRkX2VudHJ5KHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbywgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKLQl1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpCitzdGF0aWMgc3RydWN0IGNhY2hlX2VudHJ5ICpkdXBfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAl1bnNpZ25lZCBpbnQgc2l6ZSA9IGNlX3NpemUoY2UpOwogCXN0cnVjdCBjYWNoZV9lbnRyeSAqbmV3ID0geG1hbGxvYyhzaXplKTsKIAogCW1lbWNweShuZXcsIGNlLCBzaXplKTsKLQlkb19hZGRfZW50cnkobywgbmV3LCBzZXQsIGNsZWFyKTsKKwlyZXR1cm4gbmV3OworfQorCitzdGF0aWMgdm9pZCBhZGRfZW50cnkoc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkgICAgICB1bnNpZ25lZCBpbnQgc2V0LCB1bnNpZ25lZCBpbnQgY2xlYXIpCit7CisJZG9fYWRkX2VudHJ5KG8sIGR1cF9lbnRyeShjZSksIHNldCwgY2xlYXIpOwogfQogCiAvKgpAQCAtMTczLDcgKzE3OSw3IEBACiAgKiBVbmxpbmsgdGhlIGxhc3QgY29tcG9uZW50IGFuZCBzY2hlZHVsZSB0aGUgbGVhZGluZyBkaXJlY3RvcmllcyBmb3IKICAqIHJlbW92YWwsIHN1Y2ggdGhhdCBlbXB0eSBkaXJlY3RvcmllcyBnZXQgcmVtb3ZlZC4KICAqLwotc3RhdGljIHZvaWQgdW5saW5rX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UpCitzdGF0aWMgdm9pZCB1bmxpbmtfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSkKIHsKIAlpZiAoIWNoZWNrX2xlYWRpbmdfcGF0aChjZS0+bmFtZSwgY2VfbmFtZWxlbihjZSkpKQogCQlyZXR1cm47CkBAIC0xOTMsNyArMTk5LDcgQEAKIAogCWlmIChvLT51cGRhdGUgJiYgby0+dmVyYm9zZV91cGRhdGUpIHsKIAkJZm9yICh0b3RhbCA9IGNudCA9IDA7IGNudCA8IGluZGV4LT5jYWNoZV9ucjsgY250KyspIHsKLQkJCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpbmRleC0+Y2FjaGVbY250XTsKKwkJCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UgPSBpbmRleC0+Y2FjaGVbY250XTsKIAkJCWlmIChjZS0+Y2VfZmxhZ3MgJiAoQ0VfVVBEQVRFIHwgQ0VfV1RfUkVNT1ZFKSkKIAkJCQl0b3RhbCsrOwogCQl9CkBAIC0yMDYsNyArMjEyLDcgQEAKIAlpZiAoby0+dXBkYXRlKQogCQlnaXRfYXR0cl9zZXRfZGlyZWN0aW9uKEdJVF9BVFRSX0NIRUNLT1VULCAmby0+cmVzdWx0KTsKIAlmb3IgKGkgPSAwOyBpIDwgaW5kZXgtPmNhY2hlX25yOyBpKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4LT5jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4LT5jYWNoZVtpXTsKIAogCQlpZiAoY2UtPmNlX2ZsYWdzICYgQ0VfV1RfUkVNT1ZFKSB7CiAJCQlkaXNwbGF5X3Byb2dyZXNzKHByb2dyZXNzLCArK2NudCk7CkBAIC0yMzUsOCArMjQxLDExIEBACiAJcmV0dXJuIGVycnMgIT0gMDsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGVfc3BhcnNlKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7Ci1zdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfc3BhcnNlKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOworc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGVfc3BhcnNlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOworc3RhdGljIGludCB2ZXJpZnlfYWJzZW50X3NwYXJzZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJCWVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzLAorCQkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CiAKIHN0YXRpYyBpbnQgYXBwbHlfc3BhcnNlX2NoZWNrb3V0KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKQEAgLTI5MSw3ICszMDAsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjYWxsX3VucGFja19mbihzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyBpbmxpbmUgaW50IGNhbGxfdW5wYWNrX2ZuKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzcmMsCisJCQkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlpbnQgcmV0ID0gby0+Zm4oc3JjLCBvKTsKIAlpZiAocmV0ID4gMCkKQEAgLTMyMCw3ICszMzAsNyBAQAogCQlpbmRleC0+Y2FjaGVbaV0tPmNlX2ZsYWdzICY9IH4oQ0VfVU5QQUNLRUQgfCBDRV9BRERFRCB8IENFX05FV19TS0lQX1dPUktUUkVFKTsKIH0KIAotc3RhdGljIGludCBsb2NhdGVfaW5fc3JjX2luZGV4KHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCitzdGF0aWMgaW50IGxvY2F0ZV9pbl9zcmNfaW5kZXgoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCSAgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJc3RydWN0IGluZGV4X3N0YXRlICppbmRleCA9IG8tPnNyY19pbmRleDsKQEAgLTM2Niw3ICszNzYsNyBAQAogCXJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgdm9pZCBhZGRfc2FtZV91bm1lcmdlZChzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorc3RhdGljIHZvaWQgYWRkX3NhbWVfdW5tZXJnZWQoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKIAkJCSAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlzdHJ1Y3QgaW5kZXhfc3RhdGUgKmluZGV4ID0gby0+c3JjX2luZGV4OwpAQCAtMzg4LDcgKzM5OCw3IEBACiBzdGF0aWMgaW50IHVucGFja19pbmRleF9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkJICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewotCXN0cnVjdCBjYWNoZV9lbnRyeSAqc3JjW01BWF9VTlBBQ0tfVFJFRVMgKyAxXSA9IHsgTlVMTCwgfTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKnNyY1tNQVhfVU5QQUNLX1RSRUVTICsgMV0gPSB7IE5VTEwsIH07CiAJaW50IHJldDsKIAogCXNyY1swXSA9IGNlOwpAQCAtNDU0LDcgKzQ2NCw3IEBACiAJbmV3aW5mby5wYXRoc3BlYyA9IGluZm8tPnBhdGhzcGVjOwogCW5ld2luZm8ubmFtZSA9ICpwOwogCW5ld2luZm8ucGF0aGxlbiArPSB0cmVlX2VudHJ5X2xlbihwKSArIDE7Ci0JbmV3aW5mby5jb25mbGljdHMgfD0gZGZfY29uZmxpY3RzOworCW5ld2luZm8uZGZfY29uZmxpY3RzIHw9IGRmX2NvbmZsaWN0czsKIAogCWZvciAoaSA9IDA7IGkgPCBuOyBpKyssIGRpcm1hc2sgPj49IDEpIHsKIAkJY29uc3QgdW5zaWduZWQgY2hhciAqc2hhMSA9IE5VTEw7CkBAIC01NTUsMTcgKzU2NSwxMiBAQAogewogCWludCBpOwogCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyA9IGluZm8tPmRhdGE7Ci0JdW5zaWduZWQgbG9uZyBjb25mbGljdHM7CisJdW5zaWduZWQgbG9uZyBjb25mbGljdHMgPSBpbmZvLT5kZl9jb25mbGljdHMgfCBkaXJtYXNrOwogCiAJLyogRG8gd2UgaGF2ZSAqb25seSogZGlyZWN0b3JpZXM/IE5vdGhpbmcgdG8gZG8gKi8KIAlpZiAobWFzayA9PSBkaXJtYXNrICYmICFzcmNbMF0pCiAJCXJldHVybiAwOwogCi0JY29uZmxpY3RzID0gaW5mby0+Y29uZmxpY3RzOwotCWlmIChvLT5tZXJnZSkKLQkJY29uZmxpY3RzID4+PSAxOwotCWNvbmZsaWN0cyB8PSBkaXJtYXNrOwotCiAJLyoKIAkgKiBPaywgd2UndmUgZmlsbGVkIGluIHVwIHRvIGFueSBwb3RlbnRpYWwgaW5kZXggZW50cnkgaW4gc3JjWzBdLAogCSAqIG5vdyBkbyB0aGUgcmVzdC4KQEAgLTU5MCw4ICs1OTUsMTYgQEAKIAkJc3JjW2kgKyBvLT5tZXJnZV0gPSBjcmVhdGVfY2VfZW50cnkoaW5mbywgbmFtZXMgKyBpLCBzdGFnZSk7CiAJfQogCi0JaWYgKG8tPm1lcmdlKQotCQlyZXR1cm4gY2FsbF91bnBhY2tfZm4oc3JjLCBvKTsKKwlpZiAoby0+bWVyZ2UpIHsKKwkJaW50IHJjID0gY2FsbF91bnBhY2tfZm4oKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICopc3JjLAorCQkJCQlvKTsKKwkJZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworCQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IHNyY1tpICsgby0+bWVyZ2VdOworCQkJaWYgKGNlICE9IG8tPmRmX2NvbmZsaWN0X2VudHJ5KQorCQkJCWZyZWUoY2UpOworCQl9CisJCXJldHVybiByYzsKKwl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQogCQlpZiAoc3JjW2ldICYmIHNyY1tpXSAhPSBvLT5kZl9jb25mbGljdF9lbnRyeSkKQEAgLTYzNyw3ICs2NTAsNyBAQAogCWludCBwX2xlbiA9IHRyZWVfZW50cnlfbGVuKHApOwogCiAJZm9yIChwb3MgPSBvLT5jYWNoZV9ib3R0b207IHBvcyA8IGluZGV4LT5jYWNoZV9ucjsgcG9zKyspIHsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGluZGV4LT5jYWNoZVtwb3NdOworCQljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gaW5kZXgtPmNhY2hlW3Bvc107CiAJCWNvbnN0IGNoYXIgKmNlX25hbWUsICpjZV9zbGFzaDsKIAkJaW50IGNtcCwgY2VfbGVuOwogCkBAIC03ODksMTMgKzgwMiw2IEBACiAKIAkvKiBOb3cgaGFuZGxlIGFueSBkaXJlY3Rvcmllcy4uICovCiAJaWYgKGRpcm1hc2spIHsKLQkJdW5zaWduZWQgbG9uZyBjb25mbGljdHMgPSBtYXNrICYgfmRpcm1hc2s7Ci0JCWlmIChvLT5tZXJnZSkgewotCQkJY29uZmxpY3RzIDw8PSAxOwotCQkJaWYgKHNyY1swXSkKLQkJCQljb25mbGljdHMgfD0gMTsKLQkJfQotCiAJCS8qIHNwZWNpYWwgY2FzZTogImRpZmYtaW5kZXggLS1jYWNoZWQiIGxvb2tpbmcgYXQgYSB0cmVlICovCiAJCWlmIChvLT5kaWZmX2luZGV4X2NhY2hlZCAmJgogCQkgICAgbiA9PSAxICYmIGRpcm1hc2sgPT0gMSAmJiBTX0lTRElSKG5hbWVzLT5tb2RlKSkgewpAQCAtODE0LDcgKzgyMCw3IEBACiAJCQl9CiAJCX0KIAotCQlpZiAodHJhdmVyc2VfdHJlZXNfcmVjdXJzaXZlKG4sIGRpcm1hc2ssIGNvbmZsaWN0cywKKwkJaWYgKHRyYXZlcnNlX3RyZWVzX3JlY3Vyc2l2ZShuLCBkaXJtYXNrLCBtYXNrICYgfmRpcm1hc2ssCiAJCQkJCSAgICAgbmFtZXMsIGluZm8pIDwgMCkKIAkJCXJldHVybiAtMTsKIAkJcmV0dXJuIG1hc2s7CkBAIC05OTUsNyArMTAwMSw5IEBACiAJCSAgICAgICBzZWxlY3RfZmxhZywgc2tpcF93dF9mbGFnLCBlbCk7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudChzdHJ1Y3QgY2FjaGVfZW50cnkgKiwgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqKTsKK3N0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKiwKKwkJCSBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcywKKwkJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKik7CiAvKgogICogTi13YXkgbWVyZ2UgImxlbiIgdHJlZXMuICBSZXR1cm5zIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZSB0byBtYW5pcHVsYXRlIHRoZQogICogcmVzdWx0aW5nIGluZGV4LCAtMiBvbiBmYWlsdXJlIHRvIHJlZmxlY3QgdGhlIGNoYW5nZXMgdG8gdGhlIHdvcmsgdHJlZS4KQEAgLTExNjUsMTIgKzExNzMsMTMgQEAKIAogLyogSGVyZSBjb21lIHRoZSBtZXJnZSBmdW5jdGlvbnMgKi8KIAotc3RhdGljIGludCByZWplY3RfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIGludCByZWplY3RfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlyZXR1cm4gYWRkX3JlamVjdGVkX3BhdGgobywgRVJST1JfV09VTERfT1ZFUldSSVRFLCBjZS0+bmFtZSk7CiB9CiAKLXN0YXRpYyBpbnQgc2FtZShzdHJ1Y3QgY2FjaGVfZW50cnkgKmEsIHN0cnVjdCBjYWNoZV9lbnRyeSAqYikKK3N0YXRpYyBpbnQgc2FtZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmEsIGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYikKIHsKIAlpZiAoISFhICE9ICEhYikKIAkJcmV0dXJuIDA7CkBAIC0xMTg3LDkgKzExOTYsOSBAQAogICogV2hlbiBhIENFIGdldHMgdHVybmVkIGludG8gYW4gdW5tZXJnZWQgZW50cnksIHdlCiAgKiB3YW50IGl0IHRvIGJlIHVwLXRvLWRhdGUKICAqLwotc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGVfMShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAotCQkJCSAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbywKLQkJCQkgICBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlKQorc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGVfMShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8sCisJCQkgICAgIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUpCiB7CiAJc3RydWN0IHN0YXQgc3Q7CiAKQEAgLTEyMjgsNyArMTIzNyw3IEBACiAJCWFkZF9yZWplY3RlZF9wYXRoKG8sIGVycm9yX3R5cGUsIGNlLT5uYW1lKTsKIH0KIAotc3RhdGljIGludCB2ZXJpZnlfdXB0b2RhdGUoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKK3N0YXRpYyBpbnQgdmVyaWZ5X3VwdG9kYXRlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJaWYgKCFvLT5za2lwX3NwYXJzZV9jaGVja291dCAmJiAoY2UtPmNlX2ZsYWdzICYgQ0VfTkVXX1NLSVBfV09SS1RSRUUpKQpAQCAtMTIzNiwxMyArMTI0NSwxNCBAQAogCXJldHVybiB2ZXJpZnlfdXB0b2RhdGVfMShjZSwgbywgRVJST1JfTk9UX1VQVE9EQVRFX0ZJTEUpOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV91cHRvZGF0ZV9zcGFyc2Uoc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKK3N0YXRpYyBpbnQgdmVyaWZ5X3VwdG9kYXRlX3NwYXJzZShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAogCQkJCSAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCXJldHVybiB2ZXJpZnlfdXB0b2RhdGVfMShjZSwgbywgRVJST1JfU1BBUlNFX05PVF9VUFRPREFURV9GSUxFKTsKIH0KIAotc3RhdGljIHZvaWQgaW52YWxpZGF0ZV9jZV9wYXRoKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK3N0YXRpYyB2b2lkIGludmFsaWRhdGVfY2VfcGF0aChjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJICAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlpZiAoY2UpCiAJCWNhY2hlX3RyZWVfaW52YWxpZGF0ZV9wYXRoKG8tPnNyY19pbmRleC0+Y2FjaGVfdHJlZSwgY2UtPm5hbWUpOwpAQCAtMTI1NSwxNiArMTI2NSwxNiBAQAogICogQ3VycmVudGx5LCBnaXQgZG9lcyBub3QgY2hlY2tvdXQgc3VicHJvamVjdHMgZHVyaW5nIGEgc3VwZXJwcm9qZWN0CiAgKiBjaGVja291dCwgc28gaXQgaXMgbm90IGdvaW5nIHRvIG92ZXJ3cml0ZSBhbnl0aGluZy4KICAqLwotc3RhdGljIGludCB2ZXJpZnlfY2xlYW5fc3VibW9kdWxlKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCi0JCQkJICAgICAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKLQkJCQkgICAgICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IHZlcmlmeV9jbGVhbl9zdWJtb2R1bGUoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJCQkgIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUsCisJCQkJICBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X2NsZWFuX3N1YmRpcmVjdG9yeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAotCQkJCSAgICAgIGVudW0gdW5wYWNrX3RyZWVzX2Vycm9yX3R5cGVzIGVycm9yX3R5cGUsCi0JCQkJICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIGludCB2ZXJpZnlfY2xlYW5fc3ViZGlyZWN0b3J5KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJICAgICBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAorCQkJCSAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCS8qCiAJICogd2UgYXJlIGFib3V0IHRvIGV4dHJhY3QgImNlLT5uYW1lIjsgd2Ugd291bGQgbm90IHdhbnQgdG8gbG9zZQpAQCAtMTM0MywxOCArMTM1MywxOCBAQAogICovCiBzdGF0aWMgaW50IGljYXNlX2V4aXN0cyhzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8sIGNvbnN0IGNoYXIgKm5hbWUsIGludCBsZW4sIHN0cnVjdCBzdGF0ICpzdCkKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKnNyYzsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKnNyYzsKIAogCXNyYyA9IGluZGV4X25hbWVfZXhpc3RzKG8tPnNyY19pbmRleCwgbmFtZSwgbGVuLCAxKTsKIAlyZXR1cm4gc3JjICYmICFpZV9tYXRjaF9zdGF0KG8tPnNyY19pbmRleCwgc3JjLCBzdCwgQ0VfTUFUQ0hfSUdOT1JFX1ZBTElEfENFX01BVENIX0lHTk9SRV9TS0lQX1dPUktUUkVFKTsKIH0KIAogc3RhdGljIGludCBjaGVja19va190b19yZW1vdmUoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwgaW50IGR0eXBlLAotCQkJICAgICAgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LAorCQkJICAgICAgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwgc3RydWN0IHN0YXQgKnN0LAogCQkJICAgICAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKIAkJCSAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKnJlc3VsdDsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKnJlc3VsdDsKIAogCS8qCiAJICogSXQgbWF5IGJlIHRoYXQgdGhlICdsc3RhdCgpJyBzdWNjZWVkZWQgZXZlbiB0aG91Z2gKQEAgLTE0MDUsOSArMTQxNSw5IEBACiAgKiBXZSBkbyBub3Qgd2FudCB0byByZW1vdmUgb3Igb3ZlcndyaXRlIGEgd29ya2luZyB0cmVlIGZpbGUgdGhhdAogICogaXMgbm90IHRyYWNrZWQsIHVubGVzcyBpdCBpcyBpZ25vcmVkLgogICovCi1zdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfMShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAotCQkJCSBlbnVtIHVucGFja190cmVlc19lcnJvcl90eXBlcyBlcnJvcl90eXBlLAotCQkJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfMShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJICAgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKKwkJCSAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKIAlpbnQgbGVuOwogCXN0cnVjdCBzdGF0IHN0OwpAQCAtMTQ0MCw3ICsxNDUwLDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgdmVyaWZ5X2Fic2VudChzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorc3RhdGljIGludCB2ZXJpZnlfYWJzZW50KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCiAJCQkgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKIAkJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CkBAIC0xNDQ5LDkgKzE0NTksOSBAQAogCXJldHVybiB2ZXJpZnlfYWJzZW50XzEoY2UsIGVycm9yX3R5cGUsIG8pOwogfQogCi1zdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfc3BhcnNlKHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCi0JCQkgZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKLQkJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IHZlcmlmeV9hYnNlbnRfc3BhcnNlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkJZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgZXJyb3JfdHlwZSwKKwkJCQlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgb3JwaGFuZWRfZXJyb3IgPSBlcnJvcl90eXBlOwogCWlmIChvcnBoYW5lZF9lcnJvciA9PSBFUlJPUl9XT1VMRF9MT1NFX1VOVFJBQ0tFRF9PVkVSV1JJVFRFTikKQEAgLTE0NjAsMTAgKzE0NzAsMTIgQEAKIAlyZXR1cm4gdmVyaWZ5X2Fic2VudF8xKGNlLCBvcnBoYW5lZF9lcnJvciwgbyk7CiB9CiAKLXN0YXRpYyBpbnQgbWVyZ2VkX2VudHJ5KHN0cnVjdCBjYWNoZV9lbnRyeSAqbWVyZ2UsIHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkLAotCQlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IG1lcmdlZF9lbnRyeShjb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLAorCQkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQsCisJCQlzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7CiAJaW50IHVwZGF0ZSA9IENFX1VQREFURTsKKwlzdHJ1Y3QgY2FjaGVfZW50cnkgKm1lcmdlID0gZHVwX2VudHJ5KGNlKTsKIAogCWlmICghb2xkKSB7CiAJCS8qCkBAIC0xNDgxLDggKzE0OTMsMTEgQEAKIAkJdXBkYXRlIHw9IENFX0FEREVEOwogCQltZXJnZS0+Y2VfZmxhZ3MgfD0gQ0VfTkVXX1NLSVBfV09SS1RSRUU7CiAKLQkJaWYgKHZlcmlmeV9hYnNlbnQobWVyZ2UsIEVSUk9SX1dPVUxEX0xPU0VfVU5UUkFDS0VEX09WRVJXUklUVEVOLCBvKSkKKwkJaWYgKHZlcmlmeV9hYnNlbnQobWVyZ2UsCisJCQkJICBFUlJPUl9XT1VMRF9MT1NFX1VOVFJBQ0tFRF9PVkVSV1JJVFRFTiwgbykpIHsKKwkJCWZyZWUobWVyZ2UpOwogCQkJcmV0dXJuIC0xOworCQl9CiAJCWludmFsaWRhdGVfY2VfcGF0aChtZXJnZSwgbyk7CiAJfSBlbHNlIGlmICghKG9sZC0+Y2VfZmxhZ3MgJiBDRV9DT05GTElDVEVEKSkgewogCQkvKgpAQCAtMTQ5Niw4ICsxNTExLDEwIEBACiAJCQljb3B5X2NhY2hlX2VudHJ5KG1lcmdlLCBvbGQpOwogCQkJdXBkYXRlID0gMDsKIAkJfSBlbHNlIHsKLQkJCWlmICh2ZXJpZnlfdXB0b2RhdGUob2xkLCBvKSkKKwkJCWlmICh2ZXJpZnlfdXB0b2RhdGUob2xkLCBvKSkgeworCQkJCWZyZWUobWVyZ2UpOwogCQkJCXJldHVybiAtMTsKKwkJCX0KIAkJCS8qIE1pZ3JhdGUgb2xkIGZsYWdzIG92ZXIgKi8KIAkJCXVwZGF0ZSB8PSBvbGQtPmNlX2ZsYWdzICYgKENFX1NLSVBfV09SS1RSRUUgfCBDRV9ORVdfU0tJUF9XT1JLVFJFRSk7CiAJCQlpbnZhbGlkYXRlX2NlX3BhdGgob2xkLCBvKTsKQEAgLTE1MTAsMTIgKzE1MjcsMTMgQEAKIAkJaW52YWxpZGF0ZV9jZV9wYXRoKG9sZCwgbyk7CiAJfQogCi0JYWRkX2VudHJ5KG8sIG1lcmdlLCB1cGRhdGUsIENFX1NUQUdFTUFTSyk7CisJZG9fYWRkX2VudHJ5KG8sIG1lcmdlLCB1cGRhdGUsIENFX1NUQUdFTUFTSyk7CiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpbnQgZGVsZXRlZF9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCwKLQkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQorc3RhdGljIGludCBkZWxldGVkX2VudHJ5KGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqY2UsCisJCQkgY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQsCisJCQkgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCS8qIERpZCBpdCBleGlzdCBpbiB0aGUgaW5kZXg/ICovCiAJaWYgKCFvbGQpIHsKQEAgLTE1MzAsNyArMTU0OCw4IEBACiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpbnQga2VlcF9lbnRyeShzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitzdGF0aWMgaW50IGtlZXBfZW50cnkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSwKKwkJICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQogewogCWFkZF9lbnRyeShvLCBjZSwgMCwgMCk7CiAJcmV0dXJuIDE7CkBAIC0xNTUyLDExICsxNTcxLDEyIEBACiB9CiAjZW5kaWYKIAotaW50IHRocmVld2F5X21lcmdlKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnN0YWdlcywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKQoraW50IHRocmVld2F5X21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzdGFnZXMsCisJCSAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmluZGV4OwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqaGVhZDsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKnJlbW90ZSA9IHN0YWdlc1tvLT5oZWFkX2lkeCArIDFdOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqaW5kZXg7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpoZWFkOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqcmVtb3RlID0gc3RhZ2VzW28tPmhlYWRfaWR4ICsgMV07CiAJaW50IGNvdW50OwogCWludCBoZWFkX21hdGNoID0gMDsKIAlpbnQgcmVtb3RlX21hdGNoID0gMDsKQEAgLTE2NDEsNyArMTY2MSw3IEBACiAJaWYgKG8tPmFnZ3Jlc3NpdmUpIHsKIAkJaW50IGhlYWRfZGVsZXRlZCA9ICFoZWFkOwogCQlpbnQgcmVtb3RlX2RlbGV0ZWQgPSAhcmVtb3RlOwotCQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmNlID0gTlVMTDsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IE5VTEw7CiAKIAkJaWYgKGluZGV4KQogCQkJY2UgPSBpbmRleDsKQEAgLTE3MjQsMTEgKzE3NDQsMTIgQEAKICAqICJjYXJyeSBmb3J3YXJkIiBydWxlLCBwbGVhc2Ugc2VlIDxEb2N1bWVudGF0aW9uL2dpdC1yZWFkLXRyZWUudHh0Pi4KICAqCiAgKi8KLWludCB0d293YXlfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitpbnQgdHdvd2F5X21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzcmMsCisJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpjdXJyZW50ID0gc3JjWzBdOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkdHJlZSA9IHNyY1sxXTsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKm5ld3RyZWUgPSBzcmNbMl07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjdXJyZW50ID0gc3JjWzBdOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkdHJlZSA9IHNyY1sxXTsKKwljb25zdCBzdHJ1Y3QgY2FjaGVfZW50cnkgKm5ld3RyZWUgPSBzcmNbMl07CiAKIAlpZiAoby0+bWVyZ2Vfc2l6ZSAhPSAyKQogCQlyZXR1cm4gZXJyb3IoIkNhbm5vdCBkbyBhIHR3b3dheSBtZXJnZSBvZiAlZCB0cmVlcyIsCkBAIC0xNzkwLDExICsxODExLDExIEBACiAgKiBLZWVwIHRoZSBpbmRleCBlbnRyaWVzIGF0IHN0YWdlMCwgY29sbGFwc2Ugc3RhZ2UxIGJ1dCBtYWtlIHN1cmUKICAqIHN0YWdlMCBkb2VzIG5vdCBoYXZlIGFueXRoaW5nIHRoZXJlLgogICovCi1pbnQgYmluZF9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipzcmMsCi0JCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKK2ludCBiaW5kX21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzcmMsCisJICAgICAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbykKIHsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKm9sZCA9IHNyY1swXTsKLQlzdHJ1Y3QgY2FjaGVfZW50cnkgKmEgPSBzcmNbMV07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQgPSBzcmNbMF07CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICphID0gc3JjWzFdOwogCiAJaWYgKG8tPm1lcmdlX3NpemUgIT0gMSkKIAkJcmV0dXJuIGVycm9yKCJDYW5ub3QgZG8gYSBiaW5kIG1lcmdlIG9mICVkIHRyZWVzIiwKQEAgLTE4MTQsMTAgKzE4MzUsMTEgQEAKICAqIFRoZSBydWxlIGlzOgogICogLSB0YWtlIHRoZSBzdGF0IGluZm9ybWF0aW9uIGZyb20gc3RhZ2UwLCB0YWtlIHRoZSBkYXRhIGZyb20gc3RhZ2UxCiAgKi8KLWludCBvbmV3YXlfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCitpbnQgb25ld2F5X21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzcmMsCisJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pCiB7Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICpvbGQgPSBzcmNbMF07Ci0Jc3RydWN0IGNhY2hlX2VudHJ5ICphID0gc3JjWzFdOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqb2xkID0gc3JjWzBdOworCWNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqYSA9IHNyY1sxXTsKIAogCWlmIChvLT5tZXJnZV9zaXplICE9IDEpCiAJCXJldHVybiBlcnJvcigiQ2Fubm90IGRvIGEgb25ld2F5IG1lcmdlIG9mICVkIHRyZWVzIiwKZGlmZiAtLWdpdCBhL3VucGFjay10cmVlcy5oIGIvdW5wYWNrLXRyZWVzLmgKaW5kZXggNWU0MzJmNS4uMzZhNzNhNiAxMDA2NDQKLS0tIGEvdW5wYWNrLXRyZWVzLmgKKysrIGIvdW5wYWNrLXRyZWVzLmgKQEAgLTgsNyArOCw3IEBACiBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnM7CiBzdHJ1Y3QgZXhjbHVkZV9saXN0OwogCi10eXBlZGVmIGludCAoKm1lcmdlX2ZuX3QpKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywKK3R5cGVkZWYgaW50ICgqbWVyZ2VfZm5fdCkoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKIAkJc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvcHRpb25zKTsKIAogZW51bSB1bnBhY2tfdHJlZXNfZXJyb3JfdHlwZXMgewpAQCAtNzcsOSArNzcsMTMgQEAKIGV4dGVybiBpbnQgdW5wYWNrX3RyZWVzKHVuc2lnbmVkIG4sIHN0cnVjdCB0cmVlX2Rlc2MgKnQsCiAJCXN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqb3B0aW9ucyk7CiAKLWludCB0aHJlZXdheV9tZXJnZShzdHJ1Y3QgY2FjaGVfZW50cnkgKipzdGFnZXMsIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7Ci1pbnQgdHdvd2F5X21lcmdlKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKLWludCBiaW5kX21lcmdlKHN0cnVjdCBjYWNoZV9lbnRyeSAqKnNyYywgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKLWludCBvbmV3YXlfbWVyZ2Uoc3RydWN0IGNhY2hlX2VudHJ5ICoqc3JjLCBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOworaW50IHRocmVld2F5X21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzdGFnZXMsCisJCSAgIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CitpbnQgdHdvd2F5X21lcmdlKGNvbnN0IHN0cnVjdCBjYWNoZV9lbnRyeSAqIGNvbnN0ICpzcmMsCisJCSBzdHJ1Y3QgdW5wYWNrX3RyZWVzX29wdGlvbnMgKm8pOworaW50IGJpbmRfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkgICAgICAgc3RydWN0IHVucGFja190cmVlc19vcHRpb25zICpvKTsKK2ludCBvbmV3YXlfbWVyZ2UoY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICogY29uc3QgKnNyYywKKwkJIHN0cnVjdCB1bnBhY2tfdHJlZXNfb3B0aW9ucyAqbyk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdXBsb2FkLXBhY2suYyBiL3VwbG9hZC1wYWNrLmMKaW5kZXggYmZhNjI3OWMuLjEyN2U1OWEgMTAwNjQ0Ci0tLSBhL3VwbG9hZC1wYWNrLmMKKysrIGIvdXBsb2FkLXBhY2suYwpAQCAtNTkyLDcgKzU5Miw3IEBACiAJCQkJZGllKCJpbnZhbGlkIHNoYWxsb3cgbGluZTogJXMiLCBsaW5lKTsKIAkJCW9iamVjdCA9IHBhcnNlX29iamVjdChzaGExKTsKIAkJCWlmICghb2JqZWN0KQotCQkJCWRpZSgiZGlkIG5vdCBmaW5kIG9iamVjdCBmb3IgJXMiLCBsaW5lKTsKKwkJCQljb250aW51ZTsKIAkJCWlmIChvYmplY3QtPnR5cGUgIT0gT0JKX0NPTU1JVCkKIAkJCQlkaWUoImludmFsaWQgc2hhbGxvdyBvYmplY3QgJXMiLCBzaGExX3RvX2hleChzaGExKSk7CiAJCQlpZiAoIShvYmplY3QtPmZsYWdzICYgQ0xJRU5UX1NIQUxMT1cpKSB7CmRpZmYgLS1naXQgYS91dGY4LmggYi91dGY4LmgKaW5kZXggMzJhN2JmYi4uNjVkMGU0MiAxMDA2NDQKLS0tIGEvdXRmOC5oCisrKyBiL3V0ZjguaApAQCAtMTAsNiArMTAsNyBAQAogaW50IGlzX3V0ZjgoY29uc3QgY2hhciAqdGV4dCk7CiBpbnQgaXNfZW5jb2RpbmdfdXRmOChjb25zdCBjaGFyICpuYW1lKTsKIGludCBzYW1lX2VuY29kaW5nKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKK19fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAyLCAzKSkpCiBpbnQgdXRmOF9mcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwogCiB2b2lkIHN0cmJ1Zl9hZGRfd3JhcHBlZF90ZXh0KHN0cnVjdCBzdHJidWYgKmJ1ZiwKZGlmZiAtLWdpdCBhL3dpbGRtYXRjaC5jIGIvd2lsZG1hdGNoLmMKaW5kZXggNzE5MmJkYy4uZjkxYmE5OSAxMDA2NDQKLS0tIGEvd2lsZG1hdGNoLmMKKysrIGIvd2lsZG1hdGNoLmMKQEAgLTE5Niw2ICsxOTYsMTEgQEAKIAkJCQkJfQogCQkJCQlpZiAodF9jaCA8PSBwX2NoICYmIHRfY2ggPj0gcHJldl9jaCkKIAkJCQkJCW1hdGNoZWQgPSAxOworCQkJCQllbHNlIGlmICgoZmxhZ3MgJiBXTV9DQVNFRk9MRCkgJiYgSVNMT1dFUih0X2NoKSkgeworCQkJCQkJdWNoYXIgdF9jaF91cHBlciA9IHRvdXBwZXIodF9jaCk7CisJCQkJCQlpZiAodF9jaF91cHBlciA8PSBwX2NoICYmIHRfY2hfdXBwZXIgPj0gcHJldl9jaCkKKwkJCQkJCQltYXRjaGVkID0gMTsKKwkJCQkJfQogCQkJCQlwX2NoID0gMDsgLyogVGhpcyBtYWtlcyAicHJldl9jaCIgZ2V0IHNldCB0byAwLiAqLwogCQkJCX0gZWxzZSBpZiAocF9jaCA9PSAnWycgJiYgcFsxXSA9PSAnOicpIHsKIAkJCQkJY29uc3QgdWNoYXIgKnM7CkBAIC0yNDUsNiArMjUwLDggQEAKIAkJCQkJfSBlbHNlIGlmIChDQ19FUShzLGksICJ1cHBlciIpKSB7CiAJCQkJCQlpZiAoSVNVUFBFUih0X2NoKSkKIAkJCQkJCQltYXRjaGVkID0gMTsKKwkJCQkJCWVsc2UgaWYgKChmbGFncyAmIFdNX0NBU0VGT0xEKSAmJiBJU0xPV0VSKHRfY2gpKQorCQkJCQkJCW1hdGNoZWQgPSAxOwogCQkJCQl9IGVsc2UgaWYgKENDX0VRKHMsaSwgInhkaWdpdCIpKSB7CiAJCQkJCQlpZiAoSVNYRElHSVQodF9jaCkpCiAJCQkJCQkJbWF0Y2hlZCA9IDE7CmRpZmYgLS1naXQgYS93cmFwLWZvci1iaW4uc2ggYi93cmFwLWZvci1iaW4uc2gKaW5kZXggNTNhOGRkMC4uNzAxZDIzMyAxMDA2NDQKLS0tIGEvd3JhcC1mb3ItYmluLnNoCisrKyBiL3dyYXAtZm9yLWJpbi5zaApAQCAtMTQsNyArMTQsNyBAQAogCUdJVF9URU1QTEFURV9ESVI9J0BAQlVJTERfRElSQEAvdGVtcGxhdGVzL2JsdCcKIAlleHBvcnQgR0lUX1RFTVBMQVRFX0RJUgogZmkKLUdJVFBFUkxMSUI9J0BAQlVJTERfRElSQEAvcGVybC9ibGliL2xpYicKK0dJVFBFUkxMSUI9J0BAQlVJTERfRElSQEAvcGVybC9ibGliL2xpYiciJHtHSVRQRVJMTElCOis6JEdJVFBFUkxMSUJ9IgogR0lUX1RFWFRET01BSU5ESVI9J0BAQlVJTERfRElSQEAvcG8vYnVpbGQvbG9jYWxlJwogUEFUSD0nQEBCVUlMRF9ESVJAQC9iaW4td3JhcHBlcnM6JyIkUEFUSCIKIGV4cG9ydCBHSVRfRVhFQ19QQVRIIEdJVFBFUkxMSUIgUEFUSCBHSVRfVEVYVERPTUFJTkRJUgpkaWZmIC0tZ2l0IGEvd3JhcHBlci5jIGIvd3JhcHBlci5jCmluZGV4IGJhYzU5ZDIuLmY5MmIxNDcgMTAwNjQ0Ci0tLSBhL3dyYXBwZXIuYworKysgYi93cmFwcGVyLmMKQEAgLTEzMSw2ICsxMzEsMTQgQEAKIH0KIAogLyoKKyAqIExpbWl0IHNpemUgb2YgSU8gY2h1bmtzLCBiZWNhdXNlIGh1Z2UgY2h1bmtzIG9ubHkgY2F1c2UgcGFpbi4gIE9TIFgKKyAqIDY0LWJpdCBpcyBidWdneSwgcmV0dXJuaW5nIEVJTlZBTCBpZiBsZW4gPj0gSU5UX01BWDsgYW5kIGV2ZW4gaW4KKyAqIHRoZSBhYnNlbnNlIG9mIGJ1Z3MsIGxhcmdlIGNodW5rcyBjYW4gcmVzdWx0IGluIGJhZCBsYXRlbmNpZXMgd2hlbgorICogeW91IGRlY2lkZSB0byBraWxsIHRoZSBwcm9jZXNzLgorICovCisjZGVmaW5lIE1BWF9JT19TSVpFICg4KjEwMjQqMTAyNCkKKworLyoKICAqIHhyZWFkKCkgaXMgdGhlIHNhbWUgYSByZWFkKCksIGJ1dCBpdCBhdXRvbWF0aWNhbGx5IHJlc3RhcnRzIHJlYWQoKQogICogb3BlcmF0aW9ucyB3aXRoIGEgcmVjb3ZlcmFibGUgZXJyb3IgKEVBR0FJTiBhbmQgRUlOVFIpLiB4cmVhZCgpCiAgKiBET0VTIE5PVCBHVUFSQU5URUUgdGhhdCAibGVuIiBieXRlcyBpcyByZWFkIGV2ZW4gaWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLgpAQCAtMTM4LDYgKzE0Niw4IEBACiBzc2l6ZV90IHhyZWFkKGludCBmZCwgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQogewogCXNzaXplX3QgbnI7CisJaWYgKGxlbiA+IE1BWF9JT19TSVpFKQorCSAgICBsZW4gPSBNQVhfSU9fU0laRTsKIAl3aGlsZSAoMSkgewogCQluciA9IHJlYWQoZmQsIGJ1ZiwgbGVuKTsKIAkJaWYgKChuciA8IDApICYmIChlcnJubyA9PSBFQUdBSU4gfHwgZXJybm8gPT0gRUlOVFIpKQpAQCAtMTU0LDYgKzE2NCw4IEBACiBzc2l6ZV90IHh3cml0ZShpbnQgZmQsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKIHsKIAlzc2l6ZV90IG5yOworCWlmIChsZW4gPiBNQVhfSU9fU0laRSkKKwkgICAgbGVuID0gTUFYX0lPX1NJWkU7CiAJd2hpbGUgKDEpIHsKIAkJbnIgPSB3cml0ZShmZCwgYnVmLCBsZW4pOwogCQlpZiAoKG5yIDwgMCkgJiYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikpCkBAIC0zMjIsNyArMzM0LDcgQEAKIAkJdGVtcGxhdGVbNV0gPSBsZXR0ZXJzW3YgJSBudW1fbGV0dGVyc107IHYgLz0gbnVtX2xldHRlcnM7CiAKIAkJZmQgPSBvcGVuKHBhdHRlcm4sIE9fQ1JFQVQgfCBPX0VYQ0wgfCBPX1JEV1IsIG1vZGUpOwotCQlpZiAoZmQgPiAwKQorCQlpZiAoZmQgPj0gMCkKIAkJCXJldHVybiBmZDsKIAkJLyoKIAkJICogRmF0YWwgZXJyb3IgKEVQRVJNLCBFTk9TUEMgZXRjKS4KQEAgLTQwOCwxOCArNDIwLDI0IEBACiAJd2FybmluZyhfKCJ1bmFibGUgdG8gYWNjZXNzICclcyc6ICVzIiksIHBhdGgsIHN0cmVycm9yKGVycm5vKSk7CiB9CiAKLWludCBhY2Nlc3Nfb3Jfd2Fybihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSkKK3N0YXRpYyBpbnQgYWNjZXNzX2Vycm9yX2lzX29rKGludCBlcnIsIHVuc2lnbmVkIGZsYWcpCit7CisJcmV0dXJuIGVyciA9PSBFTk9FTlQgfHwgZXJyID09IEVOT1RESVIgfHwKKwkJKChmbGFnICYgQUNDRVNTX0VBQ0NFU19PSykgJiYgZXJyID09IEVBQ0NFUyk7Cit9CisKK2ludCBhY2Nlc3Nfb3Jfd2Fybihjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZykKIHsKIAlpbnQgcmV0ID0gYWNjZXNzKHBhdGgsIG1vZGUpOwotCWlmIChyZXQgJiYgZXJybm8gIT0gRU5PRU5UICYmIGVycm5vICE9IEVOT1RESVIpCisJaWYgKHJldCAmJiAhYWNjZXNzX2Vycm9yX2lzX29rKGVycm5vLCBmbGFnKSkKIAkJd2Fybl9vbl9pbmFjY2Vzc2libGUocGF0aCk7CiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGFjY2Vzc19vcl9kaWUoY29uc3QgY2hhciAqcGF0aCwgaW50IG1vZGUpCitpbnQgYWNjZXNzX29yX2RpZShjb25zdCBjaGFyICpwYXRoLCBpbnQgbW9kZSwgdW5zaWduZWQgZmxhZykKIHsKIAlpbnQgcmV0ID0gYWNjZXNzKHBhdGgsIG1vZGUpOwotCWlmIChyZXQgJiYgZXJybm8gIT0gRU5PRU5UICYmIGVycm5vICE9IEVOT1RESVIpCisJaWYgKHJldCAmJiAhYWNjZXNzX2Vycm9yX2lzX29rKGVycm5vLCBmbGFnKSkKIAkJZGllX2Vycm5vKF8oInVuYWJsZSB0byBhY2Nlc3MgJyVzJyIpLCBwYXRoKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvd3Qtc3RhdHVzLmMgYi93dC1zdGF0dXMuYwppbmRleCBiZjg0YTg2Li5jYjI0ZjFmIDEwMDY0NAotLS0gYS93dC1zdGF0dXMuYworKysgYi93dC1zdGF0dXMuYwpAQCAtMTI3LDYgKzEyNyw3IEBACiAJcy0+Y2hhbmdlLnN0cmR1cF9zdHJpbmdzID0gMTsKIAlzLT51bnRyYWNrZWQuc3RyZHVwX3N0cmluZ3MgPSAxOwogCXMtPmlnbm9yZWQuc3RyZHVwX3N0cmluZ3MgPSAxOworCXMtPnNob3dfYnJhbmNoID0gLTE7ICAvKiB1bnNwZWNpZmllZCAqLwogfQogCiBzdGF0aWMgdm9pZCB3dF9zdGF0dXNfcHJpbnRfdW5tZXJnZWRfaGVhZGVyKHN0cnVjdCB3dF9zdGF0dXMgKnMpCkBAIC0yNDMsNyArMjQ0LDcgQEAKIAlzdHJ1Y3Qgc3RyYnVmIG9uZWJ1ZiA9IFNUUkJVRl9JTklUOwogCWNvbnN0IGNoYXIgKm9uZSwgKmhvdyA9IF8oImJ1ZyIpOwogCi0Jb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCAtMSwgJm9uZWJ1Ziwgcy0+cHJlZml4KTsKKwlvbmUgPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIHMtPnByZWZpeCwgJm9uZWJ1Zik7CiAJc3RhdHVzX3ByaW50ZihzLCBjb2xvcihXVF9TVEFUVVNfSEVBREVSLCBzKSwgIlx0Iik7CiAJc3dpdGNoIChkLT5zdGFnZW1hc2spIHsKIAljYXNlIDE6IGhvdyA9IF8oImJvdGggZGVsZXRlZDoiKTsgYnJlYWs7CkBAIC0yOTcsOCArMjk4LDggQEAKIAkJICAgIGNoYW5nZV90eXBlKTsKIAl9CiAKLQlvbmUgPSBxdW90ZV9wYXRoKG9uZV9uYW1lLCAtMSwgJm9uZWJ1Ziwgcy0+cHJlZml4KTsKLQl0d28gPSBxdW90ZV9wYXRoKHR3b19uYW1lLCAtMSwgJnR3b2J1Ziwgcy0+cHJlZml4KTsKKwlvbmUgPSBxdW90ZV9wYXRoKG9uZV9uYW1lLCBzLT5wcmVmaXgsICZvbmVidWYpOworCXR3byA9IHF1b3RlX3BhdGgodHdvX25hbWUsIHMtPnByZWZpeCwgJnR3b2J1Zik7CiAKIAlzdGF0dXNfcHJpbnRmKHMsIGNvbG9yKFdUX1NUQVRVU19IRUFERVIsIHMpLCAiXHQiKTsKIAlzd2l0Y2ggKHN0YXR1cykgewpAQCAtMzcxLDcgKzM3Miw3IEBACiBzdGF0aWMgaW50IHVubWVyZ2VkX21hc2soY29uc3QgY2hhciAqcGF0aCkKIHsKIAlpbnQgcG9zLCBtYXNrOwotCXN0cnVjdCBjYWNoZV9lbnRyeSAqY2U7CisJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZTsKIAogCXBvcyA9IGNhY2hlX25hbWVfcG9zKHBhdGgsIHN0cmxlbihwYXRoKSk7CiAJaWYgKDAgPD0gcG9zKQpAQCAtNDc1LDcgKzQ3Niw3IEBACiAJZm9yIChpID0gMDsgaSA8IGFjdGl2ZV9ucjsgaSsrKSB7CiAJCXN0cnVjdCBzdHJpbmdfbGlzdF9pdGVtICppdDsKIAkJc3RydWN0IHd0X3N0YXR1c19jaGFuZ2VfZGF0YSAqZDsKLQkJc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKKwkJY29uc3Qgc3RydWN0IGNhY2hlX2VudHJ5ICpjZSA9IGFjdGl2ZV9jYWNoZVtpXTsKIAogCQlpZiAoIWNlX3BhdGhfbWF0Y2goY2UsICZwYXRoc3BlYykpCiAJCQljb250aW51ZTsKQEAgLTcwNiw4ICs3MDcsNyBAQAogCQlzdHJ1Y3Qgc3RyaW5nX2xpc3RfaXRlbSAqaXQ7CiAJCWNvbnN0IGNoYXIgKnBhdGg7CiAJCWl0ID0gJihsLT5pdGVtc1tpXSk7Ci0JCXBhdGggPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIHN0cmxlbihpdC0+c3RyaW5nKSwKLQkJCQkgICZidWYsIHMtPnByZWZpeCk7CisJCXBhdGggPSBxdW90ZV9wYXRoKGl0LT5zdHJpbmcsIHMtPnByZWZpeCwgJmJ1Zik7CiAJCWlmIChjb2x1bW5fYWN0aXZlKHMtPmNvbG9wdHMpKSB7CiAJCQlzdHJpbmdfbGlzdF9hcHBlbmQoJm91dHB1dCwgcGF0aCk7CiAJCQljb250aW51ZTsKQEAgLTgyNiw3ICs4MjYsNyBAQAogCWlmIChhZHZpY2Vfc3RhdHVzX2hpbnRzKSB7CiAJCWlmICghc3RhdGUtPmFtX2VtcHR5X3BhdGNoKQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKLQkJCQlfKCIgIChmaXggY29uZmxpY3RzIGFuZCB0aGVuIHJ1biBcImdpdCBhbSAtLXJlc29sdmVkXCIpIikpOworCQkJCV8oIiAgKGZpeCBjb25mbGljdHMgYW5kIHRoZW4gcnVuIFwiZ2l0IGFtIC0tY29udGludWVcIikiKSk7CiAJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCiAJCQlfKCIgICh1c2UgXCJnaXQgYW0gLS1za2lwXCIgdG8gc2tpcCB0aGlzIHBhdGNoKSIpKTsKIAkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKQEAgLTk1NSwxMCArOTU1LDEyIEBACiAJaWYgKGFkdmljZV9zdGF0dXNfaGludHMpIHsKIAkJaWYgKGhhc191bm1lcmdlZChzKSkKIAkJCXN0YXR1c19wcmludGZfbG4ocywgY29sb3IsCi0JCQkJXygiICAoZml4IGNvbmZsaWN0cyBhbmQgcnVuIFwiZ2l0IGNvbW1pdFwiKSIpKTsKKwkJCQlfKCIgIChmaXggY29uZmxpY3RzIGFuZCBydW4gXCJnaXQgY2hlcnJ5LXBpY2sgLS1jb250aW51ZVwiKSIpKTsKIAkJZWxzZQogCQkJc3RhdHVzX3ByaW50Zl9sbihzLCBjb2xvciwKLQkJCQlfKCIgIChhbGwgY29uZmxpY3RzIGZpeGVkOiBydW4gXCJnaXQgY29tbWl0XCIpIikpOworCQkJCV8oIiAgKGFsbCBjb25mbGljdHMgZml4ZWQ6IHJ1biBcImdpdCBjaGVycnktcGljayAtLWNvbnRpbnVlXCIpIikpOworCQlzdGF0dXNfcHJpbnRmX2xuKHMsIGNvbG9yLAorCQkJXygiICAodXNlIFwiZ2l0IGNoZXJyeS1waWNrIC0tYWJvcnRcIiB0byBjYW5jZWwgdGhlIGNoZXJyeS1waWNrIG9wZXJhdGlvbikiKSk7CiAJfQogCXd0X3N0YXR1c19wcmludF90cmFpbGVyKHMpOwogfQpAQCAtMTAzNSw3ICsxMDM3LDYgQEAKIH0KIAogc3RydWN0IGdyYWJfMXN0X3N3aXRjaF9jYmRhdGEgewotCWludCBmb3VuZDsKIAlzdHJ1Y3Qgc3RyYnVmIGJ1ZjsKIAl1bnNpZ25lZCBjaGFyIG5zaGExWzIwXTsKIH07CkBAIC0xMDU5LDcgKzEwNjAsNiBAQAogCWZvciAoZW5kID0gdGFyZ2V0OyAqZW5kICYmICplbmQgIT0gJ1xuJzsgZW5kKyspCiAJCTsKIAlzdHJidWZfYWRkKCZjYi0+YnVmLCB0YXJnZXQsIGVuZCAtIHRhcmdldCk7Ci0JY2ItPmZvdW5kID0gMTsKIAlyZXR1cm4gMTsKIH0KIApAQCAtMTE3Niw3ICsxMTc2LDEwIEBACiAJCQlicmFuY2hfbmFtZSArPSAxMTsKIAkJZWxzZSBpZiAoIXN0cmNtcChicmFuY2hfbmFtZSwgIkhFQUQiKSkgewogCQkJYnJhbmNoX3N0YXR1c19jb2xvciA9IGNvbG9yKFdUX1NUQVRVU19OT0JSQU5DSCwgcyk7Ci0JCQlpZiAoc3RhdGUuZGV0YWNoZWRfZnJvbSkgeworCQkJaWYgKHN0YXRlLnJlYmFzZV9pbl9wcm9ncmVzcyB8fCBzdGF0ZS5yZWJhc2VfaW50ZXJhY3RpdmVfaW5fcHJvZ3Jlc3MpIHsKKwkJCQlvbl93aGF0ID0gXygicmViYXNlIGluIHByb2dyZXNzOyBvbnRvICIpOworCQkJCWJyYW5jaF9uYW1lID0gc3RhdGUub250bzsKKwkJCX0gZWxzZSBpZiAoc3RhdGUuZGV0YWNoZWRfZnJvbSkgewogCQkJCXVuc2lnbmVkIGNoYXIgc2hhMVsyMF07CiAJCQkJYnJhbmNoX25hbWUgPSBzdGF0ZS5kZXRhY2hlZF9mcm9tOwogCQkJCWlmICghZ2V0X3NoYTEoIkhFQUQiLCBzaGExKSAmJgpAQCAtMTI4OSw3ICsxMjkyLDcgQEAKIAl9IGVsc2UgewogCQlzdHJ1Y3Qgc3RyYnVmIG9uZWJ1ZiA9IFNUUkJVRl9JTklUOwogCQljb25zdCBjaGFyICpvbmU7Ci0JCW9uZSA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgLTEsICZvbmVidWYsIHMtPnByZWZpeCk7CisJCW9uZSA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgcy0+cHJlZml4LCAmb25lYnVmKTsKIAkJcHJpbnRmKCIgJXNcbiIsIG9uZSk7CiAJCXN0cmJ1Zl9yZWxlYXNlKCZvbmVidWYpOwogCX0KQEAgLTEzMTcsNyArMTMyMCw3IEBACiAJCXN0cnVjdCBzdHJidWYgb25lYnVmID0gU1RSQlVGX0lOSVQ7CiAJCWNvbnN0IGNoYXIgKm9uZTsKIAkJaWYgKGQtPmhlYWRfcGF0aCkgewotCQkJb25lID0gcXVvdGVfcGF0aChkLT5oZWFkX3BhdGgsIC0xLCAmb25lYnVmLCBzLT5wcmVmaXgpOworCQkJb25lID0gcXVvdGVfcGF0aChkLT5oZWFkX3BhdGgsIHMtPnByZWZpeCwgJm9uZWJ1Zik7CiAJCQlpZiAoKm9uZSAhPSAnIicgJiYgc3RyY2hyKG9uZSwgJyAnKSAhPSBOVUxMKSB7CiAJCQkJcHV0Y2hhcignIicpOwogCQkJCXN0cmJ1Zl9hZGRjaCgmb25lYnVmLCAnIicpOwpAQCAtMTMyNiw3ICsxMzI5LDcgQEAKIAkJCXByaW50ZigiJXMgLT4gIiwgb25lKTsKIAkJCXN0cmJ1Zl9yZWxlYXNlKCZvbmVidWYpOwogCQl9Ci0JCW9uZSA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgLTEsICZvbmVidWYsIHMtPnByZWZpeCk7CisJCW9uZSA9IHF1b3RlX3BhdGgoaXQtPnN0cmluZywgcy0+cHJlZml4LCAmb25lYnVmKTsKIAkJaWYgKCpvbmUgIT0gJyInICYmIHN0cmNocihvbmUsICcgJykgIT0gTlVMTCkgewogCQkJcHV0Y2hhcignIicpOwogCQkJc3RyYnVmX2FkZGNoKCZvbmVidWYsICciJyk7CkBAIC0xMzQ1LDcgKzEzNDgsNyBAQAogCX0gZWxzZSB7CiAJCXN0cnVjdCBzdHJidWYgb25lYnVmID0gU1RSQlVGX0lOSVQ7CiAJCWNvbnN0IGNoYXIgKm9uZTsKLQkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCAtMSwgJm9uZWJ1Ziwgcy0+cHJlZml4KTsKKwkJb25lID0gcXVvdGVfcGF0aChpdC0+c3RyaW5nLCBzLT5wcmVmaXgsICZvbmVidWYpOwogCQljb2xvcl9mcHJpbnRmKHMtPmZwLCBjb2xvcihXVF9TVEFUVVNfVU5UUkFDS0VELCBzKSwgIiVzIiwgc2lnbik7CiAJCXByaW50ZigiICVzXG4iLCBvbmUpOwogCQlzdHJidWZfcmVsZWFzZSgmb25lYnVmKTsKZGlmZiAtLWdpdCBhL3d0LXN0YXR1cy5oIGIvd3Qtc3RhdHVzLmgKaW5kZXggNDEyMWJjMi4uZmI3MTUyZSAxMDA2NDQKLS0tIGEvd3Qtc3RhdHVzLmgKKysrIGIvd3Qtc3RhdHVzLmgKQEAgLTk2LDkgKzk2LDkgQEAKIHZvaWQgd3Rfc2hvcnRzdGF0dXNfcHJpbnQoc3RydWN0IHd0X3N0YXR1cyAqcyk7CiB2b2lkIHd0X3BvcmNlbGFpbl9wcmludChzdHJ1Y3Qgd3Rfc3RhdHVzICpzKTsKIAotdm9pZCBzdGF0dXNfcHJpbnRmX2xuKHN0cnVjdCB3dF9zdGF0dXMgKnMsIGNvbnN0IGNoYXIgKmNvbG9yLCBjb25zdCBjaGFyICpmbXQsIC4uLikKLQk7Ci12b2lkIHN0YXR1c19wcmludGYoc3RydWN0IHd0X3N0YXR1cyAqcywgY29uc3QgY2hhciAqY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotCTsKK19fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkpCit2b2lkIHN0YXR1c19wcmludGZfbG4oc3RydWN0IHd0X3N0YXR1cyAqcywgY29uc3QgY2hhciAqY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKK19fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkpCit2b2lkIHN0YXR1c19wcmludGYoc3RydWN0IHd0X3N0YXR1cyAqcywgY29uc3QgY2hhciAqY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKIAogI2VuZGlmIC8qIFNUQVRVU19IICovCmRpZmYgLS1naXQgYS94ZGlmZi94ZGlmZi5oIGIveGRpZmYveGRpZmYuaAppbmRleCAyMTlhM2JiLi5jMDMzOTkxIDEwMDY0NAotLS0gYS94ZGlmZi94ZGlmZi5oCisrKyBiL3hkaWZmL3hkaWZmLmgKQEAgLTM5LDYgKzM5LDggQEAKICNkZWZpbmUgWERGX0RJRkZfQUxHT1JJVEhNX01BU0sgKFhERl9QQVRJRU5DRV9ESUZGIHwgWERGX0hJU1RPR1JBTV9ESUZGKQogI2RlZmluZSBYREZfRElGRl9BTEcoeCkgKCh4KSAmIFhERl9ESUZGX0FMR09SSVRITV9NQVNLKQogCisjZGVmaW5lIFhERl9JR05PUkVfQkxBTktfTElORVMgKDEgPDwgNykKKwogI2RlZmluZSBYRExfRU1JVF9GVU5DTkFNRVMgKDEgPDwgMCkKICNkZWZpbmUgWERMX0VNSVRfQ09NTU9OICgxIDw8IDEpCiAjZGVmaW5lIFhETF9FTUlUX0ZVTkNDT05URVhUICgxIDw8IDIpCmRpZmYgLS1naXQgYS94ZGlmZi94ZGlmZmkuYyBiL3hkaWZmL3hkaWZmaS5jCmluZGV4IGIyZWI2ZGIuLjIzNThhMmQgMTAwNjQ0Ci0tLSBhL3hkaWZmL3hkaWZmaS5jCisrKyBiL3hkaWZmL3hkaWZmaS5jCkBAIC0zOTQsNiArMzk0LDcgQEAKIAl4Y2gtPmkyID0gaTI7CiAJeGNoLT5jaGcxID0gY2hnMTsKIAl4Y2gtPmNoZzIgPSBjaGcyOworCXhjaC0+aWdub3JlID0gMDsKIAogCXJldHVybiB4Y2g7CiB9CkBAIC01NDQsNyArNTQ1LDkgQEAKIAl4ZGNoYW5nZV90ICp4Y2gsICp4Y2hlOwogCiAJZm9yICh4Y2ggPSB4c2NyOyB4Y2g7IHhjaCA9IHhjaGUtPm5leHQpIHsKLQkJeGNoZSA9IHhkbF9nZXRfaHVuayh4Y2gsIHhlY2ZnKTsKKwkJeGNoZSA9IHhkbF9nZXRfaHVuaygmeGNoLCB4ZWNmZyk7CisJCWlmICgheGNoKQorCQkJYnJlYWs7CiAJCWlmICh4ZWNmZy0+aHVua19mdW5jKHhjaC0+aTEsIHhjaGUtPmkxICsgeGNoZS0+Y2hnMSAtIHhjaC0+aTEsCiAJCQkJICAgICB4Y2gtPmkyLCB4Y2hlLT5pMiArIHhjaGUtPmNoZzIgLSB4Y2gtPmkyLAogCQkJCSAgICAgZWNiLT5wcml2KSA8IDApCkBAIC01NTMsNiArNTU2LDI3IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHhkbF9tYXJrX2lnbm9yYWJsZSh4ZGNoYW5nZV90ICp4c2NyLCB4ZGZlbnZfdCAqeGUsIGxvbmcgZmxhZ3MpCit7CisJeGRjaGFuZ2VfdCAqeGNoOworCisJZm9yICh4Y2ggPSB4c2NyOyB4Y2g7IHhjaCA9IHhjaC0+bmV4dCkgeworCQlpbnQgaWdub3JlID0gMTsKKwkJeHJlY29yZF90ICoqcmVjOworCQlsb25nIGk7CisKKwkJcmVjID0gJnhlLT54ZGYxLnJlY3NbeGNoLT5pMV07CisJCWZvciAoaSA9IDA7IGkgPCB4Y2gtPmNoZzEgJiYgaWdub3JlOyBpKyspCisJCQlpZ25vcmUgPSB4ZGxfYmxhbmtsaW5lKHJlY1tpXS0+cHRyLCByZWNbaV0tPnNpemUsIGZsYWdzKTsKKworCQlyZWMgPSAmeGUtPnhkZjIucmVjc1t4Y2gtPmkyXTsKKwkJZm9yIChpID0gMDsgaSA8IHhjaC0+Y2hnMiAmJiBpZ25vcmU7IGkrKykKKwkJCWlnbm9yZSA9IHhkbF9ibGFua2xpbmUocmVjW2ldLT5wdHIsIHJlY1tpXS0+c2l6ZSwgZmxhZ3MpOworCisJCXhjaC0+aWdub3JlID0gaWdub3JlOworCX0KK30KKwogaW50IHhkbF9kaWZmKG1tZmlsZV90ICptZjEsIG1tZmlsZV90ICptZjIsIHhwcGFyYW1fdCBjb25zdCAqeHBwLAogCSAgICAgeGRlbWl0Y29uZl90IGNvbnN0ICp4ZWNmZywgeGRlbWl0Y2JfdCAqZWNiKSB7CiAJeGRjaGFuZ2VfdCAqeHNjcjsKQEAgLTU3MSw2ICs1OTUsOSBAQAogCQlyZXR1cm4gLTE7CiAJfQogCWlmICh4c2NyKSB7CisJCWlmICh4cHAtPmZsYWdzICYgWERGX0lHTk9SRV9CTEFOS19MSU5FUykKKwkJCXhkbF9tYXJrX2lnbm9yYWJsZSh4c2NyLCAmeGUsIHhwcC0+ZmxhZ3MpOworCiAJCWlmIChlZigmeGUsIHhzY3IsIGVjYiwgeGVjZmcpIDwgMCkgewogCiAJCQl4ZGxfZnJlZV9zY3JpcHQoeHNjcik7CmRpZmYgLS1naXQgYS94ZGlmZi94ZGlmZmkuaCBiL3hkaWZmL3hkaWZmaS5oCmluZGV4IDdhOTJlYTkuLjhiODEyMDYgMTAwNjQ0Ci0tLSBhL3hkaWZmL3hkaWZmaS5oCisrKyBiL3hkaWZmL3hkaWZmaS5oCkBAIC00MSw2ICs0MSw3IEBACiAJc3RydWN0IHNfeGRjaGFuZ2UgKm5leHQ7CiAJbG9uZyBpMSwgaTI7CiAJbG9uZyBjaGcxLCBjaGcyOworCWludCBpZ25vcmU7CiB9IHhkY2hhbmdlX3Q7CiAKIApkaWZmIC0tZ2l0IGEveGRpZmYveGVtaXQuYyBiL3hkaWZmL3hlbWl0LmMKaW5kZXggZDExZGJmOS4uNGQ4NjQ1OCAxMDA2NDQKLS0tIGEveGRpZmYveGVtaXQuYworKysgYi94ZGlmZi94ZW1pdC5jCkBAIC01NiwxNiArNTYsNTEgQEAKIC8qCiAgKiBTdGFydGluZyBhdCB0aGUgcGFzc2VkIGNoYW5nZSBhdG9tLCBmaW5kIHRoZSBsYXRlc3QgY2hhbmdlIGF0b20gdG8gYmUgaW5jbHVkZWQKICAqIGluc2lkZSB0aGUgZGlmZmVyZW50aWFsIGh1bmsgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbi4KKyAqIEFsc28gYWR2YW5jZSB4c2NyIGlmIHRoZSBmaXJzdCBjaGFuZ2VzIG11c3QgYmUgZGlzY2FyZGVkLgogICovCi14ZGNoYW5nZV90ICp4ZGxfZ2V0X2h1bmsoeGRjaGFuZ2VfdCAqeHNjciwgeGRlbWl0Y29uZl90IGNvbnN0ICp4ZWNmZykgewotCXhkY2hhbmdlX3QgKnhjaCwgKnhjaHA7Cit4ZGNoYW5nZV90ICp4ZGxfZ2V0X2h1bmsoeGRjaGFuZ2VfdCAqKnhzY3IsIHhkZW1pdGNvbmZfdCBjb25zdCAqeGVjZmcpCit7CisJeGRjaGFuZ2VfdCAqeGNoLCAqeGNocCwgKmx4Y2g7CiAJbG9uZyBtYXhfY29tbW9uID0gMiAqIHhlY2ZnLT5jdHhsZW4gKyB4ZWNmZy0+aW50ZXJodW5rY3R4bGVuOworCWxvbmcgbWF4X2lnbm9yYWJsZSA9IHhlY2ZnLT5jdHhsZW47CisJdW5zaWduZWQgbG9uZyBpZ25vcmVkID0gMDsgLyogbnVtYmVyIG9mIGlnbm9yZWQgYmxhbmsgbGluZXMgKi8KIAotCWZvciAoeGNocCA9IHhzY3IsIHhjaCA9IHhzY3ItPm5leHQ7IHhjaDsgeGNocCA9IHhjaCwgeGNoID0geGNoLT5uZXh0KQotCQlpZiAoeGNoLT5pMSAtICh4Y2hwLT5pMSArIHhjaHAtPmNoZzEpID4gbWF4X2NvbW1vbikKKwkvKiByZW1vdmUgaWdub3JhYmxlIGNoYW5nZXMgdGhhdCBhcmUgdG9vIGZhciBiZWZvcmUgb3RoZXIgY2hhbmdlcyAqLworCWZvciAoeGNocCA9ICp4c2NyOyB4Y2hwICYmIHhjaHAtPmlnbm9yZTsgeGNocCA9IHhjaHAtPm5leHQpIHsKKwkJeGNoID0geGNocC0+bmV4dDsKKworCQlpZiAoeGNoID09IE5VTEwgfHwKKwkJICAgIHhjaC0+aTEgLSAoeGNocC0+aTEgKyB4Y2hwLT5jaGcxKSA+PSBtYXhfaWdub3JhYmxlKQorCQkJKnhzY3IgPSB4Y2g7CisJfQorCisJaWYgKCp4c2NyID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJbHhjaCA9ICp4c2NyOworCisJZm9yICh4Y2hwID0gKnhzY3IsIHhjaCA9IHhjaHAtPm5leHQ7IHhjaDsgeGNocCA9IHhjaCwgeGNoID0geGNoLT5uZXh0KSB7CisJCWxvbmcgZGlzdGFuY2UgPSB4Y2gtPmkxIC0gKHhjaHAtPmkxICsgeGNocC0+Y2hnMSk7CisJCWlmIChkaXN0YW5jZSA+IG1heF9jb21tb24pCiAJCQlicmVhazsKIAotCXJldHVybiB4Y2hwOworCQlpZiAoZGlzdGFuY2UgPCBtYXhfaWdub3JhYmxlICYmICgheGNoLT5pZ25vcmUgfHwgbHhjaCA9PSB4Y2hwKSkgeworCQkJbHhjaCA9IHhjaDsKKwkJCWlnbm9yZWQgPSAwOworCQl9IGVsc2UgaWYgKGRpc3RhbmNlIDwgbWF4X2lnbm9yYWJsZSAmJiB4Y2gtPmlnbm9yZSkgeworCQkJaWdub3JlZCArPSB4Y2gtPmNoZzI7CisJCX0gZWxzZSBpZiAobHhjaCAhPSB4Y2hwICYmCisJCQkgICB4Y2gtPmkxICsgaWdub3JlZCAtIChseGNoLT5pMSArIGx4Y2gtPmNoZzEpID4gbWF4X2NvbW1vbikgeworCQkJYnJlYWs7CisJCX0gZWxzZSBpZiAoIXhjaC0+aWdub3JlKSB7CisJCQlseGNoID0geGNoOworCQkJaWdub3JlZCA9IDA7CisJCX0gZWxzZSB7CisJCQlpZ25vcmVkICs9IHhjaC0+Y2hnMjsKKwkJfQorCX0KKworCXJldHVybiBseGNoOwogfQogCiAKQEAgLTEzOSw3ICsxNzQsOSBAQAogCQlyZXR1cm4geGRsX2VtaXRfY29tbW9uKHhlLCB4c2NyLCBlY2IsIHhlY2ZnKTsKIAogCWZvciAoeGNoID0geHNjcjsgeGNoOyB4Y2ggPSB4Y2hlLT5uZXh0KSB7Ci0JCXhjaGUgPSB4ZGxfZ2V0X2h1bmsoeGNoLCB4ZWNmZyk7CisJCXhjaGUgPSB4ZGxfZ2V0X2h1bmsoJnhjaCwgeGVjZmcpOworCQlpZiAoIXhjaCkKKwkJCWJyZWFrOwogCiAJCXMxID0gWERMX01BWCh4Y2gtPmkxIC0geGVjZmctPmN0eGxlbiwgMCk7CiAJCXMyID0gWERMX01BWCh4Y2gtPmkyIC0geGVjZmctPmN0eGxlbiwgMCk7CmRpZmYgLS1naXQgYS94ZGlmZi94ZW1pdC5oIGIveGRpZmYveGVtaXQuaAppbmRleCBjMmUyZTgzLi5kMjk3MTA3IDEwMDY0NAotLS0gYS94ZGlmZi94ZW1pdC5oCisrKyBiL3hkaWZmL3hlbWl0LmgKQEAgLTI3LDcgKzI3LDcgQEAKIHR5cGVkZWYgaW50ICgqZW1pdF9mdW5jX3QpKHhkZmVudl90ICp4ZSwgeGRjaGFuZ2VfdCAqeHNjciwgeGRlbWl0Y2JfdCAqZWNiLAogCQkJICAgeGRlbWl0Y29uZl90IGNvbnN0ICp4ZWNmZyk7CiAKLXhkY2hhbmdlX3QgKnhkbF9nZXRfaHVuayh4ZGNoYW5nZV90ICp4c2NyLCB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnKTsKK3hkY2hhbmdlX3QgKnhkbF9nZXRfaHVuayh4ZGNoYW5nZV90ICoqeHNjciwgeGRlbWl0Y29uZl90IGNvbnN0ICp4ZWNmZyk7CiBpbnQgeGRsX2VtaXRfZGlmZih4ZGZlbnZfdCAqeGUsIHhkY2hhbmdlX3QgKnhzY3IsIHhkZW1pdGNiX3QgKmVjYiwKIAkJICB4ZGVtaXRjb25mX3QgY29uc3QgKnhlY2ZnKTsKIApkaWZmIC0tZ2l0IGEveGRpZmYveHV0aWxzLmMgYi94ZGlmZi94dXRpbHMuYwppbmRleCA5NTA0ZWFlLi42MmNiMjNkIDEwMDY0NAotLS0gYS94ZGlmZi94dXRpbHMuYworKysgYi94ZGlmZi94dXRpbHMuYwpAQCAtMTQzLDYgKzE0MywxOSBAQAogCXJldHVybiBubCArIDE7CiB9CiAKK2ludCB4ZGxfYmxhbmtsaW5lKGNvbnN0IGNoYXIgKmxpbmUsIGxvbmcgc2l6ZSwgbG9uZyBmbGFncykKK3sKKwlsb25nIGk7CisKKwlpZiAoIShmbGFncyAmIFhERl9XSElURVNQQUNFX0ZMQUdTKSkKKwkJcmV0dXJuIChzaXplIDw9IDEpOworCisJZm9yIChpID0gMDsgaSA8IHNpemUgJiYgWERMX0lTU1BBQ0UobGluZVtpXSk7IGkrKykKKwkJOworCisJcmV0dXJuIChpID09IHNpemUpOworfQorCiBpbnQgeGRsX3JlY21hdGNoKGNvbnN0IGNoYXIgKmwxLCBsb25nIHMxLCBjb25zdCBjaGFyICpsMiwgbG9uZyBzMiwgbG9uZyBmbGFncykKIHsKIAlpbnQgaTEsIGkyOwpkaWZmIC0tZ2l0IGEveGRpZmYveHV0aWxzLmggYi94ZGlmZi94dXRpbHMuaAppbmRleCBhZDE0MjhlLi40NjQ2Y2U1IDEwMDY0NAotLS0gYS94ZGlmZi94dXRpbHMuaAorKysgYi94ZGlmZi94dXRpbHMuaApAQCAtMzIsNiArMzIsNyBAQAogdm9pZCB4ZGxfY2hhX2ZyZWUoY2hhc3RvcmVfdCAqY2hhKTsKIHZvaWQgKnhkbF9jaGFfYWxsb2MoY2hhc3RvcmVfdCAqY2hhKTsKIGxvbmcgeGRsX2d1ZXNzX2xpbmVzKG1tZmlsZV90ICptZiwgbG9uZyBzYW1wbGUpOworaW50IHhkbF9ibGFua2xpbmUoY29uc3QgY2hhciAqbGluZSwgbG9uZyBzaXplLCBsb25nIGZsYWdzKTsKIGludCB4ZGxfcmVjbWF0Y2goY29uc3QgY2hhciAqbDEsIGxvbmcgczEsIGNvbnN0IGNoYXIgKmwyLCBsb25nIHMyLCBsb25nIGZsYWdzKTsKIHVuc2lnbmVkIGxvbmcgeGRsX2hhc2hfcmVjb3JkKGNoYXIgY29uc3QgKipkYXRhLCBjaGFyIGNvbnN0ICp0b3AsIGxvbmcgZmxhZ3MpOwogdW5zaWduZWQgaW50IHhkbF9oYXNoYml0cyh1bnNpZ25lZCBpbnQgc2l6ZSk7Cg==