ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvY2NvbXBsZXRlLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjk5Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9hdXRvbG9hZC9jY29tcGxldGUudmltCkBAIC0wLDAgKzEsMzIgQEAKKyIgVmltIGNvbXBsZXRpb24gc2NyaXB0CisiIExhbmd1YWdlOglDCisiIE1haW50YWluZXI6CUJyYW0gTW9vbGVuYWFyIDxCcmFtQHZpbS5vcmc+CisiIExhc3QgQ2hhbmdlOgkyMDA1IFNlcCAwMQorCitmdW5jdGlvbiEgY2NvbXBsZXRlI0NvbXBsZXRlKGZpbmRzdGFydCwgYmFzZSkKKyAgaWYgYTpmaW5kc3RhcnQKKyAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKKyAgICBsZXQgbGluZSA9IGdldGxpbmUoJy4nKQorICAgIGxldCBzdGFydCA9IGNvbCgnLicpIC0gMQorICAgIHdoaWxlIHN0YXJ0ID4gMAorICAgICAgaWYgbGluZVtzdGFydCAtIDFdID1+ICdcd1x8XC4nCisJbGV0IHN0YXJ0IC09IDEKKyAgICAgIGVsc2VpZiBzdGFydCA+IDEgJiYgbGluZVtzdGFydCAtIDJdID09ICctJyAmJiBsaW5lW3N0YXJ0IC0gMV0gPT0gJz4nCisJbGV0IHN0YXJ0IC09IDIKKyAgICAgIGVsc2UKKwlicmVhaworICAgICAgZW5kaWYKKyAgICBlbmR3aGlsZQorICAgIHJldHVybiBzdGFydAorICBlbmRpZgorCisgICIgcmV0dXJuIGxpc3Qgb2YgbWF0Y2hlcworICBsZXQgaXRlbXMgPSBzcGxpdChhOmJhc2UsICdcLlx8LT4nKQorICBpZiBsZW4oaXRlbXMpID09IDEKKyAgICAiIE9ubHkgb25lIHBhcnQsIG5vICIuIiBvciAiLT4iOiBjb21wbGV0ZSBmcm9tIHRhZ3MgZmlsZS4KKyAgICBsZXQgZGljbGlzdCA9IHRhZ2xpc3QoaXRlbXNbMF0pCisgICAgcmV0dXJuIG1hcChkaWNsaXN0LCAndjp2YWxbIm5hbWUiXScpCisgIGVuZGlmCisgIHJldHVybiBpdGVtcworZW5kZnVuY3Rpb24KKwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvTWFrZWZpbGUgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQppbmRleCAzYWVmMWNhLi5hNTc3MGMyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9NYWtlZmlsZQorKysgYi9ydW50aW1lL2RvYy9NYWtlZmlsZQpAQCAtMTksNiArMTksNyBAQAogCWNoYW5nZS50eHQgXAogCWNtZGxpbmUudHh0IFwKIAlkZWJ1Z2dlci50eHQgXAorCWRlYnVnLnR4dCBcCiAJZGV2ZWxvcC50eHQgXAogCWRpZmYudHh0IFwKIAlkaWdyYXBoLnR4dCBcCkBAIC0xMzksNiArMTQwLDcgQEAKIAlhdXRvY21kLmh0bWwgXAogCWNoYW5nZS5odG1sIFwKIAljbWRsaW5lLmh0bWwgXAorCWRlYnVnLmh0bWwgXAogCWRlYnVnZ2VyLmh0bWwgXAogCWRldmVsb3AuaHRtbCBcCiAJZGlmZi5odG1sIFwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2RlYnVnLnR4dCBiL3J1bnRpbWUvZG9jL2RlYnVnLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGZlZjFiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9kb2MvZGVidWcudHh0CkBAIC0wLDAgKzEsNjkgQEAKKypkZWJ1Zy50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBTZXAgMDEKKworCisJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKKworCitEZWJ1Z2dpbmcgVmltCQkJCQkJKmRlYnVnLXZpbSoKKworVGhpcyBpcyBmb3IgZGVidWdnaW5nIFZpbSBpdHNlbGYsIHdoZW4gaXQgZG9lc24ndCB3b3JrIHByb3Blcmx5LgorCisxLiBMb2NhdGlvbiBvZiBhIGNyYXNoLCB1c2luZyBnY2MgYW5kIGdkYgl8ZGVidWctZ2NjfAorMi4gV2luZG93cyBCdWcgUmVwb3J0aW5nICAgICAgICAgICAgICAgCQl8ZGVidWctd2luMzJ8CisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisxLiBMb2NhdGlvbiBvZiBhIGNyYXNoLCB1c2luZyBnY2MgYW5kIGdkYgkJKmRlYnVnLWdjYyoKKworV2hlbiBWaW0gY3Jhc2hlcyBpbiBvbmUgb2YgdGhlIHRlc3QgZmlsZXMsIGFuZCB5b3UgYXJlIHVzaW5nIGdjYyBmb3IKK2NvbXBpbGF0aW9uLCBoZXJlIGlzIHdoYXQgeW91IGNhbiBkbyB0byBmaW5kIG91dCBleGFjdGx5IHdoZXJlIFZpbSBjcmFzaGVzLgorVGhpcyBhbHNvIGFwcGxpZXMgd2hlbiB1c2luZyB0aGUgTWluZ1cgdG9vbHMuCisKKzEuIENvbXBpbGUgVmltIHdpdGggdGhlICItZyIgb3B0aW9uICh0aGVyZSBpcyBhIGxpbmUgaW4gdGhlIE1ha2VmaWxlIGZvciB0aGlzLAorICAgd2hpY2ggeW91IGNhbiB1bmNvbW1lbnQpLgorCisyLiBFeGVjdXRlIHRoZXNlIGNvbW1hbmRzIChyZXBsYWNlICIxMSIgd2l0aCB0aGUgdGVzdCB0aGF0IGZhaWxzKTogPgorCWNkIHRlc3RkaXIKKwlnZGIgLi4vdmltCisJcnVuIC11IHVuaXgudmltIC1VIE5PTkUgLXMgZG90ZXN0LmluIHRlc3QxMS5pbgorCiszLiBDaGVjayB3aGVyZSBWaW0gY3Jhc2hlcywgZ2RiIHNob3VsZCBnaXZlIGEgbWVzc2FnZSBmb3IgdGhpcy4KKworNC4gR2V0IGEgc3RhY2sgdHJhY2UgZnJvbSBnZGIgd2l0aCB0aGlzIGNvbW1hbmQ6ID4KKwl3aGVyZQorPCAgWW91IGNhbiBjaGVjayBvdXQgZGlmZmVyZW50IHBsYWNlcyBpbiB0aGUgc3RhY2sgdHJhY2Ugd2l0aDogPgorCWZyYW1lIDMKKzwgIFJlcGxhY2UgIjMiIHdpdGggb25lIG9mIHRoZSBudW1iZXJzIGluIHRoZSBzdGFjayB0cmFjZS4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzIuIFdpbmRvd3MgQnVnIFJlcG9ydGluZyAgICAgICAgICAgICAgICAgICAgICAgCQkqZGVidWctd2luMzIqCisKK0lmIHRoZSBXaW5kb3dzIHZlcnNpb24gb2YgVmltIGNyYXNoZXMgaW4gYSByZXByb2R1Y2libGUgbWFubmVyLAoreW91IGNhbiB0YWtlIHNvbWUgc3RlcHMgdG8gcHJvdmlkZSBhIHVzZWZ1bCBidWcgcmVwb3J0LgorCitGaXJzdCwgeW91IG11c3Qgb2J0YWluIHRoZSBkZWJ1Z2dlciBzeW1ib2xzIChQREIpIGZpbGUgZm9yIHlvdXIgZXhlY3V0YWJsZToKK2d2aW0ucGRiIGZvciBndmltLmV4ZSwgb3IgdmltLnBkYiBmb3IgdmltLmV4ZS4gSXQgc2hvdWxkIGJlIGF2YWlsYWJsZQorZnJvbSB0aGUgc2FtZSBwbGFjZSB0aGF0IHlvdSBvYnRhaW5lZCB0aGUgZXhlY3V0YWJsZS4gQmUgc3VyZSB0byB1c2UKK3RoZSBQREIgdGhhdCBtYXRjaGVzIHRoZSBFWEUuCisKK0lmIHlvdSBidWlsdCB0aGUgZXhlY3V0YWJsZSB5b3Vyc2VsZiB3aXRoIHRoZSBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlciwKK3RoZW4gdGhlIFBEQiB3YXMgYnVpbHQgd2l0aCB0aGUgRVhFLgorCitZb3UgY2FuIGRvd25sb2FkIHRoZSBNaWNyb3NvZnQgVmlzdWFsIEMrKyBUb29sa2l0IGZyb20KKyAgICBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL3Zpc3VhbGMvdmN0b29sa2l0MjAwMy8KK1RoaXMgY29udGFpbnMgdGhlIGNvbW1hbmQtbGluZSB0b29scywgYnV0IG5vdCB0aGUgVmlzdWFsIFN0dWRpbyBJREUuCisKK1RoZSBEZWJ1Z2dpbmcgVG9vbHMgZm9yIFdpbmRvd3MgY2FuIGJlIGRvd25sb2FkZWQgZnJvbQorICAgIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aGRjL2RldnRvb2xzL2RlYnVnZ2luZy9kZWZhdWx0Lm1zcHgKK1RoaXMgaW5jbHVkZXMgdGhlIFdpbkRiZyBkZWJ1Z2dlci4KKworSWYgeW91IGhhdmUgVmlzdWFsIFN0dWRpbywgdXNlIHRoYXQgaW5zdGVhZCBvZiB0aGUgVkMgVG9vbGtpdAorYW5kIFdpbkRiZy4KKworCisoTm8gaWRlYSB3aGF0IHRvIGRvIGlmIHlvdXIgYmluYXJ5IHdhcyBidWlsdCB3aXRoIHRoZSBCb3JsYW5kIG9yIEN5Z3dpbgorY29tcGlsZXJzLiBTb3JyeS4pCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9kZXZlbG9wLnR4dCBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CmluZGV4IGE2NDBmNWIuLjQ5ODgzM2MgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CisrKyBiL3J1bnRpbWUvZG9jL2RldmVsb3AudHh0CkBAIC0xLDQgKzEsNCBAQAotKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNAorKmRldmVsb3AudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjM4LDggKzIzOCw4IEBACiAKIFZBUklPVVMJCQkJCQkJKnN0eWxlLXZhcmlvdXMqCiAKLVR5cGVkZWYnZWQgbmFtZXMgc2hvdWxkIGVuZCBpbiAiX3QiOiA+Ci0gICAgdHlwZWRlZiBpbnQgc29tZV90OworVHlwZWRlZidlZCBuYW1lcyBzaG91bGQgZW5kIGluICJfVCI6ID4KKyAgICB0eXBlZGVmIGludCBzb21lX1Q7CiBEZWZpbmUnZWQgbmFtZXMgc2hvdWxkIGJlIHVwcGVyY2FzZTogPgogICAgICNkZWZpbmUgU09NRV9USElORwogRmVhdHVyZXMgYWx3YXlzIHN0YXJ0IHdpdGggIkZFQVRfIjogPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvZXZhbC50eHQgYi9ydW50aW1lL2RvYy9ldmFsLnR4dAppbmRleCBiNDEyNzM0Li5iYzAzZjAzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9ldmFsLnR4dAorKysgYi9ydW50aW1lL2RvYy9ldmFsLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMjMKKypldmFsLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQwODEsMTIgKzQwODEsMTIgQEAKIAogCQkJCQkJCSpzdHJsZW4oKSoKIHN0cmxlbih7ZXhwcn0pCVRoZSByZXN1bHQgaXMgYSBOdW1iZXIsIHdoaWNoIGlzIHRoZSBsZW5ndGggb2YgdGhlIFN0cmluZwotCQl7ZXhwcn0gaW4gYnl0ZXMuICBJZiB5b3Ugd2FudCB0byBjb3VudCB0aGUgbnVtYmVyIG9mCi0JCW11bHRpLWJ5dGUgY2hhcmFjdGVycyB1c2Ugc29tZXRoaW5nIGxpa2UgdGhpczogPgorCQl7ZXhwcn0gaW4gYnl0ZXMuCisJCUlmIHlvdSB3YW50IHRvIGNvdW50IHRoZSBudW1iZXIgb2YgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIChub3QKKwkJY291bnRpbmcgY29tcG9zaW5nIGNoYXJhY3RlcnMpIHVzZSBzb21ldGhpbmcgbGlrZSB0aGlzOiA+CiAKIAkJCTpsZXQgbGVuID0gc3RybGVuKHN1YnN0aXR1dGUoc3RyLCAiLiIsICJ4IiwgImciKSkKLQotPAkJQ29tcG9zaW5nIGNoYXJhY3RlcnMgYXJlIG5vdCBjb3VudGVkLgorPAogCQlJZiB0aGUgYXJndW1lbnQgaXMgYSBOdW1iZXIgaXQgaXMgZmlyc3QgY29udmVydGVkIHRvIGEgU3RyaW5nLgogCQlGb3Igb3RoZXIgdHlwZXMgYW4gZXJyb3IgaXMgZ2l2ZW4uCiAJCUFsc28gc2VlIHxsZW4oKXwuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IDIwMDdhOGEuLjVmYThjZjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBNYXIgMTkKKypoZWxwLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgU2VwIDAxCiAKIAkJCVZJTSAtIG1haW4gaGVscCBmaWxlCiAJCQkJCQkJCQkgawpAQCAtOTcsNiArOTcsNyBAQAogfHF1b3Rlcy50eHR8CXJlbWFya3MgZnJvbSB1c2VycyBvZiBWaW0KIHx0b2RvLnR4dHwJa25vd24gcHJvYmxlbXMgYW5kIGRlc2lyZWQgZXh0ZW5zaW9ucwogfGRldmVsb3AudHh0fAlkZXZlbG9wbWVudCBvZiBWaW0KK3xkZWJ1Zy50eHR8CWRlYnVnZ2luZyBWaW0gaXRzZWxmCiB8dWdhbmRhLnR4dHwJVmltIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFuZCB3aGF0IHRvIGRvIHdpdGggeW91ciBtb25leQogCiBCYXNpYyBlZGl0aW5nIH4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2lmX3J1YnkudHh0IGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKaW5kZXggM2NhOGNjNS4uMWVmYjZjZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaWZfcnVieS50eHQKKysrIGIvcnVudGltZS9kb2MvaWZfcnVieS50eHQKQEAgLTEsNCArMSw0IEBACi0qaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTWFyIDI5CisqaWZfcnVieS50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDMxCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IFNodWdvIE1hZWRhCkBAIC0xNTksNiArMTU5LDggQEAKIGJ1ZmZlcgkJUmV0dXJucyB0aGUgYnVmZmVyIGRpc3BsYXllZCBpbiB0aGUgd2luZG93LgogaGVpZ2h0CQlSZXR1cm5zIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdy4KIGhlaWdodCA9IHtufQlTZXRzIHRoZSB3aW5kb3cgaGVpZ2h0IHRvIHtufS4KK3dpZHRoCQlSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgd2luZG93Lgord2lkdGggPSB7bn0JU2V0cyB0aGUgd2luZG93IHdpZHRoIHRvIHtufS4KIGN1cnNvcgkJUmV0dXJucyBhIFtyb3csIGNvbF0gYXJyYXkgZm9yIHRoZSBjdXJzb3IgcG9zaXRpb24uCiBjdXJzb3IgPSBbe3Jvd30sIHtjb2x9XQogCQlTZXRzIHRoZSBjdXJzb3IgcG9zaXRpb24gdG8ge3Jvd30gYW5kIHtjb2x9LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dCBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKaW5kZXggYWU5MGViOS4uNjUzMGQ5ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAorKysgYi9ydW50aW1lL2RvYy9pbnNlcnQudHh0CkBAIC0xLDQgKzEsNCBAQAotKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAxNworKmluc2VydC50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtODY4LDggKzg2OCw4IEBACiBVc2VyIGRlZmluZWQgY29tcGxldGlvbgkJCQkJKmNvbXBsLWZ1bmN0aW9uKgogCiBDb21wbGV0aW9uIGlzIGRvbmUgYnkgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBkZWZpbmVkIGJ5IHRoZSB1c2VyIHdpdGggdGhlCi0nY29tcGxldGVmdW5jJyBvcHRpb24uICBTZWUgdGhlIG9wdGlvbiBmb3IgaG93IHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGFuCi1leGFtcGxlLgorJ2NvbXBsZXRlZnVuYycgb3B0aW9uLiAgU2VlIHRoZSAnY29tcGxldGVmdW5jJyBoZWxwIGZvciBob3cgdGhlIGZ1bmN0aW9uCitpcyBjYWxsZWQgYW5kIGFuIGV4YW1wbGUuCiAKIAkJCQkJCQkqaV9DVFJMLVhfQ1RSTC1VKgogQ1RSTC1YIENUUkwtVQkJR3Vlc3Mgd2hhdCBraW5kIG9mIGl0ZW0gaXMgaW4gZnJvbnQgb2YgdGhlIGN1cnNvciBhbmQKQEAgLTg4NCw3ICs4ODQsMTAgQEAKIAogT2NjdWx0IGNvbXBsZXRpb24JCQkJCSpjb21wbC1vY2N1bHQqCiAKLUNvbXBsZXRpb24gaXMgZG9uZSBieSBhIHN1cGVybmF0dXJhbCBiZWluZy4KK0NvbXBsZXRpb24gaXMgZG9uZSBieSBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGRlZmluZWQgYnkgdGhlIHVzZXIgd2l0aCB0aGUKKydvY2N1bHRmdW5jJyBvcHRpb24uICBUaGlzIGlzIHRvIGJlIHVzZWQgZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24uCisKK1NlZSB0aGUgJ2NvbXBsZXRlZnVuYycgaGVscCBmb3IgaG93IHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIGFuIGV4YW1wbGUuCiAKIAkJCQkJCQkqaV9DVFJMLVhfQ1RSTC1PKgogQ1RSTC1YIENUUkwtTwkJR3Vlc3Mgd2hhdCBraW5kIG9mIGl0ZW0gaXMgaW4gZnJvbnQgb2YgdGhlIGN1cnNvciBhbmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2ludHJvLnR4dCBiL3J1bnRpbWUvZG9jL2ludHJvLnR4dAppbmRleCAzZjhlMzVkLi44OWYwMjBjIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnRyby50eHQKKysrIGIvcnVudGltZS9kb2MvaW50cm8udHh0CkBAIC0xLDQgKzEsNCBAQAotKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1biAxMgorKmludHJvLnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTUxLDMxICsxNTEsMTkgQEAKIGFwcGVhcmFuY2Ugb2YgdGhlIGJ1Zy4gIFRyeSBkaWZmZXJlbnQgbWFjaGluZXMsIGlmIHBvc3NpYmxlLiAgU2VuZCBtZSBwYXRjaGVzCiBpZiB5b3UgY2FuIQogCi1JbiBjYXNlIG9mIGRvdWJ0LCB1c2U6ID4KK0l0IHdpbGwgaGVscCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2ZXJzaW9uIG9mIFZpbSB5b3UgYXJlIHVzaW5nIGFuZAoreW91ciBzZXR1cC4gIFlvdSBjYW4gZ2V0IHRoZSBpbmZvcm1hdGlvbiB3aXRoIHRoaXMgY29tbWFuZDogPgogICAgOnNvICRWSU1SVU5USU1FL2J1Z3JlcG9ydC52aW0KIFRoaXMgd2lsbCBjcmVhdGUgYSBmaWxlICJidWdyZXBvcnQudHh0IiBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnksIHdpdGggYSBsb3QKIG9mIGluZm9ybWF0aW9uIG9mIHlvdXIgZW52aXJvbm1lbnQuICBCZWZvcmUgc2VuZGluZyB0aGlzIG91dCwgY2hlY2sgaWYgaXQKIGRvZXNuJ3QgY29udGFpbiBhbnkgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIQogCi0JCQkJCQkJKmRlYnVnLXZpbSoKLVdoZW4gVmltIGNyYXNoZXMgaW4gb25lIG9mIHRoZSB0ZXN0IGZpbGVzLCBhbmQgeW91IGFyZSB1c2luZyBnY2MgZm9yCi1jb21waWxhdGlvbiwgaGVyZSBpcyB3aGF0IHlvdSBjYW4gZG8gdG8gZmluZCBvdXQgZXhhY3RseSB3aGVyZSBWaW0gY3Jhc2hlczoKK0lmIFZpbSBjcmFzaGVzLCBwbGVhc2UgdHJ5IHRvIGZpbmQgb3V0IHdoZXJlLiAgWW91IGNhbiBmaW5kIGhlbHAgb24gdGhpcyBoZXJlOgorfGRlYnVnLnR4dHwuCiAKLTEuIENvbXBpbGUgVmltIHdpdGggdGhlICItZyIgb3B0aW9uICh0aGVyZSBpcyBhIGxpbmUgaW4gdGhlIE1ha2VmaWxlIGZvciB0aGlzLAotICAgd2hpY2ggeW91IGNhbiB1bmNvbW1lbnQpLgotCi0yLiBFeGVjdXRlIHRoZXNlIGNvbW1hbmRzIChyZXBsYWNlICIxMSIgd2l0aCB0aGUgdGVzdCB0aGF0IGZhaWxzKTogPgotCWNkIHRlc3RkaXIKLQlnZGIgLi4vdmltCi0JcnVuIC11IHVuaXgudmltIC1VIE5PTkUgLXMgZG90ZXN0LmluIHRlc3QxMS5pbgotCi0zLiBDaGVjayB3aGVyZSBWaW0gY3Jhc2hlcywgZ2RiIHNob3VsZCBnaXZlIGEgbWVzc2FnZSBmb3IgdGhpcy4KLQotNC4gR2V0IGEgc3RhY2sgdHJhY2UgZnJvbSBnZGIgd2l0aCB0aGlzIGNvbW1hbmQ6ID4KLQl3aGVyZQotPCAgWW91IGNhbiBjaGVjayBvdXQgZGlmZmVyZW50IHBsYWNlcyBpbiB0aGUgc3RhY2sgdHJhY2Ugd2l0aDogPgotCWZyYW1lIDMKLTwgIFJlcGxhY2UgIjMiIHdpdGggb25lIG9mIHRoZSBudW1iZXJzIGluIHRoZSBzdGFjayB0cmFjZS4KK0luIGNhc2Ugb2YgZG91YnQgb3Igd2hlbiB5b3Ugd29uZGVyIGlmIHRoZSBwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gZml4ZWQgYnV0Cit5b3UgY2FuJ3QgZmluZCBhIGZpeCBmb3IgaXQsIGJlY29tZSBhIG1lbWJlciBvZiB0aGUgdmltLWRldiBtYWlsbGlzdCBhbmQgYXNrCit5b3VyIHF1ZXN0aW9uIHRoZXJlLiB8bWFpbGxpc3R8CiAKIAkJCQkJCQkqeWVhci0yMDAwKiAqWTJLKgogU2luY2UgVmltIGludGVybmFsbHkgZG9lc24ndCB1c2UgZGF0ZXMgZm9yIGVkaXRpbmcsIHRoZXJlIGlzIG5vIHllYXIgMjAwMApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWFwLnR4dCBiL3J1bnRpbWUvZG9jL21hcC50eHQKaW5kZXggNWZiMDNlOS4uYzMzMDIzYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvbWFwLnR4dAorKysgYi9ydW50aW1lL2RvYy9tYXAudHh0CkBAIC02NjYsNiArNjY2LDE2IEBACiAJCQltb2RlLCAnIScgZm9yIGJvdGguICBUaGVzZSBhcmUgdGhlIHNhbWUgYXMgZm9yCiAJCQltYXBwaW5ncywgc2VlIHxtYXAtbGlzdGluZ3wuCiAKKwkJCQkJCSo6YWJicmV2aWF0ZS12ZXJib3NlKgorV2hlbiAndmVyYm9zZScgaXMgbm9uLXplcm8sIGxpc3RpbmcgYW4gYWJicmV2aWF0aW9uIHdpbGwgYWxzbyBkaXNwbGF5IHdoZXJlIGl0Cit3YXMgbGFzdCBkZWZpbmVkLiAgRXhhbXBsZTogPgorCisJOnZlcmJvc2UgYWJicmV2aWF0ZQorCSEgIHRlaCAgICAgICAgICAgdGhlCisJCUxhc3Qgc2V0IGZyb20gL2hvbWUvYWJjZC92aW0vYWJici52aW0KKworU2VlIHw6dmVyYm9zZS1jbWR8IGZvciBtb3JlIGluZm9ybWF0aW9uLgorCiA6YWJbYnJldmlhdGVdIHtsaHN9CWxpc3QgdGhlIGFiYnJldmlhdGlvbnMgdGhhdCBzdGFydCB3aXRoIHtsaHN9CiAJCQlZb3UgbWF5IG5lZWQgdG8gaW5zZXJ0IGEgQ1RSTC1WICh0eXBlIGl0IHR3aWNlKSB0bwogCQkJYXZvaWQgdGhhdCBhIHR5cGVkIHtsaHN9IGlzIGV4cGFuZGVkLCBzaW5jZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCBlYjVhMzRhLi4yMGQwZTlmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgQXVnIDI3Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNTkxLDIzICsxNTkxLDI5IEBACiAJVGhpcyBvcHRpb24gc3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgQ1RSTC1YIENUUkwtVQogCWNvbXBsZXRpb24uIHxpX0NUUkwtWF9DVFJMLVV8CiAKLQlUaGUgZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOgotCSAgIGE6ZmluZHN0YXJ0ICBlaXRoZXIgMSBvciAwCi0JICAgYTpjb2wgICAgICAgIGNvbHVtbiBpbiB0aGUgY3Vyc29yIGxpbmUgd2hlcmUgdGhlIGNvbXBsZXRpb24gZW5kcywKLQkJCWZpcnN0IGNvbHVtbiBpcyB6ZXJvCi0JICAgYTpiYXNlCXRoZSB0ZXh0IHdpdGggd2hpY2ggbWF0Y2hlcyBzaG91bGQgbWF0Y2gKKwlUaGUgZnVuY3Rpb24gd2lsbCBiZSBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50cy4gIEZpcnN0IHRoZSBmdW5jdGlvbgorCWlzIGNhbGxlZCB0byBmaW5kIHRoZSBzdGFydCBvZiB0aGUgdGV4dCB0byBiZSBjb21wbGV0ZWQuICBTZWNvbmRseSB0aGUKKwlmdW5jdGlvbiBpcyBjYWxsZWQgdG8gYWN0dWFsbHkgZmluZCB0aGUgbWF0Y2hlcy4KIAotCVdoZW4gdGhlIGE6ZmluZHN0YXJ0IGFyZ3VtZW50IGlzIDEsIHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiB0aGUKLQljb2x1bW4gb2Ygd2hlcmUgdGhlIGNvbXBsZXRpb24gc3RhcnRzLiAgSXQgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuCi0JemVybyBhbmQgImE6Y29sIi4gIFRoaXMgaW52b2x2ZXMgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVycyBpbiB0aGUKLQljdXJzb3IgbGluZSBiZWZvcmUgY29sdW1uIGE6Y29sIGFuZCBpbmNsdWRlIHRob3NlIGNoYXJhY3RlcnMgdGhhdAotCWNvdWxkIGJlIHBhcnQgb2YgdGhlIGNvbXBsZXRlZCBpdGVtLiAgVGhlIHRleHQgYmV0d2VlbiB0aGlzIGNvbHVtbiBhbmQKLQlhOmNvbCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIG1hdGNoZXMuICBSZXR1cm4gLTEgaWYgbm8gY29tcGxldGlvbgotCWNhbiBiZSBkb25lLgorCU9uIHRoZSBmaXJzdCBpbnZvY2F0aW9uIHRoZSBhcmd1bWVudHMgYXJlOgorCSAgIGE6ZmluZHN0YXJ0ICAxCisJICAgYTpiYXNlCWVtcHR5CiAKLQlXaGVuIHRoZSBhOmZpbmRzdGFydCBhcmd1bWVudCBpcyAwIHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiBhIExpc3QKLQl3aXRoIHRoZSBtYXRjaGluZyB3b3Jkcy4gIFRoZXNlIG1hdGNoZXMgc2hvdWxkIGluY2x1ZGUgdGhlICJhOmJhc2UiCi0JdGV4dC4gIFdoZW4gdGhlcmUgYXJlIG5vIG1hdGNoZXMgcmV0dXJuIGFuIGVtcHR5IExpc3QuCisJVGhlIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRoZSBjb2x1bW4gb2Ygd2hlcmUgdGhlIGNvbXBsZXRpb24gc3RhcnRzLgorCUl0IG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiB6ZXJvIGFuZCB0aGUgY3Vyc29yIGNvbHVtbiAiY29sKCcuJykiLgorCVRoaXMgaW52b2x2ZXMgbG9va2luZyBhdCB0aGUgY2hhcmFjdGVycyBqdXN0IGJlZm9yZSB0aGUgY3Vyc29yIGFuZAorCWluY2x1ZGluZyB0aG9zZSBjaGFyYWN0ZXJzIHRoYXQgY291bGQgYmUgcGFydCBvZiB0aGUgY29tcGxldGVkIGl0ZW0uCisJVGhlIHRleHQgYmV0d2VlbiB0aGlzIGNvbHVtbiBhbmQgdGhlIGN1cnNvciBjb2x1bW4gd2lsbCBiZSByZXBsYWNlZAorCXdpdGggdGhlIG1hdGNoZXMuICBSZXR1cm4gLTEgaWYgbm8gY29tcGxldGlvbiBjYW4gYmUgZG9uZS4KKworCU9uIHRoZSBzZWNvbmQgaW52b2NhdGlvbiB0aGUgYXJndW1lbnRzIGFyZToKKwkgICBhOmZpbmRzdGFydCAgMAorCSAgIGE6YmFzZQl0aGUgdGV4dCB3aXRoIHdoaWNoIG1hdGNoZXMgc2hvdWxkIG1hdGNoLCB3aGF0IHdhcworCSAgIAkJbG9jYXRlZCBpbiB0aGUgZmlyc3QgY2FsbAorCisJVGhlIGZ1bmN0aW9uIG11c3QgcmV0dXJuIGEgTGlzdCB3aXRoIHRoZSBtYXRjaGluZyB3b3Jkcy4gIFRoZXNlCisJbWF0Y2hlcyB1c3VhbGx5IGluY2x1ZGUgdGhlICJhOmJhc2UiIHRleHQuICBXaGVuIHRoZXJlIGFyZSBubyBtYXRjaGVzCisJcmV0dXJuIGFuIGVtcHR5IExpc3QuCiAKIAlXaGVuIHNlYXJjaGluZyBmb3IgbWF0Y2hlcyB0YWtlcyBzb21lIHRpbWUgY2FsbCB8Y29tcGxldGVfYWRkKCl8IHRvCiAJYWRkIGVhY2ggbWF0Y2ggdG8gdGhlIHRvdGFsIGxpc3QuICBUaGVzZSBtYXRjaGVzIHNob3VsZCB0aGVuIG5vdApAQCAtMTYxNSwxNiArMTYyMSwxNiBAQAogCWFsbG93IHRoZSB1c2VyIHRvIHByZXNzIGEga2V5IHdoaWxlIHN0aWxsIHNlYXJjaGluZyBmb3IgbWF0Y2hlcy4gIFN0b3AKIAlzZWFyY2hpbmcgd2hlbiBpdCByZXR1cm5zIG5vbi16ZXJvLgogCi0JVGhlIGZ1bmN0aW9uIG11c3Qgbm90IG1vdmUgdGhlIGN1cnNvciEKKwlUaGUgZnVuY3Rpb24gbWF5IG1vdmUgdGhlIGN1cnNvciwgaXQgaXMgcmVzdG9yZWQgYWZ0ZXJ3YXJkcy4KIAlUaGlzIG9wdGlvbiBjYW5ub3QgYmUgc2V0IGZyb20gYSB8bW9kZWxpbmV8IG9yIGluIHRoZSB8c2FuZGJveHwsIGZvcgogCXNlY3VyaXR5IHJlYXNvbnMuCiAKIAlBbiBleGFtcGxlIHRoYXQgY29tcGxldGVzIHRoZSBuYW1lcyBvZiB0aGUgbW9udGhzOiA+Ci0JCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBjb2wsIGJhc2UpCisJCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBiYXNlKQogCQkgIGlmIGE6ZmluZHN0YXJ0CiAJCSAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKIAkJICAgIGxldCBsaW5lID0gZ2V0bGluZSgnLicpCi0JCSAgICBsZXQgc3RhcnQgPSBhOmNvbAorCQkgICAgbGV0IHN0YXJ0ID0gY29sKCcuJykgLSAxCiAJCSAgICB3aGlsZSBzdGFydCA+IDAgJiYgbGluZVtzdGFydCAtIDFdID1+ICdcYScKIAkJICAgICAgbGV0IHN0YXJ0IC09IDEKIAkJICAgIGVuZHdoaWxlCkBAIC0xNjQzLDExICsxNjQ5LDExIEBACiAJCXNldCBjb21wbGV0ZWZ1bmM9Q29tcGxldGVNb250aHMKIDwKIAlUaGUgc2FtZSwgYnV0IG5vdyBwcmV0ZW5kaW5nIHNlYXJjaGluZyBmb3IgbWF0Y2hlcyBpcyBzbG93OiA+Ci0JCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBjb2wsIGJhc2UpCisJCWZ1biEgQ29tcGxldGVNb250aHMoZmluZHN0YXJ0LCBiYXNlKQogCQkgIGlmIGE6ZmluZHN0YXJ0CiAJCSAgICAiIGxvY2F0ZSB0aGUgc3RhcnQgb2YgdGhlIHdvcmQKIAkJICAgIGxldCBsaW5lID0gZ2V0bGluZSgnLicpCi0JCSAgICBsZXQgc3RhcnQgPSBhOmNvbAorCQkgICAgbGV0IHN0YXJ0ID0gY29sKCcuJykgLSAxCiAJCSAgICB3aGlsZSBzdGFydCA+IDAgJiYgbGluZVtzdGFydCAtIDFdID1+ICdcYScKIAkJICAgICAgbGV0IHN0YXJ0IC09IDEKIAkJICAgIGVuZHdoaWxlCkBAIC00NTg4LDYgKzQ1OTQsMTggQEAKIAlUaGUgbWluaW11bSB2YWx1ZSBpcyAxLCB0aGUgbWF4aW11bSB2YWx1ZSBpcyAxMC4KIAlOT1RFOiAnbnVtYmVyd2lkdGgnIGlzIHJlc2V0IHRvIDggd2hlbiAnY29tcGF0aWJsZScgaXMgc2V0LgogCisJCQkJCQkqJ29jY3VsdGZ1bmMnKiAqJ29mdScqCisnb2NjdWx0ZnVuYycgJ29mdScJc3RyaW5nCShkZWZhdWx0OiBlbXB0eSkKKwkJCWxvY2FsIHRvIGJ1ZmZlcgorCQkJe25vdCBpbiBWaX0KKwkJCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK2V2YWwKKwkJCW9yICtpbnNlcnRfZXhwYW5kIGZlYXR1cmV9CisJVGhpcyBvcHRpb24gc3BlY2lmaWVzIGEgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3IgQ1RSTC1YIENUUkwtTworCWNvbXBsZXRpb24uIHxpX0NUUkwtWF9DVFJMLU98CisKKwlGb3IgdGhlIHVzZSBvZiB0aGUgZnVuY3Rpb24gc2VlICdjb21wbGV0ZWZ1bmMnLgorCisKIAkJCQkJKidvc2ZpbGV0eXBlJyogKidvZnQnKiAqRTM2NioKICdvc2ZpbGV0eXBlJyAnb2Z0JwlzdHJpbmcgKFJJU0MtT1MgZGVmYXVsdDogIlRleHQiLAogCQkJCW90aGVycyBkZWZhdWx0OiAiIikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAppbmRleCAzMTNiMjE4Li4yYTE0OGJkIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1bCAyNworKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAzMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNjMxLDE1ICs2MzEsMTMgQEAKIAklJQkJdGhlIHNpbmdsZSAnJScgY2hhcmFjdGVyCiAJJXMJCXNlYXJjaCB0ZXh0IChmaW5kcyBhIHN0cmluZykKIAotVGhlICIlZiIgY29udmVyc2lvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50ICdpc2ZuYW1lJyBzZXR0aW5nLiAgIn4vIiBpcworVGhlICIlZiIgY29udmVyc2lvbiBtYXkgZGVwZW5kIG9uIHRoZSBjdXJyZW50ICdpc2ZuYW1lJyBzZXR0aW5nLiAgIn4vIiBpcwogZXhwYW5kZWQgdG8gdGhlIGhvbWUgZGlyZWN0b3J5IGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGV4cGFuZGVkLgogCi1UaGUgIiVmIiBhbmQgIiVtIiBjb252ZXJzaW9ucyBoYXZlIHRvIGRldGVjdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuICBUaGV5Ci1zaG91bGQgYmUgZm9sbG93ZWQgYnkgYSBjaGFyYWN0ZXIgdGhhdCBjYW5ub3QgYmUgaW4gdGhlIHN0cmluZy4gIEV2ZXJ5dGhpbmcKLXVwIHRvIHRoYXQgY2hhcmFjdGVyIGlzIGluY2x1ZGVkIGluIHRoZSBzdHJpbmcuICBCdXQgd2hlbiB0aGUgbmV4dCBjaGFyYWN0ZXIKLWlzIGEgJyUnIG9yIGEgYmFja3NsYXNoLCAiJWYiIHdpbGwgbG9vayBmb3IgYW55ICdpc2ZuYW1lJyBjaGFyYWN0ZXIgYW5kICIlbSIKLWZpbmRzIGFueXRoaW5nLiAgSWYgdGhlICIlZiIgb3IgIiVtIiBpcyBhdCB0aGUgZW5kLCBldmVyeXRoaW5nIHVwIHRvIHRoZSBlbmQKLW9mIHRoZSBsaW5lIGlzIGluY2x1ZGVkLgorVGhlICIlZiIgYW5kICIlbSIgY29udmVyc2lvbnMgaGF2ZSB0byBkZXRlY3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLiAgVGhpcworbm9ybWFsbHkgaGFwcGVucyBieSBtYXRjaGluZyBmb2xsb3dpbmcgY2hhcmFjdGVycyBhbmQgaXRlbXMuICBXaGVuIG5vaHRpbmcgaXMKK2ZvbGxvd2luZyB0aGUgcmVzdCBvZiB0aGUgbGluZSBpcyBtYXRjaGVkLiAgSWYgIiVmIiBpcyBmb2xsb3dlZCBieSBhICclJyBvciBhCitiYWNrc2xhc2gsIGl0IHdpbGwgbG9vayBmb3IgYSBzZXF1ZW5jZSBvZiAnaXNmbmFtZScgY2hhcmFjdGVycy4KIAogT24gTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBPUy8yIGEgbGVhZGluZyAiQzoiIHdpbGwgYmUgaW5jbHVkZWQgaW4gIiVmIiwgZXZlbgogd2hlbiB1c2luZyAiJWY6Ii4gIFRoaXMgbWVhbnMgdGhhdCBhIGZpbGUgbmFtZSB3aGljaCBpcyBhIHNpbmdsZSBhbHBoYWJldGljYWwKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrcmVmLnR4dAppbmRleCBkMmUwN2U1Li5jODU5N2E2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja3JlZi50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tyZWYudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyOQorKnF1aWNrcmVmLnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IFNlcCAwMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNzcyLDYgKzc3Miw3IEBACiB8J25yZm9ybWF0cyd8CSAgfCduZid8ICAgICBudW1iZXIgZm9ybWF0cyByZWNvZ25pemVkIGZvciBDVFJMLUEgY29tbWFuZAogfCdudW1iZXInfAkgIHwnbnUnfCAgICAgcHJpbnQgdGhlIGxpbmUgbnVtYmVyIGluIGZyb250IG9mIGVhY2ggbGluZQogfCdudW1iZXJ3aWR0aCd8CSAgfCdudXcnfCAgICBudW1iZXIgb2YgY29sdW1ucyB1c2VkIGZvciB0aGUgbGluZSBudW1iZXIKK3wnb2NjdWx0ZnVuYyd8ICAgIHwnb2Z1J3wgICAgZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIGNvbXBsZXRpb24KIHwnb3NmaWxldHlwZSd8CSAgfCdvZnQnfCAgICBvcGVyYXRpbmcgc3lzdGVtLXNwZWNpZmljIGZpbGV0eXBlIGluZm9ybWF0aW9uCiB8J3BhcmFncmFwaHMnfAkgIHwncGFyYSd8ICAgbnJvZmYgbWFjcm9zIHRoYXQgc2VwYXJhdGUgcGFyYWdyYXBocwogfCdwYXN0ZSd8CQkgICAgIGFsbG93IHBhc3RpbmcgdGV4dApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggZWY3MmQzYy4uODcwYjdiYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC02MDcsNyArNjA3LDkgQEAKICdudW1iZXInCW9wdGlvbnMudHh0CS8qJ251bWJlcicqCiAnbnVtYmVyd2lkdGgnCW9wdGlvbnMudHh0CS8qJ251bWJlcndpZHRoJyoKICdudXcnCW9wdGlvbnMudHh0CS8qJ251dycqCisnb2NjdWx0ZnVuYycJb3B0aW9ucy50eHQJLyonb2NjdWx0ZnVuYycqCiAnb2Z0JwlvcHRpb25zLnR4dAkvKidvZnQnKgorJ29mdScJb3B0aW9ucy50eHQJLyonb2Z1JyoKICdvcCcJdmlfZGlmZi50eHQJLyonb3AnKgogJ29wZW4nCXZpX2RpZmYudHh0CS8qJ29wZW4nKgogJ29wdGltaXplJwl2aV9kaWZmLnR4dAkvKidvcHRpbWl6ZScqCkBAIC0xNjY5LDYgKzE2NzEsNyBAQAogOmFiYnJldmlhdGUJbWFwLnR4dAkvKjphYmJyZXZpYXRlKgogOmFiYnJldmlhdGUtPGJ1ZmZlcj4JbWFwLnR4dAkvKjphYmJyZXZpYXRlLTxidWZmZXI+KgogOmFiYnJldmlhdGUtbG9jYWwJbWFwLnR4dAkvKjphYmJyZXZpYXRlLWxvY2FsKgorOmFiYnJldmlhdGUtdmVyYm9zZQltYXAudHh0CS8qOmFiYnJldmlhdGUtdmVyYm9zZSoKIDphYmMJbWFwLnR4dAkvKjphYmMqCiA6YWJjbGVhcgltYXAudHh0CS8qOmFiY2xlYXIqCiA6YWJvCXdpbmRvd3MudHh0CS8qOmFibyoKQEAgLTQ2MDksMTEgKzQ2MTIsMTQgQEAKIGRhdglwaV9uZXRydy50eHQJLypkYXYqCiBkYXcJbW90aW9uLnR4dAkvKmRhdyoKIGRkCWNoYW5nZS50eHQJLypkZCoKK2RlYnVnLWdjYwlkZWJ1Zy50eHQJLypkZWJ1Zy1nY2MqCiBkZWJ1Zy1oaWdobGlnaHQJZGVidWdnZXIudHh0CS8qZGVidWctaGlnaGxpZ2h0KgogZGVidWctbW9kZQlyZXBlYXQudHh0CS8qZGVidWctbW9kZSoKIGRlYnVnLXNjcmlwdHMJcmVwZWF0LnR4dAkvKmRlYnVnLXNjcmlwdHMqCiBkZWJ1Zy1zaWducwlkZWJ1Z2dlci50eHQJLypkZWJ1Zy1zaWducyoKLWRlYnVnLXZpbQlpbnRyby50eHQJLypkZWJ1Zy12aW0qCitkZWJ1Zy12aW0JZGVidWcudHh0CS8qZGVidWctdmltKgorZGVidWctd2luMzIJZGVidWcudHh0CS8qZGVidWctd2luMzIqCitkZWJ1Zy50eHQJZGVidWcudHh0CS8qZGVidWcudHh0KgogZGVidWdnZXItY29tcGlsYXRpb24JZGVidWdnZXIudHh0CS8qZGVidWdnZXItY29tcGlsYXRpb24qCiBkZWJ1Z2dlci1mZWF0dXJlcwlkZWJ1Z2dlci50eHQJLypkZWJ1Z2dlci1mZWF0dXJlcyoKIGRlYnVnZ2VyLWludGVncmF0aW9uCWRlYnVnZ2VyLnR4dAkvKmRlYnVnZ2VyLWludGVncmF0aW9uKgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCA2ZTYzODEzLi5kZmRmMDk3IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBBdWcgMzAKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBTZXAgMDEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsMTYgKzMwLDcgQEAKIAkJCQkJCQkqa25vd24tYnVncyoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tIEtub3duIGJ1Z3MgYW5kIGN1cnJlbnQgd29yayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NYWM6Ci0tIHN0cmluZ3MuaCBpcyBib2d1cywgYWRkIGNvbmZpZ3VyZSBjaGVjay4KLS0gR1VJOiBwYXN0aW5nIGxpbmVzIHJlc3VsdHMgaW4gXk0gaW5zdGVhZCBvZiBsaW5lIGJyZWFrcy4gKEJlbmphbWluIEVzaGFtKQotLSAiY3AgLVIgLi4vcnVudGltZSBhcHBkaXIiIG1heSBjb3B5IHdheSB0b28gbXVjaC4KLQotY21kbGluZV9hdF9lbmQoKSBhbmQgY21kbGluZV9vdmVyc3RyaWtlKCkgbWF5IG5vdCBiZSB1c2VkLgotCi1SdWJ5OiBkb2N1bWVudGF0aW9uIGZvciB3aW5kb3cgd2lkdGggKFdpbmQpCi0KLUFkZCBhIGZldyBtb3JlIGxhbmd1YWdlcyBmb3Igc3BlbGwgY2hlY2tpbmcuCitUcnkgb3V0IHVzaW5nIHRoZSBmcmVlIE1TIGNvbXBpbGVyIGFuZCBkZWJ1Z2dlciwgdXNpbmcgTWFrZV9tdmMubWFrLgogCiBNYWMgdW5pY29kZSBwYXRjaCAoRGEgV29vbiBKdW5nKToKIC0gc2VsZWN0aW5nIHByb3BvcnRpb25hbCBmb250IGJyZWFrcyBkaXNwbGF5CkBAIC03MSwxMyArNjIsMTIgQEAKICAgICB0aGF0IG1ha2Ugc2Vuc2UuICBFc3AuIG1lbWJlcnMgb2YgY2xhc3Nlcy9zdHJ1Y3RzLgogCiAgICAgSXQncyBub3QgbXVjaCBkaWZmZXJlbnQgZnJvbSBvdGhlciBJbnNlcnQtbW9kZSBjb21wbGV0aW9uLCB1c2UgdGhlIHNhbWUKLSAgICBtZWNoYW5pc20uICBVc2UgQ1RSTC1YIENUUkwtTy4KKyAgICBtZWNoYW5pc20uICBVc2UgQ1RSTC1YIENUUkwtTyBhbmQgJ29jY3VsdGZ1bmMnLiAgU2V0ICdvY2N1bHRmdW5jJyBpbiB0aGUKKyAgICBmaWxldHlwZSBwbHVnaW4sIGRlZmluZSB0aGUgZnVuY3Rpb24gaW4gdGhlIGF1dG9sb2FkIGRpcmVjdG9yeS4KICAgICAKICAgICBTZXBhcmF0ZWx5IGRldmVsb3AgdGhlIGNvbXBsZXRpb24gbG9naWMgYW5kIHRoZSBVSS4gIFdoZW4gYWRkaW5nIFVJIHN0dWZmCiAgICAgbWFrZSBpdCB3b3JrIGZvciBhbGwgY29tcGxldGlvbiBtZXRob2RzLgogCi0gICAgRmlyc3QgY2xlYW51cCB0aGUgSW5zZXJ0LW1vZGUgY29tcGxldGlvbi4KLQogICAgIFVJOgogICAgIC0gQXQgZmlyc3Q6IHVzZSAnd2lsZG1lbnUnIGtpbmQgb2YgdGhpbmcuCiAgICAgLSBOaWNlcjogRGlzcGxheSB0aGUgbGlzdCBvZiBjaG9pY2VzIHJpZ2h0IHVuZGVyIHRoZSBwbGFjZSB3aGVyZSB0aGV5CkBAIC04NSw5ICs3NSwyMiBAQAogICAgICAgYWx0ZXJuYXRpdmVzKS4KIAogICAgIENvbXBsZXRpb24gbG9naWM6Ci0JVXNlIHNvbWV0aGluZyBsaWtlICdjb21wbGV0ZWZ1bmMnPwotCXJ1bnRpbWUvY29tcGxldGUve2ZpbGV0eXBlfS52aW0gZmlsZXM/CisJVXNlIHJ1bnRpbWUvYXV0b2xvYWQve2ZpbGV0eXBlfWNvbXBsZXRlLnZpbSBmaWxlcy4KKworCUZvciBhIHNpbXBsZSBuYW1lIGNhbiBjb21wbGV0ZSBsaWtlIHdpdGggQ1RSTC1OLgorCSAgICBnZXQgbGlzdCBvZiBJRHMgZnJvbSB0aGUgdGFnZmlsZT8KKwkgICAgRm9yIHN0cnVjdCBvciBjbGFzcyBhZGQgIi4iIG9yICItPiI/CisKKwlBZnRlciBhIHJlZmVyZW5jZSB0byBhIHN0cnVjdCBvciBjbGFzcyBzdWdnZXN0IG1lbWJlcnMuCisJICAgIFJlY29nbml6aW5nICJ2YXIubWVtIiBhbmQgJ3Zhci0+bWVtIiBpcyBlYXN5LgorCSAgICBIb3cgdG8gZ2V0IHRoZSB0eXBlIG9mICJ2YXIiPworCQl0YWdzIGZpbGUgZG9lc24ndCBnaXZlIHR5cGUgb2YgdHlwZWRlZiEgIEUuZy4sIG9wYXJnX1QgaXMKKwkJbGlzdGVkIHdpdGggIl59IG9wYXJnX1Q7JCIKKwkgICAgSG93IHRvIGdldCB0aGUgbWVtYmVycyBvZiB0aGF0IHR5cGU/CisJCXRhZ3MgZmlsZSBoYXMgc3RydWN0OiBhbmQgY2xhc3M6IGZpZWxkcworCiAJSW4gZnVuY3Rpb24gYXJndW1lbnRzIHN1Z2dlc3QgdmFyaWFibGVzIG9mIGV4cGVjdGVkIHR5cGUuCisKIAlMaXN0IG9mIGNvbXBsZXRpb25zIGlzIGEgRGljdGlvbmFyeSB3aXRoIGl0ZW1zOgogCSAgICBjb21wbGlzdFswXVsndGV4dCddID0gY29tcGxldGlvbiB0ZXh0CiAJICAgIGNvbXBsaXN0WzBdWyd0eXBlJ10gPSB0eXBlIG9mIGNvbXBsZXRpb24gKGUuZy4gZnVuY3Rpb24sIHZhciwgYXJnKQpAQCAtOTgsMTEgKzEwMSwxNSBAQAogCUlkZWFzIGZyb20gb3RoZXJzOgogCWh0dHA6Ly93d3cudmltLm9yZy9zY3JpcHRzL3NjcmlwdC5waHA/c2NyaXB0X2lkPTc0NwogCSAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2luc2VudmltCi0JCW9mIGh0dHA6Ly9pbnNlbnZpbS5zb3VyY2Vmb3JnZS5uZXQKKwkJb3IgaHR0cDovL2luc2VudmltLnNvdXJjZWZvcmdlLm5ldAogCSAgICBKYXZhLCBYTUwsIEhUTUwsIEMrKywgSlNQLCBTUUwsIEMjCiAJICAgIE1TLVdpbmRvd3Mgb25seSwgbG90cyBvZiBkZXBlbmRlbmNpZXMgKGUuZy4gUGVybCwgSW50ZXJuZXQKIAkJZXhwbG9yZXIpLCB1c2VzIC5kbGwgc2hhcmVkIGxpYnJhcmllcy4KLQkgICAgZm9yIEMrKyB1c2VzICRJTkNMVURFIGVudmlyb25tZW50IHZhcgorCSAgICBGb3IgQysrIHVzZXMgJElOQ0xVREUgZW52aXJvbm1lbnQgdmFyLgorCSAgICBVc2VzIFBlcmwgZm9yIEMrKy4KKwkgICAgVXNlcyBjdGFncyB0byBmaW5kIHRoZSBpbmZvOgorCQljdGFncyAtZiAkYWxsVGFnc0ZpbGUgLS1maWVsZHM9K2FpS21uc1N6IC0tbGFuZ3VhZ2UtZm9yY2U9QysrIC0tQysrLWtpbmRzPStjZWZnbW5wc3V0LWRsdXggLXUgJGZpbGVzCisKIAkgICAgVUk6IHBvcHVwIG1lbnUgd2l0aCBsaXN0IG9mIGFsdGVybmF0aXZlcywgaWNvbiB0byBpbmRpY2F0ZSB0eXBlCiAJCW9wdGlvbmFsIHBvcHVwIHdpbmRvdyB3aXRoIGluZm8gYWJvdXQgc2VsZWN0ZWQgYWx0ZXJuYXRpdmUKIAkgICAgVW5yZWxhdGVkIHNldHRpbmdzIGFyZSBjaGFuZ2VkIChlLmcuICdtb3VzZW1vZGVsJykuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dCBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CmluZGV4IDRkZTMyODguLjNmMDc1ZDggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZhcmlvdXMudHh0CkBAIC00ODksMTEgKzQ4OSwxMSBAQAogCiAJCQkJCQkJKjp2ZXJib3NlLWNtZCoKIFdoZW4gJ3ZlcmJvc2UnIGlzIG5vbi16ZXJvLCBsaXN0aW5nIHRoZSB2YWx1ZSBvZiBhIFZpbSBvcHRpb24gb3IgYSBrZXkgbWFwIG9yCi1hIHVzZXItZGVmaW5lZCBmdW5jdGlvbiBvciBhIGNvbW1hbmQgb3IgYSBoaWdobGlnaHQgZ3JvdXAgb3IgYW4gYXV0b2NvbW1hbmQKLXdpbGwgYWxzbyBkaXNwbGF5IHdoZXJlIGl0IHdhcyBsYXN0IGRlZmluZWQuICBJZiBpdCB3YXMgZGVmaW5lZCBtYW51YWxseSB0aGVuCi10aGVyZSB3aWxsIGJlIG5vICJMYXN0IHNldCIgbWVzc2FnZS4gIFdoZW4gaXQgd2FzIGRlZmluZWQgd2hpbGUgZXhlY3V0aW5nIGEKLWZ1bmN0aW9uLCB1c2VyIGNvbW1hbmQgb3IgYXV0b2NvbW1hbmQsIHRoZSBzY3JpcHQgaW4gd2hpY2ggaXQgd2FzIGRlZmluZWQgaXMKLXJlcG9ydGVkLgorYW4gYWJicmV2aWF0aW9uIG9yIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIG9yIGEgY29tbWFuZCBvciBhIGhpZ2hsaWdodCBncm91cAorb3IgYW4gYXV0b2NvbW1hbmQgd2lsbCBhbHNvIGRpc3BsYXkgd2hlcmUgaXQgd2FzIGxhc3QgZGVmaW5lZC4gIElmIGl0IHdhcworZGVmaW5lZCBtYW51YWxseSB0aGVuIHRoZXJlIHdpbGwgYmUgbm8gIkxhc3Qgc2V0IiBtZXNzYWdlLiAgV2hlbiBpdCB3YXMKK2RlZmluZWQgd2hpbGUgZXhlY3V0aW5nIGEgZnVuY3Rpb24sIHVzZXIgY29tbWFuZCBvciBhdXRvY29tbWFuZCwgdGhlIHNjcmlwdCBpbgord2hpY2ggaXQgd2FzIGRlZmluZWQgaXMgcmVwb3J0ZWQuCiB7bm90IGF2YWlsYWJsZSB3aGVuIGNvbXBpbGVkIHdpdGhvdXQgdGhlICtldmFsIGZlYXR1cmV9CiAKIAkJCQkJCQkqSyoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dCBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dAppbmRleCBhZWI3OWUzLi42ZWM4Mjg2IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKKysrIGIvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CkBAIC0xLDQgKzEsNCBAQAotKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAyOAorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEF1ZyAzMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtNTY1LDggKzU2NSw5IEBACiAKIFdoZW4gJ3ZlcmJvc2UnIGlzIHNldCB0aGUgb3V0cHV0IG9mICI6aGlnaGxpZ2h0IiB3aWxsIHNob3cgd2hlcmUgYSBoaWdobGlnaHQKIGl0ZW0gd2FzIGxhc3Qgc2V0LgotV2hlbiAndmVyYm9zZScgaXMgc2V0IHRoZSBvdXRwdXQgb2YgdGhlICI6bWFwIiwgIjpjb21tYW5kIiwgIjpmdW5jdGlvbiIgYW5kCi0iOmF1dG9jbWQiIGNvbW1hbmRzIHdpbGwgc2hvdyB3aGVyZSBpdCB3YXMgbGFzdCBkZWZpbmVkLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKK1doZW4gJ3ZlcmJvc2UnIGlzIHNldCB0aGUgb3V0cHV0IG9mIHRoZSAiOm1hcCIsICI6YWJicmV2aWF0ZSIsICI6Y29tbWFuZCIsCisiOmZ1bmN0aW9uIiBhbmQgIjphdXRvY21kIiBjb21tYW5kcyB3aWxsIHNob3cgd2hlcmUgaXQgd2FzIGxhc3QgZGVmaW5lZC4KKyhZZWdhcHBhbiBMYWtzaG1hbmFuKQogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIElNUFJPVkVNRU5UUwkJCQkJCSppbXByb3ZlbWVudHMtNyoKQEAgLTgxMCw2ICs4MTEsMTAgQEAKIE1vdmVkIHVuaXhfZXhwYW5kcGF0aCgpIHRvIG1pc2MxLmMsIHNvIHRoYXQgaXQgY2FuIGFsc28gYmUgdXNlZCBieSBvc19tYWMuYwogd2l0aG91dCBjb3B5aW5nIHRoZSBjb2RlLgogCitNYWM6IFdoZW4gcnVubmluZyAibWFrZSBpbnN0YWxsIiB0aGUgcnVudGltZSBmaWxlcyBhcmUgaW5zdGFsbGVkIGFzIGZvciBVbml4LgorQXZvaWRzIHRoYXQgdG9vIG1hbnkgZmlsZXMgYXJlIGNvcGllZC4gIFdoZW4gcnVubmluZyAibWFrZSIgYSBsaW5rIHRvIHRoZQorcnVudGltZSBmaWxlcyBpcyBjcmVhdGVkIHRvIGF2b2lkIGEgcmVjdXJzaXZlIGNvcHkgdGhhdCB0YWtlcyBtdWNoIHRpbWUuCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogQlVHIEZJWEVTCQkJCQkJKmJ1Zy1maXhlcy03KgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL2MudmltIGIvcnVudGltZS9mdHBsdWdpbi9jLnZpbQppbmRleCA0N2IyZWM2Li40ODA1NWIwIDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL2MudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vYy52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4gZmlsZQogIiBMYW5ndWFnZToJQwogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNSBKdW4gMjIKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgT25seSBkbyB0aGlzIHdoZW4gbm90IGRvbmUgeWV0IGZvciB0aGlzIGJ1ZmZlcgogaWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCkBAIC0xNSwxMiArMTUsMTcgQEAKIGxldCBzOmNwb19zYXZlID0gJmNwbwogc2V0IGNwby09QwogCi1sZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgZm88IGNvbTwgfCBpZiBoYXMoJ3ZtcycpIHwgc2V0bCBpc2s8IHwgZW5kaWYiCitsZXQgYjp1bmRvX2Z0cGx1Z2luID0gInNldGwgZm88IGNvbTwgb2Z1PCB8IGlmIGhhcygndm1zJykgfCBzZXRsIGlzazwgfCBlbmRpZiIKIAogIiBTZXQgJ2Zvcm1hdG9wdGlvbnMnIHRvIGJyZWFrIGNvbW1lbnQgbGluZXMgYnV0IG5vdCBvdGhlciBsaW5lcywKICIgYW5kIGluc2VydCB0aGUgY29tbWVudCBsZWFkZXIgd2hlbiBoaXR0aW5nIDxDUj4gb3IgdXNpbmcgIm8iLgogc2V0bG9jYWwgZm8tPXQgZm8rPWNyb3FsCiAKKyIgU2V0IGNvbXBsZXRpb24gd2l0aCBDVFJMLVggQ1RSTC1PIHRvIGF1dG9sb2FkZWQgZnVuY3Rpb24uCitpZiBleGlzdHMoJyZvZnUnKQorICBzZXRsb2NhbCBvZnU9Y2NvbXBsZXRlI0NvbXBsZXRlCitlbmRpZgorCiAiIFNldCAnY29tbWVudHMnIHRvIGZvcm1hdCBkYXNoZWQgbGlzdHMgaW4gY29tbWVudHMuCiBzZXRsb2NhbCBjb21tZW50cz1zTzoqXCAtLG1POipcIFwgLGV4TzoqLyxzMTovKixtYjoqLGV4OiovLDovLwogCmRpZmYgLS1naXQgYS9ydW50aW1lL2xhbmcvbWVudV9pdF9pdC5sYXRpbjEudmltIGIvcnVudGltZS9sYW5nL21lbnVfaXRfaXQubGF0aW4xLnZpbQppbmRleCBjOGQ2YmIxLi42NTIyOGUxIDEwMDY0NAotLS0gYS9ydW50aW1lL2xhbmcvbWVudV9pdF9pdC5sYXRpbjEudmltCisrKyBiL3J1bnRpbWUvbGFuZy9tZW51X2l0X2l0LmxhdGluMS52aW0KQEAgLTEsNyArMSw3IEBACiAiIE1lbnUgVHJhbnNsYXRpb25zOglJdGFsaWFuIC8gSXRhbGlhbm8KICIgTWFpbnRhaW5lcjoJCUFudG9uaW8gQ29sb21ibyA8YXpjMTBAeWFob28uY29tPgogIgkJCVZsYWQgU2FuZHJpbmkgPHNhdG9yNzJAbGliZXJvLml0PgotIiBMYXN0IENoYW5nZToJMjAwNSBNYXIgMTYKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgQXVnIDEzCiAKICIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCiBpZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKQEAgLTE1OSw2ICsxNTksMjYgQEAKIG1lbnV0IEp1bXBcICZiYWNrPFRhYj5eVAkJVG9ybmFcICZpbmRpZXRybzxUYWI+XlQKIG1lbnV0IEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ29zdHJ1aXNjaVwgRmlsZVwgJlRhZ3NcCiAKKyIgTWVudSBvcnRvZ3JhZmlhIC8gU3BlbGxpbmcKK21lbnV0ICZTcGVsbGluZwkJCSZPcnRvZ3JhZmlhCisKK21lbnV0ICZTcGVsbFwgQ2hlY2tcIE9uCQkJQXR0aXZhXCAmQ29udHJvbGxvXCBvcnRvZ3JhZmljbworbWVudXQgU3BlbGxcIENoZWNrXCAmT2ZmCQkmRGlzYXR0aXZhXCBjb250cm9sbG9cIG9ydG9ncmFmaWNvCittZW51dCBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJRXJyb3JlXCAmU2VndWVudGU8dGFiPl1zCittZW51dCBUb1wgJlByZXZpb3VzXCBlcnJvcjxUYWI+W3MJRXJyb3JlXCAmUHJlY2VkZW50ZTx0YWI+W3MKK21lbnV0IFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej8JJlN1Z2dlcmltZW50aTxUYWI+ej8KK21lbnV0ICZSZXBlYXRcIGNvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbAkmUmlwZXRpXCBjb3JyZXppb25lPFRhYj46c3BlbGxyZXBhbGwKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iCQlJbXBvc3RhXCBsaW5ndWFcIGFcICJlbiIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fYXUiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX2F1IgorbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fY2EiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2diIglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9nYiIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fbnoiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX256IgorbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fdXMiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgIml0IgkJSW1wb3N0YVwgbGluZ3VhXCBhXCAiaXQiCittZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgIml0X2l0IglJbXBvc3RhXCBsaW5ndWFcIGFcICJpdF9pdCIKK21lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXRfY2giCUltcG9zdGFcIGxpbmd1YVwgYVwgIml0X2NoIgorbWVudXQgJkZpbmRcIE1vcmVcIExhbmd1YWdlcwkJJlRyb3ZhXCBhbHRyZVwgbGluZ3VlCisKICIgTWVudSBwaWVnYXR1cmUgLyBGb2xkCiBpZiBoYXMoImZvbGRpbmciKQogICBtZW51dCAmRm9sZGluZwkJCQkJJlBpZWdhdHVyZQpAQCAtMjEyLDcgKzIzMiw3IEBACiBtZW51dCAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSZDb252ZXJ0aVwgYVwgRXNhZGVjaW1hbGU8VGFiPjolIXh4ZAogbWVudXQgQ29udmUmcnRcIGJhY2s8VGFiPjolIXh4ZFwgLXIJQ29udmUmcnRpXCBkYVwgRXNhZGVjaW1hbGU8VGFiPjolIXh4ZFwgLXIKIAotbWVudXQgJlNldFwgQ29tcGlsZXIJCUltcG8mc3RhXCBDb21waWxhdG9yZQorbWVudXQgJlNlVFwgQ29tcGlsZXIJCUltcG8mc3RhXCBDb21waWxhdG9yZQogCiAiIEJ1ZmZlcnMgLyBCdWZmZXIKIG1lbnV0ICZCdWZmZXJzCQkmQnVmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL29wdHdpbi52aW0gYi9ydW50aW1lL29wdHdpbi52aW0KaW5kZXggMjNjMDM3OS4uN2FhMWUwZiAxMDA2NDQKLS0tIGEvcnVudGltZS9vcHR3aW4udmltCisrKyBiL3J1bnRpbWUvb3B0d2luLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVGhlc2UgY29tbWFuZHMgY3JlYXRlIHRoZSBvcHRpb24gd2luZG93LgogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNSBBdWcgMjkKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgSWYgdGhlcmUgYWxyZWFkeSBpcyBhbiBvcHRpb24gd2luZG93LCBqdW1wIHRvIHRoYXQgb25lLgogaWYgYnVmd2lubnIoIm9wdGlvbi13aW5kb3ciKSA+IDAKQEAgLTcwNCw2ICs3MDQsOSBAQAogICBjYWxsIGFwcGVuZCgiJCIsICJjb21wbGV0ZWZ1bmNcdHVzZXIgZGVmaW5lZCBmdW5jdGlvbiBmb3IgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgIlx0KGxvY2FsIHRvIGJ1ZmZlcikiKQogICBjYWxsIDxTSUQ+T3B0aW9uTCgiY2Z1IikKKyAgY2FsbCBhcHBlbmQoIiQiLCAib2NjdWx0ZnVuY1x0ZnVuY3Rpb24gZm9yIGZpbGV0eXBlLXNwZWNpZmljIEluc2VydCBtb2RlIGNvbXBsZXRpb24iKQorICBjYWxsIGFwcGVuZCgiJCIsICJcdChsb2NhbCB0byBidWZmZXIpIikKKyAgY2FsbCA8U0lEPk9wdGlvbkwoIm9mdSIpCiAgIGNhbGwgYXBwZW5kKCIkIiwgImRpY3Rpb25hcnlcdGxpc3Qgb2YgZGljdGlvbmFyeSBmaWxlcyBmb3Iga2V5d29yZCBjb21wbGV0aW9uIikKICAgY2FsbCBhcHBlbmQoIiQiLCAiXHQoZ2xvYmFsIG9yIGxvY2FsIHRvIGJ1ZmZlcikiKQogICBjYWxsIDxTSUQ+T3B0aW9uRygiZGljdCIsICZkaWN0KQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9jeS9jeV9HQi5kaWZmIGIvcnVudGltZS9zcGVsbC9jeS9jeV9HQi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMWU3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2N5L2N5X0dCLmRpZmYKQEAgLTAsMCArMSw5IEBACisqKiogY3lfR0Iub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMTo0MjowMyAyMDA1CistLS0gY3lfR0IuYWZmCVdlZCBBdWcgMzEgMjE6NDM6MTAgMjAwNQorKioqKioqKioqKioqKioqCisqKiogODEsODIgKioqKgorLS0tIDgxLDg0IC0tLS0KKyAgCisrIE1JRFdPUkQgJy0KKysgCisgIFBGWCBNIFkgMTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3kvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNmNiODQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwCkBAIC0wLDAgKzEsODIgQEAKKyMgQWFwIHJlY2lwZSBmb3IgV2Vsc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBjeV9HQi5hZmYgY3lfR0IuZGljCisKK2FsbDogJFNQRUxMRElSL2N5Lmlzby04ODU5LTE0LnNwbCAkU1BFTExESVIvY3kudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9jeS50eHQKKworJFNQRUxMRElSL2N5Lmlzby04ODU5LTE0LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS0xNCIgCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9jeSBjeV9HQiIgLWMgcQorCiskU1BFTExESVIvY3kudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvY3kgY3lfR0IiIC1jIHEKKworLi4vUkVBRE1FX2N5LnR4dCA6IFJFQURNRV9jeV9HQi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBjeV9HQi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2N5X0dCLmFmZiBjeV9HQi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggY3lfR0IuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGN5X0dCLnppcAorICAgICAgICA6ZGVsZXRlIGN5X0dCLnppcAorICAgICAgICA6c3lzICRWSU0gY3lfR0IuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGN5X0dCLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfY3lfR0IudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3lfR0Iub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGN5X0dCLmFmZiBjeV9HQi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdjeV9HQi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgY3lfR0IuZGljIGN5X0dCLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnY3lfR0IuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8Y3lfR0IuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjeV9HQi5vcmlnLmFmZiBjeV9HQi5hZmYgPmN5X0dCLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBjeV9HQi5vcmlnLmRpYyBjeV9HQi5kaWMgPj5jeV9HQi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBjeV9HQi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2N5X0dCLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY3lfR0Iub3JpZy5hZmYgY3lfR0IuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGN5X0dCLmFmZiAuLi9jeV9HQi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9jeV9HQi5vcmlnLmRpYyBjeV9HQi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgY3lfR0IuZGljIC4uL2N5X0dCLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBjeV9HQi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAKaW5kZXggYjg0YTgwZi4uNjVlMWEyZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL2RhL21haW4uYWFwCkBAIC0zNSw2ICszNSw3IEBACiAgICAgICAgIDpmZXRjaCBkYV9ESy56aXAKICAgICAgICAgOnN5cyAkVU5aSVAgZGFfREsuemlwCiAgICAgICAgIDpkZWxldGUgZGFfREsuemlwCisgICAgICAgIDpkZWxldGUgY29udHJpYnV0b3JzIENPUFlJTkcgTWFrZWZpbGUgZGFfREsuZXhjbHVkZWQKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGFfREsub3JpZy5hZmYnKToKICAgICAgICAgICAgIDpjb3B5IGRhX0RLLmFmZiBkYV9ESy5vcmlnLmFmZgogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdkYV9ESy5vcmlnLmRpYycpOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAppbmRleCAzNjBlMWFlLi4wYmJlNjk5IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmFzY2lpLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKaW5kZXggMDM4MjBkNS4uNGQ2ZjVhZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbCBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCmluZGV4IDEwMTM5MDcuLmQ2MzBhNzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCisrKyBiL3J1bnRpbWUvc3BlbGwvZW4udXRmLTguc3BsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZm8vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZvL21haW4uYWFwCmluZGV4IDk0OGQ0YTQuLmI5YmU1NDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZm8vbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mby9tYWluLmFhcApAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICA6ZmV0Y2ggZm9fRk8uemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGZvX0ZPLnppcAogICAgICAgICA6ZGVsZXRlIGZvX0ZPLnppcAorICAgICAgICA6ZGVsZXRlIGNvbnRyaWJ1dG9ycyBmb19GTy5leGNsdWRlZCBNYWtlZmlsZSBDT1BZSU5HCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2ZvX0ZPLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBmb19GTy5hZmYgZm9fRk8ub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZm9fRk8ub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCmluZGV4IGU3NDI0MzIuLjFiNzBiODMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcApAQCAtMTksOCArMTksOCBAQAogICAgICAgICA6c3lzIGVudiBMQU5HPWZyX0ZSLlVURi04CiAJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2ZyIGZyX0ZSIiAtYyBxCiAKLS4uL1JFQURNRV9mci50eHQgOiBSRUFETUVfZnJfRlIudHh0Ci0gICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorLi4vUkVBRE1FX2ZyLnR4dCA6IFJFQURNRV9mcl9GUi50eHQgbGlzZXotbW9pLnR4dAorICAgICAgICA6Y2F0ICRzb3VyY2UgPiEkdGFyZ2V0CiAKICMKICMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYgYi9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI3Mjg1MwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2EvZ2FfSUUuZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogZ2FfSUUub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNjo0ODo0OSAyMDA1CistLS0gZ2FfSUUuYWZmCVdlZCBBdWcgMzEgMTY6NDk6NDMgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMzcsMzggKioqKgorLS0tIDM3LDU4IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJy0KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgUEZYIFMgWSAxOApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nYS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZ2EvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc0NWRlNQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2EvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBJcmlzaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGdhX0lFLmFmZiBnYV9JRS5kaWMKKworYWxsOiAkU1BFTExESVIvZ2EubGF0aW4xLnNwbCAkU1BFTExESVIvZ2EudXRmLTguc3BsIC4uL1JFQURNRV9nYS50eHQKKworIyBJIGRvbid0IGhhdmUgYW4gSXJpc2ggbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL2dhLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZ2EgZ2FfSUUiIC1jIHEKKworJFNQRUxMRElSL2dhLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2dhIGdhX0lFIiAtYyBxCisKKy4uL1JFQURNRV9nYS50eHQgOiBSRUFETUVfZ2FfSUUudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gZ2FfSUUuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitnYV9JRS5hZmYgZ2FfSUUuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGdhX0lFLnppcAorICAgICAgICA6c3lzICRVTlpJUCBnYV9JRS56aXAKKyAgICAgICAgOmRlbGV0ZSBnYV9JRS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZ2FfSUUub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGdhX0lFLmFmZiBnYV9JRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdnYV9JRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgZ2FfSUUuZGljIGdhX0lFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnZ2FfSUUuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8Z2FfSUUuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBnYV9JRS5vcmlnLmFmZiBnYV9JRS5hZmYgPmdhX0lFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBnYV9JRS5vcmlnLmRpYyBnYV9JRS5kaWMgPj5nYV9JRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBnYV9JRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2dhX0lFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZ2FfSUUub3JpZy5hZmYgZ2FfSUUuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGdhX0lFLmFmZiAuLi9nYV9JRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9nYV9JRS5vcmlnLmRpYyBnYV9JRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgZ2FfSUUuZGljIC4uL2dhX0lFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBnYV9JRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmIGIvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNmJhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2dkL2dkX0dCLmRpZmYKQEAgLTAsMCArMSwyNiBAQAorKioqIGdkX0dCLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6NTA6MDIgMjAwNQorLS0tIGdkX0dCLmFmZglXZWQgQXVnIDMxIDIwOjUwOjQzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwzOSAtLS0tCisgIFRSWSBhaGlucmRlc2NsZ291dG1i4GYt8kFD7FT5QnBHU0RN6ElSUExORUbpTydV88DSzNlIycgKKysgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJy0KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3wpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nZC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk5MmYwMwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBTY290dGlzaCBHYWVsaWMgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBnZF9HQi5hZmYgZ2RfR0IuZGljCisKK2FsbDogJFNQRUxMRElSL2dkLmxhdGluMS5zcGwgJFNQRUxMRElSL2dkLnV0Zi04LnNwbCAuLi9SRUFETUVfZ2QudHh0CisKKyRTUEVMTERJUi9nZC5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9Z2RfR0IuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2dkIGdkX0dCIiAtYyBxCisKKyRTUEVMTERJUi9nZC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1nZF9HQi5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9nZCBnZF9HQiIgLWMgcQorCisuLi9SRUFETUVfZ2QudHh0IDogUkVBRE1FX2dkX0dCLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGdkX0dCLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorZ2RfR0IuYWZmIGdkX0dCLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBnZF9HQi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZ2RfR0IuemlwCisgICAgICAgIDpkZWxldGUgZ2RfR0IuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2dkX0dCLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBnZF9HQi5hZmYgZ2RfR0Iub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZ2RfR0Iub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGdkX0dCLmRpYyBnZF9HQi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2dkX0dCLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGdkX0dCLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2RfR0Iub3JpZy5hZmYgZ2RfR0IuYWZmID5nZF9HQi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2RfR0Iub3JpZy5kaWMgZ2RfR0IuZGljID4+Z2RfR0IuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggZ2RfR0IuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9nZF9HQi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2dkX0dCLm9yaWcuYWZmIGdkX0dCLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBnZF9HQi5hZmYgLi4vZ2RfR0IubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZ2RfR0Iub3JpZy5kaWMgZ2RfR0IuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGdkX0dCLmRpYyAuLi9nZF9HQi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgZ2RfR0IuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwCmluZGV4IDY5OWQ2MWYuLjFiOTk4Y2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9oci9tYWluLmFhcApAQCAtOSw4ICs5LDggQEAKIFNQRUxMRElSID0gLi4KIEZJTEVTICAgID0gaHJfSFIuYWZmIGhyX0hSLmRpYwogCi1hbGw6ICRTUEVMTERJUi9oci5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvcGwudXRmLTguc3BsIFwKLSAgICAgICAgJFNQRUxMRElSL2hyLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3BsLnR4dAorYWxsOiAkU1BFTExESVIvaHIuaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL2hyLnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi9oci5jcDEyNTAuc3BsIC4uL1JFQURNRV9oci50eHQKIAogJFNQRUxMRElSL2hyLmlzby04ODU5LTIuc3BsIDogJEZJTEVTCiAgICAgICAgIDpzeXMgZW52IExBTkc9aHJfSFIuSVNPODg1OS0yICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2hyIGhyX0hSIiAtYyBxCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2lkL2lkX0lELmRpZmYgYi9ydW50aW1lL3NwZWxsL2lkL2lkX0lELmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyNzNhZQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvaWQvaWRfSUQuZGlmZgpAQCAtMCwwICsxLDIyIEBACisqKiogaWRfSUQub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNjo0MToxMSAyMDA1CistLS0gaWRfSUQuYWZmCVdlZCBBdWcgMzEgMTY6NDM6MjkgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMTgsMTkgKioqKgorLS0tIDE4LDI2IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisgIFBGWCBBIFkgMQorKioqIGlkX0lELm9yaWcuZGljCVdlZCBBdWcgMzEgMTY6NDE6MTEgMjAwNQorLS0tIGlkX0lELmRpYwlXZWQgQXVnIDMxIDE2OjQxOjM1IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxNzI5LDIxNzMxICoqKioKKyAgYmVyYWJhcmthbgorLSBidWxldGluCisgIGtlcm51CistLS0gMjE3MjksMjE3MzAgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9pZC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvaWQvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMwNGI1NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvaWQvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBJbmRvbmVzaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gaWRfSUQuYWZmIGlkX0lELmRpYworCithbGw6ICRTUEVMTERJUi9pZC5sYXRpbjEuc3BsICRTUEVMTERJUi9pZC51dGYtOC5zcGwgLi4vUkVBRE1FX2lkLnR4dAorCisjIEkgZG9uJ3QgaGF2ZSBhbiBJbmRvbmVzaWFuIGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KKyRTUEVMTERJUi9pZC5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2lkIGlkX0lEIiAtYyBxCisKKyRTUEVMTERJUi9pZC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pZCBpZF9JRCIgLWMgcQorCisuLi9SRUFETUVfaWQudHh0IDogUkVBRE1FX2lkX0lELnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGlkX0lELnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgoraWRfSUQuYWZmIGlkX0lELmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBpZF9JRC56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgaWRfSUQuemlwCisgICAgICAgIDpkZWxldGUgaWRfSUQuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2lkX0lELm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBpZF9JRC5hZmYgaWRfSUQub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaWRfSUQub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGlkX0lELmRpYyBpZF9JRC5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2lkX0lELmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGlkX0lELmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaWRfSUQub3JpZy5hZmYgaWRfSUQuYWZmID5pZF9JRC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgaWRfSUQub3JpZy5kaWMgaWRfSUQuZGljID4+aWRfSUQuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggaWRfSUQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9pZF9JRC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2lkX0lELm9yaWcuYWZmIGlkX0lELmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBpZF9JRC5hZmYgLi4vaWRfSUQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vaWRfSUQub3JpZy5kaWMgaWRfSUQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGlkX0lELmRpYyAuLi9pZF9JRC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgaWRfSUQuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwCmluZGV4IGVhY2VkNjguLmYxYmQ3NDIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcApAQCAtMTksOCArMTksOCBAQAogICAgICAgICA6c3lzIGVudiBMQU5HPWl0X0lULlVURi04CiAJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2l0IGl0X0lUIiAtYyBxCiAKLS4uL1JFQURNRV9pdC50eHQgOiBSRUFETUVfaXRfSVQudHh0Ci0gICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorLi4vUkVBRE1FX2l0LnR4dCA6IFJFQURNRV9pdF9JVC50eHQgUkVBRE1FLnR4dAorICAgICAgICA6Y2F0ICRzb3VyY2UgPiEgJHRhcmdldAogCiAjCiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgpAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICA6ZmV0Y2ggaXRfSVQuemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGl0X0lULnppcAogICAgICAgICA6ZGVsZXRlIGl0X0lULnppcAorICAgICAgICA6ZGVsZXRlIEdQTC50eHQgaGlzdG9yeS50eHQgbGljZW5zZS50eHQgbm90ZXMudHh0IHN0YXRpc3RpY2hlLnN4YyB0aGFua3MudHh0CiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2l0X0lULm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBpdF9JVC5hZmYgaXRfSVQub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnaXRfSVQub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwva3Uva3VfVFIuZGlmZiBiL3J1bnRpbWUvc3BlbGwva3Uva3VfVFIuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9rdS9rdV9UUi5kaWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2t1L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDBmYjJmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcApAQCAtMCwwICsxLDgyIEBACisjIEFhcCByZWNpcGUgZm9yIEt1cmRpc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBrdV9UUi5hZmYga3VfVFIuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgS3VyZGlzaCBsb2NhbGUsIHVzIHRoZSBUdXJraXNoIG9uZS4KK2FsbDogJFNQRUxMRElSL2t1Lmlzby04ODU5LTkuc3BsICRTUEVMTERJUi9rdS51dGYtOC5zcGwgXAorICAgICAgICAuLi9SRUFETUVfa3UudHh0CisKKyRTUEVMTERJUi9rdS5pc28tODg1OS05LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRyX1RSLklTTzg4NTktOSAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9rdSBrdV9UUiIgLWMgcQorCiskU1BFTExESVIva3UudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dHJfVFIuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIva3Uga3VfVFIiIC1jIHEKKworLi4vUkVBRE1FX2t1LnR4dDogUkVBRE1FX2t1X1RSLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGt1X1RSLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK2t1X1RSLmFmZiBrdV9UUi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2gga3VfVFIuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGt1X1RSLnppcAorICAgICAgICA6ZGVsZXRlIGt1X1RSLnppcAorICAgICAgICA6c3lzICRWSU0ga3VfVFIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGt1X1RSLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfa3VfVFIudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygna3VfVFIub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGt1X1RSLmFmZiBrdV9UUi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdrdV9UUi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkga3VfVFIuZGljIGt1X1RSLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygna3VfVFIuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8a3VfVFIuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBrdV9UUi5vcmlnLmFmZiBrdV9UUi5hZmYgPmt1X1RSLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBrdV9UUi5vcmlnLmRpYyBrdV9UUi5kaWMgPj5rdV9UUi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2gga3VfVFIuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9rdV9UUi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2t1X1RSLm9yaWcuYWZmIGt1X1RSLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBrdV9UUi5hZmYgLi4va3VfVFIubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4va3VfVFIub3JpZy5kaWMga3VfVFIuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGt1X1RSLmRpYyAuLi9rdV9UUi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUga3VfVFIuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbGEvbGEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvbGEvbGEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODdiMDkxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sYS9sYS5kaWZmCkBAIC0wLDAgKzEsMTIgQEAKKyoqKiBsYS5vcmlnLmFmZglXZWQgQXVnIDMxIDE3OjA5OjUwIDIwMDUKKy0tLSBsYS5hZmYJV2VkIEF1ZyAzMSAxNzoxMDo0MiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyLDMgKioqKgorLS0tIDIsOCAtLS0tCisgIFRSWSBlc2lhbnJ0b2xjZHVnbXBoYnlmdmt3CisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKyAgU0ZYIGEgWSAxMjQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbGEvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZjFkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgTGF0aW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBsYS5hZmYgbGEuZGljCisKK2FsbDogJFNQRUxMRElSL2xhLmxhdGluMS5zcGwgJFNQRUxMRElSL2xhLnV0Zi04LnNwbCAuLi9SRUFETUVfbGEudHh0CisKKyRTUEVMTERJUi9sYS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bGFfTE4uSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2xhIGxhIiAtYyBxCisKKyRTUEVMTERJUi9sYS51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9dXRmLTgiCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9sYSBsYSIgLWMgcQorCisuLi9SRUFETUVfbGEudHh0IDogUkVBRE1FX2xhLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGxhLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorbGEuYWZmIGxhLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBsYS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbGEuemlwCisgICAgICAgIDpkZWxldGUgbGEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2xhLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBsYS5hZmYgbGEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbGEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGxhLmRpYyBsYS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2xhLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGxhLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbGEub3JpZy5hZmYgbGEuYWZmID5sYS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbGEub3JpZy5kaWMgbGEuZGljID4+bGEuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbGEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9sYS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2xhLm9yaWcuYWZmIGxhLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsYS5hZmYgLi4vbGEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbGEub3JpZy5kaWMgbGEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGxhLmRpYyAuLi9sYS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbGEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbHQvbHRfTFQuZGlmZiBiL3J1bnRpbWUvc3BlbGwvbHQvbHRfTFQuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sdC9sdF9MVC5kaWZmCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2x0L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9sdC9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmVkYWQyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sdC9tYWluLmFhcApAQCAtMCwwICsxLDc4IEBACisjIEFhcCByZWNpcGUgZm9yIExpdGh1YW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBsdF9MVC5hZmYgbHRfTFQuZGljCisKK2FsbDogJFNQRUxMRElSL2x0Lmlzby04ODU5LTEzLnNwbCAkU1BFTExESVIvbHQudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9sdC50eHQKKworJFNQRUxMRElSL2x0Lmlzby04ODU5LTEzLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULklTTzg4NTktMTMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbHQgbHRfTFQiIC1jIHEKKworJFNQRUxMRElSL2x0LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x0IGx0X0xUIiAtYyBxCisKKy4uL1JFQURNRV9sdC50eHQ6IFJFQURNRV9sdF9MVC50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBsdF9MVC56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitsdF9MVC5hZmYgbHRfTFQuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGx0X0xULnppcAorICAgICAgICA6c3lzICRVTlpJUCBsdF9MVC56aXAKKyAgICAgICAgOmRlbGV0ZSBsdF9MVC56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbHRfTFQub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IGx0X0xULmFmZiBsdF9MVC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdsdF9MVC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbHRfTFQuZGljIGx0X0xULm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbHRfTFQuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bHRfTFQuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBsdF9MVC5vcmlnLmFmZiBsdF9MVC5hZmYgPmx0X0xULmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBsdF9MVC5vcmlnLmRpYyBsdF9MVC5kaWMgPj5sdF9MVC5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbHRfTFQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9sdF9MVC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2x0X0xULm9yaWcuYWZmIGx0X0xULmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsdF9MVC5hZmYgLi4vbHRfTFQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbHRfTFQub3JpZy5kaWMgbHRfTFQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGx0X0xULmRpYyAuLi9sdF9MVC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbHRfTFQuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbHYvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwY2FjZDgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwCkBAIC0wLDAgKzEsODMgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTGF0dmlhbiBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGx2X0xWLmFmZiBsdl9MVi5kaWMKKworIyBJIGRvbid0IGhhdmUgYSBMYXR2aWFuIGxvY2FsZSwgdXNlIExpdGh1YW5pYW4gaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL2x2Lmlzby04ODU5LTEzLnNwbCAkU1BFTExESVIvbHYudXRmLTguc3BsIFwKKyAgICAgICAgIC4uL1JFQURNRV9sdi50eHQKKworJFNQRUxMRElSL2x2Lmlzby04ODU5LTEzLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULklTTzg4NTktMTMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbHYgbHZfTFYiIC1jIHEKKworJFNQRUxMRElSL2x2LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWx0X0xULlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x2IGx2X0xWIiAtYyBxCisKKy4uL1JFQURNRV9sdi50eHQ6IFJFQURNRV9sdl9MVi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBsdl9MVi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitsdl9MVi5hZmYgbHZfTFYuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGx2X0xWLnppcAorICAgICAgICA6c3lzICRVTlpJUCBsdl9MVi56aXAKKyAgICAgICAgOmRlbGV0ZSBsdl9MVi56aXAKKyAgICAgICAgOmRlbGV0ZSBjaGFuZ2Vsb2cudHh0IGdwbC50eHQgbGluLWx2X0xWX2FkZC5zaCB3aW4tbHZfTFZfYWRkLmJhdAorICAgICAgICA6c3lzICRWSU0gbHZfTFYuYWZmIC1lIC1OIC1jICIlcy9cci8vIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbHZfTFYuZGljIC1lIC1OIC1jICIlcy9cci8vIiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2x2X0xWLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2x2X0xWLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBsdl9MVi5hZmYgbHZfTFYub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbHZfTFYub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGx2X0xWLmRpYyBsdl9MVi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2x2X0xWLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGx2X0xWLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHZfTFYub3JpZy5hZmYgbHZfTFYuYWZmID5sdl9MVi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHZfTFYub3JpZy5kaWMgbHZfTFYuZGljID4+bHZfTFYuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGx2X0xWLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbHZfTFYuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9sdl9MVi5vcmlnLmFmZiBsdl9MVi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbHZfTFYuYWZmIC4uL2x2X0xWLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2x2X0xWLm9yaWcuZGljIGx2X0xWLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsdl9MVi5kaWMgLi4vbHZfTFYubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGx2X0xWLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tYWluLmFhcAppbmRleCBmZmIxNmI4Li41YmU0NDU0IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKQEAgLTQsMTAgKzQsMTEgQEAKICMgYWFwICAgICAgICBnZW5lcmF0ZSBhbGwgdGhlIC5zcGwgZmlsZXMKICMgYWFwIGRpZmYgICBjcmVhdGUgYWxsIHRoZSBkaWZmIGZpbGVzCiAKLUxBTkcgPSBhZiBhbSBiZyBjYSBjcyBkYSBkZSBlbCBlbiBlbyBlcyBmciBmbyBnbCBoZSBociBpdCBubCBueSBwbCBydSBzawotICAgICAgIHRoIHlpIGh1CitMQU5HID0gYWYgYW0gYmcgY2EgY3MgY3kgZGEgZGUgZWwgZW4gZW8gZXMgZnIgZm8gZ2EgZ2QgZ2wgaGUgaHIgaWQgaXQga3UKKyAgICAgICBsYSBsdCBsdiBtZyBtaSBtcyBuYiBubCBubiBueSBwbCBwdCBybyBydSBydyBzayBzbCBzdiBzdworICAgICAgIHRldCB0aCB0bCB0biB1ayB5aSB6dSBodQogCi0jICJodSIgaXMgYXQgdGhlIGVuZCwgYmVjYXVzZSBpdCB0YWtlcyB2ZXJ5IGxvbmcuCisjICJodSIgaXMgYXQgdGhlIGVuZCwgYmVjYXVzZSBpdCB0YWtlcyBhIHZlcnkgbG9uZyB0aW1lLgogIwogIyBUT0RPOgogIyBGaW5uaXNoIGRvZXNuJ3Qgd29yaywgdGhlIGRpY3Rpb25hcnkgZmlfRkkuemlwIGZpbGUgY29udGFpbnMgaHlwaGVuYXRpb24uLi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWcvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21nL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ODYwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21nL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTWFsYWdhc3kgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBtZ19NRy5hZmYgbWdfTUcuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgTWFsYWdhc3kgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvbWcubGF0aW4xLnNwbCAkU1BFTExESVIvbWcudXRmLTguc3BsIC4uL1JFQURNRV9tZy50eHQKKworJFNQRUxMRElSL21nLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbWcgbWdfTUciIC1jIHEKKworJFNQRUxMRElSL21nLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21nIG1nX01HIiAtYyBxCisKKy4uL1JFQURNRV9tZy50eHQgOiBSRUFETUVfbWdfTUcudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbWdfTUcuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCittZ19NRy5hZmYgbWdfTUcuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG1nX01HLnppcAorICAgICAgICA6c3lzICRVTlpJUCBtZ19NRy56aXAKKyAgICAgICAgOmRlbGV0ZSBtZ19NRy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWdfTUcub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG1nX01HLmFmZiBtZ19NRy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtZ19NRy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbWdfTUcuZGljIG1nX01HLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbWdfTUcuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bWdfTUcuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtZ19NRy5vcmlnLmFmZiBtZ19NRy5hZmYgPm1nX01HLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtZ19NRy5vcmlnLmRpYyBtZ19NRy5kaWMgPj5tZ19NRy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBtZ19NRy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL21nX01HLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWdfTUcub3JpZy5hZmYgbWdfTUcuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1nX01HLmFmZiAuLi9tZ19NRy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9tZ19NRy5vcmlnLmRpYyBtZ19NRy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbWdfTUcuZGljIC4uL21nX01HLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBtZ19NRy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tZy9tZ19NRy5kaWZmIGIvcnVudGltZS9zcGVsbC9tZy9tZ19NRy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyMTQ5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21nL21nX01HLmRpZmYKQEAgLTAsMCArMSwyNiBAQAorKioqIG1nX01HLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTc6NTg6NTkgMjAwNQorLS0tIG1nX01HLmFmZglXZWQgQXVnIDMxIDE4OjAwOjQyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwzOSAtLS0tCisgIFRSWSBhbnlpb3RybWVoc2ZrZHpsJ3ZwYmctQU1qTlRGSVJISlNL4FZERUxQQkdaT/TyCisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWkvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21pL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYTY3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21pL21haW4uYWFwCkBAIC0wLDAgKzEsODAgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTWFvcmkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBtaV9OWi5hZmYgbWlfTlouZGljCisKK2FsbDogJFNQRUxMRElSL21pLmxhdGluMS5zcGwgJFNQRUxMRElSL21pLnV0Zi04LnNwbCAuLi9SRUFETUVfbWkudHh0CisKKyRTUEVMTERJUi9taS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWlzby04ODU5LTQiCisgICAgICAgICAgICAgICAgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9taSBtaV9OWiIgLWMgcQorCiskU1BFTExESVIvbWkudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbWkgbWlfTloiIC1jIHEKKworLi4vUkVBRE1FX21pLnR4dCA6IFJFQURNRV9taV9OWi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBtaV9OWi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK21pX05aLmFmZiBtaV9OWi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbWlfTlouemlwCisgICAgICAgIDpzeXMgJFVOWklQIG1pX05aLnppcAorICAgICAgICA6ZGVsZXRlIG1pX05aLnppcAorICAgICAgICAjIEZpeCBtaXNzaW5nIGVuZCBvZiBsaW5lLgorICAgICAgICA6cHJpbnQgPj5taV9OWi5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWlfTloub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG1pX05aLmFmZiBtaV9OWi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtaV9OWi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbWlfTlouZGljIG1pX05aLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbWlfTlouZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bWlfTlouZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtaV9OWi5vcmlnLmFmZiBtaV9OWi5hZmYgPm1pX05aLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtaV9OWi5vcmlnLmRpYyBtaV9OWi5kaWMgPj5taV9OWi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBtaV9OWi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL21pX05aLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWlfTloub3JpZy5hZmYgbWlfTlouYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1pX05aLmFmZiAuLi9taV9OWi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9taV9OWi5vcmlnLmRpYyBtaV9OWi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbWlfTlouZGljIC4uL21pX05aLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBtaV9OWi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9taS9taV9OWi5kaWZmIGIvcnVudGltZS9zcGVsbC9taS9taV9OWi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1YWNlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21pL21pX05aLmRpZmYKQEAgLTAsMCArMSwxMCBAQAorKioqIG1pX05aLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6MjI6MDMgMjAwNQorLS0tIG1pX05aLmFmZglXZWQgQXVnIDMxIDE4OjIxOjU2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsMyAqKioqCistLS0gMiw2IC0tLS0KKyAgVFJZIGHgaWt0dXJvaGW67/L+bnBnd21BwElLVFVST0hFqs/S3k5QR1dNCisrIAorKyBNSURXT1JEIC0KKysgCisgIFJFUCAzMApkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tcy9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcxNmIzYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAKQEAgLTAsMCArMSw4MSBAQAorIyBBYXAgcmVjaXBlIGZvciBNYWxheSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG1zX01ZLmFmZiBtc19NWS5kaWMKKworIyBJIGRvIG5vdCBoYXZlIGEgTWFsYXkgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvbXMubGF0aW4xLnNwbCAkU1BFTExESVIvbXMudXRmLTguc3BsIC4uL1JFQURNRV9tcy50eHQKKworJFNQRUxMRElSL21zLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbXMgbXNfTVkiIC1jIHEKKworJFNQRUxMRElSL21zLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21zIG1zX01ZIiAtYyBxCisKKy4uL1JFQURNRV9tcy50eHQgOiBSRUFETUVfbXNfTVkudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbXNfTVkuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCittc19NWS5hZmYgbXNfTVkuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG1zX01ZLnppcAorICAgICAgICA6c3lzICRVTlpJUCBtc19NWS56aXAKKyAgICAgICAgOmRlbGV0ZSBtc19NWS56aXAKKyAgICAgICAgOnN5cyAkVklNIG1zX01ZLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBtc19NWS5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtc19NWS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbXNfTVkuYWZmIG1zX01ZLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ21zX01ZLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBtc19NWS5kaWMgbXNfTVkub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdtc19NWS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxtc19NWS5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG1zX01ZLm9yaWcuYWZmIG1zX01ZLmFmZiA+bXNfTVkuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG1zX01ZLm9yaWcuZGljIG1zX01ZLmRpYyA+Pm1zX01ZLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIG1zX01ZLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbXNfTVkuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9tc19NWS5vcmlnLmFmZiBtc19NWS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbXNfTVkuYWZmIC4uL21zX01ZLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL21zX01ZLm9yaWcuZGljIG1zX01ZLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBtc19NWS5kaWMgLi4vbXNfTVkubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIG1zX01ZLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21zL21zX01ZLmRpZmYgYi9ydW50aW1lL3NwZWxsL21zL21zX01ZLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJkZTU5NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbXMvbXNfTVkuZGlmZgpAQCAtMCwwICsxLDI0IEBACisqKiogbXNfTVkub3JpZy5hZmYJV2VkIEF1ZyAzMSAxODowOTo1OCAyMDA1CistLS0gbXNfTVkuYWZmCVdlZCBBdWcgMzEgMTg6MTI6NTEgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMjUsMjYgKioqKgorLS0tIDI1LDM1IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQgLQorKyAKKyAgUEZYIEIgWSAyIAorKioqIG1zX01ZLm9yaWcuZGljCVdlZCBBdWcgMzEgMTg6MDk6NTggMjAwNQorLS0tIG1zX01ZLmRpYwlXZWQgQXVnIDMxIDE4OjEyOjQ4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDQ5MzksNDk0MSAqKioqCisgIGRhdGluCistIERhdG/igJkKKyAgZGF0dWsvYgorLS0tIDQ5MzksNDk0MCAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL25iL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzgwNWVhCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcApAQCAtMCwwICsxLDc4IEBACisjIEFhcCByZWNpcGUgZm9yIER1dGNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbmJfTk8uYWZmIG5iX05PLmRpYworCithbGw6ICRTUEVMTERJUi9uYi5sYXRpbjEuc3BsICRTUEVMTERJUi9uYi51dGYtOC5zcGwgLi4vUkVBRE1FX25iLnR4dAorCiskU1BFTExESVIvbmIubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5vX05PLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9uYiBuYl9OTyIgLWMgcQorCiskU1BFTExESVIvbmIudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbmIgbmJfTk8iIC1jIHEKKworLi4vUkVBRE1FX25iLnR4dCA6IFJFQURNRV9uYl9OTy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBuYl9OTy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK25iX05PLmFmZiBuYl9OTy5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbmJfTk8uemlwCisgICAgICAgIDpzeXMgJFVOWklQIG5iX05PLnppcAorICAgICAgICA6ZGVsZXRlIG5iX05PLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCduYl9OTy5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbmJfTk8uYWZmIG5iX05PLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ25iX05PLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBuYl9OTy5kaWMgbmJfTk8ub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCduYl9OTy5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxuYl9OTy5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG5iX05PLm9yaWcuYWZmIG5iX05PLmFmZiA+bmJfTk8uZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIG5iX05PLm9yaWcuZGljIG5iX05PLmRpYyA+Pm5iX05PLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIG5iX05PLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbmJfTk8uemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9uYl9OTy5vcmlnLmFmZiBuYl9OTy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbmJfTk8uYWZmIC4uL25iX05PLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL25iX05PLm9yaWcuZGljIG5iX05PLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBuYl9OTy5kaWMgLi4vbmJfTk8ubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIG5iX05PLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL25iL25iX05PLmRpZmYgYi9ydW50aW1lL3NwZWxsL25iL25iX05PLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzUxZWI1YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbmIvbmJfTk8uZGlmZgpAQCAtMCwwICsxLDYzIEBACisqKiogbmJfTk8ub3JpZy5hZmYJV2VkIEF1ZyAzMSAxODoyOTo0MyAyMDA1CistLS0gbmJfTk8uYWZmCVdlZCBBdWcgMzEgMTg6MzU6MDkgMjAwNQorKioqKioqKioqKioqKioqCisqKiogNyw4ICoqKioKKy0tLSA3LDI2IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgUEZYIGEgWSAxCisqKiogbmJfTk8ub3JpZy5kaWMJV2VkIEF1ZyAzMSAxODoyOTo0MyAyMDA1CistLS0gbmJfTk8uZGljCVdlZCBBdWcgMzEgMTg6Mzg6MDIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMiw0ICoqKioKKyAgYS5hCistIGEuYQorICBhLmEuQworLS0tIDIsMyAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAxNTA1NCwxNTA1NiAqKioqCisgIGNhbmQKKy0gY2FuZC8KKyAgY2FuZC5hY3QKKy0tLSAxNTA1MywxNTA1NCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODUzMiwyODUzNCAqKioqCisgIGYuby5yCistIGb0cgorICBmb3JhL0cKKy0tLSAyODUzMCwyODUzMSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiAyODk4MCwyODk4MiAqKioqCisgIGZvcmT4eWVsc2Vzc3lzdGVtL0JDRUZHSAorLSBm9HJlCisgIGb0cmUvQkVKdHoKKy0tLSAyODk3NywyODk3OCAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA0MzUzMiw0MzUzNCAqKioqCisgIElkYXIvSgorLSBpZOkKKyAgaWTpL0FFRkdIW3oKKy0tLSA0MzUyOCw0MzUyOSAtLS0tCisqKioqKioqKioqKioqKioKKyoqKiA1NzQ5MCw1NzQ5MiAqKioqCisgIExhbWJlcnRzZXRlci9KCistIGxhbekKKyAgbGFt6S9BCistLS0gNTc0ODUsNTc0ODYgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ubi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE3MWIyMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBEdXRjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG5uX05PLmFmZiBubl9OTy5kaWMKKworYWxsOiAkU1BFTExESVIvbm4ubGF0aW4xLnNwbCAkU1BFTExESVIvbm4udXRmLTguc3BsIC4uL1JFQURNRV9ubi50eHQKKworJFNQRUxMRElSL25uLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ub19OTy5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbm4gbm5fTk8iIC1jIHEKKworJFNQRUxMRElSL25uLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5vX05PLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25uIG5uX05PIiAtYyBxCisKKy4uL1JFQURNRV9ubi50eHQgOiBSRUFETUVfbm5fTk8udHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbm5fTk8uemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitubl9OTy5hZmYgbm5fTk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG5uX05PLnppcAorICAgICAgICA6c3lzICRVTlpJUCBubl9OTy56aXAKKyAgICAgICAgOmRlbGV0ZSBubl9OTy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbm5fTk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG5uX05PLmFmZiBubl9OTy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdubl9OTy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbm5fTk8uZGljIG5uX05PLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbm5fTk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bm5fTk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBubl9OTy5vcmlnLmFmZiBubl9OTy5hZmYgPm5uX05PLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBubl9OTy5vcmlnLmRpYyBubl9OTy5kaWMgPj5ubl9OTy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBubl9OTy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL25uX05PLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbm5fTk8ub3JpZy5hZmYgbm5fTk8uYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG5uX05PLmFmZiAuLi9ubl9OTy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9ubl9OTy5vcmlnLmRpYyBubl9OTy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbm5fTk8uZGljIC4uL25uX05PLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBubl9OTy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ubi9ubl9OTy5kaWZmIGIvcnVudGltZS9zcGVsbC9ubi9ubl9OTy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZTM1ODEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL25uL25uX05PLmRpZmYKQEAgLTAsMCArMSwyNSBAQAorKioqIG5uX05PLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6NDA6MjYgMjAwNQorLS0tIG5uX05PLmFmZglXZWQgQXVnIDMxIDE4OjQyOjAwIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDcsOCAqKioqCistLS0gNywyNiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFBGWCBhIFkgMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFjNjg5YgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAKQEAgLTAsMCArMSwxMjMgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUG9ydHVndWVzZSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHB0X1BULmFmZiBwdF9QVC5kaWMKKwkgICBwdF9CUi5hZmYgcHRfQlIuZGljCisKK2FsbDogJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgJFNQRUxMRElSL3B0LnV0Zi04LnNwbCBcCisgICAgICAgIC4uL1JFQURNRV9wdC50eHQKKworJFNQRUxMRElSL3B0LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcHQgcHRfUFQgcHRfQlIiIC1jIHEKKworJFNQRUxMRElSL3B0LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXB0X1BULlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3B0IHB0X1BUIHB0X0JSIiAtYyBxCisKKy4uL1JFQURNRV9wdC50eHQ6IFJFQURNRV9wdF9QVC50eHQgUkVBRE1FX3B0X0JSLnR4dAorICAgICAgICA6cHJpbnQgcHRfUFQgPiEkdGFyZ2V0CisgICAgICAgIDpjYXQgUkVBRE1FX3B0X1BULnR4dCB8IDpldmFsIHJlLnN1YignXHInLCAnJywgc3RkaW4pID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID4+JHRhcmdldAorICAgICAgICA6cHJpbnQgcHRfQlI6ID4+JHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9wdF9CUi50eHQgfCA6ZXZhbCByZS5zdWIoJ1xyJywgJycsIHN0ZGluKSA+PiR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHB0X1BULnppcCBwdF9CUi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3B0X1BULmFmZiBwdF9QVC5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggcHRfUFQuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHB0X1BULnppcAorICAgICAgICA6ZGVsZXRlIHB0X1BULnppcAorICAgICAgICA6c3lzICRWSU0gcHRfUFQuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIFJFQURNRV9wdF9QVC50eHQgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9QVC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgcHRfUFQuYWZmIHB0X1BULm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X1BULm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBwdF9QVC5kaWMgcHRfUFQub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdwdF9QVC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxwdF9QVC5kaWZmCisKK3B0X0JSLmFmZiBwdF9CUi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggcHRfQlIuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHB0X0JSLnppcAorICAgICAgICA6ZGVsZXRlIHB0X0JSLnppcAorICAgICAgICA6c3lzICRWSU0gcHRfQlIuYWZmIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIHB0X0JSLmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfcHRfQlIudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfQlIub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHB0X0JSLmFmZiBwdF9CUi5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9CUi5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcHRfQlIuZGljIHB0X0JSLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncHRfQlIuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cHRfQlIuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9QVC5vcmlnLmFmZiBwdF9QVC5hZmYgPnB0X1BULmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9QVC5vcmlnLmRpYyBwdF9QVC5kaWMgPj5wdF9QVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcHRfQlIub3JpZy5hZmYgcHRfQlIuYWZmID5wdF9CUi5kaWZmCisJOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBwdF9CUi5vcmlnLmRpYyBwdF9CUi5kaWMgPj5wdF9CUi5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazogY2hlY2stdXMgY2hlY2stYXUKKworY2hlY2stdXM6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcHRfUFQuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9wdF9QVC56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3B0X1BULm9yaWcuYWZmIHB0X1BULmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBwdF9QVC5hZmYgLi4vcHRfUFQubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcHRfUFQub3JpZy5kaWMgcHRfUFQuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHB0X1BULmRpYyAuLi9wdF9QVC5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcHRfUFQuemlwCisKK2NoZWNrLWF1OgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHB0X0JSLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vcHRfQlIuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9wdF9CUi5vcmlnLmFmZiBwdF9CUi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcHRfQlIuYWZmIC4uL3B0X0JSLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3B0X0JSLm9yaWcuZGljIHB0X0JSLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBwdF9CUi5kaWMgLi4vcHRfQlIubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHB0X0JSLnppcAorCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmIGIvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYjFkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3B0L3B0X0JSLmRpZmYKQEAgLTAsMCArMSw0NiBAQAorKioqIHB0X0JSLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6MDU6MTggMjAwNQorLS0tIHB0X0JSLmFmZglXZWQgQXVnIDMxIDIwOjA1OjE4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMywyMiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgICMgUGx1cmFsIGFwZW5hcworKioqKioqKioqKioqKioqCisqKiogNTI2LDUzNCAqKioqCisgIFNGWCBJICAgYXIgICAgICDqcyAgICAgICBkYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpYSAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpYW0gICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaWFzICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWllICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWllbSAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZXMgICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaW8gICAgICAgW15daWFyCisgIFNGWCBJICAgb2lhciAgICDzaWEgICAgICAgb2lhcgorLS0tIDU0NCw1NTIgLS0tLQorICBTRlggSSAgIGFyICAgICAg6nMgICAgICAgZGFyCishIFNGWCBJICAgaWFyICAgICBlaWEgICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlhbSAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWFzICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZSAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWVtICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZXMgICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlvICAgICAgIFteb11pYXIKKyAgU0ZYIEkgICBvaWFyICAgIPNpYSAgICAgICBvaWFyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3B0L3B0X1BULmRpZmYgYi9ydW50aW1lL3NwZWxsL3B0L3B0X1BULmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUzYTJkMgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvcHQvcHRfUFQuZGlmZgpAQCAtMCwwICsxLDI3IEBACisqKiogcHRfUFQub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDowNToxNiAyMDA1CistLS0gcHRfUFQuYWZmCVdlZCBBdWcgMzEgMjA6MDU6MTYgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDI0IC0tLS0KKyAgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KKysgCisrIE1JRFdPUkQJJworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICBQRlggQSBZIDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwN2UyNzEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgUm9tYW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSByb19STy5hZmYgcm9fUk8uZGljCisKK2FsbDogJFNQRUxMRElSL3JvLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9yby51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvcm8uY3AxMjUwLnNwbCAuLi9SRUFETUVfcm8udHh0CisKKyRTUEVMTERJUi9yby5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ybyByb19STyIgLWMgcQorCiskU1BFTExESVIvcm8udXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cm9fUk8uVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcm8gcm9fUk8iIC1jIHEKKworJFNQRUxMRElSL3JvLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3JvIHJvX1JPIiAtYyBxCisKKy4uL1JFQURNRV9yby50eHQ6IFJFQURNRV9yb19STy50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSByb19STy56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCityb19STy5hZmYgcm9fUk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHJvX1JPLnppcAorICAgICAgICA6c3lzICRVTlpJUCByb19STy56aXAKKyAgICAgICAgOmRlbGV0ZSByb19STy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncm9fUk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHJvX1JPLmFmZiByb19STy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdyb19STy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcm9fUk8uZGljIHJvX1JPLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncm9fUk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cm9fUk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmFmZiByb19STy5hZmYgPnJvX1JPLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByb19STy5vcmlnLmRpYyByb19STy5kaWMgPj5yb19STy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcm9fUk8uemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9yb19STy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3JvX1JPLm9yaWcuYWZmIHJvX1JPLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSByb19STy5hZmYgLi4vcm9fUk8ubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcm9fUk8ub3JpZy5kaWMgcm9fUk8uZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJvX1JPLmRpYyAuLi9yb19STy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcm9fUk8uemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZiBiL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDc3MDMwCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9yby9yb19STy5kaWZmCkBAIC0wLDAgKzEsNDIgQEAKKyoqKiByb19STy5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjM0OjM4IDIwMDUKKy0tLSByb19STy5hZmYJV2VkIEF1ZyAzMSAyMDozOTo1NyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsOCAtLS0tCisgIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKyAgUEZYIEUgWSAxCisqKioqKioqKioqKioqKioKKyoqKiAxMiwxNSAqKioqCisgIFNGWCBMICAgMCAgICAgICAgICBsICAgICAgICAgIHUKKyEgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgW15jZ10gaQorISBTRlggTCAgIDAgICAgICAgICAgaSAgICAgICAgICBbY2ddIGkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorLS0tIDE2LDE5IC0tLS0KKyAgU0ZYIEwgICAwICAgICAgICAgIGwgICAgICAgICAgdQorISBTRlggTCAgIDAgICAgICAgICAgbGUgICAgICAgICBbXmNnXWkKKyEgU0ZYIEwgICAwICAgICAgICAgIGkgICAgICAgICAgW2NnXWkKKyAgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgZQorKioqKioqKioqKioqKioqCisqKiogMTgsMjAgKioqKgorICBTRlggVSAgIDAgICAgICAgICAgYSAgICAgICAgICByZQorISBTRlggVSAgIDAgICAgICAgICAgaSAgICAgICAgICBbXmldIGlpCisgIAorLS0tIDIyLDI0IC0tLS0KKyAgU0ZYIFUgICAwICAgICAgICAgIGEgICAgICAgICAgcmUKKyEgU0ZYIFUgICAwICAgICAgICAgIGkgICAgICAgICAgW15pXWlpCisgIAorKioqKioqKioqKioqKioqCisqKiogMzgsNDEgKioqKgorICBTRlggSSAgIDAgICAgICAgICAgdWx1aSAgICAgICBbXnVhXQorISBTRlggSSAgIGEgICAgICAgICAgaWkgICAgICAgICBbZ2NdIGEKKyEgU0ZYIEkgICBhICAgICAgICAgIGVpICAgICAgICAgW15jZ10gYQorICAKKy0tLSA0Miw0NSAtLS0tCisgIFNGWCBJICAgMCAgICAgICAgICB1bHVpICAgICAgIFtedWFdCishIFNGWCBJICAgYSAgICAgICAgICBpaSAgICAgICAgIFtnY11hCishIFNGWCBJICAgYSAgICAgICAgICBlaSAgICAgICAgIFteY2ddYQorICAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcncvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3J3L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZGE5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3J3L21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgS2lueWFyd2FuZGEgKFJ3YW5kYSkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSByd19SVy5hZmYgcndfUlcuZGljCisKK2FsbDogJFNQRUxMRElSL3J3LmxhdGluMS5zcGwgJFNQRUxMRElSL3J3LnV0Zi04LnNwbCAuLi9SRUFETUVfcncudHh0CisKKyMgSSBkb24ndCBoYXZlIGEgS2lueWFyd2FuZGEgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL3J3LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcncgcndfUlciIC1jIHEKKworJFNQRUxMRElSL3J3LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3J3IHJ3X1JXIiAtYyBxCisKKy4uL1JFQURNRV9ydy50eHQgOiBSRUFETUVfcndfUlcudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gcndfUlcuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCityd19SVy5hZmYgcndfUlcuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHJ3X1JXLnppcAorICAgICAgICA6c3lzICRVTlpJUCByd19SVy56aXAKKyAgICAgICAgOmRlbGV0ZSByd19SVy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncndfUlcub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmFmZiByd19SVy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdyd19SVy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcndfUlcuZGljIHJ3X1JXLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncndfUlcuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cndfUlcuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByd19SVy5vcmlnLmFmZiByd19SVy5hZmYgPnJ3X1JXLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSByd19SVy5vcmlnLmRpYyByd19SVy5kaWMgPj5yd19SVy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCByd19SVy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3J3X1JXLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcndfUlcub3JpZy5hZmYgcndfUlcuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmFmZiAuLi9yd19SVy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9yd19SVy5vcmlnLmRpYyByd19SVy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcndfUlcuZGljIC4uL3J3X1JXLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSByd19SVy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9ydy9yd19SVy5kaWZmIGIvcnVudGltZS9zcGVsbC9ydy9yd19SVy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZTM3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3J3L3J3X1JXLmRpZmYKQEAgLTAsMCArMSwxMyBAQAorKioqIHJ3X1JXLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NTM6MDggMjAwNQorLS0tIHJ3X1JXLmFmZglXZWQgQXVnIDMxIDE2OjUzOjQ2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwyNiAtLS0tCisgIFRSWSBhaXVlbm9yYmtteWd3dGhzemQnY0lBaktVdmZOTXBsQkdZUlBUSFNEV0NPWkVMVi1KRgorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zbC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc2wvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGIxNDJiYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc2wvbWFpbi5hYXAKQEAgLTAsMCArMSw4MSBAQAorIyBBYXAgcmVjaXBlIGZvciBTbG92ZW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBzbF9TSS5hZmYgc2xfU0kuZGljCisKK2FsbDogJFNQRUxMRElSL3NsLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9zbC51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvc2wuY3AxMjUwLnNwbCAuLi9SRUFETUVfc2wudHh0CisKKyRTUEVMTERJUi9zbC5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXNsX1NJLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zbCBzbF9TSSIgLWMgcQorCiskU1BFTExESVIvc2wudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c2xfU0kuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc2wgc2xfU0kiIC1jIHEKKworJFNQRUxMRElSL3NsLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NsIHNsX1NJIiAtYyBxCisKKy4uL1JFQURNRV9zbC50eHQ6IFJFQURNRV9zbF9TSS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBzbF9TSS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitzbF9TSS5hZmYgc2xfU0kuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHNsX1NJLnppcAorICAgICAgICA6c3lzICRVTlpJUCBzbF9TSS56aXAKKyAgICAgICAgOmRlbGV0ZSBzbF9TSS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc2xfU0kub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHNsX1NJLmFmZiBzbF9TSS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzbF9TSS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc2xfU0kuZGljIHNsX1NJLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc2xfU0kuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c2xfU0kuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzbF9TSS5vcmlnLmFmZiBzbF9TSS5hZmYgPnNsX1NJLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzbF9TSS5vcmlnLmRpYyBzbF9TSS5kaWMgPj5zbF9TSS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggc2xfU0kuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9zbF9TSS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3NsX1NJLm9yaWcuYWZmIHNsX1NJLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBzbF9TSS5hZmYgLi4vc2xfU0kubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc2xfU0kub3JpZy5kaWMgc2xfU0kuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHNsX1NJLmRpYyAuLi9zbF9TSS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgc2xfU0kuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc2wvc2xfU0kuZGlmZiBiL3J1bnRpbWUvc3BlbGwvc2wvc2xfU0kuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2EzMTBiCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zbC9zbF9TSS5kaWZmCkBAIC0wLDAgKzEsMTEgQEAKKyoqKiBzbF9TSS5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjU0OjQ4IDIwMDUKKy0tLSBzbF9TSS5hZmYJV2VkIEF1ZyAzMSAyMDo1NTozNyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsOCAtLS0tCisgIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/worKyAKKyAgUEZYIEIgWSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3N2L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzQ1ZmNmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIFN3ZWRpc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBzdl9TRS5hZmYgc3ZfU0UuZGljCisKK2FsbDogJFNQRUxMRElSL3N2LmxhdGluMS5zcGwgJFNQRUxMRElSL3N2LnV0Zi04LnNwbCAuLi9SRUFETUVfc3YudHh0CisKKyRTUEVMTERJUi9zdi5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3N2IHN2X1NFIiAtYyBxCisKKyRTUEVMTERJUi9zdi51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1zdl9TRS5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zdiBzdl9TRSIgLWMgcQorCisuLi9SRUFETUVfc3YudHh0IDogUkVBRE1FX3N2X1NFLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHN2X1NFLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0Lgorc3ZfU0UuYWZmIHN2X1NFLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBzdl9TRS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgc3ZfU0UuemlwCisgICAgICAgIDpkZWxldGUgc3ZfU0UuemlwCisgICAgICAgIDpkZWxldGUgaHlwaF9zdl9TRS5kaWMKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3ZfU0Uub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHN2X1NFLmFmZiBzdl9TRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzdl9TRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc3ZfU0UuZGljIHN2X1NFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc3ZfU0UuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c3ZfU0UuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzdl9TRS5vcmlnLmFmZiBzdl9TRS5hZmYgPnN2X1NFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzdl9TRS5vcmlnLmRpYyBzdl9TRS5kaWMgPj5zdl9TRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBzdl9TRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3N2X1NFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3ZfU0Uub3JpZy5hZmYgc3ZfU0UuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN2X1NFLmFmZiAuLi9zdl9TRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9zdl9TRS5vcmlnLmRpYyBzdl9TRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc3ZfU0UuZGljIC4uL3N2X1NFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBzdl9TRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1OWIyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3N2L3N2X1NFLmRpZmYKQEAgLTAsMCArMSw0MCBAQAorKioqIHN2X1NFLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6MDA6MTkgMjAwNQorLS0tIHN2X1NFLmFmZglXZWQgQXVnIDMxIDIxOjAyOjUzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDYsNyAqKioqCistLS0gNiwyNSAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFNGWCAgQSAgWSAgMQorKioqKioqKioqKioqKioqCisqKiogMTUsMTcgKioqKgorICAKKyEgU0ZYICBDICBZICAxNgorICBTRlggIEMgIDAgIHQgIFthZWlvdXnl5PbpXQorLS0tIDMzLDM1IC0tLS0KKyAgCishIFNGWCAgQyAgWSAgMTUKKyAgU0ZYICBDICAwICB0ICBbYWVpb3V55eT26V0KKyoqKioqKioqKioqKioqKgorKioqIDMwLDMyICoqKioKKyAgU0ZYICBDICBlbiBuZXRzIGVuCistIFNGWCAgQyAgMCAgbmV0ICBuZXRzIFteZV1uCisgIFNGWCAgQyAgMCAgbmV0cyAgW15lXW4KKy0tLSA0OCw0OSAtLS0tCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3N3L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9zdy9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjQ3NTg1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdy9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIEtpc3dhaGlsaSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHN3X0tFLmFmZiBzd19LRS5kaWMKKworYWxsOiAkU1BFTExESVIvc3cubGF0aW4xLnNwbCAkU1BFTExESVIvc3cudXRmLTguc3BsIC4uL1JFQURNRV9zdy50eHQKKworIyBJIGRvbid0IGhhdmUgYSBLaXN3YWhpbGkgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorJFNQRUxMRElSL3N3LmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc3cgc3dfS0UiIC1jIHEKKworJFNQRUxMRElSL3N3LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3N3IHN3X0tFIiAtYyBxCisKKy4uL1JFQURNRV9zdy50eHQgOiBSRUFETUVfc3dfS0UudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gc3dfS0UuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitzd19LRS5hZmYgc3dfS0UuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHN3X0tFLnppcAorICAgICAgICA6c3lzICRVTlpJUCBzd19LRS56aXAKKyAgICAgICAgOmRlbGV0ZSBzd19LRS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3dfS0Uub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHN3X0tFLmFmZiBzd19LRS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdzd19LRS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgc3dfS0UuZGljIHN3X0tFLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnc3dfS0UuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8c3dfS0UuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzd19LRS5vcmlnLmFmZiBzd19LRS5hZmYgPnN3X0tFLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBzd19LRS5vcmlnLmRpYyBzd19LRS5kaWMgPj5zd19LRS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBzd19LRS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3N3X0tFLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3dfS0Uub3JpZy5hZmYgc3dfS0UuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN3X0tFLmFmZiAuLi9zd19LRS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9zd19LRS5vcmlnLmRpYyBzd19LRS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc3dfS0UuZGljIC4uL3N3X0tFLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBzd19LRS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdy9zd19LRS5kaWZmIGIvcnVudGltZS9zcGVsbC9zdy9zd19LRS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwODRkYjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3N3L3N3X0tFLmRpZmYKQEAgLTAsMCArMSwxMyBAQAorKioqIHN3X0tFLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NTc6MDAgMjAwNQorLS0tIHN3X0tFLmFmZglXZWQgQXVnIDMxIDE2OjU3OjI4IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxICoqKioKKy0tLSAyMSwyOCAtLS0tCisgIFRSWSBhaXVua2Vtb2h3dGxzZ3lienBkcmZqY3YnS01TQVdUTEJORVlEVUdIUEZJUk9aSkMtVgorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC90bC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvdGwvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE0NWU0YQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdGwvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBUYWdhbG9nIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gdGxfUEguYWZmIHRsX1BILmRpYworCithbGw6ICRTUEVMTERJUi90bC5sYXRpbjEuc3BsICRTUEVMTERJUi90bC51dGYtOC5zcGwgLi4vUkVBRE1FX3RsLnR4dAorCiskU1BFTExESVIvdGwubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRsX1BILklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi90bCB0bF9QSCIgLWMgcQorCiskU1BFTExESVIvdGwudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dGxfUEguVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdGwgdGxfUEgiIC1jIHEKKworLi4vUkVBRE1FX3RsLnR4dCA6IFJFQURNRV90bF9QSC50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB0bF9QSC56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3RsX1BILmFmZiB0bF9QSC5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggdGxfUEguemlwCisgICAgICAgIDpzeXMgJFVOWklQIHRsX1BILnppcAorICAgICAgICA6ZGVsZXRlIHRsX1BILnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd0bF9QSC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgdGxfUEguYWZmIHRsX1BILm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3RsX1BILm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSB0bF9QSC5kaWMgdGxfUEgub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCd0bF9QSC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDx0bF9QSC5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHRsX1BILm9yaWcuYWZmIHRsX1BILmFmZiA+dGxfUEguZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHRsX1BILm9yaWcuZGljIHRsX1BILmRpYyA+PnRsX1BILmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHRsX1BILnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vdGxfUEguemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi90bF9QSC5vcmlnLmFmZiB0bF9QSC5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgdGxfUEguYWZmIC4uL3RsX1BILm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3RsX1BILm9yaWcuZGljIHRsX1BILmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB0bF9QSC5kaWMgLi4vdGxfUEgubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHRsX1BILnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3RsL3RsX1BILmRpZmYgYi9ydW50aW1lL3NwZWxsL3RsL3RsX1BILmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzAyMDhlNwotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdGwvdGxfUEguZGlmZgpAQCAtMCwwICsxLDE4IEBACisqKiogdGxfUEgub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMToxMjoyMCAyMDA1CistLS0gdGxfUEguYWZmCVdlZCBBdWcgMzEgMjE6MTM6MTYgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMTkgKioqKgorLS0tIDE5LDMxIC0tLS0KKyAgVFJZIGFuZ2lzb3Rta2x5cHVicmhkZXdBUC1TS01JTkRUSEInTEVKR1V2V0NjT1Jmall6cUZ4VlFaCisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgMQorKyBNQVAgbvEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdG4vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3RuL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYWYxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3RuL21haW4uYWFwCkBAIC0wLDAgKzEsODIgQEAKKyMgQWFwIHJlY2lwZSBmb3IgU2V0c3dhbmEgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSB0bl9aQS5hZmYgdG5fWkEuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgU2V0c3dhbmEgbG9jYWxlLCB1c2UgUm9tYW5pYW4gaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL3RuLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi90bi51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvdG4uY3AxMjUwLnNwbCAuLi9SRUFETUVfdG4udHh0CisKKyRTUEVMTERJUi90bi5pc28tODg1OS0yLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi90biB0bl9aQSIgLWMgcQorCiskU1BFTExESVIvdG4udXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cm9fUk8uVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdG4gdG5fWkEiIC1jIHEKKworJFNQRUxMRElSL3RuLmNwMTI1MC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9Y3AxMjUwIiAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3RuIHRuX1pBIiAtYyBxCisKKy4uL1JFQURNRV90bi50eHQ6IFJFQURNRV90bl9aQS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB0bl9aQS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCit0bl9aQS5hZmYgdG5fWkEuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHRuX1pBLnppcAorICAgICAgICA6c3lzICRVTlpJUCB0bl9aQS56aXAKKyAgICAgICAgOmRlbGV0ZSB0bl9aQS56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndG5fWkEub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHRuX1pBLmFmZiB0bl9aQS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd0bl9aQS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgdG5fWkEuZGljIHRuX1pBLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygndG5fWkEuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8dG5fWkEuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bl9aQS5vcmlnLmFmZiB0bl9aQS5hZmYgPnRuX1pBLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bl9aQS5vcmlnLmRpYyB0bl9aQS5kaWMgPj50bl9aQS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggdG5fWkEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi90bl9aQS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3RuX1pBLm9yaWcuYWZmIHRuX1pBLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB0bl9aQS5hZmYgLi4vdG5fWkEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vdG5fWkEub3JpZy5kaWMgdG5fWkEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHRuX1pBLmRpYyAuLi90bl9aQS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgdG5fWkEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdG4vdG5fWkEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvdG4vdG5fWkEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWNlMGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC90bi90bl9aQS5kaWZmCkBAIC0wLDAgKzEsMTAgQEAKKyoqKiB0bl9aQS5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjQ2OjI0IDIwMDUKKy0tLSB0bl9aQS5hZmYJV2VkIEF1ZyAzMSAyMDo0NzowMSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMSAqKioqCistLS0gMjEsMjUgLS0tLQorICBUUlkgYWVvbHRpbnNnaGttYmR3cnB1ZnlNalNEQktQVEwtQUpSRUdOY0l2RkNVV1nDoXoKKysgCisrIEZPTCCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBMT1cgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgVVBQIKGio6WmqKmqq6yur7Gys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3t//CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3VrL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC91ay9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTBmZTZkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC91ay9tYWluLmFhcApAQCAtMCwwICsxLDU3IEBACisjIEFhcCByZWNpcGUgZm9yIFVrcmFpbmlhbiBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHVrX1VBLmFmZiB1a19VQS5kaWMKKworYWxsOiAkU1BFTExESVIvdWsua29pOC11LnNwbCAkU1BFTExESVIvdWsudXRmLTguc3BsIFwKKyAgICAgICAgLi4vUkVBRE1FX3VrLnR4dAorCiskU1BFTExESVIvdWsua29pOC11LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXVrX1VBLktPSTgtVSAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi91ayB1a19VQSIgLWMgcQorCiskU1BFTExESVIvdWsudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9dWtfVUEuVVRGLTggJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdWsgdWtfVUEiIC1jIHEKKworLi4vUkVBRE1FX3VrLnR4dDogUkVBRE1FX3VrX1VBLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHVrX1VBLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorIyBUaGlzIGlzIGEgYml0IHRyaWNreSwgc2luY2UgdGhlIGZpbGUgbmFtZSBpbmNsdWRlcyB0aGUgZGF0ZS4KK3VrX1VBLmFmZiB1a19VQS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcAorICAgICAgICA6ZmV0Y2ggdWtfVUEuemlwCisgICAgICAgIDpzeXMgdW56aXAgdWtfVUEuemlwCisgICAgICAgIDpkZWxldGUgdWtfVUEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3VrX1VBLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSB1a19VQS5hZmYgdWtfVUEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndWtfVUEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHVrX1VBLmRpYyB1a19VQS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3VrX1VBLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHVrX1VBLmRpZmYKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHVrX1VBLm9yaWcuYWZmIHVrX1VBLmFmZiA+dWtfVUEuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHVrX1VBLm9yaWcuZGljIHVrX1VBLmRpYyA+PnVrX1VBLmRpZmYKKworIyBDaGVjayBmb3IgdXBkYXRlZCBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDpwcmludCBEb2Vzbid0IHdvcmsgeWV0LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC91ay91a19VQS5kaWZmIGIvcnVudGltZS9zcGVsbC91ay91a19VQS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMjNkYzIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3VrL3VrX1VBLmRpZmYKQEAgLTAsMCArMSwxNyBAQAorKioqIHVrX1VBLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6Mjg6MDMgMjAwNQorLS0tIHVrX1VBLmFmZglXZWQgQXVnIDMxIDIxOjI5OjUzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsNSAqKioqCisgIFRSWSDPwc7JptLX1MXTy8zE1dDN2tHYx8LeyMrDwNan26TG3a3v4e7ptvL39OXz6+zk9fDt+vH45+L+6Orj4Pa3+7Tm/b0nCishIExPV0VSIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgVVBQRVIg4eL35+S95bT2+um2t+rr7O3u7/Dy8/T15ujj/vv9+ODxJworICAKKy0tLSAyLDkgLS0tLQorICBUUlkgz8HOyabS19TF08vMxNXQzdrR2MfC3sjKw8DWp9ukxt2t7+Hu6bby9/Tl8+vs5PXw7frx+Ofi/ujq4+D2t/u05v29JworISAKKyEgRk9MIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgTE9XIMHC18fErcWk1trJpqfKy8zNzs/Q0tPU1cbIw97b3djA0ScKKyEgVVBQIOHi9+fkveW09vrptrfq6+zt7u/w8vP09ebo4/77/fjg8ScKKyEgCishIE1JRFdPUkQgJy0KKyAgCmRpZmYgLS1naXQgImEvcnVudGltZS9zcGVsbC95aS9cMDQxeWkuZGlmZiIgImIvcnVudGltZS9zcGVsbC95aS9cMDQxeWkuZGlmZiIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NGRjNjkuLjAwMDAwMDAKLS0tICJhL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpLmRpZmYiCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0qKiogd29yZGxpc3QudXRmOC50eHQJVGh1IEF1ZyAxMSAxOTo0OToyMiAyMDA1Ci0tLS0geWkuZGljCVRodSBBdWcgMTEgMTk6NDk6MjMgMjAwNQotKioqKioqKioqKioqKioqCi0qKiogMSwyICoqKioKLS0tLSAxLDMgLS0tLQotKyA5OTk5OTkKLSAg15LXqNeV16DXmNei15zXotee16LXoNeYCi0gINeT15bXqdeQ1rjXkdei16DXk9eZ16fXoQpkaWZmIC0tZ2l0ICJhL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpX3RyLmRpZmYiICJiL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpX3RyLmRpZmYiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDgxODNmLi4wMDAwMDAwCi0tLSAiYS9ydW50aW1lL3NwZWxsL3lpL1wwNDF5aV90ci5kaWZmIgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotKioqIHdvcmRsaXN0LnR4dAlUdWUgQXVnIDE2IDEwOjQ2OjI2IDIwMDUKLS0tLSB5aV90ci5kaWMJVHVlIEF1ZyAxNiAxMDo0Njo0MiAyMDA1Ci0qKioqKioqKioqKioqKioKLSoqKiAxLDIgKioqKgotLS0tIDEsMyAtLS0tCi0rIDg0NjA4Ci0gIGdydW50ZWxlbWVudAotICBkemhvYmVuZGlrcwpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC96dS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvenUvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgwNWQ3NgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvenUvbWFpbi5hYXAKQEAgLTAsMCArMSw4MyBAQAorIyBBYXAgcmVjaXBlIGZvciBadWx1IFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0genVfWkEuYWZmIHp1X1pBLmRpYworCisjIFRoZXJlIGlzIG5vIFp1bHUgbG9jYWxlLCB1c2UgdGhlIER1dGNoIG9uZSBpbnN0ZWFkLgorYWxsOiAkU1BFTExESVIvenUubGF0aW4xLnNwbCAkU1BFTExESVIvenUudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3p1LmFzY2lpLnNwbCAuLi9SRUFETUVfenUudHh0CisKKyRTUEVMTERJUi96dS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3p1IHp1X1pBIiAtYyBxCisKKyRTUEVMTERJUi96dS51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi96dSB6dV9aQSIgLWMgcQorCiskU1BFTExESVIvenUuYXNjaWkuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAtYXNjaWkgJFNQRUxMRElSL3p1IHp1X1pBIiAtYyBxCisgCisuLi9SRUFETUVfenUudHh0IDogUkVBRE1FX3p1X1pBLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHp1X1pBLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorenVfWkEuYWZmIHp1X1pBLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCB6dV9aQS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgenVfWkEuemlwCisgICAgICAgIDpkZWxldGUgenVfWkEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3p1X1pBLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSB6dV9aQS5hZmYgenVfWkEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnenVfWkEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHp1X1pBLmRpYyB6dV9aQS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3p1X1pBLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHp1X1pBLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgenVfWkEub3JpZy5hZmYgenVfWkEuYWZmID56dV9aQS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgenVfWkEub3JpZy5kaWMgenVfWkEuZGljID4+enVfWkEuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggenVfWkEuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi96dV9aQS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3p1X1pBLm9yaWcuYWZmIHp1X1pBLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB6dV9aQS5hZmYgLi4venVfWkEubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4venVfWkEub3JpZy5kaWMgenVfWkEuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHp1X1pBLmRpYyAuLi96dV9aQS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgenVfWkEuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvenUvenVfWkEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvenUvenVfWkEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDRkMDI5Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC96dS96dV9aQS5kaWZmCkBAIC0wLDAgKzEsOCBAQAorKioqIHp1X1pBLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6NDk6MTggMjAwNQorLS0tIHp1X1pBLmFmZglXZWQgQXVnIDMxIDIxOjQ5OjUyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIxICoqKioKKy0tLSAyMSwyMyAtLS0tCisgIFRSWSBlYW51b2xraWhtZ3d6YnRzeXBkcWZjanZ4cgorKyAKKysgTUlEV09SRCAtCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jZi52aW0gYi9ydW50aW1lL3N5bnRheC9jZi52aW0KaW5kZXggNmNmMTExZC4uNjQ3YzU2YSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY2YudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NmLnZpbQpAQCAtMSwxMSArMSwxMiBAQAogIiBWaW0gc3ludGF4IGZpbGUKLSIgICAgTGFuZ3VhZ2U6IENvbGQgRnVzaW9uCi0iICBNYWludGFpbmVyOiBKZWZmIExhbnphcm90dGEgKGplZmZsYW56YXJvdHRhQHlhaG9vLmNvbSkKLSIJICBVUkw6IGh0dHA6Ly9sYW56YXJvdHRhLnRyaXBvZC5jb20vdmltL3N5bnRheC9jZi52aW0uemlwCi0iIExhc3QgQ2hhbmdlOiBPY3RvYmVyIDE1LCAyMDAxCi0iCVVzYWdlOiBTaW5jZSBDb2xkIEZ1c2lvbiBoYXMgaXRzIG93biB2ZXJzaW9uIG9mIGh0bWwgY29tbWVudHMsCi0iCSAgICAgICBtYWtlIHN1cmUgdGhhdCB5b3UgcHV0Ci0iCSAgICAgICAnbGV0IGh0bWxfd3JvbmdfY29tbWVudHM9MScgaW4geW91ciBfdmltcmMgZmlsZS4KKyIgICAgTGFuZ3VhZ2U6IENvbGRGdXNpb24KKyIgIE1haW50YWluZXI6IFRvYnkgV29vZHdhcmsgKHRvYnkud29vZHdhcmsrdmltQGdtYWlsLmNvbSkKKyIgTGFzdCBDaGFuZ2U6IEF1Z3VzdCAzLCAyMDA1CisiIAlDb2xkRnVzaW9uIE1YIDcKKyIJVXNhZ2U6IFNpbmNlIENvbGRGdXNpb24gaGFzIGl0cyBvd24gdmVyc2lvbiBvZiBIVE1MIGNvbW1lbnRzIAorIgkoPCEtLS0gLS0tPikKKyIgICAgICAgbWFrZSBzdXJlIHRoYXQgeW91IHB1dCAnbGV0IGh0bWxfd3JvbmdfY29tbWVudHM9MScgaW4geW91ciAudmltcmMgLworIiAgICAgICBfdmltcmMgZmlsZS4KIAogIiBGb3IgdmVyc2lvbiA1LngsIGNsZWFyIGFsbCBzeW50YXggaXRlbXMuCiAiIEZvciB2ZXJzaW9uIDYueCwgcXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkLgpAQCAtMTUsNyArMTYsNyBAQAogICBmaW5pc2gKIGVuZGlmCiAKLSIgVXNlIGFsbCB0aGUgc3R1ZmYgZnJvbSB0aGUgb3JpZ2luYWwgaHRtbCBzeW50YXggZmlsZS4KKyIgVXNlIGFsbCB0aGUgc3R1ZmYgZnJvbSB0aGUgSFRNTCBzeW50YXggZmlsZS4KIGlmIHZlcnNpb24gPCA2MDAKICAgc291cmNlIDxzZmlsZT46cDpoL2h0bWwudmltCiBlbHNlCkBAIC0yMywxMDUgKzI0LDEyNyBAQAogZW5kaWYKIAogIiBUYWcgbmFtZXMuCi1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmYWJvcnQgY2ZhcHBsZXQgY2ZhcHBsaWNhdGlvbiBjZmFzc29jaWF0ZQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmF1dGhlbnRpY2F0ZSBjZmJyZWFrIGNmY2FjaGUgY2Zjb2wKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zjb2xsZWN0aW9uIGNmY29udGVudCBjZmNvb2tpZSBjZmRpcmVjdG9yeQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmVycm9yIGNmZXhpdCBjZmZpbGUgY2Zmb3JtIGNmZnRwIGNmZ3JpZAotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmdyaWRjb2x1bW4gY2Zncmlkcm93IGNmZ3JpZHVwZGF0ZSBjZmhlYWRlcgotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmh0bWxoZWFkIGNmaHR0cCBjZmh0dHBwYXJhbQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmlmIGNmZWxzZWlmIGNmZWxzZQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmluY2x1ZGUgY2ZpbmRleCBjZmlucHV0IGNmaW5zZXJ0Ci1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbGRhcCBjZmxvY2F0aW9uIGNmbG9jayBjZmxvb3AgY2ZtYWlsCi1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbW9kdWxlIGNmb2JqZWN0IGNmb3V0cHV0IGNmcGFyYW0gY2Zwb3AKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zwcm9jcGFyYW0gY2Zwcm9jcmVzdWx0IGNmcXVlcnkgY2ZyZWdpc3RyeQotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnJlcG9ydCBjZnNjaGVkdWxlIGNmc2NyaXB0IGNmc2VhcmNoIGNmc2VsZWN0Ci1zeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmc2V0IGNmc2V0dGluZyBjZnNsaWRlciBjZnN0b3JlZHByb2MKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Zzd2l0Y2ggY2ZjYXNlIGNmZGVmYXVsdGNhc2UKLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0YWJsZSBjZnRleHRpbnB1dCBjZnRocm93IGNmdHJhbnNhY3Rpb24KLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0cmVlIGNmdHJlZWl0ZW0KLXN5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2Z0cnkgY2ZjYXRjaAotc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnVwZGF0ZSBjZndkZHgKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZhYm9ydCBjZmFwcGxldCBjZmFwcGxpY2F0aW9uIGNmYXJndW1lbnQgY2Zhc3NvY2lhdGUgY2ZicmVhayBjZmNhY2hlCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmY2FsZW5kYXIgY2ZjYXNlIGNmY2F0Y2ggY2ZjaGFydCBjZmNoYXJ0ZGF0YSBjZmNoYXJ0c2VyaWVzIGNmY29sIGNmY29sbGVjdGlvbgorc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZmNvbXBvbmVudCBjZmNvbnRlbnQgY2Zjb29raWUgY2ZkZWZhdWx0Y2FzZSBjZmRpcmVjdG9yeSBjZmRvY3VtZW50CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmZG9jdW1lbnRpdGVtIGNmZG9jdW1lbnRzZWN0aW9uIGNmZHVtcCBjZmVsc2UgY2ZlbHNlaWYgY2ZlcnJvciBjZmV4ZWN1dGUKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZleGl0IGNmZmlsZSBjZmZsdXNoIGNmZm9ybSBjZmZvcm1ncm91cCBjZmZvcm1pdGVtIGNmZnRwIGNmZnVuY3Rpb24gY2ZncmlkCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmZ3JpZGNvbHVtbiBjZmdyaWRyb3cgY2ZncmlkdXBkYXRlIGNmaGVhZGVyIGNmaHRtbGhlYWQgY2ZodHRwIGNmaHR0cHBhcmFtIGNmaWYKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZpbXBvcnQgY2ZpbmNsdWRlIGNmaW5kZXggY2ZpbnB1dCBjZmluc2VydCBjZmludm9rZSBjZmludm9rZWFyZ3VtZW50CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmbGRhcCBjZmxvY2F0aW9uIGNmbG9jayBjZmxvZyBjZmxvZ2luIGNmbG9naW51c2VyIGNmbG9nb3V0IGNmbG9vcCBjZm1haWwKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZtYWlscGFyYW0gY2ZtYWlscGFydCBjZm1vZHVsZSBjZk5UYXV0aGVudGljYXRlIGNmb2JqZWN0IGNmb2JqZWN0Y2FjaGUKK3N5biBrZXl3b3JkIGNmVGFnTmFtZSBjb250YWluZWQgY2ZvdXRwdXQgY2ZwYXJhbSBjZnBvcCBjZnByb2Nlc3NpbmdkaXJlY3RpdmUgY2Zwcm9jcGFyYW0gY2Zwcm9jcmVzdWx0CitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmcHJvcGVydHkgY2ZxdWVyeSBjZnF1ZXJ5cGFyYW0gY2ZyZWdpc3RyeSBjZnJlcG9ydCBjZnJlcG9ydHBhcmFtIGNmcmV0aHJvdworc3luIGtleXdvcmQgY2ZUYWdOYW1lIGNvbnRhaW5lZCBjZnJldHVybiBjZnNhdmVjb250ZW50IGNmc2NoZWR1bGUgY2ZzY3JpcHQgY2ZzZWFyY2ggY2ZzZWxlY3QgY2ZzZXQgY2ZzZXR0aW5nCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmc2lsZW50IGNmc2xpZGVyIGNmc3RvcmVkcHJvYyBjZnN3aXRjaCBjZnRhYmxlIGNmdGV4dGFyZWEgY2Z0aHJvdyBjZnRpbWVyCitzeW4ga2V5d29yZCBjZlRhZ05hbWUgY29udGFpbmVkIGNmdHJhY2UgY2Z0cmFuc2FjdGlvbiBjZnRyZWUgY2Z0cmVlaXRlbSBjZnRyeSBjZnVwZGF0ZSBjZndkZHggY2Z4bWwgCiAKLSIgTGVnYWwgYXJndW1lbnRzLgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGFjY2VwdCBhY3Rpb24gYWRkbmV3bGluZSBhZGR0b2tlbiBhZ2VudG5hbWUgYWxpZ24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhcHBlbmRrZXkgYXBwbGljYXRpb250aW1lb3V0IGF0dGFjaG1lbnRwYXRoCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYXR0cmlidXRlY29sbGVjdGlvbiBhdHRyaWJ1dGVzIGJhc2V0YWcgYmdjb2xvcgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGJsb2NrZmFjdG9yIGJvZHkgYm9sZCBib3JkZXIgYnJhbmNoIGNhY2hlZGFmdGVyCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY2FjaGVkd2l0aGluIGNjIGNmc3FsdHlwZSBjaGVja2VkIGNsYXNzIGNsaWVudG1hbmFnZW1lbnQKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjbGllbnRzdG9yYWdlIGNvbGhlYWRlcmFsaWduIGNvbGhlYWRlcmJvbGQgY29saGVhZGVyZm9udAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNvbGhlYWRlcmZvbnRzaXplIGNvbGhlYWRlcml0YWxpYyBjb2xoZWFkZXJzIGNvbGxlY3Rpb24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjb2xzcGFjaW5nIGNvbHVtbnMgY29tcGxldGVwYXRoIGNvbm5lY3Rpb24gY29udGV4dAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNyaXRlcmlhIGN1c3RvbTEgY3VzdG9tMiBkYXRhIGRhdGFhbGlnbiBkYXRhY29sbGVjdGlvbgotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGRhdGFzb3VyY2UgZGJuYW1lIGRic2VydmVyIGRidHlwZSBkYnZhcm5hbWUgZGVidWcgZGVmYXVsdAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGRlbGV0ZSBkZWxldGVidXR0b24gZGVsZXRlZmlsZSBkZWxpbWl0ZXIgZGVzdGluYXRpb24gZGV0YWlsCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGlyZWN0b3J5IGRpc3BsYXkgZG4gZG9tYWluIGVuYWJsZWNhYiBlbmFibGVjZm91dHB1dG9ubHkKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBlbmN0eXBlIGVuZGRhdGUgZW5kdGltZSBlbnRyeSBlcnJvcmNvZGUgZXhwYW5kIGV4cGlyZXMKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBleHBpcmV1cmwgZXhwcmVzc2lvbiBleHRlbmRlZGluZm8gZXh0ZW5zaW9ucyBleHRlcm5hbAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGZpbGUgZmlsZWZpZWxkIGZpbHRlciBmb250IGZvbnRzaXplIGZvcm1maWVsZHMgZm9ybXVsYQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGZyb20gZ3JpZCBncmlkZGF0YWFsaWduIGdyaWRsaW5lcyBncm9vdmVjb2xvciBncm91cCBoZWFkZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBoZWFkZXJhbGlnbiBoZWFkZXJib2xkIGhlYWRlcmZvbnQgaGVhZGVyZm9udHNpemUgaGVhZGVyaXRhbGljCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaGVhZGVybGluZXMgaGVpZ2h0IGhpZ2hsaWdodGhyZWYgaHJlZiBocmVma2V5IGhzY3JvbGwgaHNwYWNlCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaHRtbHRhYmxlIGltZyBpbWdvcGVuIGltZ3N0eWxlIGluZGV4IGlucHV0IGluc2VydCBpbnNlcnRidXR0b24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBpbnRlcnZhbCBpc29sYXRpb24gaXRhbGljIGtleSBrZXlvbmx5IGxhYmVsIGxhbmd1YWdlIG1haWxlcmlkCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbWFpbHRvIG1heGxlbmd0aCBtYXhyb3dzIG1lc3NhZ2UgbWVzc2FnZW51bWJlciBtZXRob2QKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtaW1lYXR0YWNoIG1vZGUgbXVsdGlwbGUgbmFtZSBuYW1lY29tcGxpY3QgbmV3ZGlyZWN0b3J5Ci1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbm90c3VwcG9ydGVkIG51bGwgbnVtYmVyZm9ybWF0IG9uZXJyb3Igb25zdWJtaXQgb252YWxpZGF0ZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG9wZXJhdGlvbiBvcmRlcmJ5IG91dHB1dCBwYXJyZW50IHBhc3N0aHJvdWdoIHBhc3N3b3JkIHBhdGgKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBwaWN0dXJlYmFyIHBvcnQgcHJvY2VkdXJlIHByb3RvY29sIHByb3ZpZGVyIHByb3ZpZGVyZHNuCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcHJveHlieXBhc3MgcHJveHlzZXJ2ZXIgcHVibGlzaCBxdWVyeSBxdWVyeWFzcm9vdCByYW5nZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlY3Vyc2UgcmVmcmVzaGxhYmVsIHJlcG9ydCByZXF1ZXN0dGltZW91dCByZXF1aXJlZCByZXNldAotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlc29sZXVybCByZXN1bHRzZXQgcmV0cnljb3VudCByZXR1cm5jb2RlIHJvd2hlYWRlcmFsaWduCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcm93aGVhZGVyYm9sZCByb3doZWFkZXJmb250IHJvd2hlYWRlcmZvbnRzaXplIHJvd2hlYWRlcml0YWxpYwotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlYWRlcnMgcm93aGVhZGVyd2lkdGggcm93aGVpZ2h0IHNjYWxlIHNjb3BlIHNlY3VyZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNlY3VyaXR5Y29udGV4dCBzZWxlY3Qgc2VsZWN0Y29sb3Igc2VsZWN0ZWQgc2VsZWN0bW9kZSBzZXJ2ZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzZXNzaW9ubWFuYWdlbWVudCBzZXNzaW9udGltZW91dCBzZXRjbGllbnRjb29raWVzIHNldGNvb2tpZQotc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNob3dkZWJ1Z291dHB1dCBzaG93ZXJyb3Igc2l6ZSBzb3J0IHNvcnRhc2NlbmRpbmdidXR0b24KLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzb3J0ZGVzY2VuZGluZ2J1dHRvbiBzb3VyY2Ugc3FsIHN0YXJ0IHN0YXJ0ZGF0ZSBzdGFydHJvdyBzdGFydHRpbWUKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzdGVwIHN0b3BvbmVycm9yIHN1YmplY3QgdGFibGVuYW1lIHRhYmxlb3duZXIgdGFibGVxdWFsaWZpZXIKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB0YXJnZXQgdGFzayB0ZW1wbGF0ZSB0ZXh0IHRleHRjb2xvciB0ZXh0cXVhbGlmaWVyCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdGhyb3dvbmZhaWx1cmUgdGhyb3dvbnRpbWVvdXQgdGltZW91dCB0aXRsZSB0byB0b3BsZXZlbHZhcmlhYmxlCi1zeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdHlwZSB1cmwgdXJscGF0aCB1c2VybmFtZSB1c2V0aW1lem9uZWluZm8gdmFsaWRhdGUgdmFsdWUKLXN5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB2YXJpYWJsZSB2c2Nyb2xsIHZzcGFjZSB3aWR0aAorIiBUYWcgcGFyYW1ldGVycy4KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhYm9ydCBhY2NlcHQgYWNjZXNzIGFjY2Vzc2libGUgYWN0aW9uIGFkZG5ld2xpbmUgYWRkdG9rZW4gYWRkdG9rZW4gYWdlbnRuYW1lCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYWxpZ24gYXBwZW5ka2V5IGFwcGxldHNvdXJjZSBhcHBsaWNhdGlvbiBhcHBsaWNhdGlvbnRpbWVvdXQgYXBwbGljYXRpb250b2tlbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGFyY2hpdmUgYXJndW1lbnRjb2xsZWN0aW9uIGFyZ3VtZW50cyBhc2NpaWV4dGVuc2lvbmxpc3QgYXR0YWNobWVudHBhdGgKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBhdHRyaWJ1dGVjb2xsZWN0aW9uIGF0dHJpYnV0ZXMgYXR0cmlidXRlcyBhdXRvd2lkdGggYmFja2dyb3VuZGNvbG9yCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgYmFja2dyb3VuZHZpc2libGUgYmFzZXRhZyBiY2MgYmdjb2xvciBiaW5kIGJpbmRpbmduYW1lIGJsb2NrZmFjdG9yIGJvZHkgYm9sZAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGJvcmRlciBicmFuY2ggY2FjaGVkYWZ0ZXIgY2FjaGVkd2l0aGluIGNhc2VzZW5zaXRpdmUgY2F0ZWdvcmllcyBjYXRlZ29yeQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNhdGVnb3J5dHJlZSBjYyBjZnNxbHR5cGUgY2hhcnNldCBjaGFydGhlaWdodCBjaGFydHdpZHRoIGNoZWNrZWQgY2xhc3MKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBjbGllbnRtYW5hZ2VtZW50IGNsaWVudHN0b3JhZ2UgY29kZWJhc2UgY29saGVhZGVyYWxpZ24gY29saGVhZGVyYm9sZAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGNvbGhlYWRlcmZvbnQgY29saGVhZGVyZm9udHNpemUgY29saGVhZGVyaXRhbGljIGNvbGhlYWRlcnMgY29saGVhZGVydGV4dGNvbG9yCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29sbGVjdGlvbiBjb2xvcmxpc3QgY29sc3BhY2luZyBjb2x1bW5zIGNvbXBsZXRlcGF0aCBjb21wb25lbnQgY29uZGl0aW9uCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29ubmVjdGlvbiBjb250ZW50aWQgY29udGV4dCBjb250ZXh0Ynl0ZXMgY29udGV4dGhpZ2hsaWdodGJlZ2luCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgY29udGV4dGhpZ2hsaWdodGVuZCBjb250ZXh0cGFzc2FnZXMgY29va2llZG9tYWluIGNyaXRlcmlhIGN1c3RvbTEgY3VzdG9tMgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGN1c3RvbTMgY3VzdG9tNCBkYXRhIGRhdGFhbGlnbiBkYXRhYmFja2dyb3VuZGNvbG9yIGRhdGFjb2xsZWN0aW9uCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGF0YWxhYmVsc3R5bGUgZGF0YXNvdXJjZSBkYXRlIGRheW5hbWVzIGRibmFtZSBkYnNlcnZlciBkYnR5cGUgZGJ2YXJuYW1lIGRlYnVnCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZGVmYXVsdCBkZWxldGUgZGVsZXRlYnV0dG9uIGRlbGV0ZWZpbGUgZGVsaW1pdGVyIGRlbGltaXRlcnMgZGVzY3JpcHRpb24KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBkZXN0aW5hdGlvbiBkZXRhaWwgZGlyZWN0b3J5IGRpc2FibGVkIGRpc3BsYXkgZGlzcGxheW5hbWUgZGlzcG9zaXRpb24gZG4gZG9tYWluCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZW5hYmxlY2FiIGVuYWJsZWNmb3V0cHV0b25seSBlbmFibGVkIGVuY29kZWQgZW5jcnlwdGlvbiBlbmN0eXBlIGVuZGRhdGUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBlbmRyYW5nZSBlbmRyb3cgZW5kdGltZSBlbnRyeSBlcnJvcmNvZGUgZXhjZXB0aW9uIGV4aXN0aW5nIGV4cGFuZCBleHBpcmVzCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgZXhwaXJldXJsIGV4cHJlc3Npb24gZXh0ZW5kZWRpbmZvIGV4dGVuZHMgZXh0ZW5zaW9ucyBleHRlcm5hbCBmYWlsaWZleGlzdHMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmYWlsdG8gZmlsZSBmaWxlZmllbGQgZmlsZW5hbWUgZmlsdGVyIGZpcnN0ZGF5b2Z3ZWVrIGZpcnN0cm93YXNoZWFkZXJzIGZvbnQKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmb250Ym9sZCBmb250ZW1iZWQgZm9udGl0YWxpYyBmb250c2l6ZSBmb3JlZ3JvdW5kY29sb3IgZm9ybWF0IGZvcm1maWVsZHMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBmb3JtdWxhIGZyb20gZ2VuZXJhdGV1bmlxdWVmaWxlbmFtZXMgZ2V0YXNiaW5hcnkgZ3JpZCBncmlkZGF0YWFsaWduIGdyaWRsaW5lcworc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGdyb292ZWNvbG9yIGdyb3VwIGdyb3VwY2FzZXNlbnNpdGl2ZSBoZWFkZXIgaGVhZGVyYWxpZ24gaGVhZGVyYm9sZCBoZWFkZXJmb250CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgaGVhZGVyZm9udHNpemUgaGVhZGVyaXRhbGljIGhlYWRlcmxpbmVzIGhlYWRlcnRleHRjb2xvciBoZWlnaHQgaGlnaGxpZ2h0aHJlZgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGhpbnQgaHJlZiBocmVma2V5IGhzY3JvbGwgaHNwYWNlIGh0bWx0YWJsZSBpZCBpZGxldGltZW91dCBpbWcgaW1nb3BlbiBpbWdzdHlsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGluZGV4IGlubGluZSBpbnB1dCBpbnNlcnQgaW5zZXJ0YnV0dG9uIGludGVydmFsIGlzb2xhdGlvbiBpdGFsaWMgaXRlbQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGl0ZW1jb2x1bW4ga2V5IGtleW9ubHkgbGFiZWwgbGFiZWxmb3JtYXQgbGFuZ3VhZ2UgbGlzdCBsaXN0Z3JvdXBzIGxvY2FsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIGxvY2FsZmlsZSBsb2cgbG9naW5zdG9yYWdlIGxvb2thbmRmZWVsIG1haWxlcmlkIG1haWx0byBtYXJnaW5ib3R0b20gbWFyZ2lubGVmdAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG1hcmdpbnJpZ2h0IG1hcmdpbnJpZ2h0IG1hcmdpbnRvcCBtYXJrZXJzaXplIG1hcmtlcnN0eWxlIG1hc2sgbWF4bGVuZ3RoIG1heHJvd3MKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtZXNzYWdlIG1lc3NhZ2VudW1iZXIgbWV0aG9kIG1pbWVhdHRhY2ggbWltZXR5cGUgbW9kZSBtb2RpZnl0eXBlIG1vbnRobmFtZXMKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBtdWx0aXBhcnQgbXVsdGlwbGUgbmFtZSBuYW1lY29tcGxpY3QgbmFtZWNvbmZsaWN0IG5hbWVzcGFjZSBuZXcgbmV3ZGlyZWN0b3J5CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgbm90c3VwcG9ydGVkIG51bGwgbnVtYmVyZm9ybWF0IG9iamVjdCBvbWl0IG9uY2hhbmdlIG9uY2xpY2sgb25lcnJvciBvbmtleWRvd24KK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBvbmtleXVwIG9ubG9hZCBvbm1vdXNlZG93biBvbm1vdXNldXAgb25yZXNldCBvbnN1Ym1pdCBvbnZhbGlkYXRlIG9wZXJhdGlvbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIG9yZGVyYnkgb3JpZW50YXRpb24gb3V0cHV0IG91dHB1dGZpbGUgb3ZlcndyaXRlIG93bmVycGFzc3dvcmQgcGFnZWVuY29kaW5nCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcGFnZWhlaWdodCBwYWdldHlwZSBwYWdld2lkdGggcGFpbnRzdHlsZSBwYXJhbV8xIHBhcmFtXzIgcGFyYW1fMyBwYXJhbV80CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcGFyYW1fNSBwYXJlbnQgcGFzc2l2ZSBwYXNzdGhyb3VnaCBwYXNzd29yZCBwYXRoIHBhdHRlcm4gcGVybWlzc2lvbnMgcGljdHVyZWJhcgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHBpZXNsaWNlc3R5bGUgcG9ydCBwb3J0dHlwZW5hbWUgcHJlZml4IHByZWxvYWRlciBwcmVzZXJ2ZWRhdGEgcHJldmlvdXNjcml0ZXJpYQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHByb2NlZHVyZSBwcm90b2NvbCBwcm92aWRlciBwcm92aWRlcmRzbiBwcm94eWJ5cGFzcyBwcm94eXBhc3N3b3JkIHByb3h5cG9ydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHByb3h5c2VydmVyIHByb3h5dXNlciBwdWJsaXNoIHF1ZXJ5IHF1ZXJ5YXNyb290IHF1ZXJ5cG9zaXRpb24gcmFuZ2UgcmViaW5kCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgcmVjdXJzZSByZWRpcmVjdCByZWZlcnJhbCByZWZyZXNobGFiZWwgcmVtb3RlZmlsZSByZXBseXRvIHJlcG9ydCByZXF1ZXN0dGltZW91dAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJlcXVpcmVkIHJlc2V0IHJlc29sdmV1cmwgcmVzdWx0IHJlc3VsdHNldCByZXRyeWNvdW50IHJldHVybmFzYmluYXJ5IHJldHVybmNvZGUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCByZXR1cm50eXBlIHJldHVybnZhcmlhYmxlIHJvbGVzIHJvd2hlYWRlcmFsaWduIHJvd2hlYWRlcmJvbGQgcm93aGVhZGVyZm9udAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlYWRlcmZvbnRzaXplIHJvd2hlYWRlcml0YWxpYyByb3doZWFkZXJzIHJvd2hlYWRlcnRleHRjb2xvciByb3doZWFkZXJ3aWR0aAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHJvd2hlaWdodCBzY2FsZSBzY2FsZWZyb20gc2NhbGV0byBzY29wZSBzY3JpcHRwcm90ZWN0IHNjcmlwdHNyYyBzZWN1cmUKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzZWN1cml0eWNvbnRleHQgc2VsZWN0IHNlbGVjdGNvbG9yIHNlbGVjdGVkIHNlbGVjdGVkZGF0ZSBzZWxlY3RlZGluZGV4CitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgc2VsZWN0bW9kZSBzZXBhcmF0b3Igc2VyaWVzY29sb3Igc2VyaWVzbGFiZWwgc2VyaWVzcGxhY2VtZW50IHNlcnZlciBzZXJ2aWNlcG9ydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNlcnZpY2Vwb3J0bmFtZSBzZXNzaW9ubWFuYWdlbWVudCBzZXNzaW9udGltZW91dCBzZXRjbGllbnRjb29raWVzIHNldGNvb2tpZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNldGRvbWFpbmNvb2tpZXMgc2hvdzNkIHNob3dib3JkZXIgc2hvd2RlYnVnb3V0cHV0IHNob3dlcnJvciBzaG93bGVnZW5kCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgc2hvd21hcmtlcnMgc2hvd3hncmlkbGluZXMgc2hvd3lncmlkbGluZXMgc2l6ZSBza2luIHNvcnQgc29ydGFzY2VuZGluZ2J1dHRvbgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHNvcnRjb250cm9sIHNvcnRkZXNjZW5kaW5nYnV0dG9uIHNvcnR4YXhpcyBzb3VyY2Ugc3Bvb2xlbmFibGUgc3FsIHNyYyBzdGFydAorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHN0YXJ0ZGF0ZSBzdGFydHJhbmdlIHN0YXJ0cm93IHN0YXJ0dGltZSBzdGF0dXMgc3RhdHVzY29kZSBzdGF0dXN0IHN0ZXAKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCBzdG9wb25lcnJvciBzdHlsZSBzdWJqZWN0IHN1Z2dlc3Rpb25zIHN1cHByZXNzd2hpdGVzcGFjZSB0YWJsZW5hbWUgdGFibGVvd25lcgorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHRhYmxlcXVhbGlmaWVyIHRhZ2xpYiB0YXJnZXQgdGFzayB0ZW1wbGF0ZSB0ZXh0IHRleHRjb2xvciB0ZXh0cXVhbGlmaWVyCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdGhyZWFkIHRocm93b25lcnJvciB0aHJvd29uZmFpbHVyZSB0aHJvd29udGltZW91dCB0aW1lIHRpbWVvdXQgdGltZXNwYW4gdGlwYmdjb2xvciB0aXBzdHlsZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHRpdGxlIHRvIHRvb2x0aXAgdG9wIHRvcGxldmVsdmFyaWFibGUgdHJhbnNmZXJtb2RlIHR5cGUgdWlkIHVuaXQgdXJsIHVybHBhdGgKK3N5biBrZXl3b3JkIGNmQXJnIGNvbnRhaW5lZCB1c2VyYWdlbnQgdXNlcm5hbWUgdXNlcnBhc3N3b3JkIHVzZXRpbWV6b25laW5mbyB2YWxpZGF0ZSB2YWxpZGF0ZWF0IHZhbHVlCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdmFsdWVjb2x1bW4gdmFsdWVzIHZhbHVlc2RlbGltaXRlciB2YWx1ZXNkaXNwbGF5IHZhciB2YXJpYWJsZSB2ZXJ0aWNhbCB2aXNpYmxlCitzeW4ga2V5d29yZCBjZkFyZyBjb250YWluZWQgdnNjcm9sbCB2c3BhY2Ugd2Vic2VydmljZSB3aWR0aCB3bW9kZSB3cmFwdGV4dCB3c2RsZmlsZSB4YXhpc3RpdGxlIHhheGlzdHlwZQorc3luIGtleXdvcmQgY2ZBcmcgY29udGFpbmVkIHhvZmZzZXQgeWF4aXN0aXRsZSB5YXhpc3R5cGUgeW9mZnNldAogCi0iIENvbGQgRnVzaW9uIEZ1bmN0aW9ucy4KLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBYnMgQXJyYXlBcHBlbmQgQXJyYXlBdmcgQXJyYXlDbGVhciBBcnJheURlbGV0ZUF0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQXJyYXlJbnNlcnRBdCBBcnJheUlzRW1wdHkgQXJyYXlMZW4gQXJyYXlNYXgKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheU1pbiBBcnJheU5ldyBBcnJheVByZXBlbmQgQXJyYXlSZXNpemUgQXJyYXlTZXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheVNvcnQgQXJyYXlTdW0gQXJyYXlTd2FwIEFycmF5VG9MaXN0IEFzYyBBdG4KLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBCaXRBbmQgQml0TWFza0NsZWFyIEJpdE1hc2tSZWFkIEJpdE1hc2tTZXQgQml0Tm90Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQml0T3IgQml0U0hMTiBCaXRTSFJOIEJpdFhvciBDSnVzdGlmeSBDZWlsaW5nIENocgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENvbXBhcmUgQ29tcGFyZU5vQ2FzZSBDb3MgQ3JlYXRlRGF0ZSBDcmVhdGVEYXRlVGltZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZU9EQkNEYXRlIENyZWF0ZU9EQkNEYXRlVGltZSBDcmVhdGVPREJDVGltZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZVRpbWUgQ3JlYXRlVGltZVNwYW4gREUgRGF0ZUFkZCBEYXRlQ29tcGFyZSBEYXRlRGlmZgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERhdGVGb3JtYXQgRGF0ZVBhcnQgRGF5IERheU9mV2VlayBEYXlPZldlZWtBc1N0cmluZwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERheU9mWWVhciBEYXlzSW5Nb250aCBEYXlzSW5ZZWFyIERlY2ltYWxGb3JtYXQgRGVjcmVtZW50VmFsdWUKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBEZWNyeXB0IERlbGV0ZUNsaWVudFZhcmlhYmxlIERpcmVjdG9yeUV4aXN0cyBEb2xsYXJGb3JtYXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBFbmNyeXB0IEV2YWx1YXRlIEV4cCBFeHBhbmRQYXRoIEZpbGVFeGlzdHMgRmluZCBGaW5kTm9DYXNlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgRmluZE9uZU9mIEZpcnN0RGF5T2ZNb250aCBGaXggRm9ybWF0QmFzZU4gR2V0QmFzZVRhZ0RhdGEKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBHZXRCYXNlVGFnTGlzdCBHZXRDbGllbnRWYXJpYWJsZXNMaXN0IEdldERpcmVjdG9yeUZyb21QYXRoCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0RmlsZUZyb21QYXRoIEdldExvY2FsZSBHZXRUZW1wRGlyZWN0b3J5IEdldFRlbXBGaWxlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0VGVtcGxhdGVQYXRoIEdldFRpY2tDb3VudCBHZXRUb2tlbiBIVE1MQ29kZUZvcm1hdAotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEhUTUxFZGl0Rm9ybWF0IEhvdXIgSUlmIEluY3JlbWVudFZhbHVlIElucHV0QmFzZU4gSW5zZXJ0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSW50IElzQXJyYXkgSXNBdXRoZW50aWNhdGVkIElzQXV0aG9yaXplZCBJc0Jvb2xlYW4gSXNEYXRlCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSXNEZWJ1Z01vZGUgSXNEZWZpbmVkIElzTGVhcFllYXIgSXNOdW1lcmljIElzTnVtZXJpY0RhdGUKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1F1ZXJ5IElzU2ltcGxlVmFsdWUgSXNTdHJ1Y3QgTENhc2UgTEp1c3RpZnkgTFNDdXJyZW5jeUZvcm1hdAotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExTRGF0ZUZvcm1hdCBMU0lzQ3VycmVuY3kgTFNJc0RhdGUgTFNJc051bWVyaWMgTFNOdW1iZXJGb3JtYXQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMU1BhcnNlQ3VycmVuY3kgTFNQYXJzZURhdGVUaW1lIExTUGFyc2VOdW1iZXIgTFNUaW1lRm9ybWF0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFRyaW0gTGVmdCBMZW4gTGlzdEFwcGVuZCBMaXN0Q2hhbmdlRGVsaW1zIExpc3RDb250YWlucwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExpc3RDb250YWluc05vQ2FzZSBMaXN0RGVsZXRlQXQgTGlzdEZpbmQgTGlzdEZpbmROb0Nhc2UgTGlzdEZpcnN0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdEdldEF0IExpc3RJbnNlcnRBdCBMaXN0TGFzdCBMaXN0TGVuIExpc3RQcmVwZW5kIExpc3RSZXN0Ci1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFNldEF0IExpc3RUb0FycmF5IExvZyBMb2cxMCBNYXggTWlkIE1pbiBNaW51dGUgTW9udGgKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBNb250aEFzU3RyaW5nIE5vdyBOdW1iZXJGb3JtYXQgUGFyYWdyYXBoRm9ybWF0IFBhcmFtZXRlckV4aXN0cwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFBhcnNlRGF0ZVRpbWUgUGkgUHJlc2VydmVTaW5nbGVRdW90ZXMgUXVhcnRlciBRdWVyeUFkZFJvdwotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFF1ZXJ5TmV3IFF1ZXJ5U2V0Q2VsbCBRdW90ZWRWYWx1ZUxpc3QgUkVGaW5kIFJFRmluZE5vQ2FzZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFJFUmVwbGFjZSBSRVJlcGxhY2VOb0Nhc2UgUkp1c3RpZnkgUlRyaW0gUmFuZCBSYW5kUmFuZ2UKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSYW5kb21pemUgUmVtb3ZlQ2hhcnMgUmVwZWF0U3RyaW5nIFJlcGxhY2UgUmVwbGFjZUxpc3QKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSZXBsYWNlTm9DYXNlIFJldmVyc2UgUmlnaHQgUm91bmQgU2Vjb25kIFNldExvY2FsZSBTZXRWYXJpYWJsZQotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFNnbiBTaW4gU3BhbkV4Y2x1ZGluZyBTcGFuSW5jbHVkaW5nIFNxciBTdHJpcENSIFN0cnVjdENsZWFyCi1zeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgU3RydWN0Q29weSBTdHJ1Y3RDb3VudCBTdHJ1Y3REZWxldGUgU3RydWN0RmluZCBTdHJ1Y3RJbnNlcnQKLXN5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBTdHJ1Y3RJc0VtcHR5IFN0cnVjdEtleUV4aXN0cyBTdHJ1Y3ROZXcgU3RydWN0VXBkYXRlIFRhbgotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFRpbWVGb3JtYXQgVHJpbSBVQ2FzZSBVUkxFbmNvZGVkRm9ybWF0IFZhbCBWYWx1ZUxpc3QgV2Vlawotc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFdyaXRlT3V0cHV0IFllYXIgWWVzTm9Gb3JtYXQKKyIgQ29sZEZ1c2lvbiBGdW5jdGlvbnMuCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQWJzIEdldEZ1bmN0aW9uTGlzdCBNYXggQUNvcyBHZXRHYXRld2F5SGVscGVyIE1pZCBBZGRTT0FQUmVxdWVzdEhlYWRlcgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEh0dHBSZXF1ZXN0RGF0YSBNaW4gQWRkU09BUFJlc3BvbnNlSGVhZGVyIEdldEh0dHBUaW1lU3RyaW5nIE1pbnV0ZQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5QXBwZW5kIEdldExvY2FsZSBNb250aCBBcnJheUF2ZyBHZXRMb2NhbGVEaXNwbGF5TmFtZSBNb250aEFzU3RyaW5nCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQXJyYXlDbGVhciBHZXRNZXRhRGF0YSBOb3cgQXJyYXlEZWxldGVBdCBHZXRNZXRyaWNEYXRhIE51bWJlckZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5SW5zZXJ0QXQgR2V0UGFnZUNvbnRleHQgUGFyYWdyYXBoRm9ybWF0IEFycmF5SXNFbXB0eSBHZXRQcm9maWxlU2VjdGlvbnMKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBQYXJzZURhdGVUaW1lIEFycmF5TGVuIEdldFByb2ZpbGVTdHJpbmcgUGkgQXJyYXlNYXggR2V0U09BUFJlcXVlc3QKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBQcmVzZXJ2ZVNpbmdsZVF1b3RlcyBBcnJheU1pbiBHZXRTT0FQUmVxdWVzdEhlYWRlciBRdWFydGVyIEFycmF5TmV3CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgR2V0U09BUFJlc3BvbnNlIFF1ZXJ5QWRkQ29sdW1uIEFycmF5UHJlcGVuZCBHZXRTT0FQUmVzcG9uc2VIZWFkZXIgUXVlcnlBZGRSb3cKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBBcnJheVJlc2l6ZSBHZXRUZW1wRGlyZWN0b3J5IFF1ZXJ5TmV3IEFycmF5U2V0IEdldFRlbXBGaWxlIFF1ZXJ5U2V0Q2VsbAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEFycmF5U29ydCBHZXRUaWNrQ291bnQgUXVvdGVkVmFsdWVMaXN0IEFycmF5U3VtIEdldFRpbWVab25lSW5mbyBSYW5kIEFycmF5U3dhcAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldFRva2VuIFJhbmRvbWl6ZSBBcnJheVRvTGlzdCBIYXNoIFJhbmRSYW5nZSBBc2MgSG91ciBSRUZpbmQgQVNpbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEhUTUxDb2RlRm9ybWF0IFJFRmluZE5vQ2FzZSBBdG4gSFRNTEVkaXRGb3JtYXQgUmVsZWFzZUNvbU9iamVjdCBCaW5hcnlEZWNvZGUKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJSWYgUmVtb3ZlQ2hhcnMgQmluYXJ5RW5jb2RlIEluY3JlbWVudFZhbHVlIFJlcGVhdFN0cmluZyBCaXRBbmQgSW5wdXRCYXNlTgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFJlcGxhY2UgQml0TWFza0NsZWFyIEluc2VydCBSZXBsYWNlTGlzdCBCaXRNYXNrUmVhZCBJbnQgUmVwbGFjZU5vQ2FzZQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEJpdE1hc2tTZXQgSXNBcnJheSBSRVJlcGxhY2UgQml0Tm90IElzQmluYXJ5IFJFUmVwbGFjZU5vQ2FzZSBCaXRPciBJc0Jvb2xlYW4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBSZXZlcnNlIEJpdFNITE4gSXNDdXN0b21GdW5jdGlvbiBSaWdodCBCaXRTSFJOIElzRGF0ZSBSSnVzdGlmeSBCaXRYb3IKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc0RlYnVnTW9kZSBSb3VuZCBDZWlsaW5nIElzRGVmaW5lZCBSVHJpbSBDaGFyc2V0RGVjb2RlIElzTGVhcFllYXIgU2Vjb25kCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQ2hhcnNldEVuY29kZSBJc051bWVyaWMgU2VuZEdhdGV3YXlNZXNzYWdlIENociBJc051bWVyaWNEYXRlIFNldEVuY29kaW5nCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgQ0p1c3RpZnkgSXNPYmplY3QgU2V0TG9jYWxlIENvbXBhcmUgSXNRdWVyeSBTZXRQcm9maWxlU3RyaW5nIENvbXBhcmVOb0Nhc2UKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1NpbXBsZVZhbHVlIFNldFZhcmlhYmxlIENvcyBJc1NPQVBSZXF1ZXN0IFNnbiBDcmVhdGVEYXRlIElzU3RydWN0IFNpbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIENyZWF0ZURhdGVUaW1lIElzVXNlckluUm9sZSBTcGFuRXhjbHVkaW5nIENyZWF0ZU9iamVjdCBJc1ZhbGlkIFNwYW5JbmNsdWRpbmcKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBDcmVhdGVPREJDRGF0ZSBJc1dERFggU3FyIENyZWF0ZU9EQkNEYXRlVGltZSBJc1hNTCBTdHJpcENSIENyZWF0ZU9EQkNUaW1lCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgSXNYbWxBdHRyaWJ1dGUgU3RydWN0QXBwZW5kIENyZWF0ZVRpbWUgSXNYbWxEb2MgU3RydWN0Q2xlYXIgQ3JlYXRlVGltZVNwYW4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBJc1htbEVsZW0gU3RydWN0Q29weSBDcmVhdGVVVUlEIElzWG1sTm9kZSBTdHJ1Y3RDb3VudCBEYXRlQWRkIElzWG1sUm9vdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFN0cnVjdERlbGV0ZSBEYXRlQ29tcGFyZSBKYXZhQ2FzdCBTdHJ1Y3RGaW5kIERhdGVDb252ZXJ0IEpTU3RyaW5nRm9ybWF0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgU3RydWN0RmluZEtleSBEYXRlRGlmZiBMQ2FzZSBTdHJ1Y3RGaW5kVmFsdWUgRGF0ZUZvcm1hdCBMZWZ0IFN0cnVjdEdldAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERhdGVQYXJ0IExlbiBTdHJ1Y3RJbnNlcnQgRGF5IExpc3RBcHBlbmQgU3RydWN0SXNFbXB0eSBEYXlPZldlZWsKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMaXN0Q2hhbmdlRGVsaW1zIFN0cnVjdEtleUFycmF5IERheU9mV2Vla0FzU3RyaW5nIExpc3RDb250YWlucyBTdHJ1Y3RLZXlFeGlzdHMKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBEYXlPZlllYXIgTGlzdENvbnRhaW5zTm9DYXNlIFN0cnVjdEtleUxpc3QgRGF5c0luTW9udGggTGlzdERlbGV0ZUF0IFN0cnVjdE5ldworc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIERheXNJblllYXIgTGlzdEZpbmQgU3RydWN0U29ydCBERSBMaXN0RmluZE5vQ2FzZSBTdHJ1Y3RVcGRhdGUgRGVjaW1hbEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIExpc3RGaXJzdCBUYW4gRGVjcmVtZW50VmFsdWUgTGlzdEdldEF0IFRpbWVGb3JtYXQgRGVjcnlwdCBMaXN0SW5zZXJ0QXQKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBUb0Jhc2U2NCBEZWxldGVDbGllbnRWYXJpYWJsZSBMaXN0TGFzdCBUb0JpbmFyeSBEaXJlY3RvcnlFeGlzdHMgTGlzdExlbgorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIFRvU2NyaXB0IERvbGxhckZvcm1hdCBMaXN0UHJlcGVuZCBUb1N0cmluZyBEdXBsaWNhdGUgTGlzdFF1YWxpZnkgVHJpbSBFbmNyeXB0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFJlc3QgVUNhc2UgRXZhbHVhdGUgTGlzdFNldEF0IFVSTERlY29kZSBFeHAgTGlzdFNvcnQgVVJMRW5jb2RlZEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEV4cGFuZFBhdGggTGlzdFRvQXJyYXkgVVJMU2Vzc2lvbkZvcm1hdCBGaWxlRXhpc3RzIExpc3RWYWx1ZUNvdW50IFZhbCBGaW5kCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTGlzdFZhbHVlQ291bnROb0Nhc2UgVmFsdWVMaXN0IEZpbmROb0Nhc2UgTEp1c3RpZnkgV2VlayBGaW5kT25lT2YgTG9nIFdyYXAKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBGaXJzdERheU9mTW9udGggTG9nMTAgV3JpdGVPdXRwdXQgRml4IExTQ3VycmVuY3lGb3JtYXQgWG1sQ2hpbGRQb3MgRm9ybWF0QmFzZU4KK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBMU0RhdGVGb3JtYXQgWG1sRWxlbU5ldyBHZXRUZW1wRGlyZWN0b3J5IExTRXVyb0N1cnJlbmN5Rm9ybWF0IFhtbEZvcm1hdAorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEF1dGhVc2VyIExTSXNDdXJyZW5jeSBYbWxHZXROb2RlVHlwZSBHZXRCYXNlVGFnRGF0YSBMU0lzRGF0ZSBYbWxOZXcKK3N5biBrZXl3b3JkIGNmRnVuY3Rpb25OYW1lIGNvbnRhaW5lZCBHZXRCYXNlVGFnTGlzdCBMU0lzTnVtZXJpYyBYbWxQYXJzZSBHZXRCYXNlVGVtcGxhdGVQYXRoIExTTnVtYmVyRm9ybWF0CitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgWG1sU2VhcmNoIEdldENsaWVudFZhcmlhYmxlc0xpc3QgTFNQYXJzZUN1cnJlbmN5IFhtbFRyYW5zZm9ybQorc3luIGtleXdvcmQgY2ZGdW5jdGlvbk5hbWUgY29udGFpbmVkIEdldEN1cnJlbnRUZW1wbGF0ZVBhdGggTFNQYXJzZURhdGVUaW1lIFhtbFZhbGlkYXRlIEdldERpcmVjdG9yeUZyb21QYXRoCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFNQYXJzZUV1cm9DdXJyZW5jeSBZZWFyIEdldEVuY29kaW5nIExTUGFyc2VOdW1iZXIgWWVzTm9Gb3JtYXQgR2V0RXhjZXB0aW9uCitzeW4ga2V5d29yZCBjZkZ1bmN0aW9uTmFtZSBjb250YWluZWQgTFNUaW1lRm9ybWF0IEdldEZpbGVGcm9tUGF0aCBMVHJpbSAKIAogc3luIGNsdXN0ZXIgaHRtbFRhZ05hbWVDbHVzdGVyIGFkZD1jZlRhZ05hbWUKIHN5biBjbHVzdGVyIGh0bWxBcmdDbHVzdGVyIGFkZD1jZkFyZyxjZkZ1bmN0aW9uTmFtZQpAQCAtMTMwLDcgKzE1Myw3IEBACiAKICIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KICIgRm9yIHZlcnNpb24gNS54IGFuZCBlYXJsaWVyLCBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeS4KLSIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlciwgb25seSB3aGVuIGFuZCBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0LgorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyLCBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldC4KIGlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9jZl9zeW5faW5pdHMiKQogICBpZiB2ZXJzaW9uIDwgNTA4CiAgICAgbGV0IGRpZF9jZl9zeW5faW5pdHMgPSAxCkBAIC0xNDIsNiArMTY1LDcgQEAKICAgSGlMaW5rIGNmVGFnTmFtZSBTdGF0ZW1lbnQKICAgSGlMaW5rIGNmQXJnIFR5cGUKICAgSGlMaW5rIGNmRnVuY3Rpb25OYW1lIEZ1bmN0aW9uCisgIEhpTGluayBjZkZ1bmN0aW9uUmVnaW9uIFByZVByb2MKIAogICBkZWxjb21tYW5kIEhpTGluawogZW5kaWYKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2hlbHAudmltIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KaW5kZXggN2Q1MGY1NS4uMjZmNWRlZSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvaGVscC52aW0KKysrIGIvcnVudGltZS9zeW50YXgvaGVscC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVmltIGhlbHAgZmlsZQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciAoQnJhbUB2aW0ub3JnKQotIiBMYXN0IENoYW5nZToJMjAwNSBKdW4gMjAKKyIgTGFzdCBDaGFuZ2U6CTIwMDUgU2VwIDAxCiAKICIgUXVpdCB3aGVuIGEgKGN1c3RvbSkgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQpAQCAtMTA2LDYgKzEwNiw3IEBACiBzeW4gbWF0Y2ggaGVscEVycm9yCQkiXHRbKiBdRXJyb3JcdFwrW2Etel0uKiIKIHN5biBtYXRjaCBoZWxwVG9kbwkJIlx0WyogXVRvZG9cdFwrW2Etel0uKiIKIAorc3luIG1hdGNoIGhlbHBVUkwgYFx2PCgoKGh0dHBzP3xmdHB8Z29waGVyKTovL3wobWFpbHRvfGZpbGV8bmV3cyk6KVteJyAJPD4iXSt8KHd3d3x3ZWJ8dzMpW2EtejAtOV8tXSpcLlthLXowLTkuXy1dK1wuW14nIAk8PiJdKylbYS16MC05L11gCiAKICIgQWRkaXRpb25hbGx5IGxvYWQgYSBsYW5ndWFnZS1zcGVjaWZpYyBzeW50YXggZmlsZSAiaGVscF9hYi52aW0iLgogbGV0IHM6aSA9IG1hdGNoKGV4cGFuZCgiJSIpLCAnXC5cYVxheCQnKQpAQCAtMTY2LDYgKzE2Nyw3IEBACiBoaSBkZWYgbGluayBoZWxwVW5kZXJsaW5lZAlVbmRlcmxpbmVkCiBoaSBkZWYgbGluayBoZWxwRXJyb3IJCUVycm9yCiBoaSBkZWYgbGluayBoZWxwVG9kbwkJVG9kbworaGkgZGVmIGxpbmsgaGVscFVSTAkJU3RyaW5nCiAKIGxldCBiOmN1cnJlbnRfc3ludGF4ID0gImhlbHAiCiAKZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZSBiL3NyYy9NYWtlZmlsZQppbmRleCBjZWJiYmMzLi4wMzQwZjc5IDEwMDY0NAotLS0gYS9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL01ha2VmaWxlCkBAIC0xMTksMTIgKzExOSwxNCBAQAogIwlJZiB5b3UgZG9uJ3Qgd2FudCB0byBpbnN0YWxsIGV2ZXJ5dGhpbmcsIHRoZXJlIGFyZSBvdGhlciB0YXJnZXRzOgogIwkJbWFrZSBpbnN0YWxsdmltCQlvbmx5IGluc3RhbGxzIFZpbSwgbm90IHRoZSB0b29scwogIwkJbWFrZSBpbnN0YWxsdmltYmluCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSBleGVjdXRhYmxlCi0jCQltYWtlIGluc3RhbGxydW50aW1lCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSBoZWxwIGFuZAorIwkJbWFrZSBpbnN0YWxscnVudGltZQlpbnN0YWxscyBtb3N0IG9mIHRoZSBydW50aW1lIGZpbGVzCisjCQltYWtlIGluc3RhbGxydGJhc2UJb25seSBpbnN0YWxscyB0aGUgVmltIGhlbHAgYW5kCiAjCQkJCQkJCXJ1bnRpbWUgZmlsZXMKICMJCW1ha2UgaW5zdGFsbGxpbmtzCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSBiaW5hcnkgbGlua3MKICMJCW1ha2UgaW5zdGFsbG1hbmxpbmtzCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSBtYW5wYWdlIGxpbmtzCiAjCQltYWtlIGluc3RhbGxtYWNyb3MJb25seSBpbnN0YWxscyB0aGUgVmltIG1hY3JvcwotIwkJbWFrZSBpbnN0YWxsdHV0b3IJb25seSBpbnN0YWxscyB0aGUgVmltIHR1dG9yCisjCQltYWtlIGluc3RhbGx0dXRvcmJpbglvbmx5IGluc3RhbGxzIHRoZSBWaW0gdHV0b3IgcHJvZ3JhbQorIwkJbWFrZSBpbnN0YWxsdHV0b3IJb25seSBpbnN0YWxscyB0aGUgVmltIHR1dG9yIGZpbGVzCiAjCQltYWtlIGluc3RhbGxzcGVsbAlvbmx5IGluc3RhbGxzIHRoZSBzcGVsbCBmaWxlcwogIwkJbWFrZSBpbnN0YWxsdG9vbHMJb25seSBpbnN0YWxscyB4eGQKICMJSWYgeW91IGluc3RhbGwgVmltLCBub3QgdG8gaW5zdGFsbCBmb3IgcmVhbCBidXQgdG8gcHJlcGFyZSBhIHBhY2thZ2UKQEAgLTE3MjUsNyArMTcyNyw4IEBACiAKIGluc3RhbGxfbm9ybWFsOiBpbnN0YWxsdmltIGluc3RhbGx0b29scyAkKElOU1RBTExfTEFOR1MpIGluc3RhbGwtaWNvbnMKIAotaW5zdGFsbHZpbTogaW5zdGFsbHZpbWJpbiBpbnN0YWxscnVudGltZSBpbnN0YWxsbGlua3MgaW5zdGFsbG1hbmxpbmtzIGluc3RhbGxtYWNyb3MgaW5zdGFsbHR1dG9yIGluc3RhbGxzcGVsbAoraW5zdGFsbHZpbTogaW5zdGFsbHZpbWJpbiBpbnN0YWxsdHV0b3JiaW4gXAorCQlpbnN0YWxscnVudGltZSBpbnN0YWxsbGlua3MgaW5zdGFsbG1hbmxpbmtzCiAKIGluc3RhbGx2aW1iaW46ICQoVklNVEFSR0VUKSAkKERFU1RESVIpJChleGVjX3ByZWZpeCkgJChERVNUX0JJTikKIAktaWYgdGVzdCAtZiAkKERFU1RfQklOKS8kKFZJTVRBUkdFVCk7IHRoZW4gXApAQCAtMTc0Myw4ICsxNzQ2LDExIEBACiBJTlNUQUxMTUFOQVJHUyA9ICQoVklNTE9DKSAkKFNDUklQVExPQykgJChWSU1SQ0xPQykgJChIRUxQU09VUkNFKSAkKE1BTk1PRCkgXAogCQkkKFZJTU5BTUUpICQoVklNRElGRk5BTUUpICQoRVZJTU5BTUUpCiAKKyMgSW5zdGFsbCBtb3N0IG9mIHRoZSBydW50aW1lIGZpbGVzCitpbnN0YWxscnVudGltZTogaW5zdGFsbHJ0YmFzZSBpbnN0YWxsbWFjcm9zIGluc3RhbGx0dXRvciBpbnN0YWxsc3BlbGwKKwkKICMgaW5zdGFsbCB0aGUgaGVscCBmaWxlczsgZmlyc3QgYWRqdXN0IHRoZSBjb250ZW50cyBmb3IgdGhlIGZpbmFsIGxvY2F0aW9uCi1pbnN0YWxscnVudGltZTogJChIRUxQU09VUkNFKS92aW0uMSAkKERFU1RfVklNKSAkKERFU1RfUlQpIFwKK2luc3RhbGxydGJhc2U6ICQoSEVMUFNPVVJDRSkvdmltLjEgJChERVNUX1ZJTSkgJChERVNUX1JUKSBcCiAJCSQoREVTVF9IRUxQKSAkKERFU1RfUFJJTlQpICQoREVTVF9DT0wpICQoREVTVF9TWU4pICQoREVTVF9JTkQpIFwKIAkJJChERVNUX0ZUUCkgJChERVNUX0FVVE8pICQoREVTVF9QTFVHKSAkKERFU1RfVFVUT1IpIFwKIAkJJChERVNUX1NQRUxMKSAkKERFU1RfQ09NUCkKQEAgLTE4MzQsOSArMTg0MCwxMSBAQAogCSAgICAgIGZpCiAKICMgaW5zdGFsbCB0aGUgdHV0b3IgZmlsZXMKLWluc3RhbGx0dXRvcjogJChERVNUX1ZJTSkgJChERVNUX1JUKSAkKERFU1RfVFVUT1IpCitpbnN0YWxsdHV0b3JiaW46ICQoREVTVF9WSU0pCiAJJChJTlNUQUxMX0RBVEEpIHZpbXR1dG9yICQoREVTVF9CSU4pLyQoVklNTkFNRSl0dXRvcgogCWNobW9kICQoU0NSSVBUTU9EKSAkKERFU1RfQklOKS8kKFZJTU5BTUUpdHV0b3IKKworaW5zdGFsbHR1dG9yOiAkKERFU1RfUlQpICQoREVTVF9UVVRPUikKIAktJChJTlNUQUxMX0RBVEEpICQoVFVUT1JTT1VSQ0UpL1JFQURNRSogJChUVVRPUlNPVVJDRSkvdHV0b3IqICQoREVTVF9UVVRPUikKIAljaG1vZCAkKEhFTFBNT0QpICQoREVTVF9UVVRPUikvKgogCkBAIC0yNTM5LDcgKzI1NDcsMTkgQEAKICNJQ09OUyA9ICQoYWRkcHJlZml4ICQoUkVTRElSKS8sICQoSUNPTl9BUFApICQoSUNPTl9ET0MpICQoSUNPTl9ET0NUWFQpKQogCiBpbnN0YWxsX21hY29zeDogZ3VpX2J1bmRsZQorIyBSZW1vdmUgdGhlIGxpbmsgdG8gdGhlIHJ1bnRpbWUgZGlyLCBkb24ndCB3YW50IHRvIGNvcHkgYWxsIG9mIHRoYXQuCisJLXJtICQoQVBQRElSKS9ydW50aW1lCiAJJChJTlNUQUxMX0RBVEFfUikgJChBUFBESVIpICQoREVTVERJUikkKHByZWZpeCkKKyMgSW5zdGFsbCB0aGUgcnVudGltZSBmaWxlcy4gIFJlY3Vyc2l2ZSEKKwktbWtkaXIgJChERVNURElSKSQocHJlZml4KS8kKEFQUERJUikvcnVudGltZQorCS1ta2RpciAkKERFU1RESVIpJChwcmVmaXgpLyQoQVBQRElSKS9iaW4KKwlzcmNkaXI9YHB3ZGA7ICQoTUFLRSkgLWYgTWFrZWZpbGUgaW5zdGFsbHJ1bnRpbWUgXAorCQlWSU1FWEU9JCRzcmNkaXIvJChWSU1UQVJHRVQpIFwKKwkJcHJlZml4PSQoREVTVERJUikkKHByZWZpeCkvJChBUFBESVIpIFwKKwkJVklNUlRMT0M9JChERVNURElSKSQocHJlZml4KS8kKEFQUERJUikvcnVudGltZQorIyBQdXQgdGhlIGxpbmsgYmFjay4KKwlsbiAtcyBgcHdkYC8uLi9ydW50aW1lICQoQVBQRElSKQorIyBUT0RPOiBDcmVhdGUgdGhlIHZpbXR1dG9yIGFwcGxpY2F0aW9uLgogCiBndWlfYnVuZGxlOiAkKEFQUERJUikgYnVuZGxlLWRpciBidW5kbGUtZXhlY3V0YWJsZSBidW5kbGUtaW5mbyBidW5kbGUtcmVzb3VyY2UgXAogCWJ1bmRsZS1sYW5ndWFnZQpAQCAtMjU0OSwxMiArMjU2OSw5IEBACiAKIGJ1bmRsZS1kaXI6ICQoQVBQRElSKS9Db250ZW50cyAkKFZJTVRBUkdFVCkKIAktQHNyY2Rpcj1gcHdkYDsgY2QgJChIRUxQU09VUkNFKTsgJChNQUtFKSBWSU1FWEU9JCRzcmNkaXIvJChWSU1UQVJHRVQpIHZpbXRhZ3MKLQljcCAtUiAuLi9ydW50aW1lICQoQVBQRElSKQotIyBXaGVuIHVzaW5nIENWUyBzb21lIENWUyBkaXJlY3RvcmllcyBtaWdodCBoYXZlIGJlZW4gY29waWVkLgotCWN2cz1gZmluZCAkKEFQUERJUikgXCggLW5hbWUgQ1ZTIC1vIC1uYW1lIEFBUERJUiBcKSAtcHJpbnRgOyBcCi0JICAgICAgaWYgdGVzdCAtbiAiJCRjdnMiOyB0aGVuIFwKLQkJIHJtIC1yZiAkJGN2czsgXAotCSAgICAgIGZpCisjIE1ha2UgYSBsaW5rIHRvIHRoZSBydW50aW1lIGRpcmVjdG9yeSwgc28gdGhhdCB3ZSBjYW4gdHJ5IG91dCB0aGUgZXhlY3V0YWJsZQorIyB3aXRob3V0IGluc3RhbGxpbmcgaXQuCisJLWxuIC1zIGBwd2RgLy4uL3J1bnRpbWUgJChBUFBESVIpCiAKIGJ1bmRsZS1leGVjdXRhYmxlOiAkKFZJTVRBUkdFVCkKIAljcCAkKFZJTVRBUkdFVCkgJChBUFBESVIpL0NvbnRlbnRzL01hY09TLyQoVklNVEFSR0VUKQpkaWZmIC0tZ2l0IGEvc3JjL2F1dG8vY29uZmlndXJlIGIvc3JjL2F1dG8vY29uZmlndXJlCmluZGV4IGVjYjcxNjEuLjZlMTE5NzggMTAwNzU1Ci0tLSBhL3NyYy9hdXRvL2NvbmZpZ3VyZQorKysgYi9zcmMvYXV0by9jb25maWd1cmUKQEAgLTI4NTEsNyArMjg1MSw2IEBACiBlY2hvICIke0VDSE9fVH1ubyIgPiY2OzsKIGVzYWMKIAotREVGQVVMVF9WSU1OQU1FPXZpbQogZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBEYXJ3aW4gKE1hYyBPUyBYKSIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBEYXJ3aW4gKE1hYyBPUyBYKS4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgImAodW5hbWUpIDI+L2Rldi9udWxsYCIgPSBEYXJ3aW47IHRoZW4KQEAgLTMyNzQsNyArMzI3Myw2IEBACiAgICAgaWYgdGVzdCAieCRDQVJCT04iID0gInh5ZXMiOyB0aGVuCiAgICAgICBpZiB0ZXN0IC16ICIkd2l0aF94IiAtYSAiWCRlbmFibGVfZ3VpIiAhPSBYbW90aWYgLWEgIlgkZW5hYmxlX2d1aSIgIT0gWGF0aGVuYSAtYSAiWCRlbmFibGVfZ3VpIiAhPSBYZ3RrIC1hICJYJGVuYWJsZV9ndWkiICE9IFhndGsyOyB0aGVuCiAJd2l0aF94PW5vCi0JREVGQVVMVF9WSU1OQU1FPVZpbQogICAgICAgZmkKICAgICBmaQogICBmaQpAQCAtMzMxNiw3ICszMzE0LDcgQEAKICAgVklNTkFNRT0iJHdpdGh2YWwiOyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkVklNTkFNRSIgPiY1CiBlY2hvICIke0VDSE9fVH0kVklNTkFNRSIgPiY2CiBlbHNlCi0gIFZJTU5BTUU9IiRERUZBVUxUX1ZJTU5BTUUiOyBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBEZWZhdWx0aW5nIHRvICRWSU1OQU1FIiA+JjUKKyAgVklNTkFNRT0idmltIjsgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogRGVmYXVsdGluZyB0byAkVklNTkFNRSIgPiY1CiBlY2hvICIke0VDSE9fVH1EZWZhdWx0aW5nIHRvICRWSU1OQU1FIiA+JjYKIGZpOwogCkBAIC03NTIxLDcgKzc1MTksNyBAQAogICAgIGRvCiAgICAgICBmb3IgaiBpbiBxc3R5bGUuaDsKICAgICAgIGRvCi0gICAgICAgZWNobyAiY29uZmlndXJlOiA3NTI0OiAkaS8kaiIgPiY1CisgICAgICAgZWNobyAiY29uZmlndXJlOiA3NTIyOiAkaS8kaiIgPiY1CiAgICAgICAgaWYgdGVzdCAtciAiJGkvJGoiOyB0aGVuCiAgICAgICAgICBlY2hvICJ0YWtpbmcgdGhhdCIgPiY1CiAgICAgICAgICBxdF9pbmNkaXI9JGkKQEAgLTc1NDEsNyArNzUzOSw3IEBACiAgICAgZG8KICAgICAgIGZvciBqIGluIGthcHBsaWNhdGlvbi5oOwogICAgICAgZG8KLSAgICAgICBlY2hvICJjb25maWd1cmU6IDc1NDQ6ICRpLyRqIiA+JjUKKyAgICAgICBlY2hvICJjb25maWd1cmU6IDc1NDI6ICRpLyRqIiA+JjUKICAgICAgICBpZiB0ZXN0IC1yICIkaS8kaiI7IHRoZW4KICAgICAgICAgIGVjaG8gInRha2luZyB0aGF0IiA+JjUKICAgICAgICAgIGtkZV9pbmNkaXI9JGkKQEAgLTgwODAsNiArODA3OCw5IEBACiAgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKIGVjaG8gIiR7RUNIT19UfXllcyIgPiY2OwogICBHVUlUWVBFPUNBUkJPTkdVSQorICBpZiB0ZXN0ICIkVklNTkFNRSIgPSAidmltIjsgdGhlbgorICAgIFZJTU5BTUU9VmltCisgIGZpCiAgICAgU0tJUF9HVEs9WUVTOwogICBTS0lQX0dUSzI9WUVTOwogICBTS0lQX0dOT01FPVlFUzsKQEAgLTExMjAzLDcgKzExMjA0LDYgQEAKIGZpCiBybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiAKLWlmIHRlc3QgIngkTUFDT1NYIiAhPSAieHllcyI7IHRoZW4KIAogZm9yIGFjX2hlYWRlciBpbiBzdHJpbmdzLmgKIGRvCkBAIC0xMTM1NCw3ICsxMTM1NCw2IEBACiAKIGRvbmUKIAotZmkKIAogZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGlmIHN0cmluZ3MuaCBjYW4gYmUgaW5jbHVkZWQgYWZ0ZXIgc3RyaW5nLmgiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBpZiBzdHJpbmdzLmggY2FuIGJlIGluY2x1ZGVkIGFmdGVyIHN0cmluZy5oLi4uICRFQ0hPX0MiID4mNgpkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1ZmZlci5jCmluZGV4IDFmYjk1ZmQuLjIxYjNiYzQgMTAwNjQ0Ci0tLSBhL3NyYy9idWZmZXIuYworKysgYi9zcmMvYnVmZmVyLmMKQEAgLTE3NDYsNiArMTc0Niw3IEBACiAjZW5kaWYKICNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKICAgICBjbGVhcl9zdHJpbmdfb3B0aW9uKCZidWYtPmJfcF9jZnUpOworICAgIGNsZWFyX3N0cmluZ19vcHRpb24oJmJ1Zi0+Yl9wX29mdSk7CiAjZW5kaWYKICNpZmRlZiBGRUFUX1FVSUNLRklYCiAgICAgY2xlYXJfc3RyaW5nX29wdGlvbigmYnVmLT5iX3BfZ3ApOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbmZpZ3VyZS5pbiBiL3NyYy9jb25maWd1cmUuaW4KaW5kZXggZTlmMjFhMi4uNzRmYzAxNyAxMDA2NDQKLS0tIGEvc3JjL2NvbmZpZ3VyZS5pbgorKysgYi9zcmMvY29uZmlndXJlLmluCkBAIC03OSw3ICs3OSw2IEBACiBkbmwgQ2hlY2sgZm9yIERhcndpbiBhbmQgTWFjT1MgWAogZG5sIFdlIGRvIGEgY2hlY2sgZm9yIE1hY09TIFggaW4gdGhlIHZlcnkgYmVnaW5uaW5nIGJlY2F1c2UgdGhlcmUKIGRubCBhcmUgYSBsb3Qgb2Ygb3RoZXIgdGhpbmdzIHdlIG5lZWQgdG8gY2hhbmdlIGJlc2lkZXMgR1VJIHN0dWZmCi1ERUZBVUxUX1ZJTU5BTUU9dmltCiBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBEYXJ3aW4gKE1hYyBPUyBYKV0pCiBpZiB0ZXN0ICJgKHVuYW1lKSAyPi9kZXYvbnVsbGAiID0gRGFyd2luOyB0aGVuCiAgIEFDX01TR19SRVNVTFQoeWVzKQpAQCAtMTE0LDcgKzExMyw2IEBACiAgICAgaWYgdGVzdCAieCRDQVJCT04iID0gInh5ZXMiOyB0aGVuCiAgICAgICBpZiB0ZXN0IC16ICIkd2l0aF94IiAtYSAiWCRlbmFibGVfZ3VpIiAhPSBYbW90aWYgLWEgIlgkZW5hYmxlX2d1aSIgIT0gWGF0aGVuYSAtYSAiWCRlbmFibGVfZ3VpIiAhPSBYZ3RrIC1hICJYJGVuYWJsZV9ndWkiICE9IFhndGsyOyB0aGVuCiAJd2l0aF94PW5vCi0JREVGQVVMVF9WSU1OQU1FPVZpbQogICAgICAgZmkKICAgICBmaQogICBmaQpAQCAtMTUzLDcgKzE1MSw3IEBACiBBQ19NU0dfQ0hFQ0tJTkcoLS13aXRoLXZpbS1uYW1lIGFyZ3VtZW50KQogQUNfQVJHX1dJVEgodmltLW5hbWUsIFsgIC0td2l0aC12aW0tbmFtZT1OQU1FICAgIHdoYXQgdG8gY2FsbCB0aGUgVmltIGV4ZWN1dGFibGVdLAogCVZJTU5BTUU9IiR3aXRodmFsIjsgQUNfTVNHX1JFU1VMVCgkVklNTkFNRSksCi0JVklNTkFNRT0iJERFRkFVTFRfVklNTkFNRSI7IEFDX01TR19SRVNVTFQoRGVmYXVsdGluZyB0byAkVklNTkFNRSkpCisJVklNTkFNRT0idmltIjsgQUNfTVNHX1JFU1VMVChEZWZhdWx0aW5nIHRvICRWSU1OQU1FKSkKIEFDX1NVQlNUKFZJTU5BTUUpCiBBQ19NU0dfQ0hFQ0tJTkcoLS13aXRoLWV4LW5hbWUgYXJndW1lbnQpCiBBQ19BUkdfV0lUSChleC1uYW1lLCBbICAtLXdpdGgtZXgtbmFtZT1OQU1FICAgICB3aGF0IHRvIGNhbGwgdGhlIEV4IGV4ZWN1dGFibGVdLApAQCAtMTU1OCw2ICsxNTU2LDkgQEAKICAgZG5sIGFscmVhZHkgZGlkIHRoaXMKICAgQUNfTVNHX1JFU1VMVCh5ZXMpOwogICBHVUlUWVBFPUNBUkJPTkdVSQorICBpZiB0ZXN0ICIkVklNTkFNRSIgPSAidmltIjsgdGhlbgorICAgIFZJTU5BTUU9VmltCisgIGZpCiAgIGRubCBza2lwIGV2ZXJ5dGhpbmcgZWxzZQogICBTS0lQX0dUSz1ZRVM7CiAgIFNLSVBfR1RLMj1ZRVM7CkBAIC0yMjU3LDEwICsyMjU4LDcgQEAKIAkJICAgICAgQUNfREVGSU5FKEhBVkVfUFRIUkVBRF9OUF9IKSwKIAkgICAgICBBQ19NU0dfUkVTVUxUKG5vKSkKIAotZG5sIE9uIE1hYyBPUyBYIHN0cmluZ3MuaCBleGlzdHMgYnV0IHByb2R1Y2VzIGEgd2FybmluZyBtZXNzYWdlIDotKAotaWYgdGVzdCAieCRNQUNPU1giICE9ICJ4eWVzIjsgdGhlbgotICBBQ19DSEVDS19IRUFERVJTKHN0cmluZ3MuaCkKLWZpCitBQ19DSEVDS19IRUFERVJTKHN0cmluZ3MuaCkKIAogZG5sIENoZWNrIGlmIHN0cmluZ3MuaCBhbmQgc3RyaW5nLmggY2FuIGJvdGggYmUgaW5jbHVkZWQgd2hlbiBkZWZpbmVkLgogQUNfTVNHX0NIRUNLSU5HKFtpZiBzdHJpbmdzLmggY2FuIGJlIGluY2x1ZGVkIGFmdGVyIHN0cmluZy5oXSkKZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IGYzOTlmMzAuLmQxYTQ4ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtODE5LDcgKzgxOSw3IEBACiAJICAgIC8qRkFMTFRIUk9VR0gqLwogCiAJY2FzZSBDdHJsX086CS8qIGV4ZWN1dGUgb25lIGNvbW1hbmQgKi8KLSNpZmRlZiBGRUFUX0lOU19FWFBBTkQKKyNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKIAkgICAgaWYgKGN0cmxfeF9tb2RlID09IENUUkxfWF9PQ0NVTFQpCiAJCWdvdG8gZG9jb21wbGV0ZTsKICNlbmRpZgpAQCAtMTg0NCw5ICsxODQ0LDkgQEAKICNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKIAljYXNlIENUUkxfWF9GVU5DVElPTjoKIAkgICAgcmV0dXJuIChjID09IEN0cmxfVSB8fCBjID09IEN0cmxfUCB8fCBjID09IEN0cmxfTik7Ci0jZW5kaWYKIAljYXNlIENUUkxfWF9PQ0NVTFQ6CiAJICAgIHJldHVybiAoYyA9PSBDdHJsX08gfHwgYyA9PSBDdHJsX1AgfHwgYyA9PSBDdHJsX04pOworI2VuZGlmCiAJY2FzZSBDVFJMX1hfU1BFTEw6CiAJICAgIHJldHVybiAoYyA9PSBDdHJsX1MgfHwgYyA9PSBDdHJsX1AgfHwgYyA9PSBDdHJsX04pOwogICAgIH0KQEAgLTIzNjAsMTAgKzIzNjAsMTAgQEAKIAkgICAgY2FzZSBDdHJsX1U6CiAJCWN0cmxfeF9tb2RlID0gQ1RSTF9YX0ZVTkNUSU9OOwogCQlicmVhazsKLSNlbmRpZgogCSAgICBjYXNlIEN0cmxfTzoKIAkJY3RybF94X21vZGUgPSBDVFJMX1hfT0NDVUxUOwogCQlicmVhazsKKyNlbmRpZgogCSAgICBjYXNlICdzJzoKIAkgICAgY2FzZSBDdHJsX1M6CiAJCWN0cmxfeF9tb2RlID0gQ1RSTF9YX1NQRUxMOwpAQCAtMjU4MSwzNiArMjU4MSwzOCBAQAogfQogCiAjaWZkZWYgRkVBVF9DT01QTF9GVU5DCi1zdGF0aWMgaW50IGV4cGFuZF9ieV9mdW5jdGlvbiBfX0FSR1MoKGludCBjb2wsIGNoYXJfdSAqYmFzZSwgY2hhcl91ICoqKm1hdGNoZXMpKTsKK3N0YXRpYyBpbnQgZXhwYW5kX2J5X2Z1bmN0aW9uIF9fQVJHUygoaW50IHR5cGUsIGNoYXJfdSAqYmFzZSwgY2hhcl91ICoqKm1hdGNoZXMpKTsKIAogLyoKLSAqIEV4ZWN1dGUgdXNlciBkZWZpbmVkIGNvbXBsZXRlIGZ1bmN0aW9uICdjb21wbGV0ZWZ1bmMnLCBhbmQgZ2V0IG1hdGNoZXMgaW4KLSAqICJtYXRjaGVzIi4KKyAqIEV4ZWN1dGUgdXNlciBkZWZpbmVkIGNvbXBsZXRlIGZ1bmN0aW9uICdjb21wbGV0ZWZ1bmMnIG9yICdvY2N1bHRmdW5jJywgYW5kCisgKiBnZXQgbWF0Y2hlcyBpbiAibWF0Y2hlcyIuCiAgKiBSZXR1cm4gdmFsdWUgaXMgbnVtYmVyIG9mIG1hdGNoZXMuCiAgKi8KICAgICBzdGF0aWMgaW50Ci1leHBhbmRfYnlfZnVuY3Rpb24oY29sLCBiYXNlLCBtYXRjaGVzKQotICAgIGludAkJY29sOworZXhwYW5kX2J5X2Z1bmN0aW9uKHR5cGUsIGJhc2UsIG1hdGNoZXMpCisgICAgaW50CQl0eXBlOwkgICAgLyogQ1RSTF9YX09DQ1VMVCBvciBDVFJMX1hfRlVOQ1RJT04gKi8KICAgICBjaGFyX3UJKmJhc2U7CiAgICAgY2hhcl91CSoqKm1hdGNoZXM7CiB7CiAgICAgbGlzdF9UICAgICAgKm1hdGNobGlzdDsKLSAgICBjaGFyX3UJY29sYnVmWzMwXTsKLSAgICBjaGFyX3UJKmFyZ3NbM107CisgICAgY2hhcl91CSphcmdzWzJdOwogICAgIGxpc3RpdGVtX1QJKmxpOwogICAgIGdhcnJheV9UICAgIGdhOwogICAgIGNoYXJfdQkqcDsKKyAgICBjaGFyX3UJKmZ1bmNuYW1lOworICAgIHBvc19UCXBvczsKIAotICAgIGlmICgqY3VyYnVmLT5iX3BfY2Z1ID09IE5VTCkKKyAgICBmdW5jbmFtZSA9ICh0eXBlID09IENUUkxfWF9GVU5DVElPTikgPyBjdXJidWYtPmJfcF9jZnUgOiBjdXJidWYtPmJfcF9vZnU7CisgICAgaWYgKCpmdW5jbmFtZSA9PSBOVUwpCiAJcmV0dXJuIDA7CiAKICAgICAvKiBDYWxsICdjb21wbGV0ZWZ1bmMnIHRvIG9idGFpbiB0aGUgbGlzdCBvZiBtYXRjaGVzLiAqLwogICAgIGFyZ3NbMF0gPSAoY2hhcl91ICopIjAiOwotICAgIHNwcmludGYoKGNoYXIgKiljb2xidWYsICIlZCIsIGNvbCArIChpbnQpU1RSTEVOKGJhc2UpKTsKLSAgICBhcmdzWzFdID0gY29sYnVmOwotICAgIGFyZ3NbMl0gPSBiYXNlOworICAgIGFyZ3NbMV0gPSBiYXNlOwogCi0gICAgbWF0Y2hsaXN0ID0gY2FsbF9mdW5jX3JldGxpc3QoY3VyYnVmLT5iX3BfY2Z1LCAzLCBhcmdzLCBGQUxTRSk7CisgICAgcG9zID0gY3Vyd2luLT53X2N1cnNvcjsKKyAgICBtYXRjaGxpc3QgPSBjYWxsX2Z1bmNfcmV0bGlzdChmdW5jbmFtZSwgMiwgYXJncywgRkFMU0UpOworICAgIGN1cndpbi0+d19jdXJzb3IgPSBwb3M7CS8qIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbiAqLwogICAgIGlmIChtYXRjaGxpc3QgPT0gTlVMTCkKIAlyZXR1cm4gMDsKIApAQCAtMjYzNCwzMCArMjYzNiw2IEBACiB9CiAjZW5kaWYgLyogRkVBVF9DT01QTF9GVU5DICovCiAKLXN0YXRpYyBpbnQgZXhwYW5kX29jY3VsdCBfX0FSR1MoKGxpbmVucl9UIGxudW0sIGludCBjb2wsIGNoYXJfdSAqYmFzZSwgY2hhcl91ICoqKm1hdGNoZXMpKTsKLQotLyoKLSAqIFBlcmZvcm0gb2NjdWx0IGNvbXBsZXRpb24nCi0gKiBSZXR1cm4gdmFsdWUgaXMgbnVtYmVyIG9mIGNhbmRpZGF0ZXMgYW5kIGFycmF5IG9mIGNhbmRpZGF0ZXMgYXMgIm1hdGNocCIuCi0gKi8KLSAgICBzdGF0aWMgaW50Ci1leHBhbmRfb2NjdWx0KGxudW0sIGNvbCwgcGF0LCBtYXRjaHApCi0gICAgbGluZW5yX1QJbG51bTsKLSAgICBpbnQJCWNvbDsKLSAgICBjaGFyX3UJKnBhdDsKLSAgICBjaGFyX3UJKioqbWF0Y2hwOwotewotICAgIGludAkgICAgbnVtX21hdGNoZXM7Ci0KLSAgICAvKiBVc2UgdGFnIGNvbXBsZXRpb24gZm9yIG5vdy4gKi8KLSAgICBpZiAoZmluZF90YWdzKHBhdCwgJm51bV9tYXRjaGVzLCBtYXRjaHAsCi0JICAgIFRBR19SRUdFWFAgfCBUQUdfTkFNRVMgfCBUQUdfTk9JQyB8Ci0JICAgIFRBR19JTlNfQ09NUCB8IChjdHJsX3hfbW9kZSA/IFRBR19WRVJCT1NFIDogMCksCi0JICAgIFRBR19NQU5ZLCBjdXJidWYtPmJfZmZuYW1lKSA9PSBGQUlMKQotCXJldHVybiAwOwotICAgIHJldHVybiBudW1fbWF0Y2hlczsKLX0KLQogLyoKICAqIEdldCB0aGUgbmV4dCBleHBhbnNpb24ocyksIHVzaW5nICJjb21wbF9wYXR0ZXJuIi4KICAqIFRoZSBzZWFyY2ggc3RhcnRzIGF0IHBvc2l0aW9uICJpbmkiIGluIGN1cmJ1ZiBhbmQgaW4gdGhlIGRpcmVjdGlvbiBkaXIuCkBAIC0yODcwLDIwICsyODQ4LDEzIEBACiAKICNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKIAljYXNlIENUUkxfWF9GVU5DVElPTjoKLQkgICAgbnVtX21hdGNoZXMgPSBleHBhbmRfYnlfZnVuY3Rpb24oZmlyc3RfbWF0Y2hfcG9zLmNvbCwKLQkJCQkJCSAgICAgY29tcGxfcGF0dGVybiwgJm1hdGNoZXMpOworCWNhc2UgQ1RSTF9YX09DQ1VMVDoKKwkgICAgbnVtX21hdGNoZXMgPSBleHBhbmRfYnlfZnVuY3Rpb24odHlwZSwgY29tcGxfcGF0dGVybiwgJm1hdGNoZXMpOwogCSAgICBpZiAobnVtX21hdGNoZXMgPiAwKQogCQlpbnNfY29tcGxfYWRkX21hdGNoZXMobnVtX21hdGNoZXMsIG1hdGNoZXMsIGRpcik7CiAJICAgIGJyZWFrOwogI2VuZGlmCiAKLQljYXNlIENUUkxfWF9PQ0NVTFQ6Ci0JICAgIG51bV9tYXRjaGVzID0gZXhwYW5kX29jY3VsdChmaXJzdF9tYXRjaF9wb3MubG51bSwKLQkJCQkgZmlyc3RfbWF0Y2hfcG9zLmNvbCwgY29tcGxfcGF0dGVybiwgJm1hdGNoZXMpOwotCSAgICBpZiAobnVtX21hdGNoZXMgPiAwKQotCQlpbnNfY29tcGxfYWRkX21hdGNoZXMobnVtX21hdGNoZXMsIG1hdGNoZXMsIGRpcik7Ci0JICAgIGJyZWFrOwotCiAJY2FzZSBDVFJMX1hfU1BFTEw6CiAjaWZkZWYgRkVBVF9TWU5fSEwKIAkgICAgbnVtX21hdGNoZXMgPSBleHBhbmRfc3BlbGxpbmcoZmlyc3RfbWF0Y2hfcG9zLmxudW0sCkBAIC0zMzAyLDcgKzMyNzMsNyBAQAogCQkgICAgY29tcGxfY29sID0gY29tcGxfc3RhcnRwb3MuY29sOwogCQl9CiAJCWNvbXBsX2xlbmd0aCA9IGN1cndpbi0+d19jdXJzb3IuY29sIC0gKGludCljb21wbF9jb2w7Ci0JCS8qIElPYnVmIGlzIHVzZWQgdG8gYWRkIGEgIndvcmQgZnJvbSB0aGUgbmV4dCBsaW5lIiB3b3VsZCB3ZQorCQkvKiBJT2J1ZmYgaXMgdXNlZCB0byBhZGQgYSAid29yZCBmcm9tIHRoZSBuZXh0IGxpbmUiIHdvdWxkIHdlCiAJCSAqIGhhdmUgZW5vdWdoIHNwYWNlPyAganVzdCBiZWluZyBwYXJhbm9pYyAqLwogI2RlZmluZQlNSU5fU1BBQ0UgNzUKIAkJaWYgKGNvbXBsX2xlbmd0aCA+IChJT1NJWkUgLSBNSU5fU1BBQ0UpKQpAQCAtMzQ4NiwyNyArMzQ1NywzMSBAQAogCSAgICBjb21wbF9jb2wgPSBzdGFydGNvbDsKIAkgICAgY29tcGxfbGVuZ3RoID0gY3Vyc19jb2wgLSBzdGFydGNvbDsKIAl9Ci0jaWZkZWYgRkVBVF9DT01QTF9GVU5DCi0JZWxzZSBpZiAoY3RybF94X21vZGUgPT0gQ1RSTF9YX0ZVTkNUSU9OKQorCWVsc2UgaWYgKGN0cmxfeF9tb2RlID09IENUUkxfWF9GVU5DVElPTiB8fCBjdHJsX3hfbW9kZSA9PSBDVFJMX1hfT0NDVUxUKQogCXsKKyNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKIAkgICAgLyoKLQkgICAgICogQ2FsbCB1c2VyIGRlZmluZWQgZnVuY3Rpb24gJ2NvbXBsZXRlZnVuYycgd2l0aCAiYTpmaW5kc3RhcnQiIGlzCi0JICAgICAqIDEgdG8gb2J0YWluIHRoZSBsZW5ndGggb2YgdGV4dCB0byB1c2UgZm9yIGNvbXBsZXRpb24uCisJICAgICAqIENhbGwgdXNlciBkZWZpbmVkIGZ1bmN0aW9uICdjb21wbGV0ZWZ1bmMnIHdpdGggImE6ZmluZHN0YXJ0IgorCSAgICAgKiBzZXQgdG8gMSB0byBvYnRhaW4gdGhlIGxlbmd0aCBvZiB0ZXh0IHRvIHVzZSBmb3IgY29tcGxldGlvbi4KIAkgICAgICovCi0JICAgIGNoYXJfdQljb2xidWZbMzBdOwotCSAgICBjaGFyX3UJKmFyZ3NbM107CisJICAgIGNoYXJfdQkqYXJnc1syXTsKIAkgICAgaW50CQljb2w7CisJICAgIGNoYXJfdQkqZnVuY25hbWU7CisJICAgIHBvc19UCXBvczsKIAotCSAgICAvKiBDYWxsICdjb21wbGV0ZWZ1bmMnIGFuZCBnZXQgcGF0dGVybiBsZW5ndGggYXMgYSBzdHJpbmcgKi8KLQkgICAgaWYgKCpjdXJidWYtPmJfcF9jZnUgPT0gTlVMKQorCSAgICAvKiBDYWxsICdjb21wbGV0ZWZ1bmMnIG9yICdvY2N1bHRmdW5jJyBhbmQgZ2V0IHBhdHRlcm4gbGVuZ3RoIGFzIGEKKwkgICAgICogc3RyaW5nICovCisJICAgIGZ1bmNuYW1lID0gY3RybF94X21vZGUgPT0gQ1RSTF9YX0ZVTkNUSU9OCisJCQkJCSAgPyBjdXJidWYtPmJfcF9jZnUgOiBjdXJidWYtPmJfcF9vZnU7CisJICAgIGlmICgqZnVuY25hbWUgPT0gTlVMKQogCQlyZXR1cm4gRkFJTDsKIAogCSAgICBhcmdzWzBdID0gKGNoYXJfdSAqKSIxIjsKLQkgICAgc3ByaW50ZigoY2hhciAqKWNvbGJ1ZiwgIiVkIiwgKGludCljdXJzX2NvbCk7Ci0JICAgIGFyZ3NbMV0gPSBjb2xidWY7Ci0JICAgIGFyZ3NbMl0gPSBOVUxMOworCSAgICBhcmdzWzFdID0gTlVMTDsKKwkgICAgcG9zID0gY3Vyd2luLT53X2N1cnNvcjsKKwkgICAgY29sID0gY2FsbF9mdW5jX3JldG5yKGZ1bmNuYW1lLCAyLCBhcmdzLCBGQUxTRSk7CisJICAgIGN1cndpbi0+d19jdXJzb3IgPSBwb3M7CS8qIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbiAqLwogCi0JICAgIGNvbCA9IGNhbGxfZnVuY19yZXRucihjdXJidWYtPmJfcF9jZnUsIDMsIGFyZ3MsIEZBTFNFKTsKIAkgICAgaWYgKGNvbCA8IDApCiAJCXJldHVybiBGQUlMOwogCSAgICBjb21wbF9jb2wgPSBjb2w7CkBAIC0zNTE5LDE5ICszNDk0LDcgQEAKIAkgICAgY29tcGxfbGVuZ3RoID0gY3Vyc19jb2wgLSBjb21wbF9jb2w7CiAJICAgIGNvbXBsX3BhdHRlcm4gPSB2aW1fc3RybnNhdmUobGluZSArIGNvbXBsX2NvbCwgY29tcGxfbGVuZ3RoKTsKIAkgICAgaWYgKGNvbXBsX3BhdHRlcm4gPT0gTlVMTCkKLQkJcmV0dXJuIEZBSUw7Ci0JfQogI2VuZGlmCi0JZWxzZSBpZiAoY3RybF94X21vZGUgPT0gQ1RSTF9YX09DQ1VMVCkKLQl7Ci0JICAgIC8qIFRPRE86IGxldCBsYW5ndWFnZS1zcGVjaWZpYyBmdW5jdGlvbiBoYW5kbGUgbG9jYXRpbmcgdGhlIHRleHQKLQkgICAgICogdG8gYmUgY29tcGxldGVkLiAqLwotCSAgICB3aGlsZSAoLS1zdGFydGNvbCA+PSAwICYmIHZpbV9pc0lEYyhsaW5lW3N0YXJ0Y29sXSkpCi0JCTsKLQkgICAgY29tcGxfY29sICs9ICsrc3RhcnRjb2w7Ci0JICAgIGNvbXBsX2xlbmd0aCA9IChpbnQpY3Vyc19jb2wgLSBzdGFydGNvbDsKLQkgICAgY29tcGxfcGF0dGVybiA9IHZpbV9zdHJuc2F2ZShsaW5lICsgY29tcGxfY29sLCBjb21wbF9sZW5ndGgpOwotCSAgICBpZiAoY29tcGxfcGF0dGVybiA9PSBOVUxMKQogCQlyZXR1cm4gRkFJTDsKIAl9CiAJZWxzZSBpZiAoY3RybF94X21vZGUgPT0gQ1RSTF9YX1NQRUxMKQpkaWZmIC0tZ2l0IGEvc3JjL2V4X2dldGxuLmMgYi9zcmMvZXhfZ2V0bG4uYwppbmRleCBjZDQwYTY4Li5jNjE5MGJlIDEwMDY0NAotLS0gYS9zcmMvZXhfZ2V0bG4uYworKysgYi9zcmMvZXhfZ2V0bG4uYwpAQCAtMjE1MCw3ICsyMTUwLDggQEAKICAgICByZXR1cm4gKGNoYXJfdSAqKWxpbmVfZ2EuZ2FfZGF0YTsKIH0KIAotI2lmZGVmIENVUlNPUl9TSEFQRQorIyBpZiBkZWZpbmVkKE1DSF9DVVJTT1JfU0hBUEUpIHx8IGRlZmluZWQoRkVBVF9HVUkpIFwKKwl8fCBkZWZpbmVkKEZFQVRfTU9VU0VTSEFQRSkgfHwgZGVmaW5lZChQUk9UTykKIC8qCiAgKiBSZXR1cm4gVFJVRSBpZiBjY2xpbmUub3ZlcnN0cmlrZSBpcyBvbi4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2d1aV9tYWMuYyBiL3NyYy9ndWlfbWFjLmMKaW5kZXggOTI1M2FhMS4uNTBlOTY2OSAxMDA2NDQKLS0tIGEvc3JjL2d1aV9tYWMuYworKysgYi9zcmMvZ3VpX21hYy5jCkBAIC00OTMwLDE2ICs0OTMwLDYgQEAKICNlbmRpZgogCXRlbXBjbGlwW3NjcmFwU2l6ZV0gPSAwOwogCi0Jc2VhcmNoQ1IgPSAoY2hhciAqKXRlbXBjbGlwOwotCXdoaWxlIChzZWFyY2hDUiAhPSBOVUxMKQotCXsKLQkgICAgc2VhcmNoQ1IgPSBzdHJjaHIoc2VhcmNoQ1IsICdccicpOwotCi0JICAgIGlmIChzZWFyY2hDUiAhPSBOVUxMKQotCQlzZWFyY2hDUlswXSA9ICdcbic7Ci0KLQl9Ci0KICNpZiBkZWZpbmVkKEZFQVRfTUJZVEUpICYmIGRlZmluZWQoVVNFX0NBUkJPTklaRUQpCiAJLyogQ29udmVydCBmcm9tIHV0Zi0xNiAoY2xpcGJvYXJkKSAqLwogCXNpemVfdCBlbmNMZW4gPSAwOwpAQCAtNDk1MSw2ICs0OTQxLDE3IEBACiAJICAgIHRlbXBjbGlwID0gdG87CiAJfQogI2VuZGlmCisKKwlzZWFyY2hDUiA9IChjaGFyICopdGVtcGNsaXA7CisJd2hpbGUgKHNlYXJjaENSICE9IE5VTEwpCisJeworCSAgICBzZWFyY2hDUiA9IHN0cmNocihzZWFyY2hDUiwgJ1xyJyk7CisKKwkgICAgaWYgKHNlYXJjaENSICE9IE5VTEwpCisJCXNlYXJjaENSWzBdID0gJ1xuJzsKKworCX0KKwogCWNsaXBfeWFua19zZWxlY3Rpb24odHlwZSwgdGVtcGNsaXAsIHNjcmFwU2l6ZSwgY2JkKTsKIAogCXZpbV9mcmVlKHRlbXBjbGlwKTsKZGlmZiAtLWdpdCBhL3NyYy9ndWlfdzQ4LmMgYi9zcmMvZ3VpX3c0OC5jCmluZGV4IDU2NDlhZWIuLjAzYjdkNzEgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfdzQ4LmMKKysrIGIvc3JjL2d1aV93NDguYwpAQCAtMTA1LDYgKzEwNSw3IEBACiB0eXBlZGVmIGludCBMUFdJTkRPV1BPUzsKIHR5cGVkZWYgaW50IExQV09SRDsKIHR5cGVkZWYgaW50IExSRVNVTFQ7Cit0eXBlZGVmIGludCBIUkVTVUxUOwogIyB1bmRlZiBNU0cKIHR5cGVkZWYgaW50IE1TRzsKIHR5cGVkZWYgaW50IE5FV1RFWFRNRVRSSUM7CmRpZmYgLS1naXQgYS9zcmMvaWZfbXpzY2guYyBiL3NyYy9pZl9tenNjaC5jCmluZGV4IGRkZTMxZWIuLjE4NmVlNjYgMTAwNjQ0Ci0tLSBhL3NyYy9pZl9tenNjaC5jCisrKyBiL3NyYy9pZl9tenNjaC5jCkBAIC05NTYsMTIgKzk1NiwxMiBAQAogICAgIHZvaWQKIG16c2NoZW1lX2J1ZmZlcl9mcmVlKGJ1Zl9UICpidWYpCiB7Ci0gICAgaWYgKGJ1Zi0+bXpzY2hlbWVfcmVmKQorICAgIGlmIChidWYtPmJfbXpzY2hlbWVfcmVmKQogICAgIHsKICAgICAgICAgdmltX216X2J1ZmZlciAqYnA7Ci0JYnAgPSBidWYtPm16c2NoZW1lX3JlZjsKKwlicCA9IGJ1Zi0+Yl9tenNjaGVtZV9yZWY7CiAJYnAtPmJ1ZiA9IElOVkFMSURfQlVGRkVSX1ZBTFVFOwotCWJ1Zi0+bXpzY2hlbWVfcmVmID0gTlVMTDsKKwlidWYtPmJfbXpzY2hlbWVfcmVmID0gTlVMTDsKIAlzY2hlbWVfZ2NfcHRyX29rKGJwKTsKICAgICB9CiB9CkBAIC05NzIsMTIgKzk3MiwxMiBAQAogICAgIHZvaWQKIG16c2NoZW1lX3dpbmRvd19mcmVlKHdpbl9UICp3aW4pCiB7Ci0gICAgaWYgKHdpbi0+bXpzY2hlbWVfcmVmKQorICAgIGlmICh3aW4tPndfbXpzY2hlbWVfcmVmKQogICAgIHsKIAl2aW1fbXpfd2luZG93ICp3cDsKLQl3cCA9IHdpbi0+bXpzY2hlbWVfcmVmOworCXdwID0gd2luLT53X216c2NoZW1lX3JlZjsKIAl3cC0+d2luID0gSU5WQUxJRF9XSU5ET1dfVkFMVUU7Ci0Jd2luLT5tenNjaGVtZV9yZWYgPSBOVUxMOworCXdpbi0+d19tenNjaGVtZV9yZWYgPSBOVUxMOwogCXNjaGVtZV9nY19wdHJfb2sod3ApOwogICAgIH0KIH0KQEAgLTE0NjIsMjEgKzE0NjIsMjEgQEAKICAgICB2aW1fbXpfd2luZG93ICpzZWxmOwogCiAgICAgLyogV2UgbmVlZCB0byBoYW5kbGUgZGVsZXRpb24gb2Ygd2luZG93cyB1bmRlcm5lYXRoIHVzLgotICAgICAqIElmIHdlIGFkZCBhICJtenNjaGVtZV9yZWYiIGZpZWxkIHRvIHRoZSB3aW5fVCBzdHJ1Y3R1cmUsCisgICAgICogSWYgd2UgYWRkIGEgIndfbXpzY2hlbWVfcmVmIiBmaWVsZCB0byB0aGUgd2luX1Qgc3RydWN0dXJlLAogICAgICAqIHRoZW4gd2UgY2FuIGdldCBhdCBpdCBpbiB3aW5fZnJlZSgpIGluIHZpbS4KICAgICAgKgogICAgICAqIE9uIGEgd2luX2ZyZWUoKSB3ZSBzZXQgdGhlIFNjaGVtZSBvYmplY3QncyB3aW5fVCAqZmllbGQKICAgICAgKiB0byBhbiBpbnZhbGlkIHZhbHVlLiBXZSB0cmFwIGFsbCB1c2VzIG9mIGEgd2luZG93CiAgICAgICogb2JqZWN0LCBhbmQgcmVqZWN0IHRoZW0gaWYgdGhlIHdpbl9UICpmaWVsZCBpcyBpbnZhbGlkLgogICAgICAqLwotICAgIGlmICh3aW4tPm16c2NoZW1lX3JlZikKLQlyZXR1cm4gd2luLT5tenNjaGVtZV9yZWY7CisgICAgaWYgKHdpbi0+d19tenNjaGVtZV9yZWYgIT0gTlVMTCkKKwlyZXR1cm4gd2luLT53X216c2NoZW1lX3JlZjsKIAogICAgIHNlbGYgPSBzY2hlbWVfbWFsbG9jX2ZhaWxfb2soc2NoZW1lX21hbGxvYywgc2l6ZW9mKHZpbV9tel93aW5kb3cpKTsKIAogICAgIHZpbV9tZW1zZXQoc2VsZiwgMCwgc2l6ZW9mKHZpbV9tel93aW5kb3cpKTsKICAgICBzY2hlbWVfZG9udF9nY19wdHIoc2VsZik7CS8qIGJlY2F1c2Ugd2luIGlzbid0IHZpc2libGUgdG8gR0MgKi8KLSAgICB3aW4tPm16c2NoZW1lX3JlZiA9IHNlbGY7CisgICAgd2luLT53X216c2NoZW1lX3JlZiA9IHNlbGY7CiAgICAgc2VsZi0+d2luID0gd2luOwogICAgIHNlbGYtPnRhZyA9IG16X3dpbmRvd190eXBlOwogCkBAIC0xNzg3LDE3ICsxNzg3LDE3IEBACiAgICAgdmltX216X2J1ZmZlciAqc2VsZjsKIAogICAgIC8qIFdlIG5lZWQgdG8gaGFuZGxlIGRlbGV0aW9uIG9mIGJ1ZmZlcnMgdW5kZXJuZWF0aCB1cy4KLSAgICAgKiBJZiB3ZSBhZGQgYSAibXpzY2hlbWVfYnVmIiBmaWVsZCB0byB0aGUgYnVmX1Qgc3RydWN0dXJlLAorICAgICAqIElmIHdlIGFkZCBhICJiX216c2NoZW1lX3JlZiIgZmllbGQgdG8gdGhlIGJ1Zl9UIHN0cnVjdHVyZSwKICAgICAgKiB0aGVuIHdlIGNhbiBnZXQgYXQgaXQgaW4gYnVmX2ZyZWVhbGwoKSBpbiB2aW0uCiAgICAgICovCi0gICAgaWYgKGJ1Zi0+bXpzY2hlbWVfcmVmKQotICAgICAgICByZXR1cm4gYnVmLT5tenNjaGVtZV9yZWY7CisgICAgaWYgKGJ1Zi0+Yl9tenNjaGVtZV9yZWYpCisgICAgICAgIHJldHVybiBidWYtPmJfbXpzY2hlbWVfcmVmOwogCiAgICAgc2VsZiA9IHNjaGVtZV9tYWxsb2NfZmFpbF9vayhzY2hlbWVfbWFsbG9jLCBzaXplb2YodmltX216X2J1ZmZlcikpOwogCiAgICAgdmltX21lbXNldChzZWxmLCAwLCBzaXplb2YodmltX216X2J1ZmZlcikpOwogICAgIHNjaGVtZV9kb250X2djX3B0cihzZWxmKTsJLyogYmVjYXVzZSBidWYgaXNuJ3QgdmlzaWJsZSB0byBHQyAqLwotICAgIGJ1Zi0+bXpzY2hlbWVfcmVmID0gc2VsZjsKKyAgICBidWYtPmJfbXpzY2hlbWVfcmVmID0gc2VsZjsKICAgICBzZWxmLT5idWYgPSBidWY7CiAgICAgc2VsZi0+dGFnID0gbXpfYnVmZmVyX3R5cGU7CiAKQEAgLTI2MjAsMjAgKzI2MjAsMjAgQEAKICAgICBzdGF0aWMgdmltX216X2J1ZmZlciAqCiBnZXRfdmltX2N1cnJfYnVmZmVyKHZvaWQpCiB7Ci0gICAgaWYgKCFjdXJidWYtPm16c2NoZW1lX3JlZikKKyAgICBpZiAoY3VyYnVmLT5iX216c2NoZW1lX3JlZiA9PSBOVUxMKQogCXJldHVybiAodmltX216X2J1ZmZlciAqKWJ1ZmZlcl9uZXcoY3VyYnVmKTsKICAgICBlbHNlCi0JcmV0dXJuICh2aW1fbXpfYnVmZmVyICopY3VyYnVmLT5tenNjaGVtZV9yZWY7CisJcmV0dXJuICh2aW1fbXpfYnVmZmVyICopY3VyYnVmLT5iX216c2NoZW1lX3JlZjsKIH0KIAogLyogcmV0dXJuIE16U2NoZW1lIHdyYXBwZXIgZm9yIGN1cndpbiAqLwogICAgIHN0YXRpYyB2aW1fbXpfd2luZG93ICoKIGdldF92aW1fY3Vycl93aW5kb3codm9pZCkKIHsKLSAgICBpZiAoIWN1cndpbi0+bXpzY2hlbWVfcmVmKQorICAgIGlmIChjdXJ3aW4tPndfbXpzY2hlbWVfcmVmID09IE5VTEwpCiAJcmV0dXJuICh2aW1fbXpfd2luZG93ICopd2luZG93X25ldyhjdXJ3aW4pOwogICAgIGVsc2UKLQlyZXR1cm4gKHZpbV9tel93aW5kb3cgKiljdXJ3aW4tPm16c2NoZW1lX3JlZjsKKwlyZXR1cm4gKHZpbV9tel93aW5kb3cgKiljdXJ3aW4tPndfbXpzY2hlbWVfcmVmOwogfQogCiAgICAgc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3NyYy9pZl9wZXJsLnhzIGIvc3JjL2lmX3BlcmwueHMKaW5kZXggMDcyZGRjZC4uMGYxZGNkMiAxMDA2NDQKLS0tIGEvc3JjL2lmX3BlcmwueHMKKysrIGIvc3JjL2lmX3BlcmwueHMKQEAgLTQzNywzNyArNDM3LDUwIEBACiAKIC8qCiAgKiBDcmVhdGUgYSBuZXcgcmVmZXJlbmNlIHRvIGFuIFNWIHBvaW50aW5nIHRvIHRoZSBTQ1Igc3RydWN0dXJlCi0gKiBUaGUgcGVybF9wcml2YXRlIHBhcnQgb2YgdGhlIFNDUiBzdHJ1Y3R1cmUgcG9pbnRzIHRvIHRoZSBTViwKLSAqIHNvIHRoZXJlIGNhbiBvbmx5IGJlIG9uZSBzdWNoIFNWIGZvciBhIHBhcnRpY3VsYXIgU0NSIHN0cnVjdHVyZS4KLSAqIFdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIGhhcyBnb25lIChERVNUUk9ZIGlzIGNhbGxlZCksCi0gKiBwZXJsX3ByaXZhdGUgaXMgcmVzZXQ7IFdoZW4gdGhlIHNjcmVlbiBnb2VzIGF3YXkgYmVmb3JlCisgKiBUaGUgYl9wZXJsX3ByaXZhdGUvd19wZXJsX3ByaXZhdGUgcGFydCBvZiB0aGUgU0NSIHN0cnVjdHVyZSBwb2ludHMgdG8gdGhlCisgKiBTViwgc28gdGhlcmUgY2FuIG9ubHkgYmUgb25lIHN1Y2ggU1YgZm9yIGEgcGFydGljdWxhciBTQ1Igc3RydWN0dXJlLiAgV2hlbgorICogdGhlIGxhc3QgcmVmZXJlbmNlIGhhcyBnb25lIChERVNUUk9ZIGlzIGNhbGxlZCksCisgKiBiX3BlcmxfcHJpdmF0ZS93X3BlcmxfcHJpdmF0ZSBpcyByZXNldDsgV2hlbiB0aGUgc2NyZWVuIGdvZXMgYXdheSBiZWZvcmUKICAqIGFsbCByZWZlcmVuY2VzIGFyZSBnb25lLCB0aGUgdmFsdWUgb2YgdGhlIFNWIGlzIHJlc2V0OwogICogYW55IHN1YnNlcXVlbnQgdXNlIG9mIGFueSBvZiB0aG9zZSByZWZlcmVuY2Ugd2lsbCBwcm9kdWNlCiAgKiBhIHdhcm5pbmcuIChzZWUgdHlwZW1hcCkKICAqLwotI2RlZmluZSBuZXdBTllydihUWVBFLCBUTkFNRSkJCQkJCVwKLXN0YXRpYyBTViAqCQkJCQkJCVwKLW5ldyAjIyBUTkFNRSAjIyBydihydiwgcHRyKQkJCQkJXAotICAgIFNWICpydjsJCQkJCQkJXAotICAgIFRZUEUgKnB0cjsJCQkJCQkJXAotewkJCQkJCQkJXAotICAgIHN2X3VwZ3JhZGUocnYsIFNWdF9SVik7CQkJCQlcCi0gICAgaWYgKCFwdHItPnBlcmxfcHJpdmF0ZSkJCQkJCVwKLSAgICB7CQkJCQkJCQlcCi0JcHRyLT5wZXJsX3ByaXZhdGUgPSBuZXdTVigwKTsJCQkJXAotCXN2X3NldGl2KHB0ci0+cGVybF9wcml2YXRlLCAoSVYpcHRyKTsJCQlcCi0gICAgfQkJCQkJCQkJXAotICAgIGVsc2UJCQkJCQkJXAotCVN2UkVGQ05UX2luYyhwdHItPnBlcmxfcHJpdmF0ZSk7CQkJXAotICAgIFN2UlYocnYpID0gcHRyLT5wZXJsX3ByaXZhdGU7CQkJCVwKLSAgICBTdlJPS19vbihydik7CQkJCQkJXAotICAgIHJldHVybiBzdl9ibGVzcyhydiwgZ3Zfc3Rhc2hwdigiVkkiICNUTkFNRSwgVFJVRSkpOwkJXAorCisgICAgc3RhdGljIFNWICoKK25ld1dJTnJ2KHJ2LCBwdHIpCisgICAgU1YJICAgICpydjsKKyAgICB3aW5fVCAgICpwdHI7Cit7CisgICAgc3ZfdXBncmFkZShydiwgU1Z0X1JWKTsKKyAgICBpZiAocHRyLT53X3BlcmxfcHJpdmF0ZSA9PSBOVUxMKQorICAgIHsKKwlwdHItPndfcGVybF9wcml2YXRlID0gbmV3U1YoMCk7CisJc3Zfc2V0aXYocHRyLT53X3BlcmxfcHJpdmF0ZSwgKElWKXB0cik7CisgICAgfQorICAgIGVsc2UKKwlTdlJFRkNOVF9pbmMocHRyLT53X3BlcmxfcHJpdmF0ZSk7CisgICAgU3ZSVihydikgPSBwdHItPndfcGVybF9wcml2YXRlOworICAgIFN2Uk9LX29uKHJ2KTsKKyAgICByZXR1cm4gc3ZfYmxlc3MocnYsIGd2X3N0YXNocHYoIlZJV0lOIiwgVFJVRSkpOwogfQogCi0vKiBMSU5URUQ6IGF2b2lkIHdhcm5pbmc6IGNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUgKi8KLW5ld0FOWXJ2KHdpbl9ULCBXSU4pCi0vKiBMSU5URUQ6IGF2b2lkIHdhcm5pbmc6IGNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUgKi8KLW5ld0FOWXJ2KGJ1Zl9ULCBCVUYpCisgICAgc3RhdGljIFNWICoKK25ld0JVRnJ2KHJ2LCBwdHIpCisgICAgU1YJICAgICpydjsKKyAgICBidWZfVCAgICpwdHI7Cit7CisgICAgc3ZfdXBncmFkZShydiwgU1Z0X1JWKTsKKyAgICBpZiAocHRyLT5iX3BlcmxfcHJpdmF0ZSA9PSBOVUxMKQorICAgIHsKKwlwdHItPmJfcGVybF9wcml2YXRlID0gbmV3U1YoMCk7CisJc3Zfc2V0aXYocHRyLT5iX3BlcmxfcHJpdmF0ZSwgKElWKXB0cik7CisgICAgfQorICAgIGVsc2UKKwlTdlJFRkNOVF9pbmMocHRyLT5iX3BlcmxfcHJpdmF0ZSk7CisgICAgU3ZSVihydikgPSBwdHItPmJfcGVybF9wcml2YXRlOworICAgIFN2Uk9LX29uKHJ2KTsKKyAgICByZXR1cm4gc3ZfYmxlc3MocnYsIGd2X3N0YXNocHYoIlZJQlVGIiwgVFJVRSkpOworfQogCiAvKgogICogcGVybF93aW5fZnJlZQpAQCAtNDc3LDggKzQ5MCw4IEBACiBwZXJsX3dpbl9mcmVlKHdwKQogICAgIHdpbl9UICp3cDsKIHsKLSAgICBpZiAod3AtPnBlcmxfcHJpdmF0ZSkKLQlzdl9zZXRpdigoU1YgKil3cC0+cGVybF9wcml2YXRlLCAwKTsKKyAgICBpZiAod3AtPndfcGVybF9wcml2YXRlKQorCXN2X3NldGl2KChTViAqKXdwLT53X3BlcmxfcHJpdmF0ZSwgMCk7CiAgICAgcmV0dXJuOwogfQogCkBAIC00ODYsOCArNDk5LDggQEAKIHBlcmxfYnVmX2ZyZWUoYnApCiAgICAgYnVmX1QgKmJwOwogewotICAgIGlmIChicC0+cGVybF9wcml2YXRlKQotCXN2X3NldGl2KChTViAqKWJwLT5wZXJsX3ByaXZhdGUsIDApOworICAgIGlmIChicC0+Yl9wZXJsX3ByaXZhdGUpCisJc3Zfc2V0aXYoKFNWICopYnAtPmJfcGVybF9wcml2YXRlLCAwKTsKICAgICByZXR1cm47CiB9CiAKQEAgLTkxNSw3ICs5MjgsNyBAQAogCiAgICAgQ09ERToKICAgICBpZiAod2luX3ZhbGlkKHdpbikpCi0Jd2luLT5wZXJsX3ByaXZhdGUgPSAwOworCXdpbi0+d19wZXJsX3ByaXZhdGUgPSAwOwogCiBTViAqCiBCdWZmZXIod2luKQpAQCAtOTc5LDcgKzk5Miw3IEBACiAKICAgICBDT0RFOgogICAgIGlmIChidWZfdmFsaWQodmltYnVmKSkKLQl2aW1idWYtPnBlcmxfcHJpdmF0ZSA9IDA7CisJdmltYnVmLT5iX3BlcmxfcHJpdmF0ZSA9IDA7CiAKIHZvaWQKIE5hbWUodmltYnVmKQpkaWZmIC0tZ2l0IGEvc3JjL2lmX3B5dGhvbi5jIGIvc3JjL2lmX3B5dGhvbi5jCmluZGV4IDFiNWQwZTMuLjYyMzczMWEgMTAwNjQ0Ci0tLSBhL3NyYy9pZl9weXRob24uYworKysgYi9zcmMvaWZfcHl0aG9uLmMKQEAgLTEzMDUsMTIgKzEzMDUsMTIgQEAKIEJ1ZmZlck5ldyhidWZfVCAqYnVmKQogewogICAgIC8qIFdlIG5lZWQgdG8gaGFuZGxlIGRlbGV0aW9uIG9mIGJ1ZmZlcnMgdW5kZXJuZWF0aCB1cy4KLSAgICAgKiBJZiB3ZSBhZGQgYSAicHl0aG9uX3JlZiIgZmllbGQgdG8gdGhlIGJ1Zl9UIHN0cnVjdHVyZSwKKyAgICAgKiBJZiB3ZSBhZGQgYSAiYl9weXRob25fcmVmIiBmaWVsZCB0byB0aGUgYnVmX1Qgc3RydWN0dXJlLAogICAgICAqIHRoZW4gd2UgY2FuIGdldCBhdCBpdCBpbiBidWZfZnJlZWFsbCgpIGluIHZpbS4gV2UgdGhlbgogICAgICAqIG5lZWQgdG8gY3JlYXRlIG9ubHkgT05FIFB5dGhvbiBvYmplY3QgcGVyIGJ1ZmZlciAtIGlmCiAgICAgICogd2UgdHJ5IHRvIGNyZWF0ZSBhIHNlY29uZCwganVzdCBJTkNSRUYgdGhlIGV4aXN0aW5nIG9uZQogICAgICAqIGFuZCByZXR1cm4gaXQuIFRoZSAoc2luZ2xlKSBQeXRob24gb2JqZWN0IHJlZmVycmluZyB0bwotICAgICAqIHRoZSBidWZmZXIgaXMgc3RvcmVkIGluICJweXRob25fcmVmIi4KKyAgICAgKiB0aGUgYnVmZmVyIGlzIHN0b3JlZCBpbiAiYl9weXRob25fcmVmIi4KICAgICAgKiBRdWVzdGlvbjogd2hhdCB0byBkbyBvbiBhIGJ1Zl9mcmVlYWxsKCkuIFdlJ2xsIHByb2JhYmx5CiAgICAgICogaGF2ZSB0byBlaXRoZXIgZGVsZXRlIHRoZSBQeXRob24gb2JqZWN0IChERUNSRUYgaXQgdG8KICAgICAgKiB6ZXJvIC0gYSBiYWQgaWRlYSwgYXMgaXQgbGVhdmVzIGRhbmdsaW5nIHJlZnMhKSBvcgpAQCAtMTMyMCw5ICsxMzIwLDkgQEAKIAogICAgIEJ1ZmZlck9iamVjdCAqc2VsZjsKIAotICAgIGlmIChidWYtPnB5dGhvbl9yZWYpCisgICAgaWYgKGJ1Zi0+Yl9weXRob25fcmVmICE9IE5VTEwpCiAgICAgewotCXNlbGYgPSBidWYtPnB5dGhvbl9yZWY7CisJc2VsZiA9IGJ1Zi0+Yl9weXRob25fcmVmOwogCVB5X0lOQ1JFRihzZWxmKTsKICAgICB9CiAgICAgZWxzZQpAQCAtMTMzMSw3ICsxMzMxLDcgQEAKIAlpZiAoc2VsZiA9PSBOVUxMKQogCSAgICByZXR1cm4gTlVMTDsKIAlzZWxmLT5idWYgPSBidWY7Ci0JYnVmLT5weXRob25fcmVmID0gc2VsZjsKKwlidWYtPmJfcHl0aG9uX3JlZiA9IHNlbGY7CiAgICAgfQogCiAgICAgcmV0dXJuIChQeU9iamVjdCAqKShzZWxmKTsKQEAgLTEzNDMsNyArMTM0Myw3IEBACiAgICAgQnVmZmVyT2JqZWN0ICp0aGlzID0gKEJ1ZmZlck9iamVjdCAqKShzZWxmKTsKIAogICAgIGlmICh0aGlzLT5idWYgJiYgdGhpcy0+YnVmICE9IElOVkFMSURfQlVGRkVSX1ZBTFVFKQotCXRoaXMtPmJ1Zi0+cHl0aG9uX3JlZiA9IE5VTEw7CisJdGhpcy0+YnVmLT5iX3B5dGhvbl9yZWYgPSBOVUxMOwogCiAgICAgUHlNZW1fREVMKHNlbGYpOwogfQpAQCAtMTc4OCwxMiArMTc4OCwxMiBAQAogV2luZG93TmV3KHdpbl9UICp3aW4pCiB7CiAgICAgLyogV2UgbmVlZCB0byBoYW5kbGUgZGVsZXRpb24gb2Ygd2luZG93cyB1bmRlcm5lYXRoIHVzLgotICAgICAqIElmIHdlIGFkZCBhICJweXRob25fcmVmIiBmaWVsZCB0byB0aGUgd2luX1Qgc3RydWN0dXJlLAorICAgICAqIElmIHdlIGFkZCBhICJ3X3B5dGhvbl9yZWYiIGZpZWxkIHRvIHRoZSB3aW5fVCBzdHJ1Y3R1cmUsCiAgICAgICogdGhlbiB3ZSBjYW4gZ2V0IGF0IGl0IGluIHdpbl9mcmVlKCkgaW4gdmltLiBXZSB0aGVuCiAgICAgICogbmVlZCB0byBjcmVhdGUgb25seSBPTkUgUHl0aG9uIG9iamVjdCBwZXIgd2luZG93IC0gaWYKICAgICAgKiB3ZSB0cnkgdG8gY3JlYXRlIGEgc2Vjb25kLCBqdXN0IElOQ1JFRiB0aGUgZXhpc3Rpbmcgb25lCiAgICAgICogYW5kIHJldHVybiBpdC4gVGhlIChzaW5nbGUpIFB5dGhvbiBvYmplY3QgcmVmZXJyaW5nIHRvCi0gICAgICogdGhlIHdpbmRvdyBpcyBzdG9yZWQgaW4gInB5dGhvbl9yZWYiLgorICAgICAqIHRoZSB3aW5kb3cgaXMgc3RvcmVkIGluICJ3X3B5dGhvbl9yZWYiLgogICAgICAqIE9uIGEgd2luX2ZyZWUoKSB3ZSBzZXQgdGhlIFB5dGhvbiBvYmplY3QncyB3aW5fVCogZmllbGQKICAgICAgKiB0byBhbiBpbnZhbGlkIHZhbHVlLiBXZSB0cmFwIGFsbCB1c2VzIG9mIGEgd2luZG93CiAgICAgICogb2JqZWN0LCBhbmQgcmVqZWN0IHRoZW0gaWYgdGhlIHdpbl9UKiBmaWVsZCBpcyBpbnZhbGlkLgpAQCAtMTgwMSw5ICsxODAxLDkgQEAKIAogICAgIFdpbmRvd09iamVjdCAqc2VsZjsKIAotICAgIGlmICh3aW4tPnB5dGhvbl9yZWYpCisgICAgaWYgKHdpbi0+d19weXRob25fcmVmKQogICAgIHsKLQlzZWxmID0gd2luLT5weXRob25fcmVmOworCXNlbGYgPSB3aW4tPndfcHl0aG9uX3JlZjsKIAlQeV9JTkNSRUYoc2VsZik7CiAgICAgfQogICAgIGVsc2UKQEAgLTE4MTIsNyArMTgxMiw3IEBACiAJaWYgKHNlbGYgPT0gTlVMTCkKIAkgICAgcmV0dXJuIE5VTEw7CiAJc2VsZi0+d2luID0gd2luOwotCXdpbi0+cHl0aG9uX3JlZiA9IHNlbGY7CisJd2luLT53X3B5dGhvbl9yZWYgPSBzZWxmOwogICAgIH0KIAogICAgIHJldHVybiAoUHlPYmplY3QgKikoc2VsZik7CkBAIC0xODI0LDcgKzE4MjQsNyBAQAogICAgIFdpbmRvd09iamVjdCAqdGhpcyA9IChXaW5kb3dPYmplY3QgKikoc2VsZik7CiAKICAgICBpZiAodGhpcy0+d2luICYmIHRoaXMtPndpbiAhPSBJTlZBTElEX1dJTkRPV19WQUxVRSkKLQl0aGlzLT53aW4tPnB5dGhvbl9yZWYgPSBOVUxMOworCXRoaXMtPndpbi0+d19weXRob25fcmVmID0gTlVMTDsKIAogICAgIFB5TWVtX0RFTChzZWxmKTsKIH0KQEAgLTIxNDQsMTEgKzIxNDQsMTEgQEAKICAgICB2b2lkCiBweXRob25fYnVmZmVyX2ZyZWUoYnVmX1QgKmJ1ZikKIHsKLSAgICBpZiAoYnVmLT5weXRob25fcmVmKQorICAgIGlmIChidWYtPmJfcHl0aG9uX3JlZiAhPSBOVUxMKQogICAgIHsKLQlCdWZmZXJPYmplY3QgKmJwID0gYnVmLT5weXRob25fcmVmOworCUJ1ZmZlck9iamVjdCAqYnAgPSBidWYtPmJfcHl0aG9uX3JlZjsKIAlicC0+YnVmID0gSU5WQUxJRF9CVUZGRVJfVkFMVUU7Ci0JYnVmLT5weXRob25fcmVmID0gTlVMTDsKKwlidWYtPmJfcHl0aG9uX3JlZiA9IE5VTEw7CiAgICAgfQogfQogCkBAIC0yMTU2LDExICsyMTU2LDExIEBACiAgICAgdm9pZAogcHl0aG9uX3dpbmRvd19mcmVlKHdpbl9UICp3aW4pCiB7Ci0gICAgaWYgKHdpbi0+cHl0aG9uX3JlZikKKyAgICBpZiAod2luLT53X3B5dGhvbl9yZWYgIT0gTlVMTCkKICAgICB7Ci0JV2luZG93T2JqZWN0ICp3cCA9IHdpbi0+cHl0aG9uX3JlZjsKKwlXaW5kb3dPYmplY3QgKndwID0gd2luLT53X3B5dGhvbl9yZWY7CiAJd3AtPndpbiA9IElOVkFMSURfV0lORE9XX1ZBTFVFOwotCXdpbi0+cHl0aG9uX3JlZiA9IE5VTEw7CisJd2luLT53X3B5dGhvbl9yZWYgPSBOVUxMOwogICAgIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2lmX3J1YnkuYyBiL3NyYy9pZl9ydWJ5LmMKaW5kZXggNDM5NmI0Ni4uZjA5YjIyMCAxMDA2NDQKLS0tIGEvc3JjL2lmX3J1YnkuYworKysgYi9zcmMvaWZfcnVieS5jCkBAIC0zODgsMTcgKzM4OCwxOSBAQAogCiB2b2lkIHJ1YnlfYnVmZmVyX2ZyZWUoYnVmX1QgKmJ1ZikKIHsKLSAgICBpZiAoYnVmLT5ydWJ5X3JlZikgewotCXJiX2hhc2hfYXNldChvYmp0YmwsIHJiX29ial9pZCgoVkFMVUUpIGJ1Zi0+cnVieV9yZWYpLCBRbmlsKTsKLQlSREFUQShidWYtPnJ1YnlfcmVmKS0+ZGF0YSA9IE5VTEw7CisgICAgaWYgKGJ1Zi0+Yl9ydWJ5X3JlZikKKyAgICB7CisJcmJfaGFzaF9hc2V0KG9ianRibCwgcmJfb2JqX2lkKChWQUxVRSkgYnVmLT5iX3J1YnlfcmVmKSwgUW5pbCk7CisJUkRBVEEoYnVmLT5iX3J1YnlfcmVmKS0+ZGF0YSA9IE5VTEw7CiAgICAgfQogfQogCiB2b2lkIHJ1Ynlfd2luZG93X2ZyZWUod2luX1QgKndpbikKIHsKLSAgICBpZiAod2luLT5ydWJ5X3JlZikgewotCXJiX2hhc2hfYXNldChvYmp0YmwsIHJiX29ial9pZCgoVkFMVUUpIHdpbi0+cnVieV9yZWYpLCBRbmlsKTsKLQlSREFUQSh3aW4tPnJ1YnlfcmVmKS0+ZGF0YSA9IE5VTEw7CisgICAgaWYgKHdpbi0+d19ydWJ5X3JlZikKKyAgICB7CisJcmJfaGFzaF9hc2V0KG9ianRibCwgcmJfb2JqX2lkKChWQUxVRSkgd2luLT53X3J1YnlfcmVmKSwgUW5pbCk7CisJUkRBVEEod2luLT53X3J1YnlfcmVmKS0+ZGF0YSA9IE5VTEw7CiAgICAgfQogfQogCkBAIC01MzIsMTIgKzUzNCwxNCBAQAogCiBzdGF0aWMgVkFMVUUgYnVmZmVyX25ldyhidWZfVCAqYnVmKQogewotICAgIGlmIChidWYtPnJ1YnlfcmVmKSB7Ci0JcmV0dXJuIChWQUxVRSkgYnVmLT5ydWJ5X3JlZjsKKyAgICBpZiAoYnVmLT5iX3J1YnlfcmVmKQorICAgIHsKKwlyZXR1cm4gKFZBTFVFKSBidWYtPmJfcnVieV9yZWY7CiAgICAgfQotICAgIGVsc2UgeworICAgIGVsc2UKKyAgICB7CiAJVkFMVUUgb2JqID0gRGF0YV9XcmFwX1N0cnVjdChjQnVmZmVyLCAwLCAwLCBidWYpOwotCWJ1Zi0+cnVieV9yZWYgPSAodm9pZCAqKSBvYmo7CisJYnVmLT5iX3J1YnlfcmVmID0gKHZvaWQgKikgb2JqOwogCXJiX2hhc2hfYXNldChvYmp0YmwsIHJiX29ial9pZChvYmopLCBvYmopOwogCXJldHVybiBvYmo7CiAgICAgfQpAQCAtNjg4LDEyICs2OTIsMTQgQEAKIAogc3RhdGljIFZBTFVFIHdpbmRvd19uZXcod2luX1QgKndpbikKIHsKLSAgICBpZiAod2luLT5ydWJ5X3JlZikgewotCXJldHVybiAoVkFMVUUpIHdpbi0+cnVieV9yZWY7CisgICAgaWYgKHdpbi0+d19ydWJ5X3JlZikKKyAgICB7CisJcmV0dXJuIChWQUxVRSkgd2luLT53X3J1YnlfcmVmOwogICAgIH0KLSAgICBlbHNlIHsKKyAgICBlbHNlCisgICAgewogCVZBTFVFIG9iaiA9IERhdGFfV3JhcF9TdHJ1Y3QoY1ZpbVdpbmRvdywgMCwgMCwgd2luKTsKLQl3aW4tPnJ1YnlfcmVmID0gKHZvaWQgKikgb2JqOworCXdpbi0+d19ydWJ5X3JlZiA9ICh2b2lkICopIG9iajsKIAlyYl9oYXNoX2FzZXQob2JqdGJsLCByYl9vYmpfaWQob2JqKSwgb2JqKTsKIAlyZXR1cm4gb2JqOwogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9pZl90Y2wuYyBiL3NyYy9pZl90Y2wuYwppbmRleCA4Zjc1ZTBkLi4zMGY3ZDk4IDEwMDY0NAotLS0gYS9zcmMvaWZfdGNsLmMKKysrIGIvc3JjL2lmX3RjbC5jCkBAIC0xMTMsOSArMTEzLDEwIEBACiAKIC8qCiAgKiAgTGlzdCBvZiBUY2wgaW50ZXJwcmV0ZXJzIHdobyByZWZlcmVuY2UgYSB2aW0gd2luZG93IG9yIGJ1ZmZlci4KLSAqICBFYWNoIGJ1ZmZlciBhbmQgd2luZG93IGhhcyBpdCdzIG93biBsaXN0IGluIHRoZSB0Y2xfcmVmIHN0cnVjdCBtZW1iZXIuCi0gKiAgV2UgbmVlZCB0aGlzIGJlY2F1c2UgVGNsIGNhbiBjcmVhdGUgc3ViLWludGVycHJldGVycyB3aXRoIHRoZSAiaW50ZXJwIgotICogIGNvbW1hbmQsIGFuZCBlYWNoIGludGVycHJldGVyIGNhbiByZWZlcmVuY2UgYWxsIHdpbmRvd3MgYW5kIGJ1ZmZlcnMuCisgKiAgRWFjaCBidWZmZXIgYW5kIHdpbmRvdyBoYXMgaXQncyBvd24gbGlzdCBpbiB0aGUgd190Y2xfcmVmIG9yIGJfdGNsX3JlZgorICogIHN0cnVjdCBtZW1iZXIuICBXZSBuZWVkIHRoaXMgYmVjYXVzZSBUY2wgY2FuIGNyZWF0ZSBzdWItaW50ZXJwcmV0ZXJzIHdpdGgKKyAqICB0aGUgImludGVycCIgY29tbWFuZCwgYW5kIGVhY2ggaW50ZXJwcmV0ZXIgY2FuIHJlZmVyZW5jZSBhbGwgd2luZG93cyBhbmQKKyAqICBidWZmZXJzLgogICovCiBzdHJ1Y3QgcmVmCiB7CkBAIC05MzIsNyArOTMzLDcgQEAKIAkJZXJyID0gVENMX0VSUk9SOwogCQlicmVhazsKIAkgICAgfQotCSAgICBlcnIgPSB0Y2xzZXRkZWxjbWQoaW50ZXJwLCBidWYtPnRjbF9yZWYsICh2b2lkICopYnVmLCBvYmp2WzJdKTsKKwkgICAgZXJyID0gdGNsc2V0ZGVsY21kKGludGVycCwgYnVmLT5iX3RjbF9yZWYsICh2b2lkICopYnVmLCBvYmp2WzJdKTsKIAkgICAgYnJlYWs7CiAKIAlkZWZhdWx0OgpAQCAtMTA1OCw3ICsxMDU5LDcgQEAKIAkJZXJyID0gVENMX0VSUk9SOwogCQlicmVhazsKIAkgICAgfQotCSAgICBlcnIgPSB0Y2xzZXRkZWxjbWQoaW50ZXJwLCB3aW4tPnRjbF9yZWYsICh2b2lkICopd2luLCBvYmp2WzJdKTsKKwkgICAgZXJyID0gdGNsc2V0ZGVsY21kKGludGVycCwgd2luLT53X3RjbF9yZWYsICh2b2lkICopd2luLCBvYmp2WzJdKTsKIAkgICAgYnJlYWs7CiAKIAljYXNlIFdJTl9DVVJTT1I6CkBAIC0xNDY1LDcgKzE0NjYsOCBAQAogICAgIHN0YXRpYyBjaGFyICoKIHRjbGdldHJlZihpbnRlcnAsIHJlZnN0YXJ0UCwgcHJlZml4LCB2aW1vYmosIHByb2MpCiAgICAgVGNsX0ludGVycAkqaW50ZXJwOwotICAgIHZvaWQJKipyZWZzdGFydFA7CS8qIHB0ciB0byB0Y2xfcmVmIG1lbWJlciBvZiB3aW5fVC9idWZfVCBzdHJ1Y3QgKi8KKyAgICB2b2lkCSoqcmVmc3RhcnRQOwkvKiBwdHIgdG8gd190Y2xfcmVmL2JfdGNsLXJlZiBtZW1iZXIgb2YKKwkJCQkgICB3aW5fVC9idWZfVCBzdHJ1Y3QgKi8KICAgICBjaGFyCSpwcmVmaXg7CS8qICJ3aW4iIG9yICJidWYiICovCiAgICAgdm9pZAkqdmltb2JqOwkvKiB3aW5fVCogb3IgYnVmX1QqICovCiAgICAgVGNsX09iakNtZFByb2MgKnByb2M7CS8qIHdpbnNlbGZjbWQgb3IgYnVmc2VsZmNtZCAqLwpAQCAtMTUzMyw3ICsxNTM1LDcgQEAKICAgICBUY2xfSW50ZXJwCSppbnRlcnA7CiAgICAgd2luX1QJKndpbjsKIHsKLSAgICByZXR1cm4gdGNsZ2V0cmVmKGludGVycCwgJih3aW4tPnRjbF9yZWYpLCAid2luIiwgKHZvaWQgKil3aW4sIHdpbnNlbGZjbWQpOworICAgIHJldHVybiB0Y2xnZXRyZWYoaW50ZXJwLCAmKHdpbi0+d190Y2xfcmVmKSwgIndpbiIsICh2b2lkICopd2luLCB3aW5zZWxmY21kKTsKIH0KIAogICAgIHN0YXRpYyBjaGFyICoKQEAgLTE1NDEsNyArMTU0Myw3IEBACiAgICAgVGNsX0ludGVycAkqaW50ZXJwOwogICAgIGJ1Zl9UCSpidWY7CiB7Ci0gICAgcmV0dXJuIHRjbGdldHJlZihpbnRlcnAsICYoYnVmLT50Y2xfcmVmKSwgImJ1ZiIsICh2b2lkICopYnVmLCBidWZzZWxmY21kKTsKKyAgICByZXR1cm4gdGNsZ2V0cmVmKGludGVycCwgJihidWYtPmJfdGNsX3JlZiksICJidWYiLCAodm9pZCAqKWJ1ZiwgYnVmc2VsZmNtZCk7CiB9CiAKICAgICBzdGF0aWMgaW50CkBAIC0yMDk1LDEyICsyMDk3LDEyIEBACiAJcmV0dXJuOwogI2VuZGlmCiAKLSAgICByZWZsaXN0ID0gKHN0cnVjdCByZWYqKShidWYtPnRjbF9yZWYpOworICAgIHJlZmxpc3QgPSAoc3RydWN0IHJlZiAqKShidWYtPmJfdGNsX3JlZik7CiAgICAgaWYgKHJlZmxpc3QgIT0gJnJlZnNkZWxldGVkKQogICAgIHsKLQlidWYtPnRjbF9yZWYgPSAodm9pZCAqKSZyZWZzZGVsZXRlZDsKKwlidWYtPmJfdGNsX3JlZiA9ICh2b2lkICopJnJlZnNkZWxldGVkOwogCXRjbGRlbGFsbHJlZnMocmVmbGlzdCk7Ci0JYnVmLT50Y2xfcmVmID0gTlVMTDsKKwlidWYtPmJfdGNsX3JlZiA9IE5VTEw7CiAgICAgfQogfQogCkBAIC0yMTE2LDEyICsyMTE4LDEyIEBACiAJcmV0dXJuOwogI2VuZGlmCiAKLSAgICByZWZsaXN0ID0gKHN0cnVjdCByZWYqKSh3aW4tPnRjbF9yZWYpOworICAgIHJlZmxpc3QgPSAoc3RydWN0IHJlZiopKHdpbi0+d190Y2xfcmVmKTsKICAgICBpZiAocmVmbGlzdCAhPSAmcmVmc2RlbGV0ZWQpCiAgICAgewotCXdpbi0+dGNsX3JlZiA9ICh2b2lkICopJnJlZnNkZWxldGVkOworCXdpbi0+d190Y2xfcmVmID0gKHZvaWQgKikmcmVmc2RlbGV0ZWQ7CiAJdGNsZGVsYWxscmVmcyhyZWZsaXN0KTsKLQl3aW4tPnRjbF9yZWYgPSBOVUxMOworCXdpbi0+d190Y2xfcmVmID0gTlVMTDsKICAgICB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pZl94Y21kc3J2LmMgYi9zcmMvaWZfeGNtZHNydi5jCmluZGV4IDYzZmFmMGMuLmQxOWY1MGQgMTAwNjQ0Ci0tLSBhL3NyYy9pZl94Y21kc3J2LmMKKysrIGIvc3JjL2lmX3hjbWRzcnYuYwpAQCAtMTI3Myw3ICsxMjczLDcgQEAKIAkJZ2FfZ3JvdygmcmVwbHksIDUwICsgU1RSTEVOKHBfZW5jKSk7CiAJCXNwcmludGYocmVwbHkuZ2FfZGF0YSwgIiVjciVjLUUgJXMlYy1zICVzJWMtciAiLAogCQkJCQkJICAgMCwgMCwgcF9lbmMsIDAsIHNlcmlhbCwgMCk7Ci0JCXJlcGx5LmdhX2xlbiA9IDE0ICsgU1RSTEVOKHNlcmlhbCk7CisJCXJlcGx5LmdhX2xlbiA9IDE0ICsgU1RSTEVOKHBfZW5jKSArIFNUUkxFTihzZXJpYWwpOwogI2Vsc2UKIAkJZ2FfZ3JvdygmcmVwbHksIDUwKTsKIAkJc3ByaW50ZihyZXBseS5nYV9kYXRhLCAiJWNyJWMtcyAlcyVjLXIgIiwgMCwgMCwgc2VyaWFsLCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9tYnl0ZS5jIGIvc3JjL21ieXRlLmMKaW5kZXggYmY4NmI1ZS4uYWJkYjllOCAxMDA2NDQKLS0tIGEvc3JjL21ieXRlLmMKKysrIGIvc3JjL21ieXRlLmMKQEAgLTI5ODcsMTYgKzI5ODcsMTIgQEAKICMgaWZkZWYgSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCiAgICAgaWYgKChzID0gbmxfbGFuZ2luZm8oQ09ERVNFVCkpID09IE5VTEwgfHwgKnMgPT0gTlVMKQogIyBlbmRpZgotIyBpZmRlZiBNQUNPUwotCXMgPSAidXRmLTgiOwotIyBlbHNlCiAjICBpZiBkZWZpbmVkKEhBVkVfTE9DQUxFX0gpIHx8IGRlZmluZWQoWF9MT0NBTEUpCiAJaWYgKChzID0gc2V0bG9jYWxlKExDX0NUWVBFLCBOVUxMKSkgPT0gTlVMTCB8fCAqcyA9PSBOVUwpCiAjICBlbmRpZgogCSAgICBpZiAoKHMgPSBnZXRlbnYoIkxDX0FMTCIpKSA9PSBOVUxMIHx8ICpzID09IE5VTCkKIAkJaWYgKChzID0gZ2V0ZW52KCJMQ19DVFlQRSIpKSA9PSBOVUxMIHx8ICpzID09IE5VTCkKIAkJICAgIHMgPSBnZXRlbnYoIkxBTkciKTsKLSMgZW5kaWYKIAogICAgIGlmIChzID09IE5VTEwgfHwgKnMgPT0gTlVMKQogCXJldHVybiBGQUlMOwpkaWZmIC0tZ2l0IGEvc3JjL29wdGlvbi5jIGIvc3JjL29wdGlvbi5jCmluZGV4IGJiZjU2NGEuLmJmZTNlZDYgMTAwNjQ0Ci0tLSBhL3NyYy9vcHRpb24uYworKysgYi9zcmMvb3B0aW9uLmMKQEAgLTEwOSw2ICsxMDksNyBAQAogICAgICwgUFZfTlUKICAgICAsIFBWX05VVwogICAgICwgUFZfT0ZUCisgICAgLCBQVl9PRlUKICAgICAsIFBWX1BBVEgKICAgICAsIFBWX1BJCiAgICAgLCBQVl9QVlcKQEAgLTE4MSw2ICsxODIsNyBAQAogI2VuZGlmCiAjaWZkZWYgRkVBVF9DT01QTF9GVU5DCiBzdGF0aWMgY2hhcl91CSpwX2NmdTsKK3N0YXRpYyBjaGFyX3UJKnBfb2Z1OwogI2VuZGlmCiBzdGF0aWMgaW50CXBfZW9sOwogc3RhdGljIGludAlwX2V0OwpAQCAtMTYwMSw2ICsxNjAzLDE1IEBACiAJCQkgICAgKGNoYXJfdSAqKU5VTEwsIFBWX05PTkUsCiAjZW5kaWYKIAkJCSAgICB7KGNoYXJfdSAqKThMLCAoY2hhcl91ICopNEx9fSwKKyAgICB7Im9jY3VsdGZ1bmMiLCAib2Z1IiwgUF9TVFJJTkd8UF9BTExPQ0VEfFBfVklfREVGfFBfU0VDVVJFLAorI2lmZGVmIEZFQVRfQ09NUExfRlVOQworCQkJICAgIChjaGFyX3UgKikmcF9vZnUsIFBWX09GVSwKKwkJCSAgICB7KGNoYXJfdSAqKSIiLCAoY2hhcl91ICopMEx9CisjZWxzZQorCQkJICAgIChjaGFyX3UgKilOVUxMLCBQVl9OT05FLAorCQkJICAgIHsoY2hhcl91ICopMEwsIChjaGFyX3UgKikwTH0KKyNlbmRpZgorCQkJICAgIH0sCiAgICAgeyJvcGVuIiwJICAgIE5VTEwsICAgUF9CT09MfFBfVklfREVGLAogCQkJICAgIChjaGFyX3UgKilOVUxMLCBQVl9OT05FLAogCQkJICAgIHsoY2hhcl91ICopRkFMU0UsIChjaGFyX3UgKikwTH19LApAQCAtNDc0MCw2ICs0NzUxLDcgQEAKICNlbmRpZgogI2lmZGVmIEZFQVRfQ09NUExfRlVOQwogICAgIGNoZWNrX3N0cmluZ19vcHRpb24oJmJ1Zi0+Yl9wX2NmdSk7CisgICAgY2hlY2tfc3RyaW5nX29wdGlvbigmYnVmLT5iX3Bfb2Z1KTsKICNlbmRpZgogI2lmZGVmIEZFQVRfS0VZTUFQCiAgICAgY2hlY2tfc3RyaW5nX29wdGlvbigmYnVmLT5iX3Bfa2V5bWFwKTsKQEAgLTg0NDcsNiArODQ1OSw3IEBACiAjZW5kaWYKICNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKIAljYXNlIFBWX0NGVToJcmV0dXJuIChjaGFyX3UgKikmKGN1cmJ1Zi0+Yl9wX2NmdSk7CisJY2FzZSBQVl9PRlU6CXJldHVybiAoY2hhcl91ICopJihjdXJidWYtPmJfcF9vZnUpOwogI2VuZGlmCiAJY2FzZSBQVl9FT0w6CXJldHVybiAoY2hhcl91ICopJihjdXJidWYtPmJfcF9lb2wpOwogCWNhc2UgUFZfRVQ6CXJldHVybiAoY2hhcl91ICopJihjdXJidWYtPmJfcF9ldCk7CkBAIC04Nzc4LDYgKzg3OTEsNyBAQAogI2VuZGlmCiAjaWZkZWYgRkVBVF9DT01QTF9GVU5DCiAJICAgIGJ1Zi0+Yl9wX2NmdSA9IHZpbV9zdHJzYXZlKHBfY2Z1KTsKKwkgICAgYnVmLT5iX3Bfb2Z1ID0gdmltX3N0cnNhdmUocF9vZnUpOwogI2VuZGlmCiAJICAgIGJ1Zi0+Yl9wX3N0cyA9IHBfc3RzOwogCSAgICBidWYtPmJfcF9zdHNfbm9wYXN0ZSA9IHBfc3RzX25vcGFzdGU7CmRpZmYgLS1naXQgYS9zcmMvcG8vaXQucG8gYi9zcmMvcG8vaXQucG8KaW5kZXggZWUwYmVjZi4uZWQyNWY0NyAxMDA2NDQKLS0tIGEvc3JjL3BvL2l0LnBvCisrKyBiL3NyYy9wby9pdC5wbwpAQCAtMTMsOCArMTMsOCBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiB2aW0gNy4wXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA1LTA3LTAyIDE4OjAwKzAyMDBcbiIKLSJQTy1SZXZpc2lvbi1EYXRlOiAgMjAwNS0wNy0wMiAxODowMCswMjAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDUtMDgtMjUgMDk6MzArMDIwMFxuIgorIlBPLVJldmlzaW9uLURhdGU6ICAyMDA1LTA4LTI5IDIxOjMwKzAyMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6ICAgVmxhZCBTYW5kcmluaSAgIDxtYXJjb0BzYW5kcmluaS5iaXo+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogICAgIEl0YWxpYW4iCiAiICAgICAgICAgICAgICAgICAgIEFudG9uaW8gQ29sb21ibyA8YXpjMTBAeWFob28uY29tPiIKQEAgLTIyNCwxMyArMjI0LDggQEAKIG1zZ3N0ciAiIENvbXBsZXRhbWVudG8gS2V5d29yZCAoXk5eUCkiCiAKICMuIGN0cmxfeF9tb2RlID09IDAsIF5QL15OIGNvbXBsLgotbXNnaWQgIiBeWCBtb2RlICheRV5ZXkxeXV5GXkleS15EXlVeVl5OXlApIgotbXNnc3RyICIgbW9kYWxpdOAgXlggKF5FXlleTF5dXkZeSV5LXkReVV5WXk5eUCkiCi0KLSMuIFNjcm9sbCBoYXMgaXQncyBvd24gbXNncywgaW4gaXQncyBwbGFjZSB0aGVyZSBpcyB0aGUgbXNnIGZvciBsb2NhbAotIy4gKiBjdHJsX3hfbW9kZSA9IDAgKGVnIGNvbnRpbnVlX3N0YXR1cyAmIENPTlRfTE9DQUwpICAtLSBBY2V2ZWRvCi1tc2dpZCAiIEtleXdvcmQgTG9jYWwgY29tcGxldGlvbiAoXk5eUCkiCi1tc2dzdHIgIiBDb21wbGV0YW1lbnRvIEtleXdvcmQgTG9jYWxlICheTl5QKSIKK21zZ2lkICIgXlggbW9kZSAoXl1eRF5FXkZeSV5LXkxeTl5PXlBeU15VXlZeWSkiCittc2dzdHIgIiBtb2RhbGl04CBeWCAoXl1eRF5FXkZeSV5LXkxeTl5PXlBeU15VXlZeWSkiCiAKIG1zZ2lkICIgV2hvbGUgbGluZSBjb21wbGV0aW9uICheTF5OXlApIgogbXNnc3RyICIgQ29tcGxldGFtZW50byBMaW5lYSBJbnRlcmEgKF5MXk5eUCkiCkBAIC0yNTksMTUgKzI1NCwyNCBAQAogbXNnaWQgIiBVc2VyIGRlZmluZWQgY29tcGxldGlvbiAoXlVeTl5QKSIKIG1zZ3N0ciAiIENvbXBsZXRhbWVudG8gZGVmaW5pdG8gZGFsbCd1dGVudGUgKF5VXk5eUCkiCiAKK21zZ2lkICIgT2NjdWx0IGNvbXBsZXRpb24gKF5PXk5eUCkiCittc2dzdHIgIiBDb21wbGV0YW1lbnRvIG5hc2Nvc3RvICheT15OXlApIgorCittc2dpZCAiIFNwZWxsaW5nIHN1Z2dlc3Rpb24gKF5TXk5eUCkiCittc2dzdHIgIiBTdWdnZXJpbWVudG8gb3J0b2dyYWZpY28gKF5TXk5eUCkiCisKK21zZ2lkICIgS2V5d29yZCBMb2NhbCBjb21wbGV0aW9uICheTl5QKSIKK21zZ3N0ciAiIENvbXBsZXRhbWVudG8gS2V5d29yZCBMb2NhbGUgKF5OXlApIgorCiBtc2dpZCAiSGl0IGVuZCBvZiBwYXJhZ3JhcGgiCiBtc2dzdHIgIkdpdW50byBhbGxhIGZpbmUgZGVsIHBhcmFncmFmbyIKIAotbXNnaWQgIid0aGVzYXVydXMnIG9wdGlvbiBpcyBlbXB0eSIKLW1zZ3N0ciAibCdvcHppb25lICd0aGVzYXVydXMnIOggdnVvdGEiCi0KIG1zZ2lkICInZGljdGlvbmFyeScgb3B0aW9uIGlzIGVtcHR5IgogbXNnc3RyICJsJ29wemlvbmUgJ2RpY3Rpb25hcnknIOggdnVvdGEiCiAKK21zZ2lkICIndGhlc2F1cnVzJyBvcHRpb24gaXMgZW1wdHkiCittc2dzdHIgImwnb3B6aW9uZSAndGhlc2F1cnVzJyDoIHZ1b3RhIgorCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNjYW5uaW5nIGRpY3Rpb25hcnk6ICVzIgogbXNnc3RyICJTY2Fuc2lvbmUgZGl6aW9uYXJpbzogJXMiCkBAIC02NjksNiArNjczLDEzIEBACiAiXG4iCiAiIyB2YXJpYWJpbGkgZ2xvYmFsaTpcbiIKIAorbXNnaWQgIiIKKyJcbiIKKyJcdExhc3Qgc2V0IGZyb20gIgorbXNnc3RyICIiCisiXG4iCisiXHRJbXBvc3RhdGEgbCd1bHRpbWEgdm9sdGEgZGEgIgorCiBtc2dpZCAiRW50ZXJpbmcgRGVidWcgbW9kZS4gIFR5cGUgXCJjb250XCIgdG8gY29udGludWUuIgogbXNnc3RyICJFbnRybyBtb2RhbGl04CBEZWJ1Zy4gIEJhdHRpIFwiY29udFwiIHBlciBjb250aW51YXJlLiIKIApAQCAtNzc5LDkwICs3OTAsNiBAQAogbXNnc3RyICJFMTY4OiA6ZmluaXNoIHVzYXRvIGZ1b3JpIGRhIGZpbGUgZGkgY29tYW5kaSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJQYWdlICVkIgotbXNnc3RyICJQYWdpbmEgJWQiCi0KLW1zZ2lkICJObyB0ZXh0IHRvIGJlIHByaW50ZWQiCi1tc2dzdHIgIk1hbmNhIHRlc3RvIGRhIHN0YW1wYXJlIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIlByaW50aW5nIHBhZ2UgJWQgKCVkJSUpIgotbXNnc3RyICJTdG8gc3RhbXBhbmRvIHBhZ2luYSAlZCAoJWQlJSkiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiIENvcHkgJWQgb2YgJWQiCi1tc2dzdHIgIiBDb3BpYSAlZCBkaSAlZCIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJQcmludGVkOiAlcyIKLW1zZ3N0ciAiU3RhbXBhdG86ICVzIgotCi1tc2dpZCAiUHJpbnRpbmcgYWJvcnRlZCIKLW1zZ3N0ciAiU3RhbXBhIG5vbiBjb21wbGV0YXRhJyIKLQotbXNnaWQgIkU0NTU6IEVycm9yIHdyaXRpbmcgdG8gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKLW1zZ3N0ciAiRTQ1NTogRXJyb3JlIGluIHNjcml0dHVyYSBhIGZpbGUgUG9zdFNjcmlwdCBkaSBvdXRwdXQiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTYyNDogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKLW1zZ3N0ciAiRTYyNDogTm9uIHJpZXNjbyBhZCBhcHJpcmUgaWwgZmlsZSBcIiVzXCIiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTQ1NzogQ2FuJ3QgcmVhZCBQb3N0U2NyaXB0IHJlc291cmNlIGZpbGUgXCIlc1wiIgotbXNnc3RyICJFNDU3OiBOb24gcmllc2NvIGEgbGVnZ2VyZSBmaWxlIHJpc29yc2UgUG9zdFNjcmlwdCBcIiVzXCIiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTYxODogZmlsZSBcIiVzXCIgaXMgbm90IGEgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgotbXNnc3RyICJFNjE4OiBmaWxlIFwiJXNcIiBub24g6CB1biBmaWxlIGRpIHJpc29yc2UgUG9zdFNjcmlwdCIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFNjE5OiBmaWxlIFwiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgotbXNnc3RyICJFNjE5OiBmaWxlIFwiJXNcIiBub24g6CB1biBmaWxlIGRpIHJpc29yc2UgUG9zdFNjcmlwdCBzdXBwb3J0YXRvIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU2MjE6IFwiJXNcIiByZXNvdXJjZSBmaWxlIGhhcyB3cm9uZyB2ZXJzaW9uIgotbXNnc3RyICJFNjIxOiBpbCBmaWxlIGRpIHJpc29yc2UgXCIlc1wiIGhhIHVuYSB2ZXJzaW9uZSBzYmFnbGlhdGEiCi0KLW1zZ2lkICJFNjczOiBJbmNvbXBhdGlibGUgbXVsdGktYnl0ZSBlbmNvZGluZyBhbmQgY2hhcmFjdGVyIHNldC4iCi1tc2dzdHIgIkU2NzM6IENvZGlmaWNhIGUgc2V0IGRpIGNhcmF0dGVyaSBtdWx0aS1ieXRlIG5vbiBjb21wYXRpYmlsaS4iCi0KLW1zZ2lkICJFNjc0OiBwcmludG1iY2hhcnNldCBjYW5ub3QgYmUgZW1wdHkgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nLiIKLW1zZ3N0ciAiRTY3NDogcHJpbnRtYmNoYXJzZXQgbm9uIHB18iBlc3NlcmUgbnVsbG8gY29uIGNvZGlmaWNhIG11bHRpLWJ5dGUuIgotCi1tc2dpZCAiRTY3NTogTm8gZGVmYXVsdCBmb250IHNwZWNpZmllZCBmb3IgbXVsdGktYnl0ZSBwcmludGluZy4iCi1tc2dzdHIgIkU2NzU6IEZvbnQgcHJlZGVmaW5pdG8gbm9uIHNwZWNpZmljYXRvIHBlciBzdGFtcGEgbXVsdGktYnl0ZS4iCi0KLW1zZ2lkICJFMzI0OiBDYW4ndCBvcGVuIFBvc3RTY3JpcHQgb3V0cHV0IGZpbGUiCi1tc2dzdHIgIkUzMjQ6IE5vbiByaWVzY28gYWQgYXByaXJlIGZpbGUgUG9zdFNjcmlwdCBkaSBvdXRwdXQiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTQ1NjogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKLW1zZ3N0ciAiRTQ1NjogTm9uIHJpZXNjbyBhZCBhcHJpcmUgaWwgZmlsZSBcIiVzXCIiCi0KLW1zZ2lkICJFNDU2OiBDYW4ndCBmaW5kIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSBcInByb2xvZy5wc1wiIgotbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCJwcm9sb2cucHNcIiIKLQotbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiY2lkZm9udC5wc1wiIgotbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCJjaWRmb250LnBzXCIiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTQ1NjogQ2FuJ3QgZmluZCBQb3N0U2NyaXB0IHJlc291cmNlIGZpbGUgXCIlcy5wc1wiIgotbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCIlcy5wc1wiIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU2MjA6IFVuYWJsZSB0byBjb252ZXJ0IHRvIHByaW50IGVuY29kaW5nIFwiJXNcIiIKLW1zZ3N0ciAiRTYyMDogSW1wb3NzaWJpbGUgY29udmVydGlyZSBhIGNvZGlmaWNhIGRpIHN0YW1wYSBcIiVzXCIiCi0KLW1zZ2lkICJTZW5kaW5nIHRvIHByaW50ZXIuLi4iCi1tc2dzdHIgIkludmlvIGEgc3RhbXBhbnRlLi4uIgotCi1tc2dpZCAiRTM2NTogRmFpbGVkIHRvIHByaW50IFBvc3RTY3JpcHQgZmlsZSIKLW1zZ3N0ciAiRTM2NTogTm9uIHJpZXNjbyBhZCBhcHJpcmUgZmlsZSBQb3N0U2NyaXB0IgotCi1tc2dpZCAiUHJpbnQgam9iIHNlbnQuIgotbXNnc3RyICJSaWNoaWVzdGEgZGkgc3RhbXBhIGludmlhdGEuIgotCi0jLCBjLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgJXNsYW5ndWFnZTogXCIlc1wiIgogbXNnc3RyICJMaW5ndWEgJXNpbiB1c286IFwiJXNcIiIKIApAQCAtOTY1LDYgKzg5MiwxNCBAQAogbXNnc3RyICJSaXNjcml0dHVyYSBkZWwgZmlsZSBlc2lzdGVudGUgXCIlc1wiPyIKIAogIywgYy1mb3JtYXQKK21zZ2lkICJTd2FwIGZpbGUgXCIlc1wiIGV4aXN0cywgb3ZlcndyaXRlIGFueXdheT8iCittc2dzdHIgIklsIGZpbGUgc3dhcCBcIiVzXCIgZXNpc3RlIGdp4Cwgc292cmFzY3Jpdm8/IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3Njg6IFN3YXAgZmlsZSBleGlzdHM6ICVzICg6c2lsZW50ISBvdmVycmlkZXMpIgorbXNnc3RyICJFNzY4OiBGaWxlIHN3YXAgZXNpc3RlbnRlOiAlcyAoOnNpbGVudCEgcGVyIHNvdnJhc2NyaXZlcmxvKSIKKworIywgYy1mb3JtYXQKIG1zZ2lkICJFMTQxOiBObyBmaWxlIG5hbWUgZm9yIGJ1ZmZlciAlbGQiCiBtc2dzdHIgIkUxNDE6IE1hbmNhIG5vbWUgZmlsZSBwZXIgaWwgYnVmZmVyICVsZCIKIApAQCAtMTIyMSw3ICsxMTU2LDcgQEAKIAogbXNnaWQgIkUxODM6IFVzZXIgZGVmaW5lZCBjb21tYW5kcyBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGxldHRlciIKIG1zZ3N0ciAiIgotIkUxODMgSSBjb21hbmRpIGRlZmluaXRpIGRhbGwndXRlbnRlIGRldm9ubyBpbml6aWFyZSBjb24gbGV0dGVyYSBtYWl1c2NvbGEiCisiRTE4MzogSSBjb21hbmRpIGRlZmluaXRpIGRhbGwndXRlbnRlIGRldm9ubyBpbml6aWFyZSBjb24gbGV0dGVyYSBtYWl1c2NvbGEiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE4NDogTm8gc3VjaCB1c2VyLWRlZmluZWQgY29tbWFuZDogJXMiCkBAIC0yMTYzLDYgKzIwOTgsOTkgQEAKIG1zZ2lkICJFMjU2OiBIYW5ndWwgYXV0b21hdGEgRVJST1IiCiBtc2dzdHIgIkUyNTY6IEVSUk9SRSBwcm9jZXNzb3JlIEhhbmd1bCIKIAorbXNnaWQgIkU1NTA6IE1pc3NpbmcgY29sb24iCittc2dzdHIgIkU1NTA6IE1hbmNhICc6JyIKKworbXNnaWQgIkU1NTE6IElsbGVnYWwgY29tcG9uZW50IgorbXNnc3RyICJFNTUxOiBDb21wb25lbnRlIG5vbiB2YWxpZG8iCisKK21zZ2lkICJFNTUyOiBkaWdpdCBleHBlY3RlZCIKK21zZ3N0ciAiRTU1MjogYXNwZXR0YXZvIHVuIG51bWVybyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJQYWdlICVkIgorbXNnc3RyICJQYWdpbmEgJWQiCisKK21zZ2lkICJObyB0ZXh0IHRvIGJlIHByaW50ZWQiCittc2dzdHIgIk1hbmNhIHRlc3RvIGRhIHN0YW1wYXJlIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlByaW50aW5nIHBhZ2UgJWQgKCVkJSUpIgorbXNnc3RyICJTdG8gc3RhbXBhbmRvIHBhZ2luYSAlZCAoJWQlJSkiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiIENvcHkgJWQgb2YgJWQiCittc2dzdHIgIiBDb3BpYSAlZCBkaSAlZCIKKworIywgYy1mb3JtYXQKK21zZ2lkICJQcmludGVkOiAlcyIKK21zZ3N0ciAiU3RhbXBhdG86ICVzIgorCittc2dpZCAiUHJpbnRpbmcgYWJvcnRlZCIKK21zZ3N0ciAiU3RhbXBhIG5vbiBjb21wbGV0YXRhJyIKKworbXNnaWQgIkU0NTU6IEVycm9yIHdyaXRpbmcgdG8gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKK21zZ3N0ciAiRTQ1NTogRXJyb3JlIGluIHNjcml0dHVyYSBhIGZpbGUgUG9zdFNjcmlwdCBkaSBvdXRwdXQiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTYyNDogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKK21zZ3N0ciAiRTYyNDogTm9uIHJpZXNjbyBhZCBhcHJpcmUgaWwgZmlsZSBcIiVzXCIiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTQ1NzogQ2FuJ3QgcmVhZCBQb3N0U2NyaXB0IHJlc291cmNlIGZpbGUgXCIlc1wiIgorbXNnc3RyICJFNDU3OiBOb24gcmllc2NvIGEgbGVnZ2VyZSBmaWxlIHJpc29yc2UgUG9zdFNjcmlwdCBcIiVzXCIiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTYxODogZmlsZSBcIiVzXCIgaXMgbm90IGEgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgorbXNnc3RyICJFNjE4OiBmaWxlIFwiJXNcIiBub24g6CB1biBmaWxlIGRpIHJpc29yc2UgUG9zdFNjcmlwdCIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNjE5OiBmaWxlIFwiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgorbXNnc3RyICJFNjE5OiBmaWxlIFwiJXNcIiBub24g6CB1biBmaWxlIGRpIHJpc29yc2UgUG9zdFNjcmlwdCBzdXBwb3J0YXRvIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU2MjE6IFwiJXNcIiByZXNvdXJjZSBmaWxlIGhhcyB3cm9uZyB2ZXJzaW9uIgorbXNnc3RyICJFNjIxOiBpbCBmaWxlIGRpIHJpc29yc2UgXCIlc1wiIGhhIHVuYSB2ZXJzaW9uZSBzYmFnbGlhdGEiCisKK21zZ2lkICJFNjczOiBJbmNvbXBhdGlibGUgbXVsdGktYnl0ZSBlbmNvZGluZyBhbmQgY2hhcmFjdGVyIHNldC4iCittc2dzdHIgIkU2NzM6IENvZGlmaWNhIGUgc2V0IGRpIGNhcmF0dGVyaSBtdWx0aS1ieXRlIG5vbiBjb21wYXRpYmlsaS4iCisKK21zZ2lkICJFNjc0OiBwcmludG1iY2hhcnNldCBjYW5ub3QgYmUgZW1wdHkgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nLiIKK21zZ3N0ciAiRTY3NDogcHJpbnRtYmNoYXJzZXQgbm9uIHB18iBlc3NlcmUgbnVsbG8gY29uIGNvZGlmaWNhIG11bHRpLWJ5dGUuIgorCittc2dpZCAiRTY3NTogTm8gZGVmYXVsdCBmb250IHNwZWNpZmllZCBmb3IgbXVsdGktYnl0ZSBwcmludGluZy4iCittc2dzdHIgIkU2NzU6IEZvbnQgcHJlZGVmaW5pdG8gbm9uIHNwZWNpZmljYXRvIHBlciBzdGFtcGEgbXVsdGktYnl0ZS4iCisKK21zZ2lkICJFMzI0OiBDYW4ndCBvcGVuIFBvc3RTY3JpcHQgb3V0cHV0IGZpbGUiCittc2dzdHIgIkUzMjQ6IE5vbiByaWVzY28gYWQgYXByaXJlIGZpbGUgUG9zdFNjcmlwdCBkaSBvdXRwdXQiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTQ1NjogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKK21zZ3N0ciAiRTQ1NjogTm9uIHJpZXNjbyBhZCBhcHJpcmUgaWwgZmlsZSBcIiVzXCIiCisKK21zZ2lkICJFNDU2OiBDYW4ndCBmaW5kIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSBcInByb2xvZy5wc1wiIgorbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCJwcm9sb2cucHNcIiIKKworbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiY2lkZm9udC5wc1wiIgorbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCJjaWRmb250LnBzXCIiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTQ1NjogQ2FuJ3QgZmluZCBQb3N0U2NyaXB0IHJlc291cmNlIGZpbGUgXCIlcy5wc1wiIgorbXNnc3RyICJFNDU2OiBOb24gdHJvdm8gZmlsZSByaXNvcnNlIFBvc3RTY3JpcHQgXCIlcy5wc1wiIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU2MjA6IFVuYWJsZSB0byBjb252ZXJ0IHRvIHByaW50IGVuY29kaW5nIFwiJXNcIiIKK21zZ3N0ciAiRTYyMDogSW1wb3NzaWJpbGUgY29udmVydGlyZSBhIGNvZGlmaWNhIGRpIHN0YW1wYSBcIiVzXCIiCisKK21zZ2lkICJTZW5kaW5nIHRvIHByaW50ZXIuLi4iCittc2dzdHIgIkludmlvIGEgc3RhbXBhbnRlLi4uIgorCittc2dpZCAiRTM2NTogRmFpbGVkIHRvIHByaW50IFBvc3RTY3JpcHQgZmlsZSIKK21zZ3N0ciAiRTM2NTogTm9uIHJpZXNjbyBhZCBhcHJpcmUgZmlsZSBQb3N0U2NyaXB0IgorCittc2dpZCAiUHJpbnQgam9iIHNlbnQuIgorbXNnc3RyICJSaWNoaWVzdGEgZGkgc3RhbXBhIGludmlhdGEuIgorCiBtc2dpZCAiQWRkIGEgbmV3IGRhdGFiYXNlIgogbXNnc3RyICJBZ2dpdW5naSB1biBudW92byBkYXRhYmFzZSIKIApAQCAtMjYxMiw4ICsyNjQwLDggQEAKIG1zZ2lkICJFMjUxOiBWSU0gaW5zdGFuY2UgcmVnaXN0cnkgcHJvcGVydHkgaXMgYmFkbHkgZm9ybWVkLiAgRGVsZXRlZCEiCiBtc2dzdHIgIkUyNTE6IFByb3ByaWV04CByZWdpc3RyeSByZWxhdGl2ZSBhIFZJTSBub24gYWRlZ3VhdGUuICBDYW5jZWxsYXRlISIKIAotbXNnaWQgIlVua25vd24gb3B0aW9uIgotbXNnc3RyICJPcHppb25lIGluZXNpc3RlbnRlIgorbXNnaWQgIlVua25vd24gb3B0aW9uIGFyZ3VtZW50IgorbXNnc3RyICJBcmdvbWVudG8gZGkgb3B6aW9uZSBzY29ub3NjaXV0byIKIAogbXNnaWQgIlRvbyBtYW55IGVkaXQgYXJndW1lbnRzIgogbXNnc3RyICJUcm9wcGkgYXJnb21lbnRpIGRpIGVkaXQiCkBAIC0yNjIxLDggKzI2NDksOCBAQAogbXNnaWQgIkFyZ3VtZW50IG1pc3NpbmcgYWZ0ZXIiCiBtc2dzdHIgIkFyZ29tZW50byBtYW5jYW50ZSBkb3BvIgogCi1tc2dpZCAiR2FyYmFnZSBhZnRlciBvcHRpb24iCi1tc2dzdHIgIlNwYXp6YXR1cmEgZG9wbyBvcHppb25lIgorbXNnaWQgIkdhcmJhZ2UgYWZ0ZXIgb3B0aW9uIGFyZ3VtZW50IgorbXNnc3RyICJTcGF6emF0dXJhIGRvcG8gYXJnb21lbnRvIGRpIG9wemlvbmUiCiAKIG1zZ2lkICJUb28gbWFueSBcIitjb21tYW5kXCIsIFwiLWMgY29tbWFuZFwiIG9yIFwiLS1jbWQgY29tbWFuZFwiIGFyZ3VtZW50cyIKIG1zZ3N0ciAiVHJvcHBpIGFyZ29tZW50aSBcIitjb21tYW5kXCIsIFwiLWMgY29tbWFuZFwiIG8gXCItLWNtZCBjb21tYW5kXCIiCkBAIC0yNjMwLDYgKzI2NTgsMTAgQEAKIG1zZ2lkICJJbnZhbGlkIGFyZ3VtZW50IGZvciIKIG1zZ3N0ciAiQXJnb21lbnRvIG5vbiB2YWxpZG8gcGVyIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGZpbGVzIHRvIGVkaXRcbiIKK21zZ3N0ciAiJWQgZmlsZSBkYSBlbGFib3JhcmVcbiIKKwogbXNnaWQgIlRoaXMgVmltIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aGUgZGlmZiBmZWF0dXJlLiIKIG1zZ3N0ciAiVmltIG5vbiBjb21waWxhdG8gY29uIG9wemlvbmUgJ2RpZmYnLiIKIApAQCAtMjY1MSwxMCArMjY4Myw2IEBACiBtc2dpZCAiVmltOiBXYXJuaW5nOiBJbnB1dCBpcyBub3QgZnJvbSBhIHRlcm1pbmFsXG4iCiBtc2dzdHIgIlZpbTogQXR0ZW56aW9uZTogSW5wdXQgbm9uIHByb3ZlbmllbnRlIGRhIHVuIHRlcm1pbmFsZVxuIgogCi0jLCBjLWZvcm1hdAotbXNnaWQgIiVkIGZpbGVzIHRvIGVkaXRcbiIKLW1zZ3N0ciAiJWQgZmlsZSBkYSBlbGFib3JhcmVcbiIKLQogIy4ganVzdCBpbiBjYXNlLi4KIG1zZ2lkICJwcmUtdmltcmMgY29tbWFuZCBsaW5lIgogbXNnc3RyICJsaW5lYSBjb21hbmRpIHByaW1hIGRpIHZpbXJjIgpAQCAtMzU0OSw4ICszNTc3LDkgQEAKIG1zZ2lkICJFMzI4OiBNZW51IG9ubHkgZXhpc3RzIGluIGFub3RoZXIgbW9kZSIKIG1zZ3N0ciAiRTMyODogSSBNZW51IGVzaXN0b25vIHNvbG8gaW4gdW4nYWx0cmEgbW9kYWxpdOAiCiAKLW1zZ2lkICJFMzI5OiBObyBtZW51IG9mIHRoYXQgbmFtZSIKLW1zZ3N0ciAiRTMyOTogTmVzc3VuIE1lbnUgY29uIHF1ZWwgbm9tZSIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTMyOTogTm8gbWVudSBcIiVzXCIiCittc2dzdHIgIkUzMjk6IE5lc3N1biBNZW51IFwiJXNcIiIKIAogbXNnaWQgIkUzMzA6IE1lbnUgcGF0aCBtdXN0IG5vdCBsZWFkIHRvIGEgc3ViLW1lbnUiCiBtc2dzdHIgIkUzMzA6IElsIHBlcmNvcnNvIGRlbCBNZW51IG5vbiBkZXZlIGNvbmR1cnJlIGEgdW4gc290dG8tTWVudSIKQEAgLTM2MDksMTcgKzM2MzgsMTQgQEAKIG1zZ2lkICJJbnRlcnJ1cHQ6ICIKIG1zZ3N0ciAiSW50ZXJydXppb25lOiAiCiAKLW1zZ2lkICJIaXQgRU5URVIgb3IgdHlwZSBjb21tYW5kIHRvIGNvbnRpbnVlIgotbXNnc3RyICJCYXR0aSBJTlZJTyBvIHVuIGNvbWFuZG8gcGVyIHByb3NlZ3VpcmUiCittc2dpZCAiUHJlc3MgRU5URVIgb3IgdHlwZSBjb21tYW5kIHRvIGNvbnRpbnVlIgorbXNnc3RyICJQcmVtaSBJTlZJTyBvIHVuIGNvbWFuZG8gcGVyIHByb3NlZ3VpcmUiCiAKIG1zZ2lkICItLSBNb3JlIC0tIgogbXNnc3RyICItLSBBbmNvcmEgLS0iCiAKLW1zZ2lkICIgKFJFVC9CUzogbGluZSwgU1BBQ0UvYjogcGFnZSwgZC91OiBoYWxmIHBhZ2UsIHE6IHF1aXQpIgotbXNnc3RyICIgKFJFVC9CUzogbGluZWEsIFNQQVpJTy9iOiBwYWdpbmEsIGQvdTogbWV6emEgcGFnaW5hLCBxOiBlc2NpKSIKLQotbXNnaWQgIiAoUkVUOiBsaW5lLCBTUEFDRTogcGFnZSwgZDogaGFsZiBwYWdlLCBxOiBxdWl0KSIKLW1zZ3N0ciAiIChSRVQ6IGxpbmVhLCBTUEFaSU86IHBhZ2luYSwgZDogbWV6emEgcGFnaW5hLCBxOiBlc2NpKSIKK21zZ2lkICIgU1BBQ0UvZC9qOiBzY3JlZW4vcGFnZS9saW5lIGRvd24sIGIvdS9rOiB1cCwgcTogcXVpdCAiCittc2dzdHIgIiBTUEFaSU8vZC9qOiBzY2hlcm1vL3BhZ2luYS9yaWdhIGdp+SwgYi91L2s6IHN1LCBxOiBhYmJhbmRvbmEiCiAKIG1zZ2lkICJRdWVzdGlvbiIKIG1zZ3N0ciAiRG9tYW5kYSIKQEAgLTM2NTcsNiArMzY4MywxMiBAQAogbXNnaWQgIkUzMzg6IFNvcnJ5LCBubyBmaWxlIGJyb3dzZXIgaW4gY29uc29sZSBtb2RlIgogbXNnc3RyICJFMzM4OiBTcGlhY2VudGUsIG5pZW50ZSBlc3Bsb3JhemlvbmUgZmlsZSBpbiBtb2RhbGl04CBjb25zb2xlIgogCittc2dpZCAiRTc2NjogSW5zdWZmaWNpZW50IGFyZ3VtZW50cyBmb3IgcHJpbnRmKCkiCittc2dzdHIgIkU3NjY6IEFyZ29tZW50aSBub24gc3VmZmljaWVudGkgcGVyIHByaW50ZigpIgorCittc2dpZCAiRTc2NzogVG9vIG1hbnkgYXJndW1lbnRzIHRvIHByaW50ZigpIgorbXNnc3RyICJFNzY3OiBUcm9wcGkgYXJnb21lbnRpIHBlciBwcmludGYoKSIKKwogbXNnaWQgIlcxMDogV2FybmluZzogQ2hhbmdpbmcgYSByZWFkb25seSBmaWxlIgogbXNnc3RyICJXMTA6IEF0dGVuemlvbmU6IE1vZGlmaWNhIGEgdW4gZmlsZSBpbiBzb2xhLWxldHR1cmEiCiAKQEAgLTM3NzYsMTUgKzM4MDgsNiBAQAogbXNnaWQgIkUzNDc6IE5vIG1vcmUgZmlsZSBcIiVzXCIgZm91bmQgaW4gcGF0aCIKIG1zZ3N0ciAiRTM0NzogTmVzc3VuIGFsdHJvIGZpbGUgXCIlc1wiIHRyb3ZhdG8gbmVsIHBlcmNvcnNvIgogCi1tc2dpZCAiRTU1MDogTWlzc2luZyBjb2xvbiIKLW1zZ3N0ciAiRTU1MDogTWFuY2EgJzonIgotCi1tc2dpZCAiRTU1MTogSWxsZWdhbCBjb21wb25lbnQiCi1tc2dzdHIgIkU1NTE6IENvbXBvbmVudGUgbm9uIHZhbGlkbyIKLQotbXNnaWQgIkU1NTI6IGRpZ2l0IGV4cGVjdGVkIgotbXNnc3RyICJFNTUyOiBhc3BldHRhdm8gdW4gbnVtZXJvIgotCiAjLiBHZXQgaGVyZSB3aGVuIHRoZSBzZXJ2ZXIgY2FuJ3QgYmUgZm91bmQuCiBtc2dpZCAiQ2Fubm90IGNvbm5lY3QgdG8gTmV0YmVhbnMgIzIiCiBtc2dzdHIgIk5vbiBwb3NzbyBjb25uZXR0ZXJtaSBhIE5ldGJlYW5zICMyIgpAQCAtMzk2NCwxMyArMzk4Nyw2IEBACiBtc2dpZCAiRTUyMDogTm90IGFsbG93ZWQgaW4gYSBtb2RlbGluZSIKIG1zZ3N0ciAiRTUyMDogTm9uIGNvbnNlbnRpdG8gaW4gdW5hICdtb2RlbGluZSciCiAKLW1zZ2lkICIiCi0iXG4iCi0iXHRMYXN0IHNldCBmcm9tICIKLW1zZ3N0ciAiIgotIlxuIgotIlx0SW1wb3N0YXRhIGwndWx0aW1hIHZvbHRhIGRhICIKLQogbXNnaWQgIkU1MjE6IE51bWJlciByZXF1aXJlZCBhZnRlciA9IgogbXNnc3RyICJFNTIxOiBDaSB2dW9sZSB1biBudW1lcm8gZG9wbyA9IgogCkBAIC00NDgyLDYgKzQ0OTgsMTAgQEAKIG1zZ3N0ciAiRTcxOiBDYXJhdHRlcmUgbm9uIGFtbWVzc28gZG9wbyAlcyUlIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIkU3Njk6IE1pc3NpbmcgXSBhZnRlciAlc1siCittc2dzdHIgIkU3Njk6IE1hbmNhIF0gZG9wbyAlc1siCisKKyMsIGMtZm9ybWF0CiBtc2dpZCAiRTU1NDogU3ludGF4IGVycm9yIGluICVzey4uLn0iCiBtc2dzdHIgIkU1NTQ6IEVycm9yZSBzaW50YXR0aWNvIGluICVzey4uLn0iCiAKQEAgLTQ2MDcsMjkgKzQ2MjcsNTEgQEAKIG1zZ2lkICJFNzU4OiBUcnVuY2F0ZWQgc3BlbGwgZmlsZSIKIG1zZ3N0ciAiRTc1ODogRmlsZSBvcnRvZ3JhZmljbyB0cm9uY2F0byIKIAorIywgYy1mb3JtYXQKK21zZ2lkICJUcmFpbGluZyB0ZXh0IGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJUZXN0byBpbiBlY2Nlc3NvIGluICVzIGxpbmVhICVkOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJBZmZpeCBuYW1lIHRvbyBsb25nIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJOb21lIGFmZmlzc28gdHJvcHBvIGx1bmdvIGluICVzIGxpbmVhICVkOiAlcyIKKworbXNnaWQgIkU3NjE6IEZvcm1hdCBlcnJvciBpbiBhZmZpeCBmaWxlIEZPTCwgTE9XIG9yIFVQUCIKK21zZ3N0ciAiRTc2MTogRXJyb3JlIGRpIGZvcm1hdG8gbmVsIGZpbGUgYWZmaXNzaSBGT0wsIExPVyBvIFVQUCIKKworbXNnaWQgIkU3NjI6IENoYXJhY3RlciBpbiBGT0wsIExPVyBvciBVUFAgaXMgb3V0IG9mIHJhbmdlIgorbXNnc3RyICJFNzYyOiBDYXJhdHRlcmUgZnVvcmkgaW50ZXJ2YWxsbyBpbiBGT0wsIExPVyBvIFVQUCIKKworbXNnaWQgIkNvbXByZXNzaW5nIHdvcmQgdHJlZS4uLiIKK21zZ3N0ciAiQ29tcHJpbW8gYWxiZXJvIGRpIHBhcm9sZS4uLiIKKwogbXNnaWQgIkU3NTY6IFNwZWxsIGNoZWNraW5nIGlzIG5vdCBlbmFibGVkIgogbXNnc3RyICJFNzU2OiBJbCBjb250cm9sbG8gb3J0b2dyYWZpY28gbm9uIOggYWJpbGl0YXRvIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIldhcm5pbmc6IENhbm5vdCBmaW5kIHdvcmQgbGlzdCBcIiVzXCIiCi1tc2dzdHIgIkF0dGVuemlvbmU6IE5vbiB0cm92byBsaXN0YSBwYXJvbGUgXCIlc1wiIgorbXNnaWQgIldhcm5pbmc6IENhbm5vdCBmaW5kIHdvcmQgbGlzdCBcIiVzLiVzLnNwbFwiIG9yIFwiJXMuYXNjaWkuc3BsXCIiCittc2dzdHIgIkF0dGVuemlvbmU6IE5vbiB0cm92byBsaXN0YSBwYXJvbGUgXCIlcy4lcy5zcGxcIiBvIFwiJXMuYXNjaWkuc3BsXCIiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVhZGluZyBzcGVsbCBmaWxlIFwiJXNcIiIKIG1zZ3N0ciAiTGV0dHVyYSBmaWxlIG9ydG9ncmFmaWNvIFwiJXNcIiIKIAotbXNnaWQgIkU3NTc6IFdyb25nIGZpbGUgSUQgaW4gc3BlbGwgZmlsZSIKLW1zZ3N0ciAiRTc1NzogRmlsZSBJRCBlcnJhdG8gbmVsIGZpbGUgb3J0b2dyYWZpY28iCittc2dpZCAiRTc1NzogVGhpcyBkb2VzIG5vdCBsb29rIGxpa2UgYSBzcGVsbCBmaWxlIgorbXNnc3RyICJFNzU3OiBRdWVzdG8gbm9uIHNlbWJyYSB1biBmaWxlIG9ydG9ncmFmaWNvIgorCittc2dpZCAiRTc3MTogT2xkIHNwZWxsIGZpbGUsIG5lZWRzIHRvIGJlIHVwZGF0ZWQiCittc2dzdHIgIkU3NzE6IEZpbGUgb3J0b2dyYWZpY28gb2Jzb2xldG8sIG5lY2Vzc2FyaW8gYWdnaW9ybmFtZW50byIKKworbXNnaWQgIkU3NzI6IFNwZWxsIGZpbGUgaXMgZm9yIG5ld2VyIHZlcnNpb24gb2YgVmltIgorbXNnc3RyICJFNzcyOiBJbCBmaWxlIG9ydG9ncmFmaWNvIOggcGVyIHZlcnNpb25pIGRpIFZpbSBwafkgcmVjZW50aSIKKworbXNnaWQgIkU3NzA6IFVuc3VwcG9ydGVkIHNlY3Rpb24gaW4gc3BlbGwgZmlsZSIKK21zZ3N0ciAiRTc3MDogU2V6aW9uZSBub24gc3VwcG9ydGF0YSBuZWwgZmlsZSBvcnRvZ3JhZmljbyIKIAogIywgYy1mb3JtYXQKIG1zZ2lkICJXYXJuaW5nOiByZWdpb24gJXMgbm90IHN1cHBvcnRlZCIKIG1zZ3N0ciAiQXR0ZW56aW9uZTogcmVnaW9uZSAlcyBub24gc3VwcG9ydGF0YSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJBZmZpeCBuYW1lIHRvbyBsb25nIGluICVzIGxpbmUgJWQ6ICVzIgotbXNnc3RyICJOb21lIGFmZmlzc28gdHJvcHBvIGx1bmdvIGluICVzIGxpbmVhICVkOiAlcyIKLQotIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkaW5nIGFmZml4IGZpbGUgJXMgLi4uIgogbXNnc3RyICJMZXR0dXJhIGZpbGUgYWZmaXNzaSAlcyAuLi4iCiAKQEAgLTQ2NDYsOCArNDY4OCwyOCBAQAogbXNnc3RyICJDb252ZXJzaW9uZSBpbiAlcyBub24gc3VwcG9ydGF0YSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJUcmFpbGluZyB0ZXh0IGluICVzIGxpbmUgJWQ6ICVzIgotbXNnc3RyICJUZXN0byBpbiBlY2Nlc3NvIGluICVzIGxpbmVhICVkOiAlcyIKK21zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciBGTEFHIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJWYWxvcmUgZGkgRkxBRyBub24gdmFsaWRvIGluICVzIGxpbmVhICVkOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJGTEFHIGFmdGVyIHVzaW5nIGZsYWdzIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJGTEFHIGRvcG8gbCd1c28gZGkgZmxhZ3MgaW4gJXMgbGluZWEgJWQ6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYXJhY3RlciB1c2VkIGZvciBTTEFTSCBtdXN0IGJlIEFTQ0lJOyBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiSWwgY2FyYXR0ZXJlIHVzYXRvIHBlciBTTEFTSCBkZXZlIGVzc2VyZSBBU0NJSTsgaW4gJXMgbGluZWEgJWQ6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldyb25nIENPTVBPVU5ETUFYIHZhbHVlIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJWYWxvcmUgZXJyYXRvIHBlciBDT01QT1VORE1BWCBpbiAlcyBsaW5lYSAlZDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV3JvbmcgQ09NUE9VTkRNSU4gdmFsdWUgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIlZhbG9yZSBlcnJhdG8gcGVyIENPTVBPVU5ETUlOIGluICVzIGxpbmVhICVkOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcm9uZyBDT01QT1VORFNZTE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiVmFsb3JlIGVycmF0byBwZXIgQ09NUE9VTkRTWUxNQVggaW4gJXMgbGluZWEgJWQ6ICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkV4cGVjdGVkIFkgb3IgTiBpbiAlcyBsaW5lICVkOiAlcyIKQEAgLTQ2NTgsMTYgKzQ3MjAsOCBAQAogbXNnc3RyICJBZmZpc3NvIGR1cGxpY2F0byBpbiAlcyBsaW5lYSAlZDogJXMiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiRHVwbGljYXRlIEZPTCBpbiAlcyBsaW5lICVkIgotbXNnc3RyICJGT0wgZHVwbGljYXRvIGluICVzIGxpbmVhICVkIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkR1cGxpY2F0ZSBMT1cgaW4gJXMgbGluZSAlZCIKLW1zZ3N0ciAiTE9XIGR1cGxpY2F0byBpbiAlcyBsaW5lYSAlZCIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJEdXBsaWNhdGUgVVBQIGluICVzIGxpbmUgJWQiCi1tc2dzdHIgIlVQUCBkdXBsaWNhdG8gaW4gJXMgbGluZWEgJWQiCittc2dpZCAiQnJva2VuIGNvbmRpdGlvbiBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiQ29uZGl6aW9uZSBub24gcmlzcGV0dGF0YSBpbiAlcyBsaW5lYSAlZDogJXMiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRXhwZWN0ZWQgUkVQIGNvdW50IGluICVzIGxpbmUgJWQiCkBAIC00NjgyLDggKzQ3MzYsMjQgQEAKIG1zZ3N0ciAiQ2FyYXR0ZXJlIGR1cGxpY2F0byBpbiBNQVAgaW4gJXMgbGluZWEgJWQiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiVW5yZWNvZ25pemVkIGl0ZW0gaW4gJXMgbGluZSAlZDogJXMiCi1tc2dzdHIgIkVsZW1lbnRvIG5vbiByaWNvbm9zY2l1dG8gaW4gJXMgbGluZWEgJWQ6ICVzIgorbXNnaWQgIlVucmVjb2duaXplZCBvciBkdXBsaWNhdGUgaXRlbSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiRWxlbWVudG8gbm9uIHJpY29ub3NjaXV0byBvIGR1cGxpY2F0byBpbiAlcyBsaW5lYSAlZDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWlzc2luZyBGT0wvTE9XL1VQUCBsaW5lIGluICVzIgorbXNnc3RyICJMaW5lYSBGT0wvTE9XL1VQUCBtYW5jYW50ZSBpbiAlcyIKKworbXNnaWQgIkNPTVBPVU5EU1lMTUFYIHVzZWQgd2l0aG91dCBTWUxMQUJMRSIKK21zZ3N0ciAiQ09NUE9VTkRTWUxNQVggdXNhdG8gc2VuemEgU1lMTEFCTEUiCisKK21zZ2lkICJUb28gbWFueSBwb3N0cG9uZWQgcHJlZml4ZXMiCittc2dzdHIgIlRyb3BwaSBwcmVmaXNzaSBwb3Nwb3N0aSIKKworbXNnaWQgIlRvbyBtYW55IGNvbXBvdW5kIGZsYWdzIgorbXNnc3RyICJUcm9wcGkgZmxhZyBjb21wb3N0aSIKKworbXNnaWQgIlRvbyBtYW55IHBvc3BvbmVkIHByZWZpeGVzIGFuZC9vciBjb21wb3VuZCBmbGFncyIKK21zZ3N0ciAiVHJvcHBpIHByZWZpc3NpIHBvc3Bvc3RpIGUvbyBmbGFnIGNvbXBvc3RpIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1pc3NpbmcgU09GTyVzIGxpbmUgaW4gJXMiCkBAIC00Njk0LDggKzQ3NjQsMTYgQEAKIG1zZ3N0ciAiTGluZWUgc2lhIFNBTCBjaGUgU09GTyBpbiAlcyIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJNaXNzaW5nIEZPTC9MT1cvVVBQIGxpbmUgaW4gJXMiCi1tc2dzdHIgIkxpbmVhIEZPTC9MT1cvVVBQIG1hbmNhbnRlIGluICVzIgorbXNnaWQgIkZsYWcgaXMgbm90IGEgbnVtYmVyIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJJbCBmbGFnIG5vbiDoIHVuIG51bWVybyBpbiAlcyBsaW5lYSAlZDogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWxsZWdhbCBmbGFnIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJGbGFnIG5vbiBhbW1lc3NvIGluICVzIGxpbmVhICVkOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB2YWx1ZSBkaWZmZXJzIGZyb20gd2hhdCBpcyB1c2VkIGluIGFub3RoZXIgLmFmZiBmaWxlIgorbXNnc3RyICJJbCB2YWxvcmUgZGkgJXMg6CBkaXZlcnNvIGRhIHF1ZWxsbyB1c2F0byBpbiB1biBhbHRybyBmaWxlIC5hZmYiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiUmVhZGluZyBkaWN0aW9uYXJ5IGZpbGUgJXMgLi4uIgpAQCAtNDcxNCw4ICs0NzkyLDE2IEBACiBtc2dzdHIgIlBhcm9sYSBkdXBsaWNhdGEgaW4gJXMgbGluZWEgJWQ6ICVzIgogCiAjLCBjLWZvcm1hdAotbXNnaWQgIklnbm9yZWQgJWQgd29yZHMgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyIKLW1zZ3N0ciAiJWQgcGFyb2xlIGNvbiBjYXJhdHRlcmkgbm9uLUFTQ0lJIGlnbm9yYXRlIgorbXNnaWQgIkZpcnN0IGR1cGxpY2F0ZSB3b3JkIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICJQcmltYSBwYXJvbGEgZHVwbGljYXRhIGluICVzIGxpbmVhICVkOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICIlZCBkdXBsaWNhdGUgd29yZChzKSBpbiAlcyIKK21zZ3N0ciAiJWQgcGFyb2xlIGR1cGxpY2F0ZSBpbiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJJZ25vcmVkICVkIHdvcmQocykgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyBpbiAlcyIKK21zZ3N0ciAiJWQgcGFyb2xlIGNvbiBjYXJhdHRlcmkgbm9uLUFTQ0lJIGlnbm9yYXRlIGluICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlYWRpbmcgd29yZCBmaWxlICVzIC4uLiIKQEAgLTQ3NTAsNiArNDgzNiwxMCBAQAogbXNnc3RyICJGbGFnIG5vbiByaWNvbm9zY2l1dGkgaW4gJXMgbGluZWEgJWQ6ICVzIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yZWQgJWQgd29yZHMgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyIKK21zZ3N0ciAiJWQgcGFyb2xlIGNvbiBjYXJhdHRlcmkgbm9uLUFTQ0lJIGlnbm9yYXRlIgorCisjLCBjLWZvcm1hdAogbXNnaWQgIkNvbXByZXNzZWQgJWQgb2YgJWQgbm9kZXM7ICVkJSUgcmVtYWluaW5nIgogbXNnc3RyICIlZCBkaSAlZCBub2RpIGNvbXByZXNzaTsgbmUgcmVzdGFubyAlZCUlIgogCkBAIC00NzYzLDggKzQ4NTMsOCBAQAogbXNnaWQgIkU3NTU6IEludmFsaWQgcmVnaW9uIGluICVzIgogbXNnc3RyICJFNzU1OiBSZWdpb25lIG5vbiB2YWxpZGEgaW4gJXMiCiAKLW1zZ2lkICJDb21wcmVzc2luZyB3b3JkIHRyZWUuLi4iCi1tc2dzdHIgIkNvbXByaW1vIGFsYmVybyBkaSBwYXJvbGUuLi4iCittc2dpZCAiV2FybmluZzogYm90aCBjb21wb3VuZGluZyBhbmQgTk9CUkVBSyBzcGVjaWZpZWQiCittc2dzdHIgIkF0dGVuemlvbmU6IHNwZWNpZmljYXRpIHNpYSBjb21wb3NpemlvbmUgc2lhIE5PQlJFQUsiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiV3JpdGluZyBzcGVsbCBmaWxlICVzIC4uLiIKQEAgLTQ3ODAsMTEgKzQ4NzAsOSBAQAogbXNnaWQgIkU3NjQ6ICdzcGVsbGZpbGUnIGlzIG5vdCBzZXQiCiBtc2dzdHIgIkU3NjQ6IG9wemlvbmUgJ3NwZWxsZmlsZScgdnVvdGEiCiAKLW1zZ2lkICJFNzYxOiBGb3JtYXQgZXJyb3IgaW4gYWZmaXggZmlsZSBGT0wsIExPVyBvciBVUFAiCi1tc2dzdHIgIkU3NjE6IEVycm9yZSBkaSBmb3JtYXRvIG5lbCBmaWxlIGFmZmlzc2kgRk9MLCBMT1cgbyBVUFAiCi0KLW1zZ2lkICJFNzYyOiBDaGFyYWN0ZXIgaW4gRk9MLCBMT1cgb3IgVVBQIGlzIG91dCBvZiByYW5nZSIKLW1zZ3N0ciAiRTc2MjogQ2FyYXR0ZXJlIGZ1b3JpIGludGVydmFsbG8gaW4gRk9MLCBMT1cgbyBVUFAiCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3NjU6ICdzcGVsbGZpbGUnIGRvZXMgbm90IGhhdmUgJWxkIGVudGllcyIKK21zZ3N0ciAiRTc2NTogJ3NwZWxsZmlsZScgbm9uIGhhICVsZCBlbGVtZW50aSIKIAogbXNnaWQgIkU3NjM6IFdvcmQgY2hhcmFjdGVycyBkaWZmZXIgYmV0d2VlbiBzcGVsbCBmaWxlcyIKIG1zZ3N0ciAiRTc2MzogQ2FyYXR0ZXJpIGRpIHBhcm9sYSBkaWZmZXJlbnRpIG5laSBmaWxlIG9ydG9ncmFmaWNpIgpAQCAtNDc5MiwyNyArNDg4MCwxOSBAQAogbXNnaWQgIlNvcnJ5LCBubyBzdWdnZXN0aW9ucyIKIG1zZ3N0ciAiU3BpYWNlbnRlLCBuZXNzdW4gc3VnZ2VyaW1lbnRvIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIlNvcnJ5LCBvbmx5ICVsZCBzdWdnZXN0aW9ucyIKK21zZ3N0ciAiU3BpYWNlbnRlLCBzb2xvICVsZCBzdWdnZXJpbWVudGkiCisKICMuIGF2b2lkIG1vcmUgcHJvbXB0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSBcIiUuKnNcIiB0bzoiCiBtc2dzdHIgIkNhbWJpYXJlIFwiJS4qc1wiIGluOiIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICIlMmQgXCIlc1wiIgotbXNnc3RyICIlMmQgXCIlc1wiIgotCi0jLCBjLWZvcm1hdAogbXNnaWQgIiA8IFwiJS4qc1wiIgogbXNnc3RyICIgPCBcIiUuKnNcIiIKIAotIywgYy1mb3JtYXQKLW1zZ2lkICIgKCVzJWQgLSAlZCkiCi1tc2dzdHIgIiAoJXMlZCAtICVkKSIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICIgKCVkKSIKLW1zZ3N0ciAiICglZCkiCi0KIG1zZ2lkICJFNzUyOiBObyBwcmV2aW91cyBzcGVsbCByZXBsYWNlbWVudCIKIG1zZ3N0ciAiRTc1MjogTmVzc3VuYSBzb3N0aXR1emlvbmUgb3J0b2dyYWZpY2EgcHJlY2VkZW50ZSIKIApkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvL2d1aV93MzIucHJvIGIvc3JjL3Byb3RvL2d1aV93MzIucHJvCmluZGV4IDQ5MTk3MWMuLjMxZjQ0YWEgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9ndWlfdzMyLnBybworKysgYi9zcmMvcHJvdG8vZ3VpX3czMi5wcm8KQEAgLTgyLDExICs4MiwxMSBAQAogdm9pZCBndWlfbWNoX2RyYXdzaWduIF9fQVJHUygoaW50IHJvdywgaW50IGNvbCwgaW50IHR5cGVucikpOwogdm9pZCAqZ3VpX21jaF9yZWdpc3Rlcl9zaWduIF9fQVJHUygoY2hhcl91ICpzaWduZmlsZSkpOwogdm9pZCBndWlfbWNoX2Rlc3Ryb3lfc2lnbiBfX0FSR1MoKHZvaWQgKnNpZ24pKTsKK2ludCBtdWx0aWxpbmVfYmFsbG9vbl9hdmFpbGFibGUgX19BUkdTKCh2b2lkKSk7CiB2b2lkIGd1aV9tY2hfZGlzYWJsZV9iZXZhbF9hcmVhIF9fQVJHUygoQmFsbG9vbkV2YWwgKmJldmFsKSk7CiB2b2lkIGd1aV9tY2hfZW5hYmxlX2JldmFsX2FyZWEgX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwpKTsKIHZvaWQgZ3VpX21jaF9wb3N0X2JhbGxvb24gX19BUkdTKChCYWxsb29uRXZhbCAqYmV2YWwsIGNoYXJfdSAqbWVzZykpOwogQmFsbG9vbkV2YWwgKmd1aV9tY2hfY3JlYXRlX2JldmFsX2FyZWEgX19BUkdTKCh2b2lkICp0YXJnZXQsIGNoYXJfdSAqbWVzZywgdm9pZCAoKm1lc2dDQikoQmFsbG9vbkV2YWwgKiwgaW50KSwgdm9pZCAqY2xpZW50RGF0YSkpOwogdm9pZCBndWlfbWNoX2Rlc3Ryb3lfYmV2YWxfYXJlYSBfX0FSR1MoKEJhbGxvb25FdmFsICpiZXZhbCkpOwogdm9pZCBuZXRiZWFuc19kcmF3X211bHRpc2lnbl9pbmRpY2F0b3IgX19BUkdTKChpbnQgcm93KSk7Ci1pbnQgbXVsdGlsaW5lX2JhbGxvb25fYXZhaWxhYmxlIF9fQVJHUygodm9pZCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vc2VhcmNoLnBybyBiL3NyYy9wcm90by9zZWFyY2gucHJvCmluZGV4IDE1ZThiMzAuLjhlMjIyYWEgMTAwNjQ0Ci0tLSBhL3NyYy9wcm90by9zZWFyY2gucHJvCisrKyBiL3NyYy9wcm90by9zZWFyY2gucHJvCkBAIC0yNiw3ICsyNiw3IEBACiBpbnQgY3VycmVudF93b3JkIF9fQVJHUygob3BhcmdfVCAqb2FwLCBsb25nIGNvdW50LCBpbnQgaW5jbHVkZSwgaW50IGJpZ3dvcmQpKTsKIGludCBjdXJyZW50X3NlbnQgX19BUkdTKChvcGFyZ19UICpvYXAsIGxvbmcgY291bnQsIGludCBpbmNsdWRlKSk7CiBpbnQgY3VycmVudF9ibG9jayBfX0FSR1MoKG9wYXJnX1QgKm9hcCwgbG9uZyBjb3VudCwgaW50IGluY2x1ZGUsIGludCB3aGF0LCBpbnQgb3RoZXIpKTsKLWludCBjdXJyZW50X3RhZ2Jsb2NrIF9fQVJHUygob3BhcmdfVCAqb2FwLCBsb25nIGNvdW50LCBpbnQgaW5jbHVkZSkpOworaW50IGN1cnJlbnRfdGFnYmxvY2sgX19BUkdTKChvcGFyZ19UICpvYXAsIGxvbmcgY291bnRfYXJnLCBpbnQgaW5jbHVkZSkpOwogaW50IGN1cnJlbnRfcGFyIF9fQVJHUygob3BhcmdfVCAqb2FwLCBsb25nIGNvdW50LCBpbnQgaW5jbHVkZSwgaW50IHR5cGUpKTsKIGludCBjdXJyZW50X3F1b3RlIF9fQVJHUygob3BhcmdfVCAqb2FwLCBsb25nIGNvdW50LCBpbnQgaW5jbHVkZSwgaW50IHF1b3RlY2hhcikpOwogaW50IGxpbmV3aGl0ZSBfX0FSR1MoKGxpbmVucl9UIGxudW0pKTsKZGlmZiAtLWdpdCBhL3NyYy9xdWlja2ZpeC5jIGIvc3JjL3F1aWNrZml4LmMKaW5kZXggYmYwYjBiOC4uZDU5NWM0ZiAxMDA2NDQKLS0tIGEvc3JjL3F1aWNrZml4LmMKKysrIGIvc3JjL3F1aWNrZml4LmMKQEAgLTE4Nyw3ICsxODcsNyBAQAogCWNoYXIJKnBhdHRlcm47CiAgICAgfQkJICAgIGZtdF9wYXRbRk1UX1BBVFRFUk5TXSA9CiAJCSAgICB7Ci0JCQl7J2YnLCAiXFxmXFwrIn0sCisJCQl7J2YnLCAiLlxcKyJ9LAkgICAgLyogb25seSB1c2VkIHdoZW4gYXQgZW5kICovCiAJCQl7J24nLCAiXFxkXFwrIn0sCiAJCQl7J2wnLCAiXFxkXFwrIn0sCiAJCQl7J2MnLCAiXFxkXFwrIn0sCkBAIC0zMTksMTYgKzMxOSwyNSBAQAogCQkJcHRyICs9IDEwOwogCQkgICAgfQogI2VuZGlmCi0JCSAgICBpZiAoKmVmbXAgPT0gJ2YnICYmIGVmbXBbMV0gIT0gTlVMCi0JCQkJCSAmJiBlZm1wWzFdICE9ICdcXCcgJiYgZWZtcFsxXSAhPSAnJScpCisJCSAgICBpZiAoKmVmbXAgPT0gJ2YnICYmIGVmbXBbMV0gIT0gTlVMKQogCQkgICAgewotCQkJLyogQSBmaWxlIG5hbWUgbWF5IGNvbnRhaW4gc3BhY2VzLCBidXQgdGhpcyBpc24ndCBpbgotCQkJICogIlxmIi4gIEZvciAiJWY6JWw6JW0iIHRoZXJlIG1heSBiZSBhICI6IiBpbiB0aGUKLQkJCSAqIGZpbGUgbmFtZS4gIFVzZSAiLlx7LTEsfXgiIGluc3RlYWQgKHggaXMgdGhlIG5leHQKLQkJCSAqIGNoYXJhY3RlciksIHRoZSByZXF1aXJlbWVudCB0aGF0IDo5OTk6IGZvbGxvd3MKLQkJCSAqIHNob3VsZCB3b3JrLiAqLwotCQkJU1RSQ1BZKHB0ciwgIi5cXHstMSx9Iik7Ci0JCQlwdHIgKz0gNzsKKwkJCWlmIChlZm1wWzFdICE9ICdcXCcgJiYgZWZtcFsxXSAhPSAnJScpCisJCQl7CisJCQkgICAgLyogQSBmaWxlIG5hbWUgbWF5IGNvbnRhaW4gc3BhY2VzLCBidXQgdGhpcyBpc24ndAorCQkJICAgICAqIGluICJcZiIuICBGb3IgIiVmOiVsOiVtIiB0aGVyZSBtYXkgYmUgYSAiOiIgaW4KKwkJCSAgICAgKiB0aGUgZmlsZSBuYW1lLiAgVXNlICIuXHstMSx9eCIgaW5zdGVhZCAoeCBpcworCQkJICAgICAqIHRoZSBuZXh0IGNoYXJhY3RlciksIHRoZSByZXF1aXJlbWVudCB0aGF0IDo5OTk6CisJCQkgICAgICogZm9sbG93cyBzaG91bGQgd29yay4gKi8KKwkJCSAgICBTVFJDUFkocHRyLCAiLlxcey0xLH0iKTsKKwkJCSAgICBwdHIgKz0gNzsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCSAgICAvKiBGaWxlIG5hbWUgZm9sbG93ZWQgYnkgJ1xcJyBvciAnJSc6IGluY2x1ZGUgYXMKKwkJCSAgICAgKiBtYW55IGZpbGUgbmFtZSBjaGFycyBhcyBwb3NzaWJsZS4gKi8KKwkJCSAgICBTVFJDUFkocHRyLCAiXFxmXFwrIik7CisJCQkgICAgcHRyICs9IDQ7CisJCQl9CiAJCSAgICB9CiAJCSAgICBlbHNlCiAJCSAgICB7CmRpZmYgLS1naXQgYS9zcmMvc3BlbGwuYyBiL3NyYy9zcGVsbC5jCmluZGV4IDU2Yzg5MWQuLjJjMjFkOTQgMTAwNjQ0Ci0tLSBhL3NyYy9zcGVsbC5jCisrKyBiL3NyYy9zcGVsbC5jCkBAIC03NjU0LDcgKzc2NTQsNyBAQAogCQlicmVhazsKIAkgICAgaWYgKCpzcGYgPT0gTlVMKQogCSAgICB7Ci0JCUVNU0dOKF8oIkU3NjU6ICdzcGVsbGZpbGUnIGRvZXMgbm90IGhhdmUgJWxkIGVudGllcyIpLCBpbmRleCk7CisJCUVNU0dOKF8oIkU3NjU6ICdzcGVsbGZpbGUnIGRvZXMgbm90IGhhdmUgJWxkIGVudHJpZXMiKSwgaW5kZXgpOwogCQlyZXR1cm47CiAJICAgIH0KIAl9CmRpZmYgLS1naXQgYS9zcmMvc3RydWN0cy5oIGIvc3JjL3N0cnVjdHMuaAppbmRleCA1NDczNTEwLi45YzYzNDA3IDEwMDY0NAotLS0gYS9zcmMvc3RydWN0cy5oCisrKyBiL3NyYy9zdHJ1Y3RzLmgKQEAgLTEyODgsNiArMTI4OCw3IEBACiAjZW5kaWYKICNpZmRlZiBGRUFUX0NPTVBMX0ZVTkMKICAgICBjaGFyX3UJKmJfcF9jZnU7CS8qICdjb21wbGV0ZWZ1bmMnICovCisgICAgY2hhcl91CSpiX3Bfb2Z1OwkvKiAnb2NjdWx0ZnVuYycgKi8KICNlbmRpZgogICAgIGludAkJYl9wX2VvbDsJLyogJ2VuZG9mbGluZScgKi8KICAgICBpbnQJCWJfcF9ldDsJCS8qICdleHBhbmR0YWInICovCkBAIC0xNDEwLDIzICsxNDExLDIzIEBACiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfTVpTQ0hFTUUKLSAgICB2b2lkCSptenNjaGVtZV9yZWY7CS8qIFRoZSBNelNjaGVtZSByZWZlcmVuY2UgdG8gdGhpcyBidWZmZXIgKi8KKyAgICB2b2lkCSpiX216c2NoZW1lX3JlZjsgLyogVGhlIE16U2NoZW1lIHJlZmVyZW5jZSB0byB0aGlzIGJ1ZmZlciAqLwogI2VuZGlmCiAKICNpZmRlZiBGRUFUX1BFUkwKLSAgICB2b2lkCSpwZXJsX3ByaXZhdGU7CisgICAgdm9pZAkqYl9wZXJsX3ByaXZhdGU7CiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfUFlUSE9OCi0gICAgdm9pZAkqcHl0aG9uX3JlZjsJLyogVGhlIFB5dGhvbiByZWZlcmVuY2UgdG8gdGhpcyBidWZmZXIgKi8KKyAgICB2b2lkCSpiX3B5dGhvbl9yZWY7CS8qIFRoZSBQeXRob24gcmVmZXJlbmNlIHRvIHRoaXMgYnVmZmVyICovCiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfVENMCi0gICAgdm9pZAkqdGNsX3JlZjsKKyAgICB2b2lkCSpiX3RjbF9yZWY7CiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfUlVCWQotICAgIHZvaWQJKnJ1YnlfcmVmOworICAgIHZvaWQJKmJfcnVieV9yZWY7CiAjZW5kaWYKIAogI2lmZGVmIEZFQVRfU1lOX0hMCkBAIC0xODEwLDMxICsxODExLDMwIEBACiAKIAogI2lmZGVmIEZFQVRfTVpTQ0hFTUUKLSAgICB2b2lkCSAgICAqbXpzY2hlbWVfcmVmOwkvKiBUaGUgTXpTY2hlbWUgdmFsdWUgcmVmZXJyaW5nIHRvIHRoaXMgd2luZG93ICovCisgICAgdm9pZAkqd19tenNjaGVtZV9yZWY7CS8qIFRoZSBNelNjaGVtZSB2YWx1ZSBmb3IgdGhpcyB3aW5kb3cgKi8KICNlbmRpZgogCiAjaWZkZWYgRkVBVF9QRVJMCi0gICAgdm9pZAkqcGVybF9wcml2YXRlOworICAgIHZvaWQJKndfcGVybF9wcml2YXRlOwogI2VuZGlmCiAKICNpZmRlZiBGRUFUX1BZVEhPTgotICAgIHZvaWQJKnB5dGhvbl9yZWY7CS8qIFRoZSBQeXRob24gdmFsdWUgcmVmZXJyaW5nIHRvIHRoaXMKLQkJCQkJICAgd2luZG93ICovCisgICAgdm9pZAkqd19weXRob25fcmVmOwkJLyogVGhlIFB5dGhvbiB2YWx1ZSBmb3IgdGhpcyB3aW5kb3cgKi8KICNlbmRpZgogCiAjaWZkZWYgRkVBVF9UQ0wKLSAgICB2b2lkCSp0Y2xfcmVmOworICAgIHZvaWQJKndfdGNsX3JlZjsKICNlbmRpZgogCiAjaWZkZWYgRkVBVF9SVUJZCi0gICAgdm9pZAkqcnVieV9yZWY7CisgICAgdm9pZAkqd19ydWJ5X3JlZjsKICNlbmRpZgogfTsKIAogLyoKICAqIEFyZ3VtZW50cyBmb3Igb3BlcmF0b3JzLgogICovCi10eXBlZGVmIHN0cnVjdCBvcGFyZwordHlwZWRlZiBzdHJ1Y3Qgb3BhcmdfUwogewogICAgIGludAkJb3BfdHlwZTsJLyogY3VycmVudCBwZW5kaW5nIG9wZXJhdG9yIHR5cGUgKi8KICAgICBpbnQJCXJlZ25hbWU7CS8qIHJlZ2lzdGVyIHRvIHVzZSBmb3IgdGhlIG9wZXJhdG9yICovCkBAIC0xODY1LDcgKzE4NjUsNyBAQAogLyoKICAqIEFyZ3VtZW50cyBmb3IgTm9ybWFsIG1vZGUgY29tbWFuZHMuCiAgKi8KLXR5cGVkZWYgc3RydWN0IGNtZGFyZwordHlwZWRlZiBzdHJ1Y3QgY21kYXJnX1MKIHsKICAgICBvcGFyZ19UCSpvYXA7CQkvKiBPcGVyYXRvciBhcmd1bWVudHMgKi8KICAgICBpbnQJCXByZWNoYXI7CS8qIHByZWZpeCBjaGFyYWN0ZXIgKG9wdGlvbmFsLCBhbHdheXMgJ2cnKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uaCBiL3NyYy92ZXJzaW9uLmgKaW5kZXggMmVhNDZhYi4uMGRiOWFiMiAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uaAorKysgYi9zcmMvdmVyc2lvbi5oCkBAIC0zNiw1ICszNiw1IEBACiAjZGVmaW5lIFZJTV9WRVJTSU9OX05PRE9UCSJ2aW03MGFhIgogI2RlZmluZSBWSU1fVkVSU0lPTl9TSE9SVAkiNy4wYWEiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wYWEgQUxQSEEiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IEF1ZyAzMCkiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgQXVnIDMwLCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IFNlcCAxKSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNSBTZXAgMSwgY29tcGlsZWQgIgpkaWZmIC0tZ2l0IGEvc3JjL3ZpbS5oIGIvc3JjL3ZpbS5oCmluZGV4IDI3NjAzMzAuLmMyMDU0MWMgMTAwNjQ0Ci0tLSBhL3NyYy92aW0uaAorKysgYi9zcmMvdmltLmgKQEAgLTY4LDYgKzY4LDEwIEBACiAjIGlmbmRlZiBIQVZFX0NPTkZJR19ICiAjICBkZWZpbmUgVU5JWAogIyBlbmRpZgorIyBpZmRlZiBIQVZFX1NUUklOR1NfSAorLyogT24gTWFjIE9TIFggc3RyaW5ncy5oIGV4aXN0cyBidXQgcHJvZHVjZXMgYW4gYW5ub3lpbmcgd2FybmluZyBtZXNzYWdlLiAqLworIyAgdW5kZWYgSEFWRV9TVFJJTkdTX0gKKyMgZW5kaWYKICNlbmRpZgogI2lmIGRlZmluZWQoTUFDT1NfWCkgfHwgZGVmaW5lZChNQUNPU19DTEFTU0lDKQogIyAgZGVmaW5lIE1BQ09TCg==